Update Unicode data to 12.1.0.

Change-Id: I02e09f29d4d5af61a54bcf4ac55b474bcf50286b
Reviewed-on: https://code-review.googlesource.com/c/re2/+/42930
Reviewed-by: Paul Wankadia <junyer@google.com>
diff --git a/doc/syntax.txt b/doc/syntax.txt
index c87494e..cb04bbf 100644
--- a/doc/syntax.txt
+++ b/doc/syntax.txt
@@ -264,6 +264,7 @@
 Duployan
 Egyptian_Hieroglyphs
 Elbasan
+Elymaic
 Ethiopic
 Georgian
 Glagolitic
@@ -321,10 +322,12 @@
 Multani
 Myanmar
 Nabataean
+Nandinagari
 New_Tai_Lue
 Newa
 Nko
 Nushu
+Nyiakeng_Puachue_Hmong
 Ogham
 Ol_Chiki
 Old_Hungarian
@@ -375,6 +378,7 @@
 Tirhuta
 Ugaritic
 Vai
+Wancho
 Warang_Citi
 Yi
 Zanabazar_Square
diff --git a/re2/unicode.py b/re2/unicode.py
index deff4d8..fdf6248 100644
--- a/re2/unicode.py
+++ b/re2/unicode.py
@@ -9,7 +9,7 @@
 import urllib2
 
 # Directory or URL where Unicode tables reside.
-_UNICODE_DIR = "https://www.unicode.org/Public/11.0.0/ucd"
+_UNICODE_DIR = "https://www.unicode.org/Public/12.1.0/ucd"
 
 # Largest valid Unicode code value.
 _RUNE_MAX = 0x10FFFF
