fix potential concurrency bugs in port-for-each
[bpt/guile.git] / libguile / srfi-14.i.c
index fd537da..8047cdc 100644 (file)
@@ -559,6 +559,10 @@ scm_t_char_range cs_lower_case_ranges[] = {
   ,
   {0x0523, 0x0523}
   ,
+  {0x0525, 0x0525}
+  ,
+  {0x0527, 0x0527}
+  ,
   {0x0561, 0x0587}
   ,
   {0x1930, 0x1938}
@@ -911,6 +915,8 @@ scm_t_char_range cs_lower_case_ranges[] = {
   ,
   {0xa65f, 0xa65f}
   ,
+  {0xa661, 0xa661}
+  ,
   {0xa663, 0xa663}
   ,
   {0xa665, 0xa665}
@@ -1043,6 +1049,20 @@ scm_t_char_range cs_lower_case_ranges[] = {
   ,
   {0xa78c, 0xa78c}
   ,
+  {0xa78e, 0xa78e}
+  ,
+  {0xa791, 0xa791}
+  ,
+  {0xa7a1, 0xa7a1}
+  ,
+  {0xa7a3, 0xa7a3}
+  ,
+  {0xa7a5, 0xa7a5}
+  ,
+  {0xa7a7, 0xa7a7}
+  ,
+  {0xa7a9, 0xa7a9}
+  ,
   {0xfb00, 0xfb06}
   ,
   {0xfb13, 0xfb17}
@@ -1051,11 +1071,13 @@ scm_t_char_range cs_lower_case_ranges[] = {
   ,
   {0x10428, 0x1044f}
   ,
+  {0x1f521, 0x1f521}
+  ,
   {0xe0061, 0xe007a}
 };
 
 scm_t_char_set cs_lower_case = {
-  523,
+  534,
   cs_lower_case_ranges
 };
 
@@ -1586,6 +1608,10 @@ scm_t_char_range cs_upper_case_ranges[] = {
   ,
   {0x0522, 0x0522}
   ,
+  {0x0524, 0x0524}
+  ,
+  {0x0526, 0x0526}
+  ,
   {0x0531, 0x0556}
   ,
   {0x10a0, 0x10c5}
@@ -1910,6 +1936,8 @@ scm_t_char_range cs_upper_case_ranges[] = {
   ,
   {0xa65e, 0xa65e}
   ,
+  {0xa660, 0xa660}
+  ,
   {0xa662, 0xa662}
   ,
   {0xa664, 0xa664}
@@ -2038,15 +2066,39 @@ scm_t_char_range cs_upper_case_ranges[] = {
   ,
   {0xa78b, 0xa78b}
   ,
+  {0xa78d, 0xa78d}
+  ,
+  {0xa790, 0xa790}
+  ,
+  {0xa7a0, 0xa7a0}
+  ,
+  {0xa7a2, 0xa7a2}
+  ,
+  {0xa7a4, 0xa7a4}
+  ,
+  {0xa7a6, 0xa7a6}
+  ,
+  {0xa7a8, 0xa7a8}
+  ,
   {0xff21, 0xff3a}
   ,
   {0x10400, 0x10427}
   ,
+  {0x1f110, 0x1f12c}
+  ,
+  {0x1f130, 0x1f149}
+  ,
+  {0x1f150, 0x1f169}
+  ,
+  {0x1f170, 0x1f18a}
+  ,
+  {0x1f520, 0x1f520}
+  ,
   {0xe0041, 0xe005a}
 };
 
 scm_t_char_set cs_upper_case = {
-  492,
+  507,
   cs_upper_case_ranges
 };
 
@@ -2120,7 +2172,7 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x03f7, 0x0481}
   ,
-  {0x048a, 0x0523}
+  {0x048a, 0x0527}
   ,
   {0x0531, 0x0556}
   ,
@@ -2132,7 +2184,7 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x05f0, 0x05f2}
   ,
-  {0x0621, 0x064a}
+  {0x0620, 0x064a}
   ,
   {0x066e, 0x066f}
   ,
@@ -2162,6 +2214,16 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x07fa, 0x07fa}
   ,
+  {0x0800, 0x0815}
+  ,
+  {0x081a, 0x081a}
+  ,
+  {0x0824, 0x0824}
+  ,
+  {0x0828, 0x0828}
+  ,
+  {0x0840, 0x0858}
+  ,
   {0x0904, 0x0939}
   ,
   {0x093d, 0x093d}
@@ -2170,9 +2232,9 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x0958, 0x0961}
   ,
-  {0x0971, 0x0972}
+  {0x0971, 0x0977}
   ,
-  {0x097b, 0x097f}
+  {0x0979, 0x097f}
   ,
   {0x0985, 0x098c}
   ,
@@ -2308,16 +2370,18 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x0ce0, 0x0ce1}
   ,
+  {0x0cf1, 0x0cf2}
+  ,
   {0x0d05, 0x0d0c}
   ,
   {0x0d0e, 0x0d10}
   ,
-  {0x0d12, 0x0d28}
-  ,
-  {0x0d2a, 0x0d39}
+  {0x0d12, 0x0d3a}
   ,
   {0x0d3d, 0x0d3d}
   ,
+  {0x0d4e, 0x0d4e}
+  ,
   {0x0d60, 0x0d61}
   ,
   {0x0d7a, 0x0d7f}
@@ -2378,7 +2442,7 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x0f49, 0x0f6c}
   ,
-  {0x0f88, 0x0f8b}
+  {0x0f88, 0x0f8c}
   ,
   {0x1000, 0x102a}
   ,
@@ -2404,13 +2468,7 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x10fc, 0x10fc}
   ,
-  {0x1100, 0x1159}
-  ,
-  {0x115f, 0x11a2}
-  ,
-  {0x11a8, 0x11f9}
-  ,
-  {0x1200, 0x1248}
+  {0x1100, 0x1248}
   ,
   {0x124a, 0x124d}
   ,
@@ -2448,7 +2506,7 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x1401, 0x166c}
   ,
-  {0x166f, 0x1676}
+  {0x166f, 0x167f}
   ,
   {0x1681, 0x169a}
   ,
@@ -2478,18 +2536,24 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x18aa, 0x18aa}
   ,
+  {0x18b0, 0x18f5}
+  ,
   {0x1900, 0x191c}
   ,
   {0x1950, 0x196d}
   ,
   {0x1970, 0x1974}
   ,
-  {0x1980, 0x19a9}
+  {0x1980, 0x19ab}
   ,
   {0x19c1, 0x19c7}
   ,
   {0x1a00, 0x1a16}
   ,
+  {0x1a20, 0x1a54}
+  ,
+  {0x1aa7, 0x1aa7}
+  ,
   {0x1b05, 0x1b33}
   ,
   {0x1b45, 0x1b4b}
@@ -2498,12 +2562,18 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x1bae, 0x1baf}
   ,
+  {0x1bc0, 0x1be5}
+  ,
   {0x1c00, 0x1c23}
   ,
   {0x1c4d, 0x1c4f}
   ,
   {0x1c5a, 0x1c7d}
   ,
+  {0x1ce9, 0x1cec}
+  ,
+  {0x1cee, 0x1cf1}
+  ,
   {0x1d00, 0x1dbf}
   ,
   {0x1e00, 0x1f15}
@@ -2548,7 +2618,7 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x207f, 0x207f}
   ,
-  {0x2090, 0x2094}
+  {0x2090, 0x209c}
   ,
   {0x2102, 0x2102}
   ,
@@ -2582,11 +2652,9 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x2c30, 0x2c5e}
   ,
-  {0x2c60, 0x2c6f}
+  {0x2c60, 0x2ce4}
   ,
-  {0x2c71, 0x2c7d}
-  ,
-  {0x2c80, 0x2ce4}
+  {0x2ceb, 0x2cee}
   ,
   {0x2d00, 0x2d25}
   ,
@@ -2632,35 +2700,41 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x3131, 0x318e}
   ,
-  {0x31a0, 0x31b7}
+  {0x31a0, 0x31ba}
   ,
   {0x31f0, 0x31ff}
   ,
   {0x3400, 0x4db5}
   ,
-  {0x4e00, 0x9fc3}
+  {0x4e00, 0x9fcb}
   ,
   {0xa000, 0xa48c}
   ,
+  {0xa4d0, 0xa4fd}
+  ,
   {0xa500, 0xa60c}
   ,
   {0xa610, 0xa61f}
   ,
   {0xa62a, 0xa62b}
   ,
-  {0xa640, 0xa65f}
-  ,
-  {0xa662, 0xa66e}
+  {0xa640, 0xa66e}
   ,
   {0xa67f, 0xa697}
   ,
+  {0xa6a0, 0xa6e5}
+  ,
   {0xa717, 0xa71f}
   ,
   {0xa722, 0xa788}
   ,
-  {0xa78b, 0xa78c}
+  {0xa78b, 0xa78e}
   ,
-  {0xa7fb, 0xa801}
+  {0xa790, 0xa791}
+  ,
+  {0xa7a0, 0xa7a9}
+  ,
+  {0xa7fa, 0xa801}
   ,
   {0xa803, 0xa805}
   ,
@@ -2672,21 +2746,65 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0xa882, 0xa8b3}
   ,
+  {0xa8f2, 0xa8f7}
+  ,
+  {0xa8fb, 0xa8fb}
+  ,
   {0xa90a, 0xa925}
   ,
   {0xa930, 0xa946}
   ,
+  {0xa960, 0xa97c}
+  ,
+  {0xa984, 0xa9b2}
+  ,
+  {0xa9cf, 0xa9cf}
+  ,
   {0xaa00, 0xaa28}
   ,
   {0xaa40, 0xaa42}
   ,
   {0xaa44, 0xaa4b}
   ,
