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
|
/* Generated by text/syllabic.py from HarfBuzz 10.2.0's sources; do not edit. */
#include "syllabic.h"
/* Each character's Indic category and position (hb-ot-shaper-indic-table.cc, Unicode 16):
* category | position << 8. */
static const uint16_t indic_cells[1769] = {
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x040A, 0x0E00, 0x0E00, 0x040A, 0x040A, 0x040A, 0x040A,
0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x040A, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0D39, 0x0D39, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x040A, 0x0D08, 0x0D08, 0x0D08, 0x0D08,
0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402,
0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x040F, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0907, 0x0907, 0x0E03, 0x0D11, 0x0907, 0x0207,
0x0907, 0x0907, 0x0907, 0x0907, 0x0907, 0x0907, 0x0907, 0x0907, 0x0907, 0x0907, 0x0907, 0x0907,
0x0907, 0x0804, 0x0207, 0x0907, 0x0E00, 0x0D09, 0x0D09, 0x0D08, 0x0D08, 0x0907, 0x0907, 0x0907,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0402, 0x0402, 0x0907, 0x0907,
0x0E00, 0x0E00, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A,
0x0E00, 0x0E00, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x040A, 0x0D08, 0x0D08, 0x0D08, 0x0E00, 0x0402, 0x0402, 0x0402,
0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0E00, 0x0E00, 0x0402, 0x0402, 0x0E00, 0x0E00, 0x0402,
0x0402, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0E00, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x040F, 0x0E00, 0x0401, 0x0E00, 0x0E00, 0x0E00, 0x0401, 0x0401,
0x0401, 0x0401, 0x0E00, 0x0E00, 0x0E03, 0x0D11, 0x0C07, 0x0207, 0x0C07, 0x0907, 0x0907, 0x0907,
0x0907, 0x0E00, 0x0E00, 0x0207, 0x0207, 0x0E00, 0x0E00, 0x0C07, 0x0C07, 0x0804, 0x0401, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0C07, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0401, 0x0401, 0x0E00, 0x0401, 0x0402, 0x0402, 0x0907, 0x0907, 0x0E00, 0x0E00, 0x040A, 0x040A,
0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040F, 0x0401, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x040A, 0x0E00, 0x0D08, 0x0E00,
0x0E00, 0x0D08, 0x0D08, 0x0D08, 0x0E00, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0402, 0x0402, 0x0E00, 0x0E00, 0x0402, 0x0402, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0E00, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x040F, 0x0E00, 0x0401, 0x0401, 0x0E00, 0x0401, 0x0401, 0x0E00, 0x0401, 0x0401, 0x0E00, 0x0E00,
0x0E03, 0x0E00, 0x0C07, 0x0207, 0x0C0D, 0x0C07, 0x0C07, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0C07,
0x0C07, 0x0E00, 0x0E00, 0x0C07, 0x0C07, 0x0804, 0x0E00, 0x0E00, 0x0E00, 0x0807, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0401, 0x0401, 0x0401, 0x0401, 0x0E00, 0x0401, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A,
0x040A, 0x040A, 0x040A, 0x040A, 0x0D08, 0x0D08, 0x0401, 0x0401, 0x0E00, 0x0410, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0D08, 0x0D08, 0x0D08,
0x0E00, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0E00, 0x0402,
0x0402, 0x0402, 0x0E00, 0x0402, 0x0402, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0E00, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x040F, 0x0E00, 0x0401, 0x0401,
0x0E00, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0E00, 0x0E00, 0x0E03, 0x0D11, 0x0C07, 0x0207,
0x0C07, 0x0C07, 0x0C07, 0x0C07, 0x0C07, 0x0907, 0x0E00, 0x0907, 0x0907, 0x0C07, 0x0E00, 0x0C07,
0x0C07, 0x0804, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0402, 0x0402, 0x0C07, 0x0C07,
0x0E00, 0x0E00, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0401, 0x0D09, 0x0E03,
0x0D09, 0x0E03, 0x0E03, 0x0E03, 0x0E00, 0x0708, 0x0D08, 0x0D08, 0x0E00, 0x0402, 0x0402, 0x0402,
0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0E00, 0x0E00, 0x0402, 0x0402, 0x0E00, 0x0E00, 0x0402,
0x0402, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0E00, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x040F, 0x0E00, 0x0401, 0x0401, 0x0E00, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0E00, 0x0E00, 0x0E03, 0x0D11, 0x0C07, 0x0507, 0x0C07, 0x0907, 0x0907, 0x0907,
0x0907, 0x0E00, 0x0E00, 0x0207, 0x0507, 0x0E00, 0x0E00, 0x0C07, 0x0C07, 0x0804, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E03, 0x0507, 0x0C07, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0401, 0x0401, 0x0E00, 0x0401, 0x0402, 0x0402, 0x0907, 0x0907, 0x0E00, 0x0E00, 0x040A, 0x040A,
0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x0E00, 0x0401, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0D08, 0x0E00, 0x0E00, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0E00,
0x0E00, 0x0E00, 0x0402, 0x0402, 0x0402, 0x0E00, 0x0402, 0x0402, 0x0402, 0x0401, 0x0E00, 0x0E00,
0x0E00, 0x0401, 0x0401, 0x0E00, 0x0401, 0x0E00, 0x0401, 0x0401, 0x0E00, 0x0E00, 0x0E00, 0x0401,
0x0401, 0x0E00, 0x0E00, 0x0E00, 0x0401, 0x0401, 0x0401, 0x0E00, 0x0E00, 0x0E00, 0x0401, 0x0401,
0x040F, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0C07, 0x0C07, 0x0907, 0x0C07, 0x0C07, 0x0E00, 0x0E00, 0x0E00, 0x0207, 0x0207,
0x0207, 0x0E00, 0x0C07, 0x0C07, 0x0C07, 0x0604, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0C07, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A,
0x040A, 0x040A, 0x040A, 0x040A, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0D08, 0x0D08, 0x0D08, 0x0D08,
0x0D08, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0E00, 0x0402, 0x0402,
0x0402, 0x0E00, 0x0402, 0x0402, 0x0402, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0E00, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x040F, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0E00, 0x0E00, 0x0E03, 0x0D11, 0x0707, 0x0707,
0x0707, 0x0707, 0x0707, 0x0907, 0x0907, 0x0E00, 0x0707, 0x0707, 0x0707, 0x0E00, 0x0707, 0x0707,
0x0707, 0x0604, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0707, 0x0707, 0x0E00,
0x0401, 0x0401, 0x0401, 0x0E00, 0x0E00, 0x0401, 0x0E00, 0x0E00, 0x0402, 0x0402, 0x0707, 0x0707,
0x0E00, 0x0E00, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x040A, 0x0D08, 0x0D08, 0x0D08, 0x0E00, 0x0402, 0x0402, 0x0402,
0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0E00, 0x0402, 0x0402, 0x0402, 0x0E00, 0x0402, 0x0402,
0x0402, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0E00, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x040F, 0x0401, 0x0401, 0x0401, 0x0E00, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0E00, 0x0E00, 0x0E03, 0x0D11, 0x0707, 0x0707, 0x0707, 0x0707, 0x0707, 0x0907,
0x0907, 0x0E00, 0x0707, 0x0907, 0x0907, 0x0E00, 0x0907, 0x0907, 0x0707, 0x0604, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0907, 0x0907, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0401, 0x0401, 0x0E00, 0x0402, 0x0402, 0x0707, 0x0707, 0x0E00, 0x0E00, 0x040A, 0x040A,
0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x0E00, 0x0412, 0x0412, 0x0D08,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0D08, 0x0D08, 0x0D08, 0x0D08, 0x040A, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402,
0x0402, 0x0E00, 0x0402, 0x0402, 0x0402, 0x0E00, 0x0402, 0x0402, 0x0402, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x040F, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0907,
0x0907, 0x0D11, 0x0C07, 0x0C07, 0x0C07, 0x0C07, 0x0C07, 0x0C07, 0x0C07, 0x0E00, 0x0207, 0x0207,
0x0207, 0x0E00, 0x0C07, 0x0C07, 0x0C07, 0x0604, 0x0E0E, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0401, 0x0401, 0x0401, 0x0C07, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0402,
0x0402, 0x0402, 0x0C07, 0x0C07, 0x0E00, 0x0E00, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A,
0x040A, 0x040A, 0x040A, 0x040A, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x040F, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x040F,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402,
0x0402, 0x0402, 0x0402, 0x0B17, 0x0B17, 0x0614, 0x0614, 0x0815, 0x0815, 0x0316, 0x0D09, 0x0614,
0x0614, 0x0614, 0x0D09, 0x0E03, 0x0D08, 0x0E04, 0x0E20, 0x0E26, 0x0E24, 0x0E25, 0x0E23, 0x0401,
0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A,
0x0E00, 0x0E00, 0x0401, 0x0E00, 0x0401, 0x0401, 0x0402, 0x0402, 0x0402, 0x0402, 0x0B17, 0x0B17,
0x0815, 0x0815, 0x040F, 0x0401, 0x0401, 0x0401, 0x0E26, 0x0E26, 0x0E29, 0x0401, 0x0B17, 0x0E27,
0x0E27, 0x0401, 0x0401, 0x0B17, 0x0B17, 0x0E27, 0x0E27, 0x0E27, 0x0E27, 0x0E27, 0x0401, 0x0401,
0x0401, 0x0614, 0x0614, 0x0614, 0x0614, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0E25, 0x0B17, 0x0316, 0x0614, 0x0614, 0x0D08,
0x0D08, 0x0D08, 0x0D08, 0x0D08, 0x0D08, 0x0D08, 0x0401, 0x0D08, 0x040A, 0x040A, 0x040A, 0x040A,
0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x0D08, 0x0D08, 0x0D08, 0x0614, 0x0E00, 0x0E00,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x040F, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0402,
0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402, 0x0402,
0x0402, 0x0402, 0x0402, 0x0402, 0x0E00, 0x0E00, 0x0B17, 0x0614, 0x0614, 0x0614, 0x0614, 0x0815,
0x0815, 0x0815, 0x0614, 0x0B17, 0x0B17, 0x0316, 0x0316, 0x0316, 0x0B17, 0x0B17, 0x0E1A, 0x0E1B,
0x0E1B, 0x0E19, 0x0E19, 0x0E1A, 0x0E19, 0x0E1A, 0x0E1A, 0x0E1A, 0x0E1A, 0x0E1A, 0x0E04, 0x0E1B,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x040A, 0x0E00, 0x0E00, 0x0D11, 0x0E1B, 0x0E00, 0x0E00,
0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0D09, 0x0D09, 0x0D09, 0x0E00, 0x0D09, 0x0D09, 0x0D09, 0x0D09,
0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09,
0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D11, 0x0D11, 0x0D11, 0x0D11, 0x0D09, 0x0D11, 0x0D11,
0x0D11, 0x0D11, 0x0401, 0x0401, 0x0D09, 0x0401, 0x0401, 0x0D09, 0x0D09, 0x0D09, 0x040A, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E05, 0x0E06, 0x0E00, 0x0E00,
0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x040A, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0D39, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0D39, 0x0D39, 0x0D39, 0x0E00, 0x0E00, 0x0E00,
0x040B, 0x0E00, 0x0E00, 0x0E00, 0x040A, 0x040A, 0x040A, 0x040A, 0x0E00, 0x0D09, 0x0D09, 0x0D09,
0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09, 0x0D09,
0x0D09, 0x0D09, 0x0D09, 0x0D11, 0x0D11, 0x0D11, 0x0D11, 0x0D11, 0x0D11, 0x0E00, 0x0E00, 0x0E00,
0x0E00, 0x0E00, 0x0E00, 0x0402, 0x0907, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0614, 0x0E00,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x040A, 0x040A, 0x040A,
0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0E00, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0401,
0x0401, 0x0401, 0x0401, 0x0401, 0x0401, 0x0E00, 0x0401, 0x0401, 0x0401, 0x040A, 0x040A, 0x040A,
0x0E00, 0x0E00, 0x0E00, 0x0401, 0x0E27, 0x0E03, 0x0E03, 0x0401, 0x0401, 0x0E28, 0x0E28, 0x0E28,
0x0E28, 0x0E28, 0x0E28, 0x0E28, 0x0E28, 0x0E28, 0x0E28, 0x0E28, 0x0E28, 0x0E28, 0x0E28, 0x0E28,
0x0E28, 0x0E00, 0x0D08, 0x0D08, 0x0D08, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
0x0E03, 0x0E03, 0x0E00, 0x0E00, 0x0E00, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A,
0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A, 0x040A,
0x040A, 0x0E00, 0x0E00, 0x0E00, 0x0E00,
};
static const struct { uint32_t first, last, at; } indic_runs[17] = {
{0x0028, 0x003F, 0},
{0x00A0, 0x00D7, 24},
{0x0900, 0x0D7F, 80},
{0x1000, 0x109F, 1232},
{0x1780, 0x17EF, 1392},
{0x1CD0, 0x1CFF, 1504},
{0x2008, 0x2027, 1552},
{0x2070, 0x2087, 1584},
{0x25CC, 0x25CC, 1608},
{0x25F8, 0x25FF, 1609},
{0xA8E0, 0xA8FF, 1617},
{0xA9E0, 0xA9FF, 1649},
{0xAA60, 0xAA7F, 1681},
{0xFE00, 0xFE0F, 1713},
{0x11300, 0x11307, 1729},
{0x11338, 0x1133F, 1737},
{0x116D0, 0x116E7, 1745},
};
uint16_t vega_indic_categories(uint32_t u) {
for (unsigned i = 0; i < 17 && u >= indic_runs[i].first; ++i)
if (u <= indic_runs[i].last) return indic_cells[indic_runs[i].at + u - indic_runs[i].first];
return 0x0E00;
}
/* Each character's USE category (hb-ot-shaper-use-table.hh, Unicode 16): HarfBuzz's arrays and
* lookup. */
static const uint8_t use_u8[3345] = {
16, 50, 51, 51, 51, 52, 51, 83, 118, 131, 57, 58, 59, 195, 211, 62,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
15, 0, 1, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 4, 2, 2,
5, 6, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 2, 2, 17,
18, 19, 20, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 21,
22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 2, 33, 2, 2, 2,
2, 34, 35, 2, 2, 2, 2, 2, 2, 2, 2, 2, 36, 2, 2, 2,
37, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 38, 2, 39, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 40, 41, 42, 43, 44, 45, 2, 46, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 47, 48, 2,
49, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 50, 51, 2, 2, 2,
2, 2, 2, 2, 2, 52, 53, 2, 54, 2, 2, 55, 56, 2, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 2, 70, 71, 72, 73,
2, 74, 2, 75, 76, 77, 78, 2, 2, 79, 80, 81, 82, 2, 83, 84,
2, 85, 85, 85, 85, 85, 85, 85, 85, 86, 85, 85, 85, 85, 85, 85,
85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85,
85, 85, 85, 85, 85, 85, 85, 85, 87, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 88, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 89, 90, 2, 2, 2, 91, 2, 2, 2, 92,
93, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 94, 94, 94, 95, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 96, 97, 2, 2, 2, 2, 2,
2, 2, 2, 98, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 99, 2, 2, 100, 2, 2, 2, 101, 2, 102, 2, 2, 2,
2, 2, 2, 103, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 104, 104, 105, 106, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104,
104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
0, 2, 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4,
0, 5, 0, 0, 0, 0, 0, 6, 0, 0, 7, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, 11,
11, 11, 11, 0, 0, 0, 9, 12, 0, 2, 2, 2, 2, 13, 14, 0,
0, 11, 15, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 16, 17,
18, 19, 20, 21, 22, 16, 23, 24, 25, 12, 26, 27, 20, 2, 2, 2,
2, 2, 20, 0, 2, 2, 2, 2, 2, 0, 2, 2, 2, 2, 2, 2,
2, 28, 29, 30, 2, 2, 2, 9, 30, 9, 30, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 9, 2, 2, 2, 9, 9, 0, 2, 2, 0, 17,
18, 19, 20, 31, 32, 33, 32, 34, 0, 0, 0, 0, 35, 0, 0, 2,
30, 2, 0, 0, 0, 0, 0, 9, 36, 12, 15, 30, 2, 2, 9, 0,
30, 9, 2, 30, 9, 2, 0, 37, 18, 19, 31, 0, 27, 38, 27, 39,
0, 40, 0, 0, 0, 30, 2, 9, 9, 0, 0, 0, 2, 2, 2, 2,
2, 41, 42, 43, 0, 0, 0, 0, 0, 12, 15, 30, 2, 2, 2, 2,
30, 2, 30, 2, 2, 2, 2, 2, 2, 9, 2, 30, 2, 2, 0, 17,
18, 19, 20, 21, 27, 22, 35, 24, 0, 0, 0, 0, 0, 30, 41, 41,
44, 12, 29, 30, 2, 2, 2, 9, 30, 9, 2, 30, 2, 2, 0, 17,
45, 0, 0, 27, 22, 0, 0, 2, 30, 30, 0, 0, 0, 0, 0, 0,
0, 0, 46, 30, 2, 2, 9, 0, 2, 9, 2, 2, 0, 30, 9, 9,
2, 0, 30, 9, 0, 2, 9, 0, 2, 2, 2, 2, 2, 2, 0, 0,
23, 16, 47, 0, 48, 33, 48, 34, 0, 0, 0, 0, 35, 0, 0, 0,
0, 15, 29, 49, 2, 2, 2, 9, 2, 9, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 0, 17, 22, 16, 23, 47, 22, 38, 22, 39,
0, 0, 0, 27, 31, 2, 9, 0, 0, 10, 29, 30, 2, 2, 2, 9,
2, 2, 2, 30, 2, 2, 0, 17, 45, 0, 0, 35, 47, 0, 0, 0,
9, 50, 51, 0, 0, 0, 0, 0, 0, 11, 29, 2, 2, 2, 2, 9,
2, 2, 2, 2, 2, 2, 52, 53, 23, 19, 20, 31, 48, 33, 48, 34,
54, 0, 0, 0, 35, 0, 0, 0, 30, 12, 29, 30, 2, 2, 2, 2,
2, 2, 2, 2, 9, 0, 2, 2, 2, 2, 30, 2, 2, 2, 2, 30,
0, 2, 2, 2, 9, 0, 55, 0, 35, 23, 22, 31, 31, 18, 48, 48,
25, 0, 23, 0, 0, 0, 0, 0, 0, 2, 0, 2, 9, 0, 0, 0,
0, 0, 0, 0, 0, 20, 0, 0, 0, 2, 2, 56, 56, 57, 0, 0,
18, 2, 2, 2, 2, 30, 2, 2, 2, 2, 2, 2, 2, 2, 2, 9,
0, 58, 21, 59, 22, 22, 20, 20, 46, 21, 11, 31, 11, 2, 2, 60,
61, 61, 61, 61, 61, 62, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61,
61, 61, 61, 61, 61, 61, 61, 63, 0, 0, 0, 0, 64, 0, 0, 0,
0, 2, 2, 2, 2, 2, 65, 45, 59, 66, 22, 22, 67, 68, 69, 70,
71, 2, 2, 2, 2, 2, 1, 0, 5, 2, 2, 2, 23, 20, 2, 2,
72, 71, 73, 74, 65, 73, 29, 29, 2, 52, 22, 53, 2, 2, 2, 2,
2, 2, 75, 76, 77, 29, 29, 78, 79, 2, 2, 2, 2, 2, 29, 45,
0, 2, 59, 80, 0, 0, 0, 0, 30, 2, 59, 47, 0, 0, 0, 0,
0, 2, 59, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 9,
2, 9, 59, 0, 0, 0, 0, 0, 0, 2, 2, 81, 45, 22, 59, 20,
48, 48, 48, 48, 15, 82, 83, 84, 85, 86, 87, 0, 0, 0, 0, 88,
0, 9, 0, 0, 30, 0, 89, 81, 90, 2, 2, 2, 2, 9, 0, 0,
0, 42, 42, 91, 92, 2, 2, 2, 2, 2, 2, 2, 2, 13, 9, 0,
0, 93, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
9, 22, 80, 45, 22, 94, 61, 0, 0, 95, 96, 95, 95, 97, 98, 0,
0, 2, 2, 2, 2, 2, 2, 2, 0, 2, 2, 9, 0, 0, 0, 0,
0, 2, 2, 2, 2, 2, 2, 0, 0, 2, 2, 2, 2, 29, 0, 0,
0, 2, 2, 2, 2, 2, 9, 0, 0, 2, 2, 2, 52, 99, 45, 0,
0, 2, 2, 100, 101, 102, 103, 61, 63, 104, 16, 45, 22, 59, 21, 80,
48, 48, 76, 11, 11, 11, 105, 46, 40, 11, 106, 74, 2, 2, 2, 2,
2, 2, 2, 107, 22, 20, 20, 22, 48, 48, 22, 108, 2, 2, 2, 9,
0, 0, 0, 0, 0, 0, 109, 110, 110, 110, 110, 0, 0, 0, 0, 0,
0, 106, 74, 2, 2, 2, 2, 2, 2, 60, 61, 59, 25, 22, 111, 61,
2, 2, 2, 2, 107, 22, 23, 45, 45, 102, 112, 0, 0, 0, 0, 0,
0, 2, 2, 61, 18, 48, 23, 113, 102, 102, 102, 114, 115, 0, 0, 0,
0, 2, 2, 2, 2, 2, 0, 30, 2, 11, 46, 116, 116, 116, 11, 116,
116, 15, 116, 116, 116, 26, 0, 40, 0, 0, 0, 117, 51, 11, 5, 0,
0, 0, 0, 0, 0, 0, 118, 0, 0, 0, 0, 0, 0, 0, 6, 119,
120, 42, 42, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 120, 120,
121, 120, 120, 120, 120, 120, 120, 120, 120, 0, 0, 122, 0, 0, 0, 0,
0, 0, 7, 122, 0, 0, 0, 0, 0, 46, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 123, 123, 0, 0,
0, 2, 2, 2, 2, 0, 0, 0, 30, 0, 0, 0, 0, 0, 0, 0,
124, 0, 123, 123, 0, 0, 0, 0, 0, 2, 53, 2, 108, 2, 10, 2,
2, 2, 65, 19, 16, 0, 0, 31, 0, 2, 2, 0, 0, 0, 0, 0,
0, 29, 2, 2, 2, 2, 2, 2, 2, 2, 2, 125, 23, 23, 23, 23,
23, 23, 23, 126, 0, 0, 0, 0, 0, 11, 11, 11, 11, 11, 11, 11,
11, 11, 2, 0, 0, 0, 0, 0, 52, 2, 2, 2, 22, 22, 127, 116,
0, 2, 2, 2, 128, 20, 59, 20, 113, 102, 129, 0, 0, 0, 0, 0,
0, 11, 130, 2, 2, 2, 2, 2, 2, 2, 131, 23, 22, 20, 48, 132,
133, 134, 0, 0, 0, 0, 0, 0, 0, 2, 2, 52, 30, 2, 2, 2,
2, 2, 2, 2, 2, 10, 22, 59, 99, 76, 135, 136, 137, 0, 0, 0,
0, 2, 138, 2, 2, 2, 2, 139, 0, 30, 2, 42, 5, 0, 79, 15,
2, 53, 22, 140, 52, 53, 2, 2, 105, 10, 9, 0, 0, 0, 0, 0,
0, 2, 2, 2, 2, 2, 141, 21, 25, 0, 0, 142, 143, 0, 0, 0,
0, 2, 65, 45, 23, 80, 47, 144, 0, 81, 81, 81, 81, 81, 81, 81,
81, 0, 0, 0, 0, 0, 0, 0, 6, 120, 120, 120, 120, 121, 0, 0,
0, 2, 2, 2, 2, 2, 9, 2, 2, 2, 9, 2, 30, 2, 2, 2,
2, 2, 30, 2, 2, 2, 30, 9, 0, 128, 20, 27, 31, 0, 0, 145,
146, 2, 2, 30, 2, 30, 2, 2, 2, 2, 2, 2, 0, 14, 37, 0,
147, 2, 2, 13, 37, 0, 30, 2, 2, 2, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 30, 2, 2, 9, 2, 2, 11, 41, 0, 0, 0,
0, 2, 2, 2, 0, 27, 22, 22, 30, 2, 2, 2, 0, 0, 0, 0,
0, 2, 2, 2, 2, 2, 27, 38, 0, 2, 2, 2, 116, 116, 116, 116,
116, 148, 2, 9, 0, 0, 0, 0, 0, 2, 14, 14, 0, 0, 0, 0,
0, 9, 2, 2, 9, 2, 2, 2, 2, 30, 2, 9, 0, 30, 2, 0,
0, 149, 150, 151, 2, 2, 2, 2, 2, 2, 2, 2, 2, 22, 22, 20,
20, 20, 22, 22, 134, 0, 0, 0, 0, 0, 152, 152, 152, 152, 152, 152,
152, 152, 152, 152, 2, 2, 2, 2, 2, 53, 52, 53, 0, 0, 0, 0,
153, 11, 74, 2, 2, 2, 2, 2, 2, 18, 19, 21, 16, 24, 37, 0,
0, 0, 31, 0, 0, 0, 0, 0, 0, 11, 49, 2, 2, 2, 2, 2,
2, 2, 2, 2, 128, 20, 22, 154, 22, 21, 155, 156, 2, 2, 2, 2,
2, 0, 0, 65, 157, 0, 0, 0, 0, 2, 13, 0, 0, 0, 0, 0,
0, 2, 65, 25, 20, 20, 20, 22, 22, 108, 158, 0, 0, 56, 159, 31,
160, 30, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 23,
19, 22, 22, 161, 44, 0, 0, 0, 49, 128, 0, 0, 0, 0, 0, 0,
0, 2, 2, 2, 9, 9, 2, 2, 30, 2, 2, 2, 2, 2, 2, 2,
30, 2, 2, 2, 2, 2, 2, 2, 10, 18, 19, 21, 22, 162, 31, 0,
0, 11, 11, 30, 2, 2, 2, 9, 30, 9, 2, 30, 2, 2, 58, 17,
23, 16, 23, 47, 32, 33, 32, 34, 0, 0, 0, 0, 35, 0, 0, 0,
2, 2, 23, 0, 11, 11, 11, 46, 0, 11, 11, 46, 0, 0, 0, 0,
0, 2, 2, 2, 2, 2, 30, 0, 9, 2, 2, 2, 30, 45, 59, 20,
20, 31, 33, 32, 32, 25, 163, 29, 164, 165, 37, 0, 0, 0, 0, 0,
0, 12, 26, 0, 0, 0, 0, 0, 0, 2, 2, 65, 25, 20, 20, 20,
22, 23, 126, 15, 17, 0, 0, 0, 0, 2, 2, 2, 2, 2, 0, 0,
166, 167, 0, 0, 0, 0, 0, 0, 0, 18, 19, 20, 20, 66, 99, 25,
160, 11, 168, 9, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2,
65, 25, 20, 20, 0, 48, 48, 11, 169, 37, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2, 2, 20, 0, 23, 19, 20, 20, 21, 16, 82,
169, 38, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 10, 170,
25, 20, 22, 22, 168, 9, 0, 0, 0, 2, 2, 2, 2, 2, 9, 43,
136, 23, 22, 20, 76, 21, 22, 0, 0, 2, 2, 2, 9, 0, 0, 0,
0, 2, 2, 2, 2, 2, 2, 18, 19, 20, 21, 22, 105, 169, 37, 0,
0, 2, 2, 2, 9, 30, 0, 2, 2, 2, 2, 30, 9, 2, 2, 2,
2, 23, 23, 18, 32, 33, 12, 171, 165, 172, 173, 0, 0, 0, 0, 0,
0, 2, 2, 2, 2, 0, 2, 2, 2, 65, 25, 20, 20, 0, 22, 23,
29, 108, 0, 33, 0, 0, 0, 0, 0, 52, 20, 22, 22, 22, 140, 2,
2, 2, 174, 175, 11, 15, 176, 61, 177, 0, 0, 1, 147, 0, 0, 0,
0, 52, 20, 22, 16, 19, 20, 2, 2, 2, 2, 158, 158, 158, 178, 178,
178, 178, 178, 178, 15, 179, 0, 30, 0, 22, 20, 20, 31, 22, 22, 11,
169, 0, 61, 61, 61, 61, 61, 61, 61, 66, 21, 82, 46, 0, 0, 0,
0, 2, 2, 2, 9, 2, 30, 2, 2, 52, 22, 22, 31, 0, 38, 22,
27, 11, 159, 180, 181, 0, 0, 0, 0, 2, 2, 2, 30, 9, 2, 2,
2, 2, 2, 2, 2, 2, 23, 23, 47, 22, 35, 82, 68, 0, 0, 0,
0, 2, 182, 66, 47, 0, 0, 0, 0, 11, 183, 2, 2, 2, 2, 2,
2, 2, 2, 23, 22, 20, 31, 0, 48, 16, 143, 0, 0, 0, 0, 0,
0, 2, 2, 2, 2, 2, 156, 0, 0, 184, 184, 184, 184, 184, 184, 184,
184, 185, 185, 185, 186, 187, 185, 184, 184, 188, 184, 184, 189, 190, 190, 190,
190, 190, 190, 190, 0, 0, 0, 0, 0, 184, 184, 184, 184, 184, 191, 0,
0, 2, 2, 2, 2, 2, 2, 2, 22, 22, 22, 22, 22, 22, 192, 193,
194, 11, 11, 11, 46, 0, 0, 0, 0, 29, 74, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 65, 47, 0, 2, 2, 2, 2, 2, 9, 0,
58, 195, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20,
20, 20, 20, 20, 20, 0, 0, 0, 40, 116, 26, 0, 0, 0, 0, 0,
0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
30, 2, 2, 2, 2, 2, 0, 58, 37, 0, 6, 120, 120, 120, 121, 0,
0, 11, 11, 11, 49, 2, 2, 2, 0, 2, 2, 2, 2, 2, 0, 0,
2, 2, 2, 2, 2, 2, 2, 2, 46, 2, 2, 2, 2, 2, 2, 11,
11, 2, 2, 2, 2, 2, 2, 22, 22, 2, 2, 2, 2, 2, 2, 2,
20, 2, 2, 44, 44, 44, 92, 0, 0, 0, 0, 0, 5, 1, 1, 0,
51, 0, 52, 5, 0, 0, 16, 47, 47, 0, 6, 1, 0, 1, 37, 37,
37, 0, 37, 1, 32, 32, 32, 37, 39, 33, 35, 32, 1, 35, 22, 35,
34, 34, 34, 34, 33, 33, 33, 35, 35, 35, 12, 22, 35, 38, 0, 0,
33, 5, 37, 39, 39, 0, 1, 34, 0, 0, 22, 22, 0, 22, 12, 0,
35, 45, 0, 32, 0, 33, 0, 33, 12, 0, 38, 37, 31, 5, 5, 0,
28, 31, 31, 35, 33, 37, 0, 35, 0, 22, 22, 37, 1, 0, 43, 43,
39, 1, 33, 33, 1, 18, 0, 53, 0, 0, 46, 0, 31, 0, 32, 33,
34, 1, 11, 11, 11, 0, 11, 11, 0, 46, 0, 1, 35, 34, 22, 37,
38, 39, 44, 33, 29, 30, 28, 28, 1, 28, 28, 35, 39, 39, 1, 28,
35, 22, 33, 33, 39, 39, 38, 1, 39, 34, 35, 6, 6, 35, 37, 37,
45, 24, 31, 45, 37, 45, 33, 44, 45, 1, 45, 1, 6, 16, 6, 5,
31, 31, 1, 5, 1, 33, 11, 26, 26, 38, 26, 26, 25, 37, 46, 33,
22, 1, 30, 28, 11, 24, 24, 27, 11, 48, 35, 33, 37, 37, 24, 31,
35, 12, 1, 0, 41, 41, 41, 35, 44, 56, 56, 34, 24, 23, 23, 45,
32, 38, 38, 37, 43, 0, 45, 14, 6, 16, 16, 16, 0, 47, 0, 51,
52, 0, 12, 29, 35, 12, 37, 33, 38, 1, 34, 26, 35, 24, 39, 1,
31, 33, 28, 29, 28, 12, 0, 34, 29, 30, 27, 28, 0, 1, 24, 24,
26, 34, 1, 1, 22, 0, 39, 44, 0, 39, 34, 35, 38, 38, 37, 0,
44, 38, 1, 39, 37, 39, 43, 43, 1, 4, 4, 0, 13, 22, 34, 33,
44, 31, 0, 35, 1, 18, 18, 32, 33, 22, 37, 37, 12, 33, 32, 39,
0, 37, 32, 44, 18, 45, 1, 43, 43, 12, 32, 39, 12, 39, 33, 37,
35, 29, 18, 29, 32, 1, 46, 34, 37, 43, 11, 11, 5, 25, 25, 31,
44, 34, 44, 18, 28, 5, 33, 18, 39, 49, 49, 50, 50, 50, 51, 52,
50, 55, 49, 49, 54, 54, 54, 49, 0, 30, 30, 29, 37, 28, 34, 0,
34,
};
static const uint16_t use_u16[856] = {
0, 0, 1, 2, 0, 3, 0, 3, 0, 0, 4, 5, 0, 6, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0,
0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 9, 10, 11, 12,
0, 0, 0, 0, 10, 13, 0, 0, 14, 10, 10, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 18, 26, 27, 21, 22, 28, 29, 30, 31, 32,
33, 34, 22, 35, 36, 0, 18, 37, 38, 21, 22, 39, 24, 40, 18, 41,
42, 43, 44, 45, 46, 47, 31, 0, 48, 49, 22, 50, 51, 52, 18, 0,
53, 49, 22, 54, 51, 55, 18, 56, 57, 49, 10, 58, 59, 60, 18, 0,
61, 62, 10, 63, 64, 65, 31, 66, 67, 68, 10, 69, 70, 10, 71, 72,
73, 74, 75, 76, 77, 0, 0, 0, 10, 10, 78, 79, 80, 81, 82, 83,
84, 85, 0, 0, 0, 0, 0, 0, 10, 86, 10, 87, 10, 88, 89, 90,
10, 10, 10, 91, 92, 93, 2, 0, 94, 0, 10, 10, 10, 10, 10, 95,
96, 10, 97, 0, 0, 0, 0, 0, 98, 99, 100, 101, 31, 10, 102, 103,
10, 10, 104, 10, 105, 106, 0, 0, 10, 107, 10, 10, 10, 108, 109, 110,
2, 2, 0, 0, 0, 0, 0, 0, 111, 10, 10, 112, 113, 2, 114, 115,
116, 10, 117, 10, 10, 10, 118, 119, 10, 10, 120, 121, 122, 0, 0, 0,
0, 0, 0, 0, 0, 123, 124, 125, 0, 0, 0, 0, 0, 0, 0, 126,
127, 128, 129, 0, 0, 0, 130, 131, 132, 0, 0, 0, 0, 0, 0, 133,
0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, 0,
0, 0, 0, 10, 10, 10, 136, 137, 0, 0, 138, 0, 0, 0, 0, 0,
139, 10, 140, 0, 10, 10, 10, 141, 142, 10, 10, 143, 144, 2, 145, 146,
10, 10, 147, 10, 148, 149, 0, 0, 150, 10, 10, 151, 152, 2, 153, 99,
10, 10, 154, 155, 156, 2, 10, 157, 10, 10, 10, 158, 159, 0, 160, 161,
0, 0, 0, 0, 10, 10, 162, 2, 163, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 164, 0, 0, 0, 0, 0, 0, 0, 165,
0, 0, 0, 0, 0, 0, 0, 166, 166, 167, 34, 168, 0, 0, 0, 0,
169, 170, 10, 171, 95, 0, 0, 0, 0, 0, 0, 0, 70, 10, 172, 0,
10, 173, 174, 0, 0, 0, 0, 0, 10, 10, 175, 2, 9, 10, 176, 10,
177, 0, 0, 0, 0, 0, 0, 0, 10, 10, 178, 173, 0, 0, 0, 0,
0, 0, 0, 10, 179, 180, 0, 10, 181, 0, 0, 182, 183, 0, 0, 0,
184, 10, 10, 185, 186, 187, 188, 189, 190, 10, 10, 191, 192, 0, 0, 0,
193, 10, 194, 195, 196, 10, 10, 197, 190, 10, 10, 198, 199, 106, 200, 103,
10, 34, 201, 202, 203, 0, 0, 0, 204, 205, 95, 10, 10, 206, 207, 2,
208, 21, 22, 209, 210, 211, 212, 213, 214, 10, 10, 215, 216, 217, 218, 0,
10, 10, 10, 219, 220, 221, 222, 0, 200, 10, 10, 223, 224, 2, 0, 0,
10, 10, 225, 226, 227, 228, 0, 0, 10, 10, 10, 229, 230, 2, 0, 0,
10, 10, 231, 232, 2, 10, 141, 0, 10, 233, 234, 104, 235, 0, 0, 0,
10, 10, 236, 237, 0, 0, 0, 0, 238, 239, 10, 240, 241, 2, 0, 0,
0, 0, 242, 10, 10, 243, 244, 0, 245, 10, 10, 246, 247, 248, 10, 10,
249, 250, 0, 0, 0, 0, 0, 0, 22, 10, 225, 251, 8, 10, 71, 19,
10, 252, 74, 253, 0, 0, 0, 0, 254, 10, 10, 255, 256, 2, 257, 10,
258, 259, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 260,
261, 49, 10, 262, 263, 264, 0, 0, 265, 265, 265, 265, 265, 265, 265, 265,
265, 265, 265, 266, 267, 268, 265, 265, 265, 265, 265, 265, 265, 265, 265, 269,
10, 270, 271, 2, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0,
10, 10, 10, 272, 0, 0, 0, 0, 0, 0, 0, 0, 273, 10, 274, 2,
10, 10, 10, 10, 275, 276, 277, 277, 278, 279, 0, 0, 0, 0, 280, 0,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 177, 0, 281,
10, 10, 10, 10, 10, 10, 106, 71, 95, 282, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 283, 10, 10, 71, 284, 285, 0, 0, 0,
0, 10, 286, 0, 10, 10, 287, 2, 0, 0, 0, 0, 0, 10, 288, 2,
0, 0, 0, 0, 0, 10, 289, 106, 10, 10, 10, 10, 290, 2, 0, 0,
130, 130, 130, 130, 130, 130, 130, 130, 163, 163, 163, 163, 163, 163, 163, 163,
163, 163, 163, 163, 163, 163, 163, 130,
};
static unsigned use_b4(const uint8_t *a, unsigned i) { return (a[i >> 1] >> ((i & 1u) << 2)) & 15u; }
uint8_t vega_use_category(uint32_t u) { return (uint8_t)(u<921600u?use_u8[2953+(((use_u8[625+(((use_u16[((use_u8[113+(((use_b4(use_u8,u>>1>>3>>3>>5))<<5)+((u>>1>>3>>3)&31u))])<<3)+((u>>1>>3)&7u)])<<3)+((u>>1)&7u))])<<1)+((u)&1u))]:0); }
/* The categories syllabic.h names are the machines' own. */
_Static_assert(VEGA_OT_A == 9, "indic A");
_Static_assert(VEGA_OT_C == 1, "indic C");
_Static_assert(VEGA_OT_CM == 16, "indic CM");
_Static_assert(VEGA_OT_CS == 18, "indic CS");
_Static_assert(VEGA_OT_DOTTEDCIRCLE == 11, "indic DOTTEDCIRCLE");
_Static_assert(VEGA_OT_H == 4, "indic H");
_Static_assert(VEGA_OT_M == 7, "indic M");
_Static_assert(VEGA_OT_MPST == 13, "indic MPst");
_Static_assert(VEGA_OT_N == 3, "indic N");
_Static_assert(VEGA_OT_PLACEHOLDER == 10, "indic PLACEHOLDER");
_Static_assert(VEGA_OT_RS == 12, "indic RS");
_Static_assert(VEGA_OT_RA == 15, "indic Ra");
_Static_assert(VEGA_OT_REPHA == 14, "indic Repha");
_Static_assert(VEGA_OT_SM == 8, "indic SM");
_Static_assert(VEGA_OT_SMPST == 57, "indic SMPst");
_Static_assert(VEGA_OT_SYMBOL == 17, "indic Symbol");
_Static_assert(VEGA_OT_V == 2, "indic V");
_Static_assert(VEGA_OT_VD == 9, "indic VD");
_Static_assert(VEGA_OT_X == 0, "indic X");
_Static_assert(VEGA_OT_ZWJ == 6, "indic ZWJ");
_Static_assert(VEGA_OT_ZWNJ == 5, "indic ZWNJ");
_Static_assert(VEGA_OT_C == 1, "khmer C");
_Static_assert(VEGA_OT_DOTTEDCIRCLE == 11, "khmer DOTTEDCIRCLE");
_Static_assert(VEGA_OT_H == 4, "khmer H");
_Static_assert(VEGA_OT_PLACEHOLDER == 10, "khmer PLACEHOLDER");
_Static_assert(VEGA_OT_RA == 15, "khmer Ra");
_Static_assert(VEGA_OT_ROBATIC == 25, "khmer Robatic");
_Static_assert(VEGA_OT_V == 2, "khmer V");
_Static_assert(VEGA_OT_VABV == 20, "khmer VAbv");
_Static_assert(VEGA_OT_VBLW == 21, "khmer VBlw");
_Static_assert(VEGA_OT_VPRE == 22, "khmer VPre");
_Static_assert(VEGA_OT_VPST == 23, "khmer VPst");
_Static_assert(VEGA_OT_XGROUP == 26, "khmer Xgroup");
_Static_assert(VEGA_OT_YGROUP == 27, "khmer Ygroup");
_Static_assert(VEGA_OT_ZWJ == 6, "khmer ZWJ");
_Static_assert(VEGA_OT_ZWNJ == 5, "khmer ZWNJ");
_Static_assert(VEGA_OT_A == 9, "myanmar A");
_Static_assert(VEGA_OT_AS == 32, "myanmar As");
_Static_assert(VEGA_OT_C == 1, "myanmar C");
_Static_assert(VEGA_OT_CS == 18, "myanmar CS");
_Static_assert(VEGA_OT_DOTTEDCIRCLE == 11, "myanmar DOTTEDCIRCLE");
_Static_assert(VEGA_OT_H == 4, "myanmar H");
_Static_assert(VEGA_OT_MH == 35, "myanmar MH");
_Static_assert(VEGA_OT_ML == 41, "myanmar ML");
_Static_assert(VEGA_OT_MR == 36, "myanmar MR");
_Static_assert(VEGA_OT_MW == 37, "myanmar MW");
_Static_assert(VEGA_OT_MY == 38, "myanmar MY");
_Static_assert(VEGA_OT_PT == 39, "myanmar PT");
_Static_assert(VEGA_OT_RA == 15, "myanmar Ra");
_Static_assert(VEGA_OT_SM == 8, "myanmar SM");
_Static_assert(VEGA_OT_SMPST == 57, "myanmar SMPst");
_Static_assert(VEGA_OT_VABV == 20, "myanmar VAbv");
_Static_assert(VEGA_OT_VBLW == 21, "myanmar VBlw");
_Static_assert(VEGA_OT_VPRE == 22, "myanmar VPre");
_Static_assert(VEGA_OT_VPST == 23, "myanmar VPst");
_Static_assert(VEGA_OT_VS == 40, "myanmar VS");
_Static_assert(VEGA_OT_ZWJ == 6, "myanmar ZWJ");
_Static_assert(VEGA_OT_ZWNJ == 5, "myanmar ZWNJ");
_Static_assert(VEGA_USE_B == 1, "use B");
_Static_assert(VEGA_USE_CGJ == 6, "use CGJ");
_Static_assert(VEGA_USE_CMABV == 31, "use CMAbv");
_Static_assert(VEGA_USE_CMBLW == 32, "use CMBlw");
_Static_assert(VEGA_USE_CS == 43, "use CS");
_Static_assert(VEGA_USE_FABV == 24, "use FAbv");
_Static_assert(VEGA_USE_FBLW == 25, "use FBlw");
_Static_assert(VEGA_USE_FMABV == 45, "use FMAbv");
_Static_assert(VEGA_USE_FMBLW == 46, "use FMBlw");
_Static_assert(VEGA_USE_FMPST == 47, "use FMPst");
_Static_assert(VEGA_USE_FPST == 26, "use FPst");
_Static_assert(VEGA_USE_G == 49, "use G");
_Static_assert(VEGA_USE_GB == 5, "use GB");
_Static_assert(VEGA_USE_H == 12, "use H");
_Static_assert(VEGA_USE_HM == 54, "use HM");
_Static_assert(VEGA_USE_HN == 13, "use HN");
_Static_assert(VEGA_USE_HR == 55, "use HR");
_Static_assert(VEGA_USE_HVM == 53, "use HVM");
_Static_assert(VEGA_USE_IS == 44, "use IS");
_Static_assert(VEGA_USE_J == 50, "use J");
_Static_assert(VEGA_USE_MABV == 27, "use MAbv");
_Static_assert(VEGA_USE_MBLW == 28, "use MBlw");
_Static_assert(VEGA_USE_MPRE == 30, "use MPre");
_Static_assert(VEGA_USE_MPST == 29, "use MPst");
_Static_assert(VEGA_USE_N == 4, "use N");
_Static_assert(VEGA_USE_O == 0, "use O");
_Static_assert(VEGA_USE_R == 18, "use R");
_Static_assert(VEGA_USE_RK == 56, "use RK");
_Static_assert(VEGA_USE_SB == 51, "use SB");
_Static_assert(VEGA_USE_SE == 52, "use SE");
_Static_assert(VEGA_USE_SMABV == 41, "use SMAbv");
_Static_assert(VEGA_USE_SMBLW == 42, "use SMBlw");
_Static_assert(VEGA_USE_SUB == 11, "use SUB");
_Static_assert(VEGA_USE_SK == 48, "use Sk");
_Static_assert(VEGA_USE_VABV == 33, "use VAbv");
_Static_assert(VEGA_USE_VBLW == 34, "use VBlw");
_Static_assert(VEGA_USE_VMABV == 37, "use VMAbv");
_Static_assert(VEGA_USE_VMBLW == 38, "use VMBlw");
_Static_assert(VEGA_USE_VMPRE == 23, "use VMPre");
_Static_assert(VEGA_USE_VMPST == 39, "use VMPst");
_Static_assert(VEGA_USE_VPRE == 22, "use VPre");
_Static_assert(VEGA_USE_VPST == 35, "use VPst");
_Static_assert(VEGA_USE_WJ == 16, "use WJ");
_Static_assert(VEGA_USE_ZWNJ == 14, "use ZWNJ");
/* The syllable machines: a DFA over classes of symbol; a state's accept is
* the syllable type it ends, plus one. */
/* indic (hb-ot-shaper-indic-machine.rl): 137 states, 20 classes of symbol; types indic_consonant_syllable, indic_vowel_syllable, indic_standalone_cluster, indic_symbol_cluster, indic_broken_cluster, indic_non_indic_cluster. */
static const uint8_t indic_class[64] = {
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0,
};
static const uint8_t indic_next[137][20] = {
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 11, 12, 8, 13, 14, 15, 16, 17, 18},
{137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 19, 20, 21, 22, 23, 24, 25, 137, 137, 26, 23, 137, 137, 27, 137, 137, 24},
{137, 137, 137, 28, 29, 30, 31, 32, 33, 34, 137, 137, 35, 32, 137, 137, 36, 137, 137, 33},
{137, 137, 137, 37, 5, 38, 38, 8, 9, 10, 137, 137, 137, 8, 137, 137, 15, 137, 137, 9},
{137, 39, 137, 137, 137, 40, 41, 137, 42, 10, 137, 137, 137, 137, 137, 39, 137, 137, 137, 42},
{137, 137, 137, 137, 43, 44, 44, 8, 9, 137, 137, 137, 12, 8, 137, 137, 137, 137, 137, 9},
{137, 137, 137, 137, 43, 44, 44, 8, 9, 137, 137, 137, 137, 8, 137, 137, 137, 137, 137, 9},
{137, 137, 137, 45, 46, 47, 47, 8, 9, 10, 137, 137, 137, 8, 137, 137, 137, 137, 137, 9},
{137, 137, 137, 137, 137, 10, 137, 137, 48, 10, 137, 137, 137, 8, 137, 137, 137, 137, 137, 48},
{137, 137, 137, 137, 137, 137, 137, 137, 137, 10, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 49, 50, 51, 52, 53, 54, 55, 137, 137, 56, 53, 137, 137, 57, 137, 137, 54},
{137, 137, 137, 4, 5, 38, 38, 8, 9, 10, 137, 137, 137, 8, 137, 137, 15, 137, 137, 9},
{137, 2, 3, 4, 5, 58, 38, 8, 9, 10, 11, 11, 12, 8, 137, 2, 15, 137, 137, 9},
{137, 137, 137, 19, 59, 21, 22, 23, 24, 25, 137, 137, 26, 23, 137, 137, 27, 137, 137, 24},
{137, 137, 137, 137, 60, 61, 61, 8, 9, 10, 137, 137, 137, 8, 137, 137, 137, 137, 137, 9},
{137, 137, 137, 62, 137, 63, 63, 137, 64, 65, 137, 137, 137, 137, 137, 137, 137, 137, 137, 64},
{137, 2, 137, 137, 137, 137, 137, 137, 137, 137, 11, 137, 137, 137, 137, 2, 137, 137, 137, 137},
{137, 137, 137, 137, 137, 10, 137, 137, 48, 10, 137, 137, 137, 8, 137, 137, 137, 137, 137, 48},
{137, 137, 137, 66, 20, 67, 67, 23, 24, 25, 137, 137, 137, 23, 137, 137, 27, 137, 137, 24},
{137, 2, 137, 137, 137, 68, 69, 137, 70, 25, 137, 137, 137, 137, 137, 2, 137, 137, 137, 70},
{137, 137, 137, 137, 71, 72, 72, 23, 24, 137, 137, 137, 26, 23, 137, 137, 137, 137, 137, 24},
{137, 137, 137, 19, 20, 21, 67, 23, 24, 25, 137, 137, 26, 23, 137, 137, 27, 137, 137, 24},
{137, 137, 137, 73, 74, 75, 75, 23, 24, 25, 137, 137, 137, 23, 137, 137, 137, 137, 137, 24},
{137, 137, 137, 137, 137, 25, 137, 137, 76, 25, 137, 137, 137, 23, 137, 137, 137, 137, 137, 76},
{137, 137, 137, 137, 137, 137, 137, 137, 137, 25, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 19, 20, 67, 67, 23, 24, 25, 137, 137, 137, 23, 137, 137, 27, 137, 137, 24},
{137, 137, 137, 137, 77, 78, 78, 23, 24, 25, 137, 137, 137, 23, 137, 137, 137, 137, 137, 24},
{137, 137, 137, 79, 29, 80, 31, 32, 33, 34, 137, 137, 137, 32, 137, 137, 36, 137, 137, 33},
{137, 81, 137, 137, 137, 82, 83, 137, 84, 34, 137, 137, 137, 137, 137, 81, 137, 137, 137, 84},
{137, 137, 137, 137, 85, 86, 86, 32, 33, 137, 137, 137, 35, 32, 137, 137, 137, 137, 137, 33},
{137, 137, 137, 137, 85, 86, 86, 32, 33, 137, 137, 137, 137, 32, 137, 137, 137, 137, 137, 33},
{137, 137, 137, 87, 88, 89, 89, 32, 33, 34, 137, 137, 137, 32, 137, 137, 137, 137, 137, 33},
{137, 137, 137, 137, 137, 34, 137, 137, 90, 34, 137, 137, 137, 32, 137, 137, 137, 137, 137, 90},
{137, 137, 137, 137, 137, 137, 137, 137, 137, 34, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 28, 29, 80, 31, 32, 33, 34, 137, 137, 137, 32, 137, 137, 36, 137, 137, 33},
{137, 137, 137, 137, 91, 92, 92, 32, 33, 34, 137, 137, 137, 32, 137, 137, 137, 137, 137, 33},
{137, 137, 137, 137, 5, 38, 38, 8, 9, 10, 137, 137, 137, 8, 137, 137, 15, 137, 137, 9},
{137, 137, 137, 137, 43, 44, 44, 8, 9, 137, 137, 137, 137, 8, 137, 137, 137, 137, 137, 9},
{137, 137, 137, 4, 5, 58, 93, 8, 9, 10, 137, 137, 12, 8, 137, 137, 15, 137, 137, 9},
{137, 137, 137, 137, 137, 94, 94, 137, 42, 10, 137, 137, 137, 137, 137, 137, 137, 137, 137, 42},
{137, 39, 137, 95, 137, 94, 94, 137, 42, 10, 137, 137, 137, 137, 137, 39, 137, 137, 137, 42},
{137, 137, 137, 137, 137, 10, 137, 137, 48, 10, 137, 137, 137, 137, 137, 137, 137, 137, 137, 48},
{137, 39, 137, 137, 137, 94, 41, 137, 42, 10, 137, 137, 137, 137, 137, 39, 137, 137, 137, 42},
{137, 137, 137, 137, 137, 44, 44, 8, 96, 137, 137, 137, 137, 8, 137, 137, 137, 137, 137, 96},
{137, 137, 137, 137, 46, 47, 47, 8, 9, 10, 137, 137, 137, 8, 137, 137, 137, 137, 137, 9},
{137, 137, 137, 137, 137, 47, 47, 8, 9, 10, 137, 137, 137, 8, 137, 137, 137, 137, 137, 9},
{137, 137, 137, 137, 137, 44, 44, 8, 9, 137, 137, 137, 137, 8, 137, 137, 137, 137, 137, 9},
{137, 137, 137, 137, 137, 10, 137, 137, 137, 10, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 97, 50, 52, 52, 53, 54, 55, 137, 137, 137, 53, 137, 137, 57, 137, 137, 54},
{137, 98, 137, 137, 137, 99, 100, 137, 101, 55, 137, 137, 137, 137, 137, 98, 137, 137, 137, 101},
{137, 137, 137, 137, 102, 103, 103, 53, 54, 137, 137, 137, 56, 53, 137, 137, 137, 137, 137, 54},
{137, 137, 137, 137, 102, 103, 103, 53, 54, 137, 137, 137, 137, 53, 137, 137, 137, 137, 137, 54},
{137, 137, 137, 104, 105, 106, 106, 53, 54, 55, 137, 137, 137, 53, 137, 137, 137, 137, 137, 54},
{137, 137, 137, 137, 137, 55, 137, 137, 107, 55, 137, 137, 137, 53, 137, 137, 137, 137, 137, 107},
{137, 137, 137, 137, 137, 137, 137, 137, 137, 55, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 49, 50, 52, 52, 53, 54, 55, 137, 137, 137, 53, 137, 137, 57, 137, 137, 54},
{137, 137, 137, 137, 108, 109, 109, 53, 54, 55, 137, 137, 137, 53, 137, 137, 137, 137, 137, 54},
{137, 137, 137, 137, 43, 44, 44, 8, 9, 137, 137, 137, 12, 8, 137, 137, 137, 137, 137, 9},
{137, 2, 3, 4, 5, 110, 111, 8, 112, 25, 137, 11, 12, 8, 137, 2, 15, 137, 137, 112},
{137, 137, 137, 137, 137, 40, 113, 137, 42, 10, 137, 137, 137, 137, 137, 137, 137, 137, 137, 42},
{137, 137, 137, 137, 114, 44, 44, 8, 9, 137, 137, 137, 137, 8, 137, 137, 137, 137, 137, 9},
{137, 137, 137, 137, 137, 63, 63, 137, 64, 65, 137, 137, 137, 137, 137, 137, 137, 137, 137, 64},
{137, 137, 137, 137, 137, 137, 137, 137, 64, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 64},
{137, 137, 137, 137, 137, 65, 137, 137, 115, 65, 137, 137, 137, 137, 137, 137, 137, 137, 137, 115},
{137, 137, 137, 137, 137, 137, 137, 137, 137, 65, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 137, 20, 67, 67, 23, 24, 25, 137, 137, 137, 23, 137, 137, 27, 137, 137, 24},
{137, 137, 137, 137, 71, 72, 72, 23, 24, 137, 137, 137, 137, 23, 137, 137, 137, 137, 137, 24},
{137, 137, 137, 137, 137, 116, 116, 137, 70, 25, 137, 137, 137, 137, 137, 137, 137, 137, 137, 70},
{137, 2, 137, 117, 137, 116, 116, 137, 70, 25, 137, 137, 137, 137, 137, 2, 137, 137, 137, 70},
{137, 137, 137, 137, 137, 25, 137, 137, 76, 25, 137, 137, 137, 137, 137, 137, 137, 137, 137, 76},
{137, 2, 137, 137, 137, 116, 69, 137, 70, 25, 137, 137, 137, 137, 137, 2, 137, 137, 137, 70},
{137, 137, 137, 137, 137, 72, 72, 23, 118, 137, 137, 137, 137, 23, 137, 137, 137, 137, 137, 118},
{137, 137, 137, 137, 74, 75, 75, 23, 24, 25, 137, 137, 137, 23, 137, 137, 137, 137, 137, 24},
{137, 137, 137, 137, 137, 75, 75, 23, 24, 25, 137, 137, 137, 23, 137, 137, 137, 137, 137, 24},
{137, 137, 137, 137, 137, 72, 72, 23, 24, 137, 137, 137, 137, 23, 137, 137, 137, 137, 137, 24},
{137, 137, 137, 137, 137, 25, 137, 137, 137, 25, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 137, 137, 68, 119, 137, 70, 25, 137, 137, 137, 137, 137, 137, 137, 137, 137, 70},
{137, 137, 137, 137, 120, 72, 72, 23, 24, 137, 137, 137, 137, 23, 137, 137, 137, 137, 137, 24},
{137, 137, 137, 137, 29, 80, 31, 32, 33, 34, 137, 137, 137, 32, 137, 137, 36, 137, 137, 33},
{137, 137, 137, 137, 85, 86, 86, 32, 33, 137, 137, 137, 137, 32, 137, 137, 137, 137, 137, 33},
{137, 137, 137, 121, 29, 122, 123, 32, 33, 34, 137, 137, 124, 32, 137, 137, 36, 137, 137, 33},
{137, 137, 137, 137, 137, 125, 125, 137, 84, 34, 137, 137, 137, 137, 137, 137, 137, 137, 137, 84},
{137, 81, 137, 126, 137, 125, 125, 137, 84, 34, 137, 137, 137, 137, 137, 81, 137, 137, 137, 84},
{137, 137, 137, 137, 137, 34, 137, 137, 90, 34, 137, 137, 137, 137, 137, 137, 137, 137, 137, 90},
{137, 81, 137, 137, 137, 125, 83, 137, 84, 34, 137, 137, 137, 137, 137, 81, 137, 137, 137, 84},
{137, 137, 137, 137, 137, 86, 86, 32, 127, 137, 137, 137, 137, 32, 137, 137, 137, 137, 137, 127},
{137, 137, 137, 137, 88, 89, 89, 32, 33, 34, 137, 137, 137, 32, 137, 137, 137, 137, 137, 33},
{137, 137, 137, 137, 137, 89, 89, 32, 33, 34, 137, 137, 137, 32, 137, 137, 137, 137, 137, 33},
{137, 137, 137, 137, 137, 86, 86, 32, 33, 137, 137, 137, 137, 32, 137, 137, 137, 137, 137, 33},
{137, 137, 137, 137, 137, 34, 137, 137, 137, 34, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 137, 137, 82, 128, 137, 84, 34, 137, 137, 137, 137, 137, 137, 137, 137, 137, 84},
{137, 137, 137, 137, 129, 86, 86, 32, 33, 137, 137, 137, 137, 32, 137, 137, 137, 137, 137, 33},
{137, 137, 137, 4, 5, 58, 38, 8, 9, 10, 137, 137, 12, 8, 137, 137, 15, 137, 137, 9},
{137, 137, 137, 137, 137, 137, 137, 137, 42, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 42},
{137, 39, 137, 137, 137, 94, 94, 137, 42, 10, 137, 137, 137, 137, 137, 39, 137, 137, 137, 42},
{137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 8, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 137, 50, 52, 52, 53, 54, 55, 137, 137, 137, 53, 137, 137, 57, 137, 137, 54},
{137, 137, 137, 49, 50, 51, 11, 53, 54, 55, 137, 137, 56, 53, 137, 137, 57, 137, 137, 54},
{137, 137, 137, 137, 137, 130, 130, 137, 101, 55, 137, 137, 137, 137, 137, 137, 137, 137, 137, 101},
{137, 98, 137, 131, 137, 130, 130, 137, 101, 55, 137, 137, 137, 137, 137, 98, 137, 137, 137, 101},
{137, 137, 137, 137, 137, 55, 137, 137, 107, 55, 137, 137, 137, 137, 137, 137, 137, 137, 137, 107},
{137, 98, 137, 137, 137, 130, 100, 137, 101, 55, 137, 137, 137, 137, 137, 98, 137, 137, 137, 101},
{137, 137, 137, 137, 137, 103, 103, 53, 132, 137, 137, 137, 137, 53, 137, 137, 137, 137, 137, 132},
{137, 137, 137, 137, 105, 106, 106, 53, 54, 55, 137, 137, 137, 53, 137, 137, 137, 137, 137, 54},
{137, 137, 137, 137, 137, 106, 106, 53, 54, 55, 137, 137, 137, 53, 137, 137, 137, 137, 137, 54},
{137, 137, 137, 137, 137, 103, 103, 53, 54, 137, 137, 137, 137, 53, 137, 137, 137, 137, 137, 54},
{137, 137, 137, 137, 137, 55, 137, 137, 137, 55, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 137, 137, 99, 133, 137, 101, 55, 137, 137, 137, 137, 137, 137, 137, 137, 137, 101},
{137, 137, 137, 137, 134, 103, 103, 53, 54, 137, 137, 137, 137, 53, 137, 137, 137, 137, 137, 54},
{137, 137, 137, 137, 43, 135, 135, 8, 112, 25, 137, 137, 12, 8, 137, 137, 137, 137, 137, 112},
{137, 2, 137, 117, 43, 135, 135, 8, 112, 25, 137, 137, 137, 8, 137, 2, 137, 137, 137, 112},
{137, 137, 137, 137, 137, 25, 137, 137, 76, 25, 137, 137, 137, 8, 137, 137, 137, 137, 137, 76},
{137, 137, 137, 40, 137, 94, 94, 137, 42, 10, 137, 137, 137, 137, 137, 137, 137, 137, 137, 42},
{137, 137, 137, 137, 137, 94, 113, 137, 42, 10, 137, 137, 137, 137, 137, 137, 137, 137, 137, 42},
{137, 137, 137, 137, 137, 65, 137, 137, 137, 65, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 137, 137, 137, 137, 137, 70, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 70},
{137, 2, 137, 137, 137, 116, 116, 137, 70, 25, 137, 137, 137, 137, 137, 2, 137, 137, 137, 70},
{137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 23, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 68, 137, 116, 116, 137, 70, 25, 137, 137, 137, 137, 137, 137, 137, 137, 137, 70},
{137, 137, 137, 137, 137, 116, 119, 137, 70, 25, 137, 137, 137, 137, 137, 137, 137, 137, 137, 70},
{137, 137, 137, 136, 29, 80, 80, 32, 33, 34, 137, 137, 137, 32, 137, 137, 36, 137, 137, 33},
{137, 137, 137, 137, 85, 86, 86, 32, 33, 137, 137, 137, 124, 32, 137, 137, 137, 137, 137, 33},
{137, 137, 137, 121, 29, 122, 80, 32, 33, 34, 137, 137, 124, 32, 137, 137, 36, 137, 137, 33},
{137, 137, 137, 121, 29, 80, 80, 32, 33, 34, 137, 137, 137, 32, 137, 137, 36, 137, 137, 33},
{137, 137, 137, 137, 137, 137, 137, 137, 84, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 84},
{137, 81, 137, 137, 137, 125, 125, 137, 84, 34, 137, 137, 137, 137, 137, 81, 137, 137, 137, 84},
{137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 32, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 82, 137, 125, 125, 137, 84, 34, 137, 137, 137, 137, 137, 137, 137, 137, 137, 84},
{137, 137, 137, 137, 137, 125, 128, 137, 84, 34, 137, 137, 137, 137, 137, 137, 137, 137, 137, 84},
{137, 137, 137, 137, 137, 137, 137, 137, 101, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 101},
{137, 98, 137, 137, 137, 130, 130, 137, 101, 55, 137, 137, 137, 137, 137, 98, 137, 137, 137, 101},
{137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, 53, 137, 137, 137, 137, 137, 137},
{137, 137, 137, 99, 137, 130, 130, 137, 101, 55, 137, 137, 137, 137, 137, 137, 137, 137, 137, 101},
{137, 137, 137, 137, 137, 130, 133, 137, 101, 55, 137, 137, 137, 137, 137, 137, 137, 137, 137, 101},
{137, 137, 137, 137, 137, 44, 44, 8, 112, 137, 137, 137, 137, 8, 137, 137, 137, 137, 137, 112},
{137, 137, 137, 137, 29, 80, 80, 32, 33, 34, 137, 137, 137, 32, 137, 137, 36, 137, 137, 33},
};
static const uint8_t indic_accept[137] = {
5, 6, 1, 2, 5, 5, 6, 6, 5, 5, 5, 3, 5, 5, 1, 5, 4, 6, 6, 1, 1, 0, 1, 1, 1, 1, 1, 1, 2, 2, 0, 2,
2, 2, 2, 2, 2, 5, 0, 5, 5, 5, 5, 5, 0, 5, 5, 0, 5, 3, 3, 0, 0, 3, 3, 3, 3, 3, 0, 1, 5, 0, 4, 0,
4, 4, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 2, 0, 2, 2, 2, 2, 2, 0, 2, 2, 0, 2, 2, 0, 5, 0, 5,
0, 3, 3, 3, 3, 3, 3, 0, 3, 3, 0, 3, 3, 0, 1, 1, 1, 5, 5, 4, 0, 1, 0, 1, 1, 2, 0, 2, 2, 0, 2, 0,
2, 2, 0, 3, 0, 3, 3, 0, 2,
};
const VegaMachine vega_indic_machine = {indic_class, 20, 137, indic_next[0], sizeof(indic_next[0][0]), indic_accept, 5};
/* khmer (hb-ot-shaper-khmer-machine.rl): 44 states, 12 classes of symbol; types khmer_consonant_syllable, khmer_broken_cluster, khmer_non_khmer_cluster. */
static const uint8_t khmer_class[64] = {
0, 1, 1, 0, 2, 3, 3, 0, 0, 0, 4, 4, 0, 0, 0, 1, 0, 0, 0, 0, 5, 6, 7, 8, 0, 9, 10, 11, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
static const uint8_t khmer_next[44][12] = {
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12},
{44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44},
{44, 44, 13, 14, 44, 15, 16, 17, 18, 5, 19, 20},
{44, 21, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44},
{44, 44, 44, 22, 44, 6, 44, 44, 44, 44, 11, 44},
{44, 44, 13, 23, 44, 15, 16, 17, 18, 24, 19, 20},
{44, 44, 25, 26, 44, 44, 44, 44, 9, 44, 6, 12},
{44, 44, 25, 27, 44, 6, 44, 44, 9, 44, 7, 12},
{44, 44, 25, 28, 44, 6, 7, 44, 9, 44, 8, 12},
{44, 44, 25, 29, 44, 44, 44, 44, 44, 44, 9, 12},
{44, 44, 3, 30, 44, 6, 7, 8, 9, 44, 11, 12},
{44, 44, 25, 30, 44, 6, 7, 8, 9, 44, 11, 12},
{44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 12},
{44, 31, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44},
{44, 44, 44, 32, 44, 15, 44, 44, 44, 5, 19, 44},
{44, 44, 33, 34, 44, 44, 44, 44, 18, 44, 15, 20},
{44, 44, 33, 35, 44, 15, 44, 44, 18, 44, 16, 20},
{44, 44, 33, 36, 44, 15, 16, 44, 18, 44, 17, 20},
{44, 44, 33, 37, 44, 44, 44, 44, 44, 44, 18, 20},
{44, 44, 33, 23, 44, 15, 16, 17, 18, 44, 19, 20},
{44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 20},
{44, 44, 3, 38, 44, 6, 7, 8, 9, 10, 11, 12},
{44, 44, 44, 22, 44, 44, 44, 44, 44, 44, 11, 44},
{44, 44, 44, 32, 44, 15, 44, 44, 44, 44, 19, 44},
{44, 44, 13, 23, 44, 15, 16, 17, 18, 44, 19, 20},
{44, 12, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44},
{44, 44, 44, 26, 44, 44, 44, 44, 44, 44, 6, 44},
{44, 44, 44, 39, 44, 6, 44, 44, 44, 44, 7, 44},
{44, 44, 44, 40, 44, 6, 44, 44, 44, 44, 8, 44},
{44, 44, 44, 29, 44, 44, 44, 44, 44, 44, 9, 44},
{44, 44, 44, 22, 44, 6, 44, 44, 44, 44, 11, 44},
{44, 44, 13, 41, 44, 15, 16, 17, 18, 24, 19, 20},
{44, 44, 44, 32, 44, 44, 44, 44, 44, 44, 19, 44},
{44, 20, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44},
{44, 44, 44, 34, 44, 44, 44, 44, 44, 44, 15, 44},
{44, 44, 44, 42, 44, 15, 44, 44, 44, 44, 16, 44},
{44, 44, 44, 43, 44, 15, 44, 44, 44, 44, 17, 44},
{44, 44, 44, 37, 44, 44, 44, 44, 44, 44, 18, 44},
{44, 44, 44, 22, 44, 6, 44, 44, 44, 10, 11, 44},
{44, 44, 44, 39, 44, 44, 44, 44, 44, 44, 7, 44},
{44, 44, 44, 40, 44, 44, 44, 44, 44, 44, 8, 44},
{44, 44, 44, 32, 44, 15, 44, 44, 44, 24, 19, 44},
{44, 44, 44, 42, 44, 44, 44, 44, 44, 44, 16, 44},
{44, 44, 44, 43, 44, 44, 44, 44, 44, 44, 17, 44},
};
static const uint8_t khmer_accept[44] = {
2, 3, 1, 2, 3, 1, 2, 2, 2, 2, 2, 2, 2, 1, 0, 1, 1, 1, 1, 1, 1, 2, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
};
const VegaMachine vega_khmer_machine = {khmer_class, 12, 44, khmer_next[0], sizeof(khmer_next[0][0]), khmer_accept, 2};
/* myanmar (hb-ot-shaper-myanmar-machine.rl): 57 states, 23 classes of symbol; types myanmar_consonant_syllable, myanmar_broken_cluster, myanmar_non_myanmar_cluster. */
static const uint8_t myanmar_class[64] = {
0, 1, 1, 2, 3, 4, 4, 0, 5, 6, 7, 7, 0, 0, 0, 8, 0, 0, 9, 0, 10, 11, 12, 13, 0, 0, 0, 0, 0, 0, 0, 0,
14, 0, 0, 15, 16, 17, 18, 19, 20, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, 0,
};
static const uint8_t myanmar_next[57][23] = {
{1, 2, 3, 4, 1, 5, 6, 2, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21},
{57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57},
{57, 57, 22, 23, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 25},
{57, 57, 57, 57, 39, 5, 57, 57, 57, 57, 57, 57, 57, 12, 40, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 41, 57, 57, 57, 57, 57, 57, 41, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57},
{57, 57, 57, 57, 39, 5, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 57, 57, 57, 12, 57, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 57, 22, 23, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 42, 32, 33, 34, 35, 36, 37, 38, 25},
{57, 2, 57, 57, 57, 57, 57, 2, 2, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 9, 10, 57, 12, 57, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 57, 10, 57, 12, 57, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 9, 10, 11, 12, 57, 57, 57, 57, 57, 18, 43, 57, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 44, 57, 57, 12, 45, 46, 57, 57, 57, 18, 57, 45, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 57, 20, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 9, 10, 11, 12, 43, 57, 57, 57, 57, 18, 57, 20, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 9, 10, 11, 12, 57, 14, 57, 16, 57, 18, 57, 20, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 9, 10, 11, 12, 43, 14, 57, 57, 57, 18, 57, 20, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 9, 10, 11, 12, 47, 14, 15, 16, 57, 18, 57, 20, 5},
{57, 57, 48, 57, 39, 5, 18, 57, 57, 57, 57, 57, 57, 57, 5, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 57, 3, 4, 39, 5, 6, 57, 57, 57, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 57, 20, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 9, 10, 11, 12, 43, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 57, 57, 57, 39, 5, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 57, 57, 57, 24, 25, 57, 57, 57, 57, 57, 57, 57, 30, 49, 57, 57, 57, 57, 36, 57, 57, 25},
{57, 2, 57, 57, 57, 57, 57, 57, 2, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57},
{57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57},
{57, 57, 57, 57, 24, 25, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 36, 57, 57, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 57, 57, 57, 30, 57, 57, 57, 57, 57, 36, 57, 57, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 27, 28, 57, 30, 57, 57, 57, 57, 57, 36, 57, 57, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 57, 28, 57, 30, 57, 57, 57, 57, 57, 36, 57, 57, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 57, 57, 57, 57, 57, 36, 50, 57, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 51, 57, 57, 30, 52, 53, 57, 57, 57, 36, 57, 52, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 57, 38, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 50, 57, 57, 57, 57, 36, 57, 38, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 57, 32, 57, 34, 57, 36, 57, 38, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 50, 32, 57, 57, 57, 36, 57, 38, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 54, 32, 33, 34, 57, 36, 57, 38, 25},
{57, 57, 55, 57, 24, 25, 36, 57, 57, 57, 57, 57, 57, 57, 25, 57, 57, 57, 57, 36, 57, 57, 25},
{57, 57, 22, 23, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 57, 38, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 50, 57, 57, 57, 57, 36, 57, 57, 25},
{57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57},
{57, 57, 57, 57, 39, 5, 57, 57, 57, 57, 57, 57, 57, 12, 57, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 57, 3, 4, 39, 5, 6, 57, 57, 57, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 5},
{57, 57, 22, 56, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 57, 38, 25},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 9, 10, 11, 12, 57, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 44, 57, 57, 12, 57, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 44, 57, 57, 12, 45, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 44, 57, 57, 12, 45, 57, 57, 57, 57, 18, 57, 45, 5},
{57, 57, 3, 57, 39, 5, 6, 57, 57, 57, 9, 10, 11, 12, 57, 14, 15, 16, 57, 18, 57, 20, 5},
{57, 57, 57, 57, 39, 5, 57, 57, 57, 57, 57, 57, 57, 57, 5, 57, 57, 57, 57, 18, 57, 57, 5},
{57, 57, 57, 57, 24, 25, 57, 57, 57, 57, 57, 57, 57, 30, 57, 57, 57, 57, 57, 36, 57, 57, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 57, 57, 57, 57, 57, 36, 57, 57, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 51, 57, 57, 30, 57, 57, 57, 57, 57, 36, 57, 57, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 51, 57, 57, 30, 52, 57, 57, 57, 57, 36, 57, 57, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 51, 57, 57, 30, 52, 57, 57, 57, 57, 36, 57, 52, 25},
{57, 57, 22, 57, 24, 25, 26, 57, 57, 57, 27, 28, 29, 30, 57, 32, 33, 34, 57, 36, 57, 38, 25},
{57, 57, 57, 57, 24, 25, 57, 57, 57, 57, 57, 57, 57, 57, 25, 57, 57, 57, 57, 36, 57, 57, 25},
{57, 2, 3, 4, 39, 5, 6, 2, 2, 57, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 5},
};
static const uint8_t myanmar_accept[57] = {
2, 3, 1, 2, 2, 2, 2, 1, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2,
};
const VegaMachine vega_myanmar_machine = {myanmar_class, 23, 57, myanmar_next[0], sizeof(myanmar_next[0][0]), myanmar_accept, 2};
/* use (hb-ot-shaper-use-machine.rl): 109 states, 43 classes of symbol; types use_virama_terminated_cluster, use_sakot_terminated_cluster, use_standard_cluster, use_number_joiner_terminated_cluster, use_numeral_cluster, use_symbol_cluster, use_hieroglyph_cluster, use_broken_cluster, use_non_cluster. */
static const uint8_t use_class[64] = {
0, 1, 2, 2, 3, 4, 2, 2, 2, 2, 2, 5, 6, 7, 8, 2, 2, 2, 9, 2, 2, 2, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 2, 24, 25, 26, 2, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 2, 2, 2, 2, 2, 2, 2,
};
static const uint8_t use_next[109][43] = {
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 6, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 30, 34, 3, 35, 3, 36, 3, 3, 37},
{109, 109, 109, 109, 109, 38, 39, 109, 40, 109, 41, 42, 43, 44, 45, 46, 47, 48, 49, 38, 50, 51, 52, 53, 54, 55, 56, 57, 58, 109, 59, 60, 61, 62, 59, 109, 109, 109, 109, 63, 109, 109, 62},
{109, 109, 109, 109, 109, 2, 64, 109, 65, 109, 66, 67, 68, 69, 70, 71, 72, 73, 74, 2, 75, 76, 77, 78, 79, 80, 81, 109, 109, 109, 82, 83, 84, 85, 86, 109, 109, 109, 109, 87, 109, 109, 88},
{109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 89, 90, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 2, 64, 109, 65, 109, 66, 67, 68, 69, 70, 71, 72, 73, 74, 2, 75, 76, 77, 78, 79, 80, 81, 57, 58, 109, 82, 83, 84, 85, 86, 109, 109, 109, 109, 87, 109, 109, 88},
{109, 109, 109, 109, 109, 6, 7, 109, 9, 109, 11, 12, 13, 14, 15, 16, 17, 18, 19, 6, 20, 21, 22, 23, 24, 25, 26, 109, 109, 109, 30, 31, 32, 37, 30, 109, 109, 109, 109, 36, 109, 109, 37},
{109, 6, 109, 109, 109, 109, 109, 109, 9, 109, 109, 12, 13, 14, 15, 109, 109, 109, 109, 109, 109, 109, 109, 109, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 12, 109, 109, 109},
{109, 109, 109, 92, 109, 109, 109, 109, 9, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 2, 109, 109, 2, 6, 7, 8, 9, 109, 11, 12, 13, 14, 15, 16, 17, 18, 19, 6, 20, 21, 22, 23, 24, 25, 26, 27, 28, 109, 30, 31, 32, 37, 30, 109, 109, 109, 109, 36, 109, 109, 37},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 11, 12, 13, 14, 15, 109, 109, 109, 109, 109, 109, 21, 22, 23, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 12, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 12, 13, 14, 15, 109, 109, 109, 109, 109, 109, 109, 109, 109, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 13, 14, 15, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 31, 32, 37, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 109, 14, 15, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 31, 32, 37, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 109, 109, 15, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 31, 32, 37, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 93, 109, 9, 109, 11, 12, 13, 14, 15, 109, 17, 18, 109, 109, 109, 21, 22, 23, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 12, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 93, 109, 9, 109, 11, 12, 13, 14, 15, 109, 109, 18, 109, 109, 109, 21, 22, 23, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 12, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 93, 109, 9, 109, 11, 12, 13, 14, 15, 109, 109, 109, 109, 109, 109, 21, 22, 23, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 12, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 93, 109, 9, 109, 11, 12, 13, 14, 15, 16, 17, 18, 109, 109, 109, 21, 22, 23, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 12, 109, 109, 109},
{109, 109, 109, 109, 109, 6, 7, 109, 9, 109, 11, 12, 13, 14, 15, 16, 17, 18, 19, 109, 20, 21, 22, 23, 24, 25, 26, 109, 109, 109, 30, 31, 32, 37, 30, 109, 109, 109, 109, 36, 109, 109, 37},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 12, 13, 14, 15, 109, 109, 109, 109, 109, 109, 21, 22, 23, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 12, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 12, 13, 14, 15, 109, 109, 109, 109, 109, 109, 109, 22, 23, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 12, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 12, 13, 14, 15, 109, 109, 109, 109, 109, 109, 109, 109, 23, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 12, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 13, 14, 15, 109, 109, 109, 109, 109, 109, 109, 109, 109, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 13, 14, 15, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 13, 14, 15, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 27, 28, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 28, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 2, 109, 109, 2, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 6, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 31, 32, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 32, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 94, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 95, 109, 96, 109, 96, 97, 109},
{109, 109, 109, 109, 109, 38, 39, 109, 40, 109, 41, 42, 43, 44, 45, 46, 47, 48, 49, 38, 50, 51, 52, 53, 54, 55, 56, 57, 58, 109, 59, 60, 61, 62, 59, 34, 109, 98, 109, 63, 109, 109, 62},
{109, 6, 109, 109, 109, 109, 109, 109, 9, 109, 109, 12, 13, 14, 15, 109, 109, 109, 109, 109, 109, 109, 109, 109, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 38, 39, 109, 40, 109, 41, 42, 43, 44, 45, 46, 47, 48, 49, 38, 50, 51, 52, 53, 54, 55, 56, 109, 109, 109, 59, 60, 61, 62, 59, 109, 109, 109, 109, 63, 109, 109, 62},
{109, 38, 109, 109, 109, 109, 109, 109, 40, 109, 109, 42, 43, 44, 45, 109, 109, 109, 109, 109, 109, 109, 109, 109, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 42, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 41, 42, 43, 44, 45, 109, 109, 109, 109, 109, 109, 51, 52, 53, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 42, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 42, 43, 44, 45, 109, 109, 109, 109, 109, 109, 109, 109, 109, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 43, 44, 45, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 60, 61, 62, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 109, 44, 45, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 60, 61, 62, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 109, 109, 45, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 60, 61, 62, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 100, 109, 40, 109, 41, 42, 43, 44, 45, 109, 47, 48, 109, 109, 109, 51, 52, 53, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 42, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 100, 109, 40, 109, 41, 42, 43, 44, 45, 109, 109, 48, 109, 109, 109, 51, 52, 53, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 42, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 100, 109, 40, 109, 41, 42, 43, 44, 45, 109, 109, 109, 109, 109, 109, 51, 52, 53, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 42, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 100, 109, 40, 109, 41, 42, 43, 44, 45, 46, 47, 48, 109, 109, 109, 51, 52, 53, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 42, 109, 109, 109},
{109, 109, 109, 109, 109, 38, 39, 109, 40, 109, 41, 42, 43, 44, 45, 46, 47, 48, 49, 109, 50, 51, 52, 53, 54, 55, 56, 109, 109, 109, 59, 60, 61, 62, 59, 109, 109, 109, 109, 63, 109, 109, 62},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 42, 43, 44, 45, 109, 109, 109, 109, 109, 109, 51, 52, 53, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 42, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 42, 43, 44, 45, 109, 109, 109, 109, 109, 109, 109, 52, 53, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 42, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 42, 43, 44, 45, 109, 109, 109, 109, 109, 109, 109, 109, 53, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 42, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 43, 44, 45, 109, 109, 109, 109, 109, 109, 109, 109, 109, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 43, 44, 45, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 43, 44, 45, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 57, 58, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 58, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 38, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 60, 61, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 61, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 38, 109, 109, 109, 109, 109, 109, 40, 109, 109, 42, 43, 44, 45, 109, 109, 109, 109, 109, 109, 109, 109, 109, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 2, 109, 109, 109, 109, 109, 109, 65, 109, 109, 67, 68, 69, 70, 109, 109, 109, 109, 109, 109, 109, 109, 109, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 67, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 66, 67, 68, 69, 70, 109, 109, 109, 109, 109, 109, 76, 77, 78, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 67, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 67, 68, 69, 70, 109, 109, 109, 109, 109, 109, 109, 109, 109, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 109, 68, 69, 70, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 83, 84, 85, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 109, 109, 69, 70, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 83, 84, 85, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 109, 109, 109, 70, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 83, 84, 85, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 102, 109, 65, 109, 66, 67, 68, 69, 70, 109, 72, 73, 109, 109, 109, 76, 77, 78, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 67, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 102, 109, 65, 109, 66, 67, 68, 69, 70, 109, 109, 73, 109, 109, 109, 76, 77, 78, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 67, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 102, 109, 65, 109, 66, 67, 68, 69, 70, 109, 109, 109, 109, 109, 109, 76, 77, 78, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 67, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 102, 109, 65, 109, 66, 67, 68, 69, 70, 71, 72, 73, 109, 109, 109, 76, 77, 78, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 67, 109, 109, 109},
{109, 109, 109, 109, 109, 2, 64, 109, 65, 109, 66, 67, 68, 69, 70, 71, 72, 73, 74, 109, 75, 76, 77, 78, 79, 80, 81, 109, 109, 109, 82, 83, 84, 85, 86, 109, 109, 109, 109, 87, 109, 109, 88},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 67, 68, 69, 70, 109, 109, 109, 109, 109, 109, 76, 77, 78, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 67, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 67, 68, 69, 70, 109, 109, 109, 109, 109, 109, 109, 77, 78, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 67, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 67, 68, 69, 70, 109, 109, 109, 109, 109, 109, 109, 109, 78, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 67, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 109, 68, 69, 70, 109, 109, 109, 109, 109, 109, 109, 109, 109, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 109, 68, 69, 70, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 109, 68, 69, 70, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 2, 109, 109, 109, 109, 109, 109, 103, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 83, 84, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 84, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 2, 109, 109, 109, 109, 109, 109, 104, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 2, 109, 109, 109, 109, 109, 109, 65, 109, 109, 67, 68, 69, 70, 109, 109, 109, 109, 109, 109, 109, 109, 109, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 103, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 4, 109, 109, 109, 109, 105, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 106, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 8, 9, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 12, 13, 14, 15, 109, 109, 109, 109, 109, 109, 109, 109, 109, 24, 25, 26, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 12, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 94, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 34, 95, 95, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 94, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 95, 109, 96, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 94, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 95, 109, 96, 109, 96, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 34, 109, 98, 109, 109, 109, 109, 109},
{109, 107, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 42, 43, 44, 45, 109, 109, 109, 109, 109, 109, 109, 109, 109, 54, 55, 56, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 42, 109, 109, 109},
{109, 108, 109, 109, 109, 109, 109, 109, 104, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 67, 68, 69, 70, 109, 109, 109, 109, 109, 109, 109, 109, 109, 79, 80, 81, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 67, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 9, 109, 109, 109, 13, 14, 15, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 31, 32, 37, 91, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 40, 109, 109, 109, 43, 44, 45, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 60, 61, 62, 99, 109, 109, 109, 109, 109, 109, 109, 109},
{109, 109, 109, 109, 109, 109, 109, 109, 65, 109, 109, 109, 68, 69, 70, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 109, 83, 84, 85, 101, 109, 109, 109, 109, 109, 109, 109, 109},
};
static const uint8_t use_accept[109] = {
8, 6, 3, 9, 5, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8,
8, 9, 7, 6, 8, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 3, 3, 3, 2, 3, 1, 4, 5, 8, 8, 8, 7, 7,
7, 7, 0, 6, 6, 2, 3, 1, 2, 4, 8, 6, 3,
};
const VegaMachine vega_use_machine = {use_class, 43, 109, use_next[0], sizeof(use_next[0][0]), use_accept, 8};
|