summaryrefslogtreecommitdiff
path: root/src/Inter-UI-Regular.ufo/features.fea
blob: 46c323a50355dbf4928743cbfe8a729e0b4e867f (plain)
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
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
@UC_ROMAN = [ 
  A - Z
  AE AEacute Aacute Abreve Acircumflex Adieresis Agrave Alpha Alphatonos
  Amacron Aogonek Aogonek.NAV Aring Aringacute Atilde Beta Cacute Ccaron
  Ccedilla Ccircumflex Dcaron Dcroat Delta Eacute Ebreve Ecaron Ecircumflex
  Edieresis Edotaccent Egrave Emacron Eng Eogonek Eogonek.NAV Epsilon
  Epsilontonos Eta Etatonos Eth Gamma Gbreve Gcircumflex Gcommaaccent Germandbls
  Hbar Hcircumflex IJ Iacute Ibreve Icircumflex Idieresis Igrave Imacron Iogonek
  Iota Iotadieresis Iotatonos Itilde Jcircumflex Kappa Kcommaaccent Lacute
  Lambda Lcaron Lcommaaccent Ldot Lslash Nacute Ncaron Ncommaaccent Ntilde Nu
  OE Oacute Obreve Ocircumflex Odieresis Ograve Ohungarumlaut Omacron Omega
  Omegatonos Omicron Omicrontonos Oogonek Oogonek.NAV Oslash Oslashacute Otilde
  Phi Pi Psi Racute Rcaron Rcommaaccent Rho Sacute Scaron Scedilla Scircumflex
  Sigma Tau Tbar Tcaron Theta Thorn Uacute Ubreve Ucircumflex Udieresis Ugrave
  Uhungarumlaut Umacron Uogonek Upsilon Upsilondieresis Upsilontonos Uring
  Utilde Wacute Wcircumflex Wdieresis Wgrave Xi Yacute Ycircumflex Ydieresis
  Ygrave Zacute Zcaron Zdotaccent Zeta ampersand Cdotaccent Gdotaccent
  Tcommaaccent Scommaaccent uni021A uni037F
 ];

@LC_ROMAN = [ 
  a - z
  ae aeacute aacute abreve acircumflex adieresis agrave alpha alphatonos
  amacron aogonek aogonek.NAV aring aringacute atilde beta cacute ccaron
  ccedilla ccircumflex dcaron dcroat delta eacute ebreve ecaron ecircumflex
  edieresis edotaccent egrave emacron eng eogonek eogonek.NAV epsilon
  epsilontonos eta etatonos eth gamma gbreve gcircumflex gcommaaccent
  germandbls hbar hcircumflex ij iacute ibreve icircumflex idieresis igrave
  imacron iogonek iota iotadieresis iotatonos itilde jcircumflex kappa
  kcommaaccent lacute lambda lcaron lcommaaccent ldot lslash nacute ncaron
  ncommaaccent ntilde nu oe oacute obreve ocircumflex odieresis ograve
  ohungarumlaut omacron omega omegatonos omicron omicrontonos oogonek
  oogonek.NAV oslash oslashacute otilde phi pi psi racute rcaron rcommaaccent
  rho sacute scaron scedilla scircumflex sigma tau tbar tcaron theta thorn
  uacute ubreve ucircumflex udieresis ugrave uhungarumlaut umacron uogonek
  upsilon upsilondieresis upsilontonos uring utilde wacute wcircumflex
  wdieresis wgrave xi yacute ycircumflex ydieresis ygrave zacute zcaron
  zdotaccent zeta ampersand cdotaccent gdotaccent tcommaaccent scommaaccent
  uni021B yotgreek
 ];

@UC_SET1 = [ 
  zero one two three four five six seven eight nine
  euro Idotaccent Mu dollar
  lira sterling afii10023 afii10051 afii10052 afii10053 afii10054 afii10055
  afii10056 afii10057 afii10058 afii10059 afii10060 afii10061 afii10062
  afii10145 afii10017 afii10018 afii10019 afii10020 afii10021 afii10022
  afii10024 afii10025 afii10026 afii10027 afii10029 afii10030 afii10031
  afii10032 afii10033 afii10034 afii10035 afii10036 afii10037 afii10038
  afii10039 afii10040 afii10041 afii10042 afii10043 afii10044 afii10045
  afii10046 afii10047 afii10048 afii10049 afii10050 Ghestrokecyrillic
  Zhedescendercyrillic Zedescendercyrillic Kadescendercyrillic
  Kaverticalstrokecyrillic Kabashkircyrillic Endescendercyrillic
  Haabkhasiancyrillic Esdescendercyrillic Ustraightcyrillic
  Ustraightstrokecyrillic Hadescendercyrillic Tetsecyrillic
  Cheverticalstrokecyrillic Shhacyrillic Cheabkhasiancyrillic
  Chedescenderabkhasiancyrillic Schwacyrillic Dzeabkhasiancyrillic
  Imacroncyrillic Obarredcyrillic Umacroncyrillic hryvnia tenge uni20BD numero
  yen placeofinterestsign Lbar
 ];

@LC_SET1 = [ 
  idotless sigma1 mugreek afii10065 becyrillic vecyrillic gecyrillic
  decyrillic iecyrillic zhecyrillic zecyrillic iicyrillic iishortcyrillic
  kacyrillic elcyrillic emcyrillic encyrillic ocyrillic pecyrillic ercyrillic
  escyrillic tecyrillic ucyrillic efcyrillic khacyrillic tsecyrillic
  checyrillic shacyrillic shchacyrillic hardsigncyrillic yericyrillic
  softsigncyrillic ereversedcyrillic iucyrillic iacyrillic iocyrillic
  djecyrillic gjecyrillic ecyrillic dzecyrillic icyrillic yicyrillic
  jecyrillic ljecyrillic njecyrillic tshecyrillic kjecyrillic ushortcyrillic
  dzhecyrillic gheupturncyrillic ghestrokecyrillic zhedescendercyrillic
  zedescendercyrillic kadescendercyrillic kaverticalstrokecyrillic
  kabashkircyrillic endescendercyrillic haabkhasiancyrillic
  esdescendercyrillic ustraightcyrillic ustraightstrokecyrillic
  hadescendercyrillic tetsecyrillic cheverticalstrokecyrillic shhacyrillic
  cheabkhasiancyrillic chedescenderabkhasiancyrillic schwacyrillic
  dzeabkhasiancyrillic imacroncyrillic obarredcyrillic umacroncyrillic zhook
 ];

@TNUM = [ zero.tf
one.tf
two.tf
three.tf
four.tf
five.tf
six.tf
seven.tf
eight.tf
nine.tf ];

@TNUM_L = [ zero
one
two
three
four
five
six
seven
eight
nine
one.ss01
four.ss01
six.ss01
nine.ss01
period
comma ];

@TNUM_R = [ zero.tf
one.tf
two.tf
three.tf
four.tf
five.tf
six.tf
seven.tf
eight.tf
nine.tf
one.tf.ss01
four.tf.ss01
six.tf.ss01
nine.tf.ss01
period.tf
comma.tf ];

@SS01_L = [  one four six nine  ];

@SS01_R = [  one.ss01 four.ss01 six.ss01 nine.ss01  ];

@NUM = [  zero one two three four five six seven eight nine @TNUM @SS01_R  ];

@SPACE = [ 
  space enspace emspace thirdemspace quarteremspace sixthemspace figurespace
  punctuationspace thinspace hairspace zerowidthspace
 ];

@frac1 = [  zero one two three four five six seven eight nine  ];

@frac2 = [  zero.frac one.numr two.numr three.numr four.frac five.frac six.frac seven.frac eight.frac nine.frac  ];

@frac3 = [  fraction zero.dnomf one.dnomf two.dnomf three.dnomf four.dnomf five.dnomf six.dnomf seven.dnomf eight.dnomf nine.dnomf  ];

@frac4 = [  zero.dnomf one.dnomf two.dnomf three.dnomf four.dnomf five.dnomf six.dnomf seven.dnomf eight.dnomf nine.dnomf  ];