+  {0xaa60, 0xaa76}
+  ,
+  {0xaa7a, 0xaa7a}
+  ,
+  {0xaa80, 0xaaaf}
+  ,
+  {0xaab1, 0xaab1}
+  ,
+  {0xaab5, 0xaab6}
+  ,
+  {0xaab9, 0xaabd}
+  ,
+  {0xaac0, 0xaac0}
+  ,
+  {0xaac2, 0xaac2}
+  ,
+  {0xaadb, 0xaadd}
+  ,
+  {0xab01, 0xab06}
+  ,
+  {0xab09, 0xab0e}
+  ,
+  {0xab11, 0xab16}
+  ,
+  {0xab20, 0xab26}
+  ,
+  {0xab28, 0xab2e}
+  ,
+  {0xabc0, 0xabe2}
+  ,
   {0xac00, 0xd7a3}
   ,
+  {0xd7b0, 0xd7c6}
+  ,
+  {0xd7cb, 0xd7fb}
+  ,
   {0xf900, 0xfa2d}
   ,
-  {0xfa30, 0xfa6a}
+  {0xfa30, 0xfa6d}
   ,
   {0xfa70, 0xfad9}
   ,
@@ -2778,7 +2896,7 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x1083c, 0x1083c}
   ,
-  {0x1083f, 0x1083f}
+  {0x1083f, 0x10855}
   ,
   {0x10900, 0x10915}
   ,
@@ -2792,8 +2910,28 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x10a19, 0x10a33}
   ,
+  {0x10a60, 0x10a7c}
+  ,
+  {0x10b00, 0x10b35}
+  ,
+  {0x10b40, 0x10b55}
+  ,
+  {0x10b60, 0x10b72}
+  ,
+  {0x10c00, 0x10c48}
+  ,
+  {0x11003, 0x11037}
+  ,
+  {0x11083, 0x110af}
+  ,
   {0x12000, 0x1236e}
   ,
+  {0x13000, 0x1342e}
+  ,
+  {0x16800, 0x16a38}
+  ,
+  {0x1b000, 0x1b001}
+  ,
   {0x1d400, 0x1d454}
   ,
   {0x1d456, 0x1d49c}
@@ -2856,11 +2994,15 @@ scm_t_char_range cs_letter_ranges[] = {
   ,
   {0x20000, 0x2a6d6}
   ,
+  {0x2a700, 0x2b734}
+  ,
+  {0x2b740, 0x2b81d}
+  ,
   {0x2f800, 0x2fa1d}
 };
 
 scm_t_char_set cs_letter = {
-  390,
+  435,
   cs_letter_ranges
 };
 
@@ -2909,6 +3051,10 @@ scm_t_char_range cs_digit_ranges[] = {
   ,
   {0x19d0, 0x19d9}
   ,
+  {0x1a80, 0x1a89}
+  ,
+  {0x1a90, 0x1a99}
+  ,
   {0x1b50, 0x1b59}
   ,
   {0x1bb0, 0x1bb9}
@@ -2923,17 +3069,23 @@ scm_t_char_range cs_digit_ranges[] = {
   ,
   {0xa900, 0xa909}
   ,
+  {0xa9d0, 0xa9d9}
+  ,
   {0xaa50, 0xaa59}
   ,
+  {0xabf0, 0xabf9}
+  ,
   {0xff10, 0xff19}
   ,
   {0x104a0, 0x104a9}
   ,
+  {0x11066, 0x1106f}
+  ,
   {0x1d7ce, 0x1d7ff}
 };
 
 scm_t_char_set cs_digit = {
-  33,
+  38,
   cs_digit_ranges
 };
 
@@ -2995,7 +3147,7 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x03f7, 0x0481}
   ,
-  {0x048a, 0x0523}
+  {0x048a, 0x0527}
   ,
   {0x0531, 0x0556}
   ,
@@ -3007,7 +3159,7 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x05f0, 0x05f2}
   ,
-  {0x0621, 0x064a}
+  {0x0620, 0x064a}
   ,
   {0x0660, 0x0669}
   ,
@@ -3037,6 +3189,16 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x07fa, 0x07fa}
   ,
+  {0x0800, 0x0815}
+  ,
+  {0x081a, 0x081a}
+  ,
+  {0x0824, 0x0824}
+  ,
+  {0x0828, 0x0828}
+  ,
+  {0x0840, 0x0858}
+  ,
   {0x0904, 0x0939}
   ,
   {0x093d, 0x093d}
@@ -3047,9 +3209,9 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x0966, 0x096f}
   ,
-  {0x0971, 0x0972}
+  {0x0971, 0x0977}
   ,
-  {0x097b, 0x097f}
+  {0x0979, 0x097f}
   ,
   {0x0985, 0x098c}
   ,
@@ -3197,16 +3359,18 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x0ce6, 0x0cef}
   ,
+  {0x0cf1, 0x0cf2}
+  ,
   {0x0d05, 0x0d0c}
   ,
   {0x0d0e, 0x0d10}
   ,
-  {0x0d12, 0x0d28}
-  ,
-  {0x0d2a, 0x0d39}
+  {0x0d12, 0x0d3a}
   ,
   {0x0d3d, 0x0d3d}
   ,
+  {0x0d4e, 0x0d4e}
+  ,
   {0x0d60, 0x0d61}
   ,
   {0x0d66, 0x0d6f}
@@ -3275,7 +3439,7 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x0f49, 0x0f6c}
   ,
-  {0x0f88, 0x0f8b}
+  {0x0f88, 0x0f8c}
   ,
   {0x1000, 0x102a}
   ,
@@ -3303,13 +3467,7 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x10fc, 0x10fc}
   ,
-  {0x1100, 0x1159}
-  ,
-  {0x115f, 0x11a2}
-  ,
-  {0x11a8, 0x11f9}
-  ,
-  {0x1200, 0x1248}
+  {0x1100, 0x1248}
   ,
   {0x124a, 0x124d}
   ,
@@ -3347,7 +3505,7 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x1401, 0x166c}
   ,
-  {0x166f, 0x1676}
+  {0x166f, 0x167f}
   ,
   {0x1681, 0x169a}
   ,
@@ -3381,13 +3539,15 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x18aa, 0x18aa}
   ,
+  {0x18b0, 0x18f5}
+  ,
   {0x1900, 0x191c}
   ,
   {0x1946, 0x196d}
   ,
   {0x1970, 0x1974}
   ,
-  {0x1980, 0x19a9}
+  {0x1980, 0x19ab}
   ,
   {0x19c1, 0x19c7}
   ,
@@ -3395,6 +3555,14 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x1a00, 0x1a16}
   ,
+  {0x1a20, 0x1a54}
+  ,
+  {0x1a80, 0x1a89}
+  ,
+  {0x1a90, 0x1a99}
+  ,
+  {0x1aa7, 0x1aa7}
+  ,
   {0x1b05, 0x1b33}
   ,
   {0x1b45, 0x1b4b}
@@ -3405,12 +3573,18 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x1bae, 0x1bb9}
   ,
+  {0x1bc0, 0x1be5}
+  ,
   {0x1c00, 0x1c23}
   ,
   {0x1c40, 0x1c49}
   ,
   {0x1c4d, 0x1c7d}
   ,
+  {0x1ce9, 0x1cec}
+  ,
+  {0x1cee, 0x1cf1}
+  ,
   {0x1d00, 0x1dbf}
   ,
   {0x1e00, 0x1f15}
@@ -3455,7 +3629,7 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x207f, 0x207f}
   ,
-  {0x2090, 0x2094}
+  {0x2090, 0x209c}
   ,
   {0x2102, 0x2102}
   ,
@@ -3489,11 +3663,9 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x2c30, 0x2c5e}
   ,
-  {0x2c60, 0x2c6f}
-  ,
-  {0x2c71, 0x2c7d}
+  {0x2c60, 0x2ce4}
   ,
-  {0x2c80, 0x2ce4}
+  {0x2ceb, 0x2cee}
   ,
   {0x2d00, 0x2d25}
   ,
@@ -3539,33 +3711,39 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x3131, 0x318e}
   ,
-  {0x31a0, 0x31b7}
+  {0x31a0, 0x31ba}
   ,
   {0x31f0, 0x31ff}
   ,
   {0x3400, 0x4db5}
   ,
-  {0x4e00, 0x9fc3}
+  {0x4e00, 0x9fcb}
   ,
   {0xa000, 0xa48c}
   ,
+  {0xa4d0, 0xa4fd}
+  ,
   {0xa500, 0xa60c}
   ,
   {0xa610, 0xa62b}
   ,
-  {0xa640, 0xa65f}
-  ,
-  {0xa662, 0xa66e}
+  {0xa640, 0xa66e}
   ,
   {0xa67f, 0xa697}
   ,
+  {0xa6a0, 0xa6e5}
+  ,
   {0xa717, 0xa71f}
   ,
   {0xa722, 0xa788}
   ,
-  {0xa78b, 0xa78c}
+  {0xa78b, 0xa78e}
+  ,
+  {0xa790, 0xa791}
   ,
-  {0xa7fb, 0xa801}
+  {0xa7a0, 0xa7a9}
+  ,
+  {0xa7fa, 0xa801}
   ,
   {0xa803, 0xa805}
   ,
@@ -3579,10 +3757,20 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0xa8d0, 0xa8d9}
   ,
+  {0xa8f2, 0xa8f7}
+  ,
+  {0xa8fb, 0xa8fb}
+  ,
   {0xa900, 0xa925}
   ,
   {0xa930, 0xa946}
   ,
+  {0xa960, 0xa97c}
+  ,
+  {0xa984, 0xa9b2}
+  ,
+  {0xa9cf, 0xa9d9}
+  ,
   {0xaa00, 0xaa28}
   ,
   {0xaa40, 0xaa42}
@@ -3591,11 +3779,47 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0xaa50, 0xaa59}
   ,