diff --git a/re2/unicode_casefold.cc b/re2/unicode_casefold.cc
index b4da09d..4ea2533 100644
--- a/re2/unicode_casefold.cc
+++ b/re2/unicode_casefold.cc
@@ -7,7 +7,7 @@
 namespace re2 {
 
 
-// 1374 groups, 2778 pairs, 349 ranges
+// 1381 groups, 2792 pairs, 356 ranges
 const CaseFold unicode_casefold[] = {
 	{ 65, 90, 32 },
 	{ 97, 106, -32 },
@@ -122,6 +122,7 @@
 	{ 629, 629, -214 },
 	{ 637, 637, 10727 },
 	{ 640, 640, -218 },
+	{ 642, 642, 42307 },
 	{ 643, 643, -218 },
 	{ 647, 647, 42282 },
 	{ 648, 648, -218 },
@@ -228,6 +229,7 @@
 	{ 7357, 7359, -3008 },
 	{ 7545, 7545, 35332 },
 	{ 7549, 7549, 3814 },
+	{ 7566, 7566, 35384 },
 	{ 7680, 7776, EvenOdd },
 	{ 7777, 7777, 58 },
 	{ 7778, 7829, EvenOdd },
@@ -331,6 +333,7 @@
 	{ 42891, 42892, OddEven },
 	{ 42893, 42893, -42280 },
 	{ 42896, 42899, EvenOdd },
+	{ 42900, 42900, 48 },
 	{ 42902, 42921, EvenOdd },
 	{ 42922, 42922, -42308 },
 	{ 42923, 42923, -42319 },
@@ -341,7 +344,11 @@
 	{ 42929, 42929, -42282 },
 	{ 42930, 42930, -42261 },
 	{ 42931, 42931, 928 },
-	{ 42932, 42937, EvenOdd },
+	{ 42932, 42943, EvenOdd },
+	{ 42946, 42947, EvenOdd },
+	{ 42948, 42948, -48 },
+	{ 42949, 42949, -42307 },
+	{ 42950, 42950, -35384 },
 	{ 43859, 43859, -928 },
 	{ 43888, 43967, -38864 },
 	{ 65313, 65338, 32 },
@@ -359,9 +366,9 @@
 	{ 125184, 125217, 34 },
 	{ 125218, 125251, -34 },
 };
-const int num_unicode_casefold = 349;
+const int num_unicode_casefold = 356;
 
-// 1374 groups, 1404 pairs, 194 ranges
+// 1381 groups, 1411 pairs, 198 ranges
 const CaseFold unicode_tolower[] = {
 	{ 65, 90, 32 },
 	{ 181, 181, 775 },
@@ -548,7 +555,11 @@
 	{ 42929, 42929, -42282 },
 	{ 42930, 42930, -42261 },
 	{ 42931, 42931, 928 },
-	{ 42932, 42936, EvenOddSkip },
+	{ 42932, 42942, EvenOddSkip },
+	{ 42946, 42946, EvenOdd },
+	{ 42948, 42948, -48 },
+	{ 42949, 42949, -42307 },
+	{ 42950, 42950, -35384 },
 	{ 43888, 43967, -38864 },
 	{ 65313, 65338, 32 },
 	{ 66560, 66599, 40 },
@@ -558,7 +569,7 @@
 	{ 93760, 93791, 32 },
 	{ 125184, 125217, 34 },
 };
-const int num_unicode_tolower = 194;
+const int num_unicode_tolower = 198;
 
 
 
diff --git a/re2/unicode_groups.cc b/re2/unicode_groups.cc
index 8052827..e3c5c34 100644
--- a/re2/unicode_groups.cc
+++ b/re2/unicode_groups.cc
@@ -161,6 +161,7 @@
 	{ 71482, 71483 },
 	{ 71914, 71922 },
 	{ 72794, 72812 },
+	{ 73664, 73684 },
 	{ 93019, 93025 },
 	{ 93824, 93846 },
 	{ 119520, 119539 },
@@ -169,6 +170,8 @@
 	{ 126065, 126123 },
 	{ 126125, 126127 },
 	{ 126129, 126132 },
+	{ 126209, 126253 },
+	{ 126255, 126269 },
 	{ 127232, 127244 },
 };
 static const URange16 Lo_range16[] = {
@@ -290,16 +293,10 @@
 	{ 3648, 3653 },
 	{ 3713, 3714 },
 	{ 3716, 3716 },
-	{ 3719, 3720 },
-	{ 3722, 3722 },
-	{ 3725, 3725 },
-	{ 3732, 3735 },
-	{ 3737, 3743 },
-	{ 3745, 3747 },
+	{ 3718, 3722 },
+	{ 3724, 3747 },
 	{ 3749, 3749 },
-	{ 3751, 3751 },
-	{ 3754, 3755 },
-	{ 3757, 3760 },
+	{ 3751, 3760 },
 	{ 3762, 3763 },
 	{ 3773, 3773 },
 	{ 3776, 3780 },
@@ -369,8 +366,9 @@
 	{ 7245, 7247 },
 	{ 7258, 7287 },
 	{ 7401, 7404 },
-	{ 7406, 7409 },
+	{ 7406, 7411 },
 	{ 7413, 7414 },
+	{ 7418, 7418 },
 	{ 8501, 8504 },
 	{ 11568, 11623 },
 	{ 11648, 11670 },
@@ -522,6 +520,7 @@
 	{ 69376, 69404 },
 	{ 69415, 69415 },
 	{ 69424, 69445 },
+	{ 69600, 69622 },
 	{ 69635, 69687 },
 	{ 69763, 69807 },
 	{ 69840, 69864 },
@@ -552,6 +551,7 @@
 	{ 70493, 70497 },
 	{ 70656, 70708 },
 	{ 70727, 70730 },
+	{ 70751, 70751 },
 	{ 70784, 70831 },
 	{ 70852, 70853 },
 	{ 70855, 70855 },
@@ -560,15 +560,19 @@
 	{ 71168, 71215 },
 	{ 71236, 71236 },
 	{ 71296, 71338 },
+	{ 71352, 71352 },
 	{ 71424, 71450 },
 	{ 71680, 71723 },
 	{ 71935, 71935 },
+	{ 72096, 72103 },
+	{ 72106, 72144 },
+	{ 72161, 72161 },
+	{ 72163, 72163 },
 	{ 72192, 72192 },
 	{ 72203, 72242 },
 	{ 72250, 72250 },
 	{ 72272, 72272 },
-	{ 72284, 72323 },
-	{ 72326, 72329 },
+	{ 72284, 72329 },
 	{ 72349, 72349 },
 	{ 72384, 72440 },
 	{ 72704, 72712 },
@@ -594,16 +598,21 @@
 	{ 92928, 92975 },
 	{ 93027, 93047 },
 	{ 93053, 93071 },
-	{ 93952, 94020 },
+	{ 93952, 94026 },
 	{ 94032, 94032 },
-	{ 94208, 100337 },
+	{ 94208, 100343 },
 	{ 100352, 101106 },
 	{ 110592, 110878 },
+	{ 110928, 110930 },
+	{ 110948, 110951 },
 	{ 110960, 111355 },
 	{ 113664, 113770 },
 	{ 113776, 113788 },
 	{ 113792, 113800 },
 	{ 113808, 113817 },
+	{ 123136, 123180 },
+	{ 123214, 123214 },
+	{ 123584, 123627 },
 	{ 124928, 125124 },
 	{ 126464, 126467 },
 	{ 126469, 126495 },
@@ -1243,9 +1252,13 @@
 	{ 42933, 42933 },
 	{ 42935, 42935 },
 	{ 42937, 42937 },
+	{ 42939, 42939 },
+	{ 42941, 42941 },
+	{ 42943, 42943 },
+	{ 42947, 42947 },
 	{ 43002, 43002 },
 	{ 43824, 43866 },
-	{ 43872, 43877 },
+	{ 43872, 43879 },
 	{ 43888, 43967 },
 	{ 64256, 64262 },
 	{ 64275, 64279 },
@@ -1347,6 +1360,9 @@
 	{ 92992, 92995 },
 	{ 94099, 94111 },
 	{ 94176, 94177 },
+	{ 94179, 94179 },
+	{ 123191, 123197 },
+	{ 125259, 125259 },
 };
 static const URange16 Nd_range16[] = {
 	{ 48, 57 },
@@ -1407,6 +1423,8 @@
 	{ 92768, 92777 },
 	{ 93008, 93017 },
 	{ 120782, 120831 },
+	{ 123200, 123209 },
+	{ 123632, 123641 },
 	{ 125264, 125273 },
 };
 static const URange16 Pc_range16[] = {
@@ -2023,6 +2041,11 @@
 	{ 42928, 42932 },
 	{ 42934, 42934 },
 	{ 42936, 42936 },
+	{ 42938, 42938 },
+	{ 42940, 42940 },
+	{ 42942, 42942 },
+	{ 42946, 42946 },
+	{ 42948, 42950 },
 	{ 65313, 65338 },
 };
 static const URange32 Lu_range32[] = {
@@ -2218,6 +2241,7 @@
 	{ 2557, 2557 },
 	{ 2678, 2678 },
 	{ 2800, 2800 },
+	{ 3191, 3191 },
 	{ 3204, 3204 },
 	{ 3572, 3572 },
 	{ 3663, 3663 },
@@ -2230,7 +2254,7 @@
 	{ 4170, 4175 },
 	{ 4347, 4347 },
 	{ 4960, 4968 },
-	{ 5741, 5742 },
+	{ 5742, 5742 },
 	{ 5867, 5869 },
 	{ 5941, 5942 },
 	{ 6100, 6102 },
@@ -2269,7 +2293,7 @@
 	{ 11824, 11833 },
 	{ 11836, 11839 },
 	{ 11841, 11841 },
-	{ 11843, 11854 },
+	{ 11843, 11855 },
 	{ 12289, 12291 },
 	{ 12349, 12349 },
 	{ 12539, 12539 },
@@ -2345,18 +2369,21 @@
 	{ 71264, 71276 },
 	{ 71484, 71486 },
 	{ 71739, 71739 },
+	{ 72162, 72162 },
 	{ 72255, 72262 },
 	{ 72346, 72348 },
 	{ 72350, 72354 },
 	{ 72769, 72773 },
 	{ 72816, 72817 },
 	{ 73463, 73464 },
+	{ 73727, 73727 },
 	{ 74864, 74868 },
 	{ 92782, 92783 },
 	{ 92917, 92917 },
 	{ 92983, 92987 },
 	{ 92996, 92996 },
 	{ 93847, 93850 },
+	{ 94178, 94178 },
 	{ 113823, 113823 },
 	{ 121479, 121483 },
 	{ 125278, 125279 },
@@ -2389,6 +2416,7 @@
 static const URange32 C_range32[] = {
 	{ 69821, 69821 },
 	{ 69837, 69837 },
+	{ 78896, 78904 },
 	{ 113824, 113827 },
 	{ 119155, 119162 },
 	{ 917505, 917505 },
@@ -2483,7 +2511,6 @@
 	{ 7204, 7211 },
 	{ 7220, 7221 },
 	{ 7393, 7393 },
-	{ 7410, 7411 },
 	{ 7415, 7415 },
 	{ 12334, 12335 },
 	{ 43043, 43044 },
@@ -2494,7 +2521,7 @@
 	{ 43395, 43395 },
 	{ 43444, 43445 },
 	{ 43450, 43451 },
-	{ 43453, 43456 },
+	{ 43454, 43456 },
 	{ 43567, 43568 },
 	{ 43571, 43572 },
 	{ 43597, 43597 },
@@ -2550,6 +2577,9 @@
 	{ 71462, 71462 },
 	{ 71724, 71726 },
 	{ 71736, 71736 },
+	{ 72145, 72147 },
+	{ 72156, 72159 },
+	{ 72164, 72164 },
 	{ 72249, 72249 },
 	{ 72279, 72280 },
 	{ 72343, 72343 },
@@ -2562,7 +2592,7 @@
 	{ 73107, 73108 },
 	{ 73110, 73110 },
 	{ 73461, 73462 },
-	{ 94033, 94078 },
+	{ 94033, 94087 },
 	{ 119141, 119142 },
 	{ 119149, 119154 },
 };
@@ -2655,8 +2685,7 @@
 	{ 3636, 3642 },
 	{ 3655, 3662 },
 	{ 3761, 3761 },
-	{ 3764, 3769 },
-	{ 3771, 3772 },
+	{ 3764, 3772 },
 	{ 3784, 3789 },
 	{ 3864, 3865 },
 	{ 3893, 3893 },
@@ -2754,7 +2783,7 @@
 	{ 43392, 43394 },
 	{ 43443, 43443 },
 	{ 43446, 43449 },
-	{ 43452, 43452 },
+	{ 43452, 43453 },
 	{ 43493, 43493 },
 	{ 43561, 43566 },
 	{ 43569, 43570 },
@@ -2835,6 +2864,9 @@
 	{ 71463, 71467 },
 	{ 71727, 71735 },
 	{ 71737, 71738 },
+	{ 72148, 72151 },
+	{ 72154, 72155 },
+	{ 72160, 72160 },
 	{ 72193, 72202 },
 	{ 72243, 72248 },
 	{ 72251, 72254 },
@@ -2861,6 +2893,7 @@
 	{ 73459, 73460 },
 	{ 92912, 92916 },
 	{ 92976, 92982 },
+	{ 94031, 94031 },
 	{ 94095, 94098 },
 	{ 113821, 113822 },
 	{ 119143, 119145 },
@@ -2879,6 +2912,8 @@
 	{ 122907, 122913 },
 	{ 122915, 122916 },
 	{ 122918, 122922 },
+	{ 123184, 123190 },
+	{ 123628, 123631 },
 	{ 125136, 125142 },
 	{ 125252, 125258 },
 	{ 917760, 917999 },
@@ -2979,8 +3014,7 @@
 	{ 3636, 3642 },
 	{ 3655, 3662 },
 	{ 3761, 3761 },
-	{ 3764, 3769 },
-	{ 3771, 3772 },
+	{ 3764, 3772 },
 	{ 3784, 3789 },
 	{ 3864, 3865 },
 	{ 3893, 3893 },
@@ -3028,7 +3062,7 @@
 	{ 7376, 7378 },
 	{ 7380, 7400 },
 	{ 7405, 7405 },
-	{ 7410, 7412 },
+	{ 7412, 7412 },
 	{ 7415, 7417 },
 	{ 7616, 7673 },
 	{ 7675, 7679 },
@@ -3117,6 +3151,9 @@
 	{ 71339, 71351 },
 	{ 71453, 71467 },
 	{ 71724, 71738 },
+	{ 72145, 72151 },
+	{ 72154, 72160 },
+	{ 72164, 72164 },
 	{ 72193, 72202 },
 	{ 72243, 72249 },
 	{ 72251, 72254 },
@@ -3138,7 +3175,8 @@
 	{ 73459, 73462 },
 	{ 92912, 92916 },
 	{ 92976, 92982 },
-	{ 94033, 94078 },
+	{ 94031, 94031 },
+	{ 94033, 94087 },
 	{ 94095, 94098 },
 	{ 113821, 113822 },
 	{ 119141, 119145 },
@@ -3158,6 +3196,8 @@
 	{ 122907, 122913 },
 	{ 122915, 122916 },
 	{ 122918, 122922 },
+	{ 123184, 123190 },
+	{ 123628, 123631 },
 	{ 125136, 125142 },
 	{ 125252, 125258 },
 	{ 917760, 917999 },
@@ -3307,16 +3347,10 @@
 	{ 3648, 3654 },
 	{ 3713, 3714 },
 	{ 3716, 3716 },
-	{ 3719, 3720 },
-	{ 3722, 3722 },
-	{ 3725, 3725 },
-	{ 3732, 3735 },
-	{ 3737, 3743 },
-	{ 3745, 3747 },
+	{ 3718, 3722 },
+	{ 3724, 3747 },
 	{ 3749, 3749 },
-	{ 3751, 3751 },
-	{ 3754, 3755 },
-	{ 3757, 3760 },
+	{ 3751, 3760 },
 	{ 3762, 3763 },
 	{ 3773, 3773 },
 	{ 3776, 3780 },
@@ -3397,8 +3431,9 @@
 	{ 7312, 7354 },
 	{ 7357, 7359 },
 	{ 7401, 7404 },
-	{ 7406, 7409 },
+	{ 7406, 7411 },
 	{ 7413, 7414 },
+	{ 7418, 7418 },
 	{ 7424, 7615 },
 	{ 7680, 7957 },
 	{ 7960, 7965 },
@@ -3479,7 +3514,8 @@
 	{ 42656, 42725 },
 	{ 42775, 42783 },
 	{ 42786, 42888 },
-	{ 42891, 42937 },
+	{ 42891, 42943 },
+	{ 42946, 42950 },
 	{ 42999, 43009 },
 	{ 43011, 43013 },
 	{ 43015, 43018 },
@@ -3517,7 +3553,7 @@
 	{ 43808, 43814 },
 	{ 43816, 43822 },
 	{ 43824, 43866 },
-	{ 43868, 43877 },
+	{ 43868, 43879 },
 	{ 43888, 44002 },
 	{ 44032, 55203 },
 	{ 55216, 55238 },
@@ -3606,6 +3642,7 @@
 	{ 69376, 69404 },
 	{ 69415, 69415 },
 	{ 69424, 69445 },
+	{ 69600, 69622 },
 	{ 69635, 69687 },
 	{ 69763, 69807 },
 	{ 69840, 69864 },
@@ -3636,6 +3673,7 @@
 	{ 70493, 70497 },
 	{ 70656, 70708 },
 	{ 70727, 70730 },
+	{ 70751, 70751 },
 	{ 70784, 70831 },
 	{ 70852, 70853 },
 	{ 70855, 70855 },
@@ -3644,16 +3682,20 @@
 	{ 71168, 71215 },
 	{ 71236, 71236 },
 	{ 71296, 71338 },
+	{ 71352, 71352 },
 	{ 71424, 71450 },
 	{ 71680, 71723 },
 	{ 71840, 71903 },
 	{ 71935, 71935 },
+	{ 72096, 72103 },
+	{ 72106, 72144 },
+	{ 72161, 72161 },
+	{ 72163, 72163 },
 	{ 72192, 72192 },
 	{ 72203, 72242 },
 	{ 72250, 72250 },
 	{ 72272, 72272 },
-	{ 72284, 72323 },
-	{ 72326, 72329 },
+	{ 72284, 72329 },
 	{ 72349, 72349 },
 	{ 72384, 72440 },
 	{ 72704, 72712 },
@@ -3681,13 +3723,16 @@
 	{ 93027, 93047 },
 	{ 93053, 93071 },
 	{ 93760, 93823 },
-	{ 93952, 94020 },
+	{ 93952, 94026 },
 	{ 94032, 94032 },
 	{ 94099, 94111 },
 	{ 94176, 94177 },
-	{ 94208, 100337 },
+	{ 94179, 94179 },
+	{ 94208, 100343 },
 	{ 100352, 101106 },
 	{ 110592, 110878 },
+	{ 110928, 110930 },
+	{ 110948, 110951 },
 	{ 110960, 111355 },
 	{ 113664, 113770 },
 	{ 113776, 113788 },
@@ -3723,8 +3768,13 @@
 	{ 120714, 120744 },
 	{ 120746, 120770 },
 	{ 120772, 120779 },
+	{ 123136, 123180 },
+	{ 123191, 123197 },
+	{ 123214, 123214 },
+	{ 123584, 123627 },
 	{ 124928, 125124 },
 	{ 125184, 125251 },
+	{ 125259, 125259 },
 	{ 126464, 126467 },
 	{ 126469, 126495 },
 	{ 126497, 126498 },
@@ -3879,6 +3929,7 @@
 	{ 72784, 72812 },
 	{ 73040, 73049 },
 	{ 73120, 73129 },
+	{ 73664, 73684 },
 	{ 74752, 74862 },
 	{ 92768, 92777 },
 	{ 93008, 93017 },
@@ -3887,11 +3938,15 @@
 	{ 119520, 119539 },
 	{ 119648, 119672 },
 	{ 120782, 120831 },
+	{ 123200, 123209 },
+	{ 123632, 123641 },
 	{ 125127, 125135 },
 	{ 125264, 125273 },
 	{ 126065, 126123 },
 	{ 126125, 126127 },
 	{ 126129, 126132 },
+	{ 126209, 126253 },
+	{ 126255, 126269 },
 	{ 127232, 127244 },
 };
 static const URange16 Sk_range16[] = {
@@ -3967,6 +4022,7 @@
 	{ 2557, 2557 },
 	{ 2678, 2678 },
 	{ 2800, 2800 },
+	{ 3191, 3191 },
 	{ 3204, 3204 },
 	{ 3572, 3572 },
 	{ 3663, 3663 },
@@ -3981,7 +4037,7 @@
 	{ 4347, 4347 },
 	{ 4960, 4968 },
 	{ 5120, 5120 },
-	{ 5741, 5742 },
+	{ 5742, 5742 },
 	{ 5787, 5788 },
 	{ 5867, 5869 },
 	{ 5941, 5942 },
@@ -4016,7 +4072,7 @@
 	{ 11518, 11519 },
 	{ 11632, 11632 },
 	{ 11776, 11822 },
-	{ 11824, 11854 },
+	{ 11824, 11855 },
 	{ 12289, 12291 },
 	{ 12296, 12305 },
 	{ 12308, 12319 },
@@ -4093,18 +4149,21 @@
 	{ 71264, 71276 },
 	{ 71484, 71486 },
 	{ 71739, 71739 },
+	{ 72162, 72162 },
 	{ 72255, 72262 },
 	{ 72346, 72348 },
 	{ 72350, 72354 },
 	{ 72769, 72773 },
 	{ 72816, 72817 },
 	{ 73463, 73464 },
+	{ 73727, 73727 },
 	{ 74864, 74868 },
 	{ 92782, 92783 },
 	{ 92917, 92917 },
 	{ 92983, 92987 },
 	{ 92996, 92996 },
 	{ 93847, 93850 },
+	{ 94178, 94178 },
 	{ 113823, 113823 },
 	{ 121479, 121483 },
 	{ 125278, 125279 },
@@ -4165,6 +4224,7 @@
 	{ 4053, 4056 },
 	{ 4254, 4255 },
 	{ 5008, 5017 },
+	{ 5741, 5741 },
 	{ 6107, 6107 },
 	{ 6464, 6464 },
 	{ 6622, 6655 },
@@ -4209,8 +4269,7 @@
 	{ 10716, 10747 },
 	{ 10750, 11123 },
 	{ 11126, 11157 },
-	{ 11160, 11208 },
-	{ 11210, 11262 },
+	{ 11160, 11263 },
 	{ 11493, 11498 },
 	{ 11904, 11929 },
 	{ 11931, 12019 },
@@ -4230,8 +4289,7 @@
 	{ 12880, 12880 },
 	{ 12896, 12927 },
 	{ 12938, 12976 },
-	{ 12992, 13054 },
-	{ 13056, 13311 },
+	{ 12992, 13311 },
 	{ 19904, 19967 },
 	{ 42128, 42182 },
 	{ 42752, 42774 },
@@ -4268,6 +4326,7 @@
 	{ 67703, 67704 },
 	{ 68296, 68296 },
 	{ 71487, 71487 },
+	{ 73685, 73713 },
 	{ 92988, 92991 },
 	{ 92997, 92997 },
 	{ 113820, 113820 },
@@ -4296,8 +4355,11 @@
 	{ 121453, 121460 },
 	{ 121462, 121475 },
 	{ 121477, 121478 },
+	{ 123215, 123215 },
+	{ 123647, 123647 },
 	{ 126124, 126124 },
 	{ 126128, 126128 },
+	{ 126254, 126254 },
 	{ 126704, 126705 },
 	{ 126976, 127019 },
 	{ 127024, 127123 },
@@ -4305,33 +4367,36 @@
 	{ 127153, 127167 },
 	{ 127169, 127183 },
 	{ 127185, 127221 },
-	{ 127248, 127339 },
+	{ 127248, 127340 },
 	{ 127344, 127404 },
 	{ 127462, 127490 },
 	{ 127504, 127547 },
 	{ 127552, 127560 },
 	{ 127568, 127569 },
 	{ 127584, 127589 },
-	{ 127744, 128724 },
+	{ 127744, 128725 },
 	{ 128736, 128748 },
-	{ 128752, 128761 },
+	{ 128752, 128762 },
 	{ 128768, 128883 },
 	{ 128896, 128984 },
+	{ 128992, 129003 },
 	{ 129024, 129035 },
 	{ 129040, 129095 },
 	{ 129104, 129113 },
 	{ 129120, 129159 },
 	{ 129168, 129197 },
 	{ 129280, 129291 },
-	{ 129296, 129342 },
-	{ 129344, 129392 },
+	{ 129293, 129393 },
 	{ 129395, 129398 },
-	{ 129402, 129402 },
-	{ 129404, 129442 },
-	{ 129456, 129465 },
-	{ 129472, 129474 },
-	{ 129488, 129535 },
+	{ 129402, 129442 },
+	{ 129445, 129450 },
+	{ 129454, 129482 },
+	{ 129485, 129619 },
 	{ 129632, 129645 },
+	{ 129648, 129651 },
+	{ 129656, 129658 },
+	{ 129664, 129666 },
+	{ 129680, 129685 },
 };
 static const URange16 So_range16[] = {
 	{ 166, 166 },
@@ -4365,6 +4430,7 @@
 	{ 4053, 4056 },
 	{ 4254, 4255 },
 	{ 5008, 5017 },
+	{ 5741, 5741 },
 	{ 6464, 6464 },
 	{ 6622, 6655 },
 	{ 7009, 7018 },
@@ -4413,8 +4479,7 @@
 	{ 11077, 11078 },
 	{ 11085, 11123 },
 	{ 11126, 11157 },
-	{ 11160, 11208 },
-	{ 11210, 11262 },
+	{ 11160, 11263 },
 	{ 11493, 11498 },
 	{ 11904, 11929 },
 	{ 11931, 12019 },
@@ -4433,8 +4498,7 @@
 	{ 12880, 12880 },
 	{ 12896, 12927 },
 	{ 12938, 12976 },
-	{ 12992, 13054 },
-	{ 13056, 13311 },
+	{ 12992, 13311 },
 	{ 19904, 19967 },
 	{ 42128, 42182 },
 	{ 43048, 43051 },
@@ -4457,6 +4521,8 @@
 	{ 67703, 67704 },
 	{ 68296, 68296 },
 	{ 71487, 71487 },
+	{ 73685, 73692 },
+	{ 73697, 73713 },
 	{ 92988, 92991 },
 	{ 92997, 92997 },
 	{ 113820, 113820 },
@@ -4475,14 +4541,16 @@
 	{ 121453, 121460 },
 	{ 121462, 121475 },
 	{ 121477, 121478 },
+	{ 123215, 123215 },
 	{ 126124, 126124 },
+	{ 126254, 126254 },
 	{ 126976, 127019 },
 	{ 127024, 127123 },
 	{ 127136, 127150 },
 	{ 127153, 127167 },
 	{ 127169, 127183 },
 	{ 127185, 127221 },
-	{ 127248, 127339 },
+	{ 127248, 127340 },
 	{ 127344, 127404 },
 	{ 127462, 127490 },
 	{ 127504, 127547 },
@@ -4490,26 +4558,29 @@
 	{ 127568, 127569 },
 	{ 127584, 127589 },
 	{ 127744, 127994 },
-	{ 128000, 128724 },
+	{ 128000, 128725 },
 	{ 128736, 128748 },
-	{ 128752, 128761 },
+	{ 128752, 128762 },
 	{ 128768, 128883 },
 	{ 128896, 128984 },
+	{ 128992, 129003 },
 	{ 129024, 129035 },
 	{ 129040, 129095 },
 	{ 129104, 129113 },
 	{ 129120, 129159 },
 	{ 129168, 129197 },
 	{ 129280, 129291 },
-	{ 129296, 129342 },
-	{ 129344, 129392 },
+	{ 129293, 129393 },
 	{ 129395, 129398 },
-	{ 129402, 129402 },
-	{ 129404, 129442 },
-	{ 129456, 129465 },
-	{ 129472, 129474 },
-	{ 129488, 129535 },
+	{ 129402, 129442 },
+	{ 129445, 129450 },
+	{ 129454, 129482 },
+	{ 129485, 129619 },
 	{ 129632, 129645 },
+	{ 129648, 129651 },
+	{ 129656, 129658 },
+	{ 129664, 129666 },
+	{ 129680, 129685 },
 };
 static const URange16 Sm_range16[] = {
 	{ 43, 43 },
@@ -4600,6 +4671,8 @@
 	{ 65509, 65510 },
 };
 static const URange32 Sc_range32[] = {
+	{ 73693, 73696 },
+	{ 123647, 123647 },
 	{ 126128, 126128 },
 };
 static const URange16 Z_range16[] = {
@@ -4644,6 +4717,7 @@
 static const URange32 Cf_range32[] = {
 	{ 69821, 69821 },
 	{ 69837, 69837 },
+	{ 78896, 78904 },
 	{ 113824, 113827 },
 	{ 119155, 119162 },
 	{ 917505, 917505 },
@@ -4666,14 +4740,14 @@
 };
 static const URange32 Tangut_range32[] = {
 	{ 94176, 94176 },
-	{ 94208, 100337 },
+	{ 94208, 100343 },
 	{ 100352, 101106 },
 };
 static const URange16 Thaana_range16[] = {
 	{ 1920, 1969 },
 };
 static const URange32 Adlam_range32[] = {
-	{ 125184, 125258 },
+	{ 125184, 125259 },
 	{ 125264, 125273 },
 	{ 125278, 125279 },
 };
@@ -4689,7 +4763,7 @@
 	{ 3160, 3162 },
 	{ 3168, 3171 },
 	{ 3174, 3183 },
-	{ 3192, 3199 },
+	{ 3191, 3199 },
 };
 static const URange16 Cyrillic_range16[] = {
 	{ 1024, 1156 },
@@ -4720,6 +4794,12 @@
 	{ 65490, 65495 },
 	{ 65498, 65500 },
 };