@CCMP_ACC = [ gravecomb acutecomb tildecomb brevetildecomb.cn brevehookcomb.cn breveacutecomb.cn
circumflextildecomb.cn circumflexhookcomb.cn circumflexgravecomb.cn circumflexacutecomb.cn
brevegravecomb.cn macroncomb dieresismacroncomb.cn
dieresisacutecomb.cn dieresiscaroncomb.cn dieresisgravecomb.cn dotmacroncomb.cn
tildeacutecomb macrongravecomb.cn macronacutecomb.cn macrondieresiscomb.cn acutedotcomb.cn
carondotcomb.cn tildemacroncomb.cn tildedieresiscomb.cn circumflexnosp overscorenosp
brevenosp dotnosp dieresisnosp hook ringnosp acutedblnosp caroncmb
linevertnosp linevertdblnosp dblgravecmb candrabindunosp breveinvnosp
commaturnsupnosp commaabovecmb commasuprevnosp commaaboverightcmb anglesupnosp
hornnosp xsupnosp tildevertsupnosp overscoredblnosp graveleftnosp
acuterightnosp perispomenigreekcmb koroniscmb diaeresistonosnosp uni0346
uni034A uni034B uni034C uni0350 uni0351 uni0352 uni0357 uni0358 uni035B
uni1DC0 uni1DC1 uni1DC3 uni1DC4 uni1DC5 uni1DC6 uni1DC7 uni1DC8 uni1DC9
uni1DCB uni1DCC uni1DCD uni1DCE uni1DD1 uni1DD2 uni1DD3 uni1DD4 uni1DD5
uni1DD6 uni1DD7 uni1DD8 uni1DD9 uni1DDA uni1DDB uni1DDC uni1DDD uni1DDE
uni1DDF uni1DE0 uni1DE1 uni1DE2 uni1DE3 uni1DE4 uni1DE5 uni1DE6 uni1DE7
uni1DE8 uni1DE9 uni1DEA uni1DEB uni1DEC uni1DED uni1DEE uni1DEF uni1DF0
uni1DF1 uni1DF2 uni1DF3 uni1DF4 uni1DF5 uni1DFE uni0363 uni0364 uni0365
uni0366 uni0367 uni0368 uni0369 uni036A uni036B uni036C uni036D uni036E
uni036F titlocyrilliccmb palatalizationcyrilliccmb dasiapneumatacyrilliccmb
psilipneumatacyrilliccmb uni0487 uni20F0 uniA69F uni2DFF uni20DC uniFE20
uniFE21 uniFE22 uniFE23 uniFE24 uniFE25 uniFE26 ];

# automatic
@Uppercase = [ A Adieresis Atilde Agrave Aacute Acircumflex Aring Amacron Abreve Aogonek Acaron Adieresismacron Adotmacron Aringacute Adblgrave Ainvertedbreve uni0226 Aringbelow Adotbelow Ahookabove Acircumflexacute Acircumflexgrave Acircumflexhookabove Acircumflextilde Acircumflexdotbelow Abreveacute Abrevegrave Abrevehookabove Abrevetilde Abrevedotbelow Alpha Alphatonos uni1F08 uni1F09 uni1F0A uni1F0B uni1F0C uni1F0D uni1F0E uni1F0F uni1FB8 uni1FB9 uni1FBA uni023A uni1FBB afii10017 Abrevecyrillic Adieresiscyrillic uni1F88 uni1F89 uni1F8A uni1F8B uni1F8C uni1F8D uni1F8E uni1F8F uni1FBC Lambda AE AEmacron AEacute Aiecyrillic B Bdotaccent Bdotbelow Blinebelow uni0243 Bhook afii10019 Beta C Chook Ccedilla Cacute Ccircumflex Cdotaccent Ccaron Ccedillaacute uni023B Oopen uni03F9 D Dhook Dcaron Ddotaccent Ddotbelow Dlinebelow Dcedilla Dcircumflexbelow Dbar1 Dz Dzcaron_ E Egrave Eacute Ecircumflex Edieresis Emacron Ebreve Edotaccent Eogonek Ecaron Edblgrave Einvertedbreve uni0228 Emacrongrave Emacronacute Ecircumflexbelow Etildebelow Ecedillabreve Edotbelow Ehookabove Etilde Ecircumflexacute Ecircumflexgrave Ecircumflexhookabove Ecircumflextilde Ecircumflexdotbelow uni0246 Eturn Epsilon Epsilontonos uni1F18 uni1F19 uni1F1A uni1F1B uni1F1C uni1F1D uni1FC8 uni1FC9 afii10022 uni0400 afii10023 Iebrevecyrillic F Fhook Fdotaccent Fturn G Gbar Ghook Gcircumflex Gbreve Gdotaccent Gcommaaccent Gcaron Gacute Gmacron H Hcedilla Hcircumflex uni021E Hdotaccent Hdotbelow Hdieresis Hbrevebelow Hbar Enhookcyrillic Endescendercyrillic uni04C9 Enghecyrillic uni01F6 Eta Etatonos uni1F28 uni1F29 uni1F2A uni1F2B uni1F2C uni1F2D uni1F2E uni1F2F uni1FCA uni1FCB afii10031 uni1F98 uni1F99 uni1F9A uni1F9B uni1F9C uni1F9D uni1F9E uni1F9F uni1FCC I Idieresis Idieresisacute Istroke Itildebelow Igrave Iacute Icircumflex Itilde Imacron Ibreve Iogonek Idotaccent Icaron Idblgrave Iinvertedbreve Ihookabove Idotbelow Iota Iotatonos Iotadieresis uni1F38 uni1F39 uni1F3A uni1F3B uni1F3C uni1F3D uni1F3E uni1F3F uni1FD8 uni1FD9 uni1FDA uni1FDB afii10055 afii10056 I.1 Idieresis.1 Idieresisacute.1 Istroke.1 Itildebelow.1 Igrave.1 Iacute.1 Icircumflex.1 Itilde.1 Imacron.1 Ibreve.1 Iogonek.1 Idotaccent.1 Icaron.1 Idblgrave.1 Iinvertedbreve.1 Ihookabove.1 Idotbelow.1 uni1F38.1 uni1F39.1 uni1F3A.1 uni1F3B.1 uni1F3C.1 uni1F3D.1 uni1F3E.1 uni1F3F.1 uni1FD8.1 uni1FD9.1 uni1FDA.1 uni1FDB.1 afii10055.1 afii10056.1 J Jcircumflex uni0248 uni037F afii10057 K Kcommaaccent Kcaron Kacute Kdotbelow Klinebelow Kabashkircyrillic Kadescendercyrillic Khook Kappa L Lacute Lcommaaccent Lcaron Ldotbelow Ldotbelowmacron Llinebelow Lcircumflexbelow Lslash Lbar Lj M Macute Mdotaccent Mdotbelow uni04CD Mu uni03FA afii10030 N Ntilde Nacute Ncommaaccent Ncaron uni01F8 Ndotaccent Ndotbelow Nlinebelow Ncircumflexbelow Nhook Eng afii10026 uni040D afii10027 Imacroncyrillic Idieresiscyrillic uni048A uni0376 Nu Nj O Odieresis Otilde Oslash Ohorn Ograve Oacute Ocircumflex Omacron Obreve Ohungarumlaut Ocaron Oogonek Oogonekmacron Odblgrave Oinvertedbreve uni022A uni022C uni022E uni0230 Otildeacute Otildedieresis Omacrongrave Omacronacute Odotbelow Ohookabove Ocircumflexacute Ocircumflexgrave Ocircumflexhookabove Ocircumflextilde Ocircumflexdotbelow Ohornacute Ohorngrave Ohornhookabove Ohorntilde Ohorndotbelow Oslashacute Omicron Omicrontonos uni1F48 uni1F49 uni1F4A uni1F4B uni1F4C uni1F4D uni1FF8 uni03F4 uni1FF9 afii10032 Odieresiscyrillic Obar Obarredcyrillic Obarreddieresiscyrillic OE P Pacute Pdotaccent uni048E Phook Rho uni1FEC Q R Racute Rcommaaccent Rcaron Rdblgrave Rinvertedbreve Rdotaccent Rdotbelow Rdotbelowmacron Rlinebelow uni024C S Sacute Scircumflex Scedilla Scaron Scommaaccent Sdotaccent Sdotbelow Sacutedotaccent Scarondotaccent Sdotbelowdotaccent afii10054 Tonetwo Germandbls T Tcommaaccent Tcaron uni021A Tdotaccent Tdotbelow Tlinebelow Tcircumflexbelow Thook Trthook uni023E Tau U Uhorn Ugrave Uacute Ucircumflex Udieresis Utilde Umacron Ubreve Uring Uhungarumlaut Uogonek Ucaron Udieresismacron Udieresisacute Udieresiscaron Udieresisgrave Udblgrave Uinvertedbreve Udieresisbelow Utildebelow Ucircumflexbelow Utildeacute Umacrondieresis Udotbelow Uhookabove Uhornacute Uhorngrave Uhornhookabove Uhorntilde Uhorndotbelow uni0244 V Vtilde Vdotbelow W Wcircumflex Wgrave Wacute Wdieresis Wdotaccent Wdotbelow X Xdotaccent Xdieresis Hadescendercyrillic uni04FC Chi Y Yhook Yacute Ycircumflex Ydieresis uni0232 Ydotaccent Ygrave Ydotbelow Yhookabove Ytilde uni024E Upsilon Upsilontonos Upsilondieresis uni1F59 uni1F5B uni1F5D uni1F5F uni1FE8 uni1FE9 uni1FEA uni1FEB Z Zacute Zdotaccent Zcaron Zcircumflex Zdotbelow Zlinebelow uni0224 Zbar Zeta uni2C7F Q_rthook Thorn Gamma Delta Theta Xi Pi Sigma Phi Psi Omega uni1FFB Omegatonos uni1F68 uni1F69 uni1F6A uni1F6B uni1F6C uni1F6D uni1F6E uni1F6F uni1FFA uni1FA8 uni1FA9 uni1FAA uni1FAB uni1FAC uni1FAD uni1FAE uni1FAF uni1FFC Upsilon2 Upsilonhooksymbol Upsilonacutehooksymbolgreek Upsilondieresishooksymbolgreek Gamma1 afii10018 afii10050 uni04FA afii10021 afii10024 Zhedescendercyrillic afii10025 Kacyr Kaverticalstrokecyrillic Kahookcyrillic afii10029 afii10147 afii10145 afii10037 afii10038 afii10040 Tetsecyrillic afii10041 Chedescendercyrillic Cheverticalstrokecyrillic Shhacyrillic afii10060 afii10042 afii10043 afii10044 afii10045 afii10046 afii10058 afii10059 afii10047 afii10048 afii10049 Ghemiddlehookcyrillic Pemiddlehookcyrillic afii10053 Haabkhasiancyrillic Cheabkhasiancyrillic Schwacyrillic Dzeabkhasiancyrillic afii10148 afii10051 Tonefive degreekelvin uni03FD uni03FE uni03FF uni0372 uni0370 Btopbar Koppa Tonesix Digamma uni01F7 uni021C Dtopbar uni1EFE uni1EFA uni1EFC uni03D8 uni0220 Iota1 mcapturn Vcursive uni0241 uni0245 angstrom Schwa Esh Omegacyrillic Yuslittlecyrillic Eiotifiedcyrillic Yuslittleiotifiedcyrillic Yusbigiotifiedcyrillic Yusbigcyrillic Ksicyrillic OI uni03CF Stigma Epsilon1 YR uni0222 Sampi Koppacyrillic Ezhreversed Ezh Eth Dcroat IJ Ldot Tbar LJ NJ DZ Aogonek.NAV Eogonek.NAV Oogonek.NAV uni03F7 afii10020 afii10052 afii10033 afii10034 afii10035 afii10036 afii10039 afii10146 Psicyrillic Ukcyrillic uni048C Ghestrokecyrillic Zedescendercyrillic Esdescendercyrillic Tedescendercyrillic Ustraightcyrillic Ustraightstrokecyrillic Chedescenderabkhasiancyrillic palochkacyrillic Chekhakassiancyrillic uni04F6 uni04FE afii10061 Schwadieresiscyrillic Zhebrevecyrillic Zhedieresiscyrillic Zedieresiscyrillic afii10062 Umacroncyrillic Udieresiscyrillic Uhungarumlautcyrillic Chedieresiscyrillic Yerudieresiscyrillic uni04EC Izhitsadblgravecyrillic Ezhcaron Eltail-cy ];