+  {0xaa60, 0xaa76}
+  ,
+  {0xaa7a, 0xaa7a}
+  ,
+  {0xaa80, 0xaaaf}
+  ,
+  {0xaab1, 0xaab1}
+  ,
+  {0xaab5, 0xaab6}
+  ,
+  {0xaab9, 0xaabd}
+  ,
+  {0xaac0, 0xaac0}
+  ,
+  {0xaac2, 0xaac2}
+  ,
+  {0xaadb, 0xaadd}
+  ,
+  {0xab01, 0xab06}
+  ,
+  {0xab09, 0xab0e}
+  ,
+  {0xab11, 0xab16}
+  ,
+  {0xab20, 0xab26}
+  ,
+  {0xab28, 0xab2e}
+  ,
+  {0xabc0, 0xabe2}
+  ,
+  {0xabf0, 0xabf9}
+  ,
   {0xac00, 0xd7a3}
   ,
+  {0xd7b0, 0xd7c6}
+  ,
+  {0xd7cb, 0xd7fb}
+  ,
   {0xf900, 0xfa2d}
   ,
-  {0xfa30, 0xfa6a}
+  {0xfa30, 0xfa6d}
   ,
   {0xfa70, 0xfad9}
   ,
@@ -3691,7 +3915,7 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x1083c, 0x1083c}
   ,
-  {0x1083f, 0x1083f}
+  {0x1083f, 0x10855}
   ,
   {0x10900, 0x10915}
   ,
@@ -3705,8 +3929,30 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x10a19, 0x10a33}
   ,
+  {0x10a60, 0x10a7c}
+  ,
+  {0x10b00, 0x10b35}
+  ,
+  {0x10b40, 0x10b55}
+  ,
+  {0x10b60, 0x10b72}
+  ,
+  {0x10c00, 0x10c48}
+  ,
+  {0x11003, 0x11037}
+  ,
+  {0x11066, 0x1106f}
+  ,
+  {0x11083, 0x110af}
+  ,
   {0x12000, 0x1236e}
   ,
+  {0x13000, 0x1342e}
+  ,
+  {0x16800, 0x16a38}
+  ,
+  {0x1b000, 0x1b001}
+  ,
   {0x1d400, 0x1d454}
   ,
   {0x1d456, 0x1d49c}
@@ -3771,11 +4017,15 @@ scm_t_char_range cs_letter_plus_digit_ranges[] = {
   ,
   {0x20000, 0x2a6d6}
   ,
+  {0x2a700, 0x2b734}
+  ,
+  {0x2b740, 0x2b81d}
+  ,
   {0x2f800, 0x2fa1d}
 };
 
 scm_t_char_set cs_letter_plus_digit = {
-  411,
+  460,
   cs_letter_plus_digit_ranges
 };
 
@@ -3794,7 +4044,7 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x038e, 0x03a1}
   ,
-  {0x03a3, 0x0523}
+  {0x03a3, 0x0527}
   ,
   {0x0531, 0x0556}
   ,
@@ -3812,11 +4062,7 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x0606, 0x061b}
   ,
-  {0x061e, 0x061f}
-  ,
-  {0x0621, 0x065e}
-  ,
-  {0x0660, 0x06dc}
+  {0x061e, 0x06dc}
   ,
   {0x06de, 0x070d}
   ,
@@ -3826,15 +4072,17 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x07c0, 0x07fa}
   ,
-  {0x0901, 0x0939}
+  {0x0800, 0x082d}
   ,
-  {0x093c, 0x094d}
+  {0x0830, 0x083e}
   ,
-  {0x0950, 0x0954}
+  {0x0840, 0x085b}
   ,
-  {0x0958, 0x0972}
+  {0x085e, 0x085e}
   ,
-  {0x097b, 0x097f}
+  {0x0900, 0x0977}
+  ,
+  {0x0979, 0x097f}
   ,
   {0x0981, 0x0983}
   ,
@@ -3862,7 +4110,7 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x09df, 0x09e3}
   ,
-  {0x09e6, 0x09fa}
+  {0x09e6, 0x09fb}
   ,
   {0x0a01, 0x0a03}
   ,
@@ -3950,7 +4198,7 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x0b5f, 0x0b63}
   ,
-  {0x0b66, 0x0b71}
+  {0x0b66, 0x0b77}
   ,
   {0x0b82, 0x0b83}
   ,
@@ -4046,15 +4294,13 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x0d0e, 0x0d10}
   ,
-  {0x0d12, 0x0d28}
-  ,
-  {0x0d2a, 0x0d39}
+  {0x0d12, 0x0d3a}
   ,
   {0x0d3d, 0x0d44}
   ,
   {0x0d46, 0x0d48}
   ,
-  {0x0d4a, 0x0d4d}
+  {0x0d4a, 0x0d4e}
   ,
   {0x0d57, 0x0d57}
   ,
@@ -4130,29 +4376,19 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x0f49, 0x0f6c}
   ,
-  {0x0f71, 0x0f8b}
-  ,
-  {0x0f90, 0x0f97}
+  {0x0f71, 0x0f97}
   ,
   {0x0f99, 0x0fbc}
   ,
   {0x0fbe, 0x0fcc}
   ,
-  {0x0fce, 0x0fd4}
-  ,
-  {0x1000, 0x1099}
+  {0x0fce, 0x0fda}
   ,
-  {0x109e, 0x10c5}
+  {0x1000, 0x10c5}
   ,
   {0x10d0, 0x10fc}
   ,
-  {0x1100, 0x1159}
-  ,
-  {0x115f, 0x11a2}
-  ,
-  {0x11a8, 0x11f9}
-  ,
-  {0x1200, 0x1248}
+  {0x1100, 0x1248}
   ,
   {0x124a, 0x124d}
   ,
@@ -4184,13 +4420,13 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x1318, 0x135a}
   ,
-  {0x135f, 0x137c}
+  {0x135d, 0x137c}
   ,
   {0x1380, 0x1399}
   ,
   {0x13a0, 0x13f4}
   ,
-  {0x1401, 0x1676}
+  {0x1400, 0x167f}
   ,
   {0x1681, 0x169c}
   ,
@@ -4226,6 +4462,8 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x1880, 0x18aa}
   ,
+  {0x18b0, 0x18f5}
+  ,
   {0x1900, 0x191c}
   ,
   {0x1920, 0x192b}
@@ -4238,15 +4476,23 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x1970, 0x1974}
   ,
-  {0x1980, 0x19a9}
+  {0x1980, 0x19ab}
   ,
   {0x19b0, 0x19c9}
   ,
-  {0x19d0, 0x19d9}
+  {0x19d0, 0x19da}
   ,
   {0x19de, 0x1a1b}
   ,
-  {0x1a1e, 0x1a1f}
+  {0x1a1e, 0x1a5e}
+  ,
+  {0x1a60, 0x1a7c}
+  ,
+  {0x1a7f, 0x1a89}
+  ,
+  {0x1a90, 0x1a99}
+  ,
+  {0x1aa0, 0x1aad}
   ,
   {0x1b00, 0x1b4b}
   ,
@@ -4256,15 +4502,19 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x1bae, 0x1bb9}
   ,
-  {0x1c00, 0x1c37}
+  {0x1bc0, 0x1bf3}
+  ,
+  {0x1bfc, 0x1c37}
   ,
   {0x1c3b, 0x1c49}
   ,
   {0x1c4d, 0x1c7f}
   ,
+  {0x1cd0, 0x1cf2}
+  ,
   {0x1d00, 0x1de6}
   ,
-  {0x1dfe, 0x1f15}
+  {0x1dfc, 0x1f15}
   ,
   {0x1f18, 0x1f1d}
   ,
@@ -4304,75 +4554,43 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x2074, 0x208e}
   ,
-  {0x2090, 0x2094}
+  {0x2090, 0x209c}
   ,
-  {0x20a0, 0x20b5}
+  {0x20a0, 0x20b9}
   ,
   {0x20d0, 0x20f0}
   ,
-  {0x2100, 0x214f}
+  {0x2100, 0x2189}
   ,
-  {0x2153, 0x2188}
-  ,
-  {0x2190, 0x23e7}
+  {0x2190, 0x23f3}
   ,
   {0x2400, 0x2426}
   ,
   {0x2440, 0x244a}
   ,
-  {0x2460, 0x269d}
-  ,
-  {0x26a0, 0x26bc}
-  ,
-  {0x26c0, 0x26c3}
-  ,
-  {0x2701, 0x2704}
-  ,
-  {0x2706, 0x2709}
-  ,
-  {0x270c, 0x2727}
+  {0x2460, 0x26ff}
   ,
-  {0x2729, 0x274b}
-  ,
-  {0x274d, 0x274d}
-  ,
-  {0x274f, 0x2752}
-  ,
-  {0x2756, 0x2756}
-  ,
-  {0x2758, 0x275e}
-  ,
-  {0x2761, 0x2794}
-  ,
-  {0x2798, 0x27af}
-  ,
-  {0x27b1, 0x27be}
-  ,
-  {0x27c0, 0x27ca}
+  {0x2701, 0x27ca}
   ,
   {0x27cc, 0x27cc}
   ,
-  {0x27d0, 0x2b4c}
+  {0x27ce, 0x2b4c}
   ,
-  {0x2b50, 0x2b54}
+  {0x2b50, 0x2b59}
   ,
   {0x2c00, 0x2c2e}
   ,
   {0x2c30, 0x2c5e}
   ,
-  {0x2c60, 0x2c6f}
-  ,
-  {0x2c71, 0x2c7d}
-  ,
-  {0x2c80, 0x2cea}
+  {0x2c60, 0x2cf1}
   ,
   {0x2cf9, 0x2d25}
   ,
   {0x2d30, 0x2d65}
   ,
-  {0x2d6f, 0x2d6f}
+  {0x2d6f, 0x2d70}
   ,
-  {0x2d80, 0x2d96}
+  {0x2d7f, 0x2d96}
   ,
   {0x2da0, 0x2da6}
   ,
@@ -4390,7 +4608,7 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x2dd8, 0x2dde}
   ,
-  {0x2de0, 0x2e30}
+  {0x2de0, 0x2e31}
   ,
   {0x2e80, 0x2e99}
   ,
@@ -4410,35 +4628,39 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x3131, 0x318e}
   ,
-  {0x3190, 0x31b7}
+  {0x3190, 0x31ba}
   ,
   {0x31c0, 0x31e3}
   ,
   {0x31f0, 0x321e}
   ,