+static const URange32 Nyiakeng_Puachue_Hmong_range32[] = {
+	{ 123136, 123180 },
+	{ 123184, 123197 },
+	{ 123200, 123209 },
+	{ 123214, 123215 },
+};
 static const URange32 Old_South_Arabian_range32[] = {
 	{ 68192, 68223 },
 };
@@ -4762,7 +4842,7 @@
 	{ 1157, 1158 },
 	{ 1611, 1621 },
 	{ 1648, 1648 },
-	{ 2385, 2386 },
+	{ 2385, 2388 },
 	{ 6832, 6846 },
 	{ 7376, 7378 },
 	{ 7380, 7392 },
@@ -4854,6 +4934,10 @@
 	{ 3031, 3031 },
 	{ 3046, 3066 },
 };
+static const URange32 Tamil_range32[] = {
+	{ 73664, 73713 },
+	{ 73727, 73727 },
+};
 static const URange16 Bopomofo_range16[] = {
 	{ 746, 747 },
 	{ 12549, 12591 },
@@ -4902,6 +4986,7 @@
 };
 static const URange32 Hiragana_range32[] = {
 	{ 110593, 110878 },
+	{ 110928, 110930 },
 	{ 127488, 127488 },
 };
 static const URange16 Tagbanwa_range16[] = {
@@ -4990,10 +5075,12 @@
 	{ 8544, 8584 },
 	{ 11360, 11391 },
 	{ 42786, 42887 },
-	{ 42891, 42937 },
+	{ 42891, 42943 },
+	{ 42946, 42950 },
 	{ 42999, 43007 },
 	{ 43824, 43866 },
 	{ 43868, 43876 },
+	{ 43878, 43879 },
 	{ 64256, 64262 },
 	{ 65313, 65338 },
 	{ 65345, 65370 },
@@ -5047,7 +5134,7 @@
 };
 static const URange16 Devanagari_range16[] = {
 	{ 2304, 2384 },
-	{ 2387, 2403 },
+	{ 2389, 2403 },
 	{ 2406, 2431 },
 	{ 43232, 43263 },
 };
