Fix OTS warning about `maxp.maxSizeOfInstructions`.
[ttfautohint.git] / lib / tablue.dat
blob1fc90f87e9e1178fb7a0f8ab2747271895f6004e
1 // tablue.dat
2 //
3 // Auto-fitter data for blue strings.
4 //
5 // Copyright (C) 2013-2022 by Werner Lemberg.
6 //
7 // This file is part of the ttfautohint library, and may only be used,
8 // modified, and distributed under the terms given in `COPYING'. By
9 // continuing to use, modify, or distribute this file you indicate that you
10 // have read `COPYING' and understand and accept it fully.
12 // The file `COPYING' mentioned in the previous paragraph is distributed
13 // with the ttfautohint library.
15 // originally file `afblue.dat' (2013-Sep-22) from FreeType */
18 // This file contains data specific to blue zones. It gets processed by
19 // a script to simulate `jagged arrays', with enumeration values holding
20 // offsets into the arrays.
22 // The format of the file is rather simple: A section starts with three
23 // labels separated by whitespace and followed by a colon (everything in a
24 // single line); the first label gives the name of the enumeration template,
25 // the second the name of the array template, and the third the name of the
26 // `maximum' template. The script then fills the corresponding templates
27 // (indicated by `@' characters around the name).
29 // A section contains one or more data records. Each data record consists
30 // of two or more lines. The first line holds the enumeration name, and the
31 // remaining lines the corresponding array data.
33 // There are two possible representations for array data.
35 // - A string of characters or character clusters (for example, representing
36 // Aksharas, Devanagari syllables) in UTF-8 encoding enclosed in double
37 // quotes, using C syntax, where the elements are separated by spaces.
38 // There can be only one string per line, thus the starting and ending
39 // double quote must be the first and last character in the line,
40 // respectively, ignoring whitespace before and after the string. If
41 // there are multiple strings (in multiple lines), they are concatenated
42 // to a single string. In the output, a string gets represented as a
43 // series of singles bytes, followed by a zero byte. The enumeration
44 // values simply hold byte offsets to the start of the corresponding
45 // strings.
47 // For strings, the `maximum' template holds the maximum number of
48 // non-space characters in all strings.
50 // - Data blocks enclosed in balanced braces, which get copied verbatim and
51 // which can span multiple lines. The opening brace of a block must be
52 // the first character of a line (ignoring whitespace), and the closing
53 // brace the last (ignoring whitespace also). The script appends a comma
54 // character after each block and counts the number of blocks to set the
55 // enumeration values.
57 // For data blocks, the `maximum' template holds the maximum number of
58 // array elements.
60 // A section can contain either strings only or data blocks only.
62 // A comment line starts with `//'; it gets removed. A preprocessor
63 // directive line (using the standard syntax of `cpp') starts with `#' and
64 // gets copied verbatim to both the enumeration and the array. Whitespace
65 // outside of a string is insignificant.
67 // Preprocessor directives are ignored while the script computes maximum
68 // values; this essentially means that the maximum values can easily be too
69 // large. Given that the purpose of those values is to create local
70 // fixed-size arrays at compile time for further processing of the blue zone
71 // data, this isn't a problem. Note that the final zero byte of a string is
72 // not counted. Note also that the count holds the number of UTF-8 encoded
73 // characters, not bytes.
76 // The blue zone string data, to be used in the blue stringsets below.
78 TA_BLUE_STRING_ENUM TA_BLUE_STRINGS_ARRAY TA_BLUE_STRING_MAX_LEN:
80 TA_BLUE_STRING_ADLAM_CAPITAL_TOP
81 "𞤌 𞤅 𞤈 𞤏 𞤔 𞤚"
82 TA_BLUE_STRING_ADLAM_CAPITAL_BOTTOM
83 "𞤂 𞤖"
84 TA_BLUE_STRING_ADLAM_SMALL_TOP
85 "𞤬 𞤮 𞤻 𞤼 𞤾"
86 TA_BLUE_STRING_ADLAM_SMALL_BOTTOM
87 "𞤤 𞤨 𞤩 𞤭 𞤴 𞤸 𞤺 𞥀"
89 TA_BLUE_STRING_ARABIC_TOP
90 "ا إ ل ك ط ظ"
91 TA_BLUE_STRING_ARABIC_BOTTOM
92 "ت ث ط ظ ك"
93 // We don't necessarily have access to medial forms via Unicode in case
94 // Arabic presentational forms are missing. The only character that is
95 // guaranteed to have the same vertical position with joining (this is,
96 // non-isolated) forms is U+0640, ARABIC TATWEEL, which must join both
97 // round and flat curves.
98 TA_BLUE_STRING_ARABIC_JOIN
99 "ـ"
101 TA_BLUE_STRING_ARMENIAN_CAPITAL_TOP
102 "Ա Մ Ւ Ս Բ Գ Դ Օ"
103 TA_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM
104 "Ւ Ո Դ Ճ Շ Ս Տ Օ"
105 TA_BLUE_STRING_ARMENIAN_SMALL_ASCENDER
106 "ե է ի մ վ ֆ ճ"
107 TA_BLUE_STRING_ARMENIAN_SMALL_TOP
108 "ա յ ւ ս գ շ ր օ"
109 TA_BLUE_STRING_ARMENIAN_SMALL_BOTTOM
110 "հ ո ճ ա ե ծ ս օ"
111 TA_BLUE_STRING_ARMENIAN_SMALL_DESCENDER
112 "բ ը ի լ ղ պ փ ց"
114 TA_BLUE_STRING_AVESTAN_TOP
115 "𐬀 𐬁 𐬐 𐬛"
116 TA_BLUE_STRING_AVESTAN_BOTTOM
117 "𐬀 𐬁"
119 TA_BLUE_STRING_BAMUM_TOP
120 "ꚧ ꚨ ꛛ ꛉ ꛁ ꛈ ꛫ ꛯ"
121 TA_BLUE_STRING_BAMUM_BOTTOM
122 "ꚭ ꚳ ꚶ ꛬ ꚢ ꚽ ꛯ ꛲"
124 TA_BLUE_STRING_BENGALI_BASE
125 "অ ড ত ন ব ভ ল ক"
126 TA_BLUE_STRING_BENGALI_TOP
127 "ই ট ঠ ি ী ৈ ৗ"
128 TA_BLUE_STRING_BENGALI_HEAD
129 "ও এ ড ত ন ব ল ক"
131 TA_BLUE_STRING_BUHID_TOP
132 "ᝐ ᝈ"
133 TA_BLUE_STRING_BUHID_LARGE
134 "ᝅ ᝊ ᝎ"
135 TA_BLUE_STRING_BUHID_SMALL
136 "ᝂ ᝃ ᝉ ᝌ"
137 TA_BLUE_STRING_BUHID_BOTTOM
138 "ᝀ ᝃ ᝆ ᝉ ᝋ ᝏ ᝑ"
140 TA_BLUE_STRING_CANADIAN_SYLLABICS_TOP
141 "ᗜ ᖴ ᐁ ᒣ ᑫ ᑎ ᔑ ᗰ"
142 TA_BLUE_STRING_CANADIAN_SYLLABICS_BOTTOM
143 "ᗶ ᖵ ᒧ ᐃ ᑌ ᒍ ᔑ ᗢ"
144 TA_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_TOP
145 "ᓓ ᓕ ᓀ ᓂ ᓄ ᕄ ᕆ ᘣ"
146 TA_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_BOTTOM
147 "ᕃ ᓂ ᓀ ᕂ ᓗ ᓚ ᕆ ᘣ"
148 TA_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_TOP
149 "ᐪ ᙆ ᣘ ᐢ ᒾ ᣗ ᔆ"
150 TA_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_BOTTOM
151 "ᙆ ᗮ ᒻ ᐞ ᔆ ᒡ ᒢ ᓑ"
153 TA_BLUE_STRING_CARIAN_TOP
154 "𐊧 𐊫 𐊬 𐊭 𐊱 𐊺 𐊼 𐊿"
155 TA_BLUE_STRING_CARIAN_BOTTOM
156 "𐊣 𐊧 𐊷 𐋀 𐊫 𐊸 𐋉"
158 TA_BLUE_STRING_CHAKMA_TOP
159 "𑄃 𑄅 𑄉 𑄙 𑄗"
160 TA_BLUE_STRING_CHAKMA_BOTTOM
161 "𑄅 𑄛 𑄝 𑄗 𑄓"
162 TA_BLUE_STRING_CHAKMA_DESCENDER
163 "𑄖𑄳𑄢 𑄘𑄳𑄢 𑄙𑄳𑄢 𑄤𑄳𑄢 𑄥𑄳𑄢"
165 TA_BLUE_STRING_CHEROKEE_CAPITAL
166 "Ꮖ Ꮋ Ꭼ Ꮓ Ꭴ Ꮳ Ꭶ Ꮥ"
167 TA_BLUE_STRING_CHEROKEE_SMALL_ASCENDER
168 "ꮒ ꮤ ꮶ ꭴ ꭾ ꮗ ꮝ ꮿ"
169 TA_BLUE_STRING_CHEROKEE_SMALL
170 "ꮖ ꭼ ꮓ ꮠ ꮳ ꭶ ꮥ ꮻ"
171 TA_BLUE_STRING_CHEROKEE_SMALL_DESCENDER
172 "ᏸ ꮐ ꭹ ꭻ"
174 TA_BLUE_STRING_COPTIC_CAPITAL_TOP
175 "Ⲍ Ⲏ Ⲡ Ⳟ Ⲟ Ⲑ Ⲥ Ⳋ"
176 TA_BLUE_STRING_COPTIC_CAPITAL_BOTTOM
177 "Ⳑ Ⳙ Ⳟ Ⲏ Ⲟ Ⲑ Ⳝ Ⲱ"
178 TA_BLUE_STRING_COPTIC_SMALL_TOP
179 "ⲍ ⲏ ⲡ ⳟ ⲟ ⲑ ⲥ ⳋ"
180 TA_BLUE_STRING_COPTIC_SMALL_BOTTOM
181 "ⳑ ⳙ ⳟ ⲏ ⲟ ⲑ ⳝ Ⳓ"
183 TA_BLUE_STRING_CYPRIOT_TOP
184 "𐠍 𐠙 𐠳 𐠱 𐠅 𐠓 𐠣 𐠦"
185 TA_BLUE_STRING_CYPRIOT_BOTTOM
186 "𐠃 𐠊 𐠛 𐠣 𐠳 𐠵 𐠐"
187 TA_BLUE_STRING_CYPRIOT_SMALL
188 "𐠈 𐠏 𐠖"
190 TA_BLUE_STRING_CYRILLIC_CAPITAL_TOP
191 "Б В Е П З О С Э"
192 TA_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM
193 "Б В Е Ш З О С Э"
194 TA_BLUE_STRING_CYRILLIC_SMALL
195 "х п н ш е з о с"
196 TA_BLUE_STRING_CYRILLIC_SMALL_DESCENDER
197 "р у ф"
199 TA_BLUE_STRING_DESERET_CAPITAL_TOP
200 "𐐂 𐐄 𐐋 𐐗 𐐑"
201 TA_BLUE_STRING_DESERET_CAPITAL_BOTTOM
202 "𐐀 𐐂 𐐄 𐐗 𐐛"
203 TA_BLUE_STRING_DESERET_SMALL_TOP
204 "𐐪 𐐬 𐐳 𐐿 𐐹"
205 TA_BLUE_STRING_DESERET_SMALL_BOTTOM
206 "𐐨 𐐪 𐐬 𐐿 𐑃"
208 TA_BLUE_STRING_DEVANAGARI_BASE
209 "क न म उ छ ट ठ ड"
210 TA_BLUE_STRING_DEVANAGARI_TOP
211 "ई ऐ ओ औ ि ी ो ौ"
212 // note that some fonts have extreme variation in the height of the
213 // round head elements; for this reason we also define the `base'
214 // blue zone, which must be always present
215 TA_BLUE_STRING_DEVANAGARI_HEAD
216 "क म अ आ थ ध भ श"
217 TA_BLUE_STRING_DEVANAGARI_BOTTOM
218 "ु ृ"
220 TA_BLUE_STRING_ETHIOPIC_TOP
221 "ሀ ሃ ዘ ፐ ማ በ ዋ ዐ"
222 TA_BLUE_STRING_ETHIOPIC_BOTTOM
223 "ለ ሐ በ ዘ ሀ ሪ ዐ ጨ"
225 TA_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP
226 "გ დ ე ვ თ ი ო ღ"
227 TA_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM
228 "ა ზ მ ს შ ძ ხ პ"
229 TA_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER
230 "ს ხ ქ ზ მ შ ჩ წ"
231 TA_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER
232 "ე ვ ჟ ტ უ ფ ქ ყ"
234 TA_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP
235 "Ⴑ Ⴇ Ⴙ Ⴜ Ⴄ Ⴅ Ⴓ Ⴚ"
236 TA_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM
237 "Ⴄ Ⴅ Ⴇ Ⴈ Ⴆ Ⴑ Ⴊ Ⴋ"
239 TA_BLUE_STRING_GEORGIAN_NUSKHURI_TOP
240 "ⴁ ⴗ ⴂ ⴄ ⴅ ⴇ ⴔ ⴖ"
241 TA_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM
242 "ⴈ ⴌ ⴖ ⴎ ⴃ ⴆ ⴋ ⴢ"
243 TA_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER
244 "ⴐ ⴑ ⴓ ⴕ ⴙ ⴛ ⴡ ⴣ"
245 TA_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER
246 "ⴄ ⴅ ⴔ ⴕ ⴁ ⴂ ⴘ ⴝ"
248 TA_BLUE_STRING_GEORGIAN_MTAVRULI_TOP
249 "Ნ Ჟ Ჳ Ჸ Გ Ე Ო Ჴ"
250 TA_BLUE_STRING_GEORGIAN_MTAVRULI_BOTTOM
251 "Ი Ჲ Ო Ჩ Მ Შ Ჯ Ჽ"
253 TA_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP
254 "Ⰵ Ⱄ Ⱚ Ⰴ Ⰲ Ⰺ Ⱛ Ⰻ"
255 TA_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM
256 "Ⰵ Ⰴ Ⰲ Ⱚ Ⱎ Ⱑ Ⰺ Ⱄ"
257 TA_BLUE_STRING_GLAGOLITIC_SMALL_TOP
258 "ⰵ ⱄ ⱚ ⰴ ⰲ ⰺ ⱛ ⰻ"
259 TA_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM
260 "ⰵ ⰴ ⰲ ⱚ ⱎ ⱑ ⰺ ⱄ"
262 TA_BLUE_STRING_GOTHIC_TOP
263 "𐌲 𐌶 𐍀 𐍄 𐌴 𐍃 𐍈 𐌾"
264 TA_BLUE_STRING_GOTHIC_BOTTOM
265 "𐌶 𐌴 𐍃 𐍈"
267 TA_BLUE_STRING_GREEK_CAPITAL_TOP
268 "Γ Β Ε Ζ Θ Ο Ω"
269 TA_BLUE_STRING_GREEK_CAPITAL_BOTTOM
270 "Β Δ Ζ Ξ Θ Ο"
271 TA_BLUE_STRING_GREEK_SMALL_BETA_TOP
272 "β θ δ ζ λ ξ"
273 TA_BLUE_STRING_GREEK_SMALL
274 "α ε ι ο π σ τ ω"
275 TA_BLUE_STRING_GREEK_SMALL_DESCENDER
276 "β γ η μ ρ φ χ ψ"
278 TA_BLUE_STRING_GUJARATI_TOP
279 "ત ન ઋ ઌ છ ટ ર ૦"
280 TA_BLUE_STRING_GUJARATI_BOTTOM
281 "ખ ગ ઘ ઞ ઇ ઈ ઠ જ"
282 TA_BLUE_STRING_GUJARATI_ASCENDER
283 "ઈ ઊ િ ી લી શ્ચિ જિ સી"
284 TA_BLUE_STRING_GUJARATI_DESCENDER
285 "ુ ૃ ૄ ખુ છૃ છૄ"
286 TA_BLUE_STRING_GUJARATI_DIGIT_TOP
287 "૦ ૧ ૨ ૩ ૭"
289 TA_BLUE_STRING_GURMUKHI_BASE
290 "ਕ ਗ ਙ ਚ ਜ ਤ ਧ ਸ"
291 TA_BLUE_STRING_GURMUKHI_HEAD
292 "ਕ ਗ ਙ ਚ ਜ ਤ ਧ ਸ"
293 TA_BLUE_STRING_GURMUKHI_TOP
294 "ਇ ਈ ਉ ਏ ਓ ੳ ਿ ੀ"
295 TA_BLUE_STRING_GURMUKHI_BOTTOM
296 "ਅ ਏ ਓ ਗ ਜ ਠ ਰ ਸ"
297 TA_BLUE_STRING_GURMUKHI_DIGIT_TOP
298 "੦ ੧ ੨ ੩ ੭"
300 TA_BLUE_STRING_HEBREW_TOP
301 "ב ד ה ח ך כ ם ס"
302 TA_BLUE_STRING_HEBREW_BOTTOM
303 "ב ט כ ם ס צ"
304 TA_BLUE_STRING_HEBREW_DESCENDER
305 "ק ך ן ף ץ"
307 TA_BLUE_STRING_HMNP_TOP
308 "𞄀 𞄁 𞄈 𞄑 𞄧 𞄬"
309 TA_BLUE_STRING_HMNP_BOTTOM
310 "𞄁 𞄜 𞄠 𞄡 𞄤 𞅂"
312 TA_BLUE_STRING_KANNADA_TOP
313 "ಇ ಊ ಐ ಣ ಸಾ ನಾ ದಾ ರಾ"
314 TA_BLUE_STRING_KANNADA_BOTTOM
315 "ಅ ಉ ಎ ಲ ೦ ೨ ೬ ೭"
317 TA_BLUE_STRING_KAYAH_LI_TOP
318 "꤅ ꤏ ꤁ ꤋ ꤀ ꤍ"
319 TA_BLUE_STRING_KAYAH_LI_BOTTOM
320 "꤈ ꤘ ꤀ ꤍ ꤢ"
321 TA_BLUE_STRING_KAYAH_LI_ASCENDER
322 "ꤖ ꤡ"
323 TA_BLUE_STRING_KAYAH_LI_DESCENDER
324 "ꤑ ꤜ ꤞ"
325 TA_BLUE_STRING_KAYAH_LI_LARGE_DESCENDER
326 "ꤑ꤬ ꤜ꤭ ꤔ꤬"
328 TA_BLUE_STRING_KHMER_TOP
329 "ខ ទ ន ឧ ឩ ា"
330 TA_BLUE_STRING_KHMER_SUBSCRIPT_TOP
331 "ក្ក ក្ខ ក្គ ក្ថ"
332 TA_BLUE_STRING_KHMER_BOTTOM
333 "ខ ឃ ច ឋ ប ម យ ឲ"
334 TA_BLUE_STRING_KHMER_DESCENDER
335 "ត្រ រៀ ឲ្យ អឿ"
336 TA_BLUE_STRING_KHMER_LARGE_DESCENDER
337 "ន្ត្រៃ ង្ខ្យ ក្បៀ ច្រៀ ន្តឿ ល្បឿ"
339 TA_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP
340 "᧠ ᧡"
341 TA_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM
342 "᧶ ᧹"
344 TA_BLUE_STRING_LAO_TOP
345 "າ ດ ອ ມ ລ ວ ຣ ງ"
346 TA_BLUE_STRING_LAO_BOTTOM
347 "າ ອ ບ ຍ ຣ ຮ ວ ຢ"
348 TA_BLUE_STRING_LAO_ASCENDER
349 "ປ ຢ ຟ ຝ"
350 TA_BLUE_STRING_LAO_LARGE_ASCENDER
351 "ໂ ໄ ໃ"
352 TA_BLUE_STRING_LAO_DESCENDER
353 "ງ ຊ ຖ ຽ ໆ ຯ"
355 TA_BLUE_STRING_LATIN_CAPITAL_TOP
356 "T H E Z O C Q S"
357 TA_BLUE_STRING_LATIN_CAPITAL_BOTTOM
358 "H E Z L O C U S"
359 TA_BLUE_STRING_LATIN_SMALL_F_TOP
360 "f i j k d b h"
361 TA_BLUE_STRING_LATIN_SMALL_TOP
362 "u v x z o e s c"
363 TA_BLUE_STRING_LATIN_SMALL_BOTTOM
364 "n r x z o e s c"
365 TA_BLUE_STRING_LATIN_SMALL_DESCENDER
366 "p q g j y"
368 // we assume that both the subscript and superscript ranges
369 // don't contain oldstyle digits (actually, most fonts probably
370 // have digits only in those ranges)
371 TA_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP
372 "₀ ₃ ₅ ₇ ₈"
373 TA_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM
374 "₀ ₁ ₂ ₃ ₈"
375 TA_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP
376 "ᵢ ⱼ ₕ ₖ ₗ"
377 TA_BLUE_STRING_LATIN_SUBS_SMALL
378 "ₐ ₑ ₒ ₓ ₙ ₛ ᵥ ᵤ ᵣ"
379 TA_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER
380 "ᵦ ᵧ ᵨ ᵩ ₚ"
382 TA_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP
383 "⁰ ³ ⁵ ⁷ ᵀ ᴴ ᴱ ᴼ"
384 TA_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM
385 "⁰ ¹ ² ³ ᴱ ᴸ ᴼ ᵁ"
386 TA_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP
387 "ᵇ ᵈ ᵏ ʰ ʲ ᶠ ⁱ"
388 TA_BLUE_STRING_LATIN_SUPS_SMALL
389 "ᵉ ᵒ ʳ ˢ ˣ ᶜ ᶻ"
390 TA_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER
391 "ᵖ ʸ ᵍ"
393 TA_BLUE_STRING_LISU_TOP
394 "ꓡ ꓧ ꓱ ꓶ ꓩ ꓚ ꓵ ꓳ"
395 TA_BLUE_STRING_LISU_BOTTOM
396 "ꓕ ꓜ ꓞ ꓡ ꓛ ꓢ ꓳ ꓴ"
398 TA_BLUE_STRING_MALAYALAM_TOP
399 "ഒ ട ഠ റ ച പ ച്ച പ്പ"
400 TA_BLUE_STRING_MALAYALAM_BOTTOM
401 "ട ഠ ധ ശ ഘ ച ഥ ല"
403 TA_BLUE_STRING_MEDEFAIDRIN_CAPITAL_TOP
404 "𖹀 𖹁 𖹂 𖹃 𖹏 𖹚 𖹟"
405 TA_BLUE_STRING_MEDEFAIDRIN_CAPITAL_BOTTOM
406 "𖹀 𖹁 𖹂 𖹃 𖹏 𖹚 𖹒 𖹓"
407 TA_BLUE_STRING_MEDEFAIDRIN_SMALL_F_TOP
408 "𖹤 𖹬 𖹧 𖹴 𖹶 𖹾"
409 TA_BLUE_STRING_MEDEFAIDRIN_SMALL_TOP
410 "𖹠 𖹡 𖹢 𖹹 𖹳 𖹮"
411 TA_BLUE_STRING_MEDEFAIDRIN_SMALL_BOTTOM
412 "𖹠 𖹡 𖹢 𖹳 𖹭 𖹽"
413 TA_BLUE_STRING_MEDEFAIDRIN_SMALL_DESCENDER
414 "𖹥 𖹨 𖹩"
415 TA_BLUE_STRING_MEDEFAIDRIN_DIGIT_TOP
416 "𖺀 𖺅 𖺈 𖺄 𖺍"
418 TA_BLUE_STRING_MONGOLIAN_TOP_BASE
419 "ᠳ ᠴ ᠶ ᠽ ᡂ ᡊ ‍ᡡ‍ ‍ᡳ‍"
420 TA_BLUE_STRING_MONGOLIAN_BOTTOM_BASE
421 "ᡃ"
423 TA_BLUE_STRING_MYANMAR_TOP
424 "ခ ဂ င ဒ ဝ ၥ ၊ ။"
425 TA_BLUE_STRING_MYANMAR_BOTTOM
426 "င ဎ ဒ ပ ဗ ဝ ၊ ။"
427 TA_BLUE_STRING_MYANMAR_ASCENDER
428 "ဩ ြ ၍ ၏ ၆ ါ ိ"
429 TA_BLUE_STRING_MYANMAR_DESCENDER
430 "ဉ ည ဥ ဩ ဨ ၂ ၅ ၉"
432 TA_BLUE_STRING_NKO_TOP
433 "ߐ ߉ ߒ ߟ ߖ ߜ ߠ ߥ"
434 TA_BLUE_STRING_NKO_BOTTOM
435 "߀ ߘ ߡ ߠ ߥ"
436 TA_BLUE_STRING_NKO_SMALL_TOP
437 "ߏ ߛ ߋ"
438 TA_BLUE_STRING_NKO_SMALL_BOTTOM
439 "ߎ ߏ ߛ ߋ"
441 TA_BLUE_STRING_OL_CHIKI
442 "ᱛ ᱜ ᱝ ᱡ ᱢ ᱥ"
444 TA_BLUE_STRING_OLD_TURKIC_TOP
445 "𐰗 𐰘 𐰧"
446 TA_BLUE_STRING_OLD_TURKIC_BOTTOM
447 "𐰉 𐰗 𐰦 𐰧"
449 TA_BLUE_STRING_OSAGE_CAPITAL_TOP
450 "𐒾 𐓍 𐓒 𐓓 𐒻 𐓂 𐒵 𐓆"
451 TA_BLUE_STRING_OSAGE_CAPITAL_BOTTOM
452 "𐒰 𐓍 𐓂 𐒿 𐓎 𐒹"
453 TA_BLUE_STRING_OSAGE_CAPITAL_DESCENDER
454 "𐒼 𐒽 𐒾"
455 TA_BLUE_STRING_OSAGE_SMALL_TOP
456 "𐓵 𐓶 𐓺 𐓻 𐓝 𐓣 𐓪 𐓮"
457 TA_BLUE_STRING_OSAGE_SMALL_BOTTOM
458 "𐓘 𐓚 𐓣 𐓵 𐓡 𐓧 𐓪 𐓶"
459 TA_BLUE_STRING_OSAGE_SMALL_ASCENDER
460 "𐓤 𐓦 𐓸 𐓹 𐓛"
461 TA_BLUE_STRING_OSAGE_SMALL_DESCENDER
462 "𐓤 𐓥 𐓦"
464 TA_BLUE_STRING_OSMANYA_TOP
465 "𐒆 𐒉 𐒐 𐒒 𐒘 𐒛 𐒠 𐒣"
466 TA_BLUE_STRING_OSMANYA_BOTTOM
467 "𐒀 𐒂 𐒆 𐒈 𐒊 𐒒 𐒠 𐒩"
469 TA_BLUE_STRING_ROHINGYA_TOP
470 "𐴃 𐴀 𐴆 𐴖 𐴕"
471 TA_BLUE_STRING_ROHINGYA_BOTTOM
472 "𐴔 𐴖 𐴕 𐴑 𐴐"
473 TA_BLUE_STRING_ROHINGYA_JOIN
474 "ـ"
476 TA_BLUE_STRING_SAURASHTRA_TOP
477 "ꢜ ꢞ ꢳ ꢂ ꢖ ꢒ ꢝ ꢛ"
478 TA_BLUE_STRING_SAURASHTRA_BOTTOM
479 "ꢂ ꢨ ꢺ ꢤ ꢎ"
481 TA_BLUE_STRING_SHAVIAN_TOP
482 "𐑕 𐑙"
483 TA_BLUE_STRING_SHAVIAN_BOTTOM
484 "𐑔 𐑖 𐑗 𐑹 𐑻"
485 TA_BLUE_STRING_SHAVIAN_DESCENDER
486 "𐑟 𐑣"
487 TA_BLUE_STRING_SHAVIAN_SMALL_TOP
488 "𐑱 𐑲 𐑳 𐑴 𐑸 𐑺 𐑼"
489 TA_BLUE_STRING_SHAVIAN_SMALL_BOTTOM
490 "𐑴 𐑻 𐑹"
492 TA_BLUE_STRING_SINHALA_TOP
493 "ඉ ක ඝ ඳ ප ය ල ෆ"
494 TA_BLUE_STRING_SINHALA_BOTTOM
495 "එ ඔ ඝ ජ ට ථ ධ ර"
496 TA_BLUE_STRING_SINHALA_DESCENDER
497 "ද ඳ උ ල තූ තු බු දු"
499 TA_BLUE_STRING_SUNDANESE_TOP
500 "ᮋ ᮞ ᮮ ᮽ ᮰ ᮈ"
501 TA_BLUE_STRING_SUNDANESE_BOTTOM
502 "ᮄ ᮔ ᮕ ᮗ ᮰ ᮆ ᮈ ᮉ"
503 TA_BLUE_STRING_SUNDANESE_DESCENDER
504 "ᮼ ᳄"
506 TA_BLUE_STRING_TAI_VIET_TOP
507 "ꪆ ꪔ ꪒ ꪖ ꪫ"
508 TA_BLUE_STRING_TAI_VIET_BOTTOM
509 "ꪉ ꪫ ꪮ"
511 TA_BLUE_STRING_TAMIL_TOP
512 "உ ஒ ஓ ற ஈ க ங ச"
513 TA_BLUE_STRING_TAMIL_BOTTOM
514 "க ச ல ஶ உ ங ட ப"
516 TA_BLUE_STRING_TELUGU_TOP
517 "ఇ ఌ ఙ ఞ ణ ఱ ౯"
518 TA_BLUE_STRING_TELUGU_BOTTOM
519 "అ క చ ర ఽ ౨ ౬"
521 TA_BLUE_STRING_THAI_TOP
522 "บ เ แ อ ก า"
523 TA_BLUE_STRING_THAI_BOTTOM
524 "บ ป ษ ฯ อ ย ฮ"
525 TA_BLUE_STRING_THAI_ASCENDER
526 "ป ฝ ฟ"
527 TA_BLUE_STRING_THAI_LARGE_ASCENDER
528 "โ ใ ไ"
529 TA_BLUE_STRING_THAI_DESCENDER
530 "ฎ ฏ ฤ ฦ"
531 TA_BLUE_STRING_THAI_LARGE_DESCENDER
532 "ญ ฐ"
533 TA_BLUE_STRING_THAI_DIGIT_TOP
534 "๐ ๑ ๓"
536 TA_BLUE_STRING_TIFINAGH
537 "ⵔ ⵙ ⵛ ⵞ ⴵ ⴼ ⴹ ⵎ"
539 TA_BLUE_STRING_VAI_TOP
540 "ꗍ ꘖ ꘙ ꘜ ꖜ ꖝ ꔅ ꕢ"
541 TA_BLUE_STRING_VAI_BOTTOM
542 "ꗍ ꘖ ꘙ ꗞ ꔅ ꕢ ꖜ ꔆ"
544 TA_BLUE_STRING_YEZIDI_TOP
545 "𐺁 𐺂 𐺃 𐺄 𐺆 𐺉 𐺋"
546 TA_BLUE_STRING_YEZIDI_BOTTOM
547 "𐺁 𐺄 𐺆 𐺋 𐺍 𐺐"
548 TA_BLUE_STRING_YEZIDI_ASCENDER
549 "𐺀 𐺠 𐺡"
550 TA_BLUE_STRING_YEZIDI_DESCENDER
551 "𐺂 𐺃 𐺕 𐺛 𐺜 𐺝 𐺨"
553 // The blue zone stringsets, as used in the script styles, cf. `tastyles.h'.
555 // The TA_BLUE_PROPERTY_XXX flags are defined in `tablue.h'; here some
556 // explanations.
558 // A blue zone in general is defined by a reference and an overshoot line.
559 // During the hinting process, all coordinate values between those two lines
560 // are set equal to the reference value, provided that the blue zone is not
561 // wider than 0.75 pixels (otherwise the blue zone gets ignored). All
562 // entries must have `TA_BLUE_STRING_MAX' as the final line.
564 // During the glyph analysis, edges are sorted from bottom to top, and then
565 // sequentially checked, edge by edge, against the blue zones in the order
566 // given below.
569 // latin auto-hinter
570 // -----------------
572 // Characters in a blue string are automatically classified as having a flat
573 // (reference) or a round (overshoot) extremum. The blue zone is then set
574 // up by the mean values of all flat extrema and all round extrema,
575 // respectively. Only horizontal blue zones (i.e., adjusting vertical
576 // coordinate values) are supported.
578 // Some scripts like Khmer need character composition to get all necessary
579 // blue zones, since Unicode only provides an abstract data model that
580 // doesn't represent all possible glyph shapes. For such character
581 // clusters, the HarfBuzz library is used to convert them into the
582 // corresponding glyphs. The largest glyph element (where `largest' can be
583 // either `largest ascender' or `largest descender') then defines the
584 // corresponding flat or round extremum.
586 // For the latin auto-hinter, the overshoot should be larger than the
587 // reference for top zones, and vice versa for bottom zones.
589 // LATIN_TOP
590 // Take the maximum flat and round coordinate values of the blue string
591 // characters for computing the blue zone's reference and overshoot
592 // values.
594 // If not set, take the minimum values.
596 // Mutually exclusive with `LATIN_SUB_TOP'.
598 // LATIN_SUB_TOP
599 // For all glyphs of a character cluster, compute the maximum flat
600 // and round coordinate values of each component, then take the
601 // smallest of the maximum values. The idea is to get the top of
602 // subscript glyphs, as used in Khmer, for example. Note that
603 // this mechanism doesn't work for ordinary ligatures.
605 // This flags indicates a secondary blue zone: It gets removed if
606 // there is a non-LATIN_SUB_TOP blue zone at the same coordinate
607 // value (after scaling).
609 // Mutually exclusive with `LATIN_TOP'.
611 // LATIN_NEUTRAL
612 // Ignore round extrema and define the blue zone with flat values only.
613 // Both top and bottom of contours can match. This is useful for
614 // scripts like Devanagari where vowel signs attach to the base
615 // character and are implemented as components of composite glyphs.
617 // If not set, both round and flat extrema are taken into account.
618 // Additionally, only the top or the bottom of a contour can match,
619 // depending on the LATIN_TOP flag.
621 // Neutral blue zones should always follow non-neutral blue zones.
623 // LATIN_X_HEIGHT
624 // Scale all glyphs vertically from the corresponding script to make the
625 // reference line of this blue zone align on the grid. The scaling
626 // takes place before all other blue zones get aligned to the grid.
627 // Only one blue character string of a script style can have this flag.
629 // LATIN_LONG
630 // Apply an additional constraint for blue zone values: Don't
631 // necessarily use the extremum as-is but a segment of the topmost (or
632 // bottommost) contour that is longer than a heuristic threshold, and
633 // which is not too far away vertically from the real extremum. This
634 // ensures that small bumps in the outline are ignored (for example, the
635 // `vertical serifs' found in many Hebrew glyph designs).
637 // The segment must be at least EM/25 font units long, and the distance
638 // to the extremum must be smaller than EM/4.
640 TA_BLUE_STRINGSET_ENUM TA_BLUE_STRINGSETS_ARRAY TA_BLUE_STRINGSET_MAX_LEN:
642 TA_BLUE_STRINGSET_ADLM
643 { TA_BLUE_STRING_ADLAM_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
644 { TA_BLUE_STRING_ADLAM_CAPITAL_BOTTOM, 0 }
645 { TA_BLUE_STRING_ADLAM_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
646 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
647 { TA_BLUE_STRING_ADLAM_SMALL_BOTTOM, 0 }
648 { TA_BLUE_STRING_MAX, 0 }
650 TA_BLUE_STRINGSET_ARAB
651 { TA_BLUE_STRING_ARABIC_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
652 { TA_BLUE_STRING_ARABIC_BOTTOM, 0 }
653 { TA_BLUE_STRING_ARABIC_JOIN, TA_BLUE_PROPERTY_LATIN_NEUTRAL }
654 { TA_BLUE_STRING_MAX, 0 }
656 TA_BLUE_STRINGSET_ARMN
657 { TA_BLUE_STRING_ARMENIAN_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
658 { TA_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM, 0 }
659 { TA_BLUE_STRING_ARMENIAN_SMALL_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
660 { TA_BLUE_STRING_ARMENIAN_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
661 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
662 { TA_BLUE_STRING_ARMENIAN_SMALL_BOTTOM, 0 }
663 { TA_BLUE_STRING_ARMENIAN_SMALL_DESCENDER, 0 }
664 { TA_BLUE_STRING_MAX, 0 }
666 TA_BLUE_STRINGSET_AVST
667 { TA_BLUE_STRING_AVESTAN_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
668 { TA_BLUE_STRING_AVESTAN_BOTTOM, 0 }
669 { TA_BLUE_STRING_MAX, 0 }
671 TA_BLUE_STRINGSET_BAMU
672 { TA_BLUE_STRING_BAMUM_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
673 { TA_BLUE_STRING_BAMUM_BOTTOM, 0 }
674 { TA_BLUE_STRING_MAX, 0 }
676 TA_BLUE_STRINGSET_BENG
677 { TA_BLUE_STRING_BENGALI_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
678 { TA_BLUE_STRING_BENGALI_HEAD, TA_BLUE_PROPERTY_LATIN_TOP }
679 { TA_BLUE_STRING_BENGALI_BASE, TA_BLUE_PROPERTY_LATIN_TOP |
680 TA_BLUE_PROPERTY_LATIN_NEUTRAL |
681 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
682 { TA_BLUE_STRING_BENGALI_BASE, 0 }
683 { TA_BLUE_STRING_MAX, 0 }
685 TA_BLUE_STRINGSET_BUHD
686 { TA_BLUE_STRING_BUHID_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
687 { TA_BLUE_STRING_BUHID_LARGE, TA_BLUE_PROPERTY_LATIN_TOP }
688 { TA_BLUE_STRING_BUHID_SMALL, TA_BLUE_PROPERTY_LATIN_TOP |
689 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
690 { TA_BLUE_STRING_BUHID_BOTTOM, 0 }
691 { TA_BLUE_STRING_MAX, 0 }
693 TA_BLUE_STRINGSET_CAKM
694 { TA_BLUE_STRING_CHAKMA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
695 { TA_BLUE_STRING_CHAKMA_BOTTOM, 0 }
696 { TA_BLUE_STRING_CHAKMA_DESCENDER, 0 }
697 { TA_BLUE_STRING_MAX, 0 }
699 TA_BLUE_STRINGSET_CANS
700 { TA_BLUE_STRING_CANADIAN_SYLLABICS_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
701 { TA_BLUE_STRING_CANADIAN_SYLLABICS_BOTTOM, 0 }
702 { TA_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
703 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
704 { TA_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_BOTTOM, 0 }
705 { TA_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
706 { TA_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_BOTTOM, 0 }
707 { TA_BLUE_STRING_MAX, 0 }
709 TA_BLUE_STRINGSET_CARI
710 { TA_BLUE_STRING_CARIAN_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
711 { TA_BLUE_STRING_CARIAN_BOTTOM, 0 }
712 { TA_BLUE_STRING_MAX, 0 }
714 TA_BLUE_STRINGSET_CHER
715 { TA_BLUE_STRING_CHEROKEE_CAPITAL, TA_BLUE_PROPERTY_LATIN_TOP }
716 { TA_BLUE_STRING_CHEROKEE_CAPITAL, 0 }
717 { TA_BLUE_STRING_CHEROKEE_SMALL_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
718 { TA_BLUE_STRING_CHEROKEE_SMALL, TA_BLUE_PROPERTY_LATIN_TOP |
719 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
720 { TA_BLUE_STRING_CHEROKEE_SMALL, 0 }
721 { TA_BLUE_STRING_CHEROKEE_SMALL_DESCENDER, 0 }
722 { TA_BLUE_STRING_MAX, 0 }
724 TA_BLUE_STRINGSET_COPT
725 { TA_BLUE_STRING_COPTIC_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
726 { TA_BLUE_STRING_COPTIC_CAPITAL_BOTTOM, 0 }
727 { TA_BLUE_STRING_COPTIC_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
728 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
729 { TA_BLUE_STRING_COPTIC_SMALL_BOTTOM, 0 }
730 { TA_BLUE_STRING_MAX, 0 }
732 TA_BLUE_STRINGSET_CPRT
733 { TA_BLUE_STRING_CYPRIOT_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
734 { TA_BLUE_STRING_CYPRIOT_BOTTOM, 0 }
735 { TA_BLUE_STRING_CYPRIOT_SMALL, TA_BLUE_PROPERTY_LATIN_TOP }
736 { TA_BLUE_STRING_CYPRIOT_SMALL, 0 }
737 { TA_BLUE_STRING_MAX, 0 }
739 TA_BLUE_STRINGSET_CYRL
740 { TA_BLUE_STRING_CYRILLIC_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
741 { TA_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM, 0 }
742 { TA_BLUE_STRING_CYRILLIC_SMALL, TA_BLUE_PROPERTY_LATIN_TOP |
743 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
744 { TA_BLUE_STRING_CYRILLIC_SMALL, 0 }
745 { TA_BLUE_STRING_CYRILLIC_SMALL_DESCENDER, 0 }
746 { TA_BLUE_STRING_MAX, 0 }
748 TA_BLUE_STRINGSET_DEVA
749 { TA_BLUE_STRING_DEVANAGARI_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
750 { TA_BLUE_STRING_DEVANAGARI_HEAD, TA_BLUE_PROPERTY_LATIN_TOP }
751 { TA_BLUE_STRING_DEVANAGARI_BASE, TA_BLUE_PROPERTY_LATIN_TOP |
752 TA_BLUE_PROPERTY_LATIN_NEUTRAL |
753 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
754 { TA_BLUE_STRING_DEVANAGARI_BASE, 0 }
755 { TA_BLUE_STRING_DEVANAGARI_BOTTOM, 0 }
756 { TA_BLUE_STRING_MAX, 0 }
758 TA_BLUE_STRINGSET_DSRT
759 { TA_BLUE_STRING_DESERET_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
760 { TA_BLUE_STRING_DESERET_CAPITAL_BOTTOM, 0 }
761 { TA_BLUE_STRING_DESERET_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
762 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
763 { TA_BLUE_STRING_DESERET_SMALL_BOTTOM, 0 }
764 { TA_BLUE_STRING_MAX, 0 }
766 TA_BLUE_STRINGSET_ETHI
767 { TA_BLUE_STRING_ETHIOPIC_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
768 { TA_BLUE_STRING_ETHIOPIC_BOTTOM, 0 }
769 { TA_BLUE_STRING_MAX, 0 }
771 TA_BLUE_STRINGSET_GEOR
772 { TA_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
773 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
774 { TA_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM, 0 }
775 { TA_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
776 { TA_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER, 0 }
777 { TA_BLUE_STRING_GEORGIAN_MTAVRULI_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
778 { TA_BLUE_STRING_GEORGIAN_MTAVRULI_BOTTOM, 0 }
779 { TA_BLUE_STRING_MAX, 0 }
781 TA_BLUE_STRINGSET_GEOK
782 { TA_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
783 { TA_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM, 0 }
784 { TA_BLUE_STRING_GEORGIAN_NUSKHURI_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
785 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
786 { TA_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM, 0 }
787 { TA_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
788 { TA_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER, 0 }
789 { TA_BLUE_STRING_MAX, 0 }
791 TA_BLUE_STRINGSET_GLAG
792 { TA_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
793 { TA_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM, 0 }
794 { TA_BLUE_STRING_GLAGOLITIC_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
795 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
796 { TA_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM, 0 }
797 { TA_BLUE_STRING_MAX, 0 }
799 TA_BLUE_STRINGSET_GOTH
800 { TA_BLUE_STRING_GOTHIC_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
801 { TA_BLUE_STRING_GOTHIC_BOTTOM, 0 }
802 { TA_BLUE_STRING_MAX, 0 }
804 TA_BLUE_STRINGSET_GREK
805 { TA_BLUE_STRING_GREEK_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
806 { TA_BLUE_STRING_GREEK_CAPITAL_BOTTOM, 0 }
807 { TA_BLUE_STRING_GREEK_SMALL_BETA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
808 { TA_BLUE_STRING_GREEK_SMALL, TA_BLUE_PROPERTY_LATIN_TOP |
809 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
810 { TA_BLUE_STRING_GREEK_SMALL, 0 }
811 { TA_BLUE_STRING_GREEK_SMALL_DESCENDER, 0 }
812 { TA_BLUE_STRING_MAX, 0 }
814 TA_BLUE_STRINGSET_GUJR
815 { TA_BLUE_STRING_GUJARATI_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
816 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
817 { TA_BLUE_STRING_GUJARATI_BOTTOM, 0 }
818 { TA_BLUE_STRING_GUJARATI_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
819 { TA_BLUE_STRING_GUJARATI_DESCENDER, 0 }
820 { TA_BLUE_STRING_GUJARATI_DIGIT_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
821 { TA_BLUE_STRING_MAX, 0 }
823 TA_BLUE_STRINGSET_GURU
824 { TA_BLUE_STRING_GURMUKHI_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
825 { TA_BLUE_STRING_GURMUKHI_HEAD, TA_BLUE_PROPERTY_LATIN_TOP }
826 { TA_BLUE_STRING_GURMUKHI_BASE, TA_BLUE_PROPERTY_LATIN_TOP |
827 TA_BLUE_PROPERTY_LATIN_NEUTRAL |
828 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
829 { TA_BLUE_STRING_GURMUKHI_BOTTOM, 0 }
830 { TA_BLUE_STRING_GURMUKHI_DIGIT_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
831 { TA_BLUE_STRING_MAX, 0 }
833 TA_BLUE_STRINGSET_HEBR
834 { TA_BLUE_STRING_HEBREW_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
835 TA_BLUE_PROPERTY_LATIN_LONG }
836 { TA_BLUE_STRING_HEBREW_BOTTOM, 0 }
837 { TA_BLUE_STRING_HEBREW_DESCENDER, 0 }
838 { TA_BLUE_STRING_MAX, 0 }
840 TA_BLUE_STRINGSET_HMNP
841 { TA_BLUE_STRING_HMNP_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
842 { TA_BLUE_STRING_HMNP_BOTTOM, 0 }
843 { TA_BLUE_STRING_MAX, 0 }
845 TA_BLUE_STRINGSET_KNDA
846 { TA_BLUE_STRING_KANNADA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
847 { TA_BLUE_STRING_KANNADA_BOTTOM, 0 }
848 { TA_BLUE_STRING_MAX, 0 }
850 TA_BLUE_STRINGSET_KALI
851 { TA_BLUE_STRING_KAYAH_LI_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
852 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
853 { TA_BLUE_STRING_KAYAH_LI_BOTTOM, 0 }
854 { TA_BLUE_STRING_KAYAH_LI_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
855 { TA_BLUE_STRING_KAYAH_LI_DESCENDER, 0 }
856 { TA_BLUE_STRING_KAYAH_LI_LARGE_DESCENDER, 0 }
857 { TA_BLUE_STRING_MAX, 0 }
859 TA_BLUE_STRINGSET_KHMR
860 { TA_BLUE_STRING_KHMER_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
861 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
862 { TA_BLUE_STRING_KHMER_SUBSCRIPT_TOP, TA_BLUE_PROPERTY_LATIN_SUB_TOP }
863 { TA_BLUE_STRING_KHMER_BOTTOM, 0 }
864 { TA_BLUE_STRING_KHMER_DESCENDER, 0 }
865 { TA_BLUE_STRING_KHMER_LARGE_DESCENDER, 0 }
866 { TA_BLUE_STRING_MAX, 0 }
868 TA_BLUE_STRINGSET_KHMS
869 { TA_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
870 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
871 { TA_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM, 0 }
872 { TA_BLUE_STRING_MAX, 0 }
874 TA_BLUE_STRINGSET_LAO
875 { TA_BLUE_STRING_LAO_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
876 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
877 { TA_BLUE_STRING_LAO_BOTTOM, 0 }
878 { TA_BLUE_STRING_LAO_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
879 { TA_BLUE_STRING_LAO_LARGE_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
880 { TA_BLUE_STRING_LAO_DESCENDER, 0 }
881 { TA_BLUE_STRING_MAX, 0 }
883 TA_BLUE_STRINGSET_LATN
884 { TA_BLUE_STRING_LATIN_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
885 { TA_BLUE_STRING_LATIN_CAPITAL_BOTTOM, 0 }
886 { TA_BLUE_STRING_LATIN_SMALL_F_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
887 { TA_BLUE_STRING_LATIN_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
888 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
889 { TA_BLUE_STRING_LATIN_SMALL_BOTTOM, 0 }
890 { TA_BLUE_STRING_LATIN_SMALL_DESCENDER, 0 }
891 { TA_BLUE_STRING_MAX, 0 }
893 TA_BLUE_STRINGSET_LATB
894 { TA_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
895 { TA_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM, 0 }
896 { TA_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
897 { TA_BLUE_STRING_LATIN_SUBS_SMALL, TA_BLUE_PROPERTY_LATIN_TOP |
898 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
899 { TA_BLUE_STRING_LATIN_SUBS_SMALL, 0 }
900 { TA_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER, 0 }
901 { TA_BLUE_STRING_MAX, 0 }
903 TA_BLUE_STRINGSET_LATP
904 { TA_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
905 { TA_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM, 0 }
906 { TA_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
907 { TA_BLUE_STRING_LATIN_SUPS_SMALL, TA_BLUE_PROPERTY_LATIN_TOP |
908 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
909 { TA_BLUE_STRING_LATIN_SUPS_SMALL, 0 }
910 { TA_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER, 0 }
911 { TA_BLUE_STRING_MAX, 0 }
913 TA_BLUE_STRINGSET_LISU
914 { TA_BLUE_STRING_LISU_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
915 { TA_BLUE_STRING_LISU_BOTTOM, 0 }
916 { TA_BLUE_STRING_MAX, 0 }
918 TA_BLUE_STRINGSET_MLYM
919 { TA_BLUE_STRING_MALAYALAM_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
920 { TA_BLUE_STRING_MALAYALAM_BOTTOM, 0 }
921 { TA_BLUE_STRING_MAX, 0 }
923 TA_BLUE_STRINGSET_MEDF
924 { TA_BLUE_STRING_MEDEFAIDRIN_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
925 { TA_BLUE_STRING_MEDEFAIDRIN_CAPITAL_BOTTOM, 0 }
926 { TA_BLUE_STRING_MEDEFAIDRIN_SMALL_F_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
927 { TA_BLUE_STRING_MEDEFAIDRIN_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
928 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
929 { TA_BLUE_STRING_MEDEFAIDRIN_SMALL_BOTTOM, 0 }
930 { TA_BLUE_STRING_MEDEFAIDRIN_SMALL_DESCENDER, 0 }
931 { TA_BLUE_STRING_MEDEFAIDRIN_DIGIT_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
932 { TA_BLUE_STRING_MAX, 0 }
934 TA_BLUE_STRINGSET_MONG
935 { TA_BLUE_STRING_MONGOLIAN_TOP_BASE, TA_BLUE_PROPERTY_LATIN_TOP }
936 { TA_BLUE_STRING_MONGOLIAN_BOTTOM_BASE, 0 }
937 { TA_BLUE_STRING_MAX, 0 }
939 TA_BLUE_STRINGSET_MYMR
940 { TA_BLUE_STRING_MYANMAR_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
941 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
942 { TA_BLUE_STRING_MYANMAR_BOTTOM, 0 }
943 { TA_BLUE_STRING_MYANMAR_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
944 { TA_BLUE_STRING_MYANMAR_DESCENDER, 0 }
945 { TA_BLUE_STRING_MAX, 0 }
947 TA_BLUE_STRINGSET_NKOO
948 { TA_BLUE_STRING_NKO_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
949 { TA_BLUE_STRING_NKO_BOTTOM, 0 }
950 { TA_BLUE_STRING_NKO_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
951 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
952 { TA_BLUE_STRING_NKO_SMALL_BOTTOM, 0 }
953 { TA_BLUE_STRING_MAX, 0 }
955 TA_BLUE_STRINGSET_NONE
956 { TA_BLUE_STRING_MAX, 0 }
958 TA_BLUE_STRINGSET_OLCK
959 { TA_BLUE_STRING_OL_CHIKI, TA_BLUE_PROPERTY_LATIN_TOP }
960 { TA_BLUE_STRING_OL_CHIKI, 0 }
961 { TA_BLUE_STRING_MAX, 0 }
963 TA_BLUE_STRINGSET_ORKH
964 { TA_BLUE_STRING_OLD_TURKIC_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
965 { TA_BLUE_STRING_OLD_TURKIC_BOTTOM, 0 }
966 { TA_BLUE_STRING_MAX, 0 }
968 TA_BLUE_STRINGSET_OSGE
969 { TA_BLUE_STRING_OSAGE_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
970 { TA_BLUE_STRING_OSAGE_CAPITAL_BOTTOM, 0 }
971 { TA_BLUE_STRING_OSAGE_CAPITAL_DESCENDER, 0 }
972 { TA_BLUE_STRING_OSAGE_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
973 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
974 { TA_BLUE_STRING_OSAGE_SMALL_BOTTOM, 0 }
975 { TA_BLUE_STRING_OSAGE_SMALL_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
976 { TA_BLUE_STRING_OSAGE_SMALL_DESCENDER, 0 }
977 { TA_BLUE_STRING_MAX, 0 }
979 TA_BLUE_STRINGSET_OSMA
980 { TA_BLUE_STRING_OSMANYA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
981 { TA_BLUE_STRING_OSMANYA_BOTTOM, 0 }
982 { TA_BLUE_STRING_MAX, 0 }
984 TA_BLUE_STRINGSET_ROHG
985 { TA_BLUE_STRING_ROHINGYA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
986 { TA_BLUE_STRING_ROHINGYA_BOTTOM, 0 }
987 { TA_BLUE_STRING_ROHINGYA_JOIN, TA_BLUE_PROPERTY_LATIN_NEUTRAL }
988 { TA_BLUE_STRING_MAX, 0 }
990 TA_BLUE_STRINGSET_SAUR
991 { TA_BLUE_STRING_SAURASHTRA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
992 { TA_BLUE_STRING_SAURASHTRA_BOTTOM, 0 }
993 { TA_BLUE_STRING_MAX, 0 }
995 TA_BLUE_STRINGSET_SHAW
996 { TA_BLUE_STRING_SHAVIAN_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
997 { TA_BLUE_STRING_SHAVIAN_BOTTOM, 0 }
998 { TA_BLUE_STRING_SHAVIAN_DESCENDER, 0 }
999 { TA_BLUE_STRING_SHAVIAN_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
1000 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
1001 { TA_BLUE_STRING_SHAVIAN_SMALL_BOTTOM, 0 }
1002 { TA_BLUE_STRING_MAX, 0 }
1004 TA_BLUE_STRINGSET_SINH
1005 { TA_BLUE_STRING_SINHALA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
1006 { TA_BLUE_STRING_SINHALA_BOTTOM, 0 }
1007 { TA_BLUE_STRING_SINHALA_DESCENDER, 0 }
1008 { TA_BLUE_STRING_MAX, 0 }
1010 TA_BLUE_STRINGSET_SUND
1011 { TA_BLUE_STRING_SUNDANESE_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
1012 { TA_BLUE_STRING_SUNDANESE_BOTTOM, 0 }
1013 { TA_BLUE_STRING_SUNDANESE_DESCENDER, 0 }
1014 { TA_BLUE_STRING_MAX, 0 }
1016 TA_BLUE_STRINGSET_TAML
1017 { TA_BLUE_STRING_TAMIL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
1018 { TA_BLUE_STRING_TAMIL_BOTTOM, 0 }
1019 { TA_BLUE_STRING_MAX, 0 }
1021 TA_BLUE_STRINGSET_TAVT
1022 { TA_BLUE_STRING_TAI_VIET_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
1023 { TA_BLUE_STRING_TAI_VIET_BOTTOM, 0 }
1024 { TA_BLUE_STRING_MAX, 0 }
1026 TA_BLUE_STRINGSET_TELU
1027 { TA_BLUE_STRING_TELUGU_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
1028 { TA_BLUE_STRING_TELUGU_BOTTOM, 0 }
1029 { TA_BLUE_STRING_MAX, 0 }
1031 TA_BLUE_STRINGSET_THAI
1032 { TA_BLUE_STRING_THAI_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
1033 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
1034 { TA_BLUE_STRING_THAI_BOTTOM, 0 }
1035 { TA_BLUE_STRING_THAI_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
1036 { TA_BLUE_STRING_THAI_LARGE_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
1037 { TA_BLUE_STRING_THAI_DESCENDER, 0 }
1038 { TA_BLUE_STRING_THAI_LARGE_DESCENDER, 0 }
1039 { TA_BLUE_STRING_THAI_DIGIT_TOP, 0 }
1040 { TA_BLUE_STRING_MAX, 0 }
1042 TA_BLUE_STRINGSET_TFNG
1043 { TA_BLUE_STRING_TIFINAGH, TA_BLUE_PROPERTY_LATIN_TOP }
1044 { TA_BLUE_STRING_TIFINAGH, 0 }
1045 { TA_BLUE_STRING_MAX, 0 }
1047 TA_BLUE_STRINGSET_VAII
1048 { TA_BLUE_STRING_VAI_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
1049 { TA_BLUE_STRING_VAI_BOTTOM, 0 }
1050 { TA_BLUE_STRING_MAX, 0 }
1052 TA_BLUE_STRINGSET_YEZI
1053 { TA_BLUE_STRING_YEZIDI_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
1054 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
1055 { TA_BLUE_STRING_YEZIDI_BOTTOM, 0 }
1056 { TA_BLUE_STRING_YEZIDI_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
1057 { TA_BLUE_STRING_YEZIDI_DESCENDER, 0 }
1058 { TA_BLUE_STRING_MAX, 0 }
1060 // END