3 // Auto
-fitter
data for blue strings.
5 // Copyright
(C
) 2013-2020 by Werner Lemberg.
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
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
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 the 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
82 TA_BLUE_STRING_ADLAM_CAPITAL_BOTTOM
84 TA_BLUE_STRING_ADLAM_SMALL_TOP
86 TA_BLUE_STRING_ADLAM_SMALL_BOTTOM
89 TA_BLUE_STRING_ARABIC_TOP
91 TA_BLUE_STRING_ARABIC_BOTTOM
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
101 TA_BLUE_STRING_ARMENIAN_CAPITAL_TOP
103 TA_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM
105 TA_BLUE_STRING_ARMENIAN_SMALL_ASCENDER
107 TA_BLUE_STRING_ARMENIAN_SMALL_TOP
109 TA_BLUE_STRING_ARMENIAN_SMALL_BOTTOM
111 TA_BLUE_STRING_ARMENIAN_SMALL_DESCENDER
114 TA_BLUE_STRING_AVESTAN_TOP
116 TA_BLUE_STRING_AVESTAN_BOTTOM
119 TA_BLUE_STRING_BAMUM_TOP
121 TA_BLUE_STRING_BAMUM_BOTTOM
124 TA_BLUE_STRING_BENGALI_BASE
126 TA_BLUE_STRING_BENGALI_TOP
128 TA_BLUE_STRING_BENGALI_HEAD
131 TA_BLUE_STRING_BUHID_TOP
133 TA_BLUE_STRING_BUHID_LARGE
135 TA_BLUE_STRING_BUHID_SMALL
137 TA_BLUE_STRING_BUHID_BOTTOM
140 TA_BLUE_STRING_CANADIAN_SYLLABICS_TOP
142 TA_BLUE_STRING_CANADIAN_SYLLABICS_BOTTOM
144 TA_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_TOP
146 TA_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_BOTTOM
148 TA_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_TOP
150 TA_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_BOTTOM
153 TA_BLUE_STRING_CARIAN_TOP
155 TA_BLUE_STRING_CARIAN_BOTTOM
158 TA_BLUE_STRING_CHAKMA_TOP
160 TA_BLUE_STRING_CHAKMA_BOTTOM
162 TA_BLUE_STRING_CHAKMA_DESCENDER
163 "𑄖𑄳𑄢 𑄘𑄳𑄢 𑄙𑄳𑄢 𑄤𑄳𑄢 𑄥𑄳𑄢"
165 TA_BLUE_STRING_CHEROKEE_CAPITAL
167 TA_BLUE_STRING_CHEROKEE_SMALL_ASCENDER
169 TA_BLUE_STRING_CHEROKEE_SMALL
171 TA_BLUE_STRING_CHEROKEE_SMALL_DESCENDER
174 TA_BLUE_STRING_COPTIC_CAPITAL_TOP
176 TA_BLUE_STRING_COPTIC_CAPITAL_BOTTOM
178 TA_BLUE_STRING_COPTIC_SMALL_TOP
180 TA_BLUE_STRING_COPTIC_SMALL_BOTTOM
183 TA_BLUE_STRING_CYPRIOT_TOP
185 TA_BLUE_STRING_CYPRIOT_BOTTOM
187 TA_BLUE_STRING_CYPRIOT_SMALL
190 TA_BLUE_STRING_CYRILLIC_CAPITAL_TOP
192 TA_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM
194 TA_BLUE_STRING_CYRILLIC_SMALL
196 TA_BLUE_STRING_CYRILLIC_SMALL_DESCENDER
199 TA_BLUE_STRING_DESERET_CAPITAL_TOP
201 TA_BLUE_STRING_DESERET_CAPITAL_BOTTOM
203 TA_BLUE_STRING_DESERET_SMALL_TOP
205 TA_BLUE_STRING_DESERET_SMALL_BOTTOM
208 TA_BLUE_STRING_DEVANAGARI_BASE
210 TA_BLUE_STRING_DEVANAGARI_TOP
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
217 TA_BLUE_STRING_DEVANAGARI_BOTTOM
220 TA_BLUE_STRING_ETHIOPIC_TOP
222 TA_BLUE_STRING_ETHIOPIC_BOTTOM
225 TA_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP
227 TA_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM
229 TA_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER
231 TA_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER
234 TA_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP
236 TA_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM
239 TA_BLUE_STRING_GEORGIAN_NUSKHURI_TOP
241 TA_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM
243 TA_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER
245 TA_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER
248 TA_BLUE_STRING_GEORGIAN_MTAVRULI_TOP
250 TA_BLUE_STRING_GEORGIAN_MTAVRULI_BOTTOM
253 TA_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP
255 TA_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM
257 TA_BLUE_STRING_GLAGOLITIC_SMALL_TOP
259 TA_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM
262 TA_BLUE_STRING_GOTHIC_TOP
264 TA_BLUE_STRING_GOTHIC_BOTTOM
267 TA_BLUE_STRING_GREEK_CAPITAL_TOP
269 TA_BLUE_STRING_GREEK_CAPITAL_BOTTOM
271 TA_BLUE_STRING_GREEK_SMALL_BETA_TOP
273 TA_BLUE_STRING_GREEK_SMALL
275 TA_BLUE_STRING_GREEK_SMALL_DESCENDER
278 TA_BLUE_STRING_GUJARATI_TOP
280 TA_BLUE_STRING_GUJARATI_BOTTOM
282 TA_BLUE_STRING_GUJARATI_ASCENDER
283 "ઈ ઊ િ ી લી શ્ચિ જિ સી"
284 TA_BLUE_STRING_GUJARATI_DESCENDER
286 TA_BLUE_STRING_GUJARATI_DIGIT_TOP
289 TA_BLUE_STRING_GURMUKHI_BASE
291 TA_BLUE_STRING_GURMUKHI_HEAD
293 TA_BLUE_STRING_GURMUKHI_TOP
295 TA_BLUE_STRING_GURMUKHI_BOTTOM
297 TA_BLUE_STRING_GURMUKHI_DIGIT_TOP
300 TA_BLUE_STRING_HEBREW_TOP
302 TA_BLUE_STRING_HEBREW_BOTTOM
304 TA_BLUE_STRING_HEBREW_DESCENDER
307 TA_BLUE_STRING_HMNP_TOP
309 TA_BLUE_STRING_HMNP_BOTTOM
312 TA_BLUE_STRING_KANNADA_TOP
313 "ಇ ಊ ಐ ಣ ಸಾ ನಾ ದಾ ರಾ"
314 TA_BLUE_STRING_KANNADA_BOTTOM
317 TA_BLUE_STRING_KAYAH_LI_TOP
319 TA_BLUE_STRING_KAYAH_LI_BOTTOM
321 TA_BLUE_STRING_KAYAH_LI_ASCENDER
323 TA_BLUE_STRING_KAYAH_LI_DESCENDER
325 TA_BLUE_STRING_KAYAH_LI_LARGE_DESCENDER
328 TA_BLUE_STRING_KHMER_TOP
330 TA_BLUE_STRING_KHMER_SUBSCRIPT_TOP
332 TA_BLUE_STRING_KHMER_BOTTOM
334 TA_BLUE_STRING_KHMER_DESCENDER
336 TA_BLUE_STRING_KHMER_LARGE_DESCENDER
337 "ន្ត្រៃ ង្ខ្យ ក្បៀ ច្រៀ ន្តឿ ល្បឿ"
339 TA_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP
341 TA_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM
344 TA_BLUE_STRING_LAO_TOP
346 TA_BLUE_STRING_LAO_BOTTOM
348 TA_BLUE_STRING_LAO_ASCENDER
350 TA_BLUE_STRING_LAO_LARGE_ASCENDER
352 TA_BLUE_STRING_LAO_DESCENDER
355 TA_BLUE_STRING_LATIN_CAPITAL_TOP
357 TA_BLUE_STRING_LATIN_CAPITAL_BOTTOM
359 TA_BLUE_STRING_LATIN_SMALL_F_TOP
361 TA_BLUE_STRING_LATIN_SMALL_TOP
363 TA_BLUE_STRING_LATIN_SMALL_BOTTOM
365 TA_BLUE_STRING_LATIN_SMALL_DESCENDER
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
373 TA_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM
375 TA_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP
377 TA_BLUE_STRING_LATIN_SUBS_SMALL
379 TA_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER
382 TA_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP
384 TA_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM
386 TA_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP
388 TA_BLUE_STRING_LATIN_SUPS_SMALL
390 TA_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER
393 TA_BLUE_STRING_LISU_TOP
395 TA_BLUE_STRING_LISU_BOTTOM
398 TA_BLUE_STRING_MALAYALAM_TOP
399 "ഒ ട ഠ റ ച പ ച്ച പ്പ"
400 TA_BLUE_STRING_MALAYALAM_BOTTOM
403 TA_BLUE_STRING_MONGOLIAN_TOP_BASE
404 "ᠳ ᠴ ᠶ ᠽ ᡂ ᡊ ᡡ ᡳ"
405 TA_BLUE_STRING_MONGOLIAN_BOTTOM_BASE
408 TA_BLUE_STRING_MYANMAR_TOP
410 TA_BLUE_STRING_MYANMAR_BOTTOM
412 TA_BLUE_STRING_MYANMAR_ASCENDER
414 TA_BLUE_STRING_MYANMAR_DESCENDER
417 TA_BLUE_STRING_NKO_TOP
419 TA_BLUE_STRING_NKO_BOTTOM
421 TA_BLUE_STRING_NKO_SMALL_TOP
423 TA_BLUE_STRING_NKO_SMALL_BOTTOM
426 TA_BLUE_STRING_OL_CHIKI
429 TA_BLUE_STRING_OLD_TURKIC_TOP
431 TA_BLUE_STRING_OLD_TURKIC_BOTTOM
434 TA_BLUE_STRING_OSAGE_CAPITAL_TOP
436 TA_BLUE_STRING_OSAGE_CAPITAL_BOTTOM
438 TA_BLUE_STRING_OSAGE_CAPITAL_DESCENDER
440 TA_BLUE_STRING_OSAGE_SMALL_TOP
442 TA_BLUE_STRING_OSAGE_SMALL_BOTTOM
444 TA_BLUE_STRING_OSAGE_SMALL_ASCENDER
446 TA_BLUE_STRING_OSAGE_SMALL_DESCENDER
449 TA_BLUE_STRING_OSMANYA_TOP
451 TA_BLUE_STRING_OSMANYA_BOTTOM
454 TA_BLUE_STRING_ROHINGYA_TOP
456 TA_BLUE_STRING_ROHINGYA_BOTTOM
458 TA_BLUE_STRING_ROHINGYA_JOIN
461 TA_BLUE_STRING_SAURASHTRA_TOP
463 TA_BLUE_STRING_SAURASHTRA_BOTTOM
466 TA_BLUE_STRING_SHAVIAN_TOP
468 TA_BLUE_STRING_SHAVIAN_BOTTOM
470 TA_BLUE_STRING_SHAVIAN_DESCENDER
472 TA_BLUE_STRING_SHAVIAN_SMALL_TOP
474 TA_BLUE_STRING_SHAVIAN_SMALL_BOTTOM
477 TA_BLUE_STRING_SINHALA_TOP
479 TA_BLUE_STRING_SINHALA_BOTTOM
481 TA_BLUE_STRING_SINHALA_DESCENDER
482 "ද ඳ උ ල තූ තු බු දු"
484 TA_BLUE_STRING_SUNDANESE_TOP
486 TA_BLUE_STRING_SUNDANESE_BOTTOM
488 TA_BLUE_STRING_SUNDANESE_DESCENDER
491 TA_BLUE_STRING_TAI_VIET_TOP
493 TA_BLUE_STRING_TAI_VIET_BOTTOM
496 TA_BLUE_STRING_TAMIL_TOP
498 TA_BLUE_STRING_TAMIL_BOTTOM
501 TA_BLUE_STRING_TELUGU_TOP
503 TA_BLUE_STRING_TELUGU_BOTTOM
506 TA_BLUE_STRING_THAI_TOP
508 TA_BLUE_STRING_THAI_BOTTOM
510 TA_BLUE_STRING_THAI_ASCENDER
512 TA_BLUE_STRING_THAI_LARGE_ASCENDER
514 TA_BLUE_STRING_THAI_DESCENDER
516 TA_BLUE_STRING_THAI_LARGE_DESCENDER
518 TA_BLUE_STRING_THAI_DIGIT_TOP
521 TA_BLUE_STRING_TIFINAGH
524 TA_BLUE_STRING_VAI_TOP
526 TA_BLUE_STRING_VAI_BOTTOM
530 // The blue zone stringsets
, as used
in the script styles
, cf. `tastyles.h
'.
532 // The TA_BLUE_PROPERTY_XXX flags are defined in `tablue.h'; here some
535 // A blue zone
in general is defined
by a reference
and an overshoot line.
536 // During the hinting process
, all coordinate values between those two lines
537 // are
set equal
to the reference value
, provided that the blue zone is
not
538 // wider than
0.75 pixels
(otherwise the blue zone gets ignored
). All
539 // entries must have `TA_BLUE_STRING_MAX
' as the final line.
541 // During the glyph analysis, edges are sorted from bottom to top, and then
542 // sequentially checked, edge by edge, against the blue zones in the order
549 // Characters in a blue string are automatically classified as having a flat
550 // (reference) or a round (overshoot) extremum. The blue zone is then set
551 // up by the mean values of all flat extrema and all round extrema,
552 // respectively. Only horizontal blue zones (i.e., adjusting vertical
553 // coordinate values) are supported.
555 // Some scripts like Khmer need character composition to get all necessary
556 // blue zones, since Unicode only provides an abstract data model that
557 // doesn't represent all possible glyph shapes. For such character
558 // clusters
, the HarfBuzz library is used
to convert them into the
559 // corresponding glyphs. The largest glyph element
(where `largest
' can be
560 // either `largest ascender' or `largest descender
') then defines the
561 // corresponding flat or round extremum.
563 // For the latin auto-hinter, the overshoot should be larger than the
564 // reference for top zones, and vice versa for bottom zones.
567 // Take the maximum flat and round coordinate values of the blue string
568 // characters for computing the blue zone's reference
and overshoot
571 // If
not set, take the minimum values.
573 // Mutually exclusive with `LATIN_SUB_TOP
'.
576 // For all glyphs of a character cluster, compute the maximum flat
577 // and round coordinate values of each component, then take the
578 // smallest of the maximum values. The idea is to get the top of
579 // subscript glyphs, as used in Khmer, for example. Note that
580 // this mechanism doesn't work for ordinary ligatures.
582 // This flags indicates a secondary blue zone
: It gets removed
if
583 // there is a non
-LATIN_SUB_TOP blue zone at the same coordinate
584 // value
(after scaling
).
586 // Mutually exclusive with `LATIN_TOP
'.
589 // Ignore round extrema and define the blue zone with flat values only.
590 // Both top and bottom of contours can match. This is useful for
591 // scripts like Devanagari where vowel signs attach to the base
592 // character and are implemented as components of composite glyphs.
594 // If not set, both round and flat extrema are taken into account.
595 // Additionally, only the top or the bottom of a contour can match,
596 // depending on the LATIN_TOP flag.
598 // Neutral blue zones should always follow non-neutral blue zones.
601 // Scale all glyphs vertically from the corresponding script to make the
602 // reference line of this blue zone align on the grid. The scaling
603 // takes place before all other blue zones get aligned to the grid.
604 // Only one blue character string of a script style can have this flag.
607 // Apply an additional constraint for blue zone values: Don't
608 // necessarily use the extremum as
-is but a segment of the topmost
(or
609 // bottommost
) contour that is longer than a heuristic threshold
, and
610 // which is
not too far away vertically
from the real extremum. This
611 // ensures that small bumps
in the outline are ignored
(for example
, the
612 // `vertical serifs
' found in many Hebrew glyph designs).
614 // The segment must be at least EM/25 font units long, and the distance
615 // to the extremum must be smaller than EM/4.
617 TA_BLUE_STRINGSET_ENUM TA_BLUE_STRINGSETS_ARRAY TA_BLUE_STRINGSET_MAX_LEN:
619 TA_BLUE_STRINGSET_ADLM
620 { TA_BLUE_STRING_ADLAM_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
621 { TA_BLUE_STRING_ADLAM_CAPITAL_BOTTOM, 0 }
622 { TA_BLUE_STRING_ADLAM_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
623 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
624 { TA_BLUE_STRING_ADLAM_SMALL_BOTTOM, 0 }
625 { TA_BLUE_STRING_MAX, 0 }
627 TA_BLUE_STRINGSET_ARAB
628 { TA_BLUE_STRING_ARABIC_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
629 { TA_BLUE_STRING_ARABIC_BOTTOM, 0 }
630 { TA_BLUE_STRING_ARABIC_JOIN, TA_BLUE_PROPERTY_LATIN_NEUTRAL }
631 { TA_BLUE_STRING_MAX, 0 }
633 TA_BLUE_STRINGSET_ARMN
634 { TA_BLUE_STRING_ARMENIAN_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
635 { TA_BLUE_STRING_ARMENIAN_CAPITAL_BOTTOM, 0 }
636 { TA_BLUE_STRING_ARMENIAN_SMALL_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
637 { TA_BLUE_STRING_ARMENIAN_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
638 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
639 { TA_BLUE_STRING_ARMENIAN_SMALL_BOTTOM, 0 }
640 { TA_BLUE_STRING_ARMENIAN_SMALL_DESCENDER, 0 }
641 { TA_BLUE_STRING_MAX, 0 }
643 TA_BLUE_STRINGSET_AVST
644 { TA_BLUE_STRING_AVESTAN_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
645 { TA_BLUE_STRING_AVESTAN_BOTTOM, 0 }
646 { TA_BLUE_STRING_MAX, 0 }
648 TA_BLUE_STRINGSET_BAMU
649 { TA_BLUE_STRING_BAMUM_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
650 { TA_BLUE_STRING_BAMUM_BOTTOM, 0 }
651 { TA_BLUE_STRING_MAX, 0 }
653 TA_BLUE_STRINGSET_BENG
654 { TA_BLUE_STRING_BENGALI_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
655 { TA_BLUE_STRING_BENGALI_HEAD, TA_BLUE_PROPERTY_LATIN_TOP }
656 { TA_BLUE_STRING_BENGALI_BASE, TA_BLUE_PROPERTY_LATIN_TOP |
657 TA_BLUE_PROPERTY_LATIN_NEUTRAL |
658 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
659 { TA_BLUE_STRING_BENGALI_BASE, 0 }
660 { TA_BLUE_STRING_MAX, 0 }
662 TA_BLUE_STRINGSET_BUHD
663 { TA_BLUE_STRING_BUHID_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
664 { TA_BLUE_STRING_BUHID_LARGE, TA_BLUE_PROPERTY_LATIN_TOP }
665 { TA_BLUE_STRING_BUHID_SMALL, TA_BLUE_PROPERTY_LATIN_TOP |
666 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
667 { TA_BLUE_STRING_BUHID_BOTTOM, 0 }
668 { TA_BLUE_STRING_MAX, 0 }
670 TA_BLUE_STRINGSET_CAKM
671 { TA_BLUE_STRING_CHAKMA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
672 { TA_BLUE_STRING_CHAKMA_BOTTOM, 0 }
673 { TA_BLUE_STRING_CHAKMA_DESCENDER, 0 }
674 { TA_BLUE_STRING_MAX, 0 }
676 TA_BLUE_STRINGSET_CANS
677 { TA_BLUE_STRING_CANADIAN_SYLLABICS_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
678 { TA_BLUE_STRING_CANADIAN_SYLLABICS_BOTTOM, 0 }
679 { TA_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
680 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
681 { TA_BLUE_STRING_CANADIAN_SYLLABICS_SMALL_BOTTOM, 0 }
682 { TA_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
683 { TA_BLUE_STRING_CANADIAN_SYLLABICS_SUPS_BOTTOM, 0 }
684 { TA_BLUE_STRING_MAX, 0 }
686 TA_BLUE_STRINGSET_CARI
687 { TA_BLUE_STRING_CARIAN_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
688 { TA_BLUE_STRING_CARIAN_BOTTOM, 0 }
689 { TA_BLUE_STRING_MAX, 0 }
691 TA_BLUE_STRINGSET_CHER
692 { TA_BLUE_STRING_CHEROKEE_CAPITAL, TA_BLUE_PROPERTY_LATIN_TOP }
693 { TA_BLUE_STRING_CHEROKEE_CAPITAL, 0 }
694 { TA_BLUE_STRING_CHEROKEE_SMALL_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
695 { TA_BLUE_STRING_CHEROKEE_SMALL, TA_BLUE_PROPERTY_LATIN_TOP |
696 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
697 { TA_BLUE_STRING_CHEROKEE_SMALL, 0 }
698 { TA_BLUE_STRING_CHEROKEE_SMALL_DESCENDER, 0 }
699 { TA_BLUE_STRING_MAX, 0 }
701 TA_BLUE_STRINGSET_COPT
702 { TA_BLUE_STRING_COPTIC_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
703 { TA_BLUE_STRING_COPTIC_CAPITAL_BOTTOM, 0 }
704 { TA_BLUE_STRING_COPTIC_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
705 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
706 { TA_BLUE_STRING_COPTIC_SMALL_BOTTOM, 0 }
707 { TA_BLUE_STRING_MAX, 0 }
709 TA_BLUE_STRINGSET_CPRT
710 { TA_BLUE_STRING_CYPRIOT_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
711 { TA_BLUE_STRING_CYPRIOT_BOTTOM, 0 }
712 { TA_BLUE_STRING_CYPRIOT_SMALL, TA_BLUE_PROPERTY_LATIN_TOP }
713 { TA_BLUE_STRING_CYPRIOT_SMALL, 0 }
714 { TA_BLUE_STRING_MAX, 0 }
716 TA_BLUE_STRINGSET_CYRL
717 { TA_BLUE_STRING_CYRILLIC_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
718 { TA_BLUE_STRING_CYRILLIC_CAPITAL_BOTTOM, 0 }
719 { TA_BLUE_STRING_CYRILLIC_SMALL, TA_BLUE_PROPERTY_LATIN_TOP |
720 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
721 { TA_BLUE_STRING_CYRILLIC_SMALL, 0 }
722 { TA_BLUE_STRING_CYRILLIC_SMALL_DESCENDER, 0 }
723 { TA_BLUE_STRING_MAX, 0 }
725 TA_BLUE_STRINGSET_DEVA
726 { TA_BLUE_STRING_DEVANAGARI_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
727 { TA_BLUE_STRING_DEVANAGARI_HEAD, TA_BLUE_PROPERTY_LATIN_TOP }
728 { TA_BLUE_STRING_DEVANAGARI_BASE, TA_BLUE_PROPERTY_LATIN_TOP |
729 TA_BLUE_PROPERTY_LATIN_NEUTRAL |
730 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
731 { TA_BLUE_STRING_DEVANAGARI_BASE, 0 }
732 { TA_BLUE_STRING_DEVANAGARI_BOTTOM, 0 }
733 { TA_BLUE_STRING_MAX, 0 }
735 TA_BLUE_STRINGSET_DSRT
736 { TA_BLUE_STRING_DESERET_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
737 { TA_BLUE_STRING_DESERET_CAPITAL_BOTTOM, 0 }
738 { TA_BLUE_STRING_DESERET_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
739 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
740 { TA_BLUE_STRING_DESERET_SMALL_BOTTOM, 0 }
741 { TA_BLUE_STRING_MAX, 0 }
743 TA_BLUE_STRINGSET_ETHI
744 { TA_BLUE_STRING_ETHIOPIC_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
745 { TA_BLUE_STRING_ETHIOPIC_BOTTOM, 0 }
746 { TA_BLUE_STRING_MAX, 0 }
748 TA_BLUE_STRINGSET_GEOR
749 { TA_BLUE_STRING_GEORGIAN_MKHEDRULI_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
750 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
751 { TA_BLUE_STRING_GEORGIAN_MKHEDRULI_BOTTOM, 0 }
752 { TA_BLUE_STRING_GEORGIAN_MKHEDRULI_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
753 { TA_BLUE_STRING_GEORGIAN_MKHEDRULI_DESCENDER, 0 }
754 { TA_BLUE_STRING_GEORGIAN_MTAVRULI_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
755 { TA_BLUE_STRING_GEORGIAN_MTAVRULI_BOTTOM, 0 }
756 { TA_BLUE_STRING_MAX, 0 }
758 TA_BLUE_STRINGSET_GEOK
759 { TA_BLUE_STRING_GEORGIAN_ASOMTAVRULI_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
760 { TA_BLUE_STRING_GEORGIAN_ASOMTAVRULI_BOTTOM, 0 }
761 { TA_BLUE_STRING_GEORGIAN_NUSKHURI_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
762 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
763 { TA_BLUE_STRING_GEORGIAN_NUSKHURI_BOTTOM, 0 }
764 { TA_BLUE_STRING_GEORGIAN_NUSKHURI_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
765 { TA_BLUE_STRING_GEORGIAN_NUSKHURI_DESCENDER, 0 }
766 { TA_BLUE_STRING_MAX, 0 }
768 TA_BLUE_STRINGSET_GLAG
769 { TA_BLUE_STRING_GLAGOLITIC_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
770 { TA_BLUE_STRING_GLAGOLITIC_CAPITAL_BOTTOM, 0 }
771 { TA_BLUE_STRING_GLAGOLITIC_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
772 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
773 { TA_BLUE_STRING_GLAGOLITIC_SMALL_BOTTOM, 0 }
774 { TA_BLUE_STRING_MAX, 0 }
776 TA_BLUE_STRINGSET_GOTH
777 { TA_BLUE_STRING_GOTHIC_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
778 { TA_BLUE_STRING_GOTHIC_BOTTOM, 0 }
779 { TA_BLUE_STRING_MAX, 0 }
781 TA_BLUE_STRINGSET_GREK
782 { TA_BLUE_STRING_GREEK_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
783 { TA_BLUE_STRING_GREEK_CAPITAL_BOTTOM, 0 }
784 { TA_BLUE_STRING_GREEK_SMALL_BETA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
785 { TA_BLUE_STRING_GREEK_SMALL, TA_BLUE_PROPERTY_LATIN_TOP |
786 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
787 { TA_BLUE_STRING_GREEK_SMALL, 0 }
788 { TA_BLUE_STRING_GREEK_SMALL_DESCENDER, 0 }
789 { TA_BLUE_STRING_MAX, 0 }
791 TA_BLUE_STRINGSET_GUJR
792 { TA_BLUE_STRING_GUJARATI_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
793 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
794 { TA_BLUE_STRING_GUJARATI_BOTTOM, 0 }
795 { TA_BLUE_STRING_GUJARATI_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
796 { TA_BLUE_STRING_GUJARATI_DESCENDER, 0 }
797 { TA_BLUE_STRING_GUJARATI_DIGIT_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
798 { TA_BLUE_STRING_MAX, 0 }
800 TA_BLUE_STRINGSET_GURU
801 { TA_BLUE_STRING_GURMUKHI_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
802 { TA_BLUE_STRING_GURMUKHI_HEAD, TA_BLUE_PROPERTY_LATIN_TOP }
803 { TA_BLUE_STRING_GURMUKHI_BASE, TA_BLUE_PROPERTY_LATIN_TOP |
804 TA_BLUE_PROPERTY_LATIN_NEUTRAL |
805 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
806 { TA_BLUE_STRING_GURMUKHI_BOTTOM, 0 }
807 { TA_BLUE_STRING_GURMUKHI_DIGIT_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
808 { TA_BLUE_STRING_MAX, 0 }
810 TA_BLUE_STRINGSET_HEBR
811 { TA_BLUE_STRING_HEBREW_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
812 TA_BLUE_PROPERTY_LATIN_LONG }
813 { TA_BLUE_STRING_HEBREW_BOTTOM, 0 }
814 { TA_BLUE_STRING_HEBREW_DESCENDER, 0 }
815 { TA_BLUE_STRING_MAX, 0 }
817 TA_BLUE_STRINGSET_HMNP
818 { TA_BLUE_STRING_HMNP_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
819 { TA_BLUE_STRING_HMNP_BOTTOM, 0 }
820 { TA_BLUE_STRING_MAX, 0 }
822 TA_BLUE_STRINGSET_KALI
823 { TA_BLUE_STRING_KAYAH_LI_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
824 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
825 { TA_BLUE_STRING_KAYAH_LI_BOTTOM, 0 }
826 { TA_BLUE_STRING_KAYAH_LI_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
827 { TA_BLUE_STRING_KAYAH_LI_DESCENDER, 0 }
828 { TA_BLUE_STRING_KAYAH_LI_LARGE_DESCENDER, 0 }
829 { TA_BLUE_STRING_MAX, 0 }
831 TA_BLUE_STRINGSET_KNDA
832 { TA_BLUE_STRING_KANNADA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
833 { TA_BLUE_STRING_KANNADA_BOTTOM, 0 }
834 { TA_BLUE_STRING_MAX, 0 }
836 TA_BLUE_STRINGSET_KHMR
837 { TA_BLUE_STRING_KHMER_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
838 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
839 { TA_BLUE_STRING_KHMER_SUBSCRIPT_TOP, TA_BLUE_PROPERTY_LATIN_SUB_TOP }
840 { TA_BLUE_STRING_KHMER_BOTTOM, 0 }
841 { TA_BLUE_STRING_KHMER_DESCENDER, 0 }
842 { TA_BLUE_STRING_KHMER_LARGE_DESCENDER, 0 }
843 { TA_BLUE_STRING_MAX, 0 }
845 TA_BLUE_STRINGSET_KHMS
846 { TA_BLUE_STRING_KHMER_SYMBOLS_WAXING_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
847 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
848 { TA_BLUE_STRING_KHMER_SYMBOLS_WANING_BOTTOM, 0 }
849 { TA_BLUE_STRING_MAX, 0 }
851 TA_BLUE_STRINGSET_LAO
852 { TA_BLUE_STRING_LAO_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
853 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
854 { TA_BLUE_STRING_LAO_BOTTOM, 0 }
855 { TA_BLUE_STRING_LAO_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
856 { TA_BLUE_STRING_LAO_LARGE_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
857 { TA_BLUE_STRING_LAO_DESCENDER, 0 }
858 { TA_BLUE_STRING_MAX, 0 }
860 TA_BLUE_STRINGSET_LATN
861 { TA_BLUE_STRING_LATIN_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
862 { TA_BLUE_STRING_LATIN_CAPITAL_BOTTOM, 0 }
863 { TA_BLUE_STRING_LATIN_SMALL_F_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
864 { TA_BLUE_STRING_LATIN_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
865 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
866 { TA_BLUE_STRING_LATIN_SMALL_BOTTOM, 0 }
867 { TA_BLUE_STRING_LATIN_SMALL_DESCENDER, 0 }
868 { TA_BLUE_STRING_MAX, 0 }
870 TA_BLUE_STRINGSET_LATB
871 { TA_BLUE_STRING_LATIN_SUBS_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
872 { TA_BLUE_STRING_LATIN_SUBS_CAPITAL_BOTTOM, 0 }
873 { TA_BLUE_STRING_LATIN_SUBS_SMALL_F_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
874 { TA_BLUE_STRING_LATIN_SUBS_SMALL, TA_BLUE_PROPERTY_LATIN_TOP |
875 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
876 { TA_BLUE_STRING_LATIN_SUBS_SMALL, 0 }
877 { TA_BLUE_STRING_LATIN_SUBS_SMALL_DESCENDER, 0 }
878 { TA_BLUE_STRING_MAX, 0 }
880 TA_BLUE_STRINGSET_LATP
881 { TA_BLUE_STRING_LATIN_SUPS_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
882 { TA_BLUE_STRING_LATIN_SUPS_CAPITAL_BOTTOM, 0 }
883 { TA_BLUE_STRING_LATIN_SUPS_SMALL_F_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
884 { TA_BLUE_STRING_LATIN_SUPS_SMALL, TA_BLUE_PROPERTY_LATIN_TOP |
885 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
886 { TA_BLUE_STRING_LATIN_SUPS_SMALL, 0 }
887 { TA_BLUE_STRING_LATIN_SUPS_SMALL_DESCENDER, 0 }
888 { TA_BLUE_STRING_MAX, 0 }
890 TA_BLUE_STRINGSET_LISU
891 { TA_BLUE_STRING_LISU_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
892 { TA_BLUE_STRING_LISU_BOTTOM, 0 }
893 { TA_BLUE_STRING_MAX, 0 }
895 TA_BLUE_STRINGSET_MLYM
896 { TA_BLUE_STRING_MALAYALAM_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
897 { TA_BLUE_STRING_MALAYALAM_BOTTOM, 0 }
898 { TA_BLUE_STRING_MAX, 0 }
900 TA_BLUE_STRINGSET_MONG
901 { TA_BLUE_STRING_MONGOLIAN_TOP_BASE, TA_BLUE_PROPERTY_LATIN_TOP }
902 { TA_BLUE_STRING_MONGOLIAN_BOTTOM_BASE, 0 }
903 { TA_BLUE_STRING_MAX, 0 }
905 TA_BLUE_STRINGSET_MYMR
906 { TA_BLUE_STRING_MYANMAR_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
907 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
908 { TA_BLUE_STRING_MYANMAR_BOTTOM, 0 }
909 { TA_BLUE_STRING_MYANMAR_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
910 { TA_BLUE_STRING_MYANMAR_DESCENDER, 0 }
911 { TA_BLUE_STRING_MAX, 0 }
913 TA_BLUE_STRINGSET_NKOO
914 { TA_BLUE_STRING_NKO_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
915 { TA_BLUE_STRING_NKO_BOTTOM, 0 }
916 { TA_BLUE_STRING_NKO_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
917 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
918 { TA_BLUE_STRING_NKO_SMALL_BOTTOM, 0 }
919 { TA_BLUE_STRING_MAX, 0 }
921 TA_BLUE_STRINGSET_NONE
922 { TA_BLUE_STRING_MAX, 0 }
924 TA_BLUE_STRINGSET_OLCK
925 { TA_BLUE_STRING_OL_CHIKI, TA_BLUE_PROPERTY_LATIN_TOP }
926 { TA_BLUE_STRING_OL_CHIKI, 0 }
927 { TA_BLUE_STRING_MAX, 0 }
929 TA_BLUE_STRINGSET_ORKH
930 { TA_BLUE_STRING_OLD_TURKIC_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
931 { TA_BLUE_STRING_OLD_TURKIC_BOTTOM, 0 }
932 { TA_BLUE_STRING_MAX, 0 }
934 TA_BLUE_STRINGSET_OSGE
935 { TA_BLUE_STRING_OSAGE_CAPITAL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
936 { TA_BLUE_STRING_OSAGE_CAPITAL_BOTTOM, 0 }
937 { TA_BLUE_STRING_OSAGE_CAPITAL_DESCENDER, 0 }
938 { TA_BLUE_STRING_OSAGE_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
939 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
940 { TA_BLUE_STRING_OSAGE_SMALL_BOTTOM, 0 }
941 { TA_BLUE_STRING_OSAGE_SMALL_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
942 { TA_BLUE_STRING_OSAGE_SMALL_DESCENDER, 0 }
943 { TA_BLUE_STRING_MAX, 0 }
945 TA_BLUE_STRINGSET_OSMA
946 { TA_BLUE_STRING_OSMANYA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
947 { TA_BLUE_STRING_OSMANYA_BOTTOM, 0 }
948 { TA_BLUE_STRING_MAX, 0 }
950 TA_BLUE_STRINGSET_ROHG
951 { TA_BLUE_STRING_ROHINGYA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
952 { TA_BLUE_STRING_ROHINGYA_BOTTOM, 0 }
953 { TA_BLUE_STRING_ROHINGYA_JOIN, TA_BLUE_PROPERTY_LATIN_NEUTRAL }
954 { TA_BLUE_STRING_MAX, 0 }
956 TA_BLUE_STRINGSET_SAUR
957 { TA_BLUE_STRING_SAURASHTRA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
958 { TA_BLUE_STRING_SAURASHTRA_BOTTOM, 0 }
959 { TA_BLUE_STRING_MAX, 0 }
961 TA_BLUE_STRINGSET_SHAW
962 { TA_BLUE_STRING_SHAVIAN_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
963 { TA_BLUE_STRING_SHAVIAN_BOTTOM, 0 }
964 { TA_BLUE_STRING_SHAVIAN_DESCENDER, 0 }
965 { TA_BLUE_STRING_SHAVIAN_SMALL_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
966 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
967 { TA_BLUE_STRING_SHAVIAN_SMALL_BOTTOM, 0 }
968 { TA_BLUE_STRING_MAX, 0 }
970 TA_BLUE_STRINGSET_SINH
971 { TA_BLUE_STRING_SINHALA_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
972 { TA_BLUE_STRING_SINHALA_BOTTOM, 0 }
973 { TA_BLUE_STRING_SINHALA_DESCENDER, 0 }
974 { TA_BLUE_STRING_MAX, 0 }
976 TA_BLUE_STRINGSET_SUND
977 { TA_BLUE_STRING_SUNDANESE_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
978 { TA_BLUE_STRING_SUNDANESE_BOTTOM, 0 }
979 { TA_BLUE_STRING_SUNDANESE_DESCENDER, 0 }
980 { TA_BLUE_STRING_MAX, 0 }
982 TA_BLUE_STRINGSET_TAML
983 { TA_BLUE_STRING_TAMIL_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
984 { TA_BLUE_STRING_TAMIL_BOTTOM, 0 }
985 { TA_BLUE_STRING_MAX, 0 }
987 TA_BLUE_STRINGSET_TAVT
988 { TA_BLUE_STRING_TAI_VIET_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
989 { TA_BLUE_STRING_TAI_VIET_BOTTOM, 0 }
990 { TA_BLUE_STRING_MAX, 0 }
992 TA_BLUE_STRINGSET_TELU
993 { TA_BLUE_STRING_TELUGU_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
994 { TA_BLUE_STRING_TELUGU_BOTTOM, 0 }
995 { TA_BLUE_STRING_MAX, 0 }
997 TA_BLUE_STRINGSET_THAI
998 { TA_BLUE_STRING_THAI_TOP, TA_BLUE_PROPERTY_LATIN_TOP |
999 TA_BLUE_PROPERTY_LATIN_X_HEIGHT }
1000 { TA_BLUE_STRING_THAI_BOTTOM, 0 }
1001 { TA_BLUE_STRING_THAI_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
1002 { TA_BLUE_STRING_THAI_LARGE_ASCENDER, TA_BLUE_PROPERTY_LATIN_TOP }
1003 { TA_BLUE_STRING_THAI_DESCENDER, 0 }
1004 { TA_BLUE_STRING_THAI_LARGE_DESCENDER, 0 }
1005 { TA_BLUE_STRING_THAI_DIGIT_TOP, 0 }
1006 { TA_BLUE_STRING_MAX, 0 }
1008 TA_BLUE_STRINGSET_TFNG
1009 { TA_BLUE_STRING_TIFINAGH, TA_BLUE_PROPERTY_LATIN_TOP }
1010 { TA_BLUE_STRING_TIFINAGH, 0 }
1011 { TA_BLUE_STRING_MAX, 0 }
1013 TA_BLUE_STRINGSET_VAII
1014 { TA_BLUE_STRING_VAI_TOP, TA_BLUE_PROPERTY_LATIN_TOP }
1015 { TA_BLUE_STRING_VAI_BOTTOM, 0 }
1016 { TA_BLUE_STRING_MAX, 0 }