# Prefix: Languagesystems
languagesystem DFLT dflt;
languagesystem latn dflt;
languagesystem latn MOL;
languagesystem latn ROM;
languagesystem latn FRA;
languagesystem latn TRK;
languagesystem latn AZE;
languagesystem latn CRT;
languagesystem latn NAV;
languagesystem cyrl dflt;
languagesystem grek dflt;


feature ccmp {
# Transpose sequences like /i /gravecomb -> /idotless /gravecomb
lookup ccmp02 {
  sub i' @CCMP_ACC by idotless;
  sub j' @CCMP_ACC by jdotless;
  sub ibar' @CCMP_ACC by uni0268.ccmp;
  sub iogonek' @CCMP_ACC by uni012F.ccmp; # iogonek is generated
  sub uni0249' @CCMP_ACC by uni0249.ccmp;
  sub jcrosstail' @CCMP_ACC by jcrosstail.ccmp;
  sub yotgreek' @CCMP_ACC by jdotless;
  sub icyrillic' @CCMP_ACC by idotless;
  sub jecyrillic' @CCMP_ACC by jdotless;
  sub itildebelow' @CCMP_ACC by uni1E2D.ccmp; # uni1E2D.ccmp is generated
  sub idotbelow' @CCMP_ACC by uni1ECB.ccmp; # both are generated
  sub i.numr' @CCMP_ACC by uni2071.ccmp;
} ccmp02;

lookup ccmp03 {

sub d caroncmb by dcaron;
sub l caroncmb by lcaron;
sub t caroncmb by tcaron;

sub A gravecomb by Agrave;
sub A acutecomb by Aacute;
sub A circumflexnosp by Acircumflex;
sub A tildecomb by Atilde;
sub A dieresisnosp by Adieresis;
sub A ringnosp by Aring;
sub A ringacute.cn by Aringacute;
sub C cedillanosp by Ccedilla;
sub E gravecomb by Egrave;
sub E acutecomb by Eacute;
sub E circumflexnosp by Ecircumflex;
sub E dieresisnosp by Edieresis;
sub I gravecomb by Igrave;
sub I acutecomb by Iacute;
sub I circumflexnosp by Icircumflex;
sub I dieresisnosp by Idieresis;
sub N tildecomb by Ntilde;
sub O gravecomb by Ograve;
sub O acutecomb by Oacute;
sub O circumflexnosp by Ocircumflex;
sub O tildecomb by Otilde;
sub O dieresisnosp by Odieresis;
sub U gravecomb by Ugrave;
sub U acutecomb by Uacute;
sub U circumflexnosp by Ucircumflex;
sub U dieresisnosp by Udieresis;
sub Y acutecomb by Yacute;
sub a gravecomb by agrave;
sub a acutecomb by aacute;
sub a circumflexnosp by acircumflex;
sub a tildecomb by atilde;
sub a dieresisnosp by adieresis;
sub a ringnosp by aring;
sub a ringacute.cn by aringacute;
sub c cedillanosp by ccedilla;
sub e gravecomb by egrave;
sub e acutecomb by eacute;
sub e circumflexnosp by ecircumflex;
sub e dieresisnosp by edieresis;
sub idotless gravecomb by igrave;
sub idotless acutecomb by iacute;
sub idotless circumflexnosp by icircumflex;
sub idotless dieresisnosp by idieresis;
sub n tildecomb by ntilde;
sub o gravecomb by ograve;
sub o acutecomb by oacute;
sub o circumflexnosp by ocircumflex;
sub o tildecomb by otilde;
sub o dieresisnosp by odieresis;
sub u gravecomb by ugrave;
sub u acutecomb by uacute;
sub u circumflexnosp by ucircumflex;
sub u dieresisnosp by udieresis;
sub y acutecomb by yacute;
sub y dieresisnosp by ydieresis;
sub A macroncomb by Amacron;
sub a macroncomb by amacron;
sub A brevenosp by Abreve;
sub a brevenosp by abreve;
sub A ogoneknosp by Aogonek;
sub a ogoneknosp by aogonek;
sub C acutecomb by Cacute;
sub c acutecomb by cacute;
sub C circumflexnosp by Ccircumflex;
sub c circumflexnosp by ccircumflex;
sub C dotnosp by Cdotaccent;
sub c dotnosp by cdotaccent;
sub C caroncmb by Ccaron;
sub c caroncmb by ccaron;
sub D caroncmb by Dcaron;
sub E macroncomb by Emacron;
sub e macroncomb by emacron;
sub E brevenosp by Ebreve;
sub e brevenosp by ebreve;
sub E dotnosp by Edotaccent;
sub e dotnosp by edotaccent;
sub E ogoneknosp by Eogonek;
sub e ogoneknosp by eogonek;
sub E caroncmb by Ecaron;
sub e caroncmb by ecaron;
sub G circumflexnosp by Gcircumflex;
sub g circumflexnosp by gcircumflex;
sub G brevenosp by Gbreve;
sub g brevenosp by gbreve;
sub G dotnosp by Gdotaccent;
sub g dotnosp by gdotaccent;
sub G commaaccent by Gcommaaccent;
sub g commaaccentrotate.cn by gcommaaccent;
sub H circumflexnosp by Hcircumflex;
sub h circumflexnosp by hcircumflex;
sub I tildecomb by Itilde;
sub idotless tildecomb by itilde;
sub I macroncomb by Imacron;
sub idotless macroncomb by imacron;
sub I brevenosp by Ibreve;
sub idotless brevenosp by ibreve;
sub I ogoneknosp by Iogonek;
sub i ogoneknosp by iogonek;
sub I dotnosp by Idotaccent;
sub J circumflexnosp by Jcircumflex;
sub jdotless circumflexnosp by jcircumflex;
sub K commaaccent by Kcommaaccent;
sub k commaaccent by kcommaaccent;
sub L acutecomb by Lacute;
sub l acutecomb by lacute;
sub L commaaccent by Lcommaaccent;
sub l commaaccent by lcommaaccent;
sub L dotnosp by Ldot;
sub l dotnosp by ldot;
sub N acutecomb by Nacute;
sub n acutecomb by nacute;
sub N commaaccent by Ncommaaccent;
sub n commaaccent by ncommaaccent;
sub N caroncmb by Ncaron;
sub n caroncmb by ncaron;
sub O macroncomb by Omacron;
sub o macroncomb by omacron;
sub O brevenosp by Obreve;
sub o brevenosp by obreve;
sub O acutedblnosp by Ohungarumlaut;
sub o acutedblnosp by ohungarumlaut;
sub R acutecomb by Racute;
sub r acutecomb by racute;
sub R commaaccent by Rcommaaccent;
sub r commaaccent by rcommaaccent;
sub R caroncmb by Rcaron;
sub r caroncmb by rcaron;
sub S acutecomb by Sacute;
sub s acutecomb by sacute;
sub S circumflexnosp by Scircumflex;
sub s circumflexnosp by scircumflex;
sub S cedillanosp by Scedilla;
sub s cedillanosp by scedilla;
sub S commaaccent by Scommaaccent;
sub s commaaccent by scommaaccent;
sub S caroncmb by Scaron;
sub s caroncmb by scaron;
sub T commaaccent by uni021A;
sub t commaaccent by uni021B;
sub T cedillanosp by Tcommaaccent;
sub t cedillanosp by tcommaaccent;
sub T caroncmb by Tcaron;
sub U tildecomb by Utilde;
sub u tildecomb by utilde;
sub U macroncomb by Umacron;
sub u macroncomb by umacron;
sub U brevenosp by Ubreve;
sub u brevenosp by ubreve;
sub U ringnosp by Uring;
sub u ringnosp by uring;
sub U acutedblnosp by Uhungarumlaut;
sub u acutedblnosp by uhungarumlaut;
sub U ogoneknosp by Uogonek;
sub u ogoneknosp by uogonek;
sub W circumflexnosp by Wcircumflex;
sub w circumflexnosp by wcircumflex;
sub Y circumflexnosp by Ycircumflex;
sub y circumflexnosp by ycircumflex;
sub Y dieresisnosp by Ydieresis;
sub Z acutecomb by Zacute;
sub z acutecomb by zacute;
sub Z dotnosp by Zdotaccent;
sub z dotnosp by zdotaccent;
sub Z caroncmb by Zcaron;
sub z caroncmb by zcaron;
sub AE acutecomb by AEacute;
sub ae acutecomb by aeacute;
sub Oslash acutecomb by Oslashacute;
sub oslash acutecomb by oslashacute;
#sub z caroncmb by zcaron;
sub W gravecomb by Wgrave;
sub w gravecomb by wgrave;
sub W acutecomb by Wacute;
sub w acutecomb by wacute;
sub W dieresisnosp by Wdieresis;
sub w dieresisnosp by wdieresis;
sub Y gravecomb by Ygrave;
sub y gravecomb by ygrave;
sub jdotless caroncmb by jcaron;
sub A dotbelow by Adotbelow;
sub a dotbelow by adotbelow;
sub A hook by Ahookabove;
sub a hook by ahookabove;
#sub A circumflexacutecomb.cn by uni1EA4;
sub A circumflexnosp acutecomb by Acircumflexacute;
sub a circumflexacutecomb.cn by acircumflexacute;
#sub A circumflexgravecomb.cn by uni1EA6;
sub A circumflexnosp gravecomb by Acircumflexgrave;
sub a circumflexgravecomb.cn by acircumflexgrave;
#sub A circumflexhookcomb.cn by uni1EA8;
sub A circumflexnosp hook by Acircumflexhookabove;
sub a circumflexhookcomb.cn by acircumflexhookabove;
#sub A circumflextildecomb.cn by uni1EAA;
sub A circumflexnosp tildecomb by Acircumflextilde;
sub a circumflextildecomb.cn by acircumflextilde;
#sub A breveacutecomb.cn by uni1EAE;
sub A brevenosp acutecomb by Abreveacute;
sub a breveacutecomb.cn by abreveacute;
#sub A brevegravecomb.cn by uni1EB0;
sub A brevenosp gravecomb by Abrevegrave;
sub a brevegravecomb.cn by abrevegrave;
#sub A brevehookcomb.cn by uni1EB2;
sub A brevenosp hook by Abrevehookabove;
sub a brevehookcomb.cn by abrevehookabove;
sub A brevetildecomb.cn by Abrevetilde;
sub a brevetildecomb.cn by abrevetilde;
sub E dotbelow by Edotbelow;
sub e dotbelow by edotbelow;
sub E hook by Ehookabove;
sub e hook by ehookabove;
sub E tildecomb by Etilde;
sub e tildecomb by etilde;
#sub E circumflexacutecomb.cn by uni1EBE;
sub E circumflexnosp acutecomb by Ecircumflexacute;
sub e circumflexacutecomb.cn by ecircumflexacute;
#sub E circumflexgravecomb.cn by uni1EC0;
sub E circumflexnosp gravecomb by Ecircumflexgrave;
sub e circumflexgravecomb.cn by ecircumflexgrave;
#sub E circumflexhookcomb.cn by uni1EC2;
sub E circumflexnosp hook by Ecircumflexhookabove;
sub e circumflexhookcomb.cn by ecircumflexhookabove;
#sub E circumflextildecomb.cn by uni1EC4;
sub E circumflexnosp tildecomb by Ecircumflextilde;
sub e circumflextildecomb.cn by ecircumflextilde;
sub I hook by Ihookabove;
sub idotless hook by ihookabove;
sub I dotbelow by Idotbelow;
sub i dotbelow by idotbelow;
sub O dotbelow by Odotbelow;
sub o dotbelow by odotbelow;
sub O hook by Ohookabove;
sub o hook by ohookabove;
#sub O circumflexacutecomb.cn by uni1ED0;
sub O circumflexnosp acutecomb by Ocircumflexacute;
sub o circumflexacutecomb.cn by ocircumflexacute;
#sub O circumflexgravecomb.cn by uni1ED2;
sub O circumflexnosp gravecomb by Ocircumflexgrave;
sub o circumflexgravecomb.cn by ocircumflexgrave;
#sub O circumflexhookcomb.cn by uni1ED4;
sub O circumflexnosp hook by Ocircumflexhookabove;
sub o circumflexhookcomb.cn by ocircumflexhookabove;
#sub O circumflextildecomb.cn by uni1ED6;
sub O circumflexnosp tildecomb by Ocircumflextilde;
sub o circumflextildecomb.cn by ocircumflextilde;
sub Ohorn acutecomb by Ohornacute;
sub ohorn acutecomb by ohornacute;
sub Ohorn gravecomb by Ohorngrave;
sub ohorn gravecomb by ohorngrave;
sub Ohorn hook by Ohornhookabove;
sub ohorn hook by ohornhookabove;
sub Ohorn tildecomb by Ohorntilde;
sub ohorn tildecomb by ohorntilde;
sub Ohorn dotbelow by Ohorndotbelow;
sub ohorn dotbelow by ohorndotbelow;
sub U dotbelow by Udotbelow;
sub u dotbelow by udotbelow;
sub U hook by Uhookabove;
sub u hook by uhookabove;
sub Uhorn acutecomb by Uhornacute;
sub uhorn acutecomb by uhornacute;
sub Uhorn gravecomb by Uhorngrave;
sub uhorn gravecomb by uhorngrave;
sub Uhorn hook by Uhornhookabove;
sub uhorn hook by uhornhookabove;
sub Uhorn tildecomb by Uhorntilde;
sub uhorn tildecomb by uhorntilde;
sub Uhorn dotbelow by Uhorndotbelow;
sub uhorn dotbelow by uhorndotbelow;
sub Y dotbelow by Ydotbelow;
sub y dotbelow by ydotbelow;
sub Y hook by Yhookabove;
sub y hook by yhookabove;
sub Y tildecomb by Ytilde;
sub y tildecomb by ytilde;
sub A caroncmb by Acaron;
sub a caroncmb by acaron;
sub I caroncmb by Icaron;
sub idotless caroncmb by icaron;
sub O caroncmb by Ocaron;
sub o caroncmb by ocaron;
sub U caroncmb by Ucaron;
sub u caroncmb by ucaron;
#sub U dieresismacroncomb.cn by uni01D5;
sub U dieresisnosp macroncomb by Udieresismacron;
sub u dieresismacroncomb.cn by udieresismacron;
#sub U dieresisacutecomb.cn by uni01D7;
sub U dieresisnosp acutecomb by Udieresisacute;
sub u dieresisacutecomb.cn by udieresisacute;
#sub U dieresiscaroncomb.cn by uni01D9;
sub U dieresisnosp caroncmb by Udieresiscaron;
sub u dieresiscaroncomb.cn by udieresiscaron;
#sub U dieresisgravecomb.cn by uni01DB;
sub U dieresisnosp gravecomb by Udieresisgrave;
sub u dieresisgravecomb.cn by udieresisgrave;
#sub A dieresismacroncomb.cn by uni01DE;
sub A dieresisnosp macroncomb by Adieresismacron;
sub a dieresismacroncomb.cn by adieresismacron;
#sub A dotmacroncomb.cn by uni01E0;
sub A dotnosp macroncomb by Adotmacron;
sub a dotmacroncomb.cn by adotmacron;
sub AE macroncomb by AEmacron;
sub ae macroncomb by aemacron;
sub G caroncmb by Gcaron;
sub g caroncmb by gcaron;
sub K caroncmb by Kcaron;
sub k caroncmb by kcaron;
sub O ogoneknosp by Oogonek;
sub o ogoneknosp by oogonek;
sub G acutecomb by Gacute;
sub g acutecomb by gacute;
sub N gravecomb by uni01F8;
sub n gravecomb by uni01F9;
sub A dblgravecmb by Adblgrave;
sub a dblgravecmb by adblgrave;
sub A breveinvnosp by Ainvertedbreve;
sub a breveinvnosp by ainvertedbreve;
sub E dblgravecmb by Edblgrave;
sub e dblgravecmb by edblgrave;
sub E breveinvnosp by Einvertedbreve;
sub e breveinvnosp by einvertedbreve;
sub I dblgravecmb by Idblgrave;
sub idotless dblgravecmb by idblgrave;
sub I breveinvnosp by Iinvertedbreve;
sub idotless breveinvnosp by iinvertedbreve;
sub O dblgravecmb by Odblgrave;
sub o dblgravecmb by odblgrave;
sub O breveinvnosp by Oinvertedbreve;
sub o breveinvnosp by oinvertedbreve;
sub R dblgravecmb by Rdblgrave;
sub r dblgravecmb by rdblgrave;
sub R breveinvnosp by Rinvertedbreve;
sub r breveinvnosp by rinvertedbreve;
sub U dblgravecmb by Udblgrave;
sub u dblgravecmb by udblgrave;
sub U breveinvnosp by Uinvertedbreve;
sub u breveinvnosp by uinvertedbreve;
sub H caroncmb by uni021E;
sub h caroncmb by uni021F;
sub A dotnosp by uni0226;
sub a dotnosp by uni0227;
sub E cedillanosp by uni0228;
sub e cedillanosp by uni0229;
#sub O dieresismacroncomb.cn by uni022A;
sub O dieresisnosp macroncomb by uni022A;
sub o dieresismacroncomb.cn by uni022B;
#sub O tildemacroncomb.cn by uni022C;
sub O tildecomb macroncomb by uni022C;
sub o tildemacroncomb.cn by uni022D;
sub O dotnosp by uni022E;
sub o dotnosp by uni022F;
#sub O dotmacroncomb.cn by uni0230;
sub O dotnosp macroncomb by uni0230;
sub o dotmacroncomb.cn by uni0231;
sub Y macroncomb by uni0232;
sub y macroncomb by uni0233;
sub Upsilonhooksymbol acutecomb by Upsilonacutehooksymbolgreek;
sub Upsilonhooksymbol dieresisnosp by Upsilondieresishooksymbolgreek;
sub B dotnosp by Bdotaccent;
sub b dotnosp by bdotaccent;
sub B dotbelow by Bdotbelow;
sub b dotbelow by bdotbelow;
sub B macronsubnosp by Blinebelow;
sub b macronsubnosp by blinebelow;
sub D dotnosp by Ddotaccent;
sub d dotnosp by ddotaccent;
sub D dotbelow by Ddotbelow;
sub d dotbelow by ddotbelow;
sub D macronsubnosp by Dlinebelow;
sub d macronsubnosp by dlinebelow;
sub D commaaccent by Dcedilla;
sub d commaaccent by dcedilla;
sub D circumflexsubnosp by Dcircumflexbelow;
sub d circumflexsubnosp by dcircumflexbelow;
#sub E macrongravecomb.cn by uni1E14;
sub E macroncomb gravecomb by Emacrongrave;
sub e macrongravecomb.cn by emacrongrave;
#sub E macronacutecomb.cn by uni1E16;
sub E macroncomb acutecomb by Emacronacute;
sub e macronacutecomb.cn by emacronacute;
sub E circumflexsubnosp by Ecircumflexbelow;
sub e circumflexsubnosp by ecircumflexbelow;
sub E tildesubnosp by Etildebelow;
sub e tildesubnosp by etildebelow;
sub F dotnosp by Fdotaccent;
sub f dotnosp by fdotaccent;
sub G macroncomb by Gmacron;
sub g macroncomb by gmacron;
sub H dotnosp by Hdotaccent;
sub h dotnosp by hdotaccent;
sub H dotbelow by Hdotbelow;
sub h dotbelow by hdotbelow;
sub H dieresisnosp by Hdieresis;
sub h dieresisnosp by hdieresis;
sub H brevesubnosp by Hbrevebelow;
sub h brevesubnosp by hbrevebelow;
sub I tildesubnosp by Itildebelow;
sub i tildesubnosp by itildebelow;
#sub I dieresisacutecomb.cn by Idieresisacute;
sub I dieresisnosp acutecomb by Idieresisacute;
sub idotless dieresisacutecomb.cn by idieresisacute;
sub K acutecomb by Kacute;
sub k acutecomb by kacute;
sub K dotbelow by Kdotbelow;
sub k dotbelow by kdotbelow;
sub K macronsubnosp by Klinebelow;
sub k macronsubnosp by klinebelow;
sub L dotbelow by Ldotbelow;
sub l dotbelow by ldotbelow;
sub L macronsubnosp by Llinebelow;
sub l macronsubnosp by llinebelow;
sub L circumflexsubnosp by Lcircumflexbelow;
sub l circumflexsubnosp by lcircumflexbelow;
sub M acutecomb by Macute;
sub m acutecomb by macute;
sub M dotnosp by Mdotaccent;
sub m dotnosp by mdotaccent;
sub M dotbelow by Mdotbelow;
sub m dotbelow by mdotbelow;
sub N dotnosp by Ndotaccent;
sub n dotnosp by ndotaccent;
sub N dotbelow by Ndotbelow;
sub n dotbelow by ndotbelow;
sub N macronsubnosp by Nlinebelow;
sub n macronsubnosp by nlinebelow;
sub N circumflexsubnosp by Ncircumflexbelow;
sub n circumflexsubnosp by ncircumflexbelow;
#sub O tildeacutecomb.cn by uni1E4C;
sub O tildecomb acutecomb by Otildeacute;
sub o tildeacutecomb by otildeacute;
#sub O tildedieresiscomb.cn by uni1E4E;
sub O tildecomb dieresisnosp by Otildedieresis;
sub o tildedieresiscomb.cn by otildedieresis;
#sub O macrongravecomb.cn by uni1E50;
sub O macroncomb gravecomb by Omacrongrave;
sub o macrongravecomb.cn by omacrongrave;
#sub O macronacutecomb.cn by uni1E52;
sub O macroncomb acutecomb by Omacronacute;
sub o macronacutecomb.cn by omacronacute;
sub P acutecomb by Pacute;
sub p acutecomb by pacute;
sub P dotnosp by Pdotaccent;
sub p dotnosp by pdotaccent;
sub R dotnosp by Rdotaccent;
sub r dotnosp by rdotaccent;
sub R dotbelow by Rdotbelow;
sub r dotbelow by rdotbelow;
sub R macronsubnosp by Rlinebelow;
sub r macronsubnosp by rlinebelow;
sub S dotnosp by Sdotaccent;
sub s dotnosp by sdotaccent;
sub S dotbelow by Sdotbelow;
sub s dotbelow by sdotbelow;
#sub S acutedotcomb.cn by uni1E64;
sub S acutecomb dotnosp by Sacutedotaccent;
sub s acutedotcomb.cn by sacutedotaccent;
#sub S carondotcomb.cn by uni1E66;
sub S caroncmb dotnosp by Scarondotaccent;
sub s carondotcomb.cn by scarondotaccent;
sub T dotnosp by Tdotaccent;
sub t dotnosp by tdotaccent;
sub T dotbelow by Tdotbelow;
sub t dotbelow by tdotbelow;
sub T macronsubnosp by Tlinebelow;
sub t macronsubnosp by tlinebelow;
sub T circumflexsubnosp by Tcircumflexbelow;
sub t circumflexsubnosp by tcircumflexbelow;
sub U dotdblsubnosp by Udieresisbelow;
sub u dotdblsubnosp by udieresisbelow;
sub U tildesubnosp by Utildebelow;
sub u tildesubnosp by utildebelow;
sub U circumflexsubnosp by Ucircumflexbelow;
sub u circumflexsubnosp by ucircumflexbelow;
#sub U tildeacutecomb.cn by uni1E78;
sub U tildecomb acutecomb by Utildeacute;
sub u tildeacutecomb by utildeacute;
#sub U macrondieresiscomb.cn by uni1E7A;
sub U macroncomb dieresisnosp by Umacrondieresis;
sub u macrondieresiscomb.cn by umacrondieresis;
sub V tildecomb by Vtilde;
sub v tildecomb by vtilde;
sub V dotbelow by Vdotbelow;
sub v dotbelow by vdotbelow;
sub W dotnosp by Wdotaccent;
sub w dotnosp by wdotaccent;
sub W dotbelow by Wdotbelow;
sub w dotbelow by wdotbelow;
sub X dotnosp by Xdotaccent;
sub x dotnosp by xdotaccent;
sub X dieresisnosp by Xdieresis;
sub x dieresisnosp by xdieresis;
sub Y dotnosp by Ydotaccent;
sub y dotnosp by ydotaccent;
sub Z circumflexnosp by Zcircumflex;
sub z circumflexnosp by zcircumflex;
sub Z dotbelow by Zdotbelow;
sub z dotbelow by zdotbelow;
sub Z macronsubnosp by Zlinebelow;
sub z macronsubnosp by zlinebelow;
sub h macronsubnosp by hlinebelow;
sub t dieresisnosp by tdieresis;
sub w ringnosp by wring;
sub y ringnosp by yring;
sub longs dotnosp by slongdotaccent;
sub A ringsubnosp by Aringbelow;
sub a ringsubnosp by aringbelow;
} ccmp03;

} ccmp;

