aboutsummaryrefslogtreecommitdiff
path: root/lib/unicode/prop/uprop_is_cwl.c
blob: 82152a23e8be9a6ba9322a73e237051ddbf229f9 (plain) (blame)
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
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
/* This file is autogenerated by gen/prop/bool-props; DO NOT EDIT. */

#include "_bsearch.h"
#include "bitset.h"
#include "rune.h"
#include "unicode/prop.h"

/* clang-format off */

static constexpr bitset(bs, LATIN1_MAX) = {
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0xFE, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0xFF, 0xFF, 0x7F, 0x7F, 0x00, 0x00, 0x00, 0x00,
};

static const struct {
	rune lo, hi;
} lookup[] = {
	{RUNE_C(0x000100), RUNE_C(0x000100)},
	{RUNE_C(0x000102), RUNE_C(0x000102)},
	{RUNE_C(0x000104), RUNE_C(0x000104)},
	{RUNE_C(0x000106), RUNE_C(0x000106)},
	{RUNE_C(0x000108), RUNE_C(0x000108)},
	{RUNE_C(0x00010A), RUNE_C(0x00010A)},
	{RUNE_C(0x00010C), RUNE_C(0x00010C)},
	{RUNE_C(0x00010E), RUNE_C(0x00010E)},
	{RUNE_C(0x000110), RUNE_C(0x000110)},
	{RUNE_C(0x000112), RUNE_C(0x000112)},
	{RUNE_C(0x000114), RUNE_C(0x000114)},
	{RUNE_C(0x000116), RUNE_C(0x000116)},
	{RUNE_C(0x000118), RUNE_C(0x000118)},
	{RUNE_C(0x00011A), RUNE_C(0x00011A)},
	{RUNE_C(0x00011C), RUNE_C(0x00011C)},
	{RUNE_C(0x00011E), RUNE_C(0x00011E)},
	{RUNE_C(0x000120), RUNE_C(0x000120)},
	{RUNE_C(0x000122), RUNE_C(0x000122)},
	{RUNE_C(0x000124), RUNE_C(0x000124)},
	{RUNE_C(0x000126), RUNE_C(0x000126)},
	{RUNE_C(0x000128), RUNE_C(0x000128)},
	{RUNE_C(0x00012A), RUNE_C(0x00012A)},
	{RUNE_C(0x00012C), RUNE_C(0x00012C)},
	{RUNE_C(0x00012E), RUNE_C(0x00012E)},
	{RUNE_C(0x000130), RUNE_C(0x000130)},
	{RUNE_C(0x000132), RUNE_C(0x000132)},
	{RUNE_C(0x000134), RUNE_C(0x000134)},
	{RUNE_C(0x000136), RUNE_C(0x000136)},
	{RUNE_C(0x000139), RUNE_C(0x000139)},
	{RUNE_C(0x00013B), RUNE_C(0x00013B)},
	{RUNE_C(0x00013D), RUNE_C(0x00013D)},
	{RUNE_C(0x00013F), RUNE_C(0x00013F)},
	{RUNE_C(0x000141), RUNE_C(0x000141)},
	{RUNE_C(0x000143), RUNE_C(0x000143)},
	{RUNE_C(0x000145), RUNE_C(0x000145)},
	{RUNE_C(0x000147), RUNE_C(0x000147)},
	{RUNE_C(0x00014A), RUNE_C(0x00014A)},
	{RUNE_C(0x00014C), RUNE_C(0x00014C)},
	{RUNE_C(0x00014E), RUNE_C(0x00014E)},
	{RUNE_C(0x000150), RUNE_C(0x000150)},
	{RUNE_C(0x000152), RUNE_C(0x000152)},
	{RUNE_C(0x000154), RUNE_C(0x000154)},
	{RUNE_C(0x000156), RUNE_C(0x000156)},
	{RUNE_C(0x000158), RUNE_C(0x000158)},
	{RUNE_C(0x00015A), RUNE_C(0x00015A)},
	{RUNE_C(0x00015C), RUNE_C(0x00015C)},
	{RUNE_C(0x00015E), RUNE_C(0x00015E)},
	{RUNE_C(0x000160), RUNE_C(0x000160)},
	{RUNE_C(0x000162), RUNE_C(0x000162)},
	{RUNE_C(0x000164), RUNE_C(0x000164)},
	{RUNE_C(0x000166), RUNE_C(0x000166)},
	{RUNE_C(0x000168), RUNE_C(0x000168)},
	{RUNE_C(0x00016A), RUNE_C(0x00016A)},
	{RUNE_C(0x00016C), RUNE_C(0x00016C)},
	{RUNE_C(0x00016E), RUNE_C(0x00016E)},
	{RUNE_C(0x000170), RUNE_C(0x000170)},
	{RUNE_C(0x000172), RUNE_C(0x000172)},
	{RUNE_C(0x000174), RUNE_C(0x000174)},
	{RUNE_C(0x000176), RUNE_C(0x000176)},
	{RUNE_C(0x000178), RUNE_C(0x000179)},
	{RUNE_C(0x00017B), RUNE_C(0x00017B)},
	{RUNE_C(0x00017D), RUNE_C(0x00017D)},
	{RUNE_C(0x000181), RUNE_C(0x000182)},
	{RUNE_C(0x000184), RUNE_C(0x000184)},
	{RUNE_C(0x000186), RUNE_C(0x000187)},
	{RUNE_C(0x000189), RUNE_C(0x00018B)},
	{RUNE_C(0x00018E), RUNE_C(0x000191)},
	{RUNE_C(0x000193), RUNE_C(0x000194)},
	{RUNE_C(0x000196), RUNE_C(0x000198)},
	{RUNE_C(0x00019C), RUNE_C(0x00019D)},
	{RUNE_C(0x00019F), RUNE_C(0x0001A0)},
	{RUNE_C(0x0001A2), RUNE_C(0x0001A2)},
	{RUNE_C(0x0001A4), RUNE_C(0x0001A4)},
	{RUNE_C(0x0001A6), RUNE_C(0x0001A7)},
	{RUNE_C(0x0001A9), RUNE_C(0x0001A9)},
	{RUNE_C(0x0001AC), RUNE_C(0x0001AC)},
	{RUNE_C(0x0001AE), RUNE_C(0x0001AF)},
	{RUNE_C(0x0001B1), RUNE_C(0x0001B3)},
	{RUNE_C(0x0001B5), RUNE_C(0x0001B5)},
	{RUNE_C(0x0001B7), RUNE_C(0x0001B8)},
	{RUNE_C(0x0001BC), RUNE_C(0x0001BC)},
	{RUNE_C(0x0001C4), RUNE_C(0x0001C5)},
	{RUNE_C(0x0001C7), RUNE_C(0x0001C8)},
	{RUNE_C(0x0001CA), RUNE_C(0x0001CB)},
	{RUNE_C(0x0001CD), RUNE_C(0x0001CD)},
	{RUNE_C(0x0001CF), RUNE_C(0x0001CF)},
	{RUNE_C(0x0001D1), RUNE_C(0x0001D1)},
	{RUNE_C(0x0001D3), RUNE_C(0x0001D3)},
	{RUNE_C(0x0001D5), RUNE_C(0x0001D5)},
	{RUNE_C(0x0001D7), RUNE_C(0x0001D7)},
	{RUNE_C(0x0001D9), RUNE_C(0x0001D9)},
	{RUNE_C(0x0001DB), RUNE_C(0x0001DB)},
	{RUNE_C(0x0001DE), RUNE_C(0x0001DE)},
	{RUNE_C(0x0001E0), RUNE_C(0x0001E0)},
	{RUNE_C(0x0001E2), RUNE_C(0x0001E2)},
	{RUNE_C(0x0001E4), RUNE_C(0x0001E4)},
	{RUNE_C(0x0001E6), RUNE_C(0x0001E6)},
	{RUNE_C(0x0001E8), RUNE_C(0x0001E8)},
	{RUNE_C(0x0001EA), RUNE_C(0x0001EA)},
	{RUNE_C(0x0001EC), RUNE_C(0x0001EC)},
	{RUNE_C(0x0001EE), RUNE_C(0x0001EE)},
	{RUNE_C(0x0001F1), RUNE_C(0x0001F2)},
	{RUNE_C(0x0001F4), RUNE_C(0x0001F4)},
	{RUNE_C(0x0001F6), RUNE_C(0x0001F8)},
	{RUNE_C(0x0001FA), RUNE_C(0x0001FA)},
	{RUNE_C(0x0001FC), RUNE_C(0x0001FC)},
	{RUNE_C(0x0001FE), RUNE_C(0x0001FE)},
	{RUNE_C(0x000200), RUNE_C(0x000200)},
	{RUNE_C(0x000202), RUNE_C(0x000202)},
	{RUNE_C(0x000204), RUNE_C(0x000204)},
	{RUNE_C(0x000206), RUNE_C(0x000206)},
	{RUNE_C(0x000208), RUNE_C(0x000208)},
	{RUNE_C(0x00020A), RUNE_C(0x00020A)},
	{RUNE_C(0x00020C), RUNE_C(0x00020C)},
	{RUNE_C(0x00020E), RUNE_C(0x00020E)},
	{RUNE_C(0x000210), RUNE_C(0x000210)},
	{RUNE_C(0x000212), RUNE_C(0x000212)},
	{RUNE_C(0x000214), RUNE_C(0x000214)},
	{RUNE_C(0x000216), RUNE_C(0x000216)},
	{RUNE_C(0x000218), RUNE_C(0x000218)},
	{RUNE_C(0x00021A), RUNE_C(0x00021A)},
	{RUNE_C(0x00021C), RUNE_C(0x00021C)},
	{RUNE_C(0x00021E), RUNE_C(0x00021E)},
	{RUNE_C(0x000220), RUNE_C(0x000220)},
	{RUNE_C(0x000222), RUNE_C(0x000222)},
	{RUNE_C(0x000224), RUNE_C(0x000224)},
	{RUNE_C(0x000226), RUNE_C(0x000226)},
	{RUNE_C(0x000228), RUNE_C(0x000228)},
	{RUNE_C(0x00022A), RUNE_C(0x00022A)},
	{RUNE_C(0x00022C), RUNE_C(0x00022C)},
	{RUNE_C(0x00022E), RUNE_C(0x00022E)},
	{RUNE_C(0x000230), RUNE_C(0x000230)},
	{RUNE_C(0x000232), RUNE_C(0x000232)},
	{RUNE_C(0x00023A), RUNE_C(0x00023B)},
	{RUNE_C(0x00023D), RUNE_C(0x00023E)},
	{RUNE_C(0x000241), RUNE_C(0x000241)},
	{RUNE_C(0x000243), RUNE_C(0x000246)},
	{RUNE_C(0x000248), RUNE_C(0x000248)},
	{RUNE_C(0x00024A), RUNE_C(0x00024A)},
	{RUNE_C(0x00024C), RUNE_C(0x00024C)},
	{RUNE_C(0x00024E), RUNE_C(0x00024E)},
	{RUNE_C(0x000370), RUNE_C(0x000370)},
	{RUNE_C(0x000372), RUNE_C(0x000372)},
	{RUNE_C(0x000376), RUNE_C(0x000376)},
	{RUNE_C(0x00037F), RUNE_C(0x00037F)},
	{RUNE_C(0x000386), RUNE_C(0x000386)},
	{RUNE_C(0x000388), RUNE_C(0x00038A)},
	{RUNE_C(0x00038C), RUNE_C(0x00038C)},
	{RUNE_C(0x00038E), RUNE_C(0x00038F)},
	{RUNE_C(0x000391), RUNE_C(0x0003A1)},
	{RUNE_C(0x0003A3), RUNE_C(0x0003AB)},
	{RUNE_C(0x0003CF), RUNE_C(0x0003CF)},
	{RUNE_C(0x0003D8), RUNE_C(0x0003D8)},
	{RUNE_C(0x0003DA), RUNE_C(0x0003DA)},
	{RUNE_C(0x0003DC), RUNE_C(0x0003DC)},
	{RUNE_C(0x0003DE), RUNE_C(0x0003DE)},
	{RUNE_C(0x0003E0), RUNE_C(0x0003E0)},
	{RUNE_C(0x0003E2), RUNE_C(0x0003E2)},
	{RUNE_C(0x0003E4), RUNE_C(0x0003E4)},
	{RUNE_C(0x0003E6), RUNE_C(0x0003E6)},
	{RUNE_C(0x0003E8), RUNE_C(0x0003E8)},
	{RUNE_C(0x0003EA), RUNE_C(0x0003EA)},
	{RUNE_C(0x0003EC), RUNE_C(0x0003EC)},
	{RUNE_C(0x0003EE), RUNE_C(0x0003EE)},
	{RUNE_C(0x0003F4), RUNE_C(0x0003F4)},
	{RUNE_C(0x0003F7), RUNE_C(0x0003F7)},
	{RUNE_C(0x0003F9), RUNE_C(0x0003FA)},
	{RUNE_C(0x0003FD), RUNE_C(0x00042F)},
	{RUNE_C(0x000460), RUNE_C(0x000460)},
	{RUNE_C(0x000462), RUNE_C(0x000462)},
	{RUNE_C(0x000464), RUNE_C(0x000464)},
	{RUNE_C(0x000466), RUNE_C(0x000466)},
	{RUNE_C(0x000468), RUNE_C(0x000468)},
	{RUNE_C(0x00046A), RUNE_C(0x00046A)},
	{RUNE_C(0x00046C), RUNE_C(0x00046C)},
	{RUNE_C(0x00046E), RUNE_C(0x00046E)},
	{RUNE_C(0x000470), RUNE_C(0x000470)},
	{RUNE_C(0x000472), RUNE_C(0x000472)},
	{RUNE_C(0x000474), RUNE_C(0x000474)},
	{RUNE_C(0x000476), RUNE_C(0x000476)},
	{RUNE_C(0x000478), RUNE_C(0x000478)},
	{RUNE_C(0x00047A), RUNE_C(0x00047A)},
	{RUNE_C(0x00047C), RUNE_C(0x00047C)},
	{RUNE_C(0x00047E), RUNE_C(0x00047E)},
	{RUNE_C(0x000480), RUNE_C(0x000480)},
	{RUNE_C(0x00048A), RUNE_C(0x00048A)},
	{RUNE_C(0x00048C), RUNE_C(0x00048C)},
	{RUNE_C(0x00048E), RUNE_C(0x00048E)},
	{RUNE_C(0x000490), RUNE_C(0x000490)},
	{RUNE_C(0x000492), RUNE_C(0x000492)},
	{RUNE_C(0x000494), RUNE_C(0x000494)},
	{RUNE_C(0x000496), RUNE_C(0x000496)},
	{RUNE_C(0x000498), RUNE_C(0x000498)},
	{RUNE_C(0x00049A), RUNE_C(0x00049A)},
	{RUNE_C(0x00049C), RUNE_C(0x00049C)},
	{RUNE_C(0x00049E), RUNE_C(0x00049E)},
	{RUNE_C(0x0004A0), RUNE_C(0x0004A0)},
	{RUNE_C(0x0004A2), RUNE_C(0x0004A2)},
	{RUNE_C(0x0004A4), RUNE_C(0x0004A4)},
	{RUNE_C(0x0004A6), RUNE_C(0x0004A6)},
	{RUNE_C(0x0004A8), RUNE_C(0x0004A8)},
	{RUNE_C(0x0004AA), RUNE_C(0x0004AA)},
	{RUNE_C(0x0004AC), RUNE_C(0x0004AC)},
	{RUNE_C(0x0004AE), RUNE_C(0x0004AE)},
	{RUNE_C(0x0004B0), RUNE_C(0x0004B0)},
	{RUNE_C(0x0004B2), RUNE_C(0x0004B2)},
	{RUNE_C(0x0004B4), RUNE_C(0x0004B4)},
	{RUNE_C(0x0004B6), RUNE_C(0x0004B6)},
	{RUNE_C(0x0004B8), RUNE_C(0x0004B8)},
	{RUNE_C(0x0004BA), RUNE_C(0x0004BA)},
	{RUNE_C(0x0004BC), RUNE_C(0x0004BC)},
	{RUNE_C(0x0004BE), RUNE_C(0x0004BE)},
	{RUNE_C(0x0004C0), RUNE_C(0x0004C1)},
	{RUNE_C(0x0004C3), RUNE_C(0x0004C3)},
	{RUNE_C(0x0004C5), RUNE_C(0x0004C5)},
	{RUNE_C(0x0004C7), RUNE_C(0x0004C7)},
	{RUNE_C(0x0004C9), RUNE_C(0x0004C9)},
	{RUNE_C(0x0004CB), RUNE_C(0x0004CB)},
	{RUNE_C(0x0004CD), RUNE_C(0x0004CD)},
	{RUNE_C(0x0004D0), RUNE_C(0x0004D0)},
	{RUNE_C(0x0004D2), RUNE_C(0x0004D2)},
	{RUNE_C(0x0004D4), RUNE_C(0x0004D4)},
	{RUNE_C(0x0004D6), RUNE_C(0x0004D6)},
	{RUNE_C(0x0004D8), RUNE_C(0x0004D8)},
	{RUNE_C(0x0004DA), RUNE_C(0x0004DA)},
	{RUNE_C(0x0004DC), RUNE_C(0x0004DC)},
	{RUNE_C(0x0004DE), RUNE_C(0x0004DE)},
	{RUNE_C(0x0004E0), RUNE_C(0x0004E0)},
	{RUNE_C(0x0004E2), RUNE_C(0x0004E2)},
	{RUNE_C(0x0004E4), RUNE_C(0x0004E4)},
	{RUNE_C(0x0004E6), RUNE_C(0x0004E6)},
	{RUNE_C(0x0004E8), RUNE_C(0x0004E8)},
	{RUNE_C(0x0004EA), RUNE_C(0x0004EA)},
	{RUNE_C(0x0004EC), RUNE_C(0x0004EC)},
	{RUNE_C(0x0004EE), RUNE_C(0x0004EE)},
	{RUNE_C(0x0004F0), RUNE_C(0x0004F0)},
	{RUNE_C(0x0004F2), RUNE_C(0x0004F2)},
	{RUNE_C(0x0004F4), RUNE_C(0x0004F4)},
	{RUNE_C(0x0004F6), RUNE_C(0x0004F6)},
	{RUNE_C(0x0004F8), RUNE_C(0x0004F8)},
	{RUNE_C(0x0004FA), RUNE_C(0x0004FA)},
	{RUNE_C(0x0004FC), RUNE_C(0x0004FC)},
	{RUNE_C(0x0004FE), RUNE_C(0x0004FE)},
	{RUNE_C(0x000500), RUNE_C(0x000500)},
	{RUNE_C(0x000502), RUNE_C(0x000502)},
	{RUNE_C(0x000504), RUNE_C(0x000504)},
	{RUNE_C(0x000506), RUNE_C(0x000506)},
	{RUNE_C(0x000508), RUNE_C(0x000508)},
	{RUNE_C(0x00050A), RUNE_C(0x00050A)},
	{RUNE_C(0x00050C), RUNE_C(0x00050C)},
	{RUNE_C(0x00050E), RUNE_C(0x00050E)},
	{RUNE_C(0x000510), RUNE_C(0x000510)},
	{RUNE_C(0x000512), RUNE_C(0x000512)},
	{RUNE_C(0x000514), RUNE_C(0x000514)},
	{RUNE_C(0x000516), RUNE_C(0x000516)},
	{RUNE_C(0x000518), RUNE_C(0x000518)},
	{RUNE_C(0x00051A), RUNE_C(0x00051A)},
	{RUNE_C(0x00051C), RUNE_C(0x00051C)},
	{RUNE_C(0x00051E), RUNE_C(0x00051E)},
	{RUNE_C(0x000520), RUNE_C(0x000520)},
	{RUNE_C(0x000522), RUNE_C(0x000522)},
	{RUNE_C(0x000524), RUNE_C(0x000524)},
	{RUNE_C(0x000526), RUNE_C(0x000526)},
	{RUNE_C(0x000528), RUNE_C(0x000528)},
	{RUNE_C(0x00052A), RUNE_C(0x00052A)},
	{RUNE_C(0x00052C), RUNE_C(0x00052C)},
	{RUNE_C(0x00052E), RUNE_C(0x00052E)},
	{RUNE_C(0x000531), RUNE_C(0x000556)},
	{RUNE_C(0x0010A0), RUNE_C(0x0010C5)},
	{RUNE_C(0x0010C7), RUNE_C(0x0010C7)},
	{RUNE_C(0x0010CD), RUNE_C(0x0010CD)},
	{RUNE_C(0x0013A0), RUNE_C(0x0013F5)},
	{RUNE_C(0x001C90), RUNE_C(0x001CBA)},
	{RUNE_C(0x001CBD), RUNE_C(0x001CBF)},
	{RUNE_C(0x001E00), RUNE_C(0x001E00)},
	{RUNE_C(0x001E02), RUNE_C(0x001E02)},
	{RUNE_C(0x001E04), RUNE_C(0x001E04)},
	{RUNE_C(0x001E06), RUNE_C(0x001E06)},
	{RUNE_C(0x001E08), RUNE_C(0x001E08)},
	{RUNE_C(0x001E0A), RUNE_C(0x001E0A)},
	{RUNE_C(0x001E0C), RUNE_C(0x001E0C)},
	{RUNE_C(0x001E0E), RUNE_C(0x001E0E)},
	{RUNE_C(0x001E10), RUNE_C(0x001E10)},
	{RUNE_C(0x001E12), RUNE_C(0x001E12)},
	{RUNE_C(0x001E14), RUNE_C(0x001E14)},
	{RUNE_C(0x001E16), RUNE_C(0x001E16)},
	{RUNE_C(0x001E18), RUNE_C(0x001E18)},
	{RUNE_C(0x001E1A), RUNE_C(0x001E1A)},
	{RUNE_C(0x001E1C), RUNE_C(0x001E1C)},
	{RUNE_C(0x001E1E), RUNE_C(0x001E1E)},
	{RUNE_C(0x001E20), RUNE_C(0x001E20)},
	{RUNE_C(0x001E22), RUNE_C(0x001E22)},
	{RUNE_C(0x001E24), RUNE_C(0x001E24)},
	{RUNE_C(0x001E26), RUNE_C(0x001E26)},
	{RUNE_C(0x001E28), RUNE_C(0x001E28)},
	{RUNE_C(0x001E2A), RUNE_C(0x001E2A)},
	{RUNE_C(0x001E2C), RUNE_C(0x001E2C)},
	{RUNE_C(0x001E2E), RUNE_C(0x001E2E)},
	{RUNE_C(0x001E30), RUNE_C(0x001E30)},
	{RUNE_C(0x001E32), RUNE_C(0x001E32)},
	{RUNE_C(0x001E34), RUNE_C(0x001E34)},
	{RUNE_C(0x001E36), RUNE_C(0x001E36)},
	{RUNE_C(0x001E38), RUNE_C(0x001E38)},
	{RUNE_C(0x001E3A), RUNE_C(0x001E3A)},
	{RUNE_C(0x001E3C), RUNE_C(0x001E3C)},
	{RUNE_C(0x001E3E), RUNE_C(0x001E3E)},
	{RUNE_C(0x001E40), RUNE_C(0x001E40)},
	{RUNE_C(0x001E42), RUNE_C(0x001E42)},
	{RUNE_C(0x001E44), RUNE_C(0x001E44)},
	{RUNE_C(0x001E46), RUNE_C(0x001E46)},
	{RUNE_C(0x001E48), RUNE_C(0x001E48)},
	{RUNE_C(0x001E4A), RUNE_C(0x001E4A)},
	{RUNE_C(0x001E4C), RUNE_C(0x001E4C)},
	{RUNE_C(0x001E4E), RUNE_C(0x001E4E)},
	{RUNE_C(0x001E50), RUNE_C(0x001E50)},
	{RUNE_C(0x001E52), RUNE_C(0x001E52)},
	{RUNE_C(0x001E54), RUNE_C(0x001E54)},
	{RUNE_C(0x001E56), RUNE_C(0x001E56)},
	{RUNE_C(0x001E58), RUNE_C(0x001E58)},
	{RUNE_C(0x001E5A), RUNE_C(0x001E5A)},
	{RUNE_C(0x001E5C), RUNE_C(0x001E5C)},
	{RUNE_C(0x001E5E), RUNE_C(0x001E5E)},
	{RUNE_C(0x001E60), RUNE_C(0x001E60)},
	{RUNE_C(0x001E62), RUNE_C(0x001E62)},
	{RUNE_C(0x001E64), RUNE_C(0x001E64)},
	{RUNE_C(0x001E66), RUNE_C(0x001E66)},
	{RUNE_C(0x001E68), RUNE_C(0x001E68)},
	{RUNE_C(0x001E6A), RUNE_C(0x001E6A)},
	{RUNE_C(0x001E6C), RUNE_C(0x001E6C)},
	{RUNE_C(0x001E6E), RUNE_C(0x001E6E)},
	{RUNE_C(0x001E70), RUNE_C(0x001E70)},
	{RUNE_C(0x001E72), RUNE_C(0x001E72)},
	{RUNE_C(0x001E74), RUNE_C(0x001E74)},
	{RUNE_C(0x001E76), RUNE_C(0x001E76)},
	{RUNE_C(0x001E78), RUNE_C(0x001E78)},
	{RUNE_C(0x001E7A), RUNE_C(0x001E7A)},
	{RUNE_C(0x001E7C), RUNE_C(0x001E7C)},
	{RUNE_C(0x001E7E), RUNE_C(0x001E7E)},
	{RUNE_C(0x001E80), RUNE_C(0x001E80)},
	{RUNE_C(0x001E82), RUNE_C(0x001E82)},
	{RUNE_C(0x001E84), RUNE_C(0x001E84)},
	{RUNE_C(0x001E86), RUNE_C(0x001E86)},
	{RUNE_C(0x001E88), RUNE_C(0x001E88)},
	{RUNE_C(0x001E8A), RUNE_C(0x001E8A)},
	{RUNE_C(0x001E8C), RUNE_C(0x001E8C)},
	{RUNE_C(0x001E8E), RUNE_C(0x001E8E)},
	{RUNE_C(0x001E90), RUNE_C(0x001E90)},
	{RUNE_C(0x001E92), RUNE_C(0x001E92)},
	{RUNE_C(0x001E94), RUNE_C(0x001E94)},
	{RUNE_C(0x001E9E), RUNE_C(0x001E9E)},
	{RUNE_C(0x001EA0), RUNE_C(0x001EA0)},
	{RUNE_C(0x001EA2), RUNE_C(0x001EA2)},
	{RUNE_C(0x001EA4), RUNE_C(0x001EA4)},
	{RUNE_C(0x001EA6), RUNE_C(0x001EA6)},
	{RUNE_C(0x001EA8), RUNE_C(0x001EA8)},
	{RUNE_C(0x001EAA), RUNE_C(0x001EAA)},
	{RUNE_C(0x001EAC), RUNE_C(0x001EAC)},
	{RUNE_C(0x001EAE), RUNE_C(0x001EAE)},
	{RUNE_C(0x001EB0), RUNE_C(0x001EB0)},
	{RUNE_C(0x001EB2), RUNE_C(0x001EB2)},
	{RUNE_C(0x001EB4), RUNE_C(0x001EB4)},
	{RUNE_C(0x001EB6), RUNE_C(0x001EB6)},
	{RUNE_C(0x001EB8), RUNE_C(0x001EB8)},
	{RUNE_C(0x001EBA), RUNE_C(0x001EBA)},
	{RUNE_C(0x001EBC), RUNE_C(0x001EBC)},
	{RUNE_C(0x001EBE), RUNE_C(0x001EBE)},
	{RUNE_C(0x001EC0), RUNE_C(0x001EC0)},
	{RUNE_C(0x001EC2), RUNE_C(0x001EC2)},
	{RUNE_C(0x001EC4), RUNE_C(0x001EC4)},
	{RUNE_C(0x001EC6), RUNE_C(0x001EC6)},
	{RUNE_C(0x001EC8), RUNE_C(0x001EC8)},
	{RUNE_C(0x001ECA), RUNE_C(0x001ECA)},
	{RUNE_C(0x001ECC), RUNE_C(0x001ECC)},
	{RUNE_C(0x001ECE), RUNE_C(0x001ECE)},
	{RUNE_C(0x001ED0), RUNE_C(0x001ED0)},
	{RUNE_C(0x001ED2), RUNE_C(0x001ED2)},
	{RUNE_C(0x001ED4), RUNE_C(0x001ED4)},
	{RUNE_C(0x001ED6), RUNE_C(0x001ED6)},
	{RUNE_C(0x001ED8), RUNE_C(0x001ED8)},
	{RUNE_C(0x001EDA), RUNE_C(0x001EDA)},
	{RUNE_C(0x001EDC), RUNE_C(0x001EDC)},
	{RUNE_C(0x001EDE), RUNE_C(0x001EDE)},
	{RUNE_C(0x001EE0), RUNE_C(0x001EE0)},
	{RUNE_C(0x001EE2), RUNE_C(0x001EE2)},
	{RUNE_C(0x001EE4), RUNE_C(0x001EE4)},
	{RUNE_C(0x001EE6), RUNE_C(0x001EE6)},
	{RUNE_C(0x001EE8), RUNE_C(0x001EE8)},
	{RUNE_C(0x001EEA), RUNE_C(0x001EEA)},
	{RUNE_C(0x001EEC), RUNE_C(0x001EEC)},
	{RUNE_C(0x001EEE), RUNE_C(0x001EEE)},
	{RUNE_C(0x001EF0), RUNE_C(0x001EF0)},
	{RUNE_C(0x001EF2), RUNE_C(0x001EF2)},
	{RUNE_C(0x001EF4), RUNE_C(0x001EF4)},
	{RUNE_C(0x001EF6), RUNE_C(0x001EF6)},
	{RUNE_C(0x001EF8), RUNE_C(0x001EF8)},
	{RUNE_C(0x001EFA), RUNE_C(0x001EFA)},
	{RUNE_C(0x001EFC), RUNE_C(0x001EFC)},
	{RUNE_C(0x001EFE), RUNE_C(0x001EFE)},
	{RUNE_C(0x001F08), RUNE_C(0x001F0F)},
	{RUNE_C(0x001F18), RUNE_C(0x001F1D)},
	{RUNE_C(0x001F28), RUNE_C(0x001F2F)},
	{RUNE_C(0x001F38), RUNE_C(0x001F3F)},
	{RUNE_C(0x001F48), RUNE_C(0x001F4D)},
	{RUNE_C(0x001F59), RUNE_C(0x001F59)},
	{RUNE_C(0x001F5B), RUNE_C(0x001F5B)},
	{RUNE_C(0x001F5D), RUNE_C(0x001F5D)},
	{RUNE_C(0x001F5F), RUNE_C(0x001F5F)},
	{RUNE_C(0x001F68), RUNE_C(0x001F6F)},
	{RUNE_C(0x001F88), RUNE_C(0x001F8F)},
	{RUNE_C(0x001F98), RUNE_C(0x001F9F)},
	{RUNE_C(0x001FA8), RUNE_C(0x001FAF)},
	{RUNE_C(0x001FB8), RUNE_C(0x001FBC)},
	{RUNE_C(0x001FC8), RUNE_C(0x001FCC)},
	{RUNE_C(0x001FD8), RUNE_C(0x001FDB)},
	{RUNE_C(0x001FE8), RUNE_C(0x001FEC)},
	{RUNE_C(0x001FF8), RUNE_C(0x001FFC)},
	{RUNE_C(0x002126), RUNE_C(0x002126)},
	{RUNE_C(0x00212A), RUNE_C(0x00212B)},
	{RUNE_C(0x002132), RUNE_C(0x002132)},
	{RUNE_C(0x002160), RUNE_C(0x00216F)},
	{RUNE_C(0x002183), RUNE_C(0x002183)},
	{RUNE_C(0x0024B6), RUNE_C(0x0024CF)},
	{RUNE_C(0x002C00), RUNE_C(0x002C2F)},
	{RUNE_C(0x002C60), RUNE_C(0x002C60)},
	{RUNE_C(0x002C62), RUNE_C(0x002C64)},
	{RUNE_C(0x002C67), RUNE_C(0x002C67)},
	{RUNE_C(0x002C69), RUNE_C(0x002C69)},
	{RUNE_C(0x002C6B), RUNE_C(0x002C6B)},
	{RUNE_C(0x002C6D), RUNE_C(0x002C70)},
	{RUNE_C(0x002C72), RUNE_C(0x002C72)},
	{RUNE_C(0x002C75), RUNE_C(0x002C75)},
	{RUNE_C(0x002C7E), RUNE_C(0x002C80)},
	{RUNE_C(0x002C82), RUNE_C(0x002C82)},
	{RUNE_C(0x002C84), RUNE_C(0x002C84)},
	{RUNE_C(0x002C86), RUNE_C(0x002C86)},
	{RUNE_C(0x002C88), RUNE_C(0x002C88)},
	{RUNE_C(0x002C8A), RUNE_C(0x002C8A)},
	{RUNE_C(0x002C8C), RUNE_C(0x002C8C)},
	{RUNE_C(0x002C8E), RUNE_C(0x002C8E)},
	{RUNE_C(0x002C90), RUNE_C(0x002C90)},
	{RUNE_C(0x002C92), RUNE_C(0x002C92)},
	{RUNE_C(0x002C94), RUNE_C(0x002C94)},
	{RUNE_C(0x002C96), RUNE_C(0x002C96)},
	{RUNE_C(0x002C98), RUNE_C(0x002C98)},
	{RUNE_C(0x002C9A), RUNE_C(0x002C9A)},
	{RUNE_C(0x002C9C), RUNE_C(0x002C9C)},
	{RUNE_C(0x002C9E), RUNE_C(0x002C9E)},
	{RUNE_C(0x002CA0), RUNE_C(0x002CA0)},
	{RUNE_C(0x002CA2), RUNE_C(0x002CA2)},
	{RUNE_C(0x002CA4), RUNE_C(0x002CA4)},
	{RUNE_C(0x002CA6), RUNE_C(0x002CA6)},
	{RUNE_C(0x002CA8), RUNE_C(0x002CA8)},
	{RUNE_C(0x002CAA), RUNE_C(0x002CAA)},
	{RUNE_C(0x002CAC), RUNE_C(0x002CAC)},
	{RUNE_C(0x002CAE), RUNE_C(0x002CAE)},
	{RUNE_C(0x002CB0), RUNE_C(0x002CB0)},
	{RUNE_C(0x002CB2), RUNE_C(0x002CB2)},
	{RUNE_C(0x002CB4), RUNE_C(0x002CB4)},
	{RUNE_C(0x002CB6), RUNE_C(0x002CB6)},
	{RUNE_C(0x002CB8), RUNE_C(0x002CB8)},
	{RUNE_C(0x002CBA), RUNE_C(0x002CBA)},
	{RUNE_C(0x002CBC), RUNE_C(0x002CBC)},
	{RUNE_C(0x002CBE), RUNE_C(0x002CBE)},
	{RUNE_C(0x002CC0), RUNE_C(0x002CC0)},
	{RUNE_C(0x002CC2), RUNE_C(0x002CC2)},
	{RUNE_C(0x002CC4), RUNE_C(0x002CC4)},
	{RUNE_C(0x002CC6), RUNE_C(0x002CC6)},
	{RUNE_C(0x002CC8), RUNE_C(0x002CC8)},
	{RUNE_C(0x002CCA), RUNE_C(0x002CCA)},
	{RUNE_C(0x002CCC), RUNE_C(0x002CCC)},
	{RUNE_C(0x002CCE), RUNE_C(0x002CCE)},
	{RUNE_C(0x002CD0), RUNE_C(0x002CD0)},
	{RUNE_C(0x002CD2), RUNE_C(0x002CD2)},
	{RUNE_C(0x002CD4), RUNE_C(0x002CD4)},
	{RUNE_C(0x002CD6), RUNE_C(0x002CD6)},
	{RUNE_C(0x002CD8), RUNE_C(0x002CD8)},
	{RUNE_C(0x002CDA), RUNE_C(0x002CDA)},
	{RUNE_C(0x002CDC), RUNE_C(0x002CDC)},
	{RUNE_C(0x002CDE), RUNE_C(0x002CDE)},
	{RUNE_C(0x002CE0), RUNE_C(0x002CE0)},
	{RUNE_C(0x002CE2), RUNE_C(0x002CE2)},
	{RUNE_C(0x002CEB), RUNE_C(0x002CEB)},
	{RUNE_C(0x002CED), RUNE_C(0x002CED)},
	{RUNE_C(0x002CF2), RUNE_C(0x002CF2)},
	{RUNE_C(0x00A640), RUNE_C(0x00A640)},
	{RUNE_C(0x00A642), RUNE_C(0x00A642)},
	{RUNE_C(0x00A644), RUNE_C(0x00A644)},
	{RUNE_C(0x00A646), RUNE_C(0x00A646)},
	{RUNE_C(0x00A648), RUNE_C(0x00A648)},
	{RUNE_C(0x00A64A), RUNE_C(0x00A64A)},
	{RUNE_C(0x00A64C), RUNE_C(0x00A64C)},
	{RUNE_C(0x00A64E), RUNE_C(0x00A64E)},
	{RUNE_C(0x00A650), RUNE_C(0x00A650)},
	{RUNE_C(0x00A652), RUNE_C(0x00A652)},
	{RUNE_C(0x00A654), RUNE_C(0x00A654)},
	{RUNE_C(0x00A656), RUNE_C(0x00A656)},
	{RUNE_C(0x00A658), RUNE_C(0x00A658)},
	{RUNE_C(0x00A65A), RUNE_C(0x00A65A)},
	{RUNE_C(0x00A65C), RUNE_C(0x00A65C)},
	{RUNE_C(0x00A65E), RUNE_C(0x00A65E)},
	{RUNE_C(0x00A660), RUNE_C(0x00A660)},
	{RUNE_C(0x00A662), RUNE_C(0x00A662)},
	{RUNE_C(0x00A664), RUNE_C(0x00A664)},
	{RUNE_C(0x00A666), RUNE_C(0x00A666)},
	{RUNE_C(0x00A668), RUNE_C(0x00A668)},
	{RUNE_C(0x00A66A), RUNE_C(0x00A66A)},
	{RUNE_C(0x00A66C), RUNE_C(0x00A66C)},
	{RUNE_C(0x00A680), RUNE_C(0x00A680)},
	{RUNE_C(0x00A682), RUNE_C(0x00A682)},
	{RUNE_C(0x00A684), RUNE_C(0x00A684)},
	{RUNE_C(0x00A686), RUNE_C(0x00A686)},
	{RUNE_C(0x00A688), RUNE_C(0x00A688)},
	{RUNE_C(0x00A68A), RUNE_C(0x00A68A)},
	{RUNE_C(0x00A68C), RUNE_C(0x00A68C)},
	{RUNE_C(0x00A68E), RUNE_C(0x00A68E)},
	{RUNE_C(0x00A690), RUNE_C(0x00A690)},
	{RUNE_C(0x00A692), RUNE_C(0x00A692)},
	{RUNE_C(0x00A694), RUNE_C(0x00A694)},
	{RUNE_C(0x00A696), RUNE_C(0x00A696)},
	{RUNE_C(0x00A698), RUNE_C(0x00A698)},
	{RUNE_C(0x00A69A), RUNE_C(0x00A69A)},
	{RUNE_C(0x00A722), RUNE_C(0x00A722)},
	{RUNE_C(0x00A724), RUNE_C(0x00A724)},
	{RUNE_C(0x00A726), RUNE_C(0x00A726)},
	{RUNE_C(0x00A728), RUNE_C(0x00A728)},
	{RUNE_C(0x00A72A), RUNE_C(0x00A72A)},
	{RUNE_C(0x00A72C), RUNE_C(0x00A72C)},
	{RUNE_C(0x00A72E), RUNE_C(0x00A72E)},
	{RUNE_C(0x00A732), RUNE_C(0x00A732)},
	{RUNE_C(0x00A734), RUNE_C(0x00A734)},
	{RUNE_C(0x00A736), RUNE_C(0x00A736)},
	{RUNE_C(0x00A738), RUNE_C(0x00A738)},
	{RUNE_C(0x00A73A), RUNE_C(0x00A73A)},
	{RUNE_C(0x00A73C), RUNE_C(0x00A73C)},
	{RUNE_C(0x00A73E), RUNE_C(0x00A73E)},
	{RUNE_C(0x00A740), RUNE_C(0x00A740)},
	{RUNE_C(0x00A742), RUNE_C(0x00A742)},
	{RUNE_C(0x00A744), RUNE_C(0x00A744)},
	{RUNE_C(0x00A746), RUNE_C(0x00A746)},
	{RUNE_C(0x00A748), RUNE_C(0x00A748)},
	{RUNE_C(0x00A74A), RUNE_C(0x00A74A)},
	{RUNE_C(0x00A74C), RUNE_C(0x00A74C)},
	{RUNE_C(0x00A74E), RUNE_C(0x00A74E)},
	{RUNE_C(0x00A750), RUNE_C(0x00A750)},
	{RUNE_C(0x00A752), RUNE_C(0x00A752)},
	{RUNE_C(0x00A754), RUNE_C(0x00A754)},
	{RUNE_C(0x00A756), RUNE_C(0x00A756)},
	{RUNE_C(0x00A758), RUNE_C(0x00A758)},
	{RUNE_C(0x00A75A), RUNE_C(0x00A75A)},
	{RUNE_C(0x00A75C), RUNE_C(0x00A75C)},
	{RUNE_C(0x00A75E), RUNE_C(0x00A75E)},
	{RUNE_C(0x00A760), RUNE_C(0x00A760)},
	{RUNE_C(0x00A762), RUNE_C(0x00A762)},
	{RUNE_C(0x00A764), RUNE_C(0x00A764)},
	{RUNE_C(0x00A766), RUNE_C(0x00A766)},
	{RUNE_C(0x00A768), RUNE_C(0x00A768)},
	{RUNE_C(0x00A76A), RUNE_C(0x00A76A)},
	{RUNE_C(0x00A76C), RUNE_C(0x00A76C)},
	{RUNE_C(0x00A76E), RUNE_C(0x00A76E)},
	{RUNE_C(0x00A779), RUNE_C(0x00A779)},
	{RUNE_C(0x00A77B), RUNE_C(0x00A77B)},
	{RUNE_C(0x00A77D), RUNE_C(0x00A77E)},
	{RUNE_C(0x00A780), RUNE_C(0x00A780)},
	{RUNE_C(0x00A782), RUNE_C(0x00A782)},
	{RUNE_C(0x00A784), RUNE_C(0x00A784)},
	{RUNE_C(0x00A786), RUNE_C(0x00A786)},
	{RUNE_C(0x00A78B), RUNE_C(0x00A78B)},
	{RUNE_C(0x00A78D), RUNE_C(0x00A78D)},
	{RUNE_C(0x00A790), RUNE_C(0x00A790)},
	{RUNE_C(0x00A792), RUNE_C(0x00A792)},
	{RUNE_C(0x00A796), RUNE_C(0x00A796)},
	{RUNE_C(0x00A798), RUNE_C(0x00A798)},
	{RUNE_C(0x00A79A), RUNE_C(0x00A79A)},
	{RUNE_C(0x00A79C), RUNE_C(0x00A79C)},
	{RUNE_C(0x00A79E), RUNE_C(0x00A79E)},
	{RUNE_C(0x00A7A0), RUNE_C(0x00A7A0)},
	{RUNE_C(0x00A7A2), RUNE_C(0x00A7A2)},
	{RUNE_C(0x00A7A4), RUNE_C(0x00A7A4)},
	{RUNE_C(0x00A7A6), RUNE_C(0x00A7A6)},
	{RUNE_C(0x00A7A8), RUNE_C(0x00A7A8)},
	{RUNE_C(0x00A7AA), RUNE_C(0x00A7AE)},
	{RUNE_C(0x00A7B0), RUNE_C(0x00A7B4)},
	{RUNE_C(0x00A7B6), RUNE_C(0x00A7B6)},
	{RUNE_C(0x00A7B8), RUNE_C(0x00A7B8)},
	{RUNE_C(0x00A7BA), RUNE_C(0x00A7BA)},
	{RUNE_C(0x00A7BC), RUNE_C(0x00A7BC)},
	{RUNE_C(0x00A7BE), RUNE_C(0x00A7BE)},
	{RUNE_C(0x00A7C0), RUNE_C(0x00A7C0)},
	{RUNE_C(0x00A7C2), RUNE_C(0x00A7C2)},
	{RUNE_C(0x00A7C4), RUNE_C(0x00A7C7)},
	{RUNE_C(0x00A7C9), RUNE_C(0x00A7C9)},
	{RUNE_C(0x00A7D0), RUNE_C(0x00A7D0)},
	{RUNE_C(0x00A7D6), RUNE_C(0x00A7D6)},
	{RUNE_C(0x00A7D8), RUNE_C(0x00A7D8)},
	{RUNE_C(0x00A7F5), RUNE_C(0x00A7F5)},
	{RUNE_C(0x00FF21), RUNE_C(0x00FF3A)},
	{RUNE_C(0x010400), RUNE_C(0x010427)},
	{RUNE_C(0x0104B0), RUNE_C(0x0104D3)},
	{RUNE_C(0x010570), RUNE_C(0x01057A)},
	{RUNE_C(0x01057C), RUNE_C(0x01058A)},
	{RUNE_C(0x01058C), RUNE_C(0x010592)},
	{RUNE_C(0x010594), RUNE_C(0x010595)},
	{RUNE_C(0x010C80), RUNE_C(0x010CB2)},
	{RUNE_C(0x0118A0), RUNE_C(0x0118BF)},
	{RUNE_C(0x016E40), RUNE_C(0x016E5F)},
	{RUNE_C(0x01E900), RUNE_C(0x01E921)},
};

_MLIB_DEFINE_BSEARCH_CONTAINS(lookup)

bool
uprop_is_cwl(rune ch)
{
	return ch <= LATIN1_MAX ? TESTBIT(bs, ch) : mlib_lookup_contains(ch);
}