@@ -5069,6 +5156,9 @@
 	{ 11631, 11632 },
 	{ 11647, 11647 },
 };
+static const URange32 Elymaic_range32[] = {
+	{ 69600, 69622 },
+};
 static const URange32 Ugaritic_range32[] = {
 	{ 66432, 66461 },
 	{ 66463, 66463 },
@@ -5173,6 +5263,7 @@
 };
 static const URange32 Katakana_range32[] = {
 	{ 110592, 110592 },
+	{ 110948, 110951 },
 };
 static const URange32 Osmanya_range32[] = {
 	{ 66688, 66717 },
@@ -5190,7 +5281,7 @@
 static const URange32 Newa_range32[] = {
 	{ 70656, 70745 },
 	{ 70747, 70747 },
-	{ 70749, 70750 },
+	{ 70749, 70751 },
 };
 static const URange16 Limbu_range16[] = {
 	{ 6400, 6430 },
@@ -5208,8 +5299,8 @@
 	{ 43888, 43967 },
 };
 static const URange32 Miao_range32[] = {
-	{ 93952, 94020 },
-	{ 94032, 94078 },
+	{ 93952, 94026 },
+	{ 94031, 94087 },
 	{ 94095, 94111 },
 };
 static const URange16 Oriya_range16[] = {
@@ -5322,6 +5413,10 @@
 	{ 67712, 67742 },
 	{ 67751, 67759 },
 };
+static const URange32 Wancho_range32[] = {
+	{ 123584, 123641 },
+	{ 123647, 123647 },
+};
 static const URange16 Bengali_range16[] = {
 	{ 2432, 2435 },
 	{ 2437, 2444 },
@@ -5483,17 +5578,10 @@
 static const URange16 Lao_range16[] = {
 	{ 3713, 3714 },
 	{ 3716, 3716 },
-	{ 3719, 3720 },
-	{ 3722, 3722 },
-	{ 3725, 3725 },
-	{ 3732, 3735 },
-	{ 3737, 3743 },
-	{ 3745, 3747 },
+	{ 3718, 3722 },
+	{ 3724, 3747 },
 	{ 3749, 3749 },
-	{ 3751, 3751 },
-	{ 3754, 3755 },
-	{ 3757, 3769 },
-	{ 3771, 3773 },
+	{ 3751, 3773 },
 	{ 3776, 3780 },
 	{ 3782, 3782 },
 	{ 3784, 3789 },
@@ -5543,6 +5631,7 @@
 };
 static const URange32 Egyptian_Hieroglyphs_range32[] = {
 	{ 77824, 78894 },
+	{ 78896, 78904 },
 };
 static const URange32 Sogdian_range32[] = {
 	{ 69424, 69465 },
@@ -5551,6 +5640,11 @@
 	{ 66864, 66915 },
 	{ 66927, 66927 },
 };
+static const URange32 Nandinagari_range32[] = {
+	{ 72096, 72103 },
+	{ 72106, 72151 },
+	{ 72154, 72164 },
+};
 static const URange32 Makasar_range32[] = {
 	{ 73440, 73464 },
 };
@@ -5617,6 +5711,7 @@
 	{ 7401, 7404 },
 	{ 7406, 7411 },
 	{ 7413, 7415 },
+	{ 7418, 7418 },
 	{ 8192, 8203 },
 	{ 8206, 8292 },
 	{ 8294, 8304 },
@@ -5634,9 +5729,8 @@
 	{ 9312, 10239 },
 	{ 10496, 11123 },
 	{ 11126, 11157 },
-	{ 11160, 11208 },
-	{ 11210, 11262 },
-	{ 11776, 11854 },
+	{ 11160, 11263 },
+	{ 11776, 11855 },
 	{ 12272, 12283 },
 	{ 12288, 12292 },
 	{ 12294, 12294 },
@@ -5650,6 +5744,7 @@
 	{ 12736, 12771 },
 	{ 12832, 12895 },
 	{ 12927, 13007 },
+	{ 13055, 13055 },
 	{ 13144, 13311 },
 	{ 19904, 19967 },
 	{ 42752, 42785 },
@@ -5680,6 +5775,7 @@
 	{ 65936, 65947 },
 	{ 66000, 66044 },
 	{ 66273, 66299 },
+	{ 94178, 94179 },
 	{ 113824, 113827 },
 	{ 118784, 119029 },
 	{ 119040, 119078 },
@@ -5713,6 +5809,7 @@
 	{ 120488, 120779 },
 	{ 120782, 120831 },
 	{ 126065, 126132 },
+	{ 126209, 126269 },
 	{ 126976, 127019 },
 	{ 127024, 127123 },
 	{ 127136, 127150 },
@@ -5720,7 +5817,7 @@
 	{ 127169, 127183 },
 	{ 127185, 127221 },
 	{ 127232, 127244 },
-	{ 127248, 127339 },
+	{ 127248, 127340 },
 	{ 127344, 127404 },
 	{ 127462, 127487 },
 	{ 127489, 127490 },
@@ -5728,26 +5825,29 @@
 	{ 127552, 127560 },
 	{ 127568, 127569 },
 	{ 127584, 127589 },
-	{ 127744, 128724 },
+	{ 127744, 128725 },
 	{ 128736, 128748 },
-	{ 128752, 128761 },
+	{ 128752, 128762 },
 	{ 128768, 128883 },
 	{ 128896, 128984 },
+	{ 128992, 129003 },
 	{ 129024, 129035 },
 	{ 129040, 129095 },
 	{ 129104, 129113 },
 	{ 129120, 129159 },
 	{ 129168, 129197 },
 	{ 129280, 129291 },
-	{ 129296, 129342 },
-	{ 129344, 129392 },
+	{ 129293, 129393 },
 	{ 129395, 129398 },
-	{ 129402, 129402 },
-	{ 129404, 129442 },
-	{ 129456, 129465 },
-	{ 129472, 129474 },
-	{ 129488, 129535 },
+	{ 129402, 129442 },
+	{ 129445, 129450 },
+	{ 129454, 129482 },
+	{ 129485, 129619 },
 	{ 129632, 129645 },
+	{ 129648, 129651 },
+	{ 129656, 129658 },
+	{ 129664, 129666 },
+	{ 129680, 129685 },
 	{ 917505, 917505 },
 	{ 917536, 917631 },
 };
@@ -5837,8 +5937,7 @@
 	{ 71096, 71133 },
 };
 static const URange32 Soyombo_range32[] = {
-	{ 72272, 72323 },
-	{ 72326, 72354 },
+	{ 72272, 72354 },
 };
 static const URange32 Avestan_range32[] = {
 	{ 68352, 68405 },
@@ -5861,10 +5960,10 @@
 	{ 68521, 68527 },
 };
 static const URange32 Takri_range32[] = {
-	{ 71296, 71351 },
+	{ 71296, 71352 },
 	{ 71360, 71369 },
 };
