rustybuzz 0.12.1

A complete harfbuzz shaping algorithm port to Rust.
Documentation
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
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
// WARNING: this file was generated by ../scripts/gen-universal-table.py

use super::universal::{category::*, Category};

#[rustfmt::skip]
const USE_TABLE: &[Category] = &[


  /* Basic Latin */
                                                                         O,     O,     O,     O,     O,    GB,     O,     O,
  /* 0030 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Latin-1 Supplement */

  /* 00A0 */    GB,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 00B0 */     O,     O, FMPST, FMPST,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 00C0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 00D0 */     O,     O,     O,     O,     O,     O,     O,    GB,

  /* Arabic */

  /* 0640 */     B,     O,     O,     O,     O,     O,     O,     O,

  /* NKo */
                                                                         O,     O,     B,     B,     B,     B,     B,     B,
  /* 07D0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 07E0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B, VMABV, VMABV, VMABV, VMABV, VMABV,
  /* 07F0 */ VMABV, VMABV, VMABV, VMABV,     O,     O,     O,     O,     O,     O,     B,     O,     O, VMABV,     O,     O,

  /* Mandaic */

  /* 0840 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0850 */     B,     B,     B,     B,     B,     B,     B,     B,     B, CMBLW, CMBLW, CMBLW,     O,     O,     O,     O,

  /* Devanagari */

  /* 0900 */ VMABV, VMABV, VMABV, VMPST,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0910 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0920 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0930 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VABV,  VPST, CMBLW,     B,  VPST,  VPRE,
  /* 0940 */  VPST,  VBLW,  VBLW,  VBLW,  VBLW,  VABV,  VABV,  VABV,  VABV,  VPST,  VPST,  VPST,  VPST,     H,  VPRE,  VPST,
  /* 0950 */     O, VMABV, VMBLW,     O,     O,  VABV,  VBLW,  VBLW,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0960 */     B,     B,  VBLW,  VBLW,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0970 */     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,

  /* Bengali */

  /* 0980 */    GB, VMABV, VMPST, VMPST,     O,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     B,
  /* 0990 */     B,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 09A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
  /* 09B0 */     B,     O,     B,     O,     O,     O,     B,     B,     B,     B,     O,     O, CMBLW,     B,  VPST,  VPRE,
  /* 09C0 */  VPST,  VBLW,  VBLW,  VBLW,  VBLW,     O,     O,  VPRE,  VPRE,     O,     O,  VPRE,  VPRE,     H,     O,     O,
  /* 09D0 */     O,     O,     O,     O,     O,     O,     O,  VPST,     O,     O,     O,     O,     B,     B,     O,     B,
  /* 09E0 */     B,     B,  VBLW,  VBLW,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 09F0 */     B,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     B,     O, FMABV,     O,

  /* Gurmukhi */

  /* 0A00 */     O, VMABV, VMABV, VMPST,     O,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     B,
  /* 0A10 */     B,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0A20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
  /* 0A30 */     B,     O,     B,     B,     O,     B,     B,     O,     B,     B,     O,     O, CMBLW,     O,  VPST,  VPRE,
  /* 0A40 */  VPST,  VBLW,  VBLW,     O,     O,     O,     O,  VABV,  VABV,     O,     O,  VABV,  VABV,     H,     O,     O,
  /* 0A50 */     O, VMBLW,     O,     O,     O,     O,     O,     O,     O,     B,     B,     B,     B,     O,     B,     O,
  /* 0A60 */     O,     O,     O,     O,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0A70 */ VMABV, CMABV,    GB,    GB,     O,  MBLW,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Gujarati */

  /* 0A80 */     O, VMABV, VMABV, VMPST,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,
  /* 0A90 */     B,     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0AA0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
  /* 0AB0 */     B,     O,     B,     B,     O,     B,     B,     B,     B,     B,     O,     O, CMBLW,     B,  VPST,  VPRE,
  /* 0AC0 */  VPST,  VBLW,  VBLW,  VBLW,  VBLW,  VABV,     O,  VABV,  VABV,  VABV,     O,  VPST,  VPST,     H,     O,     O,
  /* 0AD0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 0AE0 */     B,     B,  VBLW,  VBLW,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0AF0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     B, VMABV, VMABV, VMABV, CMABV, CMABV, CMABV,

  /* Oriya */

  /* 0B00 */     O, VMABV, VMPST, VMPST,     O,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     B,
  /* 0B10 */     B,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0B20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
  /* 0B30 */     B,     O,     B,     B,     O,     B,     B,     B,     B,     B,     O,     O, CMBLW,     B,  VPST,  VABV,
  /* 0B40 */  VPST,  VBLW,  VBLW,  VBLW,  VBLW,     O,     O,  VPRE,  VPRE,     O,     O,  VPRE,  VPRE,     H,     O,     O,
  /* 0B50 */     O,     O,     O,     O,     O,  VABV,  VABV,  VABV,     O,     O,     O,     O,     B,     B,     O,     B,
  /* 0B60 */     B,     B,  VBLW,  VBLW,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0B70 */     O,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Tamil */

  /* 0B80 */     O,     O, VMABV,     O,     O,     B,     B,     B,     B,     B,     B,     O,     O,     O,     B,     B,
  /* 0B90 */     B,     O,     B,     B,     B,     B,     O,     O,     O,     B,     B,     O,     B,     O,     B,     B,
  /* 0BA0 */     O,     O,     O,     B,     B,     O,     O,     O,     B,     B,     B,     O,     O,     O,     B,     B,
  /* 0BB0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,  VPST,  VPST,
  /* 0BC0 */  VABV,  VPST,  VPST,     O,     O,     O,  VPRE,  VPRE,  VPRE,     O,  VPRE,  VPRE,  VPRE,     H,     O,     O,
  /* 0BD0 */     O,     O,     O,     O,     O,     O,     O,  VPST,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 0BE0 */     O,     O,     O,     O,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0BF0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Telugu */

  /* 0C00 */ VMABV, VMPST, VMPST, VMPST, VMABV,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,
  /* 0C10 */     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0C20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
  /* 0C30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     B,  VABV,  VABV,
  /* 0C40 */  VABV,  VPST,  VPST,  VPST,  VPST,     O,  VABV,  VABV,  VABV,     O,  VABV,  VABV,  VABV,     H,     O,     O,
  /* 0C50 */     O,     O,     O,     O,     O,  VABV,  VBLW,     O,     B,     B,     B,     O,     O,     O,     O,     O,
  /* 0C60 */     B,     B,  VBLW,  VBLW,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0C70 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Kannada */

  /* 0C80 */     B, VMABV, VMPST, VMPST,     O,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,
  /* 0C90 */     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0CA0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
  /* 0CB0 */     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     O,     O, CMBLW,     B,  VPST,  VABV,
  /* 0CC0 */  VABV,  VPST,  VPST,  VPST,  VPST,     O,  VABV,  VABV,  VABV,     O,  VABV,  VABV,  VABV,     H,     O,     O,
  /* 0CD0 */     O,     O,     O,     O,     O,  VPST,  VPST,     O,     O,     O,     O,     O,     O,     O,     B,     O,
  /* 0CE0 */     B,     B,  VBLW,  VBLW,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0CF0 */     O,    CS,    CS,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Malayalam */

  /* 0D00 */ VMABV, VMABV, VMPST, VMPST,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,
  /* 0D10 */     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0D20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0D30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VABV,  VABV,     B,  VPST,  VPST,
  /* 0D40 */  VPST,  VPST,  VPST,  VBLW,  VBLW,     O,  VPRE,  VPRE,  VPRE,     O,  VPRE,  VPRE,  VPRE,     H,     R,     O,
  /* 0D50 */     O,     O,     O,     O,     O,     O,     O,  VPST,     O,     O,     O,     O,     O,     O,     O,     B,
  /* 0D60 */     B,     B,  VBLW,  VBLW,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0D70 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Sinhala */

  /* 0D80 */     O, VMABV, VMPST, VMPST,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0D90 */     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     B,     B,     B,     B,     B,     B,
  /* 0DA0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0DB0 */     B,     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     O,     O,
  /* 0DC0 */     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     H,     O,     O,     O,     O,  VPST,
  /* 0DD0 */  VPST,  VPST,  VABV,  VABV,  VBLW,     O,  VBLW,     O,  VPST,  VPRE,  VPRE,  VPRE,  VPRE,  VPRE,  VPRE,  VPST,
  /* 0DE0 */     O,     O,     O,     O,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0DF0 */     O,     O,  VPST,  VPST,     O,     O,     O,     O,

  /* Tibetan */

  /* 0F00 */     B,     B,     O,     O,     B,     B,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 0F10 */     O,     O,     O,     O,     O,     O,     O,     O,  VBLW,  VBLW,     O,     O,     O,     O,     O,     O,
  /* 0F20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0F30 */     B,     B,     B,     B,     O,  FBLW,     O,  FBLW,     O, CMABV,     O,     O,     O,     O,  VPST,  VPRE,
  /* 0F40 */     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,     B,
  /* 0F50 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 0F60 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,
  /* 0F70 */     O, CMBLW,  VBLW,  VABV,  VABV,  VBLW,  VABV,  VABV,  VABV,  VABV,  VBLW,  VBLW,  VBLW,  VBLW, VMABV,     O,
  /* 0F80 */  VBLW,  VABV, VMABV, VMABV,  VBLW,     O, VMABV, VMABV,     B,     B,     B,     B,     B,   SUB,   SUB,   SUB,
  /* 0F90 */   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,     O,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,
  /* 0FA0 */   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,
  /* 0FB0 */   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,     O,     O,     O,
  /* 0FC0 */     O,     O,     O,     O,     O,     O,  FBLW,     O,

  /* Myanmar */

  /* 1000 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1010 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1020 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPST,  VPST,  VABV,  VABV,  VBLW,
  /* 1030 */  VBLW,  VPRE,  VABV,  VABV,  VABV,  VABV, VMABV, VMBLW, VMPST,     H,  VABV,  MPST,  MPRE,  MBLW,  MBLW,     B,
  /* 1040 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,    GB,     O,     O,    GB,     O,
  /* 1050 */     B,     B,     B,     B,     B,     B,  VPST,  VPST,  VBLW,  VBLW,     B,     B,     B,     B,  MBLW,  MBLW,
  /* 1060 */  MBLW,     B,  VPST, VMPST, VMPST,     B,     B,  VPST,  VPST, VMPST, VMPST, VMPST, VMPST, VMPST,     B,     B,
  /* 1070 */     B,  VABV,  VABV,  VABV,  VABV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1080 */     B,     B,  MBLW,  VPST,  VPRE,  VABV,  VABV, VMPST, VMPST, VMPST, VMPST, VMPST, VMPST, VMBLW,     B, VMPST,
  /* 1090 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B, VMPST, VMPST,  VPST,  VABV,     O,     O,

  /* Tagalog */

  /* 1700 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,
  /* 1710 */     B,     B,  VABV,  VBLW,  VBLW,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Hanunoo */

  /* 1720 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1730 */     B,     B,  VABV,  VBLW,  VBLW,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Buhid */

  /* 1740 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1750 */     B,     B,  VABV,  VBLW,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Tagbanwa */

  /* 1760 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,
  /* 1770 */     B,     O,  VABV,  VBLW,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Khmer */

  /* 1780 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1790 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 17A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 17B0 */     B,     B,     B,     B,     O,     O,  VPST,  VABV,  VABV,  VABV,  VABV,  VBLW,  VBLW,  VBLW,  VPRE,  VPRE,
  /* 17C0 */  VPRE,  VPRE,  VPRE,  VPRE,  VPRE,  VPRE, VMABV, VMPST,  VPST, VMABV, VMABV, FMABV,  FABV, CMABV, FMABV, VMABV,
  /* 17D0 */ FMABV,  VABV,     H, FMABV,     O,     O,     O,     O,     O,     O,     O,     O,     B, FMABV,     O,     O,
  /* 17E0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,
  /* 17F0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Mongolian */

  /* 1800 */     B,     O,     O,     O,     O,     O,     O,     B,     O,     O,     B,     O,     O,     O,     O,     O,
  /* 1810 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 1820 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1830 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1840 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1850 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1860 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1870 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,     O,
  /* 1880 */    GB,    GB,    GB,    GB,    GB, CMABV, CMABV,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1890 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B, CMBLW,     B,     O,     O,     O,     O,     O,

  /* Limbu */

  /* 1900 */    GB,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1910 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,
  /* 1920 */  VABV,  VABV,  VBLW,  VPST,  VPST,  VABV,  VABV,  VABV,  VABV,   SUB,   SUB,   SUB,     O,     O,     O,     O,
  /* 1930 */  FPST,  FPST, VMBLW,  FPST,  FPST,  FPST,  FPST,  FPST,  FPST,  FBLW, VMABV, FMBLW,     O,     O,     O,     O,
  /* 1940 */     O,     O,     O,     O,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,

  /* Tai Le */

  /* 1950 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1960 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,
  /* 1970 */     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* New Tai Lue */

  /* 1980 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1990 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 19A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,
  /* 19B0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 19C0 */     B,     B,     B,     B,     B,     B,     B,     B, VMPST, VMPST,     O,     O,     O,     O,     O,     O,
  /* 19D0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,
  /* 19E0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 19F0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Buginese */

  /* 1A00 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1A10 */     B,     B,     B,     B,     B,     B,     B,  VABV,  VABV,  VPRE,  VPST,  VABV,     O,     O,     O,     O,

  /* Tai Tham */

  /* 1A20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1A30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1A40 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1A50 */     B,     B,     B,     B,     B,  MPRE,  MBLW,   SUB,  FABV,  FABV,  MABV,   SUB,   SUB,   SUB,   SUB,     O,
  /* 1A60 */    SK,  VPST,  VABV,  VPST,  VPST,  VABV,  VABV,  VABV,  VABV,  VBLW,  VBLW,  VABV,  VBLW,  VPST,  VPRE,  VPRE,
  /* 1A70 */  VPRE,  VPRE,  VPRE,  VABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV,  VABV, VMABV, VMABV,     O,     O, VMBLW,
  /* 1A80 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,
  /* 1A90 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Balinese */

  /* 1B00 */ VMABV, VMABV, VMABV,  FABV, VMPST,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1B10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1B20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1B30 */     B,     B,     B,     B, CMABV,  VPST,  VABV,  VABV,  VBLW,  VBLW,  VBLW,  VBLW,  VABV,  VABV,  VPRE,  VPRE,
  /* 1B40 */  VPRE,  VPRE,  VABV,  VABV,     H,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,
  /* 1B50 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,    GB,    GB,     O,     O,    GB,
  /* 1B60 */     O,     S,    GB,     S,     S,     S,     S,     S,    GB,     S,     S, SMABV, SMBLW, SMABV, SMABV, SMABV,
  /* 1B70 */ SMABV, SMABV, SMABV, SMABV,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Sundanese */

  /* 1B80 */ VMABV,  FABV, VMPST,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1B90 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1BA0 */     B,   SUB,   SUB,   SUB,  VABV,  VBLW,  VPRE,  VPST,  VABV,  VABV,  VPST,     H,   SUB,   SUB,     B,     B,
  /* 1BB0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,

  /* Batak */

  /* 1BC0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1BD0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1BE0 */     B,     B,     B,     B,     B,     B, CMABV,  VPST,  VABV,  VABV,  VPST,  VPST,  VPST,  VABV,  VPST,  VABV,
  /* 1BF0 */  FABV,  FABV, CMBLW, CMBLW,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Lepcha */

  /* 1C00 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1C10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1C20 */     B,     B,     B,     B,   SUB,   SUB,  VPST,  VPRE,  VPRE,  VPRE,  VPST,  VPST,  VBLW,  FABV,  FABV,  FABV,
  /* 1C30 */  FABV,  FABV,  FABV,  FABV, VMPRE, VMPRE, FMABV, CMBLW,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 1C40 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     B,     B,     B,

  /* Vedic Extensions */

  /* 1CD0 */ VMABV, VMABV, VMABV,     O, VMBLW, VMBLW, VMBLW, VMBLW, VMBLW, VMBLW, VMABV, VMABV, VMBLW, VMBLW, VMBLW, VMBLW,
  /* 1CE0 */ VMABV, VMPST, VMBLW, VMBLW, VMBLW, VMBLW, VMBLW, VMBLW, VMBLW,     O,     O,     O,     O, VMBLW,     O,     O,
  /* 1CF0 */     O,     O,     O,     O, VMABV,    CS,    CS, VMPST, VMABV, VMABV,    GB,     O,     O,     O,     O,     O,

  /* Combining Diacritical Marks Supplement */
                                                                         O,     O,     O, FMABV,     O,     O,     O,     O,

  /* General Punctuation */
                                                                         O,     O,     O,     O,  ZWNJ,     O,     O,     O,
  /* 2010 */    GB,    GB,    GB,    GB,    GB,     O,     O,     O,

  /* Superscripts and Subscripts */

  /* 2070 */     O,     O,     O,     O, FMPST,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 2080 */     O,     O, FMPST, FMPST, FMPST,     O,     O,     O,

  /* Combining Diacritical Marks for Symbols */

  /* 20F0 */ VMABV,     O,     O,     O,     O,     O,     O,     O,

  /* Geometric Shapes */
                                                                         O,     O,     O,     O,     B,     O,     O,     O,

  /* Tifinagh */

  /* 2D30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 2D40 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 2D50 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 2D60 */     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,     O,     B,
  /* 2D70 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     H,

  /* Syloti Nagri */

  /* A800 */     B,     B,  VABV,     B,     B,     B,     H,     B,     B,     B,     B, VMABV,     B,     B,     B,     B,
  /* A810 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A820 */     B,     B,     B,  VPST,  VPST,  VBLW,  VABV,  VPST,     O,     O,     O,     O,  VBLW,     O,     O,     O,
  /* A830 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Phags-pa */

  /* A840 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A850 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A860 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A870 */     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Saurashtra */

  /* A880 */ VMPST, VMPST,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A890 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A8A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A8B0 */     B,     B,     B,     B,  MPST,  VPST,  VPST,  VPST,  VPST,  VPST,  VPST,  VPST,  VPST,  VPST,  VPST,  VPST,
  /* A8C0 */  VPST,  VPST,  VPST,  VPST,     H, VMABV,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* A8D0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Devanagari Extended */

  /* A8E0 */ VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV,
  /* A8F0 */ VMABV, VMABV,     B,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     B,  VABV,

  /* Kayah Li */

  /* A900 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A910 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A920 */     B,     B,     B,     B,     B,     B,  VABV,  VABV,  VABV,  VABV,  VABV, VMBLW, VMBLW, VMBLW,     O,     O,

  /* Rejang */

  /* A930 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A940 */     B,     B,     B,     B,     B,     B,     B,  VBLW,  VBLW,  VBLW,  VABV,  VBLW,  VBLW,  VBLW,  VBLW,  FABV,
  /* A950 */  FABV,  FABV,  FPST,  VPST,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* A960 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* A970 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Javanese */

  /* A980 */ VMABV, VMABV,  FABV, VMPST,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A990 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A9A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A9B0 */     B,     B,     B, CMABV,  VPST,  VPST,  VABV,  VABV,  VBLW,  VBLW,  VPRE,  VPRE,  VABV,  MBLW,  MPST,  MBLW,
  /* A9C0 */     H,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* A9D0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Myanmar Extended-B */

  /* A9E0 */     B,     B,     B,     B,     B,  VABV,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* A9F0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,

  /* Cham */

  /* AA00 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* AA10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* AA20 */     B,     B,     B,     B,     B,     B,     B,     B,     B, VMABV,  VABV,  VABV,  VABV,  VBLW,  VABV,  VPRE,
  /* AA30 */  VPRE,  VABV,  VBLW,  MPST,  MPRE,  MABV,  MBLW,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* AA40 */     B,     B,     B,  FABV,     B,     B,     B,     B,     B,     B,     B,     B,  FABV,  FPST,     O,     O,
  /* AA50 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Myanmar Extended-A */

  /* AA60 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* AA70 */     O,     B,     B,     B,    GB,    GB,    GB,     O,     O,     O,     B, VMPST, VMABV, VMPST,     B,     B,

  /* Tai Viet */

  /* AA80 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* AA90 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* AAA0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* AAB0 */  VABV,     B,  VABV,  VABV,  VBLW,     B,     B,  VABV,  VABV,     B,     B,     B,     B,     B,  VABV, VMABV,
  /* AAC0 */     B, VMABV,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* AAD0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Meetei Mayek Extensions */

  /* AAE0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPRE,  VBLW,  VABV,  VPRE,  VPST,
  /* AAF0 */     O,     O,     O,     O,     O, VMPST,     H,     O,

  /* Meetei Mayek */

  /* ABC0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* ABD0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* ABE0 */     B,     B,     B,  VPST,  VPST,  VABV,  VPST,  VPST,  VBLW,  VPST,  VPST,     O, VMPST,  VBLW,     O,     O,
  /* ABF0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Kharoshthi */

  /* 10A00 */     B,  VBLW,  VBLW,  VBLW,     O,  VABV,  VBLW,     O,     O,     O,     O,     O,  VPST, VMBLW, VMBLW, VMABV,
  /* 10A10 */     B,     B,     B,     B,     O,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,     B,
  /* 10A20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 10A30 */     B,     B,     B,     B,     B,     B,     O,     O, CMABV, CMBLW, CMBLW,     O,     O,     O,     O,     H,
  /* 10A40 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,     O,

  /* Manichaean */

  /* 10AC0 */     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,     B,
  /* 10AD0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 10AE0 */     B,     B,     B,     B,     B, CMBLW, CMBLW,     O,

  /* Psalter Pahlavi */

  /* 10B80 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 10B90 */     B,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 10BA0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     B,     B,     B,     B,     B,     B,     O,

  /* Hanifi Rohingya */

  /* 10D00 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 10D10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 10D20 */     B,     B,     B,     B, VMABV, VMABV, VMABV, CMABV,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 10D30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Yezidi */

  /* 10E80 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 10E90 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 10EA0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,  VABV,  VABV,     O,     O,     O,
  /* 10EB0 */     B,     B,     O,     O,     O,     O,     O,     O,

  /* Sogdian */

  /* 10F30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 10F40 */     B,     B,     B,     B,     B,     B, VMBLW, VMBLW, VMBLW, VMBLW, VMBLW, VMBLW, VMBLW, VMBLW, VMBLW, VMBLW,
  /* 10F50 */ VMBLW,     B,     B,     B,     B,     O,     O,     O,

  /* Chorasmian */

  /* 10FB0 */     B,     O,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 10FC0 */     O,     B,     B,     B,     B,     O,     O,     O,     O,     B,     B,     B,     O,     O,     O,     O,
  /* 10FD0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 10FE0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 10FF0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Brahmi */

  /* 11000 */ VMPST, VMABV, VMPST,    CS,    CS,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11010 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11020 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11030 */     B,     B,     B,     B,     B,     B,     B,     B,  VABV,  VABV,  VABV,  VABV,  VBLW,  VBLW,  VBLW,  VBLW,
  /* 11040 */  VBLW,  VBLW,  VABV,  VABV,  VABV,  VABV,   HVM,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 11050 */     O,     O,     N,     N,     N,     N,     N,     N,     N,     N,     N,     N,     N,     N,     N,     N,
  /* 11060 */     N,     N,     N,     N,     N,     N,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11070 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,    HN,

  /* Kaithi */

  /* 11080 */ VMABV, VMABV, VMPST,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11090 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 110A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 110B0 */  VPST,  VPRE,  VPST,  VBLW,  VBLW,  VABV,  VABV,  VPST,  VPST,     H, CMBLW,     O,     O,     O,     O,     O,

  /* Chakma */

  /* 11100 */ VMABV, VMABV, VMABV,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11110 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11120 */     B,     B,     B,     B,     B,     B,     B,  VBLW,  VBLW,  VBLW,  VABV,  VABV,  VPRE,  VBLW,  VABV,  VABV,
  /* 11130 */  VBLW,  VABV,  VABV,     H, CMABV,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11140 */     O,     O,     O,     O,     B,  VPST,  VPST,     B,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Mahajani */

  /* 11150 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11160 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11170 */     B,     B,     B, CMBLW,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Sharada */

  /* 11180 */ VMABV, VMABV, VMPST,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11190 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 111A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 111B0 */     B,     B,     B,  VPST,  VPRE,  VPST,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VABV,  VABV,  VABV,  VABV,
  /* 111C0 */     H,     B,     R,     R,     O,     O,     O,     O,    GB, FMBLW, CMBLW,  VABV,  VBLW,     O,  VPRE, VMABV,
  /* 111D0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,

  /* Sinhala Archaic Numbers */

  /* 111E0 */     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 111F0 */     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Khojki */

  /* 11200 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11210 */     B,     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11220 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPST,  VPST,  VPST,  VBLW,
  /* 11230 */  VABV,  VABV,  VABV,  VABV, VMABV,     H, CMABV, CMABV,     O,     O,     O,     O,     O,     O, VMABV,     O,

  /* Multani */

  /* 11280 */     B,     B,     B,     B,     B,     B,     B,     O,     B,     O,     B,     B,     B,     B,     O,     B,
  /* 11290 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,
  /* 112A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,     O,

  /* Khudawadi */

  /* 112B0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 112C0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 112D0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B, VMABV,
  /* 112E0 */  VPST,  VPRE,  VPST,  VBLW,  VBLW,  VABV,  VABV,  VABV,  VABV, CMBLW,  VBLW,     O,     O,     O,     O,     O,
  /* 112F0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Grantha */

  /* 11300 */ VMABV, VMABV, VMABV, VMABV,     O,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     B,
  /* 11310 */     B,     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11320 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
  /* 11330 */     B,     O,     B,     B,     O,     B,     B,     B,     B,     B,     O, CMBLW, CMBLW,     B,  VPST,  VPST,
  /* 11340 */  VABV,  VPST,  VPST,  VPST,  VPST,     O,     O,  VPRE,  VPRE,     O,     O,  VPRE,  VPRE,   HVM,     O,     O,
  /* 11350 */     O,     O,     O,     O,     O,     O,     O,  VPST,     O,     O,     O,     O,     O,     O,     B,     B,
  /* 11360 */     B,     B,  VPST,  VPST,     O,     O, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV,     O,     O,     O,
  /* 11370 */ VMABV, VMABV, VMABV, VMABV, VMABV,     O,     O,     O,

  /* Newa */

  /* 11400 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11410 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11420 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11430 */     B,     B,     B,     B,     B,  VPST,  VPRE,  VPST,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VABV,  VABV,
  /* 11440 */  VPST,  VPST,     H, VMABV, VMABV, VMPST, CMBLW,     B,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 11450 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O, FMABV,     B,
  /* 11460 */    CS,    CS,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 11470 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Tirhuta */

  /* 11480 */     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11490 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 114A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 114B0 */  VPST,  VPRE,  VPST,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VPRE,  VABV,  VPRE,  VPRE,  VPST,  VPRE, VMABV,
  /* 114C0 */ VMABV, VMABV,     H, CMBLW,     B,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 114D0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Siddham */

  /* 11580 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11590 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 115A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPST,
  /* 115B0 */  VPRE,  VPST,  VBLW,  VBLW,  VBLW,  VBLW,     O,     O,  VPRE,  VPRE,  VPRE,  VPRE, VMABV, VMABV, VMPST,     H,
  /* 115C0 */ CMBLW,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 115D0 */     O,     O,     O,     O,     O,     O,     O,     O,     B,     B,     B,     B,  VBLW,  VBLW,     O,     O,
  /* 115E0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 115F0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Modi */

  /* 11600 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11610 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11620 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11630 */  VPST,  VPST,  VPST,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VABV,  VABV,  VPST,  VPST, VMABV, VMPST,     H,
  /* 11640 */  VABV,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 11650 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,
  /* 11660 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 11670 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Takri */

  /* 11680 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11690 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 116A0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B, VMABV, VMPST,  VABV,  VPRE,  VPST,
  /* 116B0 */  VBLW,  VBLW,  VABV,  VABV,  VABV,  VABV,     H, CMBLW,     B,     O,     O,     O,     O,     O,     O,     O,
  /* 116C0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,
  /* 116D0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 116E0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 116F0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Ahom */

  /* 11700 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11710 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,  MBLW,  MPRE,  MABV,
  /* 11720 */  VPST,  VPST,  VABV,  VABV,  VBLW,  VBLW,  VPRE,  VABV,  VBLW,  VABV,  VABV,  VABV,     O,     O,     O,     O,
  /* 11730 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,

  /* Dogra */

  /* 11800 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11810 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11820 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPST,  VPRE,  VPST,  VBLW,
  /* 11830 */  VBLW,  VBLW,  VBLW,  VABV,  VABV,  VABV,  VABV, VMABV, VMPST,     H, CMBLW,     O,     O,     O,     O,     O,

  /* Dives Akuru */

  /* 11900 */     B,     B,     B,     B,     B,     B,     B,     O,     O,     B,     O,     O,     B,     B,     B,     B,
  /* 11910 */     B,     B,     B,     B,     O,     B,     B,     O,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11920 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11930 */  VPST,  VPST,  VPST,  VPST,  VPST,  VPRE,     O,  VPRE,  VPRE,     O,     O, VMABV, VMABV,  VPST,     H,     R,
  /* 11940 */  MPST,     R,  MPST, CMBLW,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 11950 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Nandinagari */

  /* 119A0 */     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     B,     B,     B,     B,     B,     B,
  /* 119B0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 119C0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 119D0 */     B,  VPST,  VPRE,  VPST,  VBLW,  VBLW,  VBLW,  VBLW,     O,     O,  VABV,  VABV,  VPST,  VPST, VMPST, VMPST,
  /* 119E0 */     H,     B,     O,     O,  VPRE,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 119F0 */     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Zanabazar Square */

  /* 11A00 */     B,  VABV,  VBLW,  VBLW,  VABV,  VABV,  VABV,  VABV,  VABV,  VABV,  VBLW,     B,     B,     B,     B,     B,
  /* 11A10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11A20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11A30 */     B,     B,     B, FMBLW,  VBLW, VMABV, VMABV, VMABV, VMABV, VMPST,     R,  MBLW,  MBLW,  MBLW,  MBLW,    GB,
  /* 11A40 */     O,     O,     O,     O,     O,    GB,     O,     H,     O,     O,     O,     O,     O,     O,     O,     O,

  /* Soyombo */

  /* 11A50 */     B,  VABV,  VBLW,  VBLW,  VABV,  VABV,  VABV,  VPST,  VPST,  VBLW,  VBLW,  VBLW,     B,     B,     B,     B,
  /* 11A60 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11A70 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11A80 */     B,     B,     B,     B,     R,     R,     R,     R,     R,     R,  FBLW,  FBLW,  FBLW,  FBLW,  FBLW,  FBLW,
  /* 11A90 */  FBLW,  FBLW,  FBLW,  FBLW,  FBLW,  FBLW, VMABV, VMPST, CMABV,     H,     O,     O,     O,     B,     O,     O,

  /* Bhaiksuki */

  /* 11C00 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     B,     B,     B,     B,
  /* 11C10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11C20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPST,
  /* 11C30 */  VABV,  VABV,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,     O,  VABV,  VABV,  VABV,  VABV, VMABV, VMABV, VMPST,     H,
  /* 11C40 */     B,     O,     O,     O,    GB,    GB,     O,     O,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 11C50 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11C60 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,

  /* Marchen */

  /* 11C70 */     O,     O,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11C80 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11C90 */     O,     O,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,
  /* 11CA0 */   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,     O,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,   SUB,
  /* 11CB0 */  VBLW,  VPRE,  VBLW,  VABV,  VPST, VMABV, VMABV,     O,

  /* Masaram Gondi */

  /* 11D00 */     B,     B,     B,     B,     B,     B,     B,     O,     B,     B,     O,     B,     B,     B,     B,     B,
  /* 11D10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11D20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11D30 */     B,  VABV,  VABV,  VABV,  VABV,  VABV,  VBLW,     O,     O,     O,  VABV,     O,  VABV,  VABV,     O,  VABV,
  /* 11D40 */ VMABV, VMABV, CMBLW,  VABV,  VBLW,     H,     R,  MBLW,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 11D50 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Gunjala Gondi */

  /* 11D60 */     B,     B,     B,     B,     B,     B,     O,     B,     B,     O,     B,     B,     B,     B,     B,     B,
  /* 11D70 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11D80 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,  VPST,  VPST,  VPST,  VPST,  VPST,     O,
  /* 11D90 */  VABV,  VABV,     O,  VPST,  VPST, VMABV, VMPST,     H,     O,     O,     O,     O,     O,     O,     O,     O,
  /* 11DA0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Makasar */

  /* 11EE0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 11EF0 */     B,     B,    GB,  VABV,  VBLW,  VPRE,  VPST,     O,

  /* Egyptian Hieroglyphs */

  /* 13000 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13010 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13020 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13030 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13040 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13050 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13060 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13070 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13080 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13090 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 130A0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 130B0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 130C0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 130D0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 130E0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 130F0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13100 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13110 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13120 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13130 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13140 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13150 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13160 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13170 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13180 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13190 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 131A0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 131B0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 131C0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 131D0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 131E0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 131F0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13200 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13210 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13220 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13230 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13240 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13250 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13260 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13270 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13280 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13290 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 132A0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 132B0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 132C0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 132D0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 132E0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 132F0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13300 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13310 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13320 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13330 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13340 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13350 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13360 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13370 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13380 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13390 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 133A0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 133B0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 133C0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 133D0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 133E0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 133F0 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13400 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13410 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,
  /* 13420 */     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     G,     O,

  /* Egyptian Hieroglyph Format Controls */

  /* 13430 */     J,     J,     J,     J,     J,     J,     J,    SB,    SE,     O,     O,     O,     O,     O,     O,     O,

  /* Pahawh Hmong */

  /* 16B00 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 16B10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 16B20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 16B30 */ VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV,     O,

  /* Miao */

  /* 16F00 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 16F10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 16F20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 16F30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 16F40 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O, CMBLW,
  /* 16F50 */     O,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,
  /* 16F60 */  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,
  /* 16F70 */  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,
  /* 16F80 */  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,  VBLW,     O,     O,     O,     O,     O,     O,     O, VMBLW,
  /* 16F90 */ VMBLW, VMBLW, VMBLW,     O,     O,     O,     O,     O,

  /* Ideographic Symbols and Punctuation */

  /* 16FE0 */     O,     O,     O,     O,     B,     O,     O,     O,

  /* Khitan Small Script */

  /* 18B00 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18B10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18B20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18B30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18B40 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18B50 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18B60 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18B70 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18B80 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18B90 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18BA0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18BB0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18BC0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18BD0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18BE0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18BF0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18C00 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18C10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18C20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18C30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18C40 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18C50 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18C60 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18C70 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18C80 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18C90 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18CA0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18CB0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18CC0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 18CD0 */     B,     B,     B,     B,     B,     B,     O,     O,

  /* Duployan */

  /* 1BC00 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1BC10 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1BC20 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1BC30 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1BC40 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1BC50 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1BC60 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,
  /* 1BC70 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,
  /* 1BC80 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,     O,
  /* 1BC90 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O, CMBLW, CMBLW,     O,

  /* Nyiakeng Puachue Hmong */

  /* 1E100 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1E110 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1E120 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,
  /* 1E130 */ VMABV, VMABV, VMABV, VMABV, VMABV, VMABV, VMABV,     B,     B,     B,     B,     B,     B,     B,     O,     O,
  /* 1E140 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     B,     B,

  /* Wancho */

  /* 1E2C0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1E2D0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1E2E0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B, VMABV, VMABV, VMABV, VMABV,
  /* 1E2F0 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

  /* Adlam */

  /* 1E900 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1E910 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1E920 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1E930 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,
  /* 1E940 */     B,     B,     B,     B, CMABV, CMABV, CMABV, CMABV, CMABV, CMABV, CMABV,     B,     O,     O,     O,     O,
  /* 1E950 */     B,     B,     B,     B,     B,     B,     B,     B,     B,     B,     O,     O,     O,     O,     O,     O,

];

