xref: /aosp_15_r20/external/fonttools/Tests/voltLib/data/NamdhinggoSIL1006.fea (revision e1fe3e4ad2793916b15cccdc4a7da52a7e1dd0e9)
1*e1fe3e4aSElliott Hughes# Glyph classes
2*e1fe3e4aSElliott Hughes@Cons = [uni1901 uni1902 uni1903 uni1904 uni1905 uni1906 uni1907 uni1908 uni1909 uni190A uni190B uni190C uni190D uni190E uni190F uni1910 uni1911 uni1912 uni1913 uni1914 uni1915 uni1916 uni1917 uni1918 uni1919 uni191A uni191B uni191C uni1940];
3*e1fe3e4aSElliott Hughes@ConsRaU = [uni1901192A1922 uni1902192A1922 uni1903192A1922 uni1904192A1922 uni1905192A1922 uni1906192A1922 uni1907192A1922 uni1908192A1922 uni1909192A1922 uni190A192A1922 uni190B192A1922 uni190C192A1922 uni190D192A1922 uni190192AE1922 uni190F192A1922 uni1910192A1922 uni1911192A1922 uni1912192A1922 uni1913192A1922 uni1914192A1922 uni1915192A1922 uni1916192A1922 uni1917192A1922 uni1918192A1922 uni1919192A1922 uni1919192A1922 uni191A192A1922 uni191B192A1922 uni191C192A1922 uni1940192A1922];
4*e1fe3e4aSElliott Hughes@ConsU = [uni19011922 uni19021922 uni19031922 uni19041922 uni19051922 uni19061922 uni19071922 uni19081922 uni19091922 uni190A1922 uni190B1922 uni190C1922 uni190D1922 uni190E1922 uni190F1922 uni19101922 uni19111922 uni19121922 uni19131922 uni19141922 uni19151922 uni19161922 uni19171922 uni19181922 uni19191922 uni191A1922 uni191B1922 uni191C1922 uni19401922];
5*e1fe3e4aSElliott Hughes@Ikar = [uni1921 uni1921193A];
6*e1fe3e4aSElliott Hughes@Vowels = [uni1920 uni1927 uni1928];
7*e1fe3e4aSElliott Hughes@YaWa = [uni1929 uni192B];
8*e1fe3e4aSElliott Hughes@AllCons = [@Cons @ConsU @ConsRaU];
9*e1fe3e4aSElliott Hughes@VowelsKem = [@Vowels uni193A];
10*e1fe3e4aSElliott Hughes
11*e1fe3e4aSElliott Hughes# Mark classes
12*e1fe3e4aSElliott HughesmarkClass uni1920 <anchor -500 1050> @Aabove;
13*e1fe3e4aSElliott HughesmarkClass uni1922 <anchor -150 -15> @U;
14*e1fe3e4aSElliott HughesmarkClass uni1927 <anchor -300 1050> @eo;
15*e1fe3e4aSElliott HughesmarkClass uni1928 <anchor -190 1050> @eo;
16*e1fe3e4aSElliott HughesmarkClass uni193A <anchor -260 1250> @K;
17*e1fe3e4aSElliott HughesmarkClass uni193A <anchor -260 1250> @VK;
18*e1fe3e4aSElliott Hughes
19*e1fe3e4aSElliott Hughes# Lookups
20*e1fe3e4aSElliott Hugheslookup EEAIDecomp {
21*e1fe3e4aSElliott Hughes    sub uni1925 by uni1920 uni1923;
22*e1fe3e4aSElliott Hughes    sub uni1926 by uni1920 uni1924;
23*e1fe3e4aSElliott Hughes} EEAIDecomp;
24*e1fe3e4aSElliott Hughes
25*e1fe3e4aSElliott Hugheslookup OoAuKComp {
26*e1fe3e4aSElliott Hughes    sub uni1923 uni193A by uni1923193A;
27*e1fe3e4aSElliott Hughes    sub uni1924 uni193A by uni1924193A;
28*e1fe3e4aSElliott Hughes} OoAuKComp;
29*e1fe3e4aSElliott Hughes
30*e1fe3e4aSElliott Hugheslookup OoAuKDecomp {
31*e1fe3e4aSElliott Hughes    # The OoAuDecomp substitution rule replaces the OO and AU vowels with their visually constitutent components A plus EE or AI respectively. This is so that the 'A' portion can be positioned independently over the consonant when a Glide occurs between the consonant and the vowel.
32*e1fe3e4aSElliott Hughes    sub uni1923193A by uni193A uni1923;
33*e1fe3e4aSElliott Hughes    sub uni1924193A by uni193A uni1924;
34*e1fe3e4aSElliott Hughes} OoAuKDecomp;
35*e1fe3e4aSElliott Hughes
36*e1fe3e4aSElliott Hugheslookup GlideVowelComp {
37*e1fe3e4aSElliott Hughes    sub uni1929 uni1920 uni193A by uni19291920193A;
38*e1fe3e4aSElliott Hughes    sub uni1929 uni1922 uni193A by uni19291922193A;
39*e1fe3e4aSElliott Hughes    sub uni1929 uni1927 uni193A by uni19291927193A;
40*e1fe3e4aSElliott Hughes    sub uni1929 uni1928 uni193A by uni19291928193A;
41*e1fe3e4aSElliott Hughes    sub uni1929 uni193A by uni1929193A;
42*e1fe3e4aSElliott Hughes    sub uni1929 uni1920 by uni19291920;
43*e1fe3e4aSElliott Hughes    sub uni1929 uni1922 by uni19291922;
44*e1fe3e4aSElliott Hughes    sub uni1929 uni1927 by uni19291927;
45*e1fe3e4aSElliott Hughes    sub uni1929 uni1928 by uni19291928;
46*e1fe3e4aSElliott Hughes    sub uni192B uni1920 uni193A by uni192B1920193A;
47*e1fe3e4aSElliott Hughes    sub uni192B uni1922 uni193A by uni192B1922193A;
48*e1fe3e4aSElliott Hughes    sub uni192B uni1927 uni193A by uni192B1927193A;
49*e1fe3e4aSElliott Hughes    sub uni192B uni1928 uni193A by uni192B1928193A;
50*e1fe3e4aSElliott Hughes    sub uni192B uni193A by uni192B193A;
51*e1fe3e4aSElliott Hughes    sub uni192B uni1920 by uni192B1920;
52*e1fe3e4aSElliott Hughes    sub uni192B uni1922 by uni192B1922;
53*e1fe3e4aSElliott Hughes    sub uni192B uni1927 by uni192B1927;
54*e1fe3e4aSElliott Hughes    sub uni192B uni1928 by uni192B1928;
55*e1fe3e4aSElliott Hughes} GlideVowelComp;
56*e1fe3e4aSElliott Hughes
57*e1fe3e4aSElliott Hugheslookup GlideVowelDecomp {
58*e1fe3e4aSElliott Hughes    sub uni19291920193A by uni1920 uni193A uni1929;
59*e1fe3e4aSElliott Hughes    sub uni19291922193A by uni1922 uni193A uni1929;
60*e1fe3e4aSElliott Hughes    sub uni19291927193A by uni1927 uni193A uni1929;
61*e1fe3e4aSElliott Hughes    sub uni19291928193A by uni1928 uni193A uni1929;
62*e1fe3e4aSElliott Hughes    sub uni1929193A by uni193A uni1929;
63*e1fe3e4aSElliott Hughes    sub uni19291920 by uni1920 uni1929;
64*e1fe3e4aSElliott Hughes    sub uni19291922 by uni1922 uni1929;
65*e1fe3e4aSElliott Hughes    sub uni19291927 by uni1927 uni1929;
66*e1fe3e4aSElliott Hughes    sub uni19291928 by uni1928 uni1929;
67*e1fe3e4aSElliott Hughes    sub uni192B1920193A by uni1920 uni193A uni192B;
68*e1fe3e4aSElliott Hughes    sub uni192B1922193A by uni1922 uni193A uni192B;
69*e1fe3e4aSElliott Hughes    sub uni192B1927193A by uni1927 uni193A uni192B;
70*e1fe3e4aSElliott Hughes    sub uni192B1928193A by uni1928 uni193A uni192B;
71*e1fe3e4aSElliott Hughes    sub uni192B193A by uni193A uni192B;
72*e1fe3e4aSElliott Hughes    sub uni192B1920 by uni1920 uni192B;
73*e1fe3e4aSElliott Hughes    sub uni192B1922 by uni1922 uni192B;
74*e1fe3e4aSElliott Hughes    sub uni192B1927 by uni1927 uni192B;
75*e1fe3e4aSElliott Hughes    sub uni192B1928 by uni1928 uni192B;
76*e1fe3e4aSElliott Hughes} GlideVowelDecomp;
77*e1fe3e4aSElliott Hughes
78*e1fe3e4aSElliott Hugheslookup RaUkar {
79*e1fe3e4aSElliott Hughes    # The RaUkar substitution rule replaces Consonant, Ra, Ukar with a ligature.
80*e1fe3e4aSElliott Hughes    sub @Cons uni192A uni1922 by @ConsRaU;
81*e1fe3e4aSElliott Hughes} RaUkar;
82*e1fe3e4aSElliott Hughes
83*e1fe3e4aSElliott Hugheslookup Ukar {
84*e1fe3e4aSElliott Hughes    # The Ukar substitution rule replaces Consonant + Ukar with a ligature. It also applies to the Vowel-Carrier, which has its own ligature with ukar.
85*e1fe3e4aSElliott Hughes    sub @Cons uni1922 by @ConsU;
86*e1fe3e4aSElliott Hughes    sub uni1900 uni1922 by uni19001922;
87*e1fe3e4aSElliott Hughes} Ukar;
88*e1fe3e4aSElliott Hughes
89*e1fe3e4aSElliott Hugheslookup IkarK {
90*e1fe3e4aSElliott Hughes    # The IkarK substitution rule replaces Ikar + Kemphreng with a ligature. The ligature is then positioned properly on the base consonant via the positioning rule IEO.
91*e1fe3e4aSElliott Hughes    sub uni1921 uni193A by uni1921193A;
92*e1fe3e4aSElliott Hughes} IkarK;
93*e1fe3e4aSElliott Hughes
94*e1fe3e4aSElliott Hugheslookup GlideIkar_target {
95*e1fe3e4aSElliott Hughes    pos @YaWa -475;
96*e1fe3e4aSElliott Hughes} GlideIkar_target;
97*e1fe3e4aSElliott Hughes
98*e1fe3e4aSElliott Hugheslookup GlideIkar {
99*e1fe3e4aSElliott Hughes    pos [@YaWa]' lookup GlideIkar_target @Ikar;
100*e1fe3e4aSElliott Hughes} GlideIkar;
101*e1fe3e4aSElliott Hughes
102*e1fe3e4aSElliott Hugheslookup IkarKWid_target {
103*e1fe3e4aSElliott Hughes    pos uni1921193A 110;
104*e1fe3e4aSElliott Hughes} IkarKWid_target;
105*e1fe3e4aSElliott Hughes
106*e1fe3e4aSElliott Hugheslookup IkarKWid {
107*e1fe3e4aSElliott Hughes    # The IkarKWid lookup, applied to the Kern feature, adds 110 units of width to the IkarKemphreng ligature when followed by a consonant with akar on it. This prevents the akar from overprinting the rightmost dot of the kemphreng. (The dot overhangs to the right slightly, which is OK unless the following character has akar on it).
108*e1fe3e4aSElliott Hughes    pos [uni1921193A]' lookup IkarKWid_target @Cons uni1920;
109*e1fe3e4aSElliott Hughes} IkarKWid;
110*e1fe3e4aSElliott Hughes
111*e1fe3e4aSElliott Hugheslookup Akar {
112*e1fe3e4aSElliott Hughes    # The Akar positioning rule positions the Akar on all consonants.
113*e1fe3e4aSElliott Hughes    pos base uni1901
114*e1fe3e4aSElliott Hughes        <anchor 487 1050> mark @Aabove;
115*e1fe3e4aSElliott Hughes    pos base uni1902
116*e1fe3e4aSElliott Hughes        <anchor 622 1050> mark @Aabove;
117*e1fe3e4aSElliott Hughes    pos base uni1903
118*e1fe3e4aSElliott Hughes        <anchor 475 1050> mark @Aabove;
119*e1fe3e4aSElliott Hughes    pos base uni1904
120*e1fe3e4aSElliott Hughes        <anchor 460 1050> mark @Aabove;
121*e1fe3e4aSElliott Hughes    pos base uni1905
122*e1fe3e4aSElliott Hughes        <anchor 590 1050> mark @Aabove;
123*e1fe3e4aSElliott Hughes    pos base uni1906
124*e1fe3e4aSElliott Hughes        <anchor 519 1050> mark @Aabove;
125*e1fe3e4aSElliott Hughes    pos base uni1907
126*e1fe3e4aSElliott Hughes        <anchor 570 1050> mark @Aabove;
127*e1fe3e4aSElliott Hughes    pos base uni1908
128*e1fe3e4aSElliott Hughes        <anchor 564 1050> mark @Aabove;
129*e1fe3e4aSElliott Hughes    pos base uni1909
130*e1fe3e4aSElliott Hughes        <anchor 430 1050> mark @Aabove;
131*e1fe3e4aSElliott Hughes    pos base uni190A
132*e1fe3e4aSElliott Hughes        <anchor 575 1050> mark @Aabove;
133*e1fe3e4aSElliott Hughes    pos base uni190B
134*e1fe3e4aSElliott Hughes        <anchor 450 1050> mark @Aabove;
135*e1fe3e4aSElliott Hughes    pos base uni190C
136*e1fe3e4aSElliott Hughes        <anchor 556 1050> mark @Aabove;
137*e1fe3e4aSElliott Hughes    pos base uni190D
138*e1fe3e4aSElliott Hughes        <anchor 515 1050> mark @Aabove;
139*e1fe3e4aSElliott Hughes    pos base uni190E
140*e1fe3e4aSElliott Hughes        <anchor 510 1050> mark @Aabove;
141*e1fe3e4aSElliott Hughes    pos base uni190F
142*e1fe3e4aSElliott Hughes        <anchor 497 1050> mark @Aabove;
143*e1fe3e4aSElliott Hughes    pos base uni1910
144*e1fe3e4aSElliott Hughes        <anchor 657 1050> mark @Aabove;
145*e1fe3e4aSElliott Hughes    pos base uni1911
146*e1fe3e4aSElliott Hughes        <anchor 690 1050> mark @Aabove;
147*e1fe3e4aSElliott Hughes    pos base uni1912
148*e1fe3e4aSElliott Hughes        <anchor 538 1050> mark @Aabove;
149*e1fe3e4aSElliott Hughes    pos base uni1913
150*e1fe3e4aSElliott Hughes        <anchor 571 1050> mark @Aabove;
151*e1fe3e4aSElliott Hughes    pos base uni1914
152*e1fe3e4aSElliott Hughes        <anchor 538 1050> mark @Aabove;
153*e1fe3e4aSElliott Hughes    pos base uni1915
154*e1fe3e4aSElliott Hughes        <anchor 470 1050> mark @Aabove;
155*e1fe3e4aSElliott Hughes    pos base uni1916
156*e1fe3e4aSElliott Hughes        <anchor 503 1050> mark @Aabove;
157*e1fe3e4aSElliott Hughes    pos base uni1917
158*e1fe3e4aSElliott Hughes        <anchor 548 1050> mark @Aabove;
159*e1fe3e4aSElliott Hughes    pos base uni1918
160*e1fe3e4aSElliott Hughes        <anchor 511 1050> mark @Aabove;
161*e1fe3e4aSElliott Hughes    pos base uni1919
162*e1fe3e4aSElliott Hughes        <anchor 560 1050> mark @Aabove;
163*e1fe3e4aSElliott Hughes    pos base uni191A
164*e1fe3e4aSElliott Hughes        <anchor 420 1050> mark @Aabove;
165*e1fe3e4aSElliott Hughes    pos base uni191B
166*e1fe3e4aSElliott Hughes        <anchor 580 1050> mark @Aabove;
167*e1fe3e4aSElliott Hughes    pos base uni191C
168*e1fe3e4aSElliott Hughes        <anchor 540 1050> mark @Aabove;
169*e1fe3e4aSElliott Hughes    pos base uni1940
170*e1fe3e4aSElliott Hughes        <anchor 480 1050> mark @Aabove;
171*e1fe3e4aSElliott Hughes} Akar;
172*e1fe3e4aSElliott Hughes
173*e1fe3e4aSElliott Hugheslookup Kemphreng {
174*e1fe3e4aSElliott Hughes    # The Kemphreng positioning rule positions the Kemphreng on all consonants, including the vowel carrier.
175*e1fe3e4aSElliott Hughes    pos base uni1901
176*e1fe3e4aSElliott Hughes        <anchor 500 1050> mark @K;
177*e1fe3e4aSElliott Hughes    pos base uni1902
178*e1fe3e4aSElliott Hughes        <anchor 680 1050> mark @K;
179*e1fe3e4aSElliott Hughes    pos base uni1903
180*e1fe3e4aSElliott Hughes        <anchor 540 1050> mark @K;
181*e1fe3e4aSElliott Hughes    pos base uni1904
182*e1fe3e4aSElliott Hughes        <anchor 500 1050> mark @K;
183*e1fe3e4aSElliott Hughes    pos base uni1905
184*e1fe3e4aSElliott Hughes        <anchor 590 1050> mark @K;
185*e1fe3e4aSElliott Hughes    pos base uni1906
186*e1fe3e4aSElliott Hughes        <anchor 540 1050> mark @K;
187*e1fe3e4aSElliott Hughes    pos base uni1907
188*e1fe3e4aSElliott Hughes        <anchor 620 1050> mark @K;
189*e1fe3e4aSElliott Hughes    pos base uni1908
190*e1fe3e4aSElliott Hughes        <anchor 580 1050> mark @K;
191*e1fe3e4aSElliott Hughes    pos base uni1909
192*e1fe3e4aSElliott Hughes        <anchor 450 1050> mark @K;
193*e1fe3e4aSElliott Hughes    pos base uni190A
194*e1fe3e4aSElliott Hughes        <anchor 580 1050> mark @K;
195*e1fe3e4aSElliott Hughes    pos base uni190B
196*e1fe3e4aSElliott Hughes        <anchor 450 1050> mark @K;
197*e1fe3e4aSElliott Hughes    pos base uni190C
198*e1fe3e4aSElliott Hughes        <anchor 656 1050> mark @K;
199*e1fe3e4aSElliott Hughes    pos base uni190D
200*e1fe3e4aSElliott Hughes        <anchor 570 1050> mark @K;
201*e1fe3e4aSElliott Hughes    pos base uni190E
202*e1fe3e4aSElliott Hughes        <anchor 530 1050> mark @K;
203*e1fe3e4aSElliott Hughes    pos base uni190F
204*e1fe3e4aSElliott Hughes        <anchor 515 1050> mark @K;
205*e1fe3e4aSElliott Hughes    pos base uni1910
206*e1fe3e4aSElliott Hughes        <anchor 680 1050> mark @K;
207*e1fe3e4aSElliott Hughes    pos base uni1911
208*e1fe3e4aSElliott Hughes        <anchor 720 1050> mark @K;
209*e1fe3e4aSElliott Hughes    pos base uni1912
210*e1fe3e4aSElliott Hughes        <anchor 580 1050> mark @K;
211*e1fe3e4aSElliott Hughes    pos base uni1913
212*e1fe3e4aSElliott Hughes        <anchor 600 1050> mark @K;
213*e1fe3e4aSElliott Hughes    pos base uni1914
214*e1fe3e4aSElliott Hughes        <anchor 560 1050> mark @K;
215*e1fe3e4aSElliott Hughes    pos base uni1915
216*e1fe3e4aSElliott Hughes        <anchor 480 1050> mark @K;
217*e1fe3e4aSElliott Hughes    pos base uni1916
218*e1fe3e4aSElliott Hughes        <anchor 520 1050> mark @K;
219*e1fe3e4aSElliott Hughes    pos base uni1917
220*e1fe3e4aSElliott Hughes        <anchor 585 1050> mark @K;
221*e1fe3e4aSElliott Hughes    pos base uni1918
222*e1fe3e4aSElliott Hughes        <anchor 610 1050> mark @K;
223*e1fe3e4aSElliott Hughes    pos base uni1919
224*e1fe3e4aSElliott Hughes        <anchor 520 1050> mark @K;
225*e1fe3e4aSElliott Hughes    pos base uni191A
226*e1fe3e4aSElliott Hughes        <anchor 440 1050> mark @K;
227*e1fe3e4aSElliott Hughes    pos base uni191B
228*e1fe3e4aSElliott Hughes        <anchor 600 1050> mark @K;
229*e1fe3e4aSElliott Hughes    pos base uni191C
230*e1fe3e4aSElliott Hughes        <anchor 600 1050> mark @K;
231*e1fe3e4aSElliott Hughes    pos base uni1940
232*e1fe3e4aSElliott Hughes        <anchor 490 1050> mark @K;
233*e1fe3e4aSElliott Hughes    pos base uni19011922
234*e1fe3e4aSElliott Hughes        <anchor 500 1050> mark @K;
235*e1fe3e4aSElliott Hughes    pos base uni19021922
236*e1fe3e4aSElliott Hughes        <anchor 680 1050> mark @K;
237*e1fe3e4aSElliott Hughes    pos base uni19031922
238*e1fe3e4aSElliott Hughes        <anchor 540 1050> mark @K;
239*e1fe3e4aSElliott Hughes    pos base uni19041922
240*e1fe3e4aSElliott Hughes        <anchor 500 1050> mark @K;
241*e1fe3e4aSElliott Hughes    pos base uni19051922
242*e1fe3e4aSElliott Hughes        <anchor 590 1050> mark @K;
243*e1fe3e4aSElliott Hughes    pos base uni19061922
244*e1fe3e4aSElliott Hughes        <anchor 540 1050> mark @K;
245*e1fe3e4aSElliott Hughes    pos base uni19071922
246*e1fe3e4aSElliott Hughes        <anchor 620 1050> mark @K;
247*e1fe3e4aSElliott Hughes    pos base uni19081922
248*e1fe3e4aSElliott Hughes        <anchor 580 1050> mark @K;
249*e1fe3e4aSElliott Hughes    pos base uni19091922
250*e1fe3e4aSElliott Hughes        <anchor 450 1050> mark @K;
251*e1fe3e4aSElliott Hughes    pos base uni190A1922
252*e1fe3e4aSElliott Hughes        <anchor 580 1050> mark @K;
253*e1fe3e4aSElliott Hughes    pos base uni190B1922
254*e1fe3e4aSElliott Hughes        <anchor 450 1050> mark @K;
255*e1fe3e4aSElliott Hughes    pos base uni190C1922
256*e1fe3e4aSElliott Hughes        <anchor 656 1050> mark @K;
257*e1fe3e4aSElliott Hughes    pos base uni190D1922
258*e1fe3e4aSElliott Hughes        <anchor 570 1050> mark @K;
259*e1fe3e4aSElliott Hughes    pos base uni190E1922
260*e1fe3e4aSElliott Hughes        <anchor 530 1050> mark @K;
261*e1fe3e4aSElliott Hughes    pos base uni190F1922
262*e1fe3e4aSElliott Hughes        <anchor 515 1050> mark @K;
263*e1fe3e4aSElliott Hughes    pos base uni19101922
264*e1fe3e4aSElliott Hughes        <anchor 680 1050> mark @K;
265*e1fe3e4aSElliott Hughes    pos base uni19111922
266*e1fe3e4aSElliott Hughes        <anchor 720 1050> mark @K;
267*e1fe3e4aSElliott Hughes    pos base uni19121922
268*e1fe3e4aSElliott Hughes        <anchor 580 1050> mark @K;
269*e1fe3e4aSElliott Hughes    pos base uni19131922
270*e1fe3e4aSElliott Hughes        <anchor 600 1050> mark @K;
271*e1fe3e4aSElliott Hughes    pos base uni19141922
272*e1fe3e4aSElliott Hughes        <anchor 560 1050> mark @K;
273*e1fe3e4aSElliott Hughes    pos base uni19151922
274*e1fe3e4aSElliott Hughes        <anchor 480 1050> mark @K;
275*e1fe3e4aSElliott Hughes    pos base uni19161922
276*e1fe3e4aSElliott Hughes        <anchor 520 1050> mark @K;
277*e1fe3e4aSElliott Hughes    pos base uni19171922
278*e1fe3e4aSElliott Hughes        <anchor 585 1050> mark @K;
279*e1fe3e4aSElliott Hughes    pos base uni19181922
280*e1fe3e4aSElliott Hughes        <anchor 610 1050> mark @K;
281*e1fe3e4aSElliott Hughes    pos base uni19191922
282*e1fe3e4aSElliott Hughes        <anchor 520 1050> mark @K;
283*e1fe3e4aSElliott Hughes    pos base uni191A1922
284*e1fe3e4aSElliott Hughes        <anchor 440 1050> mark @K;
285*e1fe3e4aSElliott Hughes    pos base uni191B1922
286*e1fe3e4aSElliott Hughes        <anchor 600 1050> mark @K;
287*e1fe3e4aSElliott Hughes    pos base uni191C1922
288*e1fe3e4aSElliott Hughes        <anchor 600 1050> mark @K;
289*e1fe3e4aSElliott Hughes    pos base uni19401922
290*e1fe3e4aSElliott Hughes        <anchor 490 1050> mark @K;
291*e1fe3e4aSElliott Hughes    pos base uni1901192A1922
292*e1fe3e4aSElliott Hughes        <anchor 500 1050> mark @K;
293*e1fe3e4aSElliott Hughes    pos base uni1902192A1922
294*e1fe3e4aSElliott Hughes        <anchor 680 1050> mark @K;
295*e1fe3e4aSElliott Hughes    pos base uni1903192A1922
296*e1fe3e4aSElliott Hughes        <anchor 540 1050> mark @K;
297*e1fe3e4aSElliott Hughes    pos base uni1904192A1922
298*e1fe3e4aSElliott Hughes        <anchor 500 1050> mark @K;
299*e1fe3e4aSElliott Hughes    pos base uni1905192A1922
300*e1fe3e4aSElliott Hughes        <anchor 590 1050> mark @K;
301*e1fe3e4aSElliott Hughes    pos base uni1906192A1922
302*e1fe3e4aSElliott Hughes        <anchor 540 1050> mark @K;
303*e1fe3e4aSElliott Hughes    pos base uni1907192A1922
304*e1fe3e4aSElliott Hughes        <anchor 620 1050> mark @K;
305*e1fe3e4aSElliott Hughes    pos base uni1908192A1922
306*e1fe3e4aSElliott Hughes        <anchor 580 1050> mark @K;
307*e1fe3e4aSElliott Hughes    pos base uni1909192A1922
308*e1fe3e4aSElliott Hughes        <anchor 450 1050> mark @K;
309*e1fe3e4aSElliott Hughes    pos base uni190A192A1922
310*e1fe3e4aSElliott Hughes        <anchor 580 1050> mark @K;
311*e1fe3e4aSElliott Hughes    pos base uni190B192A1922
312*e1fe3e4aSElliott Hughes        <anchor 450 1050> mark @K;
313*e1fe3e4aSElliott Hughes    pos base uni190C192A1922
314*e1fe3e4aSElliott Hughes        <anchor 656 1050> mark @K;
315*e1fe3e4aSElliott Hughes    pos base uni190D192A1922
316*e1fe3e4aSElliott Hughes        <anchor 570 1050> mark @K;
317*e1fe3e4aSElliott Hughes    pos base uni190192AE1922
318*e1fe3e4aSElliott Hughes        <anchor 530 1050> mark @K;
319*e1fe3e4aSElliott Hughes    pos base uni190F192A1922
320*e1fe3e4aSElliott Hughes        <anchor 515 1050> mark @K;
321*e1fe3e4aSElliott Hughes    pos base uni1910192A1922
322*e1fe3e4aSElliott Hughes        <anchor 680 1050> mark @K;
323*e1fe3e4aSElliott Hughes    pos base uni1911192A1922
324*e1fe3e4aSElliott Hughes        <anchor 720 1050> mark @K;
325*e1fe3e4aSElliott Hughes    pos base uni1912192A1922
326*e1fe3e4aSElliott Hughes        <anchor 580 1050> mark @K;
327*e1fe3e4aSElliott Hughes    pos base uni1913192A1922
328*e1fe3e4aSElliott Hughes        <anchor 600 1050> mark @K;
329*e1fe3e4aSElliott Hughes    pos base uni1914192A1922
330*e1fe3e4aSElliott Hughes        <anchor 560 1050> mark @K;
331*e1fe3e4aSElliott Hughes    pos base uni1915192A1922
332*e1fe3e4aSElliott Hughes        <anchor 480 1050> mark @K;
333*e1fe3e4aSElliott Hughes    pos base uni1916192A1922
334*e1fe3e4aSElliott Hughes        <anchor 520 1050> mark @K;
335*e1fe3e4aSElliott Hughes    pos base uni1917192A1922
336*e1fe3e4aSElliott Hughes        <anchor 585 1050> mark @K;
337*e1fe3e4aSElliott Hughes    pos base uni1918192A1922
338*e1fe3e4aSElliott Hughes        <anchor 610 1050> mark @K;
339*e1fe3e4aSElliott Hughes    pos base uni1919192A1922
340*e1fe3e4aSElliott Hughes        <anchor 520 1050> mark @K;
341*e1fe3e4aSElliott Hughes    pos base uni191A192A1922
342*e1fe3e4aSElliott Hughes        <anchor 440 1050> mark @K;
343*e1fe3e4aSElliott Hughes    pos base uni191B192A1922
344*e1fe3e4aSElliott Hughes        <anchor 600 1050> mark @K;
345*e1fe3e4aSElliott Hughes    pos base uni191C192A1922
346*e1fe3e4aSElliott Hughes        <anchor 600 1050> mark @K;
347*e1fe3e4aSElliott Hughes    pos base uni1940192A1922
348*e1fe3e4aSElliott Hughes        <anchor 490 1050> mark @K;
349*e1fe3e4aSElliott Hughes    pos base uni1900
350*e1fe3e4aSElliott Hughes        <anchor 525 1050> mark @K;
351*e1fe3e4aSElliott Hughes} Kemphreng;
352*e1fe3e4aSElliott Hughes
353*e1fe3e4aSElliott Hugheslookup EO {
354*e1fe3e4aSElliott Hughes    # The IEO positioning rule positions ikar (including the ligature with kemphreng), e and o on all consonants plus the vowel carrier.
355*e1fe3e4aSElliott Hughes    pos base uni1901
356*e1fe3e4aSElliott Hughes        <anchor 755 1050> mark @eo;
357*e1fe3e4aSElliott Hughes    pos base uni1902
358*e1fe3e4aSElliott Hughes        <anchor 943 1050> mark @eo;
359*e1fe3e4aSElliott Hughes    pos base uni1903
360*e1fe3e4aSElliott Hughes        <anchor 790 1050> mark @eo;
361*e1fe3e4aSElliott Hughes    pos base uni1904
362*e1fe3e4aSElliott Hughes        <anchor 780 1050> mark @eo;
363*e1fe3e4aSElliott Hughes    pos base uni1905
364*e1fe3e4aSElliott Hughes        <anchor 790 1050> mark @eo;
365*e1fe3e4aSElliott Hughes    pos base uni1906
366*e1fe3e4aSElliott Hughes        <anchor 878 1050> mark @eo;
367*e1fe3e4aSElliott Hughes    pos base uni1907
368*e1fe3e4aSElliott Hughes        <anchor 825 1050> mark @eo;
369*e1fe3e4aSElliott Hughes    pos base uni1908
370*e1fe3e4aSElliott Hughes        <anchor 968 1050> mark @eo;
371*e1fe3e4aSElliott Hughes    pos base uni1909
372*e1fe3e4aSElliott Hughes        <anchor 660 1050> mark @eo;
373*e1fe3e4aSElliott Hughes    pos base uni190A
374*e1fe3e4aSElliott Hughes        <anchor 569 1050> mark @eo;
375*e1fe3e4aSElliott Hughes    pos base uni190B
376*e1fe3e4aSElliott Hughes        <anchor 690 1050> mark @eo;
377*e1fe3e4aSElliott Hughes    pos base uni190C
378*e1fe3e4aSElliott Hughes        <anchor 649 1050> mark @eo;
379*e1fe3e4aSElliott Hughes    pos base uni190D
380*e1fe3e4aSElliott Hughes        <anchor 682 1050> mark @eo;
381*e1fe3e4aSElliott Hughes    pos base uni190E
382*e1fe3e4aSElliott Hughes        <anchor 680 1050> mark @eo;
383*e1fe3e4aSElliott Hughes    pos base uni190F
384*e1fe3e4aSElliott Hughes        <anchor 778 1050> mark @eo;
385*e1fe3e4aSElliott Hughes    pos base uni1910
386*e1fe3e4aSElliott Hughes        <anchor 920 1050> mark @eo;
387*e1fe3e4aSElliott Hughes    pos base uni1911
388*e1fe3e4aSElliott Hughes        <anchor 894 1050> mark @eo;
389*e1fe3e4aSElliott Hughes    pos base uni1912
390*e1fe3e4aSElliott Hughes        <anchor 782 1050> mark @eo;
391*e1fe3e4aSElliott Hughes    pos base uni1913
392*e1fe3e4aSElliott Hughes        <anchor 982 1050> mark @eo;
393*e1fe3e4aSElliott Hughes    pos base uni1914
394*e1fe3e4aSElliott Hughes        <anchor 917 1050> mark @eo;
395*e1fe3e4aSElliott Hughes    pos base uni1915
396*e1fe3e4aSElliott Hughes        <anchor 730 1050> mark @eo;
397*e1fe3e4aSElliott Hughes    pos base uni1916
398*e1fe3e4aSElliott Hughes        <anchor 767 1050> mark @eo;
399*e1fe3e4aSElliott Hughes    pos base uni1917
400*e1fe3e4aSElliott Hughes        <anchor 937 1050> mark @eo;
401*e1fe3e4aSElliott Hughes    pos base uni1918
402*e1fe3e4aSElliott Hughes        <anchor 862 1050> mark @eo;
403*e1fe3e4aSElliott Hughes    pos base uni1919
404*e1fe3e4aSElliott Hughes        <anchor 670 1050> mark @eo;
405*e1fe3e4aSElliott Hughes    pos base uni191A
406*e1fe3e4aSElliott Hughes        <anchor 682 1050> mark @eo;
407*e1fe3e4aSElliott Hughes    pos base uni191B
408*e1fe3e4aSElliott Hughes        <anchor 921 1050> mark @eo;
409*e1fe3e4aSElliott Hughes    pos base uni191C
410*e1fe3e4aSElliott Hughes        <anchor 870 1050> mark @eo;
411*e1fe3e4aSElliott Hughes    pos base uni1940
412*e1fe3e4aSElliott Hughes        <anchor 650 1050> mark @eo;
413*e1fe3e4aSElliott Hughes    pos base uni1900
414*e1fe3e4aSElliott Hughes        <anchor 810 1050> mark @eo;
415*e1fe3e4aSElliott Hughes} EO;
416*e1fe3e4aSElliott Hughes
417*e1fe3e4aSElliott Hugheslookup VKem {
418*e1fe3e4aSElliott Hughes    lookupflag MarkAttachmentType @VowelsKem;
419*e1fe3e4aSElliott Hughes    # The VKem positioning rule positions the kemphreng on all upper vowels (except ikar, which has its own ligature). The vowel itself is positioned on the consonant with the Akar or IEO positioning rule.
420*e1fe3e4aSElliott Hughes    pos mark uni1920
421*e1fe3e4aSElliott Hughes        <anchor -260 1250> mark @VK;
422*e1fe3e4aSElliott Hughes    pos mark uni1927
423*e1fe3e4aSElliott Hughes        <anchor -300 1250> mark @VK;
424*e1fe3e4aSElliott Hughes    pos mark uni1928
425*e1fe3e4aSElliott Hughes        <anchor -150 1455> mark @VK;
426*e1fe3e4aSElliott Hughes} VKem;
427*e1fe3e4aSElliott Hughes
428*e1fe3e4aSElliott Hugheslookup GlideU {
429*e1fe3e4aSElliott Hughes    # The GlideU positioning rule positions the ukar on the glides Ya and Wa. (There is already a ligature for each consonant with the Ra+Ukar combination).
430*e1fe3e4aSElliott Hughes    pos base uni1929
431*e1fe3e4aSElliott Hughes        <anchor -135 -40> mark @U;
432*e1fe3e4aSElliott Hughes    pos base uni192B
433*e1fe3e4aSElliott Hughes        <anchor -135 -40> mark @U;
434*e1fe3e4aSElliott Hughes} GlideU;
435*e1fe3e4aSElliott Hughes
436*e1fe3e4aSElliott Hughes# Features
437*e1fe3e4aSElliott Hughesfeature ccmp {
438*e1fe3e4aSElliott Hughes    script latn;
439*e1fe3e4aSElliott Hughes    language dflt;
440*e1fe3e4aSElliott Hughes    lookup EEAIDecomp;
441*e1fe3e4aSElliott Hughes    lookup OoAuKComp;
442*e1fe3e4aSElliott Hughes    lookup OoAuKDecomp;
443*e1fe3e4aSElliott Hughes    lookup GlideVowelComp;
444*e1fe3e4aSElliott Hughes    lookup GlideVowelDecomp;
445*e1fe3e4aSElliott Hughes    script limb;
446*e1fe3e4aSElliott Hughes    language dflt;
447*e1fe3e4aSElliott Hughes    lookup EEAIDecomp;
448*e1fe3e4aSElliott Hughes    lookup OoAuKComp;
449*e1fe3e4aSElliott Hughes    lookup OoAuKDecomp;
450*e1fe3e4aSElliott Hughes    lookup GlideVowelComp;
451*e1fe3e4aSElliott Hughes    lookup GlideVowelDecomp;
452*e1fe3e4aSElliott Hughes} ccmp;
453*e1fe3e4aSElliott Hughes
454*e1fe3e4aSElliott Hughesfeature kern {
455*e1fe3e4aSElliott Hughes    script latn;
456*e1fe3e4aSElliott Hughes    language dflt;
457*e1fe3e4aSElliott Hughes    lookup GlideIkar;
458*e1fe3e4aSElliott Hughes    lookup IkarKWid;
459*e1fe3e4aSElliott Hughes    script limb;
460*e1fe3e4aSElliott Hughes    language dflt;
461*e1fe3e4aSElliott Hughes    lookup GlideIkar;
462*e1fe3e4aSElliott Hughes    lookup IkarKWid;
463*e1fe3e4aSElliott Hughes} kern;
464*e1fe3e4aSElliott Hughes
465*e1fe3e4aSElliott Hughesfeature mark {
466*e1fe3e4aSElliott Hughes    script latn;
467*e1fe3e4aSElliott Hughes    language dflt;
468*e1fe3e4aSElliott Hughes    lookup Akar;
469*e1fe3e4aSElliott Hughes    lookup Kemphreng;
470*e1fe3e4aSElliott Hughes    lookup EO;
471*e1fe3e4aSElliott Hughes    script limb;
472*e1fe3e4aSElliott Hughes    language dflt;
473*e1fe3e4aSElliott Hughes    lookup Akar;
474*e1fe3e4aSElliott Hughes    lookup Kemphreng;
475*e1fe3e4aSElliott Hughes    lookup EO;
476*e1fe3e4aSElliott Hughes} mark;
477*e1fe3e4aSElliott Hughes
478*e1fe3e4aSElliott Hughesfeature mkmk {
479*e1fe3e4aSElliott Hughes    script latn;
480*e1fe3e4aSElliott Hughes    language dflt;
481*e1fe3e4aSElliott Hughes    lookup VKem;
482*e1fe3e4aSElliott Hughes    lookup GlideU;
483*e1fe3e4aSElliott Hughes    script limb;
484*e1fe3e4aSElliott Hughes    language dflt;
485*e1fe3e4aSElliott Hughes    lookup VKem;
486*e1fe3e4aSElliott Hughes    lookup GlideU;
487*e1fe3e4aSElliott Hughes} mkmk;
488*e1fe3e4aSElliott Hughes
489*e1fe3e4aSElliott Hughesfeature liga {
490*e1fe3e4aSElliott Hughes    script latn;
491*e1fe3e4aSElliott Hughes    language dflt;
492*e1fe3e4aSElliott Hughes    lookup RaUkar;
493*e1fe3e4aSElliott Hughes    lookup Ukar;
494*e1fe3e4aSElliott Hughes    lookup IkarK;
495*e1fe3e4aSElliott Hughes    script limb;
496*e1fe3e4aSElliott Hughes    language dflt;
497*e1fe3e4aSElliott Hughes    lookup RaUkar;
498*e1fe3e4aSElliott Hughes    lookup Ukar;
499*e1fe3e4aSElliott Hughes    lookup IkarK;
500*e1fe3e4aSElliott Hughes} liga;
501*e1fe3e4aSElliott Hughes
502*e1fe3e4aSElliott Hughes@GDEF_base = [glyph0 .null CR space exclam quotedbl numbersign dollar percent quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore grave a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde uni0965 uni1900 uni19001922 uni1901 uni19011922 uni1901192A1922 uni1902 uni19021922 uni1902192A1922 uni1903 uni19031922 uni1903192A1922 uni1904 uni19041922 uni1904192A1922 uni1905 uni19051922 uni1905192A1922 uni1906 uni19061922 uni1906192A1922 uni1907 uni19071922 uni1907192A1922 uni1908 uni19081922 uni1908192A1922 uni1909 uni19091922 uni1909192A1922 uni190A uni190A1922 uni190A192A1922 uni190B uni190B1922 uni190B192A1922 uni190C uni190C1922 uni190C192A1922 uni190D uni190D1922 uni190D192A1922 uni190E uni190E1922 uni190192AE1922 uni190F uni190F1922 uni190F192A1922 uni1910 uni19101922 uni1910192A1922 uni1911 uni19111922 uni1911192A1922 uni1912 uni19121922 uni1912192A1922 uni1913 uni19131922 uni1913192A1922 uni1914 uni19141922 uni1914192A1922 uni1915 uni19151922 uni1915192A1922 uni1916 uni19161922 uni1916192A1922 uni1917 uni19171922 uni1917192A1922 uni1918 uni19181922 uni1918192A1922 uni1919 uni19191922 uni1919192A1922 uni191A uni191A1922 uni191A192A1922 uni191B uni191B1922 uni191B192A1922 uni191C uni191C1922 uni191C192A1922 uni1921 uni1923 uni1924 uni1929 uni192B uni1930 uni1931 uni1932 uni1933 uni1934 uni1935 uni1936 uni1937 uni1938 uni1939 uni1940 uni19401922 uni1940192A1922 uni1944 uni1945 uni1946 uni1947 uni1948 uni1949 uni194A uni194B uni194C uni194D uni194E uni194F quoteleft quoteright quotedblleft quotedblright uni1921193A ampersand uni2009 endash emdash uni202F uni1923193A uni1924193A uni19291920 uni19291922 uni19291927 uni19291928 uni1929193A uni19291920193A uni19291922193A uni19291927193A uni19291928193A uni192B1920 uni192B1922 uni192B1927 uni192B1928 uni192B193A uni192B1920193A uni192B1922193A uni192B1927193A uni192B1928193A uni25CC uni191E uni191E1922 uni191E192A1922 uni191D uni191D1922 uni191D192A1922];
503*e1fe3e4aSElliott Hughes@GDEF_mark = [uni1920 uni1920.widC uni1920.widD uni1922 uni1922.altA uni1922.altB uni1922.altC uni1925 uni1926 uni1927 uni1928 uni192A uni193A uni193A.widC uni193B uni193B.widA uni193B.widB uni193B.widC uni192A1922];
504*e1fe3e4aSElliott Hughestable GDEF {
505*e1fe3e4aSElliott Hughes    GlyphClassDef @GDEF_base, , @GDEF_mark, ;
506*e1fe3e4aSElliott Hughes} GDEF;
507