feature aalt {
# automatic
feature locl;
feature frac;
feature numr;
feature dnom;
feature case;
feature calt;
feature tnum;
feature pnum;
feature zero;
feature sups;
feature subs;
feature ordn;
feature salt;
feature ss01;
feature ss02;
feature cv01;
feature cv02;
feature cv03;
feature cv04;
feature cv05;
feature cv06;
feature cv07;
feature cv08;
feature cv09;

} aalt;

feature locl {
# automatic
script latn;
language CAT;
sub  l' periodcentered' l by ldot;
sub  L' periodcentered' L by Ldot;
language ROM;
sub Scedilla by Scommaaccent;
sub scedilla by scommaaccent;
language MOL;
sub Scedilla by Scommaaccent;
sub scedilla by scommaaccent;

} locl;

feature frac {
@figures = [
    zero
    one
    two
    three
    four
    five
    six
    seven
    eight
    nine
];
@numerators = [
    zero.frac
    one.frac
    two.frac
    three.frac
    four.frac
    five.frac
    six.frac
    seven.frac
    eight.frac
    nine.frac
];
@numerators2 = [
    zero.numr
    one.numr
    two.numr
    three.numr
    four.numr
    five.numr
    six.numr
    seven.numr
    eight.numr
    nine.numr
];
@denominators = [
    zero.dnomf
    one.dnomf
    two.dnomf
    three.dnomf
    four.dnomf
    five.dnomf
    six.dnomf
    seven.dnomf
    eight.dnomf
    nine.dnomf
];
@denominators2 = [
    zero.dnom
    one.dnom
    two.dnom
    three.dnom
    four.dnom
    five.dnom
    six.dnom
    seven.dnom
    eight.dnom
    nine.dnom
];
@subscripts = [
    zero.subs
    one.subs
    two.subs
    three.subs
    four.subs
    five.subs
    six.subs
    seven.subs
    eight.subs
    nine.subs
];

lookup FractionBar {
    ignore sub slash @figures @figures @figures @figures @figures @figures @figures @figures @figures @figures slash';
    ignore sub slash' @figures @figures @figures @figures @figures @figures @figures @figures @figures @figures slash;
    ignore sub slash @figures @figures @figures @figures @figures @figures @figures @figures @figures slash';
    ignore sub slash' @figures @figures @figures @figures @figures @figures @figures @figures @figures slash;
    ignore sub slash @figures @figures @figures @figures @figures @figures @figures @figures slash';
    ignore sub slash' @figures @figures @figures @figures @figures @figures @figures @figures slash;
    ignore sub slash @figures @figures @figures @figures @figures @figures @figures slash';
    ignore sub slash' @figures @figures @figures @figures @figures @figures @figures slash;
    ignore sub slash @figures @figures @figures @figures @figures @figures slash';
    ignore sub slash' @figures @figures @figures @figures @figures @figures slash;
    ignore sub slash @figures @figures @figures @figures @figures slash';
    ignore sub slash' @figures @figures @figures @figures @figures slash;
    ignore sub slash @figures @figures @figures @figures slash';
    ignore sub slash' @figures @figures @figures @figures slash;
    ignore sub slash @figures @figures @figures slash';
    ignore sub slash' @figures @figures @figures slash;
    ignore sub slash @figures @figures slash';
    ignore sub slash' @figures @figures slash;
    ignore sub slash @figures slash';
    ignore sub slash' @figures slash;
    sub @figures slash' @figures by fraction;
} FractionBar;

lookup Numerator1 {
    sub @figures'
    fraction by @numerators;
} Numerator1;

lookup Numerator2 {
    sub @figures'
        [@numerators @numerators2]
    fraction by @numerators;
} Numerator2;

lookup Numerator3 {
    sub @figures'
        [@numerators @numerators2]
        [@numerators @numerators2]
    fraction by @numerators;
} Numerator3;

lookup Numerator4 {
    sub @figures'
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
    fraction by @numerators;
} Numerator4;

lookup Numerator5 {
    sub @figures'
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
    fraction by @numerators;
} Numerator5;

lookup Numerator6 {
    sub @figures'
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
    fraction by @numerators;
} Numerator6;

lookup Numerator7 {
    sub @figures'
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
    fraction by @numerators;
} Numerator7;

lookup Numerator8 {
    sub @figures'
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
    fraction by @numerators;
} Numerator8;

lookup Numerator9 {
    sub @figures'
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
    fraction by @numerators;
} Numerator9;

lookup Numerator10 {
    sub @figures'
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
        [@numerators @numerators2]
    fraction by @numerators;
} Numerator10;

lookup Denominator {
    sub [fraction @denominators @denominators2 onefraction] @figures' by @denominators;
    sub [fraction @denominators @denominators2 onefraction] @subscripts' by @denominators;
} Denominator;

sub @figures space' [@numerators @numerators2] by thinspace;
} frac;