const USE_OFFSET_0X0028: usize = 0;
const USE_OFFSET_0X00A0: usize = 24;
const USE_OFFSET_0X0640: usize = 80;
const USE_OFFSET_0X07C8: usize = 88;
const USE_OFFSET_0X0840: usize = 144;
const USE_OFFSET_0X0900: usize = 176;
const USE_OFFSET_0X0F00: usize = 1448;
const USE_OFFSET_0X1000: usize = 1648;
const USE_OFFSET_0X1700: usize = 1808;
const USE_OFFSET_0X1900: usize = 2240;
const USE_OFFSET_0X1B00: usize = 2656;
const USE_OFFSET_0X1CD0: usize = 2992;
const USE_OFFSET_0X1DF8: usize = 3040;
const USE_OFFSET_0X2008: usize = 3048;
const USE_OFFSET_0X2070: usize = 3064;
const USE_OFFSET_0X20F0: usize = 3088;
const USE_OFFSET_0X25C8: usize = 3096;
const USE_OFFSET_0X2D30: usize = 3104;
const USE_OFFSET_0XA800: usize = 3184;
const USE_OFFSET_0XABC0: usize = 3944;
const USE_OFFSET_0X10A00: usize = 4008;
const USE_OFFSET_0X10AC0: usize = 4088;
const USE_OFFSET_0X10B80: usize = 4128;
const USE_OFFSET_0X10D00: usize = 4176;
const USE_OFFSET_0X10E80: usize = 4240;
const USE_OFFSET_0X10F30: usize = 4296;
const USE_OFFSET_0X10FB0: usize = 4336;
const USE_OFFSET_0X11100: usize = 4608;
const USE_OFFSET_0X11280: usize = 4928;
const USE_OFFSET_0X11400: usize = 5176;
const USE_OFFSET_0X11580: usize = 5400;
const USE_OFFSET_0X11800: usize = 5848;
const USE_OFFSET_0X11900: usize = 5912;
const USE_OFFSET_0X119A0: usize = 6008;
const USE_OFFSET_0X11C00: usize = 6264;
const USE_OFFSET_0X11D00: usize = 6448;
const USE_OFFSET_0X11EE0: usize = 6624;
const USE_OFFSET_0X13000: usize = 6648;
const USE_OFFSET_0X16B00: usize = 7736;
const USE_OFFSET_0X16F00: usize = 7792;
const USE_OFFSET_0X16FE0: usize = 7944;
const USE_OFFSET_0X18B00: usize = 7952;
const USE_OFFSET_0X1BC00: usize = 8424;
const USE_OFFSET_0X1E100: usize = 8584;
const USE_OFFSET_0X1E2C0: usize = 8664;
const USE_OFFSET_0X1E900: usize = 8728;