-  {0x3220, 0x3243}
-  ,
-  {0x3250, 0x32fe}
+  {0x3220, 0x32fe}
   ,
   {0x3300, 0x4db5}
   ,
-  {0x4dc0, 0x9fc3}
+  {0x4dc0, 0x9fcb}
   ,
   {0xa000, 0xa48c}
   ,
   {0xa490, 0xa4c6}
   ,
-  {0xa500, 0xa62b}
-  ,
-  {0xa640, 0xa65f}
+  {0xa4d0, 0xa62b}
   ,
-  {0xa662, 0xa673}
+  {0xa640, 0xa673}
   ,
   {0xa67c, 0xa697}
   ,
-  {0xa700, 0xa78c}
+  {0xa6a0, 0xa6f7}
+  ,
+  {0xa700, 0xa78e}
+  ,
+  {0xa790, 0xa791}
   ,
-  {0xa7fb, 0xa82b}
+  {0xa7a0, 0xa7a9}
+  ,
+  {0xa7fa, 0xa82b}
+  ,
+  {0xa830, 0xa839}
   ,
   {0xa840, 0xa877}
   ,
@@ -4446,9 +4668,17 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0xa8ce, 0xa8d9}
   ,
+  {0xa8e0, 0xa8fb}
+  ,
   {0xa900, 0xa953}
   ,
-  {0xa95f, 0xa95f}
+  {0xa95f, 0xa97c}
+  ,
+  {0xa980, 0xa9cd}
+  ,
+  {0xa9cf, 0xa9d9}
+  ,
+  {0xa9de, 0xa9df}
   ,
   {0xaa00, 0xaa36}
   ,
@@ -4456,13 +4686,35 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0xaa50, 0xaa59}
   ,
-  {0xaa5c, 0xaa5f}
+  {0xaa5c, 0xaa7b}
+  ,
+  {0xaa80, 0xaac2}
+  ,
+  {0xaadb, 0xaadf}
+  ,
+  {0xab01, 0xab06}
+  ,
+  {0xab09, 0xab0e}
+  ,
+  {0xab11, 0xab16}
+  ,
+  {0xab20, 0xab26}
+  ,
+  {0xab28, 0xab2e}
+  ,
+  {0xabc0, 0xabed}
+  ,
+  {0xabf0, 0xabf9}
   ,
   {0xac00, 0xd7a3}
   ,
+  {0xd7b0, 0xd7c6}
+  ,
+  {0xd7cb, 0xd7fb}
+  ,
   {0xf900, 0xfa2d}
   ,
-  {0xfa30, 0xfa6a}
+  {0xfa30, 0xfa6d}
   ,
   {0xfa70, 0xfad9}
   ,
@@ -4480,7 +4732,7 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0xfb43, 0xfb44}
   ,
-  {0xfb46, 0xfbb1}
+  {0xfb46, 0xfbc1}
   ,
   {0xfbd3, 0xfd3f}
   ,
@@ -4574,9 +4826,11 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x1083c, 0x1083c}
   ,
-  {0x1083f, 0x1083f}
+  {0x1083f, 0x10855}
   ,
-  {0x10900, 0x10919}
+  {0x10857, 0x1085f}
+  ,
+  {0x10900, 0x1091b}
   ,
   {0x1091f, 0x10939}
   ,
@@ -4598,12 +4852,40 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x10a50, 0x10a58}
   ,
+  {0x10a60, 0x10a7f}
+  ,
+  {0x10b00, 0x10b35}
+  ,
+  {0x10b39, 0x10b55}
+  ,
+  {0x10b58, 0x10b72}
+  ,
+  {0x10b78, 0x10b7f}
+  ,
+  {0x10c00, 0x10c48}
+  ,
+  {0x10e60, 0x10e7e}
+  ,
+  {0x11000, 0x1104d}
+  ,
+  {0x11052, 0x1106f}
+  ,
+  {0x11080, 0x110bc}
+  ,
+  {0x110be, 0x110c1}
+  ,
   {0x12000, 0x1236e}
   ,
   {0x12400, 0x12462}
   ,
   {0x12470, 0x12473}
   ,
+  {0x13000, 0x1342e}
+  ,
+  {0x16800, 0x16a38}
+  ,
+  {0x1b000, 0x1b001}
+  ,
   {0x1d000, 0x1d0f5}
   ,
   {0x1d100, 0x1d126}
@@ -4664,47 +4946,131 @@ scm_t_char_range cs_graphic_ranges[] = {
   ,
   {0x1f030, 0x1f093}
   ,
-  {0x20000, 0x2a6d6}
+  {0x1f0a0, 0x1f0ae}
   ,
-  {0x2f800, 0x2fa1d}
+  {0x1f0b1, 0x1f0be}
   ,
-  {0xe0100, 0xe01ef}
-};
-
-scm_t_char_set cs_graphic = {
-  445,
-  cs_graphic_ranges
-};
-
-scm_t_char_range cs_whitespace_ranges[] = {
-  {0x0009, 0x000d}
+  {0x1f0c1, 0x1f0cf}
   ,
-  {0x0020, 0x0020}
+  {0x1f0d1, 0x1f0df}
   ,
-  {0x00a0, 0x00a0}
+  {0x1f100, 0x1f10a}
   ,
-  {0x1680, 0x1680}
+  {0x1f110, 0x1f12e}
   ,
-  {0x180e, 0x180e}
+  {0x1f130, 0x1f169}
   ,
-  {0x2000, 0x200a}
+  {0x1f170, 0x1f19a}
   ,
-  {0x2028, 0x2029}
+  {0x1f1e6, 0x1f202}
   ,
-  {0x202f, 0x202f}
+  {0x1f210, 0x1f23a}
   ,
-  {0x205f, 0x205f}
+  {0x1f240, 0x1f248}
   ,
-  {0x3000, 0x3000}
-};
-
-scm_t_char_set cs_whitespace = {
-  10,
-  cs_whitespace_ranges
-};
-
-scm_t_char_range cs_printing_ranges[] = {
-  {0x0009, 0x000d}
+  {0x1f250, 0x1f251}
+  ,
+  {0x1f300, 0x1f320}
+  ,
+  {0x1f330, 0x1f335}
+  ,
+  {0x1f337, 0x1f37c}
+  ,
+  {0x1f380, 0x1f393}
+  ,
+  {0x1f3a0, 0x1f3c4}
+  ,
+  {0x1f3c6, 0x1f3ca}
+  ,
+  {0x1f3e0, 0x1f3f0}
+  ,
+  {0x1f400, 0x1f43e}
+  ,
+  {0x1f440, 0x1f440}
+  ,
+  {0x1f442, 0x1f4f7}
+  ,
+  {0x1f4f9, 0x1f4fc}
+  ,
+  {0x1f500, 0x1f53d}
+  ,
+  {0x1f550, 0x1f567}
+  ,
+  {0x1f5fb, 0x1f5ff}
+  ,
+  {0x1f601, 0x1f610}
+  ,
+  {0x1f612, 0x1f614}
+  ,
+  {0x1f616, 0x1f616}
+  ,
+  {0x1f618, 0x1f618}
+  ,
+  {0x1f61a, 0x1f61a}
+  ,
+  {0x1f61c, 0x1f61e}
+  ,
+  {0x1f620, 0x1f625}
+  ,
+  {0x1f628, 0x1f62b}
+  ,
+  {0x1f62d, 0x1f62d}
+  ,
+  {0x1f630, 0x1f633}
+  ,
+  {0x1f635, 0x1f640}
+  ,
+  {0x1f645, 0x1f64f}
+  ,
+  {0x1f680, 0x1f6c5}
+  ,
+  {0x1f700, 0x1f773}
+  ,
+  {0x20000, 0x2a6d6}
+  ,
+  {0x2a700, 0x2b734}
+  ,
+  {0x2b740, 0x2b81d}
+  ,
+  {0x2f800, 0x2fa1d}
+  ,
+  {0xe0100, 0xe01ef}
+};
+
+scm_t_char_set cs_graphic = {
+  503,
+  cs_graphic_ranges
+};
+
+scm_t_char_range cs_whitespace_ranges[] = {
+  {0x0009, 0x000d}
+  ,
+  {0x0020, 0x0020}
+  ,
+  {0x00a0, 0x00a0}
+  ,
+  {0x1680, 0x1680}
+  ,
+  {0x180e, 0x180e}
+  ,
+  {0x2000, 0x200a}
+  ,
+  {0x2028, 0x2029}
+  ,
+  {0x202f, 0x202f}
+  ,
+  {0x205f, 0x205f}
+  ,
+  {0x3000, 0x3000}
+};
+
+scm_t_char_set cs_whitespace = {
+  10,
+  cs_whitespace_ranges
+};
+
+scm_t_char_range cs_printing_ranges[] = {
+  {0x0009, 0x000d}
   ,
   {0x0020, 0x007e}
   ,
@@ -4720,7 +5086,7 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x038e, 0x03a1}
   ,
-  {0x03a3, 0x0523}
+  {0x03a3, 0x0527}
   ,
   {0x0531, 0x0556}
   ,
@@ -4738,11 +5104,7 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x0606, 0x061b}
   ,
-  {0x061e, 0x061f}
-  ,
-  {0x0621, 0x065e}
-  ,
-  {0x0660, 0x06dc}
+  {0x061e, 0x06dc}
   ,
   {0x06de, 0x070d}
   ,
@@ -4752,15 +5114,17 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x07c0, 0x07fa}
   ,
-  {0x0901, 0x0939}
+  {0x0800, 0x082d}
   ,
-  {0x093c, 0x094d}
+  {0x0830, 0x083e}
   ,
-  {0x0950, 0x0954}
+  {0x0840, 0x085b}
   ,
-  {0x0958, 0x0972}
+  {0x085e, 0x085e}
   ,
-  {0x097b, 0x097f}
+  {0x0900, 0x0977}
+  ,
+  {0x0979, 0x097f}
   ,
   {0x0981, 0x0983}
   ,