feature numr {
# automatic
sub i by i.numr;
sub n by n.numr;
sub zero by zero.numr;
sub one by one.numr;
sub two by two.numr;
sub three by three.numr;
sub four by four.numr;
sub five by five.numr;
sub six by six.numr;
sub seven by seven.numr;
sub eight by eight.numr;
sub nine by nine.numr;
sub plus by plus.numr;
sub minus by minus.numr;
sub equal by equal.numr;
sub parenleft by parenleft.numr;
sub parenright by parenright.numr;

} numr;

feature dnom {
# automatic
sub zero by zero.dnom;
sub one by one.dnom;
sub two by two.dnom;
sub three by three.dnom;
sub four by four.dnom;
sub five by five.dnom;
sub six by six.dnom;
sub seven by seven.dnom;
sub eight by eight.dnom;
sub nine by nine.dnom;
sub plus by plus.dnom;
sub minus by minus.dnom;
sub equal by equal.dnom;
sub parenleft by parenleft.dnom;
sub parenright by parenright.dnom;

} dnom;

feature case {
# automatic
sub parenleft by parenleft.case;
sub parenright by parenright.case;
sub bracketleft by bracketleft.case;
sub bracketright by bracketright.case;
sub braceleft by braceleft.case;
sub braceright by braceright.case;
sub at by at.case;
sub hyphen by hyphen.case;
sub endash by endash.case;
sub figuredash by figuredash.case;
sub emdash by emdash.case;
sub bullet by bullet.case;
sub openbullet by openbullet.case;
sub colon by colon.case;
sub less by less.case;
sub greater by greater.case;
sub lessequal by lessequal.case;
sub greaterequal by greaterequal.case;
sub equal by equal.case;
sub notequal by notequal.case;
sub plus by plus.case;
sub minus by minus.case;
sub multiply by multiply.case;
sub divide by divide.case;
sub plusminus by plusminus.case;
sub approxequal by approxequal.case;
sub asciitilde by asciitilde.case;
sub asterisk by asterisk.case;
sub leftArrow by leftArrow.case;
sub leftLongArrow by leftLongArrow.case;
sub rightArrow by rightArrow.case;
sub rightLongArrow by rightLongArrow.case;
sub leftRightArrow by leftRightArrow.case;
sub leftRightLongArrow by leftRightLongArrow.case;

} case;

