@finbheara/names 0.9.0 → 0.9.2

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.
Files changed (26) hide show
  1. package/dist/chunks/{index-bqx4wpkm.js → index-0qptxnwh.js} +14 -14
  2. package/dist/chunks/{index-bqx4wpkm.js.map → index-0qptxnwh.js.map} +1 -1
  3. package/dist/chunks/{index-dcv3p1rw.js → index-0vg56t5v.js} +3 -3
  4. package/dist/chunks/{index-m0f6bgr9.js → index-2fsdvhaf.js} +2 -2
  5. package/dist/chunks/{index-bpp2rfg7.js → index-852w8w1s.js} +3 -3
  6. package/dist/chunks/{index-zfa3bxce.js → index-d4wr471g.js} +2 -2
  7. package/dist/chunks/{index-qmq4wyez.js → index-fzzq5txh.js} +2 -2
  8. package/dist/chunks/{index-jmc5eejg.js → index-knrkej0f.js} +23 -5
  9. package/dist/chunks/{index-jmc5eejg.js.map → index-knrkej0f.js.map} +2 -2
  10. package/dist/chunks/phrase-dczgr4vs.js +11 -0
  11. package/dist/classifier/index.js +3 -3
  12. package/dist/cli/census.js +4 -4
  13. package/dist/index.js +7 -7
  14. package/dist/lexicon/index.js +1 -1
  15. package/dist/measure/index.js +4 -4
  16. package/dist/normalize/index.js +4 -4
  17. package/docs/NAME-NORMALIZATION.md +7 -0
  18. package/names.txt +12 -12
  19. package/package.json +1 -1
  20. package/dist/chunks/phrase-rbxwzwn9.js +0 -11
  21. /package/dist/chunks/{index-dcv3p1rw.js.map → index-0vg56t5v.js.map} +0 -0
  22. /package/dist/chunks/{index-m0f6bgr9.js.map → index-2fsdvhaf.js.map} +0 -0
  23. /package/dist/chunks/{index-bpp2rfg7.js.map → index-852w8w1s.js.map} +0 -0
  24. /package/dist/chunks/{index-zfa3bxce.js.map → index-d4wr471g.js.map} +0 -0
  25. /package/dist/chunks/{index-qmq4wyez.js.map → index-fzzq5txh.js.map} +0 -0
  26. /package/dist/chunks/{phrase-rbxwzwn9.js.map → phrase-dczgr4vs.js.map} +0 -0
@@ -5518,7 +5518,7 @@ Desmarteaux:L
5518
5518
  Desmond:M
5519
5519
  DeSocio:L
5520
5520
  DeSousa:L
5521
- Desouza:L
5521
+ DeSouza:L
5522
5522
  DeSpain:L
5523
5523
  Despot:LC
5524
5524
  Desrosiers:L
@@ -5696,7 +5696,7 @@ Dina:F
5696
5696
  Dinah:F
5697
5697
  Dinapoli:L
5698
5698
  Dinara:F
5699
- Dinardo:L
5699
+ DiNardo:L
5700
5700
  Dine:L
5701
5701
  Dineen:L
5702
5702
  Dingman:L
@@ -5736,7 +5736,7 @@ Disler:L
5736
5736
  Dismuke:L
5737
5737
  Diss:L
5738
5738
  Disse:L
5739
- Distefano:L
5739
+ DiStefano:L
5740
5740
  District:T
5741
5741
  District of Columbia:BG
5742
5742
  Ditchman:LC
@@ -13457,7 +13457,7 @@ Macri:L
13457
13457
  MacRitchie:L4
13458
13458
  MacRobbie:L4
13459
13459
  MacRuairi:L4
13460
- Macshane:L
13460
+ MacShane:L
13461
13461
  MacSweeney:L4
13462
13462
  Mactir:LT
13463
13463
  MacTough:L4
@@ -14174,7 +14174,7 @@ McAleese:L
14174
14174
  McAlevey:L
14175
14175
  McAlexander:L4
14176
14176
  McAlinden:L4
14177
- Mcaliney:L
14177
+ McAliney:L
14178
14178
  McAlister:L
14179
14179
  McAllaster:L4
14180
14180
  McAllister:L4
@@ -14183,7 +14183,7 @@ McAloon:L
14183
14183
  McAlpine:L
14184
14184
  McAnally:L4
14185
14185
  McAnaney:L
14186
- Mcananney:L
14186
+ McAnanney:L
14187
14187
  McAndless:L4
14188
14188
  McAndrew:L4
14189
14189
  McAnespy:L4
@@ -14264,7 +14264,7 @@ McCleave:L4
14264
14264
  McClellan:L4
14265
14265
  McClelland:L
14266
14266
  McCleney:L
14267
- Mccleverty:L
14267
+ McCleverty:L
14268
14268
  McClintock:L4
14269
14269
  McClish:L4
14270
14270
  McClone:L4
@@ -14284,7 +14284,7 @@ McColm:L4
14284
14284
  McComas:L4
14285
14285
  McComb:L4
14286
14286
  McCombe:L4
14287
- Mccomber:L
14287
+ McComber:L
14288
14288
  McCombs:L4
14289
14289
  McComiskey:L
14290
14290
  McConachie:L4
@@ -14460,7 +14460,7 @@ McGoldrick:L4
14460
14460
  McGonagle:LT4
14461
14461
  McGonigal:L4
14462
14462
  McGonigle:L4
14463
- Mcgoohan:L
14463
+ McGoohan:L
14464
14464
  McGorisk:L
14465
14465
  McGorray:L
14466
14466
  McGorry:L
@@ -14606,7 +14606,7 @@ McManimon:L4
14606
14606
  McManis:L4
14607
14607
  McMannon:L4
14608
14608
  McManus:L4
14609
- Mcmartin:L
14609
+ McMartin:L
14610
14610
  McMaster:L4
14611
14611
  McMeekin:L4
14612
14612
  McMenamin:L4
@@ -14636,7 +14636,7 @@ McNall:L4
14636
14636
  McNally:L4
14637
14637
  McNamara:LT4
14638
14638
  McNamee:L4
14639
- Mcnatt:L
14639
+ McNatt:L
14640
14640
  McNaughton:L4
14641
14641
  McNea:L
14642
14642
  McNeel:L4
@@ -14696,7 +14696,7 @@ McSwain:L4
14696
14696
  McSweeney:L
14697
14697
  McSwiggan:L
14698
14698
  McSwiggen:L4
14699
- Mctaggart:L
14699
+ McTaggart:L
14700
14700
  McTague:L4
14701
14701
  McTavish:L4
14702
14702
  McTeggart:LT4
@@ -23900,5 +23900,5 @@ class Lexicon2 {
23900
23900
 
23901
23901
  export { CLASS_FLAGS2, MARK_FLAGS2, CLASSIFICATION_FLAGS2, TRADITION_FLAGS2, TRADITION_NAMES2, classesOf2, isSurname2, isGiven2, isFemale2, isMale2, isNeutral2, isAmbiguous2, isPlace2, isTradename2, isConcept2, isMultiWord2, isSuspicious2, isRoundTripException2, isPerson2, traditionOf2, toAscii2, isAscii2, APOSTROPHE_CHARS2, normalizeApostrophes2, lexiconKey2, lookupKey2, displaySpellings2, NAMES_TXT2, parseEntries2, Lexicon2 };
23902
23902
 
23903
- //# debugId=878E19181161A7B164756E2164756E21
23904
- //# sourceMappingURL=index-bqx4wpkm.js.map
23903
+ //# debugId=701A828D343F805E64756E2164756E21
23904
+ //# sourceMappingURL=index-0qptxnwh.js.map
@@ -13,6 +13,6 @@
13
13
  "/**\n * `names.txt` — its own format parsed. THE ONE PARSER: every reader of the file,\n * here and downstream, goes through `parseEntries`.\n *\n * THE FORMAT IS THE FILE'S OWN HEADER'S: `Name:FLAGS`, one per line, `#` a\n * comment, a flagless line legal (and read as `F`, see `./flags.ts`). Nothing\n * here interprets a flag; `FLAGS` is handed back as the file spells it.\n *\n * THE SPLIT IS ON THE FIRST COLON. A name never contains a colon and a flag\n * string never does either, so on a well-formed line first and last agree; on a\n * malformed one (`A:B:C`) the first-colon read keeps the name intact and puts the\n * garbage in the flags, where `./flags.ts` ignores the letters it does not issue\n * and the CLI's `set` warns. A last-colon read would instead invent a name.\n *\n * BOTH SIDES ARE TRIMMED, so trailing whitespace or a CRLF checkout cannot turn\n * `L` into `L\\r` and silently fail every flag test.\n */\n\n/** One line of the file: what it spells, what it claims, and where it is. */\nexport interface NameEntry {\n\t/** the spelling, verbatim */\n\treadonly name: string;\n\t/** the flag letters and digits after the colon, verbatim; `\"\"` where the line carries none */\n\treadonly flags: string;\n\t/** 1-based line number, so a report addresses `names.txt:<line>` */\n\treadonly line: number;\n}\n\n/**\n * Every entry in the file's text, in file order.\n *\n * A comment and a blank line are skipped and NOT counted as entries, but the\n * line number is the real one: a caller's report has to address the file a\n * person opens.\n */\nexport function parseEntries(text: string): NameEntry[] {\n\tconst out: NameEntry[] = [];\n\tfor (const [i, raw] of text.split(\"\\n\").entries()) {\n\t\tif (raw.startsWith(\"#\") || raw.trim() === \"\") continue;\n\t\tconst at = raw.indexOf(\":\");\n\t\tconst name = (at === -1 ? raw : raw.slice(0, at)).trim();\n\t\tif (name === \"\") continue;\n\t\tout.push({ name, flags: at === -1 ? \"\" : raw.slice(at + 1).trim(), line: i + 1 });\n\t}\n\treturn out;\n}\n"
14
14
  ],
15
15
  "mappings": "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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChJD,IAAM,aAAoB;;;ACyB1B,SAAS,aAAY,CAAC,MAA2B;AAAA,EACvD,MAAM,MAA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",
16
- "debugId": "878E19181161A7B164756E2164756E21",
16
+ "debugId": "701A828D343F805E64756E2164756E21",
17
17
  "names": []
18
18
  }
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  lookupKey2,
3
3
  Lexicon2
