1 // This file is part of ICU4X. For terms of use, please see the file
2 // called LICENSE at the top level of the ICU4X source tree
3 // (online at: https://github.com/unicode-org/icu4x/blob/main/LICENSE ).
4
5 use litemap::LiteMap;
6
single_byte_intermediate_value(x: u8) -> u87 const fn single_byte_intermediate_value(x: u8) -> u8 {
8 debug_assert!(x <= 0b00001111);
9 x | 0b10000000
10 }
11
12 use single_byte_intermediate_value as single_byte_short_value;
13
single_byte_branch_equal(x: u8) -> u814 const fn single_byte_branch_equal(x: u8) -> u8 {
15 debug_assert!(x <= 0b00001111);
16 x | 0b11000000
17 }
18
19 use single_byte_branch_equal as single_byte_short_match;
20
21 #[allow(dead_code)]
strings_to_litemap<'a>(strings: &[&'a str]) -> LiteMap<&'a [u8], usize>22 pub fn strings_to_litemap<'a>(strings: &[&'a str]) -> LiteMap<&'a [u8], usize> {
23 strings
24 .iter()
25 .copied()
26 .map(|x| x.as_bytes())
27 .enumerate()
28 .map(|(i, s)| (s, i))
29 .collect()
30 }
31
32 #[allow(dead_code)]
33 pub mod basic {
34 use super::*;
35 pub static TRIE_ASCII: &[u8] = &[
36 b'a',
37 b'b',
38 single_byte_short_value(1),
39 b'c',
40 single_byte_short_value(2),
41 // Begin Match Node
42 single_byte_short_match(3),
43 b'd',
44 b'e',
45 b'f',
46 5,
47 8,
48 // End Match Node
49 // subslice @ 0
50 single_byte_short_value(3),
51 b'g',
52 b'h',
53 b'i',
54 single_byte_short_value(4),
55 // subslice @ 5
56 b'j',
57 b'k',
58 single_byte_short_value(5),
59 // subslice @ 8
60 // Begin Match Node
61 single_byte_short_match(2),
62 b'l',
63 b'm',
64 1,
65 // End Match Node
66 // subsubslice @ 0
67 single_byte_short_value(6),
68 // subsubslice @ 1
69 b'n',
70 single_byte_short_value(7),
71 ];
72 pub static DATA_ASCII: &[(&[u8], usize)] = &[
73 (b"ab", 1),
74 (b"abc", 2),
75 (b"abcd", 3),
76 (b"abcdghi", 4),
77 (b"abcejk", 5),
78 (b"abcfl", 6),
79 (b"abcfmn", 7),
80 ];
81
82 pub static TRIE_UNICODE: &[u8] = &[
83 196, 100, 102, 103, 107, 12, 17, 23, 195, 97, 101, 105, 2, 4, 115, 129, 114, 130, 101, 131,
84 162, 195, 188, 114, 132, 114, 111, 162, 195, 159, 133, 162, 195, 182, 110, 110, 101, 110,
85 134,
86 ];
87 pub static DATA_UNICODE: &[(&[u8], usize)] = &[
88 ("das".as_bytes(), 1),
89 ("der".as_bytes(), 2),
90 ("die".as_bytes(), 3),
91 ("für".as_bytes(), 4),
92 ("groß".as_bytes(), 5),
93 ("können".as_bytes(), 6),
94 ];
95
96 pub static TRIE_BINARY: &[u8] = &[
97 196, 0, 129, 144, 240, 3, 9, 12, 161, 144, 131, 194, 130, 131, 1, 129, 130, 161, 144, 132,
98 161, 255, 133, 161, 255, 134,
99 ];
100 pub static DATA_BINARY: &[(&[u8], usize)] = &[
101 (b"\0\x90", 3),
102 (b"\x81\x82", 1),
103 (b"\x81\x83", 2),
104 (b"\x90\x90", 4),
105 (b"\xF0\xFF", 5),
106 (b"\xF0\xFF\xFF", 6),
107 ];
108
109 // Note: Cow and ZeroVec have the same serialized form
110 pub static JSON_STR_ASCII: &str = "{\"trie\":{\"ab\":1,\"abc\":2,\"abcd\":3,\"abcdghi\":4,\"abcejk\":5,\"abcfl\":6,\"abcfmn\":7}}";
111 pub static JSON_STR_UNICODE: &str =
112 "{\"trie\":{\"das\":1,\"der\":2,\"die\":3,\"für\":4,\"groß\":5,\"können\":6}}";
113 pub static JSON_STR_BINARY: &str = "{\"trie\":[[[0,144],3],[[129,130],1],[[129,131],2],[[144,144],4],[[240,255],5],[[240,255,255],6]]}";
114 pub static BINCODE_BYTES_ASCII: &[u8] = &[
115 97, 98, 129, 99, 130, 195, 100, 101, 102, 5, 8, 131, 103, 104,
116 105, 132, 106, 107, 133, 194, 108, 109, 1, 134, 110, 135,
117 ];
118 pub static BINCODE_BYTES_UNICODE: &[u8] = &[
119 196, 100, 102, 103, 107, 12, 17, 23, 195, 97, 101, 105, 2, 4, 115,
120 129, 114, 130, 101, 131, 162, 195, 188, 114, 132, 114, 111, 162, 195, 159, 133, 162, 195,
121 182, 110, 110, 101, 110, 134,
122 ];
123 pub static BINCODE_BYTES_BINARY: &[u8] = &[
124 196, 0, 129, 144, 240, 3, 9, 12, 161, 144, 131, 194, 130, 131, 1,
125 129, 130, 161, 144, 132, 161, 255, 133, 161, 255, 134,
126 ];
127 }
128
129 #[allow(dead_code)]
130 pub mod short_subtags {
131 pub static STRINGS: &[&str] = &[
132 "aa",
133 "aai",
134 "aak",
135 "aau",
136 "ab",
137 "abi",
138 "abq",
139 "abr",
140 "abt",
141 "aby",
142 "acd",
143 "ace",
144 "ach",
145 "ada",
146 "ade",
147 "adj",
148 "adp",
149 "ady",
150 "adz",
151 "ae",
152 "aeb",
153 "aey",
154 "af",
155 "agc",
156 "agd",
157 "agg",
158 "agm",
159 "ago",
160 "agq",
161 "aha",
162 "ahl",
163 "aho",
164 "ajg",
165 "ak",
166 "akk",
167 "ala",
168 "ali",
169 "aln",
170 "alt",
171 "am",
172 "amm",
173 "amn",
174 "amo",
175 "amp",
176 "an",
177 "anc",
178 "ank",
179 "ann",
180 "any",
181 "aoj",
182 "aom",
183 "aoz",
184 "apc",
185 "apd",
186 "ape",
187 "apr",
188 "aps",
189 "apz",
190 "ar",
191 "arc",
192 "arc-Nbat",
193 "arc-Palm",
194 "arh",
195 "arn",
196 "aro",
197 "arq",
198 "ars",
199 "ary",
200 "arz",
201 "as",
202 "asa",
203 "ase",
204 "asg",
205 "aso",
206 "ast",
207 "ata",
208 "atg",
209 "atj",
210 "auy",
211 "av",
212 "avl",
213 "avn",
214 "avt",
215 "avu",
216 "awa",
217 "awb",
218 "awo",
219 "awx",
220 "ay",
221 "ayb",
222 "az",
223 "az-Arab",
224 "az-IQ",
225 "az-IR",
226 "az-RU",
227 "ba",
228 "bal",
229 "ban",
230 "bap",
231 "bar",
232 "bas",
233 "bav",
234 "bax",
235 "bba",
236 "bbb",
237 "bbc",
238 "bbd",
239 "bbj",
240 "bbp",
241 "bbr",
242 "bcf",
243 "bch",
244 "bci",
245 "bcm",
246 "bcn",
247 "bco",
248 "bcq",
249 "bcu",
250 "bdd",
251 "be",
252 "bef",
253 "beh",
254 "bej",
255 "bem",
256 "bet",
257 "bew",
258 "bex",
259 "bez",
260 "bfd",
261 "bfq",
262 "bft",
263 "bfy",
264 "bg",
265 "bgc",
266 "bgn",
267 "bgx",
268 "bhb",
269 "bhg",
270 "bhi",
271 "bhl",
272 "bho",
273 "bhy",
274 "bi",
275 "bib",
276 "big",
277 "bik",
278 "bim",
279 "bin",
280 "bio",
281 "biq",
282 "bjh",
283 "bji",
284 "bjj",
285 "bjn",
286 "bjo",
287 "bjr",
288 "bjt",
289 "bjz",
290 "bkc",
291 "bkm",
292 "bkq",
293 "bku",
294 "bkv",
295 "bla",
296 "blg",
297 "blt",
298 "bm",
299 "bmh",
300 "bmk",
301 "bmq",
302 "bmu",
303 "bn",
304 "bng",
305 "bnm",
306 "bnp",
307 "bo",
308 "boj",
309 "bom",
310 "bon",
311 "bpy",
312 "bqc",
313 "bqi",
314 "bqp",
315 "bqv",
316 "br",
317 "bra",
318 "brh",
319 "brx",
320 "brz",
321 "bs",
322 "bsj",
323 "bsq",
324 "bss",
325 "bst",
326 "bto",
327 "btt",
328 "btv",
329 "bua",
330 "buc",
331 "bud",
332 "bug",
333 "buk",
334 "bum",
335 "buo",
336 "bus",
337 "buu",
338 "bvb",
339 "bwd",
340 "bwr",
341 "bxh",
342 "bye",
343 "byn",
344 "byr",
345 "bys",
346 "byv",
347 "byx",
348 "bza",
349 "bze",
350 "bzf",
351 "bzh",
352 "bzw",
353 "ca",
354 "cad",
355 "can",
356 "cbj",
357 "cch",
358 "ccp",
359 "ce",
360 "ceb",
361 "cfa",
362 "cgg",
363 "ch",
364 "chk",
365 "chm",
366 "cho",
367 "chp",
368 "chr",
369 "cic",
370 "cja",
371 "cjm",
372 "cjv",
373 "ckb",
374 "ckl",
375 "cko",
376 "cky",
377 "cla",
378 "clc",
379 "cme",
380 "cmg",
381 "co",
382 "cop",
383 "cps",
384 "cr",
385 "crg",
386 "crh",
387 "crk",
388 "crl",
389 "crs",
390 "cs",
391 "csb",
392 "csw",
393 "ctd",
394 "cu",
395 "cu-Glag",
396 "cv",
397 "cy",
398 "da",
399 "dad",
400 "daf",
401 "dag",
402 "dah",
403 "dak",
404 "dar",
405 "dav",
406 "dbd",
407 "dbq",
408 "dcc",
409 "ddn",
410 "de",
411 "ded",
412 "den",
413 "dga",
414 "dgh",
415 "dgi",
416 "dgl",
417 "dgr",
418 "dgz",
419 "dia",
420 "dje",
421 "dmf",
422 "dnj",
423 "dob",
424 "doi",
425 "dop",
426 "dow",
427 "drh",
428 "dri",
429 "drs",
430 "dsb",
431 "dtm",
432 "dtp",
433 "dts",
434 "dty",
435 "dua",
436 "duc",
437 "dud",
438 "dug",
439 "dv",
440 "dva",
441 "dww",
442 "dyo",
443 "dyu",
444 "dz",
445 "dzg",
446 "ebu",
447 "ee",
448 "efi",
449 "egl",
450 "egy",
451 "eka",
452 "eky",
453 "el",
454 "ema",
455 "emi",
456 "en",
457 "en-Shaw",
458 "enn",
459 "enq",
460 "eo",
461 "eri",
462 "es",
463 "esg",
464 "esu",
465 "et",
466 "etr",
467 "ett",
468 "etu",
469 "etx",
470 "eu",
471 "ewo",
472 "ext",
473 "eza",
474 "fa",
475 "faa",
476 "fab",
477 "fag",
478 "fai",
479 "fan",
480 "ff",
481 "ff-Adlm",
482 "ffi",
483 "ffm",
484 "fi",
485 "fia",
486 "fil",
487 "fit",
488 "fj",
489 "flr",
490 "fmp",
491 "fo",
492 "fod",
493 "fon",
494 "for",
495 "fpe",
496 "fqs",
497 "fr",
498 "frc",
499 "frp",
500 "frr",
501 "frs",
502 "fub",
503 "fud",
504 "fue",
505 "fuf",
506 "fuh",
507 "fuq",
508 "fur",
509 "fuv",
510 "fuy",
511 "fvr",
512 "fy",
513 "ga",
514 "gaa",
515 "gaf",
516 "gag",
517 "gah",
518 "gaj",
519 "gam",
520 "gan",
521 "gaw",
522 "gay",
523 "gba",
524 "gbf",
525 "gbm",
526 "gby",
527 "gbz",
528 "gcr",
529 "gd",
530 "gde",
531 "gdn",
532 "gdr",
533 "geb",
534 "gej",
535 "gel",
536 "gez",
537 "gfk",
538 "ggn",
539 "ghs",
540 "gil",
541 "gim",
542 "gjk",
543 "gjn",
544 "gju",
545 "gkn",
546 "gkp",
547 "gl",
548 "glk",
549 "gmm",
550 "gmv",
551 "gn",
552 "gnd",
553 "gng",
554 "god",
555 "gof",
556 "goi",
557 "gom",
558 "gon",
559 "gor",
560 "gos",
561 "got",
562 "grb",
563 "grc",
564 "grc-Linb",
565 "grt",
566 "grw",
567 "gsw",
568 "gu",
569 "gub",
570 "guc",
571 "gud",
572 "gur",
573 "guw",
574 "gux",
575 "guz",
576 "gv",
577 "gvf",
578 "gvr",
579 "gvs",
580 "gwc",
581 "gwi",
582 "gwt",
583 "gyi",
584 "ha",
585 "ha-CM",
586 "ha-SD",
587 "hag",
588 "hak",
589 "ham",
590 "haw",
591 "haz",
592 "hbb",
593 "hdy",
594 "he",
595 "hhy",
596 "hi",
597 "hi-Latn",
598 "hia",
599 "hif",
600 "hig",
601 "hih",
602 "hil",
603 "hla",
604 "hlu",
605 "hmd",
606 "hmt",
607 "hnd",
608 "hne",
609 "hnj",
610 "hnn",
611 "hno",
612 "ho",
613 "hoc",
614 "hoj",
615 "hot",
616 "hr",
617 "hsb",
618 "hsn",
619 "ht",
620 "hu",
621 "hui",
622 "hur",
623 "hy",
624 "hz",
625 "ia",
626 "ian",
627 "iar",
628 "iba",
629 "ibb",
630 "iby",
631 "ica",
632 "ich",
633 "id",
634 "idd",
635 "idi",
636 "idu",
637 "ife",
638 "ig",
639 "igb",
640 "ige",
641 "ii",
642 "ijj",
643 "ik",
644 "ikk",
645 "ikw",
646 "ikx",
647 "ilo",
648 "imo",
649 "in",
650 "inh",
651 "io",
652 "iou",
653 "iri",
654 "is",
655 "it",
656 "iu",
657 "iw",
658 "iwm",
659 "iws",
660 "izh",
661 "izi",
662 "ja",
663 "jab",
664 "jam",
665 "jar",
666 "jbo",
667 "jbu",
668 "jen",
669 "jgk",
670 "jgo",
671 "ji",
672 "jib",
673 "jmc",
674 "jml",
675 "jra",
676 "jut",
677 "jv",
678 "jw",
679 "ka",
680 "kaa",
681 "kab",
682 "kac",
683 "kad",
684 "kai",
685 "kaj",
686 "kam",
687 "kao",
688 "kaw",
689 "kbd",
690 "kbm",
691 "kbp",
692 "kbq",
693 "kbx",
694 "kby",
695 "kcg",
696 "kck",
697 "kcl",
698 "kct",
699 "kde",
700 "kdh",
701 "kdl",
702 "kdt",
703 "kea",
704 "ken",
705 "kez",
706 "kfo",
707 "kfr",
708 "kfy",
709 "kg",
710 "kge",
711 "kgf",
712 "kgp",
713 "kha",
714 "khb",
715 "khn",
716 "khq",
717 "khs",
718 "kht",
719 "khw",
720 "khz",
721 "ki",
722 "kij",
723 "kiu",
724 "kiw",
725 "kj",
726 "kjd",
727 "kjg",
728 "kjs",
729 "kjy",
730 "kk",
731 "kk-AF",
732 "kk-Arab",
733 "kk-CN",
734 "kk-IR",
735 "kk-MN",
736 "kkc",
737 "kkj",
738 "kl",
739 "kln",
740 "klq",
741 "klt",
742 "klx",
743 "km",
744 "kmb",
745 "kmh",
746 "kmo",
747 "kms",
748 "kmu",
749 "kmw",
750 "kn",
751 "knf",
752 "knp",
753 "ko",
754 "koi",
755 "kok",
756 "kol",
757 "kos",
758 "koz",
759 "kpe",
760 "kpf",
761 "kpo",
762 "kpr",
763 "kpx",
764 "kqb",
765 "kqf",
766 "kqs",
767 "kqy",
768 "kr",
769 "krc",
770 "kri",
771 "krj",
772 "krl",
773 "krs",
774 "kru",
775 "ks",
776 "ksb",
777 "ksd",
778 "ksf",
779 "ksh",
780 "ksj",
781 "ksr",
782 "ktb",
783 "ktm",
784 "kto",
785 "ktr",
786 "ku",
787 "ku-Arab",
788 "ku-LB",
789 "ku-Yezi",
790 "kub",
791 "kud",
792 "kue",
793 "kuj",
794 "kum",
795 "kun",
796 "kup",
797 "kus",
798 "kv",
799 "kvg",
800 "kvr",
801 "kvx",
802 "kw",
803 "kwj",
804 "kwk",
805 "kwo",
806 "kwq",
807 "kxa",
808 "kxc",
809 "kxe",
810 "kxl",
811 "kxm",
812 "kxp",
813 "kxw",
814 "kxz",
815 "ky",
816 "ky-Arab",
817 "ky-CN",
818 "ky-Latn",
819 "ky-TR",
820 "kye",
821 "kyx",
822 "kzh",
823 "kzj",
824 "kzr",
825 "kzt",
826 "la",
827 "lab",
828 "lad",
829 "lag",
830 "lah",
831 "laj",
832 "las",
833 "lb",
834 "lbe",
835 "lbu",
836 "lbw",
837 "lcm",
838 "lcp",
839 "ldb",
840 "led",
841 "lee",
842 "lem",
843 "lep",
844 "leq",
845 "leu",
846 "lez",
847 "lg",
848 "lgg",
849 "li",
850 "lia",
851 "lid",
852 "lif",
853 "lif-Limb",
854 "lig",
855 "lih",
856 "lij",
857 "lil",
858 "lis",
859 "ljp",
860 "lki",
861 "lkt",
862 "lle",
863 "lln",
864 "lmn",
865 "lmo",
866 "lmp",
867 "ln",
868 "lns",
869 "lnu",
870 "lo",
871 "loj",
872 "lok",
873 "lol",
874 "lor",
875 "los",
876 "loz",
877 "lrc",
878 "lt",
879 "ltg",
880 "lu",
881 "lua",
882 "luo",
883 "luy",
884 "luz",
885 "lv",
886 "lwl",
887 "lzh",
888 "lzz",
889 "mad",
890 "maf",
891 "mag",
892 "mai",
893 "mak",
894 "man",
895 "man-GN",
896 "man-Nkoo",
897 "mas",
898 "maw",
899 "maz",
900 "mbh",
901 "mbo",
902 "mbq",
903 "mbu",
904 "mbw",
905 "mci",
906 "mcp",
907 "mcq",
908 "mcr",
909 "mcu",
910 "mda",
911 "mde",
912 "mdf",
913 "mdh",
914 "mdj",
915 "mdr",
916 "mdx",
917 "med",
918 "mee",
919 "mek",
920 "men",
921 "mer",
922 "met",
923 "meu",
924 "mfa",
925 "mfe",
926 "mfn",
927 "mfo",
928 "mfq",
929 "mg",
930 "mgh",
931 "mgl",
932 "mgo",
933 "mgp",
934 "mgy",
935 "mh",
936 "mhi",
937 "mhl",
938 "mi",
939 "mic",
940 "mif",
941 "min",
942 "miw",
943 "mk",
944 "mki",
945 "mkl",
946 "mkp",
947 "mkw",
948 "ml",
949 "mle",
950 "mlp",
951 "mls",
952 "mmo",
953 "mmu",
954 "mmx",
955 "mn",
956 "mn-CN",
957 "mn-Mong",
958 "mna",
959 "mnf",
960 "mni",
961 "mnw",
962 "mo",
963 "moa",
964 "moe",
965 "moh",
966 "mos",
967 "mox",
968 "mpp",
969 "mps",
970 "mpt",
971 "mpx",
972 "mql",
973 "mr",
974 "mrd",
975 "mrj",
976 "mro",
977 "ms",
978 "ms-CC",
979 "mt",
980 "mtc",
981 "mtf",
982 "mti",
983 "mtr",
984 "mua",
985 "mur",
986 "mus",
987 "mva",
988 "mvn",
989 "mvy",
990 "mwk",
991 "mwr",
992 "mwv",
993 "mww",
994 "mxc",
995 "mxm",
996 "my",
997 "myk",
998 "mym",
999 "myv",
1000 "myw",
1001 "myx",
1002 "myz",
1003 "mzk",
1004 "mzm",
1005 "mzn",
1006 "mzp",
1007 "mzw",
1008 "mzz",
1009 "na",
1010 "nac",
1011 "naf",
1012 "nak",
1013 "nan",
1014 "nap",
1015 "naq",
1016 "nas",
1017 "nb",
1018 "nca",
1019 "nce",
1020 "ncf",
1021 "nch",
1022 "nco",
1023 "ncu",
1024 "nd",
1025 "ndc",
1026 "nds",
1027 "ne",
1028 "neb",
1029 "new",
1030 "nex",
1031 "nfr",
1032 "ng",
1033 "nga",
1034 "ngb",
1035 "ngl",
1036 "nhb",
1037 "nhe",
1038 "nhw",
1039 "nif",
1040 "nii",
1041 "nij",
1042 "nin",
1043 "niu",
1044 "niy",
1045 "niz",
1046 "njo",
1047 "nkg",
1048 "nko",
1049 "nl",
1050 "nmg",
1051 "nmz",
1052 "nn",
1053 "nnf",
1054 "nnh",
1055 "nnk",
1056 "nnm",
1057 "nnp",
1058 "no",
1059 "nod",
1060 "noe",
1061 "non",
1062 "nop",
1063 "nou",
1064 "nqo",
1065 "nr",
1066 "nrb",
1067 "nsk",
1068 "nsn",
1069 "nso",
1070 "nss",
1071 "nst",
1072 "ntm",
1073 "ntr",
1074 "nui",
1075 "nup",
1076 "nus",
1077 "nuv",
1078 "nux",
1079 "nv",
1080 "nwb",
1081 "nxq",
1082 "nxr",
1083 "ny",
1084 "nym",
1085 "nyn",
1086 "nzi",
1087 "oc",
1088 "ogc",
1089 "oj",
1090 "ojs",
1091 "oka",
1092 "okr",
1093 "okv",
1094 "om",
1095 "ong",
1096 "onn",
1097 "ons",
1098 "opm",
1099 "or",
1100 "oro",
1101 "oru",
1102 "os",
1103 "osa",
1104 "ota",
1105 "otk",
1106 "oui",
1107 "ozm",
1108 "pa",
1109 "pa-Arab",
1110 "pa-PK",
1111 "pag",
1112 "pal",
1113 "pal-Phlp",
1114 "pam",
1115 "pap",
1116 "pau",
1117 "pbi",
1118 "pcd",
1119 "pcm",
1120 "pdc",
1121 "pdt",
1122 "ped",
1123 "peo",
1124 "pex",
1125 "pfl",
1126 "phl",
1127 "phn",
1128 "pil",
1129 "pip",
1130 "pka",
1131 "pko",
1132 "pl",
1133 "pla",
1134 "pms",
1135 "png",
1136 "pnn",
1137 "pnt",
1138 "pon",
1139 "ppa",
1140 "ppo",
1141 "pqm",
1142 "pra",
1143 "prd",
1144 "prg",
1145 "ps",
1146 "pss",
1147 "pt",
1148 "ptp",
1149 "puu",
1150 "pwa",
1151 "qu",
1152 "quc",
1153 "qug",
1154 "rai",
1155 "raj",
1156 "rao",
1157 "rcf",
1158 "rej",
1159 "rel",
1160 "res",
1161 "rgn",
1162 "rhg",
1163 "ria",
1164 "rif",
1165 "rif-NL",
1166 "rjs",
1167 "rkt",
1168 "rm",
1169 "rmf",
1170 "rmo",
1171 "rmt",
1172 "rmu",
1173 "rn",
1174 "rna",
1175 "rng",
1176 "ro",
1177 "rob",
1178 "rof",
1179 "roo",
1180 "rro",
1181 "rtm",
1182 "ru",
1183 "rue",
1184 "rug",
1185 "rw",
1186 "rwk",
1187 "rwo",
1188 "ryu",
1189 "sa",
1190 "saf",
1191 "sah",
1192 "saq",
1193 "sas",
1194 "sat",
1195 "sav",
1196 "saz",
1197 "sba",
1198 "sbe",
1199 "sbp",
1200 "sc",
1201 "sck",
1202 "scl",
1203 "scn",
1204 "sco",
1205 "sd",
1206 "sd-Deva",
1207 "sd-IN",
1208 "sd-Khoj",
1209 "sd-Sind",
1210 "sdc",
1211 "sdh",
1212 "se",
1213 "sef",
1214 "seh",
1215 "sei",
1216 "ses",
1217 "sg",
1218 "sga",
1219 "sgs",
1220 "sgw",
1221 "sgz",
1222 "shi",
1223 "shk",
1224 "shn",
1225 "shu",
1226 "si",
1227 "sid",
1228 "sig",
1229 "sil",
1230 "sim",
1231 "sjr",
1232 "sk",
1233 "skc",
1234 "skr",
1235 "sks",
1236 "sl",
1237 "sld",
1238 "sli",
1239 "sll",
1240 "sly",
1241 "sm",
1242 "sma",
1243 "smj",
1244 "smn",
1245 "smp",
1246 "smq",
1247 "sms",
1248 "sn",
1249 "snc",
1250 "snk",
1251 "snp",
1252 "snx",
1253 "sny",
1254 "so",
1255 "sog",
1256 "sok",
1257 "soq",
1258 "sou",
1259 "soy",
1260 "spd",
1261 "spl",
1262 "sps",
1263 "sq",
1264 "sr",
1265 "sr-ME",
1266 "sr-RO",
1267 "sr-RU",
1268 "sr-TR",
1269 "srb",
1270 "srn",
1271 "srr",
1272 "srx",
1273 "ss",
1274 "ssd",
1275 "ssg",
1276 "ssy",
1277 "st",
1278 "stk",
1279 "stq",
1280 "su",
1281 "sua",
1282 "sue",
1283 "suk",
1284 "sur",
1285 "sus",
1286 "sv",
1287 "sw",
1288 "swb",
1289 "swc",
1290 "swg",
1291 "swp",
1292 "swv",
1293 "sxn",
1294 "sxw",
1295 "syl",
1296 "syr",
1297 "szl",
1298 "ta",
1299 "taj",
1300 "tal",
1301 "tan",
1302 "taq",
1303 "tbc",
1304 "tbd",
1305 "tbf",
1306 "tbg",
1307 "tbo",
1308 "tbw",
1309 "tbz",
1310 "tci",
1311 "tcy",
1312 "tdd",
1313 "tdg",
1314 "tdh",
1315 "tdu",
1316 "te",
1317 "ted",
1318 "tem",
1319 "teo",
1320 "tet",
1321 "tfi",
1322 "tg",
1323 "tg-Arab",
1324 "tg-PK",
1325 "tgc",
1326 "tgo",
1327 "tgu",
1328 "th",
1329 "thl",
1330 "thq",
1331 "thr",
1332 "ti",
1333 "tif",
1334 "tig",
1335 "tik",
1336 "tim",
1337 "tio",
1338 "tiv",
1339 "tk",
1340 "tkl",
1341 "tkr",
1342 "tkt",
1343 "tl",
1344 "tlf",
1345 "tlx",
1346 "tly",
1347 "tmh",
1348 "tmy",
1349 "tn",
1350 "tnh",
1351 "to",
1352 "tof",
1353 "tog",
1354 "toq",
1355 "tpi",
1356 "tpm",
1357 "tpz",
1358 "tqo",
1359 "tr",
1360 "tru",
1361 "trv",
1362 "trw",
1363 "ts",
1364 "tsd",
1365 "tsf",
1366 "tsg",
1367 "tsj",
1368 "tsw",
1369 "tt",
1370 "ttd",
1371 "tte",
1372 "ttj",
1373 "ttr",
1374 "tts",
1375 "ttt",
1376 "tuh",
1377 "tul",
1378 "tum",
1379 "tuq",
1380 "tvd",
1381 "tvl",
1382 "tvu",
1383 "twh",
1384 "twq",
1385 "txg",
1386 "txo",
1387 "ty",
1388 "tya",
1389 "tyv",
1390 "tzm",
1391 "ubu",
1392 "udi",
1393 "udm",
1394 "ug",
1395 "ug-Cyrl",
1396 "ug-KZ",
1397 "ug-MN",
1398 "uga",
1399 "uk",
1400 "uli",
1401 "umb",
1402 "und",
1403 "und-002",
1404 "und-003",
1405 "und-005",
1406 "und-009",
1407 "und-011",
1408 "und-013",
1409 "und-014",
1410 "und-015",
1411 "und-017",
1412 "und-018",
1413 "und-019",
1414 "und-021",
1415 "und-029",
1416 "und-030",
1417 "und-034",
1418 "und-035",
1419 "und-039",
1420 "und-053",
1421 "und-054",
1422 "und-057",
1423 "und-061",
1424 "und-142",
1425 "und-143",
1426 "und-145",
1427 "und-150",
1428 "und-151",
1429 "und-154",
1430 "und-155",
1431 "und-202",
1432 "und-419",
1433 "und-AD",
1434 "und-Adlm",
1435 "und-AE",
1436 "und-AF",
1437 "und-Aghb",
1438 "und-Ahom",
1439 "und-AL",
1440 "und-AM",
1441 "und-AO",
1442 "und-AQ",
1443 "und-AR",
1444 "und-Arab",
1445 "und-Arab-CC",
1446 "und-Arab-CN",
1447 "und-Arab-GB",
1448 "und-Arab-ID",
1449 "und-Arab-IN",
1450 "und-Arab-KH",
1451 "und-Arab-MM",
1452 "und-Arab-MN",
1453 "und-Arab-MU",
1454 "und-Arab-NG",
1455 "und-Arab-PK",
1456 "und-Arab-TG",
1457 "und-Arab-TH",
1458 "und-Arab-TJ",
1459 "und-Arab-TR",
1460 "und-Arab-YT",
1461 "und-Armi",
1462 "und-Armn",
1463 "und-AS",
1464 "und-AT",
1465 "und-Avst",
1466 "und-AW",
1467 "und-AX",
1468 "und-AZ",
1469 "und-BA",
1470 "und-Bali",
1471 "und-Bamu",
1472 "und-Bass",
1473 "und-Batk",
1474 "und-BD",
1475 "und-BE",
1476 "und-Beng",
1477 "und-BF",
1478 "und-BG",
1479 "und-BH",
1480 "und-Bhks",
1481 "und-BI",
1482 "und-BJ",
1483 "und-BL",
1484 "und-BN",
1485 "und-BO",
1486 "und-Bopo",
1487 "und-BQ",
1488 "und-BR",
1489 "und-Brah",
1490 "und-Brai",
1491 "und-BT",
1492 "und-Bugi",
1493 "und-Buhd",
1494 "und-BV",
1495 "und-BY",
1496 "und-Cakm",
1497 "und-Cans",
1498 "und-Cari",
1499 "und-CD",
1500 "und-CF",
1501 "und-CG",
1502 "und-CH",
1503 "und-Cham",
1504 "und-Cher",
1505 "und-Chrs",
1506 "und-CI",
1507 "und-CL",
1508 "und-CM",
1509 "und-CN",
1510 "und-CO",
1511 "und-Copt",
1512 "und-CP",
1513 "und-Cpmn",
1514 "und-Cpmn-CY",
1515 "und-Cprt",
1516 "und-CR",
1517 "und-CU",
1518 "und-CV",
1519 "und-CW",
1520 "und-CY",
1521 "und-Cyrl",
1522 "und-Cyrl-AL",
1523 "und-Cyrl-BA",
1524 "und-Cyrl-GE",
1525 "und-Cyrl-GR",
1526 "und-Cyrl-MD",
1527 "und-Cyrl-RO",
1528 "und-Cyrl-SK",
1529 "und-Cyrl-TR",
1530 "und-Cyrl-XK",
1531 "und-CZ",
1532 "und-DE",
1533 "und-Deva",
1534 "und-Deva-BT",
1535 "und-Deva-FJ",
1536 "und-Deva-MU",
1537 "und-Deva-PK",
1538 "und-Diak",
1539 "und-DJ",
1540 "und-DK",
1541 "und-DO",
1542 "und-Dogr",
1543 "und-Dupl",
1544 "und-DZ",
1545 "und-EA",
1546 "und-EC",
1547 "und-EE",
1548 "und-EG",
1549 "und-Egyp",
1550 "und-EH",
1551 "und-Elba",
1552 "und-Elym",
1553 "und-ER",
1554 "und-ES",
1555 "und-ET",
1556 "und-Ethi",
1557 "und-EU",
1558 "und-EZ",
1559 "und-FI",
1560 "und-FO",
1561 "und-FR",
1562 "und-GA",
1563 "und-GE",
1564 "und-Geor",
1565 "und-GF",
1566 "und-GH",
1567 "und-GL",
1568 "und-Glag",
1569 "und-GN",
1570 "und-Gong",
1571 "und-Gonm",
1572 "und-Goth",
1573 "und-GP",
1574 "und-GQ",
1575 "und-GR",
1576 "und-Gran",
1577 "und-Grek",
1578 "und-Grek-TR",
1579 "und-GS",
1580 "und-GT",
1581 "und-Gujr",
1582 "und-Guru",
1583 "und-GW",
1584 "und-Hanb",
1585 "und-Hang",
1586 "und-Hani",
1587 "und-Hano",
1588 "und-Hans",
1589 "und-Hant",
1590 "und-Hant-CA",
1591 "und-Hebr",
1592 "und-Hebr-SE",
1593 "und-Hebr-UA",
1594 "und-Hebr-US",
1595 "und-Hira",
1596 "und-HK",
1597 "und-Hluw",
1598 "und-HM",
1599 "und-Hmng",
1600 "und-Hmnp",
1601 "und-HN",
1602 "und-HR",
1603 "und-HT",
1604 "und-HU",
1605 "und-Hung",
1606 "und-IC",
1607 "und-ID",
1608 "und-IL",
1609 "und-IN",
1610 "und-IQ",
1611 "und-IR",
1612 "und-IS",
1613 "und-IT",
1614 "und-Ital",
1615 "und-Jamo",
1616 "und-Java",
1617 "und-JO",
1618 "und-JP",
1619 "und-Jpan",
1620 "und-Kali",
1621 "und-Kana",
1622 "und-Kawi",
1623 "und-KE",
1624 "und-KG",
1625 "und-KH",
1626 "und-Khar",
1627 "und-Khmr",
1628 "und-Khoj",
1629 "und-Kits",
1630 "und-KM",
1631 "und-Knda",
1632 "und-Kore",
1633 "und-KP",
1634 "und-KR",
1635 "und-Kthi",
1636 "und-KW",
1637 "und-KZ",
1638 "und-LA",
1639 "und-Lana",
1640 "und-Laoo",
1641 "und-Latn-AF",
1642 "und-Latn-AM",
1643 "und-Latn-CN",
1644 "und-Latn-CY",
1645 "und-Latn-DZ",
1646 "und-Latn-ET",
1647 "und-Latn-GE",
1648 "und-Latn-IR",
1649 "und-Latn-KM",
1650 "und-Latn-MA",
1651 "und-Latn-MK",
1652 "und-Latn-MM",
1653 "und-Latn-MO",
1654 "und-Latn-MR",
1655 "und-Latn-RU",
1656 "und-Latn-SY",
1657 "und-Latn-TN",
1658 "und-Latn-TW",
1659 "und-Latn-UA",
1660 "und-LB",
1661 "und-Lepc",
1662 "und-LI",
1663 "und-Limb",
1664 "und-Lina",
1665 "und-Linb",
1666 "und-Lisu",
1667 "und-LK",
1668 "und-LS",
1669 "und-LT",
1670 "und-LU",
1671 "und-LV",
1672 "und-LY",
1673 "und-Lyci",
1674 "und-Lydi",
1675 "und-MA",
1676 "und-Mahj",
1677 "und-Maka",
1678 "und-Mand",
1679 "und-Mani",
1680 "und-Marc",
1681 "und-MC",
1682 "und-MD",
1683 "und-ME",
1684 "und-Medf",
1685 "und-Mend",
1686 "und-Merc",
1687 "und-Mero",
1688 "und-MF",
1689 "und-MG",
1690 "und-MK",
1691 "und-ML",
1692 "und-Mlym",
1693 "und-MM",
1694 "und-MN",
1695 "und-MO",
1696 "und-Modi",
1697 "und-Mong",
1698 "und-MQ",
1699 "und-MR",
1700 "und-Mroo",
1701 "und-MT",
1702 "und-Mtei",
1703 "und-MU",
1704 "und-Mult",
1705 "und-MV",
1706 "und-MX",
1707 "und-MY",
1708 "und-Mymr",
1709 "und-Mymr-IN",
1710 "und-Mymr-TH",
1711 "und-MZ",
1712 "und-NA",
1713 "und-Nagm",
1714 "und-Nand",
1715 "und-Narb",
1716 "und-Nbat",
1717 "und-NC",
1718 "und-NE",
1719 "und-Newa",
1720 "und-NI",
1721 "und-Nkoo",
1722 "und-NL",
1723 "und-NO",
1724 "und-NP",
1725 "und-Nshu",
1726 "und-Ogam",
1727 "und-Olck",
1728 "und-OM",
1729 "und-Orkh",
1730 "und-Orya",
1731 "und-Osge",
1732 "und-Osma",
1733 "und-Ougr",
1734 "und-PA",
1735 "und-Palm",
1736 "und-Pauc",
1737 "und-PE",
1738 "und-Perm",
1739 "und-PF",
1740 "und-PG",
1741 "und-PH",
1742 "und-Phag",
1743 "und-Phli",
1744 "und-Phlp",
1745 "und-Phnx",
1746 "und-PK",
1747 "und-PL",
1748 "und-Plrd",
1749 "und-PM",
1750 "und-PR",
1751 "und-Prti",
1752 "und-PS",
1753 "und-PT",
1754 "und-PW",
1755 "und-PY",
1756 "und-QA",
1757 "und-QO",
1758 "und-RE",
1759 "und-Rjng",
1760 "und-RO",
1761 "und-Rohg",
1762 "und-RS",
1763 "und-RU",
1764 "und-Runr",
1765 "und-RW",
1766 "und-SA",
1767 "und-Samr",
1768 "und-Sarb",
1769 "und-Saur",
1770 "und-SC",
1771 "und-SD",
1772 "und-SE",
1773 "und-Sgnw",
1774 "und-Shaw",
1775 "und-Shrd",
1776 "und-SI",
1777 "und-Sidd",
1778 "und-Sind",
1779 "und-Sinh",
1780 "und-SJ",
1781 "und-SK",
1782 "und-SM",
1783 "und-SN",
1784 "und-SO",
1785 "und-Sogd",
1786 "und-Sogo",
1787 "und-Sora",
1788 "und-Soyo",
1789 "und-SR",
1790 "und-ST",
1791 "und-Sund",
1792 "und-SV",
1793 "und-SY",
1794 "und-Sylo",
1795 "und-Syrc",
1796 "und-Tagb",
1797 "und-Takr",
1798 "und-Tale",
1799 "und-Talu",
1800 "und-Taml",
1801 "und-Tang",
1802 "und-Tavt",
1803 "und-TD",
1804 "und-Telu",
1805 "und-TF",
1806 "und-Tfng",
1807 "und-TG",
1808 "und-Tglg",
1809 "und-TH",
1810 "und-Thaa",
1811 "und-Thai",
1812 "und-Thai-CN",
1813 "und-Thai-KH",
1814 "und-Thai-LA",
1815 "und-Tibt",
1816 "und-Tirh",
1817 "und-TJ",
1818 "und-TK",
1819 "und-TL",
1820 "und-TM",
1821 "und-TN",
1822 "und-Tnsa",
1823 "und-TO",
1824 "und-Toto",
1825 "und-TR",
1826 "und-TV",
1827 "und-TW",
1828 "und-TZ",
1829 "und-UA",
1830 "und-UG",
1831 "und-Ugar",
1832 "und-UY",
1833 "und-UZ",
1834 "und-VA",
1835 "und-Vaii",
1836 "und-VE",
1837 "und-Vith",
1838 "und-VN",
1839 "und-VU",
1840 "und-Wara",
1841 "und-Wcho",
1842 "und-WF",
1843 "und-WS",
1844 "und-XK",
1845 "und-Xpeo",
1846 "und-Xsux",
1847 "und-YE",
1848 "und-Yezi",
1849 "und-Yiii",
1850 "und-YT",
1851 "und-Zanb",
1852 "und-ZW",
1853 "unr",
1854 "unr-Deva",
1855 "unr-NP",
1856 "unx",
1857 "uok",
1858 "ur",
1859 "uri",
1860 "urt",
1861 "urw",
1862 "usa",
1863 "uth",
1864 "utr",
1865 "uvh",
1866 "uvl",
1867 "uz",
1868 "uz-AF",
1869 "uz-Arab",
1870 "uz-CN",
1871 "vag",
1872 "vai",
1873 "van",
1874 "ve",
1875 "vec",
1876 "vep",
1877 "vi",
1878 "vic",
1879 "viv",
1880 "vls",
1881 "vmf",
1882 "vmw",
1883 "vo",
1884 "vot",
1885 "vro",
1886 "vun",
1887 "vut",
1888 "wa",
1889 "wae",
1890 "waj",
1891 "wal",
1892 "wan",
1893 "war",
1894 "wbp",
1895 "wbq",
1896 "wbr",
1897 "wci",
1898 "wer",
1899 "wgi",
1900 "whg",
1901 "wib",
1902 "wiu",
1903 "wiv",
1904 "wja",
1905 "wji",
1906 "wls",
1907 "wmo",
1908 "wnc",
1909 "wni",
1910 "wnu",
1911 "wo",
1912 "wob",
1913 "wos",
1914 "wrs",
1915 "wsg",
1916 "wsk",
1917 "wtm",
1918 "wuu",
1919 "wuv",
1920 "wwa",
1921 "xav",
1922 "xbi",
1923 "xco",
1924 "xcr",
1925 "xes",
1926 "xh",
1927 "xla",
1928 "xlc",
1929 "xld",
1930 "xmf",
1931 "xmn",
1932 "xmr",
1933 "xna",
1934 "xnr",
1935 "xog",
1936 "xon",
1937 "xpr",
1938 "xrb",
1939 "xsa",
1940 "xsi",
1941 "xsm",
1942 "xsr",
1943 "xwe",
1944 "yam",
1945 "yao",
1946 "yap",
1947 "yas",
1948 "yat",
1949 "yav",
1950 "yay",
1951 "yaz",
1952 "yba",
1953 "ybb",
1954 "yby",
1955 "yer",
1956 "ygr",
1957 "ygw",
1958 "yi",
1959 "yko",
1960 "yle",
1961 "ylg",
1962 "yll",
1963 "yml",
1964 "yo",
1965 "yon",
1966 "yrb",
1967 "yre",
1968 "yrl",
1969 "yss",
1970 "yua",
1971 "yue",
1972 "yue-CN",
1973 "yue-Hans",
1974 "yuj",
1975 "yut",
1976 "yuw",
1977 "za",
1978 "zag",
1979 "zdj",
1980 "zea",
1981 "zgh",
1982 "zh",
1983 "zh-AU",
1984 "zh-BN",
1985 "zh-Bopo",
1986 "zh-GB",
1987 "zh-GF",
1988 "zh-Hanb",
1989 "zh-Hant",
1990 "zh-HK",
1991 "zh-ID",
1992 "zh-MO",
1993 "zh-PA",
1994 "zh-PF",
1995 "zh-PH",
1996 "zh-SR",
1997 "zh-TH",
1998 "zh-TW",
1999 "zh-US",
2000 "zh-VN",
2001 "zhx",
2002 "zia",
2003 "zkt",
2004 "zlm",
2005 "zmi",
2006 "zne",
2007 "zu",
2008 "zza",
2009 ];
2010 }
2011
2012 #[allow(dead_code)]
2013 pub mod short_subtags_10pct {
2014 pub static STRINGS: &[&str] = &[
2015 "aa",
2016 "acd",
2017 "aeb",
2018 "ahl",
2019 "amm",
2020 "aom",
2021 "arc-Nbat",
2022 "asa",
2023 "avl",
2024 "az",
2025 "bas",
2026 "bcf",
2027 "bef",
2028 "bft",
2029 "bho",
2030 "bjh",
2031 "bkq",
2032 "bmu",
2033 "bqc",
2034 "bsj",
2035 "bug",
2036 "bye",
2037 "bzw",
2038 "cgg",
2039 "cjv",
2040 "cop",
2041 "csw",
2042 "dah",
2043 "den",
2044 "dnj",
2045 "dtp",
2046 "dyo",
2047 "eky",
2048 "es",
2049 "ext",
2050 "ffi",
2051 "fod",
2052 "fub",
2053 "fy",
2054 "gay",
2055 "gdr",
2056 "gjk",
2057 "gnd",
2058 "grb",
2059 "gur",
2060 "gwt",
2061 "hbb",
2062 "hil",
2063 "ho",
2064 "hur",
2065 "ich",
2066 "ijj",
2067 "iou",
2068 "ja",
2069 "jib",
2070 "kac",
2071 "kbq",
2072 "kdt",
2073 "kgp",
2074 "kij",
2075 "kk-Arab",
2076 "klx",
2077 "knp",
2078 "kpr",
2079 "krl",
2080 "ktb",
2081 "kue",
2082 "kw",
2083 "kxp",
2084 "kzh",
2085 "las",
2086 "lem",
2087 "lif",
2088 "lle",
2089 "lok",
2090 "luo",
2091 "mai",
2092 "mbq",
2093 "mdf",
2094 "met",
2095 "mgo",
2096 "miw",
2097 "mmo",
2098 "mo",
2099 "mql",
2100 "mti",
2101 "mwv",
2102 "myz",
2103 "nak",
2104 "nco",
2105 "ng",
2106 "nin",
2107 "nn",
2108 "nop",
2109 "ntm",
2110 "nxr",
2111 "okr",
2112 "os",
2113 "pal",
2114 "ped",
2115 "pl",
2116 "pra",
2117 "quc",
2118 "rhg",
2119 "rmu",
2120 "ru",
2121 "saq",
2122 "scl",
2123 "se",
2124 "shi",
2125 "sk",
2126 "sma",
2127 "snx",
2128 "sps",
2129 "srx",
2130 "sue",
2131 "swv",
2132 "taq",
2133 "tdd",
2134 "tg",
2135 "ti",
2136 "tkt",
2137 "tof",
2138 "trw",
2139 "ttj",
2140 "tvu",
2141 "udi",
2142 "und",
2143 "und-018",
2144 "und-057",
2145 "und-419",
2146 "und-AQ",
2147 "und-Arab-MN",
2148 "und-Armn",
2149 "und-Bass",
2150 "und-BJ",
2151 "und-Bugi",
2152 "und-CH",
2153 "und-CP",
2154 "und-Cyrl-AL",
2155 "und-DE",
2156 "und-Dogr",
2157 "und-Elym",
2158 "und-GA",
2159 "und-Goth",
2160 "und-Guru",
2161 "und-Hebr-SE",
2162 "und-HR",
2163 "und-IS",
2164 "und-Kawi",
2165 "und-Kore",
2166 "und-Latn-AM",
2167 "und-Latn-MM",
2168 "und-LI",
2169 "und-LY",
2170 "und-MD",
2171 "und-Mlym",
2172 "und-Mtei",
2173 "und-NA",
2174 "und-NL",
2175 "und-Osma",
2176 "und-Phag",
2177 "und-PS",
2178 "und-RS",
2179 "und-SE",
2180 "und-SM",
2181 "und-SV",
2182 "und-Tavt",
2183 "und-Thai-CN",
2184 "und-Tnsa",
2185 "und-UY",
2186 "und-WF",
2187 "und-ZW",
2188 "usa",
2189 "vai",
2190 "vmw",
2191 "wan",
2192 "wiu",
2193 "wob",
2194 "xbi",
2195 "xmr",
2196 "xsr",
2197 "yba",
2198 "yll",
2199 "yue-CN",
2200 "zh",
2201 "zh-MO",
2202 "zia",
2203 ];
2204 }
2205
2206 #[allow(dead_code)]
2207 pub mod locales_with_aux {
2208 pub static NUM_UNIQUE_BLOBS: usize = 411;
2209 pub static STRINGS: &[&str] = &["af-x-3", "af-x-3s", "af-x-4", "af-x-4s", "af-x-5", "af-x-5s", "am-x-3", "am-x-3s", "am-x-4", "am-x-4s", "am-x-5", "am-x-5s", "ar-DZ-x-3", "ar-DZ-x-3s", "ar-DZ-x-4", "ar-DZ-x-4s", "ar-DZ-x-5", "ar-DZ-x-5s", "ar-IQ-x-3", "ar-IQ-x-3s", "ar-IQ-x-4", "ar-IQ-x-4s", "ar-IQ-x-5", "ar-IQ-x-5s", "ar-JO-x-3", "ar-JO-x-3s", "ar-JO-x-4", "ar-JO-x-4s", "ar-JO-x-5", "ar-JO-x-5s", "ar-LB-x-3", "ar-LB-x-3s", "ar-LB-x-4", "ar-LB-x-4s", "ar-LB-x-5", "ar-LB-x-5s", "ar-MA-x-3", "ar-MA-x-3s", "ar-MA-x-4", "ar-MA-x-4s", "ar-MA-x-5", "ar-MA-x-5s", "ar-MR-x-3", "ar-MR-x-3s", "ar-MR-x-4", "ar-MR-x-4s", "ar-MR-x-5", "ar-MR-x-5s", "ar-PS-x-3", "ar-PS-x-3s", "ar-PS-x-4", "ar-PS-x-4s", "ar-PS-x-5", "ar-PS-x-5s", "ar-SY-x-3", "ar-SY-x-3s", "ar-SY-x-4", "ar-SY-x-4s", "ar-SY-x-5", "ar-SY-x-5s", "ar-TN-x-3", "ar-TN-x-3s", "ar-TN-x-4", "ar-TN-x-4s", "ar-TN-x-5", "ar-TN-x-5s", "ar-x-3", "ar-x-3s", "ar-x-4", "ar-x-4s", "ar-x-5", "ar-x-5s", "as-x-3", "as-x-3s", "as-x-4", "as-x-4s", "as-x-5", "as-x-5s", "ast-x-3", "ast-x-3s", "ast-x-4", "ast-x-4s", "ast-x-5", "ast-x-5s", "az-x-3", "az-x-3s", "az-x-5", "az-x-5s", "be-x-3", "be-x-3s", "be-x-4", "be-x-4s", "be-x-5", "be-x-5s", "bg-x-3", "bg-x-3s", "bg-x-4", "bg-x-4s", "bg-x-5", "bg-x-5s", "bgc-x-3", "bgc-x-3s", "bgc-x-5", "bgc-x-5s", "bho-x-3", "bho-x-3s", "bho-x-5", "bho-x-5s", "bn-IN-x-3", "bn-IN-x-3s", "bn-IN-x-4", "bn-IN-x-4s", "bn-x-3", "bn-x-3s", "bn-x-4", "bn-x-4s", "bn-x-5", "bn-x-5s", "br-x-3", "br-x-3s", "br-x-4", "br-x-4s", "br-x-5", "br-x-5s", "brx-x-3", "brx-x-3s", "brx-x-4", "brx-x-4s", "brx-x-5", "brx-x-5s", "bs-Cyrl-x-3", "bs-Cyrl-x-3s", "bs-Cyrl-x-4", "bs-Cyrl-x-4s", "bs-Cyrl-x-5", "bs-Cyrl-x-5s", "bs-x-3", "bs-x-3s", "bs-x-4", "bs-x-4s", "bs-x-5", "bs-x-5s", "ca-x-3", "ca-x-3s", "ca-x-4", "ca-x-4s", "ca-x-5", "ca-x-5s", "ceb-x-3", "ceb-x-3s", "ceb-x-4", "ceb-x-4s", "ceb-x-5", "ceb-x-5s", "chr-x-3", "chr-x-3s", "chr-x-4", "chr-x-4s", "chr-x-5", "chr-x-5s", "cs-x-3", "cs-x-3s", "cs-x-5", "cs-x-5s", "cv-x-3", "cv-x-3s", "cv-x-4", "cv-x-4s", "cv-x-5", "cv-x-5s", "cy-x-3", "cy-x-3s", "cy-x-4", "cy-x-4s", "cy-x-5", "cy-x-5s", "da-x-3", "da-x-3s", "da-x-4", "da-x-4s", "da-x-5", "da-x-5s", "de-AT-x-3", "de-AT-x-3s", "de-AT-x-5", "de-AT-x-5s", "de-IT-x-3", "de-IT-x-3s", "de-IT-x-5", "de-IT-x-5s", "de-x-3", "de-x-3s", "de-x-4", "de-x-4s", "de-x-5", "de-x-5s", "doi-x-3", "doi-x-3s", "doi-x-4", "doi-x-4s", "doi-x-5", "doi-x-5s", "dsb-x-3", "dsb-x-3s", "dsb-x-4", "dsb-x-4s", "dsb-x-5", "dsb-x-5s", "el-polyton-x-3", "el-polyton-x-5", "el-polyton-x-5s", "el-x-3", "el-x-3s", "el-x-4", "el-x-4s", "el-x-5", "el-x-5s", "en-001-x-3", "en-001-x-3s", "en-150-x-3", "en-150-x-3s", "en-AG-x-3", "en-AG-x-3s", "en-AI-x-3", "en-AI-x-3s", "en-AT-x-3", "en-AT-x-3s", "en-AU-x-3", "en-AU-x-3s", "en-BB-x-3", "en-BB-x-3s", "en-BE-x-3", "en-BE-x-3s", "en-BM-x-3", "en-BM-x-3s", "en-BS-x-3", "en-BS-x-3s", "en-BW-x-3", "en-BW-x-3s", "en-BZ-x-3", "en-BZ-x-3s", "en-CC-x-3", "en-CC-x-3s", "en-CH-x-3", "en-CH-x-3s", "en-CK-x-3", "en-CK-x-3s", "en-CM-x-3", "en-CM-x-3s", "en-CX-x-3", "en-CX-x-3s", "en-CY-x-3", "en-CY-x-3s", "en-DE-x-3", "en-DE-x-3s", "en-DG-x-3", "en-DG-x-3s", "en-DK-x-3", "en-DK-x-3s", "en-DM-x-3", "en-DM-x-3s", "en-ER-x-3", "en-ER-x-3s", "en-FI-x-3", "en-FI-x-3s", "en-FJ-x-3", "en-FJ-x-3s", "en-FK-x-3", "en-FK-x-3s", "en-FM-x-3", "en-FM-x-3s", "en-GB-x-3", "en-GB-x-3s", "en-GD-x-3", "en-GD-x-3s", "en-GG-x-3", "en-GG-x-3s", "en-GH-x-3", "en-GH-x-3s", "en-GI-x-3", "en-GI-x-3s", "en-GM-x-3", "en-GM-x-3s", "en-GY-x-3", "en-GY-x-3s", "en-HK-x-3", "en-HK-x-3s", "en-IE-x-3", "en-IE-x-3s", "en-IL-x-3", "en-IL-x-3s", "en-IM-x-3", "en-IM-x-3s", "en-IN-x-3", "en-IN-x-3s", "en-IO-x-3", "en-IO-x-3s", "en-JE-x-3", "en-JE-x-3s", "en-JM-x-3", "en-JM-x-3s", "en-KE-x-3", "en-KE-x-3s", "en-KI-x-3", "en-KI-x-3s", "en-KN-x-3", "en-KN-x-3s", "en-KY-x-3", "en-KY-x-3s", "en-LC-x-3", "en-LC-x-3s", "en-LR-x-3", "en-LR-x-3s", "en-LS-x-3", "en-LS-x-3s", "en-MG-x-3", "en-MG-x-3s", "en-MO-x-3", "en-MO-x-3s", "en-MS-x-3", "en-MS-x-3s", "en-MT-x-3", "en-MT-x-3s", "en-MU-x-3", "en-MU-x-3s", "en-MV-x-3", "en-MV-x-3s", "en-MW-x-3", "en-MW-x-3s", "en-MY-x-3", "en-MY-x-3s", "en-NA-x-3", "en-NA-x-3s", "en-NF-x-3", "en-NF-x-3s", "en-NG-x-3", "en-NG-x-3s", "en-NL-x-3", "en-NL-x-3s", "en-NR-x-3", "en-NR-x-3s", "en-NU-x-3", "en-NU-x-3s", "en-NZ-x-3", "en-NZ-x-3s", "en-PG-x-3", "en-PG-x-3s", "en-PK-x-3", "en-PK-x-3s", "en-PN-x-3", "en-PN-x-3s", "en-PW-x-3", "en-PW-x-3s", "en-RW-x-3", "en-RW-x-3s", "en-SB-x-3", "en-SB-x-3s", "en-SC-x-3", "en-SC-x-3s", "en-SD-x-3", "en-SD-x-3s", "en-SE-x-3", "en-SE-x-3s", "en-SG-x-3", "en-SG-x-3s", "en-SH-x-3", "en-SH-x-3s", "en-SI-x-3", "en-SI-x-3s", "en-SL-x-3", "en-SL-x-3s", "en-SS-x-3", "en-SS-x-3s", "en-SX-x-3", "en-SX-x-3s", "en-SZ-x-3", "en-SZ-x-3s", "en-TC-x-3", "en-TC-x-3s", "en-TK-x-3", "en-TK-x-3s", "en-TO-x-3", "en-TO-x-3s", "en-TT-x-3", "en-TT-x-3s", "en-TV-x-3", "en-TV-x-3s", "en-TZ-x-3", "en-TZ-x-3s", "en-UG-x-3", "en-UG-x-3s", "en-VC-x-3", "en-VC-x-3s", "en-VG-x-3", "en-VG-x-3s", "en-VU-x-3", "en-VU-x-3s", "en-WS-x-3", "en-WS-x-3s", "en-ZA-x-3", "en-ZA-x-3s", "en-ZM-x-3", "en-ZM-x-3s", "en-ZW-x-3", "en-ZW-x-3s", "en-x-3", "en-x-3s", "en-x-4", "en-x-4s", "en-x-5", "en-x-5s", "es-CL-x-3s", "es-CO-x-3s", "es-PE-x-3", "es-PE-x-3s", "es-PE-x-5", "es-PE-x-5s", "es-PY-x-3", "es-PY-x-3s", "es-UY-x-3", "es-UY-x-3s", "es-UY-x-5", "es-UY-x-5s", "es-VE-x-3", "es-VE-x-3s", "es-x-3", "es-x-3s", "es-x-4", "es-x-4s", "es-x-5", "es-x-5s", "et-x-3", "et-x-3s", "et-x-4", "et-x-4s", "et-x-5", "et-x-5s", "eu-x-3", "eu-x-3s", "eu-x-4", "eu-x-4s", "eu-x-5", "eu-x-5s", "fa-AF-x-3", "fa-AF-x-3s", "fa-AF-x-4", "fa-AF-x-4s", "fa-AF-x-5", "fa-AF-x-5s", "fa-x-3", "fa-x-3s", "fa-x-4", "fa-x-4s", "fa-x-5", "fa-x-5s", "ff-Adlm-x-3", "ff-Adlm-x-3s", "ff-Adlm-x-4", "ff-Adlm-x-4s", "ff-Adlm-x-5", "ff-Adlm-x-5s", "fi-x-3", "fi-x-3s", "fi-x-4", "fi-x-4s", "fi-x-5", "fi-x-5s", "fil-x-3", "fil-x-3s", "fil-x-4", "fil-x-4s", "fil-x-5", "fil-x-5s", "fo-x-3", "fo-x-3s", "fo-x-4", "fo-x-4s", "fo-x-5", "fo-x-5s", "fr-CA-x-3", "fr-CA-x-3s", "fr-MA-x-3", "fr-MA-x-3s", "fr-x-3", "fr-x-3s", "fr-x-4", "fr-x-4s", "fr-x-5", "fr-x-5s", "ga-x-3", "ga-x-3s", "ga-x-4", "ga-x-4s", "ga-x-5", "ga-x-5s", "gd-x-3", "gd-x-3s", "gd-x-4", "gd-x-4s", "gd-x-5", "gd-x-5s", "gl-x-3", "gl-x-3s", "gl-x-4", "gl-x-4s", "gl-x-5", "gl-x-5s", "gu-x-3", "gu-x-3s", "gu-x-4", "gu-x-4s", "gu-x-5", "gu-x-5s", "ha-x-3", "ha-x-3s", "ha-x-4", "ha-x-4s", "ha-x-5", "ha-x-5s", "he-x-3", "he-x-3s", "he-x-5", "he-x-5s", "hi-Latn-x-3", "hi-Latn-x-3s", "hi-Latn-x-4", "hi-Latn-x-4s", "hi-Latn-x-5", "hi-Latn-x-5s", "hi-x-3", "hi-x-3s", "hi-x-4", "hi-x-4s", "hi-x-5", "hi-x-5s", "hr-x-3", "hr-x-3s", "hr-x-4", "hr-x-4s", "hr-x-5", "hr-x-5s", "hsb-x-3", "hsb-x-3s", "hsb-x-4", "hsb-x-4s", "hsb-x-5", "hsb-x-5s", "hu-x-3", "hu-x-3s", "hu-x-4", "hu-x-4s", "hu-x-5", "hu-x-5s", "hy-x-3", "hy-x-3s", "hy-x-4", "hy-x-4s", "hy-x-5", "hy-x-5s", "ia-x-3", "ia-x-3s", "ia-x-4", "ia-x-5", "ia-x-5s", "id-x-3", "id-x-3s", "id-x-4", "id-x-4s", "id-x-5", "id-x-5s", "ig-x-3", "ig-x-3s", "ig-x-4", "ig-x-4s", "ig-x-5", "ig-x-5s", "is-x-3", "is-x-3s", "is-x-4", "is-x-4s", "is-x-5", "is-x-5s", "it-x-3", "it-x-3s", "it-x-4", "it-x-4s", "it-x-5", "it-x-5s", "ja-x-3", "ja-x-3s", "ja-x-5", "ja-x-5s", "jv-x-3", "jv-x-3s", "jv-x-4", "jv-x-4s", "jv-x-5", "jv-x-5s", "ka-x-3", "ka-x-3s", "ka-x-4", "ka-x-4s", "ka-x-5", "ka-x-5s", "kea-x-3", "kea-x-3s", "kea-x-4", "kea-x-4s", "kea-x-5", "kea-x-5s", "kgp-x-3", "kgp-x-3s", "kgp-x-4", "kgp-x-4s", "kgp-x-5", "kgp-x-5s", "kk-x-3", "kk-x-3s", "kk-x-4", "kk-x-4s", "kk-x-5", "kk-x-5s", "km-x-3", "km-x-3s", "km-x-4", "km-x-4s", "km-x-5", "km-x-5s", "kn-x-3", "kn-x-3s", "kn-x-4", "kn-x-4s", "kn-x-5", "kn-x-5s", "ko-x-3", "ko-x-3s", "ko-x-4", "ko-x-4s", "ko-x-5", "ko-x-5s", "kok-x-3", "kok-x-3s", "kok-x-5", "kok-x-5s", "ks-Deva-x-3", "ks-Deva-x-3s", "ks-Deva-x-4", "ks-Deva-x-4s", "ks-Deva-x-5", "ks-Deva-x-5s", "ks-x-3", "ks-x-3s", "ks-x-4", "ks-x-4s", "ks-x-5", "ks-x-5s", "ky-x-3", "ky-x-3s", "ky-x-4", "ky-x-4s", "ky-x-5", "ky-x-5s", "lo-x-3", "lo-x-3s", "lo-x-5", "lo-x-5s", "lt-x-3", "lt-x-3s", "lt-x-4", "lt-x-4s", "lt-x-5", "lt-x-5s", "lv-x-3", "lv-x-3s", "lv-x-4", "lv-x-4s", "lv-x-5", "lv-x-5s", "mai-x-3", "mai-x-3s", "mai-x-4", "mai-x-4s", "mai-x-5", "mai-x-5s", "mi-x-3", "mi-x-3s", "mi-x-4", "mi-x-4s", "mi-x-5", "mi-x-5s", "mk-x-3", "mk-x-3s", "mk-x-4", "mk-x-4s", "mk-x-5", "mk-x-5s", "ml-x-3", "ml-x-3s", "ml-x-4", "ml-x-4s", "ml-x-5", "ml-x-5s", "mn-x-3", "mn-x-3s", "mn-x-4", "mn-x-4s", "mn-x-5", "mn-x-5s", "mni-x-3", "mni-x-3s", "mni-x-4", "mni-x-4s", "mni-x-5", "mni-x-5s", "mr-x-3", "mr-x-3s", "mr-x-4", "mr-x-4s", "mr-x-5", "mr-x-5s", "ms-x-3", "ms-x-3s", "ms-x-4", "ms-x-4s", "ms-x-5", "ms-x-5s", "my-x-3", "my-x-3s", "my-x-4", "my-x-4s", "my-x-5", "my-x-5s", "nb-x-3", "nb-x-3s", "nb-x-4", "nb-x-4s", "nb-x-5", "nb-x-5s", "ne-x-3", "ne-x-3s", "ne-x-4", "ne-x-4s", "ne-x-5", "ne-x-5s", "nl-x-3", "nl-x-3s", "nl-x-4", "nl-x-4s", "nl-x-5", "nl-x-5s", "nn-x-3", "nn-x-3s", "nn-x-4", "nn-x-4s", "nn-x-5", "nn-x-5s", "no-x-3", "no-x-3s", "no-x-4", "no-x-4s", "no-x-5", "no-x-5s", "or-x-3", "or-x-3s", "or-x-4", "or-x-4s", "or-x-5", "or-x-5s", "pa-x-3", "pa-x-3s", "pa-x-4", "pa-x-4s", "pa-x-5", "pa-x-5s", "pcm-x-3", "pcm-x-3s", "pcm-x-4", "pcm-x-4s", "pcm-x-5", "pcm-x-5s", "pl-x-3", "pl-x-3s", "pl-x-4", "pl-x-4s", "pl-x-5", "pl-x-5s", "ps-x-3", "ps-x-3s", "ps-x-4", "ps-x-5", "ps-x-5s", "pt-x-3", "pt-x-3s", "pt-x-4", "pt-x-4s", "pt-x-5", "pt-x-5s", "qu-x-3", "qu-x-3s", "qu-x-5", "qu-x-5s", "raj-x-3", "raj-x-3s", "raj-x-5", "raj-x-5s", "rm-x-3", "rm-x-3s", "rm-x-4", "rm-x-4s", "rm-x-5", "rm-x-5s", "ro-x-3", "ro-x-3s", "ro-x-4", "ro-x-4s", "ro-x-5", "ro-x-5s", "ru-x-3", "ru-x-3s", "ru-x-4", "ru-x-4s", "ru-x-5", "ru-x-5s", "sa-x-3", "sa-x-3s", "sa-x-4", "sa-x-5", "sa-x-5s", "sat-x-3", "sat-x-3s", "sat-x-4", "sat-x-4s", "sat-x-5", "sat-x-5s", "sc-x-3", "sc-x-3s", "sc-x-4", "sc-x-4s", "sc-x-5", "sc-x-5s", "sd-Deva-x-3", "sd-Deva-x-3s", "sd-Deva-x-4", "sd-Deva-x-4s", "sd-Deva-x-5", "sd-Deva-x-5s", "sd-x-3", "sd-x-3s", "sd-x-4", "sd-x-4s", "sd-x-5", "sd-x-5s", "si-x-3", "si-x-3s", "si-x-4", "si-x-4s", "si-x-5", "si-x-5s", "sk-x-3", "sk-x-3s", "sk-x-4", "sk-x-4s", "sk-x-5", "sk-x-5s", "sl-x-3", "sl-x-3s", "sl-x-4", "sl-x-4s", "sl-x-5", "sl-x-5s", "so-x-3", "so-x-3s", "so-x-4", "so-x-4s", "so-x-5", "so-x-5s", "sq-x-3", "sq-x-3s", "sq-x-4", "sq-x-4s", "sq-x-5", "sq-x-5s", "sr-Latn-XK-x-3", "sr-Latn-XK-x-3s", "sr-Latn-x-3", "sr-Latn-x-3s", "sr-Latn-x-4", "sr-Latn-x-4s", "sr-Latn-x-5", "sr-Latn-x-5s", "sr-ME-x-3", "sr-ME-x-3s", "sr-XK-x-3", "sr-XK-x-3s", "sr-x-3", "sr-x-3s", "sr-x-4", "sr-x-4s", "sr-x-5", "sr-x-5s", "su-x-3", "su-x-3s", "su-x-4", "su-x-4s", "su-x-5", "su-x-5s", "sv-x-3", "sv-x-3s", "sv-x-4", "sv-x-4s", "sv-x-5", "sv-x-5s", "sw-x-3", "sw-x-3s", "sw-x-4", "sw-x-4s", "sw-x-5", "sw-x-5s", "ta-x-3", "ta-x-3s", "ta-x-4", "ta-x-4s", "ta-x-5", "ta-x-5s", "te-x-3", "te-x-3s", "te-x-4", "te-x-4s", "te-x-5", "te-x-5s", "tg-x-3", "tg-x-3s", "tg-x-4", "tg-x-4s", "tg-x-5", "tg-x-5s", "th-x-3", "th-x-3s", "th-x-4", "th-x-4s", "th-x-5", "th-x-5s", "ti-x-3", "ti-x-3s", "ti-x-4", "ti-x-4s", "ti-x-5", "ti-x-5s", "tk-x-3", "tk-x-3s", "tk-x-4", "tk-x-4s", "tk-x-5", "tk-x-5s", "to-x-3", "to-x-3s", "to-x-4", "to-x-4s", "to-x-5", "to-x-5s", "tr-x-3", "tr-x-3s", "tr-x-4", "tr-x-4s", "tr-x-5", "tr-x-5s", "tt-x-3", "tt-x-3s", "tt-x-5", "tt-x-5s", "uk-x-3", "uk-x-3s", "uk-x-4", "uk-x-4s", "uk-x-5", "uk-x-5s", "und-x-3", "und-x-3s", "und-x-4", "und-x-4s", "und-x-5", "und-x-5s", "ur-x-3", "ur-x-3s", "ur-x-4", "ur-x-4s", "ur-x-5", "ur-x-5s", "uz-Cyrl-x-3", "uz-Cyrl-x-3s", "uz-Cyrl-x-4", "uz-Cyrl-x-4s", "uz-Cyrl-x-5", "uz-Cyrl-x-5s", "uz-x-3", "uz-x-3s", "uz-x-4", "uz-x-4s", "uz-x-5", "uz-x-5s", "vi-x-3", "vi-x-3s", "vi-x-5", "vi-x-5s", "wo-x-3", "wo-x-3s", "wo-x-5", "wo-x-5s", "xh-x-3", "xh-x-3s", "xh-x-5", "xh-x-5s", "yo-BJ-x-3", "yo-BJ-x-3s", "yo-BJ-x-4", "yo-BJ-x-4s", "yo-BJ-x-5", "yo-BJ-x-5s", "yo-x-3", "yo-x-3s", "yo-x-4", "yo-x-4s", "yo-x-5", "yo-x-5s", "yrl-x-3", "yrl-x-3s", "yrl-x-4", "yrl-x-4s", "yrl-x-5", "yrl-x-5s", "yue-Hans-x-3", "yue-Hans-x-3s", "yue-Hans-x-5", "yue-Hans-x-5s", "yue-x-3", "yue-x-3s", "yue-x-5", "yue-x-5s", "zh-Hant-x-3", "zh-Hant-x-3s", "zh-Hant-x-5", "zh-Hant-x-5s", "zh-x-3", "zh-x-3s", "zh-x-5", "zh-x-5s", "zu-x-3", "zu-x-3s", "zu-x-4", "zu-x-4s", "zu-x-5", "zu-x-5s"];
2210 }
2211