From 36b9f3d3ec8673ac31999f7cb04e5b21fbf14d04 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 08:53:04 -0400 Subject: [PATCH 01/38] Feature 007: spec + the TS/Python contract for the vacancy transform Feature 006 shipped the closed lexicon; the source document argues that is only half the instrument. The other half is the vacancy transform -- Carroll's condition (full syntactic scaffolding, vacant lexical content) manufactured at a controlled rate. The contract is written before any code because feature 006 taught us why: one missing sentence about how a corpus becomes a token stream had the two stacks training on different data for a day. Eleven deliberate departures from the source are listed with reasons. Four of them (map built lazily, order-dependent give-up path, RNG-based seam fix, injectivity assumed) are corrections to bugs that break stability -- a property the source claims for itself. One (top64/2**64) would only ever have shown up across our two stacks, because that quotient is not exactly representable. Co-Authored-By: Claude Opus 5 (1M context) --- .../architecture.md | 509 ++++++++++++++++++ specs/007-vacancy-transform-field/spec.md | 155 ++++++ 2 files changed, 664 insertions(+) create mode 100644 specs/007-vacancy-transform-field/architecture.md create mode 100644 specs/007-vacancy-transform-field/spec.md diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md new file mode 100644 index 0000000..36d5cc4 --- /dev/null +++ b/specs/007-vacancy-transform-field/architecture.md @@ -0,0 +1,509 @@ +# Feature 007 — the vacancy transform: TS ↔ Python contract + +**Status:** normative. Both stacks implement *this document*, not each other. + +This is the file that feature 006 taught us to write first. In 006 the contract omitted one +sentence — how a corpus becomes a token stream — and the two stacks silently trained on +different data for a day. Everything here that reads like pedantry is load-bearing; if a +sentence looks obvious, it is because someone would otherwise have guessed differently. + +Source material: `~/Desktop/TinyModelsDoc/tiny_models.tex` §"The vacancy transform" +(`\label{sec:how-vacancy}`) and `tiny-seuss/synth/jabberwockify.py`. We port the *design* and +correct the *implementation*; §9 lists every deliberate departure with its reason. As in 006, +we never port a claim we have not measured ourselves. + +--- + +## 0. What the instrument is for + +The doc's T4 is a 2×2 over *location* (a token has a prior embedding) and *field* (a token's +distributional neighbourhood is fully specified by context): + +| | no field | field supplied | +|-|-|-| +| **no location** | (i) random init, no data | (iii) **vacancy** — nonce form, full syntactic support | +| **location** | (ii) minting at a hub centroid | (iv) normal word learning | + +The vacancy transform manufactures condition (iii) at a controlled rate `p` on any corpus: +closed-class words, inflectional suffixes, syntax and line structure are preserved exactly; +open-class stems are replaced by phonotactically legal nonce forms carrying the same syllable +count and stress pattern. + +**The result the tiny arm can prove.** For a *word-level model trained from scratch*, a word's +"location" is nothing but a row index — the model never sees the letters. Under the conditions +of §7 the transform is therefore a **pure relabelling of the vocabulary**, and the model is +*exactly* invariant to it: same token id stream, same loss, bit for bit. That is stronger than +the doc's prediction (it predicts (iii) ≫ (ii); in the tiny regime (iii) ≡ (iv) identically), +and §7 states it as a theorem with a test that would catch it becoming false. + +An invariance is only worth showing against something that breaks it. §6 defines the three +control conditions the doc itself calls for, and §8 defines the pretrained arm — a model that +*does* have locations — which is where the number that says what location was worth comes from. + +--- + +## 1. Word segmentation + +The transform rewrites a raw text in place. It finds words with **exactly the tokenizer's +regex** and passes everything else — whitespace, punctuation, digits, line breaks — through +unchanged, byte for byte. + +``` +WORD_RE = /[A-Za-z]+(?:['\-][A-Za-z]+)*/g # TS: lexEngine/vocab.ts +WORD_RE = re.compile(r"[A-Za-z]+(?:['\-][A-Za-z]+)*") # Py: lex/vocab.py +``` + +This is **not** the regex the source used (`[A-Za-z][A-Za-z']*`, which splits `good-bye` into +two words). Using the tokenizer's own regex is a hard requirement: the relabelling theorem of +§7 is false the moment the transform's idea of a word differs from the trainer's. + +Each match is replaced by the output of `transformWord` (§5). **Every output is itself a +single, complete `WORD_RE` match** — checked, not assumed (§7.3). Therefore +`tokenize(vacate(text))` has exactly the same length and ordering as `tokenize(text)`, and +because line breaks are untouched, the ``-per-line rule produces the same number of +`` in the same places. + +TS must construct a fresh `RegExp(WORD_RE.source, "g")` per call — the shared literal carries +`lastIndex`. (This bit `vocab.ts` already; do not re-learn it.) + +--- + +## 2. Eligibility: what may be vacated + +### 2.1 The closed class + +`FUNCTION_WORDS` is the source's curated list, ported verbatim, whitespace-split and +lowercased: + +``` +a an the this that these those my your his her its our their some any all both each +every no none i me you he she it we they him them us who whom whose which what where +when why how is am are was were be been being do does did done have has had having +will would shall should can could may might must not and or but so if then than as of +to in on at by for with from into onto up down out off over under again once here there +very too also only just even still yet ever never always about after before while +because though although unless until since during between among against through above +below near far one two three four five six seven eight nine ten +``` + +The source carries a warning we keep: an earlier version of it added short Dolch service words +to the closed class, which silently protected content verbs (`run`, `eat`, `see`, `get`, `let`, +`put`) and understated the vacancy rate. The closed class is **this curated list only**. Do not +union it with a Dolch budget. + +Callers may extend it with a `keep` set; the effective set is `FUNCTION_WORDS ∪ lower(keep)`. + +### 2.2 The eligibility test + +A word is eligible for vacancy iff, after suffix splitting (§3), its **stem** satisfies all of: + +1. `lower(stem) ∉ keepSet` +2. `stem` matches `^[A-Za-z]+$` — ASCII letters only +3. `len(stem) > 2` + +Test 2 is why hyphenated and apostrophised words behave as they do, and both stacks must agree +on it exactly: + +- `good-bye` — no suffix matches, stem is `good-bye`, which contains a hyphen, so **test 2 + fails and the word is never vacated**. +- `don't` — the `n't` suffix splits it to stem `do`, which fails test 3 (and test 1). +- `dog's` — the `'s` suffix splits it to stem `dog`, which passes; output is `'s`. + +Python must use `re.fullmatch(r"[A-Za-z]+", stem)`, **not** `str.isalpha()`. `isalpha()` is +Unicode-aware and would accept letters JS's `^[A-Za-z]+$` rejects. Nothing in the shipped +corpus exercises the difference; a pasted corpus would. + +--- + +## 3. Suffix splitting + +Inflectional morphology is preserved: the stem is vacated, the suffix is re-attached, so the +nonce still looks inflected and the syntax still parses. + +``` +SUFFIXES = ["ing", "edly", "est", "ies", "'s", "n't", "ed", "es", "er", "ly", "s"] +``` + +Tried **in this order**; the first match wins. A suffix `s` matches iff +`lower(word).endswith(s)` **and** `len(word) - len(s) >= 3`. The split slices the **original** +word, so case is preserved. + +``` +EXCEPTIONS = {brother, father, mother, sister, never, over, under, morning, giving, thing} +``` + +A word whose lowercase form is in `EXCEPTIONS` is **never split** (stem = word, suffix = `""`). +This list comes from the audited copy of the source, not the copy in the zip: without it +`brother → broth+er` and `morning → morn+ing`, which the source itself flags as a known +artifact. It is a spelling heuristic, not a morphological analyser, and it is wrong on words +outside the list (`ladder → ladd+er`). That is acceptable — the nonce still carries a +consistent identity and an inflected-looking surface — but it must be *documented in the UI*, +not quietly tolerated. + +--- + +## 4. The vacancy decision — nesting + +A stem is vacated iff `u(stem) < p`, where `u` depends only on the stem and the seed: + +``` +digest = sha256(utf8(f"{seed}:{lower(stem)}")) # 32 bytes +top64 = int(digest[0:8], big-endian) # first 8 bytes +u = (top64 >> 11) / 2**53 +vacate iff u < p +``` + +**The `>> 11` is mandatory and is a departure from the source** (which used +`top64 / 2**64`). A 64-bit integer divided by 2⁶⁴ is not exactly representable as a float64, so +Python and JavaScript can land on different doubles for the same digest and disagree about a +word at the boundary. Shifting to 53 bits makes the numerator exactly representable, so +`u` is *the same double* in both languages and the comparison `u < p` cannot diverge. + +- TS: `Number(BigInt("0x" + hex.slice(0, 16)) >> 11n) / 2 ** 53` +- Py: `(int.from_bytes(digest[:8], "big") >> 11) / 2 ** 53` + +`p` is compared as given. Callers must pass the identical double; the UI emits `p` at two +decimal places and both stacks parse it as float64. + +**Nesting.** `u` is a function of `(seed, stem)` alone — not of `p`, not of traversal order, not +of which other words exist. So `{stems vacated at p} ⊆ {stems vacated at p'}` for `p < p'`, +which is the first of the two properties that make a `p`-sweep interpretable. + +--- + +## 5. Minting — stability + +### 5.1 Why the source's minter cannot be ported as written + +The source mints with `random.Random(f"{seed}:{k}")` and then guards uniqueness with a +`used` set on a long-lived `Minter`. Two consequences, both of which break the stability +property the source claims for itself: + +1. **`used` is order-dependent.** If stem *A* mints `flim` and stem *B* would too, *B* retries — + but only if *A* was minted first. At `p = 0.5` only *B* may be vacated, so *B* gets `flim`; + at `p = 1.0` both are, so *B* gets something else. The nonce for a word then depends on `p`, + which is exactly what stability forbids. +2. **The give-up path is order-dependent.** After 400 failed attempts the source returns + `syllable + str(len(self.used))` — a counter of how many words happened to be minted before. + +There is also the practical problem that Python's Mersenne Twister seeded from a string is not +reproducible in TypeScript without reimplementing MT19937 and `Random.choice`'s masking. + +### 5.2 What we do instead + +**The map is built once over the whole type set, in a canonical order, independent of `p`.** +The map at any `p` is then the restriction of that single map to `{stem : u(stem) < p}`. +Nesting and stability become structural facts rather than properties to be hoped for. + +``` +buildVacancyMap(types, seed, matchProsody, avoid) -> Map + stems := sorted({ stemOf(t) for t in types if eligible(stemOf(t)) }) # ASCII sort, ascending + used := {} + for stem in stems: # canonical order — never p, never document order + nonce := mint(stem, seed, matchProsody, forbidden = used ∪ avoid) + used.add(nonce); map[stem] = nonce +``` + +`types` is the union of the corpus's type set and the budget's word list (§7.2 explains why the +budget must be in the domain). `avoid` is the lowercased corpus type set, so **a nonce can +never collide with a real word of the corpus** — the source accepts an `avoid` parameter and +then never passes one, which lets a minted form silently merge with an English type. + +### 5.3 The deterministic byte stream + +`random.Random` is replaced by a sha256 counter stream, which is trivially identical in both +languages: + +``` +bytesFor(seed, stem, salt, counter) = sha256(utf8(f"{seed}:mint:{stem}:{salt}:{counter}")) +``` + +Consume the stream 4 bytes at a time, big-endian, as an unsigned 32-bit integer; refill from +the next `counter` when exhausted. A choice from a list is `list[nextU32() % len(list)]`. +(All lists here are shorter than 256, so the modulo bias is aesthetic, not statistical — but +both stacks must bias *identically*, which they do.) + +TS: `((b0 << 24) | (b1 << 16) | (b2 << 8) | b3) >>> 0`. The `>>> 0` is required; without it JS +produces a negative number and `%` returns a negative index. + +### 5.4 The phonotactic tables + +Ported verbatim from the source, order significant (the index into each list is what the byte +stream selects, so reordering silently changes every nonce): + +- `ONSETS` — 47 entries, `b … sq` +- `NUCLEI` — 19 entries, `a … er` +- `CODAS` — 49 entries, beginning with the empty string +- `UNSTRESSED_TAILS` — 13 entries, `y … ing` +- unstressed-onset prefixes — `["a", "be", "re", "de", "un", "en"]` +- reduced coda set for unstressed syllables — `["", "", "l", "n", "r", "s"]` (the duplicated + empty string doubles its weight; keep it) + +### 5.5 The mint loop + +For `salt = 0, 1, 2, …`: + +1. `pattern` := the stem's stress pattern (§6) when `matchProsody`, else `"1"`. + `nSyl` := `len(pattern)`. +2. Build a candidate: for syllable `i`, if `pattern[i] == "1"` emit + `choice(ONSETS) + choice(NUCLEI) + choice(CODAS)`; else if `i == 0` emit + `choice(prefixes)`; else emit `choice(UNSTRESSED_TAILS)`. Stressed syllables in a + non-initial unstressed position use the reduced coda set. +3. Collapse runs: `re.sub(r"([bcdfghjklmnpqrstvwxz])\1{2,}", r"\1\1", w)`. +4. Accept iff `len(w) >= 3` **and** `w ∉ forbidden` **and** `syllables(w) == nSyl`. +5. On `salt >= 400`, drop the syllable-count check. On `salt >= 800`, drop the length check. + These relaxations are deterministic and order-independent, unlike the source's counter. + Reaching `salt >= 1200` raises — it has never happened and if it does we want to know. + +### 5.6 Stability + +`mint` depends only on `(seed, stem, matchProsody, forbidden)`, and `forbidden` depends only on +the canonically-ordered prefix of stems before it. Nothing depends on `p`, on the document, or +on the order words are encountered while rewriting. Therefore **a stem's nonce is the same at +every `p`** — the second property the `p`-sweep needs. + +### 5.7 Seams + +Re-attaching a suffix can produce a seam (`wee` + `er` → `weeer`). When +`nonce[-1] == suffix[0]`, replace the nonce's last character with +`"lnrtk"[u32(sha256(f"{seed}:seam:{stem}:{suffix}")) % 5]`. Deterministic, order-independent; +the source used a shared RNG here, which is order-dependent. + +--- + +## 6. Prosody + +### 6.1 Provenance — read this before quoting a number + +`STRESS_TABLE` is ported verbatim from `tiny-seuss/synth/lexicon.py` (61 polysyllables of the +Dolch list). The source describes it as **"seeded by rule and then overridden by a hand table"** +and its own status table lists the stress table under *not yet exercised*: *"seeded by rule; +wants roughly an hour of human checking."* + +So: **we do not claim exact prosody, and no UI string may.** The doc's argument that a closed +lexicon *buys* exact prosody is sound in principle and false of this table today. Two +consequences, both mandatory: + +1. The table covers Dolch words. The shipped corpus is *The Real Mother Goose* with ~2 200 + types, most of which are not in it, so most words fall through to the spelling rule. +2. Every prosody statistic the UI shows must be accompanied by `stressTableCoverage` — the + fraction of tokens whose stress came from the hand table rather than the rule. That number + is the honesty of every other prosody number on the panel. + +### 6.2 Syllable rule (fallback) + +``` +w := lower(word), strip leading/trailing "'" and "-", then delete every non [a-z] +if w is empty: return 1 +n := count of matches of /[aeiouy]+/ in w +if w ends with "e" and n > 1 and w does not end with "le" | "ee" | "ye": n -= 1 +return max(1, n) +``` + +The source has a further `if w.endswith("le") …: pass` branch. It is dead code — a `pass` — and +is *not* ported; the behaviour above is byte-identical to the source's. + +### 6.3 `stress(word)` + +Lookup order, exactly: + +1. `MINTED_STRESS[lower(word)]` — the intended pattern of a form we minted ourselves, so + prosody scoring on a vacated corpus is exact *for the minted forms* +2. `STRESS_TABLE[word]` — **case-sensitive**, for `Christmas` +3. `STRESS_TABLE[lower(word)]` +4. the rule: `"1"` if `n == 1` else `"1" + "0" * (n - 1)` + +`syllables(word) := len(stress(word))`. + +### 6.4 Meter + +`meterScore(line, foot)` = the fraction of syllable positions in the line's concatenated stress +string that match the repeating foot, `0.0` for a line with no syllables. +`anapest = "001"`, `iamb = "01"`, `trochee = "10"`, `dactyl = "100"`. Reported as the mean over +lines that produce at least one token. + +--- + +## 7. Conditions, vocabulary, and the invariance theorem + +### 7.1 Parameters + +| name | type | default | meaning | +|-|-|-|-| +| `p` | float ∈ [0,1] | `0` | fraction of eligible **types** vacated | +| `seed` | int | `0` | selects both `u` and the nonce assignment | +| `consistent` | bool | `true` | one nonce per source type, corpus-wide | +| `matchProsody` | bool | `true` | nonce carries the stem's syllable count and stress | +| `revealAfter` | int | `0` | first N occurrences of a vacated stem keep the English form | +| `keep` | set | `{}` | extra words added to the closed class | + +`consistent = false` derives the nonce from `(stem, occurrenceIndex)` in document order, so +every occurrence is a fresh type. This condition deliberately has **no** stability property; +it is the source's "inconsistent assignment" control and its purpose is to destroy the field +while holding the vacancy rate fixed. + +### 7.2 Vocabulary under vacancy + +Two rules, and which applies depends on the condition: + +**Mapped vocabulary** (`consistent = true`, `revealAfter = 0`) — the budget's word list is +pushed through the *same* `transformWord`, **preserving order**. Since the map is injective, +`itos_p = SPECIALS ++ [transformWord(w) for w in words]` assigns every word the id its +pre-image had. This is why the map's domain must include the budget's words as well as the +corpus's types (§5.2): a budget word absent from the corpus still needs an image. + +**Rebuilt vocabulary** (every other condition) — the budget is rebuilt from `C_p` by the tab's +normal rule (the Dolch list as-is, or `frequencyBudget(C_p, N)`). Coverage then collapses, and +the collapse is the measurement. + +### 7.3 The invariance theorem + +> **Theorem.** With `consistent = true` and `revealAfter = 0`, and the vocabulary mapped as +> above, for every `p`, `seed`, budget, and value of `matchProsody`: +> +> `tokenStream(vacate(C, p), V_p)` equals `tokenStream(C, V)` element for element. +> +> **Corollary.** Training is bit-identical: `runTraining` is a function of +> `(cfg, tokens, seed, hyperparameters)` and `cfg` depends on the vocabulary only through +> `vocabRows`, which is unchanged. + +Why it holds: §1 gives a bijection between word occurrences that preserves order and line +structure; §5.2 makes the type map injective on the union domain; §7.2 makes `stoi_p(map(w))` += `stoi(w)` for budget words and sends every non-budget type to a non-budget type, so +`` lands in exactly the same places. + +**The theorem is a test, not a comment** (SC-703). It is asserted on the real corpus across all +five Dolch budgets and a frequency budget, `p ∈ {0, 0.25, 0.5, 0.75, 1}`, `seed ∈ {0, 7}`, and +both settings of `matchProsody`. If a future change to the tokenizer, the suffix list, or the +minter breaks it, that test fails. + +**Injectivity is verified, not assumed.** After building the map, compute the image of the +actual type set. Two distinct source types can in principle collide through the +stem+suffix construction (`nonce(a) + "s"` colliding with `nonce(b)`), which the `used` set +does not rule out. If `|image| < |types|`, re-mint the colliding stems at a higher salt in +canonical order and repeat; raise after 8 rounds. In practice this loop runs zero times — but +the theorem depends on it, so it is checked every build and reported as `bijective` in the +statistics. + +### 7.4 What this predicts, stated before we measure it + +Three of the knobs — `p`, `seed`, `matchProsody` — are **invisible** to a word-level model +trained from scratch. Only the knobs that break type identity (`consistent = false`, +`revealAfter > 0`) can change a loss. That is the honest tiny-arm result, and it is worth +saying plainly rather than dressing a null up as a curve: *for this model class, all of a +word's meaning is field and none of it is form.* The prosody control matters for the corpus as +an artifact and not at all for this model — which is itself a finding about what a word-level +model can see. + +--- + +## 8. The pretrained arm (Architecture Explorer) + +The tiny arm has no model with a location, so it cannot say what a location is worth. This arm +does: it runs a **real pretrained model** over a passage and its vacated twin. + +### 8.1 The measurement + +Mean negative log-likelihood, in nats per token, restricted to the tokens of **preserved** +words — the closed-class scaffolding, which is character-identical in both passages. Formally, +`the __ __ did __ and __`: does a model that knows English still predict the scaffolding when +the content is vacant? Carroll's claim is that a reader does; this puts a number on it. + +Reported per passage (English `E`, vacated `J`): + +- `nllPreserved` — the headline; mean NLL over tokens belonging to preserved words +- `nllAll` — every scored token, for context +- `bitsPerChar` — `nllAll * nTokens / (ln 2 * nChars)`, comparable across tokenizations +- `nTokens`, `nPreservedTokens`, `nChars` + +and the deltas `ΔnllPreserved = nllPreserved(J) - nllPreserved(E)`. + +### 8.2 Alignment + +Tokens must be attributed to words. **Determine empirically which mechanism the installed +transformers.js actually provides before writing the implementation** — offsets if the +tokenizer exposes them, otherwise incremental decode with a character cursor. Whichever is +used, it is verified by reconstructing the passage from the token spans and asserting equality +with the input; a mismatch raises rather than mis-attributes. + +Do not tokenize word-by-word to force alignment. It suppresses cross-word merges and changes +the NLL being reported. + +### 8.3 Confound, stated in the UI + +The vacated passage has genuinely higher entropy, so *every* prediction in it gets worse — +including the scaffolding. `ΔnllPreserved > 0` is therefore expected; its **magnitude** is the +result, and it is only interpretable against the tiny arm's exact zero. The UI must show both +arms together, and must not present `ΔnllPreserved > 0` as a surprise. + +Both stacks (backend PyTorch, static transformers.js) must produce the same numbers for the +same model and passage, to the tolerance the existing arch parity tests use. + +--- + +## 9. Deliberate departures from the source + +| # | Source | Here | Why | +|-|-|-|-| +| 1 | `[A-Za-z][A-Za-z']*` | the tokenizer's `WORD_RE` | otherwise the transform and the trainer disagree about `good-bye` and §7.3 is false | +| 2 | `top64 / 2**64` | `(top64 >> 11) / 2**53` | 64-bit/2⁶⁴ is not exactly representable; Python and JS could disagree at the boundary | +| 3 | `random.Random(str)` | sha256 counter stream | MT19937 seeded from a string is not reproducible in TS | +| 4 | map built lazily while rewriting | map built once over all types in canonical order | the source's `used` set and give-up counter make the nonce depend on `p`, breaking its own stability claim | +| 5 | `avoid` accepted, never passed | `avoid` = corpus type set | a minted form could otherwise merge with a real English type | +| 6 | give-up = `syllable + str(len(used))` | deterministic salt relaxation | order-independence | +| 7 | seam fix via shared RNG | seam fix via hash of `(stem, suffix)` | order-independence | +| 8 | injectivity assumed | injectivity verified, re-mint on collision | §7.3 depends on it | +| 9 | zip copy of `split_suffix` | audited copy's `EXCEPTIONS` | `brother → broth+er` is a known artifact the audited copy fixes | +| 10 | "exact prosody" | measured prosody + `stressTableCoverage` | the source's own status table calls the stress table unverified | +| 11 | `vacated` count reported as `len(self.map)` | count of stems actually vacated | the zip copy reports the wrong number; the audited copy fixes it | + +Departures 4, 6, 7 and 8 are corrections to bugs that break properties the source *claims*. +Departure 2 is a correction to a bug that would only ever appear across our two stacks. + +--- + +## 10. Statistics contract + +`vacancyStats(originalText, vacatedText, map, p, seed, …)` returns, with these exact names: + +``` +typesTotal, typesEligible, typesVacated, +tokensTotal, tokensVacated, +meanSyllablesBefore, meanSyllablesAfter, +meanAnapestBefore, meanAnapestAfter, +stressTableCoverageBefore, stressTableCoverageAfter, +bijective, imageSize, remintRounds +``` + +Both stacks compute these from the same definitions; the golden fixture (§11) pins them. + +For reference, the source reports mean anapest `0.351 → 0.345` and mean syllables +`1.224 → 1.211` on *its* corpus. **Those are its numbers on a corpus we do not have. Do not +transcribe them into any UI string, test, or doc.** Compute ours on Mother Goose and quote +only what we measured — this is the same rule that caught the fabricated "+29.3 … +decelerating" in feature 006. + +--- + +## 11. Golden fixture + +`code/frontend/tests/fixtures/vacancy-golden.json`, generated by +`scripts/export_vacancy_golden.py`, consumed by `code/frontend/tests/unit/vacancyGolden.test.ts`. +Same shape and discipline as `lex-golden.json`: `format`, `tolerance`, `git_sha`, generator +versions, then cases. + +Pinned per case, on the **real committed corpus**: + +- `u(stem)` for a fixed list of 24 stems spanning eligible/ineligible and both budgets — the + exact float64, which is the whole point of departure 2 +- the full `map` at `seed ∈ {0, 7}` — every stem→nonce pair +- the first 400 characters of the vacated corpus at `p ∈ {0, 0.35, 0.7, 1}`, seed 0 — this is + the source's own figure, reproduced on our corpus +- `vacancyStats` for each of those, all fields +- the nesting assertion: `vacated(0.35) ⊆ vacated(0.7) ⊆ vacated(1.0)` as explicit id sets +- the stability assertion: the nonce for each of 24 stems is identical at every `p` where it + is vacated +- the token id stream digest under the mapped vocabulary at each `p` — all equal, which is + §7.3 pinned as data rather than as an assertion in one language + +Strings are compared exactly. Only the prosody means use `tolerance`. diff --git a/specs/007-vacancy-transform-field/spec.md b/specs/007-vacancy-transform-field/spec.md new file mode 100644 index 0000000..3885285 --- /dev/null +++ b/specs/007-vacancy-transform-field/spec.md @@ -0,0 +1,155 @@ +# Feature 007 — The vacancy transform: the field-without-location instrument + +**Feature Branch:** `007-vacancy-transform` +**Created:** 2026-08-04 +**Status:** In progress + +**Contract:** `specs/007-vacancy-transform-field/architecture.md` (normative — read it first) +**Builds on:** `specs/006-lexicon-lab-tiny/spec.md` (the Lexicon Lab this extends) +**Frozen HTTP contract:** `specs/002-interactive-model-explorer/contracts/api.md` — additive +endpoints only; any change to an existing endpoint gets its own commit with a note. + +## Why + +Feature 006 shipped the closed lexicon — the graded word budgets and the word-level +tokenizer — which is one half of what `~/Desktop/TinyModelsDoc/tiny_models.tex` argues a tiny +model is *for*. The other half is the **vacancy transform** (the doc's §"The vacancy +transform"), the instrument that manufactures Carroll's condition — full syntactic scaffolding, +vacant lexical content — at a controlled rate on any corpus. 006 deferred it as FR-624 on the +grounds that it needed a parameter-matched control. It has one: under the conditions of +contract §7 the transform preserves the vocabulary *exactly*, so the control is the design. + +The transform is what turns "field" and "location" from vocabulary into numbers. Without it the +Lexicon Lab shows a budget; with it, the lab shows what a word's *identity* is worth to a model +that has never seen one — which is zero, exactly — and the Architecture Explorer shows what it +is worth to a model that has. + +## Scope + +Two arms, both real, no mocks anywhere. + +**Tiny arm — Lexicon Lab.** The transform, a `p`-sweep, the doc's three control conditions, +live retraining against the existing in-browser trainer, and the invariance result. + +**Pretrained arm — Architecture Explorer.** A real HF model over a passage and its vacated +twin, scored on the preserved closed-class scaffolding only. + +Out of scope, and stated so it is not mistaken for an omission: the doc's lattice/trie decode +mask (`eval/mask_decode.py`, its T1/T6 instrument), the concept battery (its resource F), the +minting staircase (T3), and corpus synthesis by rejection sampling (its resource A). Each is a +separate instrument; none is needed for T4. + +## Functional requirements + +### The transform (shared, both stacks) + +- **FR-701** A vacancy module exists in both stacks implementing contract §§1–6 exactly: + `llm_geometry/lex/vacancy.py` and `code/frontend/src/lib/lexEngine/vacancy.ts`. +- **FR-702** The transform rewrites raw text in place, replacing only `WORD_RE` matches and + passing all other bytes — punctuation, whitespace, line breaks — through unchanged. +- **FR-703** Vacancy is decided by `u(stem) < p` with `u` derived as contract §4, so vacated + sets **nest** in `p`. +- **FR-704** The nonce for a stem is fixed by `(seed, stem)` alone — **stable** across `p`, + across document order, and across corpora. +- **FR-705** The map is injective, verified per build with re-minting on collision, and + `bijective` is reported in the statistics. +- **FR-706** A nonce never collides with a real type of the corpus (`avoid`, contract §5.2). +- **FR-707** Inflectional suffixes and closed-class words are preserved; the eligibility rules + of contract §2.2 are implemented identically in both stacks. +- **FR-708** The three control conditions are supported: `consistent = false` (inconsistent + assignment), `matchProsody = false` (no prosody matching), `revealAfter > 0` (partial reveal). +- **FR-709** `vacancyStats` returns exactly the fields of contract §10, including + `stressTableCoverage`, and **no prosody number from the source document is transcribed + anywhere** — every number shown is measured on our corpus. + +### Lexicon Lab (tiny arm) + +- **FR-710** A vacancy panel exposes `p`, `seed`, and the three conditions, and shows the + transform acting on the live corpus with minted forms visually distinguished from preserved + and not-yet-vacated words — the doc's Figure 5, interactive. +- **FR-711** Raising `p` visibly demonstrates nesting and stability: a form minted at a lower + `p` is still present, unchanged, at every higher `p`. The UI states this and the state is + derived from the real map, not annotated by hand. +- **FR-712** Prosody preservation is reported as measured before/after statistics, always + alongside `stressTableCoverage`, and the UI states that the stress table is rule-seeded and + unverified (contract §6.1). +- **FR-713** The lab can train on the vacated corpus with the existing trainer, at any + condition, reporting loss, held-out loss, and generated samples exactly as for the + untransformed corpus. +- **FR-714** The invariance result is *demonstrated*, not asserted: the panel runs the mapped + vocabulary at two values of `p` and shows the resulting losses are identical, with the + identity checked in the UI rather than claimed in prose. +- **FR-715** The conditions that break invariance show what breaks: coverage collapse and + `` rate for `consistent = false`, type splitting for `revealAfter > 0`. +- **FR-716** Vacancy composes with everything the lab already does — any budget, any budget + source, pasted text, a HuggingFace dataset, fine-tuning, weight editing, save/load. + +### Architecture Explorer (pretrained arm) + +- **FR-717** A passage and its vacated twin are scored by a real curated HF model, reporting + the fields of contract §8.1. +- **FR-718** Token→word alignment is verified by reconstruction; a mismatch raises rather than + mis-attributing (contract §8.2). +- **FR-719** The entropy confound is stated in the UI, and the tiny arm's exact zero is shown + next to the pretrained delta so the number is interpretable (contract §8.3). +- **FR-720** Both stacks produce the same numbers for the same model and passage. + +### API and static build + +- **FR-721** New endpoints are **additive**: `POST /api/lex/vacancy`, `POST /api/lex/train` + gains optional vacancy parameters, `POST /api/arch/vacancy-score`. No existing response field + changes meaning. +- **FR-722** The static build serves the same capability: `staticClient` implements every new + endpoint in-browser, or refuses loudly with a typed error naming the command that would fix + it. Nothing is fabricated and nothing silently degrades. +- **FR-723** A golden fixture pins the transform across both stacks (contract §11). + +### Documentation + +- **FR-724** The Info tab gains a vacancy section: the 2×2, the definition of the transform, + the nesting and stability properties, the invariance theorem and what it does and does not + say, and the honest status of the stress table. +- **FR-725** Both tabs carry orientation prose and `Explain` deep-dives to feature 005's + standard, and every number in that prose is transcribed from a source constant. +- **FR-726** The source document's provenance is stated: what we ported, what we corrected + (contract §9), and that its reported prosody figures are its own, on a corpus we do not have. + +## Success criteria + +- **SC-701** Nesting holds: for `p < p'`, the set of vacated types at `p` is a subset of that + at `p'`. Asserted on the real corpus across a `p` grid and two seeds, in both stacks. +- **SC-702** Stability holds: a stem's nonce is byte-identical at every `p` at which it is + vacated, and independent of document order. Asserted on the real corpus. +- **SC-703** **The invariance theorem holds** (contract §7.3): with `consistent = true` and + `revealAfter = 0`, the mapped-vocabulary token id stream is element-for-element identical to + the untransformed stream, across all five Dolch budgets, a frequency budget, + `p ∈ {0, 0.25, 0.5, 0.75, 1}`, `seed ∈ {0, 7}`, and both `matchProsody` settings. A real + short training run at two values of `p` produces bit-identical losses. +- **SC-704** The map is injective on the real corpus at every `p` tested, with `remintRounds` + reported. +- **SC-705** The control conditions measurably break invariance: `consistent = false` raises + the `` rate and the held-out loss relative to `consistent = true` at the same `p`, by a + margin recorded from a real run rather than assumed. +- **SC-706** TS↔Python parity: the golden fixture matches within `tolerance` for floats and + exactly for strings and id streams. +- **SC-707** The pretrained arm produces a `ΔnllPreserved` whose sign and magnitude are + reported from a real model run, next to the tiny arm's exact zero. +- **SC-708** Every prosody statistic displayed is accompanied by `stressTableCoverage`, and no + number from the source document appears as if it were ours. +- **SC-709** The full suite is green locally and in CI: backend `pytest` + `ruff` + `black`, + frontend `vitest` + `svelte-check` (0 errors, 0 warnings) + e2e in both projects, and the + Pages deploy. +- **SC-710** The deployed site is verified by *using* it: the vacancy panel is exercised on + https://context-lab.com/llm-geometry/ with a real training run, and the console is clean. + +## Risks + +- **The theorem could be false in a way the tests do not reach.** Mitigated by asserting it as + data (the golden fixture pins id-stream digests) as well as an assertion, and by testing at + the boundaries — `p = 0`, `p = 1`, and a budget word absent from the corpus. +- **Token alignment in the pretrained arm** depends on what transformers.js actually exposes. + Contract §8.2 requires this be determined empirically before implementation, and verified by + reconstruction at run time. +- **A null result reads as a bug.** The tiny arm's headline is an exact zero. The UI must + present it as the finding it is (contract §7.4), not hide it behind a curve that looks like + it is measuring something. From 71ce5709387f12f9af4eace363c966b91cbc0915 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 08:56:41 -0400 Subject: [PATCH 02/38] Correct the stated reason for the u(stem) departure -- it was not a bug The contract claimed the source's `top64 / 2**64` could land on different doubles in Python and JavaScript. I tested it: it does not. CPython's int true-division is correctly rounded, and JS's Number(bigint)/2**64 rounds once and then divides by a power of two, which is exact -- so both produce the same double. Checked on 200,006 values: 200,000 random 64-bit integers plus hand-picked ties at the rounding boundary. Every one matched bit for bit. The `>> 11` stays, for the reason that survives the measurement: a 53-bit integer over 2**53 is exactly representable, so the equality is structural rather than resting on the rounding argument above -- an argument that stops holding if someone later assembles the value from two 32-bit halves. Implementation is unchanged; only the justification was wrong. Co-Authored-By: Claude Opus 5 (1M context) --- ...026-08-04-feature-007-vacancy-transform.md | 97 +++++++++++++++++++ .../architecture.md | 23 +++-- 2 files changed, 114 insertions(+), 6 deletions(-) create mode 100644 notes/2026-08-04-feature-007-vacancy-transform.md diff --git a/notes/2026-08-04-feature-007-vacancy-transform.md b/notes/2026-08-04-feature-007-vacancy-transform.md new file mode 100644 index 0000000..54fd903 --- /dev/null +++ b/notes/2026-08-04-feature-007-vacancy-transform.md @@ -0,0 +1,97 @@ +# Feature 007 — the vacancy transform (session notes) + +Started 2026-08-04. Branch `007-vacancy-transform`. Follows feature 006 (Lexicon Lab). + +## What the user asked for + +> take a look at ~/Desktop/TinyModelsDoc for what the tiny model is *trying* to build. the +> limited vocabulary and word-level tokenizers are one part, but the vacancy transform is +> important too. Can you add this to the demo? This needs to be done carefully! + +Scope decision (asked, answered): **both arms** — the tiny arm in the Lexicon Lab AND the +pretrained arm in the Architecture Explorer, completing the doc's T4 2×2. + +## Source material + +`~/Desktop/TinyModelsDoc/` — `tiny_models.tex` (the proposal, 1055 lines) and +`tiny-seuss.zip`. The zip is the ORIGINAL bundle; `~/Desktop/tiny-models/tiny-seuss/` is the +AUDITED copy from the previous session and differs in three files. Where they disagree, the +audited copy is right: +- `split_suffix` gains an `exceptions` set (`brother` etc.) — without it `brother → broth+er` +- `main` reports `len(j.vacated)` not `len(j.map)` — the zip prints the wrong count +- `README.md` retracts the unverified TTR 0.098 baseline (measured 0.121) and withdraws the + "exact prosody" claim + +## Key artifacts + +- `specs/007-vacancy-transform-field/spec.md` — FR-701…726, SC-701…710 +- `specs/007-vacancy-transform-field/architecture.md` — **the normative TS↔Python contract**. + Written before any code, deliberately: feature 006's one CRITICAL bug was a contract gap. + +## The load-bearing idea + +For a word-level model trained from scratch, a word's "location" is a row index — the model +never sees the letters. So with `consistent = true`, `revealAfter = 0`, and the vocabulary +*mapped* through the transform (order preserved), the vacancy transform is a **pure +relabelling** and training is **bit-identical**. That is contract §7.3, spec SC-703. + +I checked the proof by hand against `token_stream`'s actual behaviour: +- `t ∈ V` → `map(t) ∈ V_p` at the same index ✓ +- `t ∉ V` → `map(t) ∉ V_p`, since `map(t) = map(w)` with `w ∈ V` would force `t = w` ✓ +- both depend on **injectivity over `corpus types ∪ V`** — which is why the contract makes + injectivity a verified property with a re-mint loop, not an assumption +- case is safe because `tokenize` lowercases and `avoid`/`used` are lowercase +- all types sharing a stem are vacated together, so a budget word can never be vacated while a + corpus type sharing its stem is not + +**Framing risk.** "The model is exactly invariant" can read as trivial — *of course, you +relabelled the vocabulary*. That IS the point, and the docs must say so: the doc asks whether an +embedding is an independent carrier of content or a summary of contextual support; in the tiny +regime it is provably the latter. The tiny arm's job is to establish the **baseline of zero**, +so that the pretrained arm's delta has a scale. Do not dress the null up as a curve. + +## Eleven departures from the source + +Contract §9 lists them all. Four are corrections to bugs that break properties the source +*claims* for itself: +- the map is built lazily while rewriting, so `used` makes a nonce depend on `p` — breaks stability +- the give-up path is `syllable + str(len(used))` — order-dependent +- the seam fix draws from a shared RNG — order-dependent +- injectivity is assumed; `avoid` is accepted and never passed, so a nonce can merge with a real word + +Plus one that only bites across our two stacks: `top64 / 2**64` is not exactly representable, so +Python and JS can disagree at the boundary. Contract §4 uses `(top64 >> 11) / 2**53`, which is. + +## Pending decision — the swap control (NOT yet in the contract) + +The pretrained arm's `ΔnllPreserved` has a confound the contract states (§8.3): the vacated +passage genuinely has higher entropy, so every prediction degrades, scaffolding included. + +A **swap control** would make the number interpretable rather than merely caveated: replace each +vacated stem with a *real English word* (drawn from the corpus, frequency-matched) instead of a +nonce form. Same machinery, different minting strategy — `mint: "nonce" | "swap"`. The context +is then equally wrong semantically but the forms are all known, so +`nonce − swap` isolates *unknown form* from *wrong content*. + +Deliberately deferred to phase 2 so the contract stays stable while the two modules are being +written against it. **Add as a contract addendum + FR before the pretrained arm is implemented.** + +## Status + +- [x] Spec + contract written and committed (`36b9f3d`) +- [ ] Python `lex/vacancy.py` + tests +- [ ] TS `lexEngine/vacancy.ts` + tests +- [ ] transformers.js alignment probe (contract §8.2 requires this be settled empirically first) +- [ ] Golden fixture + parity +- [ ] Lexicon Lab vacancy panel +- [ ] API routes + static client +- [ ] Pretrained arm +- [ ] Docs (Info tab + in-tab prose) +- [ ] Full suite, deploy, live verification + +## Standing constraints (from CLAUDE.md) + +No mocks, ever. Real corpus, real models, real browsers. Re-run **all** checks after any fix. +Never transcribe a number from the source document as if it were ours — the doc's +`0.351 → 0.345` anapest and `1.224 → 1.211` syllables are its numbers on a corpus we do not +have. Measure ours. diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 36d5cc4..6dc853d 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -154,10 +154,20 @@ vacate iff u < p ``` **The `>> 11` is mandatory and is a departure from the source** (which used -`top64 / 2**64`). A 64-bit integer divided by 2⁶⁴ is not exactly representable as a float64, so -Python and JavaScript can land on different doubles for the same digest and disagree about a -word at the boundary. Shifting to 53 bits makes the numerator exactly representable, so -`u` is *the same double* in both languages and the comparison `u < p` cannot diverge. +`top64 / 2**64`). + +The reason is *not* that the source's expression diverges across the two languages. It was +measured, and it does not: `int / 2**64` in CPython is a single correctly-rounded division, +while `Number(bigint) / 2**64` in JS rounds to float64 and then divides by a power of two — +which is exact — so the two agree. This was checked on 200 006 values, including random 64-bit +integers and hand-picked ties at the rounding boundary (`(1<<63)|((1<<11)-1)`, `(1<<64)-1`, and +neighbours). Every one matched bit for bit. + +The reason is that `(top64 >> 11) / 2**53` needs **no such argument**. A 53-bit integer over +2⁵³ is exactly representable, so `u` is self-evidently the same double in both languages, and +the property survives a reimplementation that assembles the value differently — from two 32-bit +halves, say, where the rounding argument above stops holding. A cross-language equality that +depends on a subtle proof is one refactor away from being false; this one does not. - TS: `Number(BigInt("0x" + hex.slice(0, 16)) >> 11n) / 2 ** 53` - Py: `(int.from_bytes(digest[:8], "big") >> 11) / 2 ** 53` @@ -446,7 +456,7 @@ same model and passage, to the tolerance the existing arch parity tests use. | # | Source | Here | Why | |-|-|-|-| | 1 | `[A-Za-z][A-Za-z']*` | the tokenizer's `WORD_RE` | otherwise the transform and the trainer disagree about `good-bye` and §7.3 is false | -| 2 | `top64 / 2**64` | `(top64 >> 11) / 2**53` | 64-bit/2⁶⁴ is not exactly representable; Python and JS could disagree at the boundary | +| 2 | `top64 / 2**64` | `(top64 >> 11) / 2**53` | not a bug in the source — the two languages were *measured* to agree on it (§4). Exact representability makes the agreement structural instead of a proof that a refactor could invalidate | | 3 | `random.Random(str)` | sha256 counter stream | MT19937 seeded from a string is not reproducible in TS | | 4 | map built lazily while rewriting | map built once over all types in canonical order | the source's `used` set and give-up counter make the nonce depend on `p`, breaking its own stability claim | | 5 | `avoid` accepted, never passed | `avoid` = corpus type set | a minted form could otherwise merge with a real English type | @@ -458,7 +468,8 @@ same model and passage, to the tolerance the existing arch parity tests use. | 11 | `vacated` count reported as `len(self.map)` | count of stems actually vacated | the zip copy reports the wrong number; the audited copy fixes it | Departures 4, 6, 7 and 8 are corrections to bugs that break properties the source *claims*. -Departure 2 is a correction to a bug that would only ever appear across our two stacks. +Departure 2 is **not** a bug fix — the source's expression was tested and is fine; the change +buys structural rather than argued cross-language equality. --- From 8da0cda15dd915138f49e3e0c61bd8a70443bca5 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 08:58:10 -0400 Subject: [PATCH 03/38] Add the swap control, without which the pretrained number means nothing Vacating content words changes three things at once: the forms become unknown, they fragment into more subword tokens, and the passage stops making sense. Only the first is "location". A caveat cannot separate them; a control can. The swap control mints a real, frequency-rank-matched English word instead of a nonce form -- same eligibility, same u(stem) < p decision, same injectivity guarantee. The passage is equally nonsensical but every form is a known word with ordinary tokenization. So: nll(swap) - nll(english) = the cost of wrong content nll(nonce) - nll(swap) = the cost of unknown form The UI must report that decomposition and never nll(nonce) - nll(english) alone. The residual tokenization component is not separable without a tokenizer-level control, and we say so rather than calling the remainder location. The control checks itself: swap must satisfy the invariance theorem exactly as nonce does, because the tiny model is blind to both. Co-Authored-By: Claude Opus 5 (1M context) --- ...026-08-04-feature-007-vacancy-transform.md | 17 ++++++-- .../architecture.md | 41 ++++++++++++++++++- specs/007-vacancy-transform-field/spec.md | 11 ++++- 3 files changed, 64 insertions(+), 5 deletions(-) diff --git a/notes/2026-08-04-feature-007-vacancy-transform.md b/notes/2026-08-04-feature-007-vacancy-transform.md index 54fd903..bc2bcea 100644 --- a/notes/2026-08-04-feature-007-vacancy-transform.md +++ b/notes/2026-08-04-feature-007-vacancy-transform.md @@ -62,7 +62,7 @@ Contract §9 lists them all. Four are corrections to bugs that break properties Plus one that only bites across our two stacks: `top64 / 2**64` is not exactly representable, so Python and JS can disagree at the boundary. Contract §4 uses `(top64 >> 11) / 2**53`, which is. -## Pending decision — the swap control (NOT yet in the contract) +## RESOLVED — the swap control is in (contract §8.3, FR-719a, SC-707a) The pretrained arm's `ΔnllPreserved` has a confound the contract states (§8.3): the vacated passage genuinely has higher entropy, so every prediction degrades, scaffolding included. @@ -73,8 +73,19 @@ nonce form. Same machinery, different minting strategy — `mint: "nonce" | "swa is then equally wrong semantically but the forms are all known, so `nonce − swap` isolates *unknown form* from *wrong content*. -Deliberately deferred to phase 2 so the contract stays stable while the two modules are being -written against it. **Add as a contract addendum + FR before the pretrained arm is implemented.** +Added to the contract as §8.3 while the two modules were still being written, since it does not +change §§1-7 and the modules are implementing those. It only adds a minting strategy. + +The decomposition the UI must report: +- `nll(swap) − nll(english)` — the cost of **wrong content** +- `nll(nonce) − nll(swap)` — the cost of **unknown form** + +and never `nll(nonce) − nll(english)` alone, which conflates them. The residual — that nonce +forms fragment into more subword tokens — is not separable without a tokenizer-level control, +and the UI says so rather than pretending the remainder is pure location. + +The correctness check for the control is elegant: `swap` must satisfy the invariance theorem +exactly as `nonce` does, because the tiny model is equally blind to both. ## Status diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 6dc853d..6667409 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -439,7 +439,46 @@ with the input; a mismatch raises rather than mis-attributes. Do not tokenize word-by-word to force alignment. It suppresses cross-word merges and changes the NLL being reported. -### 8.3 Confound, stated in the UI +### 8.3 The swap control — what makes the number interpretable + +`ΔnllPreserved > 0` on its own is uninterpretable, because at least three things change at once +when content words are vacated: + +1. the forms are unknown, so the model has no lexical entry to condition on; +2. nonce forms fragment into many subword tokens, so the context is longer and stranger; +3. the passage says something nonsensical. + +Only (1) is "location". A caveat cannot separate them; a control can. + +**Swap.** Mint by drawing a *real English word* instead of a nonce form — same eligibility, same +`u(stem) < p` decision, same suffix handling, same map-injectivity guarantee. The replacement is +drawn deterministically from the corpus's own open-class types by **frequency rank**: the stem's +rank `r` among open-class types selects a replacement from a deterministic window around `r`, +excluding the stem itself and anything already used. So the swapped passage is equally +nonsensical, but every form is a known word with ordinary tokenization. + +This makes the minting strategy a parameter: + +``` +mint: "nonce" | "swap" # default "nonce" +``` + +and decomposes the measurement: + +- `nll(swap) − nll(english)` — the cost of **wrong content** (3) +- `nll(nonce) − nll(swap)` — the cost of **unknown form**, i.e. (1) together with (2) + +The second difference is the closest this instrument gets to "what location was worth", and the +UI must report it as *that difference*, never `nll(nonce) − nll(english)` alone. Residual (2) is +not separable without a tokenizer-level control and the UI must say so rather than pretend the +remainder is pure location. + +`mint: "swap"` preserves every property of §7: the map is still injective (verified the same +way), still nested in `p`, still stable in `(seed, stem)`. The invariance theorem of §7.3 +therefore holds for `swap` exactly as for `nonce` — the tiny model is equally blind to both, +which is itself the check that the swap control is implemented correctly. + +### 8.4 Confound, stated in the UI The vacated passage has genuinely higher entropy, so *every* prediction in it gets worse — including the scaffolding. `ΔnllPreserved > 0` is therefore expected; its **magnitude** is the diff --git a/specs/007-vacancy-transform-field/spec.md b/specs/007-vacancy-transform-field/spec.md index 3885285..02d689a 100644 --- a/specs/007-vacancy-transform-field/spec.md +++ b/specs/007-vacancy-transform-field/spec.md @@ -91,7 +91,12 @@ separate instrument; none is needed for T4. - **FR-718** Token→word alignment is verified by reconstruction; a mismatch raises rather than mis-attributing (contract §8.2). - **FR-719** The entropy confound is stated in the UI, and the tiny arm's exact zero is shown - next to the pretrained delta so the number is interpretable (contract §8.3). + next to the pretrained delta so the number is interpretable (contract §8.4). +- **FR-719a** A **swap control** exists (`mint: "nonce" | "swap"`, contract §8.3): the same + transform drawing a real, frequency-rank-matched English word instead of a nonce form. The + pretrained arm reports the decomposition `nll(swap) − nll(english)` (wrong content) and + `nll(nonce) − nll(swap)` (unknown form), and never reports `nll(nonce) − nll(english)` alone + as if it measured location. The residual tokenization component is stated, not hidden. - **FR-720** Both stacks produce the same numbers for the same model and passage. ### API and static build @@ -134,6 +139,10 @@ separate instrument; none is needed for T4. exactly for strings and id streams. - **SC-707** The pretrained arm produces a `ΔnllPreserved` whose sign and magnitude are reported from a real model run, next to the tiny arm's exact zero. +- **SC-707a** The swap control satisfies the invariance theorem exactly as the nonce strategy + does (contract §8.3) — the tiny model is equally blind to both. This is the check that the + control is implemented correctly, and it is asserted, not assumed. The decomposition + `nll(swap) − nll(english)` and `nll(nonce) − nll(swap)` is reported from a real model run. - **SC-708** Every prosody statistic displayed is accompanied by `stressTableCoverage`, and no number from the source document appears as if it were ours. - **SC-709** The full suite is green locally and in CI: backend `pytest` + `ruff` + `black`, From e5171a19e9dc72b3e68db6c8e91c8fa57ca4a305 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:11:19 -0400 Subject: [PATCH 04/38] Fix two real contract defects the Python implementation exposed Both would have broken the invariance theorem, and both survived my own review of the contract. Writing the implementation is what found them. 1. Case. The suffix was sliced case-preserved and then used in the seam test, so `gums` -> `flels` while `GUMS` -> `FLESS`: suffix[0] was `s` in one and `S` in the other, the seam fired in one and not the other, and one source type acquired two surface forms. The tokenizer lowercases, so those are two different types. The contract now requires the whole transform to commute with lowercasing, and states that as a normative invariant with a test. 2. Injectivity at intermediate p. The check ran at p=1 and over bare nonces. At full vacancy nothing can collide with a surviving English word, so the check saw nothing -- but at seed 7, `hang` mints `wak`, and `hanged` -> `waked` collides with the English `waked` at p=0.25 and p=0.5, where one is vacated and the other is not. The check is now over assembled surface forms with a p-independent condition, so it holds at every p simultaneously. Also resolved: a self-contradictory sentence in the mint loop (the reduced coda set is unreachable, as in the source -- do not "fix" it, it would change every multi-syllable nonce); the ambiguous stressTableCoverage, now a three-way split of table/minted/rule that sums to 1 and distinguishes stress we verified from stress we asserted; and four details the implementation had to invent, now pinned so the TypeScript side cannot diverge. Co-Authored-By: Claude Opus 5 (1M context) --- .../architecture.md | 142 +++++++++++++++--- 1 file changed, 122 insertions(+), 20 deletions(-) diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 6667409..7e2a455 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -106,8 +106,11 @@ on it exactly: - `good-bye` — no suffix matches, stem is `good-bye`, which contains a hyphen, so **test 2 fails and the word is never vacated**. -- `don't` — the `n't` suffix splits it to stem `do`, which fails test 3 (and test 1). -- `dog's` — the `'s` suffix splits it to stem `dog`, which passes; output is `'s`. +- `don't` — `n't` does *not* split it, because §3's length rule requires + `len(word) - len(suffix) >= 3` and `5 - 3 = 2`. The stem is therefore `don't`, which contains + an apostrophe and fails test 2. Never vacated. (An earlier draft of this document said the + suffix splits it to `do`; that was wrong about the mechanism, though right about the outcome.) +- `dog's` — `'s` splits it (`5 - 2 = 3`) to stem `dog`, which passes; output is `'s`. Python must use `re.fullmatch(r"[A-Za-z]+", stem)`, **not** `str.isalpha()`. `isalpha()` is Unicode-aware and would accept letters JS's `^[A-Za-z]+$` rejects. Nothing in the shipped @@ -215,9 +218,38 @@ buildVacancyMap(types, seed, matchProsody, avoid) -> Map ``` `types` is the union of the corpus's type set and the budget's word list (§7.2 explains why the -budget must be in the domain). `avoid` is the lowercased corpus type set, so **a nonce can -never collide with a real word of the corpus** — the source accepts an `avoid` parameter and -then never passes one, which lets a minted form silently merge with an English type. +budget must be in the domain). The source accepts an `avoid` parameter and then never passes +one, which lets a minted form silently merge with an English type. + +**The check is over surface forms, not bare nonces, and it must hold at every `p`.** This is +the second defect the first implementation exposed. A bare-nonce check is not enough: + +> At `seed = 7`, the stem `hang` minted the nonce `wak`. No corpus type equals `wak`, so a +> bare-nonce `avoid` check passes. But the corpus contains `hanged`, whose surface form is +> `wak` + `ed` = `waked` — and the corpus *also* contains the English word `waked`. At `p = 1` +> both are vacated and nothing collides, which is why a check performed only at full vacancy +> sees nothing. At `p = 0.25` and `p = 0.5`, `hanged` is vacated and `waked` is not, so two +> distinct source types both map to `waked`. Injectivity fails, and with it §7.3. + +So define, over the domain: + +- `pairs` := `{(stem, suffix)}` for every domain type whose stem is eligible +- `surface(stem, suffix)` := the assembled, lowercased output of §5.7 + +and require **both**: + +- **A.** the surface forms are pairwise distinct +- **B.** no surface form equals any lowercased type in the domain — whether or not that type is + itself eligible + +B is deliberately conservative: it forbids a minted form from equalling a word that would always +have been vacated alongside it. That costs a re-mint and buys a condition that is independent of +`p`, which is what the theorem needs. Because un-vacated words map to themselves, minted words +map into the surface set, and A and B keep those two sets internally distinct and mutually +disjoint, injectivity holds **simultaneously for every `p`** rather than at `p = 1` only. + +On violation, re-mint the offending stems at a higher salt in canonical order and re-check; +raise after 8 rounds. ### 5.3 The deterministic byte stream @@ -255,10 +287,17 @@ For `salt = 0, 1, 2, …`: 1. `pattern` := the stem's stress pattern (§6) when `matchProsody`, else `"1"`. `nSyl` := `len(pattern)`. -2. Build a candidate: for syllable `i`, if `pattern[i] == "1"` emit - `choice(ONSETS) + choice(NUCLEI) + choice(CODAS)`; else if `i == 0` emit - `choice(prefixes)`; else emit `choice(UNSTRESSED_TAILS)`. Stressed syllables in a - non-initial unstressed position use the reduced coda set. +2. Build a candidate: for syllable `i`, + - if `pattern[i] == "1"` emit `choice(ONSETS) + choice(NUCLEI) + choice(CODAS)` + - else if `i == 0` emit `choice(prefixes)` + - else emit `choice(UNSTRESSED_TAILS)` + + Exactly three branches, in that order. An earlier draft added a sentence about "stressed + syllables in a non-initial unstressed position", which is self-contradictory — a syllable is + stressed or it is not. **The reduced coda set of §5.4 is therefore unreachable**, exactly as + it is in the source, where `_syl(stressed=False)` is never called. It is retained in §5.4 for + fidelity to the source's tables and because the byte stream's list indices must not shift. + **Do not "fix" this in either stack** — doing so would change every multi-syllable nonce. 3. Collapse runs: `re.sub(r"([bcdfghjklmnpqrstvwxz])\1{2,}", r"\1\1", w)`. 4. Accept iff `len(w) >= 3` **and** `w ∉ forbidden` **and** `syllables(w) == nSyl`. 5. On `salt >= 400`, drop the syllable-count check. On `salt >= 800`, drop the length check. @@ -272,15 +311,54 @@ the canonically-ordered prefix of stems before it. Nothing depends on `p`, on th on the order words are encountered while rewriting. Therefore **a stem's nonce is the same at every `p`** — the second property the `p`-sweep needs. -### 5.7 Seams +### 5.7 Seams, and the case-commuting invariant Re-attaching a suffix can produce a seam (`wee` + `er` → `weeer`). When `nonce[-1] == suffix[0]`, replace the nonce's last character with `"lnrtk"[u32(sha256(f"{seed}:seam:{stem}:{suffix}")) % 5]`. Deterministic, order-independent; the source used a shared RNG here, which is order-dependent. +**Everything in the transform is computed on the lowercased word.** The stem and the suffix are +lowercased before the seam test, before the seam hash, and before the surface form is assembled; +`matchCase` is then applied **to the whole assembled surface form**, with the *original whole +word* as the case source. + +This is not a stylistic preference. The first implementation of this contract followed the +source and sliced the suffix case-preserved, then ran the seam test against it. So `gums` → +`flels` while `GUMS` → `FLESS`: `suffix[0]` was `s` in one and `S` in the other, the seam test +fired in one and not the other, and one source **type** acquired two distinct surface forms. +The tokenizer lowercases, so those are two different types — and §7.3 is false. + +> **Invariant (normative, and a test).** For every word `w`: +> `lower(transformWord(w)) == transformWord(lower(w))`. +> +> The transform must **commute with lowercasing**, because the tokenizer lowercases. Any step +> that branches on a character's case — seam tests, hash inputs, table lookups other than the +> deliberate case-sensitive `STRESS_TABLE` probe of §6.3 — violates it. Assert it over the whole +> real corpus, and over each type upper-cased, capitalised, and lower-cased. + --- +### 5.8 Details the first implementation had to invent — now pinned + +These were gaps, not choices. Both stacks do it this way or the golden fixture fails. + +- **Re-mint selection.** When conditions A/B of §5.2 fail, re-mint **only the losing stem** — + the one later in canonical (ASCII-ascending) order among those involved in the collision — at + salt `1000 * round + previousSalt + 1`. Round counts from 1. Winners keep their nonce, so a + re-mint never cascades. +- **`consistent = false` key.** The per-occurrence nonce is minted for the key + `f"{stem}#{idx}"` where `idx` is the 0-based occurrence index of that **stem** in document + order. The `#` is not a legal `WORD_RE` character, so the key can never collide with a stem. +- **Minted stress is passed, never global.** `stress(word, mintedStress)` takes the map as an + argument. The source used a module-level `MINTED_STRESS` dict mutated by `register_minted`, + which makes two concurrently-live maps corrupt each other — and the Lexicon Lab holds several + at once (one per condition being compared). +- **Statistic field names are camelCase in both stacks**, exactly as §10 spells them, including + in the Python JSON. This deviates from the rest of the Python API, which is snake_case; the + vacancy block is a nested object, so it is self-consistent and it lets the golden fixture + compare the two stacks key-for-key without a translation table. + ## 6. Prosody ### 6.1 Provenance — read this before quoting a number @@ -317,8 +395,9 @@ is *not* ported; the behaviour above is byte-identical to the source's. Lookup order, exactly: -1. `MINTED_STRESS[lower(word)]` — the intended pattern of a form we minted ourselves, so - prosody scoring on a vacated corpus is exact *for the minted forms* +1. `mintedStress[lower(word)]` — the intended pattern of a form we minted ourselves, so + prosody scoring on a vacated corpus reflects what we built *for the minted forms*. Passed in + as an argument, never a module global (§5.8). 2. `STRESS_TABLE[word]` — **case-sensitive**, for `Christmas` 3. `STRESS_TABLE[lower(word)]` 4. the rule: `"1"` if `n == 1` else `"1" + "0" * (n - 1)` @@ -387,13 +466,19 @@ five Dolch budgets and a frequency budget, `p ∈ {0, 0.25, 0.5, 0.75, 1}`, `see both settings of `matchProsody`. If a future change to the tokenizer, the suffix list, or the minter breaks it, that test fails. -**Injectivity is verified, not assumed.** After building the map, compute the image of the -actual type set. Two distinct source types can in principle collide through the -stem+suffix construction (`nonce(a) + "s"` colliding with `nonce(b)`), which the `used` set -does not rule out. If `|image| < |types|`, re-mint the colliding stems at a higher salt in -canonical order and repeat; raise after 8 rounds. In practice this loop runs zero times — but -the theorem depends on it, so it is checked every build and reported as `bijective` in the -statistics. +**Injectivity is verified, not assumed** — by conditions A and B of §5.2, which are checked at +map-build time and reported as `bijective` and `remintRounds` in the statistics. + +Two traps, both found by implementing this document rather than by reading it: + +1. Checking `|image| == |types|` **at `p = 1` only** is insufficient. At full vacancy every + eligible type has moved, so a minted form cannot collide with a surviving English word; the + collision only exists at intermediate `p`. Condition B is `p`-independent precisely so this + cannot recur. +2. Checking **bare nonces** rather than assembled surface forms is insufficient, for the same + reason: the collision arrives through the suffix. + +The test asserts injectivity at every `p` in the grid, not just at the endpoints. ### 7.4 What this predicts, stated before we measure it @@ -521,12 +606,29 @@ typesTotal, typesEligible, typesVacated, tokensTotal, tokensVacated, meanSyllablesBefore, meanSyllablesAfter, meanAnapestBefore, meanAnapestAfter, -stressTableCoverageBefore, stressTableCoverageAfter, +stressFromTableBefore, stressFromTableAfter, +stressFromMintedBefore, stressFromMintedAfter, +stressFromRuleBefore, stressFromRuleAfter, bijective, imageSize, remintRounds ``` Both stacks compute these from the same definitions; the golden fixture (§11) pins them. +**Where each token's stress came from.** The first draft asked for a single +`stressTableCoverage`, which is ambiguous the moment minted forms exist: read literally it counts +only the hand table (measured 1.2 % after full vacancy), and read as "stress we actually know" it +also counts minted forms, whose pattern we chose ourselves (41.6 %). Rather than pick, report the +**three-way split**, which is unambiguous and strictly more informative: + +- `stressFromTable` — the hand table of §6.1. This is the honesty number for English words, and + it is the one FR-712/SC-708 require beside every prosody statistic. +- `stressFromMinted` — forms we minted, whose intended pattern we registered. Known by + construction, but *asserted* rather than verified: §5.5 accepts a candidate on syllable + **count**, so the count is checked and the pattern is not. +- `stressFromRule` — the spelling heuristic of §6.2, i.e. a guess. + +The three are token-weighted fractions and sum to 1 on each side. + For reference, the source reports mean anapest `0.351 → 0.345` and mean syllables `1.224 → 1.211` on *its* corpus. **Those are its numbers on a corpus we do not have. Do not transcribe them into any UI string, test, or doc.** Compute ours on Mother Goose and quote From 00071444342e06539fbeb1f8adfa1c51bf884a71 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:14:47 -0400 Subject: [PATCH 05/38] Correct the CODAS count and pin how types/stems are counted Two independent implementations both flagged that CODAS has 46 entries, not the 49 I wrote, and both correctly took "copy verbatim" over my tally -- so nothing diverged. The contract now says 46 and states plainly that the source lists are normative and the counts in this document are commentary: a nonce is a function of the strings and their indices, never of a number in a spec. The two stacks also reported different type counts (1922 vs 1665) while agreeing on tokensVacated to the token (8202). That is a definitional gap in this section, not a disagreement about the transform, so the definitions are now pinned -- typesTotal/typesEligible/typesVacated over the domain, stemsTotal/stemsVacated over the map, tokens over the corpus stream -- and stemsTotal/stemsVacated are added to the reported statistics. The identity that exposed it is now an assertion: at p=1 every eligible stem vacates, because u is in [0,1) by construction, so stemsVacated == stemsTotal and typesVacated == typesEligible. Co-Authored-By: Claude Opus 5 (1M context) --- .../architecture.md | 24 ++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 7e2a455..469018f 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -275,8 +275,14 @@ stream selects, so reordering silently changes every nonce): - `ONSETS` — 47 entries, `b … sq` - `NUCLEI` — 19 entries, `a … er` -- `CODAS` — 49 entries, beginning with the empty string +- `CODAS` — **46** entries, `"" … zzle` - `UNSTRESSED_TAILS` — 13 entries, `y … ing` + +An earlier draft said `CODAS` had 49. It has 46 — I miscounted. Both implementations copied the +source verbatim, flagged the discrepancy, and correctly took "verbatim" over the tally, so +nothing diverged. **The lists are normative; the counts here are commentary.** If they ever +disagree again, the source lists win, because a nonce is a function of the strings and their +indices and not of a number in a document. - unstressed-onset prefixes — `["a", "be", "re", "de", "un", "en"]` - reduced coda set for unstressed syllables — `["", "", "l", "n", "r", "s"]` (the duplicated empty string doubles its weight; keep it) @@ -603,6 +609,7 @@ buys structural rather than argued cross-language equality. ``` typesTotal, typesEligible, typesVacated, +stemsTotal, stemsVacated, tokensTotal, tokensVacated, meanSyllablesBefore, meanSyllablesAfter, meanAnapestBefore, meanAnapestAfter, @@ -614,6 +621,21 @@ bijective, imageSize, remintRounds Both stacks compute these from the same definitions; the golden fixture (§11) pins them. +**Counting, pinned.** The two implementations agreed on `tokensVacated` to the token (8 202 at +`p = 1`) while reporting different type counts — 1 922 against 1 665 — which is a definitional +gap in this section, not a disagreement about the transform. The definitions are: + +- `typesTotal` — distinct lowercased types in the **domain** (corpus types ∪ budget words) +- `typesEligible` — domain types whose **stem** is eligible per §2.2 +- `typesVacated` — domain types whose transformed output differs from the input at this `p` +- `stemsTotal` — distinct eligible stems, i.e. the size of the map +- `stemsVacated` — stems with `u(stem) < p` +- `tokensTotal` / `tokensVacated` — over the **corpus** token stream, not the domain + +`typesEligible ≥ stemsTotal` always, since inflected forms share a stem. At `p = 1` every +eligible stem vacates, because `u ∈ [0, 1)` by construction, so `stemsVacated == stemsTotal` and +`typesVacated == typesEligible` — an identity worth asserting, since it caught this. + **Where each token's stress came from.** The first draft asked for a single `stressTableCoverage`, which is ambiguous the moment minted forms exist: read literally it counts only the hand table (measured 1.2 % after full vacancy), and read as "stress we actually know" it From e67866522a2410d62a3942569707f2bd589ace39 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:22:02 -0400 Subject: [PATCH 06/38] Pin salt semantics: quality thresholds count attempts, not absolute salt The Python implementation surfaced a contradiction between the mint loop's give-up thresholds (400/800/1200) and the re-mint base salt (1000*round + ...). Read as absolute salt, a re-mint starting at 1001 would begin with every quality check already relaxed -- so the replacement nonce would not be prosody-matched -- and a second round at 2001 would exceed the give-up bound and raise, contradicting "raise after 8 rounds". A mint call now carries a base salt and an attempt counter; the byte stream is keyed on their sum, and the thresholds are on the attempt counter. A re-mint is therefore held to exactly the same standard as an original mint, which is what keeps the seed-7 replacement (hang -> smeeg) monosyllabic like the word it replaces. Co-Authored-By: Claude Opus 5 (1M context) --- .../architecture.md | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 469018f..58ffb81 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -289,7 +289,18 @@ indices and not of a number in a document. ### 5.5 The mint loop -For `salt = 0, 1, 2, …`: +A mint call carries a **base salt** `S` (0 for the first build; §5.8 sets it for re-mints) and +runs an **attempt counter** `a = 0, 1, 2, …`. The byte stream of §5.3 is keyed on +`salt = S + a`; **the quality thresholds below are on `a`, not on `salt`.** + +That distinction is load-bearing. Read the other way — thresholds on the absolute salt — a +re-mint at `S = 1001` would begin with every quality check already relaxed, so the replacement +nonce would not be prosody-matched, and a second round at `S = 2001` would exceed the give-up +bound and raise, contradicting §5.2's "raise after 8 rounds". Counting attempts per call means a +re-mint is held to exactly the same standard as an original mint, which is what makes the +seed-7 replacement (`hang → smeeg`) monosyllabic like the word it replaces. + +For `a = 0, 1, 2, …`: 1. `pattern` := the stem's stress pattern (§6) when `matchProsody`, else `"1"`. `nSyl` := `len(pattern)`. @@ -306,9 +317,9 @@ For `salt = 0, 1, 2, …`: **Do not "fix" this in either stack** — doing so would change every multi-syllable nonce. 3. Collapse runs: `re.sub(r"([bcdfghjklmnpqrstvwxz])\1{2,}", r"\1\1", w)`. 4. Accept iff `len(w) >= 3` **and** `w ∉ forbidden` **and** `syllables(w) == nSyl`. -5. On `salt >= 400`, drop the syllable-count check. On `salt >= 800`, drop the length check. +5. On `a >= 400`, drop the syllable-count check. On `a >= 800`, drop the length check. These relaxations are deterministic and order-independent, unlike the source's counter. - Reaching `salt >= 1200` raises — it has never happened and if it does we want to know. + Reaching `a >= 1200` raises — it has never happened and if it does we want to know. ### 5.6 Stability @@ -351,8 +362,9 @@ These were gaps, not choices. Both stacks do it this way or the golden fixture f - **Re-mint selection.** When conditions A/B of §5.2 fail, re-mint **only the losing stem** — the one later in canonical (ASCII-ascending) order among those involved in the collision — at - salt `1000 * round + previousSalt + 1`. Round counts from 1. Winners keep their nonce, so a - re-mint never cascades. + **base salt** `1000 * round + previousBaseSalt + 1`. Round counts from 1. Winners keep their + nonce, so a re-mint never cascades. The attempt counter restarts at `a = 0` inside the new + call, so §5.5's quality checks apply in full (see the note there). - **`consistent = false` key.** The per-occurrence nonce is minted for the key `f"{stem}#{idx}"` where `idx` is the 0-based occurrence index of that **stem** in document order. The `#` is not a legal `WORD_RE` character, so the key can never collide with a stem. From 5d355ff0b87952f2eccfa288f33d5b0fd0b17cda Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:22:02 -0400 Subject: [PATCH 07/38] Python vacancy transform: the field-without-location instrument Implements contract sections 1-7 and 10. The map is built once over the whole type set in canonical order, so nesting and stability are structural rather than hoped for -- the source builds it lazily while rewriting, which makes a nonce depend on p and breaks the stability its own p-sweep needs. Injectivity is verified over assembled surface forms under a p-independent condition, not assumed. On the real corpus that costs exactly one re-mint, at seed 7: `hang` may not mint `wak`, because `hanged` would then collide with the surviving English `waked` at p=0.25 and p=0.5. The whole transform commutes with lowercasing, because the tokenizer lowercases and a case-sensitive step would give one type two surface forms. Prosody is reported as a three-way split -- table 5.1% of tokens before, minted 40.4% after, rule the rest -- which distinguishes stress we declared from stress the spelling heuristic guessed. No number from the source document is transcribed; these are measured on Mother Goose. SC-703 verified across 120 cases (2 seeds x 2 prosody settings x 6 budgets x 5 values of p): identical token id streams every time. 54 tests, ruff and black clean. Co-Authored-By: Claude Opus 5 (1M context) --- code/backend/src/llm_geometry/lex/vacancy.py | 930 +++++++++++++++++++ code/backend/tests/unit/test_lex_vacancy.py | 710 ++++++++++++++ 2 files changed, 1640 insertions(+) create mode 100644 code/backend/src/llm_geometry/lex/vacancy.py create mode 100644 code/backend/tests/unit/test_lex_vacancy.py diff --git a/code/backend/src/llm_geometry/lex/vacancy.py b/code/backend/src/llm_geometry/lex/vacancy.py new file mode 100644 index 0000000..05f284f --- /dev/null +++ b/code/backend/src/llm_geometry/lex/vacancy.py @@ -0,0 +1,930 @@ +"""The vacancy transform — field without location, at a controlled rate `p`. + +Carroll's trick, stated operationally: the closed-class scaffolding is left character-for- +character intact — function words, inflectional morphology, punctuation, syntax, line +structure — while open-class stems are replaced by phonotactically legal nonce forms that +carry the same syllable count and stress. A reader parses *the slithy toves did gyre and +gimble* because every grammatical signal survives and only lexical content is vacant. Such +a token has a FIELD (its neighbourhood is fully specified by context) and no LOCATION (no +prior embedding). + +Normative source: `specs/007-vacancy-transform-field/architecture.md`. That document — not +the Python or the TypeScript — is what both stacks implement, so **every departure from the +original `tiny-seuss/synth/jabberwockify.py` here is one the contract lists in its §9**: + +1. Words are found with the tokenizer's own :data:`~llm_geometry.lex.vocab.WORD_RE`, not the + source's `[A-Za-z][A-Za-z']*`. Otherwise the transform and the trainer disagree about + `good-bye` and the relabelling theorem (contract §7.3) is simply false. +2. ``u = (top64 >> 11) / 2**53``, not ``top64 / 2**64``. A 64-bit integer over 2**64 is not + exactly representable as a float64, so Python and JavaScript can land on different + doubles for the same digest and disagree about a word at the boundary. +3. `random.Random` is replaced by a sha256 counter stream: MT19937 seeded from a string is + not reproducible in TypeScript. +4. The map is built **once over the whole type set in canonical order**, never lazily while + rewriting. The source's `used` set and give-up counter make a word's nonce depend on `p` + and on document order, which breaks the stability property the source claims for itself. +5. `avoid` is actually passed (the corpus type set), so a minted form can never merge with a + real English type. +6. The give-up path is a deterministic salt relaxation, not `syllable + str(len(used))`. +7. Seams (`wee` + `er`) are repaired from a hash of `(stem, suffix)`, not a shared RNG. +8. Injectivity is **verified** over assembled surface forms, at every `p`, and re-minted on + collision — the theorem depends on it, so it is checked on every build and reported as + ``bijective`` / ``remintRounds``. +9. `split_suffix` carries the audited copy's ``SPLIT_EXCEPTIONS`` (`brother`, not + `broth`+`er`). +10. No claim of exact prosody: :data:`STRESS_TABLE` is 61 hand entries over the Dolch list, + described by its own author as "seeded by rule; wants roughly an hour of human + checking", so every prosody number ships with the three-way `stressFrom*` split beside it. +11. ``typesVacated`` counts stems actually vacated, measured from the output text, not + ``len(map)``. + +The properties that make a `p`-sweep interpretable are structural here rather than hoped +for: `u` depends only on `(seed, stem)`, so vacated sets are **nested** in `p`; the map is +built independently of `p`, so a stem's nonce is **stable** across the whole sweep. + +Two defects that the first implementation of this contract exposed are now fixed in the +contract itself, and each is covered by a named test here: + +* **The transform commutes with lowercasing** (§5.7): everything — the seam test, the seam + hash, the assembly — happens on the lowercased word, and `match_case` is applied to the + WHOLE assembled surface with the original whole word as the case source. Slicing the suffix + case-preserved made `gums` -> `flels` but `GUMS` -> `FLESS`, giving one type two surfaces. +* **Injectivity is checked over surface forms and holds at every `p`** (§5.2 conditions A and + B). A bare-nonce check at `p = 1` missed `hang` -> `wak`, whose surface `wak` + `ed` is the + real English word `waked`; the two collided at `p = 0.25` and `p = 0.5`, where `waked` + itself was not vacated. +""" + +from __future__ import annotations + +import hashlib +import math +import re +from dataclasses import dataclass, field +from typing import Iterable, Mapping, Sequence + +from ..errors import ComputeError, InvalidParamError +from .vocab import WORD_RE + +# --- the closed class ------------------------------------------------------------------- + +#: Contract §2.1, ported verbatim from the source and whitespace-split. The source carries a +#: warning we keep: an earlier version unioned this with the short Dolch service words, which +#: silently protected content verbs (`run`, `eat`, `see`, `get`, `let`, `put`) and understated +#: the vacancy rate. The closed class is THIS CURATED LIST ONLY. +FUNCTION_WORDS: frozenset[str] = frozenset("""a an the this that these those my your his her its our +their some any all both each every no none i me you he she it we they him them +us who whom whose which what where when why how is am are was were be been being +do does did done have has had having will would shall should can could may might +must not and or but so if then than as of to in on at by for with from into onto +up down out off over under again once here there very too also only just even +still yet ever never always about after before while because though although +unless until since during between among against through above below near far +one two three four five six seven eight nine ten""".lower().split()) + +# --- suffix splitting ------------------------------------------------------------------- + +#: Contract §3, order significant — the first match wins. +SUFFIXES: tuple[str, ...] = ("ing", "edly", "est", "ies", "'s", "n't", "ed", "es", "er", "ly", "s") + +#: Words that are never split. From the AUDITED copy of the source (contract §3, departure 9); +#: without it `brother -> broth+er` and `morning -> morn+ing`, which the source itself flags as +#: a known artifact. This is a spelling heuristic, not a morphological analyser, and it stays +#: wrong outside the list (`ladder -> ladd+er`) — acceptable, because the nonce still carries a +#: consistent identity and an inflected-looking surface, but it must be stated in the UI rather +#: than quietly tolerated. +SPLIT_EXCEPTIONS: frozenset[str] = frozenset( + { + "brother", + "father", + "mother", + "sister", + "never", + "over", + "under", + "morning", + "giving", + "thing", + } +) + +#: The stem must be ASCII letters only. `str.isalpha()` is Unicode-aware and would accept +#: letters JavaScript's `^[A-Za-z]+$` rejects; nothing in the shipped corpus exercises the +#: difference, a pasted corpus would (contract §2.2). +_STEM_RE = re.compile(r"[A-Za-z]+") + +#: A vacated word must itself be a single complete `WORD_RE` match — checked, not assumed. +_WHOLE_WORD_RE = re.compile(WORD_RE.pattern + r"\Z") + +# --- the phonotactic tables ------------------------------------------------------------- +# Contract §5.4, ported verbatim, ORDER SIGNIFICANT: the index into each list is what the +# byte stream selects, so reordering silently changes every nonce in both stacks. + +ONSETS: tuple[str, ...] = ( + "b", "br", "bl", "d", "dr", "f", "fl", "fr", "g", "gl", "gr", "h", + "j", "k", "kl", "kr", "l", "m", "n", "p", "pl", "pr", "r", "s", "sk", + "sl", "sm", "sn", "sp", "st", "str", "sw", "t", "tr", "th", "thr", + "v", "w", "wr", "y", "z", "sh", "shr", "ch", "gn", "sc", "sq", +) # fmt: skip + +NUCLEI: tuple[str, ...] = ( + "a", "e", "i", "o", "u", "ai", "ee", "ea", "oo", "ou", "oa", "ie", + "y", "au", "ur", "ir", "or", "ar", "er", +) # fmt: skip + +CODAS: tuple[str, ...] = ( + "", "b", "d", "f", "g", "k", "l", "m", "n", "p", "r", "s", "t", "v", + "z", "sh", "ch", "th", "ck", "ff", "ll", "mp", "nd", "ng", "nk", "nt", + "sk", "sp", "st", "ft", "lt", "lk", "rd", "rk", "rm", "rn", "rt", "ble", + "dle", "gle", "kle", "tle", "mble", "ndle", "ffle", "zzle", +) # fmt: skip + +UNSTRESSED_TAILS: tuple[str, ...] = ( + "y", "le", "er", "ow", "en", "el", "ish", "ous", "id", + "ic", "um", "ent", "ing", +) # fmt: skip + +#: Prefixes for an unstressed FIRST syllable. +UNSTRESSED_ONSETS: tuple[str, ...] = ("a", "be", "re", "de", "un", "en") + +#: The reduced coda set for an unstressed syllable. The duplicated empty string doubles its +#: weight; keep it (contract §5.4). +#: +#: **This table is UNREACHABLE and that is correct.** §5.5 step 2 has exactly three branches +#: and none of them draws from here, exactly as in the source, where `_syl(stressed=False)` +#: is never called. An earlier draft of the contract implied a fourth branch; it was +#: self-contradictory and has been removed. It is retained here for fidelity to the source's +#: tables and because **adding a use would shift the list indices the byte stream selects and +#: change every multi-syllable nonce in both stacks**. Do not "fix" it. +REDUCED_CODAS: tuple[str, ...] = ("", "", "l", "n", "r", "s") + +# --- prosody ---------------------------------------------------------------------------- + +#: Contract §6.1, ported verbatim from `tiny-seuss/synth/lexicon.py`: 61 polysyllables of the +#: Dolch list, "seeded by rule and then overridden by a hand table", and listed by the source +#: itself under *not yet exercised*. So we do not claim exact prosody and no UI string may: +#: the shipped corpus is *The Real Mother Goose*, most of whose types are not in this table +#: and therefore fall through to :func:`rule_syllables`. Every prosody statistic must be shown +#: with ``stressFromTable``, which is the honesty of every other prosody number. +#: `Santa Claus` is retained verbatim even though a word tokenizer can never match it. +STRESS_TABLE: dict[str, str] = { + "away": "01", "funny": "10", "little": "100", "yellow": "10", + "into": "10", "over": "10", "pretty": "10", "under": "10", + "after": "10", "again": "01", "any": "10", "every": "100", + "giving": "10", "once": "1", "open": "10", + "always": "100", "around": "01", "because": "01", "before": "01", + "seven": "10", "eight": "1", "myself": "01", "never": "10", + "only": "10", "today": "01", "together": "0100", "better": "10", + "carry": "10", "many": "10", "upon": "01", "very": "100", + "apple": "10", "baby": "10", "birthday": "100", "brother": "10", + "chicken": "10", "children": "100", "Christmas": "10", + "farmer": "10", "flower": "10", "garden": "10", "good-bye": "01", + "horse": "1", "kitty": "10", "letter": "10", "money": "10", + "morning": "10", "mother": "10", "paper": "100", "party": "10", + "picture": "10", "rabbit": "10", "robin": "10", "squirrel": "1", + "table": "10", "water": "10", "window": "10", "Santa Claus": "101", + "father": "10", "sister": "10", "summer": "10", +} # fmt: skip + +#: Contract §6.4. `anapest` is the Seuss engine (and Byron's *The Destruction of +#: Sennacherib*, which is where he got it). +FEET: dict[str, str] = {"anapest": "001", "iamb": "01", "trochee": "10", "dactyl": "100"} + +_VOWEL_GROUP_RE = re.compile(r"[aeiouy]+") +_NON_LOWER_RE = re.compile(r"[^a-z]") + +# --- minting ---------------------------------------------------------------------------- + +#: Collapse a run of three or more identical consonants to two (contract §5.5 step 3). +_RUN_RE = re.compile(r"([bcdfghjklmnpqrstvwxz])\1{2,}") + +#: Contract §5.5 step 5: deterministic, order-independent relaxations, unlike the source's +#: give-up counter. Reaching :data:`MINT_MAX_SALT` raises — it has never happened and if it +#: does we want to know. The three are counted from the mint call's STARTING salt, not from +#: zero: §5.5 writes the loop as `salt = 0, 1, 2, …`, but §5.8 starts a re-mint at +#: `1000 * round + previousSalt + 1`, and absolute thresholds would then make round 1 begin +#: with every quality check already relaxed and round 2 impossible (2001 > 1200), which +#: contradicts §5.2's "raise after 8 rounds". Counting from the start salt is the only +#: reading under which both sections are true; it is identical to the absolute reading for +#: the base build, where the start salt is 0. +MINT_RELAX_SYLLABLES_SALT = 400 +MINT_RELAX_LENGTH_SALT = 800 +MINT_MAX_SALT = 1200 + +#: Contract §5.2/§7.3: injectivity is verified, not assumed, and re-minted on collision. +MAX_REMINT_ROUNDS = 8 + +#: Contract §5.8: a re-mint jumps to a fresh region of the byte stream deterministically. +REMINT_SALT_STRIDE = 1000 + +#: Characters a seam repair may substitute (contract §5.7). +_SEAM_CHARS = "lnrtk" + + +# --- word segmentation ------------------------------------------------------------------ + + +def stem_and_suffix(word: str) -> tuple[str, str]: + """Split an inflectional suffix off `word` (contract §3). + + The suffixes are tried in :data:`SUFFIXES` order and the first match wins. A suffix `s` + matches iff ``lower(word).endswith(s)`` and ``len(word) - len(s) >= 3``. The split slices + the ORIGINAL word, so case is preserved. Words in :data:`SPLIT_EXCEPTIONS` are never + split. + + Preserving the suffix is what keeps the syntax parseable: the stem is vacated and the + suffix re-attached, so the nonce still looks inflected. + """ + lower = word.lower() + if lower in SPLIT_EXCEPTIONS: + return word, "" + for suffix in SUFFIXES: + if lower.endswith(suffix) and len(word) - len(suffix) >= 3: + cut = len(word) - len(suffix) + return word[:cut], word[cut:] + return word, "" + + +def is_eligible(stem: str, keep: frozenset[str] = FUNCTION_WORDS) -> bool: + """Is this stem open-class, i.e. may it be vacated at all? (Contract §2.2.) + + `keep` is the EFFECTIVE closed class — :data:`FUNCTION_WORDS` unioned with any caller + extras. Pass :attr:`VacancyParams.keep_set`, never :attr:`VacancyParams.keep`, or the + function words lose their protection. + + Test 2 is what makes hyphenated and apostrophised words behave as they do, and both + stacks must agree on it exactly: `good-bye` matches no suffix, so its stem contains a + hyphen and it is **never** vacated; `dog's` splits to `dog`, which passes, giving + ``'s``. + """ + return stem.lower() not in keep and _STEM_RE.fullmatch(stem) is not None and len(stem) > 2 + + +def match_case(src: str, new: str) -> str: + """Carry `src`'s capitalisation onto `new`, so `Jack` becomes `Flim`, not `flim`. + + Applied to the WHOLE assembled surface form with the ORIGINAL WHOLE WORD as `src` + (contract §5.7), never to the nonce alone with a case-preserved suffix appended after — + that is what broke `GUMS`. + """ + if src.isupper() and len(src) > 1: + return new.upper() + if src[:1].isupper(): + return new[:1].upper() + new[1:] + return new + + +# --- the vacancy decision --------------------------------------------------------------- + + +def vacancy_u(stem: str, seed: int) -> float: + """The stem's position in [0, 1) — vacate iff ``u(stem) < p`` (contract §4). + + ``u`` is a function of ``(seed, stem)`` alone: not of `p`, not of traversal order, not of + which other words exist. That is what makes the vacated sets NESTED as `p` grows, which is + the first of the two properties a `p`-sweep needs to be interpretable. + + The ``>> 11`` is mandatory and is a departure from the source (which used + ``top64 / 2**64``). A 64-bit integer divided by 2**64 is not exactly representable as a + float64, so Python and JavaScript can round to different doubles for the same digest and + disagree about a word at the boundary. Shifting to 53 bits makes the numerator exactly + representable, so ``u`` is *the same double* in both languages. + """ + digest = hashlib.sha256(f"{seed}:{stem.lower()}".encode("utf-8")).digest() + return (int.from_bytes(digest[:8], "big") >> 11) / 2**53 + + +# --- prosody ---------------------------------------------------------------------------- + + +def rule_syllables(word: str) -> int: + """The spelling fallback for syllable counting (contract §6.2). + + The source has a further ``if w.endswith("le") ...: pass`` branch; it is dead code and is + not ported, so this is byte-identical to the source's behaviour. + """ + w = _NON_LOWER_RE.sub("", word.lower().strip("'-")) + if not w: + return 1 + n = len(_VOWEL_GROUP_RE.findall(w)) + if w.endswith("e") and n > 1 and not w.endswith(("le", "ee", "ye")): + n -= 1 + return max(1, n) + + +def stress_source(word: str, minted_stress: Mapping[str, str] | None = None) -> str: + """Where :func:`stress` got its answer: ``"minted"``, ``"table"``, or ``"rule"``. + + ``"table"`` is the fraction the UI must publish next to every prosody number — it is the + part that a human has (nominally) checked. ``"minted"`` is exact by construction but is a + form we invented, and ``"rule"`` is a spelling guess. + """ + lower = word.lower() + if minted_stress and lower in minted_stress: + return "minted" + if word in STRESS_TABLE or lower in STRESS_TABLE: + return "table" + return "rule" + + +def stress(word: str, minted_stress: Mapping[str, str] | None = None) -> str: + """The stress pattern of `word` as a string of ``0``/``1`` (contract §6.3). + + Lookup order, exactly: the minted patterns (so prosody scoring on a vacated corpus is + exact *for the forms we minted*), then :data:`STRESS_TABLE` case-sensitively (for + `Christmas`), then case-insensitively, then the spelling rule. + + `minted_stress` is a parameter rather than the source's module-level global: a global + would make the answer depend on which corpora had been transformed earlier in the process. + """ + lower = word.lower() + if minted_stress and lower in minted_stress: + return minted_stress[lower] + if word in STRESS_TABLE: + return STRESS_TABLE[word] + if lower in STRESS_TABLE: + return STRESS_TABLE[lower] + n = rule_syllables(lower) + return "1" if n == 1 else "1" + "0" * (n - 1) + + +def syllables(word: str, minted_stress: Mapping[str, str] | None = None) -> int: + """``len(stress(word))`` — the syllable count implied by the stress pattern.""" + return len(stress(word, minted_stress)) + + +def scan(line: str, minted_stress: Mapping[str, str] | None = None) -> str: + """The line's concatenated stress string, e.g. ``0100100100``. + + Words are found with the tokenizer's regex but NOT lowercased, so the case-sensitive + :data:`STRESS_TABLE` lookup can still fire. + """ + return "".join(stress(t, minted_stress) for t in WORD_RE.findall(line)) + + +def meter_score( + line: str, foot: str = "anapest", minted_stress: Mapping[str, str] | None = None +) -> float: + """Fraction of syllable positions in `line` that match the repeating `foot`. + + ``0.0`` for a line with no syllables (contract §6.4). + """ + if foot not in FEET: + raise InvalidParamError( + f"unknown foot {foot!r}; expected one of {sorted(FEET)}", + {"foot": foot}, + ) + s = scan(line, minted_stress) + if not s: + return 0.0 + pattern = FEET[foot] + target = (pattern * (len(s) // len(pattern) + 1))[: len(s)] + return sum(a == b for a, b in zip(s, target)) / len(s) + + +# --- the deterministic byte stream ------------------------------------------------------ + + +class _ByteStream: + """A sha256 counter stream (contract §5.3), trivially identical in both languages. + + ``random.Random`` cannot be ported: MT19937 seeded from a string is not reproducible in + TypeScript without reimplementing the generator *and* `Random.choice`'s masking. + """ + + __slots__ = ("_prefix", "_counter", "_block", "_offset") + + def __init__(self, seed: int, stem: str, salt: int) -> None: + self._prefix = f"{seed}:mint:{stem}:{salt}:" + self._counter = 0 + self._block = hashlib.sha256(f"{self._prefix}0".encode("utf-8")).digest() + self._offset = 0 + + def u32(self) -> int: + """The next big-endian unsigned 32-bit word, refilling from the next counter.""" + if self._offset + 4 > len(self._block): + self._counter += 1 + self._block = hashlib.sha256(f"{self._prefix}{self._counter}".encode("utf-8")).digest() + self._offset = 0 + value = int.from_bytes(self._block[self._offset : self._offset + 4], "big") + self._offset += 4 + return value + + def choice(self, options: Sequence[str]) -> str: + """``options[u32() % len(options)]``. + + Every list here is shorter than 256, so the modulo bias is aesthetic rather than + statistical — but both stacks must bias IDENTICALLY, which this does. + """ + return options[self.u32() % len(options)] + + +def _mint( + stem: str, + seed: int, + match_prosody: bool, + forbidden: frozenset[str] | set[str], + start_salt: int = 0, +) -> tuple[str, str, int]: + """Mint one nonce for `stem`, returning ``(nonce, intended stress pattern, salt)``. + + Contract §5.5. Depends only on ``(seed, stem, match_prosody, forbidden, start_salt)`` — + and `forbidden` depends only on the canonically-ordered prefix of stems before this one — + so a stem's nonce is the same at every `p`. That is the stability property (§5.6). + + The accepting salt is returned because §5.8 needs it: a re-mint restarts at + ``REMINT_SALT_STRIDE * round + previousSalt + 1``. + + Three branches in step 2, in that order, exactly as §5.5 spells them out. There is no + fourth: :data:`REDUCED_CODAS` is unreachable here, as it is in the source, where + ``_syl(stressed=False)`` is never called. **Do not "fix" this** — a fourth branch would + shift every list index the byte stream selects and change every multi-syllable nonce. + """ + pattern = stress(stem) if match_prosody else "1" + n_syl = len(pattern) + salt = start_salt + while salt - start_salt < MINT_MAX_SALT: + rnd = _ByteStream(seed, stem, salt) + tried = salt - start_salt + parts: list[str] = [] + for i, mark in enumerate(pattern): + if mark == "1": + parts.append(rnd.choice(ONSETS) + rnd.choice(NUCLEI) + rnd.choice(CODAS)) + elif i == 0: + parts.append(rnd.choice(UNSTRESSED_ONSETS)) + else: + parts.append(rnd.choice(UNSTRESSED_TAILS)) + w = _RUN_RE.sub(r"\1\1", "".join(parts)) + long_enough = len(w) >= 3 or tried >= MINT_RELAX_LENGTH_SALT + right_length = syllables(w) == n_syl or tried >= MINT_RELAX_SYLLABLES_SALT + if long_enough and right_length and w not in forbidden: + return w, pattern, salt + salt += 1 + raise ComputeError( + f"could not mint a nonce for {stem!r} in {MINT_MAX_SALT} attempts", + {"stem": stem, "seed": seed, "pattern": pattern, "start_salt": start_salt}, + ) + + +def _seam_fix(nonce: str, suffix: str, stem: str, seed: int) -> str: + """Repair a seam like ``wee`` + ``er`` -> ``weeer`` (contract §5.7). + + Deterministic in `(stem, suffix)`, so it is order-independent — the source used a shared + RNG here, which is not. The substitution is applied once, not looped: the hash is fixed, + so a loop would never terminate on a repeat. + + `stem` and `suffix` must already be LOWERCASED; see :func:`surface_form`. + """ + if not suffix or not nonce or nonce[-1] != suffix[0]: + return nonce + digest = hashlib.sha256(f"{seed}:seam:{stem}:{suffix}".encode("utf-8")).digest() + return nonce[:-1] + _SEAM_CHARS[int.from_bytes(digest[:4], "big") % len(_SEAM_CHARS)] + + +def surface_form(nonce: str, stem: str, suffix: str, seed: int) -> str: + """The assembled, LOWERCASED output of §5.7 — seam repaired, suffix re-attached. + + This is the unit the injectivity conditions of §5.2 are stated over, and the only place + the transform assembles anything, so the case-commuting invariant + + ``lower(transform_word(w)) == transform_word(lower(w))`` + + holds by construction: nothing downstream of here branches on case. + """ + key, tail = stem.lower(), suffix.lower() + return _seam_fix(nonce, tail, key, seed) + tail + + +# --- parameters ------------------------------------------------------------------------- + + +@dataclass(frozen=True) +class VacancyParams: + """The knobs of contract §7.1. + + Three of them — `p`, `seed`, `match_prosody` — are INVISIBLE to a word-level model + trained from scratch, because such a model never sees the letters: with + ``consistent=True`` and ``reveal_after=0`` the transform is a pure relabelling of the + vocabulary and training is bit-identical. Only the knobs that break type identity + (``consistent=False``, ``reveal_after>0``) can move a loss. That is the honest tiny-arm + result and it is worth stating plainly rather than dressing a null up as a curve. + """ + + #: Fraction of eligible TYPES vacated. Compared as given; the UI emits two decimal + #: places and both stacks parse it as a float64. + p: float = 0.0 + #: Selects both `u` and the nonce assignment. + seed: int = 0 + #: One nonce per source type, corpus-wide. ``False`` is the source's "inconsistent + #: assignment" control: same vacancy rate, no learnable identity, and DELIBERATELY no + #: stability property. + consistent: bool = True + #: The nonce carries the stem's syllable count and stress. + match_prosody: bool = True + #: The first N occurrences of a vacated stem keep their English form, seeding a partial + #: location. ``0`` is the pure case. + reveal_after: int = 0 + #: Extra words added to the closed class. The effective set is + #: ``FUNCTION_WORDS | lower(keep)`` — see :attr:`keep_set`. + keep: frozenset[str] = frozenset() + + _keep_set: frozenset[str] = field(default=frozenset(), repr=False, compare=False) + + def __post_init__(self) -> None: + if isinstance(self.p, bool) or not isinstance(self.p, (int, float)): + raise InvalidParamError(f"p must be a number, got {self.p!r}", {"p": self.p}) + if not math.isfinite(self.p) or not 0.0 <= self.p <= 1.0: + raise InvalidParamError(f"p must lie in [0, 1], got {self.p!r}", {"p": self.p}) + if isinstance(self.seed, bool) or not isinstance(self.seed, int): + raise InvalidParamError(f"seed must be an int, got {self.seed!r}", {"seed": self.seed}) + if isinstance(self.reveal_after, bool) or not isinstance(self.reveal_after, int): + raise InvalidParamError( + f"reveal_after must be an int, got {self.reveal_after!r}", + {"reveal_after": self.reveal_after}, + ) + if self.reveal_after < 0: + raise InvalidParamError( + f"reveal_after must be >= 0, got {self.reveal_after}", + {"reveal_after": self.reveal_after}, + ) + for w in self.keep: + if not isinstance(w, str): + raise InvalidParamError( + f"keep must contain strings, got {w!r}", {"keep": sorted(map(str, self.keep))} + ) + object.__setattr__(self, "keep", frozenset(self.keep)) + object.__setattr__(self, "_keep_set", FUNCTION_WORDS | {w.lower() for w in self.keep}) + + @property + def keep_set(self) -> frozenset[str]: + """The EFFECTIVE closed class: :data:`FUNCTION_WORDS` plus the caller's extras.""" + return self._keep_set + + +# --- the map ---------------------------------------------------------------------------- + + +class _RewriteState: + """Per-rewrite bookkeeping for the order-DEPENDENT conditions only. + + ``consistent=True, reveal_after=0`` — the condition the invariance theorem is stated for — + touches nothing here except the counter, and the counter never changes an output. + """ + + __slots__ = ("counts", "used") + + def __init__(self, used: set[str]) -> None: + self.counts: dict[str, int] = {} + self.used = used + + +@dataclass(frozen=True) +class VacancyMap: + """A `p`-independent stem -> nonce assignment, plus the evidence that it is injective. + + Built once over the whole type set in canonical order (contract §5.2), so the map at any + `p` is just the restriction of this one map to ``{stem : u(stem) < p}``. Nesting and + stability are therefore structural facts rather than properties to be hoped for. + + The two mappings are plain dicts for cheap lookup and must not be mutated by callers; the + only writer is the inconsistent-assignment control, which registers the patterns of the + forms it mints so that prosody scoring stays exact. + """ + + #: ``lower(stem) -> nonce``. + mapping: dict[str, str] + #: ``nonce -> intended stress pattern``, for :func:`stress`'s first lookup. + minted_stress: dict[str, str] + seed: int + match_prosody: bool + #: Lowercased forms a nonce may never take — the corpus type set, so a minted form can + #: never silently merge with a real English word. + avoid: frozenset[str] + #: ``|image|`` of the type set the map was built over, at full vacancy. + image_size: int + #: ``|types|`` it was built over. + type_count: int + #: ``image_size == type_count``. The relabelling theorem depends on it. + bijective: bool + #: How many collision-driven re-mint rounds were needed. Expected to be 0. + remint_rounds: int + + def nonce_for(self, stem: str) -> str | None: + """The nonce assigned to `stem`, or ``None`` if the stem is outside the domain.""" + return self.mapping.get(stem.lower()) + + def apply_word(self, word: str, params: VacancyParams) -> str: + """Transform a single word in isolation. + + Convenience for one-off queries and for the order-INDEPENDENT conditions. Rewriting a + text goes through :func:`vacate_text`, which threads the occurrence counters that + ``reveal_after`` and ``consistent=False`` need. + """ + return self._transform(word, params, _RewriteState(set(self.mapping.values()))) + + def _transform(self, word: str, params: VacancyParams, state: _RewriteState) -> str: + stem, suffix = stem_and_suffix(word) + if not is_eligible(stem, params.keep_set): + return word + key = stem.lower() + if vacancy_u(key, params.seed) >= params.p: + return word + seen = state.counts.get(key, 0) + 1 + state.counts[key] = seen + if seen <= params.reveal_after: + return word + + if params.consistent: + nonce = self.mapping.get(key) + if nonce is None: + raise ComputeError( + f"stem {key!r} is outside the vacancy map's domain — the map must be " + "built over the union of the corpus types and the budget's words", + {"stem": key}, + ) + else: + # The inconsistent-assignment control: the nonce is derived from + # (stem, occurrence index) in document order, so every occurrence is a fresh + # type. This condition has NO stability property; destroying the field while + # holding the vacancy rate fixed is its entire purpose. + # §5.8 pins the key: `f"{stem}#{idx}"` with `idx` the 0-based occurrence index + # of the STEM in document order. `#` is not a legal `WORD_RE` character, so the + # key can never collide with a real stem. + nonce, pattern, _salt = _mint( + f"{key}#{seen - 1}", + params.seed, + params.match_prosody, + self.avoid | state.used, + ) + state.used.add(nonce) + self.minted_stress.setdefault(nonce, pattern) + + out = match_case(word, surface_form(nonce, key, suffix, params.seed)) + if _WHOLE_WORD_RE.fullmatch(out) is None: + raise ComputeError( + f"vacating {word!r} produced {out!r}, which is not a single complete word " + "token — the token stream would no longer align with the original", + {"word": word, "output": out}, + ) + return out + + +def _image_of(word: str, mapping: Mapping[str, str], keep: frozenset[str], seed: int) -> str: + """A lowercased type at full vacancy, used only by the injectivity check.""" + stem, suffix = stem_and_suffix(word) + if not is_eligible(stem, keep): + return word + nonce = mapping.get(stem.lower()) + if nonce is None: + return word + return surface_form(nonce, stem, suffix, seed) + + +def build_vacancy_map( + types: Iterable[str], params: VacancyParams, avoid: Iterable[str] = () +) -> VacancyMap: + """Assign every eligible stem a nonce, once, in canonical order (contract §5.2). + + `types` must be the union of the corpus's type set AND the budget's word list: a budget + word absent from the corpus still needs an image, or the mapped vocabulary of §7.2 has a + hole in it. `avoid` is the lowercased corpus type set, so a nonce can never collide with + a real word — the source accepts an `avoid` parameter and then never passes one, which + lets a minted form silently merge with an English type. + + `p` is deliberately unused: the map is built over ALL eligible stems and restricted to + ``{u < p}`` at rewrite time. That is what makes nesting and stability structural. + + **Injectivity is verified over assembled SURFACE FORMS, and the condition is + `p`-independent** (§5.2). Both must hold over the domain: + + * **A.** the surface forms are pairwise distinct + * **B.** no surface form equals any lowercased domain type, eligible or not + + A bare-nonce check is not enough — the collision arrives through the suffix — and a check + performed at `p = 1` only is not enough either, because at full vacancy every eligible + type has moved and nothing is left for a minted form to collide with. B is deliberately + conservative: it forbids a minted form from equalling a word that would always have been + vacated alongside it, and that costs a re-mint but buys a condition independent of `p`, + which is what the theorem needs. Measured cost on the shipped corpus: one re-mint at + seed 7, where `hang` first minted `wak` and `hanged` surfaced as the real word `waked`. + + On violation only the LOSING stem is re-minted — the one later in ASCII-ascending order + among those involved — at salt ``1000 * round + previousSalt + 1``, so a re-mint never + cascades (§5.8). + """ + keep = params.keep_set + type_set = {t.lower() for t in types} + avoid_set = frozenset(w.lower() for w in avoid) + + pairs: list[tuple[str, str]] = [] + stem_set: set[str] = set() + for t in sorted(type_set): + stem, suffix = stem_and_suffix(t) + if not is_eligible(stem, keep): + continue + pairs.append((stem.lower(), suffix.lower())) + stem_set.add(stem.lower()) + + mapping: dict[str, str] = {} + minted_stress: dict[str, str] = {} + salts: dict[str, int] = {} + forbidden: set[str] = set(avoid_set) + for stem in sorted(stem_set): + nonce, pattern, salt = _mint(stem, params.seed, params.match_prosody, forbidden) + forbidden.add(nonce) + mapping[stem] = nonce + minted_stress[nonce] = pattern + salts[stem] = salt + + rounds = 0 + while True: + claimed: dict[str, str] = {} # surface -> the stem that owns it + losers: set[str] = set() + for stem, suffix in pairs: + form = surface_form(mapping[stem], stem, suffix, params.seed) + if form in type_set: # condition B + losers.add(stem) + if form in claimed: # condition A + losers.add(max(stem, claimed[form])) + else: + claimed[form] = stem + if not losers: + break + if rounds >= MAX_REMINT_ROUNDS: + raise ComputeError( + f"vacancy map still collides after {MAX_REMINT_ROUNDS} re-mint rounds", + {"stems": sorted(losers)[:20], "rounds": rounds}, + ) + rounds += 1 + for stem in sorted(losers): + others = {n for s, n in mapping.items() if s != stem} + nonce, pattern, salt = _mint( + stem, + params.seed, + params.match_prosody, + avoid_set | others, + start_salt=REMINT_SALT_STRIDE * rounds + salts[stem] + 1, + ) + minted_stress.pop(mapping[stem], None) + mapping[stem] = nonce + minted_stress[nonce] = pattern + salts[stem] = salt + + seen = {_image_of(t, mapping, keep, params.seed) for t in type_set} + return VacancyMap( + mapping=mapping, + minted_stress=minted_stress, + seed=params.seed, + match_prosody=params.match_prosody, + avoid=avoid_set, + image_size=len(seen), + type_count=len(type_set), + bijective=len(seen) == len(type_set), + remint_rounds=rounds, + ) + + +# --- rewriting -------------------------------------------------------------------------- + + +def vacate_text(text: str, vmap: VacancyMap, params: VacancyParams) -> str: + """Rewrite `text` in place, vacating every eligible stem with ``u(stem) < p``. + + Words are found with **exactly the tokenizer's regex** and everything else — whitespace, + punctuation, digits, line breaks — passes through unchanged, byte for byte. Every output + is itself a single complete `WORD_RE` match (checked in :meth:`VacancyMap._transform`), + so ``tokenize(vacate(text))`` has the same length and ordering as ``tokenize(text)``, and + because line breaks are untouched the ````-per-line rule produces the same number of + ```` in the same places. + """ + state = _RewriteState(set(vmap.mapping.values())) + return WORD_RE.sub(lambda m: vmap._transform(m.group(0), params, state), text) + + +def map_vocab_words(words: Sequence[str], vmap: VacancyMap, params: VacancyParams) -> list[str]: + """Push a budget's word list through the same transform, PRESERVING ORDER (§7.2). + + Since the map is injective, ``itos_p = SPECIALS ++ map_vocab_words(words, ...)`` assigns + every word the id its pre-image had, which is why the token id stream is unchanged and + training is bit-identical. + + This rule is only valid in the condition it is stated for. Under ``consistent=False`` or + ``reveal_after > 0`` a source type no longer has a single image, so the budget must be + REBUILT from the vacated corpus instead — the collapse in coverage is the measurement. + Calling this there would quietly manufacture a vocabulary that matches no corpus. + """ + if not params.consistent or params.reveal_after: + raise InvalidParamError( + "the mapped vocabulary is only defined for consistent=True, reveal_after=0; " + "every other condition rebuilds the budget from the vacated corpus", + {"consistent": params.consistent, "reveal_after": params.reveal_after}, + ) + state = _RewriteState(set(vmap.mapping.values())) + return [vmap._transform(w, params, state) for w in words] + + +# --- statistics ------------------------------------------------------------------------- + + +@dataclass(frozen=True) +class _Prosody: + """One side of the prosody statistics, token-weighted. + + ``from_table + from_minted + from_rule == 1`` by construction: :func:`stress_source` + partitions the tokens. + """ + + mean_syllables: float + mean_anapest: float + from_table: float + from_minted: float + from_rule: float + + +def _prosody(text: str, minted_stress: Mapping[str, str] | None) -> _Prosody: + words = WORD_RE.findall(text) + if not words: + return _Prosody(0.0, 0.0, 0.0, 0.0, 0.0) + total_syllables = sum(syllables(w, minted_stress) for w in words) + sources = [stress_source(w, minted_stress) for w in words] + lines = [ln for ln in text.splitlines() if WORD_RE.search(ln)] + anapest = ( + sum(meter_score(ln, "anapest", minted_stress) for ln in lines) / len(lines) + if lines + else 0.0 + ) + return _Prosody( + mean_syllables=total_syllables / len(words), + mean_anapest=anapest, + from_table=sources.count("table") / len(words), + from_minted=sources.count("minted") / len(words), + from_rule=sources.count("rule") / len(words), + ) + + +def vacancy_stats( + original: str, vacated: str, vmap: VacancyMap, params: VacancyParams +) -> dict[str, float | int | bool]: + """The statistics contract (§10), with exactly these field names. + + ``typesVacated`` and ``tokensVacated`` are MEASURED from the two texts rather than read + off the map: the source reports ``len(self.map)``, which is the size of the assignment + and not the number of stems actually vacated, and which is wrong under ``reveal_after`` + and under the inconsistent-assignment control. + + The prosody numbers ship with a THREE-WAY split of where each token's stress came from, + token-weighted and summing to 1 on each side (§10). A single "table coverage" number was + ambiguous the moment minted forms existed — read literally it counts only the hand table, + read as "stress we actually know" it also counts forms we minted, and the two readings + differ by a factor of thirty. So: + + * ``stressFromTable*`` — the 61-entry hand table of §6.1, the honesty number for English + words; + * ``stressFromMinted*`` — forms we minted and registered a pattern for. Known by + construction but ASSERTED rather than verified: §5.5 accepts a candidate on syllable + COUNT, so the count is checked and the pattern is not; + * ``stressFromRule*`` — the spelling heuristic of §6.2, i.e. a guess. + + The source's own numbers (mean anapest 0.351 -> 0.345, mean syllables 1.224 -> 1.211) are + its numbers on a corpus we do not have. They are not transcribed anywhere. + """ + before_words = WORD_RE.findall(original) + after_words = WORD_RE.findall(vacated) + if len(before_words) != len(after_words): + raise ComputeError( + f"vacating changed the token count ({len(before_words)} -> {len(after_words)}); " + "the token streams no longer align", + {"tokens_before": len(before_words), "tokens_after": len(after_words)}, + ) + + keep = params.keep_set + types = {w.lower() for w in before_words} + eligible = {t for t in types if is_eligible(stem_and_suffix(t)[0], keep)} + changed = [b.lower() for b, a in zip(before_words, after_words) if b.lower() != a.lower()] + + # The original text is English, so it is scored WITHOUT the minted patterns; `avoid` + # guarantees no English type is also a nonce, so `stressFromMintedBefore` is 0 by + # construction rather than by omission. + before = _prosody(original, None) + after = _prosody(vacated, vmap.minted_stress) + + return { + "typesTotal": len(types), + "typesEligible": len(eligible), + "typesVacated": len(set(changed)), + "tokensTotal": len(before_words), + "tokensVacated": len(changed), + "meanSyllablesBefore": before.mean_syllables, + "meanSyllablesAfter": after.mean_syllables, + "meanAnapestBefore": before.mean_anapest, + "meanAnapestAfter": after.mean_anapest, + "stressFromTableBefore": before.from_table, + "stressFromTableAfter": after.from_table, + "stressFromMintedBefore": before.from_minted, + "stressFromMintedAfter": after.from_minted, + "stressFromRuleBefore": before.from_rule, + "stressFromRuleAfter": after.from_rule, + "bijective": vmap.bijective, + "imageSize": vmap.image_size, + "remintRounds": vmap.remint_rounds, + } diff --git a/code/backend/tests/unit/test_lex_vacancy.py b/code/backend/tests/unit/test_lex_vacancy.py new file mode 100644 index 0000000..ba0eaf9 --- /dev/null +++ b/code/backend/tests/unit/test_lex_vacancy.py @@ -0,0 +1,710 @@ +"""The vacancy transform, checked against the properties a `p`-sweep depends on. + +Everything here runs on the REAL committed corpus (`The Real Mother Goose`) and the real +Dolch budgets. No fixtures, no mocks: the transform's whole claim is about what happens to a +real English text, and a synthetic string would not exercise the cases that matter +(`good-bye`, `don't`, `dog's`, capitalised line openers, hyphenated compounds). + +The four properties, in the order the contract states them +(`specs/007-vacancy-transform-field/architecture.md`): + +* NESTING (SC-701) — `u` depends only on `(seed, stem)`, so the vacated set at `p` is a + subset of the vacated set at any larger `p`. +* STABILITY (SC-702) — the map is built once, in canonical order, independently of `p` and of + document order, so a stem's nonce is the same everywhere it appears. +* INVARIANCE (SC-703) — with `consistent=True, reveal_after=0` and a mapped vocabulary the + token id stream is unchanged, so a word-level model is *exactly* invariant to `p`. +* INJECTIVITY (SC-704) — verified on the real type set, not assumed; the theorem depends on + it. +""" + +from __future__ import annotations + +import random + +import pytest + +from llm_geometry.errors import ComputeError, InvalidParamError +from llm_geometry.lex.corpus import load_corpus_text +from llm_geometry.lex.dolch import dolch_budget +from llm_geometry.lex.vacancy import ( + FUNCTION_WORDS, + SPLIT_EXCEPTIONS, + STRESS_TABLE, + SUFFIXES, + VacancyMap, + VacancyParams, + build_vacancy_map, + is_eligible, + map_vocab_words, + meter_score, + stem_and_suffix, + stress, + stress_source, + syllables, + vacancy_stats, + vacancy_u, + vacate_text, +) +from llm_geometry.lex.vocab import WORD_RE, LexVocab, tokenize + +P_GRID = (0.0, 0.25, 0.5, 0.75, 1.0) +SEEDS = (0, 7) + + +@pytest.fixture(scope="module") +def corpus() -> str: + return load_corpus_text() + + +@pytest.fixture(scope="module") +def corpus_types(corpus: str) -> list[str]: + return sorted(set(tokenize(corpus))) + + +@pytest.fixture(scope="module") +def budget() -> list[str]: + """The full Dolch list — the budget whose words must also be in the map's domain.""" + return dolch_budget("full") + + +@pytest.fixture(scope="module") +def domain(corpus_types: list[str], budget: list[str]) -> list[str]: + """Contract §5.2: the corpus's types UNION the budget's words.""" + return sorted(set(corpus_types) | set(budget)) + + +@pytest.fixture(scope="module") +def maps(domain: list[str], corpus_types: list[str]) -> dict[int, VacancyMap]: + """One map per seed, built once — they are `p`-independent by construction.""" + return { + seed: build_vacancy_map(domain, VacancyParams(p=1.0, seed=seed), avoid=corpus_types) + for seed in SEEDS + } + + +@pytest.fixture(scope="module") +def vacated(corpus: str, maps: dict[int, VacancyMap]) -> dict[tuple[int, float], str]: + """The vacated corpus at every (seed, p) on the grid.""" + out = {} + for seed in SEEDS: + for p in P_GRID: + params = VacancyParams(p=p, seed=seed) + out[(seed, p)] = vacate_text(corpus, maps[seed], params) + return out + + +def _changed_types(original: str, vacated_text: str) -> set[str]: + """The source types whose surface actually changed, measured from the two texts.""" + before = WORD_RE.findall(original) + after = WORD_RE.findall(vacated_text) + assert len(before) == len(after) + return {b.lower() for b, a in zip(before, after) if b != a} + + +def _images(original: str, vacated_text: str) -> dict[str, set[str]]: + """source TYPE -> the set of lower-cased surfaces it was rewritten to. + + Keyed on the lower-cased word, which is what the tokenizer sees. That is the strong + question, and the transform must survive it — see + :func:`test_transform_commutes_with_lowercasing_over_the_whole_corpus`. + """ + images: dict[str, set[str]] = {} + for b, a in zip(WORD_RE.findall(original), WORD_RE.findall(vacated_text)): + images.setdefault(b.lower(), set()).add(a.lower()) + return images + + +# --- the verbatim tables ---------------------------------------------------------------- + + +def test_closed_class_is_the_curated_list_only(): + """The source's warning, kept: an earlier version unioned this with the short Dolch + service words, which silently protected content verbs and understated the vacancy rate.""" + assert len(FUNCTION_WORDS) == 137 + for w in ("run", "eat", "see", "get", "let", "put"): + assert w not in FUNCTION_WORDS, f"{w} is a content verb, not closed class" + for w in ("the", "and", "never", "ten"): + assert w in FUNCTION_WORDS + assert all(w == w.lower() for w in FUNCTION_WORDS) + + +def test_suffix_order_is_load_bearing(): + """`ies` must be tried before `es` and `s`, `edly` before `ed`.""" + assert SUFFIXES.index("ies") < SUFFIXES.index("es") < SUFFIXES.index("s") + assert SUFFIXES.index("edly") < SUFFIXES.index("ed") + assert stem_and_suffix("berries") == ("berr", "ies") + + +def test_split_exceptions_come_from_the_audited_copy(): + """Without them `brother -> broth+er` and `morning -> morn+ing`, which the source itself + flags as a known artifact.""" + assert "brother" in SPLIT_EXCEPTIONS and "morning" in SPLIT_EXCEPTIONS + assert stem_and_suffix("brother") == ("brother", "") + assert stem_and_suffix("morning") == ("morning", "") + # ... and it is a spelling heuristic, still wrong outside the list. Documented, not fixed. + assert stem_and_suffix("ladder") == ("ladd", "er") + + +# --- eligibility, contract §2.2 --------------------------------------------------------- + + +def test_good_bye_is_never_vacated(maps): + """No suffix matches, so the stem contains a hyphen and fails the ASCII-letters test.""" + assert stem_and_suffix("good-bye") == ("good-bye", "") + assert not is_eligible("good-bye") + for seed in SEEDS: + assert maps[seed].apply_word("good-bye", VacancyParams(p=1.0, seed=seed)) == "good-bye" + assert "good-bye" not in maps[seed].mapping + + +def test_dont_is_never_vacated(maps): + """The MECHANISM, not just the outcome (§2.2). The `n't` suffix does NOT split `don't`, + because §3's length rule needs `len(word) - len(suffix) >= 3` and `5 - 3 = 2`. The stem is + therefore the whole `don't`, which contains an apostrophe and fails eligibility test 2 — + the ASCII-letters test — rather than test 3, the length test.""" + assert stem_and_suffix("don't") == ("don't", "") + assert not is_eligible("don't") + assert len("don't") - len("n't") == 2 # < 3, which is why no split happens + assert len("don't") > 2 # so it is test 2 that rejects it, not test 3 + for seed in SEEDS: + assert maps[seed].apply_word("don't", VacancyParams(p=1.0, seed=seed)) == "don't" + + +def test_dogs_apostrophe_s_keeps_its_suffix(maps): + """`dog's` splits to `dog`, which passes; the output is `'s`.""" + assert stem_and_suffix("dog's") == ("dog", "'s") + assert is_eligible("dog") + for seed in SEEDS: + params = VacancyParams(p=1.0, seed=seed) + out = maps[seed].apply_word("dog's", params) + assert out.endswith("'s") + assert out[:-2].lower() == maps[seed].mapping["dog"] or out[:-2].lower() != "dog" + assert out != "dog's" + + +def test_short_and_closed_class_stems_are_ineligible(): + assert not is_eligible("cat"[:2]) # len 2 + assert not is_eligible("the") + assert is_eligible("cat") + # `keep` extends the closed class. + assert not is_eligible("cat", FUNCTION_WORDS | {"cat"}) + + +def test_unicode_letters_are_not_ascii_letters(): + """`str.isalpha()` would accept these; JavaScript's `^[A-Za-z]+$` does not.""" + assert not is_eligible("café") + assert not is_eligible("naïve") + + +# --- the vacancy decision, contract §4 -------------------------------------------------- + + +def test_u_is_a_53_bit_double_and_depends_only_on_seed_and_stem(): + for stem in ("candle", "mother", "jack", "z"): + u = vacancy_u(stem, 0) + assert 0.0 <= u < 1.0 + # The `>> 11` exists so the numerator is exactly representable; if it were not, this + # product would not be an integer and the two stacks could disagree at the boundary. + assert (u * 2**53).is_integer() + assert vacancy_u(stem, 0) == u + assert vacancy_u(stem.upper(), 0) == u + assert vacancy_u(stem, 1) != u + + +def test_nesting_across_p_grid_and_two_seeds(corpus, vacated): + """SC-701. The vacated sets grow monotonically with `p`, measured from the output.""" + for seed in SEEDS: + sets = [_changed_types(corpus, vacated[(seed, p)]) for p in P_GRID] + for smaller, larger in zip(sets, sets[1:]): + assert smaller <= larger + assert sets[0] == set() + assert len(sets[-1]) > len(sets[0]) + # And it is genuinely graded, not a step function. + assert len(sets[1]) < len(sets[2]) < len(sets[3]) < len(sets[4]) + + +def test_vacancy_rate_tracks_p(corpus, corpus_types, vacated): + """`p` is the fraction of ELIGIBLE TYPES vacated, so the measured rate should sit close + to `p` — this is a distributional check on `u`, not a re-implementation of it.""" + eligible = {t for t in corpus_types if is_eligible(stem_and_suffix(t)[0])} + for seed in SEEDS: + for p in (0.25, 0.5, 0.75): + rate = len(_changed_types(corpus, vacated[(seed, p)])) / len(eligible) + assert abs(rate - p) < 0.05, f"seed={seed} p={p} rate={rate}" + + +# --- stability, contract §5.6 ----------------------------------------------------------- + + +def test_a_stems_nonce_is_identical_at_every_p(corpus, maps, vacated): + """SC-702. Nothing about the assignment may depend on `p`.""" + for seed in SEEDS: + per_p = [_images(corpus, vacated[(seed, p)]) for p in P_GRID] + for word in per_p[-1]: + surfaces = {img for images in per_p for img in images.get(word, set()) if img != word} + assert len(surfaces) <= 1, f"{word} took {surfaces} across the p-sweep" + # ... and the assignment itself, which is what SC-702 is stated over. + for stem, nonce in maps[seed].mapping.items(): + for p in P_GRID: + if vacancy_u(stem, seed) < p: + assert maps[seed].nonce_for(stem) == nonce + + +# --- the case-commuting invariant, contract §5.7 ---------------------------------------- + + +def test_transform_commutes_with_lowercasing_over_the_whole_corpus(corpus, maps): + """The normative invariant of §5.7: `lower(transform(w)) == transform(lower(w))`. + + The tokenizer lowercases, so a step that branches on case — a seam test against a + case-preserved suffix, say — gives one TYPE two surface forms and §7.3 is false. This is + the test that would have caught `gums -> flels` while `GUMS -> FLESS`. + """ + params = VacancyParams(p=1.0, seed=0) + vmap = maps[0] + for word in WORD_RE.findall(corpus): + assert vmap.apply_word(word, params).lower() == vmap.apply_word(word.lower(), params) + # The specific pair that broke it, now equal. + assert vmap.apply_word("GUMS", params) == "FLELS" + assert vmap.apply_word("gums", params) == "flels" + + +def test_transform_commutes_over_every_type_in_three_casings(corpus_types, maps): + """Same invariant, but exercising casings the corpus does not happen to contain.""" + for seed in SEEDS: + params = VacancyParams(p=1.0, seed=seed) + vmap = maps[seed] + for word in corpus_types: + lowered = vmap.apply_word(word, params) + assert lowered == lowered.lower() + for variant in (word.upper(), word.capitalize(), word.lower()): + assert vmap.apply_word(variant, params).lower() == lowered + # ... and the case marking itself survives, so the corpus still reads as English. + assert vmap.apply_word(word.upper(), params).isupper() or len(word) == 1 + assert vmap.apply_word(word.capitalize(), params)[0].isupper() + + +def test_map_is_unchanged_by_shuffling_the_input_types(domain, corpus_types, maps): + """The build order is canonical (sorted), never document order.""" + shuffled = list(domain) + random.Random(1234).shuffle(shuffled) + rebuilt = build_vacancy_map(shuffled, VacancyParams(p=1.0, seed=0), avoid=corpus_types) + assert rebuilt.mapping == maps[0].mapping + assert rebuilt.minted_stress == maps[0].minted_stress + + +def test_map_does_not_depend_on_p(domain, corpus_types, maps): + for p in (0.0, 0.35, 1.0): + built = build_vacancy_map(domain, VacancyParams(p=p, seed=0), avoid=corpus_types) + assert built.mapping == maps[0].mapping + + +def test_seeds_give_different_assignments(maps): + assert maps[0].mapping != maps[7].mapping + shared = set(maps[0].mapping) & set(maps[7].mapping) + differing = sum(1 for k in shared if maps[0].mapping[k] != maps[7].mapping[k]) + assert differing > 0.99 * len(shared) + + +# --- injectivity, contract §7.3 --------------------------------------------------------- + + +def test_map_is_injective_on_the_real_corpus(maps, domain): + """SC-704. Two distinct source types can collide through the stem+suffix construction; + the build verifies the assembled SURFACE FORMS and re-mints until they do not.""" + for seed in SEEDS: + vmap = maps[seed] + assert vmap.bijective is True + assert vmap.image_size == vmap.type_count == len(domain) + assert len(set(vmap.mapping.values())) == len(vmap.mapping) + # Condition B costs exactly one re-mint on this corpus, at seed 7. Measured, not assumed: + # if a change to the minter makes it zero or two, this number is the first thing to look at. + assert maps[0].remint_rounds == 0 + assert maps[7].remint_rounds == 1 + + +def test_injectivity_holds_at_every_p_not_just_the_endpoints(corpus, vacated): + """Trap 1 of §7.3: checking at `p = 1` only is insufficient, because at full vacancy every + eligible type has moved and a minted form has nothing left to collide with.""" + for seed in SEEDS: + for p in P_GRID: + pairs = list(zip(WORD_RE.findall(corpus), WORD_RE.findall(vacated[(seed, p)]))) + image_of: dict[str, str] = {} + for src, out in pairs: + image_of.setdefault(src.lower(), out.lower()) + assert len(set(image_of.values())) == len( + image_of + ), f"seed={seed} p={p}: two source types share a surface form" + + +def test_hanged_no_longer_surfaces_as_the_english_word_waked(corpus, corpus_types, maps, vacated): + """Regression for trap 2 of §7.3, the case that motivated condition B. + + At seed 7 the stem `hang` first minted `wak`, so `hanged` assembled to `waked` — a real + word of this corpus, and one that is NOT vacated at p = 0.25 or p = 0.5, where it therefore + merged with the vacated `hanged`. A bare-nonce `avoid` check passed (`wak` is not a corpus + type) and a p = 1 image check passed (there, `waked` had moved too). + """ + assert "waked" in corpus_types and "hanged" in corpus_types + vmap = maps[7] + assert vmap.mapping["hang"] != "wak" + for p in (0.25, 0.5): + params = VacancyParams(p=p, seed=7) + assert vmap.apply_word("hanged", params) != "waked" + text = vacated[(7, p)] + pairs = list(zip(WORD_RE.findall(corpus), WORD_RE.findall(text))) + survivors = {b.lower() for b, a in pairs if b == a} + moved = {a.lower() for b, a in pairs if b != a} + assert not (moved & survivors) + + +def test_no_nonce_is_a_real_corpus_type(maps, corpus_types): + """FR-706. The source accepts an `avoid` parameter and never passes one, which lets a + minted form silently merge with an English type.""" + real = set(corpus_types) + for seed in SEEDS: + assert not (set(maps[seed].mapping.values()) & real) + + +def test_no_surface_form_is_ever_an_english_word_of_the_domain(corpus, domain, maps, vacated): + """Condition B of §5.2, stated over the whole domain and therefore `p`-independent. + + Deliberately conservative: it forbids a minted form from equalling a word that would + always have been vacated alongside it. That costs a re-mint and buys a condition that + holds simultaneously at every `p`, which is what the theorem needs. + """ + real = set(domain) + for seed in SEEDS: + params = VacancyParams(p=1.0, seed=seed) + for t in domain: + out = maps[seed].apply_word(t, params) + if out != t: + assert out not in real, f"seed={seed}: {t} surfaced as the English word {out}" + for p in P_GRID: + pairs = zip(WORD_RE.findall(corpus), WORD_RE.findall(vacated[(seed, p)])) + assert not {a.lower() for b, a in pairs if b != a} & real + + +# --- the rewrite, contract §1 ----------------------------------------------------------- + + +def test_every_output_is_one_complete_word_token(corpus, vacated): + for seed in SEEDS: + for p in P_GRID: + for word in WORD_RE.findall(vacated[(seed, p)]): + m = WORD_RE.fullmatch(word) + assert m is not None and m.group(0) == word + + +def test_token_count_and_order_are_preserved(corpus, vacated): + original = tokenize(corpus) + for seed in SEEDS: + for p in P_GRID: + assert len(tokenize(vacated[(seed, p)])) == len(original) + + +def test_line_structure_is_preserved(corpus, vacated): + """Line breaks are untouched, so the ``-per-line rule fires in the same places.""" + lines = corpus.splitlines() + token_lines = [i for i, ln in enumerate(lines) if WORD_RE.search(ln)] + for seed in SEEDS: + for p in P_GRID: + out_lines = vacated[(seed, p)].splitlines() + assert len(out_lines) == len(lines) + assert [i for i, ln in enumerate(out_lines) if WORD_RE.search(ln)] == token_lines + + +def test_non_word_characters_pass_through_byte_for_byte(corpus, vacated): + """Whitespace, punctuation and digits are not the transform's business.""" + stripped = WORD_RE.sub("", corpus) + for seed in SEEDS: + for p in P_GRID: + assert WORD_RE.sub("", vacated[(seed, p)]) == stripped + + +def test_p_zero_is_the_identity(corpus, vacated): + for seed in SEEDS: + assert vacated[(seed, 0.0)] == corpus + + +def test_p_one_vacates_every_eligible_type(corpus, corpus_types, vacated): + eligible = {t for t in corpus_types if is_eligible(stem_and_suffix(t)[0])} + for seed in SEEDS: + assert _changed_types(corpus, vacated[(seed, 1.0)]) == eligible + + +def test_capitalisation_is_carried_onto_the_nonce(maps): + params = VacancyParams(p=1.0, seed=0) + assert maps[0].apply_word("Jack", params)[0].isupper() + assert maps[0].apply_word("JACK", params).isupper() + assert maps[0].apply_word("jack", params).islower() + + +# --- the invariance theorem, contract §7.3 ---------------------------------------------- + + +def test_mapped_vocabulary_leaves_the_token_id_stream_unchanged(corpus, budget, maps, vacated): + """SC-703, on the real corpus: the transform is a pure relabelling of the vocabulary, so + a word-level model sees the identical id stream and trains bit-identically.""" + base = LexVocab(tuple(budget), source="dolch", budget_name="full") + reference = base.encode(tokenize(corpus)) + for seed in SEEDS: + for p in P_GRID: + params = VacancyParams(p=p, seed=seed) + words = map_vocab_words(budget, maps[seed], params) + assert len(set(words)) == len(words) + mapped = LexVocab(tuple(words), source="dolch", budget_name="full") + assert mapped.rows == base.rows + assert mapped.encode(tokenize(vacated[(seed, p)])) == reference + + +def test_map_vocab_words_preserves_order(budget, maps): + params = VacancyParams(p=1.0, seed=0) + words = map_vocab_words(budget, maps[0], params) + assert len(words) == len(budget) + for src, out in zip(budget, words): + if is_eligible(stem_and_suffix(src)[0]): + assert out != src + else: + assert out == src + + +def test_map_vocab_words_refuses_the_conditions_it_is_undefined_for(budget, maps): + """Under those conditions the budget must be REBUILT from the vacated corpus; the + coverage collapse is the measurement, and manufacturing a mapped vocabulary instead + would silently hide it.""" + for params in ( + VacancyParams(p=1.0, seed=0, consistent=False), + VacancyParams(p=1.0, seed=0, reveal_after=2), + ): + with pytest.raises(InvalidParamError): + map_vocab_words(budget, maps[0], params) + + +# --- the control conditions, contract §6/§7.1 ------------------------------------------- + + +def test_the_control_conditions_all_differ_from_each_other(corpus, maps, vacated): + """An invariance is only worth showing against something that breaks it.""" + baseline = vacated[(0, 1.0)] + inconsistent = vacate_text(corpus, maps[0], VacancyParams(p=1.0, seed=0, consistent=False)) + revealed = vacate_text(corpus, maps[0], VacancyParams(p=1.0, seed=0, reveal_after=2)) + flat = vacate_text(corpus, maps[0], VacancyParams(p=1.0, seed=0, match_prosody=False)) + kept = vacate_text(corpus, maps[0], VacancyParams(p=1.0, seed=0, keep=frozenset({"little"}))) + variants = { + "baseline": baseline, + "inconsistent": inconsistent, + "revealed": revealed, + "kept": kept, + } + for name, text in variants.items(): + assert text != corpus, name + assert len(tokenize(text)) == len(tokenize(corpus)), name + assert len(set(variants.values())) == len(variants) + + # `match_prosody=False` needs its own map: the flag changes what is minted, not how it + # is applied, so re-using a prosody-matched map cannot show a difference. + assert flat == baseline + flat_map = build_vacancy_map( + sorted(set(tokenize(corpus))), + VacancyParams(p=1.0, seed=0, match_prosody=False), + avoid=set(tokenize(corpus)), + ) + flat = vacate_text(corpus, flat_map, VacancyParams(p=1.0, seed=0, match_prosody=False)) + assert flat != baseline + assert all(syllables(n) == 1 for n in flat_map.mapping.values()) + + +def test_inconsistent_assignment_destroys_type_identity(corpus, maps): + """Same vacancy rate, no learnable identity — that is the point of the control.""" + params = VacancyParams(p=1.0, seed=0, consistent=False) + text = vacate_text(corpus, maps[0], params) + assert len(_changed_types(corpus, text)) == len( + _changed_types(corpus, vacate_text(corpus, maps[0], VacancyParams(p=1.0, seed=0))) + ) + images = _images(corpus, text) + multiplied = {t for t, surfaces in images.items() if len(surfaces) > 1} + assert len(multiplied) > 100 + assert len(set(tokenize(text))) > len(set(tokenize(corpus))) + + +def test_reveal_after_keeps_the_first_n_occurrences(corpus, maps): + params = VacancyParams(p=1.0, seed=0, reveal_after=3) + text = vacate_text(corpus, maps[0], params) + before, after = WORD_RE.findall(corpus), WORD_RE.findall(text) + seen: dict[str, int] = {} + for b, a in zip(before, after): + stem = stem_and_suffix(b)[0] + if not is_eligible(stem): + continue + key = stem.lower() + seen[key] = seen.get(key, 0) + 1 + assert (a == b) == (seen[key] <= 3) + + +# --- prosody, contract §6 --------------------------------------------------------------- + + +def test_syllable_rule_matches_the_contract(): + assert syllables("cat") == 1 + assert syllables("candle") == 2 # trailing `le` keeps its syllable + assert syllables("make") == 1 # silent `e` dropped + assert syllables("tree") == 1 + assert syllables("") == 1 + assert syllables("'-") == 1 + + +def test_stress_table_lookup_is_case_sensitive_before_it_is_case_insensitive(): + assert stress("Christmas") == STRESS_TABLE["Christmas"] + assert stress_source("Christmas") == "table" + # Only the capitalised key is in the table, so the lower-cased form falls to the rule. + assert stress_source("christmas") == "rule" + assert stress_source("little") == "table" + assert stress_source("candlestick") == "rule" + + +def test_minted_stress_wins_over_everything(maps): + vmap = maps[0] + nonce, pattern = next(iter(vmap.minted_stress.items())) + assert stress(nonce, vmap.minted_stress) == pattern + assert stress_source(nonce, vmap.minted_stress) == "minted" + + +def test_prosody_is_matched_when_asked(maps, corpus_types): + """`match_prosody` means the nonce carries the stem's syllable count and stress.""" + vmap = maps[0] + checked = 0 + for stem, nonce in vmap.mapping.items(): + assert vmap.minted_stress[nonce] == stress(stem) + assert syllables(nonce) == len(stress(stem)) + checked += 1 + assert checked > 1000 + + +def test_meter_score_is_a_fraction_and_rejects_unknown_feet(): + assert meter_score("") == 0.0 + assert 0.0 <= meter_score("Hickory dickory dock") <= 1.0 + assert meter_score("cat", "trochee") == 1.0 + with pytest.raises(InvalidParamError): + meter_score("cat", "spondee") + + +# --- statistics, contract §10 ----------------------------------------------------------- + + +def test_stats_have_exactly_the_contract_field_names(corpus, maps, vacated): + stats = vacancy_stats(corpus, vacated[(0, 0.5)], maps[0], VacancyParams(p=0.5, seed=0)) + assert set(stats) == { + "typesTotal", + "typesEligible", + "typesVacated", + "tokensTotal", + "tokensVacated", + "meanSyllablesBefore", + "meanSyllablesAfter", + "meanAnapestBefore", + "meanAnapestAfter", + "stressFromTableBefore", + "stressFromTableAfter", + "stressFromMintedBefore", + "stressFromMintedAfter", + "stressFromRuleBefore", + "stressFromRuleAfter", + "bijective", + "imageSize", + "remintRounds", + } + + +def test_the_three_way_stress_split_sums_to_one_on_each_side(corpus, maps, vacated): + """§10: token-weighted fractions, unambiguous where a single coverage number was not.""" + for seed in SEEDS: + for p in P_GRID: + params = VacancyParams(p=p, seed=seed) + s = vacancy_stats(corpus, vacated[(seed, p)], maps[seed], params) + for side in ("Before", "After"): + total = ( + s[f"stressFromTable{side}"] + + s[f"stressFromMinted{side}"] + + s[f"stressFromRule{side}"] + ) + assert total == pytest.approx(1.0) + # No English word of the corpus is also a minted form — `avoid` guarantees it. + assert s["stressFromMintedBefore"] == 0.0 + # The split moves the right way: vacating replaces guessed stress with declared stress. + at_zero = vacancy_stats(corpus, vacated[(0, 0.0)], maps[0], VacancyParams(p=0.0, seed=0)) + at_one = vacancy_stats(corpus, vacated[(0, 1.0)], maps[0], VacancyParams(p=1.0, seed=0)) + assert at_zero["stressFromMintedAfter"] == 0.0 + assert at_one["stressFromMintedAfter"] > 0.4 + assert at_one["stressFromRuleAfter"] < at_zero["stressFromRuleAfter"] + + +def test_stats_are_measured_not_asserted(corpus, corpus_types, maps, vacated): + eligible = {t for t in corpus_types if is_eligible(stem_and_suffix(t)[0])} + for seed in SEEDS: + previous = -1 + for p in P_GRID: + params = VacancyParams(p=p, seed=seed) + stats = vacancy_stats(corpus, vacated[(seed, p)], maps[seed], params) + assert stats["typesTotal"] == len(set(tokenize(corpus))) + assert stats["typesEligible"] == len(eligible) + assert stats["tokensTotal"] == len(tokenize(corpus)) + assert stats["typesVacated"] <= stats["typesEligible"] + assert stats["typesVacated"] > previous # strictly graded in p + previous = stats["typesVacated"] + assert stats["bijective"] is True + assert stats["remintRounds"] == maps[seed].remint_rounds + assert 0.0 <= stats["stressFromTableAfter"] <= 1.0 + assert stats["typesVacated"] == len(eligible) + assert stats["tokensVacated"] > 0 + + +def test_prosody_survives_full_vacancy(corpus, maps, vacated): + """The claim is that meter is untouched, so this pins the size of the drift rather than + asserting equality — and it quotes OUR corpus, never the source's numbers.""" + stats = vacancy_stats(corpus, vacated[(0, 1.0)], maps[0], VacancyParams(p=1.0, seed=0)) + assert abs(stats["meanSyllablesAfter"] - stats["meanSyllablesBefore"]) < 0.02 + assert abs(stats["meanAnapestAfter"] - stats["meanAnapestBefore"]) < 0.02 + # And the honesty number: most of the corpus is not in the 61-entry hand table. + assert 0.0 < stats["stressFromTableBefore"] < 0.15 + assert stats["stressFromRuleBefore"] > 0.85 + + +def test_stats_reject_texts_that_do_not_align(corpus, maps): + with pytest.raises(ComputeError): + vacancy_stats(corpus, corpus + " extra", maps[0], VacancyParams(p=1.0, seed=0)) + + +# --- parameter validation --------------------------------------------------------------- + + +@pytest.mark.parametrize( + "kwargs", + [ + {"p": -0.01}, + {"p": 1.5}, + {"p": float("nan")}, + {"p": "0.5"}, + {"seed": 1.5}, + {"reveal_after": -1}, + {"keep": frozenset({3})}, + ], +) +def test_bad_parameters_raise_invalid_param_error(kwargs): + with pytest.raises(InvalidParamError): + VacancyParams(**kwargs) + + +def test_defaults_are_the_contracts_defaults(): + params = VacancyParams() + assert (params.p, params.seed, params.consistent) == (0.0, 0, True) + assert (params.match_prosody, params.reveal_after, params.keep) == (True, 0, frozenset()) + assert params.keep_set == FUNCTION_WORDS + assert VacancyParams(keep=frozenset({"Little"})).keep_set == FUNCTION_WORDS | {"little"} + + +def test_a_stem_outside_the_maps_domain_is_a_compute_error(maps): + """The map's domain must include the budget's words as well as the corpus's types.""" + with pytest.raises(ComputeError): + maps[0].apply_word("zzzqqqx", VacancyParams(p=1.0, seed=0)) From 08f619b67d3dacfca07e3ad2552fc1dcf5cecad9 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:24:31 -0400 Subject: [PATCH 08/38] Pin the map's domain to the FULL Dolch list, not the active budget Found by running the module myself rather than reading the report: the contract said the domain is "corpus types union the budget's word list", which can be read as the ACTIVE budget. Under that reading, switching budgets in the panel would rebuild the map and re-mint the corpus in front of the reader -- while the panel is busy demonstrating that nonces are stable. The domain is now the full Dolch list, always. A frequency budget needs no special case, since its words are corpus types by construction. Measured, and now required as a test rather than trusted: the map is already identical across all five Dolch domains (gum -> thrern, hang -> smeeg at seed 7 for every one), because minting is keyed on (seed, stem) and the extra words provoke no new collisions. A future change to `avoid` or to the canonical order could break that silently, so it gets an assertion. Also verified independently at this commit: SC-703 holds on 120 cases, and the case-commuting invariant holds over 6,633 variants (every corpus type upper-cased, capitalised and lower-cased). Co-Authored-By: Claude Opus 5 (1M context) --- .../007-vacancy-transform-field/architecture.md | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 58ffb81..c83c06c 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -217,9 +217,20 @@ buildVacancyMap(types, seed, matchProsody, avoid) -> Map used.add(nonce); map[stem] = nonce ``` -`types` is the union of the corpus's type set and the budget's word list (§7.2 explains why the -budget must be in the domain). The source accepts an `avoid` parameter and then never passes -one, which lets a minted form silently merge with an English type. +**The domain is `corpus types ∪ the full Dolch list`** — the *full* list, always, never the +active budget. §7.2 explains why budget words must be in the domain at all; the reason it is the +full list is that the domain must not depend on which budget the reader has selected, or +switching budgets would re-mint the corpus in front of them and the stability the panel is +demonstrating would look false. A frequency budget needs no special case, since its words are +corpus types by construction. + +Measured: the map is in fact identical across all five Dolch domains (`gum → thrern` and +`hang → smeeg` at seed 7 for every one), because minting is keyed on `(seed, stem)` and the +extra words provoke no new collisions. That is a property worth **asserting in a test** rather +than relying on — a future change to `avoid` or to the canonical order could break it silently. + +The source accepts an `avoid` parameter and then never passes one, which lets a minted form +silently merge with an English type. **The check is over surface forms, not bare nonces, and it must hold at every `p`.** This is the second defect the first implementation exposed. A bare-nonce check is not enough: From a0f8d7b63c87b0324e49cd9633e0fde31a523321 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:27:41 -0400 Subject: [PATCH 09/38] Put the scope in the name: domainTypes* and corpusTypes* The two stacks disagreed on type counts twice, both times because "types" is ambiguous between the corpus (2,211 types of Mother Goose) and the domain (2,233 = corpus plus the full Dolch list). They agreed on tokensVacated to the token both times, so it was never a disagreement about the transform -- only about what was being counted. An unprefixed types* is now forbidden. The panel shows corpusTypes*, because the 22 domain-only words are in the budget but never appear in the text and counting words the reader cannot see inflates the vacancy rate they are shown. domainTypes* stays as the diagnostic, since it is what governs the map. The TypeScript side was right and Python was wrong -- but the fault was this document, which said "domain" in one place while giving a definition that could be read either way. It also refused to silently reconcile its numbers to Python's when asked, which is why the cause was found in one round instead of being buried in a golden fixture. Co-Authored-By: Claude Opus 5 (1M context) --- .../architecture.md | 42 ++++++++++++------- 1 file changed, 28 insertions(+), 14 deletions(-) diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index c83c06c..214eedf 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -631,7 +631,8 @@ buys structural rather than argued cross-language equality. `vacancyStats(originalText, vacatedText, map, p, seed, …)` returns, with these exact names: ``` -typesTotal, typesEligible, typesVacated, +domainTypesTotal, domainTypesEligible, domainTypesVacated, +corpusTypesTotal, corpusTypesEligible, corpusTypesVacated, stemsTotal, stemsVacated, tokensTotal, tokensVacated, meanSyllablesBefore, meanSyllablesAfter, @@ -644,20 +645,33 @@ bijective, imageSize, remintRounds Both stacks compute these from the same definitions; the golden fixture (§11) pins them. -**Counting, pinned.** The two implementations agreed on `tokensVacated` to the token (8 202 at -`p = 1`) while reporting different type counts — 1 922 against 1 665 — which is a definitional -gap in this section, not a disagreement about the transform. The definitions are: - -- `typesTotal` — distinct lowercased types in the **domain** (corpus types ∪ budget words) -- `typesEligible` — domain types whose **stem** is eligible per §2.2 -- `typesVacated` — domain types whose transformed output differs from the input at this `p` -- `stemsTotal` — distinct eligible stems, i.e. the size of the map -- `stemsVacated` — stems with `u(stem) < p` -- `tokensTotal` / `tokensVacated` — over the **corpus** token stream, not the domain - -`typesEligible ≥ stemsTotal` always, since inflected forms share a stem. At `p = 1` every +**Counting: the scope is in the name.** This section cost two round trips between the stacks, +both times because "types" is ambiguous between the **corpus** (2 211 types of *Mother Goose*) +and the **domain** (2 233 = corpus ∪ the full Dolch list). The two stacks agreed on +`tokensVacated` to the token (8 202 at `p = 1`) and disagreed only on the type counts — a +reporting gap, never a disagreement about the transform. + +An unprefixed `types*` is therefore **forbidden**. Every count names its scope: + +- `domainTypes{Total,Eligible,Vacated}` — over the domain of §5.2. This is what governs the map + and the vocabulary, so it is the diagnostic number. +- `corpusTypes{Total,Eligible,Vacated}` — over the corpus's own type set. This is what the panel + shows a reader, because the 22 domain-only words (`funny`, `squirrel`, `today`, …) are in the + budget but never appear in the text, and counting words the reader cannot see inflates the + vacancy rate they are being shown. +- `stemsTotal` — distinct eligible stems, i.e. the size of the map; `stemsVacated` — stems with + `u(stem) < p` +- `tokensTotal` / `tokensVacated` — over the **corpus** token stream + +`domainTypesEligible ≥ stemsTotal` always, since inflected forms share a stem, and +`domainTypesEligible = corpusTypesEligible + 22` on the shipped corpus. At `p = 1` every eligible stem vacates, because `u ∈ [0, 1)` by construction, so `stemsVacated == stemsTotal` and -`typesVacated == typesEligible` — an identity worth asserting, since it caught this. +`{domain,corpus}TypesVacated == {domain,corpus}TypesEligible` — identities worth asserting, +since the first of them is what exposed all of this. + +Measured on the shipped corpus (seed 0 / seed 7, `p = 0/.25/.5/.75/1`): +`corpusTypesVacated` 0/461/954/1430/1922 and 0/434/975/1440/1922; +`domainTypesVacated` 0/469/966/1448/1944 and 0/440/985/1455/1944. **Where each token's stress came from.** The first draft asked for a single `stressTableCoverage`, which is ambiguous the moment minted forms exist: read literally it counts From ad1c4dce123195fd74ec133e14cff6f1bbcf2594 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:29:36 -0400 Subject: [PATCH 10/38] UI spec for both panels Two design points worth stating before anyone builds them. The nesting ribbon is the panel's real job. Nesting and stability are what make a p-sweep interpretable, and they are exactly the two properties the source's implementation breaks -- so the panel has to make them visible, not assert them in prose. Eight stems, five values of p, and the reader can see that a minted form never reverts and never changes. The invariance demonstration is split in two because the theorem is free to check and a training run is not: the token id streams are compared on every control change and the verdict is live (in a condition that breaks the theorem it must show the streams actually differing, never a hard-coded tick), while the training comparison is a button. And the framing constraint: the headline result is an exact zero, which a panel can easily make look like a broken chart. It says plainly that this IS the finding -- all of a word's meaning is field, none is form -- and points at the Architecture Explorer for the number that is not zero. Co-Authored-By: Claude Opus 5 (1M context) --- specs/007-vacancy-transform-field/ui.md | 141 ++++++++++++++++++++++++ 1 file changed, 141 insertions(+) create mode 100644 specs/007-vacancy-transform-field/ui.md diff --git a/specs/007-vacancy-transform-field/ui.md b/specs/007-vacancy-transform-field/ui.md new file mode 100644 index 0000000..e9d50de --- /dev/null +++ b/specs/007-vacancy-transform-field/ui.md @@ -0,0 +1,141 @@ +# Feature 007 — UI specification + +Normative for the two panels. Read `architecture.md` first; every number named here comes from +`vacancyStats` or a source constant, never from prose. + +--- + +## 1. `VacancyPanel.svelte` (Lexicon Lab) + +Lives in `src/viz/lex/`, owned by `LexiconLab.svelte` like every other panel — plain props in, +callback props out, no store. It sits **after `BudgetPanel`/`ModelPanel` and before +`TrainPanel`**, because it changes the corpus the trainer will see. + +### 1.1 Controls + +| control | type | default | notes | +|-|-|-|-| +| `p` | slider 0→1, step 0.05 | `0` | the headline knob; show the value numerically | +| `seed` | integer input | `0` | changing it re-mints everything, by design | +| condition | radio | `consistent` | `consistent` \| `inconsistent` \| `partial reveal` | +| reveal N | integer, shown only for `partial reveal` | `1` | `revealAfter` | +| prosody | checkbox | on | `matchProsody` | +| mint | radio | `nonce` | `nonce` \| `swap` (§8.3 of the contract) | + +Changing any control re-derives the view synchronously. The transform runs in ~ms on 16 000 +tokens; do **not** put it behind a spinner or a worker, and do not debounce the slider so hard +that the nesting demonstration stops feeling continuous. + +### 1.2 The corpus view — the doc's Figure 5, live + +Render the first ~40 token-producing lines of the active corpus with every word carrying one of +three classes, colour-coded to match the source document's figure: + +- **closed class, preserved** — full-contrast text +- **open class, not yet vacated** — muted +- **minted** — accent + +A legend states exactly that. The classification comes from the real map (`isEligible` + +`u(stem) < p`), never from a hand-annotated list — FR-711. + +### 1.3 The nesting ribbon + +The single most important thing this panel has to make *visible*, because it is the property +that makes a `p`-sweep interpretable and the source's own implementation gets it wrong. + +Pick ~8 eligible stems spanning the `u` range. For each, a row of cells at +`p = 0, 0.25, 0.5, 0.75, 1` showing the surface form at that `p`. The reader must be able to see +at a glance that: + +- once a cell turns minted it **never reverts** as `p` grows (nesting), and +- the minted string is **the same string** in every later cell (stability). + +Caption states both properties by name. This is FR-711 and it is not satisfied by prose. + +### 1.4 Statistics readout + +Show, from `vacancyStats` only: + +- `corpusTypesVacated` / `corpusTypesEligible` and `tokensVacated` / `tokensTotal` + — **corpus scope, not domain**: the 22 domain-only Dolch words never appear in the text and + counting them inflates the rate the reader is being shown (contract §10). +- prosody: `meanSyllablesBefore → After`, `meanAnapestBefore → After` +- **immediately beside them**, the three-way stress split (`stressFromTable` / + `stressFromMinted` / `stressFromRule`), plus one sentence: the stress table is rule-seeded and + unverified, it covers ~5 % of this corpus's tokens, so these are indicative and not exact. + FR-712 / SC-708. No prosody number may appear without it. +- `bijective`, `remintRounds` + +### 1.5 The invariance demonstration — FR-714 + +Two tiers, because the theorem is free to check and the training run is not. + +**Instant (always shown).** Compute `tokenStream` under the mapped vocabulary at the current `p` +and at `p = 0`, compare element-for-element, and display the verdict with the count actually +compared — e.g. *"token id streams identical · 19 071 ids compared"*. Recompute on every control +change. In a condition that breaks the theorem (`inconsistent`, `revealAfter > 0`) this must +show the **real** result — the streams differ, with how many positions and the resulting +`` rate. It is a live check, never a hard-coded ✓. + +**On demand (button).** Train at `p = 0` and at the current `p` with the same seed and +hyperparameters, then show both loss curves and `max |Δloss|`. Under `consistent` this is +exactly `0`. Report it as `0`, not "≈0" — and if it is ever not 0, that is a bug and the UI +should say so rather than round it away. + +Default the demo to a step count that finishes quickly; the point is the comparison, not the +final loss. Two runs, not three. + +### 1.6 Framing — do not let the null read as a bug + +The headline result is an exact zero, and a panel that presents it as a flat line looks broken. +Contract §7.4: state plainly that for a word-level model trained from scratch the transform is a +pure relabelling and the model is provably blind to it, that this is *the finding* — all of a +word's meaning is field, none is form — and that the number which is **not** zero lives in the +Architecture Explorer, with a link to it. + +--- + +## 2. `VacancyScorePanel.svelte` (Architecture Explorer) + +### 2.1 Controls + +Model (from the curated list), passage (default a fixed excerpt of the shipped corpus, editable), +`p`, `seed`, and mint strategy. A single **Score** button — this runs real forward passes and +must not fire on every keystroke. + +### 2.2 Output + +A three-row table, English / swap / nonce, each with `nllPreserved`, `nllAll`, `bitsPerChar`, +`nTokens`, `nPreservedTokens`; then the two differences that matter, labelled in words: + +- `nll(swap) − nll(english)` — **the cost of wrong content** +- `nll(nonce) − nll(swap)` — **the cost of unknown form** + +Never display `nll(nonce) − nll(english)` as a headline; it conflates the two (contract §8.3). + +Beside it, the tiny arm's exact `0`, labelled as the same measurement on a model with no +locations. That juxtaposition is the whole 2×2 and is the reason this panel exists. + +### 2.3 Honesty requirements + +- State that the residual — nonce forms fragmenting into more subword tokens — is not separable + without a tokenizer-level control, so "cost of unknown form" is an upper bound on what + location was worth. +- State the alignment mechanism (byte-level pieces → UTF-8 byte spans) and that it is verified + by reconstruction at run time; a mismatch raises rather than mis-attributing (FR-718). +- **Quantization**: the static build runs quantized ONNX whose absolute per-token logprobs + differ from fp32 by up to several nats. Whatever the measurement of that error's effect on the + *difference* concludes, the panel states the stated uncertainty in static mode, or refuses and + names the full stack. Not decided here — it is decided by measurement. + +--- + +## 3. Info tab + +A new `

` after `#lex`, covering: the 2×2 with the vacancy cell marked; the +transform's definition; nesting and stability, and that the source's implementation breaks both; +the invariance theorem, what it proves and what it does not; the swap control and the +decomposition; and the stress table's real status. Update `#real`, `#limits` and `#refs`. + +Every number transcribed from a source constant, pinned by `tests/e2e/docs.spec.ts` — feature +005's rule, so changing a constant without changing the sentence fails CI. From ac69fcffa6904d2947d4bbb127a1639be05c1be9 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:31:30 -0400 Subject: [PATCH 11/38] Measure the pretrained arm before building it -- and find the effect is small The 2x2 now has numbers, from 6x250-word passages x 4 conditions x 2 models, with ONNX fp32 verified equal to torch at 5.3e-4 nats: nonce - english ~ 0.92-1.03 nats nonce - swap ~ 0.06-0.21 nats So 80-90% of the damage is wrong CONTENT and only 10-20% is unknown FORM. With the tiny arm's exact zero, that is the whole 2x2: a word's form is worth nothing to a model with no locations, and 10-20% of a nat to one that has them. It is the doc's T4 prediction -- field >> location -- holding on a model class it did not consider. The consequence for shipping is awkward and worth stating plainly. The effect I care about is small, and the app ships quantized ONNX: - pooled deltas survive q8 (|delta_q8 - delta_fp32| <= 0.054 nats) - per-passage deltas do not (worst 0.65 nats = 115% of that passage's delta) - nonce - swap is destroyed: 14-23% error pooled, sign flips in 1 of 6 passages - the error is not a removable offset -- q8 compresses extreme surprisal, and 2.7% of preserved tokens carry >5 nats of error, all on line-initial function words, which is exactly what this measurement probes And q4f16, the dtype the app tries FIRST, could not be measured outside a browser at all, so the deployed default path has no error bar yet. Measuring it in a real browser now. Policy: report a number only where a bound was measured for the dtype actually run; otherwise refuse and name the full stack. A stated uncertainty that was never measured is a fabricated error bar, which is worse than no number. Co-Authored-By: Claude Opus 5 (1M context) --- .../architecture.md | 47 +++++++++++++++++++ specs/007-vacancy-transform-field/spec.md | 18 ++++++- 2 files changed, 63 insertions(+), 2 deletions(-) diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 214eedf..0233128 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -592,6 +592,53 @@ way), still nested in `p`, still stable in `(seed, stem)`. The invariance theore therefore holds for `swap` exactly as for `nonce` — the tiny model is equally blind to both, which is itself the check that the swap control is implemented correctly. +### 8.3a What was measured, and what the static build may therefore say + +Measured before implementing: 6 × 250-word real-corpus passages × 4 conditions (english / +frequency-matched real-word swap / nonce at two seeds) × {gpt2, SmolLM2-135M}, ~700 preserved +closed-class tokens per condition. ONNX fp32 ≡ torch to 5.3e-4 nats, and the two stacks' +tokenizations were identical (0 id mismatches across 48 texts), so the alignment of §8.2 is +sound and fp32 is the reference. + +**The result (fp32).** `nonce − english` ≈ **0.92–1.03 nats**, of which `nonce − swap` is only +**0.06–0.21**. So roughly 80–90 % of the damage is *wrong content* and only 10–20 % is *unknown +form*. Taken with the tiny arm's exact zero, that is the 2×2: + +| | what a word's form is worth | +|-|-| +| tiny, trained from scratch (no locations) | exactly 0 | +| pretrained (has locations) | ~0.1 of ~1.0 nats, i.e. 10–20 % | + +Even for a model that *has* locations, losing the location costs far less than losing the +content — the doc's T4 prediction that field ≫ location, on a model it did not consider. + +**The quantization verdict.** The app ships quantized ONNX, and the effect above is small: + +- **Absolute NLL is unusable.** q8 shifts `nllPreserved` by −0.19 nats (gpt2) and **+0.40** + (SmolLM2) — the sign is not even stable across models. +- **Pooled differences do cancel**: `|Δ_q8 − Δ_fp32| ≤ 0.054` nats on every contrast, against a + sampling standard error of 0.12–0.22. +- **Per-passage differences do not**: worst case 0.65 nats, **115 %** of that passage's fp32 + delta. +- **`nonce − swap` is destroyed.** Its true value is 0.06–0.21; q8's error on it is 14–23 % + pooled, up to 0.28 per passage, with one sign flip in six passages per model. +- The error is **not** a constant offset that a baseline could remove: q8 compresses extreme + surprisal, and 2.7 % of gpt2's preserved tokens carry `|e| > 5` nats, all on 15–20-nat + line-initial function words — precisely the tokens this measurement is about. Median and + trimmed means do not rescue it. +- **q4f16 — the app's first-choice dtype — could not be measured outside a browser** (session + init fails on the onnxruntime-node CPU EP for both models). Until it is measured in a real + browser, the deployed default path has **no error bar at all**. + +**Policy.** The full stack (torch/fp32) reports everything. The static build may report a +number only where there is a measured bound for the dtype it actually ran: + +1. pooled `nonce − english` and `swap − english`, with the quantization uncertainty stated; +2. **never** `nonce − swap`, and **never** a per-passage delta — these are refused with a typed + error naming the full stack, exactly as the static build already refuses elsewhere; +3. if the dtype in use has no measured bound, refuse rather than invent one. A stated ± + that was never measured is a fabricated error bar, which is worse than no number. + ### 8.4 Confound, stated in the UI The vacated passage has genuinely higher entropy, so *every* prediction in it gets worse — diff --git a/specs/007-vacancy-transform-field/spec.md b/specs/007-vacancy-transform-field/spec.md index 02d689a..41d446a 100644 --- a/specs/007-vacancy-transform-field/spec.md +++ b/specs/007-vacancy-transform-field/spec.md @@ -97,7 +97,16 @@ separate instrument; none is needed for T4. pretrained arm reports the decomposition `nll(swap) − nll(english)` (wrong content) and `nll(nonce) − nll(swap)` (unknown form), and never reports `nll(nonce) − nll(english)` alone as if it measured location. The residual tokenization component is stated, not hidden. -- **FR-720** Both stacks produce the same numbers for the same model and passage. +- **FR-720** Both stacks produce the same numbers for the same model and passage **at the same + dtype**. They do not at the dtypes actually shipped, which is a measured fact, not an + assumption (contract §8.3a): ONNX fp32 ≡ torch to 5.3e-4 nats, but q8 shifts absolute + `nllPreserved` by −0.19 nats on gpt2 and +0.40 on SmolLM2-135M. +- **FR-720a** The static build reports a quantity **only** where a measured error bound exists + for the dtype it actually ran. Pooled `nonce − english` and `swap − english` qualify under q8 + (|Δ| ≤ 0.054 nats). `nonce − swap` and every per-passage delta do **not** and are refused with + a typed error naming the full stack. If the running dtype has no measured bound, the panel + refuses — a stated ± that was never measured is a fabricated error bar and is worse than no + number. ### API and static build @@ -142,7 +151,12 @@ separate instrument; none is needed for T4. - **SC-707a** The swap control satisfies the invariance theorem exactly as the nonce strategy does (contract §8.3) — the tiny model is equally blind to both. This is the check that the control is implemented correctly, and it is asserted, not assumed. The decomposition - `nll(swap) − nll(english)` and `nll(nonce) − nll(swap)` is reported from a real model run. + `nll(swap) − nll(english)` and `nll(nonce) − nll(swap)` is reported from a real model run + **in the full stack**, where fp32 makes it measurable. +- **SC-707b** The measured 2×2 is reported: a word's form is worth **exactly 0** to the tiny + model and **10–20 % of ~1.0 nats** to a pretrained one (contract §8.3a). The static build + either states a measured uncertainty for the dtype it ran, or refuses — verified by driving + the deployed static build and confirming it does one or the other, never a bare number. - **SC-708** Every prosody statistic displayed is accompanied by `stressTableCoverage`, and no number from the source document appears as if it were ours. - **SC-709** The full suite is green locally and in CI: backend `pytest` + `ruff` + `black`, From 4def8a784027958f171904850960046bc0f48bc4 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:32:52 -0400 Subject: [PATCH 12/38] TypeScript vacancy transform, built independently from the same contract Not transcribed from the Python module -- written from the contract alone, so the two could disagree. They did, six times, and every disagreement was a defect in the contract rather than in either implementation. Two of them would have broken the invariance theorem silently. This side found three of the six: CODAS documented as 49 entries when the source has 46 (it copied the source verbatim and flagged the tally, which is why nothing diverged), the injectivity check being valid only at p=1, and the counting scope that this commit renames. On the last one it was asked to reconcile its numbers against Python's and told to stop and report instead if they disagreed. It did, and named the exact cause -- domain scope vs corpus scope, the 22 Dolch words absent from Mother Goose -- rather than quietly adopting the other stack's numbers. Both scopes are now reported under names that carry their scope, and corpusTypes* matches Python at every p and both seeds. Includes a one-line declaration fix in geoNodeEnv.d.ts: a namespace import of node:path makes the narrow ambient declaration win over @types/node for the whole program, exposing a missing `dirname`. Verified in a clean worktree that no error exists on the branch itself. 44 vacancy tests; 297 frontend tests; svelte-check 0 errors 0 warnings. Co-Authored-By: Claude Opus 5 (1M context) --- code/frontend/src/lib/lexEngine/vacancy.ts | 1106 ++++++++++++++++++++ code/frontend/tests/unit/geoNodeEnv.d.ts | 5 + code/frontend/tests/unit/vacancy.test.ts | 738 +++++++++++++ 3 files changed, 1849 insertions(+) create mode 100644 code/frontend/src/lib/lexEngine/vacancy.ts create mode 100644 code/frontend/tests/unit/vacancy.test.ts diff --git a/code/frontend/src/lib/lexEngine/vacancy.ts b/code/frontend/src/lib/lexEngine/vacancy.ts new file mode 100644 index 0000000..a934f14 --- /dev/null +++ b/code/frontend/src/lib/lexEngine/vacancy.ts @@ -0,0 +1,1106 @@ +/** + * The vacancy transform — field without location, at a controlled rate. + * + * TypeScript half of `specs/007-vacancy-transform-field/architecture.md`, which is the + * normative document: this file implements *that contract*, not the Python module, and + * the Python module implements it too. Feature 006 taught us why — a contract that omits + * one sentence lets two stacks drift for a day without either being "wrong". + * + * What it does: rewrite a corpus in place so that closed-class scaffolding, inflectional + * morphology, punctuation and line structure survive byte for byte, while a controlled + * fraction `p` of open-class STEMS is replaced by phonotactically legal nonce forms that + * carry the stem's syllable count and stress. The result is Carroll's condition — a token + * whose distributional neighbourhood is fully specified by context and whose form carries + * no prior — manufactured on demand rather than borrowed from the 28 words Carroll minted. + * + * The three properties that make a `p`-sweep interpretable, and where they come from: + * + * * NESTING (§4). A stem is vacated iff `u(stem) < p`, and `u` is a hash of + * `(seed, stem)` alone — not of `p`, not of traversal order, not of which other words + * exist. So `{vacated at p} ⊆ {vacated at p'}` whenever `p < p'`. + * * STABILITY (§5). The nonce map is built ONCE over the whole type set in canonical + * (sorted) order, and the map at any `p` is its restriction to `{u < p}`. The source's + * minter built the map lazily while rewriting, so its `used` set — and therefore the + * nonce a word got — depended on `p`. That breaks the stability the source claims for + * itself; §5.2 of the contract is the correction, and it makes stability structural + * rather than hoped for. + * * INJECTIVITY AT EVERY `p` (§5.2 A/B). The check is over assembled, lowercased SURFACE + * forms, not bare nonces, and it forbids a surface form from equalling ANY domain type + * — eligible or not. Both weaker checks were tried and both were wrong; the comments + * on `buildVacancyMap` name the collision each one missed. + * + * All three feed the invariance theorem (§7.3): with `consistent = true` and + * `revealAfter = 0`, the transform is a pure relabelling of the vocabulary, so a + * word-level model trained from scratch sees the identical token id stream and trains + * bit-identically. That is only true if the transform's idea of a word is EXACTLY the + * tokenizer's, which is why `WORD_RE`/`tokenize` are imported from `./vocab` rather than + * re-declared here (departure 1 from the source, whose `[A-Za-z][A-Za-z']*` split + * `good-bye` in two). + * + * The tokenizer lowercases, so the transform must COMMUTE WITH LOWERCASING (§5.7): + * + * lower(transformWord(w)) === transformWord(lower(w)) // normative, and a test + * + * Everything is therefore computed on the lowercased word — stem, suffix, seam test, seam + * hash, assembly — and `matchCase` is applied once at the end to the whole assembled + * surface form. Slicing the suffix case-preserved (as the source does) makes the seam test + * branch on case: `gums -> flels` but `GUMS -> FLESS`, one source type with two surface + * forms, and the theorem is false. + * + * Determinism across the TS/Python seam is bought with three deliberate departures: + * + * * `u = (top64 >> 11) / 2**53`, not `top64 / 2**64`. NOT because the source's + * expression diverges — §4 records that it was measured over 200 006 values and does + * not — but because a 53-bit numerator over 2^53 is exactly representable, so the + * agreement is structural rather than a proof one refactor could invalidate. + * * `random.Random` is replaced by a sha256 counter stream (`bytesFor`), because + * MT19937 seeded from a string is not reproducible in TypeScript. + * * the seam fix and the give-up path are hashes of their inputs rather than draws from + * a shared RNG or counts of a mutable `used` set, so neither depends on order. + * + * The hash is the SYNCHRONOUS pure-JS sha256 of `../geoEngine/hash`; WebCrypto is async + * and this transform has to be callable from a store update. + */ + +import { sha256Hex, utf8Bytes } from "../geoEngine/hash"; +import { WORD_RE, splitLines } from "./vocab"; + +// --- §2.1 the closed class ----------------------------------------------------------- + +/** + * The source's curated closed class, ported verbatim (whitespace-split, lowercased). + * + * The source carries a warning we keep: an earlier version unioned this with short Dolch + * service words, which silently protected content verbs (`run`, `eat`, `see`, `get`, + * `let`, `put`) and understated the vacancy rate. The closed class is THIS LIST ONLY. + */ +export const FUNCTION_WORDS: ReadonlySet = new Set( + `a an the this that these those my your his her its our +their some any all both each every no none i me you he she it we they him them +us who whom whose which what where when why how is am are was were be been being +do does did done have has had having will would shall should can could may might +must not and or but so if then than as of to in on at by for with from into onto +up down out off over under again once here there very too also only just even +still yet ever never always about after before while because though although +unless until since during between among against through above below near far +one two three four five six seven eight nine ten` + .split(/\s+/) + .filter((w) => w.length > 0), +); + +/** `FUNCTION_WORDS ∪ lower(extra)` — the effective keep set (§2.1). */ +export function effectiveKeepSet(extra: Iterable = []): ReadonlySet { + const out = new Set(FUNCTION_WORDS); + for (const w of extra) out.add(w.toLowerCase()); + return out; +} + +// --- §3 suffix splitting ------------------------------------------------------------- + +/** Tried in THIS order; the first match wins. Order is part of the contract. */ +export const SUFFIXES: readonly string[] = [ + "ing", + "edly", + "est", + "ies", + "'s", + "n't", + "ed", + "es", + "er", + "ly", + "s", +]; + +/** + * Never split, whatever the spelling suggests (§3, departure 9). + * + * From the AUDITED copy of the source, not the copy in the zip: without it + * `brother -> broth+er` and `morning -> morn+ing`, which the source itself flags as a + * known artifact. This is a spelling heuristic and not a morphological analyser, so it is + * still wrong outside the list (`ladder -> ladd+er`). That is acceptable — the nonce + * still carries a consistent identity and an inflected-looking surface — but it must be + * documented in the UI rather than quietly tolerated. + */ +export const SPLIT_EXCEPTIONS: ReadonlySet = new Set([ + "brother", + "father", + "mother", + "sister", + "never", + "over", + "under", + "morning", + "giving", + "thing", +]); + +/** + * Split a word into `[stem, suffix]`, preserving case. + * + * A suffix `s` matches iff `lower(word)` ends with it AND `len(word) - len(s) >= 3`. + * The slice is taken from the ORIGINAL word, so `Dog's` -> `["Dog", "'s"]`. + */ +export function stemAndSuffix(word: string): [string, string] { + const lower = word.toLowerCase(); + if (SPLIT_EXCEPTIONS.has(lower)) return [word, ""]; + for (const suffix of SUFFIXES) { + if (lower.endsWith(suffix) && word.length - suffix.length >= 3) { + const cut = word.length - suffix.length; + return [word.slice(0, cut), word.slice(cut)]; + } + } + return [word, ""]; +} + +// --- §2.2 eligibility ---------------------------------------------------------------- + +/** ASCII letters only. Python must use `re.fullmatch(r"[A-Za-z]+", ...)`, NOT + * `str.isalpha()`, which is Unicode-aware and would accept what this rejects. */ +const ASCII_STEM = /^[A-Za-z]+$/; + +/** + * May this stem be vacated? (§2.2) All three must hold: + * + * 1. `lower(stem)` is not in the keep set, + * 2. `stem` is ASCII letters only, + * 3. `stem` is longer than two characters. + * + * Test 2 is what makes hyphens and apostrophes behave, and the three cases both stacks + * must agree on exactly: + * + * * `good-bye` — no suffix matches, the stem is `good-bye`, the hyphen fails test 2, + * so the word is NEVER vacated; + * * `don't` — the `n't` suffix splits it to stem `do`, which fails test 3 (and test 1); + * * `dog's` — the `'s` suffix splits it to stem `dog`, which passes, so the output is + * `'s`. + * + * `keep` is the EFFECTIVE set (`effectiveKeepSet`), not the caller's extras. + */ +export function isEligible(stem: string, keep: ReadonlySet): boolean { + if (keep.has(stem.toLowerCase())) return false; + if (!ASCII_STEM.test(stem)) return false; + return stem.length > 2; +} + +// --- §5.4 the phonotactic tables ----------------------------------------------------- +// +// Ported verbatim from `tiny-seuss/synth/jabberwockify.py`, ORDER SIGNIFICANT: the index +// into each list is what the byte stream selects, so reordering silently changes every +// nonce ever minted. + +/** 47 entries. */ +export const ONSETS: readonly string[] = [ + "b", "br", "bl", "d", "dr", "f", "fl", "fr", "g", "gl", "gr", "h", + "j", "k", "kl", "kr", "l", "m", "n", "p", "pl", "pr", "r", "s", "sk", + "sl", "sm", "sn", "sp", "st", "str", "sw", "t", "tr", "th", "thr", + "v", "w", "wr", "y", "z", "sh", "shr", "ch", "gn", "sc", "sq", +]; + +/** 19 entries. */ +export const NUCLEI: readonly string[] = [ + "a", "e", "i", "o", "u", "ai", "ee", "ea", "oo", "ou", "oa", "ie", + "y", "au", "ur", "ir", "or", "ar", "er", +]; + +/** + * 46 entries, beginning with the empty string. + * + * An early draft of §5.4 said 49. The contract now says 46 and, more usefully, states that + * **the source lists are normative and the counts are commentary** — a nonce is a function + * of these strings and their indices, not of a tally in a document. + */ +export const CODAS: readonly string[] = [ + "", "b", "d", "f", "g", "k", "l", "m", "n", "p", "r", "s", "t", "v", + "z", "sh", "ch", "th", "ck", "ff", "ll", "mp", "nd", "ng", "nk", "nt", + "sk", "sp", "st", "ft", "lt", "lk", "rd", "rk", "rm", "rn", "rt", "ble", + "dle", "gle", "kle", "tle", "mble", "ndle", "ffle", "zzle", +]; + +/** 13 entries — the tail of a non-initial unstressed syllable. */ +export const UNSTRESSED_TAILS: readonly string[] = [ + "y", "le", "er", "ow", "en", "el", "ish", "ous", "id", + "ic", "um", "ent", "ing", +]; + +/** The prefix an INITIAL unstressed syllable draws from. */ +export const UNSTRESSED_PREFIXES: readonly string[] = ["a", "be", "re", "de", "un", "en"]; + +/** + * The reduced coda set for an unstressed syllable. The duplicated empty string doubles + * its weight — keep it (§5.4). + * + * §5.5's enumerated rule has exactly three branches and none of them reaches this table: + * a stressed syllable draws from `CODAS`, an unstressed one emits a whole prefix or tail. + * It is dead in the source too (`_syl(stressed=False)` is never called from `mint`). + * **Do not "fix" this** — the byte stream's list indices must not shift, and drawing from + * it would change every multi-syllable nonce in both stacks. + */ +export const REDUCED_CODAS: readonly string[] = ["", "", "l", "n", "r", "s"]; + +/** Replacement characters for a seam, indexed by a hash of `(stem, suffix)` (§5.7). */ +const SEAM_CHARS = "lnrtk"; + +// --- §6 prosody ---------------------------------------------------------------------- + +/** + * The 61 polysyllables of the Dolch list, hand-set. `1` = stressed, `0` = unstressed. + * Ported verbatim from `tiny-seuss/synth/lexicon.py`. + * + * PROVENANCE — read this before quoting a prosody number. The source describes the table + * as "seeded by rule and then overridden by a hand table", and its own status table lists + * it under *not yet exercised*: "seeded by rule; wants roughly an hour of human + * checking." So we do NOT claim exact prosody and no UI string may. The shipped corpus is + * *The Real Mother Goose*, most of whose types are not Dolch words, so most of them fall + * through to the spelling rule — which is exactly what `stressTableCoverage*` measures, + * and why every prosody statistic must be shown next to it. + */ +export const STRESS_TABLE: ReadonlyMap = new Map([ + ["away", "01"], ["funny", "10"], ["little", "100"], ["yellow", "10"], + ["into", "10"], ["over", "10"], ["pretty", "10"], ["under", "10"], + ["after", "10"], ["again", "01"], ["any", "10"], ["every", "100"], + ["giving", "10"], ["once", "1"], ["open", "10"], + ["always", "100"], ["around", "01"], ["because", "01"], ["before", "01"], + ["seven", "10"], ["eight", "1"], ["myself", "01"], ["never", "10"], + ["only", "10"], ["today", "01"], ["together", "0100"], ["better", "10"], + ["carry", "10"], ["many", "10"], ["upon", "01"], ["very", "100"], + ["apple", "10"], ["baby", "10"], ["birthday", "100"], ["brother", "10"], + ["chicken", "10"], ["children", "100"], ["Christmas", "10"], + ["farmer", "10"], ["flower", "10"], ["garden", "10"], ["good-bye", "01"], + ["horse", "1"], ["kitty", "10"], ["letter", "10"], ["money", "10"], + ["morning", "10"], ["mother", "10"], ["paper", "100"], ["party", "10"], + ["picture", "10"], ["rabbit", "10"], ["robin", "10"], ["squirrel", "1"], + ["table", "10"], ["water", "10"], ["window", "10"], ["Santa Claus", "101"], + ["father", "10"], ["sister", "10"], ["summer", "10"], +]); + +/** Where a stress pattern came from — the honesty of every prosody number (§6.1). */ +export type StressSource = "minted" | "table" | "rule"; + +/** + * Syllable count by spelling rule (§6.2). Fallback only. + * + * The source has a further `if w.endswith("le") ...: pass` branch. It is a literal `pass` + * — dead code — and is NOT ported; the behaviour here is byte-identical to the source's. + */ +export function ruleSyllables(word: string): number { + let w = word.toLowerCase().replace(/^['-]+/, "").replace(/['-]+$/, ""); + w = w.replace(/[^a-z]/g, ""); + if (w.length === 0) return 1; + let n = (w.match(/[aeiouy]+/g) ?? []).length; + if (w.endsWith("e") && n > 1 && !(w.endsWith("le") || w.endsWith("ee") || w.endsWith("ye"))) { + n -= 1; + } + return Math.max(1, n); +} + +/** + * The stress pattern of a word, and where it came from. Lookup order is exactly §6.3: + * + * 1. `minted[lower(word)]` — a form WE minted, whose pattern is intended rather than + * guessed, so prosody scoring on a vacated corpus is exact for the minted forms; + * 2. `STRESS_TABLE[word]` — CASE-SENSITIVE, which is there for `Christmas`; + * 3. `STRESS_TABLE[lower(word)]`; + * 4. the rule. + * + * `minted` is passed explicitly rather than kept in a module-level registry (the source + * used a global `MINTED_STRESS`): a global would leak one build's nonces into the next + * one's syllable checks and make minting depend on call order, which is the class of bug + * §5 exists to remove. Omit it and you get pure spelling+table prosody, which is what + * minting itself uses and what the ORIGINAL corpus should be scored with. + */ +export function stressWithSource( + word: string, + minted?: ReadonlyMap, +): { pattern: string; source: StressSource } { + const lower = word.toLowerCase(); + const mintedPattern = minted?.get(lower); + if (mintedPattern !== undefined) return { pattern: mintedPattern, source: "minted" }; + const exact = STRESS_TABLE.get(word); + if (exact !== undefined) return { pattern: exact, source: "table" }; + const lowered = STRESS_TABLE.get(lower); + if (lowered !== undefined) return { pattern: lowered, source: "table" }; + const n = ruleSyllables(lower); + return { pattern: n === 1 ? "1" : "1" + "0".repeat(n - 1), source: "rule" }; +} + +/** §6.3. */ +export function stress(word: string, minted?: ReadonlyMap): string { + return stressWithSource(word, minted).pattern; +} + +/** §6.3: `syllables(word) := len(stress(word))`. */ +export function syllables(word: string, minted?: ReadonlyMap): number { + return stress(word, minted).length; +} + +/** The repeating feet §6.4 names. */ +export const METER_FEET: Readonly> = { + anapest: "001", + iamb: "01", + trochee: "10", + dactyl: "100", +}; + +/** Raw `WORD_RE` matches, case preserved — `stress`'s case-sensitive step 2 needs them. + * A fresh RegExp per call: the shared `g`-flagged literal carries `lastIndex`. */ +function wordMatches(text: string): string[] { + const re = new RegExp(WORD_RE.source, "g"); + const out: string[] = []; + for (let m = re.exec(text); m !== null; m = re.exec(text)) out.push(m[0]); + return out; +} + +/** + * §6.4: the fraction of syllable positions in the line's concatenated stress string that + * match the repeating foot. `0.0` for a line with no syllables. + */ +export function meterScore( + line: string, + foot: string = "anapest", + minted?: ReadonlyMap, +): number { + const pat = METER_FEET[foot]; + if (pat === undefined) { + throw new Error(`unknown foot ${JSON.stringify(foot)}; expected ${Object.keys(METER_FEET).join(", ")}`); + } + let scan = ""; + for (const w of wordMatches(line)) scan += stress(w, minted); + if (scan.length === 0) return 0; + let hits = 0; + for (let i = 0; i < scan.length; i++) if (scan[i] === pat[i % pat.length]) hits++; + return hits / scan.length; +} + +// --- §4 the vacancy decision --------------------------------------------------------- + +/** sha256 of a UTF-8 string, as bytes. */ +function digestBytes(s: string): Uint8Array { + const hex = sha256Hex(utf8Bytes(s)); + const out = new Uint8Array(32); + for (let i = 0; i < 32; i++) out[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16); + return out; +} + +/** + * Big-endian uint32 from four bytes. The `>>> 0` is REQUIRED: without it JS sign-extends + * and `%` returns a negative index (§5.3). + */ +function u32At(bytes: Uint8Array, offset: number): number { + return ( + ((bytes[offset] << 24) | (bytes[offset + 1] << 16) | (bytes[offset + 2] << 8) | bytes[offset + 3]) >>> 0 + ); +} + +/** + * `u(stem, seed) ∈ [0, 1)` — the vacancy coordinate (§4). A stem is vacated iff `u < p`. + * + * `u` depends on `(seed, lower(stem))` alone, which is what makes the vacated sets NESTED + * as `p` grows, so a `p`-sweep varies the vacancy set and nothing else. + * + * The `>> 11n` is mandatory and is a departure from the source's `top64 / 2**64`: a + * 64-bit integer divided by 2^64 is not exactly representable as a float64, so Python and + * JavaScript can land on different doubles for the same digest and disagree about a word + * at the boundary. Shifting to 53 bits makes the numerator exact in both — and + * `Number()` of a BigInt below 2^53 is itself exact, so no rounding enters here either. + */ +export function vacancyU(stem: string, seed: number): number { + if (!Number.isInteger(seed)) { + throw new Error(`vacancyU: seed must be an integer, got ${seed}`); + } + const hex = sha256Hex(utf8Bytes(`${seed}:${stem.toLowerCase()}`)); + return Number(BigInt("0x" + hex.slice(0, 16)) >> 11n) / 2 ** 53; +} + +// --- §5.3 the deterministic byte stream ---------------------------------------------- + +/** + * `bytesFor(seed, stem, salt, counter) = sha256(f"{seed}:mint:{stem}:{salt}:{counter}")`, + * consumed four bytes at a time as a big-endian uint32 and refilled from the next + * `counter` when exhausted. This replaces `random.Random`, which cannot be reproduced + * across the two languages (departure 3). + */ +class MintStream { + private readonly prefix: string; + private buf: Uint8Array; + private pos = 0; + private counter = 0; + + constructor(seed: number, stem: string, salt: number) { + this.prefix = `${seed}:mint:${stem}:${salt}`; + this.buf = digestBytes(`${this.prefix}:0`); + } + + nextU32(): number { + if (this.pos + 4 > this.buf.length) { + this.counter += 1; + this.buf = digestBytes(`${this.prefix}:${this.counter}`); + this.pos = 0; + } + const v = u32At(this.buf, this.pos); + this.pos += 4; + return v; + } + + /** `list[nextU32() % len(list)]`. Every list here is shorter than 256, so the modulo + * bias is aesthetic rather than statistical — but both stacks bias IDENTICALLY. */ + choice(items: readonly T[]): T { + return items[this.nextU32() % items.length]; + } +} + +// --- §5.5 the mint loop -------------------------------------------------------------- + +/** Attempt `a >= 400` drops the syllable-count check. */ +const ATTEMPT_DROP_SYLLABLES = 400; +/** Attempt `a >= 800` drops the length check. */ +const ATTEMPT_DROP_LENGTH = 800; +/** Attempt `a >= 1200` raises — it has never happened and if it does we want to know. */ +const ATTEMPT_GIVE_UP = 1200; + +/** Collapse runs: `bbb -> bb`. */ +const RUN_RE = /([bcdfghjklmnpqrstvwxz])\1{2,}/g; + +/** + * Mint one nonce (§5.5). + * + * Depends only on `(seed, key, pattern, forbidden, baseSalt)` — never on `p`, never on + * the document, never on the order words are encountered while rewriting. That is what + * makes a stem's nonce the same at every `p` (§5.6). + * + * TWO COUNTERS, and the distinction is load-bearing (§5.5). The byte stream is keyed on + * `salt = baseSalt + a`, but the quality thresholds are on the ATTEMPT counter `a`, which + * restarts at 0 in every call. Read the other way — thresholds on the absolute salt — a + * re-mint starting at `baseSalt = 1001` would begin with every check already relaxed, so + * the replacement would not be prosody-matched, and round 2 would blow straight past the + * give-up bound and contradict §5.2's "raise after 8 rounds". + * + * The relaxations replace the source's give-up path, which returned + * `syllable + str(len(self.used))` — a count of how many words happened to be minted + * first, and therefore order-dependent (departure 6). + */ +function mintNonce( + key: string, + pattern: string, + seed: number, + forbidden: ReadonlySet, + baseSalt: number, +): { nonce: string; salt: number } { + const nSyl = pattern.length; + for (let a = 0; a < ATTEMPT_GIVE_UP; a++) { + const salt = baseSalt + a; + const stream = new MintStream(seed, key, salt); + let w = ""; + for (let i = 0; i < nSyl; i++) { + if (pattern[i] === "1") { + w += stream.choice(ONSETS) + stream.choice(NUCLEI) + stream.choice(CODAS); + } else if (i === 0) { + w += stream.choice(UNSTRESSED_PREFIXES); + } else { + w += stream.choice(UNSTRESSED_TAILS); + } + } + w = w.replace(RUN_RE, "$1$1"); + if (w.length < 3 && a < ATTEMPT_DROP_LENGTH) continue; + if (forbidden.has(w)) continue; + if (a < ATTEMPT_DROP_SYLLABLES && syllables(w) !== nSyl) continue; + return { nonce: w, salt }; + } + throw new Error( + `vacancy: could not mint a nonce for ${JSON.stringify(key)} (pattern ${pattern}) ` + + `in ${ATTEMPT_GIVE_UP} attempts from base salt ${baseSalt} (§5.5) — this has never ` + + `happened; report it rather than raising the bound`, + ); +} + +/** + * §5.7. Re-attaching a suffix can produce a seam (`wee` + `er` -> `weeer`). When the + * nonce's last character equals the suffix's first, replace it with a character chosen by + * a hash of `(stem, suffix)` — deterministic and order-independent, where the source drew + * from a shared RNG (departure 7). + * + * `suffix` and `key` are ALWAYS the lowercased forms. This is the case-commuting invariant + * of §5.7: the seam test branches on `suffix[0]`, so a case-preserved suffix would make + * `gums -> flels` and `GUMS -> FLESS` — one source type, two surface forms, theorem false. + */ +function seamFix(nonce: string, suffix: string, key: string, seed: number): string { + if (suffix.length === 0 || nonce.length === 0) return nonce; + if (nonce[nonce.length - 1] !== suffix[0]) return nonce; + const idx = u32At(digestBytes(`${seed}:seam:${key}:${suffix}`), 0) % SEAM_CHARS.length; + return nonce.slice(0, -1) + SEAM_CHARS[idx]; +} + +/** + * Source's `match_case`: ALL CAPS stays all caps, Titlecase stays titlecase. + * + * §5.7: applied ONCE, to the whole assembled surface form, with the ORIGINAL WHOLE WORD as + * the case source. It is the only step in the transform allowed to look at case, which is + * what makes the transform commute with lowercasing. + */ +function matchCase(src: string, surface: string): string { + if (src.length > 1 && src === src.toUpperCase() && /[A-Za-z]/.test(src)) return surface.toUpperCase(); + if (/^[A-Z]/.test(src)) return surface.slice(0, 1).toUpperCase() + surface.slice(1); + return surface; +} + +/** §1: every output is itself a single, COMPLETE `WORD_RE` match — checked, not assumed. + * If this ever fired, `tokenize(vacate(text))` would not align with `tokenize(text)` and + * the invariance theorem would be quietly false. */ +const WHOLE_WORD_RE = new RegExp(`^(?:${WORD_RE.source})$`); + +function assertWholeWord(output: string, input: string): string { + if (!WHOLE_WORD_RE.test(output)) { + throw new Error( + `vacancy: transform of ${JSON.stringify(input)} produced ${JSON.stringify(output)}, ` + + `which is not a single complete WORD_RE match`, + ); + } + return output; +} + +/** + * The assembled, LOWERCASED surface form of §5.7 — `stem` and `suffix` lowercase, the seam + * fixed, the suffix re-attached. This is the object conditions A and B of §5.2 range over, + * and the only thing `matchCase` is ever applied to. + */ +function surfaceForm(stem: string, suffix: string, nonce: string, seed: number): string { + return seamFix(nonce, suffix, stem, seed) + suffix; +} + +// --- §7.1 parameters ----------------------------------------------------------------- + +/** The knobs of §7.1. Defaults in `DEFAULT_VACANCY_PARAMS`. */ +export interface VacancyParams { + /** Fraction of eligible types vacated. Compared to `u` as given — the UI emits two + * decimal places and both stacks parse it as float64. */ + p: number; + /** Selects both `u` and the nonce assignment. Must be an integer. */ + seed: number; + /** One nonce per source type, corpus-wide. `false` is the source's "inconsistent + * assignment" control: same vacancy rate, no learnable identity, and DELIBERATELY no + * stability property. */ + consistent: boolean; + /** Nonce carries the stem's syllable count and stress. */ + matchProsody: boolean; + /** First N occurrences of a vacated stem keep the English form — a partial location. */ + revealAfter: number; + /** Extra words added to the closed class. */ + keep: readonly string[]; +} + +export const DEFAULT_VACANCY_PARAMS: VacancyParams = { + p: 0, + seed: 0, + consistent: true, + matchProsody: true, + revealAfter: 0, + keep: [], +}; + +/** Fill in §7.1's defaults around a partial setting. */ +export function vacancyParams(partial: Partial = {}): VacancyParams { + return { ...DEFAULT_VACANCY_PARAMS, ...partial }; +} + +// --- §5.2 the map -------------------------------------------------------------------- + +/** The `p`-independent nonce assignment, plus the facts §7.3 requires be verified. */ +export interface VacancyMap { + /** lowercase stem -> nonce, over EVERY eligible stem of the domain. The map at a given + * `p` is this map restricted to `{stem : u(stem) < p}`. */ + map: ReadonlyMap; + /** nonce -> intended stress pattern, so prosody scoring on a vacated corpus reflects + * what we built. `vacateText` adds to it in the `consistent = false` control. */ + mintedStress: Map; + /** How many re-mint rounds conditions A/B of §5.2 needed. Reported, not assumed. */ + remintRounds: number; + /** Conditions A and B both hold — §7.3's injectivity, measured at build time and + * therefore true at EVERY `p`, not only at `p = 1`. */ + bijective: boolean; + /** `|image of the domain under the full map|`, reported in the statistics (§10). */ + imageSize: number; + /** Every minted nonce plus `avoid`. Carried so the `consistent = false` control can + * keep minting fresh forms that collide with neither. */ + forbidden: ReadonlySet; + /** The lowercased domain (corpus types ∪ budget words). Condition B ranges over it and + * §10's type counts are defined over it. */ + domain: ReadonlySet; +} + +/** How many re-mint rounds §5.2 allows before raising. */ +const MAX_REMINT_ROUNDS = 8; + +/** A domain type decomposed for the surface-form check: both parts lowercase. */ +interface StemSuffixPair { + stem: string; + suffix: string; +} + +/** The full-map (i.e. `p = 1`) image of a lowercased type. */ +function imageOfType(type: string, map: ReadonlyMap, seed: number): string { + const [stem, suffix] = stemAndSuffix(type); + const nonce = map.get(stem); + if (nonce === undefined) return type; + return surfaceForm(stem, suffix, nonce, seed); +} + +/** + * Conditions A and B of §5.2, evaluated over the assembled surface forms. Returns the + * stems that must be re-minted — empty when the map is injective at every `p`. + * + * A. the surface forms are pairwise distinct + * B. no surface form equals any lowercased domain type, eligible or not + * + * The loser of an A-collision is the stem later in canonical (ASCII-ascending) order among + * those involved; the winner keeps its nonce, so a re-mint never cascades (§5.8). A + * B-violation has no winner — the English word is fixed — so the offending stem re-mints. + */ +function injectivityOffenders( + pairs: readonly StemSuffixPair[], + map: ReadonlyMap, + domain: ReadonlySet, + seed: number, +): Set { + const offenders = new Set(); + const bySurface = new Map>(); + for (const { stem, suffix } of pairs) { + const nonce = map.get(stem); + if (nonce === undefined) continue; + const surface = surfaceForm(stem, suffix, nonce, seed); + if (domain.has(surface)) offenders.add(stem); // B + const bucket = bySurface.get(surface); + if (bucket === undefined) bySurface.set(surface, new Set([stem])); + else bucket.add(stem); + } + for (const [, stems] of bySurface) { + if (stems.size < 2) continue; // A: one stem, one surface — nothing to break the tie + const sorted = [...stems].sort(); + for (let i = 1; i < sorted.length; i++) offenders.add(sorted[i]); + } + return offenders; +} + +/** + * Build the nonce assignment ONCE over the whole type set, in canonical order (§5.2). + * + * stems := sorted({ stemOf(t) for t in types if eligible(stemOf(t)) }) + * used := {} + * for stem in stems: # canonical order — never p, never document order + * nonce := mint(stem, seed, matchProsody, forbidden = used ∪ avoid) + * used.add(nonce); map[stem] = nonce + * + * `types` must be the UNION of the corpus's type set and the budget's word list: §7.2 + * pushes budget words through the same transform, so a budget word absent from the corpus + * still needs an image. `avoid` is the lowercased corpus type set, so a bare nonce can + * never be a real word of the corpus — the source accepts an `avoid` parameter and then + * never passes one, which lets a minted form silently merge with an English type + * (departure 5). + * + * INJECTIVITY IS VERIFIED, NOT ASSUMED, AND AT EVERY `p` (§5.2 / §7.3). Two weaker checks + * were tried first and both were wrong, each for a reason worth keeping written down: + * + * * checking BARE NONCES misses the collision that arrives through the suffix; + * * checking `|image| == |types|` AT `p = 1` ONLY misses it too, because at full vacancy + * every eligible type has moved and no minted form can meet a surviving English word. + * + * The measured example, on the shipped corpus: at `seed = 7` the stem `hang` minted `wak`. + * No corpus type equals `wak`, so a bare-nonce check passes; at `p = 1` `waked` is itself + * vacated, so a full-vacancy check passes; but at `p ∈ {0.25, 0.5}` `hanged` is vacated and + * `waked` is not, so `hanged -> wak + ed = waked` collides with the English `waked` and + * injectivity — and with it §7.3 — fails. + * + * So the check is conditions A and B of `injectivityOffenders`, over assembled surface + * forms, both `p`-independent, which is what makes injectivity hold simultaneously for + * every `p`. Offenders are re-minted in canonical order at salt + * `1000 * round + previousSalt + 1` (round from 1, §5.8); only the loser moves, so a + * re-mint never cascades. Eight rounds and then it raises. + */ +export function buildVacancyMap( + types: Iterable, + params: VacancyParams, + avoid: Iterable = [], +): VacancyMap { + const keep = effectiveKeepSet(params.keep); + const domain = new Set(); + for (const t of types) domain.add(t.toLowerCase()); + + const avoidSet = new Set(); + for (const a of avoid) avoidSet.add(a.toLowerCase()); + + // `pairs` is one (stem, suffix) per domain type with an eligible stem — the objects + // conditions A and B range over. `stems` is their canonical, ASCII-ascending order. + const pairs: StemSuffixPair[] = []; + const stems = new Set(); + for (const t of domain) { + const [stem, suffix] = stemAndSuffix(t); + if (!isEligible(stem, keep)) continue; + pairs.push({ stem, suffix }); + stems.add(stem); + } + const ordered = [...stems].sort(); + + const forbidden = new Set(avoidSet); + const map = new Map(); + const mintedStress = new Map(); + const patterns = new Map(); + const salts = new Map(); + for (const stem of ordered) { + const pattern = params.matchProsody ? stress(stem) : "1"; + patterns.set(stem, pattern); + const { nonce, salt } = mintNonce(stem, pattern, params.seed, forbidden, 0); + forbidden.add(nonce); + map.set(stem, nonce); + mintedStress.set(nonce, pattern); + salts.set(stem, salt); + } + + let remintRounds = 0; + for (;;) { + const offenders = injectivityOffenders(pairs, map, domain, params.seed); + if (offenders.size === 0) break; + remintRounds += 1; + if (remintRounds > MAX_REMINT_ROUNDS) { + throw new Error( + `vacancy: conditions A/B of architecture.md §5.2 still violated after ` + + `${MAX_REMINT_ROUNDS} re-mint rounds (${offenders.size} stems outstanding, e.g. ` + + `${JSON.stringify([...offenders].sort().slice(0, 5))})`, + ); + } + // Canonical order, so the result does not depend on iteration order. + for (const stem of [...offenders].sort()) { + const pattern = patterns.get(stem); + const previousSalt = salts.get(stem); + if (pattern === undefined || previousSalt === undefined) { + throw new Error(`vacancy: re-mint offender ${JSON.stringify(stem)} was never minted`); + } + const startSalt = 1000 * remintRounds + previousSalt + 1; + const { nonce, salt } = mintNonce(stem, pattern, params.seed, forbidden, startSalt); + // The superseded nonce stays in `forbidden` (it is not handed to anyone else) but + // leaves `mintedStress`, where a stale key would claim a pattern nothing carries. + const superseded = map.get(stem); + if (superseded !== undefined) mintedStress.delete(superseded); + forbidden.add(nonce); + map.set(stem, nonce); + mintedStress.set(nonce, pattern); + salts.set(stem, salt); + } + } + + const image = new Set(); + for (const t of domain) image.add(imageOfType(t, map, params.seed)); + + return { + map, + mintedStress, + remintRounds, + bijective: true, + imageSize: image.size, + forbidden, + domain, + }; +} + +// --- §5 / §7 the transform ----------------------------------------------------------- + +/** Per-`vacateText` mutable state; nothing here survives the call. */ +interface TransformState { + /** stem -> how many eligible, vacancy-decided occurrences have been seen so far. */ + counts: Map; + /** Growing forbidden set for the `consistent = false` control. */ + forbidden: Set; +} + +/** + * The core rewrite of one `WORD_RE` match. `state` is `undefined` for the order-free + * paths (`mapVocabWords`), which have no occurrence index and therefore no `revealAfter`. + * + * Everything is computed on the LOWERCASED word and `matchCase` is applied once at the + * end, which is what makes `lower(transformWord(w)) === transformWord(lower(w))` (§5.7). + */ +function transformWordWith( + word: string, + vmap: VacancyMap, + params: VacancyParams, + keep: ReadonlySet, + state?: TransformState, +): string { + const [stem, suffix] = stemAndSuffix(word.toLowerCase()); + if (!isEligible(stem, keep)) return word; + if (!(vacancyU(stem, params.seed) < params.p)) return word; + + // 0-based occurrence index of this STEM in document order (§5.8). + let index = 0; + if (state !== undefined) { + index = state.counts.get(stem) ?? 0; + state.counts.set(stem, index + 1); + if (index + 1 <= params.revealAfter) return word; + } else if (params.revealAfter > 0) { + throw new Error( + "vacancy: revealAfter > 0 needs an occurrence order; use vacateText, not mapVocabWords", + ); + } + + let nonce: string; + if (params.consistent) { + const mapped = vmap.map.get(stem); + if (mapped === undefined) { + throw new Error( + `vacancy: no nonce for stem ${JSON.stringify(stem)} — the map's domain must include ` + + `every type of the corpus AND every word of the budget (architecture.md §5.2)`, + ); + } + nonce = mapped; + } else { + if (state === undefined) { + throw new Error("vacancy: consistent = false needs an occurrence order; use vacateText"); + } + // The control condition: a fresh type per occurrence, so the vacancy rate is held + // fixed while the learnable identity is destroyed. It has, deliberately, no stability + // property — the nonce is a function of (stem, occurrenceIndex) in document order. + // `#` is not a legal WORD_RE character, so the key can never collide with a stem. + const pattern = params.matchProsody ? stress(stem) : "1"; + const minted = mintNonce(`${stem}#${index}`, pattern, params.seed, state.forbidden, 0); + nonce = minted.nonce; + state.forbidden.add(nonce); + vmap.mintedStress.set(nonce, pattern); + } + const surface = surfaceForm(stem, suffix, nonce, params.seed); + return assertWholeWord(matchCase(word, surface), word); +} + +/** + * Transform ONE word, in the mapped condition (`consistent = true`, `revealAfter = 0`). + * This is `transformWord` as §1 and §7.2 name it; `vacateText` is this applied to every + * `WORD_RE` match of a text, and `mapVocabWords` is this applied to a budget in order. + */ +export function transformWord(word: string, vmap: VacancyMap, params: VacancyParams): string { + return transformWordWith(word, vmap, params, effectiveKeepSet(params.keep)); +} + +/** + * Rewrite a text in place (§1). Every `WORD_RE` match is replaced by `transformWord`; + * everything else — whitespace, punctuation, digits, line breaks — passes through + * unchanged, byte for byte. Since every output is itself a single complete `WORD_RE` + * match, `tokenize(vacateText(t))` has the same length and ordering as `tokenize(t)`, and + * because line breaks are untouched the ``-per-line rule fires in the same places. + */ +export function vacateText(text: string, vmap: VacancyMap, params: VacancyParams): string { + const keep = effectiveKeepSet(params.keep); + const state: TransformState = { counts: new Map(), forbidden: new Set(vmap.forbidden) }; + // A fresh RegExp per call: the shared `g`-flagged literal carries `lastIndex`. + return text.replace(new RegExp(WORD_RE.source, "g"), (m) => + transformWordWith(m, vmap, params, keep, state), + ); +} + +/** + * §7.2, MAPPED VOCABULARY. Push the budget's word list through the SAME transform, + * PRESERVING ORDER, so `itos_p = SPECIALS ++ mapVocabWords(words, ...)` gives every word + * the id its pre-image had. That, with the map's injectivity, is what makes the token id + * stream identical and training bit-identical (§7.3). + * + * Valid only for the mapped condition (`consistent = true`, `revealAfter = 0`); every + * other condition rebuilds the budget from the vacated corpus instead, and the resulting + * collapse in coverage IS the measurement. + */ +export function mapVocabWords( + words: readonly string[], + vmap: VacancyMap, + params: VacancyParams, +): string[] { + if (!params.consistent) { + throw new Error("vacancy: mapVocabWords requires consistent = true (architecture.md §7.2)"); + } + if (params.revealAfter !== 0) { + throw new Error("vacancy: mapVocabWords requires revealAfter = 0 (architecture.md §7.2)"); + } + const keep = effectiveKeepSet(params.keep); + return words.map((w) => transformWordWith(w, vmap, params, keep)); +} + +// --- §10 statistics ------------------------------------------------------------------ + +/** + * The statistics contract of §10 — these exact names (camelCase in BOTH stacks, §5.8), + * computed from these definitions. + * + * The counting definitions are pinned because the two implementations first disagreed on + * them: `tokensVacated` agreed to the token while the type counts read 1 922 against + * 1 665, which was a gap in the contract and not a disagreement about the transform. Types + * are counted over the DOMAIN (corpus types ∪ budget words); tokens over the CORPUS. + */ +export interface VacancyStats { + /** Distinct lowercased types in the §5.2 DOMAIN (corpus types ∪ budget words). The + * diagnostic scope: it governs the map and the mapped vocabulary. */ + domainTypesTotal: number; + /** Domain types whose STEM is eligible per §2.2. */ + domainTypesEligible: number; + /** Domain types whose transformed output differs from the input at this `p`. */ + domainTypesVacated: number; + /** Distinct lowercased types of the CORPUS itself. **This is the scope a panel shows a + * reader**: the domain-only words (`funny`, `squirrel`, `today`, …) are in the budget + * but never appear in the text, so counting them inflates the vacancy rate being + * reported to someone looking at that text. §10 forbids an unprefixed `types*` for + * exactly this reason — the unprefixed name read either way, and the two stacks read + * it differently. */ + corpusTypesTotal: number; + /** Corpus types whose STEM is eligible per §2.2. */ + corpusTypesEligible: number; + /** Corpus types whose transformed output differs from the input at this `p`. */ + corpusTypesVacated: number; + /** Distinct eligible stems — the size of the map. `typesEligible >= stemsTotal` always, + * since inflected forms share a stem. */ + stemsTotal: number; + /** Stems with `u(stem) < p` (departure 11: the source reports `len(self.map)`, which is + * `p`-independent and therefore wrong below full vacancy). */ + stemsVacated: number; + /** Over the CORPUS token stream, not the domain. */ + tokensTotal: number; + tokensVacated: number; + meanSyllablesBefore: number; + meanSyllablesAfter: number; + meanAnapestBefore: number; + meanAnapestAfter: number; + /** The hand table of §6.1 — the honesty number for English words, and the one that must + * appear beside every prosody statistic. */ + stressFromTableBefore: number; + stressFromTableAfter: number; + /** Forms we minted, whose intended pattern we registered. Known by construction but + * ASSERTED rather than verified: §5.5 accepts a candidate on syllable COUNT, so the + * count is checked and the pattern is not. */ + stressFromMintedBefore: number; + stressFromMintedAfter: number; + /** The spelling heuristic of §6.2 — i.e. a guess. */ + stressFromRuleBefore: number; + stressFromRuleAfter: number; + bijective: boolean; + imageSize: number; + remintRounds: number; +} + +function mean(xs: readonly number[]): number { + if (xs.length === 0) return 0; + let s = 0; + for (const x of xs) s += x; + return s / xs.length; +} + +/** Mean anapest over the lines that produce at least one token (§6.4). */ +function meanAnapest(text: string, minted?: ReadonlyMap): number { + const scores: number[] = []; + for (const line of splitLines(text)) { + if (wordMatches(line).length === 0) continue; + scores.push(meterScore(line, "anapest", minted)); + } + return mean(scores); +} + +/** §10's three-way split: token-weighted fractions that sum to 1. */ +function stressSplit( + words: readonly string[], + minted: ReadonlyMap, +): { table: number; mintedFrac: number; rule: number } { + if (words.length === 0) return { table: 0, mintedFrac: 0, rule: 0 }; + let table = 0; + let mintedHits = 0; + for (const w of words) { + const source = stressWithSource(w, minted).source; + if (source === "table") table++; + else if (source === "minted") mintedHits++; + } + const n = words.length; + return { table: table / n, mintedFrac: mintedHits / n, rule: (n - table - mintedHits) / n }; +} + +/** + * `eligible` and `vacated` over ONE set of lowercased types. + * + * Both §10 scopes call this same function, which is the point: the domain/corpus split was + * a definitional gap that let two stacks report different numbers for the same transform, + * and the fix is that the scopes differ ONLY in the set handed in here. + * + * `vacated` is "the transformed output differs from the input", computed through the map — + * i.e. the mapped condition. `consistent = false` mints a different form per occurrence but + * vacates exactly the same types, so the count is condition-independent. + */ +function countTypes( + types: ReadonlySet, + vmap: VacancyMap, + params: VacancyParams, + keep: ReadonlySet, +): { eligible: number; vacated: number } { + let eligible = 0; + let vacated = 0; + for (const t of types) { + const [stem, suffix] = stemAndSuffix(t); + if (!isEligible(stem, keep)) continue; + eligible++; + if (!(vacancyU(stem, params.seed) < params.p)) continue; + const nonce = vmap.map.get(stem); + if (nonce !== undefined && surfaceForm(stem, suffix, nonce, params.seed) !== t) vacated++; + } + return { eligible, vacated }; +} + +/** + * §10. Both sides are scored with the SAME minted map, so the split is symmetric; on the + * `Before` side `stressFromMinted` comes out 0 because `avoid` keeps every bare nonce off + * the corpus's type list, and conditions A/B keep every assembled surface form off it too. + */ +export function vacancyStats( + original: string, + vacated: string, + vmap: VacancyMap, + params: VacancyParams, +): VacancyStats { + const before = wordMatches(original); + const after = wordMatches(vacated); + if (before.length !== after.length) { + throw new Error( + `vacancy: the transform changed the token count (${before.length} -> ${after.length}); ` + + `architecture.md §1 requires a word-for-word bijection`, + ); + } + + const keep = effectiveKeepSet(params.keep); + const corpusTypes = new Set(before.map((w) => w.toLowerCase())); + const domainCounts = countTypes(vmap.domain, vmap, params, keep); + const corpusCounts = countTypes(corpusTypes, vmap, params, keep); + + let stemsVacated = 0; + for (const stem of vmap.map.keys()) if (vacancyU(stem, params.seed) < params.p) stemsVacated++; + + let tokensVacated = 0; + for (let i = 0; i < before.length; i++) { + if (before[i].toLowerCase() !== after[i].toLowerCase()) tokensVacated++; + } + + const splitBefore = stressSplit(before, vmap.mintedStress); + const splitAfter = stressSplit(after, vmap.mintedStress); + + return { + domainTypesTotal: vmap.domain.size, + domainTypesEligible: domainCounts.eligible, + domainTypesVacated: domainCounts.vacated, + corpusTypesTotal: corpusTypes.size, + corpusTypesEligible: corpusCounts.eligible, + corpusTypesVacated: corpusCounts.vacated, + stemsTotal: vmap.map.size, + stemsVacated, + tokensTotal: before.length, + tokensVacated, + meanSyllablesBefore: mean(before.map((w) => syllables(w, vmap.mintedStress))), + meanSyllablesAfter: mean(after.map((w) => syllables(w, vmap.mintedStress))), + meanAnapestBefore: meanAnapest(original, vmap.mintedStress), + meanAnapestAfter: meanAnapest(vacated, vmap.mintedStress), + stressFromTableBefore: splitBefore.table, + stressFromTableAfter: splitAfter.table, + stressFromMintedBefore: splitBefore.mintedFrac, + stressFromMintedAfter: splitAfter.mintedFrac, + stressFromRuleBefore: splitBefore.rule, + stressFromRuleAfter: splitAfter.rule, + bijective: vmap.bijective, + imageSize: vmap.imageSize, + remintRounds: vmap.remintRounds, + }; +} diff --git a/code/frontend/tests/unit/geoNodeEnv.d.ts b/code/frontend/tests/unit/geoNodeEnv.d.ts index ab10090..0f73dfc 100644 --- a/code/frontend/tests/unit/geoNodeEnv.d.ts +++ b/code/frontend/tests/unit/geoNodeEnv.d.ts @@ -17,6 +17,11 @@ declare module "node:path" { const path: { resolve(...parts: string[]): string; join(...parts: string[]): string; + // Consumed by tests/unit/staticTestUtils.ts and tests/e2e/static.spec.ts, both of + // which resolve a directory from `import.meta.url`. Declared here because this file + // is the project's only description of node:path — the tsconfig pins + // `types: ["vitest/globals"]`, so @types/node is deliberately absent. + dirname(p: string): string; }; export default path; } diff --git a/code/frontend/tests/unit/vacancy.test.ts b/code/frontend/tests/unit/vacancy.test.ts new file mode 100644 index 0000000..3988223 --- /dev/null +++ b/code/frontend/tests/unit/vacancy.test.ts @@ -0,0 +1,738 @@ +/** + * The vacancy transform, measured on the REAL committed corpus. + * + * No mocks and no toy strings standing in for the thing: every assertion below runs + * against `public/static-data/lex/corpus.json` — *The Real Mother Goose*, the same bytes + * the Pages build ships and the same bytes the Python backend trains on. The properties + * being checked are the ones `specs/007-vacancy-transform-field/architecture.md` says the + * instrument must have, and they are the reason a `p`-sweep means anything: + * + * SC-701 NESTING `{stems vacated at p} ⊆ {stems vacated at p'}` for `p < p'`, + * because `u` is a function of `(seed, stem)` alone. + * SC-702 STABILITY a stem's nonce is identical at every `p` where it is vacated, and + * unchanged if the input type order is shuffled — the map is built + * once in canonical order, which is the correction §5.2 makes to the + * source's order-dependent `used` set. + * SC-704 INJECTIVITY the image of the real type set is the same size as the type set, + * verified rather than assumed, with `remintRounds` reported. + * FR-706 no minted form is ever a real corpus type. + * + * Plus the segmentation guarantee of §1 — every output is a single complete `WORD_RE` + * match, so `tokenize(vacated)` aligns with `tokenize(original)` element for element and + * line structure survives — which is what the invariance theorem of §7.3 rests on. + * + * The final `it` prints the measured numbers (types, tokens, prosody, stress-table + * coverage) rather than hiding them: §10 forbids transcribing the source's numbers from + * ITS corpus, so ours have to come from a run like this one. + */ + +import { describe, expect, it } from "vitest"; + +import { WORD_RE, dolchBudget, splitLines, tokenize } from "../../src/lib/lexEngine"; +import { + CODAS, + DEFAULT_VACANCY_PARAMS, + FUNCTION_WORDS, + NUCLEI, + ONSETS, + SPLIT_EXCEPTIONS, + STRESS_TABLE, + SUFFIXES, + UNSTRESSED_TAILS, + buildVacancyMap, + effectiveKeepSet, + isEligible, + mapVocabWords, + meterScore, + stemAndSuffix, + stress, + syllables, + transformWord, + vacancyParams, + vacancyStats, + vacancyU, + vacateText, + type VacancyMap, + type VacancyParams, +} from "../../src/lib/lexEngine/vacancy"; +import type { LexCorpusAsset } from "../../src/lib/staticClient/lex"; +import { readStaticJson } from "./staticTestUtils"; + +// --- the real corpus, once ------------------------------------------------------------ + +const corpusAsset = await readStaticJson("lex/corpus.json"); +const CORPUS = corpusAsset.text; +const CORPUS_TYPES = new Set(tokenize(CORPUS)); +const BUDGET = dolchBudget("full"); +/** §5.2: the map's domain is the corpus's types UNION the budget's words. */ +const DOMAIN = [...new Set([...CORPUS_TYPES, ...BUDGET])]; + +const P_GRID = [0, 0.25, 0.5, 0.75, 1] as const; +const SEEDS = [0, 7] as const; + +function params(partial: Partial): VacancyParams { + return vacancyParams(partial); +} + +/** One map per seed — it is `p`-independent by construction, which is the point. */ +const MAPS = new Map( + SEEDS.map((seed) => [seed, buildVacancyMap(DOMAIN, params({ seed }), CORPUS_TYPES)]), +); + +function mapFor(seed: number): VacancyMap { + const m = MAPS.get(seed); + if (m === undefined) throw new Error(`no map for seed ${seed}`); + return m; +} + +/** The stems the map would vacate at this `p`, as a set. */ +function vacatedStems(seed: number, p: number): Set { + const out = new Set(); + for (const stem of mapFor(seed).map.keys()) { + if (vacancyU(stem, seed) < p) out.add(stem); + } + return out; +} + +/** Cache the vacated corpus per (seed, p) — each pass rewrites 86 kB. */ +const vacatedCache = new Map(); +function vacated(seed: number, p: number): string { + const key = `${seed}:${p}`; + const hit = vacatedCache.get(key); + if (hit !== undefined) return hit; + const out = vacateText(CORPUS, mapFor(seed), params({ seed, p })); + vacatedCache.set(key, out); + return out; +} + +// --- the verbatim tables -------------------------------------------------------------- + +describe("the ported tables are the source's, unchanged", () => { + it("keeps the curated closed class and nothing else", () => { + expect(FUNCTION_WORDS.size).toBe(137); + // The warning the source carries: the closed class is the curated list ONLY. Union it + // with Dolch service words and these content verbs are silently protected. + for (const verb of ["run", "eat", "see", "get", "let", "put"]) { + expect(FUNCTION_WORDS.has(verb)).toBe(false); + } + for (const w of ["the", "not", "under", "ten"]) expect(FUNCTION_WORDS.has(w)).toBe(true); + }); + + it("keeps the phonotactic tables in their source order", () => { + expect(ONSETS.length).toBe(47); + expect(NUCLEI.length).toBe(19); + // architecture.md §5.4 says 49; the source list it is copied verbatim from has 46. + expect(CODAS.length).toBe(46); + expect(CODAS[0]).toBe(""); + expect(ONSETS[0]).toBe("b"); + expect(ONSETS[ONSETS.length - 1]).toBe("sq"); + expect(NUCLEI[0]).toBe("a"); + expect(NUCLEI[NUCLEI.length - 1]).toBe("er"); + expect(UNSTRESSED_TAILS.length).toBe(13); + expect(UNSTRESSED_TAILS[0]).toBe("y"); + expect(UNSTRESSED_TAILS[UNSTRESSED_TAILS.length - 1]).toBe("ing"); + }); + + it("keeps the suffix list in its trial order and the audited exceptions", () => { + expect([...SUFFIXES]).toEqual(["ing", "edly", "est", "ies", "'s", "n't", "ed", "es", "er", "ly", "s"]); + expect(SPLIT_EXCEPTIONS.size).toBe(10); + // Departure 9: without these, `brother -> broth+er` and `morning -> morn+ing`. + expect(stemAndSuffix("brother")).toEqual(["brother", ""]); + expect(stemAndSuffix("morning")).toEqual(["morning", ""]); + // ... and the artifact that remains, honestly: this is a spelling heuristic. + expect(stemAndSuffix("ladder")).toEqual(["ladd", "er"]); + }); + + it("keeps the 61-entry hand stress table", () => { + expect(STRESS_TABLE.size).toBe(61); + expect(STRESS_TABLE.get("together")).toBe("0100"); + expect(STRESS_TABLE.get("Christmas")).toBe("10"); + }); +}); + +// --- §6 prosody ----------------------------------------------------------------------- + +describe("prosody", () => { + it("uses the hand table before the rule, case-sensitively", () => { + expect(stress("Christmas")).toBe("10"); + expect(stress("little")).toBe("100"); + expect(stress("away")).toBe("01"); + // Not in the table -> the spelling rule. + expect(stress("cat")).toBe("1"); + expect(stress("candle")).toBe("10"); + }); + + it("prefers a minted pattern over both", () => { + const minted = new Map([["zorble", "010"]]); + expect(stress("zorble", minted)).toBe("010"); + expect(syllables("zorble", minted)).toBe(3); + expect(stress("zorble")).toBe("10"); + }); + + it("scores a foot as the fraction of matching syllable positions", () => { + expect(meterScore("", "anapest")).toBe(0); + // "the little cat" scans "1" + "100" + "1" = "11001": monosyllables are stressed by + // the rule, so the scan is not the metrist's reading — it is the table's and the + // rule's, which is exactly what `stressTableCoverage` exists to qualify. + expect(meterScore("the little cat", "trochee")).toBeCloseTo(3 / 5, 12); + expect(meterScore("the little cat", "anapest")).toBeCloseTo(1 / 5, 12); + // "away away" scans "0101": a perfect iamb, and the hand table is why. + expect(meterScore("away away", "iamb")).toBe(1); + expect(() => meterScore("x", "spondee")).toThrow(/unknown foot/); + }); +}); + +// --- §2.2 eligibility ----------------------------------------------------------------- + +describe("eligibility (architecture.md §2.2)", () => { + const keep = effectiveKeepSet(); + + it("never vacates good-bye: no suffix matches and the stem carries a hyphen", () => { + expect(stemAndSuffix("good-bye")).toEqual(["good-bye", ""]); + expect(isEligible("good-bye", keep)).toBe(false); + // ...and it survives the real transform at p = 1, in the corpus's own spelling. + const out = vacateText("good-bye", mapFor(0), params({ seed: 0, p: 1 })); + expect(out).toBe("good-bye"); + }); + + it("never vacates don't", () => { + // architecture.md §2.2 says the `n't` suffix splits this to stem `do`, which then + // fails tests 1 and 3. It does not: §3's own rule requires `len(word) - len(s) >= 3` + // and `len("don't") - len("n't")` is 2, so NO suffix matches and the stem is the + // whole word — which then fails test 2 on the apostrophe. Same verdict, different + // clause; §3 is the operative rule and the source behaves this way too. + expect(stemAndSuffix("don't")).toEqual(["don't", ""]); + expect(isEligible("don't", keep)).toBe(false); + expect(isEligible("do", keep)).toBe(false); // and would fail tests 1 and 3 anyway + expect(vacateText("don't", mapFor(0), params({ seed: 0, p: 1 }))).toBe("don't"); + // A longer contraction DOES split, and its stem is what §2.2 describes. + expect(stemAndSuffix("couldn't")).toEqual(["could", "n't"]); + }); + + it("vacates dog's as 's", () => { + expect(stemAndSuffix("dog's")).toEqual(["dog", "'s"]); + expect(isEligible("dog", keep)).toBe(true); + const out = vacateText("dog's", mapFor(0), params({ seed: 0, p: 1 })); + expect(out).not.toBe("dog's"); + expect(out.endsWith("'s")).toBe(true); + expect(out.slice(0, -2)).toBe(mapFor(0).map.get("dog")); + }); + + it("rejects non-ASCII letters where Python's isalpha() would accept them", () => { + // Test 2 is `^[A-Za-z]+$`, not `str.isalpha()` — the difference is invisible in the + // shipped corpus and visible the moment someone pastes one. + expect(isEligible("café", keep)).toBe(false); + expect(isEligible("naïve", keep)).toBe(false); + }); + + it("respects an extra keep set", () => { + const extended = effectiveKeepSet(["Dog", "cat"]); + expect(isEligible("dog", extended)).toBe(false); + expect(isEligible("cat", extended)).toBe(false); + const vmap = buildVacancyMap(["dog", "cat", "hill"], params({ keep: ["dog"] }), []); + expect(vmap.map.has("dog")).toBe(false); + expect(vmap.map.has("hill")).toBe(true); + }); +}); + +// --- §4 nesting (SC-701) -------------------------------------------------------------- + +describe("SC-701 nesting: the vacated sets grow monotonically with p", () => { + it("nests across the p grid, for both seeds, on the real corpus", () => { + for (const seed of SEEDS) { + const sets = P_GRID.map((p) => vacatedStems(seed, p)); + for (let i = 0; i + 1 < sets.length; i++) { + for (const stem of sets[i]) { + expect(sets[i + 1].has(stem)).toBe(true); + } + expect(sets[i].size).toBeLessThan(sets[i + 1].size); + } + expect(sets[0].size).toBe(0); + expect(sets[sets.length - 1].size).toBe(mapFor(seed).map.size); + } + }); + + it("nests at the level of the rewritten text, not just the decision", () => { + // Whatever changed at p = 0.25 must still be changed, identically, at p = 0.5. + const low = tokenize(vacated(0, 0.25)); + const mid = tokenize(vacated(0, 0.5)); + const base = tokenize(CORPUS); + for (let i = 0; i < base.length; i++) { + if (low[i] !== base[i]) expect(mid[i]).toBe(low[i]); + } + }); + + it("u depends on (seed, stem) alone, so the two seeds disagree", () => { + expect(vacancyU("hill", 0)).toBe(vacancyU("HILL", 0)); + expect(vacancyU("hill", 0)).not.toBe(vacancyU("hill", 7)); + for (const seed of SEEDS) { + for (const stem of ["hill", "jack", "candle"]) { + const u = vacancyU(stem, seed); + expect(u).toBeGreaterThanOrEqual(0); + expect(u).toBeLessThan(1); + // 53-bit numerator over 2**53 — exactly representable, which is departure 2. + expect(Number.isInteger(u * 2 ** 53)).toBe(true); + } + } + }); +}); + +// --- §5 stability (SC-702) ------------------------------------------------------------ + +describe("SC-702 stability: a stem's nonce does not depend on p or on input order", () => { + it("mints the same nonce at every p where the stem is vacated", () => { + const seed = 0; + // Real corpus types whose stem is already vacated at the bottom of the grid, so every + // higher p must reproduce the identical surface form. + const low = vacatedStems(seed, 0.25); + const early = [...CORPUS_TYPES].filter((t) => low.has(stemAndSuffix(t)[0])).sort().slice(0, 300); + expect(early.length).toBeGreaterThan(100); + const reference = new Map(); + for (const p of [0.25, 0.5, 0.75, 1]) { + const surface = mapVocabWords(early, mapFor(seed), params({ seed, p })); + early.forEach((type, i) => { + const seen = reference.get(type); + if (seen === undefined) reference.set(type, surface[i]); + else expect(surface[i]).toBe(seen); + expect(surface[i]).not.toBe(type); + }); + } + }); + + it("is unchanged when the input type order is shuffled", () => { + // A deterministic shuffle: the assertion is about the map, not about randomness. + const shuffled = [...DOMAIN]; + let state = 123456789; + for (let i = shuffled.length - 1; i > 0; i--) { + state = (state * 1103515245 + 12345) >>> 0; + const j = state % (i + 1); + const tmp = shuffled[i]; + shuffled[i] = shuffled[j]; + shuffled[j] = tmp; + } + expect(shuffled).not.toEqual(DOMAIN); + const rebuilt = buildVacancyMap(shuffled, params({ seed: 0 }), CORPUS_TYPES); + const original = mapFor(0); + expect(rebuilt.map.size).toBe(original.map.size); + for (const [stem, nonce] of original.map) expect(rebuilt.map.get(stem)).toBe(nonce); + expect(rebuilt.remintRounds).toBe(original.remintRounds); + }); + + it("is unchanged when the corpus is rewritten a second time", () => { + expect(vacateText(CORPUS, mapFor(0), params({ seed: 0, p: 0.5 }))).toBe(vacated(0, 0.5)); + }); +}); + +// --- §7.3 injectivity (SC-704) -------------------------------------------------------- + +describe("SC-704 injectivity on the real corpus", () => { + it("maps the type set one-to-one, verified rather than assumed", () => { + for (const seed of SEEDS) { + const vmap = mapFor(seed); + expect(vmap.bijective).toBe(true); + expect(vmap.imageSize).toBe(DOMAIN.length); + // Seed 0 needs no re-mint; seed 7 needs exactly one, for `hang` (see the regression + // test below). Both are measured facts about this corpus, not aspirations. + expect(vmap.remintRounds).toBe(seed === 7 ? 1 : 0); + // The nonces themselves are distinct — a weaker statement than the above, but the + // one the source's `used` set was supposed to guarantee. + expect(new Set(vmap.map.values()).size).toBe(vmap.map.size); + } + }); + + it("stays injective at EVERY p, where vacated and English types mix", () => { + // Conditions A and B of §5.2 are p-independent, so injectivity has to hold at every p + // and not only at full vacancy. This is the assertion the contract's §7.3 now makes. + for (const seed of SEEDS) { + const types = [...DOMAIN]; + for (const p of P_GRID) { + const image = mapVocabWords(types, mapFor(seed), params({ seed, p })); + expect(new Set(image).size).toBe(types.length); + } + } + }); + + it("re-mints the seed-7 hanged/waked collision away (regression)", () => { + // The named case that forced conditions A/B into the contract. At seed 7 the stem + // `hang` originally minted `wak`; no corpus type equals `wak`, so a bare-nonce check + // passed, and at p = 1 `waked` is itself vacated, so a full-vacancy check passed too. + // At p ∈ {0.25, 0.5} `hanged` was vacated and `waked` was not, so both became `waked`. + const vmap = mapFor(7); + expect(vmap.remintRounds).toBe(1); + expect(vmap.map.get("hang")).not.toBe("wak"); + // The re-mint is still prosody-matched — `smeeg` is monosyllabic like `hang` — which + // is the observable proving §5.5's thresholds are on the ATTEMPT counter and not on + // the absolute salt. On the absolute reading a re-mint from base salt 1001 would start + // with every check relaxed and the replacement could carry any syllable count. + expect(vmap.map.get("hang")).toBe("smeeg"); + expect(syllables("smeeg")).toBe(1); + expect(transformWord("hanged", vmap, params({ seed: 7, p: 1 }))).toBe("smeeged"); + // Condition B, stated directly: no assembled surface form is a domain type. + for (const t of DOMAIN) { + const [stem, suffix] = stemAndSuffix(t); + const nonce = vmap.map.get(stem); + if (nonce === undefined) continue; + const surface = mapVocabWords([t], vmap, params({ seed: 7, p: 1 }))[0]; + expect(DOMAIN.includes(surface)).toBe(false); + expect(surface.endsWith(suffix)).toBe(true); + } + // And the specific pair no longer meets, at the p where it used to. + for (const p of [0.25, 0.5]) { + const [hanged, waked] = mapVocabWords(["hanged", "waked"], vmap, params({ seed: 7, p })); + expect(hanged).not.toBe(waked); + expect(waked).toBe("waked"); // still English at this p — u(wak) = 0.571179 + } + }); + + it("maps a budget onto ids the pre-images had, order preserved (§7.2)", () => { + const seed = 0; + for (const p of P_GRID) { + const mapped = mapVocabWords(BUDGET, mapFor(seed), params({ seed, p })); + expect(mapped.length).toBe(BUDGET.length); + expect(new Set(mapped).size).toBe(BUDGET.length); + if (p === 0) expect(mapped).toEqual([...BUDGET]); + // Order is the contract: word i of the budget becomes word i of the mapped budget. + BUDGET.forEach((w, i) => { + const [stem] = stemAndSuffix(w); + const eligible = isEligible(stem, effectiveKeepSet()); + if (!eligible || !(vacancyU(stem, seed) < p)) expect(mapped[i]).toBe(w); + else expect(mapped[i]).not.toBe(w); + }); + } + }); +}); + +// --- FR-706 no minted form is a real word -------------------------------------------- + +describe("FR-706: a nonce never collides with a real corpus type", () => { + it("holds for every minted form at both seeds", () => { + for (const seed of SEEDS) { + for (const nonce of mapFor(seed).map.values()) { + expect(CORPUS_TYPES.has(nonce)).toBe(false); + } + } + }); + + it("holds for the rewritten corpus: no new type is an old type in disguise", () => { + // Every type of the vacated corpus that is NOT a type of the original must be minted, + // and every minted surface form must be absent from the original. + const after = new Set(tokenize(vacated(0, 1))); + const survivors = new Set(); + for (const t of after) if (CORPUS_TYPES.has(t)) survivors.add(t); + for (const t of survivors) { + const [stem] = stemAndSuffix(t); + // A surviving English type must be one the transform was never allowed to touch. + const untouchable = !isEligible(stem, effectiveKeepSet()); + expect(untouchable).toBe(true); + } + }); +}); + +// --- §1 segmentation ------------------------------------------------------------------ + +describe("§1 segmentation: the transform is a word-for-word bijection", () => { + it("emits a single complete WORD_RE match for every corpus type", () => { + const whole = new RegExp(`^(?:${WORD_RE.source})$`); + const surface = mapVocabWords([...CORPUS_TYPES], mapFor(0), params({ seed: 0, p: 1 })); + expect(surface.length).toBe(CORPUS_TYPES.size); + for (const w of surface) { + expect(whole.test(w)).toBe(true); + const re = new RegExp(WORD_RE.source, "g"); + expect(w.match(re)).toEqual([w]); + } + }); + + it("preserves the token count and ordering on the real corpus", () => { + const base = tokenize(CORPUS); + expect(base.length).toBe(corpusAsset.n_tokens); + for (const seed of SEEDS) { + for (const p of P_GRID) { + expect(tokenize(vacated(seed, p)).length).toBe(base.length); + } + } + }); + + it("preserves line structure, so the -per-line rule fires in the same places", () => { + const baseLines = splitLines(CORPUS); + for (const p of P_GRID) { + const lines = splitLines(vacated(0, p)); + expect(lines.length).toBe(baseLines.length); + lines.forEach((line, i) => { + expect(tokenize(line).length).toBe(tokenize(baseLines[i]).length); + }); + } + }); + + it("§5.7 commutes with lowercasing, over every type in three casings", () => { + // `lower(transformWord(w)) === transformWord(lower(w))`, normative. The first + // implementation sliced the suffix case-preserved and ran the seam test against it, so + // `gums -> flels` while `GUMS -> FLESS`: one source type, two surface forms, and since + // the tokenizer lowercases those are two different types — §7.3 false. + for (const seed of SEEDS) { + const vmap = mapFor(seed); + const cfg = params({ seed, p: 1 }); + for (const t of CORPUS_TYPES) { + const lowerImage = transformWord(t.toLowerCase(), vmap, cfg); + for (const cased of [t.toLowerCase(), t.toUpperCase(), t[0].toUpperCase() + t.slice(1)]) { + expect(transformWord(cased, vmap, cfg).toLowerCase()).toBe(lowerImage); + } + } + } + // The `gums` case by name, since it is the one that was wrong. + const vmap = mapFor(0); + const cfg = params({ seed: 0, p: 1 }); + expect(transformWord("GUMS", vmap, cfg).toLowerCase()).toBe(transformWord("gums", vmap, cfg)); + // ...and case is still carried, not discarded. + expect(transformWord("GUMS", vmap, cfg)).toBe(transformWord("gums", vmap, cfg).toUpperCase()); + const capital = transformWord("Gums", vmap, cfg); + expect(capital[0]).toBe(capital[0].toUpperCase()); + expect(capital.slice(1)).toBe(transformWord("gums", vmap, cfg).slice(1)); + }); + + it("commutes with lowercasing over the whole real corpus", () => { + expect(vacated(0, 1).toLowerCase()).toBe( + vacateText(CORPUS.toLowerCase(), mapFor(0), params({ seed: 0, p: 1 })), + ); + }); + + it("passes everything that is not a word through byte for byte", () => { + const out = vacated(0, 1); + const strip = (s: string): string => s.replace(new RegExp(WORD_RE.source, "g"), ""); + expect(strip(out)).toBe(strip(CORPUS)); + }); +}); + +// --- the endpoints of the sweep ------------------------------------------------------- + +describe("the endpoints of the p sweep", () => { + it("p = 0 is the identity, for both seeds", () => { + for (const seed of SEEDS) { + expect(vacated(seed, 0)).toBe(CORPUS); + } + }); + + it("p = 1 vacates every eligible type", () => { + const keep = effectiveKeepSet(); + const out = vacated(0, 1); + const before = tokenize(CORPUS); + const after = tokenize(out); + let eligibleTokens = 0; + for (let i = 0; i < before.length; i++) { + const [stem] = stemAndSuffix(before[i]); + if (!isEligible(stem, keep)) { + expect(after[i]).toBe(before[i]); + continue; + } + eligibleTokens++; + expect(after[i]).not.toBe(before[i]); + } + expect(eligibleTokens).toBeGreaterThan(0); + }); +}); + +// --- §6/§7.1 the control conditions --------------------------------------------------- + +describe("the control conditions really are different conditions", () => { + const seed = 0; + + it("consistent = false destroys type identity while holding the vacancy rate", () => { + const vmapA = buildVacancyMap(DOMAIN, params({ seed }), CORPUS_TYPES); + const inconsistent = vacateText(CORPUS, vmapA, params({ seed, p: 1, consistent: false })); + const consistent = vacated(seed, 1); + expect(inconsistent).not.toBe(consistent); + // Same number of tokens, same tokens changed, far more distinct types. + expect(tokenize(inconsistent).length).toBe(tokenize(consistent).length); + const changed = (text: string): number => { + const base = tokenize(CORPUS); + const t = tokenize(text); + let n = 0; + for (let i = 0; i < base.length; i++) if (t[i] !== base[i]) n++; + return n; + }; + expect(changed(inconsistent)).toBe(changed(consistent)); + expect(new Set(tokenize(inconsistent)).size).toBeGreaterThan(new Set(tokenize(consistent)).size); + }); + + it("revealAfter > 0 leaves the first occurrences in English", () => { + const revealed = vacateText(CORPUS, mapFor(seed), params({ seed, p: 1, revealAfter: 2 })); + const pure = vacated(seed, 1); + expect(revealed).not.toBe(pure); + const base = tokenize(CORPUS); + const r = tokenize(revealed); + const q = tokenize(pure); + let revealedUnchanged = 0; + let pureUnchanged = 0; + for (let i = 0; i < base.length; i++) { + if (r[i] === base[i]) revealedUnchanged++; + if (q[i] === base[i]) pureUnchanged++; + } + expect(revealedUnchanged).toBeGreaterThan(pureUnchanged); + }); + + it("matchProsody = false drops the syllable/stress match", () => { + const flat = buildVacancyMap(DOMAIN, params({ seed, matchProsody: false }), CORPUS_TYPES); + const prosodic = mapFor(seed); + expect(flat.map.size).toBe(prosodic.map.size); + let differ = 0; + for (const [stem, nonce] of flat.map) if (prosodic.map.get(stem) !== nonce) differ++; + expect(differ).toBeGreaterThan(0); + // Every flat nonce is monosyllabic by construction; the prosodic ones are not. + for (const pattern of flat.mintedStress.values()) expect(pattern).toBe("1"); + const polysyllabic = [...prosodic.mintedStress.values()].filter((s) => s.length > 1).length; + expect(polysyllabic).toBeGreaterThan(0); + }); + + it("the two seeds are different assignments of the same instrument", () => { + expect(vacated(0, 1)).not.toBe(vacated(7, 1)); + expect(tokenize(vacated(0, 1)).length).toBe(tokenize(vacated(7, 1)).length); + }); +}); + +// --- §10 statistics ------------------------------------------------------------------- + +describe("§10 statistics", () => { + it("returns exactly the contracted field names", () => { + const stats = vacancyStats(CORPUS, vacated(0, 0.5), mapFor(0), params({ seed: 0, p: 0.5 })); + expect(Object.keys(stats).sort()).toEqual( + [ + "bijective", + "corpusTypesEligible", + "corpusTypesTotal", + "corpusTypesVacated", + "domainTypesEligible", + "domainTypesTotal", + "domainTypesVacated", + "imageSize", + "meanAnapestAfter", + "meanAnapestBefore", + "meanSyllablesAfter", + "meanSyllablesBefore", + "remintRounds", + "stemsTotal", + "stemsVacated", + "stressFromMintedAfter", + "stressFromMintedBefore", + "stressFromRuleAfter", + "stressFromRuleBefore", + "stressFromTableAfter", + "stressFromTableBefore", + "tokensTotal", + "tokensVacated", + ].sort(), + ); + }); + + it("forbids an unprefixed types* name, which is what let the two stacks diverge", () => { + // §10 now requires every type count to declare its scope. An unprefixed `typesTotal` + // read as "domain" in one stack and "corpus" in the other, and both were defensible. + const stats = vacancyStats(CORPUS, vacated(0, 0.5), mapFor(0), params({ seed: 0, p: 0.5 })); + for (const key of Object.keys(stats)) { + if (!key.startsWith("types")) continue; + throw new Error(`unprefixed type count ${JSON.stringify(key)} — §10 forbids it`); + } + expect(stats.domainTypesTotal).not.toBe(stats.corpusTypesTotal); + }); + + it("counts stems ACTUALLY vacated, not the size of the prebuilt map", () => { + // Departure 11: the zip copy reports `len(self.map)`, which is p-independent. + const full = mapFor(0).map.size; + const half = vacancyStats(CORPUS, vacated(0, 0.5), mapFor(0), params({ seed: 0, p: 0.5 })); + const none = vacancyStats(CORPUS, vacated(0, 0), mapFor(0), params({ seed: 0, p: 0 })); + expect(none.stemsVacated).toBe(0); + expect(none.domainTypesVacated).toBe(0); + expect(none.corpusTypesVacated).toBe(0); + expect(none.tokensVacated).toBe(0); + expect(half.stemsVacated).toBeGreaterThan(0); + expect(half.stemsVacated).toBeLessThan(full); + expect(half.stemsTotal).toBe(full); + // The vacancy rate tracks p over the eligible stems, which is what p means. + expect(half.stemsVacated / half.stemsTotal).toBeGreaterThan(0.4); + expect(half.stemsVacated / half.stemsTotal).toBeLessThan(0.6); + }); + + it("satisfies the p = 1 identities that exposed the counting gap", () => { + for (const seed of SEEDS) { + const s = vacancyStats(CORPUS, vacated(seed, 1), mapFor(seed), params({ seed, p: 1 })); + // u ∈ [0, 1) by construction, so at p = 1 everything eligible vacates — in BOTH + // scopes. These three identities are what caught the domain/corpus ambiguity. + expect(s.stemsVacated).toBe(s.stemsTotal); + expect(s.domainTypesVacated).toBe(s.domainTypesEligible); + expect(s.corpusTypesVacated).toBe(s.corpusTypesEligible); + // Inflected forms share a stem, so there are always at least as many types as stems. + expect(s.domainTypesEligible).toBeGreaterThanOrEqual(s.stemsTotal); + expect(s.domainTypesTotal).toBe(DOMAIN.length); + expect(s.corpusTypesTotal).toBe(CORPUS_TYPES.size); + } + }); + + it("separates the two scopes by exactly the 22 domain-only words", () => { + // The domain-only words are budget entries the reader never meets in the text, which + // is why the panel shows the CORPUS scope: counting them inflates the vacancy rate + // being reported to someone looking at that text. + const domainOnly = [...DOMAIN].filter((w) => !CORPUS_TYPES.has(w)); + expect(domainOnly.length).toBe(22); + expect(domainOnly).toContain("funny"); + expect(domainOnly).toContain("squirrel"); + expect(domainOnly).toContain("today"); + // All 22 happen to be eligible, so the two scopes differ by exactly 22. + const keep = effectiveKeepSet(); + expect(domainOnly.every((w) => isEligible(stemAndSuffix(w)[0], keep))).toBe(true); + for (const seed of SEEDS) { + const s = vacancyStats(CORPUS, vacated(seed, 1), mapFor(seed), params({ seed, p: 1 })); + expect(s.domainTypesEligible).toBe(s.corpusTypesEligible + 22); + expect(s.domainTypesTotal).toBe(s.corpusTypesTotal + 22); + } + }); + + it("splits stress three ways, summing to 1 on each side", () => { + for (const p of P_GRID) { + const s = vacancyStats(CORPUS, vacated(0, p), mapFor(0), params({ seed: 0, p })); + expect(s.stressFromTableBefore + s.stressFromMintedBefore + s.stressFromRuleBefore).toBeCloseTo(1, 12); + expect(s.stressFromTableAfter + s.stressFromMintedAfter + s.stressFromRuleAfter).toBeCloseTo(1, 12); + // The original corpus contains no minted form — `avoid` and condition B guarantee it. + expect(s.stressFromMintedBefore).toBe(0); + if (p > 0) expect(s.stressFromMintedAfter).toBeGreaterThan(0); + } + }); + + it("agrees with the corpus manifest the backend wrote", () => { + const stats = vacancyStats(CORPUS, CORPUS, mapFor(0), DEFAULT_VACANCY_PARAMS); + expect(stats.tokensTotal).toBe(corpusAsset.n_tokens); + // The manifest counts the CORPUS, so that is the scope that has to match it. + expect(stats.corpusTypesTotal).toBe(corpusAsset.n_distinct); + expect(stats.domainTypesTotal).toBe(DOMAIN.length); + }); + + it("reports the measured numbers on the real corpus", () => { + const rows: string[] = []; + for (const seed of SEEDS) { + for (const p of P_GRID) { + const s = vacancyStats(CORPUS, vacated(seed, p), mapFor(seed), params({ seed, p })); + rows.push( + [ + `seed=${seed}`, + `p=${p.toFixed(2)}`, + `domainTypes=${s.domainTypesTotal}/${s.domainTypesEligible}/${s.domainTypesVacated}`, + `corpusTypes=${s.corpusTypesTotal}/${s.corpusTypesEligible}/${s.corpusTypesVacated}`, + `stemsTotal=${s.stemsTotal}`, + `stemsVacated=${s.stemsVacated}`, + `tokensTotal=${s.tokensTotal}`, + `tokensVacated=${s.tokensVacated}`, + `syl=${s.meanSyllablesBefore.toFixed(4)}->${s.meanSyllablesAfter.toFixed(4)}`, + `anapest=${s.meanAnapestBefore.toFixed(4)}->${s.meanAnapestAfter.toFixed(4)}`, + `table=${s.stressFromTableBefore.toFixed(4)}->${s.stressFromTableAfter.toFixed(4)}`, + `minted=${s.stressFromMintedBefore.toFixed(4)}->${s.stressFromMintedAfter.toFixed(4)}`, + `rule=${s.stressFromRuleBefore.toFixed(4)}->${s.stressFromRuleAfter.toFixed(4)}`, + `bijective=${s.bijective}`, + `imageSize=${s.imageSize}`, + `remintRounds=${s.remintRounds}`, + ].join(" "), + ); + expect(s.bijective).toBe(true); + } + } + // eslint-disable-next-line no-console + console.log(["", "vacancy transform, measured on The Real Mother Goose:", ...rows, ""].join("\n")); + expect(rows.length).toBe(SEEDS.length * P_GRID.length); + }); +}); From 44ea2d1c03db9e7f86d7d15a5b032f8c3b3b29b3 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:33:38 -0400 Subject: [PATCH 13/38] Python vacancy: scoped counts, pinned domain, salt semantics Reproduces the TypeScript stack's domain-scope sequences exactly on the first run, and the domain change altered no measured number -- the fixture already used corpus types union the full Dolch list, which is now what the code says rather than what the caller had to remember. New tests pin the three things that cost a round trip each: that a re-mint is held to the same quality bar as an original mint (by forbidding a candidate at base salt S and showing it reproduces a fresh call at S+1); that the domain is never the active budget, with the map asserted byte-identical across all five Dolch domains; and that the two counting scopes differ by exactly the 22 Dolch words absent from Mother Goose. The field-name test now also asserts that no key starts with `types`, so the ambiguity that produced two rounds of reconciliation cannot come back. 59 vacancy tests, 208 unit tests, ruff and black clean, SC-703 120/120. Co-Authored-By: Claude Opus 5 (1M context) --- code/backend/src/llm_geometry/lex/vacancy.py | 120 +++++++++++----- code/backend/tests/unit/test_lex_vacancy.py | 141 +++++++++++++++++-- 2 files changed, 214 insertions(+), 47 deletions(-) diff --git a/code/backend/src/llm_geometry/lex/vacancy.py b/code/backend/src/llm_geometry/lex/vacancy.py index 05f284f..f25cbeb 100644 --- a/code/backend/src/llm_geometry/lex/vacancy.py +++ b/code/backend/src/llm_geometry/lex/vacancy.py @@ -35,8 +35,9 @@ 10. No claim of exact prosody: :data:`STRESS_TABLE` is 61 hand entries over the Dolch list, described by its own author as "seeded by rule; wants roughly an hour of human checking", so every prosody number ships with the three-way `stressFrom*` split beside it. -11. ``typesVacated`` counts stems actually vacated, measured from the output text, not - ``len(map)``. +11. ``corpusTypesVacated`` counts types actually vacated, measured from the output text, not + ``len(map)``. Every count in §10 names its scope — corpus or domain — because an + unprefixed "types" is ambiguous between the two and cost the stacks two round trips. The properties that make a `p`-sweep interpretable are structural here rather than hoped for: `u` depends only on `(seed, stem)`, so vacated sets are **nested** in `p`; the map is @@ -64,6 +65,7 @@ from typing import Iterable, Mapping, Sequence from ..errors import ComputeError, InvalidParamError +from .dolch import dolch_budget from .vocab import WORD_RE # --- the closed class ------------------------------------------------------------------- @@ -200,13 +202,13 @@ #: Contract §5.5 step 5: deterministic, order-independent relaxations, unlike the source's #: give-up counter. Reaching :data:`MINT_MAX_SALT` raises — it has never happened and if it -#: does we want to know. The three are counted from the mint call's STARTING salt, not from -#: zero: §5.5 writes the loop as `salt = 0, 1, 2, …`, but §5.8 starts a re-mint at -#: `1000 * round + previousSalt + 1`, and absolute thresholds would then make round 1 begin -#: with every quality check already relaxed and round 2 impossible (2001 > 1200), which -#: contradicts §5.2's "raise after 8 rounds". Counting from the start salt is the only -#: reading under which both sections are true; it is identical to the absolute reading for -#: the base build, where the start salt is 0. +#: does we want to know. +#: +#: **These thresholds are on the ATTEMPT COUNTER `a`, not on the absolute salt.** A mint call +#: carries a base salt `S`; the byte stream is keyed on `S + a` for `a = 0, 1, 2, …`, and a +#: re-mint restarts `a` at 0. So a re-mint is held to exactly the same quality bar as an +#: original mint — which is why the seed-7 re-mint of `hang` comes back monosyllabic +#: (`smeeg`) rather than falling out of a loop with every check already relaxed. MINT_RELAX_SYLLABLES_SALT = 400 MINT_RELAX_LENGTH_SALT = 800 MINT_MAX_SALT = 1200 @@ -432,8 +434,10 @@ def _mint( and `forbidden` depends only on the canonically-ordered prefix of stems before this one — so a stem's nonce is the same at every `p`. That is the stability property (§5.6). - The accepting salt is returned because §5.8 needs it: a re-mint restarts at - ``REMINT_SALT_STRIDE * round + previousSalt + 1``. + `start_salt` is the base salt `S`; the byte stream is keyed on ``S + a`` for the attempt + counter ``a = 0, 1, 2, …``, and the quality relaxations are thresholds on ``a``. The + ACCEPTING salt (``S + a``) is returned because §5.8 needs it: a re-mint restarts at + ``REMINT_SALT_STRIDE * round + previousSalt + 1``, with its own ``a`` back at 0. Three branches in step 2, in that order, exactly as §5.5 spells them out. There is no fourth: :data:`REDUCED_CODAS` is unreachable here, as it is in the source, where @@ -442,10 +446,9 @@ def _mint( """ pattern = stress(stem) if match_prosody else "1" n_syl = len(pattern) - salt = start_salt - while salt - start_salt < MINT_MAX_SALT: + for attempt in range(MINT_MAX_SALT): # `a` of §5.5; the stream is keyed on `S + a` + salt = start_salt + attempt rnd = _ByteStream(seed, stem, salt) - tried = salt - start_salt parts: list[str] = [] for i, mark in enumerate(pattern): if mark == "1": @@ -455,11 +458,10 @@ def _mint( else: parts.append(rnd.choice(UNSTRESSED_TAILS)) w = _RUN_RE.sub(r"\1\1", "".join(parts)) - long_enough = len(w) >= 3 or tried >= MINT_RELAX_LENGTH_SALT - right_length = syllables(w) == n_syl or tried >= MINT_RELAX_SYLLABLES_SALT + long_enough = len(w) >= 3 or attempt >= MINT_RELAX_LENGTH_SALT + right_length = syllables(w) == n_syl or attempt >= MINT_RELAX_SYLLABLES_SALT if long_enough and right_length and w not in forbidden: return w, pattern, salt - salt += 1 raise ComputeError( f"could not mint a nonce for {stem!r} in {MINT_MAX_SALT} attempts", {"stem": stem, "seed": seed, "pattern": pattern, "start_salt": start_salt}, @@ -600,15 +602,23 @@ class VacancyMap: #: Lowercased forms a nonce may never take — the corpus type set, so a minted form can #: never silently merge with a real English word. avoid: frozenset[str] - #: ``|image|`` of the type set the map was built over, at full vacancy. + #: The lowercased domain this map was built over — :func:`vacancy_domain`, i.e. the + #: corpus's types plus the full Dolch list. Kept because §10's `domainTypes*` counts are + #: over it and it is NOT recoverable from the corpus text: budget-only words have images + #: but never appear. + domain: frozenset[str] + #: ``|image|`` of the domain, at full vacancy. image_size: int - #: ``|types|`` it was built over. - type_count: int #: ``image_size == type_count``. The relabelling theorem depends on it. bijective: bool #: How many collision-driven re-mint rounds were needed. Expected to be 0. remint_rounds: int + @property + def type_count(self) -> int: + """``|domain|`` — what `image_size` must equal for the map to be injective.""" + return len(self.domain) + def nonce_for(self, stem: str) -> str | None: """The nonce assigned to `stem`, or ``None`` if the stem is outside the domain.""" return self.mapping.get(stem.lower()) @@ -680,16 +690,33 @@ def _image_of(word: str, mapping: Mapping[str, str], keep: frozenset[str], seed: return surface_form(nonce, stem, suffix, seed) +def vacancy_domain(types: Iterable[str]) -> list[str]: + """The map's domain: the corpus's types UNION the **full** Dolch list (contract §5.2). + + Always the full list, **never the active budget**. A budget word absent from the corpus + still needs an image, or the mapped vocabulary of §7.2 has a hole in it — but if the + domain tracked the *active* budget, switching budgets in the UI would rebuild the map and + re-mint the corpus underneath a panel whose whole claim is that nonces are stable. Using + the full list makes the map a function of `(corpus, seed, match_prosody)` alone. + + Measured: the resulting map is byte-identical across all five Dolch domains anyway, + because minting is keyed on `(seed, stem)` and the extra words provoke no new collisions + (`test_map_is_identical_across_every_dolch_domain`). That is a property of this corpus's + collision structure, not a guarantee — which is exactly why it is pinned and why the + domain is fixed here rather than left to each call site to remember. + """ + return sorted({t.lower() for t in types} | {w.lower() for w in dolch_budget("full")}) + + def build_vacancy_map( types: Iterable[str], params: VacancyParams, avoid: Iterable[str] = () ) -> VacancyMap: """Assign every eligible stem a nonce, once, in canonical order (contract §5.2). - `types` must be the union of the corpus's type set AND the budget's word list: a budget - word absent from the corpus still needs an image, or the mapped vocabulary of §7.2 has a - hole in it. `avoid` is the lowercased corpus type set, so a nonce can never collide with - a real word — the source accepts an `avoid` parameter and then never passes one, which - lets a minted form silently merge with an English type. + `types` is the domain — pass :func:`vacancy_domain(corpus_types)`, which pins it to the + corpus's types plus the full Dolch list. `avoid` is the lowercased corpus type set, so a + nonce can never collide with a real word — the source accepts an `avoid` parameter and + then never passes one, which lets a minted form silently merge with an English type. `p` is deliberately unused: the map is built over ALL eligible stems and restricted to ``{u < p}`` at rewrite time. That is what makes nesting and stability structural. @@ -777,8 +804,8 @@ def build_vacancy_map( seed=params.seed, match_prosody=params.match_prosody, avoid=avoid_set, + domain=frozenset(type_set), image_size=len(seen), - type_count=len(type_set), bijective=len(seen) == len(type_set), remint_rounds=rounds, ) @@ -867,10 +894,26 @@ def vacancy_stats( ) -> dict[str, float | int | bool]: """The statistics contract (§10), with exactly these field names. - ``typesVacated`` and ``tokensVacated`` are MEASURED from the two texts rather than read - off the map: the source reports ``len(self.map)``, which is the size of the assignment - and not the number of stems actually vacated, and which is wrong under ``reveal_after`` - and under the inconsistent-assignment control. + **Every count names its scope; an unprefixed ``types*`` is forbidden.** "Types" is + ambiguous between the corpus (2 211 types of *Mother Goose*) and the domain of §5.2 + (2 233 = corpus plus the full Dolch list), and the ambiguity cost two round trips between + the two stacks — which agreed on ``tokensVacated`` to the token and disagreed only on + what they were counting. + + * ``domainTypes*`` — over :attr:`VacancyMap.domain`. This governs the map and the + vocabulary, so it is the diagnostic number, and it is a property of ``(map, p)``: the + 22 domain-only Dolch words (`funny`, `squirrel`, `today`, …) have images but never + appear in the text, so they cannot be measured from it. + * ``corpusTypes*`` — over the corpus's own type set. **This is what the panel shows a + reader**: counting words the reader cannot see inflates the vacancy rate being shown. + ``corpusTypesVacated`` and ``tokensVacated`` are MEASURED from the two texts, so they + respect ``reveal_after`` and the inconsistent-assignment control — the source reports + ``len(self.map)``, which is the size of the assignment and not what was vacated. + * ``stemsTotal`` is ``|map|``; ``stemsVacated`` counts stems with ``u(stem) < p``. + + At ``p = 1`` every eligible stem vacates, because ``u ∈ [0, 1)`` by construction, so + ``stemsVacated == stemsTotal`` and ``*TypesVacated == *TypesEligible``. The first of + those identities is what exposed the scope confusion. The prosody numbers ship with a THREE-WAY split of where each token's stress came from, token-weighted and summing to 1 on each side (§10). A single "table coverage" number was @@ -902,6 +945,12 @@ def vacancy_stats( eligible = {t for t in types if is_eligible(stem_and_suffix(t)[0], keep)} changed = [b.lower() for b, a in zip(before_words, after_words) if b.lower() != a.lower()] + domain_eligible = {t for t in vmap.domain if is_eligible(stem_and_suffix(t)[0], keep)} + domain_vacated = { + t for t in domain_eligible if vacancy_u(stem_and_suffix(t)[0], params.seed) < params.p + } + stems_vacated = sum(1 for s in vmap.mapping if vacancy_u(s, params.seed) < params.p) + # The original text is English, so it is scored WITHOUT the minted patterns; `avoid` # guarantees no English type is also a nonce, so `stressFromMintedBefore` is 0 by # construction rather than by omission. @@ -909,9 +958,14 @@ def vacancy_stats( after = _prosody(vacated, vmap.minted_stress) return { - "typesTotal": len(types), - "typesEligible": len(eligible), - "typesVacated": len(set(changed)), + "domainTypesTotal": len(vmap.domain), + "domainTypesEligible": len(domain_eligible), + "domainTypesVacated": len(domain_vacated), + "corpusTypesTotal": len(types), + "corpusTypesEligible": len(eligible), + "corpusTypesVacated": len(set(changed)), + "stemsTotal": len(vmap.mapping), + "stemsVacated": stems_vacated, "tokensTotal": len(before_words), "tokensVacated": len(changed), "meanSyllablesBefore": before.mean_syllables, diff --git a/code/backend/tests/unit/test_lex_vacancy.py b/code/backend/tests/unit/test_lex_vacancy.py index ba0eaf9..52bf417 100644 --- a/code/backend/tests/unit/test_lex_vacancy.py +++ b/code/backend/tests/unit/test_lex_vacancy.py @@ -26,14 +26,16 @@ from llm_geometry.errors import ComputeError, InvalidParamError from llm_geometry.lex.corpus import load_corpus_text -from llm_geometry.lex.dolch import dolch_budget +from llm_geometry.lex.dolch import DOLCH_ORDER, dolch_budget from llm_geometry.lex.vacancy import ( FUNCTION_WORDS, + REMINT_SALT_STRIDE, SPLIT_EXCEPTIONS, STRESS_TABLE, SUFFIXES, VacancyMap, VacancyParams, + _mint, # private: the salt semantics of §5.5/§5.8 are a contract detail, so they are pinned build_vacancy_map, is_eligible, map_vocab_words, @@ -42,6 +44,7 @@ stress, stress_source, syllables, + vacancy_domain, vacancy_stats, vacancy_u, vacate_text, @@ -69,9 +72,9 @@ def budget() -> list[str]: @pytest.fixture(scope="module") -def domain(corpus_types: list[str], budget: list[str]) -> list[str]: - """Contract §5.2: the corpus's types UNION the budget's words.""" - return sorted(set(corpus_types) | set(budget)) +def domain(corpus_types: list[str]) -> list[str]: + """Contract §5.2: the corpus's types UNION the FULL Dolch list, never the active budget.""" + return vacancy_domain(corpus_types) @pytest.fixture(scope="module") @@ -338,6 +341,35 @@ def test_injectivity_holds_at_every_p_not_just_the_endpoints(corpus, vacated): ), f"seed={seed} p={p}: two source types share a surface form" +def test_a_remint_is_held_to_the_same_quality_bar_as_an_original_mint(maps): + """§5.5's thresholds are on the ATTEMPT COUNTER `a`, not on the absolute salt. + + A mint call carries a base salt `S`; the stream is keyed on `S + a` and a re-mint restarts + `a` at 0. Read the thresholds absolutely instead and a re-mint at `S = 1001` would begin + with the length and syllable checks already relaxed — and a second round, at `S = 2001`, + could not run at all, contradicting "raise after 8 rounds". + + The observable: `hang` is monosyllabic, and its RE-MINTED nonce still is. + """ + assert syllables("hang") == 1 + assert syllables(maps[7].mapping["hang"]) == 1 + assert maps[7].minted_stress[maps[7].mapping["hang"]] == stress("hang") + assert len(maps[7].mapping["hang"]) >= 3 + # Directly: a mint from a base salt past every threshold still enforces every check. + for base in (0, 401, 801, 1001, REMINT_SALT_STRIDE + 500): + nonce, pattern, salt = _mint("hang", 7, True, frozenset(), start_salt=base) + assert syllables(nonce) == len(pattern) == 1 + assert len(nonce) >= 3 + assert base <= salt < base + 1200 + # ... and the stream is keyed on `S + a`: forbidding the first candidate at `S` gives + # exactly what a fresh call at `S + 1` produces. + first, _pattern, first_salt = _mint("hang", 7, True, frozenset(), start_salt=100) + assert first_salt == 100 + assert _mint("hang", 7, True, frozenset({first}), start_salt=100)[0] == ( + _mint("hang", 7, True, frozenset(), start_salt=101)[0] + ) + + def test_hanged_no_longer_surfaces_as_the_english_word_waked(corpus, corpus_types, maps, vacated): """Regression for trap 2 of §7.3, the case that motivated condition B. @@ -367,6 +399,35 @@ def test_no_nonce_is_a_real_corpus_type(maps, corpus_types): assert not (set(maps[seed].mapping.values()) & real) +def test_domain_is_the_corpus_plus_the_full_dolch_list_never_the_active_budget( + corpus_types, domain, budget +): + """§5.2. If the domain tracked the ACTIVE budget, switching budgets in the UI would + rebuild the map and re-mint the corpus underneath a panel demonstrating that nonces are + stable.""" + assert set(domain) == {t.lower() for t in corpus_types} | {w.lower() for w in budget} + assert set(vacancy_domain([])) == {w.lower() for w in dolch_budget("full")} + assert domain == sorted(domain) # canonical order, ASCII ascending + + +def test_map_is_identical_across_every_dolch_domain(corpus_types, maps): + """True today by luck of the collision structure, so it is pinned rather than assumed. + + Minting is keyed on `(seed, stem)`, and on this corpus the words a smaller Dolch list + omits provoke no new collisions — so every budget yields the same assignment. A future + change to `avoid`, to the canonical order, or to condition B could break that silently, + and the first symptom would be nonces moving when a user changes budget. + """ + for name in DOLCH_ORDER: + extras = {w.lower() for w in dolch_budget(name)} + smaller = sorted({t.lower() for t in corpus_types} | extras) + for seed in SEEDS: + built = build_vacancy_map(smaller, VacancyParams(p=1.0, seed=seed), avoid=corpus_types) + assert built.remint_rounds == maps[seed].remint_rounds + for stem, nonce in built.mapping.items(): + assert nonce == maps[seed].mapping[stem], f"{name}/{seed}: {stem} moved" + + def test_no_surface_form_is_ever_an_english_word_of_the_domain(corpus, domain, maps, vacated): """Condition B of §5.2, stated over the whole domain and therefore `p`-independent. @@ -507,7 +568,7 @@ def test_the_control_conditions_all_differ_from_each_other(corpus, maps, vacated # is applied, so re-using a prosody-matched map cannot show a difference. assert flat == baseline flat_map = build_vacancy_map( - sorted(set(tokenize(corpus))), + vacancy_domain(set(tokenize(corpus))), VacancyParams(p=1.0, seed=0, match_prosody=False), avoid=set(tokenize(corpus)), ) @@ -596,9 +657,14 @@ def test_meter_score_is_a_fraction_and_rejects_unknown_feet(): def test_stats_have_exactly_the_contract_field_names(corpus, maps, vacated): stats = vacancy_stats(corpus, vacated[(0, 0.5)], maps[0], VacancyParams(p=0.5, seed=0)) assert set(stats) == { - "typesTotal", - "typesEligible", - "typesVacated", + "domainTypesTotal", + "domainTypesEligible", + "domainTypesVacated", + "corpusTypesTotal", + "corpusTypesEligible", + "corpusTypesVacated", + "stemsTotal", + "stemsVacated", "tokensTotal", "tokensVacated", "meanSyllablesBefore", @@ -615,6 +681,7 @@ def test_stats_have_exactly_the_contract_field_names(corpus, maps, vacated): "imageSize", "remintRounds", } + assert not [k for k in stats if k.startswith("types")], "an unprefixed types* is forbidden" def test_the_three_way_stress_split_sums_to_one_on_each_side(corpus, maps, vacated): @@ -647,19 +714,65 @@ def test_stats_are_measured_not_asserted(corpus, corpus_types, maps, vacated): for p in P_GRID: params = VacancyParams(p=p, seed=seed) stats = vacancy_stats(corpus, vacated[(seed, p)], maps[seed], params) - assert stats["typesTotal"] == len(set(tokenize(corpus))) - assert stats["typesEligible"] == len(eligible) + assert stats["corpusTypesTotal"] == len(set(tokenize(corpus))) + assert stats["corpusTypesEligible"] == len(eligible) + assert stats["domainTypesTotal"] == len(maps[seed].domain) + assert stats["stemsTotal"] == len(maps[seed].mapping) assert stats["tokensTotal"] == len(tokenize(corpus)) - assert stats["typesVacated"] <= stats["typesEligible"] - assert stats["typesVacated"] > previous # strictly graded in p - previous = stats["typesVacated"] + assert stats["corpusTypesVacated"] <= stats["corpusTypesEligible"] + assert stats["corpusTypesVacated"] > previous # strictly graded in p + previous = stats["corpusTypesVacated"] assert stats["bijective"] is True assert stats["remintRounds"] == maps[seed].remint_rounds assert 0.0 <= stats["stressFromTableAfter"] <= 1.0 - assert stats["typesVacated"] == len(eligible) + assert stats["corpusTypesVacated"] == len(eligible) assert stats["tokensVacated"] > 0 +def test_the_two_counting_scopes_and_their_identities(corpus, corpus_types, maps, vacated): + """§10: the scope is in the name, and the identities are what exposed the confusion. + + The domain has 22 more eligible types than the corpus — Dolch words like `funny`, + `squirrel` and `today` that are in the budget but never appear in the text. Counting them + in what the panel shows a reader would inflate the vacancy rate they are being shown; + leaving them out of the diagnostic would misstate what the map covers. Hence both. + """ + eligible = {t for t in corpus_types if is_eligible(stem_and_suffix(t)[0])} + for seed in SEEDS: + for p in P_GRID: + params = VacancyParams(p=p, seed=seed) + s = vacancy_stats(corpus, vacated[(seed, p)], maps[seed], params) + assert s["domainTypesTotal"] == 2233 + assert s["domainTypesEligible"] == 1944 + assert s["corpusTypesTotal"] == 2211 + assert s["corpusTypesEligible"] == 1922 + assert s["domainTypesEligible"] == s["corpusTypesEligible"] + 22 + assert s["stemsTotal"] == 1680 <= s["domainTypesEligible"] + assert s["domainTypesVacated"] >= s["corpusTypesVacated"] + if p == 1.0: + # `u` lands in [0, 1), so at p = 1 every eligible stem vacates. + assert s["stemsVacated"] == s["stemsTotal"] + assert s["domainTypesVacated"] == s["domainTypesEligible"] + assert s["corpusTypesVacated"] == s["corpusTypesEligible"] == len(eligible) + + +def test_both_scopes_reproduce_the_numbers_the_typescript_stack_measured(corpus, maps, vacated): + """Cross-stack parity, pinned as data. These are the sequences the TS side reported; if + either stack's counting drifts, this is where it shows up.""" + expected = { + 0: {"corpus": [0, 461, 954, 1430, 1922], "domain": [0, 469, 966, 1448, 1944]}, + 7: {"corpus": [0, 434, 975, 1440, 1922], "domain": [0, 440, 985, 1455, 1944]}, + } + for seed in SEEDS: + stats = [ + vacancy_stats(corpus, vacated[(seed, p)], maps[seed], VacancyParams(p=p, seed=seed)) + for p in P_GRID + ] + assert [s["corpusTypesVacated"] for s in stats] == expected[seed]["corpus"] + assert [s["domainTypesVacated"] for s in stats] == expected[seed]["domain"] + assert [s["tokensVacated"] for s in stats][-1] == 8202 + + def test_prosody_survives_full_vacancy(corpus, maps, vacated): """The claim is that meter is untouched, so this pins the size of the drift rather than asserting equality — and it quotes OUR corpus, never the source's numbers.""" From 1309d1da24dfac52dce6f866fca80015edaff0c7 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:35:52 -0400 Subject: [PATCH 14/38] Remove the avoid parameter: the map must not depend on caller memory Found by running both stacks side by side rather than by reading either. Both implementations gave `avoid` a default of empty and left it to the caller to pass the corpus type set. Both agreed with each other, so no parity test could catch it -- but the map is then a function of what the caller remembered. Measured at seed 0: the same corpus and seed give remintRounds 0 with the domain passed and 1 without, with different nonces either way. Both maps are valid, which is exactly the problem. The panel passing it and the golden fixture not would be a silent divergence with no failing test. Condition B already requires that no surface form equal any domain type, so avoiding the domain at mint time is not an extra policy -- only the cheaper way to reach the same fixed point. Making it implicit costs nothing and makes the map a pure function of (domain, seed, matchProsody). Also pinned: both stacks expose a vacancyDomain helper (Python had one, TypeScript did not -- an asymmetry that ends with two call sites building the domain two ways), and Python must reject a bare str, since Iterable[str] accepts one and iterates it into a domain of single letters. I hit that myself in five seconds of use. Co-Authored-By: Claude Opus 5 (1M context) --- .../architecture.md | 34 ++++++++++++++++--- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 0233128..700486e 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -209,14 +209,29 @@ The map at any `p` is then the restriction of that single map to `{stem : u(stem Nesting and stability become structural facts rather than properties to be hoped for. ``` -buildVacancyMap(types, seed, matchProsody, avoid) -> Map - stems := sorted({ stemOf(t) for t in types if eligible(stemOf(t)) }) # ASCII sort, ascending - used := {} +buildVacancyMap(types, params) -> Map + domain := { lower(t) for t in types } + stems := sorted({ stemOf(t) for t in domain if eligible(stemOf(t)) }) # ASCII sort, ascending + used := {} for stem in stems: # canonical order — never p, never document order - nonce := mint(stem, seed, matchProsody, forbidden = used ∪ avoid) + nonce := mint(stem, seed, matchProsody, forbidden = used ∪ domain) used.add(nonce); map[stem] = nonce ``` +**There is no caller-supplied `avoid` parameter.** The domain is always avoided, implicitly. + +The first implementations both gave `avoid` a default of empty and left it to the caller to pass +the type set. Both stacks agreed with each other, so no parity test caught it — but the map is +then a function of *what the caller remembered to pass*. Measured: at seed 0 the same corpus and +seed produce `remintRounds = 0` with the domain passed and `1` without, and **different nonces** +either way. Both maps are valid; that is the problem. One caller passing it and another not — +the panel and the golden fixture, say — is a silent divergence with no failing test. + +Since condition B below already requires that no surface form equal any domain type, avoiding +the domain at mint time is not an extra policy, only the cheaper way to reach the same fixed +point. Making it implicit costs nothing and makes the map a pure function of +`(domain, seed, matchProsody)`. + **The domain is `corpus types ∪ the full Dolch list`** — the *full* list, always, never the active budget. §7.2 explains why budget words must be in the domain at all; the reason it is the full list is that the domain must not depend on which budget the reader has selected, or @@ -230,7 +245,16 @@ extra words provoke no new collisions. That is a property worth **asserting in a than relying on — a future change to `avoid` or to the canonical order could break it silently. The source accepts an `avoid` parameter and then never passes one, which lets a minted form -silently merge with an English type. +silently merge with an English type. We do not repeat that by making it optional — see above. + +**Both stacks expose a `vacancyDomain(types)` / `vacancy_domain(types)` helper** that applies the +union rule, and every call site uses it. Python had one and TypeScript did not, which is the kind +of asymmetry that ends with two call sites building the domain two different ways. + +Both take an **iterable of types, not a text**. Python must reject a bare `str` explicitly: +`Iterable[str]` happily accepts one and iterates it character by character, so +`vacancy_domain(corpus_text)` silently yields a domain of single letters. Raise a `TypeError` +naming `tokenize()`, rather than returning a subtly wrong answer. **The check is over surface forms, not bare nonces, and it must hold at every `p`.** This is the second defect the first implementation exposed. A bare-nonce check is not enough: From d6e9d5d05df81b6e7f043fc06f3a8ee7c4945b97 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:41:26 -0400 Subject: [PATCH 15/38] A saved Geometry Lab model lost its own words across a reload Reported as "the model saving/loading mechanism doesn't work". The Lexicon Lab is fine in both modes -- train/save/load/regenerate is byte-identical for tied and untied models, both budget sources, and hand-edited weights, and every file the browser writes round-trips through POST/GET /api/lex/model unchanged. The Geometry Lab is fine too, within one page load. The defect is the static build, across a reload, for a model that has a vocabulary of its OWN -- anything trained from scratch, or loaded from a file: 1. train from scratch on your text; Save writes your word list. 2. reload. The token is in sessionStorage and the weight set is restored, so the model is still there. 3. Save again -> the SAME weights, under Alice in Wonderland's word list. Silent, and unrejectable: vocab_sha256 is computed over the list that was written, so the file verifies on both sides. It is exactly the corruption the three digests exist to prevent -- real weights beside a substituted vocabulary -- committed by the writer, where no digest can catch it. The same substitution drove the sphere's labels and traces after the reload. Cause: ExportedWeightSet, the persisted payload, carried weights, sources and setSource but not the vocabulary, so tokenizerFor() fell back to the canonical tokenizer and exportBundle hashed whatever it got. That fallback is right for edited and fine-tuned sets, which really do keep the canonical words, and only wrong for scratch and imported ones. The full stack was never affected: Python has always stored the word list beside the weights (save_weight_set(..., vocab_json=), load_weight_set_vocab). So the word list now travels with the weights, the same way. A payload that lacks one it needs is REFUSED rather than restored half-right, which lets restorePersistedSets drop it and the evicted-token self-heal reset visibly; and exportBundle refuses to write a file whose vocabulary it cannot vouch for, so the silent path cannot come back. No integrity check was relaxed. Both new tests fail before this commit and pass after: * geoEngine.test.ts -- persist a loaded model with a distinct word list, restore into a fresh engine, and require the re-exported bundle to be identical; a payload stripped of its word list must be refused outright. * static.spec.ts -- the reproduction above, in the real built static site: train on the committed corpus, save, reload, save, compare. Co-Authored-By: Claude Opus 5 (1M context) --- code/frontend/src/lib/geoEngine/index.ts | 49 +++++++++++++++++ code/frontend/src/lib/staticClient/geo.ts | 8 ++- code/frontend/tests/e2e/static.spec.ts | 64 ++++++++++++++++++++++ code/frontend/tests/unit/geoEngine.test.ts | 58 ++++++++++++++++++++ 4 files changed, 178 insertions(+), 1 deletion(-) diff --git a/code/frontend/src/lib/geoEngine/index.ts b/code/frontend/src/lib/geoEngine/index.ts index e8a5b78..3d14e8c 100644 --- a/code/frontend/src/lib/geoEngine/index.ts +++ b/code/frontend/src/lib/geoEngine/index.ts @@ -58,8 +58,28 @@ export interface ExportedWeightSet { weights: Record; // tensor name -> base64 of float32-LE bytes sources: Record; setSource: string; + /** + * The word list this set's token ids mean, for the sets that HAVE one of their own + * (`scratch`, `imported`). Absent for `edited` / `finetuned` sets, which keep the + * canonical vocabulary — for those, absence is the correct answer, not a gap. + * + * Omitting it for a set that owns a vocabulary is not a lossy shortcut, it is a + * corruption: the engine would fall back to the canonical tokenizer and `exportBundle` + * would then write a file pairing YOUR weights with Alice in Wonderland's words, under + * a `vocab_sha256` computed over that wrong list — internally consistent, so no + * integrity check could catch it. That is precisely the failure the three digests + * exist to prevent, committed by the writer. `restorePersistedSets` therefore drops a + * payload that lacks a vocabulary it needs rather than restoring it half-right. + */ + vocabWords?: string[]; } +/** + * Weight-set kinds whose token ids mean words of their OWN, not the canonical model's. + * A set of this kind is only usable with its vocabulary beside it. + */ +const SET_SOURCES_WITH_OWN_VOCAB: ReadonlySet = new Set(["scratch", "imported"]); + function b64FromF32(arr: Float32Array): string { const bytes = new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength); let s = ""; @@ -318,10 +338,15 @@ export class GeoEngine { if (!ws) throw notFound(`weights_token '${token}' is unknown (nothing to export)`); const weights: Record = {}; for (const [name, arr] of Object.entries(ws)) weights[name] = b64FromF32(arr); + const vocab = this.vocabs.get(token); return { weights, sources: { ...(this.sourceMaps.get(token) ?? {}) }, setSource: this.setSources.get(token) ?? "edited", + // The word list travels WITH the weights, exactly as the backend's + // `save_weight_set(..., vocab_json=…)` stores it beside them: a scratch or + // imported model's ids mean its own words, so weights alone do not describe it. + ...(vocab ? { vocabWords: [...vocab.words] } : {}), }; } @@ -334,9 +359,20 @@ export class GeoEngine { return false; } if (weightsToken(ws) !== token) return false; // hash mismatch — refuse + const words = payload.vocabWords; + const ownsVocab = SET_SOURCES_WITH_OWN_VOCAB.has(payload.setSource); + if (words !== undefined && (!Array.isArray(words) || words.some((w) => typeof w !== "string"))) { + return false; + } + // A set whose ids mean its own words is not restorable without them. Restoring the + // weights alone would leave `tokenizerFor` falling back to the canonical vocabulary + // and every later read — the sphere's labels, a trace, and above all a SAVED model + // file — would silently describe the wrong words. Refuse, and let the caller drop it. + if (ownsVocab && words === undefined) return false; this.weightSets.set(token, ws); this.sourceMaps.set(token, { ...payload.sources }); this.setSources.set(token, payload.setSource); + if (words !== undefined) this.vocabs.set(token, new GeoTokenizer(words)); return true; } @@ -448,6 +484,19 @@ export class GeoEngine { exportBundle(token?: string | null): GeoModelBundle { const resolved = token && token !== "learned" ? token : this.canonicalToken; const ws = this.resolveWeightSet(resolved); + // `tokenizerFor` falls back to the canonical vocabulary, which is RIGHT for an + // edited or fine-tuned set (those keep the canonical words) and CATASTROPHIC for a + // scratch or imported one: the file would carry your weights under Alice in + // Wonderland's word list, with a `vocab_sha256` computed over that list, so no + // reader could ever detect it. Writing such a file is refused. + if (SET_SOURCES_WITH_OWN_VOCAB.has(this.setSources.get(resolved) ?? "") && !this.vocabs.has(resolved)) { + throw notFound( + `weights_token '${resolved}' has no vocabulary in this session, and its ids mean ` + + "its own words rather than the shipped model's — saving it now would pair these " + + "weights with the wrong word list. Load the model file again (or retrain) so its " + + "vocabulary is present.", + ); + } const vocabJson = JSON.stringify({ format: "geo-tokenizer-v1", specials: { [UNK_TOKEN]: UNK_ID, [EOS_TOKEN]: EOS_ID, [PAD_TOKEN]: PAD_ID }, diff --git a/code/frontend/src/lib/staticClient/geo.ts b/code/frontend/src/lib/staticClient/geo.ts index 33b8cd3..f4acb6d 100644 --- a/code/frontend/src/lib/staticClient/geo.ts +++ b/code/frontend/src/lib/staticClient/geo.ts @@ -45,8 +45,14 @@ import type { LocalJobRegistry, ProgressFn } from "./jobs"; // Minted weight sets persist across reloads (red-team static finding #3: the // engine's store is in-memory, so a sessionStorage token would otherwise silently // self-heal back to "learned" after a reload — the backend build persists edits). +// +// A set trained from scratch or loaded from a file also carries its OWN vocabulary, +// and `exportWeightSet` puts it in the payload: weights alone do not describe such a +// model, and restoring them alone made `Save model` write a file pairing them with the +// shipped word list under a matching `vocab_sha256` — an unrejectable wrong file. The +// backend has always stored the two together (`save_weight_set(..., vocab_json=…)`). const MINTED_SETS_KEY = "llm-geometry:static-weight-sets"; -const MINTED_SETS_CAP = 8; // LRU; each entry is ~50 KB of JSON +const MINTED_SETS_CAP = 8; // LRU; each entry is ~50 KB of JSON, ~60 KB with a vocabulary function loadPersistedSets(): Record { try { diff --git a/code/frontend/tests/e2e/static.spec.ts b/code/frontend/tests/e2e/static.spec.ts index e1235f7..bd237db 100644 --- a/code/frontend/tests/e2e/static.spec.ts +++ b/code/frontend/tests/e2e/static.spec.ts @@ -151,6 +151,70 @@ test("geometry lab runs fully live in-browser (engine, edits, worker fine-tune)" }); }); +/** + * A model trained here has a vocabulary of its OWN — its token id 17 is not the shipped + * model's token id 17 — and the static build keeps the model across a reload by + * persisting the minted weight set to sessionStorage. It used to persist the WEIGHTS + * ONLY, so after a reload the engine fell back to the shipped tokenizer and `Save model` + * wrote a `.llmgeo.json` pairing these weights with Alice in Wonderland's word list, + * hashing THAT list into `vocab_sha256`. The file was internally consistent, so no + * reader on either side could reject it: save → reload → save silently changed which + * words the model file described. The full stack was never affected — the Python + * backend stores the vocabulary beside the weights (`save_weight_set(..., vocab_json=)`). + * + * One epoch is enough: this is about what the file SAYS, not about the loss. + */ +test("a model trained here keeps its own vocabulary across a reload (save → reload → save)", async ({ + page, +}) => { + test.setTimeout(600_000); + await page.goto(`${BASE}#geometry`); + await ready(page, "geo-view", 60_000); + + const corpus = readFileSync( + path.join( + path.dirname(fileURLToPath(import.meta.url)), + "../../../backend/src/llm_geometry/lex/data/real-mother-goose.txt", + ), + "utf8", + ); + await page.getByTestId("geo-train-src-paste").click(); + await page.getByTestId("geo-train-text").fill(corpus); + await expect(page.getByTestId("geo-train-stats")).toContainText(/enough to fill/); + const epochs = page.getByTestId("geo-train-epochs"); + await epochs.fill("1"); + await epochs.dispatchEvent("input"); + await page.getByTestId("geo-train-run").click(); + await expect(page.getByTestId("geo-train-result")).toBeVisible({ timeout: 480_000 }); + + const saveBundle = async (): Promise<{ weights_token: string; vocab: string }> => { + const dl = page.waitForEvent("download", { timeout: 120_000 }); + await page.getByTestId("geo-save-model").click(); + await expect(page.getByTestId("geo-io-error")).toHaveCount(0); + const stream = await (await dl).createReadStream(); + const chunks: Buffer[] = []; + for await (const c of stream) chunks.push(c as Buffer); + return JSON.parse(Buffer.concat(chunks).toString("utf8")) as { + weights_token: string; + vocab: string; + }; + }; + + const before = await saveBundle(); + const wordsBefore = (JSON.parse(before.vocab) as { words: string[] }).words; + // It really is a vocabulary of its own, not the shipped one. + expect(wordsBefore).not.toContain("alice"); + + await page.reload(); + await ready(page, "geo-view", 60_000); + const after = await saveBundle(); + expect(after.weights_token).toBe(before.weights_token); + expect( + (JSON.parse(after.vocab) as { words: string[] }).words, + "the saved model file's vocabulary changed across a reload", + ).toEqual(wordsBefore); +}); + // --------------------------------------------------------------------------------- // [c] Architecture Explorer — precomputed graph/traces, LIVE weight windows (US-2) // --------------------------------------------------------------------------------- diff --git a/code/frontend/tests/unit/geoEngine.test.ts b/code/frontend/tests/unit/geoEngine.test.ts index 3466da9..d40db76 100644 --- a/code/frontend/tests/unit/geoEngine.test.ts +++ b/code/frontend/tests/unit/geoEngine.test.ts @@ -19,6 +19,7 @@ import { beforeAll, describe, expect, it } from "vitest"; import { GeoEngine, GeoEngineError } from "../../src/lib/geoEngine"; import { clipPrompt } from "../../src/lib/geoEngine/fields"; +import { sha256Hex, utf8Bytes } from "../../src/lib/geoEngine/hash"; import { GeoModel } from "../../src/lib/geoEngine/model"; import type { GeoVectorFieldData, @@ -422,4 +423,61 @@ describe("minted-set persistence hooks (static reload survival) [fixtures]", () const engine3 = GeoEngine.fromAssets(fixtureSrc.checkpoint, fixtureSrc.vocab); expect(engine3.importWeightSet(minted.weights_token, bad)).toBe(false); }); + + /** + * A model trained from scratch (or loaded from a file) has a vocabulary of its OWN: + * its token id 17 is not the shipped model's token id 17. The static build persists + * minted sets to sessionStorage and restores them after a reload — and it used to + * persist the weights WITHOUT the word list, so the restored set fell back to the + * shipped tokenizer. The damage was not a wrong label on screen: `exportBundle` then + * wrote a `.llmgeo.json` pairing those weights with the shipped word list and hashed + * THAT list into `vocab_sha256`, producing a file no integrity check can reject — the + * exact corruption the three digests exist to prevent, committed by the writer. So + * "save → reload → save" silently changed which words the model file described. + */ + it("carries a loaded model's OWN vocabulary across the persistence hop", () => { + const engine = GeoEngine.fromAssets(fixtureSrc.checkpoint, fixtureSrc.vocab); + + // A real model file whose word list is NOT the shipped one — the situation every + // from-scratch run and every `.llmgeo.json` load produces. + // Distinct weights (so the token is not the canonical one) AND distinct words. + const minted = engine.postWeights({ + base: "learned", + edits: [{ layer: 1, matrix: "W_K", preset: "identity" }], + }); + const shipped = engine.exportBundle(minted.weights_token); + const words = (JSON.parse(shipped.vocab) as { words: string[] }).words.map((w, i) => + i === 0 ? `${w}zz` : w, + ); + const vocabJson = JSON.stringify({ + format: "geo-tokenizer-v1", + specials: { "": 0, "": 1, "": 2 }, + words, + }); + const file = { + ...shipped, + vocab: vocabJson, + vocab_sha256: sha256Hex(utf8Bytes(vocabJson)), + }; + const { weights_token: token } = engine.importBundle(file); + expect(JSON.parse(engine.exportBundle(token).vocab).words).toEqual(words); + + // The reload hop: persist, restore into a fresh engine, save again. + const saved = engine.exportWeightSet(token); + expect(saved.vocabWords).toEqual(words); + const reloaded = GeoEngine.fromAssets(fixtureSrc.checkpoint, fixtureSrc.vocab); + expect(reloaded.importWeightSet(token, saved)).toBe(true); + const after = engine.exportBundle(token); + expect(JSON.parse(reloaded.exportBundle(token).vocab).words).toEqual(words); + // Byte-for-byte the same file, which is the user-visible claim. + expect(reloaded.exportBundle(token)).toEqual(after); + + // A payload that LOST the word list is dropped, not restored half-right: the token + // simply is not there afterwards, so the caller deletes it and the evicted-token + // self-heal resets visibly instead of quietly relabelling the model. + const { vocabWords: _dropped, ...withoutVocab } = saved; + const stale = GeoEngine.fromAssets(fixtureSrc.checkpoint, fixtureSrc.vocab); + expect(stale.importWeightSet(token, withoutVocab)).toBe(false); + expect(() => stale.exportBundle(token)).toThrow(/unknown/); + }); }); From 16250db9b46e779309bc7a59774cef980961b0d0 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:41:33 -0400 Subject: [PATCH 16/38] TS vacancy: implicit domain avoidance, and a vacancyDomain helper buildVacancyMap(types, params) no longer takes `avoid`; the forbidden set is seeded with the domain itself, so the map is a pure function of (domain, seed, matchProsody) rather than of what the caller remembered to pass. This stack's numbers did not move, and it established why rather than assuming: it had been passing the corpus types as `avoid` since its first version, so it was already in the "domain passed" case. Making it implicit adds only the 22 Dolch-only words to the forbidden set, and no nonce in either map hits one of those 22, so the map is byte-identical to before. New vacancyDomain(types) applies the union rule and is used at every call site. It rejects a bare string: TypeScript has the same character-iteration trap as Python, where an Iterable happily accepts a text and yields a domain of single letters. Four new tests, the useful one being that the map is byte-identical through two different call paths -- the helper, versus a reversed, duplicated, upper-cased, budget-first version of the same set -- which is what would have caught the avoid divergence. 48 vacancy tests; 301 frontend tests; svelte-check 0 errors 0 warnings. Co-Authored-By: Claude Opus 5 (1M context) --- code/frontend/src/lib/lexEngine/vacancy.ts | 83 +++++++++++++++------ code/frontend/tests/unit/vacancy.test.ts | 84 +++++++++++++++++++--- 2 files changed, 138 insertions(+), 29 deletions(-) diff --git a/code/frontend/src/lib/lexEngine/vacancy.ts b/code/frontend/src/lib/lexEngine/vacancy.ts index a934f14..2d60977 100644 --- a/code/frontend/src/lib/lexEngine/vacancy.ts +++ b/code/frontend/src/lib/lexEngine/vacancy.ts @@ -63,6 +63,7 @@ */ import { sha256Hex, utf8Bytes } from "../geoEngine/hash"; +import { dolchBudget } from "./dolch"; import { WORD_RE, splitLines } from "./vocab"; // --- §2.1 the closed class ----------------------------------------------------------- @@ -619,7 +620,7 @@ export interface VacancyMap { bijective: boolean; /** `|image of the domain under the full map|`, reported in the statistics (§10). */ imageSize: number; - /** Every minted nonce plus `avoid`. Carried so the `consistent = false` control can + /** Every minted nonce plus the whole domain. Carried so the `consistent = false` control can * keep minting fresh forms that collide with neither. */ forbidden: ReadonlySet; /** The lowercased domain (corpus types ∪ budget words). Condition B ranges over it and @@ -630,6 +631,37 @@ export interface VacancyMap { /** How many re-mint rounds §5.2 allows before raising. */ const MAX_REMINT_ROUNDS = 8; +/** + * The §5.2 domain: `corpus types ∪ the FULL Dolch list`. Every call site uses this rather + * than building the union itself — the asymmetry of Python having such a helper and + * TypeScript not is exactly how two call sites end up constructing the domain two + * different ways. + * + * The full list ALWAYS, never the active budget: the domain must not depend on which + * budget the reader has selected, or switching budgets would re-mint the corpus in front + * of them and the stability the panel is demonstrating would look false. A frequency + * budget needs no special case, since its words are corpus types by construction. + * + * Takes an iterable of TYPES, not a text. The guard is not pedantry in either language: a + * `string` is itself an iterable of characters, so `vacancyDomain(corpusText)` would + * silently yield a domain of single letters — every one of which fails the length test of + * §2.2, giving an empty map and a transform that does nothing, with no error anywhere. + */ +export function vacancyDomain(types: Iterable): string[] { + if (typeof types === "string") { + throw new Error( + "vacancyDomain: expected an iterable of TYPES, got a string. A string iterates " + + "character by character and would yield a domain of single letters. Pass tokenize(text).", + ); + } + const out = new Set(); + for (const t of types) out.add(t.toLowerCase()); + for (const w of dolchBudget("full")) out.add(w.toLowerCase()); + // Sorted so the helper is a pure function with a canonical order. The order does not + // reach the map — `buildVacancyMap` sorts the stems itself — which is asserted. + return [...out].sort(); +} + /** A domain type decomposed for the surface-form check: both parts lowercase. */ interface StemSuffixPair { stem: string; @@ -683,18 +715,32 @@ function injectivityOffenders( /** * Build the nonce assignment ONCE over the whole type set, in canonical order (§5.2). * - * stems := sorted({ stemOf(t) for t in types if eligible(stemOf(t)) }) - * used := {} + * domain := { lower(t) for t in types } + * stems := sorted({ stemOf(t) for t in domain if eligible(stemOf(t)) }) + * used := {} * for stem in stems: # canonical order — never p, never document order - * nonce := mint(stem, seed, matchProsody, forbidden = used ∪ avoid) + * nonce := mint(stem, seed, matchProsody, forbidden = used ∪ domain) * used.add(nonce); map[stem] = nonce * - * `types` must be the UNION of the corpus's type set and the budget's word list: §7.2 - * pushes budget words through the same transform, so a budget word absent from the corpus - * still needs an image. `avoid` is the lowercased corpus type set, so a bare nonce can - * never be a real word of the corpus — the source accepts an `avoid` parameter and then - * never passes one, which lets a minted form silently merge with an English type - * (departure 5). + * `types` must be the UNION of the corpus's type set and the full Dolch list — build it + * with `vacancyDomain`, never by hand. §7.2 pushes budget words through the same + * transform, so a budget word absent from the corpus still needs an image. + * + * THERE IS NO CALLER-SUPPLIED `avoid` PARAMETER. The domain is always avoided, implicitly. + * Both stacks first gave `avoid` a default of empty and left the caller to pass the type + * set; both agreed with each other, so no parity test could catch it — but the map was + * then a function of what the caller remembered to pass. Measured: the same corpus and + * seed give different nonces, and a different `remintRounds`, depending only on whether + * the caller passed the set. Both maps are valid, which is precisely the problem — one + * caller passing it and another not (the panel and the golden fixture, say) is a silent + * divergence with nothing failing. Condition B below already forbids a surface form equal + * to any domain type, so avoiding the domain at mint time is not extra policy, only the + * cheaper route to the same fixed point. Afterwards the map is a pure function of + * `(domain, seed, matchProsody)` — asserted in the tests, through two call paths. + * + * The source accepts an `avoid` parameter and then never passes one, which lets a minted + * form silently merge with an English type (departure 5). We do not repeat that by making + * it optional. * * INJECTIVITY IS VERIFIED, NOT ASSUMED, AND AT EVERY `p` (§5.2 / §7.3). Two weaker checks * were tried first and both were wrong, each for a reason worth keeping written down: @@ -715,18 +761,11 @@ function injectivityOffenders( * `1000 * round + previousSalt + 1` (round from 1, §5.8); only the loser moves, so a * re-mint never cascades. Eight rounds and then it raises. */ -export function buildVacancyMap( - types: Iterable, - params: VacancyParams, - avoid: Iterable = [], -): VacancyMap { +export function buildVacancyMap(types: Iterable, params: VacancyParams): VacancyMap { const keep = effectiveKeepSet(params.keep); const domain = new Set(); for (const t of types) domain.add(t.toLowerCase()); - const avoidSet = new Set(); - for (const a of avoid) avoidSet.add(a.toLowerCase()); - // `pairs` is one (stem, suffix) per domain type with an eligible stem — the objects // conditions A and B range over. `stems` is their canonical, ASCII-ascending order. const pairs: StemSuffixPair[] = []; @@ -739,7 +778,8 @@ export function buildVacancyMap( } const ordered = [...stems].sort(); - const forbidden = new Set(avoidSet); + // The domain is forbidden from the start — implicitly, never by caller agreement. + const forbidden = new Set(domain); const map = new Map(); const mintedStress = new Map(); const patterns = new Map(); @@ -1044,8 +1084,9 @@ function countTypes( /** * §10. Both sides are scored with the SAME minted map, so the split is symmetric; on the - * `Before` side `stressFromMinted` comes out 0 because `avoid` keeps every bare nonce off - * the corpus's type list, and conditions A/B keep every assembled surface form off it too. + * `Before` side `stressFromMinted` comes out 0 because the implicitly-forbidden domain + * keeps every bare nonce off the corpus's type list, and conditions A/B keep every + * assembled surface form off it too. */ export function vacancyStats( original: string, diff --git a/code/frontend/tests/unit/vacancy.test.ts b/code/frontend/tests/unit/vacancy.test.ts index 3988223..4d6fefb 100644 --- a/code/frontend/tests/unit/vacancy.test.ts +++ b/code/frontend/tests/unit/vacancy.test.ts @@ -28,7 +28,7 @@ import { describe, expect, it } from "vitest"; -import { WORD_RE, dolchBudget, splitLines, tokenize } from "../../src/lib/lexEngine"; +import { DOLCH_ORDER, WORD_RE, dolchBudget, splitLines, tokenize } from "../../src/lib/lexEngine"; import { CODAS, DEFAULT_VACANCY_PARAMS, @@ -48,6 +48,7 @@ import { stress, syllables, transformWord, + vacancyDomain, vacancyParams, vacancyStats, vacancyU, @@ -64,8 +65,10 @@ const corpusAsset = await readStaticJson("lex/corpus.json"); const CORPUS = corpusAsset.text; const CORPUS_TYPES = new Set(tokenize(CORPUS)); const BUDGET = dolchBudget("full"); -/** §5.2: the map's domain is the corpus's types UNION the budget's words. */ -const DOMAIN = [...new Set([...CORPUS_TYPES, ...BUDGET])]; +/** §5.2: corpus types ∪ the FULL Dolch list, via the helper — never built by hand here, + * since building it by hand at one call site and not another is the failure the helper + * exists to prevent. */ +const DOMAIN = vacancyDomain(CORPUS_TYPES); const P_GRID = [0, 0.25, 0.5, 0.75, 1] as const; const SEEDS = [0, 7] as const; @@ -76,7 +79,7 @@ function params(partial: Partial): VacancyParams { /** One map per seed — it is `p`-independent by construction, which is the point. */ const MAPS = new Map( - SEEDS.map((seed) => [seed, buildVacancyMap(DOMAIN, params({ seed }), CORPUS_TYPES)]), + SEEDS.map((seed) => [seed, buildVacancyMap(DOMAIN, params({ seed }))]), ); function mapFor(seed: number): VacancyMap { @@ -229,7 +232,7 @@ describe("eligibility (architecture.md §2.2)", () => { const extended = effectiveKeepSet(["Dog", "cat"]); expect(isEligible("dog", extended)).toBe(false); expect(isEligible("cat", extended)).toBe(false); - const vmap = buildVacancyMap(["dog", "cat", "hill"], params({ keep: ["dog"] }), []); + const vmap = buildVacancyMap(["dog", "cat", "hill"], params({ keep: ["dog"] })); expect(vmap.map.has("dog")).toBe(false); expect(vmap.map.has("hill")).toBe(true); }); @@ -311,7 +314,7 @@ describe("SC-702 stability: a stem's nonce does not depend on p or on input orde shuffled[j] = tmp; } expect(shuffled).not.toEqual(DOMAIN); - const rebuilt = buildVacancyMap(shuffled, params({ seed: 0 }), CORPUS_TYPES); + const rebuilt = buildVacancyMap(shuffled, params({ seed: 0 })); const original = mapFor(0); expect(rebuilt.map.size).toBe(original.map.size); for (const [stem, nonce] of original.map) expect(rebuilt.map.get(stem)).toBe(nonce); @@ -325,6 +328,71 @@ describe("SC-702 stability: a stem's nonce does not depend on p or on input orde // --- §7.3 injectivity (SC-704) -------------------------------------------------------- +describe("§5.2 the map is a pure function of (domain, seed, matchProsody)", () => { + it("builds the domain by the union rule, and refuses a text", () => { + expect(DOMAIN.length).toBe(CORPUS_TYPES.size + 22); + for (const w of BUDGET) expect(DOMAIN).toContain(w.toLowerCase()); + for (const t of CORPUS_TYPES) expect(DOMAIN).toContain(t); + // A string is itself an iterable of characters, so this would silently yield a domain + // of single letters — every one failing §2.2's length test, giving an empty map and a + // transform that does nothing, with no error anywhere. + expect(() => vacancyDomain(CORPUS)).toThrow(/expected an iterable of TYPES/); + expect(() => vacancyDomain("hello")).toThrow(/tokenize\(text\)/); + // Idempotent, and insensitive to case and duplicates in the input. + expect(vacancyDomain(DOMAIN)).toEqual(DOMAIN); + expect(vacancyDomain([...CORPUS_TYPES].map((t) => t.toUpperCase()))).toEqual(DOMAIN); + }); + + it("is byte-identical through two different call paths", () => { + // The whole point of removing `avoid`: the map can no longer depend on what a caller + // remembered to pass, so two call sites that build the domain differently — but to the + // same set — must produce the same map, key for key. + for (const seed of SEEDS) { + const viaHelper = buildVacancyMap(vacancyDomain(CORPUS_TYPES), params({ seed })); + // A different path to the same set: reversed, duplicated, upper-cased, budget first. + const scrambled = [ + ...BUDGET.map((w) => w.toUpperCase()), + ...[...CORPUS_TYPES].reverse(), + ...BUDGET, + ...[...CORPUS_TYPES].map((t) => t.toUpperCase()), + ]; + const viaScrambled = buildVacancyMap(vacancyDomain(scrambled), params({ seed })); + expect(viaScrambled.map.size).toBe(viaHelper.map.size); + for (const [stem, nonce] of viaHelper.map) expect(viaScrambled.map.get(stem)).toBe(nonce); + expect(viaScrambled.remintRounds).toBe(viaHelper.remintRounds); + expect(viaScrambled.imageSize).toBe(viaHelper.imageSize); + expect([...viaScrambled.mintedStress].sort()).toEqual([...viaHelper.mintedStress].sort()); + } + }); + + it("is identical across all five Dolch domains", () => { + // §5.2 measured this and says to assert it rather than rely on it: the domain rule is + // "always the FULL list" precisely so switching budgets cannot re-mint the corpus in + // front of the reader. A future change to the canonical order could break it silently. + const reference = mapFor(7); + for (const name of DOLCH_ORDER) { + const domain = vacancyDomain([...CORPUS_TYPES, ...dolchBudget(name)]); + const vmap = buildVacancyMap(domain, params({ seed: 7 })); + expect(vmap.map.get("gum")).toBe(reference.map.get("gum")); + expect(vmap.map.get("hang")).toBe(reference.map.get("hang")); + } + }); + + it("depends on seed and on matchProsody, and on nothing else", () => { + const a = buildVacancyMap(DOMAIN, params({ seed: 0 })); + expect(a.map.get("gum")).not.toBe(mapFor(7).map.get("gum")); + const flat = buildVacancyMap(DOMAIN, params({ seed: 0, matchProsody: false })); + let differ = 0; + for (const [stem, nonce] of flat.map) if (a.map.get(stem) !== nonce) differ++; + expect(differ).toBeGreaterThan(0); + // p and the other knobs are NOT inputs to the map — it is built once, for all p. + for (const p of P_GRID) { + const atP = buildVacancyMap(DOMAIN, params({ seed: 0, p, revealAfter: 3, consistent: false })); + for (const [stem, nonce] of a.map) expect(atP.map.get(stem)).toBe(nonce); + } + }); +}); + describe("SC-704 injectivity on the real corpus", () => { it("maps the type set one-to-one, verified rather than assumed", () => { for (const seed of SEEDS) { @@ -536,7 +604,7 @@ describe("the control conditions really are different conditions", () => { const seed = 0; it("consistent = false destroys type identity while holding the vacancy rate", () => { - const vmapA = buildVacancyMap(DOMAIN, params({ seed }), CORPUS_TYPES); + const vmapA = buildVacancyMap(DOMAIN, params({ seed })); const inconsistent = vacateText(CORPUS, vmapA, params({ seed, p: 1, consistent: false })); const consistent = vacated(seed, 1); expect(inconsistent).not.toBe(consistent); @@ -570,7 +638,7 @@ describe("the control conditions really are different conditions", () => { }); it("matchProsody = false drops the syllable/stress match", () => { - const flat = buildVacancyMap(DOMAIN, params({ seed, matchProsody: false }), CORPUS_TYPES); + const flat = buildVacancyMap(DOMAIN, params({ seed, matchProsody: false })); const prosodic = mapFor(seed); expect(flat.map.size).toBe(prosodic.map.size); let differ = 0; From 0c3ef4e1fa8f01c5b53efcbb81422e6e566e9ed1 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:42:23 -0400 Subject: [PATCH 17/38] Correct a paragraph my own change had made stale The contract said the map is "identical across all five Dolch domains". That was measured when `avoid` was a caller-passed corpus type set, independent of the domain. Now the domain IS the forbidden set, so a smaller domain forbids less and mints differently: below `full`, exactly one stem moves -- jam -> floor instead of scirmp, because `floor` is a full-list Dolch word that never occurs in Mother Goose and so is only forbidden when the full list is present. This strengthens the rule rather than weakening it. It is now a reason the domain must be the full list, not a coincidence that it may be. The test now asserts the property that actually matters -- the map does not move when the active budget changes -- instead of the stronger claim that happened to hold before. Caught by the Python implementation re-measuring after the change rather than assuming the old number still held. Co-Authored-By: Claude Opus 5 (1M context) --- .../007-vacancy-transform-field/architecture.md | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 700486e..ef46e40 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -239,10 +239,18 @@ switching budgets would re-mint the corpus in front of them and the stability th demonstrating would look false. A frequency budget needs no special case, since its words are corpus types by construction. -Measured: the map is in fact identical across all five Dolch domains (`gum → thrern` and -`hang → smeeg` at seed 7 for every one), because minting is keyed on `(seed, stem)` and the -extra words provoke no new collisions. That is a property worth **asserting in a test** rather -than relying on — a future change to `avoid` or to the canonical order could break it silently. +Making the domain the forbidden set (below) turns this from a convenience into a requirement, +and the earlier draft of this paragraph is now wrong in an instructive way. It said the map was +"identical across all five Dolch domains" — true when `avoid` was a caller-passed corpus type +set independent of the domain, false now. A **smaller domain forbids less**, so it mints +differently: building over `corpus ∪ dolch_budget(name)` for any name below `full` moves exactly +one stem, `jam → floor` instead of `scirmp`, because `floor` is a full-list Dolch word that +never occurs in *Mother Goose* and so is only forbidden when the full list is in the domain. + +That is a *reason* the domain must be the full list rather than a coincidence that it may be. +`vacancyDomain` makes the smaller domains unreachable, and the test asserts the property that +actually matters — **the map does not move when the active budget changes** — rather than the +stronger claim that happened to hold before. The source accepts an `avoid` parameter and then never passes one, which lets a minted form silently merge with an English type. We do not repeat that by making it optional — see above. From 9718c4723e4ed21d44648d7f0d356865fa15b72e Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:42:23 -0400 Subject: [PATCH 18/38] Python vacancy: implicit domain avoidance, and str guards on type iterables Moves onto the same map TypeScript already had: seed 0 remintRounds 0 with gum -> fles and hang -> pruch, seed 7 remintRounds 1 with thrern and smeeg. The two stacks now agree on the nonces themselves, not merely on counts. Guards added where an Iterable[str] silently accepts a text and iterates it character by character -- vacancy_domain, build_vacancy_map, map_vocab_words, and VacancyParams(keep=...), which had the same trap with keep="little". I hit this myself within seconds of using the module: the domain became single letters and the failure surfaced much later as an unrelated-looking error. 61 vacancy tests, 210 unit tests, ruff and black clean, SC-703 120/120. Co-Authored-By: Claude Opus 5 (1M context) --- code/backend/src/llm_geometry/lex/vacancy.py | 82 ++++++++++++----- code/backend/tests/unit/test_lex_vacancy.py | 93 +++++++++++++++----- 2 files changed, 131 insertions(+), 44 deletions(-) diff --git a/code/backend/src/llm_geometry/lex/vacancy.py b/code/backend/src/llm_geometry/lex/vacancy.py index f25cbeb..202403f 100644 --- a/code/backend/src/llm_geometry/lex/vacancy.py +++ b/code/backend/src/llm_geometry/lex/vacancy.py @@ -23,8 +23,12 @@ 4. The map is built **once over the whole type set in canonical order**, never lazily while rewriting. The source's `used` set and give-up counter make a word's nonce depend on `p` and on document order, which breaks the stability property the source claims for itself. -5. `avoid` is actually passed (the corpus type set), so a minted form can never merge with a - real English type. +5. The domain is avoided **implicitly** — there is no caller-supplied `avoid` parameter — so + a minted form can never merge with a real English type and the map is a pure function of + `(domain, seed, match_prosody)`. The source accepts an `avoid` argument and never passes + one; making it optional reproduces the same failure a level up, where the map depends on + what the caller remembered (measured: seed 0 gives `remintRounds` 0 with the domain passed + and 1 without, with different nonces either way — both valid, which is the problem). 6. The give-up path is a deterministic salt relaxation, not `syllable + str(len(used))`. 7. Seams (`wee` + `er`) are repaired from a hash of `(stem, suffix)`, not a shared RNG. 8. Injectivity is **verified** over assembled surface forms, at every `p`, and re-minted on @@ -226,6 +230,24 @@ # --- word segmentation ------------------------------------------------------------------ +def _reject_bare_str(value: object, func: str, param: str) -> None: + """Raise if a text was passed where an iterable of TYPES was expected. + + ``Iterable[str]`` happily accepts a ``str`` and iterates it character by character, so + ``vacancy_domain(corpus_text)`` silently yields a domain of single letters. That failure + surfaces much later and somewhere else — as `stem 'real' is outside the vacancy map's + domain` — so it is caught here, at the actual mistake. + + ``TypeError`` rather than :class:`InvalidParamError`: this is a wrong argument TYPE, not a + value out of range, and it can never reach an HTTP boundary as a user's fault. + """ + if isinstance(value, str): + raise TypeError( + f"{func}({param}=...) takes an iterable of word types, not a text; " + f"pass tokenize(text) or set(tokenize(text)), not the text itself" + ) + + def stem_and_suffix(word: str) -> tuple[str, str]: """Split an inflectional suffix off `word` (contract §3). @@ -549,6 +571,8 @@ def __post_init__(self) -> None: f"reveal_after must be >= 0, got {self.reveal_after}", {"reveal_after": self.reveal_after}, ) + # Same trap as `vacancy_domain`: `keep="little"` would quietly protect six letters. + _reject_bare_str(self.keep, "VacancyParams", "keep") for w in self.keep: if not isinstance(w, str): raise InvalidParamError( @@ -599,13 +623,11 @@ class VacancyMap: minted_stress: dict[str, str] seed: int match_prosody: bool - #: Lowercased forms a nonce may never take — the corpus type set, so a minted form can - #: never silently merge with a real English word. - avoid: frozenset[str] #: The lowercased domain this map was built over — :func:`vacancy_domain`, i.e. the - #: corpus's types plus the full Dolch list. Kept because §10's `domainTypes*` counts are - #: over it and it is NOT recoverable from the corpus text: budget-only words have images - #: but never appear. + #: corpus's types plus the full Dolch list. It is also the set a nonce may never equal, + #: so a minted form can never silently merge with a real English word. Kept because §10's + #: `domainTypes*` counts are over it and it is NOT recoverable from the corpus text: + #: budget-only words have images but never appear. domain: frozenset[str] #: ``|image|`` of the domain, at full vacancy. image_size: int @@ -664,7 +686,7 @@ def _transform(self, word: str, params: VacancyParams, state: _RewriteState) -> f"{key}#{seen - 1}", params.seed, params.match_prosody, - self.avoid | state.used, + self.domain | state.used, ) state.used.add(nonce) self.minted_stress.setdefault(nonce, pattern) @@ -699,24 +721,35 @@ def vacancy_domain(types: Iterable[str]) -> list[str]: re-mint the corpus underneath a panel whose whole claim is that nonces are stable. Using the full list makes the map a function of `(corpus, seed, match_prosody)` alone. - Measured: the resulting map is byte-identical across all five Dolch domains anyway, - because minting is keyed on `(seed, stem)` and the extra words provoke no new collisions - (`test_map_is_identical_across_every_dolch_domain`). That is a property of this corpus's - collision structure, not a guarantee — which is exactly why it is pinned and why the - domain is fixed here rather than left to each call site to remember. + Since the domain is also the set a nonce may not equal (§5.2, no caller-supplied + `avoid`), a SMALLER domain genuinely mints differently: measured, building over + ``corpus ∪ dolch_budget(name)`` for any name below `full` moves exactly one stem, because + `floor` is a full-list Dolch word that never appears in the corpus and so is forbidden in + the full domain and free in the smaller ones. Unioning the full list here is what makes + that unreachable, so there is only ever one map + (`test_the_map_does_not_move_when_the_active_budget_changes`). + + Takes an iterable of TYPES, not a text: see :func:`_reject_bare_str`. """ + _reject_bare_str(types, "vacancy_domain", "types") return sorted({t.lower() for t in types} | {w.lower() for w in dolch_budget("full")}) -def build_vacancy_map( - types: Iterable[str], params: VacancyParams, avoid: Iterable[str] = () -) -> VacancyMap: +def build_vacancy_map(types: Iterable[str], params: VacancyParams) -> VacancyMap: """Assign every eligible stem a nonce, once, in canonical order (contract §5.2). `types` is the domain — pass :func:`vacancy_domain(corpus_types)`, which pins it to the - corpus's types plus the full Dolch list. `avoid` is the lowercased corpus type set, so a - nonce can never collide with a real word — the source accepts an `avoid` parameter and - then never passes one, which lets a minted form silently merge with an English type. + corpus's types plus the full Dolch list. + + **The domain is avoided implicitly; there is no caller-supplied `avoid` parameter.** With + one, the map depends on what the caller remembered to pass: measured, at seed 0 the same + corpus and seed give ``remint_rounds`` 0 with the domain passed and 1 without, and + different nonces either way. Both maps are valid — that is the problem, because one call + site passing it and another not (the panel and the golden fixture, say) is a silent + divergence with no failing test. Condition B below already forbids a surface form equal to + any domain type, so avoiding the domain at mint time is not extra policy, only the cheaper + route to the same fixed point. The map is now a pure function of + ``(domain, seed, match_prosody)``. `p` is deliberately unused: the map is built over ALL eligible stems and restricted to ``{u < p}`` at rewrite time. That is what makes nesting and stability structural. @@ -739,9 +772,9 @@ def build_vacancy_map( among those involved — at salt ``1000 * round + previousSalt + 1``, so a re-mint never cascades (§5.8). """ + _reject_bare_str(types, "build_vacancy_map", "types") keep = params.keep_set type_set = {t.lower() for t in types} - avoid_set = frozenset(w.lower() for w in avoid) pairs: list[tuple[str, str]] = [] stem_set: set[str] = set() @@ -755,7 +788,8 @@ def build_vacancy_map( mapping: dict[str, str] = {} minted_stress: dict[str, str] = {} salts: dict[str, int] = {} - forbidden: set[str] = set(avoid_set) + # `forbidden = used ∪ domain` — the domain, always, with nothing left to the caller. + forbidden: set[str] = set(type_set) for stem in sorted(stem_set): nonce, pattern, salt = _mint(stem, params.seed, params.match_prosody, forbidden) forbidden.add(nonce) @@ -789,7 +823,7 @@ def build_vacancy_map( stem, params.seed, params.match_prosody, - avoid_set | others, + type_set | others, start_salt=REMINT_SALT_STRIDE * rounds + salts[stem] + 1, ) minted_stress.pop(mapping[stem], None) @@ -803,7 +837,6 @@ def build_vacancy_map( minted_stress=minted_stress, seed=params.seed, match_prosody=params.match_prosody, - avoid=avoid_set, domain=frozenset(type_set), image_size=len(seen), bijective=len(seen) == len(type_set), @@ -840,6 +873,7 @@ def map_vocab_words(words: Sequence[str], vmap: VacancyMap, params: VacancyParam REBUILT from the vacated corpus instead — the collapse in coverage is the measurement. Calling this there would quietly manufacture a vocabulary that matches no corpus. """ + _reject_bare_str(words, "map_vocab_words", "words") if not params.consistent or params.reveal_after: raise InvalidParamError( "the mapped vocabulary is only defined for consistent=True, reveal_after=0; " diff --git a/code/backend/tests/unit/test_lex_vacancy.py b/code/backend/tests/unit/test_lex_vacancy.py index 52bf417..e618486 100644 --- a/code/backend/tests/unit/test_lex_vacancy.py +++ b/code/backend/tests/unit/test_lex_vacancy.py @@ -78,12 +78,9 @@ def domain(corpus_types: list[str]) -> list[str]: @pytest.fixture(scope="module") -def maps(domain: list[str], corpus_types: list[str]) -> dict[int, VacancyMap]: +def maps(domain: list[str]) -> dict[int, VacancyMap]: """One map per seed, built once — they are `p`-independent by construction.""" - return { - seed: build_vacancy_map(domain, VacancyParams(p=1.0, seed=seed), avoid=corpus_types) - for seed in SEEDS - } + return {seed: build_vacancy_map(domain, VacancyParams(p=1.0, seed=seed)) for seed in SEEDS} @pytest.fixture(scope="module") @@ -292,14 +289,14 @@ def test_map_is_unchanged_by_shuffling_the_input_types(domain, corpus_types, map """The build order is canonical (sorted), never document order.""" shuffled = list(domain) random.Random(1234).shuffle(shuffled) - rebuilt = build_vacancy_map(shuffled, VacancyParams(p=1.0, seed=0), avoid=corpus_types) + rebuilt = build_vacancy_map(shuffled, VacancyParams(p=1.0, seed=0)) assert rebuilt.mapping == maps[0].mapping assert rebuilt.minted_stress == maps[0].minted_stress def test_map_does_not_depend_on_p(domain, corpus_types, maps): for p in (0.0, 0.35, 1.0): - built = build_vacancy_map(domain, VacancyParams(p=p, seed=0), avoid=corpus_types) + built = build_vacancy_map(domain, VacancyParams(p=p, seed=0)) assert built.mapping == maps[0].mapping @@ -410,22 +407,79 @@ def test_domain_is_the_corpus_plus_the_full_dolch_list_never_the_active_budget( assert domain == sorted(domain) # canonical order, ASCII ascending -def test_map_is_identical_across_every_dolch_domain(corpus_types, maps): - """True today by luck of the collision structure, so it is pinned rather than assumed. +def test_map_is_a_pure_function_of_domain_seed_and_prosody(corpus, corpus_types, domain, maps): + """§5.2: there is no caller-supplied `avoid`, so no call path can build a different map. - Minting is keyed on `(seed, stem)`, and on this corpus the words a smaller Dolch list - omits provoke no new collisions — so every budget yields the same assignment. A future - change to `avoid`, to the canonical order, or to condition B could break that silently, - and the first symptom would be nonces moving when a user changes budget. + The parameter existed, defaulted to empty, and both stacks passed the type set — so they + agreed and no parity test could catch it. But the map was then a function of what the + caller remembered: at seed 0 the same corpus gives `remint_rounds` 0 with the domain + passed and 1 without, with different nonces either way. Both maps valid; that is the + problem. Here the same map is built through four different call paths. + """ + reference = maps[0].mapping + paths = [ + build_vacancy_map(domain, VacancyParams(p=1.0, seed=0)), + build_vacancy_map(vacancy_domain(corpus_types), VacancyParams(p=0.0, seed=0)), + build_vacancy_map(vacancy_domain(tokenize(corpus)), VacancyParams(p=0.5, seed=0)), + build_vacancy_map(vacancy_domain(set(corpus_types)), VacancyParams(p=1.0, seed=0)), + ] + for built in paths: + assert built.mapping == reference + assert built.minted_stress == maps[0].minted_stress + assert built.domain == maps[0].domain + assert built.remint_rounds == maps[0].remint_rounds + # ... and the domain is what a nonce is forbidden to equal, with nothing left to a caller. + assert not set(reference.values()) & maps[0].domain + + +def test_iterables_of_types_reject_a_bare_text(corpus, domain, budget, maps): + """`Iterable[str]` accepts a `str` and iterates it character by character, so passing the + corpus text built a domain of single letters and failed much later, somewhere else.""" + for call in ( + lambda: vacancy_domain(corpus), + lambda: build_vacancy_map(corpus, VacancyParams(p=1.0, seed=0)), + lambda: map_vocab_words(corpus, maps[0], VacancyParams(p=1.0, seed=0)), + lambda: VacancyParams(p=1.0, seed=0, keep="little"), + ): + with pytest.raises(TypeError, match="not a text"): + call() + # The correct forms still work. + assert vacancy_domain(tokenize(corpus)) == domain + assert len(map_vocab_words(budget, maps[0], VacancyParams(p=1.0, seed=0))) == len(budget) + assert VacancyParams(keep=frozenset({"little"})).keep_set == FUNCTION_WORDS | {"little"} + + +def test_the_map_does_not_move_when_the_active_budget_changes(corpus_types, maps): + """The property the panel depends on, and the reason the domain is the FULL Dolch list. + + Once `avoid` became implicit (§5.2), the domain IS the forbidden set — so a *smaller* + domain forbids fewer words and genuinely mints differently. Measured: building over + `corpus ∪ dolch_budget(name)` for any name below `full` moves exactly one stem, `jam`, + because `floor` is a full-list Dolch word that never appears in the corpus and so is + forbidden in the full domain and free in the smaller ones. + + That is not a defect, it is the argument: if the domain tracked the ACTIVE budget, a + reader switching budgets would watch the corpus re-mint under a panel demonstrating that + nonces are stable. `vacancy_domain` unions the full list regardless, so the smaller + domains are unreachable through the sanctioned API and there is only ever one map. """ for name in DOLCH_ORDER: - extras = {w.lower() for w in dolch_budget(name)} - smaller = sorted({t.lower() for t in corpus_types} | extras) + assert vacancy_domain(corpus_types) == vacancy_domain(corpus_types + dolch_budget(name)) for seed in SEEDS: - built = build_vacancy_map(smaller, VacancyParams(p=1.0, seed=seed), avoid=corpus_types) - assert built.remint_rounds == maps[seed].remint_rounds - for stem, nonce in built.mapping.items(): - assert nonce == maps[seed].mapping[stem], f"{name}/{seed}: {stem} moved" + built = build_vacancy_map( + vacancy_domain(corpus_types + dolch_budget(name)), + VacancyParams(p=1.0, seed=seed), + ) + assert built.mapping == maps[seed].mapping, f"{name}/{seed}: the map moved" + + # The counterexample that makes the rule load-bearing, pinned so it cannot drift silently. + assert "floor" in dolch_budget("full") + assert "floor" not in corpus_types + smaller = sorted({t.lower() for t in corpus_types} | set(dolch_budget("pre_primer"))) + off_contract = build_vacancy_map(smaller, VacancyParams(p=1.0, seed=0)) + moved = [s for s, n in off_contract.mapping.items() if maps[0].mapping[s] != n] + assert moved == ["jam"] + assert off_contract.mapping["jam"] == "floor" != maps[0].mapping["jam"] def test_no_surface_form_is_ever_an_english_word_of_the_domain(corpus, domain, maps, vacated): @@ -570,7 +624,6 @@ def test_the_control_conditions_all_differ_from_each_other(corpus, maps, vacated flat_map = build_vacancy_map( vacancy_domain(set(tokenize(corpus))), VacancyParams(p=1.0, seed=0, match_prosody=False), - avoid=set(tokenize(corpus)), ) flat = vacate_text(corpus, flat_map, VacancyParams(p=1.0, seed=0, match_prosody=False)) assert flat != baseline From 8a94ad2d0504d70fa277454d128afee73bc0d38d Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:46:27 -0400 Subject: [PATCH 19/38] Verified TS/Python parity directly: 6,720 nonces, zero mismatches Ran both stacks over the real corpus and diffed every stem->nonce pair across four map configurations plus three partial-p vacated corpora: 6,720 pairs, 7 configurations, 0 mismatches, and all 7 vacated-corpus sha256 digests identical. remintRounds agrees too (seed 0: 0, seed 7: 1). That is the result the golden fixture will formalise; this commit records that it was established by driving both implementations, not by comparing two reports that each said "green". Also pins the last naming asymmetry: VacancyMap's stem->nonce field is `mapping` in both stacks. TypeScript called it `map`. That is the third such asymmetry this feature produced, after the missing vacancyDomain helper and the avoid default, and each one cost a round for anything driving both stacks at once. Co-Authored-By: Claude Opus 5 (1M context) --- specs/007-vacancy-transform-field/architecture.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index ef46e40..6b6a13a 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -415,6 +415,12 @@ These were gaps, not choices. Both stacks do it this way or the golden fixture f argument. The source used a module-level `MINTED_STRESS` dict mutated by `register_minted`, which makes two concurrently-live maps corrupt each other — and the Lexicon Lab holds several at once (one per condition being compared). +- **`VacancyMap`'s stem→nonce field is `mapping` in both stacks.** TypeScript called it `map` + and Python `mapping`, which is the third naming asymmetry this feature produced (after the + missing `vacancyDomain` helper and the `avoid` default) and cost a debugging round for + anything driving both. `mapping` wins because a field called `map` sitting next to Python's + builtin reads badly. The remaining fields — `mintedStress`, `remintRounds`, `bijective`, + `imageSize`, `forbidden`, `domain` — already agree and are normative. - **Statistic field names are camelCase in both stacks**, exactly as §10 spells them, including in the Python JSON. This deviates from the rest of the Python API, which is snake_case; the vacancy block is a nested object, so it is self-consistent and it lets the golden fixture From 7bc4cb17f9a503c4923240b132407af706a00f9b Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 09:47:47 -0400 Subject: [PATCH 20/38] Rename VacancyMap.map to .mapping so both stacks agree Third and last naming asymmetry of this feature. Cosmetic, but each of these cost a round for anything driving both stacks at once, and the golden fixture and the panel are both about to do exactly that. Parity re-verified after the rename: 6,720 stem->nonce pairs and 7 vacated-corpus digests, zero mismatches. 48 vacancy tests; svelte-check 0 errors 0 warnings. Co-Authored-By: Claude Opus 5 (1M context) --- code/frontend/src/lib/lexEngine/vacancy.ts | 12 +++--- code/frontend/tests/unit/vacancy.test.ts | 46 +++++++++++----------- 2 files changed, 29 insertions(+), 29 deletions(-) diff --git a/code/frontend/src/lib/lexEngine/vacancy.ts b/code/frontend/src/lib/lexEngine/vacancy.ts index 2d60977..8183df1 100644 --- a/code/frontend/src/lib/lexEngine/vacancy.ts +++ b/code/frontend/src/lib/lexEngine/vacancy.ts @@ -609,7 +609,7 @@ export function vacancyParams(partial: Partial = {}): VacancyPara export interface VacancyMap { /** lowercase stem -> nonce, over EVERY eligible stem of the domain. The map at a given * `p` is this map restricted to `{stem : u(stem) < p}`. */ - map: ReadonlyMap; + mapping: ReadonlyMap; /** nonce -> intended stress pattern, so prosody scoring on a vacated corpus reflects * what we built. `vacateText` adds to it in the `consistent = false` control. */ mintedStress: Map; @@ -830,7 +830,7 @@ export function buildVacancyMap(types: Iterable, params: VacancyParams): for (const t of domain) image.add(imageOfType(t, map, params.seed)); return { - map, + mapping: map, mintedStress, remintRounds, bijective: true, @@ -882,7 +882,7 @@ function transformWordWith( let nonce: string; if (params.consistent) { - const mapped = vmap.map.get(stem); + const mapped = vmap.mapping.get(stem); if (mapped === undefined) { throw new Error( `vacancy: no nonce for stem ${JSON.stringify(stem)} — the map's domain must include ` + @@ -1076,7 +1076,7 @@ function countTypes( if (!isEligible(stem, keep)) continue; eligible++; if (!(vacancyU(stem, params.seed) < params.p)) continue; - const nonce = vmap.map.get(stem); + const nonce = vmap.mapping.get(stem); if (nonce !== undefined && surfaceForm(stem, suffix, nonce, params.seed) !== t) vacated++; } return { eligible, vacated }; @@ -1109,7 +1109,7 @@ export function vacancyStats( const corpusCounts = countTypes(corpusTypes, vmap, params, keep); let stemsVacated = 0; - for (const stem of vmap.map.keys()) if (vacancyU(stem, params.seed) < params.p) stemsVacated++; + for (const stem of vmap.mapping.keys()) if (vacancyU(stem, params.seed) < params.p) stemsVacated++; let tokensVacated = 0; for (let i = 0; i < before.length; i++) { @@ -1126,7 +1126,7 @@ export function vacancyStats( corpusTypesTotal: corpusTypes.size, corpusTypesEligible: corpusCounts.eligible, corpusTypesVacated: corpusCounts.vacated, - stemsTotal: vmap.map.size, + stemsTotal: vmap.mapping.size, stemsVacated, tokensTotal: before.length, tokensVacated, diff --git a/code/frontend/tests/unit/vacancy.test.ts b/code/frontend/tests/unit/vacancy.test.ts index 4d6fefb..4f29251 100644 --- a/code/frontend/tests/unit/vacancy.test.ts +++ b/code/frontend/tests/unit/vacancy.test.ts @@ -91,7 +91,7 @@ function mapFor(seed: number): VacancyMap { /** The stems the map would vacate at this `p`, as a set. */ function vacatedStems(seed: number, p: number): Set { const out = new Set(); - for (const stem of mapFor(seed).map.keys()) { + for (const stem of mapFor(seed).mapping.keys()) { if (vacancyU(stem, seed) < p) out.add(stem); } return out; @@ -218,7 +218,7 @@ describe("eligibility (architecture.md §2.2)", () => { const out = vacateText("dog's", mapFor(0), params({ seed: 0, p: 1 })); expect(out).not.toBe("dog's"); expect(out.endsWith("'s")).toBe(true); - expect(out.slice(0, -2)).toBe(mapFor(0).map.get("dog")); + expect(out.slice(0, -2)).toBe(mapFor(0).mapping.get("dog")); }); it("rejects non-ASCII letters where Python's isalpha() would accept them", () => { @@ -233,8 +233,8 @@ describe("eligibility (architecture.md §2.2)", () => { expect(isEligible("dog", extended)).toBe(false); expect(isEligible("cat", extended)).toBe(false); const vmap = buildVacancyMap(["dog", "cat", "hill"], params({ keep: ["dog"] })); - expect(vmap.map.has("dog")).toBe(false); - expect(vmap.map.has("hill")).toBe(true); + expect(vmap.mapping.has("dog")).toBe(false); + expect(vmap.mapping.has("hill")).toBe(true); }); }); @@ -251,7 +251,7 @@ describe("SC-701 nesting: the vacated sets grow monotonically with p", () => { expect(sets[i].size).toBeLessThan(sets[i + 1].size); } expect(sets[0].size).toBe(0); - expect(sets[sets.length - 1].size).toBe(mapFor(seed).map.size); + expect(sets[sets.length - 1].size).toBe(mapFor(seed).mapping.size); } }); @@ -316,8 +316,8 @@ describe("SC-702 stability: a stem's nonce does not depend on p or on input orde expect(shuffled).not.toEqual(DOMAIN); const rebuilt = buildVacancyMap(shuffled, params({ seed: 0 })); const original = mapFor(0); - expect(rebuilt.map.size).toBe(original.map.size); - for (const [stem, nonce] of original.map) expect(rebuilt.map.get(stem)).toBe(nonce); + expect(rebuilt.mapping.size).toBe(original.mapping.size); + for (const [stem, nonce] of original.mapping) expect(rebuilt.mapping.get(stem)).toBe(nonce); expect(rebuilt.remintRounds).toBe(original.remintRounds); }); @@ -357,8 +357,8 @@ describe("§5.2 the map is a pure function of (domain, seed, matchProsody)", () ...[...CORPUS_TYPES].map((t) => t.toUpperCase()), ]; const viaScrambled = buildVacancyMap(vacancyDomain(scrambled), params({ seed })); - expect(viaScrambled.map.size).toBe(viaHelper.map.size); - for (const [stem, nonce] of viaHelper.map) expect(viaScrambled.map.get(stem)).toBe(nonce); + expect(viaScrambled.mapping.size).toBe(viaHelper.mapping.size); + for (const [stem, nonce] of viaHelper.mapping) expect(viaScrambled.mapping.get(stem)).toBe(nonce); expect(viaScrambled.remintRounds).toBe(viaHelper.remintRounds); expect(viaScrambled.imageSize).toBe(viaHelper.imageSize); expect([...viaScrambled.mintedStress].sort()).toEqual([...viaHelper.mintedStress].sort()); @@ -373,22 +373,22 @@ describe("§5.2 the map is a pure function of (domain, seed, matchProsody)", () for (const name of DOLCH_ORDER) { const domain = vacancyDomain([...CORPUS_TYPES, ...dolchBudget(name)]); const vmap = buildVacancyMap(domain, params({ seed: 7 })); - expect(vmap.map.get("gum")).toBe(reference.map.get("gum")); - expect(vmap.map.get("hang")).toBe(reference.map.get("hang")); + expect(vmap.mapping.get("gum")).toBe(reference.mapping.get("gum")); + expect(vmap.mapping.get("hang")).toBe(reference.mapping.get("hang")); } }); it("depends on seed and on matchProsody, and on nothing else", () => { const a = buildVacancyMap(DOMAIN, params({ seed: 0 })); - expect(a.map.get("gum")).not.toBe(mapFor(7).map.get("gum")); + expect(a.mapping.get("gum")).not.toBe(mapFor(7).mapping.get("gum")); const flat = buildVacancyMap(DOMAIN, params({ seed: 0, matchProsody: false })); let differ = 0; - for (const [stem, nonce] of flat.map) if (a.map.get(stem) !== nonce) differ++; + for (const [stem, nonce] of flat.mapping) if (a.mapping.get(stem) !== nonce) differ++; expect(differ).toBeGreaterThan(0); // p and the other knobs are NOT inputs to the map — it is built once, for all p. for (const p of P_GRID) { const atP = buildVacancyMap(DOMAIN, params({ seed: 0, p, revealAfter: 3, consistent: false })); - for (const [stem, nonce] of a.map) expect(atP.map.get(stem)).toBe(nonce); + for (const [stem, nonce] of a.mapping) expect(atP.mapping.get(stem)).toBe(nonce); } }); }); @@ -404,7 +404,7 @@ describe("SC-704 injectivity on the real corpus", () => { expect(vmap.remintRounds).toBe(seed === 7 ? 1 : 0); // The nonces themselves are distinct — a weaker statement than the above, but the // one the source's `used` set was supposed to guarantee. - expect(new Set(vmap.map.values()).size).toBe(vmap.map.size); + expect(new Set(vmap.mapping.values()).size).toBe(vmap.mapping.size); } }); @@ -427,18 +427,18 @@ describe("SC-704 injectivity on the real corpus", () => { // At p ∈ {0.25, 0.5} `hanged` was vacated and `waked` was not, so both became `waked`. const vmap = mapFor(7); expect(vmap.remintRounds).toBe(1); - expect(vmap.map.get("hang")).not.toBe("wak"); + expect(vmap.mapping.get("hang")).not.toBe("wak"); // The re-mint is still prosody-matched — `smeeg` is monosyllabic like `hang` — which // is the observable proving §5.5's thresholds are on the ATTEMPT counter and not on // the absolute salt. On the absolute reading a re-mint from base salt 1001 would start // with every check relaxed and the replacement could carry any syllable count. - expect(vmap.map.get("hang")).toBe("smeeg"); + expect(vmap.mapping.get("hang")).toBe("smeeg"); expect(syllables("smeeg")).toBe(1); expect(transformWord("hanged", vmap, params({ seed: 7, p: 1 }))).toBe("smeeged"); // Condition B, stated directly: no assembled surface form is a domain type. for (const t of DOMAIN) { const [stem, suffix] = stemAndSuffix(t); - const nonce = vmap.map.get(stem); + const nonce = vmap.mapping.get(stem); if (nonce === undefined) continue; const surface = mapVocabWords([t], vmap, params({ seed: 7, p: 1 }))[0]; expect(DOMAIN.includes(surface)).toBe(false); @@ -475,7 +475,7 @@ describe("SC-704 injectivity on the real corpus", () => { describe("FR-706: a nonce never collides with a real corpus type", () => { it("holds for every minted form at both seeds", () => { for (const seed of SEEDS) { - for (const nonce of mapFor(seed).map.values()) { + for (const nonce of mapFor(seed).mapping.values()) { expect(CORPUS_TYPES.has(nonce)).toBe(false); } } @@ -640,9 +640,9 @@ describe("the control conditions really are different conditions", () => { it("matchProsody = false drops the syllable/stress match", () => { const flat = buildVacancyMap(DOMAIN, params({ seed, matchProsody: false })); const prosodic = mapFor(seed); - expect(flat.map.size).toBe(prosodic.map.size); + expect(flat.mapping.size).toBe(prosodic.mapping.size); let differ = 0; - for (const [stem, nonce] of flat.map) if (prosodic.map.get(stem) !== nonce) differ++; + for (const [stem, nonce] of flat.mapping) if (prosodic.mapping.get(stem) !== nonce) differ++; expect(differ).toBeGreaterThan(0); // Every flat nonce is monosyllabic by construction; the prosodic ones are not. for (const pattern of flat.mintedStress.values()) expect(pattern).toBe("1"); @@ -702,8 +702,8 @@ describe("§10 statistics", () => { }); it("counts stems ACTUALLY vacated, not the size of the prebuilt map", () => { - // Departure 11: the zip copy reports `len(self.map)`, which is p-independent. - const full = mapFor(0).map.size; + // Departure 11: the zip copy reports `len(self.mapping)`, which is p-independent. + const full = mapFor(0).mapping.size; const half = vacancyStats(CORPUS, vacated(0, 0.5), mapFor(0), params({ seed: 0, p: 0.5 })); const none = vacancyStats(CORPUS, vacated(0, 0), mapFor(0), params({ seed: 0, p: 0 })); expect(none.stemsVacated).toBe(0); From 3212403c6988cfba296f53b5462cc451fa1e95b4 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 10:20:01 -0400 Subject: [PATCH 21/38] Point the Spec Kit feature marker at 007 Co-Authored-By: Claude Opus 5 (1M context) --- .specify/feature.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.specify/feature.json b/.specify/feature.json index 47c7985..3e4e114 100644 --- a/.specify/feature.json +++ b/.specify/feature.json @@ -1 +1 @@ -{"feature_directory":"specs/006-lexicon-lab-tiny"} +{"feature_directory":"specs/007-vacancy-transform-field"} From bbee124ab89cd399632ac41b9b6164e4bb688665 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 10:27:05 -0400 Subject: [PATCH 22/38] Notes: two shipped defects found while building 007 Both were found because the feature forced us to drive the real app against a known-good reference, and neither is a 007 bug. The Geometry Lab one is fixed. The q4f16 one is live: the dtype the app tries first builds a session successfully on WebGPU and then returns degenerate output, and the fallback only fires on a thrown exception, so the deployed Architecture Explorer is showing wrong probabilities on any shader-f16 machine. The lesson worth keeping is that both produce PLAUSIBLE wrong answers. Unit tests pass, nothing throws, the UI looks normal. What caught them was running the real thing and comparing against a reference -- and in the q4f16 case, the reason it survived this long is that headless Chromium exposes no WebGPU adapter, so the e2e suite has only ever exercised wasm/q8. Co-Authored-By: Claude Opus 5 (1M context) --- ...026-08-04-feature-007-vacancy-transform.md | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/notes/2026-08-04-feature-007-vacancy-transform.md b/notes/2026-08-04-feature-007-vacancy-transform.md index bc2bcea..6c9b621 100644 --- a/notes/2026-08-04-feature-007-vacancy-transform.md +++ b/notes/2026-08-04-feature-007-vacancy-transform.md @@ -87,6 +87,35 @@ and the UI says so rather than pretending the remainder is pure location. The correctness check for the control is elegant: `swap` must satisfy the invariance theorem exactly as `nonce` does, because the tiny model is equally blind to both. +## Two defects found in SHIPPED code while building this + +Neither is a feature-007 bug; both were found because 007 forced us to drive the real app. + +**1. Silent vocabulary substitution in the Geometry Lab** (fixed, `d6e9d5d`). Static build only, +across a reload, for a model with its own vocabulary (scratch-trained or file-loaded). Train → +Save (your word list) → reload → Save → same weights under *Alice in Wonderland*'s word list. +No error, and unrejectable: `vocab_sha256` is computed over the list that was written, so the +file verifies on both sides. Exactly the corruption the three digests exist to prevent, +committed by the writer. The persisted `ExportedWeightSet` carried weights but not the +vocabulary, so `tokenizerFor()` fell back to the canonical tokenizer — right for edited and +fine-tuned sets, catastrophic for scratch and imported ones. + +**2. q4f16 produces garbage on WebGPU** (in progress). The dtype the app tries FIRST. The +session builds successfully and then returns degenerate output: every row of the `[1,T,V]` +logits bit-identical, gpt2 greedy-generating `,,,,,,,`, SmolLM2's logits all exactly 0 so every +NLL is `ln(49152) = 10.80267`. The fallback in `transformersRuntime.ts` only fires on a thrown +exception and nothing throws, so **the deployed Architecture Explorer is already showing wrong +probabilities on any `shader-f16` machine** — reproduced in real Chrome 150, not just Playwright. +q8, fp32 and q4 are correct; fp16 fails identically, so the fp16 *activation* path is the cause. + +Why it survived: **plain headless Chromium exposes no WebGPU adapter** (`requestAdapter()` → +null), so the entire e2e suite has only ever exercised wasm/q8. That coverage gap is part of the +fix. + +Lesson worth keeping: both defects are invisible to unit tests and to any test that checks for +thrown errors. They produce *plausible* wrong answers. The only thing that caught them was +running the real thing and comparing against a known-good reference. + ## Status - [x] Spec + contract written and committed (`36b9f3d`) From 405c4ac582608db767d319699c41ff665d56c740 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 10:38:01 -0400 Subject: [PATCH 23/38] Two contract gaps the golden fixture found in the control conditions Both were invisible to my own cross-language check, which only exercised consistent=true / revealAfter=0. Each stack was right about a different one. 1. consistent=false prosody. Section 5.8 pinned the mint key `stem#idx` but not which string the stress pattern comes from. One stack passed the key into the minter, so `little` got stress("little#0") = "10" instead of stress("little") = "100", and `Little` minted as Wrerken rather than Wrerkenle. Section 7.1 says the nonce carries THE STEM's syllable count and stress, so the key feeds the byte stream and the uniqueness check only and must never reach the prosody lookup. 2. corpusTypesVacated under revealAfter > 0. One stack measured the two texts (665), the other asked whether the stem was in the vacated set (1337) -- over-reporting 2x, because a type whose every occurrence falls inside the reveal window is still listed in the map. Measuring the texts is the reading that matches what the number claims to the reader, so that is now the definition. At revealAfter = 0 the two coincide, which is why only a control condition could expose it. The fixture pinned both readings with the cause and the status, and refuses to regenerate once either is fixed -- so neither can be quietly forgotten. Co-Authored-By: Claude Opus 5 (1M context) --- .../architecture.md | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 6b6a13a..51b8f89 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -408,9 +408,17 @@ These were gaps, not choices. Both stacks do it this way or the golden fixture f **base salt** `1000 * round + previousBaseSalt + 1`. Round counts from 1. Winners keep their nonce, so a re-mint never cascades. The attempt counter restarts at `a = 0` inside the new call, so §5.5's quality checks apply in full (see the note there). -- **`consistent = false` key.** The per-occurrence nonce is minted for the key - `f"{stem}#{idx}"` where `idx` is the 0-based occurrence index of that **stem** in document - order. The `#` is not a legal `WORD_RE` character, so the key can never collide with a stem. +- **`consistent = false` key, and where its prosody comes from.** The per-occurrence nonce is + minted for the key `f"{stem}#{idx}"`, `idx` being the 0-based occurrence index of that **stem** + in document order. The `#` is not a legal `WORD_RE` character, so the key can never collide + with a stem. + + **The key feeds the byte stream and the uniqueness check only. The stress pattern comes from + `stress(stem)`, never from `stress(key)`.** This was under-specified and the two stacks split + on it: one passed the key into the minter, so the pattern became `stress("little#0") = "10"` + instead of `stress("little") = "100"`, and `Little` minted as `Wrerken` rather than + `Wrerkenle`. §7.1 says the nonce carries *the stem's* syllable count and stress, so the key + must not reach the prosody lookup. Caught by the golden fixture, not by either test suite. - **Minted stress is passed, never global.** `stress(word, mintedStress)` takes the map as an argument. The source used a module-level `MINTED_STRESS` dict mutated by `register_minted`, which makes two concurrently-live maps corrupt each other — and the Lexicon Lab holds several @@ -744,6 +752,15 @@ An unprefixed `types*` is therefore **forbidden**. Every count names its scope: shows a reader, because the 22 domain-only words (`funny`, `squirrel`, `today`, …) are in the budget but never appear in the text, and counting words the reader cannot see inflates the vacancy rate they are being shown. + + **`corpusTypesVacated` is measured from the two texts, not from map membership.** A type + counts as vacated iff at least one of its occurrences actually changed. Under + `revealAfter > 0` the two are not the same number and the stacks split on it — one measured + the texts (665) and one asked whether the stem was in the vacated set (1337), over-reporting + by 2×, because a type whose every occurrence falls inside the reveal window is still listed + in the map. Under `revealAfter = 0` the readings coincide, which is why it took a control + condition to expose. Measuring the texts is the definition that matches what this number + claims to the reader. - `stemsTotal` — distinct eligible stems, i.e. the size of the map; `stemsVacated` — stems with `u(stem) < p` - `tokensTotal` / `tokensVacated` — over the **corpus** token stream From cae0fb8fabf304b078c06f5beec900d5f928b3c4 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 10:39:09 -0400 Subject: [PATCH 24/38] Golden fixture: TS/Python parity for the vacancy transform, pinned as data 181 KB, 18 cases, byte-identical across three regenerations. Pins u(stem) as exact float64, the full 1680-pair map at two seeds, the vacated corpus head and sha256 at seven values of p, all 23 statistics per case, nesting as explicit stem sets, stability as each stem's surface form at every p, and the token-id stream digest under the mapped vocabulary -- identical at every p, both seeds, both prosody settings, which is SC-703 pinned as data rather than as an assertion in one language. 64 tests, 198 float comparisons, worst delta 0. It earned its keep immediately by finding two defects in the CONTROL conditions, which my own cross-language check had missed because it only exercised consistent=true with revealAfter=0. Each stack was right about one of them. Both are pinned here with both readings, the cause, and the status, and the exporter refuses to regenerate once either is fixed -- so a green suite cannot quietly outlive them. Co-Authored-By: Claude Opus 5 (1M context) --- .../tests/fixtures/vacancy-golden.json | 9165 +++++++++++++++++ .../frontend/tests/unit/vacancyGolden.test.ts | 623 ++ scripts/export_vacancy_golden.py | 637 ++ 3 files changed, 10425 insertions(+) create mode 100644 code/frontend/tests/fixtures/vacancy-golden.json create mode 100644 code/frontend/tests/unit/vacancyGolden.test.ts create mode 100644 scripts/export_vacancy_golden.py diff --git a/code/frontend/tests/fixtures/vacancy-golden.json b/code/frontend/tests/fixtures/vacancy-golden.json new file mode 100644 index 0000000..ee1b517 --- /dev/null +++ b/code/frontend/tests/fixtures/vacancy-golden.json @@ -0,0 +1,9165 @@ +{ + "format": "vacancy-golden-v1", + "generated": "2026-08-04", + "git_sha": "bbee124ab89cd399632ac41b9b6164e4bb688665", + "command": "python scripts/export_vacancy_golden.py", + "source": "llm_geometry.lex.vacancy run directly on the committed corpus \u2014 real code, real text, no mocks", + "contract": "specs/007-vacancy-transform-field/architecture.md", + "tolerance": 1e-12, + "python_version": "3.10.12", + "encoding": "every value is plain JSON; floats are shortest-round-trip in both languages, so `u` and the digests compare EXACTLY. Only the prosody means (meanSyllables*, meanAnapest*, stressFrom*) use `tolerance`. Digests are sha256 hex: `vacatedSha256` over the vacated corpus's UTF-8 bytes, `mappingSha256` over `stem\\tnonce\\n` in ASCII-ascending stem order, `idStream.digest` over the ids joined by ','.", + "corpus": { + "path": "code/backend/src/llm_geometry/lex/data/real-mother-goose.txt", + "note": "the Gutenberg body, trimmed exactly as lex/corpus.py trims it", + "sha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c", + "chars": 86408, + "tokens": 16000, + "corpusTypes": 2211, + "domainSize": 2233, + "budget": "dolch/full", + "budgetSize": 314 + }, + "stems": [ + { + "stem": "little", + "eligible": true, + "stemOf": "little", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": true, + "u": { + "0": 0.4828060925071693, + "7": 0.3611914557373461 + } + }, + { + "stem": "pretty", + "eligible": true, + "stemOf": "pretty", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": true, + "u": { + "0": 0.5944985085782986, + "7": 0.02829824691001792 + } + }, + { + "stem": "run", + "eligible": true, + "stemOf": "run", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": true, + "u": { + "0": 0.9988690574630219, + "7": 0.25923238473134436 + } + }, + { + "stem": "eat", + "eligible": true, + "stemOf": "eat", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": true, + "u": { + "0": 0.2034756841049038, + "7": 0.47634909208816056 + } + }, + { + "stem": "jump", + "eligible": true, + "stemOf": "jump", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": true, + "u": { + "0": 0.32941508632239547, + "7": 0.4093928965558291 + } + }, + { + "stem": "away", + "eligible": true, + "stemOf": "away", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": true, + "u": { + "0": 0.5602299313055585, + "7": 0.07218694485389798 + } + }, + { + "stem": "squirrel", + "eligible": true, + "stemOf": "squirrel", + "suffixOf": "", + "inDomain": true, + "inCorpus": false, + "inDolchFull": true, + "u": { + "0": 0.2076388363273125, + "7": 0.7610203331870103 + } + }, + { + "stem": "funny", + "eligible": true, + "stemOf": "funny", + "suffixOf": "", + "inDomain": true, + "inCorpus": false, + "inDolchFull": true, + "u": { + "0": 0.6518292753602092, + "7": 0.6938234082642826 + } + }, + { + "stem": "today", + "eligible": true, + "stemOf": "today", + "suffixOf": "", + "inDomain": true, + "inCorpus": false, + "inDolchFull": true, + "u": { + "0": 0.15662376856742133, + "7": 0.1756106962923738 + } + }, + { + "stem": "gum", + "eligible": true, + "stemOf": "gum", + "suffixOf": "", + "inDomain": false, + "inCorpus": false, + "inDolchFull": false, + "u": { + "0": 0.5896218925388563, + "7": 0.32158711739792134 + } + }, + { + "stem": "hang", + "eligible": true, + "stemOf": "hang", + "suffixOf": "", + "inDomain": false, + "inCorpus": false, + "inDolchFull": false, + "u": { + "0": 0.8319684963602456, + "7": 0.028958449446448986 + } + }, + { + "stem": "crown", + "eligible": true, + "stemOf": "crown", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": false, + "u": { + "0": 0.5645006323718861, + "7": 0.054891945717030155 + } + }, + { + "stem": "candlestick", + "eligible": true, + "stemOf": "candlestick", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": false, + "u": { + "0": 0.49440045796571275, + "7": 0.6484023755642774 + } + }, + { + "stem": "crooked", + "eligible": true, + "stemOf": "crook", + "suffixOf": "ed", + "inDomain": true, + "inCorpus": true, + "inDolchFull": false, + "u": { + "0": 0.10062333822562819, + "7": 0.901052283718315 + } + }, + { + "stem": "diddle", + "eligible": true, + "stemOf": "diddle", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": false, + "u": { + "0": 0.9059459641083152, + "7": 0.02325572582037938 + } + }, + { + "stem": "moon", + "eligible": true, + "stemOf": "moon", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": false, + "u": { + "0": 0.5703623945090363, + "7": 0.09610913417591349 + } + }, + { + "stem": "pussy", + "eligible": true, + "stemOf": "pussy", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": false, + "u": { + "0": 0.6841963950822295, + "7": 0.4793409816004338 + } + }, + { + "stem": "goose", + "eligible": true, + "stemOf": "goose", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": false, + "u": { + "0": 0.06968076981078941, + "7": 0.14621038126691366 + } + }, + { + "stem": "the", + "eligible": false, + "stemOf": "the", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": true, + "u": { + "0": 0.9987736588011006, + "7": 0.12747272849684788 + } + }, + { + "stem": "and", + "eligible": false, + "stemOf": "and", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": true, + "u": { + "0": 0.13688090633946592, + "7": 0.1651719984927117 + } + }, + { + "stem": "you", + "eligible": false, + "stemOf": "you", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": true, + "u": { + "0": 0.6402246951088357, + "7": 0.6976193800611918 + } + }, + { + "stem": "not", + "eligible": false, + "stemOf": "not", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": true, + "u": { + "0": 0.48839430801913464, + "7": 0.713033334566615 + } + }, + { + "stem": "ox", + "eligible": false, + "stemOf": "ox", + "suffixOf": "", + "inDomain": false, + "inCorpus": false, + "inDolchFull": false, + "u": { + "0": 0.39576990348181396, + "7": 0.4290536413580559 + } + }, + { + "stem": "good-bye", + "eligible": false, + "stemOf": "good-bye", + "suffixOf": "", + "inDomain": true, + "inCorpus": true, + "inDolchFull": true, + "u": { + "0": 0.24653910052796724, + "7": 0.6036603536638073 + } + } + ], + "maps": [ + { + "label": "seed0", + "seed": 0, + "matchProsody": true, + "remintRounds": 0, + "bijective": true, + "imageSize": 2233, + "domainSize": 2233, + "mappingSize": 1680, + "mappingSha256": "7ba5235f4b848f548abe1c7bdcdb5ebecaa5d1d0c93be321e540705339d313aa", + "mapping": { + "abc": "plerp", + "abroad": "rigleic", + "adieu": "speegleow", + "admittance": "gryvelle", + "advice": "gnurkish", + "afraid": "meernous", + "aft": "swaiz", + "age": "shoaft", + "agree": "sceskum", + "ain": "vark", + "air": "terrk", + "alabone": "reetleentish", + "alack": "paisker", + "ale": "groopish", + "alehouse": "kaurkerer", + "alive": "chorntent", + "alley": "fryzy", + "almanac": "threrntidid", + "alone": "trorsken", + "along": "torffy", + "alphabet": "waungentum", + "alphabetical": "nursherentousent", + "alway": "shryshid", + "amble": "floanking", + "ampersand": "jotousum", + "angry": "graurish", + "ann": "grauth", + "announce": "frauzous", + "anoth": "virlting", + "answer": "snygous", + "appl": "threeng", + "apple": "hoadent", + "appoint": "waullel", + "april": "gneefting", + "arm": "threeg", + "around": "asqeaf", + "arrow": "jielty", + "art": "slausp", + "ask": "gnurnk", + "asleep": "koagle", + "ate": "shamp", + "aught": "deaz", + "aunt": "threch", + "away": "bepaip", + "awhile": "shrytleumous", + "awoke": "throlid", + "axe": "krerr", + "aye": "zesk", + "baa": "giesp", + "babby": "strirskow", + "baby": "starndleid", + "babylon": "soozery", + "bachelor": "stontentid", + "back": "fiep", + "backward": "strisid", + "bacon": "jirntum", + "bad": "groob", + "bade": "snorg", + "bag": "rirst", + "bailey": "poartel", + "bak": "brat", + "bake": "churlt", + "baker": "thorrmow", + "ball": "fliev", + "balloon": "larskle", + "banbury": "spaukleerish", + "bandy": "froarkum", + "barb": "zerrm", + "barber": "soagen", + "bare": "strarnt", + "bark": "byl", + "barley": "shouzent", + "barm": "sausp", + "barn": "fuz", + "barrel": "kleembleid", + "basket": "loaffent", + "bat": "ploaft", + "battle": "fleezent", + "bead": "gnid", + "bean": "soosp", + "bear": "vert", + "beat": "swauv", + "beaten": "teetleow", + "bed": "runk", + "bedtime": "blyndum", + "bee": "purch", + "beef": "strarm", + "beehive": "threashy", + "beer": "gnaif", + "beetle": "gliedum", + "began": "klumic", + "beggar": "wickid", + "begin": "pooltel", + "beginn": "nushid", + "begun": "gneelous", + "behind": "kredleer", + "believe": "zurffum", + "bell": "floosh", + "belleisle": "toankingic", + "bend": "moush", + "bent": "garlt", + "berr": "plarn", + "bes": "chyth", + "beside": "fedic", + "bessy": "skilish", + "best": "trerft", + "betsy": "fieftent", + "bett": "storsh", + "betty": "snyrment", + "betwixt": "sopy", + "bid": "geaft", + "big": "hirm", + "bigg": "root", + "bil": "sqeaf", + "bill": "churff", + "bind": "weam", + "bird": "zel", + "birthday": "gragingen", + "bit": "jarmp", + "bite": "gneap", + "bitt": "sqormp", + "bitten": "thoogen", + "black": "spair", + "blackbird": "stoavum", + "blacksmith": "scorrning", + "blanche": "zoot", + "ble": "shriev", + "bleak": "thriev", + "bleat": "streang", + "bles": "scersk", + "blessing": "gailkow", + "blind": "kros", + "blis": "scairm", + "blithe": "vit", + "blood": "deesp", + "blow": "skiv", + "blue": "gea", + "blush": "stoock", + "boat": "klirlt", + "bob": "sleech", + "bobby": "zaspic", + "body": "wrurbel", + "boggen": "sceasow", + "boil": "wrurv", + "boldero": "skeetleumic", + "bolin": "blouser", + "bombay": "purbel", + "bone": "chorng", + "bonn": "slyrt", + "bonnet": "porging", + "bonnie": "girv", + "bonny": "lobleow", + "book": "hoolk", + "born": "stysk", + "bottle": "husker", + "bough": "gyrk", + "bought": "marsh", + "bounc": "trud", + "bow": "bro", + "bowl": "shrors", + "box": "mylk", + "boy": "sim", + "bramble": "praiffleel", + "brandy": "zorlty", + "bras": "krarsp", + "bray": "glird", + "bread": "bloal", + "break": "throuck", + "breech": "krond", + "brew": "floff", + "bri": "grierm", + "brickbat": "spandleum", + "bride": "scyll", + "bridge": "skeaff", + "bridle": "vougleish", + "bright": "striff", + "bring": "shies", + "bristol": "rorstent", + "broke": "therth", + "broken": "shoampy", + "brook": "dreab", + "broom": "thround", + "broth": "waulk", + "brother": "zemer", + "brought": "pal", + "brown": "bor", + "buckl": "kauff", + "buckle": "lurdleer", + "build": "stroaft", + "built": "verv", + "bull": "mieff", + "bullet": "sondid", + "bullfinch": "larbleum", + "bump": "skarrd", + "bumpety": "sqantishid", + "bun": "nerr", + "bunch": "blorr", + "bunt": "gorlk", + "buri": "snaipent", + "burial": "blarty", + "burnie": "strooff", + "burnt": "shurnt", + "bush": "zoaft", + "butt": "mouft", + "button": "smeagleish", + "buy": "smirrm", + "bye": "klyrn", + "cabin": "klounky", + "caesar": "jeebow", + "cage": "wailk", + "cake": "scoog", + "calf": "vynt", + "call": "scoord", + "came": "strorn", + "canary": "drieperen", + "candl": "praulk", + "candle": "blaizzleous", + "candlestick": "vormenent", + "candy": "bloornum", + "cannot": "woulle", + "cant": "sloum", + "cap": "hooff", + "captain": "jeerkle", + "car": "wrarsp", + "care": "scarsh", + "carr": "glis", + "carri": "smenking", + "carrion": "borffleic", + "carry": "grirrning", + "carv": "shaisk", + "cast": "spersp", + "cat": "chooz", + "catch": "strusk", + "caught": "thrarn", + "ceas": "shealk", + "ceil": "striev", + "cellar": "smimpent", + "chain": "chilk", + "chair": "scielk", + "chamb": "leab", + "champ": "vook", + "chanc": "port", + "charley": "smantic", + "che": "seent", + "cheek": "narm", + "cheese": "klend", + "cherry": "kailking", + "chicken": "woastish", + "chid": "yarm", + "chief": "bleas", + "child": "raurt", + "children": "kliesowle", + "chimney": "klouzel", + "chin": "shreab", + "chirp": "neant", + "chirrup": "sweertous", + "choice": "smorrt", + "choose": "vees", + "chopp": "krea", + "christen": "wrirrkous", + "christma": "chashish", + "cinder": "shrespid", + "city": "streafic", + "clap": "slolk", + "claw": "yurrk", + "clay": "griend", + "clean": "zaul", + "clear": "boung", + "clergyman": "woampelous", + "clerk": "spoump", + "clev": "laum", + "cloak": "droav", + "clock": "snuch", + "cloth": "geaff", + "clothe": "spirnk", + "cloudy": "skerffleid", + "coachman": "priling", + "coal": "gnirnd", + "coat": "haun", + "cobbler": "drermbleish", + "cobweb": "zoumpy", + "cock": "kert", + "codlin": "profter", + "coffee": "flothen", + "coffin": "zautow", + "cold": "krorlk", + "cole": "skinden", + "collar": "grylker", + "colt": "threng", + "com": "threrth", + "comb": "slaurd", + "come": "wrais", + "comfit": "preangum", + "comical": "brermbleerel", + "comin": "dirtent", + "command": "chaudleid", + "compare": "torfing", + "compliment": "deatleousing", + "consid": "wausid", + "consider": "trympenen", + "contrary": "driermentish", + "contrive": "kentel", + "coo": "derd", + "copp": "shurd", + "coral": "shunden", + "corn": "troas", + "corner": "theesken", + "cost": "straish", + "cottage": "wrorndleid", + "count": "dealt", + "court": "sqirst", + "cov": "sqeft", + "cover": "snery", + "cow": "zast", + "crackabone": "dumpousen", + "cradle": "maitleum", + "cream": "spish", + "creep": "trarrm", + "crept": "thork", + "cri": "slooll", + "croak": "pien", + "crook": "rieg", + "cros": "droall", + "crow": "shraurd", + "crown": "strearm", + "crumb": "chooch", + "crumpl": "klyn", + "crusoe": "threrrk", + "cry": "mem", + "cup": "drarg", + "cupboard": "jiendid", + "cur": "mird", + "curd": "friff", + "curl": "sperth", + "currant": "klordleous", + "curtsy": "zerrmen", + "cushion": "laky", + "cushy": "rindleing", + "custard": "zearmish", + "cut": "roft", + "cutery": "breftidic", + "daddie": "wrerng", + "daddy": "peedleow", + "daff": "swarrk", + "daffodil": "greckenten", + "dainti": "karpid", + "dainty": "yeardel", + "dairy": "driery", + "dam": "skarnd", + "dame": "struv", + "danc": "gnyz", + "dance": "gleert", + "dang": "kush", + "dapple": "sceembleum", + "dare": "rout", + "dark": "broab", + "darlington": "throusentous", + "dat": "bymp", + "daught": "fyrn", + "daughter": "gnaickish", + "daw": "shrurn", + "dawson": "byndleum", + "day": "strirm", + "dead": "sqylt", + "dear": "grirn", + "deary": "storckic", + "death": "skoav", + "deceit": "druskic", + "decide": "scontous", + "deck": "rurk", + "declar": "vyble", + "ded": "gnaird", + "dee": "flooz", + "deed": "swoot", + "deep": "bloonk", + "delight": "bident", + "delve": "roult", + "derby": "bierdic", + "determin": "heerkousid", + "dew": "porch", + "diamond": "skeftent", + "dick": "nyth", + "dickery": "siefouser", + "dickory": "smeandleowy", + "dicky": "squrching", + "diddle": "kobleel", + "die": "maus", + "died": "fraisp", + "diet": "blink", + "difficult": "skeampyle", + "dig": "plook", + "dill": "smurm", + "ding": "neez", + "dinkety": "stiekidel", + "dinn": "fab", + "dirty": "floten", + "dish": "lyck", + "dishy": "strilish", + "displeas": "groatleel", + "ditch": "cherth", + "division": "strelkishic", + "dob": "glunt", + "dock": "sci", + "doctor": "groolkid", + "doe": "blush", + "doff": "troand", + "dog": "scarrt", + "dol": "frailk", + "doll": "thrus", + "dollar": "baullel", + "dolly": "plournish", + "don": "dud", + "dong": "klish", + "donkey": "wryrkle", + "doo": "grirsp", + "doodle": "prorbum", + "door": "sposk", + "dost": "drausp", + "doth": "wroush", + "doubt": "gnop", + "dov": "laung", + "dove": "shousp", + "downstair": "zoobic", + "dozen": "snorchous", + "drak": "gryrm", + "drake": "yyft", + "draw": "brarm", + "dream": "nysk", + "dreamt": "borrd", + "dreary": "swieken", + "dres": "wrych", + "dress": "skoup", + "drink": "blaurt", + "driv": "seech", + "drive": "druck", + "dropp": "girst", + "drove": "karp", + "drown": "sqirnt", + "drum": "shrorr", + "drumm": "snoorm", + "dry": "strailk", + "duck": "fav", + "dumpl": "kors", + "dumpling": "nafent", + "dumpty": "wroutleer", + "dun": "dirr", + "durst": "woaf", + "dusty": "freeffing", + "dwell": "hiz", + "dwelt": "moult", + "ear": "smyst", + "earth": "zount", + "east": "slelk", + "eat": "ben", + "egg": "naird", + "eighteen": "veevle", + "eith": "yarck", + "eleven": "smooleler", + "elizabeth": "kigleentishish", + "ell": "bars", + "else": "baug", + "elspeth": "stetleen", + "empty": "hoovous", + "end": "dind", + "england": "gergleid", + "enough": "gnale", + "equal": "brouffum", + "espi": "krirskum", + "etc": "trorrt", + "etticoat": "shorrticous", + "evermore": "gnardentent", + "everyone": "blauzzleerer", + "evil": "snongel", + "except": "thrertent", + "exet": "skoffleous", + "eye": "plouch", + "face": "cheeck", + "fail": "tharv", + "fair": "swamp", + "fall": "griesp", + "fan": "roam", + "fare": "slonk", + "farm": "shon", + "farmer": "thaifter", + "farth": "kleank", + "farthing": "sqerskle", + "fast": "yourm", + "fat": "smoan", + "father": "gniembleid", + "fear": "hoump", + "feast": "strirff", + "feath": "dad", + "feather": "fikleum", + "february": "kroolleric", + "fed": "zieft", + "feed": "klurnd", + "feet": "plerv", + "fell": "thark", + "fellow": "thysky", + "fetch": "scief", + "fiddl": "pep", + "fiddle": "chortid", + "fiddler": "blerrnow", + "fie": "shraich", + "field": "sork", + "fife": "grorsh", + "fifteen": "roungous", + "fight": "krork", + "fill": "skirff", + "fin": "choort", + "find": "wif", + "fine": "graik", + "fing": "shouf", + "finger": "titow", + "fir": "swark", + "fire": "skaust", + "first": "spind", + "fish": "nek", + "fishy": "squrrming", + "fit": "geed", + "flame": "josh", + "flapp": "jair", + "fleece": "chum", + "fleet": "theend", + "flew": "tuck", + "flinder": "gyming", + "flock": "chiech", + "floor": "loll", + "flour": "wand", + "flow": "droorn", + "flower": "swatleel", + "flung": "shrurch", + "flute": "naik", + "fly": "foob", + "fol": "shroum", + "folk": "poall", + "fond": "benk", + "fool": "fraf", + "foot": "braim", + "footman": "shoufent", + "forc": "stoad", + "forehead": "doakleousle", + "foreman": "voullery", + "forev": "swarger", + "forgot": "swormid", + "forlorn": "zarrum", + "forth": "scok", + "fortune": "gnoudleent", + "forward": "prarngous", + "fost": "derb", + "fought": "breerd", + "found": "staim", + "fourpence": "bienic", + "fourteen": "wrauntum", + "fourth": "thrilt", + "france": "grou", + "fred": "shoord", + "freeze": "rirch", + "fret": "wrorsh", + "friday": "sqeaffic", + "frighten": "krorging", + "frosty": "pleengous", + "fruit": "droon", + "fruiterer": "freafentish", + "frump": "sloaft", + "frumpaty": "frurlerel", + "full": "dil", + "fun": "baur", + "funny": "krunel", + "gai": "dralt", + "gall": "sceart", + "gallant": "snairtid", + "gallop": "strooben", + "gamberal": "yoangidle", + "game": "prourt", + "gand": "drauft", + "gang": "thraist", + "gap": "naull", + "garden": "snorgous", + "garter": "thykleer", + "gate": "shooth", + "gather": "sqircking", + "gave": "kysh", + "gay": "chaush", + "geese": "sqalt", + "gent": "maug", + "gentle": "swumpum", + "gentleman": "thrirdleelen", + "gentlemen": "wrunderum", + "georgy": "rintow", + "get": "nack", + "gett": "gyl", + "giblet": "sherbic", + "gil": "swaik", + "girl": "fers", + "give": "wirp", + "giving": "kraiffley", + "gloucest": "smaubing", + "goat": "throof", + "gobbl": "stieff", + "gobble": "shospic", + "god": "snarnt", + "goe": "voonk", + "goest": "poud", + "going": "myck", + "gold": "churz", + "goldfinch": "plaillid", + "gone": "rieng", + "good": "drurrk", + "goose": "brarsp", + "goosey": "strertow", + "got": "gneak", + "gotham": "tharffow", + "gown": "plienk", + "grace": "pryg", + "grandmoth": "zeambleing", + "gras": "thamp", + "grave": "wouft", + "gravel": "frurtley", + "gray": "keang", + "great": "glaut", + "greedy": "hauzen", + "green": "hav", + "greenwood": "toudid", + "grew": "ferrt", + "griev": "zarst", + "grim": "hunk", + "grin": "soun", + "groat": "yud", + "grocer": "drombleous", + "ground": "drout", + "grow": "mirng", + "gruel": "choash", + "grundy": "wreeffid", + "guinea": "gutleic", + "gum": "fles", + "gun": "swoog", + "hair": "flers", + "half": "wrerl", + "halfpence": "yengish", + "halfpenny": "morspely", + "hall": "drind", + "hame": "kroorm", + "hand": "thaint", + "handkerchief": "gliermicing", + "handsome": "rirbleing", + "handy": "gifter", + "hang": "pruch", + "happen": "koding", + "hard": "drouth", + "hare": "yab", + "hark": "jark", + "harm": "skaid", + "harrow": "sqouben", + "hart": "mauk", + "hat": "noug", + "hath": "spar", + "hatter": "virltid", + "hawk": "thoult", + "hay": "gees", + "haystack": "krirbley", + "hea": "smirnd", + "head": "daf", + "healthy": "flelling", + "hear": "drurch", + "heard": "jyn", + "heart": "zys", + "hearty": "veastow", + "heav": "sqoord", + "hector": "trargel", + "heel": "turnk", + "heighty": "derltum", + "helen": "brysting", + "help": "gurf", + "hem": "kroan", + "hen": "grerz", + "hero": "preerny", + "herring": "shreerkous", + "hey": "sterl", + "hickery": "putleenten", + "hickety": "neeverous", + "hickory": "kreardingic", + "hid": "dur", + "hide": "charlt", + "higgledy": "shysicish", + "high": "sciesp", + "highnes": "jearmen", + "highway": "fraisish", + "hill": "prornt", + "hillock": "fogleid", + "himself": "thrarffleow", + "hire": "flieff", + "hobble": "fleezzleic", + "hog": "deat", + "hold": "shoof", + "hole": "swyrder", + "holiday": "yombleingish", + "home": "mout", + "hon": "chend", + "honey": "shrarrdish", + "honor": "reaskic", + "hood": "braist", + "hop": "trev", + "hope": "zoall", + "hopp": "gloob", + "horn": "yyb", + "horrid": "fernkic", + "hors": "sciern", + "horse": "thorb", + "horseshoe": "fiengid", + "hose": "bolt", + "hosier": "stroontous", + "hot": "beaff", + "hound": "dom", + "hour": "vorrm", + "house": "keaf", + "housetop": "nirkousid", + "hubbard": "kyfow", + "huff": "glust", + "humpty": "yoackish", + "hundr": "spausp", + "hung": "shyl", + "hunt": "froch", + "hurry": "veackous", + "hurt": "flarsp", + "husband": "brarfting", + "hush": "thrarll", + "huzza": "pusher", + "ice": "karn", + "icicle": "sqoufficy", + "ifs": "smork", + "ill": "lelk", + "illustrat": "trirmouser", + "inde": "snurt", + "ink": "wolk", + "instead": "drorsish", + "intery": "tykishle", + "iron": "skaftid", + "ive": "shrer", + "jack": "rirrm", + "jacky": "throorming", + "jag": "skoop", + "jam": "scirmp", + "jelf": "gernt", + "jen": "heeth", + "jenny": "klorzy", + "jerry": "brystic", + "jig": "weeng", + "jiggety": "snithumy", + "jill": "skir", + "jingle": "rirtish", + "joan": "boub", + "jog": "stirrt", + "john": "starll", + "johnny": "ferther", + "joke": "spirch", + "jol": "firth", + "joy": "baull", + "joyou": "trom", + "july": "frurltish", + "jump": "byll", + "june": "nuff", + "keep": "slirnd", + "ken": "skeark", + "kept": "leesh", + "kettl": "hult", + "kettle": "prerbing", + "key": "snaup", + "kilkenny": "thoashenel", + "kill": "sist", + "kind": "ryst", + "king": "scurg", + "kingdom": "birzing", + "kirk": "keet", + "kis": "snip", + "kiss": "slurch", + "kit": "zeand", + "kitchen": "brurndid", + "kite": "frord", + "kitten": "loric", + "kitty": "yooker", + "knave": "sek", + "kne": "gnean", + "knee": "glol", + "knife": "shroank", + "knight": "verg", + "knock": "slaik", + "know": "stoonk", + "kyloe": "graunt", + "lad": "glurnd", + "ladd": "parlt", + "laddie": "kleat", + "laden": "slaffel", + "lady": "failten", + "ladybird": "slealerer", + "lag": "trear", + "laid": "swaib", + "lal": "speen", + "lam": "hormp", + "lamb": "swoob", + "lan": "gink", + "land": "seer", + "lane": "frech", + "lard": "kauv", + "lark": "nieck", + "lass": "glusk", + "last": "thrurs", + "latch": "braulk", + "late": "goash", + "laugh": "wourm", + "lauk": "fraud", + "lay": "gnarp", + "lea": "thrurft", + "lead": "skiesk", + "lean": "swurch", + "leap": "spu", + "least": "slarrd", + "leath": "nauck", + "leav": "sperrd", + "leave": "skack", + "led": "slaind", + "lee": "plealt", + "leed": "gaust", + "left": "riemp", + "leg": "baimp", + "lend": "squrp", + "lengthen": "dreandic", + "lent": "lirrd", + "les": "flerp", + "let": "sorr", + "lett": "thrirrm", + "lick": "trerv", + "lie": "baurd", + "life": "furlk", + "lift": "steeng", + "light": "drernt", + "like": "kliff", + "lin": "tiell", + "linen": "drorfty", + "linnet": "progleing", + "lion": "yorsh", + "list": "sorp", + "little": "skoufenty", + "littleman": "bloarnicy", + "liv": "byrn", + "live": "sqoov", + "load": "gnurk", + "lock": "groask", + "locket": "narndleel", + "lol": "grais", + "london": "brouzzleel", + "long": "prurnd", + "longman": "sceelous", + "look": "snout", + "lord": "slirz", + "lost": "trirnt", + "loud": "peard", + "lov": "neask", + "love": "traiz", + "low": "vierd", + "luck": "briet", + "lucy": "sytid", + "lump": "rearn", + "lumpety": "glerskicow", + "mad": "smiend", + "made": "brorrk", + "maid": "bist", + "maiden": "wopum", + "main": "kroun", + "maintain": "skurchish", + "mak": "visp", + "make": "zynk", + "malt": "speelk", + "mamma": "forting", + "mammie": "groad", + "mammy": "shrotley", + "man": "woosp", + "many": "wieckel", + "march": "glound", + "mare": "meez", + "margaret": "stourkelum", + "margery": "stirtherent", + "mark": "sceech", + "market": "taisent", + "marr": "krirth", + "marri": "brarlling", + "marry": "threrndic", + "martin": "klarnkid", + "mary": "shielkic", + "mast": "shroov", + "master": "niecker", + "match": "stroalt", + "matt": "wet", + "maybe": "fleest", + "mayor": "souf", + "meadow": "sqiernle", + "meal": "nausk", + "mean": "wroorm", + "meat": "learn", + "meet": "prurng", + "melancho": "torsentent", + "men": "bleark", + "mend": "gniet", + "merchant": "sniembleen", + "mercy": "bearden", + "merri": "wienow", + "merry": "grarrmum", + "merrymen": "plurndleentid", + "met": "hurrt", + "mew": "spird", + "mice": "stirch", + "mickle": "smoanky", + "middle": "vallum", + "mil": "shrarb", + "mild": "snoan", + "mile": "blarndleel", + "milk": "smierm", + "mill": "norm", + "mind": "tarmp", + "mine": "reath", + "mintery": "deedleicent", + "minute": "threrment", + "mire": "wrant", + "mis": "voack", + "mischievou": "viskelel", + "miss": "bernd", + "mist": "girp", + "mistaken": "bubleentum", + "mistres": "vythent", + "misty": "loorker", + "moisty": "maultid", + "mol": "gnen", + "monday": "glerndel", + "money": "niedum", + "monkey": "smeeshid", + "monstrou": "spundic", + "moon": "smorft", + "moppet": "zarllel", + "more": "straug", + "morn": "krelt", + "morning": "noarish", + "mortal": "sqeecken", + "mother": "wielkow", + "motion": "preentic", + "mourn": "gnirf", + "mouse": "cheab", + "mouth": "frerch", + "mov": "lult", + "move": "spoub", + "mow": "shrorst", + "mrs": "shrim", + "much": "friv", + "muffet": "frilous", + "mulberry": "zoumperid", + "multiplication": "krallentingelen", + "music": "kroulent", + "muskidun": "threrckentent", + "mutton": "blerbid", + "myself": "begnirsk", + "nag": "stroo", + "nail": "vurl", + "nam": "sloaz", + "name": "leamp", + "nan": "trais", + "nancy": "kukish", + "nanny": "bienten", + "narrow": "chauzzleous", + "nasty": "swirdent", + "naught": "krurs", + "naughty": "thorsper", + "nay": "riff", + "neary": "strauskid", + "neat": "prarr", + "neck": "smalk", + "needl": "gnorsp", + "needle": "rydleent", + "neighbor": "thraithel", + "neith": "wrosh", + "nest": "jursk", + "new": "swilt", + "next": "goaz", + "nibble": "chaungen", + "nice": "kriet", + "niggledy": "shrirbleleel", + "night": "strorr", + "nightgown": "smeenkic", + "nimble": "scaingum", + "nineteen": "taugentid", + "nob": "groorn", + "nobleman": "wimowous", + "nobody": "streluming", + "nodd": "krip", + "noise": "kloaz", + "noon": "snorrm", + "nor": "furst", + "north": "flarng", + "norwich": "narthish", + "nose": "borsp", + "notch": "derll", + "note": "shoock", + "noth": "swiest", + "novemb": "sliegish", + "now": "firch", + "oak": "froang", + "often": "jorchle", + "old": "garr", + "ope": "biesk", + "open": "shrimbleish", + "orange": "gnoothous", + "organ": "jormple", + "oth": "thirnt", + "oven": "brotleing", + "owe": "toorm", + "owl": "glarft", + "own": "wrarck", + "packet": "snikleent", + "pail": "fiert", + "pair": "pront", + "pan": "kem", + "pancake": "moamen", + "pandy": "smorntid", + "pantry": "thryltum", + "pap": "shrarlk", + "papa": "sluntous", + "parent": "trierdent", + "parlor": "vatid", + "parrot": "snarndent", + "parson": "tryspid", + "party": "swerffish", + "pas": "snurk", + "pat": "sheaff", + "patch": "brem", + "pay": "pir", + "peace": "brerch", + "peaceable": "jeelicow", + "peacock": "zourmer", + "pear": "gerst", + "pease": "var", + "peck": "krees", + "pedlar": "strolous", + "peep": "thirz", + "pen": "snirz", + "penny": "prumbleow", + "people": "slutleing", + "pepper": "krurben", + "perhap": "deaser", + "pet": "slul", + "peter": "friertous", + "petticoat": "lealkiden", + "physician": "vermenen", + "piccadil": "lainingel", + "pick": "slor", + "pickety": "streeskenid", + "pickl": "skeer", + "picture": "freaching", + "pie": "praunk", + "piece": "ziend", + "pieman": "flurzzleid", + "pig": "frab", + "pigeon": "weether", + "piggledy": "throafumen", + "pin": "smiesp", + "pinch": "flaull", + "pint": "wrong", + "piou": "rish", + "pip": "stielk", + "pipe": "lait", + "piper": "theaking", + "pippen": "stugish", + "pitch": "muft", + "plac": "wrath", + "plain": "fraiz", + "plast": "fraun", + "plat": "krurnt", + "plate": "frousk", + "platt": "jers", + "play": "naill", + "playfellow": "sterskument", + "playmat": "flimpid", + "please": "shour", + "plenty": "wirum", + "plum": "sqount", + "pocket": "yople", + "pocketful": "brorkleelous", + "point": "spaig", + "poker": "mupy", + "pol": "hermp", + "poll": "sqear", + "pony": "trofen", + "pooh": "bliemp", + "poor": "vell", + "poppety": "wrirthider", + "porgy": "rirtow", + "porridge": "snoozzleum", + "porring": "gnombleid", + "pos": "norng", + "posses": "trainter", + "pot": "snaft", + "potato": "braindleeling", + "pound": "stenk", + "powd": "tert", + "practice": "slardum", + "pray": "sharm", + "prayer": "spieth", + "pretti": "noopen", + "pretty": "streeshum", + "pri": "foom", + "prick": "bleam", + "prince": "frarn", + "princes": "frourking", + "prithee": "krerdish", + "prod": "foll", + "promis": "skeembleer", + "proper": "krernkum", + "protector": "bondleumel", + "proud": "mouf", + "psalm": "hurs", + "pudd": "yark", + "pudding": "worthid", + "puddle": "plumum", + "pull": "mirmp", + "pumpkin": "kroompen", + "pussy": "flyble", + "put": "wrird", + "puzzle": "sniefle", + "quack": "starn", + "quarrel": "droomum", + "queen": "snaurd", + "quick": "thooff", + "quiet": "chaub", + "quite": "grerrk", + "rabbit": "spylous", + "rac": "glaist", + "rag": "shrolk", + "rage": "starg", + "rain": "skarf", + "ram": "wrorv", + "ran": "glaimp", + "rapp": "sqift", + "rare": "gnaup", + "rat": "roorm", + "rattle": "tirpid", + "raven": "klourkent", + "raw": "slind", + "reach": "smoost", + "read": "hilk", + "ready": "boumbleel", + "real": "prirlk", + "reason": "yengous", + "receive": "streegid", + "red": "tang", + "redbreast": "buffow", + "reel": "geasp", + "reigate": "treatle", + "remedy": "glaibleishle", + "repartee": "briengerle", + "repli": "frozzleish", + "request": "roothing", + "resolv": "voanger", + "rest": "flirsp", + "return": "churngel", + "rhym": "shreng", + "rhyme": "shaurn", + "ribbon": "gleagent", + "rice": "thrirk", + "rich": "smolk", + "richard": "choothous", + "rid": "rerrd", + "riddle": "bloadleen", + "ride": "scard", + "rig": "stirrd", + "right": "lound", + "ring": "frorth", + "ringman": "kleampid", + "rise": "slasp", + "riv": "toak", + "roast": "pard", + "rob": "bail", + "robber": "shodent", + "robert": "sworrmen", + "robin": "sqorlous", + "robinson": "purrtingow", + "rock": "wuck", + "rode": "braib", + "rog": "blierk", + "roll": "wreang", + "rook": "shurng", + "room": "gnoank", + "root": "sqaik", + "ros": "truf", + "rosy": "nekish", + "rough": "stint", + "round": "sirs", + "row": "giert", + "rule": "bloandleing", + "run": "jev", + "runn": "nart", + "rush": "krul", + "rye": "skorsk", + "sabbath": "darbel", + "sack": "vurk", + "saddle": "shraisel", + "safe": "durk", + "sage": "lai", + "sago": "sweming", + "said": "grurst", + "sail": "throt", + "sailor": "snoashy", + "salt": "marm", + "sam": "greeb", + "same": "jach", + "sang": "plish", + "sat": "brerck", + "saturday": "frirbleenter", + "saw": "derck", + "say": "gleerd", + "scar": "kroalk", + "scarce": "prirr", + "scarlet": "baupum", + "scholar": "bipid", + "school": "snirll", + "schoolroom": "lirish", + "scotch": "straunk", + "scratch": "stunt", + "scuttle": "skeeffleid", + "sea": "throop", + "seal": "thailk", + "seam": "skoand", + "seasonable": "squrvididish", + "second": "gnory", + "see": "vault", + "seed": "gnynd", + "seek": "syl", + "seen": "zylk", + "seldom": "wrorkous", + "selfsame": "brurchent", + "sell": "barmp", + "sempster": "zeallic", + "send": "strarst", + "sent": "spos", + "septemb": "lurnent", + "serv": "flert", + "servant": "speambleing", + "serve": "rault", + "set": "kroord", + "seventeen": "lierenting", + "sew": "gnep", + "shaftoe": "glirff", + "shake": "sart", + "shalt": "snooz", + "shape": "rarst", + "shave": "shorll", + "shaven": "spoachent", + "shed": "wurr", + "sheep": "gloas", + "shelf": "krisk", + "shell": "proull", + "shepherdes": "krureren", + "shilling": "flearmle", + "shin": "fryrt", + "shine": "barv", + "ship": "sparv", + "shiv": "stool", + "sho": "wroasp", + "shod": "tounk", + "shoe": "keek", + "shook": "shorrt", + "shoot": "spor", + "shop": "prorff", + "shoreditch": "thraurkinging", + "shorn": "barp", + "short": "strarft", + "shot": "bloat", + "show": "hirk", + "shower": "wrychle", + "shroud": "smyk", + "shut": "gauth", + "sick": "glo", + "side": "shoff", + "siege": "scerrn", + "sieve": "strarnd", + "sigh": "swir", + "silk": "ref", + "sill": "narl", + "silv": "woost", + "simon": "kraugleing", + "simple": "slirrdent", + "sing": "sqirz", + "single": "moover", + "sir": "pich", + "sister": "lisic", + "sit": "blausk", + "sitt": "thrork", + "sixpence": "swarrtel", + "sixteen": "gouffish", + "skin": "shraur", + "skipp": "lerm", + "sky": "sparnk", + "slash": "thrarv", + "slat": "weak", + "slatherum": "varspousle", + "sleep": "dryrd", + "sleepy": "spaurtish", + "slend": "nomp", + "slice": "glirnt", + "slid": "trith", + "slipper": "sweertent", + "slitherum": "fliskument", + "slow": "hys", + "sly": "rai", + "small": "grirll", + "smile": "plairnic", + "smith": "sqoor", + "smok": "wroalk", + "snail": "lard", + "snap": "griern", + "snapp": "plysh", + "sneez": "leech", + "sneeze": "gna", + "sniff": "fursk", + "snipe": "lysh", + "snook": "swood", + "snow": "thyrk", + "snuff": "dorg", + "sobb": "strurck", + "soft": "hirmp", + "sold": "krai", + "solomon": "hokleering", + "someth": "sqembleic", + "son": "teest", + "song": "shyf", + "soon": "dreer", + "sore": "toa", + "sorrow": "wrooskum", + "sorrowful": "taichentous", + "soul": "drort", + "sound": "grooll", + "south": "skoub", + "sow": "naick", + "spade": "shoar", + "spain": "sqoach", + "sparrow": "dymbleum", + "speak": "froor", + "spell": "terz", + "spend": "pesk", + "spent": "wrurz", + "spice": "swouft", + "spid": "firm", + "spilt": "gniesk", + "spin": "wroorn", + "spinn": "blaurn", + "spit": "stauff", + "splash": "thurll", + "splish": "prusk", + "spoil": "toand", + "spoke": "noonk", + "spoon": "drirrm", + "sport": "prirsh", + "spr": "shairm", + "sprat": "flear", + "spright": "thraiff", + "spry": "boulk", + "spun": "karr", + "squirrel": "straull", + "staff": "trailk", + "stair": "toach", + "stand": "writ", + "star": "surb", + "start": "chys", + "stay": "klarll", + "steal": "gnursh", + "steel": "serst", + "stepney": "bloffing", + "stepp": "treck", + "stew": "yeech", + "stick": "sturk", + "stiff": "thirt", + "stile": "serskum", + "stingy": "zirrting", + "stock": "kroust", + "stole": "wrorlking", + "stone": "scoach", + "stood": "neell", + "stop": "skint", + "stopp": "shroar", + "storm": "hoark", + "story": "smirmbleing", + "stout": "toft", + "str": "glam", + "straight": "klyth", + "straightway": "krirspent", + "strang": "yesp", + "strange": "floo", + "straw": "graund", + "strawberr": "rymbleel", + "stray": "smieft", + "street": "brap", + "strife": "threasp", + "strong": "snirlt", + "strow": "sump", + "struck": "plorth", + "stump": "goart", + "stumpaty": "herfferous", + "such": "gouv", + "sue": "droont", + "sugar": "neelken", + "sukey": "keagow", + "sulky": "sauffleish", + "summ": "prack", + "summer": "proartow", + "sun": "sheert", + "sunday": "skeellent", + "sung": "prerg", + "sunshine": "threrrnum", + "sunshiny": "strietowen", + "sup": "swuck", + "supp": "snirg", + "suppose": "sliezic", + "sure": "nyf", + "surprise": "theantel", + "surrey": "bliesple", + "swan": "shrert", + "swarm": "siesp", + "sweep": "sqa", + "sweet": "kraurm", + "swim": "joust", + "swimm": "fraisk", + "swine": "sli", + "swoon": "snog", + "sword": "frork", + "swore": "ploll", + "swum": "glorrn", + "table": "lirstow", + "tack": "swoarm", + "taffy": "sporster", + "tail": "smoav", + "tailor": "bleartle", + "tak": "tiv", + "take": "voan", + "tale": "swierdish", + "talk": "skon", + "talkative": "sheethicy", + "tapp": "zoun", + "tar": "gind", + "tarr": "freamp", + "tarry": "swailtic", + "tart": "hip", + "taste": "gryrt", + "tatter": "sceser", + "taught": "plourd", + "tavern": "rarger", + "tea": "throu", + "tear": "feag", + "tee": "shorr", + "teeth": "smin", + "tell": "fyrk", + "test": "strormp", + "thank": "glault", + "thee": "briep", + "thi": "tharck", + "thick": "sterff", + "thief": "wreeb", + "thigh": "sqish", + "thing": "praisk", + "think": "slurrk", + "third": "garck", + "thirteen": "yorfle", + "thirty": "shervy", + "thistle": "zutleer", + "thorn": "yauft", + "thou": "sqarg", + "thought": "rid", + "thousand": "mootous", + "thread": "naif", + "threescore": "bloutleel", + "threw": "griel", + "thrive": "drig", + "throat": "fik", + "throw": "zolt", + "thrush": "choaz", + "thu": "glirg", + "thumb": "voop", + "thumbkin": "daivous", + "thump": "traft", + "thumpaty": "bambleidel", + "thursday": "jithen", + "thy": "broust", + "thyself": "wychic", + "tick": "scielt", + "tickl": "theck", + "tie": "gousk", + "tied": "nunt", + "til": "durm", + "till": "tielt", + "tim": "gnu", + "time": "chot", + "tinker": "wrorlty", + "tip": "gnosh", + "tipple": "noakleent", + "tir": "bauft", + "tis": "bal", + "tisha": "sqampum", + "tittlemouse": "jirftinger", + "tobago": "flibleumel", + "today": "refon", + "toe": "smurlk", + "togeth": "slubleic", + "told": "leaz", + "toll": "krelk", + "tom": "turnd", + "tommy": "chounkic", + "tong": "wrark", + "tongu": "plillum", + "tongue": "hyk", + "took": "heack", + "top": "hor", + "torch": "yib", + "torn": "maump", + "tos": "snyk", + "toss": "snault", + "touch": "derl", + "town": "sheemp", + "toy": "skaurm", + "tramp": "blarff", + "trap": "snoum", + "tre": "sqiem", + "tree": "jaust", + "trencher": "flydow", + "tri": "perll", + "trick": "chirnt", + "trip": "shirrm", + "tripe": "zorlt", + "tripp": "drach", + "trot": "vard", + "trott": "voum", + "troubl": "zursk", + "trouble": "throber", + "trow": "niep", + "trowel": "launging", + "true": "plieg", + "try": "gliest", + "tuck": "zeamp", + "tuesday": "piting", + "tuffet": "stroaftic", + "tumbl": "swod", + "tune": "spest", + "turn": "pruff", + "turnip": "smeekic", + "twa": "fid", + "twaddle": "zuntic", + "twee": "wriz", + "tweedle": "flulic", + "twelve": "purrk", + "twenty": "grokleow", + "twiddle": "scoalkow", + "twig": "chiff", + "twill": "plont", + "twitchett": "spyrdic", + "twopence": "braunder", + "undertaker": "plarltereling", + "unicorn": "prinkousent", + "unto": "chauny", + "upon": "adroust", + "upstair": "noormen", + "upward": "sheable", + "use": "kleall", + "used": "gornkent", + "ush": "theern", + "vale": "thrithel", + "vast": "thraind", + "velvet": "drersking", + "venture": "droankic", + "vex": "hurnd", + "vexation": "shraidleleen", + "victual": "stoothing", + "vinegar": "kleazentow", + "visit": "gnirlky", + "visitor": "fautleicid", + "vow": "druch", + "wag": "blars", + "waggl": "wift", + "wail": "hich", + "wainscot": "strordish", + "wait": "furll", + "wak": "fraunk", + "wake": "barlk", + "walk": "tyl", + "wall": "shryrd", + "walnut": "sheenting", + "wand": "sherrd", + "want": "lirnk", + "ware": "braift", + "warm": "blorm", + "wash": "hirn", + "wat": "kriez", + "watch": "streed", + "watt": "noaz", + "way": "thream", + "wealthy": "yousken", + "wear": "teang", + "weath": "snorrn", + "wed": "frir", + "wedd": "voock", + "wednesday": "grauftering", + "wee": "klirrm", + "weed": "skoard", + "week": "thys", + "weep": "taug", + "welcome": "teeby", + "well": "slug", + "welshman": "ludleid", + "went": "smen", + "west": "smyrn", + "whale": "gryngish", + "whatev": "sworstish", + "wheel": "vooff", + "wheelbarrow": "sleringid", + "whenev": "klyffley", + "wherev": "varshing", + "whey": "fon", + "whip": "gneerd", + "whipp": "tyb", + "whistle": "warffle", + "white": "tim", + "whitechapel": "shirmbleenicent", + "whith": "vealt", + "whoop": "bouf", + "wife": "poord", + "wig": "frysk", + "wil": "krurrk", + "wild": "mest", + "wildernes": "sunkenter", + "wilkin": "flobleid", + "willie": "lar", + "wilt": "bleat", + "wind": "kliez", + "window": "kirper", + "wine": "smauft", + "wing": "shront", + "winkie": "yeath", + "winkle": "flontic", + "wint": "swap", + "winter": "thieffleel", + "wip": "staurn", + "wipe": "wrail", + "wire": "strirll", + "wise": "nyst", + "wish": "floath", + "within": "kirrmer", + "without": "sestle", + "wiv": "skat", + "woe": "jeef", + "woman": "plaispy", + "women": "shreeftous", + "wond": "meard", + "wondrou": "friekow", + "woo": "farl", + "wood": "daus", + "woodbin": "strorlid", + "wool": "maunt", + "word": "vousk", + "work": "prys", + "world": "waum", + "worm": "brez", + "worri": "thraindy", + "worry": "plaurle", + "worse": "sul", + "worth": "sleark", + "wrap": "grurnk", + "wren": "frez", + "wright": "trurrk", + "write": "jorsh", + "wrote": "lourk", + "yard": "spyrd", + "yea": "zont", + "year": "wrylt", + "yellow": "ryckle", + "yes": "smoarn", + "yon": "spielt", + "young": "vaull" + } + }, + { + "label": "seed7", + "seed": 7, + "matchProsody": true, + "remintRounds": 1, + "bijective": true, + "imageSize": 2233, + "domainSize": 2233, + "mappingSize": 1680, + "mappingSha256": "65efb80b712a63d434bc8c9ecc1266dc93197eca5c3938ebd5f820c8da82fbbd", + "mapping": { + "abc": "dreand", + "abroad": "greshum", + "adieu": "sieskic", + "admittance": "glaizzleleing", + "advice": "streaskish", + "afraid": "charpic", + "aft": "sqoug", + "age": "wrerch", + "agree": "pleastow", + "ain": "trean", + "air": "spirrm", + "alabone": "sqimbleumic", + "alack": "kletleum", + "ale": "weashic", + "alehouse": "shopening", + "alive": "sqoubous", + "alley": "vaping", + "almanac": "woalousic", + "alone": "swiechen", + "along": "yurngish", + "alphabet": "zorngidel", + "alphabetical": "spirspousingidid", + "alway": "korzzleel", + "amble": "zurlten", + "ampersand": "skearkenel", + "angry": "skeazzley", + "ann": "starb", + "announce": "warnken", + "anoth": "bloaffic", + "answer": "kruthum", + "appl": "gnirrd", + "apple": "chyffen", + "appoint": "prordleid", + "april": "scithum", + "arm": "scerl", + "around": "dehoorm", + "arrow": "jirkleing", + "art": "snorg", + "ask": "spylt", + "asleep": "jauthel", + "ate": "yorz", + "aught": "thraur", + "aunt": "smamp", + "away": "unpryng", + "awhile": "dronkelous", + "awoke": "yyllum", + "axe": "smask", + "aye": "floont", + "baa": "noark", + "babby": "rirftow", + "baby": "yarmid", + "babylon": "wagelel", + "bachelor": "goumpider", + "back": "harlk", + "backward": "stryllow", + "bacon": "birrder", + "bad": "flealk", + "bade": "smirft", + "bag": "smork", + "bailey": "blirchle", + "bak": "toomp", + "bake": "blarch", + "baker": "gazzley", + "ball": "glorll", + "balloon": "breanken", + "banbury": "sporrdelic", + "bandy": "scumpow", + "barb": "kraig", + "barber": "snernding", + "bare": "threalt", + "bark": "blup", + "barley": "rarmous", + "barm": "shos", + "barn": "surt", + "barrel": "chorffic", + "basket": "jarffleel", + "bat": "glurng", + "battle": "vieskle", + "bead": "kermp", + "bean": "ziest", + "bear": "wreer", + "beat": "goarm", + "beaten": "scardy", + "bed": "krout", + "bedtime": "grurrdum", + "bee": "frock", + "beef": "flormp", + "beehive": "froobleing", + "beer": "skorch", + "beetle": "sluly", + "began": "zauspum", + "beggar": "jiezing", + "begin": "smoothow", + "beginn": "tebic", + "begun": "soamen", + "behind": "waigen", + "believe": "wrurnen", + "bell": "snid", + "belleisle": "thrurmering", + "bend": "pleek", + "bent": "stirg", + "berr": "jeesh", + "bes": "slaurm", + "beside": "fokleish", + "bessy": "brornid", + "best": "wyp", + "betsy": "dryzzleous", + "bett": "blymp", + "betty": "spouspent", + "betwixt": "karrmle", + "bid": "lof", + "big": "gnoud", + "bigg": "grirrt", + "bil": "scuf", + "bill": "sneand", + "bind": "shaift", + "bird": "snourn", + "birthday": "frienenid", + "bit": "saus", + "bite": "vyng", + "bitt": "griest", + "bitten": "squrckel", + "black": "shoal", + "blackbird": "wrauffleic", + "blacksmith": "drirchic", + "blanche": "pirv", + "ble": "karsh", + "bleak": "foont", + "bleat": "traik", + "bles": "pirft", + "blessing": "trordleish", + "blind": "smard", + "blis": "wraish", + "blithe": "haish", + "blood": "prurnt", + "blow": "zeff", + "blue": "brermp", + "blush": "breer", + "boat": "strarrk", + "bob": "burd", + "bobby": "joazer", + "body": "grungel", + "boggen": "sturging", + "boil": "scosh", + "boldero": "scorrkowing", + "bolin": "blertow", + "bombay": "derbleent", + "bone": "flysk", + "bonn": "tharm", + "bonnet": "chympous", + "bonnie": "spersp", + "bonny": "jenging", + "book": "leen", + "born": "blirl", + "bottle": "storty", + "bough": "froo", + "bought": "swurmp", + "bounc": "glork", + "bow": "sporsh", + "bowl": "derf", + "box": "strylk", + "boy": "skurth", + "bramble": "gneendleer", + "brandy": "thisow", + "bras": "slaur", + "bray": "skoack", + "bread": "sporp", + "break": "dryz", + "breech": "snor", + "brew": "berck", + "bri": "bud", + "brickbat": "draindic", + "bride": "vusk", + "bridge": "thrish", + "bridle": "spaiker", + "bright": "sault", + "bring": "blorp", + "bristol": "strooning", + "broke": "dais", + "broken": "fauffleid", + "brook": "kril", + "broom": "slauth", + "broth": "garnk", + "brother": "blarzic", + "brought": "pryrd", + "brown": "sheed", + "buckl": "lurrm", + "buckle": "kobel", + "build": "lirm", + "built": "pausk", + "bull": "teab", + "bullet": "skongic", + "bullfinch": "mootleish", + "bump": "swulk", + "bumpety": "graitleicen", + "bun": "blaurm", + "bunch": "mers", + "bunt": "doun", + "buri": "shrarrmy", + "burial": "shrergley", + "burnie": "vurlk", + "burnt": "frailk", + "bush": "trut", + "butt": "scoub", + "button": "skirlkic", + "buy": "snab", + "bye": "vank", + "cabin": "yeelkent", + "caesar": "strorndid", + "cage": "koat", + "cake": "sqoam", + "calf": "skyth", + "call": "floall", + "came": "slursk", + "canary": "gathenish", + "candl": "scarsk", + "candle": "vemer", + "candlestick": "strooftishish", + "candy": "trouftid", + "cannot": "rorking", + "cant": "kraik", + "cap": "mard", + "captain": "gruftic", + "car": "shrank", + "care": "pirt", + "carr": "doonk", + "carri": "gerffleous", + "carrion": "struftous", + "carry": "keartle", + "carv": "droulk", + "cast": "pirff", + "cat": "florll", + "catch": "yorp", + "caught": "chaz", + "ceas": "speb", + "ceil": "broad", + "cellar": "firnkish", + "chain": "pround", + "chair": "rirch", + "chamb": "troost", + "champ": "zarlt", + "chanc": "skair", + "charley": "kreaffleing", + "che": "fornd", + "cheek": "krirs", + "cheese": "koarm", + "cherry": "flester", + "chicken": "pleelish", + "chid": "jan", + "chief": "smorf", + "child": "grauk", + "children": "broarmidy", + "chimney": "sqipum", + "chin": "ploa", + "chirp": "mop", + "chirrup": "wooffing", + "choice": "grol", + "choose": "shrerch", + "chopp": "brauff", + "christen": "jaichish", + "christma": "trysle", + "cinder": "houtous", + "city": "smuckle", + "clap": "vyg", + "claw": "smout", + "clay": "verm", + "clean": "pieff", + "clear": "brailt", + "clergyman": "wraifterid", + "clerk": "swuch", + "clev": "flerm", + "cloak": "weft", + "clock": "desp", + "cloth": "wraurd", + "clothe": "bur", + "cloudy": "beekum", + "coachman": "smykel", + "coal": "klorrm", + "coat": "dik", + "cobbler": "thrylkow", + "cobweb": "kargle", + "cock": "kault", + "codlin": "glaundic", + "coffee": "tykic", + "coffin": "birchish", + "cold": "sceeft", + "cole": "rarking", + "collar": "pealkum", + "colt": "gleend", + "com": "herth", + "comb": "stolk", + "come": "vieck", + "comfit": "stoshent", + "comical": "wrooshenten", + "comin": "sqaikley", + "command": "torllen", + "compare": "trickow", + "compliment": "wrolinger", + "consid": "broagid", + "consider": "boadicen", + "contrary": "slerrdening", + "contrive": "snantish", + "coo": "perl", + "copp": "shelk", + "coral": "spyffleing", + "corn": "tront", + "corner": "grunden", + "cost": "loask", + "cottage": "kraiffow", + "count": "hisp", + "court": "glieck", + "cov": "draig", + "cover": "prousing", + "cow": "chuz", + "crackabone": "frarlkelle", + "cradle": "sambleing", + "cream": "rail", + "creep": "moad", + "crept": "sloong", + "cri": "geel", + "croak": "slees", + "crook": "pruf", + "cros": "kroot", + "crow": "strang", + "crown": "trif", + "crumb": "trerft", + "crumpl": "weell", + "crusoe": "drarth", + "cry": "voll", + "cup": "korm", + "cupboard": "songel", + "cur": "slorrt", + "curd": "foarm", + "curl": "brurrn", + "currant": "staundous", + "curtsy": "grarfum", + "cushion": "flurzum", + "cushy": "kurle", + "custard": "syky", + "cut": "tornk", + "cutery": "baumbleishle", + "daddie": "drong", + "daddy": "noorning", + "daff": "streaz", + "daffodil": "rarbenous", + "dainti": "swoaffley", + "dainty": "herchous", + "dairy": "slairkow", + "dam": "serf", + "dame": "saun", + "danc": "gneesp", + "dance": "thourt", + "dang": "snick", + "dapple": "daiffleing", + "dare": "zir", + "dark": "zourt", + "darlington": "jaugleerow", + "dat": "pauch", + "daught": "weak", + "daughter": "slieskous", + "daw": "thriest", + "dawson": "gneffleic", + "day": "slorm", + "dead": "shoaff", + "dear": "wousk", + "deary": "sqausle", + "death": "smauft", + "deceit": "zoorming", + "decide": "shiembley", + "deck": "fryst", + "declar": "slemple", + "ded": "tul", + "dee": "slarlt", + "deed": "jount", + "deep": "fryrm", + "delight": "shroanten", + "delve": "gnup", + "derby": "storrow", + "determin": "sairkinger", + "dew": "thriff", + "diamond": "smezum", + "dick": "krear", + "dickery": "flogleentum", + "dickory": "wrormpishing", + "dicky": "chading", + "diddle": "gnoozzleel", + "die": "blaill", + "died": "prib", + "diet": "glaush", + "difficult": "vurngenous", + "dig": "klyr", + "dill": "blun", + "ding": "seamp", + "dinkety": "frusowent", + "dinn": "plov", + "dirty": "ploany", + "dish": "draish", + "dishy": "spemic", + "displeas": "goordid", + "ditch": "plauch", + "division": "skeembleuming", + "dob": "floust", + "dock": "gnaik", + "doctor": "gerrmen", + "doe": "kar", + "doff": "smeav", + "dog": "swech", + "dol": "beb", + "doll": "syrn", + "dollar": "moble", + "dolly": "vorvic", + "don": "joung", + "dong": "lernt", + "donkey": "glaumen", + "doo": "hurk", + "doodle": "snirsping", + "door": "koan", + "dost": "drirt", + "doth": "mip", + "doubt": "koock", + "dov": "thorrk", + "dove": "stursk", + "downstair": "koafty", + "dozen": "yerpish", + "drak": "preerm", + "drake": "gienk", + "draw": "jies", + "dream": "toog", + "dreamt": "spormp", + "dreary": "prerrming", + "dres": "sturr", + "dress": "flarg", + "drink": "vorll", + "driv": "slorff", + "drive": "blaz", + "dropp": "drauz", + "drove": "roaff", + "drown": "vynk", + "drum": "flousp", + "drumm": "spaunk", + "dry": "zuth", + "duck": "storv", + "dumpl": "woord", + "dumpling": "kroavid", + "dumpty": "spercking", + "dun": "pairk", + "durst": "zarsh", + "dusty": "baffic", + "dwell": "kyng", + "dwelt": "weeng", + "ear": "slau", + "earth": "plarlk", + "east": "prorsk", + "eat": "drult", + "egg": "freest", + "eighteen": "raurmle", + "eith": "wrouch", + "eleven": "jutleingish", + "elizabeth": "gnaugumicer", + "ell": "shrish", + "else": "woug", + "elspeth": "sealkel", + "empty": "breatic", + "end": "klernk", + "england": "snoolkle", + "enough": "sceemy", + "equal": "prilty", + "espi": "nursty", + "etc": "drosh", + "etticoat": "gnerstumous", + "evermore": "slilticow", + "everyone": "warmpenty", + "evil": "dryndel", + "except": "wrermow", + "exet": "jeezle", + "eye": "cherth", + "face": "flilk", + "fail": "sloap", + "fair": "wab", + "fall": "krong", + "fan": "soth", + "fare": "swauch", + "farm": "sqornt", + "farmer": "pormpum", + "farth": "strorff", + "farthing": "jirel", + "fast": "healt", + "fat": "swip", + "father": "heackish", + "fear": "meaz", + "feast": "scorb", + "feath": "breev", + "feather": "drylow", + "february": "riskenic", + "fed": "throck", + "feed": "snait", + "feet": "klys", + "fell": "zis", + "fellow": "skaspum", + "fetch": "wroolk", + "fiddl": "shrorrn", + "fiddle": "lirter", + "fiddler": "gnoony", + "fie": "sperch", + "field": "terch", + "fife": "blooz", + "fifteen": "veesple", + "fight": "shreaz", + "fill": "tys", + "fin": "zoz", + "find": "scyb", + "fine": "thoand", + "fing": "meeb", + "finger": "yeeby", + "fir": "louv", + "fire": "zaiff", + "first": "glarb", + "fish": "smausk", + "fishy": "glotic", + "fit": "yoat", + "flame": "swursh", + "flapp": "parv", + "fleece": "blooff", + "fleet": "sweard", + "flew": "flun", + "flinder": "floshum", + "flock": "jeel", + "floor": "throash", + "flour": "gym", + "flow": "hysk", + "flower": "proofel", + "flung": "paisk", + "flute": "scoak", + "fly": "frim", + "fol": "grat", + "folk": "tornd", + "fond": "thrirs", + "fool": "serck", + "foot": "maz", + "footman": "heaning", + "forc": "starn", + "forehead": "zirsherid", + "foreman": "thurndleowy", + "forev": "squrrting", + "forgot": "deething", + "forlorn": "wraspous", + "forth": "thrilt", + "fortune": "froallel", + "forward": "frondleid", + "fost": "seack", + "fought": "terff", + "found": "smeasp", + "fourpence": "vyrnid", + "fourteen": "teagid", + "fourth": "frarf", + "france": "wyff", + "fred": "zurk", + "freeze": "drien", + "fret": "hes", + "friday": "sqoaffent", + "frighten": "throrllid", + "frosty": "zoortum", + "fruit": "gnaiff", + "fruiterer": "shouvery", + "frump": "draurd", + "frumpaty": "prandenic", + "full": "koth", + "fun": "syd", + "funny": "vezzleum", + "gai": "slerth", + "gall": "brift", + "gallant": "charnic", + "gallop": "verkow", + "gamberal": "maumening", + "game": "skysp", + "gand": "smarnk", + "gang": "frouk", + "gap": "haind", + "garden": "hathle", + "garter": "smoundish", + "gate": "kloash", + "gather": "scaispous", + "gave": "sherrt", + "gay": "shreech", + "geese": "graurt", + "gent": "spolk", + "gentle": "hauchow", + "gentleman": "slautleisher", + "gentlemen": "mergishic", + "georgy": "stroudle", + "get": "plarrk", + "gett": "kirn", + "giblet": "scoackle", + "gil": "thorv", + "girl": "grud", + "give": "kieb", + "giving": "flumbleid", + "gloucest": "gillow", + "goat": "jak", + "gobbl": "glorsh", + "gobble": "plorrmic", + "god": "shourk", + "goe": "swoaf", + "goest": "gaush", + "going": "smoav", + "gold": "warnt", + "goldfinch": "greabley", + "gone": "kleech", + "good": "naith", + "goose": "kloalk", + "goosey": "jarler", + "got": "sqaik", + "gotham": "snoordic", + "gown": "krof", + "grace": "yirl", + "grandmoth": "prachid", + "gras": "weash", + "grave": "cheab", + "gravel": "sweaftish", + "gray": "freall", + "great": "roord", + "greedy": "kleffic", + "green": "marrt", + "greenwood": "zouzzleish", + "grew": "hurck", + "griev": "fied", + "grim": "graz", + "grin": "gurll", + "groat": "floov", + "grocer": "threltent", + "ground": "treen", + "grow": "pest", + "gruel": "sweeb", + "grundy": "jubing", + "guinea": "nully", + "gum": "thrern", + "gun": "striff", + "hair": "woav", + "half": "raill", + "halfpence": "zooftel", + "halfpenny": "skurshentle", + "hall": "chyf", + "hame": "roub", + "hand": "merrt", + "handkerchief": "dirnkousy", + "handsome": "stroady", + "handy": "strorskish", + "hang": "smeeg", + "happen": "glootleid", + "hard": "trirlt", + "hare": "shroasp", + "hark": "snom", + "harm": "jiern", + "harrow": "jailter", + "hart": "smyf", + "hat": "biz", + "hath": "churg", + "hatter": "mospel", + "hawk": "hernt", + "hay": "seesk", + "haystack": "strarndleing", + "hea": "zaith", + "head": "gnorll", + "healthy": "prerndel", + "hear": "slonk", + "heard": "thernt", + "heart": "hift", + "hearty": "prarrent", + "heav": "plaunt", + "hector": "skevel", + "heel": "varr", + "heighty": "frougish", + "helen": "spiethy", + "help": "sorp", + "hem": "paff", + "hen": "sum", + "hero": "gaintous", + "herring": "sqygous", + "hey": "wurrd", + "hickery": "therrdenic", + "hickety": "kreaftentish", + "hickory": "spiepelish", + "hid": "thrien", + "hide": "thust", + "higgledy": "wymbleeric", + "high": "greaf", + "highnes": "hirnkum", + "highway": "locker", + "hill": "drier", + "hillock": "gnoulkic", + "himself": "hoaren", + "hire": "frorm", + "hobble": "skurrking", + "hog": "smir", + "hold": "thairn", + "hole": "prarfer", + "holiday": "glinumy", + "home": "jeerm", + "hon": "skoost", + "honey": "saker", + "honor": "ploudleic", + "hood": "scoort", + "hop": "jauf", + "hope": "preesk", + "hopp": "klyf", + "horn": "smum", + "horrid": "zirous", + "hors": "skorn", + "horse": "pleast", + "horseshoe": "sweckous", + "hose": "yof", + "hosier": "bridleent", + "hot": "jeart", + "hound": "flon", + "hour": "skesh", + "house": "kleank", + "housetop": "boshumen", + "hubbard": "cherngle", + "huff": "sqarck", + "humpty": "rezle", + "hundr": "brir", + "hung": "blerd", + "hunt": "breaft", + "hurry": "stoaffum", + "hurt": "shrooz", + "husband": "swarffleow", + "hush": "korz", + "huzza": "byrmer", + "ice": "skach", + "icicle": "broasperel", + "ifs": "snarm", + "ill": "starch", + "illustrat": "wermishen", + "inde": "fruk", + "ink": "wread", + "instead": "florching", + "intery": "sqoopicum", + "iron": "smouspic", + "ive": "choost", + "jack": "plief", + "jacky": "scaunger", + "jag": "jourm", + "jam": "swaill", + "jelf": "hoth", + "jen": "prath", + "jenny": "driedle", + "jerry": "niernel", + "jig": "birt", + "jiggety": "spooffelum", + "jill": "choan", + "jingle": "sidleum", + "joan": "blarrn", + "jog": "shrauz", + "john": "blirlt", + "johnny": "plonker", + "joke": "stush", + "jol": "kloamp", + "joy": "kiek", + "joyou": "tounk", + "july": "skarkous", + "jump": "scerrk", + "june": "narck", + "keep": "spirk", + "ken": "gnug", + "kept": "sarsh", + "kettl": "gliep", + "kettle": "lochle", + "key": "smerst", + "kilkenny": "steetelent", + "kill": "bais", + "kind": "glar", + "king": "sperlt", + "kingdom": "slerle", + "kirk": "snerll", + "kis": "sqa", + "kiss": "grirv", + "kit": "smoaft", + "kitchen": "mogleum", + "kite": "drorsk", + "kitten": "chample", + "kitty": "lerter", + "knave": "sliv", + "kne": "ske", + "knee": "snornd", + "knife": "farv", + "knight": "slet", + "knock": "swoard", + "know": "yarn", + "kyloe": "starm", + "lad": "baurm", + "ladd": "swe", + "laddie": "wroog", + "laden": "trurser", + "lady": "licky", + "ladybird": "birfterum", + "lag": "pruck", + "laid": "gyrd", + "lal": "slorll", + "lam": "kleelt", + "lamb": "loosk", + "lan": "zirst", + "land": "smuz", + "lane": "hurs", + "lard": "taurk", + "lark": "meesp", + "lass": "frick", + "last": "gek", + "latch": "klirrt", + "late": "brich", + "laugh": "blernk", + "lauk": "paump", + "lay": "cherm", + "lea": "dryff", + "lead": "gliez", + "lean": "raink", + "leap": "prieft", + "least": "choart", + "leath": "gnach", + "leav": "brap", + "leave": "klet", + "led": "shrach", + "lee": "snoord", + "leed": "lood", + "left": "paind", + "leg": "buk", + "lend": "choast", + "lengthen": "zaukleish", + "lent": "cherd", + "les": "swyt", + "let": "sqolk", + "lett": "kroat", + "lick": "tit", + "lie": "swoub", + "life": "rorn", + "lift": "baurd", + "light": "smoag", + "like": "streash", + "lin": "berrd", + "linen": "youlking", + "linnet": "primel", + "lion": "slus", + "list": "shirk", + "little": "shooventy", + "littleman": "smerowid", + "liv": "strorth", + "live": "braz", + "load": "streart", + "lock": "ploort", + "locket": "fringow", + "lol": "gliek", + "london": "zoukel", + "long": "prirnd", + "longman": "ditleer", + "look": "hieff", + "lord": "hang", + "lost": "prarch", + "loud": "drenk", + "lov": "ners", + "love": "sceerm", + "low": "skisk", + "luck": "mauv", + "lucy": "shiffel", + "lump": "sqieck", + "lumpety": "zeengowen", + "mad": "merst", + "made": "jerr", + "maid": "kor", + "maiden": "choapic", + "main": "slorn", + "maintain": "shegleent", + "mak": "gark", + "make": "shream", + "malt": "choth", + "mamma": "spouple", + "mammie": "frarp", + "mammy": "shreefid", + "man": "tun", + "many": "thruskish", + "march": "brirr", + "mare": "treark", + "margaret": "kookowish", + "margery": "wrerskidle", + "mark": "chooft", + "market": "joskent", + "marr": "slysk", + "marri": "glythow", + "marry": "tarskent", + "martin": "scoongle", + "mary": "lorrow", + "mast": "morst", + "master": "bleangle", + "match": "spyrt", + "matt": "snoonk", + "maybe": "klorl", + "mayor": "barsh", + "meadow": "wurkish", + "meal": "tirp", + "mean": "thirnk", + "meat": "graip", + "meet": "daink", + "melancho": "gielkishous", + "men": "sked", + "mend": "chait", + "merchant": "scopel", + "mercy": "gerrmow", + "merri": "brauvent", + "merry": "shordum", + "merrymen": "lormousum", + "met": "rylt", + "mew": "deen", + "mice": "porff", + "mickle": "gleetleic", + "middle": "klaullum", + "mil": "klouk", + "mild": "blarp", + "mile": "shofent", + "milk": "klarb", + "mill": "hoork", + "mind": "burb", + "mine": "siet", + "mintery": "sqeambleidous", + "minute": "paring", + "mire": "blirn", + "mis": "smarm", + "mischievou": "wenkelous", + "miss": "tharg", + "mist": "soot", + "mistaken": "ferdleowy", + "mistres": "thryllow", + "misty": "kegent", + "moisty": "flerrmel", + "mol": "sqauz", + "monday": "swaichow", + "money": "frerkic", + "monkey": "floushing", + "monstrou": "klozow", + "moon": "glet", + "moppet": "jealling", + "more": "trait", + "morn": "skerf", + "morning": "dreapent", + "mortal": "chyler", + "mother": "sorish", + "motion": "glipic", + "mourn": "gniv", + "mouse": "plault", + "mouth": "lerft", + "mov": "vaiz", + "move": "voum", + "mow": "deal", + "mrs": "fraug", + "much": "thees", + "muffet": "tairmic", + "mulberry": "glooltumous", + "multiplication": "pleffentenicel", + "music": "liser", + "muskidun": "firmpidid", + "mutton": "swooftent", + "myself": "engrirt", + "nag": "zymp", + "nail": "kryk", + "nam": "bleev", + "name": "sorm", + "nan": "thoask", + "nancy": "sweandleel", + "nanny": "yorpow", + "narrow": "krouskish", + "nasty": "dermbleel", + "naught": "snorv", + "naughty": "gooskow", + "nay": "smoomp", + "neary": "pirvy", + "neat": "beach", + "neck": "shon", + "needl": "smelk", + "needle": "trurndel", + "neighbor": "glolkid", + "neith": "mirp", + "nest": "yyb", + "new": "moonk", + "next": "swaump", + "nibble": "strurchy", + "nice": "jirst", + "niggledy": "speachicum", + "night": "mourd", + "nightgown": "gearten", + "nimble": "kirbleing", + "nineteen": "pirmbleleel", + "nob": "kroark", + "nobleman": "flypishish", + "nobody": "skidleishel", + "nodd": "wrell", + "noise": "bornd", + "noon": "broack", + "nor": "sursh", + "north": "stroolt", + "norwich": "thruchow", + "nose": "flaus", + "notch": "foos", + "note": "stoack", + "noth": "chorsh", + "novemb": "snarmbleer", + "now": "hick", + "oak": "nol", + "often": "slaunky", + "old": "kir", + "ope": "frusp", + "open": "greebleous", + "orange": "darmpid", + "organ": "gierdel", + "oth": "plerz", + "oven": "bradleent", + "owe": "gnurk", + "owl": "yoad", + "own": "broolt", + "packet": "snirndent", + "pail": "wrert", + "pair": "flirt", + "pan": "broun", + "pancake": "krierdous", + "pandy": "faly", + "pantry": "junker", + "pap": "shoag", + "papa": "saibleow", + "parent": "droozzleid", + "parlor": "jiezzleent", + "parrot": "choallous", + "parson": "loaffleum", + "party": "pokic", + "pas": "bleend", + "pat": "chais", + "patch": "ploank", + "pay": "lerv", + "peace": "chaurk", + "peaceable": "dorgelow", + "peacock": "tharrmel", + "pear": "jarll", + "pease": "kielk", + "peck": "snealk", + "pedlar": "wipy", + "peep": "strol", + "pen": "prai", + "penny": "triethle", + "people": "storthum", + "pepper": "shroalkle", + "perhap": "wreazum", + "pet": "zard", + "peter": "grondleid", + "petticoat": "proasenic", + "physician": "feashentle", + "piccadil": "skurzerum", + "pick": "smoarn", + "pickety": "glerntishow", + "pickl": "chav", + "picture": "thribic", + "pie": "stirl", + "piece": "gloall", + "pieman": "furder", + "pig": "groask", + "pigeon": "friedid", + "piggledy": "gneangentent", + "pin": "larl", + "pinch": "spoart", + "pint": "troam", + "piou": "spiez", + "pip": "tong", + "pipe": "klang", + "piper": "hoakleel", + "pippen": "notum", + "pitch": "thrairm", + "plac": "squrrn", + "plain": "furd", + "plast": "swoust", + "plat": "stryr", + "plate": "park", + "platt": "scaik", + "play": "blurt", + "playfellow": "flozishing", + "playmat": "fleenish", + "please": "klyn", + "plenty": "foornish", + "plum": "friest", + "pocket": "frailow", + "pocketful": "kaillousous", + "point": "wrurrn", + "poker": "bleagleow", + "pol": "slorsh", + "poll": "drorlk", + "pony": "shrupic", + "pooh": "wrorrm", + "poor": "smied", + "poppety": "trorthenish", + "porgy": "strerbleel", + "porridge": "plospow", + "porring": "blymbleum", + "pos": "purz", + "posses": "flurtous", + "pot": "scis", + "potato": "siendelen", + "pound": "cheed", + "powd": "lied", + "practice": "flarkleer", + "pray": "vurrt", + "prayer": "pol", + "pretti": "leelkent", + "pretty": "mienle", + "pri": "klees", + "prick": "voarn", + "prince": "scord", + "princes": "shreller", + "prithee": "roulous", + "prod": "strerst", + "promis": "dryking", + "proper": "swoulkish", + "protector": "prukleelow", + "proud": "neelk", + "psalm": "skarsk", + "pudd": "chorn", + "pudding": "sirndent", + "puddle": "poormish", + "pull": "briel", + "pumpkin": "charllid", + "pussy": "frarsish", + "put": "smaiff", + "puzzle": "prerlen", + "quack": "skoong", + "quarrel": "glorspy", + "queen": "hysp", + "quick": "fouff", + "quiet": "swaub", + "quite": "traup", + "rabbit": "greableow", + "rac": "moath", + "rag": "shouv", + "rage": "zift", + "rain": "yurnk", + "ram": "chousp", + "ran": "krurff", + "rapp": "roth", + "rare": "feen", + "rat": "shrerd", + "rattle": "drearnid", + "raven": "joobid", + "raw": "plount", + "reach": "sqerll", + "read": "swynk", + "ready": "glocker", + "real": "krarrd", + "reason": "speeken", + "receive": "snoaften", + "red": "smust", + "redbreast": "klauvent", + "reel": "streath", + "reigate": "plaimle", + "remedy": "gnoadleishel", + "repartee": "goofering", + "repli": "zoospen", + "request": "diven", + "resolv": "lindleum", + "rest": "fleark", + "return": "rockum", + "rhym": "sorf", + "rhyme": "nech", + "ribbon": "loudow", + "rice": "pynk", + "rich": "sceag", + "richard": "shruffum", + "rid": "swaint", + "riddle": "virlkel", + "ride": "hock", + "rig": "yunt", + "right": "tirk", + "ring": "drient", + "ringman": "glirrow", + "rise": "kelt", + "riv": "gnarst", + "roast": "syl", + "rob": "poag", + "robber": "slirnen", + "robert": "molkel", + "robin": "trirmpy", + "robinson": "fiegower", + "rock": "birf", + "rode": "gnait", + "rog": "plailk", + "roll": "frirnd", + "rook": "froash", + "room": "staus", + "root": "vut", + "ros": "rech", + "rosy": "sporpy", + "rough": "pront", + "round": "yaik", + "row": "thersk", + "rule": "hubow", + "run": "maik", + "runn": "shairn", + "rush": "waill", + "rye": "praib", + "sabbath": "chirrdid", + "sack": "ploand", + "saddle": "fieffleous", + "safe": "sqart", + "sage": "spoz", + "sago": "gnoumbleel", + "said": "plys", + "sail": "jarrk", + "sailor": "deashish", + "salt": "sount", + "sam": "brieth", + "same": "snurlk", + "sang": "theeff", + "sat": "werrm", + "saturday": "struluming", + "saw": "smauck", + "say": "soask", + "scar": "pord", + "scarce": "feek", + "scarlet": "wrackid", + "scholar": "swauntish", + "school": "glaull", + "schoolroom": "klierden", + "scotch": "klirnt", + "scratch": "hit", + "scuttle": "shraurder", + "sea": "sqyd", + "seal": "fraurn", + "seam": "taup", + "seasonable": "smeapicumen", + "second": "girffent", + "see": "sqourk", + "seed": "stord", + "seek": "borth", + "seen": "sqeev", + "seldom": "chirfic", + "selfsame": "glurpent", + "sell": "snarng", + "sempster": "gendic", + "send": "smaish", + "sent": "flirrt", + "septemb": "frazzleen", + "serv": "kraisp", + "servant": "pinkic", + "serve": "sorr", + "set": "teant", + "seventeen": "chyskishle", + "sew": "verst", + "shaftoe": "rert", + "shake": "golt", + "shalt": "smymp", + "shape": "skorrk", + "shave": "greef", + "shaven": "gerrtent", + "shed": "kirth", + "sheep": "saung", + "shelf": "snerk", + "shell": "soorm", + "shepherdes": "pirkleishum", + "shilling": "swengous", + "shin": "kourt", + "shine": "gnaf", + "ship": "sep", + "shiv": "hyft", + "sho": "pend", + "shod": "wrorst", + "shoe": "skurd", + "shook": "kleert", + "shoot": "dreeb", + "shop": "gly", + "shoreditch": "koakishel", + "shorn": "kloolk", + "short": "woank", + "shot": "heam", + "show": "strup", + "shower": "serffleing", + "shroud": "doap", + "shut": "jant", + "sick": "yaip", + "side": "sleth", + "siege": "yosk", + "sieve": "blailt", + "sigh": "strend", + "silk": "shrouk", + "sill": "dierm", + "silv": "glev", + "simon": "bliernous", + "simple": "fliken", + "sing": "scount", + "single": "taizen", + "sir": "wich", + "sister": "neshen", + "sit": "kolk", + "sitt": "noaz", + "sixpence": "rarngow", + "sixteen": "smeegleen", + "skin": "horlk", + "skipp": "zailt", + "sky": "swaisk", + "slash": "sco", + "slat": "saim", + "slatherum": "grillele", + "sleep": "klaump", + "sleepy": "thieder", + "slend": "gnard", + "slice": "gron", + "slid": "drurt", + "slipper": "snoaskent", + "slitherum": "bryningish", + "slow": "rirft", + "sly": "fliff", + "small": "gnarnk", + "smile": "shroasen", + "smith": "kron", + "smok": "tep", + "snail": "pist", + "snap": "thesh", + "snapp": "grerrk", + "sneez": "stoos", + "sneeze": "sorrd", + "sniff": "maim", + "snipe": "larrd", + "snook": "slauff", + "snow": "fraing", + "snuff": "smaut", + "sobb": "glyn", + "soft": "shurd", + "sold": "zourm", + "solomon": "swaishowing", + "someth": "haiving", + "son": "krirck", + "song": "strieft", + "soon": "thrif", + "sore": "teed", + "sorrow": "jaiskel", + "sorrowful": "klozidous", + "soul": "snesp", + "sound": "blaump", + "south": "breand", + "sow": "jief", + "spade": "werrt", + "spain": "klysp", + "sparrow": "kroogley", + "speak": "jym", + "spell": "stirsk", + "spend": "staum", + "spent": "krieff", + "spice": "flyk", + "spid": "grest", + "spilt": "zorb", + "spin": "kersp", + "spinn": "snieg", + "spit": "sqaig", + "splash": "flerk", + "splish": "snul", + "spoil": "gnerg", + "spoke": "nirs", + "spoon": "yiell", + "sport": "frirsp", + "spr": "sqob", + "sprat": "shirck", + "spright": "sharb", + "spry": "slooz", + "spun": "nim", + "squirrel": "tielk", + "staff": "sciet", + "stair": "rauk", + "stand": "garll", + "star": "shraip", + "start": "roump", + "stay": "plith", + "steal": "sqierd", + "steel": "seert", + "stepney": "parkleid", + "stepp": "spask", + "stew": "wourm", + "stick": "sqerlk", + "stiff": "veesk", + "stile": "gumid", + "stingy": "breekleen", + "stock": "drurnk", + "stole": "cheempen", + "stone": "zailk", + "stood": "parrd", + "stop": "shrornk", + "stopp": "tirs", + "storm": "sob", + "story": "drousow", + "stout": "zoush", + "str": "hout", + "straight": "rersk", + "straightway": "treasle", + "strang": "streesp", + "strange": "sluf", + "straw": "wird", + "strawberr": "shreffous", + "stray": "plerth", + "street": "reeng", + "strife": "sqark", + "strong": "resk", + "strow": "pluv", + "struck": "glurg", + "stump": "noull", + "stumpaty": "sporzowen", + "such": "haib", + "sue": "skas", + "sugar": "snarrment", + "sukey": "fryshish", + "sulky": "prirlkic", + "summ": "pyg", + "summer": "sqiezzleen", + "sun": "gurt", + "sunday": "brorble", + "sung": "shout", + "sunshine": "glaisent", + "sunshiny": "briffleident", + "sup": "smoont", + "supp": "dyrm", + "suppose": "nyrmous", + "sure": "grirk", + "surprise": "shoableent", + "surrey": "shermic", + "swan": "krorrd", + "swarm": "morsk", + "sweep": "kroft", + "sweet": "starng", + "swim": "gat", + "swimm": "liend", + "swine": "sqeant", + "swoon": "troart", + "sword": "dierd", + "swore": "threesp", + "swum": "chirv", + "table": "spyffent", + "tack": "ploll", + "taffy": "teaffer", + "tail": "stoand", + "tailor": "therer", + "tak": "staill", + "take": "gnauf", + "tale": "foundleent", + "talk": "plirck", + "talkative": "haurument", + "tapp": "chir", + "tar": "gosk", + "tarr": "chym", + "tarry": "strerkleen", + "tart": "froat", + "taste": "smuff", + "tatter": "thrairtic", + "taught": "churs", + "tavern": "saishy", + "tea": "krounk", + "tear": "baulk", + "tee": "norch", + "teeth": "flith", + "tell": "lien", + "test": "skain", + "thank": "skyrd", + "thee": "shoork", + "thi": "jeest", + "thick": "herrk", + "thief": "swuth", + "thigh": "ploosh", + "thing": "vyv", + "think": "shree", + "third": "shroap", + "thirteen": "wroomel", + "thirty": "swaimum", + "thistle": "streakleous", + "thorn": "teas", + "thou": "zus", + "thought": "strosk", + "thousand": "prumy", + "thread": "skeek", + "threescore": "veandleid", + "threw": "flaith", + "thrive": "shrem", + "throat": "wrylk", + "throw": "bloach", + "thrush": "rad", + "thu": "shroosk", + "thumb": "shron", + "thumbkin": "thyzent", + "thump": "frurn", + "thumpaty": "toaberow", + "thursday": "yauskish", + "thy": "pree", + "thyself": "rainkous", + "tick": "shealt", + "tickl": "struk", + "tie": "bor", + "tied": "wrosk", + "til": "durg", + "till": "groar", + "tim": "blaift", + "time": "vurm", + "tinker": "bloasow", + "tip": "thilt", + "tipple": "verntous", + "tir": "seenk", + "tis": "porp", + "tisha": "miffleish", + "tittlemouse": "woaffidic", + "tobago": "brirthowent", + "today": "rekurd", + "toe": "spoult", + "togeth": "weegish", + "told": "blel", + "toll": "skymp", + "tom": "tard", + "tommy": "flugen", + "tong": "gauck", + "tongu": "moaffleid", + "tongue": "smuth", + "took": "plorz", + "top": "shrealt", + "torch": "krirl", + "torn": "hiek", + "tos": "snairk", + "toss": "krind", + "touch": "yerll", + "town": "loarn", + "toy": "plall", + "tramp": "tirz", + "trap": "soar", + "tre": "faing", + "tree": "sur", + "trencher": "squrlent", + "tri": "jyd", + "trick": "weer", + "trip": "shoort", + "tripe": "lurll", + "tripp": "bauk", + "trot": "shrurll", + "trott": "gliert", + "troubl": "sloaft", + "trouble": "chygleow", + "trow": "jich", + "trowel": "woabum", + "true": "sweat", + "try": "sout", + "tuck": "rarrd", + "tuesday": "doakel", + "tuffet": "krylkish", + "tumbl": "varn", + "tune": "slirrm", + "turn": "groul", + "turnip": "foakleing", + "twa": "stors", + "twaddle": "dooskic", + "twee": "kreav", + "tweedle": "rundle", + "twelve": "slynk", + "twenty": "bliebleing", + "twiddle": "glorffent", + "twig": "threark", + "twill": "trurl", + "twitchett": "speegle", + "twopence": "chauvish", + "undertaker": "wroartidely", + "unicorn": "pirthidel", + "unto": "kreelous", + "upon": "enswirrm", + "upstair": "stroopel", + "upward": "jaurdow", + "use": "tulk", + "used": "bronken", + "ush": "nunt", + "vale": "daiften", + "vast": "triev", + "velvet": "moafen", + "venture": "smoornow", + "vex": "slulk", + "vexation": "klefinging", + "victual": "shoukleel", + "vinegar": "hearkower", + "visit": "posken", + "visitor": "shugleering", + "vow": "shosp", + "wag": "froug", + "waggl": "slin", + "wail": "hyd", + "wainscot": "thoazum", + "wait": "koud", + "wak": "busp", + "wake": "shorrd", + "walk": "fap", + "wall": "ront", + "walnut": "prarling", + "wand": "jeash", + "want": "shoulk", + "ware": "yaust", + "warm": "krend", + "wash": "choll", + "wat": "strorn", + "watch": "sniz", + "watt": "trarlk", + "way": "smaun", + "wealthy": "kliertum", + "wear": "feasp", + "weath": "glim", + "wed": "grarsp", + "wedd": "zeasp", + "wednesday": "sqilkousel", + "wee": "blyp", + "weed": "shread", + "week": "shroord", + "weep": "nath", + "welcome": "krerdy", + "well": "swat", + "welshman": "riespel", + "went": "smaud", + "west": "sond", + "whale": "sqeandleous", + "whatev": "draivish", + "wheel": "slan", + "wheelbarrow": "shrounkicous", + "whenev": "varfen", + "wherev": "fendley", + "whey": "breang", + "whip": "sperck", + "whipp": "kroop", + "whistle": "skauzzleing", + "white": "wrourk", + "whitechapel": "flerrderowish", + "whith": "swurz", + "whoop": "wreak", + "wife": "grerng", + "wig": "zarch", + "wil": "brynd", + "wild": "dauz", + "wildernes": "skeanentous", + "wilkin": "dadleel", + "willie": "vurp", + "wilt": "brisk", + "wind": "strirlt", + "window": "chazzleic", + "wine": "snurrk", + "wing": "poul", + "winkie": "vud", + "winkle": "grospic", + "wint": "zell", + "winter": "smarltous", + "wip": "swirrk", + "wipe": "glirll", + "wire": "purr", + "wise": "heach", + "wish": "sqast", + "within": "wrurbleel", + "without": "tauftel", + "wiv": "soarn", + "woe": "striech", + "woman": "fliespous", + "women": "drarrmous", + "wond": "waim", + "wondrou": "losting", + "woo": "kamp", + "wood": "piez", + "woodbin": "torrding", + "wool": "sirff", + "word": "wreav", + "work": "dryck", + "world": "shyck", + "worm": "klech", + "worri": "klierkent", + "worry": "flartent", + "worse": "prom", + "worth": "yeed", + "wrap": "sqerr", + "wren": "thrirl", + "wright": "chouth", + "write": "font", + "wrote": "thairm", + "yard": "bliem", + "yea": "glaif", + "year": "dalk", + "yellow": "frarder", + "yes": "shraurd", + "yon": "dyl", + "young": "tarl" + } + }, + { + "label": "seed0-noprosody", + "seed": 0, + "matchProsody": false, + "remintRounds": 1, + "bijective": true, + "imageSize": 2233, + "domainSize": 2233, + "mappingSize": 1680, + "mappingSha256": "37d7dc1902993851b4696a68dcaf73612de37efefdd216d68d72ec896f215044", + "mapping": null, + "sampleNonces": { + "little": "strek", + "pretty": "streesh", + "run": "horlk", + "eat": "ben", + "jump": "byll", + "away": "squz", + "squirrel": "straull", + "funny": "krun", + "today": "krurrd", + "gum": "fles", + "hang": "pruch", + "crown": "strearm", + "candlestick": "vorm", + "crooked": null, + "diddle": "norrn", + "moon": "smorft", + "pussy": "flyb", + "goose": "brarsp", + "the": null, + "and": null, + "you": null, + "not": null, + "ox": null, + "good-bye": null + } + }, + { + "label": "control-inconsistent", + "seed": 0, + "matchProsody": true, + "remintRounds": 0, + "bijective": true, + "imageSize": 2233, + "domainSize": 2233, + "mappingSize": 1680, + "mappingSha256": "7ba5235f4b848f548abe1c7bdcdb5ebecaa5d1d0c93be321e540705339d313aa", + "mapping": null, + "sampleNonces": { + "little": "skoufenty", + "pretty": "streeshum", + "run": "jev", + "eat": "ben", + "jump": "byll", + "away": "bepaip", + "squirrel": "straull", + "funny": "krunel", + "today": "refon", + "gum": "fles", + "hang": "pruch", + "crown": "strearm", + "candlestick": "vormenent", + "crooked": null, + "diddle": "kobleel", + "moon": "smorft", + "pussy": "flyble", + "goose": "brarsp", + "the": null, + "and": null, + "you": null, + "not": null, + "ox": null, + "good-bye": null + } + }, + { + "label": "control-reveal-after-2", + "seed": 0, + "matchProsody": true, + "remintRounds": 0, + "bijective": true, + "imageSize": 2233, + "domainSize": 2233, + "mappingSize": 1680, + "mappingSha256": "7ba5235f4b848f548abe1c7bdcdb5ebecaa5d1d0c93be321e540705339d313aa", + "mapping": null, + "sampleNonces": { + "little": "skoufenty", + "pretty": "streeshum", + "run": "jev", + "eat": "ben", + "jump": "byll", + "away": "bepaip", + "squirrel": "straull", + "funny": "krunel", + "today": "refon", + "gum": "fles", + "hang": "pruch", + "crown": "strearm", + "candlestick": "vormenent", + "crooked": null, + "diddle": "kobleel", + "moon": "smorft", + "pussy": "flyble", + "goose": "brarsp", + "the": null, + "and": null, + "you": null, + "not": null, + "ox": null, + "good-bye": null + } + } + ], + "cases": [ + { + "label": "seed0-p0.0", + "map": "seed0", + "params": { + "p": 0.0, + "seed": 0, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\n", + "vacatedSha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c", + "vacatedChars": 86408, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 0, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 0, + "stemsTotal": 1680, + "stemsVacated": 0, + "tokensTotal": 16000, + "tokensVacated": 0, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.29, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3209324983421379, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0514375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.0, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.9485625, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "little", + "pretty": "pretty", + "run": "run", + "eat": "eat", + "jump": "jump", + "away": "away", + "squirrel": "squirrel", + "funny": "funny", + "today": "today", + "gum": "gum", + "hang": "hang", + "crown": "crown", + "candlestick": "candlestick", + "crooked": "crooked", + "diddle": "diddle", + "moon": "moon", + "pussy": "pussy", + "goose": "goose", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "2ba43046604884d431a9b8a503ae906a703235c578f7d588b877302c95b74983" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed0-p0.25", + "map": "seed0", + "params": { + "p": 0.25, + "seed": 0, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE REAL\n WIELKOW BRARSP\n\n _Illustrated by_\nBlanche Fisher Trurrk\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Gea\nRain\nThe Clock\nWinter\nFingers and Toes\nA Squrvididish Song\nStruv Vard and Her Cat\nThree Kliesowle on the Ice\nDroalls Brem\nThe Garr Plaispy Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nSqo", + "vacatedSha256": "6598ab550c09c2301cca7c38f8a57e3f1e385bb0a0f4648c14d8505cc0e5ad39", + "vacatedChars": 88987, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 469, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 461, + "stemsTotal": 1680, + "stemsVacated": 401, + "tokensTotal": 16000, + "tokensVacated": 2217, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.2901875, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.32098427911681016, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0424375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.1136875, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.843875, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "little", + "pretty": "pretty", + "run": "run", + "eat": "ben", + "jump": "jump", + "away": "away", + "squirrel": "straull", + "funny": "funny", + "today": "refon", + "gum": "gum", + "hang": "hang", + "crown": "crown", + "candlestick": "candlestick", + "crooked": "rieged", + "diddle": "diddle", + "moon": "moon", + "pussy": "pussy", + "goose": "brarsp", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "3db5b2fa17cc7e36128536eaae02a6551a2f0b898ce85b864f5f3a6941ab46aa" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed0-p0.35", + "map": "seed0", + "params": { + "p": 0.35, + "seed": 0, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE PRIRLK\n WIELKOW BRARSP\n\n _Illustrated by_\nBlanche Fisher Trurrk\n\n1916\n\n\n\nA LIST OF THE SHRENGES\n\nLittle Bo-Peep\nLittle Boy Gea\nRain\nThe Clock\nWinter\nTitows and Toes\nA Squrvididish Song\nStruv Vard and Her Cat\nThree Kliesowle on the Ice\nDroalls Brem\nThe Garr Plaispy Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nLittle Bylling Joan\nPat-a-Cake\nMoney and the Mar", + "vacatedSha256": "f70d3febc5552d9e194b980a8811cb16fccc9d6d011049e574aca3fa6cf39d3a", + "vacatedChars": 90204, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 683, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 672, + "stemsTotal": 1680, + "stemsVacated": 587, + "tokensTotal": 16000, + "tokensVacated": 3152, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.2900625, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.320887366369295, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0416875, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.154875, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.8034375, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "little", + "pretty": "pretty", + "run": "run", + "eat": "ben", + "jump": "byll", + "away": "away", + "squirrel": "straull", + "funny": "funny", + "today": "refon", + "gum": "gum", + "hang": "hang", + "crown": "crown", + "candlestick": "candlestick", + "crooked": "rieged", + "diddle": "diddle", + "moon": "moon", + "pussy": "pussy", + "goose": "brarsp", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "a5b250c2e8fbb8adc825b98cb79f1f7160e347d303fb1677299b7398f363b4dd" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed0-p0.5", + "map": "seed0", + "params": { + "p": 0.5, + "seed": 0, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE PRIRLK\n WIELKOW BRARSP\n\n _Illustrated by_\nBlanche Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nSkoufenty Bo-Peep\nSkoufenty Boy Gea\nRain\nThe Clock\nWinter\nTitows and Toes\nA Squrvididish Shyf\nStruv Vard and Her Cat\nThree Kliesowle on the Ice\nDroalls Brem\nThe Garr Plaispy Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nSkoufenty Bylling Joan\nPat-a-Cake\nMoney and", + "vacatedSha256": "d1613771bcc7f998b4b74ddb90b06cfaf1699488fb0df82988cf2d7d25508e74", + "vacatedChars": 92340, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 966, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 954, + "stemsTotal": 1680, + "stemsVacated": 833, + "tokensTotal": 16000, + "tokensVacated": 4470, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.28975, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.32123047935415144, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.023375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.2205, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.756125, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "skoufenty", + "pretty": "pretty", + "run": "run", + "eat": "ben", + "jump": "byll", + "away": "away", + "squirrel": "straull", + "funny": "funny", + "today": "refon", + "gum": "gum", + "hang": "hang", + "crown": "crown", + "candlestick": "vormenent", + "crooked": "rieged", + "diddle": "diddle", + "moon": "moon", + "pussy": "pussy", + "goose": "brarsp", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "3806792a17a00aa9328207aeefc7399508d0de0fcfc15372eb560dc82e5bb7ff" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed0-p0.7", + "map": "seed0", + "params": { + "p": 0.7, + "seed": 0, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE PRIRLK\n WIELKOW BRARSP\n\n _Trirmousered by_\nBlanche Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nSkoufenty Bo-Peep\nSkoufenty Boy Gea\nRain\nThe Snuch\nWinter\nTitows and Smurlks\nA Squrvididish Shyf\nStruv Vard and Her Cat\nThree Kliesowle on the Ice\nDroalls Brem\nThe Garr Plaispy Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nSkoufenty Bylling Boub\nPat-a-Cake\nNiedu", + "vacatedSha256": "940e9468e7fa9d1ce59dea8e134704f9245fe829a89745687889eb97bf5b2731", + "vacatedChars": 94252, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1354, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1337, + "stemsTotal": 1680, + "stemsVacated": 1167, + "tokensTotal": 16000, + "tokensVacated": 6094, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.2896875, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.32100389418780717, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.017375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.30325, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.679375, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "skoufenty", + "pretty": "streeshum", + "run": "run", + "eat": "ben", + "jump": "byll", + "away": "bepaip", + "squirrel": "straull", + "funny": "krunel", + "today": "refon", + "gum": "fles", + "hang": "hang", + "crown": "strearm", + "candlestick": "vormenent", + "crooked": "rieged", + "diddle": "diddle", + "moon": "smorft", + "pussy": "flyble", + "goose": "brarsp", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "f7511cad9d20af366bcc81253d75d70025b443db601adb21ccfc9300580c5266" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed0-p0.75", + "map": "seed0", + "params": { + "p": 0.75, + "seed": 0, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE PRIRLK\n WIELKOW BRARSP\n\n _Trirmousered by_\nZoot Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nSkoufenty Bo-Peep\nSkoufenty Boy Gea\nRain\nThe Snuch\nWinter\nTitows and Smurlks\nA Squrvididish Shyf\nStruv Vard and Her Cat\nThree Kliesowle on the Ice\nDroalls Brem\nThe Garr Plaispy Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nSkoufenty Bylling Boub\nPat-a-Cake\nNiedum a", + "vacatedSha256": "92e04ff4355517b4f75aaa319a004ff4fc4e139bd3fc01f719529dbbc126ffbb", + "vacatedChars": 94493, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1448, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1430, + "stemsTotal": 1680, + "stemsVacated": 1247, + "tokensTotal": 16000, + "tokensVacated": 6412, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.2898125, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3208627892274251, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0164375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.3180625, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.6655, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "skoufenty", + "pretty": "streeshum", + "run": "run", + "eat": "ben", + "jump": "byll", + "away": "bepaip", + "squirrel": "straull", + "funny": "krunel", + "today": "refon", + "gum": "fles", + "hang": "hang", + "crown": "strearm", + "candlestick": "vormenent", + "crooked": "rieged", + "diddle": "diddle", + "moon": "smorft", + "pussy": "flyble", + "goose": "brarsp", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "b88bd63106535d3a146a6dea89205f573b8a0db3fd8e835cb5b42d6260bc111a" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed0-p1.0", + "map": "seed0", + "params": { + "p": 1.0, + "seed": 0, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE PRIRLK\n WIELKOW BRARSP\n\n _Trirmousered by_\nZoot Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nSkoufenty Bo-Peep\nSkoufenty Sim Gea\nSkarf\nThe Snuch\nSwaper\nTitows and Smurlks\nA Squrvididish Shyf\nStruv Vard and Her Chooz\nThree Kliesowle on the Karn\nDroalls Brem\nThe Garr Plaispy Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nSkoufenty Bylling Boub\nPat-a-Cake\nNied", + "vacatedSha256": "b3ff676c578e5afa50dfd19ae4c0eff65e548f01de38eb87374e815d3bf89ba8", + "vacatedChars": 96883, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1944, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1922, + "stemsTotal": 1680, + "stemsVacated": 1680, + "tokensTotal": 16000, + "tokensVacated": 8202, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.2909375, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.32064071852342685, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.012, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.4040625, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.5839375, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "skoufenty", + "pretty": "streeshum", + "run": "jev", + "eat": "ben", + "jump": "byll", + "away": "bepaip", + "squirrel": "straull", + "funny": "krunel", + "today": "refon", + "gum": "fles", + "hang": "pruch", + "crown": "strearm", + "candlestick": "vormenent", + "crooked": "rieged", + "diddle": "kobleel", + "moon": "smorft", + "pussy": "flyble", + "goose": "brarsp", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "c85505db78d27d0680a5a1a54016b6342b89cde49b545acebe2673d4a81b4998" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed7-p0.0", + "map": "seed7", + "params": { + "p": 0.0, + "seed": 7, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\n", + "vacatedSha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c", + "vacatedChars": 86408, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 0, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 0, + "stemsTotal": 1680, + "stemsVacated": 0, + "tokensTotal": 16000, + "tokensVacated": 0, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.29, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3209324983421379, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0514375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.0, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.9485625, + "bijective": true, + "imageSize": 2233, + "remintRounds": 1 + }, + "stemForms": { + "little": "little", + "pretty": "pretty", + "run": "run", + "eat": "eat", + "jump": "jump", + "away": "away", + "squirrel": "squirrel", + "funny": "funny", + "today": "today", + "gum": "gum", + "hang": "hang", + "crown": "crown", + "candlestick": "candlestick", + "crooked": "crooked", + "diddle": "diddle", + "moon": "moon", + "pussy": "pussy", + "goose": "goose", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "2ba43046604884d431a9b8a503ae906a703235c578f7d588b877302c95b74983" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed7-p0.25", + "map": "seed7", + "params": { + "p": 0.25, + "seed": 7, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE KRARRD\n MOTHER KLOALK\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nLittle Bo-Peep\nLittle Boy Blue\nYurnk\nThe Clock\nZeller\nFingers and Toes\nA Seasonable Strieft\nSaun Trot and Her Florll\nThree Children on the Ice\nKroots Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nOld Mother Kloalk\nLittle Jumping Blarrn\nPat-a-Cake\nFrerkic and the Mar", + "vacatedSha256": "e80589ef836f343dbfb95e4e4f89b8d94c5ce2c374c9557bbec9ff45b2f72114", + "vacatedChars": 88629, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 440, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 434, + "stemsTotal": 1680, + "stemsVacated": 384, + "tokensTotal": 16000, + "tokensVacated": 1879, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.2899375, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3209952065373761, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0435625, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.093875, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.8625625, + "bijective": true, + "imageSize": 2233, + "remintRounds": 1 + }, + "stemForms": { + "little": "little", + "pretty": "mienle", + "run": "run", + "eat": "eat", + "jump": "jump", + "away": "unpryng", + "squirrel": "squirrel", + "funny": "funny", + "today": "rekurd", + "gum": "gum", + "hang": "smeeg", + "crown": "trif", + "candlestick": "candlestick", + "crooked": "crooked", + "diddle": "gnoozzleel", + "moon": "glet", + "pussy": "pussy", + "goose": "kloalk", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "06921a8029f1b69a9fd1f52a9e2b66c93f2573396c7ebeea5a11e91f67a5befd" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed7-p0.35", + "map": "seed7", + "params": { + "p": 0.35, + "seed": 7, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE KRARRD\n MOTHER KLOALK\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nLittle Bo-Peep\nLittle Boy Blue\nYurnk\nThe Clock\nZeller\nFingers and Toes\nA Seasonable Strieft\nSaun Shrurll and Her Florll\nThree Children on the Ice\nKroots Patch\nThe Kir Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nKir Mother Kloalk\nLittle Jumping Blarrn\nPat-a-Cake\nFrerkic and the ", + "vacatedSha256": "56dd28fe1ad3c925fdca2e7aca94de205a7992aba902a1cb19d7ad743f817960", + "vacatedChars": 89404, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 662, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 655, + "stemsTotal": 1680, + "stemsVacated": 577, + "tokensTotal": 16000, + "tokensVacated": 2746, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.2899375, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.320770368963141, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0433125, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.1355625, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.821125, + "bijective": true, + "imageSize": 2233, + "remintRounds": 1 + }, + "stemForms": { + "little": "little", + "pretty": "mienle", + "run": "maik", + "eat": "eat", + "jump": "jump", + "away": "unpryng", + "squirrel": "squirrel", + "funny": "funny", + "today": "rekurd", + "gum": "thrern", + "hang": "smeeg", + "crown": "trif", + "candlestick": "candlestick", + "crooked": "crooked", + "diddle": "gnoozzleel", + "moon": "glet", + "pussy": "pussy", + "goose": "kloalk", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "b60ddf4590bdca13aa13eb65ee4f1ce8dd840c4eeb6dfa4cf8b49d27e7bb5ee1" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed7-p0.5", + "map": "seed7", + "params": { + "p": 0.5, + "seed": 7, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE KRARRD\n SORISH KLOALK\n\n _Illustrated by_\nBlanche Fisher Chouth\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nShooventy Bo-Peep\nShooventy Boy Brermp\nYurnk\nThe Desp\nZeller\nYeebys and Spoults\nA Smeapicumen Strieft\nSaun Shrurll and Her Florll\nThree Children on the Ice\nKroots Patch\nThe Kir Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nKir Sorish Kloalk\nShooventy Scerrking Blarrn\nPat-a-Cake\nF", + "vacatedSha256": "3166e1c857398c7a3bbb94e77c8b5accda4874e0c4ef53462664cab7c2f531b1", + "vacatedChars": 91826, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 985, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 975, + "stemsTotal": 1680, + "stemsVacated": 849, + "tokensTotal": 16000, + "tokensVacated": 4289, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.290125, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.32048243825352346, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.025125, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.208625, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.76625, + "bijective": true, + "imageSize": 2233, + "remintRounds": 1 + }, + "stemForms": { + "little": "shooventy", + "pretty": "mienle", + "run": "maik", + "eat": "drult", + "jump": "scerrk", + "away": "unpryng", + "squirrel": "squirrel", + "funny": "funny", + "today": "rekurd", + "gum": "thrern", + "hang": "smeeg", + "crown": "trif", + "candlestick": "candlestick", + "crooked": "crooked", + "diddle": "gnoozzleel", + "moon": "glet", + "pussy": "frarsish", + "goose": "kloalk", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "91913e4d037886983b6e9d7c67ce2b0d68ef87fb74f061fb21093cc9928d0888" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed7-p0.7", + "map": "seed7", + "params": { + "p": 0.7, + "seed": 7, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE KRARRD\n SORISH KLOALK\n\n _Wermishened by_\nBlanche Fisher Chouth\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nShooventy Bo-Peep\nShooventy Boy Brermp\nYurnk\nThe Desp\nZeller\nYeebys and Spoults\nA Smeapicumen Strieft\nSaun Shrurll and Her Florll\nThree Broarmidy on the Ice\nKroots Patch\nThe Kir Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nKir Sorish Kloalk\nShooventy Scerrking Blarrn\nPat-a-Cake\n", + "vacatedSha256": "88e3d28102bccbeab9195d107d1b22dac7b535025334ae354b0586d26b0c2271", + "vacatedChars": 93436, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1349, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1336, + "stemsTotal": 1680, + "stemsVacated": 1164, + "tokensTotal": 16000, + "tokensVacated": 5841, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.2909375, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3207724075193964, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0195625, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.286, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.6944375, + "bijective": true, + "imageSize": 2233, + "remintRounds": 1 + }, + "stemForms": { + "little": "shooventy", + "pretty": "mienle", + "run": "maik", + "eat": "drult", + "jump": "scerrk", + "away": "unpryng", + "squirrel": "squirrel", + "funny": "vezzleum", + "today": "rekurd", + "gum": "thrern", + "hang": "smeeg", + "crown": "trif", + "candlestick": "strooftishish", + "crooked": "prufed", + "diddle": "gnoozzleel", + "moon": "glet", + "pussy": "frarsish", + "goose": "kloalk", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "fafd1902158b2c9108240295d7046d42557bf4be3eee894a517791f06beb33d4" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed7-p0.75", + "map": "seed7", + "params": { + "p": 0.75, + "seed": 7, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE KRARRD\n SORISH KLOALK\n\n _Wermishened by_\nPirv Fisher Chouth\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nShooventy Bo-Peep\nShooventy Boy Brermp\nYurnk\nThe Desp\nZeller\nYeebys and Spoults\nA Smeapicumen Strieft\nSaun Shrurll and Her Florll\nThree Broarmidy on the Ice\nKroots Patch\nThe Kir Fliespous Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nKir Sorish Kloalk\nShooventy Scerrking Blarrn\nPat-a-Cake", + "vacatedSha256": "82434ac3737bd7cfa810bba9cb22b23811887d9e0ca9dfa2071a377420b43753", + "vacatedChars": 94023, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1455, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1440, + "stemsTotal": 1680, + "stemsVacated": 1255, + "tokensTotal": 16000, + "tokensVacated": 6241, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.29125, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3215548164343356, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.018875, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.3063125, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.6748125, + "bijective": true, + "imageSize": 2233, + "remintRounds": 1 + }, + "stemForms": { + "little": "shooventy", + "pretty": "mienle", + "run": "maik", + "eat": "drult", + "jump": "scerrk", + "away": "unpryng", + "squirrel": "squirrel", + "funny": "vezzleum", + "today": "rekurd", + "gum": "thrern", + "hang": "smeeg", + "crown": "trif", + "candlestick": "strooftishish", + "crooked": "prufed", + "diddle": "gnoozzleel", + "moon": "glet", + "pussy": "frarsish", + "goose": "kloalk", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "5367d0740cb247060a718707f6987be9362b2138a245b138b5a454af2b682124" + }, + "mapVocabWordsRejects": false + }, + { + "label": "seed7-p1.0", + "map": "seed7", + "params": { + "p": 1.0, + "seed": 7, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE KRARRD\n SORISH KLOALK\n\n _Wermishened by_\nPirv Smausker Chouth\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nShooventy Bo-Peep\nShooventy Skurth Brermp\nYurnk\nThe Desp\nZeller\nYeebys and Spoults\nA Smeapicumen Strieft\nSaun Shrurll and Her Florll\nThree Broarmidy on the Skach\nKroots Ploank\nThe Kir Fliespous Under a Drier\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nKir Sorish Kloalk\nShooventy Scerrking Blarrn\nP", + "vacatedSha256": "263b8dd3733dbf4802a2bc4c74fb905388062952e45931e4ebcd561cbd4e76df", + "vacatedChars": 96334, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1944, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1922, + "stemsTotal": 1680, + "stemsVacated": 1680, + "tokensTotal": 16000, + "tokensVacated": 8202, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.291125, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.32142168255740294, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.012, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.4040625, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.5839375, + "bijective": true, + "imageSize": 2233, + "remintRounds": 1 + }, + "stemForms": { + "little": "shooventy", + "pretty": "mienle", + "run": "maik", + "eat": "drult", + "jump": "scerrk", + "away": "unpryng", + "squirrel": "tielk", + "funny": "vezzleum", + "today": "rekurd", + "gum": "thrern", + "hang": "smeeg", + "crown": "trif", + "candlestick": "strooftishish", + "crooked": "prufed", + "diddle": "gnoozzleel", + "moon": "glet", + "pussy": "frarsish", + "goose": "kloalk", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "8ada5171ddcbeeee2b16e1e6a2f0f87fbfc0891985d04d863f469c81ff0b453f" + }, + "mapVocabWordsRejects": false + }, + { + "label": "noprosody-p0.7", + "map": "seed0-noprosody", + "params": { + "p": 0.7, + "seed": 0, + "consistent": true, + "matchProsody": false, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE PRIRLK\n WIELK BRARSP\n\n _Trirmed by_\nBlanche Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nStrek Bo-Peep\nStrek Boy Gea\nRain\nThe Snuch\nWinter\nTits and Smurlks\nA Squrv Shyf\nStruv Vard and Her Cat\nThree Klies on the Ice\nDroalls Brem\nThe Garr Plaisp Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielk Brarsp\nStrek Bylling Boub\nPat-a-Cake\nNied and the Meez\nSqorl Buff\nA Melanchol", + "vacatedSha256": "4e19fffc82f8ca95bbab20ecc1c8a900d5339c01a98017d644a848d7290a6720", + "vacatedChars": 89070, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1354, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1337, + "stemsTotal": 1680, + "stemsVacated": 1167, + "tokensTotal": 16000, + "tokensVacated": 6094, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.1546875, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.2863732246262396, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.017375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.30325, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.679375, + "bijective": true, + "imageSize": 2233, + "remintRounds": 1 + }, + "stemForms": { + "little": "strek", + "pretty": "streesh", + "run": "run", + "eat": "ben", + "jump": "byll", + "away": "squz", + "squirrel": "straull", + "funny": "krun", + "today": "krurrd", + "gum": "fles", + "hang": "hang", + "crown": "strearm", + "candlestick": "vorm", + "crooked": "rieged", + "diddle": "diddle", + "moon": "smorft", + "pussy": "flyb", + "goose": "brarsp", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "a6cc85fd6a6701ef705037bb140c1ae7f84361fbfea5bebbc290d79635713a3b" + }, + "mapVocabWordsRejects": false + }, + { + "label": "noprosody-p1.0", + "map": "seed0-noprosody", + "params": { + "p": 1.0, + "seed": 0, + "consistent": true, + "matchProsody": false, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE PRIRLK\n WIELK BRARSP\n\n _Trirmed by_\nZoot Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nStrek Bo-Peep\nStrek Sim Gea\nSkarf\nThe Snuch\nSwaper\nTits and Smurlks\nA Squrv Shyf\nStruv Vard and Her Chooz\nThree Klies on the Karn\nDroalls Brem\nThe Garr Plaisp Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielk Brarsp\nStrek Bylling Boub\nPat-a-Cake\nNied and the Meez\nSqorl Buff\nA Torsly S", + "vacatedSha256": "512e8f77a256ef49f83bbf662b62f551e00079bb8b826f590ed8f8b21acbfe4a", + "vacatedChars": 89713, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1944, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1922, + "stemsTotal": 1680, + "stemsVacated": 1680, + "tokensTotal": 16000, + "tokensVacated": 8202, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.1075625, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.274221010365592, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.012, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.4040625, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.5839375, + "bijective": true, + "imageSize": 2233, + "remintRounds": 1 + }, + "stemForms": { + "little": "strek", + "pretty": "streesh", + "run": "horlk", + "eat": "ben", + "jump": "byll", + "away": "squz", + "squirrel": "straull", + "funny": "krun", + "today": "krurrd", + "gum": "fles", + "hang": "pruch", + "crown": "strearm", + "candlestick": "vorm", + "crooked": "rieged", + "diddle": "norrn", + "moon": "smorft", + "pussy": "flyb", + "goose": "brarsp", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "15e3942f859b92940a17647051408a9acf8cab91d50f14a7dab2c324349d5c3f" + }, + "mapVocabWordsRejects": false + }, + { + "label": "control-inconsistent", + "map": "control-inconsistent", + "params": { + "p": 0.7, + "seed": 0, + "consistent": false, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE GLAIRN\n SCIRRDER PLERNT\n\n _Wroormowyed by_\nBlanche Thursper Styn\n\n1916\n\n\n\nA HURF OF THE YORCKES\n\nWrerken Bo-Peep\nFlorlkish Boy Poun\nRain\nThe Sqyft\nWinter\nNietens and Klisks\nA Gnuntingenle Jai\nSculk Mursh and Her Cat\nThree Thoochous on the Ice\nNefs Gask\nThe Soamp Therltle Under a Gloang\nTweedle-Dum and Tweedle-Dee\nOh Steb!\nSwouck Felkid Rarp\nSqarbley Yersking Snof\nPat-a-Cake\nStoabent ", + "vacatedSha256": "e8565c25a3958c14a2d29c14fc401e1618e98bf86a81aa52d288105e963c9326", + "vacatedChars": 94216, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1354, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1337, + "stemsTotal": 1680, + "stemsVacated": 1167, + "tokensTotal": 16000, + "tokensVacated": 6094, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.273375, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3233955374015627, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.017375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.3034375, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.6791875, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": null, + "idStream": null, + "mapVocabWordsRejects": true, + "knownDivergence": { + "cause": "the per-occurrence mint derives its stress pattern from different strings. \u00a75.8 pins the KEY as f'{stem}#{idx}' and \u00a75.5's mint reads its pattern off the string it is handed, so Python calls _mint('little#0') and gets stress('little#0') = '10' (2 syllables, via the spelling rule, because 'little#0' is not in the hand table); TypeScript computes stress('little') = '100' (3 syllables, from the table) and passes the key only to the byte stream. \u00a77.1 defines matchProsody as 'the nonce carries THE STEM's syllable count and stress', and \u00a710 defines stressFromMinted as the pattern we registered for a form \u2014 both of which describe the stem's prosody, not a synthetic key's, so TypeScript's reading is the contract's. The contract pins the key and is silent on the pattern; that silence is the gap. Only the minted FORMS differ: every count, including tokensVacated and both vacated-type counts, agrees exactly, so the control still measures what SC-705 says it does.", + "status": "reported, unfixed \u2014 neither implementation was modified to build this fixture. Both readings are pinned exactly, so fixing either stack turns vacancyGolden.test.ts red at this block and the exemption cannot outlive the defect.", + "fields": [ + { + "field": "vacatedSha256", + "python": "e8565c25a3958c14a2d29c14fc401e1618e98bf86a81aa52d288105e963c9326", + "typescript": "610a0d8375890ec68a788457b957d248e5e8a279644fc5b339aa7849451a68cf" + }, + { + "field": "vacatedChars", + "python": 94216, + "typescript": 94748 + }, + { + "field": "stats.meanSyllablesAfter", + "python": 1.273375, + "typescript": 1.28975 + }, + { + "field": "stats.meanAnapestAfter", + "python": 0.3233955374015627, + "typescript": 0.3215726757806852 + }, + { + "field": "stats.stressFromMintedAfter", + "python": 0.3034375, + "typescript": 0.303375 + }, + { + "field": "stats.stressFromRuleAfter", + "python": 0.6791875, + "typescript": 0.67925 + }, + { + "field": "head400", + "python": " THE GLAIRN\n SCIRRDER PLERNT\n\n _Wroormowyed by_\nBlanche Thursper Styn\n\n1916\n\n\n\nA HURF OF THE YORCKES\n\nWrerken Bo-Peep\nFlorlkish Boy Poun\nRain\nThe Sqyft\nWinter\nNietens and Klisks\nA Gnuntingenle Jai\nSculk Mursh and Her Cat\nThree Thoochous on the Ice\nNefs Gask\nThe Soamp Therltle Under a Gloang\nTweedle-Dum and Tweedle-Dee\nOh Steb!\nSwouck Felkid Rarp\nSqarbley Yersking Snof\nPat-a-Cake\nStoabent ", + "typescript": " THE GLAIRN\n SCIRRDER PLERNT\n\n _Wroormowyed by_\nBlanche Thursper Styn\n\n1916\n\n\n\nA HURF OF THE YORCKES\n\nWrerkenle Bo-Peep\nFlorlkishle Boy Poun\nRain\nThe Sqyft\nWinter\nNietens and Klisks\nA Gnuntingenle Jai\nSculk Mursh and Her Cat\nThree Thoochousish on the Ice\nNefs Gask\nThe Soamp Therltle Under a Gloang\nTweedle-Dum and Tweedle-Dee\nOh Steb!\nSwouck Felkid Rarp\nLainowid Yersking Snof\nPat-a-Cake\nSt" + } + ] + } + }, + { + "label": "control-reveal-after-2", + "map": "control-reveal-after-2", + "params": { + "p": 0.7, + "seed": 0, + "consistent": true, + "matchProsody": true, + "revealAfter": 2, + "keep": [] + }, + "head400": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nSkoufenty Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbrea", + "vacatedSha256": "c3eb24f1d280ec4855055f69fd2ff27883ff485d70e047e7f70dff4c4c99a543", + "vacatedChars": 92183, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1354, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 665, + "stemsTotal": 1680, + "stemsVacated": 1167, + "tokensTotal": 16000, + "tokensVacated": 4205, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.2898125, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.32100662220258347, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.02025, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.2174375, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.7623125, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": null, + "idStream": null, + "mapVocabWordsRejects": true, + "knownDivergence": { + "cause": "corpusTypesVacated: Python MEASURES it from the two texts (vacancy.py::vacancy_stats), TypeScript computes it through the map (vacancy.ts::countTypes). They agree everywhere except revealAfter > 0, where a type all of whose occurrences fall inside the reveal window stays English in the text while the map still assigns it a nonce. \u00a710 defines corpusTypes* as what the panel shows a READER \u2014 i.e. what the text does \u2014 so the measured reading is the contract's and countTypes over-reports by 2x in exactly the condition this control exists to measure. countTypes's own comment argues condition-independence only for consistent = false, where it is right; it is silent on revealAfter, where it is wrong.", + "status": "reported, unfixed \u2014 neither implementation was modified to build this fixture. Both readings are pinned exactly, so fixing either stack turns vacancyGolden.test.ts red at this block and the exemption cannot outlive the defect.", + "fields": [ + { + "field": "stats.corpusTypesVacated", + "python": 665, + "typescript": 1337 + } + ] + } + } + ], + "nesting": { + "seed": 0, + "map": "seed0", + "levels": [ + { + "p": 0.0, + "stems": [] + }, + { + "p": 0.35, + "stems": [ + "adieu", + "admittance", + "advice", + "agree", + "alehouse", + "alley", + "alphabetical", + "appoint", + "around", + "arrow", + "art", + "ask", + "aunt", + "bak", + "bare", + "bark", + "bean", + "bear", + "bed", + "beetle", + "begin", + "beginn", + "begun", + "believe", + "belleisle", + "bes", + "bessy", + "bett", + "big", + "bil", + "bill", + "bird", + "bit", + "bite", + "bitt", + "bles", + "blind", + "blue", + "bobby", + "bolin", + "bombay", + "bone", + "bonnet", + "bonny", + "bough", + "bounc", + "bow", + "bowl", + "box", + "bramble", + "brandy", + "bras", + "bright", + "bristol", + "broke", + "broken", + "brook", + "brother", + "brought", + "brown", + "build", + "bull", + "bullet", + "butt", + "button", + "bye", + "cage", + "cake", + "calf", + "cap", + "captain", + "car", + "care", + "cast", + "catch", + "chair", + "chamb", + "chanc", + "charley", + "chid", + "chief", + "child", + "children", + "chimney", + "chirrup", + "choice", + "choose", + "christen", + "claw", + "clean", + "clergyman", + "clerk", + "clothe", + "cloudy", + "cobbler", + "colt", + "come", + "comin", + "compliment", + "contrary", + "contrive", + "cost", + "count", + "cover", + "cream", + "creep", + "crept", + "cri", + "croak", + "crook", + "cros", + "crumb", + "cutery", + "daddy", + "daff", + "daffodil", + "dainti", + "dame", + "dapple", + "darlington", + "daughter", + "day", + "dear", + "death", + "deck", + "dee", + "deep", + "delve", + "diamond", + "dick", + "dickery", + "dickory", + "dicky", + "die", + "died", + "difficult", + "ding", + "dish", + "dishy", + "dog", + "don", + "door", + "doubt", + "drak", + "dreary", + "dress", + "driv", + "drive", + "dropp", + "drum", + "duck", + "dumpl", + "dumpling", + "dumpty", + "dun", + "dwell", + "eat", + "egg", + "eith", + "else", + "elspeth", + "england", + "enough", + "etc", + "etticoat", + "evil", + "eye", + "fail", + "fair", + "fall", + "fan", + "fare", + "fast", + "fat", + "fear", + "feather", + "fed", + "feed", + "feet", + "fell", + "fifteen", + "fight", + "fill", + "find", + "fing", + "finger", + "fire", + "fit", + "flinder", + "floor", + "flow", + "flower", + "flute", + "fool", + "footman", + "forev", + "forgot", + "forth", + "fought", + "found", + "fourteen", + "fourth", + "france", + "friday", + "frighten", + "frump", + "full", + "fun", + "gallant", + "gallop", + "gamberal", + "gand", + "gang", + "gap", + "gather", + "gentleman", + "georgy", + "goe", + "goest", + "going", + "goose", + "gown", + "grace", + "gray", + "greenwood", + "grew", + "griev", + "grundy", + "half", + "hall", + "hand", + "handkerchief", + "handy", + "hard", + "hare", + "hart", + "hath", + "hatter", + "haystack", + "healthy", + "heel", + "hem", + "hero", + "herring", + "hickory", + "hide", + "higgledy", + "high", + "highnes", + "hill", + "hillock", + "home", + "honey", + "hood", + "horn", + "horrid", + "horseshoe", + "house", + "hubbard", + "humpty", + "hunt", + "hurry", + "jag", + "jam", + "jerry", + "jig", + "jog", + "john", + "joke", + "joyou", + "jump", + "ken", + "kept", + "kettle", + "kiss", + "kite", + "knave", + "knee", + "knife", + "knight", + "knock", + "laddie", + "lady", + "ladybird", + "lan", + "land", + "lark", + "late", + "laugh", + "lauk", + "least", + "led", + "leed", + "leg", + "lengthen", + "lent", + "let", + "lett", + "like", + "load", + "lol", + "london", + "longman", + "look", + "lov", + "love", + "low", + "mad", + "made", + "maid", + "main", + "mamma", + "man", + "many", + "margaret", + "market", + "marr", + "mary", + "match", + "matt", + "mayor", + "mean", + "meat", + "meet", + "mercy", + "merri", + "mice", + "mickle", + "middle", + "mis", + "mischievou", + "moisty", + "mol", + "more", + "morning", + "mortal", + "mother", + "motion", + "mouse", + "mow", + "mrs", + "multiplication", + "music", + "myself", + "nag", + "nancy", + "nasty", + "nibble", + "niggledy", + "nimble", + "nob", + "nor", + "north", + "noth", + "old", + "orange", + "oth", + "pail", + "pan", + "pandy", + "parson", + "patch", + "pear", + "penny", + "perhap", + "picture", + "pie", + "pip", + "plain", + "plast", + "poker", + "pony", + "pooh", + "poppety", + "porgy", + "porring", + "posses", + "potato", + "pound", + "practice", + "prayer", + "princes", + "prod", + "proper", + "pull", + "quarrel", + "quick", + "rabbit", + "rac", + "ran", + "rapp", + "rare", + "ready", + "real", + "reason", + "redbreast", + "rest", + "rhym", + "rhyme", + "ribbon", + "ride", + "rig", + "right", + "rise", + "riv", + "robin", + "robinson", + "rock", + "rode", + "rook", + "rough", + "round", + "rule", + "safe", + "said", + "sailor", + "sam", + "same", + "saw", + "seam", + "seasonable", + "see", + "seen", + "selfsame", + "sell", + "sempster", + "send", + "septemb", + "seventeen", + "shalt", + "sheep", + "shepherdes", + "shilling", + "shine", + "shiv", + "shod", + "shook", + "shop", + "shoreditch", + "shorn", + "short", + "show", + "siege", + "sigh", + "sill", + "silv", + "simon", + "simple", + "skipp", + "slatherum", + "slice", + "slipper", + "slitherum", + "smith", + "snipe", + "soft", + "someth", + "son", + "soon", + "sound", + "sow", + "sparrow", + "spent", + "spid", + "splish", + "spoil", + "sport", + "sprat", + "spry", + "squirrel", + "staff", + "steal", + "steel", + "stew", + "stiff", + "stile", + "stone", + "stood", + "storm", + "story", + "stout", + "strange", + "street", + "strife", + "strong", + "stump", + "stumpaty", + "sung", + "sup", + "surprise", + "sweep", + "swum", + "tack", + "tail", + "tale", + "talk", + "tarr", + "tarry", + "taste", + "tatter", + "taught", + "test", + "thank", + "thi", + "thief", + "thing", + "think", + "thirty", + "threescore", + "throat", + "throw", + "thrush", + "thu", + "thursday", + "thy", + "tick", + "til", + "till", + "tim", + "tinker", + "tir", + "tisha", + "tobago", + "today", + "told", + "tong", + "took", + "top", + "touch", + "tramp", + "trick", + "tripe", + "trot", + "trott", + "trow", + "true", + "try", + "tuck", + "twa", + "twelve", + "unto", + "upon", + "use", + "vast", + "venture", + "vinegar", + "visit", + "vow", + "waggl", + "wait", + "wak", + "wake", + "walnut", + "want", + "wash", + "wealthy", + "wear", + "weath", + "wedd", + "wee", + "weep", + "welshman", + "went", + "whatev", + "wherev", + "whipp", + "whitechapel", + "whith", + "whoop", + "willie", + "wing", + "winkle", + "winter", + "wire", + "wise", + "wiv", + "woman", + "women", + "wool", + "word", + "worm", + "wrap", + "wren", + "wright", + "yard", + "yes", + "young" + ] + }, + { + "p": 0.7, + "stems": [ + "abc", + "adieu", + "admittance", + "advice", + "afraid", + "aft", + "age", + "agree", + "ain", + "alabone", + "alack", + "alehouse", + "alive", + "alley", + "alone", + "along", + "alphabet", + "alphabetical", + "ampersand", + "ann", + "answer", + "apple", + "appoint", + "april", + "around", + "arrow", + "art", + "ask", + "asleep", + "ate", + "aught", + "aunt", + "away", + "awhile", + "aye", + "babylon", + "bachelor", + "back", + "backward", + "bacon", + "bad", + "bade", + "bag", + "bailey", + "bak", + "bake", + "baker", + "balloon", + "bare", + "bark", + "barm", + "barn", + "barrel", + "battle", + "bean", + "bear", + "beat", + "beaten", + "bed", + "bedtime", + "bee", + "beef", + "beetle", + "began", + "beggar", + "begin", + "beginn", + "begun", + "behind", + "believe", + "bell", + "belleisle", + "bent", + "bes", + "bessy", + "best", + "bett", + "bid", + "big", + "bigg", + "bil", + "bill", + "bird", + "bit", + "bite", + "bitt", + "bitten", + "black", + "bleak", + "bleat", + "bles", + "blind", + "blis", + "blithe", + "blow", + "blue", + "boat", + "bobby", + "boggen", + "boil", + "bolin", + "bombay", + "bone", + "bonnet", + "bonnie", + "bonny", + "born", + "bottle", + "bough", + "bounc", + "bow", + "bowl", + "box", + "bramble", + "brandy", + "bras", + "bray", + "brickbat", + "bride", + "bright", + "bristol", + "broke", + "broken", + "brook", + "brother", + "brought", + "brown", + "buckl", + "buckle", + "build", + "built", + "bull", + "bullet", + "bullfinch", + "bump", + "bun", + "bunt", + "burial", + "bush", + "butt", + "button", + "bye", + "cage", + "cake", + "calf", + "came", + "candle", + "candlestick", + "cap", + "captain", + "car", + "care", + "carr", + "carrion", + "cast", + "catch", + "caught", + "ceas", + "ceil", + "cellar", + "chain", + "chair", + "chamb", + "champ", + "chanc", + "charley", + "cherry", + "chid", + "chief", + "child", + "children", + "chimney", + "chin", + "chirrup", + "choice", + "choose", + "chopp", + "christen", + "cinder", + "city", + "claw", + "clay", + "clean", + "clergyman", + "clerk", + "cloak", + "clock", + "cloth", + "clothe", + "cloudy", + "coachman", + "coal", + "coat", + "cobbler", + "cobweb", + "codlin", + "coffee", + "cold", + "cole", + "colt", + "come", + "comin", + "compliment", + "consid", + "consider", + "contrary", + "contrive", + "copp", + "coral", + "corn", + "cost", + "count", + "cov", + "cover", + "cow", + "cream", + "creep", + "crept", + "cri", + "croak", + "crook", + "cros", + "crow", + "crown", + "crumb", + "crusoe", + "cry", + "cup", + "cupboard", + "cur", + "currant", + "cushy", + "custard", + "cutery", + "daddy", + "daff", + "daffodil", + "dainti", + "dainty", + "dam", + "dame", + "danc", + "dang", + "dapple", + "dare", + "darlington", + "daught", + "daughter", + "day", + "dear", + "death", + "deceit", + "decide", + "deck", + "declar", + "dee", + "deed", + "deep", + "delight", + "delve", + "derby", + "determin", + "diamond", + "dick", + "dickery", + "dickory", + "dicky", + "die", + "died", + "difficult", + "ding", + "dinkety", + "dish", + "dishy", + "division", + "dock", + "doe", + "doff", + "dog", + "dol", + "doll", + "dollar", + "dolly", + "don", + "doo", + "doodle", + "door", + "dost", + "doubt", + "dov", + "dove", + "dozen", + "drak", + "drake", + "dreamt", + "dreary", + "dress", + "drink", + "driv", + "drive", + "dropp", + "drove", + "drum", + "drumm", + "duck", + "dumpl", + "dumpling", + "dumpty", + "dun", + "durst", + "dusty", + "dwell", + "dwelt", + "ear", + "earth", + "eat", + "egg", + "eighteen", + "eith", + "else", + "elspeth", + "empty", + "england", + "enough", + "equal", + "espi", + "etc", + "etticoat", + "everyone", + "evil", + "eye", + "face", + "fail", + "fair", + "fall", + "fan", + "fare", + "farmer", + "fast", + "fat", + "fear", + "feast", + "feath", + "feather", + "fed", + "feed", + "feet", + "fell", + "fetch", + "fiddl", + "fiddle", + "fiddler", + "field", + "fifteen", + "fight", + "fill", + "fin", + "find", + "fing", + "finger", + "fire", + "first", + "fish", + "fishy", + "fit", + "flame", + "flapp", + "fleece", + "flew", + "flinder", + "floor", + "flow", + "flower", + "flute", + "fly", + "fol", + "folk", + "fool", + "footman", + "forc", + "forev", + "forgot", + "forth", + "fost", + "fought", + "found", + "fourteen", + "fourth", + "france", + "friday", + "frighten", + "fruit", + "fruiterer", + "frump", + "full", + "fun", + "funny", + "gai", + "gall", + "gallant", + "gallop", + "gamberal", + "game", + "gand", + "gang", + "gap", + "garden", + "gather", + "geese", + "gent", + "gentleman", + "gentlemen", + "georgy", + "gett", + "gil", + "girl", + "giving", + "gloucest", + "goat", + "gobbl", + "god", + "goe", + "goest", + "going", + "gold", + "gone", + "good", + "goose", + "got", + "gown", + "grace", + "grandmoth", + "gras", + "gray", + "greedy", + "green", + "greenwood", + "grew", + "griev", + "grim", + "grocer", + "grow", + "gruel", + "grundy", + "gum", + "hair", + "half", + "halfpenny", + "hall", + "hame", + "hand", + "handkerchief", + "handsome", + "handy", + "hard", + "hare", + "hark", + "harrow", + "hart", + "hath", + "hatter", + "hay", + "haystack", + "healthy", + "hear", + "heart", + "hector", + "heel", + "heighty", + "helen", + "help", + "hem", + "hen", + "hero", + "herring", + "hey", + "hickety", + "hickory", + "hid", + "hide", + "higgledy", + "high", + "highnes", + "highway", + "hill", + "hillock", + "himself", + "hire", + "hobble", + "hog", + "hold", + "holiday", + "home", + "hon", + "honey", + "honor", + "hood", + "hopp", + "horn", + "horrid", + "hors", + "horse", + "horseshoe", + "hosier", + "hot", + "hound", + "house", + "hubbard", + "humpty", + "hunt", + "hurry", + "hurt", + "hush", + "huzza", + "icicle", + "ill", + "illustrat", + "instead", + "ive", + "jacky", + "jag", + "jam", + "jerry", + "jig", + "joan", + "jog", + "john", + "joke", + "jol", + "joyou", + "jump", + "june", + "ken", + "kept", + "kettl", + "kettle", + "key", + "kill", + "kind", + "king", + "kiss", + "kite", + "kitten", + "kitty", + "knave", + "knee", + "knife", + "knight", + "knock", + "kyloe", + "laddie", + "lady", + "ladybird", + "laid", + "lal", + "lam", + "lan", + "land", + "lane", + "lark", + "lass", + "latch", + "late", + "laugh", + "lauk", + "lay", + "lea", + "lead", + "lean", + "leap", + "least", + "leath", + "leave", + "led", + "lee", + "leed", + "left", + "leg", + "lend", + "lengthen", + "lent", + "let", + "lett", + "lick", + "life", + "like", + "lin", + "lion", + "list", + "little", + "littleman", + "liv", + "live", + "load", + "lol", + "london", + "long", + "longman", + "look", + "lord", + "lost", + "loud", + "lov", + "love", + "low", + "lump", + "lumpety", + "mad", + "made", + "maid", + "main", + "make", + "mamma", + "mammy", + "man", + "many", + "mare", + "margaret", + "margery", + "mark", + "market", + "marr", + "marry", + "mary", + "match", + "matt", + "mayor", + "meadow", + "mean", + "meat", + "meet", + "mercy", + "merri", + "merrymen", + "met", + "mice", + "mickle", + "middle", + "mil", + "mild", + "milk", + "mintery", + "minute", + "mire", + "mis", + "mischievou", + "mist", + "mistaken", + "mistres", + "misty", + "moisty", + "mol", + "money", + "monkey", + "monstrou", + "moon", + "more", + "morning", + "mortal", + "mother", + "motion", + "mourn", + "mouse", + "mouth", + "move", + "mow", + "mrs", + "much", + "multiplication", + "music", + "muskidun", + "mutton", + "myself", + "nag", + "nancy", + "narrow", + "nasty", + "naughty", + "nay", + "needle", + "neith", + "new", + "next", + "nibble", + "nice", + "niggledy", + "night", + "nightgown", + "nimble", + "nob", + "nobleman", + "nodd", + "noise", + "noon", + "nor", + "north", + "notch", + "noth", + "often", + "old", + "ope", + "orange", + "oth", + "oven", + "owl", + "pail", + "pair", + "pan", + "pancake", + "pandy", + "pap", + "papa", + "parent", + "parson", + "pas", + "pat", + "patch", + "pay", + "peace", + "peaceable", + "peacock", + "pear", + "pease", + "peep", + "penny", + "people", + "perhap", + "peter", + "petticoat", + "piccadil", + "pick", + "pickety", + "pickl", + "picture", + "pie", + "piece", + "pig", + "pigeon", + "piggledy", + "pin", + "pinch", + "pint", + "piou", + "pip", + "piper", + "pippen", + "plac", + "plain", + "plast", + "plate", + "playfellow", + "playmat", + "plenty", + "point", + "poker", + "pony", + "pooh", + "poor", + "poppety", + "porgy", + "porridge", + "porring", + "pos", + "posses", + "pot", + "potato", + "pound", + "practice", + "pray", + "prayer", + "pretti", + "pretty", + "prick", + "prince", + "princes", + "prod", + "promis", + "proper", + "pudding", + "pull", + "pussy", + "put", + "quack", + "quarrel", + "queen", + "quick", + "rabbit", + "rac", + "ran", + "rapp", + "rare", + "rat", + "rattle", + "raw", + "reach", + "ready", + "real", + "reason", + "red", + "redbreast", + "reigate", + "request", + "rest", + "return", + "rhym", + "rhyme", + "ribbon", + "rice", + "rich", + "rid", + "riddle", + "ride", + "rig", + "right", + "ring", + "rise", + "riv", + "rob", + "robber", + "robin", + "robinson", + "rock", + "rode", + "rook", + "room", + "rough", + "round", + "row", + "rule", + "rye", + "saddle", + "safe", + "said", + "sailor", + "sam", + "same", + "sang", + "sat", + "saw", + "say", + "scholar", + "school", + "schoolroom", + "sea", + "seal", + "seam", + "seasonable", + "see", + "seek", + "seen", + "seldom", + "selfsame", + "sell", + "sempster", + "send", + "septemb", + "serv", + "servant", + "serve", + "set", + "seventeen", + "shalt", + "shave", + "shaven", + "shed", + "sheep", + "shelf", + "shell", + "shepherdes", + "shilling", + "shine", + "ship", + "shiv", + "shod", + "shook", + "shoot", + "shop", + "shoreditch", + "shorn", + "short", + "show", + "shower", + "shroud", + "shut", + "sick", + "siege", + "sigh", + "silk", + "sill", + "silv", + "simon", + "simple", + "sing", + "sir", + "sit", + "skin", + "skipp", + "slash", + "slatherum", + "sleepy", + "slend", + "slice", + "slipper", + "slitherum", + "slow", + "sly", + "small", + "smile", + "smith", + "snapp", + "sneez", + "snipe", + "snook", + "snow", + "sobb", + "soft", + "solomon", + "someth", + "son", + "song", + "soon", + "sore", + "sound", + "sow", + "spain", + "sparrow", + "spent", + "spid", + "spilt", + "spin", + "spinn", + "splash", + "splish", + "spoil", + "spoke", + "spoon", + "sport", + "sprat", + "spry", + "squirrel", + "staff", + "stair", + "stand", + "start", + "stay", + "steal", + "steel", + "stepney", + "stepp", + "stew", + "stiff", + "stile", + "stone", + "stood", + "stopp", + "storm", + "story", + "stout", + "str", + "straight", + "strang", + "strange", + "straw", + "stray", + "street", + "strife", + "strong", + "strow", + "struck", + "stump", + "stumpaty", + "such", + "sue", + "sukey", + "summer", + "sun", + "sung", + "sunshine", + "sunshiny", + "sup", + "suppose", + "sure", + "surprise", + "swarm", + "sweep", + "sweet", + "swimm", + "swoon", + "swum", + "table", + "tack", + "tail", + "take", + "tale", + "talk", + "talkative", + "tarr", + "tarry", + "taste", + "tatter", + "taught", + "tavern", + "tea", + "tell", + "test", + "thank", + "thi", + "thick", + "thief", + "thing", + "think", + "third", + "thirteen", + "thirty", + "thistle", + "thou", + "thought", + "thousand", + "thread", + "threescore", + "thrive", + "throat", + "throw", + "thrush", + "thu", + "thumb", + "thursday", + "thy", + "tick", + "tickl", + "til", + "till", + "tim", + "time", + "tinker", + "tip", + "tipple", + "tir", + "tis", + "tisha", + "tittlemouse", + "tobago", + "today", + "toe", + "togeth", + "told", + "toll", + "tom", + "tommy", + "tong", + "tongue", + "took", + "top", + "torch", + "torn", + "tos", + "toss", + "touch", + "town", + "tramp", + "trap", + "tri", + "trick", + "trip", + "tripe", + "trot", + "trott", + "troubl", + "trow", + "true", + "try", + "tuck", + "turn", + "turnip", + "twa", + "tweedle", + "twelve", + "twenty", + "twill", + "twitchett", + "unicorn", + "unto", + "upon", + "upstair", + "use", + "vale", + "vast", + "velvet", + "venture", + "vexation", + "victual", + "vinegar", + "visit", + "visitor", + "vow", + "waggl", + "wait", + "wak", + "wake", + "wall", + "walnut", + "wand", + "want", + "ware", + "wash", + "watch", + "watt", + "way", + "wealthy", + "wear", + "weath", + "wedd", + "wee", + "weep", + "well", + "welshman", + "went", + "west", + "whatev", + "wheel", + "whenev", + "wherev", + "whey", + "whipp", + "whitechapel", + "whith", + "whoop", + "wife", + "wig", + "wild", + "wildernes", + "wilkin", + "willie", + "wilt", + "wind", + "window", + "wing", + "winkle", + "winter", + "wip", + "wipe", + "wire", + "wise", + "wish", + "within", + "without", + "wiv", + "woman", + "women", + "woo", + "woodbin", + "wool", + "word", + "world", + "worm", + "worri", + "worry", + "wrap", + "wren", + "wright", + "write", + "yard", + "yea", + "year", + "yellow", + "yes", + "young" + ] + }, + { + "p": 1.0, + "stems": [ + "abc", + "abroad", + "adieu", + "admittance", + "advice", + "afraid", + "aft", + "age", + "agree", + "ain", + "air", + "alabone", + "alack", + "ale", + "alehouse", + "alive", + "alley", + "almanac", + "alone", + "along", + "alphabet", + "alphabetical", + "alway", + "amble", + "ampersand", + "angry", + "ann", + "announce", + "anoth", + "answer", + "appl", + "apple", + "appoint", + "april", + "arm", + "around", + "arrow", + "art", + "ask", + "asleep", + "ate", + "aught", + "aunt", + "away", + "awhile", + "awoke", + "axe", + "aye", + "baa", + "babby", + "baby", + "babylon", + "bachelor", + "back", + "backward", + "bacon", + "bad", + "bade", + "bag", + "bailey", + "bak", + "bake", + "baker", + "ball", + "balloon", + "banbury", + "bandy", + "barb", + "barber", + "bare", + "bark", + "barley", + "barm", + "barn", + "barrel", + "basket", + "bat", + "battle", + "bead", + "bean", + "bear", + "beat", + "beaten", + "bed", + "bedtime", + "bee", + "beef", + "beehive", + "beer", + "beetle", + "began", + "beggar", + "begin", + "beginn", + "begun", + "behind", + "believe", + "bell", + "belleisle", + "bend", + "bent", + "berr", + "bes", + "beside", + "bessy", + "best", + "betsy", + "bett", + "betty", + "betwixt", + "bid", + "big", + "bigg", + "bil", + "bill", + "bind", + "bird", + "birthday", + "bit", + "bite", + "bitt", + "bitten", + "black", + "blackbird", + "blacksmith", + "blanche", + "ble", + "bleak", + "bleat", + "bles", + "blessing", + "blind", + "blis", + "blithe", + "blood", + "blow", + "blue", + "blush", + "boat", + "bob", + "bobby", + "body", + "boggen", + "boil", + "boldero", + "bolin", + "bombay", + "bone", + "bonn", + "bonnet", + "bonnie", + "bonny", + "book", + "born", + "bottle", + "bough", + "bought", + "bounc", + "bow", + "bowl", + "box", + "boy", + "bramble", + "brandy", + "bras", + "bray", + "bread", + "break", + "breech", + "brew", + "bri", + "brickbat", + "bride", + "bridge", + "bridle", + "bright", + "bring", + "bristol", + "broke", + "broken", + "brook", + "broom", + "broth", + "brother", + "brought", + "brown", + "buckl", + "buckle", + "build", + "built", + "bull", + "bullet", + "bullfinch", + "bump", + "bumpety", + "bun", + "bunch", + "bunt", + "buri", + "burial", + "burnie", + "burnt", + "bush", + "butt", + "button", + "buy", + "bye", + "cabin", + "caesar", + "cage", + "cake", + "calf", + "call", + "came", + "canary", + "candl", + "candle", + "candlestick", + "candy", + "cannot", + "cant", + "cap", + "captain", + "car", + "care", + "carr", + "carri", + "carrion", + "carry", + "carv", + "cast", + "cat", + "catch", + "caught", + "ceas", + "ceil", + "cellar", + "chain", + "chair", + "chamb", + "champ", + "chanc", + "charley", + "che", + "cheek", + "cheese", + "cherry", + "chicken", + "chid", + "chief", + "child", + "children", + "chimney", + "chin", + "chirp", + "chirrup", + "choice", + "choose", + "chopp", + "christen", + "christma", + "cinder", + "city", + "clap", + "claw", + "clay", + "clean", + "clear", + "clergyman", + "clerk", + "clev", + "cloak", + "clock", + "cloth", + "clothe", + "cloudy", + "coachman", + "coal", + "coat", + "cobbler", + "cobweb", + "cock", + "codlin", + "coffee", + "coffin", + "cold", + "cole", + "collar", + "colt", + "com", + "comb", + "come", + "comfit", + "comical", + "comin", + "command", + "compare", + "compliment", + "consid", + "consider", + "contrary", + "contrive", + "coo", + "copp", + "coral", + "corn", + "corner", + "cost", + "cottage", + "count", + "court", + "cov", + "cover", + "cow", + "crackabone", + "cradle", + "cream", + "creep", + "crept", + "cri", + "croak", + "crook", + "cros", + "crow", + "crown", + "crumb", + "crumpl", + "crusoe", + "cry", + "cup", + "cupboard", + "cur", + "curd", + "curl", + "currant", + "curtsy", + "cushion", + "cushy", + "custard", + "cut", + "cutery", + "daddie", + "daddy", + "daff", + "daffodil", + "dainti", + "dainty", + "dairy", + "dam", + "dame", + "danc", + "dance", + "dang", + "dapple", + "dare", + "dark", + "darlington", + "dat", + "daught", + "daughter", + "daw", + "dawson", + "day", + "dead", + "dear", + "deary", + "death", + "deceit", + "decide", + "deck", + "declar", + "ded", + "dee", + "deed", + "deep", + "delight", + "delve", + "derby", + "determin", + "dew", + "diamond", + "dick", + "dickery", + "dickory", + "dicky", + "diddle", + "die", + "died", + "diet", + "difficult", + "dig", + "dill", + "ding", + "dinkety", + "dinn", + "dirty", + "dish", + "dishy", + "displeas", + "ditch", + "division", + "dob", + "dock", + "doctor", + "doe", + "doff", + "dog", + "dol", + "doll", + "dollar", + "dolly", + "don", + "dong", + "donkey", + "doo", + "doodle", + "door", + "dost", + "doth", + "doubt", + "dov", + "dove", + "downstair", + "dozen", + "drak", + "drake", + "draw", + "dream", + "dreamt", + "dreary", + "dres", + "dress", + "drink", + "driv", + "drive", + "dropp", + "drove", + "drown", + "drum", + "drumm", + "dry", + "duck", + "dumpl", + "dumpling", + "dumpty", + "dun", + "durst", + "dusty", + "dwell", + "dwelt", + "ear", + "earth", + "east", + "eat", + "egg", + "eighteen", + "eith", + "eleven", + "elizabeth", + "ell", + "else", + "elspeth", + "empty", + "end", + "england", + "enough", + "equal", + "espi", + "etc", + "etticoat", + "evermore", + "everyone", + "evil", + "except", + "exet", + "eye", + "face", + "fail", + "fair", + "fall", + "fan", + "fare", + "farm", + "farmer", + "farth", + "farthing", + "fast", + "fat", + "father", + "fear", + "feast", + "feath", + "feather", + "february", + "fed", + "feed", + "feet", + "fell", + "fellow", + "fetch", + "fiddl", + "fiddle", + "fiddler", + "fie", + "field", + "fife", + "fifteen", + "fight", + "fill", + "fin", + "find", + "fine", + "fing", + "finger", + "fir", + "fire", + "first", + "fish", + "fishy", + "fit", + "flame", + "flapp", + "fleece", + "fleet", + "flew", + "flinder", + "flock", + "floor", + "flour", + "flow", + "flower", + "flung", + "flute", + "fly", + "fol", + "folk", + "fond", + "fool", + "foot", + "footman", + "forc", + "forehead", + "foreman", + "forev", + "forgot", + "forlorn", + "forth", + "fortune", + "forward", + "fost", + "fought", + "found", + "fourpence", + "fourteen", + "fourth", + "france", + "fred", + "freeze", + "fret", + "friday", + "frighten", + "frosty", + "fruit", + "fruiterer", + "frump", + "frumpaty", + "full", + "fun", + "funny", + "gai", + "gall", + "gallant", + "gallop", + "gamberal", + "game", + "gand", + "gang", + "gap", + "garden", + "garter", + "gate", + "gather", + "gave", + "gay", + "geese", + "gent", + "gentle", + "gentleman", + "gentlemen", + "georgy", + "get", + "gett", + "giblet", + "gil", + "girl", + "give", + "giving", + "gloucest", + "goat", + "gobbl", + "gobble", + "god", + "goe", + "goest", + "going", + "gold", + "goldfinch", + "gone", + "good", + "goose", + "goosey", + "got", + "gotham", + "gown", + "grace", + "grandmoth", + "gras", + "grave", + "gravel", + "gray", + "great", + "greedy", + "green", + "greenwood", + "grew", + "griev", + "grim", + "grin", + "groat", + "grocer", + "ground", + "grow", + "gruel", + "grundy", + "guinea", + "gum", + "gun", + "hair", + "half", + "halfpence", + "halfpenny", + "hall", + "hame", + "hand", + "handkerchief", + "handsome", + "handy", + "hang", + "happen", + "hard", + "hare", + "hark", + "harm", + "harrow", + "hart", + "hat", + "hath", + "hatter", + "hawk", + "hay", + "haystack", + "hea", + "head", + "healthy", + "hear", + "heard", + "heart", + "hearty", + "heav", + "hector", + "heel", + "heighty", + "helen", + "help", + "hem", + "hen", + "hero", + "herring", + "hey", + "hickery", + "hickety", + "hickory", + "hid", + "hide", + "higgledy", + "high", + "highnes", + "highway", + "hill", + "hillock", + "himself", + "hire", + "hobble", + "hog", + "hold", + "hole", + "holiday", + "home", + "hon", + "honey", + "honor", + "hood", + "hop", + "hope", + "hopp", + "horn", + "horrid", + "hors", + "horse", + "horseshoe", + "hose", + "hosier", + "hot", + "hound", + "hour", + "house", + "housetop", + "hubbard", + "huff", + "humpty", + "hundr", + "hung", + "hunt", + "hurry", + "hurt", + "husband", + "hush", + "huzza", + "ice", + "icicle", + "ifs", + "ill", + "illustrat", + "inde", + "ink", + "instead", + "intery", + "iron", + "ive", + "jack", + "jacky", + "jag", + "jam", + "jelf", + "jen", + "jenny", + "jerry", + "jig", + "jiggety", + "jill", + "jingle", + "joan", + "jog", + "john", + "johnny", + "joke", + "jol", + "joy", + "joyou", + "july", + "jump", + "june", + "keep", + "ken", + "kept", + "kettl", + "kettle", + "key", + "kilkenny", + "kill", + "kind", + "king", + "kingdom", + "kirk", + "kis", + "kiss", + "kit", + "kitchen", + "kite", + "kitten", + "kitty", + "knave", + "kne", + "knee", + "knife", + "knight", + "knock", + "know", + "kyloe", + "lad", + "ladd", + "laddie", + "laden", + "lady", + "ladybird", + "lag", + "laid", + "lal", + "lam", + "lamb", + "lan", + "land", + "lane", + "lard", + "lark", + "lass", + "last", + "latch", + "late", + "laugh", + "lauk", + "lay", + "lea", + "lead", + "lean", + "leap", + "least", + "leath", + "leav", + "leave", + "led", + "lee", + "leed", + "left", + "leg", + "lend", + "lengthen", + "lent", + "les", + "let", + "lett", + "lick", + "lie", + "life", + "lift", + "light", + "like", + "lin", + "linen", + "linnet", + "lion", + "list", + "little", + "littleman", + "liv", + "live", + "load", + "lock", + "locket", + "lol", + "london", + "long", + "longman", + "look", + "lord", + "lost", + "loud", + "lov", + "love", + "low", + "luck", + "lucy", + "lump", + "lumpety", + "mad", + "made", + "maid", + "maiden", + "main", + "maintain", + "mak", + "make", + "malt", + "mamma", + "mammie", + "mammy", + "man", + "many", + "march", + "mare", + "margaret", + "margery", + "mark", + "market", + "marr", + "marri", + "marry", + "martin", + "mary", + "mast", + "master", + "match", + "matt", + "maybe", + "mayor", + "meadow", + "meal", + "mean", + "meat", + "meet", + "melancho", + "men", + "mend", + "merchant", + "mercy", + "merri", + "merry", + "merrymen", + "met", + "mew", + "mice", + "mickle", + "middle", + "mil", + "mild", + "mile", + "milk", + "mill", + "mind", + "mine", + "mintery", + "minute", + "mire", + "mis", + "mischievou", + "miss", + "mist", + "mistaken", + "mistres", + "misty", + "moisty", + "mol", + "monday", + "money", + "monkey", + "monstrou", + "moon", + "moppet", + "more", + "morn", + "morning", + "mortal", + "mother", + "motion", + "mourn", + "mouse", + "mouth", + "mov", + "move", + "mow", + "mrs", + "much", + "muffet", + "mulberry", + "multiplication", + "music", + "muskidun", + "mutton", + "myself", + "nag", + "nail", + "nam", + "name", + "nan", + "nancy", + "nanny", + "narrow", + "nasty", + "naught", + "naughty", + "nay", + "neary", + "neat", + "neck", + "needl", + "needle", + "neighbor", + "neith", + "nest", + "new", + "next", + "nibble", + "nice", + "niggledy", + "night", + "nightgown", + "nimble", + "nineteen", + "nob", + "nobleman", + "nobody", + "nodd", + "noise", + "noon", + "nor", + "north", + "norwich", + "nose", + "notch", + "note", + "noth", + "novemb", + "now", + "oak", + "often", + "old", + "ope", + "open", + "orange", + "organ", + "oth", + "oven", + "owe", + "owl", + "own", + "packet", + "pail", + "pair", + "pan", + "pancake", + "pandy", + "pantry", + "pap", + "papa", + "parent", + "parlor", + "parrot", + "parson", + "party", + "pas", + "pat", + "patch", + "pay", + "peace", + "peaceable", + "peacock", + "pear", + "pease", + "peck", + "pedlar", + "peep", + "pen", + "penny", + "people", + "pepper", + "perhap", + "pet", + "peter", + "petticoat", + "physician", + "piccadil", + "pick", + "pickety", + "pickl", + "picture", + "pie", + "piece", + "pieman", + "pig", + "pigeon", + "piggledy", + "pin", + "pinch", + "pint", + "piou", + "pip", + "pipe", + "piper", + "pippen", + "pitch", + "plac", + "plain", + "plast", + "plat", + "plate", + "platt", + "play", + "playfellow", + "playmat", + "please", + "plenty", + "plum", + "pocket", + "pocketful", + "point", + "poker", + "pol", + "poll", + "pony", + "pooh", + "poor", + "poppety", + "porgy", + "porridge", + "porring", + "pos", + "posses", + "pot", + "potato", + "pound", + "powd", + "practice", + "pray", + "prayer", + "pretti", + "pretty", + "pri", + "prick", + "prince", + "princes", + "prithee", + "prod", + "promis", + "proper", + "protector", + "proud", + "psalm", + "pudd", + "pudding", + "puddle", + "pull", + "pumpkin", + "pussy", + "put", + "puzzle", + "quack", + "quarrel", + "queen", + "quick", + "quiet", + "quite", + "rabbit", + "rac", + "rag", + "rage", + "rain", + "ram", + "ran", + "rapp", + "rare", + "rat", + "rattle", + "raven", + "raw", + "reach", + "read", + "ready", + "real", + "reason", + "receive", + "red", + "redbreast", + "reel", + "reigate", + "remedy", + "repartee", + "repli", + "request", + "resolv", + "rest", + "return", + "rhym", + "rhyme", + "ribbon", + "rice", + "rich", + "richard", + "rid", + "riddle", + "ride", + "rig", + "right", + "ring", + "ringman", + "rise", + "riv", + "roast", + "rob", + "robber", + "robert", + "robin", + "robinson", + "rock", + "rode", + "rog", + "roll", + "rook", + "room", + "root", + "ros", + "rosy", + "rough", + "round", + "row", + "rule", + "run", + "runn", + "rush", + "rye", + "sabbath", + "sack", + "saddle", + "safe", + "sage", + "sago", + "said", + "sail", + "sailor", + "salt", + "sam", + "same", + "sang", + "sat", + "saturday", + "saw", + "say", + "scar", + "scarce", + "scarlet", + "scholar", + "school", + "schoolroom", + "scotch", + "scratch", + "scuttle", + "sea", + "seal", + "seam", + "seasonable", + "second", + "see", + "seed", + "seek", + "seen", + "seldom", + "selfsame", + "sell", + "sempster", + "send", + "sent", + "septemb", + "serv", + "servant", + "serve", + "set", + "seventeen", + "sew", + "shaftoe", + "shake", + "shalt", + "shape", + "shave", + "shaven", + "shed", + "sheep", + "shelf", + "shell", + "shepherdes", + "shilling", + "shin", + "shine", + "ship", + "shiv", + "sho", + "shod", + "shoe", + "shook", + "shoot", + "shop", + "shoreditch", + "shorn", + "short", + "shot", + "show", + "shower", + "shroud", + "shut", + "sick", + "side", + "siege", + "sieve", + "sigh", + "silk", + "sill", + "silv", + "simon", + "simple", + "sing", + "single", + "sir", + "sister", + "sit", + "sitt", + "sixpence", + "sixteen", + "skin", + "skipp", + "sky", + "slash", + "slat", + "slatherum", + "sleep", + "sleepy", + "slend", + "slice", + "slid", + "slipper", + "slitherum", + "slow", + "sly", + "small", + "smile", + "smith", + "smok", + "snail", + "snap", + "snapp", + "sneez", + "sneeze", + "sniff", + "snipe", + "snook", + "snow", + "snuff", + "sobb", + "soft", + "sold", + "solomon", + "someth", + "son", + "song", + "soon", + "sore", + "sorrow", + "sorrowful", + "soul", + "sound", + "south", + "sow", + "spade", + "spain", + "sparrow", + "speak", + "spell", + "spend", + "spent", + "spice", + "spid", + "spilt", + "spin", + "spinn", + "spit", + "splash", + "splish", + "spoil", + "spoke", + "spoon", + "sport", + "spr", + "sprat", + "spright", + "spry", + "spun", + "squirrel", + "staff", + "stair", + "stand", + "star", + "start", + "stay", + "steal", + "steel", + "stepney", + "stepp", + "stew", + "stick", + "stiff", + "stile", + "stingy", + "stock", + "stole", + "stone", + "stood", + "stop", + "stopp", + "storm", + "story", + "stout", + "str", + "straight", + "straightway", + "strang", + "strange", + "straw", + "strawberr", + "stray", + "street", + "strife", + "strong", + "strow", + "struck", + "stump", + "stumpaty", + "such", + "sue", + "sugar", + "sukey", + "sulky", + "summ", + "summer", + "sun", + "sunday", + "sung", + "sunshine", + "sunshiny", + "sup", + "supp", + "suppose", + "sure", + "surprise", + "surrey", + "swan", + "swarm", + "sweep", + "sweet", + "swim", + "swimm", + "swine", + "swoon", + "sword", + "swore", + "swum", + "table", + "tack", + "taffy", + "tail", + "tailor", + "tak", + "take", + "tale", + "talk", + "talkative", + "tapp", + "tar", + "tarr", + "tarry", + "tart", + "taste", + "tatter", + "taught", + "tavern", + "tea", + "tear", + "tee", + "teeth", + "tell", + "test", + "thank", + "thee", + "thi", + "thick", + "thief", + "thigh", + "thing", + "think", + "third", + "thirteen", + "thirty", + "thistle", + "thorn", + "thou", + "thought", + "thousand", + "thread", + "threescore", + "threw", + "thrive", + "throat", + "throw", + "thrush", + "thu", + "thumb", + "thumbkin", + "thump", + "thumpaty", + "thursday", + "thy", + "thyself", + "tick", + "tickl", + "tie", + "tied", + "til", + "till", + "tim", + "time", + "tinker", + "tip", + "tipple", + "tir", + "tis", + "tisha", + "tittlemouse", + "tobago", + "today", + "toe", + "togeth", + "told", + "toll", + "tom", + "tommy", + "tong", + "tongu", + "tongue", + "took", + "top", + "torch", + "torn", + "tos", + "toss", + "touch", + "town", + "toy", + "tramp", + "trap", + "tre", + "tree", + "trencher", + "tri", + "trick", + "trip", + "tripe", + "tripp", + "trot", + "trott", + "troubl", + "trouble", + "trow", + "trowel", + "true", + "try", + "tuck", + "tuesday", + "tuffet", + "tumbl", + "tune", + "turn", + "turnip", + "twa", + "twaddle", + "twee", + "tweedle", + "twelve", + "twenty", + "twiddle", + "twig", + "twill", + "twitchett", + "twopence", + "undertaker", + "unicorn", + "unto", + "upon", + "upstair", + "upward", + "use", + "used", + "ush", + "vale", + "vast", + "velvet", + "venture", + "vex", + "vexation", + "victual", + "vinegar", + "visit", + "visitor", + "vow", + "wag", + "waggl", + "wail", + "wainscot", + "wait", + "wak", + "wake", + "walk", + "wall", + "walnut", + "wand", + "want", + "ware", + "warm", + "wash", + "wat", + "watch", + "watt", + "way", + "wealthy", + "wear", + "weath", + "wed", + "wedd", + "wednesday", + "wee", + "weed", + "week", + "weep", + "welcome", + "well", + "welshman", + "went", + "west", + "whale", + "whatev", + "wheel", + "wheelbarrow", + "whenev", + "wherev", + "whey", + "whip", + "whipp", + "whistle", + "white", + "whitechapel", + "whith", + "whoop", + "wife", + "wig", + "wil", + "wild", + "wildernes", + "wilkin", + "willie", + "wilt", + "wind", + "window", + "wine", + "wing", + "winkie", + "winkle", + "wint", + "winter", + "wip", + "wipe", + "wire", + "wise", + "wish", + "within", + "without", + "wiv", + "woe", + "woman", + "women", + "wond", + "wondrou", + "woo", + "wood", + "woodbin", + "wool", + "word", + "work", + "world", + "worm", + "worri", + "worry", + "worse", + "worth", + "wrap", + "wren", + "wright", + "write", + "wrote", + "yard", + "yea", + "year", + "yellow", + "yes", + "yon", + "young" + ] + } + ] + } +} diff --git a/code/frontend/tests/unit/vacancyGolden.test.ts b/code/frontend/tests/unit/vacancyGolden.test.ts new file mode 100644 index 0000000..4182fa8 --- /dev/null +++ b/code/frontend/tests/unit/vacancyGolden.test.ts @@ -0,0 +1,623 @@ +/** + * Golden-vector parity for the VACANCY TRANSFORM: the TypeScript engine vs the real + * Python one, on the real committed corpus. + * + * `specs/007-vacancy-transform-field/architecture.md` §11 requires this file and names + * exactly what it must pin. SC-706 requires the two implementations to agree — strings and + * id streams EXACTLY, floats within `tolerance`. This test is that proof, and it follows + * `lexGolden.test.ts` (feature 006) and `geoEngine.test.ts` (feature 003): a Python script + * runs the REAL backend and writes what it measured; this file runs the REAL browser + * engine against the same inputs and asserts. + * + * The fixture is `tests/fixtures/vacancy-golden.json`, regenerated by + * + * python scripts/export_vacancy_golden.py + * + * and it records the git sha, the command, the corpus digest and each case's parameters. + * `TOLERANCE` is read FROM the file rather than declared here, so the exporter and this + * test cannot drift apart — the same discipline `lexGolden.test.ts` keeps. + * + * WHAT IS PINNED, per §11: + * + * 1. `vacancyU` for 24 stems spanning eligible/ineligible and both budgets, compared as + * the EXACT double. That exactness is the point of departure 2 (§4): `u` shifts a + * 64-bit digest right by 11 before dividing by 2^53, so the numerator is exactly + * representable and Python and JavaScript get THE SAME double rather than two + * neighbours that straddle a `p` boundary. + * 2. The FULL stem -> nonce map at seed 0 and seed 7 — every pair, both directions of + * the size check, plus `remintRounds` / `bijective` / `imageSize`. + * 3. The first 400 characters of the vacated corpus at each `p`, exactly; plus the + * sha256 of the WHOLE 86 kB rewrite, which is the same assertion at 64 bytes. + * 4. Every §10 statistic, at `p in {0, 0.25, 0.35, 0.5, 0.7, 0.75, 1}` and both seeds. + * 5. Nesting as explicit SETS: `vacated(0.35) ⊆ vacated(0.7) ⊆ vacated(1)`, checked + * against the literal stem lists rather than against an assertion this language makes + * about itself (SC-701). + * 6. Stability: each pinned stem's surface form at every `p`, and — derived across the + * cases — the fact that it is byte-identical at every `p` where the stem is vacated + * (SC-702). + * 7. The token-id-stream digest under the mapped vocabulary at each `p`. All of them are + * EQUAL, across both seeds and both `matchProsody` settings: the invariance theorem + * of §7.3 / SC-703 pinned as DATA rather than as an assertion written twice. + * 8. Both control conditions and both `matchProsody` settings. + * + * COMPARISON RULE. Strings, digests, counts, booleans and `u` are compared with `toBe` — + * exact. Only the six prosody means (`meanSyllables*`, `meanAnapest*`, `stressFrom*`) use + * `tolerance`, and the measured worst deviation is printed at the end of the run so a + * silent creep toward the bound is visible. + * + * TWO KNOWN DIVERGENCES, pinned rather than hidden. Both are in the CONTROL conditions; + * every mapped-condition case — both seeds, both `matchProsody` settings, every `p` — + * agrees field for field, string for string, digest for digest. + * + * 1. `control-reveal-after-2`: `corpusTypesVacated` reads 665 in Python and 1337 here, + * because Python MEASURES the count from the two texts while `countTypes` computes it + * through the map. §10 defines `corpusTypes*` as what the panel shows a READER — i.e. + * what the text does — so the measured reading is the contract's, and this engine + * over-reports by 2x in exactly the condition the control exists to measure. + * 2. `control-inconsistent`: the two stacks mint DIFFERENT per-occurrence nonces, so the + * vacated text, its digest, its length and four prosody means differ. §5.8 pins the + * key as `${stem}#${idx}` and §5.5's mint reads its stress pattern off the string it + * is handed; Python passes the key and gets `stress("little#0") = "10"`, this engine + * computes `stress("little") = "100"` and passes the key only to the byte stream — + * `Little` becomes `Wrerken` there and `Wrerkenle` here. §7.1 defines `matchProsody` + * as "the nonce carries THE STEM's syllable count and stress", so this engine's + * reading is the contract's. Every count still agrees, `tokensVacated` included, so + * SC-705's measurement is unaffected. + * + * Both are reported, and NEITHER implementation was modified to make this fixture green. + * The fixture's `knownDivergence` block carries, per field, both values; this test asserts + * each side against its own, so fixing either stack turns this test red and the exemption + * cannot outlive the defect. + */ + +import { afterAll, describe, expect, it } from "vitest"; +import { createHash } from "node:crypto"; +import fs from "node:fs"; +import path from "node:path"; + +import { LexVocab, dolchBudget, tokenize } from "../../src/lib/lexEngine"; +import { tokenStream } from "../../src/lib/lexEngine/train"; +import { + buildVacancyMap, + effectiveKeepSet, + isEligible, + mapVocabWords, + stemAndSuffix, + transformWord, + vacancyDomain, + vacancyParams, + vacancyStats, + vacancyU, + vacateText, + type VacancyMap, + type VacancyParams, + type VacancyStats, +} from "../../src/lib/lexEngine/vacancy"; +import type { LexCorpusAsset } from "../../src/lib/staticClient/lex"; + +// --- the fixture ---------------------------------------------------------------------- + +interface GoldenStem { + stem: string; + eligible: boolean; + stemOf: string; + suffixOf: string; + inDomain: boolean; + inCorpus: boolean; + inDolchFull: boolean; + u: Record; +} + +interface GoldenMap { + label: string; + seed: number; + matchProsody: boolean; + remintRounds: number; + bijective: boolean; + imageSize: number; + domainSize: number; + mappingSize: number; + mappingSha256: string; + mapping: Record | null; + sampleNonces?: Record; +} + +interface GoldenIdStream { + digest: string; + length: number; + first16: number[]; + last16: number[]; + mappedWordsSha256: string; +} + +/** One field the two stacks disagree on, with BOTH readings — see the header. */ +interface GoldenDivergentField { + /** Either a case key (`head400`, `vacatedSha256`, `vacatedChars`) or `stats.`. */ + field: string; + python: string | number; + typescript: string | number; +} + +interface GoldenDivergence { + cause: string; + status: string; + fields: GoldenDivergentField[]; +} + +interface GoldenCase { + label: string; + map: string; + params: { + p: number; + seed: number; + consistent: boolean; + matchProsody: boolean; + revealAfter: number; + keep: string[]; + }; + head400: string; + vacatedSha256: string; + vacatedChars: number; + stats: Record; + stemForms: Record | null; + idStream: GoldenIdStream | null; + mapVocabWordsRejects: boolean; + knownDivergence?: GoldenDivergence; +} + +interface Golden { + format: string; + generated: string; + git_sha: string; + command: string; + contract: string; + tolerance: number; + corpus: { + sha256: string; + chars: number; + tokens: number; + corpusTypes: number; + domainSize: number; + budget: string; + budgetSize: number; + }; + stems: GoldenStem[]; + maps: GoldenMap[]; + cases: GoldenCase[]; + nesting: { seed: number; map: string; levels: { p: number; stems: string[] }[] }; +} + +const FIXTURE = path.resolve(__dirname, "../fixtures/vacancy-golden.json"); +const golden = JSON.parse(fs.readFileSync(FIXTURE, "utf-8")) as Golden; + +/** The contract's tolerance, read from the file so the two cannot drift (see the header). */ +const TOLERANCE = golden.tolerance; + +// --- the real corpus, the same bytes both stacks use ---------------------------------- + +const CORPUS_ASSET = path.resolve(__dirname, "../../public/static-data/lex/corpus.json"); +const CORPUS = (JSON.parse(fs.readFileSync(CORPUS_ASSET, "utf-8")) as LexCorpusAsset).text; +const CORPUS_TYPES = new Set(tokenize(CORPUS)); +const DOMAIN = vacancyDomain(CORPUS_TYPES); +const BUDGET_WORDS = dolchBudget("full"); + +const sha256 = (s: string): string => createHash("sha256").update(s, "utf8").digest("hex"); + +/** The exporter's canonical form for a map digest: `stem\tnonce\n`, stems ASCII-ascending. */ +function mappingSha256(mapping: ReadonlyMap): string { + const stems = [...mapping.keys()].sort(); + return sha256(stems.map((s) => `${s}\t${mapping.get(s)}\n`).join("")); +} + +function paramsOf(c: GoldenCase): VacancyParams { + return vacancyParams({ + p: c.params.p, + seed: c.params.seed, + consistent: c.params.consistent, + matchProsody: c.params.matchProsody, + revealAfter: c.params.revealAfter, + keep: c.params.keep, + }); +} + +/** + * A FRESH map per case, always. Under `consistent = false` the rewrite writes the stress + * pattern of every form it mints onto `vmap.mintedStress`, so a map shared between cases + * would score one case's text against another case's minted patterns. The exporter builds + * fresh maps for the controls for the same reason; doing it for every case here also + * proves that reuse is irrelevant in the mapped condition. + */ +function mapFor(params: VacancyParams): VacancyMap { + return buildVacancyMap(DOMAIN, params); +} + +/** The fixture's own reading of a field a `knownDivergence` block names. */ +function goldenField(gc: GoldenCase, field: string): string | number | boolean { + if (field.startsWith("stats.")) { + const name = field.slice("stats.".length); + const value = gc.stats[name]; + if (value === undefined) throw new Error(`vacancy-golden.json: no stat ${name}`); + return value; + } + if (field === "head400") return gc.head400; + if (field === "vacatedSha256") return gc.vacatedSha256; + if (field === "vacatedChars") return gc.vacatedChars; + throw new Error(`vacancy-golden.json: unknown divergence field ${field}`); +} + +/** Every float in this fixture is order-1 or smaller, so absolute deviation is the honest read. */ +const deviations: { what: string; dev: number }[] = []; +function expectClose(actual: number, expected: number, what: string): void { + const dev = Math.abs(actual - expected); + deviations.push({ what, dev }); + expect(dev, `${what}: ${actual} vs golden ${expected}`).toBeLessThanOrEqual(TOLERANCE); +} + +/** The §10 fields that are exact integers or booleans, and must compare with `toBe`. */ +const EXACT_STATS = [ + "domainTypesTotal", + "domainTypesEligible", + "domainTypesVacated", + "corpusTypesTotal", + "corpusTypesEligible", + "corpusTypesVacated", + "stemsTotal", + "stemsVacated", + "tokensTotal", + "tokensVacated", + "bijective", + "imageSize", + "remintRounds", +] as const; + +/** The §10 fields that are means, and are the ONLY things `tolerance` applies to. */ +const FLOAT_STATS = [ + "meanSyllablesBefore", + "meanSyllablesAfter", + "meanAnapestBefore", + "meanAnapestAfter", + "stressFromTableBefore", + "stressFromTableAfter", + "stressFromMintedBefore", + "stressFromMintedAfter", + "stressFromRuleBefore", + "stressFromRuleAfter", +] as const; + +// --- provenance ----------------------------------------------------------------------- + +describe("the fixture is the one this test was written against", () => { + it("declares its format, contract, tolerance and provenance", () => { + expect(golden.format).toBe("vacancy-golden-v1"); + expect(golden.contract).toBe("specs/007-vacancy-transform-field/architecture.md"); + expect(golden.command).toBe("python scripts/export_vacancy_golden.py"); + expect(golden.git_sha).toMatch(/^[0-9a-f]{40}$/); + expect(golden.generated).toMatch(/^\d{4}-\d{2}-\d{2}$/); + expect(TOLERANCE).toBeGreaterThan(0); + expect(TOLERANCE).toBeLessThanOrEqual(1e-5); + }); + + it("was generated from the same corpus bytes this engine is reading", () => { + // Not a formality: every nonce, every count and every digest below is a function of + // these bytes, so a fixture built from a different corpus would fail everywhere at + // once with no indication of why. + expect(sha256(CORPUS)).toBe(golden.corpus.sha256); + expect(CORPUS.length).toBe(golden.corpus.chars); + expect(tokenize(CORPUS).length).toBe(golden.corpus.tokens); + expect(CORPUS_TYPES.size).toBe(golden.corpus.corpusTypes); + expect(DOMAIN.length).toBe(golden.corpus.domainSize); + expect(golden.corpus.budget).toBe("dolch/full"); + expect(BUDGET_WORDS.length).toBe(golden.corpus.budgetSize); + }); +}); + +// --- 1. u(stem), exactly --------------------------------------------------------------- + +describe("u(stem) is THE SAME double in both languages (§4, departure 2)", () => { + const keep = effectiveKeepSet([]); + + it("pins 24 stems spanning eligible/ineligible and both budgets", () => { + expect(golden.stems).toHaveLength(24); + // The span §11 asks for is a property of the list, so it is asserted rather than + // assumed: a fixture of 24 ordinary words would pin nothing about the eligibility test. + expect(golden.stems.some((s) => s.eligible)).toBe(true); + expect(golden.stems.some((s) => !s.eligible)).toBe(true); + expect(golden.stems.some((s) => s.inDolchFull)).toBe(true); + expect(golden.stems.some((s) => s.inCorpus && !s.inDolchFull)).toBe(true); + expect(golden.stems.some((s) => !s.inCorpus && s.inDolchFull)).toBe(true); + }); + + for (const entry of golden.stems) { + it(`${entry.stem}: exact u at both seeds, and the same eligibility verdict`, () => { + // `toBe` on a double is deliberate. The `>> 11` in `vacancyU` exists precisely so + // that this is bit-exact; a tolerance here would hide the bug it was added to fix. + expect(vacancyU(entry.stem, 0)).toBe(entry.u["0"]); + expect(vacancyU(entry.stem, 7)).toBe(entry.u["7"]); + const [stem, suffix] = stemAndSuffix(entry.stem); + expect(stem).toBe(entry.stemOf); + expect(suffix).toBe(entry.suffixOf); + expect(isEligible(stem, keep)).toBe(entry.eligible); + expect(DOMAIN.includes(entry.stem)).toBe(entry.inDomain); + expect(CORPUS_TYPES.has(entry.stem)).toBe(entry.inCorpus); + expect(BUDGET_WORDS.includes(entry.stem)).toBe(entry.inDolchFull); + }); + } +}); + +// --- 2. the maps ------------------------------------------------------------------------ + +describe("the stem -> nonce map (§5.2)", () => { + for (const gm of golden.maps) { + it(`${gm.label}: reproduces Python's assignment`, () => { + const params = vacancyParams({ + seed: gm.seed, + matchProsody: gm.matchProsody, + // The control labels differ from the mapped condition only in knobs that do not + // reach minting, so the map is a pure function of (domain, seed, matchProsody); + // building it from the seed and the flag alone is itself part of the claim. + }); + const vmap = mapFor(params); + expect(vmap.remintRounds).toBe(gm.remintRounds); + expect(vmap.bijective).toBe(gm.bijective); + expect(vmap.imageSize).toBe(gm.imageSize); + expect(vmap.domain.size).toBe(gm.domainSize); + expect(vmap.mapping.size).toBe(gm.mappingSize); + expect(mappingSha256(vmap.mapping)).toBe(gm.mappingSha256); + + if (gm.mapping !== null) { + // The full map, pair by pair — §11 asks for every one at seeds 0 and 7. Both + // directions, so neither a missing stem nor an extra one can pass. + const expectedStems = Object.keys(gm.mapping); + expect(expectedStems).toHaveLength(vmap.mapping.size); + const mismatched: string[] = []; + for (const [stem, nonce] of Object.entries(gm.mapping)) { + if (vmap.mapping.get(stem) !== nonce) { + mismatched.push(`${stem}: ${vmap.mapping.get(stem)} != ${nonce}`); + } + } + expect(mismatched).toEqual([]); + for (const stem of vmap.mapping.keys()) expect(gm.mapping[stem]).toBeDefined(); + } + if (gm.sampleNonces !== undefined) { + for (const [stem, nonce] of Object.entries(gm.sampleNonces)) { + expect(vmap.mapping.get(stem) ?? null).toBe(nonce); + } + } + }); + } +}); + +// --- 3-4, 6-8. the measured cases ------------------------------------------------------- + +describe("the vacated corpus, its statistics and its id stream", () => { + for (const gc of golden.cases) { + it(`${gc.label}: matches Python`, () => { + const params = paramsOf(gc); + const vmap = mapFor(params); + // Order matters and it is Python's: the rewrite runs first, because under + // `consistent = false` it registers the minted stress patterns that the statistics + // then score the vacated side with. + const vacated = vacateText(CORPUS, vmap, params); + const stats: VacancyStats = vacancyStats(CORPUS, vacated, vmap, params); + + // A field the fixture flags as divergent is asserted against the MEASURED TypeScript + // reading, AND its Python reading is asserted to still differ. Two exact assertions, + // not a widened tolerance and not a skip: either stack changing fails one of them. + const diverging = new Map((gc.knownDivergence?.fields ?? []).map((f) => [f.field, f])); + const consumed = new Set(); + function reference(field: string): string | number | boolean { + const d = diverging.get(field); + if (d === undefined) return goldenField(gc, field); + consumed.add(field); + expect(goldenField(gc, field), `${gc.label}.${field} (python reading)`).toBe(d.python); + expect(d.python).not.toBe(d.typescript); + return d.typescript; + } + + // §11: strings compare EXACTLY. + expect(vacated.slice(0, 400), `${gc.label}.head400`).toBe(reference("head400")); + expect(vacated.length, `${gc.label}.vacatedChars`).toBe(reference("vacatedChars")); + expect(sha256(vacated), `${gc.label}.vacatedSha256`).toBe(reference("vacatedSha256")); + + for (const field of EXACT_STATS) { + expect(stats[field], `${gc.label}.${field}`).toBe(reference(`stats.${field}`)); + } + for (const field of FLOAT_STATS) { + expectClose(stats[field], reference(`stats.${field}`) as number, `${gc.label}.${field}`); + } + // No stale exemption may sit in the fixture unread. + expect([...consumed].sort()).toEqual([...diverging.keys()].sort()); + // The three-way stress split is token-weighted and sums to 1 on each side (§10). + expectClose( + stats.stressFromTableAfter + stats.stressFromMintedAfter + stats.stressFromRuleAfter, + 1, + `${gc.label}.stressSplitAfter sums to 1`, + ); + + // §11 stability: the surface form of each pinned stem at this `p`. + if (gc.stemForms !== null) { + for (const [stem, form] of Object.entries(gc.stemForms)) { + expect(transformWord(stem, vmap, params), `${gc.label}.stemForms.${stem}`).toBe(form); + } + } + + // §7.2 / §7.3: the id stream under the MAPPED vocabulary. + if (gc.idStream === null) { + expect(gc.mapVocabWordsRejects).toBe(true); + // Both stacks refuse: a mapped vocabulary in a control condition would be a word + // list matching no corpus, built without error. + expect(() => mapVocabWords(BUDGET_WORDS, vmap, params)).toThrow(); + } else { + expect(gc.mapVocabWordsRejects).toBe(false); + const mapped = mapVocabWords(BUDGET_WORDS, vmap, params); + expect(mapped).toHaveLength(BUDGET_WORDS.length); + expect(sha256(mapped.join("\n"))).toBe(gc.idStream.mappedWordsSha256); + const ids = tokenStream(vacated, new LexVocab(mapped, "dolch", "full")); + expect(ids.length).toBe(gc.idStream.length); + expect(ids.slice(0, 16)).toEqual(gc.idStream.first16); + expect(ids.slice(-16)).toEqual(gc.idStream.last16); + expect(sha256(ids.join(","))).toBe(gc.idStream.digest); + } + }); + } +}); + +// --- 5. nesting, as explicit sets (SC-701) --------------------------------------------- + +describe("nesting is a structural fact, checked against explicit sets (SC-701)", () => { + const gn = golden.nesting; + const vmap = mapFor(vacancyParams({ seed: gn.seed })); + + function vacatedStems(p: number): string[] { + const out: string[] = []; + for (const stem of vmap.mapping.keys()) if (vacancyU(stem, gn.seed) < p) out.push(stem); + return out.sort(); + } + + for (const level of gn.levels) { + it(`p = ${level.p}: the vacated stem set is exactly Python's ${level.stems.length}`, () => { + expect(vacatedStems(level.p)).toEqual(level.stems); + }); + } + + it("each level contains the one below it", () => { + for (let i = 1; i < gn.levels.length; i++) { + const smaller = new Set(gn.levels[i - 1].stems); + const larger = new Set(gn.levels[i].stems); + expect(larger.size).toBeGreaterThan(smaller.size); + for (const stem of smaller) { + expect(larger.has(stem), `${stem} vacated at ${gn.levels[i - 1].p} but not later`).toBe( + true, + ); + } + } + // At p = 1 every eligible stem vacates, since u ∈ [0, 1) by construction (§10). + const top = gn.levels[gn.levels.length - 1]; + expect(top.p).toBe(1); + expect(top.stems).toHaveLength(vmap.mapping.size); + }); +}); + +// --- 6. stability across p (SC-702) ----------------------------------------------------- + +describe("a stem's nonce is identical at every p where it is vacated (SC-702)", () => { + for (const gm of golden.maps.filter((m) => m.mapping !== null)) { + it(`${gm.label}: the pinned stems never change form as p grows`, () => { + const cases = golden.cases.filter((c) => c.map === gm.label && c.stemForms !== null); + expect(cases.length).toBeGreaterThan(1); + const seen = new Map(); + for (const gc of cases) { + const params = paramsOf(gc); + const vmap = mapFor(params); + for (const stem of Object.keys(gc.stemForms as Record)) { + const form = transformWord(stem, vmap, params); + if (form === stem) continue; // not vacated at this p — nothing to be stable about + const previous = seen.get(stem); + if (previous !== undefined) expect(form).toBe(previous); + seen.set(stem, form); + } + } + // The pinned list must actually exercise the property, or this describe is vacuous. + expect(seen.size).toBeGreaterThan(0); + }); + } +}); + +// --- 7. the invariance theorem, as data (SC-703) --------------------------------------- + +describe("the id stream is unchanged by vacancy at every p (§7.3, SC-703)", () => { + it("every mapped-condition case has the SAME token-id digest", () => { + const withStream = golden.cases.filter((c) => c.idStream !== null); + // Both seeds, both matchProsody settings, every p — one digest. + expect(withStream.length).toBeGreaterThanOrEqual(16); + const digests = new Set(withStream.map((c) => (c.idStream as GoldenIdStream).digest)); + const lengths = new Set(withStream.map((c) => (c.idStream as GoldenIdStream).length)); + expect(digests.size).toBe(1); + expect(lengths.size).toBe(1); + expect(withStream.some((c) => c.params.seed === 7)).toBe(true); + expect(withStream.some((c) => !c.params.matchProsody)).toBe(true); + expect(withStream.some((c) => c.params.p === 1)).toBe(true); + }); + + it("and that digest is the UNVACATED corpus's own stream", () => { + // The theorem is that relabelling the vocabulary alongside the corpus leaves training + // bit-identical, so the p = 0 stream — plain English, plain Dolch — must be it. + const ids = tokenStream(CORPUS, new LexVocab(BUDGET_WORDS, "dolch", "full")); + const golden0 = golden.cases.find((c) => c.idStream !== null)?.idStream as GoldenIdStream; + expect(sha256(ids.join(","))).toBe(golden0.digest); + expect(ids.length).toBe(golden0.length); + }); +}); + +// --- 8. the controls really are controls ----------------------------------------------- + +describe("the control conditions are present and behave as controls (§7.1, SC-705)", () => { + it("both controls and both matchProsody settings are pinned", () => { + const labels = golden.cases.map((c) => c.label); + expect(labels).toContain("control-inconsistent"); + expect(labels).toContain("control-reveal-after-2"); + expect(golden.cases.some((c) => !c.params.consistent)).toBe(true); + expect(golden.cases.some((c) => c.params.revealAfter > 0)).toBe(true); + expect(golden.cases.some((c) => c.params.matchProsody)).toBe(true); + expect(golden.cases.some((c) => !c.params.matchProsody)).toBe(true); + }); + + it("matchProsody = false really mints a different map", () => { + const withProsody = golden.maps.find((m) => m.label === "seed0"); + const without = golden.maps.find((m) => m.label === "seed0-noprosody"); + expect(withProsody?.mappingSha256).not.toBe(without?.mappingSha256); + }); + + it("reveal_after leaves fewer tokens vacated than the pure case at the same p", () => { + const pure = golden.cases.find((c) => c.label === "seed0-p0.7"); + const reveal = golden.cases.find((c) => c.label === "control-reveal-after-2"); + expect(reveal?.params.p).toBe(pure?.params.p); + expect(reveal?.stats.tokensVacated as number).toBeLessThan(pure?.stats.tokensVacated as number); + }); + + it("every known divergence is documented, and confined to a control", () => { + // The exemption mechanism is itself constrained: a divergence may only appear on a + // control case, and it must carry the explanation and the status. A mapped-condition + // case acquiring one would mean the invariance theorem's own arm had stopped agreeing. + const flagged = golden.cases.filter((c) => c.knownDivergence !== undefined); + expect(flagged.map((c) => c.label).sort()).toEqual([ + "control-inconsistent", + "control-reveal-after-2", + ]); + for (const gc of flagged) { + const d = gc.knownDivergence as GoldenDivergence; + expect(gc.params.consistent && gc.params.revealAfter === 0).toBe(false); + expect(d.cause.length).toBeGreaterThan(80); + expect(d.status).toContain("neither implementation was modified"); + expect(d.fields.length).toBeGreaterThan(0); + for (const f of d.fields) expect(f.python).not.toBe(f.typescript); + } + // The counts a control exists to produce agree in BOTH stacks — SC-705 is unaffected + // by either defect, and that has to be asserted rather than assumed. + for (const gc of flagged) { + const names = new Set((gc.knownDivergence as GoldenDivergence).fields.map((f) => f.field)); + expect(names.has("stats.tokensVacated")).toBe(false); + expect(names.has("stats.stemsVacated")).toBe(false); + expect(names.has("stats.domainTypesVacated")).toBe(false); + } + }); + + it("consistent = false holds the vacancy rate but destroys the identity", () => { + const pure = golden.cases.find((c) => c.label === "seed0-p0.7"); + const control = golden.cases.find((c) => c.label === "control-inconsistent"); + // Same rate — that is what makes it a control and not just a different transform. + expect(control?.stats.tokensVacated).toBe(pure?.stats.tokensVacated); + // Different text, because each occurrence gets its own type. + expect(control?.vacatedSha256).not.toBe(pure?.vacatedSha256); + }); +}); + +afterAll(() => { + if (deviations.length === 0) return; + const worst = deviations.reduce((a, b) => (b.dev > a.dev ? b : a)); + const nonZero = deviations.filter((d) => d.dev > 0).length; + console.log( + `vacancy golden: ${deviations.length} float comparisons, ${nonZero} non-zero, ` + + `worst |Δ| = ${worst.dev.toExponential(3)} (${worst.what}), tolerance ${TOLERANCE}`, + ); +}); diff --git a/scripts/export_vacancy_golden.py b/scripts/export_vacancy_golden.py new file mode 100644 index 0000000..b403b75 --- /dev/null +++ b/scripts/export_vacancy_golden.py @@ -0,0 +1,637 @@ +#!/usr/bin/env python +"""Emit the vacancy-transform golden vectors (spec 007, §11 of architecture.md). + +Both stacks implement ``specs/007-vacancy-transform-field/architecture.md``: + +* Python — ``code/backend/src/llm_geometry/lex/vacancy.py`` +* browser — ``code/frontend/src/lib/lexEngine/vacancy.ts`` + +This script runs the **real Python side** on the **real committed corpus** (*The Real +Mother Goose*, verified against its recorded digest) and writes what it measured to +``code/frontend/tests/fixtures/vacancy-golden.json``. ``tests/unit/vacancyGolden.test.ts`` +then runs the real TypeScript side against that file and asserts agreement. Nothing here +re-derives the maths; every number is read out of the shipped implementation. + +Same pattern and the same discipline as ``scripts/export_lex_golden.py`` -> +``tests/fixtures/lex-golden.json`` -> ``tests/unit/lexGolden.test.ts``: the file carries +``format``, ``tolerance``, ``git_sha`` and the generator versions, and the test reads the +tolerance FROM the file so the two cannot drift apart. + +Usage (from the backend venv): + + python scripts/export_vacancy_golden.py + python scripts/export_vacancy_golden.py --out /tmp/vacancy-golden.json + +The output is a pure function of the committed corpus plus this file, so regenerating it +twice must produce byte-identical bytes; ``--generated`` is pinned to a date rather than a +timestamp for that reason. + +What §11 requires pinned, and where it lives in the document: + +1. ``u(stem)`` for 24 stems spanning eligible/ineligible and both budgets, as the EXACT + float64 — ``stems[].u``. Plain JSON numbers are exact here: ``repr`` and JavaScript's + number formatting are both shortest-round-trip, so the double survives the trip. That + exactness is the whole point of departure 2 (``>> 11`` before the divide, §4). +2. The FULL stem -> nonce map at ``seed in {0, 7}`` — ``maps[].mapping``, every pair. +3. The first 400 characters of the vacated corpus at ``p in {0, 0.35, 0.7, 1}``, seed 0 — + ``cases[].head400``. The corpus is ASCII, so "character" means the same thing in both + languages. Each case also carries the sha256 of the WHOLE vacated corpus, which pins + all 86 kB for 64 bytes. +4. ``vacancyStats`` with every §10 field — ``cases[].stats``. +5. Nesting as explicit sets — ``nesting.levels[].stems``, the literal vacated-stem sets at + ``p in {0, 0.35, 0.7, 1}``, so the test checks containment on data rather than on an + assertion one language makes about itself. +6. Stability — ``cases[].stemForms``, the surface form of each of the 24 stems at every + ``p``. A stem's nonce must be byte-identical at every ``p`` where it is vacated. +7. The token-id-stream digest under the mapped vocabulary at each ``p`` — + ``cases[].idStream``. These are all EQUAL, which is §7.3 (the invariance theorem) pinned + as DATA rather than as an assertion written twice, once per language. +8. Both control conditions (``consistent = false``, ``revealAfter > 0``) and both + ``matchProsody`` settings — the ``control-*`` and ``noprosody-*`` cases. + +MEASURED, and recorded here because the fixture's shape depends on it: the mapped +vocabulary of §7.2 is defined ONLY for ``consistent = true, revealAfter = 0``; both stacks +raise otherwise. So a control case has ``idStream: null`` and +``mapVocabWordsRejects: true``, and the test asserts the TypeScript side refuses it too — +a silently-accepted control would manufacture a vocabulary matching no corpus. + +Also measured: ``consistent = false`` mints a fresh form per OCCURRENCE and registers its +stress pattern on the map's ``minted_stress``, i.e. it MUTATES the map. Every control case +therefore builds its own map, and the test must do the same or its statistics will be +scored against patterns left behind by a previous case. + +TWO MEASURED DISAGREEMENTS BETWEEN THE STACKS, pinned rather than papered over. Each is a +real defect in one implementation, each is reported, and NEITHER implementation was touched +to build this fixture — a golden file that quietly matched the two would destroy the +evidence. Both sit in the CONTROL conditions; every mapped-condition case (both seeds, both +``matchProsody`` settings, every `p`) agrees field for field, string for string, digest for +digest. + +**1. ``corpusTypesVacated`` under ``revealAfter > 0``** — Python 665, TypeScript 1337. + +* Python (``vacancy.py::vacancy_stats``) MEASURES it: ``len({b.lower() for b, a in + zip(before, after) if b.lower() != a.lower()})``, i.e. types that actually changed in the + text. +* TypeScript (``vacancy.ts::countTypes``) computes it THROUGH THE MAP: a type counts if + ``u(stem) < p`` and its surface form differs, whatever the rewrite did. + +They agree everywhere except ``revealAfter > 0``, where a type all of whose occurrences fall +inside the reveal window stays English in the text while the map still assigns it a nonce. +§10 says ``corpusTypes*`` is "what the panel shows a reader", and the reader is looking at +the text — so the MEASURED reading (Python's) is the contract's, and the map-based one +over-reports by 2x in exactly the condition this control exists to measure. ``countTypes``'s +own comment argues condition-independence only for ``consistent = false``, where it is +right; it is silent on ``revealAfter``, where it is wrong. + +**2. The minted forms under ``consistent = false``** — the two stacks mint DIFFERENT nonces, +so the vacated text, its digest, its length and four prosody means all differ. + +§5.8 pins the per-occurrence KEY as ``f"{stem}#{idx}"`` and §5.5's mint reads its stress +pattern off the string it is handed. Python passes the key and therefore mints to +``stress("little#0") == "10"`` — two syllables, via the spelling rule, because ``little#0`` +is not in the hand table. TypeScript computes ``stress("little") == "100"`` — three +syllables, from the table — and passes the key only to the byte stream. So ``Little`` becomes +``Wrerken`` in one stack and ``Wrerkenle`` in the other. + +§7.1 defines ``matchProsody`` as "the nonce carries **the stem's** syllable count and +stress", and §10 defines ``stressFromMinted`` as the pattern we registered for a form — both +describe the STEM's prosody, not a synthetic key's. TypeScript's reading is therefore the +contract's; Python's derives prosody from a string containing ``#`` and a digit. The contract +pins the key and says nothing about the pattern, and that silence is the gap. Note the +control still controls: every count, ``tokensVacated`` included, agrees exactly, so SC-705's +measurement is unaffected. + +Until each is fixed, both readings are pinned. ``knownDivergence`` on the affected case +carries, per field, the Python value from THIS run and the MEASURED TypeScript value, plus +the explanation above; the golden test asserts each side against its own. Fixing either +stack turns the test red at that block — and ``attach_divergence`` refuses to write a fixture +at all once Python agrees with the recorded TypeScript reading, so the exemption cannot +outlive the defect. +""" + +from __future__ import annotations + +import argparse +import hashlib +import json +import platform +import subprocess +import sys +from datetime import date +from pathlib import Path +from typing import Any + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT / "code" / "backend" / "src")) + +from llm_geometry.lex.corpus import load_corpus_text # noqa: E402 +from llm_geometry.lex.dolch import dolch_budget # noqa: E402 +from llm_geometry.lex.train import token_stream # noqa: E402 +from llm_geometry.lex.vocab import LexVocab, tokenize # noqa: E402 +from llm_geometry.lex.vacancy import ( # noqa: E402 + VacancyMap, + VacancyParams, + build_vacancy_map, + is_eligible, + map_vocab_words, + stem_and_suffix, + vacancy_domain, + vacancy_stats, + vacancy_u, + vacate_text, +) + +DEFAULT_OUT = ( + REPO_ROOT / "code" / "frontend" / "tests" / "fixtures" / "vacancy-golden.json" +) + +FORMAT = "vacancy-golden-v1" + +#: Both stacks compute the vacancy transform in float64 and in the same order, so the only +#: floats that can differ at all are the prosody means (a sum over the same tokens in the +#: same sequence). Everything else in this fixture — `u`, every count, every string, every +#: digest — is compared EXACTLY by the test; this bound applies to the means alone, and it +#: is deliberately far tighter than the 1e-5 of `lex-golden.json`, where torch's float32 +#: was on the other side. +TOLERANCE = 1e-12 + +#: The `p` grid. §11 names {0, 0.35, 0.7, 1}; {0.25, 0.5, 0.75} are added because §10 +#: quotes measured `corpusTypesVacated` / `domainTypesVacated` at exactly those values, and +#: a number quoted in a contract that no test reads is a number free to rot. +P_GRID: tuple[float, ...] = (0.0, 0.25, 0.35, 0.5, 0.7, 0.75, 1.0) + +#: §11's "24 stems spanning eligible/ineligible and both budgets". +#: +#: * eligible, in the Dolch list AND in the corpus — the ordinary case +#: * eligible, Dolch-only — one of the 22 domain-only words that +#: have images but never appear in the +#: text (§10) +#: * eligible, corpus-only — `crown`, `candlestick`, `diddle`, … +#: * eligible, in the MAP but in neither budget — `gum` and `hang`, which reach the map +#: only as the stems of `gums`/`hanged` +#: and are the pair §5.7's case-commuting +#: bug (`GUMS` -> `FLESS`) was found on +#: * ineligible, closed class — `is_eligible` test 1 +#: * ineligible, too short — test 3, `len(stem) > 2` +#: * ineligible, non-alphabetic stem — test 2; `good-bye` matches no suffix, +#: so its stem keeps the hyphen +PINNED_STEMS: tuple[str, ...] = ( + "little", + "pretty", + "run", + "eat", + "jump", + "away", + "squirrel", + "funny", + "today", + "gum", + "hang", + "crown", + "candlestick", + "crooked", + "diddle", + "moon", + "pussy", + "goose", + "the", + "and", + "you", + "not", + "ox", + "good-bye", +) + +#: §11's excerpt length. The corpus is ASCII (asserted below), so Python code points and +#: JavaScript UTF-16 code units count the same characters. +HEAD_CHARS = 400 + +#: The nesting sets §11 asks for, as explicit data. +NESTING_SEED = 0 +NESTING_PS: tuple[float, ...] = (0.0, 0.35, 0.7, 1.0) + +#: The two measured cross-stack disagreements — see the module docstring for what they are +#: and why they are recorded instead of reconciled. Both live in the CONTROL conditions; +#: every mapped-condition case agrees field for field. +#: +#: Every ``typescript`` value below is MEASURED, by running the real browser engine on the +#: real corpus at that case's parameters: +#: +#: const vmap = buildVacancyMap(vacancyDomain(new Set(tokenize(CORPUS))), params); +#: const vacated = vacateText(CORPUS, vmap, params); +#: const stats = vacancyStats(CORPUS, vacated, vmap, params); +#: +#: None of them is a prediction and none is derived here. ``build_document`` asserts that +#: the Python side still disagrees with each one, so if either stack is fixed this exporter +#: fails loudly rather than shipping a stale exemption. +KNOWN_DIVERGENCES: dict[str, dict[str, Any]] = { + "control-reveal-after-2": { + "cause": ( + "corpusTypesVacated: Python MEASURES it from the two texts " + "(vacancy.py::vacancy_stats), TypeScript computes it through the map " + "(vacancy.ts::countTypes). They agree everywhere except revealAfter > 0, where " + "a type all of whose occurrences fall inside the reveal window stays English in " + "the text while the map still assigns it a nonce. §10 defines corpusTypes* as " + "what the panel shows a READER — i.e. what the text does — so the measured " + "reading is the contract's and countTypes over-reports by 2x in exactly the " + "condition this control exists to measure. countTypes's own comment argues " + "condition-independence only for consistent = false, where it is right; it is " + "silent on revealAfter, where it is wrong." + ), + "fields": {"stats.corpusTypesVacated": 1337}, + }, + "control-inconsistent": { + "cause": ( + "the per-occurrence mint derives its stress pattern from different strings. " + "§5.8 pins the KEY as f'{stem}#{idx}' and §5.5's mint reads its pattern off the " + "string it is handed, so Python calls _mint('little#0') and gets " + "stress('little#0') = '10' (2 syllables, via the spelling rule, because " + "'little#0' is not in the hand table); TypeScript computes stress('little') = " + "'100' (3 syllables, from the table) and passes the key only to the byte " + "stream. §7.1 defines matchProsody as 'the nonce carries THE STEM's syllable " + "count and stress', and §10 defines stressFromMinted as the pattern we " + "registered for a form — both of which describe the stem's prosody, not a " + "synthetic key's, so TypeScript's reading is the contract's. The contract pins " + "the key and is silent on the pattern; that silence is the gap. Only the minted " + "FORMS differ: every count, including tokensVacated and both vacated-type " + "counts, agrees exactly, so the control still measures what SC-705 says it does." + ), + "fields": { + "vacatedSha256": ( + "610a0d8375890ec68a788457b957d248e5e8a279644fc5b339aa7849451a68cf" + ), + "vacatedChars": 94748, + "stats.meanSyllablesAfter": 1.28975, + "stats.meanAnapestAfter": 0.3215726757806852, + "stats.stressFromMintedAfter": 0.303375, + "stats.stressFromRuleAfter": 0.67925, + "head400": ( + " THE GLAIRN\n SCIRRDER PLERNT\n\n _Wroormowyed by_\nBlanche " + "Thursper Styn\n\n1916\n\n\n\nA HURF OF THE YORCKES\n\nWrerkenle " + "Bo-Peep\nFlorlkishle Boy Poun\nRain\nThe Sqyft\nWinter\nNietens and " + "Klisks\nA Gnuntingenle Jai\nSculk Mursh and Her Cat\nThree Thoochousish on " + "the Ice\nNefs Gask\nThe Soamp Therltle Under a Gloang\nTweedle-Dum and " + "Tweedle-Dee\nOh Steb!\nSwouck Felkid Rarp\nLainowid Yersking Snof\n" + "Pat-a-Cake\nSt" + ), + }, + }, +} + +#: Shared by both entries above, so the wording cannot drift between them. +DIVERGENCE_STATUS = ( + "reported, unfixed — neither implementation was modified to build this fixture. Both " + "readings are pinned exactly, so fixing either stack turns vacancyGolden.test.ts red at " + "this block and the exemption cannot outlive the defect." +) + + +def sha256_text(text: str) -> str: + return hashlib.sha256(text.encode("utf-8")).hexdigest() + + +def mapping_sha256(mapping: dict[str, str]) -> str: + """A digest over the whole assignment, so a map can be pinned without shipping it. + + Canonical form: `stem\\tnonce\\n` per pair, stems in ASCII-ascending order — the same + order §5.2 mints in, and reproducible in one line of TypeScript. + """ + body = "".join(f"{stem}\t{mapping[stem]}\n" for stem in sorted(mapping)) + return sha256_text(body) + + +def params_json(params: VacancyParams) -> dict[str, Any]: + """The parameter block, in the TypeScript field names both stacks' UIs use (§5.8).""" + return { + "p": params.p, + "seed": params.seed, + "consistent": params.consistent, + "matchProsody": params.match_prosody, + "revealAfter": params.reveal_after, + "keep": sorted(params.keep), + } + + +def stem_block( + domain: set[str], corpus_types: set[str], budget: set[str] +) -> list[dict[str, Any]]: + """`u` for the 24 pinned stems at both seeds, plus why each one is (in)eligible.""" + out: list[dict[str, Any]] = [] + for stem in PINNED_STEMS: + out.append( + { + "stem": stem, + "eligible": is_eligible(stem, VacancyParams().keep_set), + "stemOf": stem_and_suffix(stem)[0], + "suffixOf": stem_and_suffix(stem)[1], + "inDomain": stem in domain, + "inCorpus": stem in corpus_types, + "inDolchFull": stem in budget, + # EXACT float64 — see the module docstring on round-tripping. + "u": {"0": vacancy_u(stem, 0), "7": vacancy_u(stem, 7)}, + } + ) + return out + + +def vacated_stems(vmap: VacancyMap, seed: int, p: float) -> list[str]: + """The stems the map vacates at `p`: `{stem : u(stem) < p}`, in canonical order.""" + return sorted(stem for stem in vmap.mapping if vacancy_u(stem, seed) < p) + + +def id_stream_block( + vacated: str, budget_words: list[str], vmap: VacancyMap, params: VacancyParams +) -> dict[str, Any] | None: + """The §7.3 measurement: the id stream under the MAPPED vocabulary. + + `map_vocab_words` preserves order, so `itos_p = SPECIALS ++ mapped` gives every word the + id its pre-image had; the stream of ids is then unchanged by vacancy and training is + bit-identical. Returning the digest at every `p` turns that theorem into data. + + ``None`` for the control conditions, where the mapped vocabulary is undefined and both + stacks raise — see the module docstring. + """ + if not params.consistent or params.reveal_after: + return None + mapped = map_vocab_words(budget_words, vmap, params) + vocab_p = LexVocab(tuple(mapped), source="dolch", budget_name="full") + ids = [int(i) for i in token_stream(vacated, vocab_p)] + return { + "digest": sha256_text(",".join(str(i) for i in ids)), + "length": len(ids), + "first16": ids[:16], + "last16": ids[-16:], + "mappedWordsSha256": sha256_text("\n".join(mapped)), + } + + +def build_case( + label: str, + map_label: str, + corpus: str, + vmap: VacancyMap, + params: VacancyParams, + budget_words: list[str], +) -> dict[str, Any]: + """One measured condition: the rewritten corpus, its statistics, and the id stream. + + Order matters and the test must repeat it: `vacate_text` runs FIRST, because under + `consistent = false` it registers the stress pattern of every form it mints on the map, + and `vacancy_stats` scores the vacated side with exactly those patterns. + """ + vacated = vacate_text(corpus, vmap, params) + stats = vacancy_stats(corpus, vacated, vmap, params) + mapped_condition = params.consistent and not params.reveal_after + return { + "label": label, + "map": map_label, + "params": params_json(params), + "head400": vacated[:HEAD_CHARS], + "vacatedSha256": sha256_text(vacated), + "vacatedChars": len(vacated), + "stats": stats, + # §11's stability assertion: the surface form of each pinned stem at this `p`. It + # is stated for — and only meaningful in — the MAPPED condition; §7.1 says the two + # controls have DELIBERATELY no stability property, so there is nothing to pin + # there and both stacks say so in their own way (TypeScript's single-word + # `transformWord` refuses an order-dependent condition outright). + "stemForms": ( + {stem: vmap.apply_word(stem, params) for stem in PINNED_STEMS} + if mapped_condition + else None + ), + "idStream": id_stream_block(vacated, budget_words, vmap, params), + "mapVocabWordsRejects": not mapped_condition, + } + + +def _read_field(case: dict[str, Any], field: str) -> Any: + """Read a `knownDivergence` field path — either a case key or ``stats.``.""" + if field.startswith("stats."): + return case["stats"][field.split(".", 1)[1]] + return case[field] + + +def attach_divergence(case: dict[str, Any]) -> None: + """Record BOTH readings of a field the two stacks disagree on (see the docstring). + + Nothing is reconciled and nothing is loosened: the Python value is what this run + measured, the TypeScript value is what a real browser-engine run measured, and the + golden test asserts each side against its own. The guard below is what stops the + exemption outliving the defect — the moment Python agrees with the recorded TypeScript + reading, this exporter refuses to write a fixture at all. + """ + entry = KNOWN_DIVERGENCES.get(case["label"]) + if entry is None: + return + fields = [] + for field, ts_value in entry["fields"].items(): + py_value = _read_field(case, field) + if py_value == ts_value: + raise SystemExit( + f"{case['label']}.{field} now reads the TypeScript value on the Python " + "side — the divergence this fixture pins has been resolved. Drop it from " + "KNOWN_DIVERGENCES, drop the exemption in vacancyGolden.test.ts, and say " + "so in architecture.md." + ) + fields.append({"field": field, "python": py_value, "typescript": ts_value}) + case["knownDivergence"] = { + "cause": entry["cause"], + "status": DIVERGENCE_STATUS, + "fields": fields, + } + + +def git_sha() -> str: + try: + return subprocess.run( + ["git", "rev-parse", "HEAD"], + cwd=REPO_ROOT, + capture_output=True, + text=True, + check=True, + ).stdout.strip() + except ( + OSError, + subprocess.CalledProcessError, + ) as err: # pragma: no cover - dev only + raise SystemExit(f"cannot read the git sha for provenance: {err}") from err + + +def build_document(generated: str) -> dict[str, Any]: + corpus = load_corpus_text() + if not corpus.isascii(): + raise SystemExit( + "the corpus is no longer ASCII, so `head400` no longer means the same 400 " + "characters in Python and JavaScript — re-derive the excerpt before shipping" + ) + corpus_types = set(tokenize(corpus)) + budget_words = list(dolch_budget("full")) + domain = vacancy_domain(corpus_types) + domain_set = set(domain) + + maps: list[dict[str, Any]] = [] + cases: list[dict[str, Any]] = [] + + # --- the two pinned maps, in full (§11) ------------------------------------------ + prosody_maps: dict[int, VacancyMap] = {} + for seed in (0, 7): + vmap = build_vacancy_map(domain, VacancyParams(seed=seed)) + prosody_maps[seed] = vmap + maps.append( + { + "label": f"seed{seed}", + "seed": seed, + "matchProsody": True, + "remintRounds": vmap.remint_rounds, + "bijective": vmap.bijective, + "imageSize": vmap.image_size, + "domainSize": len(vmap.domain), + "mappingSize": len(vmap.mapping), + "mappingSha256": mapping_sha256(dict(vmap.mapping)), + "mapping": {stem: vmap.mapping[stem] for stem in sorted(vmap.mapping)}, + } + ) + for p in P_GRID: + cases.append( + build_case( + f"seed{seed}-p{p}", + f"seed{seed}", + corpus, + vmap, + VacancyParams(seed=seed, p=p), + budget_words, + ) + ) + + # --- matchProsody = false: a DIFFERENT map, since minting reads the flag ---------- + # Pinned by digest plus the 24 sample nonces rather than in full: §11 asks for the + # complete map at the two seeds above, and a sha256 over the canonical form is exactly + # as strong a check for this one at 1/1000th the bytes. + noprosody = build_vacancy_map(domain, VacancyParams(seed=0, match_prosody=False)) + maps.append( + { + "label": "seed0-noprosody", + "seed": 0, + "matchProsody": False, + "remintRounds": noprosody.remint_rounds, + "bijective": noprosody.bijective, + "imageSize": noprosody.image_size, + "domainSize": len(noprosody.domain), + "mappingSize": len(noprosody.mapping), + "mappingSha256": mapping_sha256(dict(noprosody.mapping)), + "mapping": None, + "sampleNonces": { + stem: noprosody.mapping.get(stem) for stem in PINNED_STEMS + }, + } + ) + for p in (0.7, 1.0): + cases.append( + build_case( + f"noprosody-p{p}", + "seed0-noprosody", + corpus, + noprosody, + VacancyParams(seed=0, p=p, match_prosody=False), + budget_words, + ) + ) + + # --- the two control conditions (§7.1), each on its OWN map ----------------------- + # `consistent = false` writes to `minted_stress`; sharing a map across cases would let + # one case's minted patterns score another case's text. + for label, params in ( + ("control-inconsistent", VacancyParams(seed=0, p=0.7, consistent=False)), + ("control-reveal-after-2", VacancyParams(seed=0, p=0.7, reveal_after=2)), + ): + fresh = build_vacancy_map(domain, params) + maps.append( + { + "label": label, + "seed": params.seed, + "matchProsody": params.match_prosody, + "remintRounds": fresh.remint_rounds, + "bijective": fresh.bijective, + "imageSize": fresh.image_size, + "domainSize": len(fresh.domain), + "mappingSize": len(fresh.mapping), + "mappingSha256": mapping_sha256(dict(fresh.mapping)), + "mapping": None, + "sampleNonces": { + stem: fresh.mapping.get(stem) for stem in PINNED_STEMS + }, + } + ) + case = build_case(label, label, corpus, fresh, params, budget_words) + attach_divergence(case) + cases.append(case) + + nesting = { + "seed": NESTING_SEED, + "map": f"seed{NESTING_SEED}", + "levels": [ + { + "p": p, + "stems": vacated_stems(prosody_maps[NESTING_SEED], NESTING_SEED, p), + } + for p in NESTING_PS + ], + } + + return { + "format": FORMAT, + "generated": generated, + "git_sha": git_sha(), + "command": "python scripts/export_vacancy_golden.py", + "source": ( + "llm_geometry.lex.vacancy run directly on the committed corpus — real code, " + "real text, no mocks" + ), + "contract": "specs/007-vacancy-transform-field/architecture.md", + "tolerance": TOLERANCE, + "python_version": platform.python_version(), + "encoding": ( + "every value is plain JSON; floats are shortest-round-trip in both languages, " + "so `u` and the digests compare EXACTLY. Only the prosody means " + "(meanSyllables*, meanAnapest*, stressFrom*) use `tolerance`. Digests are " + "sha256 hex: `vacatedSha256` over the vacated corpus's UTF-8 bytes, " + "`mappingSha256` over `stem\\tnonce\\n` in ASCII-ascending stem order, " + "`idStream.digest` over the ids joined by ','." + ), + "corpus": { + "path": "code/backend/src/llm_geometry/lex/data/real-mother-goose.txt", + "note": "the Gutenberg body, trimmed exactly as lex/corpus.py trims it", + "sha256": sha256_text(corpus), + "chars": len(corpus), + "tokens": len(tokenize(corpus)), + "corpusTypes": len(corpus_types), + "domainSize": len(domain), + "budget": "dolch/full", + "budgetSize": len(budget_words), + }, + "stems": stem_block(domain_set, corpus_types, set(budget_words)), + "maps": maps, + "cases": cases, + "nesting": nesting, + } + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--out", type=Path, default=DEFAULT_OUT) + parser.add_argument("--generated", default=date.today().isoformat()) + args = parser.parse_args() + + document = build_document(args.generated) + args.out.parent.mkdir(parents=True, exist_ok=True) + args.out.write_text(json.dumps(document, indent=1) + "\n", encoding="utf-8") + size_kb = args.out.stat().st_size / 1024 + print( + f"wrote {args.out} ({size_kb:.0f} KB, {len(document['maps'])} maps, " + f"{len(document['cases'])} cases)" + ) + + +if __name__ == "__main__": + main() From 2e4fb6af23081627abb26777b07944b766928fb6 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 10:39:09 -0400 Subject: [PATCH 25/38] Lexicon Lab: the vacancy panel, and the invariance result made visible The p slider, the seed, the three control conditions, the live corpus view coloured from the real map, the nesting ribbon, and the statistics -- all from vacancyStats, no number transcribed from the source document. The nesting ribbon is the part that matters: eight stems by rank of u, across five values of p, so a reader can SEE that a minted form never reverts and never changes. Those are the two properties that make a p-sweep interpretable and exactly the two the source's implementation breaks; asserting them in prose would have been worthless. The invariance demonstration runs in two tiers because the theorem is free to check and training is not: the token id streams are compared live on every control change (19,071 ids), and a button trains at two values of p. On screen: max |delta loss| = 0, final loss 4.440053 in both runs. TrainPanel gained vocabWords, passed when p > 0 -- without it the worker rebuilds a Dolch list from a corpus that no longer contains those words. The mint: "swap" control is rendered DISABLED with a note naming the contract section, because neither stack implements it yet. Aliasing it to "nonce" would have looked like it worked. svelte-check 0 errors 0 warnings; 374 unit tests; 16 e2e. Co-Authored-By: Claude Opus 5 (1M context) --- code/frontend/src/viz/lex/LexiconLab.svelte | 127 +- code/frontend/src/viz/lex/TrainPanel.svelte | 16 + code/frontend/src/viz/lex/VacancyPanel.svelte | 1609 +++++++++++++++++ code/frontend/tests/e2e/vacancy.spec.ts | 307 ++++ .../screenshots/feature-007/vacancy-panel.png | Bin 0 -> 500421 bytes 5 files changed, 2054 insertions(+), 5 deletions(-) create mode 100644 code/frontend/src/viz/lex/VacancyPanel.svelte create mode 100644 code/frontend/tests/e2e/vacancy.spec.ts create mode 100644 docs/screenshots/feature-007/vacancy-panel.png diff --git a/code/frontend/src/viz/lex/LexiconLab.svelte b/code/frontend/src/viz/lex/LexiconLab.svelte index 113c3b2..99091cd 100644 --- a/code/frontend/src/viz/lex/LexiconLab.svelte +++ b/code/frontend/src/viz/lex/LexiconLab.svelte @@ -55,11 +55,21 @@ paramCount, randomBaselineSpectrum, spectrum, + tokenize, type BudgetSource, type Coverage, type LexConfig, type SpectrumResult, } from "../../lib/lexEngine"; + import { + buildVacancyMap, + mapVocabWords, + vacancyDomain, + vacancyParams, + vacateText, + type VacancyMap, + type VacancyParams, + } from "../../lib/lexEngine/vacancy"; import { sha256Hex, utf8Bytes } from "../../lib/geoEngine/hash"; import Explain from "../../lib/Explain.svelte"; import { view } from "../../lib/stores"; @@ -73,6 +83,7 @@ import SpectrumPanel from "./SpectrumPanel.svelte"; import TokenCloud from "./TokenCloud.svelte"; import TrainPanel from "./TrainPanel.svelte"; + import VacancyPanel from "./VacancyPanel.svelte"; /** The build-time corpus export described in the header comment. */ interface CorpusAsset { @@ -110,6 +121,21 @@ let tied = $state(DEFAULT_TIED); let dropout = $state(DEFAULT_DROPOUT); + /** + * The vacancy controls (feature 007). They live here because the transform changes the + * CORPUS every panel below reads: the budget is measured against the vacated text, the + * trainer is fed the vacated text, and the vocabulary is either mapped through the same + * transform or rebuilt from it. `VacancyPanel` renders them and calls back — it owns no + * state of its own beyond which window of the corpus it is showing. + */ + type VacancyCondition = "consistent" | "inconsistent" | "reveal"; + let vacP = $state(0); + let vacSeed = $state(0); + let vacCondition = $state("consistent"); + let vacRevealAfter = $state(1); + let vacProsody = $state(true); + let vacMint = $state("nonce"); + /** * What a training run produced, or null while nothing has been trained at the CURRENT * shape. Its vocabulary travels with it (FR-619): fine-tuning and generation both use @@ -170,13 +196,83 @@ } } + // ---- derived: the vacancy transform (feature 007) ------------------------------------ + + const vacParams = $derived( + vacancyParams({ + p: vacP, + seed: vacSeed, + consistent: vacCondition !== "inconsistent", + matchProsody: vacProsody, + revealAfter: vacCondition === "reveal" ? vacRevealAfter : 0, + }), + ); + + /** + * The nonce assignment, built ONCE over the domain (corpus types ∪ the full Dolch list) + * in canonical order — contract §5.2. It reads `vacSeed` and `vacProsody` and + * deliberately NOT `vacP`: the map is `p`-independent, which is what makes a stem's + * nonce the same string at every `p` where it is vacated, and building it inside a + * derived that also read `p` would silently re-mint the whole corpus on every tick of + * the slider — visibly breaking the stability the panel exists to demonstrate. + */ + const vacMap = $derived.by(() => + corpus + ? buildVacancyMap( + vacancyDomain(tokenize(corpus.text)), + vacancyParams({ seed: vacSeed, matchProsody: vacProsody }), + ) + : null, + ); + + /** The corpus every panel below measures, trains on and generates from. */ + const vacatedText = $derived.by(() => + corpus && vacMap ? vacateText(corpus.text, vacMap, vacParams) : "", + ); + const vacated = $derived(vacP > 0); + /** `consistent = true` and `revealAfter = 0` — the only condition §7.2 maps the budget in. */ + const vacMapped = $derived(vacParams.consistent && vacParams.revealAfter === 0); + // ---- derived: vocabulary, coverage, parameter count -------------------------------- - const vocab = $derived.by(() => + /** `V` — the budget resolved against the UNTRANSFORMED corpus, the theorem's reference. */ + const baseVocab = $derived.by(() => corpus ? buildVocab(budgetSource, budgetName, corpus.text) : null, ); + + /** + * `V_p`, by the two rules of contract §7.2. + * + * MAPPED (`consistent`, no reveal): the budget's word list is pushed through the same + * `transformWord`, PRESERVING ORDER, so every word keeps the id its pre-image had. That, + * with the map's injectivity, is what makes the token id stream identical. + * + * REBUILT (every other condition): the budget is rebuilt from the vacated corpus by the + * tab's normal rule. Coverage then collapses — and the collapse is the measurement, not + * a failure to be papered over. + */ + const vocab = $derived.by(() => { + if (!corpus || !baseVocab) return null; + if (!vacated) return baseVocab; + if (vacMapped && vacMap) { + return new LexVocab( + mapVocabWords(baseVocab.words, vacMap, vacParams), + baseVocab.source, + baseVocab.budgetName, + ); + } + return buildVocab(budgetSource, budgetName, vacatedText); + }); const coverage = $derived.by(() => - vocab && corpus ? vocab.coverage(corpus.text) : null, + vocab && corpus ? vocab.coverage(vacatedText) : null, + ); + /** What the trainer, the sampler and the geometry are describing. */ + const activeCorpusLabel = $derived( + corpus + ? vacated + ? `${corpus.label} · vacated p=${vacP.toFixed(2)}, seed ${vacSeed}, ${vacCondition}` + : corpus.label + : "", ); const nParams = $derived(vocab ? paramCount(vocab.rows, dModel, nLayers, ctx, tied) : 0); @@ -490,7 +586,7 @@ budget={budgetName} {vocab} {coverage} - corpusLabel={corpus?.label ?? ""} + corpusLabel={activeCorpusLabel} onSource={(s) => (budgetSource = s as BudgetSource)} onBudget={(b) => (budgetName = b)} /> @@ -516,13 +612,34 @@ +
+ (vacP = v)} + onSeed={(v) => (vacSeed = v)} + onCondition={(c) => (vacCondition = c as VacancyCondition)} + onRevealAfter={(v) => (vacRevealAfter = v)} + onProsody={(v) => (vacProsody = v)} + onMint={(m) => (vacMint = m)} + /> +
+
+ /** + * The vacancy transform, live on the corpus this tab trains on (feature 007, ui.md §1). + * + * What it is for: a word can carry meaning two ways. Its FORM can be known — you have + * seen `crow` before and something about the string is already yours — or its meaning + * can be entirely FIELD, fixed by the company it keeps. This panel manufactures the + * second condition on demand: closed-class scaffolding, inflection, punctuation and + * line structure survive byte for byte, while a controlled fraction `p` of open-class + * STEMS is replaced by phonotactically legal nonce forms carrying the stem's syllable + * count and stress. + * + * Everything below is computed here, in this browser, by `lib/lexEngine/vacancy.ts` — + * the TypeScript half of `specs/007-vacancy-transform-field/architecture.md`, which the + * Python backend implements too. No number in the prose is retyped: every one of them + * is read out of `vacancyStats` or out of a source constant, so changing the constant + * changes the sentence. + * + * THREE THINGS THIS PANEL HAS TO MAKE VISIBLE, and how: + * + * * NESTING and STABILITY (FR-711) — the ribbon, not the prose. `u(stem)` is a hash of + * `(seed, stem)` alone, so `{vacated at p} ⊆ {vacated at p'}` for `p < p'`; and the + * map is built ONCE over the whole type set in canonical order, so a stem's nonce is + * the same string at every `p` where it is vacated. The ribbon shows both by showing + * the same eligible stems at five values of `p` side by side. + * * THE INVARIANCE THEOREM (FR-714) — as a live computation in two tiers. The instant + * tier compares the two token id streams element for element on every control + * change; the on-demand tier really trains twice and subtracts the loss curves. In + * a condition that breaks the theorem both tiers show the real, broken result. There + * is no hard-coded tick anywhere in this file. + * * THAT THE NULL IS THE FINDING (§1.6) — an exact zero drawn as a flat line looks + * like a broken chart. It is stated as the result it is, in words, next to the + * measurement. + * + * PROSODY HONESTY (FR-712 / SC-708): the stress table is rule-seeded and unverified, so + * no prosody statistic is ever rendered without the three-way stress split beside it and + * the sentence saying what fraction of this corpus's tokens the hand table actually + * covers — itself a measured number, `stressFromTable*`. + * + * The type counts shown are `corpusTypes*`, never `domainTypes*` (contract §10): the + * domain adds budget words that never appear in the text, and counting words the reader + * cannot see inflates the vacancy rate they are being shown. + */ + import { onDestroy } from "svelte"; + + import { + LexVocab, + UNK_ID, + WORD_RE, + hasWord, + splitLines, + tokenStream, + tokenize, + trainInWorker, + } from "../../lib/lexEngine"; + import { + FUNCTION_WORDS, + STRESS_TABLE, + SUFFIXES, + effectiveKeepSet, + isEligible, + stemAndSuffix, + vacancyStats, + vacancyU, + type VacancyMap, + type VacancyParams, + } from "../../lib/lexEngine/vacancy"; + import Explain from "../../lib/Explain.svelte"; + import Progress from "../../lib/Progress.svelte"; + import { view } from "../../lib/stores"; + + interface Props { + /** The untransformed corpus — the `p = 0` reference for every comparison here. */ + corpusText: string; + /** `vacateText(corpusText, map, params)`, computed by the tab (it also trains on it). */ + vacatedText: string; + /** The `p`-independent nonce assignment. Null only before the corpus has loaded. */ + map: VacancyMap | null; + params: VacancyParams; + /** `V` — the budget resolved against the untransformed corpus. */ + baseVocab: LexVocab | null; + /** `V_p` — mapped in the mapped condition, rebuilt from the vacated corpus otherwise. */ + vocab: LexVocab | null; + /** "consistent" | "inconsistent" | "reveal" — `params` encodes it, this names it. */ + condition: string; + /** Kept even while the condition is not `reveal`, so the input does not lose its value. */ + revealAfter: number; + /** "nonce" | "swap" (contract §8.3). */ + mint: string; + onP: (v: number) => void; + onSeed: (v: number) => void; + onCondition: (v: string) => void; + onRevealAfter: (v: number) => void; + onProsody: (v: boolean) => void; + onMint: (v: string) => void; + } + let { + corpusText, + vacatedText, + map, + params, + baseVocab, + vocab, + condition, + revealAfter, + mint, + onP, + onSeed, + onCondition, + onRevealAfter, + onProsody, + onMint, + }: Props = $props(); + + const CONDITIONS = [ + { + id: "consistent", + label: "consistent", + title: + "One nonce per source type, corpus-wide. The mapped condition — the invariance theorem holds here.", + }, + { + id: "inconsistent", + label: "inconsistent", + title: + "A fresh nonce for every OCCURRENCE. Same vacancy rate, no learnable identity — the source's control.", + }, + { + id: "reveal", + label: "partial reveal", + title: + "The first N occurrences of a vacated stem keep their English form, so the type is split in two.", + }, + ]; + const MINTS = [ + { + id: "nonce", + label: "nonce", + title: "Replace the stem with a phonotactically legal invented form.", + enabled: true, + }, + { + id: "swap", + label: "swap", + title: + "Contract §8.3: draw a real, frequency-rank-matched English word instead. Not implemented in either stack yet.", + enabled: false, + }, + ]; + + /** See BudgetPanel: arrows must move an ARIA radiogroup's selection and focus together. */ + function segKey(e: KeyboardEvent, apply: (value: string) => void): void { + const dir = + e.key === "ArrowRight" || e.key === "ArrowDown" + ? 1 + : e.key === "ArrowLeft" || e.key === "ArrowUp" + ? -1 + : 0; + if (dir === 0) return; + e.preventDefault(); + const group = e.currentTarget as HTMLElement; + const radios = Array.from( + group.querySelectorAll('[role="radio"]:not([disabled])'), + ); + if (radios.length === 0) return; + const cur = radios.findIndex((r) => r.getAttribute("aria-checked") === "true"); + const next = radios[((cur < 0 ? 0 : cur) + dir + radios.length) % radios.length]; + next.focus(); + apply(next.dataset.value ?? ""); + } + + // ---- statistics (contract §10) ------------------------------------------------------- + + const keep = $derived(effectiveKeepSet(params.keep)); + const stats = $derived.by(() => + map && corpusText.length > 0 ? vacancyStats(corpusText, vacatedText, map, params) : null, + ); + /** The mapped condition — the only one in which §7.3's theorem is claimed to hold. */ + const mapped = $derived(params.consistent && params.revealAfter === 0); + + const pct = (x: number) => `${(x * 100).toFixed(1)}%`; + const n = (x: number) => x.toLocaleString(); + + // ---- the corpus view (ui.md §1.2 — the doc's Figure 5, live) ------------------------- + + const WINDOW_LINES = 40; + let windowIndex = $state(0); + + type Seg = { text: string; cls: "gap" | "kept" | "open" | "minted" }; + + /** Raw `WORD_RE` matches with their offsets, case preserved. */ + function wordsOf(line: string): { text: string; at: number }[] { + const re = new RegExp(WORD_RE.source, "g"); + const out: { text: string; at: number }[] = []; + for (let m = re.exec(line); m !== null; m = re.exec(line)) out.push({ text: m[0], at: m.index }); + return out; + } + + /** + * One line, split into coloured runs. The classification comes from the REAL map — the + * eligibility test of §2.2 and the transform's own output — never from a hand-annotated + * list (FR-711). A word is `minted` iff the transform actually changed it, which is what + * makes `revealAfter` and the inconsistent control show up here honestly rather than + * being predicted from `u` alone. + */ + function segmentsOf(orig: string, vac: string): Seg[] { + const before = wordsOf(orig); + const after = wordsOf(vac); + const segs: Seg[] = []; + let cursor = 0; + for (let i = 0; i < before.length; i++) { + const w = before[i]; + if (w.at > cursor) segs.push({ text: orig.slice(cursor, w.at), cls: "gap" }); + const out = after[i]?.text ?? w.text; + const [stem] = stemAndSuffix(w.text.toLowerCase()); + const cls: Seg["cls"] = + out.toLowerCase() !== w.text.toLowerCase() + ? "minted" + : isEligible(stem, keep) + ? "open" + : "kept"; + segs.push({ text: out, cls }); + cursor = w.at + w.text.length; + } + if (cursor < orig.length) segs.push({ text: orig.slice(cursor), cls: "gap" }); + return segs; + } + + const origLines = $derived(splitLines(corpusText)); + const vacLines = $derived(splitLines(vacatedText)); + /** Indices of the token-producing lines — the ones `tokenStream` turns into training data. */ + const wordLines = $derived.by(() => { + const out: number[] = []; + for (let i = 0; i < origLines.length; i++) if (hasWord(origLines[i])) out.push(i); + return out; + }); + const nWindows = $derived(Math.max(1, Math.ceil(wordLines.length / WINDOW_LINES))); + /** Clamped rather than reset by an effect: a shorter corpus must not strand the view. */ + const win = $derived(Math.min(Math.max(0, windowIndex), nWindows - 1)); + const shown = $derived.by(() => { + const start = win * WINDOW_LINES; + return wordLines.slice(start, start + WINDOW_LINES).map((i) => ({ + i, + segs: segmentsOf(origLines[i], vacLines[i] ?? origLines[i]), + })); + }); + + // ---- the nesting ribbon (ui.md §1.3) ------------------------------------------------- + + const P_CELLS = [0, 0.25, 0.5, 0.75, 1] as const; + const RIBBON_ROWS = 8; + + /** Eligible stems the reader can actually find in the text above. */ + const corpusStems = $derived.by(() => { + const out = new Set(); + for (const t of new Set(tokenize(corpusText))) { + const [stem] = stemAndSuffix(t); + if (isEligible(stem, keep)) out.add(stem); + } + return out; + }); + + /** + * ~8 stems spanning the `u` range, each shown at five values of `p`. Chosen by rank in + * `u` rather than by hand, so the row set is a function of the corpus and the seed. + */ + const ribbon = $derived.by(() => { + if (!map) return []; + const rows = [...map.mapping.keys()] + .filter((s) => corpusStems.has(s)) + .map((stem) => ({ stem, u: vacancyU(stem, params.seed), nonce: map.mapping.get(stem) ?? stem })) + .sort((a, b) => a.u - b.u || (a.stem < b.stem ? -1 : 1)); + if (rows.length === 0) return []; + const picked: typeof rows = []; + for (let k = 0; k < RIBBON_ROWS; k++) { + const idx = Math.round((k * (rows.length - 1)) / (RIBBON_ROWS - 1)); + const row = rows[Math.min(idx, rows.length - 1)]; + if (!picked.some((r) => r.stem === row.stem)) picked.push(row); + } + return picked.map((r) => ({ + ...r, + cells: P_CELLS.map((pc) => ({ p: pc, vacated: r.u < pc, form: r.u < pc ? r.nonce : r.stem })), + })); + }); + + // ---- tier 1: the instant invariance check (ui.md §1.5) ------------------------------- + + /** + * §7.3, computed rather than asserted, on every control change: encode the original + * corpus under `V` and the vacated corpus under `V_p`, and compare the id streams + * element for element. `tokenStream` is the SAME function the trainer feeds on, so this + * is the object the theorem is about and not a proxy for it. + */ + const streams = $derived.by(() => { + if (!baseVocab || !vocab || corpusText.length === 0) return null; + const a = tokenStream(corpusText, baseVocab); + const b = tokenStream(vacatedText, vocab); + const common = Math.min(a.length, b.length); + let differ = Math.abs(a.length - b.length); + for (let i = 0; i < common; i++) if (a[i] !== b[i]) differ++; + const unk = (xs: number[]) => + xs.length === 0 ? 0 : xs.reduce((c, x) => c + (x === UNK_ID ? 1 : 0), 0) / xs.length; + return { + compared: Math.max(a.length, b.length), + differ, + identical: differ === 0, + unkBefore: unk(a), + unkAfter: unk(b), + }; + }); + + // ---- tier 2: the on-demand training demonstration (ui.md §1.5) ----------------------- + + /** Small on purpose: the point is the comparison, not the final loss. Two runs, not three. */ + const DEMO_STEPS = 40; + const DEMO_SEED = 0; + const DEMO_DIMS = { dModel: 16, nLayers: 1, nHeads: 2, ctx: 32, dropout: 0 }; + + let demoBusy = $state(false); + let demoFraction = $state(0); + let demoMessage = $state(""); + let demoError = $state(""); + let demo = $state<{ + atP: number; + conditionLabel: string; + a: number[]; + b: number[]; + maxDelta: number; + lengthsAgree: boolean; + finalA: number; + finalB: number; + valA: number; + valB: number; + expectedZero: boolean; + elapsedMs: number; + } | null>(null); + let demoAbort: AbortController | null = null; + + onDestroy(() => demoAbort?.abort()); + + async function trainOnce( + text: string, + v: LexVocab, + label: string, + base: number, + signal: AbortSignal, + ): Promise<{ history: number[]; finalLoss: number; valLoss: number }> { + const res = await trainInWorker( + { + ...DEMO_DIMS, + vocab: { words: v.words, source: v.source, budgetName: v.budgetName }, + text, + steps: DEMO_STEPS, + seed: DEMO_SEED, + sampleEvery: DEMO_STEPS, + signal, + }, + (prog) => { + demoFraction = base + (prog.step / Math.max(1, prog.totalSteps)) * 0.5; + demoMessage = `${label} · step ${prog.step}/${prog.totalSteps} · loss ${prog.loss.toFixed(3)}`; + }, + ); + return { + history: res.model.history.map((h) => h.loss), + finalLoss: res.finalLoss, + valLoss: res.valLoss, + }; + } + + /** + * Two real training runs — `p = 0` under `V`, and the current `p` under `V_p` — with the + * same seed, the same dimensions and the same step count, then `max |Δloss|` between the + * two curves. Under the mapped condition the theorem says this is EXACTLY zero, and the + * UI reports whatever it actually is: a non-zero here is a bug, not a rounding artifact. + */ + async function runDemo(): Promise { + if (!baseVocab || !vocab) return; + demoAbort?.abort(); + const ctrl = new AbortController(); + demoAbort = ctrl; + demoBusy = true; + demoError = ""; + demo = null; + demoFraction = 0; + demoMessage = ""; + const started = Date.now(); + try { + const runA = await trainOnce(corpusText, baseVocab, "p = 0", 0, ctrl.signal); + const runB = await trainOnce( + vacatedText, + vocab, + `p = ${params.p.toFixed(2)}`, + 0.5, + ctrl.signal, + ); + const common = Math.min(runA.history.length, runB.history.length); + let maxDelta = 0; + for (let i = 0; i < common; i++) { + const d = Math.abs(runA.history[i] - runB.history[i]); + if (d > maxDelta) maxDelta = d; + } + demo = { + atP: params.p, + conditionLabel: condition, + a: runA.history, + b: runB.history, + maxDelta, + lengthsAgree: runA.history.length === runB.history.length, + finalA: runA.finalLoss, + finalB: runB.finalLoss, + valA: runA.valLoss, + valB: runB.valLoss, + expectedZero: mapped, + elapsedMs: Date.now() - started, + }; + demoFraction = 1; + demoMessage = ""; + } catch (e) { + demoError = e instanceof Error ? e.message : String(e); + } finally { + demoBusy = false; + if (demoAbort === ctrl) demoAbort = null; + } + } + + function stopDemo(): void { + demoAbort?.abort(); + demoAbort = null; + demoBusy = false; + } + + // The two loss curves, drawn on one pair of axes so an exact overlap is what an exact + // zero LOOKS like: the dashed curve sits on the solid one for its whole length. + const CW = 320; + const CH = 96; + const demoCurves = $derived.by(() => { + if (!demo || demo.a.length < 2 || demo.b.length < 2) return null; + const all = [...demo.a, ...demo.b]; + const hi = Math.max(...all); + const lo = Math.min(...all); + const span = hi - lo || 1; + const path = (xs: number[]) => + xs + .map( + (y, i) => + `${((i / Math.max(1, xs.length - 1)) * CW).toFixed(1)},${(CH - ((y - lo) / span) * CH).toFixed(1)}`, + ) + .join(" "); + return { a: path(demo.a), b: path(demo.b), hi, lo }; + }); + + +
+
+

Vacancy — field without location

+ rewrite the corpus so a word's form tells you nothing +
+ +

+ A word can mean something to you two ways: because you know the form — you have met + crow before, and the string itself already carries a prior — or because the + field around it fixes what it must be. This control separates them. Raising + p replaces that fraction of eligible open-class stems with invented + forms, while closed-class scaffolding, inflectional suffixes, punctuation and line breaks + survive byte for byte. Everything below is measured on the corpus this tab actually trains + on, in this browser, by the same transform the Python backend runs. +

+ + +
+ + + + +
+ condition +
segKey(e, onCondition)} + > + {#each CONDITIONS as c (c.id)} + + {/each} +
+
+ + {#if condition === "reveal"} + + {/if} + + + +
+ mint +
segKey(e, onMint)} + > + {#each MINTS as m (m.id)} + + {/each} +
+
+
+ +

+ swap — draw a real, frequency-rank-matched English word instead of an invented one + (contract §8.3) — is the control that separates wrong content from + unknown form for the pretrained arm. Neither stack implements it yet, so it is + offered here disabled rather than silently falling back to nonce. +

+ + +
+
+ the corpus, transformed +
+ + + token-producing lines {n(win * WINDOW_LINES + 1)}–{n( + Math.min((win + 1) * WINDOW_LINES, wordLines.length), + )} of {n(wordLines.length)} + + +
+
+ + +
+ {#each shown as line (line.i)} +
+ {#each line.segs as seg, k (k)}{seg.text}{/each} +
+ {/each} +
+

+ closed class, preserved + open class, not yet vacated + minted + + — the classes come from the real map: a word is minted when the transform + actually changed it, open when its stem passes the eligibility test of + contract §2.2 but u(stem) ≥ p, and preserved when the stem is in + the closed class or fails eligibility (too short, or not ASCII letters — which is why + good-bye never moves). Nothing here is annotated by hand. The corpus opens + with its own table of contents; page forward for verse. + +

+
+ + +
+ nesting & stability +
+ + + + + + {#each P_CELLS as pc (pc)} + + {/each} + + + + {#each ribbon as row (row.stem)} + + + + {#each row.cells as cell (cell.p)} + + {/each} + + {/each} + +
stemup = {pc.toFixed(2)}
{row.stem}{row.u.toFixed(3)}{cell.form}
+
+

+ Read each row left to right. Nesting: once a cell turns minted it never reverts — + a stem is vacated iff u(stem) < p, and u is a hash of + (seed, stem) alone, so the vacated sets are nested as p grows. + Stability: the minted string is the same string in every later cell — the + nonce map is built once over the whole type set in canonical order, so it does not depend + on p, on document order, or on which other words exist. The source project's + minter built its map lazily while rewriting and had neither property; contract §5.2 is the + correction. Rows are the eligible stems of this corpus at eight evenly spaced ranks of + u; a highlighted row is one that is vacated at the current + p = {params.p.toFixed(2)}. + {#if !mapped} + + The corpus above is in the {condition === "reveal" ? "partial reveal" : condition} + condition, which deliberately does not use this map for every occurrence — that control + exists precisely to destroy the identity the ribbon is showing. + + {/if} +

+
+ + + {#if stats} +
+
+ types vacated + + {n(stats.corpusTypesVacated)}/ {n(stats.corpusTypesEligible)} + + + distinct corpus types whose form changed, out of the eligible ones — + corpus scope, not the map's domain, which adds + {n(stats.domainTypesEligible - stats.corpusTypesEligible)} budget words that never appear + in the text + +
+
+ tokens vacated + + {n(stats.tokensVacated)}/ {n(stats.tokensTotal)} + + {pct(stats.tokensVacated / Math.max(1, stats.tokensTotal))} of the corpus's word occurrences +
+
+ stems vacated + {n(stats.stemsVacated)}/ {n(stats.stemsTotal)} + + the map's size is every eligible stem; a stem vacates when u < p + +
+
+ map + + {stats.bijective ? "injective ✓" : "NOT injective"} + + + verified over assembled surface forms at every p, not assumed · + {n(stats.remintRounds)} re-mint {stats.remintRounds === 1 ? "round" : "rounds"} · + image {n(stats.imageSize)} + +
+
+ +
+
+ prosody, before → after +

+ mean syllables + {stats.meanSyllablesBefore.toFixed(3)} → {stats.meanSyllablesAfter.toFixed(3)} +

+

+ mean anapest + {stats.meanAnapestBefore.toFixed(3)} → {stats.meanAnapestAfter.toFixed(3)} +

+
+
+ where each token's stress came from + + + + + + + + + + + + + + + + + + + + + + + + + +
sourcebeforeafter
hand table{pct(stats.stressFromTableBefore)}{pct(stats.stressFromTableAfter)}
minted{pct(stats.stressFromMintedBefore)}{pct(stats.stressFromMintedAfter)}
spelling rule{pct(stats.stressFromRuleBefore)}{pct(stats.stressFromRuleAfter)}
+
+

+ Read those two numbers only together with this table. The stress table is + {STRESS_TABLE.size} hand-set entries, seeded by rule and never checked by a + human, and it covers {pct(stats.stressFromTableBefore)} of this corpus's tokens + before the transform and {pct(stats.stressFromTableAfter)} after. Everything else + is either a form we minted — whose pattern we chose, and whose syllable + count is checked while its pattern is only asserted — or the spelling heuristic + of contract §6.2, which is a guess. So the prosody statistics are + indicative, not exact. +

+
+ {/if} + + + {#if streams} +
+ {#if streams.identical} + token id streams identical + · {n(streams.compared)} ids compared, element for element, just now. The vacated corpus + under V_p encodes to exactly the token stream the original corpus encodes to + under V, so the trainer cannot tell them apart. + <unk> rate {pct(streams.unkBefore)} → {pct(streams.unkAfter)}. + {:else} + token id streams differ + · {n(streams.differ)} of {n(streams.compared)} positions. + <unk> rate {pct(streams.unkBefore)} → {pct(streams.unkAfter)}. This is + the real result, not a warning: {condition === "inconsistent" + ? "the inconsistent control mints a fresh form per occurrence, so the vacated corpus has types the budget cannot express and the theorem's premise is gone" + : condition === "reveal" + ? `partial reveal splits every vacated stem into two types — the first ${revealAfter} occurrences keep their English form — so the vocabulary is rebuilt from the vacated corpus and the ids move` + : "the vocabulary was rebuilt rather than mapped, so ids no longer correspond"}. + {/if} +
+ {/if} + + +
+

+ The headline result here is an exact zero, and that is the finding — not a broken + chart. + For a word-level model trained from scratch, the mapped condition is a + pure relabelling of the vocabulary: the map is injective, the budget's words are + pushed through the same transform in the same order, so every word keeps the embedding row + its pre-image had. The model is provably blind to p, to + seed and to match prosody. Read plainly: for this model class, + all of a word's meaning is field and none of it is form. +

+

+ The number that is not zero belongs to a model that has forms it already knows — a + real pretrained transformer, scored on a passage and its vacated twin. That measurement is + this feature's pretrained arm and it lives in the + . The two numbers are the point of the pair: the same transform, worth exactly nothing to + one model and something measurable to the other. +

+
+ + +
+ the invariance theorem, trained +
+ + {#if demoBusy} + + {/if} + + two real runs · {DEMO_STEPS} steps · d={DEMO_DIMS.dModel}, {DEMO_DIMS.nLayers} layer, + ctx {DEMO_DIMS.ctx} · same seed {DEMO_SEED}, same hyperparameters + +
+ + {#if demoBusy} + + {/if} + + {#if demoError} +
{demoError}
+ {/if} + + {#if demo} +
+
+ + {#if demoCurves} + + + {/if} + +
+

+ p = 0 + p = {demo.atP.toFixed(2)} ({demo.conditionLabel}) + — training loss in nats, {n(demo.a.length)} steps each, in + {(demo.elapsedMs / 1000).toFixed(1)}s +

+

+ {#if !demo.lengthsAgree} + The two runs produced different numbers of loss points + ({n(demo.a.length)} vs {n(demo.b.length)}) — the curves are not comparable. + {:else if demo.maxDelta === 0} + max |Δloss| = 0 — exactly zero, over every one of the {n(demo.a.length)} steps. + {#if demo.expectedZero} + Not "≈ 0", not "within tolerance": the two runs are the same computation on the same + token ids, so they are bit-identical. Final loss + {demo.finalA.toFixed(6)} in both, held-out {demo.valA.toFixed(6)} in both. + {:else} + This condition is not expected to be invariant, so a zero here means the controls + happen to leave the token stream unchanged — check p. + {/if} + {:else} + max |Δloss| = {demo.maxDelta.toExponential(3)} · + final {demo.finalA.toFixed(4)} vs {demo.finalB.toFixed(4)} · held-out + {demo.valA.toFixed(4)} vs {demo.valB.toFixed(4)}. + {#if demo.expectedZero} + This should have been exactly 0. The mapped condition is a pure relabelling, + so any difference at all is a defect in the transform, the vocabulary mapping or the + trainer — report it rather than rounding it away. + {:else} + That is the expected direction: this condition breaks type identity, so the model + really is seeing a different corpus. + {/if} + {/if} +

+
+ {/if} +
+ +

+ The corpus every panel below now uses is the vacated one, so the budget's coverage + counters, the training run, the samples and the embedding geometry all respond to + p together. In the mapped condition the budget is pushed through the same + transform in the same order and keeps its size; in the control conditions it is rebuilt from + the vacated text instead, and the collapse in coverage is the measurement. +

+ + +

+ A word is split into stem + suffix by a spelling heuristic (contract §3): + the first match among the {SUFFIXES.length} suffixes + {SUFFIXES.join(" · ")} wins, tried in that order, and only when at least + three characters would remain. A stem may be vacated when all three of §2.2 hold: it is + not one of the + {FUNCTION_WORDS.size} closed-class words, it is ASCII letters only, and it is + longer than two characters. So don't splits to the stem do and + never moves; good-bye fails the ASCII test and never moves; + dog's becomes <nonce>'s. +

+

+ Every output is itself a single complete tokenizer match — checked at run time, not + assumed — so tokenize(vacated) has the same length and ordering as + tokenize(original), and because line breaks are untouched the + <eos>-per-line rule fires in exactly the same places. That is what the + invariance theorem rests on, and it is why the transform's idea of a word is the + tokenizer's own regular expression rather than a second one written beside it. +

+

+ The heuristic is not a morphological analyser and is wrong outside its exception list — + ladder splits to ladd + er. That is tolerable (the nonce still + carries a consistent identity and an inflected-looking surface) but it is a known + artifact, and it is stated here rather than quietly absorbed. +

+
+ + +

+ With consistent = true and revealAfter = 0, for every + p, seed, budget and setting of match prosody, the + token id stream of the vacated corpus under the mapped vocabulary equals the token id + stream of the original under the original vocabulary, element for element. Three facts + make it true: the transform is a bijection on word occurrences preserving order and line + structure; the type map is injective on the union of the corpus's types and the budget's + words, verified over assembled surface forms at map-build time and therefore at every + p at once; and the budget is pushed through the same transform in the same + order, so out-of-budget types still land out of budget and <unk> + appears in exactly the same places. +

+

+ Injectivity is verified, not assumed. Two weaker checks were tried first and both + were wrong: checking bare nonces misses a collision that arrives through the suffix, and + checking the image size at p = 1 only misses it too, because at full vacancy + every eligible type has moved and no minted form can meet a surviving English word. The + collision exists only at intermediate p, which is exactly where a reader + sweeping this slider spends their time. +

+

+ What it does not prove: that form is worthless in general. It proves that a + word-level model whose entire lexicon is a table of embedding rows has no channel through + which a form could matter — it never sees the characters. A model with subword tokens has + that channel, which is why the pretrained arm exists and why its answer is not zero. +

+
+
+ + diff --git a/code/frontend/tests/e2e/vacancy.spec.ts b/code/frontend/tests/e2e/vacancy.spec.ts new file mode 100644 index 0000000..8c70f78 --- /dev/null +++ b/code/frontend/tests/e2e/vacancy.spec.ts @@ -0,0 +1,307 @@ +import { expect, test, type Page } from "@playwright/test"; + +/** + * The vacancy panel of the Lexicon Lab (feature 007, `ui.md` §1), driven as a visitor + * drives it. + * + * These tests exist for the claims this panel would be worthless without, and every one + * of them is checked against the LIVE computation rather than against a string the panel + * could print unconditionally: + * + * * the transform really acts on the corpus, and moving `p` really changes it (FR-710); + * * nesting and stability are VISIBLE — a cell that turns minted never reverts, and the + * minted string is the same string in every later column (FR-711); + * * the instant invariance check reports identical id streams under `consistent` AND a + * real difference under `inconsistent` (FR-714 — a hard-coded tick would pass the + * first assertion and fail the second, which is the point of testing both); + * * the on-demand demonstration trains twice and reports max |Δloss| = exactly 0; + * * the tab still trains on the vacated corpus, at any budget (FR-713/FR-716). + * + * Every test that exercises a run watches for `pageerror` and console errors: a duplicate + * -key crash once shipped to the live site because nothing here was watching. + */ + +const LEX = "#lexicon"; + +/** Fail on any client-side exception or console error raised during the test. */ +function watchErrors(page: Page): string[] { + const errors: string[] = []; + page.on("pageerror", (e) => errors.push(String(e))); + page.on("console", (m) => { + if (m.type() === "error") errors.push(m.text()); + }); + return errors; +} + +/** Move the `p` slider and wait for the synchronous re-derivation to land. */ +async function setP(page: Page, value: string): Promise { + const slider = page.getByTestId("lex-vacancy-p"); + await slider.fill(value); + await slider.dispatchEvent("input"); + await expect(page.getByTestId("lex-vacancy")).toContainText(`p = ${Number(value).toFixed(2)}`); +} + +test.beforeEach(async ({ page }) => { + await page.goto(`/${LEX}`); + await expect(page.getByTestId("lex-view")).toBeVisible({ timeout: 30_000 }); + await expect(page.getByTestId("lex-corpus-error")).toHaveCount(0); + await expect(page.getByTestId("lex-vacancy")).toBeVisible({ timeout: 30_000 }); +}); + +test("the panel renders with its controls, corpus view, ribbon and statistics", async ({ + page, +}) => { + const errors = watchErrors(page); + for (const id of [ + "lex-vacancy-p", + "lex-vacancy-seed", + "lex-vacancy-condition", + "lex-vacancy-prosody", + "lex-vacancy-mint", + "lex-vacancy-corpus", + "lex-vacancy-legend", + "lex-vacancy-ribbon", + "lex-vacancy-stats", + "lex-vacancy-invariance", + "lex-vacancy-framing", + ]) { + await expect(page.getByTestId(id), `missing ${id}`).toBeVisible(); + } + + // The corpus view is the real corpus, not a placeholder. + const corpus = await page.getByTestId("lex-vacancy-corpus").innerText(); + expect(corpus.trim().length).toBeGreaterThan(200); + + // §1.4: corpus scope, never domain scope. `domainTypes*` must never reach a reader. + const stats = page.getByTestId("lex-vacancy-stats"); + await expect(stats).toContainText("types vacated"); + await expect(stats).not.toContainText(/domainTypes/i); + await expect(page.getByTestId("lex-vacancy-bijective")).toContainText("injective"); + + // §1.4 / SC-708: no prosody number without the three-way split and the caveat beside it. + await expect(page.getByTestId("lex-vacancy-prosody-stats")).toContainText("mean anapest"); + const split = page.getByTestId("lex-vacancy-stress-split"); + await expect(split).toContainText("hand table"); + await expect(split).toContainText("minted"); + await expect(split).toContainText("spelling rule"); + await expect(page.getByTestId("lex-vacancy-prosody-honesty")).toContainText( + /seeded by rule and never checked/i, + ); + + // §1.6: the null is framed as the finding, with the pretrained arm named. + await expect(page.getByTestId("lex-vacancy-framing")).toContainText(/exact zero/i); + await expect(page.getByTestId("lex-vacancy-framing")).toContainText(/Architecture Explorer/); + + expect(errors, `client-side errors: ${errors.join(" | ")}`).toEqual([]); +}); + +test("moving p rewrites the corpus, and the statistics move with it", async ({ page }) => { + const errors = watchErrors(page); + const corpus = page.getByTestId("lex-vacancy-corpus"); + const tokens = page.getByTestId("lex-vacancy-tokens"); + const types = page.getByTestId("lex-vacancy-types"); + + // At p = 0 nothing is vacated — that is the definition, not a claim about rendering. + await expect(tokens).toContainText(/^0\b/); + const at0 = await corpus.innerText(); + + await setP(page, "0.5"); + const at50 = await corpus.innerText(); + expect(at50).not.toBe(at0); + const tokens50 = await tokens.innerText(); + const types50 = await types.innerText(); + expect(Number(tokens50.split("/")[0].replace(/[^\d]/g, ""))).toBeGreaterThan(0); + + await setP(page, "1"); + const at100 = await corpus.innerText(); + expect(at100).not.toBe(at50); + // Monotone: more of the corpus is vacated at p = 1 than at p = 0.5 (nesting, in counts). + const num = (s: string) => Number(s.split("/")[0].replace(/[^\d]/g, "")); + expect(num(await tokens.innerText())).toBeGreaterThan(num(tokens50)); + expect(num(await types.innerText())).toBeGreaterThan(num(types50)); + + // At full vacancy every eligible type has moved: the two halves of the ratio agree. + const full = await types.innerText(); + const [vacated, eligible] = full.split("/").map((s) => Number(s.replace(/[^\d]/g, ""))); + expect(vacated).toBe(eligible); + + expect(errors, `client-side errors: ${errors.join(" | ")}`).toEqual([]); +}); + +test("the ribbon shows nesting and stability, cell by cell (FR-711)", async ({ page }) => { + const errors = watchErrors(page); + const rows = page.getByTestId("lex-vacancy-ribbon").locator("tbody tr"); + await expect(rows.first()).toBeVisible(); + const count = await rows.count(); + expect(count).toBeGreaterThanOrEqual(4); + + let sawFlip = false; + for (let r = 0; r < count; r++) { + const cells = rows.nth(r).locator("td.cell"); + expect(await cells.count()).toBe(5); + const classes: string[] = []; + const forms: string[] = []; + for (let c = 0; c < 5; c++) { + classes.push((await cells.nth(c).getAttribute("class")) ?? ""); + forms.push((await cells.nth(c).innerText()).trim()); + } + const minted = classes.map((c) => c.includes("minted")); + + // NESTING — once minted, never reverts as p grows. + let flipped = false; + for (let c = 0; c < 5; c++) { + if (minted[c]) flipped = true; + else expect(flipped, `row ${r} reverted at column ${c}: ${forms.join(" | ")}`).toBe(false); + } + // STABILITY — every minted cell in a row carries the SAME string. + const mintedForms = forms.filter((_, c) => minted[c]); + if (mintedForms.length > 0) { + expect(new Set(mintedForms).size, `row ${r} minted forms: ${mintedForms.join(" | ")}`).toBe(1); + // ...and it is not the English stem it replaced. + expect(mintedForms[0]).not.toBe(forms[0]); + } + if (mintedForms.length > 0 && mintedForms.length < 5) sawFlip = true; + } + // The rows span the u range, so at least one flips somewhere in the middle rather than + // every row being all-English or all-minted. + expect(sawFlip).toBe(true); + + // p = 0 is never vacated and p = 1 always is, so the first and last columns are the + // extremes of the demonstration. + await expect(rows.first().locator("td.cell").first()).toHaveClass(/open/); + await expect(rows.first().locator("td.cell").last()).toHaveClass(/minted/); + + await expect(page.getByTestId("lex-vacancy-ribbon-caption")).toContainText(/Nesting/); + await expect(page.getByTestId("lex-vacancy-ribbon-caption")).toContainText(/Stability/); + + expect(errors, `client-side errors: ${errors.join(" | ")}`).toEqual([]); +}); + +test("the instant invariance check is LIVE: identical under consistent, broken under inconsistent", async ({ + page, +}) => { + const errors = watchErrors(page); + const verdict = page.getByTestId("lex-vacancy-invariance-verdict"); + const box = page.getByTestId("lex-vacancy-invariance"); + + await setP(page, "0.6"); + // The theorem: the mapped condition encodes to the identical id stream. + await expect(verdict).toHaveText(/identical/i); + await expect(box).toContainText(/ids compared/); + const compared = Number( + (await box.innerText()).match(/([\d,]+) ids compared/)?.[1].replace(/,/g, "") ?? "0", + ); + expect(compared).toBeGreaterThan(1000); + + // ...and the control conditions really break it. A hard-coded tick passes above and + // fails here, which is exactly why both halves are asserted in one test. + await page + .getByTestId("lex-vacancy-condition") + .getByRole("radio", { name: "inconsistent", exact: true }) + .click(); + await expect(verdict).toHaveText(/differ/i); + const differing = Number( + (await box.innerText()).match(/([\d,]+) of [\d,]+ positions/)?.[1].replace(/,/g, "") ?? "0", + ); + expect(differing).toBeGreaterThan(0); + // Coverage collapses: a fresh type per occurrence cannot be in any fixed budget. + const unk = (await box.innerText()).match(/rate ([\d.]+)% → ([\d.]+)%/); + expect(unk, `no rates in: ${await box.innerText()}`).not.toBeNull(); + expect(Number(unk![2])).toBeGreaterThan(Number(unk![1])); + + // Partial reveal splits every vacated type in two, and breaks it too. + await page + .getByTestId("lex-vacancy-condition") + .getByRole("radio", { name: "partial reveal", exact: true }) + .click(); + await expect(verdict).toHaveText(/differ/i); + + // Back to the mapped condition and it is identical again — the check tracks the state. + await page + .getByTestId("lex-vacancy-condition") + .getByRole("radio", { name: "consistent", exact: true }) + .click(); + await expect(verdict).toHaveText(/identical/i); + + expect(errors, `client-side errors: ${errors.join(" | ")}`).toEqual([]); +}); + +test("changing the seed re-mints the corpus but keeps the theorem (SC-702/SC-703)", async ({ + page, +}) => { + const errors = watchErrors(page); + await setP(page, "0.7"); + const before = await page.getByTestId("lex-vacancy-corpus").innerText(); + + await page.getByTestId("lex-vacancy-seed").fill("7"); + await page.getByTestId("lex-vacancy-seed").dispatchEvent("input"); + await expect + .poll(async () => page.getByTestId("lex-vacancy-corpus").innerText(), { timeout: 30_000 }) + .not.toBe(before); + + await expect(page.getByTestId("lex-vacancy-invariance-verdict")).toHaveText(/identical/i); + await expect(page.getByTestId("lex-vacancy-bijective")).toContainText("injective"); + + expect(errors, `client-side errors: ${errors.join(" | ")}`).toEqual([]); +}); + +test("the on-demand demonstration trains twice and reports max |Δloss| = 0 (FR-714)", async ({ + page, +}) => { + test.setTimeout(300_000); + const errors = watchErrors(page); + + await setP(page, "0.75"); + await page.getByTestId("lex-vacancy-demo-run").click(); + + const delta = page.getByTestId("lex-vacancy-demo-delta"); + await expect(delta).toBeVisible({ timeout: 240_000 }); + // Reported as an exact 0 — not "≈0", not rounded away. §1.6 is a hard requirement. + await expect(delta).toContainText("max |Δloss| = 0"); + await expect(delta).not.toContainText(/should have been exactly 0/); + await expect(page.getByTestId("lex-vacancy-demo-result")).toBeVisible(); + + expect(errors, `client-side errors: ${errors.join(" | ")}`).toEqual([]); +}); + +test("the tab trains on the VACATED corpus, at a non-default budget (FR-713/FR-716)", async ({ + page, +}) => { + test.setTimeout(300_000); + const errors = watchErrors(page); + + // Compose with the tab's own controls: a frequency budget, a small model, a real run. + await page.getByTestId("lex-budget-source").getByRole("radio", { name: /corpus top-N/i }).click(); + await setP(page, "0.8"); + + // The budget's coverage is measured against the VACATED text, so it is live before the + // first gradient step — that is the whole argument of the budget panel, preserved here. + await expect(page.getByTestId("lex-coverage-tokens")).toHaveText(/^\d+(\.\d+)?%$/); + await expect(page.getByTestId("lex-train-active-corpus")).toContainText(/vacated p=0\.80/); + + await page.getByTestId("lex-dmodel").getByRole("radio", { name: "16" }).click(); + // A multiple of the default sampleEvery (50): the periodic sampler and the final sample + // then land on the same step, which is the case that once threw `each_key_duplicate`. + await page.getByTestId("lex-steps").fill("100"); + await page.getByTestId("lex-train-run").click(); + + const done = page.getByTestId("lex-train-done"); + await expect(done).toBeVisible({ timeout: 240_000 }); + const nums = [...(await done.innerText()).matchAll(/(\d+\.\d+)/g)].map((m) => Number(m[1])); + expect(nums.length).toBeGreaterThanOrEqual(2); + expect(Math.min(...nums)).toBeLessThan(Math.max(...nums)); + await expect(page.getByTestId("lex-active-model")).toContainText(/vacated p=0\.80/); + + expect(errors, `client-side errors: ${errors.join(" | ")}`).toEqual([]); +}); + +test("no horizontal page overflow at 390px with the panel present", async ({ page }) => { + await page.setViewportSize({ width: 390, height: 844 }); + await page.goto(`/${LEX}`); + await expect(page.getByTestId("lex-vacancy")).toBeVisible({ timeout: 30_000 }); + await setP(page, "0.65"); + const overflow = await page.evaluate( + () => document.documentElement.scrollWidth - document.documentElement.clientWidth, + ); + expect(overflow).toBeLessThanOrEqual(0); +}); diff --git a/docs/screenshots/feature-007/vacancy-panel.png b/docs/screenshots/feature-007/vacancy-panel.png new file mode 100644 index 0000000000000000000000000000000000000000..3a9c0a17130c780e2820609ed830539f1d7cfaf7 GIT binary patch literal 500421 zcmb??Ra6|^+GcRK;BLW!ySoQ>hv4q+!Gi~P3*H0^4ncxTV6-aY-D^PjV3Zsuav z^i@}Nt*Yv({qFa%9j&S?i-t^u{Ncj~GAN%kD^MkyU zxTa6;Sst7ii4JJUdf5n1cg+aqZ>V56=FY{1Qg(^sN@L|~)8fO*hSmkh(|MLQzJvQh z87H)(qtEOWJb{inc5(I_bB1>Ol_XM^TO3zZDyHfyF7CCO%m#pd^-zGpL2sbg$=ZFP zc8_Cd5>ifq{1ZWC(&^d!5;@nlq8IvRYWZ z4A3<&&@tKkR=`MZ#Nm7aT=z%+b3chu;Xhd5j%$f}cmH^?5gw0}VvUcVVYb^a+1=(& zXF0hM_TR_U73GDbqqAt(=7&Z+t+sszW%b${F@}cLs9sf7b$Yssi;Zn+ZeE=kk)9qk zRQUZ0(;VA8LK4vx^3ZpsNR3Fn${SLOtEx~QwlI>QEE8K38=Iv)Dr$hOj<6E6moTVqj1~ z%R2{iF*h)vrv;6zfo(W3IurVAYw8qPur%@}HLyeX6IP;VYvEjwzwLSHc;vQ3~HFY$+iT&wO9`(jts?CgJ9NMJStjN!Qi0GldYrU@~IXdA=fZB z6IUi@X*Kiu(Nl(c`}@=niblRwm437OhFI!`cz9_>^J3{4x0AbP^h(Y5^DP-w%`)Dd zHA=~V3Q?4zW-pI37eM!wk3N=KJxbP`ywqH@_y63V3M74rwT3lVZIr zh#I%~a=I?Z&|TdYICny?zij=buI;);4+^>t2D^GR27An}+}wOA(=5We20w2VsIJuu z3pvq)7K9&9s#oO|o$Bk8od3K)H^>}C6$HJ$#X4ubGp4f|H+w)SayamEbAvA%YI&WP zL(X|k{K+z2uSCJCjlP0G%2`67O75zuR29+Jm>VtSd;x_@3J$8f_28~Sf)JY{n5cw5 z_YVkcee_xS;AOCg1zI#QuT!o6cGC&KZpnP|S0L&%Mp>hJKh49a zHR+aKH*bufVq_#1iI@3bUB1r(f>sh75&s~Y8@nua?HxbTOde9IErN!Q<{el7~O zyZ(B~R73uK?9A-!`J3l|*E`Wv+t>G{=vh^?`+h$tP|y=05y_{Sh4jY8T%kbp$iG#! zBDK}k@4*GZx3w4|%nS^~0$g@8{q=J28CQbf08-k&2i1Z_hq$;Iz-)HU!MhQ@Mu(Ar zrH>i4pZ+{Qy!tf}?z_ zlnB&M7VEW8-i>^Q?X(`CJu(1D?^9@=elbH=(Zf+Az6>6zk2xAnGsr&$+Y zp&z<@9HdPRx@fg{O%jQd?o-If;`7f3IC*#o&(4`UDlaS|BW2De!^iN|HIgf8@-aL- zadUDiS=PD$PLltCkf`tpq&U6H@DI`+ntTr5GBYpIlr!tf74sHnRQqMSCnIISlbT1j(p`I8x4;{{E%u zzm&YJiEUK5v&1}31B2;GqHXPbLxWQ9&8}k=YOXk)exQ!(RWCD`2YDNtA7P#A*VyHz zgSvWp6jsoV+@C{1cN^qUiDR2cp>%P~C1f}hI?V})6g|-K0sY_k?Cr-m4_Pj>^lKBB zViOXMGE9P_9K#BlxIM|ihwJRck>va{yE7pm$wJeI4eq9yd9ULAa1Ui>7vlBz2AQ*A0m4naX;e?h;z$$5KTHKUvIvt@Uey4S*Q-zW)>_2>b= zK!W(Po$nLftR`JCd^6Y7{$F3)Ixs#nFcXV9aiIs^Gke^Qr#fWeowd7~%aZZ?g{sHj zXlb&W@flH;D;M}5c7nI8{rnEB!LPibNQiz<&%VVWUvq?C->N+NkEgJfJ{}3t!T!eX#hu>mWUdgr zN}EKar{_BBeX>ecURDTk7MpE*S`!+`>wGQQ;}m|Tf}b>wjCb0+&f8wW-roQ8U^A$u zwwAM{E?YR*)!n>UcXR9Pco#{BMIt5WY{VM*=BDr)=;hX%#pxnMoD#Z-XNM9V@yPL| znnH9@l&ybd5U(Xt2u8A3X&eY%>V~v`*PA&0G~9jF1S|=81tqIm6eYilUQ4C;c-k_n z=$4uSA+Jmp;M2&(MVP67OG~rk+x^hN0qyh8odrxT8%M_o!L62pE@!(FLteyE4J9||w`je5~P$5R*jy{Bkujbn`X>kYohMGN0QIfO8%9(HF6PdBANnRd}jdH4=Y0YG& zdFpgjUHI&9=YQMwO=iy-xY)FwZQP&Q+aurH<{24{1IH(G1%j^E2p@Qg%_5gqR!)h< zDtZ1=-j5FzmgT>Pg*u*-cwH7U+Z9j-LC{UJ)64uK>({66_4l4lW-#xLIlMTyd+t01 zhUU|}$@$r4R!&HLR*yB+%Y?S0=Wr?JbD2oAv{ns=tm|FRyq~@eS^Q1L_46~6r0y%| z2DktD#T9hddUNx;Dr2Jf(B3}Qh0@|Xtytxcjfuau2WQVs+}!G9G`3FdfxCm%IY|HN zZDiW*?*Tx+@}nacpS)t~zRH?3WmUB8zydDQU*+Y3iqQDhbT3?4HD~AhA;He;Cx$`p z+}i@6%=7m4mn_aQSojxy{w2w2Ydlt@rViGO^aVm)IVJfhep3fCRD{fq4&uD+^HpFG zvw`K4h;<{P%amWvpn&#Uqf1kgQkua9Zji}j7xyi+e~Q{8{MBycw$0ADw4Zr9npaM zXW6#LL~Ax4s`dD2+?u#_e|d7=KJ?6EW`V;r%IZ7T2QlSM#pK7JP28r)rn(M|s}wqtfr0&|^jYpY?@e57 zd1tvogC8VWe_Du>SvBPYgp?E&yFqW*(ItfX99#hB?l%*2$xf56!%NW`%?^eIIVq0T zhnYDkmS$E~5?Pd;DGl~A`k&od))oo^zp##&lg{Vxf^Ke3FC7fQ#Q@ah)6w$q0)noG z)5Ti6z5P~<2O<$OR3OrQImW|Hy|)W!Cm0+OLqdkjxwMM!w-LvGi*df1mz4jriqZJK ze^!ss7Ll%(Iq+?`C^?zxK&m3pB=7-iP6U5ZeAa6G{VWB8zlw&7;{_O9%=%qRSOQfxri(cPc3Gx3BfO1zJZbADzVyqfXziiaK-g)oXaE&39`-kFEy(s{rmv zikItIZxemJ)rss5)s0*}&$sV+oqh9T_!=oGbG!w#_W`d5@kOr1nYbPsU7$s5mSVZ$ zAtlg5tcokO&5)iu-uvb5#(qv$*LE9c`RJF}z;_tQJ}OgXm*&L{;Z-`NtmiQdlWiPE zzs{6r<5J?Y|7Zb+1wl(|YeIIw{;eNZk_ZpOhtWkZeY^#xyU|UP2Kss#={PDm{P^+7 zDS0CVY;1J&|L}XEevi|~A?4hl;{of!Wm(w>$TYylm{+&CICPp*3uZk3K_(n@(>uV( zS*8?;oy}j`mSs%T|NQL+0sJy_)ml_(dwe))QUd_^`JL|~Bk69MBFsNeG0)la5pCN< zaVqlnNd`|HzOqLtmgMPqMs+u%34kxWXpEl$=iE>wJm4T)Urh= z-HL_#D321TSwj~7*<&9Czjh)=aCUWUc4lTr`O8WgBa-L+{a+|3vp_$}zoiN~^zlhv zfgaEzU#-GwdYZLKzx1bv>!DC4dDL!w^kA;Qyt6m;ILt#{eiL+0X)M&voG7dgz;k+T z^Ryow{hUz17lApNqVlVRODtv8wEGWbsQ}jqCo3y4vM|rt8R@oWLL5rk4_~+6@o{nf!t2u`G}jNF zR>N#W%p^dWNSUcA8qrKkcIEJicVJ0~% z36F@((#GZpA5&9%Ww(k6V3&F8Mc@u?O5Pkvcqq(*1_PYQ4w6FfoS{0!Xqum2%IvoB zwL8h%>o@qm;j&Q~d9VGW0Kp)1qPeWS?gzS+wvNup5x{V*)bzBf(mJl-&zb|Qj9Wtk zChThSu}+J4*t9%BF(R=LGuhz_JKV{sy{Urg?;38QAk=vSe|8*PoSyVT3mA*6PpCxN}f&8pXoiW*-J|g z@GNML9>CI#FjP|h4N=1~ZE>1T#1y+kML`33_E{}`92v2#Bma7?m?Hoch5l%G42z5$ zV@!DDy|SVFCyaPRZt^8?mgmbsyV>i5uzDpI<+hBA+=s@u(a|pxvf`Q2q!0xn6@INPC6p*OI>918;(K&L zp@k{-n*sA{;l_`esTh+<9ZFjt+%gHwKQ9nes^&urzPTAqPW~-8ayN0GTevAJjSvc5pwB%axTWE4agiHF3869`atZ4ftK26%f!U7xM zb0PwFY*2%qpWkSzZ9`L|&v7M#S^d&@U|m?sZFF(4M}85gIK+?;@UytH^Yl|CZF!5g zhmGw$8`x%6!s%F)x#ppihb|sRymOs zRb%a&;DUfHp5eZ+A&d|lDY+6-QX%8RXnmpl-WHtgfr5swBUvd!GwLbh%uJQ}6#&z; z7HS>o-^t!(Ax_mlI2*yvT~DlMEQx>fs}_Xb$1pZI^qZiG7IGSEH>2i$-OtZ)wkEj@ z3@xgZ6sH8xVU>nLQGgYpRkY`G#}{|uSK9%x)nZNO^S;`PY!+2U`47!xvNXxGeAJj0 z=1eTEmx;0eD45&M%89Z^ne$3RiFVtoADJB`H7+ew|Q{WDYq4AO`lf{!Fu z_ZbDC-S`aS;Co+k*2z`*kz^|*!)dvzgHu+a>!)IqfCus~oXrl)(S)Z-mMGx+31ag1 z*Svw)19YOj(Hc*FpYK5w{(t}IJv}B;4^{e4hJ?u$GWG@dJ)SRW3%8#QU5bMDiXXpT z(SK5C^+G92$k)AGH0gRixlIguK4!G~sZ~~AfBkU&iFcXNDJ$dFxXW#PVQ^)p_icve zVqhqPb#~+@RUi0u1YyHCjG@V4sTEE6eE{X~4|pTzA1YC)LCdA^$)NeXx2Qz0v4+!b z?y8^*{5Etcf`NE-I;5paiHnO{SK0Oc((T;&%yC=7eG8~sZMp1OV&mX=*M12qQ**(uN2nSQ7zNw2I3dNU8FIsRf@2+-%fQWw zq2OiJUJy)yol7X-ASI`(X>YF}?VDA8_MZRp0`KyCIMz#w%*WqG0WCJN@v5hzgMi_o zb2hkGUD-ixZ!X0_i1nQEm@Oa>kPzxyAWt^U)Ce+ z3IYM$`=G=rD;S^e78ZC)2c#j89)eI#7&?daw9xF`1bzASph759&!$f(LE^}=<3J{= zpOFU#7G%%n!Qw$(ZEbJ^5s~+0l$ahb*-av0*?#cfvnY}=2?*S7iAYQPjdWL6h;ydK zD2xmdni?A+l-!l4z>jYgg=X;zu47b8ijHPITfn`hA(oL!CtX|n-ze4z_C_@GUO7Od zz~~tEf&7V@t;ZR7gcXZ7(H1~s`tF>Q&YU$#GCDpU>~@aA+I7{~UBDU_GdcY}qwjvq<4NXpo*U0D$2-2omYXRPBP0LFQD44{ zWfs>NYu5&ZCs&I|V18?V#KFT8zMgYu?Y>eBcw=*PG}SPleG~@z|^Nn#ea(%!b3w9VK`8@2*FXO7pNW9gLhk;?P# zwjo21o`pe6V{6uWqVwUPgE5_1q6E<|;LDenLzBQUp_6YP6kG~}H8r1pP>N)*n5@^i zo{q|9RJ0?Pwo8x&-}q{Nhd^CFI4X%v@ZIT)iLEH%m_6Dw3SWv*^b6QG{qm>oBeO+}C8j-I4jN|>YVV8^5^lw>=^Ub_mj~q_P z{nTTIk?f2pN={+!kqOiJl+!J^+R7R$vZ(du=awvYd~|YlqJ$k$^oxkHnm2W7n-=VH z;5Wj)*_o9G!9Z>F&bP{!<3p3aZs0CLA>g;!#G9q3CwF_h-|!caCYQXPDja^(= z=yG|mFqec0xN3etPZWM;GGo%xN>en|RoA!(50@4J&ABHZ8~{eY>T|8SoaH6swny22y*S}%uteB9>G$-gc(qE2pSGckhAz&XrgUg zRJXabRMFg=!1=9)jIWLTnZa-(@W<&T@ew|-`+1@J;X+XAJ$eg1UMcR&m(dct4Dn%+ zVoJ4J`m6OGp|VO-Giu4c<_9mUwrru77qcWeO*J*&3>_?6`%~g0_k%DJCg$<9Q{)UM zdq?|pIX=$4YahE4?fLUHVJcEmd3R1voh$k;0KG_I^@mO&p%B%ng_T`me2F3+p^Mzg z&cJtJp-yk7^$O;XO?SV%&TJiR)4m9D{b^*1O3#ltM1q6XB45Ld_L!6P)GRvi;*zJ> zLMahKE<^TQ#GfG{Q;DsXS87km=3-MG9UEma;*+do{%n1FudlfOaFQaIM90TPCCb`T z(uxVco!vC)ymHk5NOb;JPcjwLaNl7)T&)G4?(^&F=+JR<2makjd(VMG3Xeiq$Sp*~ zfR0VC{%D7?7z}QrHIaU^cO~ZX=}kRG)FLD#HtFztUfPBNiBSCGf{`(i5kP=Q`u+So zcZ(BU(EYdy@DK$NHdNo|cP0k=A9B=8)=%mf==3h;<}k-!|8ebnz5dZg$GIeZ|9#<`OYu?pW`rJ zkl5+|b3RxJQOf_rOZj3f{P-S|FV7zBLvt%KF?E*Axgv$JE7 zk%iR>yAP&XDjZbF3-vDwGI8npc6WC>%ehe8f0!}%fP;;w@xMkp+1R}#C*gHNl|Djq zM^V7W*05R?W%JN|qmO{SATw4-uPwWPepYzPded6$gxpZ|0jpoQA0mOMEubTc*E4bZ z_L-$7Y^h*OryA>&ST)cBqPZIcfv@vgOo%!9qh2~(f*-j2W$8#sjZP*@Rg9)5HeAO! zS<&N(Lu#bg$(c;rWHzT%gC@Uu_*>rHqd7R7^J5GQ#uErTam<@+jp#o=&ElnNYXa1rl0uz59Xe4 ztpM`iUUz%&<1xbM>t?|D0LCU50rL0zauE~bc-YwL++BVmJ|b)j6JazP->(bcBM;kR~2Evup$?msej?EdSQW5sLcUtnqUjOs%DGPj7cm)H%owRt4p!j$v) zc1}+6)BR*AjdZ2rq^N8i9K`zFfvxg11JcaQ%$Ttd2hhs0j5=hs@b7jK`$SFHCuU~P zCT<+ZLVtZ-T~ieo8!0=tWHEYFFJ>mb6kaSjd6F6 z!o|VE!_6&8vnnV+jTVE2ONt{GFkr}MO zo_Lj3T3B4*;pLs4=UYOV*Htqf^j$yu1!Ui)r8210v@^4dOdm~8gN1U{@lH(sDKYUz z=p$5ZJQ*KNN`^^dWo4zN`6H1C1u1sN)|TA}2N%M``PN$T3ToF9T20E{nBd_fH$;M# z^^RSs2MaIf7Z22mdW6RIs>VHny;@3ePTY^o3}ebuEr$f1THT( zwYMX43UHFVxo~2smC;(^;_fSAH@IvN*~$1i`1xY6b8*xFetjK`4OX=YGENB4mVAR& zQ26piA!Z8ArNPs)iQpA5m?r@$vpR5yBp6GWV6j1Tczr?Web=Dwu#C|L^i#_uMu_4H zuId{=-p>zrw;9JcZf6rwNEgicXa>b?<$M`##&+LxQ|rBP^>{nKWABUpKu^!~nVH$$ z%|o~IBq=SC1r7bi*};a1o?hbjqDf#7u;K~A*>#Kq+S{8KW_oub4hte-bAwrVI;)>Wiu~ylvqTbuAWhAc+pY=(s05Tx#gDIcspCX z?bW4f>L%06c32Ji*(Z6SbSDIvi#mI1>I^A!z07k9jLns0B}x(*qYO6cMtbS_Nlo#O zb=f~PHT=noYC=kiV#bM$>VN$~HDdY1B*C;WG)J9gSt^7_f%Fa&x>eHB*f=VuQp%N? zHitp)%V$l+Whg5v`&G4~*5sSijJn3Gp2KiKMUg8RnK3S|W$RSh*kRT|F?_}9tZ@Gn z;!mZ_nA72qk2?%q<=8jH@e?~V+Q~6ZJ#vq@ak*Lw_Tb2T>xTvX9t|~IW z^{B38#O4S(;o+xsuYI51b^pytnY4F^f;(HVBL(l0n8BJKwxni5fw!M9jvAtXKcW76 z8T;eMb=*!w%LAO|QMa@P%6~MVwvv+X@@yVUh~Hh|a3$P@rMfh4M4>oYs{oi>;&)Tq z^qj!YGU#K)zhZ{NP|`BeB{+QiUd4QS&cr;??Dp}>TMs-U`W+6>7)N&%v?d;HPBgib z7<6i1l4>Z{DBMTK#taeK5D;X=DkKgn7(VyiSfbD=5||g(Iy*Yj%;0UvD+fMgabLSi zCXxt77qd(#CsrGSj$&xKHu51dOj?>pic*09lE$RB=v(Od)Q`gQgrM~Wa-|*LY>$Dr2E{$hZFUOO9)6xO0trh#Gq>ngi8-nq(?ad-LQBq2o9Befw7sHgO~YOzxEwplnhf0_?e%jjEdtx zm+}dgnhG?WM26cb(`(hd`+*k-SwZ5BbEpnya$2R{E6)v0YS^X`JoV~fSGWs^i6{i86 zSZ{F2%fn60)2Ol$COx@YxHB8?BSH!?AR^heAk$B4f3gr{sQF6GNG_{MT8)9l<4R;i z7Z9Q?C57tVKJ?X@6NQl;cJ%x^|JU;dR`Ulf8`m>(?ns`mY{i9rnWHR2%f%Fac%nD- zu;d?Q2MRf4RevXa6ty$7k|8Q<@r@<>tE;M|6Y|$|>dMJTrJ|xjx9bMUih&M3HL+H7 zPL&fSwhblyGZVqqAMT0z=p=jV%bo;$6Vc!p6etrm>+KmldCoE#tzBh)aOBI2sVjBX zZ}H6-;*B;54B?piTtfX-eK+^t^-!JRc_7M#*cgS-}CKvb5l;Y1)P9IP|!s9$ShnhS;{d4 zP-@OmGZxtVs_O6+hPw4Me5+`GS(%whJ}9%YSfxrTj5ashRWs5fJZ2vMC?|*N`(+>w zUaigI*^UoELnB$Dm#PR+e|Rrh=*XPIvT-P&h>3@vjsq_O{-lerCV@FPHC@P@R;(&a zFs#AdZB%O_(#FPyfZa;ymgIX;64u=8%8A|c*u4_Q@#nN&6))q1Uzj+~522-cHaU$J zilaA-oAkJV?-GuR`69%T;_~v>z_!>-ej}||_laZV=*pnK{9SW<0jy=p6VY)Ee)EYQ zmfMjdEltwusz2~W{e+mb(p)kF@$IA!}GZ_WJB-psF%-b@m zg`&;pXMW-0hK9MK&qtl6_3TqPCc*b`?zadISbPfQC6eU#_b4yN9jvC@={Wf4WM^rq zJ_;g6e)`B~PqTAsyxtgms8^Rw;R*!Lwj2n=0T>2ewQ&j+BGMcmJ)HK3F92-9z&5%64@t z`+NZ}SoFw}RbDm*f%aDR4D*n49~-b!%)>a!G;_jxeZkLja~K=~Vyq;|ZH6|FZPaGs zoa~=wX0z(ac6Rn6?~@&v{W#})vjdm|Xl5O)bz5`S)E@by=S5i4_!9-`-Ixc7?&T^y zay{hX95lB<+&nzz5a)gsv0JGA!PmgxH8eEfP0066?jKlrRvN3m zjBF=_lM@r4fPbX%b5eV*$2yY;x_!u~fqZIfl`e10w6!%!1Oq-0kH^QG(sn>f_YJieH?aMN*y%$Srihqjk9* zlX%pg8w4HxQh9!x&qcwXel!Uj^vVCs_ywP(wCZIc{zL2Yl{l25zm7Mu8(EZmwnJr6nZ>(JfAe z{PbD$Qc)Hpa-&O2E0k_&X<1P3TMOf`s3i4EJwvQp#gChj_?XqtN9OjVBzdY|A8;lN zG`M;E;b1T&2t!6=4=3sb(}wcgK;7>*!e5;14?i3`e6>L&?Op2y6m=<^n2@{j^Dx?g zlYlXY?l%!6bUl)xZ_g5FwlJG+|$190yo z+^uz=#M6-I=4QiTVR7+$LUs2m`upyE*ShcAMRSb z5p+7Qpi@Itm3cJ$k9S`Cmn;f{+?usW`V~e~1v`NE2^zGqZm@0C_v>kG z4EzldB5UnmOtNjjLf;|Vr1O3}lF>1-)$IQCiPp_Sg3l1e4;|UDzCObKCjj z9yVLO?)`cpxZ8|ri!mZagp28;){xxv%+AidN=?e7wOD&+zAi>mP3m4h0PqEviFvO& zZ6WUL&$Ehd``SF-&9M3XChp*PA7(%87-QHSLe14btNvIWHA``)GGF8trx@nNL@6)S z{so5dAGOTCM@lJU^j21G8(qd!buPT%=i@gWy}BVx_IRar$5SY{!)(?R%KH8_xOZ}V zZ%~giJ$<1fJnjw$m45D%%F3>?RwdO zFjgNk6ENTSadf{5Nj5R>?Kp~6CY}TY5sQ~#sdvmhJv~A9f6EP8&OKb}R=X?%jf_Yk z8i1`bs@r3a;SM_iI|6GUOyAOWF)k2Ev$2%>-3(SLo5%6Zaye#*EvRr%JS6NLts`Cw zhk`>U;le|;-qj#;cz?gthV6iE1-1N+K8gujucGtT4G8~-!$ulKAn4P_*a5l0v)W%L zaTwa#>BQf03(O^fNy|16{id%ULe=9$aml1&5{eMiIKbgGEbnhhvi=ApY%bv9;^IaJ zu5JKh3EXv2tw&KG!lOj>P^(0(v=$_Kq-(JHTPvg

uR}FrA(5bX$U)?6Hlt8oL=*@51yvH*d?g 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

Oj-uom4ro8wXM&jvBB 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�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

Ob|s&0@JgT#wyRy1_oQLU&p(L0%+ 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

W< zwGW$})EhY4-|h6#aWIYmapmCLF<`OCa$%4p1288@PDSMo!Leo1Yo*N@D`|@eS_y;g zygaJAB;qp)0iFp~+wI|Bo&Z za|;1X`m)D;*1QrYp_=|NJ-uOf0Y{g3fx@qchuY9NyE$t3x%n`I(Y*zSwep+@QN_F7qMC=k4j9D}lca^W zZv~WVk6e|E6X!4YlRkGusLH=hF1MMYWM!c}vJHI9&%V9-ovn?o2ONa7Ui&@2ZqU({ ztv{X$g`=K^duiX^hDq;8Kpr7qpEW9V!dYKm1*;|l7;{a>hE>6?S67nAL>G@tZwV>D z4XHGY#Ey{isslFtSC?Lq<(spmz0Iw}C@SavaJC|OTt17`oVW#u?1JF4m2`J-4}@v* zbS6qdKbg@RxV1g^ghpg~747|abN0BpI@sG2R9EMkQmGZ3mXPwlvpMOnw0&Vhki&q{S_V`FKs1VR-WbWq|Y}2;cd?WOh zH}jaW@rIPg;X`faSzMMukhB$-YhV*55(XA*Jt{-_;5AjV%ovk&LN|?{nMp*(+3xL8 z;%LR~w7Ce5(%@icXGY9qbv{W{ocK(~@O0jmW7v@pE$~aRsuJo~z%Jxt2?xG&30?_r zawMrSJJeJZV!^`cghY8|-4Q9dVpgNw zCHXX|$Km|=)YRo}i}q)+rp^u~tt;!)GZs z-5fFGvBYzKW@bT~SU4J)hn<$WvbY$F%SKI0+gg3m-R<{uw$>iZogUYOrW2~DucvQ0 z=6@4qF8imRxc$lPc)h(tnBV7Uw*U#OUZt|+XKincfe}G$#20bA$RfaSyBJR)y+h;a z?W5n}`7SByhJM&~v3RPRjI4!+2jTu~d~~$G;qDIAbYO}Tyt_J@uuR_|e=t?1*hG9q z#FQ;mbq>c;rr>Eep;}p4Sx4;iym~l86GxK4>8b%Gou4#luhegGIT_k|g+VaRgtN{> zJ6n^yotw2TiY1xs06H#5Yk&DNEZ}nwrJUz+J=zU*1uJD#81ea@q!wH8;)g?<4*7sl z9m3*C#>3bNW)e!uIrb5MOqnK{@C``1M?}VcH|Vq&pFLz#o%sn*C^%cG|7kycLK8o$ zD*cF-8XL-GUt<@6N}`a?9FIB$hdgBUep~CyPH_UYJ{`dU0u}svDvo}=}7DJmo{HKn4mZ(X+J-rfn0klEe(l*O8b?~u@G^w z0pO9EhR$+>Ph8LwHiUu|&b7h@6f21JTwvMEV9A@Pd#> z_twtI%q$lQyt5hxdf1`orMlXVr1F(UV`yIp;6|fYU2y(R>Lr$0_hJjyXy&2lexT>| z`|6mF-zJ2}f~s|joUH1RngXYKd4E~zAuka$iv`U^*$ldB zMR7$&Qt_u;Lu*2X$H-of8N;1?Q<=U8U1FM+Mdf_=t-w?E`(Zqz0U8t^^L14&hXRN7 zTGx|evQGbNs!GsFSI_Lk$VgZ`i}Pv(8O&3j{It4jbJ>3G?mt4XAMCyh_XudjJS;8` zzjzeoL{adG)AIk$1?ck*zFghnfCL08H<|_B3R+}DKPBpYIz2h<5fSwTfxh|qwFiRv zd5H!b#I#npz(R38JiNT1>nfo>j|iRHxq-*9M`&NUilGSRK(AgEf$nbM_Ew-U+eBuY znyN0FfBAHNh1JTRjbD=FURy1L@Mto6pqsKaAJp-57U!Pk_=Aj`Dn%`=53cr`4)0c$ zmdhTC%R%px*}Jm%c${Q+ui2J}^Q3)q9BvrPo5@wpliqZ2^2lPlDMfd z$&?z3@Jyb75-6WePxDq4=tk`$LF<$#%jPprW?31VL|1=5-otqS#Qaz1+uORX6IkKS z(I4U>=9yZq0=s>-|60}g2JqZFa*sugeR~+y{nKMd$)a5ya&=82m(A?G_`|=PzpPWg z?V|Gy!chLEZs=e|g7=~TXX-hCYu&7}2FxeR(P$>E|XXqGW$bMg<&D_u}O6+}i@IK>2=W6`* z#arO=KrLF>a%hWy$=l1Dl4c|Q?P_L(@>sz#j##LdH;7YHW1jia*X?dsjvBHfiAubf z@`taZd(GLSvqPXHGgEnYw-0YFD1`Ci@=|2M4wit#v8wa+avb!8w(b`YUl+x;uYhhB zfm!f>D0|DMxVkP3GX#QbaJS&@4oPr_KyW9xyEX)O39gO1ySuwPH11C0I{i$|`(bLT zW@`EeoT~19`s{tyy6$TUc}5cUgJhy%P=beH%+2j3P!=xw}~) zWSQ~`@1X2iRF<}Q8sWJ0BDesJ@wx6Wern@tHMKH>yMm{|77dwR-TJMN&R&_@o|~P0 zv{GbNMqebK-kts3*FYVYpT%C&uE=C{Wu-?470m|eU9s!qOYqKU10k=;-@agW$e6eO z{L;D60$Q5ql2~%C|H#D&(O8LfZeZexbSv--{x4}-r8->_aQ14 zFrV86d-(fvMKT6tlf7WKg?amQ8T1rbU%=ga>C4k)taE#aq;3>FICjco1ID56>pJ-J z_+*w?<9RS+kKCEhs3GM0cy6^D7fdSRaDS6{8Z!=jJ)(?XVa3%=`eq~fEXxMh-# z@ND&Je~a0iDX6#|o>*8|jE-9PCgQ8l`3UOBNLV|j4Ok_c5(CjRKL!vCC5Z(dc64|T z%BR@hUgZ=Z;i~@r-4hHOqY{8xQ^Q)6}T#5edoh$q5dT+-3(tOyu~~*pP1AkuEB;ZZ*0aKEuWrj-B(}-ShJf%az$S z%?F9d{K1u3aU=yIAqmo`Eoyn(s;#pd^1hI@m1SoA+M~T1V@w)F2WRI=8O4}Wys2C5 zmtu3%=x!Z_qjigoC4IY%>S$r+uLOl)=}=}%Lpv*6Y)q#Y)6uvuSx=9T(OH}xrw8)- zl^QE8vOIQn`pt?ersIDH8jtD}t8_cqJqD5C;NVn+jS|)mc4gB49TB%}MeElH1P2F& zJzt}jobK@G12i=?{Zjf;<7uc;9nR4)>l`*#=V%mRzBC{ppy+lu4lL<=`#GT6EunIJ z@m&~P46YR8SxRY+w(8RAIBmOxMI+rl+6!ETjlr`uv!aX|oI$`tp`lr~ULIBs6uy1r z3oa%EtOjPTj~pI(xn8y=#yRd?csMw1G6`Z!MfqIvm7os^smxOsnh>HH9O=>DVx z1c9!&so1pPskn`9@&0)dD^z=;5etUGPS;huzg6kCv~TsHsl-*q5TyrtE_%15q0aDF zO#%gjf_OY2lgw8mL|)ED2O?C=CgZ4;;E@sO8QrU`dk*>d_(Ub6Rk6cqr>Zl2!3CVF zo8C_Md(zyvHvR!!8m+he*T%-wa)AP{rdOdDv9J3PxIMOmc>H{Pr{h#Vr?oUd0!=pB z;C*^$MB#;Ss)&d46?wSS6Uf}>Mniq0QMJm*=mHgL-JRv8&A$<5Q!GzsbEDyi%cHaw zc9OX2y1M7NiXttZ`#1e1D%%OY0zg3<2?@)SxG9mbi4kHR3wAM>Upx*coMNgtfE%{< zIswZ_3py=t}oo=^jH6NXk#3jnGF283|iL(!+5S{+_PsM6G#iJ@=}GY&Zs=?p%8&enB;Jv(trLIk2AXl9OLafx(W+Ogbs)nMl6a?Ok2^#2JvFz5(M%H@8hV zQp9Kf&)fPvHT~7=(o^51z3aWV{Q+%m@)_(CYMyTYGU=*|Gf}OsJyXn$o}Q5E{)d$a z&Mb2?Z4(Zh@d)J3g)og)Z8kq0`gUF(9JCtG$q@Mj;0svd4LV=fR{f*tABx83+dKd8 zq44l&E#tP`XtCa3eGe1*c$wPVE`1A$c2egmR^Q&U+dsJrmFiv&TKKw_Bc!!irKpHJ zr@#5Wb-NM)c)4|d(Dy}mkJs4(?)+|yZrXf$Jg7j{5UDn&r0f%1-!P!s#dH7Y$-`yV z)qZ~RbvR2)0+yV}Skz%;`D{~e0XFGq&E|7U23Vg$V! zHu^xyOWgqWg?@REfk4wYGmsqFU_7S44|fx7 z`myopABSDr?Xg=4QcNn!n!*mx>nA7l=2VJ`XwB#|$`}uqxI3$Jhs>RCmoWwxc3N#P zYIg^AZY2V@u~2}FOk!LnJphjYZrbTS?qR=JQ^Rj>K!E`2*VuNU9kENXTsd;kjD4ucWP1!xJB z!zq1XxA)qzI`C}JNjA+PY!vV)vP`*!coRd;tgJY^!M zD|HN`eHS5HZ|7ODeMqr=ZtriBE2}DJ)hudN>3o3C{1gMzdn%Rk+GI~w&ouYXQ)^uz zSx#HiYykp;(*i)vHV4AU_c8TKz!$!MXmMh?^=Y9{P@T=hsOA_2sW0ncn&Qihr4t{Jg}1e6;-o6+d#< zgcE%Tv=`~=>AUBrQ45yFR&FOSXFiU1J5)qJ;b0nC;#0|+S|S_qX?jqjuh`}VaG>V| zB#tkJ8M$%tipxsG#Y%Db7CXOX6-8&cD=B@-h>!2MA7e?SA06ax#Q}RuYepban1&X=nm1ncQz-;$(uoT4rC-Of7=s6TT(ZK1& z0RI=uiROQp^3nJf7LOq~l8rH~F1r#ErQb~3+@4=QFpo^w_NJ1g6`268=Dz`l8hH_BoW6 zSy8%^&F4lnWl4j;DzU(i4*UQ%%j|IBpt`%4Up>8a>$(|C=WeX$U*CEBM_E5{IO%dS zivq`;n3#BlJ(bCa^7W#p%#{j1vW*r172`;SZSZOdZ4|-{fODU z1BrGM#ZdZC8DOsYH7GMM=(};XTK*vXAvvCHL5gLACl?Nsn{Cie0(!9!GIR1Xk52Vs zxTG3pXJlj&5uJ0e&tf3`7S!h3>@?xvFt60_;D?Bta{H;4i|nx{v-kpr(XL8%C9_f= zzPj^rc(kmPNBSB}13dkw(b1Qw&+jYBQ~?MVK$3F-XN|@!j{elTOAr$i6AC>1cU~!$ z#_WDln4gi4g?s&<|HBxBX@X6(Vli!iZ>k#zL1qW!40P~?HK3EY)Qk+lJznDglx-;& zlw*3p)NF7SZmAV*vpiXJpSUt#_|Wf_+fpxHtZ%mwF`*-6{-1SqGxWXoQr@OJO|lK)r|c7j0;X~herWi) zZs&{_s~i7zyEIAeOO8#c%-k(#WZGH92~>G4zQ_1@J=Nw#6i43`x%2_1rx&4?cB7>9 za75f7hqiL~aK*(25Qx<$E$$wflVVAA?HgZYtT?%xBO7z&K?1wW4QEI}+~qS|EZ=x( zIZjFRIr_3#o{d0YMdrsxeb$%GO|PT3m}G;VG8^}s8Vkx`6lCNpk)Bkni3jVpB(*=MNAZ@RAXtEp{jn1{d&#zFRqg0)Y?NtG zb^Hv!LFsq+Kp)OA;{3qcRpRt4yjtq=q+^}_2vP_6_rQU~HrHU-x)}u%ENHmcg_tlk zJP$+2hV!m7a;HUVhIV7*M7x$(K9wsj0wGoP?&MFw)2=AD>ibuoh!+&qUNveAQ@AGz zPKk$IskA@ggWBR=jXTiu1Xia7N~QVilulHi_7c|CT+ieQIIx20)`P2-Z1w6~Bgl?` z;)@GprDbHKS9;Ojr?K3(W1X!o=k?p^1LdD`e~Z<`!Y{$ET>fS&V@e;j1X5rJ4&Ht) z(MU>!>a(GI-e1_4V!;~jux`cE)yen_UD9r-w+w*VQV7kM{Rvkz=Qb)&dSafJurX)Ip(-zn}0x7Z)S~Zr(f&qko7xladlt)t9!al{%3cj8600+!L{qm8{fm zsL-|lUaD&S8pVP7OneKl8dor1?(PZD9AeRLbw1cb2qq@Vv?qJsTQ}2~5)u?Nc!HwQ z?;s#1ek1!3K8vhZJ?YrO!vC0dFmOYQ*|Ss{?bbiB{_m(upl5PMH4;qbk#SBO9D`pG?F7U!B^OJw zf6bptlL1H9>3J1H(@63YOdUz=-k+x{Ogc-|wA95_69lZn;0r!6u{aLc=3Qb-rAUA2 zLqSoc7X-9BFa?Ju7Db0@46zCks=+24Z|8-e#SjP_45%NPZMM0+4sVx_%aM|1_4fW$ zgEdZP!q1*1W>D4s5==LFvmvy;Jtkf0UoMufhKNo+-~BC03dm%|;pI<&x5(5RDfR(C zAaM#0*$J<8yhn=k63`ZaA!QAA0(vCGIHwW?+;J$DkdfXTbIk2}vF~)^&)Sg&}yEP9{_tPLX(Rh?OZc83=Y+xo|Bd|Y?0dCoxPqxR1ae% zBE*!Kc$?fwX1lnncv7y%7r0pdK*iWQ{_e4SDGQ%*Nq+Q1?p--I1*_3ywM^$!S&qI? zq^fW%XE4_Sk`Z-)dDz&{$#Oq%*{7^&tOU{;4d@nlvL_r?#(5M+E{ur;l0NsAb+sgC zHa(?Noe|uJ{*+4Z-b-()si1c`24$k(d6VorU6}J|*S>t*#5_1~k4pptFVHvIFzfl1 zJ-~9RYxikdRI5oYA#z@OPti3qqOepHDOWpnF>m`>mrD`#MS8+O@t^_QO6FGbZ;q1U z_{AY&?d18|&N2c{`>rH{gE*?t7D~DJ{+<=PT~d4M@0|CQI`5coj$^dyHGV4DC!w7@J* z*aje2Y#m|H?;@y6RQ9L08AG^^Ay2o2Ju!8?OAE}`hszH@yZLeHg|2`Im)SuXixA-K z@fcF9554ff^R&t(okMTdcf6eI*?c~~co5NIRHw6&ek%}lhC^LP!{inDfbxd!f5zZP zO@iz1cjW1IyEy13SCk4J(BufFC+`filZc?s*yX1cq7h$OYvdVoi}@q!>G=xRJKx6;Q0+ug$hg1wRL zU=Ycj`#h?S(i^{j8yV?}Q6P_;tQ;6uQ&SVk_Lom@u=`MEY})*|Xu#F?L@K0?-=@g| zR&lqgB^ny_)`(`dv{=3+9Bjnjndiqx3KQP zQWjd;(1?h>ZBG-Emdp--yBN$*oJTy#JK(JDvQgs2uTq&pDfuTET1m)g^^sgE+Y1u8 zDv(@@pRa_!sDa0B*M0nP#K5{+VJG+0^eCxKY$gzaX#$M!m(7;Cdepu+7! z9kxfX>Uh=xdQNdOo}XreV0jJUz<@cl6^BAePaQYrMRe((Qnv)QIbG|HSt{n@U!#JR zptt93+CKxi;tO00d4tp#cOD!jyUOL9EwgEs{3K(zMx3R;fvw`XM|)D~A?($&p`bR* zTm_!+)?&s!D)CrE#a>VldWmWR4#O|Q?ma1?1cHL=Us?on(!#Z< zZ)W!sQmLu=_pPhxslrPA#eOqsH-D;?M~)x1key3mih}f~b{wDclj7Fb*ER9wXsxej zYk%qcitxC(iEE0^Z)`d4E;Ap3I)0BOU%NFlG@1MwQcF$W3rE+4IYRSL#ipED1d;d^ z#_dq>pz-`8SwU(Rh>9yA#-5k=KPV^|u#H7LoB4E^)$6-5RGWVf5!_K6=aBGE`3S4xiU}^Wp7?v4 ze%H-#=j-J!@Wqvq1LZx&{L z!#3$`H7cJyZ;SSi{#BfJeO#ySBW?P@c|VVT!D41+9uS`gQtnNtXJxUutcMyxYaBXD zL`#vZvjkRTEf)<{lS8Kfe-qpFvV3pJY}#{m4a*X=I2*LfcSUU7HrrRMhRWh%>oh)l z`FNSD9k^UwTf1>UNNQ_s_I?|n@qK+eeLx~1!}?TP+zfee06vIyvX72JYx06i14<9t zv+@Ro6o9Rt3;|C;MPGM}K`9?ZT6iQFCkF>NHxW*gnO(1454d814Vi2#}5x(uQ!Um?s=WjTJ$X~Putt%Dl{=JuC8&r*q_6Wr%@%G zY(a0mxjTk^u;1>_QQu+G(=_9Ec8x(Vn^{S-ou?FbRE*R`J3&yhx1E3 z8A4tNuhZmjA!vldYjWn_aKh^1jlXAqP;$^P#8t$*G7Eoa)@dEwv%iO|$kYB<={Kjw z4Pu9JkAl<83!& z#ztG=c5CzNb?7KHGj1y4GgiQDf#^b6=rooKhb%hy!q(k?p*k>M?ll^A@|rYQ#B#fI z7zc1!bnkBMKZf)-JzxKoJQjIpgVs5N@$0;%el+hh;B++^t-#gxke{d$3|>7)r7u-& za*oGayk}>}s`yc;ccEqpx=fDE?N0FM;R!ij&C^ML`4ZG*TjV#D_&Q#cm4Pwa7*z{T z4n6zR-YEzUb@ zUD%>Otx6aT!M1M{PjXFFn1Pa#yD~2%gvP!K)B!1H8~(FbnGm{^-F$cJ#{Y&)?Z)%q zs;unaj#)DY(4uA#%Cq};$3H%9p4cca*XwxsQ)u>SmznLBc|NzmZDc^#5=$jk9%E#5 z{Ai)6>ib;^VL3{odXd6B&mKGbEQDYcwNVjxaloXh=~D3vl>~_DHUWi>*J|RDWEEvE zXWEjZqKNH{KKu|e`3a>uy%!m#{`vFi<)byNyScjlNbZ3Nfq{d8Igl#a{gwWL{v4OS zZu;{wg?eKqX<7hP>S%qX+UKAMAwM^Fd}vBtRe=agkKi!e@e%e)+g^p@sQrgH@XNn7 z_rJ&Hx5t#zJVa-4tOS1Wm^E&qjICt=^tYJW6cjLOCvqbMzHkzIpCF8Y;2(e4N?$1JN8vq%BcMVqSw zXF@{nr;UD%?8AjjCSI;1Q4{p$RM+Lv78Wrk(mFNo-cz#vZwkDAvY{E+sISX--lb{< z+W%njqQutV0VJ~|#-Z_ci-rn1oUACxe7$Oev-VCd$?wHM8LW{&J-Ho5Y^y=CWO1jYF^1 z8*)=&>L3d$JRBE$dO#VcQ7dF33PbNKmGO8JW?bH$%<+hN_Qs9?cSuLM3>xl_HV7$W zyzb66(rNi+N=O%dTUaFI_HI*XcM1W|)a+$>vQ4(f#}=Q>KGAW9`QPPXLWiK(k#6L4 zR&rDEX?{h1iX`G&WkC33^!MlC#fCedWb`zOP}9jQw!=4g@LzIK#Y|r2>0u4g?*?R} z5G1Aka+;ilhcLei0%P6EBW$r9^w@~DcL4rk^1B_2m{*gfc(CLiU&@*rzCBR!$|1AO z^ak@;*o^yFHMr5-p5|B#l)C(YdUqm8htftbTC)4NoNH}`%{_c7#y!68!Y*6-^5xk< z9pGPv!=(E*2I&+&Z2I<-d!`a;V4)EU-Az1KU=BrjzNbp!vb-QBmF27P#_Ke^!fd<` zrT0;pm~_4Ot#!RDFp#!`&7_tmFVSo_8x(~^=DNZc8;tI>RvU*B8{Zxb62UGHyeU0z7%uShnB7XbpU=UmS3Uus_?8vLMIb6%D{gi9(aXe`%7 zOImVkKR5Y21@SQ?dn>7^v{{@^?hZ{Ao1hX4`z=mp2t!HSuQ=hZHQMwA|J@%fBp7ob zdww611$ufv4`T$_YqXiKs2^LTg7tx?ySs0Tmmi4`*VK%r3eeLL_H000R_)^^3U~8u zDr=!6a6L;9a2-FTwsmw%>idrEo!-^;W+-ie?;d%+&d0Ioey54&kNr@Z(g4-B)B_?B zdOIcE?B735byLXTZSr1N{jOmB9#m3Np&pW6QCWA$QX}#HHq|vc#`5^^AuO$sGv)qj z^j=pqskh#CS#8O*(Ux52Fy@9{@zFsHKEL0P@pWknH);O5CJ?D}#6@`U$6@d-cA0U1A7gtjq9nSUitLoTel_7FO$#Gio z4xQ<~)@K(y0tC=%F-8EjJYFL3-(8b$yS}by7ryISG~oKWMy2rEhQe687frgZ%hhyP z4J^`+`+ay0UwFVP%g5rmGovBnVT`a=TB-}nw|ta;aH7J`FT47iPeb|;+^W53TRel` zX*=uVJw+STJ8Po$7u)TgH8*tT}lp9uu7>$x*0?mwPLJ? zj0_xeWUf$=8vWThqWNZc@Mn=1LSCSj_%D%dM0swheHXPsAaOUf-m42@fx^iY2qBOh zURrvpUIl4Rhp!h|R?3`Jp0Cj;W`SC?-G)CBWpOVL_iNclmf|qsx(lR@_aS9yaZ*Z; zee6gvJzG#}R1vZf#>s`ke5T&aNiE=SwT&)u^x9A~X^aL`^g@$w8#W?lmQNR8C?VC{ zNqzNzK|M2r*kPfCqv-7wTF-m`x9de=oFbu=_^nNQ`sy^wmm zA`oh)-_$xH7g|nKuhKIxK#JDjvk36?Jfzh_>k@}#HW^L8vv|oFd^B8$a=OI>>Bte} zOlJx-N>@3Tf(yqw0I$??sW&Tdr0AJHbHb{^4}X_O8uDl?i|BRdb;-fs{(js7l1tK5q^BYep^P7VhJDP61>G8q85h-G z=%suR{JB{_R=M54yMy)b7D_C7(1Us5yfc-V%^$hq#_lOrF(NQB`MvPOQIwVWz>fVF z2{(Z|R4xLx5kX=aP4s5xw2EBJVQ;G^a-MVja2%3AE|fo=X;bvHq_=F#%8KdiqpN@n zh;J=xEX*vQRe>?yT7S7LPUtsYzEZQD zFeZ@vVpo9;fxAb&Ur1cI>6}cwzP+Vorl0YRR-!ZRsSAe3ffSE)bc{ONi;CKAnVPWL znt3ll?+Xz29t7+NS#bY6R%5aQQ>+jkf7PD-p$9W|j>R{B?TtUi+F{(`ESbk%>r&i9 zNxlW%`tgsx$=l=i6k_;&5_j)z@x;nNft=6ouoymS1pI!YI;1Z}t}v;v@O!}; zdWL@YY$p&!?nZCkY=Vl|M3uzM?;;%eG;y1iWhzo~FGtV1xTF+=5aPf+`=zIuLo?-# zufn&UJ~~PdzL^5M&c=UD8Wuz~vMMdhZzM=2C#s4mfP!%8#bsqP>6UNnGcy?EEMpA} zs5hraIMW7tm(oM`_p{)|s8dl6yx>A-0U$0hapuvI!BMjMg+@geL+UU#bYE=pV9V-j z18hq`fHCog`K@I@kd}(Ju`~*QX5KJf>tDnu59RCcq1>+a&VQ{5uTZUhxGEcpHe2V& z0GMGUc9djB`cvM^V%he^^CJoAUf7O_{i zwm!K;Q(u{=mM_y}5ca0(Myr;omb`9l_m$DpE0PGDY#pgm$~G(u^S4?}=@Bk@N8yED zZ;m@S|3pcI<)7#Q)igG)MuLoUdylEkmhdnMdA~)iD!ZbhqQp5+q&4QjaJRz>N|ZDf z4*q$Pa5@5&j?%|x$yBxe<9}{%A`$VvP1)(~g+NyZ9lN}V`haRVYipa+Bc8dGma3>s zK%Pl+MzRwV@b&6a)*hlDO8Cb%CA%!p`j9#1h5UX2lQpJLjA8d`&|uVtcl9-ROK4 z+Qupyr>?gyiqH?0LcMCYK%_ILF6r?mmrhSfWML~JeE$K7&r7!pSyu#QJb9YI7*WJs ziP4HTj~zSlH?_x4m<{GJ!&I7j1#yWxcU_NT0W*RWmYgZfXBe|EBOY`vEy+LQlVz%U ztOpp3KT&E67a6KTw#7pDbJbFoKp={1OuI9#~BHLn-^7J*$L=4m0QfrW9 zGv(o^T>3Kruj!1`&bQbq#%Izr{zyz-Q&Uh;4t#fKlzJ;~o-2WminNcNNRQLyGKVE zzviDyTY?*U>Li1I#hoxiNa0j8$ryW@I93Hs;+ptDxO|M@UtsZFcCPsiY_7@$!`^Lz z{S5@5B@-OC9}C*4`w=d$copVyktxQ*&XfM6Iv0U?iLMYAx#gH9gL6osiwH9y~L< z;@FtV*EBBP6^=O8-3<2uBrHeZ->O{rH{-%;u7AY4=)4WmxtFT+a;)S%>w+qX)q=IC z=ilZT>;ehxL&;Bt0@xv%0e<-*h+ct}Rup~+6WlH>$GF{+afmR*(J@cULVJ&=oQv6l ze;9djgYGCUPyZ52r)O4~b`S+H61Jn?)KG{_H-^xkR!KZ0icFn!E&H9FCWlp_s$zj5 zwOwXrJM|4NPAf$`V}uV{5q3tCEL?B<3%qub@=W@&9vpnAy`rK4R+gu=?3crv^yZcA zmZPcLQ3I+GOXD8I5Eoaio}~@n#}Dvgg42f22j=342vGR7E3Iz88n~3q3^WV>K6HAR z1fFD`WUaz5+>-MND0A04WTzGWi(@xiKDSk{-qRBn3p=v7bPXT2wk9wQmvMVX63;-X zI|Qz%sPYkRiHNW=F`@Ej62ahWQk@!0X>lBcJY3~h9kpZ2D5%l1ib0ym55*V#9QZ+Dwo8q6Aop@GhgK*Ysid^_;DGxzCb(` zJc$uZTTwM2X7O=w?unI5+duz?N40)26Rp571fUm*C^V*~{*gDpD8cHwzaRX~^#8+u z#6fHZOuozhe^W8cU*}4tO=2=Jra|lskV;UjW8s5yq`AMki?OjFMkCyH`2T7FX+05I zDV(Ea-0>KSsz5{Gr5)`IOl(YOh_(x#8s`d((vZhP^wvm z#~BCv|G@X#y@PyhJ57c0YYKgdNr;{S4RV`v_Q-0LS){z8r$FAlb#R~*NJlmH+_^|7 zz;b^qoGBQ6+<^r%2qsh?yvw~A1%(FOtYX$1)JUZ#tT8Sp^_nSndqchQ8H52Dq})s( zEL*{YE7lsR+g)q|4ZWs`gpmV--ET*4i=MS_bsCFkq#s!XjBk)X@J`ka7JhVSt{2@L zBcu9Ut48aO-4u+%ny(S&Lgj>v#5nTSKSf%CEag{69J%J;ZIiNj+_t3~J7?h)?jPO# z>Eu+(wn@cE8$Che#|`L6{AXnnG%%?(-*D3+2PCSeX&Y%L$xeoF(n9}pF33ua)tHmx zXa$eNgcF8|aK=GABR?Z+B*y(-Sv9JWW&d*~SYSmk4N*JgjuGldPxRymEjupIUUK3X z)lg|v|6Pg^PwD$9%eq}-fO_gUi_F*vk2$ANj~5|^o6Oojks&ej7niqCGv%n-ob5ji zhDl0F&(AVrqt8gx)nOSBp^m&9V}G~=R}9l+*nq~21yj$&c&ZXR0#A(m06J&&G(1jP zK#-|XBjO+3A`COuAZaV3Syj2TNTwKF4LmcY{=FQ7A2DWG^%rfJ6itKUyQFMp(nufm ztyGtWOg-fxC!OZ7AA(LQeVebm(Ek|*Ly5TmPup0%+Vl0^hZ*a*$jkpJH?fR5xJJv2 zxFK1As68f`&6%uMIKx{fHj&@|NxThdWi0+l=?|%>)M|Gh-#gSu1!{yx?{%7n@SCL#byM)}?aFVD5j~ zy1QyUg~$}OsZ?QW1RR1Pu_4y-0qsB+KDK}_5%zVC5PJ!f;;lPCZro^APA(F1QN+bJ z3Unqt>kOW-FG4_j!I^_p#Di*_O$x@7>(4{!L;efdvk* zGv5^DAUkM!44)wK_@TcmkthJSHl~OM!$*<`YQy(i}*)ft@4Qo7P<=uXAg)7GJd_FLq*Zkm8IT`-F;G?*-H<4`ZJE? z*%cNXi103{zo^BxDL$6ub!zzL$1(A71Z{Tw>H5${exFI8iNg)}z*=o+hplTF%@eV| zGqJ-}cnKH-p`q}SaB#ZqKNCDWF8G9%Dkb5s9v<#*pfE{rE)EVrdnp0`olZno1M97D zsYnaaHJv?()~Wj!1_n}axkj~nBU*O}>)JWlhS#!DDwzk{+3xSJukY@-^b6@yB51De zzz(n*PElepOUAd3v+z?xm~vo9?l8yDP;3R0K8jjcJBHu>WgGAUPU&j!l$D z#ZBB`9&fI$fVMUvKyPcT-fmNmj9a1|GPr?3QSL@;OYl#8dwjgpT4RpZJ_@Vzr~1E! z8GbB%;Mzr-1R75h#uR4AGlX$#!YCIqEb*zoe{gkm#UcSWs=DMcKsd%QH2OH(TGQJD zwd_9j*WlRN+R)TesNK64#)13b5xD1RS5KIy@QimJZ_x>K5%KNpg$X#)OT8) z=vmMrfu{8jP(5y$Rx#8ZvUNSTbaVhT++q6sdz%nY9SRpihp*X_#1~_EFtpLr28>5u z9v|VUML54MN%0YhO;LdmPrUB?Y zT=jp0pw<@SkJlF$7yKM@qh5CxC?m%1)3H6Q?ao=@{pgUDDs=2I0ydJ9DNRG1L>@Xi zI^I8NejAzET$6Zhe%b!9(r`Wrxg75R}cK4Dg}V)ZJJBR(h%1Ho?P z_F`^`g|>S*Jg&pPv*QI8<`ExEaF0KcC*TZ^h-liZo+S+R<42(^I{>oJ+bgAW7sng= z`hJl21=F?8&U&9j;?JZ1=3-Ii(do-LTx+mf%9BL%)9ws55zC`uo^{z~tU${5frdpU zRD4{e4UP_yQ_?iZM-hBc>P&f`2h;l(WqR4%0 z5MTr$)7hufM_N>`A@REQ$PMC|Aloks+#zU3(E_4t2j_kk=Uo2Aaz zzT93kBK|;I{%~NjyIKg-s?LxH0nm8hA^FR z^V?#P7A^+n^ti{IbJ>x@B5wWQ{uI08MH$9D>?lcyWfT}g-+Tbd+;VE1lsD}8i)KAX zO>+noo~r)z(U@PKpY(3y_U5>6@vW0cZC8F(6tj`F$fKcjNN4L#zP`0zm22ARCO6w}Fy@wNAN0X=sTRQ-3?v z%;$`xq*lW|egH@;(&%l~u9lr$ZuNJ{TZ7foA5&9&aN2z;?O^|)AtxTF+SNwFlYp)I z{10Roq(enU{+UUnh*iEuA-7U%I$At7$*6|gk*zGj+WYxhvnB7!!Wh znbA>Z>~lG{?tW@C2lEuTmW1;_JlYNxNA9N8wbUe~Gp?qfy{-&NBAr1Lrm}qiVjT?J zMXAYf=FW=TS9BO{5GRcftTMJ8yi()*8Zie*^`LjQGNjBH{IN86yNwbl*%c_EOO7Rs@7qw*99cJ1xO6?redabiO5Ii>KF9vW zLD$DnjNL&R22I0V#6ysi?v44NPqnR zB&7ALVrZjJ_j5>lyEpnuv*VqNlEHK}2BoN|XgswXJQA8D)!m(oIhle0wOqz>fmKuP zPA_>t2#%mTL^f0C{PXJOmPo{5C-h$)1qCJe#&L{cbOx5_wmT0#CbZdeKYVqA2IxLI zG$cSxy*RjdudtXIIGIULPcIomB4EE|AW1V68Ht=wgKaGtMJ!-y{ma=IZoRm?UQ9K3 zba3#Xq{Yb&)UK(b62SL8a$szX@B;l=*tWO7Cm^KPUv5gOtgKA(X*kq%mqwvG%rt$A z+rr`)<<12)I$C;nFb1Ea(kYo4GHmVP@-R=KKBv9iXm5B1It2Op{=O9;kT{(^fzHFT z1o`IcEmlpo=c`RqqvO5T6;V+(rl$NAG#0NZH8Mg^^~?3g9K@NK)Cw7AdwY>!ahM21 zM8s}Maq+wJrAyP%3GSXAh*L~le875e=6$(2x-U593JktnZ8&{$I)t>)PLGb3E4*Tq z^9BP01J~O7{ym*?gnO$EGO%z%K(#!B14a?N5U1`a2=Szct_ zwdrYXIv&Ck!dLG%8pU*O?>$-~U(?NwkP?S#x0IK0r+t%s4%4ZN#R@NZc^e-+;IO6$ zc}`AjYXTt;j1hm;`tXZo{5iTxva$=%f%RLf>$&UpD_eO`!aj!zYQKMD+s{5;b2V@ch>J%@qwWqW;t6rnF;e7~*7lCf z94}U+7v~uNeC?Nxe?cMA&{Xy-X~}dfYpfic8*^Ik4?AKvC1TfCSAThopKT3|8o)o_ zC>QXv`D|ltbMeO{M>HT96<@#>!bZxE6*A~@GbwEyn*lq#kG}@yt1K}Cp1&35e+y7d zV}-yOrTO{!>X*XidQ%{Pu8t1--0|p1`Z6hd|R9$>l z*5xHBtIP9vk7$TdGdl;nRjHM8xQyrDKclx6c$HgQ=*a2-0OT0e|JN^IRZ=`Ai}Sd@ zX7^clth}Nmk=VpSqi8aP3T3q)DgbupuM&Yh6#K!+L6YK9+H`~0(y*(thE=q}Bqp^y zfv_j1e+DGZmVkxp;qECeCdI*P;%Loi%34-i`*q^x_C|)inG(aO<$_G=f3<)eBXU0Y z8-t`Ae`eigC0(Yhy6jiV7?JIhlhqO@Gb!N%)Vjz{%C8F*W{N2}N=OishoZ;}k?O^~ zW}RbQ-I&anL<}*9rS-3&N0@Pe1wzhR{`rLoY%V42nGUZ%ZLW|eR?k&*CTotyKOt3u1vmv_zN&*`-R{$xJlAulA0C)-k!3f_T5?r8hK zMtR>QNBVuB(W9l>GQ&s2Hvtx#ZIFmDzSqi8jqx!r&A0A0+Gbx;IU`^CddLkXesq5j zMW`t9Ks5hyyHcn0Tg`Ov$YEEKM*8GJLMC9Dj6S$2vtpx;rPKLh+=4zU0Cu;SWQ@o` zol_5z7PiA7Bo(pVlUn_2yD^z11h;SqgR)+CD8>Is-ee0(;H<_Ado!8Me-8*Ypr2Ej zTW+Wg`u0_7Am3sR^9Akd{(3@6exUL6^iag&`4*CUm2?Z880l13RwE(7Sn=KJ9=@O6 zo83Cx3{m@0q?4h`KKn~Ky&`I2xMo*^CMqI2jE<3(mWgiWn9~9r$in0L8VCgB??*<( zg*F?TyWuP+ulXc625GO{n zLyBq00Z@`Z%YAw`7?_3iF8)>h*JXq4SzJU-zbVdlII@;^!Ct#jO^2n+)qS~k4uv(& zEZpd{pr?m^~xl>#rOoXD^-5(*B&H*~yq=Sc%wFu*EJTG;UGz;kij7*ZcH>RwnBI?` zNV27fIW`F@0FFjJZN0=w9sZlG=f$l>t~H+2b*8{(hf`5=F)Jg5{Vakt}{__&t&)^vU+Zejn(J3_(Xi496(wZQL0nHhtMKz5_?6v)1K zx!DzyK01a#nGwtCya%uE`!R_wXt5w*xFC8p_)WS@j~xUx z;-3JsF^8!O6ttcb4=A&FnI_90BuBN_Wgcg<~Fj^jmHBKYIgC zhX#@IX~NJiE*2IDgFTCrsFaI&Zg#ZH7DHHP#6&YB@Mx{OM@KMB|CmPv!Crk7lryFp zpZ^cW?jkI%uxS%;5{Ex2}Ycemi~?%p_=^UXisEM_$u z*uX_M9Ns=%RnJ|!lycloccoQT{NLQ?nw^|f5fr5o5BS+$E{GB)Ul0|C_lt@mz%i2e zsXpiBl~4$Qwn+FKbQDj|y9!hHkZYkdjaqO^YH}#MfYo43=Np{Y%X4wb24z9%F_h)r zZ#>Pvy+NedY@R4>kM;B;GV@*@!c38Uy}gDL4(oqFyR8iZ0-cGJ3IetMo4ujAq-;PQ zfpI@U6IJ#0n~EYTO^K9Pqs#VN*DL0`~S!4d@Im4o(&tWHfwMiexx( zEjE4X4p!-Po*{Dm5Z%YTAN=%vT~@Oe-TGSfSGN@!)$-XKP_U;P{F^51#N5uFvtjpZ zO5|E~2Vy4<+o2P`#nEFJhC+fu(d=`)gE zeWPje)B?KGvak{oYB2jEiW(EaonBE+bm8J0Z-)M6!@wBf@?ra6^0Tf(<&_t*G}zx z_+HiNereWg%dfw`-&V5=a#x1waj_=UmG%u_lRCT)8JNalnm zFOtFLWSbL0F|;ET^fKKaEn=t!=$t#Wvin_b^R;FXI7p3VBlHP5*uQ{~Q_;DSP!xj0 zsQIDq;hO4Dm&+e=J0%b}Zun4yZQ9j;x>)V=ek}pdA4|v^rYDA@BRgK6Jmzt>6gC~U zvAv55%nSdd-WqmKSb||LH>lEvDIDrs7r`m~8Wf#bQI$Avk@D0@d4HGoYMf9`tDTN?7Y%kwo1p)OTLaZ zwX$_6VbE*G{f@z>E63$2gF_z@7mOUsQtCL~d>sy{1K-P^Eyf=Sngsvjbvt?8FK4W! zez_+AZuVh`2RZMsbUFd^b;nl~&GOEGU69Bt z)T^DXQpv;~&8$%poqqFIDoz|fEl1ov z1dc^pS}-$5d{&zR_-*8`jwfPGHgK6V92_WZ2ZL^>i#`oJe0&Ard$Ha8!ON~k-GLJX zoZSRHRs&T!O*noKDg`g-7BWmrao#}F_z<<1uU4;zVO zuo(ij7fKw+JS7p$N$Of2Z>L}gjBZrRY!C&el3NFJJ4ii%nBY36(`w3ufgc#dtJr%g zXA8VQNO-1&N9S%^@#`=Vehh#N1p+9KIr9X0PlYXv4jB574op!AxIZDSd9N{x{EHJ1 z5V$gYIDhhc`bCk(LPJ=?H%$tEMZ!_77d;&&+e>9c%yPFeYBnZM%*$c^>N!l6umF!W zR&F*{>lq$TXmz<&>wG+O>EXu-2)NxGLe0|FjZk$@ghXE#n-SxPTY>zocAYi5{m0OQ zgNwnFRGm&mYi`r{+l|D;8lu7=FK_NIb39};fr%1v)w-Q?^Yg%ce-1U~JSi+om;J<| z&SK5bhn?S%dSk{oX-;RSGT3yl8K0#-y|N9P8XN!1UiF~Us{H_A(v?H%3a%pZiCLwg zk-_$fdxPOvSeVG{)CFUltgo)(RP`t~^eOALAI&k-&C}dXP@CPzFj;Q;1PkdjS~AB4 z*48s0JLabNymK$0V^7}GrsDYADUIHr;(|uz@}VL^XquCMv3M>q%|TTd@1-%HcD;K6 z**gH$X^4*sLUh{u8@S5pP;d#TR<2p+%#$*m|1R2$3dLceVG!mhUC!33Uh?1I8g19U zMj@9jEDwN24iRshoryDV=R#d9aQvj_^@ilLk#MJh6R=@k3AXLGSFcNNaIvrjmFxW9Xh3=J5AFgt|DwET%!P)Gv zdVMPfSX)UhzO=kT_rD>ULQG19K;8*4s#4_CzYV9wZl?>C`Y@qC-o%A|N*sI;Hz#MC z=`Wkz@?m(so9%_OGa$#GZ|8%ue6qGYXuIw9;FL_beW%(W!L|xMa*n| z1}lqsp5SYWRgSTQp$Rqxv#}R`TCFE7$CHPCgmsO8oc}XER%WzShI%$B1*PD6HSvrb?DMXpV`IVjNJuI( zeSPEwdf%AF*8raky2pHUJYDM;FIw z_K_WW#0-!30lR`LD!e&cPY|9Xf+K^yAF7P|*d0HRxODddgP^c+d#Qf!c!UAhiBzn1 zNX&&cueS=mKCfTREoU^wQavtKh*qiV__q*!yG(db?yheY2$_ET=8rPrU+MM2!jC%P zb^jG+GhaSov)G$ytbz=M@CW?wG~TIOqAlIC!YJxEMJZ z3w*tmyr`2VyUQ~c(EGAu zFZgF>*`AOXbh*2|G&-CffvNe4!*0LMCNfuNMr58SbZF6!y2 z=rAs@zVAFCnwb@O)LojHn{8#~{AGPx%1RwI+gv z0SW}<+MiN6_YY$0>)9SLULa?&F)<-RA9#^gHMO;^#Xtj{9hz}(nIDF$& zvF{G+3&g}0K%q1m-7R0|?OJU#qy5MCp;A|~m211SqRI@Z@-uE5kb4|ita*Bx<-{Z- zUo9k0=aQ=_4Y?ANQ)7=&(iC}geQDa5}J@7jdRyV-Sn zEk%wXKY|H|-{u`CVG#+|ELE#o@z%edr{3-P}659RO78m$;MOlX)R4yfU%D*tmJDIj)a1^@bYF!>}*-gM|~+WD{3zfW|T{9 zi7@%D056r<*dwsf3Gc6_q0tw@_^m1V0<_S?EYui@!*J3Z0E_0hOj z8d#6C@2C6fZE8`p@F=J(a({+sghQg=V#oc0pIAgnw6ol@PZ$zgr06S3*=`Mv@kJ0D5jC5|L; z9A`azJXdg0fG4U-zjCdlT#?BRz_Y4%MGv`1TU8VKy0p47$X+N-+c!l7 z>pmwVKt3!tIBk0X5hoqFJjKcoAJ>B0tw9z7yov2?)X}9z6&N-Avf1jiD=*G7-yL2G zyTH#G^vJX~H8?o2URT{{|B^C69jV}9yY6*O$KTN5w=a#xPhOaT795}WK6-P*hU91c z-TpdnO8|CrY*l9_5%;y@5esgR3#HqMT`7ke+ftP&jNvforD%X69F@5H2bli*(`YiU z=45j6%mPhTk8^c-KaDdfovl^Rto4IWe9C608|J*Q9@FXG-8Cls`;YVC)(mfhPdTXP z3E^-YHf0hcTloqoXUo9{W}9u^$7`X~?$3FW0=kwwqUm@MtR{GkLulwh^mI`Sj@Ee^ zNy%Suu)hx+^{PfqpL=tX9r=JzhV3`YYF;@l~6N zx(6=2enL_qIME7#Y@WZ(n`vEjZV z@20@V$EOv^QS8%ChvBu@Q~GwgmZ*knz^q~=!*#8?79bcdt;qLIF6MZgiVhDf7a zZYqRlK&ay&@U2?{UaqkG!cyZzL=2C`p{S0XUnLok$OLIPf0f~CsGhy}af*s9m!+dk zzw2>%!y-?PN=|j8PIS&v{1Leey!0@cnNF=pWk6`Pz+Yy4RZZ9Jbo|&$K2vw2*-ZPB zEhL{ITM*To?vNqdzQuMc_NYXKC=OWIUNwHLru;;jl7dOj5Um~=F_bs7i0t~ViwCT)FLUA@@<;CL zV*DU0(k@boba%c{egsl&pNRww!fRb`NRDzJQNDZR(hu@6494EfL^6rL`CLkafjrn> z-uws}H%>R951N z#v!RX7IUuFK3jpOJ6%dYTMnm~>mMxo%UrbxD-0D*St zu((kV6qY)1TXHJ94GW4DlU77~U8d1cfe;i;oYE)d?@%^KL(lv6Fp;QAN=@YcOXT&`Ci;))_|iVra$1znM;+Ehyr%B%ady}MJeA>6nhd8SmjSJCSOxYEZ-iS$e+a23b%>|$GATe(*{B{>P)mS^&1 z28y6tdMxsLh0pJxDoWcyBn@GTm1Sj}IunW4LIo1^pep946*qI_IvbT=4qscz5J!$@ zQyFt4=p*0Y`l*IlDNZ@d^U9aBV6$)^nUMN&QcRZ+sG?mC1o{St^|Z?iIw9&!EI&%Q zk|pZf6^#AwvT5*&MNUpnY;4K{^K-1N%eQX~O(AD1?39sVE=CsQ3?J{Qy)Ruq@)S1Q zjSJ7jx@Hwov&~niC6`bBz7@`O{c=)}RW2Jqivh_!8!ld!*h zX4Ms9ucc>_Eogr9^a>LrpO2ff+^r6E_3g4bT)N)1JwMy3AQ7k~$z=Tea4z^`zV&Pk zIe2O>_CK8uCfHmEk=M+`{fI@5(HH=VxE+Z-PYC*ng;L=S+6tegfBvZ&b+?A7GZ{i{ zcI52t>R#;fJYFX|U(0Rw=er)YgLA>FKzs}s{W6~)U%}gT|0E&!<@}teh(dAjB;0qI zAu5z84SGiIbC2Uv@eH4|h^VC3$+?orkTLsq8f-O8{=iKebgg@KvEw`GW=184h;Cq_d$~tn=o+lhIF0~Fc%ECnOC0f1{L0+T zYr_E(F!>mTVilqR&g;qS{gXT8HSmNX+7bN`^-$T%RPMlO5OUt6Q+Hf}B1$hp;yyYt zh!XpCMZ>^XOI;g-n3&t~?^oH9++0+CL@MM;d3Z89BwjeUEXaRKf*e$vyz22-*&lu| zB?yQGkmD_Z{5m^954X!LI6g76CGx!^Lf_D>ldMF>sm}z-hK#H{(1#pdTqs7%fsYzF z=%&6J^3Q6r5gTJ0dP_!U=u@Z#?| za;~;!)PIK+5fhJ8;&1IxUv~oU_igv&YdGJy>G28K$L9@FFQFZ|+h~PhDa4?K#2c1e zY&K2(5Rb%A_<30>dK&Sp%ZNo#0PJo~kT+&Vj>_1r;j#Ce_iKfNzZ=-^D{cKE)ev}RyMi-sp>|GIKJ zNi8wSNlb)dy$;wbqIRcOqSJo*#JMyvBk-|1hjJ+4*PiEJ{L*8Zmpxj?330oKi^FZnl%>V>^? z=H+?^0Av^#j^}F*#*+NIKVekcgf;4Z43W3V14&Ce=@X}-O;uTHyEr*nP4bu7v~HWe z=hGby>#p-_x>eg>%%sre#d8gqnEkFH`n_+o;IQ00J-P9b(Dw(@tg zXeW6I9aAr0UMusHQ4VW8U!b=ji@%qrkW|#`_d}3gP&3Ko6^blg*PMbRHTdir$!Ve7 zCU|sz`U_HXiF%2}Lc_taUg{-_P>|&tLdIi!B*;$qFq2cS&oepE7Ytb#Z@m_y;2=t* z2!+Bd2t&n<9F2eqQuXA_t_p`jZoDj87Bm6IJiYeoE+#Bjx(A=TIxpz`N&1;mf zBMHoO=-G8#pA(k+G>5Ltk~<1 z^;0hl`zUAGk@JW^Y>b#VX_PIK)hessNWQV3aTcHZG|x~tzi@JwnUjM3 z*c=j7Bh4SwzyrKO1HRgQsri9@v4^>^2Z6bqQtc02@Pwx)etv7${KTpbZ zt!Z(Kt`mVKl7g@4Q{t`|`l2q%d{-5)>jrw6{%lA42)YcnejIAaybvy4B7VG zC;6PBfD7jDc`WWLVnuW{I}&id+$i54b7c^46XpK`Gh(i#@WApG7HC{CI6nc^M_o&t zEfQ~k@=8dE{v88mkZ4{SLFU(rwlZE?^yFRUtf)NF7n+^+JN$Bua$t1R(G<2*&JlhR zXAe_KO%ClzJ4Bq+$}y|_*a`*$k4kBUhi7G11Y)FBI_RjZRR4T9%F$F#pA1=|<||NJ zWY7zl#7kzY_W1Wcgi5sY_ObT`R=YiCeE?WiTAYf%Pw!_CG<3%KzK&q;!4wJw1?5aJ zmUGR7g|UMfvF9qE!3HyQo+ehQkR{lFY#;6N=@BD>;O=xYUf_2Kmxv*g!1-JYBCr^P zquxXpD9Rk7F_o8=#)uiJdKrAW|1sp{<&|#=vcik|VHrw6kwdHx4h;gh@88F}$|CQF93Z)O$Bd)|7J&H(2YW@cyqOAbk4cD&7NOXXm*G;r zp~19(yMr*;Ue3Y7!s-P%>8sqn#-x0Hfh#v#l6QZ5ZXjOw-im3m6ZmFY_?@=Q# zqhk+^-Wd@gnI&&j7n3qsH0P^PM_kafYwWc1gGlK(Dao{PX*H}d^reKBe7S)ODsj>h zM(-_(e}XP-yfP+ji3_zHPHc|T_0bVHSFQif7h6~;(j@H={N;^UjRJOYsQgY$DX2N< zlW}zl9RHfszsysDP zo`t|a48x28oe>v5x~9H=N)i2&er^)7*QJ6S+bq;gbki-+PW}7@tCxW&3<6X1C zaTf~{NZjLIuvv4szaPxSKK;*+%FPx*>5M>Wk4b2Vxv{p<%9fMI{HPW^ATV*Zpy-6^#eu4j)UMKGX@k<$Nk;YbR~nzgB*Ezi>X`obW3+m^O> zY=N7QD*%AN*;(1GuE!Y(IVi6`tT_e=%Yy}0zv_9vpJ_q6e`V!=xjSF0%A{WW0e?sj z@1+UJKAOc3sv2HTCD0!B@rvI_lgqOCaR5i@deWPWzQZ&4K){4H$|r+?F$cvdn^EQr z?3_HC)8eL4RHyXN?#VUI%j|eo#&fT20*0|@zJ68QyK^xE6-7rU-qqK)x~SyPZy3`E ztQF~SCNCny6)5=lyaCfDrsPXldxyL2z*J(`E%wohD3sSj(Ph{+hb9Z4lZ+k*;FBiU zVF~faVz@m^fAhMON1JR^oD!P%rg=`x$@dbHDa{PrVJ&S%k>RCeK%tUTg&OMr>Mmi5 zEPEP~{)^2DV-N2Xzl{TB^XrD{DYlGulZ1!6Obf?=vZ{??RiPI~f_N$ZG4FdKr91=? z=_`O|;aMH8d*2uMXY>ui4%D{J8<}Z8_`UlQ;))q_BMNIm>rKjH&RD-dlKJ$*e@7<1 zLIt~S{81H@o)K*9KDIOH3UErK6k4i%sUx2Dnwi~x-&Q%h&u(*=rJwAW#4Zxw*KXvyIOQ@$) zj~CtSe5MNS@vdIAb#ZCQxE2#w^)n+Pb)@|BE}2{DjMLH3r)08{QZ){FadNOxTft>(6bC+29YAotsJl7n2`M;HZnas6I&@1 zy3TIPGd0)tniBA3(%w3*@KA0|Opl}lN%}umqWbb`9D*zEF&P@C7N%QNN&xF-rA6nV zr%%FAL=}`hT{stEqejaw`}peOs)$jI+DN$n-1$57+Y( zwPbEb!+&#Dvj!kHf#3hm(pe)EdYH^MkGxJHcH4g?iw1Bpap%Hd zX}=kXTJ8w-_&&?wiLU)IyB$s_G#}4$yY78@UU^=7)y)>5h$x)5Td6l%YraNN&U0La zR3)n=SL%3O!%+zOU#tPsY>qcVx%3O?pIh@+T1;M&tY%wX&tVaFZ}w%Lo?1k|`ABIt z0rzk`erMD=UO+iZB974S?3&8xt$Sicc5^A%Z-n2|@EVgE+a?if2*%F3Gt+GMUMDe>;%N{52Tg=ky^a7|Q#>2qquaO)rbfOI6J<{WyJn zjz&@@{LnUUV+-9aCcftPX5o*o^F2Lwrzci+z*bRUFOL6paw>wG8%sQ~fNWAT^w_Dj zHGrqMjW;_5{S3*L;(03Gj7jw4y$6@%d}pK`;J8_Dw2S&XYqLF^&&)XGkL(AmJ>ooC z#Sy*y+tyj_cY7cwwfnnzSz526LIp=KaUOuybA7kPVyJ?$hT{GM6WKUr`8@B9aJ%G|)i?m{wokqbVyeD+BU6>- z&0bHVtc>jubs{50+kzCjuEOT-_L~A`&-FM4*^GaI9Zn{MiYF%n(bv}qz{AtChUjrX zrv=HKF7CQQiPU>MR0F;2GU87Oi_tuWqaDyZwThn@yWRoH$+tA+TkA2#R1Wt(&R2dh zO2u@+I;+Aw?J3u6bJx@S&rDh>GdE|uS)cBBDc{ZBi~ZP3TQeiC zrs~&bg_+fNYca|9LPqctvC^AILCtS6^J*GlYkjp*E`u40fjR{i_Me|UF=?v@)nv9n zsFaV8R}7l<6K+Z!LyE9XfHcrwx;?ty1tSO#Z4?{ON<3Tu->Q%i$emmAWgmDU99nu-l9a4#PP#v9>f}QFb^zNiZIEjmXJCybqHchR9{& z<|gNG_|5F?O2pUxk_MODM?0O0NRKE!zP(&7H>f;B8dL8dto60z-x2MoR)Jm~XYOUX zQVZ>9hY0__*0}gO5H=!h1cOKFpjt_`FZU{gGF}iTQ>PYH6X0 zC-(NaU?uYfOXD*D_V3+O5j_EC-q@d$)w*!M)BvBVKYU21zl}X^#c#3>bBDNTQ1m^{ zm%>mdb9k)&k|*)GoVY4VUbQc7=JmN9)Tg>Kg?mmPCj$8l*z$(=o2OgFs+q;`?>SYi zX_3w|jN8CpzE@N13~TTN*qju!0v)Z3Cx*L!)7In=jO}&Zut;iksE{k&B}YNe`SPDW zi?8CHxAal_n0u0ScqxQ);BYD{^jp^LgCOY6QiLeviCrpBfz$EPE>A#43dzb zI_9T3_ja1v!vi)9*?}!)ha>Oi426YD?oSsm-YgVgxKHd*iAYyxWA~MhihE@7=F~Mb z7^9F=<_4X4pO<8-K3-BIWBD6Mzs*I)WqSurH z8ps&a#`FfbwNaaX_u?3xfWYHhMV1efb&T0-#YN+iJ#DvwSN9-3e+x(YFvV~N(L zr`gUY6QRk4N%kLfZY({WZGj%FU3I?Q!Y&YQDW^4CPEi=cin*E5X}LGQgN2l9AB$N) zy^nA!Tt4|}KsrX?2lxJ43$TU%;{8dVzAuMzhE`!yr<=w*mRd(X>{9Rwm%tr)HvDru zXs9LQ;_?c2ghT$Cp#Pb&lH3~(!U4m02#G^!u*~lb2@7j$ZuzaNAPypY4iOW#*Kd-S z2}5Q=`E*P^NjW-Pf&|M_bAz&Cwg9x2}OF`nP-;&#ekUf~bY zDcFqP_|kfeFPZs~zThSXlQig~`!9Fdg5lq`2vX{F@kOx>gJ~Aca+zDqn1l2N^^&=Z z>4vg7a>nJF)~8td%jJ>s@j|K6t=GBtrl0fEF^H=RyP2hbq&6DPAYTuGb zKPdt$owB;CxNE&uzTv4UAzL9VKs|G!qD4fBsg9xXjec2JT(CMaHBaRPUJ4=fs}b@) za>^#bkJ@5=1SW5~b1T~ED2qcuu$#D$$dhb0Q2fnBh_lB4Y9rR{1Dxr@L@m-Sh3r+s z_Zn87JcDMI0s+cDoqxO0vLh3VOV*k{&SPR@Lnbn6%y?zLlS>KSULHTpl%`cVx@b0} zM@$OuI3cT!g=y@46>%;t3^RSUJSExRkb{|N1z``K-mp4GSB!o zgC5a=Gv;qXiX0TZs}FZ?e(UnZSL0J`TiY^MW{!g-`1mUgIuA2{W7;gVbiL1@G>tdgh7yHJEvCM)LT#GTMednwcvBdQ=Fwoogk z9%#ltUqlb(|J-ov8>++iu_)xy)R4BnW3fBMmZN?lzTN2NkDOFb8#a2x_)JMy6ImqT z)?)FALRY1#T6z>G6)TpIwbf%&l*>6n(N4QdD3Wz}|BGyl6Mv#ArkN&5>A1}4@K1|0 zKi;f&w$Yhkg*HQ!x~$I4%9=zN;)>1?fvL`Dt!}hV zdviqrfK~E5x|?4!_QbSYly$`#z%ihlZR=+_TpoSJyDDYz1;ZeL>IC-MQB24ei$5DG zo}j^GmY9-v)GuNp`r(np42<-dY`)^#!NLlRQw6FFOt%!G z&u;AFslc0!Z9oSVMMczJI?{s|3U2yPw~17U8GA@(L6_Fs>M1S>sM|s0Y1=;>qBBxhz|-9E==UxbzvuN61VT+u4rq!Ls3^LK$aWT%hLT`{yoE` zs`QoyggHwab;;C<*0qc@5tvBw-@MU8124;TOjoUP$nNCSpVbr*pBK>n(%C;?d;dUoXyh0b`XDf+H8}@3M({1?> zemBg-Q~eVRHhN!1)wMxURIy=;_di;5mQX{~`B{gkji|#BD=jjyOJX(WUpZhU7bfMi zbW%PLJtRA6Ul?fSKO(s?hg+#-OP%mvK14WCZ1C%o=>16RYsZbnnW>1{9&@yVc33F3 z(e$SctQ6 zAL{=`N$J^p9mYL{IsGA1w^(lIKRn4NO0RaykBk`WC$(u*!2hdQpw3lQI1Gpy(7Raq z%|k-5uUIH!Z~6(bK{;b$vzlz-kudGV3uBS!vnSlZw!R+W-Lxazum;cQS_UffT0?Yu zb$L}FXB|mg6CbH1n-Lkw3?!a=S`DBJ2BKqcDZzO|m~m7qd@4PJ3p+X?V*L7Bp0}Dz zv7zFgfx9qJokiTt;bJ+dF1-+6L?-6$0;!y|$GM-2eS6{EKGg%5y#xG6AmbPqqr0Vs zPtUq6FdOT*uYK=MKk&Z`taA-`ylpJLNy%PK=biG#U8-%0VqhQ29B{ri2Pl@-Jam22 ziMgG0yWa+bKOOKFkfT63Br<)mRp~&MgekZF@!zS`H&m^uTj9z9P8-s6?b2VU-M2Sz zd{aY&Sh6Z6K#Y9RO1pi)tEQ}?XgVu5s`zGNNcePa_dkM9$3jML)IZX+?Jxcs+b~cY zK}$hq%y2!mF$g&{vchyjKz3fq!^b2g6}Hvsoz$2ir~B3?ODIXf6dA-X&PWw|<-;cw z%^Am@Hb4mkvyGBBJ6j? z4Yzs_Kb>~Bjj>StBE6wd4bl{#y-n<=Gq4XJhM7e$GfL`VAqleYnQ7T^)I_F>vrmm_ zH!0;DC4&uHMWOU-1306lcH2t_2#i#&;Y4!!`jHsZs7;1BkuecL{}2isVIDd? zRW?=(ix)hih4;;28^zRPnWB}lO`;NI8*T7B*JUyljY|d7{RwL?Xyc+|OTKiWYE@kW{Yd3ew~ z54J?0%m5>nMN>NWe9~tEeq$;vOP@AyPtTS6`5XvEn8upOC`EA+EI$GVLM$#!c;qox zuoxfdgdd}Dv<09MA;gOzf?Ln%`hsBiN?HlFGsDCRnoik>{y(IyZA;kQu02??=09h%Q%6tdm|I!68e0}|&I`Psd#%eEcv zF~0z=iX}=kDjeeX|7cMlfSMzBY!?7@2>LNViMQ;>-g>APCqJjm(ATm9XGEMhB zx6pmc5=a6MUq_Kp{1i7q|4qa9(l7pAcIJ)>7Y)lr$2Yz_G7v$Z13emR;;e9#78Drq>*xto<^-weq;JEh>%&V!Y2lmoF zOZNb=#0`N?LdHfO^)n`nO&~#%X2dW#i2`w#G70yPk4QXcEl9=;BkvU%qCmc!t)Nu` znSuFbWmRo0ETU69PBRRpgP4h9@Hf1Y=ks>u zjJ&;Hgo2;tGx!!}XUWO<&f@)j$bZ|_mTTm zRL7hs-8?n{LFkGhH`;P=GKf_ZxYOz#!Vgb1>U+Q8biJQn0-xo!B#3>CuH<(1)y z(DAL)e^3}BOtQ!S*gfKlp9hyF)_vK`wc>$zyM&mBVHz4M7`_;eegJS3iuLOwS^kgo zRt&C_$V)8ARmYpb%3?DLLWE$%0aw0wyz6&4TB<*P0OBphknJHS~Obu)crA2aRD#)C1^` zg@VZju1P)&G;E}^o#^2c<|m1c%>W?=`AHT=XR~j7W`jt)1Ul&&^yZ*pnBDF0%zsOm z3eS&EMjbjV9oBIicW3kA#|-}dT|Iqa6<%pptb|{XahZlkrbhxeyG6srqQS$v0=_Rh zA;R%EuATr)V4lZZGiw$iE&ktHKsZL+v7{O}Qd9KQXrP?DPy+dB-QmF7vzfcC^-~N9 zr*h*-gt|Ouz*WRwGnq~Q_hqUA-ugq33$V`En3R$y8XE9#$?^HDda1Y4(n|Z_n!4Mz zRHX{J!ML=~6D(`hdZNb03f^#V`~Z1b4XZ_+zL(kE^)^xQ?{&x_9QpY2D*QpQNjyJ9zSb55}gH+4} zhGx{dd)IO3SZnj(%(3XRv2Z};v)=m&ViYj5a42a@iCC(8rhr7mAYn!h-x5+HNr;Cr z>OJ?|PVu7?t;Ze88IrMzr{NkKYh?+cr-ui@_~smQ%G6S4^qir%k47nJ6xugr_7+49 zh=cPY7i)AX7AUndFzYl=Vucuf4T6+-sSZYM*IUz(M>4y-Y_@x+zSDl6mr6X8rCFA( z1T$uI#~$?ml#-K^labr^417_wY{*LMYXvI{&TH`joKHWjcC|#qR5Qyl;GS5OiRW7H zhuuTN!jO5noE{*nsDEYd&wvyeZB!_1t~NQStE;8a6dutSvrx(Pk|CTYsA}k?d)da0 zm`xyr!?Y-YG@Xy8fjTE$g-|UnqKJW>ujzFAO1ZMw6G9eQlGEAMA9*Wz+zyf*9yODRj*bGN?XakL8Ek$#K<3sdH)A{! zn=-83Tz+rntY1de2?SaOzHTmA61p16gXimQ7A&?a()MlMPYx}ubgDRF<}HE=BE2l{ z`*ZJuJE;!6pR_7kN}a~X7)0d125SvJMN@+HCm9sMdGY)EM*ReajXzyAB13p_SO*Kl zG|8!)Ggav_7^iN4ZD?G)|F#M#;7|y`zuWUP>PS;q5Sga?L{mi}i)FM{lm6BMRM;kB zby{Jm^#8n`qS!}gi9+DzCf(SFt+Q!}F}X-d8R+?4-cS9z9UlI;48?iNUc=6_SR)D9 zm0;j0f#ANFk2kSV9War!ebwd5ms8B^>be}1-volK<-TvY|3I)YRHDB7=s z?Qh9uVfMvCIK_eD!sPSn@-jcW$3;&t91sas(ope!?T-ZdOhLIkcCazC`uyH{ZSMQS z+kFY=D*$5A-M7xVFMgB5?+tJDcfN3VD5-1~*sPF~m>p~5ur3Xxh9-ObfUr|<*y(hk zg_P9@kTm^F%=hEzBNUw5$r>K|IS^MTDSa03GIB>uE>N$fL zXWc}6Zwz&oDT6cR;tiF+#`q~n1ZW0oE9;NWbtjZ;t% zb$9FNh|9}X+0?Y{?CgwJE4`rICaS~hL1}P%kK(y$=gac^x)KsH^5sg^YNJC_03M&I zByhO@EK$hi^EimnhOJv@GWhrW{M?wIU&+|!epXsq2|NZ-8-o6@rKM)n4d2DV1^2m9 zC17L9=-4Pz3FogGkBgas)v?3wkM+9U%!lL4@jw{3e{slRE)C4p?X9R->oNpsZ`U;+ zYKo7;=dtBl@p!(Aygi&O699Mlcb86^0NduHvI)nt?uP??yE(=ouV8Kgbj?1UmJ5f{uC*>K+7J9N{e{_C}T#z(Euj*yT)m?!C=WL_-=-7IDOZFOE1+leyGo?djw zwR@z#B2!0Qd@zn^wfuWUA2~S>g==|vb=>(9Gb{bu-=4RDfdOg~0-Qzv?hh6?hfpu5 zrT4XKv$HM`llXiI#`e4aMcr9{MfHVk|Eq|IG)OZbt*Pkv!0rUmoUUabtD&vN#b`r5mG+I7d?!6Tu_>5#fhgF>7a0poiU3be zVIkUTSo*YsLS;xG=k77l+3~T85(05_E5%~%i$eW@xAYgZ>+$-Ga~8#ea$!LO7|(wb@= zhx-R>s%p}1+Xy1S*ny!T{~;mQ7$%9}a}7N$2p2De>O&{ z!ey6SR5!Uiw8vJLw@BeVu>8U!VTwLjzfLv@p4QUVpKNl>9I|@{1gLC`JV;PMsWVM} zn@0E<8{f^9AuOi7A>M=jC}*WElY58xIu)_EZW5mR08t8V-=Eah_K?2y;(Bjz_=)HM&_fh}f@-q0iqk@&>=~KmM#;CcAqvbT;^H+Uufz(JT z@i%e?F+P9HU7dNlEUtP!JxR)v_(4Rk4eJB ztna5K#@#Po90*TVsz$13q|Zt!D4`)cH;G&?VkW1dBcB;wEjPNm4i6mxT6PTP4uIJN zX2}*I=4(retACc64jLO9nfUKod-DR8$qQ62w)xge9xy~!P*@tW{OHMikWJm(D0MPZ zeesFx<;wyt9e>x=waJ`{c2nPb{AYgWi4D%qpECUrGI8q6Y-~H{)3BJMnZMQ5zT2gD z{ko-JBo9YwY}?9~e66p;9WPK)R~r;U3Ndsy!*yUFF}|y8*_&OwaItC_iC<-RkFmNv zJ6!r`3O(D|9i}R6;U)nIt~6LN8aMgxU**Kn{`R~-8NTEMf{E?--Yhte0-?jTH$gz~ zfy^R)YCB=d?OArV0!9lVik~+y|uM5FTNpK{y)R;XQYnb~}D7ec*j@<+H=x092Tehqt7rts^0z+$}(^IOY~q0W@_;;pw&(=|;^8+pmg z%4&O_Os~cO=K80spE?^xp`e~7&B&12fi84Nm$L2qiJ$H3*X*$L0eZPO41nB#m*_D{ zD5m7zMXL1t96gJ$zoagj`U^*99_>5ANtXq-CVE{d&q#h%f#f*lnf%T?^z~sYH*I;15y7XKzL>JHF~JpmA?wvnW!*(Y z#sldJ#~8)g93!RstMOdVBMWpTh=JkkwBJ?2GrYgI7ke>pY=~T>BqO_6#$w2#Xr+DM z-g>N-!EX#}FcEz3+a->4)xp9|o=1l-s@!^gNb~RTqALX-Jn%n4US1wuGU!#T(W{fh zh%Q0?D#i>=P6`9J*7SK8dy&;Z%3nTdFkbR7bW@-3{>QM+;~IR(d7_p0%fTy;d546K zEC3;Mxi`5FOBK59FB3^fNPHKo1FiAz%c)>ywlB{+TpILWkD~rG+!kbtnsxnHv5T7# z^Ec?)C}MgR*sD+in?rO(K!&WH7FN5~XTZ$SF>{8v!n9bgV!a8}9!x|)XcI_BmKqbb zTmGfJ5kR|oL%gC?Kl~W2HM`b$vEzS79>!1>8|9F&;{FCTWHr{z8t?=W1yOS(j#Td}L|LEpv=BPjv zfzMCp91%-!XQ`gp+ArZ{!x(FF8k#de@CLAUTwPp(qi7y*ym(P>KVQy=jC}>b@H29^ z?EefB5D`(xXHbL;(jOq*(OdDI1VE%2r%GzICHm{@Vr8pFL-Xi7)y%lxunMPED?sei z`C@jSb>xq=sFkuMR{sM#HunVBD1Eb7BQKlnnfk-Ds(iIC*8mq$NJz?W^oM$xakC(>dB(%@c_$_Qykm6I^%%bScd=WJ#2bD@ zfwhDenO=S0mL@t7Z@e_ehVMuv@(ix1wUcK;ICIdU4~BjBKvcswV}5g)FKTgeOX`^78}2GHE~Z*7^Av_dl+w4R$9iGy=xV)hxv-rUMfQDW4=B zeR3+Q;Gixpo-2C#=~DTaBp#FWMECCgai4{s_=?1!AKcnH+R^mjINgv7;?ia&tmk}b z_O0Xzm{4mi{gT1h@Aw^LSgASlO8wh(1)H&(4nnWKsVU|{EQ(lm>rofs zAK{sqGq1G_wRMvt$-{G4%)O@craUTle#axM>PGU!bVE++E^)YGL(t&?nQ=b0Vt!(| zZePOwSh;`n&ye>2)dK85i!DBnYWGFXJ&ifAwSH>@%zQj`u77M>2f=0|1QFtd{*~CO z%pf<$&QwO>onD9W`)4%cb-+(I3KyS^!|8>~F0-*8Xe7WV1()`AASWIh8c9cItu>W} z9;$nCvR!_)`x4#v={c8nx6&uk&A;%dlb`=|%6B-;Q-{iIZfm`DZq@!{>%>+QnapkQU(I;7uH$U!q!g0V4Aj}t z>U8#(l<*ujTaQJ+KJaYI;2nO*nOto0m`|WR?c1Da|)klLU8a?K#9Tw@V zl{}7S(-fG~(;MCP{dZbg0V&VFaXk&AYUcw{tu88_;I;=bN#GZda=X=sZ`9fqqCdik zNxn9PC@S#k*B|d|o38kFtVrQaEEgzGA0ZZ_(>N}eXsDN+0q)W5g+JJ?ma=zN1wEeeh40Oai}u@ z=!)F^Y0a-g=~sLGuFfTCX+j?mXKR`yPa_-_Rrbfk?t!e!afA!{ zR9U(2xPRpD-L|CI`p7Cp1eO12m16R=iI0wz62<8BG(F`|ssNck8F3l*BxbqoUl53a zlJa^Cp8v#8>m}w0dRLQCa!@$AKPMmDj9v!I?t9laA@5?ASH}~Jro_d?F$ZOi4IjGj z3sa?hKKM1KK(VbkVdgVw_)F4fR5TifJ_ajfcMoYI#9Y6sr->uV%il;y9CcD}|A{P0 zi!f6pt9eZS=yS+9^tAW4jVT~SVqnUC<8o%Sl)okH}&)6L~j@7P89O+SmwE4Cc|7j4|YvaR}(>l2c86<8YdQuQyw5 z{ql0Diujk1Mb8QpTW8t|n!D~z#(CUux`(0nXX&%!fV)^d<111Q2x9X_ zU0KVxF-gB+dxGPf%d1;v!d3RKLsu~d_9OY-mzx+8xbE^pyD2Vz{>QytK5y+SYpXoQ|2A&!{CJ&P&*Jcg*t1LTycrG19}H*he9W zih6OW@>*73$0*#9Iw(YbV{?O8H57WVne4>9Xu}P6xsHz^DOR}f{x5ngHI>ed;@#oT zpO6^^Gmk6;;{G&O`LvF9e@b>fK0ZEckjbw__V+hQ?$?rhqN2>qt5>7ulP&}69bx7> z!5eZOZ7rnnuIR7M0ug^r2H|udN+O$%P>TUs0Q0$*F5&5+=Zh&Z#9h-ahq<~sJ_N!f zKd;o(Ot$1&vcGF>eFAwN88Y!81*nO!Trg3BjAJvIGGmXo=+jcu=n0V_qRssLG@eqL=dzb!MPbd%f6Sr|CQV*w@neLaDfkkj z{*R!k5ME3e24pi`9j`j2)1}d+rqTl-nHUq0nD3K^kucMxORC~I)1MM-nx8eXR zb2b$wj>~9T$zE`=TI{G$T`(=gIi;e<4Jw&hD3}Z?>S<4xg5KGwS#b&d*5F z?sxhdI6YSkuPCkRu(qzMFEQcFzovDlP2Md?@qfL#U&fN+d}!D=4TE`G1j>mn`Q7qF z$1SvXtyftTl{FAhG064H1{?Jcb>+3xIlYQy(|Q(KNHZrsCy;d!?Xd#H9GD=J zGLn-CA|K7U^1=V>BpOt%_EomBnnFy=K8|km*fAC*Ia&!|RTd;+9dtQu&h)GnA*N}9 ztaP|p{8tL{r9P*|xY0kJTpDX>Vw83>Q#2g^JqRU{beQD3W5E+ms5F^eKzN{Mz9P%( z6PmDzQX`giVqVXtxSnHn^73)xr# zwE?B?Y_c#-n+V7BPA2NOr|alO<&N1Sz9WuBz!@|pgYb`=>N!e?ib zRbvE48&RC$w_zD!CN2pXet;w>FoPaMiL=hQ#YgBop*ZoMnJjL}`;~+`cb1n=76I-S zWbA}Bgo{hx|7xTa=RMRiT{`G-TtU5dtYfxu1s=0G2xKow_fYwvIO$c}Y?bYlBdKtC zNPdV!78^oZcvAQXd6!fH(kHR7bZ!pMe%f$2HMNBrD7NI%ZEEmpVRm+Qm+&JO*J*Uw zT?3%VEZNyOFe*HeB) zZ+E-#AGGPx*3OGPk7J(HN@(afb!3=`D5~`@^BWB^ze@tbpBMLQqE>S}GSi&DeSjSCImqz;QabT6j)$x~P zKC38NDKpRGy45et^L0>S^fQhXAZ{7EkHmhz34BbH4u(!eAm@7yV(jNV9T$EYJzDF# zT;;{y93jR0w$>6R@Ugf1&{(dI9aYmM&`7R~W2Z;c@6FA}E7q+LS9|n@k7Nr9k7l>Q z*!@e~Ao)N%lJ{zAm}|cKnt}rBjh>wP`Uh9xB-b@jN0iiwZM8moy&>cj>q0_Rx+Pwu zTaWArQ~Zue*FrjhhIRJ+??{68&Oa4@9?o2FpjM1C{pBN>bXLKpa!;V$9=UC2)|w-$ z+c2!e>re<5=hE@H_s;hnX+~zUFKv2=g^(r+Rh^f9w+DkxpUROY%U7_y(F%2!HGZ06 zN5uJR08TfrQGMmfITr9p$0w(i(K(X~YW2N_Nt0lfk@tA7ENm^qno|&GjG^gu$BH4A@mBxfX4^aUfQ+3Z~QOElM9K0C&SvUdOb$4wt zMtZJ5ug(T~WdTJWtm;?gbrI2hchhurtx^R!Y`3hw!!(v6{Fg;Tmc4z1)VNBB75wCu z0M4`D@o^kQ53<47Lk3vGB(;rNP# zt4JqW^m{>RDIKXqY~9$x+`v8|!)vFG&^Yecz$Zl^oYE`Z(V%WKo>Qx%X`iPA1m~hm z6SiNPAJo;JHKHzSPQ>rfhVYJ4!Szl4mD}Qf{OX4}~6+swfe(?pNtF7x?RN9yq4#ZALk~T2} z?G@9)3DRfNt!-@F+}&|96C@vEf%;qk$+6X9m6$NlFuSUGBG#g^D(R6y5MlLmZD-78 zN=uj3@{@_dW8p^t@?@ zwQ20V5H2bz6bq)E8=E7iA$>%c+p-Vw_GT4+fZMk}F`-35D?<2Ye{b^VRYza=2RRB? z&#fO}>MC*{7XY-LVqQ@Zfi`QU_T=P(O>0!VV#l{x{9=Edtw}F5b-K8-nVt-0R5m2E zHTkoyuCBJTk)d%Q{I>%R+4(Nn?*PiqGJCsXMZE77eJKJaRe6mckRPOv3jC!72qQ{r z^McK_h%LLn8)(*$>?u1w6iwJBVW>;dLsI{(R+=4#egO$H(iHr6EkM~x_>a5(JOA|r z-hEj`)}IxOZpJ|gs_-tPJv956iO{z1_=k|P?{+)-% zgKgLx?l9RM0psh&omU-^B07r~#Nlq|XS?658v&Mn4iQ$vFhN`2so@yq;7d>QOUo1% zqxzJPngufQFTR-7{|gR17ePue%Es{@ywhADh#CpIzUnISF^vKVA58@{cU<`4SFqJR zeVUd=2LyYQ$Wm}{cuRa9`9sF4ZTt%QBqAi}IW-v_%&8v_P>L6&(5IWMcqA=|>pk?ME7d@zv@3^;Lj?x3tsm^)R#C%J-Z&FxQe^olKY??vuy}ox zUNRXS{iL^#LeVd@2MptT%JeIfZicB2s8d$yvlaZyaWi7`{VEPQek+1Wf4Gv?;8i^D zjB_0t+uLfiYPMi$#OBjspr5de4G}4l4e4lQ-JEkd{w%TtH|j89PoYgr)c(h}i=*R0 zoF4ZGsjLwtRCsCt%9@ec$ndOVaXl}?o+?|!3kmXKhOuxhBMk-nxwv!AeXv48KTB1O zyZg@L`6o6R#VGnU?H-GVu1tBQ#8h-SalOo1w$N+x4keR`W-|~#d@Y95Bxu?81y6tQ zHzrxicncZ`jfqir)ue#PsqXFB7Vtk^iC-fxz6rQn4xMHME@veG$4uhq&MZEzCN-!C zv+=UPf!D#&VQyw>3Gt0gXu`lS^~(gy7$EH6-JUaBHO;z++855tny4j z^P^^7W!JK|xw)i)rLVlb{K9ZJd~a`GMz;N#QsRtD3kME~=6~+K zcY4byoUw@w-h&3|f1c>Je{ys6G_5e3RAfS!8fk5;@84!~!Y0=8?jPKTM&PU~r1Lf^tM4<*i*c^O%gxqDi2IdiYzwB;IK#dY<0KIO z5;0cDuvP|yD@8I$-DHzUf3y2%HMIRNPQ;|*G@#4`*o^WZsQ{f}U7djml)QX(4u$SDBdz}pkkAV{k91hdC358w*c3+}sOsu=@>{TG zk!O)K1{Gdga~!Fa6Sp?9%+VN8A zUO$pISwsttasSIxurw0DPF(RmI%0NG)U>x;x_*$o6+)8ccD}Fc2Gtw*^nzx}iQ|IU zjMjFl1nj!UHc$!F9D;9daF+d9`!H*{{gpyO0CzR=Y&JUv%q);N^H6)`U^9?`&mi#C zpF-oJJ|T(T^2FGt*z;PZHM+uR_QONQ{t8hr1Sz+a79(|?Q*Na73$GBIE$jgb&yt3h`G>3oq7 zuOHvjkDVH%l{z>$RfQF1Q}G$UDqB}PK4bJ-Qxf|w$7>4zzVQB=-b~in*-LBd_u*8O zi#NxMp5;BMvKBY|P zuFFLOI{8o4_D~wWgf!P}V@L?+K+W+nzeC(}HlV+x!EXC03#HJNoLr%(nU&4DzfW(T z%^J3vZE^hkRSfuAG?YSJjrMXT`|^Iz(NwSI;$7kN=stxIp*h*+o-j!-^Czzm504?3 z)B((A3VuHIb%QF2$MAc?k5;L;pO4wlQ$c?394M)XXvwJ=$n`X}B|HY6Xuo(Zm1k;b zXnfo83rX{uU&Qhh;>8U%Y2JF5ODtUd(qOo=6ZIt)dY`<^APz~$v@}LF^Ob~px6sZQfA~w+)Yk$QVMIsvbi+;&uuOm&toFrtECHb9UM04-tAP}-fx;h zS>f|tcpY=xaiRoc1T8%Ql@94mc6=Q1-%B82J3^l$w8iS$yT(kq3teQ85tr-(0!)_b z*hT#KRB=k#?=ceI12lPML0;`w1WyTok&&{+t|4Q#w$OkM1$=)~(GGLA9^WYy-j-Gr zJa|a}HeLRE(th>MW9w`;u}CL|R>FS>?ln3(idpiyZlK`E?Kv`!t==71jHZ*V=Fhb; zA~TnMU_%^LS6j0>KqGEPbGb-xisn@P5U|2>DfN;)h=i_Gt#6|jAeA+C^66oJlH#bJ z`B*Oz6z_$-1mINzUTLW!eiJ(aYuB&L%(`_Gv>`sXgtT-q3UNxIk)hndO@T93@9q;O zUj7SgCu#lauWe$o^k@nyx>9W|#81-b_F=9-rAC4!@#lTZ!yw`B6bbgye~FzmTwI(! zJ}Jys`3*qOxjEG*a1(MLQmZMcS~|Xj_^=WsW+vkq>FN@QI=1}`o7J5?ny>Fa>UB~# z$6Vq2YFxikho$ey7)!w=yHry?{->@`rL}QURVA2Qrss7xC*1yvey@gtL+$wV_y<$C zLb;O`)Uz!%gB0c88O+tw-@VpXgi39L32$eWAkiZeGc6|bu{`aVg$1RTzl`;bIUdtI zujn`bNlZt;AnBxaa8TrnV9jO$Lcl^_UBmq~HF2`~TM{=n^)%muEY%Y#g?ZvKqsO&A zU5(%ea`2XMHNZS=@YZ%vsyH9|9MUgHm?re}XJ$vqrOX}&PfjlBxJrzV^ZhF*9O(zY zej$QCJ(Xw@!nC%xihs#rvGPqO)X9L9jeTxLvmuIi!V*Y?XpB;w5Z~LTn(yzuuT+c^ zcQ33R6*kSvt(cwf?w^ln)_mYfel5B+rSYSIhmXtF(Uw{yu#jznJgBIN`o>fjHa|N> zC+PHS)Z@ip`$2b@e`~zAz1Pt1^1l?uMp8!q=Fga#4=Ds=|J}!HC>}QIWYR2W9~027 z>{35v5OlI||B~nNTMrL6PxKXI+uK0AsLlb;T2{E6BF`Txl56jQ59h8h| zUt4H?_%FinsvLh)RILhfaZn6Y1qDPMqyz3(o#oCs9W!oUeHjYeY}ghzpl`UK7qEG~ zU@jAS#TX?Ojq1AQJkLjc&Bx80I7xju$LOi3yXu=OKHL{x>ae^3Hx*BXdmkMl!m_Y z5SKXu_!|kH;@JSzxhtBUlN*;TDfElo3w=fALDa*Nw%5T^l^)`SH&qPmMPBY{QN}L z=9wrxAX~I>d%gT}=lJSbx-fTOvWWRs=%{)1ReH`L@qjM^&iXL$M*yc9tkPxBz@FvB ztuC(Q7l!s^n%5~Mtah;2k#eB!)}S%ncN)GnFV9{ckFnX);USba-0o2`Ev3GmP!;8&dHkUDL)@D~PZZJzeQx4ZV zHDtZ`+k8f)B_)bag6Aebu}u(W0x7k7>$~}kKtLuCI0LRdSXT`d@bRh2$;`}D_rwk4#q1?)m7|vMJ)i$D^ehO-ODW;^Q+h!^Z~ai$c9+>{*C+7uy?x+R!nIU zo?R5`{G;NmV1k^;_vN<%>KW3Ue0{R43T*dR*WKWyJ}UXDdm*8+_QCpXJln0oj1y5P zy11!HqO6QauSfYKJyUT`4#QO|-eGiDRAoVXE@l~f=eRs`W@uL}WHpmUBkb-Tj>~uD zXf$n{*z_R8>mL3a8QbK1Y7u-W^q%8Lg!DlK=KT)#&+`mXBio>;gO6O8ML6G==xbAl zj(-xbn@royU=KJIWzE|))xm-7|E+plH`sKxt)Bz(Z}n@RpA7$33xK`xU&bL>AtICM8*>&nk691{}8Sh(uw?gXZcnZVwQWetWNt67peQrPqgD;|bXw{dH++ zbcRGNpK-0-Nj&@e761F|e4f)P6I1B<=3dQyrk{h6rn2kSB-iQu%SZb60OFIg+G_>? zi8!D4{PtH&_gd#vVIaB;et+%NQ1=vVzm(Afcd?wDt3f=m7ZE<3K^XVCkn%n+9!fSv znN)ck{2G?*J|d1=;Q_$jKo}SgUuN^u9~MkWRr z>B=g*CEuRDfz(tH`=e>oc`4hW(q@?7L4YFT$?@^`lg90SzKOU#ozy=BY^%o4qt!E| zDM1u>6IH`i+S0CH8Fci2NzGn<@8q|%nG+huUgd%@hjv}R%gf6-Vg8R*TcOe}SES6f zqtPuht6{E;C_CGR<6Z2rHXeWQ^WwcSq`rtWzzjrknuMqvdlHW9?uSUfhuwyz zB|9n__Ft>}M-92X7TwBR5?()1wU3%~lCK^d?1!hP18_shJCtilNy&7XWk_(y?$a=u z=npyZ0Nwk#MV4e;vL12|$GlF+;Svdx%7biYy8k?8j0I*wO~{37Wc7uI&Up!!5F?b5 zI@w5SM(=l7bzTj(k?pVS7HT5OYgTG7h?LUQG*uIp_AZn;DX(Oxgupb)=xhRIwd7Dx z2Cv2Puy^@NNSxnecWoRyrAiOI!i+~|{qI(MG!JhbsYN}n#1gNmjh~eC^wPX>I7zo! zdUyB_A!&*>-kgt{r$$a~h`8I>bnOZWZx=~ewf55%l*^1@ z7n(X-2mO|5GOi#t9vS`^@U5MzE9>F?ZZybPgW6-Cgvs}b(kp7wIzB*^!o$hI-u?^Y zwoQB@3GjOEG7-lc*!xRxTe|(XZ?EUFw`Rj4U8zklcU^dghFCuA8M^Yc&lG#fBv|G6 zQ8=mFaAc0}74Q5>Z!%XB59S=o?uWRwtr6y_{UFd{E9w#-(%tUb;`suvn@BG8hx*Mj z7LCQsgRyJCK#fHaq`Z=!QV^2Grki&Rc0#S zGjtXii3UUuZ@&FCypLF1uC8;>$yMX#DZ4_AmthZ&{1-YII0NA)jL_>zL_$JEpPoan zxxgN8v$fJ?LaZ)kvh4oO(fS`K#djQ6whrcLTSuJC1hW)QivHaBvkD6qfKESr8nd+hKVC?vC z9MAQ688p-HAg>&667@537}nfFwTU=KQgHw%nT6zaM5XJdLe*v%wxr}R>kZrf7%27<{AAn=B+(?!5ZO82pIwt%qKkfBN_GqJ zu2l4{<`J@)Na^c)Dkc-dFgs^h_f#Eiib#gOCw{l#aoua|_kuVCmn&TgV5KigE;NaY z>ph$+e-rOVa3TF2C-NIbG+IR1rihEEN@$GHr@pD~#PlOo<97ySL&KuMa-+?VKN1_F zVHv-jt0SxVh_&hchZY)UR`b;uM4Kb@+Dskm_R|K>SQP_a9_*neGRfi-f2DExEY($2 zwFl!xhlQD>BT!MQWtvqI{q9B!i^lWw65h<#4u_1!83&cMqRFy9@g^Ow*LfT=G7c_I z8+NEO{n2a2@5MdctDU>r$I+{b(6c>d=<}~kGz%#Chh90pOQD_JlZ%>Wd_kU}IT1}( z)VH*ntE^a^Vwu8UYQ~GJcZR*-Q~y}mi-&JLH8RFyXVwj6Bn}x5y-nJ} z;?I9ISMW#$+6*C{^R>D9$ZYXGkd?(_qq7f&>5osZ{Z@ZKPJ}<~?yiRM&jyXJ@ zGN7|>j9%oXb^jBQW~HlG)N>U?{GnkRe1To{mub{ml5bJll~w0c*G}$3f474*8QKCj z@R64{q%da{ht}t!8+<*8#mr4kQjRY$BXboZ#|JJs2K4uLMO)$Ng6=kN-?jiUOS!-0 z0~7n=Piu^3(Vx@?9{P+c?8S3eVZ=RLUAxsfV1VJ#c=zvzG8#R!)1_VeR(wTQ73#q} zwY>Ljh(ys})UiI;2AU_MK zk6bar4tWMk)cO-O9^>9jPfSU$hrm9j#QVeP*s^X(PE%&!B_;O6d*x8x)K~zPgy%j& zgefaUz|Jn(85IgkDFR2NmzL(#_b)c9+;%Y=IdUne#KcMP-7WZRK4MKlKLuaBD9_8AqGiPo zvHj@uR@J@PTd=TEO^Swe%--(XUVNh+#H=Kl0d26meH3DCXKn5NweArhpBH`Yf-J}L z8GwBDD5Ce#nhOh#EWlj`9iDTt`F~i=ZI<%!{Gn^94u4Y`<3u+E7Fy!)c=3CSH`3Qu zxvH;dxqN+IZ$Yc9-77uM7=`a`xWqtFSgm5`rESCBnLOep)!*UlQT+;!w{rSEKYKLrrm$VE_xrpy-@?bteXdz8 z?W@?8j~k*872V=t>avLDyMk|fBHCjrJn?ENbRNFR8J4mesUp)Zrfq$F*4Fm!PNtuX z-33Iej1Q0{g1;`UlOYdJpqBE262Dcv3dTP!KkTnsocy~(u~#hp39r3IC+)hXV}#?- ztUa6KlHG1UJMVd2C1Lekj|ZwA7f{z&VlSeHJoWpkaF;o5$$!{+%0!X+3*x&xF>TYj zuaQmMw?{XREVZgXuWJ4S`*ESi(yv<*9v;1Px{9Yz)a+v)_U~aWqAK;{o%>ToZ5OwY~P^tB&Y+aAS7lIdKeLelL0u02DZF)+{# zoHBbj&kmKUU64ol!IPA0qSUA$SL9i!6Z7F`KuyQfu=|0+jq+#`OWF2_UPf&+@nq#_ zl}F*d7C!^|B&Wc!(MJX}gRX9`qr<w~Lw}b(}oQ4j#Ju+x8 zBUAqXKiLWq6Gb!Z)akrfo2qp1-)B?8%@W-5^Jo54!H(USD}Wd7mw zvSE;9k)!@liLT#>ayDk4XIj)?hG&6SbVdB4NQlE%y}ZJ&qIxatYsi}oVHKXMCG!(F zDdf{|Pj_TWh7+o}oE&B(>lY}+m#~L$@1U<(QxV&UT6A`IB_JktXj8l=Vjt(#JfJxc z8&2f;yLe)g+_ZYcuVeXXg-Fn*)i8PP?0N8@o2Fq}TykWCq$YyN>ElNyWo033B4Gfv z`g1N5joYs*ArJY6!r7O3Je)0$WFsU`Ax}(dUrAB#+v?&o^(OJJ9x;d*L-yQWs)f1E zH)G44*9N?5!A8al8-&A`{LU_=+5ITPc{R<5M^Qp>VV&4aB-Gq5Fc4x==KKu;0nET5 zslT7?&qV9Ev6VnV^a_@^mdN|5-P)DmX*!a1Ls9N_*RU^s8Yl?1rN#S#LxAiYriWE` z%BBPBU`%_u2M68X+C?VUS()6IByCaM5$vk%dwmKmxiYb5tBUHAvJcP|hP80rhYc0o z?T}jJSxj2fI7>K^%DbD0rlkUlNDiyj(;&2`WP9Y_(+w*`2`Q}? zbQPs2wxzFx1?1Pdt3XQm!&n+KK%hj*&0}^u2${0qO3io{y$NjS@LD2t67rWwT@Kc5 z&1SgNLh~VOZAvFca~=gbxHiCpe-ER8(*m+YGvs^Qe$9xRiO{ef3VIWba#onRQVW$Y zXa7Atq~i^lhoDi>=eAALS-rIjmJTwdm^l{F@sy4s?6{i$bA~vu)QO5spWrZIKJ4emqwWPd;nS%J9r#Ox z6q_HNJLuhCRup9W7uiDyU~c^sck3y-V2wIS=6GZ4PQzra77!@I%L`XuU(_Jgz`{hs zMgv3uFKl|G;?t{{CjJ!;%2PW|U7~>WCh4BRdX#J7#fFXB8C}5PzlX7NJY5gvWKm~J z6YofxPF`#%_pdc~lsD3+Cb!8$W2*4e@*6ifFy9o_;5 zA2wC?C>>)uHE92uFCjE_FqtOSB7=+D>>XTMOSSe~2$It+J>pJvPr=!{ka(E?Av}G# zRfGP_Q*yAD;*3+m`A+PeREAoS#Cd75XJJBu&={FxnK=*SUj7K;!=1DxIqi6Xv$Fgx z1UWbj9Q@7#n)iRTfG~#p^YKh3pBjsxrcdT~jdAJR?p`9RoeV)Ql#}3=uz*)oPM%{J zE8UCFUSZ^_9?v;+%r*&^54uw_My66m{JY|XQuMZXH<(ia85C?TQ3tO7@;sofJ6JRP z&DMeI6XI+Cj-NZf!=*o)wHa=_c%(9bCR96-8)kkJ7)Bx4-SI$Oj$15D8#$_^lCe_I zigfR|BvkHj+B;)#1#PG3p8b*H!}sOmckiGe)8xE56gVK_cno_2=b`$bw8Czd>gtrr zsiWu8K@p&vd`X;WbhI03(PrCNApsjPIgY2~SUfdzXziiEyMDxl7-k>kuW0SShncTE zS|%6(4}G~Kk24Y(+Gu%@Z>6ua;o?NHE+^q;aGkbLU#{rm=D!a7Q2|&zMfZnHkFai^{_Q?CwpZEnf9e%p01vC9<;(Y z@KAtrpdvM52VAV46wUric1PVI`~KYg&e>$pEzpO3r+E=lSyJX96DuW<`8jwtfBD!m zi{!Q$wRtKYwhMAtCX8Sj@c8Ci7@sl1`lT@QOLRt`(EF|h84>}?3hwHkXCP%YvpG=} zgzkds{ol0sH?0(AF+48B8%?bfV%+=GO07AD+~=UQBssqGgUQU4Gct)Xy2M{yO5EqT znw$`G-Zrv4zgD@939>2WF#_&$dNb;9xCWQa6mt87oX&b{BDv zfQNDES&;t4uhsYGT*D4Pc~1H|zI-bgsAq7p9LC_m`D+pSVz&%1Wn!U^$1zsm{~c@g zqXPG(%1UCaJ~0_Du5s^zG7J@zz!=cVk@Xa^Z18$I=0LG=e6Mggt@~ZCqj^Aq=8^oH zG^_IXIb_e6(W7rM@>|4yH|vY|z4(Zx1zfW7zM_X&X1O_P>-W652y+%YaSHA&iVlrE zQ5A;ccqNb_f?h=h60v|=(<8KV!Y})Bg9`Pb;3y@<%&d(fppHi#_FhEqobxucU_9mG zKMEW^u~ucdWsn+LZiT0U{BF-tC9&Z3pmC_=w7EyhMF6!RiC>TTd!3_CDdxRoK%3;T z-HR~L_!0Ybh+k{9kBVEcIoHz5;$+}4sI8hL%C!T7h6cjQK`gM#&T%102BF-Cel+V; zUPR{sFLIXSj@0c}dM!GD_}yZqphco>hNp5V#ru>At& z$yt8zP1|@c)H5`3uX&B9!uOphyrapw({;W_uRH08c8ar8fNv=Gpmj=F3@)UH(K~_e zGKDRCk>Yz=LAhKMWl{UdlIiV6BA=YefY`@ho{Yti{EC0$!1uX{x~FnoZv8WEo`C@eUAR9Cyxd(=wb&wM^ifM7(|>S+UBFE3qb)^vJF=?ep4q&iKZP zjsy8n)+M@M(#N&z&T6W2|K4s+RBRFHx%{Z>m}uFjPodijmDENY@bGz#C;adHtG>ys zG4E*aC9mT%XlPdY34{)xI!NLS7FXj=wrB^&a!88Xu(A#uB+?I_Ieo}M46)Gw?hFtR z6%84p@iJ@YVt4)_+Ab%i#c-lv{K0N7^cpYw2mfh~A#8`K8-5elxQQQ!`oOi+m{S|c zcKlRFZYoLFJ^8yepO=khcVt~Va53XP5BX+K!&Bf`On>jxt}R0B>8B)auMjU?tDNiMQdH|HIeRMVtx9o6 zA1z`!^ZwqGlg*01V!*gZ_VvpG3dtI-5=fN>unvkL%75lOFuzU8aC#StKPp7-*V6H` z4sg(?q-@isui@{W`;h7Ue=(a{oFjf}9(^LEHxXP7Q*~&?S3wY{6qi?M$-Ny3d7AXd z;@9X+qnfixY?kylSk|D2PD3u3m2IG3R<#$0O-}_vvM@pA^ zC!cR!T(8(H>O<^Wve&u0=qpoU<(^;XXexisb*pvpKc;~W)Fy@R2p1_OhZ9DL?w)#IuIVWlj+;j7NhLBwGxvQUq&z8h|PqXwJa21r<^KXM{OTe-^0Y7>NXihmP1X z2Va$#T1nHsxmV9+^-5qhr>5b!U3TL)8_j3Eqi3b$0WadhSv{*SVZ2WD$ z=~=61&s*6{BywwekCUeo-v zK#ewt2#1q}+>}Em_%Xk*pj<=hg}`m4)=?PLv_MC$$G~v8y!`p01Frahos)HOZEd(` zjzF*K?%|pMi;xf%N9?R?|5`pdKCFu?>mYn8G&mH{f$*x1;B8ANK@v48gTbkAH&t^5Df{?hh#&Gl_! zl7C*|f<`mjy+R}MsK6QKn7$d6SSKQTzOZnPlnM7bvIGuW`I{82Frw8A3UtQ5PBTH_i8&wF2*B8klJ5?KaMPxVCsH^f zLYOUPwKm-+S6TP)-Y7o+sz}AY8A1bRy7QEh5KcrsuaA(%iqzHH@^4HA2IHXY5(E6? zrB2=}X4A=cZQ7Am;;)YSH$0E}w%+^?3RC zm>SHc8oHX~N1msvIAXz#jrH)2<}vZga>4wIFM#P#-N#MA!OP%FZ8K#iOdc;w{~1aP zAt3qsbLi<89s~ARxn*^`f4--;D*pMQSV@W&s4G$F*84&pU~4r5vdmdsWV#t>ih-*E z{+>|5@yTpURneJfR!Ixhh_;``V;E1A58N#M;o{s{+15EsCLmHjIcc0G)sl{toi3*DS z1^IrY`T3xPgydu5=L57_%o_bNO`RX}`s^eL8%sH9>OZP1gfpxZHZp%1iUY4|lwkR=J%fP;rj*REU;)eGzXH zh9cm{c6y&UR!oo!#W`Kp%d9|r|HM?YRWQ3XO-StLt?PSU+kpBz_J4W-#U^7M+vkHz zDSRGJsF$UwH9tr)D}=HOQdT#a$_&d>@vgka5ZeWlOs%0X&&|mX7hheq9x}6N>gO3a z-Di`4_>5{cHa0HBkL8_y@A=Syl++MP%EQC`aOChwf+3xMHE78gvJ~zE2X5)2VjqBQY zfQyQYDV)y+MqNT;#pp-I8R+O-M5fN~JLqhC){Xz9`o>>w#IM~dU^3b2UWS*InaX6( zc;iT9_iY?~yfc7J?2uq%kRota)im?15GcpuNksw8gOZYpoym3&yDUTOHHZ?hO;J&> zK0HUCYHMqod5p~HORCc5@*1k>>FLSXR9ig#;U|@U8YzfvY-*~}?&jqsuB)zYYAOb_ z#E&qKuUCD+w;fZ4d>*f}MUf-yd^gL6=lJ-iZ0pHM-1)z2^{x|&B2#JotGj*PG)z^O zO8*w%;$~ves{J&4INRR-oyq3twrn#plP8&4BX^ktVPdh`;2#J*nZaWU_=!?$w00#! zZ7*9Nd3ANSm<)%Kl2Z(JL zdA|)*SXf%Je0*N8u&}_zJ?-x!S*+INvz*H66%5%s#BOMAvOovne|>+J{J_W9>$W-$ z$nCyzv$DEdpjn}-vR1plKTY{~4W=aYzPi{e96-Qk*38h<@jmW0FwBR5c*AB$bACE1 zD;_dgh@nK`yD6YnRG=&>l*&j-;5NW0M&>pEkEhh&vFRJAnyLc(P#ViAYmc!;mlx&@ zBNP;rVCayc34rSXef^r8n!5D&FZC02(4=W1Yi@6vY?m1|wW8fZOE`#&t9?vDf^iVA z@;Nx$(~V5Sh}hA1AJ-?1mTmI#27|$+d@R-;R#sN4cj*H9kp*oQ=WXr?Sirme-sRn1RwiGI0e8^bKj#gOP*yCKp`)R}=P{W$VL26v z`lhTF2V)4!5{iu5gviY7$(ot|x(;w?wSrM!#uh5(ie*LdM}`Iw4p&z-Hng+>`Bgo; zx4D3TfwHr*w>G{-{#3Z(@ZQECFvr7tf@r;Mk#|?89)c8yMMl)=^1wv*Xog2vk)}>( zHH4;caj+}~ZPT*nX)>`e4frevBWHPb1^gf}JIv&y;C6E!?Zna;4`6b5oo`;6UZX5)(Yq2C# z=yKB%0v;l5vC*p9gQR4#BTVXM`ohMR!{#~j^7Jbf%};};*q|UG4N~ZJS{Ti);*Ob3 z5GBRbn!aqX@0{$`+lfEtlOMx{hab6nYx7jg;_zmjkE#DLG%#>*bOb05GY40Dg~=65 zBc}`KY;IQoT}R)BBt8X(+>blF89RX)dny-1s%SoEipS@HF_F~pbAF=LofLDHi-;8o z#N%3>o9oN(<8S34ZWob4s|gLUIy?-M0Jz$N)2GKKgt#K-QX!$Cu`xG9#vb!T3ERDn z(bt>yX;ddQ8_e#G{$gTc#_0qi75bJ^*VI|1SuRQEvLLLoP(GTdik7IXZEXC@8zvCk zT3mNlHMd8@_*+Q5Trxf^oiV?%0!J6knYNdlwik@>S4RBr`Owgi-!InDR0f^6FpF=* z%}qWK&iuTlgLmr8j7Cz}ZdRk8XVM)H$YSxF?{A9ye*Z3_QPu1G?Q?s3%eA_8>Al?> z7Z*2BXr!u|s@ZH)wNcv(QEsv?L6xNm1(o(oOjY7U>BvP4`{D~8VA)qv3d*RyumSd$ zpgkw?Y;s|8C7&)ceNGj3^FF&u2V+5R9+M3KX$<_;!pD*TO>%v9eed|#`F03tvS6qs zK_qHGH7)CGVq#&&nRgRa+m_I_@>>G29ITu%z&OH@H}yOOa`p@jV5BlRAikU*UaH3F zhN;XP)GJpUGHCp?m^cFbe_5iBd^fO8XeJZma|rNA8I0b85=vpXKMM0JJL>ZO_V+91 zxYs{aw@XGu1_T6@OlPsUjm#9$s0bYV9cgR7$l!3LSEAR#zXM^;s#c~o+x_+X3^7yp z(8P-3Dv03B!V*zDD;c1~v8FY0hE^72O&{L;NAGXK)4;%NLPBu}^t@5%MuakR`fkJ! zx2vXzK zpLhCQfx4qPlS!i=DS>q2+@0KYC0IoaxI8v^cet-?B#%g6!Z)zljLh_X_%$tQ3|als zDVf1~a@MO8=|}ow^JQ`j;E5q3Af#AQwOT8!3!`myd>kPHN&=Jn0ZPU0Ob9P>tP2$b zli&BwW$(Fcu4EVyCyv!{sM0+SRQ)+knc4f{>@K-tMtPYQ;vaN2kGF<(=-bwq^CgzT!xbLl9T(9*G_Mjk&nKaWd{88Rza!(qUX+DpRec@T9_8A+$b?z`hJN*MfIgsWgURyO^| zy@m=F8R|yQ4*5oV2vG(TnNAf9_8yD=)Vytw=N~g6GfX^^|e4LVP8$ zftpNXHXV(?1T8~ADf~TO^YQ6&eY<*>Je<1rP@@m(9oCJ1xvf%J-k3h_Su*-Zh~kuJ?)6CxkZAS2%GchSn|K+ zww{ddCO6QXKT&U39S=IdwW)ec(9lrp-dhl;Bl3pBz36@&=DZNO$|QQ4I&|cN?{)hx zHG5r<*T`SxR8!_|eO(12jYiT=y9x`@hGX%(56{_{p5QITBOZF!?) z@ugmmjWh5oM&U3;EJ=xruiP$RUv}M7AWt=zo1b0q`%BKI5^&b)c6xprr*w0V!Do91 z>}$Da>v#c8W6w72kEMV(ed7Uel zAr#*#tyP2(@ZDbDIy<^T>2#3cw??MEUyXl^woFE*UabV=SWCMFvx_q=H{4d?w8t8 zwxrLWG{3VwQs9jIlo_bfH}wT2pMmLTsg-FZtBzgX^iz6 z@AFkBKpK`!OX@=jxBo|Z_F=LmO4xx?VPm(hH;>0<(>J4kP1yOtYhwEv6yEjjqh{bL z8w(YQRdBte>%KBMX?;`+Y4a)o(|fo6evQRCjmw6GwTT?S^2cg$M-XPq?ajHxozc4` zC&9Dtq@-B7-D7{Y!uLtgMdhH6T=Hkm5)ddEc>mhlewiP<0N`V?JD+a|^Ty_iCzF=l z3G1C!Zb;M8mvk&`%*A!vvT7d#1oXRn+ikZpGg*7BL*mJ3esOwUaJymHTCcm^JlQ`{ z>gZ%)-=GA|D=l5b1@BEt14Nj#xb08X<<&wjs8y}E2Z8)2EBVd6T^L@wv@sXLoQy_3=up*6q4!GE>)AIcNIG zE#FEDE@yf;v-uZGcdNajj*g9-9;4JWsTHrT;ccrI$M@Fu)?V0l@6*L0Rh`}jcXy8% z0_KPDX;p{!!pI{(ExE?YuE|(-TF9bFF)kU1psUk8d*1wrTeHT}suRmHhZr}wqGCO|FS@2nLTu>_e7h3VU3a}#XGo)> z-`Bamr`>uO$-vtA44=gHYB56Q6w#sMxn*$55>|yBujkeC?ZCrIO~An2U0pS`@PuC& z1tOM!3#*^wYLa)XenQH_pH0vs^p_V5NO=maZu7O*6ZJSeQDJQSJ2Y}cAbB(v^v~=y<7jhh<6yMlBUQ+;bswKYwLDD_0Pdn zXx1-Y)9K8^gWc!F;w4!Et~P@O3t8C*#D#SzguiRjHJuSfgt zNIa$mSGR&kria6tviN+TJEJ%1U=$zW6H%jLMoM~G;6M+TYt3M9+FjIF*+pFQ==*zy z&Zk{AU0)vOXD3F&&KDg)!M6vx%veGW0c|an8eQGA+{fo}-wu!coAUcpCP2rTMJf^#a4V>-rCOz_>-4gC%Fyiu-W_DYUF^?AL4*&m z_r06(XEPpbglxz0p>VNxKsUh3)baURki$awJa%3cU6ak};sq{W(9z)qoGUbom7Vtg zo=+J%0lYHOupr98cpLt69E<1EHtwjjAl(1-0&2Qe`!b8-M3#ht1mNK}z25HW%Mkc! zs(8Dx-c1koC2QU7sv>9SGLJ5V>WFaN#NOSOT%FrdI z+chz{f#0};lEvYEvybfyL8;#-WFpUafRVO!aOkK17#$N69em?;cpkgyPDyOezK-a! zvrB&Ez}9(l0|0F(N{Z~Gk+w_#9~3)4ux+v)oB!#qYc}@nd;n+dYkrn4hyri9+4a`* zQb6W6gdAaXkK^X^yC+w(4Zo3eqjJlMDGt4VMJ7$uhG8i3{$>jp%cQJ;H2K&+Bo&Cq zuzmDGlGLc0cGCXr^{JHNtDtyOqhTMt2nM$Yquf8h+N*MmARG>^MNhUf|Arvx1hRudR?FULF^hq%OVCS$L&npnL0y& z{_wsBqI-rT2*A%xa{8z7fa`TyrE_~cg-_TSSjEQg)0{Yw)BVYGc&(<}<7ByRzhcqN z!?R$TajSc?6IUEv&52r3pHM++n<&e;rlTIb;hG>C6Cxcuxlf4m8%zi5T-UCkz8@0Q z@iJ7Lui0#R6DV%uwNlQqxyh?F^)CeZ<*2F|g^;_}qF?)JU+1I$68^>kO*@$V3oJ;Z@B(Ng4L3CzK@~H%+ucTd1G;#7g}0Kus}X)Dd~uL z(XeQhR&jZ`2nuV=5NeNjN#$U(#Y)9knx8i^(Lq8%p{$=E_WWdvST|ZAicAXC+t_Ut zMU8thFbblpnlzoxK|(+YRV^1rAQKRZLYU6tom<_^$W9K{>~XNMv~G33HL(+8bhZ2O z;|BnS*v2N{bn+_`HrYoEG!Yf*C~KAP5F#*L3Z)9!Hrf5&-liBOOhrZQz#JR-Pw_wiYl zpp?yGul4QL2$d+G<@J8(>wY`D{CN0ygRvVcwBN>_%ng2de^vc>pQX9HSid(m_!8B~ zf7#JpRn*wnk^g)zO*p@}ptw(8iGMWN)Z`M>-q+U`i?6@4fJQ2U$K`?X89iutDw}8g z3>R!tB9l{DS{W1%0QqK4m#X&<_6^Vw2$!X`RSL$Z}qF@)N>@Vu;U=LyO& z^D=#ALBkM5k;UU1dpWo`iTQ)HNhd|;CEX-Fw zkU04UqC0Wu%)y}>x#w+m7haZ{2w2}1qlPR~)`2TIfCs3rHu3OqGs@zK=7#u&2oEQc zO)MDtyMM&(7sU<~zaJW!X!s{Y+RKCDA=~baaU06ZutGG_2j3SYqnCq8Tw`P7u+&nR zIyWj%B{DWT&cHUY2CN3Dn*mJgIf<5R^9JDCJn9) z@$^aO3aU$S`lumi9ac6~&zmt*bdng<8br?62w`MqA94!3rwJ};BJ?wwlY z6_$G6cJG9_meJI_g-fU-Lf#1PhJfTAeHc=y!F$pJB>Z1dc(b@{7+BEKep!SZh#aCh zpEV&a0Q4f4i-ek+k&qCigO=E2t6b{xX9)EcG@l>4(>j|3Iu~Lyw%{x8{0r=)+A`97 zQnV7$uU|pNf!9?JQ-Y?VFaglbw%8;K6e!FAr8(USq6yomBzr3>3!m$R)Jocl+v@Al zJy>}C-4EjYZ%x%Dkct^Shkr$4;iiP40kH-H=%k8Xdn3eAF$_?1>A_&NySN!WY}Hi9 zucm&n_#9El{VZ{qziAH>5}5t*W5ojznOEMo14EwMEJhxx*5a)1kK|OquPcZ`Iy+~{ zSlB2Lk%3+$3hf_j-jmYO99GGahA>0u4?RvKukKdAvMAI6Tz(#tO<7zu{Sk~%7FQk> zyYKVBXhej>O2MgHtT^nfpEO&I;Ry*i!q7Nfr@S)Ys$b3s4awDYIU5IAvkZmz*SK6| zE%WN?s@~6jLOTGK=DaJUX}OjR+=))mvVJUcQNH4@^H$h&6^UD+Z|gs(bazL-P_Z6a6d#j*hr_#PG@rvJ#*Rifpwe< zYG*d>b6uX)!VGZI`b{0Q44{|p4&(O@IiXP!@AYMn?-rUn)QxIjdw2Vk&1|fGZOU$9 z2Q3{sG`!4dV^8G-*BX!Y6|cYxMJxA`mzL9pc5!(;*}Yx~T>;tWo6U!kMjSTSSU^+= zNnV779PR7EmEv$L{yMPO2XXlLDD)_Myb$EHyl^k5e)O}{`!V%Hd`%vJl=@QqrFwor z5_=^{f#eb)i;D%-7Vk8SS}ekV+<{AY$c2P``sXiq4ijj<=p+RkbTb%pym_JF7U2qt zr+G7OBZY)G>cJR4jL~a+6b9P^(Zj<->$h!hI^wYW;-=!fIwlfMjf8#fmodyME9AUc z&3#4M40GYG3o&oQ(>mv^ItZ@1mKK~Cq$!Lewt>sKZd9_J$HCWs-;L)Nq;PBHDUm}v zcIb&JjCYI#^~U>h*$s-k=F90&BMMkW-X}wT_x#RWs^96-XZXd}(9|SXj;v-t5})mk z$%U~I0=;M@&BCA`Ihe3UfIXcfJo~$_6jlS{1mhLE-DM}qNaOT|96U+2CssR$25}ZQ zt*8t$cCM6?yuZ;AKKI!JqAY}ybuVHzVYep^b^dD(_ZJ&tC23^r_vO#PaNx2VJXF>9 zWe?tl$~1If>W3?vt}fx(5z3|q1gHY1_4&F&Pl?yV&R5Wy?#9_}WrlrqhYLY*z>=h- zmo|D_RnI(&#~D5Y(np?%7D*sMB!=C7kFoN1IlS1vua&U2gqU#|ft^mITr@UEauaD* za6OO~bGvU5o2Q~yDUOU?48(e)=(j5Pom~3htXzla1J?u!b<@ufL|M?>cH6&%XzX*) zQmRY{ExhQl9R9|56?qZ-GUMLZXjeKe6cECy>emg09c5`}{PU_=rr6w2tN*0DOiIj8 z+yenq*N(!xiBEVYGI{~0O;>Lu!*fVA8j0(LkdzolE&n_r9nq@5yZZYE+^*@^WNN0R1YLiQ!bjGba;SIa&mf=~cc%IN`?`lH2sx06#C^dG zVLmX+H6%LBy!#_B)cu2rn1ik6l)kNHEZ|f+O^C%|eR+Owcc>|+r2Vi%7y)%hWElqe z6E{e@I%uZO^tHW#_jXvPOnER@eed7fU z4fFYrRihjzG*kh`Q(48@DysexX^rPQ#lic3QQiDJU9S58c~&<9G2GblZ%tGsW+$E5 z+yY@`4)duKPd5*eO~;RZlnQwgsV5e!UWrUr^!8c7tz@sxC*|72y?cXqBY@InXPo{I z8*~e<)}DVlqrK>In9S(N(gOch;GP!oq05V|ze87_vXoi4s)%!dLqaGz8<-5_i>1&D z@AK_f#{}Ufy6=BKA>{Eg>fIHV<-Nso*uBaJkQXdv$kDK(4+&~sU8`^I_VRTUABrW? zOCi*;Q@=g)2=pf%!J(f4Sl7N4uL)dC;#of>$$W|Q4|1g+78=r-%Bm{YopPGW__VnL zQl_kIx17sFur=K86Mwuggk1MwzP&YGr zG~U|n(qh2p=~FogHw8=J4=E_HNQY#o9etzF9>dp%CbCAD3!UWVicR8e7-3Bz!!X2kho-A7^W0rA1*i1Q>lg6bk6JE?(B+7Qu*6O}Z}rFa#It)IOawccrWXf)Ds_&C zu&ImEGQ*jZuP1X%CP2jtdl`{uRslJNg?n$ui-I@uOl=OdLaFT3cbyrjkQ}=M*v8qc zv6n)7dxidqodU;M3Wo0dB3!|?PJ$n<{wNyX35nbUB z5eI^;5WL>OSx^YY(^*h_S2O-^wO39DL-&F&k4p>l0(29=kVG$wLa#`yxc6{Jwt81l zRdw2jLy%;(i|FR+PqhxY&}EV}S5eVeFWIo75jctEQ{~AvYSBk6=e$3TQ%3oI&>Iww zof~oCY3m^xBWG_RjjWb28KfSCvZ@kMeq3&Qp!pyfZ|LU?6+}1$!`X_}{lVsywtmv= zZnx`C`cHk{>f9%~2Nd5+&DT7+I16Q=P1i}nl^+k2hjD}+Ij+j%X%oKd!ujG+Y8+j)Xo^NX|4Abhqq2*+X3y7*i%$Q|UdJV)tch z6%ZRBe`q#ooLQ{u^92dA9$$j!VreFA}FK5 zp_9hv@76CbQ(55$v61xm!$#_)-aOZ;CZ#Nt5V^Iwjn@AYjU`^6PRCuc&Ej*#;{VZW zmh@QVK{xy5v%kLtLQuZv&798(fd1$NLVw&RKK+OWLyG)ipRif)kO}X4KDnC#rlfoN z5=K#<6s)E3@rJ^fE=Bb7VcV86saa&tkXQMgk zmt2HY+8uRUgMImBrV*48!FNBTmEp@e%G~YOaTEi&`YaY zaIe?1!ALKEZ-?!`M6P_W4(1mU{MUyy!55SPq!`UM1E{EkFNMbBBvxbw%X=C!emsIl zc~0-Fi;@=|8j6#+RQF74R(-ll6j>Xe?2WTvGWpyHa}WU%6V;gn974$bt_o2Hb(c<$ zdb+yhVhs)L061-!j$5GgK?+}E{qCd!m}-6H(kBrxNZ5ocLax!(RE-RyHuZW-&w>C> zUb0y~;f7~78M@7^EpdOkq0Z8JKA!PIz)GF1*3C_BAYq-aBDucp3}PFbMoE9G--{!h z-GE^MGd6o&@nUG)gvH}fC_B}3!LWD%St0`=@l10mkyAReBIA&8ktZvraS$+kDESoQdFfx7!q%z=8Av1QC6JLxFQ&7iw!W>r9so`H@t{=B_dbZyw#v*! zM5Q(wXbXxlZVgI(-&Xx|e!E(6@}Tb;8xelc>!UL~&G4(=i`Mx@JguO6onp+xe&Q=`f2LzBr@5kF+HczmSdf{Dw6}K^;k=|hT5XN5AH|CYzI8wBl0ciw`SQ-e1u{?V zK{fEE*0zXxWZWoH6oOt=s_IEiL* zmqf#hIaj$TONv^rY?_;Z3EJ3?l~wQkjIq)hUF?2nD_Awxm9ZNHSf%G06Urbg9QrnI zOZhzqb`98!ZN5^`77{Tbv2wIxYtN}L4j4+tzn$3r{BR4MRtw)~?MKfwd8OiV4mu7F zKMSS#rS&L#dr?BaI2a_{L!?4tlKF?*$)H!ox`YXZJ@hz88 zrFn3{8v^Eh8_7|E+b#f$7)QI6YWI2(R6o1gj808OB_<&O@0XAuCLr)1+E=48Wrn6C zlvG-5wM)DN3t3Fa{2l_}DX5z^HZ~ph zx6t%Tvg)HE=cRu}pFky3P*BjXcfrGeCa2NF*~8fQ{ywuc32d@&Z(moTN_TyKy|_kf zv_24C`=?r~wQz%tfx*>40=@x}F(BipicE~G`uo5H8D;<87n$@d1s#rp$5G z>D(O7vwPHrL(zwhen<1O`!sdynERN*&9)G*E(F3s>N%zi+W`UGdpfUbrD-w}{D2TMu0}W+$+?tCDyU;8!EKdh!hlOWoQWD1-DEi7>e{yGSZE) zJHiY%27c)T8g2@c4Y9Sl3Hr4K?%zH&WnSJ+?U{C&r7%>ktVEP*SqT*NglQiUADP4+ zn09}~-MB(bAb)A-TG^GnaT@5fF3LI^uv_ zC(2bc*bHbay*fJcy5Mha(a{s*l#Z<~d+wP{r-daTaX9cG8%mFGB>}_GvH|Zz$g>Cl zo#mAhFD)2mG0Mu#WYhoQlFwzgdiRyFcw-|iXnvfd)E-1(h9G&Cf=w8Od~+tCO(~n+ zM{+j=HS8j&fXvFt_;YRb9#>0io$5B@n}DDo`KXHBZ^7TpJGf7RP5UME3!4%d4~vzM z^oe#4zrPx-=-HZw3JWQyOVlMzq+UHHvc#Hv6UQT^_=blr0l=kX;X|4apXn321ME8KFc@Is5FQprOHG{+$^DYAhZpcTH$;IMaiNKzK5k&Ky~ zL!dMAsWxX|;Qi>>RBJ;E;l?pE)^8WSM;VkiE1B1#5pI?!H%6iIJ}Cawc}$}cBwEj= zqJNDNZrc41(Un}mXH%pC1#xmZL-;Hll@{KzsX$v%I|FOs1eAYvq@lh%G}cEkFqH(C zo%Z7^zo1Z-B1MToH|m4bZ%TT9hR=VJ_Xn17!SpmsRiROJp|~}=rYnNqnS1pzj6xa@ zj*r6;;bJ}wfIv8k<>8r;W{1BY)0<~l2NKtwgl}VTnrlMuV1~@#U#Z^m8{2Y1U z7J@zvKP4s6J`{rN9i4YH(A;R1+O$f_^8>0p70~URXcynq+1Rkt$Sc>Xs@QYXnzip< z#+pEUjgpu6afI$zQ`^5=Vsguaswg z{DDAkNnrsN#0;IEJWA_NU1sNL#KnIYtyU)&ZqO-L<&-+z_^k0j_Qkh1@D_H4h`&T* zRsbP_uG-2TmmqJq^d{sDaY~k!%gOlC)iejeOObOtqv=F9j|@9?~hweP4z@8Fqy8rcReB4Io@{zWq$z3b3%e9 z5i`-7wze$yJz{*WxZ7bB+jI^`bmeoRY+yXV!=Li1SB =}k&WB6;+<^nO%q()=$J z)F`o7#=UH{sUa_+;jOw#6F|-C$>ng2AV1CZ(6D}JXq!LNAlr=}_uV!3LMZ6iUXJfK zxDc3-UvE=xaeQ%kN>3a0_I#w(ZAIsv5{ud$HO&bo5zO(xKK)}eO8m(V>h^UY(JJTm z_Ai)l^TTfyY+a5$V9A<0$$ksGp!|4AYzEYwYmw1bGNEtEOD@(k`EvwiQbDP8y*INR?y%bl{h zGV5&mwZr=pzu|s^M{v{1(4|xl{i${ zaQnRo2ztX@&bC=0*IXy*DsN@E%UpCwo*mf(HdC&1rd?|^Lg8|IC|*e@IuPya|AX(k zr(H|_54>xvy}qSIO}FOuwb#CgPhFMykWMR(=A$dIa4XW{0T`VuyxTrhsdYYQvu(+h z{JIrZPq#n#d2#c^T%UD_jmP5^);K48x|}$o+{2!)=U|V5#~fA3`J$ht{zt$6{Nn-l zeS|^zzWnWvm%$W&Ke)9OV6k~UyYo(1p5;RQT>R_8_RawD@>5_lJn4KcYOcf%lXZ|( zb|iDR4@w#ay?uX>^6>zv5={!6pT7o#A}ve{x0{mM_~dAvMv(A#3u*2dqS zHqFvb>w?A5b71V1QJ6($YI;{#85dP|U25C;X zyfytFAXi@w#pAAQ^~nlcf;(8^c`P|C9XKG)t{T-PXRQOZi}xOgOgo7HkxP_cK&h1i z>bWcqPoU3l`%sq)tLQP(Ag3xiTy4FUN~_ysC(fDGzme;+IzJDoD{L7GZ<>!&qkN9L z8ji)gQYVzv7UQCtlO1>3FQ(CDaX-%R9s?`i5zx_L52B0;XeAYA3}XtNN#ttwMa;`+ zHba}pt^t0wlyM2kSbR>WO9+(TbVesG)*ot`$_rKTUGJ~A$)`(}Ak8VC)i9syW6H=B zy8g`?Dw_6DgQ5f#!ll&YlvwOIL|GOleJI9gsVUHjTsNn96=@0HW5B zou@XPYp-1#XI-+RkHMyx-=m%pMd-wFJe91@5~sUAJyMWD2*MIS*M!w)>Mv2zyAS7PF zVi(>XHa@4PGL+P41V?wA7oZ@i!y<5H-g@%Bc7R=2B?XmF7ZMM8BzR`xBXI2Wc^kEiH*-A$;0ik$ z6co0XimdMTtkPo#IhbKJnsGnZ`?K%1vhVak@u>~W(>b9a#MFkau3j77K}-DPq&LXW zOt50>$?dKUt^B6VbVZt5OZ)ir>oNCkf!w|XtDsvm|0Hx9>dEY2j@D0bN-6}*5cv6- z2ojdt-T>YqhO60oqC1%|-f7{|j5ax*W*VXXFawcAIcJOmz7ihsi}$<%KBdH3dVHdM z*naIHVbp1GhW6QH4!yy5`G_3jUe@9^6a0z^sP0zqW-R`!XUJ~J8OHuJc+1H|tR|}Lplaf|+ zKOl#u|DfP6A$3=ASLN_1A7jk4+QVzxiyc}{edN2l+T`&>g%&_j{v7a85ux zIaG(k>tHV7fsr*DjHy3(!9sfB-@1)+UkE&mwsLADA|&NRtrImls$s>(Yd+wIGG6-) zc2WKYJl>hqQ+{*G+0?0;q{|o$!2ygIgTiO-g~^sny}}%hH)J)VF$~yj51JSmF+~>J z0_G*@KvaOLOPkEj1~+#bVEo@Wp^>L(b>c7=P0upGI<3}V55XFE`PS&a%A1gK_K46{ z`K;HN>7mf3hwxYgRj^oplv&z5d4`8%=;}1W_ltxY4Tb_NM}6~MBBIbBwxzvpiNWrs zoFpVrtxl{8MS*O6SrZsjZltJT{+#$(wcTLR6<0Zp8MPnCWj(EV{LxjV!7v{8G#Z@x zz~SL4KuhPgi~489JlU5p!;s}H-+-BbWO;G1h&e$U|5m|*S;G^rdCb;x?be{|MteYQ z_+Y})+*-LrVy~TSuvz7+0hP0EUytHT#y6B(UQ#hI3bw5~ltT z(l-ASUdVqz|H8m=DEWKOog23c1mmG;>bmsZVq)=>XucY`aX);jVSM@l=LAPGJXKr! zp#$%9_LM49y+dMqEs1i~9baXvCS0)*DtOq#*|{-%;wHJGAisds_bHDI!1n;irr`R- z=zPi6g7fA9WSYypm0Jz*bDU~E;jTvMx%`lIsG_EOYEQ$Q^r&YC`3GjFT?2HB_S%f~ z-Svb4&{SoR0?Uqgs=s_R(}85#wFsSruue=Mj$4!H>KdfTAq(_-c8GA!8w8Yvm!m0O-sH?M%yQ(Wx~H+Y5P1!&bDa#&Xz;HDhHAhKvG zS7xjwsDviJF5r{Q>wDyY(K~q2s+GIQgFb2ziCwtsXgC-?ZW#tHG_&Iiryd?;Nb1i@ zf*?iikr2CrCTO~XR6@s`OLd^&Mw3q$iM4TXFw_(k`)B7Zq`_h4pqgZ>wY)E~!5Pq9 z1)bXGf%Vp8?Fo?%rr3`&I5y_y3vNZlMylmrqNXJZiU|Xp>`B&cD}C{hA<49hd4?u< zYxD89woR(XBToEPdk7 zYH4XMU!|GMDX&F0L0~_;q_rHXoSE|F>T_f>b;qBq|9is4Re{|(Z4ReI{GwVHH|P4-@sOg}?v`jG3_eWP4^3(uy_&JDRl{t%YN zQocp$?DLI~G~yynp)C6I|DfnF@!`LKP7{j^NB2;l6W2<8-_(4wRGBxnb>KW~*$5sR zl4W4)OP;=`qB;YQeOE@Yz zfO(*y@E(v!2`Z(GPE=Li%e#WA%y2|9XZvS|Rq#hlhWZFxtBz5oDp z_#b0ZaHeDpDX^t+hK55(z2JjDQqr~J;vV4urAo#?xqx#>CUwBP@}!|_TPH<}sx^pf zsQkj=%bX44IZ|=wfEPAZo6PLb!f%F61BHA{$J7)&LqhszjCF$p@M|f1Q~JQ1O2!fT z)=J!#iRns758z`(fk&kNfMO)y>-tOx#pUp0?0r+mzAj=50vK2wT+9UP;A3a4k5b{pici^Ve3q2$MGJ1B~#2v^RgW0n&MdhKa}0oT3ubV zHRvQb1lOR!gF^^z!6CT2ySp!(;Oqw z>+STW+-$t`a&YnMgUbuS4t89kS70t*E78(pc~P)nnc@YeO~@WX%NF^%6iw!eNIz!- zXrhXjD$>o4-U_)vdw46OYkMH{L*heh7wP{+;!(eRBB=xsU+a(irh;#D`?w;6GmQJV z${*ZYG+OBT@(-ytJS1O=37BcU%G>~<;tGMkzqd3)VV)RH0iNLu5SM#@9{h%~>~r`l z9()5Ja|}mYctK$9#s37nzaYQCFgNJ8W)V^w-LK?Ff!H^2%3#mTF5(Rcz$dF0^Y8v2 z^G^FJ9QYUiDLV(|;=ZB=}e9z}9}C%AajWo4^qJBKGZwmiWb4)Ei_GD7{_rM(!!T zNVhvurxA3LB|u|y61Vy$zKK~DTt-)UO#gXC`+Bw@@|#UiF*>;50aCkW53`N(I#&GM zm%WQC0wDf+xC0|Y&^ZuEu7zrf1ufk?mom7F#Ve~R^k)N;()&X9cfoNN!m3xZ+}Qk5 z_NWcqPM7D9FGYM9BQ@v+4q|_$EdT$xJIE4p{rDrR*~O3 z*Jm|2Nh~KfMZxkHJqH`i!HKxwiXHr$ zP{O(ca^DLmWma%&lFs12mLDA)PDw+3~$Dl)+}> zU1pi8dTy4pGcz8YKA)YrQIAVUJc9mIJUI5>x53W$_~x>VzW?uC0K{y#Z*_YCvy!A~ z)YD`Y<7?r3Ou%#CbUL;Jg8erfjP&IA-Q#l++H1He2xwOi;B@^a9|%Y%0e?%~AQDvA zG9h?5oqZakkh2BWI~$OW@b-xgs@{Wgr-m5c+8HfxT}ZU;kj{3kk6Tx3Be);+eh)J=;4}PI9g(U0HBFK_iqb zm~P@-z5M@+4KY@8*oTAy8D3HnQYCE?cY=ZwKLMakOu)+3L$YOOZFOyD8#--%!A?ga zZWT(U$=RuB@J71{MK7$#eGK2@#Z@Ma6=FF4rldhBb*?I@&;@AE!R;_!+kRbbX=zXkWaDS+uIvb7UwNxYwzKJl%!Z<=sn4d#ahMM)9l z9DYYX#pZQ=Oc%9un|3Kf4B>shWuAE3Eu8o`HQ{^N+u(iamhmZ^NQLt1FH=K}k@J(0 zXz7~t)m}%Zl$qbQ_4}aJJ;sU4)ZNAj5)K$k<(i0O(~v)gRlw6mOFn0+?^>i;?;GK+{n1>j1Oygg_VtC==rwK@Xewb}%aGK)8}6 zLyirhM49P0p+P$WiBZadq^j!UsM}2)$WMI$I*xElTtQy1#};hf1C5PMJ%4p|C7$LB zvAnY1jO#$l+nB3A&%0gd%snOTC_dg1p}%{` zbPtlT^YQNV%a>>^u5`E1r-EDmj#|Bo0loLj-}Pryi3KkYmw74 z1Q!yegAgl%<_xyfv@{lNv}IJgQ=iW;?Qg6MY$_LEA$$XzT=AZ`QQ$2L5YD2aCapJj z8QtdNzGD;dio#e<>ovgs;QT9CQ~#=bkj7)er}>p;F$U35l(D|Q7usf}CjUDF5&KVS zcUO6|12|L%B+Cyr7M8ZR{et~OEb%H{kI00dY-}zs4N*#ghxrZsisAIaA|gvSJl(|p zA}q?-!o4!eh&)o&8~`6`E=j+FYXPw2jvfj;wu;lYorjQD8ujhFpG3)TO6$f%+#`tf z>74dFK5Wj`KeT#A#v3Tc5u6;Mws2UCx zPPf-&UrJ7q?-U_-LOaC}_}}ofR8?)a|BGW|#SExUB4KXZZrArhDxh1+qv3&W8T;*5 zGaLJAb}zNf+~onFpFmW#V;I%Bg-jV|fazJhH)_^|HfGTmVj_dX;p&w`OT$^`y1biw zl}Xtt2|ZbTb8AQ(r}bC{O&I&g315F%V$_A-&~f$>bx5fGHMqvVh@#Os`4(2@kJMkp z+?!t6!s_a+H8$JdY)h)u^T~_4`JPv65`m% z*pWOEIvNhX>jcjOaJ3gn$Wu@T24c|8z@ns*(wxOYc^adgyr7_jERGj9GB+LnYo@R0Wb@( z?T)v})pT@Yz($3s)j9a-au6s-b~%4-{>E(b{PdKVkdRw%x6_YIz*<)I&(?hTm(YpH zSf+n;*B(vM2iox$c}k4BmJMNv~T+@mXB-Frbxe25et0UoQckU=|^ zS9h}$4=Av9a)M7x{N>p%`HO|z36MWzytE0Eive;0s3`~1m^>!*XsAt^SX^fNqiTTi zfX{4fX=OF`kKcbhlY_3I*8QwyITe>SqQ-BhKZDOjJC+mEJA4wTnUlfi3Y8r+kl{|S z+n)te7qPJ-y9c#g`U$AYV8^X=1Sd71Vx&#Dv!ESIAGEQSrTXTCh39?gkuxVKfk6jO6Uw)aT zRgw7*24IsT?P)jd$%I#2`%-9husPe#zz>E3TZaSI3+PG^W$+;WX=iS5cb2G5@wDz6 zW1#Y`KbvDh5>z;kr8VGbRgr4{@u7U6V{K#h8+oAYQB71s!a-`NxAlE#ZN+=FM919~ zMsZK)D;}%aX=sOd`kjx;IVZOMzMxdME2unTGUW~qKqz575vszv+V)7C39&Gs(JzlRm zXc1VMQtIs^lcLEFR6OsE>Xt7T^>((&;IQcBIW-*B1DZ%rXtu;{ga8tl{3n(}+`x~gC|LIEFB?V4YiA+kzZ zTIJ51kkC+Xn?cw61k4R(Wrjf3Z1Fw1y6W=M2H0KiMI;2BC~rk)_k8~f zBuxU9Vv>?pmX?UqxeU*q5dm&w5eZ#Ez9nxwc3XdS_uRwVwX_PQvlR6oYE5~q``D}kB$1tx;M{o@uN zD@fMRH;HD0lBx|oq>u^M0FSnWypmEUg z(&9X7OKTlAH@jv`#_?05|Bq-R8U+IdlV7RIWJ5f=-|6S~+Hmh&A|eA|C+V%aUO??9 z@OhZX;K4@Oj3R`Ffnm^TOQni?{qhxsg^BNoMg^#nr}@sv$Uv#mt~^BD)a=InnoGpO z`pfdMi^pI<=J(DXdH$xB<|^QQbU_m_nJY?2SQrUIwQ#wayDcEvzK(T`^$m4sEXca^rN-GRZknSMQkgZ5eZ$q0Vj0QN`qX0IpIIHoPsvAABz2F} z@OV4CRXG1qurEC|Bt4xonZ-F@%O$1E&!r zTyDeV@RaCZup(p%-Q+boL0;oqZ@rsS6Mv5+Cchw&TGo}S(8FXylmb5yb?g9{7&=|k zUm&vTJ{H)@?FmjQSN|)Bn0As)^j4HxYp}NFf=txKI-X-RQq7_dv&G&Dtwr~PS=dOl zPsqT+(8Tx)!yg@79Q<%XwBzed1HKjj2lA^zn3=)OW9U2n7sP00D|dYRjUC%~JSD81 zn53X$+^1}`l-&qyt1X#cr)%f#Xn7iex6sPj8jK<<^di9+6oy6Y6}lD>(eYf-%E{GA zO+y221E0HHW}hrA0bBmb=>YnZFPRalfcK?`z^?b2i6dDf59<2nCQdXwxmH*22h!vf z`nZwdW9=H-?et%S|JGCNoD!14d9nl6wI{~qf8pf=zY_Y;NRnwx2J_&jb}uier@!*p zLh%KXDK&&H3@%O{7w=flxU5n2Uo$pUC{LJ0A0w ziVAw!Kz{zN>+Ne#b?6M;+@+<FBmrZBqjhQS6$`uqz%^-0Ome8Lt&O__`Aj?T z_1XGq@n;9ks8kU0IOAiC_%t;+m`I~{bsR^@+v8dgmeJiKeN$CQGnBcXRv*U#pM-i)mAh=actVFtE)D#Hu9#JSCNnajs%)rGQAKl4>vP*$Fs$UJrW%s-%l&;|MxCnt=&_n zhY(XnGro(MxF-nN`y!*U{Zap6)$L{%7R%QR!TzOzu23f968Wpp0Mhx!$GC=lV_|+5 z@8o{rzbcfwDKRlyMrw>TdRz{9!l_aQGt%zQhbIRo+xt0lpqmJ`e~=~&l9J_NeQJY8$gbAPDQ(vu$RSkd9(X9#G3o8uyC|IqHf>;A;?y0UR1S8oIZwHvppXxKBv>INaMy;I_v=twEfcivI8=0>7LGU9_jM zgV-C$U5(A7vZ_APJORXx_ZP3na+DYVe)e58KlMDgSiZQv28eS*Q*g@&c)o(P)>i+4 zq6qup*IgZEM4Fs?qjNX4d5yXSP5HG6Um?BDCLaT?Yih=&&F;ZZjCt$JbyvOr2_O~s zx3__UO}eOY)d15n1TZawldkj=_Gyq`%LHFP`+sMmf;-72Tad z(g%k7@Z6aHn9Np!U?sPtn9B4kQT1nQ5ck1hqFw3x{Mrbz6G%|s)88PvqPRIDKLhoi z1KxwsNh^Pq$qw7x)~GwgBqNj-d0lLjGbcwF z+8@UjJhqA?1f0L<YM64nL7fg&It)>kdt2 z=e~bei6+efWQCCykNcr5ef;G~CE%fn+4nb<)Lcs)7RBnj;ub-8w!1FX2+D@rSO#z; zbJ9f|r@&y{3#iz&x@>@UO4qW0l}$bpPWV^wUxa@X8*T!)3gOz1WesN>FB)tzDO7_rBNL9$z=1R=pRGK0QF2aoQht0>!u+ z%T03khwtc0&p_=b=oOV{ad8daV55Qg@*PTPedOQroEGogrm>Bz?a(P|k>r>6 zsI@4E+UCo*2qqKO?t6Rt1qFX4l6+kpTx6sqR{X`i_KYBRC<>*?PdQX&kQo?2VY%j` zk5@rRgs+A#tR#F1Y`=K5N0~3R37BuG)lQTg9f1gB<2MfD(S|7ASH~Atc4~-434I}; za5VIC^&hbyTif%o=tVo1{_YRHk55H9w+<8MYoImYu`Zj?{ipe9Qzh>Q=mzFODub8Q ztT(uk&Fa;8W5EHNHXhGGt=^d@E+9#Vo{s8ob*Z_^z23kTKkJ7LllWmTcNISYdlgXs zIGe(0rT#xi%fmv=&#mViUQ4)eKdP+-ZGU1G>G{&KEdQYPEBNQ9$W@sSn|n|MI!cho`G-m;J7R#S9dq(rJ03^{o&TtctM0m$D{sv&R-N8 zw;b*PNgU*u^?J`2Uz>KlQisdQgRIltC5R>_%1C^-hlq$%a5B6280BC-!hZBwffPeW zz>M?JaKa?8j!l%p69qRH&f&00->v@FIh5enp?~AX^6NO)H8r9v+BO;A)Ym@DTwc~~U z7Y>rue-4Id6j6u6NMiX#Z9mY_?3dW!b;)b!dXPBwjZ(&5gPD^8_b51SAc|hS{mT|1 zBP@z7UWghkF|mz}`&)m#r6~tBjiY6wMT#1p&a5)z zz}OreFBMz{XeS{F#X+;deXNkn1$29_VbCx2TL{kyg$?MyXuY~?tGdOa57niFN@=xa zf_~{QWys=oH}vD?C<=KT&)FM6^1L}~O=E?If+nT^9W4I-Svm>4z&k+jq;0_Su+6j4 znu2H|ris5&McN-OCH80idc8Hva_x&wFzgx1j3#7EuyAB|%da6V6bEe&!U?322h8=1 zN#%JBcH_ zkW|?6wexHEnQVQ=f0l`$tn;6Y#VNK59hx7srsmcGJwBJ*=EmtfwJsBckXD<0Bw$F6 z&Q6p^{yJn8xjPQ@HmN)CDA*oK+zS6DJG;xahWY3CCn7F)c4}(eVOXaM&Gx~{z9Xok zUOoTbzWpfPDl_zLS77ZlFt9&orSU&M)KZoE<9;?IE+Ikbu%{}!rvgY=msb6&mOEmF zE*O>3;L;!u!3;to01Q9T$6d=n?wmwrDiPf^Lbw)Unjp14}SL zL4R)^m+CE+U=_d9hE@#&5X%pb5I!IWYoI&1JcK?FK=~V^G@iOuu$#N{pN)-;f?GM# zRN3!%7M6O%h=^eFPn5lshFWa`dyTmNnJHhiI5^lgiTaU(|H?t3M+}*J44h9muQg?s z6X2@TCrgmhW}cqX9@d0mkN5PUIUrp2g7nqB!XTK z<$86gX{f7z16SJm+F#fmFMC_AS0fVxr^`s?NR2H(T59X%VIJxyr9QcF#>VF!<>l2a z`|}9~HXWTmp|5Qnq)$z4$~&B_qh^=3&{2xddg;k#CfVX`+sM#(?3MT1BY+ZnqXiif zMHHO0Q#{VWxiRL0MXX&;_z6!p>z5AVdm5d;O!Y2K4OD3nMZ{2APg?~mc+~J*TMxTIS;N^bR-oMD@1=gQ4Nt&pW+K$ae47N!~cDPCbL<6UGbo#1Rxn}Q5F0xLCSbzBAN-FmG#x=yE}`m9^1q2p=>9k=0UBx zS(VSCQPD7qstA-N6{p6NKByoBEv`qTpO{)TAL5WiN|!1jJjlo0PY%)RIXU{hv^_nf zojq~^l&iC|jywBz(=|1RpP4j89YX%9_v{P9V*P>cVuVcWB#jPN9Rdt>-QMi#4dR={ z$3>R0^0AHc6__|NH*ZN-ip$rf@PdAk)yBFe9BVkGyDI9RLR@(CnOs56KPxr+%-r{H ziyQ76ESA*xiHS8Sd%8J5o4*15nbshEk_iG@tfnAUU8*52m{!;v7OB2kD|qTbiF#&y~jtzhvcw;Rq?%<&$B4##%^1qBE&+G$Dn zjLAQbt=FDB&87`vPo`pyyk{NK$HQs-C<-tQ-sy8q$RZ)YGE1C=!8j zl>5mNTt2~K#$o4Kw?=R|5<$N+`d8q=8(=>&=wS(s9;Xb-=RTbAuz~@97WX z6yO33M@<7=4&3A8Nf-)d)EHWLpQZK2#^&ND0MbdeqQ_LXL~85VN^sbLhJHC)uZ$rJ z`Xhk*)YiD(;#umW<&+^+Q?S%TW~kNfPQzD;xaCID)@C--%xqHBz%fNrK*mIGn&&)D z)7D*sxeM$rG&y2JD1 zoglCIp|`RDznTx-UyhEDL4o>IsLg^6@Mie5Muv{RvIb@bWWKj-%&(8T@T8y3Hz>0v z9;d#p;-@FWszX5q6&;H%x#9~tkBt23A<1Ec6Z_qT>6?uP466C9>5n_7{^GM1+Xqi_ z>2R{Pbo<)OqZoSQ_z6Fzbcp%u=}zxGhu;$%t?h6xkr zr+T~F8Rs;T98-0n458@T_V#x9MTd@#ijJ061O}qCl_mo6*5g(WyB!K!z=dP!KNN)? zq{(sV_Lte22>s2~sz8|FU*mV9wBn#BKa})YTjO0)E{n^m>`lEsLN0rpdx#qNAY?)x zWdG;E^v)6s16E1wh0;QqbWr*0}-*bBhEhoEIJ9J}!C1w~P8~_*=B0?g+ zaez4e-1Ms7T;&f22c~w>>^fwql_faLpp>n|(LIC%;-b~ag;TTqAf<%lMN)9kPj4O? z1cPF^f$rCem_>vj3yYE%Rd$#A(W+h{V84J@Ji*Awjm<`2YtwLIqFGHPg4TdM7RQ&E zxX2%qugQgB)=69rl{M9JFh;Kj@Cnz##=gJ}fk7$5q(LWcq%Z2kGnNqpNJRLF?3yzN zimnr%8zAr1QSWijU3WNtvZjj$#rTO#*i>aA8yHB61(1eLDmh8r74L{rY5e+Qxr|YZ z7*GN>%nXaBy+&?x)e-2u9*~;q4`oflk1uHiNh32CB(tzhwQ4la?*mZK|$@cqG{3y1I{v7KY4tLqpweCoEfOF)C~5IpsVBxoK?;Pv}$) zGLm$YXKM9D)-@>WYWgxy%&b8SV|ewU3w&&q6O(<4$UT+$0~koby2#l9Bfq?-1a?DX zt}l^ceIBnfki&#(ohE4xEu0y|8%~V~^FRW}HvFz`u47tFz|%C=C~S1vc1v+{b;yF5 zsihAUGCl^rrjk}49moC_%A2E#25Ij-m3ByK8&d&@MqEv$vVVY5QAx2IcW`7(kmO5o z;0uv^vIOfhgaPdGXToKDdIOd31~5&8vwJB&reTw!Dq%lGGRh%YU4NC#!^7nWwCtfV zPVwDEeMCO^*5QPOwwF3XpVTuwAM_QU#r}%9XcG?~6C+MhAs(tdw>fgb?%~$u=F+;j zeDe;k6rN?KrmZ>^uZQuFss<)!tx`HUtud?6X0lFHXPfjI36`eA3%>fbpkyVrSXCk2 zs$CeadS@?kh~0H^a8b^IME7lnK9l!6lQ+IZMsnClLvRjwG)J|{H*Bx30F&Lw3JI8B zCA?8b@vm(+6&Jv&L6O^hFLmyy@|BwF`-4+hnpluot2d}xN9EGVmxethE5Wrnwe6mKulil_y4oBmgg0dMb! zB4h7<`?WHAG$R^`3su{{u|Wi}^^9&F=Z)vbPB*(>J8^w)*ZObsU(NK-Y$$PbdOH*1 znUmvl3MNn9A1PG*LRfJ(h9xnu3uw-(&U16uc1(!S!lC$(&k7r|6AKv6&VyBYEtkV- z*>Xz>@&*e2t*x!+9p5HuCaYu{IH~<}aoyv28uCQGSsq)o#2ehRM}#xcW4oxh8d)|F zxy>@J^dHRHA&hrQ3%q}G()~ni&tX4n$~#nr6QsEMM|ez7HrdyMx}I;+L;o%?b2i22s3vSgn}Z@vSB z$%lXe)s=}F`~BebllwhKJN)SeB4&9gOYqKSc zc+JG5Fb}!Zsn8mfW^`K6D3`Yg6sxtPCGET5B)mcIYv+snZdHr97?>pJH8LLlMP&_P zaVI_KE=0BIhZcy9=PI2yXmFtmH_+pLH%jO6x>hFpw=DYj%4=U3OmAP;d*B>WWrErM zWb`q*(kne|&Q+^zAMv-13{wj$I_j2)Xc+KzXwA>PHE5~vrBNClA!b?AQCv90(sJJ7 z)0mPHl&8iJ#SwWM9gY(!;mhu|F)fmo^KC4IlTTk%%F79BG`mQ*u^81+stZa(%nSLO z%uCFF5qd!GBVnn`oRtMBQMw{bqQU0b^LGl_KJ6Ir`-|;tcDO$|CO&j4UD+lsR4D18 z3=2ss^-l`?;Av~a93x#wQsE|SCB%Y40|SOosu))6cZh#WA`$w86fbgI1xrF7K_#qT z8SOpABK4$SAGLQ{^0Q+Wy5#*}kiH@Xw&j_25C6%jzob;Y7Isl+C{WYxMxxR8v(sq@ zp?>`R8$_oaADKrda8Y6+Q^)N?*P!-0Mej_r1qUm;!Qrt=Sz#0+9wX^{YUI~S(=0l1 zoz#ScyQ_h;Er0I&$DLshY@rTpG6a^B0bBe1;>Yixhfa49%13HhD7z6yLR_Aj^ zCl?|X``P6?!257vXt0ohs|`;GtBhi}W%r=ynn3O@(V3wdO%d(>q%y;F%Cy}L=U-5Yc_9h-wS3Kxfo#=scQFKfy9_eLP7k_?PMfhQGK4|dTa z|5peQJ93s!1BLNGt1R0P6!DC-QT1I2Q(c*J()Xf`^=Ze)xdG1QwEE}Iay{TLB=O~g znSZW3>FQL!9M~bV!{N6!c^s{%nq|!=u9}utjy@ZsGl48wxrv2FRH~-uX0QpxL^YVX z;SD9&FOG=DPh6h^>t++e?$XTvv@M}))?|>$A!mIzR0H|BEyfOMcu3^_{C!{2__GgK z?yfqTPspy@z7r>lW&9+hO)Ovoe#ey{gpVubp(#StzCZqNpcI2bLq#QG81NRlvDpQC zpQ}Yy{N)S8Y-unM+-p4Ub)LO@P1-6o5` zrCN>A(g2F) zpA=Z|eXbo4YGRne!Tw{V=>IRBETEAgeWb~4C$P#OL>WB`cvm}^et6~C0bLV*F#+jt z8ZPts?(80iv8q`p{P%OniJz{PAJ*OD7QM)NbY|}@a0W({EB=GKVe4L=pLw2V6@(63 zREe~!7G;u^S2Z@B%umd3H(X*LzJO)7+JPe7YczW^f1u5Sq9Cs`a`mMziTwvqyb-=S z($1sfH0bM)oc!8`q_bLGpj_opL^eohqcH85Yt9+Wa$?CstjJ20mm^Fkp&6fTF5@;~U3(BTg|`f*nDAN%MQmPvhA;uf#fj0u zi$?o%G(tCGN+-$-iRQZ%kz?fyCa-RW1#`U$lg8>`8Li(Dh24!xdzgBtsIZ;H zo?qO;!oyoqGRo(sDqXf79Q<*EX*nM;|n>|C((Lgz^X+y03V;fAzl4!5L`k;hu z#4p#uXw+_PiGFQ`w_ku-{Uws-hGv)H72-?CzmsQW&aBpGOE>Wvy1D9QFc*IjfpXUK z93|fRZH*BP5Tc|Rrbbz{&kju)7@03Hwjp95BC;Xbg$#CA4-SJyh^pVAt|Ohrn8^0) ze$C6<{p5W=k_i;LXK|ft8;hIWDWdPbEffDgZ5;;CSok^9D9G8W&26OP|4Pl5i5pVBKd$kA$J? zNkoBN6g3NvlQuJ}D)e6Qn8t`-`#mon8Rg;Zvi(A?8t z9iwg5y<=~?oFMl>`;fKd@a6)lomoc$N3 z`p?T~ntO~Cg31gKupy34QTW@dGfygw*M1bIT3YBee)tuELzHc!u`UTQ_VqwFoUhBiu)Nvu`O6P`^Q@> z&QB9>q(Q9ld(Cc7LP%MGHvam76K?lf)DN=Fe-hjJOIBh+PKy;fsy+k5C1;oTl4}N` zsN^F|9B6zFZaTMjgLLc$9#o}I14B22bleYndut4ls<&j%JskwGHPd}P=v#x?#TGO- z6Eyw@E<*+`dW29h&@yUTI_~}l_^t$MY+~1+7B-D9N%|`u|9bbLu+Zn2@<4J8MB>Se zu4hyY2sO(SePSF9j;AVq#QFmfi;jw#KX0=YZ8%)Ye> zrDnh@Lz1M*HM#`e=RQdch#v15<)5;lVXVY2x?hyw&nqr`|BOKBrXpk*(zNMb6ab%m z#eOXsK`6NAf)5l#$~vB~CPZWd^xuO_;a6J-0uySt(d8f$>K#gKQ9wA-6R?KBd*e(R}zaQpdMC z1(cT|?~?w^rAD9{2~flZ(USv(2EWBA$jg(#!9<~n#>KO%D<~*by+RgeBL4FW5>FYG z{A1Md00ouVt}o2~ai>>LFpJBpFQjXWa@jjO1pA5KqS?b$KNb%!_1~^&$S8h^$8Go{W`j~2Xy(Zi44H)EV8EvSn1R&i!U*DRLA1be zJq>^h6sd0=#(9%WiZ>6%bNV;8Rf?RjVHF%184?^GU?%-{zG%LPM;SRm zmkd~qvwED)$q63(F$h;CxOsca*h=4vXV31%9Vcise1}Mpj_sE@ zn_-iXls63Th7?p|V(%xgh~LuEOv=w>{2D-@(eQnORc~5o*bB2C;u{_<%CqLsT`XVr26UP3Z9$zB$;Xu#;o*%zl-`Lm)(F(YrRJ zKKLtdGTN&>dGRAS^G$E0?=uZAkajX^CcUWMN!kBQ9}p>(5t<4c6^YNB+W6@w(>IDN zK3kxQa_I)kl+L0ZF=p+kVV?DrWhscLbRv!HKH$w)L#7)?4SvEZ=d~0rwc%UC@NpdLIKC=aGMS4Q`$6auacLJ$QhGmff8Df^}bBghg<^2K~7tb8d?`4+e*6pCD z>s&tf?Km0dONZIG;=E zG+>m5-7SBdHNL{ADkccqtTwes_{oxz;L9BXV-eNTQAl-yqjUz86DE*U^at2}>{MvsL2T&^bQmfGAU6UJ{nl-(-48 zB{Spmp=RGvmBB;GFJH-$8TBPQdJ{GgPzP@$)$rz5dVpuZCr)sDEYno`m9m zzulsd$Dyon#v5ukw>b8}7d2aHu!ez4?8QX-kE((%DYM*gz2g%TGrH6fob*M;smHlX z>X&5Y7T1?i(AWZTU3&A^I?|fXiS~IvfCdPY^Wuzp@`d1knIYxKJrpg6!@hPjUR&6N zF8e(lt+#zPlx1&0ZWD#AP0btak4{=rGyVZ?iC7VO|ZhDu$LXD&n%7_&UpPX>cd+cIS`zmOj|`vk7}GLrZY$NY3A+2_Ef% z4m-A8^4lM&pDpYwit#piT02zht27Rx zq&OH0?&N+pZj(w4$QZd*G8?My3A$+h@Ct_-Hd(m0Qjbicc9|_uo6b95oFcVYs3hXC zPCtFdLe)bJ&LoNsCMFj8C-{iG|J$p5>4n7_#tRr~m(G{t-K2w2>9v2*(9{n}uY&D7 zk3tjv3wzSle5}~iJ>ZiqF%k0VZO=^bEi5m)zb&&2f{hb@xL4LXEKqU*ktgV=u$GqZ zLz7EW*&-r8_&j6Gz4rfNYrn5u2x<37W)X4S_rMtSEzY+CeV>7xu_fwR9!PI|z$lK5 z5_{wP3G`5MXOZQ4?>5Wf@%$?s&gli7H6qVk>>Kv(zD$hA_3%aV&#mgkipWT5k@r}KGzf|&L{Li7KWJCViVw%cjHy|`=oX)G&lZmQim@sTrP^pd? zs%`Zywp&k_$>SNyBYZPjizE6Uk}{s5pT?d#Ae9a)8n2e`*39UyskJsxOV7jL7;;EG zeeUm^Om@23Zn$JGjCOx!FeD>Ig9ev*A8%$RQ~TsC*A#!2>tHg@{k*Hdj>w?JZeyw# zZPh(WH81mi!CK{owOcxzIv3Nz>0-6gVEAMNrZ z7n6Ncg&3@;p#UVh62&w$Bt%8=UfO8YD%xY&7SJd7k*FxXz5F#z%rQ4G(rzcIl*UmO zl~)Nk(6kGsePbP+CZ6`2r;^Gl^5vN57 zHh~;M;M3~D%s_EOv?IHHr-NaK_qZ(Z^|nodS+rGqL&JPYC_Ln{da8yYKT6gfY5ekX zlF39mJR-8kYxBV+OTpV=wm%rjz2>{8xT))7NN!L_0p8tdK#_{nPn@i?SHsc8Y6xgV zuq!JB9A`@6taI?PSIg>qj24kM7|1RPOC$*pgRYJ$D4uk%Wp6Nd@h`Gp%QB_~b5_p% z@+mWVw1b1Avxeh_|40CWn*1pue>)u$xlUJwYUBCUf%m8i`1gBTfhRlFdCSR>-Hxsb zFbnGTK7ygxC^i^4_dG-u*Oy83YIg`Cb7jE|91TxPzMj3|>(_3zqvL|)RBlVsRjztI zG*^@yjpKV47u9%K3ZLPpoi=}H4>%tY-+zJ`qLNJCq+`0UJDrSgin;l7GcG@JkQ2Na zdPx4|Yw+FiL3DM1(}*|E%&o@3N;MTKQjkCWdf(buTY1}D0Yz%>Qdf0h5@qaEq=vKR zz{pB%{?fgM<;X#%_twYzLx){}nARYVxs9jTa&wVh^It4Gq*jB zf6BSjOoX5xjWv?#zCj4H{h7{;9tHRt?rsg$2T)@jXL4{!ZNi=x-F9$|g$mlHQZQ5= zok*mcotc`a=OH{ZXb?e>iMz-qi#sJqM&V+9-HrY9C7Nn;cG<8bO#)FU)Q_KdXi+;Z z^lea_IaG9{OBJvW86vkrt2U~SPEknptTTBD%B5I)lp|5T(O{Ob!BMxS&SeXfbu(q& z4-!>^o(7g(sB%B8#tOD;rAAt2CTP&_ z_A*~i_@>gvl};Q0%vxE&HRgVlof5*eX6=ai_c;3~w^79erV7BhRs7m_Hh1Zr{{IGB zoPfF?G)l(!YeUE1FjqPx%-8rMoYF?XbnE=qxrL^gAzRI+Ny5T|hH3woPj&6DQLhRO zb|^ShX`!5j?0c|!4SG`YrDmG5qa&^)*WJ=5)Db#aUp-<6Jdqs$KgpD8SNfwLw)cMG z_BHa(IRNAr$fDCdD8ZV{-qkqV4q5%EOv^RP_Jk1_njEa!U;w%9(@M4X0EMZO#hjr< zkQY`GE-s$lb83ZEk_EcQ@iJ0rJxjsnwX`2z`w)2lczfF3cr0Zx9I9;p?y?`3b;YrY zxv#v$W3dnyd&Ki}aDz#E4XdVGJd>N}ArxBo8$=ONw+>u>ip)a86WTP6+(~X=s!plE(MKk3cYa6(Irq&7e#02M$7gtMZQo zFL`~X8hH5qSwDxqa1|o@)Z7^_=)K6d0#oo4pjaON#v0(ytBN zHv_YX1y`YSW8dyC6rkudYcRY9>PIbemiGdJ$>q3JNsYao>hav%3~oX&a1t7g!pTD` zUC0u@Vh^K%k9e!~Jqa2f8W z=wnG$TP!+$ww|Ve&DkU?tZVUNsvK%FdQ=<{%@mHf7V6T#+1>mi%tC@Xoy2=9-;n!5 z(hceb=5b+RZs}%C*ZLvtCiR1EmiYc^fy<|FItsg0{g^8|B z@+EOksw!jDm37+MRiSLL;CSp8diY2!l+AydSEfP7r;orEPA<_Tv1PO3tX8lk`EeXu1e)j01HtzoYRSCIP2F)-*?2c z(|k|ai|Tz)<@!bKDt4Lez z?tOuNa0)5MaxjUojvJ<;e&qtc5~+O4S>_s~TD(rPjy8hr*dqZ>Q|9Iy3U{)6%GC3e z$G_RuTqd+^i~qlPd+VUMw(jrq1_>b~K(OEh4;~r_+7R3t8Viu%PH=Y#1cJLZ(u5Ei zclRK{HF$7$@5W`$eV%(~=B=4u%^y?sR&^D{(e88hUhBKo-utsUg}?lYA$~}?kL#tH zI{S{VbJFrh&Ya?X?U|JRmBc#ngVfghyYc5oydn&c3T8Tv_~@MxPvjpvcs3=7BCRU}i*pTh`!@ZPuvZixa*;pnA?68d4rSRy^~pG!Ol z0cL|Phy2HaD{ov6YsmFaLT@t`!4h`9;BOg1Q_YVQm5-BC$vu40)g`Io^7`vqHa6_i zPA6({f#)V7Wpz`+0nJ~gy$G!9BG`d%Y40X8e-%<@PXP!o%pM`BE+dMX%~Z)m5UOJ| zCR`6IwVvc7GA8BI|5rAIYTM-7W=v?~M%caMU=dA$4jjL)w0gBf(P}^rt;|r`)YkL8 zJ9g@MeBN8vK@VX7bivocd>jvC+QD%tHl82qTt@!GhImA%2qEfz0hNNwy>$f=@mx*L zJ?uMtQ&N$Cj^nGe$1*Zf20cwa4XLZcRpRnCeZ&mgiC#!l_5GU*V3Hb8&fvGRYl<-~ zqJwzcNLQ^6DQrM?i2;y<8d;&qVyn95ZI=G0w?hkCG+k^Oi?z0Fts%Lfaa_+EyaSp4 zKx6)Q0wOH`7eK_LL82m+9226S=TTSGWwUS z(AYk~4Yl1>3E(&0#W>QHr#vx^4oqDq+xHj{`SOEX20pV+lJRrB>1Wqd3PouQ4Bvc1 z`Q@4mZW~W;pkeRTm*vVI2D0fk32CgmLZsnoXS<*50QUEoyEo07NsSN__D{RjTH5zM z_A?rEnVi2q0q_0T{j4>JIGM4`yBHv-QQ^8%&iUuBl-(yB+ylg;VQ8m&$isK00n(5? zmV0$wx;Zjc*D@b3)MK_GBv*3vS|9CZkf5gXi@Ok1-|q@jrzdxPwi9iB#bU!nFgu4b zjFvhIXf0|IAT=>>5)Qt(K~mf+BaPZpT6Fc9xm!99(v40`&Lgoy+?78>%t(EhYZIo$ z;h^>HiBCv9f1Yqe?4IDijbKnd4xcA2mmUuA`5UH$?V9Lc-l?`!@kt)3c7}dKoFHn< ztSB*&&@Io7!UVdd31`O(gm1f47ce-Z_#1~Eg-z(pE*Qo5eT&h?kt;>Da;4xW@+l#e zqOwT=1thbx>k;BEIt&}ZH1mU@rK^j8kh!8zmC7Vfag|ro^`n6Umm+7PZU>b~6=fhM zV!`ka1;jgyQT9kt;OD(g_z@=pg7oejQhS+QC^VV zJ0|n>73N)VrjCrf*e%ua(Wj}lvZ1T#m;>3y@!i6a^d9j(dy{})^TDsRS_XKuKj=2|z43(2QpklBUSKBy z+gRCsw+2jMd_K6h$O8Tx;k$frO5DMOXQ%NXL3Lx^x+O(nZ$IM)+uvlqBhOM1WT zh-N-dji+9xi~O7MmGM%M4t5r;03b=Yw}_?p*%4FP_x1R;Me>ELDkU`Pkei?C2Rb~W zW~ZiHQ2XfVVx6sy`xBRz)|i-!>Q6ktvOuKUlO1%#!s&#HtjG@4DLGTE$e1TYTj4-f5`vZyZr3vwIrnOAdL` zojy%Ye4caq1FIPmVV=52-qTD7sP1&bhW)QvE@doS9&J*`Q9~ZaL+W!vfYq7eUf}}* z;HXrBGsYUWuy2Y~C%6@rORjLC5gp^c#JtD))46nIyNtigK~ohQ-e1EKL@XjjxKE|p z3tOGKimnSExGUDfe5vS;S*IRiLy4hHTS^tC|9LC=V=F?nt9Ew4(FaY$ z5oOMDaQV}cd0Gvyr75i!aB%JAAA06-I|jZ)7TWPgjBMqL)D(2OrdjsroFP&LI&pG) z3FEfBfU{5H*e^wm`nfAwQhL>sQl2$yD$sGk&I;+=28Fxg1*e+LuEy8gnSY2LcgUM` zhdm^i8+_fBq z93ocIJQ{vHBcCHG2?785kfNZZ$ib0L^8I4YEhuPXYgaINgVc)})-@WVFC;tujyWbf zhBHBayK~&~nv_NOXF0PxuWu-%Cp(5!o%VVe8xp*}vdcn%JY@QQL7bok4c?-SyZ$Ml zDEor}f?x)Ysya8b0ke&p?8?i*1=1pL$JHITP5Mo3z*I^!wBvrT@a(N#hOh9|KEhI( zEXe9aRhkMId;CV7AOsF&y2p9P?z^q6&~X~c`8?xT6=@0qV-x6zJq07+_(F71h#0uq z3VB-2#lSr$MJWwclK_ZM988=X0;Qn^?t{KYEej3VyIZ5y0{-}#49r~Dn-PSFN-?RL ztxk9SCM<=I8hOgqi_Ywy=$ZEgZM=J#(}8qp24(pZm*Oeq?6K&Bv+KRW4a6{=e$r4c zMEKjRr}hRt;lqYCCi)Z=gj}(isytQl^-2wD-QBe&;n0tdO`Vyaz#wKI3gv9suTKeo7NRmFY(PG7$r!S|hwK+@!yrxe->V@ioZn~|iWW0;X;ug%*|@s~-7 zy1qkv1IcB*gM*e3-O^Cx+%F zcJNZ;%^c*tuD_(cd)>m$Ou5mx*&hFJs^EZm9p3qcq_RNw;$rJwX`AD4hUe&;1-*q) zlS(J2Zwwq995%N`;~QFog=uRj4{t9o0g`782j@+xyR7MtPoherl{1y=KAjO;bA3oj zNm*K&wy64prishmxRX4WsIY+~<1vg&8NIr?!WN>Mct2bHiOTlCt?9XwmCMI`7+*^9 zz;M5vt*v9ze2_`5_=Y55nNC~l_wT=VT%O@Rdk6hosH~un#%Fy#MjujDS@}b4XJ62H zx}=Gnho>q#8-6aqy%Tub5tYu*rHA{xuP>rs_)D%ybeF}*4{&MiB@P{u_((2M%#pnp7L&P!aNj!Ud7HUm@`TAL0t8` zcT%>aY->!-ahtwS#L8LqWH%3#yEcl&MWSH?#_rdk^a}4v>`Mh!l?_R4V`od6+L0^y zKUS|@xI!^7K;J}_#xMf?wns@sIMnwqLP$aVMunP?9W1(pW+{v}S+q6r63U?uCN6)F z=xNEn9ut)6n2g>n5RjR)*Hu`Za8A!mXXYJ#XS^+|{znWqXfKa5O3Y0>Wbc!Z2&2mn z`0*y?OTbj7$>aioudvnIDW;%HIclQYI zPX>9OySlPzm7+zxdxa*JSBu!}W4@nSTEau{cu*1bIL3!cN$2K1N1>p1ci6rXs~cLn zC->e*t(UiFJQhQNCF1ZT>#5M-4u6rm3!nypuHUaDrv}~E1f2TK>uWK!z*gpFeXo^3 z=~3pVPoFxSoo0FN_N5qjWPfj#$koISLaUKciW>g@iT7i`XFhvX;`4+>IlssHUFpX`yu)xuY=|x@h;>wnICa!fv10E(gb0m9VP9TK}561^31CC>0~_@a2Y`lpO)Hwk6Us z$gk|JXA36VJ$F^URahWJZmRzuK0#EJ-$J|rxz;4>tKR=onHp-mm0gO^kwfIP`% zNQP77yb^Kz`owoa0G(19%B7L`*}4LD1TI$IT)z#0YT8+*my~WKf(P|IBhJ*kG*bmEvqp3v`GcwRT2~b|yDh`*UwE4dmgxwLj zd5Vl`X(qWz$;p0Km>SVQQvGHoE(ibTiPuW`w`bIK0~-U9Y2*}MjZI22CQ3?tHY8J+ z(?!{(Bob9*6uWf2MrVI%57dU^|Ei@Po}f{xf}Y=or{M>7eJ;+dbAi4L4yTM3Ym zJ|YW`wO&(75LJk1I3!BeyysiJ8ORfcoAAjG7AeUDh#n603NsKj3?jE_t;U)R3Eue> zZEgb#Pwa!me$t0MO_6^FgFC^FdwF996XM^%Fif3DOo8M7Zo*i?jmr8=k6_V^>J_F| zA|UW1*lNN~SnobbH&@Ib)<-S=7&+aseH#6yBA|=b%z9G-;~Z!vq#hK;lz+m5b>g53mR zcbk`C42Jq&?IAYQYRX$7knnQaqP8MTIgl$}( zYi7E5|0GF)DS;)aU$_;;QS1C^A`OA?nz>(PRAgmk{Y8LnLz980O-z}ML`Di9-jY!A z319<#Xfsh{)VvEv_V6SSa|B)?FE0-`A4Q15<1?KiRD(=wO{5IEbyU-`?JOV-s0ZVNm<0xcHe}{5u9T!AH00 z>+3hIH?PtOtt4|Mao@O`a_fBdK%4kkZZ-oz6CQmObPzv|Q5e=dxD8o1Zxb2YXp(aS{rJk@r#Ti8qn zwv2X<9vpky6CJJ}5_vaaat&KrHe};{=gw0@yI$R$vb#P~gqp zlcSbR-PrE?te&ur<63)dMYb??sLpvcVTx-M|jRbEm@1Jk)b_Z;8OvD`u z{7=C)9IOIwRWowMVX@f(?LQJV;#Ahp>y5sHfhDNfrJNqF474m^qn`uzTm-VNZkF`u z=>w=Xw>Gpil>Jc~DL(}RwA-u0pT4FX?6-e#nmaFR?H?FgsQ0XLv~)0ZP+>@ZL%b)< zh#~Q4XxO8|A`seYbJzVREsbB_Kk5AUh0m6LR?e?PN~=LWUX1S_bKk-Sb6yCUmwdhc z3Xo4a6U8jvAp|U5R{1`9@%b5Nh(gKJ?e|uen9j?)9Vf5R$O#ZMZ}B7zSFZd;DcqDR zuCg7olgvPZ6i~yDvzAYJv85er$> zLUvM5*VPCV5&6B2NtY$(6=noXKwQHdA8!f5PLb#J+*R*jQ-9&bS}M>vtF%*Z*0w-X zHi#nJ=0+9|!ne7zGM^+R5G3&1F0%g!`ht!Q)X$WltE_GE2L3{cDqFvPC#CW^Bw<{B&j&3 z*5#^%hL?<&m4cPKJM*uK{0z4cUD_`qIph)oqS(E6cP;oCeM1B2ABx8Hd=H+Z1;je+ z3tDbq;=Bxe77zjBv8bu8{cKb9(Wgfu?(@O+$VmT>l9C!C@{c8t8uII1CU^M)&Z4PM zpvubA)2Fw!1qL*5CsYt_0=oY8x+$w2j64J)fpnqtYJ)hgSD=D&Vpwl{%L|fap#z^O zm7uTnVQE34%N#Me%oV0-MO#03+aNvh@|4&3f((o=(paDcW7g+EW>z*Z48CGYC7KjU z2;dIF72zrhXn>M|N+7dAVJr#Q{S0bQfooO3BS?SW*{MJ^gNVN~Q-Z@vEkX>VDV4-n zV7O!Il)g5w)szBmB#|sMc!xQ?yBh6NDcnTqw__g=pnIZ%EI!o(@vw#DCSnX36m-o> z>qWq#u8MT*4KhGnq2?1uZ?Cmkh*=2zTKr!{YazP1ZkDB(x5sGd9G;UVeYpF%{MVq` z(!=r>xAY% z%Pr>B{gLQvg0Mm;Jii1?r5iB{tSFUJR&LE|cocSca3G9PLv;MeXHLZFax`~unwbhR z+vGhBfLLoB$C>)BpWD^lbmA>J&rk&%ytAsCD}rV;Z!O*|dT-gDC-X#ewfBw|AGMyH ze^pBFGRCf##D^YxE$naqj8@9Bx!MM@0u2x125dAUqkrZhJ|S&}W2+&p7k54PrxtBm znrg9&U!wMF##1mJKL-7g z^gvlCBXWQo40X5xv>s@fH_%j7FxlVwf8dmk7HhFrr!&FK|8ufD&6rL(6a-9zvD$0{U=9t*z!^tPd zDFxH~d_ZC9BUTb91`X(Kr9UL1fQG6Jq0gj>VgTW-Y|Cye)9{8N^17$a`dvcd4#15T z#lB)~SYCeyGD~sDg_dIaOprJc}mN%FXI-fhrJy#u8L{GF4!hXHINW$Xd$HVp29@6^U%QH=xzk-CqP1Y#M~n zr&Xu8O+1hzoK%mV8Y;Jv;0O{buveE+9X7`I8)}c`A%6X%y#q39Js}S&R4!dys%Q7i z8um7$aoE6+h%>}d=258O=N07}LzKi5qbC@}@d*jS&hO+I2|~tKrt$sT0tEj0VOPfn z8R<{_On@yt$U~Za{n;0NXeAe1{7m}!W~5w$U{0=D!5}tcWF=9?^OsG&=k-r?BphS| z&voC8fZf70K&zBt6Hs=lmLD?600Cqih@Yy=Z}<0SmY0$=v%WbyIf#jEV$QFkYMY3) z$q?k6<#q2piIRV^x}ASCB1Xi@53DmAmv+YboCfa-8COE46jR{;HMnakm>Tj59T^ccO#}H z=K69*fUC{urP2B8)wqToqFKQ$R5nqrlf1PCCd@EI z3{80COQC*+F*c#(d-lA5FQNmJl=|XZw!f6jFr(^(at=Nj=ZdKBBnlPo2UczMRjui) zKPp$$28V6ik0F<0{X!v(ah+g23eX<{fr-L+?r6i;;g}Txm%#>FL=Y zTB>)U98&aIgAUpel<54*$rAd$-!Asq>C6F3QyK2@`0ym}Iv#UbIdW}CdCRlW{s>MV zf@|&iF=uSqsbS`xdsi=$L$Hv`Pjj6mBLd6@noD0h@s%|j#y))>+mNiXKFP=lJJ6~? zsjiRh4Z&jRODz&oM)V)D`b7ud4tSWgB1FIJ%u=CuZs0IKkCx7HTlA!_x;*IMHZ>5V zY&je^eY*ZFuJe5BHAq-MCT@*D4*2#vEB1?;{8Hzu`wJOF8$;=os60R&z7IuEG@30@=qz3U6rY@Pe~M+y+-5{i4=> zHnaYV@ncg=7P`?vPp{Zo`@wTg8J}(^9nRNr3M(bHR=U};Vw8yV=~c@TPx|kNASL^A z?K7aF<&@c?361{t{-^!CBhuT=!m4rGU1Ecgw9xzmT(Xxi4L4x2kVUK}U<=pv11MP-ym>G^-jMtlJx_xvA#n|YP1f?e zi)B0^4zM~zTR|}#>Ire!S_tF5_C&}#1T!O{A1qo2fes3bWuA$2NrkUkGBG54gYx!CCO);ZikZVL<=)I4&<2pF4G22S42a`jk0?W2ciX-y$(Tn_)N^*nw!v5oP*9QK zpGrA9d9P7*5X#f8Z@n5XK8%g6pS^jm(M?vkY47u&Zs8tLu~C)z`0*9?fa8z-r|OJ7 z(~&O6t2C0LvNe9C%E}Cs*AP6d1W`}pANzLSd*^2`>kO3Ghw)3M^nh#+vyt!Qum;SQ9zdw$izM%-M{&Fx?hq> zB&eUE- zZwFr4&gs9OEh|W7@qd5X%~^jvX04wJQIeo}QI@Jg`DJrgkOeU96@Le|Qn>Q+LFWDH zZXy|xkSLCXZ(o@zkdDCH?TRg^U&qd6c$FZ4WRRj^O-Kd7zCq{!y+)Jt#b1RX4Nk2y z!lq99w}067a(lAbI|lfY9enVwv7TfWKNz_r)DcO99U~3lWUMf?+Yf{Y4Zl0v#UA^qzbtWNF|zc$+X_{uEc-W>Zx#4Zb?_z5*F=!dQF%Y(S$NFKSov+LFi@nWzKy z@v?hHn|43g*GetZ9cfZ-79k>93fEy%MG?j~NbMHHwrx9L#sK?Iczq%hy+g;477Dl} z0)BUbW%V9xp~6dV^?iNL+$uKDhJz^ms&h;}vHL=1vwS50mrhmxOnQ3UhC65H!`y3L zXuY40Q@NV)UV|%{pHaG@mgv^0qA*1l@P#M#A(}GHS}8cXU5HxH<}-Ct z1B-h(F3&efvkC~?ZzjBIN~7z3C)m3u~Sa7}IQ$P)iE=tW`i zWO16b5N|B#hv_pgKOA3)hRh}Y z^3ktR*_1v8q{tUWstZFhQv6%3%+{o;}qb8!soI53X&KaFjj{i5kWQ33;L>LQ*UsI>(73@=SUOBs3jD*#HX zughOGEEkVTQC^$c?v~c&^OMO0ZWM!@&E0Ecs+YueC~ummmqM_$W%MG~O_NQ%pUeJg z?*s;l2=>#NNQ3hFXZ_2gGlC#`bs!dyq^SeMTTi43h8ck@{yMY#E87Lq))?Vcnrf^bl-RW9@g?Oez9`R5_^a4<-iqpg0;#YD2q}xtI*hSdd3rl zJBA(1B%Sg>XhxF?R4;8k7&_svlotE9a$q;vrpF;x^1sjZnG|um4QT4l7xkGNL#{#Y z_^8xrfYHHQ71QQXRn2hyu?nPx;B!jkhtkdCr$Y8@cC2ic&68xdP(rp1m;(A2pJ%@7 zq!iL4oT;gQU-{O{%_l`PTJv2G2D?#J7Gi?#M(AkN5RhNbZ7$*91YN`&{BjIJ4_3ZlVZxBZmQJY^SNIg3|2olp{LPKrXNGQd; zOj7|#QWF@N&|9N+#2AKpxnN+Y?EG{PqJ>cz3?~iF(XT1X7SSfdp`yYgic$%_VEg|_ zg=Nfj$UvM5t^Y5r1`C~No~SnRVYrX@d(CZ;d5?{=im(oAhBuZsT!d@Mcj>T?f*zjX zELBhaJb6jDU7gA+13^R1FNBViH5i0W@OVsm33s;%!6!bo_m;E*zA=DPNgzW&MA_C> z67vXc76r_9pV?c);ERLVSNZmXYbGW zTUQa4f!$5NW=?07(a~>$HU!k%f(zo;tYw5ePJoHq>H zztaEQy3nlOAgQ?mr_>Lb_L50GVN|w@jftq|TMk&Z{eQ2(5GviGTaDrwZT9M@;?<=Q z-gICxwNsFeF~NWbhmI!5!RXdPrGxta?`a$8e&F%m9lB#Ph>s7%7$4~TO>S_?T=U6B z|6%tRU4y`#kMrA7f5k~XY7NpzdZlXh%Q)EI#xO!I^ns3>^=zj>X>iEdF^@<*7GDM$ zr+r<;6#{R)y|&lx$Bn2!`FT#%!4WD@L`01agf#yX?l#bel;nFZ~_0I+)9lNq- zQ^Y5IUG{-8+dH3w@!taqEQh}|C~AwShj(o{=6q25`b_@s0M>s^z4npG-bndAS%t8T zOy1CTIr#$pTY`Yl<3}G>EcjdqFvRiy^ND@^=F7Ga&db%>TU%J_hX7w(>vMc>)q2&3yOI4%5JI!U6x@07LwLyg^ugXb_zf z^(&&xm%siwH&%{R-L-u+HzK)s*~+`AN#FD2L$=E0D4zfIuc;U)rP$!EeKU$Pq5b$o z_6T&!;f^pfeXM!4edoSw4Rz#?PuFsobma$MAlDvu;`eG9c%KQ|x6J>Z$A}vDbR-m-2M&EMR7L)U%W)(CYoE$g>;UY}hGVOr~Bd48xjS7(0{DYbPYcJD3`Y`N%r_I^gL`r1N%r1yFleaYI&#$#oc z8C^j;x7oN`J?25s?amqRIVm}%&pi#)!Mg9j34lpvi8xl5ZW8^|EQa|ag~wEMtSLcq z48M!Y+CGgO0xOlG+?q1=iYIp&)Z}0BYx^nZnP_N|J(u)$^BcOK9bX`;{gkR1GKq;s z%VzEJhpnt(C#+3$)nNuR@h=i=X=CjPZG$?;Gd@PMjS#%UFJc4zY=&GzN`7b6`Sp;T zu|O4VjgJQIY3~(sL1Egr*VbI(Lhkpg>2^&wT>iH;v!>zfZ;p1kp8~TSeOxz?AC^au zDAZtP-FC8Y>)HAeHQDx&3BRA=lHKb!>CUF6LEg=VH-5K|*52qgI#wAuI6N%sz4G=E zeKwI~-9_Asy`lAq_t6LTaDqZ(YTECG^|Ac(7c?%7LD?0UkpO|HjL5LS9_qdOW0tKU3T zVqQlau{Sr@#?xYNd^L%GUYyE92C_d~KEOjr#~RV}p$q2Z(urOito^pBZ#<4M!4SGzd6 zj9r{Uf94eO-d`?+RrYr`e$4AUs)l3p4vXbUS{5swD}>M#=>+n zRf(DIg47me8T_cq^*rNBr_RS={n+mkC;}qM{z4M}t1I*8Mfjm*h)tc&tTfwnDGzzb zY8hEf4?4@eLwm!1!aA4BV#9pnYTI9V((Q2&pI!b^ec7=X6WY- z&Bs$>iq0lr%8#ia6-5C1*L+pmq*baP@{gVB6|~sDIkgy0OMqo|_Fo4{b&eVus(NW| zno*P)ZX6i+b+?>_q@-l|Z(gS#rM~AY%P##|1dJ=XpmO(q5rj#ULI!$gDoiMfLdaY~ zKQ`ZN7A@o1wC;NKE|WihqC#|#UO_Tanuh1^=I$zW$l1L+_A~(=C$6et9pO)sg=n#F zJ*RU|-$>#C7!KkNGgJn)a|)|W^laW|lhZMWj1f(8tVxdxPu45wsi2A@Sk9ikpb0vCHBVxfMxJ%g&M3)O+qFq)l3;^35P?M8ATp!vB z>gzRfr+)5xFV|jHp6(cy<32;GCcdMKOH?WnaNK{=B$xa97AfZUC~$hucP}bMNd_P} z7#CBQyxA}Lpl`3Co^BkSdQNpcQ+1>WXSFa5W~yfHF9@7exlf;eUyW~S zz57c`(B^GT&D#`6(M0~FD_(I)4!OZ3jpPXDXUG91NzyZS4) z^vV9FGSVVhHi)~{OC##S;e)*cGd`dm)85YBCoijh#a@j2+L;d)BmYZ)OJpT zjg_S}y~|3)82cjMNZ5?xA_zCXj>b`7M0$#jTWB2oIWen_I(B<(*rPQ^XYaPErlKOk z%Zp!6kNaN}EvNW0GALX*mOB^~%{Av&AHD(P!rQ@|1xJHhPtIYYER?jl9X6T^BoM z4yMx7nWszV{&L>+ZCR))+$?Ebuk;r|)xGm8;iPrwZCTLMKe{v~YJP$l`15UvX2h%| z#>!~G9R_paB}ahMwUQ#iBa90Er<+vf1$?V1SChxgx?hOic-wY@(#fk zL-_~qeGkVwi9r3=1ekEVu!P=gE|&DiJ6V1gY_Cb5Xz4pkZVZ0lp2sH0<@xagA#bX- z>K&u*Z-7^qybkjG;K^uno^!E8_m8w`FjqU2Qgvjx)xL_-G7xbEmCBlMB(LBtdaiZr z9Idk&Dc@B_X+=c}Q0(5h|JH(JNsntBY)3&|^PuWlzloE0aQEki^c?3bXqN6vyp2di zj-6&4OQ=7j0#nI0cK7TWSCWOhj4KxG{ErT%=X7+?6jMsHpNnbUFO)q94+_Fa2h-J# zE|wZFewlnB#kx33W?PQ{j;OnL+I(F8XZ)xI^>Mwi$;~E<$9^oFZ%@?cVhHF6m&^Ck zikg(7)nYdE6lL}1mJYA*MaW*xUzcTkn4BCNz9#tj$>13SBOf3BZdgzqkFNjOLGkF) z^vz68n}u0zvM#5Vh3pO1Q7hS6!L$D=xbRSE;*g{O+3X@7n*}H3({8ibI6O(&?u?dA(^e zFk$)B>%6lo@d&+JWBa$qDF&b8`itX@6}v3|0Uyup)Qx9LM;cURM>*4hy{EG4Mzza~ ziJ#>$(NHFdn9B_dF7Q}-}^s5bA)TCT^L z6btj7>d!;W#n8KWeCS{I+1vS^PjrY)sO+_=#Z9S~ILU>h#qKsoZlW^()y_{|SP_8G z{fRhQjVImx@{|X^`!F#Gw{cQt)}4b>wFwPFYDKn z4>$6z#OQUwWPfTY6WnNjmlBh!_K;XVZxM~+q7$#;e(J@WIa+Z%EuXmklq^c|*v_C# zUhl0%)huXYN?q|EqaOkPCahYyz8lPcpRV!>_fHPP1b=Ai3hsJXO`=1xT6^DRIn0Tb z4i7s*QDtRrg{yPDU;Z_`UMf;V!xWC4#N&hm8EhA}x=1({I+<3Rccm_QJJTzpEuTN? z^z}fRfoOzN$FA~OtxG1;Kb`JZ)RMU-quEf)uD5P_65@{gk-zEZpyA4xP1-ocoQ>>2 zPdQ8Kjy_4*ZbrG#_d~$e>v9nW5j-l@;a-u7HG<|IkPLN4*kcC;iObytkGq1;mq#wf z$iUE4^pzOJ*uHhzoSLCe>Ou-lUpBiH+fu%d{M+4sJvVu$mT0(R`@l#r&}m-QlI@61 zaDHoND$<_PJuK;baR2&jJ3xf?JjrkSVZ+SR+TF_8VRO5#SnQ7(iB`1)R&L} zKV{Yab1Z~iEPTE1`ZMRrC8w}KK$^rElVbm$FGEA~pMf8QNsIzbg!FU!o0jDp`hS+=Ang4ml z(vc&Xy)f#x-Ul&?QZmF6CTK*&et1w1Y9R)<_63}k0Yd7O0#m z{b3yYzrEY(MdwT`%Twr?{heJvOb;2}TD$lm@){PU0+f26)s4gS0L<&D>ZL zOav*RzU(IJ*fST|tt4Uj(621M`hn5(&`_@Sn`R7yrVuKers~&4@&AN~FS!RT_6g2d z(W|EQ2~N-7OBny6TK9ginO3byO;klseEaSd$KOLHli3i%Hgm^08~!F z`1SJddojr92J++mod9O$6#w28`t;vew4vT;U*1*1Yu!7;vQ_Z1T+qo&Ve?ebQvyEq zigJ#Bf)4Kj%5BKsGN9cTE! z4a0134AP2~{;yXNdKVJz5kvTkAIqM+n(`i578Eq7gFa58n-yp9j&5s5@?hd?PSc!K zE4*Q~^hfmswkX%iO^+SwsWcia(jOQ86dZoJMzF81%jsl!k&ce8G~4jLYO^?sJZ1SX zINUfcB)Myi?x^*qC@83y&)SaJwDRxYFA^)!=YHs&7x5rr@QAeERdy$R18$YHkj!OsbcW>AjLwuqu?vvCfY{ znPkkLNLwsbuIr&Pkq&tGO`{-Wh^Z6=tPwHo0(6b?u$GjBs+v{d ztZDU!FCpwCVdEeWN3v1p=&J^mSOv2r9&;+8a(*XO1*^0La|-IW3C=x&Vwo>6#ACV1 zeE&-2L09_jZ$QUUb{Wv))q0~nQmFIr@Td)o>HnBuZ7Z+UyOk#327$F ziW(gC_tPMqBY!PDnMW@v#Qp!3av>qdG!9%;=!}FupW5K<_59M+tld;Z^ zT?eQxL~c9%)eAKCm#({hg!m)Jfue}u>>sF-d_u`ygR z4}AM2%WlSn@rK#si9;m+yiZTO8QYQXF%~xdSh$3-@hSKMe0y-y_7cIx&N|dL#B7oB zef4)gtZJ?AgRa{7&kO%bn_p?dN1n^SpQnE?^D>`m!Mk%fyp^6_^6BXwnvTW6EYPjB z>gQxjs`JZ=OSd=v19KVbim<(IGLc!C}vkq@AV|;CU7(nmst_qdh!7N&F zU$Vp;FC&=Cnva49184njQuu{~tk7``jpvkt4S;8-Iy#;Hx62LkS^9OTs z?bS(IOQ;LIEYUwMRuuc!6$b1Lw^L$6x(+O4nRySFCZ}#}9fzf4;t~iu8(5k#yrHt$Q5j(q5j#Z0BxcjuG--b87K48st=AhyXSOUiH zd_LdO)TXS25)M&JE&-80;{sps_VSo(CMg%qH(7hHhvOsb&%5W^?oX>+_e|z;23K^7 zJE@ljA5msncm1lZQF%?If|ioLBiNkuN~;%4Jz{D76`hzasSm)<&S-dft*WouYbZC%=aRF_!LSPN;d1GG|JLet zG^w;{&d;~+6>9oSO({|iG8|IXV37yjXCK5Og;Ha`_>^XS!5|f54A0*vk!`P(+scCZ$K0_G$I%8Bot0I=N{C2w_CvM*boaYxs*%eJa`Ke&naAGVdnIn2 zf0FR_1&?=`vmOKm3k*@=>1d*nx}}+56G`oXTm+F?h6QV+3}T&}m8lJZ8SC;qp{Vvu^X$gZ8f&-vy1=SotyJK-$gF6*T$MPc;}s& z8fD8yY;tB6R&9sHzP&7WkZZ)3UqwK--x6M3&hlJq&4(7dHdPLzxe}IS0EU&UKP;cu zJ3T#yvKG!!UVWQDcq~E7%c0k1iHQG_Au)X9z>T6OSkvw zUHEucgXF01}F6NVf5P$;x{>2iMGe3^enIAXpI(_4R2UldKi1t;}s*-gYwZoKQI#rkQyyKA)!u9*W*WC`3F`M_hbJPF&Bl;+<>gh zo}+&Aj>hGzvVvsd198T2-?VOj^ngP0XIh+_L(#bW`7=)LN2^?l>!R^+puk|Kw!yZ&*aH6@0XV~r=teSoOdJk``p%hfqen9@kajB|V999VTw=e~p zsT6N8N0;cI^0D{m#ARiqBxE^!jt3|R+AtP{^tqevTKLS%DkUUkXDyw$+SeewA(E2h zvYR|k3Rp{JNKx7@fAV!c-en%Z8qEK?5@P$slSsTwX)~- zp{C1Wr2SVr1ve4*-B|MjL0(LZ!db5I=?68RJA2l>ZeQzwu_}Y6 z(-T$FW=c{U+o`AuzV80lY_uUFmnLk-p zg*ojhfq#pOi9-s-1Y66hvtI2kW#jo}AD_*a;=0+noYnG1j`DD|j}lkWeli}D2qS$k zU8h~Ri(lE@C5_M}jW!?{UYvnk6r@FgU4Dtt5hUb@1-abJC6`%3{sJoVzVz{yD+>fC zt&j&8(96>;k7NE7*9UT{<8jcwuM(7fzZL*81htFlP2n-uPgZK8_kL%4bDC0B94`?x z`Ey*HVz5kKZk%G{^WN@Gw{WFmad7cb5&jdZ_5o9^V`a<64>5uV7FVvA_s7v|Yql|V zZCA?#zW1_Hj`6$<2VYyxp0?gzKBbg+d-G`VdSOs+msr_Rr>oin8I`q5zlY0tKL4nJ z6_1|u_s2Q?1TSBPS!xc#tu{8>e9tP}Ba)7v4`Hh`uOEBZ&z3YhE`~nwKJ^Tyip)`v zrHyt$i)_UZQBkEH$p)VE8Z&y`cP;DF^SmMUJyFxq%E^tpZC3gQg0^m!;B*#pR7F?E zcRu<)UWjc}oi;wL0WPo{K35IUht@3X8Fqo6KDJD`q>q_hRj;PKsrofyoHzK?sh{T# z{`$_pCfA{vmntY7-kQb*Ia%0yYHH`B$%t|7-B1~h-hF?3>(%w~6-xCgbdcb~El#Ch zFGPrMf5R!H>*oEWkmKH`02u#(#DoMOl^JiII5E4}wd5P?SDTiYc?V#WAt-d}t#x&+ zmlLl%VPO*3Q7%XQ1pL8w>poXn>kqbCQq$oo$*t$d>m;oFLM&rxOnODrZC8E6$E`QN z^!ZxKEKfo5Cf|J}z={|UMTP;>7y9zV>^b)Q5RugWwEJ;n%=|GM$g7}lN59_iWqCg` z(DUbv07cB;L`&7R!Y&F`S#)Dm*Cf*e9h!r$A+*={lS<4;1Ro=b0uKBHwW^rZHJ2Is4w7AY>aK6vH0i`aJyU zhv+R5dkYKp=)qz9jk8^6sQuX&zVD@6;9a8UBiSC$3hA>T_&-h3E8MmcG4!pVp&u#U zZu|MA2``m5ZSp!bC;Kumqc9gK>8Tw&N$lW11A|VpRsoF249nLk0Ew~UOzPe-XenWE zG0|FNHXw`y7DQJFlL|BL^)d!JuoVl!OMnWv2dI8*xR#n;a^swrQVUnlLN zPrbU{<472=ZEmJiIuX)!wH=XvY=9B|Of*$Xy_|lhHPX%5mNq)QJbMnr69_;&q4sh| zhI599TdCQ-plF+nx{b`{*fwdd*yOzF9AB>GQ|o&d!J1A*7UZ6qIKPE(tdkw{J~xgB zcO4H~)Tlw6R7!3fWSoevA$%15)*Cu0qYSGm^EpF<5C=|Y#q0wo*OAZba)AL^$LZx; z^JWbsh+#SCztvk=+%p_leR)n44CaPWqa3iW*X?+EyBzl2AVYlr6;AH<&3 zREvfylqejRc@7(@4;XS$b0*5mWl~cY7dhOy+FuM+WBiaw84FOBi2TE_R1QCc%CgG;5SU$b@WU>X z)4lcfdXQc!xuGsqgF_!2W&Qf97`0zzZ4T zbZAmx@KjCs<`iQ}%j|xgbkNMaP2)3lu{1=MyO>$}s%?ZSG(#3%i2L1Pyx3ycvv-TD zsA-iZFn9ZLa`le)`jxBlYK_C+M#DyvFL&2kiI|t1cPIA+U$#3p&D%8= zP^a+e-Iuu1Nb7{OX$q;Kp_@lidLgpBuc}&BO!@jZKXn)OaT_xiIix8fU5;sDGtDOB zKIoTJG#T>@Ak_>Eje(C-T=onO4RSaivU_$+3>t+D4|iv0_`Bn#nCP28u}mn~-db7N zXjDI!;Bu z>DHecpW)!HE$WvB@IgddyHDRSW!h*gsELaH=-&!9@5=2RvB|9>Isdj$Uf<9F<^}!J zmHOg`fZ{3Sa_nB4j-A`Pv46(=`NVTq3@3Zy4T-0J_dlZOAed1la zxgglBXxyv8@tIw7+i&74Gt-smvCbZq4(YHTXc(Of_>03kL#hvskWVSU+I6#sGo$&O&htL~;H@!!SXI+|I@&D+ z^?jKZ4Sxx&M+{4$!m;A5S)MynLdB?(LI-!;=HFRnf!n^*?M9D z8aulG4)cq6nd(qJipiNi>`cm_q5W5N7%$yX%yFsDR=m8}M^=tku$=>3Rlcqg78xhsN9b_a74`7`B$aG4VpuFj=6cCi*56H9@US)yOuazG)nPA=496_U%rs zV6fMDI3^I!>?tvV*35(qO=U%wt@8B%_X#60gg!dj8M9yKRQ?@AIS6DZRBSkB!^tD2 zN@5{;h->rLShWMf{tr6Q{Yu`ODXRur`?b%QcZH9_78V@r*}$aCa6f79`v0&11!!ix z+039hv`EeFNu&r7x@4&W)sO?CNQgrE5wPxOCm@tz*PI^uD2HnlDNE1xX|?g8U@vQz z)0BpmHtI(x&dE>go$U*fb@yLSA&AGI6fng2CMF+VK`%skV$A!;P!`>#MM;cJ%T)&W z*qJ*$H{DXzG$K7<69^qTKwm(S)b;Il<|#-KuJ5kU?Y?!~0gM}3FswqA5%v0AMJPy> z(M&$0xs^6gm%4gpHDxd^(Yn4(T3vMjJAg|r|2}{(nBvI6j@i{4eBo=3%}K50JTh%U z@ip?4!FbD{C{CVo+b(aiJ~xVk0h^&lp|9-yeqi8MS1)_ZZ&VFZ^u%qQz@Nh{?ae(* zAAc@p`yQq4OfDR!1=BvoQ?vBW>so8G+qlC8KUq@%#z4ZHgSCW!{NJtnZB7I)N4_RGV^x2%2^XX3*vdCdq zx+AK+4;;xF#Z30~JYKTVYde2T=YyZ)-@haCOV)kq+FRE1x?tJOdTLThZ({H#ZF~KS z^R_pJ<7>YMFYWOJ|K>Ok-;tu*9+Pf1xN-!Ru>WQJ?Rf)Z{CMTf(!tQj7X!@!`pno`=nFwyxVApMGLV_%MHm;aU`g;~n4H<3oHUqg;5UhSO8Z zxKvI?Zyxzgd-@C7z0)tRnR$+9(o;l3c1P5Z$ z(y~%gX0R;3iJgKU!WX{1+^Fi6s#*Z^12(=JaH=vr2HqW)xcBTKsElRIPA?j zrH}Ttwfs0+uZ18G*rw7M!=bPOB!$l{$QU`tnFvFk0VUm=*^f_e7=KnOAt%|^;B zf!@;XF(Q#-o_X&D;sA^+*xh8kyTwNg!MZ0^#j)$ncrQIqMetpe>PM7d?!k9IenqC% zb{RmpFNU)??lBoi6ipZ7p2W~Ywp#Bjb@06wxnCudKCVULz6-AQJbl7nrVue?xJtRF zpQcb!RASR}>@NNE+-=M(j6YDdID?5z8)l7Gph=4^<#P56(+q~@=iS52S{=<(a|H~~ zP%fGlGQBS-G!ukB&tj)fbRYxRh=XiBkx0+_=)N!$;YwQ9j zNAx4ukwR4_>7!{$NrNrLRZ12ktZAJosEd?=(>VQQ{tJI1%Ll(toE!1qtFx1T?Lv!E zco|O2`@I#7wv~B|2Twn(^R~TZf+zFNOjcDkyr>V6Bdw&{#m&vJZZVOHq;aZg*v`#iI<;W=9|F(pw=I7C$3l(zBo>dyB7yLuOmrtxr& z5Ap|js54EMa`LzKoeBy)-viIHjtixFa(H9kYOyQj(KWZK&8hB?H4caURTV1&Ys;1S zNuNlBms96+_15hgDT2e(Vh*?SD7LldMU&*$0YmR3Fw;klJMS)O1CxiPWZfr*0V#~t zc9(}t<_1|3BM{{N-1&pkmX`}N-G?qIyEo}lS%BU|(TNZUhqqcp^xC=7Ul8-Wy$v)u>(#^C!XseV@|^R~FU-ne76OCI&%%1)Q}&JtypNq9zudtCNi|5x0l z&krh`-kU$<8akONFo};zYGZUAyUVk^ACV2R_N#pEPtzM#d>Z;enZ9HJfhTVt#Ja~x zua#}LfKXrxBnv!$6 zUMt4Fp1tgwjq~1Mj`*1xo2^^|xh($dpje1p?T?#DT&Mo>{6^mA5_fBBr#<<`^oolyvUQSBp8;}`$FW?; zR{Mvd;+#`u(_0`FgT(o91is?|yH-+XwAdXMebxT%Wt`{gez&yp?Jz=aRCEg?+qP+Q z2`B62$;dxCuu-Q1;Pbr9akZa(UfN;o4KoT^OlsRa#EFlKJ9`{+U9`@&S#{vvC1r54 zH;4jhDJ?Ay=4{ZQDMMr>|8pL_ZXV_UQtN~N*$db$RPS0xNYiBKUQaPcVzS=(#NFHM zfm2}6u=?%ET4H7zVKzkV|;0pI@(W>a`3L2I->%lLP2N-Y+r@<0(A- z=9mEmqzJ?jY`fG3Jc0MbrcE3VKw~)Y4iH28V|Z%<@B3RDSFhz07if`9M6bJD5fpdo zUfVqANRHO1pC?h=ES>f}#9SxPyiJ@@<=)1|cf+1Jf}+1+^r8QDP`* z4;wOS>zC{n$;cBh<{t)?%H&94f|u+zJv;VYG$`|H-cJwNC(ExR-h3~NY#l!>9nG0* zzI{Ueq1SG-ahlw8)vqr*VfE81tTSA-RE!!uoXmbE?98T0HA0ILtxH*FVY2!_?#)WV z*Y}F=b;+c*yC7C|D2TMC6L}qs)T+NI^gTeaAK&F-1`gid@(2-%m#6BiO7+$|=hW4l{ zlw0Y66i?_Cf}Jm$tt&}>R98b0<3Dkm{7^n4zAw?FK^F70qW*ND=1B@u0HewJc^NU` zaIuIWq7~L$+UwH>S`hk|=DV)5j;CF#HXa>qvIZ0oe)X*+u8x;&J%Wv8Rx*?bkZ2w- z7mPhC-yN8sGlXilY@|)H8U_9Kb=Wn>l}db5wr)G4I-P_U8cturI52bY7KSkTUOu4d# z*#bfS*#%(nX0QNZK^hw|!<@FyvFqzV0+Bn2Uc;}q!uMvdD=oK)mhbT%;n?;I9EkIJ z49K9jkzvAAN%9^xQAme$f9^h|CR34F?ss~Y694$72=m1iENE=2J}mUdw-l~Cl;?4&b0393VhK*Xh98R{7PAhVxibCFV{9M9 z5F`4N3EKyqQ3zr&W-fH+p@}X={2tkOKeU5g@F>al)h5d;1%KtX{1i`;Z<|xnZ)GFB z09;Tc3(BZ2f)HW^(hg>T*n>kODhbR#m|p>=5uqGPA+1Rgj$Gjn%G^w5)fRPoL8Ita zSEnp&1SS*aDiBAYjhht`vT#O=wa+uT4MP+;2L=8%7QdqFdalmj?1n44k;v*?S_tG4A zOmtml<(J1~%D(3Fo;O7em8;j4gBHcH_F?uXWNX|x$e=&fC_wBQ$sJ%TJFe0Vt~z-d z-gvXx02Y<7gdhl`kxf@Ng*0k2_}VR_W-z|nHe*1B&SthAUwUWYX&~Ir=RiTC5eCN& zDs-Ih@Zq_J($yqNKOdCFTX~EPDS98=sR164*OvZD*zl<*bEy;288=U=yf!gSwBIMW zf!fvUg>i`U@vr?OsC!o^Mtfm)Sy^m!M8CZB1d))FL-*XkFZM1D7Vp^YqrFG$#ClRG zF5To?ZbCSZ0$jG$*S|s0MSYUfPs`YA<6m+1_MKRPl31|zNNM9z z#qZj$?x8fx=$9J!-oOtoHB1W%eGlDpCKc#?$GMGPG5_FL+$_)(w0fX$`n&yKkh#c87xlUEAH|4E3E=;E%zA|lV4-f(G<~dYu>g)54r;U z1gF{Z@8em#bWU%Lwl|ihjcorCX#}H*k9lMTo_uB;k-!MF36Hr(iz!VA?Qx~60 zGq|m_iMi#BIXL>o#b!Wd+?FDQ>$qBiRR60lp|i!bYPgyCnsXYAG|aoi{i1%gLdr-d za53UIZIDE_o=gV?JucLTmHaJlFNgRFU^e|UiWN%;4D2O?k^?wAy<~Uzz>HV&l=dGHh9PqG$YrU+YlF|?(-o%4MB#R3QM6~4 zR_7op<2YV1B2Ykj71-Kq&TSvI05H_D2HXMKS}VYMLP`E6G1Dl_-H)P{#sAUax$PW# zs|*-?et&2%(g@Zvb7cQ=FzV~rT)0~<_K&{BhL%I_|DgJPm2ul)$#Doh)*M)e^9z1# zNa#_ z7K~w7!v2WV)H{yS`9n?6B=;wu+x?AZynh75rpAjFRDQi9i57SI+D1u2q>zOKud8Y9 zGqKG+GUB8u|3*Ol1cY+0JlL(Bh&`z~MK%T!_Emr0q6Rv_j&S=ItbO~mVX}T899?LS z8$n1M?RV!!(!dXCwTwf8sE4&5+MJu`l|x*^Yf#+H@q8W9@w$1=_20esp_@_peftlB zNwne_rDmY9xUa7B7QgRbU4x7fRPX)lPoXMe_YBi!t4a=S>`Cz?GLY)mlSM&p(U-)* zP9{Xw3dM88Y=JXou0hTtWoZA@#WNL_*p-}R%X1xp(XO@Z6Zvodpf0>!i4{v_1_voq zGBwz_%JqMUW{=f>x_CmtSiU2Jkmji`7n7~WE4Ja9VwsTqE7(ZJXg>d2n}lR64fY>r z6UkWc|0-Z2-kc976O0unL<$ci_Lmp`w-Q*>{kaFXZS?Z+^Oj4CC^3_8Girihaoho8 z9LyetaneC;(MPA^BS=ABpJ)5H$fv!BCZ~2Pw>oASgniPL0u%Ix*`qqHGS!yBQ~Iul zl%fByfO$k#_7PBo(n$*}CpbjTG6;(NB!T~Ex)==7egZVeVFe)m;yKF8W!(l?f@{a5 zXyMz`QLCmOBvn9Sg$Yq$MUV<(1gZVpf{>U|vT00=MM)rJDp-}?1@MDCgz+z&Id>AT zYbj$*372%=Y+NfQoX z80j7-a{hgQiFuFZe|%gAWWuBYl(;EcfU?<-Cl9d-T{TRmSZwh<#H-r?m&iZV(01C; z*HDts80Ps?6g9%IACm%oR#_$D^~O_kFU)1#k2c0>Ho-% z0bW;=htr}NvT3(9z7V!9xysl&zOGCUyIaoDZi7&%U=A|j(&fq2H)X>_Y6k@+V8!9~ ztTQFsrq#N{aiQj#;;2m_Nmg;c`YWJL`z^o3C*q-*pui$n^&Drr49CnH4mm5Bh76kH zF{?j@!11Ua`Au75R{IMX8c%J!|8Hye7?6C#2M5@2LKgU5fZ}sS8wSL$>?dGhh)r}d z6|xBf^$s>L>^O`;2#P_B3}W%cF~uf|1=@v|iupR|UYsI3ImuC+IDR7HC*n|jJe?nk ztC~YB8hUM*7Dvg8iuGKSfC z`YX_};)2K?3z14&N|EX%36#!?CIP|~{sRyLnldH2>4hq!hsqwY>XTF$;vb+5Q&AW{ za$lEiAS25N>uO4(#)mGI!*b$SvbD|Z6eZjQr9hQN!IE^y%U^J(kj1ugO6o2G98xS3UP-Suuc&uMX@1SAb4JIE?FPWW z{%8~|*f8aaDbl5~?nthjIdZt$AD(Ua0osk`im)h*MFqxcg(gW6(=edX(Po_7NGL#lA&R5VzWvzH=!j=q>csm#|kyC|| z^Mmz_#fsE%61@(2%R)UvzYdwV!oOR@hN8gqGAh~DlzgYIsv9`2(t^hep4+X6&%~SE zT_ZPgrTr@+0%J@7%b7eh{Xw|Fq}2`s{mC2gX6_r?Pbfg#(lx(JjLjE*5M+f%Mvp)> z%_ogX&=^}Zu9USzRowMwh0;#(z!`0$<<03bA^4BF-vqh}yFTK{<%o?0C*@d z5ne`k*)f&|Rj)*|bg|%aK?2nc*0Ew!vM$HAFBk0<(dXD-RjP0`o;}dA;Lm6-Pcb=; zpP@3Mct5l9gW`uSTaf*gV{uBL5E=v7L8eA9nS8$B0QD*kwKg85<|Yj-Opq%k1#KYD zep)IrZ!Fjk8wL8S1*Tc|PTiu6H_5I~*eoOc0xSKDCDZjn0{2!I)5F4*L-X|`Wtdtgql>72w};I~D4h?nW<&K`K zhW2`v{;c(cZPw7+a`+d8(Qbr=lV+y}Se8}?+yV=rM z98ozxP-7#um(X_Gi@`!I@;{)ggGIuZ@2&A-*O{ebe<49}4^ z_;b*WneU=BDwb0bEQ9V8D79BLrupQ%q@{{1!oPAUp{zPTwFSEOD>wC)JA29y3pCh# zTVGgQbFV4g$}cWjo6z{Lc#<2C-+_nFVGBHK4j8@|&}z6QI+gf@v!_?r3Qq7quXs)= zNhQt(3Z?I;2hNaJrZ-Z7)}~5&Otb5=%SzMB?n5)H`o|UjPJPalFn`=Yrb%*^1( zuq9J1wTT4BWt~@;@*th2HLm|cPy}(epudbbUbU;M>pXVLk#t*BVV0;9{h#BW3U{w! z4c0`jK$>qg9qw!)LWMOAGxd?N?!ZG6%%@kkyoW9yWO0brHhy%1VP>}WX+dXv z?Q_r{1BHV4`)zsy6tfFtKF$;*@|Vbb1ThmLjiqB?XTeV!)yI(MLd~}g=b!mGGp&DI z%;q$k)_fH5r1j4z5&XG4f|>#68AiuLLRHm7)Ip({w?zg2l63Zxs7Qho^O94uSvJ#l zVRf>~Gv;iz;m?)Yb-$wqaU^HO3i5jSNg%;ik1o6DWe-SFz>n->_hD&ahmY zpQ~!9yznz}^ZWCj4zd2f>!2@kC8)%QDkZ7PB*(Jj^M>iFn}}TAKN=9tQe$NPaK2-~ z$2R8$@rPBCa9n-=%01nZV;p(>6!el*Nhc6nwmlmx?E)&Rq7?Cc}?|g1XAITh@P)s82pT zD8>PH zIiAyfAaZH!AAw=~P<0v@3jCQ-sSdI9Yu@|OD#rDJnYdUnS)oLNO8$UpJB_rM8X1jK z=CF!VK_G$|ButrDHpw#B0R|LD!E+y6v`C4cgK~%}A7b@~rC6o68`3lUXD03+20$X?rW%iD=I9E-yiQ%=I2Qr0y9CdUdk)H9`$^|P=ZI8BE>xEaObrA0in!H zKAHJd0ZM@~O`@BKrFw>ZuGC%ScSm=O)RYj06*Me#=w`4il3>wc{r+?PQj>2+Zr@DY zzKz-*|J60;e@*}fg8toA+N&0Ojdn7*8inMxW)rJOiR47Fk_;7@W`Qor^Z{v@qCY!B z5sHtsY5B62`PD+`yfqs(%?n=JO;l$8=nHLIk5E^umO|>Gqf_&=kklh<>I9$;#4x)UMlpidLdJWr`YBeC%h~RT6`<(oGa^s zzfbkHAqYV)aK5oXWi)fhIrw-S(^#pZCB>DBwgtREuiahlm`l?~nTQFa926q7jj;~> z7J{&}BmCz!+R;DLk9dzl-yRA6hXwr6{&ei;qq2Z(pbC>Jm`}qHdBrC4Fp(6n>m(Pb zkz*Q9*%s5s6iw`oIk=S(4-uomX+Yuxr*XB&r9WwP_S4_7Ez5ZSS*LyQ55mEiI8aZO z$0oTW0G7wyR3@L5f9}R&ySwZ)E2)sq?dDrNc6goA>r*ILV3ydV;uXi2o!7s*>tkf^Q3zK?D0*G=%=Uu%?L_JS`>2X92B5xuhB^E(5T0#H`7;vJG*-N z`YOq6Wv$H_1y@XGAw&N0VI0AL%4UF@prrgr6RN*IC8aE(v6KMftr{ep^Zq4GASBQo z_ltT^f&%G+mBq;c*xUBCJPA!R4748oxDEhq{Mp??kl$)UfR2(BrkuA_Fk2@zm8+I8 zk60#_G+&~e@jeol9Y?day1b!1XNTYJ#|Pa`jmgYgRzMgZ?@cLwdxcoZ(@XQ8-}xM83sx&9bDT^c4`sA2x??43 zgiB+5h~tyUP1|rnj*SaN2@7y4fQ~Ni^)IlH9gj3f*5Y3Yyp+#Zqqdf(S3~NrdasR; zI!)!wDV-!x+q7(ajE8MqpZ;WB$eUgbse|zQUO17zdlYHshZ<8?11)WfdwB(Dls+bU z1Su9JSS7&V(I%;bC#aulQLB(i)VqTODN~|Mf%!l%%#J(^xCVDKO>e?HFH(KLCvX-4 zf|BaRm|vfK8h1h;eN_+KR;mz$ksp=e;_2{cd-_q}tJ9HGm z6d3d%(K0Ei%YPP@Nz+Z;My7_ItbHJZk)bP~#Aphm4#{UoQ%&7Z81lWT)(YM>&4b8* zKkAIhDP5mfo1cfug18E^cjWthlQGY~wXJ>r!@O{OYa;zZZvZ62s1hd_PcuzQMzKqN z$mpCl1LhpJN>-0ruibl(6N3)LT)@gUxgGChT29^+>h0y#V{yXKR-5-Y{55`A+lA@R z!cynIHwS5Zg>b%bfMpORh>o_Nl!1szA-O_{3_c!}9Yj)PWKY#T|i1%hoo=zu0CB{onH9!YCph50`NoIOrc}hR>!7O#rOK3Ksih{eUfqFw?9Uw`tNoZ`N_2Dte(>uafybh zHO|*cn1$`8P^wN@&ovzfNLYNovA|5qY0}|Y2_OssV8P&M0I+f70Rqy#pOC%9W|fxO%!ylWKe%q%ZoyiUgfq(Y$-U zMgKt_(7nI~&|<7b%Bh4(6bz^S?=!+d8*@9$*=Z9k5U1YF`SX=rVtR=2yIkpCTR_A&6dNm-M6a$O)M@PiKBFR`P z+>S_=v@~7(%H+6)REOJNojlqrlj}Y^QP@PqnnxC{(_~g@~Zsr%%vYAr@S2 z%`!-ywZ^k#bXE^e9Y5pxXU1v4MgL;t)@gg{s2Oa%>(kIJ*!M-AX4WLZWJhJkRMoT~k<^OGMDRi) zkv&G>m@H8>Sw#E>&iNXSm8Bl<#EQ${xWZ8#0#YBKqYsa&AM=9qRwSp^U zd%H~lSi2_tHXO-(zWH>-P3q3lHL;GUg{Y=Q>TJ2a=b~ppaL~*c7!{Oksm1rJgz8$; zsuyFs7hXzI;C&v*|7dMMU{#zB3YO}ACX8HeW>DK0CUG#3Rf+R$W?EoX!+>Y%YDtYB zDAjXu;@o0$$^xEp%+-fK`+>BrO&mw*lxhNfK=#YX*lfH+ICF8qI4n-N9K>KkGx&dtKL2hJ7@xtG z=T*GwUhAaT%*i7DDR`tUydL`0tPcFm}Gk;RO;+wQ-kb z6no=YnJg61N&DKm^cg&XxGE7i(kGy_VozxZcWeZ#cdRjXXh4P{UGv*SK}ZvfVxn&0 zj9IDDG#>sfZJT16ZE_ekT5f0agA3bp1_+D~Lik}4G-PiV+f4vh?8&?6pC5Bm!vmlY z*>U<#n~8QuHH+X+iXfKdnln{_-Btd#4PHhQ`RJrODv61-p9WGk#3kz;d4qD;QXxGK zYYXx*KS#8<2{yXjURGQGmb;#%*aC z=wpXNcyB_n=F-r#ICWHqz(FhYb%Q9xdBDKH_|^Vtb)U_vt{s-d*B3#1T+adp=Ly8M^A((Z|+1)sX61Af;N*<|k&;4#7fdrYC6aq*$l zR7Ls37!5ig=9mc^wh<(fi7*E#_KO)uFZSNtY1I$elfP=G#~R7l-cH?@`M1}%NnZS1RGThY#%xwtaBzOdw6 zQ+m=^++g3D4bBZ4S}+uN?BK0xA~?q!szal=Q_QWK7-Gto+|Ht~TOhvm+HmC3$~>bh zg9H}#CkzKv;Q9MJjY8SD64aeEW29~BHtlr4l1qKyOr&d*%pm=j&PpkMll%l<28BN` zBoHDbz6hQmMENc`@9S0ImldgQr*;ua%tG!jb2+y;yGrGdM92E4cC2?^BvCLq!VtVE zyrslsEyNU#oQWEk>c-|gi*;vF%`azet0aKt`6qx#flc7z6%vNr@Xm3O_8iy0+y+!6 zsAUeVMbe~m(WdJr*bIEdKUSwc63*zKS~1?S)&{IDNYTkFN}(sxG*OxDHq(TdrOnP# zUt3qM)x1Se&8tVCcWx6(-(bgka3#=aFN3wuS z@7X6;?q#22r2s%|YhjP#VV(}n+KXi0Tz3M<>3Zd}dC(B`N_ghoE*cpSNQ%vJ3< z_n*HL7^4>qlg>`{iX9K zs{ZYS^o2-ftF&J4{sdQ(O5{`}VfWTQ!ic_Q!38u3;0Aq1sa28Su=GaHFX<^WSu!k_ z&vo$RK{G*uZO7zJX#$zP=)VN{xykZ5N7G{;3N@Gs6X04}8U zwJ8I=S~*ply{N|6#GhA=Z&Sv>)06CHcRR>k1MZ2ugdHqKn-B&vDcGX|%)%+5^f$ONqH zUIZ8oPwgMvl5`LXc%?EE;$t;Z6E)LP$jME_jdcX%DG^`b~731PT;3rGG&%5RNswAEK)T`{6$IfsR8uIlkNdjAWiU+9Ciy% zq89*TQmr=`$6ZFZHG@f$Qk zuv`VHEui_2{=)*|TSSjpBf@_B&%kdB%({Q5x1mhOt(1ZYnMQM>lhkRoLQNCFo4(>? zfQ4Q_FIVal-9Rc6t+Qq`r^wbVHMdi_;7tB`N5TAp&e^FIDuZeIdMLhA3RS)At}lby zrnCacLfLV$C?QV?`klm=G0~jS@@rsR3rDAm>k=oPkf@Yh=QLqFp-2`bDtHIalo`%- zXiwSGG@Rx;nh#YE0c=maA`XQRXNf95Dl%0Y;=|6WwNwy@604K^m!(p1Tj#S=~n z(^o%GGB8vzBJ*)vVgTGT`-#)2K4h%6sfE^?_T}b=HYAv{1aetUP?*9&=@?Qgj_5Up zkBh;K(|k8YR8d>EHij_*3}TaaQfqb5N&nl8o9{64=jj1Aq(SB4pex0Q-6FKnN@=R$ zhL(EU!V@?{fi^+qd7ahis>;fZch6&5^B^9kmV-ZQE?F*rE&{G@Y1!(l*NfWQXU>yI zE+Ui&Xc-~DKVKO5$f#rmpKUMV(l1L`YkW&&3Q@(@_%3g1f8n)3u z^SpWpCyh|%7R#s+=uNTI$0<{^qgrYd#v#QIVIrz*J?IN^sI0>xERwOKD|W}mx#+SFDgyy63f`RASP@HZTd3 zRHK}dpvsB3jdar{(Ultywdmmz^lTf6zC9F?Ean&I4|X?STDD{3Lwo<>@p!1NY$#xc(Oq#4so!;|#^# z5DgkzIBQy`A0jRKnvDR@oQKnpYpda;szO9_P!LL+)R>V?n3jn>htCfOqNC5h&`4~J zz?@6glSkg4Rfvt_$}b`v0Nl&n1T+UXdyZiyXqdl#=h6KlK5^tc=R&~aemK0=+_u|J z9;Te5OtD}yGJpDV3ifUC;Hh~NhV~x~!YGc(eTTDkhUS9-4OEAG4bs84qi> zu|UqadfTmM?XW7|4W=~DP5Zr2RO&+^yX+P*w|D~QXWF5mc_>9kz~DMK6H@|#JsYMM zL4t<(iKKq3QgXNDsa-w1^N`Kl?pM_I5IIgl5BgnQl$xRGaEwCqPbpb!9ZtgE9hull z1QH5WH#sJ2Ix08#v{k6zP^H!k!%;tE}k;8M6DfWGTmpU(sU1yEc-^~p!ngL zGh{{R69apuVEAp@iKRH{LXpv0*X+F0_Xb-#yKVr(^JcguMuHMCELNw<2^6drHf_-S z$#~v~>L*T$3}v7aD^3|41ODfIf4}l3C<_f5bA za*6)gm*3hCu%hQVRc{zNgxB?q?>IU9+404B~3uqA9P+CGl!fA2xQUF5`j*=kG)cA zK+}slW>&X0-Aft5S3@b2nkRzijRPeLv5XNmkS^nus)LgHWZUl<9Ltti_}I9i)yYoQ9uxy~N z=g9k>Z2+`VOaZKWmdCX!%f!6>mhH{n*w|T#6pL$jeVw{I zM<2({E7PFdgN%&ZQ8`Gs|C-1pcJEP?fhc$843ajS(b!(#gOs_y1K6IKxhzV46vsD@ z<`6ibRm7yOWkiw!#o5wg-0(qR=+qj+>*0zlrPDEthrUidp3g_7n=(+!Da>?imay4R zht42`PS9MeMV15;8xLzoUTxZoMsAw>%FtvkluFR|;#!oPx#zVc)$C9Lr3RRt9++d$?^%lin0T>NY&%C3r*^$aDwf5!~JJw^tV{3@!9 zOUEmwrrLf_GJA>_Ss;xFrOxPOWVX6QJ%3X{hOV@J#;#qQ4H2Q9RRHONxKNsb`165X?R_I2ukKPd5jQbZC6@ zwKxRzxj)?nUP6ADu9Z?!ii2v3ONJsyc&w9{3*7Z&EDw}ghS`(Gp;V`Ed7%n6}^zxHu+k5L)gt`^o+T$$q_EarRL1zk?(Sz z%B()#PoLF;XDV z-=lD+ll?UL@p268vA40IE1a)LSot8lMvb*>v0V|=`-q#DtI7Aa(j$J`BL3E0+seyM zn*=O%>Uy0k47_g|KL{b%A^J=I?%M*>7meFqM8VIc6{=)nt$|BR#{Ie8ZQ+kagG)vM zn^sLK6(_JQxt?uVidvNs#mr@8;A(1pGj&{@HKTaoW$k<6?svj{Rx6G*{671RfmT;S*Dj@Gh{#_B0Ws-px#evEjUa z94ehKv4gxxnfx>D&(_lT*!CAX`UvS?{g`x>1l8T=CD19lB_kig&Jau1l?+wmR*Mxz zO6b*Y56i@Ol-Z_koUko?WYM766(dVdZ3nu6TaRx$@-FWQ%$&WA_D|nuecbtdbY@=>#Tk3R+KOv^2tM;WIk&ud; zDtWZ;q)8`YXZp68@RRWBS~+L}2?moe1W{nq)fxyqj53#NWuQ$JY&ammmz+(h(SxfW z-cwOgI6FRxS%*FxA-SN%Vq8p7R~3fUt}aO@Hx|ZQhbRSB1ym3=a=uT=Fw`mOXI6%> zPNmu}cOU;{SxoX}q+ze?kv=FdkKZ2W9uE5%W*(a%UqaeYJTRF)`ooG|X`i~O@CDH)jw zL^X8x07TTABEABhQ}(ek3P`}je?sOV?+ zCIxO%ZF9ssMes9V{M~F@pxBKUc=caA_ya9Xegllp2*s0(YgeN@x7iJAvron*teE6b zD7k)LOn3TUE&vdIcfM+5z#SVmJqA@)b*R%&S8o>`eE4k>SbR{)1?&TBO}Q0aUa+RrbQl7FUQhT9XiL(T)Uq8d7yEU zRYO~4=WesphVS!8Uv_uf^QT>w%y9(8aLFCfJF)fERd|fP%{RQEt2ZxPPXVXb0_b)D zwOQwwkWT>?joMKm;5g`4wRj$kIizvIe*P7H*?ld;8ZY)AkO=yAGuTZ(#zes;W!F zln727Ez(@CCgti>d5x>^Nuz3C)ZYV?3UNr>OoEAJ8fC28mMazw^o)%Mx{*p+S{T_y zr3z;=CQB0QFE?`>`$hQGjCIseHS%qn7^s;?zkYjEpik4x=CV`SR%LoHF*cU9^3=9| zs!z7ta9qmCUNg0Wq94h{TCo_C`y>vV@L`}FOY5l+&Yoq|hE?pDpoz`^$wqt64#R5X z&AWxw^;Rg5tcrcYjU0`L6LNMI=ZS2@dFIkFXePhB7EoXB`sg#1#={_X2l^9bPKRkg ztI{TkQx<9a_O$hiyijj;Ll1aTVNlRl94|f<2-SW!8v#W(%8f5>uId?ak%P8PVTD)_P!X;4Gv^Of-Cv+V2~@g7W%K+G{ZY8tEEJ$7_c

I?Gq!-^Z|Y^#H`Um2QF6n6iVHj+BJkICSJ=l-1Mh0AQ-A>|BH0Pkq5 zQ<&fFxKmKPz!(=i%DYn>bhZCZtb1l(-|HfX;S(P2HHq#Dm}Q>DDyv)! z=75d8=GkY>y3^9!?b4CDo^MSrleJ`ey$8tn<^EAwyYmWE(Wyz7@+l2_aetEzF-PCl z2T=*Tcf}Ndj&QvlHWLV z=AD3 z2}SA7@rlj$Ech)c?I*f0JujaHu?YmZ=d2nMq@J$^l_CmxfKH>=^i$9_z%Z(kb(}}& z_q-(qM*2J*&d0Bv@u#)F-okAacJV6NtW|2^58_yKHy@$1Bxiy}ik|1RL zTF~=EF_6Y$tD4(+8?i=b#{6X96(rixymfO1$(S7KOXJ)p$LrX5gii2IrMF0Y(dmRD z&Y*%tf32Rbld!70E*8@p4ug?yRu@<8kBYf^(+zX^I&BkQ_DR^aaXj2st2gQHv;aR&09|)3Lw%D&pIBo zA1^xjKm2BdM!^=i(3|MG*SKNebI+TDqb+jhC*Vr-LL}ySIAHdt0PDY9k~RHLR(nKx zbdpu4*>&>!n;%O~X3QQE`bF(hz6!f_)v{y)lPfN-t4~gB(vP|zg47y=LiLI*-=~{x z6l6)UO+lzV$Mpw2g1) z-IZvq>b-%N&BCl1-edjriN|G}5Cw=vr(ickA=*28a(wcD3h+iwcDp@GGNLCTQ~f- zOBUKW0NQnF-5BspUE$}pxY5ZrRg~&NfGM6(Bs@*7rat}FX9eNHy<558#QTrAfnGok znV}PiEWv88e4t#w-XClDIk2M-+^Gz-so3)&Kqy88@0&hE{!?%|q1jd+0)p zm@su-W3uk83fv>^zsvQ%ufMxs9$}xDjA$jv&y_#gcWCE0z_i@XM}g+c;DMe(s7x5qd9x%IUarKdaA%X2-B#R@1J ze(tiq$g&t-=neYFGFa82#*OH_)H6*Z(w_;68Q9rTX7Nj{47lXD9ygENz6Y2ls4-(a zGcU3-0%oZenVWdr5Y+1eK7M|->+4OdvuSqp(84upPHOI=MaYFfAOlM<^4Jm6?rr4b$4%bh53ZNg@a*Gf3A!&N% zAvVmy<#Qb1C1z_KxtWjk^pNle3bnj?@~ef$aXdd_w`qEJTlvvz6F?&M)x`gVetvHS zxrI(cQDatS#ajE z-k>E&3zW^vUBkvo{S*<7J#6BJo2!ZvKHB9^qR-NNb-^;MNvA-A{!CSX%U($LxtK%Q z$>(HzXjrVq-{L!)CYszw2Goh#{$l)HMsV(BmULS6)p)v(R*ApHl-hzBd+9U^Q`&-t z>bS{w)X5?i1q~2=g~EKBcdJ_gKn4}W0E9RrgrI}57BL*#cri-89M9UnjcZo&DPJn$Q?JEmP5n82-C`8zc(g#`n+QJNuwzkk8DWCQ#xGM^b`sJ zU32j0N3I-GG~-Vr2NyeoT;<;JGhW;n1uIpueL~6UDeM(2;gHv`pzmKHXYvE{5IvTb z(C`3+k!cYPfFDQWSQ6kq|9M0q&wg&7shiRk>dtWS=~Q`rJQRih#X-C?ARAGeh_tQ6 zz$0dH0(aAE)F0HFHkyL11%192785cx!dMj>jfv&o6xpxgfw6)2;N7{k_)T3G0!px zkmPg@J_-4W(vI36`-7R}F#ls82z1M}X#_6{&+_98U5#R-w~4aghLu8!W|z24f(Ln8OBndJq|9S9vd>k%kwqQ>l*gEqp z8!=cd4S0xZT{FA*p||4N$wHSoOw31In56IrKx^vZG#j8l^qQ!h0t|Fc6DZ|XMvI)k zn1V@NQRxs(*Pb9>-69rjbb+~*K6o?YOjP9NpAOgK&IQl>v?ko>D7m{z0^Dmo-|?wg z{d%|z>N2XO%s8UPFo6Lt&(cC$Rv3RFQWhD0@?zfY={^0e;*v9ptzx_ zYpaqj>!J~0lFFxL*Kka_UuWbICBKdj?I+LEMP)oYu?sAD#-i(a#dD~Anru``Q>0kd zWW+|XdcI{SG4{4;y_|e}nKYy%3mzgjkKgEPS6%}&90}W*=zX}0JGi}tVM1@ssK=jl zb`W5j><*wdD4tj#PgudVIv@=2)toE9t&?>WTj08C5%743hSC168^1nx(`UL$?sq}r zu9EhVXpBxsfIUQ`SAB^#QPKM4SWA#l#u1kZL4Ee`F~{bmvmKSIu>AM$`OGp3%;*MS zLY+AQO`9=pCdpW02j@;90ggn5vV0rvnk=;WmWWVg^YicbDukAf>Zjj3Ogw5cKNfOK z2H6zl#K#AN>jX_p*603=J8&M|T8giK^6erawU$cd$^MGP3biz#Ks(F1U3K{o?!%Jb z*xF>(rkF*$J=MW+bgHwU&2IcDPLq_I?0X{d&97 z0%2vO(3R(tO1wzfNp{2&+s{cCUwqZKu-P#|>+bqss)flbYTq~a=Mc;jU-8Sd@+KO-@@z}dG%?q8%acX*ot>~ z{~zd9!yva0gR^k!578CH;9Wb~4NPYD(zpUr}ij(%`{rcK=U3_m^Zg&8K5>H>6Q`uP@**C9KMpyTck8G}$ z=IzFs6j@dEU&t#Fq*`=pGA_nX(IfR?vl+qIc^mmjQsELcQyu1QZZoh7n~6v)AA9nc z)Y7M@6<2y3PagIKkF1|h5NpNr1_t!#v5XOk$p502yj}X_8>BQht7|7iS3GzPuT>M~ zM(dSQyMYL~^;!GnATCbe?g|qJKs6B8Yc#8UFhJh~)aP3&4|z<#eXGV*kS?<;J!NUg z7jGbi8JA5+vZy|b_$*pKS5j`}HBPuP=)8@+5XOV%V=^{oQ;YAJ(CtFVV?buElD@o$ zyU+G`{vqFBVi^k-)dvT1Jm6mBtMySk40WQzJe^J+g>_XxB)8&9HSO*yc^}7k}tWSc7GUN2(;YPPoWlC{%Cbi-` z$lvaucj~=ho0qCAq2@>K7Fh52Str9Uz+ME7v$^9J<3(sibaR$gR`YAA^`SveP?VAJXt`xoN)#)z05LL?zzkiVlH3HI;w4&PHQ8P7ys`Gu?F zQK*?EWMdDOn7KVMnjiISSvl_lVtBnLcLF1|T|_y|2lxo31vyp}KIE>A3I^l#TDlNd z2!oxum8QALY~xaREFFq>oUh7^JJDWz&o%Cj4vEmu%e7U<-P6H_5b}@(Vew1Skj}CD zI{v%d*E6JGann^c&w#&brfd~2FNEAECRtU!7HB%=03?l@BXa+>^2l4>qeB8q`y9C0 zOptX;s6N8E4aAxe@lN1#H?sQWCAXp!XBJ$jFX@`ms*E30cq$8%QT;7W4{g`svQz2_0P+Mc24J8VpD^II)_=_T1Y<|1>j z=8rRdgta`E5M5l~c$l=dTRS4MfFq&SfL?o!tcA$)7bFXg`^B;9yL3h0-Q9wdH}6OR zs9w;y#qisWP|bH6-Ct5069z|K+XKBMr%gzVZTbA%HTur``GWQ>6P#{H%c%9vO#S|P8DOsX}c+R z;YkgUU$hBBtm>X9MASQ&Vsi?9NLAu6G2FYVW=hH;s5GH3HExDxEM&y zd7f^8RruO55tu-zVNbRj;->1T2YDU_cY(*hjr4t?|VxBA$;d6n!y?D!;U1M zS#1a{&M&02OPGA%DTsU8gHoq^f6Y>?o{}qt(euVXEl($^M0?&DxxX; z=!`osuy+LQ{xiU*_XxvWavsn4N8Qx=pp4ASu*!4K67$xNMBl63#~!~i`$3b6n^^Qt zI2@;!zi}!F=H#u|H-V4vm%a4S?4j1nvpp4#gZ5ZIS-{vj;(wRpjW0eJj#iZP+2d!) z%_>akr^7}etH|aniI_EV19iHTOvDzPi^A_62P&Sfw3x*ISp4R!RyO#8PQlrd1E+~| zcHBKeEh)gdw8}s8e62kQBtinGK5^-`m=`_vY=x9D{gux1qwAjBabxQDYfGEFNF|hu#fGE<~fG_u@mPw;IotWHbjdYL4 zCCI=LepTu3U(xRX^zd%#i~+YFVx}L%WxyIxD;0Yf(x1tG8zoZ5@XbL^S06F{4a_%! z#TC{MsXVz^VRy+HVRPoPWEDAmL}(L0n4YhlfA*s?0*2fIQuS9!V+7mIXaQ(xzH7K? zQAJ^rkfSODX9m)^CWeWLs+R%6YGy*lZ7Fo;d554zKCMW&s^B9M)#He{;=_pY~qw9Zr zwJGj?aSe8mgItLz2X10!v7~Z_xnSW8!2UQ}ty@>eQ2_nLJ@>v!&27~*E|187ao6or zjo(JBF6P0Nyp6CMC6R-0QQb?Ido=f4e$qBtp z08__+p@Rl;(buTw`zHd<$_32SSODG+ga}NSQi?Ej9AE}N|6+=mr#glnw%>+4A%SfK zt{P1fddcK=zt*;IjI?H!)?3T8StZ~4b`R^j5XETl-^g2&)tHCKlKe<1vRu0h=N)!W z6Xprg0YB$DNEz-j!h~hLk6YK)!#?@9`%^|U_h|mb@MLTiRY0G-lKmOtEjN6}c)O2L zOyU)+3i*AON#w^yGBEMc^lCIXXIiy?f<{UG(Hg_%{gg(UF8ZlraQQdceQZ;aRn&|0 zF=GQXJ}h7KQ#!zTpOP~O#FBO#I!KEiYH2T{&*j$U`jB&9ljPnx;t(!jMjLb3XOI`7lkcM?xHp|$m?I=vMZFpI0IjI#-#rwvD&WS9buG^3eV3{LADe%!A}oOXy;zf z6wgMZR)21Wa8T#@jwfuYns2zcMSNSz{sv$2V_slN>@t+d$o|VBzupUP`a2LY7wB@0Mfo^2-zl_mg;a?*5X?{pX}oCf zTrUQEq_AY183?IkSru^i>6%K6Q6h0y|IhPEUXV8J)VgIXSVrLSX@^X5>K7B@f zoy`u8I;rbuEs;PskRn8m>PMjPJB=9jR!ZpE6fkft#38lq^$rcG4V$oP$>QK zWq!?)8l`v8F-Lp)dI8ToV(uY+H{K`UV#lw>=I2$4y;s_m%)w|wGmYa`L8W?^g*TNY`;n*mxmz|6-Vy#OOp7FIx@CWm%Db;X zLA%}p1zk~g^MQ#%alfbz-c^;hVFdPZk>2fMyMP-px3{mF6oc%UIgc#2zbP=wUT0OU zU(QR;<6ownpI@ShTJsntSZkXwJe`D4wT-{E4b&l}^dFJh3y+^w;n*e78t z9D;U=KPW@phqT5ZQB$L~20jyG2x* zM+#8Qi#W6BOy-};h+-q182KyU;%*kN=-fppyZ%?SZXU^%yJ~NIMCm*FQ+1J&6!Htn zVE;&y8FY$zh%#>OkxPYR6O9aoeWdZv|8fCw>(o3ApGl?#u_TBoOJW;&Ts?i1U4+p*8E{IX$3EK?Y)T@g;nC2lE;UdiAi%aT>lbRHLa6PUVZk z6Ked)mGLf)DTDm?1l8NtBsqi({JNj^iJtQzpp^$(H5`eftPagyaNVr>Mzz5Q{F%L& zXKZjwm~N4UDPJO|L?gN6^f0!YOp1x=b<+}?QS@f~4qAdZJ{`VO$0zPi_Z>!nO_L$~ zG)UF^JJ}GvA%`MW*ni&s+js-xQ16u9%QNi##|eBkuUqQa>q*VzH;-7i5i^lFL=d+y zWTYY{cc(qaT-=}jZ^gsp)2wUAFp3e3(pwPuyE<`b!6&zu7~z)UY?$x82{KQ%y*7T) z@)~0HM#+Bi0k&fV4~)U{5Tlqt?#W2E3(iHl7@*_bjmaq>D0ea^rDV@RscAq$>C>## zX<`abQph$&q$uJTtgPoE-&Ov+u%xp5u5Y76>b#i*$JR3KoP2ZR z3RH%lB8EsB{d+9aUM&N#E<41W>INnN?QCu>9ZU!bvfm>oKC<%FRU zk6RRk!PRHb0fKrA=e#Ik4-+CYIc<*wm+HUFp_cenIDEj=cp;BPK6F&ZZaj!h3Mt>2 z*ttXe!w2^~`J7Ra1VsI~3r{^k@{HFD&2#ow?Qef?E4V7?-(@jmL&$<$0*9QOvTlag zdgVbJ;T40uIS~^TY0Ub9a#Uc!~R&K4( zZG`2$zmFI-DASY*9%=r0z+=OK^URZ^ayRS;5n!a@=EZmceaXEKCVGEoIx|k!CaE%g zr2hBTAPn?$VlyTLUu=`In#`oVW|HPbncoe34a)w}9p{ZjHvvP>&cT&yCL$qM^I14a zh$(GJ!{Qij0k;+Na?yEzl&^XbtJgP}G-)*E%Gq}R!Dd<+GQ9-gh zG;2>QD0b$QVSBx#C~GDng~liC3W9uji5i^grsbI4^&!3)p`|zg21aN7nV*1*BY3YY zlNHsc6)WeZJlRA-E=a?4yAM?6_+h!H)86hJvg*nPxh>x2aiLU-!gx|iCd;jwfE7dW zMZ;ENZ5Da*7y_{ngUGr{q#`p+t8pZ?>BV)#&1(6?TS8-lL-Z?ilf+M_TRy`=gS=sp zRy-LJacsDQO$`b(=WlP2!UCiv%~yyAEu!5^Zu8}k>RvunuH)y+_z<*Ogi>6v$ysjN z&UAIscI#Mp?A1}6PgF_si*RqpD$OhBYOrO!8As8Oh~D&r+3*^YiP^iK+u@n2K+JQ? zPBzeqm-j*zBSg#{!n59mes0I~()Ue9RVUTYNSszSd;CnNtYL8yS@_Pg|UO9?ZNF;=67bY?W-IqX@D) z>rLG+U_??rmx{0H_@ckl821Q#Edn!UZlfc}H9oAIRURXyz+_ngQtI5MXY0fJ2=_+r z1}L9{8X9jC;?p4%>JwCYhaK6fy?2SR%fh=Gm{BUzDTS8eE6cA#ueFS_yDLO7`F$O4 z{)lxKI>M(_d?JrF7k8YY@(kZDxqtz_lGW?mPCxwuMJL#Uz2UE#z;hDvJ}nf78_Z#e z4K>EdLr6*(i*Menf};Rkgje+ib6|fZHTt4M4LI1|#`%Hhb8O&~$SO6~c{wE07Zt?z z>1P0e7BMdQt%|>*zta+uTpE+~AoI%eg!aLk3w;chWO~s-IC%mP{^L=}WlxQe^PPqT z8}tBccyw^Tx!$sSMo6)T-&IF-&X>JaXvkn0u}mx3dtKvkqimP+w6@?NM$h;7aO%~` zDK5;mRQcTII^M;#Za->YeY)2$g}PhL&O(iS9ip}Z-p__!TdO+}MvR9S8t2r1&mAWc z-B|IaKE^L_fqjc(y39Xi&xuW^|)y!?B0bZz`eE9;mOW7UuAm^@w1QIkwY|F9jikkAD%A%uOEV$ zf;xD0!xE7dw^)<};(jDC!L^MSb*eijBpsBpa4{_TdPX3lr8)shlvbat!vqzI-k)+&1GGb)jfquM}U075zwsQ@=Nq*2R>#{K8TM zYfe@;tbf;mW&ON0>5LPsX_gzx6|@o=Tw_=M>KZw`bMo?Bv_w?C+m*M!)iCGYnd}>h z<1w8oJsIapV($!gqv#p8Y{VkprNkH_dx@~~wG#Ic9t^Bxe~DEMGr(*u74l-+ zH;}RiC_0QNrhZaKzE6k)jALsUID=+6@VA3t$W)r z36-h5S2d#6Q20wxHQKlCg&}ts#V0kO^T}B)9|(S+{cXwzhc}U*2}?=tb21C**~Y>i zhH0?Ory9Z_ZscSk8hNL|&|D(6iBz@RHpF$9JG4$qBuLZRu9h^8=;*Lnr3g)oEqtvQ z4wUi(lgI9nyz{ipDq-xb`Pyr*(MaTsvzbGthkLF9t=DTTe);qK_|n@Y)t5~3KH*jd zahI{u_=3=iJLutvTi9!w@7pHb6z8^B#rsSi!!Hrv+`KQ>b~taDYI#>*4qn+WFr+)7 z85r|;kBKT=cd!%{9*cKYvOJdnY3tr`WA~a<*o6TJf-4t~^=JnW=J)z0wp)Q|j6$Zt zq;v}VD+4C8444c17S|`H?#YxGATjyywDIKVACrij&L|>O9P8sAY#XID;CDk9c#5PQ z1%V}MpV}Ytjz-PpiYg?M!42$*z9JqLLn<8T4o$<%Ud8IjoABG$YCV^pg1>l=WzKtW zpGnnBjv$H`CqAciz%3gtMH^kXb1Niek~c&8-Kol6TUNw`F@aXt~@1@$m$XU>J|BawB8TsSf2D7IQZLp1<47|G3< zRaG(BQ6MU`PZk!maV@`0U!q$8NibH41?-8|4Ct}e{Rc`!$)@Gilv!tgi832_oB6QM zJYp06=G>d-qRp~6SC$hu?7L_&khk!SZqg8_PU(2&q*BbIk`>M|X!9ia#`i=?Ek=tX z%7W=V#bXf3T^Qy66rz1mY^kY>Do+tn7IRDKI1UfkA`ry@|8$I#CAaM+UB%2&xg1@JoNX zG%6ylKP%i;UP6%_Vq0nVnc4qqZ)qF($NT&5Pd`vX{-K`!+lhk*|Nk;+C8;b~!p*rd zYaX4z3@zT!2ylUEH|s0IDk~02;+qptplu;j?Y22PYMqn=B`C~qcdUq>e=a!)n2R0} z!lSdKZyA+m1>0jfe^Wp>T%8P0xOELnm;;D(`m_Ax6F;m9%jZ9%G`JZuWC~o{i6z*T zMQbFbBzw!Quiw@6pOjUMg)5X51}?uT6XsLd$h+hPz~j!2{79axoKRIU(4kYFjYHS% z??xfECjIT0K}^Ta8QQzpWu~7 zm|%U9r2VrjTAjSh>YT-uL0>&D%DchF8dUyW!Q;^<})I?pVE}IYZhr7om$t+i(=>Dl0 z-4y-oRQ2bJMV+{}6>NoSm%GnD2R_lRE5sA%MvJ^II>yI+8R| zTV;=Mzz#^F>h2{s^tx#OtT`!~J?i!N?myd+2-n4bXlmB-Z(P7|CN5f^4lsS7M;USc zmsz%7YjbAyYuKn>%^EE>N*^wF?m3-NMk4Y8y-jqbw1;j)Q`43xxc1K-qE@Qqkp*+c zPJ~$e?>G7PwQoPe%K#g84kz)44TrQ0zI#c=e+h-_0eEW&6R+ip^I32M*pJ&3t!&D6 z4#$)vjrRhXd1|0i34Y^5pTDx10M;%O`6!Z*S zPXaeh6){Wln`!L62AZ4LDl_`1(shXcHZLnw#;r)Y*uzE6E1r_Rrppa zQ&ZPxWfJl|pYiPN5dNUHO7tDyZI=_X3b7H2%2VCq6_(}S`ux4W{X^12gbX%|y|<_E zNCcenqqNnT;s0_0;nX=;*MV2Zm?ej3Odg*zirZ8*5;5}=B}y@*a*BxqQpN<<_Ykp zH77+W3;K-t*88VYx|EFMJ%^9;#^~D};xZFSrqy@@o+}b14`WWcsc`AbeQ*1tc%WJJ`MZwhqa8)%;Wd2k(J4ps zGg|$TdlY==Rx$C62NIRfHP+|ab5lUnERM3I2AX=-U=cNLZ_rFoSJao10`JB^*4@x@ z;^O2KJG5k$FQuGu$+kDU*qjQCbYO%u(~IiI3wOkJ`of?II&55Tn^t(&^C=H8H+-37q3n+Tkyxunpo*3fFsP78M53O$%^BbUnnLyanORG?(uqA$)afP6F;Z+{J2J^o^IL*jn zsQO`+61T#DlE|~2$hQgMDg$pNq`6U~Me-uO3@IEewWdoM`(3#;{U7WV=)$gKUj7yj z2i~5H1R-SDKXTTXcOZF%LZ2H$LBd7Vx+D8I9h=p>b1a%|udaD$Sp2_0djt5v0~Pon zl9}!rm8PElWrv5mN>~k)FlYsirucgB&6j-QeeHy+laaw&s_I8bv*5{V@A6UcTRpQ& zfaz9h>8jC21&fk{Pe{5B0x)F5YPZ0wPRsk*x+d5I^R~L3jeH&D|5nVH9fEauAuEvH z_0F}E7(@O#*&JwQLW@851ifQVydJQ(Ap>o0JbCR*<|75}$(739Bi zvx9T%nNegp-`-4i_Hdsj!GPGoVo!UL=$@A2^!${%YV&*-MX=e?e(*q^Gn4qY8lgl8 zsIWQfq-Aj=x` z0umHFpN)<44Rfwz8`S%h;++}MkuniI7yIH^-=0qPEiKgsI{6lR3JD)2_V8W>QM|}Y z10N`mx4$uPa@Yj=8#lrRJhV^rEGXq*BB8*&-E)Vt`6@{09)iyql6@8*Noiexzza45I2-C_5 znSy6q)iLgj2C}RjlhCMke{(Qv3Y(E+d1K}kb&u3~s}b4r&-IiBEy&E0M71d)SGj-93L9;tZAyxhWOHFTRp(S4(u{)Xx6By#@3pRXhI~(z> zqe0`THbmYxvq^l<;P3BS5F4p)qCy_Cx2YPh{rt=_kWV;}Uy=_O1IP3CrffHob6y47 z4dF<>OkkUd`YXg&TR`l>o2nKsBH%O5mw}nh2(QIUK|@LT+6Q=b9KlaUrHZ|uQHyEf z{lkP#QeGp5#dyfAPdrVu{a1R7D4ZGdtlq!gGJClo0Bg!02IQJkU^eS@^&gj!n%HCg zx7nqwh(C-#OSV6yBK4sDIi%~RlaH`@(K+-jLO@Z2)13mB{OT*3q)MF%%w`6+0JFzN z%pZ>lDcX8`jI?GLAnb?o;{15N8B^Dd4?b$!&I}Wy)(7q4fiw#hl^9+2{GWDaej+g6 z#<_?%4QyGEeb^G6d6MBH{mJySLLiU!y>Hgm4~&LvDRCG2c;fR`Yvn_D@mFWFb0sfI z|LuX#9-iC1)7SZYZ|lVCDX(FgEm1KGE(KJYK0ohORD9IkGz&en{$a7OD|$%uKJ@g2 z5uzc}w-)`a-zMd;xDNTe8YWdARQ(2atd3YZ^(k(faJG+trh{?pn%B{g)Y z;zj0|hGJ#8^J|-X?FqQ(-tGGX(2|kV`_p23(`J?Ql*2aO0bXeUV0nzi-^zB|&8gC+ z)Ex9eMB3s|1o?jQRgw1JCk(hHl=&Y`%~4hTYQ1k^*dd{xzVRG? zHdN?<1o4&CPspzK(Hn|LmkYdCH=%9UZJWbah9=Yc2i5Vn7w|C1l;~8o~+^sX-1iKYsjQZFHxYIEnTrfGJ+*_?02O$fcT1A*Q4LuB~HVVT0 zO@e7)k)LXonJFQt0DjKBs>@+!)*&ocM3mZ66T$aN)R+L?HZgFFWSzJsv<&Zvm`b{$ z&bf25_DpW?tpP|F^qK65a;u@WLl`BD2_Bfbd#;{`&s@COy<~lMT9KNfu3#9vtG>R$ zPJNCU*823)uA zI_v$lNze3sT(jr+b3)2+mrCr}+ppBX{$OH@{ttk*UDfU=2D?fpwkQW5Qg|WSxtTuP zbNKbW%byJK72NEU9}3^cnwcHM$`$LtHYxq-TGTNdC%s3#sJ76HNKZ@v{AVvb^L^cd zsQetX5Q<0EN{_@X{j6+E|HV~!U~r=vWXg=L5uTiGS=-UPR`+QyNH^->Aq=1H#uRT_&zXzcw1+86zv&>j%*d3;*AkOzd znHHXtXqKxls#8>5Q7xjdWyaZ4t1iikYT5=-4zJ~vuns`YB2kOnQdCRIrk3M_(#mj4 zU3glKH`n^peTr|qwR{a{$NEJdcqK|}hvmx0Bvuc~yuad*h2{mS^4*wyAEGCQiq6w3 z$+=LFhp2uT4KO)OT(si$i1UAqtfdPYF3 zxmDU4VuJ5GTm^~LZil)urC5Fp14MuWBE-FUr=Y!6fyUqxbi+FgYlO}vc`RmGCAfePEG-+zpCwkM@tWT>ifi7!`| zh;$kH&u!j=L{FF&l7hP9Txcj?d%s3CoMt)xy?05|@5R*mdDL-q)%Rm;bxPVnYaUJ4Hg!1yvYrk?{C+ z+cg7Ca<6vvOOur05~0Bl`C>OKp_Vzpq}yRTapS$0D#8GC{FMA^_9x_;xkRNzQ4?Ez zW5YZ^Ao7Dz^6U_bIK$7UT~W6lFQ@J2>$K|x=+!v?Lv0kN>u1Bvh3J8a8YNPoE`@4h z;{AMTmya~ui)qK$5XoD}O))7MaaL3vg5z0-9kaAxm=fB97*gkNc8MXp?Ats}ZIcF24 zw_ie<87oF!j}(S9>quI2@k@^T!0YC@g2?#PJpJ!`D7QlWD8d=NXEuRO((9jn@1HXg z60ts3c0oB6%K19w94o)M#WjoV0F~#tmi2M?F~1 zpJ2UiX))ZNFa$U5n{)j)HvEihe!i_HUM+ZZ4t{^Ao(!Cux8NPAGV%%Qsm`h3Bv7lC zU~p9+XzE4VL&)1V_;y-{Ww7zH^o~0EJ~t1BzIvlfQIXM18~1)IcL6au9jB+%@K$`- z@%0GB@*ckPTv6XjK~7{Ts7Yu7G{`h1RdvQi#g`ssFuw)Pg(= zd^){~&k@?w7Af)6*HEZc*Ba)8={6WM+9zRPCAKy2$wnC{mFWx9Siir zk-m)xyLD`Jr3v3(RgD{anZ_ z?ochSX3k-B{NF6QTtEVvxV04&mH*aiSa2yQ4VprHLgl}s!-P-*Wj22(ZP5CocNcdq zm$1|c>g&_7GVA@H3)X*17P2-_OH}T9TYe3ai5j`?^DxQG0Kfk@|3e31AcB#SOuVD_ zU>{QUIVp^=7Am!hYg#K=SatQyEO$-F<0NrP>T7C*gl&|-5ZFIQpDu1o9Ipw%|F8fh z6U*XiCKmfT>*8|iu#w#kvLuo1<5>~%_OZFCt^p-|eKJnYB;4sqlmE8w_30)DA3s0W zmbT86f_kol!||fZ$ksojDQ^)g4*mBckV2**-U#Xcy{Dl_!sq{99Q;WbxcaXzKlpcY z!?gULoyud;x z6B}D?b^Y!KD?7V{r>U9?gWxNk338{%|?7B-@j>rlbLATl2txO@CR=j9veQCElX zeKupd-IBAuPE?;i2bhehhx(LdyO~YA7Qi6jbKzaBdE7BK)$4`oLZ>QmyB@+sN%9#p zxL;%=d<_L;%8 z_&@D!MznwN8t-feSXx?+)7QI)Aw^FFi;ItaaGJw@{P$;~VQla2=Au5~M-&*Iovrx5 zoGMwxb)tWrg?{IL{9ep+@?c^Z%7D_TROVCSnX++WdAZUBGM8_%@q9XRf2E~oSiYKl zfH~c$6UqE+-C9! zpO=M|*bVJKHVg*bmj-=vOG}#HqhhoHK9|%juBp<6H3$yWQEHJ-S3~17GkD3(0_mFH z$S9(68~j=jsM*P!MhOhIHYUFAvb41Rh%%E0QfP8ZWk$*qV%zp~7l~tE0*$r*;l0e~w@3|B@IhSXhA7k9 z@&R83F^(t}@5x+#ae8yQn%Y_<7zCw$$>S5XM>n_zF+?`4YKmod$OfO|O#>2?yoE1_ zG$Xiu6%|;+s^ei@Lxy&zw_gUr<*ix1oj8O%*A7D79j3ipq79(|8!p8Gtr7G33=nKW zO{|oZ`f=U4Vt4=;)JIxbVE`t$*<)ml7cr>i%U!sF-K7 z8LEG)*47Ml2I*DN6aZ74KiuC=kYCQG!=Kr}E62DoxmZ>UAPr!L?8nX=;2t8LvurLn zL#uKBMI!E{f+B7?fIgyPc)s^5uogDLmtbxmD^F@@AUB-8_1R*VIyk@gseU<~P|;)S z+beVdBH=O7^yvEZaQ8YX&Gmg;zzd3@1yI27-aqZweCTlVUE8c=`1MvhKqMpzM^i_~ z#M-*UVle4+3_)70ZlA%Q<2y$9*x2nC4;QlKnLXLPeIqXJHX?ynR!7Fant@vSpMVpq zJq8Dj<6O(B9F2{v2XwEuI}dS7>)m!E^~>2-S|On0~BSGgXyR0*ueX=wPDjjHkm48_kFRI(h7u5ecA^7?4xv23k* zP*Q-guXW+q!$C^0N7KhZgVZruEDHs7_uA;n(9{neTCa;rt55{k7#tQyQL~?6iHYNl z6&s{w6Mo&`aOS^|mV(2{!Djt-g%1PSN=B!VaCu2&eNKc^>E?#){C=CKuw1OUFGQ*@ z5*)?ANXyR7xzgY@8sO0a4pvva5ATa|x&n5`W2L1dA_5oPkGhT9M|T&UB^^@r@jVmv z_RfUN&ovhvpg_$m_x(L`==*^I(XWn2pcW~TMbGF&S%HsbsuLPonkA#jj@PT!Cb^ZL ziooS15H&u&g@r||0Kpf15yx9<$OiMXh>OlUyq=!&X10#Z&%(WJv_^2{4sDG#;*k+$ zE4c-<0Khm6&4|zA{!MGE2H}i@i__EnNmRD?J=pumix_R@u541k`yv35N+#p|bQYP9 zcUA6}72u4O@vr;aGvEgfafJtbN1#GUd0E-VgM|$tpEH_FPn*rh;L?y9L$WdOfI+jv zWGL2;6(}tGt~L{?p~7 zogF(4m$Pt@3`ggEz z(5JFlC8f7{C>txAh-(NQRO0h{;@6Oi$Mg~@h=_>j>vx}@rH_x(OGLVlfk4g!8Dfv< zGsTsayXT9A^pPW+zI{vtB;dyDgf|ao15dNaKQApUgelx8DSQ`pVbbO%=2@w6BT>;r z?a%l4O!@Ws&3`s?l4CX&vwaj)G;%c^-DPrmP($ua`xPg@QBf{|xb%WnI&G->`0Yjz z5?G9%GvI-;6jT&25k$-;1Ow4^5hoSti|4DYm4^O%)%Eq;5roWBA1(07X(=fhY8svo z^S~$Mo50M1^UqN$e1AP#9}cYy%;U3@L#}8uq(Y(zerJDN?l+7U7y0>-wqgQAUMH*s z$eO^8kbgR9Xla8G7YoJAAH71pBn2+vj9F$}ueLkTlJY~r&de$hWMnMM+aC2KMgVb{ zAJJrF0jPv@pnOtpjvPH2adcn$={Sk(RzcK}}KdW;9&P(PWk$Qrz+gV;q`>({}1IK0dc6SGYm@JKocGxc%dE zE~^28P={7bPerf z1!#yU<7pCFW&e>crN^}BMIggaIcqZ3Zy69Sl;32nW$f5P%$^bvSUaEMp}(g8F8wpS zsm`UozM9+T90Mq~HHqthrKGBomX^9Bo)D1~4y*3yXDXaG-^2S9_63TbrN+6@@tT#X zCY0-4ePRv$Y(!#m{WJx1^Kvrt#5zWt#IYI{zfE?EBBGt;@uXWMOBA$8Qql{3pI=lU zY=*_)X1~Vsp-dGlEfJOZxK~81j~fgX=yKxMV0(Bu&Be7`6iq1X&jp`kP}-vp)6>GW zyjqTpgArZ{s^9W*Ol*qT*gdM_DEE-4XUS}X+&kdw>hfj9CYt{31A9ZRQo_iut*b5{ zO(q_b-fVb+JRR56=7`wh{`B{EofH_rQn`&Y956O6G`tr@l2R@I`73hN!!}zN_c0We z@1-l#7y0;t*!B1kHHw>!Chu|Du>hO z)iAINYIpME!--8Mzt_9Z$J=7~UQBOhbyLHW-OW9*&ngxXQLX-4TL3ijQj0})LBZ3t zaRfGB2MYs#_u`_*{D^V3&(#`G*Yl>YR&0{DeS5B??jFhcl42sG{gaR3Nd8sNy)zPm zzhb@J+lv~~3nBrFIk=GXXgn%W%HX#!`HoWCNcLkQlYi@Y-}~lSSrVB6BI$s~#d_b! z*b(lK#c1jKSXgdvlr9-dNR6gi?8Wghzu|eV)5Twgg&JwSMHEf^Hd%g8Z150fdpc}f z0z4Ca>kj?3HiSHaA4Wg0m#ImnmY0oZgPkO~?5?HD-xjNMxG!(cuh5IUKJF+P#*?$X z%QZE-rcm=P)<(JPZb|Yqp0u>IA|fJ!$cw)yLL)ga=yDSidtm?W1s!|@Pxvn``b;q; zPV1g;9icBodF2C|4ngceaLlZA&5m2Ey?z`HO#3#mTXP4dp7rgBwK%VJSiVOYC#Snm`JL*wz_{-q_1q@b(k4a{GNl-KJ|dC~ zsrfFp-QfGuB3)Zs$L+G#>aARje81LzY z(+xyUDEvv;O7DAysy+$qh{jYv6H1^|5fkwbqJWU7$JgI6OzU7z4&mNb=F)Zt{cqVw z-i%fs9+hO|Abe5!%UCbnpQNIazThLbA=l}7$9i|?wBh|!lJ|S`R{dsECNx~e zkWdNPJmuvJRE%#x;5=d@RwKe=Vjn}-Iicnj>C(~?gQurh`Z;7TK6?*!O-F~0;klKm zWqoyZXhfLIuT==muU0>$BkAcGvbY^4rUPCSWufiGhS#|M}R;}L##~<8HFcoWAmKR zX%!4IZTjy5WIXQAUa=Vj$ehtW!}H@`JS4rIkpyv&nCnsehIpC=04bl-KjnSDz6bQ( z9&y5yvRd}xh&Q~pwRqV7PH1Hr{uyRCC_4bb=?tuMV5w=Sk`HNy`Xft23*l=)N{CywU)q8KA#gxC%BN?z#2zG3>S1$ z3}vvUpu|cp138%bJ=|Z|*ye!7`GyhjtY1%LzFD-Q_xuWXRuLDcabH;LJ$Y@JeS@yK z5GQYP0Lm~4N@4~44-4QHLbR|j-yhSBPr<<^cEFB64^H||9FkDs9sx*6ZGASyXcQKM zSGJ)0;r=@3?^Y)b0C<2En{FpE-a@4BE!=H%T1=w@15j5BrGreZP|gE6eK{h7H6_(1 zRD}Q8(=4lxdc#|R8NYuAaciotgzlg2Z=vF^C`BC(Y5J8WyRWVC8XD#?_bm+-55-QM z!#Kj89&hhM?D*2Jt*uQhh1z)9+CtN{HUw2|dAPjwRolclqelNhk|tbAI}#c9vPLY!ExYY7rpfMZ_HIp2SRy4<;8k%aZNcl zPL<#4&EE_@J0{_+_CKKsI)bO_W~KFgt*v9p$k2K$Ww2~6#xk4Q&yq|t_rZYvb?0=q zkF~!_R)D{yH%*V2GZqxy*MgqGf{~1YiLvW|MoYuMV($Gc+00~jMVR6w<{>2VNYUSK zQW_MTD64Mf?oM+P5iYi33r<9$3ee93nX+qZYfs0dt^f8Km6sY#K4es{!jnDKt9I-4 z7EcJM*XTh>O8uN(z}5i1oYFm_!E9Qxa&o3yIoXjeDtHYfyUQ7>^wI5}tx&V_A--(1 zxk{jyS_1}Jeiivn6juZ#>gXEh5U~p{8{Ehno(ElNYbztl2FUZZN1i*_*;SR4Hr7`M zW}vDoE5~IeogQzcre%C1GphM2jFAxnf3w?${)dE+zo?d1V0LIs+(d6xPO|_kshDSX zzo*=&*8}Cy9ZC!2iW|gM4H|47dsd2c}tZH z5ce?%Q~Otqi!h5RAJ~ip54vnRmWHZB==&vm0n)|1;Iw8$(9Y2C910S$wa(%mAnvO) zGlRv3ScEHEuH|v^tc)OaA6e_LNZG=!S`PLUg*TZJ66A#{Y=<+eQMI;0X z<`nI6VdZp(Q%PBlG^8y8oD1hVtV=v1h75h9{kmUi$G zMZAfADR%VH+ zRb5d;X)+VPiJJSZNNy|CP;r5C(lCnb*gP_I~nq+Gp5c8yyJwY0YoqWe(J5mxuV>k7P6&&hp@LJ*r)OJO^o@mZK} z&27Nq=O&Eita5|}FQS6+Ez0nL8S1o{ya2_rs)x;<3MvTk%QxaP?37L;654wLt(5|eU#u85jC}oGNdfHHsKm$m+!(;7LG@V6|Kof8g$vcO zxy2S6Eds(;@mgE*&JMW6juAR~EJJ(M(((-T{_19MANn({8FkK9`A&2+EbK{ARu8W%f zDn4dVv6``Q(C^>0*u+i;lmtQq6}CLdOZC;YwL*BW4vx;4UV}(FkP{vHf({G~P+O%` zSWI`2LBYnr{M58`S`4UUhK%kOxYgO#XKr!$XN+;wh0K>MV%TV{n%u)AHyLLRXO-qP zT^nM7@3i-ys)a0!Om}x?VS7R>P%#LCrROw#xlzvO2rM3mwonW58q6)9=o^+8JB!Zmveg`#*Si#fIFVTAN~w|&iTQVJ z7zJp{9o#j3$w_{H*w#>M3XQDCu&O{;rh%7|lJj7l1g|H9egw z@8wh_T0oRbj+d_7-3^$Bu~G1##`hyB*{>hJ&+%sww;O zeYqd@!xDzz`j?7|YNdaCO@n=%2O0{$Z2bx|YA(w9Yp-5RR6CCuh)&u!1%iNJ+2#@D z4E_!1AzpOoSRPQVTf>LPa3A|khOSDB8(I;Xl{I=c^`0c5;&3%W`?YIRPW+CjuB`}I zdHlDPPCfNn^Q`-jg&J9+KFp>~45=fDa~{a)F^inF3D&z4d0glQUI9(Ifbc zg_$bDp2i zQ&xPY(2U%`7<4T|i-{KaBsMlZos5%w!4c0il4i+|IxaP*x_3AK3Lre>oL*^{3rWySR`d?7~k= zKo}~jfd~#!iR?xgQ94@oA2w&xWs^M=v>h+UiqqmpQ));Aa^+ezx35986r~}!95%~D zM0mGvP3bb(T-nKs^|a2Hmv*|k+0=>ylc{|4JUkCJRke(vKKK1D7Fik{cY}-%=RAKV z&gM!S48@VN*&WR7?5>d0n?BAis`x%u7290ieZS0Bb-eSl(t6BH%wipi#b7x+1lgWp*sC5*M=6o-4mo5;0k--Ivz6+qA395QH$_Kv`-r&wrGNkO z@+tShcw^KY)+xZFGGz96GS$ize3i=TJI6tYF_^z$O2pjjkzA`U(F4!(h(4UAD%X@% zf^G{M)MaMD3 z{r8CoFMUqyqjxnJ#&R< zb&c9FO9ZqSBFhRO1=A)Xc^1^(8J=}$#&dKV>naPh!I?0Il6?>14nkE5ewlFT<8 zB|IQW?inVBsLQOQQ9-cBy!7DNGe-AdUtfN$!p%4?L7`?!dU8VJUl8peX|Yl;Im}v% zy1F{JR=BbVg`?fI&*c0SE11ov(P31b!{RbsJIUcmB27u@#}VG;+-%K0#kYD(Fnzj@ zj_|bapiiK*&2~Cse4k(J5wpJZ`eJs|bc~0KgJ-%+4Z3S>_^OJp9CH3D=_M|gzLU&| zqGZ{%sjteADG{03-n(5uyWw%d-oU#;%UvT+&9Yrjvh~nLB*u9ZhU8@K&=>Z56kqAdZ-XIJ%zbYsQJP!ejaR$XVt5K=$jp5L^QFg- zvsI?~->qnHz~d`E(|*2LIWE#&YTV;#VBhd7QA6;e67g-%c@06X(rzL7+xJVF@}l~R zB!ON4N~Y%;(_*pxL3jRCqbLW#9giLlKF}0>u3{kxn5;jFcWjO}`Q~edXKX0qabsp< z!ygX%urqr&f()@1f~hi3-*Mca;Ep+D(8#7%lQ6cOVKY0XJFS58f@P;+&7TjgsG4=b znvy^Qh`~^PT|@jR@Prk=_ys2iM~^>U9*8&%)HD!dy!L`^RIzLT z@sl$!EO>_f_9Cl`a*`@JIPOUX-$pO<_(v&i12ogTP!8>1YrTL;)CyE}1%=b|z4<(s zPIu)s=Xy}5JlqY&nfn@u%w0Jfb#8xZ6CM&19PmR*RCP4Wt3-QItSSZj(Rj$A{)cD z@7sHDU;3|lxAE6${G3)@QASigmX&4m3IIOw8|GGS91Dx=wP^dQX}15v0#wXzC>#%F z*Vm0ef=>rG6e&pAGOx8xpUyVmKa}-+T4nURK9Icm-7SYu`#z}T|42ke0a_lI-)&!~=Z})-b2lp3O!c2Xasgk#ja)Ka|h$q8^6wR2=FTHl=bzdY&KE$<7&Xfe(v*@%iGoUy`7yC5EK@Wm#16wX+I7% zaez@08nUOp0E%!_(dYIePPdJ+lXz^L{`r=8_aCa={`McrzuZevaS&?s0{V{b)`FZs zsI%aZd#Vo45e~-D;YN?h4@vq6Ev(*U!*A>&Ubn&ecwSWLG-e(9`QSdHT;f@F^mrRY zK**9xmkYE}Qyi=6B{rpgDzHQ*?M%Qer0QI@eD%m1&QyCFlZtgsFPUBz8aJ%%{?vshxa#K zZ13=fAgrFr$Xw%gvD!H8U4&!zG<(H!6eNjE!BbOTK_KEjmcO1OUgNvgT*x=Wb z4}zXfz;yt#Ya=7SQgxA_C4eI2c^tp5?ivjP_8tPTW1u-eO3{CgAtC+GEfG=dxGck&uW~B(ruvI% zo0qA*#>e}&nT-Ifu^1Sj#G`JoBC+E%7$c_@2mAOgrO!!r#pwHxi&Op{-L(?8$H7mp z?HpXkgQum{*K}=4`2$m;c6=a(qtkhqG|BN3FhD6{Dt0Jzfn=HX$cS=ftDbCD~-Rw9Q3}w5D-? zK8Ti104lt5!$+`9B5XBAV=WTGN>Z78DuL`uai}LSL={l|6(_1_=mxln*EsCGF8of> zj97OG>smf`h^U$E)87%5=hj|KldDJNv~K=b(1e=tO|gYzAt;X%)I;=7rPQ+r7a_r# zmQ#)!*szb5y!eZV%r_wFShaTV6>hkH>qubIFrtty#G5#-A*t0f!zi+H4?*K@X3q+y6x$o)?7h`Uf&7f|J26yH6u8rgRAJ;N-@07_j7LYeJR_I_zC4^s%l=f* zy*tA|!CTiRRTS(8FQLekbJX@z!c2lw!dx;NVy=+=~XE)8_?D;Pi(w@9f&Q z{H`lgC^1SHA?|#sEiF}GL(Al|I44uq#arued)t1R9hzF6w;CvaGA<~PR40G@=@5y& z>Yo$Q#xkRLf3aMm!~qo)h=|M4`nP;;Zq;(}p8mnUwqe)^%o#5^6<3yyj7cA`oMKE- z{P^a1&`3-rlj?^jlgbZmH8wG#)^Okdu;GpfD;}LWRiY>eumXr^zbz1VmQ+>>Ya$>Z zSXrLMI#|nKo$oEiX2+nhM#No#GeCf}G(8s9f)uuF zmS*}vPY+-v#Q#fs(e;0{7tnmE>^64F#sv*gR%2^CKv_ayALNV)WtAFgt7IfB*#*f<(w)TAPa&-gFmI^%Mf-^@40~XUEDqs9@oB zvhRcto>5LG-Hqd$w6M_QADAb;6n3a3z52UoqQm}3OIR!N@RL0J$3z8wD{Ym@)eI)i z-`FLv=A@vg;KvWHya`nX?PmKcx;!rqbmyq(WrWQiZK~Pt{r&y>SXe6@KAKueIA}!7 zMu(v@@o2QP=~kMZy`kp>IIHavj5711Qd0J{b?u&>mS?9789ZKhGhf$sur2Tx*WiLa z|3)Yhzyp2H2ok-SYnIAXa2&y$kZh$==n(we3VF74ovB2LPE#tEf+FME1k=*<34b?s zYr-nsp_Vnyer8U+*tfO@yu(77cO}Cv*7*sMnkxr>3nI)hltUooq7?Yp8n;M>MkMU! z3o;l}nSIQA*uWsv<@0zD$t1s6RXPYOTTNJBZ9zjv-x&xNSHct#%#0N9C@LzH{DvmE zGChp@aeuak>cJUrW^qr%Ws>0|sHbhEtu3;4KfXcgF!q~upRTyFoQ<7T;;tT%&3n3~ zh3hpZ9G~4D}al6Z;v!teDw*vOyUO97n*Z{|aSOzjxrcP?65k#y-(LNLk(Rs^w?w~5lQGqXP(*CCq56`waO z+WQhWY?mB#yjzNxnZdsIeU1te)HnUZ+`FT&xH+XyK0r1D9zwVnO%E>5doV*f&Gm}m z7O~~6Y>`rVy_^*cdZNmb^5Lor0}sS(uF4E~cLmG0+zKAHS(7;BM8KRoqh z-8E$b?Jq>E74% z%b9JC?OrE%)-_EoulBR5@-L}(%ftygvVvlgN-i`nAFzl0mc@5-k@#5N4`~C zgjPhYQ4x1UfWQU4ibyb%wa))#Wgq-d5l>MA#=JydU(W`Ylr}p)!O-pmTz>Z9MRQpUKCE$Z4 z5D^$~`R(R%3JQ*!2WvZ2GB58Zfb!ZOQyC11pQj zGqatPxfQddz;fa?7t8+Vz?7hvs?9=PLPHb|iv8_>1R6QiFR~J=QPw%u#=OCjpEPl9odAAOVK`O=z z2wpw{Q{Ec;@p-9(I4*3)IZge=!>n;AB;5CTAaSqT<@J3K`e#}!6Xpe{xo>|xCbPVr zFV*_w7C1-PUw@7ERBcBJJU-39T9%f{mDh?u%@&daRZYAf= z@IC!PCxk)QN*e`G92tiRv>9=ZviSsH^hCdZt#NN9_}P7_TUZPeld^CbfWIDs(C+n0 zDVyD(zsA#iyua0=zqTShd*Vih+;gQYUr&y679fnsd1E+`-ex;|l^23jGmJQ2Sy7?< z@+z$7tXHKoXKxntNws=@+ zeGnzJ=y<(ALqc_*{$JX_zlY%~xLp49Vx znEMA=h%I!}SNHcXhQBxoEqVKRGUAManh&9QT6Q+j%q$ESJz#v1QEw@f zS&k9G?3P=Aj~l=6)93#Fpa=V9dd(l6DHFD?>Z+RQY4LM;s=7=1r21=mT((Vpq7ruA z4$_X_CYTz;?vDoDYrbPk!8@yLUKwIT$j~PVR<7RODn*U#@G7-4oUh#}%E(~R#2jU% z=YW~=^elI@k-qU>at@AgRzNPf4YT{^`4%SjtRt9NmULm1W#H#)7}oFQ3byv!7#;R2 zUN$!>aG-k8{@m8u?52k)+N-^`*6zh)wi=IukH`~DD^JfyT4_x*UAo4i6tlviDCRyO zzM=dzF_smZI)QZ-YZw-Gsn^%XM&Ak@AHBk^p|uomlp~KjdTdP6!4B2O0ueZvg2kNj z)&^-1qMRM>QW>eh{U(#L)Ff`jW zI~yUD^gFXZs(U7Wdv(>a@>;x9BFr&HS6YsFoKjf&mhiQN6lGdnQZvhw+1@nWp55dd z7?TpMTHm1pth9Ksf-x9r`36{Y5hCkPw6AkUf=cy%=mhruDq``)JP#l?9u z{48PE&`QeI>B3{YfTl04q@oXW`ALZ!Q9cv$Pcr z%G#j=6rn^@!)tpC$<@EwK7LrLD84$ zMqbS@`JhH>RYUO^AY`}N&tIX$Y_3Zs=n}ZhV)K;Ju#BA2Uw;{Y(W;u{^oBG93H-Ua zp10`yc!sw=Tl5o`5H01f<8qYcU)pYHsM`QTpy!iF($s$;Z*(^(6ryty=t*A)%>aDDRjuR&3o)NHi2}fMXtDo*l{t+EFC*Ts_n* z^@}JQmIU*R3Lb6$VJr3aZn6_dWg^;=DsY8B}66g#MYxRuBlarC!SP#|~cvBWqs_h^XgAPuQ3+*uH;SrFGm25g&JlwZ$QPRhg zz*5%}75;JdQ*iIj;-Ua4gUQFa)lwKU3zpAH$rp1uMQ}HOnz(={kGxWT?#wJ8ogEdk z11~3|=E`AjhKt}`Fy-#fDussxAM7f!bV4Kgo|uR!BU9Of7v7Ol3>0eRsWJSrEAN`H zjKG8XqmYrFzQg|Nv|$vxrp(IRx>62DtJM|?|7?k?tgOlqB>eCg1S#CBKHd!(G#ha1 z2>2%pvYLQ3uLraUa~%>1A++JU02iajQ>?hl;=_qQI=mqeKq2yB>sW+293DZ*4E#RLa1A+dcgB&y_Yw(Zu?6_ zxVMEH0f!BYNa~&jVebm;ev51b3(SnlqIqr^H6{scvEs6mu`$pFC^YLGgS2v{d|bmT zDa}QJEgZ_3BD!l+)Xsd#XjXXe^!AR9CQ2Kh;CHa0DRbeIBr8C5Q%vroqWCeUT%v0& zVQ-JGue_&`Oa`pHD&|0JPJGQqc+c0@nuba6`#UG1?C3RJLI1iU<^joi2HvFvK5l!7 z_+FMvX=Zh}ST&S{=>_H0VKqy~DeJ52F}y}!Wq-baQgMh^@>H{fq*TE2@uFNx}Os|tf2VpJINq#W(qpPT`t+aG~NgI8TRPOqVl=C}1^>c|E{!bjY z{k~~x*8OtN=dYH?hFqP_sa|9TlM~s6lWCkrkHy#5_8F!Y39ewauQ{bG%Ns&m&{K;o z7&^~g*ZJI^0ugZu&vdC{&x6pu%kmmbDcXW?@X;xxZQn+Mo+6S7`RWDQpY8yzO$^rO zv{~**D@tNwK_DH&sU+lAn=NHa+FG|tHzHv7KQyDy%osY@ADIFy{y^ANuz9=E>@%vC z#m1=e+EVr`%~tHoBD<$n6}UnBB^1lP z0nq0*Ay=f{X$bc3bgrQ{Ct$8KXeD?WoLq#5D=E3Rn$>~J4Mp;VnFKq{mS}MA_RKIDx*Xu;cA&@!-qq8lI4L$a@xxD{oeLXtwi$;u<*pfG4 zwFGqk@UWk+V=|g11Q#xT`rx88KuAelC#zs>VkghzHH+WLa^!aT(E1c$;2)043roTc z-@rvxzglTLf|=_9X-9%?c{8c|mjJ4)I5!*)ofcf-DArg?<q5Fy52MzXRyBuH=9)Q4i}&NRQ>eY-20R4gej{PtgQ%T{W08*Df0>}= zHGzwbU3-CG-j~Fm9&PN6_(bh%M zlpzTy0a0JJ{3!xAY|n8?*AA)Ct$1_yK4lU!yZ?QrWe8;TR92>lyjZ@$(kCYlNPc-n znGW(5PzpMUu(q0R)?OkfaE&vEqrq(l8nfZwSo-f;>3Uo;%_$G0pEp70f0}c^ z7w}YFDf9AS0n@2`AP;1ZfufsXh?L+4_J$t-18{d>4(h`X66m=@9hr$U&BZ@PP7Mv* zWL!+FG!&7+$a$ra3pV84^grO{Opyo>2&*$5K*Oq1c%ON+@?K+j`p(Z$6DY#w=bvEeFfJ9Fj%%!0%}_-Mo^jg=p=@ zX}!T&>%)5)O>6Xq^pHxf5t~fY?OYjBu~0hA8eW{t97+k&(NW=eT4QzkC2s<0W{PQ`PKJ2T+tjRxyw7am*(mwP@Yue`BlWZxU;Zd*)$7$ z12a|ebc(&x9}h^_X?}$CKwKP*;|(rba7RE-h7)ZIUIPsrkAIA{*MhcHv*w0pOWa2T z*V!&A&?Zcaw93W`^|*!i=sP$j2EvED_bR%e<_3Ttt}4~6#6M5>4S+G7ARL9MT@BKt zC3PPWg^w}kx}4_dwFni~WO*+oC5W-2`S#)L^<3F*zYtHa>zh`KW>qp^8Ce(65|QN9 zxbt^F%Y4H(wxIa5NmdX{Lt-x$ecF5@xGcGIAaS}uXaovSF=8C^_ z=NF}OSmb*2&&0BxeCKSOOx6P((@ld(N`KI?=$_4y6jKaGx)27Q>d6VWoSXJe6X1*3 zC|&-XL-ir}+*$Vg9dU4vBwu#Ca#?OQ`Qzb*lqm*cL{4k#GpZ--ejL!IKrZigop4H{ zK8q`qzU>)Fc1yj*=J}Vv1Dj>2~*EPukei^;9IPN-bbBgT6)3A#NnSQ&X)i*MV zM7=&ycO_gBd;D@`Ar(XNJ|rn9;iBV1Zo4{1iXBH1+R4pi!_;r)Tg$a#A$qbIuitXPUwCQASUU&MgH+5WxTAj z{=k&67Qnfm_NMsT4ZUM`m`&XLD{9*kT2fm1lHUOrzp|tZa}Tfi=2^D=-Pw;t<}U=i zyu1<_(C&u^KbyetCSftX{Dh}NIFm3JY(@=Dfus;kS;^<*z zW#weyz?rA(D^5+_UA&u{ zw`PV*52+o*L%uoWjUj4A*lKt5sCh;9A!0N);6~GX+r< zfg4j()4AHGD0*Xz#4xXIW@S9H)NPC~HQU_43$?YiqJ}H$*09{%T$S3JoYQh#WGZ8VxPR31Up#fS{V^P{{BngH zg^BXJZd(b7JghWQ5dBVMF&+lFIV^n(1AfSo91e~=szl&H;}!kAE@@w*sy%-5Z@(kR z_4--hhRlim7iu({ad_J!l>a9W#@F(lRoR9BW7y|@$$mCAxr_bjCw{t!Tw_4b?Cp{; zFys#;^Es|eQ=})bJ4OW;B>p9&8|{QHG$|HWlqIvcy_a(2u;QtPDyx~X3e6~*YrEeU zOxl?KSMsh2Z4PE_>?)28d-#8oVfFQTFe&FN92Ohv33#y~tGUF4IgH(zfYbM{Q||7( z>YOYbR-VZIs|8@7VUX~;D;R#v&|qA+YMnGR%t%D~R`+ijugd(|NEh}_@C1+ESIpae zADA>$tdk5XHIjFy_Drx7*nNz;$}3eD7n<6wjtaWTLX9EV!E+v94Z)-zfNhzt@8eG$ z_W@B@`W?-8l|F?kQ}d0EbMwQ)ZEbDM&89o+*00cqw|#xY&|dPUmZ!J%^cc-d9N5{H z&d%~vN+znR`~(4Mo72U{^tQ{P!>3fn(IAKV9@Ick9%rrCRxyy{Vy5b_Y>^OLIk)$#ho9oAR+H;KO@zTO^FDGRw(xwH~RMBtKKx?Efa zj5gl8;@mkHB*&IqueL&R^YX-k2qy(nCx=^wS{(*@B!%3zxjAE^3su4+2%;|*8+rXw z$VFQP1^>)0m0oN9m0c1Gi9KxZz|=MVZyo&EjE<3&En)<539o~zXvVEBTfA>M`w(YzYz%FxMT`G$gqS0YK{VgUNF-N4A` zACKUhaI4$tE(q7?1cm&q3(_($937rw984fRIUQO`v$rdiA>s3RWDj2aEn<=vQy@RJ z8__zyM~LfsJ8cNeWP&4Y_u9tNRAQ8WLVQ8n<^64AV@lVj)tJLEq4Z;fTPf z7ccNjQ%3>UgFoqZvCk4zYCie%bSz>;46~^*)PHlXuyF_X`R49!sc9>(g3;`wlc|QZ{ezGR|G(~ygE=3oM*3@4?hBC6H(GL@EzQK4<@b+SVb~;T4 zhH5M=`f(n7sC@C8O_2ASzhf@Ef2Upm-cu>Hnh(DL$g}qDTh*(+SbMyyD}3y3W>qFcB;Hb#arzCpT zCubxY7Z?akEDcMk{se@CPDp3xtnX`c9h1%F?e!h}uh5|FDbko2I0-(U7l{Wv&O)7a z#E%`O-?X&79a7sI{f^-AQnIMJUh2W(VD=0bNT~=kxa(~3a`R?UQXvq?I$SWBg$JMX z4J@$X96l15wzib{Ca~&S7cE(mS503-140~Z?XBgD;b(*W0|tET42I`7?Q*fF9TmOG zjLF8+qmaMl)Fu|4oyC1C6N~gEX&ZDua|LbXPLek-@bPNgoXzvJ+%?Lf8}EpS_^LlY zdGe$>BH`yB#@)kH6f`uiIVsh|&g8;zYQ9#g*#gyphL*Z(!$(y?!yw%?L>j(gk`r?G z&uP=4sTLO z25medCw_H_?4Z@?x_6-smCc`?mia9GCD-m_ByCUc%i+o~uE@Mqfu*#zf9l})h?l*>0S zSHvW_ZR@G1D%6&ekt!@K+@7tWW1Ra-wOgH`(dqh$<@d~Yh#pdJ2JJywB|UP8Sf zLj0)5=7>;$F}&CD6zqHcY;j3JnpkzTvm2;`9!v!1fpi+Bkds+`X8DJgM+eC0`~T$7M6Q%7bHJp!(5l) zuU9RMjYIL)42)^e&}5U{F6`Xh`I^^srcvyioNUWVD#YNOgHW(GJT*wq@c9nenD+kW zdwPm1YS`}T?D`lGw{taKLS?pkAk1W&zxYr+1E+;LQ?S_oq|h7Mq!DOUT@HXgXrlUJ!B%Dv~2%Z z{^7HPR0r03O%IY^X8;mw8+&_v9^48F+3RXq^2y{@xA#-*`rghrdWLG{Ih{E>N(Gyq zfWecEiD>Qf@BaqkE(2SWq~B7ueLUSQv+F&q*5FohTeam(*$WQtl^Nl9_3 zwiU&Tx>nNXqk|2{Kmz<|Eo8sE31BTH!P|#Uak^q!bs9}D*YmNG?op#6fF%>e9oY^u zkG>pt>#)bCH#KQ;g0`MBECd?4-EL>REW`KlfiN-B_6NfYxZ zC@IlKckA~1K@J{NJ#sR$)8qfOH+{Y`1|Cfafxd}}^U+Q0_baD5901Z^L#*Qktg$$c zDdcD_Xiv7}J2NGdgQJ#B9$E&}5OrreUCD>zfJFZ>X>llnqM{Nhf3e$Liy?@Vveqnb z2=KAn;q66t@o~xCH~s#ZnkpQ#GTSQ6`^X%$yhQi*Dh%o^MVPL|;rH}N?Cfk0Bnz}N z<@GnVqM-Dsm8>JKYOl7pdlH3iyEcQ1U7vr{bN?5d2ddbw7ccPo63VLc^V{I?Rd^VZ ze|Og>ItCi8>z2IBRV`%bsan8kb&7M(jxuAPcKz;V%I#6fFb<^@pSzB>oG|@AB~XVy zK?~TT@b~Ycu8oe*kQyq_CV7vR<~b*9`TATle1?sxSIp8%Wyz7b2^<|Of~1RGH00+L zpy%<4O8J@>^H4=Dy$$u8ItRr-GekG<*Dv(csCf0DX9L>*v9NL<-y$2xJ=n{7&y!d^ zq^+Eyt{9%qd9S@Y_yk79DN!yf6U{hJi|Of@{7$=Ye3hT1kz(SL1+V>(!u|?gJI$M@ zX8|cV-M8%~H+%fo2e>UcK5F5?&^?ib!;GcnR9etJ@{bQimEhuScZGNSYL+?<+PS;J z$u@j4OheN6h)XergG60EXtgk3@J-Xl944NMJ;horvG`L;C9d@ z<^js>?QI5nOPfEM4^4Oyn`(S~BOO0}{5abG&r98~zFedo-+5Y>)`!KmU zX=@HVEKRbF}d>b@_e-aYEhjD)g`g zcH(?;QeZ;*EekG3Ugt9ozyjyE4Vg;$W^UXiOnHci| zq!Nq>jgYcv9yNFUVWdbD2F8^Ve^WBiaX>?r{q;B8i!)?}|pVTFobW9q;c-Kaw znVJGS;}>7;5cc_x7-pR*Q4xEhxve6tx&V5SZ*_J@SXjE3WyYa4j8dOIeUY?q|7ggg zjOzYoeq>rMCbS{3;sdR0r}~V_`4)+;v2mKLm6P1Ynx4M%Ub9;YIvp!L z*0VGPcFaTGLx{Edzghq?Dd<6~tek$*J~LH8cQ32oc@5cb@nvHj5%2v0Jp%97rOsp( zLnEvCc{ehs9>uB)!=U=IXgFZ_L&Tqkk{an`gZ;KH-NAt2zby_@ug{=4QtkstK5GtqU3JAH=!tY1&3dbl$I_&=L{|?stT@f6ctq}N}3Dn z7;YZu9$uQRP&Z3{l7+)p>EX6~xSxg$dE$h!xSXs~x_GlC;)l7<57}M>`Oa6#ogE=J zo3~uHTd<vL7wb#_bDHQS7B zWV5innIgfZUYE0;j4r31Hrvk7eI5_@`{-m3A3H3}z?Vn8(Tu|Vps$4D7cUPSdNd`L z6?(wuXmQVHeK*rI^mR`fbRK3YCkc2w@0KQ6;Br~kPvCbu+pNS97Ocfb*J!lBg5@LZ zjlk2qkHnt@`VUH$91d@~kE&pgaElwi7Yx7fLei zxO=#t@(tMrak@2XKUsMoO*-dxKGqDqTcHp^LNcc6M9soXN$3vmNI9NRirTijmOV zuoux;-qBgSWI&767J^Dh&@nay=EWB@G{o0s#co&eCnjpXVC9LPZ*J}$8v22o z-_oEVIIDTc0J^>i2?<%*MhFbaqhTmBws)I?jL@9i0lS*n(cYN^0J&aue6G$-UDmSV zTrS8j=efA>TvjU zP2Px&T~kwY&TqjTf9HDf4MRJgRa47xcIz}Qbo996wrq!D2s0Z8#8&hyVQyByp;xT% z%jGqsFgHKqv%!;Rk5ifB!Ie~9wTn%uFrj&5AB)qgKi&(x)R4>ZLg6X|MIYk`b>WA2 zQJkEW)cDJG#gNrdRE_OwV(P#42lro&h-dTQlpGx6x!oEs1{)1tlkT%R(A?!QvmZSr zlGjxFk`PZFM@r$eH~lyZN62Dc&~@za>mRT|!F!|au>keT-QD4|>qFgdoE~@m4c9Ih z=jX)`P$Dv6eaX+tYSguOrZS`zBwcPQkqj);+8BiWlO8otOCme)zY zN=rNO2PI?%c^$9Z_4Qk`u|#mN<>ll?Zjf&92I9|dLub;`R>my1rqa|^REh)hPCAJi z{bfE8UcjlLP?(6HOm$sN5D8n$;NW%L0hHI_(%DGqTv zjKA*y5ARvK^EpEKU;)al+X7z_L2kIdy8_!QpC`z{WI}`=-D>NgSKZfBJUsWVdzPQ9 zhrOp9D;$*zHDMlnX1g(A8w1*|D+L#9Z1$k-rc`gCgo}eiA71RGrA0ae*%u*+VpM&4 zuvP$>1bgL*%^HL0K9`iGIR^Ry0Ks_(ae<|Tnw|d*IYUKtHNiv&zyKCs_&^S}CTU)A zQW9QZ5cAhVU|z)}ei&q$PoEtJOG!r4Ya5#DACNuw&reO;*P(BU(W*A!$*;A-5&%nE zFCC~F{e^Jc9L~GH{5%Sng0K_?+Wvu_)8q4x?xL=7(N%-_h)_D*AI19u4Ib{xdhNX= z+y>4Ejr}Y@fIuKpEfY8(vQ}1Bs;1quk0n6Qna&em#~rNa1P%b&M(bHDw!({w5*6*} z4hTq^7p$fcV0e+a`in}v%3oK9g-NYLoIGFMrwFh%_i?iLP?jvS?l zJdmY^1dFkkkryWi4+CA`T`Y&hJw3hEbw4vpQ&Y>!4c6ob6NTKKAue|34oXnu;WvJv zIuRoYyYwo1poUZ5eB+M|gRY@4JKy)9`OQRIMQ!T0{lRP_%8orq&_AcAeMvfuI{om% z6n@A8*`EdAC4MA~m&{(Gw_QT1E8T8E`VKVI&DJ=k881B0P^9ajqowOfRyjj6@a{1% zHgdhb@`VKYhXyw{Y%aVP`7R+F7Ue0^ajyWxrSWW|Poj@)Bt2n$Q#>YY8fFeoi!12R6F(~W`2z~OM{+M2-Ehud0W zA6k_rIDwUeg!HYCfgTx+(9Fy%DJhCo=a4yJ%+S!_RsUBn5zv&Fo0lux5}z0Syhuc_ zE5#TTYGOze$Y;MeSBv65!gcLv9W`J4y~Hvs%dO|#NA7xdbbzg(ERTBjWfGY*F5XYs z#sqw{C_?6rNoV~k`&5g4#(y5mrF;Ea6>$DT*<1eFHQPfvDlhQ5B|}CS`RbI&#LOrp zCk@H&_g|ZGAtm@w7uZGq@_;9r9<#mOMLY&mmjXVJCz%F^oN_~(GFgMVlCb6qwHj=f zMmTmceZN0$?##~54yq+;P5kv$v+g39+vN!)m_V>=vJ>?v|D}L!lm=y0MMa|r)w2z3 z&qQ}Uo%_rTat~2gBMbM3Fb&ZWIWlr`5mft=LQTGfY8T`61Pa2l&`{+y`skVI@}8HS zU>(<(uhhpJ0n5&k#^XB3*2~z76Vf*`bu1;ILS)av^0HLU4-|sRKG(~)%%^42@>t(` z(G|`_m*EOiZAlP<*5udML+`Z!5wpEe1<}`EIl?KHP+J|GJD$HLDx9lEak;v34JP39 z@t78G=UT8p==O59xw(MvI^Q3zRN4__t*wELP4VUZ(E(RUxSzpYqWcn&`{8g_FnV!f zWSS@@8w$py<_RB81de5KkjtsNl*u@zAWDu_;a zJzD7umj3)%=ChPYP1aySD*_XBE@p$1T(rMA3t6}) z*tR`cPdp6@nx4Lji<_Pa8>TLQ1v^|X_@oG<9%uDiI0L0BzkOUVNtZ2Fo0jy?&d#P! z`HRhqb7H3^ldTn4gSF;8tw@tzzRWReh+{Urn%A7sS$MVJ8_INmO@NDU&&8j*5p@6? z=&gh9^*jcCEv}%+p-oKv#$eKifl;G=bPN=j{YD2IB^+Y4@GC6tjV^lJxYWLfeGU8p z3A+Kj~myqYhN7?sYl9X;B8`EObTnH=HAlNC;b4H+c zSdTh?mipXidt2%gCU|k22R8%FX_X=6zVfy<_xtOf2I0+{xRoY1>08%M)-n=OqH!fF zlxj2Z*+!SS&OsrX*Nn#lQsVy!W1~$&%*W^G1Ql`t7Q>}fd=QkN zz(A!7a9^gRW;r?CT!j_o*^P~O-nRy~ATsy@&POI_hDO;KE{5srE0)0PnVz2RKa*k= z+o_-{i2>|S3ID+NlK1aLbicGnTGZ~eVL8V<^L?P4kds3*`&DKFhKe)^Z!;K|9~4_? z7=?ccUGY9KmKJos{DX?hMwT&&k0IBZ;l)NpMs2PgND@9BjNw=i`Ykb*sGfSPys@&f zgPC@In9|^XbaD`s7=a^(nVL%#O2$Y>!@}P3AgLMDJuGUyX{d{?`eFqF!TzCvqN6{N z(9DU=+d9R>7J^%%u2YcQF3(nXFzuS!zU3}6a=*Pre($x=niSE{(7NjqD0H>RFt_7x z!f)4MbWbJZDX%7nHfXRGw_!C`i|4X&9%GBclqeL)u37uUdhUjyqh+ox?9d1EuAT_8 z^;1SwwR;Pv^XGBXou>awHY+)czB#t6kkr{`5wYbC5#;k!0gy$ktFj)?#+-o}Wolba zgPz0CZ<(LvjX-{4FPo1GG>>)9q2ODeOg-*rNFwiZ`(P>vPmW!LxPfy%(q0$M$-}Ky6zauA{(I!u>q2 zaX{NMKR?LStICc`f}pW8 zM}Ff8<~C-p-8+~dm(~1@D{t|?T7c+DWWnm-ucV|D>`+#6a#W?dvT$;I=s`0Q<9uhJ zKwPqrH6;f0d2v-00}X?3tNr?Hdl77o-|^Ua44DNi5DTYMlk-WtGgZ%Nlr4RQL(Vw^ z$z0ZR)==)3$e_^X?ryBC=c=kaEG)KoQFzRsAJ$!3Uv82VzH+Yxaj;t6lbzV8FcgSz zy|#j`H4}rQPDHW?Vh?k{%G>yCW!+Na>gyk1r?=<(RoYW=TyfpV$Uj1yB8k-Mse$o^ zohhSs<3N?2nmWJKQks~|GQlG|X^CEDP8LDC({v00h@-uXc+fYd=1Mva9&!fNM5;=n zlsCns1d3M?tB>%xs^FX1@smXZs)x>Ydcu0b#Pp`C0drqWLJJB=tk5=z0lA2x-akA0 zMj)~w+Ejs(ilRwR2@qRCKh7aIlA((145s{#M&YsP0| z&-uIw^~^JSjp@~nsHE@=@eu{yS(IVVoV+55&(a@~f_uJ?t$ygDO>(4)Xz^TC8~c@& zDB$qKyFjiXO;J|1(t6U#Q9$wJm5d-iYF%R^Miv)n`);}8a;h8F4(dP~;>YB!tJW{7 ztu2+y;jQTE@9!w?>Jcx>$#IFf_`^`Z*#;Ag#*0N0{QhNuz_X^`Ud>4wFM55xK||dQ zSr*Z%p|pV%drHRaytKU5-HifC+XsVCC{4EvAK4zt{k;FVhmStR>6dcuhq=4b!d0kc z#*rCEqCH=|z9mDMB_yt_%w=zXGOSN!v$p*60h_L&Aw_g4@c0iM)p6rYW%rLuN628; zzqH8`UPs{JzgAFG448Ltvh%ul8v1nLwL=bw-iSSt4Cl*N6ha&?ZTF3jw)fvYbx?Fv z*3+AfDZ#06CeB3Jpu6GXpb41s&{^OXZ+#%xF+Z0*gGvTHzAQlknTNdW#P&kfdlI8Y^7!GL>0l1_n1let;SCmFoiNYxA&Pt zRwwCw!!_pmK++So&ExSM|5^vcw*QidhDO4qHGE9rL5Ay*-0{BRKs=lNVUwpsbWuQ1 z&_33%s>+5Wpx`xZ&GP_@#bjOMqUyBMT@-*gZf=LZ-0G_cS2;( za_Vwwsvd+(nURTL&C4qh4AkR>L@Q9VT-Cbn(?+9BFe@7kk}jd*_uU<)1*=!>wd7nO z*u>NnCFc6p|ETQK-N7Ur!WW}1f*lo_sMj|L9FvwJlWURg15)Q=e-7g0q`-xp%+1rh z0lT|}A^C-{6d(*%KrHjNRGw;qDvD8~)Or4Fr)q>vg$)(;H9v)@4;~_!-{rg=KZz6$ zlYt2eIPD33z5J!OTl8XOa~)iR_QQ}nA6uO9&!y=v!=JgivX2+=(4l(_$@;aUZoI;l zp2LyAuRlBY^LIh`8q@dpQ%T01y*gM5m*H=;*m`IX7B#>*HP=tUnB>t`sP3#{336I> zEK+JIa;REiyZ0$xRaRo?n+r4j<1d%^AgLdAI=mVbxux~a#3m=3iNilriI z$HyChFA~C3A zDLE_&&32(a3}z<3zT*;A39BBRs^-nY4T8~wYEO+ShV$93i|f!HkB@UP@A45m;Wl2} zrcoqWeC5w3nVC}?=Q5!%NyrYp|25(IhAuV&wM>;oT+BE+whWJy@5&xT+KV4gDGNF? zm@x+S|1PXl)BXKr1Jk^;vhsU>wQTo}c7~3pIf+7VTsTxjU%t4+OM*N?NLvZswQ#t^ z2gaG)Y1RssEN=}8-4>TuS1Z=^MA^L!7EiFXMTit@#BFaA`ffKo46dzE_~Kocu0fzq zB#E9S%)kn2^BEW!YaN!@Ayl*hNbHVU5G$<>;!m%8Iy#irXd|E1)PGER_R&(4;Z2&= z0vg)0jvBffpY>CQ@lgh{?^V;|;}hA}sA7_UWZ*|oKd$w|P_#M1w)mr1Tm|(EoEU8! zZ9!y%rx-$I{YyEwJan&A0)J4~08k(dG{c-^a(|j;hsl(EuMMX~rq3ES8l8WgP)x6G zj}v)%3YHw96i*&)w1cZRfw>ZfevgB241;`>*N%=(7`xcT7F)uO?oN1hYyz&Q{zF5r zhKWk1EpLx{Lnj)71%}7Q*mo`Qaq+goPp0hguP+YRjL*yc_m_ZBGre<bLCs3l1<@X; zjK`3mudi>vx{1Pgd>V_I-2opaABu-U*AV)C5FQ>LjXEbJF-h+2mxAtHpd|caZ&V`j z^S!4BWe{0fSXm`68X2$2=1(tc*!2=b2(*hEz6mLNP7~QHDH)WIKyrP)#bdh+&m=CK z&CbpB-15yDUR7nw@;u+FO~P98FDl6CcZ&)AL>&6m7rNSYlq66)n830IFOd(D9+3+N z7EW1_CaWZvlA})=pWgT=l#!2)O|qif%*0@fgPWa!;_(l5@e1-lj~)s9f$8azJ8&Ui z9$$y-R)4nWl@$$21w}+W1kMX;+<^Ckge1b=(*R+b=@^(8j}&OIwX^lO2^eSA9#bYE zPE6gO?dg&1Z1|pQ4SNwqr-maULT+wO1R8%#vC_k0hZ~fw3nMaQ3YWCX3Oi(f`BL0# z$<~_o5Yu4uGZXjr7BK4&(v4Py$zLDhV+8}JY z8z%9|`Gb?wdd`YiPj63OKmCWi9$6KI#q}i`E96IZVch;Z05nss3J5oT;#a(& zry;L6_a?RFA(OSx+pk=kYdchZ=UP@F5suOXW6v3hYwJ={-g~^z;+1y$a32{RZEE1l zsIx#Qm(!3IE>XDsl#ce;$i~Jwy094lIPu4;iZWI1mpWe|JM-*PjtBENP*z@)P3$%r z0~O~F^WU!Xt^1h6s;th**l`C4#=c2pD!B!nmXG05;p2~`Gs9l7(|gZRf&!;Y^H*KEAJ7da2jZ9{dn!Ayw2T%E7o z(aTs>AdHc48Z^-{39y+DU@rmF9i2$GdMW7>R|SEGfn2K8&Lq6cuDv& z-+9>SBr@kf<87{o~EF+bgR|x@j*R^$e~=s z)^p9fTCasmEZi-?tmc2rR=AN#Ix*e?bBJ^ufBzoAEHu;CX91iP|I=kub4JZZr~MlW zf7_dCmO~k%LCsRn+f1&7%g#w{i%*}W_#pesq}b|Zk>4R!_O^;L7RNmVC+Jgv5*LPD;@q|>+*-UPGMA%Ne=>T4hoYU zdZi+UL%}lexz=%oR;aW#cN*U1a5fzcV1Xjd#y_gW6*F)~jTtt_tDy6@*N<~W_+`sc z&ZpM`M~w#fpyy+tl*Ct+f}#y_Fl^jkR-_Xsz(*%Cd^7#)s_;|fBZ7(0f~gA2UVvDI z31MhESH94%i)pJaylf}SvZ$$n{Yj;0?#0%oB4}ISmto+_O-|JMCsI!;gj( zk`zl6XLUi-OrR3AZjV%vMLR^F#cH%NG`|jtj5K`zK1Eb7 z=3v|ga+;U^8z6A@Ey(oHKWg!|-)qgpPqdB9Bi>g)HDli7`gpU_vC!o)e`O08ul71*Y| z+R@w;2tpey2`aoLTI|%@7waERD5g8@+i8HyiO8Ay~*z}IyK)OW>n@YBr2v2vj^9WZGIsL8Sr}l zAQ9*!0zfzm?Bzg-!Pl z)D7v3?0J2xf+Q=%p{&4u`{AIBLmG?4l4icj$!uomBxsH@$qUN%0ps@WBARG9%Zh>i zVgLf>gxiL!E*>5;_D9wMm5FYmEAN$Ad>Fk1dCKbQ^|;LHr(d(@yq8kZLNhR37i2m7RstM8aX^KF~K7^7eMv}B)2QBSB~!Rcx}P(&+c7zjfJ z983QCLj(Fin-}^W;rrZDRx{E6_lE*%fnEOdar{Q6;oMgxIiI1uiXd`WHZr2RJSwfJ z-pF$GhJq)|<hbnQ}|${mNhHjSU&00+U>67S8t$%H081sTU$QJvvO# zmP;0JQo?7_dLgyAv$MCh7U9Az4%a0T%H?o2@Y?JK_5ccqG~{M9B54u>q%(&zJIrpbH%>&m`*K36sK@l9K&^{@4a{6pDCr%x}Bs|AutI zbV;k~jaWtP&p8$r*+p!uoQD5)DZX;hGtg68xCy40TCmYpmuCp?Hne;EFMsza<#9C{ zYfe7sLcFF`^JLCTO&wD>WRv?ZLd;CEpPsfyz0oxMA`dQZXlfhg8;PDM`%j|iQObka zN2qi&Bg+px)5{$RC(@W%Su-!F|Go1s`UZN>xZbx$|6%uDoC1RhSWZbEhdC)Jphkx@ z8CJE>NBPf>E>DWQ3Cq?hj9Lko^$3-BEa*CT-~G`VkX7J_q=Uz!2L&C`M2i0xEqF)B z&dF&fhMKz&oh{~L!deqT4E`)fp??kZ{S)4M{%wHx-^cO)(}c-AA$_VyS_N1xLuB`s za>+k~E|-};juz>0jd4wYzKKb;p7R^pO0TdIjl!Rw-lAJD23J%l2KmU+Mq-Pm8btX2 z1t0x4F?d6TAwjWwZy;CG_eEEyYYbc$O(>v{AjkRw;>OxQ*USoV1-3{DVWKavFR^D0 zDMbGJwts?$mrT#U8>d+42s}LhDf}S0rR%BS!%@Ouv6%GrD9(xs$4`FoiY_!$_0<1C zDf+f@$7ko|RTY;vKX}xdw&w6~0~=3i0=U&uT>mw+lRZs=b9tRjw|3m*X%x8N(KLt$X1y9k0%(@;%x)+PqWAakvcL|xOTphj73Fx$`rbr|A8xp z3p%>@ym*%J>(=xc7zN7AZqcR<5QA>`MRmK?f5Ly4Fq?Ww+DPyMojLBJ_$p9Zn|u{X zQP7kx6?>_n(p~QJzu>~ZSOUePGxRf7p6fvP?v_tjiK(R&$A-PlzG(P;Gpam)`~CZs zBcWeN?cmFQjvFT8L28h{GdIswfwaKe$}8h;+buqy2#Fp}6*^nXV3Ju6-rTsK<5#@w z=pJrfSl~Kn77<+=s^;c%JU*deU=UdZh>eDtTwG$}3H2HV5vR#s+!~kld`^D8dxSf` zz${<}ZwQZCT`b)rP7{%C?hxCkE-r|RgSq?uZ6VLyu5r3(ty=ej%uLaH_j%}rBbC^7 zcJ`)NPG|`rcIV=Ob5*ESmtriK?|*kEJl}c)f;jh_|C=LR`G3z5>JGyH2S=EPr9_QO z2E9D*dnsS-tc*{!3Nm(M^X`X7H)VO+w=*Xi)vad;^p-u#w93;cyeNM^ms|CTh5mkY zU)t4Dr@5ItV+d48TVRxkfO-P_n*3OK_GK{6CT+h1m>*l8(y%I-t8_jZ=%2)Qi^&Mw zLyHCvgots8Cpg|ps>j9J<8Q~x*o$+1b;gk&1@<#wu6dQJv^|a%0IaY>o8PT25;3jr?<;>Y>kD$(w>u4F#h?xfs@ajpL-)epQ9#;*BnS12t z_kBDmsVu<_=3@Q{0-M<@3G>_$9N$zP@hM;{3r*_tr6=Vs;k4>jP!9X?jUXiMQKtX#g8upN2HW z#)t}{2ct9H?kxzB@#c~T^IGUy_4q1QSVoE}kl{X~fkDTQoSc;8Vim-QDC7cia!Qy< zGd9QU!+7K4V{OzQ5gv6VGm+hP;y?SCbag&_KyRUMYz#J)48hQM_yQ+Oa&LnEST@hi z8y)?%v%L*oKfvt?xL>}5#MQ=amyfLi7ggY7EK!i0yr4W^MH3p#ZnaMuV?R9}1xCj` zc0gHeDXgCB`;hF0&!lduo5EAInv;Iy?=hEk@JEh<-SXw@+XM7x=-(a}$+)U31z3=M z!~|GlWNb~%x*E=(%%TZnP(MGI2OI3xEB+VNxW}SrV6nTubmnha_5KZCopwdipJens z_0q)thfzK}aTF%{piaL6x1pae7S!q-$HN3UIUCFK>A8KRR(5tQ^(_;_!hHLU(rq1z z?d=?@o%W)pvzkqtLM#`Oxa+Ssn-je>AEwJ~m9*A1-ml9u%0Rd#iIk-aRL^{Pq4>sG zCs~-Uxm`xMHA>4ZuB0008{SA0&$u0L&L1=)#(GA)B>)nHX5e+VuU?OC+!?AH*OXDg4r-PWM7$-nz z=JJ8Lebq#G)4<*H;kE#MEF4n8pu=eny64uWx*><96sR>D_L|6C-ZV16bgq0TbFMl48;Nw^hTq9|Uc9F#-M7-Xfe*J1^NC^Xd;e%W zZ5g$T4PqKpq*G~sCn8O@0Nw4{zi+t9O-Xs6j2vO7qS*6Vkw)!IBQjL@wOAia%ft4z zwn{qr2Ck8HY`(tGj-a^YF{q4uXm<%cGf$& zV|sdea&V!k=?`?}#AlVO$;tP{)z$u}pvoKJxV@`$@cZ>(?bQ|N*D%!ortqe{`5`-5 zX+`muVA}v(jIX>66_Fgv<6DY*-pm5-?l(bb=rthC$-49~XJ>J1Yi)OV`i;zd!rPv*N$y%Z7V9OAhstU7_oSv z?+jGMF?ar4ib}t?(H771Hf$R#jQW#ql}E7xqN?6e~_nCk?^p zf`q9GYu~?v!Etdp>^^n)u_9kXq@}av>}#sqyJo6zRy#6s^0TX>;|tVf;2aSokDqLE z;Ez9LWoPz58y4Gk)uS&{)|_Lx&RKgB+_L4D_ASjd$mWRP{eCW1n{}N{Jvr3>=}H{_ z0=wuCyO0pnUpeQ;dt3(s@AIQQpW2+!*85FRebhHAJmW6>mzy=@jIpn15gr$3HqM^< z!&tlYIVR*~E$+P{L7cNsa1J9K^?($vR48_x)1LQe02!w>nShz|yRQqz$xt@O?KTE= zr}NEWkIUls@q+j3^SAuSZr9y7WcCnl-o`I45Bl5$6IT18P6-M*|g z^L)La3yb{w&28icr}Z4-t`^1_+w1GcQ&eQHn)B}6SHMIp<|`2C?x1=bO2~3*UBnMrUY)v_UjP*dO>2BGztDK+Td6k@xnWS$wlrt|u4dur0d zIl0kj#w5Ra)mry{AiSeKdxnOA!SA$N&Pn17kRlr)t=kQ#OaecfX^TE7>AqMi7`E16~il`$hX1j2O`NbfXKuc#3VWaKn(cKG|2lk;k|HTF5+1jGqyX;vy+~&WOf0ePrWmP2?&_`@ITI%nsSZcB54LnSo ztN}BLZ<;qnjk7wI49{i7r?bOa@6LP5q?S2k1Gwn8czDi$W7v@~x!{aRI1kf4pb78T zgI5d!q`!A?BDv1S^ehg))ZVT$_+?l`L{y%um~Z&&ECSY=n*dNYD{IXf>qBzf;9PHW5?s}#_-d4=M3rqk&n&2=X^Sf{_7j>meiug zD;8GTOqm1HmaAl#v&(sYPJ4TXa?u*hzQ3_-T4rq1Z<7wU#Ro_{-jOvDf!q&TW0O{Qz=0C z#5=;%m7c6*A?P};T!@Q>p3WElfB;iH_k_H>KY2LN(Q&@THPqL~Pc9Ity$>?oH@uIl z-JDxU8R)x`dG)ove2OVZyah@86}>dD_0`#a4KOyszFXB3GQSd{iH5AIP|U(No&W}9 zcGBH+K!1jUvgZj<&0{A=Q<`C1ip-2u>U4g$?MFWhkc_397F0kv5GW`I%^t3LYix&5 zV&a7FXhby11O|rbsYYOV&$^Lr8ye_Z<17gt5iMU|Cb9${G;T!0ftOiYM9y|+KdH>F|<=_8k9cNqy)j#QB+=4GH5N zooV_04k-ITARr~BrKFs8Xzn$viZeA=kDSoI>*lhaQgk5)TSk`F_rc)?TjA!rd&K+= zU`!|hE*a6cxznGAR@Ci7L)0{{lZpn*))~GpSs5CByD~P)6fqfk!v!h&S#0ARltvo= z^J39cR`xaL3aA>xC!R)s984g92SGxK8H<|J2pr& zHl_?2vRGD9!xiYm05N6!#?C|8&^4hxI{Lm&Zne@I8h~zK${alS_PxF11JEFvd7yf0 zqg_3nlMDT=VE!4Hf$O-+;kaJ^dvP5L7hh9;j^CSg#M$F@BIp0r)LDi#+5UeRL@6n0 zK|nxSKpKHDMFl~n*CKvIwzr8EeP?odV}-JQ}f8C?TLk8bJz_59-b|MqIfj=k7% zzqs#R-|zW3Kc>u5vu!A1%BJ{aJ$3!iP7E7wz~QFjm(3>|3tNkfbW~xmLA?sfKUJ=u3MYC@1P%E=ymdCg_^04#Ua`Ie*hHEpH1{3p{zU@PLIseZ^zu+oN8pD<=tiw@`xyg(_zS&AOOYB zyt;JXnRF@fZZ^!bTvt@g!(NzN&V@AemAHHP17aZWVDis;eD(J8);4CSt!O+l$i$bz zdw=Pz-^n&a@~Tv=qzK%aM~*_n!wPbLMk&76mo2gt$T(V`tq%;&>q%=Q0LPJHqvkMV zE8aQ6_E`W4H=p43oF2=F#K>G&IFr=pmig98HMb(!Yq!hUi9a`&4vzJP_qdXCo|l>L z;A$dVc7jGmK5O2SMRg*ZJPfGA-pEaNY_0*8si?Ot*)#P z*AAqV-+bTtG{509jm_S{L0(>ABU4XPsX>Gh;ll1laU5PUXGpyKtd#uv;-Wu0&!31j zjgEw*MA`F0CEJoG2^2ewc8zlrzv*e1L_T+adFp%4B%2D zU9vLtF@@LF-JR(%jM9@og6sA@xe7K;aoi#~q~WYesw~v?<%W6y8NF!k+yXlncp@MS z=%2F`&H34@EAf)W!%nccvrj;rZ}~v*svP%xjIyVf2L5gAdTguP>k{T!u~2T<$gaBj zOhK8AMGJvamGG;Te_HivFF51uzD74FQ;baPQ8GriWtB`DYgSgo&&pNJ{u!#LS*FSU z@Bt_Xz0X&i~RFZY*?qnW;IzdJ~*5cJ=^Wg<&j> zMp_1zwjY`>>#L)%!JZJyL4vf-(Smqj&G{)cu{W9k9ew{J=-)tS%TTM^N`pTgGCjP` zQ>4U7)z&sHD@$yNNQA6%8P)z&?#)=^L9_gO-{gY8=e$D^jvnvyXAHExR|IwOr|*n4 z!v ztO;n6Cz&D7?Ct`=td?w zmXZa<*|MrtazORC&Dj#(dq+K8ScF=dj58rA)al}-qGDv7x5;*-K2j6o{&Zl>s69z75eBI7kNH7AJQzjQGy&d+UdfmXjVrZ^+?B&Ne`<}Gew zA6bulXKg2EnIV7@c)FY|sV(6U5SfeBOl4UGMc%QyNy_MdXCQY>!^@jhFLy>K-TOv4 zu0rIlJZe}&^T@0+w=Vm`!HE&3Ly=WO=6oMIzqsJ7+D(pj!&AI(pBFR01<>i0o#tL- zUp;L3M!4r;g~Z>fsVnk3$U>g|I47pks5lzUBZ#U}m}_`G>Vi+tP@q3_EHdq!Ep@jf z!ghi6+TGniO-)T-{~a=I*7sQ*x`FD}H~k|U4eK)>AGuLtghztW7g8NRaFIcsQ0vuN z>0(ZMyIk|diu=HY-gsgkfi|5F*kggIGx4qS!xzTJ<{jP_L(|wK>51t)q*c;3%@X@h zcy*36=I;sNOj!2}Dhl%Jc;BJfWyi}CGEMu}0Vob}bE}guZ=Z3G=vp4u(h4JGX+#tS zAQ~ZD64sfYj=nzmt5sW@wW+F#)+FyasxGZTT)V2GREr6#hy8AtIHNxqcn>8~R^x#} ziPTuVJUES?o1U5~(ycuNp;y-3uyjw)%?X|%F9p}bZWBJ8hpjz|Z{OB}Ri%?t80-ZP zH!lW7O-(&-O<Y1}qa;rPcp(-0X^$=p5= z@2)Y@G}Fw6a;0DR$i*gd1XfnSehF{3E`HB;YmX{djlntxkEF98cTokXnz}MuGZ>7M z4vsUNf}ZZf!z^R*-03hcLjC<~e|&vvOy^ysvb8nYMKYtWk6Dbq+AEd->$sZr=#z!R zG>FTdx1HA)fwAAyZ5i+UzI_Xc_!0RvvMvUHblc0+kw*?P-pvJR%u^8&DYq|926|$+ zh`>cp7F{6}L(T%(gEu$gAPEp82IR%a-d?%UTpZg5`!EM5=Ww_R^=M#O)H^!5aWzC& zazf(iAE%Izx0!AZIJ7-dbB5X;cur zXxFmFLj+;kKzmPgbZXBs+?3SXP9;Sc&qSI)!P*~$T>c?uMa6{z2F%Q?^$mV`xiM|> z7wOX@N_=UA)VPJ@5FHtE3m4z7I<&1?+hzRr_qRlTG~b$9DUXAd48A1f*=1=TW+Dv`T+hOte!@YAof`npSANA{Xg?6h^ow~Owe#DXB2 z3t3$w#J62f^D7kWlrwM+jI5tHXm#U!+$prEX=x3O-?>#ShI5S4h~lcFbLE{ zCA2BAbMUZANre&vA+t<;PDx{ftI%Cu z7TNxS!a|ex3CXi|Eyf&n)ynZ{xl>p3vY%hS)q0D|Ra=&EgO0DSPsqcbsA)J7&po*z z+)wh}C2Lmsw~dAL6Nl55^0wf6ZS=Aj_Ln`o8=Kgbv>5uXyl0>e7xpm(26?x7(Lm5@ zGV6YF_e=TPP?2Y*2n^<3ZdY_c+5&aiOEE7y!{(4@u}d8{&0;B7y4K9?RKdpNf`u(D zxh83r2rbk0je>~I4Bc3EnuRU9F}rSp`8yD}y=j>cB52eYo(pK%aC+IBflC__)*thq z9LN|Zfhy9ad^v=0e=l5|dg%F<3iCIdH@0%$jwT=!mj!wX>0Q|GmaX6?#x8N<3!)E z?K?o-l|co2VE!9xm~sPmkRTdRw+VFV&Gx6z;%e9YdkW#qT~Lsv4yIz(tNM&96a6OL zdsbb$&wEtMxcyCPF7FFo8{QX%(5b_F;ka~%_AUyu;K&_|Wwuln)b-Yval>qWLqfy$ zMvGP82KD6kJxh<}_ugmD+4SS!kPIq5f2x_4tx$Y5Q4Dc8esH{Bip-~^whf$V*>E5BQ{JaOekE> z-r~D5dHQoxGPM)Mj}C2JJI(70TU4~PUoYp8vZtyDmE_Ksh$t>Aagx=-+>#a`8Y{8t zMjJr)mb1+ms;>T2hVh@H+xj2h1~YCt7RG^i{&BOLH2Itd(+<~O+n{u(TzI&qs+>9g zPs%V`;L1Bj-GG=Vts#!SaeXP5GXPN~@PS5>*(h?vNPl@PCQp$cwKnvSRDe{bF|nKu zAiE;rQNJBPGCfSFPgKw>e6UEwyizH+FQKC*Uh3x2xGJaC)0wTIf$9Q>fKKtbfFbt6 zg7&K?VRE)DFM5}RA2NnbbXaQkCe2N^^0;hx>3keZEY{ilC6BJ?=y{PBnD%JE^v$Fw z+Krts-Kmn_Mu(ohBw1tAS&LtHB$NCnT?d*^*e5Bgm!%J6q66^peX2yYT%(M?^Dw@k z-oHqs0_`w=4+z=s3);;g0*^&9q~!lzSdr7OLiB4MiBMGSEnOs-?kjd1~XCFUGUDS2a4J6B0&SVC|Ax#!VXDFzV z=cleJJ873aWPiUO&s%M6T@Ah4k6)*Y_l%Dxrw42LSH@-~Cm)RTEI#w`{XCAHs$`V3 zb358WBC`16py+B9K@)}%UUqh?&cmK@%`^MusW9M&5Ec<>glWaYx;1CF=I7_PmTR2{ zh@Eye5R_A>HHt{_y);=zlcnw-rV8*U=~rM%31>q4J2JAc?EDS#9vp^rc7mm)*#o|L z=I?g5ZL-#EHC0vbhsOqxGaXKO8@94}En`V99R>IVn_c&MGyEN`t*yiFL0UOzZDOjV zrllpbvpG$SYRk${=s~pv9L9`^2l6eW1MR&i1~3lJ$_kM0Bn!8Gcm3tb0zc`|5g3gq z3kXaI3-${Vl74&i=+SR&+ywn&V9+Ce@eZVw?dFs(3dq8h!HDGj`|RX|B;XOqUu1_J zn`nN}wtwj=5BpfJG}3wL{&<3&MZ`ABF6RqTbPgZM(vK26-?J4Q*6CC zxgGFmPlY`ii_OoDU;On*NXUQ27TpjM=1iyKaxYqZPRsJgr2rGEq`X{^yB}W5n0WmN zndoWPq^8H2!85E8y^wAXKUM~FQOQik8)90cZM_zJ+}~eOaQT(&1~m|z0KZTP9}6`l zK#cvmcWohHSulS|OG{JZ=IYQz?Ga0BQ)6*!iZ4+dxZJkK8ZDc)(2ZPI&+mgMw%$!f z0ASQB9Ig~$nV(*e0DO7TBf!Kd?;H1LRV}|+}P+?PG)AMo81R(?brGq;{vJh5(TQH7S}UC zXRZ#U?)?YP)Z;9P-rTZT9ZV}V+iSpLlRy$ZMe>s_`@q;%y@7t}^(j2w==9usf1f!- zhg0Odmd?oYsy4^#;>wZQ^Q`|A+}?*{no|c-9*Y33`(W3kRe{A$s^8u6hr#IDBbzbY z`j3JQf8gHN2k$3hYHLrLE^QB{a&#Qx!J7@MYp+u7OUE#Cv`jY+ z68ApoM9L3j(YvS7eROuG3$H{$H=8swGqcpk*qD^FPQ9H%4~O;X>+|sey~uj!okcI1 zr@mmLojXG`M%Ltf$*J6DGKSc2S|XWS?2e=oF@GI^Joptq=YZ4~x)ICG!*d4>7QSS6 zEU9*+cRVdD%y#!*S(OUG|G1#%T2l45W-49wGHMT220O0S(4GVU@_mFLm{J;=&3zUK zcdMx%NEJbplvvCLGTP0Ck3h|jQIS-D+Y0^m>NT=^>0O1GQp|>q;9ycUeeyDRo$Ra< zQf203k=&D-86)fTvql!B8%MD2_xG5>p?lO-Q&g0g=jF5IjvK(m2V&E_@qBD{v)ugr zL)u>f4J}=5CsTX&c4_9fYO~cj?bWDA4jh@#`2FY4hkWdXnKgeg!J7;lk2&z3wM$nQ zIg)p-8D)siLu^kM3U;?4zF-2qgBFsgo`*8@63C9mSeEng@s$8>e%^4Vd+m+>%xo9u zYgw)NqeS(qStc)|88L>(L5gl!VDYS1uBxfd*dxV1|!mgL+vmjWE>9`rSt* zR3W3zDGx|qq&#v9NNx1RT0f88-xm(D9Vi!kb~nlu;=Z;2%Ti<&m3^<>Gb3Xt z<{A~!#gI+v8V0GUv8`z|7EeW&{T*{a1gB}GHr}NBLsm{#SJ}>e4vx+v>^Mu9!Sz+L z4XvMce^T>AcXv%wk=Oay4h5bH3D;wgycnLCPbY?eie;<-#e->{dn_CrFJ@ky zN-+rN;;J#fP!ULh_@`mcME?b=Y7ov-f0_!dwKDo6jepx31`H_Kg?BRXx9VW0ZDp}4 z2!>r=m#ahe>wNp~L^PBV7}P!uGA53;k7obU-B}n=tLy(mt@6h9@8Hwd=z0BV8yI~* zlR24@%}Sts+cR62k#Pfqp=9DY>hD6eWia6X#LnW&YHP=JHxEot|LjEk{=ihSXJlx| z8Y&?yF04u4GQ4<|0<~LdJ1tiTO?x;(aBqY0?%mc(<3oA9AMl_bk*veH)Xp~%Mmir~ zArMs=m>04^fnvpX0Qv7boJRJ!qDpxr7x=F*`~Hi-OyRk)MQ(DoG0YCj=SDQDWjtZY z*D98@qWGO<6r zvf9^Vj_K|t`KBDix3N%*wJ@vrd|p1a#7gAlC9rtKeoU{dAlg#AC-dsvG-2FXrxqD^w_gwxe)~pdnH!TM-_=;BQAR$Z_<-T)j*U;1 zkKa^ZE_3v7L^ zHtdiCwdom#HOt&}%M7Pb@r~~TszpU@aT%C%XbClmS>OF{<{AJn1M#ZKC z)`w%k6F0Xo*EJGukxom!b`%<&mi0)AG0PmjmX{HFEFX-@u4S+2WYAn|dNuNKNY^h; zs>Pb}jPi@;*7=YUHEpJ~^v-p%+Ykl$P$5e%d41n-+Fey#|p6 zDyrzam=j`gyZ|!hh}7idh+XL|&doQy%fy!htx(*FimHkdUI89TYvgq+@UIsB{G;WJ z3!uj!=-q()be#OWBC}bdl&`&jBIWI+|3|b~1-=Uw1bM{;@0*1)w#l1P<^Kb8cG!`e z5awbT*FbyGk&}F9_J35z05DY!ef?Ui>E?O3%d7O}R Date: Tue, 4 Aug 2026 10:48:00 -0400 Subject: [PATCH 26/38] Open the corpus view on the verse, not on the book's table of contents The shipped corpus carries 618 token-producing lines of front matter -- title page, list of rhymes, index of first lines -- before LITTLE BO-PEEP starts the verse at line 619. Landing there made the transform look like it rewrites an index, which is the least interesting thing it does. Pinned rather than detected, and the reason is worth recording: every general rule I tried picks the wrong boundary. The index of first lines has verse-length lines (median 6 tokens), so a line-length heuristic stops at line 320, still inside the front matter. Separating an index from a stanza needs to know the book. The corpus is committed and digest-verified, so a constant is the honest way to say so, and the e2e test asserts the default page really opens on Bo-Peep. Pasted text and HuggingFace datasets open at line 1. Includes a reactivity bug the new test caught: the pager set `userPaged` before reading `win`, which made `win` fall straight back to `windowIndex` -- still 0 while the default was in force -- so the first click jumped to line 1 instead of stepping back one page. Capture, then assign. 9 e2e tests pass. Co-Authored-By: Claude Opus 5 (1M context) --- code/frontend/src/viz/lex/VacancyPanel.svelte | 51 +++++++++++++++++-- code/frontend/tests/e2e/vacancy.spec.ts | 25 +++++++++ 2 files changed, 73 insertions(+), 3 deletions(-) diff --git a/code/frontend/src/viz/lex/VacancyPanel.svelte b/code/frontend/src/viz/lex/VacancyPanel.svelte index 4451ccd..0d4ecfa 100644 --- a/code/frontend/src/viz/lex/VacancyPanel.svelte +++ b/code/frontend/src/viz/lex/VacancyPanel.svelte @@ -184,7 +184,42 @@ // ---- the corpus view (ui.md §1.2 — the doc's Figure 5, live) ------------------------- const WINDOW_LINES = 40; + + /** + * The shipped corpus opens with 618 token-producing lines of front matter — a title page, + * a list of rhymes, and an index of first lines — before `LITTLE BO-PEEP` starts the verse + * at line 619. Opening the reader on a table of contents makes the transform look like it + * is rewriting an index, which is the least interesting thing it does. + * + * Pinned rather than detected, deliberately. Every general rule tried here picks the wrong + * boundary: the index of first lines has verse-length lines (median 6 tokens), so a + * line-length heuristic lands on line 320, still inside the front matter. Separating an + * index from a stanza needs to know the book. The corpus is committed and digest-verified, + * so a constant is the honest way to say that, and `vacancy.spec.ts` asserts the default + * page really opens on Bo-Peep. + * + * It applies ONLY to the shipped corpus. Pasted text and HuggingFace datasets have no front + * matter, so they open at line 1. + */ + const SHIPPED_BODY_LINE = 619; + const SHIPPED_LINE_COUNT = 3071; + let windowIndex = $state(0); + /** Once the reader pages, their choice wins over `defaultWindow`. */ + let userPaged = $state(false); + + /** + * Page by `delta`, reading the CURRENT window before taking ownership of it. + * + * The order matters and is not obvious: setting `userPaged` first makes `win` fall straight + * back to `windowIndex`, which is still 0 while the default is in force, so the first click + * would jump to line 1 instead of stepping. Capture, then assign. + */ + function page(delta: number): void { + const from = win; + windowIndex = from + delta; + userPaged = true; + } type Seg = { text: string; cls: "gap" | "kept" | "open" | "minted" }; @@ -235,8 +270,18 @@ return out; }); const nWindows = $derived(Math.max(1, Math.ceil(wordLines.length / WINDOW_LINES))); + /** + * Where the view opens. The shipped corpus is recognised by its line count — it is + * digest-verified upstream, so this cannot be some other book of the same length — and + * opens on the verse; anything else opens at line 1. + */ + const defaultWindow = $derived( + wordLines.length === SHIPPED_LINE_COUNT ? Math.floor(SHIPPED_BODY_LINE / WINDOW_LINES) : 0, + ); /** Clamped rather than reset by an effect: a shorter corpus must not strand the view. */ - const win = $derived(Math.min(Math.max(0, windowIndex), nWindows - 1)); + const win = $derived( + Math.min(Math.max(0, userPaged ? windowIndex : defaultWindow), nWindows - 1), + ); const shown = $derived.by(() => { const start = win * WINDOW_LINES; return wordLines.slice(start, start + WINDOW_LINES).map((i) => ({ @@ -595,7 +640,7 @@ class="page" data-testid="lex-vacancy-prev" disabled={win === 0} - onclick={() => (windowIndex = win - 1)}>◀ page(-1)}>◀ token-producing lines {n(win * WINDOW_LINES + 1)}–{n( @@ -606,7 +651,7 @@ class="page" data-testid="lex-vacancy-next" disabled={win >= nWindows - 1} - onclick={() => (windowIndex = win + 1)}>▶ page(1)}>▶
diff --git a/code/frontend/tests/e2e/vacancy.spec.ts b/code/frontend/tests/e2e/vacancy.spec.ts index 8c70f78..f0f9bfe 100644 --- a/code/frontend/tests/e2e/vacancy.spec.ts +++ b/code/frontend/tests/e2e/vacancy.spec.ts @@ -305,3 +305,28 @@ test("no horizontal page overflow at 390px with the panel present", async ({ pag ); expect(overflow).toBeLessThanOrEqual(0); }); + +test("the corpus view opens on the verse, not on the book's table of contents", async ({ + page, +}) => { + const errors = watchErrors(page); + + // The shipped corpus carries 618 token-producing lines of front matter -- a title page, a + // list of rhymes, and an index of first lines -- before LITTLE BO-PEEP starts the verse at + // line 619. Landing there makes the transform look like it rewrites an index, which is the + // least interesting thing it does. No general rule separates the two honestly: the index of + // first lines has verse-length lines, so a line-length heuristic stops inside the front + // matter. The panel therefore pins the boundary, and this is the assertion that it is right. + const windowLabel = page.getByTestId("lex-vacancy-window"); + await expect(windowLabel).toContainText("601"); + + // At p = 0 the corpus is untransformed, so the real words must be on screen. + const corpus = page.getByTestId("lex-vacancy-corpus"); + await expect(corpus).toContainText("Bo-Peep"); + + // Paging back must still work, and must reach the front matter it deliberately skipped. + await page.getByTestId("lex-vacancy-prev").click(); + await expect(windowLabel).toContainText("561"); + + expect(errors, `console errors: ${errors.join(" | ")}`).toEqual([]); +}); From 6f3ec691260bea64da32c7488c2cccd02d62c5a5 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 10:48:25 -0400 Subject: [PATCH 27/38] The inconsistent control must enforce condition B too Found by Python while fixing the prosody defect: at seed 7, p=1, the stem `tak` minted the nonce `tak`, so `Taking` -> `Taking`. A token silently failed to vacate, and corpusTypesVacated came out 1921 against the consistent path's 1922. Condition B was enforced when building the map and not on the per-occurrence path. Section 7.1 says this control has no STABILITY property -- that is about a nonce being reused across occurrences, and it does not license a word quietly surviving the transform. A control whose vacancy rate is not the stated rate is not a control; the whole point of `inconsistent` is to hold the rate fixed while destroying the identity. So a per-occurrence nonce must equal neither any domain type nor the stem it replaces, under the same re-mint loop. Co-Authored-By: Claude Opus 5 (1M context) --- specs/007-vacancy-transform-field/architecture.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 51b8f89..2d07ce3 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -413,6 +413,15 @@ These were gaps, not choices. Both stacks do it this way or the golden fixture f in document order. The `#` is not a legal `WORD_RE` character, so the key can never collide with a stem. + **Condition B applies to the per-occurrence path too.** It was enforced for the map and not + for this control, and the gap is observable: at seed 7, `p = 1`, the stem `tak` minted the + nonce `tak`, so `Taking → Taking` — a token that silently failed to vacate, leaving + `corpusTypesVacated` at 1921 against the consistent path's 1922. §7.1 says this control has no + *stability* property, which is about a nonce being reused across occurrences; it does not + license a word quietly surviving the transform. A control whose vacancy rate is not actually + the stated rate is not a control. So a per-occurrence nonce must equal neither any domain type + **nor the stem it replaces**, and the same re-mint loop applies. + **The key feeds the byte stream and the uniqueness check only. The stress pattern comes from `stress(stem)`, never from `stress(key)`.** This was under-specified and the two stacks split on it: one passed the key into the minter, so the pattern became `stress("little#0") = "10"` From c115ec656c8a7bc150952f6de5d43f86693661be Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 10:59:23 -0400 Subject: [PATCH 28/38] Stop asking for q4f16: it builds a working-looking session and returns garbage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On any machine whose browser exposes a WebGPU adapter with shader-f16 — any recent Mac — the Architecture Explorer's first-choice dtype builds a session successfully and then returns logits that carry no information about the input. Nothing throws, so the exception-only fallback ladder never fired, and the deployed site has been showing per-token probabilities, traces and generations computed from those logits. Re-measured here in a real browser on the real Apple Metal-3 adapter, L-infinity gap between the first and last row of one teacher-forced pass, plus a greedy continuation: gpt2-ONNX webgpu/q4f16 0.000 ",,,,,,,,,," SmolLM2-135M-Instruct-ONNX webgpu/q4f16 0.000 all logits exactly 0, empty SmolLM2-360M-Instruct-ONNX webgpu/q4f16 0.000 all logits exactly 0, empty Qwen2.5-0.5B-Instruct webgpu/q4f16 16.469 not degenerate, but worse gpt2-ONNX webgpu/q8 91.989 " Berlin. The capital of ..." SmolLM2-135M-Instruct-ONNX webgpu/q8 36.968 " Berlin.\n\nThe capital of ..." Qwen2.5-0.5B-Instruct webgpu/q8 20.265 " Berlin. What is ..." Three of the four curated models are destroyed by it. The primary fix is therefore configuration, not detection: the ladder is now webgpu/q8 -> wasm/q8. q4 is correct too (SmolLM2-135M: 35.663, correct continuation) but is not the smaller download it was assumed to be — in every curated repo model_q4.onnx is LARGER than model_quantized.onnx (gpt2 498 vs 280 MB; SmolLM2-135M 181 vs 136; SmolLM2-360M 386 vs 363; Qwen2.5-0.5B 786 vs 512). Both rungs now read the same file, so a rejected WebGPU rung costs no second download. Because the failure is silent, "the session constructed" is not evidence that the model works. logitsSanity.ts states ONE invariant, in the spirit of the Geometry Lab's training gates: a causal LM's output must depend on its input, so the L-infinity gap between the first and last next-token distribution of a fixed 12-token probe must exceed 1e-3. All-identical rows and all-zero logits are the same failure, not two special cases. Every session is checked at load, before any number is shown; a rejected rung falls to the next and the badge NAMES the device/dtype actually in use, marking "fallback" when a rung was rejected. The unforgivable part of this defect was invisibility, not the fallback. Coverage, which is why it shipped: plain headless Chromium has no WebGPU adapter at all, so the whole e2e suite only ever exercised wasm/q8. tests/e2e/webgpu.spec.ts plus a `webgpu` Playwright project closes that on hardware — on macOS the flag that matters is --use-angle=metal, since --enable-unsafe-webgpu alone still hands back google/swiftshader. Verified to FAIL against the pre-fix code (badge "webgpu q4f16"; 2 distinct top-5 lists across 64 generated positions) and pass after (64/64 distinct). NAMED RESIDUAL GAP: GitHub-hosted runners have no GPU, so that test SKIPS in CI with a loud reason rather than passing vacuously on WASM — a green CI run does not mean the WebGPU path was checked. What CI does always verify: tests/unit/logitsSanity.test.ts (the invariant and the dtype ladder) and tests/e2e/static.spec.ts (a real session through the same gate on the WASM rung). Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/ci.yml | 13 +- code/frontend/playwright.config.ts | 37 ++++- .../src/lib/StaticRuntimeBadge.svelte | 21 ++- code/frontend/src/lib/staticClient/arch.ts | 4 +- .../src/lib/staticClient/logitsSanity.ts | 78 +++++++++ .../src/lib/staticClient/runtimeTypes.ts | 46 +++++- .../lib/staticClient/transformersRuntime.ts | 79 +++++---- code/frontend/src/viz/arch/ArchChat.svelte | 3 +- code/frontend/tests/e2e/static.spec.ts | 6 +- code/frontend/tests/e2e/webgpu.spec.ts | 150 ++++++++++++++++++ code/frontend/tests/unit/logitsSanity.test.ts | 128 +++++++++++++++ code/frontend/tests/unit/staticClient.test.ts | 3 + ...026-08-04-feature-007-vacancy-transform.md | 38 ++++- specs/003-static-pages-site/plan.md | 3 + specs/003-static-pages-site/spec.md | 5 + .../architecture.md | 5 + 16 files changed, 577 insertions(+), 42 deletions(-) create mode 100644 code/frontend/src/lib/staticClient/logitsSanity.ts create mode 100644 code/frontend/tests/e2e/webgpu.spec.ts create mode 100644 code/frontend/tests/unit/logitsSanity.test.ts diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 19a6525..5e641a0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -162,8 +162,19 @@ jobs: run: | sh ../../scripts/npm-ci-retry.sh npx playwright install --with-deps chromium - - name: e2e (both projects — chromium against the real backend, static against the built Pages bundle) + - name: e2e (all three projects — chromium against the real backend, static against the built Pages bundle, webgpu against a real adapter when the runner has one) working-directory: code/frontend + # KNOWN GAP, stated so a green tick is not read as more than it is: the + # `webgpu` project needs a WebGPU adapter, and GitHub-hosted runners have no + # GPU (the software adapter they can offer advertises no shader-f16). It + # therefore SKIPS here, printing why, instead of passing vacuously on the WASM + # rung — so THIS JOB DOES NOT VERIFY THE WEBGPU PATH. It is verified by running + # `npx playwright test --project webgpu` on a machine with a real GPU. + # What this job does always verify about that defect: the non-degeneracy + # invariant and the dtype ladder (tests/unit/logitsSanity.test.ts, in the + # frontend job) and a real session passing the same load-time gate on the WASM + # rung (tests/e2e/static.spec.ts). Do not "fix" the skip by deleting the + # project — the absence of this coverage is what let webgpu/q4f16 ship. run: npm run test:e2e - name: Upload traces on failure if: failure() diff --git a/code/frontend/playwright.config.ts b/code/frontend/playwright.config.ts index 12c9731..b40ceff 100644 --- a/code/frontend/playwright.config.ts +++ b/code/frontend/playwright.config.ts @@ -5,6 +5,11 @@ import { defineConfig, devices } from "@playwright/test"; // static — tests/e2e/static.spec.ts against the BUILT static site (`npm run // preview:static` on :4173, Pages base path, NO Python backend), proving // the GitHub Pages build stands alone. +// webgpu — tests/e2e/webgpu.spec.ts against the same static site, but launched with +// --enable-unsafe-webgpu so Chromium exposes the machine's REAL adapter. +// Without that flag headless Chromium has no adapter at all, which is how +// a broken WebGPU dtype (q4f16) shipped: the suite only ever ran WASM. +// Skips loudly where there is no adapter (e.g. Linux CI runners). // Playwright's webServer list is global (not per-project), so the servers to boot are // chosen from the --project filter on the command line: `--project static` must not // require a backend venv, and `--project chromium` must not pay for a static build. @@ -19,6 +24,21 @@ argv.forEach((a, i) => { const wants = (name: string): boolean => projectFilters.length === 0 || projectFilters.includes(name); +// Flags that make headless Chromium hand back the machine's REAL GPU adapter instead +// of SwiftShader (measured on macOS arm64 with the harness in the q4f16 investigation): +// --enable-unsafe-webgpu alone → google/swiftshader, no shader-f16 +// --enable-unsafe-webgpu --use-angle=metal → apple/metal-3, shader-f16 ✔ +// The ANGLE backend name is platform-specific, so it is chosen per platform; where no +// hardware adapter turns up, tests/e2e/webgpu.spec.ts skips loudly rather than +// quietly measuring software. +const isMac: boolean = + (globalThis as { process?: { platform?: string } }).process?.platform === "darwin"; +const WEBGPU_ARGS = [ + "--enable-unsafe-webgpu", + "--ignore-gpu-blocklist", + ...(isMac ? ["--use-angle=metal"] : ["--enable-features=Vulkan"]), +]; + export default defineConfig({ testDir: "tests/e2e", timeout: 240_000, @@ -36,7 +56,7 @@ export default defineConfig({ { name: "chromium", use: { ...devices["Desktop Chrome"], baseURL: "http://localhost:5173" }, - testIgnore: /static\.spec\.ts/, + testIgnore: /(static|webgpu)\.spec\.ts/, }, { name: "static", @@ -45,6 +65,19 @@ export default defineConfig({ use: { ...devices["Desktop Chrome"], baseURL: "http://localhost:4173" }, testMatch: /static\.spec\.ts/, }, + { + name: "webgpu", + use: { + ...devices["Desktop Chrome"], + baseURL: "http://localhost:4173", + // See WEBGPU_ARGS. The suite-wide --enable-unsafe-swiftshader is deliberately + // NOT inherited here: with it, `requestAdapter()` hands back + // google/swiftshader, and software WebGPU is exactly what this project must + // not measure. + launchOptions: { args: WEBGPU_ARGS }, + }, + testMatch: /webgpu\.spec\.ts/, + }, ], webServer: [ ...(wants("chromium") @@ -65,7 +98,7 @@ export default defineConfig({ }, ] : []), - ...(wants("static") + ...(wants("static") || wants("webgpu") ? [ { // Builds the static bundle first (same flags as the Pages deploy), then diff --git a/code/frontend/src/lib/StaticRuntimeBadge.svelte b/code/frontend/src/lib/StaticRuntimeBadge.svelte index ac6fa46..d9af5bf 100644 --- a/code/frontend/src/lib/StaticRuntimeBadge.svelte +++ b/code/frontend/src/lib/StaticRuntimeBadge.svelte @@ -5,9 +5,14 @@ import { staticExtras } from "./staticUx"; // Live status badge for the in-browser generation runtime (transformers.js): - // idle → loading → webgpu·q4f16 / wasm·q8 → (or error). Polled — the runtime + // idle → loading → webgpu·q8 / wasm·q8 → (or error). Polled — the runtime // reports a plain snapshot and loading happens inside a lazy chunk, so a light // interval is the simplest honest "live update". + // + // The device/dtype actually in use is NAMED here, and a rung the runtime rejected + // (thrown error, or the load-time non-degeneracy check) shows as "· fallback" with + // the rejected rungs in the tooltip. A user on a fallback path must be able to tell: + // the q4f16 defect was bad because it was silent, not because it fell back. const sc = staticExtras(); let info = $state(sc ? sc.staticRuntimeInfo().generation : null); @@ -20,20 +25,30 @@ }); const status = $derived(info?.status ?? "idle"); + const rejected = $derived(info?.rejected ?? []); const text = $derived( status === "ready" && info?.device && info?.dtype - ? `in-browser · ${info.device} · ${info.dtype}` + ? `in-browser · ${info.device} · ${info.dtype}${rejected.length ? " · fallback" : ""}` : status === "loading" ? "in-browser · loading model…" : status === "error" ? "in-browser runtime error" : "in-browser · model loads on first use", ); + const rejectedNote = $derived( + rejected.length + ? ` ${rejected.join(", ")} ${rejected.length === 1 ? "was" : "were"} rejected first — ` + + "either the session failed to build, or its output did not depend on its input " + + "(the load-time check); see the browser console for the exact reason." + : "", + ); const tip = $derived( status === "error" ? (info?.error ?? "the in-browser runtime failed to load") : status === "ready" - ? `generation runs locally via transformers.js (${info?.onnx_repo ?? "ONNX export"}) — real logits, no server` + ? `generation runs locally via transformers.js (${info?.onnx_repo ?? "ONNX export"}) on ` + + `${info?.device}/${info?.dtype}, which passed a load-time check that its logits ` + + `actually depend on the input — real logits, no server.${rejectedNote}` : "generation runs locally in your browser via transformers.js — the ONNX model downloads on first Generate", ); diff --git a/code/frontend/src/lib/staticClient/arch.ts b/code/frontend/src/lib/staticClient/arch.ts index d60578e..22ee5a1 100644 --- a/code/frontend/src/lib/staticClient/arch.ts +++ b/code/frontend/src/lib/staticClient/arch.ts @@ -28,8 +28,8 @@ const DEFAULT_MAX_CELLS = 4096; // ARCH_WEIGHTS_MAX_CELLS (backend config) const EXACT_CELLS_HARD_CAP = 65536; // bound the number/size of range reads const TRACE_EXPORT_MAX_CONTEXT = 64; // the exporter ran the backend default -/** Community ONNX exports for the curated models (repos verified on the Hub; - * all ship model_q4f16.onnx + a q8 "quantized" file). */ +/** Community ONNX exports for the curated models (repos verified on the Hub; all ship + * the `model_quantized.onnx` the runtime's q8 ladder loads — see transformersRuntime). */ const ONNX_REPOS: Record = { "HuggingFaceTB/SmolLM2-135M-Instruct": "onnx-community/SmolLM2-135M-Instruct-ONNX", "HuggingFaceTB/SmolLM2-360M-Instruct": "onnx-community/SmolLM2-360M-Instruct-ONNX", diff --git a/code/frontend/src/lib/staticClient/logitsSanity.ts b/code/frontend/src/lib/staticClient/logitsSanity.ts new file mode 100644 index 0000000..7d3d09c --- /dev/null +++ b/code/frontend/src/lib/staticClient/logitsSanity.ts @@ -0,0 +1,78 @@ +/** + * The non-degeneracy invariant every in-browser inference session must satisfy + * before the app is allowed to report numbers from it. + * + * WHY THIS EXISTS. The app used to ask for `q4f16` first. On any machine whose + * browser exposes a WebGPU adapter with `shader-f16`, that session BUILDS + * SUCCESSFULLY on this onnxruntime-web build and then returns logits that carry no + * information about the input at all — measured in a real browser (Chrome 150, + * Apple Metal-3): + * + * onnx-community/gpt2-ONNX webgpu/q4f16 → every row of [1,T,V] + * bit-identical; greedy decode ",,,,,,,,,," + * onnx-community/SmolLM2-135M-…-ONNX webgpu/q4f16 → every logit exactly 0; + * every NLL = ln(49152) = 10.80267 + * + * Nothing throws, so an exception-only fallback ladder is structurally incapable of + * catching it. The invariant below is what "the session works" actually means, and it + * is asserted once, at load, in the same spirit as the Geometry Lab's training gates + * (final loss, coverage uniformity, field directional entropy): a property the system + * must satisfy, checked explicitly, failing loudly. + * + * THE INVARIANT, stated once. A causal LM's output must DEPEND ON ITS INPUT: run a + * prompt of T ≥ 2 distinct tokens through one forward pass and the next-token + * distribution at the last position must differ from the one at the first position. + * A model whose rows are identical — all-zero logits being one such case, not a + * separate rule — has told you nothing, whatever its perplexity would have been. + * + * The threshold is deliberately far below any real model's separation and far above + * float noise: healthy sessions measure 20–92 nats of separation on the probe prompt + * (gpt2 webgpu/q8: 91.99; SmolLM2-135M webgpu/q8: 36.97; Qwen2.5-0.5B webgpu/q8: + * 20.27), degenerate ones measure exactly 0. + */ + +/** Minimum L∞ separation, in logit units, between the first and last position. */ +export const MIN_ROW_SEPARATION = 1e-3; + +/** + * L∞ distance between the first and last row of a flat [1, T, V] logits buffer. + * `NaN` if any compared entry is not finite — an all-NaN session is degenerate too, + * and NaN fails the `>` comparison in {@link assertNonDegenerateLogits} by itself. + */ +export function rowSeparation(logits: ArrayLike, seqLen: number, vocab: number): number { + if (seqLen < 2) { + throw new Error(`rowSeparation needs at least 2 positions, got ${seqLen}`); + } + const last = (seqLen - 1) * vocab; + let sep = 0; + for (let i = 0; i < vocab; i++) { + const a = logits[i]; + const b = logits[last + i]; + if (!Number.isFinite(a) || !Number.isFinite(b)) return NaN; + const d = Math.abs(a - b); + if (d > sep) sep = d; + } + return sep; +} + +/** + * Throw unless the session's output depends on its input. `label` names the + * device/dtype under test so the message says which configuration is broken. + */ +export function assertNonDegenerateLogits( + logits: ArrayLike, + seqLen: number, + vocab: number, + label: string, +): number { + const sep = rowSeparation(logits, seqLen, vocab); + if (!(sep > MIN_ROW_SEPARATION)) { + throw new Error( + `${label} produced degenerate logits: the next-token distribution at the last ` + + `position differs from the first by ${Number.isNaN(sep) ? "NaN" : sep.toExponential(3)} ` + + `(needs > ${MIN_ROW_SEPARATION}), i.e. the model's output does not depend on its input. ` + + `This session cannot be trusted and was rejected.`, + ); + } + return sep; +} diff --git a/code/frontend/src/lib/staticClient/runtimeTypes.ts b/code/frontend/src/lib/staticClient/runtimeTypes.ts index f405d76..e2de64b 100644 --- a/code/frontend/src/lib/staticClient/runtimeTypes.ts +++ b/code/frontend/src/lib/staticClient/runtimeTypes.ts @@ -6,13 +6,52 @@ import type { ArchGenerateBody, ArchGenerateResult, TokenizeResult } from "../dataClient"; +/** Devices the ladder in transformersRuntime may select. */ +export type RuntimeDevice = "webgpu" | "wasm"; +/** + * Quantizations the ladder may select. `q4f16` is deliberately NOT here: it builds a + * session and returns input-independent logits on WebGPU — see logitsSanity.ts. + */ +export type RuntimeDtype = "q8"; + +/** + * Every dtype the fp16-ACTIVATION defect covers. Measured in a real browser on a real + * Apple Metal-3 adapter (Chrome 150 / Chromium 148, transformers.js 4.2.0, + * onnxruntime-web 1.26.0-dev): `q4f16` and `fp16` build a session and then return + * logits identical at every position for gpt2 (greedy ",,,,,,,,,,") and identically + * ZERO for SmolLM2-135M and SmolLM2-360M (empty generation; every NLL = ln V). `q4` + * (4-bit weights, fp32 activations), `q8` and `fp32` are correct on the same adapter, + * so the defect is the fp16 activation path, not 4-bit weights. + */ +export const FP16_ACTIVATION_DTYPES = ["q4f16", "fp16"] as const; + +/** + * Load order for the in-browser runtime. Both rungs read the SAME + * `model_quantized.onnx`, so a rejected WebGPU rung costs no second download — and q8 + * is the smallest quantization verified correct here: in every curated ONNX repo + * `model_q4.onnx` is LARGER than `model_quantized.onnx` (gpt2 498 vs 280 MB; + * SmolLM2-135M 181 vs 136; SmolLM2-360M 386 vs 363; Qwen2.5-0.5B 786 vs 512), so the + * smaller `q4f16` was the only download saving on offer, and it does not work. + */ +export const RUNTIME_LADDER: readonly { device: RuntimeDevice; dtype: RuntimeDtype }[] = [ + { device: "webgpu", dtype: "q8" }, + { device: "wasm", dtype: "q8" }, +]; + export interface RuntimeGenerationInfo { status: "idle" | "loading" | "ready" | "error"; - device: "webgpu" | "wasm" | null; - dtype: "q4f16" | "q8" | null; + device: RuntimeDevice | null; + dtype: RuntimeDtype | null; model_id: string | null; // the HF model whose ONNX export is loaded onnx_repo: string | null; error: string | null; + /** + * `device/dtype` rungs that were built but REJECTED — by an exception or by the + * load-time non-degeneracy check — before the reported one was accepted. Non-empty + * means the user is on a fallback path, and the badge says so: the unforgivable + * part of the q4f16 defect was that a wrong configuration was invisible. + */ + rejected: string[]; } export interface StaticRuntimeInfo { @@ -25,7 +64,7 @@ export interface ArchRuntime { info(): RuntimeGenerationInfo; /** Live tokenization from the pinned original-repo tokenizer files. */ tokenize(modelId: string, revision: string, text: string): Promise; - /** Live generation (webgpu q4f16 → wasm q8 fallback) with real per-token probs. */ + /** Live generation (webgpu q8 → wasm q8 fallback) with real per-token probs. */ /** The ONNX mirror is resolved at `main` — see transformersRuntime's header. */ generate(body: ArchGenerateBody, onnxRepo: string): Promise; } @@ -39,4 +78,5 @@ export const IDLE_GENERATION_INFO: RuntimeGenerationInfo = { model_id: null, onnx_repo: null, error: null, + rejected: [], }; diff --git a/code/frontend/src/lib/staticClient/transformersRuntime.ts b/code/frontend/src/lib/staticClient/transformersRuntime.ts index 95b099b..71367be 100644 --- a/code/frontend/src/lib/staticClient/transformersRuntime.ts +++ b/code/frontend/src/lib/staticClient/transformersRuntime.ts @@ -7,7 +7,7 @@ * Honesty contract (FR-203): * - Tokenization uses the ORIGINAL model repo's tokenizer files at the pinned * revision from meta.json — real BPE, no vendored copies. - * - Generation runs the model's community ONNX export (webgpu/q4f16, falling + * - Generation runs the model's community ONNX export (webgpu/q8, falling * back to wasm/q8) and reports per-token probabilities computed from REAL * logits via one teacher-forced forward pass over prompt+reply — the same * quantities the backend reports (chosen-token prob under the temperature @@ -33,7 +33,8 @@ import { import type { ArchGenerateBody, ArchGenerateResult, ArchGeneratedToken, TokenizeResult } from "../dataClient"; import { computeError, invalidParamError } from "./errors"; -import { IDLE_GENERATION_INFO, type ArchRuntime, type RuntimeGenerationInfo } from "./runtimeTypes"; +import { assertNonDegenerateLogits } from "./logitsSanity"; +import { IDLE_GENERATION_INFO, RUNTIME_LADDER, type ArchRuntime, type RuntimeGenerationInfo } from "./runtimeTypes"; const MAX_NEW_TOKENS_LIMIT = 128; // ARCH_MAX_NEW_TOKENS (backend config) const TOPK = 5; @@ -77,48 +78,72 @@ async function webgpuUsable(): Promise { const adapter = (await gpu.requestAdapter()) as { features?: { has(name: string): boolean }; } | null; - // q4f16 needs f16 shaders; without them WASM/q8 is the honest fallback. + // `shader-f16` is NOT needed by the q8 path — it is kept as the marker of a + // HARDWARE adapter. Measured across Chromium configurations on this stack: the + // real Apple Metal-3 adapter advertises it, the software (SwiftShader) adapter + // does not, and plain headless Chromium has no adapter at all. Software WebGPU + // is slower than the WASM backend, so it is not worth preferring. return adapter != null && adapter.features?.has("shader-f16") === true; } catch { return false; } } +// One forward pass over a handful of tokens — the whole load-time check. +const SELF_CHECK_PROMPT = "The capital of France is Paris. The capital of Germany is"; + +/** + * The load-time correctness gate (see logitsSanity.ts for why a thrown-exception + * ladder is not enough). Throws if the freshly built session's next-token + * distribution does not depend on its input. + */ +async function selfCheck(p: TextGenerationPipeline, label: string): Promise { + const ids = p.tokenizer.encode(SELF_CHECK_PROMPT, { add_special_tokens: false }); + if (ids.length < 2) { + throw new Error(`${label}: tokenizer returned ${ids.length} tokens for the self-check prompt`); + } + const out = (await (p.model as unknown as (o: Record) => Promise<{ logits: Tensor }>)({ + input_ids: idsTensor(ids), + attention_mask: new Tensor("int64", BigInt64Array.from(ids, () => 1n), [1, ids.length]), + })) as { logits: Tensor }; + const [, seqLen, vocab] = out.logits.dims as number[]; + try { + return assertNonDegenerateLogits(out.logits.data as Float32Array, seqLen, vocab, label); + } finally { + (out.logits as unknown as { dispose?: () => void }).dispose?.(); + } +} + async function getPipeline(onnxRepo: string): Promise { if (pipelineCache?.key === onnxRepo) return pipelineCache.promise; const promise = (async () => { generationInfo = { + ...IDLE_GENERATION_INFO, status: "loading", - device: null, - dtype: null, - model_id: null, onnx_repo: onnxRepo, - error: null, - }; - const tryLoad = async (device: "webgpu" | "wasm", dtype: "q4f16" | "q8") => { - generationInfo = { ...generationInfo, status: "loading", device, dtype }; - const p = (await pipeline("text-generation", onnxRepo, { - dtype, - device, - })) as TextGenerationPipeline; - generationInfo = { ...generationInfo, status: "ready", device, dtype }; - return p; }; - if (await webgpuUsable()) { + const skipWebgpu = !(await webgpuUsable()); + const rejected: string[] = []; + let lastError = ""; + for (const { device, dtype } of RUNTIME_LADDER) { + const label = `${device}/${dtype}`; + if (device === "webgpu" && skipWebgpu) continue; + generationInfo = { ...generationInfo, status: "loading", device, dtype, rejected: [...rejected] }; try { - return await tryLoad("webgpu", "q4f16"); + const p = (await pipeline("text-generation", onnxRepo, { dtype, device })) as TextGenerationPipeline; + // "The session constructed" is not evidence that the model works. + await selfCheck(p, `${onnxRepo} on ${label}`); + generationInfo = { ...generationInfo, status: "ready", device, dtype, rejected: [...rejected] }; + return p; } catch (e) { - // Degradation ladder: WebGPU failed → retry on WASM before giving up. - console.warn(`[staticClient] webgpu/q4f16 load failed for ${onnxRepo}; falling back to wasm/q8:`, e); + lastError = e instanceof Error ? e.message : String(e); + rejected.push(label); + console.warn(`[staticClient] rejected ${label} for ${onnxRepo}: ${lastError}`); } } - try { - return await tryLoad("wasm", "q8"); - } catch (e) { - const msg = e instanceof Error ? e.message : String(e); - generationInfo = { ...generationInfo, status: "error", error: msg }; - throw computeError(`Could not load the in-browser model ${onnxRepo}: ${msg}`); - } + const msg = lastError || "no usable device/dtype for this browser"; + generationInfo = { ...generationInfo, status: "error", error: msg, rejected: [...rejected] }; + throw computeError(`Could not load the in-browser model ${onnxRepo}: ${msg}`); })(); pipelineCache = { key: onnxRepo, promise }; promise.catch(() => { diff --git a/code/frontend/src/viz/arch/ArchChat.svelte b/code/frontend/src/viz/arch/ArchChat.svelte index 37128cd..df95c88 100644 --- a/code/frontend/src/viz/arch/ArchChat.svelte +++ b/code/frontend/src/viz/arch/ArchChat.svelte @@ -112,7 +112,8 @@ diff --git a/code/frontend/src/viz/lex/VacancyPanel.svelte b/code/frontend/src/viz/lex/VacancyPanel.svelte index cfd6b4e..2ad0dfa 100644 --- a/code/frontend/src/viz/lex/VacancyPanel.svelte +++ b/code/frontend/src/viz/lex/VacancyPanel.svelte @@ -31,6 +31,13 @@ * * THAT THE NULL IS THE FINDING (§1.6) — an exact zero drawn as a flat line looks * like a broken chart. It is stated as the result it is, in words, next to the * measurement. + * * WHAT THE ENGINE REFUSES, AND WHY (§5.2a) — `mint = "swap"` draws its replacements + * from the domain, so it is injective only at `p ∈ {0, 1}`; at an intermediate `p` + * the mapped vocabulary is refused with a typed error. That error is rendered here + * VERBATIM and nothing is computed in its place: the `p` slider is never clamped, + * no fallback to `nonce` is performed, and the injectivity counter beside the mint + * control reports the collisions as a measured number at the current `p` — so the + * reader sees the theorem rather than a control that quietly disagrees with them. * * PROSODY HONESTY (FR-712 / SC-708): the stress table is rule-seeded and unverified, so * no prosody statistic is ever rendered without the three-way stress split beside it and @@ -60,6 +67,7 @@ effectiveKeepSet, isEligible, stemAndSuffix, + transformWord, vacancyStats, vacancyU, type VacancyMap, @@ -87,6 +95,13 @@ revealAfter: number; /** "nonce" | "swap" (contract §8.3). */ mint: string; + /** + * The engine's own sentence for a configuration it declines, or `""`. The tab does not + * paraphrase it and does not compute anything in its place — see the refusal card below, + * and `LexiconLab`'s `vocabResult` for why substituting a rebuilt budget would be worse + * than showing nothing. + */ + refusal: string; onP: (v: number) => void; onSeed: (v: number) => void; onCondition: (v: string) => void; @@ -104,6 +119,7 @@ condition, revealAfter, mint, + refusal, onP, onSeed, onCondition, @@ -136,15 +152,14 @@ { id: "nonce", label: "nonce", - title: "Replace the stem with a phonotactically legal invented form.", - enabled: true, + title: + "Replace the stem with a phonotactically legal invented form. Its images are outside the domain, so the map is injective at every p.", }, { id: "swap", label: "swap", title: - "Contract §8.3: draw a real, frequency-rank-matched English word instead. Both engines implement it; this control is not wired to them yet.", - enabled: false, + "Draw a real, frequency-rank-matched English word instead (contract §8.3) — the control that separates wrong content from unknown form. Its images ARE domain words, so it is injective only at p = 0 or p = 1 (§5.2a).", }, ]; @@ -181,6 +196,31 @@ const pct = (x: number) => `${(x * 100).toFixed(1)}%`; const n = (x: number) => x.toLocaleString(); + // ---- injectivity at the CURRENT p, measured rather than claimed (contract §5.2a) ------ + + /** + * Push every type of the map's domain through the transform at the current `p` and count + * how many distinct surface forms come back. `|domain| − |images|` is the number of rows + * two source types would have to share, so it is 0 exactly when the relabelling is a + * relabelling. + * + * This is the measurement, not a restatement of the flag: `map.injectiveAtEveryP` says + * which regime a map is in, and this says what the regime costs HERE, at the `p` on the + * slider. Under `nonce` it is 0 at every `p` — condition B keeps every image out of the + * domain — and under `swap` it is 0 at the two endpoints and positive in between, which is + * §5.2a's theorem happening in front of the reader rather than being asserted at them. + * + * Only defined in the mapped condition, because `transformWord` is the order-free path: the + * inconsistent control and partial reveal need an occurrence index and rebuild the budget + * from the vacated corpus anyway, so injectivity of a type map is not what they claim. + */ + const images = $derived.by(() => { + if (!map || !mapped) return null; + const seen = new Set(); + for (const t of map.domain) seen.add(transformWord(t, map, params).toLowerCase()); + return { types: map.domain.size, distinct: seen.size, lost: map.domain.size - seen.size }; + }); + // ---- the corpus view (ui.md §1.2 — the doc's Figure 5, live) ------------------------- const WINDOW_LINES = 40; @@ -615,26 +655,85 @@ tabindex={mint === m.id ? 0 : -1} data-value={m.id} class:active={mint === m.id} - disabled={!m.enabled} title={m.title} - onclick={() => m.enabled && onMint(m.id)}>{m.label} onMint(m.id)}>{m.label} {/each} -

- swap — draw a real, frequency-rank-matched English word instead of an invented one - (contract §8.3) — is the control that separates wrong content from - unknown form for the pretrained arm. Both engines now implement it, and they - agree word for word; this panel is not wired to them yet, so it is offered - disabled rather than silently falling back to nonce. One thing it will - have to say when it is: a swap map is injective only at p = 0 or p = 1. Its - replacements are real corpus words, so at an intermediate p a vacated word can land - on one that has not moved — and contract §5.2a proves no stable swap avoids that. - The engines refuse the mapped vocabulary there rather than duplicate a row. -

+
+

+ nonce invents the replacement. swap draws a real English word instead — + from this corpus's own open-class types, matched on frequency rank (contract §8.3). The + passage is left exactly as nonsensical either way, but under swap every form is a + word the reader, and a pretrained tokenizer, already knows. That difference is the whole + control: it separates the cost of wrong content from the cost of an + unknown form, which is the measurement the + makes on a model that has forms it knows. +

+

+ A swap map is injective only at p = 0 and p = 1. That is a + theorem, not a rough edge. + Swap's replacements are drawn from the domain, so at an intermediate + p a vacated word can land on a word that has not been vacated yet, and two + source types share one row. Contract §5.2a proves that no non-trivial map can avoid this: + one that is stable in p and whose images are domain words is injective at + every p only if it is the identity. So the engine refuses the mapped + vocabulary in between rather than handing the trainer a vocabulary with a duplicated row, + and this panel shows you the refusal instead of quietly moving the slider for you. Full + vacancy — p = 1, where swap is a bijection of the domain — is the + configuration the pretrained arm actually measures at, so nothing the control exists for + is lost. +

+ {#if images} +

0} + data-testid="lex-vacancy-injectivity" + > + Measured just now at p = {params.p.toFixed(2)}, {mint}: + {n(images.distinct)} distinct images from {n(images.types)} domain types — + {n(images.lost)} + lost image {images.lost === 1 ? "slot" : "slots"}. + {#if images.lost === 0} + Every type still has a row of its own, so the relabelling is a relabelling. + {:else} + Each lost slot is two source types on one row — exactly what §5.2a says must happen + here, counted rather than described. + {/if} +

+ {/if} +
+ + {#if refusal} +
+

+ Refused, in the engine's own words: + {refusal} +

+

+ Nothing has been substituted for it: there is no vocabulary, so the budget counters, the + trainer and the invariance check below have nothing to report — which is the honest state + of this configuration, not a rendering failure. Rebuilding the budget from the vacated + corpus would produce numbers, but they would be a different measurement (contract §7.2 + gives that rule to the control conditions) wearing the mapped condition's label. +

+
+ + + + +
+
+ {/if}
@@ -764,12 +863,28 @@
map - - {stats.bijective ? "injective ✓" : "NOT injective"} + + {#if !stats.bijective} + NOT injective + {:else if map?.injectiveAtEveryP} + injective ✓ + {:else} + injective at p = 0, 1 + {/if} - verified over assembled surface forms at every p, not assumed · - {n(stats.remintRounds)} re-mint {stats.remintRounds === 1 ? "round" : "rounds"} · + {#if map?.injectiveAtEveryP} + verified over assembled surface forms at every p, not assumed + {:else} + verified at full vacancy — swap's replacements are domain words, so contract + §5.2a bounds injectivity to p = 0 and p = 1, and the count + beside the mint control says what it costs in between + {/if} + · {n(stats.remintRounds)} re-mint {stats.remintRounds === 1 ? "round" : "rounds"} · image {n(stats.imageSize)}
@@ -1032,6 +1147,19 @@ collision exists only at intermediate p, which is exactly where a reader sweeping this slider spends their time.

+

+ The swap control cannot have that property, and the argument is three lines. Suppose + a map is stable in p and every image is a domain word — both true of swap by + construction. If it were injective at every p it would be a bijection of the + domain onto itself, and would therefore carry each vacated set + V_p onto itself; but the V_p grow one stem family at a time as + p rises, so such a bijection fixes every family, i.e. it is the identity. + Hence no non-trivial swap is injective in between, and the counter above reports how many + rows collide at the p you are on. At p = 1 the un-vacated set is + exactly the ineligible types, swap is a bijection of the domain, and the theorem holds for + it exactly as it does for nonce — which is the check that the control is + implemented correctly, and the configuration the pretrained arm scores at. +

What it does not prove: that form is worthless in general. It proves that a word-level model whose entire lexicon is a table of embedding rows has no channel through @@ -1208,6 +1336,61 @@ .note b { color: var(--text); } + .mintbox { + display: flex; + flex-direction: column; + gap: 0.35rem; + } + /* The measured injectivity line: green while every type keeps its own row, amber the + moment two share one. It is a measurement, so it is styled as a verdict rather than as + a warning — under `swap` at an intermediate `p` the non-zero IS the expected result. */ + .regime { + margin: 0; + align-self: flex-start; + font-size: 0.72rem; + line-height: 1.55; + font-family: var(--mono); + color: var(--good); + background: rgba(91, 224, 176, 0.08); + border: 1px solid rgba(91, 224, 176, 0.28); + border-radius: 9px; + padding: 0.35rem 0.6rem; + max-width: 62rem; + } + .regime.broken { + color: #ffb454; + background: rgba(255, 180, 84, 0.09); + border-color: rgba(255, 180, 84, 0.3); + } + .regime code, + .mintbox code { + color: inherit; + font-family: var(--mono); + } + .refusal { + display: flex; + flex-direction: column; + gap: 0.45rem; + background: rgba(255, 180, 84, 0.09); + border: 1px solid rgba(255, 180, 84, 0.3); + border-radius: 10px; + padding: 0.6rem 0.75rem; + font-size: 0.74rem; + line-height: 1.6; + color: var(--text-dim); + max-width: 62rem; + } + .refusal p { + margin: 0; + } + .refusal b { + color: #ffb454; + } + .refusal .msg span { + font-family: var(--mono); + font-size: 0.94em; + color: var(--text); + } /* ---- the corpus view ---------------------------------------------------------- */ .corpus-head { diff --git a/code/frontend/tests/e2e/docs.spec.ts b/code/frontend/tests/e2e/docs.spec.ts index cba6f23..ed4336e 100644 --- a/code/frontend/tests/e2e/docs.spec.ts +++ b/code/frontend/tests/e2e/docs.spec.ts @@ -1,5 +1,11 @@ +import { readFileSync } from "node:fs"; +import path from "node:path"; +import { fileURLToPath } from "node:url"; + import { expect, test, type Page } from "@playwright/test"; +const SRC = path.join(path.dirname(fileURLToPath(import.meta.url)), "..", "..", "src"); + // The Info tab and the in-tab explainers, against the REAL backend. // // The point of this file is not "does the text render" — it is that the documentation @@ -23,6 +29,7 @@ test.describe("Info tab", () => { "The Architecture Explorer", "The Geometry Lab", "The Lexicon Lab", + "The vacancy transform", "What's real, and where it runs", "Known limits", "Source & references", @@ -282,3 +289,141 @@ test.describe("Lexicon Lab documentation", () => { await expect(info).toContainText("10607"); }); }); + +test.describe("vacancy transform documentation", () => { + // Feature 007's numbers, pinned by feature 005's rule: read the fact from the running + // system — the real transform, the real panel, the real constant in the source — and then + // assert the sentence still agrees with it. Nothing in the Info tab's vacancy section is a + // number someone typed and nobody checks again. + // + // The source document's own prosody figures are ITS numbers on a corpus we do not have, + // and are transcribed nowhere; every figure asserted here is measured on Mother Goose. + + const en = (x: number): string => x.toLocaleString("en-US"); + + test("the documented counts are what the transform really produces", async ({ + page, + request, + }) => { + // p = 1, seed 0 on the shipped corpus — the configuration the prose quotes. + const res = await request.post("/api/lex/vacancy", { data: { p: 1, seed: 0 } }); + expect(res.ok(), await res.text()).toBe(true); + const body = await res.json(); + const s = body.vacancy_stats; + + // Full vacancy means these identities hold; the sentence about 8,202 tokens is only + // true while they do, so they are asserted rather than assumed. + expect(s.stemsVacated).toBe(s.stemsTotal); + expect(s.corpusTypesVacated).toBe(s.corpusTypesEligible); + expect(body.bijective).toBe(true); + + await openInfo(page); + const info = page.getByTestId("info-view"); + // Domain scope governs the map; corpus scope is what a reader can see in the text. The + // prose states both, labelled — an unprefixed "types" is forbidden (contract §10). + for (const value of [ + s.domainTypesTotal, // 2,233 = corpus types ∪ the FULL Dolch list + s.corpusTypesTotal, // 2,211 of them are the corpus's own + s.domainTypesEligible, // 1,944 eligible — also the size of the swap pool + s.stemsTotal, // 1,680 distinct stems, i.e. the size of the map + s.tokensVacated, // 8,202 rewritten word occurrences at p = 1 + s.tokensTotal, // out of 16,000 + ]) { + await expect(info, `the prose no longer states ${en(value)}`).toContainText(en(value)); + } + + // The honesty number beside every prosody statistic: what fraction of this corpus's + // tokens the unverified hand table actually covers. + await expect(info).toContainText(`${(s.stressFromTableBefore * 100).toFixed(1)}%`); + }); + + test("the documented swap collisions are the ones the engine measures", async ({ page }) => { + // Contract §5.2a as a number rather than as an adjective. `swap` draws its replacements + // FROM the domain, so at an intermediate p a vacated type lands on one that has not + // moved. The prose states the measured triple; this reads it off the running panel, so a + // change to the map, the pool or the tie rule fails here instead of quietly making the + // documentation wrong. + await page.goto("/#lexicon"); + await expect(page.getByTestId("lex-vacancy")).toBeVisible({ timeout: 30_000 }); + await page + .getByTestId("lex-vacancy-mint") + .getByRole("radio", { name: "swap", exact: true }) + .click(); + + const slider = page.getByTestId("lex-vacancy-p"); + const lost = page.getByTestId("lex-vacancy-lost-slots"); + const measured: string[] = []; + for (const p of ["0.25", "0.5", "0.75"]) { + await slider.fill(p); + await slider.dispatchEvent("input"); + await expect(page.getByTestId("lex-vacancy")).toContainText(`p = ${Number(p).toFixed(2)}`); + // The refusal is SHOWN, not worked around: no clamped p, no silent fall back to nonce. + await expect(page.getByTestId("lex-vacancy-refusal")).toBeVisible(); + await expect(page.getByTestId("lex-vacancy-refusal-message")).toContainText("§5.2a"); + measured.push((await lost.innerText()).trim()); + } + + // …and 0 at full vacancy, where swap IS a bijection of the domain and the invariance + // theorem holds for it exactly as it does for nonce. + await slider.fill("1"); + await slider.dispatchEvent("input"); + await expect(lost).toHaveText("0"); + await expect(page.getByTestId("lex-vacancy-refusal")).toHaveCount(0); + await expect(page.getByTestId("lex-vacancy-invariance-verdict")).toHaveText(/identical/i); + + await openInfo(page); + await expect(page.getByTestId("info-view")).toContainText(measured.join(" / ")); + }); + + test("the documented stress-table size is the table the engine actually has", async ({ + page, + }) => { + await page.goto("/#lexicon"); + await expect(page.getByTestId("lex-vacancy")).toBeVisible({ timeout: 30_000 }); + const honesty = await page.getByTestId("lex-vacancy-prosody-honesty").innerText(); + const entries = honesty.match(/(\d+) hand-set entries/)?.[1]; + expect(entries, `no entry count in: ${honesty}`).toBeDefined(); + + await openInfo(page); + await expect(page.getByTestId("info-view")).toContainText(`hand table of ${entries} entries`); + }); + + test("the documented static-mode limits are the constants the static client enforces", async ({ + page, + }) => { + // These two live in the static client rather than behind an endpoint, so the fact is + // read from the source that enforces it. A stated ± that was never measured is a + // fabricated error bar — which is exactly why the number must not be retyped. + const src = readFileSync(path.join(SRC, "lib", "staticClient", "arch.ts"), "utf8"); + const uncertainty = src.match(/VACANCY_Q8_UNCERTAINTY_NATS = ([\d.]+)/)?.[1]; + const floor = src.match(/VACANCY_MIN_POOLED_PRESERVED = (\d+)/)?.[1]; + expect(uncertainty, "VACANCY_Q8_UNCERTAINTY_NATS is gone or renamed").toBeDefined(); + expect(floor, "VACANCY_MIN_POOLED_PRESERVED is gone or renamed").toBeDefined(); + + await openInfo(page); + const info = page.getByTestId("info-view"); + await expect(info).toContainText(`±${uncertainty} nats`); + await expect(info).toContainText(`${floor} preserved tokens`); + }); + + test("the caveats that make the numbers readable are all present", async ({ page }) => { + // Each of these is a claim the instrument would be dishonest without, so each is + // asserted rather than left to survive an edit by luck. + await openInfo(page); + const info = page.getByTestId("info-view"); + // The decomposition, and that its second term is a BOUND rather than a measurement. + await expect(info).toContainText("the cost of wrong content"); + await expect(info).toContainText("the cost of unknown form"); + await expect(info).toContainText(/upper bound/i); + // What the static build refuses, by name. + await expect(info).toContainText("nonce − swap"); + await expect(info).toContainText(/Per-passage rows: refused/i); + await expect(info).toContainText(/dtype without a measured bound: refused/i); + // The coverage gap that belongs in the documentation rather than in a commit message. + // `\s+` rather than a space: a regex matcher sees the raw textContent, newlines and + // source indentation included, so a rewrapped paragraph must not fail this. + await expect(info).toContainText(/CI only ever\s+exercises the WASM rung/i); + // The exact zero, framed as the finding rather than as a missing curve. + await expect(info).toContainText(/exact zero is the result/i); + }); +}); diff --git a/code/frontend/tests/e2e/vacancy.spec.ts b/code/frontend/tests/e2e/vacancy.spec.ts index f0f9bfe..668118d 100644 --- a/code/frontend/tests/e2e/vacancy.spec.ts +++ b/code/frontend/tests/e2e/vacancy.spec.ts @@ -295,6 +295,69 @@ test("the tab trains on the VACATED corpus, at a non-default budget (FR-713/FR-7 expect(errors, `client-side errors: ${errors.join(" | ")}`).toEqual([]); }); +test("the swap control runs, and refuses the p it cannot support (FR-719a, §5.2a)", async ({ + page, +}) => { + const errors = watchErrors(page); + const corpus = page.getByTestId("lex-vacancy-corpus"); + const lost = page.getByTestId("lex-vacancy-lost-slots"); + const mint = page.getByTestId("lex-vacancy-mint"); + + // The control is live, not decoration: switching it rewrites the corpus with real English + // words drawn by frequency rank instead of invented ones. + await setP(page, "1"); + const withNonce = await corpus.innerText(); + await expect(lost).toHaveText("0"); + await mint.getByRole("radio", { name: "swap", exact: true }).click(); + await expect(mint.getByRole("radio", { name: "swap", exact: true })).toHaveAttribute( + "aria-checked", + "true", + ); + const withSwap = await corpus.innerText(); + expect(withSwap).not.toBe(withNonce); + + // At FULL vacancy swap is a bijection of the domain, so the theorem holds for it exactly + // as it does for nonce — that is the check that the control is implemented correctly. + await expect(lost).toHaveText("0"); + await expect(page.getByTestId("lex-vacancy-invariance-verdict")).toHaveText(/identical/i); + await expect(page.getByTestId("lex-vacancy-refusal")).toHaveCount(0); + + // In between it CANNOT be injective (contract §5.2a). The panel must show the engine's + // refusal and the measured cost — never a clamped p, never a silent nonce map. + await setP(page, "0.5"); + const refusal = page.getByTestId("lex-vacancy-refusal"); + await expect(refusal).toBeVisible(); + await expect(page.getByTestId("lex-vacancy-refusal-message")).toContainText("§5.2a"); + await expect(page.getByTestId("lex-vacancy-refusal-message")).toContainText("swap"); + expect(Number((await lost.innerText()).replace(/[^\d]/g, ""))).toBeGreaterThan(0); + // The slider really is still where the reader put it, and nothing was computed in place + // of the refused vocabulary. + await expect(page.getByTestId("lex-vacancy")).toContainText("p = 0.50"); + await expect(mint.getByRole("radio", { name: "swap", exact: true })).toHaveAttribute( + "aria-checked", + "true", + ); + await expect(page.getByTestId("lex-vacancy-invariance")).toHaveCount(0); + await expect(page.getByTestId("lex-vacancy-demo-run")).toBeDisabled(); + + // The way out is offered explicitly and works. + await page.getByTestId("lex-vacancy-refusal-p1").click(); + await expect(refusal).toHaveCount(0); + await expect(page.getByTestId("lex-vacancy")).toContainText("p = 1.00"); + await expect(page.getByTestId("lex-vacancy-invariance-verdict")).toHaveText(/identical/i); + + // The inconsistent control is refused under swap for a countable reason: it needs a fresh + // type per occurrence and the corpus has no supply of real words at that rate. + await page + .getByTestId("lex-vacancy-condition") + .getByRole("radio", { name: "inconsistent", exact: true }) + .click(); + await expect(refusal).toBeVisible(); + await expect(page.getByTestId("lex-vacancy-refusal-message")).toContainText(/consistent/); + + expect(errors, `client-side errors: ${errors.join(" | ")}`).toEqual([]); +}); + test("no horizontal page overflow at 390px with the panel present", async ({ page }) => { await page.setViewportSize({ width: 390, height: 844 }); await page.goto(`/${LEX}`); diff --git a/docs/screenshots/feature-007/info-vacancy-section.png b/docs/screenshots/feature-007/info-vacancy-section.png new file mode 100644 index 0000000000000000000000000000000000000000..9c0e204a417a2e972210d9c175e0e28d8d2424ac GIT binary patch literal 887910 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
Z zZ=-d2sS3GSJ>2)b9N-2+zz*{f%H4VBDt4>Xlk(p#KTKri#eG(@F0Q<)%a-x`;EZJ> z)%?P;)=7T1jM22`b=fvO3NOp?K;^bahr7v2yy4V!A1f^_eSINwb9JCOLPkc$-u~CD z{p;3;Jxi~I_@8RpR~KF`%tP0L4^BXUdsj$w*>c6Nk&)@8mMAwM285ClS77hphgElU zG(MBgNdM5m?@Uq~m!02a&tyC~CwIaGE4JGjZD6x=e$g^py%qTx;%6P-rj=5$za(S! z;+>h>?HXYyd+~nOZJD;p2bPnU?Lw~W$V$H48{CwXQyPsOsMaA*orq3!wMsGk-2pKa zG{Od%6gY``9ZfG#HlPAe7RIZGTxt>AE=Ej8Kd++5=h}?BjzgtCh0A>~!f1v2{GJ}+ z9fBV?GQ6fz8Rzd~4X!~VP1~X?E1=D?YcFHciAY+nA()0g;{(lwXJ5*QaJFBa(yP8? zfcj)v%WTRzT8;>d`kL&Qdfg>5>m8ucCqgqk%(uLzb@JJ1!&_^y)tQuarG(@&3(*h0 zI*cpql29OLx9FCPP$KJz1oG#K7!i+;mr~Tie5XGgC2zxZadw4)L-wdPZfIlN4QJeo zAc)Glzp6}j^m{io5)}zIsJSHSj79eAB_m&haz^X6wX1IB{$)V36gMf-Oz9v~q zi8BXB<_zIZM>5ki0e1q$3b_rn<6s(Rvtt=Bwp!ASV^`5RvTyT>RX@tH-CK6OaJ$=a z!V;=XaQ(}2UfNWkeSlJc57`_)6mx%O=YW}VG>spgU#Q`$F-J+soaAi1XK~&oikxl# zSA&Vg#@7W>C107D{Od@Y^t%J5{dA(Kl1?i0Fl24TZl_sZG2L8Ai*e8C-wEM%c+cmG zw~;PPXD(rp!7Udo&i`)o)RhWSu!9F>Nn;|01j#g(&(fCS_h&*6sB z`9)wpij%7g$yaKDkD
o4aNKogK4 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

A5EbZ}&8%rw_aQXj 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

E=buWVzP3mtLjDaE0%d2WE7#igqEK~!X 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≠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%0DU2EX~PDz3`i`B3Q5*FDnZk$8XWG~ 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 Dp9s=k literal 0 HcmV?d00001 diff --git a/docs/screenshots/feature-007/vacancy-swap-full.png b/docs/screenshots/feature-007/vacancy-swap-full.png new file mode 100644 index 0000000000000000000000000000000000000000..a868b86e04840e79d79cd4d88e090670c7319939 GIT binary patch literal 539102 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 Tn=kdaiUl*)A`(zxq8iI-Q`~wxp)EHYWDmn6G~1 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

)SrPaOKKV4x_@Z3q%f?7rs8+C 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�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 >HYzhiqhi-_j`=f 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

`ibjJB!hU{zQoD4XPmkk{h?o@d(Q(cmyDzvQ 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 Y^vI#Sk)4naz%yv7idqWgau&h=1A|KtiU0rr literal 0 HcmV?d00001 diff --git a/docs/screenshots/feature-007/vacancy-swap-refusal.png b/docs/screenshots/feature-007/vacancy-swap-refusal.png new file mode 100644 index 0000000000000000000000000000000000000000..733109128f0529ea1b052596e39f721234dd08d9 GIT binary patch literal 569964 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 z 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

`: the T4 2×2 with the vacancy cell marked, the transform's +definition (with `u` as an equation), nesting + stability and the four properties the source +implementation claims and breaks, the invariance theorem with §7.4's framing (the exact zero IS +the finding), the swap decomposition with "cost of unknown form" stated as an UPPER BOUND, the +stress table's real status, and a by-name list of what the static build refuses plus the WebGPU +/ CI coverage gap. `#real`, `#limits` and `#refs` updated (Gutenberg #12 — *Through the +Looking-Glass* — added; link checked). + +**Every number is pinned** in `tests/e2e/docs.spec.ts` (5 new tests): the counts come from a live +`POST /api/lex/vacancy` at p = 1 (2,233 / 2,211 / 1,944 / 1,680 / 8,202 / 16,000 and the 5.1% +stress-table coverage), the swap collisions are read off the running panel, the stress-table size +is read off the panel's own honesty line, and the static-mode ±0.2 nats / 700-token floor are +regex'd out of `staticClient/arch.ts`. Nothing in the section is a number a human retyped. + +Note for anyone extending this: the pretrained arm's measured deltas are deliberately NOT quoted +in the Info tab. They depend on model, passage set and dtype, and the only honest pin would be a +real Qwen run per CI job. The panel reports them from the run the reader triggers. + ## Status ### Contract defects found by BUILDING it (13, not one of which I caught by re-reading) @@ -186,7 +232,8 @@ consistently wrong. - [ ] Lexicon Lab vacancy panel - [ ] API routes + static client - [ ] Pretrained arm -- [ ] Docs (Info tab + in-tab prose) +- [x] Docs (Info tab + in-tab prose) — `#vacancy` section, `#real`/`#limits`/`#refs` updated, + the swap control enabled in the Lexicon Lab - [ ] Full suite, deploy, live verification ## Standing constraints (from CLAUDE.md) From 904921ac324f9dbe626af783f41328e4b741eb25 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 12:40:29 -0400 Subject: [PATCH 37/38] Notes: CI's HuggingFace rate limiting, and the two durable fixes Third occurrence in two sessions. The export refused to publish because the Hub 429'd through all five retries and `main` never resolved to a commit sha -- which is the guard behind issue #5 working, not a bug. Re-running clears it, but the recurrence is the point. Two fixes worth doing: an HF_TOKEN repository secret (needs the owner; CI is unauthenticated and rate-limited hard), and pinning the curated models to explicit commit shas, which removes the main->sha resolution from the build path entirely and does not need the owner. Co-Authored-By: Claude Opus 5 (1M context) --- ...2026-08-04-feature-007-vacancy-transform.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/notes/2026-08-04-feature-007-vacancy-transform.md b/notes/2026-08-04-feature-007-vacancy-transform.md index 6469073..245766d 100644 --- a/notes/2026-08-04-feature-007-vacancy-transform.md +++ b/notes/2026-08-04-feature-007-vacancy-transform.md @@ -198,6 +198,24 @@ Note for anyone extending this: the pretrained arm's measured deltas are deliber in the Info tab. They depend on model, passage set and dtype, and the only honest pin would be a real Qwen run per CI job. The panel reports them from the run the reader triggers. +## CI: HuggingFace rate limiting, third occurrence in two sessions + +Run 30929570326 failed in `Export static assets`. **Not our code.** The Hub returned 429 through +all five retries on `get_safetensors_metadata` and `model_info`, so the export refused: + +> `gpt2: revision did not resolve to a commit sha (got 'main'). The HuggingFace API is probably +> rate-limiting or down — rerun the export rather than publishing unpinned weight URLs.` + +That refusal is correct — it is the guard behind issue #5, and publishing a build whose weight +URLs point at `main` rather than a pinned sha is exactly what it exists to prevent. Re-running +succeeds, but this is now the third occurrence, so the two durable fixes are worth doing: + +1. **An `HF_TOKEN` repository secret.** Needs the repo owner; CI is unauthenticated today and is + rate-limited hard. This is the robust fix. +2. **Pin the curated models to explicit commit shas** (issue #5). Removes the `main → sha` + resolution from the build path entirely, so a `model_info` 429 cannot block a build. Does not + need the owner, and shrinks the API surface even once a token exists. + ## Status ### Contract defects found by BUILDING it (13, not one of which I caught by re-reading) From ea9cd56e91df567caa95ef1b34a5590d12fe4349 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 14:35:07 -0400 Subject: [PATCH 38/38] Actually use the HF_TOKEN secret: no workflow referenced it The secret was added to the repository but neither workflow passed it to the environment, so it was doing nothing. Both now export it at the workflow level. Verified rather than assumed: huggingface_hub 1.19.0's get_token() returns the environment value when HF_TOKEN is set and None when it is not, so both `huggingface_hub` and `transformers` pick it up with no code change. Optional by design -- forks and fork PRs get an empty string, which the Hub treats as anonymous, i.e. exactly today's behaviour with today's retries. Nothing breaks without it; it is only more likely to succeed. This matters most in the Pages job, which runs the real backend as a build tool and resolves every curated model's revision to a commit sha. On a 429 that resolution fails and export_static_assets.py REFUSES to publish rather than ship weight URLs pointing at a moving `main` (issue #5) -- so an unauthenticated rate limit does not degrade the deploy, it blocks it. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/ci.yml | 15 +++++++++++++++ .github/workflows/pages.yml | 8 ++++++++ 2 files changed, 23 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5e641a0..eae4907 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -17,6 +17,21 @@ concurrency: env: HF_HUB_DISABLE_TELEMETRY: "1" + # Authenticates every Hub call in this workflow. `huggingface_hub` and + # `transformers` both read HF_TOKEN from the environment, so nothing in the code + # needs to know about it. + # + # Why it is here: unauthenticated CI gets rate-limited hard, and three builds + # across two sessions died on 429s. The failure is not cosmetic — when + # `model_info` cannot resolve a revision to a commit sha, `export_static_assets.py` + # REFUSES to publish rather than emit weight URLs pinned to a moving `main` + # (issue #5). That refusal is correct, so the fix belongs here rather than in a + # looser guard. + # + # The secret is optional by design: forks and PRs from forks get an empty string, + # which `huggingface_hub` treats as anonymous — exactly today's behaviour, with + # today's retries. Nothing breaks without it; it is only more likely to succeed. + HF_TOKEN: ${{ secrets.HF_TOKEN }} jobs: backend: diff --git a/.github/workflows/pages.yml b/.github/workflows/pages.yml index c3244f4..81d6a93 100644 --- a/.github/workflows/pages.yml +++ b/.github/workflows/pages.yml @@ -20,6 +20,14 @@ concurrency: env: HF_HUB_DISABLE_TELEMETRY: "1" + # Read by `huggingface_hub` and `transformers` directly; no code change needed. + # This job is the one that most needs it: it runs the REAL backend as a build tool + # and resolves every curated model's revision to a commit sha. On a 429 that + # resolution fails, and `export_static_assets.py` refuses to publish rather than + # ship weight URLs pointing at a moving `main` (issue #5) — so an unauthenticated + # rate limit does not degrade the deploy, it blocks it. Optional: absent, the + # value is empty and the Hub is called anonymously, exactly as before. + HF_TOKEN: ${{ secrets.HF_TOKEN }} jobs: build-and-deploy:

TGLcLzr_(9<^$;dE7XWhbEIdiQ<` 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%0A>YoXgSF8UhG4&n*x>1i>AdK-ry)Qsp@r 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 Ih->tJ08vsZXaE2J literal 0 HcmV?d00001 diff --git a/notes/2026-08-04-feature-007-vacancy-transform.md b/notes/2026-08-04-feature-007-vacancy-transform.md index 1171dc0..6469073 100644 --- a/notes/2026-08-04-feature-007-vacancy-transform.md +++ b/notes/2026-08-04-feature-007-vacancy-transform.md @@ -152,6 +152,52 @@ Lesson worth keeping: both defects are invisible to unit tests and to any test t thrown errors. They produce *plausible* wrong answers. The only thing that caught them was running the real thing and comparing against a known-good reference. +## The swap control in the Lexicon Lab, and how its constraint is surfaced + +`mint = "swap"` is now live in `VacancyPanel` (it had been rendered disabled). Three decisions +worth keeping, because each replaces a tempting shortcut: + +1. **The constraint is shown, never enforced by the UI.** `p` is not clamped, `swap` is not + silently downgraded to `nonce`, and the typed error is not caught-and-replaced with a + fallback. `LexiconLab` asks the engine (`buildVacancyMap` with the real `consistent`, + `mapVocabWords` at the real `p`) and CARRIES the refusal up as a string; the panel prints it + verbatim in a refusal card, with buttons for the two exits (`p = 1`, `p = 0`, switch to + nonce, use the consistent condition). With no vocabulary, the budget counters, the trainer + and the invariance check simply have nothing to report — which is the honest state. +2. **The theorem is COUNTED, not asserted.** Beside the mint control, every domain type is + pushed through the real transform at the current `p` and the distinct images are counted: + `|domain| − |images|` lost image slots. Measured on the shipped corpus, seed 0: + **244 / 322 / 233 at p = .25/.5/.75, and 0 at both endpoints** (reproduced independently in + Python while writing the docs). Under `nonce` it is 0 everywhere. So §5.2a happens in front + of the reader. +3. **The `bijective` chip branches on `injectiveAtEveryP`.** Under swap it reads "injective at + p = 0, 1" rather than a bare tick — the map property is real, but claiming it at every `p` + would be false. + +Two shipped-code defects fixed in passing: `LexiconLab` never passed `mint` into `vacParams` at +all (so the control could not have worked), and `staticClient/arch.ts` still documented a +"±0.1 nats" quantization uncertainty that its own constant had superseded with 0.2. + +## Documentation (FR-724/725/726, ui.md §3) + +Info tab gains `

{#if STATIC_MODE} + the real device/dtype ladder (webgpu·q8 → wasm·q8) as it loads, and marks + the badge "fallback" when a rung was rejected. --> {/if} {#if chatTemplate === false} diff --git a/code/frontend/tests/e2e/static.spec.ts b/code/frontend/tests/e2e/static.spec.ts index bd237db..2ff9f20 100644 --- a/code/frontend/tests/e2e/static.spec.ts +++ b/code/frontend/tests/e2e/static.spec.ts @@ -341,9 +341,11 @@ test("real in-browser generation on the smallest model", async ({ page }) => { const tok = page.getByTestId("arch-reply").locator(".tok").first(); await expect(tok).toBeAttached(); await expect(tok).toHaveAttribute("aria-label", /%/); - // the runtime ladder settled on a real device/dtype pair + // The runtime ladder settled on a device/dtype pair that PASSED the load-time + // non-degeneracy check (transformersRuntime.selfCheck). Both rungs read the same + // model_quantized.onnx; only the execution provider differs. await expect(page.getByTestId("static-runtime-badge")).toContainText( - /webgpu · q4f16|wasm · q8/, + /(webgpu|wasm) · q8/, ); await page.screenshot({ path: "tests/e2e/__screenshots__/static-generation.png", diff --git a/code/frontend/tests/e2e/webgpu.spec.ts b/code/frontend/tests/e2e/webgpu.spec.ts new file mode 100644 index 0000000..7371dc0 --- /dev/null +++ b/code/frontend/tests/e2e/webgpu.spec.ts @@ -0,0 +1,150 @@ +import { expect, test, type Page } from "@playwright/test"; +import { readFileSync } from "node:fs"; +import { fileURLToPath } from "node:url"; +import path from "node:path"; + +/** + * The WebGPU regression suite — the coverage gap that let a broken dtype ship. + * + * Plain headless Chromium exposes NO WebGPU adapter (`requestAdapter()` resolves to + * `null`), so every other e2e project silently exercises the WASM rung only. That is + * why `webgpu/q4f16` — which BUILDS a session and then returns logits identical at + * every position — reached the deployed site: nothing threw, and CI never ran the code + * path. This project launches Chromium with `--enable-unsafe-webgpu`, which does + * surface the machine's real adapter, and asserts the property the defect violated: + * the model's next-token distribution must DEPEND ON POSITION. + * + * Where there is no adapter, the test SKIPS with an explicit reason — it must never + * pass vacuously by falling through to WASM. + * + * READ THIS BEFORE TRUSTING A GREEN CI RUN. GitHub-hosted runners have no GPU, and the + * software adapter Chromium offers there (SwiftShader) advertises no `shader-f16`, so + * this test SKIPS in CI and the WebGPU path is verified only on a developer machine + * with a real GPU. That is a named, deliberate gap, not coverage. What CI does always + * verify: tests/unit/logitsSanity.test.ts (the invariant and the dtype ladder) and + * tests/e2e/static.spec.ts (a real session built and passed through the same + * load-time gate, on the WASM rung). + */ + +const BASE = "/llm-geometry/"; +const DATA = path.join(path.dirname(fileURLToPath(import.meta.url)), "../../public/static-data"); + +interface StaticIndex { + arch_models: { model_id: string; slug: string }[]; +} +const index = JSON.parse(readFileSync(path.join(DATA, "index.json"), "utf8")) as StaticIndex; + +// The smallest curated model this export ships: both are known-degenerate under +// q4f16 on WebGPU and known-correct under q8, so either discriminates. +const model = + index.arch_models.find((m) => m.model_id === "HuggingFaceTB/SmolLM2-135M-Instruct") ?? + index.arch_models.find((m) => m.model_id === "gpt2") ?? + index.arch_models[0]; + +interface AdapterProbe { + hasNavigatorGpu: boolean; + adapter: null | { vendor?: string; architecture?: string; shaderF16: boolean }; +} + +async function probeAdapter(page: Page): Promise { + return page.evaluate(async () => { + const gpu = (navigator as unknown as { gpu?: { requestAdapter(): Promise } }).gpu; + if (!gpu) return { hasNavigatorGpu: false, adapter: null }; + const a = (await gpu.requestAdapter()) as null | { + features: { has(n: string): boolean }; + info?: { vendor?: string; architecture?: string }; + }; + if (!a) return { hasNavigatorGpu: true, adapter: null }; + return { + hasNavigatorGpu: true, + adapter: { + vendor: a.info?.vendor, + architecture: a.info?.architecture, + shaderF16: a.features.has("shader-f16"), + }, + }; + }); +} + +test("in-browser generation on a REAL WebGPU adapter is not degenerate", async ({ page }) => { + test.setTimeout(600_000); + await page.goto(BASE); + + const probe = await probeAdapter(page); + // A loud skip, never a vacuous pass: say exactly what was missing. + const why = !probe.hasNavigatorGpu + ? "navigator.gpu is undefined in this browser build" + : probe.adapter === null + ? "navigator.gpu.requestAdapter() resolved to null — this environment has no WebGPU adapter " + + "(the usual case for Linux CI runners and for headless Chromium without --enable-unsafe-webgpu)" + : !probe.adapter.shaderF16 + ? `the only adapter is ${probe.adapter.vendor}/${probe.adapter.architecture}, which lacks ` + + "shader-f16 — the app treats that as a software adapter and takes the WASM rung, so this " + + "test cannot observe the WebGPU path" + : ""; + if (why) { + console.warn( + `\n!!! SKIPPING THE WEBGPU REGRESSION TEST — THE WEBGPU PATH IS UNVERIFIED IN THIS RUN.\n` + + `!!! Reason: ${why}.\n` + + `!!! This is expected on GitHub-hosted runners, which have no GPU. A green CI run\n` + + `!!! therefore does NOT mean the WebGPU path was checked: run it on a machine with a\n` + + `!!! real GPU — npx playwright test --project webgpu\n`, + ); + test.skip( + true, + `WEBGPU PATH UNVERIFIED (expected on GPU-less CI runners): ${why}. ` + + "Run `npx playwright test --project webgpu` on a machine with a GPU.", + ); + } + console.log( + `[webgpu] real adapter: ${probe.adapter?.vendor}/${probe.adapter?.architecture} (shader-f16)`, + ); + + await page.getByTestId("tab-architecture").click(); + await expect(page.locator('[data-testid^="diagram-node-"]').first()).toBeVisible({ + timeout: 60_000, + }); + if (model.model_id !== (await page.getByTestId("arch-model-select").inputValue())) { + await page.getByTestId("arch-model-select").selectOption(model.model_id); + await expect(page.getByTestId("arch-model-status")).toHaveText("ok", { timeout: 60_000 }); + } + await page.getByTestId("arch-prompt").fill("The capital of France is Paris. The capital of Germany is"); + await page.getByTestId("arch-generate").click(); + + // Real ONNX download (100+ MB cold) + real sampling on the GPU. + await expect(page.getByTestId("arch-reply")).not.toBeEmpty({ timeout: 480_000 }); + + // (1) The WebGPU path really was the one exercised — otherwise everything below + // would be a WASM result wearing a WebGPU test's name. + const badge = page.getByTestId("static-runtime-badge"); + await expect(badge).toContainText("webgpu"); + // (2) …on a dtype the runtime verified at load time. q4f16 is gone; if it ever + // comes back, this pins the failure to the dtype rather than to the symptom. + await expect(badge).toContainText("webgpu · q8"); + + // (3) THE DEFECT ITSELF, as a user sees it. Under webgpu/q4f16 every row of the + // [1,T,V] logits was bit-identical, so the tab reported the SAME top-5 at every + // generated position. A model whose distribution does not move with the context + // has told the user nothing. Measured on this page, 64 generated tokens: + // webgpu/q4f16 (pre-fix) → 2 distinct top-5 lists out of 64 + // webgpu/q8 (post-fix) → 64 distinct top-5 lists out of 64 + // so "most positions differ" separates them by the whole range. Requiring ALL to + // differ would be a fair statement too, but it is a claim about the model rather + // than about the runtime, and a legitimate repeat would then fail the suite. + const labels = await page.getByTestId("arch-reply").locator(".tok").evaluateAll((els) => + els.map((e) => e.getAttribute("aria-label") ?? ""), + ); + expect(labels.length, "generation produced too few tokens to compare positions").toBeGreaterThan(8); + const topk = labels + .map((l) => l.slice(l.indexOf("top-5:"))) + .filter((s) => s.startsWith("top-5:")); + expect(topk.length).toBe(labels.length); + expect( + new Set(topk).size, + `only ${new Set(topk).size} of ${topk.length} generated positions reported a DIFFERENT ` + + "top-5 — the logits barely depend on the context, which is exactly the webgpu/q4f16 " + + "failure this test exists to catch", + ).toBeGreaterThan(topk.length / 2); + + await page.screenshot({ path: "tests/e2e/__screenshots__/webgpu-generation.png", fullPage: true }); +}); diff --git a/code/frontend/tests/unit/logitsSanity.test.ts b/code/frontend/tests/unit/logitsSanity.test.ts new file mode 100644 index 0000000..3a8f255 --- /dev/null +++ b/code/frontend/tests/unit/logitsSanity.test.ts @@ -0,0 +1,128 @@ +// The load-time non-degeneracy invariant (src/lib/staticClient/logitsSanity.ts). +// +// These exercise the predicate itself over the exact shapes the real failure produced, +// measured in a real browser on a real GPU (Chrome 150 / Apple Metal-3, ORT-web +// 1.26.0-dev, transformers.js 4.2.0): +// onnx-community/gpt2-ONNX webgpu/q4f16 → row separation 0 (identical rows) +// onnx-community/SmolLM2-135M-…-ONNX webgpu/q4f16 → row separation 0, every logit 0 +// onnx-community/SmolLM2-360M-…-ONNX webgpu/q4f16 → row separation 0, every logit 0 +// versus the healthy sessions on the same machine: +// gpt2 webgpu/q8 91.99 · SmolLM2-135M webgpu/q8 36.97 · Qwen2.5-0.5B webgpu/q8 20.27 +// The end-to-end version of this, against the real model in a WebGPU browser, is +// tests/e2e/webgpu.spec.ts. +import { describe, expect, it } from "vitest"; + +import { + MIN_ROW_SEPARATION, + assertNonDegenerateLogits, + rowSeparation, +} from "../../src/lib/staticClient/logitsSanity"; +import { FP16_ACTIVATION_DTYPES, RUNTIME_LADDER } from "../../src/lib/staticClient/runtimeTypes"; + +const VOCAB = 64; +const SEQ = 6; + +/** A [1, SEQ, VOCAB] buffer whose rows differ, like any working causal LM. */ +function healthy(): Float32Array { + const out = new Float32Array(SEQ * VOCAB); + for (let t = 0; t < SEQ; t++) { + for (let v = 0; v < VOCAB; v++) out[t * VOCAB + v] = Math.sin(v * 0.37) * 8 + t * 1.5; + } + return out; +} + +/** One row, repeated — the gpt2 webgpu/q4f16 failure. */ +function repeatedRows(): Float32Array { + const out = new Float32Array(SEQ * VOCAB); + for (let t = 0; t < SEQ; t++) { + for (let v = 0; v < VOCAB; v++) out[t * VOCAB + v] = Math.cos(v * 0.11) * 6; + } + return out; +} + +describe("rowSeparation", () => { + it("measures the L∞ gap between the first and last next-token distribution", () => { + // Constructed so the true answer is known: rows differ by exactly 1.5*(SEQ-1). + expect(rowSeparation(healthy(), SEQ, VOCAB)).toBeCloseTo(1.5 * (SEQ - 1), 5); + }); + + it("is exactly 0 for repeated rows and for an all-zero tensor", () => { + expect(rowSeparation(repeatedRows(), SEQ, VOCAB)).toBe(0); + expect(rowSeparation(new Float32Array(SEQ * VOCAB), SEQ, VOCAB)).toBe(0); + }); + + it("reports NaN when any compared entry is not finite", () => { + const nan = healthy(); + nan[(SEQ - 1) * VOCAB + 3] = Number.NaN; + expect(rowSeparation(nan, SEQ, VOCAB)).toBeNaN(); + const inf = healthy(); + inf[7] = Number.POSITIVE_INFINITY; + expect(rowSeparation(inf, SEQ, VOCAB)).toBeNaN(); + }); + + it("refuses a single-position pass, where the invariant is not defined", () => { + expect(() => rowSeparation(new Float32Array(VOCAB), 1, VOCAB)).toThrow(/at least 2 positions/); + }); +}); + +// The dtype-preference half of the fix. tests/e2e/webgpu.spec.ts checks it end to end +// on a real GPU, which SKIPS wherever there is no adapter (all GitHub-hosted runners); +// this runs everywhere, so CI always verifies at least that no fp16-activation dtype +// has crept back into the ladder. +describe("the runtime's dtype ladder", () => { + it("asks only for dtypes verified correct in a real browser", () => { + expect(RUNTIME_LADDER.length).toBeGreaterThan(0); + for (const rung of RUNTIME_LADDER) { + expect(["q8"]).toContain(rung.dtype); + expect(["webgpu", "wasm"]).toContain(rung.device); + } + }); + + it("never requests a dtype with fp16 ACTIVATIONS, the path that returns garbage", () => { + const asked = new Set(RUNTIME_LADDER.map((r) => r.dtype)); + for (const bad of FP16_ACTIVATION_DTYPES) expect(asked.has(bad)).toBe(false); + }); + + it("tries the GPU first and keeps a non-GPU rung to fall back to", () => { + expect(RUNTIME_LADDER[0].device).toBe("webgpu"); + expect(RUNTIME_LADDER.some((r) => r.device === "wasm")).toBe(true); + // Both rungs read the same model_quantized.onnx, so a rejection costs no + // second download — the property that makes the fallback cheap. + expect(new Set(RUNTIME_LADDER.map((r) => r.dtype)).size).toBe(1); + }); +}); + +describe("assertNonDegenerateLogits", () => { + it("accepts a session whose output depends on its input, returning the separation", () => { + expect(assertNonDegenerateLogits(healthy(), SEQ, VOCAB, "wasm/q8")).toBeCloseTo(7.5, 5); + }); + + it("rejects identical rows, naming the configuration under test", () => { + expect(() => assertNonDegenerateLogits(repeatedRows(), SEQ, VOCAB, "webgpu/q4f16")).toThrow( + /webgpu\/q4f16 produced degenerate logits/, + ); + }); + + it("rejects an all-zero tensor as the same single failure, not a special case", () => { + expect(() => + assertNonDegenerateLogits(new Float32Array(SEQ * VOCAB), SEQ, VOCAB, "webgpu/q4f16"), + ).toThrow(/does not depend on its input/); + }); + + it("rejects NaN output", () => { + const nan = new Float32Array(SEQ * VOCAB).fill(Number.NaN); + expect(() => assertNonDegenerateLogits(nan, SEQ, VOCAB, "webgpu/fp16")).toThrow(/NaN/); + }); + + it("accepts separations just above the threshold and rejects just below", () => { + const near = new Float32Array(SEQ * VOCAB); + near[(SEQ - 1) * VOCAB] = MIN_ROW_SEPARATION * 2; + expect(assertNonDegenerateLogits(near, SEQ, VOCAB, "wasm/q8")).toBeCloseTo( + MIN_ROW_SEPARATION * 2, + 9, + ); + const under = new Float32Array(SEQ * VOCAB); + under[(SEQ - 1) * VOCAB] = MIN_ROW_SEPARATION / 2; + expect(() => assertNonDegenerateLogits(under, SEQ, VOCAB, "wasm/q8")).toThrow(/degenerate/); + }); +}); diff --git a/code/frontend/tests/unit/staticClient.test.ts b/code/frontend/tests/unit/staticClient.test.ts index b3f0dfc..bfc3dfd 100644 --- a/code/frontend/tests/unit/staticClient.test.ts +++ b/code/frontend/tests/unit/staticClient.test.ts @@ -156,6 +156,9 @@ describe("live runtime seam (no model downloads)", () => { model_id: "gpt2", onnx_repo: "onnx-community/gpt2-ONNX", error: null, + // No fallback rungs were rejected on the way to this one — the badge's "you are on + // a fallback path" signal must be explicitly empty, not absent. + rejected: [], }), tokenize: async (modelId, revision, text): Promise => { calls.push(["tokenize", modelId, revision, text]); diff --git a/notes/2026-08-04-feature-007-vacancy-transform.md b/notes/2026-08-04-feature-007-vacancy-transform.md index 6c9b621..617bdae 100644 --- a/notes/2026-08-04-feature-007-vacancy-transform.md +++ b/notes/2026-08-04-feature-007-vacancy-transform.md @@ -100,7 +100,7 @@ committed by the writer. The persisted `ExportedWeightSet` carried weights but n vocabulary, so `tokenizerFor()` fell back to the canonical tokenizer — right for edited and fine-tuned sets, catastrophic for scratch and imported ones. -**2. q4f16 produces garbage on WebGPU** (in progress). The dtype the app tries FIRST. The +**2. q4f16 produces garbage on WebGPU** (FIXED — see below). The dtype the app tries FIRST. The session builds successfully and then returns degenerate output: every row of the `[1,T,V]` logits bit-identical, gpt2 greedy-generating `,,,,,,,`, SmolLM2's logits all exactly 0 so every NLL is `ln(49152) = 10.80267`. The fallback in `transformersRuntime.ts` only fires on a thrown @@ -112,6 +112,42 @@ Why it survived: **plain headless Chromium exposes no WebGPU adapter** (`request null), so the entire e2e suite has only ever exercised wasm/q8. That coverage gap is part of the fix. +**The fix** (its own commit, independent of 007). Re-verified first in a real browser on the +real Apple Metal-3 adapter, per repo, `maxAbsRowDiff` between the first and last logit row of one +teacher-forced pass + a greedy continuation: + +| repo | webgpu/q4f16 | webgpu/q8 | +|-|-|-| +| gpt2-ONNX | 0.000, `,,,,,,,,,,` | 91.99, ` Berlin. The capital of the United States is Washington` | +| SmolLM2-135M-Instruct-ONNX | 0.000, all logits 0, empty | 36.97, ` Berlin.\n\nThe capital of Italy is Rome` | +| SmolLM2-360M-Instruct-ONNX | 0.000, all logits 0, empty | (correct) | +| Qwen2.5-0.5B-Instruct | 16.47 — NOT degenerate, but worse text | 20.27, ` Berlin. What is…` | + +Three of the four curated models are destroyed by q4f16; Qwen survives it. `q4` is correct +(SmolLM2-135M: 35.66, ` Berlin. The capital of the United States is Washington`) but is **not** +the smaller download the earlier note assumed — in every curated repo `model_q4.onnx` is LARGER +than `model_quantized.onnx` (gpt2 498 vs 280 MB, SmolLM2-135M 181 vs 136, SmolLM2-360M 386 vs +363, Qwen2.5-0.5B 786 vs 512). So the ladder is now **webgpu/q8 → wasm/q8**: both rungs read the +same file, so a rejected rung costs no second download. + +1. `staticClient/logitsSanity.ts` — ONE invariant, in the spirit of the Geometry Lab's training + gates: a causal LM's output must depend on its input, so the L∞ gap between the first and last + next-token distribution of a fixed 12-token probe must exceed 1e-3. All-identical rows and + all-zero logits are the same failure, not two rules. Asserted on every session at load, before + any number is shown; a rejected rung falls through and is NAMED in the badge (`· fallback`). +2. `RUNTIME_LADDER` + `FP16_ACTIVATION_DTYPES` in `runtimeTypes.ts`, unit-tested + (`tests/unit/logitsSanity.test.ts`) so CI always checks that no fp16-activation dtype creeps + back, even where it cannot run a GPU. +3. `tests/e2e/webgpu.spec.ts` + a `webgpu` Playwright project. **The flag that matters on macOS + is `--use-angle=metal`**: `--enable-unsafe-webgpu` alone still hands back google/swiftshader + (no `shader-f16`); with it, headless Chromium gets the real apple/metal-3 adapter. Verified to + FAIL on the pre-fix code (badge `webgpu · q4f16`; 2 distinct top-5 lists across 64 generated + positions) and PASS after (64/64 distinct). + +**Named residual gap:** GitHub-hosted runners have no GPU, so this test SKIPS in CI with a loud +reason. The WebGPU path is verified only on a developer machine with a real GPU; CI verifies the +invariant, the ladder, and one real session through the same gate on the WASM rung. + Lesson worth keeping: both defects are invisible to unit tests and to any test that checks for thrown errors. They produce *plausible* wrong answers. The only thing that caught them was running the real thing and comparing against a known-good reference. diff --git a/specs/003-static-pages-site/plan.md b/specs/003-static-pages-site/plan.md index 5b57240..e9df99f 100644 --- a/specs/003-static-pages-site/plan.md +++ b/specs/003-static-pages-site/plan.md @@ -28,6 +28,9 @@ Python backend — per issue #1's "ideally it could run entirely in a browser". - Generation/chat: LIVE via transformers.js v4 pipeline, device webgpu dtype q4f16 (117 MB from HF CDN) with wasm+q8 fallback; per-token probs from logits (direct forward calls). + AMENDED (2026-08-04, defect fix): q4f16 returns input-independent logits on + WebGPU and is never requested; the ladder is webgpu/q8 → wasm/q8 with a + load-time non-degeneracy check on every session. - Trace panel (per-layer attentions/hidden norms): NOT available from ONNX → precomputed traces for ~6 example prompts (dropdown), clearly labeled; the playback/diagram animation runs on the precomputed node_activations. Arbitrary diff --git a/specs/003-static-pages-site/spec.md b/specs/003-static-pages-site/spec.md index f7efc63..3ba72ae 100644 --- a/specs/003-static-pages-site/spec.md +++ b/specs/003-static-pages-site/spec.md @@ -31,6 +31,11 @@ Python backend's trace/field/finetune outputs to ≤1e-5. - Generation/chat: LIVE via transformers.js v4 (`device: "webgpu"`, `dtype: "q4f16"`; WASM+q8 fallback), per-token probabilities from real logits. + **AMENDED (2026-08-04, defect fix): `q4f16` is never requested. It builds a session + on WebGPU and returns logits identical at every position — measured on three of the + four curated models. The ladder is `webgpu/q8 → wasm/q8`, and every session must pass + a load-time non-degeneracy check (`staticClient/logitsSanity.ts`) before its numbers + are shown. Do not reinstate an fp16-activation dtype from this sentence.** - Tokenization strip: LIVE via transformers.js AutoTokenizer (vendored tokenizer.json, no model download). - Weight inspector: LIVE exact windows via safetensors HTTP **Range** reads from diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 2d07ce3..5783bae 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -684,6 +684,11 @@ content — the doc's T4 prediction that field ≫ location, on a model it did n - **q4f16 — the app's first-choice dtype — could not be measured outside a browser** (session init fails on the onnxruntime-node CPU EP for both models). Until it is measured in a real browser, the deployed default path has **no error bar at all**. + **RESOLVED (2026-08-04):** measured in a real browser on a real Apple Metal-3 adapter — on + gpt2 and both SmolLM2 exports q4f16 returns logits identical at every position (SmolLM2: + exactly 0, every NLL = ln V), so it has no error bar because it measures nothing. It is no + longer requested: the app's ladder is now `webgpu/q8 → wasm/q8`, both rungs gated by a + load-time non-degeneracy check, so **q8 is the dtype whose measured bounds apply here**. **Policy.** The full stack (torch/fp32) reports everything. The static build may report a number only where there is a measured bound for the dtype it actually ran: From 0e1a60dea5f7c4b51380bd29052adebd62441567 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 11:05:54 -0400 Subject: [PATCH 29/38] Condition B on the per-occurrence path, and the fixture regenerated The inconsistent control could leave a word un-vacated: at seed 7 the stem `tak` minted the nonce `tak`, so `Taking` -> `Taking` and corpusTypesVacated came out 1921 against the consistent path's 1922. Condition B was enforced when building the map but not per occurrence. A control whose vacancy rate is not the stated rate is not a control, so both stacks now forbid a per-occurrence nonce from equalling the stem it replaces as well as any domain type. Both seeds now give 1922 / 8202, matching the consistent path, with byte-identical vacated-corpus digests across the two stacks. The fixture is regenerated over three landed fixes and its KNOWN_DIVERGENCES list is now empty. Both entries were removed rather than bypassed -- the exporter's refusal fired on control-inconsistent.vacatedSha256, which is the guard working. The guard was re-probed both ways afterwards: a synthetic outstanding divergence is still recorded, and a resolved one still raises. A new control-inconsistent-seed7 case pins the `tak` fix so it cannot regress. pytest 400; vitest 384; svelte-check 0/0; golden 209 float comparisons, worst delta 0; regenerated twice byte-identical; SC-703 re-verified 120/120. Reported and not changed: Section 5.8 lists `forbidden` as a normative VacancyMap field, but Python reconstructs it from domain plus mapping values rather than storing it, so it omits superseded re-mint nonces that TypeScript retains. Nothing observable diverges today -- every digest agrees -- but the two sets are not the same set. Co-Authored-By: Claude Opus 5 (1M context) --- code/backend/src/llm_geometry/lex/vacancy.py | 41 ++++- code/backend/tests/unit/test_lex_vacancy.py | 113 ++++++++++++ code/frontend/src/lib/lexEngine/vacancy.ts | 103 ++++++++--- .../tests/fixtures/vacancy-golden.json | 153 +++++++++------- code/frontend/tests/unit/vacancy.test.ts | 106 +++++++++++ .../frontend/tests/unit/vacancyGolden.test.ts | 89 ++++++--- scripts/export_vacancy_golden.py | 171 +++++++----------- 7 files changed, 541 insertions(+), 235 deletions(-) diff --git a/code/backend/src/llm_geometry/lex/vacancy.py b/code/backend/src/llm_geometry/lex/vacancy.py index 202403f..dea4139 100644 --- a/code/backend/src/llm_geometry/lex/vacancy.py +++ b/code/backend/src/llm_geometry/lex/vacancy.py @@ -444,18 +444,27 @@ def choice(self, options: Sequence[str]) -> str: def _mint( - stem: str, + key: str, seed: int, match_prosody: bool, forbidden: frozenset[str] | set[str], start_salt: int = 0, + stem: str | None = None, ) -> tuple[str, str, int]: - """Mint one nonce for `stem`, returning ``(nonce, intended stress pattern, salt)``. + """Mint one nonce for `key`, returning ``(nonce, intended stress pattern, salt)``. - Contract §5.5. Depends only on ``(seed, stem, match_prosody, forbidden, start_salt)`` — + Contract §5.5. Depends only on ``(seed, key, match_prosody, forbidden, start_salt)`` — and `forbidden` depends only on the canonically-ordered prefix of stems before this one — so a stem's nonce is the same at every `p`. That is the stability property (§5.6). + **`key` feeds the byte stream and the uniqueness check ONLY; the stress pattern comes + from `stem`.** They differ under ``consistent=False``, where the key is + ``f"{stem}#{idx}"`` (§5.8). Letting the key reach the prosody lookup gives + ``stress("little#0") == "10"`` instead of ``stress("little") == "100"``, so `Little` + mints as `Wrerken` rather than `Wrerkenle` — §7.1 says the nonce carries *the stem's* + syllable count and stress, and a mint key is not a word. `stem` defaults to `key`, which + is the consistent case where they are the same string. + `start_salt` is the base salt `S`; the byte stream is keyed on ``S + a`` for the attempt counter ``a = 0, 1, 2, …``, and the quality relaxations are thresholds on ``a``. The ACCEPTING salt (``S + a``) is returned because §5.8 needs it: a re-mint restarts at @@ -466,11 +475,11 @@ def _mint( ``_syl(stressed=False)`` is never called. **Do not "fix" this** — a fourth branch would shift every list index the byte stream selects and change every multi-syllable nonce. """ - pattern = stress(stem) if match_prosody else "1" + pattern = stress(key if stem is None else stem) if match_prosody else "1" n_syl = len(pattern) for attempt in range(MINT_MAX_SALT): # `a` of §5.5; the stream is keyed on `S + a` salt = start_salt + attempt - rnd = _ByteStream(seed, stem, salt) + rnd = _ByteStream(seed, key, salt) parts: list[str] = [] for i, mark in enumerate(pattern): if mark == "1": @@ -485,8 +494,8 @@ def _mint( if long_enough and right_length and w not in forbidden: return w, pattern, salt raise ComputeError( - f"could not mint a nonce for {stem!r} in {MINT_MAX_SALT} attempts", - {"stem": stem, "seed": seed, "pattern": pattern, "start_salt": start_salt}, + f"could not mint a nonce for {key!r} in {MINT_MAX_SALT} attempts", + {"key": key, "stem": stem, "seed": seed, "pattern": pattern, "start_salt": start_salt}, ) @@ -681,12 +690,26 @@ def _transform(self, word: str, params: VacancyParams, state: _RewriteState) -> # holding the vacancy rate fixed is its entire purpose. # §5.8 pins the key: `f"{stem}#{idx}"` with `idx` the 0-based occurrence index # of the STEM in document order. `#` is not a legal `WORD_RE` character, so the - # key can never collide with a real stem. + # key can never collide with a real stem — and the key must NOT reach the + # prosody lookup, or the pattern becomes `stress("little#0")` rather than + # `stress("little")` and the nonce loses the stem's syllable count. + # + # **Condition B applies here too** (§5.8): the nonce may equal neither a domain + # type nor THE STEM IT REPLACES, and `{key}` is not redundant with `self.domain` + # — a stem need not be a type. Measured: at seed 7, `p = 1`, `tak` minted `tak`, + # so `Taking -> Taking` and one token silently failed to vacate + # (`corpus_types_vacated` 1921 against the consistent path's 1922). §7.1 denies + # this control a *stability* property, which is about a nonce being reused + # across occurrences; it does not license a word surviving the transform, and a + # control whose vacancy rate is not the stated rate is not a control. Adding the + # stem to `forbidden` puts it through §5.5's ordinary re-mint loop, so the + # replacement is held to the same quality bar as any other nonce. nonce, pattern, _salt = _mint( f"{key}#{seen - 1}", params.seed, params.match_prosody, - self.domain | state.used, + self.domain | state.used | {key}, + stem=key, ) state.used.add(nonce) self.minted_stress.setdefault(nonce, pattern) diff --git a/code/backend/tests/unit/test_lex_vacancy.py b/code/backend/tests/unit/test_lex_vacancy.py index e618486..da709b4 100644 --- a/code/backend/tests/unit/test_lex_vacancy.py +++ b/code/backend/tests/unit/test_lex_vacancy.py @@ -643,6 +643,82 @@ def test_inconsistent_assignment_destroys_type_identity(corpus, maps): assert len(set(tokenize(text))) > len(set(tokenize(corpus))) +def test_the_inconsistent_mint_key_never_reaches_the_prosody_lookup(corpus, maps): + """§5.8. The key `f"{stem}#{idx}"` feeds the byte stream and the uniqueness check ONLY. + + Let it reach the prosody lookup and the pattern becomes `stress("little#0") == "10"` + instead of `stress("little") == "100"`, so `Little` mints as a disyllable. §7.1 says the + nonce carries THE STEM'S syllable count and stress; a mint key is not a word, and the + spelling rule has no business being asked about one. Caught by the golden fixture, not by + either stack's tests — hence this one. + """ + assert stress("little") == "100" != stress("little#0") == "10" + # At the minter: the key drives the byte stream, `stem` drives the pattern. + correct = _mint("little#0", 0, True, frozenset(), stem="little") + as_if_key_were_the_stem = _mint("little#0", 0, True, frozenset()) + assert correct[1] == "100" and syllables(correct[0]) == 3 + assert as_if_key_were_the_stem[1] == "10" + assert correct[0] != as_if_key_were_the_stem[0] + + # End to end: every minted form still carries its stem's syllable count, occurrence by + # occurrence. Restricted to un-suffixed words so the seam repair of §5.7 cannot muddy + # the comparison — it is covered by its own test. + params = VacancyParams(p=1.0, seed=0, consistent=False) + text = vacate_text(corpus, maps[0], params) + checked = 0 + for src, out in zip(WORD_RE.findall(corpus), WORD_RE.findall(text)): + stem, suffix = stem_and_suffix(src) + if src == out or suffix: + continue + assert maps[0].minted_stress[out.lower()] == stress(stem.lower()) + assert syllables(out.lower()) == syllables(stem.lower()) + checked += 1 + assert checked > 4000 + + +def test_condition_b_applies_to_the_per_occurrence_path_too(corpus, maps): + """§5.8, and the `tak` case that exposed it. + + Condition B — no minted form may equal a domain type — was enforced when building the + map and NOT on the `consistent=False` minting path. The gap is observable: at seed 7, + `p = 1`, the stem `tak` (of `taking`) minted the nonce `tak`, so `Taking -> Taking` and + one token silently failed to vacate. `corpus_types_vacated` read 1921 against the + consistent path's 1922 and `tokens_vacated` 8201 against 8202. + + §7.1 denies this control a STABILITY property — that is about a nonce being reused + across occurrences — and it does not license a word surviving the transform. A control + whose vacancy rate is not the stated rate is not a control, so a per-occurrence nonce + must equal neither a domain type nor the stem it replaces, under the same re-mint loop. + """ + # `tak` is a stem, not a type, which is exactly why the domain did not already forbid + # it: the domain is the corpus's TYPES (`taking`, `takes`, …) plus the Dolch list. + assert stem_and_suffix("taking") == ("tak", "ing") + assert "tak" not in maps[7].domain and "taking" in maps[7].domain + + for seed in (0, 7): + params = VacancyParams(p=1.0, seed=seed, consistent=False) + # A fresh map per condition: `consistent=False` writes to `minted_stress`. + vmap = build_vacancy_map(vacancy_domain(set(tokenize(corpus))), params) + text = vacate_text(corpus, vmap, params) + stats = vacancy_stats(corpus, text, vmap, params) + # At `p = 1` every eligible type vacates (§10) — in this control exactly as in the + # mapped condition, which is the whole claim. + assert stats["corpusTypesVacated"] == stats["corpusTypesEligible"] == 1922, seed + assert stats["tokensVacated"] == 8202, seed + + # No token survives the transform, and none survives as itself least of all. + for src, out in zip(WORD_RE.findall(corpus), WORD_RE.findall(text)): + stem = stem_and_suffix(src)[0] + if is_eligible(stem): + assert out.lower() != src.lower(), (seed, src) + + # And the mechanism, directly: forbidding the stem is not implied by forbidding the + # domain, so `_mint` must be handed it. The losing draw is the FOURTH occurrence of + # `tak` in document order — `tak#3` at seed 7 mints `tak` on its first attempt. + assert _mint("tak#3", 7, True, frozenset(), stem="tak")[0] == "tak" + assert _mint("tak#3", 7, True, frozenset({"tak"}), stem="tak")[0] != "tak" + + def test_reveal_after_keeps_the_first_n_occurrences(corpus, maps): params = VacancyParams(p=1.0, seed=0, reveal_after=3) text = vacate_text(corpus, maps[0], params) @@ -782,6 +858,43 @@ def test_stats_are_measured_not_asserted(corpus, corpus_types, maps, vacated): assert stats["tokensVacated"] > 0 +def test_corpus_types_vacated_is_measured_from_the_texts_not_from_map_membership(corpus, maps): + """§10. A type counts as vacated iff at least one of its occurrences ACTUALLY changed. + + Under `reveal_after` the two readings diverge sharply: a type whose every occurrence falls + inside the reveal window is still in the map and still has `u(stem) < p`, so asking the map + over-reports roughly 2x. The panel would then tell a reader that 1337 types are vacant in a + text where 665 of them are printed in plain English. + """ + params = VacancyParams(p=0.7, seed=0, reveal_after=2) + text = vacate_text(corpus, maps[0], params) + stats = vacancy_stats(corpus, text, maps[0], params) + + measured = len(_changed_types(corpus, text)) + by_membership = len( + { + t + for t in set(tokenize(corpus)) + if is_eligible(stem_and_suffix(t)[0]) + and vacancy_u(stem_and_suffix(t)[0], params.seed) < params.p + } + ) + assert stats["corpusTypesVacated"] == measured == 665 + assert by_membership == 1337 # the map-membership reading, over-reporting 2.01x + # Every type the two readings disagree about really is still English in the output. + unchanged = {w for w, surfaces in _images(corpus, text).items() if surfaces == {w}} + assert len(unchanged & {t.lower() for t in tokenize(corpus)}) >= by_membership - measured + assert not (unchanged & _changed_types(corpus, text)) + # tokensVacated is measured the same way, and the reveal window is why it drops. + without_reveal = VacancyParams(p=0.7, seed=0) + assert ( + stats["tokensVacated"] + < vacancy_stats( + corpus, vacate_text(corpus, maps[0], without_reveal), maps[0], without_reveal + )["tokensVacated"] + ) + + def test_the_two_counting_scopes_and_their_identities(corpus, corpus_types, maps, vacated): """§10: the scope is in the name, and the identities are what exposed the confusion. diff --git a/code/frontend/src/lib/lexEngine/vacancy.ts b/code/frontend/src/lib/lexEngine/vacancy.ts index 8183df1..d218d30 100644 --- a/code/frontend/src/lib/lexEngine/vacancy.ts +++ b/code/frontend/src/lib/lexEngine/vacancy.ts @@ -898,8 +898,27 @@ function transformWordWith( // fixed while the learnable identity is destroyed. It has, deliberately, no stability // property — the nonce is a function of (stem, occurrenceIndex) in document order. // `#` is not a legal WORD_RE character, so the key can never collide with a stem. + // + // CONDITION B APPLIES HERE TOO (§5.8): the nonce may equal neither a domain type nor + // THE STEM IT REPLACES. The second clause is not implied by the first — a stem need not + // be a type. Measured: at seed 7, `p = 1`, `tak` minted `tak`, so `Taking -> Taking` and + // a token silently failed to vacate. §7.1 denies this control a *stability* property, + // which is about reusing a nonce across occurrences; it does not license a word + // surviving the transform, and a control whose vacancy rate is not the stated rate is + // not a control. Forbidding the stem routes the collision through §5.5's ordinary + // re-mint loop, so the replacement meets the same quality bar as any other nonce. + // The stem is forbidden for THIS mint only, then restored — the set is threaded through + // the whole rewrite, and a stem left in it would forbid that string to every later + // occurrence of every OTHER stem, which condition B does not ask for. const pattern = params.matchProsody ? stress(stem) : "1"; - const minted = mintNonce(`${stem}#${index}`, pattern, params.seed, state.forbidden, 0); + const stemWasForbidden = state.forbidden.has(stem); + state.forbidden.add(stem); + let minted; + try { + minted = mintNonce(`${stem}#${index}`, pattern, params.seed, state.forbidden, 0); + } finally { + if (!stemWasForbidden) state.forbidden.delete(stem); + } nonce = minted.nonce; state.forbidden.add(nonce); vmap.mintedStress.set(nonce, pattern); @@ -975,7 +994,9 @@ export interface VacancyStats { domainTypesTotal: number; /** Domain types whose STEM is eligible per §2.2. */ domainTypesEligible: number; - /** Domain types whose transformed output differs from the input at this `p`. */ + /** Domain types the MAP would rewrite at this `p` — map membership, not text. The + * domain's 22 Dolch-only words never occur in the corpus, so there is nothing to + * measure for them; this scope is a diagnostic about the map. */ domainTypesVacated: number; /** Distinct lowercased types of the CORPUS itself. **This is the scope a panel shows a * reader**: the domain-only words (`funny`, `squirrel`, `today`, …) are in the budget @@ -986,7 +1007,17 @@ export interface VacancyStats { corpusTypesTotal: number; /** Corpus types whose STEM is eligible per §2.2. */ corpusTypesEligible: number; - /** Corpus types whose transformed output differs from the input at this `p`. */ + /** + * Corpus types MEASURED FROM THE TWO TEXTS: a type counts as vacated iff at least one of + * its occurrences actually changed. + * + * NOT map membership, which is what the golden fixture caught. Under `revealAfter > 0` a + * type whose every occurrence falls inside the reveal window is still listed in the map + * yet has changed nowhere in the text — map membership over-reports it by ~2x on this + * corpus. The readings coincide at `revealAfter = 0`, which is why it took a control + * condition to expose. The text reading is what this number claims to a reader looking at + * "N of M types vacated" about the text in front of them. + */ corpusTypesVacated: number; /** Distinct eligible stems — the size of the map. `typesEligible >= stemsTotal` always, * since inflected forms share a stem. */ @@ -1052,34 +1083,41 @@ function stressSplit( return { table: table / n, mintedFrac: mintedHits / n, rule: (n - table - mintedHits) / n }; } +/** Types whose stem passes §2.2. Shared by both scopes — eligibility is a property of the + * stem alone, so there is only one reading of it to get wrong. */ +function countEligible(types: ReadonlySet, keep: ReadonlySet): number { + let eligible = 0; + for (const t of types) if (isEligible(stemAndSuffix(t)[0], keep)) eligible++; + return eligible; +} + /** - * `eligible` and `vacated` over ONE set of lowercased types. + * `vacated` BY MAP MEMBERSHIP: the types the map would rewrite at this `p`. * - * Both §10 scopes call this same function, which is the point: the domain/corpus split was - * a definitional gap that let two stacks report different numbers for the same transform, - * and the fix is that the scopes differ ONLY in the set handed in here. + * This is the DOMAIN scope's reading, and the choice is forced rather than preferred: the + * domain contains the 22 Dolch words that never occur in the corpus, so they have no + * occurrences to measure. Under a text-measured reading the domain scope would silently + * collapse onto the corpus scope and stop being a separate diagnostic. The domain number + * answers "what does the map do", and this computes exactly that. * - * `vacated` is "the transformed output differs from the input", computed through the map — - * i.e. the mapped condition. `consistent = false` mints a different form per occurrence but - * vacates exactly the same types, so the count is condition-independent. + * It is deliberately NOT the corpus scope's reading — see `vacancyStats`, where the two + * readings are named and contrasted rather than left to look like one mechanism. */ -function countTypes( +function countVacatedByMap( types: ReadonlySet, vmap: VacancyMap, params: VacancyParams, keep: ReadonlySet, -): { eligible: number; vacated: number } { - let eligible = 0; +): number { let vacated = 0; for (const t of types) { const [stem, suffix] = stemAndSuffix(t); if (!isEligible(stem, keep)) continue; - eligible++; if (!(vacancyU(stem, params.seed) < params.p)) continue; const nonce = vmap.mapping.get(stem); if (nonce !== undefined && surfaceForm(stem, suffix, nonce, params.seed) !== t) vacated++; } - return { eligible, vacated }; + return vacated; } /** @@ -1105,27 +1143,44 @@ export function vacancyStats( const keep = effectiveKeepSet(params.keep); const corpusTypes = new Set(before.map((w) => w.toLowerCase())); - const domainCounts = countTypes(vmap.domain, vmap, params, keep); - const corpusCounts = countTypes(corpusTypes, vmap, params, keep); - let stemsVacated = 0; - for (const stem of vmap.mapping.keys()) if (vacancyU(stem, params.seed) < params.p) stemsVacated++; + // TWO SCOPES, TWO DELIBERATELY DIFFERENT READINGS — stated here rather than left to be + // inferred, because the golden fixture caught them being silently different mechanisms. + // + // domain: MAP MEMBERSHIP. A diagnostic about the map. The 22 Dolch-only words have no + // occurrences in the text, so a text reading cannot see them at all. + // corpus: MEASURED FROM THE TWO TEXTS. A type counts as vacated iff at least one of its + // occurrences actually changed — which is what the number claims to a reader, + // who is looking at "N of M types vacated" about the text in front of them. + // + // The readings coincide at `revealAfter = 0`, which is why only a control condition + // exposed the difference. At `revealAfter > 0` a type whose every occurrence falls inside + // the reveal window is still in the map but has changed nowhere in the text; counting it + // over-reports by roughly 2x on this corpus. + const domainVacated = countVacatedByMap(vmap.domain, vmap, params, keep); let tokensVacated = 0; + const changedTypes = new Set(); for (let i = 0; i < before.length; i++) { - if (before[i].toLowerCase() !== after[i].toLowerCase()) tokensVacated++; + const was = before[i].toLowerCase(); + if (was === after[i].toLowerCase()) continue; + tokensVacated++; + changedTypes.add(was); } + let stemsVacated = 0; + for (const stem of vmap.mapping.keys()) if (vacancyU(stem, params.seed) < params.p) stemsVacated++; + const splitBefore = stressSplit(before, vmap.mintedStress); const splitAfter = stressSplit(after, vmap.mintedStress); return { domainTypesTotal: vmap.domain.size, - domainTypesEligible: domainCounts.eligible, - domainTypesVacated: domainCounts.vacated, + domainTypesEligible: countEligible(vmap.domain, keep), + domainTypesVacated: domainVacated, corpusTypesTotal: corpusTypes.size, - corpusTypesEligible: corpusCounts.eligible, - corpusTypesVacated: corpusCounts.vacated, + corpusTypesEligible: countEligible(corpusTypes, keep), + corpusTypesVacated: changedTypes.size, stemsTotal: vmap.mapping.size, stemsVacated, tokensTotal: before.length, diff --git a/code/frontend/tests/fixtures/vacancy-golden.json b/code/frontend/tests/fixtures/vacancy-golden.json index ee1b517..6c06300 100644 --- a/code/frontend/tests/fixtures/vacancy-golden.json +++ b/code/frontend/tests/fixtures/vacancy-golden.json @@ -1,7 +1,7 @@ { "format": "vacancy-golden-v1", "generated": "2026-08-04", - "git_sha": "bbee124ab89cd399632ac41b9b6164e4bb688665", + "git_sha": "c115ec656c8a7bc150952f6de5d43f86693661be", "command": "python scripts/export_vacancy_golden.py", "source": "llm_geometry.lex.vacancy run directly on the committed corpus \u2014 real code, real text, no mocks", "contract": "specs/007-vacancy-transform-field/architecture.md", @@ -3796,6 +3796,44 @@ "good-bye": null } }, + { + "label": "control-inconsistent-seed7", + "seed": 7, + "matchProsody": true, + "remintRounds": 1, + "bijective": true, + "imageSize": 2233, + "domainSize": 2233, + "mappingSize": 1680, + "mappingSha256": "65efb80b712a63d434bc8c9ecc1266dc93197eca5c3938ebd5f820c8da82fbbd", + "mapping": null, + "sampleNonces": { + "little": "shooventy", + "pretty": "mienle", + "run": "maik", + "eat": "drult", + "jump": "scerrk", + "away": "unpryng", + "squirrel": "tielk", + "funny": "vezzleum", + "today": "rekurd", + "gum": "thrern", + "hang": "smeeg", + "crown": "trif", + "candlestick": "strooftishish", + "crooked": null, + "diddle": "gnoozzleel", + "moon": "glet", + "pussy": "frarsish", + "goose": "kloalk", + "the": null, + "and": null, + "you": null, + "not": null, + "ox": null, + "good-bye": null + } + }, { "label": "control-reveal-after-2", "seed": 0, @@ -5575,9 +5613,9 @@ "revealAfter": 0, "keep": [] }, - "head400": " THE GLAIRN\n SCIRRDER PLERNT\n\n _Wroormowyed by_\nBlanche Thursper Styn\n\n1916\n\n\n\nA HURF OF THE YORCKES\n\nWrerken Bo-Peep\nFlorlkish Boy Poun\nRain\nThe Sqyft\nWinter\nNietens and Klisks\nA Gnuntingenle Jai\nSculk Mursh and Her Cat\nThree Thoochous on the Ice\nNefs Gask\nThe Soamp Therltle Under a Gloang\nTweedle-Dum and Tweedle-Dee\nOh Steb!\nSwouck Felkid Rarp\nSqarbley Yersking Snof\nPat-a-Cake\nStoabent ", - "vacatedSha256": "e8565c25a3958c14a2d29c14fc401e1618e98bf86a81aa52d288105e963c9326", - "vacatedChars": 94216, + "head400": " THE GLAIRN\n SCIRRDER PLERNT\n\n _Wroormowyed by_\nBlanche Thursper Styn\n\n1916\n\n\n\nA HURF OF THE YORCKES\n\nWrerkenle Bo-Peep\nFlorlkishle Boy Poun\nRain\nThe Sqyft\nWinter\nNietens and Klisks\nA Gnuntingenle Jai\nSculk Mursh and Her Cat\nThree Thoochousish on the Ice\nNefs Gask\nThe Soamp Therltle Under a Gloang\nTweedle-Dum and Tweedle-Dee\nOh Steb!\nSwouck Felkid Rarp\nLainowid Yersking Snof\nPat-a-Cake\nSt", + "vacatedSha256": "610a0d8375890ec68a788457b957d248e5e8a279644fc5b339aa7849451a68cf", + "vacatedChars": 94748, "stats": { "domainTypesTotal": 2233, "domainTypesEligible": 1944, @@ -5590,63 +5628,65 @@ "tokensTotal": 16000, "tokensVacated": 6094, "meanSyllablesBefore": 1.29, - "meanSyllablesAfter": 1.273375, + "meanSyllablesAfter": 1.28975, "meanAnapestBefore": 0.3209324983421379, - "meanAnapestAfter": 0.3233955374015627, + "meanAnapestAfter": 0.3215726757806852, "stressFromTableBefore": 0.0514375, "stressFromTableAfter": 0.017375, "stressFromMintedBefore": 0.0, - "stressFromMintedAfter": 0.3034375, + "stressFromMintedAfter": 0.303375, "stressFromRuleBefore": 0.9485625, - "stressFromRuleAfter": 0.6791875, + "stressFromRuleAfter": 0.67925, "bijective": true, "imageSize": 2233, "remintRounds": 0 }, "stemForms": null, "idStream": null, - "mapVocabWordsRejects": true, - "knownDivergence": { - "cause": "the per-occurrence mint derives its stress pattern from different strings. \u00a75.8 pins the KEY as f'{stem}#{idx}' and \u00a75.5's mint reads its pattern off the string it is handed, so Python calls _mint('little#0') and gets stress('little#0') = '10' (2 syllables, via the spelling rule, because 'little#0' is not in the hand table); TypeScript computes stress('little') = '100' (3 syllables, from the table) and passes the key only to the byte stream. \u00a77.1 defines matchProsody as 'the nonce carries THE STEM's syllable count and stress', and \u00a710 defines stressFromMinted as the pattern we registered for a form \u2014 both of which describe the stem's prosody, not a synthetic key's, so TypeScript's reading is the contract's. The contract pins the key and is silent on the pattern; that silence is the gap. Only the minted FORMS differ: every count, including tokensVacated and both vacated-type counts, agrees exactly, so the control still measures what SC-705 says it does.", - "status": "reported, unfixed \u2014 neither implementation was modified to build this fixture. Both readings are pinned exactly, so fixing either stack turns vacancyGolden.test.ts red at this block and the exemption cannot outlive the defect.", - "fields": [ - { - "field": "vacatedSha256", - "python": "e8565c25a3958c14a2d29c14fc401e1618e98bf86a81aa52d288105e963c9326", - "typescript": "610a0d8375890ec68a788457b957d248e5e8a279644fc5b339aa7849451a68cf" - }, - { - "field": "vacatedChars", - "python": 94216, - "typescript": 94748 - }, - { - "field": "stats.meanSyllablesAfter", - "python": 1.273375, - "typescript": 1.28975 - }, - { - "field": "stats.meanAnapestAfter", - "python": 0.3233955374015627, - "typescript": 0.3215726757806852 - }, - { - "field": "stats.stressFromMintedAfter", - "python": 0.3034375, - "typescript": 0.303375 - }, - { - "field": "stats.stressFromRuleAfter", - "python": 0.6791875, - "typescript": 0.67925 - }, - { - "field": "head400", - "python": " THE GLAIRN\n SCIRRDER PLERNT\n\n _Wroormowyed by_\nBlanche Thursper Styn\n\n1916\n\n\n\nA HURF OF THE YORCKES\n\nWrerken Bo-Peep\nFlorlkish Boy Poun\nRain\nThe Sqyft\nWinter\nNietens and Klisks\nA Gnuntingenle Jai\nSculk Mursh and Her Cat\nThree Thoochous on the Ice\nNefs Gask\nThe Soamp Therltle Under a Gloang\nTweedle-Dum and Tweedle-Dee\nOh Steb!\nSwouck Felkid Rarp\nSqarbley Yersking Snof\nPat-a-Cake\nStoabent ", - "typescript": " THE GLAIRN\n SCIRRDER PLERNT\n\n _Wroormowyed by_\nBlanche Thursper Styn\n\n1916\n\n\n\nA HURF OF THE YORCKES\n\nWrerkenle Bo-Peep\nFlorlkishle Boy Poun\nRain\nThe Sqyft\nWinter\nNietens and Klisks\nA Gnuntingenle Jai\nSculk Mursh and Her Cat\nThree Thoochousish on the Ice\nNefs Gask\nThe Soamp Therltle Under a Gloang\nTweedle-Dum and Tweedle-Dee\nOh Steb!\nSwouck Felkid Rarp\nLainowid Yersking Snof\nPat-a-Cake\nSt" - } - ] - } + "mapVocabWordsRejects": true + }, + { + "label": "control-inconsistent-seed7", + "map": "control-inconsistent-seed7", + "params": { + "p": 1.0, + "seed": 7, + "consistent": false, + "matchProsody": true, + "revealAfter": 0, + "keep": [] + }, + "head400": " THE BLORM\n SWERFFISH MORT\n\n _Plourerered by_\nTreesp Mearter Krad\n\n1916\n\n\n\nA YOORN OF THE GERLTES\n\nWreazzleerum Bo-Peep\nShilidy Throuf Squrm\nPook\nThe Jorrk\nFyler\nYichums and Virks\nA Scaitenticen Flirck\nPlerp Gnuz and Her Zersk\nThree Sqyrmouser on the Rars\nGeashs Horrd\nThe Naull Thistid Under a Nourn\nTweedle-Dum and Tweedle-Dee\nOh Skoa!\nBoaff Worbish Wrog\nStortelle Heasting Waud\nPat-a-Cake", + "vacatedSha256": "25df4453ac73c95e3a61db45fca3329b4b03bf08b3b9a74b161cebe618772292", + "vacatedChars": 97263, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1944, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1922, + "stemsTotal": 1680, + "stemsVacated": 1680, + "tokensTotal": 16000, + "tokensVacated": 8202, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.2903125, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.32138700134802295, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.012, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.4041875, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.5838125, + "bijective": true, + "imageSize": 2233, + "remintRounds": 1 + }, + "stemForms": null, + "idStream": null, + "mapVocabWordsRejects": true }, { "label": "control-reveal-after-2", @@ -5689,18 +5729,7 @@ }, "stemForms": null, "idStream": null, - "mapVocabWordsRejects": true, - "knownDivergence": { - "cause": "corpusTypesVacated: Python MEASURES it from the two texts (vacancy.py::vacancy_stats), TypeScript computes it through the map (vacancy.ts::countTypes). They agree everywhere except revealAfter > 0, where a type all of whose occurrences fall inside the reveal window stays English in the text while the map still assigns it a nonce. \u00a710 defines corpusTypes* as what the panel shows a READER \u2014 i.e. what the text does \u2014 so the measured reading is the contract's and countTypes over-reports by 2x in exactly the condition this control exists to measure. countTypes's own comment argues condition-independence only for consistent = false, where it is right; it is silent on revealAfter, where it is wrong.", - "status": "reported, unfixed \u2014 neither implementation was modified to build this fixture. Both readings are pinned exactly, so fixing either stack turns vacancyGolden.test.ts red at this block and the exemption cannot outlive the defect.", - "fields": [ - { - "field": "stats.corpusTypesVacated", - "python": 665, - "typescript": 1337 - } - ] - } + "mapVocabWordsRejects": true } ], "nesting": { diff --git a/code/frontend/tests/unit/vacancy.test.ts b/code/frontend/tests/unit/vacancy.test.ts index 4f29251..15e81e7 100644 --- a/code/frontend/tests/unit/vacancy.test.ts +++ b/code/frontend/tests/unit/vacancy.test.ts @@ -621,6 +621,48 @@ describe("the control conditions really are different conditions", () => { expect(new Set(tokenize(inconsistent)).size).toBeGreaterThan(new Set(tokenize(consistent)).size); }); + it("condition B applies to the per-occurrence path too — the seed-7 `tak` case", () => { + // §5.8. Condition B — no minted form may equal a domain type — was enforced when + // building the map and NOT on the `consistent = false` minting path. Observable at + // seed 7, `p = 1`: the stem `tak` (of `taking`) minted the nonce `tak`, so + // `Taking -> Taking` and one token silently failed to vacate — `corpusTypesVacated` + // 1921 against the consistent path's 1922, `tokensVacated` 8201 against 8202. + // + // §7.1 denies this control a STABILITY property, which is about a nonce being reused + // across occurrences; it does not license a word surviving the transform. A control + // whose vacancy rate is not the stated rate is not a control, so a per-occurrence nonce + // must equal neither a domain type nor the stem it replaces. + // + // `tak` is a stem, not a type, which is why the domain did not already forbid it: the + // domain holds the corpus's TYPES (`taking`, `takes`, …) plus the Dolch list. + expect(stemAndSuffix("taking")).toEqual(["tak", "ing"]); + expect(DOMAIN.includes("tak")).toBe(false); + expect(DOMAIN.includes("taking")).toBe(true); + + for (const s of SEEDS) { + // A fresh map per condition: `consistent = false` writes to `mintedStress`. + const cfg = params({ seed: s, p: 1, consistent: false }); + const vmap = buildVacancyMap(DOMAIN, cfg); + const text = vacateText(CORPUS, vmap, cfg); + const stats = vacancyStats(CORPUS, text, vmap, cfg); + // At `p = 1` every eligible type vacates (§10) — in this control exactly as in the + // mapped condition, which is the whole claim. + expect(stats.corpusTypesVacated, `seed ${s}`).toBe(1922); + expect(stats.corpusTypesEligible, `seed ${s}`).toBe(1922); + expect(stats.tokensVacated, `seed ${s}`).toBe(8202); + + // No eligible token survives the transform as itself. + const before = tokenize(CORPUS); + const after = tokenize(text); + const survivors: string[] = []; + for (let i = 0; i < before.length; i++) { + if (!isEligible(stemAndSuffix(before[i])[0], effectiveKeepSet([]))) continue; + if (after[i] === before[i]) survivors.push(before[i]); + } + expect(survivors, `seed ${s}`).toEqual([]); + } + }); + it("revealAfter > 0 leaves the first occurrences in English", () => { const revealed = vacateText(CORPUS, mapFor(seed), params({ seed, p: 1, revealAfter: 2 })); const pure = vacated(seed, 1); @@ -752,6 +794,70 @@ describe("§10 statistics", () => { } }); + it("measures corpusTypesVacated from the texts, not from map membership, under revealAfter", () => { + // The defect the golden fixture caught. A type whose every occurrence falls inside the + // reveal window is STILL LISTED IN THE MAP but has changed nowhere in the text, so map + // membership over-reports it. The two readings coincide at revealAfter = 0, which is + // why only a control condition exposed it. + const seed = 0; + const cfg = params({ seed, p: 1, revealAfter: 1 }); + const revealed = vacateText(CORPUS, mapFor(seed), cfg); + const s = vacancyStats(CORPUS, revealed, mapFor(seed), cfg); + + // The text-measured count, computed here independently of the implementation. + const beforeToks = tokenize(CORPUS); + const afterToks = tokenize(revealed); + const changed = new Set(); + for (let i = 0; i < beforeToks.length; i++) { + if (beforeToks[i] !== afterToks[i]) changed.add(beforeToks[i]); + } + expect(s.corpusTypesVacated).toBe(changed.size); + + // ...and it is strictly smaller than what map membership would have said, which is the + // number the domain scope still reports (deliberately — see below). + const byMap = [...CORPUS_TYPES].filter((t) => { + const [stem] = stemAndSuffix(t); + return isEligible(stem, effectiveKeepSet()) && vacancyU(stem, seed) < 1; + }).length; + expect(s.corpusTypesVacated).toBeLessThan(byMap); + expect(byMap).toBe(s.corpusTypesEligible); + }); + + it("pins the exact golden-fixture case the defect was found at: p = 0.7, revealAfter = 2", () => { + // The coordinate the two stacks split on, reproduced to the type. Map membership says + // 1337 and the texts say 665 — the 2x over-report, at the golden fixture's own p. + const seed = 0; + const cfg = params({ seed, p: 0.7, revealAfter: 2 }); + const s = vacancyStats(CORPUS, vacateText(CORPUS, mapFor(seed), cfg), mapFor(seed), cfg); + const byMap = [...CORPUS_TYPES].filter((t) => { + const [stem] = stemAndSuffix(t); + return isEligible(stem, effectiveKeepSet()) && vacancyU(stem, seed) < 0.7; + }).length; + expect(byMap).toBe(1337); + expect(s.corpusTypesVacated).toBe(665); + // The domain scope keeps the map reading, and so is unmoved by revealAfter. + expect(s.domainTypesVacated).toBe(1354); + }); + + it("agrees at revealAfter = 0 and diverges at revealAfter > 0", () => { + // The property that would have caught the defect, asserted directly. + for (const seed of SEEDS) { + const pure = params({ seed, p: 1, revealAfter: 0 }); + const held = params({ seed, p: 1, revealAfter: 1 }); + const sPure = vacancyStats(CORPUS, vacated(seed, 1), mapFor(seed), pure); + const sHeld = vacancyStats(CORPUS, vacateText(CORPUS, mapFor(seed), held), mapFor(seed), held); + + // At revealAfter = 0 the text reading and the map reading are the same number. + expect(sPure.corpusTypesVacated).toBe(sPure.corpusTypesEligible); + // At revealAfter > 0 the text-measured count is STRICTLY smaller... + expect(sHeld.corpusTypesVacated).toBeLessThan(sPure.corpusTypesVacated); + // ...while the domain scope, which reads map membership, does not move at all. + expect(sHeld.domainTypesVacated).toBe(sPure.domainTypesVacated); + // Tokens are text-measured in both, so they drop too — by one per revealed type. + expect(sHeld.tokensVacated).toBeLessThan(sPure.tokensVacated); + } + }); + it("splits stress three ways, summing to 1 on each side", () => { for (const p of P_GRID) { const s = vacancyStats(CORPUS, vacated(0, p), mapFor(0), params({ seed: 0, p })); diff --git a/code/frontend/tests/unit/vacancyGolden.test.ts b/code/frontend/tests/unit/vacancyGolden.test.ts index 4182fa8..152d3d4 100644 --- a/code/frontend/tests/unit/vacancyGolden.test.ts +++ b/code/frontend/tests/unit/vacancyGolden.test.ts @@ -45,29 +45,35 @@ * `tolerance`, and the measured worst deviation is printed at the end of the run so a * silent creep toward the bound is visible. * - * TWO KNOWN DIVERGENCES, pinned rather than hidden. Both are in the CONTROL conditions; - * every mapped-condition case — both seeds, both `matchProsody` settings, every `p` — - * agrees field for field, string for string, digest for digest. + * NO KNOWN DIVERGENCES REMAIN. Every case here — both seeds, both `matchProsody` settings, + * every `p`, and all three controls — agrees field for field, string for string, digest for + * digest. Three earlier disagreements were pinned in this file rather than hidden, and each + * was retired by fixing the stack the contract said was wrong, never by loosening a + * comparison: * - * 1. `control-reveal-after-2`: `corpusTypesVacated` reads 665 in Python and 1337 here, - * because Python MEASURES the count from the two texts while `countTypes` computes it + * 1. `control-reveal-after-2`: `corpusTypesVacated` read 665 in Python and 1337 here, + * because Python MEASURED the count from the two texts while this engine computed it * through the map. §10 defines `corpusTypes*` as what the panel shows a READER — i.e. - * what the text does — so the measured reading is the contract's, and this engine - * over-reports by 2x in exactly the condition the control exists to measure. - * 2. `control-inconsistent`: the two stacks mint DIFFERENT per-occurrence nonces, so the - * vacated text, its digest, its length and four prosody means differ. §5.8 pins the - * key as `${stem}#${idx}` and §5.5's mint reads its stress pattern off the string it - * is handed; Python passes the key and gets `stress("little#0") = "10"`, this engine - * computes `stress("little") = "100"` and passes the key only to the byte stream — - * `Little` becomes `Wrerken` there and `Wrerkenle` here. §7.1 defines `matchProsody` - * as "the nonce carries THE STEM's syllable count and stress", so this engine's - * reading is the contract's. Every count still agrees, `tokensVacated` included, so - * SC-705's measurement is unaffected. + * what the text does — so the measured reading was the contract's. `vacancyStats` now + * measures the texts; `domainTypes*` keeps map membership, which §10 also requires. + * 2. `control-inconsistent`: the two stacks minted DIFFERENT per-occurrence nonces. §5.8 + * pins the key as `${stem}#${idx}` and §5.5's mint read its stress pattern off the + * string it was handed, so Python got `stress("little#0") = "10"` where this engine + * gets `stress("little") = "100"` — `Little` minted as `Wrerken` there and `Wrerkenle` + * here. §7.1 says the nonce carries THE STEM's syllable count and stress, so the key + * must not reach the prosody lookup; Python's `_mint` now takes `stem` separately. + * 3. Condition B on the per-occurrence path (§5.8). It was enforced when building the map + * and not in the `consistent = false` control, so at seed 7, `p = 1`, the stem `tak` + * minted the nonce `tak` and `Taking -> Taking`: one token silently failed to vacate. + * Both stacks now forbid a per-occurrence nonce from equalling the stem it replaces as + * well as any domain type, and `control-inconsistent-seed7` pins the result — 1922 + * corpus types and 8202 tokens vacated, exactly what `consistent = true` reads. * - * Both are reported, and NEITHER implementation was modified to make this fixture green. - * The fixture's `knownDivergence` block carries, per field, both values; this test asserts - * each side against its own, so fixing either stack turns this test red and the exemption - * cannot outlive the defect. + * The `knownDivergence` mechanism itself stays: it carries both readings per field, this + * test asserts each side against its own, and `attach_divergence` in the exporter refuses to + * write a fixture at all once Python starts agreeing with a recorded TypeScript value. That + * guard is what retired all three entries above, and it is what an outstanding cross-stack + * defect would use again. */ import { afterAll, describe, expect, it } from "vitest"; @@ -575,15 +581,17 @@ describe("the control conditions are present and behave as controls (§7.1, SC-7 expect(reveal?.stats.tokensVacated as number).toBeLessThan(pure?.stats.tokensVacated as number); }); - it("every known divergence is documented, and confined to a control", () => { - // The exemption mechanism is itself constrained: a divergence may only appear on a - // control case, and it must carry the explanation and the status. A mapped-condition - // case acquiring one would mean the invariance theorem's own arm had stopped agreeing. + it("no divergence remains, and any that appeared would still be constrained", () => { + // The two stacks now agree on every case, so this list is EMPTY — asserted, because a + // fixture that quietly reacquired an exemption would look exactly like a green run. const flagged = golden.cases.filter((c) => c.knownDivergence !== undefined); - expect(flagged.map((c) => c.label).sort()).toEqual([ - "control-inconsistent", - "control-reveal-after-2", - ]); + expect(flagged.map((c) => c.label)).toEqual([]); + + // The rest of this test is the constraint the mechanism carries, kept live for the day + // it is needed again: a divergence may appear only on a CONTROL case, it must carry the + // explanation and the status, and it may never cover a count the control exists to + // produce. A mapped-condition case acquiring one would mean the invariance theorem's + // own arm had stopped agreeing. for (const gc of flagged) { const d = gc.knownDivergence as GoldenDivergence; expect(gc.params.consistent && gc.params.revealAfter === 0).toBe(false); @@ -592,8 +600,8 @@ describe("the control conditions are present and behave as controls (§7.1, SC-7 expect(d.fields.length).toBeGreaterThan(0); for (const f of d.fields) expect(f.python).not.toBe(f.typescript); } - // The counts a control exists to produce agree in BOTH stacks — SC-705 is unaffected - // by either defect, and that has to be asserted rather than assumed. + // The counts a control exists to produce must agree in BOTH stacks — a divergence there + // would mean SC-705's measurement itself had moved, which no exemption may cover. for (const gc of flagged) { const names = new Set((gc.knownDivergence as GoldenDivergence).fields.map((f) => f.field)); expect(names.has("stats.tokensVacated")).toBe(false); @@ -610,6 +618,27 @@ describe("the control conditions are present and behave as controls (§7.1, SC-7 // Different text, because each occurrence gets its own type. expect(control?.vacatedSha256).not.toBe(pure?.vacatedSha256); }); + + it("consistent = false vacates EVERYTHING at p = 1, seed 7 — the `tak` regression", () => { + // §5.8, condition B on the per-occurrence path. `tak` (the stem of `taking`) once minted + // the nonce `tak` at seed 7, so `Taking -> Taking` and one token silently survived the + // transform: 1921 corpus types and 8201 tokens against the consistent path's 1922/8202. + // A control whose vacancy rate is not the stated rate is not a control, so the identity + // §10 states at `p = 1` — every eligible type vacates — has to hold here too. + const control = golden.cases.find((c) => c.label === "control-inconsistent-seed7"); + const pure = golden.cases.find((c) => c.label === "seed7-p1.0"); + expect(control).toBeDefined(); + expect(control?.params.consistent).toBe(false); + expect(control?.params.p).toBe(1); + expect(control?.stats.corpusTypesVacated).toBe(1922); + expect(control?.stats.tokensVacated).toBe(8202); + expect(control?.stats.corpusTypesVacated).toBe(control?.stats.corpusTypesEligible); + // The consistent path at the same seed and `p` reads the same counts; only the text + // differs, which is exactly what this control is for. + expect(control?.stats.corpusTypesVacated).toBe(pure?.stats.corpusTypesVacated); + expect(control?.stats.tokensVacated).toBe(pure?.stats.tokensVacated); + expect(control?.vacatedSha256).not.toBe(pure?.vacatedSha256); + }); }); afterAll(() => { diff --git a/scripts/export_vacancy_golden.py b/scripts/export_vacancy_golden.py index b403b75..1bd4868 100644 --- a/scripts/export_vacancy_golden.py +++ b/scripts/export_vacancy_golden.py @@ -60,53 +60,43 @@ therefore builds its own map, and the test must do the same or its statistics will be scored against patterns left behind by a previous case. -TWO MEASURED DISAGREEMENTS BETWEEN THE STACKS, pinned rather than papered over. Each is a -real defect in one implementation, each is reported, and NEITHER implementation was touched -to build this fixture — a golden file that quietly matched the two would destroy the -evidence. Both sit in the CONTROL conditions; every mapped-condition case (both seeds, both -``matchProsody`` settings, every `p`) agrees field for field, string for string, digest for -digest. - -**1. ``corpusTypesVacated`` under ``revealAfter > 0``** — Python 665, TypeScript 1337. - -* Python (``vacancy.py::vacancy_stats``) MEASURES it: ``len({b.lower() for b, a in - zip(before, after) if b.lower() != a.lower()})``, i.e. types that actually changed in the - text. -* TypeScript (``vacancy.ts::countTypes``) computes it THROUGH THE MAP: a type counts if - ``u(stem) < p`` and its surface form differs, whatever the rewrite did. - -They agree everywhere except ``revealAfter > 0``, where a type all of whose occurrences fall -inside the reveal window stays English in the text while the map still assigns it a nonce. -§10 says ``corpusTypes*`` is "what the panel shows a reader", and the reader is looking at -the text — so the MEASURED reading (Python's) is the contract's, and the map-based one -over-reports by 2x in exactly the condition this control exists to measure. ``countTypes``'s -own comment argues condition-independence only for ``consistent = false``, where it is -right; it is silent on ``revealAfter``, where it is wrong. - -**2. The minted forms under ``consistent = false``** — the two stacks mint DIFFERENT nonces, -so the vacated text, its digest, its length and four prosody means all differ. - -§5.8 pins the per-occurrence KEY as ``f"{stem}#{idx}"`` and §5.5's mint reads its stress -pattern off the string it is handed. Python passes the key and therefore mints to -``stress("little#0") == "10"`` — two syllables, via the spelling rule, because ``little#0`` -is not in the hand table. TypeScript computes ``stress("little") == "100"`` — three -syllables, from the table — and passes the key only to the byte stream. So ``Little`` becomes -``Wrerken`` in one stack and ``Wrerkenle`` in the other. - -§7.1 defines ``matchProsody`` as "the nonce carries **the stem's** syllable count and -stress", and §10 defines ``stressFromMinted`` as the pattern we registered for a form — both -describe the STEM's prosody, not a synthetic key's. TypeScript's reading is therefore the -contract's; Python's derives prosody from a string containing ``#`` and a digit. The contract -pins the key and says nothing about the pattern, and that silence is the gap. Note the -control still controls: every count, ``tokensVacated`` included, agrees exactly, so SC-705's -measurement is unaffected. - -Until each is fixed, both readings are pinned. ``knownDivergence`` on the affected case -carries, per field, the Python value from THIS run and the MEASURED TypeScript value, plus -the explanation above; the golden test asserts each side against its own. Fixing either -stack turns the test red at that block — and ``attach_divergence`` refuses to write a fixture -at all once Python agrees with the recorded TypeScript reading, so the exemption cannot -outlive the defect. +NO DISAGREEMENTS REMAIN BETWEEN THE STACKS. Every case in this fixture — both seeds, both +``matchProsody`` settings, every `p`, and both control conditions — agrees field for field, +string for string, digest for digest. That was not true when the fixture was first written, +and the history is worth keeping because it is what the mechanism below exists for. + +Three defects were pinned here as ``knownDivergence`` blocks and have since been fixed in +the stack the contract said was wrong. Each was fixed in the IMPLEMENTATION; none was fixed +by loosening this file: + +1. **``corpusTypesVacated`` under ``revealAfter > 0``** — Python 665, TypeScript 1337. + Python MEASURED the count from the two texts; TypeScript computed it through the map, so + a type whose every occurrence fell inside the reveal window was still counted. §10 says + ``corpusTypes*`` is "what the panel shows a reader", and the reader is looking at the + text, so the measured reading was the contract's. TypeScript now measures the texts too + (``domainTypes*`` keeps map membership, which §10 also requires — the 22 Dolch-only words + have no occurrences to measure). +2. **Prosody of the per-occurrence mint under ``consistent = false``.** §5.8 pins the key as + ``f"{stem}#{idx}"`` and §5.5's mint read its stress pattern off the string it was handed, + so Python got ``stress("little#0") == "10"`` instead of ``stress("little") == "100"`` and + ``Little`` minted as ``Wrerken`` rather than ``Wrerkenle``. §7.1 says the nonce carries + THE STEM's syllable count and stress, so the key must not reach the prosody lookup. + Python's ``_mint`` now takes ``stem`` separately from ``key``. +3. **Condition B on the per-occurrence path** (§5.8, added to the contract with this fix). + It was enforced when building the map and not in the ``consistent = false`` control, so + at seed 7, `p = 1`, the stem ``tak`` minted the nonce ``tak`` and ``Taking -> Taking``: + ``corpusTypesVacated`` 1921 against the consistent path's 1922, ``tokensVacated`` 8201 + against 8202. Both stacks now forbid a per-occurrence nonce from equalling the stem it + replaces as well as any domain type, and the control vacates 1922 types / 8202 tokens at + both seeds, exactly as ``consistent = true`` does. + +``KNOWN_DIVERGENCES`` is therefore EMPTY, and it is kept — with ``attach_divergence`` and +``DIVERGENCE_STATUS`` — rather than deleted, because it is the honest way to ship a fixture +while a real cross-stack defect is outstanding: record BOTH readings, assert each side +against its own, and refuse to write the fixture at all the moment Python starts agreeing +with the recorded TypeScript value. That guard is what retired all three entries above; it +fired on ``control-inconsistent.vacatedSha256`` and would not let the stale exemption be +regenerated. An entry added here must be MEASURED on both sides, never predicted. """ from __future__ import annotations @@ -210,75 +200,27 @@ NESTING_SEED = 0 NESTING_PS: tuple[float, ...] = (0.0, 0.35, 0.7, 1.0) -#: The two measured cross-stack disagreements — see the module docstring for what they are -#: and why they are recorded instead of reconciled. Both live in the CONTROL conditions; -#: every mapped-condition case agrees field for field. +#: Measured cross-stack disagreements, recorded instead of reconciled — see the module +#: docstring. **Currently EMPTY: the two stacks agree on every case in this fixture.** The +#: three entries this dict used to carry are listed there, with what each one was and which +#: stack was fixed; none of them was retired by editing this file. #: -#: Every ``typescript`` value below is MEASURED, by running the real browser engine on the -#: real corpus at that case's parameters: +#: The mechanism stays because it is the honest way to ship a fixture over an outstanding +#: defect. To add an entry, every ``typescript`` value must be MEASURED, by running the real +#: browser engine on the real corpus at that case's parameters: #: #: const vmap = buildVacancyMap(vacancyDomain(new Set(tokenize(CORPUS))), params); #: const vacated = vacateText(CORPUS, vmap, params); #: const stats = vacancyStats(CORPUS, vacated, vmap, params); #: -#: None of them is a prediction and none is derived here. ``build_document`` asserts that -#: the Python side still disagrees with each one, so if either stack is fixed this exporter -#: fails loudly rather than shipping a stale exemption. -KNOWN_DIVERGENCES: dict[str, dict[str, Any]] = { - "control-reveal-after-2": { - "cause": ( - "corpusTypesVacated: Python MEASURES it from the two texts " - "(vacancy.py::vacancy_stats), TypeScript computes it through the map " - "(vacancy.ts::countTypes). They agree everywhere except revealAfter > 0, where " - "a type all of whose occurrences fall inside the reveal window stays English in " - "the text while the map still assigns it a nonce. §10 defines corpusTypes* as " - "what the panel shows a READER — i.e. what the text does — so the measured " - "reading is the contract's and countTypes over-reports by 2x in exactly the " - "condition this control exists to measure. countTypes's own comment argues " - "condition-independence only for consistent = false, where it is right; it is " - "silent on revealAfter, where it is wrong." - ), - "fields": {"stats.corpusTypesVacated": 1337}, - }, - "control-inconsistent": { - "cause": ( - "the per-occurrence mint derives its stress pattern from different strings. " - "§5.8 pins the KEY as f'{stem}#{idx}' and §5.5's mint reads its pattern off the " - "string it is handed, so Python calls _mint('little#0') and gets " - "stress('little#0') = '10' (2 syllables, via the spelling rule, because " - "'little#0' is not in the hand table); TypeScript computes stress('little') = " - "'100' (3 syllables, from the table) and passes the key only to the byte " - "stream. §7.1 defines matchProsody as 'the nonce carries THE STEM's syllable " - "count and stress', and §10 defines stressFromMinted as the pattern we " - "registered for a form — both of which describe the stem's prosody, not a " - "synthetic key's, so TypeScript's reading is the contract's. The contract pins " - "the key and is silent on the pattern; that silence is the gap. Only the minted " - "FORMS differ: every count, including tokensVacated and both vacated-type " - "counts, agrees exactly, so the control still measures what SC-705 says it does." - ), - "fields": { - "vacatedSha256": ( - "610a0d8375890ec68a788457b957d248e5e8a279644fc5b339aa7849451a68cf" - ), - "vacatedChars": 94748, - "stats.meanSyllablesAfter": 1.28975, - "stats.meanAnapestAfter": 0.3215726757806852, - "stats.stressFromMintedAfter": 0.303375, - "stats.stressFromRuleAfter": 0.67925, - "head400": ( - " THE GLAIRN\n SCIRRDER PLERNT\n\n _Wroormowyed by_\nBlanche " - "Thursper Styn\n\n1916\n\n\n\nA HURF OF THE YORCKES\n\nWrerkenle " - "Bo-Peep\nFlorlkishle Boy Poun\nRain\nThe Sqyft\nWinter\nNietens and " - "Klisks\nA Gnuntingenle Jai\nSculk Mursh and Her Cat\nThree Thoochousish on " - "the Ice\nNefs Gask\nThe Soamp Therltle Under a Gloang\nTweedle-Dum and " - "Tweedle-Dee\nOh Steb!\nSwouck Felkid Rarp\nLainowid Yersking Snof\n" - "Pat-a-Cake\nSt" - ), - }, - }, -} - -#: Shared by both entries above, so the wording cannot drift between them. +#: Never a prediction, and never derived here. ``attach_divergence`` then asserts that the +#: Python side still disagrees with each recorded value, so the moment the defect is fixed +#: this exporter refuses to write a fixture at all rather than shipping a stale exemption. +#: Shape: ``{case label: {"cause": str, "fields": {field path: typescript value}}}``, where +#: a field path is a case key (``head400``) or ``stats.``. +KNOWN_DIVERGENCES: dict[str, dict[str, Any]] = {} + +#: Shared by every entry, so the wording cannot drift between them. DIVERGENCE_STATUS = ( "reported, unfixed — neither implementation was modified to build this fixture. Both " "readings are pinned exactly, so fixing either stack turns vacancyGolden.test.ts red at " @@ -541,8 +483,17 @@ def build_document(generated: str) -> dict[str, Any]: # --- the two control conditions (§7.1), each on its OWN map ----------------------- # `consistent = false` writes to `minted_stress`; sharing a map across cases would let # one case's minted patterns score another case's text. + # + # `control-inconsistent-seed7` is the seed-7 CONDITION-B regression, pinned as data. + # It is at `p = 1` and not `0.7` deliberately: §10's identity says every eligible type + # vacates at full vacancy, so this case must read `corpusTypesVacated == 1922` and + # `tokensVacated == 8202` — exactly what `consistent = true` reads. Before the fix it + # read 1921 / 8201, because the stem `tak` minted the nonce `tak` and `Taking` survived + # the transform. Seed 0 shows nothing here (no stem mints itself), which is why the + # defect lived in the one control the fixture already had. for label, params in ( ("control-inconsistent", VacancyParams(seed=0, p=0.7, consistent=False)), + ("control-inconsistent-seed7", VacancyParams(seed=7, p=1.0, consistent=False)), ("control-reveal-after-2", VacancyParams(seed=0, p=0.7, reveal_after=2)), ): fresh = build_vacancy_map(domain, params) From 4c2c3dae507afd1f9a8219001e665601b7e1c0b4 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 11:06:25 -0400 Subject: [PATCH 30/38] Pin `forbidden` as stored, including superseded re-mint nonces One stack stored the set; the other rebuilt it as domain plus mapping values, which silently drops every nonce a re-mint round replaced (`wak` at seed 7). Nothing observable diverges today -- every digest agrees -- but the two sets are genuinely different, and the per-occurrence path of the inconsistent control now draws against `forbidden`, so it is one unlucky hash away from mattering. Superseded nonces stay forbidden because they were rejected for a reason: reusing one can recreate the collision the re-mint resolved. Reported by the agent that fixed the `tak` defect, as a latent asymmetry rather than a failure -- which is the right way to surface something no test catches. Co-Authored-By: Claude Opus 5 (1M context) --- specs/007-vacancy-transform-field/architecture.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index 5783bae..e6e212e 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -432,6 +432,13 @@ These were gaps, not choices. Both stacks do it this way or the golden fixture f argument. The source used a module-level `MINTED_STRESS` dict mutated by `register_minted`, which makes two concurrently-live maps corrupt each other — and the Lexicon Lab holds several at once (one per condition being compared). +- **`forbidden` is STORED, not reconstructed, and includes superseded re-mint nonces.** One + stack stored it; the other rebuilt it as `domain ∪ mapping.values()`, which silently drops + every nonce that a re-mint round replaced (`wak` at seed 7). Nothing observable diverges from + that today — all digests agree — but the two sets are genuinely different, and the + per-occurrence path of the `consistent = false` control now *draws against* `forbidden`, so it + is one unlucky hash away from mattering. Superseded nonces stay forbidden because they were + rejected for a reason: reusing one can recreate the very collision the re-mint resolved. - **`VacancyMap`'s stem→nonce field is `mapping` in both stacks.** TypeScript called it `map` and Python `mapping`, which is the third naming asymmetry this feature produced (after the missing `vacancyDomain` helper and the `avoid` default) and cost a debugging round for From 7dc491808cea5dc07b4b397e8ca50d217586165a Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 11:11:40 -0400 Subject: [PATCH 31/38] Notes: the 13 contract defects, and how each was found Recording this because the method mattered more than any individual fix. The two stacks were written independently from the contract precisely so they could disagree, and every disagreement turned out to be a defect in the document rather than in either implementation. I caught none of them by re-reading. Four would have broken the invariance theorem silently. Three were found only because a stack was told to STOP and report rather than reconcile its numbers to the other -- a golden fixture built over a silent reconciliation would have cemented both stacks being consistently wrong, with a green suite on top. Co-Authored-By: Claude Opus 5 (1M context) --- ...026-08-04-feature-007-vacancy-transform.md | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/notes/2026-08-04-feature-007-vacancy-transform.md b/notes/2026-08-04-feature-007-vacancy-transform.md index 617bdae..1171dc0 100644 --- a/notes/2026-08-04-feature-007-vacancy-transform.md +++ b/notes/2026-08-04-feature-007-vacancy-transform.md @@ -154,6 +154,30 @@ running the real thing and comparing against a known-good reference. ## Status +### Contract defects found by BUILDING it (13, not one of which I caught by re-reading) + +The two stacks were written independently from the contract so they could disagree. Every +disagreement turned out to be a defect in the document, never in one implementation: + +1. case — suffix sliced case-preserved, so `gums→flels` but `GUMS→FLESS` (one type, two surfaces) +2. injectivity checked only at `p=1` and over bare nonces — `hanged→waked` collides at `p=0.25` +3. `CODAS` documented as 49 entries; it has 46 +4. `typesVacated` undefined between stems and types (1922 vs 1665) +5. salt thresholds ambiguous between attempt counter and absolute salt +6. domain readable as the *active* budget — would re-mint on every budget switch +7. `avoid` optional, so the map depended on caller memory (0 vs 1 re-mint rounds, different nonces) +8. `vacancyDomain` helper existed in Python only +9. `VacancyMap.map` vs `.mapping` +10. `consistent=false` prosody drawn from the mint key, not the stem +11. `corpusTypesVacated` from map membership vs measured from the texts (1337 vs 665) +12. condition B not applied to the per-occurrence path — `tak→tak`, a word silently surviving +13. `forbidden` stored in one stack, reconstructed in the other (drops superseded nonces) + +Four of these (1, 2, 10, 12) would have broken the invariance theorem. Numbers 4, 11 and 13 were +found only because a stack was told to STOP and report rather than reconcile to the other — a +golden fixture built over a silent reconciliation would have cemented both stacks being +consistently wrong. + - [x] Spec + contract written and committed (`36b9f3d`) - [ ] Python `lex/vacancy.py` + tests - [ ] TS `lexEngine/vacancy.ts` + tests From 533ab2b131001b3e792eda2f51e08c0a57f106c7 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 11:25:02 -0400 Subject: [PATCH 32/38] The vacancy transform on the wire: POST /api/lex/vacancy, both stacks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Feature 007's FR-721/FR-722. The transform already existed in both stacks; this is the layer that lets the panel ask for it and gets the same answer either way. * `POST /api/lex/vacancy` (routes_lex.py) — the corpus-source and budget rules of /api/lex/coverage, plus contract §7.1's knobs, returning §10's statistics under their exact camelCase names, the resolved vocabulary, and which of §7.2's two rules produced it (mapped vs rebuilt). * `POST /api/lex/train` gains an optional `vacancy` object. Absent, byte for byte the endpoint it was. Present, the corpus is vacated server-side and read under §7.2's vocabulary — which under the theorem's conditions makes the losses BIT-IDENTICAL to the English run, asserted rather than described. * `staticClient/lex.ts` computes both live in the browser. The Lexicon Lab is browser-side in BOTH modes, so there was nothing here to refuse. An excerpt and a digest, not the corpus. The vacated text is ~86 kB and the panel re-runs this on every tick of the `p` slider; nothing needs it whole, since the panel shows a screenful (the source's own figure is 400 characters) and a caller that wants to TRAIN on it sends the same parameters to /api/lex/train. What an excerpt cannot do is prove which text it came from, so `vacated_sha256` pins all 86 kB in 64 characters — and that digest is also the single value the two stacks are compared on. The parity that matters: `tests/fixtures/vacancy-api-golden.json` is a transcript of the real route (scripts/export_vacancy_api_golden.py, real app, real corpus, no mocks). `test_api_lex.py::test_vacancy_matches_the_static_client_fixture` asserts the live route still returns it; `staticVacancy.test.ts` asserts the browser reproduces it field for field — statistics, vocabulary, coverage, preview and digest, across six cases including both control conditions and a frequency budget. One document, two stacks, no way for either to drift alone. Measured and asserted on the shipped corpus: domain 2233 types, 1680 stems, seed 0 `remintRounds` 0 and seed 7 `remintRounds` 1; at p=1, `corpusTypesVacated` 1922 of 1922 eligible (2211 total) and `tokensVacated` 8202. Nothing in lex/vacancy.py or lexEngine/vacancy.ts was touched: `VacancyParams` is built by keyword and the train cache key is read off the dataclass's own fields, so the `mint: "swap"` parameter landing in those modules costs one line here and cannot silently reuse a cache entry made before it existed. Co-Authored-By: Claude Opus 5 (1M context) --- .../src/llm_geometry/api/routes_lex.py | 268 +++- code/backend/tests/contract/test_api_lex.py | 265 ++++ code/frontend/src/lib/staticClient/lex.ts | 283 +++- .../tests/fixtures/vacancy-api-golden.json | 1170 +++++++++++++++++ .../frontend/tests/unit/staticVacancy.test.ts | 336 +++++ scripts/export_vacancy_api_golden.py | 198 +++ 6 files changed, 2516 insertions(+), 4 deletions(-) create mode 100644 code/frontend/tests/fixtures/vacancy-api-golden.json create mode 100644 code/frontend/tests/unit/staticVacancy.test.ts create mode 100644 scripts/export_vacancy_api_golden.py diff --git a/code/backend/src/llm_geometry/api/routes_lex.py b/code/backend/src/llm_geometry/api/routes_lex.py index 536c221..654f92c 100644 --- a/code/backend/src/llm_geometry/api/routes_lex.py +++ b/code/backend/src/llm_geometry/api/routes_lex.py @@ -28,6 +28,7 @@ from __future__ import annotations import base64 +import dataclasses import hashlib import threading from functools import lru_cache @@ -551,6 +552,225 @@ async def coverage(request: Request) -> dict[str, Any]: ) +# -- POST /api/lex/vacancy ----------------------------------------------------------------- + +#: Characters of vacated text returned inline by default, and the ceiling a caller may ask +#: for. See :func:`vacancy` for why this endpoint returns an excerpt plus a digest rather +#: than the whole corpus. Both numbers are mirrored in +#: `code/frontend/src/lib/staticClient/lex.ts`; the API-parity fixture pins them together. +VACANCY_PREVIEW_CHARS = 2000 +VACANCY_PREVIEW_MAX = 20000 + + +def _vacancy_params(payload: dict[str, Any]) -> Any: + """Coerce contract §7.1's knobs out of a raw JSON object. + + Every value goes through the same coercers the rest of this module uses, and the + range checks live in ``VacancyParams.__post_init__`` — which raises + ``InvalidParamError`` itself, so a bad `p` is a 422 in the shared envelope rather than + a 500 out of the dataclass. + + Passed by keyword on purpose: the transform's parameter set is still growing (the + swap-mint control of §8.3), and a keyword call keeps a new optional field from + landing in the wrong slot here. + """ + from ..lex.vacancy import VacancyParams + + keep = payload.get("keep", ()) + if keep is None: + keep = () + if isinstance(keep, str): + # Same trap `vacancy_domain` guards: a bare string iterates character by + # character, so `keep: "little"` would quietly protect six single letters. + raise InvalidParamError( + f"keep must be a list of words, not a string (got {keep!r}); a string would " + "be read letter by letter" + ) + if not isinstance(keep, (list, tuple, set, frozenset)): + raise InvalidParamError(f"keep must be a list of words, got {keep!r}") + for word in keep: + if not isinstance(word, str): + raise InvalidParamError(f"keep must contain strings, got {word!r}") + return VacancyParams( + p=_as_float(payload.get("p", 0.0), "p"), + seed=_as_int(payload.get("seed", 0), "seed"), + consistent=_as_bool(payload.get("consistent", True), "consistent"), + match_prosody=_as_bool(payload.get("match_prosody", True), "match_prosody"), + reveal_after=_as_int(payload.get("reveal_after", 0), "reveal_after"), + keep=frozenset(str(w) for w in keep), + ) + + +def _vacancy_key(params: Any) -> dict[str, Any] | None: + """A canonical cache-key fragment for the transform's parameters, or ``None``. + + Read off the dataclass's OWN fields rather than an enumerated list, so a knob added to + the transform is in the cache key the day it is added rather than the day someone + remembers to add it here — the failure mode of the enumerated version being a cache + hit that serves a run made under a setting that did not exist. Leading-underscore + fields are derived state, never inputs. + """ + if params is None: + return None + out: dict[str, Any] = {} + for spec in dataclasses.fields(params): + if spec.name.startswith("_"): + continue + value = getattr(params, spec.name) + out[spec.name] = sorted(value) if isinstance(value, (set, frozenset)) else value + return out + + +def _vacate(text: str, params: Any) -> tuple[Any, str]: + """Build the `p`-independent map over this corpus and rewrite the text with it. + + The domain is :func:`vacancy_domain` — the corpus's own types UNION the full Dolch + list — never the active budget, so the map is a function of `(corpus, seed, + match_prosody)` alone and switching budgets in the UI cannot re-mint the corpus + underneath a panel whose whole claim is that nonces are stable (§5.2). + + Deliberately not cached. The whole thing is ~70 ms on the shipped corpus, and a cache + keyed on the parameters that exist today would silently serve the wrong map the day + the transform grows another one. + """ + from ..lex.vacancy import build_vacancy_map, vacancy_domain, vacate_text + + vmap = build_vacancy_map(vacancy_domain(tokenize(text)), params) + return vmap, vacate_text(text, vmap, params) + + +def _is_mapped(params: Any) -> bool: + """Contract §7.2: the mapped vocabulary is defined only in the theorem's condition.""" + return bool(params.consistent) and params.reveal_after == 0 + + +def _vacancy_vocab( + *, + params: Any, + vmap: Any, + original_text: str, + vacated_text: str, + source: str, + budget: str, + size: int | None, +) -> tuple[LexVocab, str]: + """The vocabulary a vacated corpus is read with, and which of §7.2's two rules gave it. + + **Mapped** (`consistent`, `reveal_after = 0`): the budget is resolved against the + ENGLISH corpus and then pushed through the same `transformWord`, preserving order. The + map is injective, so every word keeps the id its pre-image had and the token id stream + is unchanged — which is the whole invariance theorem of §7.3. + + **Rebuilt** (every other condition): a source type no longer has a single image, so + the budget is rebuilt from the vacated corpus by the tab's normal rule. Coverage then + collapses, and the collapse IS the measurement (FR-715). + """ + from ..lex.vacancy import map_vocab_words + + if _is_mapped(params): + english = _resolve_budget(source, budget, size, original_text) + return ( + LexVocab( + words=tuple(map_vocab_words(english.words, vmap, params)), + source=english.source, + budget_name=english.budget_name, + ), + "mapped", + ) + return _resolve_budget(source, budget, size, vacated_text), "rebuilt" + + +@router.post("/vacancy") +async def vacancy(request: Request) -> dict[str, Any]: + """The vacancy transform applied to a corpus, with the statistics of contract §10. + + Same corpus-source rule as `/api/lex/coverage` — `text`, `hf_dataset`, or (with + neither) the shipped corpus — and the same budget triple, because the interesting + question about a vacated corpus is always "under which vocabulary?". + + **Why an excerpt and a digest rather than the whole vacated text.** The shipped corpus + is ~86 kB of body text and the panel re-runs this on every tick of the `p` slider, so + returning it whole would put megabytes on the wire across one sweep to show a reader a + screenful. Nothing needs it whole: the panel shows an excerpt (the source's own figure + is its first 400 characters), and a caller that wants to *train* on the vacated corpus + sends the same parameters to `/api/lex/train`, which vacates server-side rather than + round-tripping the text. What the excerpt cannot do by itself is prove which text it + came from, so `vacated_sha256` covers all of it in 64 bytes — that digest is also the + single value the static build's in-browser transform is checked against, which is the + parity this feature rests on. `preview_chars` raises the excerpt up to + ``VACANCY_PREVIEW_MAX``. + + Every number here is measured on the corpus in the request. The source document's own + prosody figures are its numbers on a corpus we do not have and are transcribed + nowhere (§10). + """ + from ..lex.vacancy import vacancy_stats + + payload = await _json_body(request) + original = await _text_source(payload) + params = _vacancy_params(payload) + + preview_chars = _as_int(payload.get("preview_chars", VACANCY_PREVIEW_CHARS), "preview_chars") + if not 0 <= preview_chars <= VACANCY_PREVIEW_MAX: + raise InvalidParamError( + f"preview_chars must be in 0..{VACANCY_PREVIEW_MAX}, got {preview_chars}. " + "The whole vacated corpus is never returned; `vacated_sha256` identifies it, " + "and /api/lex/train vacates server-side so the text never needs a round trip." + ) + + source = str(payload.get("source", DEFAULT_BUDGET_SOURCE)) + budget = str(payload.get("budget", DEFAULT_BUDGET)) + raw_size = payload.get("size") + size = _as_int(raw_size, "size") if raw_size is not None else None + + vmap, vacated = _vacate(original, params) + vocab, rule = _vacancy_vocab( + params=params, + vmap=vmap, + original_text=original, + vacated_text=vacated, + source=source, + budget=budget, + size=size, + ) + stats = vacancy_stats(original, vacated, vmap, params) + + return _jsonable( + { + "p": params.p, + "seed": params.seed, + "consistent": params.consistent, + "match_prosody": params.match_prosody, + "reveal_after": params.reveal_after, + "keep": sorted(params.keep), + # Which of §7.2's two rules produced `words`. A client must not have to infer + # it from the parameters: "mapped" is the only condition under which the ids + # are the English ids, and that is the difference between an invariance result + # and a coverage collapse. + "vocabulary_rule": rule, + "words": list(vocab.words), + "budget": _budget_payload(vocab, vacated), + "corpus": _corpus_stats(vacated), + # §10's field names verbatim, camelCase inside a snake_case envelope on + # purpose: they are a cross-language contract, not this API's naming. + "vacancy_stats": stats, + # Also inside `vacancy_stats`; surfaced here because injectivity is the + # guarantee the mapped vocabulary rests on, and a caller checking it should + # not have to reach into a statistics block to do so. + "bijective": stats["bijective"], + "remint_rounds": stats["remintRounds"], + "preview": vacated[:preview_chars], + "original_preview": original[:preview_chars], + "preview_chars": preview_chars, + "truncated": len(vacated) > preview_chars, + "vacated_chars": len(vacated), + "vacated_sha256": hashlib.sha256(vacated.encode("utf-8")).hexdigest(), + "original_chars": len(original), + "original_sha256": hashlib.sha256(original.encode("utf-8")).hexdigest(), + } + ) + + # -- POST /api/lex/train ------------------------------------------------------------------- @@ -577,10 +797,37 @@ async def train(request: Request, response: Response) -> dict[str, Any]: With `base` set, the *existing model's* vocabulary is used and travels with the result — feature 004's issue #6 was exactly the opposite mistake, and repeating it would silently re-tokenize a fine-tune against a vocabulary the weights never saw. + + **`vacancy` (feature 007, optional, additive).** An object of contract §7.1's knobs. + Absent, everything below behaves exactly as it did before it existed. Present, the + resolved corpus is vacated first and the model trains on the vacated text under the + vocabulary §7.2 assigns it — mapped when the theorem's conditions hold, rebuilt from + the vacated corpus otherwise. The transform happens here rather than in the client so + the corpus never round-trips: `/api/lex/vacancy` deliberately returns an excerpt. + + Under the mapped condition this is a *pure relabelling*: same token id stream, same + losses, bit for bit (§7.3). That is not a caveat, it is the result — and it is why + `p = 0` and a `p = 0.5` mapped run land on the *same* cache entry only when their + (text, vocabulary) pairs really coincide, which at `p = 0` they do, the transform + being the identity there (`u ∈ [0, 1)`). """ payload = await _json_body(request) text = await _text_source(payload) + vacancy_payload = payload.get("vacancy") + vac_params = None + vmap = None + original_text = text + if vacancy_payload is not None: + if not isinstance(vacancy_payload, dict): + raise InvalidParamError( + "vacancy must be an object of the transform's parameters " + "(p, seed, consistent, match_prosody, reveal_after, keep), " + f"got {vacancy_payload!r}" + ) + vac_params = _vacancy_params(vacancy_payload) + vmap, text = _vacate(original_text, vac_params) + steps = _as_int(payload.get("steps", DEFAULT_STEPS), "steps") if not 1 <= steps <= MAX_STEPS: raise InvalidParamError(f"steps must be in 1..{MAX_STEPS}, got {steps}") @@ -623,9 +870,19 @@ async def train(request: Request, response: Response) -> dict[str, Any]: source = str(payload.get("source", DEFAULT_BUDGET_SOURCE)) budget = str(payload.get("budget", DEFAULT_BUDGET)) size = payload.get("size") - vocab = _resolve_budget( - source, budget, _as_int(size, "size") if size is not None else None, text - ) + size_int = _as_int(size, "size") if size is not None else None + if vac_params is None: + vocab = _resolve_budget(source, budget, size_int, text) + else: + vocab, _rule = _vacancy_vocab( + params=vac_params, + vmap=vmap, + original_text=original_text, + vacated_text=text, + source=source, + budget=budget, + size=size_int, + ) config = _model_config_from(payload, vocab_rows=vocab.rows) key, _ = _train_cache_key( @@ -634,6 +891,11 @@ async def train(request: Request, response: Response) -> dict[str, Any]: "config": config, "vocab": list(vocab.words), "vocab_source": vocab.source, + # Redundant with (corpus, vocabulary) today — every knob that can change a + # training run changes one of those two — and in the key anyway, so that a + # knob added to the transform later cannot silently collide with a run made + # before it existed. + "vacancy": _vacancy_key(vac_params), "base": base, "steps": steps, "lr": lr, diff --git a/code/backend/tests/contract/test_api_lex.py b/code/backend/tests/contract/test_api_lex.py index c4b23fc..940ed24 100644 --- a/code/backend/tests/contract/test_api_lex.py +++ b/code/backend/tests/contract/test_api_lex.py @@ -12,9 +12,11 @@ from __future__ import annotations +import hashlib import json import math import time +from pathlib import Path from typing import Any import numpy as np @@ -36,6 +38,11 @@ client = TestClient(app) +#: `/code/backend/tests/contract/test_api_lex.py` -> ``. The vacancy parity +#: fixture lives beside the frontend tests that consume it, and this file asserts against +#: the same copy so the two stacks cannot be pinned to two different documents. +REPO_ROOT = Path(__file__).resolve().parents[4] + #: A real but deliberately cheap model: a full run of this is a fraction of a second. TINY_TRAIN: dict[str, Any] = { "source": "dolch", @@ -673,6 +680,264 @@ def test_model_export_rejects_an_unknown_token() -> None: ) +# -- POST /api/lex/vacancy (feature 007) ----------------------------------------------- + + +def _vacancy(**body: Any) -> dict[str, Any]: + resp = client.post("/api/lex/vacancy", json=body) + assert resp.status_code == 200, resp.text + payload = resp.json() + _assert_rounded6(payload) + return payload + + +def test_vacancy_reports_every_statistic_the_contract_names() -> None: + """§10's field list, verbatim and complete — an unprefixed `types*` is forbidden.""" + payload = _vacancy(p=1.0, seed=0) + stats = payload["vacancy_stats"] + assert set(stats) == { + "domainTypesTotal", + "domainTypesEligible", + "domainTypesVacated", + "corpusTypesTotal", + "corpusTypesEligible", + "corpusTypesVacated", + "stemsTotal", + "stemsVacated", + "tokensTotal", + "tokensVacated", + "meanSyllablesBefore", + "meanSyllablesAfter", + "meanAnapestBefore", + "meanAnapestAfter", + "stressFromTableBefore", + "stressFromTableAfter", + "stressFromMintedBefore", + "stressFromMintedAfter", + "stressFromRuleBefore", + "stressFromRuleAfter", + "bijective", + "imageSize", + "remintRounds", + } + # The measured numbers of §10 on the shipped corpus, at full vacancy. + assert stats["domainTypesTotal"] == 2233 + assert stats["domainTypesEligible"] == 1944 + assert stats["corpusTypesTotal"] == 2211 + assert stats["corpusTypesEligible"] == 1922 + assert stats["corpusTypesVacated"] == 1922 + assert stats["tokensVacated"] == 8202 + assert stats["stemsTotal"] == 1680 + # Identities, not observations: `u ∈ [0, 1)`, so p = 1 vacates everything eligible. + assert stats["stemsVacated"] == stats["stemsTotal"] + assert stats["domainTypesVacated"] == stats["domainTypesEligible"] + assert stats["corpusTypesVacated"] == stats["corpusTypesEligible"] + # The three-way stress split is token-weighted and sums to 1 on each side. + for side in ("Before", "After"): + total = sum(stats[f"stressFrom{k}{side}"] for k in ("Table", "Minted", "Rule")) + assert abs(total - 1.0) < 1e-6, (side, total) + # Injectivity is REPORTED, not assumed, and is surfaced beside the statistics block. + assert payload["bijective"] is True + assert stats["bijective"] is True + assert payload["remint_rounds"] == stats["remintRounds"] == 0 + + +def test_vacancy_reports_the_measured_remint_at_seed_7() -> None: + """Seed 7 needs exactly one re-mint: `hang` first minted `wak`, and `hanged` would + have surfaced as the real English word `waked` (§5.2 condition B).""" + payload = _vacancy(p=1.0, seed=7) + assert payload["remint_rounds"] == 1 + assert payload["bijective"] is True + # The transform is unharmed by it: the same 1 922 types and 8 202 tokens move. + assert payload["vacancy_stats"]["corpusTypesVacated"] == 1922 + assert payload["vacancy_stats"]["tokensVacated"] == 8202 + + +def test_vacancy_returns_an_excerpt_and_a_digest_rather_than_the_corpus() -> None: + payload = _vacancy(p=1.0, seed=0) + assert payload["preview_chars"] == 2000 + assert len(payload["preview"]) == 2000 + assert payload["truncated"] is True + # ~86 kB of corpus behind a 2 kB excerpt, pinned by 64 hex characters. + assert payload["vacated_chars"] > 20 * payload["preview_chars"] + assert len(payload["vacated_sha256"]) == 64 + assert payload["vacated_sha256"] != payload["original_sha256"] + assert ( + payload["original_sha256"] == hashlib.sha256(load_corpus_text().encode("utf-8")).hexdigest() + ) + + short = _vacancy(p=1.0, seed=0, preview_chars=10) + assert short["preview"] == payload["preview"][:10] + assert short["vacated_sha256"] == payload["vacated_sha256"] + + +def test_vacancy_is_the_identity_at_p_zero() -> None: + payload = _vacancy(p=0.0, seed=0) + assert payload["vacated_sha256"] == payload["original_sha256"] + assert payload["preview"] == payload["original_preview"] + for field in ("corpusTypesVacated", "domainTypesVacated", "tokensVacated", "stemsVacated"): + assert payload["vacancy_stats"][field] == 0, field + + +def test_vacancy_maps_the_vocabulary_and_leaves_coverage_untouched() -> None: + """SC-703 in the units the panel shows. + + Under `consistent=true, reveal_after=0` the transform is a pure relabelling, so the + budget's measured coverage of the VACATED corpus is bit-identical to its coverage of + the English one — the same tokens in budget, `` in exactly the same places. + """ + english = client.post("/api/lex/coverage", json={"source": "dolch", "budget": "primer"}).json() + for p in (0.0, 0.25, 0.5, 0.75, 1.0): + for seed in (0, 7): + payload = _vacancy(p=p, seed=seed, source="dolch", budget="primer") + assert payload["vocabulary_rule"] == "mapped" + assert payload["budget"]["coverage"] == english["coverage"], (p, seed) + assert payload["budget"]["rows"] == english["rows"] + assert len(payload["words"]) == len(english["words"]) + assert payload["corpus"]["n_tokens"] == english["corpus"]["n_tokens"] + assert payload["corpus"]["n_lines"] == english["corpus"]["n_lines"] + if p > 0: + assert payload["words"] != english["words"] + + +def test_vacancy_controls_rebuild_the_budget_and_collapse_coverage() -> None: + """SC-705: the conditions that break type identity break the invariance, measurably.""" + mapped = _vacancy(p=0.5, seed=0, source="dolch", budget="primer") + inconsistent = _vacancy(p=0.5, seed=0, consistent=False, source="dolch", budget="primer") + revealed = _vacancy(p=0.5, seed=0, reveal_after=2, source="dolch", budget="primer") + assert mapped["vocabulary_rule"] == "mapped" + assert inconsistent["vocabulary_rule"] == "rebuilt" + assert revealed["vocabulary_rule"] == "rebuilt" + for control in (inconsistent, revealed): + assert control["budget"]["coverage"]["unk_rate"] > mapped["budget"]["coverage"]["unk_rate"] + # §10: `corpusTypesVacated` is measured from the two TEXTS, so a type whose every + # occurrence falls inside the reveal window does not count — the reading that matches + # what the number claims to a reader. + assert ( + revealed["vacancy_stats"]["corpusTypesVacated"] + < mapped["vacancy_stats"]["corpusTypesVacated"] + ) + + +def test_vacancy_nests_and_stays_stable_as_p_rises() -> None: + """SC-701 / SC-702 through the API: a word rewritten at a low `p` is byte-identical at + every higher one, and the vacated set only grows.""" + seen: list[tuple[float, int, list[str]]] = [] + for p in (0.0, 0.25, 0.5, 0.75, 1.0): + payload = _vacancy(p=p, seed=0, source="dolch", budget="primer") + seen.append((p, payload["vacancy_stats"]["stemsVacated"], payload["words"])) + for (_, lower_n, lower_words), (_, higher_n, higher_words) in zip(seen, seen[1:]): + assert higher_n >= lower_n + for english, low, high in zip(seen[0][2], lower_words, higher_words): + if low != english: + assert high == low, (english, low, high) + + +def test_vacancy_transforms_a_users_own_text() -> None: + text = "The little brown squirrel ate the pretty acorn.\nThe squirrel ran away.\n" + payload = _vacancy(text=text, p=1.0, seed=0, preview_chars=200) + assert payload["original_preview"] == text + assert payload["preview"] != text + # §1: only WORD_RE matches move; punctuation and line breaks pass through byte for byte. + assert payload["preview"].count("\n") == text.count("\n") + assert payload["preview"].count(".") == 2 + assert payload["vacancy_stats"]["tokensTotal"] == 12 + assert payload["vacancy_stats"]["tokensVacated"] == 9 # the three `the`s are preserved + + +def test_vacancy_rejects_parameters_outside_the_contract() -> None: + for body in ( + {"p": 1.5}, + {"p": -0.1}, + {"p": "half"}, + {"seed": "zero"}, + {"reveal_after": -1}, + {"preview_chars": 20001}, + {"preview_chars": -1}, + {"keep": "little"}, # a bare string would protect six single letters + {"keep": [3]}, + {"source": "dolch", "size": 50}, + {"budget": "not-a-budget"}, + {"text": "!!! ???"}, + ): + _assert_error_envelope(client.post("/api/lex/vacancy", json=body), 400, "InvalidParamError") + + +def test_vacancy_matches_the_static_client_fixture() -> None: + """**The parity assertion this feature rests on.** + + `code/frontend/tests/fixtures/vacancy-api-golden.json` is a transcript of this route, + written by `scripts/export_vacancy_api_golden.py`. `staticVacancy.test.ts` asserts the + browser's in-page implementation reproduces it field for field; this asserts the live + route still does. One document, two stacks, and no way for either to drift alone. + """ + fixture = json.loads( + ( + REPO_ROOT / "code" / "frontend" / "tests" / "fixtures" / "vacancy-api-golden.json" + ).read_text(encoding="utf-8") + ) + assert fixture["format"] == "vacancy-api-golden-v1" + assert fixture["endpoint"] == "/api/lex/vacancy" + assert fixture["defaults"]["preview_chars"] == 2000 + assert fixture["defaults"]["preview_max"] == 20000 + assert len(fixture["cases"]) >= 6 + for case in fixture["cases"]: + resp = client.post("/api/lex/vacancy", json=case["request"]) + assert resp.status_code == 200, (case["label"], resp.text) + assert resp.json() == case["response"], ( + f"{case['label']}: the route no longer returns what the parity fixture " + "records. Regenerate it with `python scripts/export_vacancy_api_golden.py` " + "ONLY after confirming the change was intended — the browser asserts against " + "the same file." + ) + + +# -- POST /api/lex/train with vacancy (feature 007) ------------------------------------- + + +def test_train_on_a_vacated_corpus_is_bit_identical_under_the_mapped_vocabulary() -> None: + """SC-703's corollary, run for real: `p` is invisible to a word-level model. + + The mapped vocabulary gives every word the id its pre-image had, so the token id + stream is unchanged and the losses are IDENTICAL — not close. That is the tiny arm's + headline result, and it is asserted here rather than described. + """ + english = _train(seed=11) + vacated = _train(seed=11, vacancy={"p": 0.5, "seed": 0}) + for field in ("first_loss", "final_loss", "val_loss", "n_tokens", "vocab_rows"): + assert vacated[field] == english[field], field + # Same numbers, different words: the relabelling is real, the model is blind to it. + assert vacated["model_token"] != english["model_token"] + assert vacated["sample"] != english["sample"] + + +def test_train_without_vacancy_is_untouched_by_the_new_parameter() -> None: + """Additive means additive: the same request keeps hitting the same cache entry.""" + first = _train(seed=12) + again = _train(seed=12) + assert again["model_token"] == first["model_token"] + # `vacancy: null` is "no vacancy", not "vacancy with defaults". + explicit = _train(seed=12, vacancy=None) + assert explicit["model_token"] == first["model_token"] + # …and `p = 0` really is the identity, so it lands on that entry too. + identity = _train(seed=12, vacancy={"p": 0.0, "seed": 0}) + assert identity["model_token"] == first["model_token"] + + +def test_train_rejects_a_vacancy_block_that_is_not_an_object() -> None: + for bad in (0.5, "p=0.5", [0.5]): + _assert_error_envelope( + client.post("/api/lex/train", json={**TINY_TRAIN, "vacancy": bad}), + 400, + "InvalidParamError", + ) + _assert_error_envelope( + client.post("/api/lex/train", json={**TINY_TRAIN, "vacancy": {"p": 2}}), + 400, + "InvalidParamError", + ) + + # -- the frozen 002 contract is untouched ---------------------------------------------- diff --git a/code/frontend/src/lib/staticClient/lex.ts b/code/frontend/src/lib/staticClient/lex.ts index 11a27fb..3ac4f20 100644 --- a/code/frontend/src/lib/staticClient/lex.ts +++ b/code/frontend/src/lib/staticClient/lex.ts @@ -87,6 +87,17 @@ import { type SpectrumResult, type WeightSet, } from "../lexEngine"; +import { + buildVacancyMap, + mapVocabWords, + vacancyDomain, + vacancyParams as vacancyParamsWithDefaults, + vacancyStats, + vacateText, + type VacancyMap, + type VacancyParams, + type VacancyStats, +} from "../lexEngine/vacancy"; import { sha256Hex, utf8Bytes } from "../geoEngine/hash"; import type { StaticAssets } from "./assets"; import { computeError, invalidParamError, notFoundError, staticModeError, toApiError } from "./errors"; @@ -217,6 +228,76 @@ export interface LexCoverageResult { words: string[]; } +/** + * Contract §7.1's knobs, on the wire. `snake_case` because that is this API's convention; + * the transform's own TypeScript surface is camelCase in both stacks (§5.8), and + * `vacancyParamsFrom` is the single place the two spellings meet. + */ +export interface LexVacancyParamsBody { + p?: number; + seed?: number; + consistent?: boolean; + match_prosody?: boolean; + reveal_after?: number; + keep?: readonly string[]; +} + +export interface LexVacancyBody extends LexCoverageBody, LexVacancyParamsBody { + preview_chars?: number; +} + +/** §10's statistics, camelCase in both stacks because §10 names them that way. */ +export interface LexVacancyStats { + domainTypesTotal: number; + domainTypesEligible: number; + domainTypesVacated: number; + corpusTypesTotal: number; + corpusTypesEligible: number; + corpusTypesVacated: number; + stemsTotal: number; + stemsVacated: number; + tokensTotal: number; + tokensVacated: number; + meanSyllablesBefore: number; + meanSyllablesAfter: number; + meanAnapestBefore: number; + meanAnapestAfter: number; + stressFromTableBefore: number; + stressFromTableAfter: number; + stressFromMintedBefore: number; + stressFromMintedAfter: number; + stressFromRuleBefore: number; + stressFromRuleAfter: number; + bijective: boolean; + imageSize: number; + remintRounds: number; +} + +export interface LexVacancyResult { + p: number; + seed: number; + consistent: boolean; + match_prosody: boolean; + reveal_after: number; + keep: string[]; + /** Which of §7.2's two rules produced `words`. */ + vocabulary_rule: "mapped" | "rebuilt"; + words: string[]; + budget: { source: string; budget: string; size: number; rows: number; coverage: Coverage }; + corpus: { n_tokens: number; n_distinct: number; n_lines: number; n_chars: number }; + vacancy_stats: LexVacancyStats; + bijective: boolean; + remint_rounds: number; + preview: string; + original_preview: string; + preview_chars: number; + truncated: boolean; + vacated_chars: number; + vacated_sha256: string; + original_chars: number; + original_sha256: string; +} + export interface LexTrainBody extends LexCoverageBody, LexShapeParams { steps?: number; lr?: number; @@ -225,6 +306,8 @@ export interface LexTrainBody extends LexCoverageBody, LexShapeParams { seed?: number; sample_every?: number; base?: string; + /** Feature 007, optional and additive: train on the VACATED corpus (§7.2). */ + vacancy?: LexVacancyParamsBody; } export interface LexTrainRecord { @@ -344,6 +427,7 @@ export interface LexClient { lexSpec(): Promise; lexBudgets(params?: LexShapeParams & { source?: string }): Promise; lexCoverage(body?: LexCoverageBody): Promise; + lexVacancy(body?: LexVacancyBody): Promise; lexTrain(body?: LexTrainBody): Promise; lexSpectrum(params: LexSpectrumParams): Promise; lexGenerate(body: LexGenerateBody): Promise; @@ -357,6 +441,72 @@ export const LEX_BUNDLE_VERSION = 1; /** The most frequent out-of-budget types returned by /coverage. A sample, labelled so. */ const OOV_SAMPLE_SIZE = 24; +/** + * Characters of vacated text returned inline by default, and the ceiling a caller may + * ask for. These MUST equal `routes_lex.py`'s `VACANCY_PREVIEW_CHARS` / + * `VACANCY_PREVIEW_MAX`: the API-parity fixture is generated with the default and + * compared here, so a drift in the default fails a test rather than quietly serving two + * different excerpts in the two modes. + */ +export const VACANCY_PREVIEW_CHARS = 2000; +export const VACANCY_PREVIEW_MAX = 20000; + +/** + * Contract §7.1's knobs out of a wire body, snake_case to camelCase, defaults filled by + * the engine's own `vacancyParams` so this cannot drift from them. + * + * Written as a spread over the engine's defaults rather than as an object literal on + * purpose: the transform's parameter set is still growing (§8.3's swap mint), and a + * literal here would silently drop whatever is added next. + */ +function vacancyParamsFrom(body: LexVacancyParamsBody): VacancyParams { + const keep = body.keep; + if (typeof keep === "string") { + throw invalidParamError( + `keep must be a list of words, not a string (got ${JSON.stringify(keep)}); ` + + "a string would be read letter by letter", + ); + } + if (keep != null && !Array.isArray(keep)) { + throw invalidParamError(`keep must be a list of words, got ${JSON.stringify(keep)}`); + } + const p = asFloat(body.p, "p", 0); + if (!(Number.isFinite(p) && p >= 0 && p <= 1)) { + throw invalidParamError(`p must lie in [0, 1], got ${JSON.stringify(body.p)}`); + } + const revealAfter = asInt(body.reveal_after, "reveal_after", 0); + if (revealAfter < 0) throw invalidParamError(`reveal_after must be >= 0, got ${revealAfter}`); + return vacancyParamsWithDefaults({ + p, + seed: asInt(body.seed, "seed", 0), + consistent: asBool(body.consistent, "consistent", true), + matchProsody: asBool(body.match_prosody, "match_prosody", true), + revealAfter, + keep: keep == null ? [] : keep.map(String), + }); +} + +/** + * The backend runs the whole response through `jsonable_6sig`, so the counts pass through + * as integers and every measured fraction is rounded to 6 significant digits. Doing the + * same here is what lets the two payloads be compared field for field. + */ +function roundVacancyStats(stats: VacancyStats): LexVacancyStats { + return { + ...stats, + meanSyllablesBefore: sig6(stats.meanSyllablesBefore, "meanSyllablesBefore"), + meanSyllablesAfter: sig6(stats.meanSyllablesAfter, "meanSyllablesAfter"), + meanAnapestBefore: sig6(stats.meanAnapestBefore, "meanAnapestBefore"), + meanAnapestAfter: sig6(stats.meanAnapestAfter, "meanAnapestAfter"), + stressFromTableBefore: sig6(stats.stressFromTableBefore, "stressFromTableBefore"), + stressFromTableAfter: sig6(stats.stressFromTableAfter, "stressFromTableAfter"), + stressFromMintedBefore: sig6(stats.stressFromMintedBefore, "stressFromMintedBefore"), + stressFromMintedAfter: sig6(stats.stressFromMintedAfter, "stressFromMintedAfter"), + stressFromRuleBefore: sig6(stats.stressFromRuleBefore, "stressFromRuleBefore"), + stressFromRuleAfter: sig6(stats.stressFromRuleAfter, "stressFromRuleAfter"), + }; +} + // --- transport parity ------------------------------------------------------------------ /** @@ -842,6 +992,101 @@ export class LexSection { }; } + // --- the vacancy transform (feature 007) ------------------------------------------- + + /** + * POST /api/lex/vacancy — computed here, LIVE, not refused. + * + * The Lexicon Lab is browser-side in both modes, and the transform is pure string work + * over a corpus this build already ships, so there is nothing here a static page cannot + * do for real. `lexEngine/vacancy.ts` and `llm_geometry/lex/vacancy.py` implement the + * same normative document, and `tests/unit/staticVacancy.test.ts` pins this method's + * whole response against what the real FastAPI route returned for the same request — + * the statistics AND the sha256 of the entire vacated corpus, which is the parity this + * feature rests on. + * + * The response is an excerpt plus a digest for the same reason the backend's is: the + * corpus is ~86 kB and a `p` sweep would otherwise move megabytes to show a screenful. + */ + async lexVacancy(body: LexVacancyBody = {}): Promise { + const original = await this.textSource(body); + const params = vacancyParamsFrom(body); + + const previewChars = asInt(body.preview_chars, "preview_chars", VACANCY_PREVIEW_CHARS); + if (!(previewChars >= 0 && previewChars <= VACANCY_PREVIEW_MAX)) { + throw invalidParamError( + `preview_chars must be in 0..${VACANCY_PREVIEW_MAX}, got ${previewChars}. ` + + "The whole vacated corpus is never returned; `vacated_sha256` identifies it, " + + "and /api/lex/train vacates in place so the text never needs a round trip.", + ); + } + + const vmap = buildVacancyMap(vacancyDomain(tokenize(original)), params); + const vacated = vacateText(original, vmap, params); + const { vocab, rule } = this.vacancyVocab(body, params, vmap, original, vacated); + const stats = vacancyStats(original, vacated, vmap, params); + + return { + p: sig6(params.p, "p"), + seed: params.seed, + consistent: params.consistent, + match_prosody: params.matchProsody, + reveal_after: params.revealAfter, + keep: [...params.keep].map(String).sort(), + vocabulary_rule: rule, + words: [...vocab.words], + budget: { + source: vocab.source, + budget: vocab.budgetName, + size: vocab.budgetSize, + rows: vocab.rows, + coverage: this.roundCoverage(vocab.coverage(vacated)), + }, + corpus: corpusStats(vacated), + vacancy_stats: roundVacancyStats(stats), + bijective: stats.bijective, + remint_rounds: stats.remintRounds, + preview: vacated.slice(0, previewChars), + original_preview: original.slice(0, previewChars), + preview_chars: previewChars, + truncated: vacated.length > previewChars, + vacated_chars: vacated.length, + vacated_sha256: sha256Hex(utf8Bytes(vacated)), + original_chars: original.length, + original_sha256: sha256Hex(utf8Bytes(original)), + }; + } + + /** + * §7.2's two rules, and which one applies. + * + * **Mapped** (`consistent`, `revealAfter = 0`): resolve the budget against the ENGLISH + * corpus, then push its word list through the same `transformWord`, preserving order. + * The map is injective, so every word keeps the id its pre-image had — that is the + * invariance theorem of §7.3, and it is why a mapped run's loss is bit-identical. + * + * **Rebuilt** (everything else): a source type no longer has a single image, so the + * budget is rebuilt from the vacated corpus by the tab's normal rule and coverage + * collapses. The collapse is not a defect, it is the measurement (FR-715). + */ + private vacancyVocab( + body: LexCoverageBody, + params: VacancyParams, + vmap: VacancyMap, + original: string, + vacated: string, + ): { vocab: LexVocab; rule: "mapped" | "rebuilt" } { + if (!params.consistent || params.revealAfter !== 0) { + return { vocab: this.resolveBudgetSync(body, vacated), rule: "rebuilt" }; + } + const english = this.resolveBudgetSync(body, original); + const mapped = mapVocabWords([...english.words], vmap, params); + return { + vocab: new LexVocab(mapped, english.source, english.budgetName), + rule: "mapped", + }; + } + // --- training --------------------------------------------------------------------- /** @@ -851,7 +1096,27 @@ export class LexSection { * are 200-style cache hits, exactly like the backend's content-hash single-flight. */ async lexTrain(body: LexTrainBody = {}): Promise { - const text = await this.textSource(body); + const originalText = await this.textSource(body); + + // Feature 007, optional and additive: absent, everything below is exactly what it was + // before the transform existed. Present, the model trains on the VACATED corpus under + // the vocabulary §7.2 assigns it. Vacating here rather than in the caller matches the + // backend, where `/api/lex/vacancy` deliberately returns only an excerpt. + let text = originalText; + let vacParams: VacancyParams | null = null; + let vmap: VacancyMap | null = null; + if (body.vacancy != null) { + if (typeof body.vacancy !== "object" || Array.isArray(body.vacancy)) { + throw invalidParamError( + "vacancy must be an object of the transform's parameters " + + "(p, seed, consistent, match_prosody, reveal_after, keep), got " + + JSON.stringify(body.vacancy), + ); + } + vacParams = vacancyParamsFrom(body.vacancy); + vmap = buildVacancyMap(vacancyDomain(tokenize(originalText)), vacParams); + text = vacateText(originalText, vmap, vacParams); + } const steps = asInt(body.steps, "steps", DEFAULT_STEPS); if (!(steps >= 1 && steps <= MAX_STEPS)) { @@ -883,6 +1148,9 @@ export class LexSection { cfg = base.cfg; vocab = base.vocab; initialWeights = base.model.weights; + } else if (vacParams !== null && vmap !== null) { + vocab = this.vacancyVocab(body, vacParams, vmap, originalText, text).vocab; + cfg = configFrom(body, vocab.rows); } else { vocab = await this.resolveBudget(body, text); cfg = configFrom(body, vocab.rows); @@ -893,6 +1161,9 @@ export class LexSection { cfg, words: vocab.words, source: vocab.source, + // Redundant with (text, words) today, and in the key anyway so that a knob added to + // the transform later cannot land on a cache entry made before it existed. + vacancy: vacParams, base: body.base ?? null, steps, lr, @@ -1292,6 +1563,15 @@ export class LexSection { } private async resolveBudget(body: LexCoverageBody, text: string): Promise { + return this.resolveBudgetSync(body, text); + } + + /** + * The same resolution, without the promise. `resolveBudget` is `async` for its callers' + * convenience and never awaits anything; the vacancy path resolves a budget twice + * against two different texts (§7.2) and reads better without the ceremony. + */ + private resolveBudgetSync(body: LexCoverageBody, text: string): LexVocab { const source = this.assertSource(body.source ?? DEFAULT_BUDGET_SOURCE); const budget = String(body.budget ?? DEFAULT_BUDGET); if (!(DOLCH_ORDER as readonly string[]).includes(budget)) { @@ -1461,6 +1741,7 @@ export function lexClientFrom(section: LexSection): LexClient { lexSpec: () => section.lexSpec(), lexBudgets: (params) => section.lexBudgets(params), lexCoverage: (body) => section.lexCoverage(body), + lexVacancy: (body) => section.lexVacancy(body), lexTrain: (body) => section.lexTrain(body), lexSpectrum: (params) => section.lexSpectrum(params), lexGenerate: (body) => section.lexGenerate(body), diff --git a/code/frontend/tests/fixtures/vacancy-api-golden.json b/code/frontend/tests/fixtures/vacancy-api-golden.json new file mode 100644 index 0000000..07e3439 --- /dev/null +++ b/code/frontend/tests/fixtures/vacancy-api-golden.json @@ -0,0 +1,1170 @@ +{ + "format": "vacancy-api-golden-v1", + "generated": "2026-08-04", + "git_sha": "7dc491808cea5dc07b4b397e8ca50d217586165a", + "command": "python scripts/export_vacancy_api_golden.py", + "source": "POST /api/lex/vacancy on the real FastAPI app with the real committed corpus, through fastapi.testclient \u2014 real route, real transform, no mocks", + "contract": "specs/002-interactive-model-explorer/contracts/api.md", + "tolerance": 0.0, + "endpoint": "/api/lex/vacancy", + "defaults": { + "preview_chars": 2000, + "preview_max": 20000 + }, + "encoding": "exactly what the route serves: every float already rounded to 6 significant digits by api/encoding.py::jsonable_6sig, which staticClient/lex.ts::sig6 reproduces, so every field compares EXACTLY. `vacated_sha256` is over the UTF-8 bytes of the WHOLE vacated corpus \u2014 86 kB pinned in 64 characters.", + "corpus": { + "path": "code/backend/src/llm_geometry/lex/data/real-mother-goose.txt", + "sha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c", + "chars": 86408 + }, + "cases": [ + { + "label": "p1-seed7-pre_primer", + "request": { + "p": 1.0, + "seed": 7, + "source": "dolch", + "budget": "pre_primer" + }, + "response": { + "p": 1.0, + "seed": 7, + "consistent": true, + "match_prosody": true, + "reveal_after": 0, + "keep": [], + "vocabulary_rule": "mapped", + "words": [ + "a", + "and", + "unpryng", + "gnoud", + "brermp", + "can", + "vieck", + "down", + "scyb", + "for", + "vezzleum", + "go", + "sorp", + "here", + "i", + "in", + "is", + "it", + "scerrk", + "shooventy", + "hieff", + "shream", + "me", + "my", + "not", + "one", + "blurt", + "smust", + "maik", + "plys", + "sqourk", + "the", + "three", + "to", + "two", + "up", + "we", + "where", + "frarder", + "you" + ], + "budget": { + "source": "dolch", + "budget": "pre_primer", + "size": 40, + "rows": 44, + "coverage": { + "total_tokens": 16000, + "in_budget_tokens": 4457, + "distinct_types": 2211, + "oov_types": 2172, + "total_lines": 3071, + "whole_lines_in_budget": 5, + "token_coverage": 0.278562, + "unk_rate": 0.721437 + } + }, + "corpus": { + "n_tokens": 16000, + "n_distinct": 2211, + "n_lines": 3075, + "n_chars": 96334 + }, + "vacancy_stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1944, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1922, + "stemsTotal": 1680, + "stemsVacated": 1680, + "tokensTotal": 16000, + "tokensVacated": 8202, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.29113, + "meanAnapestBefore": 0.320932, + "meanAnapestAfter": 0.321422, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.012, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.404062, + "stressFromRuleBefore": 0.948562, + "stressFromRuleAfter": 0.583937, + "bijective": true, + "imageSize": 2233, + "remintRounds": 1 + }, + "bijective": true, + "remint_rounds": 1, + "preview": " THE KRARRD\n SORISH KLOALK\n\n _Wermishened by_\nPirv Smausker Chouth\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nShooventy Bo-Peep\nShooventy Skurth Brermp\nYurnk\nThe Desp\nZeller\nYeebys and Spoults\nA Smeapicumen Strieft\nSaun Shrurll and Her Florll\nThree Broarmidy on the Skach\nKroots Ploank\nThe Kir Fliespous Under a Drier\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nKir Sorish Kloalk\nShooventy Scerrking Blarrn\nPat-a-Cake\nFrerkic and the Treark\nTrirmpy Klauvent\nA Gielkishously Strieft\nPlief\nSmoav to St. Choosts\nSwaimum Slorms Churg Frazzleener\nYarmid Bebly\nFrocks\nVieck Out to Blurt\nIf Sqastes Were Skornes\nTo Joskent\nKir Rirchs to Chait\nTrirmpy and Shruffum\nA Tun and a Kor\nHere Swoafs My Hang\nThe Flermer Sum\nTwo Snourns\nBuk Over Buk\nShiffel Fringow\nWhen Driedle Thrirl Was Tarl\nKraiger\nThe Friming Groask\nSwaishowing Jubing\nHush-a-Bye\nVurlk Frock\nThree Heach Sked of Snoordic\nThe Breafter of Plaimle\nShooventy Slorshly Floshums\nHock Unpryng, Hock Unpryng\nNotum Drier\nPussy-Cat and Hysp\nThe Strirlts\nVyg Merrties\nTrysles\nGnaugumicer\nJust Streash Me\nBlurt Slorms\nHeigh-Ho, the Struftous Strang\nDREAND\nA Trurndel and Skeek\nSporrdelic Kroots\nThe Tun in Our Loarn\nStroudle Strerbleel\nFor Every Dryndel\nKurle Chuz\nBlyp Vurp Vud\nAbout the Trut\nSee-Saw\nRobin-a-Bobbin\nBlirlt Kron\nFliken Bliernous\nThree Smard Porff\nFive Spoults\nA Shooventy Tun\nGerrmen Seacker\nGnoozzleel Gnoozzleel Woording\nNiernel Chyf\nZaukleishing Slorms\nThe Shoal Sum\nThe Soot\nA Vemer\nSmarms Tairmic\nCurly-Locks\nRezle Spercking\nOne, Two, Three\nThe Stursk and the Thrirl\nMorster I Have\nLarls\nShall We Go A-Shearing?\nJarler, Jarler, Smarnker\nKir Sorish Cherngle\nThe Kault and the Sum\nBrermp Snid Skurth\nWhy May Not I Sceerm Plonker?\nPlief Hoth\nPlief Shirck\nHush-a-Bye\nRarbenouns\nThe Grud in the Hurs\nHush-a-Bye\nSweandleel Gneffleic\nStrorskish Faly\nPlief and Choan\nThe Zorngidel\nThourt to Your Drong\nOne Kegent Flerrmel Dreapent\nTrirmpy Scoort and Shooventy Blirlt\nYurnk\nThe Kir Fliespous from Wyff\nFlith and Threrns\nThe Trirmpys\nThe Kir Tun\nT'Othe", + "original_preview": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\nA Melancholy Song\nJack\nGoing to St. Ives\nThirty Days Hath September\nBaby Dolly\nBees\nCome Out to Play\nIf Wishes Were Horses\nTo Market\nOld Chairs to Mend\nRobin and Richard\nA Man and a Maid\nHere Goes My Lord\nThe Clever Hen\nTwo Birds\nLeg Over Leg\nLucy Locket\nWhen Jenny Wren Was Young\nBarber\nThe Flying Pig\nSolomon Grundy\nHush-a-Bye\nBurnie Bee\nThree Wise Men of Gotham\nThe Hunter of Reigate\nLittle Polly Flinders\nRide Away, Ride Away\nPippen Hill\nPussy-Cat and Queen\nThe Winds\nClap Handies\nChristmas\nElizabeth\nJust Like Me\nPlay Days\nHeigh-Ho, the Carrion Crow\nABC\nA Needle and Thread\nBanbury Cross\nThe Man in Our Town\nGeorgy Porgy\nFor Every Evil\nCushy Cow\nWee Willie Winkie\nAbout the Bush\nSee-Saw\nRobin-a-Bobbin\nJohn Smith\nSimple Simon\nThree Blind Mice\nFive Toes\nA Little Man\nDoctor Foster\nDiddle Diddle Dumpling\nJerry Hall\nLengthening Days\nThe Black Hen\nThe Mist\nA Candle\nMiss Muffet\nCurly-Locks\nHumpty Dumpty\nOne, Two, Three\nThe Dove and the Wren\nMaster I Have\nPins\nShall We Go A-Shearing?\nGoosey, Goosey, Gander\nOld Mother Hubbard\nThe Cock and the Hen\nBlue Bell Boy\nWhy May Not I Love Johnny?\nJack Jelf\nJack Sprat\nHush-a-Bye\nDaffodils\nThe Girl in the Lane\nHush-a-Bye\nNancy Dawson\nHandy Pandy\nJack and Jill\nThe Alphabet\nDance to Your Daddie\nOne Misty Moisty Morning\nRobin Hood and Little John\nRain\nThe Old Woman from France\nTeeth and Gums\nThe Robins\nThe Old Man\nT'Other Little Tune\nMy Kitten\nIf All the Seas Were One Sea\nPancake Day\nA Plum Pudding\nForehead, Eyes, Cheeks, Nose, etc.\nTwo Pigeons\nA Sure Test\nLock and Key\nThe Lion and the Unicorn\nThe Merchants of London\nI Had a Little Husband\nTo Babylon\n", + "preview_chars": 2000, + "truncated": true, + "vacated_chars": 96334, + "vacated_sha256": "263b8dd3733dbf4802a2bc4c74fb905388062952e45931e4ebcd561cbd4e76df", + "original_chars": 86408, + "original_sha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c" + } + }, + { + "label": "p035-seed0-full", + "request": { + "p": 0.35, + "seed": 0, + "source": "dolch", + "budget": "full", + "preview_chars": 400 + }, + "response": { + "p": 0.35, + "seed": 0, + "consistent": true, + "match_prosody": true, + "reveal_after": 0, + "keep": [], + "vocabulary_rule": "mapped", + "words": [ + "a", + "and", + "away", + "hirm", + "gea", + "can", + "wrais", + "down", + "wif", + "for", + "funny", + "go", + "help", + "here", + "i", + "in", + "is", + "it", + "byll", + "little", + "snout", + "make", + "me", + "my", + "not", + "one", + "play", + "red", + "run", + "grurst", + "vault", + "the", + "three", + "to", + "two", + "up", + "we", + "where", + "yellow", + "you", + "all", + "am", + "are", + "at", + "ate", + "be", + "black", + "bor", + "but", + "came", + "did", + "do", + "ben", + "four", + "get", + "good", + "have", + "he", + "into", + "kliff", + "must", + "new", + "no", + "now", + "on", + "our", + "out", + "please", + "pretty", + "glaimp", + "scard", + "derck", + "say", + "she", + "so", + "dreer", + "that", + "there", + "they", + "tharcks", + "too", + "under", + "lirnk", + "was", + "well", + "smen", + "what", + "white", + "who", + "will", + "with", + "smoarn", + "after", + "again", + "an", + "any", + "as", + "gnurnk", + "by", + "could", + "every", + "fly", + "from", + "give", + "myck", + "had", + "has", + "her", + "him", + "his", + "how", + "just", + "know", + "sorr", + "live", + "may", + "of", + "garr", + "once", + "open", + "over", + "put", + "sirs", + "some", + "stop", + "take", + "glault", + "them", + "then", + "slurrk", + "walk", + "were", + "when", + "always", + "asqeaf", + "because", + "been", + "before", + "best", + "both", + "buy", + "call", + "cold", + "does", + "don't", + "yourm", + "first", + "five", + "staim", + "gave", + "voonks", + "green", + "its", + "brorrk", + "wieckel", + "off", + "or", + "mirmp", + "read", + "lound", + "sing", + "sit", + "sleep", + "tell", + "their", + "these", + "those", + "adroust", + "us", + "kleall", + "very", + "hirn", + "which", + "why", + "wish", + "work", + "would", + "write", + "your", + "about", + "storsher", + "bring", + "carry", + "zaul", + "cut", + "done", + "draw", + "drink", + "eight", + "griesp", + "far", + "dil", + "got", + "grow", + "hold", + "hot", + "hurt", + "if", + "keep", + "kind", + "wourm", + "light", + "long", + "much", + "begnirsk", + "never", + "only", + "own", + "pick", + "seven", + "shall", + "hirk", + "six", + "small", + "start", + "ten", + "refon", + "together", + "gliest", + "warm", + "apple", + "baby", + "back", + "ball", + "vert", + "runk", + "bell", + "zel", + "birthday", + "boat", + "mylk", + "boy", + "bread", + "zemer", + "scoog", + "wrarsp", + "cat", + "scielk", + "chicken", + "kliesowle", + "christmas", + "coat", + "corn", + "cow", + "strirm", + "scarrt", + "doll", + "sposk", + "fav", + "naird", + "plouch", + "farm", + "farmer", + "father", + "plerv", + "skaust", + "fish", + "loll", + "droorner", + "game", + "garden", + "girl", + "good-bye", + "grass", + "ground", + "thaint", + "head", + "prornt", + "mout", + "horse", + "keaf", + "kitty", + "baimp", + "thrirrmer", + "woosp", + "men", + "milk", + "money", + "noarish", + "wielkow", + "name", + "nest", + "night", + "paper", + "party", + "freaching", + "pig", + "spylous", + "rain", + "ring", + "sqorlous", + "school", + "seed", + "gloas", + "shoe", + "sister", + "snow", + "song", + "straull", + "stick", + "brap", + "sun", + "table", + "praisk", + "time", + "hor", + "toy", + "tree", + "watch", + "water", + "way", + "wind", + "window", + "wood" + ], + "budget": { + "source": "dolch", + "budget": "full", + "size": 314, + "rows": 318, + "coverage": { + "total_tokens": 16000, + "in_budget_tokens": 9726, + "distinct_types": 2211, + "oov_types": 1919, + "total_lines": 3071, + "whole_lines_in_budget": 215, + "token_coverage": 0.607875, + "unk_rate": 0.392125 + } + }, + "corpus": { + "n_tokens": 16000, + "n_distinct": 2211, + "n_lines": 3075, + "n_chars": 90204 + }, + "vacancy_stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 683, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 672, + "stemsTotal": 1680, + "stemsVacated": 587, + "tokensTotal": 16000, + "tokensVacated": 3152, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.29006, + "meanAnapestBefore": 0.320932, + "meanAnapestAfter": 0.320887, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0416875, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.154875, + "stressFromRuleBefore": 0.948562, + "stressFromRuleAfter": 0.803438, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "bijective": true, + "remint_rounds": 0, + "preview": " THE PRIRLK\n WIELKOW BRARSP\n\n _Illustrated by_\nBlanche Fisher Trurrk\n\n1916\n\n\n\nA LIST OF THE SHRENGES\n\nLittle Bo-Peep\nLittle Boy Gea\nRain\nThe Clock\nWinter\nTitows and Toes\nA Squrvididish Song\nStruv Vard and Her Cat\nThree Kliesowle on the Ice\nDroalls Brem\nThe Garr Plaispy Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nLittle Bylling Joan\nPat-a-Cake\nMoney and the Mar", + "original_preview": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\n", + "preview_chars": 400, + "truncated": true, + "vacated_chars": 90204, + "vacated_sha256": "f70d3febc5552d9e194b980a8811cb16fccc9d6d011049e574aca3fa6cf39d3a", + "original_chars": 86408, + "original_sha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c" + } + }, + { + "label": "p0-seed0-pre_primer", + "request": { + "p": 0.0, + "seed": 0, + "source": "dolch", + "budget": "pre_primer", + "preview_chars": 400 + }, + "response": { + "p": 0.0, + "seed": 0, + "consistent": true, + "match_prosody": true, + "reveal_after": 0, + "keep": [], + "vocabulary_rule": "mapped", + "words": [ + "a", + "and", + "away", + "big", + "blue", + "can", + "come", + "down", + "find", + "for", + "funny", + "go", + "help", + "here", + "i", + "in", + "is", + "it", + "jump", + "little", + "look", + "make", + "me", + "my", + "not", + "one", + "play", + "red", + "run", + "said", + "see", + "the", + "three", + "to", + "two", + "up", + "we", + "where", + "yellow", + "you" + ], + "budget": { + "source": "dolch", + "budget": "pre_primer", + "size": 40, + "rows": 44, + "coverage": { + "total_tokens": 16000, + "in_budget_tokens": 4457, + "distinct_types": 2211, + "oov_types": 2172, + "total_lines": 3071, + "whole_lines_in_budget": 5, + "token_coverage": 0.278562, + "unk_rate": 0.721437 + } + }, + "corpus": { + "n_tokens": 16000, + "n_distinct": 2211, + "n_lines": 3075, + "n_chars": 86408 + }, + "vacancy_stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 0, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 0, + "stemsTotal": 1680, + "stemsVacated": 0, + "tokensTotal": 16000, + "tokensVacated": 0, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.29, + "meanAnapestBefore": 0.320932, + "meanAnapestAfter": 0.320932, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0514375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.0, + "stressFromRuleBefore": 0.948562, + "stressFromRuleAfter": 0.948562, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "bijective": true, + "remint_rounds": 0, + "preview": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\n", + "original_preview": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\n", + "preview_chars": 400, + "truncated": true, + "vacated_chars": 86408, + "vacated_sha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c", + "original_chars": 86408, + "original_sha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c" + } + }, + { + "label": "control-inconsistent", + "request": { + "p": 0.5, + "seed": 0, + "consistent": false, + "source": "dolch", + "budget": "primer" + }, + "response": { + "p": 0.5, + "seed": 0, + "consistent": false, + "match_prosody": true, + "reveal_after": 0, + "keep": [], + "vocabulary_rule": "rebuilt", + "words": [ + "a", + "and", + "away", + "big", + "blue", + "can", + "come", + "down", + "find", + "for", + "funny", + "go", + "help", + "here", + "i", + "in", + "is", + "it", + "jump", + "little", + "look", + "make", + "me", + "my", + "not", + "one", + "play", + "red", + "run", + "said", + "see", + "the", + "three", + "to", + "two", + "up", + "we", + "where", + "yellow", + "you", + "all", + "am", + "are", + "at", + "ate", + "be", + "black", + "brown", + "but", + "came", + "did", + "do", + "eat", + "four", + "get", + "good", + "have", + "he", + "into", + "like", + "must", + "new", + "no", + "now", + "on", + "our", + "out", + "please", + "pretty", + "ran", + "ride", + "saw", + "say", + "she", + "so", + "soon", + "that", + "there", + "they", + "this", + "too", + "under", + "want", + "was", + "well", + "went", + "what", + "white", + "who", + "will", + "with", + "yes" + ], + "budget": { + "source": "dolch", + "budget": "primer", + "size": 92, + "rows": 96, + "coverage": { + "total_tokens": 16000, + "in_budget_tokens": 5863, + "distinct_types": 5727, + "oov_types": 5659, + "total_lines": 3071, + "whole_lines_in_budget": 9, + "token_coverage": 0.366438, + "unk_rate": 0.633563 + } + }, + "corpus": { + "n_tokens": 16000, + "n_distinct": 5727, + "n_lines": 3075, + "n_chars": 92804 + }, + "vacancy_stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 966, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 954, + "stemsTotal": 1680, + "stemsVacated": 833, + "tokensTotal": 16000, + "tokensVacated": 4470, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.28994, + "meanAnapestBefore": 0.320932, + "meanAnapestAfter": 0.321837, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.023375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.220625, + "stressFromRuleBefore": 0.948562, + "stressFromRuleAfter": 0.756, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "bijective": true, + "remint_rounds": 0, + "preview": " THE GLAIRN\n SCIRRDER PLERNT\n\n _Illustrated by_\nBlanche Thursper Styn\n\n1916\n\n\n\nA HURF OF THE YORCKES\n\nWrerkenle Bo-Peep\nFlorlkishle Boy Poun\nRain\nThe Clock\nWinter\nNietens and Toes\nA Gnuntingenle Jai\nSculk Mursh and Her Cat\nThree Thoochousish on the Ice\nNefs Gask\nThe Soamp Therltle Under a Gloang\nTweedle-Dum and Tweedle-Dee\nOh Steb!\nSwouck Felkid Rarp\nLainowid Yersking Joan\nPat-a-Cake\nMoney and the Klerck\nYiftel Smombleer\nA Melancholy Striesp\nJack\nSkamp to St. Ives\nPlorntel Wroors Strarg Joffleinger\nBaby Dolly\nGnesps\nPlieft Out to Play\nIf Wishes Were Brouses\nTo Fleevic\nBluch Garrms to Mend\nTrembley and Richard\nA Shrerrt and a Treeck\nHere Grends My Lord\nThe Clever Hen\nTwo Volts\nStoon Over Shorlt\nLucy Locket\nWhen Jenny Slarz Was Wroult\nBarber\nThe Flying Pig\nSolomon Zaibish\nHush-a-Bye\nBurnie Stairm\nThree Smooff Men of Gotham\nThe Skoster of Reigate\nBlerningous Polly Purnishs\nSpurmp Away, Foum Away\nGnydleid Fronk\nPussy-Cat and Lorch\nThe Klorlks\nClap Scusies\nChristmas\nElizabeth\nJust Bief Me\nPlay Brarrts\nHeigh-Ho, the Zirkleel Crow\nABC\nA Needle and Thread\nBanbury Wirs\nThe Weav in Our Town\nKrymbleing Maurner\nFor Every Skorrking\nCushy Cow\nSlailt Threart Winkie\nAbout the Broonk\nSee-Saw\nRobin-a-Bobbin\nFraung Kych\nTything Smaispent\nThree Blan Brock\nFive Toes\nA Spampelle Zurst\nDoctor Foster\nDiddle Diddle Vurrting\nLiden Prars\nFlirnkering Zoolls\nThe Black Hen\nThe Grerl\nA Rospent\nBoms Muffet\nCurly-Locks\nZeavel Thirving\nOne, Two, Three\nThe Dove and the Broark\nMaster I Have\nPins\nShall We Go A-Shearing?\nGoosey, Goosey, Sweacker\nSpousp Glaikleic Wrirrle\nThe Cock and the Hen\nBlep Bell Boy\nWhy May Not I Skerch Johnny?\nJack Jelf\nJack Prask\nHush-a-Bye\nThrieshishents\nThe Girl in the Firv\nHush-a-Bye\nWroving Dawson\nFiekleer Miepel\nJack and Jill\nThe Alphabet\nDance to Your Daddie\nOne Kruckish Scorstic Grerger\nKykent Scyg and Flyfterent Floul\nRain\nThe Blien Freezzleum from Churnd\nTeeth and Gums\nThe Woskishs\nThe Scooz Mar\nT'Other Niempicid Tune\nMy Kitten\nIf All the Snirns Were One Shrost\n", + "original_preview": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\nA Melancholy Song\nJack\nGoing to St. Ives\nThirty Days Hath September\nBaby Dolly\nBees\nCome Out to Play\nIf Wishes Were Horses\nTo Market\nOld Chairs to Mend\nRobin and Richard\nA Man and a Maid\nHere Goes My Lord\nThe Clever Hen\nTwo Birds\nLeg Over Leg\nLucy Locket\nWhen Jenny Wren Was Young\nBarber\nThe Flying Pig\nSolomon Grundy\nHush-a-Bye\nBurnie Bee\nThree Wise Men of Gotham\nThe Hunter of Reigate\nLittle Polly Flinders\nRide Away, Ride Away\nPippen Hill\nPussy-Cat and Queen\nThe Winds\nClap Handies\nChristmas\nElizabeth\nJust Like Me\nPlay Days\nHeigh-Ho, the Carrion Crow\nABC\nA Needle and Thread\nBanbury Cross\nThe Man in Our Town\nGeorgy Porgy\nFor Every Evil\nCushy Cow\nWee Willie Winkie\nAbout the Bush\nSee-Saw\nRobin-a-Bobbin\nJohn Smith\nSimple Simon\nThree Blind Mice\nFive Toes\nA Little Man\nDoctor Foster\nDiddle Diddle Dumpling\nJerry Hall\nLengthening Days\nThe Black Hen\nThe Mist\nA Candle\nMiss Muffet\nCurly-Locks\nHumpty Dumpty\nOne, Two, Three\nThe Dove and the Wren\nMaster I Have\nPins\nShall We Go A-Shearing?\nGoosey, Goosey, Gander\nOld Mother Hubbard\nThe Cock and the Hen\nBlue Bell Boy\nWhy May Not I Love Johnny?\nJack Jelf\nJack Sprat\nHush-a-Bye\nDaffodils\nThe Girl in the Lane\nHush-a-Bye\nNancy Dawson\nHandy Pandy\nJack and Jill\nThe Alphabet\nDance to Your Daddie\nOne Misty Moisty Morning\nRobin Hood and Little John\nRain\nThe Old Woman from France\nTeeth and Gums\nThe Robins\nThe Old Man\nT'Other Little Tune\nMy Kitten\nIf All the Seas Were One Sea\nPancake Day\nA Plum Pudding\nForehead, Eyes, Cheeks, Nose, etc.\nTwo Pigeons\nA Sure Test\nLock and Key\nThe Lion and the Unicorn\nThe Merchants of London\nI Had a Little Husband\nTo Babylon\n", + "preview_chars": 2000, + "truncated": true, + "vacated_chars": 92804, + "vacated_sha256": "c2f9e95fe83f464d54c6f0ae85e6d3df3cd6dd304614212c5cebe950ce000a7a", + "original_chars": 86408, + "original_sha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c" + } + }, + { + "label": "control-reveal-after-2", + "request": { + "p": 0.5, + "seed": 0, + "reveal_after": 2, + "source": "dolch", + "budget": "primer", + "preview_chars": 400 + }, + "response": { + "p": 0.5, + "seed": 0, + "consistent": true, + "match_prosody": true, + "reveal_after": 2, + "keep": [], + "vocabulary_rule": "rebuilt", + "words": [ + "a", + "and", + "away", + "big", + "blue", + "can", + "come", + "down", + "find", + "for", + "funny", + "go", + "help", + "here", + "i", + "in", + "is", + "it", + "jump", + "little", + "look", + "make", + "me", + "my", + "not", + "one", + "play", + "red", + "run", + "said", + "see", + "the", + "three", + "to", + "two", + "up", + "we", + "where", + "yellow", + "you", + "all", + "am", + "are", + "at", + "ate", + "be", + "black", + "brown", + "but", + "came", + "did", + "do", + "eat", + "four", + "get", + "good", + "have", + "he", + "into", + "like", + "must", + "new", + "no", + "now", + "on", + "our", + "out", + "please", + "pretty", + "ran", + "ride", + "saw", + "say", + "she", + "so", + "soon", + "that", + "there", + "they", + "this", + "too", + "under", + "want", + "was", + "well", + "went", + "what", + "white", + "who", + "will", + "with", + "yes" + ], + "budget": { + "source": "dolch", + "budget": "primer", + "size": 92, + "rows": 96, + "coverage": { + "total_tokens": 16000, + "in_budget_tokens": 5903, + "distinct_types": 2591, + "oov_types": 2502, + "total_lines": 3071, + "whole_lines_in_budget": 14, + "token_coverage": 0.368937, + "unk_rate": 0.631063 + } + }, + "corpus": { + "n_tokens": 16000, + "n_distinct": 2591, + "n_lines": 3075, + "n_chars": 90859 + }, + "vacancy_stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 966, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 467, + "stemsTotal": 1680, + "stemsVacated": 833, + "tokensTotal": 16000, + "tokensVacated": 3128, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.28981, + "meanAnapestBefore": 0.320932, + "meanAnapestAfter": 0.321139, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0256875, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.160125, + "stressFromRuleBefore": 0.948562, + "stressFromRuleAfter": 0.814187, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "bijective": true, + "remint_rounds": 0, + "preview": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nSkoufenty Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbrea", + "original_preview": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\n", + "preview_chars": 400, + "truncated": true, + "vacated_chars": 90859, + "vacated_sha256": "eaab90a02f74a23b0ec5cb5de79fcd1adc8a227a683f43b4f6a5cafd40d3250d", + "original_chars": 86408, + "original_sha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c" + } + }, + { + "label": "p07-seed0-frequency100", + "request": { + "p": 0.7, + "seed": 0, + "match_prosody": false, + "source": "frequency", + "budget": "full", + "size": 100, + "preview_chars": 400 + }, + "response": { + "p": 0.7, + "seed": 0, + "consistent": true, + "match_prosody": false, + "reveal_after": 0, + "keep": [], + "vocabulary_rule": "mapped", + "words": [ + "the", + "and", + "a", + "to", + "i", + "strek", + "of", + "was", + "in", + "my", + "he", + "garr", + "you", + "his", + "she", + "all", + "that", + "is", + "as", + "with", + "on", + "there", + "for", + "her", + "it", + "woosp", + "smen", + "plaisp", + "me", + "what", + "be", + "when", + "an", + "had", + "if", + "tharcks", + "do", + "so", + "dance", + "they", + "up", + "not", + "will", + "jack", + "one", + "wrais", + "squz", + "have", + "shall", + "were", + "baby", + "your", + "him", + "sqorl", + "go", + "two", + "strorn", + "them", + "grieg", + "but", + "down", + "out", + "who", + "over", + "i'll", + "we", + "boy", + "streesh", + "three", + "grurst", + "are", + "bist", + "oh", + "some", + "at", + "brorrk", + "by", + "keaf", + "again", + "can", + "fers", + "mout", + "traiz", + "strirm", + "myck", + "no", + "pussy-cat", + "vault", + "floosh", + "scarrt", + "failt", + "sqirz", + "cock", + "may", + "scard", + "yart", + "shoe", + "how", + "kliff", + "thream" + ], + "budget": { + "source": "frequency", + "budget": "top100", + "size": 100, + "rows": 104, + "coverage": { + "total_tokens": 16000, + "in_budget_tokens": 8378, + "distinct_types": 2211, + "oov_types": 2111, + "total_lines": 3071, + "whole_lines_in_budget": 87, + "token_coverage": 0.523625, + "unk_rate": 0.476375 + } + }, + "corpus": { + "n_tokens": 16000, + "n_distinct": 2211, + "n_lines": 3075, + "n_chars": 89070 + }, + "vacancy_stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1354, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1337, + "stemsTotal": 1680, + "stemsVacated": 1167, + "tokensTotal": 16000, + "tokensVacated": 6094, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.15469, + "meanAnapestBefore": 0.320932, + "meanAnapestAfter": 0.286373, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.017375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.30325, + "stressFromRuleBefore": 0.948562, + "stressFromRuleAfter": 0.679375, + "bijective": true, + "imageSize": 2233, + "remintRounds": 1 + }, + "bijective": true, + "remint_rounds": 1, + "preview": " THE PRIRLK\n WIELK BRARSP\n\n _Trirmed by_\nBlanche Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nStrek Bo-Peep\nStrek Boy Gea\nRain\nThe Snuch\nWinter\nTits and Smurlks\nA Squrv Shyf\nStruv Vard and Her Cat\nThree Klies on the Ice\nDroalls Brem\nThe Garr Plaisp Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielk Brarsp\nStrek Bylling Boub\nPat-a-Cake\nNied and the Meez\nSqorl Buff\nA Melanchol", + "original_preview": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\n", + "preview_chars": 400, + "truncated": true, + "vacated_chars": 89070, + "vacated_sha256": "4e19fffc82f8ca95bbab20ecc1c8a900d5339c01a98017d644a848d7290a6720", + "original_chars": 86408, + "original_sha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c" + } + } + ] +} diff --git a/code/frontend/tests/unit/staticVacancy.test.ts b/code/frontend/tests/unit/staticVacancy.test.ts new file mode 100644 index 0000000..64f8981 --- /dev/null +++ b/code/frontend/tests/unit/staticVacancy.test.ts @@ -0,0 +1,336 @@ +/** + * `POST /api/lex/vacancy` in the STATIC build — and the parity that makes it worth having. + * + * The Lexicon Lab computes in the browser in both modes, so the vacancy transform is not + * something the Pages build refuses or approximates: it runs the real + * `lexEngine/vacancy.ts` over the real committed corpus and answers the same request the + * real FastAPI route answers. FR-722 says the static build "serves the same capability"; + * this file is the measurement of that sentence rather than a restatement of it. + * + * THE CENTRAL TEST is `matches the live backend field for field`. Its fixture, + * `tests/fixtures/vacancy-api-golden.json`, was produced by + * + * python scripts/export_vacancy_api_golden.py + * + * running the REAL app through FastAPI's TestClient on the REAL corpus — the responses in + * it are transcripts, not expectations someone typed. `test_api_lex.py:: + * test_vacancy_matches_the_static_client_fixture` asserts the live route still returns + * exactly the same file, so the two stacks are pinned to ONE document: if either drifts, + * one of the two tests fails and names the field it drifted on. + * + * What that comparison actually covers, per case: every §10 statistic, the resolved + * vocabulary word for word, the budget's measured coverage of the vacated corpus, the + * preview text character for character, and `vacated_sha256` — the sha256 of the WHOLE + * 86 kB rewrite, which pins every byte the preview does not show. Floats need no tolerance + * because both stacks round to 6 significant digits before serving (`jsonable_6sig` and + * `sig6`), so the wire values are identical, not merely close. + * + * The remaining tests cover what a single-request fixture cannot: the properties that only + * exist ACROSS requests (nesting, stability, the invariance theorem's effect on coverage) + * and the parameter errors, which have no fixture because they have no body. + */ + +import { describe, expect, it } from "vitest"; +import fs from "node:fs"; +import path from "node:path"; + +import { createStaticClient, type StaticClient } from "../../src/lib/staticClient"; +import type { FetchLike } from "../../src/lib/staticClient/assets"; +import { + VACANCY_PREVIEW_CHARS, + VACANCY_PREVIEW_MAX, + type LexVacancyBody, + type LexVacancyResult, +} from "../../src/lib/staticClient/lex"; +import { fsStaticFetch } from "./staticTestUtils"; + +function client(fetchImpl: FetchLike = fsStaticFetch()): StaticClient { + return createStaticClient({ baseUrl: "/", fetchImpl }); +} + +// --- the parity fixture --------------------------------------------------------------- + +interface ApiGoldenCase { + label: string; + request: LexVacancyBody; + response: LexVacancyResult; +} + +interface ApiGolden { + format: string; + git_sha: string; + command: string; + contract: string; + tolerance: number; + endpoint: string; + defaults: { preview_chars: number; preview_max: number }; + corpus: { sha256: string; chars: number }; + cases: ApiGoldenCase[]; +} + +const GOLDEN: ApiGolden = JSON.parse( + fs.readFileSync( + path.resolve(__dirname, "../fixtures/vacancy-api-golden.json"), + "utf-8", + ), +) as ApiGolden; + +describe("the API-parity fixture is the real route's own output", () => { + it("declares its format, its generator and the contract it pins", () => { + expect(GOLDEN.format).toBe("vacancy-api-golden-v1"); + expect(GOLDEN.command).toBe("python scripts/export_vacancy_api_golden.py"); + expect(GOLDEN.endpoint).toBe("/api/lex/vacancy"); + expect(GOLDEN.contract).toBe("specs/002-interactive-model-explorer/contracts/api.md"); + expect(GOLDEN.git_sha).toMatch(/^[0-9a-f]{7,40}$/); + expect(GOLDEN.cases.length).toBeGreaterThanOrEqual(6); + }); + + /** + * The two stacks each hold their own copy of the preview defaults. A fixture generated + * with one and consumed by the other would paper over a mismatch precisely where it + * matters — the excerpt length — so the numbers are compared directly as well. + */ + it("was generated with the preview defaults this build uses", () => { + expect(GOLDEN.defaults.preview_chars).toBe(VACANCY_PREVIEW_CHARS); + expect(GOLDEN.defaults.preview_max).toBe(VACANCY_PREVIEW_MAX); + const usingDefault = GOLDEN.cases.filter((c) => c.request.preview_chars === undefined); + expect(usingDefault.length).toBeGreaterThan(0); + for (const c of usingDefault) { + expect(c.response.preview_chars).toBe(VACANCY_PREVIEW_CHARS); + } + }); +}); + +describe("the static build answers /api/lex/vacancy exactly as the backend does", () => { + for (const testCase of GOLDEN.cases) { + it(`matches the live backend field for field — ${testCase.label}`, async () => { + const got = await client().lexVacancy(testCase.request); + const want = testCase.response; + + // The digest first and by name: it is the one assertion that covers all 86 kB, and + // a failure here means the two stacks vacated the corpus DIFFERENTLY, which is a + // different (and worse) bug than a statistic being reported differently. + expect(got.vacated_sha256).toBe(want.vacated_sha256); + expect(got.original_sha256).toBe(want.original_sha256); + expect(got.vacated_chars).toBe(want.vacated_chars); + + expect(got.vacancy_stats).toEqual(want.vacancy_stats); + expect(got.vocabulary_rule).toBe(want.vocabulary_rule); + expect(got.words).toEqual(want.words); + expect(got.budget).toEqual(want.budget); + expect(got.corpus).toEqual(want.corpus); + expect(got.preview).toBe(want.preview); + expect(got.original_preview).toBe(want.original_preview); + + // …and then the whole object, so a field added on one side and not the other is a + // failure rather than something the assertions above happen not to look at. + expect(got).toEqual(want); + }); + } +}); + +describe("what the response says about itself", () => { + it("returns an excerpt plus a digest, never the whole corpus", async () => { + const res = await client().lexVacancy({ p: 1, seed: 0 }); + expect(res.preview_chars).toBe(VACANCY_PREVIEW_CHARS); + expect(res.preview.length).toBe(VACANCY_PREVIEW_CHARS); + expect(res.truncated).toBe(true); + // The corpus is ~86 kB; the excerpt is a fortieth of it and the digest covers the rest. + expect(res.vacated_chars).toBeGreaterThan(VACANCY_PREVIEW_CHARS * 10); + expect(res.vacated_sha256).toMatch(/^[0-9a-f]{64}$/); + }); + + it("serves a longer excerpt on request, up to the ceiling", async () => { + const res = await client().lexVacancy({ p: 1, seed: 0, preview_chars: 10 }); + expect(res.preview.length).toBe(10); + expect(res.truncated).toBe(true); + await expect( + client().lexVacancy({ p: 1, preview_chars: VACANCY_PREVIEW_MAX + 1 }), + ).rejects.toMatchObject({ type: "InvalidParamError" }); + }); + + it("is the identity at p = 0, digest included", async () => { + const res = await client().lexVacancy({ p: 0, seed: 0 }); + // `u ∈ [0, 1)`, so `u < 0` is never true and nothing can vacate. + expect(res.vacated_sha256).toBe(res.original_sha256); + expect(res.preview).toBe(res.original_preview); + expect(res.vacancy_stats.corpusTypesVacated).toBe(0); + expect(res.vacancy_stats.tokensVacated).toBe(0); + expect(res.vacancy_stats.stemsVacated).toBe(0); + }); +}); + +describe("the properties a single request cannot show", () => { + /** + * SC-703 through the API surface. Under the mapped condition the transform is a pure + * relabelling of the vocabulary, so a budget's measured coverage of the VACATED corpus + * must equal its coverage of the English one — same tokens in budget, same `` in + * the same places. This is the invariance theorem stated in the units the panel shows. + */ + it("leaves coverage bit-identical under the mapped vocabulary, at every p", async () => { + const c = client(); + const english = await c.lexCoverage({ source: "dolch", budget: "primer" }); + for (const p of [0, 0.25, 0.5, 0.75, 1]) { + for (const seed of [0, 7]) { + const res = await c.lexVacancy({ p, seed, source: "dolch", budget: "primer" }); + expect(res.vocabulary_rule).toBe("mapped"); + expect(res.budget.coverage).toEqual(english.coverage); + expect(res.budget.rows).toBe(english.rows); + expect(res.corpus.n_tokens).toBe(english.corpus.n_tokens); + expect(res.corpus.n_distinct).toBe(english.corpus.n_distinct); + expect(res.corpus.n_lines).toBe(english.corpus.n_lines); + } + } + }); + + /** SC-705: the controls BREAK it, and the break is what the panel measures. */ + it("collapses coverage under both control conditions, at the same p", async () => { + const c = client(); + const mapped = await c.lexVacancy({ p: 0.5, seed: 0, source: "dolch", budget: "primer" }); + const inconsistent = await c.lexVacancy({ + p: 0.5, + seed: 0, + consistent: false, + source: "dolch", + budget: "primer", + }); + const revealed = await c.lexVacancy({ + p: 0.5, + seed: 0, + reveal_after: 2, + source: "dolch", + budget: "primer", + }); + expect(mapped.vocabulary_rule).toBe("mapped"); + expect(inconsistent.vocabulary_rule).toBe("rebuilt"); + expect(revealed.vocabulary_rule).toBe("rebuilt"); + expect(inconsistent.budget.coverage.unk_rate).toBeGreaterThan(mapped.budget.coverage.unk_rate); + expect(revealed.budget.coverage.unk_rate).toBeGreaterThan(mapped.budget.coverage.unk_rate); + }); + + /** + * SC-701 / SC-702 as the API reports them: `stemsVacated` never falls as `p` rises, and + * a stem minted at a low `p` is byte-identical at every higher one. The second half is + * checked through the mapped word list, which is the map restricted to the budget. + */ + it("nests and stays stable as p rises", async () => { + const c = client(); + const seen: { p: number; stems: number; words: string[] }[] = []; + for (const p of [0, 0.25, 0.5, 0.75, 1]) { + const res = await c.lexVacancy({ p, seed: 0, source: "dolch", budget: "primer" }); + seen.push({ p, stems: res.vacancy_stats.stemsVacated, words: res.words }); + } + for (let i = 1; i < seen.length; i++) { + expect(seen[i].stems).toBeGreaterThanOrEqual(seen[i - 1].stems); + // Stability: any word already rewritten at the lower `p` is unchanged at the higher. + for (let w = 0; w < seen[i].words.length; w++) { + const lower = seen[i - 1].words[w]; + const higher = seen[i].words[w]; + if (lower !== seen[0].words[w]) expect(higher).toBe(lower); + } + } + // The two ends are identities, not observations: `u ∈ [0, 1)`, so nothing vacates at + // `p = 0` and EVERY eligible stem vacates at `p = 1` (§10). + const last = await client().lexVacancy({ p: 1, seed: 0, source: "dolch", budget: "primer" }); + expect(seen[0].stems).toBe(0); + expect(last.vacancy_stats.stemsVacated).toBe(last.vacancy_stats.stemsTotal); + expect(last.vacancy_stats.corpusTypesVacated).toBe(last.vacancy_stats.corpusTypesEligible); + }); + + /** FR-716: vacancy composes with a user's own text, not only with the shipped corpus. */ + it("transforms pasted text as readily as the shipped corpus", async () => { + const text = "The little brown squirrel ate the pretty acorn.\nThe squirrel ran away.\n"; + const res = await client().lexVacancy({ text, p: 1, seed: 0, preview_chars: 200 }); + expect(res.original_preview).toBe(text); + expect(res.preview).not.toBe(text); + // §1: only WORD_RE matches are replaced — punctuation and line breaks pass through. + expect(res.preview.split("\n").length).toBe(text.split("\n").length); + expect((res.preview.match(/\./g) ?? []).length).toBe(2); + expect(res.vacancy_stats.tokensTotal).toBe(12); + // Three of the twelve are `the`/`The`, which §2.1 preserves. The other nine — + // little, brown, squirrel, ate, pretty, acorn, squirrel, ran, away — are open class, + // and at `p = 1` every one of them moves. + expect(res.vacancy_stats.tokensVacated).toBe(9); + expect(res.vacancy_stats.corpusTypesVacated).toBe(8); // `squirrel` occurs twice + }); +}); + +describe("bad vacancy parameters are refused in the shared envelope", () => { + const bad: [string, LexVacancyBody][] = [ + ["p above 1", { p: 1.5 }], + ["p below 0", { p: -0.1 }], + ["a negative reveal_after", { reveal_after: -1 }], + ["preview_chars above the ceiling", { preview_chars: VACANCY_PREVIEW_MAX + 1 }], + ["preview_chars below zero", { preview_chars: -1 }], + ["a bare string for keep", { keep: "little" as unknown as string[] }], + ["size on a Dolch budget", { source: "dolch", size: 50 }], + ["an unknown budget", { budget: "not-a-budget" }], + ]; + for (const [what, body] of bad) { + it(`rejects ${what}`, async () => { + await expect(client().lexVacancy(body)).rejects.toMatchObject({ + type: "InvalidParamError", + }); + }); + } +}); + +describe("training on a vacated corpus", () => { + /** + * FR-713 / SC-703's corollary, run for real in the browser engine: with the mapped + * vocabulary the token id stream is unchanged, so a real training run at `p = 0.5` must + * produce BIT-IDENTICAL losses to the same run on the English corpus. Not "close" — + * identical, because `runTraining` sees the same integers either way. + */ + it("is bit-identical to training on the English corpus under the mapped vocabulary", async () => { + const c = client(); + const shape = { + source: "dolch", + budget: "pre_primer", + steps: 12, + d_model: 16, + n_layers: 1, + n_heads: 1, + ctx: 32, + batch_size: 8, + seed: 3, + } as const; + const english = await trainToCompletion(c, { ...shape }); + const vacated = await trainToCompletion(c, { + ...shape, + vacancy: { p: 0.5, seed: 0 }, + }); + expect(vacated.final_loss).toBe(english.final_loss); + expect(vacated.first_loss).toBe(english.first_loss); + expect(vacated.val_loss).toBe(english.val_loss); + expect(vacated.n_tokens).toBe(english.n_tokens); + expect(vacated.vocab_rows).toBe(english.vocab_rows); + // Same numbers, DIFFERENT words: the model is blind to the relabelling, which is the + // finding rather than a caveat about it. + expect(vacated.model_token).not.toBe(english.model_token); + }, 120_000); + + it("rejects a vacancy block that is not an object", async () => { + await expect( + client().lexTrain({ vacancy: 0.5 as unknown as Record }), + ).rejects.toMatchObject({ type: "InvalidParamError" }); + }); +}); + +/** Start a training run and wait for its result, exactly as a view would. */ +async function trainToCompletion( + c: StaticClient, + body: Parameters[0], +): Promise & { model_token: string }> { + const started = await c.lexTrain(body); + if (started.ready) { + return started as unknown as Record & { model_token: string }; + } + const done = await new Promise>((resolve, reject) => { + c.subscribeProgress(started.job_id, { + onDone: (data) => resolve(data ?? {}), + onError: (type, message) => reject(new Error(`${type}: ${message}`)), + }); + }); + return done as Record & { model_token: string }; +} diff --git a/scripts/export_vacancy_api_golden.py b/scripts/export_vacancy_api_golden.py new file mode 100644 index 0000000..9c15699 --- /dev/null +++ b/scripts/export_vacancy_api_golden.py @@ -0,0 +1,198 @@ +#!/usr/bin/env python +"""Emit the vacancy **API** golden vectors — the endpoint/static-client parity fixture. + +`scripts/export_vacancy_golden.py` pins the TRANSFORM across the two stacks (§11 of +`specs/007-vacancy-transform-field/architecture.md`). This script pins the layer above it: +what `POST /api/lex/vacancy` actually puts on the wire, so that + +* `code/backend/tests/contract/test_api_lex.py` can assert the live FastAPI route still + returns exactly this, and +* `code/frontend/tests/unit/staticVacancy.test.ts` can assert the browser's + `staticClient.lexVacancy()` returns exactly this too. + +Two tests, one file, and therefore one claim: **the full stack and the static build answer +the same request with the same numbers, the same vocabulary, and the same sha256 of the +whole vacated corpus.** FR-722 is that sentence; this fixture is what makes it checkable +rather than asserted. If either side drifts, one of the two tests fails and names the +field. + +The route is exercised through FastAPI's `TestClient` against the REAL app with the REAL +committed corpus — no mocks, no stubbed transform, no hand-written expectations. Every +value in the output was produced by running the endpoint. + +Usage (from the backend venv, at the repo root): + + python scripts/export_vacancy_api_golden.py + python scripts/export_vacancy_api_golden.py --out /tmp/vacancy-api-golden.json + +Determinism: the transform is a pure function of `(corpus, params)` and the route adds no +clock or randomness, so regenerating this twice must produce byte-identical bytes. +`--generated` is a date rather than a timestamp for exactly that reason. + +WHAT THE CASES COVER, and why each is here rather than being one more of the same: + +* `p1-seed7-pre_primer` — full vacancy at the seed that needs a re-mint (`remintRounds` 1, + where `hang` first minted `wak` and `hanged` surfaced as the real word `waked`). Pins the + DEFAULT `preview_chars`, so a drift in either stack's default fails here. +* `p035-seed0-full` — the source's own figure `p`, against the largest Dolch budget, so the + mapped word list being pinned is 314 words long. +* `p0-seed0-pre_primer` — the identity boundary. `u ∈ [0, 1)`, so nothing vacates and the + vacated digest must equal the original's. A transform that quietly did something at + `p = 0` would show up nowhere else. +* `control-inconsistent` — `consistent = false`. The vocabulary is REBUILT rather than + mapped (§7.2) and coverage collapses; that collapse is the measurement (FR-715), and it + is the case where the two stacks previously minted different per-occurrence forms. +* `control-reveal-after-2` — `revealAfter = 2`. The other rebuilt condition, and the one + where `corpusTypesVacated` is measured from the two TEXTS rather than from map + membership (§10) — the definition the stacks split on. +* `p07-seed0-frequency100` — a frequency budget, whose word list is drawn from the corpus + rather than from a fixed list, plus a non-default `preview_chars`. +""" + +from __future__ import annotations + +import argparse +import json +import sys +from datetime import date +from pathlib import Path +from typing import Any + +REPO_ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(REPO_ROOT / "code" / "backend" / "src")) + +from fastapi.testclient import TestClient # noqa: E402 + +from llm_geometry.api.app import app # noqa: E402 +from llm_geometry.api.routes_lex import ( # noqa: E402 + VACANCY_PREVIEW_CHARS, + VACANCY_PREVIEW_MAX, +) +from llm_geometry.lex.corpus import load_corpus_text # noqa: E402 + +# Reuse the transform exporter's git-sha helper rather than writing a second one. +sys.path.insert(0, str(REPO_ROOT / "scripts")) +from export_vacancy_golden import git_sha, sha256_text # noqa: E402 + +DEFAULT_OUT = REPO_ROOT / "code" / "frontend" / "tests" / "fixtures" / "vacancy-api-golden.json" + +FORMAT = "vacancy-api-golden-v1" + +#: Both stacks round every float in a response to 6 significant digits before it reaches a +#: caller (`api/encoding.py::jsonable_6sig` and `staticClient/lex.ts::sig6`), so the wire +#: values are IDENTICAL, not merely close. The tests compare with `toBe` / `==`; this bound +#: exists only so a future float that escapes the rounding has a documented allowance +#: instead of a silently loosened assertion. +TOLERANCE = 0.0 + +#: `(label, request body)`. The body is sent verbatim; the corpus is the shipped one in +#: every case, because the point of the fixture is parity on the text both stacks ship. +CASES: tuple[tuple[str, dict[str, Any]], ...] = ( + ( + "p1-seed7-pre_primer", + {"p": 1.0, "seed": 7, "source": "dolch", "budget": "pre_primer"}, + ), + ( + "p035-seed0-full", + {"p": 0.35, "seed": 0, "source": "dolch", "budget": "full", "preview_chars": 400}, + ), + ( + "p0-seed0-pre_primer", + {"p": 0.0, "seed": 0, "source": "dolch", "budget": "pre_primer", "preview_chars": 400}, + ), + ( + "control-inconsistent", + { + "p": 0.5, + "seed": 0, + "consistent": False, + "source": "dolch", + "budget": "primer", + }, + ), + ( + "control-reveal-after-2", + { + "p": 0.5, + "seed": 0, + "reveal_after": 2, + "source": "dolch", + "budget": "primer", + "preview_chars": 400, + }, + ), + ( + "p07-seed0-frequency100", + { + "p": 0.7, + "seed": 0, + "match_prosody": False, + "source": "frequency", + "budget": "full", + "size": 100, + "preview_chars": 400, + }, + ), +) + + +def build_document(generated: str) -> dict[str, Any]: + client = TestClient(app) + corpus = load_corpus_text() + + cases: list[dict[str, Any]] = [] + for label, body in CASES: + response = client.post("/api/lex/vacancy", json=body) + if response.status_code != 200: + raise SystemExit( + f"case {label!r}: the route returned {response.status_code}: {response.text}" + ) + cases.append({"label": label, "request": body, "response": response.json()}) + + return { + "format": FORMAT, + "generated": generated, + "git_sha": git_sha(), + "command": "python scripts/export_vacancy_api_golden.py", + "source": ( + "POST /api/lex/vacancy on the real FastAPI app with the real committed " + "corpus, through fastapi.testclient — real route, real transform, no mocks" + ), + "contract": "specs/002-interactive-model-explorer/contracts/api.md", + "tolerance": TOLERANCE, + "endpoint": "/api/lex/vacancy", + "defaults": { + "preview_chars": VACANCY_PREVIEW_CHARS, + "preview_max": VACANCY_PREVIEW_MAX, + }, + "encoding": ( + "exactly what the route serves: every float already rounded to 6 significant " + "digits by api/encoding.py::jsonable_6sig, which staticClient/lex.ts::sig6 " + "reproduces, so every field compares EXACTLY. `vacated_sha256` is over the " + "UTF-8 bytes of the WHOLE vacated corpus — 86 kB pinned in 64 characters." + ), + "corpus": { + "path": "code/backend/src/llm_geometry/lex/data/real-mother-goose.txt", + "sha256": sha256_text(corpus), + "chars": len(corpus), + }, + "cases": cases, + } + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--out", type=Path, default=DEFAULT_OUT) + parser.add_argument("--generated", default=date.today().isoformat()) + args = parser.parse_args() + + document = build_document(args.generated) + args.out.parent.mkdir(parents=True, exist_ok=True) + args.out.write_text(json.dumps(document, indent=1) + "\n", encoding="utf-8") + print( + f"wrote {args.out} ({args.out.stat().st_size / 1024:.0f} KB, {len(document['cases'])} cases)" + ) + + +if __name__ == "__main__": + main() From 1b4704bf76847b582b159a6bea59940053536ff5 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 11:26:15 -0400 Subject: [PATCH 33/38] Contract: record feature 007's additive endpoints (frozen file, own commit) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The frozen feature-002 contract is edited in its own commit, per the project rule, and the edit adds NOTHING to the endpoints it froze — no path, parameter, field, status code or error type below the new section changes meaning. What changed and why it was needed: * `api.md` gains an "Additive namespaces" table recording that 006 added `/api/lex/*` and 007 adds `POST /api/lex/vacancy` plus an optional `vacancy` object on `POST /api/lex/train`, with the reasoning for each. 006's namespace was already shipped and already documented in its own file, but nothing in the frozen document said so — "frozen" was quietly meaning "undocumented", and the next reader would have had to grep the routers to learn what else exists. * Why 007 needed a new endpoint rather than a flag on an existing one: the vacancy transform rewrites a CORPUS and every endpoint in the frozen file takes a model or a prompt. Folding it into `/api/lex/coverage` would have made that response mean two different things depending on a flag, which is the failure the freeze exists to prevent. `/api/lex/train` did gain a parameter, and it is optional with an absent-means-unchanged guarantee, because a vacated corpus must be tokenized under the vocabulary the transform assigns it and shipping the ~86 kB rewritten text back and forth to arrange that would have been the worse contract. * `api-lex.md` gains the full wire specification: request and response of `POST /api/lex/vacancy` (including why it returns an excerpt plus a sha256 rather than the corpus), the `vacancy` object on `/train` and its bit-identical loss guarantee under the mapped vocabulary, the error list, and the parity fixture both stacks are asserted against. Co-Authored-By: Claude Opus 5 (1M context) --- .../contracts/api.md | 22 ++++ .../006-lexicon-lab-tiny/contracts/api-lex.md | 110 +++++++++++++++++- 2 files changed, 131 insertions(+), 1 deletion(-) diff --git a/specs/002-interactive-model-explorer/contracts/api.md b/specs/002-interactive-model-explorer/contracts/api.md index a6e5df8..869bf41 100644 --- a/specs/002-interactive-model-explorer/contracts/api.md +++ b/specs/002-interactive-model-explorer/contracts/api.md @@ -15,6 +15,28 @@ SSE progress events MAY now carry an optional `"phase"` field Array encoding: all tensors are nested JSON lists of finite floats, row-major, rounded to 6 significant digits. Shapes documented as `(rows, cols)`. +## Additive namespaces (this file's endpoints are unchanged) + +Later features add whole namespaces beside `/api/geo/*` and `/api/arch/*`. Nothing +below is altered by them — no path, parameter, field, status code, or error type in +this document changes meaning — and each addition is recorded here so that "frozen" +means *frozen*, not *undocumented*: + +| Added by | Namespace | Contract | +|-|-|-| +| 006 | `/api/lex/*` (Lexicon Lab) | `specs/006-lexicon-lab-tiny/contracts/api-lex.md` | +| 007 | `POST /api/lex/vacancy`, `vacancy` on `POST /api/lex/train` | same file, "Feature 007" section | + +**Why 007 needed an addition rather than a parameter on something existing.** The +vacancy transform rewrites a *corpus*, and every existing endpoint here takes a model +or a prompt. Folding it into `/api/lex/coverage` would have made that endpoint's +response mean two different things depending on a flag — the exact failure this file +is frozen to prevent. The one existing endpoint that did change, `/api/lex/train`, +gained an **optional** object whose absence is byte-for-byte the previous behaviour, +because a vacated corpus has to be tokenized under the vocabulary the transform +assigns it and shipping the ~86 kB rewritten text back and forth to achieve that +would have been a worse contract than a parameter. + --- ## Geometry Lab — `/api/geo/*` diff --git a/specs/006-lexicon-lab-tiny/contracts/api-lex.md b/specs/006-lexicon-lab-tiny/contracts/api-lex.md index 10f9a0a..cf47a67 100644 --- a/specs/006-lexicon-lab-tiny/contracts/api-lex.md +++ b/specs/006-lexicon-lab-tiny/contracts/api-lex.md @@ -1,4 +1,4 @@ -# API Contract: Lexicon Lab — `/api/lex/*` (feature 006) +# API Contract: Lexicon Lab — `/api/lex/*` (features 006, 007) **Additive.** This file adds a new namespace; it does **not** change anything in the frozen feature-002 contract (`specs/002-interactive-model-explorer/contracts/api.md`). @@ -25,8 +25,17 @@ byte-identical weights but different word lists are different models and get dif tokens: the vocabulary is this tab's independent variable, and a shared token would let a cache hit serve the wrong labels. +**Feature 007 additions**, marked as such where they appear below: +`POST /api/lex/vacancy` (new path) and an **optional** `vacancy` object on +`POST /api/lex/train` (absent ⇒ the endpoint is byte for byte what it was). Their +semantics are fixed by `specs/007-vacancy-transform-field/architecture.md`, which both +stacks implement; this file specifies only what goes on the wire. + Implementation: `code/backend/src/llm_geometry/api/routes_lex.py`. Contract tests: `code/backend/tests/contract/test_api_lex.py`. +The static build serves the same surface from +`code/frontend/src/lib/staticClient/lex.ts` — the Lexicon Lab computes in the browser +in **both** modes, so nothing in this namespace is refused or approximated there. --- @@ -141,6 +150,105 @@ a corpus with no word tokens, or a corpus shorter than one full context window. `404 NotFoundError` — unknown `base`. `500 TrainingFailedError` (via the job error event) — a real training failure, surfaced verbatim, never replaced by a partial result. +### Feature 007: the optional `vacancy` object + +← `"vacancy": { "p", "seed", "consistent", "match_prosody", "reveal_after", "keep" }` + +**Optional and additive: absent, everything above is unchanged, byte for byte.** +Present, the resolved corpus is vacated (`POST /api/lex/vacancy` below defines the +parameters) *before* training, and the model is trained under the vocabulary +`specs/007-vacancy-transform-field/architecture.md` §7.2 assigns it — **mapped** when +`consistent` and `reveal_after = 0`, **rebuilt** from the vacated corpus otherwise. + +The transform runs server-side rather than in the client because `/api/lex/vacancy` +deliberately returns an excerpt: sending the whole rewritten corpus back just to train +on it would move ~86 kB per request in each direction. + +With `base` set the base model's vocabulary is used unchanged, as it always is; only +the text is vacated. + +Under the mapped condition this is a **pure relabelling**: the token id stream is +element-for-element identical, so `first_loss`, `final_loss` and `val_loss` are +*bit-identical* to the same run on the English corpus. That is the tiny arm's result +(architecture.md §7.3), not a caveat about it. The `model_token` still differs, +because the vocabulary is part of it. + +The transform's parameters are in the cache key even though `(corpus, vocabulary)` +already determines the run — so that a knob added to the transform later cannot land +on an entry made before it existed. + +Errors: `400 InvalidParamError` — `vacancy` not an object, or any parameter outside +the ranges given for `/api/lex/vacancy`. + +## POST /api/lex/vacancy + +**Feature 007.** The vacancy transform applied to a corpus, with the statistics of +`specs/007-vacancy-transform-field/architecture.md` §10. Additive: it adds a path and +changes nothing that existed. Same corpus-source and budget rules as +`/api/lex/coverage`, because the interesting question about a vacated corpus is always +"under which vocabulary?". + +← `{ "source", "budget", "size", // as /coverage + "text" | "hf_dataset" (+ "hf_split", "max_samples"), // as /coverage + "p": , "seed": , + "consistent": , "match_prosody": , + "reveal_after": , "keep": [, …], + "preview_chars": }` + +All fields optional. The five transform knobs are architecture.md §7.1's, in this +API's `snake_case`; `keep` must be a **list**, since a bare string would be read +letter by letter and quietly protect six single letters. + +→ `200 { "p", "seed", "consistent", "match_prosody", "reveal_after", "keep": [, …], + "vocabulary_rule": "mapped" | "rebuilt", + "words": [, …], + "budget": { "source", "budget", "size", "rows", "coverage": {…} }, + "corpus": { "n_tokens", "n_distinct", "n_lines", "n_chars" }, + "vacancy_stats": { …§10's 23 fields, camelCase… }, + "bijective": , "remint_rounds": , + "preview": , "original_preview": , + "preview_chars": , "truncated": , + "vacated_chars": , "vacated_sha256": "<64 hex>", + "original_chars": , "original_sha256": "<64 hex>" }` + +**An excerpt and a digest, never the whole vacated corpus.** The shipped corpus is +~86 kB of body text and the panel re-runs this on every tick of the `p` slider, so +returning it whole would put megabytes on the wire across one sweep to show a reader a +screenful. Nothing needs it whole: the panel shows an excerpt (the source's own figure +is its first 400 characters), and a caller that wants to *train* on the vacated corpus +sends the same parameters to `/api/lex/train`, which vacates in place. What an excerpt +cannot do by itself is prove which text it came from, so `vacated_sha256` covers all of +it in 64 characters — and that digest is the single value the static build's +in-browser transform is checked against. + +`vacancy_stats` carries §10's field names **verbatim**, camelCase inside this API's +snake_case envelope on purpose: they are a cross-language contract between +`llm_geometry/lex/vacancy.py` and `lexEngine/vacancy.ts`, not this API's naming. An +unprefixed `types*` is forbidden there; every count names its scope (`domainTypes*` vs +`corpusTypes*`). `bijective` and `remint_rounds` also appear at the top level, because +injectivity is the guarantee the mapped vocabulary rests on and a caller checking it +should not have to reach into a statistics block. + +`vocabulary_rule` says which of §7.2's two rules produced `words`, and a client must +not have to infer it from the parameters: `"mapped"` is the only condition under which +the ids are the English ids, and that is the difference between an invariance result +and a coverage collapse. + +Every number returned is measured on the corpus in the request. The source document's +own prosody figures are its numbers on a corpus we do not have and are transcribed +nowhere. + +Errors: `400 InvalidParamError` — `p` outside `[0, 1]` or not a number, +`reveal_after < 0`, `preview_chars` outside `0..20000`, `keep` not a list of strings, +`size` with `source="dolch"`, an unknown budget, a corpus with no word tokens, or both +`text` and `hf_dataset`. + +Parity: `code/frontend/tests/fixtures/vacancy-api-golden.json` is a transcript of this +route (`python scripts/export_vacancy_api_golden.py`, real app, real corpus, no mocks). +`test_api_lex.py` asserts the live route still returns it and +`tests/unit/staticVacancy.test.ts` asserts the browser's in-page implementation +reproduces it field for field, so neither stack can drift alone. + ## GET /api/lex/spectrum The geometry of a trained model's embedding (FR-620..FR-623). From 8a8f38ae608f57992a341a5b31784d0860d2b8b2 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 11:48:55 -0400 Subject: [PATCH 34/38] The swap control -- and a theorem retracting one of my own spec claims SC-707a asserted that swap must satisfy the invariance theorem exactly as nonce does, and offered that as the check that swap was implemented correctly. It is false, and the reason is a theorem rather than a bug: A map that is stable in p and whose images are DOMAIN TYPES is injective at every p only if it is the identity. T_p injective for all p forces sigma(V_p) = V_p; the V_p grow one stem family at a time, so u(sigma(s)) = u(s), so sigma = id. Swap draws its replacements from the domain by construction, so at intermediate p a swapped word collides with a word not yet vacated -- measured, 191/246/190 colliding types at p = .25/.5/.75. So the criterion is corrected, not the code weakened: swap satisfies the theorem at p in {0,1} -- 48 of the 120 SC-703 cases -- and the other 72 are REFUSED with a typed error citing the new section 5.2a. Nonce stays 120/120. An instrument that declines the configurations it cannot support is sound; one that quietly returns a non-injective map is not. This costs the pretrained arm nothing, since it scores at full vacancy, where swap IS a bijection of the domain -- checked rather than assumed. Condition B is also restated properly: B is sufficient, not necessary. The exact p-independent condition is A + B', and B implies B' vacuously, so nonce is unchanged. Also closes the `forbidden` asymmetry: Python now stores the set including every superseded re-mint nonce, matching TypeScript. At seed 7, `wak` is in `forbidden` but not in `mapping.values()` -- named in both stacks' tests. Every pre-existing fixture case regenerated byte-identical, so nothing observable moved. Both stacks agree on all four swap map digests and all six swap id-stream digests. Backend 462; frontend 453; svelte-check 0/0; fixture byte-identical across two regenerations. Co-Authored-By: Claude Opus 5 (1M context) --- code/backend/src/llm_geometry/lex/vacancy.py | 356 +++++++- code/backend/tests/unit/test_lex_vacancy.py | 273 +++++- code/frontend/src/lib/lexEngine/vacancy.ts | 341 +++++++- code/frontend/src/viz/lex/VacancyPanel.svelte | 11 +- .../tests/fixtures/vacancy-golden.json | 807 +++++++++++++++++- code/frontend/tests/unit/vacancy.test.ts | 180 +++- .../frontend/tests/unit/vacancyGolden.test.ts | 18 +- scripts/export_vacancy_golden.py | 92 +- .../architecture.md | 100 ++- specs/007-vacancy-transform-field/spec.md | 23 +- 10 files changed, 2114 insertions(+), 87 deletions(-) diff --git a/code/backend/src/llm_geometry/lex/vacancy.py b/code/backend/src/llm_geometry/lex/vacancy.py index dea4139..fbde8aa 100644 --- a/code/backend/src/llm_geometry/lex/vacancy.py +++ b/code/backend/src/llm_geometry/lex/vacancy.py @@ -47,6 +47,17 @@ for: `u` depends only on `(seed, stem)`, so vacated sets are **nested** in `p`; the map is built independently of `p`, so a stem's nonce is **stable** across the whole sweep. +**Two minting strategies** (``VacancyParams.mint``, contract §8.3). ``"nonce"`` invents the +replacement; ``"swap"`` draws a REAL English word from the domain's own open-class types by +frequency rank, which is the control that separates *wrong content* from *unknown form* for +the pretrained arm. They differ in exactly one property, and §5.2a proves the difference is +forced rather than a shortcoming of this implementation: a swap map's images ARE domain +types, so a vacated word can land on one that has not moved, and no `p`-stable such map is +injective at intermediate `p` unless it is the identity. Swap is therefore a bijection of +the domain at full vacancy — where the pretrained arm measures, and where the invariance +theorem holds for it exactly as for nonce — and :func:`map_vocab_words` refuses the rest +rather than manufacturing a vocabulary with two words on one row. + Two defects that the first implementation of this contract exposed are now fixed in the contract itself, and each is covered by a named test here: @@ -220,6 +231,27 @@ #: Contract §5.2/§7.3: injectivity is verified, not assumed, and re-minted on collision. MAX_REMINT_ROUNDS = 8 +# --- the swap control (contract §8.3) ---------------------------------------------------- + +#: Half-width of the frequency-rank window a swap replacement is drawn from: attempt `a` +#: proposes ``pool[(r + delta) % len(pool)]`` for ``delta`` in ``[-w, -1] | [1, w]``. +SWAP_WINDOW = 32 + +#: The window doubles every this many attempts, up to the whole pool — the same deterministic +#: relaxation §5.5 uses, and necessary for the same reason: "anything already used" depletes a +#: fixed window for the stems late in canonical order. +SWAP_WIDEN_EVERY = 64 + +#: Attempt at which the prosody filter is dropped, mirroring :data:`MINT_RELAX_SYLLABLES_SALT`. +SWAP_RELAX_PROSODY = 1024 + +#: Reaching this many attempts raises rather than looping — the pool is finite, so unlike +#: minting this bound is reachable in principle and we want to know if it ever is. +SWAP_MAX_ATTEMPTS = 4096 + +#: The two minting strategies of contract §7.1 / §8.3. +MINT_STRATEGIES: tuple[str, ...] = ("nonce", "swap") + #: Contract §5.8: a re-mint jumps to a fresh region of the byte stream deterministically. REMINT_SALT_STRIDE = 1000 @@ -418,8 +450,10 @@ class _ByteStream: __slots__ = ("_prefix", "_counter", "_block", "_offset") - def __init__(self, seed: int, stem: str, salt: int) -> None: - self._prefix = f"{seed}:mint:{stem}:{salt}:" + def __init__(self, seed: int, stem: str, salt: int, tag: str = "mint") -> None: + #: `tag` separates the minting stream from the swap-draw stream of §8.3. It is part + #: of the hashed prefix, so the two can never alias however the salts line up. + self._prefix = f"{seed}:{tag}:{stem}:{salt}:" self._counter = 0 self._block = hashlib.sha256(f"{self._prefix}0".encode("utf-8")).digest() self._offset = 0 @@ -499,6 +533,143 @@ def _mint( ) +def type_counts(tokens: Iterable[str]) -> dict[str, int]: + """Occurrences per lowercased type — the frequency source the swap control ranks by. + + Takes the TOKEN STREAM (``tokenize(text)``), not the type set: a set has no frequencies, + and ``mint="swap"`` needs them. Passing the deduplicated domain here would silently rank + every type equally and give a map that is alphabetical rather than frequency-matched, so + :func:`build_vacancy_map` requires this to be passed explicitly and raises without it + rather than inventing a fallback. + """ + _reject_bare_str(tokens, "type_counts", "tokens") + counts: dict[str, int] = {} + for t in tokens: + key = t.lower() + counts[key] = counts.get(key, 0) + 1 + return counts + + +def swap_pool(domain: Iterable[str], counts: Mapping[str, int], keep: frozenset[str]) -> list[str]: + """The replacement pool of contract §8.3: the domain's open-class TYPES by frequency rank. + + Ordered by ``(count descending, type ascending)`` — the tie rule + :func:`~llm_geometry.lex.vocab.frequency_budget` already uses, so "frequency rank" means + one thing in this codebase. A type absent from the corpus (the 22 Dolch-only words) has + count 0 and ranks last, alphabetically among its equals. + + **Types, not stems.** The stem set is exactly the set of keys the map assigns, so drawing + from it would consume the pool exactly and leave an A-collision with nowhere to move. On + the shipped corpus the pool is 1944 types against 1680 stems, which is the slack the + re-draw rounds spend. + """ + return sorted( + {t.lower() for t in domain if is_eligible(stem_and_suffix(t)[0], keep)}, + key=lambda t: (-counts.get(t, 0), t), + ) + + +def swap_rank( + stem: str, family: Iterable[str], pool: Sequence[str], counts: Mapping[str, int] +) -> int: + """Where `stem` sits in the frequency-ranked pool (contract §8.3). + + Not ``pool.index(stem)``: 375 of the shipped corpus's 1680 eligible stems are not domain + types at all — `hang` and `gum` reach the map only as the stems of `hanged` and `gums` — + so a lookup would raise on a fifth of them. The rank is instead the position the stem's + own key would take in the pool's order, with the stem's frequency taken over its whole + INFLECTIONAL FAMILY: `hang` is as frequent as `hanged` + `hanging` make it, which is the + frequency a reader of the corpus actually meets. + + Defined as the number of pool entries whose key sorts strictly before the stem's, so it + is a plain count and cannot be read two ways; the binary search is only how it is + computed. Ties fall to the stem's own alphabetical position, exactly as the pool order + does. + """ + freq = sum(counts.get(t, 0) for t in family) + key = (-freq, stem) + lo, hi = 0, len(pool) + while lo < hi: + mid = (lo + hi) // 2 + other = pool[mid] + if (-counts.get(other, 0), other) < key: + lo = mid + 1 + else: + hi = mid + return lo + + +def _draw_swap( + stem: str, + seed: int, + match_prosody: bool, + pool: Sequence[str], + rank: Mapping[str, int], + used: frozenset[str] | set[str], + suffixes: Sequence[str], + claimed: frozenset[str] | set[str], + barred: frozenset[str] | set[str], + start_salt: int = 0, +) -> tuple[str, int, list[str]]: + """Draw one real-word replacement for `stem` (contract §8.3). + + Returns ``(word, salt, surface forms)`` — the forms the stem now owns, one per suffix it + occurs with, so the caller can claim them. + + Deterministic in ``(seed, stem, pool, used, claimed, start_salt)`` and independent of `p`, + exactly as :func:`_mint` is, so §5.6's stability property survives the swap control. + + Attempt `a` widens the window every :data:`SWAP_WIDEN_EVERY` attempts and drops the + prosody filter at :data:`SWAP_RELAX_PROSODY`; both relaxations are functions of `a` alone, + never of how many stems happen to have been assigned first. The byte stream carries the + ``swap`` tag, so it can never alias the ``mint`` stream at the same salt. + + **Conditions A and B₁ are enforced here, at draw time, not only checked afterwards.** A + candidate is rejected if any of the surfaces it would produce is already claimed by an + earlier stem, is an ineligible domain type, or equals the very type it replaces. Checking + only afterwards costs 29 collision rounds on the shipped corpus at seed 0 and does not + converge inside the 8 §5.2 allows: the pool holds inflected types, so a bare stem drawing + `years` and a suffixed one drawing `year` land on the same surface, and re-drawing one of + them at random walks into the next such pair. Enforcing at draw time makes the map + correct by construction and the verification loop below a check rather than a search. + """ + n = len(pool) + if n == 0: + raise ComputeError( + "the swap pool is empty — no domain type has an eligible stem, so there is no " + "real word to draw (contract §8.3)", + {"stem": stem, "seed": seed}, + ) + r = rank[stem] + pattern = stress(stem) if match_prosody else None + family = {stem + suffix for suffix in suffixes} + for attempt in range(SWAP_MAX_ATTEMPTS): + salt = start_salt + attempt + # The doubling is capped at 20 before the min, not because 20 is meaningful but + # because JavaScript's `<<` takes its shift count modulo 32: an uncapped + # `attempt // 64` reaches 63 at the give-up bound and the two stacks would compute + # different widths from the same attempt. 32 << 20 already exceeds any pool. + width = min(SWAP_WINDOW << min(attempt // SWAP_WIDEN_EVERY, 20), n) + offset = _ByteStream(seed, stem, salt, tag="swap").u32() % (2 * width) + delta = offset - width if offset < width else offset - width + 1 + candidate = pool[(r + delta) % n] + if candidate == stem or candidate in used or candidate in family: + continue + if pattern is not None and attempt < SWAP_RELAX_PROSODY and stress(candidate) != pattern: + continue + forms = [surface_form(candidate, stem, suffix, seed) for suffix in suffixes] + if any(f in claimed or f in barred or f in family for f in forms): + continue + if len(set(forms)) != len(forms): + continue + return candidate, salt, forms + raise ComputeError( + f"could not draw a swap replacement for {stem!r} in {SWAP_MAX_ATTEMPTS} attempts — " + "the pool is finite, so report this rather than raising the bound", + {"stem": stem, "seed": seed, "pool": n, "used": len(used), "start_salt": start_salt}, + ) + + def _seam_fix(nonce: str, suffix: str, stem: str, seed: int) -> str: """Repair a seam like ``wee`` + ``er`` -> ``weeer`` (contract §5.7). @@ -560,6 +731,13 @@ class VacancyParams: #: Extra words added to the closed class. The effective set is #: ``FUNCTION_WORDS | lower(keep)`` — see :attr:`keep_set`. keep: frozenset[str] = frozenset() + #: How a replacement is produced (contract §8.3). ``"nonce"`` invents a phonotactically + #: legal form; ``"swap"`` draws a REAL English word from the domain's own open-class types + #: by frequency rank, so the passage stays equally nonsensical while every form remains a + #: known word with ordinary tokenization. That is the control that separates "wrong + #: content" from "unknown form" in the pretrained arm — and §5.2a proves it can only be + #: injective at full vacancy, which is where the pretrained arm measures. + mint: str = "nonce" _keep_set: frozenset[str] = field(default=frozenset(), repr=False, compare=False) @@ -580,6 +758,18 @@ def __post_init__(self) -> None: f"reveal_after must be >= 0, got {self.reveal_after}", {"reveal_after": self.reveal_after}, ) + if self.mint not in MINT_STRATEGIES: + raise InvalidParamError( + f"mint must be one of {list(MINT_STRATEGIES)}, got {self.mint!r}", + {"mint": self.mint}, + ) + if self.mint == "swap" and not self.consistent: + raise InvalidParamError( + "mint='swap' requires consistent=True: the inconsistent control needs a fresh " + "type per occurrence and the corpus has 1680 open-class stems against 8202 " + "vacated tokens, so there is no supply of real words to draw (contract §8.3)", + {"mint": self.mint, "consistent": self.consistent}, + ) # Same trap as `vacancy_domain`: `keep="little"` would quietly protect six letters. _reject_bare_str(self.keep, "VacancyParams", "keep") for w in self.keep: @@ -604,6 +794,11 @@ class _RewriteState: ``consistent=True, reveal_after=0`` — the condition the invariance theorem is stated for — touches nothing here except the counter, and the counter never changes an output. + + `used` is seeded from the map's STORED :attr:`VacancyMap.forbidden` (§5.8) — the domain + plus every nonce ever handed out, superseded ones included — not from + ``mapping.values()``, which drops the superseded ones and is the reconstruction the two + stacks disagreed on. """ __slots__ = ("counts", "used") @@ -644,6 +839,18 @@ class VacancyMap: bijective: bool #: How many collision-driven re-mint rounds were needed. Expected to be 0. remint_rounds: int + #: Every replacement ever handed out, PLUS the whole domain — including nonces a re-mint + #: round superseded (contract §5.8). STORED, never reconstructed as + #: ``domain | mapping.values()``: that reconstruction silently drops the superseded ones + #: (`wak` at seed 7), and the per-occurrence path of the ``consistent=False`` control + #: draws against this set, so reusing a form that was rejected for cause can recreate the + #: very collision the re-mint resolved. + forbidden: frozenset[str] + #: Is the map injective at EVERY `p`, or only at full vacancy? ``True`` for + #: ``mint="nonce"``, where condition B keeps every image out of the domain; ``False`` for + #: ``mint="swap"``, whose images ARE domain types — §5.2a proves no `p`-stable swap can do + #: better, and :func:`map_vocab_words` refuses the cases where it matters. + injective_at_every_p: bool @property def type_count(self) -> int: @@ -661,7 +868,7 @@ def apply_word(self, word: str, params: VacancyParams) -> str: text goes through :func:`vacate_text`, which threads the occurrence counters that ``reveal_after`` and ``consistent=False`` need. """ - return self._transform(word, params, _RewriteState(set(self.mapping.values()))) + return self._transform(word, params, _RewriteState(set(self.forbidden))) def _transform(self, word: str, params: VacancyParams, state: _RewriteState) -> str: stem, suffix = stem_and_suffix(word) @@ -704,11 +911,15 @@ def _transform(self, word: str, params: VacancyParams, state: _RewriteState) -> # control whose vacancy rate is not the stated rate is not a control. Adding the # stem to `forbidden` puts it through §5.5's ordinary re-mint loop, so the # replacement is held to the same quality bar as any other nonce. + # `state.used` starts as the map's STORED `forbidden` (domain + every nonce ever + # handed out, superseded ones included — §5.8), so this is exactly the set the + # TypeScript control draws against. `{key}` is not redundant with it: a stem need + # not be a type. nonce, pattern, _salt = _mint( f"{key}#{seen - 1}", params.seed, params.match_prosody, - self.domain | state.used | {key}, + state.used | {key}, stem=key, ) state.used.add(nonce) @@ -758,7 +969,11 @@ def vacancy_domain(types: Iterable[str]) -> list[str]: return sorted({t.lower() for t in types} | {w.lower() for w in dolch_budget("full")}) -def build_vacancy_map(types: Iterable[str], params: VacancyParams) -> VacancyMap: +def build_vacancy_map( + types: Iterable[str], + params: VacancyParams, + counts: Mapping[str, int] | None = None, +) -> VacancyMap: """Assign every eligible stem a nonce, once, in canonical order (contract §5.2). `types` is the domain — pass :func:`vacancy_domain(corpus_types)`, which pins it to the @@ -794,31 +1009,90 @@ def build_vacancy_map(types: Iterable[str], params: VacancyParams) -> VacancyMap On violation only the LOSING stem is re-minted — the one later in ASCII-ascending order among those involved — at salt ``1000 * round + previousSalt + 1``, so a re-mint never cascades (§5.8). + + **Under ``mint="swap"`` the replacement is a real English word and B cannot apply**, since + the replacement is a domain type by construction. §5.2a works out what B was standing in + for and what swap can therefore satisfy: A unchanged, and **B₁** — no surface form equals + an INELIGIBLE domain type, and none equals its own source type. That makes the map a + bijection of the domain at full vacancy, which is where the pretrained arm measures, and + §5.2a proves no `p`-stable swap can do better. :attr:`VacancyMap.injective_at_every_p` + records which regime the map is in and :func:`map_vocab_words` refuses the rest. + + `counts` is the corpus's per-type occurrence count (:func:`type_counts`), REQUIRED by + ``mint="swap"`` and unused by ``mint="nonce"`` — the nonce map stays a pure function of + ``(domain, seed, match_prosody)``, asserted in the tests. Swap raises without it rather + than falling back to an alphabetical rank, which would be a frequency match in name only. """ _reject_bare_str(types, "build_vacancy_map", "types") keep = params.keep_set type_set = {t.lower() for t in types} + swapping = params.mint == "swap" + if swapping and counts is None: + raise InvalidParamError( + "mint='swap' needs the corpus's type counts to rank the replacement pool by " + "frequency (contract §8.3); pass counts=type_counts(tokenize(text))", + {"mint": params.mint}, + ) pairs: list[tuple[str, str]] = [] stem_set: set[str] = set() - for t in sorted(type_set): + families: dict[str, set[str]] = {} + suffixes: dict[str, list[str]] = {} + eligible_types: set[str] = set() + for t in sorted(type_set): # ASCII order, so `suffixes[stem]` is canonical stem, suffix = stem_and_suffix(t) if not is_eligible(stem, keep): continue pairs.append((stem.lower(), suffix.lower())) stem_set.add(stem.lower()) + families.setdefault(stem.lower(), set()).add(t) + suffixes.setdefault(stem.lower(), []).append(suffix.lower()) + eligible_types.add(t) + + # Condition B's scope: EVERY domain type under `nonce`, and only the types that can never + # be vacated under `swap` — §5.2a's B₁, which is what full-vacancy injectivity needs and + # all a map drawing from the domain can possibly satisfy. + barred = type_set - eligible_types if swapping else type_set mapping: dict[str, str] = {} minted_stress: dict[str, str] = {} salts: dict[str, int] = {} - # `forbidden = used ∪ domain` — the domain, always, with nothing left to the caller. + # `forbidden = used ∪ domain` — the domain, always, with nothing left to the caller. It + # accumulates and is never pruned, so a superseded nonce stays out of circulation (§5.8), + # and it is STORED on the map rather than reconstructed from `mapping.values()`. forbidden: set[str] = set(type_set) - for stem in sorted(stem_set): - nonce, pattern, salt = _mint(stem, params.seed, params.match_prosody, forbidden) - forbidden.add(nonce) - mapping[stem] = nonce - minted_stress[nonce] = pattern - salts[stem] = salt + pool: list[str] = [] + rank: dict[str, int] = {} + if swapping: + assert counts is not None # narrowed by the guard above + pool = swap_pool(type_set, counts, keep) + rank = {s: swap_rank(s, families[s], pool, counts) for s in sorted(stem_set)} + used: set[str] = set() + claimed_forms: set[str] = set() + for stem in sorted(stem_set): + word, salt, forms = _draw_swap( + stem, + params.seed, + params.match_prosody, + pool, + rank, + used, + suffixes[stem], + claimed_forms, + barred, + ) + used.add(word) + claimed_forms.update(forms) + forbidden.add(word) + mapping[stem] = word + salts[stem] = salt + else: + for stem in sorted(stem_set): + nonce, pattern, salt = _mint(stem, params.seed, params.match_prosody, forbidden) + forbidden.add(nonce) + mapping[stem] = nonce + minted_stress[nonce] = pattern + salts[stem] = salt rounds = 0 while True: @@ -826,7 +1100,7 @@ def build_vacancy_map(types: Iterable[str], params: VacancyParams) -> VacancyMap losers: set[str] = set() for stem, suffix in pairs: form = surface_form(mapping[stem], stem, suffix, params.seed) - if form in type_set: # condition B + if form in barred or form == stem + suffix: # condition B (B₁ under swap) losers.add(stem) if form in claimed: # condition A losers.add(max(stem, claimed[form])) @@ -837,19 +1111,49 @@ def build_vacancy_map(types: Iterable[str], params: VacancyParams) -> VacancyMap if rounds >= MAX_REMINT_ROUNDS: raise ComputeError( f"vacancy map still collides after {MAX_REMINT_ROUNDS} re-mint rounds", - {"stems": sorted(losers)[:20], "rounds": rounds}, + {"stems": sorted(losers)[:20], "rounds": rounds, "mint": params.mint}, ) rounds += 1 for stem in sorted(losers): others = {n for s, n in mapping.items() if s != stem} + start_salt = REMINT_SALT_STRIDE * rounds + salts[stem] + 1 + if swapping: + # A superseded REPLACEMENT returns to the pool — unlike a superseded nonce, + # which stays forbidden forever. The pool is finite (1944 real words against + # 1680 stems on the shipped corpus), so retiring words permanently would + # starve later rounds; and a real word cannot "recreate the collision it was + # rejected for" the way a nonce can, because the collision was with a + # different stem's surface, which has itself moved. + elsewhere = { + surface_form(mapping[s], s, suffix, params.seed) + for s, suffix in pairs + if s != stem + } + word, salt, _forms = _draw_swap( + stem, + params.seed, + params.match_prosody, + pool, + rank, + others, + suffixes[stem], + elsewhere, + barred, + start_salt=start_salt, + ) + forbidden.add(word) + mapping[stem] = word + salts[stem] = salt + continue nonce, pattern, salt = _mint( stem, params.seed, params.match_prosody, - type_set | others, - start_salt=REMINT_SALT_STRIDE * rounds + salts[stem] + 1, + forbidden, + start_salt=start_salt, ) minted_stress.pop(mapping[stem], None) + forbidden.add(nonce) mapping[stem] = nonce minted_stress[nonce] = pattern salts[stem] = salt @@ -864,6 +1168,8 @@ def build_vacancy_map(types: Iterable[str], params: VacancyParams) -> VacancyMap image_size=len(seen), bijective=len(seen) == len(type_set), remint_rounds=rounds, + forbidden=frozenset(forbidden), + injective_at_every_p=not swapping, ) @@ -880,7 +1186,7 @@ def vacate_text(text: str, vmap: VacancyMap, params: VacancyParams) -> str: because line breaks are untouched the ````-per-line rule produces the same number of ```` in the same places. """ - state = _RewriteState(set(vmap.mapping.values())) + state = _RewriteState(set(vmap.forbidden)) return WORD_RE.sub(lambda m: vmap._transform(m.group(0), params, state), text) @@ -903,7 +1209,19 @@ def map_vocab_words(words: Sequence[str], vmap: VacancyMap, params: VacancyParam "every other condition rebuilds the budget from the vacated corpus", {"consistent": params.consistent, "reveal_after": params.reveal_after}, ) - state = _RewriteState(set(vmap.mapping.values())) + if not vmap.injective_at_every_p and 0.0 < params.p < 1.0: + # §5.2a: swap's images ARE domain types, so at intermediate `p` a vacated type can + # land on an un-vacated one and two budget words would share a row. That is not a + # defect to be re-drawn away — the theorem there shows no `p`-stable swap avoids it — + # so the mapped vocabulary is refused, exactly as it is for the two controls above. + raise InvalidParamError( + f"mint='swap' has no mapped vocabulary at p={params.p}: its replacements are " + "domain types, so a vacated type can collide with an un-vacated one and the map " + "is injective only at full vacancy (contract §5.2a). Use p=0 or p=1, or rebuild " + "the budget from the vacated corpus", + {"mint": params.mint, "p": params.p}, + ) + state = _RewriteState(set(vmap.forbidden)) return [vmap._transform(w, params, state) for w in words] diff --git a/code/backend/tests/unit/test_lex_vacancy.py b/code/backend/tests/unit/test_lex_vacancy.py index da709b4..910c490 100644 --- a/code/backend/tests/unit/test_lex_vacancy.py +++ b/code/backend/tests/unit/test_lex_vacancy.py @@ -44,12 +44,13 @@ stress, stress_source, syllables, + type_counts, vacancy_domain, vacancy_stats, vacancy_u, vacate_text, ) -from llm_geometry.lex.vocab import WORD_RE, LexVocab, tokenize +from llm_geometry.lex.vocab import WORD_RE, LexVocab, frequency_budget, tokenize P_GRID = (0.0, 0.25, 0.5, 0.75, 1.0) SEEDS = (0, 7) @@ -987,3 +988,273 @@ def test_a_stem_outside_the_maps_domain_is_a_compute_error(maps): """The map's domain must include the budget's words as well as the corpus's types.""" with pytest.raises(ComputeError): maps[0].apply_word("zzzqqqx", VacancyParams(p=1.0, seed=0)) + + +# --- `forbidden`, contract §5.8 --------------------------------------------------------- + + +def test_forbidden_is_stored_and_keeps_superseded_remint_nonces(maps, domain): + """§5.8: `forbidden` is STORED, not rebuilt as `domain | mapping.values()`. + + THE CASE THAT DISTINGUISHES THEM, and the only one the shipped corpus produces: at + seed 7 the stem `hang` first minted `wak`, whose surface `wak` + `ed` is the real English + word `waked`; condition B rejected it and the re-mint returned `smeeg`. `wak` is now no + stem's nonce, so a reconstruction from `mapping.values()` drops it — but it must stay + forbidden, because it was rejected for cause and the `consistent=False` control draws + against this very set. + """ + seed7 = maps[7] + assert seed7.mapping["hang"] == "smeeg" + assert seed7.remint_rounds == 1 + assert "wak" in seed7.forbidden + assert "wak" not in set(seed7.mapping.values()) # exactly what a rebuild would lose + assert "waked" in seed7.domain # ... and why it was superseded + + # The rest of the field, so "stored" cannot decay into "stored but wrong". + for seed, vmap in maps.items(): + assert vmap.domain <= vmap.forbidden, seed + assert set(vmap.mapping.values()) <= vmap.forbidden, seed + assert maps[0].forbidden == maps[0].domain | set(maps[0].mapping.values()) # 0 re-mints + assert maps[7].forbidden == maps[7].domain | set(maps[7].mapping.values()) | {"wak"} + + +def test_the_inconsistent_control_draws_against_the_stored_forbidden_set(corpus, maps): + """The per-occurrence path must never hand out a superseded nonce (§5.8).""" + params = VacancyParams(p=1.0, seed=7, consistent=False) + text = vacate_text(corpus, maps[7], params) + assert "wak" not in {w.lower() for w in WORD_RE.findall(text)} + + +# --- the swap control, contract §8.3 / §5.2a -------------------------------------------- + + +@pytest.fixture(scope="module") +def counts(corpus: str) -> dict[str, int]: + """The corpus's per-type occurrence counts — the frequency source swap ranks by.""" + return type_counts(tokenize(corpus)) + + +@pytest.fixture(scope="module") +def swap_maps(domain: list[str], counts: dict[str, int]) -> dict[int, VacancyMap]: + return { + seed: build_vacancy_map(domain, VacancyParams(seed=seed, mint="swap"), counts) + for seed in SEEDS + } + + +def test_swap_replaces_stems_with_real_corpus_words(swap_maps, corpus_types, budget): + """The whole point of the control: every replacement is a word English already had.""" + real = {t.lower() for t in corpus_types} | {w.lower() for w in budget} + for seed, vmap in swap_maps.items(): + assert vmap.mapping, seed + assert set(vmap.mapping.values()) <= real, seed + # ... and no stem keeps its own form, which would be a word that failed to vacate. + assert all(stem != word for stem, word in vmap.mapping.items()), seed + + +def test_swap_needs_the_frequency_counts_and_says_so(domain): + """No silent fallback to an alphabetical rank, which would be frequency in name only.""" + with pytest.raises(InvalidParamError): + build_vacancy_map(domain, VacancyParams(mint="swap")) + + +def test_swap_refuses_the_inconsistent_control(domain): + """1680 open-class stems against 8202 vacated tokens — there is no supply (§8.3).""" + with pytest.raises(InvalidParamError): + VacancyParams(mint="swap", consistent=False) + + +def test_an_unknown_mint_strategy_is_rejected(): + with pytest.raises(InvalidParamError): + VacancyParams(mint="real-words") + + +def test_counts_do_not_reach_the_nonce_map(domain, counts, maps): + """The nonce map stays a pure function of `(domain, seed, match_prosody)` (§5.2).""" + for seed in SEEDS: + with_counts = build_vacancy_map(domain, VacancyParams(seed=seed), counts) + assert with_counts.mapping == maps[seed].mapping + assert with_counts.remint_rounds == maps[seed].remint_rounds + + +def test_swap_is_stable_in_seed_and_stem(domain, counts, swap_maps, corpus): + """SC-702 for swap: the map is built once, independently of `p` (§5.6).""" + for seed in SEEDS: + again = build_vacancy_map(domain, VacancyParams(p=1.0, seed=seed, mint="swap"), counts) + assert again.mapping == swap_maps[seed].mapping + # ... and a stem's surface is byte-identical at every `p` at which it is vacated. + forms: dict[str, set[str]] = {} + for p in P_GRID: + params = VacancyParams(p=p, seed=0, mint="swap") + for stem in ("little", "moon", "crown"): + if vacancy_u(stem, 0) < p: + forms.setdefault(stem, set()).add(swap_maps[0].apply_word(stem, params)) + assert forms and all(len(v) == 1 for v in forms.values()) + + +def test_swap_is_nested_in_p(corpus, swap_maps): + """SC-701 for swap: `u(stem) < p` is untouched, so the vacated sets are still nested.""" + previous: set[str] = set() + for p in P_GRID: + text = vacate_text(corpus, swap_maps[0], VacancyParams(p=p, seed=0, mint="swap")) + changed = _changed_types(corpus, text) + assert previous <= changed, p + previous = changed + + +def test_swap_is_a_bijection_of_the_domain_at_full_vacancy(swap_maps): + """A + B₁ of §5.2a, which is what the invariance theorem needs at `p = 1`.""" + for seed, vmap in swap_maps.items(): + assert vmap.bijective, seed + assert vmap.image_size == vmap.type_count, seed + assert vmap.remint_rounds == 0, seed + assert vmap.injective_at_every_p is False, seed + + +def test_swap_satisfies_the_invariance_theorem_where_it_is_defined(corpus, budget, swap_maps): + """SC-703 for swap, at the `p` where §5.2a proves a swap map CAN be injective. + + At `p in {0, 1}` the id stream is element-for-element identical to the untransformed + stream, exactly as it is for `mint="nonce"` — the tiny model is exactly as blind to a + real-word swap as to an invented form, which is the check that the control is right. + """ + base = LexVocab(tuple(budget), source="dolch", budget_name="full") + reference = base.encode(tokenize(corpus)) + for seed in SEEDS: + for p in (0.0, 1.0): + params = VacancyParams(p=p, seed=seed, mint="swap") + text = vacate_text(corpus, swap_maps[seed], params) + words = map_vocab_words(budget, swap_maps[seed], params) + assert len(set(words)) == len(words) + mapped = LexVocab(tuple(words), source="dolch", budget_name="full") + assert mapped.rows == base.rows + assert mapped.encode(tokenize(text)) == reference + + +def test_swap_refuses_the_mapped_vocabulary_at_intermediate_p(budget, swap_maps): + """§5.2a: no `p`-stable swap into the domain is injective at `0 < p < 1`, so the mapped + vocabulary does not exist there and is refused rather than silently duplicated.""" + for p in (0.25, 0.5, 0.75): + with pytest.raises(InvalidParamError): + map_vocab_words(budget, swap_maps[0], VacancyParams(p=p, seed=0, mint="swap")) + + +def test_why_swap_cannot_be_injective_at_intermediate_p(corpus, swap_maps): + """The theorem of §5.2a, measured rather than merely proved. + + A vacated type lands on a real English word; at intermediate `p` that word's own + occurrences may not have moved, so two source types share one surface. This pins the + collision count so the refusal above can never be mistaken for over-caution — if a future + change makes swap injective at `p = 0.5`, this test fails and the contract is wrong. + """ + params = VacancyParams(p=0.5, seed=0, mint="swap") + vmap = swap_maps[0] + images: dict[str, str] = {} + collisions = 0 + for t in sorted(vmap.domain): + image = vmap.apply_word(t, params).lower() + if image in images: + collisions += 1 + images[image] = t + assert collisions > 0 + # ... whereas at full vacancy there are none, which is what B₁ buys. + full = VacancyParams(p=1.0, seed=0, mint="swap") + assert len({vmap.apply_word(t, full).lower() for t in vmap.domain}) == len(vmap.domain) + + +def test_swap_honours_match_prosody(domain, counts, swap_maps): + """`matchProsody` is a real filter under swap, and — unlike minting — it is a filter over + a FINITE pool, so it cannot always be honoured. + + Measured at seed 0: 1586 of 1680 stems get a stress-matched real word, i.e. 94.4 %. The + other 94 exhaust the 1024 attempts of :data:`SWAP_RELAX_PROSODY` because their pattern is + rare in the corpus and the few words carrying it are already used — the relaxation of + §5.5, applied to a pool that can genuinely run out. Minting has no such limit, which is + exactly the difference between inventing a form and borrowing one, so the bound here is + the measurement rather than a claim of exactness. + """ + matched = swap_maps[0].mapping + hits = sum(1 for stem, word in matched.items() if stress(word) == stress(stem)) + assert hits / len(matched) > 0.9 + flat = build_vacancy_map( + domain, VacancyParams(seed=0, mint="swap", match_prosody=False), counts + ) + assert flat.mapping != matched + flat_hits = sum(1 for stem, word in flat.mapping.items() if stress(word) == stress(stem)) + assert flat_hits < hits + + +def test_swap_replacements_are_not_registered_as_minted_stress(swap_maps): + """They are real English words: their stress comes from the table or the rule, so + `stressFromMinted` must stay 0 on both sides of a swap (§8.3).""" + for seed, vmap in swap_maps.items(): + assert vmap.minted_stress == {}, seed + + +def test_swap_statistics_report_the_same_vacancy_rate_as_nonce(corpus, maps, swap_maps): + """The control holds the vacancy rate fixed and changes only what replaces the word.""" + for seed in SEEDS: + nonce = vacancy_stats( + corpus, + vacate_text(corpus, maps[seed], VacancyParams(p=1.0, seed=seed)), + maps[seed], + VacancyParams(p=1.0, seed=seed), + ) + params = VacancyParams(p=1.0, seed=seed, mint="swap") + swap = vacancy_stats( + corpus, vacate_text(corpus, swap_maps[seed], params), swap_maps[seed], params + ) + for field in ("corpusTypesVacated", "tokensVacated", "stemsVacated", "stemsTotal"): + assert swap[field] == nonce[field], (seed, field) + + +def test_sc703_over_the_full_grid_for_both_mint_strategies(corpus, domain, counts): + """SC-703 as the spec states it, for BOTH minting strategies. + + The grid the spec names: all five Dolch budgets plus a frequency budget, + ``p in {0, 0.25, 0.5, 0.75, 1}``, ``seed in {0, 7}``, both ``match_prosody`` settings — + 120 cases. + + ``mint="nonce"`` passes all 120: condition B keeps every image out of the domain, so the + map is injective at every `p` and the id stream is element-for-element unchanged. + + ``mint="swap"`` passes 48 — every case at `p in {0, 1}` — and REFUSES the other 72. That + is not a weaker test of the same claim; it is the claim §5.2a proves. A swap map's images + are domain types, so at intermediate `p` a vacated type can land on one that has not + moved, and no `p`-stable map avoids it short of the identity. Where a swap map can be + injective at all it is exactly as invisible to the model as an invented form, which is + what makes the control trustworthy. The counts are asserted, so neither number can drift + without this failing. + """ + budgets = {name: list(dolch_budget(name)) for name in DOLCH_ORDER} + budgets["frequency-top300"] = frequency_budget(corpus, 300) + assert len(budgets) == 6 + + passed = {"nonce": 0, "swap": 0} + refused = {"nonce": 0, "swap": 0} + for mint in ("nonce", "swap"): + for seed in SEEDS: + for match_prosody in (True, False): + vmap = build_vacancy_map( + domain, + VacancyParams(seed=seed, mint=mint, match_prosody=match_prosody), + counts, + ) + for p in P_GRID: + params = VacancyParams(p=p, seed=seed, mint=mint, match_prosody=match_prosody) + text = vacate_text(corpus, vmap, params) + for words in budgets.values(): + base = LexVocab(tuple(words), source="dolch", budget_name="full") + try: + mapped_words = map_vocab_words(words, vmap, params) + except InvalidParamError: + refused[mint] += 1 + continue + assert len(set(mapped_words)) == len(mapped_words), (mint, seed, p) + mapped = LexVocab(tuple(mapped_words), source="dolch", budget_name="full") + assert mapped.rows == base.rows + assert mapped.encode(tokenize(text)) == base.encode(tokenize(corpus)) + passed[mint] += 1 + + assert (passed["nonce"], refused["nonce"]) == (120, 0) + assert (passed["swap"], refused["swap"]) == (48, 72) diff --git a/code/frontend/src/lib/lexEngine/vacancy.ts b/code/frontend/src/lib/lexEngine/vacancy.ts index d218d30..b3ffdee 100644 --- a/code/frontend/src/lib/lexEngine/vacancy.ts +++ b/code/frontend/src/lib/lexEngine/vacancy.ts @@ -427,8 +427,10 @@ class MintStream { private pos = 0; private counter = 0; - constructor(seed: number, stem: string, salt: number) { - this.prefix = `${seed}:mint:${stem}:${salt}`; + /** `tag` separates the minting stream from the swap-draw stream of §8.3. It is part of + * the hashed prefix, so the two can never alias however the salts line up. */ + constructor(seed: number, stem: string, salt: number, tag: string = "mint") { + this.prefix = `${seed}:${tag}:${stem}:${salt}`; this.buf = digestBytes(`${this.prefix}:0`); } @@ -514,6 +516,169 @@ function mintNonce( ); } +// --- §8.3 the swap control ----------------------------------------------------------- + +/** Half-width of the frequency-rank window a swap replacement is drawn from. */ +export const SWAP_WINDOW = 32; +/** The window doubles every this many attempts, up to the whole pool — §5.5's relaxation + * applied to a draw, and necessary because "anything already used" depletes a window. */ +export const SWAP_WIDEN_EVERY = 64; +/** Attempt at which the prosody filter is dropped. */ +export const SWAP_RELAX_PROSODY = 1024; +/** Reaching this many attempts throws. Unlike minting, the pool is finite, so this bound is + * reachable in principle and we want to know if it ever is. */ +export const SWAP_MAX_ATTEMPTS = 4096; + +/** The two minting strategies of §7.1 / §8.3. */ +export type MintStrategy = "nonce" | "swap"; + +/** + * Occurrences per lowercased type — the frequency source the swap control ranks by. + * + * Takes the TOKEN STREAM (`tokenize(text)`), not the type set: a set has no frequencies, and + * `mint = "swap"` needs them. `buildVacancyMap` requires this explicitly and throws without + * it rather than falling back to an alphabetical rank, which would be a frequency match in + * name only — the `avoid`-parameter mistake of §5.2, one level up. + */ +export function typeCounts(tokens: Iterable): Map { + if (typeof tokens === "string") { + throw new Error("typeCounts: expected an iterable of TOKENS, got a string; pass tokenize(text)"); + } + const counts = new Map(); + for (const t of tokens) { + const key = t.toLowerCase(); + counts.set(key, (counts.get(key) ?? 0) + 1); + } + return counts; +} + +/** `(-count, type)` ascending — the tie rule `frequencyBudget` already uses, so "frequency + * rank" means one thing in this codebase. */ +function swapKeyBefore( + aCount: number, + aType: string, + bCount: number, + bType: string, +): boolean { + if (aCount !== bCount) return aCount > bCount; // higher count sorts first + return aType < bType; +} + +/** + * The replacement pool of §8.3: the domain's open-class TYPES, by frequency rank. + * + * TYPES, NOT STEMS. The stem set is exactly the set of keys the map assigns, so drawing from + * it would consume the pool exactly and leave an A-collision with nowhere to move. On the + * shipped corpus the pool is 1944 types against 1680 stems, and that slack is what the + * re-draw rounds spend. + */ +export function swapPool( + domain: Iterable, + counts: ReadonlyMap, + keep: ReadonlySet, +): string[] { + const pool = new Set(); + for (const t of domain) { + const lower = t.toLowerCase(); + if (isEligible(stemAndSuffix(lower)[0], keep)) pool.add(lower); + } + return [...pool].sort((a, b) => + swapKeyBefore(counts.get(a) ?? 0, a, counts.get(b) ?? 0, b) ? -1 : 1, + ); +} + +/** + * Where a stem sits in the frequency-ranked pool (§8.3). + * + * NOT `pool.indexOf(stem)`: 375 of the shipped corpus's 1680 eligible stems are not domain + * types at all — `hang` and `gum` reach the map only as the stems of `hanged` and `gums` — so + * a lookup would fail on a fifth of them. The rank is the position the stem's own key would + * take, with its frequency summed over its whole INFLECTIONAL FAMILY: `hang` is as frequent + * as `hanged` and `hanging` make it, which is the frequency a reader of the corpus meets. + * + * Defined as the number of pool entries sorting strictly before the stem's key, so it is a + * plain count and cannot be read two ways; the binary search is only how it is computed. + */ +export function swapRank( + stem: string, + family: Iterable, + pool: readonly string[], + counts: ReadonlyMap, +): number { + let freq = 0; + for (const t of family) freq += counts.get(t) ?? 0; + let lo = 0; + let hi = pool.length; + while (lo < hi) { + const mid = (lo + hi) >> 1; + const other = pool[mid]; + if (swapKeyBefore(counts.get(other) ?? 0, other, freq, stem)) lo = mid + 1; + else hi = mid; + } + return lo; +} + +/** + * Draw one real-word replacement for `stem` (§8.3), as `{ word, salt, forms }` — `forms` + * being the surfaces the stem now owns, one per suffix it occurs with. + * + * Deterministic in `(seed, stem, pool, used, claimed, baseSalt)` and independent of `p`, + * exactly as `mintNonce` is, so §5.6's stability property survives the swap control. + * + * CONDITIONS A AND B₁ ARE ENFORCED HERE, AT DRAW TIME, not only checked afterwards. A + * candidate is rejected when any surface it would produce is already claimed by an earlier + * stem, is an ineligible domain type, or equals the very type it replaces. Checking only + * afterwards costs 29 collision rounds at seed 0 and does not converge inside the 8 §5.2 + * allows: the pool holds inflected types, so a bare stem drawing `years` and a suffixed one + * drawing `year` land on the same surface, and re-drawing one of them walks into the next + * such pair. Enforcing at draw time makes the map correct by construction. + */ +function drawSwap( + stem: string, + seed: number, + matchProsody: boolean, + pool: readonly string[], + rank: ReadonlyMap, + used: ReadonlySet, + suffixes: readonly string[], + claimed: ReadonlySet, + barred: ReadonlySet, + baseSalt: number, +): { word: string; salt: number; forms: string[] } { + const n = pool.length; + if (n === 0) { + throw new Error( + "vacancy: the swap pool is empty — no domain type has an eligible stem, so there is " + + "no real word to draw (architecture.md §8.3)", + ); + } + const r = rank.get(stem); + if (r === undefined) throw new Error(`vacancy: no swap rank for stem ${JSON.stringify(stem)}`); + const pattern = matchProsody ? stress(stem) : null; + const family = new Set(suffixes.map((s) => stem + s)); + for (let a = 0; a < SWAP_MAX_ATTEMPTS; a++) { + const salt = baseSalt + a; + // The doubling is capped at 20 before the min because JavaScript's `<<` takes its shift + // count modulo 32; an uncapped `a / 64` reaches 63 at the give-up bound and Python would + // compute a different width from the same attempt. 32 << 20 already exceeds any pool. + const width = Math.min(SWAP_WINDOW << Math.min(Math.floor(a / SWAP_WIDEN_EVERY), 20), n); + const offset = new MintStream(seed, stem, salt, "swap").nextU32() % (2 * width); + const delta = offset < width ? offset - width : offset - width + 1; + const candidate = pool[(((r + delta) % n) + n) % n]; + if (candidate === stem || used.has(candidate) || family.has(candidate)) continue; + if (pattern !== null && a < SWAP_RELAX_PROSODY && stress(candidate) !== pattern) continue; + const forms = suffixes.map((suffix) => surfaceForm(stem, suffix, candidate, seed)); + if (forms.some((f) => claimed.has(f) || barred.has(f) || family.has(f))) continue; + if (new Set(forms).size !== forms.length) continue; + return { word: candidate, salt, forms }; + } + throw new Error( + `vacancy: could not draw a swap replacement for ${JSON.stringify(stem)} in ` + + `${SWAP_MAX_ATTEMPTS} attempts — the pool is finite, so report this rather than ` + + `raising the bound`, + ); +} + /** * §5.7. Re-attaching a suffix can produce a seam (`wee` + `er` -> `weeer`). When the * nonce's last character equals the suffix's first, replace it with a character chosen by @@ -587,6 +752,13 @@ export interface VacancyParams { revealAfter: number; /** Extra words added to the closed class. */ keep: readonly string[]; + /** How a replacement is produced (§8.3). `"nonce"` invents a phonotactically legal form; + * `"swap"` draws a REAL English word from the domain's own open-class types by frequency + * rank, so the passage stays equally nonsensical while every form remains a known word + * with ordinary tokenization. That is the control separating "wrong content" from + * "unknown form" in the pretrained arm — and §5.2a proves it can only be injective at + * full vacancy, which is where the pretrained arm measures. */ + mint: MintStrategy; } export const DEFAULT_VACANCY_PARAMS: VacancyParams = { @@ -596,6 +768,7 @@ export const DEFAULT_VACANCY_PARAMS: VacancyParams = { matchProsody: true, revealAfter: 0, keep: [], + mint: "nonce", }; /** Fill in §7.1's defaults around a partial setting. */ @@ -620,12 +793,19 @@ export interface VacancyMap { bijective: boolean; /** `|image of the domain under the full map|`, reported in the statistics (§10). */ imageSize: number; - /** Every minted nonce plus the whole domain. Carried so the `consistent = false` control can - * keep minting fresh forms that collide with neither. */ + /** Every replacement ever handed out plus the whole domain — INCLUDING nonces a re-mint + * round superseded (§5.8). Stored, never reconstructed as `domain ∪ mapping.values()`, + * which drops the superseded ones (`wak` at seed 7); the `consistent = false` control + * draws against this set, and a form rejected for cause must stay out of circulation. */ forbidden: ReadonlySet; /** The lowercased domain (corpus types ∪ budget words). Condition B ranges over it and * §10's type counts are defined over it. */ domain: ReadonlySet; + /** Injective at EVERY `p`, or only at full vacancy? `true` for `mint = "nonce"`, where + * condition B keeps every image out of the domain; `false` for `mint = "swap"`, whose + * images ARE domain types — §5.2a proves no `p`-stable swap can do better, and + * `mapVocabWords` refuses the cases where it matters. */ + injectiveAtEveryP: boolean; } /** How many re-mint rounds §5.2 allows before raising. */ @@ -681,7 +861,12 @@ function imageOfType(type: string, map: ReadonlyMap, seed: numbe * stems that must be re-minted — empty when the map is injective at every `p`. * * A. the surface forms are pairwise distinct - * B. no surface form equals any lowercased domain type, eligible or not + * B. no surface form equals a type in `barred`, nor the very type it replaces + * + * `barred` is EVERY domain type under `mint = "nonce"` — condition B as §5.2 states it — and + * only the types that can never be vacated (the ineligible ones) under `mint = "swap"`, whose + * replacements are domain types by construction. §5.2a works out why those are the two + * choices and proves that swap cannot have the stronger one. * * The loser of an A-collision is the stem later in canonical (ASCII-ascending) order among * those involved; the winner keeps its nonce, so a re-mint never cascades (§5.8). A @@ -690,7 +875,7 @@ function imageOfType(type: string, map: ReadonlyMap, seed: numbe function injectivityOffenders( pairs: readonly StemSuffixPair[], map: ReadonlyMap, - domain: ReadonlySet, + barred: ReadonlySet, seed: number, ): Set { const offenders = new Set(); @@ -699,7 +884,7 @@ function injectivityOffenders( const nonce = map.get(stem); if (nonce === undefined) continue; const surface = surfaceForm(stem, suffix, nonce, seed); - if (domain.has(surface)) offenders.add(stem); // B + if (barred.has(surface) || surface === stem + suffix) offenders.add(stem); // B const bucket = bySurface.get(surface); if (bucket === undefined) bySurface.set(surface, new Set([stem])); else bucket.add(stem); @@ -761,8 +946,29 @@ function injectivityOffenders( * `1000 * round + previousSalt + 1` (round from 1, §5.8); only the loser moves, so a * re-mint never cascades. Eight rounds and then it raises. */ -export function buildVacancyMap(types: Iterable, params: VacancyParams): VacancyMap { +export function buildVacancyMap( + types: Iterable, + params: VacancyParams, + counts?: ReadonlyMap, +): VacancyMap { const keep = effectiveKeepSet(params.keep); + const swapping = params.mint === "swap"; + if (params.mint !== "nonce" && !swapping) { + throw new Error(`vacancy: unknown mint strategy ${JSON.stringify(params.mint)}`); + } + if (swapping && !params.consistent) { + throw new Error( + "vacancy: mint = 'swap' requires consistent = true — the inconsistent control needs a " + + "fresh type per occurrence and the corpus has 1680 open-class stems against 8202 " + + "vacated tokens, so there is no supply of real words (architecture.md §8.3)", + ); + } + if (swapping && counts === undefined) { + throw new Error( + "vacancy: mint = 'swap' needs the corpus's type counts to rank the replacement pool by " + + "frequency (architecture.md §8.3); pass typeCounts(tokenize(text))", + ); + } const domain = new Set(); for (const t of types) domain.add(t.toLowerCase()); @@ -770,33 +976,74 @@ export function buildVacancyMap(types: Iterable, params: VacancyParams): // conditions A and B range over. `stems` is their canonical, ASCII-ascending order. const pairs: StemSuffixPair[] = []; const stems = new Set(); - for (const t of domain) { + const families = new Map>(); + const suffixesOf = new Map(); + const eligibleTypes = new Set(); + for (const t of [...domain].sort()) { const [stem, suffix] = stemAndSuffix(t); if (!isEligible(stem, keep)) continue; pairs.push({ stem, suffix }); stems.add(stem); + (families.get(stem) ?? families.set(stem, new Set()).get(stem)!).add(t); + (suffixesOf.get(stem) ?? suffixesOf.set(stem, []).get(stem)!).push(suffix); + eligibleTypes.add(t); } const ordered = [...stems].sort(); - // The domain is forbidden from the start — implicitly, never by caller agreement. + // Condition B's scope: EVERY domain type under `nonce`, and only the types that can never + // be vacated under `swap` — §5.2a's B₁, which is what full-vacancy injectivity needs and + // all a map drawing from the domain can possibly satisfy. + const barred = new Set(); + for (const t of domain) if (!swapping || !eligibleTypes.has(t)) barred.add(t); + + // The domain is forbidden from the start — implicitly, never by caller agreement. The set + // accumulates and is never pruned, so a superseded nonce stays out of circulation (§5.8). const forbidden = new Set(domain); const map = new Map(); const mintedStress = new Map(); const patterns = new Map(); const salts = new Map(); - for (const stem of ordered) { - const pattern = params.matchProsody ? stress(stem) : "1"; - patterns.set(stem, pattern); - const { nonce, salt } = mintNonce(stem, pattern, params.seed, forbidden, 0); - forbidden.add(nonce); - map.set(stem, nonce); - mintedStress.set(nonce, pattern); - salts.set(stem, salt); + let pool: string[] = []; + const rank = new Map(); + if (swapping) { + pool = swapPool(domain, counts!, keep); + for (const stem of ordered) rank.set(stem, swapRank(stem, families.get(stem)!, pool, counts!)); + const used = new Set(); + const claimedForms = new Set(); + for (const stem of ordered) { + const { word, salt, forms } = drawSwap( + stem, + params.seed, + params.matchProsody, + pool, + rank, + used, + suffixesOf.get(stem)!, + claimedForms, + barred, + 0, + ); + used.add(word); + for (const f of forms) claimedForms.add(f); + forbidden.add(word); + map.set(stem, word); + salts.set(stem, salt); + } + } else { + for (const stem of ordered) { + const pattern = params.matchProsody ? stress(stem) : "1"; + patterns.set(stem, pattern); + const { nonce, salt } = mintNonce(stem, pattern, params.seed, forbidden, 0); + forbidden.add(nonce); + map.set(stem, nonce); + mintedStress.set(nonce, pattern); + salts.set(stem, salt); + } } let remintRounds = 0; for (;;) { - const offenders = injectivityOffenders(pairs, map, domain, params.seed); + const offenders = injectivityOffenders(pairs, map, barred, params.seed); if (offenders.size === 0) break; remintRounds += 1; if (remintRounds > MAX_REMINT_ROUNDS) { @@ -808,12 +1055,45 @@ export function buildVacancyMap(types: Iterable, params: VacancyParams): } // Canonical order, so the result does not depend on iteration order. for (const stem of [...offenders].sort()) { - const pattern = patterns.get(stem); const previousSalt = salts.get(stem); - if (pattern === undefined || previousSalt === undefined) { + if (previousSalt === undefined) { throw new Error(`vacancy: re-mint offender ${JSON.stringify(stem)} was never minted`); } const startSalt = 1000 * remintRounds + previousSalt + 1; + if (swapping) { + // A superseded REPLACEMENT returns to the pool, unlike a superseded nonce, which + // stays forbidden forever. The pool is finite (1944 real words against 1680 stems on + // the shipped corpus), so retiring words permanently would starve later rounds; and a + // real word cannot recreate the collision it was rejected for the way a nonce can, + // because that collision was with another stem's surface, which has itself moved. + const others = new Set(); + for (const [s, w] of map) if (s !== stem) others.add(w); + const elsewhere = new Set(); + for (const pair of pairs) { + if (pair.stem === stem) continue; + elsewhere.add(surfaceForm(pair.stem, pair.suffix, map.get(pair.stem)!, params.seed)); + } + const drawn = drawSwap( + stem, + params.seed, + params.matchProsody, + pool, + rank, + others, + suffixesOf.get(stem)!, + elsewhere, + barred, + startSalt, + ); + forbidden.add(drawn.word); + map.set(stem, drawn.word); + salts.set(stem, drawn.salt); + continue; + } + const pattern = patterns.get(stem); + if (pattern === undefined) { + throw new Error(`vacancy: re-mint offender ${JSON.stringify(stem)} was never minted`); + } const { nonce, salt } = mintNonce(stem, pattern, params.seed, forbidden, startSalt); // The superseded nonce stays in `forbidden` (it is not handed to anyone else) but // leaves `mintedStress`, where a stale key would claim a pattern nothing carries. @@ -833,10 +1113,15 @@ export function buildVacancyMap(types: Iterable, params: VacancyParams): mapping: map, mintedStress, remintRounds, - bijective: true, + // MEASURED, not asserted. The loop above exits only when A and B hold, so this is `true` + // whenever it returns — but a hardcoded `true` is a claim about the loop rather than + // about the map, and Python has always computed it. Two stacks reporting the same field + // by two different routes is how a divergence hides. + bijective: image.size === domain.size, imageSize: image.size, forbidden, domain, + injectiveAtEveryP: !swapping, }; } @@ -973,6 +1258,18 @@ export function mapVocabWords( if (params.revealAfter !== 0) { throw new Error("vacancy: mapVocabWords requires revealAfter = 0 (architecture.md §7.2)"); } + if (!vmap.injectiveAtEveryP && params.p > 0 && params.p < 1) { + // §5.2a: swap's images ARE domain types, so at intermediate `p` a vacated type can land + // on an un-vacated one and two budget words would share a row. That is not a defect to be + // re-drawn away — the theorem there shows no `p`-stable swap avoids it — so the mapped + // vocabulary is refused, exactly as it is for the two controls above. + throw new Error( + `vacancy: mint = 'swap' has no mapped vocabulary at p = ${params.p}: its replacements ` + + `are domain types, so a vacated type can collide with an un-vacated one and the map ` + + `is injective only at full vacancy (architecture.md §5.2a). Use p = 0 or p = 1, or ` + + `rebuild the budget from the vacated corpus`, + ); + } const keep = effectiveKeepSet(params.keep); return words.map((w) => transformWordWith(w, vmap, params, keep)); } diff --git a/code/frontend/src/viz/lex/VacancyPanel.svelte b/code/frontend/src/viz/lex/VacancyPanel.svelte index 0d4ecfa..cfd6b4e 100644 --- a/code/frontend/src/viz/lex/VacancyPanel.svelte +++ b/code/frontend/src/viz/lex/VacancyPanel.svelte @@ -143,7 +143,7 @@ id: "swap", label: "swap", title: - "Contract §8.3: draw a real, frequency-rank-matched English word instead. Not implemented in either stack yet.", + "Contract §8.3: draw a real, frequency-rank-matched English word instead. Both engines implement it; this control is not wired to them yet.", enabled: false, }, ]; @@ -627,8 +627,13 @@

swap — draw a real, frequency-rank-matched English word instead of an invented one (contract §8.3) — is the control that separates wrong content from - unknown form for the pretrained arm. Neither stack implements it yet, so it is - offered here disabled rather than silently falling back to nonce. + unknown form for the pretrained arm. Both engines now implement it, and they + agree word for word; this panel is not wired to them yet, so it is offered + disabled rather than silently falling back to nonce. One thing it will + have to say when it is: a swap map is injective only at p = 0 or p = 1. Its + replacements are real corpus words, so at an intermediate p a vacated word can land + on one that has not moved — and contract §5.2a proves no stable swap avoids that. + The engines refuse the mapped vocabulary there rather than duplicate a row.

diff --git a/code/frontend/tests/fixtures/vacancy-golden.json b/code/frontend/tests/fixtures/vacancy-golden.json index 6c06300..9ea746e 100644 --- a/code/frontend/tests/fixtures/vacancy-golden.json +++ b/code/frontend/tests/fixtures/vacancy-golden.json @@ -1,7 +1,7 @@ { - "format": "vacancy-golden-v1", + "format": "vacancy-golden-v2", "generated": "2026-08-04", - "git_sha": "c115ec656c8a7bc150952f6de5d43f86693661be", + "git_sha": "1b4704bf76847b582b159a6bea59940053536ff5", "command": "python scripts/export_vacancy_golden.py", "source": "llm_geometry.lex.vacancy run directly on the committed corpus \u2014 real code, real text, no mocks", "contract": "specs/007-vacancy-transform-field/architecture.md", @@ -338,6 +338,8 @@ "label": "seed0", "seed": 0, "matchProsody": true, + "mint": "nonce", + "injectiveAtEveryP": true, "remintRounds": 0, "bijective": true, "imageSize": 2233, @@ -2031,6 +2033,8 @@ "label": "seed7", "seed": 7, "matchProsody": true, + "mint": "nonce", + "injectiveAtEveryP": true, "remintRounds": 1, "bijective": true, "imageSize": 2233, @@ -3724,6 +3728,8 @@ "label": "seed0-noprosody", "seed": 0, "matchProsody": false, + "mint": "nonce", + "injectiveAtEveryP": true, "remintRounds": 1, "bijective": true, "imageSize": 2233, @@ -3758,10 +3764,172 @@ "good-bye": null } }, + { + "label": "swap-seed0", + "seed": 0, + "matchProsody": true, + "mint": "swap", + "injectiveAtEveryP": false, + "remintRounds": 0, + "bijective": true, + "imageSize": 2233, + "domainSize": 2233, + "mappingSize": 1680, + "mappingSha256": "76f6cfc226e27896b5a5fbb52200f427bf774898f271205146cb3b4e76d3e5ef", + "mapping": null, + "sampleNonces": { + "little": "birthday", + "pretty": "mary", + "run": "sneeze", + "eat": "say", + "jump": "tail", + "away": "upon", + "squirrel": "works", + "funny": "picture", + "today": "pricked", + "gum": "fish", + "hang": "mouth", + "crown": "harm", + "candlestick": "clergyman", + "crooked": null, + "diddle": "mother", + "moon": "bird", + "pussy": "crooked", + "goose": "snow", + "the": null, + "and": null, + "you": null, + "not": null, + "ox": null, + "good-bye": null + } + }, + { + "label": "swap-seed0-noprosody", + "seed": 0, + "matchProsody": false, + "mint": "swap", + "injectiveAtEveryP": false, + "remintRounds": 0, + "bijective": true, + "imageSize": 2233, + "domainSize": 2233, + "mappingSize": 1680, + "mappingSha256": "502bff84d42bbac52660c487d563c91634c4ef144943cfa799a5daa9a01d7eef", + "mapping": null, + "sampleNonces": { + "little": "wrap", + "pretty": "this", + "run": "full", + "eat": "say", + "jump": "lived", + "away": "said", + "squirrel": "works", + "funny": "bear", + "today": "ask", + "gum": "frumpaty", + "hang": "misty", + "crown": "asked", + "candlestick": "cobwebs", + "crooked": null, + "diddle": "days", + "moon": "bird", + "pussy": "crooked", + "goose": "snow", + "the": null, + "and": null, + "you": null, + "not": null, + "ox": null, + "good-bye": null + } + }, + { + "label": "swap-seed7", + "seed": 7, + "matchProsody": true, + "mint": "swap", + "injectiveAtEveryP": false, + "remintRounds": 0, + "bijective": true, + "imageSize": 2233, + "domainSize": 2233, + "mappingSize": 1680, + "mappingSha256": "41b49d5e6a9d0276f80ffddd318550cde0dc4961bb005e03bb700b10e20ac5a6", + "mapping": null, + "sampleNonces": { + "little": "birthday", + "pretty": "woman", + "run": "more", + "eat": "play", + "jump": "men", + "away": "upon", + "squirrel": "wool", + "funny": "wished", + "today": "away", + "gum": "kill", + "hang": "fetch", + "crown": "dish", + "candlestick": "clergyman", + "crooked": null, + "diddle": "jenny", + "moon": "dame", + "pussy": "taffy", + "goose": "dove", + "the": null, + "and": null, + "you": null, + "not": null, + "ox": null, + "good-bye": null + } + }, + { + "label": "swap-seed7-noprosody", + "seed": 7, + "matchProsody": false, + "mint": "swap", + "injectiveAtEveryP": false, + "remintRounds": 0, + "bijective": true, + "imageSize": 2233, + "domainSize": 2233, + "mappingSize": 1680, + "mappingSha256": "9b198a8df6b34eaef07438910be80c39f7d2fb5d2793f325257808af8c8f29c5", + "mapping": null, + "sampleNonces": { + "little": "doll", + "pretty": "woman", + "run": "water", + "eat": "play", + "jump": "men", + "away": "shoe", + "squirrel": "away", + "funny": "wished", + "today": "chicken", + "gum": "hung", + "hang": "fetch", + "crown": "hubbard", + "candlestick": "cellar", + "crooked": null, + "diddle": "crow", + "moon": "dame", + "pussy": "taffy", + "goose": "crumpled", + "the": null, + "and": null, + "you": null, + "not": null, + "ox": null, + "good-bye": null + } + }, { "label": "control-inconsistent", "seed": 0, "matchProsody": true, + "mint": "nonce", + "injectiveAtEveryP": true, "remintRounds": 0, "bijective": true, "imageSize": 2233, @@ -3800,6 +3968,8 @@ "label": "control-inconsistent-seed7", "seed": 7, "matchProsody": true, + "mint": "nonce", + "injectiveAtEveryP": true, "remintRounds": 1, "bijective": true, "imageSize": 2233, @@ -3838,6 +4008,8 @@ "label": "control-reveal-after-2", "seed": 0, "matchProsody": true, + "mint": "nonce", + "injectiveAtEveryP": true, "remintRounds": 0, "bijective": true, "imageSize": 2233, @@ -3883,7 +4055,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\n", "vacatedSha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c", @@ -3991,7 +4164,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE REAL\n WIELKOW BRARSP\n\n _Illustrated by_\nBlanche Fisher Trurrk\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Gea\nRain\nThe Clock\nWinter\nFingers and Toes\nA Squrvididish Song\nStruv Vard and Her Cat\nThree Kliesowle on the Ice\nDroalls Brem\nThe Garr Plaispy Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nSqo", "vacatedSha256": "6598ab550c09c2301cca7c38f8a57e3f1e385bb0a0f4648c14d8505cc0e5ad39", @@ -4099,7 +4273,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE PRIRLK\n WIELKOW BRARSP\n\n _Illustrated by_\nBlanche Fisher Trurrk\n\n1916\n\n\n\nA LIST OF THE SHRENGES\n\nLittle Bo-Peep\nLittle Boy Gea\nRain\nThe Clock\nWinter\nTitows and Toes\nA Squrvididish Song\nStruv Vard and Her Cat\nThree Kliesowle on the Ice\nDroalls Brem\nThe Garr Plaispy Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nLittle Bylling Joan\nPat-a-Cake\nMoney and the Mar", "vacatedSha256": "f70d3febc5552d9e194b980a8811cb16fccc9d6d011049e574aca3fa6cf39d3a", @@ -4207,7 +4382,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE PRIRLK\n WIELKOW BRARSP\n\n _Illustrated by_\nBlanche Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nSkoufenty Bo-Peep\nSkoufenty Boy Gea\nRain\nThe Clock\nWinter\nTitows and Toes\nA Squrvididish Shyf\nStruv Vard and Her Cat\nThree Kliesowle on the Ice\nDroalls Brem\nThe Garr Plaispy Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nSkoufenty Bylling Joan\nPat-a-Cake\nMoney and", "vacatedSha256": "d1613771bcc7f998b4b74ddb90b06cfaf1699488fb0df82988cf2d7d25508e74", @@ -4315,7 +4491,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE PRIRLK\n WIELKOW BRARSP\n\n _Trirmousered by_\nBlanche Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nSkoufenty Bo-Peep\nSkoufenty Boy Gea\nRain\nThe Snuch\nWinter\nTitows and Smurlks\nA Squrvididish Shyf\nStruv Vard and Her Cat\nThree Kliesowle on the Ice\nDroalls Brem\nThe Garr Plaispy Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nSkoufenty Bylling Boub\nPat-a-Cake\nNiedu", "vacatedSha256": "940e9468e7fa9d1ce59dea8e134704f9245fe829a89745687889eb97bf5b2731", @@ -4423,7 +4600,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE PRIRLK\n WIELKOW BRARSP\n\n _Trirmousered by_\nZoot Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nSkoufenty Bo-Peep\nSkoufenty Boy Gea\nRain\nThe Snuch\nWinter\nTitows and Smurlks\nA Squrvididish Shyf\nStruv Vard and Her Cat\nThree Kliesowle on the Ice\nDroalls Brem\nThe Garr Plaispy Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nSkoufenty Bylling Boub\nPat-a-Cake\nNiedum a", "vacatedSha256": "92e04ff4355517b4f75aaa319a004ff4fc4e139bd3fc01f719529dbbc126ffbb", @@ -4531,7 +4709,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE PRIRLK\n WIELKOW BRARSP\n\n _Trirmousered by_\nZoot Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nSkoufenty Bo-Peep\nSkoufenty Sim Gea\nSkarf\nThe Snuch\nSwaper\nTitows and Smurlks\nA Squrvididish Shyf\nStruv Vard and Her Chooz\nThree Kliesowle on the Karn\nDroalls Brem\nThe Garr Plaispy Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielkow Brarsp\nSkoufenty Bylling Boub\nPat-a-Cake\nNied", "vacatedSha256": "b3ff676c578e5afa50dfd19ae4c0eff65e548f01de38eb87374e815d3bf89ba8", @@ -4639,7 +4818,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\n", "vacatedSha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c", @@ -4747,7 +4927,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE KRARRD\n MOTHER KLOALK\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nLittle Bo-Peep\nLittle Boy Blue\nYurnk\nThe Clock\nZeller\nFingers and Toes\nA Seasonable Strieft\nSaun Trot and Her Florll\nThree Children on the Ice\nKroots Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nOld Mother Kloalk\nLittle Jumping Blarrn\nPat-a-Cake\nFrerkic and the Mar", "vacatedSha256": "e80589ef836f343dbfb95e4e4f89b8d94c5ce2c374c9557bbec9ff45b2f72114", @@ -4855,7 +5036,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE KRARRD\n MOTHER KLOALK\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nLittle Bo-Peep\nLittle Boy Blue\nYurnk\nThe Clock\nZeller\nFingers and Toes\nA Seasonable Strieft\nSaun Shrurll and Her Florll\nThree Children on the Ice\nKroots Patch\nThe Kir Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nKir Mother Kloalk\nLittle Jumping Blarrn\nPat-a-Cake\nFrerkic and the ", "vacatedSha256": "56dd28fe1ad3c925fdca2e7aca94de205a7992aba902a1cb19d7ad743f817960", @@ -4963,7 +5145,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE KRARRD\n SORISH KLOALK\n\n _Illustrated by_\nBlanche Fisher Chouth\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nShooventy Bo-Peep\nShooventy Boy Brermp\nYurnk\nThe Desp\nZeller\nYeebys and Spoults\nA Smeapicumen Strieft\nSaun Shrurll and Her Florll\nThree Children on the Ice\nKroots Patch\nThe Kir Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nKir Sorish Kloalk\nShooventy Scerrking Blarrn\nPat-a-Cake\nF", "vacatedSha256": "3166e1c857398c7a3bbb94e77c8b5accda4874e0c4ef53462664cab7c2f531b1", @@ -5071,7 +5254,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE KRARRD\n SORISH KLOALK\n\n _Wermishened by_\nBlanche Fisher Chouth\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nShooventy Bo-Peep\nShooventy Boy Brermp\nYurnk\nThe Desp\nZeller\nYeebys and Spoults\nA Smeapicumen Strieft\nSaun Shrurll and Her Florll\nThree Broarmidy on the Ice\nKroots Patch\nThe Kir Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nKir Sorish Kloalk\nShooventy Scerrking Blarrn\nPat-a-Cake\n", "vacatedSha256": "88e3d28102bccbeab9195d107d1b22dac7b535025334ae354b0586d26b0c2271", @@ -5179,7 +5363,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE KRARRD\n SORISH KLOALK\n\n _Wermishened by_\nPirv Fisher Chouth\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nShooventy Bo-Peep\nShooventy Boy Brermp\nYurnk\nThe Desp\nZeller\nYeebys and Spoults\nA Smeapicumen Strieft\nSaun Shrurll and Her Florll\nThree Broarmidy on the Ice\nKroots Patch\nThe Kir Fliespous Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nKir Sorish Kloalk\nShooventy Scerrking Blarrn\nPat-a-Cake", "vacatedSha256": "82434ac3737bd7cfa810bba9cb22b23811887d9e0ca9dfa2071a377420b43753", @@ -5287,7 +5472,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE KRARRD\n SORISH KLOALK\n\n _Wermishened by_\nPirv Smausker Chouth\n\n1916\n\n\n\nA SHIRK OF THE SORFES\n\nShooventy Bo-Peep\nShooventy Skurth Brermp\nYurnk\nThe Desp\nZeller\nYeebys and Spoults\nA Smeapicumen Strieft\nSaun Shrurll and Her Florll\nThree Broarmidy on the Skach\nKroots Ploank\nThe Kir Fliespous Under a Drier\nTweedle-Dum and Tweedle-Dee\nOh Wousk!\nKir Sorish Kloalk\nShooventy Scerrking Blarrn\nP", "vacatedSha256": "263b8dd3733dbf4802a2bc4c74fb905388062952e45931e4ebcd561cbd4e76df", @@ -5395,7 +5581,8 @@ "consistent": true, "matchProsody": false, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE PRIRLK\n WIELK BRARSP\n\n _Trirmed by_\nBlanche Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nStrek Bo-Peep\nStrek Boy Gea\nRain\nThe Snuch\nWinter\nTits and Smurlks\nA Squrv Shyf\nStruv Vard and Her Cat\nThree Klies on the Ice\nDroalls Brem\nThe Garr Plaisp Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielk Brarsp\nStrek Bylling Boub\nPat-a-Cake\nNied and the Meez\nSqorl Buff\nA Melanchol", "vacatedSha256": "4e19fffc82f8ca95bbab20ecc1c8a900d5339c01a98017d644a848d7290a6720", @@ -5503,7 +5690,8 @@ "consistent": true, "matchProsody": false, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE PRIRLK\n WIELK BRARSP\n\n _Trirmed by_\nZoot Neker Trurrk\n\n1916\n\n\n\nA SORP OF THE SHRENGES\n\nStrek Bo-Peep\nStrek Sim Gea\nSkarf\nThe Snuch\nSwaper\nTits and Smurlks\nA Squrv Shyf\nStruv Vard and Her Chooz\nThree Klies on the Karn\nDroalls Brem\nThe Garr Plaisp Under a Prornt\nTweedle-Dum and Tweedle-Dee\nOh Grirn!\nGarr Wielk Brarsp\nStrek Bylling Boub\nPat-a-Cake\nNied and the Meez\nSqorl Buff\nA Torsly S", "vacatedSha256": "512e8f77a256ef49f83bbf662b62f551e00079bb8b826f590ed8f8b21acbfe4a", @@ -5602,6 +5790,580 @@ }, "mapVocabWordsRejects": false }, + { + "label": "swap-seed0-p0.0", + "map": "swap-seed0", + "params": { + "p": 0.0, + "seed": 0, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [], + "mint": "swap" + }, + "head400": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\n", + "vacatedSha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c", + "vacatedChars": 86408, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 0, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 0, + "stemsTotal": 1680, + "stemsVacated": 0, + "tokensTotal": 16000, + "tokensVacated": 0, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.29, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3209324983421379, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0514375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.0, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.9485625, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "little", + "pretty": "pretty", + "run": "run", + "eat": "eat", + "jump": "jump", + "away": "away", + "squirrel": "squirrel", + "funny": "funny", + "today": "today", + "gum": "gum", + "hang": "hang", + "crown": "crown", + "candlestick": "candlestick", + "crooked": "crooked", + "diddle": "diddle", + "moon": "moon", + "pussy": "pussy", + "goose": "goose", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "2ba43046604884d431a9b8a503ae906a703235c578f7d588b877302c95b74983" + }, + "mapVocabWordsRejects": false + }, + { + "label": "swap-seed0-p0.7", + "map": "swap-seed0", + "params": { + "p": 0.7, + "seed": 0, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [], + "mint": "swap" + }, + "head400": " THE SHOEING\n ROBIN SNOW\n\n _Grandmothered by_\nBlanche Doorer Comfits\n\n1916\n\n\n\nA OAK OF THE SAMES\n\nBirthday Bo-Peep\nBirthday Boy King\nRain\nThe Swan\nWinter\nNeedlers and Eyers\nA Elizabeth Worse\nFlew Tobago and Her Cat\nThree Visited on the Ice\nTakes North\nThe Boy Chicken Under a Bell\nTweedle-Dum and Tweedle-Dee\nOh Poor!\nBoy Robin Snow\nBirthday Tailing Pairs\nPat-a-Cake\nDerby and the Clap\nRiddl", + "vacatedSha256": "875901bb858cfd24bc94d7260628d406f7098f632de229e82d44b52fc447e2cd", + "vacatedChars": 88453, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1354, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1337, + "stemsTotal": 1680, + "stemsVacated": 1167, + "tokensTotal": 16000, + "tokensVacated": 6094, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.32025, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3294038374477789, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0503125, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.0, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.9496875, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "birthday", + "pretty": "mary", + "run": "run", + "eat": "say", + "jump": "tail", + "away": "upon", + "squirrel": "works", + "funny": "picture", + "today": "pricked", + "gum": "fish", + "hang": "hang", + "crown": "harm", + "candlestick": "clergyman", + "crooked": "welled", + "diddle": "diddle", + "moon": "bird", + "pussy": "crooked", + "goose": "snow", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": null, + "mapVocabWordsRejects": true + }, + { + "label": "swap-seed0-p1.0", + "map": "swap-seed0", + "params": { + "p": 1.0, + "seed": 0, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [], + "mint": "swap" + }, + "head400": " THE SHOEING\n ROBIN SNOW\n\n _Grandmothered by_\nBrings Doorer Comfits\n\n1916\n\n\n\nA OAK OF THE SAMES\n\nBirthday Bo-Peep\nBirthday Watch King\nHen\nThe Swan\nSeasonablner\nNeedlers and Eyers\nA Elizabeth Worse\nFlew Tobago and Her Went\nThree Visited on the Pick\nTakes North\nThe Boy Chicken Under a Bell\nTweedle-Dum and Tweedle-Dee\nOh Poor!\nBoy Robin Snow\nBirthday Tailing Pairs\nPat-a-Cake\nDerby and the Cl", + "vacatedSha256": "68edf0cd793e55581dc54b8c64ca1b5adb8ae260269693f3f3f85541f480824b", + "vacatedChars": 89304, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1944, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1922, + "stemsTotal": 1680, + "stemsVacated": 1680, + "tokensTotal": 16000, + "tokensVacated": 8202, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.3296875, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3303667914227805, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0490625, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.0, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.9509375, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "birthday", + "pretty": "mary", + "run": "sneeze", + "eat": "say", + "jump": "tail", + "away": "upon", + "squirrel": "works", + "funny": "picture", + "today": "pricked", + "gum": "fish", + "hang": "mouth", + "crown": "harm", + "candlestick": "clergyman", + "crooked": "welled", + "diddle": "mother", + "moon": "bird", + "pussy": "crooked", + "goose": "snow", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "a5b600a49ada15f838c96f08e9a5515de07a4c84f1e09e372efa07d9a5a5482c" + }, + "mapVocabWordsRejects": false + }, + { + "label": "swap-seed7-p0.0", + "map": "swap-seed7", + "params": { + "p": 0.0, + "seed": 7, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [], + "mint": "swap" + }, + "head400": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nLittle Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbreast\n", + "vacatedSha256": "03769632905e2b4c78f9a57b3ce16eec1cc33014eb7edefdbc3aae07e64f3f7c", + "vacatedChars": 86408, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 0, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 0, + "stemsTotal": 1680, + "stemsVacated": 0, + "tokensTotal": 16000, + "tokensVacated": 0, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.29, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3209324983421379, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0514375, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.0, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.9485625, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "little", + "pretty": "pretty", + "run": "run", + "eat": "eat", + "jump": "jump", + "away": "away", + "squirrel": "squirrel", + "funny": "funny", + "today": "today", + "gum": "gum", + "hang": "hang", + "crown": "crown", + "candlestick": "candlestick", + "crooked": "crooked", + "diddle": "diddle", + "moon": "moon", + "pussy": "pussy", + "goose": "goose", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "2ba43046604884d431a9b8a503ae906a703235c578f7d588b877302c95b74983" + }, + "mapVocabWordsRejects": false + }, + { + "label": "swap-seed7-p0.7", + "map": "swap-seed7", + "params": { + "p": 0.7, + "seed": 7, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [], + "mint": "swap" + }, + "head400": " THE RAW\n DIDDLE DOVE\n\n _Higgledyed by_\nBlanche Fisher Kitty\n\n1916\n\n\n\nA NEAT OF THE ROBES\n\nBirthday Bo-Peep\nBirthday Boy Sat\nTail\nThe Leg\nBiggerer\nMerrys and Mindls\nA Piccadilly Woods\nGet Ann's and Her Sing\nThree Another on the Ice\nCakes Patch\nThe Floor Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Ding!\nFloor Diddle Dove\nBirthday Mening Flour\nPat-a-Cake\nPenny and the Mare\nRobin Witho", + "vacatedSha256": "ab5776ee99817b0b8615ca77a67479dd919fac4b102986932f2713657f7fc939", + "vacatedChars": 88915, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1349, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1336, + "stemsTotal": 1680, + "stemsVacated": 1164, + "tokensTotal": 16000, + "tokensVacated": 5841, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.322625, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3294169279109046, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.0503125, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.0, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.9496875, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "birthday", + "pretty": "woman", + "run": "more", + "eat": "play", + "jump": "men", + "away": "upon", + "squirrel": "squirrel", + "funny": "wished", + "today": "away", + "gum": "kill", + "hang": "fetch", + "crown": "dish", + "candlestick": "clergyman", + "crooked": "nowed", + "diddle": "jenny", + "moon": "dame", + "pussy": "taffy", + "goose": "dove", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": null, + "mapVocabWordsRejects": true + }, + { + "label": "swap-seed7-p1.0", + "map": "swap-seed7", + "params": { + "p": 1.0, + "seed": 7, + "consistent": true, + "matchProsody": true, + "revealAfter": 0, + "keep": [], + "mint": "swap" + }, + "head400": " THE RAW\n DIDDLE DOVE\n\n _Higgledyed by_\nBlithe Buncher Kitty\n\n1916\n\n\n\nA NEAT OF THE ROBES\n\nBirthday Bo-Peep\nBirthday Home Sat\nTail\nThe Leg\nBiggerer\nMerrys and Mindls\nA Piccadilly Woods\nGet Ann's and Her Sing\nThree Another on the Fred\nCakes Mark\nThe Floor Funny Under a Bell\nTweedle-Dum and Tweedle-Dee\nOh Ding!\nFloor Diddle Dove\nBirthday Mening Flour\nPat-a-Cake\nPenny and the Till\nFlower Wit", + "vacatedSha256": "08287932cff42c0b0c6fd658a53e96e85833b099d935547318625d6d1fa2b5b6", + "vacatedChars": 89807, + "stats": { + "domainTypesTotal": 2233, + "domainTypesEligible": 1944, + "domainTypesVacated": 1944, + "corpusTypesTotal": 2211, + "corpusTypesEligible": 1922, + "corpusTypesVacated": 1922, + "stemsTotal": 1680, + "stemsVacated": 1680, + "tokensTotal": 16000, + "tokensVacated": 8202, + "meanSyllablesBefore": 1.29, + "meanSyllablesAfter": 1.3290625, + "meanAnapestBefore": 0.3209324983421379, + "meanAnapestAfter": 0.3296101720623341, + "stressFromTableBefore": 0.0514375, + "stressFromTableAfter": 0.052625, + "stressFromMintedBefore": 0.0, + "stressFromMintedAfter": 0.0, + "stressFromRuleBefore": 0.9485625, + "stressFromRuleAfter": 0.947375, + "bijective": true, + "imageSize": 2233, + "remintRounds": 0 + }, + "stemForms": { + "little": "birthday", + "pretty": "woman", + "run": "more", + "eat": "play", + "jump": "men", + "away": "upon", + "squirrel": "wool", + "funny": "wished", + "today": "away", + "gum": "kill", + "hang": "fetch", + "crown": "dish", + "candlestick": "clergyman", + "crooked": "nowed", + "diddle": "jenny", + "moon": "dame", + "pussy": "taffy", + "goose": "dove", + "the": "the", + "and": "and", + "you": "you", + "not": "not", + "ox": "ox", + "good-bye": "good-bye" + }, + "idStream": { + "digest": "c0567be6d5df1a254ed64c72e7fb2fba313b5221a591e1f1e557d6ddc5d436af", + "length": 19071, + "first16": [ + 35, + 0, + 2, + 283, + 0, + 2, + 0, + 102, + 2, + 0, + 0, + 0, + 2, + 4, + 0, + 120 + ], + "last16": [ + 0, + 138, + 127, + 0, + 120, + 236, + 2, + 5, + 132, + 0, + 118, + 0, + 300, + 20, + 0, + 2 + ], + "mappedWordsSha256": "bf19c502e64042b5048ae4ef10278b6ab58381489c3bdbaaf7f36521924803f0" + }, + "mapVocabWordsRejects": false + }, { "label": "control-inconsistent", "map": "control-inconsistent", @@ -5611,7 +6373,8 @@ "consistent": false, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE GLAIRN\n SCIRRDER PLERNT\n\n _Wroormowyed by_\nBlanche Thursper Styn\n\n1916\n\n\n\nA HURF OF THE YORCKES\n\nWrerkenle Bo-Peep\nFlorlkishle Boy Poun\nRain\nThe Sqyft\nWinter\nNietens and Klisks\nA Gnuntingenle Jai\nSculk Mursh and Her Cat\nThree Thoochousish on the Ice\nNefs Gask\nThe Soamp Therltle Under a Gloang\nTweedle-Dum and Tweedle-Dee\nOh Steb!\nSwouck Felkid Rarp\nLainowid Yersking Snof\nPat-a-Cake\nSt", "vacatedSha256": "610a0d8375890ec68a788457b957d248e5e8a279644fc5b339aa7849451a68cf", @@ -5654,7 +6417,8 @@ "consistent": false, "matchProsody": true, "revealAfter": 0, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE BLORM\n SWERFFISH MORT\n\n _Plourerered by_\nTreesp Mearter Krad\n\n1916\n\n\n\nA YOORN OF THE GERLTES\n\nWreazzleerum Bo-Peep\nShilidy Throuf Squrm\nPook\nThe Jorrk\nFyler\nYichums and Virks\nA Scaitenticen Flirck\nPlerp Gnuz and Her Zersk\nThree Sqyrmouser on the Rars\nGeashs Horrd\nThe Naull Thistid Under a Nourn\nTweedle-Dum and Tweedle-Dee\nOh Skoa!\nBoaff Worbish Wrog\nStortelle Heasting Waud\nPat-a-Cake", "vacatedSha256": "25df4453ac73c95e3a61db45fca3329b4b03bf08b3b9a74b161cebe618772292", @@ -5697,7 +6461,8 @@ "consistent": true, "matchProsody": true, "revealAfter": 2, - "keep": [] + "keep": [], + "mint": "nonce" }, "head400": " THE REAL\n MOTHER GOOSE\n\n _Illustrated by_\nBlanche Fisher Wright\n\n1916\n\n\n\nA LIST OF THE RHYMES\n\nLittle Bo-Peep\nLittle Boy Blue\nRain\nThe Clock\nWinter\nFingers and Toes\nA Seasonable Song\nDame Trot and Her Cat\nThree Children on the Ice\nCross Patch\nThe Old Woman Under a Hill\nTweedle-Dum and Tweedle-Dee\nOh Dear!\nOld Mother Goose\nSkoufenty Jumping Joan\nPat-a-Cake\nMoney and the Mare\nRobin Redbrea", "vacatedSha256": "c3eb24f1d280ec4855055f69fd2ff27883ff485d70e047e7f70dff4c4c99a543", diff --git a/code/frontend/tests/unit/vacancy.test.ts b/code/frontend/tests/unit/vacancy.test.ts index 15e81e7..9769060 100644 --- a/code/frontend/tests/unit/vacancy.test.ts +++ b/code/frontend/tests/unit/vacancy.test.ts @@ -28,7 +28,7 @@ import { describe, expect, it } from "vitest"; -import { DOLCH_ORDER, WORD_RE, dolchBudget, splitLines, tokenize } from "../../src/lib/lexEngine"; +import { DOLCH_ORDER, LexVocab, WORD_RE, dolchBudget, splitLines, tokenize } from "../../src/lib/lexEngine"; import { CODAS, DEFAULT_VACANCY_PARAMS, @@ -48,6 +48,7 @@ import { stress, syllables, transformWord, + typeCounts, vacancyDomain, vacancyParams, vacancyStats, @@ -88,6 +89,23 @@ function mapFor(seed: number): VacancyMap { return m; } +/** The map as a sorted array of pairs, so two maps compare by value. */ +function mappingEntries(vmap: VacancyMap): [string, string][] { + return [...vmap.mapping].sort((a, b) => (a[0] < b[0] ? -1 : 1)); +} + +/** The source types whose surface actually changed, measured from the two texts. */ +function changedTypes(original: string, rewritten: string): Set { + const before = original.match(new RegExp(WORD_RE.source, "g")) ?? []; + const after = rewritten.match(new RegExp(WORD_RE.source, "g")) ?? []; + expect(before.length).toBe(after.length); + const out = new Set(); + for (let i = 0; i < before.length; i++) { + if (before[i] !== after[i]) out.add(before[i].toLowerCase()); + } + return out; +} + /** The stems the map would vacate at this `p`, as a set. */ function vacatedStems(seed: number, p: number): Set { const out = new Set(); @@ -910,3 +928,163 @@ describe("§10 statistics", () => { expect(rows.length).toBe(SEEDS.length * P_GRID.length); }); }); + +// --- `forbidden`, §5.8 ---------------------------------------------------------------- + +describe("`forbidden` is stored, and keeps superseded re-mint nonces (§5.8)", () => { + it("carries `wak`, the nonce seed 7's re-mint of `hang` replaced", () => { + // THE CASE THAT DISTINGUISHES a stored set from `domain ∪ mapping.values()`, and the + // only one the shipped corpus produces: at seed 7 the stem `hang` first minted `wak`, + // whose surface `wak` + `ed` is the real English word `waked`; condition B rejected it + // and the re-mint returned `smeeg`. `wak` is now no stem's nonce, so a reconstruction + // drops it — but it must stay forbidden, because it was rejected for cause and the + // `consistent = false` control draws against this very set. + const vmap = mapFor(7); + expect(vmap.mapping.get("hang")).toBe("smeeg"); + expect(vmap.remintRounds).toBe(1); + expect(vmap.forbidden.has("wak")).toBe(true); + expect([...vmap.mapping.values()]).not.toContain("wak"); // what a rebuild would lose + expect(vmap.domain.has("waked")).toBe(true); // ... and why it was superseded + }); + + it("contains the whole domain and every nonce, at both seeds", () => { + for (const seed of SEEDS) { + const vmap = mapFor(seed); + for (const t of vmap.domain) expect(vmap.forbidden.has(t)).toBe(true); + for (const n of vmap.mapping.values()) expect(vmap.forbidden.has(n)).toBe(true); + expect(vmap.forbidden.size).toBe( + vmap.domain.size + new Set(vmap.mapping.values()).size + (seed === 7 ? 1 : 0), + ); + } + }); + + it("keeps the superseded nonce out of the inconsistent control's output", () => { + const p = params({ p: 1, seed: 7, consistent: false }); + const text = vacateText(CORPUS, buildVacancyMap(DOMAIN, p), p); + expect(new Set(tokenize(text)).has("wak")).toBe(false); + }); +}); + +// --- the swap control, §8.3 / §5.2a --------------------------------------------------- + +const COUNTS = typeCounts(tokenize(CORPUS)); +const SWAP_MAPS = new Map( + SEEDS.map((seed) => [seed, buildVacancyMap(DOMAIN, params({ seed, mint: "swap" }), COUNTS)]), +); +function swapMapFor(seed: number): VacancyMap { + const m = SWAP_MAPS.get(seed); + if (m === undefined) throw new Error(`no swap map for seed ${seed}`); + return m; +} + +describe("mint = 'swap' draws a real English word (§8.3)", () => { + it("replaces every stem with a word the corpus or the budget already had", () => { + const real = new Set([...CORPUS_TYPES, ...BUDGET.map((w) => w.toLowerCase())]); + for (const seed of SEEDS) { + const vmap = swapMapFor(seed); + expect(vmap.mapping.size).toBeGreaterThan(0); + for (const [stem, word] of vmap.mapping) { + expect(real.has(word), `${seed}: ${stem} -> ${word}`).toBe(true); + expect(word).not.toBe(stem); // a stem keeping its form is a word that failed to vacate + } + } + }); + + it("needs the frequency counts, and says so rather than ranking alphabetically", () => { + expect(() => buildVacancyMap(DOMAIN, params({ mint: "swap" }))).toThrow(/type counts/); + }); + + it("refuses the inconsistent control — there is no supply of fresh real words", () => { + expect(() => + buildVacancyMap(DOMAIN, params({ mint: "swap", consistent: false }), COUNTS), + ).toThrow(/consistent/); + }); + + it("leaves the nonce map a pure function of (domain, seed, matchProsody)", () => { + for (const seed of SEEDS) { + const withCounts = buildVacancyMap(DOMAIN, params({ seed }), COUNTS); + expect([...withCounts.mapping]).toEqual([...mapFor(seed).mapping]); + expect(withCounts.remintRounds).toBe(mapFor(seed).remintRounds); + } + }); + + it("registers no minted stress — the replacements are real English words", () => { + for (const seed of SEEDS) expect(swapMapFor(seed).mintedStress.size).toBe(0); + }); + + it("is stable in (seed, stem): rebuilding gives the same map (SC-702)", () => { + for (const seed of SEEDS) { + const again = buildVacancyMap(DOMAIN, params({ seed, p: 1, mint: "swap" }), COUNTS); + expect(mappingEntries(again)).toEqual(mappingEntries(swapMapFor(seed))); + } + }); + + it("is nested in `p` — the `u(stem) < p` decision is untouched (SC-701)", () => { + let previous = new Set(); + for (const p of P_GRID) { + const text = vacateText(CORPUS, swapMapFor(0), params({ p, seed: 0, mint: "swap" })); + const changed = changedTypes(CORPUS, text); + for (const t of previous) expect(changed.has(t), `p=${p}: ${t}`).toBe(true); + previous = changed; + } + }); + + it("is a bijection of the domain at full vacancy (A + B₁ of §5.2a)", () => { + for (const seed of SEEDS) { + const vmap = swapMapFor(seed); + expect(vmap.bijective).toBe(true); + expect(vmap.imageSize).toBe(vmap.domain.size); + expect(vmap.remintRounds).toBe(0); + expect(vmap.injectiveAtEveryP).toBe(false); + } + }); +}); + +describe("the invariance theorem under mint = 'swap' (SC-703 / §5.2a)", () => { + it("holds at p ∈ {0, 1}, exactly as it does for mint = 'nonce'", () => { + const base = new LexVocab(BUDGET, "dolch", "full"); + const reference = base.encode(tokenize(CORPUS)); + for (const seed of SEEDS) { + for (const p of [0, 1]) { + const ps = params({ p, seed, mint: "swap" }); + const vmap = swapMapFor(seed); + const text = vacateText(CORPUS, vmap, ps); + const words = mapVocabWords(BUDGET, vmap, ps); + expect(new Set(words).size).toBe(words.length); + const mapped = new LexVocab(words, "dolch", "full"); + expect(mapped.rows).toBe(base.rows); + expect(mapped.encode(tokenize(text))).toEqual(reference); + } + } + }); + + it("refuses the mapped vocabulary at intermediate p rather than duplicating a row", () => { + // §5.2a: no `p`-stable map whose images are domain types is injective at 0 < p < 1 + // unless it is the identity. That is a theorem, not a defect to be re-drawn away, so + // the mapped vocabulary is refused exactly as it is for the two controls. + for (const p of [0.25, 0.5, 0.75]) { + expect(() => + mapVocabWords(BUDGET, swapMapFor(0), params({ p, seed: 0, mint: "swap" })), + ).toThrow(/full vacancy/); + } + }); + + it("measures WHY: a vacated type lands on a word that has not moved", () => { + // Pinned so the refusal above can never be mistaken for over-caution. If a future change + // makes swap injective at p = 0.5, this fails and the contract is wrong. + const vmap = swapMapFor(0); + const ps = params({ p: 0.5, seed: 0, mint: "swap" }); + const images = new Map(); + let collisions = 0; + for (const t of [...vmap.domain].sort()) { + const image = transformWord(t, vmap, ps).toLowerCase(); + if (images.has(image)) collisions++; + images.set(image, t); + } + expect(collisions).toBeGreaterThan(0); + + const full = params({ p: 1, seed: 0, mint: "swap" }); + const atOne = new Set([...vmap.domain].map((t) => transformWord(t, vmap, full).toLowerCase())); + expect(atOne.size).toBe(vmap.domain.size); + }); +}); diff --git a/code/frontend/tests/unit/vacancyGolden.test.ts b/code/frontend/tests/unit/vacancyGolden.test.ts index 152d3d4..c8b978b 100644 --- a/code/frontend/tests/unit/vacancyGolden.test.ts +++ b/code/frontend/tests/unit/vacancyGolden.test.ts @@ -90,6 +90,7 @@ import { mapVocabWords, stemAndSuffix, transformWord, + typeCounts, vacancyDomain, vacancyParams, vacancyStats, @@ -118,6 +119,8 @@ interface GoldenMap { label: string; seed: number; matchProsody: boolean; + mint: "nonce" | "swap"; + injectiveAtEveryP: boolean; remintRounds: number; bijective: boolean; imageSize: number; @@ -160,6 +163,7 @@ interface GoldenCase { matchProsody: boolean; revealAfter: number; keep: string[]; + mint: "nonce" | "swap"; }; head400: string; vacatedSha256: string; @@ -205,6 +209,8 @@ const CORPUS_ASSET = path.resolve(__dirname, "../../public/static-data/lex/corpu const CORPUS = (JSON.parse(fs.readFileSync(CORPUS_ASSET, "utf-8")) as LexCorpusAsset).text; const CORPUS_TYPES = new Set(tokenize(CORPUS)); const DOMAIN = vacancyDomain(CORPUS_TYPES); +/** The corpus's per-type occurrence counts — the frequency source `mint = "swap"` ranks by. */ +const COUNTS = typeCounts(tokenize(CORPUS)); const BUDGET_WORDS = dolchBudget("full"); const sha256 = (s: string): string => createHash("sha256").update(s, "utf8").digest("hex"); @@ -223,6 +229,7 @@ function paramsOf(c: GoldenCase): VacancyParams { matchProsody: c.params.matchProsody, revealAfter: c.params.revealAfter, keep: c.params.keep, + mint: c.params.mint, }); } @@ -234,7 +241,12 @@ function paramsOf(c: GoldenCase): VacancyParams { * proves that reuse is irrelevant in the mapped condition. */ function mapFor(params: VacancyParams): VacancyMap { - return buildVacancyMap(DOMAIN, params); + // `typeCounts` is passed unconditionally. `mint = "nonce"` ignores it — the nonce map is a + // pure function of `(domain, seed, matchProsody)`, and every pre-existing case in this + // fixture proves it by still matching — while `mint = "swap"` needs it and throws without + // it. Passing it always is what keeps the two call sites from differing by what one of + // them remembered, which is §5.2's whole objection to an optional `avoid`. + return buildVacancyMap(DOMAIN, params, COUNTS); } /** The fixture's own reading of a field a `knownDivergence` block names. */ @@ -294,7 +306,7 @@ const FLOAT_STATS = [ describe("the fixture is the one this test was written against", () => { it("declares its format, contract, tolerance and provenance", () => { - expect(golden.format).toBe("vacancy-golden-v1"); + expect(golden.format).toBe("vacancy-golden-v2"); expect(golden.contract).toBe("specs/007-vacancy-transform-field/architecture.md"); expect(golden.command).toBe("python scripts/export_vacancy_golden.py"); expect(golden.git_sha).toMatch(/^[0-9a-f]{40}$/); @@ -358,6 +370,7 @@ describe("the stem -> nonce map (§5.2)", () => { const params = vacancyParams({ seed: gm.seed, matchProsody: gm.matchProsody, + mint: gm.mint, // The control labels differ from the mapped condition only in knobs that do not // reach minting, so the map is a pure function of (domain, seed, matchProsody); // building it from the seed and the flag alone is itself part of the claim. @@ -365,6 +378,7 @@ describe("the stem -> nonce map (§5.2)", () => { const vmap = mapFor(params); expect(vmap.remintRounds).toBe(gm.remintRounds); expect(vmap.bijective).toBe(gm.bijective); + expect(vmap.injectiveAtEveryP).toBe(gm.injectiveAtEveryP); expect(vmap.imageSize).toBe(gm.imageSize); expect(vmap.domain.size).toBe(gm.domainSize); expect(vmap.mapping.size).toBe(gm.mappingSize); diff --git a/scripts/export_vacancy_golden.py b/scripts/export_vacancy_golden.py index 1bd4868..15e9fdc 100644 --- a/scripts/export_vacancy_golden.py +++ b/scripts/export_vacancy_golden.py @@ -48,6 +48,14 @@ as DATA rather than as an assertion written twice, once per language. 8. Both control conditions (``consistent = false``, ``revealAfter > 0``) and both ``matchProsody`` settings — the ``control-*`` and ``noprosody-*`` cases. +9. The swap control of §8.3 — the ``swap-*`` maps and cases. Four maps (both seeds × both + ``matchProsody`` settings) pinned by digest and 24 samples, and three cases per seed at + ``p in {0, 0.7, 1}``. The endpoints carry a real ``idStream``: SC-703 holds for + ``mint="swap"`` exactly as for ``mint="nonce"`` wherever a swap map can be injective. + ``swap-*-p0.7`` carries ``idStream: null`` and ``mapVocabWordsRejects: true``, which is + §5.2a's theorem pinned as data — a map whose images are domain types and which does not + depend on `p` cannot be injective at intermediate `p` unless it is the identity, so the + mapped vocabulary does not exist there and BOTH stacks refuse it. MEASURED, and recorded here because the fixture's shape depends on it: the mapped vocabulary of §7.2 is defined ONLY for ``consistent = true, revealAfter = 0``; both stacks @@ -125,6 +133,7 @@ is_eligible, map_vocab_words, stem_and_suffix, + type_counts, vacancy_domain, vacancy_stats, vacancy_u, @@ -135,7 +144,7 @@ REPO_ROOT / "code" / "frontend" / "tests" / "fixtures" / "vacancy-golden.json" ) -FORMAT = "vacancy-golden-v1" +FORMAT = "vacancy-golden-v2" #: Both stacks compute the vacancy transform in float64 and in the same order, so the only #: floats that can differ at all are the prosody means (a sum over the same tokens in the @@ -251,6 +260,7 @@ def params_json(params: VacancyParams) -> dict[str, Any]: "matchProsody": params.match_prosody, "revealAfter": params.reveal_after, "keep": sorted(params.keep), + "mint": params.mint, } @@ -281,6 +291,19 @@ def vacated_stems(vmap: VacancyMap, seed: int, p: float) -> list[str]: return sorted(stem for stem in vmap.mapping if vacancy_u(stem, seed) < p) +def _mapped_condition(vmap: VacancyMap, params: VacancyParams) -> bool: + """Is the MAPPED vocabulary of §7.2 defined for this (map, params) pair? + + Three ways it is not, and both stacks raise on each: the inconsistent-assignment control + and ``reveal_after > 0`` (§7.2 — a source type no longer has a single image), and + ``mint="swap"`` at intermediate `p` (§5.2a — swap's replacements are domain types, so a + vacated type can land on an un-vacated one and no `p`-stable swap avoids it). + """ + if not params.consistent or params.reveal_after: + return False + return vmap.injective_at_every_p or params.p in (0.0, 1.0) + + def id_stream_block( vacated: str, budget_words: list[str], vmap: VacancyMap, params: VacancyParams ) -> dict[str, Any] | None: @@ -293,7 +316,7 @@ def id_stream_block( ``None`` for the control conditions, where the mapped vocabulary is undefined and both stacks raise — see the module docstring. """ - if not params.consistent or params.reveal_after: + if not _mapped_condition(vmap, params): return None mapped = map_vocab_words(budget_words, vmap, params) vocab_p = LexVocab(tuple(mapped), source="dolch", budget_name="full") @@ -323,7 +346,7 @@ def build_case( """ vacated = vacate_text(corpus, vmap, params) stats = vacancy_stats(corpus, vacated, vmap, params) - mapped_condition = params.consistent and not params.reveal_after + mapped_condition = _mapped_condition(vmap, params) return { "label": label, "map": map_label, @@ -337,9 +360,13 @@ def build_case( # controls have DELIBERATELY no stability property, so there is nothing to pin # there and both stacks say so in their own way (TypeScript's single-word # `transformWord` refuses an order-dependent condition outright). + # Stability (§11) is stated for the ORDER-INDEPENDENT conditions, which is a weaker + # requirement than the mapped vocabulary's: `mint="swap"` at intermediate `p` has no + # mapped vocabulary (§5.2a) but its map is still built once and still stable, so its + # surface forms are pinned here exactly as the nonce strategy's are. "stemForms": ( {stem: vmap.apply_word(stem, params) for stem in PINNED_STEMS} - if mapped_condition + if params.consistent and not params.reveal_after else None ), "idStream": id_stream_block(vacated, budget_words, vmap, params), @@ -408,6 +435,7 @@ def build_document(generated: str) -> dict[str, Any]: "characters in Python and JavaScript — re-derive the excerpt before shipping" ) corpus_types = set(tokenize(corpus)) + counts = type_counts(tokenize(corpus)) budget_words = list(dolch_budget("full")) domain = vacancy_domain(corpus_types) domain_set = set(domain) @@ -425,6 +453,8 @@ def build_document(generated: str) -> dict[str, Any]: "label": f"seed{seed}", "seed": seed, "matchProsody": True, + "mint": "nonce", + "injectiveAtEveryP": vmap.injective_at_every_p, "remintRounds": vmap.remint_rounds, "bijective": vmap.bijective, "imageSize": vmap.image_size, @@ -456,6 +486,8 @@ def build_document(generated: str) -> dict[str, Any]: "label": "seed0-noprosody", "seed": 0, "matchProsody": False, + "mint": "nonce", + "injectiveAtEveryP": noprosody.injective_at_every_p, "remintRounds": noprosody.remint_rounds, "bijective": noprosody.bijective, "imageSize": noprosody.image_size, @@ -480,6 +512,56 @@ def build_document(generated: str) -> dict[str, Any]: ) ) + # --- the swap control (§8.3), on its own maps ------------------------------------ + # `mint="swap"` draws a REAL English word from the domain's open-class types by + # frequency rank, so it needs the corpus's counts and it produces a different map at + # every (seed, matchProsody). Pinned by digest plus the 24 sample replacements, like the + # noprosody map above: a sha256 over the canonical form is exactly as strong a check. + # + # The `p` grid here is deliberately {0, 0.7, 1}. §5.2a proves that a map whose images are + # domain types and which does not depend on `p` CANNOT be injective at intermediate `p` + # unless it is the identity, so `swap-p0.7` carries `idStream: null` and + # `mapVocabWordsRejects: true` — measured, and the same refusal both stacks make. The two + # endpoints carry a real id stream, which is SC-703 holding for swap exactly as it does + # for nonce wherever a swap map can be injective at all. + for seed in (0, 7): + for prosody in (True, False): + label = f"swap-seed{seed}" + ("" if prosody else "-noprosody") + base = VacancyParams(seed=seed, mint="swap", match_prosody=prosody) + swap_map = build_vacancy_map(domain, base, counts) + maps.append( + { + "label": label, + "seed": seed, + "matchProsody": prosody, + "mint": "swap", + "injectiveAtEveryP": swap_map.injective_at_every_p, + "remintRounds": swap_map.remint_rounds, + "bijective": swap_map.bijective, + "imageSize": swap_map.image_size, + "domainSize": len(swap_map.domain), + "mappingSize": len(swap_map.mapping), + "mappingSha256": mapping_sha256(dict(swap_map.mapping)), + "mapping": None, + "sampleNonces": { + stem: swap_map.mapping.get(stem) for stem in PINNED_STEMS + }, + } + ) + if not prosody: + continue + for p in (0.0, 0.7, 1.0): + cases.append( + build_case( + f"swap-seed{seed}-p{p}", + label, + corpus, + swap_map, + VacancyParams(seed=seed, p=p, mint="swap"), + budget_words, + ) + ) + # --- the two control conditions (§7.1), each on its OWN map ----------------------- # `consistent = false` writes to `minted_stress`; sharing a map across cases would let # one case's minted patterns score another case's text. @@ -502,6 +584,8 @@ def build_document(generated: str) -> dict[str, Any]: "label": label, "seed": params.seed, "matchProsody": params.match_prosody, + "mint": params.mint, + "injectiveAtEveryP": fresh.injective_at_every_p, "remintRounds": fresh.remint_rounds, "bijective": fresh.bijective, "imageSize": fresh.image_size, diff --git a/specs/007-vacancy-transform-field/architecture.md b/specs/007-vacancy-transform-field/architecture.md index e6e212e..c9f3067 100644 --- a/specs/007-vacancy-transform-field/architecture.md +++ b/specs/007-vacancy-transform-field/architecture.md @@ -294,6 +294,53 @@ disjoint, injectivity holds **simultaneously for every `p`** rather than at `p = On violation, re-mint the offending stems at a higher salt in canonical order and re-check; raise after 8 rounds. +### 5.2a What A and B are standing in for, and what `mint = "swap"` can therefore satisfy + +B is **sufficient, not necessary**. Writing the necessary condition out is what makes the swap +control of §8.3 statable at all, because swap draws its replacements *from* the domain and so +violates B by construction. + +Fix `p` and let `T_p` be the type map: `T_p(t) = surface(t)` when `t`'s stem is eligible and +`u(stem(t)) < p`, and `T_p(t) = t` otherwise. `T_p` is injective for **every** `p` iff both: + +- **A.** the surface forms are pairwise distinct — unchanged; and +- **B′.** for domain types `t₁` (eligible stem) and `t₃`, if `surface(t₁) = t₃` then `t₃`'s stem + is eligible **and** `u(stem(t₃)) < u(stem(t₁))`. + +*Why.* The only way two types can merge is that one moved onto another that had not: an image +`surface(t₁)` colliding with an un-vacated `t₃`. That is possible at some `p` exactly when +`u(stem(t₁)) < p ≤ u(stem(t₃))`, i.e. exactly when `u(stem(t₃)) ≥ u(stem(t₁))` — which B′ forbids. +The case `t₃ = t₁` is included, so B′ also rules out a type that silently fails to vacate (the +`tak → tak` defect of §5.8). Image-on-image collisions are A. + +**B ⟹ B′ vacuously** (B makes B′'s premise unsatisfiable), so nothing about the nonce strategy +changes and nothing in this document about it is weakened. B stays the *enforced* rule for +`mint = "nonce"`: it is cheaper to check, it costs one re-mint on the shipped corpus, and it is +the reason §7.3 holds simultaneously at every `p`. + +**Theorem (why `swap` cannot have that).** Suppose the map is stable in `p` (§5.6) and every +image is a domain type — both true of swap by construction. `T_p` injective for every `p` forces +`T_p` to be a bijection of the domain onto itself, hence to map the vacated set `V_p` onto `V_p`. +The `V_p` are nested and grow one *stem family* at a time, so a bijection mapping every `V_p` +onto itself maps each stem family onto itself: `u(stem(σ(s))) = u(stem(s))`, hence `σ = id`. +**So no non-trivial swap is injective at intermediate `p`.** Measured, to make it concrete rather +than merely proved: the frequency-rank swap below produces 191 / 246 / 190 colliding types at +`p = 0.25 / 0.5 / 0.75` on the shipped corpus, and 0 at `p ∈ {0, 1}`. + +What swap *can* satisfy, and does, is the condition at **full vacancy**, where the un-vacated set +is exactly the ineligible types: + +- **B₁.** no surface form equals an **ineligible** domain type, and no surface form equals its own + source type. + +A + B₁ make `T_1` a bijection of the domain, so the invariance theorem of §7.3 holds for +`mint = "swap"` at `p ∈ {0, 1}` — and *provably cannot* hold at `0 < p < 1`. The engine therefore +**refuses** the mapped vocabulary of §7.2 for `swap` at intermediate `p`, with a typed error +naming this theorem, rather than shipping a vocabulary with two words on one row. `vacateText` +itself is unrestricted: the pretrained arm of §8.3 measures a passage, and a passage does not +need an injective map. `VacancyMap.injectiveAtEveryP` reports which of the two regimes a map is +in — `true` for nonce, `false` for swap — so no caller has to infer it. + ### 5.3 The deterministic byte stream `random.Random` is replaced by a sha256 counter stream, which is trivially identical in both @@ -439,6 +486,11 @@ These were gaps, not choices. Both stacks do it this way or the golden fixture f per-occurrence path of the `consistent = false` control now *draws against* `forbidden`, so it is one unlucky hash away from mattering. Superseded nonces stay forbidden because they were rejected for a reason: reusing one can recreate the very collision the re-mint resolved. + **Both stacks now store it**, and both assert `"wak" ∈ forbidden` at seed 7 — the superseded + nonce of `hang`, which re-minted to `smeeg`. It is the one case the shipped corpus produces, so + it is the one the test names; a reconstruction from `mapping.values()` fails that assertion. + The re-mint loop draws against the same accumulated set, so a re-mint can never hand a stem a + form some other stem has already given up. - **`VacancyMap`'s stem→nonce field is `mapping` in both stacks.** TypeScript called it `map` and Python `mapping`, which is the third naming asymmetry this feature produced (after the missing `vacancyDomain` helper and the `avoid` default) and cost a debugging round for @@ -516,6 +568,7 @@ lines that produce at least one token. | `matchProsody` | bool | `true` | nonce carries the stem's syllable count and stress | | `revealAfter` | int | `0` | first N occurrences of a vacated stem keep the English form | | `keep` | set | `{}` | extra words added to the closed class | +| `mint` | `"nonce"` \| `"swap"` | `"nonce"` | invent the replacement, or draw a real word (§8.3) | `consistent = false` derives the nonce from `(stem, occurrenceIndex)` in document order, so every occurrence is a fresh type. This condition deliberately has **no** stability property; @@ -627,11 +680,34 @@ when content words are vacated: Only (1) is "location". A caveat cannot separate them; a control can. **Swap.** Mint by drawing a *real English word* instead of a nonce form — same eligibility, same -`u(stem) < p` decision, same suffix handling, same map-injectivity guarantee. The replacement is -drawn deterministically from the corpus's own open-class types by **frequency rank**: the stem's -rank `r` among open-class types selects a replacement from a deterministic window around `r`, -excluding the stem itself and anything already used. So the swapped passage is equally -nonsensical, but every form is a known word with ordinary tokenization. +`u(stem) < p` decision, same suffix handling, and the injectivity §5.2a shows is available to it. +The replacement is drawn deterministically from the domain's own open-class **types** by +**frequency rank**: rank the eligible types by `(corpus count descending, type ascending)` — the +tie rule `frequencyBudget` already uses — and let `r` be the stem's rank. Attempt `a` draws an +offset `δ ∈ [-w, -1] ∪ [1, w]` from the byte stream of §5.3 under the tag `swap` (never `mint`, so +the two streams can never alias), and proposes `pool[(r + δ) mod |pool|]`; `w` starts at 32 and +doubles every 64 attempts up to `|pool|`, which is the same deterministic relaxation §5.5 uses and +is needed because "anything already used" depletes a window. A candidate is accepted iff it is not +already used, is not the stem itself, is not a type of the stem's own family, and — while +`a < 1024` and `matchProsody` — carries the stem's stress pattern. So the swapped passage is +equally nonsensical, but every form is a known word with ordinary tokenization. + +Two consequences of drawing from a *finite* pool, stated rather than hidden. The pool is 1 944 +types against 1 680 stems on the shipped corpus, so the tail of the canonical order draws from +what is left and its frequency match degrades; and a source type that carries a suffix may receive +an already-inflected replacement, giving a doubly-inflected surface. 66 % of eligible types are +suffix-free and receive a bare real word. + +The pool must be the *types*, not the stems: the stem set is exactly the set of keys, so drawing +from it would consume the pool exactly and leave a collision with nowhere to move. + +Because the replacements are real English words, they are **not** registered in `mintedStress` — +their stress comes from the table or the rule like any other English word, so `stressFromMinted` +is 0 on both sides of a swap and `stressFromTable`/`stressFromRule` say what they always say. + +`consistent = false` is **refused** under `swap`: that control needs a fresh type per occurrence, +and the corpus has 1 680 open-class stems against 8 202 vacated tokens, so there is no supply. It +raises rather than quietly reusing words and reporting a rate it is not achieving. This makes the minting strategy a parameter: @@ -649,10 +725,16 @@ UI must report it as *that difference*, never `nll(nonce) − nll(english)` alon not separable without a tokenizer-level control and the UI must say so rather than pretend the remainder is pure location. -`mint: "swap"` preserves every property of §7: the map is still injective (verified the same -way), still nested in `p`, still stable in `(seed, stem)`. The invariance theorem of §7.3 -therefore holds for `swap` exactly as for `nonce` — the tiny model is equally blind to both, -which is itself the check that the swap control is implemented correctly. +`mint: "swap"` is still **nested** in `p` (the `u(stem) < p` decision is untouched) and still +**stable** in `(seed, stem)` (the map is built once, in canonical order, independently of `p`). +Injectivity is where it and `nonce` part company, and §5.2a proves why they must: an earlier draft +of this paragraph claimed swap "preserves every property of §7", and that claim is false — a map +whose images are domain types and which does not depend on `p` cannot be injective at intermediate +`p` unless it is the identity. So the invariance theorem of §7.3 holds for `swap` at `p ∈ {0, 1}`, +where it is asserted exactly as for `nonce`, and the mapped vocabulary is refused in between. At +full vacancy the tiny model is exactly as blind to `swap` as to `nonce`, which is the check that +the control is implemented correctly; the pretrained arm measures at full vacancy, so nothing the +control exists for is lost. ### 8.3a What was measured, and what the static build may therefore say diff --git a/specs/007-vacancy-transform-field/spec.md b/specs/007-vacancy-transform-field/spec.md index 41d446a..9c7faa4 100644 --- a/specs/007-vacancy-transform-field/spec.md +++ b/specs/007-vacancy-transform-field/spec.md @@ -148,11 +148,24 @@ separate instrument; none is needed for T4. exactly for strings and id streams. - **SC-707** The pretrained arm produces a `ΔnllPreserved` whose sign and magnitude are reported from a real model run, next to the tiny arm's exact zero. -- **SC-707a** The swap control satisfies the invariance theorem exactly as the nonce strategy - does (contract §8.3) — the tiny model is equally blind to both. This is the check that the - control is implemented correctly, and it is asserted, not assumed. The decomposition - `nll(swap) − nll(english)` and `nll(nonce) − nll(swap)` is reported from a real model run - **in the full stack**, where fp32 makes it measurable. +- **SC-707a** ~~The swap control satisfies the invariance theorem exactly as the nonce strategy + does — the tiny model is equally blind to both.~~ **This claim was false and is retracted.** + It cannot hold, and the reason is a theorem rather than a bug (contract §5.2a): a map that is + stable in `p` and whose images are *domain types* is injective at every `p` only if it is the + identity. `swap` draws its replacements from the domain by construction, so at intermediate + `p` a swapped word can collide with a word not yet vacated — measured at 191 / 246 / 190 + colliding types for `p` = 0.25 / 0.5 / 0.75. + + The corrected criterion, and what is actually asserted: `swap` satisfies the invariance + theorem at **`p ∈ {0, 1}`** — 48 of the 120 SC-703 cases — and the remaining 72 are + **refused with a typed error citing §5.2a**, never silently computed. `nonce` remains + 120/120. The refusal is the deliverable: an instrument that declines the configurations it + cannot support is sound, one that quietly returns a non-injective map is not. + + This costs the pretrained arm nothing, which is the point worth checking rather than + assuming: it scores at full vacancy, where `swap` *is* a bijection of the domain. +- **SC-707c** The decomposition `nll(swap) − nll(english)` and `nll(nonce) − nll(swap)` is + reported from a real model run **in the full stack**, where fp32 makes it measurable. - **SC-707b** The measured 2×2 is reported: a word's form is worth **exactly 0** to the tiny model and **10–20 % of ~1.0 nats** to a pretrained one (contract §8.3a). The static build either states a measured uncertainty for the dtype it ran, or refuses — verified by driving From 1d09552b565985becc7d6966e6ed846b539c941e Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 12:02:05 -0400 Subject: [PATCH 35/38] The pretrained arm: what a word's form is actually worth Completes the doc's T4 2x2 with measured numbers. fp32 backend, 6 pooled corpus excerpts, p=1, differences PAIRED over preserved tokens (identical token counts in all three variants, so they are exactly additive): model wrong content unknown form total pairs gpt2 0.717 +- 0.054 0.273 +- 0.041 0.989 847 SmolLM2-135M 0.830 +- 0.052 0.160 +- 0.035 0.990 859 Qwen2.5-0.5B 0.990 +- 0.059 0.222 +- 0.040 1.212 823 So a word's FORM is 16-28% of the damage and its CONTENT is the rest. Beside it sits the tiny arm's exact 0: the same transform is worth nothing at all to a model with no locations, and a fifth of a nat to one that has them. That pair is the whole instrument. `nonce - english` is returned but flagged headline:false, because on its own it conflates the two. A recommendation inherited from the earlier quantization study did not survive contact with the shipping configuration. That study proposed stating +-0.1 nats; measured here on real static q8 with byte-identical tokenization, the cross-stack gap was 0.073 and 0.110 -- so the number would have been violated by its own first comparison. The stated uncertainty is +-0.2, about twice the largest gap actually observed, with the derivation in the constant's docstring. Static mode refuses, each with a typed error naming the full stack: nonce - swap (14% error measured on this very configuration), every absolute NLL, every per-passage row, any dtype outside q8, and any pooling under 700 preserved tokens. Also fixes default_passages, which was cutting excerpts from the book's alphabetical index of first lines -- the same front-matter trap the Lexicon Lab panel hit, now skipped by the measured boundary in both places. backend 462 pytest, ruff + black clean; frontend 453 vitest, svelte-check 0/0; e2e chromium 2, static 1. Co-Authored-By: Claude Opus 5 (1M context) --- .../src/llm_geometry/api/routes_arch.py | 59 ++ .../src/llm_geometry/arch/vacancy_score.py | 665 ++++++++++++++++++ code/backend/tests/contract/test_api_arch.py | 67 ++ .../integration/test_arch_vacancy_score.py | 157 +++++ .../tests/unit/test_arch_vacancy_align.py | 149 ++++ code/frontend/src/lib/dataClient.ts | 93 +++ code/frontend/src/lib/staticClient/arch.ts | 529 +++++++++++++- .../src/lib/staticClient/byteSpans.ts | 153 ++++ code/frontend/src/lib/staticClient/index.ts | 6 + .../src/lib/staticClient/runtimeTypes.ts | 21 + .../lib/staticClient/transformersRuntime.ts | 82 ++- .../src/viz/arch/ArchitectureExplorer.svelte | 6 + .../src/viz/arch/VacancyScorePanel.svelte | 648 +++++++++++++++++ code/frontend/tests/e2e/archVacancy.spec.ts | 114 +++ code/frontend/tests/e2e/static.spec.ts | 48 ++ .../tests/fixtures/arch-vacancy-passages.json | 50 ++ code/frontend/tests/unit/archVacancy.test.ts | 212 ++++++ code/frontend/tests/unit/staticClient.test.ts | 7 + .../feature-007/arch-vacancy-score.png | Bin 0 -> 246440 bytes .../arch-vacancy-static-refusals.png | Bin 0 -> 362628 bytes scripts/export_arch_vacancy_golden.py | 69 ++ 21 files changed, 3133 insertions(+), 2 deletions(-) create mode 100644 code/backend/src/llm_geometry/arch/vacancy_score.py create mode 100644 code/backend/tests/integration/test_arch_vacancy_score.py create mode 100644 code/backend/tests/unit/test_arch_vacancy_align.py create mode 100644 code/frontend/src/lib/staticClient/byteSpans.ts create mode 100644 code/frontend/src/viz/arch/VacancyScorePanel.svelte create mode 100644 code/frontend/tests/e2e/archVacancy.spec.ts create mode 100644 code/frontend/tests/fixtures/arch-vacancy-passages.json create mode 100644 code/frontend/tests/unit/archVacancy.test.ts create mode 100644 docs/screenshots/feature-007/arch-vacancy-score.png create mode 100644 docs/screenshots/feature-007/arch-vacancy-static-refusals.png create mode 100644 scripts/export_arch_vacancy_golden.py diff --git a/code/backend/src/llm_geometry/api/routes_arch.py b/code/backend/src/llm_geometry/api/routes_arch.py index f9a1794..a529def 100644 --- a/code/backend/src/llm_geometry/api/routes_arch.py +++ b/code/backend/src/llm_geometry/api/routes_arch.py @@ -20,7 +20,9 @@ from pydantic import BaseModel from ..arch import build_graph, check_model_size, generate, trace_forward, weight_window +from ..arch.vacancy_score import vacancy_score from ..config import ARCH_DEFAULT_MAX_CONTEXT, ARCH_WEIGHTS_MAX_CELLS +from ..errors import InvalidParamError from .encoding import jsonable_6sig router = APIRouter(prefix="/arch", tags=["arch"]) @@ -57,6 +59,27 @@ class GenerateBody(BaseModel): seed: int | None = None +class VacancyScoreBody(BaseModel): + """`POST /api/arch/vacancy-score` request body (feature 007, contract §8). + + `passages` defaults to the six evenly spaced excerpts of the shipped corpus the + measurement of §8.3a used, so an empty request reproduces the reference configuration. + `passage` is the singular sugar the panel uses when a reader edits one excerpt. + + The transform's other knobs are deliberately absent: `consistent` and `reveal_after` + are fixed at the theorem's condition, because the number this endpoint produces is + only interpretable beside the tiny arm's exact zero, and that zero holds only there. + """ + + model_id: str + passage: str | None = None + passages: list[str] | None = None + p: float = 1.0 + seed: int = 0 + match_prosody: bool = True + keep: list[str] = [] + + @router.get("/graph") def arch_graph(model_id: str) -> dict[str, Any]: """The cached traced architecture graph (nodes/edges/meta/schema_version).""" @@ -107,3 +130,39 @@ def arch_generate(body: GenerateBody) -> dict[str, Any]: seed=body.seed, ) ) + + +@router.post("/vacancy-score") +def arch_vacancy_score(body: VacancyScoreBody) -> dict[str, Any]: + """What a word's FORM is worth to a model that has one for it (contract §8). + + Three variants of each passage — English, a real-word swap, and nonce — are scored by + three real forward passes each, and the mean NLL over the tokens of the words that + survive all three is reported per variant, together with the two differences that + decompose the damage: `nll(swap) − nll(english)` is the cost of **wrong content**, + `nll(nonce) − nll(swap)` the cost of **unknown form**. `nll(nonce) − nll(english)` + is returned but flagged `headline: false` — it is their sum and conflates them. + + This is the full stack, at float32, so it reports everything. The static build runs a + quantized export and may report only what the measurement of §8.3a bounded for that + dtype; it refuses the rest by name rather than inventing an error bar. + """ + _gate(body.model_id) + if body.passage is not None and body.passages is not None: + raise InvalidParamError( + "send either `passage` (one) or `passages` (several), not both — they would " + "silently disagree about what was scored" + ) + passages = body.passages + if body.passage is not None: + passages = [body.passage] + return _sig6( + vacancy_score( + body.model_id, + passages, + p=body.p, + seed=body.seed, + match_prosody=body.match_prosody, + keep=frozenset(body.keep), + ) + ) diff --git a/code/backend/src/llm_geometry/arch/vacancy_score.py b/code/backend/src/llm_geometry/arch/vacancy_score.py new file mode 100644 index 0000000..51dc68c --- /dev/null +++ b/code/backend/src/llm_geometry/arch/vacancy_score.py @@ -0,0 +1,665 @@ +"""The pretrained arm of the vacancy instrument (contract §8). + +What this measures, in one sentence: **does a model that knows English still predict the +closed-class scaffolding when the content words have been vacated?** The scaffolding is +character-identical across the variants, so the same words — very often the same token +ids, at the same word positions — are scored in each, and the difference is attributable +to what happened around them. + +Three variants of one passage are scored (§8.3): + +* ``english`` — the passage as written; +* ``swap`` — every vacated stem replaced by a REAL, frequency-rank-matched English + word. Equally nonsensical, ordinarily tokenized, every form known; +* ``nonce`` — every vacated stem replaced by a phonotactically legal invention. + +and the two differences that are worth anything are the *labelled* ones: + +* ``nll(swap) − nll(english)`` — the cost of **wrong content**; +* ``nll(nonce) − nll(swap)`` — the cost of **unknown form**. + +``nll(nonce) − nll(english)`` is never a headline: it is the sum of the two and conflates +them. The second difference is also only an UPPER BOUND on what a word's *location* was +worth, because nonce forms fragment into more subword tokens than real words do and that +residual is not separable without a tokenizer-level control (§8.3, ``UNKNOWN_FORM_NOTE``). + +ALIGNMENT (§8.2, FR-718). Tokens are attributed to words by **UTF-8 byte spans** derived +from the tokenizer's byte-level pieces, never by "characters": + +* transformers.js exposes no offsets at all, so HF's ``return_offsets_mapping`` is not a + mechanism the two stacks can share; +* per-token decoding emits U+FFFD and destroys the text on any split multi-byte character, + in both stacks; +* Python indexes code points where JavaScript indexes UTF-16 units, so the two disagree on + the same string (31 vs 32 for one probe text) — bytes are the only safe contract unit; +* HF's own offsets OVERLAP on multi-byte characters, so per-token quantities summed over a + word would be double-counted; the byte spans are a true partition. + +Every step is verified rather than trusted: the concatenated token bytes must equal +``utf8(text)`` exactly, and a mismatch RAISES (never mis-attributes). The input is +NFC-normalized once up front because Qwen's tokenizer carries an NFC normalizer while +gpt2's and SmolLM2's do not — without that, a decomposed character silently shifts every +span after it, and the check above would fire on a passage that is perfectly fine. +""" + +from __future__ import annotations + +import math +import unicodedata +from dataclasses import dataclass +from functools import lru_cache +from typing import Any + +import torch + +from ..errors import ComputeError, InvalidParamError +from ..lex.vacancy import ( + VacancyParams, + build_vacancy_map, + type_counts, + vacancy_domain, + vacate_text, +) +from ..lex.vocab import WORD_RE, tokenize +from ..models.loader import LoadedModel, load_model +from .tracing import _TRACE_LOCK + +#: The three variants, in the order the UI reads them. ``english`` is the reference; +#: ``swap`` sits between the other two by construction, which is what makes the +#: decomposition of §8.3 a decomposition rather than two unrelated numbers. +VARIANTS: tuple[str, ...] = ("english", "swap", "nonce") + +#: `mint` values for the two vacated variants (§8.3). ``english`` is not minted at all. +VARIANT_MINT: dict[str, str] = {"swap": "swap", "nonce": "nonce"} + +#: Ceiling on the passages accepted in one request. Each one costs three real forward +#: passes; the measurement of §8.3a used six. +MAX_PASSAGES = 12 + +#: Words per default passage, and how many of them — the shape of the run the numbers in +#: §8.3a come from, so the panel's default reproduces the measured configuration. +DEFAULT_PASSAGE_WORDS = 250 +DEFAULT_PASSAGE_COUNT = 6 + +#: Fraction of the shipped corpus's 250-word blocks that are front matter (title page + +#: the alphabetical index of first lines). Measured: the index ends in block 11 of 63. +FRONT_MATTER_FRACTION = 0.2 + +#: Verbatim in the response, and rendered by the panel. The residual is stated, not hidden. +UNKNOWN_FORM_NOTE = ( + "Nonce forms fragment into more subword tokens than real words do, so this difference " + "is the cost of an unknown form TOGETHER WITH the cost of a stranger, longer context. " + "The two are not separable without a tokenizer-level control, so treat this as an " + "UPPER BOUND on what a word's location was worth — never as pure location." +) + +#: The entropy confound (§8.4), stated wherever a delta is. +CONFOUND_NOTE = ( + "A vacated passage genuinely has higher entropy, so every prediction inside it gets " + "worse — the scaffolding included. A positive difference is therefore expected, not a " + "surprise: its MAGNITUDE is the result, and it is only interpretable against the tiny " + "arm's exact zero." +) + +#: The tiny arm's side of the 2×2 (§7.3, §8.3a). Not a measurement made here — it is the +#: Lexicon Lab's, restated so the panel can put the two numbers side by side, which is the +#: entire reason this panel exists. +TINY_ARM = { + "delta_nats": 0.0, + "exact": True, + "label": "the same measurement on a model with no locations", + "note": ( + "For the from-scratch word-level GeoTransformer of the Lexicon Lab, the vacancy " + "transform is a pure relabelling of the vocabulary: with consistent=true and " + "revealAfter=0 the token id stream is element-for-element identical, so the " + "training loss is bit-identical and a word's FORM is worth exactly 0. That is not " + "a rounding — it is an identity, and it is asserted in that tab, not assumed." + ), +} + + +# --- byte-level alignment (§8.2) ---------------------------------------------------------- + + +@lru_cache(maxsize=1) +def byte_decoder() -> dict[str, int]: + """GPT-2's unicode→byte table: the inverse of ``bytes_to_unicode``. + + Byte-level BPE renders every byte as a printable character so the vocabulary is + text; this undoes that, which is what turns a piece into a byte count and therefore + into a span. All four curated models use a byte-level BPE, and a piece carrying a + character outside this table is a tokenizer this code has not been verified against — + so it raises rather than guessing a width. + """ + bs = ( + list(range(ord("!"), ord("~") + 1)) + + list(range(0xA1, 0xAC + 1)) + + list(range(0xAE, 0xFF + 1)) + ) + cs = list(bs) + n = 0 + for b in range(256): + if b not in bs: + bs.append(b) + cs.append(256 + n) + n += 1 + return {chr(c): b for c, b in zip(cs, bs)} + + +def token_byte_spans(pieces: list[str], text: str) -> list[tuple[int, int]]: + """``[start, end)`` UTF-8 byte range owned by each token, verified by reconstruction. + + The spans tile ``utf8(text)`` exactly once — contiguous, covering, non-overlapping — + so a per-token quantity may be summed over a word without double-counting. A token + that is a bare continuation byte gets a degenerate empty span, which is the honest + answer for it; it still resolves to the right word because its start byte lies strictly + inside the multi-byte character it continues. + + Raises ``ComputeError`` if the reconstruction is not byte-identical to the input + (FR-718). There is no fallback: a wrong span silently attributes a token to the wrong + word, which would corrupt the very number this module exists to report. + """ + table = byte_decoder() + spans: list[tuple[int, int]] = [] + rebuilt = bytearray() + cursor = 0 + for i, piece in enumerate(pieces): + try: + raw = bytes(table[c] for c in piece) + except KeyError as exc: + raise ComputeError( + f"token {i} ({piece!r}) contains a character outside the byte-level BPE " + "table, so its byte width cannot be determined", + {"index": i, "piece": piece}, + ) from exc + rebuilt += raw + spans.append((cursor, cursor + len(raw))) + cursor += len(raw) + + expected = text.encode("utf-8") + if bytes(rebuilt) != expected: + raise ComputeError( + "token→text alignment failed: the concatenated byte-level pieces do not " + f"reproduce the passage ({len(rebuilt)} bytes rebuilt vs {len(expected)} " + "expected). Refusing to attribute tokens to words rather than mis-attribute " + "them.", + {"rebuilt_bytes": len(rebuilt), "text_bytes": len(expected)}, + ) + return spans + + +@dataclass(frozen=True) +class WordSpan: + """One ``WORD_RE`` match of a passage, in UTF-8 byte coordinates.""" + + index: int + word: str + start: int + end: int + + +def word_spans(text: str) -> list[WordSpan]: + """Every word of `text`, in byte coordinates, using the TOKENIZER'S OWN regex. + + The same ``WORD_RE`` the vacancy transform rewrites with, so a word here is exactly a + word there — otherwise the two would disagree about ``good-bye`` and the preserved set + would not be the set that was actually preserved. + """ + out: list[WordSpan] = [] + for i, m in enumerate(WORD_RE.finditer(text)): + start = len(text[: m.start()].encode("utf-8")) + out.append(WordSpan(i, m.group(0), start, start + len(m.group(0).encode("utf-8")))) + return out + + +def preserved_token_indices( + spans: list[tuple[int, int]], + words: list[WordSpan], + preserved: frozenset[int], +) -> list[int]: + """Indices of the tokens belonging to a PRESERVED word. + + A token belongs to a word when their byte ranges **overlap** — not "starts inside". + Byte-level BPE folds a word's leading space into the word's own token, so the token + that *is* the function word starts one byte before the word does; the start rule would + drop nearly every one of them. + + A token overlapping words with different preserved-ness cannot be attributed, and that + RAISES. It cannot happen with the byte-level pretokenizers of the curated models + (each token lies within one word plus its leading whitespace), so if it ever does, the + assumption behind this whole attribution has changed and the number must not be + reported (§8.2). + """ + out: list[int] = [] + for i, (a, b) in enumerate(spans): + hits = [w for w in words if a < w.end and b > w.start] + if not hits: + continue # punctuation, whitespace, line breaks — scored, attributed to no word + flags = {w.index in preserved for w in hits} + if len(flags) > 1: + raise ComputeError( + f"token {i} spans both a preserved and a vacated word " + f"({', '.join(repr(w.word) for w in hits)}); refusing to attribute it", + {"index": i, "words": [w.word for w in hits]}, + ) + if flags == {True}: + out.append(i) + return out + + +# --- the three variants (§8.3) ------------------------------------------------------------ + + +def _params(p: float, seed: int, match_prosody: bool, keep: frozenset[str], mint: str) -> Any: + """`VacancyParams` for one variant, with the swap control wired in when it exists. + + `mint` is the newest knob of §7.1 and lands with the transform itself. Rather than + silently scoring the nonce variant twice if it is not there yet — which would report a + 'cost of wrong content' of ~0 and look like a finding — this raises and names the + control that is missing. + """ + if mint not in VARIANT_MINT.values(): + raise InvalidParamError(f"mint must be one of {sorted(set(VARIANT_MINT.values()))}") + fields = {f.name for f in VacancyParams.__dataclass_fields__.values()} + if "mint" not in fields: + raise ComputeError( + "this build's vacancy transform has no `mint` parameter, so the swap control " + "of contract §8.3 does not exist and the decomposition cannot be computed", + {"available": sorted(fields)}, + ) + return VacancyParams( + p=float(p), + seed=int(seed), + consistent=True, + match_prosody=bool(match_prosody), + reveal_after=0, + keep=frozenset(keep), + mint=mint, + ) + + +def variant_texts( + passage: str, + *, + p: float, + seed: int, + match_prosody: bool, + keep: frozenset[str], +) -> dict[str, str]: + """The passage and its two vacated twins, keyed by variant name. + + The map is built over ``vacancy_domain(passage types)`` — the passage's own types plus + the full Dolch list — exactly as everywhere else, so the nonce a stem gets here is the + nonce it gets in the Lexicon Lab for the same seed. + + `consistent=True` and `reveal_after=0` are not options here: they are the condition the + invariance theorem is stated for, and the whole point of this panel is to put the tiny + arm's exact zero (which holds only there) beside the pretrained number. + """ + tokens = tokenize(passage) + domain = vacancy_domain(tokens) + counts = type_counts(tokens) + texts = {"english": passage} + for variant, mint in VARIANT_MINT.items(): + params = _params(p, seed, match_prosody, keep, mint) + # `counts` is the passage's own type frequencies: the swap control ranks the + # replacement pool by them (§8.3), and the nonce strategy ignores them entirely. + vmap = build_vacancy_map(domain, params, counts) + texts[variant] = vacate_text(passage, vmap, params) + return texts + + +def preserved_word_indices(texts: dict[str, str]) -> tuple[list[WordSpan], frozenset[int]]: + """Word spans of the English passage, and the indices PRESERVED in every variant. + + "Preserved" is character identity across all three variants, which is stronger than + "closed class": it also covers eligible stems the `u(stem) < p` decision happened to + spare, and it is exactly the property §8.1 relies on ("character-identical in both + passages"). Restricting all three NLLs to the SAME word set is what makes them + comparable at all. + + The transform guarantees each rewritten word is itself a single complete ``WORD_RE`` + match, so the variants have the same word count in the same order; a mismatch means + that guarantee broke and it raises rather than aligning by luck. + """ + per_variant = {name: word_spans(text) for name, text in texts.items()} + counts = {name: len(spans) for name, spans in per_variant.items()} + if len(set(counts.values())) != 1: + raise ComputeError( + "the variants do not have the same number of words, so preserved words " + f"cannot be aligned: {counts}", + {"word_counts": counts}, + ) + english = per_variant["english"] + preserved = frozenset( + w.index for w in english if all(per_variant[name][w.index].word == w.word for name in texts) + ) + return english, preserved + + +# --- scoring ------------------------------------------------------------------------------ + + +@dataclass(frozen=True) +class ScoredText: + """One real forward pass over one variant of one passage.""" + + text: str + n_tokens: int # tokens in the passage (position 0 has no prediction) + nll: list[float] # nats, index i = cost of predicting token i given tokens < i + preserved: list[int] # indices into `nll` (all > 0) of preserved-word tokens + + @property + def scored(self) -> list[float]: + return self.nll[1:] + + +def _max_positions(lm: LoadedModel) -> int | None: + config = getattr(lm.model, "config", None) + for attr in ("max_position_embeddings", "n_positions", "n_ctx"): + value = getattr(config, attr, None) + if isinstance(value, int) and value > 0: + return value + return None + + +def score_text( + lm: LoadedModel, text: str, words: list[WordSpan], preserved: frozenset[int] +) -> ScoredText: + """Per-token NLL from ONE teacher-forced forward pass, plus the preserved indices. + + No special tokens and no chat template: this scores the passage as written, so that + the three variants differ by the transform and by nothing else. Position 0 has no + prediction and is excluded everywhere — it is not a zero, it is absent. + """ + tokenizer = lm.tokenizer + enc = tokenizer(text, return_tensors="pt", add_special_tokens=False) + ids = enc["input_ids"] + n = int(ids.shape[1]) + if n < 2: + raise InvalidParamError( + f"a passage must tokenize to at least 2 tokens to be scored, got {n}" + ) + limit = _max_positions(lm) + if limit is not None and n > limit: + raise InvalidParamError( + f"the passage tokenizes to {n} tokens but {lm.model_id} has a context of " + f"{limit}. Shorten the passage (or split it across several) — this " + "measurement is one forward pass over the whole thing, never a truncation, " + "because a truncated variant would be scoring different text.", + {"n_tokens": n, "max_context": limit}, + ) + + pieces = tokenizer.convert_ids_to_tokens(ids[0].tolist()) + spans = token_byte_spans(list(pieces), text) + preserved_idx = [i for i in preserved_token_indices(spans, words, preserved) if i > 0] + + with _TRACE_LOCK, torch.no_grad(): + out = lm.model(input_ids=ids, attention_mask=enc["attention_mask"]) + logprobs = torch.log_softmax(out.logits[0].float(), dim=-1) + targets = ids[0, 1:] + per_token = -logprobs[:-1].gather(1, targets.unsqueeze(1)).squeeze(1) + nll = [math.nan] + [float(v) for v in per_token] + return ScoredText(text=text, n_tokens=n, nll=nll, preserved=preserved_idx) + + +def _mean(values: list[float]) -> float: + if not values: + raise ComputeError("no tokens to average — the passage has no scored positions") + return sum(values) / len(values) + + +def _stats(scored: ScoredText) -> dict[str, Any]: + """The fields of §8.1 for one scored variant. + + ``nTokens`` is the number of SCORED positions (every token but the first), because it + is the count ``nllAll`` averages over — which is what makes + ``bitsPerChar = nllAll · nTokens / (ln 2 · nChars)`` the passage's total surprisal + per character rather than an off-by-one approximation of it. + """ + all_nll = scored.scored + n_chars = len(scored.text) + nll_all = _mean(all_nll) + return { + "nllPreserved": _mean([scored.nll[i] for i in scored.preserved]), + "nllAll": nll_all, + "bitsPerChar": nll_all * len(all_nll) / (math.log(2.0) * n_chars) if n_chars else 0.0, + "nTokens": len(all_nll), + "nPreservedTokens": len(scored.preserved), + "nChars": n_chars, + } + + +def _pooled(scores: list[ScoredText]) -> dict[str, Any]: + """§8.1's fields over several passages, pooled at the TOKEN level. + + Token-weighted, never a mean of means: a passage with twice the tokens carries twice + the weight, which is the only pooling for which the pooled `nllPreserved` is the mean + surprisal of a preserved token and the measured quantization bound applies. + """ + all_nll = [v for s in scores for v in s.scored] + preserved = [s.nll[i] for s in scores for i in s.preserved] + n_chars = sum(len(s.text) for s in scores) + nll_all = _mean(all_nll) + return { + "nllPreserved": _mean(preserved), + "nllAll": nll_all, + "bitsPerChar": nll_all * len(all_nll) / (math.log(2.0) * n_chars) if n_chars else 0.0, + "nTokens": len(all_nll), + "nPreservedTokens": len(preserved), + "nChars": n_chars, + } + + +def _paired_difference(a: list[ScoredText], b: list[ScoredText], label: str) -> dict[str, Any]: + """``mean(nll_b − nll_a)`` over preserved tokens, PAIRED, with its standard error. + + The pairing is exact and is not an assumption: preserved words are character-identical + across variants, and the curated models' pretokenizers never merge across a word + boundary, so each preserved word yields the same pieces in every variant and the + preserved token lists correspond one-for-one. That is checked here; if it ever fails, + the difference is refused rather than computed over mismatched tokens. + + Pairing also removes the between-token variance — the same function word is compared + with itself in the other condition — which is what makes a standard error on an effect + of ~0.1 nats worth printing at all. + """ + diffs: list[float] = [] + for sa, sb in zip(a, b): + if len(sa.preserved) != len(sb.preserved): + raise ComputeError( + f"{label}: the variants have {len(sa.preserved)} and {len(sb.preserved)} " + "preserved tokens, so they cannot be paired", + {"a": len(sa.preserved), "b": len(sb.preserved)}, + ) + for ia, ib in zip(sa.preserved, sb.preserved): + diffs.append(sb.nll[ib] - sa.nll[ia]) + n = len(diffs) + mean = _mean(diffs) + if n > 1: + var = sum((d - mean) ** 2 for d in diffs) / (n - 1) + se = math.sqrt(var / n) + else: + se = math.nan + return {"nats": mean, "se": se, "nPairs": n} + + +# --- default passages --------------------------------------------------------------------- + + +def default_passages( + count: int = DEFAULT_PASSAGE_COUNT, words: int = DEFAULT_PASSAGE_WORDS +) -> list[str]: + """Evenly spaced excerpts of the shipped corpus — the measured configuration (§8.3a). + + Contiguous whole lines, so verse structure survives, and the front matter is skipped: + *The Real Mother Goose* opens with a title page and an alphabetical index of first + lines, and a "passage" cut from that is a column of titles rather than English. It + would raise every condition's NLL together and dilute the contrast with text that is + not the thing being measured. MEASURED on the shipped corpus: the index runs to block + 11 of 63, so :data:`FRONT_MATTER_FRACTION` of the blocks are dropped. The constant is + corpus-specific on purpose — this function only ever reads the shipped corpus, and a + detector for "is this an index?" that worked on one book and silently mis-fired on the + next would be worse than a measured number with its measurement written down. + + Deterministic: the same corpus gives the same passages, which is what lets the panel's + default reproduce the run the reference numbers came from, and what the cross-stack + digest fixture pins. + """ + from ..lex.corpus import load_corpus_text + + text = unicodedata.normalize("NFC", load_corpus_text()) + blocks: list[str] = [] + current: list[str] = [] + n = 0 + for line in text.split("\n"): + current.append(line) + n += len(WORD_RE.findall(line)) + if n >= words: + blocks.append("\n".join(current).strip("\n")) + current, n = [], 0 + if not blocks: + raise ComputeError("the shipped corpus produced no passage of the requested size") + start = max(1, round(len(blocks) * FRONT_MATTER_FRACTION)) + step = max(1, (len(blocks) - start) // max(1, count)) + out = [blocks[min(start + i * step, len(blocks) - 1)] for i in range(count)] + return out + + +# --- the endpoint's computation ----------------------------------------------------------- + + +def vacancy_score( + model_id: str, + passages: list[str] | None = None, + *, + p: float = 1.0, + seed: int = 0, + match_prosody: bool = True, + keep: frozenset[str] = frozenset(), +) -> dict[str, Any]: + """Score every variant of every passage and return the payload of §8.1 and §8.3. + + One real forward pass per (passage, variant) — 3n passes in total — on the real + pretrained weights at float32. Nothing here is cached across requests: the passages + are user text and the whole computation is a few seconds of CPU on the curated + models. + """ + if passages is None: + passages = default_passages() + if not isinstance(passages, list) or not passages: + raise InvalidParamError("passages must be a non-empty list of strings") + if len(passages) > MAX_PASSAGES: + raise InvalidParamError( + f"at most {MAX_PASSAGES} passages per request, got {len(passages)}; each one " + "costs three real forward passes" + ) + for passage in passages: + if not isinstance(passage, str) or not passage.strip(): + raise InvalidParamError("every passage must be a non-empty string") + if not 0.0 <= float(p) <= 1.0: + raise InvalidParamError(f"p must lie in [0, 1], got {p!r}") + + # NFC once, up front, and everything downstream indexes THIS string (§8.2). Qwen's + # tokenizer normalizes internally and the others do not; without this the byte-span + # check would fire on a passage that is perfectly well formed. + normalized = [unicodedata.normalize("NFC", passage) for passage in passages] + + lm = load_model(model_id) + scored: dict[str, list[ScoredText]] = {name: [] for name in VARIANTS} + per_passage: list[dict[str, Any]] = [] + for index, passage in enumerate(normalized): + texts = variant_texts(passage, p=p, seed=seed, match_prosody=match_prosody, keep=keep) + words, preserved = preserved_word_indices(texts) + if not preserved: + raise ComputeError( + f"passage {index} has no word that survives the transform, so there is no " + "scaffolding to score. Lower p, or use a passage with closed-class words.", + {"passage": index}, + ) + row: dict[str, Any] = { + "index": index, + "nWords": len(words), + "nPreservedWords": len(preserved), + "variants": {}, + } + for name in VARIANTS: + # The preserved WORD indices are the English passage's; each variant's own + # word spans are recomputed because a nonce is a different number of bytes. + variant_words = word_spans(texts[name]) + result = score_text(lm, texts[name], variant_words, preserved) + scored[name].append(result) + row["variants"][name] = _stats(result) + per_passage.append(row) + + differences = [ + { + "id": "wrong_content", + "label": "the cost of wrong content", + "expr": "nll(swap) − nll(english)", + "headline": True, + **_paired_difference(scored["english"], scored["swap"], "swap − english"), + }, + { + "id": "unknown_form", + "label": "the cost of unknown form", + "expr": "nll(nonce) − nll(swap)", + "headline": True, + "upperBound": True, + "note": UNKNOWN_FORM_NOTE, + **_paired_difference(scored["swap"], scored["nonce"], "nonce − swap"), + }, + { + # Reported, never headlined (§8.3): it is the SUM of the two above, so + # showing it as "what location was worth" would credit the cost of nonsense + # to the cost of an unknown word. It is here because it is the one contrast + # the quantized static build has a measured bound for. + "id": "total", + "label": "both costs together", + "expr": "nll(nonce) − nll(english)", + "headline": False, + "note": ( + "The sum of the two differences above. It conflates wrong content with " + "unknown form and is never the headline." + ), + **_paired_difference(scored["english"], scored["nonce"], "nonce − english"), + }, + ] + + return { + "model_id": lm.model_id, + "revision": lm.revision, + # What actually ran, so a reader never has to guess which error bounds apply. + "stack": "backend", + "dtype": "float32", + "p": float(p), + "seed": int(seed), + "match_prosody": bool(match_prosody), + "keep": sorted(keep), + "alignment": { + "mechanism": "byte-level pieces → UTF-8 byte spans", + "unit": "utf8_bytes", + "verified": True, + "note": ( + "Token→word attribution is verified at run time by reconstructing the " + "passage from the token byte spans; a mismatch raises rather than " + "mis-attributing." + ), + }, + "variants": [ + { + "id": name, + "pooled": _pooled(scored[name]), + "preview": scored[name][0].text[:400], + } + for name in VARIANTS + ], + # The English passages exactly as scored (NFC-normalized), so the panel can show + # the reader the text the number came from and let them edit it. Without this the + # default set would be a black box the UI could only describe. + "passages_used": normalized, + "differences": differences, + "passages": per_passage, + "tiny_arm": TINY_ARM, + "confound": CONFOUND_NOTE, + } diff --git a/code/backend/tests/contract/test_api_arch.py b/code/backend/tests/contract/test_api_arch.py index 1d4432d..df82130 100644 --- a/code/backend/tests/contract/test_api_arch.py +++ b/code/backend/tests/contract/test_api_arch.py @@ -308,3 +308,70 @@ def test_generate_oversized_model_is_422_envelope(): ) assert resp.status_code == 422 assert resp.json()["error"]["type"] == "ModelTooLargeError" + + +# --- POST /api/arch/vacancy-score (feature 007, contract §8) ------------------------- + + +VACANCY_PASSAGE = ( + "Little Jack Horner sat in a corner,\n" + "Eating a Christmas pie;\n" + "He put in his thumb, and pulled out a plum,\n" + "And said, What a good boy am I!\n" + "Hey diddle diddle, the cat and the fiddle,\n" + "The cow jumped over the moon;\n" + "The little dog laughed to see such sport,\n" + "And the dish ran away with the spoon.\n" +) + + +def _vacancy(payload): + return client.post("/api/arch/vacancy-score", json={"model_id": MODEL, **payload}) + + +def test_vacancy_score_shape_and_the_labelled_decomposition(): + resp = _vacancy({"passage": VACANCY_PASSAGE, "p": 1.0, "seed": 0}) + assert resp.status_code == 200 + body = resp.json() + + assert [v["id"] for v in body["variants"]] == ["english", "swap", "nonce"] + for v in body["variants"]: + stats = v["pooled"] + assert stats["nllPreserved"] == sig6(stats["nllPreserved"]) + assert stats["nPreservedTokens"] > 0 + # Every variant scores the SAME scaffolding — the property the deltas rest on. + assert len({v["pooled"]["nPreservedTokens"] for v in body["variants"]}) == 1 + + by_id = {d["id"]: d for d in body["differences"]} + assert by_id["wrong_content"]["expr"] == "nll(swap) − nll(english)" + assert by_id["unknown_form"]["expr"] == "nll(nonce) − nll(swap)" + # The conflated difference is present but explicitly NOT a headline (§8.3). + assert by_id["total"]["expr"] == "nll(nonce) − nll(english)" + assert by_id["total"]["headline"] is False + assert by_id["unknown_form"]["upperBound"] is True + + # The full stack reports everything: per-passage rows, and the tiny arm's exact 0. + assert len(body["passages"]) == 1 + assert body["tiny_arm"]["delta_nats"] == 0.0 + assert body["dtype"] == "float32" + assert body["alignment"]["unit"] == "utf8_bytes" + + +def test_vacancy_score_rejects_both_passage_and_passages(): + resp = _vacancy({"passage": VACANCY_PASSAGE, "passages": [VACANCY_PASSAGE]}) + assert resp.status_code == 400 + assert resp.json()["error"]["type"] == "InvalidParamError" + + +def test_vacancy_score_bad_p_is_400_envelope(): + resp = _vacancy({"passage": VACANCY_PASSAGE, "p": 2.0}) + assert resp.status_code == 400 + assert resp.json()["error"]["type"] == "InvalidParamError" + + +def test_vacancy_score_oversized_model_is_422_envelope(): + resp = client.post( + "/api/arch/vacancy-score", json={"model_id": TOO_BIG, "passage": VACANCY_PASSAGE} + ) + assert resp.status_code == 422 + assert resp.json()["error"]["type"] == "ModelTooLargeError" diff --git a/code/backend/tests/integration/test_arch_vacancy_score.py b/code/backend/tests/integration/test_arch_vacancy_score.py new file mode 100644 index 0000000..76e8116 --- /dev/null +++ b/code/backend/tests/integration/test_arch_vacancy_score.py @@ -0,0 +1,157 @@ +"""The pretrained arm, end to end on a REAL model (contract §8, FR-717/719/719a). + +Runtime cost: `gpt2` (124M, float32, CPU) over ONE ~250-word passage is three forward +passes of ~350 tokens — about 1 s once the weights are cached, ~10 s on a cold cache +including the download. The measurement of §8.3a pools six passages; one is enough to +assert every structural property, and the six-passage run is what the panel does. +""" + +from __future__ import annotations + +import math + +import pytest + +from llm_geometry.arch.vacancy_score import ( + VARIANTS, + default_passages, + vacancy_score, +) +from llm_geometry.errors import InvalidParamError + +MODEL = "gpt2" # the smallest curated model, and one of the two §8.3a measured + + +@pytest.fixture(scope="module") +def scored() -> dict: + return vacancy_score(MODEL, default_passages(count=1), p=1.0, seed=0) + + +def test_reports_every_field_of_section_8_1(scored: dict) -> None: + assert [v["id"] for v in scored["variants"]] == list(VARIANTS) + for variant in scored["variants"]: + stats = variant["pooled"] + assert set(stats) == { + "nllPreserved", + "nllAll", + "bitsPerChar", + "nTokens", + "nPreservedTokens", + "nChars", + } + assert stats["nTokens"] > 0 + assert stats["nPreservedTokens"] > 0 + assert stats["nllPreserved"] > 0 + # bitsPerChar is the passage's total surprisal per character, so it must agree + # with nllAll·nTokens/(ln2·nChars) — the definition, not an independent number. + assert stats["bitsPerChar"] == pytest.approx( + stats["nllAll"] * stats["nTokens"] / (math.log(2) * stats["nChars"]), rel=1e-4 + ) + assert scored["dtype"] == "float32" + assert scored["stack"] == "backend" + assert scored["alignment"]["verified"] is True + assert scored["alignment"]["unit"] == "utf8_bytes" + + +def test_the_same_scaffolding_is_scored_in_every_variant(scored: dict) -> None: + """The preserved token sets correspond one-for-one, which is what makes the + differences paired and the comparison meaningful at all.""" + counts = {v["id"]: v["pooled"]["nPreservedTokens"] for v in scored["variants"]} + assert len(set(counts.values())) == 1, counts + # …while the variants as a whole tokenize differently: nonce forms fragment, which + # is the residual the "unknown form" difference is an upper bound because of. + tokens = {v["id"]: v["pooled"]["nTokens"] for v in scored["variants"]} + assert tokens["nonce"] > tokens["swap"], tokens + + +def test_the_decomposition_is_labelled_and_adds_up(scored: dict) -> None: + by_id = {d["id"]: d for d in scored["differences"]} + assert set(by_id) == {"wrong_content", "unknown_form", "total"} + + wrong = by_id["wrong_content"] + form = by_id["unknown_form"] + total = by_id["total"] + + assert wrong["expr"] == "nll(swap) − nll(english)" + assert form["expr"] == "nll(nonce) − nll(swap)" + assert total["expr"] == "nll(nonce) − nll(english)" + # FR-719a: the conflated difference is never a headline. + assert wrong["headline"] and form["headline"] + assert total["headline"] is False + assert form["upperBound"] is True and "UPPER BOUND" in form["note"] + + # Paired means over the same tokens are exactly additive — a real invariant, not a + # tolerance: if it ever fails, the three differences were not computed over one + # aligned token set and none of them means what its label says. + assert total["nats"] == pytest.approx(wrong["nats"] + form["nats"], abs=1e-9) + assert wrong["nPairs"] == form["nPairs"] == total["nPairs"] + for d in (wrong, form, total): + assert d["se"] > 0 + + +def test_both_costs_are_real_and_wrong_content_dominates(scored: dict) -> None: + """SC-707/707b: the measured result, asserted as a sign and an ordering. + + Not asserted as a fixed value — it is a real model on real text and would be a + brittle golden — but the ORDER is the finding: most of the damage is saying the + wrong thing, and only a minority of it is the form being unknown. + """ + by_id = {d["id"]: d for d in scored["differences"]} + wrong = by_id["wrong_content"]["nats"] + form = by_id["unknown_form"]["nats"] + total = by_id["total"]["nats"] + assert wrong > 0, "swapping in real but wrong words must cost something" + assert form > 0, "nonce forms must cost more than known wrong words" + assert wrong > form, (wrong, form) + assert 0.4 < total < 2.0, total + + +def test_the_tiny_arms_exact_zero_travels_with_the_number(scored: dict) -> None: + """FR-719: the pretrained delta is only interpretable beside the exact 0.""" + assert scored["tiny_arm"]["delta_nats"] == 0.0 + assert scored["tiny_arm"]["exact"] is True + assert "exactly 0" in scored["tiny_arm"]["note"] + assert "higher entropy" in scored["confound"] + + +def test_per_passage_rows_are_reported_by_the_full_stack(scored: dict) -> None: + rows = scored["passages"] + assert len(rows) == 1 + assert set(rows[0]["variants"]) == set(VARIANTS) + assert rows[0]["nPreservedWords"] > 0 + # The English text is returned as scored, so the panel shows the reader the passage + # the number came from rather than describing it. + used = scored["passages_used"] + assert len(used) == 1 and used[0].strip() + assert used[0].startswith(scored["variants"][0]["preview"][:40]) + + +def test_pooling_is_token_weighted_across_passages() -> None: + """Two passages pooled must equal the token-weighted combination of their rows.""" + result = vacancy_score(MODEL, default_passages(count=2), p=1.0, seed=0) + for variant in result["variants"]: + rows = [p["variants"][variant["id"]] for p in result["passages"]] + expected = sum(r["nllAll"] * r["nTokens"] for r in rows) / sum(r["nTokens"] for r in rows) + assert variant["pooled"]["nllAll"] == pytest.approx(expected, rel=1e-6) + + +def test_p_zero_is_the_identity_and_costs_nothing() -> None: + """u ∈ [0,1), so p = 0 vacates nothing and every variant is the same text.""" + result = vacancy_score(MODEL, default_passages(count=1), p=0.0, seed=0) + previews = {v["preview"] for v in result["variants"]} + assert len(previews) == 1 + for d in result["differences"]: + assert d["nats"] == pytest.approx(0.0, abs=1e-9) + + +def test_bad_parameters_raise_typed_errors() -> None: + with pytest.raises(InvalidParamError): + vacancy_score(MODEL, [], p=1.0) + with pytest.raises(InvalidParamError): + vacancy_score(MODEL, [" "], p=1.0) + with pytest.raises(InvalidParamError): + vacancy_score(MODEL, default_passages(count=1), p=1.5) + with pytest.raises(InvalidParamError, match="context"): + # gpt2 holds 1024 positions; a passage past it is refused rather than truncated, + # because a truncated variant is not the same text as the one it is compared to. + vacancy_score(MODEL, ["the cow jumped over the moon. " * 400], p=1.0) diff --git a/code/backend/tests/unit/test_arch_vacancy_align.py b/code/backend/tests/unit/test_arch_vacancy_align.py new file mode 100644 index 0000000..73e569b --- /dev/null +++ b/code/backend/tests/unit/test_arch_vacancy_align.py @@ -0,0 +1,149 @@ +"""Token→word alignment for the pretrained arm (contract §8.2, FR-718). + +Real tokenizers, real text, no mocks — but no model weights, so this file is fast: it +downloads tokenizer files only. The alignment is the part of the measurement that can be +silently wrong (a mis-attributed token still produces a plausible number), so it is +tested harder than the arithmetic around it. +""" + +from __future__ import annotations + +import unicodedata + +import pytest +from transformers import AutoTokenizer + +from llm_geometry.arch.vacancy_score import ( + byte_decoder, + default_passages, + preserved_token_indices, + preserved_word_indices, + token_byte_spans, + variant_texts, + word_spans, +) +from llm_geometry.errors import ComputeError + +# Every curated model is a byte-level BPE; gpt2 and SmolLM2 have no normalizer and Qwen +# has an NFC one, which is the case the up-front normalization exists for. +TOKENIZERS = ["gpt2", "HuggingFaceTB/SmolLM2-135M-Instruct", "Qwen/Qwen2.5-0.5B-Instruct"] + +TEXTS = [ + "The cow jumped over the moon, and the little dog laughed.", + # Multi-byte characters that BPE splits ACROSS tokens — the case per-token decoding + # corrupts and the case HF's own offsets overlap on. + "café naïve — “owl” ≈ ç√ 東京 end", + " leading and\ttabbed\nnewlines ", + "don't good-bye o'clock", +] + + +@pytest.mark.parametrize("model_id", TOKENIZERS) +@pytest.mark.parametrize("text", TEXTS) +def test_byte_spans_reconstruct_the_text_exactly(model_id: str, text: str) -> None: + tok = AutoTokenizer.from_pretrained(model_id) + normalized = unicodedata.normalize("NFC", text) + ids = tok(normalized, add_special_tokens=False)["input_ids"] + pieces = tok.convert_ids_to_tokens(ids) + spans = token_byte_spans(list(pieces), normalized) + + raw = normalized.encode("utf-8") + assert len(spans) == len(ids) + # A true partition: contiguous, covering, in order. That is what lets a per-token + # quantity be summed over a word without double-counting. + assert spans[0][0] == 0 + assert spans[-1][1] == len(raw) + for (a, b), (c, _d) in zip(spans, spans[1:]): + assert a <= b == c + assert b"".join(raw[a:b] for a, b in spans) == raw + + +def test_byte_spans_raise_when_the_pieces_do_not_rebuild_the_text() -> None: + """A mismatch must RAISE, never mis-attribute (FR-718).""" + tok = AutoTokenizer.from_pretrained("gpt2") + text = "The cow jumped over the moon." + pieces = list(tok.convert_ids_to_tokens(tok(text, add_special_tokens=False)["input_ids"])) + with pytest.raises(ComputeError, match="alignment failed"): + token_byte_spans(pieces[:-1], text) + + +def test_decomposed_input_is_caught_rather_than_silently_shifted() -> None: + """NFD input rebuilds to different bytes — the check fires instead of drifting.""" + tok = AutoTokenizer.from_pretrained("Qwen/Qwen2.5-0.5B-Instruct") + decomposed = unicodedata.normalize("NFD", "café swirl") + assert decomposed != unicodedata.normalize("NFC", decomposed) + ids = tok(decomposed, add_special_tokens=False)["input_ids"] + pieces = list(tok.convert_ids_to_tokens(ids)) + with pytest.raises(ComputeError): + token_byte_spans(pieces, decomposed) + # …and NFC first (what `vacancy_score` does) makes it exact. + nfc = unicodedata.normalize("NFC", decomposed) + nfc_ids = tok(nfc, add_special_tokens=False)["input_ids"] + spans = token_byte_spans(list(tok.convert_ids_to_tokens(nfc_ids)), nfc) + assert spans[-1][1] == len(nfc.encode("utf-8")) + + +def test_byte_decoder_is_the_inverse_of_bytes_to_unicode() -> None: + table = byte_decoder() + assert len(table) == 256 + assert sorted(table.values()) == list(range(256)) + # 0x20 is NOT printable in this scheme, so it is rendered as U+0120 ("Ġ") — which is + # exactly why a piece cannot be read as text and needs this table to be measured. + assert table["Ġ"] == 0x20 + assert " " not in table + assert table["Ċ"] == 0x0A + + +def test_leading_space_tokens_are_attributed_to_their_word() -> None: + """The overlap rule, not "starts inside": byte-level BPE folds the space in.""" + tok = AutoTokenizer.from_pretrained("gpt2") + text = "the cow and the moon" + ids = tok(text, add_special_tokens=False)["input_ids"] + spans = token_byte_spans(list(tok.convert_ids_to_tokens(ids)), text) + words = word_spans(text) + assert [w.word for w in words] == ["the", "cow", "and", "the", "moon"] + # "the", "and", "the" preserved; "cow", "moon" vacated. + preserved = frozenset({0, 2, 3}) + got = preserved_token_indices(spans, words, preserved) + assert got, "no token was attributed to a preserved word" + decoded = "".join(tok.decode([ids[i]]) for i in got) + assert decoded.replace(" ", "") == "theandthe" + + +def test_a_token_spanning_a_preserved_and_a_vacated_word_raises() -> None: + """Ambiguous attribution is refused, not resolved by a heuristic.""" + words = word_spans("the cow") + # One synthetic token covering both words: the failure mode the assertion guards. + with pytest.raises(ComputeError, match="spans both"): + preserved_token_indices([(0, 7)], words, frozenset({0})) + + +def test_variants_preserve_word_count_and_the_scaffolding() -> None: + passage = default_passages(count=1)[0] + texts = variant_texts(passage, p=1.0, seed=0, match_prosody=True, keep=frozenset()) + assert set(texts) == {"english", "swap", "nonce"} + words, preserved = preserved_word_indices(texts) + assert preserved, "full vacancy left no scaffolding at all" + # Preserved means character-identical in EVERY variant — the property §8.1 rests on. + for name in ("swap", "nonce"): + variant = word_spans(texts[name]) + assert len(variant) == len(words) + for i in preserved: + assert variant[i].word == words[i].word + # …and the vacated words really did move, in both variants and differently. + vacated = [i for i in range(len(words)) if i not in preserved] + assert vacated + swap_words = word_spans(texts["swap"]) + nonce_words = word_spans(texts["nonce"]) + assert any(swap_words[i].word != words[i].word for i in vacated) + assert any(nonce_words[i].word != swap_words[i].word for i in vacated) + + +def test_default_passages_are_deterministic_and_sized() -> None: + a = default_passages() + b = default_passages() + assert a == b + assert len(a) == 6 + assert len({t for t in a}) == 6, "the default set repeats a passage" + for text in a: + assert len(word_spans(text)) >= 200 diff --git a/code/frontend/src/lib/dataClient.ts b/code/frontend/src/lib/dataClient.ts index e035049..1662688 100644 --- a/code/frontend/src/lib/dataClient.ts +++ b/code/frontend/src/lib/dataClient.ts @@ -382,6 +382,91 @@ export interface ArchGenerateResult { finish_reason: "eos" | "length"; } +// --- Feature 007: the pretrained arm of the vacancy instrument (contract §8) --- + +export interface ArchVacancyScoreBody { + model_id: string; + /** One passage (the panel's editable excerpt) … */ + passage?: string; + /** … or several, pooled at the token level. Omit both for the shipped default set. */ + passages?: string[]; + p?: number; // default 1.0 — full vacancy, the measured condition + seed?: number; + match_prosody?: boolean; + keep?: string[]; +} + +/** A quantity this stack measured but may not report, with the reason and the fix. */ +export interface ArchVacancyRefusal { + type: string; // the typed-error name the full stack would raise + message: string; +} + +/** Contract §8.1, per variant. Absolutes are `null` where the running dtype has no bound. */ +export interface ArchVacancyStats { + nllPreserved: number | null; + nllAll: number | null; + bitsPerChar: number | null; + nTokens: number; + nPreservedTokens: number; + nChars: number; +} + +export interface ArchVacancyVariant { + id: "english" | "swap" | "nonce"; + pooled: ArchVacancyStats; + preview: string; + /** Present when the absolute NLLs are withheld (quantized stack). */ + refused?: ArchVacancyRefusal; +} + +export interface ArchVacancyDifference { + /** `wrong_content` = swap − english; `unknown_form` = nonce − swap; `total` = their sum. */ + id: "wrong_content" | "unknown_form" | "total"; + label: string; + expr: string; + /** `total` is false: it conflates the two and is never a headline (contract §8.3). */ + headline: boolean; + nats: number | null; + se: number | null; + nPairs: number; + upperBound?: boolean; + note?: string; + /** Stated only where it was MEASURED for the dtype that ran; never invented. */ + quantizationUncertaintyNats?: number; + refused?: ArchVacancyRefusal; +} + +export interface ArchVacancyPassage { + index: number; + nWords: number; + nPreservedWords: number; + variants: Record; +} + +export interface ArchVacancyScoreResult { + model_id: string; + revision?: string; + /** "backend" (torch, fp32) or "static" (transformers.js, quantized ONNX). */ + stack: "backend" | "static"; + dtype: string; + device?: string; + p: number; + seed: number; + match_prosody: boolean; + keep: string[]; + alignment: { mechanism: string; unit: string; verified: boolean; note: string }; + variants: ArchVacancyVariant[]; + /** The English passages exactly as scored (NFC-normalized), so the UI can show them. */ + passages_used: string[]; + differences: ArchVacancyDifference[]; + /** Per-passage rows, or `null` where they are refused (quantized stack). */ + passages: ArchVacancyPassage[] | null; + passagesRefused?: ArchVacancyRefusal; + tiny_arm: { delta_nats: number; exact: boolean; label: string; note: string }; + confound: string; +} + export class ApiError extends Error { type: string; constructor(type: string, message: string) { @@ -657,6 +742,13 @@ export function createClient(opts: ClientOptions = {}) { return request("/api/arch/generate", jsonInit(body)); } + function archVacancyScore( + body: ArchVacancyScoreBody, + signal?: AbortSignal, + ): Promise { + return request("/api/arch/vacancy-score", { ...jsonInit(body), signal }); + } + return { listModels, resolveModel, @@ -682,6 +774,7 @@ export function createClient(opts: ClientOptions = {}) { getArchWeights, getArchTrace, archGenerate, + archVacancyScore, }; } diff --git a/code/frontend/src/lib/staticClient/arch.ts b/code/frontend/src/lib/staticClient/arch.ts index 22ee5a1..faa1387 100644 --- a/code/frontend/src/lib/staticClient/arch.ts +++ b/code/frontend/src/lib/staticClient/arch.ts @@ -15,13 +15,33 @@ import type { ArchGraph, ArchTrace, ArchTraceParams, + ArchVacancyDifference, + ArchVacancyRefusal, + ArchVacancyScoreBody, + ArchVacancyScoreResult, + ArchVacancyStats, ArchWeightsData, ArchWeightsParams, TokenizeResult, } from "../dataClient"; +import { WORD_RE, tokenize } from "../lexEngine"; +import { + buildVacancyMap, + typeCounts, + vacancyDomain, + vacancyParams, + vacateText, +} from "../lexEngine/vacancy"; import type { StaticAssets, StaticIndexModel } from "./assets"; +import { preservedTokenIndices, tokenByteSpans, wordSpans, type WordSpan } from "./byteSpans"; import { computeError, invalidParamError, notFoundError, staticModeError } from "./errors"; -import { IDLE_GENERATION_INFO, type ArchRuntime, type RuntimeGenerationInfo, type RuntimeLoader } from "./runtimeTypes"; +import { + IDLE_GENERATION_INFO, + type ArchRuntime, + type RuntimeGenerationInfo, + type RuntimeLoader, + type RuntimeScoredText, +} from "./runtimeTypes"; import { SafetensorsFile, asMatrixShape } from "./safetensors"; const DEFAULT_MAX_CELLS = 4096; // ARCH_WEIGHTS_MAX_CELLS (backend config) @@ -101,6 +121,348 @@ export function dequantizeTile( return out; } +// --- the vacancy instrument, pretrained arm (contract §8) -------------------------------- + +/** The three variants, in the order the panel reads them. MIRROR of `VARIANTS` (Python). */ +const VACANCY_VARIANTS = ["english", "swap", "nonce"] as const; +type VacancyVariant = (typeof VACANCY_VARIANTS)[number]; + +/** MIRROR of `MAX_PASSAGES` — each passage costs three real forward passes. */ +const VACANCY_MAX_PASSAGES = 12; +/** MIRROR of `DEFAULT_PASSAGE_WORDS` / `DEFAULT_PASSAGE_COUNT` (the measured shape). */ +const VACANCY_PASSAGE_WORDS = 250; +const VACANCY_PASSAGE_COUNT = 6; +/** + * MIRROR of `FRONT_MATTER_FRACTION`. The shipped book opens with a title page and an + * alphabetical index of first lines — measured to end in block 11 of 63 — and a passage + * cut from that is a column of titles, not English. The digest fixture pins the two + * stacks to the same cut. + */ +const VACANCY_FRONT_MATTER_FRACTION = 0.2; + +/** + * Dtypes whose error against float32 has actually been MEASURED on this contrast + * (§8.3a). q8 is bounded at ≤ 0.054 nats on the pooled difference; q4f16 is not on this + * list because it does not compute — it returns input-independent logits — and no other + * dtype has been measured. Anything absent is refused, never extrapolated onto. + */ +const VACANCY_MEASURED_DTYPES: readonly string[] = ["q8"]; + +/** + * The uncertainty stated beside a pooled difference in static mode. + * + * DERIVED FROM TWO MEASUREMENTS, not chosen: + * + * 1. The independent six-passage study of §8.3a (2 models × 2 seeds, its own passage + * cut and its own swap implementation) bounded the pooled q8-vs-fp32 discrepancy at + * **≤ 0.054 nats** on every contrast, and recommended stating ~2× that. + * 2. This build's own configuration, measured across the two stacks on the SHIPPED + * default passage set with gpt2 — identical tokenization (2754/2858/3810 tokens, + * 847 preserved) in both, so the only difference is the dtype: + * + * swap − english : fp32 0.7166 q8 0.6440 |Δ| = 0.073 + * nonce − english : fp32 0.9892 q8 0.8790 |Δ| = 0.110 + * + * The second exceeds 0.1, so a stated ±0.1 would have been a bound its own first + * comparison broke. 0.2 is ~2× the largest discrepancy actually observed here, in the + * configuration that actually ships. Never quoted to more than one decimal place: that + * is all either measurement supports. If this constant changes, re-run BOTH stacks on + * the default set before changing it — the number is a measurement, not a margin. + */ +const VACANCY_Q8_UNCERTAINTY_NATS = 0.2; + +/** + * Preserved tokens that must be pooled before a q8 number may be shown. The bound above + * was measured on ~700 preserved tokens per condition; a single 250-word passage carries + * ~120, and at that size q8 was wrong by up to 115 % of the passage's own delta. + */ +const VACANCY_MIN_POOLED_PRESERVED = 700; + +/** MIRROR of `TINY_ARM` (Python) — the other half of the 2×2, restated for the panel. */ +const VACANCY_TINY_ARM = { + delta_nats: 0, + exact: true, + label: "the same measurement on a model with no locations", + note: + "For the from-scratch word-level GeoTransformer of the Lexicon Lab, the vacancy " + + "transform is a pure relabelling of the vocabulary: with consistent=true and " + + "revealAfter=0 the token id stream is element-for-element identical, so the training " + + "loss is bit-identical and a word's FORM is worth exactly 0. That is not a rounding " + + "— it is an identity, and it is asserted in that tab, not assumed.", +}; + +/** MIRROR of `UNKNOWN_FORM_NOTE` (Python) — the residual, stated even where the number + * itself is refused: a reader must not have to earn the caveat by being shown a value. */ +const VACANCY_UNKNOWN_FORM_NOTE = + "Nonce forms fragment into more subword tokens than real words do, so this difference " + + "is the cost of an unknown form TOGETHER WITH the cost of a stranger, longer context. " + + "The two are not separable without a tokenizer-level control, so treat this as an " + + "UPPER BOUND on what a word's location was worth — never as pure location."; + +/** MIRROR of `CONFOUND_NOTE` (Python) — §8.4, stated wherever a delta is. */ +const VACANCY_CONFOUND = + "A vacated passage genuinely has higher entropy, so every prediction inside it gets " + + "worse — the scaffolding included. A positive difference is therefore expected, not a " + + "surprise: its MAGNITUDE is the result, and it is only interpretable against the tiny " + + "arm's exact zero."; + +/** + * The passage and its two vacated twins (§8.3), from the SAME TypeScript transform the + * Lexicon Lab runs — so the nonce a stem gets here is the nonce it gets there, for the + * same seed, and the golden fixture that pins TS against Python covers this too. + */ +export function vacancyVariantTexts( + passage: string, + opts: { p: number; seed: number; matchProsody: boolean; keep: readonly string[] }, +): Record { + const tokens = tokenize(passage); + const domain = vacancyDomain(tokens); + const counts = typeCounts(tokens); + const out = { english: passage } as Record; + for (const mint of ["swap", "nonce"] as const) { + // consistent / revealAfter are fixed at the invariance theorem's condition: the tiny + // arm's exact zero holds only there, and this number is only interpretable beside it. + const params = vacancyParams({ + p: opts.p, + seed: opts.seed, + consistent: true, + matchProsody: opts.matchProsody, + revealAfter: 0, + keep: [...opts.keep], + mint, + }); + out[mint] = vacateText(passage, buildVacancyMap(domain, params, counts), params); + } + return out; +} + +/** + * Word spans of the English passage, and the word indices PRESERVED in EVERY variant. + * + * "Preserved" is character identity across all three, which is stronger than "closed + * class": it also covers eligible stems the `u(stem) < p` decision spared. Restricting + * all three NLLs to the same word set is what makes them comparable. + */ +export function preservedWordIndices(texts: Record): { + words: WordSpan[]; + preserved: Set; +} { + const per = {} as Record; + for (const name of VACANCY_VARIANTS) per[name] = wordSpans(texts[name], WORD_RE); + const counts = VACANCY_VARIANTS.map((n) => per[n].length); + if (new Set(counts).size !== 1) { + throw computeError( + "the variants do not have the same number of words, so preserved words cannot be " + + `aligned: ${VACANCY_VARIANTS.map((n, i) => `${n}=${counts[i]}`).join(", ")}`, + ); + } + const preserved = new Set(); + for (const w of per.english) { + if (VACANCY_VARIANTS.every((n) => per[n][w.index].word === w.word)) preserved.add(w.index); + } + return { words: per.english, preserved }; +} + +function mean(values: readonly number[]): number { + if (values.length === 0) { + throw computeError("no tokens to average — the passage has no scored positions"); + } + let sum = 0; + for (const v of values) sum += v; + return sum / values.length; +} + +/** + * §8.1's fields pooled over passages at the TOKEN level — token-weighted, never a mean of + * means, so a passage with twice the tokens carries twice the weight and the pooled + * figure really is the mean surprisal of a preserved token. + * + * The absolutes are `null` here by design: this function only ever runs in the quantized + * static build, where they are refused (§8.3a). The counts are not — a token count is + * exact at any dtype, and it is what shows the reader that nonce forms fragment. + */ +export function pooledStats( + scored: readonly RuntimeScoredText[], + preserved: readonly number[][], +): ArchVacancyStats { + let nTokens = 0; + let nChars = 0; + let nPreserved = 0; + for (let i = 0; i < scored.length; i++) { + nTokens += scored[i].nll.length - 1; // position 0 has no prediction + nChars += scored[i].nChars; + nPreserved += preserved[i].length; + } + return { + nllPreserved: null, + nllAll: null, + bitsPerChar: null, + nTokens, + nPreservedTokens: nPreserved, + nChars, + }; +} + +/** + * `mean(nll_b − nll_a)` over preserved tokens, PAIRED, with its standard error. + * + * The pairing is exact, not an approximation: preserved words are character-identical + * across variants and the curated models' pretokenizers never merge across a word + * boundary, so each preserved word yields the same pieces in every variant. Pairing + * removes the between-token variance — the same function word is compared with itself in + * the other condition — which is what makes a standard error on a ~0.1 nat effect worth + * printing. A length mismatch means the pairing assumption broke, and it refuses. + */ +export function pairedDifference( + a: readonly RuntimeScoredText[], + aPreserved: readonly number[][], + b: readonly RuntimeScoredText[], + bPreserved: readonly number[][], +): { nats: number; se: number; nPairs: number } { + const diffs: number[] = []; + for (let i = 0; i < a.length; i++) { + if (aPreserved[i].length !== bPreserved[i].length) { + throw computeError( + `the variants have ${aPreserved[i].length} and ${bPreserved[i].length} preserved ` + + "tokens, so they cannot be paired", + ); + } + for (let j = 0; j < aPreserved[i].length; j++) { + diffs.push(b[i].nll[bPreserved[i][j]] - a[i].nll[aPreserved[i][j]]); + } + } + const m = mean(diffs); + let se = NaN; + if (diffs.length > 1) { + let ss = 0; + for (const d of diffs) ss += (d - m) * (d - m); + se = Math.sqrt(ss / (diffs.length - 1) / diffs.length); + } + return { nats: m, se, nPairs: diffs.length }; +} + +/** + * Evenly spaced excerpts of the shipped corpus — MIRROR of `default_passages` (Python), + * the configuration the reference numbers of §8.3a were measured in. The first eighth of + * the book is skipped: it is the title page and table of contents, a list of titles + * rather than English. + */ +export function defaultVacancyPassages( + text: string, + count = VACANCY_PASSAGE_COUNT, + words = VACANCY_PASSAGE_WORDS, +): string[] { + const blocks: string[] = []; + let current: string[] = []; + let n = 0; + const counter = new RegExp(WORD_RE.source, "g"); + for (const line of text.split("\n")) { + current.push(line); + n += (line.match(counter) ?? []).length; + if (n >= words) { + blocks.push(current.join("\n").replace(/^\n+|\n+$/g, "")); + current = []; + n = 0; + } + } + if (blocks.length === 0) { + throw computeError("the shipped corpus produced no passage of the requested size"); + } + const start = Math.max(1, Math.round(blocks.length * VACANCY_FRONT_MATTER_FRACTION)); + const step = Math.max(1, Math.floor((blocks.length - start) / Math.max(1, count))); + return Array.from({ length: count }, (_, i) => + blocks[Math.min(start + i * step, blocks.length - 1)], + ); +} + +/** + * Refusal: absolute log-likelihoods, from a quantized model. MEASURED, not cautious. + */ +export const VACANCY_ABSOLUTE_REFUSAL: ArchVacancyRefusal = { + type: "StaticModeError", + message: + "Absolute log-likelihoods are not reportable from a quantized model: q8 shifts " + + "nllPreserved by −0.19 nats on gpt2 and +0.40 on SmolLM2-135M — the sign is not " + + "even stable across models. The pooled DIFFERENCES below survive quantization; " + + "these numbers do not. The full stack reports them at float32.", +}; + +/** Refusal: any single-passage delta, from a quantized model. */ +export const VACANCY_PER_PASSAGE_REFUSAL: ArchVacancyRefusal = { + type: "StaticModeError", + message: + "A per-passage delta is not reportable under q8: the worst measured discrepancy was " + + "0.65 nats, 115 % of that passage's own float32 delta, caused by q8 compressing the " + + "16–18 nat line-initial function words this measurement is precisely about. Only the " + + "pooled figure has a measured bound. Run the full stack for the per-passage table.", +}; + +/** Refusal: `nonce − swap`, the contrast quantization destroys. */ +export const VACANCY_UNKNOWN_FORM_REFUSAL: ArchVacancyRefusal = { + type: "StaticModeError", + message: + "This is the contrast the quantized model destroys, and it is the one the result " + + "rests on. It is a small number — 0.16–0.27 nats across the curated models at " + + "float32, 0.06–0.21 in the independent study — and q8's error on it is 14–23 % of " + + "that, up to 0.28 nats on a single passage, with a sign flip in one passage of six " + + "per model. Measured on this very configuration: float32 says 0.273 for gpt2 and q8 " + + "says 0.235, a 14 % error on the quantity the whole result turns on. The two pooled " + + "numbers shown here do differ by it — that arithmetic is not a measurement, and the " + + "difference is not reportable at this dtype. Run the full stack (uvicorn " + + "llm_geometry.api.app:app), which scores at float32, where ONNX and torch agree to " + + "5.3e-4 nats.", +}; + +/** + * What the quantized static build MAY say about the two differences it computed + * (contract §8.3a, FR-720a). Pure policy, separated from the measurement so it can be + * asserted directly: pooled `swap − english` and `nonce − english` carry a stated, + * MEASURED quantization uncertainty; `nonce − swap` carries a refusal and no number. + * + * The refusal is not squeamishness about a wide error bar. q8's error on `nonce − swap` + * is 14–23 % of an effect whose true value is 0.06–0.21 nats, and it flips sign on one + * passage in six — so a number here would not be imprecise, it would be wrong in a + * direction the reader could not detect. + */ +export function staticVacancyDifferences( + swapMinusEnglish: { nats: number; se: number; nPairs: number }, + nonceMinusEnglish: { nats: number; se: number; nPairs: number }, +): ArchVacancyDifference[] { + return [ + { + id: "wrong_content", + label: "the cost of wrong content", + expr: "nll(swap) − nll(english)", + headline: true, + quantizationUncertaintyNats: VACANCY_Q8_UNCERTAINTY_NATS, + ...swapMinusEnglish, + }, + { + id: "unknown_form", + label: "the cost of unknown form", + expr: "nll(nonce) − nll(swap)", + headline: true, + upperBound: true, + note: VACANCY_UNKNOWN_FORM_NOTE, + nats: null, + se: null, + nPairs: 0, + refused: VACANCY_UNKNOWN_FORM_REFUSAL, + }, + { + id: "total", + label: "both costs together", + expr: "nll(nonce) − nll(english)", + headline: false, + note: + "The sum of the two differences above. It conflates wrong content with unknown " + + "form and is never the headline.", + quantizationUncertaintyNats: VACANCY_Q8_UNCERTAINTY_NATS, + ...nonceMinusEnglish, + }, + ]; +} + export class ArchSection { private readonly safetensors = new Map(); private runtimePromise: Promise | null = null; @@ -340,6 +702,171 @@ export class ArchSection { return rt.tokenize(m.model_id, m.revision, text); } + /** + * The pretrained arm of the vacancy instrument, in the browser (contract §8). + * + * Everything is computed here for real: the three variants come from the TypeScript + * vacancy transform (the same one the Lexicon Lab runs, golden-tested against Python), + * and each is scored by one real forward pass on the community ONNX export. + * + * WHAT IT MAY THEN SAY is narrower than what it computed, and that is the point + * (§8.3a / FR-720a). This build runs a **q8** export, and the measurement of §8.3a + * bounds q8's error only on POOLED differences over several hundred preserved tokens: + * + * - absolute `nllPreserved` is refused — q8 moves it by −0.19 nats on gpt2 and +0.40 + * on SmolLM2-135M, so even its SIGN is not stable across models; + * - per-passage deltas are refused — worst case 0.65 nats, 115 % of that passage's + * own fp32 delta; + * - `nonce − swap` is refused — its true value is 0.06–0.21 nats and q8's error on it + * is 14–23 % pooled with sign flips, so quantization eats exactly the contrast that + * makes the result mean something; + * - pooled `swap − english` and `nonce − english` are reported, with the measured + * ±0.1 nats quantization uncertainty stated beside the sampling standard error. + * + * A dtype with no measured bound is refused outright rather than given a ± copied from + * a different dtype: a stated error bar that was never measured is a fabrication, and + * worse than no number. + */ + async archVacancyScore(body: ArchVacancyScoreBody): Promise { + const m = await this.model(body.model_id); + const repo = ONNX_REPOS[m.model_id]; + if (!repo) { + throw staticModeError( + `No browser (ONNX) export is wired up for ${m.model_id}, so this measurement ` + + "cannot be run on it here — it covers: " + + Object.keys(ONNX_REPOS).join(", ") + + ". Run the full stack (see the README) for other models.", + ); + } + if (body.passage !== undefined && body.passages !== undefined) { + throw invalidParamError( + "send either `passage` (one) or `passages` (several), not both — they would " + + "silently disagree about what was scored", + ); + } + const requested = + body.passages ?? (body.passage !== undefined ? [body.passage] : await this.defaultPassages()); + if (requested.length === 0 || requested.some((t) => !t.trim())) { + throw invalidParamError("every passage must be a non-empty string"); + } + if (requested.length > VACANCY_MAX_PASSAGES) { + throw invalidParamError( + `at most ${VACANCY_MAX_PASSAGES} passages per request, got ${requested.length}; ` + + "each one costs three real forward passes", + ); + } + const p = body.p ?? 1.0; + if (!(p >= 0 && p <= 1)) throw invalidParamError(`p must lie in [0, 1], got ${p}`); + const seed = body.seed ?? 0; + const matchProsody = body.match_prosody ?? true; + const keep = body.keep ?? []; + + // NFC once, up front: every byte span downstream indexes THIS string. Qwen's + // tokenizer normalizes internally and gpt2's/SmolLM2's do not, so without this a + // decomposed character would shift every span after it (§8.2). + const passages = requested.map((t) => t.normalize("NFC")); + const rt = await this.runtime(); + + const scored: Record = { english: [], swap: [], nonce: [] }; + const preservedIdx: Record = { english: [], swap: [], nonce: [] }; + const previews: Record = { english: "", swap: "", nonce: "" }; + for (const passage of passages) { + const texts = vacancyVariantTexts(passage, { p, seed, matchProsody, keep }); + const { words, preserved } = preservedWordIndices(texts); + if (preserved.size === 0) { + throw computeError( + "this passage has no word that survives the transform, so there is no " + + "scaffolding to score. Lower p, or use a passage with closed-class words.", + ); + } + const order = VACANCY_VARIANTS.map((name) => texts[name]); + const results = await rt.scoreTexts(repo, order); + VACANCY_VARIANTS.forEach((name, i) => { + if (!previews[name]) previews[name] = texts[name]; + const variantWords = name === "english" ? words : wordSpans(texts[name], WORD_RE); + const spans = tokenByteSpans(results[i].pieces, texts[name]); + scored[name].push(results[i]); + preservedIdx[name].push( + preservedTokenIndices(spans, variantWords, preserved).filter((j) => j > 0), + ); + }); + } + + const info = rt.info(); + const dtype = info.dtype ?? "unknown"; + const device = info.device ?? "unknown"; + if (!VACANCY_MEASURED_DTYPES.includes(dtype)) { + throw staticModeError( + `This browser loaded the model at dtype "${dtype}", and no error bound has been ` + + "measured for it. Quantization moves absolute log-likelihoods by nats and can " + + "reverse the sign of the effect this panel measures, so stating a number here " + + "would mean inventing an error bar. Run the full stack (uvicorn " + + "llm_geometry.api.app:app), which scores at float32.", + ); + } + + const pooledPreserved = preservedIdx.english.reduce((n, list) => n + list.length, 0); + if (pooledPreserved < VACANCY_MIN_POOLED_PRESERVED) { + throw staticModeError( + `Pooled over ${pooledPreserved} preserved tokens, this is below the ` + + `${VACANCY_MIN_POOLED_PRESERVED} at which q8's error on the pooled difference ` + + "was measured (≤ 0.054 nats). Below it the only honest answer is no number: a " + + "single-passage delta under q8 was wrong by up to 115 % of its own value. Add " + + "more passages, or run the full stack, which scores at float32 and reports " + + "every per-passage number.", + ); + } + + const differences = staticVacancyDifferences( + pairedDifference(scored.english, preservedIdx.english, scored.swap, preservedIdx.swap), + pairedDifference(scored.english, preservedIdx.english, scored.nonce, preservedIdx.nonce), + ); + + return { + model_id: m.model_id, + revision: m.revision, + stack: "static", + dtype, + device, + p, + seed, + match_prosody: matchProsody, + keep: [...keep], + alignment: { + mechanism: "byte-level pieces → UTF-8 byte spans", + unit: "utf8_bytes", + verified: true, + note: + "Token→word attribution is verified at run time by reconstructing the passage " + + "from the token byte spans; a mismatch raises rather than mis-attributing.", + }, + variants: VACANCY_VARIANTS.map((name) => ({ + id: name, + pooled: pooledStats(scored[name], preservedIdx[name]), + preview: previews[name].slice(0, 400), + refused: VACANCY_ABSOLUTE_REFUSAL, + })), + passages_used: passages, + differences, + passages: null, + passagesRefused: VACANCY_PER_PASSAGE_REFUSAL, + tiny_arm: VACANCY_TINY_ARM, + confound: VACANCY_CONFOUND, + }; + } + + /** The six evenly spaced corpus excerpts the measurement of §8.3a used. */ + private async defaultPassages(): Promise { + const corpus = await this.assets.json<{ text?: string }>("lex/corpus.json"); + if (typeof corpus?.text !== "string" || !corpus.text) { + throw staticModeError( + "This build did not export the corpus (static-data/lex/corpus.json), so the " + + "default passage set cannot be cut. Paste a passage, or run the full stack.", + ); + } + return defaultVacancyPassages(corpus.text.normalize("NFC")); + } + /** LIVE generation on the model's community ONNX export. */ async archGenerate(body: ArchGenerateBody): Promise { const m = await this.model(body.model_id); diff --git a/code/frontend/src/lib/staticClient/byteSpans.ts b/code/frontend/src/lib/staticClient/byteSpans.ts new file mode 100644 index 0000000..d43354e --- /dev/null +++ b/code/frontend/src/lib/staticClient/byteSpans.ts @@ -0,0 +1,153 @@ +/** + * Token→word attribution in UTF-8 BYTE coordinates (contract §8.2, FR-718). + * + * The mirror of `llm_geometry/arch/vacancy_score.py`. It is byte-based rather than + * character-based for reasons that were measured, not assumed: + * + * - transformers.js exposes NO token offsets at all (`return_offsets_mapping` is + * ignored; there is not one `offset` key anywhere in the tokenizer's object graph), + * so HF's Python-side offsets are not a mechanism the two stacks can share; + * - decoding tokens one at a time and concatenating emits U+FFFD and destroys the text + * on any split multi-byte character, in BOTH stacks; + * - Python indexes code points where JavaScript indexes UTF-16 units — the two genuinely + * disagree about the same string (31 vs 32 on one probe text), so "character" is not a + * unit a cross-language contract can be written in; + * - HF's own offsets OVERLAP on multi-byte characters, so per-token quantities summed + * over a word would be double-counted. Byte spans are a true partition. + * + * The reconstruction assertion in `tokenByteSpans` is the guard rail: if the concatenated + * pieces are not `utf8(text)` byte for byte, this raises rather than mis-attributing. + */ + +import { computeError } from "./errors"; + +/** GPT-2's unicode→byte table: the inverse of `bytes_to_unicode`. */ +function buildByteDecoder(): Map { + const bs: number[] = []; + for (let b = "!".charCodeAt(0); b <= "~".charCodeAt(0); b++) bs.push(b); + for (let b = 0xa1; b <= 0xac; b++) bs.push(b); + for (let b = 0xae; b <= 0xff; b++) bs.push(b); + const cs = [...bs]; + let n = 0; + for (let b = 0; b < 256; b++) { + if (!bs.includes(b)) { + bs.push(b); + cs.push(256 + n); + n += 1; + } + } + const out = new Map(); + for (let i = 0; i < bs.length; i++) out.set(String.fromCharCode(cs[i]), bs[i]); + return out; +} + +const BYTE_DECODER = buildByteDecoder(); + +export type ByteSpan = readonly [number, number]; + +/** + * The `[start, end)` UTF-8 byte range each token owns, verified by reconstruction. + * + * The spans tile `utf8(text)` exactly once. A token that is a bare continuation byte gets + * a degenerate EMPTY span — the honest answer for it — and still resolves to the right + * word, because its start byte lies strictly inside the character it continues. + */ +export function tokenByteSpans(pieces: readonly string[], text: string): ByteSpan[] { + const spans: ByteSpan[] = []; + const parts: number[] = []; + let cursor = 0; + for (let i = 0; i < pieces.length; i++) { + const piece = pieces[i]; + let width = 0; + for (const ch of piece) { + const b = BYTE_DECODER.get(ch); + if (b === undefined) { + throw computeError( + `token ${i} (${JSON.stringify(piece)}) contains a character outside the ` + + "byte-level BPE table, so its byte width cannot be determined", + ); + } + parts.push(b); + width += 1; + } + spans.push([cursor, cursor + width]); + cursor += width; + } + + const expected = new TextEncoder().encode(text); + let same = parts.length === expected.length; + if (same) { + for (let i = 0; i < expected.length; i++) { + if (parts[i] !== expected[i]) { + same = false; + break; + } + } + } + if (!same) { + throw computeError( + "token→text alignment failed: the concatenated byte-level pieces do not reproduce " + + `the passage (${parts.length} bytes rebuilt vs ${expected.length} expected). ` + + "Refusing to attribute tokens to words rather than mis-attribute them.", + ); + } + return spans; +} + +export interface WordSpan { + index: number; + word: string; + start: number; + end: number; +} + +/** Every `WORD_RE` match of `text`, in UTF-8 byte coordinates. */ +export function wordSpans(text: string, wordRe: RegExp): WordSpan[] { + const re = new RegExp(wordRe.source, wordRe.flags.includes("g") ? wordRe.flags : `${wordRe.flags}g`); + const encoder = new TextEncoder(); + const out: WordSpan[] = []; + let m: RegExpExecArray | null; + let index = 0; + while ((m = re.exec(text)) !== null) { + const start = encoder.encode(text.slice(0, m.index)).length; + out.push({ index, word: m[0], start, end: start + encoder.encode(m[0]).length }); + index += 1; + if (m[0] === "") re.lastIndex += 1; // defensive: never loop on an empty match + } + return out; +} + +/** + * Indices of the tokens belonging to a PRESERVED word. + * + * A token belongs to a word when their byte ranges OVERLAP — not "starts inside". A + * byte-level BPE folds a word's leading space into the word's own token, so the token + * that *is* the function word starts one byte before the word does, and the start rule + * would drop nearly all of them. + * + * A token overlapping both a preserved and a vacated word cannot be attributed, and that + * raises: the curated models' pretokenizers never merge across a word boundary, so if it + * happens the assumption behind this attribution has changed and no number may be + * reported from it. + */ +export function preservedTokenIndices( + spans: readonly ByteSpan[], + words: readonly WordSpan[], + preserved: ReadonlySet, +): number[] { + const out: number[] = []; + for (let i = 0; i < spans.length; i++) { + const [a, b] = spans[i]; + const hits = words.filter((w) => a < w.end && b > w.start); + if (hits.length === 0) continue; // punctuation, whitespace, line breaks + const flags = new Set(hits.map((w) => preserved.has(w.index))); + if (flags.size > 1) { + throw computeError( + `token ${i} spans both a preserved and a vacated word ` + + `(${hits.map((w) => JSON.stringify(w.word)).join(", ")}); refusing to attribute it`, + ); + } + if (flags.has(true)) out.push(i); + } + return out; +} diff --git a/code/frontend/src/lib/staticClient/index.ts b/code/frontend/src/lib/staticClient/index.ts index dd32700..1c7a986 100644 --- a/code/frontend/src/lib/staticClient/index.ts +++ b/code/frontend/src/lib/staticClient/index.ts @@ -23,6 +23,8 @@ import type { ArchGraph, ArchTrace, ArchTraceParams, + ArchVacancyScoreBody, + ArchVacancyScoreResult, ArchWeightsData, ArchWeightsParams, Client, @@ -208,6 +210,10 @@ export function createStaticClient(opts: StaticClientOptions = {}): StaticClient getArchTrace: (params: ArchTraceParams, _signal?: AbortSignal): Promise => arch.getArchTrace(params), archGenerate: (body: ArchGenerateBody): Promise => arch.archGenerate(body), + archVacancyScore: ( + body: ArchVacancyScoreBody, + _signal?: AbortSignal, + ): Promise => arch.archVacancyScore(body), // Lexicon Lab: budgets, training, generation and spectra all computed in-browser by // lexEngine; only the shipped corpus text and the read-only /spec are precomputed. ...lexClientFrom(lex), diff --git a/code/frontend/src/lib/staticClient/runtimeTypes.ts b/code/frontend/src/lib/staticClient/runtimeTypes.ts index e2de64b..6aff435 100644 --- a/code/frontend/src/lib/staticClient/runtimeTypes.ts +++ b/code/frontend/src/lib/staticClient/runtimeTypes.ts @@ -59,6 +59,20 @@ export interface StaticRuntimeInfo { generation: RuntimeGenerationInfo; } +/** One text scored by ONE real teacher-forced forward pass (contract §8.1). */ +export interface RuntimeScoredText { + /** Byte-level pieces, in order — the input to the UTF-8 span algorithm (§8.2). */ + pieces: string[]; + /** + * Per-token negative log-likelihood in nats: `nll[i]` is the cost of predicting token + * `i` given tokens `< i`. Position 0 has no prediction and is `NaN`, never 0 — a zero + * there would read as a perfectly predicted first token. + */ + nll: number[]; + /** Characters of the scored text, for `bitsPerChar`. */ + nChars: number; +} + /** The surface the lazily-imported transformersRuntime module implements. */ export interface ArchRuntime { info(): RuntimeGenerationInfo; @@ -67,6 +81,13 @@ export interface ArchRuntime { /** Live generation (webgpu q8 → wasm q8 fallback) with real per-token probs. */ /** The ONNX mirror is resolved at `main` — see transformersRuntime's header. */ generate(body: ArchGenerateBody, onnxRepo: string): Promise; + /** + * Per-token NLL for each text, one real forward pass each, plus the byte-level pieces + * the caller needs to attribute those tokens to words. No special tokens and no chat + * template: the passage is scored exactly as written, so variants of it differ by the + * transform and by nothing else. + */ + scoreTexts(onnxRepo: string, texts: readonly string[]): Promise; } export type RuntimeLoader = () => Promise; diff --git a/code/frontend/src/lib/staticClient/transformersRuntime.ts b/code/frontend/src/lib/staticClient/transformersRuntime.ts index 71367be..d1594bb 100644 --- a/code/frontend/src/lib/staticClient/transformersRuntime.ts +++ b/code/frontend/src/lib/staticClient/transformersRuntime.ts @@ -34,7 +34,13 @@ import { import type { ArchGenerateBody, ArchGenerateResult, ArchGeneratedToken, TokenizeResult } from "../dataClient"; import { computeError, invalidParamError } from "./errors"; import { assertNonDegenerateLogits } from "./logitsSanity"; -import { IDLE_GENERATION_INFO, RUNTIME_LADDER, type ArchRuntime, type RuntimeGenerationInfo } from "./runtimeTypes"; +import { + IDLE_GENERATION_INFO, + RUNTIME_LADDER, + type ArchRuntime, + type RuntimeGenerationInfo, + type RuntimeScoredText, +} from "./runtimeTypes"; const MAX_NEW_TOKENS_LIMIT = 128; // ARCH_MAX_NEW_TOKENS (backend config) const TOPK = 5; @@ -320,6 +326,78 @@ async function generateImpl( }; } +/** + * Byte-level pieces for a text — the strings the UTF-8 span algorithm decodes (§8.2). + * + * `_tokenizer` is the underlying `tokenizers` object; `encode(...).tokens` is the only + * place transformers.js 4.x surfaces the raw pieces (there is no offsets API at all). + * It is a private-ish field, so it is checked here and the failure is loud: the + * alternative — decoding tokens one at a time — provably corrupts multi-byte characters. + */ +function byteLevelPieces(tokenizer: PreTrainedTokenizer, text: string): string[] { + const inner = (tokenizer as unknown as { _tokenizer?: { encode(t: string): { tokens?: string[] } } })._tokenizer; + const tokens = inner?.encode(text)?.tokens; + if (!Array.isArray(tokens)) { + throw computeError( + "this build of @huggingface/transformers does not expose byte-level token pieces " + + "(tokenizer._tokenizer.encode(text).tokens), so tokens cannot be attributed to " + + "words. Refusing to guess — per-token decoding corrupts multi-byte characters.", + ); + } + return tokens; +} + +async function scoreTextsImpl( + onnxRepo: string, + texts: readonly string[], +): Promise { + if (texts.length === 0) throw invalidParamError("scoreTexts needs at least one text"); + const generator = await getPipeline(onnxRepo); + const tokenizer = generator.tokenizer; + const model = generator.model; + const out: RuntimeScoredText[] = []; + for (const text of texts) { + const ids = tokenizer.encode(text, { add_special_tokens: false }); + if (ids.length < 2) { + throw invalidParamError( + `a passage must tokenize to at least 2 tokens to be scored, got ${ids.length}`, + ); + } + const pieces = byteLevelPieces(tokenizer, text); + if (pieces.length !== ids.length) { + throw computeError( + `the tokenizer returned ${ids.length} ids but ${pieces.length} byte-level pieces`, + ); + } + const result = (await ( + model as unknown as (o: Record) => Promise<{ logits: Tensor }> + )({ + input_ids: idsTensor(ids), + attention_mask: new Tensor("int64", BigInt64Array.from(ids, () => 1n), [1, ids.length]), + })) as { logits: Tensor }; + const [, seqLen, vocab] = result.logits.dims as number[]; + if (seqLen !== ids.length) { + throw computeError(`the forward pass returned ${seqLen} positions for ${ids.length} tokens`); + } + const data = result.logits.data as Float32Array; + const nll = new Array(ids.length).fill(NaN); + for (let t = 0; t + 1 < ids.length; t++) { + const row = data.subarray(t * vocab, (t + 1) * vocab); + // log softmax at the target, computed stably — there is no log_softmax helper on + // a transformers.js tensor, and materializing probabilities for a 50k vocabulary + // at every position would be needlessly expensive. + let max = -Infinity; + for (let i = 0; i < row.length; i++) if (row[i] > max) max = row[i]; + let sum = 0; + for (let i = 0; i < row.length; i++) sum += Math.exp(row[i] - max); + nll[t + 1] = -(row[ids[t + 1]] - max - Math.log(sum)); + } + (result.logits as unknown as { dispose?: () => void }).dispose?.(); + out.push({ pieces, nll, nChars: text.length }); + } + return out; +} + export const runtime: ArchRuntime = { info: () => ({ ...generationInfo }), @@ -333,4 +411,6 @@ export const runtime: ArchRuntime = { }, generate: generateImpl, + + scoreTexts: scoreTextsImpl, }; diff --git a/code/frontend/src/viz/arch/ArchitectureExplorer.svelte b/code/frontend/src/viz/arch/ArchitectureExplorer.svelte index 6d73b06..3b40b2c 100644 --- a/code/frontend/src/viz/arch/ArchitectureExplorer.svelte +++ b/code/frontend/src/viz/arch/ArchitectureExplorer.svelte @@ -21,6 +21,7 @@ import { view } from "../../lib/stores"; import ArchInspector from "./ArchInspector.svelte"; import ArchTracePanel from "./ArchTracePanel.svelte"; + import VacancyScorePanel from "./VacancyScorePanel.svelte"; import { evictArchGraph, fetchArchGraph, formatCount, plainError } from "./archShared"; import { STATIC_MODE, isStaticMiss, staticExtras } from "../../lib/staticUx"; import type { TraceIndexEntry } from "../../lib/staticClient/arch"; @@ -487,6 +488,11 @@ onHighlight={(id) => (highlightId = id)} onRetry={() => traceArgs && runTrace(traceArgs.m, traceArgs.p, traceArgs.sp)} /> + + + diff --git a/code/frontend/tests/e2e/archVacancy.spec.ts b/code/frontend/tests/e2e/archVacancy.spec.ts new file mode 100644 index 0000000..92e3fb5 --- /dev/null +++ b/code/frontend/tests/e2e/archVacancy.spec.ts @@ -0,0 +1,114 @@ +import { expect, test } from "@playwright/test"; + +/** + * The pretrained arm of the vacancy instrument, driven against the REAL backend + * (feature 007, contract §8; SC-707/707a/707b). + * + * Two runs: the pooled default set (which resolves the small effect and lets the + * measured ordering be asserted), then a single short passage, which must NOT be + * presented as if it resolved anything. + */ + +/** A short passage: ~60 preserved tokens, far too few for a 0.1-nat effect. */ +const PASSAGE = [ + "Hey diddle diddle, the cat and the fiddle,", + "The cow jumped over the moon;", + "The little dog laughed to see such sport,", + "And the dish ran away with the spoon.", + "Little Jack Horner sat in a corner,", + "Eating a Christmas pie;", + "He put in his thumb, and pulled out a plum,", + "And said, What a good boy am I!", +].join("\n"); + +test("scores a passage and reports the decomposition, never the conflated total", async ({ + page, +}) => { + test.setTimeout(300_000); + await page.goto("/"); + await page.getByTestId("tab-architecture").click(); + const panel = page.getByTestId("arch-vacancy"); + await panel.scrollIntoViewIfNeeded(); + await expect(panel).toBeVisible(); + + // The default: the six shipped corpus excerpts, pooled — the configuration the + // reference numbers were measured in. Pooling matters here rather than being a + // nicety: the "unknown form" effect is a tenth of a nat, and one short passage + // cannot resolve its SIGN, let alone its size. + await page.getByTestId("arch-vac-run").click(); + + // Real download + three forward passes on a cold cache. + await expect(page.getByTestId("arch-vac-table")).toBeVisible({ timeout: 280_000 }); + await expect(page.getByTestId("arch-vac-error")).toHaveCount(0); + + // The three variants, each with its own real statistics. + for (const v of ["english", "swap", "nonce"]) { + await expect(page.getByTestId(`arch-vac-row-${v}`)).toBeVisible(); + } + + // The two LABELLED differences, in words, with real numbers. + const wrong = page.getByTestId("arch-vac-wrong_content"); + const form = page.getByTestId("arch-vac-unknown_form"); + await expect(wrong).toContainText(/\d\.\d{3}/); + await expect(form).toContainText(/\d\.\d{3}/); + await expect(panel).toContainText("the cost of wrong content"); + await expect(panel).toContainText("the cost of unknown form"); + + // nll(nonce) − nll(english) appears ONLY as the small, explicitly-labelled sum. + const total = page.getByTestId("arch-vac-total"); + await expect(total).toContainText("nll(nonce) − nll(english)"); + await expect(total).toContainText("conflates"); + + // The tiny arm's exact 0 is beside it — that juxtaposition IS the 2×2 (FR-719). + await expect(page.getByTestId("arch-vac-tiny-arm")).toContainText("0"); + await expect(page.getByTestId("arch-vac-tiny-arm")).toContainText("exactly"); + + // The honesty block: the residual, the confound, the alignment mechanism. + const honesty = page.getByTestId("arch-vac-honesty"); + await expect(honesty).toContainText("UPPER BOUND"); + await expect(honesty).toContainText("higher entropy"); + await expect(honesty).toContainText("UTF-8 byte spans"); + + // The measured ordering: wrong content costs more than unknown form (SC-707b). + const value = async (testid: string): Promise => { + const text = (await page.getByTestId(testid).innerText()).match(/-?\d+\.\d{3}/); + if (!text) throw new Error(`no number rendered in ${testid}`); + return Number(text[0]); + }; + const wrongNats = await value("arch-vac-wrong_content"); + const formNats = await value("arch-vac-unknown_form"); + expect(wrongNats).toBeGreaterThan(0); + expect(formNats).toBeGreaterThan(0); + expect(wrongNats).toBeGreaterThan(formNats); + + await panel.screenshot({ + path: "tests/e2e/__screenshots__/arch-vacancy-score.png", + }); +}); + +test("a passage too short to resolve the small effect says so instead of concluding", async ({ + page, +}) => { + test.setTimeout(300_000); + await page.goto("/"); + await page.getByTestId("tab-architecture").click(); + const panel = page.getByTestId("arch-vacancy"); + await panel.scrollIntoViewIfNeeded(); + + await page.getByTestId("arch-vac-defaults").uncheck(); + await page.getByTestId("arch-vac-passage").fill(PASSAGE); + await page.getByTestId("arch-vac-run").click(); + await expect(page.getByTestId("arch-vac-table")).toBeVisible({ timeout: 280_000 }); + await expect(page.getByTestId("arch-vac-error")).toHaveCount(0); + + // ~60 preserved tokens: the standard error swamps a tenth of a nat, and the verdict + // must say that rather than reading a conclusion off the sign. + const pairs = Number( + (await page.getByTestId("arch-vac-unknown_form-err").innerText()).match( + /([\d,]+) paired tokens/, + )?.[1]?.replace(/,/g, "") ?? "0", + ); + expect(pairs).toBeGreaterThan(0); + expect(pairs).toBeLessThan(300); + await expect(page.getByTestId("arch-vac-verdict")).toContainText("does not resolve"); +}); diff --git a/code/frontend/tests/e2e/static.spec.ts b/code/frontend/tests/e2e/static.spec.ts index 2ff9f20..832efef 100644 --- a/code/frontend/tests/e2e/static.spec.ts +++ b/code/frontend/tests/e2e/static.spec.ts @@ -352,3 +352,51 @@ test("real in-browser generation on the smallest model", async ({ page }) => { fullPage: true, }); }); + +// --------------------------------------------------------------------------------- +// [g] The vacancy instrument's pretrained arm — computed live, reported NARROWLY +// (feature 007, contract §8.3a / FR-720a / SC-707b). The browser runs a quantized +// export, so it may state only what was MEASURED for that dtype: pooled +// `swap − english` and `nonce − english` with the measured ±0.1 nats, and nothing +// else. This drives the built site and asserts it does one or the other — never a +// bare number. + +test("the vacancy panel reports only what q8 has a measured bound for", async ({ page }) => { + test.setTimeout(600_000); + await page.goto(BASE); + await page.getByTestId("tab-architecture").click(); + const panel = page.getByTestId("arch-vacancy"); + await panel.scrollIntoViewIfNeeded(); + await page.getByTestId("arch-vac-run").click(); + + // Real ONNX download + 18 real forward passes (6 pooled excerpts × 3 variants). + await expect(page.getByTestId("arch-vac-table")).toBeVisible({ timeout: 560_000 }); + await expect(page.getByTestId("arch-vac-error")).toHaveCount(0); + + // Refused: nonce − swap, by name, with the reason and the command that would fix it. + const refusal = page.getByTestId("arch-vac-refused-unknown_form"); + await expect(refusal).toBeVisible(); + await expect(refusal).toContainText("sign flip"); + await expect(refusal).toContainText("uvicorn"); + await expect(page.getByTestId("arch-vac-unknown_form")).toHaveCount(0); + + // Refused: the absolute NLLs and every per-passage row. + await expect(page.getByTestId("arch-vac-refused-absolute")).toBeVisible(); + await expect(page.getByTestId("arch-vac-refused-passages")).toBeVisible(); + const english = page.getByTestId("arch-vac-row-english"); + await expect(english).toContainText("—"); + + // Reported: the two pooled differences, each with the MEASURED quantization ±. + const wrong = page.getByTestId("arch-vac-wrong_content"); + await expect(wrong).toContainText(/\d\.\d{3}/); + await expect(page.getByTestId("arch-vac-wrong_content-err")).toContainText("0.2 (quantization, measured)"); + + // The residual caveat is stated even where the number is refused: a reader must not + // have to earn the caveat by being shown a value. + await expect(page.getByTestId("arch-vac-honesty")).toContainText("UPPER BOUND"); + await expect(page.getByTestId("arch-vac-honesty")).toContainText("higher entropy"); + + await panel.screenshot({ + path: "tests/e2e/__screenshots__/static-arch-vacancy.png", + }); +}); diff --git a/code/frontend/tests/fixtures/arch-vacancy-passages.json b/code/frontend/tests/fixtures/arch-vacancy-passages.json new file mode 100644 index 0000000..2ba3597 --- /dev/null +++ b/code/frontend/tests/fixtures/arch-vacancy-passages.json @@ -0,0 +1,50 @@ +{ + "note": "Digests of the default passage set of contract §8.3a. Written by scripts/export_arch_vacancy_golden.py from the real corpus; asserted against the browser's own cut in tests/unit/archVacancy.test.ts.", + "corpus_sha256": "d514f0fd2cd40967eb6cf35b140a6cddc11200126e07d76603fae3f88bf1e0ab", + "count": 6, + "words_per_passage": 250, + "passages": [ + { + "index": 0, + "sha256": "31e1b77674aa4b0b3c599ddbfbfb33bb437716d2147cec7455d36fb9431c0452", + "n_words": 252, + "n_chars": 1396, + "head": "\"She is lamed, leaping over a stile.\" \"Alack! and I must ke" + }, + { + "index": 1, + "sha256": "74d2d5a416328bb587c6767bdb5152f28b0d2e7f75414f33b9ff71138758f360", + "n_words": 255, + "n_chars": 1413, + "head": "ABOUT THE BUSH About the bush, Willie, About the beehiv" + }, + { + "index": 2, + "sha256": "b4dc966fca010cc20a3a0473159206452252e2766d7538bb9b5422025ed119b6", + "n_words": 251, + "n_chars": 1285, + "head": "In a velvet coat, He kissed a maid And gave her a groat. The" + }, + { + "index": 3, + "sha256": "3f0bb57d5f59ef4a2f964c89287ef7cf1cd9d748416d8b7389c7bd57bf947be5", + "n_words": 256, + "n_chars": 1370, + "head": "That kissed the maiden all forlorn, That milked the cow with" + }, + { + "index": 4, + "sha256": "56237a4fd99b8c3cfc8ca3a8833e52929a21c544da94b89f75a643d2991eb114", + "n_words": 254, + "n_chars": 1410, + "head": "Saturday's child works hard for its living, But the child th" + }, + { + "index": 5, + "sha256": "0f12a7366b1baa64d4bce99978c273200b98a7395a0e1238ef32b3c98f55af25", + "n_words": 253, + "n_chars": 1433, + "head": "And ne'er went up again. PETER PIPER Peter Piper pick" + } + ] +} diff --git a/code/frontend/tests/unit/archVacancy.test.ts b/code/frontend/tests/unit/archVacancy.test.ts new file mode 100644 index 0000000..e4a044e --- /dev/null +++ b/code/frontend/tests/unit/archVacancy.test.ts @@ -0,0 +1,212 @@ +/** + * The pretrained arm, browser side (contract §8; FR-717…720a). + * + * Real tokenizers and the real transform — no fabricated pieces anywhere. What this file + * does NOT do is download 280 MB of ONNX weights: the arithmetic on real logits is + * asserted by the backend's suite (which runs the same algorithm at float32) and by the + * static e2e, which drives the built site with the real quantized model. What is left + * here is exactly what can be wrong silently: + * + * - byte-level alignment, which mis-attributes rather than failing; + * - the passage cut, which must be the SAME six excerpts the backend scores; + * - the static build's reporting policy, which is what keeps a quantized number from + * being presented as a measurement. + */ + +import { describe, expect, it } from "vitest"; +import { AutoTokenizer } from "@huggingface/transformers"; + +import { WORD_RE } from "../../src/lib/lexEngine"; +import { + defaultVacancyPassages, + pairedDifference, + pooledStats, + preservedWordIndices, + staticVacancyDifferences, + vacancyVariantTexts, + VACANCY_ABSOLUTE_REFUSAL, + VACANCY_PER_PASSAGE_REFUSAL, +} from "../../src/lib/staticClient/arch"; +import { + preservedTokenIndices, + tokenByteSpans, + wordSpans, +} from "../../src/lib/staticClient/byteSpans"; +import { readStaticJson } from "./staticTestUtils"; +import golden from "../fixtures/arch-vacancy-passages.json"; + +const TEXTS = [ + "The cow jumped over the moon, and the little dog laughed.", + "café naïve — “owl” ≈ ç√ 東京 end", + " leading and\ttabbed\nnewlines ", + "don't good-bye o'clock", +]; + +async function pieces(modelId: string, text: string): Promise { + const tok = await AutoTokenizer.from_pretrained(modelId); + const inner = (tok as unknown as { _tokenizer: { encode(t: string): { tokens: string[] } } }) + ._tokenizer; + return inner.encode(text).tokens; +} + +async function sha256Hex(text: string): Promise { + const digest = await crypto.subtle.digest("SHA-256", new TextEncoder().encode(text)); + return Array.from(new Uint8Array(digest)) + .map((b) => b.toString(16).padStart(2, "0")) + .join(""); +} + +describe("byte-level alignment (§8.2, FR-718)", () => { + for (const modelId of ["gpt2", "Qwen/Qwen2.5-0.5B-Instruct"]) { + for (const raw of TEXTS) { + it(`tiles ${JSON.stringify(raw.slice(0, 24))} exactly on ${modelId}`, async () => { + const text = raw.normalize("NFC"); + const spans = tokenByteSpans(await pieces(modelId, text), text); + const bytes = new TextEncoder().encode(text); + // A true partition: contiguous, covering, ordered — so a per-token quantity can + // be summed over a word without double-counting. + expect(spans[0][0]).toBe(0); + expect(spans[spans.length - 1][1]).toBe(bytes.length); + for (let i = 1; i < spans.length; i++) expect(spans[i][0]).toBe(spans[i - 1][1]); + const joined = spans.flatMap(([a, b]) => Array.from(bytes.slice(a, b))); + expect(joined).toEqual(Array.from(bytes)); + }, 60_000); + } + } + + it("raises rather than mis-attributing when the pieces do not rebuild the text", async () => { + const text = TEXTS[0]; + const p = await pieces("gpt2", text); + expect(() => tokenByteSpans(p.slice(0, -1), text)).toThrowError(/alignment failed/); + }, 60_000); + + it("attributes a leading-space token to its word (overlap, not 'starts inside')", async () => { + const text = "the cow and the moon"; + const spans = tokenByteSpans(await pieces("gpt2", text), text); + const words = wordSpans(text, WORD_RE); + expect(words.map((w) => w.word)).toEqual(["the", "cow", "and", "the", "moon"]); + const got = preservedTokenIndices(spans, words, new Set([0, 2, 3])); + // gpt2 gives one token per word here, so the three closed-class words are three + // tokens — each of which starts one byte BEFORE its word, on the space. + expect(got.length).toBe(3); + expect(spans[got[0]][0]).toBeLessThanOrEqual(words[0].start); + }, 60_000); + + it("refuses a token that spans a preserved and a vacated word", () => { + const words = wordSpans("the cow", WORD_RE); + expect(() => preservedTokenIndices([[0, 7]], words, new Set([0]))).toThrowError( + /spans both/, + ); + }); +}); + +describe("the three variants (§8.3)", () => { + it("preserves the scaffolding byte for byte and moves everything else", () => { + const passage = "Hey diddle diddle, the cat and the fiddle,\nThe cow jumped over the moon."; + const texts = vacancyVariantTexts(passage, { p: 1, seed: 0, matchProsody: true, keep: [] }); + const { words, preserved } = preservedWordIndices(texts); + expect(preserved.size).toBeGreaterThan(0); + for (const name of ["swap", "nonce"] as const) { + const variant = wordSpans(texts[name], WORD_RE); + expect(variant.length).toBe(words.length); + for (const i of preserved) expect(variant[i].word).toBe(words[i].word); + } + // …and the two vacated variants really differ from each other: a real English word + // where the nonce variant invented one. Without that the decomposition is vacuous. + const swap = wordSpans(texts.swap, WORD_RE); + const nonce = wordSpans(texts.nonce, WORD_RE); + const moved = words.filter((w) => !preserved.has(w.index)); + expect(moved.length).toBeGreaterThan(0); + expect(moved.some((w) => swap[w.index].word !== w.word)).toBe(true); + expect(moved.some((w) => nonce[w.index].word !== swap[w.index].word)).toBe(true); + }); + + it("is the identity at p = 0, so every variant is the same text", () => { + const passage = "The cow jumped over the moon and the little dog laughed."; + const texts = vacancyVariantTexts(passage, { p: 0, seed: 0, matchProsody: true, keep: [] }); + expect(new Set(Object.values(texts)).size).toBe(1); + }); +}); + +describe("the default passage set is the one the backend scores", () => { + it("cuts byte-identical excerpts from the shipped corpus", async () => { + const corpus = await readStaticJson<{ text: string }>("lex/corpus.json"); + const cut = defaultVacancyPassages(corpus.text.normalize("NFC")); + expect(cut.length).toBe(golden.count); + for (const row of golden.passages) { + expect(await sha256Hex(cut[row.index])).toBe(row.sha256); + expect((cut[row.index].match(new RegExp(WORD_RE.source, "g")) ?? []).length).toBe( + row.n_words, + ); + } + }); +}); + +describe("what the quantized static build may say (§8.3a, FR-720a)", () => { + const swap = { nats: 0.83, se: 0.09, nPairs: 780 }; + const nonce = { nats: 1.01, se: 0.1, nPairs: 780 }; + const diffs = staticVacancyDifferences(swap, nonce); + const byId = Object.fromEntries(diffs.map((d) => [d.id, d])); + + it("refuses nonce − swap with a typed error that names the full stack", () => { + const d = byId.unknown_form; + expect(d.nats).toBeNull(); + expect(d.se).toBeNull(); + expect(d.refused?.type).toBe("StaticModeError"); + expect(d.refused?.message).toMatch(/full stack/); + expect(d.refused?.message).toMatch(/uvicorn/); + // It must say WHY, in measured terms — not "unavailable in this demo". + expect(d.refused?.message).toMatch(/0\.16–0\.27/); + expect(d.refused?.message).toMatch(/sign flip/); + }); + + it("reports the two pooled differences it has a measured bound for", () => { + for (const id of ["wrong_content", "total"]) { + expect(byId[id].nats).toBeTypeOf("number"); + // The stated ± was MEASURED for q8; nothing here invents one. + expect(byId[id].quantizationUncertaintyNats).toBe(0.2); + expect(byId[id].refused).toBeUndefined(); + } + }); + + it("never headlines the conflated difference", () => { + expect(byId.wrong_content.headline).toBe(true); + expect(byId.unknown_form.headline).toBe(true); + expect(byId.total.headline).toBe(false); + expect(byId.total.note).toMatch(/conflates/); + expect(byId.unknown_form.upperBound).toBe(true); + }); + + it("refuses absolute NLLs and per-passage deltas by name", () => { + expect(VACANCY_ABSOLUTE_REFUSAL.type).toBe("StaticModeError"); + expect(VACANCY_ABSOLUTE_REFUSAL.message).toMatch(/−0\.19|\+0\.40/); + expect(VACANCY_PER_PASSAGE_REFUSAL.message).toMatch(/115 %/); + expect(VACANCY_PER_PASSAGE_REFUSAL.message).toMatch(/full stack/); + }); + + it("withholds the absolute numbers but not the token counts", () => { + const stats = pooledStats( + [{ pieces: [], nll: [NaN, 1, 2, 3], nChars: 40 }], + [[1, 3]], + ); + expect(stats.nllPreserved).toBeNull(); + expect(stats.nllAll).toBeNull(); + expect(stats.bitsPerChar).toBeNull(); + // Counts are exact at any dtype, and they are what show a nonce variant fragmenting. + expect(stats.nTokens).toBe(3); + expect(stats.nPreservedTokens).toBe(2); + expect(stats.nChars).toBe(40); + }); +}); + +describe("paired differences", () => { + it("pairs preserved tokens one-for-one and refuses a mismatch", () => { + const a = [{ pieces: [], nll: [NaN, 1, 2, 3], nChars: 10 }]; + const b = [{ pieces: [], nll: [NaN, 1.5, 2.5, 9], nChars: 10 }]; + const d = pairedDifference(a, [[1, 2]], b, [[1, 2]]); + expect(d.nats).toBeCloseTo(0.5, 12); + expect(d.nPairs).toBe(2); + expect(d.se).toBeCloseTo(0, 12); + expect(() => pairedDifference(a, [[1, 2]], b, [[1]])).toThrowError(/cannot be paired/); + }); +}); diff --git a/code/frontend/tests/unit/staticClient.test.ts b/code/frontend/tests/unit/staticClient.test.ts index bfc3dfd..baea31a 100644 --- a/code/frontend/tests/unit/staticClient.test.ts +++ b/code/frontend/tests/unit/staticClient.test.ts @@ -164,6 +164,13 @@ describe("live runtime seam (no model downloads)", () => { calls.push(["tokenize", modelId, revision, text]); return { model_id: modelId, tokens: [{ token: 1, token_str: "x" }] }; }, + // The vacancy measurement is not the seam under test here; it has its own suite + // (archVacancy.test.ts) and its own e2e. Recording the call and refusing keeps a + // stray route from silently scoring nothing. + scoreTexts: async (onnxRepo, texts) => { + calls.push(["scoreTexts", onnxRepo, texts.length]); + throw new Error("this runtime seam test does not exercise scoring"); + }, generate: async (body, onnxRepo): Promise => { calls.push(["generate", body.model_id, onnxRepo]); return { diff --git a/docs/screenshots/feature-007/arch-vacancy-score.png b/docs/screenshots/feature-007/arch-vacancy-score.png new file mode 100644 index 0000000000000000000000000000000000000000..f8ca64f19d3488621e5398600483b53f7a64345b GIT binary patch literal 246440 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
=j!mug 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
>%W10X-$v+A8!W-wI_&(0L7S2qSy^jvb1hukmk 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⋙tj|8~a3D;(;l8ogwL-j?VQ}U5SK&P^Y7_pHqk@>YjULSujY2 zGygWy0X?OhueYU{V@&EVo`34ahvkHa?Gwb_Xx`fkJ zCPI)bhg=)2g(!R@F68(!-)0Cd6s}JbAmjPtQD(958;XI?j*+m(vA!sWFU6? zqjJ_4*}7rFF=Jb-WR|VhZm9}DTGzkjxZ2)dr^NCHIwzXj9Yf^nsd(euFS@aExtVuy zKviyXxe8OUPOFIJTEBO|@10cK zXpMJI#~uA5wfKs|KFx8w5olt999(E5X@G;nk>{(<2Q!08IMw@27q{Ht4FM~#^cf5y zG~OgCXH$+y@sQcSAyJ zK7UfHy3Ly8bGV#D9%PCzx1cGS1o<-@?UOmb?s;v1wR^NFTQ%#a!#ggnirQLvekLY1 zHtbi-(phpjiZ5m`138(pgGoE~$b&yyyO;zHZ_3Z=9XzRBZ5jL8)d2|(L&|tn_>I=0 z=9PXCV}`a|mYnDNIL9B?OM%*fcRt;Z)ChL5)#{<<9?K4omyO?UyyEnqnpF$pGC!+9 zeL9FZ|LjO=fSxh?h$+*Q)B|)c#3@xvcX1dAcxJ3c7Cw@m{4QD~z1(n}+wz}JU6|)1 zDF$=xKq#oG&9|#ne)pVlWB-^U?C0KuPI5Yb-oopD6z-D7m}x94`@d!hBf4C2&+p1J zj2%LOlAjO%9;HHgX6Jpj6~=E8$D`3yWK3czGo zw=2cZ_yo1B8&G3g!0HS=(-=qFiB2waTj)W>v{fI0lx zO&f&7mP1WUO}iOX1bN$^aRCaKYJ9?0?9X9(;}!`#LBJ8NuK$=)$#^ptv|~Mkxij;~ z?`;1Bx4op}iOVXEJzAUh+fP5I{dqsvN;kwb1V>4~?DT_M7_l2Im_I)AJEknm;S~qnbM>Q!Y?j-GjYbwVi9G z%C|m$Py3zzMhR(|jE3n!R;E&8tooy)!{K}VkCk4jiEnm=UG1@++O90JLelftEV?Y* z9tqqJnZtvX9x~@^F28_(@{>nsI}}r9m1Z4h$Oq!DC7o3AuF&bHQ1!sTvMSXk-dm<5 zt`&gP>hGh&OT(25jhJ`D(wG0Gq%OH!??!N0v4^hu^{XhR3Qwg?b#zXyIla3ZCvWvL zCLQ;%V4KXw>Fqsoq4R5Tg44MygzZnFHv}mQfiv*t;n|PII|;mq{_%Z-EZDEGbMo?B zj=JUYV&$Cg%4yLf-MFJCXBjsO>?5P1#Kgra9?ucVYvpeiRUe)cakAy8qQx^_=u6lr zyluqp)mV=8^sFQEz4Q*o%`Z$7jOqm?f-EMVWV!Wh^m0ar-Tp8%FK=ffXxGe?Cst%Q z8GFI@^ctq9s+ja-#CsdMm_BijaCv}*gHz%dONov;TXXk&Khek~Tnf*SI-^4>)1Rze z+}X}NgZQb~;=^ReP}r)|*-l3KZ!uX>9ih31JPP;K5kfaIT@YpVX~=- zla7lTLeaoyKP)^piZ=c|ev3~IQ_TjWe5wo;g^zPzoNgprviYaQMk+WHBIp{+csw~5 zYaHkMT67+`1FBF^%66g9_tQpM1>RaS8QKUUL2*|PqT;)|JA+A_!xg5!lzN!7kSizC z*%Jgf4_>DWSy{y_SO)6j;fVS{7BLPdJRc`p8k*k4M+?Mt_p>9uLnF5b$mL-NDjwU) zS+~XK&O2zhT8RJNr2DU=`qqj5#%@PqKT~(JwRNP7PD%e7C%=n^r81WjYWIL7epj8V z97{J3_1+$_h;ZT((RZffUA;J>L0O0lnjH3dc;X5=xYgoaUB0}#(3v2wemQ8rG56r>7B3U&)T!LKZfpiYHttkBNgYIu~{MNzWuUF#q9*xTJ4eE^w zlkY)KZ!03SSl4`WUWR4B8_wKVUGAk8gT9>iT=hG8Bh~9aSL<|Sde>`dUt7$xLh-I$ z6Z~)16p^~yMS5f)ySS`AJDY{P%@*$(EaoK$I!CcJ(e(c`z~$EVCS2pIJeg7Q;D%aj z{;{?22(_DG>DtP+LY|XG+Z%JY<;FX5F(op8rEdeiy$p?G*I>G=N12$uyyUdPn0eyT zdo;z&I&0$qr*sLjAxDcMW?p-Va=|a@TLYBhOWJnA6ZO|(&>DkVc=B_f`~07!Lpi6# z&pQ0y6)9n$D>sZ}?P&JX zH?-NZ-SKb4c2(ImG|bGB$&N2jdQ&i4aoy@$@wRhwsXzOxfJc=YZK}h&Ue7!`!}zI< ztc%+!)VlXd=w;avf3#J#AlFFPLq|6A$%-V^pr)iN5~uYF!^4Vsz$lVz?Bq2hRPpqzXDn-rZ zKJ-Mu_sOZ#Gx&2x z=2s}y-XSR5+?~Nmu5s*MOUo=UFzrq3BrsHC`31Xb!5j>@*-Gi9>FKGYA&%oys1ccM z4mSz$;b*As!WRf^YV;~7F;t5)y;B>3D4;%!lkObkU#XWPf?7k@OX-+A`Y6@*7bfYn!jW25;sEXx=x zJSve!Xo~r0O?klggtD=`c!=Y{i5aJKv1NA6YDN5!%a9`j{oWpeW2(>!D1L$!l2 zmlgZ?1O%s6j*4a?f!B}k(#9V;((=`I}i-O-v zQAvEZHg@MbTlXB)g5M0HBC-4!(oLNi5C9jv!c_=9Ha-pl$vWF+&oQvj{Qf;5v+dc; zcMSU%S6S)%CuAf4s5;$zL8?U*2^3L`9W1 zc%(Hn2!47Lq^CFIRE~?f^YXXTyG(Xg}9gC+KWa2ymQiGYe&Z%21>wCs8V5AS-5lKl}SINM+rwLoPy37J1UA;L&Y z%TTAKR(JC*E<#~4q}q+{WCYIcWT3$#+3)Ix<>;7kU|LOW}8fLxwT)6&*+*jd~!?t^w`phD)$I4 z>h(b!(g&^qCgtGo94Y`~lm24Yai(mZ``z$)jHV1*3jGt%Z2){Cw=+#*-YWK&iI(Xp zx#_aftZN+XwID*?Fi8?7CmzL#5F%b&XIlNEVszBt0Y$}EkYL|o(X-2CFK0YN&LSnPLm#fM&iGV^Z zRU#(hL_-8)gF6)6*B>>5_Hx9$xTfZ&8Mao(T!VzwEWDwCuhumOY4@NY777WeJl$EF zE`%kosIbMw;M$oe*wXDpb#y9&%u~Oo4b$~nUZk67S|{c$Yplt3YMY|0wc7f{gk?<3 zUH51ycUOftdUlQy=iWGZMal>Bk4gpKIE&syu7-)u->h9|JM~f{OUP*%HR=qYpYV%+Glc;FWY6u%#Zr>^v+Sv zr{nMx*3Wm=A|i291{<$~9!B=oroXh9b$pcH#6Zb}kW;qti;1t>CS>wRy=R7kJMd%J z_%dwmbQ>tsZMU|FE{`7iV|UL&lJ1)8XW1qS4muXbMkmd4%ySC!XlUMD0hvvNVmXQ2 z5*_(4xHhu3(tNlHXfvvnrCCIs1i|%s2IdU9kRii1Z>VzI_Ss;DDZ(UMGH`yR-b?#> zbR}b0ZZ*-{k+M@l0^Glf?|xx<6|_);mlPQ(0LwHyIX~ktSBE~{oKFVVY~qM|uy{Tk zJ}9iOsG&h&Wili%HZIO$aj@5Izxb#i8MH!%Vt`Xw^p$Sis(N}lZfshpo_(_LBO?sV z5FywwQ@!P6Ww#fgArVjl(TETG$DU_BJukw33BS3ZpcP8aqsYqPs z>JwtRO1}M|>^MEjYW$9lc6dz&EtJCh*}1fNR&Q_j_SokM%!QGPsN$X;tBviNNgkBK ztKGu%^gJ;l8C^<=g4~TP0(?B#BT-l`uA2G}@Jh2~>Buaz3GC_AOne8+`x8ve`V2Y0 zsoX6drP|u9ZOh9?UQkRak6<_V%F8yRS`bu?55D-)d6CmKMV%$RDNw5#itNJv_8eV9ar0W&rI7dbgOMS0fB z;?yR+W^R&_?XneC)|fbVex6@wFfV*Si2xSN8q{*n*_oNcxe7o0mZU`W4>u?}8qk&W zmRftA%Yz%$onVPTYIz4u0;0n zmH^xHGq?;E3F`MJjcXOgIYkV#w6mo~UY|(XLx+aF;T#(u4=H!1w&x*@GZD9o_=AZr z_^o%UqRJ&dHG0f&)rg`VWGPNA@gNe6jgPHsevF7Omygf<{hP;aB``z#7NoMy4-E;V z#RT?YVQug1B8r@!oyBfsYZ6B7l7N}8JPdu_QUYcd*NMCzZJv^EM@$vtgHw7UpK zeq;(kNsgM_M;RAJIdW(=sdSRgkK?r4$xt;Cl z7P|!%$~XPYthbc1j3TYq*VU$TJh|M$lIrtNQ-o`r;kQQI!f&|Xkpq$8&~TJhRJI9t zE@2R(WE3Uo7#L#SL{C&)M1Ns>kDY`|vbjnCV9VmIWegm52ROszVq9!Lj}O=LwcTfZ zv3V_yEDUhiHx|(vF_6Fwkcbo)`aVf2<$fmgXQWjR?w|6&L zBz!@@*fz1ST-4vl#E@A``goL9pGMXxTM!e!2GA(V9gVY_3-d~7Ar&O9H`Df-?i5`T zymYshCL|o+IN*?b#Cn!R(V`>R(!Vb;UuZ ztIPS%B~1@J8;e})Jaj8|7`!O>{28%TB#_torfP|a(ud?ciI<4aw4*MsCogiX?d%K- zFCe?XOkbPxF$oP6p(Q2krO>x?R8+@PFH1~!Nm@mN4u_dP3JXV_P>MB19BDp7TY>%I zNsXsk6|2g<@$Kz<7#N+kYCe`-{1v?S4178SWbDQZg}J$54zp1o6^gRrc~7kj)5hy4 z=Ly#1m~BOW@nAEA`M^U83oEMiGJ*qYX1GcW93p>Ru^AmyV2I9>_R!G08O$*>Hda(r z^k2(F#U|I&yV!3nweEpFclo^NcN*Up@in;QTTr)4ZKa#dH4 z5dZcqJvAQ`Tg%s9Wgne65rP_>S8zC)8&7(l!_>)6?ZP^NwN^O4u+aF+LrjQLCY{1e z;<}%b!}MDIn}ATcYV)@%xqt3){Hu=`K}JD=mNJu@ z+0h>=K07%;)i6q+DdrJPYGd!ccU~5BfstW+MhBBBle7CnM?q21n`maRY1iYQ4=~ub zsjzmqQgO%jBVrQz|NH*SGMFDiX@#&yBtQQCoP{&)-=Bj4dxIL-8(?5k9gi&VVW@CD z|J>VSwlEK{|9qWn1X?K}b%Z5;7&OR}AD(|(tN;6Jr{x-{{D}%SwgRK3k)Dp}a+HLe z%*?&z>4pe<9J{f$sWFK7k2pv1Tq#*?77oIVpy4!K15{D@x3co``CeZQHdr%~KnM0N z`Qd4;fU*O@MHxJs&blD)I##2& zdp4#ZhCVRC{VnzX>U^r^;KkTM`#4^!SxH=PYNGP$)hh)B1rCntXP4We+ZVx7aE{dq zT+4A59Qf+aXBS5%?vD$mf*$*OMB-xpz1N)ANOI@rNPEMyZGA28naPsq5cRULZZ`LJ zzI^>USg1aGp%ENRZ#v@u8aKw*^uZMs9%-*lE%aVR{q95dPr5a^Bu;eM|KQ@^~a2yDs1*jU+FFmGC-cN5%*{?gt3dCte@ z|7x&hLL;ImO+~vT&Dk#cVDF;*6*{rJXR?de;M%p`-N`rf ziIS48pzVsv3tZMlfI^wy6_^T%24@h*0!+v3G~9=m8{ z>O`Ts*d3ENY&Lw4HXj? zM$sK9R^%)6ax-s5OdMVnw~Zymn&j&onr6Lpxl|IvLs;Lf6gNaN0Y1==^-V zN+B^i$^Py1j0876EZXU+i8vVE;H>I1a%*k5S=-jJk4Q&nFmYi0D`tnO=NCRyA3kKH zn(_A1(x8$|sj7T&+Ht@oA6fK8I~c~7?TtAwpb}y@?W?RUx89ziAm3c9O1eGteOA#_`Odb7{;S@R?Ar3peTHPS z9komeC_*!QF96{t1ed!+xt6r}yEIqRKr(8h)%8=wb#nUjyqX@UE5b!a#XfiR*GS%J zv3X~s?X4l%_^3D#j$4@Az|-l&0$Np2bd$FW2bP9sWI*4$BOH(P_nn=e!-;1OZEc0Y zmPKuKp(oenYbTanKipV#|OXk@BpDH>yBSKtOd)eC>Vr^Zz zZ7wBM@yVyf)5SQ5o-R8%ss+qc=4}oex@nl1N=kMH^8vTFlf$Fb7m=H=54Uw(PS6Oj zFv%*07|%v(st_Ab@!75zN=Z$4TN~tPwv6-u|H5Q;E`xy~gK-9Off z{J9sf4rQCSWI_UJ%}4z&*^rD7_+bPBybbtfnI-@ za=+ik7gx|`Xk;YI4u=Ac1)rOFg+)Vt*X$-*?*4`gI{U&P-b!^t9C931dF#MZ<+-DUWWZKx|Kk%s%$BL?xy{O(4B>FcBO zzLhhKmBWpr=}A$L>!*7M?kt?TQ*>@Iz5LwjyKj8c(rjeoX4IcRgtff9_02xx1?Rk7FwdD%3-cE24yorw|=>G1TT`}&SYA9OXjx%mmP@%g!VGMz}m z#U?ct97!=rruxROA4^^fAmCP(4EJQ814)(YEIg^YY^^(9j#PBk|0b;JPPHp@183%a zyoyR-q*tTFo*6IR(Vx=rpYrZ{mrG&L`n@fB;LgrA&a1Uv&i(l*)o$v~pgj1Ai4qtX zpWv&grjP^qe>gkqfGD@M?V|`P5=w`_R-{3Yh9RZ9K|s12!J$K?1PPJuk}m1)6zOK@ zhM}d0`WCp)Ir}}|`~CCHUmMvB!_4!nb>G+ZyY6NB7ooAPtn}zuNl6J~JjVk~gmIMv z#P5oTkQfCOn#^q8A-~yRZjTKYwC8XeqtD38OHO9mP48FX%+UEnKITbz^~CJ}TUvhn z0|(2|>;vi{JIQxA>{gcXV;%@BSj{`+c3X>Fi!bW#XI4oF1oy?BlC-jxsAzRv*~q{| z_D`kanp3Cp^76TAYaD1E7k91SAxT>u4~yfS?e4%pdp_;UZnQvi^GEBF@seA;g#8uU zpe{g}VGz-E-rOKrHZtYdoX}HbB04Hmc*|yZ434ZqNs&iJ*_EuK!{}Sa33DHSv z^KR7m^XAxKAtU*IYb-qAqHXS*&4F4%h%*~iz8Ej#pR6~87Bxmya9{wY6N8-ns{Qwm z?BSIB{1-ngu`D81?YJCfUB_F)PppL9r#)tCjn5L%J+HKpYmXzixK$%MgW_cvr*SW) z8{M=-Rei&R?UgEdoaxKleVmKQA3Wc3Q&i6bU#8hRi z=jRvtUfOJlC)Rr$oknhfP7SCS*-O3%E#QULo}wr|KcYKBxyR@FV&Tqa4NMcww&$## zkN7EO@ao!ufdqM@;DQy97jqz=7He$yyu--_Oz5X&qXI>zDuDm+{d)vQPGxBFUx{jy z)30AMDZ6M8LCv}jyy;|j?!qdBW?YIMn#>U}SU;(>6|FphPZxT0P8Iim!iUMezhJHt z_siFw2I)^qW~C4eo{0vIyp_M7}- zXkOg_s0{*S#V8*jQ=vJ&<&iAM|gwU|)7y!>9D~Cne^v?>Q%bX?$8~yFFE^y;!EAmZ*Vn;zIm|B{fGmGr#Wx&P(FYOZ@M zloD2Pghgi;n)Gah(Qenq%AkdU<8rK*1ShL+Xl$r3KYya$jV5?7d?_PTdU zR<@u`H;gVbmW_?8Ww*?j{frR#3y%>od=o_;s$6A%AT}~HRr$h3NfQzn66bnUfURGN zv|?*DKPK($U;YgYY;%syh?Kf_bPP7E&sIia2)bX@v=g6x&Z3lwsW9(XKV&jMRR6f>TsuhG&KYNR=-@WHn89i6iam?e z6+@a2ZqXsXxg;599*Hxc?_&IjEP8<@ZD2Ii)X7$`kMbPf@A^@|Vt~EcaL%vS1~qN6 zbmG&Z#FENqB*r2PEK)~hR^KYWm8nKS4D{osQHI7oYu`Kaya(MC4Qr~0RJI?CNWi{- z3khBoWsq?Qkq<+8csybm!+p~>iV6>aJHfZ6Phj21`AzBUW0V#;`fghhZI_-}*-Z`R z$8M}*szGkI9j6(V&T53UZE_^Oca4>cBv>C2~I8y0bV{B_)-nYwZY5 zjGHG$`TL16o4k;2ziz!P)U!81!!PJ?)5;@#SZ!`K2TywIs49%#ImK$a{n|MbsGMj} z(ht{2ya}j(tDdwE8HECFrS+Oy03@7`-g^rp zN?U=Y249D>$O4KDNcgR6y5R>|4|1(@+m zOK};A>T6>ajxxX0baeQ+-ba8p2N`LvLlC^jj0CDh;Cu@l(0I5&Wn_BY-H~I)Q@(g9 zyq@;1LDZPYLb(?&z!E`d*1b9PuEp`Ho|_6mJY1rx60x$fTIL1oJPrNx_Rwkabnv)} z;TemfBYhxrDa7in@f%T#98p*A3U^qJ2`JE<^u{}rLVp1FWLzYGcr0^K;; zZ+ml_mxVi*sOUS31V%RIV2y0EHcQDt4-RreIoTX6t*ozCma}nGHO|<(kPVW(k3kX} z6{V!C%~+Rzh3u~rP^Y5QGKGsR4RM`b&hH5Vvk9gd7z+@GB&YLN+MyNO+Ha>6CTRv| zn{(86JwFQZ_4G0hDJc^Z!)e2$qyuJL4=akzRaI0J6q~i0XP+T+KMgMAb9HmBX!P1W zZlh(D4*YVC@e~Fwhsv;cK>w7yLh;RN2d%n^$@fa@-Ie+Itu0uld>4{3>%n1J1pg)K z5kR`MAhfSO{<8jBp=%a?yaV~lVQ#ESY0cSe0d$zDf4j6fQoSaQc6RW|+GH<5P8^)l zpr8>y*I8mk^IzTFW;oE}W5%9-P7Zbw7AqD1kl8Y0wBIfQBiWg`WA&!VWX&FbD*?Zx zNE6FKF46;-@F z9CQENoE!uK<#-*>z(ijXl3iG+22*loRZ-14n+pimzk2o_pL1mNzn3gD%4_daQ#oIP zXxy19PsYU-4dRUMvdk#_^CzRTJ&cU;3EtJdc%$s{e+z73V;W@A0dagGm~IL-7U5>GEPJYGafN=kxQ5I>r9V$J9xLIhR4eaXi(-)a!(MR=e$mo(d;Anmj!B zv9|iUWym?-d~4q88u0=eJrW=JjTQS(>l*DLQL-Fo-mA~Est z;s6SvRrF5Z*cmJguk7F7qZk}7!X#u1x=T0f=wL@CV9rzf`Kzb*=;$aG*#w^30V4Zd zIOxzPNnu`kW@4J~1!Ola;)KB^s)rSkr%DngCUM&Wt|TP?*)S-*wEg2U0GCI@krMa( z;Pv6*5eb|m*Clw;#mjcac^mA(!4VM=3c}8wIxowOlo7Deyu~FlBU2L*?SSu69Ib9D zGu8R|KJYo<+(uLM?atI|%c>?OrWP0fjM)#z+MSZcID7spjXxOpi}pIV?9NWoOf?SZA~-jQ6%50G+_TP(-IkM&7}Csc*HB z3{Ub1s`!Lfpl>@KrMeop(@F%ri4$5Tt4hfu zwsWb<%NYkC7nPcm?b^%hG2N9V-BkSJGAE}@f3ZIqB058bE};3j#xd3;J~7c{d0q$3 z&%*Ia|3J6KIfP?(l>UhY93J*$&8!-@v~Y{fAekVrlq70TWA03eD$fK4$jN+ma5%x8 ze77Y-lb;cpaR}s`H*el-uJ4h-_V;jSevGu2?N=TV5t*x0-9NFJdQ)j|Lqzl^@QQs2 zsdEqGheE?Ic<#LfvmCMJhMIwxFDs66RQhnX^YObYbiBV9DbKpXE_D)H6GO9jLJb%)@h>gFmzs&uW#~Xz>FxKNpZd!R8vDy? zJT}OcHLE`h_>YdDQc_A&rDpW)d{rk#bT2Do$mMghbK~OT20L?s?w9!U$>F(2rs;Z_PF+Zr@oFk^bl1HkgH|zuSW$5dskBZ*%Lp&ElxP%+kRXNJn9sbp6L#j4!EZB*-}M(Z&hWu} zG096UJJrG{RaMo1U@jZQ5j8jY`iY!X4@MZb0+QgUL34I)Af4~ak^W_?V}_pL(b4|? zYih4`DkjcOAk&|p*sxw`jmyaNn56&{EI;4sS0=_M8*+SK`7I1Z25mk*DRcWLBb8!< zU09Zl260Qr1u=y)-jC1@N?BM@n$ayK*4KeNJa>J9(~ez#eyHx|TAJKoH+hI*|Drt& z{ko!_|MI@|Ow~u8XkaAZ7o95YJ?Z^eFRh@i+nAY|S&};xWAH*-I}qV~AN}ZP176zC z^^gYa-^pA{W)oNEPPUwEYziWm`RK1#28Y>cT!?)GnSA|d5uh+ONUlJL&)@oI(`2Be zJ!*j_UR+Fb*d&d-Da`D1yQh&P`F4gEf$>xdIhM$L0kdw1e-d3Pc%PhC8j`_ZhM5+THYtYDk)Y6<^uHQB9zw|a5s^4?cv^KXG~-&#v~YB=OFU6d-C9cx2WNCQR&eYVGQ#r})Rcbq z{j{)ua)#nEVmLhMf3n02WKH1CI61yEOqzSQNJdRbNJx0RK1qGN3gz&?K+WlT$?-1x`&5N*=(R@Q@Q%cl9DNCY@O6cgpp!kBH6|+5u@9VE z(;*+%u)buBXKV}xhKqH`3Rud0lCZcZl8>9Ie}Thq3~WV7hz^pTrzAyPx>aC3Wl6C3_{U*KWfetz*ZZrdYjG^i%y=F8UgsVuy*t^Sl?(9oMY(^n zP0Z_#EAE}!2L%d$chu0c6vArm$@uHj_L=nh*x0lEbbo)p5QE{?R!j^M?$t}IXqF4N ziR0}BysN%#LJGrl?t?j1H6=Pm#>wOH-L0wCxUzqG<43bI6Czint}PI`7fpJDi`k{d zo0-?IE(9|yL-k;h@33|gAs+5++51;QGeE!&$4>TjKiQeR(EuJ<7*%D-KmFC$^Eip5 zJx?2qizjtsU3vGMF~-ptstN^Ye2WV(*$R_*iM9ec7)rGy4m4|~`>R!M{iyxo& zLSY6jXVoT|t0TH?d&zh%rh{1m9*vrhM-;0vKpy3a<1U;mry%U)sH#O-@$2xw-t@0% zU#Eo6^Rt(1Tyd|bbOW{{^a8dX!OI7RSsy^^Sz67b-F;ZHbx<^3c$Jox z_NnDzGpxL%95fvx2xwl8tG5}tHId-2vf{{%cw#YApHzz z(!upE-u3dKu2zUc($mgsPXpYp|6PSZJNkyT*eHnJlxG%rx&GO%y|Si8YSE`R@QuX# zk;skGHA@Tghe>SCABUv03ZGNpg8|t_yXy?!x~#M1JrgFNBc~y=4WLgx#tcy$fBDEs zn0+sxe;cS6=E{;mZ_MIP9um#3Z`JHqCi{LP@jZ~3B49cBUCJ%t#`Ltk2KyK72B%nZ zZ}8Y_7-m6~3Rzgj-t0gKhT}{GmWdBuO7fekLW=O_sC`adFbu*??^j5z^3q@f6C=%^AFCAC4EjQ~RNHfslyk3nl&j zwWM5XFU>ctA90JD=ijshV`{~N@qOLkVI691hxxw@;JGD7ArM;<1 z0;ZB!=V7(I73=k^NRGdwBXe=%Z(1Ti_r$Zf+`;a><6{J=q~?Hsa()aObnJd|{`w%j z$k$m`uH_lgF90t}eLv1Y*7L=+pcX(KCaVd)fcP=$4szLjsfj&M?mwUY(OY<}&r4qP zXz~)JY=b5Ym3InyYP2CmVTjW#ejL(wfdA6Kx$$$_b#oRy5Q84@!)IB2I6~fB9DKU# z?HUss$iG5aBCZqEhO>;cIql?w-IE*GcPE_ zLe5uztzdg4T#up#6w=twfhRMbVqwT)S0wB8)TXHJZqV@}J! zbxhGIb9y;WE~=LM{rmFiV5_$u`t?fZuGx%v62JDv)yXfc76IGq?uWZikdX9lYBhYi zDyPP_wo|~#vGLmXv{|aZ%m9Yo!mA}Jf703hRbc%bVQq;Wby|i+leN!e;pSG5!5XvD zKAmjNgMGfH)-5+T2h`nOE5A`3u>tUY$NP0bfi(*&tDFycPF^0KPByr%ie@kKtu-Sf zqQLY7I(mx4L?2hyt)~f~^0pDtHY5-U(002w1>**O-)vxYGgXE4E;zp{FFk!}eX-_U zt7|TgG7&G|)HwUdOaq=nD7hvmYwkO4FD$|`3k!ElWJVGv;-Ay+EW&q|Ho<{xiAiCO z@V3Dk7z}U>!9l@p_fFo~*<)fsXu2fh+oz`k5jffUS9{I%Evz6W{~Nw#sizkc_sxC3 zWg`x5A;tEJeRH-HOOy)tA_3y@=?e88)XB+KnmjgE%j((^Cwl6K;d%0wyirtiG@kN$ zT9$k(ASQ;XLsSpIQN!d};3e7Wy?L?0iDCYv%n@w02I_4E!4NHGU?+EUP=W4JatZ}l z>sNPX7z*-Phm@HT1X`~+E`THjg!n_Ob*V=gciir0$<1oNKRN_Eopz0LVex)7QtP5`tf~RO^sU&VLX4G z*P82ys-r9zW&wfz9vv9?98^csa7Xl5LfE6eO`EpCcwK^(g+)$Yn%fO=PjnZAh2_7h zqulaV3&+d=$O4YtC_8(h%?_I&ls|V7$ZqNS;4YKSQ&UMcIb|0mh~@x*QGnN}-pGXH z2&-U#iktGv+}-6(f@Ok%Bc-;p15^1j>nZ+hEhfi`M32jCIU+L8iRmGhDtUo0UraKN zZ_hDu8D?uqAr?I%$2MsLic2!Gy)>Gig9FHT+*K^KW@lt6#6q)NkBigq8``#`lW}~i zPwoUnd$v~p@4!G{&5VtXyPYH4{>95v!khKfI|23;UixcxW~wg6Q(S0xR*Lq`kf7nRNdXOLNO$ zB2HfefbFdS4MTa`{d$%ZH!3KREplPB%T@s+>1q(Bco{P^tn{tCteo~ZPL86 zL@*0)omX^Xb*VH-x7ynmX9O#>-^_@t3 zFA~08a0v+uhcD7Q0&wQkY~rJSYo}dXlItRey?N=tD?{rUDff(!r?B0{F_YEl$}eaK zw(TNcOdo7;#vm*(|DoErgeCb#;z75j>+u|p5BD8)62Tgq(l%CsDg0V|rUuVrYvP%F z=&>Ia)$>y9NeXPIjIOBS3Uk>R5l|I^V?09BbJ$(CUO1{@-(FESY~?M%2VBnZua8YF zcLk9#`wGEbq|DZ`x8r9oA>-U-lH$q;6*ul&Etc zeq5BFRe}{t>b;#kca@W=qlp;cTAvW~yF!2KuL%Zkj^u^MhIKFp<0e17MKg4sU>W^O z3&{8^;I(rj?V|7MBi9pKJS-}dl9$gA9eC>VNU)yVQoSe*Tgi1KQli2K)Z<6cBg*A7 zj;oeW7l@jgp+$oVTagrR^{i~mXmeS>8quONb5=5QyjrlY7P#Kq2Gy-g^(3yiB8^0( zCfYUV!8de0bqe+D$>*A0;bejYh&Gp(=6C8qa%GGxm%u~&2W)I?ymE3Dy>1qwKU+Ew zVu$Pikf(-(kY7toqX3PcQdG1o+T1n?9Sd~N>7J+@tSA5yc~}M~g&-7cNuU}EC*wEx z$|;F*%#)(~IfCDrGbr0TsQQyo(nPafP#=-A$eG>NTO@+eukC#`M6=Wh4BhAm)epf?TJwbpE z$jSXYyZcv(_=_E>Fvg|PVuz7YdMDetG#4`NAJlYkG?Ixfejy#~e>g-cZXrI zo8G@a%r@BG+H&PhARZ^hKo4HGo%W`dy#h&^5&9O)Xk3E4hokH{{yw?6D%ytPIq{#a z9{MHADSf9>*m&3tuiiZ>Ug?xpt<=xN=Zu_ zsy8L4HsuVV@<&+55Ez))#74w4VJhc;OHMYmvC;UNERJ`HNebEAB>915M3a{-k&uAM zTqlPT$RxgEx>!%G@|U-vPkUo<@qL3jl>A9!y%Zq|wWA~EN=61qwy`lXzM|j@PGcjg zZE6{cGl;*(YKR)ig2NBP(%h!0Xp8|~D)aY9Uy>BJDfV_`h z5>_(4PRB!lqy8K8xG~jkdUM_Z@S-&}0rmnSQw7%BAY#SF{p{$gf=3u#ek7i}jbs{v zo|1$688pl4>XJZKma)HrH2c%laLs7DsIRMQzmC+ehMlO~4>cG5d~ZNXVbK^!E;soE zJ8ION{M?j4CiddtTns{NO?55tdY(`6wg2We%2ObJxD7UP6y$ya`A{WLx}0nXm~D1o z;5y~x-E$jjMHPIo&$v}ICZ!*QV;-}Bgn_c{|*8_2p*Y49@gE-j& zbPI#RaHq5+B9N^-&6;7r9uxzNR>1y;roS1MI-7exSy+d2I#*44phAIQaQIPtWCZUx zpXkDHvj;>xIQEcvhrhBx$cV}xb0@ZPzP<*rhKTm_3HiPg(j`r>%J_D9vZB7r5^Mb{ zp}@P2!5^0=yR(@MiA1FY%tMO(p@j`edMfhrp<$AXg}6V3wLZ(0UCBQQFIVX9Fe# zkbl79xH}V&p=M!BnbFensifqa;OsAlNUo=S36--)ds_+$;0zXx*>ayy+A?K%x4hr~$!#NM)Aa z^V53^HO|T(M#~2@JAZ3OM5u6W#ar!YXx-iB74s7`4L30)x`K-Z?V3B)zpBU zP6-PY!_wSBIU*)DNvhSt0*;f}lQIwQII@gT-piwkic|4uM?3+ zgcdf*V`x~-Qpp(I+{BMvu;B|tkaxLuvWa*n>-+@~fT?Nq>TTLnToPq@`z6TC+LHY7 zh_}?QJ@PFg7Wcy(oX$3a=nJk5Fi%0en55@{Xf@ETkFeIMBo>%d)>^8SM@Lol{f}>! z%;km0f&O5%{QcV=s9AU4XihQ@4La`aW9T_ykP1BYJo)lqf$#Y{^}uBSq3v!GG}*i= z3gLIauj{Py{L>5a-ALcPxtlMjI($Q(I{01xb!XIrom+DxhH-*6kcu^0fPz|Gnr@(00m*?sozF=2cPf8q} z1Kg7&wqqi`&VRYxlz`09Y@+Mcu2)rr`qgxThg-$4AlMPX+q|Ft*DUgm)2Rc_=a9gs zte&v@$qYpWIRW)}jHmmL8XY94#ZU6UT zlQ$v-(yZ&+B~ynsDi=L~a-oyFI_}w6TC~0fr`V1aXqDO`eF=4&u$})J5z)zl_V&$J zuhRh?7z3P`7}qFCz^!C!BUrUxjqW(JxcDK|+pbzhTYDRLO(HA`;{zd$9LFSF`C2DB z(4(WWJHUi@W2KT>#O_bRbb23kp+y6fw`_sVkZW{2>ua+5bDJ|mWRw@^Og>fed4QMg z+V-->Ud~eZy2|m-Y>5~Tk5Uf9Poyyc_9LHiD*EYgWTHHjyjoIr(JvK1l4BA%Q zbv0GBt*QD%m&^ajvWPuLM*2%EX;Zkg@ENftBIvFnyPSrkhMj3+0vmgIcB$wKMOp3o zhC-d?JMX3P^9sT*^GNGhva=ON)wmRey@lCr%>|&ZG4_BwwTM-#?AxHx81niR(&$X= z+N0@-CcH)u38TJ|*d{M7@iA9L^(Ja*e%(^n$a$1nrckwnxo|4WYV4B`W=+dLThSdf zw;3~JC9Ked_)nM*L2=vctu$mpQzzc$l)(j;$;s08k4a_%m(_W^s~$M#sGlvD!_XReiDP`Ix|K1wPRb$=j|{m3IM@W zVW!jkxn00gcathPNLB>ZfTNiJG7{1r;-#&q0g@Drige*7prb1)N*i4$r1~y^@CG_>ybHp`E00=`;Kc2lAN`r- zlzbIA8VS?nQB-G2hB$mO=V!FuuEb{mi=bM;sgKJ;m6(y`P9RdDH%XV86C^l8$&ry# zXl_ZF?80!*T3^SCn3y=AP;`-(fyuo#r!LkuA_58EjgF*J3g-cg2Y-X7rY2B^%)wb91$hM- zBGS_IjUQ~Ns4}t0XY=y&=j}-h(~8RfXIBp(gBpMa^8LH7-<4y42>)M=Zy5cXDDQCT z(0P78zYYMj@wl<@0-Cq0YeL{hd`6_KoZ~9+HW!-%DnjHm%wx-19I7!O71xqa9$`fP z-Js7Iy%MSXAWfpoTBcsF-1Tg=J?j4n{ip3<0%O11(A*k_$9{SS zQVh;pt|)bS0F<%1Dv(->*&GLKf3{q5e7x`|B0$*$1Xjp+e$X>gcf^JR@2`-6{=11(KZ>h{^yi z>DxRh6WyN+y~iV1O(*Vo}C;R>IXG~db~<9=)JX;#ba2%P#43PYeZ*?ZCx?BMed`5)VeZ)K3LvI(N|~6#vC}g$L=&k; zWS_m;0J-Fmx#xr#`XEW9psjoa3RtT5x;>RH{1*)s^jK0Hn^T@ugFcOa>+87Lq7MSt^+G6d4iGRvG{KN9*}H zCgIj5c?5!M10E?I8jel)VYTU&%e!3|mc1S~f+ROwV)6!B#^SmyenkSRUAR53gg)_( z6=*7#YZK`6dcbyDvDYISx0TS5UZ{Gsjb!(qQTN|9Zvep8c3TrgOdy2|X z)kv^N+o6)gk72yEQKQ;@_e9h8Po+$27WM`Nl|0`ZMA`+KP95Vydty&sVkpz3<>n&# zfVehO&&S8;3(8eT9H9)@#W@qeG;s-nli3o}m@4k03d;Ri&Tpk_@M$dAap6VcQBr1% ztSoLXbyD%WI_s*6TDPq~B;|3;Y{I8us4{}{EMr&(g zfNBx*Thw)_tgINLiuu7WCMdXRo5%W6Z-DBGA3yA^hpAp&h1snFw;mj8v9(2N_C{8< zH%nUZu7J01By`G=)Lc+Yo%8+jn`22rMpD&0IAp&dGdIK+Ytn>qf`M z%(5-P5CA+|ImDMo!Uut;J;iQ3*jaT_z$~C_@(HYVI5LbQBc$D z<~O>I_%=^KO?1^?y_Z~RZl(50=UbN}&SM=&@m-n#0&Ky!xNdB2hlYQKW(8B@&WD}} z*&^qaq)pE@Pv(`{I-2;E%Wi)Awg~ubsrZVI@~?@E{LosSJZi1QkWp)E;k{=0kd>5& zh>n)NVvHUqC}uX8k`;8`ZbSR<8D-h`AB)WOUkz+iS1>bkYeO?VLYED9N5_gFU6Xqs z#{VRaZ&fi@N@!w!(EE$e5HJfU9vSS(p#H%6uM$Sk0XRQM&XT8z|BlL9!BAL{kkEW? zCIkG<%-*i-x5Wy8YHu*x*ML7oLhALt4Qu|#V)}6V^=h%S` z1_>z+WG?@gJnlj)cvab6xrOPrJIh2Yq2^Rj#!I=@=mCL%WDb^~>+kF>$VJne@vKe1 z{*bJq_5La1U0cT)TYh1I?MN=;u*}PkOJMP{^}nWJ^p4a@>H3hc z5~dsOz)`$wwy^aJQ`wwe`T)CV%LGY>`cH{=8;=KyH9XF>Cex7^CWc>l#b%+motdB3 z=P5Enl}oHyCn8ON2bJ}pS0{cP`&Lx7H9ImZDW|^J8p6S)TDAaoVtlIay*t6ggK^&0Z2BhI$Ui&jkCknot8HRFYqqt{SodA@_sN@>o|v($QUMznna8A}-NK|yq3M_={6Q(Awa{d#RB6QykCS-~qLaQkNcqQw=+1$T zba=BUapt%CGKd{VkjazeeDP9RG#H1=Sljb=@BKB7DJWSBQk}`4?de|?GNs1D5(<2! z7|+n_IWf51z^ih+dyI=x4&gKgsUH`6{1a@#&6-*=zEqbMoqRTC%QrPCvNme16XtN%$oVd7& zOIbOGKlxR!e4UOIaL4%)-0IXiGo46CG-x+b`D_Bu$Bo5dib{%x{*lR;dv?|GtakBn z!s&Wy`Eh}ZWfS3{&#zX4X=vHU#$PchAko_66p~&$#sqkX*M?k@UWz50nWyb#A=C=B zJG>lDPD3}G`c-g^HwX_FGiu_{R3#NVd($mpCtm)6nh~D5%M=TrebpswJVf-utdWgXbMA;aUa<2ybapRp4JEt?sVL4# z$2x$c%|B(9o9m{ezUnUcv0ILj9~q(Q^DEubLQ63w%JE!9!=@w*8ZTypOu0%W20>tE zod%@kf~BMcYxe8mL^!wt5W(kC!eBBTZK5~>o(O}Fmafyn2{$@eJiQ))DG2j(3(b?V zo=XjmzsXhO65m8cKkt8`n&A?A(s$x?Y#$Fs=jQ`d(sQ{lFdkCg4QuA>saE7NWI^3Um6wXoaYnOdY5OKWJ?QZ!6eb z=||`VZwZl3$8!s5=(?S|z_tGPW)JkG>y^x>>upV>M7mbWeY#x(4}^7Nqaq1@yiIbA zPIMLI(T$edsVTJ_-JhQm)5s_v7xWVQ=2^*!*W?u9P!%_%8|fs3ai zEV9AZ&=YPg%U3!^`g%P*cj(jM#1e5$M*-x}gCo~)8uo=#Q(G;@k^ZfAXV+LBxoue; z&GzamsI~A^$fbE%W*v>Hb6FY<`)W*F#YeDYuxV;3CSW_L$o^_7#DQpj!^WXv0S>S|w|@&sE< zouRJ;tEuva@Mq_yTK9*jsq;2?DyV8t%|??JxVv9|$gPR0-(@DY&MuUyY0wpw9Zr>| z*&U99cPgH%jBsIU`yKEX6iC)osEca1Hap$(D&yFIk>Rmp_`kdW=Kc3Pw}{aZ(%PW! ziZz%zhhepmDkBLOlY`IIeb zrg8ttH!;u32P86L~rmeGpmbcN~)YnRve+o@t;dc7C$9mAYWrF$w%?BTvG z=wY4VeZq_v5~VjX>y}L?9?wY({n3!w(r^G~1I?P*j|lO=w(I?~?cblK`@=1|w|TG> zhnItaFjLh~(^ELC$IhrdYjzlh$W^M9^ByTXyq8`Ob8HP*xEAdS_v$ABriZH#hNOi9e%-!LL7{hWr(X@0@#Jl${vC1}n<52{#vfaEK z(;lYL)VSZTVWmV^eZv8*NJtkB5n$-741?7phvDjJRB*$6E-48NiB*nJrrM9@5kJk#E)M1jU<4D2&2^=H zXRg%;mTbXh?#U&z4Zz0|y?M;TPOtqRyVw#C~rc z!~bTS54!pIRE+RG^{`-r{TEslNRGJ{2rHMN~BC+c)eCEK;5~zy@=9NJZ5_ zA@0M%D4)#Vj2VKtxUtj`3`U{r>qPjw#TRNL$C}vN+y6c|FxJU2={asDqYK!k=-T2@x}g~wS5rBBid!EM)QOTax?Yn8@+`-OfuwQ1#_&dwM2&ZS z>*>CskvoADoBJsu`v8AMMCMZ43I?{u6L$-1U?$ToMv?di_svk_Hom`gxCVDN&_8lvYFb!5-Y3x z$w7VL`@3n6eh8gA3)t~H4g;UEi4~&CzwDBpGDt|`&#F=$FNz`xkBP3j(sew*SOsxAu zEwjDTgwKz2EpktG1s?Z&)XWh;m;6VX1>DCCj=k{H)3#6nosm=z2q!0jsVQ|gQv+9=`#{s3kt z_|Cpqo{;SL&%{y~=;#K9wxt0ch++rE zv?sc(d%EUFi_L~t2$li$G`troP#E0c+1flP1mkTV|H9bxGd#<@N|hd<4@m;HI}8K_ zYi=jx1DTI?XsquDG`_5NJv!AJto6qvPlbPSet2|rByhFveP-LcJ;q4GP8o@9o_amC zcd)-iO-$@eqK_z}H8C*>2ng7+x1Ij{Wb)DKs!2!)nD1HL@+Hdo#e>65g2mn4&Yk_q zQq!uMn(1nX=mr19_huQHnS&weiTuXhA`mwSBDv^K7^F4O%{gp!Sp}p=j}FK^-xwMiE-fs`X*-rZfa5ry zZ=*P@_1TP%u`=?d|M>B>r2hH}@;<6Jk(K_%ix>{BU<-3|rH`h4F@^cxRn&AEejnh4 zXUVX!F@FxIrmg#gd3;Rn_4`hu6q`(~$>dP`aF(p~T%q;W_EgJx_RsABqa3UJ0)I?W znW^NlFvr-2hUTx&ka4haqM3AgjrN*`zA5cX)EbHxF*Tf8{ro0>eu!yfX6C#%udguP z6x?WQHr#R46YJ2|*H`O!CHn;eg`=~7aX%XEHkKAht-y!F&Yb?kTkLR$N^SZV^+0oum)^zgoik`_;rH^7bGa71p z$hKxVUN{^kxVACy>?UW3jC`q8Y2&fbB1-4y>)U>LAInqcy7i(Gl*ut~Yo7ijV}68R zcQmd$RRhI9ES+G$EiB%LU0Ag%Ih}CqhhhhwW=+fsAvc^FthD$Z0AlX7Ki1`XtEj$s zsH(bZsWDEYrW7w_^3)OLu{6GyjDLnL!LInb{dP*qmSiO_+--iki@+6W@Ig!Y_wFsE zzSsZWkbZtb_9K>Z=RJ!x+$gR>y(pe8n7w0(=i5 zXIIw;L-ln$>+5Dtwi-oGEp} z{BS+YDlI1`!1*Wby`h1Dl#jNJmo=)E@l1^fDu%6zwPYs4-A{Va@zK$Z_M_1%Q#w_9 zjA6aT#^wuMUMgaXuTezC!WL%C27NUn1kT-6T}0bq<#Rs*bUll|MM?Zh%N<1=2@GKS znkwn&%$AyR691?yP4AYHNS7V)5fu_FW+-M{aJ3Q4kky_(&s3UiZauSi;L4s zJ2dmQpWIcYX++p(bX7!x)k2|(<9!#HMr@JLDx7>66HNF-s$A9L^X1M|kz6wO$yqm3 zHViQ=Z#mhC4L0bGP?Fkr!%=%n)EL3&UY9G>-7@#_@SuD1)DC&sG;PE+u}*G$~u;uI5hm zst9_C`-FfgBQpb&i1%~F1;n3I7n_u`PT#mwnm>j{x(IBx-eBCU99NFv1RV{V^{z2Eq=r-_GLv8d0V zzZ}MsWG2rY)TwzN3-83C4#^r~sf%Bcnea|X&yhq{+04K>Yxd@{NR45B_cUV|QK)$o zTVB3WY}g3~4d!D zpuCnFp6k}|@FX+n#D&M#x}(@0NKI{wd|@|QPa*fbIO}Khsz2|0-HdLm>v&Hj1SgE% zdwKJC_}Bm8?X9D#`ucuR8xas`5dj4O0SRf?gh)3?Np9(GHk;a@AYCHe-QC^Y-6h@K zwK>z@^SsYE@4aW7G0qux-1VP9thLu#^E*G8Qi_(!lW;L3^IRl~QZ^AQl^4IaxsFK%`CcpSEDYwY4hf;_0Gj#W`M8OBnh))JrW z?9I7nrj?jXBnGG0FI*{-Y3_rpo#Fr7ZgQN4?(uBK$pk3&_R99ec<9CkpOXN4s=J8znJ*jH>Uh zPlP?YJXj}FJHvo0NRDbjjsJ@bu*R#L7yMW{;pM2R~y>^oG8#+NgcKeI)HXG#_Y^pXgtS za4NFu&DAs16S!O)Qu&4m6^lWzzk#os zloA)u&&^H^bnDH{#UQe0J^lIf(H7apPzsR~DdjDX)l%xWW_PdWC5XsT8fVU zFuF(*owMPFJPjAkAZe@SL!R`E<;byXn-9IG^PtDIr6ieb@VZhkGtC9VnyZ+PSg6Ci z8d?@c`~%@=-K|lvQG(Atb2X3UGFr14>bY#+`}=}cO%~&ZMA1L3S+e5Et0(tW%gxKfI62L93b`__UsSfq zqGEdg{=2UT51Yn~bC$u{!D7lpa{Obu1n26|Xu0>#Qyuei{CZY z4t~$_>8jbMGo2Zi7tn~?x{rcMqOaNCJ<#wB4RWxVAwltkdl*0BMZ%j-oP=MW7FZO7 z5~B@2FNLTHV&jm?U(>TD$Zu1#YMC#Tmt|&pZ+&sSDN;F@qr?~+9bq2MdUdF)f{IEm z%xzSZF6vI4h>@I`_FRE5^p<-n%4_2`c!2R(hi!W`!-yI)cn*@{5^fACJB zEvdjEyXn!B3)kyiRpU3QyCYRL9X9LqqA?l%r`mF1{R<2Gt%rQR7b%(*_qpLlv?K0!dii((wd|=W5^y?C^BZ_)k=1*ZS zD{*6*GAQFPtAqG&uvbGTW{PAtK;oyL;&sWY->i5R0lh?bH`V#G@$u1OuV1Zk(#kzb zd8YbpZz}%_3wVTblae9g6cRy9_$ULLykp|$g@?jYa$1;t|L;zYKQT^V@88ImvzaI~ z+Z{&xMP42>vj`GgozFYPWIs5PY%^OiHZegH=KOpbKa?UOdp$mBrISfUMsiP7E!I-8 zv9~vL`g@k|uZRel-R_-=;H)e$At50vxsPLM2MdgtYS$V3ujSy3}K1{vo-U8+=7 zk(3jDjxL!P*SA8X%nWkPV7Db1%`F9mCPZ_xn||f{HaOV)K+_}g`MvVJo<&2(zKN9| z@J;J?FqWz^E0tp1$BN@rGSRYX%1%oh`+>o|y&sD325>dvc1&GG_>#Ewvy6 z0cY64Vq#?cW-*<5?|NnoI`4X5IhZ)uo7+2*5k&j3Hs<8ZrA^{k6?jM#2?efB(v_U~ zO)6T&-<{rm>5xlwB`~9-Gd3|GJvFM%q^>0vCuZ1re;xm+{N{sRSOg;CV+~K1jeB+N zMlRe2797{mCI5TtmK1S;95rIj+V+u-B^pwW(*IpKGG%w)ri4maf@^w8X0>XkbNO*S zWh$MjHs|Vzs*J$Bd$OqnmsVmL8gVE7l2X7HpOrZTIa0 z76PR)21*S265BbA{bL~p<7pDXxZEc@Lx?VIO}bbbE_U#AEH@| z9<#2~ADnOb6t} zVF)YhShu)1ZjS8a3+!R9MfOCy%_VYB{89Jm+V;0?=gx-L`uDm>N!OX2emL6LFId9H_!P%tq*N=p}uUESjP>0H6b0UdlFPu83^JERm`dOWhz?$mnKtdj- zqwccb>j_d3YfbJbrBY8YNd)Uym<=S+p6`hb@jAifRcQ(;jE_=%+}J-fM5c(epglta zIE%r0V8hwo6!k_DHl=eZyMy?!7F1C&F1B|Dcex`#FIr|=I^&Psxa9oUZ)Bf~<8Ih` zG5MQi4x=MeJSwvx?4HZt+d!*&$HjnMdULVNz^pIH13y~{;zN)+tcsP8j&ZWxRl(-Y zP1gEBQwUA=H&Du|*KyWh_&NKP{?UF-V*0saPI!U(rJ|J7E*Kl4S*)C6*z(cu%y+Z| zyi9L&+)LYnm#L&Bqqq;3+L#-VM21cG`6oqBBQ=}yPXZaf16gR?l(!^1;I$E%2V-a#^*c&2e$3X0Pbyc{Lh zjI*72EG#RP164Lo2~oMFE_s6q#NBQ%`StnkT$NVK{!ShHLN3z0>82_)B>EdQ_lu~Y zPR)(^IwG|I9LinM7oA;QW|;*IjsfS~_wd}ewl@hkcVfyip-ZBZLkK6h-2L_dVrHj) z=fjG=FSn>G z9E$k8|A}1eNXW|3I!OEhu$!d%tg!``f~+o;>J@oorn}3CJC(0rZ*Gn;xwyEdWGr4J zW4qjRVdLSgGBkXhYH)1;_oT&4eMsE#-rV&D&0%~hsV^2cxs}^p=5Ou|E@qwf*h-Ng z-mfQnY8HJ}Fj~8{-l`oDTl>MG`63-JIdU&%h9CK+^6CAlCd7(Od>XYZ@va0powUD& z0_~fF;D_WLUv{(B@c z{+}^DrLL5Qs80`UY;AQlM=Py#K(B!yHo$DX(1}|?W3H^K4~6rpMDPMy==#{!U=pIn z&MYdt1H4sEGO>Dltp4F}@MI!vO4v;%oGL3er&(p&KdbGeKk?D*^5L`H_{PJ-v!>{j zN00_)GcMSXwr0%4c>wrD@4S^sOF=1IUo>kRvb&R6+ddP%9@vXE^dAldLq1JP)`FRp z6>&FL5jBxmm4-*ZxUJ^)8+^!k?H#C@3{n%feuZ8ay~yY}qk2 zTaERx)VJ7|CilbyPxzg_#d!WX$Oa<9CNoQtM4K6XP@3l{L9@F}xm){do$2)IDJgf~ z^!4!bA));S9c}I2T9)9xqu&G+Q@q!vMnXc5kHx9ihybgG#3~>+9I|&>biV4TB{|_? zw;U`48)BAO*7v`VAL;xpQSpS^_3uQwM}DJ{vJDM=6z~i*H8f0IEYcB%a7^}ahEOs$ zr1#Yu9f!*hFz6x84AqA4b#SGp9S*A**Ub3Z&P)d|D%sh|f&lD=FQ_n@UEvZKWJJbPfTV)h*w}g3 zJ7Qw9JUrU)^wd;cgLSZ2EY`sn2-!@%fBcvS)KNe{fXmkkPt^!WsYO9{y5k-4;d7DY zJO>*B`bZIsMuh+gX|W{EbBxUps4S!XL1V>Q-=QTu$hTS(3T1eYgP?US+_+^n7#OlV zH`mCJigDh%dHgE#g4=wJ&{)SeNoGfXwHPZ&+Yj{INj z{W%ZBwI_>Z6)LJvb#?VNV91(Uyo7|>KtiR-L~dY^%m*48Z3)pBxh1fOY}Vb)&m6BG zV}pQ5Q062QPWC1;HhRpa*v9(!=zZ|`=a7~tFz=cX0_dr-(*BCJc#1kGKfiyLv*hz< zHyJR&Xp$@vZf$S7-VC9D-%CP`39uPbp`zMdZ9Oe}Qp(B^LVoj6tTs=G@j`#hOxmw@ zvo2N*1!@*w=yZRoS(a0Gwi5H{Tyi|!Ic!4N4naJ%V9d%KWO2;zJkM*s#pGH<+arrnoPmgvrdj*)8%mndW{y70{z|O}) zUT3?rv+A*NarDCKSBG9@n56A^1Oy}CFXH$vFWlub`ky|d{9R?HCPParaRe5$%zoVS z11w0=w-O2NhM$;)wKq5QZ|fE`D;wwP`cg!Kx_f$zWNs~51{9h-pU|&H@tXNYMX6|O zlMy?WddE~~Pk9XYhZ)GloA6n>UW6zyFD~6_5go> zL!T2sb#D!9yH=9mX~?NiM`o1X&R4^7Di$;u;d?uFW;`Rq%!US+*KmjRxJ!_eYP-1< z5_%Fj2X~8lN}4(R+&<8={U_@31~&`_OSkzs_Z@p+mj5Bj#U*TWET;p-Z$6;X*{Bbm z<1v6{mxK+TBZddV;bUoN1x9zb=krA+C211cfE_CxQJQWd-_?Ha!tE#do?B-6F|JF) zfB3-+zjqWMdCE^cVX8HXIYaIT3i?imnW6K^drd~1!#=V+(^A?67bj$GRmnzUJ^b!| z4J4Yo{ijqE)1j8Sy6p*uaQCUmG#hT!1HKBZc)qeU1bOE?Pz?`iA3Can6mmA?VFMW0 z`k@DQa#n}G+Y)5S6n)0?Z`XFFjuTw##g%2wyG|&7N|BP~O*mlgs#ju^MV!Iuh^A zPWi455K>ZoZ4%+6T+X_4)vWmVYs29es|2)pxpd0;S4Y!j+uIX&pTZQxZ7r71&LGDv zfu3Mj!QlP`T!n^$3;hgkz|_OGPE=^}EFIqUTduD60G43h(PZ)PAmsMEZS%jd0KiU# zTMhWP{`QOT!u~hhKiw}8o}cK5J?12+FC;=d_RD;}`gW+p&nV~)%yMLeT<|?nwVi{- z!h(9uxdPXx`;3f?iMBGBm;wS1*@Aq0P{$?+k#izF5e!r1hz^5&Ol}@5R?WC;gZDC5sc&>_6Q+X>QI6j_Nzqd0Z#3?2w z##dqg-5#9F%=K<}Vs>_xLPF^sB~Q9HiqltDSLJ_XWug(( zx9Nvh;xj!bIrK|vT~=}athL+`bbA{lMZ|u~sn`AP4EgDBo4LicpQdrabqK@`sa3c% zxmE4$nKQBZwHC`s^!-0+q9T#39UaNkQeuc*<$383;iXfNB{tlK2WSKG{T7d=oPd-; z^@HLSA7~53NE>C7T<|s-&(+~eY_9@eL5jvF-9oFBn|dZxo-C`TR$@G+43dCH|Fo8905b^5*^&qzrD*gX3Z^PG*dstW1i0y6dhUAzAevtk5X{f3GW5dg8KQ#!wzthjpt;{$iVC;O6; zkp1bp^H!gbqu#;Z*&VIfl;&izY^^~)VJ;&I0tT7H20q0U*V|KeasQy8^TW*#OgZ44 z!tX9HwFq^Y`V_{u)t)5F|LgCT$@R7@PF2##eyVtYUMMz1j?q{ERNP}iBo%p#^$fh) z&N+6U2Df+$rKRb7SJh-@W-Ny;?dNUGS1Unc{Wry%NoG&sj0E-BLW$WtenN1!*TKGiYi|+#tf!Mb+&(P1u z)F%ATr!cEVFRug+TMqw4V$=j^t>yH5e|~AM!gQ3xT(hhBrC(gtg#*7Kk}QIHir_vW z;ofYWh>6t0hTC$h?eKu&2{#It18*og1Pc!JXVl`g5u=1^|^t*zKJyl8KJe! z@nrJ|)EIp{Ejy}S(@~f!?@i2)dKD4>UpJMEWp{E3sI0W%5yvDXWkp5!xcaN>P!A7c zuyapq#v>=pSpdQr73PeQ*$qfoc}#ZpN<0PufdQRVAE-N+l2g^zTMb!PvMEmZzy*QC zT;aTv*8By1vyQIpf@~8ZMKBsIRc;TlBatQ@Wts1VpZ&dQF;AbgQt{@bi{`q?$LVbR zY6@4vM|aK0%+7x1DsEGW>)=70PJD7<^^80YRG+FHugQ96W@HFF#!28Gt_FEAGO%=vyRc8+-;e4uU_LD- zDQXR1e_ia?nM}{^v#*OEDojXEiEuHPq^HxbO|p;^Q*_WtF~=$@VeDAwU#KCGf7g z61nX0eG_#Q_Du8ectd)+k5*suSSepUI69ikZs%S0r`q%R83ihwu3y2yMq0?7d8#Yn zjH}p#W!ho&YG(&9tV#5A1BSS5wzkT2Dg*4@$;rr~l<8=hXL?5!7>z*$byP6LM*}l6 z4NXmC>1Ii*njc8f!UC!>yV=OXl*JwLxeq=$G7s-&3S9uL1=3!{5aJN{O`B+NT$sG9 z?2BRen`2+mn73n{R8sNj1qBNQ&`wW`Z4~rZG)2@AG{x58v5OPhz;N*>1t^dJ3f@eZ zNq;)zwJ#IL7NX4w_CdlYiiez$F;S?(bRXi;+1aei$`WctBDq*5e~969$cI8)n`TCj zad2@Dnv%~WBZLuX2m!~OoGema-1genhsP4{+^YuZ+}768L0R#v@cfU|yu7~gYL3@g z1H$Z8SuyX-po6{xQ4sfjt1Zn=0>2*=$!r&IIzA;eNBYiUQo8#;jDNN4v1TNEdURB5 z%{eej$?Aah>yDv3x85R z&-!>H4i?*u`nsA{s&tEgAamhVi<5st=3AgVL0Q?r)0OWbt7l*A#{imbu=xVm-VV{Q zNW8Y3d}%tqSGGS^1Q~Uwn5bwhht|%jC=krjdL5|Wtx(i7E+RYQXLa2rrTb#_BVqOUv^u*;C=tu=SPXZ@M!E^wh~t&oI-eX`Q~n53vg zT)KmeKW>A55{I#btTXkzIlRICs5|%_WM&L~TBv^uW~=i(p2V*d%*?buUF&6?EF9%>^`S^Ge^aARp8&E5$+dvsj!Ok$y?F)AZw!aN7 z$Dq*s;lX+tFqrE{16~I2YyBW&X<(NZNX%n@F<1}uXByQz%${)CV;?a8>`qtFEiFxD z$x|UthBB6L{toT`9RlC}(DpLsZnk>wnic5nl7~2t@nze9*lWZ<+6!9us*U#@c~FjW zzT(7aG3F2=N1P-BH8)Y&EZ@vxc22Pvx^X-{+0D)_XoIwL?t991t zjW_`WP89fLeRc{bf~@~+V}5rqiG1`$z46#l7;Qtccq0JRlh5R`xB1v@ipC0Zvu_qV zPSwgy0WHs=*ru(s-$_4HIGChRj6G;TX1z+=|loB z+I;fB$dn0$P;~$)N73fp^)5V{QKQyUe`2p;pI2(O%7lIF$NP^v zoj<^Y#>6BBF}2&9;5BPo~tO3(uPU@)V@(a(wnhlJhJu=T%po400qbadE_ zGOBRkNO_mL$n@cdJGlmAruo6yESdg9$RpB zK+b0I)W8J=)x+)GI)x+PY&*erx51SdZ3T^FC1LAC{K$XZaeqz9GM*Q8_nT!tm;41P zNyc9AL$N8e8FCbtmaVIH-n06GGD9?BC>@Z?I+$~Y1c-lC)S$3e7kOg5E-$Z`@`{_B z{ctRUNxr}%wjob=ccctfHrgv z81=ANZny1omc)8T<=ufa6H~Y3P)!{`_9ni0mn^9V83TJ}$h?Ut_WV3T~ z^~f#1CIL_8;vQ-vA~uJ|;Re^8u5ypT7`QZ*GH^0SUL;Hb3WzS?RDM)!N2tOviftD8 zpoKVcEwnH&$mscD)Wq?}qpV-oa&rH58Hk9sQ81U@2~+mba0Y7xm|K@f%uHhkaZSDb z@zltqDZRpMo73qG{n@gn$&)Ak2^=0qygn#F z+*oMjx8EZw-Hu|bhWq{2zzqWz`uI zezt4lUurEr?J1@CV|9ub&mKtvT!d>XGHBoLl{rR7M!ut@WTJb*+6NZ#629rod${FO zkV$9*37!4rOpK=^9#BoS&R2Kg%mRe`#XT`WeucP*gn^qBbq$T9qaz^~8WiO22APhj zZs^HHTS7L-*r^fVua1mZ+noc7eXXOF*B`k@YivY-F~G_S zptn!|n!bT%Uz6D_Jdn7~j`uzLx5=tdWqF7ZKADx^OsL<0m}5d!|MVt zRh^F4a)Q7X^t*JXXsSM6WD#?Ou#C+9hz##+navE?q{Fvgy%SZQ7`)hMIfw60*E>&P zOGu!x1-A^@ukSu~y(_!CE?cnM9}oMYT2_3ynX&&^9)pm}5TKc+{eO39XXgn}MA`62 zOWZ9BCq)_Q@yf;!BmPbmSNj2R~O3^yVGUFpc#+i`Tqh~ zlTnp>&oneTs$Q#mnbaZzmTMg?t^RbG1h&h=<(0G^B}<|z0Io=D#1Wt&u6HLuDxdS^ z82i7$uY?2(Rn_W{6ml3!k$eCVGbQ!rM-1o7HgQ^$p0J#HfCXFuh3r=qm107m;v1|A zA^7*_7?b^N!;93_@!|jrqc@flF>^+oA(N1{h?jsUGB_{aA9qgp{aaODJ|-+IE9}KBG8FW$F z51d4W(bwm0(^6YEwzp%VqSw||Svd>5y?aLYix4y8$;o8CK%k&wqo$!*7T=8K}LBs9{e2krAX5?SOo&(pC`oc>jjC;c9(u@|NFLQL$$!Hu|FK1EJ{HS zKsTzCAXwP1zg6Xy`7*prUk}onYPo^RxfW7s5VZGK1pg4eKc7-45^#6m1Co0jg(-zT z;Ofhwc!z2;ZW)6}wpTu4KDb4;TPtJf0Wp74-nu_292hv+CDPW`w%(t2UkMFuZcY{p zp=7-2I0uTMPkQ>yq`cT{I#&u9urjb77@h#W&%vQ>Lyp`qGNntU-c(F>;uBj&K!B9_ zUdUbwFT!o6!UFi&4BPY z-{oth6khNqJ4hwzdI^k}##f?ria`zOLDrT#`+@4^QMOU8oc zpBDmfW(!HIOF8daxbX8UjKcnXKh(09X8gtEj%4g2!`&sBPIn){VikG7HC@tz1ReH>)2(d?JaZ>79lTAFU6D)lEw zidrrh;cKonVTIIhjosB_pghw+-y9T^rTAny*xBhL5X2)7BxBFQ!^7tgr+XG=Ix)e)s%r95 zKKri4OjMAPOvZ%!LWiacS<0P>pmQ4)`B75GTsmBo%?Abb`-9R+i@V0XCQ$dXP>;uB zH~e9dIn(Sq5U!)sdQAK0%Co!?pNf|GHV2Oss4Y69fLaMQ4@ubA+GIYkNKfgRakqte zyV@?a_1RqQz+W0p#i~zFLb%}jV?jS$lXxIVZkwg27^TIqNJdzGsVTnF_?V)it+u{i z>PY<_#E^p=1%)cYXJl>Y9Bx0UNnfFbtnuTFRz<(TIkGO^Td0Z(Jt)-h>PHPC8MM@t zW_viOU3z2T%4M>V5T0J1o{o<(TZ0I>^h(URI{hNAoWNw$6u;|=Pk<*&JNJ{?rovpc zAU%J`;*TY*NsQY~Z3+tT#;l$1K~l4`hr6ceI5`jXPr~GYoC4VcXK|oPxR*fBKgtik zUOSZ_ke2ICB|P45oj*83&CPw!2VeUttlFKrc}$I%O`XbU#%$}D(@9*#S}?&b!6U$% zujwqXLmA*2M1S!caD8#ifa#0jxI;<2-r`BpKH z4?+N$N5H4!ctY}LDqlxf^=L@I33MMkta%K2nKQVhUozUiQ+%aAaQA1wk7&b}&ieDv z&-49xZJA!*qvHC9pMyxJMB+^AuAf`moxcCj3n6xS$H1U=@gYUNOy*9Dpr0g&1O7W* zT-;u;q^!)w-^tPoz*}b3DCf$Ga-4`8QSD}dt*q@iIAdRSb@kEB=CbV`(Mv*1QXZdv zE9jm1-Sy_oD;ENcPMI4=i6L^0RnNdk%l&>SaovjwD%Of z3ycmQ%G^}HbN)D0x#(pTV&JPFqNq43s4t;+us_|ClfuxKn)pX70aQG1pG@>Or4K^Z7s*n)upA*4rDvBy%6Q2&n{aP(1>F>{hPEdABqI^wW*X?#zLN!bt zx&mblx}X{Zlvj2(7QhE88eq3uS9@$-g1pf|s2FX2*GkzW$6>aaHUM$x?dn0P0wd$| z!PsE*;+cVSJAdm~yq$5seqLN`)OWy8W^TrfxjUmIr$RF9`ZDeHR6_`o1X3GQk03M* zZat4SRoK_U#N**XSls0kZct`)c0I>|Jc1r~a&@F2Nr@ zuQ*TlvNerjGy&F%mOdjXUPVnnI< zWP`S`s|q8`W}!dtg+C9%#IHa?Fb9IOm7;TNq=Q;xgl~|TrI%Bd_-?$6S zbPa(C0nqII&G!&a(W$E`v4ki@RuizJqrpMQ%}piqf@QG`woj ziUsoz14-vdVXI#{`dx;{li_!7LH$S#+%(;yQEX&Q{)XYgn+)GZVjH|YByvl=U0b5n zzMgNgpX~Fw@|42WYM#$;Z55NS3JxAk&(*qk@WgXZJI>Wwg*~B<<2&7G;F9_dDCfAJV;K)&0_d@_5%kn#9V^h9Gr>5aj-gW9;H4$de~`qPDFig}6!gZraT65;Lvz zcBO=3kCOl7`t<$=M3DygZ>mkYVR7{+jM?AiWM%#SiXBa-@ho33mX(PK1UpLkyV~!K zel!jNv8o_6uCxqxk!GB@=E`+HOB9_YVP`upE=68W?yZHvs;<0FVT=fbZLYJ`6s$Kg z9;A}?t!Nw+dwTQ{02&6JY;g0rLinFP^`(yw-?(2KQXkGhEr}Cp-7h9eFMd!RdgIkc zdMk)fxL()Tx2iXMo}k$J*(Q0F^Iup%EgpHHmv2}5#&O3H?zr64l&-kXD zE^q2Cm8(m|b4wYu7YfH%6#?_j4-}jmoASp2JJ}!1F`afZISo1w4zE0gZEe5kkfiy) zW(Ucs7fp3Dr)4m=jy%J!x}POzW2j5!0|R_$be%Rr<41jsx9!a=V60^p(+J3&vGrbA zYU+hB{rQPcVeAf7(&xF6hXMlb6E}&;%}!w*acV=CmsKn;>67chZ`mSK-a4<)bnQCmej4`feocC(dLYyAVUIhj{cm z9@Z#FYX^AM*Xha9VuL>pqmF`oD^SGQB0t?%>hS}=w|6$XERGyO0Y5sE zaY8EEm$9;rE@gH%V9Kui)MlQo#uB1ho0}wZi?`fLPED8P($luk%n+7kn}1=)yr!CP zzhx5t{S_*m5w|w*X3JXm>nCmZ_-P z?#hvBKqjR5_8}qX8IuHf+y*}sH{4RVNcoZ4OOX_jjmi0xNJ&VY8BX|ABUm}2Z#mm#{B-?1Ui&!oK0cV9AFh3DtTw~G65*r1u5munLA{{%k)5}1yU zs9+jS$`Hab7ly`t+^@^K$w)wj(FY}PRph2}&|;_n3kyZX)iXYJ#v7-n8NKSVno8N(>GfU< zK_YX-DU_0=9J(y5-(JriSG1}Og%yF}&k2s~3iOq+UKz}%X2$<;ZLOgs%=MTNojZtr zd^0QPvEt-RMRG=;gNWGz+Y{C7+};z-I+V$2NLVPY#ayN4Mat+(>d8rHTSDF?GG=v& zDpXJl#V#O$X?KznFH9X@@Mus$0m_}9{EQhYNQl2wO^y@tNqv!4V z_k%ck{r7`7oD$Zk`txVwGcz>$UuDxhnF$sl**=CP;v_W z6cs#Xpv~^~5kGuxTCRVh18Vgbo7Y9glPd5$@Z~(9{Y~3Hjo&hr*0BEdD<@S@pbGM7%+xAKSS-KS*T;8e5FyWJ zY8}w@1V5zaWf)jmGWua;Lt}Dia_n~JiLi&AkZLxMNjEn) z5oc4w8$=&>GJSoS+MWX2dPzo@ve$D@VNa&DSwR^;(0FkgURhPm?GkIfF&GRGAD|B; z9Lf0dax_W6Nf9p$G?xIhI_=WB_dw(CxRQVXVt1O<@M}m5A)k5fpA?|YwnyHy#jslxrKp=P13#{G zJeSmMIB+!qj1owi$aVUq9?=0UuLpcx+F(F4lFjT05XkK^k)Qc{0A=g$?u3hv=iq36 zvONJ`d9P`dE*XD-yx#x9S$%O~Z(mAHO&1VQM`sm}zqVHA2%8ugVP|KbDRaUkDm?-8 zrx)q?YYxlIA3e9H5eeZSpYz?$`?L{b`2yNgQmF(k2jmUBKdzzi??vbg=vnQL<_RKZ z`^cIFl6$iAe}`XgTh!~IWR8`Um$PkM!R$&?l)a`wYjI2wFao*tN<=tUpB9*9Wf`I0 zJK&L)rl+ST9Bf!P-5$EVKCQbrv18cUO}x5GY-)MTxxKypm}<=%D`|0&>JbkiHUPkE zVX!O--KnDi>hPye53YAz8#p+)a0&26MAjJuo$qdgK$2Ac*P_wxX&Pqo5}<_zAhOLm zou!o(Z=q|2|5Py#BM98MIr0m0YYmL6efI1bkZ%@*j*d3m&C^#ZDyXR$OrNL#P2zfg zJo?@o8b4a&w(!CT=;I;t85&|A9$|j@tGTbQt*=k&-ACXL0?N84pPqC4#C5M$4`1gk3W}lK^wq7{^MxLUUi4+Ulz0skjCYRaDA;PGs<2Aa()_R0MZY~{2a`4gzRnf+u zKEaLZ*g@(SSJgc9WO1A>CNqJY>4-+?6#ecnY_*41qeNdrOsuQcp@j4G^BKGr;64SS zfrHtqW4!?tr9o|dec|;*5SP*)$*U-(5wHmR9a+SWHk0`)ygjG&B@v(uTwng^)tA<7kW2Tjxy5&>q_U?fQ`8XrsMVDG*VP`+y9`=|vo02<=ck+au zbHUF9bClQ==p39D)u7IotYd1K#i^i7F*UXIUhUzB554SWHv!cjNqC)E;QhI*CiNL{t4M|CF-+mlw zYm0INIaG0YJrUy*6Ci^!w4nhi*_*dvI6ra*#0l10x*Q%?w#6J=T(2?tKKoow&4i>C7QU~97ocF0K7M=!h|$YKD!(*6Uc}W-vd}*8pbG)1C&%r4 z9ST4VfZ(&i@*~J#KU!*&AlWlBRV_O*-R?Rd)uX1TuCrWh2H6E}PN!dsZH0vO^$j;< zF#@^%BEknWy)o=F0HR*Ybzo&JBO}ebM%FY`m>Fz;{jkM}O3bEk@RWCRbSOtn_D=*9 zBxn}f!mO$sJ~he!*AWylaaa388fIqJ#d$Y- zL{P?KyES>(+7$vi-LPlr#N(KAlnbJ`9hyO?5lHQ#*L=;P-D>HZIVlrCw=BfZ<9G(d zvw{=(z|+5zMv?+lkhe{)t{^BIWEIBnm^>K+krZ45fzk;dV-Oy}Nx@qC^L6!V$90x# ziJ#`lFPis1%vIT(Q<1vbubmtM1_n@i+N1>i0}S8z^aKd*y(ucHa0OWy`Ejlzj4)|> z)e}?Y%Wc1OWDz&yaw{aSreQeDmE!+F1PdfKsj)F&Jte`vzObm|JA)hT~c_U5XAX!91? zLHSBaPVREaZ{Q~tI-lKAbK6s+5+Tsn0x}^w>i*v&h)B?@k3ca7<}Ip>RMWX)IpBiF zo|~HiRTc@HHi5SjgM)AAs2Yi+Ra7qb8`wa~_wIBZ`@7V0@Fso6J3KOSy;G6~ys(pU zz?=yjB!cRLPg5!Xg9Y@)D`^sQy?jO39chEZLkCz^o@zJ<`f++m0JJcdv9Ys@EnaOr z{u1Ki@w|xc__}KaMMbC6tt!19Xecnb2mZK!zskV@yly&sdy_-0mfLj=^l~z@?O}$l zYdcjSatB1v0{NZb|8mX=jTr(CmV9?$=zhh8?1Dp z9#EE)l#LC_LTk=YUV&IMkYPl7u`vh7kLPneT-cglTr7Bc|GEbaV{3w|0sgNdA|pW>@Zap~h@LoBClZLM zwlP@CG=T1g?ihqlw0!o8=d=komb-Gi0@qM)1mXzG1kF`dghZsI3=pcum>s|>T3K~{ zN8aW`gZ35*_S-TloM0P+^~wc%?oTiYR&omp2x242h5rX>ZyglZx2_G65ZooWBoHjP z2M-V+xVyW%dvJ%~ZXvk4(@1c)#@*c=ns4WKzH{!KnW{TA-*i#c{IPrYwqEO9&-+MV za7cDhQQ1#sQ+2_Jh6Wcv4o%4M++lpQ_WHC&>e5gSU;#zcfB_pI)kh=YwR3T?u(J9+ z5yWC@x;K)+eg{ynfFC+Q!8)C8o%=f_0gi=SCdc0Z_biL~^Sd+u9GILSBt%3e4h|gg z$mkA0G12t{+s1}rhMYbwB_qS(NQDmi100c1xS%$}a54kLaLZ&P{aAzufoFGbZD%_y z52)oFcgIY5i~yUD{pI4kfPfc(t36!-11Erd;i+$&$ zy6PRr)9jXDfb#*2^XWYsRocvSz&M{P3_G65qkEfS4D+|Q2uwY{)u%yaWmX!8fK3@- zSla4(q@tkV0qO2_IavgJFjhmG2N|O->xvZtv$X)gPL~Vc8yeb$a&U0)8mI>=3ktwc zjh=7o-2T5611y(xI?wjx$q0vw!$VV>h1pQkxS!Sq-n*XsP7z5{dHU=TB(QoG6E>x`eQ)43>65O9d zdfJ}74wb~eOF7xw7vzW-$iS|T?w+0DVmZ=sr`^@P> z$LW4Q@WN2wdA;4=|LviSw1m{J>yeSN%gb<}Yz8z;!1K1dy{)hrBT(+UcM|03dNyBo zAiI(JO&bIOYdRKJ?gISACQe*nWWct)EyGu`ZT33g<>B`3v$}mR3M}`4O8OD7!}HIe z<=1Qm3^W1#x_qML*(&rgVGqD@d>QN~%>wl7ZEapFE!p$^K@_|1+s8x!!)0qN1X0yD$DgsCOWVfKQx%H055Ik=4eO5hY+8+uhw=um^B=D=H|L zgY5yPs^{IA@8zHZs#t)pEdy|TUnM7d=kAUwRh`c!H9u)fDwehsqz&&NQc0AJd>=u8 z0`BK!Alap2B2_%VVe9eL{^3?hE5b4oUx@H`e%3$-*gc`4lA8yZx-gX0ECI>EZ@yn! zkmHDsWhLR7*x0COs;Vlf{Q))wUTx^j9vV7$PfdTPIH2l5QZ)JJA1Do`|H;0$4enyJ zocNz70_sN+6&3l#O~>WG3Warwzj@GqU;pP$zKVadZ=fL4fa}Pw;$Hob+FD0&`IETl zE(WFWyU2x!a)+<=6OU%Q= zBip-y?NJn&r{vc!UbFQdp%KXoj?<;WaKhxm_>M`l(||uB7r=N4cjI<4t1S8Du)eNu z;jAZcd3%bDzV5pvDrK}i8ypNP0hldHxu`U>1P7;=4sZ16i^q`Ga<$$+KEgfj?CfUp zdsEWVrb`1$TZGeDMQ!1i=Z6SR+f~48A5iY6JMJ+~tO16m*tocrYSjv&GPY-9t#`*f zo~OJhfQ9n>=3D` z1Ld04Sd=o#s;WwqSNH2Pc>l=HZp#wDG6pJx_$WuTHJvNkhI zVRiKZsBr7#02+Al>}$PJXZtD$3w2LGNVxXD0fZ|6KsW@08knE^Rg)N>oJP}}fsL-tnv|fWlS9AR zi3zKqMnZ?ZpAYzkW3~!Aca2vWe4A`LKH1p znZ*}Ff>gK>c>fJJw_;<}MQH<|=m)OC3R%Y$E`!Sn&L?^^U;+or&FOje6g31qB0~Yf zsfe)V_r#+|b@PCjPm!vpI3$3Z7XTZhLr8PK0S*EHn-W2m#bV|!V#Ln1X9D7*V`V)W z%WTaPi@Lr$V{yOyM(`J~qi5X#1pjBVrDA6L6PY}(E-ntg{>;zwFfhoRS}&&H5i+V@ zhE>L({aw(Vd&ps(9WSsJ2?_N8g>h(T6CF`?8GrTLzSJ&f(+RF06y)^dHW-XiTMA|(@Exmt@dbV?30=|$oz?3-YXUhG{ z-MG*1-id)K*E5~9@&}!tHJi1G03o@<4uY-Re0$1gcZhxFENTh%n$Gideg9rUF}m5F zp7;5FlVTW+81-pC@2)3?7+Amm{W0f>T_AT7#&EO#b;A6+`nS{ZfdKl4zio53dF1!+ z6Nym8e)CJ#?yOvICxNTGRteIXZ5OkR%>W#3X4z-SlyL{Iw#{b1;K6vT^(djPHs0LOXPw`L zK@`4iA07PkW;ejHz&_+YTp)%e)*F8d3{*`)1hJKcxnHg(LqYx0vHsKDCiTx+7Z@Jj zvONJAFaNwm{*?>%|K`!ZN*nWktqCwHdH-Pw0>1x1HrU@?{m;ZOtb86h9Mcw^C=Y$6-UXzK2Id4hGslA@WmAe z`#pp}ZmJJay{?tg@T4iVfTOd*jE}N2Jsf@>fd=a8v6-^M%!zG}?!U2sH`VgiaAzOe zxaO4jIv5P=E-!8ZF8?O5MDu^*9-4I7A2F$L^U`)wipn!wb7zVIgOxrF6VS_c_^3H4 zDb96F=a{C#{}Dww=DFRAQb{WK6B=bfIPY1VM?u3Zmd;*MVXfCsT3$gXo-a=f-HQ4= z8NNA_-v3Rk9_6I%agbRf!Gl%HYGz=plrc&r5w~!K8%UnXH8fiCBc_*Veb0bb&cG;< z$Yf!)^f55Gxr~}##Y$;zzJbrTu8rvgY#%EhT_JvS>wTY!G;LrUiSxTRYkfbp!DcR9 zly(?#$~ZD?DCXQ(4k)1(DiJ7HDw&NTd>Bz(k2gm zrIOX2MnXR*4ssM7?(FWXrSfItd>J!8$RkU2&r5?%D(Cf_FcYzt>C>*37amq2IW}|Y zTdA!Pt4A)g;%&VWji_Ng4T~bsSa7S#`;zck_r_T-G)5F*ozL$d;iwH?hv?+yN;y zzr|Mgs{JTKd^W!+&O7slzL&EuK6=%ri&Z_2*qNS!(>adcrfX32lclDFjX6cGYctE> z?P8Kb=I{7QOF2xTX>Nxc@;!SNa9z$aSGVb;1h%sr^RPPdz`jKQQKFyf;g)$Y*f zj`jQ0c*&M`Trguy8CIVyOWX1?olqPQ^&~lx8kCLADau#;GheolDLvC97HQ8cC@5^Y zWJD<pRJROPJbGrbb8!zc ziLK$S7+F4Kp7xPd|4AhvJhH9Kby{C&eJA}r{oLE6jEI=zu!NB)&PDOvTfeU#(BXl% zbAY)suu3IbOjI(;&0InRem3`?d<$0{0J{=c^a-m>W4R^R+AQ{`g$O+=z} z=2cbD3uaxWpbqQb!iWg^&vsrk$iq*1abMs@ez^Zy<+7=RAEiLmnLJTe$Nu-1e*NH8 z>;%U7;@02!T|cg1H|h3XR?mcMLY}pNDEIGC{cC3%!=j7R-MHbwM(x;Fw@g@yUGw{) z4hd>>|FuQ2-nUhtE0ZX{!^Foo0w#~NH4()4&mOuJp>>TA6oU-Fb)nW7Vxrjp?Fe|; zsYBi~DHmNF=<_OumzjM0=W_i0Vp%N1A$>;#>$-_GbLLji=j{KS8hX}e?3z{J6aRfb zi4)U3ykxiuYxBa=2#%VZvH6)3-Qba_Bt~?3U3$@A*!NR5kG46I;FWLxIkG^i?|MTG z-HyJ1RxZfaIz-@Z|_bFO)uvol>2>T2Z|)kn7Eb(QskX<)f8<~UWX_0Kji>T_y2DnaFG zWdC(~h#u0C!jN9^Ohdp@Z4U#it@+`|;vP|xE^VFpqDs3S#wBaR?O8n2(!gIROHOLC z+MX;n#RHxMf@tx_;A%hR%c1-_Df;pLwtrOB`FA)mkKBa#+S+X2_1|O8&R6irsF^d( zqGYl2!NDR5frB{}xb&2>Z`-|}&hCPjV6lR4fd7J zAe)VM;fS|qE9I-rW*3*ik1bt-T-jYIr(M-SP_DYMi3wTJN+hzugO8l`2cmQ79|T-CZBT|z-(PtFXPjwy=F@v`W=WzYcW_rv-u(F zqEdm2n}Y*9wd{8BT%30J`LNhXWoUUgdF{x8@HcYCVx zIWbK@cul+6!`sYl+Y3AT+L{9UDbtv9}_G2$>Gjb zSx6Vl!|su7*ZS+uxR0H0w%=nW3ll4c%_r+ipoZcd?iHHU;f=4{A^m2bj}M!*F~!9WM}5kNmaxl77YMA`ZIhQqi($#hw)XOndfIrTJ^mdtl~f_-`#FJj zG4IUK@T}8~gO|OvSJ?6BiG3tS-`biQErxjcc(K2a4Wd(J|Kt}Q?nT*bUJYe=6NZM+ z=*$l1ex%o@kTqaMrKl?zXPU2}ss4K43L?nwYq0X>a31rgO&%-u1^6^ebvFxdQ5>(;&aQ}_)hjO3nSg&#oo&HOB-9u#6`0( zjmyXVA{N85n3Ug=U)vCLp_Yns*U5h2M}}=;rsy4!`1k0^FnRs~%h(_JPRVBybH4^X zv-D_qS#pKZ& z1k22TxC+RY@$)tgN5A7@x8LpJ&xP@o)hA)_(Qpf4FD4vzkU>s7%e%f_THJ9l*%%~v zc(9YmcPp#C5ltgQLrrD%V8OHt+7CuVoaEwWCMxnei1wYw*H=iPVUnG(&h_kbmD)v=xnV5MFl3d5_ z>MUr+8ZVWjp0d@R&dxp`Fn3d{KZr}nAi%+ApO|w!cuqx~o$pH&2Lm$}a02@~I{+;4 z&bH!_p-iM4Rv6a-sgh818aPvC!^7x39f?+FK6eufV|N-3tCQmm1Q%yVTdSg0mmAEj zU?nUr`o8XE%sDh?$`9l|fd=;q45X@<9iR${n%u4%8qitF23YYVF;pO?4_S2<2qi*@9P=&*b@US4AVD8a5=4cR}5;xm#$n{)?XUk?=f zyL<9}74%-CU1tk8DoBDhhH42+P3N`~xS~;`MeY!Dl=E^9jhL(0`^ zea;F=kBaY(R2eBo(?&VjgBm-S1XLS`*0*_F?xDQsEIF(u+n%yy`G1u9*B9H>OR*#2 zGFDbrA|ORL+1a&ua@Mxgcx|u_ms7-T{_;=1>)#TucYmP=&#pl4K)?Bw7_~leeqfIP zU%1?6KP$jg^ntTAH&=!%mThK^g$>O#K$yAoyX&Jm2smGHaE@!>kaI~N6{Uy16 zE-+9;DmzQh!~{^OWzz1o7{W zH(HSDGYyT<4>PBP)B7?5#YWw{>7AX`{QZdxOnWG*%&;0!3FM*uA(*9X?+cejlxqUY zFs6uX-Sym;Y(v7)U6;k1dHk>zQAs(uqP+O&j&WB@0{X|JWIyF#JHEHjF{b_|F4yP$ zlwoB)w`ac0Hl`Wyf_@$3*oYHd4?_Bf#}D%{_Mo~zlH%rI+ZSXsw8nRL6`RkY}sZ&Us*lYV)Ed*D?)^N3-_tw7_ z20r0TRhVGI7{i;PK_G&?cb7<44tWLzmXJET3zi~?sVuSZS&(Qb-x!09q-t5S-Nton zfUcXHTVF4gA=Pr~5vMgH4Z|Pm=%&5h@^R^u1@rE!J2bXt5F88AP@on=kR+`5v!;Sp zVASjp=hFOQ7QatZONrOf?H&cDW(6{NLgeJ*b#b2EuQILLtW*<3`3|qy$Bb6ju?${J z0vrsC_tthCwGk17-%bMeyiJ;GBP@4M(qXTl4-VFuAR8ZyzH)JU9L{eD_O3tD^IRLn zmFDPy)YT<{zQ{Y-b6}iJrLDrb2@qmu_QRCZRrS1IUp+kqk}F-ApS)k5v9L_Ld=-^a zs4&AC_@0DhW#_{3;1ctO=$Ensi00Zt%gc$8Yax&hMXG3EZo|t)7u_KqZ(p99b3GpD zxNT@S8Se;G@K;Ijrh?x1g1lsHUA~B$%4hraGoR1)`uV^>WZ*Xb#h@xzbof%YS^*_r$3C;r!-;Q|@e#22e{uVt!p$8F3#VUg$NnCiR2&wOzI4omRKqgOsLkDIH(8Tt$x*P<=CN^1gVzp3@WxwT z!D`Zx&{H^PsgSg_y{J?!y|V_)aSbu#r*k$05B@+hj_J^38Qm7Vy==@0#d#xZ%X%u!OU`)l#8j zF|A_@XisNHtGWi;%xkFqbiKW{R~qu~l`IZxFDtJvF0D26@WONyLx#h_!I9%r_e7EK zoL!7+ZdP|P50MQZG8%0-o&QLhASOlVyFFlD4Xu#(R?LlzN0Z0QM+%b=Cn+fn$wcDx zJ$QE3EbDD$yxQ|R6cv@JCmdXP@E;9axufJt4L~*=Y=Yo^KZ41$o z@}aT8?|y{0&`a%k>ogz zl{b+({!yLV(yU+*Vf%5^dIGWJDnBK(nvEX!tR-*WH0x%u7!aV>WKpR_l8p%gMm9S>oeY8De^)^0zU zGoRlTo_=41WO?2n&+NT!CU+wLX$zzWrB!bf@>fgZw%w)%*hW5DRH4s5b{a9S+Ypd~(jGc}-_`(;KZnW3(lu zxlM(|GXNZvhHRn&Z!@8@TJhNZ*meaQL%LsvtGQ4d&xBP@;tGoF2ohQh=tP}M6bs%Vlk5>i3Vt{&L3G;f?q2T9L67Y_oYLg1=oEO9y#p*l z^9(m92G)g@qp9I`9NaAVmtORPhvKn`S@~GEaGve#(hS}KGJ$H&Psce_%nY2*NN^wD z4mGiRc{T~zxTqM5&^+^%QFZSiKW*=KF>0g{NJd21Xn}}W`AD7$MPx%7l)Nf)nwt;q zW1%hb5D>|Jqg_#Eju(TZ2H*SnCFHaGooSpk{qghD@l^R>T zS%QK=TJsh5Mq&FtLm<)I&=O7)0#vX8^taQp5a-=%=5pi@*KeZYIz$w=E_&eb>H~i9 zbwJm%EAP(@t5k>(l>u&g$p6%?hl*_J;R;;87QX1Kh4+#@!v|ewP0Zq$k;=DJU%$s+1Pkbgo)}b%}-rgj2|<9bOuzdp;1xe-$7yhVrozvE+a2} zm8Zt&kls7Qm1W+P#0hxjTnXxEojmnLJHt{*O{A4-az-9nI^OVy_iq?>aV*eR<&h5I zFw+^U>Kgi*p`o`R8hFS7mx5v6)(-8IT7Ha&z#)plYdx)Y)YZq3NZ^+su>}aU-3?z( z8SrYDcn~-lA0Hncexnld6Q&WvlvZV?7MuP&Fb=so^DSqm|0$^w85K=t6Oh*8vJ>~U zQw&}6stf=pl6FlJ@V>pHo1%=`kE)oTArDVx(4>eTzND;pX45f{6IEi+(l}hKZUy-v z3Plwi!4JSbmY3Hb!S~?}saQS+FyEAlbxnA`la3~u*G$QVs~o!XIj_}bY$rg+D}x|_ zVM?HLnap6!odz2})UorjS?%eKvwIN=i-{3x$p1W~;0tx(Zf!}dqMw~EqY1@zj+MEs zhg1B)h`o~yS&L-!`LqKmSo_%~a8lc7d*V~uS`Dw`Hkyq%4pA=tiJS52DQQknTlo2E zU`6=V`6NKK%^(|EWH)P3Jis8vbL2&C8JzR>gnm;*PI&6M22>^ zvis)61AG@x*W+t6?GPF=M2&|7^NOa&nB+4Oi1IEZ`>}7Df$%QWolLTo_6!ut=ZgBW zylP3{NQ0$DN9gM}4@LG)t1&|35m?fjXLpQlr7DQBCI;P`sNBk3sQVHm-IZGfx)a=T+}WN1726c0KJj6Pe= z$WvA5z>wq*)e>K8sl4O%Aw?yOdoeRpn}>&z8G3%97p7u=4s_*BX>Ms+C|4yb*w?un zCI5|!U#YIKfhuUy?mgq z11_SnND?r0JNNz$UtQ@-D+^p+zAZ+8w^bjLRTWPCu6M52xBfoC4pt0xtmzA%{4BYn z%|q0n`z70GNfc$L0eMSe7u_?rUFJ^_f5`6Je~OQ)AvRQpOhtGM_^n}dh0rg#(!jo# zYSu3@^|7$_u9E0z&+i?agn{c3DC|)6^eoNKXV2sKNYGi2Gdw-)2|jj@MjhkDBKb_5 zi{RY6B4C8vQ=6Ap>wy}arGEh9A{MwZRr5&Ht)#M8(qu<*(Nzk-+bYqRaNThNcL zpi8ZrRoB;Cxx@*r8{K!@rzQ1-K*3{ca*J)L7>lM+(;!7}RC7@y#6^ADs-e8|)znJC zdQ~sNSUYxeeOp1EpMMZ5vtp}bTfN3AF*S9+5%frNN?TpMa;;I5&l zRDS3SP6_sPGKqz90@K%rulG-+sYTIJpOtm(IdQ;Uh_z(gdGmPij_kQTTUx8PtED-9j;mI?D)!E1-U{lJ}@;l zIHJART#(g-z+ROGm6uLvv3xqpCxIzX#20jQDd@PrOS+7FY^#;XT>qx4Nul+egsQ{A z;MY(gIB&Rzzp9lqcFk{gX#u#m_MdHgTQjXTo#xl5y`6Re*xtlMAGZ|)`RvN{k&Zln{v|Bemq@rA{+BxtHTjPZ0b+Jf70DXu={Xd5+1WSQRn7m#0>q8u z>T|G#5l1t@;KSQKg_*;iWxh5XdhP0`o;wV6e}PLefu}?p4!!0s7-zdR(;1`vg9B72 z2cMtfwBlkR)vTM3fQ$ESBQ(Gq8+cg=MXDs6{UjI;BuNHZ&5(nq5*!WK1^=nZ| zB;i}m@-phH8>AUFjceCx8mKcK$hv-JB8%zM81Cz3;hKV?P&>NrIJ1^Xknh$9<0-|6BM(sHO*q7x>g z~E!nK26m5kVxfw7g#AHB76gF*X4k zmtLm^vG1X79-p-B)wEpK*%EOKrXuO}9-pNz$tUQ;(>B#tZI6@bp-5q& zSm)=0Y(uJ32K1Vya|;KV#paL)D(e!dwZbRM?Kn6bB=5Bjmx?*q{cZsI&!z17Sts_v zz;~ljQqEx@V~@HeMJ)9TEUk$Os&D|bdm$vj^YU)u8D>+wO{o=B-lt%kPDZzr-PE;y zfyzG(%S~C`5%P{nE>Y0P|w; zUhtSyD)buOw~=FaB#V+#edl)}fsE=ha4YLj0eg`Mq{)d%f2clbs!im-D~v`MugkAj z_eRQq;rqfHmxTv)7g@P>uk`&MmAURqY1=(<=E?cq#|D{VFZyBC3M6Di{ZS@^N`-~5 z2AK4l7`rlQsoivzV@=+yE*{U%B9b4m!M3Xm$+D-`>2@()DqOCI_kHC&7a#ieOchd% z=!>FnZ-IWOBa@H6aA-5UrF^MhaoF2qITYjz@nhTbAGi~9b8Fh{_~K--R?VQeZvyPf z?^pSKbaeO=EEZ(#%*^tK?qHj34NYm;Sf_nG+z;9l7Otd~$J%~x$2eppZQDJgNa zckEy9Dx0KZq?O5JC6$0(oX>DaQWDN-z^GV|vHMh#mzkBCcYS#~n_-MWj5S=h1oR02 z99bF*cfet12rqK*H_7#Os$T^q2ujwLRN{TSd}X8gnb{Qzyq<|+|FY{1zT%lhQ^|3v zap`)N9^EsX`-J&tEqX@M?>Wj+?JKBdZ2&8D&7BQw^G090k#HYwJ!Ke*~v!mr3-^sy54wHJ@ zt@K%!;g%Iw{5iO|7;NU+8v72`=}F*F%qasR zHXYZ5x5fQzw(8#-c@xwR*xQxVD+ImK$D;lt2d0^|s(3(3{=L#>GZOWUELMr~ ze7p(N9inhUZi=fqOKJO3aPl+Cp}DN+0~(q!%LSpGV*Gn!io5%Qw_5lY=+C9tT*h&vw5F?2(eENUqx2rs+&Ogr4?Xf7({{hISCWGObc%b)dC(jJT3R@LsXVYMOc z(I0Nu*~H4tRY|!&@c>R!0!SKEHq8uGyGML}&nImhYG<#V%~+#^$D+aH(}`a!Bh-?Z zh$AM_uifs2I_N0^Q|W!=Da86Q!+L~Di>a=^uNU+()_N((^(-FAi4@JpqCvr@ac$@C5mPkL`m6Inn@ zUSEfzG1-2cinL;-io*D|joAXZf@fYM;j_}^1)MJ$QZ_(F_qv_An6>0oh^OMD8lGJ- z1d!2eultUR2WI|wEts3$ELniP5XbG>p+(tWJ@U>H{7XeqQyU@kxZHI$=w6t)W;eIA zcI&=6z>?Fd_dHne8Xy6@cn9az0c?6PAV9L&CJ(-=I(K8bFuJ~I*)s~|+8~H?6*B2J z?poV190z1C8Ujrz$myMrP_dL?r0fXfSNHR8bw|11=eSzDu4(ucV;NssJYIG=*C5Od z8xD%3Wnn5j&0ZHHSBxFu{w3wbR%UMKyJOAi_4>o8fiyWNr1K!LBSH+VW)@gOmSVVT z8lbXwa;eMawm0f2I00Z*?Ul@+hb>FUx>!tPc$atnl;3gL#auc8Fovj=B8StnK^=5L zF^nBQtO-DZON*--M#PzmIc$Mm&-avt<>j24ONxxs?ajwgTM!DIzPNp^$JFydyqHRv z#_P%%2073zWwpL)*js~i$!@@m505I0(*|Gb0PB>-%C$n$*V?8cDCl=tLLZn~eRdS? z{@^Z1ORE4SB(A8ah^Lzy(5VW_{iR}}-dmso5+&|pc?E9VNQVF0*Q4xLG4Bg;ab$8@ z+z(V5j_k5TJb}^YeVPKBSJE58MzD`Re^%wJGr_-sH>#H+$)nPZEH1RG1y@qSzDHIO zO(6FacrhD&q?b&pBqAXYROI!!{;FCi&)8>7+)+OfsZPvQC+i4!Y4G6F)Z%7v<+ne| z0I;aLMNM@6@#E3d8L8N(Tu?iBp!V|=+9#_A<-u8B@|@f!S~5ac)Mq+-Bm*(Sg15D8 z)33vxPWb!g^s>v(rJbpo=t}05ZPN>Kf2IdymHToRkK-j*xp}`#%qlpgYjBd1Qu4#+tR+I zTOHJn$&*BNL&IYkR4he^u*txOP+zhHVLln;W&eK1%b260G2;EQJQBpL)YMdP>F5T= zMrz9b*j3+oF=3WUz|R&f2E#$>n8IkGO~jvKeO{V~HoQeM76LetC{$vmyWali*Is+& zq>!DMvxDqME9Abt{uC(-9hJtM^}XrL+fL<~!=o4)F)?IzlcoqI)vRw`KNP&>WbYDh zMSTWCAX$yY#U5n*Z81z#G9&`;8naKg9TpRZx9|x zf0NCcEh-V0sbpYf*4L2~v9J3|ex&Vfxh2r?XHn@oxg-{EZI{NIKB<2;ayId4lT!!e zv-4|_E4-hRvvJ}o7VAZO^-S7bo)Mt@ZK>woP3u=O;6xO*589Ik-D9j&d7HM%6i?w_#{SHhUnUcUQ^%c!WN zXsU^d^_#597q9P@le3*X&N$y+u%=?;=WjL??dLZx+#tFfeAp` zhkomq)9UGvb=dvCHkq~AMV6vr+AzgR@6AZ^xe zSi;EmIV9_+n#zC&RU^9Y;)>B0hQ-D@d#8R2pG`ziNAG^J7ZNR;?M!K1YpjP_pA$R1 z#%*=+#Ul)22rt2O9eot8xJE!x9Z0}=t6?4=0s7^o!v~Uz-$=4*kgDXPwlNi>&Ny7s zZvVa>a&)BS{@FWGxrf6cMX5xunR1Dhz!Zz$j4JQi-`0g#17tIrNNeae5W{vfSW5u5 zFtGj{U(-sNUst`mu|bbx!D5{?HD|yTB3?1nyLI$Rmj_`mAxaanIu_TU!}e6K-qT0K zLF$#Sx+dx2Gw7b*INbmiGW=z&zx=&`7H$}-H#gRyw?%fqb_xHe&u`EtDq32jsW-Zy z&XlHifsAqz?d^ONcZlq0dhgTY59fgTqEDHD$BLOPFTp1WL&(IU=OO_#^ho;B?6HNP zTGuOtuUOcp>r#V{CqHn#9dZ+Y$~zlTTto#=Y#yfeTylYQ5wweWHvp5#-fR_fHygsp zCRSGb@pbd(^JH7yhQQl*IxD=qy}P^R^rJ0jCm+4SzJF@);(tAO_$P*sP=}uaBL8IqePnNg3_EhB{q>MX&G4OC>%)9wiZMOKXW1I)#4wXLs*)F?vdL^jScf8c+Lj=#zf6cq0c0JWP9TE ztRici&a0}NPs&Em0BY}l(OlyV9FQ*91?RhH^k8+(a`E;F2#&?xnH*m*nz?tUoCm$F zPLwk;HZd0Xg=a=T?$%v<_wUaJR&pV#Gg{ZpH^JaHqwC`O4M-TBP&c?>tMkB*&=pnU z^dK(i>9)3262GFN$=HwL|A)ex!m?$Hb``3n2Xw{hbB4AmK~Z#W|DmVC$KaWK>_GT0 zzAC&dbKNA%LePDnxV`~P7YiF8x^76?C&>%z3*!yI_4@wHaO)cx^9^;VY=$`{ro3YB z@@&P%+P|@YZWadq*hi18e|V?AT3<0#rhVT56*-uL1E3vn@jN}iDa3aLqDb5@xBg|Q z4(lm2CVjUO?jdu&V@2!UO09zYc8^SZg1c(^6MZT(8lcYFN!d!7lP>J{b$@-otUi0| zl#MKQU~nM_(w2i7|9OzHy6cG!*z2-~|XWxw;(Tm18dj0xeI%*^!V0~jz|T5EN>`ism~8f!$d`u0eFA4wJcOmxyCO{ zm!%~&8ILuSpWRjd!%3Z7d@U+D5C~GIab(oxo|~KQc`S{I0VT(*{XV=NJ$o7G?haS* zHqd@)@79GJ!>NE(kZ>4BM+bjpeTi?WudN*(N#FvS5NxiZ-$W|cnyjTnOijhKt#58h zlRZ55=bAM%G}>>*T3>IbT@xgBO4mGwS62nSRb*tq7d=nOm0CzB3fkCwD=UA2qFG!e zQXuKox3aRltE<}nVm_+-=;UN{xY_gO(tQ-!j5vk|tfHFv#YL|DwHa5pIX+e;B|E}e z>Ca-6CNE#xZGoN8`s~(U}{^n~(jk53}dz=X^N zvh zsgiPn`AM7o$z?v0=@*8g(Q-mnWw@(0Z?8G)Wx$;$Ju@+P@BV-lQ$q4IF>!Tzah!9< zb`@eJrg?OBcdCMny2$gzX652}VnR;EgnMpQVUHoFPcA@!R6crsev$8Wij(jIUCHO7 zN_1+S!vo>}cBQjPx**Qb90-xJe4>(Ko=fAtmwZ- zkA%d=+B_^uvdPDp7aIqgXc3?ySt=;P@QOx~iu66>8s)DK3FR8!Cp1l+i*9{~2@G9Rz!lg9?NG5-q8&er?}w1T++ zS##|k{rUB^jk$S?s?v|ioxi*-9*WTnZ54%#pKPU#jc_(|!H*iFmO|dCe6C#^(4I8P zT0AzQnBhgg+OGTRC7DjxVwNwKCGF}d|3$IuPq1HmD**ZdOpSo_6F?P?<`{%1{2jTa z*o$FB0UvV z<-F?)Zn0El9Q+OKahcP%u;4t_7Bo?vrkTc&nWrpV9)}zD2T(=}(TE$@@HE;cCPwk7 z=g!jWv`j56H5OL`5lWIRhwN$JzWu4w-?8(tagi6y0$1Y6?~Z7`GgUJ+eM*ejOR3~9 zB~@WaUL76LQxfMDS}Z>rWL2acmaNtf>CXu2zy3k>9tI$T4Jl80ScDWCAIpBvpdj8C z@IF*?b5okBOM&=70D?>jD>VDeQopTU4kPDNg+?U`LPQEb-Wi zrYvGeXJlRa;qyL-Q39=(ht-)O19iu^cdk;WfO;`^KqC@LKk7e>%3DkAsQRefpd18u z_lF$PuAcHcgg&6T4m2C;?1yEPt`D%piu!xitfiIZ1uJ4INy+(|zRR`(=tK+XH9y)N zhy6|0$IyxlUi-j<$V}psLKz|ic;qQZ8dF@(cllyUl{04tr;7kCCpN!1VkVFNVgBpu z&?pJo@BL)M7HNzXQmw%M?0Y}>Zg*tV0#w(Z8Y zZQJYW`@DVLXU_Spxqa)$`jc&IawolUo#!>qF^*$DrbHNIsZ%*-W){43)znw;`SGv2 z2=c#LeO)wLd@MOFkIkAbupk!~53};}^A}8Kx1R6rrl4m>tx8}sSn)4aq|xNX(?daM z`XKIDAtic$gH;zqh1WuPz1cW5A`a7(FoW3c#9QlYctQ-QHic_wSt*x0S1Y$QI@5-i zhOG|p;MFuW8FHiw&I;`H4Gd*$OqBGdc{SH^uMF9V2f1n^^I7#UkD^SJz-dyeocpP7 zD(D&XsWAC7mrH%H8m6qkW-o_V)Usdq#dowVsD2YF?+o#>(dQ`WAyG-go=9jydXE&B+3qi%XLPHdg_* zyv4#Rwk%GGv(!h(=Bo!w-ssbpW8Fr%IkP+$y&%e?oDC)!CRdWiR3+{E_4Swg~=xDys7_!jr zu%#d@OoGg(;V^q>kJZ}Z-jDa$dbadPF;eo=Hb=T^V|n@6e3ZM>At1%m)7KwSnRqk> zc8leso=X0TCIEhCAEo35utZ+lR#A%Q==!yeJK^mgrzcvLkK;^d8KyV^5!(2@t!=eL z1~)1K_sDE#XW|~yyjVx_+8l@T#=6CwO*i+`g@E@|W5DJ8!F;P&E5HMh*g(hxAe8q@oI1_45 zzM|-c=gWDoEX>HqvCx%$+;Dgu4yv2Y``Sp!7smxpM-^|4%b(?FWz`3ER1T&}fZL|8N20VV?tD(t38WmA!A zqp=C{r{BJ?U*kf>^-rBVVF5u|v9tLHxA7j~S(M`fj-CDeLfrsx6rZE|P&n!)zVuD> z7Nv-3BXu*M1jw;9p7HJ1CRt$;5+VQWI6nXS`ucQM2Y7|?khe3{imM3h$F8XK4Ym|E z^j9Vl;e;(=SUE)ni`CoIG?QCmQ`;F6&XOd>ZX&^(A-u9^!%|{&lm$on%%x1y#l<{& zeiG`>kho0@hT++cnZ+{8A0oB2wAP=Kw&qzKZ?{{!+{$!F+{80gIh6z72$kDRe5yl4 z4Tbwhuo9BE;!zbe+B~enzk`DzMjLWHJ+r)?m3wL#yg1m^bdG-gkz11k!R>0OSRdWm zyzwyEL@WTQiND@N(5KRaooKEWZ~b*c^JcUrWzNV`MAu#F8>x4NRZUM{pJC1#rL=fv z!0p53+Y>W`OQ9F{`?(M~cB#mWFrJZ&Opu0#CSdBwV@2Z>7#aF)D z)|(f{6CCXI{fl|{o&g(xEG#{%4)ypBy# zakHT%jrmSjhU49+xmm}@7ohD1P*vtWiF~!^@X+Il{b;7yYV(=hLCAQ(2ZPlqwY?Bk zV4_`vJ0qGM4U_FU^hYM3F}sr#_78|sjXeysSzdEH=t@GJspggR9*YP%_{_7)-PW0< zt(;VEPqClc>4?UiS95+~n0m(Gq@b!Js;N^az z()@$i4Gve!*%QyJAKjR#m@FLx*f&Pef)7B@>;8}P+qi@{pf>0ZD^5rh`3?k$uGZ?rCTR`@N@jUSTFq5CNQaYfn3pQFO@2#~nX9;C;p> zCnjJu3r}BfuP3V0zIZ;$>*&zj{&oL zP!K4P59vXWn~2%piE4xlc;+sUOZ8Hnc2X?y1u`*WtScP%_sz0dwOTQ;mwYZefzn!Q z&(YBl2z)te3f^e*>l?TaqE=@`L*n>oF4B&@WfBbdok$-hH(jZ5PaUi20VNwekPT0e zp6T2#Qp<&Yp1*&Nh7&S0(%7u`KyIKc;pDWv%9UY+JMdWSrJ+T2aeE`ng7S+?X+n)n z8wFulhfUopk3)$T_&8;X{B8i&&C=Zi$?!o_f?sbhxkqDD(BVaOB6nPxJqaNr=bpvx z`uci?#~lR~T;^$9Wt8(1F>{$3_gkN%Cn)oK>c?@Jc6iHbXCPFrh+n zrTH~>ad~afqw*DZGp23$ebrYCF?}=MT_+c30zL5d&x*D)W}GfU8o}u}9n`;)ci1^!x$^i=uG#S%CdVal6L2F4 ziT)+yfLJ}wwDW%u zsL%v7tu0NJYM3k(Chv8OOS-}&$=B(+zqIOvqfNvn#BaOmx8H}&ArMfvDOznkq6Ctk zaNdPWCU>=J;Y!(otko9TaAMV%&rX~kA46sP-Jn)r(dD(irkzFXEsRQJH3$|m`m58l zKnW`<2_OsMsDazRFWp(PeEq>DvjcChw_Rv~JN=0aSs3wKPPAu5;#;C{J# z1RS>&V9d+#Ev%g+XWoZ=c^)ml1(Gk__woU=0Ije&%W^LW@C-De+>TCja zs=e)F`8H`X_H>);3f7+=B8zn>GEvAB# zmA#|Q`-NVoDs{CL8QHyVYtv=roBFA;a^*LC*5&18bSA2J%Rxm|XuyP{vC8e(um+7x zN0rx-qm+e?jf=}S-ZwC?u(CoCl8m3$qeG`w5xT(3LM~sf9jB{vWi6jrOx8smz#fiR zOiEE$T&mG#k`@u+>Fiu6(WbPxx<8-znA>5cB!!JH0Sf7(B%pDt?$eHG7G}3LVMcxj z`fGo_U>7SGwCK4aIFO9ib3&$|9lbqqJBNCR$Q+kSjZZ@{&l<=0hxB43d~y)Ftu%h3 z07!?*B`>~c3E{9*@1mOd@$t2xhHc^$fuQ{koPHpQtoXDZ_(A}wLzm(^759rkHC_Z< zp0>7EKt-fQoTZc6H$FtEb9H^KQs)L!jc4!)In%!he99|RZCB6GY_X}jvMoM|`#Mrf zEnse3xqK+6<`{RgE|g&&zzYMa2qe$F(zP0#>e7$tC-9(53@qnSH1ZFJLue1u#Za}Dh z#qOr0+nJIO9*GvV-)cKKF|SZ+X>nIy;hf(4(lb^P2^o=Upszo}XkDoPmue-cT%M39 zfAo7={sV;_@^Wsrk3&T-$%u}FgT4Lj-5v0QkYJyu+c?WM1YCsDxQ*l@D1o;YIfhZ- z4B^esPhlK^BPu9a>M(8RP$#PYF-U|g)`U)Eau|6R2E@v;pJZ6C2(G<|=X>^>voZrP ztiZ)U5#_>uJRADKi*e0>?p0{JTfC~n*e4w-=d4T@{xx@No$U%$ZXEO62kohCM-)c+?q+yS99GFE+P?(A9S<6w3g_zvqEn8MAzaiJNqIZ{}-u=ip)#} z8EoD;;WJoB7@BcsFYu%CM^%C;xoCsQBcgFRM8mw$vooWBeoS4MT$K#-EOKxKgig>o zEw8SN>uYYu#|9U;Ieq0`8by|kt~nas9Ha%U)+%CbzI4I70}R;fAGTSu0m73p83^RU z#AMlD&E7Nd6>9JxA)u(si}18%X(vqbT*|oQ6lgqjgDNs*y)Di!K%F%!SQCuA+eJ>C z#($#imAH=}ru92Th>>N5fcxlXL!nUq1Prgez1~&*mM?_v9q)z}7tdKd0^j_!hPx(L zu@?hZ+tz7wCm}R=3~DHWlZ^|C?*EtCLit|2TwOZ@Ln$&r*YfQA@W`?Y2kvb5f&iTO zm0LkguEP2#{Ody|uND|lq3dSTd`v&Apg?a2I*?P<=5}E=caAU{8+s@Xio%97W8x8*oazt+Zany%qxmmtA6?z3I(A3 z{ekRR^0RjMTMg;gNtEJpHO?WzW_AuKS)kY97b;W=NKD$+0vn+!D#Rb_2>B_-Rkn0CkG1cvbY@>MczDPFtR~JTdV&wf!11*&jCA zU;T$naNohu&~TVeZ0fsmzljsKLhHEa^?CR4$Bw#ri8|M&XZY~ zT@ETWMGlAS^~D?2)rSjD5pXa{N~*Kf#x&czaD}?u$@iT1s%vkMO}5GhtypvWC_et% z=&rIk`;H%Dn_Zph%4x}IsFbVR4R)J~D`kN4V?Co9mZe?|S{`?OobWH4H zdAn+b_|tNKl`ZrsIT?d7Kjtv8kA-OHbC9}<`F2CV^o>h`A_nwr~c4P|KN&tu$9)-d3YY_5+z zMNC)*W6D1=WyS4@^cnSu1S^acOVq%zUixk*hE0%sMrPK34Uq}n4B}BY6cr+9%p@QF zTeic(%#<^#{=+Ob9$8vezsl!0HYDvF<%i)J;&w(uIHjqxPNrmVFKUx63a31Jd$av& z@YVc!VcVnLI)Uc7|KLv5z$;Y0p7I6Pu5vuJDiwTkAzB(19A^S264DLymoRW|$*Y~j zPoxgBG|3xUM$&yPB#O0a_T%W_abR|O{CgphaNlto`Rr7)(Dj2?b8{PI?L=sAD3PmT-=G(Aj|?vu@h8yL{So5Yc%Lnp}703d_%J?91b?i4-o z%Iv*101?CD>2%hfD?=8Fx^mm65?Yg=+COy_hdaxh*G}}j=dBVmKhH-;PwIy*m7_2_ zJ8pUHmK=FYB+I!1cXpVdTOvO3O^L(%bx9oKrS(VCn%svEK6@jY&trFQj?a{Fp6W-G z)Ciqk(msCaLpDL0vlc%=KTL$AE5CN~ymmcO%*8Qjqgpfd(oy+uPy14mSbTc@8 zeF5K(0{W{Ft8ONWF+u}8nA)P^Hj(aPt)b`BT`iZ1ze~o=@~t-tDz~i zeKaVwcBuQVJxvc7YIs&ms$r^Iw?{fA=lv*4@{Hw7JEm{n4Iu+weUy_X=l1*OM_r^Y zf1%7JmTF4M7p*_WiI&nCM6sKC*ipC))@JiCT=Q3QCA{wG4-IEy2;8hC$oL^BrNEog zVaoX{EzK)V>SXnyLDgeGz7;3~X z(0`Jq^g;5>veC2s&SMEsQ-u3_q~E+){~CQuz6a#AA_Ikhil1OOIyX0t7k_$jU@Hlj zUqX)zlm7e9b`f|3pY~7MLmPShhn!J>grHL4WNaaUdPAgbdA7f^m14^>mFT0J*FQHS z$B+?rb#ZZbd69B_C4n)bYPyLAUt`fd3n&DgWk;eFARAnrN&$31Pfw4Sk%FSC`}R2Z z?v*NFkfxY3J3cz8t*jmy{Px>q_(ufbWMq_``}ysQpwkx+umG7D7L_(TZ0xj6Bm+$2 zn)PoOABP7AHG9s%o*GCxg>V4?T$M=F2Tt*8>EA@T@}B0RYE%8D~BG=><@K zJ^&CgAF_UHY4KjKEK8}xXJ@0|?j9WhBPAy0;omP^PP>i7*u=uva%Z25o-`LC0vUIV z5KuGvg(L_H^@fIr)z#JwizOl9Anon%f11iIppC%HjyBArbTUvLzQ)+qv37T-vi(`E z*#XQ14RVJ8Q)gj$u{^mjuz~0I_T;X#_-g`cgBXK61%=qKu<)X@+O5Wf9GQd5I8z`w z${I%%&?rF152rVGEcDhMyn-KCizy2CNADCP#mJPDl$e;BB-)->o%3P0jCXfeH#Z~A zb&dj0E=0hf&=$=furSMgq6YfL0S}Mhc6IePcXxh%!qm!jE<$`&wLN)lWd=Z4dm2&? z9%pL{F!#VtQzIYz4$LlznClROMmBRPyuJAVlZBoQ1}xG!sO>IQa`QR{p61)?YP#1e z_ii2^!*8quS>ctGTku!5pQr=X1}P~ib2GC>D3(%I^U?Yg7nGxA7EDa?+23<#OJ{@u zVFDfp*XU>`LN6>scW*C>a+6~0*v;{mDD+xp%h%1wif?{us|yQWykQ2ApUC&qa(n$) z(Z^2rkH4S>Q4ETfQkLd^d?6}&f%5x8OPbT(-k#eS^@mc%2{Nb+3UqWE05u2(Ji49L zTlx^%=&HfK3DdPKl!%gA~7e1N1#ogNY*8J>vBU$~0{I5KdW zZi2P~1az*%RUJ$;7zinKPM-w<4}8Z#@*i@*0-WkMLPT@dTfg-5G9+O*a^X1DIv((= zAU1=G$v8)gHFnQay>H*{pZ&(9ie~8lGp#r=HwVZX1A~K@Pg##+stq~Y8XGf1dstY9 zRcCtFH#c8?lLYWnE=0 zm;1Aoz5K)M$(Sf%-LSafm~v!Xk_W&!@e7IX)DdZRzUf+!tx$Dydtp4&u{>*Vn^_DE zt=Z~_6EQPOSFVb_nf=trrVL>&uQ=Juor5lOw&!yD-{1rJ0$(P`y*9G4qFq4)i#u3- zrO}YFT}T*kNN#T(^7GXVsV(%WtZf_$OG|(L+1}vZSHovWBH+RS_bsb>IM_kJvi|n` zq{+aM#L6%1iuF1&(B{Kq;At)07SL>{tsx<1rnY->-SwzJ@8} zv}*ww$A109xT9LUw>8TQo;Ze2UcccX^DfLvrBJD<%{%hFZLxc zA|G?`EQkv$E0X};@{8$V+|;;#HZp%y(J=BOZ?d#M5A5%gUWRHxhgODOV-?X46crbD z3h}#(3p!(b5T7qAEwiz)DJ=BRdIy}z-Zok_>6elYjDb7vsEeupYnw)+m{3w8?So?X z&2fcx;>QXGI<}da6{Nlt14!EY2hd^F3SefiyXnWkrLLZ=D1;3;Yw%clq@ITJXK&xg z0=k)aXvTBp)as49BlRBBi;Eu&JslMMXWz%iD*&~b?cF)!&Xu|OiOuQc(Q#U;dNH{r zEqExY@cM)zUTC7oMJt~|2x!4wb3@Y;IEeex2p+8n7M3bFxNx75v9YOvLtT9hK#Wfb zp|axeg`Gz0WWJ?cn)G@n`L8xrn!1`+LkrNJ zWOy<^IYtgv9j+5&_K*cJ)Vd5y=>7#U)+2Y7oR^meY${L?pAdosN!d-lTX8k#C)|}R zTw&v+IumoME!%CD&cwzqcV{Ght8p0-;^27tJ0A1&yDA;L%(VpSUZd3y|Fh9xdAHW_{QI-Nz(r@Bm+wX~IGv3ZkO^Wc}ZJwMw^`=L_zXQYo z8ZCODOwLLfIK=&RI5g?(&i5MHZ8C+v=6S9^1$2&%k7X1TLd~buXVXG=DCUa7;sJR) z3=FvhHpkx-NL);V&)ltxU(L3}5OA3aZBcuANjkR+3P?{*54W$3173JN+q1Kgs(*n< zJf4vcB%!T^9HQ+OtR$0#yw3qiQ zFK=&dCJ`*2i>Bgmpi}$^fe&&2VSnde4FWA@1zGuxldZj-9UskqcOHg@?8<|hm*yAf z*Ki?WAvLSqn3$6>k4#OAv=k0-kB>KtNCE)cQ1DklHMcKy4<9-&aq3yNAC1c@0+h%%o6)dE8XlZU{gx_7?9`aMfr_!aGk?yG!nO2L>U+7g{ zf-8uI6p~U>@VKfngc)8D2+>&XeibPFxeRFKjl!k~Y~Jg3!sC9R*U_yEyLY3Yk-xf}FhgBmec z&719rDR7(rQc|fs748W*$%qYpiYglRU+98cn;OkmNCJ7~Yo4Co3V;X*h~XoEhXU@H zx1O(Lxhmi`*W+z*N6f*)0)e1u-1ec$=-Gn0{Oac7H&~W$`yG4D+66s-d>49BF8Avi zr9NkRIbR*`Zf~Bhw>)LAj~8A#o5Gd=^tzeJpm36$LacPm=l|&F1CWDTmMJ-0!M7|+ z{f`!CG&!%HL&^vBFBg*s{ry!|5DSWm=HGhrk60{rF2q3jJk-@sCVVv4(c$3AeRGuO z?+3;_+<7t%NFwlH|2hB%SN|zILqF5%t8O&5UmdG^e?e{k9va{8i-EkkktH2Aha_91 z4|m9=Q`x9i%dYt(5C!oS{qQq

NN@*DbKX}DXFFf6CU!F5euWEv3ShSJ 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 literal 0 HcmV?d00001 diff --git a/scripts/export_arch_vacancy_golden.py b/scripts/export_arch_vacancy_golden.py new file mode 100644 index 0000000..a25ab52 --- /dev/null +++ b/scripts/export_arch_vacancy_golden.py @@ -0,0 +1,69 @@ +"""Pin the pretrained arm's default passage set across both stacks (contract §8.3a). + +The six excerpts the measurement was made on are cut from the shipped corpus by +`llm_geometry.arch.vacancy_score.default_passages`, and the browser cuts its own from +`static-data/lex/corpus.json` with `defaultVacancyPassages` in +`src/lib/staticClient/arch.ts`. Those two are the same measurement or they are not the +same measurement; this writes the digests that decide it. + +Only digests and counts are written — the corpus text itself is already committed, and +duplicating 9 kB of it into a fixture would just be a second copy to keep in sync. + + python scripts/export_arch_vacancy_golden.py + +Regenerate whenever `default_passages` or the corpus changes; `tests/unit/archVacancy. +test.ts` fails until you do, which is the point. +""" + +from __future__ import annotations + +import hashlib +import json +import re +import sys +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +sys.path.insert(0, str(ROOT / "code" / "backend" / "src")) + +from llm_geometry.arch.vacancy_score import ( # noqa: E402 + DEFAULT_PASSAGE_COUNT, + DEFAULT_PASSAGE_WORDS, + default_passages, +) +from llm_geometry.lex.corpus import corpus_sha256 # noqa: E402 +from llm_geometry.lex.vocab import WORD_RE # noqa: E402 + +OUT = ROOT / "code" / "frontend" / "tests" / "fixtures" / "arch-vacancy-passages.json" + + +def main() -> None: + passages = default_passages() + payload = { + "note": ( + "Digests of the default passage set of contract §8.3a. Written by " + "scripts/export_arch_vacancy_golden.py from the real corpus; asserted " + "against the browser's own cut in tests/unit/archVacancy.test.ts." + ), + "corpus_sha256": corpus_sha256(), + "count": DEFAULT_PASSAGE_COUNT, + "words_per_passage": DEFAULT_PASSAGE_WORDS, + "passages": [ + { + "index": i, + "sha256": hashlib.sha256(text.encode("utf-8")).hexdigest(), + "n_words": len(WORD_RE.findall(text)), + "n_chars": len(text), + "head": re.sub(r"\s+", " ", text[:60]).strip(), + } + for i, text in enumerate(passages) + ], + } + OUT.write_text(json.dumps(payload, indent=2, ensure_ascii=False) + "\n") + print(f"wrote {OUT.relative_to(ROOT)}") + for row in payload["passages"]: + print(f" #{row['index']} {row['n_words']} words {row['sha256'][:12]}… {row['head']!r}") + + +if __name__ == "__main__": + main() From ce53c9fbd3f0477e8a77bc5f6b4ed54aefe5aae4 Mon Sep 17 00:00:00 2001 From: Jeremy Manning Date: Tue, 4 Aug 2026 12:26:06 -0400 Subject: [PATCH 36/38] Enable the swap control, and document the whole transform MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Lexicon Lab's `mint` control was rendered disabled: `LexiconLab` never passed `mint` into `vacParams` at all, so it could not have worked. It works now, and the interesting part is how its one real constraint is presented. `mint = "swap"` is injective only at p in {0, 1} — a theorem (contract §5.2a), not a rough edge: a map stable in p whose images are domain types is injective everywhere only if it is the identity. So the UI never clamps p, never falls back to nonce, and never catches-and-replaces the typed error. `LexiconLab` asks the engine and carries the refusal up as a string; the panel prints it verbatim with the four exits offered as buttons, and with no vocabulary the counters, the trainer and the invariance check have nothing to report — which is the honest state of that configuration. Beside the mint control the theorem is COUNTED rather than asserted: every domain type is pushed through the real transform at the current p and the distinct images counted. Measured on the shipped corpus at seed 0, swap loses 244 / 322 / 233 image slots at p = .25/.5/.75 and 0 at both endpoints; nonce loses 0 everywhere. The `bijective` chip now reads "injective at p = 0, 1" under swap instead of a bare tick. Info tab gains #vacancy: the T4 2x2 with the vacancy cell marked, the transform's definition, nesting and stability and the four properties the source implementation claims and breaks, the invariance theorem with §7.4's framing (the exact zero IS the finding), the swap decomposition with "cost of unknown form" stated as an upper bound, the stress table's real status (61 rule-seeded entries, never human-checked, 5.1% of this corpus's tokens), and what the static build refuses by name — plus the WebGPU/CI coverage gap. #real, #limits and #refs updated. Every number in that prose is pinned by five new tests in docs.spec.ts: the counts come from a live POST /api/lex/vacancy, the swap collisions and the stress-table size are read off the running panel, and the static build's ±0.2 nats and 700-token floor are read out of the constants that enforce them. No number from the source document appears anywhere; its prosody figures are its own, on a corpus we do not have. Also fixes a stale comment in staticClient/arch.ts that still documented a ±0.1 nats quantization uncertainty its own constant had superseded with 0.2. Co-Authored-By: Claude Opus 5 (1M context) --- code/frontend/src/lib/staticClient/arch.ts | 6 +- code/frontend/src/viz/info/InfoTab.svelte | 339 +++++++++++++++++- code/frontend/src/viz/lex/LexiconLab.svelte | 113 ++++-- code/frontend/src/viz/lex/VacancyPanel.svelte | 225 ++++++++++-- code/frontend/tests/e2e/docs.spec.ts | 145 ++++++++ code/frontend/tests/e2e/vacancy.spec.ts | 63 ++++ .../feature-007/info-vacancy-section.png | Bin 0 -> 887910 bytes .../feature-007/vacancy-swap-full.png | Bin 0 -> 539102 bytes .../feature-007/vacancy-swap-refusal.png | Bin 0 -> 569964 bytes ...026-08-04-feature-007-vacancy-transform.md | 49 ++- 10 files changed, 882 insertions(+), 58 deletions(-) create mode 100644 docs/screenshots/feature-007/info-vacancy-section.png create mode 100644 docs/screenshots/feature-007/vacancy-swap-full.png create mode 100644 docs/screenshots/feature-007/vacancy-swap-refusal.png diff --git a/code/frontend/src/lib/staticClient/arch.ts b/code/frontend/src/lib/staticClient/arch.ts index faa1387..0e0987e 100644 --- a/code/frontend/src/lib/staticClient/arch.ts +++ b/code/frontend/src/lib/staticClient/arch.ts @@ -721,7 +721,11 @@ export class ArchSection { * is 14–23 % pooled with sign flips, so quantization eats exactly the contrast that * makes the result mean something; * - pooled `swap − english` and `nonce − english` are reported, with the measured - * ±0.1 nats quantization uncertainty stated beside the sampling standard error. + * `VACANCY_Q8_UNCERTAINTY_NATS` quantization uncertainty stated beside the sampling + * standard error. (This line said "±0.1" until that constant was re-derived on the + * configuration that actually ships and came out at 0.2 — see its own comment. A + * number written twice is a number that drifts, so it is named here rather than + * retyped.) * * A dtype with no measured bound is refused outright rather than given a ± copied from * a different dtype: a stated error bar that was never measured is a fabrication, and diff --git a/code/frontend/src/viz/info/InfoTab.svelte b/code/frontend/src/viz/info/InfoTab.svelte index 893e0b2..0a06532 100644 --- a/code/frontend/src/viz/info/InfoTab.svelte +++ b/code/frontend/src/viz/info/InfoTab.svelte @@ -6,7 +6,10 @@ // what you can manipulate, and — as importantly — what is NOT claimed. Every number // and equation here is transcribed from the code it describes: // geo/model.py, geo/fields.py, geo/config.py, geo/bundle.py, geo/scratch.py, - // arch/{graph,trace,generate}.py, config.py. + // arch/{graph,trace,generate,vacancy_score}.py, config.py, + // lex/{dolch,vacancy}.py + lib/lexEngine/vacancy.ts (the vacancy section's counts are + // what `POST /api/lex/vacancy` reports on the shipped corpus), and + // lib/staticClient/arch.ts (what the static build may and may not say). // If you change one of those, change the matching sentence here; the e2e docs test // pins the values that are cheapest to let drift. @@ -16,6 +19,7 @@ { id: "arch", label: "Architecture Explorer" }, { id: "geo", label: "Geometry Lab" }, { id: "lex", label: "Lexicon Lab" }, + { id: "vacancy", label: "Vacancy transform" }, { id: "real", label: "What's real" }, { id: "limits", label: "Known limits" }, { id: "refs", label: "Source & references" }, @@ -614,10 +618,12 @@ So nothing here reproduces its curves. Every number in this tab is computed live from a model that actually trained in your browser. Three of its instruments were deliberately left out rather than shipped broken: its meter score, which does not measure meter (the line - “and I do not like green eggs and ham” scores 0.333 against a nonsense corpus's 0.346); - its constrained decoder, which can emit fused non-words and is unnecessary here anyway; and its - nonce-word “vacancy” experiment, which needs a parameter-matched control that does not yet - exist. + “and I do not like green eggs and ham” scores 0.333 against a nonsense corpus's 0.346), + and its constrained decoder, which can emit fused non-words and is unnecessary here anyway. + Its third instrument — the nonce-word vacancy transform — was held back for want of a + parameter-matched control, and then shipped once it became clear that the control is the + design: under the mapped condition the transform preserves the vocabulary exactly. It has its + own section below, including the four properties its original implementation claims and breaks.

Finally, on the name: this is not a Dr. Seuss model. His work is under copyright and is @@ -626,6 +632,273 @@ model is therefore not a Seuss pastiche.”

+ +

The vacancy transform

+ +

+ The two labs above each hold one thing fixed and move another. This instrument moves a third, + and it spans both tabs. It rewrites a corpus so that its syntax, its inflection, its + punctuation and its line structure survive byte for byte, while a controlled fraction + p of the open-class stems is replaced by invented forms carrying the same + syllable count and stress. What is left is the condition Jabberwocky puts a reader in — + complete scaffolding, vacant content — manufactured at a rate you choose, on any text. +

+ +

The 2×2 it fills in, and what each arm measures

+

+ A token can carry two independent things. Its location is whatever the form itself has + already earned — you have met the string before, and something about it is yours. Its + field is everything the surrounding context fixes about it. Vacancy manufactures the + cell where the field is fully supplied and the location is gone: +

+ +
+ + + + + + + + + + + + + + + + +
no fieldfield supplied
no location(i) random init, no data + (iii) vacancy — nonce form, full syntactic support. This instrument. +
location(ii) minting at a hub centroid(iv) ordinary word learning
+
+

+ Two arms measure that cell, and they give different answers because their models differ in + exactly the way the 2×2 is about. The Lexicon Lab's word-level model is trained from + scratch and has no locations at all — its entire lexicon is a table of embedding rows, and it + never sees a letter — so for it the transform is a pure relabelling and the answer is an + exact zero. The Architecture Explorer's pretrained model does have locations, so + its answer is not zero. Neither number means anything alone; the pair is the result. +

+ +

What is preserved, and what is replaced

+ +
+ words are found with the tokenizer's OWN regex   [A-Za-z]+(?:['-][A-Za-z]+)*
+ u(stem) = (first 8 bytes of sha256(“seed:stem”) as a uint64 ≫ 11) / 2⁵³
+ vacate the stem   iff   u(stem) < p +
+

+ Preserved, byte for byte: everything that is not a word match — whitespace, punctuation, + digits, line breaks; the closed class, which is a curated function-word list and deliberately + not a Dolch budget (unioning the two silently protects content verbs like + run and eat and understates the vacancy rate); inflectional suffixes, + since the stem is vacated and the suffix re-attached, so dog's becomes + <nonce>'s; and anything failing the eligibility test — good-bye + contains a hyphen, so it never moves. Replaced: eligible stems, and only stems. +

+

+ That the transform finds words with the tokenizer's regular expression rather than one + written beside it is load-bearing rather than tidy: the theorem below is false the moment the + transform's idea of a word differs from the trainer's. On the shipped corpus the map's domain + is 2,233 types — the corpus's own 2,211 plus the full Dolch list, so that + switching budgets cannot re-mint the text under the reader — of which 1,944 are + eligible, sharing 1,680 distinct stems. At p = 1 that rewrites + 8,202 of the corpus's 16,000 word tokens; the rest are closed class, too short, + or not ASCII letters. +

+ +

Nesting and stability — which the original implementation breaks

+

+ Two properties make a p-sweep interpretable. Nesting: since + u is a function of (seed, stem) alone, the set of stems vacated at + p is a subset of the set vacated at any larger p. Stability: a + stem's replacement is the same string at every p at which it is vacated, because + the map is built once over the whole type set in canonical order, before any + p is chosen. +

+

+ The source project claims both and has neither, and the reasons are worth naming because they + are the kind of bug a test suite does not see. Its map is built lazily while rewriting + and guards uniqueness with a growing used set, so which of two colliding stems has + to retry depends on which was reached first — and therefore on p. Its give-up path + returns a syllable plus len(used), a count of how many words happened to be minted + earlier. Its seam fix (wee + erweeer) draws from a + shared RNG, so it too depends on order. And its injectivity is assumed: it accepts an + avoid parameter and never passes one, so a minted form can silently merge with a + real English word. Here the map is a pure function of the domain, the seed and the prosody + setting; the seam fix is a hash of (stem, suffix); and injectivity is + verified over assembled surface forms and re-minted on collision. The Lexicon Lab's + ribbon shows both properties cell by cell — the classification comes from the real map, so a + broken one would show as a reverted cell rather than as a paragraph that stopped being true. +

+ +

The invariance theorem, and why the zero is the finding

+

+ With one nonce per source type and no partial reveal, and with the budget's word list pushed + through the same transform in the same order: +

+ +
+ tokenStream(vacate(C, p), V_p)  =  tokenStream(C, V)   element for element
+ for every p, every seed, every budget, and either prosody setting +
+

+ Three facts make it true. The transform is a bijection on word occurrences preserving order + and line structure, so the <eos>-per-line rule fires in the same places. The + type map is injective on the whole domain — verified at build time over assembled surface + forms, and therefore at every p at once, not merely at full vacancy. And because + the budget is mapped in order, every word keeps the id its pre-image had and out-of-budget + types still land out of budget, so <unk> appears in exactly the same + positions. The corollary is that training is bit-identical: the model's configuration + depends on the vocabulary only through its row count, which does not move. +

+

+ So the headline of the tiny arm is an exact zero, and the exact zero is the result — not a + chart that failed to render. Three of the knobs — p, seed, + match prosody — are invisible to a word-level model trained from scratch, + and only the controls that break type identity can move a loss. Read plainly: for this model + class, all of a word's meaning is field and none of it is form. The Lexicon Lab checks it + rather than asserting it, in two tiers — the id streams are compared element for element on + every control change, and a button trains twice and reports max |Δloss|, which is + 0 and is printed as 0, never as “≈ 0”. A non-zero there would be a + defect, and the panel says so instead of rounding it away. +

+

+ What the theorem does not prove is that form is worthless in general. It proves that a + model whose lexicon is a table of rows has no channel through which a form could matter. + A model with subword tokens has that channel — which is why the second arm exists. +

+ +

The swap control, and the decomposition

+

+ Vacating the content words of a passage changes three things at once: the forms become unknown, + they fragment into many subword tokens, and the passage stops meaning anything. Only the first + is “location”, and no caveat can separate them — but a control can. Swap runs the same + transform with the replacement drawn as a real English word: from the corpus's own + open-class types, matched on frequency rank. The passage is then exactly as nonsensical while + every form remains a word the model knows and the tokenizer segments normally. So: +

+ +
+ nll(swap)  −  nll(english)  =  the cost of wrong content
+ nll(nonce)  −  nll(swap)   =  the cost of unknown form +
+

+ Both are means over the tokens of preserved words only — the closed-class scaffolding, + which is character-identical in all three variants, so the comparison is the same function word + against itself. Their sum, nll(nonce) − nll(english), is never the headline: it + credits the cost of nonsense to the cost of an unknown word. +

+

+ “Cost of unknown form” is an upper bound, not a measurement of location. Nonce forms + fragment into more subword tokens than real words do, so that difference carries the cost of an + unknown form together with the cost of a longer, stranger context. The two are not + separable without a tokenizer-level control, which this instrument does not have — so the + number bounds what a word's location was worth rather than equalling it, and the panel says so + beside the number instead of at the bottom of the page. +

+

+ Swap draws its replacements from a finite pool — 1,944 eligible domain types against the + map's 1,680 stems — so the tail of the canonical order draws from what is left and its + frequency match degrades there; and a source type carrying a suffix may receive an already + inflected replacement. Both are consequences of drawing from a real vocabulary, and both are + stated rather than smoothed over. +

+

+ A swap map is injective only at p = 0 and p = 1, and that is a + theorem rather than an implementation limit. Its images are domain words, so at an + intermediate p a vacated word can land on one that has not been vacated yet. This + cannot be engineered away: a map that is stable in p and whose images are domain + types would, if it were injective at every p, have to be a bijection carrying each + nested vacated set onto itself — hence the identity. Measured on the shipped corpus, swap loses + 244 / 322 / 233 image slots at p = 0.25 / 0.5 / 0.75, and 0 at both + endpoints. The engine therefore refuses the mapped vocabulary in between, with a typed + error naming the theorem, and the panel shows you that refusal rather than clamping the slider + or quietly substituting a nonce map. Full vacancy — where swap is a bijection of the + domain and the invariance theorem holds for it exactly as for nonce — is where the pretrained + arm scores, so the control loses nothing it exists for. The inconsistent-assignment condition + is refused under swap for a different and equally countable reason: it needs a fresh type per + occurrence, and 1,680 stems cannot cover 8,202 vacated tokens. +

+ +

The stress table, stated honestly

+

+ When match prosody is on, a nonce is built to carry its stem's syllable count and stress + pattern — which requires knowing the stem's stress. That comes from a hand table of + 61 entries covering the polysyllables of the Dolch list, and the table's own provenance + is: seeded by rule and then never checked by a human. The source's status page says it + “wants roughly an hour of human checking”, and that hour has not happened here either. The + table covers 5.1% of this corpus's tokens; everything else falls through to a spelling + heuristic that counts vowel groups. So every prosody number on these pages is indicative, + not exact, and none is ever shown without the three-way split beside it — how much of the + stress came from the hand table, how much from forms we minted ourselves (known by + construction, but asserted rather than verified: the minter checks syllable count, not + pattern), and how much from the rule, which is a guess. +

+

+ The suffix splitter is a spelling heuristic too, not a morphological analyser: it is right on + its exception list and wrong outside it (ladderladd + + er). That is tolerable — the nonce still carries a consistent identity and an + inflected-looking surface — and it is said here rather than absorbed quietly. +

+

+ One rule this project holds itself to, and the reason the numbers above are the ones they are: + the source document reports its own prosody figures on its corpus, which we do not have. + None of its numbers is transcribed anywhere here. Every figure on this page was measured + on The Real Mother Goose, by the code that ships. +

+ +

What is refused, and where

+

+ The full stack scores in float32 and reports everything. The static build runs a quantized ONNX + export in your browser, and quantization moves absolute log-likelihoods by tenths of a nat — + in a direction that is not even the same across two models. It may therefore state a number + only where an error bound has actually been measured for the dtype it ran, and it refuses the + rest by name rather than printing a value with a plausible-looking margin: +

+
    +
  • + Absolute nllPreserved: refused. Quantization shifts it by tenths of a + nat, with the sign varying by model, so the number would say more about the export than about + the passage. +
  • +
  • + nll(nonce) − nll(swap): refused. It is the small difference — the + interesting one — and quantization's error on it reaches a fifth of its own size, with sign + flips. A contrast that quantization eats is not a contrast. +
  • +
  • + Per-passage rows: refused. Pooled differences cancel; a single passage's does not, + and one measured case was wrong by more than its own value. +
  • +
  • + A pool below 700 preserved tokens: refused — that is the size at which the bound was + measured, and below it the honest answer is no number. +
  • +
  • + Any dtype without a measured bound: refused outright. A stated ± that was never + measured is a fabricated error bar, which is worse than no number at all. +
  • +
  • + What it does report — pooled swap − english and + nonce − english — carries ±0.2 nats of quantization uncertainty stated + beside the sampling standard error, quoted to one decimal place because that is all the + measurement supports. +
  • +
+

+ One coverage gap belongs here rather than in a commit message. The browser runs + webgpu/q8 where a GPU is available and wasm/q8 otherwise, and every + session is gated at load by a non-degeneracy check — a causal model's output must depend on its + input — because a dtype this app once tried first built a working-looking session and returned + input-independent logits. That gate and the ladder are unit-tested, and the WebGPU path is + verified end to end on a real GPU. But GitHub's runners have no GPU, so CI only ever + exercises the WASM rung: the WebGPU path is checked on a developer machine, not in + continuous integration. +

+

What's real, and where it runs

This page is deployed as a static site with no Python behind it, so it is worth being precise @@ -692,6 +965,27 @@ budgets against text it cannot identify + + The vacancy transform itself + + Real, in your browser, in both modes. The transform, the map, the statistics and + the invariance check are the TypeScript half of the same contract the Python package + implements, pinned to it by a golden fixture: the map's every stem→nonce pair at two + seeds, the vacated text, the statistics, and the token-id-stream digests, compared + exactly for strings and ids. The backend's /api/lex/vacancy exists for + parity and for callers outside the tab + + + + The pretrained arm (vacancy scoring) + real, in PyTorch at float32 — every number, including per-passage rows + + real, in your browser via transformers.js + ONNX at q8, but only the + quantities with a measured error bound: the pooled differences, with ±0.2 nats of + quantization uncertainty stated. Absolute NLL, per-passage rows and + nonce − swap are refused by name — see the section above + + Architecture: weight matrices from the loaded model @@ -743,6 +1037,26 @@ and every spectrum statistic are pinned to ≤ 1e-5 against the Python implementation by a golden test, but whole-run training equality with a Python run is not claimed. +

  • + The stress table is unverified. 61 hand-set entries, seeded by rule and never checked + by a human, covering 5.1% of this corpus's tokens. Every prosody statistic is therefore + indicative rather than exact, and is shown with the three-way split that says so. +
  • +
  • + The swap control is injective only at p = 0 and p = 1, which + is a theorem about maps whose images are domain words, not a defect. In between, the mapped + vocabulary is refused with a typed error instead of being computed with two words on one row. +
  • +
  • + The static build refuses most of the pretrained arm's numbers, and states ±0.2 nats of + measured quantization uncertainty on the ones it does report. For absolute NLL, per-passage + rows or nonce − swap, run the full stack, which scores at float32. +
  • +
  • + The WebGPU path is not covered by CI. It is verified end to end on a real GPU on a + developer machine; GitHub's runners have none, so continuous integration exercises the WASM + rung, the load-time non-degeneracy gate and the dtype ladder, but never the GPU one. +
  • A model trained in the Lexicon Lab lives in that tab and nowhere else. There is no account and no server-side checkpoint, so closing the page ends the model unless you save the @@ -783,6 +1097,12 @@ Blanche Fisher Wright: the Lexicon Lab's corpus. It is committed to the repository whole, header and licence footer intact, and trimmed to its body only when it is used.
  • +
  • + + Project Gutenberg ebook #12Through the Looking-Glass (Lewis Carroll, 1871), + whose “Jabberwocky” is the condition the vacancy transform manufactures on demand: + every function word and every inflection in place, every content stem vacant. +
  • E. W. Dolch, A Basic Sight Vocabulary, The Elementary School Journal 36(6):456–460, 1936, @@ -992,6 +1312,15 @@ .tbl td.span { background: rgba(91, 224, 176, 0.06); } + /* The one cell of the 2×2 this instrument occupies: marked in the table rather than + described underneath it, so the claim and the picture cannot drift apart. */ + .tbl td.cell-mark { + background: rgba(110, 168, 254, 0.09); + box-shadow: inset 0 0 0 1px rgba(110, 168, 254, 0.35); + } + .tbl td.cell-mark b { + color: var(--accent); + } .tbl.notation td:nth-child(odd) { white-space: nowrap; width: 1%; diff --git a/code/frontend/src/viz/lex/LexiconLab.svelte b/code/frontend/src/viz/lex/LexiconLab.svelte index 99091cd..8b55800 100644 --- a/code/frontend/src/viz/lex/LexiconLab.svelte +++ b/code/frontend/src/viz/lex/LexiconLab.svelte @@ -64,9 +64,11 @@ import { buildVacancyMap, mapVocabWords, + typeCounts, vacancyDomain, vacancyParams, vacateText, + type MintStrategy, type VacancyMap, type VacancyParams, } from "../../lib/lexEngine/vacancy"; @@ -134,7 +136,7 @@ let vacCondition = $state("consistent"); let vacRevealAfter = $state(1); let vacProsody = $state(true); - let vacMint = $state("nonce"); + let vacMint = $state("nonce"); /** * What a training run produced, or null while nothing has been trained at the CURRENT @@ -205,25 +207,50 @@ consistent: vacCondition !== "inconsistent", matchProsody: vacProsody, revealAfter: vacCondition === "reveal" ? vacRevealAfter : 0, + mint: vacMint, }), ); /** - * The nonce assignment, built ONCE over the domain (corpus types ∪ the full Dolch list) - * in canonical order — contract §5.2. It reads `vacSeed` and `vacProsody` and - * deliberately NOT `vacP`: the map is `p`-independent, which is what makes a stem's - * nonce the same string at every `p` where it is vacated, and building it inside a - * derived that also read `p` would silently re-mint the whole corpus on every tick of - * the slider — visibly breaking the stability the panel exists to demonstrate. + * The replacement assignment, built ONCE over the domain (corpus types ∪ the full Dolch + * list) in canonical order — contract §5.2. It reads `vacSeed`, `vacProsody` and the + * minting strategy, and deliberately NOT `vacP`: the map is `p`-independent, which is what + * makes a stem's replacement the same string at every `p` where it is vacated, and building + * it inside a derived that also read `p` would silently re-mint the whole corpus on every + * tick of the slider — visibly breaking the stability the panel exists to demonstrate. + * + * `consistent` IS passed, even though the map itself does not depend on it, because the + * engine refuses `mint = "swap"` under the inconsistent control (contract §8.3: 1 680 + * open-class stems against 8 202 vacated tokens, so there is no supply of real words to + * mint a fresh one per occurrence). Deciding that here would be re-deriving a rule the + * engine owns; asking the engine and CARRYING its refusal is the honest form. Nothing is + * substituted for a refused map — `vacRefusal` renders the engine's own sentence and the + * panels below have no vocabulary, which is exactly the state the reader is in. */ - const vacMap = $derived.by(() => - corpus - ? buildVacancyMap( - vacancyDomain(tokenize(corpus.text)), - vacancyParams({ seed: vacSeed, matchProsody: vacProsody }), - ) - : null, - ); + const vacBuild = $derived.by<{ map: VacancyMap | null; refusal: string }>(() => { + if (!corpus) return { map: null, refusal: "" }; + const tokens = tokenize(corpus.text); + try { + return { + map: buildVacancyMap( + vacancyDomain(tokens), + vacancyParams({ + seed: vacSeed, + matchProsody: vacProsody, + mint: vacMint, + consistent: vacParams.consistent, + }), + // The swap control ranks its replacement pool by corpus frequency, so it needs the + // TOKEN STREAM's counts; `nonce` never looks at them. + vacMint === "swap" ? typeCounts(tokens) : undefined, + ), + refusal: "", + }; + } catch (e) { + return { map: null, refusal: e instanceof Error ? e.message : String(e) }; + } + }); + const vacMap = $derived(vacBuild.map); /** The corpus every panel below measures, trains on and generates from. */ const vacatedText = $derived.by(() => @@ -251,18 +278,37 @@ * tab's normal rule. Coverage then collapses — and the collapse is the measurement, not * a failure to be papered over. */ - const vocab = $derived.by(() => { - if (!corpus || !baseVocab) return null; - if (!vacated) return baseVocab; + const vocabResult = $derived.by<{ vocab: LexVocab | null; refusal: string }>(() => { + if (vacBuild.refusal) return { vocab: null, refusal: vacBuild.refusal }; + if (!corpus || !baseVocab) return { vocab: null, refusal: "" }; + if (!vacated) return { vocab: baseVocab, refusal: "" }; if (vacMapped && vacMap) { - return new LexVocab( - mapVocabWords(baseVocab.words, vacMap, vacParams), - baseVocab.source, - baseVocab.budgetName, - ); + try { + return { + vocab: new LexVocab( + mapVocabWords(baseVocab.words, vacMap, vacParams), + baseVocab.source, + baseVocab.budgetName, + ), + refusal: "", + }; + } catch (e) { + // Contract §5.2a, and the one refusal a reader will actually meet: `mint = "swap"` + // draws its replacements FROM the domain, so at an intermediate `p` a vacated type + // can land on one that has not moved and two budget words would share an embedding + // row. The theorem there proves no `p`-stable swap avoids it, so this is not a defect + // to re-draw away. The engine's sentence is carried up verbatim and NOTHING is put in + // its place: rebuilding the budget from the vacated corpus here would be a different + // measurement (§7.2's rebuilt rule belongs to the control conditions) wearing the + // mapped condition's label. + return { vocab: null, refusal: e instanceof Error ? e.message : String(e) }; + } } - return buildVocab(budgetSource, budgetName, vacatedText); + return { vocab: buildVocab(budgetSource, budgetName, vacatedText), refusal: "" }; }); + const vocab = $derived(vocabResult.vocab); + /** The engine's own words for a configuration it declines, or `""`. Never paraphrased. */ + const vacRefusal = $derived(vocabResult.refusal); const coverage = $derived.by(() => vocab && corpus ? vocab.coverage(vacatedText) : null, ); @@ -270,7 +316,7 @@ const activeCorpusLabel = $derived( corpus ? vacated - ? `${corpus.label} · vacated p=${vacP.toFixed(2)}, seed ${vacSeed}, ${vacCondition}` + ? `${corpus.label} · vacated p=${vacP.toFixed(2)}, seed ${vacSeed}, ${vacCondition}, ${vacMint}` : corpus.label : "", ); @@ -545,10 +591,16 @@ one matrix counted twice.
  • - Not shipped: nonce-word minting (it needs a parameter-matched control that - does not exist), and the meter/rhyme "fingerprint" (the source's meter score does - not measure meter — under its scheme every word's stress pattern begins the same - way, so the score converges to the template's own density whatever you feed it). + Shipped, corrected: nonce-word minting — the vacancy panel above. Feature 006 + deferred it for want of a parameter-matched control; the control turned out to be the + design, since under the mapped condition the transform preserves the vocabulary + exactly. Four properties the source claims for itself are broken by its own + implementation and fixed here (its map is built lazily while rewriting, so a nonce + depends on p; its give-up path and its seam fix are order-dependent; and + injectivity is assumed rather than verified). + Not shipped: the meter/rhyme "fingerprint" (the source's meter score does not + measure meter — under its scheme every word's stress pattern begins the same way, so + the score converges to the template's own density whatever you feed it).
  • Browser and Python run the same recipe, held to ≤1e-5 on the forward pass, @@ -623,12 +675,13 @@ condition={vacCondition} revealAfter={vacRevealAfter} mint={vacMint} + refusal={vacRefusal} onP={(v) => (vacP = v)} onSeed={(v) => (vacSeed = v)} onCondition={(c) => (vacCondition = c as VacancyCondition)} onRevealAfter={(v) => (vacRevealAfter = v)} onProsody={(v) => (vacProsody = v)} - onMint={(m) => (vacMint = m)} + onMint={(m) => (vacMint = m as MintStrategy)} />
  • ;_wO5d9B^C^wTRlwb=DtTO&5k^zHngBz_@E*cV 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 literal 0 HcmV?d00001 diff --git a/docs/screenshots/feature-007/arch-vacancy-static-refusals.png b/docs/screenshots/feature-007/arch-vacancy-static-refusals.png new file mode 100644 index 0000000000000000000000000000000000000000..ad69c586f410b2cd324a5660c5c3571806976a95 GIT binary patch literal 362628 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 z zEY&?$05J!E+`TgCWZ#txm zsWtXC1Q^U4XV3V+esuCg;$C5na>q+u2K9gtOXgi})&YSlX?3@XWMpL0hVM6JxAOU= zrPSK49Sg9xUqos)V?liP`z(^UNP=a2faHOVmab*ZS&ywN>gC!kI(zGoYwF)r#z`TO71~$%+zxE+w-oeI<*!a~ zl^NPA1v3sfY_O(?9~+$n>@UW_Gar){7oh^}7Hyx{GZJEl}6|;faOOsDT&d%x0Xz+V?N+TE9E{3UeE%L&) zE?hAe{)bylVU_g~W2GhWeKP&@=WX{tn>KB5-M0XdIz2Ut zNP_Vhk+5Mj)aaHNguMBHKV@~xZh(cjb8xx7z_|80S~YhMZJz|YxPlx4RvWYwz8RnX zBuQQD8oC)Bq50@-f|r%<@1KR7Q(N-~LV)AQe6Nm7bBQ?nv|-DGqY zs9#M^PTtBQC8iM*Q{IroOV!ZPT5E8@_80a(OZn}gp`;eJu-H4gahtgkWRQS{DU`VC z*&IFx-yF^y(wn!dLhs$-<4teOr1FN(pOIJ&7UO&cCcI@{)YhsfOKwnZ&8RFctUXL4E#1Xj%k z8~8pjUNT}^9v$g=9W6ey3~zQl)UoI#CaLfL{K+3ykF1QUR(V-RSf<6DT~e~SyWcfr zv*yIQyqeaQbw)rS6YlA!W{a7~BjOL$Os9*J4CvD%)D1@0s%qx-fb;7;Gz=mQHCZh+ zEw#?3sIv5&p-kwz2HuBs*O@_F;LZ;MjYe6&?FGi3aA0a+|6bqM7PnM~&a^~DFup4>}{ zOz6PtQ=QubV$M^{H>}RLSggwf6in9Q`(!2}5@vP~&?Jzgph#^aLeCOX)`lH}sAPcT zp30q}M$OR>>i0Uo(AH?#$@nU0TMYlgm#kf{jIHK1Y zX6zm3TE#2}vk|wj!uC_@kz^45Lh|{{`vBc|m(*lDYyvfP`4OuvgQ%{o#4HFUX0XTf zZ_n(=%oa$awX0>w0~Tn(Z1y#o}irI z_Xd<0XF>tm7}##u#$JILkrhay$TdjuQuOHp9UsXapEYZg6%~70c;+-#TtZ@;8Ma>%F10ZGqWQgwA`_F0hk3vTF1oT z{^QSMJ`oM;3Bi7NTcvJhlp|qD39VMgODSE!RvX#yFv*;E@fW+;*srSw2WLml717bp z7;JR(^vv}4ZhM;utM`b*yKhZ4By=?4+AxDwv;&=;{%|fbPzDgFFXei|JVC8!_k^Rv zRRx;O^EAqEb~L=cg#6d?lq<*TDyKBe^3?&>|ArKDulcFB&bNN?@?Y=sVGT7Q=Y z-{{N1>zo%oJ|I4MCNvzt@vN`(Z)Wk1N{%4#L{l)x!={(AS7xXlOhuUjvYE%Xgy0nl24Gw5mmB^%|MgU3k;R7l*LjvS*E3i-& z-d8PF%RDM8)-0BzqwfS=u~ZdS!iK*NKf=KLtSXCyz1d!8{sr9-o$$BSkqcH3SY~S| zB-5Tq*C_JG&$&JgTtcmR{+s!B^)PQi1i@7?QSvZ|*5w7U1D> zR-&AV&~7^gGBBupm?F&A;PT=o<4TW`w6r{Y#f$X{_dxy2IB>lO2E zoAUtC1aIBqCPzAfG`TB0PL7Y|nRIDpFBdyU%M~ko-eiJtd*6O@|mhpU14UNAmaj_nbaut-9R5 zJK$b|u;tf)0I>3i&-|(U*<@>Ka~~U4vmhfCkAdtw=#l5IHUj`?A{DS@nCCj_l{ zF1weP?r*<2IoOIlgPmlg>UitOF$;iBt($zZt0Tl?(XjH zj_*|O`+44Xjj{f%_2V1k8p9z9*JNIE&ht2rW8b$O%x<7mOSS&aZY*jVIXMMp7{H7)Lwv6&gSzm2wF{tu_}Gv1Z*q;( z6hZ}^aXH_py13-+A3+6w4f@>bc58pKH=5*eEb=O%f`pSedgb7DuP80Aqo}r~)}o^qx@;_=Z2;fRUY-hZ@~L=53 z=`(@%h02+~ttoX(5kU}4AepAD(c9Zw_OE3JJCEr7!Tv5p+_6?5hz@ej*N%BNA9!}5 z3bOW~pA+9zfaQ2$^k#vpKE!* z3?$Z7h#o;OvStwSHCM0Y^uuiv@OWJ6y?2>mk)!P1!j5kfmHOQ5B0MnEQ3-~A{%rND z2gpm>Pi%!ZZy7|18*UgF{W%Tad`hFHrfJFWm3XEoYLXR`BgOV9`2aKGGkI!L$tFPQ z|K`*Q3MGr7{KnK3hrRB8b>MFewyY&lf#SAy{9c)zHZN*Sc+kU*f}Olk>J z>1Qh_+?Uz77VDwpxqAMqD=Q6uX{CZZ9-tLut)nCp`_D;sa2{ybr?9Q z&*8K5++>YG*tn%cleAs5rEs6$n&aH){CY>F%$Fx+3)AHGoRHekEsD0Ax!*QDqu}=( z50J9AmA=|AnNyPTGpLJ-#w@%sGCP7b@^wLC)Vjduz=N4l#Xb&IH*lLP{_k4()qiEz zF!2H3lAq+c@3lVLmq^e1plWzAsUFTvusQ;WLLM8M>(=Jz)S|5X7$p_e?8)4xx3d)o zQ&u_sD$^{^z}f9?D>x4jyYGv_T%4DxC92u>-g-RT1pH^Jl$V>UAS-*>Rh9CdHZ8ZC zQJy6@tGE$9gA`;jN}C7R182)-?0=mtUx&Zt0TdZRP?a*q zcIZB9spa)_9`Y@j)2zM7rDTv2M?nDf&I=uHd+dh%+l8pT(wzr$bvX2zKRPD}fcY)h1@^ z5C`1dKQkt|pcXe*gE^W1*nQf7n|1acu@dN_=plGZuG`)Ue7b$3?v_L9Ij@En%dP&_ zDv?KD*Sd+AlJh>)*Ubyl%dLEJyqEdxOBfrs4);Bw>nScYD{(`8FyFLumbI;y=8AO?A&( z)6;WkMp&KT3?J@lOOYCd-VNBwS{G;F`ncF-+17op0=o41ySrg258*BUfxP7v6REmtn#tK~3x zY#_k%`GA{%Gjdl_2!Q$watJF(wzt>bVDjHk`3X{~q$C>x-7wSk@m!Y1j9Zj~U0=T( z#6iFuYm*bhtDO6`X2?q>Gd<;4HGPki3{racW2L7AH)Yr~@F8P?%%qHVW9DWK84v=o zc|CFJ^ZcfBdA;s??O&4_Zh-q83=4R-7}l#e`)z%S5MeHWC5EK^SsdPMU8rIhXh{tw zRwHDHi`xpis!^Ze@gN{~{hgpvfyoIuW|aI5gsl{y&+-2(%p7fH4L4*X~lk_vyXD|OLs7+cG0$engqf0hG$euMyQAU-a-2uzr0Eq;1 zAZ(R)B;qsbd{dvF6RjKOrsl7E5Q!oI3QAwbNQx9xCfh232BqrVF*)muH~j)~9Z+jfKccH)Gw(u|NqiIj=3`<;tP4LJ}z| z!~Wl>Mgvj%r4MvdXes*zS6M`Quf(d?8O1)x5OoCQqr0_giTscdkx+;>NF;gnWlU+A zmcpD|x?D_-=}{rf-^8O^g**WcV%%Fu2u0w1u<>#7yKbMc)+8ejUZZbACJCoy2g3}) zySUgnq_$S{rsanICi0=!rJlraI|T4=(sUA?wlwS`6c82}imFAw;CsqxJ3ius`G*tb zBAv8)9+VE~D!p30^~La#C4fJ}YeU-dm+PFyWWE;{)DVv-bM+kg%9<6)6!3eHf3%_?t~Nm{vol=AsDoem@wxHuU)`Dbo+T0B z+y0K;9?SoKXR8ek04_hT$9)`s%6~j1lK*7jXn(j$e$ZHG_|GUXd3d+N`EUA6QUb_V z+T6szi&a+%O=A6VV`u$8ogIHCS5#k9nn+JiPeCHh#PF~lzuMevLTv1RaB(~>C3R4x7#-Ip^^im zgjsl;$D%f}5YqYid4Ls#@8}{dd;`J~juvZs$q9J$3d5{E$H%*xim$Fb%mLN|_Tyys z;=>CQ)7|yWPx!NSyzCTXizC45I`TW%+il`}hCx`wPegQaYKk3?+a)?L&QM?Ip|Z~? zyqri~yXhG;bO#7oUJJMaJrMX9ht^0=022kkrT-P+LU^;BY>lJ+1cW0maN=S&Hw^H( zYq)97n55NIW)bjzn?I^@iJmqm;K7WlB#Z4&9?RM3LBxLoS%B~7{&{U*Uk`U}%~P$5 zzMcFJBBOD`_uU5Tp!or~Tuk#*V_n*rq?^%`ZO-gveFME5Zo41UOkdGQDyXLZ{CRhZ zTVPWHz?ibAx?M;IouxtfyYv3V(;OUW6?aY+{#Z5-cXx144t{LUVUJz{!9{)BeD+%=*?RfTos?XX1ZDht8=Zpg%l30%s$uGP%udUGpRO z4kTayayv79ccp{IvKSO#t@;4z8X1Mo58IHG@WcPkv(!@2(lOimISfTLoct%k`MQJg z@CTKa*#Bpe#+}o{i!Fn{Q5qnZ=<*x=g6|z54eVa0H2}I0kfqnzo!JU%R79k|Iy~J& zek#Z>1XlFz#f+m3_?+)^H9ag=T21ykLrNcXW()m6PF!zKFADwFFWH;vSyqcRjw{QD zO9lA_^$5)&8F1c68{#kV5|fZteQK#}}9eRCGB1>R?w$`5r-J zj0%SFpN>*<*_X&VYHG^eU0fnBj%Q0=m1*^bkt;W(0+@q%1%=gYDH7@_h=ONcxN<~8%%|DADgt$94A zhIL;oOlp@nUFIUM@ZK2MY%|6)vpYZ0N`8%OUmW>akx6;_2*$gcU=$BKHZr0pXP7dX z_0`D&jUff&Qc_{vN_lUMnBl zyQ#L^=x&j1luackDK}(3Kx_}69 zBV`#p02q;I+5`TZfKa@v&RqvGVQ3K1=VEPe*`L_yf&He~rFE%E$~U zy7wE5--Y+c6;k@uMON2)*+4+o^K%1>n+CvW5Hwrm6&J`W$wo!E3@t*|IUs|OBk(Rt za!L^~F=%4{qtio3Tm(8jgT2ghdHK0I$jd>L)Kua<*yEFvB`|aYbO1K8Zv(LLiFp5J zwLKvvbI}2#l1iX4?<5N)J#~Iwo)6vAZ}`Iykhi1bY~w~@V4m>zm>8St^kf0eWAnG!t`wNnvbfg{=ChVzj+O!9e;TZDp_JdVFFcv)E@DzW_woj9Gyr)m%*&&rpja|$E{UJry`SGNi_oKOIw$0L{-PRCI|E04 zfY3J4USRkZXcH{i{CoyNnB%z2n54npOLqcV`nmMwE_dJn%by+0RQQu8ow}Q-9X!qD zeF&$7#(X`vWP$h09oXctXnWn_H0KSDvjNjxSEaQh$CoNemM9QJ@2mr5(*FUesX zz6m+)ANtLLvfq4$C57R%3+ez5Qj=02jQi6oGo2Zmj zMrNjQmleSJxG)UPUhY-Pf1=&T=6R zN<)Kps%TC@S=sI2l=H1j>>98>Byn1)3VCS$sb=@6dmo0?fvU{h+!V-RUp9GBa5524 z$l!Bxc%BwkPrCc8{evfz#M1Z=wtgsor>ijis+wp=<9El+p$q$%J}4X zAgP>^oQZCH>30(MS2WZmt$TZW@96`oiB4a0Pnw|Y7Z;!pD1kOlcCFg+vsxl`Lv-{L z=0M-b)uC01Jm^VlgPR?6suBqd5Nt9k;ZxV9{AxzNOI4LB&bl?uPQ6>~7uDaAL%`ni zebRplvp{M8|10tkb^fm1TrBGq|JF_;d9nuoRF`g)lzFwtDmun{1x73R*@oTr;-=Iu zC79P{ENJVybXXlsO+S%Rs zeCExRW`5;ahL7V_nj+BBj~tt;3{k>yhQE3o6v-rW-U|!KO!bRt4$Ye#OH?~G++DW- zvC-p?zlh-br0zbNZERHq<;b^eY|R7~mX>;tCaEuZVBP^6kx+FeV;zg~N(%h}CYkA- z<=Rh=7Yp3SsApm6bAHGKqKU4rUHymyp9p@7%l=ru@9~>oOiZ%SGYl3K7Ym>?WM%o^ z!1(Bu(>%LyVB>P_yr`T=Dkph*ZqkGzs~_4iYxQB59<&#Klo~xO$wiM;fTZxcmpNBaIXrOV zH@-DGeJPG0aNm_0_4|5RJrdBA&q*u7koDTselKCi@~9}MWMQ7G&xQ8HXW}F|p6na5 zo-@zT^Udh7ly!0nYvyJn$B!B6MB7J64V?7ACKyBXi)^p8x$p5fxQYrBvC^GQazxQrgTUN|}$KakOYXL%bPqjuQak{;NFnw05@n2nli}1!~wn*U-P|{^_ig{+t zV*~LU@ovS3E0t%BY=^g8XWI5^>m?WiKudV_4*ysin6lF|tNEo8-Wm?>V^hc^-`pk~ z#d_i7Dp0sbG3Hb#DnxD#Ch_WBmjnd``38K$<8h9?5gmb$Eil2Zx;p5@NPbwj8=M$s zw=%J$9}EfQxo~jtq&~ayJ}oeD8r6;>4&+B3Ina&Z!60+lJk|RY8(hKa1y4<#@3Y26 z_#ktw-&ImkrCxI`75?K;%d@!Qg6}L{c52w&=)ed80$N@!!edqTqe5cSI*>JBqIB<1 zI1MlB>Klkr8Pi%=EO5d{vv|=AU@2id6&^+E4;R*_heEGsVJYpf5fhKvE6Xgy0!X6nxqvSa2ieIJLzDG|T7x#-Z z2EKfb<=PZ0`$U)KBQNi1NLnbkj4nd(4vHuOn{ZU!7KYGb8#PwdZ|v6Bu5IfCCHq6KUz`_)TP6QTe{fV6HG&I4)vtn*JQK)ae9LzZpF);8`QSJ1{*|mux=m#2& zRNJ>T<)w9@6&=CyKQ{T{)&()AM@>}P$VqFp%sRzReK(x+Yy%Ao=ol<+M?1oj=E@;+ zi#ObtAw_ZJ@2xq!$tarY^=vc0-wiPMu7Q>mE}PewEGey<>lu_I;4b!$*72nfVb7i z-u|M$pH`wzTvLO`QmbirdfM37V0C+6NlPg{5^L_`lRZDZUeMy>!a6!SNDOVuqok*A z7gJ2lR*AvNAT|EioUsdbV5QD3MLr`oKyEiTTWRz z?X50{Qc9GfA`qrRcl7lPoSyFZJO_UKl1jU)^8rbj@`}>2i7^@RK&tLO!?Tr%*&ZpG zB}PuFA|i$W-mj8ica4j)D<4s_q?MkQwz0nZ?JETtQ)6l>$gk3uH&E161U)frP0gNT zO#hE>yHT*gOny-Hg}Pf;{O)f3y!l%gI*WsGgJcx27tmO!w?;w3hY0>y@hm=m&{E4b zL_^NqURd~7eC?Njm?hs~^?`u_fP7wjga8ATwMh|?Y@|WUi;K#WQrQW`sKn7|fYHL4 zX5rgR1E#xmzi9y9wt+Z(-PZjcuv#DA0r`^j18QfJ*)Tx(elS6jwh`l^%A1tKq2W3e zC|-mF!~%UTsEXFHYBSJyyvzW>sWsc(0E|8lrFXDZ`Nb|y+3>YTH85w0~^j{(ky1Kr=!fS1_)W-@};MOtJN4Dr2 z?0@&Tk4;6U8;tMrlx#Ki4i;^rxX@f`d4CtqqW#@#H1t8sR#YnV1WEVimf0i#JofQ< zr6$EFu98Z@&6R<<7UCTa=gRs8>%mH(USK- zbjRvCTr(>Wk5XVubdy5ny|$6QckrM=9`c4atqW6@n=mabP?8(l=ek^oFLURF7T!vh zFS2rLAf@>RZZqmv%4+s0`^?*heeQirq9v;wb`(kB(EahCdMhd@Xv^e&%0frrFJU)p zIW1an(}g8q(RE#ds8>PiPs%E8Ff%a((E-)QI|+co&talxipuP{3x==24g(17i5fhc z^q%N@3yX~qb{O>}^=87-T1XNkST%|u3TR98TXJSv*2eBi!}dm$?ft}@w~*kMu;kBo zfH3C>DCs1^h}i7tX7U#STU;Cqw15( z#4@YP3NSI|4u$-Zn5jz@0kC0Pd)tZeVGXbrxWO!naJjhntHNu2(S*LU1t}Kv?sJ39 z!`B;AQy}B984t7rkOI~(5TbvoK%YsgDK$w`>@hnkA&AVWUIJ;E zz}ieiDQ0+lf!v^Q)1cJ;Q>E?WX zWDl`0F;$k@sr)j9tgHJfKZp>MZ|4{d@@YeG*!>w&7R$GqXypuHGt=t}g|~mnh5vJp z(K1Hrwr`6uX1iVP@&oy6y@;0*6UPR_GhsnJ4KgwN;Fu;uQ@xS#X;zC#z1N?g5@v#q zw;4G~8hpzg0SmlR{Ync&ApbBL6gAR~eJkFI;dWXGJuFl+naf7=LpOu`9G9ce-(+X< z4OVD3IR+Ja8{6`-BSTZEn&{9wd3Cpzh^Ya(Laau0KK;X2uSXa9oB)z;!R^A3G=zd= zc@j9UDeq6Gl=VMblyj~6GV+vy2;||e6N{Q9OVXc*k#Vm~&Pe?j@?Zm4jzy<-GoPH3(}<&_YkTL@BuIjXttq9b#5>2% zo1;(Q!Ow9O--!Y>f-$c&RsU@B3{~=pFwTd1bJ$!&>)QrMx6n<6;of)jd4clS5-wr zVL->@)2_~MY&@K-lsKw?nyHj90=_@!9l#_&I-2{|0Rxrbko-Otg>a#Ij~&Vv^;vTD z^+em9BkUAX6?E^{Yhb`KifKAY_WdDYOTzFjB0k>!kn{+(Gcj?$rA_oVO+zKg*wS2Y z3QF$BD-oI4plj8XMvy7VEC_ie%aqxSXDmiN7_}o-paqrSVUSRpf1toqC}(W^u`3!$?;OiqF&jE z;$hXBKc^slORb?XXl|_ie&Wowyq#MDB--vTFiaMInRB@qoe>ZcP3u=_5`1o>Kes*yrSVH-N2b&h?k4{ftQ;Kxgn5>=}8TeL@8|ygl z+{4lSdN2B=g^G%XPAnv>W7hw8nMjNKqpX&v^^qf^GBQCWMg?ntMi_B} zs*+b+Pw!LsC1som1@pHLP;FVbiFAua;o^>qE>2QX4hJD|^4LDX=@s2HP4$`i76$t$ z%cExT9@R{7Ofi+A<|m2*I78%Au6W-3c+*ZGr~Mg>FUY+=2nr387z`iEN~i)=m#rE{k#uW5+~D_zSeS0ov)I z?!hE=WmMJoDzGA6AU>mnW8kMbK^AGrQtP08mlC{00ua!bQ4nU4OU0FbfAS&9PGtGoOrcB)v~4hyn=)T^(;Or zxElAz@yNJfkVWunH62j09r}V^!pC3ViRr-R2Sa0?*_F-UGt~3}5o#J_e-(;VbVgFN{|edh!(?<2J?9ltO?*m zjJh(D!O5OYwyyJ+3%{>NNNn#CX^D5Yo48$XpFS?B0|u$qr56{w>e|{z%j>oc=Io&}E$R1ETf5=8eK~g8Jz;T1Ci-RgPurUD?Ws(rm>2-49&(GU0M6cB=0(F*N z8(Hp{^M4$l=AJK4FrN& zqo&K;7@#S@AR)Ej1jOg#JgIuQ49a~)<^T%E!(^ZU4jCPt^k#5680CbLs&KGp9vz!j z=aH7W+~j}P!I>O*U*WR*MHV zr2CNCkT%Rr;nXIVj3>pf+I1y^V6qchW@A+EGIM(%*g7TmEjZxTfYvQkkM+RQ~SIA$Yy);-b7)E?Fj!{2#mkwEx1P zazF0&ZP!>d1?TY-yd7fr@rjLyBmK4EjH_o(3`^Qx*M!n<`AZ`> zwM&AcT+{R~c6TQcCXy4odej~RYPU51?FICVj;;bh{U9Dc(T6ZqLSa`mGd9GN`%ySgLhc6KlQb77{DH_^KY8zYlRLAT^VN`l(;N%x!L{^&8%| zHlZW(c3yY6O(m1*8E)e1pbyrcL~wA@OY>0EQFuz5KYXvMAKpx)FkHh(eP;83dMRgW zX6CmPNtBG6Q!^V$Z1gjWHM%Uw)?$H$pVs4GG!A5tGrcl4b)WSgrUVlwAE#?-D(aUW z7a^lIy*DQGKVj;^Kyim4@O=@}yEU5+AxKuKm6;!PB!s4$P7+q`QYd^B& zf(5G{9mgA-r z6npw;>MQPl0+h%?gF{wT(PcvzyEt{!_2;pIAtEP+Ch!D`e2ot9UGwv!eo=9|yEsB` z^d||}m@O+kIl9oo%YcEc1ersZGIu33*Fxd;KpazEbfP)(mgR^OHMK(9i1>JJp z*|6)t_a6i`*g4ee8{Q};B=WlPks7RD?6D8Gz#!rs%ec3kr%0J@%LZ7k)rNSm^R5=w zrLryQoS~Vn}kTpNVCY zdar=-9+Q>j{)C2qr>JrW#Q`79eZp`)KNGjknpg_OY83v(?>*{6L4G z+74b46zq&E#8pAVsM+tJwB;jK7aAVy&#xsGfrlif!P^%AfKmw_7?;*+M2{Y+zNX8h z5x>R5yc-^yYf4YA&(F^nJ$|N-#=m+eOPA+YB5V`azXhQBIMl=Mcv;~*IuKi zG_n9bpyz&j9IUk-PL1PD;kR!DZy>*jknb<*EeZ`u7wyQb4g+eHPFwyVrpg|o6=#y& zc)^09h`%)kAn0~?cO-g3Gv~Tq#(ko7ZDt8Sr$~&bZYucIvDgx~ z!jDr#e;^Bi#A%nawoA*&83!zth3qSPWTHXMky1xS!h4NJeg#^>+1_M&gHW28Fh9-@E)F#BgA!6nUnJ~J3#Z~_^$~MB3 z0!~$Y)HmvDne9}w&b5j4D9FpQapE}e(IVHP9)y57h=>Z0KH)&Oq?lx#HanWH=W*$L z&am|C!{}Tw4e(0vpb}HY=45Su@#eiPLpG2oM%p4m@G7h+Np&ms1mj!)`a=v2P3F^l zwU!Zg`G$|Ar#q@|OFz9WhR(y}G!u@)dFy~Z&WkPa-@<-nJg=OrgRCnIpU>g68#Jc| zQ<}O_hU7F8(LMM3@>k7cma*v@vfr|gFD#bV=CkHh)f1f$yF!yq(CaUbR$GTPR8(@X zWH;9CcYb5vrIBzCXwW0%fFO`)?+IOX>C{?OizGPUcQu?kDF_-RiLk0RVuu&FR}Q}> zWx9`E9_WWv-W05>W?~5=%#w`d%4uwr78btP%_`q8%(~|Gy4_witp5u0Vk|kSX?3|X z>g@Jb#OmkFXB~>d0^T_<)S=zx!=;=-wb#=bVd)Wi8s}|={avj~B=xUdw>r(NysWK< z-kuyRAb4E@vdHF%{HHco0JE#LU3tB!(^6g1Q&vvE;Ifef;F*3u!U$$Nx|O&AmXdfa zr&@`5^^$!pu|S zgu91+)c6FXu&N-s_0wLi4pjHA?<7>eZ2S zJfByK98EiB2Pj%>r~MhB03Hdre@Qnwspxl@Ul&(Kb~2Zje4!3%nv`?|Gj3M1ma?GJ z(@Z}V*3igE4cqANa)ss1VY8(hZm?*l-bYTm+ny`XDA%tjkdBg>tah$&*Ky34+95OI_k=}!HqH#u`|n@>u2+JJa!a0FsR2Xbkh-PmY~K;H*jFaNME`kv99+zI z_fGDB+CKa~{( zI7vCMt@mgJv&E$g`r&F2=LT;{JKsSwzUo9neF=Yd4J|Jg65Qx;AeS%^&I+3`vD{X2 zbSEAZ1_%2x+R!e8WA#l$$oT<#;0;4d9`378-yK5~%04P;R$e}YDJVqR#B_E#9zDAc z`%d8U!YinE7r`ocYK*Nd@f!D9eqIRau$xdW;S(kO3{4%waiHbY6!Rd09ea=sCMkdXQk zNAh?_T>lew$Wp?$;|sRnsEh#1{S+Co;LP#9BS&{yTBCp*U1p?r`7LN!@}!A>r+)cN zUMRD)T_C(9gy@t+lWH`Y^j(V-w5pg%r0yGv$Y_kEMjJ6#%f!_PdZ9tJVD?F%yw_n} zs(18uK{AMBJjS)!~pH_0klLkYr_L)AqVs3tLhr zCc|#(q6}JR(12GRtX6$R*%pxES-l(DvH#rX7zgK&o`Qm6wbwRUT%%g}3+(lZF!as7 z?=={wzE^oD9KJ(t??TgE2B^JYOriL)9%fjlXFC}r!D)F?HlEp$;m3q8XEm3m%NVb0 z+!)sJuG-Z#I>W{Nys|2|iFR!Wmul|E^mN(R2m^w$J)8U!kbfe6f?aL$+rDJXDhWLn z%hdR675*h0LONL9ebTRKWYYj{PP3OK)xwpw{_Ye*MUB*hCZp?A^2_{~7yQ;dt)*^r z=660jolO%Ix6c7y+5RSw-_-VFYv=|3aR@Kf(=CNmPF>PV<;06I8x^$(ahIV3h1 zH3LhK8fvX}U63ggZY*_)TUr&Y9z%XnJ9FwPP-ENRSoHkqEs9fd!yz zx7k#o*D*&3bWw}7Hmc%!BR*_47(!|e2H1Wnz8F*oi_;&Ab2Izz_dY7fnV4^P7cbd< zb6cgO@B2VD_-7R6AoeM-C=TsR=EVlXVCIqo@uOW}Q3cAVz`cr;Vne;gcrkz({LIV0 zcbl5z7Q&u=AMtDs9$_Ya*3=JI`-A1dbH$Hx3K&mu!mBbqSLM{y)NHS`_)exWimkdI zBM(wuj`w#@S7g`Lt`9X$rTEdliKxw%mavnMa^O5W5|r}2+T&$YOe)ZN5;t*rH?AcV zb4D0mpEZ5w*1$m>BY^KJ! zW+sp9DmsiAmG%gIL3YAg+KXb>>|%9o>0f?o%f=pZZf6xv)AaLyZ|)%!PQK5lW&iqn zO!#*i>;-nqdwZtm2+qajF(CL&V1{$RV<&Z8yw|js+O!aR!GzH93G>69e_$;wg_yKJ zi{0>QVQgPNf6$>kpEM$G1c7JJ@3CtIZwQzUU*E}&4FkNdyn>wU$Bzb&CV;+0@$qZ7)Omy_4}n24?X9fQE_k;3(x|24z^V3#D} zxcr$`{~mIuqy4Xc`2Q}Pw%g>lPW8`Q$p5dm5FRY2&fgX9%?}c%4ifKu`7-D~F!J^k zA$fUyeIXBhAx%J-@UVz-el8pEURqjObm=uFD?7Wga`fuz<|g@n4u5q>KuZfEm`sIP zR!#}bGU@3C4b{~A(0JA=0NkfVpNeMiXK{h1P#1JXuH4A1YCqr-38%;0mVvQ?h{9)eX? zA&2tNFoNaFyV400T_^v4bt-_8{dqK9LlaW|GIpyXH#eW1b$rB*_8%3Cfc>lGWY)Li zZHl@oIl^M9m07>y{yk+r+pHC=>{QeR%!Om=xtXKWAG`ilCkXsbGu(}gRKU87>H_Ca z#pS=h9T%dt+;To6_@30%4^2eB4R^m^?{l6@ztlh%Ilg54`-y;=`5@f?8?t5$P}~)z zEKW1O_V)G)2rTgO@RMad7JzIvMV28XQnpcAQK6$n$v~%deKy3;_{8)Y9bGacv}5S$dhJRghE^{O z9}iC@4jG>-b_Zqh?If6G=v@zVxp4nI%+=ydeCgoY{N35gg2>27FiSp1I_yc-IGLph z#$-@XlDj>AxXPAH?oM_$+rW*F-|e^i9uaZcb;!GczHv}1E+972+KT5@pw#g5(OnCT zqBFabfx#nBGbT1ZKAq=mbHLHg!BC5m-D-i){hIQOu&saIeJD9;bt?>y({*jr;u7Q# z<1=4foN3h?LyQs6Yb0X!rv&?M6w{WMRsAEj32Z_ap7}AUq@m34Z!citOe=W)*)HxL zF3$9iHzG*t^~S2=rn`V6<#BtCK{`1(euyzl$H~db#3W`tIz62$8kXwk*IrZOEan6r z3|Oqj&yWDqAR#{aaXl+2NW8lF*&89>x$48s^-WtXbvccCo3Sa5SSJ1aZe?&SEI`&x zOiiUFQr1UAknp`_V^>yC07(hEJ3EWD4gpfYc(7P)l@bvV;dUjM5U-}4zqzww`RP+M zz*JTINb!6`f8wg+2nOsy(DB*F!*S*3rU>BmHH6aE*4EcwOJKK*jyl78i>q!Xg+YNBiU7#jKECPcdIFZ_;+!rn0O;DMTm&9xC0nH*QLwPAw+?w3WQO+G zEhncW+^g9zx_sO&KYS1u_evbpGCtDrx^pa0S#7ndYOpLYW=zNE0F5Gtn-VAgj#yr(b3T}IEX}O zmaK5I(nfjj;^yXY-Qq^#V*9p;!{LI5txI6-2bfI#ehREwW#ZG&A<861yE+3o;C@eL z`}(4X&&K*XfuE@P?Jlmss(DjSi_Q;~&CQk{c6N8mtdg($IPV`}b#o0Pr#+p$n^izNA zWVz^Y&kxaMGbSE0EkY6;mQUw>3=F6SfstmD_1rF_?*k9ddoqp@t;^J_KR38NTH83N z-gE}Z@T=xz{Upod0iQsP$xyODidWUj&+5hIIE?I#xnlPGyfci#b3}y3`_uAS*F}c! zwpDK?$&{Mz-nxef!*6+=+)&6-(`$)JFUR6@)(^F`434#}b%#G#zqMut*{5Fo+O&IV zx7Yek^TcR)3~G!`0|PpVp?z=)Nf(N{IJ-UnEEm^vCSBt2{nbSat|0Nr{c$Fy#CYaM zipS+ftpgzt$E;0%{jucn^n<9`YkPQPc(^36J0KWyV5z~4VNf!T=VW4PssF=JjmzF( z0Ab-w_0#9fy85RUQAWwGZ}@Z^CI$w^CWcI2Eqd>7!A(9`fo7 z%>8=on3$Wtypfmp4tVXIVGq?+6~D%Jws)?4q&Fit+a%hT6HU?*X@^;_oty$th`vLKJ-2b1I(s@e zTrjkYMx6Y(cy$J77+04A2{SXlT+STXhuteT!!x>8mQFEKC}w>Je-y~0y^@DhF7{^B z@6>?&MFsWT`yCMqYEGBwsExebD*P*JUfHW71=9ipB^SgsX)NxGq|ft@@qMZ zO%PgCP}0_ZdJG^$Q!p|W(#EZ{VR{@zlfV${1=+@KLyZsE*x2p7LR&o(c~lwCdha)*X_u8Gjx#oXt?iuk@@(%E;HXX$K)R3=?kWPZ~Jy}cjQGX-wn&9 zuuY^?f0^Cjn-o?(1atJ$kBq`RuAKjJ#wcYK9_nn9!AGOL+DsXD7>a`3d^#~U@x51J z9y#I4_r8tuP*ZpMuo^;?uVlYCf6*+tr94uih6^mG3P5&-5L6oX{3wY?=C}HmlEUyn z7goR{ieiK9tn{9umxg-(pa*tfv~_g6z5g>gYhq&t0@3n`Fx`5Rj%ZklyUmT=_bl(q zM|g&M$rA3c03?D*<>1D*rjW0*C6jhG4>1TZZg(gM(J?RtY(r|;w|RcS{=HZN2gBTM zx#>_K>u+ai&ilUIoqv@UlNiG;MOnwFW2L7jm~2Gfh&r@9%s^bs&qTykpR;OIg)Zo) zQGRuKuw-RrWTw)TTN8UTO2HSVtfBFIv2~W0xvan&QYMLOj5i;bgDR#sMWsHLyjZIN z1AhU{FSgMmwwH&%>SC7xkta4y#KtB(z{o6ul!~fnrXxJ{f5t5YA}+HJ(fe~wZr-Ky?MyJB)0J;i+Wg$i=^;1fG40y_qae61r^oI;NZ8-JyTQv zPQhDL%r;6os><@pw3Hs%YT3K>SK~Ah#A4f{E&GIj?<}a*v=yzVn)Q5!CeNEJ%x{GJ z70xHEY-WutsW)c~O#>4S?{DOZx->Zu%jyESY3=&N z`;hkM8k~;4c|PcYa>;VKpwg`IX@BggrSyEyhTU?0v{-w|VzHr(QLMxlfQI!o^3_3M@&pkJe&<> zzX`Y$Y$L{k+?>+(eCE>9>caS3;ClJN$z))(tnBBU6Fy%Fa<{U!N8GTTEd&IFClCU* zDdWCD`E%LYt6A?SLMF}Mi^H>gb^F{1Q|w?IADc@!c|>{bo?KcgCL{!Dqx@OQ={7FW zG3|gfpbZrk3TMawtWxeL>HcFz{p5!jv*;!qoL-A~gxW{QeAlra$b0W~begZ0im{pW z3RiIZ&leVQLftsS@VQW5{=$_3M`h)gNYNXOsCn;%i`xl{1HW>a^sn=1T?_7qw_ni?tps>cZMf zLR13XxWle&Ne=P3EcDuaem}pVo{z-Ycrnuj!a${c?B1}MDL$>#HPP+aur)O`gZt+p z549@W_RwEJM1XSmFqm6=%k|F{`rO+&(xw=B^`BGqdpUrFenI!oLBm3&%R~BN{QEPW zkK}m^!2jnvx5t}Pq5pX%dcU(b)fxWhc)-`V*cgok{v6!z|B!@(Rq>y{1WF?!sQvw9 zz}MdAy!gNW?eJmMLZl==Nv3=3;b8H-yN759mI%)?$z&b~wVb0lU7>(sIv=lxy9+V`(nLJ`8~0>gd~HI)ZG+Xc z=FZvK@$twWtV5c&%eKFGUEd2BeIwxQE!mWpp?}zjA%w;F%(S+-DgN&%ehl7zH>_uB zet%eJ1qbDGvev~ob(ql=qVYIt=L>_F%0D|j-F#{@o(t|lBnmDhT-?1FZMCAag1~Ni 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