-// 3994 16-bit ranges, 1429 32-bit ranges
+// 3987 16-bit ranges, 1525 32-bit ranges
 const UGroup unicode_groups[] = {
 	{ "Adlam", +1, 0, 0, Adlam_range32, 3 },
 	{ "Ahom", +1, 0, 0, Ahom_range32, 3 },
@@ -5883,17 +5982,17 @@
 	{ "Braille", +1, Braille_range16, 1, 0, 0 },
 	{ "Buginese", +1, Buginese_range16, 2, 0, 0 },
 	{ "Buhid", +1, Buhid_range16, 1, 0, 0 },
-	{ "C", +1, C_range16, 16, C_range32, 8 },
+	{ "C", +1, C_range16, 16, C_range32, 9 },
 	{ "Canadian_Aboriginal", +1, Canadian_Aboriginal_range16, 2, 0, 0 },
 	{ "Carian", +1, 0, 0, Carian_range32, 1 },
 	{ "Caucasian_Albanian", +1, 0, 0, Caucasian_Albanian_range32, 2 },
 	{ "Cc", +1, Cc_range16, 2, 0, 0 },
-	{ "Cf", +1, Cf_range16, 13, Cf_range32, 6 },
+	{ "Cf", +1, Cf_range16, 13, Cf_range32, 7 },
 	{ "Chakma", +1, 0, 0, Chakma_range32, 2 },
 	{ "Cham", +1, Cham_range16, 4, 0, 0 },
 	{ "Cherokee", +1, Cherokee_range16, 3, 0, 0 },
 	{ "Co", +1, Co_range16, 1, Co_range32, 2 },
-	{ "Common", +1, Common_range16, 90, Common_range32, 76 },
+	{ "Common", +1, Common_range16, 91, Common_range32, 81 },
 	{ "Coptic", +1, Coptic_range16, 3, 0, 0 },
 	{ "Cs", +1, Cs_range16, 1, 0, 0 },
 	{ "Cuneiform", +1, 0, 0, Cuneiform_range32, 4 },
@@ -5903,8 +6002,9 @@
 	{ "Devanagari", +1, Devanagari_range16, 4, 0, 0 },
 	{ "Dogra", +1, 0, 0, Dogra_range32, 1 },
 	{ "Duployan", +1, 0, 0, Duployan_range32, 5 },
-	{ "Egyptian_Hieroglyphs", +1, 0, 0, Egyptian_Hieroglyphs_range32, 1 },
+	{ "Egyptian_Hieroglyphs", +1, 0, 0, Egyptian_Hieroglyphs_range32, 2 },
 	{ "Elbasan", +1, 0, 0, Elbasan_range32, 1 },
+	{ "Elymaic", +1, 0, 0, Elymaic_range32, 1 },
 	{ "Ethiopic", +1, Ethiopic_range16, 32, 0, 0 },
 	{ "Georgian", +1, Georgian_range16, 10, 0, 0 },
 	{ "Glagolitic", +1, Glagolitic_range16, 2, Glagolitic_range32, 5 },
@@ -5920,7 +6020,7 @@
 	{ "Hanunoo", +1, Hanunoo_range16, 1, 0, 0 },
 	{ "Hatran", +1, 0, 0, Hatran_range32, 3 },
 	{ "Hebrew", +1, Hebrew_range16, 9, 0, 0 },
-	{ "Hiragana", +1, Hiragana_range16, 2, Hiragana_range32, 2 },
+	{ "Hiragana", +1, Hiragana_range16, 2, Hiragana_range32, 3 },
 	{ "Imperial_Aramaic", +1, 0, 0, Imperial_Aramaic_range32, 2 },
 	{ "Inherited", +1, Inherited_range16, 20, Inherited_range32, 8 },
 	{ "Inscriptional_Pahlavi", +1, 0, 0, Inscriptional_Pahlavi_range32, 2 },
@@ -5928,28 +6028,28 @@
 	{ "Javanese", +1, Javanese_range16, 3, 0, 0 },
 	{ "Kaithi", +1, 0, 0, Kaithi_range32, 2 },
 	{ "Kannada", +1, Kannada_range16, 13, 0, 0 },
-	{ "Katakana", +1, Katakana_range16, 7, Katakana_range32, 1 },
+	{ "Katakana", +1, Katakana_range16, 7, Katakana_range32, 2 },
 	{ "Kayah_Li", +1, Kayah_Li_range16, 2, 0, 0 },
 	{ "Kharoshthi", +1, 0, 0, Kharoshthi_range32, 8 },
 	{ "Khmer", +1, Khmer_range16, 4, 0, 0 },
 	{ "Khojki", +1, 0, 0, Khojki_range32, 2 },
 	{ "Khudawadi", +1, 0, 0, Khudawadi_range32, 2 },
-	{ "L", +1, L_range16, 384, L_range32, 215 },
-	{ "Lao", +1, Lao_range16, 18, 0, 0 },
-	{ "Latin", +1, Latin_range16, 30, 0, 0 },
+	{ "L", +1, L_range16, 380, L_range32, 229 },
+	{ "Lao", +1, Lao_range16, 11, 0, 0 },
+	{ "Latin", +1, Latin_range16, 32, 0, 0 },
 	{ "Lepcha", +1, Lepcha_range16, 3, 0, 0 },
 	{ "Limbu", +1, Limbu_range16, 5, 0, 0 },
 	{ "Linear_A", +1, 0, 0, Linear_A_range32, 3 },
 	{ "Linear_B", +1, 0, 0, Linear_B_range32, 7 },
 	{ "Lisu", +1, Lisu_range16, 1, 0, 0 },
-	{ "Ll", +1, Ll_range16, 604, Ll_range32, 34 },
-	{ "Lm", +1, Lm_range16, 54, Lm_range32, 3 },
-	{ "Lo", +1, Lo_range16, 295, Lo_range32, 175 },
+	{ "Ll", +1, Ll_range16, 608, Ll_range32, 34 },
+	{ "Lm", +1, Lm_range16, 54, Lm_range32, 6 },
+	{ "Lo", +1, Lo_range16, 290, Lo_range32, 186 },
 	{ "Lt", +1, Lt_range16, 10, 0, 0 },
-	{ "Lu", +1, Lu_range16, 594, Lu_range32, 37 },
+	{ "Lu", +1, Lu_range16, 599, Lu_range32, 37 },
 	{ "Lycian", +1, 0, 0, Lycian_range32, 1 },
 	{ "Lydian", +1, 0, 0, Lydian_range32, 2 },
-	{ "M", +1, M_range16, 187, M_range32, 88 },
+	{ "M", +1, M_range16, 186, M_range32, 94 },
 	{ "Mahajani", +1, 0, 0, Mahajani_range32, 1 },
 	{ "Makasar", +1, 0, 0, Makasar_range32, 1 },
 	{ "Malayalam", +1, Malayalam_range16, 8, 0, 0 },
@@ -5957,7 +6057,7 @@
 	{ "Manichaean", +1, 0, 0, Manichaean_range32, 2 },
 	{ "Marchen", +1, 0, 0, Marchen_range32, 3 },
 	{ "Masaram_Gondi", +1, 0, 0, Masaram_Gondi_range32, 7 },
-	{ "Mc", +1, Mc_range16, 110, Mc_range32, 56 },
+	{ "Mc", +1, Mc_range16, 109, Mc_range32, 59 },
 	{ "Me", +1, Me_range16, 5, 0, 0 },
 	{ "Medefaidrin", +1, 0, 0, Medefaidrin_range32, 1 },
 	{ "Meetei_Mayek", +1, Meetei_Mayek_range16, 3, 0, 0 },
@@ -5965,21 +6065,23 @@
 	{ "Meroitic_Cursive", +1, 0, 0, Meroitic_Cursive_range32, 3 },
 	{ "Meroitic_Hieroglyphs", +1, 0, 0, Meroitic_Hieroglyphs_range32, 1 },
 	{ "Miao", +1, 0, 0, Miao_range32, 3 },
-	{ "Mn", +1, Mn_range16, 208, Mn_range32, 105 },
+	{ "Mn", +1, Mn_range16, 207, Mn_range32, 111 },
 	{ "Modi", +1, 0, 0, Modi_range32, 2 },
 	{ "Mongolian", +1, Mongolian_range16, 6, Mongolian_range32, 1 },
 	{ "Mro", +1, 0, 0, Mro_range32, 3 },
 	{ "Multani", +1, 0, 0, Multani_range32, 5 },
 	{ "Myanmar", +1, Myanmar_range16, 3, 0, 0 },
-	{ "N", +1, N_range16, 67, N_range32, 58 },
+	{ "N", +1, N_range16, 67, N_range32, 63 },
 	{ "Nabataean", +1, 0, 0, Nabataean_range32, 2 },
-	{ "Nd", +1, Nd_range16, 37, Nd_range32, 20 },
+	{ "Nandinagari", +1, 0, 0, Nandinagari_range32, 3 },
+	{ "Nd", +1, Nd_range16, 37, Nd_range32, 22 },
 	{ "New_Tai_Lue", +1, New_Tai_Lue_range16, 4, 0, 0 },
 	{ "Newa", +1, 0, 0, Newa_range32, 3 },
 	{ "Nko", +1, Nko_range16, 2, 0, 0 },
 	{ "Nl", +1, Nl_range16, 7, Nl_range32, 5 },
-	{ "No", +1, No_range16, 29, No_range32, 38 },
+	{ "No", +1, No_range16, 29, No_range32, 41 },
 	{ "Nushu", +1, 0, 0, Nushu_range32, 2 },
+	{ "Nyiakeng_Puachue_Hmong", +1, 0, 0, Nyiakeng_Puachue_Hmong_range32, 4 },
 	{ "Ogham", +1, Ogham_range16, 1, 0, 0 },
 	{ "Ol_Chiki", +1, Ol_Chiki_range16, 1, 0, 0 },
 	{ "Old_Hungarian", +1, 0, 0, Old_Hungarian_range32, 3 },
@@ -5993,7 +6095,7 @@
 	{ "Oriya", +1, Oriya_range16, 14, 0, 0 },
 	{ "Osage", +1, 0, 0, Osage_range32, 2 },
 	{ "Osmanya", +1, 0, 0, Osmanya_range32, 2 },
-	{ "P", +1, P_range16, 130, P_range32, 48 },
+	{ "P", +1, P_range16, 131, P_range32, 51 },
 	{ "Pahawh_Hmong", +1, 0, 0, Pahawh_Hmong_range32, 5 },
 	{ "Palmyrene", +1, 0, 0, Palmyrene_range32, 1 },
 	{ "Pau_Cin_Hau", +1, 0, 0, Pau_Cin_Hau_range32, 1 },
@@ -6004,15 +6106,15 @@
 	{ "Phags_Pa", +1, Phags_Pa_range16, 1, 0, 0 },
 	{ "Phoenician", +1, 0, 0, Phoenician_range32, 2 },
 	{ "Pi", +1, Pi_range16, 11, 0, 0 },
-	{ "Po", +1, Po_range16, 127, Po_range32, 48 },
+	{ "Po", +1, Po_range16, 128, Po_range32, 51 },
 	{ "Ps", +1, Ps_range16, 75, 0, 0 },
 	{ "Psalter_Pahlavi", +1, 0, 0, Psalter_Pahlavi_range32, 3 },
 	{ "Rejang", +1, Rejang_range16, 2, 0, 0 },
 	{ "Runic", +1, Runic_range16, 2, 0, 0 },
-	{ "S", +1, S_range16, 147, S_range32, 73 },
+	{ "S", +1, S_range16, 146, S_range32, 80 },
 	{ "Samaritan", +1, Samaritan_range16, 2, 0, 0 },
 	{ "Saurashtra", +1, Saurashtra_range16, 2, 0, 0 },
-	{ "Sc", +1, Sc_range16, 18, Sc_range32, 1 },
+	{ "Sc", +1, Sc_range16, 18, Sc_range32, 3 },
 	{ "Sharada", +1, 0, 0, Sharada_range32, 2 },
 	{ "Shavian", +1, 0, 0, Shavian_range32, 1 },
 	{ "Siddham", +1, 0, 0, Siddham_range32, 2 },
@@ -6020,10 +6122,10 @@
 	{ "Sinhala", +1, Sinhala_range16, 12, Sinhala_range32, 1 },
 	{ "Sk", +1, Sk_range16, 28, Sk_range32, 1 },
 	{ "Sm", +1, Sm_range16, 53, Sm_range32, 11 },
-	{ "So", +1, So_range16, 112, So_range32, 62 },
+	{ "So", +1, So_range16, 111, So_range32, 69 },
 	{ "Sogdian", +1, 0, 0, Sogdian_range32, 1 },
 	{ "Sora_Sompeng", +1, 0, 0, Sora_Sompeng_range32, 2 },
-	{ "Soyombo", +1, 0, 0, Soyombo_range32, 2 },
+	{ "Soyombo", +1, 0, 0, Soyombo_range32, 1 },
 	{ "Sundanese", +1, Sundanese_range16, 2, 0, 0 },
 	{ "Syloti_Nagri", +1, Syloti_Nagri_range16, 1, 0, 0 },
 	{ "Syriac", +1, Syriac_range16, 4, 0, 0 },
@@ -6033,7 +6135,7 @@
 	{ "Tai_Tham", +1, Tai_Tham_range16, 5, 0, 0 },
 	{ "Tai_Viet", +1, Tai_Viet_range16, 2, 0, 0 },
 	{ "Takri", +1, 0, 0, Takri_range32, 2 },
-	{ "Tamil", +1, Tamil_range16, 16, 0, 0 },
+	{ "Tamil", +1, Tamil_range16, 16, Tamil_range32, 2 },
 	{ "Tangut", +1, 0, 0, Tangut_range32, 3 },
 	{ "Telugu", +1, Telugu_range16, 12, 0, 0 },
 	{ "Thaana", +1, Thaana_range16, 1, 0, 0 },
@@ -6043,6 +6145,7 @@
 	{ "Tirhuta", +1, 0, 0, Tirhuta_range32, 2 },
 	{ "Ugaritic", +1, 0, 0, Ugaritic_range32, 2 },
 	{ "Vai", +1, Vai_range16, 1, 0, 0 },
+	{ "Wancho", +1, 0, 0, Wancho_range32, 2 },
 	{ "Warang_Citi", +1, 0, 0, Warang_Citi_range32, 2 },
 	{ "Yi", +1, Yi_range16, 2, 0, 0 },
 	{ "Z", +1, Z_range16, 8, 0, 0 },
@@ -6051,7 +6154,7 @@
 	{ "Zp", +1, Zp_range16, 1, 0, 0 },
 	{ "Zs", +1, Zs_range16, 7, 0, 0 },
 };
-const int num_unicode_groups = 184;
+const int num_unicode_groups = 188;
 
 
 }  // namespace re2