feature calt {
@CASE_DELIM_L = [
  braceleft   braceright
  bracketleft bracketright
  parenleft   parenright
];
@CASE_NONDELIM_L = [
  asterisk
  at
  multiply
  minus
  plus
  plusminus
  divide
  equal
  notequal
  endash
  figuredash
  emdash
  hyphen
  bullet
  openbullet
  leftArrow
  leftLongArrow
  rightArrow
  rightLongArrow
  leftRightArrow
  leftRightLongArrow
  colon
  approxequal
  asciitilde
  less
  greater
  lessequal
  greaterequal
];
@CASE_L = [
  @CASE_DELIM_L
  @CASE_NONDELIM_L
];

@CASE_DELIM_R = [
  braceleft.case   braceright.case
  bracketleft.case bracketright.case
  parenleft.case   parenright.case
];
@CASE_NONDELIM_R = [
  asterisk.case
  at.case
  multiply.case
  minus.case
  plus.case
  plusminus.case
  divide.case
  equal.case
  notequal.case
  endash.case
  figuredash.case
  emdash.case
  hyphen.case
  bullet.case
  openbullet.case
  leftArrow.case
  leftLongArrow.case
  rightArrow.case
  rightLongArrow.case
  leftRightArrow.case
  leftRightLongArrow.case
  colon.case
  approxequal.case
  asciitilde.case
  less.case
  greater.case
  lessequal.case
  greaterequal.case
];
@CASE_R = [
  @CASE_DELIM_R
  @CASE_NONDELIM_R
];

@UC = [ @UC_ROMAN @UC_SET1 exclam question ];
@LC = [ @LC_ROMAN @LC_SET1 ];

# ---------------------------------------------------

# ignore <-NUM e.g. "<-3"
ignore sub less [ hyphen hyphen.case endash endash.case emdash emdash.case ] @NUM;

# arrows: <->
sub less hyphen greater by leftRightArrow;
sub less hyphen.case greater by leftRightArrow.case;
sub less [endash emdash] greater by leftRightLongArrow;
sub less [endash.case emdash.case] greater by leftRightLongArrow.case;
sub less hyphen hyphen greater by leftRightLongArrow;
sub less hyphen.case hyphen.case greater by leftRightLongArrow.case;

# arrows: ->
sub hyphen greater by rightArrow;
sub hyphen.case greater by rightArrow.case;
sub [endash emdash] greater by rightLongArrow;
sub [endash.case emdash.case] greater by rightLongArrow.case;
# arrows: <-
sub less hyphen by leftArrow;
sub less hyphen.case by leftArrow.case;
sub less [endash emdash] by leftLongArrow;
sub less [endash.case emdash.case] by leftLongArrow.case;

# :-)
sub colon' [hyphen hyphen.case endash endash.case emdash emdash.case] [parenright parenright.case] by colon.case;
sub [colon colon.case] hyphen' [parenright parenright.case] by hyphen.case;
sub [colon colon.case] endash' [parenright parenright.case] by endash.case;
sub [colon colon.case] emdash' [parenright parenright.case] by emdash.case;
sub [colon colon.case] [hyphen hyphen.case endash endash.case emdash emdash.case] parenright' by parenright.case;

# A foo' -> A foo.case
sub [ @UC @CASE_R ] @CASE_L' by @CASE_R;
ignore sub @LC @CASE_NONDELIM_L @UC; # e.g. m multiply M

# foo' foo foo foo foo A -> foo.case foo foo foo foo A
# foo' foo foo foo A -> foo.case foo foo foo A
# foo' foo foo A -> foo.case foo foo A
# foo' foo A -> foo.case foo A
# foo' A -> foo.case A
# Note: since we look quite far back, sequences like x{}[]M will case both
# the square brackets next to M _and_ the curly braces to become .case
sub @CASE_L' @CASE_L @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
sub @CASE_L' @CASE_L @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
sub @CASE_L' @CASE_L @CASE_L [ @CASE_R @UC ] by @CASE_R;
sub @CASE_L' @CASE_L [ @CASE_R @UC ] by @CASE_R;
sub @CASE_L' [ @UC @CASE_R ] by @CASE_R;

} calt;