@@ -4788,7 +5152,7 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x09df, 0x09e3}
   ,
-  {0x09e6, 0x09fa}
+  {0x09e6, 0x09fb}
   ,
   {0x0a01, 0x0a03}
   ,
@@ -4876,7 +5240,7 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x0b5f, 0x0b63}
   ,
-  {0x0b66, 0x0b71}
+  {0x0b66, 0x0b77}
   ,
   {0x0b82, 0x0b83}
   ,
@@ -4972,15 +5336,13 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x0d0e, 0x0d10}
   ,
-  {0x0d12, 0x0d28}
-  ,
-  {0x0d2a, 0x0d39}
+  {0x0d12, 0x0d3a}
   ,
   {0x0d3d, 0x0d44}
   ,
   {0x0d46, 0x0d48}
   ,
-  {0x0d4a, 0x0d4d}
+  {0x0d4a, 0x0d4e}
   ,
   {0x0d57, 0x0d57}
   ,
@@ -5056,29 +5418,19 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x0f49, 0x0f6c}
   ,
-  {0x0f71, 0x0f8b}
-  ,
-  {0x0f90, 0x0f97}
+  {0x0f71, 0x0f97}
   ,
   {0x0f99, 0x0fbc}
   ,
   {0x0fbe, 0x0fcc}
   ,
-  {0x0fce, 0x0fd4}
+  {0x0fce, 0x0fda}
   ,
-  {0x1000, 0x1099}
-  ,
-  {0x109e, 0x10c5}
+  {0x1000, 0x10c5}
   ,
   {0x10d0, 0x10fc}
   ,
-  {0x1100, 0x1159}
-  ,
-  {0x115f, 0x11a2}
-  ,
-  {0x11a8, 0x11f9}
-  ,
-  {0x1200, 0x1248}
+  {0x1100, 0x1248}
   ,
   {0x124a, 0x124d}
   ,
@@ -5110,15 +5462,13 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x1318, 0x135a}
   ,
-  {0x135f, 0x137c}
+  {0x135d, 0x137c}
   ,
   {0x1380, 0x1399}
   ,
   {0x13a0, 0x13f4}
   ,
-  {0x1401, 0x1676}
-  ,
-  {0x1680, 0x169c}
+  {0x1400, 0x169c}
   ,
   {0x16a0, 0x16f0}
   ,
@@ -5152,6 +5502,8 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x1880, 0x18aa}
   ,
+  {0x18b0, 0x18f5}
+  ,
   {0x1900, 0x191c}
   ,
   {0x1920, 0x192b}
@@ -5164,15 +5516,23 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x1970, 0x1974}
   ,
-  {0x1980, 0x19a9}
+  {0x1980, 0x19ab}
   ,
   {0x19b0, 0x19c9}
   ,
-  {0x19d0, 0x19d9}
+  {0x19d0, 0x19da}
   ,
   {0x19de, 0x1a1b}
   ,
-  {0x1a1e, 0x1a1f}
+  {0x1a1e, 0x1a5e}
+  ,
+  {0x1a60, 0x1a7c}
+  ,
+  {0x1a7f, 0x1a89}
+  ,
+  {0x1a90, 0x1a99}
+  ,
+  {0x1aa0, 0x1aad}
   ,
   {0x1b00, 0x1b4b}
   ,
@@ -5182,15 +5542,19 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x1bae, 0x1bb9}
   ,
-  {0x1c00, 0x1c37}
+  {0x1bc0, 0x1bf3}
+  ,
+  {0x1bfc, 0x1c37}
   ,
   {0x1c3b, 0x1c49}
   ,
   {0x1c4d, 0x1c7f}
   ,
+  {0x1cd0, 0x1cf2}
+  ,
   {0x1d00, 0x1de6}
   ,
-  {0x1dfe, 0x1f15}
+  {0x1dfc, 0x1f15}
   ,
   {0x1f18, 0x1f1d}
   ,
@@ -5232,75 +5596,43 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x2074, 0x208e}
   ,
-  {0x2090, 0x2094}
+  {0x2090, 0x209c}
   ,
-  {0x20a0, 0x20b5}
+  {0x20a0, 0x20b9}
   ,
   {0x20d0, 0x20f0}
   ,
-  {0x2100, 0x214f}
-  ,
-  {0x2153, 0x2188}
+  {0x2100, 0x2189}
   ,
-  {0x2190, 0x23e7}
+  {0x2190, 0x23f3}
   ,
   {0x2400, 0x2426}
   ,
   {0x2440, 0x244a}
   ,
-  {0x2460, 0x269d}
-  ,
-  {0x26a0, 0x26bc}
-  ,
-  {0x26c0, 0x26c3}
-  ,
-  {0x2701, 0x2704}
-  ,
-  {0x2706, 0x2709}
-  ,
-  {0x270c, 0x2727}
-  ,
-  {0x2729, 0x274b}
+  {0x2460, 0x26ff}
   ,
-  {0x274d, 0x274d}
-  ,
-  {0x274f, 0x2752}
-  ,
-  {0x2756, 0x2756}
-  ,
-  {0x2758, 0x275e}
-  ,
-  {0x2761, 0x2794}
-  ,
-  {0x2798, 0x27af}
-  ,
-  {0x27b1, 0x27be}
-  ,
-  {0x27c0, 0x27ca}
+  {0x2701, 0x27ca}
   ,
   {0x27cc, 0x27cc}
   ,
-  {0x27d0, 0x2b4c}
+  {0x27ce, 0x2b4c}
   ,
-  {0x2b50, 0x2b54}
+  {0x2b50, 0x2b59}
   ,
   {0x2c00, 0x2c2e}
   ,
   {0x2c30, 0x2c5e}
   ,
-  {0x2c60, 0x2c6f}
-  ,
-  {0x2c71, 0x2c7d}
-  ,
-  {0x2c80, 0x2cea}
+  {0x2c60, 0x2cf1}
   ,
   {0x2cf9, 0x2d25}
   ,
   {0x2d30, 0x2d65}
   ,
-  {0x2d6f, 0x2d6f}
+  {0x2d6f, 0x2d70}
   ,
-  {0x2d80, 0x2d96}
+  {0x2d7f, 0x2d96}
   ,
   {0x2da0, 0x2da6}
   ,
@@ -5318,7 +5650,7 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x2dd8, 0x2dde}
   ,
-  {0x2de0, 0x2e30}
+  {0x2de0, 0x2e31}
   ,
   {0x2e80, 0x2e99}
   ,
@@ -5338,35 +5670,39 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x3131, 0x318e}
   ,
-  {0x3190, 0x31b7}
+  {0x3190, 0x31ba}
   ,
   {0x31c0, 0x31e3}
   ,
   {0x31f0, 0x321e}
   ,
-  {0x3220, 0x3243}
-  ,
-  {0x3250, 0x32fe}
+  {0x3220, 0x32fe}
   ,
   {0x3300, 0x4db5}
   ,
-  {0x4dc0, 0x9fc3}
+  {0x4dc0, 0x9fcb}
   ,
   {0xa000, 0xa48c}
   ,
   {0xa490, 0xa4c6}
   ,
-  {0xa500, 0xa62b}
-  ,
-  {0xa640, 0xa65f}
+  {0xa4d0, 0xa62b}
   ,
-  {0xa662, 0xa673}
+  {0xa640, 0xa673}
   ,
   {0xa67c, 0xa697}
   ,
-  {0xa700, 0xa78c}
+  {0xa6a0, 0xa6f7}
   ,
-  {0xa7fb, 0xa82b}
+  {0xa700, 0xa78e}
+  ,
+  {0xa790, 0xa791}
+  ,
+  {0xa7a0, 0xa7a9}
+  ,
+  {0xa7fa, 0xa82b}
+  ,
+  {0xa830, 0xa839}
   ,
   {0xa840, 0xa877}
   ,
@@ -5374,9 +5710,17 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0xa8ce, 0xa8d9}
   ,
+  {0xa8e0, 0xa8fb}
+  ,
   {0xa900, 0xa953}
   ,
-  {0xa95f, 0xa95f}
+  {0xa95f, 0xa97c}
+  ,
+  {0xa980, 0xa9cd}
+  ,
+  {0xa9cf, 0xa9d9}
+  ,
+  {0xa9de, 0xa9df}
   ,
   {0xaa00, 0xaa36}
   ,
@@ -5384,13 +5728,35 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0xaa50, 0xaa59}
   ,
-  {0xaa5c, 0xaa5f}
+  {0xaa5c, 0xaa7b}
+  ,
+  {0xaa80, 0xaac2}
+  ,
+  {0xaadb, 0xaadf}
+  ,
+  {0xab01, 0xab06}
+  ,
+  {0xab09, 0xab0e}
+  ,
+  {0xab11, 0xab16}
+  ,
+  {0xab20, 0xab26}
+  ,
+  {0xab28, 0xab2e}
+  ,
+  {0xabc0, 0xabed}
+  ,
+  {0xabf0, 0xabf9}
   ,
   {0xac00, 0xd7a3}
   ,
+  {0xd7b0, 0xd7c6}
+  ,
+  {0xd7cb, 0xd7fb}
+  ,
   {0xf900, 0xfa2d}
   ,
-  {0xfa30, 0xfa6a}
+  {0xfa30, 0xfa6d}
   ,
   {0xfa70, 0xfad9}
   ,
@@ -5408,7 +5774,7 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0xfb43, 0xfb44}
   ,
-  {0xfb46, 0xfbb1}
+  {0xfb46, 0xfbc1}
   ,
   {0xfbd3, 0xfd3f}
   ,
@@ -5502,9 +5868,11 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x1083c, 0x1083c}
   ,
-  {0x1083f, 0x1083f}
+  {0x1083f, 0x10855}
+  ,
+  {0x10857, 0x1085f}
   ,
-  {0x10900, 0x10919}
+  {0x10900, 0x1091b}
   ,
   {0x1091f, 0x10939}
   ,
@@ -5526,12 +5894,40 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x10a50, 0x10a58}
   ,
