@finbheara/names 0.9.0 → 0.9.1

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-jmc5eejg.js → index-b2k3er3h.js} +4 -4
  7. package/dist/chunks/{index-zfa3bxce.js → index-d4wr471g.js} +2 -2
  8. package/dist/chunks/{index-qmq4wyez.js → index-fzzq5txh.js} +2 -2
  9. package/dist/chunks/phrase-dczgr4vs.js +11 -0
  10. package/dist/classifier/index.js +3 -3
  11. package/dist/cli/census.js +4 -4
  12. package/dist/index.js +7 -7
  13. package/dist/lexicon/index.js +1 -1
  14. package/dist/measure/index.js +4 -4
  15. package/dist/normalize/index.js +4 -4
  16. package/docs/NAME-NORMALIZATION.md +7 -0
  17. package/names.txt +12 -12
  18. package/package.json +1 -1
  19. package/dist/chunks/phrase-rbxwzwn9.js +0 -11
  20. /package/dist/chunks/{index-dcv3p1rw.js.map → index-0vg56t5v.js.map} +0 -0
  21. /package/dist/chunks/{index-m0f6bgr9.js.map → index-2fsdvhaf.js.map} +0 -0
  22. /package/dist/chunks/{index-bpp2rfg7.js.map → index-852w8w1s.js.map} +0 -0
  23. /package/dist/chunks/{index-jmc5eejg.js.map → index-b2k3er3h.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
@@ -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";
@@ -1341,4 +1341,4 @@ function deriveNameFormat2(prints, options = {}) {
1341
1341
  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
1342
 
1343
1343
  //# debugId=82AC2FB0D34BD09D64756E2164756E21
1344
- //# sourceMappingURL=index-jmc5eejg.js.map
1344
+ //# sourceMappingURL=index-b2k3er3h.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
@@ -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-b2k3er3h.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-b2k3er3h.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.1",
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