1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
|
/* This file is autogenerated by gen/prop/blk; DO NOT EDIT. */
#include "__bsearch.h"
#include "macros.h"
#include "rune.h"
#include "unicode/prop.h"
static constexpr enum uprop_blk lookup_lat1[] = {
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII , BLK_ASCII ,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP, BLK_LATIN_1_SUP,
};
static const struct {
rune lo, hi;
enum uprop_blk val;
} lookup[] = {
{RUNE_C(0x000100), RUNE_C(0x00017F), BLK_LATIN_EXT_A},
{RUNE_C(0x000180), RUNE_C(0x00024F), BLK_LATIN_EXT_B},
{RUNE_C(0x000250), RUNE_C(0x0002AF), BLK_IPA_EXT},
{RUNE_C(0x0002B0), RUNE_C(0x0002FF), BLK_MODIFIER_LETTERS},
{RUNE_C(0x000300), RUNE_C(0x00036F), BLK_DIACRITICALS},
{RUNE_C(0x000370), RUNE_C(0x0003FF), BLK_GREEK},
{RUNE_C(0x000400), RUNE_C(0x0004FF), BLK_CYRILLIC},
{RUNE_C(0x000500), RUNE_C(0x00052F), BLK_CYRILLIC_SUP},
{RUNE_C(0x000530), RUNE_C(0x00058F), BLK_ARMENIAN},
{RUNE_C(0x000590), RUNE_C(0x0005FF), BLK_HEBREW},
{RUNE_C(0x000600), RUNE_C(0x0006FF), BLK_ARABIC},
{RUNE_C(0x000700), RUNE_C(0x00074F), BLK_SYRIAC},
{RUNE_C(0x000750), RUNE_C(0x00077F), BLK_ARABIC_SUP},
{RUNE_C(0x000780), RUNE_C(0x0007BF), BLK_THAANA},
{RUNE_C(0x0007C0), RUNE_C(0x0007FF), BLK_NKO},
{RUNE_C(0x000800), RUNE_C(0x00083F), BLK_SAMARITAN},
{RUNE_C(0x000840), RUNE_C(0x00085F), BLK_MANDAIC},
{RUNE_C(0x000860), RUNE_C(0x00086F), BLK_SYRIAC_SUP},
{RUNE_C(0x000870), RUNE_C(0x00089F), BLK_ARABIC_EXT_B},
{RUNE_C(0x0008A0), RUNE_C(0x0008FF), BLK_ARABIC_EXT_A},
{RUNE_C(0x000900), RUNE_C(0x00097F), BLK_DEVANAGARI},
{RUNE_C(0x000980), RUNE_C(0x0009FF), BLK_BENGALI},
{RUNE_C(0x000A00), RUNE_C(0x000A7F), BLK_GURMUKHI},
{RUNE_C(0x000A80), RUNE_C(0x000AFF), BLK_GUJARATI},
{RUNE_C(0x000B00), RUNE_C(0x000B7F), BLK_ORIYA},
{RUNE_C(0x000B80), RUNE_C(0x000BFF), BLK_TAMIL},
{RUNE_C(0x000C00), RUNE_C(0x000C7F), BLK_TELUGU},
{RUNE_C(0x000C80), RUNE_C(0x000CFF), BLK_KANNADA},
{RUNE_C(0x000D00), RUNE_C(0x000D7F), BLK_MALAYALAM},
{RUNE_C(0x000D80), RUNE_C(0x000DFF), BLK_SINHALA},
{RUNE_C(0x000E00), RUNE_C(0x000E7F), BLK_THAI},
{RUNE_C(0x000E80), RUNE_C(0x000EFF), BLK_LAO},
{RUNE_C(0x000F00), RUNE_C(0x000FFF), BLK_TIBETAN},
{RUNE_C(0x001000), RUNE_C(0x00109F), BLK_MYANMAR},
{RUNE_C(0x0010A0), RUNE_C(0x0010FF), BLK_GEORGIAN},
{RUNE_C(0x001100), RUNE_C(0x0011FF), BLK_JAMO},
{RUNE_C(0x001200), RUNE_C(0x00137F), BLK_ETHIOPIC},
{RUNE_C(0x001380), RUNE_C(0x00139F), BLK_ETHIOPIC_SUP},
{RUNE_C(0x0013A0), RUNE_C(0x0013FF), BLK_CHEROKEE},
{RUNE_C(0x001400), RUNE_C(0x00167F), BLK_UCAS},
{RUNE_C(0x001680), RUNE_C(0x00169F), BLK_OGHAM},
{RUNE_C(0x0016A0), RUNE_C(0x0016FF), BLK_RUNIC},
{RUNE_C(0x001700), RUNE_C(0x00171F), BLK_TAGALOG},
{RUNE_C(0x001720), RUNE_C(0x00173F), BLK_HANUNOO},
{RUNE_C(0x001740), RUNE_C(0x00175F), BLK_BUHID},
{RUNE_C(0x001760), RUNE_C(0x00177F), BLK_TAGBANWA},
{RUNE_C(0x001780), RUNE_C(0x0017FF), BLK_KHMER},
{RUNE_C(0x001800), RUNE_C(0x0018AF), BLK_MONGOLIAN},
{RUNE_C(0x0018B0), RUNE_C(0x0018FF), BLK_UCAS_EXT},
{RUNE_C(0x001900), RUNE_C(0x00194F), BLK_LIMBU},
{RUNE_C(0x001950), RUNE_C(0x00197F), BLK_TAI_LE},
{RUNE_C(0x001980), RUNE_C(0x0019DF), BLK_NEW_TAI_LUE},
{RUNE_C(0x0019E0), RUNE_C(0x0019FF), BLK_KHMER_SYMBOLS},
{RUNE_C(0x001A00), RUNE_C(0x001A1F), BLK_BUGINESE},
{RUNE_C(0x001A20), RUNE_C(0x001AAF), BLK_TAI_THAM},
{RUNE_C(0x001AB0), RUNE_C(0x001AFF), BLK_DIACRITICALS_EXT},
{RUNE_C(0x001B00), RUNE_C(0x001B7F), BLK_BALINESE},
{RUNE_C(0x001B80), RUNE_C(0x001BBF), BLK_SUNDANESE},
{RUNE_C(0x001BC0), RUNE_C(0x001BFF), BLK_BATAK},
{RUNE_C(0x001C00), RUNE_C(0x001C4F), BLK_LEPCHA},
{RUNE_C(0x001C50), RUNE_C(0x001C7F), BLK_OL_CHIKI},
{RUNE_C(0x001C80), RUNE_C(0x001C8F), BLK_CYRILLIC_EXT_C},
{RUNE_C(0x001C90), RUNE_C(0x001CBF), BLK_GEORGIAN_EXT},
{RUNE_C(0x001CC0), RUNE_C(0x001CCF), BLK_SUNDANESE_SUP},
{RUNE_C(0x001CD0), RUNE_C(0x001CFF), BLK_VEDIC_EXT},
{RUNE_C(0x001D00), RUNE_C(0x001D7F), BLK_PHONETIC_EXT},
{RUNE_C(0x001D80), RUNE_C(0x001DBF), BLK_PHONETIC_EXT_SUP},
{RUNE_C(0x001DC0), RUNE_C(0x001DFF), BLK_DIACRITICALS_SUP},
{RUNE_C(0x001E00), RUNE_C(0x001EFF), BLK_LATIN_EXT_ADDITIONAL},
{RUNE_C(0x001F00), RUNE_C(0x001FFF), BLK_GREEK_EXT},
{RUNE_C(0x002000), RUNE_C(0x00206F), BLK_PUNCTUATION},
{RUNE_C(0x002070), RUNE_C(0x00209F), BLK_SUPER_AND_SUB},
{RUNE_C(0x0020A0), RUNE_C(0x0020CF), BLK_CURRENCY_SYMBOLS},
{RUNE_C(0x0020D0), RUNE_C(0x0020FF), BLK_DIACRITICALS_FOR_SYMBOLS},
{RUNE_C(0x002100), RUNE_C(0x00214F), BLK_LETTERLIKE_SYMBOLS},
{RUNE_C(0x002150), RUNE_C(0x00218F), BLK_NUMBER_FORMS},
{RUNE_C(0x002190), RUNE_C(0x0021FF), BLK_ARROWS},
{RUNE_C(0x002200), RUNE_C(0x0022FF), BLK_MATH_OPERATORS},
{RUNE_C(0x002300), RUNE_C(0x0023FF), BLK_MISC_TECHNICAL},
{RUNE_C(0x002400), RUNE_C(0x00243F), BLK_CONTROL_PICTURES},
{RUNE_C(0x002440), RUNE_C(0x00245F), BLK_OCR},
{RUNE_C(0x002460), RUNE_C(0x0024FF), BLK_ENCLOSED_ALPHANUM},
{RUNE_C(0x002500), RUNE_C(0x00257F), BLK_BOX_DRAWING},
{RUNE_C(0x002580), RUNE_C(0x00259F), BLK_BLOCK_ELEMENTS},
{RUNE_C(0x0025A0), RUNE_C(0x0025FF), BLK_GEOMETRIC_SHAPES},
{RUNE_C(0x002600), RUNE_C(0x0026FF), BLK_MISC_SYMBOLS},
{RUNE_C(0x002700), RUNE_C(0x0027BF), BLK_DINGBATS},
{RUNE_C(0x0027C0), RUNE_C(0x0027EF), BLK_MISC_MATH_SYMBOLS_A},
{RUNE_C(0x0027F0), RUNE_C(0x0027FF), BLK_SUP_ARROWS_A},
{RUNE_C(0x002800), RUNE_C(0x0028FF), BLK_BRAILLE},
{RUNE_C(0x002900), RUNE_C(0x00297F), BLK_SUP_ARROWS_B},
{RUNE_C(0x002980), RUNE_C(0x0029FF), BLK_MISC_MATH_SYMBOLS_B},
{RUNE_C(0x002A00), RUNE_C(0x002AFF), BLK_SUP_MATH_OPERATORS},
{RUNE_C(0x002B00), RUNE_C(0x002BFF), BLK_MISC_ARROWS},
{RUNE_C(0x002C00), RUNE_C(0x002C5F), BLK_GLAGOLITIC},
{RUNE_C(0x002C60), RUNE_C(0x002C7F), BLK_LATIN_EXT_C},
{RUNE_C(0x002C80), RUNE_C(0x002CFF), BLK_COPTIC},
{RUNE_C(0x002D00), RUNE_C(0x002D2F), BLK_GEORGIAN_SUP},
{RUNE_C(0x002D30), RUNE_C(0x002D7F), BLK_TIFINAGH},
{RUNE_C(0x002D80), RUNE_C(0x002DDF), BLK_ETHIOPIC_EXT},
{RUNE_C(0x002DE0), RUNE_C(0x002DFF), BLK_CYRILLIC_EXT_A},
{RUNE_C(0x002E00), RUNE_C(0x002E7F), BLK_SUP_PUNCTUATION},
{RUNE_C(0x002E80), RUNE_C(0x002EFF), BLK_CJK_RADICALS_SUP},
{RUNE_C(0x002F00), RUNE_C(0x002FDF), BLK_KANGXI},
{RUNE_C(0x002FF0), RUNE_C(0x002FFF), BLK_IDC},
{RUNE_C(0x003000), RUNE_C(0x00303F), BLK_CJK_SYMBOLS},
{RUNE_C(0x003040), RUNE_C(0x00309F), BLK_HIRAGANA},
{RUNE_C(0x0030A0), RUNE_C(0x0030FF), BLK_KATAKANA},
{RUNE_C(0x003100), RUNE_C(0x00312F), BLK_BOPOMOFO},
{RUNE_C(0x003130), RUNE_C(0x00318F), BLK_COMPAT_JAMO},
{RUNE_C(0x003190), RUNE_C(0x00319F), BLK_KANBUN},
{RUNE_C(0x0031A0), RUNE_C(0x0031BF), BLK_BOPOMOFO_EXT},
{RUNE_C(0x0031C0), RUNE_C(0x0031EF), BLK_CJK_STROKES},
{RUNE_C(0x0031F0), RUNE_C(0x0031FF), BLK_KATAKANA_EXT},
{RUNE_C(0x003200), RUNE_C(0x0032FF), BLK_ENCLOSED_CJK},
{RUNE_C(0x003300), RUNE_C(0x0033FF), BLK_CJK_COMPAT},
{RUNE_C(0x003400), RUNE_C(0x004DBF), BLK_CJK_EXT_A},
{RUNE_C(0x004DC0), RUNE_C(0x004DFF), BLK_YIJING},
{RUNE_C(0x004E00), RUNE_C(0x009FFF), BLK_CJK},
{RUNE_C(0x00A000), RUNE_C(0x00A48F), BLK_YI_SYLLABLES},
{RUNE_C(0x00A490), RUNE_C(0x00A4CF), BLK_YI_RADICALS},
{RUNE_C(0x00A4D0), RUNE_C(0x00A4FF), BLK_LISU},
{RUNE_C(0x00A500), RUNE_C(0x00A63F), BLK_VAI},
{RUNE_C(0x00A640), RUNE_C(0x00A69F), BLK_CYRILLIC_EXT_B},
{RUNE_C(0x00A6A0), RUNE_C(0x00A6FF), BLK_BAMUM},
{RUNE_C(0x00A700), RUNE_C(0x00A71F), BLK_MODIFIER_TONE_LETTERS},
{RUNE_C(0x00A720), RUNE_C(0x00A7FF), BLK_LATIN_EXT_D},
{RUNE_C(0x00A800), RUNE_C(0x00A82F), BLK_SYLOTI_NAGRI},
{RUNE_C(0x00A830), RUNE_C(0x00A83F), BLK_INDIC_NUMBER_FORMS},
{RUNE_C(0x00A840), RUNE_C(0x00A87F), BLK_PHAGS_PA},
{RUNE_C(0x00A880), RUNE_C(0x00A8DF), BLK_SAURASHTRA},
{RUNE_C(0x00A8E0), RUNE_C(0x00A8FF), BLK_DEVANAGARI_EXT},
{RUNE_C(0x00A900), RUNE_C(0x00A92F), BLK_KAYAH_LI},
{RUNE_C(0x00A930), RUNE_C(0x00A95F), BLK_REJANG},
{RUNE_C(0x00A960), RUNE_C(0x00A97F), BLK_JAMO_EXT_A},
{RUNE_C(0x00A980), RUNE_C(0x00A9DF), BLK_JAVANESE},
{RUNE_C(0x00A9E0), RUNE_C(0x00A9FF), BLK_MYANMAR_EXT_B},
{RUNE_C(0x00AA00), RUNE_C(0x00AA5F), BLK_CHAM},
{RUNE_C(0x00AA60), RUNE_C(0x00AA7F), BLK_MYANMAR_EXT_A},
{RUNE_C(0x00AA80), RUNE_C(0x00AADF), BLK_TAI_VIET},
{RUNE_C(0x00AAE0), RUNE_C(0x00AAFF), BLK_MEETEI_MAYEK_EXT},
{RUNE_C(0x00AB00), RUNE_C(0x00AB2F), BLK_ETHIOPIC_EXT_A},
{RUNE_C(0x00AB30), RUNE_C(0x00AB6F), BLK_LATIN_EXT_E},
{RUNE_C(0x00AB70), RUNE_C(0x00ABBF), BLK_CHEROKEE_SUP},
{RUNE_C(0x00ABC0), RUNE_C(0x00ABFF), BLK_MEETEI_MAYEK},
{RUNE_C(0x00AC00), RUNE_C(0x00D7AF), BLK_HANGUL},
{RUNE_C(0x00D7B0), RUNE_C(0x00D7FF), BLK_JAMO_EXT_B},
{RUNE_C(0x00D800), RUNE_C(0x00DB7F), BLK_HIGH_SURROGATES},
{RUNE_C(0x00DB80), RUNE_C(0x00DBFF), BLK_HIGH_PU_SURROGATES},
{RUNE_C(0x00DC00), RUNE_C(0x00DFFF), BLK_LOW_SURROGATES},
{RUNE_C(0x00E000), RUNE_C(0x00F8FF), BLK_PUA},
{RUNE_C(0x00F900), RUNE_C(0x00FAFF), BLK_CJK_COMPAT_IDEOGRAPHS},
{RUNE_C(0x00FB00), RUNE_C(0x00FB4F), BLK_ALPHABETIC_PF},
{RUNE_C(0x00FB50), RUNE_C(0x00FDFF), BLK_ARABIC_PF_A},
{RUNE_C(0x00FE00), RUNE_C(0x00FE0F), BLK_VS},
{RUNE_C(0x00FE10), RUNE_C(0x00FE1F), BLK_VERTICAL_FORMS},
{RUNE_C(0x00FE20), RUNE_C(0x00FE2F), BLK_HALF_MARKS},
{RUNE_C(0x00FE30), RUNE_C(0x00FE4F), BLK_CJK_COMPAT_FORMS},
{RUNE_C(0x00FE50), RUNE_C(0x00FE6F), BLK_SMALL_FORMS},
{RUNE_C(0x00FE70), RUNE_C(0x00FEFF), BLK_ARABIC_PF_B},
{RUNE_C(0x00FF00), RUNE_C(0x00FFEF), BLK_HALF_AND_FULL_FORMS},
{RUNE_C(0x00FFF0), RUNE_C(0x00FFFF), BLK_SPECIALS},
{RUNE_C(0x010000), RUNE_C(0x01007F), BLK_LINEAR_B_SYLLABARY},
{RUNE_C(0x010080), RUNE_C(0x0100FF), BLK_LINEAR_B_IDEOGRAMS},
{RUNE_C(0x010100), RUNE_C(0x01013F), BLK_AEGEAN_NUMBERS},
{RUNE_C(0x010140), RUNE_C(0x01018F), BLK_ANCIENT_GREEK_NUMBERS},
{RUNE_C(0x010190), RUNE_C(0x0101CF), BLK_ANCIENT_SYMBOLS},
{RUNE_C(0x0101D0), RUNE_C(0x0101FF), BLK_PHAISTOS},
{RUNE_C(0x010280), RUNE_C(0x01029F), BLK_LYCIAN},
{RUNE_C(0x0102A0), RUNE_C(0x0102DF), BLK_CARIAN},
{RUNE_C(0x0102E0), RUNE_C(0x0102FF), BLK_COPTIC_EPACT_NUMBERS},
{RUNE_C(0x010300), RUNE_C(0x01032F), BLK_OLD_ITALIC},
{RUNE_C(0x010330), RUNE_C(0x01034F), BLK_GOTHIC},
{RUNE_C(0x010350), RUNE_C(0x01037F), BLK_OLD_PERMIC},
{RUNE_C(0x010380), RUNE_C(0x01039F), BLK_UGARITIC},
{RUNE_C(0x0103A0), RUNE_C(0x0103DF), BLK_OLD_PERSIAN},
{RUNE_C(0x010400), RUNE_C(0x01044F), BLK_DESERET},
{RUNE_C(0x010450), RUNE_C(0x01047F), BLK_SHAVIAN},
{RUNE_C(0x010480), RUNE_C(0x0104AF), BLK_OSMANYA},
{RUNE_C(0x0104B0), RUNE_C(0x0104FF), BLK_OSAGE},
{RUNE_C(0x010500), RUNE_C(0x01052F), BLK_ELBASAN},
{RUNE_C(0x010530), RUNE_C(0x01056F), BLK_CAUCASIAN_ALBANIAN},
{RUNE_C(0x010570), RUNE_C(0x0105BF), BLK_VITHKUQI},
{RUNE_C(0x010600), RUNE_C(0x01077F), BLK_LINEAR_A},
{RUNE_C(0x010780), RUNE_C(0x0107BF), BLK_LATIN_EXT_F},
{RUNE_C(0x010800), RUNE_C(0x01083F), BLK_CYPRIOT_SYLLABARY},
{RUNE_C(0x010840), RUNE_C(0x01085F), BLK_IMPERIAL_ARAMAIC},
{RUNE_C(0x010860), RUNE_C(0x01087F), BLK_PALMYRENE},
{RUNE_C(0x010880), RUNE_C(0x0108AF), BLK_NABATAEAN},
{RUNE_C(0x0108E0), RUNE_C(0x0108FF), BLK_HATRAN},
{RUNE_C(0x010900), RUNE_C(0x01091F), BLK_PHOENICIAN},
{RUNE_C(0x010920), RUNE_C(0x01093F), BLK_LYDIAN},
{RUNE_C(0x010980), RUNE_C(0x01099F), BLK_MEROITIC_HIEROGLYPHS},
{RUNE_C(0x0109A0), RUNE_C(0x0109FF), BLK_MEROITIC_CURSIVE},
{RUNE_C(0x010A00), RUNE_C(0x010A5F), BLK_KHAROSHTHI},
{RUNE_C(0x010A60), RUNE_C(0x010A7F), BLK_OLD_SOUTH_ARABIAN},
{RUNE_C(0x010A80), RUNE_C(0x010A9F), BLK_OLD_NORTH_ARABIAN},
{RUNE_C(0x010AC0), RUNE_C(0x010AFF), BLK_MANICHAEAN},
{RUNE_C(0x010B00), RUNE_C(0x010B3F), BLK_AVESTAN},
{RUNE_C(0x010B40), RUNE_C(0x010B5F), BLK_INSCRIPTIONAL_PARTHIAN},
{RUNE_C(0x010B60), RUNE_C(0x010B7F), BLK_INSCRIPTIONAL_PAHLAVI},
{RUNE_C(0x010B80), RUNE_C(0x010BAF), BLK_PSALTER_PAHLAVI},
{RUNE_C(0x010C00), RUNE_C(0x010C4F), BLK_OLD_TURKIC},
{RUNE_C(0x010C80), RUNE_C(0x010CFF), BLK_OLD_HUNGARIAN},
{RUNE_C(0x010D00), RUNE_C(0x010D3F), BLK_HANIFI_ROHINGYA},
{RUNE_C(0x010E60), RUNE_C(0x010E7F), BLK_RUMI},
{RUNE_C(0x010E80), RUNE_C(0x010EBF), BLK_YEZIDI},
{RUNE_C(0x010EC0), RUNE_C(0x010EFF), BLK_ARABIC_EXT_C},
{RUNE_C(0x010F00), RUNE_C(0x010F2F), BLK_OLD_SOGDIAN},
{RUNE_C(0x010F30), RUNE_C(0x010F6F), BLK_SOGDIAN},
{RUNE_C(0x010F70), RUNE_C(0x010FAF), BLK_OLD_UYGHUR},
{RUNE_C(0x010FB0), RUNE_C(0x010FDF), BLK_CHORASMIAN},
{RUNE_C(0x010FE0), RUNE_C(0x010FFF), BLK_ELYMAIC},
{RUNE_C(0x011000), RUNE_C(0x01107F), BLK_BRAHMI},
{RUNE_C(0x011080), RUNE_C(0x0110CF), BLK_KAITHI},
{RUNE_C(0x0110D0), RUNE_C(0x0110FF), BLK_SORA_SOMPENG},
{RUNE_C(0x011100), RUNE_C(0x01114F), BLK_CHAKMA},
{RUNE_C(0x011150), RUNE_C(0x01117F), BLK_MAHAJANI},
{RUNE_C(0x011180), RUNE_C(0x0111DF), BLK_SHARADA},
{RUNE_C(0x0111E0), RUNE_C(0x0111FF), BLK_SINHALA_ARCHAIC_NUMBERS},
{RUNE_C(0x011200), RUNE_C(0x01124F), BLK_KHOJKI},
{RUNE_C(0x011280), RUNE_C(0x0112AF), BLK_MULTANI},
{RUNE_C(0x0112B0), RUNE_C(0x0112FF), BLK_KHUDAWADI},
{RUNE_C(0x011300), RUNE_C(0x01137F), BLK_GRANTHA},
{RUNE_C(0x011400), RUNE_C(0x01147F), BLK_NEWA},
{RUNE_C(0x011480), RUNE_C(0x0114DF), BLK_TIRHUTA},
{RUNE_C(0x011580), RUNE_C(0x0115FF), BLK_SIDDHAM},
{RUNE_C(0x011600), RUNE_C(0x01165F), BLK_MODI},
{RUNE_C(0x011660), RUNE_C(0x01167F), BLK_MONGOLIAN_SUP},
{RUNE_C(0x011680), RUNE_C(0x0116CF), BLK_TAKRI},
{RUNE_C(0x011700), RUNE_C(0x01174F), BLK_AHOM},
{RUNE_C(0x011800), RUNE_C(0x01184F), BLK_DOGRA},
{RUNE_C(0x0118A0), RUNE_C(0x0118FF), BLK_WARANG_CITI},
{RUNE_C(0x011900), RUNE_C(0x01195F), BLK_DIVES_AKURU},
{RUNE_C(0x0119A0), RUNE_C(0x0119FF), BLK_NANDINAGARI},
{RUNE_C(0x011A00), RUNE_C(0x011A4F), BLK_ZANABAZAR_SQUARE},
{RUNE_C(0x011A50), RUNE_C(0x011AAF), BLK_SOYOMBO},
{RUNE_C(0x011AB0), RUNE_C(0x011ABF), BLK_UCAS_EXT_A},
{RUNE_C(0x011AC0), RUNE_C(0x011AFF), BLK_PAU_CIN_HAU},
{RUNE_C(0x011B00), RUNE_C(0x011B5F), BLK_DEVANAGARI_EXT_A},
{RUNE_C(0x011C00), RUNE_C(0x011C6F), BLK_BHAIKSUKI},
{RUNE_C(0x011C70), RUNE_C(0x011CBF), BLK_MARCHEN},
{RUNE_C(0x011D00), RUNE_C(0x011D5F), BLK_MASARAM_GONDI},
{RUNE_C(0x011D60), RUNE_C(0x011DAF), BLK_GUNJALA_GONDI},
{RUNE_C(0x011EE0), RUNE_C(0x011EFF), BLK_MAKASAR},
{RUNE_C(0x011F00), RUNE_C(0x011F5F), BLK_KAWI},
{RUNE_C(0x011FB0), RUNE_C(0x011FBF), BLK_LISU_SUP},
{RUNE_C(0x011FC0), RUNE_C(0x011FFF), BLK_TAMIL_SUP},
{RUNE_C(0x012000), RUNE_C(0x0123FF), BLK_CUNEIFORM},
{RUNE_C(0x012400), RUNE_C(0x01247F), BLK_CUNEIFORM_NUMBERS},
{RUNE_C(0x012480), RUNE_C(0x01254F), BLK_EARLY_DYNASTIC_CUNEIFORM},
{RUNE_C(0x012F90), RUNE_C(0x012FFF), BLK_CYPRO_MINOAN},
{RUNE_C(0x013000), RUNE_C(0x01342F), BLK_EGYPTIAN_HIEROGLYPHS},
{RUNE_C(0x013430), RUNE_C(0x01345F), BLK_EGYPTIAN_HIEROGLYPH_FORMAT_CONTROLS},
{RUNE_C(0x014400), RUNE_C(0x01467F), BLK_ANATOLIAN_HIEROGLYPHS},
{RUNE_C(0x016800), RUNE_C(0x016A3F), BLK_BAMUM_SUP},
{RUNE_C(0x016A40), RUNE_C(0x016A6F), BLK_MRO},
{RUNE_C(0x016A70), RUNE_C(0x016ACF), BLK_TANGSA},
{RUNE_C(0x016AD0), RUNE_C(0x016AFF), BLK_BASSA_VAH},
{RUNE_C(0x016B00), RUNE_C(0x016B8F), BLK_PAHAWH_HMONG},
{RUNE_C(0x016E40), RUNE_C(0x016E9F), BLK_MEDEFAIDRIN},
{RUNE_C(0x016F00), RUNE_C(0x016F9F), BLK_MIAO},
{RUNE_C(0x016FE0), RUNE_C(0x016FFF), BLK_IDEOGRAPHIC_SYMBOLS},
{RUNE_C(0x017000), RUNE_C(0x0187FF), BLK_TANGUT},
{RUNE_C(0x018800), RUNE_C(0x018AFF), BLK_TANGUT_COMPONENTS},
{RUNE_C(0x018B00), RUNE_C(0x018CFF), BLK_KHITAN_SMALL_SCRIPT},
{RUNE_C(0x018D00), RUNE_C(0x018D7F), BLK_TANGUT_SUP},
{RUNE_C(0x01AFF0), RUNE_C(0x01AFFF), BLK_KANA_EXT_B},
{RUNE_C(0x01B000), RUNE_C(0x01B0FF), BLK_KANA_SUP},
{RUNE_C(0x01B100), RUNE_C(0x01B12F), BLK_KANA_EXT_A},
{RUNE_C(0x01B130), RUNE_C(0x01B16F), BLK_SMALL_KANA_EXT},
{RUNE_C(0x01B170), RUNE_C(0x01B2FF), BLK_NUSHU},
{RUNE_C(0x01BC00), RUNE_C(0x01BC9F), BLK_DUPLOYAN},
{RUNE_C(0x01BCA0), RUNE_C(0x01BCAF), BLK_SHORTHAND_FORMAT_CONTROLS},
{RUNE_C(0x01CF00), RUNE_C(0x01CFCF), BLK_ZNAMENNY_MUSIC},
{RUNE_C(0x01D000), RUNE_C(0x01D0FF), BLK_BYZANTINE_MUSIC},
{RUNE_C(0x01D100), RUNE_C(0x01D1FF), BLK_MUSIC},
{RUNE_C(0x01D200), RUNE_C(0x01D24F), BLK_ANCIENT_GREEK_MUSIC},
{RUNE_C(0x01D2C0), RUNE_C(0x01D2DF), BLK_KAKTOVIK_NUMERALS},
{RUNE_C(0x01D2E0), RUNE_C(0x01D2FF), BLK_MAYAN_NUMERALS},
{RUNE_C(0x01D300), RUNE_C(0x01D35F), BLK_TAI_XUAN_JING},
{RUNE_C(0x01D360), RUNE_C(0x01D37F), BLK_COUNTING_ROD},
{RUNE_C(0x01D400), RUNE_C(0x01D7FF), BLK_MATH_ALPHANUM},
{RUNE_C(0x01D800), RUNE_C(0x01DAAF), BLK_SUTTON_SIGNWRITING},
{RUNE_C(0x01DF00), RUNE_C(0x01DFFF), BLK_LATIN_EXT_G},
{RUNE_C(0x01E000), RUNE_C(0x01E02F), BLK_GLAGOLITIC_SUP},
{RUNE_C(0x01E030), RUNE_C(0x01E08F), BLK_CYRILLIC_EXT_D},
{RUNE_C(0x01E100), RUNE_C(0x01E14F), BLK_NYIAKENG_PUACHUE_HMONG},
{RUNE_C(0x01E290), RUNE_C(0x01E2BF), BLK_TOTO},
{RUNE_C(0x01E2C0), RUNE_C(0x01E2FF), BLK_WANCHO},
{RUNE_C(0x01E4D0), RUNE_C(0x01E4FF), BLK_NAG_MUNDARI},
{RUNE_C(0x01E7E0), RUNE_C(0x01E7FF), BLK_ETHIOPIC_EXT_B},
{RUNE_C(0x01E800), RUNE_C(0x01E8DF), BLK_MENDE_KIKAKUI},
{RUNE_C(0x01E900), RUNE_C(0x01E95F), BLK_ADLAM},
{RUNE_C(0x01EC70), RUNE_C(0x01ECBF), BLK_INDIC_SIYAQ_NUMBERS},
{RUNE_C(0x01ED00), RUNE_C(0x01ED4F), BLK_OTTOMAN_SIYAQ_NUMBERS},
{RUNE_C(0x01EE00), RUNE_C(0x01EEFF), BLK_ARABIC_MATH},
{RUNE_C(0x01F000), RUNE_C(0x01F02F), BLK_MAHJONG},
{RUNE_C(0x01F030), RUNE_C(0x01F09F), BLK_DOMINO},
{RUNE_C(0x01F0A0), RUNE_C(0x01F0FF), BLK_PLAYING_CARDS},
{RUNE_C(0x01F100), RUNE_C(0x01F1FF), BLK_ENCLOSED_ALPHANUM_SUP},
{RUNE_C(0x01F200), RUNE_C(0x01F2FF), BLK_ENCLOSED_IDEOGRAPHIC_SUP},
{RUNE_C(0x01F300), RUNE_C(0x01F5FF), BLK_MISC_PICTOGRAPHS},
{RUNE_C(0x01F600), RUNE_C(0x01F64F), BLK_EMOTICONS},
{RUNE_C(0x01F650), RUNE_C(0x01F67F), BLK_ORNAMENTAL_DINGBATS},
{RUNE_C(0x01F680), RUNE_C(0x01F6FF), BLK_TRANSPORT_AND_MAP},
{RUNE_C(0x01F700), RUNE_C(0x01F77F), BLK_ALCHEMICAL},
{RUNE_C(0x01F780), RUNE_C(0x01F7FF), BLK_GEOMETRIC_SHAPES_EXT},
{RUNE_C(0x01F800), RUNE_C(0x01F8FF), BLK_SUP_ARROWS_C},
{RUNE_C(0x01F900), RUNE_C(0x01F9FF), BLK_SUP_SYMBOLS_AND_PICTOGRAPHS},
{RUNE_C(0x01FA00), RUNE_C(0x01FA6F), BLK_CHESS_SYMBOLS},
{RUNE_C(0x01FA70), RUNE_C(0x01FAFF), BLK_SYMBOLS_AND_PICTOGRAPHS_EXT_A},
{RUNE_C(0x01FB00), RUNE_C(0x01FBFF), BLK_SYMBOLS_FOR_LEGACY_COMPUTING},
{RUNE_C(0x020000), RUNE_C(0x02A6DF), BLK_CJK_EXT_B},
{RUNE_C(0x02A700), RUNE_C(0x02B73F), BLK_CJK_EXT_C},
{RUNE_C(0x02B740), RUNE_C(0x02B81F), BLK_CJK_EXT_D},
{RUNE_C(0x02B820), RUNE_C(0x02CEAF), BLK_CJK_EXT_E},
{RUNE_C(0x02CEB0), RUNE_C(0x02EBEF), BLK_CJK_EXT_F},
{RUNE_C(0x02EBF0), RUNE_C(0x02EE5F), BLK_CJK_EXT_I},
{RUNE_C(0x02F800), RUNE_C(0x02FA1F), BLK_CJK_COMPAT_IDEOGRAPHS_SUP},
{RUNE_C(0x030000), RUNE_C(0x03134F), BLK_CJK_EXT_G},
{RUNE_C(0x031350), RUNE_C(0x0323AF), BLK_CJK_EXT_H},
{RUNE_C(0x0E0000), RUNE_C(0x0E007F), BLK_TAGS},
{RUNE_C(0x0E0100), RUNE_C(0x0E01EF), BLK_VS_SUP},
{RUNE_C(0x0F0000), RUNE_C(0x0FFFFF), BLK_SUP_PUA_A},
{RUNE_C(0x100000), RUNE_C(0x10FFFF), BLK_SUP_PUA_B},
};
__MLIB_DEFINE_BSEARCH(enum uprop_blk, lookup, BLK_NB)
enum uprop_blk
uprop_get_blk(rune ch)
{
return ch <= lengthof(lookup_lat1) ? lookup_lat1[ch] : mlib_lookup(ch);
}
|