+  {0x10a60, 0x10a7f}
+  ,
+  {0x10b00, 0x10b35}
+  ,
+  {0x10b39, 0x10b55}
+  ,
+  {0x10b58, 0x10b72}
+  ,
+  {0x10b78, 0x10b7f}
+  ,
+  {0x10c00, 0x10c48}
+  ,
+  {0x10e60, 0x10e7e}
+  ,
+  {0x11000, 0x1104d}
+  ,
+  {0x11052, 0x1106f}
+  ,
+  {0x11080, 0x110bc}
+  ,
+  {0x110be, 0x110c1}
+  ,
   {0x12000, 0x1236e}
   ,
   {0x12400, 0x12462}
   ,
   {0x12470, 0x12473}
   ,
+  {0x13000, 0x1342e}
+  ,
+  {0x16800, 0x16a38}
+  ,
+  {0x1b000, 0x1b001}
+  ,
   {0x1d000, 0x1d0f5}
   ,
   {0x1d100, 0x1d126}
@@ -5592,15 +5988,99 @@ scm_t_char_range cs_printing_ranges[] = {
   ,
   {0x1f030, 0x1f093}
   ,
+  {0x1f0a0, 0x1f0ae}
+  ,
+  {0x1f0b1, 0x1f0be}
+  ,
+  {0x1f0c1, 0x1f0cf}
+  ,
+  {0x1f0d1, 0x1f0df}
+  ,
+  {0x1f100, 0x1f10a}
+  ,
+  {0x1f110, 0x1f12e}
+  ,
+  {0x1f130, 0x1f169}
+  ,
+  {0x1f170, 0x1f19a}
+  ,
+  {0x1f1e6, 0x1f202}
+  ,
+  {0x1f210, 0x1f23a}
+  ,
+  {0x1f240, 0x1f248}
+  ,
+  {0x1f250, 0x1f251}
+  ,
+  {0x1f300, 0x1f320}
+  ,
+  {0x1f330, 0x1f335}
+  ,
+  {0x1f337, 0x1f37c}
+  ,
+  {0x1f380, 0x1f393}
+  ,
+  {0x1f3a0, 0x1f3c4}
+  ,
+  {0x1f3c6, 0x1f3ca}
+  ,
+  {0x1f3e0, 0x1f3f0}
+  ,
+  {0x1f400, 0x1f43e}
+  ,
+  {0x1f440, 0x1f440}
+  ,
+  {0x1f442, 0x1f4f7}
+  ,
+  {0x1f4f9, 0x1f4fc}
+  ,
+  {0x1f500, 0x1f53d}
+  ,
+  {0x1f550, 0x1f567}
+  ,
+  {0x1f5fb, 0x1f5ff}
+  ,
+  {0x1f601, 0x1f610}
+  ,
+  {0x1f612, 0x1f614}
+  ,
+  {0x1f616, 0x1f616}
+  ,
+  {0x1f618, 0x1f618}
+  ,
+  {0x1f61a, 0x1f61a}
+  ,
+  {0x1f61c, 0x1f61e}
+  ,
+  {0x1f620, 0x1f625}
+  ,
+  {0x1f628, 0x1f62b}
+  ,
+  {0x1f62d, 0x1f62d}
+  ,
+  {0x1f630, 0x1f633}
+  ,
+  {0x1f635, 0x1f640}
+  ,
+  {0x1f645, 0x1f64f}
+  ,
+  {0x1f680, 0x1f6c5}
+  ,
+  {0x1f700, 0x1f773}
+  ,
   {0x20000, 0x2a6d6}
   ,
+  {0x2a700, 0x2b734}
+  ,
+  {0x2b740, 0x2b81d}
+  ,
   {0x2f800, 0x2fa1d}
   ,
   {0xe0100, 0xe01ef}
 };
 
 scm_t_char_set cs_printing = {
-  447,
+  504,
   cs_printing_ranges
 };
 