feature tnum {
# automatic
sub zero by zero.tf;
sub one by one.tf;
sub two by two.tf;
sub three by three.tf;
sub four by four.tf;
sub five by five.tf;
sub six by six.tf;
sub seven by seven.tf;
sub eight by eight.tf;
sub nine by nine.tf;
sub three.1 by three.1.tf;
sub comma by comma.tf;
sub period by period.tf;
sub colon by colon.tf;
sub semicolon by semicolon.tf;

} tnum;

feature pnum {
# automatic
sub zero.tf by zero;
sub one.tf by one;
sub two.tf by two;
sub three.tf by three;
sub four.tf by four;
sub five.tf by five;
sub six.tf by six;
sub seven.tf by seven;
sub eight.tf by eight;
sub nine.tf by nine;
sub three.1.tf by three.1;
sub comma.tf by comma;
sub period.tf by period;
sub colon.tf by colon;
sub semicolon.tf by semicolon;

} pnum;

feature zero {
sub zero by zero.slash;
sub zero.tf by zero.tf.slash;

} zero;

feature cpsp {
# notes:
# The first two numbers (16 and 0) are the x and y amounts by which a glyph is moved. The second pair of numbers (32 and 0) is the advance, meaning that the cursor will be placed 32 units further in this case. Effectively, this adds 16 units on each side (or 32 between all uppercase letters)
pos @Uppercase <16 0 32 0>;

} cpsp;

feature dlig {
sub exclam question by interrobang;
sub question exclam by interrobang;
sub exclamdown questiondown by invertedinterrobang;
sub questiondown exclamdown by invertedinterrobang;

} dlig;

feature sups {
sub a by a.sups;
sub b by b.sups;
sub c by c.sups;
sub d by d.sups;
sub e by e.sups;
sub f by f.sups;
sub g by g.sups;
sub h by h.sups;
sub i by i.sups;
sub j by j.sups;
sub k by k.sups;
sub l by l.sups;
sub m by m.sups;
sub n by n.sups;
sub o by o.sups;
sub p by p.sups;
sub q by q.sups;
sub r by r.sups;
sub s by s.sups;
sub t by t.sups;
sub u by u.sups;
sub v by v.sups;
sub w by w.sups;
sub x by x.sups;
sub y by y.sups;
sub z by z.sups;
sub [zero zero.slash] by zero.sups;
sub [one one.ss01] by one.sups;
sub two by two.sups;
sub three by three.sups;
sub [four four.ss01] by four.sups;
sub five by five.sups;
sub [six six.ss01] by six.sups;
sub seven by seven.sups;
sub eight by eight.sups;
sub [nine nine.ss01] by nine.sups;
sub [parenleft parenleft.case] by parenleft.sups;
sub [parenright parenright.case] by parenright.sups;
sub [plus plus.case] by plus.sups;
sub [minus minus.case hyphen hyphen.case] by minus.sups;
sub [equal equal.case] by equal.sups;
} sups;

feature subs {
sub a by a.subs;
sub b by b.subs;
sub c by c.subs;
sub d by d.subs;
sub e by e.subs;
sub f by f.subs;
sub g by g.subs;
sub h by h.subs;
sub i by i.subs;
sub j by j.subs;
sub k by k.subs;
sub l by l.subs;
sub m by m.subs;
sub n by n.subs;
sub o by o.subs;
sub p by p.subs;
sub q by q.subs;
sub r by r.subs;
sub s by s.subs;
sub t by t.subs;
sub u by u.subs;
sub v by v.subs;
sub w by w.subs;
sub x by x.subs;
sub y by y.subs;
sub z by z.subs;
sub [zero zero.slash] by zero.subs;
sub [one one.ss01] by one.subs;
sub two by two.subs;
sub three by three.subs;
sub [four four.ss01] by four.subs;
sub five by five.subs;
sub [six six.ss01] by six.subs;
sub seven by seven.subs;
sub eight by eight.subs;
sub [nine nine.ss01] by nine.subs;
sub [parenleft parenleft.case] by parenleft.subs;
sub [parenright parenright.case] by parenright.subs;
sub [plus plus.case] by plus.subs;
sub [minus minus.case hyphen hyphen.case] by minus.subs;
sub [equal equal.case] by equal.subs;
} subs;

feature ordn {
# automatic
sub [zero one two three four five six seven eight nine] [A a]' by ordfeminine;
sub [zero one two three four five six seven eight nine] [O o]' by ordmasculine;
sub N o period by numero;

} ordn;

feature salt {
sub one by one.ss01;
sub one.tf by one.tf.ss01;
sub three by three.1;
sub three.tf by three.1.tf;
sub four by four.ss01;
sub four.tf by four.tf.ss01;
sub six by six.ss01;
sub six.tf by six.tf.ss01;
sub nine by nine.ss01;
sub nine.tf by nine.tf.ss01;

sub l by l.ss02;
sub lslash by lslash.ss02;
sub lbar by lbar.ss02;
sub lmidtilde by lmidtilde.ss02;
sub lbelt by lbelt.ss02;
sub ldot by ldot.ss02;
sub lacute by lacute.ss02;
sub lcommaaccent by lcommaaccent.ss02;
sub lcaron by lcaron.ss02;
sub ldotbelow by ldotbelow.ss02;
sub ldotbelowmacron by ldotbelowmacron.ss02;
sub llinebelow by llinebelow.ss02;
sub lcircumflexbelow by lcircumflexbelow.ss02;

sub r by r.1;
sub rrthook by rrthook.1;
sub uni024D by uni024D.1;
sub rdescend by rdescend.1;
sub racute by racute.1;
sub rcommaaccent by rcommaaccent.1;
sub rcaron by rcaron.1;
sub rdblgrave by rdblgrave.1;
sub rinvertedbreve by rinvertedbreve.1;
sub rdotaccent by rdotaccent.1;
sub rdotbelow by rdotbelow.1;
sub rdotbelowmacron by rdotbelowmacron.1;
sub rlinebelow by rlinebelow.1;
} salt;

feature ss01 {
# notes:
# Name: Alternate digits
sub one by one.ss01;
sub one.tf by one.tf.ss01;
sub three by three.1;
sub three.tf by three.1.tf;
sub four by four.ss01;
sub four.tf by four.tf.ss01;
sub six by six.ss01;
sub six.tf by six.tf.ss01;
sub nine by nine.ss01;
sub nine.tf by nine.tf.ss01;

} ss01;

