1 static const CodepointRange special_whitespace[] = {
2     {0x00a0, 0x00a0},
3     {0x00ad, 0x00ad},
4     {0x2000, 0x200a},
5     {0x2028, 0x2029},
6     {0x202f, 0x202f},
7     {0x205f, 0x205f},
8 };
9 
10 static const CodepointRange default_ignorable[] = {
11     {0x034f, 0x034f},
12     {0x061c, 0x061c},
13     {0x115f, 0x1160},
14     {0x17b4, 0x17b5},
15     {0x180b, 0x180e},
16     {0x200b, 0x200f},
17     {0x202a, 0x202e},
18     {0x2060, 0x206f},
19     {0x3164, 0x3164},
20     {0xfe00, 0xfe0f},
21     {0xfeff, 0xfeff},
22     {0xffa0, 0xffa0},
23     {0xfff0, 0xfff8},
24     {0x1bca0, 0x1bca3},
25     {0x1d173, 0x1d17a},
26     {0xe0000, 0xe0fff},
27 };
28 
29 static const CodepointRange nonspacing_mark[] = {
30     {0x0300, 0x036f},
31     {0x0483, 0x0489},
32     {0x0591, 0x05bd},
33     {0x05bf, 0x05bf},
34     {0x05c1, 0x05c2},
35     {0x05c4, 0x05c5},
36     {0x05c7, 0x05c7},
37     {0x0610, 0x061a},
38     {0x064b, 0x065f},
39     {0x0670, 0x0670},
40     {0x06d6, 0x06dc},
41     {0x06df, 0x06e4},
42     {0x06e7, 0x06e8},
43     {0x06ea, 0x06ed},
44     {0x0711, 0x0711},
45     {0x0730, 0x074a},
46     {0x07a6, 0x07b0},
47     {0x07eb, 0x07f3},
48     {0x07fd, 0x07fd},
49     {0x0816, 0x0819},
50     {0x081b, 0x0823},
51     {0x0825, 0x0827},
52     {0x0829, 0x082d},
53     {0x0859, 0x085b},
54     {0x08d3, 0x08e1},
55     {0x08e3, 0x0902},
56     {0x093a, 0x093a},
57     {0x093c, 0x093c},
58     {0x0941, 0x0948},
59     {0x094d, 0x094d},
60     {0x0951, 0x0957},
61     {0x0962, 0x0963},
62     {0x0981, 0x0981},
63     {0x09bc, 0x09bc},
64     {0x09c1, 0x09c4},
65     {0x09cd, 0x09cd},
66     {0x09e2, 0x09e3},
67     {0x09fe, 0x09fe},
68     {0x0a01, 0x0a02},
69     {0x0a3c, 0x0a3c},
70     {0x0a41, 0x0a42},
71     {0x0a47, 0x0a48},
72     {0x0a4b, 0x0a4d},
73     {0x0a51, 0x0a51},
74     {0x0a70, 0x0a71},
75     {0x0a75, 0x0a75},
76     {0x0a81, 0x0a82},
77     {0x0abc, 0x0abc},
78     {0x0ac1, 0x0ac5},
79     {0x0ac7, 0x0ac8},
80     {0x0acd, 0x0acd},
81     {0x0ae2, 0x0ae3},
82     {0x0afa, 0x0aff},
83     {0x0b01, 0x0b01},
84     {0x0b3c, 0x0b3c},
85     {0x0b3f, 0x0b3f},
86     {0x0b41, 0x0b44},
87     {0x0b4d, 0x0b4d},
88     {0x0b56, 0x0b56},
89     {0x0b62, 0x0b63},
90     {0x0b82, 0x0b82},
91     {0x0bc0, 0x0bc0},
92     {0x0bcd, 0x0bcd},
93     {0x0c00, 0x0c00},
94     {0x0c04, 0x0c04},
95     {0x0c3e, 0x0c40},
96     {0x0c46, 0x0c48},
97     {0x0c4a, 0x0c4d},
98     {0x0c55, 0x0c56},
99     {0x0c62, 0x0c63},
100     {0x0c81, 0x0c81},
101     {0x0cbc, 0x0cbc},
102     {0x0cbf, 0x0cbf},
103     {0x0cc6, 0x0cc6},
104     {0x0ccc, 0x0ccd},
105     {0x0ce2, 0x0ce3},
106     {0x0d00, 0x0d01},
107     {0x0d3b, 0x0d3c},
108     {0x0d41, 0x0d44},
109     {0x0d4d, 0x0d4d},
110     {0x0d62, 0x0d63},
111     {0x0dca, 0x0dca},
112     {0x0dd2, 0x0dd4},
113     {0x0dd6, 0x0dd6},
114     {0x0e31, 0x0e31},
115     {0x0e34, 0x0e3a},
116     {0x0e47, 0x0e4e},
117     {0x0eb1, 0x0eb1},
118     {0x0eb4, 0x0ebc},
119     {0x0ec8, 0x0ecd},
120     {0x0f18, 0x0f19},
121     {0x0f35, 0x0f35},
122     {0x0f37, 0x0f37},
123     {0x0f39, 0x0f39},
124     {0x0f71, 0x0f7e},
125     {0x0f80, 0x0f84},
126     {0x0f86, 0x0f87},
127     {0x0f8d, 0x0f97},
128     {0x0f99, 0x0fbc},
129     {0x0fc6, 0x0fc6},
130     {0x102d, 0x1030},
131     {0x1032, 0x1037},
132     {0x1039, 0x103a},
133     {0x103d, 0x103e},
134     {0x1058, 0x1059},
135     {0x105e, 0x1060},
136     {0x1071, 0x1074},
137     {0x1082, 0x1082},
138     {0x1085, 0x1086},
139     {0x108d, 0x108d},
140     {0x109d, 0x109d},
141     {0x135d, 0x135f},
142     {0x1712, 0x1714},
143     {0x1732, 0x1734},
144     {0x1752, 0x1753},
145     {0x1772, 0x1773},
146     {0x17b4, 0x17b5},
147     {0x17b7, 0x17bd},
148     {0x17c6, 0x17c6},
149     {0x17c9, 0x17d3},
150     {0x17dd, 0x17dd},
151     {0x180b, 0x180d},
152     {0x1885, 0x1886},
153     {0x18a9, 0x18a9},
154     {0x1920, 0x1922},
155     {0x1927, 0x1928},
156     {0x1932, 0x1932},
157     {0x1939, 0x193b},
158     {0x1a17, 0x1a18},
159     {0x1a1b, 0x1a1b},
160     {0x1a56, 0x1a56},
161     {0x1a58, 0x1a5e},
162     {0x1a60, 0x1a60},
163     {0x1a62, 0x1a62},
164     {0x1a65, 0x1a6c},
165     {0x1a73, 0x1a7c},
166     {0x1a7f, 0x1a7f},
167     {0x1ab0, 0x1abe},
168     {0x1b00, 0x1b03},
169     {0x1b34, 0x1b34},
170     {0x1b36, 0x1b3a},
171     {0x1b3c, 0x1b3c},
172     {0x1b42, 0x1b42},
173     {0x1b6b, 0x1b73},
174     {0x1b80, 0x1b81},
175     {0x1ba2, 0x1ba5},
176     {0x1ba8, 0x1ba9},
177     {0x1bab, 0x1bad},
178     {0x1be6, 0x1be6},
179     {0x1be8, 0x1be9},
180     {0x1bed, 0x1bed},
181     {0x1bef, 0x1bf1},
182     {0x1c2c, 0x1c33},
183     {0x1c36, 0x1c37},
184     {0x1cd0, 0x1cd2},
185     {0x1cd4, 0x1ce0},
186     {0x1ce2, 0x1ce8},
187     {0x1ced, 0x1ced},
188     {0x1cf4, 0x1cf4},
189     {0x1cf8, 0x1cf9},
190     {0x1dc0, 0x1df9},
191     {0x1dfb, 0x1dff},
192     {0x20d0, 0x20f0},
193     {0x2cef, 0x2cf1},
194     {0x2d7f, 0x2d7f},
195     {0x2de0, 0x2dff},
196     {0x302a, 0x302d},
197     {0x3099, 0x309a},
198     {0xa66f, 0xa672},
199     {0xa674, 0xa67d},
200     {0xa69e, 0xa69f},
201     {0xa6f0, 0xa6f1},
202     {0xa802, 0xa802},
203     {0xa806, 0xa806},
204     {0xa80b, 0xa80b},
205     {0xa825, 0xa826},
206     {0xa8c4, 0xa8c5},
207     {0xa8e0, 0xa8f1},
208     {0xa8ff, 0xa8ff},
209     {0xa926, 0xa92d},
210     {0xa947, 0xa951},
211     {0xa980, 0xa982},
212     {0xa9b3, 0xa9b3},
213     {0xa9b6, 0xa9b9},
214     {0xa9bc, 0xa9bd},
215     {0xa9e5, 0xa9e5},
216     {0xaa29, 0xaa2e},
217     {0xaa31, 0xaa32},
218     {0xaa35, 0xaa36},
219     {0xaa43, 0xaa43},
220     {0xaa4c, 0xaa4c},
221     {0xaa7c, 0xaa7c},
222     {0xaab0, 0xaab0},
223     {0xaab2, 0xaab4},
224     {0xaab7, 0xaab8},
225     {0xaabe, 0xaabf},
226     {0xaac1, 0xaac1},
227     {0xaaec, 0xaaed},
228     {0xaaf6, 0xaaf6},
229     {0xabe5, 0xabe5},
230     {0xabe8, 0xabe8},
231     {0xabed, 0xabed},
232     {0xfb1e, 0xfb1e},
233     {0xfe00, 0xfe0f},
234     {0xfe20, 0xfe2f},
235     {0x101fd, 0x101fd},
236     {0x102e0, 0x102e0},
237     {0x10376, 0x1037a},
238     {0x10a01, 0x10a03},
239     {0x10a05, 0x10a06},
240     {0x10a0c, 0x10a0f},
241     {0x10a38, 0x10a3a},
242     {0x10a3f, 0x10a3f},
243     {0x10ae5, 0x10ae6},
244     {0x10d24, 0x10d27},
245     {0x10f46, 0x10f50},
246     {0x11001, 0x11001},
247     {0x11038, 0x11046},
248     {0x1107f, 0x11081},
249     {0x110b3, 0x110b6},
250     {0x110b9, 0x110ba},
251     {0x11100, 0x11102},
252     {0x11127, 0x1112b},
253     {0x1112d, 0x11134},
254     {0x11173, 0x11173},
255     {0x11180, 0x11181},
256     {0x111b6, 0x111be},
257     {0x111c9, 0x111cc},
258     {0x1122f, 0x11231},
259     {0x11234, 0x11234},
260     {0x11236, 0x11237},
261     {0x1123e, 0x1123e},
262     {0x112df, 0x112df},
263     {0x112e3, 0x112ea},
264     {0x11300, 0x11301},
265     {0x1133b, 0x1133c},
266     {0x11340, 0x11340},
267     {0x11366, 0x1136c},
268     {0x11370, 0x11374},
269     {0x11438, 0x1143f},
270     {0x11442, 0x11444},
271     {0x11446, 0x11446},
272     {0x1145e, 0x1145e},
273     {0x114b3, 0x114b8},
274     {0x114ba, 0x114ba},
275     {0x114bf, 0x114c0},
276     {0x114c2, 0x114c3},
277     {0x115b2, 0x115b5},
278     {0x115bc, 0x115bd},
279     {0x115bf, 0x115c0},
280     {0x115dc, 0x115dd},
281     {0x11633, 0x1163a},
282     {0x1163d, 0x1163d},
283     {0x1163f, 0x11640},
284     {0x116ab, 0x116ab},
285     {0x116ad, 0x116ad},
286     {0x116b0, 0x116b5},
287     {0x116b7, 0x116b7},
288     {0x1171d, 0x1171f},
289     {0x11722, 0x11725},
290     {0x11727, 0x1172b},
291     {0x1182f, 0x11837},
292     {0x11839, 0x1183a},
293     {0x119d4, 0x119d7},
294     {0x119da, 0x119db},
295     {0x119e0, 0x119e0},
296     {0x11a01, 0x11a0a},
297     {0x11a33, 0x11a38},
298     {0x11a3b, 0x11a3e},
299     {0x11a47, 0x11a47},
300     {0x11a51, 0x11a56},
301     {0x11a59, 0x11a5b},
302     {0x11a8a, 0x11a96},
303     {0x11a98, 0x11a99},
304     {0x11c30, 0x11c36},
305     {0x11c38, 0x11c3d},
306     {0x11c3f, 0x11c3f},
307     {0x11c92, 0x11ca7},
308     {0x11caa, 0x11cb0},
309     {0x11cb2, 0x11cb3},
310     {0x11cb5, 0x11cb6},
311     {0x11d31, 0x11d36},
312     {0x11d3a, 0x11d3a},
313     {0x11d3c, 0x11d3d},
314     {0x11d3f, 0x11d45},
315     {0x11d47, 0x11d47},
316     {0x11d90, 0x11d91},
317     {0x11d95, 0x11d95},
318     {0x11d97, 0x11d97},
319     {0x11ef3, 0x11ef4},
320     {0x16af0, 0x16af4},
321     {0x16b30, 0x16b36},
322     {0x16f4f, 0x16f4f},
323     {0x16f8f, 0x16f92},
324     {0x1bc9d, 0x1bc9e},
325     {0x1d167, 0x1d169},
326     {0x1d17b, 0x1d182},
327     {0x1d185, 0x1d18b},
328     {0x1d1aa, 0x1d1ad},
329     {0x1d242, 0x1d244},
330     {0x1da00, 0x1da36},
331     {0x1da3b, 0x1da6c},
332     {0x1da75, 0x1da75},
333     {0x1da84, 0x1da84},
334     {0x1da9b, 0x1da9f},
335     {0x1daa1, 0x1daaf},
336     {0x1e000, 0x1e006},
337     {0x1e008, 0x1e018},
338     {0x1e01b, 0x1e021},
339     {0x1e023, 0x1e024},
340     {0x1e026, 0x1e02a},
341     {0x1e130, 0x1e136},
342     {0x1e2ec, 0x1e2ef},
343     {0x1e8d0, 0x1e8d6},
344     {0x1e944, 0x1e94a},
345     {0xe0100, 0xe01ef},
346 };
347 
348 static const CodepointRange double_width[] = {
349     {0x1100, 0x115f},
350     {0x231a, 0x231b},
351     {0x2329, 0x232a},
352     {0x23e9, 0x23ec},
353     {0x23f0, 0x23f0},
354     {0x23f3, 0x23f3},
355     {0x25fd, 0x25fe},
356     {0x2614, 0x2615},
357     {0x2648, 0x2653},
358     {0x267f, 0x267f},
359     {0x2693, 0x2693},
360     {0x26a1, 0x26a1},
361     {0x26aa, 0x26ab},
362     {0x26bd, 0x26be},
363     {0x26c4, 0x26c5},
364     {0x26ce, 0x26ce},
365     {0x26d4, 0x26d4},
366     {0x26ea, 0x26ea},
367     {0x26f2, 0x26f3},
368     {0x26f5, 0x26f5},
369     {0x26fa, 0x26fa},
370     {0x26fd, 0x26fd},
371     {0x2705, 0x2705},
372     {0x270a, 0x270b},
373     {0x2728, 0x2728},
374     {0x274c, 0x274c},
375     {0x274e, 0x274e},
376     {0x2753, 0x2755},
377     {0x2757, 0x2757},
378     {0x2795, 0x2797},
379     {0x27b0, 0x27b0},
380     {0x27bf, 0x27bf},
381     {0x2b1b, 0x2b1c},
382     {0x2b50, 0x2b50},
383     {0x2b55, 0x2b55},
384     {0x2e80, 0x2e99},
385     {0x2e9b, 0x2ef3},
386     {0x2f00, 0x2fd5},
387     {0x2ff0, 0x2ffb},
388     {0x3000, 0x303e},
389     {0x3041, 0x3096},
390     {0x3099, 0x30ff},
391     {0x3105, 0x312f},
392     {0x3131, 0x318e},
393     {0x3190, 0x31ba},
394     {0x31c0, 0x31e3},
395     {0x31f0, 0x321e},
396     {0x3220, 0x3247},
397     {0x3250, 0x4dbf},
398     {0x4e00, 0xa48c},
399     {0xa490, 0xa4c6},
400     {0xa960, 0xa97c},
401     {0xac00, 0xd7a3},
402     {0xf900, 0xfaff},
403     {0xfe10, 0xfe19},
404     {0xfe30, 0xfe52},
405     {0xfe54, 0xfe66},
406     {0xfe68, 0xfe6b},
407     {0xff01, 0xff60},
408     {0xffe0, 0xffe6},
409     {0x16fe0, 0x16fe3},
410     {0x17000, 0x187f7},
411     {0x18800, 0x18af2},
412     {0x1b000, 0x1b11e},
413     {0x1b150, 0x1b152},
414     {0x1b164, 0x1b167},
415     {0x1b170, 0x1b2fb},
416     {0x1f004, 0x1f004},
417     {0x1f0cf, 0x1f0cf},
418     {0x1f18e, 0x1f18e},
419     {0x1f191, 0x1f19a},
420     {0x1f200, 0x1f202},
421     {0x1f210, 0x1f23b},
422     {0x1f240, 0x1f248},
423     {0x1f250, 0x1f251},
424     {0x1f260, 0x1f265},
425     {0x1f300, 0x1f320},
426     {0x1f32d, 0x1f335},
427     {0x1f337, 0x1f37c},
428     {0x1f37e, 0x1f393},
429     {0x1f3a0, 0x1f3ca},
430     {0x1f3cf, 0x1f3d3},
431     {0x1f3e0, 0x1f3f0},
432     {0x1f3f4, 0x1f3f4},
433     {0x1f3f8, 0x1f43e},
434     {0x1f440, 0x1f440},
435     {0x1f442, 0x1f4fc},
436     {0x1f4ff, 0x1f53d},
437     {0x1f54b, 0x1f54e},
438     {0x1f550, 0x1f567},
439     {0x1f57a, 0x1f57a},
440     {0x1f595, 0x1f596},
441     {0x1f5a4, 0x1f5a4},
442     {0x1f5fb, 0x1f64f},
443     {0x1f680, 0x1f6c5},
444     {0x1f6cc, 0x1f6cc},
445     {0x1f6d0, 0x1f6d2},
446     {0x1f6d5, 0x1f6d5},
447     {0x1f6eb, 0x1f6ec},
448     {0x1f6f4, 0x1f6fa},
449     {0x1f7e0, 0x1f7eb},
450     {0x1f90d, 0x1f971},
451     {0x1f973, 0x1f976},
452     {0x1f97a, 0x1f9a2},
453     {0x1f9a5, 0x1f9aa},
454     {0x1f9ae, 0x1f9ca},
455     {0x1f9cd, 0x1f9ff},
456     {0x1fa70, 0x1fa73},
457     {0x1fa78, 0x1fa7a},
458     {0x1fa80, 0x1fa82},
459     {0x1fa90, 0x1fa95},
460     {0x20000, 0x2fffd},
461     {0x30000, 0x3fffd},
462 };
463 
464 static const CodepointRange unprintable[] = {
465     {0x0080, 0x009f},
466     {0x0378, 0x0379},
467     {0x0380, 0x0383},
468     {0x038b, 0x038b},
469     {0x038d, 0x038d},
470     {0x03a2, 0x03a2},
471     {0x0530, 0x0530},
472     {0x0557, 0x0558},
473     {0x058b, 0x058c},
474     {0x0590, 0x0590},
475     {0x05c8, 0x05cf},
476     {0x05eb, 0x05ee},
477     {0x05f5, 0x05ff},
478     {0x061d, 0x061d},
479     {0x070e, 0x070e},
480     {0x074b, 0x074c},
481     {0x07b2, 0x07bf},
482     {0x07fb, 0x07fc},
483     {0x082e, 0x082f},
484     {0x083f, 0x083f},
485     {0x085c, 0x085d},
486     {0x085f, 0x085f},
487     {0x086b, 0x089f},
488     {0x08b5, 0x08b5},
489     {0x08be, 0x08d2},
490     {0x0984, 0x0984},
491     {0x098d, 0x098e},
492     {0x0991, 0x0992},
493     {0x09a9, 0x09a9},
494     {0x09b1, 0x09b1},
495     {0x09b3, 0x09b5},
496     {0x09ba, 0x09bb},
497     {0x09c5, 0x09c6},
498     {0x09c9, 0x09ca},
499     {0x09cf, 0x09d6},
500     {0x09d8, 0x09db},
501     {0x09de, 0x09de},
502     {0x09e4, 0x09e5},
503     {0x09ff, 0x0a00},
504     {0x0a04, 0x0a04},
505     {0x0a0b, 0x0a0e},
506     {0x0a11, 0x0a12},
507     {0x0a29, 0x0a29},
508     {0x0a31, 0x0a31},
509     {0x0a34, 0x0a34},
510     {0x0a37, 0x0a37},
511     {0x0a3a, 0x0a3b},
512     {0x0a3d, 0x0a3d},
513     {0x0a43, 0x0a46},
514     {0x0a49, 0x0a4a},
515     {0x0a4e, 0x0a50},
516     {0x0a52, 0x0a58},
517     {0x0a5d, 0x0a5d},
518     {0x0a5f, 0x0a65},
519     {0x0a77, 0x0a80},
520     {0x0a84, 0x0a84},
521     {0x0a8e, 0x0a8e},
522     {0x0a92, 0x0a92},
523     {0x0aa9, 0x0aa9},
524     {0x0ab1, 0x0ab1},
525     {0x0ab4, 0x0ab4},
526     {0x0aba, 0x0abb},
527     {0x0ac6, 0x0ac6},
528     {0x0aca, 0x0aca},
529     {0x0ace, 0x0acf},
530     {0x0ad1, 0x0adf},
531     {0x0ae4, 0x0ae5},
532     {0x0af2, 0x0af8},
533     {0x0b00, 0x0b00},
534     {0x0b04, 0x0b04},
535     {0x0b0d, 0x0b0e},
536     {0x0b11, 0x0b12},
537     {0x0b29, 0x0b29},
538     {0x0b31, 0x0b31},
539     {0x0b34, 0x0b34},
540     {0x0b3a, 0x0b3b},
541     {0x0b45, 0x0b46},
542     {0x0b49, 0x0b4a},
543     {0x0b4e, 0x0b55},
544     {0x0b58, 0x0b5b},
545     {0x0b5e, 0x0b5e},
546     {0x0b64, 0x0b65},
547     {0x0b78, 0x0b81},
548     {0x0b84, 0x0b84},
549     {0x0b8b, 0x0b8d},
550     {0x0b91, 0x0b91},
551     {0x0b96, 0x0b98},
552     {0x0b9b, 0x0b9b},
553     {0x0b9d, 0x0b9d},
554     {0x0ba0, 0x0ba2},
555     {0x0ba5, 0x0ba7},
556     {0x0bab, 0x0bad},
557     {0x0bba, 0x0bbd},
558     {0x0bc3, 0x0bc5},
559     {0x0bc9, 0x0bc9},
560     {0x0bce, 0x0bcf},
561     {0x0bd1, 0x0bd6},
562     {0x0bd8, 0x0be5},
563     {0x0bfb, 0x0bff},
564     {0x0c0d, 0x0c0d},
565     {0x0c11, 0x0c11},
566     {0x0c29, 0x0c29},
567     {0x0c3a, 0x0c3c},
568     {0x0c45, 0x0c45},
569     {0x0c49, 0x0c49},
570     {0x0c4e, 0x0c54},
571     {0x0c57, 0x0c57},
572     {0x0c5b, 0x0c5f},
573     {0x0c64, 0x0c65},
574     {0x0c70, 0x0c76},
575     {0x0c8d, 0x0c8d},
576     {0x0c91, 0x0c91},
577     {0x0ca9, 0x0ca9},
578     {0x0cb4, 0x0cb4},
579     {0x0cba, 0x0cbb},
580     {0x0cc5, 0x0cc5},
581     {0x0cc9, 0x0cc9},
582     {0x0cce, 0x0cd4},
583     {0x0cd7, 0x0cdd},
584     {0x0cdf, 0x0cdf},
585     {0x0ce4, 0x0ce5},
586     {0x0cf0, 0x0cf0},
587     {0x0cf3, 0x0cff},
588     {0x0d04, 0x0d04},
589     {0x0d0d, 0x0d0d},
590     {0x0d11, 0x0d11},
591     {0x0d45, 0x0d45},
592     {0x0d49, 0x0d49},
593     {0x0d50, 0x0d53},
594     {0x0d64, 0x0d65},
595     {0x0d80, 0x0d81},
596     {0x0d84, 0x0d84},
597     {0x0d97, 0x0d99},
598     {0x0db2, 0x0db2},
599     {0x0dbc, 0x0dbc},
600     {0x0dbe, 0x0dbf},
601     {0x0dc7, 0x0dc9},
602     {0x0dcb, 0x0dce},
603     {0x0dd5, 0x0dd5},
604     {0x0dd7, 0x0dd7},
605     {0x0de0, 0x0de5},
606     {0x0df0, 0x0df1},
607     {0x0df5, 0x0e00},
608     {0x0e3b, 0x0e3e},
609     {0x0e5c, 0x0e80},
610     {0x0e83, 0x0e83},
611     {0x0e85, 0x0e85},
612     {0x0e8b, 0x0e8b},
613     {0x0ea4, 0x0ea4},
614     {0x0ea6, 0x0ea6},
615     {0x0ebe, 0x0ebf},
616     {0x0ec5, 0x0ec5},
617     {0x0ec7, 0x0ec7},
618     {0x0ece, 0x0ecf},
619     {0x0eda, 0x0edb},
620     {0x0ee0, 0x0eff},
621     {0x0f48, 0x0f48},
622     {0x0f6d, 0x0f70},
623     {0x0f98, 0x0f98},
624     {0x0fbd, 0x0fbd},
625     {0x0fcd, 0x0fcd},
626     {0x0fdb, 0x0fff},
627     {0x10c6, 0x10c6},
628     {0x10c8, 0x10cc},
629     {0x10ce, 0x10cf},
630     {0x1249, 0x1249},
631     {0x124e, 0x124f},
632     {0x1257, 0x1257},
633     {0x1259, 0x1259},
634     {0x125e, 0x125f},
635     {0x1289, 0x1289},
636     {0x128e, 0x128f},
637     {0x12b1, 0x12b1},
638     {0x12b6, 0x12b7},
639     {0x12bf, 0x12bf},
640     {0x12c1, 0x12c1},
641     {0x12c6, 0x12c7},
642     {0x12d7, 0x12d7},
643     {0x1311, 0x1311},
644     {0x1316, 0x1317},
645     {0x135b, 0x135c},
646     {0x137d, 0x137f},
647     {0x139a, 0x139f},
648     {0x13f6, 0x13f7},
649     {0x13fe, 0x13ff},
650     {0x169d, 0x169f},
651     {0x16f9, 0x16ff},
652     {0x170d, 0x170d},
653     {0x1715, 0x171f},
654     {0x1737, 0x173f},
655     {0x1754, 0x175f},
656     {0x176d, 0x176d},
657     {0x1771, 0x1771},
658     {0x1774, 0x177f},
659     {0x17de, 0x17df},
660     {0x17ea, 0x17ef},
661     {0x17fa, 0x17ff},
662     {0x180f, 0x180f},
663     {0x181a, 0x181f},
664     {0x1879, 0x187f},
665     {0x18ab, 0x18af},
666     {0x18f6, 0x18ff},
667     {0x191f, 0x191f},
668     {0x192c, 0x192f},
669     {0x193c, 0x193f},
670     {0x1941, 0x1943},
671     {0x196e, 0x196f},
672     {0x1975, 0x197f},
673     {0x19ac, 0x19af},
674     {0x19ca, 0x19cf},
675     {0x19db, 0x19dd},
676     {0x1a1c, 0x1a1d},
677     {0x1a5f, 0x1a5f},
678     {0x1a7d, 0x1a7e},
679     {0x1a8a, 0x1a8f},
680     {0x1a9a, 0x1a9f},
681     {0x1aae, 0x1aaf},
682     {0x1abf, 0x1aff},
683     {0x1b4c, 0x1b4f},
684     {0x1b7d, 0x1b7f},
685     {0x1bf4, 0x1bfb},
686     {0x1c38, 0x1c3a},
687     {0x1c4a, 0x1c4c},
688     {0x1c89, 0x1c8f},
689     {0x1cbb, 0x1cbc},
690     {0x1cc8, 0x1ccf},
691     {0x1cfb, 0x1cff},
692     {0x1dfa, 0x1dfa},
693     {0x1f16, 0x1f17},
694     {0x1f1e, 0x1f1f},
695     {0x1f46, 0x1f47},
696     {0x1f4e, 0x1f4f},
697     {0x1f58, 0x1f58},
698     {0x1f5a, 0x1f5a},
699     {0x1f5c, 0x1f5c},
700     {0x1f5e, 0x1f5e},
701     {0x1f7e, 0x1f7f},
702     {0x1fb5, 0x1fb5},
703     {0x1fc5, 0x1fc5},
704     {0x1fd4, 0x1fd5},
705     {0x1fdc, 0x1fdc},
706     {0x1ff0, 0x1ff1},
707     {0x1ff5, 0x1ff5},
708     {0x1fff, 0x1fff},
709     {0x2065, 0x2065},
710     {0x2072, 0x2073},
711     {0x208f, 0x208f},
712     {0x209d, 0x209f},
713     {0x20c0, 0x20cf},
714     {0x20f1, 0x20ff},
715     {0x218c, 0x218f},
716     {0x2427, 0x243f},
717     {0x244b, 0x245f},
718     {0x2b74, 0x2b75},
719     {0x2b96, 0x2b97},
720     {0x2c2f, 0x2c2f},
721     {0x2c5f, 0x2c5f},
722     {0x2cf4, 0x2cf8},
723     {0x2d26, 0x2d26},
724     {0x2d28, 0x2d2c},
725     {0x2d2e, 0x2d2f},
726     {0x2d68, 0x2d6e},
727     {0x2d71, 0x2d7e},
728     {0x2d97, 0x2d9f},
729     {0x2da7, 0x2da7},
730     {0x2daf, 0x2daf},
731     {0x2db7, 0x2db7},
732     {0x2dbf, 0x2dbf},
733     {0x2dc7, 0x2dc7},
734     {0x2dcf, 0x2dcf},
735     {0x2dd7, 0x2dd7},
736     {0x2ddf, 0x2ddf},
737     {0x2e50, 0x2e7f},
738     {0x2e9a, 0x2e9a},
739     {0x2ef4, 0x2eff},
740     {0x2fd6, 0x2fef},
741     {0x2ffc, 0x2fff},
742     {0x3040, 0x3040},
743     {0x3097, 0x3098},
744     {0x3100, 0x3104},
745     {0x3130, 0x3130},
746     {0x318f, 0x318f},
747     {0x31bb, 0x31bf},
748     {0x31e4, 0x31ef},
749     {0x321f, 0x321f},
750     {0x4db6, 0x4dbf},
751     {0x9ff0, 0x9fff},
752     {0xa48d, 0xa48f},
753     {0xa4c7, 0xa4cf},
754     {0xa62c, 0xa63f},
755     {0xa6f8, 0xa6ff},
756     {0xa7c0, 0xa7c1},
757     {0xa7c7, 0xa7f6},
758     {0xa82c, 0xa82f},
759     {0xa83a, 0xa83f},
760     {0xa878, 0xa87f},
761     {0xa8c6, 0xa8cd},
762     {0xa8da, 0xa8df},
763     {0xa954, 0xa95e},
764     {0xa97d, 0xa97f},
765     {0xa9ce, 0xa9ce},
766     {0xa9da, 0xa9dd},
767     {0xa9ff, 0xa9ff},
768     {0xaa37, 0xaa3f},
769     {0xaa4e, 0xaa4f},
770     {0xaa5a, 0xaa5b},
771     {0xaac3, 0xaada},
772     {0xaaf7, 0xab00},
773     {0xab07, 0xab08},
774     {0xab0f, 0xab10},
775     {0xab17, 0xab1f},
776     {0xab27, 0xab27},
777     {0xab2f, 0xab2f},
778     {0xab68, 0xab6f},
779     {0xabee, 0xabef},
780     {0xabfa, 0xabff},
781     {0xd7a4, 0xd7af},
782     {0xd7c7, 0xd7ca},
783     {0xd7fc, 0xf8ff},
784     {0xfa6e, 0xfa6f},
785     {0xfada, 0xfaff},
786     {0xfb07, 0xfb12},
787     {0xfb18, 0xfb1c},
788     {0xfb37, 0xfb37},
789     {0xfb3d, 0xfb3d},
790     {0xfb3f, 0xfb3f},
791     {0xfb42, 0xfb42},
792     {0xfb45, 0xfb45},
793     {0xfbc2, 0xfbd2},
794     {0xfd40, 0xfd4f},
795     {0xfd90, 0xfd91},
796     {0xfdc8, 0xfdef},
797     {0xfdfe, 0xfdff},
798     {0xfe1a, 0xfe1f},
799     {0xfe53, 0xfe53},
800     {0xfe67, 0xfe67},
801     {0xfe6c, 0xfe6f},
802     {0xfe75, 0xfe75},
803     {0xfefd, 0xfefe},
804     {0xff00, 0xff00},
805     {0xffbf, 0xffc1},
806     {0xffc8, 0xffc9},
807     {0xffd0, 0xffd1},
808     {0xffd8, 0xffd9},
809     {0xffdd, 0xffdf},
810     {0xffe7, 0xffe7},
811     {0xffef, 0xfff8},
812     {0xfffe, 0xffff},
813     {0x1000c, 0x1000c},
814     {0x10027, 0x10027},
815     {0x1003b, 0x1003b},
816     {0x1003e, 0x1003e},
817     {0x1004e, 0x1004f},
818     {0x1005e, 0x1007f},
819     {0x100fb, 0x100ff},
820     {0x10103, 0x10106},
821     {0x10134, 0x10136},
822     {0x1018f, 0x1018f},
823     {0x1019c, 0x1019f},
824     {0x101a1, 0x101cf},
825     {0x101fe, 0x1027f},
826     {0x1029d, 0x1029f},
827     {0x102d1, 0x102df},
828     {0x102fc, 0x102ff},
829     {0x10324, 0x1032c},
830     {0x1034b, 0x1034f},
831     {0x1037b, 0x1037f},
832     {0x1039e, 0x1039e},
833     {0x103c4, 0x103c7},
834     {0x103d6, 0x103ff},
835     {0x1049e, 0x1049f},
836     {0x104aa, 0x104af},
837     {0x104d4, 0x104d7},
838     {0x104fc, 0x104ff},
839     {0x10528, 0x1052f},
840     {0x10564, 0x1056e},
841     {0x10570, 0x105ff},
842     {0x10737, 0x1073f},
843     {0x10756, 0x1075f},
844     {0x10768, 0x107ff},
845     {0x10806, 0x10807},
846     {0x10809, 0x10809},
847     {0x10836, 0x10836},
848     {0x10839, 0x1083b},
849     {0x1083d, 0x1083e},
850     {0x10856, 0x10856},
851     {0x1089f, 0x108a6},
852     {0x108b0, 0x108df},
853     {0x108f3, 0x108f3},
854     {0x108f6, 0x108fa},
855     {0x1091c, 0x1091e},
856     {0x1093a, 0x1093e},
857     {0x10940, 0x1097f},
858     {0x109b8, 0x109bb},
859     {0x109d0, 0x109d1},
860     {0x10a04, 0x10a04},
861     {0x10a07, 0x10a0b},
862     {0x10a14, 0x10a14},
863     {0x10a18, 0x10a18},
864     {0x10a36, 0x10a37},
865     {0x10a3b, 0x10a3e},
866     {0x10a49, 0x10a4f},
867     {0x10a59, 0x10a5f},
868     {0x10aa0, 0x10abf},
869     {0x10ae7, 0x10aea},
870     {0x10af7, 0x10aff},
871     {0x10b36, 0x10b38},
872     {0x10b56, 0x10b57},
873     {0x10b73, 0x10b77},
874     {0x10b92, 0x10b98},
875     {0x10b9d, 0x10ba8},
876     {0x10bb0, 0x10bff},
877     {0x10c49, 0x10c7f},
878     {0x10cb3, 0x10cbf},
879     {0x10cf3, 0x10cf9},
880     {0x10d28, 0x10d2f},
881     {0x10d3a, 0x10e5f},
882     {0x10e7f, 0x10eff},
883     {0x10f28, 0x10f2f},
884     {0x10f5a, 0x10fdf},
885     {0x10ff7, 0x10fff},
886     {0x1104e, 0x11051},
887     {0x11070, 0x1107e},
888     {0x110c2, 0x110cc},
889     {0x110ce, 0x110cf},
890     {0x110e9, 0x110ef},
891     {0x110fa, 0x110ff},
892     {0x11135, 0x11135},
893     {0x11147, 0x1114f},
894     {0x11177, 0x1117f},
895     {0x111ce, 0x111cf},
896     {0x111e0, 0x111e0},
897     {0x111f5, 0x111ff},
898     {0x11212, 0x11212},
899     {0x1123f, 0x1127f},
900     {0x11287, 0x11287},
901     {0x11289, 0x11289},
902     {0x1128e, 0x1128e},
903     {0x1129e, 0x1129e},
904     {0x112aa, 0x112af},
905     {0x112eb, 0x112ef},
906     {0x112fa, 0x112ff},
907     {0x11304, 0x11304},
908     {0x1130d, 0x1130e},
909     {0x11311, 0x11312},
910     {0x11329, 0x11329},
911     {0x11331, 0x11331},
912     {0x11334, 0x11334},
913     {0x1133a, 0x1133a},
914     {0x11345, 0x11346},
915     {0x11349, 0x1134a},
916     {0x1134e, 0x1134f},
917     {0x11351, 0x11356},
918     {0x11358, 0x1135c},
919     {0x11364, 0x11365},
920     {0x1136d, 0x1136f},
921     {0x11375, 0x113ff},
922     {0x1145a, 0x1145a},
923     {0x1145c, 0x1145c},
924     {0x11460, 0x1147f},
925     {0x114c8, 0x114cf},
926     {0x114da, 0x1157f},
927     {0x115b6, 0x115b7},
928     {0x115de, 0x115ff},
929     {0x11645, 0x1164f},
930     {0x1165a, 0x1165f},
931     {0x1166d, 0x1167f},
932     {0x116b9, 0x116bf},
933     {0x116ca, 0x116ff},
934     {0x1171b, 0x1171c},
935     {0x1172c, 0x1172f},
936     {0x11740, 0x117ff},
937     {0x1183c, 0x1189f},
938     {0x118f3, 0x118fe},
939     {0x11900, 0x1199f},
940     {0x119a8, 0x119a9},
941     {0x119d8, 0x119d9},
942     {0x119e5, 0x119ff},
943     {0x11a48, 0x11a4f},
944     {0x11aa3, 0x11abf},
945     {0x11af9, 0x11bff},
946     {0x11c09, 0x11c09},
947     {0x11c37, 0x11c37},
948     {0x11c46, 0x11c4f},
949     {0x11c6d, 0x11c6f},
950     {0x11c90, 0x11c91},
951     {0x11ca8, 0x11ca8},
952     {0x11cb7, 0x11cff},
953     {0x11d07, 0x11d07},
954     {0x11d0a, 0x11d0a},
955     {0x11d37, 0x11d39},
956     {0x11d3b, 0x11d3b},
957     {0x11d3e, 0x11d3e},
958     {0x11d48, 0x11d4f},
959     {0x11d5a, 0x11d5f},
960     {0x11d66, 0x11d66},
961     {0x11d69, 0x11d69},
962     {0x11d8f, 0x11d8f},
963     {0x11d92, 0x11d92},
964     {0x11d99, 0x11d9f},
965     {0x11daa, 0x11edf},
966     {0x11ef9, 0x11fbf},
967     {0x11ff2, 0x11ffe},
968     {0x1239a, 0x123ff},
969     {0x1246f, 0x1246f},
970     {0x12475, 0x1247f},
971     {0x12544, 0x12fff},
972     {0x1342f, 0x1342f},
973     {0x13439, 0x143ff},
974     {0x14647, 0x167ff},
975     {0x16a39, 0x16a3f},
976     {0x16a5f, 0x16a5f},
977     {0x16a6a, 0x16a6d},
978     {0x16a70, 0x16acf},
979     {0x16aee, 0x16aef},
980     {0x16af6, 0x16aff},
981     {0x16b46, 0x16b4f},
982     {0x16b5a, 0x16b5a},
983     {0x16b62, 0x16b62},
984     {0x16b78, 0x16b7c},
985     {0x16b90, 0x16e3f},
986     {0x16e9b, 0x16eff},
987     {0x16f4b, 0x16f4e},
988     {0x16f88, 0x16f8e},
989     {0x16fa0, 0x16fdf},
990     {0x16fe4, 0x16fff},
991     {0x187f8, 0x187ff},
992     {0x18af3, 0x1afff},
993     {0x1b11f, 0x1b14f},
994     {0x1b153, 0x1b163},
995     {0x1b168, 0x1b16f},
996     {0x1b2fc, 0x1bbff},
997     {0x1bc6b, 0x1bc6f},
998     {0x1bc7d, 0x1bc7f},
999     {0x1bc89, 0x1bc8f},
1000     {0x1bc9a, 0x1bc9b},
1001     {0x1bca4, 0x1cfff},
1002     {0x1d0f6, 0x1d0ff},
1003     {0x1d127, 0x1d128},
1004     {0x1d1e9, 0x1d1ff},
1005     {0x1d246, 0x1d2df},
1006     {0x1d2f4, 0x1d2ff},
1007     {0x1d357, 0x1d35f},
1008     {0x1d379, 0x1d3ff},
1009     {0x1d455, 0x1d455},
1010     {0x1d49d, 0x1d49d},
1011     {0x1d4a0, 0x1d4a1},
1012     {0x1d4a3, 0x1d4a4},
1013     {0x1d4a7, 0x1d4a8},
1014     {0x1d4ad, 0x1d4ad},
1015     {0x1d4ba, 0x1d4ba},
1016     {0x1d4bc, 0x1d4bc},
1017     {0x1d4c4, 0x1d4c4},
1018     {0x1d506, 0x1d506},
1019     {0x1d50b, 0x1d50c},
1020     {0x1d515, 0x1d515},
1021     {0x1d51d, 0x1d51d},
1022     {0x1d53a, 0x1d53a},
1023     {0x1d53f, 0x1d53f},
1024     {0x1d545, 0x1d545},
1025     {0x1d547, 0x1d549},
1026     {0x1d551, 0x1d551},
1027     {0x1d6a6, 0x1d6a7},
1028     {0x1d7cc, 0x1d7cd},
1029     {0x1da8c, 0x1da9a},
1030     {0x1daa0, 0x1daa0},
1031     {0x1dab0, 0x1dfff},
1032     {0x1e007, 0x1e007},
1033     {0x1e019, 0x1e01a},
1034     {0x1e022, 0x1e022},
1035     {0x1e025, 0x1e025},
1036     {0x1e02b, 0x1e0ff},
1037     {0x1e12d, 0x1e12f},
1038     {0x1e13e, 0x1e13f},
1039     {0x1e14a, 0x1e14d},
1040     {0x1e150, 0x1e2bf},
1041     {0x1e2fa, 0x1e2fe},
1042     {0x1e300, 0x1e7ff},
1043     {0x1e8c5, 0x1e8c6},
1044     {0x1e8d7, 0x1e8ff},
1045     {0x1e94c, 0x1e94f},
1046     {0x1e95a, 0x1e95d},
1047     {0x1e960, 0x1ec70},
1048     {0x1ecb5, 0x1ed00},
1049     {0x1ed3e, 0x1edff},
1050     {0x1ee04, 0x1ee04},
1051     {0x1ee20, 0x1ee20},
1052     {0x1ee23, 0x1ee23},
1053     {0x1ee25, 0x1ee26},
1054     {0x1ee28, 0x1ee28},
1055     {0x1ee33, 0x1ee33},
1056     {0x1ee38, 0x1ee38},
1057     {0x1ee3a, 0x1ee3a},
1058     {0x1ee3c, 0x1ee41},
1059     {0x1ee43, 0x1ee46},
1060     {0x1ee48, 0x1ee48},
1061     {0x1ee4a, 0x1ee4a},
1062     {0x1ee4c, 0x1ee4c},
1063     {0x1ee50, 0x1ee50},
1064     {0x1ee53, 0x1ee53},
1065     {0x1ee55, 0x1ee56},
1066     {0x1ee58, 0x1ee58},
1067     {0x1ee5a, 0x1ee5a},
1068     {0x1ee5c, 0x1ee5c},
1069     {0x1ee5e, 0x1ee5e},
1070     {0x1ee60, 0x1ee60},
1071     {0x1ee63, 0x1ee63},
1072     {0x1ee65, 0x1ee66},
1073     {0x1ee6b, 0x1ee6b},
1074     {0x1ee73, 0x1ee73},
1075     {0x1ee78, 0x1ee78},
1076     {0x1ee7d, 0x1ee7d},
1077     {0x1ee7f, 0x1ee7f},
1078     {0x1ee8a, 0x1ee8a},
1079     {0x1ee9c, 0x1eea0},
1080     {0x1eea4, 0x1eea4},
1081     {0x1eeaa, 0x1eeaa},
1082     {0x1eebc, 0x1eeef},
1083     {0x1eef2, 0x1efff},
1084     {0x1f02c, 0x1f02f},
1085     {0x1f094, 0x1f09f},
1086     {0x1f0af, 0x1f0b0},
1087     {0x1f0c0, 0x1f0c0},
1088     {0x1f0d0, 0x1f0d0},
1089     {0x1f0f6, 0x1f0ff},
1090     {0x1f10d, 0x1f10f},
1091     {0x1f16d, 0x1f16f},
1092     {0x1f1ad, 0x1f1e5},
1093     {0x1f203, 0x1f20f},
1094     {0x1f23c, 0x1f23f},
1095     {0x1f249, 0x1f24f},
1096     {0x1f252, 0x1f25f},
1097     {0x1f266, 0x1f2ff},
1098     {0x1f6d6, 0x1f6df},
1099     {0x1f6ed, 0x1f6ef},
1100     {0x1f6fb, 0x1f6ff},
1101     {0x1f774, 0x1f77f},
1102     {0x1f7d9, 0x1f7df},
1103     {0x1f7ec, 0x1f7ff},
1104     {0x1f80c, 0x1f80f},
1105     {0x1f848, 0x1f84f},
1106     {0x1f85a, 0x1f85f},
1107     {0x1f888, 0x1f88f},
1108     {0x1f8ae, 0x1f8ff},
1109     {0x1f90c, 0x1f90c},
1110     {0x1f972, 0x1f972},
1111     {0x1f977, 0x1f979},
1112     {0x1f9a3, 0x1f9a4},
1113     {0x1f9ab, 0x1f9ad},
1114     {0x1f9cb, 0x1f9cc},
1115     {0x1fa54, 0x1fa5f},
1116     {0x1fa6e, 0x1fa6f},
1117     {0x1fa74, 0x1fa77},
1118     {0x1fa7b, 0x1fa7f},
1119     {0x1fa83, 0x1fa8f},
1120     {0x1fa96, 0x1ffff},
1121     {0x2a6d7, 0x2a6ff},
1122     {0x2b735, 0x2b73f},
1123     {0x2b81e, 0x2b81f},
1124     {0x2cea2, 0x2ceaf},
1125     {0x2ebe1, 0x2f7ff},
1126     {0x2fa1e, 0xe0000},
1127     {0xe0002, 0xe001f},
1128     {0xe0080, 0xe00ff},
1129     {0xe01f0, 0x10ffff},
1130 };
1131 
1132