@@ -5678,6 +6158,10 @@ scm_t_char_range cs_punctuation_ranges[] = {
   ,
   {0x07f7, 0x07f9}
   ,
+  {0x0830, 0x083e}
+  ,
+  {0x085e, 0x085e}
+  ,
   {0x0964, 0x0965}
   ,
   {0x0970, 0x0970}
@@ -5696,12 +6180,16 @@ scm_t_char_range cs_punctuation_ranges[] = {
   ,
   {0x0fd0, 0x0fd4}
   ,
+  {0x0fd9, 0x0fda}
+  ,
   {0x104a, 0x104f}
   ,
   {0x10fb, 0x10fb}
   ,
   {0x1361, 0x1368}
   ,
+  {0x1400, 0x1400}
+  ,
   {0x166d, 0x166e}
   ,
   {0x169b, 0x169c}
@@ -5718,16 +6206,22 @@ scm_t_char_range cs_punctuation_ranges[] = {
   ,
   {0x1944, 0x1945}
   ,
-  {0x19de, 0x19df}
-  ,
   {0x1a1e, 0x1a1f}
   ,
+  {0x1aa0, 0x1aa6}
+  ,
+  {0x1aa8, 0x1aad}
+  ,
   {0x1b5a, 0x1b60}
   ,
+  {0x1bfc, 0x1bff}
+  ,
   {0x1c3b, 0x1c3f}
   ,
   {0x1c7e, 0x1c7f}
   ,
+  {0x1cd3, 0x1cd3}
+  ,
   {0x2010, 0x2027}
   ,
   {0x2030, 0x2043}
@@ -5758,9 +6252,11 @@ scm_t_char_range cs_punctuation_ranges[] = {
   ,
   {0x2cfe, 0x2cff}
   ,
+  {0x2d70, 0x2d70}
+  ,
   {0x2e00, 0x2e2e}
   ,
-  {0x2e30, 0x2e30}
+  {0x2e30, 0x2e31}
   ,
   {0x3001, 0x3003}
   ,
@@ -5776,22 +6272,36 @@ scm_t_char_range cs_punctuation_ranges[] = {
   ,
   {0x30fb, 0x30fb}
   ,
+  {0xa4fe, 0xa4ff}
+  ,
   {0xa60d, 0xa60f}
   ,
   {0xa673, 0xa673}
   ,
   {0xa67e, 0xa67e}
   ,
+  {0xa6f2, 0xa6f7}
+  ,
   {0xa874, 0xa877}
   ,
   {0xa8ce, 0xa8cf}
   ,
+  {0xa8f8, 0xa8fa}
+  ,
   {0xa92e, 0xa92f}
   ,
   {0xa95f, 0xa95f}
   ,
+  {0xa9c1, 0xa9cd}
+  ,
+  {0xa9de, 0xa9df}
+  ,
   {0xaa5c, 0xaa5f}
   ,
+  {0xaade, 0xaadf}
+  ,
+  {0xabeb, 0xabeb}
+  ,
   {0xfd3e, 0xfd3f}
   ,
   {0xfe10, 0xfe19}
@@ -5832,17 +6342,29 @@ scm_t_char_range cs_punctuation_ranges[] = {
   ,
   {0x103d0, 0x103d0}
   ,
+  {0x10857, 0x10857}
+  ,
   {0x1091f, 0x1091f}
   ,
   {0x1093f, 0x1093f}
   ,
   {0x10a50, 0x10a58}
   ,
+  {0x10a7f, 0x10a7f}
+  ,
+  {0x10b39, 0x10b3f}
+  ,
+  {0x11047, 0x1104d}
+  ,
+  {0x110bb, 0x110bc}
+  ,
+  {0x110be, 0x110c1}
+  ,
   {0x12470, 0x12473}
 };
 
 scm_t_char_set cs_punctuation = {
-  112,
+  133,
   cs_punctuation_ranges
 };
 
@@ -5901,6 +6423,8 @@ scm_t_char_range cs_symbol_ranges[] = {
   ,
   {0x060e, 0x060f}
   ,
+  {0x06de, 0x06de}
+  ,
   {0x06e9, 0x06e9}
   ,
   {0x06fd, 0x06fe}
@@ -5909,7 +6433,7 @@ scm_t_char_range cs_symbol_ranges[] = {
   ,
   {0x09f2, 0x09f3}
   ,
-  {0x09fa, 0x09fa}
+  {0x09fa, 0x09fb}
   ,
   {0x0af1, 0x0af1}
   ,
@@ -5919,8 +6443,6 @@ scm_t_char_range cs_symbol_ranges[] = {
   ,
   {0x0c7f, 0x0c7f}
   ,
-  {0x0cf1, 0x0cf2}
-  ,
   {0x0d79, 0x0d79}
   ,
   {0x0e3f, 0x0e3f}
@@ -5943,6 +6465,8 @@ scm_t_char_range cs_symbol_ranges[] = {
   ,
   {0x0fce, 0x0fcf}
   ,
+  {0x0fd5, 0x0fd8}
+  ,
   {0x109e, 0x109f}
   ,
   {0x1360, 0x1360}
@@ -5953,7 +6477,7 @@ scm_t_char_range cs_symbol_ranges[] = {
   ,
   {0x1940, 0x1940}
   ,
-  {0x19e0, 0x19ff}
+  {0x19de, 0x19ff}
   ,
   {0x1b61, 0x1b6a}
   ,
@@ -5979,7 +6503,7 @@ scm_t_char_range cs_symbol_ranges[] = {
   ,
   {0x208a, 0x208c}
   ,
-  {0x20a0, 0x20b5}
+  {0x20a0, 0x20b9}
   ,
   {0x2100, 0x2101}
   ,
@@ -6011,7 +6535,7 @@ scm_t_char_range cs_symbol_ranges[] = {
   ,
   {0x2190, 0x2328}
   ,
-  {0x232b, 0x23e7}
+  {0x232b, 0x23f3}
   ,
   {0x2400, 0x2426}
   ,
@@ -6019,43 +6543,17 @@ scm_t_char_range cs_symbol_ranges[] = {
   ,
   {0x249c, 0x24e9}
   ,
-  {0x2500, 0x269d}
-  ,
-  {0x26a0, 0x26bc}
-  ,
-  {0x26c0, 0x26c3}
-  ,
-  {0x2701, 0x2704}
-  ,
-  {0x2706, 0x2709}
+  {0x2500, 0x26ff}
   ,
-  {0x270c, 0x2727}
+  {0x2701, 0x2767}
   ,
-  {0x2729, 0x274b}
-  ,
-  {0x274d, 0x274d}
-  ,
-  {0x274f, 0x2752}
-  ,
-  {0x2756, 0x2756}
-  ,
-  {0x2758, 0x275e}
-  ,
-  {0x2761, 0x2767}
-  ,
-  {0x2794, 0x2794}
-  ,
-  {0x2798, 0x27af}
-  ,
-  {0x27b1, 0x27be}
-  ,
-  {0x27c0, 0x27c4}
+  {0x2794, 0x27c4}
   ,
   {0x27c7, 0x27ca}
   ,
   {0x27cc, 0x27cc}
   ,
-  {0x27d0, 0x27e5}
+  {0x27ce, 0x27e5}
   ,
   {0x27f0, 0x2982}
   ,
@@ -6065,7 +6563,7 @@ scm_t_char_range cs_symbol_ranges[] = {
   ,
   {0x29fe, 0x2b4c}
   ,
-  {0x2b50, 0x2b54}
+  {0x2b50, 0x2b59}
   ,
   {0x2ce5, 0x2cea}
   ,
@@ -6097,9 +6595,7 @@ scm_t_char_range cs_symbol_ranges[] = {
   ,
   {0x3200, 0x321e}
   ,
-  {0x322a, 0x3243}
-  ,
-  {0x3250, 0x3250}
+  {0x322a, 0x3250}
   ,
   {0x3260, 0x327f}
   ,
@@ -6121,8 +6617,14 @@ scm_t_char_range cs_symbol_ranges[] = {
   ,
   {0xa828, 0xa82b}
   ,
+  {0xa836, 0xa839}
+  ,
+  {0xaa77, 0xaa79}
+  ,
   {0xfb29, 0xfb29}
   ,
+  {0xfbb2, 0xfbc1}
+  ,
   {0xfdfc, 0xfdfd}
   ,
   {0xfe62, 0xfe62}
@@ -6204,10 +6706,88 @@ scm_t_char_range cs_symbol_ranges[] = {
   {0x1f000, 0x1f02b}
   ,
   {0x1f030, 0x1f093}
+  ,
+  {0x1f0a0, 0x1f0ae}
+  ,
+  {0x1f0b1, 0x1f0be}
+  ,
+  {0x1f0c1, 0x1f0cf}
+  ,
+  {0x1f0d1, 0x1f0df}
+  ,
+  {0x1f110, 0x1f12e}
+  ,
+  {0x1f130, 0x1f169}
+  ,
+  {0x1f170, 0x1f19a}
+  ,
+  {0x1f1e6, 0x1f202}
+  ,
+  {0x1f210, 0x1f23a}
+  ,
+  {0x1f240, 0x1f248}
+  ,
+  {0x1f250, 0x1f251}
+  ,
+  {0x1f300, 0x1f320}
+  ,
+  {0x1f330, 0x1f335}
+  ,
+  {0x1f337, 0x1f37c}
+  ,
+  {0x1f380, 0x1f393}
+  ,
+  {0x1f3a0, 0x1f3c4}
+  ,
+  {0x1f3c6, 0x1f3ca}
+  ,
+  {0x1f3e0, 0x1f3f0}
+  ,
+  {0x1f400, 0x1f43e}
+  ,
+  {0x1f440, 0x1f440}
+  ,
+  {0x1f442, 0x1f4f7}
+  ,
+  {0x1f4f9, 0x1f4fc}
+  ,
+  {0x1f500, 0x1f53d}
+  ,
+  {0x1f550, 0x1f567}
+  ,
+  {0x1f5fb, 0x1f5ff}
+  ,
+  {0x1f601, 0x1f610}
+  ,
+  {0x1f612, 0x1f614}
+  ,
+  {0x1f616, 0x1f616}
+  ,
+  {0x1f618, 0x1f618}
+  ,
+  {0x1f61a, 0x1f61a}
+  ,
+  {0x1f61c, 0x1f61e}
+  ,
+  {0x1f620, 0x1f625}
+  ,
+  {0x1f628, 0x1f62b}
+  ,
+  {0x1f62d, 0x1f62d}
+  ,
+  {0x1f630, 0x1f633}
+  ,
+  {0x1f635, 0x1f640}
+  ,
+  {0x1f645, 0x1f64f}
+  ,
+  {0x1f680, 0x1f6c5}
+  ,
+  {0x1f700, 0x1f773}
 };
 
 scm_t_char_set cs_symbol = {
-  179,
+  208,
   cs_symbol_ranges
 };
 
@@ -6241,7 +6821,7 @@ scm_t_char_range cs_ascii_ranges[] = {
 };
 
 scm_t_char_set cs_ascii = {
-  0,
+  1,
   cs_ascii_ranges
 };
 
@@ -6264,7 +6844,7 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x038e, 0x03a1}
   ,
-  {0x03a3, 0x0523}
+  {0x03a3, 0x0527}
   ,
   {0x0531, 0x0556}
   ,
@@ -6284,11 +6864,7 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x0606, 0x061b}
   ,
-  {0x061e, 0x061f}
-  ,
-  {0x0621, 0x065e}
-  ,
-  {0x0660, 0x070d}
+  {0x061e, 0x070d}
   ,
   {0x070f, 0x074a}
   ,
@@ -6296,15 +6872,17 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x07c0, 0x07fa}
   ,
-  {0x0901, 0x0939}
+  {0x0800, 0x082d}
+  ,
+  {0x0830, 0x083e}
   ,
-  {0x093c, 0x094d}
+  {0x0840, 0x085b}
   ,
-  {0x0950, 0x0954}
+  {0x085e, 0x085e}
   ,
-  {0x0958, 0x0972}
+  {0x0900, 0x0977}
   ,
-  {0x097b, 0x097f}
+  {0x0979, 0x097f}
   ,
   {0x0981, 0x0983}
   ,
@@ -6332,7 +6910,7 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x09df, 0x09e3}
   ,
-  {0x09e6, 0x09fa}
+  {0x09e6, 0x09fb}
   ,
   {0x0a01, 0x0a03}
   ,
@@ -6420,7 +6998,7 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x0b5f, 0x0b63}
   ,
-  {0x0b66, 0x0b71}
+  {0x0b66, 0x0b77}
   ,
   {0x0b82, 0x0b83}
   ,
@@ -6516,15 +7094,13 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x0d0e, 0x0d10}
   ,
-  {0x0d12, 0x0d28}
-  ,
-  {0x0d2a, 0x0d39}
+  {0x0d12, 0x0d3a}
   ,
   {0x0d3d, 0x0d44}
   ,
   {0x0d46, 0x0d48}
   ,
-  {0x0d4a, 0x0d4d}
+  {0x0d4a, 0x0d4e}
   ,
   {0x0d57, 0x0d57}
   ,
@@ -6600,29 +7176,19 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x0f49, 0x0f6c}
   ,
-  {0x0f71, 0x0f8b}
-  ,
-  {0x0f90, 0x0f97}
+  {0x0f71, 0x0f97}
   ,
   {0x0f99, 0x0fbc}
   ,
   {0x0fbe, 0x0fcc}
   ,
-  {0x0fce, 0x0fd4}
-  ,
-  {0x1000, 0x1099}
+  {0x0fce, 0x0fda}
   ,
-  {0x109e, 0x10c5}
+  {0x1000, 0x10c5}
   ,
   {0x10d0, 0x10fc}
   ,
-  {0x1100, 0x1159}
-  ,
-  {0x115f, 0x11a2}
-  ,
-  {0x11a8, 0x11f9}
-  ,
-  {0x1200, 0x1248}
+  {0x1100, 0x1248}
   ,
   {0x124a, 0x124d}
   ,
@@ -6654,15 +7220,13 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x1318, 0x135a}
   ,
-  {0x135f, 0x137c}
+  {0x135d, 0x137c}
   ,
   {0x1380, 0x1399}
   ,
   {0x13a0, 0x13f4}
   ,
-  {0x1401, 0x1676}
-  ,
-  {0x1680, 0x169c}
+  {0x1400, 0x169c}
   ,
   {0x16a0, 0x16f0}
   ,
@@ -6694,6 +7258,8 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x1880, 0x18aa}
   ,
+  {0x18b0, 0x18f5}
+  ,
   {0x1900, 0x191c}
   ,
   {0x1920, 0x192b}
@@ -6706,15 +7272,23 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x1970, 0x1974}
   ,
-  {0x1980, 0x19a9}
+  {0x1980, 0x19ab}
   ,
   {0x19b0, 0x19c9}
   ,
-  {0x19d0, 0x19d9}
+  {0x19d0, 0x19da}
   ,
   {0x19de, 0x1a1b}
   ,
-  {0x1a1e, 0x1a1f}
+  {0x1a1e, 0x1a5e}
+  ,
+  {0x1a60, 0x1a7c}
+  ,
+  {0x1a7f, 0x1a89}
+  ,
+  {0x1a90, 0x1a99}
+  ,
+  {0x1aa0, 0x1aad}
   ,
   {0x1b00, 0x1b4b}
   ,
@@ -6724,15 +7298,19 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x1bae, 0x1bb9}
   ,
-  {0x1c00, 0x1c37}
+  {0x1bc0, 0x1bf3}
+  ,
+  {0x1bfc, 0x1c37}
   ,
   {0x1c3b, 0x1c49}
   ,
   {0x1c4d, 0x1c7f}
   ,
+  {0x1cd0, 0x1cf2}
+  ,
   {0x1d00, 0x1de6}
   ,
-  {0x1dfe, 0x1f15}
+  {0x1dfc, 0x1f15}
   ,
   {0x1f18, 0x1f1d}
   ,
@@ -6770,75 +7348,43 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x2074, 0x208e}
   ,
-  {0x2090, 0x2094}
+  {0x2090, 0x209c}
   ,
-  {0x20a0, 0x20b5}
+  {0x20a0, 0x20b9}
   ,
   {0x20d0, 0x20f0}
   ,
-  {0x2100, 0x214f}
+  {0x2100, 0x2189}
   ,
-  {0x2153, 0x2188}
-  ,
-  {0x2190, 0x23e7}
+  {0x2190, 0x23f3}
   ,
   {0x2400, 0x2426}
   ,
   {0x2440, 0x244a}
   ,
-  {0x2460, 0x269d}
-  ,
-  {0x26a0, 0x26bc}
-  ,
-  {0x26c0, 0x26c3}
-  ,
-  {0x2701, 0x2704}
-  ,
-  {0x2706, 0x2709}
-  ,
-  {0x270c, 0x2727}
-  ,
-  {0x2729, 0x274b}
-  ,
-  {0x274d, 0x274d}
-  ,
-  {0x274f, 0x2752}
-  ,
-  {0x2756, 0x2756}
-  ,
-  {0x2758, 0x275e}
-  ,
-  {0x2761, 0x2794}
-  ,
-  {0x2798, 0x27af}
+  {0x2460, 0x26ff}
   ,
-  {0x27b1, 0x27be}
-  ,
-  {0x27c0, 0x27ca}
+  {0x2701, 0x27ca}
   ,
   {0x27cc, 0x27cc}
   ,
-  {0x27d0, 0x2b4c}
+  {0x27ce, 0x2b4c}
   ,
-  {0x2b50, 0x2b54}
+  {0x2b50, 0x2b59}
   ,
   {0x2c00, 0x2c2e}
   ,
   {0x2c30, 0x2c5e}
   ,
-  {0x2c60, 0x2c6f}
-  ,
-  {0x2c71, 0x2c7d}
-  ,
-  {0x2c80, 0x2cea}
+  {0x2c60, 0x2cf1}
   ,
   {0x2cf9, 0x2d25}
   ,
   {0x2d30, 0x2d65}
   ,
-  {0x2d6f, 0x2d6f}
+  {0x2d6f, 0x2d70}
   ,
-  {0x2d80, 0x2d96}
+  {0x2d7f, 0x2d96}
   ,
   {0x2da0, 0x2da6}
   ,
@@ -6856,7 +7402,7 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x2dd8, 0x2dde}
   ,
-  {0x2de0, 0x2e30}
+  {0x2de0, 0x2e31}
   ,
   {0x2e80, 0x2e99}
   ,
@@ -6876,35 +7422,39 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x3131, 0x318e}
   ,
-  {0x3190, 0x31b7}
+  {0x3190, 0x31ba}
   ,
   {0x31c0, 0x31e3}
   ,
   {0x31f0, 0x321e}
   ,
-  {0x3220, 0x3243}
-  ,
-  {0x3250, 0x32fe}
+  {0x3220, 0x32fe}
   ,
   {0x3300, 0x4db5}
   ,
-  {0x4dc0, 0x9fc3}
+  {0x4dc0, 0x9fcb}
   ,
   {0xa000, 0xa48c}
   ,
   {0xa490, 0xa4c6}
   ,
-  {0xa500, 0xa62b}
+  {0xa4d0, 0xa62b}
   ,
-  {0xa640, 0xa65f}
-  ,
-  {0xa662, 0xa673}
+  {0xa640, 0xa673}
   ,
   {0xa67c, 0xa697}
   ,
-  {0xa700, 0xa78c}
+  {0xa6a0, 0xa6f7}
+  ,
+  {0xa700, 0xa78e}
+  ,
+  {0xa790, 0xa791}
   ,
-  {0xa7fb, 0xa82b}
+  {0xa7a0, 0xa7a9}
+  ,
+  {0xa7fa, 0xa82b}
+  ,
+  {0xa830, 0xa839}
   ,
   {0xa840, 0xa877}
   ,
@@ -6912,9 +7462,17 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0xa8ce, 0xa8d9}
   ,
+  {0xa8e0, 0xa8fb}
+  ,
   {0xa900, 0xa953}
   ,
-  {0xa95f, 0xa95f}
+  {0xa95f, 0xa97c}
+  ,
+  {0xa980, 0xa9cd}
+  ,
+  {0xa9cf, 0xa9d9}
+  ,
+  {0xa9de, 0xa9df}
   ,
   {0xaa00, 0xaa36}
   ,
@@ -6922,13 +7480,35 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0xaa50, 0xaa59}
   ,