feature ss02 {
# notes:
# Name: Disambiguation
sub l by l.ss02;
sub lslash by lslash.ss02;
sub lbar by lbar.ss02;
sub lmidtilde by lmidtilde.ss02;
sub lbelt by lbelt.ss02;
sub ldot by ldot.ss02;
sub lacute by lacute.ss02;
sub lcommaaccent by lcommaaccent.ss02;
sub lcaron by lcaron.ss02;
sub ldotbelow by ldotbelow.ss02;
sub ldotbelowmacron by ldotbelowmacron.ss02;
sub llinebelow by llinebelow.ss02;
sub lcircumflexbelow by lcircumflexbelow.ss02;
sub zero by zero.slash;
sub zero.tf by zero.tf.slash;
sub germandbls by germandbls.1;
sub I by I.1;
sub Idieresis by Idieresis.1;
sub Idieresisacute by Idieresisacute.1;
sub Istroke by Istroke.1;
sub Itildebelow by Itildebelow.1;
sub Igrave by Igrave.1;
sub Iacute by Iacute.1;
sub Icircumflex by Icircumflex.1;
sub Itilde by Itilde.1;
sub Imacron by Imacron.1;
sub Ibreve by Ibreve.1;
sub Iogonek by Iogonek.1;
sub Idotaccent by Idotaccent.1;
sub Icaron by Icaron.1;
sub Idblgrave by Idblgrave.1;
sub Iinvertedbreve by Iinvertedbreve.1;
sub Ihookabove by Ihookabove.1;
sub Idotbelow by Idotbelow.1;
sub uni1F38 by uni1F38.1;
sub uni1F39 by uni1F39.1;
sub uni1F3A by uni1F3A.1;
sub uni1F3B by uni1F3B.1;
sub uni1F3C by uni1F3C.1;
sub uni1F3D by uni1F3D.1;
sub uni1F3E by uni1F3E.1;
sub uni1F3F by uni1F3F.1;
sub uni1FD8 by uni1FD8.1;
sub uni1FD9 by uni1FD9.1;
sub uni1FDA by uni1FDA.1;
sub uni1FDB by uni1FDB.1;
sub afii10055 by afii10055.1;
sub afii10056 by afii10056.1;
} ss02;

feature cv01 {
# notes:
# Name: Alternate one
sub one by one.ss01;
sub one.tf by one.tf.ss01;

} cv01;

feature cv02 {
# notes:
# Name: Open four
sub four by four.ss01;
sub four.tf by four.tf.ss01;

} cv02;

feature cv03 {
# notes:
# Name: Open six
sub six by six.ss01;
sub six.tf by six.tf.ss01;

} cv03;

feature cv04 {
# notes:
# Name: Open nine
sub nine by nine.ss01;
sub nine.tf by nine.tf.ss01;
} cv04;

feature cv05 {
# notes:
# Name: Lower case L with tail
sub l by l.ss02;
sub lslash by lslash.ss02;
sub lbar by lbar.ss02;
sub lmidtilde by lmidtilde.ss02;
sub lbelt by lbelt.ss02;
sub ldot by ldot.ss02;
sub lacute by lacute.ss02;
sub lcommaaccent by lcommaaccent.ss02;
sub lcaron by lcaron.ss02;
sub ldotbelow by ldotbelow.ss02;
sub ldotbelowmacron by ldotbelowmacron.ss02;
sub llinebelow by llinebelow.ss02;
sub lcircumflexbelow by lcircumflexbelow.ss02;
} cv05;

feature cv06 {
# notes:
# Name: Lower case R with straight tail
sub r by r.1;
sub rrthook by rrthook.1;
sub uni024D by uni024D.1;
sub rdescend by rdescend.1;
sub racute by racute.1;
sub rcommaaccent by rcommaaccent.1;
sub rcaron by rcaron.1;
sub rdblgrave by rdblgrave.1;
sub rinvertedbreve by rinvertedbreve.1;
sub rdotaccent by rdotaccent.1;
sub rdotbelow by rdotbelow.1;
sub rdotbelowmacron by rdotbelowmacron.1;
sub rlinebelow by rlinebelow.1;
} cv06;

feature cv07 {
# notes:
# Name: Alternate German double s
sub germandbls by germandbls.1;

} cv07;

feature cv08 {
# notes:
# Name: Upper case i with serif
sub I by I.1;
sub Idieresis by Idieresis.1;
sub Idieresisacute by Idieresisacute.1;
sub Istroke by Istroke.1;
sub Itildebelow by Itildebelow.1;
sub Igrave by Igrave.1;
sub Iacute by Iacute.1;
sub Icircumflex by Icircumflex.1;
sub Itilde by Itilde.1;
sub Imacron by Imacron.1;
sub Ibreve by Ibreve.1;
sub Iogonek by Iogonek.1;
sub Idotaccent by Idotaccent.1;
sub Icaron by Icaron.1;
sub Idblgrave by Idblgrave.1;
sub Iinvertedbreve by Iinvertedbreve.1;
sub Ihookabove by Ihookabove.1;
sub Idotbelow by Idotbelow.1;
sub uni1F38 by uni1F38.1;
sub uni1F39 by uni1F39.1;
sub uni1F3A by uni1F3A.1;
sub uni1F3B by uni1F3B.1;
sub uni1F3C by uni1F3C.1;
sub uni1F3D by uni1F3D.1;
sub uni1F3E by uni1F3E.1;
sub uni1F3F by uni1F3F.1;
sub uni1FD8 by uni1FD8.1;
sub uni1FD9 by uni1FD9.1;
sub uni1FDA by uni1FDA.1;
sub uni1FDB by uni1FDB.1;
sub afii10055 by afii10055.1;
sub afii10056 by afii10056.1;
} cv08;

feature cv09 {
# notes:
# Name: Flat top three
sub three by three.1;
sub three.tf by three.1.tf;

} cv09;

table GDEF {
  # automatic
  GlyphClassDef
    [A AE B C D E F G H I I.1 J K L M N afii10026 O P R S T U V W X Y Z a ae b c d e eturn _part.f_base f g h idotless uni012F.ccmp jdotless jcrosstail.ccmp k l l.ss02 m n o p r r.1 s _part.t_base u v w x y z Gamma Pi Omega Upsilonhooksymbol afii10024 afii10025 Kacyr afii10029 afii10037 afii10041 afii10045 afii10046 afii10047 Cheabkhasiancyrillic Schwacyrillic afii10148 alpha gamma epsilon eta iota rho upsilon omega gecyrillic zhecyrillic zecyrillic iicyrillic kacyrillic elcyrillic emcyrillic encyrillic pecyrillic tecyrillic checyrillic softsigncyrillic yericyrillic ereversedcyrillic dzeabkhasiancyrillic izhitsacyrillic two two.sups two.dnomf fraction acute hungarumlaut grave dieresis tilde breve acutedotcomb.lc tildedieresiscomb.lc carondotcomb.lc commaturnsupnosp glottalstoprevinv dieresisgravecomb.lc tildemacroncomb.lc macrondieresiscomb.lc dieresiscaroncomb.lc ascript Ezh esh], # Base
    , # Liga
    [commaaccent acutecomb gravecomb dblgravecmb macroncomb caroncmb tildecomb uni0346 uni1DD8 uni1DD9 uni1DD2 uni1DD3 uni1DD0 uni1DD1 uni1DD4 uni1DD5 uni1DDB uni1DDC uni1DDF uni1DDD uni1DDE uni2DFF uni036A uni036B uni036C uni036D uni036E uni036F tildedoublecmb breveinverteddoublecmb uni0362 uni0363 uni0364 uni0365 uni0366 uni0367 uni0368 uni0369 uni0359 uni0358 uni0355 uni0354 uni0357 uni0356 uni0351 uni0350 uni0353 uni0352 uni035E uni035F uni035C uni035B uniA69F uni1DD6 uni1DD7 uni034B uni034C uni034A uni034F uni034D uni034E uni0348 uni0349 perispomenigreekcmb koroniscmb uni0347 uni1DC6 uni1DC4 macrongravecomb.lc macronacutecomb.lc uni1DCF uni1DCE uni1DCD uni1DCC uni1DCB uni1DCA uni1DC9 uni1DC8 uni1DC7 uni1DC5 uni1DC3 uni1DC2 uni1DC1 uni1DC0 uni1DE9 uni035D uni035A uni1DE2 uni20DC uni20DB uni20E8 uni1DDA titlocyrilliccmb dasiapneumatacyrilliccmb palatalizationcyrilliccmb uni0487 psilipneumatacyrilliccmb uni20F0 uni1DF0 uni1DF1 uni1DF2 uni1DF3 uni1DF4 uni1DF5 caronbelowcmb uni1DFC uni1DFD uni1DFE uni1DFF uniFE29 uniFE22 uniFE23 uniFE24 uniFE25 uniFE26 uniFE2A uniFE2B uniFE2C uniFE2D commaabovecmb commaaboverightcmb uni1DE8 uni1DEA uni1DEB uni1DEC uni1DED uni1DEE uni1DEF macronacutecomb.cn macrongravecomb.cn uni1DE0 uni1DE1 uni1DE3 uni1DE4 uni1DE5 uni1DE6 uni1DE7], # Mark
    ;
} GDEF;