indickit 0.0.0-stage → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Micah
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,3 +1,239 @@
1
- # Temporary Holding Version
1
+ # indickit
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
3
+ Small, exact utilities for text in the languages of India, in Go and
4
+ TypeScript. They fix the places where ordinary string code goes wrong on
5
+ Indian text: a search that misses a word because it is spelled, encoded or
6
+ inflected another way, and a letter count that cuts a letter in two.
7
+
8
+ ```
9
+ stem किताब किताबें किताबों → किताब
10
+ phonetic राम ರಾಮ രാമ ராம رام Ram → rn
11
+ segment ಲಕ್ಷ್ಮಿ → ಲ ಕ್ಷ್ಮಿ
12
+ ```
13
+
14
+ Each utility gives the same output in Go and in TypeScript, and each was
15
+ measured on data that its rules were never built on.
16
+
17
+ ## Which one you need
18
+
19
+ | You want to | Use |
20
+ |---|---|
21
+ | store text so that one look has one encoding | `normalize` |
22
+ | let a search for किताब also find किताबों | `normalize`, then `stem` |
23
+ | let a search for हिन्दी also find हिंदी, and keep words whole | `fold` |
24
+ | find a person's name typed in another script | `phonetic` |
25
+ | count letters, cut at a length, or move a cursor | `segment` |
26
+
27
+ ## Install
28
+
29
+ Go:
30
+
31
+ ```sh
32
+ go get github.com/micahchoo/indickit
33
+ ```
34
+
35
+ JavaScript or TypeScript, from GitHub (no npm account needed):
36
+
37
+ ```sh
38
+ npm install github:micahchoo/indickit#v0.4.0
39
+ bun add github:micahchoo/indickit#v0.4.0
40
+ ```
41
+
42
+ In a browser, with no build step:
43
+
44
+ ```js
45
+ import { normalize } from "https://cdn.jsdelivr.net/gh/micahchoo/indickit@v0.4.0/dist/normalize.js";
46
+ import { stem } from "https://cdn.jsdelivr.net/gh/micahchoo/indickit@v0.4.0/dist/stem.js";
47
+ import { match } from "https://cdn.jsdelivr.net/gh/micahchoo/indickit@v0.4.0/dist/phonetic.js";
48
+ import { segment } from "https://cdn.jsdelivr.net/gh/micahchoo/indickit@v0.4.0/dist/segment.js";
49
+ ```
50
+
51
+ Each utility is its own file, so a page loads only the rules it uses.
52
+
53
+ ## Recipes
54
+
55
+ ### Store text
56
+
57
+ Two strings can look the same and differ in their bytes: an invisible
58
+ joiner, an old Malayalam chillu, a ज़ typed as one code point or two.
59
+ `normalize` gives them one encoding, and it never changes what a reader
60
+ sees. Store text after `normalize`.
61
+
62
+ ```ts
63
+ import { normalize } from "indickit/normalize";
64
+
65
+ normalize("ಸಿಕಾರ್\u200c", "kn"); // "ಸಿಕಾರ್": a ZWNJ at the end draws nothing
66
+ normalize("അവന്\u200d", "ml"); // "അവൻ": the old chillu becomes the atomic one
67
+ normalize("र्\u200dय", "mr"); // "र्\u200dय": eyelash ra; this ZWJ is visible, so it stays
68
+ ```
69
+
70
+ ### Search words in their other forms
71
+
72
+ Give every word of a document a key, and give the query the same key. The
73
+ key for a word is `stem(normalize(word, lang), lang)`:
74
+
75
+ ```ts
76
+ import { normalize } from "indickit/normalize";
77
+ import { stem } from "indickit/stem";
78
+
79
+ stem(normalize("किताबों", "hi"), "hi"); // "किताब"
80
+ stem(normalize("ஆண்டில்", "ta"), "ta"); // "ஆண்ட"
81
+ stem(normalize("ஆண்டு", "ta"), "ta"); // "ஆண்ட"
82
+ stem(normalize("ಸರ್ಕಾರಕ್ಕೆ", "kn"), "kn"); // "ಸರ್ಕಾರ"
83
+ stem(normalize("حکومتوں", "ur"), "ur"); // "حکومت"
84
+ ```
85
+
86
+ In 13 languages, a search with stems finds 6–15 points more of the right
87
+ sentences than an exact search. It also finds some wrong ones: a stem
88
+ merges forms by their endings, not by their meaning.
89
+
90
+ Use `stem` or `fold`, not both: `fold` before `stem` loses 10 points in
91
+ Assamese. `fold` alone merges accepted spellings of one word (हिन्दी and
92
+ हिंदी) and keeps the word whole, for a search that must not merge forms:
93
+
94
+ ```ts
95
+ import { fold } from "indickit/normalize";
96
+
97
+ fold("हिन्दी", "hi"); // "हिंदी"
98
+ fold("गाँव", "hi"); // "गांव"
99
+ ```
100
+
101
+ ### Find a name in any script
102
+
103
+ One person's name is typed in Devanagari on one form, in Malayalam on a
104
+ second, and in English on a third. `phonetic` gives each spelling a key;
105
+ equal keys mean "this sounds like the same name".
106
+
107
+ ```ts
108
+ import { match } from "indickit/phonetic";
109
+
110
+ match("Mohanlal", "മോഹൻലാൽ"); // true
111
+ match("Mohan", "மோகன்"); // true
112
+ match("राम", "काम"); // false: Rām is not kām
113
+ ```
114
+
115
+ To search a list of names, store every key of each name, and look up every
116
+ key of the query. A name can have more than one key: Tamil writes both k
117
+ and h with க, so மோகன், Mohan, has two.
118
+
119
+ ```ts
120
+ import { nameKeys, RULES_VERSION } from "indickit/phonetic";
121
+
122
+ for (const key of nameKeys("सचिन तेंदुलकर")) db.insert({ key, personId, rules: RULES_VERSION });
123
+ // later
124
+ const hits = nameKeys(query).flatMap((key) => db.find({ key }));
125
+ ```
126
+
127
+ Equal keys mean "sounds alike", not "the same person". Before you merge two
128
+ records, weigh the evidence: a shared rare name says more than a shared
129
+ common one.
130
+
131
+ ### Count and cut letters
132
+
133
+ A cursor, a backspace, a letter count and a cut at a length limit must
134
+ treat ಕ್ಷ್ಮಿ as one letter. `Intl.Segmenter` splits it in Kannada and
135
+ Gurmukhi; `segment` keeps it whole.
136
+
137
+ ```ts
138
+ import { segment, count } from "indickit/segment";
139
+
140
+ segment("ಲಕ್ಷ್ಮಿ"); // ["ಲ","ಕ್ಷ್ಮಿ"]
141
+ segment("ਪ੍ਰੀਤ"); // ["ਪ੍ਰੀ","ਤ"]
142
+ segment("ਕ੍ਕ"); // ["ਕ੍","ਕ"]: Gurmukhi shows this virama, so these are two letters
143
+ count("ಕನ್ನಡ"); // 3
144
+ ```
145
+
146
+ ### The same in Go
147
+
148
+ ```go
149
+ import (
150
+ "github.com/micahchoo/indickit/normalize"
151
+ "github.com/micahchoo/indickit/phonetic"
152
+ "github.com/micahchoo/indickit/segment"
153
+ "github.com/micahchoo/indickit/stem"
154
+ )
155
+
156
+ normalize.Text("അവന്\u200d", "ml") // "അവൻ"
157
+ stem.Stem(normalize.Text("किताबों", "hi"), "hi") // किताब
158
+ phonetic.Match("Mohanlal", "മോഹൻലാൽ") // true
159
+ segment.Segment("ಲಕ್ಷ್ಮಿ") // [ಲ ಕ್ಷ್ಮಿ]
160
+ ```
161
+
162
+ ## Reference
163
+
164
+ | Go | TypeScript | Returns |
165
+ |---|---|---|
166
+ | `normalize.Text(s, lang)` | `normalize(text, lang?)` | one encoding; the look never changes |
167
+ | `normalize.Fold(s, lang)` | `fold(text, lang?)` | `normalize`, then one spelling of each word |
168
+ | `stem.Stem(word, lang)` | `stem(word, lang)` | the search key of a word |
169
+ | `stem.Languages()` | `LANGUAGES` | the languages with a stem table |
170
+ | `phonetic.Keys(word)` | `keys(word)` | the keys of one word |
171
+ | `phonetic.NameKeys(name)` | `nameKeys(name)` | the keys of a whole name; index these |
172
+ | `phonetic.Match(a, b)` | `match(a, b)` | same word count, and each pair of words shares a key |
173
+ | `phonetic.Words(name)` | `words(name)` | the words, split as the others split them |
174
+ | `segment.Segment(s)` | `segment(text)` | the letters, in order; joined, they give the text back |
175
+ | `segment.Count(s)` | `count(text)` | how many letters a reader sees |
176
+
177
+ Three things hold for all of them:
178
+
179
+ - **Language codes** are ISO 639: `hi`, `ta`, `as`, and so on. `phonetic`
180
+ needs none: it reads the script. `normalize` and `fold` use the code for
181
+ a few rules that belong to one language (Assamese ৰ, for example). `stem`
182
+ needs it, and returns the word unchanged for a language with no table.
183
+ - **Keys are not text.** A stem (ஆண்ட), a `phonetic` key (`rn`) and the
184
+ output of `fold` are for comparing, not for showing or storing as text.
185
+ Do not stem a stem: `stem` may cut it again, as other stemmers do.
186
+ - **Rules change, and stored keys go stale.** Each utility exports
187
+ `RULES_VERSION` (Go: `RulesVersion`). Store it beside the keys you save,
188
+ and compute them again when it changes. Before 1.0, a minor version may
189
+ change the rules.
190
+
191
+ ## How good it is
192
+
193
+ Each result is on data that no rule was chosen on. The details, the
194
+ other tools tried and each weak spot are in `docs/`.
195
+
196
+ | Utility | Result | Best other tool | Browser file | Details |
197
+ |---|---|---|---|---|
198
+ | `normalize` | makes 88.1% of look-alike spellings equal, and changes the look of no word | Indic NLP Library: 82.4%, and changes 0.68% of words | 13 KB | [docs/normalize.md](docs/normalize.md) |
199
+ | `stem` | finds 6–15 points more of the right sentences than exact search, in 13 languages | ahead in 5 languages, level in 2, a trade in 4, behind in Nepali | 3 KB | [docs/stem.md](docs/stem.md) |
200
+ | `phonetic` | finds the right person 84% of the time, in 21 languages | romanize + Soundex: 23% in Tamil, 70% in Hindi; cannot read Urdu | 4 KB | [docs/phonetic.md](docs/phonetic.md) |
201
+ | `segment` | cuts 0.05% of Kannada words wrongly | `Intl.Segmenter`: 50.3% | 9 KB | [docs/segment.md](docs/segment.md) |
202
+
203
+ (Browser files are gzipped.)
204
+
205
+ ## Limits
206
+
207
+ - **Only HarfBuzz was tested** for "looks the same" (`normalize`,
208
+ `segment`). Windows and Apple draw text with their own engines.
209
+ - **Tamil is the weakest language** for `phonetic` (76%), and `stem` is
210
+ behind Snowball's recall in Tamil.
211
+ - **Some languages have no table.** `stem` covers 13 languages; Bodo,
212
+ Dogri, Kashmiri, Konkani, Maithili, Manipuri, Odia, Santali and Sindhi
213
+ are not among them.
214
+ - **Go reads invalid UTF-8 as U+FFFD**, so for such input the output does
215
+ not join back into the original bytes.
216
+
217
+ Each utility's own weak spots are at the end of its file in `docs/`.
218
+
219
+ ## How it is built
220
+
221
+ Every table and switch of a utility is in its rules file
222
+ (`normalize/rules.json`, `stem/rules.json`, `phonetic/rules.json`,
223
+ `segment/rules.json`); the Go and TypeScript code is a short loop over it.
224
+ Both are checked against a conformance file of inputs with the outputs that
225
+ a reference implementation gave them: 345,276 inputs for `normalize`,
226
+ 418,665 for `stem`, 195,994 for `phonetic`, 858,654 for `segment`
227
+ (`*/testdata/conformance.jsonl.gz`). A change that makes any one disagree
228
+ on any input fails the build.
229
+
230
+ ## Credits and licence
231
+
232
+ MIT. The test words are Wikidata labels (CC0). The rules were tuned on
233
+ Wikidata and PIB Parallel (Press Information Bureau releases), and checked
234
+ on AI4Bharat's Aksharantar and on Wikipedia text; none of them ships here.
235
+ `normalize` and `segment` were checked in fonts by Google (Noto), Ek Type
236
+ (Anek), SIL, SMC and others. `stem`'s endings were mined from PIB text;
237
+ Wiktionary's inflection tables (CC BY-SA), Universal Dependencies
238
+ treebanks and FLORES+ (CC BY-SA) were used only to measure them. It was
239
+ compared with Snowball, Lucene and the Indic NLP Library.
@@ -0,0 +1,183 @@
1
+ // normalize/rules.json
2
+ var rules_default = {
3
+ version: "2026-10-05",
4
+ max_passes: 8,
5
+ chillu: { map: { ണ: "ൺ", ന: "ൻ", ര: "ർ", ല: "ൽ", ള: "ൾ", ക: "ൿ" }, virama: "്", joiner: "‍", not_before: "റ" },
6
+ ra: { virama: "্", assamese: "ৰ", bengali: "র", assamese_langs: ["as"] },
7
+ khanda_ta: { from: "ত্‍", to: "ৎ", not_before: [[2433, 2435], [2492, 2519], [2530, 2531]] },
8
+ invisible: { "‌": "n", "‍": "j", "​": "s", "⁠": "w", "\uFEFF": "f", "­": "h" },
9
+ width: [3, 3],
10
+ scripts: [["Devanagari", [[2304, 2431], [43232, 43263]]], ["Bengali", [[2432, 2559]]], ["Gurmukhi", [[2560, 2687]]], ["Gujarati", [[2688, 2815]]], ["Oriya", [[2816, 2943]]], ["Tamil", [[2944, 3071]]], ["Telugu", [[3072, 3199]]], ["Kannada", [[3200, 3327]]], ["Malayalam", [[3328, 3455]]], ["MeeteiMayek", [[43744, 43775], [43968, 44031]]], ["OlChiki", [[7248, 7295]]], ["Arabic", [[1536, 1791], [1872, 1919], [64336, 65023], [65136, 65279]]]],
11
+ classes: [[1536, 1541, "U"], [1544, 1544, "U"], [1547, 1547, "U"], [1552, 1562, "M"], [1568, 1568, "A"], [1569, 1569, "U"], [1570, 1573, "R"], [1574, 1574, "A"], [1575, 1575, "R"], [1576, 1576, "A"], [1577, 1577, "R"], [1578, 1582, "A"], [1583, 1586, "R"], [1587, 1599, "A"], [1600, 1600, "K"], [1601, 1607, "A"], [1608, 1608, "R"], [1609, 1610, "A"], [1611, 1631, "M"], [1646, 1647, "A"], [1648, 1648, "M"], [1649, 1651, "R"], [1652, 1652, "U"], [1653, 1655, "R"], [1656, 1671, "A"], [1672, 1689, "R"], [1690, 1727, "A"], [1728, 1728, "R"], [1729, 1730, "A"], [1731, 1739, "R"], [1740, 1740, "A"], [1741, 1741, "R"], [1742, 1742, "A"], [1743, 1743, "R"], [1744, 1745, "A"], [1746, 1747, "R"], [1749, 1749, "R"], [1750, 1756, "M"], [1757, 1757, "U"], [1759, 1764, "M"], [1767, 1768, "M"], [1770, 1773, "M"], [1774, 1775, "R"], [1786, 1788, "A"], [1791, 1791, "A"], [1872, 1880, "A"], [1881, 1883, "R"], [1884, 1898, "A"], [1899, 1900, "R"], [1901, 1904, "A"], [1905, 1905, "R"], [1906, 1906, "A"], [1907, 1908, "R"], [1909, 1911, "A"], [1912, 1913, "R"], [1914, 1919, "A"], [2304, 2307, "B"], [2308, 2324, "I"], [2325, 2361, "C"], [2362, 2363, "M"], [2364, 2364, "N"], [2366, 2380, "M"], [2381, 2381, "V"], [2382, 2383, "M"], [2389, 2391, "M"], [2392, 2399, "C"], [2400, 2401, "I"], [2402, 2403, "M"], [2418, 2423, "I"], [2424, 2431, "C"], [2433, 2435, "B"], [2437, 2444, "I"], [2447, 2448, "I"], [2451, 2452, "I"], [2453, 2472, "C"], [2474, 2480, "C"], [2482, 2482, "C"], [2486, 2489, "C"], [2492, 2492, "N"], [2494, 2500, "M"], [2503, 2504, "M"], [2507, 2508, "M"], [2509, 2509, "V"], [2510, 2510, "D"], [2519, 2519, "M"], [2524, 2525, "C"], [2527, 2527, "C"], [2528, 2529, "I"], [2530, 2531, "M"], [2544, 2545, "C"], [2556, 2556, "B"], [2561, 2563, "B"], [2565, 2570, "I"], [2575, 2576, "I"], [2579, 2580, "I"], [2581, 2600, "C"], [2602, 2608, "C"], [2610, 2611, "C"], [2613, 2614, "C"], [2616, 2617, "C"], [2620, 2620, "N"], [2622, 2626, "M"], [2631, 2632, "M"], [2635, 2636, "M"], [2637, 2637, "V"], [2649, 2652, "C"], [2654, 2654, "C"], [2672, 2672, "B"], [2689, 2691, "B"], [2693, 2701, "I"], [2703, 2705, "I"], [2707, 2708, "I"], [2709, 2728, "C"], [2730, 2736, "C"], [2738, 2739, "C"], [2741, 2745, "C"], [2748, 2748, "N"], [2750, 2757, "M"], [2759, 2761, "M"], [2763, 2764, "M"], [2765, 2765, "V"], [2784, 2785, "I"], [2786, 2787, "M"], [2809, 2809, "C"], [2813, 2815, "N"], [2817, 2819, "B"], [2821, 2828, "I"], [2831, 2832, "I"], [2835, 2836, "I"], [2837, 2856, "C"], [2858, 2864, "C"], [2866, 2867, "C"], [2869, 2873, "C"], [2876, 2876, "N"], [2878, 2884, "M"], [2887, 2888, "M"], [2891, 2892, "M"], [2893, 2893, "V"], [2901, 2903, "M"], [2908, 2909, "C"], [2911, 2911, "C"], [2912, 2913, "I"], [2914, 2915, "M"], [2929, 2929, "C"], [2946, 2946, "B"], [2949, 2954, "I"], [2958, 2960, "I"], [2962, 2964, "I"], [2965, 2965, "C"], [2969, 2970, "C"], [2972, 2972, "C"], [2974, 2975, "C"], [2979, 2980, "C"], [2984, 2986, "C"], [2990, 3001, "C"], [3006, 3010, "M"], [3014, 3016, "M"], [3018, 3020, "M"], [3021, 3021, "V"], [3031, 3031, "M"], [3072, 3076, "B"], [3077, 3084, "I"], [3086, 3088, "I"], [3090, 3092, "I"], [3093, 3112, "C"], [3114, 3129, "C"], [3132, 3132, "N"], [3134, 3140, "M"], [3142, 3144, "M"], [3146, 3148, "M"], [3149, 3149, "V"], [3157, 3158, "M"], [3160, 3162, "C"], [3165, 3165, "D"], [3168, 3169, "I"], [3170, 3171, "M"], [3200, 3203, "B"], [3205, 3212, "I"], [3214, 3216, "I"], [3218, 3220, "I"], [3221, 3240, "C"], [3242, 3251, "C"], [3253, 3257, "C"], [3260, 3260, "N"], [3262, 3268, "M"], [3270, 3272, "M"], [3274, 3276, "M"], [3277, 3277, "V"], [3285, 3286, "M"], [3293, 3293, "D"], [3294, 3294, "C"], [3296, 3297, "I"], [3298, 3299, "M"], [3315, 3315, "B"], [3328, 3332, "B"], [3333, 3340, "I"], [3342, 3344, "I"], [3346, 3348, "I"], [3349, 3386, "C"], [3387, 3388, "V"], [3390, 3396, "M"], [3398, 3400, "M"], [3402, 3404, "M"], [3405, 3405, "V"], [3412, 3414, "D"], [3415, 3415, "M"], [3423, 3425, "I"], [3426, 3427, "M"], [3450, 3455, "D"], [7258, 7287, "C"], [7288, 7293, "B"], [43250, 43251, "B"], [43262, 43262, "I"], [43263, 43263, "M"], [43744, 43745, "I"], [43746, 43754, "C"], [43755, 43759, "M"], [43765, 43765, "B"], [43766, 43766, "V"], [43968, 43981, "C"], [43982, 43983, "I"], [43984, 43984, "C"], [43985, 43985, "I"], [43986, 43994, "C"], [44003, 44010, "M"], [44013, 44013, "V"], [64336, 64433, "U"], [64467, 64829, "U"], [64848, 64911, "U"], [64914, 64967, "U"], [65008, 65019, "U"], [65136, 65140, "U"], [65142, 65276, "U"]],
12
+ features: ["script", "char", "left1", "left2", "left3", "right1", "right2", "right3"],
13
+ tree: [0, { b: [7, { $: [6, { $: [2, { "?": [5, { "$?KUjns": 1 }], A: [1, { fw: [5, { $: [3, { AKU: 1 }], "?AKRUjns": 1 }], h: [5, { $: [3, { AKU: 1 }], "?AKUjns": 1, R: [4, { "?AMR^s": 1 }] }], j: [5, { Kj: 1 }], n: [5, { $: [3, { AKU: 1 }], "?Uns": 1, M: [4, { "MR^": 1 }] }], s: [5, { $: [3, { AKU: 1 }], "?AKRUjns": 1, M: [4, { "MR^": 1 }] }] }], K: [5, { $Ujns: 1, AR: [1, { fhsw: 1 }] }], U: [5, { "$?jns": 1, AR: [1, { fhnsw: 1 }], M: [1, { ns: 1 }] }], j: [1, { fhjsw: 1, n: [5, { $: [4, { "?AKMRUjn": 1 }], "?MUjns": 1, K: [3, { A: 1 }] }] }], n: [1, { fhw: [5, { "$?AKRUjns": 1 }], j: [5, { $: [4, { "?AKMRUjn": 1 }], "?KUjns": 1 }], ns: 1 }], s: [1, { fhw: [5, { "$?AKRUjns": 1 }], j: [5, { $: [3, { "?KUjn": 1 }], "?": [3, { "?R": 1 }], Kj: 1, U: [3, { R: 1 }] }], n: [5, { "$?Uns": 1, A: [3, { RU: 1 }], M: [3, { AUn: 1 }], R: [3, { R: 1 }] }], s: 1 }], M: [3, { A: [1, { fhsw: [5, { "$?ARjns": 1 }], j: [5, { j: 1 }], n: [5, { "$?ns": 1 }] }], M: [4, { A: [1, { fhsw: 1 }], M: [5, { $jns: 1 }], R: [1, { fhnsw: 1 }], "U^": 1 }], R: [5, { "$?Ujns": 1, AR: [1, { fhnsw: 1 }] }], U: [5, { "$?jns": 1 }], n: 1, "^": [5, { $hjns: 1 }] }], R: [5, { $s: [3, { AKMRUn: 1 }], AR: [1, { fhnsw: 1 }], "?KUjn": 1, M: [1, { n: [3, { A: 1 }], s: 1 }] }], h: 1, "^": [1, { fhnsw: 1 }] }], "?": [2, { "?^": 1, j: [1, { fhjsw: 1, n: [5, { "?M": 1 }] }], n: [1, { fhw: [5, { "?AR": 1 }], j: [5, { "?": 1 }], ns: 1 }], s: [1, { fhw: [5, { "?AR": 1 }], j: [3, { "?": 1 }], n: [3, { "?R": 1, A: [5, { M: 1 }] }], s: 1 }], A: [1, { fhw: [5, { ARjns: 1 }], j: [5, { R: [3, { A: 1 }], j: 1 }], n: [5, { Mns: 1 }], s: 1 }], M: [3, { A: [1, { fhsw: [5, { jns: 1 }], j: [5, { j: 1 }], n: [5, { ns: 1 }] }], M: [1, { fhsw: 1 }], R: [5, { jns: 1 }], U: 1 }], R: [5, { AR: [1, { fhnsw: 1 }], Ujns: 1, M: [1, { ns: 1 }] }], U: [5, { jns: 1 }] }], A: [5, { "?": 1, j: [1, { fhjsw: 1, n: [2, { KRUn: 1, M: [3, { R: 1 }] }] }], n: [1, { fhnsw: 1, j: [2, { KRUjn: 1, M: [3, { R: 1 }] }] }], s: [1, { fhsw: 1, n: [2, { RUn: 1, M: [3, { R: 1 }] }] }], R: [1, { fsw: 1, h: [3, { "?KMRU^fjn": 1, A: [2, { KMRjn: 1 }] }], j: [2, { j: 1 }], n: [2, { Rn: 1, Ms: [3, { R: 1 }] }] }], A: [1, { fhsw: 1, j: [2, { A: [3, { U: 1 }], j: 1 }], n: [2, { RUn: 1, s: [3, { Rn: 1 }], M: [3, { R: 1 }] }] }], K: [1, { fhsw: 1, jn: [2, { jn: 1 }] }], M: [1, { s: [2, { ARjns: 1 }], n: [2, { Rn: 1 }], fhjw: [2, { j: 1 }] }], U: [1, { fhnsw: 1, j: [2, { Rjn: 1, s: [3, { R: 1 }] }] }] }], U: [1, { fhw: [5, { "?AKRjns": 1 }], j: [2, { "?K^j": 1, s: [5, { K: 1 }], A: [5, { j: 1 }], R: [5, { jns: 1 }], M: [4, { A: 1 }] }], n: [2, { "?KR^n": 1, j: [5, { K: 1 }], Ms: [3, { R: 1 }], A: [5, { ns: 1 }] }], s: 1 }], K: [1, { fhsw: 1, j: [5, { "?Kjs": 1, n: [3, { "?": 1 }], A: [2, { Aj: 1 }] }], n: [2, { "?^n": 1, A: [5, { n: 1 }] }] }], R: [1, { fw: [5, { AKRUjns: 1, M: [2, { j: 1 }] }], h: [5, { AKUjn: 1, s: [4, { "?KMR^n": 1, A: [3, { AKM: 1 }] }], M: [2, { j: 1 }], R: [3, { "AMR^jn": 1, K: [4, { K: 1 }] }] }], n: [2, { "U^n": 1, A: [5, { n: 1 }], M: [5, { n: 1, ARjs: [3, { R: 1 }] }], R: [5, { ARjns: 1, M: [3, { MR: 1 }] }], s: [3, { R: [5, { AR: 1 }], "U^n": 1 }], K: [5, { jn: 1 }], j: [5, { KU: 1 }] }], s: [5, { AKRUjns: 1, M: [2, { Ajns: 1, R: [3, { AMR: 1 }] }] }], j: [2, { A: [5, { j: 1 }], M: [5, { j: 1, n: [3, { R: 1 }] }], j: 1, KRU: [5, { jn: 1 }], n: [5, { KU: 1 }] }] }], M: [1, { fw: [5, { ARUj: 1, Mn: [2, { j: 1 }] }], h: [5, { AUj: 1, R: [2, { A: [4, { "MR^": 1 }], KMRjn: 1, s: [3, { KMR: 1 }] }], Mn: [2, { j: 1 }] }], j: [5, { A: [2, { A: [3, { A: 1 }], j: 1 }], j: 1, MRn: [2, { j: 1 }], U: [2, { Rjn: 1, Ms: [3, { R: 1 }] }] }], s: [5, { ARUjns: 1, M: [2, { ARjns: 1 }] }], n: [5, { M: [2, { Ajn: 1, Rs: [3, { A: 1 }] }], Un: 1, s: [2, { A: [4, { "MR^": 1 }], Un: 1 }], AR: [2, { Rn: 1, Ms: [3, { R: 1 }] }], j: [2, { RUn: 1, M: [3, { R: 1 }] }] }] }], j: [1, { fhsw: 1, j: [5, { A: [2, { Aj: 1 }], js: 1 }], n: [2, { A: [5, { n: 1 }], Rn: 1 }] }], n: [1, { fw: [5, { AKRjns: 1, M: [2, { j: 1 }] }], h: [5, { AKjns: 1, R: [2, { Ajn: 1 }], M: [2, { j: 1 }] }], j: [5, { Kj: 1, AMR: [2, { j: 1 }], ns: [2, { R: 1 }] }], n: [2, { AM: [5, { ns: 1 }], KRn: 1, j: [3, { j: 1 }], s: [3, { R: 1 }] }], s: 1 }], s: [1, { fhsw: 1, j: [2, { A: [5, { j: 1 }], R: [5, { jns: 1 }], j: 1 }], n: [2, { A: [5, { ns: 1 }], Rn: 1 }] }], h: 1 }], R: [1, { fw: [5, { "?ARUhj": 1, n: [6, { "?AKRUjn": 1 }], s: [6, { "?AKRUjns": 1 }], K: [6, { AKR: 1 }], M: [2, { j: 1 }] }], h: [5, { "?AUhj": 1, n: [6, { "?AKRUjn": 1 }], s: [6, { "?AKUjns": 1, R: [4, { "?AKMR^n": 1 }] }], R: [3, { A: [4, { "?AKMUhjs": 1, R: [2, { ARjns: 1 }], "^": [2, { AMRjn: 1 }], n: [6, { A: 1 }] }], "?KMRUjns": 1, "^": [2, { "R^jns": 1 }] }], K: [6, { AKR: 1 }], M: [2, { j: 1 }] }], j: [5, { "?": [3, { "?R^": 1 }], U: [2, { Rjn: 1, s: [3, { R: 1 }] }], j: 1, n: [2, { "?^j": 1, U: [6, { A: 1 }], R: [6, { "?ARU": 1 }], K: [6, { AKR: 1 }], n: [6, { AR: 1 }], M: [3, { K: 1, R: [6, { AR: 1 }] }], s: [3, { "^s": 1 }] }], R: [2, { A: [3, { K: 1 }], j: 1 }], s: [2, { A: [3, { A: [4, { K: 1 }] }], R: [6, { "?U": 1 }], j: 1 }], AM: [2, { j: 1 }], K: [2, { A: [3, { A: 1 }], j: 1, n: [6, { AKR: 1 }], s: [3, { A: [4, { K: 1 }] }] }] }], n: [5, { "?Un": 1, j: [2, { "?KRU^jn": 1, M: [3, { KR: 1 }], s: [4, { "^": 1 }] }], s: [2, { "?U^ns": 1, R: [6, { "?ARU": 1, M: [3, { M: 1 }] }], A: [6, { "?n": 1 }], M: [6, { n: 1, AR: [3, { R: 1 }] }] }], A: [2, { "?RUn": 1, s: [3, { "?RUns": 1, M: [4, { R: 1 }] }], M: [3, { R: 1 }] }], R: [2, { "?R^n": 1, s: [3, { "?R^ns": 1, M: [4, { R: 1 }] }], M: [3, { R: 1 }] }], M: [2, { A: [6, { n: 1 }], R: [3, { "A^": 1, M: [4, { R: 1 }], R: [4, { "^": 1 }] }], j: [6, { Kn: 1 }], n: 1, s: [6, { n: 1, MR: [3, { R: 1 }] }] }], K: [2, { jn: 1 }] }], s: [5, { "?AKRUhjns": 1, M: [2, { AKjns: 1, R: [4, { "AR^": 1 }] }] }] }], A: [1, { fw: [5, { "?ARUfj": 1, ns: [6, { "?AKRUjns": 1 }], K: [6, { AKR: 1, M: [2, { j: 1 }] }], M: [2, { "^j": 1, ns: [3, { "^": 1 }] }] }], h: [5, { "?AUfj": 1, n: [6, { "?AKRUjns": 1 }], s: [6, { "?AKUjns": 1, R: [3, { "?AKMU^jns": 1, R: [4, { "AM^": 1 }] }] }], R: [3, { A: [2, { A: [6, { ARU: 1 }], KRjn: 1, s: [4, { "AMR^": 1 }], M: [4, { "AM^": 1 }] }], "?KMRU^fjns": 1 }], K: [6, { AKR: 1, M: [2, { j: 1 }] }], M: [2, { "^j": 1, ns: [3, { "^": 1 }] }] }], j: [5, { "?": [2, { "?Rjn": 1, s: [3, { "?": 1 }] }], U: [3, { "?MR^": 1, A: [2, { Rj: 1 }] }], j: 1, n: [2, { "?j": 1, U: [6, { A: 1 }], R: [6, { "?ARUn": 1 }], K: [6, { AKR: 1 }], n: [6, { AR: 1 }], M: [3, { K: [4, { K: 1 }], R: [6, { AR: 1 }], U: 1 }], s: [3, { "^s": 1 }] }], s: [2, { "?": [3, { "?": 1 }], A: [3, { U: [6, { A: 1 }], j: 1 }], M: [3, { K: [4, { K: 1 }] }], R: [6, { "?Un": 1 }], j: 1 }], A: [2, { j: 1, s: [3, { K: [4, { M: 1 }], j: 1 }], A: [3, { U: 1 }] }], R: [2, { A: [3, { A: [4, { M: 1 }] }], j: 1 }], K: [2, { A: [3, { A: [6, { R: 1 }] }], j: 1, n: [6, { AKR: 1 }] }], M: [2, { j: 1 }] }], n: [5, { "?Un": 1, A: [2, { "?U^n": 1, s: [3, { "?U^ns": 1, R: [4, { "AKMR^": 1 }], M: [4, { R: 1 }] }], R: [3, { "AKMR^": 1, n: [6, { R: 1 }] }], M: [3, { R: 1 }] }], j: [2, { "?KRUjn": 1, M: [3, { "KRU^": 1 }], s: [3, { "R^s": 1 }] }], s: [2, { "?U^n": 1, R: [6, { "?RUn": 1, A: [3, { AKMRn: 1 }] }], A: [6, { "?Un": 1 }], M: [6, { n: 1, AR: [3, { R: 1 }] }], s: [3, { "^s": 1 }] }], R: [2, { "?R^n": 1, s: [3, { "?R^ns": 1, M: [4, { R: 1 }] }], M: [3, { R: 1 }] }], M: [2, { A: [6, { n: 1 }], "U^n": 1, j: [6, { Kn: 1 }], s: [3, { A: [6, { n: 1 }], R: [4, { AR: 1 }], "U^": 1 }], R: [4, { R: [3, { A: 1 }], "^": 1 }] }], K: [2, { jn: 1 }] }], s: [5, { "?AKRUfjns": 1, M: [2, { A: [4, { "AR^": 1, M: [6, { AR: 1 }] }], "KU^jns": 1, R: [3, { "AM^": 1, R: [6, { R: 1 }] }] }] }] }], "?": [1, { fhw: [5, { "?ARUj": 1, ns: [6, { "?AR": 1 }], M: [2, { j: 1 }] }], j: [2, { "?j": 1, n: [5, { "?": 1 }], s: [3, { "?": 1 }], A: [5, { R: [3, { A: [4, { "A^": 1 }] }], j: 1 }], M: [5, { j: 1 }], R: [5, { "?Uj": 1, n: [6, { "?AR": 1 }], s: [6, { "?": 1 }] }], "^": [6, { "?": 1 }] }], n: [2, { "?RU^n": 1, j: [5, { "?": 1 }], s: [3, { "?R^": 1, M: [4, { R: 1 }] }], A: [5, { n: 1, s: [6, { "?M": 1 }] }], M: [3, { A: [5, { n: 1 }], R: 1 }] }], s: 1 }], U: [1, { f: [5, { "?AKRj": 1, ns: [6, { AR: 1 }], M: [2, { j: 1 }] }], h: [5, { "?AKj": 1, n: [6, { AR: 1 }], s: [6, { AKR: 1 }], R: [6, { AR: 1, M: [2, { jn: 1 }] }], M: [2, { j: 1 }] }], j: [5, { "?j": 1, n: [2, { R: [6, { AR: 1 }], K: 1, M: [3, { R: 1 }] }], AM: [2, { j: 1 }], R: [2, { A: [3, { A: [4, { "^": 1 }] }], j: 1, s: [3, { A: [4, { A: 1 }] }] }], K: [2, { jn: 1 }] }], n: [2, { "?^n": 1, j: [5, { K: 1 }], s: [3, { "R^": 1 }], A: [5, { n: 1, s: [6, { M: 1 }] }], R: [3, { "AKR^": 1, M: [6, { AR: 1 }] }], K: [5, { jn: 1 }], M: [3, { R: 1, A: [5, { n: 1 }] }] }], s: 1, w: [5, { "?AKRj": 1, n: [6, { AKR: 1 }], s: [6, { AR: 1 }], M: [2, { j: 1 }] }] }], M: [5, { j: [1, { fhjsw: 1, n: [2, { K: [6, { AR: 1 }], "R^n": 1, M: [3, { R: 1, M: [4, { R: 1 }] }] }] }], n: [1, { fhw: [6, { ARU: 1 }], ns: 1, j: [2, { K: [6, { AR: 1 }], R: [6, { ARU: 1 }], "^jn": 1, M: [3, { R: [6, { ARU: 1 }] }] }] }], s: [1, { fw: [6, { ARU: 1 }], h: [6, { AU: 1, R: [2, { AKR: 1, M: [3, { MR: 1 }] }] }], j: [2, { M: [3, { R: [6, { U: 1 }] }], R: [6, { U: 1 }] }], s: 1, n: [6, { M: [2, { R: [4, { "^": 1 }] }], Un: 1, A: [2, { Rn: 1, M: [3, { R: 1 }] }], R: [2, { R: 1, M: [3, { R: 1 }] }] }] }], A: [1, { f: [6, { AKRUn: 1, M: [2, { A: [3, { A: 1 }], MRjn: 1, s: [4, { "AR^": 1 }] }] }], hw: [6, { AKRU: 1, M: [2, { A: [3, { A: 1 }], MRjn: 1, s: [4, { "AR^": 1 }] }], n: [2, { jn: 1 }] }], j: [2, { j: 1, s: [3, { A: [6, { K: 1 }] }], A: [3, { A: [4, { M: 1 }] }] }], s: 1, n: [2, { "R^n": 1, M: [3, { R: 1 }], s: [3, { "R^": 1, M: [4, { R: 1 }] }] }] }], K: [2, { AK: [1, { s: 1 }], Ms: [1, { fhw: [6, { AR: 1 }], s: 1 }], j: 1, n: [6, { AR: 1, K: [1, { ns: 1 }] }] }], R: [1, { fsw: 1, h: [2, { A: [6, { ARU: 1 }], M: [3, { AR: 1 }], "R^jn": 1, s: [3, { A: [4, { AR: 1 }], "MR^": 1 }] }], j: [2, { A: [3, { A: [6, { U: 1 }], M: [4, { A: 1 }] }], j: 1 }], n: [2, { "R^n": 1, M: [3, { R: 1 }], s: [3, { "R^": 1, M: [4, { R: 1 }] }] }] }], M: [1, { s: [2, { ARjns: 1 }], n: [2, { R: [3, { A: [4, { A: 1 }], M: [6, { A: 1 }], R: [4, { "^": 1 }], "^": 1 }], j: [6, { Un: 1, M: [3, { M: 1 }] }], n: 1, s: [6, { n: 1, R: [3, { R: 1 }] }] }], fhjw: [2, { j: 1 }] }], U: [1, { fhnsw: 1 }], "?": 1, f: [1, { fhsw: 1 }] }], n: [1, { fw: [5, { "?ARUj": 1, ns: [6, { AR: 1 }], M: [2, { j: 1 }] }], h: [5, { "?AUj": 1, R: [2, { A: [6, { A: 1 }], Rjns: 1 }], ns: [6, { AR: 1 }], M: [2, { j: 1 }] }], j: [5, { "?Uj": 1, n: [2, { Rj: 1 }], AMR: [2, { j: 1 }] }], n: [5, { "?Un": 1, s: [2, { A: [6, { M: 1 }], R: [6, { AR: 1 }] }], A: [2, { Rn: 1, Ms: [3, { R: 1 }] }], R: [2, { Rn: 1, s: [3, { R: 1 }] }], j: [2, { Rn: 1 }], M: [6, { M: 1 }] }], s: 1 }], K: [1, { fhw: [5, { "?ARUj": 1, K: [6, { K: [3, { A: [4, { "AK^": 1 }], "KM^": 1 }], A: 1, M: [2, { j: 1 }] }], ns: [6, { A: 1, K: [4, { A: [2, { A: 1 }], K: 1, "^": [2, { K: 1 }] }] }], M: [2, { j: 1 }] }], j: [5, { A: [2, { A: [3, { A: 1 }], K: [4, { K: 1 }], Mj: 1 }], K: [2, { A: [3, { A: [6, { K: 1 }] }], Mj: 1, n: [6, { A: 1, K: [4, { "K^": 1 }] }], s: [3, { M: 1 }] }], MR: [2, { j: 1 }], "?Uj": 1, s: [2, { K: [3, { M: 1 }] }], n: [2, { K: [6, { A: 1, K: [4, { "K^": 1 }] }], "R^": 1 }] }], n: [2, { A: [5, { n: 1 }], K: [5, { j: [3, { AKM: 1 }], n: 1 }], "?RU^n": 1, j: [3, { AM: [5, { K: 1 }], K: [6, { M: 1 }] }], M: [3, { R: 1 }], s: [3, { "R^": 1 }] }], s: 1 }], s: [1, { fw: [6, { ARs: 1, M: [5, { R: 1 }] }], h: [3, { ARs: 1, "^": [2, { "^jns": 1 }] }], j: [5, { AR: [2, { j: 1 }], j: 1, n: [6, { s: 1 }] }], n: [2, { A: [5, { n: 1 }], "R^n": 1, s: [3, { "R^s": 1 }] }], s: 1 }], j: [1, { fw: [6, { ARUjn: 1, M: [5, { A: 1 }] }], h: [2, { A: [6, { ARjn: 1 }], "R^jn": 1, s: [4, { A: [5, { A: 1 }], "R^": 1 }] }], j: [5, { j: 1, s: [6, { A: [2, { A: 1 }], j: 1 }], n: [2, { "R^": 1 }], AR: [2, { j: 1 }] }], n: [2, { A: [5, { n: 1 }], "R^n": 1, s: [3, { "R^": 1 }], j: [5, { jns: 1 }] }], s: 1 }], h: 1 }], "1": [2, { "?": [5, { "$?Ihs": 1, C: [6, { $BCDNV: 1, M: [7, { $: [4, { "?^": 1 }], "?": 1, C: [3, { "?CI^": 1 }], I: [3, { "?C": 1 }], B: [4, { "C^": 1 }] }] }], jn: [6, { "$?CIhjn": 1 }], B: [1, { jn: 1 }] }], B: [3, { "?^": 1, C: [4, { "?": 1, BINn: [1, { fhjsw: [5, { Cjs: 1 }], n: [5, { n: 1 }] }], C: [1, { fhjsw: [5, { CIjs: 1 }], n: [5, { n: 1 }] }], D: [1, { fhjsw: [5, { js: 1 }], n: [5, { n: 1 }] }], M: [6, { "?": 1, C: [1, { fhjsw: [5, { CIjs: 1 }], n: [5, { n: 1 }] }], M: [1, { fhjsw: [5, { C: 1 }] }] }], V: [6, { "?": 1, C: [1, { fhjsw: [5, { Cjs: 1 }], n: [5, { n: 1 }] }], M: [1, { fhjsw: 1 }] }], "^": [1, { fhjsw: [5, { CIs: 1, j: [6, { C: 1 }] }], n: [5, { n: [6, { C: 1 }] }] }] }], I: [4, { "?": 1, CI: [1, { fhjsw: [5, { Cjs: 1 }], n: [5, { n: 1 }] }], M: [1, { fhjsw: [5, { Cs: 1, j: [6, { C: 1 }] }], n: [5, { n: [6, { C: 1 }] }] }], "^": [1, { fhjsw: [5, { CIjs: 1 }], n: [5, { n: 1 }] }], n: [1, { fhjsw: [5, { js: 1 }], n: [5, { n: 1 }] }] }], M: [1, { fhjsw: [5, { $CIs: 1, j: [6, { $CIn: 1 }] }], n: [4, { C: [5, { n: [6, { CIn: 1 }] }], N: [5, { n: 1 }] }] }], BV: [1, { fhjsw: [5, { Cjs: 1 }], n: [5, { n: 1 }] }], N: [6, { "?V": 1, C: [1, { fjsw: [5, { Cjs: 1 }], h: [7, { CIMV: 1 }], n: [5, { n: 1 }] }], I: [5, { I: 1 }], M: [1, { fhjsw: 1 }] }], j: [7, { C: [1, { j: [4, { M: 1 }] }], B: 1 }], n: [4, { M: [1, { fhjsw: [5, { Cs: 1, j: [6, { C: 1 }] }], n: [5, { n: [6, { C: 1 }] }] }], V: 1 }] }], C: [4, { "?": [5, { "$?CIs": 1, j: [6, { "$?CI": 1, B: [1, { j: 1 }], M: [1, { jn: 1 }] }], n: [6, { "$?CIN": 1, B: [1, { j: 1 }], M: [1, { jn: 1 }] }], B: [1, { jn: 1 }], M: [1, { jn: [3, { "?": [7, { C: 1 }], CI: 1 }] }] }], B: [5, { "$?CIs": 1, j: [6, { "$?CIn": 1 }], n: [6, { "$?CINn": 1 }] }], C: [1, { fhsw: [5, { "$?CDIhs": 1, j: [3, { BDNjn: [6, { C: 1 }], C: [6, { CDI: 1 }], I: [6, { CI: 1 }], M: [6, { "?CDI": 1 }] }], n: [6, { "$?CDINhs": 1, j: [7, { $CIV: 1 }], n: [7, { $CIVn: 1 }] }] }], j: [3, { "?": [7, { $BI: 1, C: [6, { C: 1 }] }], B: [5, { Cs: 1, j: [6, { C: 1 }], n: [6, { CNj: 1 }] }], C: [5, { CDIs: 1, j: [6, { CDI: 1 }], n: [6, { CDIN: 1 }] }], D: [5, { Cs: 1, jn: [6, { C: 1 }] }], I: [5, { CIs: 1, j: [6, { CI: 1 }], n: [6, { CIN: 1 }] }], M: [5, { "?CDIs": 1, M: [6, { "?": 1 }], j: [6, { "?CDI": 1 }], n: [6, { "?CDIN": 1 }] }], Njn: [5, { Cs: 1, j: [6, { C: 1 }], n: [6, { CN: 1 }] }], V: [5, { M: [7, { "?": 1 }], j: [6, { "?CIs": 1 }] }], h: [6, { $: 1 }] }], n: [5, { "$?CDIhs": 1, M: [3, { "?": [7, { $: 1 }], M: [6, { "?": 1 }], V: [7, { "?": 1 }] }], j: [3, { BDNjn: [6, { C: 1 }], C: [6, { CDI: 1 }], I: [6, { CI: 1 }], M: [6, { "?CDI": 1 }] }], n: [6, { "$?CDINhs": 1, M: [7, { "?": 1 }], j: [7, { $CIV: 1 }], n: [7, { $CIVn: 1 }] }] }] }], D: [5, { "$?CIs": 1, jn: [6, { "$?CI": 1 }] }], I: [5, { "$?CDIs": 1, j: [6, { "$?CDI": 1, n: [7, { $I: 1 }], j: [7, { CI: 1 }] }], n: [6, { "$?CDINjn": 1 }] }], M: [5, { "$?CDIhs": 1, j: [6, { "$?CDIhs": 1, M: [1, { jn: [7, { "?": 1 }] }], j: [7, { $CI: 1 }], n: [7, { $CIn: 1 }] }], n: [6, { "$?CDINhjs": 1, M: [1, { jn: [7, { "?": 1 }] }], n: [7, { $CIVjn: 1 }] }], M: [1, { jn: [6, { C: [3, { "?": 1 }], "?": 1 }] }] }], N: [5, { "$?CDIs": 1, j: [6, { "$?CDI": 1, n: [7, { $C: 1 }], j: [7, { C: 1 }] }], n: [6, { "$?CDINj": 1, n: [7, { $C: 1 }] }] }], V: [5, { C: [3, { BCDn: 1, j: [1, { fhnsw: 1 }] }], j: [6, { "$?CDIh": 1, j: [7, { C: 1 }], n: [7, { $CIn: 1 }] }], n: [6, { "$?CDINhj": 1, n: [7, { $CIVjn: 1 }] }], "$?DIhs": 1 }], "^": [5, { "$?CDIs": 1, j: [6, { "$?CDIs": 1, M: [1, { jn: [3, { "?": 1 }] }], j: [7, { "$?CIj": 1 }], n: [7, { $CDIn: 1 }] }], n: [6, { "$?CDINs": 1, M: [1, { jn: [3, { "?": 1 }] }], j: [7, { "$?BCIVj": 1 }], n: [7, { $BCDIVjn: 1 }] }], B: [1, { jn: [3, { "?": 1 }] }], M: [1, { jn: [3, { "?": [7, { $C: 1 }], C: [7, { "?": 1 }], "^": [6, { "?": 1 }] }] }] }], h: [5, { Cs: 1, jn: [6, { C: 1 }] }], j: [5, { $CIs: 1, j: [6, { $CIjn: 1 }], n: [6, { $CINjn: 1 }] }], n: [5, { $CIs: 1, j: [6, { $CIn: 1 }], n: [6, { $CINn: 1 }] }], s: [5, { $CIs: 1, j: [6, { $CI: 1 }], n: [6, { $CIN: 1 }] }], w: 1 }], I: [5, { "$?DI": 1, Cs: [3, { "?BCDIMN^jnsw": 1, V: [1, { fhnsw: 1 }] }], j: [6, { $: [3, { "?BCDIMN^jns": 1 }], "?DINjn": 1, C: [3, { "?BCDIMN^jnsw": 1, V: [4, { C: [1, { j: 1 }], "M^": 1 }] }] }], n: [6, { $: [3, { "?BCDIMN^jns": 1 }], "?DINjn": 1, C: [3, { "?BCDIMN^jnsw": 1, V: [1, { fhnsw: 1, j: [7, { $: 1 }] }] }] }] }], V: [3, { "?M": 1, C: [1, { fhsw: [5, { n: [4, { "?BDINjn": 1, CM: [6, { CIj: 1 }], "^": [6, { Cn: 1 }] }], $s: 1 }], j: [4, { "?": [5, { j: 1 }], BNn: [5, { j: [7, { $: 1 }] }], C: [5, { j: [7, { $j: 1 }] }], I: [5, { j: [7, { $C: 1 }] }], M: [5, { j: [7, { $n: 1 }] }], "V^": [5, { j: [6, { n: 1 }] }] }], n: [5, { $: 1, n: [6, { $CDIj: 1, n: [7, { $CDIjn: 1 }] }], s: [4, { "?BCDIMN^jn": 1 }] }] }], D: [5, { jns: 1 }], I: [5, { n: [6, { CIn: 1 }], s: 1, j: [7, { C: [6, { Cn: 1 }], BI: 1 }] }], N: [1, { fhnsw: [5, { ns: 1 }], j: [4, { C: [5, { j: [6, { n: 1 }] }] }] }], j: [5, { j: [7, { $CIVjn: 1 }], ns: 1 }], n: [5, { j: [7, { $BCIn: 1 }], ns: 1 }], "^": [5, { Ins: 1, j: [7, { C: 1 }] }] }], h: [4, { "?CIM^": 1, V: [1, { fhsw: 1, j: [6, { $: 1 }], n: [6, { $M: 1 }] }] }], j: [5, { "$?DIfhsw": 1, C: [3, { "?BCDIMN^fhjns": 1, V: [6, { $BCDIfhs: 1, "?": [7, { $I: 1 }], N: [7, { $CVn: 1, M: [4, { M: 1 }] }], V: [7, { $jn: 1, C: [4, { M: 1 }] }], j: [7, { CIV: 1 }], n: [7, { $BCIn: 1 }], M: [4, { M: 1 }] }] }], jn: [6, { "$?CDIjns": 1, B: [3, { IM: 1 }], V: [3, { "IV^j": 1 }] }], B: [1, { j: [3, { C: [4, { "?": 1 }], n: [4, { M: 1 }] }], n: [3, { C: [4, { "?": 1 }] }] }], M: [1, { j: [3, { C: [4, { "?": [6, { I: 1 }], "CMV^": [6, { "?": 1 }] }], "B^": 1, Mn: [4, { N: 1 }] }], n: [3, { C: [4, { "?": [6, { I: 1 }], "CM^": [6, { "?": 1 }], V: [7, { "?": 1 }] }], "B^": 1, Mn: [4, { N: 1 }] }] }], V: [1, { j: [3, { DMn: 1 }], n: [3, { D: 1 }] }], N: [3, { IM: 1, N: [4, { N: 1 }] }] }], n: [5, { "$?CDINfhsw": 1, j: [6, { "$?CDIVjns": 1, B: [3, { CIM: 1 }] }], n: [6, { "$?CDIVjn": 1, B: [3, { CIM: 1 }] }], M: [1, { j: [3, { C: [4, { "?": [6, { I: 1 }], "CMV^": [6, { "?": 1 }] }] }], n: [3, { C: [4, { "?": [6, { I: 1 }], "CMV^": [6, { "?": 1 }] }], Mn: [4, { N: 1 }], "^": 1 }] }], V: [1, { fhw: [3, { Mn: 1 }], ns: [3, { "M^n": 1 }] }], B: [1, { fhnsw: [3, { n: [4, { M: 1 }] }] }] }], s: [5, { "$?CDINfhjsw": 1, B: [1, { fhnsw: 1, j: [4, { "?": 1, "^": [3, { "?": 1 }] }] }], V: [1, { fhnsw: 1 }], n: [6, { "$?BCDIVjns": 1, M: [1, { fhnsw: 1 }] }], M: [1, { fhsw: 1, j: [3, { C: [4, { "?": [6, { I: 1 }], "CMV^": [6, { "?": 1 }] }] }], n: [7, { "$?BCDIhjns": 1, N: [4, { "C^": 1 }], V: [3, { C: 1 }], M: [6, { M: 1 }] }] }] }], D: [5, { $CIs: 1, jn: [6, { $CIjns: 1, V: [1, { j: 1 }] }], V: [1, { jn: 1 }] }], M: [5, { "$?DIhs": 1, C: [3, { CDINVjn: 1, M: [1, { fhjsw: 1, n: [6, { $CN: 1 }] }], "^": [6, { $CV: 1 }] }], jn: [6, { "$?CDINVhjns": 1 }], B: [1, { jn: [4, { "?": 1 }] }] }], N: [5, { "$?DI": 1, C: [4, { "?BCDIMN^jn": 1, V: [1, { fhnsw: 1, j: [7, { C: 1 }] }] }], j: [6, { "$?DI": 1, C: [4, { "?BCDIMN^jn": 1, V: [7, { $BMNV: 1 }] }], j: [7, { $: 1 }], n: [7, { "$?Cn": 1 }], N: [3, { N: 1 }] }], n: [6, { "$?DIN": 1, C: [4, { "?BCDIMN^jn": 1, V: [1, { fhnsw: 1 }] }], M: [1, { n: [4, { j: 1 }] }], j: [7, { $V: 1 }], n: [7, { "$?CVn": 1, M: [1, { n: 1 }] }] }], s: [4, { "?BCDIMN^jns": 1, V: [1, { fhnsw: 1, j: [7, { $: 1 }] }] }], M: [1, { jn: [6, { "?": 1 }] }] }], fw: 1, "^": [6, { "$?BDfhsw": 1, C: [5, { "?CDIfhjns": 1, V: [1, { n: 1 }] }], I: [5, { "?CIjnsw": 1 }], V: [7, { $BIjn: 1, C: [5, { Ijns: 1 }] }], j: [7, { "$?BCDIVj": 1 }], n: [7, { "$?BCIVjn": 1 }], M: [5, { C: [7, { "?": 1 }], s: 1 }], N: [7, { BCV: 1 }] }] }], "0": [2, { "?": [3, { "?": [5, { "$?CIsw": 1, jn: [6, { "$?CIjnsw": 1 }] }], "BCIMNV^fjns": 1 }], B: [3, { "?NV^n": 1, C: [5, { $CIfjsw: 1, "?": [6, { "?C": 1 }], n: [6, { $BCIVfjnsw: 1, "?": [7, { "?C": 1 }], M: [1, { fhnsw: 1 }] }], M: [1, { fhnsw: 1 }] }], I: [1, { fhjsw: [5, { $Cjs: 1 }], n: [5, { n: 1 }] }], M: [1, { fhsw: [5, { $CIMjs: 1 }], j: [5, { $CIjs: 1 }], n: [5, { n: 1 }] }], B: [4, { C: 1, M: [1, { fhjsw: [5, { Cjs: 1 }], n: [5, { n: 1 }] }] }], j: [4, { Cn: 1 }] }], C: [5, { $CIfhsw: 1, "?": [6, { $: [3, { "?BCIMVs": 1 }], "?I": 1, C: [7, { M: [3, { "?": [4, { C: 1 }], "I^": 1 }], "$?": 1 }] }], j: [6, { $CIfhsw: 1, "?": [3, { "?": [4, { "?CI": 1, M: [7, { $: 1 }] }], BIs: 1, C: [4, { CMVj: 1 }], MV: [7, { "$?": 1 }], "^": [7, { "?C": 1 }] }], B: [1, { j: [3, { "?": 1 }] }], M: [1, { j: 1, n: [4, { "?": 1, "M^": [3, { "?": 1 }], h: [3, { M: 1 }] }] }], V: [1, { j: [3, { "?": 1, C: [4, { "?": 1 }] }] }], j: [7, { $CIn: 1, M: [1, { j: 1 }], j: [3, { BCIM: 1 }] }], n: [7, { "$?CI": 1, M: [1, { jn: 1 }], n: [3, { "BCIM^": 1 }], j: [3, { "I^": 1 }] }] }], n: [6, { $CINfhsw: 1, "?": [7, { "$?I": 1, C: [3, { "?IV^": 1, C: [4, { C: 1 }] }] }], B: [1, { j: [3, { "?": 1 }] }], M: [1, { j: [3, { "?BCIMN^fhjns": 1, V: [4, { C: 1 }] }], n: 1 }], V: [7, { C: [1, { j: [3, { "?": 1 }] }], "?": [1, { j: 1 }], N: 1 }], j: [7, { "$?BCIVn": 1, M: [1, { jn: 1 }], j: [3, { BCIM: 1 }] }], n: [7, { "$?BCIV": 1, M: [1, { jn: 1 }], n: [3, { "BCIM^": 1 }], j: [3, { "BI^": 1 }] }] }], B: [1, { j: [4, { "?BCIMV^js": 1, N: [3, { M: 1 }] }], n: 1 }], M: [1, { j: [3, { "?": [4, { "?": [7, { C: 1 }], "CM^": 1 }], C: [4, { "?": [7, { $: 1 }], "C^": [6, { "?": 1 }] }], "IV^": [6, { "?": 1 }], M: [7, { "?": 1 }], N: [7, { M: 1 }] }], n: [3, { "?": [7, { $: [6, { $B: 1 }], CMV: 1 }], C: [4, { "?": [7, { $: 1 }], "C^": [6, { "?": 1 }] }], IV: [6, { "?": 1 }], M: [7, { "?": 1 }] }] }], V: [1, { jn: [6, { "?": 1 }] }] }], I: [4, { "?N": [5, { $Cs: 1, jn: [6, { $C: 1 }] }], Bjn: 1, C: [3, { "?Nns": 1, B: [5, { $Cs: 1, jn: [6, { $C: 1 }] }], C: [5, { $CIs: 1, jn: [6, { $CI: 1 }] }], I: [7, { $BIVj: 1, C: [6, { B: [5, { Cs: 1 }], CIMV: 1 }], M: [5, { CIjns: 1 }] }], M: [5, { "$?CIfs": 1, j: [6, { "$?CIfn": 1, j: [7, { $C: 1 }], M: [1, { jn: 1 }] }], n: [6, { "$?CIfn": 1, j: [7, { $Cn: 1 }], M: [1, { jn: 1 }] }] }], V: [5, { $: 1, CIs: [1, { fhnsw: 1 }], j: [1, { j: [6, { C: 1 }] }], n: [7, { $I: 1, C: [6, { CI: 1 }] }] }], j: [7, { $MV: 1, C: [5, { Cs: 1, jn: [6, { C: 1 }] }] }] }], IMs: [5, { $CIs: 1, jn: [6, { $CI: 1 }] }], V: [5, { $CIs: 1, jn: [6, { $CINn: 1 }] }], "^": [5, { $CIhs: 1, j: [6, { "$?CIh": 1, M: [1, { j: 1 }], j: [7, { $CI: 1 }], n: [7, { $BCn: 1 }] }], n: [6, { "$?CIh": 1, j: [7, { $CI: 1 }], n: [7, { $BCn: 1 }], M: [1, { jn: 1 }] }], "?": [7, { "$?MV": 1 }], V: [1, { jn: 1 }] }] }], M: [5, { "?": [7, { $BMV: 1, "?": [4, { "?IM^": 1, C: [6, { "?": 1 }] }], C: [4, { "CMV^": 1 }] }], j: [6, { "?": [7, { "$?CI": 1 }], $CINVfhns: 1, j: [7, { "$?BCIjn": 1 }], M: [1, { j: 1, n: [3, { h: 1 }] }] }], n: [6, { "?": [7, { "$?CI": 1 }], $CINVfhns: 1, j: [7, { "$?BCIjn": 1 }], M: [1, { j: [3, { C: 1 }], n: 1 }] }], $Ifhs: 1, C: [6, { "$?BCIMNfhjns": 1, V: [4, { "?BCINV^hjns": 1, M: [1, { fhjns: 1 }] }] }], B: [1, { j: [3, { C: [4, { M: [6, { n: 1 }] }] }], n: [6, { n: 1 }] }] }], j: [5, { $Ifhsw: 1, "?": [3, { "?BINV^fjns": 1, C: [6, { $: [4, { "?BCIMVs": 1 }], C: [7, { "$?": 1, M: [4, { "I^": 1 }] }], "?I": 1 }], M: [6, { "$?CI": 1 }] }], C: [3, { "?BCIMN^fhjnsw": 1, V: [4, { B: [6, { C: 1 }], I: [7, { Mn: 1 }], MV: 1, N: [6, { $BCs: 1 }], j: [6, { $: 1 }] }] }], j: [6, { "$?CIn": 1, j: [7, { "$?CIjn": 1 }], M: [1, { j: 1, n: [3, { I: [7, { C: 1 }] }] }], B: [3, { Mn: 1 }], V: [3, { V: 1 }] }], n: [6, { "$?CI": 1, j: [7, { "$?BCIjn": 1, M: [1, { jn: 1 }] }], n: [4, { "?BI^jn": 1, C: [7, { $CIVn: 1, j: [3, { M: 1 }] }], M: [7, { $jn: 1 }], V: [7, { $C: 1 }] }], M: [1, { j: [3, { CIn: 1 }], n: 1 }], B: [3, { IMn: 1 }], V: [3, { Vn: 1 }] }], M: [1, { j: [3, { "BCIMN^hjn": 1 }], n: [3, { C: [4, { "?": [6, { C: 1 }], CIV: [6, { "?": 1 }], M: [7, { "?": 1 }] }], I: [4, { "^": [7, { C: 1 }] }], "B^hn": 1, M: [4, { h: 1 }], j: [4, { V: 1 }] }] }], B: [1, { j: [3, { C: [4, { "?": 1 }], "BV^": 1, n: [4, { C: 1 }] }], n: [3, { C: [4, { "?": 1 }] }] }], V: [1, { j: [3, { C: [4, { "?": 1 }], "BM^": 1 }], n: [4, { "?": 1 }] }], N: [3, { "IM^": 1 }] }], n: [5, { $CINfhsw: 1, "?": [3, { "?INV^fjns": 1, B: [6, { "?C": 1, $: [4, { M: 1 }] }], C: [7, { "$?BM": 1, C: [4, { IM: 1 }] }], M: [6, { "$?CI": 1 }] }], j: [6, { "$?CIV": 1, j: [7, { "$?BCIjn": 1, M: [1, { jn: 1 }] }], n: [7, { n: [4, { "?CIM^jn": 1 }], "$?CIV": 1, j: [4, { "BM^jn": 1, C: [3, { M: 1 }] }] }], M: [1, { jn: 1 }], B: [3, { CIMn: 1 }] }], n: [6, { "$?CIV": 1, n: [7, { "$?CIV": 1, j: [4, { "BM^j": 1, C: [3, { M: 1 }] }], n: [4, { "CIM^n": 1 }] }], j: [7, { "$?BCIjn": 1, M: [1, { jn: 1 }] }], M: [1, { j: [4, { BC: [3, { C: 1 }], "M^": 1 }], n: 1 }], B: [3, { CIM: 1 }] }], M: [1, { j: [4, { "?Nfjs": 1, Bhn: [3, { C: 1 }], C: [3, { CIMNjn: 1 }], I: [3, { Cj: 1 }], "M^": [3, { CI: 1 }], V: [6, { "?": 1 }] }], n: 1, fhsw: [3, { "B^h": 1, j: [4, { V: 1 }] }] }], B: [1, { fhsw: [3, { "B^": 1, n: [4, { C: 1 }] }], n: [3, { "BV^": 1, n: [4, { C: 1 }] }], j: [3, { V: 1 }] }], V: [6, { C: [1, { fhnsw: [3, { M: 1 }] }], N: 1 }] }], s: [1, { fnsw: 1, h: [4, { "?BCIMNV^fhnsw": 1, j: [6, { "$?BCIMNjn": 1 }] }], j: [5, { "$?CINfhjsw": 1, n: [6, { "$?BCIVjs": 1, n: [7, { $Cjn: 1 }] }], M: [3, { C: [4, { I: [6, { "?": 1 }] }] }] }] }], fw: 1, V: [3, { C: [1, { fhsw: [5, { "$?hs": 1, n: [6, { "$?CIh": 1, j: [7, { $CIj: 1 }], n: [7, { $CIjn: 1 }] }], M: [4, { V: 1 }] }], j: [4, { B: [5, { j: [7, { C: 1 }] }], CIV: [5, { j: [6, { jn: 1 }] }], "M^": [5, { j: [6, { Ij: 1 }] }] }], n: [5, { "$?BMhs": 1, n: [6, { "$?BCIMh": 1, j: [7, { $CIMj: 1 }], n: [7, { $CIjn: 1 }] }] }] }], B: [5, { ns: 1, j: [7, { C: 1 }] }], M: 1, N: [4, { C: [1, { fhnsw: [5, { ns: 1 }], j: [5, { j: [7, { $: 1 }] }] }], I: [5, { ns: 1 }], M: 1 }], V: [5, { Mns: 1, j: [6, { C: 1 }] }], j: [5, { j: [7, { $C: 1 }], ns: 1 }], n: [5, { ns: 1 }], I: [5, { ns: 1, j: [7, { CV: 1 }] }], "^": [5, { $ns: 1, j: [7, { $V: 1 }] }] }], N: [5, { $I: 1, C: [3, { "CM^": 1 }], j: [6, { "$?Ins": 1, C: [3, { "CM^": 1 }], M: [1, { j: 1 }], V: [3, { M: 1 }] }], n: [6, { "$?Ins": 1, C: [3, { "CM^": 1 }], M: [1, { jn: 1 }], V: [3, { M: 1, C: [7, { N: 1 }] }] }], s: [3, { "CIM^": 1, V: [4, { N: 1 }] }], B: [1, { jn: 1 }] }], h: [1, { fhnsw: 1, j: [5, { $Cjs: 1, n: [6, { $C: 1 }] }] }], "^": [1, { fhnsw: 1, j: [5, { "?CIfjs": 1, n: [6, { "?CIfjns": 1 }] }] }] }], "3": [6, { $: [5, { $s: [2, { "?CMNhjns": 1, B: [1, { fhjsw: 1 }], I: [3, { "?BCIM^jn": 1 }], V: [1, { fhnsw: 1 }] }], "?h": 1, C: [2, { "?CIMN^ns": 1, j: [3, { "?BCIMN^jn": 1, V: [4, { MN: 1 }] }], B: [1, { fhjsw: 1 }], V: [3, { M: 1 }] }], I: [2, { "?CIM^jns": 1, B: [1, { fhjsw: 1 }] }], j: [2, { "?CMNhjns": 1, B: [1, { fhjsw: 1 }], I: [3, { "?BCIM^jn": 1 }], V: [1, { j: 1 }] }], n: [2, { "?CIMNhjns": 1, B: [1, { n: 1 }], V: [1, { fhnsw: 1 }] }], M: [1, { j: [2, { C: [3, { "?": 1 }], jn: [3, { CI: 1 }] }], n: [2, { C: [3, { "?": 1 }], j: [3, { I: 1 }], ns: 1 }], fhsw: [2, { s: 1 }] }], B: [1, { j: [2, { C: 1, j: [3, { C: 1 }] }], fhnsw: [2, { s: 1 }] }], V: [1, { j: [2, { j: 1 }], n: [2, { j: [3, { C: 1 }], s: 1 }], fhsw: [2, { s: 1 }] }], N: [2, { ns: 1 }] }], "?": [5, { "?I": 1, j: [2, { "?CIM^jns": 1, B: [4, { "^": 1 }] }], ns: [2, { "?CIM^j": 1, B: [4, { "^": 1 }] }], M: [1, { j: [2, { jn: 1, s: [7, { $: 1 }], C: [4, { C: 1 }] }], n: [2, { jns: 1, C: [3, { C: 1 }] }], fhsw: [2, { s: 1 }] }], C: [2, { "?CIM^jns": 1 }] }], C: [5, { "?": [2, { "?CIM^jns": 1, B: [4, { "^": 1 }] }], C: [2, { "?CIMN^hns": 1, j: [3, { "?BCIMN^hjns": 1, V: [4, { M: 1 }] }], B: [1, { fhjsw: 1 }], V: [3, { M: 1 }] }], j: [2, { "?CMN^hjns": 1, I: [3, { "?BCIMN^jns": 1, V: [1, { jw: 1 }] }], V: [3, { C: [1, { j: [7, { "?": 1 }] }], IM: 1 }], B: [1, { fhjsw: 1 }] }], n: [2, { "?CMN^hjns": 1, I: [3, { "?BCIMN^jns": 1, V: [1, { fhnsw: 1 }] }], V: [1, { fhnsw: 1, j: [3, { M: 1 }] }], B: [1, { n: 1 }] }], s: [1, { fhsw: 1, j: [2, { "?BCMN^jns": 1, I: [3, { "?BCIM^jns": 1 }], V: [3, { M: 1 }] }], n: [2, { "?CIMNV^jns": 1 }] }], M: [1, { j: [2, { C: [3, { "?": 1 }], j: [3, { "CIMN^j": 1 }], n: [4, { "?BINjns": 1, C: [3, { CMNj: 1 }], M: [3, { C: 1 }], "^": [3, { CI: 1 }] }] }], n: [2, { C: [7, { C: [3, { "?": 1 }], "?": 1 }], j: [3, { C: [7, { "?": 1 }], "IV^": 1 }], "V^ns": 1 }], fhsw: [2, { "^s": 1, V: [4, { V: 1 }], n: [3, { "^": 1 }] }] }], I: [2, { "?CIMN^jns": 1, B: [1, { fhjsw: 1 }] }], B: [1, { j: [2, { C: 1, j: [3, { BC: 1 }] }], fhnsw: [2, { s: 1, n: [3, { B: 1 }] }] }], V: [1, { j: [2, { j: [3, { CM: 1 }] }], n: [2, { j: [4, { "?MNVj": 1, "I^": [3, { C: 1 }] }], s: 1, n: [3, { M: 1 }] }], fhsw: [2, { s: 1, n: [3, { M: 1 }] }] }], N: [2, { ns: 1, j: [3, { IM: 1 }] }], h: 1 }], I: [2, { "?I": 1, C: [5, { "?CIjns": 1, B: [1, { j: 1 }] }], j: [5, { "?Ijns": 1, C: [3, { "?BCIM^j": 1 }], B: [1, { j: [3, { C: 1 }] }], M: [1, { j: 1 }], V: [1, { jn: 1 }] }], n: [5, { "?CINjns": 1, M: [1, { j: [4, { "BCIM^j": 1 }], n: 1 }] }], s: [1, { fhnsw: 1, j: [5, { "?CIjns": 1 }] }], B: [3, { CM: [1, { fhjsw: [5, { Cjs: 1 }], n: [5, { n: 1 }] }], "^": 1 }], "M^": [5, { "?CIjns": 1 }], V: [1, { fhnsw: [5, { ns: 1 }], j: [5, { j: 1 }] }], N: [4, { I: 1 }] }], n: [3, { "?Bn": 1, C: [5, { C: [2, { CMjns: 1 }], j: [2, { CMn: 1, V: [1, { j: 1 }] }], ns: [1, { fhnsw: 1, j: [2, { CM: 1 }] }], M: [1, { j: [2, { j: 1, n: [4, { "C^": 1 }] }], n: [2, { ns: 1 }], fhsw: [2, { s: 1 }] }], V: [1, { j: [2, { j: 1 }], n: [2, { js: 1 }], fhsw: [2, { s: 1 }] }], B: [1, { jn: 1 }], I: 1 }], M: [5, { js: [1, { fhjsw: 1, n: [2, { Cn: 1 }] }], n: [2, { CIjns: 1 }], CI: 1 }], V: [5, { C: [2, { Cns: 1 }], jns: 1 }], "^": [5, { "?CIjns": 1 }], I: [5, { C: 1 }] }], B: [2, { "?": [5, { "?Cs": 1 }], C: [5, { CIs: 1, M: [1, { jn: [3, { "?": 1 }] }], jn: [1, { j: 1 }] }], j: [3, { "?B^ns": 1, C: [5, { CI: 1, M: [1, { j: 1, n: [4, { "?": 1 }] }], V: [1, { j: 1 }] }], IM: [5, { CI: 1 }], j: [5, { C: 1 }] }], n: [5, { "?CI": 1, M: [1, { j: [4, { "?BCIM^": 1 }], n: 1 }] }], s: [1, { fhnsw: 1, j: [5, { CI: 1, M: [4, { "?": 1 }] }] }], IM: [5, { CIs: 1 }], B: [1, { fhjsw: [5, { CIjs: 1 }], n: [5, { n: 1 }] }], V: [1, { fhsw: [5, { s: 1 }], j: [3, { C: [5, { jn: 1 }] }], n: [5, { n: [3, { C: 1 }], s: 1 }] }], "^": 1 }], M: [5, { C: [2, { "?CMN^hns": 1, j: [3, { "?BCIMN^hjns": 1, V: [4, { C: [7, { "?": 1 }], M: 1, N: [1, { jw: 1 }] }] }], B: [1, { fhjsw: 1 }], I: [3, { "BCIM^jns": 1, V: [7, { $: 1 }] }], V: [3, { M: 1 }] }], s: [2, { "?CIMN^j": 1, V: [1, { fhnsw: 1 }] }], j: [2, { "?In": [1, { jn: 1 }], C: [1, { j: 1, n: [4, { "?": 1 }] }], MNj: [1, { j: 1 }], "^s": 1 }], n: [1, { j: [2, { "?CI": 1, M: [4, { "C^": 1 }], j: [3, { C: 1 }], N: [4, { CM: 1 }] }], n: 1 }], "?": 1, M: [1, { j: [2, { j: [3, { C: 1 }], n: [4, { "C^": 1 }] }], n: [2, { ns: 1 }], fhsw: [2, { s: 1 }] }], V: [1, { j: [2, { j: 1 }], n: [2, { js: 1 }], fhsw: [2, { s: 1 }] }], N: [2, { ns: 1 }], I: [2, { "IM^jns": 1 }] }], j: [2, { "?I^": 1, j: [3, { "?BI^j": 1, C: [1, { j: 1, n: [5, { CV: 1 }], fhsw: [5, { C: 1 }] }], M: [5, { C: 1 }], V: [5, { jns: 1 }] }], n: [5, { CIjns: 1, M: [1, { j: [7, { $: 1 }], n: 1 }] }], s: [1, { fhnsw: 1, j: [5, { C: 1 }] }], V: [1, { fhsw: [5, { n: [7, { $C: 1 }], s: 1 }], j: [5, { j: 1 }], n: [5, { ns: 1 }] }], B: [1, { fhjsw: [5, { js: 1 }], n: [5, { n: 1 }] }], C: [5, { j: [7, { $C: 1, M: [1, { j: 1 }] }], n: [7, { $C: 1, M: [1, { jn: 1 }] }], Cs: 1, B: [1, { j: 1 }] }], M: [5, { Cjns: 1 }] }], V: [5, { C: [2, { "?CIMN^ns": 1, j: [3, { "?BCIMN^jns": 1, V: [4, { M: 1 }] }], B: [1, { fhjsw: 1 }], V: [3, { M: 1 }] }], Is: 1, j: [2, { C: [1, { j: 1 }], "M^": 1 }], n: [2, { C: [1, { j: [4, { "BCIMV^jns": 1 }] }], "M^": 1 }], M: [1, { j: [2, { j: 1, n: [4, { M: 1 }] }], n: [2, { ns: 1 }], fhsw: [2, { s: 1 }] }], N: [2, { ns: 1 }] }], N: [5, { C: [2, { "CIMN^ns": 1, j: [3, { "CIMN^": 1, V: [7, { C: 1 }] }] }], Ins: 1, j: [2, { IM: 1 }] }], s: [5, { jns: 1, C: [2, { j: [3, { CM: 1 }], CMns: 1 }] }], h: 1 }], "2": [2, { "?": [5, { $: [1, { fhjsw: 1, n: [3, { "?": 1 }] }], "?": [6, { $I: 1, "?": [4, { "?CM": 1, "^": [3, { "?^": 1 }] }], C: [3, { "?": 1 }] }], C: [1, { fhjsw: 1, n: [3, { M: [4, { "?^": 1 }], "^": 1 }] }], I: [1, { fhjsw: 1, n: [3, { M: [7, { $: 1 }] }] }], j: [6, { $: [1, { fhjsw: 1, n: [3, { "?": 1 }] }], "?": [7, { $I: 1, "?": [1, { fhjsw: 1, n: [4, { C: 1 }] }], C: [3, { "?": 1, C: [1, { fhjsw: 1 }] }] }], C: [1, { fhjsw: 1, n: [3, { M: [4, { "^": 1 }], "^": 1 }] }], I: [1, { fhjsw: 1 }], M: [1, { j: [7, { I: 1, C: [4, { C: 1 }] }], n: [7, { I: 1 }] }], V: 1 }], n: [6, { $: [3, { "?^": 1, C: [4, { B: 1 }] }], "?": [7, { $I: 1, "?": [4, { "?CM": 1, "^": [3, { "?^": 1 }] }], C: [3, { "?": 1, C: [1, { n: 1 }] }] }], C: [1, { fhjsw: [3, { M: [4, { "^": 1 }], "^": 1 }], n: 1 }], I: [1, { n: 1 }], M: [1, { j: [7, { I: 1 }], n: [7, { I: 1, C: [4, { C: 1 }] }] }], V: 1 }], s: [1, { fhjsw: 1, n: [3, { "?": [4, { "?": 1, "^": [6, { "?": 1 }] }], M: [6, { C: [4, { "^": 1 }], M: 1 }], I: [6, { M: 1 }], "^": 1 }] }], M: [1, { fhsw: [6, { BI: 1, C: [7, { CN: 1 }] }], jn: [6, { M: 1 }] }], V: 1 }], C: [5, { $CIfhs: 1, j: [6, { $CIfhs: 1, "?": [7, { "?": [4, { B: 1 }], M: [3, { C: [4, { C: 1 }], B: 1 }], B: 1 }], j: [7, { $CIj: 1 }], n: [7, { $CIn: 1 }] }], n: [6, { $CINfhs: 1, "?": [7, { "?": [4, { B: 1 }], M: [3, { C: [4, { C: 1 }], B: 1 }], $: [3, { B: 1 }], B: 1 }], j: [7, { $CIj: 1 }], n: [7, { $CIn: 1 }] }], M: [1, { jn: [3, { "?": [4, { "?": [6, { B: 1 }], C: [6, { I: 1 }], N: [7, { $: 1 }] }] }] }], "?": [6, { "?": [4, { B: 1 }], M: [7, { $I: 1 }], B: 1 }] }], I: [5, { $CIs: 1, jn: [6, { $CINns: 1, M: [1, { jn: [4, { "?": 1 }] }], "?": [7, { M: 1 }] }], "?": [6, { M: 1 }] }], M: [5, { $CIfs: 1, jn: [6, { $CINVfjns: 1, "?": [7, { BM: 1, I: [3, { M: 1 }], "?": [3, { "N^": 1 }], C: [3, { B: 1, M: [4, { N: 1 }] }], $: [4, { "^": 1 }] }], M: [1, { jn: [3, { "?": 1 }] }] }], "?": [6, { BM: 1, "?": [3, { C: [7, { "?": 1 }], "N^": 1 }], C: [3, { M: [4, { C: [7, { N: 1 }], N: 1 }], B: 1, "^": [7, { CMV: 1 }] }], I: [3, { M: 1 }], $: [4, { "^": 1 }] }], BM: [1, { jn: [3, { "?": 1 }] }] }], j: [5, { $Ifhs: 1, "?": [3, { "?": [4, { "?BCIM": 1, "^": [6, { "$?": 1 }] }], C: [6, { M: [7, { $I: 1 }], "?": [7, { "$?": 1 }], B: 1 }], M: [6, { C: [4, { B: 1, M: [7, { N: 1 }], "^": [7, { CMV: 1 }] }], "?": [4, { C: [7, { "?": 1 }], "N^": 1 }], BM: 1, I: [4, { M: 1 }] }], I: [6, { M: 1 }], "B^": 1 }], C: [3, { "?": [1, { fhjsw: 1, n: [4, { "?BCMNV^": 1, I: [6, { CIN: 1 }] }] }], "BCIMN^fhjns": 1, V: [6, { "$?BCIV": 1, N: [7, { $CV: 1, M: [4, { M: 1 }] }], M: [4, { M: 1 }] }] }], M: [3, { "?": [4, { "?V": 1, C: [7, { C: 1, M: [6, { C: 1 }] }], M: [1, { jn: [6, { C: 1 }] }] }], "B^h": 1, M: [1, { jn: [4, { "?": 1 }] }], N: [1, { jn: [7, { "?": 1 }] }] }], jn: [6, { $CIjn: 1 }], B: [3, { "B^": 1, "?": [4, { I: 1 }] }], N: [3, { "BIMN^": 1 }], V: [3, { "?BM^": 1 }] }], n: [5, { $CINfhs: 1, "?": [3, { "?": [4, { "?BCIM": 1, "^": [6, { "$?": 1 }] }], C: [6, { $: [4, { B: 1 }], M: [7, { $I: 1 }], "?": [7, { "$?": 1 }], B: 1 }], M: [6, { C: [4, { B: 1, M: [7, { N: 1 }], "^": [7, { CMV: 1 }] }], "?": [4, { C: [7, { "?": 1 }], "N^": 1 }], BM: 1, I: [4, { M: 1 }] }], I: [6, { M: 1 }], "B^": 1 }], M: [3, { "?": [4, { "?V": 1, C: [7, { C: 1, M: [6, { C: 1 }] }], M: [1, { jn: [6, { C: 1 }] }] }], "B^h": 1, M: [1, { jn: [4, { "?": 1 }] }], N: [1, { jn: [7, { "?": 1 }] }] }], j: [6, { $CIjn: 1 }], n: [6, { $CIn: 1 }], B: [3, { "B^": 1, "?": [4, { I: 1 }] }], V: [3, { "?BM^": 1 }] }], s: [3, { "?": [1, { fhjsw: 1, n: [4, { "?BCMNV^": 1, I: [6, { $CIN: 1 }] }] }], "BCIMNV^fhjns": 1 }], B: [1, { fhjsw: [5, { $CIjs: 1, n: [3, { M: [4, { "?": 1 }], "^": 1 }] }], n: [5, { n: 1, Cjs: [3, { M: [4, { "?": 1 }], "^": 1 }] }] }], N: [5, { $CIs: 1, jn: [6, { $CINjns: 1 }], M: [1, { jn: [7, { "?": 1 }] }] }], V: [5, { $: [4, { "?BCIMN^": 1 }], I: 1, j: [7, { $: [4, { "?BIMN^": 1, C: [6, { $CI: 1 }] }], C: [4, { "?BIMNjns": 1, C: [6, { CI: 1 }], "^": [6, { C: 1 }] }], V: [4, { "?BIM^": 1, C: [3, { MN: 1 }] }], I: [6, { CI: 1 }], "?": 1, B: [4, { BIMs: 1, "C^": [6, { C: 1 }] }], N: [4, { BCIMNn: 1 }], M: [3, { M: 1 }] }], n: [4, { "?BIMNjns": 1, "C^": [6, { $CI: 1 }], V: [7, { "?": 1 }] }], s: [4, { "?BCIMN^jns": 1, V: [1, { fhnsw: 1 }] }], C: [3, { M: 1 }] }], "^fh": 1 }], "7": [2, { "?fh": 1, C: [5, { "$?CIhs": 1, j: [6, { "$?CIhs": 1, BV: [1, { j: 1 }], M: [1, { j: [3, { "?NV^": 1, C: [4, { "?MV^hns": 1 }], I: [4, { IV: 1 }], j: [7, { BC: 1 }], n: [4, { "BCIM^j": 1 }], B: [7, { $j: 1 }], M: [4, { MN: 1 }], h: [4, { h: 1 }] }] }], j: [7, { "$?CIjn": 1, M: [1, { j: 1 }] }], n: [7, { "$?CIj": 1, n: [3, { BCMVn: 1 }], M: [1, { jn: 1 }] }] }], n: [6, { "$?CINhs": 1, BV: [1, { j: 1 }], M: [1, { jn: 1 }], j: [7, { "$?BCIVjn": 1, M: [1, { jn: 1 }] }], n: [7, { "$?CIVjn": 1, M: [1, { jn: 1 }] }] }], B: [1, { jn: [3, { "?BCIM^hjns": 1, V: [6, { n: 1 }] }] }], V: [1, { j: [3, { "?": [6, { C: 1 }], V: [6, { "?": 1 }] }], n: [3, { "?": [7, { M: 1 }] }] }], M: [1, { jn: [3, { V: [7, { "?": 1 }] }] }] }], I: [5, { "$?CIs": 1, jn: [6, { "$?CIjn": 1 }], B: [1, { jn: 1 }], V: [1, { j: 1, n: [7, { C: 1 }] }] }], j: [5, { "$?Ifhs": 1, C: [3, { "?BCIMN^fhjns": 1, V: [4, { "BIM^n": 1, N: [6, { $BCMN: 1, V: [7, { "$?n": 1 }] }], V: [6, { $CM: 1, V: [7, { $: 1 }] }], j: [6, { $BCM: 1, V: [7, { $n: 1 }] }] }] }], j: [6, { "$?CIjn": 1, M: [1, { j: 1 }], V: [3, { "^j": 1 }], B: [3, { I: 1 }] }], n: [6, { "$?CIhj": 1, n: [7, { "$?BCIVjn": 1 }], M: [1, { jn: 1 }], V: [3, { "V^jn": 1 }], B: [3, { Ij: 1 }] }], B: [3, { CV: [1, { jn: 1 }], j: [4, { I: 1 }], n: [4, { Ij: 1 }], "^h": 1 }], M: [3, { C: [1, { j: [4, { "?Vs": 1, B: [6, { Ihj: 1 }], C: [6, { "?BIVhj": 1 }], I: [7, { "?Cn": 1 }], M: [7, { "$?Bjn": 1 }], "^": [6, { "?I": 1 }], h: [6, { C: 1 }], j: [6, { CI: 1 }], n: [7, { CIn: 1 }] }], n: [4, { V: [7, { "?": 1 }] }] }], MNj: [1, { j: 1 }], Vn: [1, { jn: 1 }], "^": 1 }], V: [3, { C: [1, { j: 1 }], M: 1, n: [1, { fhjsw: 1, n: [7, { $C: 1 }] }], N: [4, { M: 1 }], j: [4, { "^": 1 }], "^": [1, { fhjsw: 1, n: [7, { $: 1 }] }] }], N: [3, { M: 1 }] }], n: [5, { "$?CINfhs": 1, j: [6, { "$?CIVhj": 1, n: [7, { "$?BCIVjn": 1 }], B: [3, { CIj: 1 }], M: [1, { jn: 1 }] }], n: [6, { "$?CIVhj": 1, n: [7, { "$?CIVjn": 1 }], M: [1, { jn: 1 }], B: [3, { Ij: 1 }] }], M: [1, { jn: 1, fhsw: [3, { "^": 1 }] }], V: [3, { M: 1, n: [7, { $BC: 1, M: [1, { n: 1 }] }], N: [4, { M: 1 }], j: [4, { "^": 1 }], "^": [7, { $C: 1 }] }], B: [3, { V: [1, { jn: 1 }], jn: [4, { Ij: 1 }], "^h": 1 }] }], s: [7, { "$?BCINVhjns": 1, M: [5, { "?BCIMNhjns": 1, V: [1, { fhjsw: 1 }] }] }], B: [4, { "?BIhns": 1, C: [3, { CINVj: 1, M: [7, { $: [1, { fhjsw: [5, { Cjs: 1 }], n: [5, { n: 1 }] }], "?": 1, C: [1, { fhjsw: [5, { Cs: 1 }] }], BIMVjn: [1, { fhjsw: [5, { C: 1 }] }] }] }], M: [3, { B: [1, { f: 1 }], CIh: 1 }], N: [1, { fhjsw: [5, { Cjs: 1 }], n: [5, { n: 1 }] }], V: [3, { C: [7, { $C: [1, { fhjsw: [5, { Cjs: 1 }], n: [5, { n: 1 }] }], "?": 1 }], Ijn: 1 }], "^": [3, { "C^": 1, I: [5, { $CIs: 1, jn: [6, { $CIjn: 1 }] }] }], j: [3, { CIn: 1 }] }], M: [5, { "$?CIhs": 1, j: [6, { "$?CINVhns": 1, j: [7, { "$?CIjn": 1 }], M: [1, { j: 1 }] }], n: [6, { "$?CINVhns": 1, j: [7, { "$?CIjn": 1 }], M: [1, { jn: 1 }] }], B: [1, { jn: [6, { C: [4, { "?": 1 }], n: 1 }] }], M: [1, { j: [4, { "CM^": 1 }] }] }], V: [3, { C: [5, { $: [1, { fhnsw: 1 }], I: [4, { "?": 1, V: [1, { fhnsw: 1 }] }], j: [1, { fhnsw: [4, { "?": [7, { $C: 1 }], I: [7, { "?": 1 }] }], j: [6, { "$?BIMs": 1, j: [7, { "$?CIjn": 1 }], n: [7, { "$?CIVjn": 1 }] }] }], n: [4, { "?": 1, B: [7, { $Ijn: [1, { fhnsw: 1 }], "?N": 1 }], C: [1, { fhnsw: [6, { CIs: 1 }] }], I: [6, { "?": 1, CIns: [1, { fhnsw: 1 }], j: [7, { "?": 1 }] }], M: [1, { fhsw: [6, { CIs: 1 }], n: [6, { CIMs: 1 }] }], Nhs: [1, { fhnsw: 1 }], V: [1, { fhsw: [6, { "?CIV": 1 }], n: [7, { $CIVjn: 1 }] }], "^": [7, { $: [1, { n: 1 }], "?": 1, j: [1, { fhnsw: 1 }] }], j: [6, { "?": 1, Cj: [1, { fhnsw: 1 }], n: [7, { "?": 1 }], B: [1, { n: 1 }] }], n: [1, { fhnsw: [6, { Cn: 1 }] }] }], s: [1, { fhnsw: 1, j: [4, { "?": 1, I: [7, { "?": 1 }] }] }], "?": [1, { fhnsw: 1, j: [4, { I: 1 }] }], M: [1, { n: 1 }], B: [1, { n: [4, { "M^j": 1 }] }], V: [1, { n: 1, j: [6, { I: 1 }], fhsw: [4, { V: 1 }] }], h: 1 }], BI: [5, { jns: 1 }], M: 1, N: [6, { $: [5, { "$?jns": 1 }], C: [5, { Ins: 1, j: [7, { $BCMN: 1 }], C: [4, { M: 1 }] }], "?I": 1, j: [7, { $I: 1 }], n: [7, { CIj: 1 }] }], V: [5, { $Ijns: 1 }], j: [6, { $: [5, { $Ijns: 1 }], C: [4, { C: [5, { I: 1, ns: [1, { fhnsw: 1 }] }], "^": [5, { n: 1 }], j: 1 }], Ij: 1, n: [7, { $CI: 1 }] }], n: [5, { ns: [1, { fhnsw: 1, j: [6, { C: 1 }] }], j: [4, { Vn: 1 }], $: 1 }], "^": [5, { $jns: 1 }] }], N: [5, { $Cs: 1, j: [6, { $C: 1, M: [1, { j: 1 }], V: [3, { M: 1 }] }], n: [6, { $C: 1, M: [1, { jn: 1 }], V: [3, { M: 1 }] }], V: [1, { j: [4, { C: [3, { C: 1 }], "IMV^": 1 }] }], B: [1, { jn: 1 }] }], "^": [5, { "?BCIMfhjns": 1, V: [1, { fhjsw: 1, n: [7, { $: 1 }] }] }] }], "8": [2, { "?": [3, { "?CIMV^": 1, D: [5, { jns: 1 }] }], j: [5, { "$?DIfhs": 1, C: [3, { "?BCDIM^fhjns": 1, V: [4, { C: [7, { $: [6, { Mn: 1 }], C: [6, { I: 1 }], n: [6, { M: 1 }], "?": 1, B: [1, { h: 1 }], M: [1, { j: 1 }], j: [6, { j: 1 }] }], DIMVjn: 1 }] }], M: [3, { C: [1, { j: 1, n: [7, { C: [6, { "?": 1 }], BD: [4, { n: 1 }], "?": 1 }] }], DM: [1, { j: 1 }], "^hs": 1, j: [1, { j: 1, n: [4, { Is: 1, j: [6, { C: 1 }] }], fhsw: [4, { s: 1 }] }], In: [1, { jn: 1 }] }], V: [3, { C: [1, { j: [6, { $BDIMVjns: 1, C: [7, { I: 1 }] }], n: [6, { $BDIVns: 1, j: [7, { $CDIj: 1 }] }] }], DMn: [1, { jn: 1 }], V: [1, { j: [6, { C: 1 }] }], "^s": 1, j: [4, { s: 1 }] }], j: [6, { $CDIn: 1, M: [3, { Cj: [1, { j: 1 }], "^s": 1 }], j: [7, { $CDIn: 1, j: [3, { j: [4, { BDIMVj: 1 }], BDIMV: 1, C: [1, { jn: 1 }] }], M: [1, { j: 1 }] }], V: [3, { s: 1 }], B: [3, { "M^": 1 }] }], n: [6, { $CDIs: 1, M: [1, { jn: 1, fhsw: [3, { "^s": 1 }] }], j: [7, { j: [3, { j: [4, { BDIMVj: 1 }], BDIMV: 1, C: [1, { jn: 1 }] }], $CDIn: 1, M: [1, { jn: 1 }] }], n: [7, { $CDIn: 1 }], V: [3, { s: 1 }], B: [3, { "M^": 1 }] }], B: [3, { CD: [1, { jn: 1 }], "^n": 1, j: [4, { "M^": 1 }] }] }], n: [5, { "$?CDIfhs": 1, M: [1, { jn: 1, fhsw: [3, { j: [4, { s: 1 }], "^": 1 }] }], j: [6, { $BCDIs: 1, M: [1, { jn: 1, fhsw: [3, { "^s": 1 }] }], j: [7, { j: [3, { j: [4, { BDIMVj: 1 }], BDIMV: 1, C: [1, { jn: 1 }] }], $CDIn: 1, M: [1, { jn: 1 }] }], n: [7, { $CDIn: 1 }], V: [1, { jn: 1 }] }], n: [6, { $BCDIjs: 1, n: [7, { $CDIn: 1 }], MV: [1, { jn: 1 }] }], V: [3, { Mn: [1, { jn: 1 }], V: [1, { n: [6, { C: 1 }] }], "^": 1, j: [4, { s: 1 }] }], B: [3, { "^n": 1, j: [4, { "M^": 1 }] }] }], "^fhs": 1, C: [5, { "$?CDIhs": 1, j: [6, { "$?CDIhs": 1, B: [1, { j: 1 }], M: [1, { j: 1, n: [3, { C: [4, { n: 1 }], D: [7, { n: 1 }] }] }], V: [1, { j: [7, { $BDIMVjns: 1, C: [3, { h: 1 }] }] }], j: [7, { $CDn: 1, M: [1, { j: 1 }], j: [1, { j: 1, n: [4, { Cj: 1 }] }] }], n: [7, { $CDIj: 1, n: [3, { "CV^": 1 }], M: [1, { jn: 1 }] }] }], n: [6, { "$?CDIhs": 1, BV: [1, { j: 1 }], M: [1, { jn: 1 }], n: [7, { MV: [1, { jn: 1 }], $BCDIjn: 1 }], j: [7, { $BCDn: 1, MVj: [1, { jn: 1 }] }] }], B: [1, { j: [3, { "BCDIM^jns": 1, V: [6, { jn: 1 }] }], n: [3, { "BCDIM^jns": 1, V: [6, { n: 1 }] }] }], M: [1, { j: [6, { B: [3, { s: [7, { s: 1 }] }], C: [3, { j: [7, { $: 1 }], V: [7, { C: 1 }], s: [4, { "^": 1 }] }], D: [3, { B: [4, { I: 1 }] }], I: [3, { B: 1, I: [4, { I: 1 }] }], n: [4, { B: 1, "^": [7, { $: 1 }] }], "?": 1, j: [3, { C: [7, { D: 1 }] }] }] }], V: [1, { j: [6, { $: [3, { BCDIMhjns: 1 }], n: [3, { "BCDIM^jns": 1, V: [4, { C: 1 }] }], I: [3, { CDIM: 1 }], Ds: 1 }], n: [6, { $: [3, { BCDIMhjns: 1 }], n: [3, { "BCDI^jns": 1, M: [7, { C: 1 }], V: [4, { C: 1 }] }], I: [3, { CDIM: 1 }], BDs: 1 }] }] }], M: [5, { "$?CDIhs": 1, j: [6, { "$?CDIhns": 1, j: [7, { $BCDIj: 1, M: [1, { j: 1 }] }], M: [1, { j: 1 }], V: [1, { jn: 1 }] }], n: [6, { "$?CDIhns": 1, j: [7, { $BCDIj: 1, M: [1, { jn: 1 }] }], MV: [1, { jn: 1 }] }], M: [1, { j: [6, { $C: 1 }] }], B: [1, { jn: [6, { n: 1 }] }] }], V: [3, { C: [6, { $: [1, { f: [5, { $DIns: 1 }], hsw: [5, { $Ins: 1 }], j: [5, { j: 1 }], n: [5, { $BDIns: 1 }] }], C: [1, { fs: [5, { j: [4, { "?": 1 }], Ins: 1, D: [7, { M: 1 }] }], hw: [5, { j: [4, { "?": 1 }], DIns: 1 }], j: [4, { "?": [7, { $CV: 1 }], V: [7, { h: 1 }] }], n: [5, { j: [4, { "?": 1 }], BIns: 1, D: [7, { MV: 1 }] }] }], D: [1, { fhnsw: [5, { Ins: 1 }], j: [5, { j: 1 }] }], j: [7, { $CDIj: [1, { fhnsw: [5, { ns: 1 }], j: [5, { j: 1 }] }], V: 1 }], n: [5, { j: [1, { j: 1 }], n: [1, { fhsw: [7, { $CDIjns: 1 }], n: 1 }], Ds: [1, { fhnsw: 1 }], I: 1 }], s: [1, { fhnsw: [5, { ns: 1 }], j: [5, { j: 1 }] }], I: [5, { ns: [1, { fhnsw: 1 }], j: [1, { j: 1 }], I: [1, { n: 1 }], "?": 1 }], B: [1, { fhnsw: [5, { Is: 1 }] }], V: [1, { fhsw: [5, { s: 1 }], n: [5, { n: [4, { M: 1 }], s: 1 }] }], M: [1, { fhsw: [5, { s: 1 }], j: [5, { j: 1 }], n: [5, { ns: 1 }] }], "?": 1 }], D: [5, { jns: 1 }], Ijn: [5, { $jns: 1 }], "M^": 1, V: [5, { $jns: 1, C: [7, { C: [1, { hn: 1 }], V: 1 }] }] }], B: [3, { C: [4, { "BCDIM^fhjns": 1, V: [6, { $: [1, { fhjs: 1 }], B: [7, { $: 1 }], C: [5, { C: 1, I: [7, { M: 1 }], j: [1, { fhjsw: 1 }], n: [1, { ns: 1 }], s: [7, { $BDMVj: 1 }] }], DIV: 1, M: [1, { fhjsw: 1 }], j: [5, { Cs: 1, j: [1, { fhjsw: 1 }], n: [1, { ns: 1 }] }], n: [1, { fjs: [5, { js: 1 }], hw: 1, n: [5, { n: 1 }] }], s: [1, { fhns: 1 }] }] }], "DIV^jn": 1, M: [1, { fhjsw: [5, { $CIs: 1, j: [6, { $Cjns: 1 }] }], n: [4, { C: [5, { n: [6, { Cjns: 1 }] }], "^": [5, { n: 1 }] }] }] }], D: [5, { "$?CDIhs": 1, j: [6, { "$?CDIhjns": 1, BMV: [1, { j: 1 }] }], n: [6, { "$?CDIhjns": 1, BV: [1, { j: 1 }], M: [1, { jn: 1 }] }], B: [1, { jn: 1 }], M: [1, { j: 1 }] }], I: [5, { "$?CDIhs": 1, j: [6, { "$?CDIhns": 1, j: [7, { $CDj: 1 }], M: [1, { jn: 1 }] }], n: [6, { "$?CDIhns": 1, j: [7, { $CDj: 1 }] }], BV: [1, { jn: 1 }] }] }], "9": [1, { fhsw: [5, { $CIs: 1, "?": [2, { "?": [4, { "?IMV^": 1, C: [6, { C: 1 }] }], C: [6, { "$?CIV": 1, M: [3, { CM: 1 }] }], "V^s": 1, jn: [6, { $: [4, { "?CIV^": 1 }], "?": [4, { "?IV^": 1, CM: [3, { C: 1 }] }], CV: 1, I: [7, { "$?M": 1 }], M: [7, { $C: 1 }] }], I: [3, { "CIM^": 1, "?": [7, { $C: 1 }] }], M: [6, { $CMV: 1, "?": [4, { "CIMV^": 1 }], I: [7, { "$?M": 1 }] }] }], j: [6, { $CIs: 1, "?": [4, { "?IMV": 1, C: [2, { "?": [3, { C: 1 }], CMV: 1, I: [3, { M: 1 }] }], "^": [7, { "$?CV": 1, I: [2, { C: 1 }] }] }], j: [7, { $CIj: 1 }], M: [2, { "^": 1 }] }], n: [2, { "^ns": 1, j: [3, { j: [4, { j: 1 }], "^": 1 }] }], M: [2, { "^s": 1, j: [3, { "^": 1 }] }], V: [2, { s: 1 }] }], j: [5, { "$?CIjs": 1, n: [6, { "$?CIjns": 1, M: [2, { I: [4, { "?": 1, C: [3, { "?": 1 }], "M^": [7, { "?": 1 }] }], "?": [3, { C: [7, { $: 1 }] }], "^": 1 }] }], M: [2, { I: [4, { "?": 1, C: [3, { "?": 1 }], M: [6, { "?": 1 }] }], "^js": 1, n: [3, { I: [4, { CI: [6, { "?": 1 }] }], "^": 1 }], "?": [3, { C: [6, { "$?": 1 }] }] }], V: [2, { js: 1 }] }], n: [2, { "?": [5, { "$?CIs": 1, j: [6, { "$?CIMVj": 1 }], M: [3, { C: [6, { "$?": 1 }] }] }], C: [5, { "$?CIs": 1, j: [6, { "$?CIMV": 1 }] }], I: [5, { M: [4, { "?": 1, C: [3, { "?": 1 }], M: [6, { "?": 1 }] }], "$?CIjs": 1 }], MV: [5, { "$?CIjs": 1 }], j: [3, { "?": [5, { "$?CIMVj": 1 }], C: [5, { "$?CIMV": 1 }], IMV: 1, "^": [5, { M: 1 }] }], s: [5, { MV: 1 }], "^": [5, { M: 1, j: [6, { M: 1 }] }] }] }], a: 1, "4": [2, { "?": [6, { "$?IMNVjn": 1, C: [5, { "?CIjns": 1 }], B: [5, { "?CIs": 1 }] }], B: [4, { "?Bjn": 1, C: [3, { CIVjn: 1, M: [1, { fhjsw: [5, { CIjs: 1 }], n: [5, { n: 1 }] }] }], I: [3, { BCIj: 1, M: [5, { $C: 1, j: [6, { $: 1 }], s: [6, { C: 1 }] }] }], M: [3, { C: 1, I: [5, { "$?CIjns": 1 }], M: [1, { fsw: 1 }], n: [1, { fj: 1 }] }], N: [5, { $: 1 }], V: [7, { $: [5, { $: 1, C: [1, { fhjsw: 1 }], jns: [6, { $: 1 }] }], BCMV: 1 }], "^": [5, { "$?CIjns": 1 }] }], C: [5, { $: [3, { "?BCIMN^jns": 1, V: [4, { "MNV^jn": 1 }] }], "?": [6, { "$?C": 1, I: [1, { fhnsw: 1 }] }], C: [3, { "?BCIMN^jns": 1, V: [1, { fhnsw: 1, j: [4, { IMNjn: 1 }] }] }], I: [3, { "?BCIM^jn": 1, V: [1, { fhnsw: 1 }] }], j: [6, { $: [3, { "?BCIMN^jns": 1, V: [4, { "MNV^jn": 1 }] }], "?": [3, { "?CIM^": 1, V: [7, { "$?C": 1 }] }], C: [3, { "?BCIMN^jns": 1, V: [4, { C: [1, { j: 1 }], IMNjn: 1 }] }], I: [3, { "?BCIM^jn": 1, V: [1, { j: 1 }] }], BV: [1, { j: [3, { "?": 1 }] }], n: [3, { "CIM^": [7, { $CIn: 1 }], N: 1, V: [4, { N: 1 }], n: [7, { $C: 1 }], B: [4, { M: 1 }] }], j: [3, { M: [7, { $Cjn: 1 }], C: [7, { $CI: 1 }], "?I": 1, "^": [7, { CI: 1 }] }], hs: 1 }], n: [6, { $: [3, { "?BCIMN^jns": 1, V: [4, { "MNV^jn": 1 }] }], "?": [3, { "?CIM^": 1, V: [1, { fhnsw: 1 }] }], C: [3, { "?BCIMN^jns": 1, V: [1, { fhnsw: 1, j: [4, { IMNjn: 1 }] }] }], I: [3, { "?BCIM^jn": 1, V: [1, { fhnsw: 1 }] }], BV: [1, { j: [3, { "?": 1 }] }], N: [3, { "?BCIMN^jn": 1, V: [1, { fhnsw: 1 }] }], n: [3, { CNn: 1, IM: [7, { $CIVn: 1 }], V: [1, { fhnsw: 1 }], B: [4, { M: 1 }], "^": [7, { $BCIVn: 1 }] }], j: [3, { "?CIM^": 1 }], hs: 1 }], s: [3, { "?BCIMN^hjns": 1, V: [1, { fhnsw: 1, j: [4, { C: [7, { "?": 1 }], IMNVjn: 1 }] }] }], B: [1, { jn: [3, { "?": 1 }] }], h: 1 }], I: [4, { "?": [5, { "$?CIs": 1, jn: [6, { "$?CI": 1 }] }], B: [5, { $CIs: 1, jn: [6, { $CI: 1 }] }], C: [3, { "?BINhjn": 1, C: [5, { $CIs: 1, jn: [6, { $CI: 1 }] }], M: [5, { "$?CIs": 1, jn: [6, { "$?CIjn": 1 }] }], V: [1, { fhnsw: [5, { CIs: 1, n: [6, { CI: 1 }] }], j: [5, { j: [6, { CI: 1 }] }] }] }], IV: [5, { $CIs: 1, jn: [6, { $CIn: 1 }] }], M: [5, { "$?CIs": 1, jn: [6, { "$?CIn": 1 }] }], N: [6, { $: [5, { $CIjns: 1 }], "?CINVn": 1, M: [5, { Cs: 1 }], B: [5, { s: 1 }] }], "^": [5, { "$?CIs": 1, jn: [6, { "$?CINjn": 1 }], V: [1, { jn: 1 }] }], jns: 1 }], j: [5, { "$?Ihs": 1, C: [3, { "?BCIMN^hjns": 1, V: [6, { $I: 1, "?": [7, { "$?I": 1 }], B: [7, { CI: 1 }], C: [4, { CIMjn: 1, N: [7, { $V: 1 }] }], M: [4, { C: [7, { "?": 1 }], M: 1 }], N: [7, { $CIVn: 1 }], V: [7, { $Bn: 1, C: [4, { M: 1 }] }], j: [7, { $CVjn: 1 }], n: [7, { BIVn: 1, C: [4, { C: 1 }] }] }] }], j: [6, { "$?CIjn": 1, B: [3, { I: 1 }] }], n: [6, { "$?CIjn": 1, B: [3, { IM: 1 }], V: [3, { Vn: 1 }] }], B: [3, { C: [1, { jn: [6, { "?": 1 }] }], "B^n": 1, j: [4, { I: 1 }] }], M: [3, { I: [1, { j: [4, { "^": 1 }], n: [6, { C: [7, { V: 1 }], I: 1 }] }], N: [1, { jn: [4, { M: 1 }] }], "^": 1 }], V: [3, { C: [1, { j: [4, { "?": 1 }] }], "M^n": 1, V: [4, { "V^": 1 }] }], N: [3, { "IMN^": 1 }] }], n: [5, { "$?CINhs": 1, jn: [6, { "$?BCIVjn": 1 }], M: [3, { I: [1, { j: [4, { M: [6, { C: 1 }] }], n: [6, { C: [4, { M: 1 }], I: 1 }] }], N: [1, { jn: [4, { M: 1 }] }], "^": 1 }], V: [3, { "M^n": 1, V: [4, { "MV^": 1 }] }], B: [3, { "B^n": 1, j: [4, { I: 1 }] }] }], "^hs": 1, M: [5, { "$?CIs": 1, jn: [6, { "$?CINVjns": 1 }], B: [1, { jn: [4, { "?": 1 }] }] }], N: [5, { $CIs: 1, jn: [6, { $CINn: 1 }] }], V: [3, { C: [6, { C: [5, { j: [7, { $: [4, { "?BCIMN^jn": 1 }], C: [4, { "?BCIMN^jns": 1 }], M: [4, { "?": 1 }], B: [4, { "BCIM^": 1 }], N: 1, V: [4, { BCINjn: 1 }], n: [4, { "BCIM^n": 1 }], "?": [4, { CIMn: 1 }], I: [4, { "CIMN^n": 1 }], j: [4, { "CM^": 1 }] }], n: [4, { "?BCIMN^jns": 1, V: [1, { n: 1 }] }], s: [4, { "?BCIMN^jns": 1, V: [1, { fhsw: 1 }] }], h: 1 }], $: [5, { $jns: [4, { "BCIMN^jn": 1 }], "?h": 1 }], j: [4, { BIjn: 1, CM: [5, { jns: 1 }], V: [1, { fhsw: [5, { s: 1 }], j: [5, { j: 1 }], n: [5, { n: 1 }] }] }], n: [4, { "BCIM^n": [5, { jns: 1 }], Nj: 1, V: [1, { fhnsw: [5, { ns: 1 }], j: [5, { j: 1 }] }] }], I: [7, { $: [1, { fhnsw: [5, { ns: 1 }], j: [5, { j: 1 }] }], C: [4, { "CIM^": [5, { jns: 1 }], n: 1 }], IV: [5, { jns: 1 }], M: 1 }], hs: 1, BV: [1, { fhnsw: [5, { s: 1 }] }], "?": [5, { "?jns": 1 }], M: [5, { s: 1 }] }], I: [5, { j: [7, { $C: 1 }], $ns: 1 }], M: 1, N: [6, { C: [7, { M: [5, { Ins: 1 }], $: [5, { jns: 1 }], CN: 1 }], Ij: 1, n: [7, { n: 1 }] }], V: [5, { IVns: 1, j: [6, { C: [7, { $: 1 }], IVn: 1 }] }], j: [5, { j: [7, { $C: 1 }], ns: 1 }], n: [5, { $ns: 1, j: [7, { $C: 1 }] }], "^": [5, { Vns: 1, j: [6, { C: [7, { $: 1 }], V: 1 }] }] }] }], "5": [5, { C: [2, { "?CIM^fhns": 1, V: [4, { "?": 1, C: [3, { C: [6, { "?": 1, M: [7, { "?": 1 }] }], M: 1 }], I: [6, { "?": 1 }], M: [7, { C: [6, { "?": 1 }], "?": 1 }], V: [7, { "?": 1 }], "^": [6, { "?": 1, M: [7, { "?": 1 }] }] }], j: [3, { "?CIM^fhjns": 1, V: [7, { "$?CIVhjns": 1, M: [6, { CMn: 1 }] }] }] }], j: [6, { "$?CIfhs": 1, M: [2, { C: [1, { j: [7, { "$?CIMhjns": 1 }], n: [4, { "?": 1, C: [7, { "?": 1 }], "^": [3, { "?": 1 }] }] }], M: [1, { j: [7, { C: 1 }] }], n: [1, { jn: 1 }], s: 1 }], n: [7, { $CIjn: 1, M: [1, { jn: 1 }] }], V: [2, { M: 1 }], j: [3, { "CM^n": 1 }] }], n: [6, { "$?CIfhs": 1, M: [2, { C: [1, { jn: [7, { "$?CIMhjns": 1 }] }], M: [1, { jn: [7, { C: 1 }] }], jn: [1, { jn: 1 }], s: [1, { fhnsw: 1 }], V: 1 }], n: [7, { $CIjn: 1, M: [1, { jn: 1 }] }], V: [2, { M: 1 }], j: [3, { "CM^n": 1 }] }], "$?Ifhs": 1, M: [2, { j: [1, { j: [6, { $: [3, { C: 1 }], "?CIfhjns": 1, M: [7, { C: 1 }] }], n: [3, { C: [4, { M: [6, { "?": 1 }] }], n: 1 }] }], n: [1, { j: [6, { $: [3, { C: 1 }], "?CIfhjns": 1, M: [7, { C: 1 }] }], n: [6, { "$?CIfhjns": 1, M: [7, { C: 1 }] }] }], s: [1, { fhnsw: 1, j: [7, { "?": 1 }] }], V: 1 }], V: [1, { fhnsw: [2, { s: 1, n: [3, { M: 1 }] }], j: [2, { j: [3, { M: 1 }] }] }] }], "6": [2, { "?fhw": 1, j: [5, { "$?Ifhsw": 1, C: [3, { "?BCIM^fjns": 1, V: [4, { "BMV^jn": 1, C: [7, { C: [6, { "?": 1 }], "?": 1 }] }] }], M: [1, { j: 1, n: [6, { C: [3, { C: [4, { "?": 1 }], "^": 1 }], M: [3, { M: 1 }], "?": 1, n: [4, { C: 1 }] }], fhsw: [3, { "^": 1 }] }], V: [1, { j: [3, { "CM^": 1 }], n: [6, { C: [3, { C: [7, { "?": 1 }], M: 1 }], n: [4, { BIn: 1, CM: [3, { C: 1 }] }], I: [4, { IM: 1 }], j: 1, s: [7, { $: 1 }] }], f: [3, { "^": 1 }] }], n: [6, { $CIjn: 1, M: [1, { jn: 1 }] }], B: [3, { CV: [1, { jn: 1 }], "B^": 1, n: [4, { C: 1 }] }], j: [4, { "BCMV^jn": 1 }] }], n: [5, { "$?CIfhsw": 1, M: [1, { jn: 1, fhsw: [3, { "^": 1 }] }], jn: [6, { $CIVjn: 1, M: [1, { jn: 1 }], B: [3, { C: 1 }] }], B: [3, { "B^": 1, V: [1, { jn: 1 }], n: [4, { C: 1 }] }], V: [1, { fs: [3, { "^": 1 }], jn: [3, { "M^": 1 }], w: [3, { M: 1 }] }] }], s: [5, { "$?BCIMfhjnsw": 1, V: [7, { "$?BCIhjn": 1, M: [1, { fhsw: 1 }], V: [4, { "BCIM^n": 1 }] }] }], C: [5, { "$?CIhs": 1, j: [6, { "$?CIhs": 1, BV: [1, { j: 1 }], M: [1, { j: 1, n: [7, { n: [3, { B: 1 }], "?": 1 }] }], n: [7, { $CIn: 1, M: [1, { jn: 1 }] }], j: [3, { Mn: 1 }] }], n: [6, { "$?CIhjs": 1, BV: [1, { j: 1 }], M: [1, { jn: 1 }], n: [7, { $BCIVn: 1, M: [1, { jn: 1 }] }] }], B: [1, { jn: 1 }], V: [1, { jn: [7, { "?": 1 }] }] }], M: [5, { "$?CIsw": 1, j: [6, { "$?CIVjnw": 1, M: [1, { j: 1, n: [3, { C: [4, { V: 1 }], M: 1 }] }] }], n: [6, { "$?CIVjnw": 1, M: [1, { jn: 1 }] }], B: [1, { jn: [4, { "BCIM^jn": 1 }] }], M: [1, { j: [7, { C: 1 }] }] }], V: [3, { C: [1, { fhsw: [5, { $Is: 1, j: [4, { "?": 1 }], n: [6, { $CIjs: 1, n: [7, { $CIjn: 1 }] }], V: [4, { V: 1 }] }], j: [4, { "?": [6, { $Cn: 1 }], B: [5, { j: [7, { C: 1 }] }], "C^": [7, { "?": 1 }], IM: [5, { j: [6, { Ijn: 1 }] }], V: [5, { j: 1 }], n: [5, { j: [6, { n: 1 }] }] }], n: [5, { $BIVs: 1, j: [4, { "?": 1 }], n: [7, { "$?CIMVj": 1, B: [6, { CI: 1 }], n: [6, { Cjn: 1 }] }] }] }], BIjn: [5, { jns: 1 }], M: 1, V: [6, { $Cn: 1 }], "^": [5, { $jns: 1 }] }], B: [4, { Bjs: 1, C: [3, { BCIVn: 1, M: [6, { $IMjn: 1, B: [1, { fhjsw: 1, n: [7, { C: 1 }] }], C: [5, { C: [7, { $BCIMn: 1 }], Ijns: 1 }], V: [7, { $Ijs: 1, C: [5, { C: 1 }] }] }] }], I: [5, { $Cjns: 1 }], M: [5, { $CIVjns: 1 }], V: [3, { C: [6, { $: [5, { Ij: 1 }], B: [1, { fjs: 1 }], C: [1, { f: [7, { $CMVs: 1 }], h: [7, { $BCMs: 1 }], j: [7, { BCMVs: 1 }], n: [7, { BCs: 1 }], sw: [5, { Cjs: 1 }] }], MV: [1, { fhjsw: 1 }], s: 1, I: [7, { $B: 1, C: [1, { hw: 1 }] }], n: [5, { j: 1, s: [7, { C: 1 }] }] }], In: 1 }], "^n": [5, { $CIjns: 1 }] }], I: [5, { "$?CIs": 1, jn: [6, { "$?CIjn": 1 }], BV: [1, { jn: 1 }] }], "^": [5, { "?BCIMfjns": 1, V: [1, { fhsw: 1 }] }] }] }],
14
+ fold: [{ name: "anusvara", step: "anusvara", blocks: [2304, 2432, 2560, 2688, 2816, 3072, 3200, 3328], virama: 77, anusvara: 2, rows: [[25, 21, 24], [30, 26, 29], [35, 31, 34], [40, 36, 39], [46, 42, 45]] }, { name: "nukta", step: "map", map: { "़": "", "়": "", "਼": "", "઼": "", "଼": "", "஼": "", "఼": "", "಼": "", "഼": "" } }, { name: "as-bn", step: "map", map: { ৰ: "র", ৱ: "ব" } }, { name: "chandrabindu", step: "map", map: { "ँ": "ं", "ঁ": "ং", "ਁ": "ਂ", "ઁ": "ં", "ଁ": "ଂ", "஁": "ஂ", "ఁ": "ం", "ಁ": "ಂ", "ഁ": "ം" } }]
15
+ };
16
+
17
+ // js/normalize.ts
18
+ var DIGITS = "0123456789abcdefghijklmnopqrstuvwxyz";
19
+ var cp = (s) => s.codePointAt(0);
20
+ function compile(r) {
21
+ const invisible = new Map;
22
+ for (const [c, sym2] of Object.entries(r.invisible))
23
+ invisible.set(cp(c), sym2);
24
+ const [LEFT, RIGHT] = r.width;
25
+ const scripts = r.scripts.map(([, ranges], i) => [DIGITS[i], ranges]);
26
+ const classes = new Map;
27
+ for (const [lo, hi, k] of r.classes)
28
+ for (let o = lo;o <= hi; o++)
29
+ classes.set(o, k);
30
+ function scriptOf(c) {
31
+ for (const [d, ranges] of scripts)
32
+ for (const [lo, hi] of ranges)
33
+ if (c >= lo && c <= hi)
34
+ return d;
35
+ return;
36
+ }
37
+ function sym(c) {
38
+ return invisible.get(c) ?? classes.get(c) ?? (scriptOf(c) !== undefined ? "?" : undefined);
39
+ }
40
+ function node(t) {
41
+ if (typeof t === "number")
42
+ return t;
43
+ const kids = new Map;
44
+ for (const [values, child] of Object.entries(t[1])) {
45
+ const n = node(child);
46
+ for (const v of values)
47
+ kids.set(v, n);
48
+ }
49
+ return { f: t[0], kids };
50
+ }
51
+ const tree = node(r.tree);
52
+ function deletes(before, c, after) {
53
+ const nearLeft = [...before].reverse().find((x2) => !invisible.has(x2));
54
+ const nearRight = after.find((x2) => !invisible.has(x2));
55
+ let script;
56
+ for (const x2 of [nearLeft, nearRight])
57
+ if (x2 !== undefined && (script = scriptOf(x2)) !== undefined)
58
+ break;
59
+ if (script === undefined)
60
+ return false;
61
+ const x = [script, invisible.get(c)];
62
+ const left = [];
63
+ for (let i = before.length - 1;i >= 0; i--) {
64
+ const s = sym(before[i]);
65
+ if (s === undefined)
66
+ break;
67
+ left.push(s);
68
+ }
69
+ const right = [];
70
+ for (const a of after) {
71
+ const s = sym(a);
72
+ if (s === undefined)
73
+ break;
74
+ right.push(s);
75
+ }
76
+ for (let i = 0;i < LEFT; i++)
77
+ x.push(left[i] ?? "^");
78
+ for (let i = 0;i < RIGHT; i++)
79
+ x.push(right[i] ?? "$");
80
+ let n = tree;
81
+ while (typeof n !== "number")
82
+ n = n.kids.get(x[n.f]) ?? 0;
83
+ return n === 1;
84
+ }
85
+ const chillu = new Map;
86
+ for (const [from, to] of Object.entries(r.chillu.map))
87
+ chillu.set(cp(from), cp(to));
88
+ const ch = { virama: cp(r.chillu.virama), joiner: cp(r.chillu.joiner), notBefore: cp(r.chillu.not_before) };
89
+ const ra = { virama: cp(r.ra.virama), assamese: cp(r.ra.assamese), bengali: cp(r.ra.bengali) };
90
+ const khanda = { from: Array.from(r.khanda_ta.from, cp), to: cp(r.khanda_ta.to), notBefore: r.khanda_ta.not_before };
91
+ function onePass(text, lang) {
92
+ let s = Array.from(text.normalize("NFC"), cp);
93
+ let out = [];
94
+ for (let i = 0;i < s.length; i++) {
95
+ const to = chillu.get(s[i]);
96
+ if (to !== undefined && (i === 0 || s[i - 1] !== ch.virama) && s[i + 1] === ch.virama && s[i + 2] === ch.joiner && s[i + 3] !== ch.notBefore) {
97
+ out.push(to);
98
+ i += 2;
99
+ } else
100
+ out.push(s[i]);
101
+ }
102
+ const [own, other] = r.ra.assamese_langs.includes(lang ?? "") ? [ra.assamese, ra.bengali] : [ra.bengali, ra.assamese];
103
+ s = out;
104
+ out = [];
105
+ for (let i = 0;i < s.length; i++) {
106
+ if (s[i] === ra.virama && s[i + 1] === other) {
107
+ out.push(ra.virama, own);
108
+ i++;
109
+ } else
110
+ out.push(s[i]);
111
+ }
112
+ s = out;
113
+ out = [];
114
+ const k = khanda.from.length;
115
+ for (let i = 0;i < s.length; i++) {
116
+ const next = s[i + k];
117
+ if (khanda.from.every((c, j) => s[i + j] === c) && !(next !== undefined && khanda.notBefore.some(([lo, hi]) => next >= lo && next <= hi))) {
118
+ out.push(khanda.to);
119
+ i += k - 1;
120
+ } else
121
+ out.push(s[i]);
122
+ }
123
+ s = out;
124
+ out = [];
125
+ for (let i = 0;i < s.length; i++) {
126
+ if (invisible.has(s[i]) && deletes(out.slice(-LEFT), s[i], s.slice(i + 1, i + 1 + RIGHT)))
127
+ continue;
128
+ out.push(s[i]);
129
+ }
130
+ return String.fromCodePoint(...out).normalize("NFC");
131
+ }
132
+ function fixed(pass, text, lang) {
133
+ let s = text;
134
+ for (let i = 0;i < r.max_passes; i++) {
135
+ const t = pass(s, lang);
136
+ if (t === s)
137
+ break;
138
+ s = t;
139
+ }
140
+ return s;
141
+ }
142
+ const steps = r.fold.map((st) => {
143
+ if (st.step === "map") {
144
+ const m = new Map;
145
+ for (const [from, to] of Object.entries(st.map))
146
+ m.set(cp(from), to);
147
+ return (s) => Array.from(s.map((c) => m.get(c) ?? String.fromCodePoint(c)).join(""), cp);
148
+ }
149
+ return (s) => {
150
+ const out = [];
151
+ for (let i = 0;i < s.length; i++) {
152
+ const b = st.blocks.find((b2) => s[i] >= b2 && s[i] < b2 + 128);
153
+ if (b !== undefined && i + 2 < s.length && s[i + 1] === b + st.virama && st.rows.some(([n, lo, hi]) => s[i] === b + n && s[i + 2] >= b + lo && s[i + 2] <= b + hi)) {
154
+ out.push(b + st.anusvara);
155
+ i++;
156
+ } else
157
+ out.push(s[i]);
158
+ }
159
+ return out;
160
+ };
161
+ });
162
+ const normalize = (text, lang) => fixed(onePass, text, lang);
163
+ const foldPass = (text, lang) => {
164
+ let s = Array.from(normalize(text, lang), cp);
165
+ for (const step of steps)
166
+ s = step(s);
167
+ return String.fromCodePoint(...s);
168
+ };
169
+ return { normalize, fold: (text, lang) => fixed(foldPass, text, lang) };
170
+ }
171
+ var engine = compile(rules_default);
172
+ var RULES_VERSION = rules_default.version;
173
+ function normalize(text, lang) {
174
+ return engine.normalize(text, lang);
175
+ }
176
+ function fold(text, lang) {
177
+ return engine.fold(text, lang);
178
+ }
179
+ export {
180
+ normalize,
181
+ fold,
182
+ RULES_VERSION
183
+ };