-  {0xaa5c, 0xaa5f}
+  {0xaa5c, 0xaa7b}
+  ,
+  {0xaa80, 0xaac2}
+  ,
+  {0xaadb, 0xaadf}
+  ,
+  {0xab01, 0xab06}
+  ,
+  {0xab09, 0xab0e}
+  ,
+  {0xab11, 0xab16}
+  ,
+  {0xab20, 0xab26}
+  ,
+  {0xab28, 0xab2e}
+  ,
+  {0xabc0, 0xabed}
+  ,
+  {0xabf0, 0xabf9}
   ,
   {0xac00, 0xd7a3}
   ,
+  {0xd7b0, 0xd7c6}
+  ,
+  {0xd7cb, 0xd7fb}
+  ,
   {0xe000, 0xfa2d}
   ,
-  {0xfa30, 0xfa6a}
+  {0xfa30, 0xfa6d}
   ,
   {0xfa70, 0xfad9}
   ,
@@ -6946,7 +7526,7 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0xfb43, 0xfb44}
   ,
-  {0xfb46, 0xfbb1}
+  {0xfb46, 0xfbc1}
   ,
   {0xfbd3, 0xfd3f}
   ,
@@ -7042,9 +7622,11 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x1083c, 0x1083c}
   ,
-  {0x1083f, 0x1083f}
+  {0x1083f, 0x10855}
+  ,
+  {0x10857, 0x1085f}
   ,
-  {0x10900, 0x10919}
+  {0x10900, 0x1091b}
   ,
   {0x1091f, 0x10939}
   ,
@@ -7066,12 +7648,38 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x10a50, 0x10a58}
   ,
+  {0x10a60, 0x10a7f}
+  ,
+  {0x10b00, 0x10b35}
+  ,
+  {0x10b39, 0x10b55}
+  ,
+  {0x10b58, 0x10b72}
+  ,
+  {0x10b78, 0x10b7f}
+  ,
+  {0x10c00, 0x10c48}
+  ,
+  {0x10e60, 0x10e7e}
+  ,
+  {0x11000, 0x1104d}
+  ,
+  {0x11052, 0x1106f}
+  ,
+  {0x11080, 0x110c1}
+  ,
   {0x12000, 0x1236e}
   ,
   {0x12400, 0x12462}
   ,
   {0x12470, 0x12473}
   ,
+  {0x13000, 0x1342e}
+  ,
+  {0x16800, 0x16a38}
+  ,
+  {0x1b000, 0x1b001}
+  ,
   {0x1d000, 0x1d0f5}
   ,
   {0x1d100, 0x1d126}
@@ -7130,8 +7738,92 @@ scm_t_char_range cs_designated_ranges[] = {
   ,
   {0x1f030, 0x1f093}
   ,
+  {0x1f0a0, 0x1f0ae}
+  ,
+  {0x1f0b1, 0x1f0be}
+  ,
+  {0x1f0c1, 0x1f0cf}
+  ,
+  {0x1f0d1, 0x1f0df}
+  ,
+  {0x1f100, 0x1f10a}
+  ,
+  {0x1f110, 0x1f12e}
+  ,
+  {0x1f130, 0x1f169}
+  ,
+  {0x1f170, 0x1f19a}
+  ,
+  {0x1f1e6, 0x1f202}
+  ,
+  {0x1f210, 0x1f23a}
+  ,
+  {0x1f240, 0x1f248}
+  ,
+  {0x1f250, 0x1f251}
+  ,
+  {0x1f300, 0x1f320}
+  ,
+  {0x1f330, 0x1f335}
+  ,
+  {0x1f337, 0x1f37c}
+  ,
+  {0x1f380, 0x1f393}
+  ,
+  {0x1f3a0, 0x1f3c4}
+  ,
+  {0x1f3c6, 0x1f3ca}
+  ,
+  {0x1f3e0, 0x1f3f0}
+  ,
+  {0x1f400, 0x1f43e}
+  ,
+  {0x1f440, 0x1f440}
+  ,
+  {0x1f442, 0x1f4f7}
+  ,
+  {0x1f4f9, 0x1f4fc}
+  ,
+  {0x1f500, 0x1f53d}
+  ,
+  {0x1f550, 0x1f567}
+  ,
+  {0x1f5fb, 0x1f5ff}
+  ,
+  {0x1f601, 0x1f610}
+  ,
+  {0x1f612, 0x1f614}
+  ,
+  {0x1f616, 0x1f616}
+  ,
+  {0x1f618, 0x1f618}
+  ,
+  {0x1f61a, 0x1f61a}
+  ,
+  {0x1f61c, 0x1f61e}
+  ,
+  {0x1f620, 0x1f625}
+  ,
+  {0x1f628, 0x1f62b}
+  ,
+  {0x1f62d, 0x1f62d}
+  ,
+  {0x1f630, 0x1f633}
+  ,
+  {0x1f635, 0x1f640}
+  ,
+  {0x1f645, 0x1f64f}
+  ,
+  {0x1f680, 0x1f6c5}
+  ,
+  {0x1f700, 0x1f773}
+  ,
   {0x20000, 0x2a6d6}
   ,
+  {0x2a700, 0x2b734}
+  ,
+  {0x2b740, 0x2b81d}
+  ,
   {0x2f800, 0x2fa1d}
   ,
   {0xe0001, 0xe0001}
@@ -7146,6 +7838,6 @@ scm_t_char_range cs_designated_ranges[] = {
 };
 
 scm_t_char_set cs_designated = {
-  445,
+  501,
   cs_designated_ranges
 };