#[rustfmt::skip]
pub fn get_category(u: u32) -> Category {
    match u >> 12 {
        0x0 => {
            if (0x0028..=0x003F).contains(&u) { return USE_TABLE[u as usize - 0x0028 + USE_OFFSET_0X0028]; }
            if (0x00A0..=0x00D7).contains(&u) { return USE_TABLE[u as usize - 0x00A0 + USE_OFFSET_0X00A0]; }
            if (0x0640..=0x0647).contains(&u) { return USE_TABLE[u as usize - 0x0640 + USE_OFFSET_0X0640]; }
            if (0x07C8..=0x07FF).contains(&u) { return USE_TABLE[u as usize - 0x07C8 + USE_OFFSET_0X07C8]; }
            if (0x0840..=0x085F).contains(&u) { return USE_TABLE[u as usize - 0x0840 + USE_OFFSET_0X0840]; }
            if (0x0900..=0x0DF7).contains(&u) { return USE_TABLE[u as usize - 0x0900 + USE_OFFSET_0X0900]; }
            if (0x0F00..=0x0FC7).contains(&u) { return USE_TABLE[u as usize - 0x0F00 + USE_OFFSET_0X0F00]; }
        }
        0x1 => {
            if (0x1000..=0x109F).contains(&u) { return USE_TABLE[u as usize - 0x1000 + USE_OFFSET_0X1000]; }
            if (0x1700..=0x18AF).contains(&u) { return USE_TABLE[u as usize - 0x1700 + USE_OFFSET_0X1700]; }
            if (0x1900..=0x1A9F).contains(&u) { return USE_TABLE[u as usize - 0x1900 + USE_OFFSET_0X1900]; }
            if (0x1B00..=0x1C4F).contains(&u) { return USE_TABLE[u as usize - 0x1B00 + USE_OFFSET_0X1B00]; }
            if (0x1CD0..=0x1CFF).contains(&u) { return USE_TABLE[u as usize - 0x1CD0 + USE_OFFSET_0X1CD0]; }
            if (0x1DF8..=0x1DFF).contains(&u) { return USE_TABLE[u as usize - 0x1DF8 + USE_OFFSET_0X1DF8]; }
        }
        0x2 => {
            if (0x2008..=0x2017).contains(&u) { return USE_TABLE[u as usize - 0x2008 + USE_OFFSET_0X2008]; }
            if (0x2070..=0x2087).contains(&u) { return USE_TABLE[u as usize - 0x2070 + USE_OFFSET_0X2070]; }
            if (0x20F0..=0x20F7).contains(&u) { return USE_TABLE[u as usize - 0x20F0 + USE_OFFSET_0X20F0]; }
            if (0x25C8..=0x25CF).contains(&u) { return USE_TABLE[u as usize - 0x25C8 + USE_OFFSET_0X25C8]; }
            if (0x2D30..=0x2D7F).contains(&u) { return USE_TABLE[u as usize - 0x2D30 + USE_OFFSET_0X2D30]; }
        }
        0xA => {
            if (0xA800..=0xAAF7).contains(&u) { return USE_TABLE[u as usize - 0xA800 + USE_OFFSET_0XA800]; }
            if (0xABC0..=0xABFF).contains(&u) { return USE_TABLE[u as usize - 0xABC0 + USE_OFFSET_0XABC0]; }
        }
        0x10 => {
            if (0x10A00..=0x10A4F).contains(&u) { return USE_TABLE[u as usize - 0x10A00 + USE_OFFSET_0X10A00]; }
            if (0x10AC0..=0x10AE7).contains(&u) { return USE_TABLE[u as usize - 0x10AC0 + USE_OFFSET_0X10AC0]; }
            if (0x10B80..=0x10BAF).contains(&u) { return USE_TABLE[u as usize - 0x10B80 + USE_OFFSET_0X10B80]; }
            if (0x10D00..=0x10D3F).contains(&u) { return USE_TABLE[u as usize - 0x10D00 + USE_OFFSET_0X10D00]; }
            if (0x10E80..=0x10EB7).contains(&u) { return USE_TABLE[u as usize - 0x10E80 + USE_OFFSET_0X10E80]; }
            if (0x10F30..=0x10F57).contains(&u) { return USE_TABLE[u as usize - 0x10F30 + USE_OFFSET_0X10F30]; }
            if (0x10FB0..=0x110BF).contains(&u) { return USE_TABLE[u as usize - 0x10FB0 + USE_OFFSET_0X10FB0]; }
        }
        0x11 => {
            if (0x10FB0..=0x110BF).contains(&u) { return USE_TABLE[u as usize - 0x10FB0 + USE_OFFSET_0X10FB0]; }
            if (0x11100..=0x1123F).contains(&u) { return USE_TABLE[u as usize - 0x11100 + USE_OFFSET_0X11100]; }
            if (0x11280..=0x11377).contains(&u) { return USE_TABLE[u as usize - 0x11280 + USE_OFFSET_0X11280]; }
            if (0x11400..=0x114DF).contains(&u) { return USE_TABLE[u as usize - 0x11400 + USE_OFFSET_0X11400]; }
            if (0x11580..=0x1173F).contains(&u) { return USE_TABLE[u as usize - 0x11580 + USE_OFFSET_0X11580]; }
            if (0x11800..=0x1183F).contains(&u) { return USE_TABLE[u as usize - 0x11800 + USE_OFFSET_0X11800]; }
            if (0x11900..=0x1195F).contains(&u) { return USE_TABLE[u as usize - 0x11900 + USE_OFFSET_0X11900]; }
            if (0x119A0..=0x11A9F).contains(&u) { return USE_TABLE[u as usize - 0x119A0 + USE_OFFSET_0X119A0]; }
            if (0x11C00..=0x11CB7).contains(&u) { return USE_TABLE[u as usize - 0x11C00 + USE_OFFSET_0X11C00]; }
            if (0x11D00..=0x11DAF).contains(&u) { return USE_TABLE[u as usize - 0x11D00 + USE_OFFSET_0X11D00]; }
            if (0x11EE0..=0x11EF7).contains(&u) { return USE_TABLE[u as usize - 0x11EE0 + USE_OFFSET_0X11EE0]; }
        }
        0x13 => {
            if (0x13000..=0x1343F).contains(&u) { return USE_TABLE[u as usize - 0x13000 + USE_OFFSET_0X13000]; }
        }
        0x16 => {
            if (0x16B00..=0x16B37).contains(&u) { return USE_TABLE[u as usize - 0x16B00 + USE_OFFSET_0X16B00]; }
            if (0x16F00..=0x16F97).contains(&u) { return USE_TABLE[u as usize - 0x16F00 + USE_OFFSET_0X16F00]; }
            if (0x16FE0..=0x16FE7).contains(&u) { return USE_TABLE[u as usize - 0x16FE0 + USE_OFFSET_0X16FE0]; }
        }
        0x18 => {
            if (0x18B00..=0x18CD7).contains(&u) { return USE_TABLE[u as usize - 0x18B00 + USE_OFFSET_0X18B00]; }
        }
        0x1B => {
            if (0x1BC00..=0x1BC9F).contains(&u) { return USE_TABLE[u as usize - 0x1BC00 + USE_OFFSET_0X1BC00]; }
        }
        0x1E => {
            if (0x1E100..=0x1E14F).contains(&u) { return USE_TABLE[u as usize - 0x1E100 + USE_OFFSET_0X1E100]; }
            if (0x1E2C0..=0x1E2FF).contains(&u) { return USE_TABLE[u as usize - 0x1E2C0 + USE_OFFSET_0X1E2C0]; }
            if (0x1E900..=0x1E95F).contains(&u) { return USE_TABLE[u as usize - 0x1E900 + USE_OFFSET_0X1E900]; }
        }
        _ => {}
    }

    O
}