4
- } from "./index-bqx4wpkm.js";
4
+ } from "./index-0qptxnwh.js";
5
5
  import {
6
6
  lexiconNameOrder,
7
7
  defaultPersonNameFactory2
8
- } from "./index-qmq4wyez.js";
8
+ } from "./index-fzzq5txh.js";
9
9
  import {
10
10
  isNameParticle2
11
11
  } from "./index-23rzmwe2.js";
@@ -134,4 +134,4 @@ function createNameCensus2(options = {}) {
134
134
  export { createNameCensus2 };
135
135
 
136
136
  //# debugId=42B6EBFD51EC241764756E2164756E21
137
- //# sourceMappingURL=index-dcv3p1rw.js.map
137
+ //# sourceMappingURL=index-0vg56t5v.js.map
@@ -3,7 +3,7 @@ import {
3
3
  isAmbiguous2,
4
4
  isPlace2,
5
5
  isTradename2
6
- } from "./index-bqx4wpkm.js";
6
+ } from "./index-0qptxnwh.js";
7
7
 
8
8
  // src/lexicon/place.ts
9
9
  var JOINING_COMMA = /(?<=[^\s,]),(?=[^\s,])/g;
@@ -24,4 +24,4 @@ function isPlacePhrase(phrase, getFlags) {
24
24
  export { splitWords, FIELD_END, isPlaceWordFlags, isPlacePhrase };
25
25
 
26
26
  //# debugId=A9815F8EF12D8D4964756E2164756E21
27
- //# sourceMappingURL=index-m0f6bgr9.js.map
27
+ //# sourceMappingURL=index-2fsdvhaf.js.map
@@ -2,12 +2,12 @@ import {
2
2
  lexiconKey2,
3
3
  lookupKey2,
4
4
  Lexicon2
5
- } from "./index-bqx4wpkm.js";
5
+ } from "./index-0qptxnwh.js";
6
6
  import {
7
7
  splitWords,
8
8
  FIELD_END,
9
9
  isPlacePhrase
10
- } from "./index-m0f6bgr9.js";
10
+ } from "./index-2fsdvhaf.js";
11
11
  import {
12
12
  TEAM_DESIGNATION_WORDS2,
13
13
  partitionTeamSuffix2,
@@ -2798,4 +2798,4 @@ function phraseClassifier2(names = Lexicon2.default(), options = {}) {
2798
2798
  export { CONNECTORS2, SCHOOL_KEYWORDS2, isStopword2, createSegmenter2, createClassifier2, phraseClassifier2 };
2799
2799
 
2800
2800
  //# debugId=6A3E8AB61D184D7064756E2164756E21
2801
- //# sourceMappingURL=index-bpp2rfg7.js.map
2801
+ //# sourceMappingURL=index-852w8w1s.js.map
@@ -6,7 +6,7 @@ import {
6
6
  isPlace2,
7
7
  isTradename2,
8
8
  isMultiWord2
9
- } from "./index-bqx4wpkm.js";
9
+ } from "./index-0qptxnwh.js";
10
10
  // src/measure/classifier-eval.ts
11
11
  function prng(seed) {
12
12
  let a = seed >>> 0;
@@ -88,4 +88,4 @@ function evaluateClassifier2(classifier, set, examples = 10) {
88
88
  export { composeEvalSet2, evaluateClassifier2 };
89
89
 
90
90
  //# debugId=88988FDC2AE4309964756E2164756E21
91
- //# sourceMappingURL=index-zfa3bxce.js.map
91
+ //# sourceMappingURL=index-d4wr471g.js.map
@@ -3,7 +3,7 @@ import {
3
3
  normalizeApostrophes2,
4
4
  lexiconKey2,
5
5
  Lexicon2
6
- } from "./index-bqx4wpkm.js";
6
+ } from "./index-0qptxnwh.js";
7
7
  import {
8
8
  canonicalTeamName2,
9
9
  isTeamPrint2
@@ -1058,4 +1058,4 @@ function personNameFromIcao2(icao, print) {
1058
1058
  export { NAME_REFUSED2, stripEveryAside2, stripTrailingCredentials2, scrubNameDetail2, scrubName2, foldNameKey2, nameFold2, PLATFORM_PLACEHOLDERS2, NAME_PLACEHOLDERS2, isPlaceholderPrint2, isNoNamePrint2, COMPOUND_SURNAMES2, isCompoundSurname2, spaceAfterComma2, isNameSuffix, tokenize, inferNameOrder2, commaReading2, lexiconNameOrder, resolveNameOrder2, splitPersonName2, classifyCell2, capitalise2, nameCase2, SURNAME_SEPARATOR2, GIVEN_SEPARATOR2, titleCaseNamePart2, spellingLookup2, parsePersonName2, formatPersonDisplay2, personDisplayName2, NAME_TRADITIONS2, traditionFromIndex2, isIcaoName2, levelOf2, givenKeyAbbreviates2, givenAbbreviates2, PersonName2, DEFAULT_PERSON_NAME_CAPACITY2, traditionLookupOf2, createPersonNameFactory2, createCachingPersonNameFactory2, defaultPersonNameFactory2, personName2, personNameFromIcao2 };
1059
1059
 
1060
1060
  //# debugId=49F5F13DC88ECCC664756E2164756E21
1061
- //# sourceMappingURL=index-qmq4wyez.js.map
1061
+ //# sourceMappingURL=index-fzzq5txh.js.map
@@ -3,7 +3,7 @@ import {
3
3
  isGiven2,
4
4
  isAmbiguous2,
5
5
  Lexicon2
6
- } from "./index-bqx4wpkm.js";
6
+ } from "./index-0qptxnwh.js";
7
7
  import {
8
8
  nameFold2,
9
9
  isPlaceholderPrint2,
@@ -13,10 +13,10 @@ import {
13
13
  commaReading2,
14
14
  levelOf2,
15
15
  defaultPersonNameFactory2
16
- } from "./index-qmq4wyez.js";
16
+ } from "./index-fzzq5txh.js";
17
17
  import {
18
18
  isPlaceWordFlags
19
- } from "./index-m0f6bgr9.js";
19
+ } from "./index-2fsdvhaf.js";
20
20
  import {
21
21
  isTeamPrint2
22
22
  } from "./index-0phgwy52.js";
@@ -94,11 +94,14 @@ var given_diminutives_default = {
94
94
  "the two names."
95
95
  ],
96
96
  families: {
97
+ ABIGAIL: ["ABBY", "ABBIE"],
97
98
  AIDAN: ["AIDEN", "AODHAN", "AIDY"],
98
99
  ALEXANDER: ["ALEX", "ALEC", "SANDY", "XANDER", "ALEXANDRA", "ALEXA", "LEXI", "LEXIE"],
100
+ AMANDA: ["MANDY"],
99
101
  ANDREW: ["ANDY"],
100
102
  ANNE: ["ANN", "ANNA", "ANNIE", "NANCY", "NAN", "ANYA"],
101
103
  ANTHONY: ["TONY"],
104
+ BARBARA: ["BARB"],
102
105
  BRIDGET: ["BRIDIE", "BRID", "BRIGID", "BRIGHID", "BREDA", "BREEDA", "BIDDY"],
103
106
  CAITLIN: ["CAITLYN", "KAITLIN", "KAITLYN", "KATELYN", "CAIT"],
104
107
  CATHERINE: [
@@ -119,13 +122,18 @@ var given_diminutives_default = {
119
122
  CHRISTOPHER: ["CHRIS", "KIT", "TOPHER"],
120
123
  CIARA: ["KIERA", "KEIRA", "CIARRA"],
121
124
  CIARAN: ["KIERAN", "KEIRAN"],
125
+ CYNTHIA: ["CINDY"],
122
126
  DANIEL: ["DAN", "DANNY", "DANIELLE", "DANI"],
127
+ DEBORAH: ["DEBRA", "DEBBIE", "DEB"],
123
128
  DEIRDRE: ["DEE", "DIDI"],
129
+ DOROTHY: ["DOT", "DOTTIE"],
124
130
  EDWARD: ["ED", "EDDIE", "TED", "TEDDY", "NED"],
125
131
  EILEEN: ["EILISH", "EILIS", "AILEEN"],
126
132
  ELIZABETH: ["LIZ", "LIZZIE", "BETH", "BETSY", "BETTY", "ELIZA", "LIBBY", "ELSIE", "ELISE"],
127
133
  EOIN: ["OWEN", "EOGHAN"],
134
+ FIONNUALA: ["FIONNULA", "FINOLA", "NUALA"],
128
135
  FRANCIS: ["FRANK", "FRANKIE", "FRAN", "FRANCES"],
136
+ GILLIAN: ["GILL"],
129
137
  GRAINNE: ["GRANIA", "GRACE", "GRAINE"],
130
138
  JACQUELINE: ["JACKIE"],
131
139
  JAMES: ["JIM", "JIMMY", "JAMIE", "SEAMUS", "JAY"],
@@ -133,6 +141,7 @@ var given_diminutives_default = {
133
141
  JOHN: ["JACK", "JOHNNY", "SEAN", "SHANE", "JOHNNIE", "EOIN"],
134
142
  JOSEPH: ["JOE", "JOEY", "JOSEPHINE", "JO"],
135
143
  JUDITH: ["JUDY"],
144
+ KIMBERLY: ["KIMBERLEY", "KIM"],
136
145
  MARGARET: [
137
146
  "MAGGIE",
138
147
  "PEGGY",
@@ -150,8 +159,10 @@ var given_diminutives_default = {
150
159
  MICHAEL: ["MIKE", "MICK", "MICKEY", "MICHEAL", "MICHELLE", "MICHAELA"],
151
160
  NICHOLAS: ["NICK", "NICKY", "NICOLE", "NICOLA", "NIKKI"],
152
161
  NIAMH: ["NEVE", "NEEVE"],
162
+ PAMELA: ["PAM"],
153
163
  PATRICK: ["PAT", "PADDY", "PADRAIG", "PATSY", "PATRICIA", "TRICIA", "TRISH", "PATTY"],
154
164
  PETER: ["PETE", "PEADAR"],
165
+ PHILIPPA: ["PIPPA"],
155
166
  RAYMOND: ["RAY"],
156
167
  REBECCA: ["BECKY", "BECCA", "BEX"],
157
168
  RICHARD: ["RICK", "RICKY", "DICK", "RICH", "RICHIE"],
@@ -160,11 +171,15 @@ var given_diminutives_default = {
160
171
  SIOBHAN: ["SHIVAUN", "CHEVONNE", "SIOBHAIN"],
161
172
  STEPHEN: ["STEVEN", "STEVE", "STEPHANIE", "STEPH"],
162
173
  SUSAN: ["SUE", "SUSIE", "SUZANNE", "SUZY"],
174
+ TERESA: ["THERESA", "TESS"],
163
175
  THOMAS: ["TOM", "TOMMY", "TOMAS", "THOM"],
176
+ VICTORIA: ["VICKY", "VICKI"],
164
177
  VINCENT: ["VINNIE"],
165
178
  WILLIAM: ["WILL", "BILL", "BILLY", "WILLIE", "LIAM"]
166
179
  },
167
180
  notAtGate: [
181
+ "ABBIE",
182
+ "ABBY",
168
183
  "ALEXA",
169
184
  "ALEXANDRA",
170
185
  "ANNA",
@@ -187,6 +202,7 @@ var given_diminutives_default = {
187
202
  "JO",
188
203
  "JOSEPHINE",
189
204
  "KATHLEEN",
205
+ "KIM",
190
206
  "LEXI",
191
207
  "LEXIE",
192
208
  "LIAM",
@@ -206,6 +222,7 @@ var given_diminutives_default = {
206
222
  "NICOLA",
207
223
  "NICOLE",
208
224
  "NIKKI",
225
+ "NUALA",
209
226
  "OWEN",
210
227
  "PADRAIG",
211
228
  "PATRICIA",
@@ -221,6 +238,7 @@ var given_diminutives_default = {
221
238
  "STEPH",
222
239
  "STEPHANIE",
223
240
  "SUZANNE",
241
+ "TESS",
224
242
  "TOMAS",
225
243
  "TRICIA",
226
244
  "TRISH"
@@ -1340,5 +1358,5 @@ function deriveNameFormat2(prints, options = {}) {
1340
1358
  }
1341
1359
  export { repairMojibake2, sameGivenFamily2, comparePosition2, nameRelation2, nameCompare2, probablySame2, createNameSet2, createNameMap2, createNameClusters2, MAX_READINGS2, surnameParts2, printAttestsOrder2, nameReadings2, meetReading2, refinesReading2, sameReading2, chooseReadingPair2, composeReadings2, composeNames2, meetReadings2, nameMeet2, showReading2, blockKeysOfReadings2, nameBlockKeys2, namesFeasible2, INFEASIBLE_CLASSES2, editDistance2, nearSpelling2, compoundGiven2, middleForm2, infeasibleClass2, isListJoiner2, personList2, NAME_FORMATS2, nameFormatOrder2, ORDER_READINGS2, readNameCell2, DEFAULT_NAME_FORMAT_THRESHOLD2, deriveNameFormat2 };
1342
1360
 
1343
- //# debugId=82AC2FB0D34BD09D64756E2164756E21
1344
- //# sourceMappingURL=index-jmc5eejg.js.map
1361
+ //# debugId=A94FC7266AE0EB2964756E2164756E21
1362
+ //# sourceMappingURL=index-knrkej0f.js.map
@@ -11,7 +11,7 @@
11
11
  "/**\n * person-list.ts — THE PEOPLE A PRINTED TEACHER LIST NAMES, each one a `PersonName`.\n *\n * A directory prints its teachers as one value more often than as one value per person:\n * `Kate & Katie Mailtina`, `Julie Mailtina, TCRG & Fiona Lillick, TCRG`, `Kevin, Helena, Leona\n * ADCRG, Sinead Corrbeg TCRG`. Handed to `personName` whole, such a value parses as ONE\n * person, and every name after the first lands in the middles: `Kate & Anthony Mailtina`\n * reads `Mailtina<<Kate<&<Anthony`, whose first given is `Kate` and whose middle is `Anthony`.\n * A gate that forgives a middle one side prints then meets `Mailtina, Kate` through a\n * middle name that is really a second person. This reader is the fix at the source: the\n * value is read into its people first, and each person is parsed on its own (`personName`\n * once per person), so no second name is ever a middle.\n *\n * IT IS A GIVEN-FIRST READER, and the order is not a parameter. The comma in a directory's\n * teacher value separates people or precedes letters (`Julie Mailtina, TCRG`); measured over a\n * large results corpus, 0 of 3,371 teacher mentions prints `Surname, Given`.\n * A caller holding a surname-first cell reads it with `personName(print, \"surname-first\")`\n * and never with this.\n *\n * WHAT SEPARATES TWO PEOPLE: `&`, a spaced `and`, a comma, a semicolon and a spaced slash.\n *\n * WHAT IS NOT A PERSON: letters. A member is cut at its first LETTERS token, which is a\n * credential or a degree (`TCRG`, `ADCRG/TCRG`, `A.D.C.R.G.`, `Ph.D.`, `Esq.`), an\n * all-capitals token after the name has begun in a print that is not itself all capitals,\n * or a token carrying a digit (a phone number). What follows the letters is not the name\n * either (`Kate O'Kysko, TCRG Bristol`), and a member that is only letters names nobody.\n * A caption before the name (`Teacher:`) and a style (`Dr.`) are not the name either.\n *\n * A SHARED SURNAME IS READ, NEVER GUESSED. A member of one name token (`Kate`, `Leona`) is\n * a given name whose surname the list prints once, on the next member that has one:\n * `Kate & Katie Mailtina` is Kate Mailtina and Katie Mailtina, and `Kevin, Helena, Leona ADCRG,\n * Sinead Corrbeg TCRG` is four Corrbegs. The surname is the donor's own parsed surname,\n * particles and all, so `Livia & Ann De Histow` lends `De Histow` and not `Histow`. A lone given\n * name with no full name after it (`Carole, Patricia, Conor`) names nobody this reader\n * can read, and is dropped rather than parsed as a surname.\n *\n * A VALUE THAT IS NOT A LIST IS ONE VALUE. Where any member runs past four name tokens the\n * value is prose (idm prints paragraphs), and it is returned as the one person the producer\n * delimited, exactly as `personName(print, \"given-first\")` reads it. Cutting a paragraph at\n * its commas would mint a person out of every clause.\n */\n\nimport { type PersonName, type PersonNameFactory, defaultPersonNameFactory } from \"./factory.ts\";\n\n/** One person a list names. */\nexport interface ListedPerson {\n\t/** the member as printed, letters cut off: a verbatim slice of the value */\n\tprinted: string;\n\t/** the member parsed, with the list's shared surname where it borrowed one */\n\tname: PersonName;\n\t/** the surname borrowed from a later member, as that member printed it, or `null` */\n\tsurnameFrom: string | null;\n}\n\n/** The tokens that join two people in a list, standing alone as a name field. */\nconst JOINERS: ReadonlySet<string> = new Set([\"&\", \"and\", \"+\"]);\n\n/**\n * Is this printed name field a list joiner (`&`, `and`, `+`)? A parsed name that carries\n * one as a given field is two people read as one, and `personList` is how to read it.\n */\nexport function isListJoiner(field: string): boolean {\n\treturn JOINERS.has(field.trim().toLocaleLowerCase());\n}\n\n/** Where one person ends and the next begins. */\nconst SEPARATOR = /\\s*[&;,]\\s*|\\s+\\/\\s+|\\s+and\\s+|\\s+\\+\\s+/giu;\n\n/**\n * Letters that name nobody wherever they stand, dots removed, lower case: the CLRG\n * credentials the directories print (with the spellings they print them in), and degrees.\n */\nconst LETTERS: ReadonlySet<string> = new Set([\n\t\"adcrg\",\n\t\"adcg\",\n\t\"adcrn\",\n\t\"bg\",\n\t\"bgcrg\",\n\t\"odcrn\",\n\t\"sdcrg\",\n\t\"tcg\",\n\t\"tcrg\",\n\t\"tmcrn\",\n\t\"tmrf\",\n\t\"phd\",\n\t\"esq\",\n\t\"jd\",\n]);\n\n/** A style printed before a name, which is not a given name. Dots removed, lower case. */\nconst TITLES: ReadonlySet<string> = new Set([\"dr\", \"mr\", \"mrs\", \"ms\", \"miss\"]);\n\n/** The most name tokens a member of a list carries before the value reads as prose. */\nconst MAX_NAME_TOKENS = 4;\n\nconst EDGE = /^[(\"“'‘[]+|[)\"”'’\\].:]+$/gu;\n\n/** A token's letters, edges and dots removed; for `ADCRG/TCRG` the first piece. */\nconst bareOf = (token: string): string =>\n\t(token.replace(EDGE, \"\").split(\"/\")[0] as string).replace(/\\./gu, \"\");\n\n/**\n * Is this token letters (a credential, a degree, a phone number) rather than a name? A\n * known credential is letters anywhere; any other all-capitals token only after a name has\n * begun, so `JR Nirnirvo` and `KT Quellane` keep their initials.\n */\nfunction isLetters(token: string, begun: boolean, allCaps: boolean): boolean {\n\tif (/\\p{N}/u.test(token)) return true;\n\tconst bare = bareOf(token);\n\tif (bare === \"\" || LETTERS.has(bare.toLocaleLowerCase())) return true;\n\treturn begun && !allCaps && bare.length >= 2 && /^\\p{Lu}+$/u.test(bare);\n}\n\n/**\n * A member's name tokens: everything before its first letters token, after any caption\n * (`Teacher:`, `TCRG's:`) and any leading style (`Dr.`).\n */\nfunction nameTokens(member: string, allCaps: boolean): string[] {\n\tlet out: string[] = [];\n\tfor (const t of member.split(/\\s+/u)) {\n\t\tif (t === \"\") continue;\n\t\tif (t.endsWith(\":\")) {\n\t\t\tout = [];\n\t\t\tcontinue;\n\t\t}\n\t\tif (isLetters(t, out.length > 0, allCaps)) {\n\t\t\tif (out.length > 0) break;\n\t\t\tcontinue;\n\t\t}\n\t\tif (out.length === 0 && TITLES.has(bareOf(t).toLocaleLowerCase())) continue;\n\t\tout.push(t);\n\t}\n\treturn out;\n}\n\n/** The surname a parsed name prints, particles included, as one string. */\nconst surnamePrint = (p: PersonName): string =>\n\t[...p.surname.particles, p.surname.base].filter((s) => s !== \"\").join(\" \");\n\n/**\n * The people a given-first teacher value names, in print order. See the module docblock\n * for what separates them, what is cut as letters and how a shared surname is read.\n */\nexport function personList(\n\tprint: string,\n\tfactory: PersonNameFactory = defaultPersonNameFactory(),\n): ListedPerson[] {\n\tconst allCaps = !/\\p{Ll}/u.test(print);\n\tconst members = print\n\t\t.split(SEPARATOR)\n\t\t.map((m) => nameTokens(m, allCaps))\n\t\t.filter((tokens) => tokens.length > 0);\n\tif (members.length === 0) return [];\n\tconst whole = (): ListedPerson[] => [\n\t\t{ printed: print.trim(), name: factory.parse(print, \"given-first\"), surnameFrom: null },\n\t];\n\tif (members.some((tokens) => tokens.length > MAX_NAME_TOKENS)) return whole();\n\n\tconst out: ListedPerson[] = [];\n\tlet pending: string[] = [];\n\tfor (const tokens of members) {\n\t\tconst printed = tokens.join(\" \");\n\t\tif (tokens.length === 1) {\n\t\t\tpending.push(printed);\n\t\t\tcontinue;\n\t\t}\n\t\tconst name = factory.parse(printed, \"given-first\");\n\t\tconst surname = name.isPerson() ? surnamePrint(name) : \"\";\n\t\tif (surname !== \"\")\n\t\t\tfor (const given of pending)\n\t\t\t\tout.push({\n\t\t\t\t\tprinted: given,\n\t\t\t\t\tname: factory.parse(`${given} ${surname}`, \"given-first\"),\n\t\t\t\t\tsurnameFrom: surname,\n\t\t\t\t});\n\t\tpending = [];\n\t\tout.push({ printed, name, surnameFrom: null });\n\t}\n\treturn out;\n}\n",
12
12
  "/**\n * name-format.ts — which order a COLLECTION of printed names uses, and whether its name\n * cells also carry a school or a place, as probabilities.\n *\n * ## One print, then many\n *\n * `readNameCell` reads one printed name cell: which part is the name, which part (if\n * any) is a school or a place, how its comma reads, and which order the lexicon reads\n * its name part in. `deriveNameFormat` scores those readings over a collection, and\n * `deriveNameFormat([print])` is the one-print answer in the same shape.\n *\n * The collection is a DOCUMENT: one results sheet, one roster, one column. Deciding\n * what a document is (grouping rows by source, by event, by year), corroborating a\n * reading across documents, and hand-written declarations stay with the caller. A\n * derived format is a declaration the caller makes about a document, never a guess\n * about one print: hand it to `splitPersonName` (via `nameFormatOrder`) and to the\n * classifier as the document's order.\n *\n * ## The three formats\n *\n * - `First Last`: given-first (`Zelvine Quorrish`);\n * - `Last, First`: surname-first with a separator comma (`Quorrish, Zelvine`);\n * - `Last First`: surname-first with no comma (`QUORRISH ZELVINE`).\n *\n * `inferNameOrder` reads one print by its comma, so it reads `Last First` as\n * given-first. The token-position reading below is the only signal that sees it.\n *\n * ## How a print's commas are read\n *\n * A comma may be an order separator (`Quorrish, Zelvine`), a place delimiter\n * (`Zelvine Quorrish, Zandrel`), school glue (`Zelvine Quorrish, Quorrish Academy`), a\n * suffix delimiter (`Ydris Vantrell, Jr.`) or stray punctuation. The place and the\n * school are cut off first, each consuming the comma before it, and the comma that is\n * left is read by `commaReading`, the rule `inferNameOrder` reads one print with. A\n * print with a separator comma is not also read for token position.\n *\n * - A PLACE is a trailing field after a spaced dash, a comma (after a name of two or\n * more tokens), or inside a trailing parenthesis, every word of which the lexicon\n * flags as a place (`isPlaceWordFlags`, the classifier's place-phrase rule). After a\n * `:` (the name + school + region glue), the tail's trailing place fields are the\n * place and whatever precedes them is a school.\n * - A SCHOOL is the part after a `:` that is not a place, the row's own school cell\n * where the name cell prints it again at its end, or what the injected segmenter\n * (`createSegmenter` from `@finbheara/names/classifier`, built on the same lexicon\n * as `options.lexicon`) reads after the person span. This module never imports the\n * classifier; with neither a segmenter nor a row school, `hasSchool` is `null`.\n *\n * ## Token position against the lexicon\n *\n * A two-token name part with no separator comma is read against `names.txt`: a token\n * is GIVEN-ONLY (`F`/`M`/`N`, no `L`/`A`) or SURNAME-ONLY (`L`, no `F`/`M`/`N`/`A`),\n * and the print reads given-first or surname-first where one of each sits at either\n * end. Where one token is settled and the other is absent from the lexicon, the\n * settled token orients the print alone: the ONE-TOKEN reading, its own class because\n * it is noisier. A token the lexicon does not settle contributes nothing. The lexicon\n * is keyed case-insensitively, so `QUORRISH ZELVINE` and `Quorrish Zelvine` read the\n * same.\n *\n * ## Probabilistic, not a vote\n *\n * Each read print is scored independently under each format: whether it carries a\n * separator comma, and, for a lexicon reading, which way it points GIVEN its class.\n * The class itself is not scored, because how many prints the lexicon can read is a\n * fact about its coverage, not about order; so each print consistent with a format\n * can only raise that format. Smoothing keeps a small collection near uniform. Because\n * the prints are scored independently, a large collection is confident even when it\n * prints both orders; the separate MIXED test (a binomial test of the dissent count\n * against the dissent rate documents of the leading format show) turns such a\n * collection `unknown` and sets `mixed`. `hasSchool` and `hasLocation` are the\n * probability that MOST cells carry the part, given the reader's recall and false-read\n * rate. Every rate is fitted by `training/fit-name-format.ts`; the threshold and the\n * mixed test's level are decided, and the pull request that set them records both.\n */\n\nimport { isAmbiguous, isGiven, isSurname } from \"../lexicon/flags.ts\";\nimport { Lexicon } from \"../lexicon/index.ts\";\nimport { isPlaceWordFlags } from \"../lexicon/place.ts\";\nimport { isNoNamePrint, isPlaceholderPrint } from \"./name-placeholder.ts\";\nimport {\n\ttype CommaReading,\n\ttype NameOrder,\n\tcommaReading,\n\tisNameSuffix,\n\ttokenize,\n} from \"./name-split.ts\";\nimport { isTeamPrint } from \"./team-name.ts\";\n\n/** A printed-name order, as a document prints it. */\nexport type NameFormat = \"First Last\" | \"Last, First\" | \"Last First\";\n\n/** The three formats, in the order every vector below is laid out. */\nexport const NAME_FORMATS: readonly NameFormat[] = [\"First Last\", \"Last, First\", \"Last First\"];\n\n/** A collection's verdict: a format, or `\"unknown\"` where none clears the threshold. */\nexport type NameFormatVerdict = NameFormat | \"unknown\";\n\n/**\n * The `NameOrder` a verdict declares: `First Last` is given-first, both surname-first\n * forms are surname-first, and `unknown` stays `unknown`.\n */\nexport function nameFormatOrder(verdict: NameFormatVerdict): NameOrder {\n\tif (verdict === \"unknown\") return \"unknown\";\n\treturn verdict === \"First Last\" ? \"given-first\" : \"surname-first\";\n}\n\n/**\n * What one print says about order. `comma` is a separator comma; the others are the\n * lexicon's token-position readings, two tokens settled or one.\n */\nexport type OrderReading =\n\t| \"comma\"\n\t| \"given-first:two-token\"\n\t| \"surname-first:two-token\"\n\t| \"given-first:one-token\"\n\t| \"surname-first:one-token\";\n\n/** The order readings, in the order every count vector below is laid out. */\nexport const ORDER_READINGS: readonly OrderReading[] = [\n\t\"comma\",\n\t\"given-first:two-token\",\n\t\"surname-first:two-token\",\n\t\"given-first:one-token\",\n\t\"surname-first:one-token\",\n];\n\n/** Why a print was not read at all: it names nobody, or it is a team designation. */\nexport type SkipReason = \"empty\" | \"no-name\" | \"team\";\n\n/** How a print's comma was read, `place` where it delimited a trailing place. */\nexport type CommaClass = CommaReading | \"place\";\n\n/** One printed name cell, read. */\nexport interface NameCellReading {\n\t/** The print, verbatim. */\n\tprint: string;\n\t/** Set where the print was not read; every other field is then empty. */\n\tskipped?: SkipReason;\n\t/**\n\t * The name part: the print with its school and place cut off, whitespace collapsed.\n\t * Hand it to the splitter in place of the print.\n\t */\n\tname: string;\n\t/** The school part, where the segmenter read one. */\n\tschool?: string;\n\t/** The place part, where a delimited place was read. */\n\tlocation?: string;\n\t/**\n\t * How the print's commas read. `place` and `glue` are commas the place or school\n\t * reading consumed; the rest are `commaReading` of the name part.\n\t */\n\tcommas: readonly CommaClass[];\n\t/** The order reading, or `undefined` where the name part orients nothing. */\n\torder?: OrderReading;\n\t/** The order the reading points to; `undefined` where there is none. */\n\torderPoints?: \"given-first\" | \"surname-first\";\n\t/** Name tokens read (suffixes and punctuation-only tokens set aside). */\n\ttokens: number;\n}\n\n/** The counts behind a verdict. */\nexport interface NameFormatEvidence {\n\t/** Every print given. */\n\tprints: number;\n\t/** Prints not read, by reason. */\n\tskipped: Record<SkipReason, number>;\n\t/** Prints carrying a separator comma. */\n\tseparatorCommas: number;\n\t/** Commas that were not order separators, by class. */\n\tdiscountedCommas: Record<Exclude<CommaClass, \"none\" | \"separator\">, number>;\n\t/** Prints oriented by the lexicon, by reading. */\n\tlexicon: Record<Exclude<OrderReading, \"comma\">, number>;\n\t/** Read prints that orient nothing. */\n\tunread: number;\n\t/** Read prints carrying a school; `null` where no segmenter was given. */\n\tschool: number | null;\n\t/** Read prints carrying a place. */\n\tlocation: number;\n}\n\n/** A collection's answer. One print's answer has the same shape. */\nexport interface NameFormatResult {\n\t/** Over the three formats, summing to 1. */\n\tprobabilities: Record<NameFormat, number>;\n\t/** The format whose probability clears the threshold, else `\"unknown\"`. */\n\tverdict: NameFormatVerdict;\n\t/** The probability that the name cells carry a school; `null` without a segmenter. */\n\thasSchool: number | null;\n\t/** The probability that the name cells carry a place. */\n\thasLocation: number;\n\t/**\n\t * True where the dissent is too large for the leading format to have printed it: the\n\t * collection prints both orders, and the verdict is `unknown`.\n\t */\n\tmixed: boolean;\n\tevidence: NameFormatEvidence;\n\t/**\n\t * The readings that point to the order the verdict does not: given-first readings\n\t * under a surname-first verdict and the reverse. Where the verdict is `\"unknown\"`,\n\t * against the most probable format.\n\t */\n\tdissent: NameCellReading[];\n\t/** Every print's reading, in input order. */\n\treadings: NameCellReading[];\n}\n\n/** What the segmenter returns that is read here; the classifier's `SegmentResult` is one. */\nexport interface CellSegmentation {\n\treadonly person: readonly string[];\n\treadonly school: readonly string[];\n\treadonly location: readonly string[];\n}\n\n/** The segmenter as read here; the classifier's `createSegmenter(lexicon)` is one. */\nexport interface CellSegmenter {\n\tsegmentTokens(tokens: string[]): CellSegmentation;\n}\n\nexport interface NameCellOptions {\n\t/** The lexicon read for token position and places. Default: `Lexicon.default()`. */\n\tlexicon?: Lexicon;\n\t/** Reads the school part. Without one, no school is read. */\n\tsegmenter?: CellSegmenter | null;\n\t/** Read delimited places. Default true; `false` reads every comma by `commaReading`. */\n\treadLocation?: boolean;\n\t/**\n\t * The document's cells carry places (`deriveNameFormat` sets it where `hasLocation`\n\t * passes 0.5 on a first reading): a comma after a name of two or more tokens that no\n\t * given name follows is read as a place delimiter, so a place the lexicon does not\n\t * know is not read as `Last, First`.\n\t */\n\tplaceColumn?: boolean;\n}\n\nexport interface NameFormatOptions extends NameCellOptions {\n\t/** The probability a format must reach to be the verdict. Default `DEFAULT_NAME_FORMAT_THRESHOLD`. */\n\tthreshold?: number;\n}\n\n/**\n * A print given as its name cell, or as the cell and its row's own school cell. Where\n * the name cell prints that school again at its end, the school is cut off there.\n */\nexport type PrintedNameCell = string | { name: string; school?: string };\n\n// ─── one print ──────────────────────────────────────────────────────────────\n\nconst HAS_LETTER = /\\p{L}/u;\nconst SPACED_DASH = /\\s[-–—]\\s/gu;\n\n/** A field every word of which (split at `,` and `/`) is a place word. */\nfunction isPlaceField(field: string, flagsOf: (t: string) => string | null): boolean {\n\tconst words = field\n\t\t.split(/[\\s,/]+/u)\n\t\t.map((w) => w.replace(/^[.(]+|[.)]+$/gu, \"\"))\n\t\t.filter((w) => w !== \"\");\n\treturn words.length > 0 && words.every((w) => isPlaceWordFlags(flagsOf(w) ?? \"\"));\n}\n\nfunction givenOnly(flags: string | null): boolean {\n\treturn flags !== null && isGiven(flags) && !isSurname(flags) && !isAmbiguous(flags);\n}\n\nfunction surnameOnly(flags: string | null): boolean {\n\treturn flags !== null && isSurname(flags) && !isGiven(flags) && !isAmbiguous(flags);\n}\n\n/** Two tokens, read against the lexicon. */\nfunction tokenOrder(a: string | null, b: string | null): OrderReading | undefined {\n\tif (givenOnly(a) && surnameOnly(b)) return \"given-first:two-token\";\n\tif (surnameOnly(a) && givenOnly(b)) return \"surname-first:two-token\";\n\tif (a !== null && b !== null) return undefined;\n\tif (b === null && givenOnly(a)) return \"given-first:one-token\";\n\tif (a === null && surnameOnly(b)) return \"given-first:one-token\";\n\tif (b === null && surnameOnly(a)) return \"surname-first:one-token\";\n\tif (a === null && givenOnly(b)) return \"surname-first:one-token\";\n\treturn undefined;\n}\n\n/** The order a reading points to. */\nexport function orderReadingPoints(r: OrderReading): \"given-first\" | \"surname-first\" {\n\treturn r === \"given-first:two-token\" || r === \"given-first:one-token\"\n\t\t? \"given-first\"\n\t\t: \"surname-first\";\n}\n\n/** A lexicon, its flag lookup bound once per lexicon. */\nconst flagLookups = new WeakMap<Lexicon, (t: string) => string | null>();\nfunction flagsOfLexicon(lexicon: Lexicon): (t: string) => string | null {\n\tlet f = flagLookups.get(lexicon);\n\tif (f === undefined) {\n\t\tf = (t) => lexicon.getNameFlags(t);\n\t\tflagLookups.set(lexicon, f);\n\t}\n\treturn f;\n}\n\n/**\n * Read one printed name cell: its name, school and place parts, how its commas read,\n * and the order its name part reads in.\n */\nexport function readNameCell(\n\tcell: PrintedNameCell,\n\toptions: NameCellOptions = {},\n): NameCellReading {\n\tconst print = typeof cell === \"string\" ? cell : cell.name;\n\tconst rowSchool =\n\t\ttypeof cell === \"string\" ? \"\" : (cell.school ?? \"\").replace(/\\s+/gu, \" \").trim();\n\tconst flagsOf = flagsOfLexicon(options.lexicon ?? Lexicon.default());\n\tconst readLocation = options.readLocation ?? true;\n\tconst skip = (skipped: SkipReason): NameCellReading => ({\n\t\tprint,\n\t\tskipped,\n\t\tname: \"\",\n\t\tcommas: [],\n\t\ttokens: 0,\n\t});\n\n\tlet s = print.replace(/\\s+/gu, \" \").trim();\n\tif (s === \"\") return skip(\"empty\");\n\tif (isNoNamePrint(s) || isPlaceholderPrint(s)) return skip(\"no-name\");\n\tif (isTeamPrint(s)) return skip(\"team\");\n\n\tconst places: string[] = [];\n\tconst commas: CommaClass[] = [];\n\tlet school: string | undefined;\n\tif (readLocation) {\n\t\t// After a colon: the glue of a name + school + region print. The tail's trailing\n\t\t// place fields are the place; whatever precedes them in the tail is a school.\n\t\tconst colon = s.indexOf(\":\");\n\t\tif (colon > 0) {\n\t\t\tlet tail = s.slice(colon + 1).trim();\n\t\t\ts = s.slice(0, colon).trim();\n\t\t\tconst tailPlaces: string[] = [];\n\t\t\tfor (;;) {\n\t\t\t\tif (isPlaceField(tail, flagsOf)) {\n\t\t\t\t\ttailPlaces.unshift(tail);\n\t\t\t\t\tfor (const _ of tail.matchAll(/,/gu)) commas.push(\"place\");\n\t\t\t\t\ttail = \"\";\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tconst at = tail.lastIndexOf(\",\");\n\t\t\t\tif (at <= 0) break;\n\t\t\t\tconst field = tail.slice(at + 1).trim();\n\t\t\t\tif (field === \"\" || !isPlaceField(field, flagsOf)) break;\n\t\t\t\ttailPlaces.unshift(field);\n\t\t\t\tcommas.push(\"place\");\n\t\t\t\ttail = tail.slice(0, at).trim();\n\t\t\t}\n\t\t\tif (tailPlaces.length > 0) places.unshift(tailPlaces.join(\", \"));\n\t\t\tif (HAS_LETTER.test(tail)) school = tail;\n\t\t}\n\t\t// A trailing parenthesis naming a place.\n\t\tconst paren = /\\s*\\(([^()]*)\\)\\s*$/u.exec(s);\n\t\tif (paren !== null && paren.index > 0 && isPlaceField(paren[1] as string, flagsOf)) {\n\t\t\tplaces.unshift((paren[1] as string).trim());\n\t\t\ts = s.slice(0, paren.index).trim();\n\t\t}\n\t\t// After each spaced dash from the end, while each tail is a place.\n\t\tfor (;;) {\n\t\t\tconst dashes = [...s.matchAll(SPACED_DASH)];\n\t\t\tconst dash = dashes[dashes.length - 1];\n\t\t\tif (dash === undefined || dash.index <= 0) break;\n\t\t\tconst tail = s.slice(dash.index + dash[0].length).trim();\n\t\t\tif (!isPlaceField(tail, flagsOf)) break;\n\t\t\tplaces.unshift(tail);\n\t\t\tfor (const _ of tail.matchAll(/,/gu)) commas.push(\"place\");\n\t\t\ts = s.slice(0, dash.index).trim();\n\t\t}\n\t\t// Comma fields from the end, while each is a place.\n\t\tfor (;;) {\n\t\t\tconst at = s.lastIndexOf(\",\");\n\t\t\tif (at <= 0) break;\n\t\t\tconst tail = s.slice(at + 1).trim();\n\t\t\tif (tail === \"\" || !isPlaceField(tail, flagsOf)) break;\n\t\t\tconst head = s.slice(0, at).trim();\n\t\t\t// A one-token head is a surname before its given name (`Ospindle, Lirabel`), and a\n\t\t\t// given name the lexicon also knows as a place is still a given name there.\n\t\t\tif (tokenize(head.replace(/,/gu, \" \")).filter((t) => HAS_LETTER.test(t)).length < 2) break;\n\t\t\tplaces.unshift(tail);\n\t\t\tcommas.push(\"place\");\n\t\t\ts = head;\n\t\t}\n\t}\n\t// Asides other than a place are not part of the name.\n\ts = s\n\t\t.replace(/\\([^()]*\\)/gu, \" \")\n\t\t.replace(/\\s+/gu, \" \")\n\t\t.trim();\n\tif (!HAS_LETTER.test(s)) {\n\t\tif (places.length === 0) return skip(\"no-name\");\n\t\ts = \"\";\n\t}\n\n\t// The row's own school cell, printed again at the end of the name cell.\n\tif (school === undefined && rowSchool !== \"\" && HAS_LETTER.test(rowSchool)) {\n\t\tconst at = s.toLocaleLowerCase().lastIndexOf(rowSchool.toLocaleLowerCase());\n\t\t// Only at a word boundary: `Zelvine QVarrow Hall` does not end with `Varrow Hall`.\n\t\tif (at > 0 && at + rowSchool.length === s.length && /[\\s,;:-]/u.test(s[at - 1] ?? \"\")) {\n\t\t\tconst head = s.slice(0, at);\n\t\t\tif (HAS_LETTER.test(head)) {\n\t\t\t\tschool = s.slice(at);\n\t\t\t\tif (/,\\s*$/u.test(head)) commas.push(\"glue\");\n\t\t\t\ts = head.replace(/[\\s,;:-]+$/u, \"\");\n\t\t\t}\n\t\t}\n\t}\n\tif (school === undefined && options.segmenter && s !== \"\") {\n\t\tconst words = s.split(\" \");\n\t\tconst kept: number[] = [];\n\t\tconst clean: string[] = [];\n\t\tfor (const [i, w] of words.entries()) {\n\t\t\tconst c = w.replace(/^[,;.]+|[,;.]+$/gu, \"\");\n\t\t\tif (!HAS_LETTER.test(c)) continue;\n\t\t\tkept.push(i);\n\t\t\tclean.push(c);\n\t\t}\n\t\tif (clean.length >= 2) {\n\t\t\tconst seg = options.segmenter.segmentTokens(clean);\n\t\t\tif (seg.person.length > 0 && seg.school.length > 0) {\n\t\t\t\tconst cut = kept[seg.person.length] as number;\n\t\t\t\tschool = seg.school.join(\" \");\n\t\t\t\tif (seg.location.length > 0) places.unshift(seg.location.join(\" \"));\n\t\t\t\tconst tail = words.slice(cut).join(\" \");\n\t\t\t\tfor (const _ of tail.matchAll(/,/gu)) commas.push(\"glue\");\n\t\t\t\ts = words\n\t\t\t\t\t.slice(0, cut)\n\t\t\t\t\t.join(\" \")\n\t\t\t\t\t.replace(/[\\s,;-]+$/u, \"\");\n\t\t\t\tif (/,\\s*$/u.test(words.slice(0, cut).join(\" \"))) commas.push(\"glue\");\n\t\t\t}\n\t\t}\n\t}\n\n\tlet comma = commaReading(s);\n\t// In a document whose cells carry places, a comma after a name of two or more\n\t// tokens, followed by no given name, delimits a place the lexicon does not know.\n\tif (comma === \"separator\" && readLocation && options.placeColumn) {\n\t\tconst at = s.lastIndexOf(\",\");\n\t\tconst head = s.slice(0, at).trim();\n\t\tconst tail = s.slice(at + 1).trim();\n\t\tconst headTokens = tokenize(head).filter((t) => HAS_LETTER.test(t));\n\t\tconst tailTokens = tokenize(tail).filter((t) => HAS_LETTER.test(t));\n\t\tconst givenInTail = tailTokens.some((t) => {\n\t\t\tconst f = flagsOf(t);\n\t\t\treturn f !== null && isGiven(f);\n\t\t});\n\t\tif (headTokens.length >= 2 && tailTokens.length > 0 && !givenInTail) {\n\t\t\tplaces.push(tail);\n\t\t\tcommas.push(\"place\");\n\t\t\ts = head;\n\t\t\tcomma = commaReading(s);\n\t\t}\n\t}\n\tif (comma !== \"none\") commas.push(comma);\n\tconst out: NameCellReading = {\n\t\tprint,\n\t\tname: s,\n\t\tcommas,\n\t\ttokens: 0,\n\t\t...(school !== undefined ? { school } : {}),\n\t\t...(places.length > 0 ? { location: places.join(\", \") } : {}),\n\t};\n\tconst tokens = tokenize(s.replace(/,/gu, \" \")).filter(\n\t\t(t) => HAS_LETTER.test(t) && !isNameSuffix(t),\n\t);\n\tout.tokens = tokens.length;\n\tif (comma === \"separator\") {\n\t\tout.order = \"comma\";\n\t} else if (comma !== \"glue\" && comma !== \"particle\" && tokens.length === 2) {\n\t\tconst order = tokenOrder(flagsOf(tokens[0] as string), flagsOf(tokens[1] as string));\n\t\tif (order !== undefined) out.order = order;\n\t}\n\tif (out.order !== undefined) out.orderPoints = orderReadingPoints(out.order);\n\treturn out;\n}\n\n// ─── many prints ────────────────────────────────────────────────────────────\n\n/** Natural log of the gamma function (Lanczos, g = 7), for positive arguments. */\nfunction logGamma(x: number): number {\n\tif (x < 0.5) return Math.log(Math.PI / Math.sin(Math.PI * x)) - logGamma(1 - x);\n\tconst c = [\n\t\t0.99999999999980993, 676.5203681218851, -1259.1392167224028, 771.32342877765313,\n\t\t-176.61502916214059, 12.507343278686905, -0.13857109526572012, 9.9843695780195716e-6,\n\t\t1.5056327351493116e-7,\n\t];\n\tconst z = x - 1;\n\tlet a = c[0] as number;\n\tconst t = z + 7.5;\n\tfor (let i = 1; i < 9; i++) a += (c[i] as number) / (z + i);\n\treturn 0.5 * Math.log(2 * Math.PI) + (z + 0.5) * Math.log(t) - t + Math.log(a);\n}\n\n/** `P(X >= k)` for `X` binomial over `n` trials with rate `p`. */\nexport function binomialTail(k: number, n: number, p: number): number {\n\tif (k <= 0) return 1;\n\tif (p <= 0) return 0;\n\tif (p >= 1) return 1;\n\tconst lp = Math.log(p);\n\tconst lq = Math.log1p(-p);\n\tlet tail = 0;\n\tfor (let j = k; j <= n; j++)\n\t\ttail += Math.exp(\n\t\t\tlogGamma(n + 1) - logGamma(j + 1) - logGamma(n - j + 1) + j * lp + (n - j) * lq,\n\t\t);\n\treturn Math.min(1, tail);\n}\n\n/** Posterior over hypotheses with a uniform prior: softmax of the log likelihoods. */\nfunction posterior(logs: readonly number[]): number[] {\n\tconst m = Math.max(...logs);\n\tconst e = logs.map((l) => Math.exp(l - m));\n\tconst z = e.reduce((x, y) => x + y, 0);\n\treturn e.map((x) => x / z);\n}\n\n/** How the reader sees a part (school or place): how often it reads one that is there, and one that is not. */\nexport interface PartReader {\n\t/** P(read | the cell carries one). */\n\trecall: number;\n\t/** P(read | the cell carries none). */\n\tfalseRate: number;\n}\n\n/**\n * The fitted model. Every print is read independently given the format:\n *\n * - `comma`: P(a read print carries a separator comma | format);\n * - `surnameFirst`: P(a lexicon reading points surname-first | its class, format).\n * The CLASS (two-token or one-token) is taken as given, not scored: how many prints\n * the lexicon can read at all is a fact about the lexicon's coverage, not about\n * order. So each consistent print can only raise the format it is consistent with.\n * - `dissent`: the share of oriented prints that point against a format's order in\n * documents of that format; the mixed-document test's bound.\n * - `school`, `location`: the reader's recall and false-read rate for each part.\n */\nexport interface NameFormatModel {\n\tcomma: Record<NameFormat, number>;\n\tsurnameFirst: Record<NameFormat, { twoToken: number; oneToken: number }>;\n\tdissent: Record<NameFormat, number>;\n\t/**\n\t * Uninformative pseudo-prints mixed into the order probabilities: with `n` oriented\n\t * prints, each probability is `(n·p + smoothing/3) / (n + smoothing)`, and each\n\t * part probability is `(n·p + smoothing/2) / (n + smoothing)` over `n` read prints,\n\t * so a small population stays near uniform whatever its likelihoods say.\n\t */\n\tsmoothing: number;\n\t/**\n\t * The mixed-document test's level: a collection whose dissent count is less\n\t * probable than this, binomially, at the leading format's `dissent` rate, prints\n\t * both orders; its verdict is `unknown` (`mixed`) however the probabilities fall.\n\t */\n\tmixedTail: number;\n\tschool: PartReader;\n\tlocation: PartReader;\n}\n\n/**\n * FITTED by `training/fit-name-format.ts` (and its selection of `smoothing`; the\n * threshold and `mixedTail` are decided, see the pull request). Provenance:\n *\n * corpus: corpus-v3.0.0-188, solo competitions, transcript and manifested halves\n * command: NAMES_CORPUS_DIR=<corpus-v3.0.0-188> bun training/fit-name-format.ts\n * split: 80/10/10 by event-year, `splitOf` (FNV-1a of the event-year, no seed)\n * date: 2026-10-02\n *\n * Refit when the readings above change.\n */\nexport const NAME_FORMAT_MODEL: NameFormatModel = {\n\tcomma: { \"First Last\": 0.00001237, \"Last, First\": 0.9989, \"Last First\": 0.0009921 },\n\tsurnameFirst: {\n\t\t\"First Last\": { twoToken: 0.0008603, oneToken: 0.02476 },\n\t\t\"Last, First\": { twoToken: 0.5, oneToken: 0.0625 },\n\t\t\"Last First\": { twoToken: 0.9972, oneToken: 0.9604 },\n\t},\n\tdissent: { \"First Last\": 0.004387, \"Last, First\": 0.0004406, \"Last First\": 0.01895 },\n\tsmoothing: 0.25,\n\tmixedTail: 0.01,\n\tschool: { recall: 0.9945, falseRate: 0.0248 },\n\tlocation: { recall: 0.6772, falseRate: 0.0001503 },\n};\n\n/** The default threshold (see `NAME_FORMAT_MODEL`). */\nexport const DEFAULT_NAME_FORMAT_THRESHOLD = 0.95;\n\n/** The order readings of a collection, counted in `ORDER_READINGS` order. */\nexport function orderCounts(readings: readonly NameCellReading[]): number[] {\n\tconst counts = ORDER_READINGS.map(() => 0);\n\tfor (const r of readings) if (r.order !== undefined) counts[ORDER_READINGS.indexOf(r.order)]!++;\n\treturn counts;\n}\n\n/** Log likelihood of a collection's readings under one format. */\nfunction orderLogLikelihood(\n\tcounts: readonly number[],\n\tread: number,\n\tmodel: NameFormatModel,\n\tf: NameFormat,\n): number {\n\tconst [comma, gf2, sf2, gf1, sf1] = counts as [number, number, number, number, number];\n\tconst k = model.comma[f];\n\tconst s = model.surnameFirst[f];\n\treturn (\n\t\tcomma * Math.log(k) +\n\t\t(read - comma) * Math.log1p(-k) +\n\t\tsf2 * Math.log(s.twoToken) +\n\t\tgf2 * Math.log1p(-s.twoToken) +\n\t\tsf1 * Math.log(s.oneToken) +\n\t\tgf1 * Math.log1p(-s.oneToken)\n\t);\n}\n\n/**\n * P(most cells carry the part | `k` of `n` read prints read one): the share `θ` of\n * cells carrying it is uniform a priori, each print reads one with probability\n * `θ·recall + (1 - θ)·falseRate`, and the answer is the posterior mass of `θ ≥ 1/2`.\n */\nexport function partProbability(k: number, n: number, reader: PartReader): number {\n\tif (n === 0) return 0.5;\n\tconst steps = 200;\n\tlet lo = 0;\n\tlet hi = 0;\n\tconst logs: number[] = [];\n\tfor (let i = 0; i < steps; i++) {\n\t\tconst theta = (i + 0.5) / steps;\n\t\tconst q = theta * reader.recall + (1 - theta) * reader.falseRate;\n\t\tlogs.push(k * Math.log(q) + (n - k) * Math.log1p(-q));\n\t}\n\tconst m = Math.max(...logs);\n\tfor (const [i, l] of logs.entries()) {\n\t\tconst w = Math.exp(l - m);\n\t\tif ((i + 0.5) / steps >= 0.5) hi += w;\n\t\telse lo += w;\n\t}\n\treturn hi / (lo + hi);\n}\n\n/** Score a collection's readings under a model. Exported for the fit; callers use `deriveNameFormat`. */\nexport function scoreReadings(\n\treadings: readonly NameCellReading[],\n\tmodel: NameFormatModel,\n\tthreshold: number,\n\tschoolRead: boolean,\n): NameFormatResult {\n\tconst evidence: NameFormatEvidence = {\n\t\tprints: readings.length,\n\t\tskipped: { empty: 0, \"no-name\": 0, team: 0 },\n\t\tseparatorCommas: 0,\n\t\tdiscountedCommas: { place: 0, glue: 0, trailing: 0, suffix: 0, particle: 0 },\n\t\tlexicon: {\n\t\t\t\"given-first:two-token\": 0,\n\t\t\t\"surname-first:two-token\": 0,\n\t\t\t\"given-first:one-token\": 0,\n\t\t\t\"surname-first:one-token\": 0,\n\t\t},\n\t\tunread: 0,\n\t\tschool: schoolRead ? 0 : null,\n\t\tlocation: 0,\n\t};\n\tlet read = 0;\n\tfor (const r of readings) {\n\t\tif (r.skipped !== undefined) {\n\t\t\tevidence.skipped[r.skipped]++;\n\t\t\tcontinue;\n\t\t}\n\t\tread++;\n\t\tfor (const c of r.commas) {\n\t\t\tif (c === \"separator\") evidence.separatorCommas++;\n\t\t\telse if (c !== \"none\") evidence.discountedCommas[c]++;\n\t\t}\n\t\tif (r.order === undefined) evidence.unread++;\n\t\telse if (r.order !== \"comma\") evidence.lexicon[r.order]++;\n\t\tif (r.school !== undefined && evidence.school !== null) evidence.school++;\n\t\tif (r.location !== undefined) evidence.location++;\n\t}\n\n\tconst counts = orderCounts(readings);\n\tconst oriented = counts.reduce((a, b) => a + b, 0);\n\tconst smooth = (x: number, n: number, k: number): number =>\n\t\tn + model.smoothing === 0 ? x : (n * x + model.smoothing / k) / (n + model.smoothing);\n\tconst p = posterior(NAME_FORMATS.map((f) => orderLogLikelihood(counts, read, model, f))).map(\n\t\t(x) => smooth(x, oriented, NAME_FORMATS.length),\n\t);\n\tconst probabilities = Object.fromEntries(\n\t\tNAME_FORMATS.map((f, i) => [f, p[i] as number]),\n\t) as Record<NameFormat, number>;\n\tlet best = 0;\n\tfor (let i = 1; i < p.length; i++) if ((p[i] as number) > (p[best] as number)) best = i;\n\tconst leading = NAME_FORMATS[best] as NameFormat;\n\tconst against = nameFormatOrder(leading) === \"given-first\" ? \"surname-first\" : \"given-first\";\n\tconst dissent = readings.filter((r) => r.orderPoints === against);\n\tconst mixed =\n\t\tdissent.length > 0 &&\n\t\tbinomialTail(dissent.length, oriented, model.dissent[leading]) < model.mixedTail;\n\tconst verdict: NameFormatVerdict =\n\t\t!mixed && (p[best] as number) >= threshold ? leading : \"unknown\";\n\n\treturn {\n\t\tprobabilities,\n\t\tverdict,\n\t\thasSchool:\n\t\t\tevidence.school === null\n\t\t\t\t? null\n\t\t\t\t: smooth(partProbability(evidence.school, read, model.school), read, 2),\n\t\thasLocation: smooth(partProbability(evidence.location, read, model.location), read, 2),\n\t\tmixed,\n\t\tevidence,\n\t\tdissent,\n\t\treadings: [...readings],\n\t};\n}\n\n/**\n * Which printed-name order one collection of name cells uses, and whether the cells\n * carry a school or a place. See the module comment.\n */\nexport function deriveNameFormat(\n\tprints: Iterable<PrintedNameCell>,\n\toptions: NameFormatOptions = {},\n): NameFormatResult {\n\tconst cells = [...prints];\n\tconst threshold = options.threshold ?? DEFAULT_NAME_FORMAT_THRESHOLD;\n\tconst schoolRead =\n\t\tBoolean(options.segmenter) || cells.some((c) => typeof c !== \"string\" && Boolean(c.school));\n\tconst first = scoreReadings(\n\t\tcells.map((c) => readNameCell(c, options)),\n\t\tNAME_FORMAT_MODEL,\n\t\tthreshold,\n\t\tschoolRead,\n\t);\n\tif (first.hasLocation <= 0.5 || options.readLocation === false || options.placeColumn)\n\t\treturn first;\n\treturn scoreReadings(\n\t\tcells.map((c) => readNameCell(c, { ...options, placeColumn: true })),\n\t\tNAME_FORMAT_MODEL,\n\t\tthreshold,\n\t\tschoolRead,\n\t);\n}\n"
13
13
  ],
14
- "mappings": "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",
15
- "debugId": "82AC2FB0D34BD09D64756E2164756E21",
14
+ "mappings": "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",
15
+ "debugId": "A94FC7266AE0EB2964756E2164756E21",
16
16
  "names": []
17
17
  }
@@ -0,0 +1,11 @@
1
+ import {
2
+ phraseClassifier2
3
+ } from "./index-852w8w1s.js";
4
+ import"./index-2fsdvhaf.js";
5
+ import"./index-0qptxnwh.js";
6
+ export {
7
+ phraseClassifier2 as phraseClassifier
8
+ };
9
+
10
+ //# debugId=BD8F5B3E6DE1DCF664756E2164756E21
11
+ //# sourceMappingURL=phrase-dczgr4vs.js.map
@@ -6,9 +6,9 @@ import {
6
6
  createSegmenter2,
7
7
  createClassifier2,
8
8
  phraseClassifier2
9
- } from "../chunks/index-bpp2rfg7.js";
10
- import"../chunks/index-m0f6bgr9.js";
11
- import"../chunks/index-bqx4wpkm.js";
9
+ } from "../chunks/index-852w8w1s.js";
10
+ import"../chunks/index-2fsdvhaf.js";
11
+ import"../chunks/index-0qptxnwh.js";
12
12
  export {
13
13
  CONNECTORS2 as CONNECTORS,
14
14
  SCHOOL_KEYWORDS2 as SCHOOL_KEYWORDS,
@@ -1,9 +1,9 @@
1
1
  #!/usr/bin/env node
2
- import"../chunks/index-bqx4wpkm.js";
2
+ import"../chunks/index-0qptxnwh.js";
3
3
  import {
4
4
  createNameCensus2
5
- } from "../chunks/index-dcv3p1rw.js";
6
- import"../chunks/index-qmq4wyez.js";
5
+ } from "../chunks/index-0vg56t5v.js";
6
+ import"../chunks/index-fzzq5txh.js";
7
7
  import { createRequire } from "node:module";
8
8
  var __require = /* @__PURE__ */ createRequire(import.meta.url);
9
9
 
@@ -20,7 +20,7 @@ async function main(argv) {
20
20
  const limit = Number(value("limit") ?? 25);
21
21
  const field = value("field") ?? "name";
22
22
  const orderField = value("order-field") ?? "order";
23
- const classifier = flag("classify") ? (await import("../chunks/phrase-rbxwzwn9.js")).phraseClassifier() : undefined;
23
+ const classifier = flag("classify") ? (await import("../chunks/phrase-dczgr4vs.js")).phraseClassifier() : undefined;
24
24
  const census = createNameCensus2(classifier === undefined ? {} : { classifier });
25
25
  for await (const line of createInterface({
26
26
  input: process.stdin,
package/dist/index.js CHANGED
@@ -29,7 +29,7 @@ import {
29
29
  NAMES_TXT2,
30
30
  parseEntries2,
31
31
  Lexicon2
32
- } from "./chunks/index-bqx4wpkm.js";
32
+ } from "./chunks/index-0qptxnwh.js";
33
33
  import {
34
34
  CONNECTORS2,
35
35
  SCHOOL_KEYWORDS2,
@@ -37,7 +37,7 @@ import {
37
37
  createSegmenter2,
38
38
  createClassifier2,
39
39
  phraseClassifier2
40
- } from "./chunks/index-bpp2rfg7.js";
40
+ } from "./chunks/index-852w8w1s.js";
41
41
  import"./chunks/index-jwx1mm4k.js";
42
42
  import {
43
43
  repairMojibake2,
@@ -79,14 +79,14 @@ import {
79
79
  readNameCell2,
80
80
  DEFAULT_NAME_FORMAT_THRESHOLD2,
81
81
  deriveNameFormat2
82
- } from "./chunks/index-jmc5eejg.js";
82
+ } from "./chunks/index-knrkej0f.js";
83
83
  import {
84
84
  composeEvalSet2,
85
85
  evaluateClassifier2
86
- } from "./chunks/index-zfa3bxce.js";
86
+ } from "./chunks/index-d4wr471g.js";
87
87
  import {
88
88
  createNameCensus2
89
- } from "./chunks/index-dcv3p1rw.js";
89
+ } from "./chunks/index-0vg56t5v.js";
90
90
  import {
91
91
  NAME_REFUSED2,
92
92
  stripEveryAside2,
@@ -130,8 +130,8 @@ import {
130
130
  defaultPersonNameFactory2,
131
131
  personName2,
132
132
  personNameFromIcao2
133
- } from "./chunks/index-qmq4wyez.js";
134
- import"./chunks/index-m0f6bgr9.js";
133
+ } from "./chunks/index-fzzq5txh.js";
134
+ import"./chunks/index-2fsdvhaf.js";
135
135
  import {
136
136
  TEAM_WORD2,
137
137
  TEAM_DESIGNATION_WORDS2,
@@ -29,7 +29,7 @@ import {
29
29
  NAMES_TXT2,
30
30
  parseEntries2,
31
31
  Lexicon2
32
- } from "../chunks/index-bqx4wpkm.js";
32
+ } from "../chunks/index-0qptxnwh.js";
33
33
  export {
34
34
  APOSTROPHE_CHARS2 as APOSTROPHE_CHARS,
35
35
  CLASSIFICATION_FLAGS2 as CLASSIFICATION_FLAGS,
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  composeEvalSet2,
3
3
  evaluateClassifier2
4
- } from "../chunks/index-zfa3bxce.js";
4
+ } from "../chunks/index-d4wr471g.js";
5
5
  import {
6
6
  createNameCensus2
7
- } from "../chunks/index-dcv3p1rw.js";
8
- import"../chunks/index-qmq4wyez.js";
9
- import"../chunks/index-bqx4wpkm.js";
7
+ } from "../chunks/index-0vg56t5v.js";
8
+ import"../chunks/index-fzzq5txh.js";
9
+ import"../chunks/index-0qptxnwh.js";
10
10
  export {
11
11
  composeEvalSet2 as composeEvalSet,
12
12
  createNameCensus2 as createNameCensus,
@@ -38,7 +38,7 @@ import {
38
38
  readNameCell2,
39
39
  DEFAULT_NAME_FORMAT_THRESHOLD2,
40
40
  deriveNameFormat2
41
- } from "../chunks/index-jmc5eejg.js";
41
+ } from "../chunks/index-knrkej0f.js";
42
42
  import {
43
43
  NAME_REFUSED2,
44
44
  stripEveryAside2,
@@ -82,8 +82,8 @@ import {
82
82
  defaultPersonNameFactory2,
83
83
  personName2,
84
84
  personNameFromIcao2
85
- } from "../chunks/index-qmq4wyez.js";
86
- import"../chunks/index-m0f6bgr9.js";
85
+ } from "../chunks/index-fzzq5txh.js";
86
+ import"../chunks/index-2fsdvhaf.js";
87
87
  import {
88
88
  TEAM_WORD2,
89
89
  TEAM_DESIGNATION_WORDS2,
@@ -96,7 +96,7 @@ import {
96
96
  } from "../chunks/index-0phgwy52.js";
97
97
  import {
98
98
  lexiconKey2
99
- } from "../chunks/index-bqx4wpkm.js";
99
+ } from "../chunks/index-0qptxnwh.js";
100
100
  export {
101
101
  COMPOUND_SURNAMES2 as COMPOUND_SURNAMES,
102
102
  DEFAULT_NAME_FORMAT_THRESHOLD2 as DEFAULT_NAME_FORMAT_THRESHOLD,
@@ -43,6 +43,13 @@ Levels (NN0–NN4) are defined under [Consumer contract](#consumer-contract).
43
43
  filters in a spreadsheet, and many systems do not carry accents.
44
44
  - The ICAO shape `Surname<<Given<Middle` is the key a row is filed under. It supports
45
45
  sorting by surname, prefix matching on surname, and grouping siblings.
46
+ - A compound surname printed with a hyphen and with a space is one field at NN3
47
+ (`Ava Smithson-Ward` and `SMITHSON WARD, AVA` both reach `SMITHSONWARD<<AVA`). NN2 keeps
48
+ the print's joiner, so compare at NN3 (`surnameKey()`, `probablySame(a, b, "nn3")`),
49
+ never by NN2 equality. The fold needs the parse to read both tokens as surname: a
50
+ given-first `Ava Smithson Ward` is a middle name and a surname (`WARD<<AVA<SMITHSON`), and
51
+ a comma-less `SMITHSON WARD AVA` declared surname-first takes only the leading token
52
+ (plus any particles) as the surname (`SMITHSON<<WARD<AVA`).
46
53
 
47
54
  ## What causes the edge cases
48
55
 
package/names.txt CHANGED
@@ -5362,7 +5362,7 @@ Desmarteaux:L
5362
5362
  Desmond:M
5363
5363
  DeSocio:L
5364
5364
  DeSousa:L
5365
- Desouza:L
5365
+ DeSouza:L
5366
5366
  DeSpain:L
5367
5367
  Despot:LC
5368
5368
  Desrosiers:L
@@ -5540,7 +5540,7 @@ Dina:F
5540
5540
  Dinah:F
5541
5541
  Dinapoli:L
5542
5542
  Dinara:F
5543
- Dinardo:L
5543
+ DiNardo:L
5544
5544
  Dine:L
5545
5545
  Dineen:L
5546
5546
  Dingman:L
@@ -5580,7 +5580,7 @@ Disler:L
5580
5580
  Dismuke:L
5581
5581
  Diss:L
5582
5582
  Disse:L
5583
- Distefano:L
5583
+ DiStefano:L
5584
5584
  District:T
5585
5585
  District of Columbia:BG
5586
5586
  Ditchman:LC
@@ -13301,7 +13301,7 @@ Macri:L
13301
13301
  MacRitchie:L4
13302
13302
  MacRobbie:L4
13303
13303
  MacRuairi:L4
13304
- Macshane:L
13304
+ MacShane:L
13305
13305
  MacSweeney:L4
13306
13306
  Mactir:LT
13307
13307
  MacTough:L4
@@ -14018,7 +14018,7 @@ McAleese:L
14018
14018
  McAlevey:L
14019
14019
  McAlexander:L4
14020
14020
  McAlinden:L4
14021
- Mcaliney:L
14021
+ McAliney:L
14022
14022
  McAlister:L
14023
14023
  McAllaster:L4
14024
14024
  McAllister:L4
@@ -14027,7 +14027,7 @@ McAloon:L
14027
14027
  McAlpine:L
14028
14028
  McAnally:L4
14029
14029
  McAnaney:L
14030
- Mcananney:L
14030
+ McAnanney:L
14031
14031
  McAndless:L4
14032
14032
  McAndrew:L4
14033
14033
  McAnespy:L4
@@ -14108,7 +14108,7 @@ McCleave:L4
14108
14108
  McClellan:L4
14109
14109
  McClelland:L
14110
14110
  McCleney:L
14111
- Mccleverty:L
14111
+ McCleverty:L
14112
14112
  McClintock:L4
14113
14113
  McClish:L4
14114
14114
  McClone:L4
@@ -14128,7 +14128,7 @@ McColm:L4
14128
14128
  McComas:L4
14129
14129
  McComb:L4
14130
14130
  McCombe:L4
14131
- Mccomber:L
14131
+ McComber:L
14132
14132
  McCombs:L4
14133
14133
  McComiskey:L
14134
14134
  McConachie:L4
@@ -14304,7 +14304,7 @@ McGoldrick:L4
14304
14304
  McGonagle:LT4
14305
14305
  McGonigal:L4
14306
14306
  McGonigle:L4
14307
- Mcgoohan:L
14307
+ McGoohan:L
14308
14308
  McGorisk:L
14309
14309
  McGorray:L
14310
14310
  McGorry:L
@@ -14450,7 +14450,7 @@ McManimon:L4
14450
14450
  McManis:L4
14451
14451
  McMannon:L4
14452
14452
  McManus:L4
14453
- Mcmartin:L
14453
+ McMartin:L
14454
14454
  McMaster:L4
14455
14455
  McMeekin:L4
14456
14456
  McMenamin:L4
@@ -14480,7 +14480,7 @@ McNall:L4
14480
14480
  McNally:L4
14481
14481
  McNamara:LT4
14482
14482
  McNamee:L4
14483
- Mcnatt:L
14483
+ McNatt:L
14484
14484
  McNaughton:L4
14485
14485
  McNea:L
14486
14486
  McNeel:L4
@@ -14540,7 +14540,7 @@ McSwain:L4
14540
14540
  McSweeney:L
14541
14541
  McSwiggan:L
14542
14542
  McSwiggen:L4
14543
- Mctaggart:L
14543
+ McTaggart:L
14544
14544
  McTague:L4
14545
14545
  McTavish:L4
14546
14546
  McTeggart:LT4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@finbheara/names",
3
- "version": "0.9.0",
3
+ "version": "0.9.2",
4
4
  "description": "A curated lexicon of personal, school and place names, the surname-particle vocabulary, a phrase classifier and a person-name normalizer",
5
5
  "keywords": [
6
6
  "names",
@@ -1,11 +0,0 @@
1
- import {
2
- phraseClassifier2
3
- } from "./index-bpp2rfg7.js";
4
- import"./index-m0f6bgr9.js";
5
- import"./index-bqx4wpkm.js";
6
- export {
7
- phraseClassifier2 as phraseClassifier
8
- };
9
-
10
- //# debugId=BD8F5B3E6DE1DCF664756E2164756E21
11
- //# sourceMappingURL=phrase-rbxwzwn9.js.map