From c2185de643aa3d1d9ce63b31f765029276b7bf9f Mon Sep 17 00:00:00 2001 From: Sasha Szpakowski Date: Sun, 8 Jan 2023 20:26:17 -0400 Subject: [PATCH] iOS: Add harfbuzz.xcframework --- iOS/libraries/harfbuzz.xcframework/Info.plist | 44 + .../ios-arm64/Headers/hb-aat-layout.h | 795 ++++++++++++ .../ios-arm64/Headers/hb-aat.h | 38 + .../ios-arm64/Headers/hb-blob.h | 160 +++ .../ios-arm64/Headers/hb-buffer.h | 799 ++++++++++++ .../ios-arm64/Headers/hb-common.h | 902 ++++++++++++++ .../ios-arm64/Headers/hb-coretext.h | 96 ++ .../ios-arm64/Headers/hb-cplusplus.hh | 221 ++++ .../ios-arm64/Headers/hb-deprecated.h | 251 ++++ .../ios-arm64/Headers/hb-draw.h | 325 +++++ .../ios-arm64/Headers/hb-face.h | 181 +++ .../ios-arm64/Headers/hb-font.h | 1108 +++++++++++++++++ .../ios-arm64/Headers/hb-ft.h | 145 +++ .../ios-arm64/Headers/hb-map.h | 124 ++ .../ios-arm64/Headers/hb-ot-color.h | 146 +++ .../ios-arm64/Headers/hb-ot-deprecated.h | 141 +++ .../ios-arm64/Headers/hb-ot-font.h | 45 + .../ios-arm64/Headers/hb-ot-layout.h | 503 ++++++++ .../ios-arm64/Headers/hb-ot-math.h | 333 +++++ .../ios-arm64/Headers/hb-ot-meta.h | 72 ++ .../ios-arm64/Headers/hb-ot-metrics.h | 129 ++ .../ios-arm64/Headers/hb-ot-name.h | 158 +++ .../ios-arm64/Headers/hb-ot-shape.h | 53 + .../ios-arm64/Headers/hb-ot-var.h | 191 +++ .../ios-arm64/Headers/hb-ot.h | 49 + .../ios-arm64/Headers/hb-set.h | 200 +++ .../ios-arm64/Headers/hb-shape-plan.h | 122 ++ .../ios-arm64/Headers/hb-shape.h | 62 + .../ios-arm64/Headers/hb-style.h | 81 ++ .../ios-arm64/Headers/hb-unicode.h | 643 ++++++++++ .../ios-arm64/Headers/hb-version.h | 95 ++ .../ios-arm64/Headers/hb.h | 50 + .../ios-arm64/libharfbuzz_device.a | Bin 0 -> 1303104 bytes .../Headers/hb-aat-layout.h | 795 ++++++++++++ .../Headers/hb-aat.h | 38 + .../Headers/hb-blob.h | 160 +++ .../Headers/hb-buffer.h | 799 ++++++++++++ .../Headers/hb-common.h | 902 ++++++++++++++ .../Headers/hb-coretext.h | 96 ++ .../Headers/hb-cplusplus.hh | 221 ++++ .../Headers/hb-deprecated.h | 251 ++++ .../Headers/hb-draw.h | 325 +++++ .../Headers/hb-face.h | 181 +++ .../Headers/hb-font.h | 1108 +++++++++++++++++ .../Headers/hb-ft.h | 145 +++ .../Headers/hb-map.h | 124 ++ .../Headers/hb-ot-color.h | 146 +++ .../Headers/hb-ot-deprecated.h | 141 +++ .../Headers/hb-ot-font.h | 45 + .../Headers/hb-ot-layout.h | 503 ++++++++ .../Headers/hb-ot-math.h | 333 +++++ .../Headers/hb-ot-meta.h | 72 ++ .../Headers/hb-ot-metrics.h | 129 ++ .../Headers/hb-ot-name.h | 158 +++ .../Headers/hb-ot-shape.h | 53 + .../Headers/hb-ot-var.h | 191 +++ .../Headers/hb-ot.h | 49 + .../Headers/hb-set.h | 200 +++ .../Headers/hb-shape-plan.h | 122 ++ .../Headers/hb-shape.h | 62 + .../Headers/hb-style.h | 81 ++ .../Headers/hb-unicode.h | 643 ++++++++++ .../Headers/hb-version.h | 95 ++ .../ios-arm64_x86_64-simulator/Headers/hb.h | 50 + .../libharfbuzz_sim.a | Bin 0 -> 2755928 bytes 65 files changed, 16480 insertions(+) create mode 100644 iOS/libraries/harfbuzz.xcframework/Info.plist create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-aat-layout.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-aat.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-blob.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-buffer.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-common.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-coretext.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-cplusplus.hh create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-deprecated.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-draw.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-face.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-font.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ft.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-map.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-color.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-deprecated.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-font.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-layout.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-math.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-meta.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-metrics.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-name.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-shape.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-var.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-set.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-shape-plan.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-shape.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-style.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-unicode.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-version.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64/libharfbuzz_device.a create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-aat-layout.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-aat.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-blob.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-buffer.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-common.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-coretext.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-cplusplus.hh create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-deprecated.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-draw.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-face.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-font.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ft.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-map.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-color.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-deprecated.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-font.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-layout.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-math.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-meta.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-metrics.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-name.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-shape.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-var.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-set.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-shape-plan.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-shape.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-style.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-unicode.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-version.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb.h create mode 100644 iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/libharfbuzz_sim.a diff --git a/iOS/libraries/harfbuzz.xcframework/Info.plist b/iOS/libraries/harfbuzz.xcframework/Info.plist new file mode 100644 index 0000000..274f231 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/Info.plist @@ -0,0 +1,44 @@ + + + + + AvailableLibraries + + + HeadersPath + Headers + LibraryIdentifier + ios-arm64_x86_64-simulator + LibraryPath + libharfbuzz_sim.a + SupportedArchitectures + + arm64 + x86_64 + + SupportedPlatform + ios + SupportedPlatformVariant + simulator + + + HeadersPath + Headers + LibraryIdentifier + ios-arm64 + LibraryPath + libharfbuzz_device.a + SupportedArchitectures + + arm64 + + SupportedPlatform + ios + + + CFBundlePackageType + XFWK + XCFrameworkFormatVersion + 1.0 + + diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-aat-layout.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-aat-layout.h new file mode 100644 index 0000000..9af2740 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-aat-layout.h @@ -0,0 +1,795 @@ +/* + * Copyright © 2018 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#if !defined(HB_AAT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_AAT_LAYOUT_H +#define HB_AAT_LAYOUT_H + +#include "hb.h" + +#include "hb-ot.h" + +HB_BEGIN_DECLS + +/** + * hb_aat_layout_feature_type_t: + * @HB_AAT_LAYOUT_FEATURE_TYPE_INVALID: Initial, unset feature type + * @HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC: [All Typographic Features](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type0) + * @HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES: [Ligatures](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type1) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CURISVE_CONNECTION: [Cursive Connection](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type2) + * @HB_AAT_LAYOUT_FEATURE_TYPE_LETTER_CASE: [Letter Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type3) + * @HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION: [Vertical Substitution](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type4) + * @HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT: [Linguistic Rearrangement](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type5) + * @HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING: [Number Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type6) + * @HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE: [Smart Swash](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type8) + * @HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE: [Diacritics](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type9) + * @HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION: [Vertical Position](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type10) + * @HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS: [Fractions](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type11) + * @HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE: [Overlapping Characters](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type13) + * @HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS: [Typographic Extras](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type14) + * @HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS: [Mathematical Extras](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type15) + * @HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE: [Ornament Sets](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type16) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES: [Character Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type17) + * @HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE: [Design Complexity](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type18) + * @HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS: [Style Options](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type19) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE: [Character Shape](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type20) + * @HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE: [Number Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type21) + * @HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING: [Text Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type22) + * @HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION: [Transliteration](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type23) + * @HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE: [Annotation](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type24) + * @HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE: [Kana Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type25) + * @HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE: [Ideographic Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type26) + * @HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE: [Unicode Decomposition](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type27) + * @HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA: [Ruby Kana](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type28) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE: [CJK Symbol Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type29) + * @HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE: [Ideographic Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type30) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE: [CJK Vertical Roman Placement](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type31) + * @HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN: [Italic CJK Roman](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type32) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT: [Case Sensitive Layout](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type33) + * @HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA: [Alternate Kana](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type34) + * @HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES: [Stylistic Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type35) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES: [Contextual Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type36) + * @HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE: [Lower Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type37) + * @HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE: [Upper Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type38) + * @HB_AAT_LAYOUT_FEATURE_TYPE_LANGUAGE_TAG_TYPE: [Language Tag](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type39) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE: [CJK Roman Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type103) + * + * The possible feature types defined for AAT shaping, from Apple [Font Feature Registry](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html). + * + * Since: 2.2.0 + */ +typedef enum +{ + HB_AAT_LAYOUT_FEATURE_TYPE_INVALID = 0xFFFF, + + HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC = 0, + HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES = 1, + HB_AAT_LAYOUT_FEATURE_TYPE_CURISVE_CONNECTION = 2, + HB_AAT_LAYOUT_FEATURE_TYPE_LETTER_CASE = 3, + HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION = 4, + HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT = 5, + HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING = 6, + HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE = 8, + HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE = 9, + HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION = 10, + HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS = 11, + HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE = 13, + HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS = 14, + HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS = 15, + HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE = 16, + HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES = 17, + HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE = 18, + HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS = 19, + HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE = 20, + HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE = 21, + HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING = 22, + HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION = 23, + HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE = 24, + HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE = 25, + HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE = 26, + HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE = 27, + HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA = 28, + HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE = 29, + HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE = 30, + HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE = 31, + HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN = 32, + HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT = 33, + HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA = 34, + HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES = 35, + HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES = 36, + HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE = 37, + HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE = 38, + HB_AAT_LAYOUT_FEATURE_TYPE_LANGUAGE_TAG_TYPE = 39, + HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE = 103, + + /*< private >*/ + _HB_AAT_LAYOUT_FEATURE_TYPE_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_aat_layout_feature_type_t; + +/** + * hb_aat_layout_feature_selector_t: + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INVALID: Initial, unset feature selector + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_TYPE_FEATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_TYPE_FEATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_REQUIRED_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_REQUIRED_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_COMMON_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_COMMON_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_RARE_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_RARE_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOGOS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOGOS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_REBUS_PICTURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_REBUS_PICTURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DIPHTHONG_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DIPHTHONG_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SQUARED_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SQUARED_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ABBREV_SQUARED_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ABBREV_SQUARED_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SYMBOL_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SYMBOL_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HISTORICAL_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HISTORICAL_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_UNCONNECTED: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PARTIALLY_CONNECTED: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CURSIVE: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_AND_LOWER_CASE: Deprecated + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_CAPS: Deprecated + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_LOWER_CASE: Deprecated + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SMALL_CAPS: Deprecated + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INITIAL_CAPS: Deprecated + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INITIAL_CAPS_AND_SMALL_CAPS: Deprecated + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SUBSTITUTE_VERTICAL_FORMS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SUBSTITUTE_VERTICAL_FORMS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINGUISTIC_REARRANGEMENT_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINGUISTIC_REARRANGEMENT_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_MONOSPACED_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_THIRD_WIDTH_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_QUARTER_WIDTH_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_INITIAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_INITIAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_FINAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_FINAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_INITIAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_INITIAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_FINAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_FINAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NON_FINAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NON_FINAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SHOW_DIACRITICS: for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HIDE_DIACRITICS: for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DECOMPOSE_DIACRITICS: for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NORMAL_POSITION: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SUPERIORS: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INFERIORS: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ORDINALS: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SCIENTIFIC_INFERIORS: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_FRACTIONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_VERTICAL_FRACTIONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DIAGONAL_FRACTIONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PREVENT_OVERLAP_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PREVENT_OVERLAP_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHENS_TO_EM_DASH_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHENS_TO_EM_DASH_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_EN_DASH_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_EN_DASH_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASHED_ZERO_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASHED_ZERO_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_FORM_INTERROBANG_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_FORM_INTERROBANG_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SMART_QUOTES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SMART_QUOTES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIODS_TO_ELLIPSIS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIODS_TO_ELLIPSIS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_MINUS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_MINUS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ASTERISK_TO_MULTIPLY_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ASTERISK_TO_MULTIPLY_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASH_TO_DIVIDE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASH_TO_DIVIDE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INEQUALITY_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INEQUALITY_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPONENTS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPONENTS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_MATHEMATICAL_GREEK_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_MATHEMATICAL_GREEK_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ORNAMENTS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DINGBATS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PI_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_FLEURONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DECORATIVE_BORDERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INTERNATIONAL_SYMBOLS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_MATH_SYMBOLS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ALTERNATES: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL1: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL2: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL3: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL4: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL5: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_STYLE_OPTIONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DISPLAY_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ENGRAVED_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ILLUMINATED_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TITLING_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TALL_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SIMPLIFIED_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1978_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1983_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1990_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_ONE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_TWO: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_THREE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_FOUR: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_FIVE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPERT_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS2004_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HOJO_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NLCCHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_NAMES_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_MONOSPACED_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_THIRD_WIDTH_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_QUARTER_WIDTH_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALT_PROPORTIONAL_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALT_HALF_WIDTH_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_TRANSLITERATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HIRAGANA_TO_KATAKANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_KATAKANA_TO_HIRAGANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_KANA_TO_ROMANIZATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMANIZATION_TO_HIRAGANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMANIZATION_TO_KATAKANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_ONE: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_TWO: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_THREE: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_BOX_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ROUNDED_BOX_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CIRCLE_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_CIRCLE_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PARENTHESIS_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIOD_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMAN_NUMERAL_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DIAMOND_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_BOX_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_ROUNDED_BOX_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_KANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_KANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_IDEOGRAPHS: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_IDEOGRAPHS: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_IDEOGRAPHS: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CANONICAL_COMPOSITION_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CANONICAL_COMPOSITION_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_COMPATIBILITY_COMPOSITION_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_COMPATIBILITY_COMPOSITION_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRANSCODING_COMPOSITION_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRANSCODING_COMPOSITION_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_RUBY_KANA: Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF instead + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA: Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON instead + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_CJK_SYMBOL_ALTERNATIVES: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_ONE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_TWO: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_THREE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_FOUR: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_FIVE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_IDEOGRAPHIC_ALTERNATIVES: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_ONE: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_TWO: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_THREE: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_FOUR: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_FIVE: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_VERTICAL_ROMAN_CENTERED: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_VERTICAL_ROMAN_HBASELINE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_CJK_ITALIC_ROMAN: Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF instead + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN: Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON instead + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_LAYOUT_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_LAYOUT_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_SPACING_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_SPACING_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_HORIZ_KANA_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_HORIZ_KANA_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_VERT_KANA_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_VERT_KANA_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_STYLISTIC_ALTERNATES: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ONE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ONE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWO_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWO_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THREE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THREE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOUR_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOUR_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIVE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIVE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIX_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIX_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHT_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHT_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ELEVEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ELEVEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWELVE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWELVE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THIRTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THIRTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOURTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOURTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIFTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIFTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIXTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIXTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVENTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVENTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINETEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINETEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWENTY_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWENTY_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_ALTERNATES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_ALTERNATES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SWASH_ALTERNATES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SWASH_ALTERNATES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_SWASH_ALTERNATES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_SWASH_ALTERNATES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_LOWER_CASE: for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_SMALL_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_PETITE_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_UPPER_CASE: for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_SMALL_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_PETITE_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_CJK_ROMAN: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_CJK_ROMAN: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_CJK_ROMAN: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_CJK_ROMAN: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE + * + * The selectors defined for specifying AAT feature settings. + * + * Since: 2.2.0 + */ +typedef enum +{ + HB_AAT_LAYOUT_FEATURE_SELECTOR_INVALID = 0xFFFF, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_TYPE_FEATURES_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_TYPE_FEATURES_OFF = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_REQUIRED_LIGATURES_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_REQUIRED_LIGATURES_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_COMMON_LIGATURES_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_COMMON_LIGATURES_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_RARE_LIGATURES_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_RARE_LIGATURES_OFF = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LOGOS_ON = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LOGOS_OFF = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_REBUS_PICTURES_ON = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_REBUS_PICTURES_OFF = 9, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DIPHTHONG_LIGATURES_ON = 10, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DIPHTHONG_LIGATURES_OFF = 11, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SQUARED_LIGATURES_ON = 12, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SQUARED_LIGATURES_OFF = 13, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ABBREV_SQUARED_LIGATURES_ON = 14, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ABBREV_SQUARED_LIGATURES_OFF = 15, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SYMBOL_LIGATURES_ON = 16, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SYMBOL_LIGATURES_OFF = 17, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_LIGATURES_ON = 18, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_LIGATURES_OFF = 19, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HISTORICAL_LIGATURES_ON = 20, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HISTORICAL_LIGATURES_OFF = 21, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_UNCONNECTED = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PARTIALLY_CONNECTED = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CURSIVE = 2, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_LETTER_CASE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_AND_LOWER_CASE = 0, /* deprecated */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_CAPS = 1, /* deprecated */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_LOWER_CASE = 2, /* deprecated */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_SMALL_CAPS = 3, /* deprecated */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_INITIAL_CAPS = 4, /* deprecated */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_INITIAL_CAPS_AND_SMALL_CAPS = 5, /* deprecated */ + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_SUBSTITUTE_VERTICAL_FORMS_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SUBSTITUTE_VERTICAL_FORMS_OFF = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_LINGUISTIC_REARRANGEMENT_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LINGUISTIC_REARRANGEMENT_OFF = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_MONOSPACED_NUMBERS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_NUMBERS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_THIRD_WIDTH_NUMBERS = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_QUARTER_WIDTH_NUMBERS = 3, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_INITIAL_SWASHES_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_INITIAL_SWASHES_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_FINAL_SWASHES_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_FINAL_SWASHES_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_INITIAL_SWASHES_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_INITIAL_SWASHES_OFF = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_FINAL_SWASHES_ON = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_FINAL_SWASHES_OFF = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_NON_FINAL_SWASHES_ON = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_NON_FINAL_SWASHES_OFF = 9, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_SHOW_DIACRITICS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HIDE_DIACRITICS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DECOMPOSE_DIACRITICS = 2, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NORMAL_POSITION = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SUPERIORS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INFERIORS = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ORDINALS = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SCIENTIFIC_INFERIORS = 4, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_FRACTIONS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_VERTICAL_FRACTIONS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DIAGONAL_FRACTIONS = 2, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_PREVENT_OVERLAP_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PREVENT_OVERLAP_OFF = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHENS_TO_EM_DASH_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHENS_TO_EM_DASH_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_EN_DASH_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_EN_DASH_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASHED_ZERO_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASHED_ZERO_OFF = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_FORM_INTERROBANG_ON = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_FORM_INTERROBANG_OFF = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SMART_QUOTES_ON = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SMART_QUOTES_OFF = 9, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIODS_TO_ELLIPSIS_ON = 10, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIODS_TO_ELLIPSIS_OFF = 11, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_MINUS_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_MINUS_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ASTERISK_TO_MULTIPLY_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ASTERISK_TO_MULTIPLY_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASH_TO_DIVIDE_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASH_TO_DIVIDE_OFF = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INEQUALITY_LIGATURES_ON = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INEQUALITY_LIGATURES_OFF = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPONENTS_ON = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPONENTS_OFF = 9, + HB_AAT_LAYOUT_FEATURE_SELECTOR_MATHEMATICAL_GREEK_ON = 10, + HB_AAT_LAYOUT_FEATURE_SELECTOR_MATHEMATICAL_GREEK_OFF = 11, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ORNAMENTS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DINGBATS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PI_CHARACTERS = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_FLEURONS = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DECORATIVE_BORDERS = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INTERNATIONAL_SYMBOLS = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_MATH_SYMBOLS = 6, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ALTERNATES = 0, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL1 = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL2 = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL3 = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL4 = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL5 = 4, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_STYLE_OPTIONS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DISPLAY_TEXT = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ENGRAVED_TEXT = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ILLUMINATED_CAPS = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TITLING_CAPS = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TALL_CAPS = 5, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_CHARACTERS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SIMPLIFIED_CHARACTERS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1978_CHARACTERS = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1983_CHARACTERS = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1990_CHARACTERS = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_ONE = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_TWO = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_THREE = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_FOUR = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_FIVE = 9, + HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPERT_CHARACTERS = 10, + HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS2004_CHARACTERS = 11, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HOJO_CHARACTERS = 12, + HB_AAT_LAYOUT_FEATURE_SELECTOR_NLCCHARACTERS = 13, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_NAMES_CHARACTERS = 14, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_NUMBERS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_NUMBERS = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_TEXT = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_MONOSPACED_TEXT = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_TEXT = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_THIRD_WIDTH_TEXT = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_QUARTER_WIDTH_TEXT = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALT_PROPORTIONAL_TEXT = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALT_HALF_WIDTH_TEXT = 6, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_TRANSLITERATION = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HIRAGANA_TO_KATAKANA = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_KATAKANA_TO_HIRAGANA = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_KANA_TO_ROMANIZATION = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMANIZATION_TO_HIRAGANA = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMANIZATION_TO_KATAKANA = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_ONE = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_TWO = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_THREE = 9, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ANNOTATION = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_BOX_ANNOTATION = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ROUNDED_BOX_ANNOTATION = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CIRCLE_ANNOTATION = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_CIRCLE_ANNOTATION = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PARENTHESIS_ANNOTATION = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIOD_ANNOTATION = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMAN_NUMERAL_ANNOTATION = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DIAMOND_ANNOTATION = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_BOX_ANNOTATION = 9, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_ROUNDED_BOX_ANNOTATION= 10, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_KANA = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_KANA = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_IDEOGRAPHS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_IDEOGRAPHS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_IDEOGRAPHS = 2, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_CANONICAL_COMPOSITION_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CANONICAL_COMPOSITION_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_COMPATIBILITY_COMPOSITION_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_COMPATIBILITY_COMPOSITION_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRANSCODING_COMPOSITION_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRANSCODING_COMPOSITION_OFF = 5, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_RUBY_KANA = 0, /* deprecated - use HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF instead */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA = 1, /* deprecated - use HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON instead */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF = 3, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_CJK_SYMBOL_ALTERNATIVES = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_ONE = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_TWO = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_THREE = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_FOUR = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_FIVE = 5, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_IDEOGRAPHIC_ALTERNATIVES = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_ONE = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_TWO = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_THREE = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_FOUR = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_FIVE = 5, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_VERTICAL_ROMAN_CENTERED = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_VERTICAL_ROMAN_HBASELINE = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_CJK_ITALIC_ROMAN = 0, /* deprecated - use HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF instead */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN = 1, /* deprecated - use HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON instead */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF = 3, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_LAYOUT_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_LAYOUT_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_SPACING_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_SPACING_OFF = 3, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_HORIZ_KANA_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_HORIZ_KANA_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_VERT_KANA_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_VERT_KANA_OFF = 3, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_STYLISTIC_ALTERNATES = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ONE_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ONE_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWO_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWO_OFF = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THREE_ON = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THREE_OFF = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOUR_ON = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOUR_OFF = 9, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIVE_ON = 10, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIVE_OFF = 11, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIX_ON = 12, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIX_OFF = 13, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVEN_ON = 14, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVEN_OFF = 15, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHT_ON = 16, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHT_OFF = 17, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINE_ON = 18, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINE_OFF = 19, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TEN_ON = 20, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TEN_OFF = 21, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ELEVEN_ON = 22, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ELEVEN_OFF = 23, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWELVE_ON = 24, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWELVE_OFF = 25, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THIRTEEN_ON = 26, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THIRTEEN_OFF = 27, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOURTEEN_ON = 28, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOURTEEN_OFF = 29, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIFTEEN_ON = 30, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIFTEEN_OFF = 31, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIXTEEN_ON = 32, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIXTEEN_OFF = 33, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVENTEEN_ON = 34, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVENTEEN_OFF = 35, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHTEEN_ON = 36, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHTEEN_OFF = 37, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINETEEN_ON = 38, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINETEEN_OFF = 39, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWENTY_ON = 40, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWENTY_OFF = 41, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_ALTERNATES_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_ALTERNATES_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SWASH_ALTERNATES_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SWASH_ALTERNATES_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_SWASH_ALTERNATES_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_SWASH_ALTERNATES_OFF= 5, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_LOWER_CASE = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_SMALL_CAPS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_PETITE_CAPS = 2, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_UPPER_CASE = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_SMALL_CAPS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_PETITE_CAPS = 2, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_CJK_ROMAN = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_CJK_ROMAN = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_CJK_ROMAN = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_CJK_ROMAN = 3, + + /*< private >*/ + _HB_AAT_LAYOUT_FEATURE_SELECTOR_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_aat_layout_feature_selector_t; + +HB_EXTERN unsigned int +hb_aat_layout_get_feature_types (hb_face_t *face, + unsigned int start_offset, + unsigned int *feature_count, /* IN/OUT. May be NULL. */ + hb_aat_layout_feature_type_t *features /* OUT. May be NULL. */); + +HB_EXTERN hb_ot_name_id_t +hb_aat_layout_feature_type_get_name_id (hb_face_t *face, + hb_aat_layout_feature_type_t feature_type); + +/** + * hb_aat_layout_feature_selector_info_t: + * @name_id: The selector's name identifier + * @enable: The value to turn the selector on + * @disable: The value to turn the selector off + * + * Structure representing a setting for an #hb_aat_layout_feature_type_t. + */ +typedef struct hb_aat_layout_feature_selector_info_t { + hb_ot_name_id_t name_id; + hb_aat_layout_feature_selector_t enable; + hb_aat_layout_feature_selector_t disable; + /*< private >*/ + unsigned int reserved; +} hb_aat_layout_feature_selector_info_t; + +/** + * HB_AAT_LAYOUT_NO_SELECTOR_INDEX + * + * Used when getting or setting AAT feature selectors. Indicates that + * there is no selector index corresponding to the selector of interest. + * + */ +#define HB_AAT_LAYOUT_NO_SELECTOR_INDEX 0xFFFFu + +HB_EXTERN unsigned int +hb_aat_layout_feature_type_get_selector_infos (hb_face_t *face, + hb_aat_layout_feature_type_t feature_type, + unsigned int start_offset, + unsigned int *selector_count, /* IN/OUT. May be NULL. */ + hb_aat_layout_feature_selector_info_t *selectors, /* OUT. May be NULL. */ + unsigned int *default_index /* OUT. May be NULL. */); + + +/* + * morx/mort + */ + +HB_EXTERN hb_bool_t +hb_aat_layout_has_substitution (hb_face_t *face); + + +/* + * kerx + */ + +HB_EXTERN hb_bool_t +hb_aat_layout_has_positioning (hb_face_t *face); + + +/* + * trak + */ + +HB_EXTERN hb_bool_t +hb_aat_layout_has_tracking (hb_face_t *face); + + +HB_END_DECLS + +#endif /* HB_AAT_LAYOUT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-aat.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-aat.h new file mode 100644 index 0000000..c14313d --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-aat.h @@ -0,0 +1,38 @@ +/* + * Copyright © 2018 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HB_AAT_H +#define HB_AAT_H +#define HB_AAT_H_IN + +#include "hb.h" + +#include "hb-aat-layout.h" + +HB_BEGIN_DECLS + +HB_END_DECLS + +#undef HB_AAT_H_IN +#endif /* HB_AAT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-blob.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-blob.h new file mode 100644 index 0000000..4eb4231 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-blob.h @@ -0,0 +1,160 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_BLOB_H +#define HB_BLOB_H + +#include "hb-common.h" + +HB_BEGIN_DECLS + + +/** + * hb_memory_mode_t: + * @HB_MEMORY_MODE_DUPLICATE: HarfBuzz immediately makes a copy of the data. + * @HB_MEMORY_MODE_READONLY: HarfBuzz client will never modify the data, + * and HarfBuzz will never modify the data. + * @HB_MEMORY_MODE_WRITABLE: HarfBuzz client made a copy of the data solely + * for HarfBuzz, so HarfBuzz may modify the data. + * @HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE: See above + * + * Data type holding the memory modes available to + * client programs. + * + * Regarding these various memory-modes: + * + * - In no case shall the HarfBuzz client modify memory + * that is passed to HarfBuzz in a blob. If there is + * any such possibility, @HB_MEMORY_MODE_DUPLICATE should be used + * such that HarfBuzz makes a copy immediately, + * + * - Use @HB_MEMORY_MODE_READONLY otherwise, unless you really really + * really know what you are doing, + * + * - @HB_MEMORY_MODE_WRITABLE is appropriate if you really made a + * copy of data solely for the purpose of passing to + * HarfBuzz and doing that just once (no reuse!), + * + * - If the font is mmap()ed, it's okay to use + * @HB_MEMORY_READONLY_MAY_MAKE_WRITABLE, however, using that mode + * correctly is very tricky. Use @HB_MEMORY_MODE_READONLY instead. + **/ +typedef enum { + HB_MEMORY_MODE_DUPLICATE, + HB_MEMORY_MODE_READONLY, + HB_MEMORY_MODE_WRITABLE, + HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE +} hb_memory_mode_t; + +/** + * hb_blob_t: + * + * Data type for blobs. A blob wraps a chunk of binary + * data and facilitates its lifecycle management between + * a client program and HarfBuzz. + * + **/ +typedef struct hb_blob_t hb_blob_t; + +HB_EXTERN hb_blob_t * +hb_blob_create (const char *data, + unsigned int length, + hb_memory_mode_t mode, + void *user_data, + hb_destroy_func_t destroy); + +HB_EXTERN hb_blob_t * +hb_blob_create_or_fail (const char *data, + unsigned int length, + hb_memory_mode_t mode, + void *user_data, + hb_destroy_func_t destroy); + +HB_EXTERN hb_blob_t * +hb_blob_create_from_file (const char *file_name); + +HB_EXTERN hb_blob_t * +hb_blob_create_from_file_or_fail (const char *file_name); + +/* Always creates with MEMORY_MODE_READONLY. + * Even if the parent blob is writable, we don't + * want the user of the sub-blob to be able to + * modify the parent data as that data may be + * shared among multiple sub-blobs. + */ +HB_EXTERN hb_blob_t * +hb_blob_create_sub_blob (hb_blob_t *parent, + unsigned int offset, + unsigned int length); + +HB_EXTERN hb_blob_t * +hb_blob_copy_writable_or_fail (hb_blob_t *blob); + +HB_EXTERN hb_blob_t * +hb_blob_get_empty (void); + +HB_EXTERN hb_blob_t * +hb_blob_reference (hb_blob_t *blob); + +HB_EXTERN void +hb_blob_destroy (hb_blob_t *blob); + +HB_EXTERN hb_bool_t +hb_blob_set_user_data (hb_blob_t *blob, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + + +HB_EXTERN void * +hb_blob_get_user_data (const hb_blob_t *blob, + hb_user_data_key_t *key); + + +HB_EXTERN void +hb_blob_make_immutable (hb_blob_t *blob); + +HB_EXTERN hb_bool_t +hb_blob_is_immutable (hb_blob_t *blob); + + +HB_EXTERN unsigned int +hb_blob_get_length (hb_blob_t *blob); + +HB_EXTERN const char * +hb_blob_get_data (hb_blob_t *blob, unsigned int *length); + +HB_EXTERN char * +hb_blob_get_data_writable (hb_blob_t *blob, unsigned int *length); + +HB_END_DECLS + +#endif /* HB_BLOB_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-buffer.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-buffer.h new file mode 100644 index 0000000..8c17489 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-buffer.h @@ -0,0 +1,799 @@ +/* + * Copyright © 1998-2004 David Turner and Werner Lemberg + * Copyright © 2004,2007,2009 Red Hat, Inc. + * Copyright © 2011,2012 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Owen Taylor, Behdad Esfahbod + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_BUFFER_H +#define HB_BUFFER_H + +#include "hb-common.h" +#include "hb-unicode.h" +#include "hb-font.h" + +HB_BEGIN_DECLS + +/** + * hb_glyph_info_t: + * @codepoint: either a Unicode code point (before shaping) or a glyph index + * (after shaping). + * @cluster: the index of the character in the original text that corresponds + * to this #hb_glyph_info_t, or whatever the client passes to + * hb_buffer_add(). More than one #hb_glyph_info_t can have the same + * @cluster value, if they resulted from the same character (e.g. one + * to many glyph substitution), and when more than one character gets + * merged in the same glyph (e.g. many to one glyph substitution) the + * #hb_glyph_info_t will have the smallest cluster value of them. + * By default some characters are merged into the same cluster + * (e.g. combining marks have the same cluster as their bases) + * even if they are separate glyphs, hb_buffer_set_cluster_level() + * allow selecting more fine-grained cluster handling. + * + * The #hb_glyph_info_t is the structure that holds information about the + * glyphs and their relation to input text. + */ +typedef struct hb_glyph_info_t { + hb_codepoint_t codepoint; + /*< private >*/ + hb_mask_t mask; + /*< public >*/ + uint32_t cluster; + + /*< private >*/ + hb_var_int_t var1; + hb_var_int_t var2; +} hb_glyph_info_t; + +/** + * hb_glyph_flags_t: + * @HB_GLYPH_FLAG_UNSAFE_TO_BREAK: Indicates that if input text is broken at the + * beginning of the cluster this glyph is part of, + * then both sides need to be re-shaped, as the + * result might be different. + * On the flip side, it means that when this + * flag is not present, then it is safe to break + * the glyph-run at the beginning of this + * cluster, and the two sides will represent the + * exact same result one would get if breaking + * input text at the beginning of this cluster + * and shaping the two sides separately. + * This can be used to optimize paragraph + * layout, by avoiding re-shaping of each line + * after line-breaking. + * @HB_GLYPH_FLAG_UNSAFE_TO_CONCAT: Indicates that if input text is changed on one + * side of the beginning of the cluster this glyph + * is part of, then the shaping results for the + * other side might change. + * Note that the absence of this flag will NOT by + * itself mean that it IS safe to concat text. + * Only two pieces of text both of which clear of + * this flag can be concatenated safely. + * This can be used to optimize paragraph + * layout, by avoiding re-shaping of each line + * after line-breaking, by limiting the + * reshaping to a small piece around the + * breaking positin only, even if the breaking + * position carries the + * #HB_GLYPH_FLAG_UNSAFE_TO_BREAK or when + * hyphenation or other text transformation + * happens at line-break position, in the following + * way: + * 1. Iterate back from the line-break position + * until the first cluster start position that is + * NOT unsafe-to-concat, 2. shape the segment from + * there till the end of line, 3. check whether the + * resulting glyph-run also is clear of the + * unsafe-to-concat at its start-of-text position; + * if it is, just splice it into place and the line + * is shaped; If not, move on to a position further + * back that is clear of unsafe-to-concat and retry + * from there, and repeat. + * At the start of next line a similar algorithm can + * be implemented. That is: 1. Iterate forward from + * the line-break position until the first cluster + * start position that is NOT unsafe-to-concat, 2. + * shape the segment from beginning of the line to + * that position, 3. check whether the resulting + * glyph-run also is clear of the unsafe-to-concat + * at its end-of-text position; if it is, just splice + * it into place and the beginning is shaped; If not, + * move on to a position further forward that is clear + * of unsafe-to-concat and retry up to there, and repeat. + * A slight complication will arise in the + * implementation of the algorithm above, + * because while our buffer API has a way to + * return flags for position corresponding to + * start-of-text, there is currently no position + * corresponding to end-of-text. This limitation + * can be alleviated by shaping more text than needed + * and looking for unsafe-to-concat flag within text + * clusters. + * The #HB_GLYPH_FLAG_UNSAFE_TO_BREAK flag will + * always imply this flag. + * To use this flag, you must enable the buffer flag + * @HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT during + * shaping, otherwise the buffer flag will not be + * reliably produced. + * Since: 4.0.0 + * @HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL: In scripts that use elongation (Arabic, + Mongolian, Syriac, etc.), this flag signifies + that it is safe to insert a U+0640 TATWEEL + character before this cluster for elongation. + This flag does not determine the + script-specific elongation places, but only + when it is safe to do the elongation without + interrupting text shaping. + Since: 5.1.0 + * @HB_GLYPH_FLAG_DEFINED: All the currently defined flags. + * + * Flags for #hb_glyph_info_t. + * + * Since: 1.5.0 + */ +typedef enum { /*< flags >*/ + HB_GLYPH_FLAG_UNSAFE_TO_BREAK = 0x00000001, + HB_GLYPH_FLAG_UNSAFE_TO_CONCAT = 0x00000002, + HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL = 0x00000004, + + HB_GLYPH_FLAG_DEFINED = 0x00000007 /* OR of all defined flags */ +} hb_glyph_flags_t; + +HB_EXTERN hb_glyph_flags_t +hb_glyph_info_get_glyph_flags (const hb_glyph_info_t *info); + +#define hb_glyph_info_get_glyph_flags(info) \ + ((hb_glyph_flags_t) ((unsigned int) (info)->mask & HB_GLYPH_FLAG_DEFINED)) + + +/** + * hb_glyph_position_t: + * @x_advance: how much the line advances after drawing this glyph when setting + * text in horizontal direction. + * @y_advance: how much the line advances after drawing this glyph when setting + * text in vertical direction. + * @x_offset: how much the glyph moves on the X-axis before drawing it, this + * should not affect how much the line advances. + * @y_offset: how much the glyph moves on the Y-axis before drawing it, this + * should not affect how much the line advances. + * + * The #hb_glyph_position_t is the structure that holds the positions of the + * glyph in both horizontal and vertical directions. All positions in + * #hb_glyph_position_t are relative to the current point. + * + */ +typedef struct hb_glyph_position_t { + hb_position_t x_advance; + hb_position_t y_advance; + hb_position_t x_offset; + hb_position_t y_offset; + + /*< private >*/ + hb_var_int_t var; +} hb_glyph_position_t; + +/** + * hb_segment_properties_t: + * @direction: the #hb_direction_t of the buffer, see hb_buffer_set_direction(). + * @script: the #hb_script_t of the buffer, see hb_buffer_set_script(). + * @language: the #hb_language_t of the buffer, see hb_buffer_set_language(). + * + * The structure that holds various text properties of an #hb_buffer_t. Can be + * set and retrieved using hb_buffer_set_segment_properties() and + * hb_buffer_get_segment_properties(), respectively. + */ +typedef struct hb_segment_properties_t { + hb_direction_t direction; + hb_script_t script; + hb_language_t language; + /*< private >*/ + void *reserved1; + void *reserved2; +} hb_segment_properties_t; + +/** + * HB_SEGMENT_PROPERTIES_DEFAULT: + * + * The default #hb_segment_properties_t of of freshly created #hb_buffer_t. + */ +#define HB_SEGMENT_PROPERTIES_DEFAULT {HB_DIRECTION_INVALID, \ + HB_SCRIPT_INVALID, \ + HB_LANGUAGE_INVALID, \ + (void *) 0, \ + (void *) 0} + +HB_EXTERN hb_bool_t +hb_segment_properties_equal (const hb_segment_properties_t *a, + const hb_segment_properties_t *b); + +HB_EXTERN unsigned int +hb_segment_properties_hash (const hb_segment_properties_t *p); + +HB_EXTERN void +hb_segment_properties_overlay (hb_segment_properties_t *p, + const hb_segment_properties_t *src); + + +/** + * hb_buffer_t: + * + * The main structure holding the input text and its properties before shaping, + * and output glyphs and their information after shaping. + */ + +typedef struct hb_buffer_t hb_buffer_t; + +HB_EXTERN hb_buffer_t * +hb_buffer_create (void); + +HB_EXTERN hb_buffer_t * +hb_buffer_create_similar (const hb_buffer_t *src); + +HB_EXTERN void +hb_buffer_reset (hb_buffer_t *buffer); + + +HB_EXTERN hb_buffer_t * +hb_buffer_get_empty (void); + +HB_EXTERN hb_buffer_t * +hb_buffer_reference (hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_destroy (hb_buffer_t *buffer); + +HB_EXTERN hb_bool_t +hb_buffer_set_user_data (hb_buffer_t *buffer, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + +HB_EXTERN void * +hb_buffer_get_user_data (const hb_buffer_t *buffer, + hb_user_data_key_t *key); + + +/** + * hb_buffer_content_type_t: + * @HB_BUFFER_CONTENT_TYPE_INVALID: Initial value for new buffer. + * @HB_BUFFER_CONTENT_TYPE_UNICODE: The buffer contains input characters (before shaping). + * @HB_BUFFER_CONTENT_TYPE_GLYPHS: The buffer contains output glyphs (after shaping). + * + * The type of #hb_buffer_t contents. + */ +typedef enum { + HB_BUFFER_CONTENT_TYPE_INVALID = 0, + HB_BUFFER_CONTENT_TYPE_UNICODE, + HB_BUFFER_CONTENT_TYPE_GLYPHS +} hb_buffer_content_type_t; + +HB_EXTERN void +hb_buffer_set_content_type (hb_buffer_t *buffer, + hb_buffer_content_type_t content_type); + +HB_EXTERN hb_buffer_content_type_t +hb_buffer_get_content_type (const hb_buffer_t *buffer); + + +HB_EXTERN void +hb_buffer_set_unicode_funcs (hb_buffer_t *buffer, + hb_unicode_funcs_t *unicode_funcs); + +HB_EXTERN hb_unicode_funcs_t * +hb_buffer_get_unicode_funcs (const hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_set_direction (hb_buffer_t *buffer, + hb_direction_t direction); + +HB_EXTERN hb_direction_t +hb_buffer_get_direction (const hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_set_script (hb_buffer_t *buffer, + hb_script_t script); + +HB_EXTERN hb_script_t +hb_buffer_get_script (const hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_set_language (hb_buffer_t *buffer, + hb_language_t language); + + +HB_EXTERN hb_language_t +hb_buffer_get_language (const hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_set_segment_properties (hb_buffer_t *buffer, + const hb_segment_properties_t *props); + +HB_EXTERN void +hb_buffer_get_segment_properties (const hb_buffer_t *buffer, + hb_segment_properties_t *props); + +HB_EXTERN void +hb_buffer_guess_segment_properties (hb_buffer_t *buffer); + + +/** + * hb_buffer_flags_t: + * @HB_BUFFER_FLAG_DEFAULT: the default buffer flag. + * @HB_BUFFER_FLAG_BOT: flag indicating that special handling of the beginning + * of text paragraph can be applied to this buffer. Should usually + * be set, unless you are passing to the buffer only part + * of the text without the full context. + * @HB_BUFFER_FLAG_EOT: flag indicating that special handling of the end of text + * paragraph can be applied to this buffer, similar to + * @HB_BUFFER_FLAG_BOT. + * @HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES: + * flag indication that character with Default_Ignorable + * Unicode property should use the corresponding glyph + * from the font, instead of hiding them (done by + * replacing them with the space glyph and zeroing the + * advance width.) This flag takes precedence over + * @HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES. + * @HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES: + * flag indication that character with Default_Ignorable + * Unicode property should be removed from glyph string + * instead of hiding them (done by replacing them with the + * space glyph and zeroing the advance width.) + * @HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES takes + * precedence over this flag. Since: 1.8.0 + * @HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE: + * flag indicating that a dotted circle should + * not be inserted in the rendering of incorrect + * character sequences (such at <0905 093E>). Since: 2.4.0 + * @HB_BUFFER_FLAG_VERIFY: + * flag indicating that the hb_shape() call and its variants + * should perform various verification processes on the results + * of the shaping operation on the buffer. If the verification + * fails, then either a buffer message is sent, if a message + * handler is installed on the buffer, or a message is written + * to standard error. In either case, the shaping result might + * be modified to show the failed output. Since: 3.4.0 + * @HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT: + * flag indicating that the @HB_GLYPH_FLAG_UNSAFE_TO_CONCAT + * glyph-flag should be produced by the shaper. By default + * it will not be produced since it incurs a cost. Since: 4.0.0 + * @HB_BUFFER_FLAG_PRODUCE_SAFE_TO_INSERT_TATWEEL: + * flag indicating that the @HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL + * glyph-flag should be produced by the shaper. By default + * it will not be produced. Since: 5.1.0 + * @HB_BUFFER_FLAG_DEFINED: All currently defined flags: Since: 4.4.0 + * + * Flags for #hb_buffer_t. + * + * Since: 0.9.20 + */ +typedef enum { /*< flags >*/ + HB_BUFFER_FLAG_DEFAULT = 0x00000000u, + HB_BUFFER_FLAG_BOT = 0x00000001u, /* Beginning-of-text */ + HB_BUFFER_FLAG_EOT = 0x00000002u, /* End-of-text */ + HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES = 0x00000004u, + HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES = 0x00000008u, + HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE = 0x00000010u, + HB_BUFFER_FLAG_VERIFY = 0x00000020u, + HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT = 0x00000040u, + HB_BUFFER_FLAG_PRODUCE_SAFE_TO_INSERT_TATWEEL = 0x00000080u, + + HB_BUFFER_FLAG_DEFINED = 0x000000FFu +} hb_buffer_flags_t; + +HB_EXTERN void +hb_buffer_set_flags (hb_buffer_t *buffer, + hb_buffer_flags_t flags); + +HB_EXTERN hb_buffer_flags_t +hb_buffer_get_flags (const hb_buffer_t *buffer); + +/** + * hb_buffer_cluster_level_t: + * @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES: Return cluster values grouped by graphemes into + * monotone order. + * @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS: Return cluster values grouped into monotone order. + * @HB_BUFFER_CLUSTER_LEVEL_CHARACTERS: Don't group cluster values. + * @HB_BUFFER_CLUSTER_LEVEL_DEFAULT: Default cluster level, + * equal to @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES. + * + * Data type for holding HarfBuzz's clustering behavior options. The cluster level + * dictates one aspect of how HarfBuzz will treat non-base characters + * during shaping. + * + * In @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES, non-base + * characters are merged into the cluster of the base character that precedes them. + * + * In @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS, non-base characters are initially + * assigned their own cluster values, which are not merged into preceding base + * clusters. This allows HarfBuzz to perform additional operations like reorder + * sequences of adjacent marks. + * + * @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES is the default, because it maintains + * backward compatibility with older versions of HarfBuzz. New client programs that + * do not need to maintain such backward compatibility are recommended to use + * @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS instead of the default. + * + * Since: 0.9.42 + */ +typedef enum { + HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES = 0, + HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS = 1, + HB_BUFFER_CLUSTER_LEVEL_CHARACTERS = 2, + HB_BUFFER_CLUSTER_LEVEL_DEFAULT = HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES +} hb_buffer_cluster_level_t; + +HB_EXTERN void +hb_buffer_set_cluster_level (hb_buffer_t *buffer, + hb_buffer_cluster_level_t cluster_level); + +HB_EXTERN hb_buffer_cluster_level_t +hb_buffer_get_cluster_level (const hb_buffer_t *buffer); + +/** + * HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT: + * + * The default code point for replacing invalid characters in a given encoding. + * Set to U+FFFD REPLACEMENT CHARACTER. + * + * Since: 0.9.31 + */ +#define HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT 0xFFFDu + +HB_EXTERN void +hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer, + hb_codepoint_t replacement); + +HB_EXTERN hb_codepoint_t +hb_buffer_get_replacement_codepoint (const hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_set_invisible_glyph (hb_buffer_t *buffer, + hb_codepoint_t invisible); + +HB_EXTERN hb_codepoint_t +hb_buffer_get_invisible_glyph (const hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_set_not_found_glyph (hb_buffer_t *buffer, + hb_codepoint_t not_found); + +HB_EXTERN hb_codepoint_t +hb_buffer_get_not_found_glyph (const hb_buffer_t *buffer); + + +/* + * Content API. + */ + +HB_EXTERN void +hb_buffer_clear_contents (hb_buffer_t *buffer); + +HB_EXTERN hb_bool_t +hb_buffer_pre_allocate (hb_buffer_t *buffer, + unsigned int size); + + +HB_EXTERN hb_bool_t +hb_buffer_allocation_successful (hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_reverse (hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_reverse_range (hb_buffer_t *buffer, + unsigned int start, unsigned int end); + +HB_EXTERN void +hb_buffer_reverse_clusters (hb_buffer_t *buffer); + + +/* Filling the buffer in */ + +HB_EXTERN void +hb_buffer_add (hb_buffer_t *buffer, + hb_codepoint_t codepoint, + unsigned int cluster); + +HB_EXTERN void +hb_buffer_add_utf8 (hb_buffer_t *buffer, + const char *text, + int text_length, + unsigned int item_offset, + int item_length); + +HB_EXTERN void +hb_buffer_add_utf16 (hb_buffer_t *buffer, + const uint16_t *text, + int text_length, + unsigned int item_offset, + int item_length); + +HB_EXTERN void +hb_buffer_add_utf32 (hb_buffer_t *buffer, + const uint32_t *text, + int text_length, + unsigned int item_offset, + int item_length); + +HB_EXTERN void +hb_buffer_add_latin1 (hb_buffer_t *buffer, + const uint8_t *text, + int text_length, + unsigned int item_offset, + int item_length); + +HB_EXTERN void +hb_buffer_add_codepoints (hb_buffer_t *buffer, + const hb_codepoint_t *text, + int text_length, + unsigned int item_offset, + int item_length); + +HB_EXTERN void +hb_buffer_append (hb_buffer_t *buffer, + const hb_buffer_t *source, + unsigned int start, + unsigned int end); + +HB_EXTERN hb_bool_t +hb_buffer_set_length (hb_buffer_t *buffer, + unsigned int length); + +HB_EXTERN unsigned int +hb_buffer_get_length (const hb_buffer_t *buffer); + +/* Getting glyphs out of the buffer */ + +HB_EXTERN hb_glyph_info_t * +hb_buffer_get_glyph_infos (hb_buffer_t *buffer, + unsigned int *length); + +HB_EXTERN hb_glyph_position_t * +hb_buffer_get_glyph_positions (hb_buffer_t *buffer, + unsigned int *length); + +HB_EXTERN hb_bool_t +hb_buffer_has_positions (hb_buffer_t *buffer); + + +HB_EXTERN void +hb_buffer_normalize_glyphs (hb_buffer_t *buffer); + + +/* + * Serialize + */ + +/** + * hb_buffer_serialize_flags_t: + * @HB_BUFFER_SERIALIZE_FLAG_DEFAULT: serialize glyph names, clusters and positions. + * @HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS: do not serialize glyph cluster. + * @HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS: do not serialize glyph position information. + * @HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES: do no serialize glyph name. + * @HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS: serialize glyph extents. + * @HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS: serialize glyph flags. Since: 1.5.0 + * @HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES: do not serialize glyph advances, + * glyph offsets will reflect absolute glyph positions. Since: 1.8.0 + * @HB_BUFFER_SERIALIZE_FLAG_DEFINED: All currently defined flags. Since: 4.4.0 + * + * Flags that control what glyph information are serialized in hb_buffer_serialize_glyphs(). + * + * Since: 0.9.20 + */ +typedef enum { /*< flags >*/ + HB_BUFFER_SERIALIZE_FLAG_DEFAULT = 0x00000000u, + HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS = 0x00000001u, + HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS = 0x00000002u, + HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES = 0x00000004u, + HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS = 0x00000008u, + HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS = 0x00000010u, + HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES = 0x00000020u, + + HB_BUFFER_SERIALIZE_FLAG_DEFINED = 0x0000003Fu +} hb_buffer_serialize_flags_t; + +/** + * hb_buffer_serialize_format_t: + * @HB_BUFFER_SERIALIZE_FORMAT_TEXT: a human-readable, plain text format. + * @HB_BUFFER_SERIALIZE_FORMAT_JSON: a machine-readable JSON format. + * @HB_BUFFER_SERIALIZE_FORMAT_INVALID: invalid format. + * + * The buffer serialization and de-serialization format used in + * hb_buffer_serialize_glyphs() and hb_buffer_deserialize_glyphs(). + * + * Since: 0.9.2 + */ +typedef enum { + HB_BUFFER_SERIALIZE_FORMAT_TEXT = HB_TAG('T','E','X','T'), + HB_BUFFER_SERIALIZE_FORMAT_JSON = HB_TAG('J','S','O','N'), + HB_BUFFER_SERIALIZE_FORMAT_INVALID = HB_TAG_NONE +} hb_buffer_serialize_format_t; + +HB_EXTERN hb_buffer_serialize_format_t +hb_buffer_serialize_format_from_string (const char *str, int len); + +HB_EXTERN const char * +hb_buffer_serialize_format_to_string (hb_buffer_serialize_format_t format); + +HB_EXTERN const char ** +hb_buffer_serialize_list_formats (void); + +HB_EXTERN unsigned int +hb_buffer_serialize_glyphs (hb_buffer_t *buffer, + unsigned int start, + unsigned int end, + char *buf, + unsigned int buf_size, + unsigned int *buf_consumed, + hb_font_t *font, + hb_buffer_serialize_format_t format, + hb_buffer_serialize_flags_t flags); + +HB_EXTERN unsigned int +hb_buffer_serialize_unicode (hb_buffer_t *buffer, + unsigned int start, + unsigned int end, + char *buf, + unsigned int buf_size, + unsigned int *buf_consumed, + hb_buffer_serialize_format_t format, + hb_buffer_serialize_flags_t flags); + +HB_EXTERN unsigned int +hb_buffer_serialize (hb_buffer_t *buffer, + unsigned int start, + unsigned int end, + char *buf, + unsigned int buf_size, + unsigned int *buf_consumed, + hb_font_t *font, + hb_buffer_serialize_format_t format, + hb_buffer_serialize_flags_t flags); + +HB_EXTERN hb_bool_t +hb_buffer_deserialize_glyphs (hb_buffer_t *buffer, + const char *buf, + int buf_len, + const char **end_ptr, + hb_font_t *font, + hb_buffer_serialize_format_t format); + +HB_EXTERN hb_bool_t +hb_buffer_deserialize_unicode (hb_buffer_t *buffer, + const char *buf, + int buf_len, + const char **end_ptr, + hb_buffer_serialize_format_t format); + + + +/* + * Compare buffers + */ + +/** + * hb_buffer_diff_flags_t: + * @HB_BUFFER_DIFF_FLAG_EQUAL: equal buffers. + * @HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH: buffers with different + * #hb_buffer_content_type_t. + * @HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH: buffers with differing length. + * @HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT: `.notdef` glyph is present in the + * reference buffer. + * @HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT: dotted circle glyph is present + * in the reference buffer. + * @HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH: difference in #hb_glyph_info_t.codepoint + * @HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH: difference in #hb_glyph_info_t.cluster + * @HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH: difference in #hb_glyph_flags_t. + * @HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH: difference in #hb_glyph_position_t. + * + * Flags from comparing two #hb_buffer_t's. + * + * Buffer with different #hb_buffer_content_type_t cannot be meaningfully + * compared in any further detail. + * + * For buffers with differing length, the per-glyph comparison is not + * attempted, though we do still scan reference buffer for dotted circle and + * `.notdef` glyphs. + * + * If the buffers have the same length, we compare them glyph-by-glyph and + * report which aspect(s) of the glyph info/position are different. + * + * Since: 1.5.0 + */ +typedef enum { /*< flags >*/ + HB_BUFFER_DIFF_FLAG_EQUAL = 0x0000, + + /* Buffers with different content_type cannot be meaningfully compared + * in any further detail. */ + HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH = 0x0001, + + /* For buffers with differing length, the per-glyph comparison is not + * attempted, though we do still scan reference for dottedcircle / .notdef + * glyphs. */ + HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH = 0x0002, + + /* We want to know if dottedcircle / .notdef glyphs are present in the + * reference, as we may not care so much about other differences in this + * case. */ + HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT = 0x0004, + HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT = 0x0008, + + /* If the buffers have the same length, we compare them glyph-by-glyph + * and report which aspect(s) of the glyph info/position are different. */ + HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH = 0x0010, + HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH = 0x0020, + HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH = 0x0040, + HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH = 0x0080 + +} hb_buffer_diff_flags_t; + +/* Compare the contents of two buffers, report types of differences. */ +HB_EXTERN hb_buffer_diff_flags_t +hb_buffer_diff (hb_buffer_t *buffer, + hb_buffer_t *reference, + hb_codepoint_t dottedcircle_glyph, + unsigned int position_fuzz); + + +/* + * Debugging. + */ + +/** + * hb_buffer_message_func_t: + * @buffer: An #hb_buffer_t to work upon + * @font: The #hb_font_t the @buffer is shaped with + * @message: `NULL`-terminated message passed to the function + * @user_data: User data pointer passed by the caller + * + * A callback method for #hb_buffer_t. The method gets called with the + * #hb_buffer_t it was set on, the #hb_font_t the buffer is shaped with and a + * message describing what step of the shaping process will be performed. + * Returning `false` from this method will skip this shaping step and move to + * the next one. + * + * Return value: `true` to perform the shaping step, `false` to skip it. + * + * Since: 1.1.3 + */ +typedef hb_bool_t (*hb_buffer_message_func_t) (hb_buffer_t *buffer, + hb_font_t *font, + const char *message, + void *user_data); + +HB_EXTERN void +hb_buffer_set_message_func (hb_buffer_t *buffer, + hb_buffer_message_func_t func, + void *user_data, hb_destroy_func_t destroy); + + +HB_END_DECLS + +#endif /* HB_BUFFER_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-common.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-common.h new file mode 100644 index 0000000..e92feb9 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-common.h @@ -0,0 +1,902 @@ +/* + * Copyright © 2007,2008,2009 Red Hat, Inc. + * Copyright © 2011,2012 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_COMMON_H +#define HB_COMMON_H + +#ifndef HB_EXTERN +#define HB_EXTERN extern +#endif + +#ifndef HB_BEGIN_DECLS +# ifdef __cplusplus +# define HB_BEGIN_DECLS extern "C" { +# define HB_END_DECLS } +# else /* !__cplusplus */ +# define HB_BEGIN_DECLS +# define HB_END_DECLS +# endif /* !__cplusplus */ +#endif + +#if defined (_SVR4) || defined (SVR4) || defined (__OpenBSD__) || \ + defined (_sgi) || defined (__sun) || defined (sun) || \ + defined (__digital__) || defined (__HP_cc) +# include +#elif defined (_AIX) +# include +#elif defined (_MSC_VER) && _MSC_VER < 1600 +/* VS 2010 (_MSC_VER 1600) has stdint.h */ +typedef __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#elif defined (__KERNEL__) +# include +#else +# include +#endif + +#if defined(__GNUC__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) +#define HB_DEPRECATED __attribute__((__deprecated__)) +#elif defined(_MSC_VER) && (_MSC_VER >= 1300) +#define HB_DEPRECATED __declspec(deprecated) +#else +#define HB_DEPRECATED +#endif + +#if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) +#define HB_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead"))) +#elif defined(_MSC_FULL_VER) && (_MSC_FULL_VER > 140050320) +#define HB_DEPRECATED_FOR(f) __declspec(deprecated("is deprecated. Use '" #f "' instead")) +#else +#define HB_DEPRECATED_FOR(f) HB_DEPRECATED +#endif + + +HB_BEGIN_DECLS + +/** + * hb_bool_t: + * + * Data type for booleans. + * + **/ +typedef int hb_bool_t; + +/** + * hb_codepoint_t: + * + * Data type for holding Unicode codepoints. Also + * used to hold glyph IDs. + * + **/ +typedef uint32_t hb_codepoint_t; +/** + * hb_position_t: + * + * Data type for holding a single coordinate value. + * Contour points and other multi-dimensional data are + * stored as tuples of #hb_position_t's. + * + **/ +typedef int32_t hb_position_t; +/** + * hb_mask_t: + * + * Data type for bitmasks. + * + **/ +typedef uint32_t hb_mask_t; + +typedef union _hb_var_int_t { + uint32_t u32; + int32_t i32; + uint16_t u16[2]; + int16_t i16[2]; + uint8_t u8[4]; + int8_t i8[4]; +} hb_var_int_t; + +typedef union _hb_var_num_t { + float f; + uint32_t u32; + int32_t i32; + uint16_t u16[2]; + int16_t i16[2]; + uint8_t u8[4]; + int8_t i8[4]; +} hb_var_num_t; + + +/* hb_tag_t */ + +/** + * hb_tag_t: + * + * Data type for tag identifiers. Tags are four + * byte integers, each byte representing a character. + * + * Tags are used to identify tables, design-variation axes, + * scripts, languages, font features, and baselines with + * human-readable names. + * + **/ +typedef uint32_t hb_tag_t; + +/** + * HB_TAG: + * @c1: 1st character of the tag + * @c2: 2nd character of the tag + * @c3: 3rd character of the tag + * @c4: 4th character of the tag + * + * Constructs an #hb_tag_t from four character literals. + * + **/ +#define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint32_t)(c1)&0xFF)<<24)|(((uint32_t)(c2)&0xFF)<<16)|(((uint32_t)(c3)&0xFF)<<8)|((uint32_t)(c4)&0xFF))) + +/** + * HB_UNTAG: + * @tag: an #hb_tag_t + * + * Extracts four character literals from an #hb_tag_t. + * + * Since: 0.6.0 + * + **/ +#define HB_UNTAG(tag) (uint8_t)(((tag)>>24)&0xFF), (uint8_t)(((tag)>>16)&0xFF), (uint8_t)(((tag)>>8)&0xFF), (uint8_t)((tag)&0xFF) + +/** + * HB_TAG_NONE: + * + * Unset #hb_tag_t. + */ +#define HB_TAG_NONE HB_TAG(0,0,0,0) +/** + * HB_TAG_MAX: + * + * Maximum possible unsigned #hb_tag_t. + * + * Since: 0.9.26 + */ +#define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff) +/** + * HB_TAG_MAX_SIGNED: + * + * Maximum possible signed #hb_tag_t. + * + * Since: 0.9.33 + */ +#define HB_TAG_MAX_SIGNED HB_TAG(0x7f,0xff,0xff,0xff) + +/* len=-1 means str is NUL-terminated. */ +HB_EXTERN hb_tag_t +hb_tag_from_string (const char *str, int len); + +/* buf should have 4 bytes. */ +HB_EXTERN void +hb_tag_to_string (hb_tag_t tag, char *buf); + + +/** + * hb_direction_t: + * @HB_DIRECTION_INVALID: Initial, unset direction. + * @HB_DIRECTION_LTR: Text is set horizontally from left to right. + * @HB_DIRECTION_RTL: Text is set horizontally from right to left. + * @HB_DIRECTION_TTB: Text is set vertically from top to bottom. + * @HB_DIRECTION_BTT: Text is set vertically from bottom to top. + * + * The direction of a text segment or buffer. + * + * A segment can also be tested for horizontal or vertical + * orientation (irrespective of specific direction) with + * HB_DIRECTION_IS_HORIZONTAL() or HB_DIRECTION_IS_VERTICAL(). + * + */ +typedef enum { + HB_DIRECTION_INVALID = 0, + HB_DIRECTION_LTR = 4, + HB_DIRECTION_RTL, + HB_DIRECTION_TTB, + HB_DIRECTION_BTT +} hb_direction_t; + +/* len=-1 means str is NUL-terminated */ +HB_EXTERN hb_direction_t +hb_direction_from_string (const char *str, int len); + +HB_EXTERN const char * +hb_direction_to_string (hb_direction_t direction); + +/** + * HB_DIRECTION_IS_VALID: + * @dir: #hb_direction_t to test + * + * Tests whether a text direction is valid. + * + **/ +#define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) & ~3U) == 4) +/* Direction must be valid for the following */ +/** + * HB_DIRECTION_IS_HORIZONTAL: + * @dir: #hb_direction_t to test + * + * Tests whether a text direction is horizontal. Requires + * that the direction be valid. + * + **/ +#define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) & ~1U) == 4) +/** + * HB_DIRECTION_IS_VERTICAL: + * @dir: #hb_direction_t to test + * + * Tests whether a text direction is vertical. Requires + * that the direction be valid. + * + **/ +#define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) & ~1U) == 6) +/** + * HB_DIRECTION_IS_FORWARD: + * @dir: #hb_direction_t to test + * + * Tests whether a text direction moves forward (from left to right, or from + * top to bottom). Requires that the direction be valid. + * + **/ +#define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) & ~2U) == 4) +/** + * HB_DIRECTION_IS_BACKWARD: + * @dir: #hb_direction_t to test + * + * Tests whether a text direction moves backward (from right to left, or from + * bottom to top). Requires that the direction be valid. + * + **/ +#define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) & ~2U) == 5) +/** + * HB_DIRECTION_REVERSE: + * @dir: #hb_direction_t to reverse + * + * Reverses a text direction. Requires that the direction + * be valid. + * + **/ +#define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1)) + + +/* hb_language_t */ + +/** + * hb_language_t: + * + * Data type for languages. Each #hb_language_t corresponds to a BCP 47 + * language tag. + * + */ +typedef const struct hb_language_impl_t *hb_language_t; + +HB_EXTERN hb_language_t +hb_language_from_string (const char *str, int len); + +HB_EXTERN const char * +hb_language_to_string (hb_language_t language); + +/** + * HB_LANGUAGE_INVALID: + * + * An unset #hb_language_t. + * + * Since: 0.6.0 + */ +#define HB_LANGUAGE_INVALID ((hb_language_t) 0) + +HB_EXTERN hb_language_t +hb_language_get_default (void); + +HB_EXTERN hb_bool_t +hb_language_matches (hb_language_t language, + hb_language_t specific); + +/** + * hb_script_t: + * @HB_SCRIPT_COMMON: `Zyyy` + * @HB_SCRIPT_INHERITED: `Zinh` + * @HB_SCRIPT_UNKNOWN: `Zzzz` + * @HB_SCRIPT_ARABIC: `Arab` + * @HB_SCRIPT_ARMENIAN: `Armn` + * @HB_SCRIPT_BENGALI: `Beng` + * @HB_SCRIPT_CYRILLIC: `Cyrl` + * @HB_SCRIPT_DEVANAGARI: `Deva` + * @HB_SCRIPT_GEORGIAN: `Geor` + * @HB_SCRIPT_GREEK: `Grek` + * @HB_SCRIPT_GUJARATI: `Gujr` + * @HB_SCRIPT_GURMUKHI: `Guru` + * @HB_SCRIPT_HANGUL: `Hang` + * @HB_SCRIPT_HAN: `Hani` + * @HB_SCRIPT_HEBREW: `Hebr` + * @HB_SCRIPT_HIRAGANA: `Hira` + * @HB_SCRIPT_KANNADA: `Knda` + * @HB_SCRIPT_KATAKANA: `Kana` + * @HB_SCRIPT_LAO: `Laoo` + * @HB_SCRIPT_LATIN: `Latn` + * @HB_SCRIPT_MALAYALAM: `Mlym` + * @HB_SCRIPT_ORIYA: `Orya` + * @HB_SCRIPT_TAMIL: `Taml` + * @HB_SCRIPT_TELUGU: `Telu` + * @HB_SCRIPT_THAI: `Thai` + * @HB_SCRIPT_TIBETAN: `Tibt` + * @HB_SCRIPT_BOPOMOFO: `Bopo` + * @HB_SCRIPT_BRAILLE: `Brai` + * @HB_SCRIPT_CANADIAN_SYLLABICS: `Cans` + * @HB_SCRIPT_CHEROKEE: `Cher` + * @HB_SCRIPT_ETHIOPIC: `Ethi` + * @HB_SCRIPT_KHMER: `Khmr` + * @HB_SCRIPT_MONGOLIAN: `Mong` + * @HB_SCRIPT_MYANMAR: `Mymr` + * @HB_SCRIPT_OGHAM: `Ogam` + * @HB_SCRIPT_RUNIC: `Runr` + * @HB_SCRIPT_SINHALA: `Sinh` + * @HB_SCRIPT_SYRIAC: `Syrc` + * @HB_SCRIPT_THAANA: `Thaa` + * @HB_SCRIPT_YI: `Yiii` + * @HB_SCRIPT_DESERET: `Dsrt` + * @HB_SCRIPT_GOTHIC: `Goth` + * @HB_SCRIPT_OLD_ITALIC: `Ital` + * @HB_SCRIPT_BUHID: `Buhd` + * @HB_SCRIPT_HANUNOO: `Hano` + * @HB_SCRIPT_TAGALOG: `Tglg` + * @HB_SCRIPT_TAGBANWA: `Tagb` + * @HB_SCRIPT_CYPRIOT: `Cprt` + * @HB_SCRIPT_LIMBU: `Limb` + * @HB_SCRIPT_LINEAR_B: `Linb` + * @HB_SCRIPT_OSMANYA: `Osma` + * @HB_SCRIPT_SHAVIAN: `Shaw` + * @HB_SCRIPT_TAI_LE: `Tale` + * @HB_SCRIPT_UGARITIC: `Ugar` + * @HB_SCRIPT_BUGINESE: `Bugi` + * @HB_SCRIPT_COPTIC: `Copt` + * @HB_SCRIPT_GLAGOLITIC: `Glag` + * @HB_SCRIPT_KHAROSHTHI: `Khar` + * @HB_SCRIPT_NEW_TAI_LUE: `Talu` + * @HB_SCRIPT_OLD_PERSIAN: `Xpeo` + * @HB_SCRIPT_SYLOTI_NAGRI: `Sylo` + * @HB_SCRIPT_TIFINAGH: `Tfng` + * @HB_SCRIPT_BALINESE: `Bali` + * @HB_SCRIPT_CUNEIFORM: `Xsux` + * @HB_SCRIPT_NKO: `Nkoo` + * @HB_SCRIPT_PHAGS_PA: `Phag` + * @HB_SCRIPT_PHOENICIAN: `Phnx` + * @HB_SCRIPT_CARIAN: `Cari` + * @HB_SCRIPT_CHAM: `Cham` + * @HB_SCRIPT_KAYAH_LI: `Kali` + * @HB_SCRIPT_LEPCHA: `Lepc` + * @HB_SCRIPT_LYCIAN: `Lyci` + * @HB_SCRIPT_LYDIAN: `Lydi` + * @HB_SCRIPT_OL_CHIKI: `Olck` + * @HB_SCRIPT_REJANG: `Rjng` + * @HB_SCRIPT_SAURASHTRA: `Saur` + * @HB_SCRIPT_SUNDANESE: `Sund` + * @HB_SCRIPT_VAI: `Vaii` + * @HB_SCRIPT_AVESTAN: `Avst` + * @HB_SCRIPT_BAMUM: `Bamu` + * @HB_SCRIPT_EGYPTIAN_HIEROGLYPHS: `Egyp` + * @HB_SCRIPT_IMPERIAL_ARAMAIC: `Armi` + * @HB_SCRIPT_INSCRIPTIONAL_PAHLAVI: `Phli` + * @HB_SCRIPT_INSCRIPTIONAL_PARTHIAN: `Prti` + * @HB_SCRIPT_JAVANESE: `Java` + * @HB_SCRIPT_KAITHI: `Kthi` + * @HB_SCRIPT_LISU: `Lisu` + * @HB_SCRIPT_MEETEI_MAYEK: `Mtei` + * @HB_SCRIPT_OLD_SOUTH_ARABIAN: `Sarb` + * @HB_SCRIPT_OLD_TURKIC: `Orkh` + * @HB_SCRIPT_SAMARITAN: `Samr` + * @HB_SCRIPT_TAI_THAM: `Lana` + * @HB_SCRIPT_TAI_VIET: `Tavt` + * @HB_SCRIPT_BATAK: `Batk` + * @HB_SCRIPT_BRAHMI: `Brah` + * @HB_SCRIPT_MANDAIC: `Mand` + * @HB_SCRIPT_CHAKMA: `Cakm` + * @HB_SCRIPT_MEROITIC_CURSIVE: `Merc` + * @HB_SCRIPT_MEROITIC_HIEROGLYPHS: `Mero` + * @HB_SCRIPT_MIAO: `Plrd` + * @HB_SCRIPT_SHARADA: `Shrd` + * @HB_SCRIPT_SORA_SOMPENG: `Sora` + * @HB_SCRIPT_TAKRI: `Takr` + * @HB_SCRIPT_BASSA_VAH: `Bass`, Since: 0.9.30 + * @HB_SCRIPT_CAUCASIAN_ALBANIAN: `Aghb`, Since: 0.9.30 + * @HB_SCRIPT_DUPLOYAN: `Dupl`, Since: 0.9.30 + * @HB_SCRIPT_ELBASAN: `Elba`, Since: 0.9.30 + * @HB_SCRIPT_GRANTHA: `Gran`, Since: 0.9.30 + * @HB_SCRIPT_KHOJKI: `Khoj`, Since: 0.9.30 + * @HB_SCRIPT_KHUDAWADI: `Sind`, Since: 0.9.30 + * @HB_SCRIPT_LINEAR_A: `Lina`, Since: 0.9.30 + * @HB_SCRIPT_MAHAJANI: `Mahj`, Since: 0.9.30 + * @HB_SCRIPT_MANICHAEAN: `Mani`, Since: 0.9.30 + * @HB_SCRIPT_MENDE_KIKAKUI: `Mend`, Since: 0.9.30 + * @HB_SCRIPT_MODI: `Modi`, Since: 0.9.30 + * @HB_SCRIPT_MRO: `Mroo`, Since: 0.9.30 + * @HB_SCRIPT_NABATAEAN: `Nbat`, Since: 0.9.30 + * @HB_SCRIPT_OLD_NORTH_ARABIAN: `Narb`, Since: 0.9.30 + * @HB_SCRIPT_OLD_PERMIC: `Perm`, Since: 0.9.30 + * @HB_SCRIPT_PAHAWH_HMONG: `Hmng`, Since: 0.9.30 + * @HB_SCRIPT_PALMYRENE: `Palm`, Since: 0.9.30 + * @HB_SCRIPT_PAU_CIN_HAU: `Pauc`, Since: 0.9.30 + * @HB_SCRIPT_PSALTER_PAHLAVI: `Phlp`, Since: 0.9.30 + * @HB_SCRIPT_SIDDHAM: `Sidd`, Since: 0.9.30 + * @HB_SCRIPT_TIRHUTA: `Tirh`, Since: 0.9.30 + * @HB_SCRIPT_WARANG_CITI: `Wara`, Since: 0.9.30 + * @HB_SCRIPT_AHOM: `Ahom`, Since: 0.9.30 + * @HB_SCRIPT_ANATOLIAN_HIEROGLYPHS: `Hluw`, Since: 0.9.30 + * @HB_SCRIPT_HATRAN: `Hatr`, Since: 0.9.30 + * @HB_SCRIPT_MULTANI: `Mult`, Since: 0.9.30 + * @HB_SCRIPT_OLD_HUNGARIAN: `Hung`, Since: 0.9.30 + * @HB_SCRIPT_SIGNWRITING: `Sgnw`, Since: 0.9.30 + * @HB_SCRIPT_ADLAM: `Adlm`, Since: 1.3.0 + * @HB_SCRIPT_BHAIKSUKI: `Bhks`, Since: 1.3.0 + * @HB_SCRIPT_MARCHEN: `Marc`, Since: 1.3.0 + * @HB_SCRIPT_OSAGE: `Osge`, Since: 1.3.0 + * @HB_SCRIPT_TANGUT: `Tang`, Since: 1.3.0 + * @HB_SCRIPT_NEWA: `Newa`, Since: 1.3.0 + * @HB_SCRIPT_MASARAM_GONDI: `Gonm`, Since: 1.6.0 + * @HB_SCRIPT_NUSHU: `Nshu`, Since: 1.6.0 + * @HB_SCRIPT_SOYOMBO: `Soyo`, Since: 1.6.0 + * @HB_SCRIPT_ZANABAZAR_SQUARE: `Zanb`, Since: 1.6.0 + * @HB_SCRIPT_DOGRA: `Dogr`, Since: 1.8.0 + * @HB_SCRIPT_GUNJALA_GONDI: `Gong`, Since: 1.8.0 + * @HB_SCRIPT_HANIFI_ROHINGYA: `Rohg`, Since: 1.8.0 + * @HB_SCRIPT_MAKASAR: `Maka`, Since: 1.8.0 + * @HB_SCRIPT_MEDEFAIDRIN: `Medf`, Since: 1.8.0 + * @HB_SCRIPT_OLD_SOGDIAN: `Sogo`, Since: 1.8.0 + * @HB_SCRIPT_SOGDIAN: `Sogd`, Since: 1.8.0 + * @HB_SCRIPT_ELYMAIC: `Elym`, Since: 2.4.0 + * @HB_SCRIPT_NANDINAGARI: `Nand`, Since: 2.4.0 + * @HB_SCRIPT_NYIAKENG_PUACHUE_HMONG: `Hmnp`, Since: 2.4.0 + * @HB_SCRIPT_WANCHO: `Wcho`, Since: 2.4.0 + * @HB_SCRIPT_CHORASMIAN: `Chrs`, Since: 2.6.7 + * @HB_SCRIPT_DIVES_AKURU: `Diak`, Since: 2.6.7 + * @HB_SCRIPT_KHITAN_SMALL_SCRIPT: `Kits`, Since: 2.6.7 + * @HB_SCRIPT_YEZIDI: `Yezi`, Since: 2.6.7 + * @HB_SCRIPT_CYPRO_MINOAN: `Cpmn`, Since: 3.0.0 + * @HB_SCRIPT_OLD_UYGHUR: `Ougr`, Since: 3.0.0 + * @HB_SCRIPT_TANGSA: `Tnsa`, Since: 3.0.0 + * @HB_SCRIPT_TOTO: `Toto`, Since: 3.0.0 + * @HB_SCRIPT_VITHKUQI: `Vith`, Since: 3.0.0 + * @HB_SCRIPT_MATH: `Zmth`, Since: 3.4.0 + * @HB_SCRIPT_KAWI: `Kawi`, Since: 5.2.0 + * @HB_SCRIPT_NAG_MUNDARI: `Nagm`, Since: 5.2.0 + * @HB_SCRIPT_INVALID: No script set + * + * Data type for scripts. Each #hb_script_t's value is an #hb_tag_t corresponding + * to the four-letter values defined by [ISO 15924](https://unicode.org/iso15924/). + * + * See also the Script (sc) property of the Unicode Character Database. + * + **/ + +/* https://docs.google.com/spreadsheets/d/1Y90M0Ie3MUJ6UVCRDOypOtijlMDLNNyyLk36T6iMu0o */ +typedef enum +{ + HB_SCRIPT_COMMON = HB_TAG ('Z','y','y','y'), /*1.1*/ + HB_SCRIPT_INHERITED = HB_TAG ('Z','i','n','h'), /*1.1*/ + HB_SCRIPT_UNKNOWN = HB_TAG ('Z','z','z','z'), /*5.0*/ + + HB_SCRIPT_ARABIC = HB_TAG ('A','r','a','b'), /*1.1*/ + HB_SCRIPT_ARMENIAN = HB_TAG ('A','r','m','n'), /*1.1*/ + HB_SCRIPT_BENGALI = HB_TAG ('B','e','n','g'), /*1.1*/ + HB_SCRIPT_CYRILLIC = HB_TAG ('C','y','r','l'), /*1.1*/ + HB_SCRIPT_DEVANAGARI = HB_TAG ('D','e','v','a'), /*1.1*/ + HB_SCRIPT_GEORGIAN = HB_TAG ('G','e','o','r'), /*1.1*/ + HB_SCRIPT_GREEK = HB_TAG ('G','r','e','k'), /*1.1*/ + HB_SCRIPT_GUJARATI = HB_TAG ('G','u','j','r'), /*1.1*/ + HB_SCRIPT_GURMUKHI = HB_TAG ('G','u','r','u'), /*1.1*/ + HB_SCRIPT_HANGUL = HB_TAG ('H','a','n','g'), /*1.1*/ + HB_SCRIPT_HAN = HB_TAG ('H','a','n','i'), /*1.1*/ + HB_SCRIPT_HEBREW = HB_TAG ('H','e','b','r'), /*1.1*/ + HB_SCRIPT_HIRAGANA = HB_TAG ('H','i','r','a'), /*1.1*/ + HB_SCRIPT_KANNADA = HB_TAG ('K','n','d','a'), /*1.1*/ + HB_SCRIPT_KATAKANA = HB_TAG ('K','a','n','a'), /*1.1*/ + HB_SCRIPT_LAO = HB_TAG ('L','a','o','o'), /*1.1*/ + HB_SCRIPT_LATIN = HB_TAG ('L','a','t','n'), /*1.1*/ + HB_SCRIPT_MALAYALAM = HB_TAG ('M','l','y','m'), /*1.1*/ + HB_SCRIPT_ORIYA = HB_TAG ('O','r','y','a'), /*1.1*/ + HB_SCRIPT_TAMIL = HB_TAG ('T','a','m','l'), /*1.1*/ + HB_SCRIPT_TELUGU = HB_TAG ('T','e','l','u'), /*1.1*/ + HB_SCRIPT_THAI = HB_TAG ('T','h','a','i'), /*1.1*/ + + HB_SCRIPT_TIBETAN = HB_TAG ('T','i','b','t'), /*2.0*/ + + HB_SCRIPT_BOPOMOFO = HB_TAG ('B','o','p','o'), /*3.0*/ + HB_SCRIPT_BRAILLE = HB_TAG ('B','r','a','i'), /*3.0*/ + HB_SCRIPT_CANADIAN_SYLLABICS = HB_TAG ('C','a','n','s'), /*3.0*/ + HB_SCRIPT_CHEROKEE = HB_TAG ('C','h','e','r'), /*3.0*/ + HB_SCRIPT_ETHIOPIC = HB_TAG ('E','t','h','i'), /*3.0*/ + HB_SCRIPT_KHMER = HB_TAG ('K','h','m','r'), /*3.0*/ + HB_SCRIPT_MONGOLIAN = HB_TAG ('M','o','n','g'), /*3.0*/ + HB_SCRIPT_MYANMAR = HB_TAG ('M','y','m','r'), /*3.0*/ + HB_SCRIPT_OGHAM = HB_TAG ('O','g','a','m'), /*3.0*/ + HB_SCRIPT_RUNIC = HB_TAG ('R','u','n','r'), /*3.0*/ + HB_SCRIPT_SINHALA = HB_TAG ('S','i','n','h'), /*3.0*/ + HB_SCRIPT_SYRIAC = HB_TAG ('S','y','r','c'), /*3.0*/ + HB_SCRIPT_THAANA = HB_TAG ('T','h','a','a'), /*3.0*/ + HB_SCRIPT_YI = HB_TAG ('Y','i','i','i'), /*3.0*/ + + HB_SCRIPT_DESERET = HB_TAG ('D','s','r','t'), /*3.1*/ + HB_SCRIPT_GOTHIC = HB_TAG ('G','o','t','h'), /*3.1*/ + HB_SCRIPT_OLD_ITALIC = HB_TAG ('I','t','a','l'), /*3.1*/ + + HB_SCRIPT_BUHID = HB_TAG ('B','u','h','d'), /*3.2*/ + HB_SCRIPT_HANUNOO = HB_TAG ('H','a','n','o'), /*3.2*/ + HB_SCRIPT_TAGALOG = HB_TAG ('T','g','l','g'), /*3.2*/ + HB_SCRIPT_TAGBANWA = HB_TAG ('T','a','g','b'), /*3.2*/ + + HB_SCRIPT_CYPRIOT = HB_TAG ('C','p','r','t'), /*4.0*/ + HB_SCRIPT_LIMBU = HB_TAG ('L','i','m','b'), /*4.0*/ + HB_SCRIPT_LINEAR_B = HB_TAG ('L','i','n','b'), /*4.0*/ + HB_SCRIPT_OSMANYA = HB_TAG ('O','s','m','a'), /*4.0*/ + HB_SCRIPT_SHAVIAN = HB_TAG ('S','h','a','w'), /*4.0*/ + HB_SCRIPT_TAI_LE = HB_TAG ('T','a','l','e'), /*4.0*/ + HB_SCRIPT_UGARITIC = HB_TAG ('U','g','a','r'), /*4.0*/ + + HB_SCRIPT_BUGINESE = HB_TAG ('B','u','g','i'), /*4.1*/ + HB_SCRIPT_COPTIC = HB_TAG ('C','o','p','t'), /*4.1*/ + HB_SCRIPT_GLAGOLITIC = HB_TAG ('G','l','a','g'), /*4.1*/ + HB_SCRIPT_KHAROSHTHI = HB_TAG ('K','h','a','r'), /*4.1*/ + HB_SCRIPT_NEW_TAI_LUE = HB_TAG ('T','a','l','u'), /*4.1*/ + HB_SCRIPT_OLD_PERSIAN = HB_TAG ('X','p','e','o'), /*4.1*/ + HB_SCRIPT_SYLOTI_NAGRI = HB_TAG ('S','y','l','o'), /*4.1*/ + HB_SCRIPT_TIFINAGH = HB_TAG ('T','f','n','g'), /*4.1*/ + + HB_SCRIPT_BALINESE = HB_TAG ('B','a','l','i'), /*5.0*/ + HB_SCRIPT_CUNEIFORM = HB_TAG ('X','s','u','x'), /*5.0*/ + HB_SCRIPT_NKO = HB_TAG ('N','k','o','o'), /*5.0*/ + HB_SCRIPT_PHAGS_PA = HB_TAG ('P','h','a','g'), /*5.0*/ + HB_SCRIPT_PHOENICIAN = HB_TAG ('P','h','n','x'), /*5.0*/ + + HB_SCRIPT_CARIAN = HB_TAG ('C','a','r','i'), /*5.1*/ + HB_SCRIPT_CHAM = HB_TAG ('C','h','a','m'), /*5.1*/ + HB_SCRIPT_KAYAH_LI = HB_TAG ('K','a','l','i'), /*5.1*/ + HB_SCRIPT_LEPCHA = HB_TAG ('L','e','p','c'), /*5.1*/ + HB_SCRIPT_LYCIAN = HB_TAG ('L','y','c','i'), /*5.1*/ + HB_SCRIPT_LYDIAN = HB_TAG ('L','y','d','i'), /*5.1*/ + HB_SCRIPT_OL_CHIKI = HB_TAG ('O','l','c','k'), /*5.1*/ + HB_SCRIPT_REJANG = HB_TAG ('R','j','n','g'), /*5.1*/ + HB_SCRIPT_SAURASHTRA = HB_TAG ('S','a','u','r'), /*5.1*/ + HB_SCRIPT_SUNDANESE = HB_TAG ('S','u','n','d'), /*5.1*/ + HB_SCRIPT_VAI = HB_TAG ('V','a','i','i'), /*5.1*/ + + HB_SCRIPT_AVESTAN = HB_TAG ('A','v','s','t'), /*5.2*/ + HB_SCRIPT_BAMUM = HB_TAG ('B','a','m','u'), /*5.2*/ + HB_SCRIPT_EGYPTIAN_HIEROGLYPHS = HB_TAG ('E','g','y','p'), /*5.2*/ + HB_SCRIPT_IMPERIAL_ARAMAIC = HB_TAG ('A','r','m','i'), /*5.2*/ + HB_SCRIPT_INSCRIPTIONAL_PAHLAVI = HB_TAG ('P','h','l','i'), /*5.2*/ + HB_SCRIPT_INSCRIPTIONAL_PARTHIAN = HB_TAG ('P','r','t','i'), /*5.2*/ + HB_SCRIPT_JAVANESE = HB_TAG ('J','a','v','a'), /*5.2*/ + HB_SCRIPT_KAITHI = HB_TAG ('K','t','h','i'), /*5.2*/ + HB_SCRIPT_LISU = HB_TAG ('L','i','s','u'), /*5.2*/ + HB_SCRIPT_MEETEI_MAYEK = HB_TAG ('M','t','e','i'), /*5.2*/ + HB_SCRIPT_OLD_SOUTH_ARABIAN = HB_TAG ('S','a','r','b'), /*5.2*/ + HB_SCRIPT_OLD_TURKIC = HB_TAG ('O','r','k','h'), /*5.2*/ + HB_SCRIPT_SAMARITAN = HB_TAG ('S','a','m','r'), /*5.2*/ + HB_SCRIPT_TAI_THAM = HB_TAG ('L','a','n','a'), /*5.2*/ + HB_SCRIPT_TAI_VIET = HB_TAG ('T','a','v','t'), /*5.2*/ + + HB_SCRIPT_BATAK = HB_TAG ('B','a','t','k'), /*6.0*/ + HB_SCRIPT_BRAHMI = HB_TAG ('B','r','a','h'), /*6.0*/ + HB_SCRIPT_MANDAIC = HB_TAG ('M','a','n','d'), /*6.0*/ + + HB_SCRIPT_CHAKMA = HB_TAG ('C','a','k','m'), /*6.1*/ + HB_SCRIPT_MEROITIC_CURSIVE = HB_TAG ('M','e','r','c'), /*6.1*/ + HB_SCRIPT_MEROITIC_HIEROGLYPHS = HB_TAG ('M','e','r','o'), /*6.1*/ + HB_SCRIPT_MIAO = HB_TAG ('P','l','r','d'), /*6.1*/ + HB_SCRIPT_SHARADA = HB_TAG ('S','h','r','d'), /*6.1*/ + HB_SCRIPT_SORA_SOMPENG = HB_TAG ('S','o','r','a'), /*6.1*/ + HB_SCRIPT_TAKRI = HB_TAG ('T','a','k','r'), /*6.1*/ + + /* + * Since: 0.9.30 + */ + HB_SCRIPT_BASSA_VAH = HB_TAG ('B','a','s','s'), /*7.0*/ + HB_SCRIPT_CAUCASIAN_ALBANIAN = HB_TAG ('A','g','h','b'), /*7.0*/ + HB_SCRIPT_DUPLOYAN = HB_TAG ('D','u','p','l'), /*7.0*/ + HB_SCRIPT_ELBASAN = HB_TAG ('E','l','b','a'), /*7.0*/ + HB_SCRIPT_GRANTHA = HB_TAG ('G','r','a','n'), /*7.0*/ + HB_SCRIPT_KHOJKI = HB_TAG ('K','h','o','j'), /*7.0*/ + HB_SCRIPT_KHUDAWADI = HB_TAG ('S','i','n','d'), /*7.0*/ + HB_SCRIPT_LINEAR_A = HB_TAG ('L','i','n','a'), /*7.0*/ + HB_SCRIPT_MAHAJANI = HB_TAG ('M','a','h','j'), /*7.0*/ + HB_SCRIPT_MANICHAEAN = HB_TAG ('M','a','n','i'), /*7.0*/ + HB_SCRIPT_MENDE_KIKAKUI = HB_TAG ('M','e','n','d'), /*7.0*/ + HB_SCRIPT_MODI = HB_TAG ('M','o','d','i'), /*7.0*/ + HB_SCRIPT_MRO = HB_TAG ('M','r','o','o'), /*7.0*/ + HB_SCRIPT_NABATAEAN = HB_TAG ('N','b','a','t'), /*7.0*/ + HB_SCRIPT_OLD_NORTH_ARABIAN = HB_TAG ('N','a','r','b'), /*7.0*/ + HB_SCRIPT_OLD_PERMIC = HB_TAG ('P','e','r','m'), /*7.0*/ + HB_SCRIPT_PAHAWH_HMONG = HB_TAG ('H','m','n','g'), /*7.0*/ + HB_SCRIPT_PALMYRENE = HB_TAG ('P','a','l','m'), /*7.0*/ + HB_SCRIPT_PAU_CIN_HAU = HB_TAG ('P','a','u','c'), /*7.0*/ + HB_SCRIPT_PSALTER_PAHLAVI = HB_TAG ('P','h','l','p'), /*7.0*/ + HB_SCRIPT_SIDDHAM = HB_TAG ('S','i','d','d'), /*7.0*/ + HB_SCRIPT_TIRHUTA = HB_TAG ('T','i','r','h'), /*7.0*/ + HB_SCRIPT_WARANG_CITI = HB_TAG ('W','a','r','a'), /*7.0*/ + + HB_SCRIPT_AHOM = HB_TAG ('A','h','o','m'), /*8.0*/ + HB_SCRIPT_ANATOLIAN_HIEROGLYPHS = HB_TAG ('H','l','u','w'), /*8.0*/ + HB_SCRIPT_HATRAN = HB_TAG ('H','a','t','r'), /*8.0*/ + HB_SCRIPT_MULTANI = HB_TAG ('M','u','l','t'), /*8.0*/ + HB_SCRIPT_OLD_HUNGARIAN = HB_TAG ('H','u','n','g'), /*8.0*/ + HB_SCRIPT_SIGNWRITING = HB_TAG ('S','g','n','w'), /*8.0*/ + + /* + * Since 1.3.0 + */ + HB_SCRIPT_ADLAM = HB_TAG ('A','d','l','m'), /*9.0*/ + HB_SCRIPT_BHAIKSUKI = HB_TAG ('B','h','k','s'), /*9.0*/ + HB_SCRIPT_MARCHEN = HB_TAG ('M','a','r','c'), /*9.0*/ + HB_SCRIPT_OSAGE = HB_TAG ('O','s','g','e'), /*9.0*/ + HB_SCRIPT_TANGUT = HB_TAG ('T','a','n','g'), /*9.0*/ + HB_SCRIPT_NEWA = HB_TAG ('N','e','w','a'), /*9.0*/ + + /* + * Since 1.6.0 + */ + HB_SCRIPT_MASARAM_GONDI = HB_TAG ('G','o','n','m'), /*10.0*/ + HB_SCRIPT_NUSHU = HB_TAG ('N','s','h','u'), /*10.0*/ + HB_SCRIPT_SOYOMBO = HB_TAG ('S','o','y','o'), /*10.0*/ + HB_SCRIPT_ZANABAZAR_SQUARE = HB_TAG ('Z','a','n','b'), /*10.0*/ + + /* + * Since 1.8.0 + */ + HB_SCRIPT_DOGRA = HB_TAG ('D','o','g','r'), /*11.0*/ + HB_SCRIPT_GUNJALA_GONDI = HB_TAG ('G','o','n','g'), /*11.0*/ + HB_SCRIPT_HANIFI_ROHINGYA = HB_TAG ('R','o','h','g'), /*11.0*/ + HB_SCRIPT_MAKASAR = HB_TAG ('M','a','k','a'), /*11.0*/ + HB_SCRIPT_MEDEFAIDRIN = HB_TAG ('M','e','d','f'), /*11.0*/ + HB_SCRIPT_OLD_SOGDIAN = HB_TAG ('S','o','g','o'), /*11.0*/ + HB_SCRIPT_SOGDIAN = HB_TAG ('S','o','g','d'), /*11.0*/ + + /* + * Since 2.4.0 + */ + HB_SCRIPT_ELYMAIC = HB_TAG ('E','l','y','m'), /*12.0*/ + HB_SCRIPT_NANDINAGARI = HB_TAG ('N','a','n','d'), /*12.0*/ + HB_SCRIPT_NYIAKENG_PUACHUE_HMONG = HB_TAG ('H','m','n','p'), /*12.0*/ + HB_SCRIPT_WANCHO = HB_TAG ('W','c','h','o'), /*12.0*/ + + /* + * Since 2.6.7 + */ + HB_SCRIPT_CHORASMIAN = HB_TAG ('C','h','r','s'), /*13.0*/ + HB_SCRIPT_DIVES_AKURU = HB_TAG ('D','i','a','k'), /*13.0*/ + HB_SCRIPT_KHITAN_SMALL_SCRIPT = HB_TAG ('K','i','t','s'), /*13.0*/ + HB_SCRIPT_YEZIDI = HB_TAG ('Y','e','z','i'), /*13.0*/ + + /* + * Since 3.0.0 + */ + HB_SCRIPT_CYPRO_MINOAN = HB_TAG ('C','p','m','n'), /*14.0*/ + HB_SCRIPT_OLD_UYGHUR = HB_TAG ('O','u','g','r'), /*14.0*/ + HB_SCRIPT_TANGSA = HB_TAG ('T','n','s','a'), /*14.0*/ + HB_SCRIPT_TOTO = HB_TAG ('T','o','t','o'), /*14.0*/ + HB_SCRIPT_VITHKUQI = HB_TAG ('V','i','t','h'), /*14.0*/ + + /* + * Since 3.4.0 + */ + HB_SCRIPT_MATH = HB_TAG ('Z','m','t','h'), + + /* + * Since 5.2.0 + */ + HB_SCRIPT_KAWI = HB_TAG ('K','a','w','i'), /*15.0*/ + HB_SCRIPT_NAG_MUNDARI = HB_TAG ('N','a','g','m'), /*15.0*/ + + /* No script set. */ + HB_SCRIPT_INVALID = HB_TAG_NONE, + + /*< private >*/ + + /* Dummy values to ensure any hb_tag_t value can be passed/stored as hb_script_t + * without risking undefined behavior. We have two, for historical reasons. + * HB_TAG_MAX used to be unsigned, but that was invalid Ansi C, so was changed + * to _HB_SCRIPT_MAX_VALUE to be equal to HB_TAG_MAX_SIGNED as well. + * + * See this thread for technicalities: + * + * https://lists.freedesktop.org/archives/harfbuzz/2014-March/004150.html + */ + _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX_SIGNED, /*< skip >*/ + _HB_SCRIPT_MAX_VALUE_SIGNED = HB_TAG_MAX_SIGNED /*< skip >*/ + +} hb_script_t; + + +/* Script functions */ + +HB_EXTERN hb_script_t +hb_script_from_iso15924_tag (hb_tag_t tag); + +HB_EXTERN hb_script_t +hb_script_from_string (const char *str, int len); + +HB_EXTERN hb_tag_t +hb_script_to_iso15924_tag (hb_script_t script); + +HB_EXTERN hb_direction_t +hb_script_get_horizontal_direction (hb_script_t script); + + +/* User data */ + +/** + * hb_user_data_key_t: + * + * Data structure for holding user-data keys. + * + **/ +typedef struct hb_user_data_key_t { + /*< private >*/ + char unused; +} hb_user_data_key_t; + +/** + * hb_destroy_func_t: + * @user_data: the data to be destroyed + * + * A virtual method for destroy user-data callbacks. + * + */ +typedef void (*hb_destroy_func_t) (void *user_data); + + +/* Font features and variations. */ + +/** + * HB_FEATURE_GLOBAL_START: + * + * Special setting for #hb_feature_t.start to apply the feature from the start + * of the buffer. + * + * Since: 2.0.0 + */ +#define HB_FEATURE_GLOBAL_START 0 + +/** + * HB_FEATURE_GLOBAL_END: + * + * Special setting for #hb_feature_t.end to apply the feature from to the end + * of the buffer. + * + * Since: 2.0.0 + */ +#define HB_FEATURE_GLOBAL_END ((unsigned int) -1) + +/** + * hb_feature_t: + * @tag: The #hb_tag_t tag of the feature + * @value: The value of the feature. 0 disables the feature, non-zero (usually + * 1) enables the feature. For features implemented as lookup type 3 (like + * 'salt') the @value is a one based index into the alternates. + * @start: the cluster to start applying this feature setting (inclusive). + * @end: the cluster to end applying this feature setting (exclusive). + * + * The #hb_feature_t is the structure that holds information about requested + * feature application. The feature will be applied with the given value to all + * glyphs which are in clusters between @start (inclusive) and @end (exclusive). + * Setting start to #HB_FEATURE_GLOBAL_START and end to #HB_FEATURE_GLOBAL_END + * specifies that the feature always applies to the entire buffer. + */ +typedef struct hb_feature_t { + hb_tag_t tag; + uint32_t value; + unsigned int start; + unsigned int end; +} hb_feature_t; + +HB_EXTERN hb_bool_t +hb_feature_from_string (const char *str, int len, + hb_feature_t *feature); + +HB_EXTERN void +hb_feature_to_string (hb_feature_t *feature, + char *buf, unsigned int size); + +/** + * hb_variation_t: + * @tag: The #hb_tag_t tag of the variation-axis name + * @value: The value of the variation axis + * + * Data type for holding variation data. Registered OpenType + * variation-axis tags are listed in + * [OpenType Axis Tag Registry](https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg). + * + * Since: 1.4.2 + */ +typedef struct hb_variation_t { + hb_tag_t tag; + float value; +} hb_variation_t; + +HB_EXTERN hb_bool_t +hb_variation_from_string (const char *str, int len, + hb_variation_t *variation); + +HB_EXTERN void +hb_variation_to_string (hb_variation_t *variation, + char *buf, unsigned int size); + +/** + * hb_color_t: + * + * Data type for holding color values. Colors are eight bits per + * channel RGB plus alpha transparency. + * + * Since: 2.1.0 + */ +typedef uint32_t hb_color_t; + +/** + * HB_COLOR: + * @b: blue channel value + * @g: green channel value + * @r: red channel value + * @a: alpha channel value + * + * Constructs an #hb_color_t from four integers. + * + * Since: 2.1.0 + */ +#define HB_COLOR(b,g,r,a) ((hb_color_t) HB_TAG ((b),(g),(r),(a))) + +HB_EXTERN uint8_t +hb_color_get_alpha (hb_color_t color); +#define hb_color_get_alpha(color) ((color) & 0xFF) + +HB_EXTERN uint8_t +hb_color_get_red (hb_color_t color); +#define hb_color_get_red(color) (((color) >> 8) & 0xFF) + +HB_EXTERN uint8_t +hb_color_get_green (hb_color_t color); +#define hb_color_get_green(color) (((color) >> 16) & 0xFF) + +HB_EXTERN uint8_t +hb_color_get_blue (hb_color_t color); +#define hb_color_get_blue(color) (((color) >> 24) & 0xFF) + +HB_END_DECLS + +#endif /* HB_COMMON_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-coretext.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-coretext.h new file mode 100644 index 0000000..e53dbaf --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-coretext.h @@ -0,0 +1,96 @@ +/* + * Copyright © 2012 Mozilla Foundation. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Mozilla Author(s): Jonathan Kew + */ + +#ifndef HB_CORETEXT_H +#define HB_CORETEXT_H + +#include "hb.h" + +#include +#if TARGET_OS_IPHONE +# include +# include +#else +# include +#endif + +HB_BEGIN_DECLS + + +/** + * HB_CORETEXT_TAG_MORT: + * + * The #hb_tag_t tag for the `mort` (glyph metamorphosis) table, + * which holds AAT features. + * + * For more information, see + * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6mort.html + * + **/ +#define HB_CORETEXT_TAG_MORT HB_TAG('m','o','r','t') + +/** + * HB_CORETEXT_TAG_MORX: + * + * The #hb_tag_t tag for the `morx` (extended glyph metamorphosis) + * table, which holds AAT features. + * + * For more information, see + * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6morx.html + * + **/ +#define HB_CORETEXT_TAG_MORX HB_TAG('m','o','r','x') + +/** + * HB_CORETEXT_TAG_KERX: + * + * The #hb_tag_t tag for the `kerx` (extended kerning) table, which + * holds AAT kerning information. + * + * For more information, see + * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6kerx.html + * + **/ +#define HB_CORETEXT_TAG_KERX HB_TAG('k','e','r','x') + + +HB_EXTERN hb_face_t * +hb_coretext_face_create (CGFontRef cg_font); + +HB_EXTERN hb_font_t * +hb_coretext_font_create (CTFontRef ct_font); + + +HB_EXTERN CGFontRef +hb_coretext_face_get_cg_font (hb_face_t *face); + +HB_EXTERN CTFontRef +hb_coretext_font_get_ct_font (hb_font_t *font); + + +HB_END_DECLS + +#endif /* HB_CORETEXT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-cplusplus.hh b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-cplusplus.hh new file mode 100644 index 0000000..a210ab7 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-cplusplus.hh @@ -0,0 +1,221 @@ +/* + * Copyright © 2022 Behdad Esfahbod + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HB_CPLUSPLUS_HH +#define HB_CPLUSPLUS_HH + +#include "hb.h" + +HB_BEGIN_DECLS +HB_END_DECLS + +#ifdef __cplusplus + +#include +#include + +#if 0 +#if !(__cplusplus >= 201103L) +#error "HarfBuzz C++ helpers require C++11" +#endif +#endif + +namespace hb { + + +template +struct vtable; + +template +struct shared_ptr +{ + using element_type = T; + + using v = vtable; + + explicit shared_ptr (T *p = nullptr) : p (p) {} + shared_ptr (const shared_ptr &o) : p (v::reference (o.p)) {} + shared_ptr (shared_ptr &&o) : p (o.p) { o.p = nullptr; } + shared_ptr& operator = (const shared_ptr &o) { if (p != o.p) { destroy (); p = o.p; reference (); } return *this; } + shared_ptr& operator = (shared_ptr &&o) { v::destroy (p); p = o.p; o.p = nullptr; return *this; } + ~shared_ptr () { v::destroy (p); p = nullptr; } + + T* get() const { return p; } + + void swap (shared_ptr &o) { std::swap (p, o.p); } + friend void swap (shared_ptr &a, shared_ptr &b) { std::swap (a.p, b.p); } + + operator T * () const { return p; } + T& operator * () const { return *get (); } + T* operator -> () const { return get (); } + operator bool () const { return p; } + bool operator == (const shared_ptr &o) const { return p == o.p; } + bool operator != (const shared_ptr &o) const { return p != o.p; } + + static T* get_empty() { return v::get_empty (); } + T* reference() { return v::reference (p); } + void destroy() { v::destroy (p); } + void set_user_data (hb_user_data_key_t *key, + void *value, + hb_destroy_func_t destroy, + hb_bool_t replace) { v::set_user_data (p, key, value, destroy, replace); } + void * get_user_data (hb_user_data_key_t *key) { return v::get_user_data (p, key); } + + private: + T *p; +}; + +template struct is_shared_ptr : std::false_type {}; +template struct is_shared_ptr> : std::true_type {}; + +template +struct unique_ptr +{ + using element_type = T; + + using v = vtable; + + explicit unique_ptr (T *p = nullptr) : p (p) {} + unique_ptr (const unique_ptr &o) = delete; + unique_ptr (unique_ptr &&o) : p (o.p) { o.p = nullptr; } + unique_ptr& operator = (const unique_ptr &o) = delete; + unique_ptr& operator = (unique_ptr &&o) { v::destroy (p); p = o.p; o.p = nullptr; return *this; } + ~unique_ptr () { v::destroy (p); p = nullptr; } + + T* get() const { return p; } + T* release () { T* v = p; p = nullptr; return v; } + + void swap (unique_ptr &o) { std::swap (p, o.p); } + friend void swap (unique_ptr &a, unique_ptr &b) { std::swap (a.p, b.p); } + + operator T * () const { return p; } + T& operator * () const { return *get (); } + T* operator -> () const { return get (); } + operator bool () { return p; } + + private: + T *p; +}; + +template struct is_unique_ptr : std::false_type {}; +template struct is_unique_ptr> : std::true_type {}; + +template +struct vtable_t +{ + static constexpr auto get_empty = _get_empty; + static constexpr auto reference = _reference; + static constexpr auto destroy = _destroy; + static constexpr auto set_user_data = _set_user_data; + static constexpr auto get_user_data = _get_user_data; +}; + +#define HB_DEFINE_VTABLE(name) \ + template<> \ + struct vtable \ + : vtable_t {} + +HB_DEFINE_VTABLE (buffer); +HB_DEFINE_VTABLE (blob); +HB_DEFINE_VTABLE (face); +HB_DEFINE_VTABLE (font); +HB_DEFINE_VTABLE (font_funcs); +HB_DEFINE_VTABLE (map); +HB_DEFINE_VTABLE (set); +HB_DEFINE_VTABLE (shape_plan); +HB_DEFINE_VTABLE (unicode_funcs); + +#undef HB_DEFINE_VTABLE + + +#ifdef HB_SUBSET_H + +#define HB_DEFINE_VTABLE(name) \ + template<> \ + struct vtable \ + : vtable_t {} + + +HB_DEFINE_VTABLE (subset_input); +HB_DEFINE_VTABLE (subset_plan); + +#undef HB_DEFINE_VTABLE + +#endif + + +} // namespace hb + +/* Workaround for GCC < 7, see: + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480 + * https://stackoverflow.com/a/25594741 */ +namespace std { + + +template +struct hash> +{ + std::size_t operator()(const hb::shared_ptr& v) const noexcept + { + std::size_t h = std::hash{}(v.get ()); + return h; + } +}; + +template +struct hash> +{ + std::size_t operator()(const hb::unique_ptr& v) const noexcept + { + std::size_t h = std::hash{}(v.get ()); + return h; + } +}; + + +} // namespace std + +#endif /* __cplusplus */ + +#endif /* HB_CPLUSPLUS_HH */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-deprecated.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-deprecated.h new file mode 100644 index 0000000..333dc3c --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-deprecated.h @@ -0,0 +1,251 @@ +/* + * Copyright © 2013 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_DEPRECATED_H +#define HB_DEPRECATED_H + +#include "hb-common.h" +#include "hb-unicode.h" +#include "hb-font.h" +#include "hb-set.h" + + +/** + * SECTION:hb-deprecated + * @title: hb-deprecated + * @short_description: Deprecated API + * @include: hb.h + * + * These API have been deprecated in favor of newer API, or because they + * were deemed unnecessary. + **/ + + +HB_BEGIN_DECLS + +#ifndef HB_DISABLE_DEPRECATED + + +/** + * HB_SCRIPT_CANADIAN_ABORIGINAL: + * + * Use #HB_SCRIPT_CANADIAN_SYLLABICS instead: + * + * Deprecated: 0.9.20 + */ +#define HB_SCRIPT_CANADIAN_ABORIGINAL HB_SCRIPT_CANADIAN_SYLLABICS + +/** + * HB_BUFFER_FLAGS_DEFAULT: + * + * Use #HB_BUFFER_FLAG_DEFAULT instead. + * + * Deprecated: 0.9.20 + */ +#define HB_BUFFER_FLAGS_DEFAULT HB_BUFFER_FLAG_DEFAULT +/** + * HB_BUFFER_SERIALIZE_FLAGS_DEFAULT: + * + * Use #HB_BUFFER_SERIALIZE_FLAG_DEFAULT instead. + * + * Deprecated: 0.9.20 + */ +#define HB_BUFFER_SERIALIZE_FLAGS_DEFAULT HB_BUFFER_SERIALIZE_FLAG_DEFAULT + +/** + * hb_font_get_glyph_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @unicode: The Unicode code point to query + * @variation_selector: The variation-selector code point to query + * @glyph: (out): The glyph ID retrieved + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the glyph ID for a specified Unicode code point + * font, with an optional variation selector. + * + * Return value: `true` if data found, `false` otherwise + * Deprecated: 1.2.3 + * + **/ +typedef hb_bool_t (*hb_font_get_glyph_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t unicode, hb_codepoint_t variation_selector, + hb_codepoint_t *glyph, + void *user_data); + +HB_EXTERN HB_DEPRECATED_FOR(hb_font_funcs_set_nominal_glyph_func and hb_font_funcs_set_variation_glyph_func) void +hb_font_funcs_set_glyph_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_eastasian_width_func_t: + * @ufuncs: A Unicode-functions structure + * @unicode: The code point to query + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * Deprecated: 2.0.0 + */ +typedef unsigned int (*hb_unicode_eastasian_width_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode, + void *user_data); + +/** + * hb_unicode_funcs_set_eastasian_width_func: + * @ufuncs: a Unicode-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_eastasian_width_func_t. + * + * Since: 0.9.2 + * Deprecated: 2.0.0 + **/ +HB_EXTERN HB_DEPRECATED void +hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_eastasian_width_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_eastasian_width: + * @ufuncs: a Unicode-function structure + * @unicode: The code point to query + * + * Don't use. Not used by HarfBuzz. + * + * Since: 0.9.2 + * Deprecated: 2.0.0 + **/ +HB_EXTERN HB_DEPRECATED unsigned int +hb_unicode_eastasian_width (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode); + + +/** + * hb_unicode_decompose_compatibility_func_t: + * @ufuncs: a Unicode function structure + * @u: codepoint to decompose + * @decomposed: address of codepoint array (of length #HB_UNICODE_MAX_DECOMPOSITION_LEN) to write decomposition into + * @user_data: user data pointer as passed to hb_unicode_funcs_set_decompose_compatibility_func() + * + * Fully decompose @u to its Unicode compatibility decomposition. The codepoints of the decomposition will be written to @decomposed. + * The complete length of the decomposition will be returned. + * + * If @u has no compatibility decomposition, zero should be returned. + * + * The Unicode standard guarantees that a buffer of length #HB_UNICODE_MAX_DECOMPOSITION_LEN codepoints will always be sufficient for any + * compatibility decomposition plus an terminating value of 0. Consequently, @decompose must be allocated by the caller to be at least this length. Implementations + * of this function type must ensure that they do not write past the provided array. + * + * Return value: number of codepoints in the full compatibility decomposition of @u, or 0 if no decomposition available. + * + * Deprecated: 2.0.0 + */ +typedef unsigned int (*hb_unicode_decompose_compatibility_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t u, + hb_codepoint_t *decomposed, + void *user_data); + +/** + * HB_UNICODE_MAX_DECOMPOSITION_LEN: + * + * See Unicode 6.1 for details on the maximum decomposition length. + * + * Deprecated: 2.0.0 + */ +#define HB_UNICODE_MAX_DECOMPOSITION_LEN (18+1) /* codepoints */ + +/** + * hb_unicode_funcs_set_decompose_compatibility_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_decompose_compatibility_func_t. + * + * + * + * Since: 0.9.2 + * Deprecated: 2.0.0 + **/ +HB_EXTERN HB_DEPRECATED void +hb_unicode_funcs_set_decompose_compatibility_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_decompose_compatibility_func_t func, + void *user_data, hb_destroy_func_t destroy); + +HB_EXTERN HB_DEPRECATED unsigned int +hb_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t u, + hb_codepoint_t *decomposed); + + +/** + * hb_font_get_glyph_v_kerning_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the kerning-adjustment value for a glyph-pair in + * the specified font, for vertical text segments. + * + **/ +typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_v_kerning_func_t; + +/** + * hb_font_funcs_set_glyph_v_kerning_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_v_kerning_func_t. + * + * Since: 0.9.2 + * Deprecated: 2.0.0 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_v_kerning_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_v_kerning_func_t func, + void *user_data, hb_destroy_func_t destroy); + +HB_EXTERN hb_position_t +hb_font_get_glyph_v_kerning (hb_font_t *font, + hb_codepoint_t top_glyph, hb_codepoint_t bottom_glyph); + +#endif + +HB_END_DECLS + +#endif /* HB_DEPRECATED_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-draw.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-draw.h new file mode 100644 index 0000000..c45a532 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-draw.h @@ -0,0 +1,325 @@ +/* + * Copyright © 2019-2020 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_DRAW_H +#define HB_DRAW_H + +#include "hb.h" + +HB_BEGIN_DECLS + + +/** + * hb_draw_state_t + * @path_open: Whether there is an open path + * @path_start_x: X component of the start of current path + * @path_start_y: Y component of the start of current path + * @current_x: X component of current point + * @current_y: Y component of current point + * + * Current drawing state. + * + * Since: 4.0.0 + **/ +typedef struct hb_draw_state_t { + hb_bool_t path_open; + + float path_start_x; + float path_start_y; + + float current_x; + float current_y; + + /*< private >*/ + hb_var_num_t reserved1; + hb_var_num_t reserved2; + hb_var_num_t reserved3; + hb_var_num_t reserved4; + hb_var_num_t reserved5; + hb_var_num_t reserved6; + hb_var_num_t reserved7; +} hb_draw_state_t; + +/** + * HB_DRAW_STATE_DEFAULT: + * + * The default #hb_draw_state_t at the start of glyph drawing. + */ +#define HB_DRAW_STATE_DEFAULT {0, 0.f, 0.f, 0.f, 0.f, {0.}, {0.}, {0.}} + + +/** + * hb_draw_funcs_t: + * + * Glyph draw callbacks. + * + * #hb_draw_move_to_func_t, #hb_draw_line_to_func_t and + * #hb_draw_cubic_to_func_t calls are necessary to be defined but we translate + * #hb_draw_quadratic_to_func_t calls to #hb_draw_cubic_to_func_t if the + * callback isn't defined. + * + * Since: 4.0.0 + **/ + +typedef struct hb_draw_funcs_t hb_draw_funcs_t; + + +/** + * hb_draw_move_to_func_t: + * @dfuncs: draw functions object + * @draw_data: The data accompanying the draw functions + * @st: current draw state + * @to_x: X component of target point + * @to_y: Y component of target point + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_draw_funcs_t to perform a "move-to" draw + * operation. + * + * Since: 4.0.0 + * + **/ +typedef void (*hb_draw_move_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float to_x, float to_y, + void *user_data); + +/** + * hb_draw_line_to_func_t: + * @dfuncs: draw functions object + * @draw_data: The data accompanying the draw functions + * @st: current draw state + * @to_x: X component of target point + * @to_y: Y component of target point + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_draw_funcs_t to perform a "line-to" draw + * operation. + * + * Since: 4.0.0 + * + **/ +typedef void (*hb_draw_line_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float to_x, float to_y, + void *user_data); + +/** + * hb_draw_quadratic_to_func_t: + * @dfuncs: draw functions object + * @draw_data: The data accompanying the draw functions + * @st: current draw state + * @control_x: X component of control point + * @control_y: Y component of control point + * @to_x: X component of target point + * @to_y: Y component of target point + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_draw_funcs_t to perform a "quadratic-to" draw + * operation. + * + * Since: 4.0.0 + * + **/ +typedef void (*hb_draw_quadratic_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float control_x, float control_y, + float to_x, float to_y, + void *user_data); + +/** + * hb_draw_cubic_to_func_t: + * @dfuncs: draw functions object + * @draw_data: The data accompanying the draw functions + * @st: current draw state + * @control1_x: X component of first control point + * @control1_y: Y component of first control point + * @control2_x: X component of second control point + * @control2_y: Y component of second control point + * @to_x: X component of target point + * @to_y: Y component of target point + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_draw_funcs_t to perform a "cubic-to" draw + * operation. + * + * Since: 4.0.0 + * + **/ +typedef void (*hb_draw_cubic_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float control1_x, float control1_y, + float control2_x, float control2_y, + float to_x, float to_y, + void *user_data); + +/** + * hb_draw_close_path_func_t: + * @dfuncs: draw functions object + * @draw_data: The data accompanying the draw functions + * @st: current draw state + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_draw_funcs_t to perform a "close-path" draw + * operation. + * + * Since: 4.0.0 + * + **/ +typedef void (*hb_draw_close_path_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + void *user_data); + +/** + * hb_draw_funcs_set_move_to_func: + * @dfuncs: draw functions object + * @func: (closure user_data) (destroy destroy) (scope notified): move-to callback + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets move-to callback to the draw functions object. + * + * Since: 4.0.0 + **/ +HB_EXTERN void +hb_draw_funcs_set_move_to_func (hb_draw_funcs_t *dfuncs, + hb_draw_move_to_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_draw_funcs_set_line_to_func: + * @dfuncs: draw functions object + * @func: (closure user_data) (destroy destroy) (scope notified): line-to callback + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets line-to callback to the draw functions object. + * + * Since: 4.0.0 + **/ +HB_EXTERN void +hb_draw_funcs_set_line_to_func (hb_draw_funcs_t *dfuncs, + hb_draw_line_to_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_draw_funcs_set_quadratic_to_func: + * @dfuncs: draw functions object + * @func: (closure user_data) (destroy destroy) (scope notified): quadratic-to callback + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets quadratic-to callback to the draw functions object. + * + * Since: 4.0.0 + **/ +HB_EXTERN void +hb_draw_funcs_set_quadratic_to_func (hb_draw_funcs_t *dfuncs, + hb_draw_quadratic_to_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_draw_funcs_set_cubic_to_func: + * @dfuncs: draw functions + * @func: (closure user_data) (destroy destroy) (scope notified): cubic-to callback + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets cubic-to callback to the draw functions object. + * + * Since: 4.0.0 + **/ +HB_EXTERN void +hb_draw_funcs_set_cubic_to_func (hb_draw_funcs_t *dfuncs, + hb_draw_cubic_to_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_draw_funcs_set_close_path_func: + * @dfuncs: draw functions object + * @func: (closure user_data) (destroy destroy) (scope notified): close-path callback + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets close-path callback to the draw functions object. + * + * Since: 4.0.0 + **/ +HB_EXTERN void +hb_draw_funcs_set_close_path_func (hb_draw_funcs_t *dfuncs, + hb_draw_close_path_func_t func, + void *user_data, hb_destroy_func_t destroy); + + +HB_EXTERN hb_draw_funcs_t * +hb_draw_funcs_create (void); + +HB_EXTERN hb_draw_funcs_t * +hb_draw_funcs_reference (hb_draw_funcs_t *dfuncs); + +HB_EXTERN void +hb_draw_funcs_destroy (hb_draw_funcs_t *dfuncs); + +HB_EXTERN void +hb_draw_funcs_make_immutable (hb_draw_funcs_t *dfuncs); + +HB_EXTERN hb_bool_t +hb_draw_funcs_is_immutable (hb_draw_funcs_t *dfuncs); + + +HB_EXTERN void +hb_draw_move_to (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float to_x, float to_y); + +HB_EXTERN void +hb_draw_line_to (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float to_x, float to_y); + +HB_EXTERN void +hb_draw_quadratic_to (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float control_x, float control_y, + float to_x, float to_y); + +HB_EXTERN void +hb_draw_cubic_to (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float control1_x, float control1_y, + float control2_x, float control2_y, + float to_x, float to_y); + +HB_EXTERN void +hb_draw_close_path (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st); + + +HB_END_DECLS + +#endif /* HB_DRAW_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-face.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-face.h new file mode 100644 index 0000000..38e7104 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-face.h @@ -0,0 +1,181 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_FACE_H +#define HB_FACE_H + +#include "hb-common.h" +#include "hb-blob.h" +#include "hb-set.h" + +HB_BEGIN_DECLS + + +HB_EXTERN unsigned int +hb_face_count (hb_blob_t *blob); + + +/* + * hb_face_t + */ + +/** + * hb_face_t: + * + * Data type for holding font faces. + * + **/ +typedef struct hb_face_t hb_face_t; + +HB_EXTERN hb_face_t * +hb_face_create (hb_blob_t *blob, + unsigned int index); + +/** + * hb_reference_table_func_t: + * @face: an #hb_face_t to reference table for + * @tag: the tag of the table to reference + * @user_data: User data pointer passed by the caller + * + * Callback function for hb_face_create_for_tables(). + * + * Return value: (transfer full): A pointer to the @tag table within @face + * + * Since: 0.9.2 + */ + +typedef hb_blob_t * (*hb_reference_table_func_t) (hb_face_t *face, hb_tag_t tag, void *user_data); + +/* calls destroy() when not needing user_data anymore */ +HB_EXTERN hb_face_t * +hb_face_create_for_tables (hb_reference_table_func_t reference_table_func, + void *user_data, + hb_destroy_func_t destroy); + +HB_EXTERN hb_face_t * +hb_face_get_empty (void); + +HB_EXTERN hb_face_t * +hb_face_reference (hb_face_t *face); + +HB_EXTERN void +hb_face_destroy (hb_face_t *face); + +HB_EXTERN hb_bool_t +hb_face_set_user_data (hb_face_t *face, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + +HB_EXTERN void * +hb_face_get_user_data (const hb_face_t *face, + hb_user_data_key_t *key); + +HB_EXTERN void +hb_face_make_immutable (hb_face_t *face); + +HB_EXTERN hb_bool_t +hb_face_is_immutable (const hb_face_t *face); + + +HB_EXTERN hb_blob_t * +hb_face_reference_table (const hb_face_t *face, + hb_tag_t tag); + +HB_EXTERN hb_blob_t * +hb_face_reference_blob (hb_face_t *face); + +HB_EXTERN void +hb_face_set_index (hb_face_t *face, + unsigned int index); + +HB_EXTERN unsigned int +hb_face_get_index (const hb_face_t *face); + +HB_EXTERN void +hb_face_set_upem (hb_face_t *face, + unsigned int upem); + +HB_EXTERN unsigned int +hb_face_get_upem (const hb_face_t *face); + +HB_EXTERN void +hb_face_set_glyph_count (hb_face_t *face, + unsigned int glyph_count); + +HB_EXTERN unsigned int +hb_face_get_glyph_count (const hb_face_t *face); + +HB_EXTERN unsigned int +hb_face_get_table_tags (const hb_face_t *face, + unsigned int start_offset, + unsigned int *table_count, /* IN/OUT */ + hb_tag_t *table_tags /* OUT */); + + +/* + * Character set. + */ + +HB_EXTERN void +hb_face_collect_unicodes (hb_face_t *face, + hb_set_t *out); + +HB_EXTERN void +hb_face_collect_variation_selectors (hb_face_t *face, + hb_set_t *out); + +HB_EXTERN void +hb_face_collect_variation_unicodes (hb_face_t *face, + hb_codepoint_t variation_selector, + hb_set_t *out); + + +/* + * Builder face. + */ + +HB_EXTERN hb_face_t * +hb_face_builder_create (void); + +HB_EXTERN hb_bool_t +hb_face_builder_add_table (hb_face_t *face, + hb_tag_t tag, + hb_blob_t *blob); + +HB_EXTERN void +hb_face_builder_sort_tables (hb_face_t *face, + const hb_tag_t *tags); + + +HB_END_DECLS + +#endif /* HB_FACE_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-font.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-font.h new file mode 100644 index 0000000..e2c3df4 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-font.h @@ -0,0 +1,1108 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_FONT_H +#define HB_FONT_H + +#include "hb-common.h" +#include "hb-face.h" +#include "hb-draw.h" + +HB_BEGIN_DECLS + +/** + * hb_font_t: + * + * Data type for holding fonts. + * + */ +typedef struct hb_font_t hb_font_t; + + +/* + * hb_font_funcs_t + */ + +/** + * hb_font_funcs_t: + * + * Data type containing a set of virtual methods used for + * working on #hb_font_t font objects. + * + * HarfBuzz provides a lightweight default function for each of + * the methods in #hb_font_funcs_t. Client programs can implement + * their own replacements for the individual font functions, as + * needed, and replace the default by calling the setter for a + * method. + * + **/ +typedef struct hb_font_funcs_t hb_font_funcs_t; + +HB_EXTERN hb_font_funcs_t * +hb_font_funcs_create (void); + +HB_EXTERN hb_font_funcs_t * +hb_font_funcs_get_empty (void); + +HB_EXTERN hb_font_funcs_t * +hb_font_funcs_reference (hb_font_funcs_t *ffuncs); + +HB_EXTERN void +hb_font_funcs_destroy (hb_font_funcs_t *ffuncs); + +HB_EXTERN hb_bool_t +hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + + +HB_EXTERN void * +hb_font_funcs_get_user_data (const hb_font_funcs_t *ffuncs, + hb_user_data_key_t *key); + + +HB_EXTERN void +hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs); + +HB_EXTERN hb_bool_t +hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs); + + +/* font and glyph extents */ + +/** + * hb_font_extents_t: + * @ascender: The height of typographic ascenders. + * @descender: The depth of typographic descenders. + * @line_gap: The suggested line-spacing gap. + * + * Font-wide extent values, measured in font units. + * + * Note that typically @ascender is positive and @descender + * negative, in coordinate systems that grow up. + **/ +typedef struct hb_font_extents_t { + hb_position_t ascender; + hb_position_t descender; + hb_position_t line_gap; + /*< private >*/ + hb_position_t reserved9; + hb_position_t reserved8; + hb_position_t reserved7; + hb_position_t reserved6; + hb_position_t reserved5; + hb_position_t reserved4; + hb_position_t reserved3; + hb_position_t reserved2; + hb_position_t reserved1; +} hb_font_extents_t; + +/** + * hb_glyph_extents_t: + * @x_bearing: Distance from the x-origin to the left extremum of the glyph. + * @y_bearing: Distance from the top extremum of the glyph to the y-origin. + * @width: Distance from the left extremum of the glyph to the right extremum. + * @height: Distance from the top extremum of the glyph to the bottom extremum. + * + * Glyph extent values, measured in font units. + * + * Note that @height is negative, in coordinate systems that grow up. + **/ +typedef struct hb_glyph_extents_t { + hb_position_t x_bearing; + hb_position_t y_bearing; + hb_position_t width; + hb_position_t height; +} hb_glyph_extents_t; + +/* func types */ + +/** + * hb_font_get_font_extents_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @extents: (out): The font extents retrieved + * @user_data: User data pointer passed by the caller + * + * This method should retrieve the extents for a font. + * + **/ +typedef hb_bool_t (*hb_font_get_font_extents_func_t) (hb_font_t *font, void *font_data, + hb_font_extents_t *extents, + void *user_data); + +/** + * hb_font_get_font_h_extents_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the extents for a font, for horizontal-direction + * text segments. Extents must be returned in an #hb_glyph_extents output + * parameter. + * + **/ +typedef hb_font_get_font_extents_func_t hb_font_get_font_h_extents_func_t; + +/** + * hb_font_get_font_v_extents_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the extents for a font, for vertical-direction + * text segments. Extents must be returned in an #hb_glyph_extents output + * parameter. + * + **/ +typedef hb_font_get_font_extents_func_t hb_font_get_font_v_extents_func_t; + + +/** + * hb_font_get_nominal_glyph_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @unicode: The Unicode code point to query + * @glyph: (out): The glyph ID retrieved + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the nominal glyph ID for a specified Unicode code + * point. Glyph IDs must be returned in a #hb_codepoint_t output parameter. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_nominal_glyph_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t unicode, + hb_codepoint_t *glyph, + void *user_data); + +/** + * hb_font_get_variation_glyph_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @unicode: The Unicode code point to query + * @variation_selector: The variation-selector code point to query + * @glyph: (out): The glyph ID retrieved + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the glyph ID for a specified Unicode code point + * followed by a specified Variation Selector code point. Glyph IDs must be + * returned in a #hb_codepoint_t output parameter. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_variation_glyph_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t unicode, hb_codepoint_t variation_selector, + hb_codepoint_t *glyph, + void *user_data); + + +/** + * hb_font_get_nominal_glyphs_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @count: number of code points to query + * @first_unicode: The first Unicode code point to query + * @unicode_stride: The stride between successive code points + * @first_glyph: (out): The first glyph ID retrieved + * @glyph_stride: The stride between successive glyph IDs + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the nominal glyph IDs for a sequence of + * Unicode code points. Glyph IDs must be returned in a #hb_codepoint_t + * output parameter. + * + * Return value: the number of code points processed + * + **/ +typedef unsigned int (*hb_font_get_nominal_glyphs_func_t) (hb_font_t *font, void *font_data, + unsigned int count, + const hb_codepoint_t *first_unicode, + unsigned int unicode_stride, + hb_codepoint_t *first_glyph, + unsigned int glyph_stride, + void *user_data); + +/** + * hb_font_get_glyph_advance_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @glyph: The glyph ID to query + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the advance for a specified glyph. The + * method must return an #hb_position_t. + * + * Return value: The advance of @glyph within @font + * + **/ +typedef hb_position_t (*hb_font_get_glyph_advance_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t glyph, + void *user_data); + +/** + * hb_font_get_glyph_h_advance_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the advance for a specified glyph, in + * horizontal-direction text segments. Advances must be returned in + * an #hb_position_t output parameter. + * + **/ +typedef hb_font_get_glyph_advance_func_t hb_font_get_glyph_h_advance_func_t; + +/** + * hb_font_get_glyph_v_advance_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the advance for a specified glyph, in + * vertical-direction text segments. Advances must be returned in + * an #hb_position_t output parameter. + * + **/ +typedef hb_font_get_glyph_advance_func_t hb_font_get_glyph_v_advance_func_t; + +/** + * hb_font_get_glyph_advances_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @count: The number of glyph IDs in the sequence queried + * @first_glyph: The first glyph ID to query + * @glyph_stride: The stride between successive glyph IDs + * @first_advance: (out): The first advance retrieved + * @advance_stride: The stride between successive advances + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the advances for a sequence of glyphs. + * + **/ +typedef void (*hb_font_get_glyph_advances_func_t) (hb_font_t* font, void* font_data, + unsigned int count, + const hb_codepoint_t *first_glyph, + unsigned glyph_stride, + hb_position_t *first_advance, + unsigned advance_stride, + void *user_data); + +/** + * hb_font_get_glyph_h_advances_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the advances for a sequence of glyphs, in + * horizontal-direction text segments. + * + **/ +typedef hb_font_get_glyph_advances_func_t hb_font_get_glyph_h_advances_func_t; + +/** + * hb_font_get_glyph_v_advances_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the advances for a sequence of glyphs, in + * vertical-direction text segments. + * + **/ +typedef hb_font_get_glyph_advances_func_t hb_font_get_glyph_v_advances_func_t; + +/** + * hb_font_get_glyph_origin_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @glyph: The glyph ID to query + * @x: (out): The X coordinate of the origin + * @y: (out): The Y coordinate of the origin + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the (X,Y) coordinates (in font units) of the + * origin for a glyph. Each coordinate must be returned in an #hb_position_t + * output parameter. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_glyph_origin_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t glyph, + hb_position_t *x, hb_position_t *y, + void *user_data); + +/** + * hb_font_get_glyph_h_origin_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the (X,Y) coordinates (in font units) of the + * origin for a glyph, for horizontal-direction text segments. Each + * coordinate must be returned in an #hb_position_t output parameter. + * + **/ +typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_h_origin_func_t; + +/** + * hb_font_get_glyph_v_origin_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the (X,Y) coordinates (in font units) of the + * origin for a glyph, for vertical-direction text segments. Each coordinate + * must be returned in an #hb_position_t output parameter. + * + **/ +typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_v_origin_func_t; + +/** + * hb_font_get_glyph_kerning_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @first_glyph: The glyph ID of the first glyph in the glyph pair + * @second_glyph: The glyph ID of the second glyph in the glyph pair + * @user_data: User data pointer passed by the caller + * + * This method should retrieve the kerning-adjustment value for a glyph-pair in + * the specified font, for horizontal text segments. + * + **/ +typedef hb_position_t (*hb_font_get_glyph_kerning_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t first_glyph, hb_codepoint_t second_glyph, + void *user_data); +/** + * hb_font_get_glyph_h_kerning_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the kerning-adjustment value for a glyph-pair in + * the specified font, for horizontal text segments. + * + **/ +typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_h_kerning_func_t; + + +/** + * hb_font_get_glyph_extents_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @glyph: The glyph ID to query + * @extents: (out): The #hb_glyph_extents_t retrieved + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the extents for a specified glyph. Extents must be + * returned in an #hb_glyph_extents output parameter. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_glyph_extents_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t glyph, + hb_glyph_extents_t *extents, + void *user_data); + +/** + * hb_font_get_glyph_contour_point_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @glyph: The glyph ID to query + * @point_index: The contour-point index to query + * @x: (out): The X value retrieved for the contour point + * @y: (out): The Y value retrieved for the contour point + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the (X,Y) coordinates (in font units) for a + * specified contour point in a glyph. Each coordinate must be returned as + * an #hb_position_t output parameter. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_glyph_contour_point_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t glyph, unsigned int point_index, + hb_position_t *x, hb_position_t *y, + void *user_data); + + +/** + * hb_font_get_glyph_name_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @glyph: The glyph ID to query + * @name: (out) (array length=size): Name string retrieved for the glyph ID + * @size: Length of the glyph-name string retrieved + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the glyph name that corresponds to a + * glyph ID. The name should be returned in a string output parameter. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_glyph_name_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t glyph, + char *name, unsigned int size, + void *user_data); + +/** + * hb_font_get_glyph_from_name_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @name: (array length=len): The name string to query + * @len: The length of the name queried + * @glyph: (out): The glyph ID retrieved + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the glyph ID that corresponds to a glyph-name + * string. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_glyph_from_name_func_t) (hb_font_t *font, void *font_data, + const char *name, int len, /* -1 means nul-terminated */ + hb_codepoint_t *glyph, + void *user_data); + +/** + * hb_font_get_glyph_shape_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @glyph: The glyph ID to query + * @draw_funcs: The draw functions to send the shape data to + * @draw_data: The data accompanying the draw functions + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * Since: 4.0.0 + * + **/ +typedef void (*hb_font_get_glyph_shape_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t glyph, + hb_draw_funcs_t *draw_funcs, void *draw_data, + void *user_data); + + +/* func setters */ + +/** + * hb_font_funcs_set_font_h_extents_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_font_h_extents_func_t. + * + * Since: 1.1.2 + **/ +HB_EXTERN void +hb_font_funcs_set_font_h_extents_func (hb_font_funcs_t *ffuncs, + hb_font_get_font_h_extents_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_font_v_extents_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_font_v_extents_func_t. + * + * Since: 1.1.2 + **/ +HB_EXTERN void +hb_font_funcs_set_font_v_extents_func (hb_font_funcs_t *ffuncs, + hb_font_get_font_v_extents_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_nominal_glyph_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_nominal_glyph_func_t. + * + * Since: 1.2.3 + **/ +HB_EXTERN void +hb_font_funcs_set_nominal_glyph_func (hb_font_funcs_t *ffuncs, + hb_font_get_nominal_glyph_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_nominal_glyphs_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_nominal_glyphs_func_t. + * + * Since: 2.0.0 + **/ +HB_EXTERN void +hb_font_funcs_set_nominal_glyphs_func (hb_font_funcs_t *ffuncs, + hb_font_get_nominal_glyphs_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_variation_glyph_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_variation_glyph_func_t. + * + * Since: 1.2.3 + **/ +HB_EXTERN void +hb_font_funcs_set_variation_glyph_func (hb_font_funcs_t *ffuncs, + hb_font_get_variation_glyph_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_h_advance_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_h_advance_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_h_advance_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_h_advance_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_v_advance_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_v_advance_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_v_advance_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_v_advance_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_h_advances_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_h_advances_func_t. + * + * Since: 1.8.6 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_h_advances_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_h_advances_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_v_advances_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_v_advances_func_t. + * + * Since: 1.8.6 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_v_advances_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_v_advances_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_h_origin_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_h_origin_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_h_origin_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_h_origin_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_v_origin_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_v_origin_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_v_origin_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_v_origin_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_h_kerning_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_h_kerning_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_h_kerning_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_h_kerning_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_extents_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_extents_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_extents_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_extents_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_contour_point_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_contour_point_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_contour_point_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_contour_point_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_name_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_name_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_name_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_name_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_from_name_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_from_name_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_from_name_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_from_name_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_shape_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_shape_func_t. + * + * Since: 4.0.0 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_shape_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_shape_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/* func dispatch */ + +HB_EXTERN hb_bool_t +hb_font_get_h_extents (hb_font_t *font, + hb_font_extents_t *extents); +HB_EXTERN hb_bool_t +hb_font_get_v_extents (hb_font_t *font, + hb_font_extents_t *extents); + +HB_EXTERN hb_bool_t +hb_font_get_nominal_glyph (hb_font_t *font, + hb_codepoint_t unicode, + hb_codepoint_t *glyph); +HB_EXTERN hb_bool_t +hb_font_get_variation_glyph (hb_font_t *font, + hb_codepoint_t unicode, hb_codepoint_t variation_selector, + hb_codepoint_t *glyph); + +HB_EXTERN unsigned int +hb_font_get_nominal_glyphs (hb_font_t *font, + unsigned int count, + const hb_codepoint_t *first_unicode, + unsigned int unicode_stride, + hb_codepoint_t *first_glyph, + unsigned int glyph_stride); + +HB_EXTERN hb_position_t +hb_font_get_glyph_h_advance (hb_font_t *font, + hb_codepoint_t glyph); +HB_EXTERN hb_position_t +hb_font_get_glyph_v_advance (hb_font_t *font, + hb_codepoint_t glyph); + +HB_EXTERN void +hb_font_get_glyph_h_advances (hb_font_t* font, + unsigned int count, + const hb_codepoint_t *first_glyph, + unsigned glyph_stride, + hb_position_t *first_advance, + unsigned advance_stride); +HB_EXTERN void +hb_font_get_glyph_v_advances (hb_font_t* font, + unsigned int count, + const hb_codepoint_t *first_glyph, + unsigned glyph_stride, + hb_position_t *first_advance, + unsigned advance_stride); + +HB_EXTERN hb_bool_t +hb_font_get_glyph_h_origin (hb_font_t *font, + hb_codepoint_t glyph, + hb_position_t *x, hb_position_t *y); +HB_EXTERN hb_bool_t +hb_font_get_glyph_v_origin (hb_font_t *font, + hb_codepoint_t glyph, + hb_position_t *x, hb_position_t *y); + +HB_EXTERN hb_position_t +hb_font_get_glyph_h_kerning (hb_font_t *font, + hb_codepoint_t left_glyph, hb_codepoint_t right_glyph); + +HB_EXTERN hb_bool_t +hb_font_get_glyph_extents (hb_font_t *font, + hb_codepoint_t glyph, + hb_glyph_extents_t *extents); + +HB_EXTERN hb_bool_t +hb_font_get_glyph_contour_point (hb_font_t *font, + hb_codepoint_t glyph, unsigned int point_index, + hb_position_t *x, hb_position_t *y); + +HB_EXTERN hb_bool_t +hb_font_get_glyph_name (hb_font_t *font, + hb_codepoint_t glyph, + char *name, unsigned int size); +HB_EXTERN hb_bool_t +hb_font_get_glyph_from_name (hb_font_t *font, + const char *name, int len, /* -1 means nul-terminated */ + hb_codepoint_t *glyph); + +HB_EXTERN void +hb_font_get_glyph_shape (hb_font_t *font, + hb_codepoint_t glyph, + hb_draw_funcs_t *dfuncs, void *draw_data); + + +/* high-level funcs, with fallback */ + +/* Calls either hb_font_get_nominal_glyph() if variation_selector is 0, + * otherwise calls hb_font_get_variation_glyph(). */ +HB_EXTERN hb_bool_t +hb_font_get_glyph (hb_font_t *font, + hb_codepoint_t unicode, hb_codepoint_t variation_selector, + hb_codepoint_t *glyph); + +HB_EXTERN void +hb_font_get_extents_for_direction (hb_font_t *font, + hb_direction_t direction, + hb_font_extents_t *extents); +HB_EXTERN void +hb_font_get_glyph_advance_for_direction (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + hb_position_t *x, hb_position_t *y); +HB_EXTERN void +hb_font_get_glyph_advances_for_direction (hb_font_t* font, + hb_direction_t direction, + unsigned int count, + const hb_codepoint_t *first_glyph, + unsigned glyph_stride, + hb_position_t *first_advance, + unsigned advance_stride); +HB_EXTERN void +hb_font_get_glyph_origin_for_direction (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + hb_position_t *x, hb_position_t *y); +HB_EXTERN void +hb_font_add_glyph_origin_for_direction (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + hb_position_t *x, hb_position_t *y); +HB_EXTERN void +hb_font_subtract_glyph_origin_for_direction (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + hb_position_t *x, hb_position_t *y); + +HB_EXTERN void +hb_font_get_glyph_kerning_for_direction (hb_font_t *font, + hb_codepoint_t first_glyph, hb_codepoint_t second_glyph, + hb_direction_t direction, + hb_position_t *x, hb_position_t *y); + +HB_EXTERN hb_bool_t +hb_font_get_glyph_extents_for_origin (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + hb_glyph_extents_t *extents); + +HB_EXTERN hb_bool_t +hb_font_get_glyph_contour_point_for_origin (hb_font_t *font, + hb_codepoint_t glyph, unsigned int point_index, + hb_direction_t direction, + hb_position_t *x, hb_position_t *y); + +/* Generates gidDDD if glyph has no name. */ +HB_EXTERN void +hb_font_glyph_to_string (hb_font_t *font, + hb_codepoint_t glyph, + char *s, unsigned int size); +/* Parses gidDDD and uniUUUU strings automatically. */ +HB_EXTERN hb_bool_t +hb_font_glyph_from_string (hb_font_t *font, + const char *s, int len, /* -1 means nul-terminated */ + hb_codepoint_t *glyph); + + +/* + * hb_font_t + */ + +/* Fonts are very light-weight objects */ + +HB_EXTERN hb_font_t * +hb_font_create (hb_face_t *face); + +HB_EXTERN hb_font_t * +hb_font_create_sub_font (hb_font_t *parent); + +HB_EXTERN hb_font_t * +hb_font_get_empty (void); + +HB_EXTERN hb_font_t * +hb_font_reference (hb_font_t *font); + +HB_EXTERN void +hb_font_destroy (hb_font_t *font); + +HB_EXTERN hb_bool_t +hb_font_set_user_data (hb_font_t *font, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + + +HB_EXTERN void * +hb_font_get_user_data (const hb_font_t *font, + hb_user_data_key_t *key); + +HB_EXTERN void +hb_font_make_immutable (hb_font_t *font); + +HB_EXTERN hb_bool_t +hb_font_is_immutable (hb_font_t *font); + +HB_EXTERN unsigned int +hb_font_get_serial (hb_font_t *font); + +HB_EXTERN void +hb_font_changed (hb_font_t *font); + +HB_EXTERN void +hb_font_set_parent (hb_font_t *font, + hb_font_t *parent); + +HB_EXTERN hb_font_t * +hb_font_get_parent (hb_font_t *font); + +HB_EXTERN void +hb_font_set_face (hb_font_t *font, + hb_face_t *face); + +HB_EXTERN hb_face_t * +hb_font_get_face (hb_font_t *font); + + +HB_EXTERN void +hb_font_set_funcs (hb_font_t *font, + hb_font_funcs_t *klass, + void *font_data, + hb_destroy_func_t destroy); + +/* Be *very* careful with this function! */ +HB_EXTERN void +hb_font_set_funcs_data (hb_font_t *font, + void *font_data, + hb_destroy_func_t destroy); + + +HB_EXTERN void +hb_font_set_scale (hb_font_t *font, + int x_scale, + int y_scale); + +HB_EXTERN void +hb_font_get_scale (hb_font_t *font, + int *x_scale, + int *y_scale); + +/* + * A zero value means "no hinting in that direction" + */ +HB_EXTERN void +hb_font_set_ppem (hb_font_t *font, + unsigned int x_ppem, + unsigned int y_ppem); + +HB_EXTERN void +hb_font_get_ppem (hb_font_t *font, + unsigned int *x_ppem, + unsigned int *y_ppem); + +/* + * Point size per EM. Used for optical-sizing in CoreText. + * A value of zero means "not set". + */ +HB_EXTERN void +hb_font_set_ptem (hb_font_t *font, float ptem); + +HB_EXTERN float +hb_font_get_ptem (hb_font_t *font); + +HB_EXTERN void +hb_font_set_synthetic_slant (hb_font_t *font, float slant); + +HB_EXTERN float +hb_font_get_synthetic_slant (hb_font_t *font); + +HB_EXTERN void +hb_font_set_variations (hb_font_t *font, + const hb_variation_t *variations, + unsigned int variations_length); + +HB_EXTERN void +hb_font_set_var_coords_design (hb_font_t *font, + const float *coords, + unsigned int coords_length); + +HB_EXTERN const float * +hb_font_get_var_coords_design (hb_font_t *font, + unsigned int *length); + +HB_EXTERN void +hb_font_set_var_coords_normalized (hb_font_t *font, + const int *coords, /* 2.14 normalized */ + unsigned int coords_length); + +HB_EXTERN const int * +hb_font_get_var_coords_normalized (hb_font_t *font, + unsigned int *length); + +HB_EXTERN void +hb_font_set_var_named_instance (hb_font_t *font, + unsigned instance_index); + + +HB_END_DECLS + +#endif /* HB_FONT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ft.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ft.h new file mode 100644 index 0000000..6a8a7ab --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ft.h @@ -0,0 +1,145 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * Copyright © 2015 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + * Google Author(s): Behdad Esfahbod + */ + +#ifndef HB_FT_H +#define HB_FT_H + +#include "hb.h" + +#include +#include FT_FREETYPE_H + +HB_BEGIN_DECLS + +/* + * Note: FreeType is not thread-safe. + * Hence, these functions are not either. + */ + +/* + * hb-face from ft-face. + */ + +/* This one creates a new hb-face for given ft-face. + * When the returned hb-face is destroyed, the destroy + * callback is called (if not NULL), with the ft-face passed + * to it. + * + * The client is responsible to make sure that ft-face is + * destroyed after hb-face is destroyed. + * + * Most often you don't want this function. You should use either + * hb_ft_face_create_cached(), or hb_ft_face_create_referenced(). + * In particular, if you are going to pass NULL as destroy, you + * probably should use (the more recent) hb_ft_face_create_referenced() + * instead. + */ +HB_EXTERN hb_face_t * +hb_ft_face_create (FT_Face ft_face, + hb_destroy_func_t destroy); + +/* This version is like hb_ft_face_create(), except that it caches + * the hb-face using the generic pointer of the ft-face. This means + * that subsequent calls to this function with the same ft-face will + * return the same hb-face (correctly referenced). + * + * Client is still responsible for making sure that ft-face is destroyed + * after hb-face is. + */ +HB_EXTERN hb_face_t * +hb_ft_face_create_cached (FT_Face ft_face); + +/* This version is like hb_ft_face_create(), except that it calls + * FT_Reference_Face() on ft-face, as such keeping ft-face alive + * as long as the hb-face is. + * + * This is the most convenient version to use. Use it unless you have + * very good reasons not to. + */ +HB_EXTERN hb_face_t * +hb_ft_face_create_referenced (FT_Face ft_face); + + +/* + * hb-font from ft-face. + */ + +/* + * Note: + * + * Set face size on ft-face before creating hb-font from it. + * Otherwise hb-ft would NOT pick up the font size correctly. + */ + +/* See notes on hb_ft_face_create(). Same issues re lifecycle-management + * apply here. Use hb_ft_font_create_referenced() if you can. */ +HB_EXTERN hb_font_t * +hb_ft_font_create (FT_Face ft_face, + hb_destroy_func_t destroy); + +/* See notes on hb_ft_face_create_referenced() re lifecycle-management + * issues. */ +HB_EXTERN hb_font_t * +hb_ft_font_create_referenced (FT_Face ft_face); + +HB_EXTERN FT_Face +hb_ft_font_get_face (hb_font_t *font); + +HB_EXTERN FT_Face +hb_ft_font_lock_face (hb_font_t *font); + +HB_EXTERN void +hb_ft_font_unlock_face (hb_font_t *font); + +HB_EXTERN void +hb_ft_font_set_load_flags (hb_font_t *font, int load_flags); + +HB_EXTERN int +hb_ft_font_get_load_flags (hb_font_t *font); + +/* Call when size or variations settings on underlying FT_Face changed, + * and you want to update the hb_font_t from it. */ +HB_EXTERN void +hb_ft_font_changed (hb_font_t *font); + +/* Call when size or variations settings on underlying hb_font_t may have + * changed, and you want to update the FT_Face from it. This call is fast + * if nothing changed on hb_font_t. Returns true if changed. */ +HB_EXTERN hb_bool_t +hb_ft_hb_font_changed (hb_font_t *font); + +/* Makes an hb_font_t use FreeType internally to implement font functions. + * Note: this internally creates an FT_Face. Use it when you create your + * hb_face_t using hb_face_create(). */ +HB_EXTERN void +hb_ft_font_set_funcs (hb_font_t *font); + + +HB_END_DECLS + +#endif /* HB_FT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-map.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-map.h new file mode 100644 index 0000000..3a067c5 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-map.h @@ -0,0 +1,124 @@ +/* + * Copyright © 2018 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_MAP_H +#define HB_MAP_H + +#include "hb-common.h" + +HB_BEGIN_DECLS + + +/** + * HB_MAP_VALUE_INVALID: + * + * Unset #hb_map_t value. + * + * Since: 1.7.7 + */ +#define HB_MAP_VALUE_INVALID ((hb_codepoint_t) -1) + +/** + * hb_map_t: + * + * Data type for holding integer-to-integer hash maps. + * + **/ +typedef struct hb_map_t hb_map_t; + + +HB_EXTERN hb_map_t * +hb_map_create (void); + +HB_EXTERN hb_map_t * +hb_map_get_empty (void); + +HB_EXTERN hb_map_t * +hb_map_reference (hb_map_t *map); + +HB_EXTERN void +hb_map_destroy (hb_map_t *map); + +HB_EXTERN hb_bool_t +hb_map_set_user_data (hb_map_t *map, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + +HB_EXTERN void * +hb_map_get_user_data (const hb_map_t *map, + hb_user_data_key_t *key); + + +/* Returns false if allocation has failed before */ +HB_EXTERN hb_bool_t +hb_map_allocation_successful (const hb_map_t *map); + +HB_EXTERN hb_map_t * +hb_map_copy (const hb_map_t *map); + +HB_EXTERN void +hb_map_clear (hb_map_t *map); + +HB_EXTERN hb_bool_t +hb_map_is_empty (const hb_map_t *map); + +HB_EXTERN unsigned int +hb_map_get_population (const hb_map_t *map); + +HB_EXTERN hb_bool_t +hb_map_is_equal (const hb_map_t *map, + const hb_map_t *other); + +HB_EXTERN unsigned int +hb_map_hash (const hb_map_t *map); + +HB_EXTERN void +hb_map_set (hb_map_t *map, + hb_codepoint_t key, + hb_codepoint_t value); + +HB_EXTERN hb_codepoint_t +hb_map_get (const hb_map_t *map, + hb_codepoint_t key); + +HB_EXTERN void +hb_map_del (hb_map_t *map, + hb_codepoint_t key); + +HB_EXTERN hb_bool_t +hb_map_has (const hb_map_t *map, + hb_codepoint_t key); + + +HB_END_DECLS + +#endif /* HB_MAP_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-color.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-color.h new file mode 100644 index 0000000..d11e07e --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-color.h @@ -0,0 +1,146 @@ +/* + * Copyright © 2016 Google, Inc. + * Copyright © 2018 Khaled Hosny + * Copyright © 2018 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Sascha Brawer, Behdad Esfahbod + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_COLOR_H +#define HB_OT_COLOR_H + +#include "hb.h" +#include "hb-ot-name.h" + +HB_BEGIN_DECLS + + +/* + * Color palettes. + */ + +HB_EXTERN hb_bool_t +hb_ot_color_has_palettes (hb_face_t *face); + +HB_EXTERN unsigned int +hb_ot_color_palette_get_count (hb_face_t *face); + +HB_EXTERN hb_ot_name_id_t +hb_ot_color_palette_get_name_id (hb_face_t *face, + unsigned int palette_index); + +HB_EXTERN hb_ot_name_id_t +hb_ot_color_palette_color_get_name_id (hb_face_t *face, + unsigned int color_index); + +/** + * hb_ot_color_palette_flags_t: + * @HB_OT_COLOR_PALETTE_FLAG_DEFAULT: Default indicating that there is nothing special + * to note about a color palette. + * @HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_LIGHT_BACKGROUND: Flag indicating that the color + * palette is appropriate to use when displaying the font on a light background such as white. + * @HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_DARK_BACKGROUND: Flag indicating that the color + * palette is appropriate to use when displaying the font on a dark background such as black. + * + * Flags that describe the properties of color palette. + * + * Since: 2.1.0 + */ +typedef enum { /*< flags >*/ + HB_OT_COLOR_PALETTE_FLAG_DEFAULT = 0x00000000u, + HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_LIGHT_BACKGROUND = 0x00000001u, + HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_DARK_BACKGROUND = 0x00000002u +} hb_ot_color_palette_flags_t; + +HB_EXTERN hb_ot_color_palette_flags_t +hb_ot_color_palette_get_flags (hb_face_t *face, + unsigned int palette_index); + +HB_EXTERN unsigned int +hb_ot_color_palette_get_colors (hb_face_t *face, + unsigned int palette_index, + unsigned int start_offset, + unsigned int *color_count, /* IN/OUT. May be NULL. */ + hb_color_t *colors /* OUT. May be NULL. */); + + +/* + * Color layers. + */ + +HB_EXTERN hb_bool_t +hb_ot_color_has_layers (hb_face_t *face); + +/** + * hb_ot_color_layer_t: + * @glyph: the glyph ID of the layer + * @color_index: the palette color index of the layer + * + * Pairs of glyph and color index. + * + * A color index of 0xFFFF does not refer to a palette + * color, but indicates that the foreground color should + * be used. + * + * Since: 2.1.0 + **/ +typedef struct hb_ot_color_layer_t { + hb_codepoint_t glyph; + unsigned int color_index; +} hb_ot_color_layer_t; + +HB_EXTERN unsigned int +hb_ot_color_glyph_get_layers (hb_face_t *face, + hb_codepoint_t glyph, + unsigned int start_offset, + unsigned int *layer_count, /* IN/OUT. May be NULL. */ + hb_ot_color_layer_t *layers /* OUT. May be NULL. */); + +/* + * SVG + */ + +HB_EXTERN hb_bool_t +hb_ot_color_has_svg (hb_face_t *face); + +HB_EXTERN hb_blob_t * +hb_ot_color_glyph_reference_svg (hb_face_t *face, hb_codepoint_t glyph); + +/* + * PNG: CBDT or sbix + */ + +HB_EXTERN hb_bool_t +hb_ot_color_has_png (hb_face_t *face); + +HB_EXTERN hb_blob_t * +hb_ot_color_glyph_reference_png (hb_font_t *font, hb_codepoint_t glyph); + + +HB_END_DECLS + +#endif /* HB_OT_COLOR_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-deprecated.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-deprecated.h new file mode 100644 index 0000000..5192ff7 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-deprecated.h @@ -0,0 +1,141 @@ +/* + * Copyright © 2018 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_DEPRECATED_H +#define HB_OT_DEPRECATED_H + +#include "hb.h" +#include "hb-ot-name.h" + + +HB_BEGIN_DECLS + +#ifndef HB_DISABLE_DEPRECATED + + +/* https://github.com/harfbuzz/harfbuzz/issues/1734 */ +/** + * HB_MATH_GLYPH_PART_FLAG_EXTENDER: + * + * Use #HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER instead. + * + * Deprecated: 2.5.1 + */ +#define HB_MATH_GLYPH_PART_FLAG_EXTENDER HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER + +/* https://github.com/harfbuzz/harfbuzz/pull/3417 */ +/** + * HB_OT_MATH_SCRIPT: + * + * Use #HB_SCRIPT_MATH or #HB_OT_TAG_MATH_SCRIPT instead. + * + * Previous versions of this documentation recommended passing + * #HB_OT_MATH_SCRIPT to hb_buffer_set_script() to enable math shaping, but this + * usage is no longer supported. Use #HB_SCRIPT_MATH instead. + * + * Since: 1.3.3 + * Deprecated: 3.4.0 + */ +#define HB_OT_MATH_SCRIPT HB_OT_TAG_MATH_SCRIPT + + +/* Like hb_ot_layout_table_find_script, but takes zero-terminated array of scripts to test */ +HB_EXTERN HB_DEPRECATED_FOR (hb_ot_layout_table_select_script) hb_bool_t +hb_ot_layout_table_choose_script (hb_face_t *face, + hb_tag_t table_tag, + const hb_tag_t *script_tags, + unsigned int *script_index, + hb_tag_t *chosen_script); + +HB_EXTERN HB_DEPRECATED_FOR (hb_ot_layout_script_select_language) hb_bool_t +hb_ot_layout_script_find_language (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + hb_tag_t language_tag, + unsigned int *language_index); + +HB_EXTERN HB_DEPRECATED_FOR (hb_ot_tags_from_script_and_language) void +hb_ot_tags_from_script (hb_script_t script, + hb_tag_t *script_tag_1, + hb_tag_t *script_tag_2); + +HB_EXTERN HB_DEPRECATED_FOR (hb_ot_tags_from_script_and_language) hb_tag_t +hb_ot_tag_from_language (hb_language_t language); + + +/** + * HB_OT_VAR_NO_AXIS_INDEX: + * + * Do not use. + * + * Since: 1.4.2 + * Deprecated: 2.2.0 + */ +#define HB_OT_VAR_NO_AXIS_INDEX 0xFFFFFFFFu + +/** + * hb_ot_var_axis_t: + * @tag: axis tag + * @name_id: axis name identifier + * @min_value: minimum value of the axis + * @default_value: default value of the axis + * @max_value: maximum value of the axis + * + * Use #hb_ot_var_axis_info_t instead. + * + * Since: 1.4.2 + * Deprecated: 2.2.0 + */ +typedef struct hb_ot_var_axis_t { + hb_tag_t tag; + hb_ot_name_id_t name_id; + float min_value; + float default_value; + float max_value; +} hb_ot_var_axis_t; + +HB_EXTERN HB_DEPRECATED_FOR (hb_ot_var_get_axis_infos) unsigned int +hb_ot_var_get_axes (hb_face_t *face, + unsigned int start_offset, + unsigned int *axes_count /* IN/OUT */, + hb_ot_var_axis_t *axes_array /* OUT */); + +HB_EXTERN HB_DEPRECATED_FOR (hb_ot_var_find_axis_info) hb_bool_t +hb_ot_var_find_axis (hb_face_t *face, + hb_tag_t axis_tag, + unsigned int *axis_index, + hb_ot_var_axis_t *axis_info); + + +#endif + +HB_END_DECLS + +#endif /* HB_OT_DEPRECATED_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-font.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-font.h new file mode 100644 index 0000000..e7959d1 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-font.h @@ -0,0 +1,45 @@ +/* + * Copyright © 2014 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod, Roozbeh Pournader + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_FONT_H +#define HB_OT_FONT_H + +#include "hb.h" + +HB_BEGIN_DECLS + + +HB_EXTERN void +hb_ot_font_set_funcs (hb_font_t *font); + + +HB_END_DECLS + +#endif /* HB_OT_FONT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-layout.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-layout.h new file mode 100644 index 0000000..f7b488f --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-layout.h @@ -0,0 +1,503 @@ +/* + * Copyright © 2007,2008,2009 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_LAYOUT_H +#define HB_OT_LAYOUT_H + +#include "hb.h" + +#include "hb-ot-name.h" + +HB_BEGIN_DECLS + + +/** + * HB_OT_TAG_BASE: + * + * OpenType [Baseline Table](https://docs.microsoft.com/en-us/typography/opentype/spec/base). + */ +#define HB_OT_TAG_BASE HB_TAG('B','A','S','E') +/** + * HB_OT_TAG_GDEF: + * + * OpenType [Glyph Definition Table](https://docs.microsoft.com/en-us/typography/opentype/spec/gdef). + */ +#define HB_OT_TAG_GDEF HB_TAG('G','D','E','F') +/** + * HB_OT_TAG_GSUB: + * + * OpenType [Glyph Substitution Table](https://docs.microsoft.com/en-us/typography/opentype/spec/gsub). + */ +#define HB_OT_TAG_GSUB HB_TAG('G','S','U','B') +/** + * HB_OT_TAG_GPOS: + * + * OpenType [Glyph Positioning Table](https://docs.microsoft.com/en-us/typography/opentype/spec/gpos). + */ +#define HB_OT_TAG_GPOS HB_TAG('G','P','O','S') +/** + * HB_OT_TAG_JSTF: + * + * OpenType [Justification Table](https://docs.microsoft.com/en-us/typography/opentype/spec/jstf). + */ +#define HB_OT_TAG_JSTF HB_TAG('J','S','T','F') + + +/* + * Script & Language tags. + */ + +/** + * HB_OT_TAG_DEFAULT_SCRIPT: + * + * OpenType script tag, `DFLT`, for features that are not script-specific. + * + */ +#define HB_OT_TAG_DEFAULT_SCRIPT HB_TAG ('D', 'F', 'L', 'T') +/** + * HB_OT_TAG_DEFAULT_LANGUAGE: + * + * OpenType language tag, `dflt`. Not a valid language tag, but some fonts + * mistakenly use it. + */ +#define HB_OT_TAG_DEFAULT_LANGUAGE HB_TAG ('d', 'f', 'l', 't') + +/** + * HB_OT_MAX_TAGS_PER_SCRIPT: + * + * Maximum number of OpenType tags that can correspond to a give #hb_script_t. + * + * Since: 2.0.0 + **/ +#define HB_OT_MAX_TAGS_PER_SCRIPT 3u +/** + * HB_OT_MAX_TAGS_PER_LANGUAGE: + * + * Maximum number of OpenType tags that can correspond to a give #hb_language_t. + * + * Since: 2.0.0 + **/ +#define HB_OT_MAX_TAGS_PER_LANGUAGE 3u + +HB_EXTERN void +hb_ot_tags_from_script_and_language (hb_script_t script, + hb_language_t language, + unsigned int *script_count /* IN/OUT */, + hb_tag_t *script_tags /* OUT */, + unsigned int *language_count /* IN/OUT */, + hb_tag_t *language_tags /* OUT */); + +HB_EXTERN hb_script_t +hb_ot_tag_to_script (hb_tag_t tag); + +HB_EXTERN hb_language_t +hb_ot_tag_to_language (hb_tag_t tag); + +HB_EXTERN void +hb_ot_tags_to_script_and_language (hb_tag_t script_tag, + hb_tag_t language_tag, + hb_script_t *script /* OUT */, + hb_language_t *language /* OUT */); + + +/* + * GDEF + */ + +HB_EXTERN hb_bool_t +hb_ot_layout_has_glyph_classes (hb_face_t *face); + +/** + * hb_ot_layout_glyph_class_t: + * @HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED: Glyphs not matching the other classifications + * @HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH: Spacing, single characters, capable of accepting marks + * @HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE: Glyphs that represent ligation of multiple characters + * @HB_OT_LAYOUT_GLYPH_CLASS_MARK: Non-spacing, combining glyphs that represent marks + * @HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT: Spacing glyphs that represent part of a single character + * + * The GDEF classes defined for glyphs. + * + **/ +typedef enum { + HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED = 0, + HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH = 1, + HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE = 2, + HB_OT_LAYOUT_GLYPH_CLASS_MARK = 3, + HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT = 4 +} hb_ot_layout_glyph_class_t; + +HB_EXTERN hb_ot_layout_glyph_class_t +hb_ot_layout_get_glyph_class (hb_face_t *face, + hb_codepoint_t glyph); + +HB_EXTERN void +hb_ot_layout_get_glyphs_in_class (hb_face_t *face, + hb_ot_layout_glyph_class_t klass, + hb_set_t *glyphs /* OUT */); + +/* Not that useful. Provides list of attach points for a glyph that a + * client may want to cache */ +HB_EXTERN unsigned int +hb_ot_layout_get_attach_points (hb_face_t *face, + hb_codepoint_t glyph, + unsigned int start_offset, + unsigned int *point_count /* IN/OUT */, + unsigned int *point_array /* OUT */); + +/* Ligature caret positions */ +HB_EXTERN unsigned int +hb_ot_layout_get_ligature_carets (hb_font_t *font, + hb_direction_t direction, + hb_codepoint_t glyph, + unsigned int start_offset, + unsigned int *caret_count /* IN/OUT */, + hb_position_t *caret_array /* OUT */); + + +/* + * GSUB/GPOS feature query and enumeration interface + */ + +/** + * HB_OT_LAYOUT_NO_SCRIPT_INDEX: + * + * Special value for script index indicating unsupported script. + */ +#define HB_OT_LAYOUT_NO_SCRIPT_INDEX 0xFFFFu +/** + * HB_OT_LAYOUT_NO_FEATURE_INDEX: + * + * Special value for feature index indicating unsupported feature. + */ +#define HB_OT_LAYOUT_NO_FEATURE_INDEX 0xFFFFu +/** + * HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX: + * + * Special value for language index indicating default or unsupported language. + */ +#define HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX 0xFFFFu +/** + * HB_OT_LAYOUT_NO_VARIATIONS_INDEX: + * + * Special value for variations index indicating unsupported variation. + */ +#define HB_OT_LAYOUT_NO_VARIATIONS_INDEX 0xFFFFFFFFu + +HB_EXTERN unsigned int +hb_ot_layout_table_get_script_tags (hb_face_t *face, + hb_tag_t table_tag, + unsigned int start_offset, + unsigned int *script_count /* IN/OUT */, + hb_tag_t *script_tags /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_table_find_script (hb_face_t *face, + hb_tag_t table_tag, + hb_tag_t script_tag, + unsigned int *script_index /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_table_select_script (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_count, + const hb_tag_t *script_tags, + unsigned int *script_index /* OUT */, + hb_tag_t *chosen_script /* OUT */); + +HB_EXTERN unsigned int +hb_ot_layout_table_get_feature_tags (hb_face_t *face, + hb_tag_t table_tag, + unsigned int start_offset, + unsigned int *feature_count /* IN/OUT */, + hb_tag_t *feature_tags /* OUT */); + +HB_EXTERN unsigned int +hb_ot_layout_script_get_language_tags (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int start_offset, + unsigned int *language_count /* IN/OUT */, + hb_tag_t *language_tags /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_script_select_language (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int language_count, + const hb_tag_t *language_tags, + unsigned int *language_index /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_language_get_required_feature_index (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int language_index, + unsigned int *feature_index /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_language_get_required_feature (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int language_index, + unsigned int *feature_index /* OUT */, + hb_tag_t *feature_tag /* OUT */); + +HB_EXTERN unsigned int +hb_ot_layout_language_get_feature_indexes (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int language_index, + unsigned int start_offset, + unsigned int *feature_count /* IN/OUT */, + unsigned int *feature_indexes /* OUT */); + +HB_EXTERN unsigned int +hb_ot_layout_language_get_feature_tags (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int language_index, + unsigned int start_offset, + unsigned int *feature_count /* IN/OUT */, + hb_tag_t *feature_tags /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_language_find_feature (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int language_index, + hb_tag_t feature_tag, + unsigned int *feature_index /* OUT */); + +HB_EXTERN unsigned int +hb_ot_layout_feature_get_lookups (hb_face_t *face, + hb_tag_t table_tag, + unsigned int feature_index, + unsigned int start_offset, + unsigned int *lookup_count /* IN/OUT */, + unsigned int *lookup_indexes /* OUT */); + +HB_EXTERN unsigned int +hb_ot_layout_table_get_lookup_count (hb_face_t *face, + hb_tag_t table_tag); + +HB_EXTERN void +hb_ot_layout_collect_features (hb_face_t *face, + hb_tag_t table_tag, + const hb_tag_t *scripts, + const hb_tag_t *languages, + const hb_tag_t *features, + hb_set_t *feature_indexes /* OUT */); + +HB_EXTERN void +hb_ot_layout_collect_lookups (hb_face_t *face, + hb_tag_t table_tag, + const hb_tag_t *scripts, + const hb_tag_t *languages, + const hb_tag_t *features, + hb_set_t *lookup_indexes /* OUT */); + +HB_EXTERN void +hb_ot_layout_lookup_collect_glyphs (hb_face_t *face, + hb_tag_t table_tag, + unsigned int lookup_index, + hb_set_t *glyphs_before, /* OUT. May be NULL */ + hb_set_t *glyphs_input, /* OUT. May be NULL */ + hb_set_t *glyphs_after, /* OUT. May be NULL */ + hb_set_t *glyphs_output /* OUT. May be NULL */); + + +/* Variations support */ + +HB_EXTERN hb_bool_t +hb_ot_layout_table_find_feature_variations (hb_face_t *face, + hb_tag_t table_tag, + const int *coords, + unsigned int num_coords, + unsigned int *variations_index /* out */); + +HB_EXTERN unsigned int +hb_ot_layout_feature_with_variations_get_lookups (hb_face_t *face, + hb_tag_t table_tag, + unsigned int feature_index, + unsigned int variations_index, + unsigned int start_offset, + unsigned int *lookup_count /* IN/OUT */, + unsigned int *lookup_indexes /* OUT */); + + +/* + * GSUB + */ + +HB_EXTERN hb_bool_t +hb_ot_layout_has_substitution (hb_face_t *face); + +HB_EXTERN unsigned +hb_ot_layout_lookup_get_glyph_alternates (hb_face_t *face, + unsigned lookup_index, + hb_codepoint_t glyph, + unsigned start_offset, + unsigned *alternate_count /* IN/OUT */, + hb_codepoint_t *alternate_glyphs /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_lookup_would_substitute (hb_face_t *face, + unsigned int lookup_index, + const hb_codepoint_t *glyphs, + unsigned int glyphs_length, + hb_bool_t zero_context); + +HB_EXTERN void +hb_ot_layout_lookup_substitute_closure (hb_face_t *face, + unsigned int lookup_index, + hb_set_t *glyphs + /*TODO , hb_bool_t inclusive */); + +HB_EXTERN void +hb_ot_layout_lookups_substitute_closure (hb_face_t *face, + const hb_set_t *lookups, + hb_set_t *glyphs); + + +/* + * GPOS + */ + +HB_EXTERN hb_bool_t +hb_ot_layout_has_positioning (hb_face_t *face); + +/* Optical 'size' feature info. Returns true if found. + * https://docs.microsoft.com/en-us/typography/opentype/spec/features_pt#size */ +HB_EXTERN hb_bool_t +hb_ot_layout_get_size_params (hb_face_t *face, + unsigned int *design_size, /* OUT. May be NULL */ + unsigned int *subfamily_id, /* OUT. May be NULL */ + hb_ot_name_id_t *subfamily_name_id, /* OUT. May be NULL */ + unsigned int *range_start, /* OUT. May be NULL */ + unsigned int *range_end /* OUT. May be NULL */); + +HB_EXTERN hb_position_t +hb_ot_layout_lookup_get_optical_bound (hb_font_t *font, + unsigned lookup_index, + hb_direction_t direction, + hb_codepoint_t glyph); + + +/* + * GSUB/GPOS + */ + +HB_EXTERN hb_bool_t +hb_ot_layout_feature_get_name_ids (hb_face_t *face, + hb_tag_t table_tag, + unsigned int feature_index, + hb_ot_name_id_t *label_id /* OUT. May be NULL */, + hb_ot_name_id_t *tooltip_id /* OUT. May be NULL */, + hb_ot_name_id_t *sample_id /* OUT. May be NULL */, + unsigned int *num_named_parameters /* OUT. May be NULL */, + hb_ot_name_id_t *first_param_id /* OUT. May be NULL */); + + +HB_EXTERN unsigned int +hb_ot_layout_feature_get_characters (hb_face_t *face, + hb_tag_t table_tag, + unsigned int feature_index, + unsigned int start_offset, + unsigned int *char_count /* IN/OUT. May be NULL */, + hb_codepoint_t *characters /* OUT. May be NULL */); + + +/* + * BASE + */ + +/** + * hb_ot_layout_baseline_tag_t: + * @HB_OT_LAYOUT_BASELINE_TAG_ROMAN: The baseline used by alphabetic scripts such as Latin, Cyrillic and Greek. + * In vertical writing mode, the alphabetic baseline for characters rotated 90 degrees clockwise. + * (This would not apply to alphabetic characters that remain upright in vertical writing mode, since these + * characters are not rotated.) + * @HB_OT_LAYOUT_BASELINE_TAG_HANGING: The hanging baseline. In horizontal direction, this is the horizontal + * line from which syllables seem, to hang in Tibetan and other similar scripts. In vertical writing mode, + * for Tibetan (or some other similar script) characters rotated 90 degrees clockwise. + * @HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT: Ideographic character face bottom or left edge, + * if the direction is horizontal or vertical, respectively. + * @HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT: Ideographic character face top or right edge, + * if the direction is horizontal or vertical, respectively. + * @HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL: The center of the ideographic character face. Since: 4.0.0 + * @HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT: Ideographic em-box bottom or left edge, + * if the direction is horizontal or vertical, respectively. + * @HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT: Ideographic em-box top or right edge baseline, + * @HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL: The center of the ideographic em-box. Since: 4.0.0 + * if the direction is horizontal or vertical, respectively. + * @HB_OT_LAYOUT_BASELINE_TAG_MATH: The baseline about which mathematical characters are centered. + * In vertical writing mode when mathematical characters rotated 90 degrees clockwise, are centered. + * + * Baseline tags from [Baseline Tags](https://docs.microsoft.com/en-us/typography/opentype/spec/baselinetags) registry. + * + * Since: 2.6.0 + */ +typedef enum { + HB_OT_LAYOUT_BASELINE_TAG_ROMAN = HB_TAG ('r','o','m','n'), + HB_OT_LAYOUT_BASELINE_TAG_HANGING = HB_TAG ('h','a','n','g'), + HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT = HB_TAG ('i','c','f','b'), + HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT = HB_TAG ('i','c','f','t'), + HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL = HB_TAG ('I','c','f','c'), + HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT = HB_TAG ('i','d','e','o'), + HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT = HB_TAG ('i','d','t','p'), + HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL = HB_TAG ('I','d','c','e'), + HB_OT_LAYOUT_BASELINE_TAG_MATH = HB_TAG ('m','a','t','h'), + + /*< private >*/ + _HB_OT_LAYOUT_BASELINE_TAG_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_ot_layout_baseline_tag_t; + +HB_EXTERN hb_ot_layout_baseline_tag_t +hb_ot_layout_get_horizontal_baseline_tag_for_script (hb_script_t script); + +HB_EXTERN hb_bool_t +hb_ot_layout_get_baseline (hb_font_t *font, + hb_ot_layout_baseline_tag_t baseline_tag, + hb_direction_t direction, + hb_tag_t script_tag, + hb_tag_t language_tag, + hb_position_t *coord /* OUT. May be NULL. */); + +HB_EXTERN void +hb_ot_layout_get_baseline_with_fallback (hb_font_t *font, + hb_ot_layout_baseline_tag_t baseline_tag, + hb_direction_t direction, + hb_tag_t script_tag, + hb_tag_t language_tag, + hb_position_t *coord /* OUT */); + +HB_END_DECLS + +#endif /* HB_OT_LAYOUT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-math.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-math.h new file mode 100644 index 0000000..1378a06 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-math.h @@ -0,0 +1,333 @@ +/* + * Copyright © 2016 Igalia S.L. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Igalia Author(s): Frédéric Wang + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_MATH_H +#define HB_OT_MATH_H + +#include "hb.h" + +HB_BEGIN_DECLS + + +/* + * MATH + */ + +/** + * HB_OT_TAG_MATH: + * + * OpenType [Mathematical Typesetting Table](https://docs.microsoft.com/en-us/typography/opentype/spec/math). + * + * Since: 1.3.3 + */ +#define HB_OT_TAG_MATH HB_TAG('M','A','T','H') + +/** + * HB_OT_TAG_MATH_SCRIPT: + * + * OpenType script tag, `math`, for features specific to math shaping. + * + * #HB_OT_TAG_MATH_SCRIPT is not a valid #hb_script_t and should only be + * used with functions that accept raw OpenType script tags, such as + * #hb_ot_layout_collect_features. In other cases, #HB_SCRIPT_MATH should be + * used instead. + * + * Since: 3.4.0 + */ +#define HB_OT_TAG_MATH_SCRIPT HB_TAG('m','a','t','h') + +/* Types */ + +/** + * hb_ot_math_constant_t: + * @HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN: scriptPercentScaleDown + * @HB_OT_MATH_CONSTANT_SCRIPT_SCRIPT_PERCENT_SCALE_DOWN: scriptScriptPercentScaleDown + * @HB_OT_MATH_CONSTANT_DELIMITED_SUB_FORMULA_MIN_HEIGHT: delimitedSubFormulaMinHeight + * @HB_OT_MATH_CONSTANT_DISPLAY_OPERATOR_MIN_HEIGHT: displayOperatorMinHeight + * @HB_OT_MATH_CONSTANT_MATH_LEADING: mathLeading + * @HB_OT_MATH_CONSTANT_AXIS_HEIGHT: axisHeight + * @HB_OT_MATH_CONSTANT_ACCENT_BASE_HEIGHT: accentBaseHeight + * @HB_OT_MATH_CONSTANT_FLATTENED_ACCENT_BASE_HEIGHT: flattenedAccentBaseHeight + * @HB_OT_MATH_CONSTANT_SUBSCRIPT_SHIFT_DOWN: subscriptShiftDown + * @HB_OT_MATH_CONSTANT_SUBSCRIPT_TOP_MAX: subscriptTopMax + * @HB_OT_MATH_CONSTANT_SUBSCRIPT_BASELINE_DROP_MIN: subscriptBaselineDropMin + * @HB_OT_MATH_CONSTANT_SUPERSCRIPT_SHIFT_UP: superscriptShiftUp + * @HB_OT_MATH_CONSTANT_SUPERSCRIPT_SHIFT_UP_CRAMPED: superscriptShiftUpCramped + * @HB_OT_MATH_CONSTANT_SUPERSCRIPT_BOTTOM_MIN: superscriptBottomMin + * @HB_OT_MATH_CONSTANT_SUPERSCRIPT_BASELINE_DROP_MAX: superscriptBaselineDropMax + * @HB_OT_MATH_CONSTANT_SUB_SUPERSCRIPT_GAP_MIN: subSuperscriptGapMin + * @HB_OT_MATH_CONSTANT_SUPERSCRIPT_BOTTOM_MAX_WITH_SUBSCRIPT: superscriptBottomMaxWithSubscript + * @HB_OT_MATH_CONSTANT_SPACE_AFTER_SCRIPT: spaceAfterScript + * @HB_OT_MATH_CONSTANT_UPPER_LIMIT_GAP_MIN: upperLimitGapMin + * @HB_OT_MATH_CONSTANT_UPPER_LIMIT_BASELINE_RISE_MIN: upperLimitBaselineRiseMin + * @HB_OT_MATH_CONSTANT_LOWER_LIMIT_GAP_MIN: lowerLimitGapMin + * @HB_OT_MATH_CONSTANT_LOWER_LIMIT_BASELINE_DROP_MIN: lowerLimitBaselineDropMin + * @HB_OT_MATH_CONSTANT_STACK_TOP_SHIFT_UP: stackTopShiftUp + * @HB_OT_MATH_CONSTANT_STACK_TOP_DISPLAY_STYLE_SHIFT_UP: stackTopDisplayStyleShiftUp + * @HB_OT_MATH_CONSTANT_STACK_BOTTOM_SHIFT_DOWN: stackBottomShiftDown + * @HB_OT_MATH_CONSTANT_STACK_BOTTOM_DISPLAY_STYLE_SHIFT_DOWN: stackBottomDisplayStyleShiftDown + * @HB_OT_MATH_CONSTANT_STACK_GAP_MIN: stackGapMin + * @HB_OT_MATH_CONSTANT_STACK_DISPLAY_STYLE_GAP_MIN: stackDisplayStyleGapMin + * @HB_OT_MATH_CONSTANT_STRETCH_STACK_TOP_SHIFT_UP: stretchStackTopShiftUp + * @HB_OT_MATH_CONSTANT_STRETCH_STACK_BOTTOM_SHIFT_DOWN: stretchStackBottomShiftDown + * @HB_OT_MATH_CONSTANT_STRETCH_STACK_GAP_ABOVE_MIN: stretchStackGapAboveMin + * @HB_OT_MATH_CONSTANT_STRETCH_STACK_GAP_BELOW_MIN: stretchStackGapBelowMin + * @HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_SHIFT_UP: fractionNumeratorShiftUp + * @HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_DISPLAY_STYLE_SHIFT_UP: fractionNumeratorDisplayStyleShiftUp + * @HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_SHIFT_DOWN: fractionDenominatorShiftDown + * @HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_DISPLAY_STYLE_SHIFT_DOWN: fractionDenominatorDisplayStyleShiftDown + * @HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_GAP_MIN: fractionNumeratorGapMin + * @HB_OT_MATH_CONSTANT_FRACTION_NUM_DISPLAY_STYLE_GAP_MIN: fractionNumDisplayStyleGapMin + * @HB_OT_MATH_CONSTANT_FRACTION_RULE_THICKNESS: fractionRuleThickness + * @HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_GAP_MIN: fractionDenominatorGapMin + * @HB_OT_MATH_CONSTANT_FRACTION_DENOM_DISPLAY_STYLE_GAP_MIN: fractionDenomDisplayStyleGapMin + * @HB_OT_MATH_CONSTANT_SKEWED_FRACTION_HORIZONTAL_GAP: skewedFractionHorizontalGap + * @HB_OT_MATH_CONSTANT_SKEWED_FRACTION_VERTICAL_GAP: skewedFractionVerticalGap + * @HB_OT_MATH_CONSTANT_OVERBAR_VERTICAL_GAP: overbarVerticalGap + * @HB_OT_MATH_CONSTANT_OVERBAR_RULE_THICKNESS: overbarRuleThickness + * @HB_OT_MATH_CONSTANT_OVERBAR_EXTRA_ASCENDER: overbarExtraAscender + * @HB_OT_MATH_CONSTANT_UNDERBAR_VERTICAL_GAP: underbarVerticalGap + * @HB_OT_MATH_CONSTANT_UNDERBAR_RULE_THICKNESS: underbarRuleThickness + * @HB_OT_MATH_CONSTANT_UNDERBAR_EXTRA_DESCENDER: underbarExtraDescender + * @HB_OT_MATH_CONSTANT_RADICAL_VERTICAL_GAP: radicalVerticalGap + * @HB_OT_MATH_CONSTANT_RADICAL_DISPLAY_STYLE_VERTICAL_GAP: radicalDisplayStyleVerticalGap + * @HB_OT_MATH_CONSTANT_RADICAL_RULE_THICKNESS: radicalRuleThickness + * @HB_OT_MATH_CONSTANT_RADICAL_EXTRA_ASCENDER: radicalExtraAscender + * @HB_OT_MATH_CONSTANT_RADICAL_KERN_BEFORE_DEGREE: radicalKernBeforeDegree + * @HB_OT_MATH_CONSTANT_RADICAL_KERN_AFTER_DEGREE: radicalKernAfterDegree + * @HB_OT_MATH_CONSTANT_RADICAL_DEGREE_BOTTOM_RAISE_PERCENT: radicalDegreeBottomRaisePercent + * + * The 'MATH' table constants, refer to + * [OpenType documentation](https://docs.microsoft.com/en-us/typography/opentype/spec/math#mathconstants-table) + * For more explanations. + * + * Since: 1.3.3 + */ +typedef enum { + HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN = 0, + HB_OT_MATH_CONSTANT_SCRIPT_SCRIPT_PERCENT_SCALE_DOWN = 1, + HB_OT_MATH_CONSTANT_DELIMITED_SUB_FORMULA_MIN_HEIGHT = 2, + HB_OT_MATH_CONSTANT_DISPLAY_OPERATOR_MIN_HEIGHT = 3, + HB_OT_MATH_CONSTANT_MATH_LEADING = 4, + HB_OT_MATH_CONSTANT_AXIS_HEIGHT = 5, + HB_OT_MATH_CONSTANT_ACCENT_BASE_HEIGHT = 6, + HB_OT_MATH_CONSTANT_FLATTENED_ACCENT_BASE_HEIGHT = 7, + HB_OT_MATH_CONSTANT_SUBSCRIPT_SHIFT_DOWN = 8, + HB_OT_MATH_CONSTANT_SUBSCRIPT_TOP_MAX = 9, + HB_OT_MATH_CONSTANT_SUBSCRIPT_BASELINE_DROP_MIN = 10, + HB_OT_MATH_CONSTANT_SUPERSCRIPT_SHIFT_UP = 11, + HB_OT_MATH_CONSTANT_SUPERSCRIPT_SHIFT_UP_CRAMPED = 12, + HB_OT_MATH_CONSTANT_SUPERSCRIPT_BOTTOM_MIN = 13, + HB_OT_MATH_CONSTANT_SUPERSCRIPT_BASELINE_DROP_MAX = 14, + HB_OT_MATH_CONSTANT_SUB_SUPERSCRIPT_GAP_MIN = 15, + HB_OT_MATH_CONSTANT_SUPERSCRIPT_BOTTOM_MAX_WITH_SUBSCRIPT = 16, + HB_OT_MATH_CONSTANT_SPACE_AFTER_SCRIPT = 17, + HB_OT_MATH_CONSTANT_UPPER_LIMIT_GAP_MIN = 18, + HB_OT_MATH_CONSTANT_UPPER_LIMIT_BASELINE_RISE_MIN = 19, + HB_OT_MATH_CONSTANT_LOWER_LIMIT_GAP_MIN = 20, + HB_OT_MATH_CONSTANT_LOWER_LIMIT_BASELINE_DROP_MIN = 21, + HB_OT_MATH_CONSTANT_STACK_TOP_SHIFT_UP = 22, + HB_OT_MATH_CONSTANT_STACK_TOP_DISPLAY_STYLE_SHIFT_UP = 23, + HB_OT_MATH_CONSTANT_STACK_BOTTOM_SHIFT_DOWN = 24, + HB_OT_MATH_CONSTANT_STACK_BOTTOM_DISPLAY_STYLE_SHIFT_DOWN = 25, + HB_OT_MATH_CONSTANT_STACK_GAP_MIN = 26, + HB_OT_MATH_CONSTANT_STACK_DISPLAY_STYLE_GAP_MIN = 27, + HB_OT_MATH_CONSTANT_STRETCH_STACK_TOP_SHIFT_UP = 28, + HB_OT_MATH_CONSTANT_STRETCH_STACK_BOTTOM_SHIFT_DOWN = 29, + HB_OT_MATH_CONSTANT_STRETCH_STACK_GAP_ABOVE_MIN = 30, + HB_OT_MATH_CONSTANT_STRETCH_STACK_GAP_BELOW_MIN = 31, + HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_SHIFT_UP = 32, + HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_DISPLAY_STYLE_SHIFT_UP = 33, + HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_SHIFT_DOWN = 34, + HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_DISPLAY_STYLE_SHIFT_DOWN = 35, + HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_GAP_MIN = 36, + HB_OT_MATH_CONSTANT_FRACTION_NUM_DISPLAY_STYLE_GAP_MIN = 37, + HB_OT_MATH_CONSTANT_FRACTION_RULE_THICKNESS = 38, + HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_GAP_MIN = 39, + HB_OT_MATH_CONSTANT_FRACTION_DENOM_DISPLAY_STYLE_GAP_MIN = 40, + HB_OT_MATH_CONSTANT_SKEWED_FRACTION_HORIZONTAL_GAP = 41, + HB_OT_MATH_CONSTANT_SKEWED_FRACTION_VERTICAL_GAP = 42, + HB_OT_MATH_CONSTANT_OVERBAR_VERTICAL_GAP = 43, + HB_OT_MATH_CONSTANT_OVERBAR_RULE_THICKNESS = 44, + HB_OT_MATH_CONSTANT_OVERBAR_EXTRA_ASCENDER = 45, + HB_OT_MATH_CONSTANT_UNDERBAR_VERTICAL_GAP = 46, + HB_OT_MATH_CONSTANT_UNDERBAR_RULE_THICKNESS = 47, + HB_OT_MATH_CONSTANT_UNDERBAR_EXTRA_DESCENDER = 48, + HB_OT_MATH_CONSTANT_RADICAL_VERTICAL_GAP = 49, + HB_OT_MATH_CONSTANT_RADICAL_DISPLAY_STYLE_VERTICAL_GAP = 50, + HB_OT_MATH_CONSTANT_RADICAL_RULE_THICKNESS = 51, + HB_OT_MATH_CONSTANT_RADICAL_EXTRA_ASCENDER = 52, + HB_OT_MATH_CONSTANT_RADICAL_KERN_BEFORE_DEGREE = 53, + HB_OT_MATH_CONSTANT_RADICAL_KERN_AFTER_DEGREE = 54, + HB_OT_MATH_CONSTANT_RADICAL_DEGREE_BOTTOM_RAISE_PERCENT = 55 +} hb_ot_math_constant_t; + +/** + * hb_ot_math_kern_t: + * @HB_OT_MATH_KERN_TOP_RIGHT: The top right corner of the glyph. + * @HB_OT_MATH_KERN_TOP_LEFT: The top left corner of the glyph. + * @HB_OT_MATH_KERN_BOTTOM_RIGHT: The bottom right corner of the glyph. + * @HB_OT_MATH_KERN_BOTTOM_LEFT: The bottom left corner of the glyph. + * + * The math kerning-table types defined for the four corners + * of a glyph. + * + * Since: 1.3.3 + */ +typedef enum { + HB_OT_MATH_KERN_TOP_RIGHT = 0, + HB_OT_MATH_KERN_TOP_LEFT = 1, + HB_OT_MATH_KERN_BOTTOM_RIGHT = 2, + HB_OT_MATH_KERN_BOTTOM_LEFT = 3 +} hb_ot_math_kern_t; + +/** + * hb_ot_math_kern_entry_t: + * @max_correction_height: The maximum height at which this entry should be used + * @kern_value: The kern value of the entry + * + * Data type to hold math kerning (cut-in) information for a glyph. + * + * Since: 3.4.0 + */ +typedef struct { + hb_position_t max_correction_height; + hb_position_t kern_value; +} hb_ot_math_kern_entry_t; + +/** + * hb_ot_math_glyph_variant_t: + * @glyph: The glyph index of the variant + * @advance: The advance width of the variant + * + * Data type to hold math-variant information for a glyph. + * + * Since: 1.3.3 + */ +typedef struct hb_ot_math_glyph_variant_t { + hb_codepoint_t glyph; + hb_position_t advance; +} hb_ot_math_glyph_variant_t; + +/** + * hb_ot_math_glyph_part_flags_t: + * @HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER: This is an extender glyph part that + * can be repeated to reach the desired length. + * + * Flags for math glyph parts. + * + * Since: 1.3.3 + */ +typedef enum { /*< flags >*/ + HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER = 0x00000001u /* Extender glyph */ +} hb_ot_math_glyph_part_flags_t; + +/** + * hb_ot_math_glyph_part_t: + * @glyph: The glyph index of the variant part + * @start_connector_length: The length of the connector on the starting side of the variant part + * @end_connector_length: The length of the connector on the ending side of the variant part + * @full_advance: The total advance of the part + * @flags: #hb_ot_math_glyph_part_flags_t flags for the part + * + * Data type to hold information for a "part" component of a math-variant glyph. + * Large variants for stretchable math glyphs (such as parentheses) can be constructed + * on the fly from parts. + * + * Since: 1.3.3 + */ +typedef struct hb_ot_math_glyph_part_t { + hb_codepoint_t glyph; + hb_position_t start_connector_length; + hb_position_t end_connector_length; + hb_position_t full_advance; + hb_ot_math_glyph_part_flags_t flags; +} hb_ot_math_glyph_part_t; + +/* Methods */ + +HB_EXTERN hb_bool_t +hb_ot_math_has_data (hb_face_t *face); + +HB_EXTERN hb_position_t +hb_ot_math_get_constant (hb_font_t *font, + hb_ot_math_constant_t constant); + +HB_EXTERN hb_position_t +hb_ot_math_get_glyph_italics_correction (hb_font_t *font, + hb_codepoint_t glyph); + +HB_EXTERN hb_position_t +hb_ot_math_get_glyph_top_accent_attachment (hb_font_t *font, + hb_codepoint_t glyph); + +HB_EXTERN hb_bool_t +hb_ot_math_is_glyph_extended_shape (hb_face_t *face, + hb_codepoint_t glyph); + +HB_EXTERN hb_position_t +hb_ot_math_get_glyph_kerning (hb_font_t *font, + hb_codepoint_t glyph, + hb_ot_math_kern_t kern, + hb_position_t correction_height); + +HB_EXTERN unsigned int +hb_ot_math_get_glyph_kernings (hb_font_t *font, + hb_codepoint_t glyph, + hb_ot_math_kern_t kern, + unsigned int start_offset, + unsigned int *entries_count, /* IN/OUT */ + hb_ot_math_kern_entry_t *kern_entries /* OUT */); + +HB_EXTERN unsigned int +hb_ot_math_get_glyph_variants (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + unsigned int start_offset, + unsigned int *variants_count, /* IN/OUT */ + hb_ot_math_glyph_variant_t *variants /* OUT */); + +HB_EXTERN hb_position_t +hb_ot_math_get_min_connector_overlap (hb_font_t *font, + hb_direction_t direction); + +HB_EXTERN unsigned int +hb_ot_math_get_glyph_assembly (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + unsigned int start_offset, + unsigned int *parts_count, /* IN/OUT */ + hb_ot_math_glyph_part_t *parts, /* OUT */ + hb_position_t *italics_correction /* OUT */); + + +HB_END_DECLS + +#endif /* HB_OT_MATH_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-meta.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-meta.h new file mode 100644 index 0000000..7748eb4 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-meta.h @@ -0,0 +1,72 @@ +/* + * Copyright © 2019 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_META_H +#define HB_OT_META_H + +#include "hb.h" + +HB_BEGIN_DECLS + +/** + * hb_ot_meta_tag_t: + * @HB_OT_META_TAG_DESIGN_LANGUAGES: Design languages. Text, using only + * Basic Latin (ASCII) characters. Indicates languages and/or scripts + * for the user audiences that the font was primarily designed for. + * @HB_OT_META_TAG_SUPPORTED_LANGUAGES: Supported languages. Text, using + * only Basic Latin (ASCII) characters. Indicates languages and/or scripts + * that the font is declared to be capable of supporting. + * + * Known metadata tags from https://docs.microsoft.com/en-us/typography/opentype/spec/meta + * + * Since: 2.6.0 + **/ +typedef enum { +/* + HB_OT_META_TAG_APPL = HB_TAG ('a','p','p','l'), + HB_OT_META_TAG_BILD = HB_TAG ('b','i','l','d'), +*/ + HB_OT_META_TAG_DESIGN_LANGUAGES = HB_TAG ('d','l','n','g'), + HB_OT_META_TAG_SUPPORTED_LANGUAGES = HB_TAG ('s','l','n','g'), + + /*< private >*/ + _HB_OT_META_TAG_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_ot_meta_tag_t; + +HB_EXTERN unsigned int +hb_ot_meta_get_entry_tags (hb_face_t *face, + unsigned int start_offset, + unsigned int *entries_count, /* IN/OUT. May be NULL. */ + hb_ot_meta_tag_t *entries /* OUT. May be NULL. */); + +HB_EXTERN hb_blob_t * +hb_ot_meta_reference_entry (hb_face_t *face, hb_ot_meta_tag_t meta_tag); + +HB_END_DECLS + +#endif /* HB_OT_META_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-metrics.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-metrics.h new file mode 100644 index 0000000..30de500 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-metrics.h @@ -0,0 +1,129 @@ +/* + * Copyright © 2018 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_METRICS_H +#define HB_OT_METRICS_H + +#include "hb.h" +#include "hb-ot-name.h" + +HB_BEGIN_DECLS + + +/** + * hb_ot_metrics_tag_t: + * @HB_OT_METRICS_TAG_HORIZONTAL_ASCENDER: horizontal ascender. + * @HB_OT_METRICS_TAG_HORIZONTAL_DESCENDER: horizontal descender. + * @HB_OT_METRICS_TAG_HORIZONTAL_LINE_GAP: horizontal line gap. + * @HB_OT_METRICS_TAG_HORIZONTAL_CLIPPING_ASCENT: horizontal clipping ascent. + * @HB_OT_METRICS_TAG_HORIZONTAL_CLIPPING_DESCENT: horizontal clipping descent. + * @HB_OT_METRICS_TAG_VERTICAL_ASCENDER: vertical ascender. + * @HB_OT_METRICS_TAG_VERTICAL_DESCENDER: vertical descender. + * @HB_OT_METRICS_TAG_VERTICAL_LINE_GAP: vertical line gap. + * @HB_OT_METRICS_TAG_HORIZONTAL_CARET_RISE: horizontal caret rise. + * @HB_OT_METRICS_TAG_HORIZONTAL_CARET_RUN: horizontal caret run. + * @HB_OT_METRICS_TAG_HORIZONTAL_CARET_OFFSET: horizontal caret offset. + * @HB_OT_METRICS_TAG_VERTICAL_CARET_RISE: vertical caret rise. + * @HB_OT_METRICS_TAG_VERTICAL_CARET_RUN: vertical caret run. + * @HB_OT_METRICS_TAG_VERTICAL_CARET_OFFSET: vertical caret offset. + * @HB_OT_METRICS_TAG_X_HEIGHT: x height. + * @HB_OT_METRICS_TAG_CAP_HEIGHT: cap height. + * @HB_OT_METRICS_TAG_SUBSCRIPT_EM_X_SIZE: subscript em x size. + * @HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_SIZE: subscript em y size. + * @HB_OT_METRICS_TAG_SUBSCRIPT_EM_X_OFFSET: subscript em x offset. + * @HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_OFFSET: subscript em y offset. + * @HB_OT_METRICS_TAG_SUPERSCRIPT_EM_X_SIZE: superscript em x size. + * @HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_SIZE: superscript em y size. + * @HB_OT_METRICS_TAG_SUPERSCRIPT_EM_X_OFFSET: superscript em x offset. + * @HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_OFFSET: superscript em y offset. + * @HB_OT_METRICS_TAG_STRIKEOUT_SIZE: strikeout size. + * @HB_OT_METRICS_TAG_STRIKEOUT_OFFSET: strikeout offset. + * @HB_OT_METRICS_TAG_UNDERLINE_SIZE: underline size. + * @HB_OT_METRICS_TAG_UNDERLINE_OFFSET: underline offset. + * + * Metric tags corresponding to [MVAR Value + * Tags](https://docs.microsoft.com/en-us/typography/opentype/spec/mvar#value-tags) + * + * Since: 2.6.0 + **/ +typedef enum { + HB_OT_METRICS_TAG_HORIZONTAL_ASCENDER = HB_TAG ('h','a','s','c'), + HB_OT_METRICS_TAG_HORIZONTAL_DESCENDER = HB_TAG ('h','d','s','c'), + HB_OT_METRICS_TAG_HORIZONTAL_LINE_GAP = HB_TAG ('h','l','g','p'), + HB_OT_METRICS_TAG_HORIZONTAL_CLIPPING_ASCENT = HB_TAG ('h','c','l','a'), + HB_OT_METRICS_TAG_HORIZONTAL_CLIPPING_DESCENT = HB_TAG ('h','c','l','d'), + HB_OT_METRICS_TAG_VERTICAL_ASCENDER = HB_TAG ('v','a','s','c'), + HB_OT_METRICS_TAG_VERTICAL_DESCENDER = HB_TAG ('v','d','s','c'), + HB_OT_METRICS_TAG_VERTICAL_LINE_GAP = HB_TAG ('v','l','g','p'), + HB_OT_METRICS_TAG_HORIZONTAL_CARET_RISE = HB_TAG ('h','c','r','s'), + HB_OT_METRICS_TAG_HORIZONTAL_CARET_RUN = HB_TAG ('h','c','r','n'), + HB_OT_METRICS_TAG_HORIZONTAL_CARET_OFFSET = HB_TAG ('h','c','o','f'), + HB_OT_METRICS_TAG_VERTICAL_CARET_RISE = HB_TAG ('v','c','r','s'), + HB_OT_METRICS_TAG_VERTICAL_CARET_RUN = HB_TAG ('v','c','r','n'), + HB_OT_METRICS_TAG_VERTICAL_CARET_OFFSET = HB_TAG ('v','c','o','f'), + HB_OT_METRICS_TAG_X_HEIGHT = HB_TAG ('x','h','g','t'), + HB_OT_METRICS_TAG_CAP_HEIGHT = HB_TAG ('c','p','h','t'), + HB_OT_METRICS_TAG_SUBSCRIPT_EM_X_SIZE = HB_TAG ('s','b','x','s'), + HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_SIZE = HB_TAG ('s','b','y','s'), + HB_OT_METRICS_TAG_SUBSCRIPT_EM_X_OFFSET = HB_TAG ('s','b','x','o'), + HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_OFFSET = HB_TAG ('s','b','y','o'), + HB_OT_METRICS_TAG_SUPERSCRIPT_EM_X_SIZE = HB_TAG ('s','p','x','s'), + HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_SIZE = HB_TAG ('s','p','y','s'), + HB_OT_METRICS_TAG_SUPERSCRIPT_EM_X_OFFSET = HB_TAG ('s','p','x','o'), + HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_OFFSET = HB_TAG ('s','p','y','o'), + HB_OT_METRICS_TAG_STRIKEOUT_SIZE = HB_TAG ('s','t','r','s'), + HB_OT_METRICS_TAG_STRIKEOUT_OFFSET = HB_TAG ('s','t','r','o'), + HB_OT_METRICS_TAG_UNDERLINE_SIZE = HB_TAG ('u','n','d','s'), + HB_OT_METRICS_TAG_UNDERLINE_OFFSET = HB_TAG ('u','n','d','o'), + + /*< private >*/ + _HB_OT_METRICS_TAG_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_ot_metrics_tag_t; + +HB_EXTERN hb_bool_t +hb_ot_metrics_get_position (hb_font_t *font, + hb_ot_metrics_tag_t metrics_tag, + hb_position_t *position /* OUT. May be NULL. */); + +HB_EXTERN void +hb_ot_metrics_get_position_with_fallback (hb_font_t *font, + hb_ot_metrics_tag_t metrics_tag, + hb_position_t *position /* OUT */); + +HB_EXTERN float +hb_ot_metrics_get_variation (hb_font_t *font, hb_ot_metrics_tag_t metrics_tag); + +HB_EXTERN hb_position_t +hb_ot_metrics_get_x_variation (hb_font_t *font, hb_ot_metrics_tag_t metrics_tag); + +HB_EXTERN hb_position_t +hb_ot_metrics_get_y_variation (hb_font_t *font, hb_ot_metrics_tag_t metrics_tag); + +HB_END_DECLS + +#endif /* HB_OT_METRICS_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-name.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-name.h new file mode 100644 index 0000000..1ea4b55 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-name.h @@ -0,0 +1,158 @@ +/* + * Copyright © 2018 Ebrahim Byagowi. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_NAME_H +#define HB_OT_NAME_H + +#include "hb.h" + +HB_BEGIN_DECLS + + +/** + * hb_ot_name_id_t: + * @HB_OT_NAME_ID_COPYRIGHT: Copyright notice + * @HB_OT_NAME_ID_FONT_FAMILY: Font Family name + * @HB_OT_NAME_ID_FONT_SUBFAMILY: Font Subfamily name + * @HB_OT_NAME_ID_UNIQUE_ID: Unique font identifier + * @HB_OT_NAME_ID_FULL_NAME: Full font name that reflects + * all family and relevant subfamily descriptors + * @HB_OT_NAME_ID_VERSION_STRING: Version string + * @HB_OT_NAME_ID_POSTSCRIPT_NAME: PostScript name for the font + * @HB_OT_NAME_ID_TRADEMARK: Trademark + * @HB_OT_NAME_ID_MANUFACTURER: Manufacturer Name + * @HB_OT_NAME_ID_DESIGNER: Designer + * @HB_OT_NAME_ID_DESCRIPTION: Description + * @HB_OT_NAME_ID_VENDOR_URL: URL of font vendor + * @HB_OT_NAME_ID_DESIGNER_URL: URL of typeface designer + * @HB_OT_NAME_ID_LICENSE: License Description + * @HB_OT_NAME_ID_LICENSE_URL: URL where additional licensing + * information can be found + * @HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY: Typographic Family name + * @HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY: Typographic Subfamily name + * @HB_OT_NAME_ID_MAC_FULL_NAME: Compatible Full Name for MacOS + * @HB_OT_NAME_ID_SAMPLE_TEXT: Sample text + * @HB_OT_NAME_ID_CID_FINDFONT_NAME: PostScript CID findfont name + * @HB_OT_NAME_ID_WWS_FAMILY: WWS Family Name + * @HB_OT_NAME_ID_WWS_SUBFAMILY: WWS Subfamily Name + * @HB_OT_NAME_ID_LIGHT_BACKGROUND: Light Background Palette + * @HB_OT_NAME_ID_DARK_BACKGROUND: Dark Background Palette + * @HB_OT_NAME_ID_VARIATIONS_PS_PREFIX: Variations PostScript Name Prefix + * @HB_OT_NAME_ID_INVALID: Value to represent a nonexistent name ID. + * + * An integral type representing an OpenType 'name' table name identifier. + * There are predefined name IDs, as well as name IDs return from other + * API. These can be used to fetch name strings from a font face. + * + * For more information on these fields, see the + * [OpenType spec](https://docs.microsoft.com/en-us/typography/opentype/spec/name#name-ids). + * + * Since: 2.0.0 + **/ +enum +{ + HB_OT_NAME_ID_COPYRIGHT = 0, + HB_OT_NAME_ID_FONT_FAMILY = 1, + HB_OT_NAME_ID_FONT_SUBFAMILY = 2, + HB_OT_NAME_ID_UNIQUE_ID = 3, + HB_OT_NAME_ID_FULL_NAME = 4, + HB_OT_NAME_ID_VERSION_STRING = 5, + HB_OT_NAME_ID_POSTSCRIPT_NAME = 6, + HB_OT_NAME_ID_TRADEMARK = 7, + HB_OT_NAME_ID_MANUFACTURER = 8, + HB_OT_NAME_ID_DESIGNER = 9, + HB_OT_NAME_ID_DESCRIPTION = 10, + HB_OT_NAME_ID_VENDOR_URL = 11, + HB_OT_NAME_ID_DESIGNER_URL = 12, + HB_OT_NAME_ID_LICENSE = 13, + HB_OT_NAME_ID_LICENSE_URL = 14, +/*HB_OT_NAME_ID_RESERVED = 15,*/ + HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY = 16, + HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY = 17, + HB_OT_NAME_ID_MAC_FULL_NAME = 18, + HB_OT_NAME_ID_SAMPLE_TEXT = 19, + HB_OT_NAME_ID_CID_FINDFONT_NAME = 20, + HB_OT_NAME_ID_WWS_FAMILY = 21, + HB_OT_NAME_ID_WWS_SUBFAMILY = 22, + HB_OT_NAME_ID_LIGHT_BACKGROUND = 23, + HB_OT_NAME_ID_DARK_BACKGROUND = 24, + HB_OT_NAME_ID_VARIATIONS_PS_PREFIX = 25, + + HB_OT_NAME_ID_INVALID = 0xFFFF +}; + +typedef unsigned int hb_ot_name_id_t; + + +/** + * hb_ot_name_entry_t: + * @name_id: name ID + * @language: language + * + * Structure representing a name ID in a particular language. + * + * Since: 2.1.0 + **/ +typedef struct hb_ot_name_entry_t { + hb_ot_name_id_t name_id; + /*< private >*/ + hb_var_int_t var; + /*< public >*/ + hb_language_t language; +} hb_ot_name_entry_t; + +HB_EXTERN const hb_ot_name_entry_t * +hb_ot_name_list_names (hb_face_t *face, + unsigned int *num_entries /* OUT */); + + +HB_EXTERN unsigned int +hb_ot_name_get_utf8 (hb_face_t *face, + hb_ot_name_id_t name_id, + hb_language_t language, + unsigned int *text_size /* IN/OUT */, + char *text /* OUT */); + +HB_EXTERN unsigned int +hb_ot_name_get_utf16 (hb_face_t *face, + hb_ot_name_id_t name_id, + hb_language_t language, + unsigned int *text_size /* IN/OUT */, + uint16_t *text /* OUT */); + +HB_EXTERN unsigned int +hb_ot_name_get_utf32 (hb_face_t *face, + hb_ot_name_id_t name_id, + hb_language_t language, + unsigned int *text_size /* IN/OUT */, + uint32_t *text /* OUT */); + + +HB_END_DECLS + +#endif /* HB_OT_NAME_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-shape.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-shape.h new file mode 100644 index 0000000..afdff72 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-shape.h @@ -0,0 +1,53 @@ +/* + * Copyright © 2013 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_SHAPE_H +#define HB_OT_SHAPE_H + +#include "hb.h" + +HB_BEGIN_DECLS + +/* TODO port to shape-plan / set. */ +HB_EXTERN void +hb_ot_shape_glyphs_closure (hb_font_t *font, + hb_buffer_t *buffer, + const hb_feature_t *features, + unsigned int num_features, + hb_set_t *glyphs); + +HB_EXTERN void +hb_ot_shape_plan_collect_lookups (hb_shape_plan_t *shape_plan, + hb_tag_t table_tag, + hb_set_t *lookup_indexes /* OUT */); + +HB_END_DECLS + +#endif /* HB_OT_SHAPE_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-var.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-var.h new file mode 100644 index 0000000..05147cc --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot-var.h @@ -0,0 +1,191 @@ +/* + * Copyright © 2017 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_VAR_H +#define HB_OT_VAR_H + +#include "hb.h" + +HB_BEGIN_DECLS + +/** + * HB_OT_TAG_VAR_AXIS_ITALIC: + * + * Registered tag for the roman/italic axis. + */ +#define HB_OT_TAG_VAR_AXIS_ITALIC HB_TAG('i','t','a','l') + +/** + * HB_OT_TAG_VAR_AXIS_OPTICAL_SIZE: + * + * Registered tag for the optical-size axis. + * Note: The optical-size axis supersedes the OpenType `size` feature. + */ +#define HB_OT_TAG_VAR_AXIS_OPTICAL_SIZE HB_TAG('o','p','s','z') + +/** + * HB_OT_TAG_VAR_AXIS_SLANT: + * + * Registered tag for the slant axis + */ +#define HB_OT_TAG_VAR_AXIS_SLANT HB_TAG('s','l','n','t') + +/** + * HB_OT_TAG_VAR_AXIS_WIDTH: + * + * Registered tag for the width axis. + */ +#define HB_OT_TAG_VAR_AXIS_WIDTH HB_TAG('w','d','t','h') + +/** + * HB_OT_TAG_VAR_AXIS_WEIGHT: + * + * Registered tag for the weight axis. + */ +#define HB_OT_TAG_VAR_AXIS_WEIGHT HB_TAG('w','g','h','t') + + +/* + * fvar / avar + */ + +HB_EXTERN hb_bool_t +hb_ot_var_has_data (hb_face_t *face); + + +/* + * Variation axes. + */ + + +HB_EXTERN unsigned int +hb_ot_var_get_axis_count (hb_face_t *face); + +/** + * hb_ot_var_axis_flags_t: + * @HB_OT_VAR_AXIS_FLAG_HIDDEN: The axis should not be exposed directly in user interfaces. + * + * Flags for #hb_ot_var_axis_info_t. + * + * Since: 2.2.0 + */ +typedef enum { /*< flags >*/ + HB_OT_VAR_AXIS_FLAG_HIDDEN = 0x00000001u, + + /*< private >*/ + _HB_OT_VAR_AXIS_FLAG_MAX_VALUE= HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_ot_var_axis_flags_t; + +/** + * hb_ot_var_axis_info_t: + * @axis_index: Index of the axis in the variation-axis array + * @tag: The #hb_tag_t tag identifying the design variation of the axis + * @name_id: The `name` table Name ID that provides display names for the axis + * @flags: The #hb_ot_var_axis_flags_t flags for the axis + * @min_value: The minimum value on the variation axis that the font covers + * @default_value: The position on the variation axis corresponding to the font's defaults + * @max_value: The maximum value on the variation axis that the font covers + * + * Data type for holding variation-axis values. + * + * The minimum, default, and maximum values are in un-normalized, user scales. + * + * Note: at present, the only flag defined for @flags is + * #HB_OT_VAR_AXIS_FLAG_HIDDEN. + * + * Since: 2.2.0 + */ +typedef struct hb_ot_var_axis_info_t { + unsigned int axis_index; + hb_tag_t tag; + hb_ot_name_id_t name_id; + hb_ot_var_axis_flags_t flags; + float min_value; + float default_value; + float max_value; + /*< private >*/ + unsigned int reserved; +} hb_ot_var_axis_info_t; + +HB_EXTERN unsigned int +hb_ot_var_get_axis_infos (hb_face_t *face, + unsigned int start_offset, + unsigned int *axes_count /* IN/OUT */, + hb_ot_var_axis_info_t *axes_array /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_var_find_axis_info (hb_face_t *face, + hb_tag_t axis_tag, + hb_ot_var_axis_info_t *axis_info); + + +/* + * Named instances. + */ + +HB_EXTERN unsigned int +hb_ot_var_get_named_instance_count (hb_face_t *face); + +HB_EXTERN hb_ot_name_id_t +hb_ot_var_named_instance_get_subfamily_name_id (hb_face_t *face, + unsigned int instance_index); + +HB_EXTERN hb_ot_name_id_t +hb_ot_var_named_instance_get_postscript_name_id (hb_face_t *face, + unsigned int instance_index); + +HB_EXTERN unsigned int +hb_ot_var_named_instance_get_design_coords (hb_face_t *face, + unsigned int instance_index, + unsigned int *coords_length, /* IN/OUT */ + float *coords /* OUT */); + + +/* + * Conversions. + */ + +HB_EXTERN void +hb_ot_var_normalize_variations (hb_face_t *face, + const hb_variation_t *variations, /* IN */ + unsigned int variations_length, + int *coords, /* OUT */ + unsigned int coords_length); + +HB_EXTERN void +hb_ot_var_normalize_coords (hb_face_t *face, + unsigned int coords_length, + const float *design_coords, /* IN */ + int *normalized_coords /* OUT */); + + +HB_END_DECLS + +#endif /* HB_OT_VAR_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot.h new file mode 100644 index 0000000..f2dbaa1 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-ot.h @@ -0,0 +1,49 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#ifndef HB_OT_H +#define HB_OT_H +#define HB_OT_H_IN + +#include "hb.h" + +#include "hb-ot-color.h" +#include "hb-ot-deprecated.h" +#include "hb-ot-font.h" +#include "hb-ot-layout.h" +#include "hb-ot-math.h" +#include "hb-ot-meta.h" +#include "hb-ot-metrics.h" +#include "hb-ot-name.h" +#include "hb-ot-shape.h" +#include "hb-ot-var.h" + +HB_BEGIN_DECLS + +HB_END_DECLS + +#undef HB_OT_H_IN +#endif /* HB_OT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-set.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-set.h new file mode 100644 index 0000000..93636ab --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-set.h @@ -0,0 +1,200 @@ +/* + * Copyright © 2012 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_SET_H +#define HB_SET_H + +#include "hb-common.h" + +HB_BEGIN_DECLS + + +/** + * HB_SET_VALUE_INVALID: + * + * Unset #hb_set_t value. + * + * Since: 0.9.21 + */ +#define HB_SET_VALUE_INVALID ((hb_codepoint_t) -1) + +/** + * hb_set_t: + * + * Data type for holding a set of integers. #hb_set_t's are + * used to gather and contain glyph IDs, Unicode code + * points, and various other collections of discrete + * values. + * + **/ +typedef struct hb_set_t hb_set_t; + + +HB_EXTERN hb_set_t * +hb_set_create (void); + +HB_EXTERN hb_set_t * +hb_set_get_empty (void); + +HB_EXTERN hb_set_t * +hb_set_reference (hb_set_t *set); + +HB_EXTERN void +hb_set_destroy (hb_set_t *set); + +HB_EXTERN hb_bool_t +hb_set_set_user_data (hb_set_t *set, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + +HB_EXTERN void * +hb_set_get_user_data (const hb_set_t *set, + hb_user_data_key_t *key); + + +/* Returns false if allocation has failed before */ +HB_EXTERN hb_bool_t +hb_set_allocation_successful (const hb_set_t *set); + +HB_EXTERN hb_set_t * +hb_set_copy (const hb_set_t *set); + +HB_EXTERN void +hb_set_clear (hb_set_t *set); + +HB_EXTERN hb_bool_t +hb_set_is_empty (const hb_set_t *set); + +HB_EXTERN void +hb_set_invert (hb_set_t *set); + +HB_EXTERN hb_bool_t +hb_set_has (const hb_set_t *set, + hb_codepoint_t codepoint); + +HB_EXTERN void +hb_set_add (hb_set_t *set, + hb_codepoint_t codepoint); + +HB_EXTERN void +hb_set_add_range (hb_set_t *set, + hb_codepoint_t first, + hb_codepoint_t last); + +HB_EXTERN void +hb_set_add_sorted_array (hb_set_t *set, + const hb_codepoint_t *sorted_codepoints, + unsigned int num_codepoints); + +HB_EXTERN void +hb_set_del (hb_set_t *set, + hb_codepoint_t codepoint); + +HB_EXTERN void +hb_set_del_range (hb_set_t *set, + hb_codepoint_t first, + hb_codepoint_t last); + +HB_EXTERN hb_bool_t +hb_set_is_equal (const hb_set_t *set, + const hb_set_t *other); + +HB_EXTERN unsigned int +hb_set_hash (const hb_set_t *set); + +HB_EXTERN hb_bool_t +hb_set_is_subset (const hb_set_t *set, + const hb_set_t *larger_set); + +HB_EXTERN void +hb_set_set (hb_set_t *set, + const hb_set_t *other); + +HB_EXTERN void +hb_set_union (hb_set_t *set, + const hb_set_t *other); + +HB_EXTERN void +hb_set_intersect (hb_set_t *set, + const hb_set_t *other); + +HB_EXTERN void +hb_set_subtract (hb_set_t *set, + const hb_set_t *other); + +HB_EXTERN void +hb_set_symmetric_difference (hb_set_t *set, + const hb_set_t *other); + +HB_EXTERN unsigned int +hb_set_get_population (const hb_set_t *set); + +/* Returns HB_SET_VALUE_INVALID if set empty. */ +HB_EXTERN hb_codepoint_t +hb_set_get_min (const hb_set_t *set); + +/* Returns HB_SET_VALUE_INVALID if set empty. */ +HB_EXTERN hb_codepoint_t +hb_set_get_max (const hb_set_t *set); + +/* Pass HB_SET_VALUE_INVALID in to get started. */ +HB_EXTERN hb_bool_t +hb_set_next (const hb_set_t *set, + hb_codepoint_t *codepoint); + +/* Pass HB_SET_VALUE_INVALID in to get started. */ +HB_EXTERN hb_bool_t +hb_set_previous (const hb_set_t *set, + hb_codepoint_t *codepoint); + +/* Pass HB_SET_VALUE_INVALID for first and last to get started. */ +HB_EXTERN hb_bool_t +hb_set_next_range (const hb_set_t *set, + hb_codepoint_t *first, + hb_codepoint_t *last); + +/* Pass HB_SET_VALUE_INVALID for first and last to get started. */ +HB_EXTERN hb_bool_t +hb_set_previous_range (const hb_set_t *set, + hb_codepoint_t *first, + hb_codepoint_t *last); + +/* Pass HB_SET_VALUE_INVALID in to get started. */ +HB_EXTERN unsigned int +hb_set_next_many (const hb_set_t *set, + hb_codepoint_t codepoint, + hb_codepoint_t *out, + unsigned int size); + +HB_END_DECLS + +#endif /* HB_SET_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-shape-plan.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-shape-plan.h new file mode 100644 index 0000000..aaf5cf9 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-shape-plan.h @@ -0,0 +1,122 @@ +/* + * Copyright © 2012 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_SHAPE_PLAN_H +#define HB_SHAPE_PLAN_H + +#include "hb-common.h" +#include "hb-font.h" + +HB_BEGIN_DECLS + +/** + * hb_shape_plan_t: + * + * Data type for holding a shaping plan. + * + * Shape plans contain information about how HarfBuzz will shape a + * particular text segment, based on the segment's properties and the + * capabilities in the font face in use. + * + * Shape plans can be queried about how shaping will perform, given a set + * of specific input parameters (script, language, direction, features, + * etc.). + * + **/ +typedef struct hb_shape_plan_t hb_shape_plan_t; + +HB_EXTERN hb_shape_plan_t * +hb_shape_plan_create (hb_face_t *face, + const hb_segment_properties_t *props, + const hb_feature_t *user_features, + unsigned int num_user_features, + const char * const *shaper_list); + +HB_EXTERN hb_shape_plan_t * +hb_shape_plan_create_cached (hb_face_t *face, + const hb_segment_properties_t *props, + const hb_feature_t *user_features, + unsigned int num_user_features, + const char * const *shaper_list); + +HB_EXTERN hb_shape_plan_t * +hb_shape_plan_create2 (hb_face_t *face, + const hb_segment_properties_t *props, + const hb_feature_t *user_features, + unsigned int num_user_features, + const int *coords, + unsigned int num_coords, + const char * const *shaper_list); + +HB_EXTERN hb_shape_plan_t * +hb_shape_plan_create_cached2 (hb_face_t *face, + const hb_segment_properties_t *props, + const hb_feature_t *user_features, + unsigned int num_user_features, + const int *coords, + unsigned int num_coords, + const char * const *shaper_list); + + +HB_EXTERN hb_shape_plan_t * +hb_shape_plan_get_empty (void); + +HB_EXTERN hb_shape_plan_t * +hb_shape_plan_reference (hb_shape_plan_t *shape_plan); + +HB_EXTERN void +hb_shape_plan_destroy (hb_shape_plan_t *shape_plan); + +HB_EXTERN hb_bool_t +hb_shape_plan_set_user_data (hb_shape_plan_t *shape_plan, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + +HB_EXTERN void * +hb_shape_plan_get_user_data (const hb_shape_plan_t *shape_plan, + hb_user_data_key_t *key); + + +HB_EXTERN hb_bool_t +hb_shape_plan_execute (hb_shape_plan_t *shape_plan, + hb_font_t *font, + hb_buffer_t *buffer, + const hb_feature_t *features, + unsigned int num_features); + +HB_EXTERN const char * +hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan); + + +HB_END_DECLS + +#endif /* HB_SHAPE_PLAN_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-shape.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-shape.h new file mode 100644 index 0000000..922f8c0 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-shape.h @@ -0,0 +1,62 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * Copyright © 2012 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_SHAPE_H +#define HB_SHAPE_H + +#include "hb-common.h" +#include "hb-buffer.h" +#include "hb-font.h" + +HB_BEGIN_DECLS + + +HB_EXTERN void +hb_shape (hb_font_t *font, + hb_buffer_t *buffer, + const hb_feature_t *features, + unsigned int num_features); + +HB_EXTERN hb_bool_t +hb_shape_full (hb_font_t *font, + hb_buffer_t *buffer, + const hb_feature_t *features, + unsigned int num_features, + const char * const *shaper_list); + +HB_EXTERN const char ** +hb_shape_list_shapers (void); + + +HB_END_DECLS + +#endif /* HB_SHAPE_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-style.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-style.h new file mode 100644 index 0000000..d17d2da --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-style.h @@ -0,0 +1,81 @@ +/* + * Copyright © 2019 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_STYLE_H +#define HB_STYLE_H + +#include "hb.h" + +HB_BEGIN_DECLS + +/** + * hb_style_tag_t: + * @HB_STYLE_TAG_ITALIC: Used to vary between non-italic and italic. + * A value of 0 can be interpreted as "Roman" (non-italic); a value of 1 can + * be interpreted as (fully) italic. + * @HB_STYLE_TAG_OPTICAL_SIZE: Used to vary design to suit different text sizes. + * Non-zero. Values can be interpreted as text size, in points. + * @HB_STYLE_TAG_SLANT_ANGLE: Used to vary between upright and slanted text. Values + * must be greater than -90 and less than +90. Values can be interpreted as + * the angle, in counter-clockwise degrees, of oblique slant from whatever the + * designer considers to be upright for that font design. Typical right-leaning + * Italic fonts have a negative slant angle (typically around -12) + * @HB_STYLE_TAG_SLANT_RATIO: same as @HB_STYLE_TAG_SLANT_ANGLE expression as ratio. + * Typical right-leaning Italic fonts have a positive slant ratio (typically around 0.2) + * @HB_STYLE_TAG_WIDTH: Used to vary width of text from narrower to wider. + * Non-zero. Values can be interpreted as a percentage of whatever the font + * designer considers “normal width” for that font design. + * @HB_STYLE_TAG_WEIGHT: Used to vary stroke thicknesses or other design details + * to give variation from lighter to blacker. Values can be interpreted in direct + * comparison to values for usWeightClass in the OS/2 table, + * or the CSS font-weight property. + * + * Defined by [OpenType Design-Variation Axis Tag Registry](https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg). + * + * Since: 3.0.0 + **/ +typedef enum +{ + HB_STYLE_TAG_ITALIC = HB_TAG ('i','t','a','l'), + HB_STYLE_TAG_OPTICAL_SIZE = HB_TAG ('o','p','s','z'), + HB_STYLE_TAG_SLANT_ANGLE = HB_TAG ('s','l','n','t'), + HB_STYLE_TAG_SLANT_RATIO = HB_TAG ('S','l','n','t'), + HB_STYLE_TAG_WIDTH = HB_TAG ('w','d','t','h'), + HB_STYLE_TAG_WEIGHT = HB_TAG ('w','g','h','t'), + + /*< private >*/ + _HB_STYLE_TAG_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_style_tag_t; + + +HB_EXTERN float +hb_style_get_value (hb_font_t *font, hb_style_tag_t style_tag); + +HB_END_DECLS + +#endif /* HB_STYLE_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-unicode.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-unicode.h new file mode 100644 index 0000000..faa8d67 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-unicode.h @@ -0,0 +1,643 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * Copyright © 2011 Codethink Limited + * Copyright © 2011,2012 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + * Codethink Author(s): Ryan Lortie + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_UNICODE_H +#define HB_UNICODE_H + +#include "hb-common.h" + +HB_BEGIN_DECLS + + +/** + * HB_UNICODE_MAX: + * + * Maximum valid Unicode code point. + * + * Since: 1.9.0 + **/ +#define HB_UNICODE_MAX 0x10FFFFu + + +/** + * hb_unicode_general_category_t: + * @HB_UNICODE_GENERAL_CATEGORY_CONTROL: [Cc] + * @HB_UNICODE_GENERAL_CATEGORY_FORMAT: [Cf] + * @HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED: [Cn] + * @HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE: [Co] + * @HB_UNICODE_GENERAL_CATEGORY_SURROGATE: [Cs] + * @HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER: [Ll] + * @HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER: [Lm] + * @HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER: [Lo] + * @HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER: [Lt] + * @HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER: [Lu] + * @HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK: [Mc] + * @HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK: [Me] + * @HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK: [Mn] + * @HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER: [Nd] + * @HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER: [Nl] + * @HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER: [No] + * @HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION: [Pc] + * @HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION: [Pd] + * @HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION: [Pe] + * @HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION: [Pf] + * @HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION: [Pi] + * @HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION: [Po] + * @HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION: [Ps] + * @HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL: [Sc] + * @HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL: [Sk] + * @HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL: [Sm] + * @HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL: [So] + * @HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR: [Zl] + * @HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR: [Zp] + * @HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR: [Zs] + * + * Data type for the "General_Category" (gc) property from + * the Unicode Character Database. + **/ + +/* Unicode Character Database property: General_Category (gc) */ +typedef enum +{ + HB_UNICODE_GENERAL_CATEGORY_CONTROL, /* Cc */ + HB_UNICODE_GENERAL_CATEGORY_FORMAT, /* Cf */ + HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED, /* Cn */ + HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE, /* Co */ + HB_UNICODE_GENERAL_CATEGORY_SURROGATE, /* Cs */ + HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER, /* Ll */ + HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER, /* Lm */ + HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER, /* Lo */ + HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER, /* Lt */ + HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER, /* Lu */ + HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK, /* Mc */ + HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK, /* Me */ + HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK, /* Mn */ + HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER, /* Nd */ + HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER, /* Nl */ + HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER, /* No */ + HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION, /* Pc */ + HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION, /* Pd */ + HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION, /* Pe */ + HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION, /* Pf */ + HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION, /* Pi */ + HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION, /* Po */ + HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION, /* Ps */ + HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL, /* Sc */ + HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL, /* Sk */ + HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL, /* Sm */ + HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL, /* So */ + HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR, /* Zl */ + HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR, /* Zp */ + HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR /* Zs */ +} hb_unicode_general_category_t; + +/** + * hb_unicode_combining_class_t: + * @HB_UNICODE_COMBINING_CLASS_NOT_REORDERED: Spacing and enclosing marks; also many vowel and consonant signs, even if nonspacing + * @HB_UNICODE_COMBINING_CLASS_OVERLAY: Marks which overlay a base letter or symbol + * @HB_UNICODE_COMBINING_CLASS_NUKTA: Diacritic nukta marks in Brahmi-derived scripts + * @HB_UNICODE_COMBINING_CLASS_KANA_VOICING: Hiragana/Katakana voicing marks + * @HB_UNICODE_COMBINING_CLASS_VIRAMA: Viramas + * @HB_UNICODE_COMBINING_CLASS_CCC10: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC11: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC12: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC13: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC14: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC15: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC16: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC17: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC18: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC19: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC20: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC21: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC22: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC23: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC24: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC25: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC26: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC27: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC28: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC29: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC30: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC31: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC32: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC33: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC34: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC35: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC36: [Syriac] + * @HB_UNICODE_COMBINING_CLASS_CCC84: [Telugu] + * @HB_UNICODE_COMBINING_CLASS_CCC91: [Telugu] + * @HB_UNICODE_COMBINING_CLASS_CCC103: [Thai] + * @HB_UNICODE_COMBINING_CLASS_CCC107: [Thai] + * @HB_UNICODE_COMBINING_CLASS_CCC118: [Lao] + * @HB_UNICODE_COMBINING_CLASS_CCC122: [Lao] + * @HB_UNICODE_COMBINING_CLASS_CCC129: [Tibetan] + * @HB_UNICODE_COMBINING_CLASS_CCC130: [Tibetan] + * @HB_UNICODE_COMBINING_CLASS_CCC133: [Tibetan] + * @HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT: Marks attached at the bottom left + * @HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW: Marks attached directly below + * @HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE: Marks attached directly above + * @HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT: Marks attached at the top right + * @HB_UNICODE_COMBINING_CLASS_BELOW_LEFT: Distinct marks at the bottom left + * @HB_UNICODE_COMBINING_CLASS_BELOW: Distinct marks directly below + * @HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT: Distinct marks at the bottom right + * @HB_UNICODE_COMBINING_CLASS_LEFT: Distinct marks to the left + * @HB_UNICODE_COMBINING_CLASS_RIGHT: Distinct marks to the right + * @HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT: Distinct marks at the top left + * @HB_UNICODE_COMBINING_CLASS_ABOVE: Distinct marks directly above + * @HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT: Distinct marks at the top right + * @HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW: Distinct marks subtending two bases + * @HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE: Distinct marks extending above two bases + * @HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT: Greek iota subscript only + * @HB_UNICODE_COMBINING_CLASS_INVALID: Invalid combining class + * + * Data type for the Canonical_Combining_Class (ccc) property + * from the Unicode Character Database. + * + * Note: newer versions of Unicode may add new values. + * Client programs should be ready to handle any value in the 0..254 range + * being returned from hb_unicode_combining_class(). + * + **/ +typedef enum +{ + HB_UNICODE_COMBINING_CLASS_NOT_REORDERED = 0, + HB_UNICODE_COMBINING_CLASS_OVERLAY = 1, + HB_UNICODE_COMBINING_CLASS_NUKTA = 7, + HB_UNICODE_COMBINING_CLASS_KANA_VOICING = 8, + HB_UNICODE_COMBINING_CLASS_VIRAMA = 9, + + /* Hebrew */ + HB_UNICODE_COMBINING_CLASS_CCC10 = 10, + HB_UNICODE_COMBINING_CLASS_CCC11 = 11, + HB_UNICODE_COMBINING_CLASS_CCC12 = 12, + HB_UNICODE_COMBINING_CLASS_CCC13 = 13, + HB_UNICODE_COMBINING_CLASS_CCC14 = 14, + HB_UNICODE_COMBINING_CLASS_CCC15 = 15, + HB_UNICODE_COMBINING_CLASS_CCC16 = 16, + HB_UNICODE_COMBINING_CLASS_CCC17 = 17, + HB_UNICODE_COMBINING_CLASS_CCC18 = 18, + HB_UNICODE_COMBINING_CLASS_CCC19 = 19, + HB_UNICODE_COMBINING_CLASS_CCC20 = 20, + HB_UNICODE_COMBINING_CLASS_CCC21 = 21, + HB_UNICODE_COMBINING_CLASS_CCC22 = 22, + HB_UNICODE_COMBINING_CLASS_CCC23 = 23, + HB_UNICODE_COMBINING_CLASS_CCC24 = 24, + HB_UNICODE_COMBINING_CLASS_CCC25 = 25, + HB_UNICODE_COMBINING_CLASS_CCC26 = 26, + + /* Arabic */ + HB_UNICODE_COMBINING_CLASS_CCC27 = 27, + HB_UNICODE_COMBINING_CLASS_CCC28 = 28, + HB_UNICODE_COMBINING_CLASS_CCC29 = 29, + HB_UNICODE_COMBINING_CLASS_CCC30 = 30, + HB_UNICODE_COMBINING_CLASS_CCC31 = 31, + HB_UNICODE_COMBINING_CLASS_CCC32 = 32, + HB_UNICODE_COMBINING_CLASS_CCC33 = 33, + HB_UNICODE_COMBINING_CLASS_CCC34 = 34, + HB_UNICODE_COMBINING_CLASS_CCC35 = 35, + + /* Syriac */ + HB_UNICODE_COMBINING_CLASS_CCC36 = 36, + + /* Telugu */ + HB_UNICODE_COMBINING_CLASS_CCC84 = 84, + HB_UNICODE_COMBINING_CLASS_CCC91 = 91, + + /* Thai */ + HB_UNICODE_COMBINING_CLASS_CCC103 = 103, + HB_UNICODE_COMBINING_CLASS_CCC107 = 107, + + /* Lao */ + HB_UNICODE_COMBINING_CLASS_CCC118 = 118, + HB_UNICODE_COMBINING_CLASS_CCC122 = 122, + + /* Tibetan */ + HB_UNICODE_COMBINING_CLASS_CCC129 = 129, + HB_UNICODE_COMBINING_CLASS_CCC130 = 130, + HB_UNICODE_COMBINING_CLASS_CCC133 = 132, + + + HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT = 200, + HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW = 202, + HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE = 214, + HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT = 216, + HB_UNICODE_COMBINING_CLASS_BELOW_LEFT = 218, + HB_UNICODE_COMBINING_CLASS_BELOW = 220, + HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT = 222, + HB_UNICODE_COMBINING_CLASS_LEFT = 224, + HB_UNICODE_COMBINING_CLASS_RIGHT = 226, + HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT = 228, + HB_UNICODE_COMBINING_CLASS_ABOVE = 230, + HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT = 232, + HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW = 233, + HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE = 234, + + HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT = 240, + + HB_UNICODE_COMBINING_CLASS_INVALID = 255 +} hb_unicode_combining_class_t; + + +/* + * hb_unicode_funcs_t + */ + +/** + * hb_unicode_funcs_t: + * + * Data type containing a set of virtual methods used for + * accessing various Unicode character properties. + * + * HarfBuzz provides a default function for each of the + * methods in #hb_unicode_funcs_t. Client programs can implement + * their own replacements for the individual Unicode functions, as + * needed, and replace the default by calling the setter for a + * method. + **/ +typedef struct hb_unicode_funcs_t hb_unicode_funcs_t; + + +/* + * just give me the best implementation you've got there. + */ +HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_get_default (void); + + +HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_create (hb_unicode_funcs_t *parent); + +HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_get_empty (void); + +HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_reference (hb_unicode_funcs_t *ufuncs); + +HB_EXTERN void +hb_unicode_funcs_destroy (hb_unicode_funcs_t *ufuncs); + +HB_EXTERN hb_bool_t +hb_unicode_funcs_set_user_data (hb_unicode_funcs_t *ufuncs, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + + +HB_EXTERN void * +hb_unicode_funcs_get_user_data (const hb_unicode_funcs_t *ufuncs, + hb_user_data_key_t *key); + + +HB_EXTERN void +hb_unicode_funcs_make_immutable (hb_unicode_funcs_t *ufuncs); + +HB_EXTERN hb_bool_t +hb_unicode_funcs_is_immutable (hb_unicode_funcs_t *ufuncs); + +HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs); + + +/* + * funcs + */ + +/* typedefs */ + +/** + * hb_unicode_combining_class_func_t: + * @ufuncs: A Unicode-functions structure + * @unicode: The code point to query + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should retrieve the Canonical Combining Class (ccc) + * property for a specified Unicode code point. + * + * Return value: The #hb_unicode_combining_class_t of @unicode + * + **/ +typedef hb_unicode_combining_class_t (*hb_unicode_combining_class_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode, + void *user_data); + +/** + * hb_unicode_general_category_func_t: + * @ufuncs: A Unicode-functions structure + * @unicode: The code point to query + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should retrieve the General Category property for + * a specified Unicode code point. + * + * Return value: The #hb_unicode_general_category_t of @unicode + * + **/ +typedef hb_unicode_general_category_t (*hb_unicode_general_category_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode, + void *user_data); + +/** + * hb_unicode_mirroring_func_t: + * @ufuncs: A Unicode-functions structure + * @unicode: The code point to query + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should retrieve the Bi-Directional Mirroring Glyph + * code point for a specified Unicode code point. + * + * Note: If a code point does not have a specified + * Bi-Directional Mirroring Glyph defined, the method should + * return the original code point. + * + * Return value: The #hb_codepoint_t of the Mirroring Glyph for @unicode + * + **/ +typedef hb_codepoint_t (*hb_unicode_mirroring_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode, + void *user_data); + +/** + * hb_unicode_script_func_t: + * @ufuncs: A Unicode-functions structure + * @unicode: The code point to query + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should retrieve the Script property for a + * specified Unicode code point. + * + * Return value: The #hb_script_t of @unicode + * + **/ +typedef hb_script_t (*hb_unicode_script_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode, + void *user_data); + +/** + * hb_unicode_compose_func_t: + * @ufuncs: A Unicode-functions structure + * @a: The first code point to compose + * @b: The second code point to compose + * @ab: (out): The composed code point + * @user_data: user data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should compose a sequence of two input Unicode code + * points by canonical equivalence, returning the composed code + * point in a #hb_codepoint_t output parameter (if successful). + * The method must return an #hb_bool_t indicating the success + * of the composition. + * + * Return value: `true` is @a,@b composed, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_unicode_compose_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t a, + hb_codepoint_t b, + hb_codepoint_t *ab, + void *user_data); + +/** + * hb_unicode_decompose_func_t: + * @ufuncs: A Unicode-functions structure + * @ab: The code point to decompose + * @a: (out): The first decomposed code point + * @b: (out): The second decomposed code point + * @user_data: user data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should decompose an input Unicode code point, + * returning the two decomposed code points in #hb_codepoint_t + * output parameters (if successful). The method must return an + * #hb_bool_t indicating the success of the composition. + * + * Return value: `true` if @ab decomposed, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_unicode_decompose_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t ab, + hb_codepoint_t *a, + hb_codepoint_t *b, + void *user_data); + +/* func setters */ + +/** + * hb_unicode_funcs_set_combining_class_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_combining_class_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_unicode_funcs_set_combining_class_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_combining_class_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_funcs_set_general_category_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_general_category_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_unicode_funcs_set_general_category_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_general_category_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_funcs_set_mirroring_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_mirroring_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_unicode_funcs_set_mirroring_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_mirroring_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_funcs_set_script_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_script_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_unicode_funcs_set_script_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_script_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_funcs_set_compose_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_compose_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_unicode_funcs_set_compose_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_compose_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_funcs_set_decompose_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_decompose_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_unicode_funcs_set_decompose_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_decompose_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/* accessors */ + +/** + * hb_unicode_combining_class: + * @ufuncs: The Unicode-functions structure + * @unicode: The code point to query + * + * Retrieves the Canonical Combining Class (ccc) property + * of code point @unicode. + * + * Return value: The #hb_unicode_combining_class_t of @unicode + * + * Since: 0.9.2 + **/ +HB_EXTERN hb_unicode_combining_class_t +hb_unicode_combining_class (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode); + +/** + * hb_unicode_general_category: + * @ufuncs: The Unicode-functions structure + * @unicode: The code point to query + * + * Retrieves the General Category (gc) property + * of code point @unicode. + * + * Return value: The #hb_unicode_general_category_t of @unicode + * + * Since: 0.9.2 + **/ +HB_EXTERN hb_unicode_general_category_t +hb_unicode_general_category (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode); + +/** + * hb_unicode_mirroring: + * @ufuncs: The Unicode-functions structure + * @unicode: The code point to query + * + * Retrieves the Bi-directional Mirroring Glyph code + * point defined for code point @unicode. + * + * Return value: The #hb_codepoint_t of the Mirroring Glyph for @unicode + * + * Since: 0.9.2 + **/ +HB_EXTERN hb_codepoint_t +hb_unicode_mirroring (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode); + +/** + * hb_unicode_script: + * @ufuncs: The Unicode-functions structure + * @unicode: The code point to query + * + * Retrieves the #hb_script_t script to which code + * point @unicode belongs. + * + * Return value: The #hb_script_t of @unicode + * + * Since: 0.9.2 + **/ +HB_EXTERN hb_script_t +hb_unicode_script (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode); + +HB_EXTERN hb_bool_t +hb_unicode_compose (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t a, + hb_codepoint_t b, + hb_codepoint_t *ab); + +HB_EXTERN hb_bool_t +hb_unicode_decompose (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t ab, + hb_codepoint_t *a, + hb_codepoint_t *b); + +HB_END_DECLS + +#endif /* HB_UNICODE_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-version.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-version.h new file mode 100644 index 0000000..1070262 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb-version.h @@ -0,0 +1,95 @@ +/* + * Copyright © 2011 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_VERSION_H +#define HB_VERSION_H + +#include "hb-common.h" + +HB_BEGIN_DECLS + + +/** + * HB_VERSION_MAJOR: + * + * The major component of the library version available at compile-time. + */ +#define HB_VERSION_MAJOR 6 +/** + * HB_VERSION_MINOR: + * + * The minor component of the library version available at compile-time. + */ +#define HB_VERSION_MINOR 0 +/** + * HB_VERSION_MICRO: + * + * The micro component of the library version available at compile-time. + */ +#define HB_VERSION_MICRO 0 + +/** + * HB_VERSION_STRING: + * + * A string literal containing the library version available at compile-time. + */ +#define HB_VERSION_STRING "6.0.0" + +/** + * HB_VERSION_ATLEAST: + * @major: the major component of the version number + * @minor: the minor component of the version number + * @micro: the micro component of the version number + * + * Tests the library version at compile-time against a minimum value, + * as three integer components. + */ +#define HB_VERSION_ATLEAST(major,minor,micro) \ + ((major)*10000+(minor)*100+(micro) <= \ + HB_VERSION_MAJOR*10000+HB_VERSION_MINOR*100+HB_VERSION_MICRO) + + +HB_EXTERN void +hb_version (unsigned int *major, + unsigned int *minor, + unsigned int *micro); + +HB_EXTERN const char * +hb_version_string (void); + +HB_EXTERN hb_bool_t +hb_version_atleast (unsigned int major, + unsigned int minor, + unsigned int micro); + + +HB_END_DECLS + +#endif /* HB_VERSION_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb.h new file mode 100644 index 0000000..360686c --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64/Headers/hb.h @@ -0,0 +1,50 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#ifndef HB_H +#define HB_H +#define HB_H_IN + +#include "hb-blob.h" +#include "hb-buffer.h" +#include "hb-common.h" +#include "hb-deprecated.h" +#include "hb-draw.h" +#include "hb-face.h" +#include "hb-font.h" +#include "hb-map.h" +#include "hb-set.h" +#include "hb-shape.h" +#include "hb-shape-plan.h" +#include "hb-style.h" +#include "hb-unicode.h" +#include "hb-version.h" + +HB_BEGIN_DECLS +HB_END_DECLS + +#undef HB_H_IN +#endif /* HB_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64/libharfbuzz_device.a b/iOS/libraries/harfbuzz.xcframework/ios-arm64/libharfbuzz_device.a new file mode 100644 index 0000000000000000000000000000000000000000..35615419a3bef480e73d1d36d6f8fd499c4b22c0 GIT binary patch literal 1303104 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

Y!=dLA)=-QMQUzteFTo+?TDv$`=^yO7(9_hDC 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´^#gXdNsTC?dDqhPV{oZKJUdc9}B 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

d!!uec7;9Ab@fYKn-P})}jI?qdc(PSAoo4+q z+4bAQdeyU+cFzr`k?V%ibBSMJ{Z_Mno7f*s><{s<81Evd(%P;w!|+TuKktYRH+WN4 zhPnw_L~a$Ghj+@QB6&)=wpjD$t;ESsRq$6nzx;Zux%X4C8p(L}tFo7ipO3z0-$Z{qF70cif?jn%=QXiqi0?F>ZU9$u!o zZhHI0frDp;pU`|t?$7Yw|2|}s$2~gf#UFvI$sA>mHo;T$yw=n7gYW25Ioj@TM{S4? z+VEsO*F=8|-}65s--Ex7qTxY|WoS5P^$#!Nk9;1(ZFVnm_t5YW`*hUWw{DR7B*VY7 zs-$l`-IH3kbFk-2?t9Ruj`42QY|{6G*f6|4dpe=<9W-Uf<1mj7GH-(CUS}@yeK>v{ z$9cu&bIW_K@MNx|@W#X^JzEF$(W?OBEbF0m>i~23FlWiDZAm|%t>!&iBfBVt&ZT)A z?SC`8PPNo$(XSU+-+en>8S_EO5Ax|%~*boH+_Hco?KnSnaty#Fpu7Rk6qW3^;)LB`uq19^Yu;osQ3BXy$PE3 z6ZVv3llms~ml;o%Q`JeOykgy7rytcPdG4W^7GY zjJ}ukUS{s;MW>hi8Q?yR6`cW+C!1F8%xL^gpUk!4|4nn`r$=T!qKwbbn9=jGx^)fw z(47zb6lOji)fq>=Z6;T{scHWs`Wd1oY1|5>&3>luE48PE;eejFari0rl=gOtvjz{_ zHhLUm)6I!~dUX4DVLr`TpG^-|=jZ`@aa?);F6AKfK)jq0Z-TYu|s^_F?{fnsb>rhg`F347nyVhFlYdb{M&a{ES(8 z`Cj?4C#Mu7TeGhQ#-R7Iqf1^0`*?jC8X87dsRs+@V(P$9A;WEGgzk&4 zNFLb8cj7-dIZnE%!8JS!ho+?5Z{ zSN4+3B|F0j$y^m#nJ_DJ$!;{(T#8Q{JczeO#UpDZ*)SnJ6ZtYxn$ZzIxPc#HSSAFtnJ6VSctUkqHT^hDLDY~~%<2^!pYWcQMCI6KUZ z!`w*s3^6y=?8!m;gwJ~fyBG$mXZCI#?VX?>yLlHj{RaFpr4F*FRbfq+EO3zP`aitO zdhX0!HgOJS%`A7#M$6aUnz{0|Pd?I`IeEIh&Ij={ord;GKGyu?bl)2A-=4f`=H!CX zRrLPzl?UH5U;ON>tbBIK1(nan+LKZ28)NJGSGBHzU%I-!&-U>sd@_lyzZGm}0)4*# zEGB!cYB5;MEmPxFd&m)gEj%)LF)>AdnK%-;_>13PgdHGZhx_7|^KNVbE{4&+uD`nB zX&1wok6ju*B;3U$@O+cOeNX8OZcN!nj<9?g!lW$wS_^O7UTxXwt-Dgh?+;HEz;~uSX?aNKr=4AiU`Tn2$&)=gHHq{B6s`i$#)&3?n)%?9>=u&E2ezdyv5$LRV z#Uki&5`H8e8sSjPZ#^l{H7Vc{3-;a+EZldHRf`4hIOMHq`?oFmbE`Tp|9 z>>x9E<90H&*>QVvgM-}QAU9m)+GoUrBhWiD<_u@n0dG-2Ke}tImd$*Z&MhA7@GkM6 z{4wjgY%~iQ^AhBQZo4o!K>xs`Hr&QsJ}F(C?@oEVY8rGj0!ID|(9r@g@_zvxow}G> zIQG=a`|%6Cy!~&xhPOBU;vwop+`!yKh+WWpNBQo(Cz3fqtReL=8sw)<@wvyI=J9vl zlTjUE-lKP@eYFjiwtqR}d4l$Y(NFO16z_F-r!(1!ICosK-hoyZ<2Mw2GWH)?@`A7pZGr(uc?Kf82LwYA4M+FJXy^BX84Ns8I!zsB z)rw6cUkyEkpQ+jkXUZ#T-fZT*}O+Oe9YV;vt^OZ1BPp)KsGR@Unn@zKL}IQbHBs;lwk zt;xP;<5X)yuKh@6u+ZOrB(sa}U$r7$`+QdW7VWpwep$BtO|-wuz23g=a=WPEi&jzO ze*MmwNP{oi7_pY?{jU(~+-Q;4iSzjicuHNf$UA9$s%X9C9K1CME~y&)RmI2JOB<~s zmv-ox=Q&Gy?}=b#R1ndUO3XJqwXSzCIyLlYi>nhTnbxYF= zu8H5dn*Ob(f7R41sXN$Fs@f&>f4jT1I$&jj(9vpQv5$g-{pmyXt%W}y-mo5-3T#@Q zj5ylwWzK{nnvv&A+{~GC^$qAvbdINQJ?ql+9B+}l>Yj7Pp0CR+!uHz6xk@lMI^UkH zU%bS#^*_SAq-^FFqJPd=b5-BEnfJQ=i{<*qdu6}R^$+`l z<^)^*$ewchC!2oM>t8SPWadNrz|7D2+VsbY3(5DVSopMi$g3;+!R)NOru{P4^}VV=8u z9&Pk&oe>Xm*)9=n2U6#vi)&wKR$a8cB16N+5Kbagu8!`rG<&`K@2TsN3_#iI9s361i6 zC4cTUPeqqn&M=Va-!>T)AID)bv6`ONXiwx%2j!Sa~IP1j3VN0{! zvmSDNx;Av)&IBszTSae?^IV&nljS4lqDAj{ze0=N@3WroH!-rh@?0OM2A$SNB>h0om{l(szUi)0*orcem3k*znVRFf(drGyIG5g+9>KdH$ z_j+tI?6Fs$A}&R|OETukh}GY|+Uh*9(DP9n{F*r%jVEN|_bM9~W@Y17 zwtq0P@pZ_?*C8AK`THXqk7bunoy9Y*%HbA#a&m)shG-<`Uib;g$(#5to4n4Z=)_p^ zW)Y5%E;<&z77mF2Xh0^|Lnj2lv6t6K;MSa#`s!abwa~u>&nj!29(XJ9mq6 zi1=j><1@~eJq$nZIfqVgXbgM#qC9)~Bjec1EuXzS^&8mB53_Ic?d5i!y?n+*hckHgdEJoH3D)M$ zt8@bYc|EFgnLV%XJxsf_w2{|*QTqlQU2f{IeI3M$89n=rYYc=E&}UB4q@^s zNY9il*&%m=bn;o~J7a%)@_Frrdf?rBe~EEFoWxYS|43W@R># zcU^Ii^JxFBpw)Q@eO^9@Gk4W8kDp;auVG%VW`3_C2hy6};Wb{43U@wTxx#jH$vCwY zX=f>Uz?3^RoAc4aj_pkL=FR3_`daMp9_+%M@?WS8{QWML!Lx^hRlPhOTVgw2ezKq4 zedK!bleO8@OJ~lmpI(?gO#FB^-`k<7Te#MX{ai9l4|Y`HIG11xmt8`+yY*k~Du%h7 z|AWN4*IHhl%nOE#3*30#xVYns_pIA_-vlmhBG!0xOt54Fo#PKvtg+t)XY_%Av+R2f ztudpYEX~O~X=4NB%u63}@CWB(l1KT>IGe&}=j$Q)zSL}N+K6qnhqj-M9FiJtKtWQm468vZFeYgO7tm-T^8HsdB-S%rE+5v2ccQ{ zv5CUTlaC4Cnw1&M`oP27kGx2{B=}>l<@f7R`tSGAXPBP?e3pBl$HEz1YZauc@yjRZ ze+V3e{M?%=>RJcs`^fvp!3$hCdU^gh;+@w|;D{%3Gk7^0L>~>__rpjp^J$mCV2Gv| zSu^V5tV~?X1de!295J%)Z-OIELf1^Y21i@~zL&g^eTCq7ufuOv07g~#q$vJ#$%mqe zC%_E%O)iYogYS*eMkBIhE!T+6$l+(n zkhQytk%#@5Tj+S-z9APQJR&3eF~a{1nlD_(5BWcq%^~6X0loP2(HLRk=ivt~Mi@+b zbJow7Vejn*Gh^bC8ZUhxal!@XffGg!7{LkiS^9vL{V)04#jxaE2S4&&aKa<=`(ALu zU{%J!3D>qR#3q`OO%-fhig_-BU#2~~=SYm0i{m%8Ph#Y~948)DIF9X8dWrID3L~uj zC;W!6!hK<_)r~G*q%ROoKRQ)-wi`$A!jG|*1~>9E7b{%kVug#gKh{-tPtz}IuzgbB zts!vFW3K(}DQurb+Y9E^*hT3DBUoWOgD=+Akvz<*op}U%=Vr@xF{`y%+h+jm@J_}@ zPGc73n_T1qc+E{KWWP=UU+;BN0dJFtBo2m8|QVv)lchwmDr*M2zj2=>m+R@iHQ z#P*rP#8$F*IrGIknO8kG&7Rh9gEcMk7rcL%`F#}I=l$3|_5PQMDG)YXSmBqck)Ufw z&or(IfZZ*lmR!-t+e@p#?rsJbt9$=DXGvJw;d_hE#eWgO*q7tDK_Icfy^ zumHK}dfQ6JYZjyf#qm|dc+qB%Hg|#tp6a&wbMV>JZ>oG!cwlnl*x-RHIRD<*i9O(& z#;{YqcreX}uz{`yC#^iV2|jyxV0#oE_+yM+*DC@=4diOh;enYK)ot3zIc}=EJlz5w z_#yU41$f{J@W2nV9}G5lAvj@!W7b-3E_k}M%m#yeFjZR3|K`8#aPh*2kTuKfX)a#) zhY!`Y{)`-P!V7;f@Luu4t6N8W{J!|atdE~F;bF@1@xn&tMuyMB;$4-?CxXl!o#UOc zBr>YW@u2zj*!siotCt3Y`@L@;M4cdv{83wEMUU6Czv?<;{L7U!zHp#{- z+5{f!1EEdVL7Tv1jZ2%rX}zDcX)IfX&%y11+o4G#7tC;Zo#c8zzDb4PUY-1w~bM!Uz7 zO$Qju+5WKKZw+!i-+!$!`u$%a)fd+$oA9wl z?edlF{2sbozh5$=npk7iEOqSC8K0b6TQA>T>D(#nb$-QF;E6xN=2&*W$(v!KckX$RYuyZ6jZ#^0scK1#;%+ojyL z{;J*`V>x}*d=Ju=-Z@}hzQXxO*H^zb^pEJ{yzepTHnF#o^soX z>of1-o-D>Okc@GyuDzo)ytpQ2Vz0thIBnwYBUU7>TB@~IN7G;xs=y~yIr#0O7k}mZ zO}1CNYVL+HuITNnk1b*i+E|miKkF!M4zr)Nudua!d3QWkXB8)7d^YE$wl1-1 z?)FLRt0UBfU_76^a(C$*>PnaKeLkOwuWRYS#&&IRegxZfat)t*ct<4rj@my+34Fsl!aY+eOpk{h5WV3pOl= z>o(UbsJrZNJxbkWJ!gKixK19F{xaI!s5Y~G3-j)Hw!H?^9&6&<*6X%clWnh7?I}-7 z_BYdB&#qffd$b+e#lBMfdIe|W%w5;A{~Fkb_3Xzw_GK+toX>#83A%JwbL7{7;g8Td z>gl*x9Iv)&bp<)gus@nTmWFp++uXb=87fFO*<~-tKKV5CN-^{nxh2XuYY!2_syO(E zvT>{qv8_B0Z&Y5FT%7wc>{+@`*eCVHAqN@p%C8;`ruNR@{ty@-Q{$Drn@lmLm=$UW zlY`#)CPc5EW*?H{jrUX6hq?iW_^varv6%O{J_61j@9C6od$!%p>N`eErfh}BvT>R1 z(2--rWtx2C`7x2><-I>wOftH;8%H&V^La<5^8b5s>TLY%1A#e_xztxY`nkDXJK+18 zlXhyDTI|zR)cMeuR)FDB9Y0fFQFtY<4KL4}vwiNoeaH!h$G(2kYSzAnwg0bPp08|N z@&^%53~l!5-r&7h7uIBk*22(d4`Xg8RijwfKgx4z#xlS-L%x`A?cGh@*q_%J;l(3< zraG{0Ye{-dqz z!zFgu!_{q%bWLr({m#S0l^=$$z6cM|nhHx7WFH>nb04%xKG54dJl*rU-b;Q5(N%MP zOm1h>7tPxMdmOs9)<17i@~$}Wbf+Y@k50n-B~O{!>g*@irZ1ey=v;N4zw_uW@tj;u zfj@be{P*W2qk8%6X!iq=QKKKQjG8aU#V1)SjeMFyKD}!U`Sdva!8|A0w2#^u3t8Xx zJlRyTvboR5tLOqN2VGj{(J8-ddJ>Dp`#RPh^EZs+%7{9Z@?mmF{R>J*FCm1obhIoIdX z^HfLtb^NNb(JtftslV~`5WPRKNiwyohq!hi#Z;emX~&%8KIEBZ>PSVmB@URmE=SHx zA-gtTLY*nec-zBWHag(b=z!Ym7Ik&CuQ&0#-V@H!xrNBgRrFbS4Wlbf=DVKp@Atj5 zeHYJ4)@*JIb=4+g2NM5I`<~h**eA@rS-kUuDeg-ooi1yxwQXC#s_Ma~Z+xO<)V$e; z%(a_-#Gsj?w<~w-E*)=7dgsY|kR^TN;p~p+NTR>rpnu+dp{{`~Uf*iz8}jRrp~)58 zXY^t9Z}3*He^JJpP#?nwt9q={E8Op!tf~~cOyUx&|6DrVg#1apba<5Z@Pz!C%foab z^4a+1i!x-e3Hh^qLjJs=27UO@C|&4+$e+O}*nUdTw`XDRncaKl&}7bZRtDWXh77te zXD4k!uN|DJI$+$#z2Y55H_J|X6YYHto&B@D!@()LUPWYKwJ$fEcbsNEJ_dC3^^r+$m#KQMeN z2H#RW%N@uCy~vu>iLFna`S997A3cYx$=)cIoEiA4)q9q#Sb+RU-DM-wxbmZ9O8Khu zWXiJ3y?CbIrd;XTQ*TM!8Io-^i}(7GWT#8RU6KW*)4lZt8{0(y8%B_GJ31e^_U@I) zeYMU(?8v8AIu~0rde{?x%N%v!gQ!D(i6S34CDx2oeKZ|jjy&>*@%~0+&{Oz|VqkP- zQ_;0bZm12d5?d4{}>{k7y-tRpXq zYM92bUxu&;--NC^90+F)fvc3A=iA6iZz6lXP-HD558v8>S=NmIK!0}Ju;zgDB%Svr zeoJAO56zYRZgwU$4SoFL_)vpA8%*(RH<$7W?6u(u8M+k1&Uo(8l061n5=vI{Dce`?LBFPS`ZD>B|~$YlGs&+XdNeA|Kg$$=TW(e3N) zNFY2`saM2+rTU&5IvILZip!4B>ImSo=Au>Wr6z6kwEV*8BHpEh)yXG6*% zl+$}|w&z5)v|Y0PM;DRTdY0a?%6&%=KcD{{*#0(zcn9{p%p>^sv^KIauir_DS&p1o{DFG3$p z`Sk8G=1=-p3OuNpKk1=wWOF>ozx6-a%OzLF`=6X*Ep127z#ls_>lSi}GxoXsK4&?; zD8{Ki8(aQ9axeRBdQQ;le*^k$u1T+vj->Hf^Q>*sndYpwIyn!oK9tQzr?#u9MXh`j zs9{BW3#F0%I}U(-O{r_0Yx3Pae7zM9kT z=O!z-CVt)%xO~Nbz;4u@^`VaVK7DQWPGR5pYNwRhJTD&uHiO)ro$J;fujE{*Et|b# zY)$$7^X#oze+F$mg}g=oNB2+Hd^X$ee0kx`(egqfxc5WiH=W=2@7d$y>DZh%Y9)Wj z{HA%fqjSlpvhf%`e=~dJ7WQ2$^c8>U$X+lu;e+sy6*H|FiT?u4w`VmZ{)>kJkHC|9 zO5;_%mt^_$P#b*uPe=Il8sZvMBO%9+W@n=KRi9}sTkq$=3o05~6XMJ8Bjv?&`4P19 zpWwlF(Wf0Va&*55-s1!>nbC}YRX!@KD&8vj)9{5Rc#J-K`*v2}i7b|2pJMs5a>h>X zztbvO3ICd&_?*?hF*qwS@;v<&K0){TZBhDtBWJn-D_v7sy z$zXHK=3Ker_a?8;pVK7v{T^^Sy|YHo>1UCBo<#Op2;W{YYEH>FC_f@RUbzN0^I7w2 z@(m7hzVqkxI<7UZYltO~S!DBnnECjYHD{%ngZP`nd2{IbmD`Dx8a;<|M&__ASo)=b zKzHd5@+PaD@y4!mBdo}7&X)cw_T2E@7k)mx{HuH~fuB?Fq4V|A!^>abyXvw3>IUpN zcY%#Le%iwSdvYfJ zXZe5m&D{@wD7)Gk^uyKYhMtdNth~~1kcU_C(6426QO5P)>&VTLjdn1vPli1|{sOCn z`SAF&uBUDV7X!xPxMT(TzWZ;k>5WEvx_0ya_2^@BnV$~&s_(U~4H8>+Fjbo7Ugy$B zyRKyI^|_AEr-CypGvtlX*bAn|`xi5ga>lgPm#=p5)i!a_R%gBP)3UeJhbVnYvF}qF zvpqACV$8y1nQ^~SUI!V2ZUSdvFJLUSq z__o97--lVh&)ZYe;q9gKs5ut-RNdB9cSPo={qcj3qF3&*BMsju94LJZ{gQfrUuuU& zZ2dtzrkXrK=(?~zTX}9zC|>nr>^DDvUbw!lncoDT8IDB3DJ3HKwhBF*T%2bN-c7jw zk241Kw~+oWsk?2}?Gf^~aPN!RcisM9;;|R)X~{?6UEf9LzCD@qNk2>9lJxDxK*Ytq zC3!YUKZx(G&-{9{3>OW4>w?K}=zbf7eRH6D3C8a5&Ub@pT5Su=qz zo4}WS#PDT#xC{r{B>g*vUEg0&fiZy_?&RufH^461uaVe_zKDgWw^cJ3~X zK-UYP>&jPf8+5(UE=*7L(e>HT^=NGVynbl!Yg6Z@dwe#btaUrx=WFJK%Dekfu`(gpOx6XnYT>1Crd`$BnN>Jv zq-}#6#pk_JZ9jv(^helAD;YPn%tq`0(&-$ZT`>wD5l%(+vf3a#6HI7~c4N?X;Z+9T z7|l;o@aqovb<_s4et|I6e!eou8oXP+@)o%2KXUoXxowIDQ{5y!=HktA=gYt6T>K@t zOoMBYZo8BDacW{|i#;elRn9)p|9JL)^nJpHjA#3l&0suCND6zIUk?`MVas>d#Ok(( zx^`n9uLC2&+D3$>Q0?7H7}>BZ zu{~7Vv&gr!x>fQ}zWq8Wo2u{p4Wjdpg)5N^I2NwN|LnKu^R`PoTuBUEiIaybG57j$ zCDF|uZsSkEY;-(aA48v9E8Nbk9UY|}&ZKC42klA+{n0&rU9sjZ2c-L;8@cncWdXX7 zJ2&C8<|Zl}qaDg@#@^S=+*IPvz~7Q_7;~ko`#YIOkn!qm$Hkei;d3SSlzQy@mDu-% zlM)tj)Sg48`sPS~!d)k~R32ysI}=0q5O&6#S^pRZ{_uRUDPAl}K2CNPy8R32_9@Pe z!)J$hlpjmSKQtK~zXTm0Kku%|ox_{4B?kk&`8>(X^KzqG&rx-G27fQu>&zL=w+0tt zgKn_;UEbyM2ZNOx#~=JT^nHB6_?C6P-mkcsDEn?aU$8T6G%x!Gdt@wKML982S>6`g z{)2a=r%3L<9$Ip(tEUw7J(JZ_8ho@KpH(`teg3@t_^zZQd^S{=-p`rZkDkAuz4~Kl z`+j)ZKS0BOO}xQv@UHKouY9+JTA-7x<#)r=?nO6g9i^K@T-~HLw1sJngDjntBxiVdKMHveDl`6BJSj4pCR^B3-XnLfNsA70}9dw73iupqe+ z8u??pu>P?;jN^sWLCUi_$e`><@T+&Df4mhe?dv>;{vmtV`N%!;$JXJGZ4R7X(Sh%+ zj=n^H10QT1HeYPL?m8sMfg@k+3jQ0r>eI#08SFzR@x^vv50xL*_YX|&(+5SEF-|C^aX?PL)K3NYhswbXjx9hJh z$ZW#Xm+jq|;>$f=6iD5onpDn)Fa4_t? z_h#Pv+xFpBou?1?*XQZOtsu5y#HI|d8Ow+Jlb?_F;rr%!Cj3 zynVQ%^udpu4;O5S@!`&cHi@4Kt9-5))$#O2WB(KH^~+GzS$o>Fte$uZJ@FKLbu1lf z(e`;RU%ei_T2eT56kmNQ%U6GZuJ{&w^0}27@RUWr#DQc z4eWQ=7){*B9M?xoZm?xP!yk;CwVeL7oWwpz&Fx4XI$RjtumK)?Ej)NDZ7&8tQt#@1 zMeE(#)wKN(GNr?P@aYj>ps>-$kSUkIuQX=y>l@(LMTH)}o=#t%qrFc0T0~!q{%z6v zqA+&-z?>vGZ#L*Yc>1X88eUublFw`_ddb#OtG^o?&?0!Qzpi^XSkPVQ&;`@I9K6|Bj&)bU=jHEI zF5VzEr^V>p-PGcG1iM?3n#?Ar@1tM}BGiDm1HJqSus5=&|3|R6#hlGXyExMW2GMJ$ zICBX3Axa*EGUXKJGdaZisZp^uLEnU*Y#_hyi-Fn69anVkHF|^WbjPq|3txc^bp`U* z2ds zdD&IVvU3|FM|9No^3PkbYuy}WF>v28`W>6&;bxP}X_%ZBuKcvz%jrA7oJP^_qTJ(- zjqlR+^#d8=QDhE_)W2HdY9~BUcM0RGb^)(9I^EEoH_VSzXs_;l(kX2yZG$zT-gqt6y3xEkEtn!ERRwNX=S zqR!g1%tAM}aiH&aqRtw0+r(e#{Dnl%IfLb~-)~i&W0$7485gXdo-#rOGBISPw4lBoPF}s(1%b`G`E>H zpyghUcy!;R|3jE}aueL}w2NmmXMBQw*lw=!a&r2VagHbIG#)Mgz%Fj+hh!m-hZkpp zTz7PiJCQNLmAiDLGe<`rRb11*#rG1lR_4==a%}4Dn?}=V{ENdj3` z?=|#e4c`s@7(})mML&>9e+0b~ZZ7|w?aHs8_fFzWN8TyCnxSC>&_Mq?m3z*-vzE`J z-U-dR4w^48mn^=@^l+KBE|fUmZ!-9jr~Gx zhvlb6R+gW-LH5UN-oFCIEjh6}My^HH0{Vade&pHvkY~Twymi%K{DlYYvKOMO;{9Ij zC+AcRV<^C9_+#d-ki1iEc44MRG9v9%^I7AG*@X?=@C@WeV%`cy8y5FB$ z%axC5&*Z+6Ea~w5D7cv83l%5l<#LlQrg~9U-o5_k{GW|3$8&jee~nvL%GEc}xnj&u zHS;4seuVhQna4iC^C5a7M^|w^7xkvL)9EquoktR=(+dnYG zjr8e4^v^kKuFkV|e8u};PkJnUJ->FE1+D0r;@Q_{GjGZV$bNcoIAA3$=1+RGV_7o? ziKm#2pVy!NbQ3-ZlRuT1<(8k$_*|=WUii`m)p7LbffvKz$MT!Cea~};PO1G=zhs=$x6on3dD?OukNbuAFaWcClOQGU3DgINOWoC9n%v zF`d)Z$bGrI1kA6Sr|wPW$WNb)OqgKaNALNoTc4rNF74y|nR6o>isQ>2=8tbf_H^TE zbpFg4ch48O`W*D89&-3SlFi?DntqseK8U<=#-SKof`x~G>s_9f8`<#)7-9^9LFyKx|a&AhQX_!H%b zYkJ!mh`u$vtetCRR&gfIxzqhkZ@)Ou^y}d#e##z{jqQK(|Ln8p#W%?o@4Q0ZDa%^k z15Si>T8h55A@NCzSR(9bzp$!`k$1rV4YB5rKMYpHZ{@xd%`LD4t{tI0*3e4c zLzm_jVq;wbU3e0@KrY=4(3lZ_H1f&v+VXhSRPr;_QUC2S@-x&&<5kz=M{ighuR2Uk z<=de@FWLpkD6&G2J#|Fxk^H1*^_-s3{c-5CYQ{N#nK*JX7^;k3{KfB|42JoCC;uar zU^M$g|Ac`)fvl%9G>X1+4pcLBES;y8z8gN~@t2udn+dWta#pI;ldV&w9u0h!{wBdW zZDni;@YDs24Sl6*F=N|;pPd+@%B`HY%XI**7(|I{>k2ANDnHQ`=*Uru{ae`yY;i5arH*21e{H--{bHzujUdiR` ztxmOL?M<>-e4S^aR1s~^sCua^a_WI5+# zHuMjrm6^)EcYv6t#?qAF9&6Ur-buTKISI{wtxC z*!J;PI(^FjBKj;DZl-%(xlTss3mM*}oR!7o7b_u;#w_yd&BhKjhuEgM*u$rgzj6}! zm2))z=uB&f_U>Pe{%dlD#EHfDuurQ;TxETx4R#3tbM=ul*J=5v%bre>ehGj*TfKIUA{k%O_{eNNx? z9N#Mov(M3QVhX35c*x_yx$Yh}xwapN_xSfFbvuUKxxCB!f99@R*xNU=$8Tb zS#s)a=;aK!v2<#;hV@fEvLH1obbd_R4YYlBy%3!XayCcon02`@JKniCw$Rh>bY`7D zn6sWZz$)j{)=cUj^rf=CGH?hje^eTOQ+vqRmuTPZN62;-Jw_g8Q$E@ox5VRg8C&+r0AsFb2tyvZLkG z8rl3EFj2-wrW#(V+4b;x>p9KgKFeCsbLbBbDE|3Jv@w(XoWi}GMNfhOVk4(OKQ1Ew zk=-d89fF2wF2dAhV;@}E$k>0$+5ZvyN^z5+`C!ztSg|nk2tGJ{avo><^H#rT-Qb_t zRWazB=o~e5hE9FQ>J2R=Hxafy#YuASsQO|}0SkHYGpzMBNd^z++-B&XrJ9+gRy2q$3){__8_+iSCw~u{)uG}iW%^Z2} zlm}PmsE#~@Peze|Yie$ozSnz^Qa$v(7%7;jzM1=ei89maQEn2hpy3E2O~@b4}r z#=9FDa4$ao`=(mUVw1_Kfb2rvug)ZS`S!qve+Cabj4U>lHmB8ImVOz`Y|$<8{$aZ) z`EY@?;rdq_R~?4F-3XmK41GIn7xg{2t?hxLPqT-i4GZopn_<5auWBr!&KCV5Y7_)_JktahxbYRlU8GS`RUE!S}d9zvJ(-$z{F==F-!F!jYyGtkHgeVsef{DX{ANP7oseyjmnLM}4~c9$w!I^W zt;5T``jsYReqWws)!7`$se`}P$@<<^!%pjp&F}ftES||?uG+yl976{j>lx(?)HCQ# z&v%sOWWkOAah>+;^rFd5y3G!`IYYpN;iHda5?O3q0(rQM?+cM(!eBHSi4l>XLo%`Q ziEKe8ZiKgG(B-zmEB3%MlE}n+;2G_9q%Vy;E-Vl@iRDI?_2W8%Kck>;cB81GW zm=Nmh4k?$G@?%Ajmn-2#>yejFzC*3Ea^7#`BKq*Y<`tQcm2-7?CuC(WKh(Re!~0IM z^11TB%6B1*$V%jCr-|AQ^TDjTIgveku*r#hbe^^0v~n<$1AHf+hp-Xh*X~z6f;jkI zbkCM@a(vXywU#Hrl58PgOf&k^V&vg&WZ#}rWM$;wdtLcAoY{weFsN(Dzi99OM zZ9CM^!Tq5>4t2?1GZ=~Yp9<nBIj^^86J>G;>SfDKs0_><7e#mqsHYvk_i zTTI>p(eEYX1lq&3J$7Lq`bX7%uEj3qKi7JphvY{aD#RA{b99Kls&H35cCg2)3cB|2 zzaE+_{i5KH3%YhQE(g0;xGLh_<5ZD5i+iw9HKZ8hdNW4yuH=ughde5y$H@BXT6TTS z7?oQ^W7POoXV(^e$Mv-@hwoUdO^7v$@gLhx|6cl5zrB<-+HxSc(W?a^KbyOr*?TMb zA7edZ+@~7ly3f>L(0v;JGhi}g|51*+81q6cjlM8*l3`BjmV~-ujI+S<=Cg28Za(Xm z6u5Jt+8g0NF72vgj-J7mptgPtp2KUapilD_GVP#0Xk7})(PP%dp&iX7e5s+9xlC#A z{jt*(W1oiVtSar}Q{;EndqNe~w!y4TaS)qgDm=P|+#vUjS3}P5t9(4zYuTLF%Aexa zH^NtCaHz+~g<$5(q6VI8lgr8}DdZFnBkAeQoCDSRruGQ95PN2_13vE5T}hrht5cXY z&YX+WG&Vd_SIUpe5N-n=|2t7rIl`V27RX^w2@3?S#Ki)IwKu>56(Bc_g#{`{o|Nur z=2M@~wzvLn)yI=hYNBSHD_=ja{lH#=ZhGhPce!SAzU_X(mNH>WnXsjNc>ILtWlQ-K zdSG$R)?tw!RJM`Yi>#HB<5g$a#oCTzKS8FbbZS-lLyY1cyI|3A zqNwb1$te5T)zx)l_ z*(TY;+FrEYv^CmiXeWDEkC^2&`0H`8=1I*Dvfqf`Ftj~1FH9_*e7g9by!;ow-xJJR zm~oev#8<`tV9u3bTKXLJ@8cb1M$tn(IbvsXAu#+j)-_4ip z%Uj1hB%hWZF_$*#V(Bu=$sFRlXt?wQgYVW@d55cC2tWS2E)RbYm{h^L2O=dvDq*5lw>b^#rVj5H#XZXpLw`s*?B&;wnuIfUSXe z{}MYK*-wt#?{1HDO>NHAhEa@7GyNrQXRY-2gM9A8Z{BE!lDA>M*ZI@+UgChk>!kDb zdefH+f)^Zx!?^G?brCeR!KJB@5t^#Fl8}$4YX0J%wr03=^+Lr3?!585bK7lNvS;1u z`@Z`nt*hwhL|mW^J}m%tiTZJO;R_1dBQ?aqUp(H%-p0n)j}Wko_{kK!a(d$JP^x!$ zc)75L-vHnEwNh(nwv}2phy2z<#JLKmm3qLcDiMBaPQ1StndR%`9t-_T>yhf|@s`+* zZqHdtpXHFh zH9>te_?=siPwPoM*9vUrLkWC(lFvHGSw?P>p(y?AAf9s)dr`l2XRqs-ZuJz&qW z@c=W~tA7#@eo|PovGeo~@J{vB-#=lrzeykUK7YG6of%&K6Xd%=_-X!c>i+=or)^WL zeor3r^=AzJ8^wnJjxUoyjx@AN7`2d_<41Xh8d^J$lQc$u?zoI(NM9Vd{DU=IYcI7r ze|3=;v**u2bdiT059?4+`OE9 zKh56bm;14^c-TSutvLLV^`?DqolU-pt8%e*zPuy&ls7n5PFFZrO!`BgxS zI;S?GzX*%{E9}~;<0zj%hQp-GP{rfm``mVXDck7UZlLPd*kA0}z ztG&!qb#{G^GbiM1cy1?t1J>G=+k?!FYAniMue0+4dk@;&@>B4t#N|BK1kd~x^P%r&gg zi}yt5um`V*3s4 zSj08Q7uzpBxkGdw436iYC|a)=YUNq-$5D?(WAgWSikO$$yUB3}*7hlv=PACxi#Kzi z^Br!U!IBJT)ur#umFbzM*&?oZq^zXs`wg>y$wN?Q(qJm69yaAhG8J{;*)U^&mCu+e}nKelA zU48THBi{e~xqLl~^H_HGLt!JMNG5FJoeAW;?tqj0;qG|rLE2L8v-0Uq8e3k2{jeM(d*-jVV)52?p4a`w#GPD(T--#TcKqDyOVjZ1<4senA&vRV$m9Q)HZOEPc8>9W zGjI9tR}O-)|wh0%L zUKt9mZM?(FGhAlbnbpjH7+ZI}9a!6F+bvJ?{@C==^=s@fhyPxhWWL!Ju0Q|pl0vVpa2d{2?bIaXM_J~lU8Nga#I%C#jks_pWY zh}E_3D&lq8iQyvts`G!T{ilL!7pYxhxf0)A^X8*(j&3{3cYoVGL&F;iz{Bj}UERDZ z%J*1k>iXDH-ZeME`wA*6YvPROs+QHKc@G$cCwY(jh57Qe(N~;zaSIP2Zyy?m)b*!R)C`s46iGxMif z=}%0tT7C#^)V=yGeBJVN1MP(4?dx8m&)t))ziX%cC37R`{kLpAy$4!dZ`*6H;7u%0G;Dw@>IuSGX`E*OPMf0iOmAA;O1+h~7Ws}H} zMBL>sxz2jK_U6Om>>H1+dYBr`{~-I~7;DRO54!Y~Sk*x=WO~m4fBMb5>!^4TziB>V z%(?bV4dd0lqwahAqLs1@nEt9Aj~3_h#2MWz^s!tVSA_As#F=N_TK))qsSy9#li2$@ z;89?chQ4>*;`Gm$Z}KW8V_chB93MJ7w=n%maBAOlcyA$mk$v$*5&BL=Ad+5scl-h3 z7?$6AX87?r^k-1MqFZLKpT>HH}CeDQPY{tR={d0S2 z9 zT!-I09%Bzh=aM&we(8Khv$S!5arz)KJ*yk7{y%@VZqupW2^%MSeY`qnhNe&0IDfk~PLoq5#hHXIt&1Vs zOU_@2-yVBbLtB;Ia)?;BMd(F|DtkmPiij`z^rF-hWcyWiXCpFvGxSJpDb`K@CF83$ zhg+wk!fIK==fo|!wp6FX-&Prz>mc;H;AXEq#a5Vhq-(hC;2#h2Ik6+xP7+ycR68YJ zY)C=7*G>Xi%(SDN7|2fz)yQIp=x?Gk*Ulp3uqgc=q0#6*(siJ(c{-z)BhA$reRe?Q zNTVP9@?WZ*-H+Y3t{$I<{J`KLH&ok`THwPQs%zpc;88c6>e#(*H}oRHd{s`lZ(ZeI zc=w9e{AlZ*b-T0A9;KgszP29XJMdro&7xT9k`K?9zo%lz7ZesCHkN@Oyk6DaKI#s?e z-01NG^u^E;Z=5FQ{|&7t=~Dupn@Y~$?!GmoGWneO~=k zzYMQ2ws>=v5}FI<2mQy@k;}ouD@G~CoX4(PtRk>_9eEOKN4 zbE9+A>#lFRtM_VNjGSD?Z(2i>JGqDZ&L>}OexBbrHijN#Gc#WH%CaZ0qmOAb;JR$W z=VLQ4Ym;IgynW);sQGQ@O!Mo|rjJq1^w>U+IorCA)@5{-p><{tnH-NEP4f0^t$v3V z4zRy2v_C+8BV(Hyq|bxc1ah=V_NmXe#OF&OrWJ=j&Ig zkB~h$zwc&_*gq~mmTkaWBiX6t8%OToH6)Amx6o(rXU{nBWH;{C^CZ7dpHiSAGBBOx0n0dQ5%wR?1&fF*hK%0ZO#A8So*x--(^v2sO)YFKWEN=IoxLV z4nseNkJzW9_&5iBKFol8n74U8%%)0f$oN7vFFk?wy{7)2a&PUsqGRtd{GRTde9r1k zFh2G*_odFdPdRlS=1=z?9f_6C;(DvVerSHMdnBOOri}zPj+4~*?FC~4UYNL-qV+DO zly@KG{_3Sx%Q5VZPIjJGFqh3c!K_jTxgH)+4-cq6Q*&fXz11J7vN{VUhtqp%$ggrm zpf}Cut^6gg2)dt>3#=jRnIo88?3)deksa)&iR;P7MPJN&l<%uO5OBxsNT!94R-+U4 zkn7yv&kpvpc}BU$oFUE(F@lNV;bozwZxAmZa%)F~;@)T3xy=1R-Jcy-B5YyXkzM*4 z{MuLJ-^Oo!$irord*rLir#~Mhe{uf4-^dx#9|_QSt5PUl*5HRQ?^d(Y5{EFXW~@ByQn%O4-!H(}21dqq%@KS?Zoc(~CAH~f#pFq#cwV-Z@oh{VPR-SG z(bLYdF`6Ucd`GZL)Wr4W-cMqKX!k->KXWvYez>Wa3)#X zD!0#BFD$ptqhAL*d;itv_FpVF=kET)zUs}>JGHSP*T&ksHsa^o#*Mi)kg?5tx%~h` zc7FXh|2F(Kd$ZPBtL$25b@95^4%W-H*ZbxsBbgjq$@$Pf({?Rw=j*nrTUY>De?`8Wg@xDtYA4`7qUlaZK*TQ@LwT#2;hxf8?y&9{LQx8E;lGONn zKj=$h4El0t4EnOjM_-b4i_&did}Z^vkbRP^+#f@u^Wc2U^9eZEgYt8FxBGH>Usrq^Q2uT-jD3sBLAt*sW5l5i3b`8ltkuWH#&O#suAB-J6Oyn&SD99?4^&- zx=47tSuWmAd|Q|({Z|{Z{gm_nHS*=(5g3gPH2#SwGJ1$VV-u6kUtLq190bGWbavkw z1<%O7*%sn&ynBpaT>jPzm9Gd}H?ltYt^D@7<aK=ercluYnW|MgzouRU<)E@B4{QNxqEwnpD@umy%zS)G;ShafLz=gCD@ zZylfY{p2Fs{d{t!HRPYOSfSGpLq>_Qo`b(PId(MY*;(W>GW)}OhiA)-k`EwMl$&!G z8_C$6tD7^6E*_+Xe z>%$-9pWl7H^Sc`!Jzh@!@og5lbL{zDa_9J4w5PK?m$ff%JkYfRT!7}qoaN=&v%KQG z&hp&sSsokPt1#(cjDN5%hvW=^~sN@Sb3d$vcRC@Lf9+ zd4|3oCI|TS_SE!0v)5i`uf0sW!?e4Jc7>S~w*H^CZM}0pzwPI@C;3hC<`S?d)ZR}1 z6WAhime6yC>ThYjvz~kFxwjHOKJ}xAlG~c^G&Q8PKd~i6oXPbO<$et>jw zlY_PPmV_H`X!Cr{nc-#Z1#InZPC417s-nbaJGLDmAMBUn;FbJmzv0W)3~I{sH-`pF zEB8C|I9o%7!S;2vm+tQ>0>@eud}YOD%pEw;8J}P-oUecxwIfOKyV^?&yQYIztqx3e zYjBkX(53#a`_^u-!v*%9(pr03B#eGXjg7Er?`7ual{0Uw)IBw{Asx@*eW^=(sP*9C zQ~h!U`GAK8U4M`5+Bh7o7dcv_*H`GQ(zj;zjiG(A`8()Z@#(3(qVw!07i;Xd0guIR zoH+K$i>wvD%GRP$PU1J?F_Yt+)!F1;z9~%Y z7EJ!~dYz-_<*8C?+^lyhtfkKMgSUnzf%mnYhS#Y{ zBYkR4#S5j*XI7<4z_!cxt@)DeyNNh&3jEA)E}D~e_$|Tu_H44AJNZld@0&mS^9RG{#Cn^ z7_OH39qGOG?9nZkSp8oHw~I|~8T)DF53qj?Jl%Le`F^U|ON@8JQwyx;0(Z#1J`;?@ ztiDN%LGOHFlhsK~>Z?1zGMI6&F0Xntdu)26xfTX~u(fQ4)OO3$w_{U1Jl&f9q&+n$ zEcLxJxDH{4~!znvrE}gPrIPy)^U8^ZcIQ<$J%XmRnN?@>Z=It4}k> za^_gdchP;zYun0la{nIYX=SE$)c?YlNbafAwT&E)2KKEVdaic``M&s<;(B#mb)_3z zZy-u;hhoCa`=Re?*?jCABtv7vmT&cv(XL$|y)fGK{&Cu+Jf>nYi^YxcoQ}eBNDp}N zPSmXl+nlXU&4Z@Mb|XG7n|<7!39dN<4)kj=bOfC4u7ZB;$m>{j8&n^$+LMmhGm*!7?Pb_X>q zXJelr4}JR~;e4=84tXFE^a{}m*^zu2l8gEC?Ip93_x%_QtFtS1gZIq}?}O|B*2b*) z7<)0c_F~Tm$J4vsw(k|1?fYIAUQ*xd$n`m0OWCW((B;!rs}kkV%=Q@v${L9?Ykbc$ z`x~j_fzH}Q@21jpm78Gwo4K#EV&b0mZP*sDu?@!8rO!BS%_|P^f8q5@k0KVbJH8|J zZL1#^nnQ(yzT~vt9+~2HPMF3!d8UW6=WGY<{G5rq+wbO`j5!!txAjcYsd?ofxBV)j}6;{Y+R6FQFWIJ=@EX-o(OsHKCZdN!?!N0=zuZX7YsChx zZ*l&QL-0uR+$XlYAV5pHi(Z>Jm4JKH3+dogJZsZyB`Q(IZ#cu9qJk6Wl zljh9rnA)cdadknt#E&b^#jASn-$mXmJpzbj7hFcXk2SAjJkbNaBT;#ztj^7B+%xmw zXYp-sJIHSd@{p^@N9|{R5Up7y^g<}{{NG!%zt=!VRhzGTGjtEzk)Bbnk<*XUBNu)D z2mB?lMx#Kfwca1zJC8A9j3IwnY<;4=Vruf7>)gLkHV$unyq#XN z=VtLe1>88meyRj`q*Gmj9NFMHrdK4nc&y34{;!;07}s=$!m-!{ zXG6^c)Hz@-ip|v7r8zr|RfkL(wu}3GVkUMQ-?pIhZT#)Ky5rb-(!V{e`xER{$DRor z%BM0Wa1mo1&VS#w5@*_y#`Ma%SZRCGEysQ?eh?aGb#|Q9)4D&zIN^JO--9%dJ({KX zKiMNvtHmcq`V{T6;pbu})>b!i{*A0d=X#Vef^Zu9aSl#nCni+4vZvVKW_eY+(5Zdj zjAAWSJGt@ByL7HgiHX^eh9<}s<9)buf2?E|wUT4)j(g;GpKd@e%e+C+6vg0b4(!pg z#*M@khww!2H|NW{&3|CZ;ze*Rg0sA}u>a><%R%5>{eJVF8^azP;W>MD!8zz0ym)S3 z6mJ^--K=4iQ|$p4(4c+g=bTRX-(WW|S_|x19Bvd|t-T8ysx!;rY4Waa;tER>$!XnH zx7`IzDJe}{PyES_=%&P4uJNuC_NJ-={{(hl*?KdaWevDkGt23YPx0%Gh{oG@VAonk zUEu0A_I@nyFmo4v^R5{0vSVxS!}xVRUbZ{O%epUwj}?>YUyn`%pC=$Q`Z-A6QlFQt zUP(=h?@$xtQ^~_tn6s1>-4jU;NtE;uAg4HA|z5@n3g>Gk8e*hKy!>DDZZ{sdzg$ zVQS)7ew@~I__6HI;>W7F66Pi4w>jJI0hY+A*xsuDd|$9F{BE!Z^Be=u%9R7b zz4$YyH}G5!pEK(kS9TiVKM+*wV#cD0q2yK|cQ!M%s>T;87f53A0mi5qdZ5OWC45T9@osfDdk$G|l< zf$8(2vr6Ufc^(;AaU;#_M+-T+eeA{A=z=ck6rEp~wE*7SWbz9QUCQ|`&NQrH&8s`l zer8o?|Kk60k9ex$PPB)Oj3pedVQ*h#oZ$8U!uK?~6?-r}ja;m}H@mlrKULgCxW-m6 z2Wg0S1J%INnuw!Vnns3GPY2W2V#2PCpU3WzLhqB@hHO8*aagX4?RRE>@%F~D+QHaO z-k{fqpZG`u-)f9&(oZU-pZsz1!_JSk+*w2Jlk@Q}-mdcz zyi0~NaE|_A&*%haZeo}(rL4tV^v=hTi(fJpF+S)q*?xqX#+n-e~LX(wC3HN80X8v?th~a(BM@p1HHy=xUX2 z^4!Vjk=xw~^Zqc&9_g8rj3Ya|_<>*|1N~22>rAgM6)*LgV&KVt<($6?Y?p&4{lrzB z&VC=lj?&8>>if_dm-?~AYma+o4fHz6uKlp#cZ$dLns%`db`8DJ z&Ybh-7?#O+x5=TH!+xybPy1uX6MZ;_ewTqhNMAj{_!aR~!Et+_57btpzL(e3$^0_V zDf7(a>@$-`&PDrmti+lAgBi|r)hTS?*#vPIKVVND&+eJ_=w#@-@c)wS8S~5AvjX$H zs688H{YCd|lzqOaJ&Q(Odh^p!aAjnzVgpSu0!E~>t>fCBJFD80z?8wO(g0rZTrb~yC%4|-32X>2 z*TL5;UUpsMkCEV7-WZbuWAJP*--V-{z?Q~H$flmf?XEfg7|?p)w5m9M?{@Z`T0@P3 z5Dw`KI&XHSKU3!8c^mZ}znz8A8iVKayZ$N!v)>Q>t{Q(q82`UQzl&}JfB$>Fa|WZI zUnTZ{YjS?kd7RN)(Rj{jKIbG^U=H{_o4;p>8K{7s`R6pRsm+|zN^?%cjhJ)N+2!qV zk#mYc@3hB_fpaQ>4w|zb<2l7<`eUpMoKwkMe+-@7+dZe)0%v;3Eza~ahQ7>gYUHed z(^*eIU!H>o_ruS>$KLAu@hnZ&*#&?9o6zq%yWsDtnH_vyXP4XCSW^rdx(C?%9ry}s zF?-c-Xk@~`-k}J*CA7CEfxRGa3D*w~;-u^%d$Q}1JS5pD6IhQgBaH!e=tXAn+rZBJ zvB8ek*M{sUzG-2{Uta*X&a*z@l;EfYIIw5c4=+I8$U7^oCAinBha22$!Ljzbp1D+^ zo8D;lo4zw#-+Skc?XA$9E%0*janTvcJHi1=a|E-US(vS3j3rZbUZv(*`<+YLQ#`*) zvOp1fgU`;u{V`xxxMR+IwtwcG295(~9+oFK^Fs7ytY<#}EFWb*Zsh#;2F_pb9fT3; zs&}u!&e^lAGO$o$c!AEw zoG&n<^NsQBSk5C7Y}TAA>r z?03nGr;!=03~7HCF9_b>dnwK&uwR$$OakYA+0P^>LtVjVBK+`XPFqnf-u+(mckn^{ z`m5-qkMnsYf0C=p`1@p(+<_U+hMasAYwCn%ORlL990tzN?r;A!ey!hr`lDO<=X8m# zl{6jWS{{EdLeu)GGcEi=R?orw81}a}D_;oS%iXz6>xj#0yK{v<*8;G>d%(q5QyZ~b zfw^+6q^Xf>W16dx50OQn_rv=Vz)$)wmDb$u=eEY_k;HzQcS?2{#^*7t&EPOH;2VpO z0~g_6lkW1fq0N5-jr$t7EIClR%YJZE-y4ivSk{Hl*nGFY9}a!*3VoNoDERzehJOEU z=(}W>;QJ-Jw0_d3#fJ74fRWacBe$R6>??khx>Itum7VF)l&AB_=Bs$;HegbAQ|YCT zVGn6gg}+4hKFLJVZw14#tXy&4`5OHM9s^Gr zhT#BA9s}lnaBEIy?)>@C=1R^Zs4skzbJuslnRw09+3)39xD0<6Tm_#$7JA<5C-(XO zJ9NKzlI%&sgBO62UiMdeJ#34RUR?wpM&tQoku@$U4J|~ME*A~G02nMtLkr+C@Hq_Y zmz0JE;BQPcbPQ{|YH4Tz7#Wp@2KM3|p`iuf;@IV&p#hjEhTG?*p#}ExveD4MIb0Pq zl>N=4p|a<`O&S{ROJ?kS*AwpqPf{F13K`*G^iOX)82!}QE$C>nA0Lb^JbN(u|8ng= z-j+f}I28S-+ax3C`$0bUUW=@-0DZb-&ArCnyZ~M6THmJB%egxEJ$updtSs7Fs(aV^ z_m(>6I(C2ROy9N0Nm*N+?APWQ)_Is(LQfubUV8Ot&L5S(_MBhW@(*jH4EkA=Ya||0 zaQ);5hu5Fl_55vzShK%Q?MHU~yI$b>$n~do9lh-YYc{fz_9MIg)UNN{b^`l?xgM}D zq;~z)ZG~j5)UNN}b^>|X+>hPz9a;Z-ob4`ha`5~wbp7W1_xR^8c~Eg>z2|`gvo{6g z&D8tzONpIEk9(~zTH3Xn_-Vxy%CFgw^%u)uwiP@(44!QT&YlFew*F}A zo%(*5&xgUQt-#rnz?pyjKXUD#ZaWEFZ3WIw0b9DR?h`7V3aN#LsTNNS>F?B9DsRe(nTuG~`b%S<8GAp@?%&OUm16j)qT_}Gd}4EF#_PhA>l#RFKEBF;ukqcJdv)4W9Hlm*sC1=IG1}h zj|q8F zVtTzJwSx}$v*k-0x^)JrJ=1{)a)W`16T0taKlaMjw{+-rlzt)i%+^1z9lX1lc!{rW z=XDwR4NYD)QEVLxO!7x!2u?7@Z;xLzfk~wF1SZtEZZZGTn(+MSdYBIXFic! ziwVRIMmc-sZ?m7KK1H?;u3#U3L|ot9R{qLvr9ed;na)6c7{VKli z9~)TC)#`*4=^*Z!R(bBsQjarrsiUp? z3&k{?{ml0}Oe{tgcf_0efN}594cOHpO>4bma|)RB{9Wg2T-Th$lFDs8MTDa(o z$+N4xE%2u;3lsFDT1C!+#)@k!#nMA}8(AN}4ab7Wwh@Ewu8W*mQ9`W!X=t1J^?~%u zV#IYCx=L)U#)*+n!n4yA6Q~$Q6Qc{wE#dsd_Y@NpgAUv41@jCpb9`eE{w_uAp|O2k zVC>-o;-}a_8w0V2_i^oFV-JHdYpv|_2N*MW?RP`pKNkAFDfIm#d=JMJF6Ely-m$k` zP~5xX5iP7#hu(9L_;Sfd!MPsEi#abG*LO9=44SnUhz)!OoEVP*ytFZZmphiOfAM$k z4cEtZ|5NQb=jqyWqM_@ED^!eKdJZ*6h<#FwT`xRUHql0|HDU{01YM1zC%D+EW64u5fPp*TIgUonZ|>)}|j{>6V~&dvJ8HRl-nwhUUWSRDEH6qoo0 z@i;N!5v9*0Ogx44bIdc}GsIU&AF2d)yac?Q*xb~j;_#DUf7{q!*;r%5;>^p&Br2vt z{^ZBlWBHTSBUn9+_1(t5==;EuKfkwsvCDc#%1Sox#jbl1^A(Sm?f;~7N@B&)BhRI? z_J6@bD|0W{(lo+h95pne3{V|6|c;D zN`NzG;)mYncvTA*@ww7ll!sFt*vL&T81wB1M}@C?UVEzNM|)O0yc2&=7e1X|WMdYO z(aY|6_U!Z7J(c|RPoeL^&5PMnt=+`mhxYXRuzhiRI=m+VJgzc$Ts5XW_3WMoo?pee z1ZmvG?CEI!Ap@V6A*N9=M&X!7`J40n)7W8#V}%3uKf#W0yfNS(v@wnA#^@ikF^%i8 z{z3T|ZA>Gw_^7dRC$Q0+T!UXWnzO6QMvv@uyJ$r)u2Hda-vVxfeniC*1^t9J&e8fA zivk?zBF>cw|Mx9~a7}(f`&phBqx3P_loXzkU z+1N&%VS1Dp)co_Z_89EM*z$xo;rPaN+4#n0Xwh@o_(sJS>AR)xI>X@ae;xW=XBhnb z??S)p3o{718j#X=T?4NDJw*m(D2AFT3P^J zMx~{JeYvc(v;b@zyUa0>#bDUd{Gzn9z#fjrL}ug4!Mkuwn9=ZDIUs+hx+>J;q`+V*m`BK>Cf0sdiZD8cxb^TkMp_u@ih1TR;N z#7k~Lp1#uKCEuxiF?LzvCZ9)tlD)$_Puyhb6hCfK|IZgUsklAGkI0^q+=ThvO%)BbxY0b5DTJ z<)2U1&IJy)q9^9#aLxv%-@-UdtdgmT;}Lr!9QJO&$2K8(uan%maPjO9y)T7NdG);H zy{q}Y6(88|Uzfc1i+uil?}mky{6B=R`6&ON^cFAtXa4_h-ft|ly^bVj7OE3rY7^0y zpqKh)c0N{4wY25FtrK1%Zf@V4N_rIF+k6J!rt-sfQr~iC)OmU+n(GOF{4J+b_POI5 z-7`bOyn)f!;ME@>|u9bSr>*@RD z(9%|}l{>Qsl8TY!{?uE?dn$f8^o;Dlipi3_x={S4dQO`d#Gm@{n;kc!pVLD_e*5&T z)DvXR>3?&oXW`%Ope}k3@uG*RZ|c{XguYUn*ZSi%M|WE0iGs16>_H{5g*qeIlV4#! z4(@VIyccKa_i@Kh)k7b5dO;8OY3jJy=^n4~?bj?kPzH>A;mYh!U~5r(*k-7=L*I18 zC`YpWJ=Zs{foGUrz|`nY%yYU`Z}utdEcNteZK59adV1ir(?>x40M>)kdv~N>-b>H8 z_0E)b^#!iQCODP;uH}5*TKVDT9(>-^V6L}g)$_f6TC#fmEXMo9+)eG*m*4WD#-gXG zc^?0S11#(LHGK9Ms|DY8A8;OLoH%m=?oD5T+CUFx;C*Q=>LI-t7}=anFH%KbKsoJ95^S<;jekuJx+AVF3#|L?@e=d z_Pwg>Zr`gj48C^>->3&WioUtM{~RJlQx-|HtY7l~4bJ@x_)G^gx$voRrTG zW@h=poz16Y|EIr0g8trZ^mh)jw33>j)^sxJRpQrAA2f9)VVCbcd9nxkvYxog2%wVJ2>Zh4LJbHY6# zNuIKCz_#aw-Lnj` zfMlyG*O#r-|LPQQR)uU;2V7gZrk-o1^fOgYtG{Nv%hhAu&P(!#PxqWG-MgbXs%y;4 zqpny`{%|~#`!Xy){;I%6-a0Cv0o0xOI(uMjCFq&)3a5J!-);TS^dh6rZ%8l7ujehg zAR1@))`PYO_x6Sa`9I)}k*CSyv1k4wI8%Z=ZF&Vkf6~0G6#cWwb@uJ0PWHXj^4=Sp z+TQAxzfyz#X>^0@oejz%5zGm`Yi8540~phpRdK!MJdL`M-vK1rcyo>(SVS?zz}&qU8p*s8g>VWqOa@w;tv>Qa`&Z2bc6)4#H(}!ujD+ zJhCuY>>o@?;X>QeNkM)=DT@fG+>6MRMd+57Ile>o06@v{8H(x_yB zkHod#0Y1{<^N|Ny$Z^!U<#t~+9^*f>U+cDxJXwK^9-OS0*9P%A3 z{0%_AO6h@ad+EK%JjIibaouB{R@aF0SvBHyt%l#%kfUa0oCI{Oh4{7(a_4HTuFBc= zakk1WvvbPu{vb|NBsMpnl5Qhn{x2p1iXjom>p;2dhW{MOn??%7|vYyJPNO;xV#WvPadDm%KcXh zT`n|t4<1pNr+lb+F|;=$odrH^br$j8)TErg1but77h0Rj>!+8?r*uSbAI$LvtF!hY zL*(1()-PCleoUUd)_h_vU1Xr^FNfCJVRF_w}OZabItW^I7~Z9>*sC zNU~b|4mtUOa?j^?zAWL>^Iy;X{5^j^cZBxypDunsEv+bwqqRAjQ~7pj&iWk93DB(z zqd8Z~JT9E}T^<@dcG_vrcjP?ka_54qZ{@-ZJD0i~d<4d5x*(o}y^Q;f9EZK^?agC+ zKYZEP`lNpS@a4kzLT!%ELf6jAXXoU2ujQ*&$FSeUqb{kf2;Tlq*ouCFpY1@b^z$_Z#!A*rQCPB*B#ndN_7<#_1np?Rr0i%7xI6W5OcQ;mQ_A_9Yk{m9&P?7yV5>Dv@My$<26Kj*-SNU@%(=cG5e}-JmvYmC^s$w(Ok51(d)Nxg z9dDqQb)>SrYW*0OoIVkxaq8WaUsuWL()wKb2pL|)# z3C^-wY?bn1dGuFJdG>*uI5wot9lL*`AhpYoB44pjJljzN)+wsK<^L;y)$=H@#0Zt=O}A&fcpz?P848jA5ReBwFa>T|E)$Vi|HDmwC{IuP$=-eTCS^xlV@O ze9z7pL>||fXTI!I&qj6|r|Uz@=uy2)eWAo-gcp{Vh%fb=9a`El$>~-saPYTYz8BIz z`k=XCnRuP9!9Tr#jq53Bj)zPb!~U6=Up^y-4YUUN@C0<;Lsovr^^zCf8NFl*y}mD3 z>_CtvTOQcSeunv@#UEYQS(Ur92BP>3J$F`p`SZ^9C($|l*sG61ZYcZr|VuVdhDzL&Tq^$qkriSl_HJiQ(pWfMGIcJO-YKDB?= z*(aNJAAOuOA9_g*JjrJdTetGr*6_J@OLiVv*=)ANQ{v4DepW!UV zYQNAse_3SD^xiPO9%FyP_`1a3v*Fl!@OHSSFSVtc4hP`O+6|=hiXL|yEr0gOna)ev zQ`HJC1gEv5#4g>s*bvwPV4VsU0$Id2;qfV_QyF=jd6kHxc* z`&iq2bPW4gPE5xU_D(XcY((tQES;C{lgY)ASRa!Y(zz=Vwas_47bZR)`fBy&7dhAZ z3C?tDe_F+NV}Amkrd0TG?Xq9^I5%ZL{-oi!MdlHVYj5Iv#qgZ`x!L&$rt{$k+h2kC zv}fnjxM=fWb4<~DzpS1W9pv|R%!vbK&>t{qjM zI(+%`sn!DeR4@3F8iTDTNC!24;h0MeUuZya9V%oWvVLxOK~WtjY!iz7=EECT-}6nQ z1EtWNGB$6Ed8bPR6M`GR?xD30wTAMoRG+#I+m_GI3~OA)Q0Ei(y#?+$_|`;-cb}e+7I{K^kUheS8#I z?n;eAxAIKK2pIBp2qRy?r>uO{1fN>6GTGgPd~0Q_=b@k0$2SGpSGj{${|fpktjrY+ z$XwVjaxz!I$AN9`X?!EYeuN|3XM1Z1m((kR|FblH@GOk~;Rt%nx#K;$FBP!wr57f< zYq6KKEOfe4Gkl%D#MBOs^?kwlUn;&@beuUCX5%b6&KUUo zh3sRPXPR^L(0$NlW>Fu2{}r~85MHeO*J|wPIT%KnGCsc4u8*HN0xoF}kd?@XFYM!szm@ax z9SQjO210u4u)Kyn$L#9`*u1UGCVBh0zje=4q}+WiQb*hCgEvqAETHfz;Yg`XJ zieWpmdG9s<;A}reo_qWca(V939ec=WNHpej@^zD(WyFea??Y}*Gj3}nYHS+BG>%zL zlz#lejsIceu7CNuFDuS*23udqj)UCTdeYCqCw7wS5r2H)JFv*RU+ak=7tW_=$JS&u zap~LD&ml3pt;~DRu`5d-fd_eb?3W>Y`H!oO<1Z`svwCR{(_IqF9|$5}p? ztsn8atsimY-i?Q+e8ZgksQ7|?xRp7SJF^Co@Fu~m{Nt(N`Vq6b)Z6xI-v4nMLr!KF z&(IlPi8h8d;7>jun-`nyMZTmkci>pBOVq2jp=|SsoA#6qVB>F@@13rlJ~GC`;)L|t1JKjQpoj9E z85tYjSs^*=YM%QA$z73;UbNhGIbxz#zklz>7yi|kYsO=u#(n4Sv|YSty#?fWOUHbB zIX+qVS4Cn|a~pOQTvebrm)```V~|(S=`ZoAF(GCjUrw3vzAoU3vp+kki|#i;Ii^Y?v-=uLGso#{C?o6+BJ^Z0wQ?2zuyRrJTe12J* zh-7(dXG#~a)f{DBhPMZN3R&Ofu)nufbtZ^IQ}5A}^z=lYK}`1jTDABEJ=ZfnD)~t8 zb0R;uX8kc_i7MjM^gU8p*X;2w>1Oyp>%Dn?oLV7Y*#*(dUB7qH^fLUu3fAUMK98Qd zCh}6T{xQ;ZI^QUtH+CIz*B^dqcR^F%Fui6w8z4^h4|x&06@U%ONG3}>)@CpEhMm|SmaX|-S9Ld_7beKtLBKZjl_ z8`FzJ2NXZhBp>NV-B|l`kvRj0@kQRZ)!Fx7`E4HWMjx#1q<(pgJ7++3pdP>u zwM(Zj{mz*6r58T@rHzO08P}J_>!A7eZ|i%sI@^_K$H+*A0WV|ND}33Hnnd7mSgxrz zc%747!uAXBadVp3PG7#s#S#_jac=!z9z0R1zLt&9n+)|q z%LD9Oa&@k1b2Vp(8_TOX^To?sbEXiFQXE-fy@&i|_R*X*d13af6&ooXCr^K&c0y}a z{xyednX;T7)PvvCk5`>F?3=xoz0^5R&BCp6Zv=0G_k`dLn;*|@ZUpuv>zg@b^^stH zgWYT4P(J>yZoXSMjjrHnK1EqISH1p3}s5;aXs$ z;d%%2ER5@GP3)q!o+ z!hc{bg#XK1?Zx8jzmNceU*2PNOlWzGd4l$mBCBd~%uf!+( zKMPkqf}uP zcLtA#d7=1C-u~R#e7DXOJXY<|;WK0(OQ|(HWm@uqz0mNzoF%!(rBkRoJoN+M$&M)t z+9#GSIl?|pS$S#VLV|mLUf*|Q^X0KAoG;%iTD%7Sg~Tha?%1<&>uEn{OYw@<7cReK zPo(t;%Y)0IF-LB0djc3Wd9o=J%ji_O6SKCD5@+xT_49v(oog+pCsPF%T)ikH>+k7i>m-Z<>+J3x%ZQD~K~_kW0Z+dGK2^?Og*n*R9pyHnX% zk0^Lf0X^#K_oYbza&jWqUT(f>SN z;`5Xs4YDyU%K12%^%2XSoT4VH@W)$X-=a4xeWrvyGKKQT-bStDxMUyX zp_~qRneyq!P@7V?f9}CZ=egbFn8{~@%+)v3={|X_GdO(4BWT_SbG2~LzpWlNAo>Q~ z>RZEK!Ti6~oz{O<2$pI`!CToW!u00F0`%szd`($;LvGrjl{qTTpPLqgvU7rwQi7SDmbmX7!Gd zyn40K$Bo{B{lMxS;?PVWtHPXkalW{3x&x3e0j`#n$GhA!yO2zwk8wbYu zM1C%Y#iJ_~UWTHo%i^N9!cQNJcAh($t0&h%Ulq$Yd|BGYqo6;~OU2l8&>yTFZVA_Z z5sh?-uUNag_)I1nqcR6R{W`X4UzX3=)tQ5-wemS)=Q_{@Bs+W1MH{DL>kimhl?vkY z?U>^I8V_H=vd^6xGS7Fe{|_4z_kPpFYaYTj*g+hN?n$2=db%9j;v%l8-a${qD~;`# zwu!n*%Nogjt)b3;oVo-FeE*GAPIn_UnmXScTB>(=+?R|np*>{o;1HLc3(d$qSsn{n(9zfMd=tO+?}bK@U=(|kU` z?-r(|tLdDkS=%C?Wk=UF@eKJrd^cqw>M_3hxEUC6Cv5O`c$>=4x!Zf+>*p*B?u-v7TU&dijBsbJZXk9= zE0-F3{s;19gyH>phh%Z~%k&TE!B-dVAMjcM+to$sB+v|OdSmL}a;3>ig>XGSie9j$ zfL`!a0lnY{0lnao=mewCdiB66Y&W^1`EL9;Mvp;nvUZaf!O_o=!y2q1kerAu$HX1p z_3|A0^<;>X5{=CeM^#SEyejr2O&_R^NX3eup?9PMv5V+l-6x@`r)K7lDLYc|zVhp- z9|``cmY#>tSok#sn$w5fDfZ#y$`X8231Y<75hEtQEIzk=ZKg(zH_)HO+n`U^@*d%H zoALd5rXG%bee$oW9!^+?tD-KAa@_s3PTLd{f5^tRwN1vyh<;s#uPnh_2CymBV^dm( ze%DCsSqn5T=C(b-?>V0@cBn(ljr)gbk$7N?IUO&dPUacv=U_Lh=lebA^Y^mH-@uRk z4fgms{Op~;(@&x$T@TAY$2*g^Uf*m-Y58-=caA?2J?L``%dm3 z_FL$kQ+US#Xq@79o_~F4Gw<71#~vP!lnx9quKeQviM9WP_(|1;>gWGo@xPF-(XWRS zp&pLg^?FwC#D>4L$DF(G_rwpi^c8S_F6-Kbjl4HH2cP}yu2We%qJ9%yc$L0RZ)E#A zz0Uh|?!j|B)9^i0+u};24OiNH3el?CQE1iMv|(HlxrBLb5WaiJAF*P-PGHvZSYMyc z`8tE&E${3ZVHYB{Mb|?9`F7qJlr3zmg>1&6KX&ZgyYu;cy1;vmGG_Qa7h-d_Yq(m+ zjzg#N zL)zzb#`d%1Y1x2({t@b*XYIg+=55D0pN;d9+Dyjf*b)A;OD@NbpZz7b_Xcs&@|i1A zhZ#TnOMdoYT58WfJ&IhoyMPWm053;Zd&hj~<8<4%FWd#n-?J@2Q2M zaoS{UAo(?%EPfQzLBjYU{S*ASY<}dcg*MrJ!yXli-S%@|mS7)92WXSxqOGsJjn5wT zDC@`2XXU@_CRfAezbMB}`7gE)WIJ|6FW|eFLfp$<#+Sa-7u{Png`SX8r(n+`NBZmJ zM^AC5EFnL2^Hkyn8r-P^8Tqixd!`Po;d8>BS}(g@AO5Q}IX8xeYAkfGf5cuE=U&y~ z3FA{C8l{*#tAAM?(CAXwHLp}%s*wHBo@oZYVAtu}AFLnq4pWC#xg7~?+t_WpYp^Yp zvd``03N>M4{Tw#d$KVlPW$g{*4HvQ@Tic_<9+z{E&bq6)e3R$SsV86F^j}sEkI{!U zK4)Pk%<;MnUv0E#Lzut{8uNZmk_01iFLj`kN zda^dw?~f5?#&vD=WY_sm8HjS0ww`tev|+fOcGebB$bK=-*PNG9?3G|!wmch$_WH+; zUXgbFtA(!x=V@u6L;PO_zOxLv8ose=4}V!4e;F|m?KqwC`aJZ?_80Ke#o$xoQMH_r z=eCt8m&(RxXk77*LgPA&8@A^OUxGG0ORsybK-u2TEnQ%4vg;R>tDw<-eBQ!a-f3M! zzSA%tcXSQj6U?17{63UVY3O;?mCNr7#VrlPH#(!0Qv{Q}zX@T0@z1$bRm_*3_=cjB!v<6EW{NRel?pB+5gnTK1m+bs@gPV%+- z@INvRYTT|d(ylRlwpkkE!?jguU7afRJVO3 ztzXle(D}$8YvaU_nPtcE0{W7CfG2c5=tJ*#zbI(sSYwqe%w#Sp) zHU}U3)aKH)$!D8@Wm8*xYPNqc{e;9n;JpLKv~GB()i>kfqsUFVR>SXW&_8VKRv&sp zICe|DOV3AR9B9}<+SbZb(cN@CRUbm!bFLbzAZyyT_7Z5MiUBSNP=y86&R#1Mj zYx=d%9|A7M3jbG{-1Mt*o)#8svvegsTxVppv1v#it-_vU>56O`)EXEOb5>sIY?mEe zvWWCj;ev@*O=S6CP-opevgh~}M!$b8^55*)kMyIAl5Z69qZGn}+EHlr<>P#x~l6TY(3q!F*05cL9)V4*d{ioZ*{sQ|D^xTsh)*g(1Cpu8~)RW zuL<-_bZcJmvhlg_t=HUX8B-%FD8opmak;0`arO-&AI;(OD-rs`hk9QX>NU_ouL0Fq z3(G)##J!sOnbVxXe&Szi9(K>DS8+eF&(xE^&f*yz!1RBhK85N|_9J&8$Nf-sClfL3 zx5#~U)WB5z%~kI4+nnnT-I z#0tLaIV9+~9=tP#Oov@;WW79OKdbjj4jk>zu6Lx~dwKFm-l_MDltKKu6GjFJ#JyaI z3}W|cd~829z}Qu?dBB%rPYU6s@?Wg{=gXM39@ZVrYmhsQ{WXx+`4o6U?L7R0x%ykO z1*fq2-EI7a)*kHZ-#)J7`*E=|ReRJVQEuQm?6z&lOg=0`2Qs{~!u|B0Iv=mN###A+ z_j}H7Ec8_K2l=+v%V;l;dU#95!)iytA&kvuKwV#)AEqs3R7n$?JZ$bX8 z@n=mizOwV5Wudq#kMk`t=UdVh<9x&CsThH_hdTGy>`47vCFdB<1MO$ux=e48ndgnC z>O!AyphkTZ{kD!8_3Fvgfls3gzri}s3d1UOslgKy`v`w;%;M3D;Hzr5w95yF{P;Eb;L6Ky`7pik_U@Rv z{{T3B2-^D-V4@w`*Wi{8V7D;-gL4nArH;%R>YuLeJkzkM)Am&ojixt?!C`Dx#Hret z$SHX-k$R`zcRw`cJLH1*@L9B8e$u}O#yhS_c0Udunh!p|NgSk)&wdZ1Q^ZaRR(pRr zwDgV0{Ps^ycDB3Fj5h8^Umt{ybnlr|(*9BERUePU29C1!*i?FxGX7#d&tpAviRb9# z9ij)zhG|AFCi4`z>3YYJGd|6DB{JL4j2E&r;|Tw)-LPNu5E~3VtvrN56h|M{Gg5 zrDK0Nu<|^x@`IbHDMb8(pFdhMux=P$a=lB>G^}BtR(GEL41L#+`t(U~qdZe+{($N* zB#5C^{gqli3vMMFSQ^_7{XdOeHA4)AU`F<{zW`<)U+wI>?w2hu4@MV^0x#FKS7+fR zbH}aib5^MqU~=%d`X>V$)UgMBM|EWdvlnEy0%xvP|L*zrL9*<@fP8EBQ8F0& zG$O8{5HE<2qU)}K-Wr)2nrdaTr+}d}v<>(lt}%P5?O>LcqaL&jEq$lZ z{&_`Z+B#EB_B=kn#a`eyt! zKHa@3C&$%uElhWhz&C`S!Fb9FT|*uVUTX#JM2j<7`CIj(`U>>n%gJi_cIjekNRI-G zS3-_vq4TdDWzO%Wt>}ETAR{RsXTN9gzj=-4c__`51Kl9&oS4oqb-tvYdOAr$bLaBaikVQ^d)e zvhu_dzHei!uQDca5iiZfcKAlb*(aWVJTg0*ucKN;fgYOZlB!pP{P@z}zcuuX`kpDL z$L2KrQvsfD_j;TbUH;nZghvG?qRR|W5rd}!~r|Fw=7dv0xYHORzAcuw;? z5qds6*2O%FT{V|$Ao*K-mAx=B>>Al3sn7f1gwAu=?-W<$vDcnUz4#}c&c4OK0($FE zOQds%I{4VrtEm~8y>fe&v_Qio7|kPV(-k3GQ{`fSg7XpOIj z^Z#9Yx7I&ej>Yo3=-<`KbV;QH1dCK0~^HHb!zZtnqdnix^N&ViRmXlKGzPXd zGsZPe_kst?XFL&^w!CGgv%OL@jQRAVGgmR6I_6X7dR=kgxSaX)nen`;9_G}~oV@px z?Dv>cBej{a36-WJ^kRmFJ>kqVS?I0K>r}Sa)JgOGI(}nL>^Xky z(lmRn^)#RT&E>aUu6M}}s&{cVde^OkE6iT@Q5V#6=apy=4(XiU#yZdBt#4jeTK#|Y zuI#zJ8ChxGb&&BhQD-C9SG=9~*gZ^7GUL~$Cpq29RXz9M=yu03!5*-j2YbB3*duwz zAAqm#1lORq%Ng7$`T>U$qXuNe#d(LQhvjXnKcpWY<`A}U@c|j*`{^Kg>82%Z%-r&*Hl)Gix$RokY#qkd+&xuir0!4 z|1I#-u{BwphIXBTejYaSpWU^Jx!l0tME-Q&QSMW$LLdLn=d<}a{PY&>cUD#_MJA`7 z)KbwjTjyA7T^EoagTCGc_)p&8-hO;6k}q%N`D8Q~4DKpP)tP3nZAwl+RI+< z{leGx*EQbr?Ahq7D%G#L2R^rVhr8)dJ`vmhzTZsVKU~)t|9B&3(9S*J&MYI>BS+wW zYq}TQPqQDHk`Js9&8Xvdz7IlspFV^oLx|?3kTEiCB8a(e$^7~`_X6`8|e9zCB>wU;xqC@B7 z7kZDz(!0X2^=APZ_LqES9mum0{DKkuT~Yjk6YvX8#4m_X@WILS-*ER?I5KcnM7Ax1 zE`AdIPjW>PeJ%~0*z*a>w!&-K@qHeV-=Ff$Pp`q>Mt`el#KZ&W{I%}PmwfzgLnpBK zz32Vs$M4Pnes>7J|H!W;Vb1PaXZaam<+_g~?|*~;eSes|zi)xljSN?P>^Jgd_a1OM zysrI5W?wKYvkwAmJyksW{?VUpL$*ll$UWB+=m%XB^_o^+gDe>6Eo*orvRzw^-xDH; zyVrr6{Rq+BB#cXU=!91Fy*D4mEuLw;H&iYd z1?eSFwu<-ZSiN6xvb<$J7Tzw5Ika(BAT7cQO3*yCm;f!92rZZdEr1R@=%MFF_9=ExymvHO08ufvY2i$7q&O|;F})f5UM1zO)0DUY z*srT-pGS=-FPgJG)Xu=i&H4TU84x^vHUSOnyw&OM%+iCZPb9m$e%tA;`kiFA>RXM* z^V z1G&4>U1XlsJ*954yNTF~Qtnj@Ml9xZe>{udeZ)QrRzwF*{w6Y3_Ik%mU&c81U@h?c zA>jHB;QNEX`C53+n$Dp$KF=vO&no7y+RS0m!cyjNBXihG?9h$Op^pFLHjkLM%i1c< z+A0^ucqYcZ?`J-}lYG^MeGUj_jdoeY%7ZbC4!M$cLraIlTM|npT&*!a!=gm5J z-mHV??K@-62Ns(B*E~3r6P%&5vT|V=YtcO?SckqZ;CtpQydGInH-u>NRD5yFK??E5FHx%N&SJaAp>V<_TmzhQo|S@bn%kF&} z?BC-Z&E+%H8{K8k^p4m^y!{DavOgND&)nIuKgM~=#x?vKcsKkTXTbi~n=`pHwm)9! zJg|J7Q*Hd1=;CJ@T<|&qeh2N+6W~`--Y@%f>&B(*+1EZ*mlz^8E5=#&!{a*wF%Ylb z;_UnJVqZ=?!JJQ`hwaXumtv4)>zlA3*{u1)e}?zB_14_}3f_CK1vkL`IL`u$-|fJD z_c(vOrT%rTu|xci^P!j9%+}wACfKv%erxl#v5VIBUFfW=UDe9zTBD~rL3V8BHas?G zk9~UhH-~rbSfA0zIp5MOkV_YZ%mzSHs) z$62)SM1(Qp6${a&zncNi^2QoP#x6A0mh4z5voATjl7+i>U1mBux-H!L&PKC~*gbEM z?STCp%`UQPSbrMbZfI>JZ=eVEWp$|jfDUzf3_4WUM&h~TwiBBxTZwdN=*Oe#v-Kz7 za#^f(<8J})ntMMquc~tX{`$X3-d{TL1Iz27A={=pGg{p1K3nG=DAPJcODc%Hxe?pI z-pcO%4|DG~+_IAAT-VU}y*$(Ime#e<2eA)&*Us|?c)n?FJI|Lkt>RjGHSj4KzS`+d zFT`d5t@mQiOX-E=v z`SwIg+Ygwt*z-hK){_oPJ+{rKpeY$(xhN_4e`w9=EHyV9Cp9@82l*x9pDj}C5_B7ruXu! zl|jm*zK{NVGHO3E)P7%9sLqoUT(@a;>zd}(z-HQW7nBeKRg2DFPP}rIYqBXOf_`q! zM82>#$Emh*ySW#Od!z1jSvDMh;WwY$V$MjPJkMFXd zcDMV|o1b=(^CQRwQRD)A)ejQyjvrYxSu(-WQEb%~A4IDvgsXxz&Z`hTs2rxrALKo2 zdEXk|yBht1`0?Go-&%MfUU<3b@xd6jE$BoCbgdJ*7UbC-S=uzb9?4)Wv0*!wXj=+f zX$N$xGeo!SvvKw!FCId=JI};ESkaE2RE<2B*JsdkeVh0V+QUFhK^(r(#-3_FOW#|v zzp0vfYV1!N{?i1XtDyHaS$+XrHm%>8DQns3Y)`-w79|>**ZxVe*>m@nq3dnvfDU(t z=&+ry)@o%u(OKX3J*VrRu^9{ZzXGggptIh;VXxu+Mt6iasCSgE*S;3GZs_l<5%hN_ zW4sDps!sL0E{_zEg=M=D%#UWf3Ckgt78inf$-urHH$TtD%Bq5Q(fc=`?{8QB2-|Bi z{|dd_e%%bkVh8zqtLrS+Tu*X7(huq?V*A%2PaJdStw?i*J#VfUwhL_FTy-rTxOS5B zwmMopzl)}~GtQFAQUjND!1X;@`Q>5cm-T#Z05RI5J8tc`$;{|Fv>`^C3QW zf`47$UohsSGg9LFhv0>p=Sku<);*Mue^#~_4W=bqjE19CpG%1CRlJ?z?i5oe{@oA%zR;MvgY=?S+})e+Jy3Q$GH;*)+-?JYmA^D^va?Sy z7eD5FWurXJ|1#bUoX!aAsW!*1Hrp#Rj(l&=YY#DaOB&NF>tdztNw?hCAM)gvYzznI zf`2w=GnKvLgrPMfuls!0w_}8#S!H4o^cy-j`>%0Fj7=3DJ>ICY6(yC7a9$@fIg zj}Zsr;UkhP;}LIJ*_eKoy?yiucDdG)B=)OZf6t^-{z@=sD-V~cyWJ|9!P%)VwP=g6 zsfFT22wYeigJz>YkLbM}BObKHRUMeNd|6s&%h<$9569lh?rdq8bhw}JU2!4d{9W-f z=j`zw*7I~QM!@E;!o&8>#?A~8e1wAU`<6qmwnR3a*%@`7Rvo~hCHyUL2A_M&>3lB2 z|BciK{4J;Z^`ANLJZInG^q!52YCArwJ;N6InltUuC(>^<^vLGYP!s(-#doCM@_ORr zov=Sompiitl0JQWH1*c;p42ago{=9^yjHz`!ud@<&&I519o|oq@+U0oxEa2F1=dz9 zMyD*_MmB!B1$ipXUkC8TK4pxa|5hy1IW)A)WADF8PTp6_oWZ$HX5&2P*%^Z^sc%WH z%6!?Wp6vmv~yx45u?jI+c-DbwDsG8>~%eJfVm(4g41com-l@3;=On6KqU#W1bE9xm< zXbo|AMdA86tDDy_w~T6iyu-P^VLZ0`-N#%lKE#3Nm}~o7k+;Whf+y8lmpxf~+obtN z{2nktn}zJ9vw^K=fGyc#4iZyfW9p8u_ZfWlZ6Tk%o(bL?&Z`zZ4PFxsFVqj954qEy zyF;$OGfs_!&%$hkzoh#!S8(9@_$eae!$mjWE`n9c8 zUkH2ah6H2Qupdi!54kqgO_!->OZeP=2K}`*0<9qlz33QgZAo$rkcMH!8(bJK%Z%y+tOHTti+@gIR{tHV}v$=5Og5~I`;N>jva!J>Ronx$Y>}}KY zcd!m-{0fv8EUisLQ%3MX@kaRIh1Ld^ zgZ6V9=c04XCvIU**Q>-*{1_SLpR;;!D|YY$(K2KI_GS_rJ2zSVAo(WLZ`*g$$d<}+ z_HE(54l&Z-d-gNmH$6fdu7k!vQyQlDc_m)Rru{s0X^WHW-o@XOPIB;j`~~I7lP0!e z0&|?m94ARnA7K{{+l7n8hbd1;F?jOHc|~$K!g1TY@6m8vb0hS*=Z=bYXzad1``wex z=~t|@pI_tGwha1I6t|_d$Vc(t&7S6LUC8y@*Un46nc_@6;u-pG$&{^Qe^h5Jj{mpT zaftKBuC}()#HN&>7b-@9c-#l}0wWLan6@d7407S$L1<%dP3tr3|imktb zx%~rsfF1jhyNPR(4X)6B{0vwrgnt)H3&Qf5_FJ~_r4Jn{vHo+}O5ssU)7U=`M7*Z& z?MXKG!bcj3>)aE?|48f%bye!!9bNl%=J%N#^V!%J{rYW%YCFT1y8E0nE6Sm_rx;87 z5R_GPX411Xm!Cs}+9qu-U0Uf(KM--7uw`%7JmTxVyfJgbq0jDGRNLH^mA9$oFvA0< zQp_#G+;)DU!^|l;H1u?8k~66H+!t}Wj`+YkZjb`N1|X z_`Z`9UXm|!4!%t57gzx;*-2gHurKpCzRctJGLL6{nQvr$nUOYpnH`-0U*=;4eVKjK zZw9{cWzHT*8aSth7rxAjVPEF#u2%}c^tdl`+?VOVf31)7lKV1?+V$2p57#Wko|?(} z)?P$!ONV`#Tnqa$C0hh-7+OQG>>8u^Duc2@A=}E8XoDP|Cpt8`WRf@(D_d5$&I-i} zloQK}je{5zXL<%-y!F5V?^}~s9RI%aS}(j;bBvp}CIZ=i7(-t7Sin`X+!yi;F(|+Zc^C%?a@g!D%2yLw4`5 z&lh|%KHso^Hx~nuUpqWZD=sST09?52eu&Eye=&Y0#cTb_A9J<9C4BNF@g5&9R8z{2 zsXGGCd~ubvSy13eeH7LMa;M+Pb-mO;IV8ng0{Y_;k^^d$B( z?Do}Ds0F%r`}LdFUqAbnJ?_Gr)t5-MY!t6VudU&pbE*T6Y*4UfgToH=s{QB{pska=KnLKRwlA9zm>2tX|cc6Dgel1#? zgJ0EFK8?uQf4osHx?$**z7e*+v+pPxc9Y#;Kg z@J#116q#erB1cnlIZLCR$<-q3^>Jo)ukv9Bxx9c}(!@E2BSN|7PfA_e|V5xUr8MkD;txRCIRH-Y;!D{Pk}b+h{AcQ@!ilgMOUD za4!4DzDu6FOFn&s-f_fsW_^QN^LXyYc<#o<*gFfwjfx-Ssimu#5p;EJv*Z;M z504IRuIjjWI6 z$8!*yF`lnhpjRw9-n*8s)`31`Wnjr$actwtYjF~5O^;Vp>sdmD7l>RJ6+ z-PX#G!h6XgiXD;eWOcA8IG#7%(QLM*Y|FW zO!Z|n_{?}NZo%4*dH;QfrZC}K1ARo~82)b6|dILw1Clan#U$f8Iez!g& zTO{`7av|%X6CN?Xwgq`|Ji_lY_Ku0Zy(5LK#pZ?wQnWZy7#_~xQ~1ZY*&N+HNO_V z>DyF7tz%Ow>#mpQU_bV4n|@tTTcd3`w(*64b~m+mLAQ3)DKUWqrX~nn`Rz!!=z?od-T~t@8kV==Z&WjCVXTf8fMfKX;Gz>mKZlQmoV?9@x$j}O;n^=ycl|l{nx+%T zntOLPoVk}VzQJ#L?tnYhvoK92cmHjaN z32PYt?q3dVR(}YyF4m;~r&*tLV13p+_fjinJ@qKa8~LH~7qk|giQQ|T&yK7uZ|lm3 zeQH;ey)1}tvaMWftoYlF8xGB5SQdz>&N;PrZb3(>MJJJLfZcMl>ZYq+hYLPd63?$Q ziY#p1IGwYuNKRDl{-Yl9M+{k`gnR19>#Dhl{xvuG^(8F*;J#VGF%Dmo^8@KOG^1l>Kd)^*sL$q}Rn4t@?jWzGhVNVW z+zPyDY{^VkuhRcy_IoP(zk_-y>JPdF{5TlA#-8Zfk?ge+H&(Tcdwa9r_1>NQj*Pa< z!KS3Kk=f86S2fo{Ti0=ooD`EU8$1WApISVqV9pun8?|H}aPY4kVod3pjiNhz@1@sP zaIeC6Q7q>n#kr;fIS)rPSNwZpjeQ@l*OQAy6&?uoucUfCL7T7b%ic2?+b8%5PU8!g z-Q$jCdZGBb0X{8TC#4-f^AvDyFLgL+RT$_rIbqe{TE$);7;x#r$ zfcpkMAB7J+HF0Wb)8`g$sv}phg*vmcF;HW+et3LnNC`Q3rPOG&HNxrpvGjoa^UxXf zX^+qI>%c7GyS=v$Ue_NjHT^Z!|FsYP>M@5{mL@D>UZ)lh+e#l*?z#NAnp-da6yb@j z9TUcr4ER|4P{;mq?7q)4U%zj-U*FYZt!>~&4L#-2vo<@7*M|RF-%l~W1U=^E`_AyW z4I7f=jSMy<(ak2V9cFEP(MZ+B+O_pw)$_2nn?C5+nC-~;#|zn!?O18%nLn2A?=v=O zYR3$p2k-O@J@)0TTE}a*J(86-n5Ex_-qi-^b`N{NIk9K%KnG*MW2jT(Vt;c7B9(R2 z9p)N*Lwm=W`g;dWs$k7QIvqYY=F(06NB2zj{{(B8%{!L!_Zm(oe z{sdpPkU9y{V z-~OVpJx06cGS=*A$wBo>^P+Q0=hNfw>5bLwp&yrO>3%EuW4+8}1-*(ihn16^4MUN6 zrpKSY|4zhtMq~9v=9bPgW2_t=L+~zoWXG7B9b=9eV~!aE{yb|LdqaZL)8a4X31@qp z=e+mOyD{Q)x58ia9$=1~(vdmY)^BNLbDbyr4f(t+Pd<+!pI1?PuMS#L2Y$ALXNeo0 z+MgibSu!O#$WO$GgDUZo-KDeD2mP*>n~=}F={cTHADyPtx9llX{EoYGPg#Xq+Af$d zHVzy$>dhB`3B?E1&t5pA zWqWk{D!!LeS5`II8xyh8lGZP7EP3>~&(iy+RL?up{aQL}vSZagRJy7BUT6E0j9AZSp3T-ORpK zd()sfvz%MJ366;^(lfOWP21E5T$*Qy{c4Ba)IKz2lNVbs{7j7J*4;SimKe{O=RKaE z;?L7OH{E&dMc!Nc(2Pyq)a&w}TRX)(H#`Q+GM z$FEi1knFawb`U&zY?reygG|9*bnjg4>`U<{I81R}x$D9BG_KDIe%E`0a*%z8@Vh4h zF2G}@BWS!Nc%eFVJ9(Goz3B+PGxy92`~C>AU%R-Edj?bd={X;Vb8!P{%@tTzp6(@m z_aBs9(7Q*i?*Obyw*CEi$>t;Q>NC`J5O0!Pr#({ss;9ir2~PLN*sBxN0I)G?(wEhb zKs}wwXDmria8{g&&Z|zRK8!<>f!Q ztED`?t@!p3DxS@BSQF}YlcL!deGWgui&F*KYta3fL_lC4^ z@gA-8aH-8Ay`yKjjdu3s=XRbXS?tqL`t{NSJ5Rp+96R~a1N`K@cs^X4QMCnW6wl>~ zu;HHc>2FgocPq#H*pW8sr&N21J#DGH813ZW_dO-{cbGIh4}$k^-iLMq>qzuoy4Bj` z#vy$DqN`vb`afW4Df-3&nt!uC4c~Nm0ppQEgr5&Q%?msWQ2s@5GYM{rQTOrImBXu{ z%iozXd6?!J^KtKdegS)Y^#XPaXT`(%l{;@W;~klgU_FEUUxT{38g1!Oe76$w?-ELT zYwL2F^FO(AM&WP~!uSZ@3qC22J^l!u3H&xM82;1Yowo)Mh6iDgUkU^5V=2;wcZwY8 zSXH|7$w^34G13%=pZNgVh7w~9Ln|sAz7F~Q%?xe$w|L$=2XQ=yb|3xE<6p-8?Z2{& zVdqslZw(`k6$rNz>2V-WOJ-yb|1C4;p{a0x2lBOnv&U~ozCM|eG5meF?@vop4W4H? zg}Nw3TBahtr|}HTV{5Lx>vpsazeFDrK6>q4VVvKaF~vjk*as2+?|`RS&YAmBra8#V z!kOCeqUqU4W6ndb&t~z@p`LCVbiDEy@D&Z?-Hg&RI_|gq5_Xx;2`Uei>n$kPGYkGI z%k_a*UhldC=|JDv@wfIWe7oWq@%|DjXS#Qn-qwiqJ*2^mJdsYh@LhHn+AWN!_t3Z5 z4`G~XwkSKSwIuE4vM1B$eR;@p9@ekuddfu|EGx_#&WA1)U><%W=HZ3zS)Cuj*s20` zO!enRehX1wCuW%N8K5KIErP#FtOZTVn3VrNa9fm7)LiWLo%$9p&L2zj+dhZC0ljOSt)AN{Y%W;h^1?U?6JmPm{G7Le|))J70OyEVV z1BtT0yDKZuueii@Ex#3Z9OoEki0`am{+s7|hHXwShhykF)5E0eoc48%H7kcXy$3km zocgkVj;WsuO*_SN!D&Z(d?9J4^o&hAnN5^-ivMhBH}Xhs$ZvZ2o`9}V`BJ%J?AP`^EPoRI$f3AM{;>(?85dE~oUQ{!mVbE&kG zbLd0#-3eTy$IvgQo0FNiCSXq2Q5O8s^#y$|A-B|zj~!2pO&84pXnjTWnWNGr_ur@c ze}n0oO!1FR7nxDo(!-_lqB3bfxletTpekVB(rT2uehj!qdANSLDVUX`UfOO$R z8NTN?3HudrP20BY95SQ5`a8x-ixKWWFkgNparn6zxW+bPenIB1S67@_fVS^M5%$#a z>BD&E(3A7={yY=fg_DcXA0eFMxHeCgVJ!%4!*B4-uV3SOd{KQv>vnuk7W=N7|AD>J z6!+`cTV0KIkkT?8{bCu`bm==UG*&yUzHRV4_)oa5Ucxs)sJ}xUckRV>eS8-?^=vlV zgY~u5&r^ShwiNGU>7!>q=0mrrKRu0j58?eA>3!7j6INMSsgCFQ3msO;c}}X_#fgX(Ps%D*M8-j<ty^1fhckVsPK8EkYc9DDG_Mmcm5N_8PZnH+Y#rM!13W1=7vc zBbnlT>0{g2^znxnW8obbN6xZuobq$7JwGn&7bm}C-@kt!_KwG)H|cR5g1#7g#VKAL zYb*%=W{6<`^mP5V%YfcL@>(DR?T~d2?n#X1MM_6UO{Gv=k|AHu;Cp!cm^NW^d~b)zm9%s8NK^$ zTI=+?jr+5|d`3S*V^VqlR({)w{9>-V{`rj0ZGS%V$adUQe)V)ddvz<;(+;(tx_cwg zkU66{mVoo`TBaeP3E8a z5v(}p|GFbibYQ0iEA)40FF+$j7tUlgF`slc(OrbqICgLOqyF zq(euxr;q)OGM#rNJ4t&EULA97LciYfz1D{AcXc#$pZ&dDrt`d)>p!=*>XHlITXhus zwvYBc6r!>{S3CE=-x*;ve)`{i+y4*uZNL5nhUc$R&p}n74Z`~88JDF$lO2hu+3z5B_uqhA?)Zw>p+(Qb-+YuIl-=H6QJ zd6;wETQkBwHbL0Go*?XIm{I#@&n@{&wPoU1|Uh6X4VFHQzI)H**so%OF6CqV z;lbGRMtob)=kDEfV{YN_5kBt+w2$Xn(xJ_45AE&RQN{Xb{nOOQ_F&8cy^-%?p#FWw zo-yx;?@>CAbvxr7@y2teG$tFJX8ArJv0oYQ^D*`ee4WyU`~39H5--wRfNM7&>&BO3 zzu9S|gX(M^?LEW!4Os>GO?W2Vc;^3Ej78F)`S(E9m7W{={(p0=ud zx!p3xExtQ-^%mejn%jfQExzMDDqMUA{_2Z?gK2Ip$}P?D($l*D?y3Pxnp=l*yK9Ww z#c;O^a45Gluf*67Ws@8ykDVtqEWM|rg54L|f%n={J8?RbFI$Rrpgj1Yy=SpI~VYh(Bp=vALE!EbK! zbsfy@7Wa1z-8q5#rKSv-js}$uIgZD@>3=srw+z=&{?hvAn&({kiC&&N+;mOD=KLA8 z&v{ZE|}C^9!qCRgl=3I@qbBA*~u1&_hQ|Yhk5BGLZ{wr`D zQT~m1mo04=9zK3u2g2Nx|L^+eJp8I#n-+cjt|r_UZ7Mu`Yu@}_pJ+mu!?#E`O;~fu zn_45y?os}7krq)txx+VniprvQ6Q#$5bW?d4aaFia57HdQgfubE^QjFuy&ZcKxGa;? z$-2oORX4*wmgTz??^(@VTK@^Eudh$OUe=c?pXDesBOVXZ>v`ewSOMzjMx?=uaykyP zr7v6+6Lqv**3nme*LRpuN0g=pq{;BF$6TjG+OB?ANd+_I=N``J+;RVMvDVXgWoGA& z@0H@EIq#(f;(c<*8nF)v^9_9O zcvi(i)2!nw?(BH!pHGKoBa9u`d(eP=xDAJ9l+5D=eJ@}=lGe;BD)KuUrkAXJs69Q6 zxkegKJz7@+_eGxcG@eAf$B{ZzixAwNCOn8WVb@t&f-(+GdZ3k9N&HL3PIx5qt*32$lc{Y86ryqw!tf&8c0ovJuI zwX*^7m=2-d_7tt9?*yA(Dxm%rYXt0;iXPWsE}w+`9nb-|`xWdBJJWln?}7a*x&Q8c zj_gbic0czM@~`54t7}V)Wn;_9C77^JWAoVxww7JY8d(Rsj9tlYWp}ar*`w^U>{<35 z_7nDN_6PP4rgL`iV1C&_9Lo+KTwQFfAu{H9X?DXeC>_lBbSYIJo$mB^?wQ2P-L>yLuzr zzP+HNZ2R_^+qY}m7q4WRsi2@>>I}AM@*=iq`l3bTsgaui`W-}SJ|NDYU{A5%DpM}( z$bJb>#~^7c+E#oeTF^y@lPU?MF=oIpIPO>n77}G zJNDwR8m452=#{t*mhH^ilg}nknMxrn#!*r-TOMro>;)ApQ_EsJr*O)w*`1Y*%$`%qvRHO@p}AOvT4(2%$Yk+pTD4d;iAP$DwZx=zGCI7iz-($Ei0R9Iy(p7 zR8*YDGPHuyxl3j*Wy@+VO;$P2FcnRmQ#zOBYiJvoHRLc;9dJr34r_3YbupNVoDOSP z%7%T!YqlF@xY_`r%lbvoax-G^^fGI#Q92E8x9{NA#8VC#jSSy6~F$VWGa&O3y z;Gmr*7Z@X9dm7?5ha8kXBRw|vfTIjD`N6x=8Pek-nRHUfVYjOS=X8)8v)|)dAS5Xx zJ{Or&98&?W)9=E@jb#1d8Aydae&#ZPHO{zutE?xXO? zj@%>pA#zIxam*5>@kla14!=80=^^)Y1g*X>#c%lW27O`556M&>t1H9da zDGzIvY}EHUC6g|rFJ$YLY?RjqB~yJ;nQc@u`g%s?x=G0tH?@A7m2Bv5 z@(r3V5)8;K(w{5?8$Ihzin%cTu^$m?p%`L5M?YsAMbar*`-M7Ezz$KSncJT5;W{cHk zcQ{?{UXR!34+Q%{;YhT9U@$gx#g&Jzy8rzTeBi+ke(1!>haUd$BaeRMV;}#-W1oED z)RUk3^k+W%^yi=X!WX~v<*z*ZwXc8kTi^bl7k+*ErQe^4zx>Lp|NIxzkyPVAlWv@X zw`@%l-ooicNx%E{Cr{6P@>R0_EMuP`e(G!V|LgScO&;?X7@bz-YNO1l#6^KOQdy&< z_oA3DsFXz+fA}LG{{)Kn>CcIxefAqvuHX6YbKm>^4}SQgAOGa1Kl}MFe);?hzxwry zzxnO&sIdR=$3Ok~FY&}*|Mv3V|3St6+P_C$M`k$t4MuyvW2f0m?Du#~<`3+T>`!Pd ziqJw>*`L{8Fe*u~zp}rvm)YMjvV8?t_H6bl`zQMsdyV~@jWC3QL1_lh6*IB6ZNzBJqq3$kXcVLckH?y<% zF&j$Pfzk}3Jo}(A8PJ(b;U9eOn%nuXSomqWc4vJAe6W%9*L z<4af;uVC4HDa+x@n29fExqJo7<13+Um8^iTW`%qWE8=U}B)*On^Yv^p-@r=vMmB|S z!e*__Y%1S^k@i+Ljc;Sq`F1vgU(9Cm9c&ig$!7B^HiuWUxx9wWBcd%8wlU>BSSS9bq$E)_T zHGCgi%lET&ya$^$53mjV61I_F$~N)K*k;VWw(!f@R(^ii+z-tTu?8N-TrI+yc$78se%8VVSSuf7Z9K->`4HR9uV8!l zm8^pwW}W;hJkWYI>*hz;UVaVR$B(l8{94w-uVV-J_3RS?`D1cy)4AX=^7~jnzn=~8_p?F%0E_Vtup#~+G?H}E1Z~WP7Un@4 z%b*$4pp*H~$)(WAWzfl;(8-O^$qmrSP0-0I=wvl?F$21o2_4j+gIUnQZ0KMPbg%$A zNG}#Hf(}lC4i-ZPCqoBIpo3GOgQd{HsnEgc(7_qd!I{v%Su{w;$3Er$Lrf&NuM|CU4lRzUw&LjP7l_b!4yR6-wCLm$>a57wfd z*P))*qh2?oUbmoLx1wIRpu%KR9@J|G>a`Q~+J$=UM!oJmZYM`NuFfW~wGjl&o(QrO-=*lqT^9czHK zfZJyGtpOr#zgxsz1SJ>0JdHR{8~-z07;GvuQD^@j_~mI77X31`^ZhVXcoV-#6Zpx= z&B@Iynp_CZp!11;nu%;#QEp+bNTGB!HVu?&vZ2x#Uvjcc({nb~zfl6LDBTsEQ;6w2 z*5}z|G$Uzwo`i6?2rFeyA&dMMAcqA;?#UE#hTwvn0?lOjBNO?{q0V3YC=LpdQh2WX zQ~4Wy(wRy|YLTq}(fK!A{-^RU)0+BE`A2S%|3c(6l`G?%7|T5(r#Xs^G#RCvDp$j1 zqWY)Y$+9Y*upFoq=r=n5lyB02bT;BWAE)Y>T*~@4axVQ+deiD(lmK!J9TvKPI!@2O zk-LeRQfQRgMEM`@i)*=snYgMlkp`*-Q_jTsC!ewuB%d$ehW#7Le-`Ci{wO}^f0p31 z`ZscrS(F3UhD5Pli2je)5+j5Z%j-bawNc|_Yn)4__~>WEY@DUcjI(r?6SaRb99hfA zds6@D>Zj|UOrZbShPxD}@}DwGon2V{r`*$-)PDM(o_{(YpMRr<&&{%23^!-XztDdy zORGb);PM>#7suHAlc5ndrCgRWrBvFSz5O4ZM%qTxpzZ9Dh1BFT<8nG`%I7{JT zTKOX}cQ;;4DE6OU$7HLdR&uAAZX(In;zru|+KIK1k zrCeCPj2scChe9LIR2`B&q$J}kJwL{|VQ1)fN*;e^gem>X*txbuj9tieMbWu`6Xl*- zUmE#{-+yBQm=>n4o6UO1t}0!(nDyprumeo8$E;U1gMDVbp%v^m>-8Pr5X_0gX1%o& z+z);xNirWt$J4#+}o{sT?5!<)vJgDR@j3>Fz*0|t$I%xMcIa)5;9iH`*aQwZkX~@efpP@L zU`}jyf*W<+=G5z|>JhI~Zz1+O^{Q@g)TuWS_dE6dZLM(c(z~k~kWQE0u@C;-F2n;l z;L_V$C5!S6x%9mqkRvX=k=%oYc@*xuA;(;mbv=T0!9xhI4zk&;SG7@k+`UVSgg1B%Ta=s`2$_f)pEgWVpzxe?s!K{dp&wv z2g=Lm(OVlJ`yrEgz@vANKX3za2yz=Z47n2=g-qe}!ynlXkbBY}FvVl`BK{U!FJApX z7uf05>$|~jFUkSz_o5!a0k7Up?jl~jf!syCdNsN0_v(#%!A_rEPvz-8ji{d#Q+*zecddcXnYKBV0D`%w=t2RC%l_3qaj>AJE8 z^v0TYlz%|4ZUXxPdV2>r1asnWK=14Xn}aC--NcJkk zYX*Daj$}XV+rWW{-bQjLqBnPd!x6o{6C8;^AHf3=y>Xvp(Qe0JPT@MEdVNnf!j0-3 z&EQZJeUCp_I|Xxdl7%X-qi>W^h3YE<^jE}1?^>EK;K2|8q_-*_QPFFUYCKG zUR90j-aLf#AAtQ3?7`6?w0j41JNgwWrvRAxi-?lV7Bh7}x(odcnfDQ+-wA`MUFuin z4yzgUx=SY}b01i^R~!O&)KsC_hr6CueL$HHDvl{O+t6>d)#?r~`457reYe=9Y*lPQ zzen~ShneBf!;mT7s8faSl;%#CS>IQW{DA2?aJr>CH@FJ*Ox)4asSkh~DZXAAZbY#K z{c1J(RpREZYBU$JoWhD7=x^Jq8}tD%g<}rL@XbLPpA}5$v?=aY<{rgf#XiLYiY=<& zc86p>Jc|7=-;MU8PuYhR$G{zEXNW1jA;rBBD)$b(AKcYarT0c5S64%wq&qLh1LWSS z#se-e$zH{N#X-d(FpV257&la7+(1m@2OGEn?M<(e{YoBEY%^ObYpbetC*JNt_2t5N zgX+r-ZozoM3vO(w)}zYaYO&}wNGCCsdoP&W1uZh1kVS?w1apyotMu=(N^>{lZp7yW zH)H(L2X3gThW>$}2WE_Oh%MkogdYM^xeS0QU0#Qbr_W*0Dcuop7o`u}fPNwdu7|lF z<0MLVP;no4Pd(xTH&u1$A#hvc9^K-CyM}7r1E%zZz|^03-7>v?jI-Kn>(ISQ_x@gs z=pO>TDjkr?eHcvXi-6k@uYt2t=qw5?*vz&-*up>JHr>L-``!e(>HN$)u0gAz41XVDjft zY{vMP+BvIY2e<>{U1HKZ54aiQV`6gWu|Ted45o0rVA30}Rmwia0jssGp{54<4EMNB z12&AO(T;mC&L;OU#Xbkd&lo=vleq)qZ;Hq1vWoI`DeiU2@H{SSWi!SHJ{qTEJSw?G z_d^!tK@9sKxCi|=G3BFA`5#g|;I@i!MXXn*%j}WyTfj6<^D8+Frf?%*ig$?2sl2>0 zTpO6$Q@dBDuNN}qBcj;vli`QJWNz_Gb}9BK_WGs&AY>}15SYdh5oI2QEUtUy-i-MP z>74~k>FEQD_97_5u?JAH@RIq5-Ey7Tu-whd4`wYuak!4!{cNTw&CI0B}40yJ*~2f>|Az z9Kg6jy0`b*^o}O@1B-g;wN;WF_DFlDAL;Fey=}T2Tz64$6T*)vj>c>l_ciJMA?ZG3wTt|D zJaT><15^Lt@!9p});h_U&%_{8{a7%+Zo&M_0j_J?rMm=oVfYUF_IeD{;ScjmkK%xs zccWj7%6RPkaJRQk_k)|kfdPsa?R!jyYr(vn%E@nbRMNN-EZbwVL!>hTxeMmRG=BD4 z972D5Y98;!JieuIx9;2!ogzPW#a_jJ*o*c`$peZ9 zVNUb4A;mt66Z%yn!4>^_)Gr*(c4dif!OpxFaU_cEwJ`F2!!ey^6hxeTsvM`xJ+W5nouz z1BzpchrkCAAF+tnkNl&b?FEw@0N1uPU^&30>+Q$~n92wH|Iw~A2qt|oV?B!E@e#wH zCG0|b(~W7iEVo`-mx6f^O#Z_pQ~Nz2%WEL!66;hk3)YpI8qp5BMLn6ZPDSG_3z+K7 zg7vA!>N<>*rEKk$?(K^Gio=FE)~{$C%I=ZtQ4u9Ov5rOQaDnS#?+&>|z52qEhp?VS z>GKXsw$l0)WDi)3H^Hq~zw&{FKAC%k|3PJMxAcnZ#;-Ww>=o^Z+b!MsJO~fhQ&6!j zD$Tu$ZCD?paLrg3Ylb_E*;84Kb`&hawVFLLy^yP0o3VUL>teXxERf+Y2B!5dvlafa zPDb3RcrVxwnZgg*upS0~5pWOMf3qFyZFQ1GdD~??9+)@7oS4dCkhmG{93H(E*KG(~ zgLntQEeIzDZbQ24PU+w5^5~6NhqHidtM_Am;}QLp-zDwCiX$-ZLi&i?!2O23Te^$7 zJ$iQ|`YAB=n-;7OQhHppP6+ow@a`tbR2~ts2m3wJ{}9#@sos5FDf_XWNd1!q>xpgE ztyqqe<^jbanA3PPtmJ;kR4xPHcI40Mm*wpA%XQ0M$dn#GnA)?DUxsH3NOmc9W1Vt0 z?1^bTGN{aBkSTpbO11})KD49Wp!6SvO!?^tAAmn%@*e{?_aL2psArT<4BQ2GR$2!| z{)k&J4|RhZVNOi>@PuTzKE-~;5%LH9iGsV4e^=O3N$aTYuyU_B9G3A7fcL?kn9^s7 zKo6lWQ82CN4uC0N?x^(dRUE~-ESV2PJ)*sjDRT?fY3Vxif+@T{#UW)LQF2sqOz{BL zbtzx50a+i`L8K4$WCK%p4lsr1QS1d%{-R(S|9E0DeNn6nclW>?Ozy2%AEtV>fom}y za+$s2`tvCEDIQX6$2xK|=KsCKwJjKTfH7{hTfH(JirqG^Snu}OWOxp&H&?f|=pnGs zGcct)=Jty6v3RiVO!H60VZ}Bt(uMfUJ{gWhvEPUFYnTrx+3c6$coj#no=x$%Lo!^S z;s}_`Enyj+FD&hy5xLIo!owmsFwd6eVS}+AexMQS4`AvKVqi+|5SZrw?tbYntk%n& z1Jd3#g!OmyuS4JiNUz(B^>eIu_nLjGoUtB`^>ZK0TQSZi7S|cL8RN~MayOuO5av{F z#FP(*MY7)_!*f|B`>fJDq~r)>8eiIN(%xZ1__SUIu0wc!JGizLw~J)>W`|F&+SQ77 zP|6m?c5ofci7Eb|Vk_hTzx3x+?DG4BUU^_&3xC9-Ji#>H34_~E z-UGz#g1d+Zm4916rq2_Q;RYd#{3+QU^kF=S^@Ki|FBk4>kY4nHY5l;8`x_LW3ry=) zZgszdnDXt4$Z$ir|3UMsu##<2Y3~M8dHJI%e#kT)=>v;#NI&Tj#&clu?*P;N7SDi; zw+~F|34zIefOwx|^6$g_mbN;SE11&R4?fU=@y8JK5$k|qFs0Lp`!V$x=Mt0b2aEDE z`-T1vL2iJ(%PQHexL2`PamXs&4=UMWld@B>gYNGjd_0h;?}PsMz$6F2UHdyRAC>N- zkSRW^OR^12<6*m!or>LxJ&Jvb{fdK%`xHkM_bVPyJg7LPct~-d+b{apuv@09pJdDz zBE2%*LtvVB2Rtg@9={m>nQ`BW=3RC$wI6;+T0!eClgh$(ZkGbq;AiOHV}_X8U+uO=4y>XzvWE7|3d@dUtB zE>5qs_bB$_J|d;Z4<`RXV&o$t%rP$TN%NRuYXITVI1t>>j(C;a4<`TSAi~4=#~zY$ z7)@SB`VW5q&P4T)Z6#%#`=RSj{(IN+}CW_hjm4Df71%C!8#r> zrN;(t+`C6Gt?xOMJEt-y7VCasS_gC~*`wI2%!$dJ4@}_(!4xhrnTNoX4q}qSBr7Jl zA2RtH0FysrG9M&&@JCE?OtHCNniG?`Rk2;MOW6~Xy&Fv75|iAkWMY!NV2X#BWS^3W zN%kw5nB)MM!XqX*sO*VJ4l5o|=EP(^1SWsPB%23RKENbf6}yxa{atRbQQ4tGf3)!3mEQ#;}Iz#iicEAGel;QqTqu~)HQaX@j{ zNAJmG7)MI?F=E`u7YzSHkSRPL?&ni@K`>o+)`(1(9ryQpI&q&1_xGuvwVA^rJQwcs zH&^vwJQvohaDB&=xdZq8$-fIs`Eo1SL;C@6Um*m;?NY!g(>VaS9_u1*>@R3+!2Mt_ zh35s6|0tO5FUFL)#V!3g6%S!Q0=c*K(*6a63$AWNy1``b#6ATY|AfHJNPpO);)P7* z5L2?*E6vT=$I#l@iS;7Hk9ljakTK8jNqfJL(O-Z&vHu}L?npoUNGI;|x%?`90m=PA zEEZ=jC~a3uOD2GeD`5L zMF;j%grX`Q?5iMqd%u(|*k94n3jI<0Ebu}MvERZoAnpBRk8z95DKpsOyeBCQ>H7Vco624-k6dj*f&CQKQY21rtpT8OiZ#F z`$~wN#MnO)=v6ZInNYfX9vP3*C*ya4DLi74KA*H7fK2@!-e(}n%dXgg{VCKx5>x-^ zROYroq_VcX3+on$2m4ogY5xlP6)%|59U^;LX9&XoZny(e{vFugLhK32c%qQ2P@cq8 zZ_cnZw_@K5h35lPczwiFe_)aCsC4I59F0nM{Ys8OruvBW%lNE=(mn>Ja_PtZnZ4a8 zhankHuVNp#^+111W z`_(?2u;QQ@`*EO8R_w>2a)`M5MR|KX{n8&;m@7H#?ZpJhPD zh7@e09Kd)+vRHq$V_y%(X<;yh6D67A^A3pX$PT9K&I6`$b^E1xEHoglA7>cuu^u0d z4v2Y+*F31VwqV@}O!e&tH`k%Pu?&iIIDLa+{Oto%zKJQ`elV5ufZ|^NpqQ8RDGq_@ zew95qsMqb@FIcQ^g%Mt7C$?z~iu-QFl+Fm4(jAOSIWQp8(`$~&d8;`l(qpzrwpd~! zT{bZFM>d<>*W^)ZgUQ^d%>9aO*f&M{r~Hb0y;Ampsl5D3?o;gcN%JA!kjR(KKP2*H_YYxSegOUI zkVvn+PlXef?tR#oMe8b-m^61P?p5qp90XH-dxwNO&dj1e*VvG_Z;{LFVjjdbX`Z23 z#C?=Z%_{a4Y1)u$Wn_S5X;#txW@|QKo}<~seL9n77wbB?nhYmTvkQ0mnnSFo7ibO< zU!mp_?u#^6l=3%8ll^0{<`&oWWUW_(TcUZyyl0B$7vYv_ej!iQfzOB&AqCQt@c9FhS zn%v-WktWxbD>d2vt=1x<+}3DvUbX3Znqw`e|5eyy4u-?eEz;l5o9 z3-`Mo78dn)Knuqx zf=e`cKj%`-Diq=}%`MViRYLMg5kU#hzl@qBc6#H0mNHrLILIrmHUOt{X*q_p^A55 zSQI?3Q0^*}y9(v5LdCm6*{@LcE0p~TWnZc6E0ukvvaeM3>y-UEWxr0@uT%D$qc^O@{F3snDJ$YlRp#AN?G ziK+gU$^Kz7ll@-_lX^G>;{odDOPRd>rZU-|lrh;~PGj=Ao{l$$kv_~|vOk{5WPd)3 z$^LORUdu`LbD8Xy<}tPZn#t>ZKE;FfWP!?OIg|a|zAUVqD(>_=BHIc{0WWdFU2$^QEyCfkQfCi}b9OtvR$6t88npI*mgf4ZK@ z_Gtr?{o+O@`}a*u_KTaDY*)4@-ikLkQaZOWkLX{vGuf|P%w&JGgUNnvCzI_>6_fp5 zHIw~d4U_FwEtCCY9h3d)E~fffCi~Y0Ci~GwCi~SUCi~lFCi~kKCi}ZqCi}@YCi~BJ zyb*-bx0}gv$sQ)hIURWOA(?kF*^YK8?q;%o+{jgab_W8<#NA z9kEN9U-X}sF}dI8AhU~jk1*MvU&G}1=O~lo%4?bI=dQ!+J1HI4GuaQmjmdHS+wn#^ zGC#&-zjmC-cKim`EBdQp78d?)WO6)k6O-ejcQDx>zLUxJ{$?io3%rR)=;f_S-)>_O zk-pp2_37`-~FDu?tbq*@4NTDF)vU2D7`)LapU!gPpP;3;RT9c{o2>x+^ha_FX`@H zzP!?r+g-W2a`Q?BdA4E&$tyPF%aZtE#L!KAuAeOQ)Z3_yGkO=`*^Z2}Sx9sB0>NzK zP_CtTcCX5wUR;nf-qi#~;~kAP(YPtsIPjfJtZiBIikmvw3;>*p$LxoLQQi@gCAF zafY)lg- zINemanGU=Ue9Qr(Ey`#sE{D;_w(|1rqfJIh7w;G)juUp4SJ6R5Hu|U%TehVU+^&cFV<;29pjS>qXxsY(KxwKZaTL^y!4fh@s42B zI^OgGP1?@wuKhwIHM)tZQ_mfsusv_27g)STr&U~h0g;}!cz4q=J|GzFQKtAr?D(T| zyiv;JJPj6J+e=5vy>SMkz3P0QVRpg1|J*L|F3k&z)abhxEI4<7!uGt8USRPaNFFlM zw^qCt*bH8hJT4%o=WPbXfU=A2W&80FtY5H~@RrsLygPap-Uhvz@8C^%d-DNq=MnxD zzAfWp86VGJnbFMOXI`#-PixG2Dr;@_iR?K!x8e&GSDNA`NA6E^@mf^Au{AHR5I_9! z!n~pm%sX2nV-C(TW@c)oS<`3CUXnX+!Mp|e`h0zU`QoBUC6h{uCof#IaM7%(rP*cE z@Cge1&6qVS$5c=_rEIRjbIRt#K?qs+Yz1CMhSj;eJcLWb%Srk9lS^>0;$n;`@$P;MC`(Jrrj?cDO`kqJ52MH# zGqSQofsOem!^tn6!tzVY%1ZNQ%*ccP+$(Yyn4^QS1q*VwjId9&7AYS>3{tKKmrs7*9=Zh%=<7|;} zqImHVG!PnD~?oyto8*LbG{nku2UTCaFD%Y)hYY__H^tp&l zbc_#c0wd*UGZ%Bv@m@Bk8*Sly>o()y+b=c_zJrc*m-0N_Xy@fx(BH+th!$MNBfGTDEjvGyd7QU2eYupiSUF)JMJ{lIu5WpW7@bGq^Nmy9vG^fKeP z(9F@dFy%2Os5c|-=am8}=|(u;8r>?KMZ3c^pT(`TlIe?%-bkF z9a20Q=i+mX;Au1FiBE{knF~Rmk2`GT3vnjC-UwcXuYIjvgKs$E9Di%ptzW%?K1P;y zPmiXO85tS)##*MvFy$5J+1WJD&B!p}gO5oEd3pKDx}cy?SYskhTwKg1vl86!E1f!- zv9hvh!p|G{w-R5POMbLV`8)fE(8$3`c5eGO5c&Ttr+R#Td_kOITO|Hh#FxgG#h1qq z##hEy#V?9~H2$&p$K#)fKNf#H{>k_g@l)|9<6Gie;dVQ)L-@hYy!fT@%hWlARi1WE z^1?APnbEO$jQNtJydrrFTOwC z6F(3?6t~1}aYx)0cgK6<{&*;k&j6|4*UuMNLe{Px6m$J_Di zig(64@Y@&P8}G(%zsNP^n{rNhx5Ul(+3>UC=fKa7p9?=Hes1;aMcL5LANR#QaW6`# zFCK^oQ9jXlI37VM4aWQ911PJZcnrTQ@w)=QtMEIF-wXI%jo%0255(_}zaJ$@W%)2l z^F#3u;`h1u=i^VspN>Bh|3dt;@z0DY1wAo8u^>UEwMhK0NGwe(ODs4<#N=u;lOZ#K#k#OnfTwRN|S$mlI!0 zd_D2K#Q!9ImpGj`lXx-lo5b%EFC~7Pbd44yu{yCPu{N2bVo#z2HMlR)o!E&7>ePW+b)jB+QL|puZ6M)G_)){*L|-C=dLBqb6aA>|D-*HA5bFH? z#MOy-;)96?QTrc2{hv&HC~*Q>@JQm}#D`J;A4_~B@lj~OkBXdx>f$xx{-yY5Po37*tMhk%s-?Adqo|O7kq$I2}>Bm=cC#373ir~ zG5Ulw4y17HIwn7cD%{C0qAD+=sEV;_#%e~Ho$s@$j4j{13TyAnfl7Pj=2h64jNK5qasbYJ%1R;ees-%O*KQ;vq=Sc zlkzs?ZNhzyOjCANRt~fgqr^<6NtN98bolC@w@;0(nN#^{!@$u4FTc9urOftCt<(Hj zk3W9uwq5MV^BZGds1gNw-4E|X@!~l4g`I*~kK%N8E6Qryr}Jc{Qw-)v;Zyo;9#W*2J1w3u|Rt_ROkj2=Lh|{iO3`r?1 zrU*WKZf8|Cw>@MJWAAcR2xZS|tah6lHN@)7)+lzqwn=C0NoU>3GqZGIRtc0TcX;iC z46hbbf#PH36pLAeZ8gHSOP_Y>)1KxNkt?5W>BcSHsB#gZyOVDGGW39S8jwx{X~6}O zP6N_uR631Hr_nU0(WFzn5YUMlw;_2@9igS9d0r}>FrH>5EwDiOu^$_HO4$#(7<}N% z)zI}Y3)%5#GCbIAP^@4~7I`FO#zz8isW6#>WNf&cq^4EXv398yZodN`6O6=!qWkbY z>o6mY9Ho#_h(V8iQA$R{ZT8yS4hMGa;<^xN42A->s1=EHGq*oNh3&;&XPX0RF0>x! zcsAS`MaJx`-Dk%>akHHTWEu>8w*>}psff#2oO%OJH{RHUR5Rp=PMO0SK=m@b2O<<0 zlekIaNyY6xFc++7&;Z zZg(-ePms~Ph~N!DhAyO(xirLsM)+DI_G=H>{Z2cJCF`IkdFH@nDhkgU4WS9b)@n+& zXqA$g5RwcLj{rElcyNFehT1vV4w1@;>Q6Ok7Bik=F_I_*IE}ahQPK2OrRiZ^+If}K zmAYi|>SWP0O7q4vr;SNBjnYlKbkm;Z1~r7XwO!hGOZ)CL`)+B22a!qL-1w9_wMF8Z zla=5z<0UFketbgRj)pv9#ube=TwdI&-Ec+ycymJ3=QZQ;r+^dfum?NR$yhN%c9q5s%jY;Zq1<=)?`0!s|AHFEQBOmm}sND}oMKy$| z{ZE}!KaiB*3a=S+kZZK^A!^`7N1=o;o*gm!t*l<=)G4VkmE%sMB?}uTH8N#ZNi{Mb zR!KILntW&;ohc2rihy~*A^_tbwjS6C)C2864}hTw8g@L723!jq1Kt6=3wST^e&9pE z!@x&?$AM1)PXk{7z6yLB_#W^R;6>mi;LpH601OUTCXfZ>0J%UuPzX!{CIeG|slYT~ z1~3bl1Iz>F1LeRXUj1tz#Y%t~z#?Eduo-9o_5c>Z4FrJ!U8ZZ}F1grqo0$TuM z9Q_st%(5T)-|=#4yqxO#|660`wBgX`(P47*K;tqsEHXxn$pJ-bP>>oCB*zw`hfC)f zcc{^jF@M*2u4ZTcWXrtwd5d?WlN$1$n-g&HcRk0jHkcCuRJ3{Q=# zYmAYLn&_pEJKxlR)0ipB%1^;nwc7N&@?xx$)}o`j+uj|IZc~<%7myns2cJb zQ_(aZsX3^cpsMk1YNnzF$g%~(1L#kr)R2QcUVha>YeDuA*ta zJWci@Nw>m8GzCc`s4A``TAjg!HbfUfx=3p;$%tW>JcqZ`IgQ1W60Oao1gy~{1+3Mi z&S}jiDT%e4q(rmXq#)LXQmLh=j8VO6IOHTP>BMNiWEq%~=9c6cHS$TpmOM*MC)`Oh zZ}QBSJo6{dQqz%8(kz@jOT~d{yo08em|G_61d9T+$c2?NS{oB}k~FGGwzM)6a#buD za6PRcsoIuQEvZIQt)x0hyCl_1YLL_@sYz0^q!vl7lG-G-OWG}IkE9MsoszmFbxYbS zX`iJ1l6oW^kR(>+d{C!|IV7fd4tE3#i+JKa=*G)7x@e6_x=eM=$|tHWsT#72kQTD- zk>|24k>|Cl36N4X&2;5y4b5Sd8)N1x#a1yZmgf$)Gm3>DTBMMbkgTJ2F%_1sI%us! zT)Z{1HIjm%iL}rnO^{`w>Ml7wmFJk9;wmxD#bTx*P!YN4LnXM}#7S7Jh9)(EuC31f(D-AO)#&NSz1T~d_Sc~TS&LsF89OtO?^->J@1&9O2NeU&;lItV3F$D&Tv#bflU(o`RJm#wT+ z_T=bFn#rD7ou`GHwxXmgM<-Ht<%DLt$2;%wXE8UMRZn; zYa9RYqM{bDn%|1c39IKFc4w4sGIRv6Cd)dp;AtU;;xN`6Sxhy6SxO>Kky-d)?z*eJOO+Lcn0_e@EzcXz%PN*z!~6= z0IkK)t@ytJF9ZJoUIqRI{2QQ0>p9jXGJ!X{PD5)lv<6cRv;jSU6|e(Nzzui+9}oa& zT_y}ff&aw%46Vn|TFgg*PXk{Dz7Bj3_&M+bKx;660bT{NGO!*2=m4#~YzKA%H9!-v z2e<_21tP!|zzx8iz=ObJz-NK40zUwL2GDxTAA!FD{{$GVdjL~_>3|N;n!0X21{h0Yktwz%gJLxC3}U@Cfix;8OstyL=h=AK(YT3&3e00lW&(+DjqU zL}=Y*A+QWs1#ATBfOcRnKkOd;oYDcmhaYi}?X$ zT8sGu@K@lU0LOZW3BVV{*<4@|umacsYzG>FOMqS=1{?!!10DoU0bc=r0Q?&GGw?4U z7i%bGKsj&`upMXy_5%)J2sjSh3EU4n44eX<0loqJ0C*nwJ@7YR1Tdj-C;?^z^MG<- z39uPx0WJkRKtFI8xDFTwZUx>0+y{IJcocXX_zds`;A_BlfFA+B1bz$r5%?SMFCYWA z+jD_pU>YzNSOly9wg9z2Gq4wM0Ab*2U>LX)co6s~@M+*{zz={IfWH8*0ok~fKLuC> zTm)(};0fT1z;}S311|yp0JMDQ5HJT=4r~T?0iA#a=mV|> zhJibQ6ToA@7l3a8KLB0?{sO!P6k>0|Y@h;I2h;&wz-53NhyvFDw*v129swQ)J`a2o z_%ZN%;8h?CI}(b4dB76jB48u11E>RDfy+9bC!`E*yqZwkp0k4HPi0?iU zdoc(l#%ExCZ zoP!1V6l3$qSo4f5*r&|1(J^H6Oh5xt<{Hd3m}@ZC(#*3Eeiq`%LO5Az;fNanFlR7_ zri_mljRwUl4_qPQFS!vSd6J2}pcxsN^rJ%v;%v-6SSS6Q{REC^mnnrf=AeK_A7dPx zMMOYJZ!(qGyNcbb;y|WGAGEL4I1r%8G&a#WnhEAvSqPINOeHfTGmE4w!}o-oaxPLu zA*3Bfkb;d8m@u3-WtbMz#HV9I9h>zr))y$sEF(8*d54fJ=uGS`&V&-dNQ9WItkj8c zAe?1ppw%25aVjhDfM5`gG)jw47>xFoCZT_n^*knII7tQmA3jsji;F8K=lp@2P)un_ zp7?Zp`X_cb#*`9q{uGRL!BvHz2|>AII~5(|NInWor_{K}xX7F|KstdPouV=)K4eHt z21H)Zc8K`IzfmsI%K;W=i-sa6e}=-yFeXmY*-S}$kz6JMK}y646)1L>r6+^@zllPY zNlO2(5|V?r$obva)qshP8+RPA#R~nAfnSciIP!s!WB-1By@#4sRBa;(*vRkqb zzSfp~=(YB2^J}}aEw43a|4Hq4JTgK_K00!Z;Oj=N75ui5>jfVhdHcxl$c-a6j2sv8 zJ4S9Axn<w8n|H%C# z9~wC^^1+b@h5Ls_P740;$ispk9eG6XM@K#~@`;hhMm|3Bv5_Z6PW>PD-UCdkB8wlr zxBA|m>6xCM*uw;1GHDuSNDf1W8G>Y#nITJ(B%p$zqNpGe6j2PAb6oS9ch@zn*)^=X zW(;eNYZlhV@%?_M?(M!k%pmLk?f2gIzIUo`)u~gbPSvejx4P=w3eER6-_!h;<_DVp z-2A8JhngR5ez5tk&5t%e*8I2TN1C5(eyaJ2=Es}=-u!IyGtEyoztH@T=I5KA6FIz> z1BI8H|JnRf^NY=|HNW2cYV#}2Z#C~~ezWZ<@bu{=WH#=I@%n{jbwM(0u-XnQwA*5(mEj1-u>O zUmRT$T@+myofDlKJuEsqIwjf=Jv4eqEZh}3H99TY6m5(yh#nrDADtJS8J!iK5uLsd z-*M67qsKVT^Btex;A=Bbba*X=t)A~8r>2Lchm8@r$skP_^Hti z;%<&^YL)-Y=(bkrURkZ-XGBl`UGZ9z)snU>x;%PBbZJcfQPHELM@Cn~{4W35(H+sV zqTBbOyWy`yUyc4V`f@D%yy*GSbED_P{Fg>Ai(V4FIOe}FdQtR(=+2nmm2)8O717J1 zS4XdjUKPD^pZK>#Z;jp@y(xiyUG&=MjnO|uZ-`!>KyR7WzoPF+_?yu;#C<*bnz*~7 zZ;AUs^nG#Nc<)Bvi8e=njs6ndn?QHN>3$sjB>GYG!-VkLqqm9wkI_4#JJ9MR@BOg( zioI7hU%L0&=F9fp*nIh3uY|VnbDD2!Ub^?==H+|8Yd-RTVz`nnK$;<>c`ees3Ta-A zG_N@z2^S*Gqmbq*q`CTlVz_Buf;6-Ks~B#~E6_6E_`70WgP1q{u9!C<<}JS~=3R(+ z$M1@HA7WNhDfnN*%lJp?^}Eu17ysQuPz#>kdv){Bz1KEBv-kSuVW^aMX}z z@to`Te%buo-VMz^Hg9a+-MppwKh4{lqxjeSrg;;nKY_Xj)Sp4!dqDq+AE3wZJkojr z>HGs}ym-Jl{{(et0%E*^9KQq!FCTEsPfpf>F>Cn!}UC_7jV6d>w8>;BbP5-hHDM3 zW2({4^u*N*S8rT>aP`G?5H3PLxV58lW*{#A%4F64-dcyw1l4qdK^z$Uc73=2JR3q|H&4$U$!4s#h?-ek+b z7No&6Zb%vogaW|RH6Eu10~v9T%bghvxM)@|fIXyg+hM1jyxi>kY~Y35@g}#xp=Rf1 z=N7mu@U)N9vCmC$33k0HE$&d(0eCrgz$qq1DzIWKx`}xz;wVIP;vME1T{?HG#9H5~ z+;-JHd*jvD1A=t1K|Exrc%8GZ19${M2a@H&d9W z<8UzXx^cZe#+~7b3mG#fjinijYs%PJV`t2WOBQaAfA(Q>=D4CgXq>3UjYZ0H=go6D z8|G7@mfPUCGlbTZm{r_}&a1u=sh7OP;Mj4AC2)B6g$q$l7A#nhyI?_|1&O{zATM6B zAfLet7A#s2>Av&`Va^j~1~2mjgKc^B0-6Q5aM&u&Q;tU#Zjb-SqmDk>P1%FSiCP>p z7D>$3%2lh}h>MS50y>$+j=M}~$g93FomY9+u=YMLceRVI&Ru=%aX8VZdZMkP|uR(ZCw>~vFXPuRMCSFMR+}ARbYC876UxX!2 z>o5=gbmKhZa^p&TZN1lc1asY=!?)EpFu(n4d^?RAA?(*2G5ce$LTof*PBmwnE6kJ3 z?dHYib>{8npUlV1XUvz(*UeANpG;fjs8ZES4O5fUY_&oiqt;-*hi&Rob)&jV{Z&1w zUQ(~Cchtw~OBGcqzOb*{*V{MDH`zDGca(39?>OH{zU{uteK+~;@jc{w+V{He1K(%9 zuYJ3HzxaYyJFC>{X$`d|ShKC=);jA{>on^O>k{i`>ptsm*0a{D)<@Pi)=$=6%d%7K zLc5ziz#eH&vZvcK?RoY}d#!zny~*BUZ@0~qK)}S-gr;^}S9=3yRw$H~Zri4vo}Qix z))YI*=Jt4L=@LM?CJQ}90@8(@z24-qFXbURJR7V+%NtwS- zr>au3yo=GfYoxoc+U{9&P`}Xl!6R#uYDW+4pEhnl@{nP5^(mu*2NzAsIb=>#`uvQ> zsncg<9TuKjRJ3SGZsGDZipN^HI<4d8E%;BDFBniI z(&c9Z3tu|qJBLaljVeeiy+~E~$`K6WTL+AhCRF*%AaNKo6sIKyq(dAi=p-oF_EBYU zm4L(pnMu-vJuXPhrpHV$DOgYIH90s5q|mu?FcZOROrs0p_d8%S4vP=}TZ6?^2WZyF zlEP!Ltnfh0;rrzJ9K$toKm^ODEx@5Enz&gmS+ zbD(=Ox_ag6QNj;qd_Ii9%B7nA9Ozy-bB|v+QTXuBU8#UR?0e#ivd$h$S#x03KMK?XI>}&5vgQc3nn6q%Nk_BpfehlAS)ugw_!gcqj63dlctbg0^ZG*) zJCqd)hZD%!lM%|zZH3$}l$V!4)!x7lG4&*FQ}AYa&ekv7nhZJ$z{bQ<>g*Nu`ps(S6tDl)4l=42tbhE zpAZC3a&fUjKvGi60EQu;bLWHrB{5PE(4|XaKng_#?c$QQl5aJD8Sd6i4r*|$Ze2T8 zR(c6tSvFl!HuzWVzHdNR1Ry9JP6&dhUDvJ|2*}NC8Ne_E^yrZgkRdVh5l~f?7?4j< zg*jb2wv~K(dcqd>8RE<0lsokDdKiPTOnwvA3-!|WMzTDjO+!(lM zVP1M(o{4>%0WmB$Y!(*f7g%=tqz-|O#o=H@*RpVVdPb+L&N*Gexh37g?NaifE$}CY zOH&jWMu@G^^ux(z5c6K4!Shl~^r>ug175pYP%dpUpa_))z!=U|3 zN##F*0GecHFAyWQU0z-|ABqhZ3UR=Xix-8%#U-UY=_gDsm#p0wS7+@n*F3r6cm#F{ zhhwZ=!{Kh=E)RDN@52Xrj897hU!_PZcl<3Jye$MLVeM&Y9|(^Vr+nW$dGmf?T)0ER zZ^(*qb=_aVYEh77nhq+Cxoc?Np1A@Ne?BVh)OZVRh83#?t4Fh zlvc`k-zRZET;4RDw6prPmSj9@F5CXO+#9IM**{-DEiUVT`S!Wd7PkS>3Hetz)6fdc^v~O1FF4b@mbV4*Nd)9ozCp{8RjE{a5>+@qgzp zNE)8B6eof_kkqwvnboEMV5bne_W-7pI(jKU7R59-{d zYx~Lw_9^YytGl7nFqa)=Z)IiUgNi>thhJHek~8x#mmWQfqT){7diLqdY5w@g(*n?A zYoq^@un`)^)w%z*!Ge|l(lCu`W02EvY?0UB_9l*if15vn!yB1p-v{Q0DH79BFBx^xYTl$p{&{FLx;V8|Xsxv!&mS@09F& z^E)TMadJ+dcaERiALsW>>7Rqw=$i^-_6=2ss>JjN^}uktng$1@REPR%6NDQS1MZMn zo!U3lE!6FI#YOD2kQMs9aer65YAci$GI6KOwP}a?!1P8zzn)w?1T&_fD8Ys zDCvw$o-vx+PGLty#qJwEk#;OqWvX0t>Ri#KLPJ;mVbs}QxB{CWSM(oHF>uh}Ap^-U zw4ycM-o5+uJxF-L;^oycwe6-*!4%>FOo4zDhSBX7%gX*3W5OyDgi!zi!s22oD!l1w zhJ9EnJXvas#ie`PL4&>Ncmm=mIoil>!o9b_Q{gS2wshrp_y1@Pn6V;WMfNYTq9Rt8JdAa*Le#meszyc+JaI55ls5d`Dq6~{Xj|q!tSqM1 zlW)O_zv(tvTYH%*4(w&>#0(D1=efT(XyKy6eT!XKvUuqcvGQHEdYR(6#Uwgud_5BCbuR96n zk28S{^{w%)iSdHP%j@QeZY*C+As)aK2uR^ny2}rUF(#}&K^O%PAS^DXzTTUjX4r?N z-jk)aSX{ctJ?Ug`I-YD%w4Ibg-;1tta1t z6)#hptgXFF^=-XOo)%#Kg854mAM;Y?#|8I!*6-(4Yc1*cI}b^o_t^GtO5UU)Ha5X& zD7o!6VQfOWj7^A?Z?fsQ;Ktg-5sgdSrpCnYk1-}}Q-Uy8EQH0yY}({a zuML(>o-DP+;?g~CQL#52Pe2?cM;qC7N=)B-8$6qIsqUX=la##X*%D8BQ`(uO~EQ%jkf+LpNw zD~qZ1v!vP=2#$kQ&RFK6DY4uo2YFNWYebD8!g%fDY3%# z32$^OZ-1N@Qao?JE7Xzgbs%&{N4SN{d4>q{kQsG_5bScl5}X&iAgsk zy_EDzQrF~u$)l2wOFkiabMjru?wSk#|lLJ==9>a-Sp9X>{)hSa_=BI2P@Myq#D6Ua6oWO@PyzE!Iy)9wC-t>(pIJIOuIkr&9q%(k#^x}-Fj5!(0GLFo+F5|_FuQSpzvoi-|&d)rkva)Yk zX=!OmiCI=w7AoVxsolDC>(;F@R9)GjL))RDYGkaqc{itJ)Ub6Iv`3nxmZ0417=FU4|-73swFfuGuTO4DZ*FGP*G5n=; z=va^(NGS}ZhmGPAqX$3B;|#EaYH%V4ln(uHOjvFI2oBSNqRrq(gTX__4IMVTZW6lg z(;Cn1}C3K_k6LrvTJ&^4#_uI+!Q`&eItU>r!TC7JVCu` zJRYKQ2yeo%x*+x+U=C#9AX=t5cu4%vT4MSujQd%KkHCH7y>l&jQlNg7`EAmpmd9N> zN_m+LBzIEIHA;>u-hleD{{Tp(nhtA^hS$~9psm5;GN>?W#^S`48YtQj&Jlk@V@*@d zRBoL=eFiK7nnL5SIhda+K5pqYzh(jP!xz>pT8!qgW*N>;!C1WpgY_Ep+%;d#amQow@z2vv(NhoO|B+ zXYIV;!iz4x#JKdb%dfcds;jRdcg?leU4O%ke~^eZH{ER1+;Xc?bK7v^_B;NlX?Kca z+;#UohH>wG_y6h7f2nx@q`yA+(8G`X4I3#v_V^P|4%a-epL+V4zl(>9tOTBYE*5AQ z!;PBfwYR3`g@3$g7%yq2mkqf8d_@PnN~h+v*R>D!{5NWNZUC{jYHD@~_O=7>XyAT! z9xypQPA16d8iBeHuLjR56Ov^lz=aS>;VeRitV)q zQO;mm5^YFj?a-VYGy?S_#E+e4;D%8FMvfRYddR54Le(p$w*)Du$O{X{jTcX0rJ-sk zP)vJO%iD*%T5+5LMmfg(6DxCSvw8s1CP|}0zD7=_Z*MeBoJx7T!7g2GO%)G8k{_-^{aXY+~)llassT?Yr1rCiSR>n$;EF3 z11C=j*xHR~pJVGP1dm(okH?JOrPzf_sUev-6Qu+4p;@I`N~YF2lK|NSbCWy=G+!^U z0<_V>cd|rQ>XdL!R*&@?PSs@a^@>%)3Q@0_i@P?HuVJ4GwfPS0+KE$ukUG1QRC@PzJX8twt!qya3J0slmVpRbiP2ymGy z-syE&`5kbK%UL8i88L!o#@VPvWk}q;eGvvPBm_FsgAk?i%jx3DtX#Rntw&hPL;xdG zgG@ADC>#9m&?~?fEh{HS7s2^4kg(pp*sV8q2Apb@k(nLJEdvF)Bm~&ZXjqq(b3sn_ zg%^nr+v#1*aFt4%<tGRuk}jtwUZXS6HCOMqV z7@%XR2V-4w$tAZ6q}_(s36Ho#PEOz&!)ZQ;W>1oW0izUQubi9?MtM$t;L_V~rX0|9 zhA1kGKaG+}!-amwP-!3oe`Ejwci6$`5!%L394d3?olEaR-(-hUcS}WFxl-uzFn~#v zB%|Lws0}Rv!JW{kI1qad;+J?vzcP7)@B%>|Yo3S0mSUC{reFn) zvhGGP{`5+MMyHA*EEQ^BR8&?{fkmjfxfP~SS=revDKWEnR8tQ;B=o(_RIKK~uZLll zmF8lONTj4g$M)^b_U+3$cQ)IX<(8CiVBWd3%~q zb`{nZbSMi}lyovn3(E33n?)s9DHAkGJ9I2;Z(yNAL8)ox8l58sl1D@%f{avjuB^mS zmquD{X-T9Ahc{(q6_?~zR0KwV1-Hmoq&LIm}3B|k!N5%vO>DEa0LvEGGNaE?jAYQ5q^DCV?YjT4B)uNfOB9Y zmy4``FCYguD(C3N01j^qc#dy`Fr58$0(B`^^?Z_XvT+Kq^~MIQl_6|2P7^m^Y=Wj> z3*v5tKY-QIXTS~^9RDkv7ws}1?if47;tCiy$*$M8AkMA8Z^Kz+cYw}) zusMdg3mgICZk$ebFLuSg-}saG|7`pPVGjWRtMMRCEF;guxE{fd*-NmZdm-==<1y$F zp8(&JSQj)~c%C+%K{|hzy74U5eLs&A&i;Xr7mb&Um*u3hM}_Yd<5lpzX1tDd;ctTS zmaz-|w~cpzziYgQmE`||-1m(Suxk7x&^|UkLHMT<_cP;jgnc3Sm)NEI-C z!Vm-3uT90u%rnlObU&US;XMd4PvO4s?@3NeKr@RWOp$;j9yW$zzv%ZEA3I0?ilk53 zyBi20iDDlX6oJM!c=Yf6iYmnI-1o|s?g#{#u=^ocY)vKWGH*5sILp5X*C1Rc>~|^Z-0gVSJQ}MQ*mU#_~qAhV>cLnLH@q|^<=oe8gGCh z`s=SgxJgg``fEC9MQ`)we+7dVxW)_mtEA+l7z9#?LUohoQQmNoU0zaBegRx)adPAgC6?}L|7H3+q(MAwsd(~ znTP(C)=b9Kd7{muDsL!Nc~Iny8Zr9d5hI3<89G!?nVWpb26d>?cQ3b_ikEy^DVbJ>ECvH=^blZfj_$WyR(%*FNu72 zfk5}}d+xoDVblxK?|}zm_+KCNMtAXtN=qLuEq%oG#@)X?8pq?w`;z_C(*FO8) z^Uxi>^zsP6KVNYu;=G`zHKv32j&D+wTbS?tA}Q`~C-O*M9iX$De$305q>M7~S#!Sj9T4=qVv|Bo@xPhNSuT~AE@o*1Kp{KsYa zd2MvBi_>jU9e!!yZ+4qXyao#GB$R>x#Xn9DIRAM3n-ai3s40^@`0tsn+IJ}I=;1B` zUhJ~MEg@d)0XOq5F}1Wb0}J6(OH;AqSZOgL!=^ujG^~*?E6yk{uPE(Q5sz8g348(& z4))Sg?aj#GzbyV|UFh0XW6m;fe8mJ7Uxi-jKyh)m;z;+5lt`p&kJPFvr0YO6T@gvE zGy}O~vbdw3NHw*%S7l{y_>oOQhOq0XRedn1V{sh1q}~1l238J;0Lr~EC^EQw z$WW3a!-fq@4h&ay!alHGjUeC1%1ZrwRQae_ywPAe7`ed2*UC!$e^owyf{ZAYnmE$o z6FHLx(h&7bCLa`J=F+6Lxl0S6QRL%3B9X!wb#?t_Mj{Q3e6oWWFAkAWD6{F6lkgmn&Lk8Mqs&55 zGe$O!7Jl9W%BQKZaeBk_M)FOYjvNmfJe#a|HjNbLNF6EV$n?h}&$A)tFkFQ*z@hJt zyiRVVTn01agCdh6(;6!$O=<*08g)IDU<8h2wVD)}19U8~fx4dRv}v;pbn=5GittyC zg4{uq8B_S-8(-(t+_`h>D(mX%gwD(r_UhHkvg9t@G?^vmy=p*`s83RXE939lBuJr%k!9qsynJ?3B_dQdH8hRV`BVzjMhK`J)i`f9ZV!^2H>{zlp|P=Pw(vDJ z)#25yjzp>>e6KV5c1OD;wkC=!A16#sR5N!$`6evEa{Ywj5RqUK|rV{9VCO7x}lL38>NLbXGZjU?MMN?ev`D{ zc@B^umAGZ8C+@#dckOeWjEo~?UlkJN|B^C+yLCaf7SS;>M9xuw zjEoidlRSE5SM7EMJN&EQ;%_kZn642`Urp8hnq!9zJMOsS)bVSNU(0-+Fl^X~bl07v zPCiAg-#}aiPN9A3uwfhVmoseGX{-s!>o-Y#NM65K|9MW1K!Gc;nKuj2ce|zc^4|Ip zOw!~?-PXF(>-a}re0p8a)KrxD)~#DpQ_o0EEi3O_myw#BjL~jE-8PXAYl#bIZeMa1 zUWDZ2v+L@T>*~%fr~@JwA6#e{uGbJalKbL#}2~A#qUJT*^ngJ|8&PFboU!4^oHI#(j z4f_-5)Rf}Mc7eOCuI}{G^DB$d@T>W(hdU#YozfoQHu~t+I8uv>CodXZUh4Sc@w|`c zGxn=x$E)L+EBy{BEQeOhE?|&Sb?QRo^CF!I$$@^L%ou@rB5JCOFOeHVsaqC?2z-8c zS+3~PrEbZUL-_s8_Ly=`w;%6QNFuR7-(9Qwq)T62HbNMf4toUt8BYjYuRS zUA^Msk-e{znm1MZyYK~;8pMW``9$aLYS!7VP6W4)$#)LrDb#M)mtub#XENvqo^a1E;p2QDMKowVE9_kZfdBjo5cE3cO!z!%XPZ)$0V6%`$3R~S22TX z^k~Lp#?ihwe^S!kL}rzbL}Sxf*?5FJ1=UBlH*Eh#N*Rh@KTAf$zY%&gOqUYN8=UrA zv41$eZgxZYsLD}ns4Lk<$6)ZGOc!~tY*dH-LE_`7u!|)Z`A|F=87sSVp>t$c$e-QR z*l?oUfWZ1zseZ*t&f2f)te5LFQ^QDm_EN8BQbvHsz25Zy2Vr~ln`wU*~p3msNo zex6ih#|MrYjo!%Kz=az?@ZWly^B!%uaDzJeb~RL~OV2xRgSsR6kHhigk(Mh9?x2aY zobe3r2OqH3Z?JR`=!zL*?ZR~9*Puwwo&7c!B%dv9!^B~APPTL%MiPV7(8yi7sz&53 zS+e9TcHJ}-qN5=&6aRl2w7*y6Zl``baZ!I5KDhi6X5}8{AN2!IhF-udmOGJqmn;!M z&VK{ic=tbrH>P>W;5?^U)DhfQEoCl%FjjN6RT97azK)K| z^vWlQXXGTN=&+HGf5Uuuk_1~f%0k+p>sF5$OsxU|AhnUqVwpI12$*`Zu{HSxAFdM!FV4NU|8q!jKx5}6or zyN`&7*Ooml-NjXE_B?Wwk5syyo-LgX^j3zT+cmIBgbo>^oJz*5lievVq|(^Hrf$?o zp$eUSO{aotcSwvMt&1eh{y$kTt|CkAD0I`NV;t4U@eRfwpf&O@eG)9W0i>rh)>zpv z3R%|ZPzd(>v zr$1Pz=CZ7t2IBeY+t-?mDqTW zlxH`6O!(WDtwqu5{chXFGy13_;As2B#n~Dnk>}FXu+xkU0Owky%c+ z=^i)3j@p2F0|DH!+&Z$x+eLO!nBuYw>gu|5nJa#&Z>(%AVFy?rKX=eIN*1ZvM>c@{Uu#8Iex^y9W? zN<&-s=cdZKKQ}i11-D1t!Z>#7okAf}IgadjFU8UQb7=sjMRYAtR%oi&u2q#9sj5bA zo((6u;5*r9x(#P4$kiZAqpITyV^tLssd7c=5FKCBBo9U2aB9NH;erIZ#Q&0$(Tero zKc68>M2~Y=g5yvyy_~`s7j~*HpH`)0N2|z);=ddB2^*1E&jp|_fuaLmJW~B|yXZm{ z3G&3-SN%T|NQz@BppEUT9(rTm`ESM=_a`@)U6#b1*}~-Hw!xjW~Qa(=VQY_%nu3V zhO_cA@@znEepbHGu3bSmuOKNW-z>;0$WKqtOHay94+ruCww-SWY&`Kmaxyl$_WSel z{CUA3y7zVZ(Nm1zq1(-XNl#-sL+Jy^JlEUffDl@4= zQc`Y~!pZ1_}xS1-4xf3SgJ-^n4s3kyVhDpOtF|m7N<#L1h;BlR}xfSy=_4On=B9 z#0?ju`@^Z>ynsK@uE3vSSw3Go}L4aQ<;dRz^0Bk)4r~ksZ$FhL_G{cB7b)H1NYQpcF?58#1c}bD*60 z`aLim4nftpdXfjg$t>8l>LBfd3Y(1?I0V=7L4nbuoov*4_2kY>&@_ytX3$;7~U^945+ zh;#Tt?W4U2lT72jB};K2uJ$f7mSg?~Va1V}B1fnbJsKPM3pf=^FABhy6HGafkKQ4f zE|i7+(~TTGqZoA{FW=xq0huX)S=+$yo!Kx@v}G*b68*d@^mG8Dv&47eL3vlRN}uJjm=Rdj5G&v%&0>-dLUzZjuynnl=;12~0RFU2HsY zJmx^qnw~tP%IM$A2%F)VvsgBKqs)2zC(mDCv2p>jS^WT*-oaN2kJL0t>Ll5gDesHx z5lE57lBNASN!7v|W`?XF>Hs*ULM_7%>w_?r4Dm_Krug2*k)b|EVZID*1tN}?s>c!; z%#0pQzLmHp)EJ#`NCsjI0h#rM1u2NkIzhc=2Jli$L&LyQN=98Zkt`||VYR^}_Qqms zZO?Y_cIwp$vdkvlaA&i6iR6#DI>A~C+vF@ZoOVa}bQj>$*J=?Qp#jOPRaJ>ho8Rl-g`Kq7BL_PY4TR3!DZ2# z^hriF62P4%@kRqlem|o?#Otr?1mAz1z@jle{ghcs;!L%Y%$}KOGQ0;Ofy zsA`xs+$9_TRh5{JYj&5vETcFSqEJ{pu%#y^yV2&RRh9ZL5r0_z8Y9HEl}#UQy!vcZ z2?Hc@{GJBNYm5MWvzVgCEz8|IVimyM=o@k-|H zLDxtBMJI;~nT{}+a^J;R@dzGpo3d4U2`51^HlWljgB`&8R?*4CJYVKfa!GFZx@b1C zN-UGHSmKxr%zl~~fz>@(cy$o72P}Yl)MV$6DRC|v2a}x2<}?*K;j~=(u$yvz0bIP$ zX$LfyEltm5W8D8A{wF2S9S<3LrTx!0lUawdS6i%Wt=Eq#CG$vRb(y=kY|tRCkiZNy zX9AjZ2F6bqF!HxyB3UN6F!>N!a*C;H*w}5>?BW9h9O~8*MvjyjYn-x%1*x2QHpiWK zhCf($=Glf*H_nMqJUeU7**oTN=Gh#*w)E0DTw6MaGtV?!cm1_Dv`mQp8~@ z>b?auE-ASUt56wyCsv={yMMS(2j71`W}>x_DBiz3fEB9`J-lzwBY)eMHfPSGj}5@O zR!ldW^Y>?;8!+Jc0WbW6@S@B6(wvw7`O2I*ufqSD&|ZJz&9?;E_4Ye+-hFS*oPWJP z;DZn6IICbd^X#($13v#^z?Z@VE8#JJmEeQt-y^?nN%H!?iFv;D%KOgs#N>Y;V|0)o zT$Uf_{Ir{O+O5}U!O(igfF2kEG!6hNI=C7JY6`)qW#!)vNigCB0(v>GpJ1APoJ!$> zqO!pOMh%5v$)BL%^WjIJgOp$a(R&^$I*N8D0i}j&5M;W5Qg9SEP*UnJ%EU$4hEFu4 z%sdeMapK@G8;TBEu!-R8Euxx0+#zZ$AN^3r;35#!KT!CCMFMp#0@St;!IrO#NiY8~ z2wd7E9*u~ta&z$`D2*TraMxx)JAx8R!662hEJRd0(Fo#uvP^B@(pI3fRVZ+~D00>Y~%VB~#Rh?WJ+e7u} zQ6!*Laj{_(8*bwVKO(>f*-FVlFV)qm8niwFaDn$15LbK$0k}|jh6aVjw7?YfZl)5A zCAi?Kae!F>zEdE@?1KS*5OCjOAs%}YumP}usO)UMD*?ZD#Fy>YuN~hZyj1#il1S_i zX5(S-WyF00m6d4xD`KaQFD!MU!hz0XKY+q3I0yh1u@Ft^zeGCVOrs$nUr-e)9M$Il zZ`8n{PU-G~3iOZ-=ph9ZA0*gu8Qd$qGZLW9FAL)VT!4z(!2Kbcaz9`IB74090`&rEZh;sh%o>V#y}0KrU)ow$`tZUnS$!1uy+{&u2M5KFmPs*29+IPVi@r@ zk*p}j3gPfPG%)(7*d(wN*tq!pY#q=%NLO309AQ{6*b|^=i9?K!0*ol^Q3T*r7uUhX zQonAroDbtlX6&q4qxuS{zPi;{iW+!s^MUzq0HrnqIO&^vHA2kdt2C&quHsLr6&m28 zXcLHRi_LGz#TqXfFw0~9$+p2 zv+Cy70u+9@h|wXB*i!*K36nFI0Hhx^K>!%sLj{yNM1$f;axLd7InFc!yc|aY1Up** zU;hQ@fQ-j+Ejk5w6jrJe;3~yYv9@4q!~~-7BM>_RbE38?T3eMmQ2?{E1e_JoU|hLUsf7Yc zouomK?SOR}C~w`x8kD*izKbt*esJL52@o4WX9Apkv@j_M02)^c~#YX}g0d*<>Y^M@o^Vtu}yy@`gXJd}f zGZzqmhz0vf4eCMx;ki(EcY)*o?P!7$M{N`!&&G|Y>zLbupT{979eLrtBD#T=Hpdxh z;4dL1fH5N6P#_=&eFObpLPlm>I@ZYH!_@x{a{qUtf4Agzd8jEdaE9%ULLxR!7j;97 z2?#WgF}*TWd?onMA}T%VRlIx}cfJh3qdyMp%aKT_ci$x7w4K++thQ|Z`Z@}uXz3>f%W3>bP2dH}F*o7hj%Ytk&mB zeZ5YfYxJw}t`y@vsS#YCmD4Y_PQMyqgFGR6&3-k$;tU5BpWm=%zgj+XR^vP8!NNHP zamL~rC%%?z_Z#r_jUPIv;Vb8%_CRtkIu>uOImE0sdpL(akFGA1`b4r(%`Ys-7`Lkt( zKJRv`tk2&jtMjX!)%iQ%+a~Mtxi)_%xb({Wi*Z+6m4BIpGd9=eUuj&0HTl<|c3&sY zP1_g5QS-T#0Srq}mBEGzpT7TTj?b8UY$R`Y^SHRe z|3#Q;tnt^}T7Unzb3h*uV1^7|S zPuLZJdjfDr0PY5$cLG3PNcI818SJtTK(dMB-A%6iPs6c1>1GB@rkREBr!N{g*e~!! z1K&_vm^@JPacNTktPmXS;dU@PI`krQn^BA_9Wv9+k{EX>d~VD{7awIMq#_}_Q-beB zqqErs61obt8&a*r6~VqHI*&czRyi@+nbm^zgx$-b=@h-~NpGC@>Mhy6*r||hRE?>h zct5iiSbuYXWB5!4Vo$=s<`8qJIShBW4dpQ0Bfrjr*CTv{Ino?u;?upkMQQ@&jxpnP ze5^T6(u#*ZWsDaJb6W@OMPq_F5mIrkhsY-WqM>nOI;Z5*rrJ0};=A+<9D0#ZKQa!5 zI|Vu8eK(kmxc{aY|5S4tzLHNjXP7gca+zh$HV-rBm~+i}=6u9jU>*+ch2|nB&SG@+$9&N5PS7BdX=4-XN#yr+M4*2onuQt}2CzvOi z>&%nPlg(35+I$M@%?;ubPnG*T6=^X3M#MTzVm@zRQ{)7**-SKUInaGpV!MTbLpLO(~I{<&tcaUQPovET3o*m3wGPaN`JY+i!N zJo>-$Qu8wNa)e)j>nY<(^D6Ud^BVJ7_--+-GoMB7SfAWfv^&bUUf!V_8(IU{~pC%xm};XlUCdq}upE zeErQ2CB{eQ$H@OD=BFnA52}sN%+Eo83?=&o+%L_q%zq2t*G~91IBEJj^Lz6LQ0E#y znm?JlofP+&|1p0S-l(}3`TWIXf1%mLwi^lqU8V0IYr>)3W-hfK>%*14C;F42+e(23 zoA;)}gBXE6Y=l6eKV4-w-1OgSWJ2rP-$|e0KbqMR*DV{CA>YaKj2sn)KD*k$NoO$$ z+l+k46;3`wtoDL;P#sl~V8yCLl?q15j~QhNlDFaBnBQ_$q0YmeKAphXS#?oeV_e-N zZYB2Qdf4a=ya#k-tv@}vH`PMl>Z=Zd1l@C#A7CzN zHag|umY}BAI^q4*05wqZ=<<8ZkN3%XzfztfIi5mIV0$#ki9Z+`mZ55x8V5EZZGaxC3HVgU&pw6A zKh2W{^PFx@SG?Tt7mXscAJ1X;qZ!yOaHg82W~*;eZx2&*)Lb70(CgT7vgmH z#n2#OzbyFTaZ(K(Co$v*@GVoz)e3baxQ~MGXth$UQpdoz8oo7fkHw-r8r_dOUfi|n z1a+cXr@DKdF_w7ZT={sZuU8wOo?;tXXlw-iG*1}0SlSmDo3L}F8>iaX0-W@%(D=Dj zQqD-I^9WH-2_JdSREG*L>(yb%?{>8^R>R{mzLz%mEOmBFE-5?IIWhmas1xU@^VLpu zfx1v#1m))Q#wED4j7#NtjF6}5KAAdmf_a&udC{mhFZVn#m*WaY`jrT~%8_ujx<;`_ zg>_UT#o#h^!mHaRp?%_Z*L3XI=q`SBr!j)gROd z;Pl-j6xPLU@)pPIKPlSxLadxy_Bt5;POKe>$0fEv;y>$@oz9WVG0G#++eX}socC98 zqw8B+_BJE2cXW$N^xsO&sQ}0Pya@QXDx-gD0IXJxU-*(>Cnp%aGha~tEmG0rOogT( z(WJNV>rkyn$i$v{dIvx5;TPt_I@!I8?*{b;h1ge5zbUkf1gAQVrql^3gKCbGv#~Fu z=oC6brx4%QuMpaT9x)kJz})iI+JkCmx-K;baecuc{QGlPKk5gxc7Ri$sTmk!j75)k zf7*aVO@P(|=pFkOV-Gra{4Y8$<0$C9sP|gsjQ=_M=g6P?^R1P!zq>=9o;AA;+JKFY zISnp%=%XfJBj(O-fewJ-r?+Cxz}|h^aGim@`?j|*XJIElnzM}^j!PeR^*c}eX93e3 z=fmBJi&_NNT!cOT5{=d@Tn6oe-t*6^SKuyxH^$5#u&jKr(jwV`;3z|CKh6i~9ur6}5Q^|Iu1A z@Qi2&s2iYpUdl;p2e|tm--myS&E5ZAbKZ{EV{bt!Gz9D`aYw*ZXbJRah7&N~2L29o z1#zIhfVu+0ha%x4!MRW1r@)xjXF}P(^*QeA3tWURTbRU{U%~tD1k%^gKe&eJeUo6m zmAl^tZ37MWAv_EEhMye6cQ+2ZrF^M{*b_59$FMlf#iHP+t^zyT$-ag7U@f3^7Tmqi z-M=u&Og7zm%4v8>W)f`fV`zac6Z0e++p(*mAYw6oP^4&CX%gn9?(&783GteA$4AWw zO;#%=+gz8>isj(I1#QBTMy?reHQPCOo|%tW1!f@(7TrL1LQ`ZGJEp`em4Ascle&=# zm`=DiYCyE7=rl;ALvcgWfGL?vZv3jBm*H?sjRvf*Ts4`sT9rea^5vF-c86oEu1#G6N4?T! zgyW8c>&E2R{NVkXF=}j^W}L_wACu-v^|~CRyZ@VQyBwjf!>IgFHRU%9N8oYOge{$> zsp%@kQ+wIppP`a5!j=X!X1P2uf*`YmYqrCy$Kr-D&+)U*qWedw#{3rd$$xi!xe`AI zvcQw-drrXNN{{BXcL`2d~Y{7|kl+TGi zG-s%732}9f`EN-$GZv;Px^G6F?a(!Fe9tlcxyl{M?{xStlv3HNg*bMK`98i$&|vML zguBu%g70D{#sYN-bT0Z|RY$y3&BoV+1X0Fi!mVi?@NfGedVm@(R~>}+a&YX1MnT_? zS6+&_+n88lOYA;JP$^Rd8`z= z1YH_ZN+gG+;x7~14ef}LI!%S+YF{TAvv*o9n%_&mN^C^MSlC9j_OlC09zW`!FEN*L>%drYGEf}^2=2$V* zxoC{`TES0%eVk}uj>X&y(t{4y@t9)7^iGkz^VcWXT-mHCI#0CqObzd;i(8 zr{kg~XEQW7n`Qh>O-)>9qxCjgf8&O1M>ushL1=BXIR`o$ZO#StJi*V0z0)xlKyTw3 zp3iUrbS!kexDLNK#&9lp2;Gtn`7<<3aq}184@kVfLf;fOLBStH2x$*F`X}n3wD}wKP+s$x z<9l4(ClF7EJ|Qh;5_D74O2y674$k>2+VDHFHoOa0Yvt;$w5zpOTGP$8|0Qs;Zg7SR zr7-3zPKvL><%t#s>^DGHGS|iZ=b;wsO=z*S|J~R>(tG%q`ImDgL#Oq=^RGi%x`U^{ z{QxJo(C_MvK14dM&I>5?UK&1iBy-M;e$HPwE;U@#V)4H*4wmrS;4z>%V+;bZe>=v2 zmP^Ao;(UuQJv91Xk#-Oot}N)d;wC8bYbfmpc|VBpJ>jK+^KRm1kKj7LyP*ej^MNBF z!2YvDiGoLKz1Yvuy02fM|B4#}9eJ+~%!=u-Z0J9Nh9BCmxJfqMH<~VWVLE+HrG|{g z7MmGJ#r&VR2?9@p%%I`w!1Np**A5yPp6{dN`zrR#6`q!^2bqw-SwuN-!dY9c$hqrc%r^3xQt?rPrdvU3(OlD6 zVrpL(q0;W^m~IkE*+FR8x;lEci0Il#y9CeNz3AsX>K++2aY2Ke5$NHx9mKOB7u^7K zbM7+=I<@6L;WeiMN(*hCXvR~9X3I$7&lV|p9)Uu8MR5or<-xZoXvpdQ5*VZ znzLYL%XOIG+Mb2kR=lW(bj>`;&s=CE8Ix4H3U3(e+ydCFF^7wu@^I)ZU88lDM?hz( z%`$P9Lw`v_9cJ7d2?Y^|fs)d_}L&A6d zhOTQ)fsS*7_)Z1KMrb=}PIF9rRu?s%^lb)L(AWyyr#76mwH5QWTyv&i+c9&C<}7g2 zJ=-xm;HPesGR^_*JdZgaRO(5!u9O^T*Fn1wl#4uubowtw*d@@Tx`z7H%S5t{8#J_T zmHJg0QmJQk%~haWjoDwWxdwh}UE?N*8DXxuUgF;XeQext9+>O95#gK@rp+zF&6!_u zb317C-2wNH(9vphXAEQh?t<10-T?)}1zevvaXjQZR^ zL6=MWuLye(8eP{s90xrH=tdPo1mdJ&2O4-NvNxDej9q{_i%X)HPH0GBb>xO0QRBiq-ne6V+sER+G*GD zKB=Ro`AkBC#^=yiyXFhfIF|hq?pHGRjJ9jOcCc?GrlxW>nyblnvG1V8CjO)FafaF+ zXtv{KH?-QC!u*i_GdQ(IJ8CAHX6U)2n8U{KC{!IdGz+uYT!R&wIAd2E%W>(W)|+k; z!jo~)aD1u9p!Cgi^x&>GJm~mSp&iF+R&cA z9O%yDCM>wtpJOwOo}KA+#T+_qx(Ofk@Rh(UGomcByXv8IkF!cbgGROE8fH%i z!`D;D>7~3TX!OR+I@k08r^fpVt*_%h2tM5(se${Xl)r&*#+1iCh3Tj`Q-oX0+owSX|E2 zOVs;w#$DV{t3SzOCPS(ocO0VJG5Mj;=4&&>aT_GX+;80o6?r6;I z5t3g6$71CC+L+_S<7jFw@Oh5kVQka6*>{WYR^M&DJAHTi4C8OUr+v@({_gvS?=#=$ zzAt<@rOyah8CIs1Wo29KWYE~pssjkL>qUw2z4e3jqxByv%f`w;`*z=A>ki)%>(9Pb)`Pxdt%rQa zSr7Y;w;u7WwI1`WlNitWHd)X6Hd`q#rsdfcJqSkGHw>jf*{dRZu?)-J1y^}bbZy<>H=KC~*WkF09zbE~`ciPhKo#_DB# zC42*{pR9q_ZflUW#~Nxytzp()YqaIFCt4|Xla+1Hux49@_8hB&J=f}p66j#P7Rv>5 zk_aO>h3t32J-!vzcfOmg0_&gFaO)RqkUiBNXgAq|?P>M^yAg7`*md^l_8E4iJyKG6 z&v%jav+r)J$a=%tVsEuK+h^N%I=Oqxcb;HL)+1I|yWZ|*kFfjO4feghBdz;5lY|@*nIU?H{vG2)365ZEP!aZ+ycT z_nRDX{wXbZo5Vl01vSo}h)wWM^iT3n_8;Ou)ZgH5Y$Mi8|ExAbTxrw%)4?&r;hHDz z{NIS9+b6eqGB(#P8#jS+7Y13WcKRkhBNrKPIxi7xdzs!F`8~n>#&{rh* zkMbW4|B?Qc3DlM;tn#n+AG05hH3&P_f4u*=7|#hYEH3NB7;Rk)J1K^p9K+%_cfO(J(f)!gE@Twkd{fj$vD3SW9WAwi$9pn;}}pHiVyvYdfy9 zaGi~du)}e+??CKx5aV2lb)NrxxI5dF@F(9&>o2}ztOtCnt-t!#SP^@a{iyFm>v7*n z)>FRq))T&yttWk_So7=!_I&$r`*q(A>kZ#I);9Z0`%T}u*4w_F)(5^zt&e?ISReW> zvp(@%X?^Ou%G&L_!|G{|v;X6}%ZmE$v3~L0he?Tlwl45r==WKFwUqUMWmykew)K$Z zw;r}qtjDaN^@NpfJ#B@or>ukQ$#y^cPTLbXy2yXA zzpM3u6|p|HdRU)YOYI}#l9g&7VukEOt#o^em0?e}a_z&c_Vzrh$ewQ% z+gDp(T4~s39ec~h{sZp!9c|s^TV_?*L+x^Vh~3#9Zg;YW*_ZjR@XxRhv!~m$?OFC* zd!{|dzTAJM{}tbM>qXz`*0a9TtRD8kc6WQUU2TuGtL!oMRsO5}-}-K{e)QdDb+lf$ z@~oGv-u48$mp$I@YfrNK*c0t*{MY)Av5&V`*~i&y>=W$O_FDT``$T&rl~m>-dU3#vLCju^Z&trz5gcv4gQ<` zJM9bXyZrb0@AlvCzsLV4|Ks)(_9OmB{eSa6CUxi%`%?RH|C9bF{7;GhY5N)bY5#Nn zXZ+9m|L%Xme}#Re{hI$R|Lgu;{x|$@`(LtOwmi^jPng0|2=l&b)8|^Rr|Mq|B z|JwhR{~P~n_Urby{_p+Y`F{|3H`}+^Kl*q3fAa4U|9keo?Em=p`hWKS;*a{9LAwk2 z|CM3rl9)*!+5Z=N_W~DHx%LnLo>>Dk;DA(Aqy!_PVS!?zk+N(!n3$+2XlOVx9AuE; z;4qwQ$U#v-$*{<3OsJfHV@ zKcDygKi1+q*L5G(z1FN*%*;CQnTt~Gs;1kqsc-|#r(K?L@lt!MFTfq_FH~Qme%|F` zcF5%t_NvRJ>>!YrZxwg1I?)rr5)2`3CKJVJ@ z`hx3=t}nTExc0dAy1woDj_bRwM_u1@ec$yXSBL9y*M8R%t|whjxemCxsNK}=>M?4q z+Cz=o%BwF@U#j*|U#1?X99v2UGuZt(!?-HP%s18*3y1eD`g$ut|-cgsYT<&vebUENM7A>#9 zpPHVccDQ`vGURd@`_Sbhmy<5vxIFIC;_|4=1?&-*2`*z8fAg+W54wDd{y%q_tbWkN zi?zC3$l6@^TStD=R_8$e?GL&;D*aQ6`!ew8&p)rk-@g8H_RpE%e_1O;Jxx9Jw;G|p zJ(})(boFmB?{@~`u=8@fWTrDa%lY#f{0#p?tp~A+X8$2GI?ij=P0~Zs9Cd`VR94S* zdYxMThuV?qC}%uReZAB9>exS&kM?%H3)OMzMe4=sXmyNwf%=9&v{|B#S1(mB`$O*c z_Bx!;^6&p8{6*{0mdjDT0@IC{k}$2rv>>22%>dgUMXFK?}Kkwwknep>y!^DC*hbw8_wq)P+D;Wya`7^_TpUNvA9~W z7FV;qqx6s_N>ik9`0gwYXY2i_yh?gO`2~&$$~f2TbA_++h;ocHh@+_W__q5s#RBCr z<*&*IScdXWoMRD+?{F${Sn#lNC5{zzD6^P^bM8+oT$PV9KV=Dy>Sf@2d8;B;`3%l{ zy8vhLJ*#X|^eLNh45&nzrf^Z_;*5_w*d2-(oR!$F{6_f@&KvlFO~IMvZz=qhe^*YB zf~9HF0cOXsgO8N{iW_ijD;H-)_u(w!src3?Rrx;73v?)d!WqH`ao>v%6%S(`fr@Kz z6zKs)gz_83dK}f4a13@f&RG5h-}s~`Pb=MVGiz_D5ZBiZDP1MKA_wQVsBo`{LM+8` z#TeW{?1b_f$)@;+azERFV=PbOoBAIWDx5()UwNriiTevEqzyPK^`hbf<#Zeutidu% z(ml8a#{)-&KbTcPLfTBq>C?6~_>=afWU< zu8jQ(->n}~<}sVH9%rQJaAYkC7pFam<4GSXo0MmjPb;rb*l`vE{X2!}X6Fat-T1EC zL#e~}qCvP?c&wyX(mASkVtNS^W5<=BJH^c`abxcBQjqki(nTu5agI$m2jxNbIIawS z4`)4`#CL^STm>TIh~xqsOI(j5U}ZRZ^eoO%KZ0-R2k=e!czjDc5obozH?otJbYAmx zoMC(|o`I$KHf{y(RBBeP$A3GNPbi;Jb}GA+J<2zfpD2$j-J}bpOQbo942hqCx)$f_ zY{mIUKAh|F7Op;e6X#`|!qN59I2Yj;TpcqR*MLmJ5#j4_jYTBJbUjA39LN1k zxI)2#<8E{mtqRAFn()kY;~2^j9MkwjajEiC91-~1`F%Ux?a&)&P`-$9zl?DoQ}!#rQvMC6rMuy#=U!NX zi?9ptKK!zHO6(S z>y@svTxI0`*}od>S9Xbg%s(qs}grGS=x!S)bgFz7S>C2-Qc9(t_qxtt)E_n zbl)JlQxHFY>q*@G=V|AEk7F<)G*+=dx=?Y0bTQ6&xddmdj8j~RGgtUk zU01P%QZSpK2vAJKHC*>gS1J}si=-T7FwP7KVTsZ$(o~!!G8N~0%*2&i;W!^76!)%@ z6^o_0IE#X=qKa|eKW35hYN*9{rN=w3bfT-AZo-)YOC0?E@Yl?*rKeGc1YW$r8skcC(h2lP1>cb zmgwx>Tcw>+BI8%u--B!D>y`VId$F%>Q0~W7?917G%KMco*n`T4lr_>L%14zqvd5Ky zY?pMqM0X==!#@0F<*Uj&q;BPF$~Tp7Desi7lipVLD&JM=rT4IB-!0uGol<_L98}gx zUnsv*4l939ey{Hh#|51mg48*|SAw`FTiGQ_V)s(tkgn?fZr1LA}!(iLE1>MyS8C zk$$JTk#0IskG=BK;h$dlX%-$&z#&B3r*)MnH)|Dch`TD)Xo<|tu|#I(W<;4SrP0Qs zj2KH^#{BFI%Y4ha!uf@k!ugrG#@H-Omeh<`qa`cWn4Y`Pm}^{^muHO2wHo7cO3jOm zrIsb;9AjdkIU_O4XiBuEW+mq3=S5{1El~xz#%N21DLTt!ooC50EzHc#TV%;8U6fnzKR_Et;0vB-D>mTh5SK~`K=hILV@#h75qwk)ya z7!$Cb;;co+#B8fE%7k^1o@-o`lWmMnvt%sF!<23@$ERCN2}Vm^f+gFSSWsY$N;PFh zn)3@|jH%{%xkk(Ub$Ov?a4}iLoFzG0&Qp zXtHLlFj;d}WfdD2=42Wd=LYOlrvyBz&I@=`-NAI4PQ6akW!GsAb?7uqF+rm&pP-rC zH9>Qj1!xW!0yHn%12k_aCTdvMM2#{kP}ATD(lEmmjY@H)M(K#us2s5xS3{h}H8KT% zK0QU_-f7fm6=|ARJF+zHj&hBsVzWl;sML5lsx%iGc4#~e)f(LCO7oh&L3703plNqB zXf9Oj*Lauj*Id%MU-LRUpn1-4Kr>Ep5C<#|YFwilHEoV2O;Fc^8Xv_&8Xv>MnsI*3 z8b3#;W;n86<6GXZ(fOUw_?4f~=sHhmK2x011ay9(2`p!B0S<-RWIv^wAKsJ(Iy7!U z4mY=*17R<3soHKe!=D$?Apc9`5|b!NGR8O(0iM%vwE#b&ozj!L&V zomFlTh8=FR4b^UQ4GnI3$9}gcN0Zx#qQfmZvcv7|jt;jNN2l9-#UZ!r9o=s8I$v|U z!SK3Utf9y49oFymuD;*xsJ-9qy^emjIK>IK#pNg5rgoihd!LZk|yCZVjEEx%D^(-EeM?TcUxvuW%^b6C?HRNsdVOBt^8lS68(Ag;6o?s~oZJ zD>@gr8w_#ot0Gg}lgm@wQyfP36h)eQs>9^&vnk8n(3$1F&Qb23uGs8uc2v5L+f?PA z+F9kEZ`k3UYp8brkTtk}q;GKl*xul7>TGadr`YdqF5mCo#}2rEW;o!UTYkVjzw?0m zyNZME-dzXXFNtb&f2{L<_W?(fyT$K8cZ=d7_aei??pD8McblWb{T4^JyWOwfeUqWz z-CEx7zSVKUy~6LLd!=L0eY-<3rrJ+A=5KzwF`wvlV~WakV@4dhF;^=mjM?d!Fs4Ki zFy==?z?fl2(3sLl{g|4)`Y|_mMvf^{M31@M5j&>V5I3fu>9i;GI_*ijPJ60Dr&TB> zXr=NA+AF#yXa`t;_Mjm^`>8!Z`=(-|R?#(4D@6rr_d9~L3d0nwi{eVH_vb19y<=U}|%~}sfrS<|xmG&aT4((V&wRVs-Xur@m zXuq^KXkTzNXfIOi*Irz{Uwdiie(hK6fcAOA0quCjL9I*IL9IHfQTwc;Njs(MLG5LV zhqRX&9@dWcYu5TZI<-GU_G>RM@7GT7JE8S2KcSt_c|!ZS;*@q`=NH;Z<;-KEL*a3S zpVGr$DS1qCXgsDk+&r$@JH}(TLF+NZbRJ*pbspc?bskeXbskqKCU}IDPw@Db1$ew> z2=M4tO!RQ;n&>emD$wI~N07%f#g!f*e!(6y%k>_o7118k4JjU9DAGJ;I7}YbbY^+X zG?+bRN7_B+DmHsukV@df5k7->e zJbq*+J>D{$^jO+?(&HV)DG!gXQyycZ20Zq6e&+FpW6RPx*tx)SjUmqSrpOe})#WLkMu*W8=gWGgIZU3HZOZao z)0yR&?I`!W%WsoshGMg4j-%3Z{H7|;w9YEe^@bgud4_7wpIL+FFZu@0zuOx;vpO3* zvlaV2bISL7o?!<(KQ|ok%qu_OxxVv&=TXH$&x^YbdR`jU=-JYFzvripCeH%D2R#cE z4|x_F9`-EsYxXR2ba-xbbbFTj^?PnM^m`VT_j_)0obcS@cha+N?@7-p$Drp9hhprl ze#)`m`{~C1L$4cKT&^4YvqLv_hH}E#+Z+?do@D`Je=-D&-Lp4f><^Bhu^S@wV|VS< zkF|A1j=e<@J@yVq?ASXEabv&sXBTgYW*2wv^SbzcKfO<*LGSaBL+{gMi1KkL%6)!` zZ16b~+2M0i(dnZx^!s%9=`VZHpug;}Lw{M9A?mWJhW^Xm@w1QXHQ2|!@34@gFKSkAJ{V?|Yv?@B6Sr@B5%3 z%J;aU-1qO14Zi<~?C?FM==60n^!s-D=`VlDpuhZOhyL84lxBYaNQ?3WsHkK@F&K0g-rk%5KvJ6M>* zpbR_d(1d;BrwjYopbI40^m|9#e9{B?!5Me7Pp z#{&zq{3jKjSu?$`baq9@l( zFS7VI6g?8%P~>&IvFHN-`--go{Y8&P_ZR7o4-`%C|Fr0peW!~Kt@*B~$X{3dShTMA zZT|_yz56B83+~lERn@_3~n=h+SY#vZ4H)~_`n?F-^ zZT?1OtnjQbR-9I)R{ZU7YQ?bXWW|Uob<2?Iz?Qcw6kFd_DYquXq->2>HEjK$V*l2q zssmfQDmu4*qUzduTy=8mY8BgdN~PF#ZG~dnrz+*PmGa)NQ~~$WrxV8d zpJw_?>A^Ex`|rk3zW*8K6!}<+VVp3Y)IGxzMLcSfh*O+C&C*3Ys!7CV68$?xzxg6x zBD4!Dgw?_t678I#U7g6+3mb%uq^^xQ)eBL-iSk(P?n_yKYswK;@53g#+MP~vZEzY$ zvF|HW;JnJA6$D<$n6^g__Zjvxrm@ljlRtB;uZm8cN;$~rcAe&D4 zjzAVh_Biv`C@LmXzt<=#h3%8s>uw#_D15JAJ#PK8NtDl5Bn5Gkh55o}VYjf~X{Mqg znCfRLDuda=F&&u--w+l%reht6cSlZZ$MkPd#7<>L#&i@be5SD;is9=N`%YuA+K%lC zpXsba+i6OR$r&^nZaJA7 zrt;T0b@kVqD7O1IIF+beWn(T>4%Ji+%c&f0A~iO)nbg`?1?gpDTS#vk+e-S_*f!GF z#@wktosDU!Kj=yQ!AdHJW2ijP#yqGTj-_%~Mdffi8DwKS$Y2|*CPQuPRx-@Sc9P*X zb{iRCV;53?dK>em{@_Iv$Jp4#6vJ^8r`VV;#c({u={9yb#V~+kyNv}>3@6igU=8&T zCsKKZjZLC*cm>je&#_Guy8@rcmwXwZqn~m)w+imP>>aWAb z!l*wui~55zD1X?-W>OwrLwSh5;EL_Z#v&*W=TaWdq5Oc2$&`oJQ65H79^dE3P##88 ztSV#kD26vstSe)26vKrS2bQr#6vJf{>&sXo#c&1n3lk_GQ^uB49^OcKcoXH*%h+nl z!!?wLsg$>uv2@DAwUmbqv>sp@l~wg~^Qas?NagS$vZ;(cOg5LXX0iqM z(;{2T*rQ}y8GDRuFJn)T9c8SG?8SYh$kS!)8S>aI>J$Rhz!Mi8mk51^fvU|wbt?W@Uek*&!ncv3Va^|CX=<5ERsB3$zn)t6`N0bSFr`8u8QT5VO1=Ztf*r7WK9)Y zPu5m3E7@Je3dx=-Rze=DVx?qX6|<9rRjiyGs$%`*=_+=D9Ij#&q-HzYLTb0OO44UL zt0H~3vy)`Zc6N%4-OifH%I)kCvSB-Wlx*D29wVE#voFc+?d&VEXFD4rd$+T%$)ofg zGqgU;YD0Awx%zanI5N1CEhfV{Sv(oh$(E5Zoh*@z>trj)#7>q(CU>$`WO^q{Ce5A9 zKw3Ll3Tf+Psbobb%OGnySteQ6$+F0XPL@x$ce3@NdZz^xcXu)?#juFtqn)gnVpvLX ze<#~OF|<)U)XB;yhI=WtcClfyu8TF3&0XwKvbBq~knLUU3G#3kYbATS*wf_EF4ji& zb+PBjfiBig4t22?$>A>6L7wSiU8D-f?MSaf>{Zg|5POZ(9b&y?#3A-JjSId@aqJ;> zlw$Zk#fgX52Nc5(DNZ@WKB5@*QEWcMKA{-?L~;8eHbQnBVn36I53yg!?nCTXa`+IQ zR=mFq{90lR?=RuqUXhmuq(`ahNpqCyVX`(#HT8lMfdPkORMW`r7}dgyIx_=&7pdYd zIms6RmGJi$Q{?S@FSbBg%1h~XUEsWt^?#XN%}rq3#I3J8wf zY>~D~l~NUsJ5}Q-(`{0X^q{z!<}s;7dRFR@-jLpulsZYL33UtI8}@A2^I^xsE}r?# ztTVI9ubCE}8g2`JHT+b#@3ph9ojTh*dtkO^&Si5J%(-`tPsHMg8S-wqd2ZX>@zG5d^7IrxRJOOi#!%jUVQc9@Wt0ImKR4Z-n4k@;zt*E zEbdu6usCIjeaY4(JC;1UcDY5LO4rKY7> zOLLYMFSRedb?NO(?_7G<(#ECDOP^Z$%+lAE_AKpN>R9^2QfZlb*`>>-EStS-&a&&5 zS(X(qt6Fx?vV+T>T=wd+*OtAr%&}}>*$>NpS>}@9ns8~tbqNa+mL{x9C`c$wC`;Iw za46wO!tsPp6TV9LF2OZ%Y~tmK;fYa+v5BU{y@>}BUr78h(QA1E{>ow6@`~l#mhV}9 z@A8M2Ke@bPdDrrjIAwn63eyVfil0|pa^s~p?zr*I8;5W7NSdB>b&@`5Rgxj8DXBT> z$)saR$CJKE`diXZNvG&cp^ zH20=0Hyyg^*iE0`^vzA*-*omS*W`fY>ylHFQ+YZ%ytiE^!t8-V| zRzI=&xz#6DpIrTq)j; zHyC#sYmAM?$Ba+l%e%iBf5gE;uhj9WQ&YoISEoLn`daE+sqdy9O+AzPYpR?UpJqzC zIc;-VL)wFBhtpn88%Xm_4@h5@o|RsleoOk@>G!4|PG6F-BEy_flCdY_<&2XVr!p>D zyI`$#ZROfsYwOpxu62vJPf_iCf8Cw61C0yX!t)r^=p?otSOOF3v8^-k1Go_H)_KXD>Eq znk&sOnS0D{m_IdNk~2QXFDEQ#Zcb!QR?fPd;+&G4Ejh2}e3bKL&d)jHa;M?1f7a(d zm-}k&>$z{|ew;ftFCcGXUT)qid0*xInm0b*FaO&78}O$%i}TC!_vAm4-<|(q{=D@I z*5|ITU;pO%-t}IV@s=RVRhF5ScuT6qZn@L)n5DyV#&TsrVZnxiZ3R0D?kjkrz)|38 zb+ZOo=UbDlS=RN|E!HY)o%M*-wJ@-7PT}0bm4z9F`GqG7y^1a`@-K=i$|^ci^l{PW zMZ>tz->=xeSYLcY@s8pLiWiq;msFSRDmhZpQ}XwcD@!9v=a$BnE+~yJT~WHa)KHpH zy0P@u(w(KZl|EW}r1Yy&-wpZ=H*8q4p?t&R8(!b=%?91g9XG#n^J_QHwWZi@w%u-f z(e{q*ecLJ9=e9u`EAuJ~D4SMxQ(0PBL)nXEua*s$DQ|JR<(gX}Z<%+?+>Mrvr5iVF z+_Le`jdyQ+VdF0w6?PZ<_4X8do;}}wi+zXv5&IK%seEqvvGT$4ugeviRGWM@vD&MO7pwdx!qH?72mrAdy$g1?JtyMd!c2_lQ ze`xzl+h5=Q&i41Wf4zNV`>(ip!L>V*cG!1p-w|8Ay!zql&g!n}?&^1|HMfqxwfNTd zTVKER+gnfHdSvI(os)07^0x5X=G>Ng+uqw+ZhQK+i8bLhmKs~lZ8fzuZ`L?!zN`61 z%>}#0?^?HO&#u;8J-go8_4cl?+rw`!y4`mB2e%))U3JF|cl>|HDF`uMK?yUyMz;LYUwBX6J^K0^>;F-od2j2zzufD$cjMl> z_U_yJ{N6YB{=E0sy)OI4?z?2)oPE*zZr!(YU;VxSg|EvboLN8HRi$xgg5A@`40tzP z^5rGnm-&nzbNRsKpIyFr!oCU9Cmx*~6Ldq6_Nwo$au030dd-YGX4KC(G~>M)IbjE9 zJrI8D>|bWLNBGHa&ox}P^SZRCZ=xQK)?7bxzIW`bxZC6QFKJs66aTmP@8d69I%DaA zWtS&TUUBz|msi+UKCtTHo9xNG$y?WaWDH83pZa0y+_aCTZ^Lys( zoZ!62^WMonQjl5nXvx~rCfmEWOxyU*man%=-S*3l;#=qKI=*Y%?e4X^YoER|^qw~x zT=sh&*mdCcgE&!%UGOVo7h)pMpRPkrk4eTf7gHprC`{3qVld6Y6oF~9-L-f;8`Gtj zd@wN<8-+7#G400m7^ZGaCouhj>5^!aN1r`=_Bu@dqdHH4M9cH7p+B{|=jW*N^P@3N zmvElXOfla4INM(U&+V74P^9uPLg4&IIhrDQ=zRQFG36JC`lJ0(yL0ogA_mSp)jM|_ zl)u}#JYQU=#ACd9!Z{mf&z`|VWnKaFlS};~?L4D{aun0QQAZ!^Rzxn=#U@7T;+8DZ zEn2c{QDW>WU2N>ChaY-qt{&gX+0Sl#b>=TS+fPi*=%O}f&u-i(CiK41Ip5K~$YEqh zFpZ9B0FMVT4PiQsiR#e5(Q*8_Kl^pO2L1f~@o0S#-8lQvQx)-VwERyoZe*?tRZ16L zG+}zc)e~o+Tz~FVU^QB-I-LDr&d}xLSxQ(&Zu+_5dF9qWmgDYv=d{Q9F6Xv)hL%*8 zTDW#?hDBGDVaZxss>`rg@+`A;){GLXuGm;GTQ{j-Dz^7EOX3q3ELohu3Ujjx(kxl2 z86l~KnIUO;Ir&Cw7DmUia*K@StaKL5W=##98peg=#1F3sZ(=}IT`6|^DNoZECrS{M(dERE6B@bGFFCu zQhM;DbcX+liIb98gfoK(|IcLsnE|s|a6p^ZErQ zV}4d{Cf0G5IU`+HYy!I9k~m8#CnMMT7i|l33yf2%gjp0dc#lJL|N$ct7nAGoOMn3wNvNKyDkK;S-uSv6sGbQ z6ILm00q4fN#%~+PIom|OB_rRGmzGgb5aN7Nspa`O-a0?8z&ctr(_ETwDsax`pQO>H z*_cM_(OFN2C7YD43o1Z{R%c--s;f`loJl3eDE6{Qt1yb1VNo zh;+PxxBjOcJ1d_*;B)&uXX!+`^t`^A$Y+gqgAEkxs6ecZ^J?pYjAm@axkl@Mw(|aU z?LT#H&dM}e3-S8+Po9{+sO(Jt*7NAnIJ2XR$hQJ4VOpVuwgjCuPiMxte1-YCNritX zM2mCF{%WOIGO%AS$k3&kj9IzV;eRszf73{#!DXKK&%*;ZwZMNG&AHL}@wufgsH?aT zmne9taGJJ@n+yI@xQm6sK3`gxAyP#RUV@?C1?Mmy^q$$ ze9`-8eH#0JUSEOHD5yRD~=W^sF@e%(7+~anD@rG5)fU?>hce zycQ=x{zXe(99AQKp8wzZS;ctOc*R)UHDmmEOuzs4=bX#9KQBtQDd&&B5NY{% zQZYrEf{S`JxG3ui=?Xl;PyC0RVyyE~5Jk>X`sw`dFY7z|z=c15YC-LA)5o!Y9$HSR zF&Dq|&tJcz=|8R63k(bRv3Q8>*&Y$a?KXaMI8e+~{muk#q>3Jb0W3DyCl>OVooIJL!^tbHjLu7Mu zf6IyAD|c7y4+x}y&%`}@d7A0o@gTQE9UG17w3 z5sNVvjE+@|u3&VOVq68I;}at)7#*1yOTp-v#3&H+(a?PH&I;=kV+pYq(|l=O)Iaq} z{ZLz~&y2sXuhEBS#UB=omNH`qPOQ$PkQuXoTM?rV(V*b>ZblzcH_p1~hPM&5upqoP z<>@gC$;J85>o8c85u-L2mayDnWUVHK_cho!@_XbqV(Dq%TFFIA*oF;8vHNlUEK*}&fg!T(}xAhk5)e?ZMD!_qrYn8d%3lIlot46TSVrihMUc`bGzz-ZJ=`tt%#_@&B%11=(5o`RM9j zRnnzqq!|nGZYOti>2i$LG*bqD5B{%O(kI-6*vR;K%htp#NJt$0l>Wbtt^vBL=fCt% z@!MA@|D|UCf2ur4U)cTczyDnW{}-(R+UEbb-P3oZG>v`(I_m#LE9JaJrSHY*`|)aMlq3-(|kT6psq7N_CLeJ^Y97qD5}F|OPW$4e}(jVm`mKg9K1*#>

xN;5jLR`(2&G0JBHxAPC#ZM2kl3=vKj7hXCXc98kPfxpVzPi)T@P$t5`@7oQ?d*a~c*1 zO>o~B%ug69)WNkH7IOMo^n>{hapgfs^^XY~;S5(6Vuw_}rA@=0LfizYT_abn7jd14 zYhfnFQzG(Kkyk!s~!4KpL(%9TstUJ1+l6#7N^Ak@-& z=gMsm7bL{Ba^)7d67_6wl?OAIa95ikJ@4tz6YW#Dav01-UIp!Ns8z!@!fs(3v>~p8 zG~ZgTTmjc0Z-VP!I`p7^xpE?;`Nwlt>mZH)^phGkg5@8A)ZZXiZiiIf0^N~s=E`>X zGnUWBl}*sO9B>THk1Hoa+@Ufg9@6@VaApToW&k<;uDT zH0&SfXXJhj8^U@W5FUfL=WK``zK`;b`?zs12hUFsEJNN~*xShS&F~K7>x3zABjQ+i zCk%#1$pd^GL0q|GKklS~yiGXVfc~{Cq>se>!r@aGU*A3r3&MUS9sY>%b?nu!McDte z+{<6rwZami3EqYMMmVI`c^Fp?73DhNP(9zzbVI7If(Fd@*gbeXVq6uF##eH;hMiGh z{_r2zzEikzG7P|eB?i)b^jtX%K8JDYApTNCoG(}I*~9lUVUYG`!I0Voab=x|eMRg8 zi?RG?>Ug~ou55$l7*`DjU5fEmLN&I}3a%UnaVO3YJ^TTBL8^axH{ZVvapgfs%UJ_y z9MxR80`A9ryd+Osa-c$?htXih})nAI5}^sEU_9ZF+J|xFP*JWE z4($-zKcxC2+xhrULuxm~l?O!JFXBG97USy>`F4?ygEW3$ScCHZD&9{YSFVLuVBFP} z8rJK^LQ-HQ42Iib`!?RbL0BQQLTnNtF_6Zk=gJYHJXkogl`qdxNcB~aUT0^v@OC3y z`Lu|KL_7$KFy0=K?-uz)*nqq@r0u`I0I@HUj6$>aTuaOFBk?=Q8Ge!ukR;{7!3cOm7^ zU}s199=HqnT1a_~$oH8wY&Y_akn*-y5H?L@u_Qr;UYt|K8Au`sOtnb}Ql-Y_wF*2fl=M1FJQx z1ExdV?KUJFW+CoN*05+82EWAi+Hwys_1L`vpBvFnHH?BKLI!EOA6U-q7Pi58XjciT zzY4Bw7v=fF2uQC(A4v6M6Zz{<52;-QR}K?#sEC810k1PJk=KfReF7hc8CIe^6jDFI zT)Ac$kE^+IIPAy#Rqz<*Ke&{?PC8%#)=LBILB1Zo2CeWNm=E8A@o*2;M;ttY^{0m? zkq?3r+6Tfu#9DY94#(qtFzkb$!(;F?JPcj&{;h*6r$8EyH>B}%|Fgpk>=%RK*RST``$5=>_!y*mN4at%oaVyJ4cyf>Nb?JaG{2bnynhX( z`ITJH<0R;OzPPd%r0wPmUKBLH(~#!Z52;=sS8j$Om|qijb%iLmi}Df?TSXirV!eo4 zWAMHQ{kK3Bo`+_x93k@IP(nV8EBn9!%yKxI+YM>??63>@SV-fG;mT*Q^PuuxNXu`6 zw0?b|bNM5=1A3l645@twS1y6{x=Dw$9+Dufhge=77sHjk;Z&>#FYfB2*J;>6)T@LC zU_7LLpoo8u)`=1gD=CD2tM9WNb4mSDzW@QT)AxyZh?n<^|kmtgM1}d z&WE&K!i2-&yq{x``Z)@5bIQ10u55#}9`umbL(4Thu7NbpYOWjuX@3z4Y54;oEx$J} zkMrWn{j;!t#`5=ZS2scGr;#h$AUzK;LSNy?Og_G0_$$VDnk)B;d=LBw^4(my9@6jq z5@8~w<%@@BP%n-vw}#<)!|Tx|42C{f&c+#hIV&KI&(4*@VGk{*$OnsjAf$2kUCnJ1 z)5la5`__4{6+eT)8`x&!+)?h59Lw#+l5OV<9a^ z&osUq&5+8QxUw0(hIUDip07Aa&sPL5j|=C@8aM^dmx{Z(Zz`|f3#onwq<-7Eay1M> z{Yvg?vnV%-@_0z=BM$x@%M;6$gCQ+m2E=W=po9efA*reOX$ zs)JNs%avmwy{?uj2JvA=Pi;%IT2m$BKN6$R|(X<4S@w?nJH}4r$!pqTCD8 zxV2olJBW|F3DSHTxv~kqg?5RM)_*Ld^%>5~Dm-?XhP{e>Gu(*&ZO{(WA@v&pX?=xrWgpmy`iFhEt(W5cJL)wEt0A@Xh1AZ6 zE00{l>(>fnFUI$%=*P!f!tlG#=>4W zti|`A7{_U-Kz~E98{-~?FQ9w?J_q|@JM4pP@EH6I_P}po8yvxQ+RBwpkhaJ0G5Ed~ z{cGU;)UO*~p95Su96o^jfCk@F!dR$>I< zw4171Y)gVe5tE62gN(O>IXH8WuSwEe2a-K^0+EI~dAmO}kM)ND7( zNB*v67T5z1A)gOX6w>&MnjJ=b=4Um#4&{AtEY%-Tv#(Iz0}D`I2dz*AY5P9*lbY>E zTn|^m5_kZ{2!kQjYy45oT#&DX^f{#jZlwACz{^V@^%DV;p$|L=`-Ztq!g#1f`#`uG z<-^~rSsm4b^!n}=wh9{{&0qgF-mf>j4fO}`B+L(693&S9_H-Dz4zYP>Jj4vN&Am1~fW;Y_= z09z63;Zsn1O3jub-+xlgni03aM_?VKe!?L=k6tI#ED`YlK18-4ZiSD-dPwymAl36e zu4YMy2OVnmG~zb+3~Yc@FCS99BoPmO!t-q~1o>oGjE4+j)*)y5uzuhOq$<@g7goY3 zSOK%34;+v7?H{YzWS9bVPz5i6^kMe`*!+>2T>+b5J;u`rX+PKiX+KyGm9P$~U@eqj zCHx7`hn2*BFP|$1LfVegkEz)T^cM!7Kga{Bvf_9XINupC<7Q?p1IcT~+1 z&`t**MQnOk&300~chn3Y8AAHrRvyzl=r`( zX7iA5g%vOfz5|c;s97q?V_xU&`i`jC^~krttuPTf>%FFC+Yq-yBkHHXSj2tZYPJe- z+pB68gSZ-Qf}yY$<4b=<%^pMC{IZ&Dfy0N@Y%?@L+KGWyi2bGJ4bvJQoCNR+%4k6BJO}T z>`xm-zCq-}AdP3FL(LXqKRg6aqTgmn`{O!D`)?bh{!6%WKD;0OdBII+r-D@f=u22` zA}4RS#)>1qwC7k*Bd8qr4l^@*d{O9gym`2yKv_za&WYE1%-epB+*= z8&|f9IA6qOSb%ZGi+r5O_qFo=o8i4E&xh2HnJa4{?e8m|I#IAH|52jkE}YNz4K zDp5ZC1aH>?Y25XY>i0a($9))5yAH10CgN5Rx4;sNt5)P|MBWS1_uaiMc;4~(rUfFF z!y)w-#+8HN0km&_OwH1xCvr%O3-&zV%_g{ANh)Ok6od#K|H~g83Lngvf`B{Nabx z>~7>MAT3Wk^g|pB{h_eNN>ONb7e{*a~TV)j+D>ft?@ir`jO3 zYvsz#B5o3KBV3R1REm6s$a_QTf8ZdtKa@8?>Zg$_>ml_YF7ja_A1vY^5eLFNwAYBd zO62VaczZ8+Kl)L@{cvQznl->7xCiZ8U@PK$Nb@&y^4RD^J3ACFJNa`e{+sogQI+y<##3#4{6!Z=|J+>CaiklF=v zWgk(lfz*CvFE1bF%Ds^K>wwPwMR~I*uN37aqTD3P(?xl>DA$Q{m59&Wi{G;t&mg4n z3~=RcNb_rfG`}VhR|@Sg1MSR^+L^d=b-kMXg7qD75BBGHeS5*%v7hU^8}DnO8B%}o z!Z2YViS2QC5AW|ZR~~{?zfaf%Y5T3981-B0`1a8ZX&g;lxk1GBBCdm_c%E${Un25M z#AohuwwF&s+Fm>0LDWx&Yq6Y3khYspNb5xhX09}@jtbj^O%R7NLP{Ww&&rka zMR|%a7}EGOkm`q5^Ys}Dsa-Hv4ivFY#J+G1))y1`GdrC1WgDdD!^-2he33VaI9oXKm{gkbI zeI!9@m&ldlL>w#P7`Pha3ljN2k#E_8_t(hhLt5?_NZWH5q;Up9>Q~2=hb!=T6ZLx` z?lT{97*cr$S8m;m?F-8r3Rh!!LpQ0}cNnh!*-4JV~1284)Kx<8L{!W1r8z3 z7jY28UycqLyqT9bzy&Bz5pm20HOodnL6G_zF2P^og2y1mdbl6+YcJ-p6|P4<7(Rr4 zhKlh10&ydxd@_6&d0&y&7pmFISPzG-YIY~}2dUmj0X|QmULah7@+J#D-yk0dslVR! z_}ql@9$1FB8`63^49gLBz(&{(H^MeZ>#Y?QBW{7T-kPBuaTBEV)(A@xH$Yl%_3#$N zb&%FuEi6J@18Kcg!xF@mkk(rTjD>bMADZD$sAqy3P%j-mh<4_F80N~=umR)KL0aF{d15=tRkNeiAI!sgQo$22JO}TaV2T;*3$|pdo#z$Q z!fBX~9cDr^w8A8KF$`bFw|`$D{yees^>8{1pGPp?4oKU5J6CRl^m=I$S|Pno;~~|z zoA~Rr1X4RIS2l~-B;s^v#Oo?n3$mD`|m+(IjKjvG>ad#V^WbdH-Vn?-CAaXL(;af^J6$R9O|al>jFH*}7h zEBnA1$Tz0o`GA$ehBf?iM>1DdK`I|KaEDfNdxibUJU%Qub`y{5A$@+S7Mg|0!Z=~D zFdx4JX+GU6xh;^|H*@7CVVKAV3cZEHNxc4m@Tjm=SP7~B<{P;xNd41Emh`#m%nEKb zqOX}mCkqD?c>b8MTi7J56IKdM!U#zHr!3>P zE#>{Ra^)6bvdG5?gM|z_+sE^E$y_-}*o`+OG~PC0ozM)aUC&}(-p!Q{3&TX-OE|cQ z*K2^(t~HLwC2%_8U=as#(_IWQcp= zXRrf)09)Yuun|5BtKlcG1RjT8Z~!vc4^Pikvp(1l9k2(UfE^Hj-#MfOb|S8YZO{Zi zf^l#dzrSL+vN!x5u@_e!knuhW?R()fsNV=DBTj*|o|Cz9O$3gk;C)#N49D-eV{`C( zlwwHx(`2rk1V6y5Q%qNsv52<|}SFRQ6MBYotg#FWa z{a#^*ut8{pw44o7xx*p6{%Ni}B&>i`FGiGy3B83X;czf-e^lrTsh#yIZW5&NCvxR@ zVc(TJ-y>`n)(fkJHes?b98&+uQ@AZbyq{*S+$2mC`50lK@XQrrT+lf#t{gAyn9TDn z!Wy9o(tHn3;^iG&xm_46@)}`(Ag|X5sa^X-9#_J@BMujF7*`Gz_6P8KO_1uv{~wy} z2fW#HZ2b7W=Si!k2!bNWCVSr?p(w(elcKz3K~YxIQWQZE6h%-JMG*uUF+o^189`@7 zH?KhsbDY=z>$C%aMJE-fP z_4xP>7I#hQxM@!x@i^ge{Qu|Qp7UR?*SEV-5av2nLT$HbN)+{ael%q1ho)4pcRly? zoTpECob@>E@rcJm_;;?01NcuozAdje@DR_S|2;g7E!69M0|TsJ2v_lMlrP|4F^^xt z82%gAZ^Pf&C|Ae-5SQ@;SMXmrhI)M;LA|~Y;gxuFYu?ww9sCp5^Oh-P{3CJ6ln~yW z`kly)f-5M$g?fF@U>_#k#;xr7+`T1#FCqN^_4>ST$^t%(b)9m@-ML%XI?tLii4p3L z;1}rc;N~{|7V7vLco`P)#*~|Pv)Ix5lqqpf58)q3*FV0Xtl!M~TQjAMi@Z))aT_<~ zeOKCF!YunSG-&f`+=RaiF#c7y;MQ+!ug6wUUytSRpN#8xfWI4aADcvdeUf&g?jYvr zw|yg9r#(}4QOj?+Mby_b^Qh%3{q}mMgu1>(Q&v1)_IL@O$N1+web&=Eeb)XamdIa5 zZD+}ptq`xX=_ikxK5t6-wACxPv+e}Gnes8z@=;TUJb%F5J!SJ~qL$x3!{)JvT5s2s zmdD#3Z{Z6WXWi3lo<4%QP9ZFlza3aRTc#ZRr$2Zp>$Zcx;=VtD`o2&G4~UQc-5*@Q z_v{Z%*+zXnS;6Py{J*UJ6l(ndb(|->*?@9rW)D2xM(wY`o5jE2`67*9C*J>if55Fh zwTCa(d74tfF#BxP^Orq;$@8aC`*czcKU-?=zhl+W7uu|p+A@+UP1l5LXH>t*HLc{@5y*)@vFqsxP?=AZ_+36O5!B` zj&UbUsr;@#;FL@a;7#>;@2Ec*BR=?Te=tM)O?)bjqVA8lJK!GkC6L$B{x<6Tw@leY zE#Gttcpuhb3blOWH@4n&)OD^Qmxxr^UBEcw%$pLyyAX#>+2_k8T7KOvqn0n3l0hw> zHYJ2we(%?2$(_cVG4FA_7x|;8^T?Re{guTXQ;x8}c=y~bx9L{g6?eg%b+c~LZU3^r z_x|-RYQHI~<=FPIJ79d}-!U#QNo#$6)DtjyLIxcqwu2 zr~SdFaSY!|dIaBw&7brK^LW_q54d!tO1MV9A=LKQe$*eN$zQ<>=y&sn{lQI$OQ_!) z9l{TiUft^t&ew6_CrO{g2K6UU+gZBK<~!$(yJ-~GZvb^2LZ$?s-}!;n+dw^E%BbbH zcWs|+qSo6mWzFNJ#|@ljK1EMo_4Fv}`X7D2KX^0wP1JT8resmC=fily_umKIqwiVz z0ltjS|E{$+W=dFP{D(W{wp&u^w`fWMpG&#j@AL;N*!gyU@AnWk zQ0rIS=(qZVCu-d4@4e2Axut9EK9j=_F^;8g_6IGF$H6uI!MPlVIn;TNyGb{SXX$!u z+jtI5IY2GH>sIkT^jknJ-}r_dhZ^cUs-~1ZE_qzUCDv)d)AODlptisB_5R=z@=MrT z4^s}m)*oC>`V!uac~rOhgJ0sw)&0TeNMFS)^UC2lq;Fl-A3T!wG8hoY+{#z2pCxzB zoy2n}A4lysW=hoa2i?6*oA(-O`Gc?6yxXYt_DtFFxaILSzKL-*JiYGeY1DZS;AhBh zU1{xXo3iNfg2%&G^ap%2HMO&0Y1{#Zt=1yOL!mpE#NO`XVmjE zo}b2H@<;GzC+wYO!;Eb@`+)CB&RdTG2naR?7t=fIS$ zORe6fDFwVQ{pRtXTwk*d`Xi3HE0^^5zBiS1+jTn*OE|^4jN`?uM;djVwl3-qHtE0O zPPrNU3h9kcTK{!ZD##M2mhb}FseQuotEO~o*59VPgxb#-_MV4PkJ~WnaZ8#KM=jU+ z7|&bGXB+jnwLWUct%AMp6QLfrqA3}?kmI&rwQ;mfX@1zoF^M|wDAs9j5VfCjh5H)w z%ezT8jGrfc=|k3D!IV7eyeIH|I`0qm2j3>%yMX;l|2wGrrDaMDwVxd7yk}9zKZ!c; z2~);V%SFmupP2X22W;M*_uITTQR}Uv&U?+2S^N?@qKbUACDmB!4}MO56@P*yJcINC@)ep?4)22dujBs9`n642#CtNnh1d26|7QJW z-2neXeDoS~_f_UJUP=4SS6WJGB~w;V$1{%=>g}J; z`y1R>ns`3HBiArz0@U9DYd_iCK>hu?lE>3-5}(UB!fs=#KiKEIshcu|+U}$|b9|o7 zV*@{>>w&%bJ;~N@^NBXz4O5z^<1OJwC_jZq%xeN~&+#9{L*g`ca2TVc58*EuN5qu% zNxT28;twddgy(a9-XTrs8ecw2`Bd@AJ! z-L1#jd^Sy4^SJ481$F;TqMmOVJP+q4Y+cf*`C-)jBN%UZmGUnKqDTpQ=UDZ6+X>%NX3pq+8gAM^aQ=XW1v`*a)i ze9WNk|FkI))Nux$e)7m(zI4rO$K!p}^Rb0mzKME1mOP&JcwpS}>yNN`kD$&wK%MvY z!~28xFy3|S%^NRgerY%49*%K;BYhloykn-MQRh8`@28#a!}^2wVu1hQK3{#Pm9Lo6 zeMo=sC)(LWzG9iGj&fgP9p>>Y;v{y-k0M{uOm!b@^*g4lB461{6>yJob9grKF#eqV zl{97jLAK6|sOvoBaa(Mjb=35UjIB%Qe{4Ob@neiXi@F|%59|*7gk{>xV-1(m+(#LI40TqRw;3ltH|Vb?w}P_rGXo4R4@a18+w^75o)(34f2Pcn8uK@Os9X zHzk64-8xM52j8Py8=uVeu7!HNt9yFI(~F+Ih*~d%dc6xwIZ4{}?%0$i)NvO~8A1I$ z$0X|SB*r{H>iL8CCFa$-JFf?EF~NS|Icx8~dHO$N97RgH_5Uut}V_la-sgBk#WxPoTCpioYRF;~#MtwZ90qnP=FP zy=Z^1OL`0S{t(COG`>Brt7)fuJA1y`b2r=uX2>s~uFIk+3!Xpc4kKGGHHcb1Gi1km z1hw9?&Fj3?yjfu|R5YvY;4OLe@c?Ziwe-nu{dKgK_Yk7S*O@lm)Hv3hlP z)h*y%7*`gxopDpfJb%R1KX&Ro+PAXugQ)v9gjz2!<@lBscTMTw8yM%Vr|)?BEb4RX zFgD2V-oom2Od0k#>2U&I&3@YsTe&S$3aI;V0d*hdJb%vfCsFrd1a%*74chC2B(Aeg z$s1c-7+^jc--vz1cyj%;N4(!>{k2W0pK-2T_4e-; zYWePO`+EEL2({j!Df=F`J>J7*#z+Q2x_^i8)8w~ruy*!LDdTszu9k2Ivv@h{ z7y3H1+tt#|T+o^p)Z-yS}Z_P6mJ)SJggb3dO&{d-*+ z_5HjA_Vx{GI}uY3cl&}c^|tU9xQ?2?W=i4vRzHXOd&`sG<40@A-}$cDGG*J{Lao1P z%F>S2o5vqeKaAI6^*epN-=VIUvV!{i)61qTp#J`K-js}{Q!jz~d)9GN_P*WM`GZn|K`-JnN9SBluU^OI~H^L#XlaS1pdB#tWN%oJ@)0F2{Gsl*CsoKW@t2mE14r=imyn zh*zIt-8Rfk{66s#UWE%^wsp^&GVAfQ$0PV{%7t)C>wT%O_guPw-_!kP$|UM@{4nZs zd+3W6@2y*0x}57J>3MuP=J31JpED(N8P_}Nch_t@9aHu_ZhPGFc-!N3kJmh|d0h3l z=<%w@1&!pJ+69O@p#qa6^|D^UhsI%<5`a7ES4FK~ zF=f&7=R7~~{F8>Q>mKU9+(NCtZ0Xr0&!6`63Do{OpYr2i$~J2KHPreGo}c&ptf!Bn z*5ALx>bFfsL_gPka89=cheAiCTZVZuPfJ zsiM|jMXjIp{Bh5Zd-@P+{q>8i{+cO8)cOU~`Weqpdw#^z2T<$RKWX)ArYxb>pGU2q z^!$Y9hdllG6IQ>Bz59YGdDMDyo}a*Pv7h3m3}TCTz!ZJ6^;+VST2I+SZEx3<5`L5X zqA4qQ4e_!mi?~g^U`igpK|F6t4s|>e_%+hArle8(88P|0ro}Oj>mRr4>Je}5^wtUW zdYeN%Pe$-O{?0dSN&+WoKW<9tqjugE&6#GE=Wy~HrqpngxN1rnzd~FxWf`v|UNU7K zuOQBuGK3q%5mUM!;q?h|$CSv0eZiNA!={{kxG(r3@v$j;xK6xlN(C<`E}K%qFAx_^ zS;5PQmrYs3HR1(Ra`<`TIa4C2_k#ia9O)rbDixm3NMCg0_(I|sewK1kQ#LNJ`$`$L zogy~LUp3{V?AI~8FZq-B8S*DgN#du86Q^k1~FO^pYv1_uBn*3ibZl;>}gP-_}v% z{JU)(vZ(dPutxn+QyN8Ehf%yY`4QCTx3DR5@8UU&`@-Qn?LJ(>&+yzIN4+n^%$erf zt-pf1^)@?BEAG)-ZCo+@IQ>UWnR<(*kG;v-U0XIYZ?yJ`Z?Jw=&6zk}&ie;TOMSt| zXs2Mx6n>O=(vc4nlqZvHmKXe*rapf6?L%)Hv~Sv-2`b-(IkIBya5} z@dLDM`{iif`a8f9{q38wi#o0yb0&kj4m;293+{zc)crSP${^~v2k^bL6EbD*dAuLO z>$Ng!ehJ@0e$kW#)OIJ_2o6!c`&@GpZ$~`hM)7IXA2KDK<9fpD!wB}y2U9km!}~V8 zK5n4?u4xtZcS?(>PUvL9X;BWBY z8Mc4gsOz_hZ)2P_kH=8gE$+@e-Hzw1Ig> zY|i9S%gv#dn?&tr!ju^PH|3+|On2JKAEK7uLoL5+N)7*u@>O$Y1@(2z66(56qps_y z$AhTr)P0KW!;UF6)OD+xGpnfc&7t-;XUeGM&u7e;2#zw(&iS@a*6|1ImjY_NMN`H+ zKS13_Cr|Dv$Ef?LYf2Nf-&NH5E2d;|o_@Bc`g(sC+&#~(QyJ9rGL7$~oe@(acs}XJ zPwESz?2~=ea&3GE<@QWjLoK(8`uD~du96=$WeDF+95E&KMBBf)N!x$g2I~6Hqn68=GZB0y^FDZ-&3oUJGU|FR<22(~G9_#I*>O{%sOxq- zVfDMFY~piRw+8mEBiOr+SblcZlxaMhC7v>8hEdDMQOieAk4M;){m1gY9_8ES%o=L> zI%@ecYWb2Wb9fiZ&zdu7)W7S-@U|SElgHRPc2U=H7q$M5DciWh{I^W0;cci_L_Myn z_!jb4Oj$rZu4$EZ9x-PUsO97MX3ED*8Pt5zV~_6Z{r$L_?F;Te`>W^LeQ*-BUKZa( zy>U}c9>x15oNq_?YTU#y&)XZOtfGD|XCAfvIO_Fp8hUsDEA=ieN&kr#wF5|rVOIa|M($RuZyoEzhg=pwO&PKKbFmzB5FUY_*%-Z zm@%_WN zQTI{Blm*n|FyZN0PmkiAC_jLD98Ml&$KeRI{-Md|6nKA~y$|By2CKk+@ENb~t)bhiq<&&nI z+^;Vfru?xv)5h0w9oj^ul3GKCoT?*JNac~CrRI?TQd9horue)D?<->jIfYY)JbZqf z=c;||r@dX|(w17oZ!wPsa;ZtJBA2+-JaP$3W$}b@j^L|U-(gesIeGQ@wSqeSvMF6Q z(<`aBg#}#Gixl}yQyRFS>to6aYPk{oGV2|}R}t^9XgqqSlDI*7i$&4%Xw==iC-38s zzKCDK<9jeK%2!a!9i{q$D(hUr8<9SXU!`0p*{2_EN>xzHh26&8d7qm6Djwhp{t6fH z71W=`pAZk>cX9J>yibI)sO>cGYWqCBehqbqyVx6|{5k-!`ry zYI`BK`d>D#68?;G1=Mln@cB9}{2_4^b^KxcIUb*5CYltUN+nF#Wjyk>}`~~Vm zjLu{CEcS!e!#42>E)ox+e*P!q9>$n2aU8GX_=WMscyedv%W*EF_P2n)q@8K}Dd}VQ z1IooLU!th<7&4`KC!7DcJA@yj-r*gsy#rG=@Z+TCP}i%?!>YP~-=@DI{2H#`!O}2cKSKx?oscp3edP{+H3SCXGc?RVakjhp!XMLizJXY#t3a{Kri z>NoK!;!)K6A=G(COzGU%j^6?5K5wBOmm0p1`bE@zzKpuhj|TdJ2Xh@=Lw(+<;z7W5 z4RxO`n3Bid_h|53>J8zqX=e}@82^ANT`qPScTCyGml3y3+4KBe&)@WT!{ajUGOra+ zU-tAoexLqkF;D*y{4wzWUXP7_>!)r?2p8#BFUlx8eHOP&iJ{hypw=&*wtkmT$6qjI z9(DXVQ)W@eF^M{k0n~N^)OI${;CfB@4O13S-~SwQGlAu&O$np+H)u)-bzQsv3H8=t z7q!1Fd=dRsQ2Q(5^*D|?zA;l0sQn%N+svW1KW9qtuTbyrYKJGG;N_$rn6iWVIfG5q z_BKpeL#^L5rGYOcuA9>RXQ=m_*fD1gQTIs;AHu$mA(t#ZXJqBt=FAA{>$mdXL%~aE zuVl(04?+4q<2LH&qEG%B3SLb9u_7RYIha>$izdrJv*9g@P{U;Re=;=TYm;qP9P6N*Hy#8%I`e0{=$6H1@_}N*FJq zTi&L(R9hAE34FL<0pZMSoSl|Mi&zi&z%H9zn9bDlrz`BD5h;~n($0Z(uICe-`) zohqp9l}$N3wDxvT=U>M>$GK+85`IkQkJ@ewwSLr;HBJ(Zo2D#tk=x?ifmxsO82?i6FORKJUf(%eZ#%1+?EXrG~xvxC3sf9ST0jxW-Z62hHG{8TT-1 zdA(U_KPNx#DGlu1r?AaQ)~$$Ie$|wN zAK39(Lp?roc#8cojXJMEPe0tX@h{`MIi3a7a(UF_JBnIA>G?6#;~O<4Ks~-qZYD1z zyfZcNkN1WtWz_WF?v5@DPo%g!-Jn{w-^74z;}r)b`q~Q1Bz-9pn<1YI;2GW;{LV@yWGT zzJpr6MfChbN&egB&rKjH#ve|gmUvmU42q^A#hyv>WB8z|R6-4{93b)GY2 zaXS>ei+#0#Z`1vSI=``RgnFO*8pgje&#kXpzYFf5JN-3FkGn@(*3Ue?llJEDt(ZZ5 zot-u%f;x|dtLaz!!%wjfhEdZGuCnza?f{I6Pm8TB|8QIF#a{+c+C+!|AJ zn$P(?pbB@|qT3#iwTdDQF39O}Lw zM=f`FrCmo3OxZ`hjRKo3f00KBQ64uO#aE5Jf#sL#C`<5emMm{b7iCjics| znUX+VhZyQQ459A-_J*bJqNZ=4rYA7RxLaQi^?paBg4+HVYC9R!@*}A8JN%NjhdRz( z)O}TRv#9mcoh&Sahs@`g=RQB8q4Q{)QvE_Gcs%V)WAFS& z9Zwo{JPFkC?_Or-{jleUP_NH{ zDF;ovK3DMBq?b)8q3)MC)ODLRWfb+ebUtJ47g5KZ$9piY5xh4JqShNQ`MjHzFQATR z82>{%3H&Q@=Tb{w!6!0~WmA?=pEC-kA(C!NAxJEpEyKdv!GG!BWTpOm;u}HsF)cPgV z`L3Y0yXg7zsN>3+5C@X9(}~h zwcJ_Mb|+ECd32$-Hu9-4`4c0$|7h}5;3NF>-fqI=;MZL}};S*?Y z8g>3lAL2ejJdeHpQP20C4~Bxz;}&W^o2C@-mE2!v@n<-VU&JYFV-jD03492~F^9(& zgo0ahJ?LT>ckx1=M|Y5)Dokx-lJq8CgAKermhc=b;GJ;}j~UklK9l2}HAVk1AANnW zQMU1}o07vbNzbCbZir)n{s!@*#G4=Bbr$Vxm@XBO3-~J5 z@%Vjqf2*U$CHy_>A3?pp1fG9fV*N?4qdx!DOj$;KA1{ac99Vp>wKs~|UJ|vv_`B_S zDUABOR47`07Ioa?ri^-=@puIF^Y_E1MDTa)gZ8`FC$wM1SK=b-_YUSf9!LHCuMGZ{ z^cd>>HG;3Edh8fa1(VL zP5d3{RqWsdK9J)yhJPR)Mj?*j&r!d`qWzt$_LM{9t<_W&^>acCmY&Uf{uoZPuOj#) zJb1fZCw5TVX_->N8&iJ?bw3TEzE86EHovZ*mftodg#4r^|1L}@csl#6WlA1(922PJ zv!+zv!u^4E^Qh_brbJNNIev4f_xYc$DQl?xS5eDXOqulbF;5@$^n*89`MO&{tyeZB zi8`+CGVf#I0qW;o_D!jx=C7dETQ(*AM&`#j22j&Orc~Zw?W~}FE@au1G1PGnqn1ya zQh2?^i>5^Jp7hsQvh*WU8u(}G&wF~#(??O;O?rC5)AwIz=`Ga$woO^`^m$Lud3wy# z2R(hj(>Gsh?KDu^shg6=S95$O@TZu?%Wxcjh(q{1jNpSXjL*XT*YMoN{MvX^+`uZw ze;xTr*i-}WN_q*e#UkDo7x65d#VC&BKbZFjK81B2Hf5(^`*j(0yi2B>yqfo0>8FXB z-Y}((C-hs!QSy&pW%*rG8Xng@9>SMuxmR-DQ?G>@kK@gVGZ-cgd3?NRaT9y}nv%mG zGX5-PDIdklh!0+2?xL38F=f@$C*3j6ANBl`ms`CpcMY|E)08RH>qh%!=Bhh_T5i~s zqXnKnn8zWm;5z=8^GdAteZoIt&Pp1gp4 z%yoGSwY{P{=5EhhdKqz$epQ-sIoi@%FISo+-!AvG!W1{T1AK)N(mflK3O$+kH0oF>IiYw{FS` zYW+pjdJCqc@dozi`m^kLuZo&qF=Y&O-3oI&zfgYyH9u=g1hxL*Gp*k$K8b!Srj$|p zT|uq4Y)S<6b^6{jynoc=oyB3sA4e@8GiCDW_WCP}UD}JFK9@IV?e$2*lsf8jea)0* z)aUal)NzcXwmW9Z-qUOxAq<$u$y03{HPrS;QD28;Oi81*KVnJ*wf(~xYkv>5{asUX zsPimM^E#UOm7ij-i;Af8O{4a+d%pFvV@eCPpKVj>sQnaB=P{4kPtKH+CtE*J)YmT& z)Z@~bvi57J?Nv=#L~SpN+Fk~=y|gL&=h^#OZBuqUZh1V0&!PU_ldRmXDJ_q;J#IhI z+TAl{4s|`!sN+kZ&ObkC>vQ-7a~Acw8Q^EgKY4s8_!jf3;iNt{qKzXRev{*!UF@CkYxO(~#Wm(ti9uPFzQ<$g{2F6wjTI%@u!DZ?HoJr1Eh z=N~=BTyrb#0)CJ6n)P@J^?l?CydUd2fcpA&?a^i>%j*^5Y1H)Yxz>Njlm@nGuYh_# zpY{A{&p&z;>rK5aJd^e}@Bz$!$>Rmo{BhLpUyYfP#+y+7@R8QvfhkM)Pu4q+`g{=g z{FvuQafI}(abAxwuZ-LLUwd7%jPGT<;~q!xHN*#x;B^9SUfe`l z9&WD-Dr2@U<9Gw(4Wq8p;lp?x!9H9;OL zhuG`m4dhShsS=*T5!Bb$NjyzEL-hGbBm~xn8{V88Top;%k`MXHGz z1Zw>#YQICKgi-r#-<8)1d`@8vwcquG^}B*vZwa;Ef+@pTrQh~{Tfcjz44%Wjq5N)~ zzh}_S7Ha#ecj0{xcXaDe z?{|I&QU5MjjM#o(LEZ1mrVOBtGi1v8t?ch=Yp8!eE28GFnzDd;KF;Gf>zefZgy(l| zY2}YhspJ1Kt|fd5^>R3c7t{1H50QSaVO7F)=Xuo=M-gjjFC43ymuV~6R zP7sfolE%N%&LB?G?*7eqKA@jX)OI&aS;Gr-zuuJV2Ib1A-;;==uKVGj9iM&F0)hnRx%SBVd_%Q7cAB@MLP_V>)TtdCy zZ*mj7i1HhzEMlE_!ITV6Q!jx!@3<-5Q=#BHtm_)~+C#lx6igY#iy80w8NBby`XmB# zg+Kmi9CbtPArIS{UchhX)1viY~uL6&|tOj*NoiJPY6Jb%vfr#*kl^CS3r9q(Ul z-L_EIVbhd#)OA=hrH;C;Y zHm^Zb>b$A_b)H8`sPiqFGLD<<*UleL_kIs)1ohtw-|1Mqihn0RhaYBKan$-TQ!0EI zV4rqZF~@nE$6=h+4+-Gf@93BD6mdw?@yWy^_(<9t!ruCu(&CQ^di>Yi2CmUm#p4oQ zLA-)b=J?N|o?p|ZobaZ;#>b`{dVJvVDt?Ok(|AwjHI7%)&ITV!8RxjHn=*yk&ZH@$ zcpJ(e^Wg<8KaV=jad(ps!RS6+KuwR}W%RSmhbnaZ3A`MSer5UF?kH-#?k_F9gjZ5- zh<|iyf_3fw!q%r_%Av;x9=CpO`P-(H@Nv}J``PK>f0@s&DOJ?@R7@#&yy)>f>byGp zR_@4@mdD#3*N~rVOqEdAW6<5W-u6os^>|iHDSLX}op38Zwem&O^;$tau8SV$QP*wO z<1y6V>+1aEbihw+rYflYlugNClJw2CjeoEMavS5eztar5pJ zPLY1_{nNpnX@47a{9C3pQTv(n^a)Sj{NCx{{mdhV=QHjI>h-?Mhg9@99pO_*-$QM0 z*OYbS(JWO$9@SDSp1PuCsEfUVam~W zP6rL@t)r%|nNst(>hTcjd0+ds?ehd`d-LBq9ekDaQS7a=Df_L{!BwQMqNcByGVAfQ z$7$5_CW(4JB(Ak_hur0F+WDQuChcupWAmQH&k@H_*ClY5wypd)eu@0_*KM6gOi6m2 z@Hpmi)Z^CH>EQ94|8>;kQ!}OFaoOYi)s{bR$_PGzdTT63Z=JEX&ZZo(=|0VPTBx5J zZQ%KQKC^DlEaTnDKjh?k1lOGdQ}(d8PfV$y)~lK`%c%VKX1yc$I~8XJs$Ts z?eU1mOIKQZ1yk}k%yAjPEj>LLm{LNmS2ShL z<5`bKJ^?1nR<1btNt|_}7?|5AGxZ?4G$9a#}*%bUVZmP`5aw+RQk8$E*9AlhG zQ$qMKVm+x)rq@pg4<(*5C5*c7DwmsMsMps7>iWk`iFx`l7bnf%bB`~hbNX$dmam&K zj{MYcs5au;&N(6iV?j|RjI{6tJ_c-c&M^XD9_Bet3mm2c;giWsV+(fx$QPg>~>!$;L@;SAJz557i|0Ag7qp0lb|yllVT?Z5T&&-PiiH`bN#-I%@tBYWa{m|8W~f65q}^BB;kVY)a>2+=qC+-NMiD{4k69{63EQ9Gpgd zjvq#SKJHXc2g|tgk<-D0nSaZaZF~^%mMLM>`3{2q`H-7_@9AKba*6j?yKz%8@3wKx741GUhI&63HD}Toqh1pEYG*3y zhCRLWF7D&Ze;2jhjyY39?JtM=ebZs&(4}_XX~%8Dt-B?6$(?tn+z~vJ_Ts4XjG40j z4)!JKD{f)c=C^3d@!Ku#nlg=gT*h#KdP%&7aYa22dA#>FJ5J-c$8jmW)!HeVGL3p% zPgZz_s)?}#bow^&><`CTrHCp|uTv&Dy|G(4_*JdV1K`XSl3 z(a-*y%uReN@d)a9Fl@>oenQ8&Z1r-e`E#aBdOYFrh{wYoM^VrBgEyL6sQY0Vb-oLp zKI`!~YWriRBvAK3=M7eV0yRHtO2*@~$Lp`R_DgsP`)VBZ{7s_Hqr1d&59t%QqOX5Z z_t(kmEPo!~O#U>!QS0Lh9>3Pk?;>hDlWqpD=ejw9I?h47nDW7E>^PhhddeZbgZvg= zO8(KS{WzIYMO~*P^3~W>;Z-)zMN@L9*P{&Te5PK>^_=_Z$)erg_T4Ra4WG;Wma%tU zn^N%nc{h#vJI)c*@?)>C`(y^SUfPslkCPrJFvsm^MoywtAS zbEwztN!06h7WKNl@e(V)Zb}*NNqPbQ#5krnE)^$Ad97pzP74^Qph`N7ssPmt8v#9Nj zn|wZo*WuJZem>8Yc!ZjNXv!vjUiSs+zL>{9avU<2pG}(*MLkcu&$Hv(LOs44sK<8= z_4p=H+fSG>_gov_xSMpN_->BRQO?I>$^q(pcHJuK@hqU0Z#{?OL;faeKO3g3~0#3bbd)Nvh5o7?U>>Upq&I?iQNmOMZ2 zW>D8<2(|p^Q>>lU^KE}Eqt;(CWzpjWkMlUkdQ5uygs1O3+3Ihj*55K^!{c?2*YGve zFME2))5ECye0Iu=Wca(tfc^CNsG?X2NNIDv0rpO2yL^C;>*A4FX*{YR$M z&XcUYBU3h!KlP<5$e#pLMbBUL{5jNpK8Cu_!>Idw|B2R4+mubz`_Swp?`u%*UB}a-!bI~??|~_{2Jxfu%CDg|4R80ye|%+){B^O`1sSo9r(O-8=ubm>3gO$@J+;Z zlYf`%bnsI4`!ZH&KaU?Ip2Zq*0$)Nr+BO78_FWbqNcy-bV|aJcNALlp51W$2IO$PLlRjih1e2tP@cyI+Ccgv6c|!UT-jDP{ zQx5PRr0?Q=N#8N0g=dq#fg_}^o3e%p(rb7h(yOLa@GR0-@!q7bn6iu`q%YvTNY9%x zulb};<1pz{rc7!+>0@|L(nn2+U@Qn~s;+0)W0hFCkFe`e3-$c1;Jdg^l~K!=Ov#}h z-#JsJJ)ZJ-!sD#RV;+xsoc4Ic<9?yF`=kct^Qyx!xob`CzhX%l zqaJ5G?v7gdjwwfYWBRLmdd<_TsK2Xm{9r5JHRZ_TLyz}8ZhO4z@s7va9&dTP;qki1 zO^+KM*F3IzT=ux+@f5y{@g9ne>%f$KtZ+Why9xIoW99Zu8TL5o@#g=W)_)p4RYaZd z6zY0UnsW3&?gzw&CZF%Jc*)~I)bazS1RkF}pqDO1++;t;EY3zfJ>qfLia*f``i0H^LP*92{(5?dp#95rFCD+Z@OzE7MI=neJoyetM|5e4)yitq&woq-H6-0 zmz7JSj-xniE~3_7FeUGv+|$yJ+_t;nHr$F^a3@gPU$}?aN?AMGrfj*BsO5${f51IV zTKPS9+pW7tcei?DZW49;2~*;3^KO=2b&GD^opmSNVK;<2uEbrup4m@hHQu)OqZN z%mixtaZ_UM`f1BwM9t5+<8InbxC8FQDXUjM!(2tJzhcU=8}{_T?F3eC$K7To{ndY2y%kfI-R_B{AGlj?1-0JsKP|s&O2?h` z^o$#E_x@q^I)Ar%8~AtHnfEwn%A6bV^!BlpTSi^KId{wrqmF0zZRzXu1VtJTm3+!Jn<2UAKukzk)k%=@R$2`6nyCgjz1? zal(|ioBN}cn=@s~<4KR_I;Vp3xNb!8R$Olm|6t`0OxZ=fKJ1t>{d+Egl%K@M;^^;A z^**5A| zM@I0E#Bux!M(_|r_-j1=?Wte`7x53ce#5EY&sfI}mhpGEg1^Th)cZz&df(Xp&8gta zxP><%z3Q&wZ%NN%lBJn9W!&=zd99siT-EtQ1|06PX%XEe-Qtd*Zu8-Q^9*U4tu6-p}rrmiFadM8>TeyF{Ce} z)|g$2MpR;~gLw#LPK>a)LH0tZ+ z3DnogSyN(IB#xSL@-ybiIJ&6q9^w;-D|im$E}OE5k0pH;Ux9Jd&(lOuKQG+gKh^uY z=AJpTgWB#oz6NV}F0SCCG4Iae>xt9YYZvwJqcL-)eZ9AXTEB)`Zo<s+Ysb^uZ7aWpnm&)(P8uJHQBQCE*wW`w(+5z?*M4N_UCq(lr&z%{tcmyr*ob4vyVET2I{`4n^HpE&qX|&epgK?puR6Pk7tpdGi46-eXmK3 zkv?Hc7WI9v4BlDCZ^{VXh4eVyiS(E$QPlUt2Jw!h5110dyOQ4h!KolhddHL_)c3>M zcn8w=OxeX0>05Yv(l<@nKz-kQZb}XHeXkM@kzO=q74?0u0^XMNMN<|~-}jos z+mJqM$~5ZxURk^~>EotEQQ!Acb)APiR*B_g_f+qF_+8ZVxQ6fK`cp+MUojf25)P6(XwDE6UbE^0La1tNFe8#uU z&^NeWQeXcOJmlXoJ=J@kH|fSvzrPv9`*Ho+z1s5E-2$FVdwGwi@n^imn8g31{MuEg zdcWsg#TQd<6@O0tAnN=W0q_d7ABETeutB8NJk_NL8y67~K&VM+u)M*aP- zkWRU#dvc}q8@<9DK<&S~Vg1)o+o_sTz>m^S0`>UDO$mEE=~gKw)Qqq+gUed z`-`V~zfZn~n%*>J5wEBH7+#IX>!*6(^K9WSS*I=h0X8sC`(=%B=W<(zF}MANQ^B_= z7sD;wxyEJ{1t9C?09dOvfy#v z<1pT!B>pupl^`m{r!*foXEPiO-ZA!`-mw!)lX}AR( z<9fbmN(RqlK50`DsGr*zK)ueKTyU!Qy`dUvxvD8k_%!z6tUH0vC60I;@_4m$DtHm| zUooZi-c!L_na}^D>3-nbzo*5I=U@9Rx4wF*tLVLoUW&T6+`5V$t0{_@UdoEr%IYdB zx~;a(ifqfa%(BV0n6QknjG!Yd+rlz(CnGE-2x2~fE z_utR^^Cy3s6j9f$U`iN|BR`2+f5MdfrB-jol(|c6J7-Pl#duu9^OY&ob)Gb(@iB|{ zOy2%wHrINQvk_Mdd|IKE5A!)vHlI*Z5i#97qs-7_VHS;`ktubcZJyN)JN z_tOe$e$hFPS91JKxY&cAA#Q)f+Qm@oFF0EtwtNPs>2DWbfFr2$7&c`9bzLhTvV7T; z0_x`<(%AE|efW3QC1FYgh3o5tD<8uLDIYau1RuwI4t9CHfqcW1eY~FIxq{owKZZ}D z-WHDHGCmP!FiX90{5riOhB z9Y1!u%{OXF*u^0i@1pjz<($J8(a$96Je#MnpV{66Q_86QZliA3BrZ^I6x$rHV;}H& zKF+$0;$K*|5mN?{?Fa$>h=fm*R-3(I*#Kna1i&g zb+TDN{a(ljuHzEk&3Y~1eK?Ev;}qVD1NdW()5ezX@cRVw_%7Nd@K+c{y}#c@y}#c^ zy`SI2+i16ddcQh@`aK*&sN>h(&*Kux*P}($>(3-=y9rZ9U494;Kd-#W{Uh~j zCz(Y&mpFskE^SHzwZ9eA`axH|;L2xR`GCs@T)z7rYgfg)XrIPq459YFYsw_*yhmJq z*yRUM$IZXn+V7yY+csqq&!XLc%LiP(yJ77L_*>e?P{-XwZNFiP2g9^)zRU6lrqof# zji9y0N@FO^mzoPvp{ug!Kw)Ypqr=4uS}Iv+y)J-i+K zKgQWMW$8rjKZzGjnZ#A%36t;Nvi3vxC-Q@)1n_=hk15@Ea2^qNOljdCiJPW0@IK;w zQ)+lGan+PEwunon6z~tkc~i1@5AmKUX}p^_Wl92@#Bo!i_#F zQ#SB`c-@p0yo-3*ltugvanO``{9ocZQ)aM1JZ;J(-bp-R${7Bdc+`|(yn}eilmXl) z4w%w=JNucqYf2k$CvKT?fWIVem{P|&am|zp{(`t{N)dlfTreevKO@eXlEE5r+LR>z zlsI8Z41Yo#H6@HcCJvdhgH_^fQ#SEO#2cop;cdh#Cg0P>^8?~VQx>p7Ja5V@-by@U z$`t;9c+!+{{66uRDI-`W9yVnVzehY^iU+?-+*>6XZ}xdUPuwykj8_wfOc}s5aln+7WxI|po2w&u1?9u0 zEFN!h(3Jf*SzI?|$;FEEDJ4AY-{o^IA9nd2 zm)~~zd6%DY`DvFAxP14&T>qw&@UVZE&$)cq<#$|u+vVq7e#YgeT|VIQ-9^{GDJ4AY z-{o^IA4c8ZAyZ~tJniDh>#RI%$|7n%^Qik}&Xgf54-T4AKhEk^Q0tXVNuZ7wH)RdA zza=XVE}AlC<-t)?ny6fZP0674mo{Y!wZC;M53ZRqW#z$1Q@TN`*Fx>DX-Xco zznm!{)c&@uJh)}boRtS>O&LI~*L#ii*EOY#+F!|(7;3$+l?OwnELwRmXvzp`y+JDv z4wzDZwe?psC52iqj=CK&Q`W3JxMIo#YQ0e_50049e3kWgU`iIXUK+K(lqp+Q9^5o# z2DRR#l?NwGIasj%8m1&%9CvZh#S1RhFEP>e>Amt$K96j1*2NnxUU%{QD{R~u{4DLJ zP3gVd@@-6!Z`30AscllwLA8`4A%h%?u|1xSnB~#)qA94Ax%P+b7 zg3Hgl{IJUpxO~9nYcF&C<6-}%#9cn(@?n=>a`^?9pLhBCu{{4^zf|xu%(HAt(dBda zY4TZ9wo&)v23|>i-IPg}AHyX1QBztkwf)mHrHndW0Y62(yeV0iPva-ar%VaE{4OTQ z@0haU@{9Nh@Poh`Isr&F28{vA-`_QipwwJhsg&`nRodad_VbVQzl)04Btn7 z)D-=rb6w}oF+R^_pmoMPE$>&YUx_lZp$fr!%K)t@N;Je5#n=*PbGEV%qEo=ASil>7^Qo_7%EOxZ=9#}?}S+omZisQY^n-%dVg z$~@}pxwE*Y{hBi2@?&@c`B78aGxk1P4fXY-GQN%Sk|~oe9&!%4`~d3vbNWYDtJLqk z;81Df3USMnGVW3@h1!3_#T(8s)a@Ha-M%4H^pCc5`#S&W^SqUO+msBxg*a`>7Ha!- zd^7nqQx;L%FW@ryc~d4)*Jm7$CqHJ&h|3S*o5&BE(tE!3)5h15Z<&%r9XEz=Bp)?p z7j@h%Tq3_|%8JV`;w#AqO_@Z!E>4&dK%HN2n%9TPcTH)d=9~Cmbgcv*~P>8;p@n6nzG{Zi+CLQpeX^=?d<-C_0uus0JWbw>blfS38U8EK^=G7 zly%hl%lI1dOQy`b{0zRD{In_KEh#avbwMLKfeFVSGO>x%`ZC9OrmHZ`j4j zXIr}%YCh!Rb*Fv^RQv5b%gS4*@urK{T|DI+a`v8S^$N}j)c!|Y9B_6gtlqLSh+1#n z#i3_d`8H~P-Nl`!TfT{!ue-S5OgU$rQ>gXET-^RwYd_)~L@n=)TfXkxb51x%QR@x6 zxbZZrUveg$EBI3O`?4we;X-ZKeyY{qcUGO#&I#0dBQB0V#o{pPx^FmFoO5HApGIvr z?&1OG!jr9h7PWlR#e>e}fA)EfVV+B-EaFRugQiU34C5}3avtLn>iZD$&RIO*{edAD zx1Yr4OsLm*BG+Z!=P0ATKed4g?Fau|$1`OSXLLMM=J92`zcqkbzxM?Cqr7WM2VX$k zHl>MLe;@giyI|dvn#-5*KdE0bC5JDeehQyYK50rEwVw!1lMkD+j5?1+S3c*Q#{Zz+ zlqtjb9O5BUdL!1ZgWB%_K9BN-DJ7gFE}F83I?k>$=$yc3Q*YdqA(s!J_S=0tpYNf( zV@e61rTv|f$>)b$v~e_`AqQwH&A!~>>y zP}iX|Wc$BuN&_{YMeQez|4h4-DM@@Pal(`sYW*-ig?z}ACDis)I7)uflo6L7L~ZB6 zG0J<7K2-9k+p&0*&%u%pnlgoY{`4MY=SLGCOZkB*Rn+rk56|X($PDr)mCxD5Vd`z5 z&S$~J(=MK{SjJG>jhfONwE7v;<35Im+lhLbwV0w|D;$wmwA+XnRxk@De^B z7kBPD*PTIUZ@~KNnv%vx&`-*gIO;lYq0WB=bv>3%nZ}FwvJWQb|vhi zUeT1S%coG+JBm90h$$ggzKwqJTc*sT_CJOm@}s5 z>~m_-^o?>4%DRoKDa375pprC#eU$c0EDuZv{0UM6ExM zhu5vYc@O8mXRd}(kEa#X`=3SpKejt)$_(m$@BG#4>5y-mvX8p{A?G&UPx+Q9o2dP4 zm@EF_bEuym?ES^-Y12>Flqzcbin*G?8R~7|2XO4q zww=>|viSv^)%z_@JCmr#V+7}L(dFk{ei~bhJ7r1$o5cDiJW8u={T-n8Q^!A0UNfcS z@;N*_uJJC)Bc^P-@>$e%9L3*LK4MD1<$Hg${@ZvD8Ec|9j#26g|=;_uk+ zt$Qtwqm~b%<_j$|ioezQm@anb&hGEMp8LqRQ2VdoZ`hu)DFxJV^5$w7wZEO;c|H5o z+cstHx8B3wSD42CB|l}#kjn?KL0&)nfHHAl$Mx1--oxw0Eb9IG0REKqUHXmJ^B&?L z_S0^`lyTJ0*9P#_So~kF=M~In7dQAj4psjyV+Vtj?=`%hpHSYr)5=x-yN(iSyA79D zwcRwngm&Fudp)nDJc?Rx9<_f}>+Rp+^?Z>1R5zuDTCQsU1=P<$#Zb2+g1Q}HQ?~HO z^gE2lP+r^jdX_McAH*cSo$|u3?D$RG?)6M-zV7whNk0iwwtivjzK*{pzh=su%TMDS z4epWaWso<-sf)cvI&+V~aY^nP-v zY~d8;v&dIJJZA!DwLQLr?dtrPp${(j??oB_4>1db>_Kj${gzTW89Sw;q8J`2jJXM{R%K>xuGtvVFXk^-ZGQzis11$ zj=x^+P^sYi$j{@C$GfpK%Jc-303I4vm{q&se^K-zQ%-rG$DN-NR4m-@CYY8MU7v zmZ`sB$|&mn$cQP!7~+0J)%%$t7pr=|a_|MK-!Nq#cc`yw{kn@)t-pqP9UuIhZRgZy zZ5~7TJ?amdGJxM@-3uvm3w6F5cnkH`P3e8w>nRa;O(~;39*LnoPKcVTbNC?bXRb8s zNw4SQTyIKvIc88l9~#B0SodAj_B-b40&2g5EMo_n71aUgtO9-J{{(v`Pk)=wF=pOPsBmrtXv!xrlI$u3xVaNd+zm)AGf54Z1Q zZu{_X`%I~!mM5GM)Oqb%d2q*+O;;rwDNWS;9%_F{)P7=C9*mk2a^>^R zY1DcXRvsKTWyF>5Uu5f$L!Ecll#I(SqmDP|$_HGzei%UWrKp)h9Vdg@Pui4(D_?O2 zQR~fFd2rU0DOau^CU_<1Me0IZ_Z`&!woTb|`AO98^Br*I0axDrsBKRib$(&g@pkaA zA5%75`Jl6Rfz@lH)@zy4z{7q}kAoFgzU;~uU4B1e^(v_26;b;sn38qn^Ui71dJ|S2 z95-dem8Z|Q{k@Ia&z310F5f%P#%rPW(?G4aZ%WmbuRE7e>n&J$aNd*|S6)2V)-8eB zPu!HK%jd#2UK+KZ1RmBiCF08W&*A=;`==agdDfKp*>-)}M768ywQr!--#4Y|@&(lSBv9wGg@@N2)cW(L%({H@ zL)Kp%wf~Zf_fYF+Oi8-@2;Ro`0Sw^<*xI#vO;gHv8U5t(bBw=!B^5CW^i#SSt44;Ul4_ZG(Q*!ua+7GyVz~#GVSiX)2 zw9BIQvx7R1ZBsT-+fU&L<%Jz9&zrJ`TE2~sr+mPb2V8mYbSp35*Vvv-)c!Y2S#jm_ z_$S&oPqXp^Q|hSw=kfWpUvcHjt~}_}W8|AB*?Qzr*CS`HZsA3gFXI2P&a>F!JeWrPUFiCI zc-@h>h8mYq=T$N#huUA(T%AMR-cc(Lj+k=rZkunzlstZlao13vXHTQPo-l&?dPHZ# zEISj$!<>qo(ZO z^I7L5{EeQQDTOy!KMB-)+>{7vKhZ_6=f$+!K>hvQ8ElXrM19_S@H%^bTS2Xt zMXeV?tv8K-CqIe$yS!s~tghp6cAVu<$IY4&!oTQw?(%akKZbes+o&nSsL$Jm@SEfZ zO=-N=^85G=@^w=ZsL#tosPkMwo#!~}JU4HBHH)?(Zb(I)+i# zaSe6c3Dj}RFSq@@fV!VYQP*?hWv<_2Z5~ZivUoDIGbR_eECTM9o)G`$?kC zGhs>;_4+o7Io5l`l==(3p2sqN8DGRWc|4WYt?qt1H~b>0i8^Pa=Qd7{p9 z7n`9d{iRWl%Vm6s`g5rLP2=Hs zcsQOZ1Fn4kKds&t9_}wwHe7xg^|+YC%Q*hW@LuBD^LbsCxP%%PQICfx_PEZ6@de~} zQO93K-LFA>3Gp1B!urjct21~wPtrQ3U$75)Z-w6`_x-Q-OixP&)}78$HDX5cH!6Az7W2WdTTD8a*n(FFitW~ z`?+3^hy5N$oqx=fP1Jdg2aaQPwB^SkkH>^J(|HzkL<9($Ku&$M~(IyX?Sn`@~3&Ed0kzNq~UnbMo!{dDRzQ0r}=?)L@fgtPYy z%QsN#Z`Bd&ZC-=fz|m!Ea{Y1DQjcqi>zPj&s8Qo}dVZqMa2E}uee zH{H^f@j)EF%Kbvjlqi0Tad%PIXUCK+JbZkH zU!ne*DJv@1g;~6o{sZ_@`qvM`2_B5v`-(Nx{;H;wQ0wpEvDC}pOE8N1e&a44j&I5) zYW-Q4pK`0Ok2d@VJ^diYMX_j*xE+aJ|=Z)bIJvppLtRI^L!!2S>b~J{}iU@bT17 zqqf^ZZMTNnZUVL4xGBYcUdQ8pWfz}7{aMs@1E}q~eb%ms+OA+qBEbHj-4g2eeJ`4# zAJ)te_xy)S2ERa@HYJRoCk~mij#m?}nKF-Q;yF{s@hajmQ#O3OZcDsw%Cw88TwL~A zdC8QT$Lskl^{b|oFhyK6C5N9P&YF_O&k(0fN#du86Q;!RO5&I)QA`p?ObO!^#356< ze7IDvt0mOyYSCO>$7S*>7{&z`&*E9cgQ)cf%+=aM)=wHWpE6hHQTv(2b8y1Nqp1C~ z{%-Y~=4t{Hy5H~vl}3p^h6z{XVG9 z1GXM5)baAD+nY02<1UW5cn3ehc5dMDZ0EWuYpC0~Vy@2PU+8aAV;*-l|Kd6PKC?LL z_vG!M&T|X(^O75=pO>6N{XVlP)Xz!o|JmwQP@h*9U7Sa4mql$ije1^BnKI$xaTj~= za^~CP!@ej@)c&)0JnrJhDc><=8{@=VrmW$cs5gfCxNO)tfI4o#lolTjzJ&Fu;Dxj= zo07+mkd2OT4Ys-{*S3ZsJq@UjXR^BzGifiO^E}wPz3|_|k(io$^lqpHn@pe%6 z<2vd(>xZbf=%?GZb!eiWcpo2+HGD4?Tt4IC6}*`Kmra?$SJ2~#M=4R7eEuqdY<;vr@NW6`Degs|IxX<=`4ZX~>jM{(6l#GkhE>7W< z948_4QGXkw%yY|>dEBA@Db)QjY04n#_r!PawS32vl8cKjPP#bZ;uz}r6hb{Oc2L)8 z-pYe>ri`Q3+u}pu`hDw*_)*3WnzDe;B|n1~ke@dB9JR+2(RrFOfVytmfADxbJieU5 zb9lTnh`KHVru6Rd9DdJT9rb$%)2QD=7{%Y=G-~}RQ^rxh7q5M{&9m;T;`toEdw37? z+d=(ayA{-V1f7khwW~ObsMqs|a|yrCbz}nd{qjN7-}~+U{;-}jP|GW*zjIka{hiAk z>hA&1pl)yVcQ#JenQ^A@d_B)xyn?@Hdj|1vyZCVW`&oy5)a|aDQbAppxW;Tx*tv$f zeT&XHXPXbL>wYXdi>Tv9QP+73wZB=^beqI^5JbIS zm_psI3Do0w4E6fny~D02P1JdZQR{6xH=XPFB*t4oo!6MlkD&H9gxcTezUT0BECJMc zG=F9NHJmYL#JPc5Zw+;wgQ)vy);WqguR-VD?cC2(FNwO{2~*Zk=e>*@%x?kpyqQ2< z_d(QtTEFD+0QoxV{;8Q#My(e@y)JL!dAdJLS;IKxD|jyXWmD!*`)${4yBnzcao>~} z>O7;SL{RH*q3+L3Qx@<&j5~ozU0>Agtp38|c_!yg+PRJTch(zt4&$twvf}cKcsBW< zDWj3 z{nYBkom==y@|&oC7qH~=1Nd^{0KN?ML-EI8?{u+e%q7{)O_{_ z9?vZE8p2)52TjorziRoy_dT8$Q$B-QFI{Gxsh2V(j#_W=du$i^peb{x`Q9xa&l%*q zrnFG=)2RK$OB_Fx$4m*MmRG)G<&$_iAz@ z<~>Eu2R=8e>U#ISZLvx$DLjpQ(v%o#yWqFDAE2G8?G{|DYP;4=TsO!!P1#3nS1))x z+vIDelu`4o8xO|~Hci<_&6mE(amqNVj#G58s^e_nspQv9Sw?NQpZ9o9AzwG8f|_5x z!OqV~XYqO-2U4$KN*1+V@S5U7%OQ_ewAnNsS9QE+pdr)J1*XK@hpz9{i<&NjEhy>{xQ^X_rA*GFY2jUFXLiW>qWl8 z`Axa1f!LH#`bFzWN8sV}lW$k#LM zXUyPRSPkE6~rX37TYJQwiI^fPbD1Rl;C59e*l z5FXCkTrFH}^URx)aB=e0#fvVUL0zv2)b$!SWejz_M$Oeu%8r|cvy64-mB2eOf^VXI*px-o z=NnU~^XYxY_FvbOD(e2rqVB&vli$^_`GisD6EbBNbv`@h>LluMwEt}Bi(ke$S3c{?C$K_(5YNW$71q9EN)BJI z+ho|dBJc@bL@}x85Tz4)wC!Isi&L^y0 z-C1y^@Gk!UU%8Wi>U1uP}@~5vvvj4`E8-Tue6A_aXc=d9+%Uo^P4h7 zUo6tc-@Qu@l`iUh+o=5QhI@xO=@ri4(Bqc!IuzLj};P{;3G za;Vf$$FG`FaB<$nJ9v0~$G>x4OyJc#PtL|{esSlHa|6#|J7-YGnKot0m5(`FAM<$r zgZ|2>_4UOw-QLc{JpLzcqP9OUrG`5H`bFHY;5PQ-C_Vy9QHyu*2=SzgTNio`fB&(D z+Ae~+zB|q>XX>MtPoVDC80vl<#?zU{kSXm8I4^kop=!S6VwG5GsOz%`Z|B(9DBWe-(0Pt-Y;iRpNFMzf%ZvL#!+9-A2U~X&-Qqp&G`|)SJH3m zEPI|*LhV0=T0d#7#_;fdAGQB=WF3QRrVP3Kpvw=qd@5x1lc@C*rVOC=A23%3Kg{)! z`3!%^oZB@+XWINSAGG-`;VbB8(UfUyasN1pPh(y)JNCSG6hA^dfSqvxJA|4^}ze$8nx^W2OwCu2=Ik+nxh+wT8mF=26#e*Ol+M@-a(Dy?=lBb>s8myUDWdKJ9u2gekr1s@40vfwR{fW zM0xA&woWPBB%j0+F^(Jjq;k5oNgL)hW zaE-Y9UlylPzt3VC_4C0^F5X(Ngqoj1{kvwpsO#~U<|3~9XTq7{;{77VPnt4_y1xcc z_gBD_*lR5xMa@S{38Sw2Eb4wqaq(9ZczAz=y8fNlSiLmr_`9g{Swx+0kBh$M8>rWf z8W;T!V#&GAMg5(`%XmI6;Ja}aU%-53Oqs&Ba$ZlGtK+yzzx!P5b-WzjLL5WAenn7! z$7>t)yxhR&as67s|D@k#Q|9mnJ#SIZi&1BVi?Uuv%I0bo_4mUv&XhBb+HVB^gMP!N zETfLU$3f#|6 zcaF9F)j%DmhRIsGK?yV@`6_ANUXQOBP}UB4+joG(u6d`%fdUBCU8TKk%_ zgjzq3x_voQwo&_?N8Qe;{~sS?+c$%{eWNZOavQR^ZOSIG+wk~m>X9G^`bGbM`8B9536#^(@+ zOqs+iHB70a_E$6cT)OpFHYJbRPZ;&}>19{G3-HlBoS9Oo^iQvxeGk#gt{#c1xx#qP7c~GKjkVT`p?czKYtu zVoC|MebJOWYWtii8Ps;$sOvG~44}5tizP~riiw>aswypCF)ba5DUJ=ai=;|Z4^adC^2 zT+55jI8HEr%#>Yx2Jwz5dQs5+OI#G5M!slD0iQ~oHzkKpAr? znG!|qH)2W{wcn5_yQux{n6i!9&oJutbvYO`&Nz2b=fCJ2aPD)E==Lt-)9G)?lp*|A z;z3io96aO19aGw<~vd%%Oklc@8aFl8Kdo^2La>$S|)b=2{OP{$j@QTiP) zrN!cFzKKsFe_%?)<-_B6HYV1tyzlyp(6;l!}A4grE zm?^WU?}rYu({4Be!`Rimk;1$$?HLcQs>~& z{%iOc@>Ns9E+0bOKf9(ZyZjRBycbQGMLn*jQRkoHAk^b7?3_p4Uvs7$a4_nAYM85O z9N={q_0ja3a2J`K9tY!DNr8v`qOwa22i)V z%|Wl*TSu*zM15T@VM-j6?8hy9KKnI@AEw?s>gPQt@DyxwlAMbf)YtuHQJ=RqIZ5<+ zYXx=QCHw#uP@nI_QC}AiqmDm;I{vsRqo|+5>T*))>xX-&FRe>UecdMjfwa zO4-FF7iV0Yc5w=I`)2XQ+&>I(((3zu0aKcsq-W4?17FAY0PLHxhllH6N)&&n`v(@~0RZS_Ow%>N;>#lswl`pySF?=ochVTcEK`1dv;)b_h3->>ZP+(iH5E6@sLwms@ix|F8J9WU=3Tx*W&OLKGCqQKB~u1b=M`|}T?)BQ z20Ny-@#U0PQRi7PrGz&y&m3yM89YL}v?(dnzb6XeH>fv>+J3^6QI{WPuy@lwMq~Zn z%qaHLPsEfS!Lt~@hT5LjKvm(hI-X~cA9eW=m#_BO>kMJk?b=11-xl(JkiS`1WrLd+ zQ@)H^9>f6U3#QDY&VLYZWd1!0{gii2>EI0Q4^Z3J(MNgBlqzcbBJymKPrD9hSElRLl4A>6BNIb`rxE>Gq+H z6T}w~^L6lt^WkgO569zcx(~<8a5C!om^Nhxb^R8cQ>fb$Kz$!}#lz>uaS?UH^0A#CF= zHt|es;0ICH`wY}|-oY}Sjz#=$%;P&Ti>F}*KY%IRM%^E47{gOBf~Q~zPsU|@KQ7|? zZ~@HLY>b5>U=!7j=G;uL_U-6c?UL8=hMIwu#RuT zDz2g)T&(rcF6;j~Y$I!aw28052EH0~C!WcAG6xS|MShe%J$yCz(PiYTzmMwv>ca)( zE5MJ=p&w_^hg0Z9PD{^I{q)CwPeENDe((M07M_E;J||F5*GJX$QFR?wQP)A$bx?Kt z)gs%ofq8rv>hY~{#Kj?e8}W`)k9Un1@pznb>hb?f;xU}S5qt&?;nPvi3*k?jnmCJk zUc4B~_#!Og3o(lv+ef$XUvUb@QP=m$Sj8t{8Tk{zqebLT`Ht%O!k^|HP2oRb0w0Gl z9KtQ+Pppn^p#F)~8uF)7M;DPli8{J~{7KZ&IUK+lm;4 z9`U998UGPqJdg++@r4G$e7St$5y?j!@zowt=eGNZ9=GL3Rvvl8*Lq}|+r(gU@QAPa zsM@2B_#%&vKKh6+^O(KI(9dHtk3Hh+Jhsbi<*`+6OOGo*j?%~PJ^qL%j^*a5fIr_`Q84^OQ=^@y+iw9eCx_;OFr zKb<)|y~1tg8GFw-;@f{lgWK>#WP;wFoq0B6J-f_p?b-Eb5BSpmmiaeIry^7I|J?X< zY4zMaZqv`pJdgRmAo&7HUl@7e5nuC#trrgXN-rwE$nTHN#%ANQj3#;U`QpbUj`8_Y z$E1%5_#4L@9Me4Jh_5(Tnqz*)){bRMjt#wxf4{88ZD>BsSM_J+_qeUk?{iyxdFkbh z{i^t@*pgROxlOz}`D$kQ>N2;X*Mwig+6AM*Bff*zG+z_&w_e+RZRfT0aopZ+Z*FsY@a87B z`)_V=TYGbz+vrsdF1UA$|hmo)G0WbV8Wh?%R5AV=LBbYpm~Dh1=p0EUGJ^a+dJd$WUP}KC(-{&b#5ysRkV5R^z8<%&_qDkVZH2eUyubH;dN{dyGUJ|H;x>13p4t;EcUqp?%xQbv)=saV&Q_mZ;kI%50k^Hw+uVlE2%o_!oe||Wc1E1r#2HC$Q)i^P zEuC3Dlf8dtXgA<*?zVQ@yBwt->U@a4&++EZ@lr4BO^301uD5os#vk>jKZ@atypfB% z0e|@-Z{;Fy^&(RBi@p07V?O3B#JmH(y_h!}BaU3*jb5QmlHN$t>+>bA^ro&PE`G&Z z`U*C`;%%vw>%7(LG``N;x{i9~>%EohHNM{4QajgsyK4PL@BWSSAN!6s{vD=Jz1v&6 z+grbzfAXF3p}W1|yQvku#~Zr`_wMm#)%G8}d_z8?w7k_87F*s@izeNcx7YH9?&Y5c z_j;T6difrHHuFAj`aazIqc{6UtaiM$4pqV-UnJy2vsJ>O5ciJYVKKN|WdNQs3m@oe^;>abw=q1>_)YrQdTbKFTmtidKi^uWcN?-Fz%%yz!6y~q;6|TbSRlb_q zyUG_zW9n*O`f5yE?MteSt9=J*?`mJ@^O*g-FQ-Po?2COFJ2_uBr}1^Z*man@&X-p! z*ZHc4@%6s^^~Bj5e7PI2bAzv|7V^Gg9;@H*)xLqD8-3v$v3sMhrxpvoQUOah`N}t8 z{w81HCblUS{nUEkh!G4Xw0^81wce&7q;N*uq{mr(P! z`U+~P;wx7)U-2a>)QeVpF^ywC^u>Ru-sX$nhJ_#bia)}}k9-Geyy{C-wSLtXs}lFB zzR-`E=fUm1=IuJ)JA9ElFmtDG?@r3|zws4*gPq^_x@zbyU-&L8-0Lgei}m|``}gBP z$Jgx8uJ~tP>CeQ?2Yjsuu=ZD9{jVB7=xaSldAaAS^oWxW`%(`R_a63zLVotc+5Xzu zSP1)zVa%N8-#ZUu7x?2BVE00Q??S9x?5|#osZ0FnOE4Pu$Ku$z+~2)i<4^iypH#2# z$F9I;(%(vIe5F5jB^Iyrm(=W){+t@W#-F$bD_`+fzk&x}@i*1z*Zi@sVJquzXL0{) z{)WcQulrkH$NJa(`)ci4fBjlaT<1?-hm~*ntKY)HxBbO$W3%XQ6)}5@KX(h(Z}sor zs&UPqt6}8l{^-xKQukNun5+Bq>R#QSRg1U#OSfa&Wk=J#0sy}zP{oBl}C@AGw=T-W?wU%Tn&pFXvt z_U`tF?$LJl_%mwu9)Ip0<`?^;KmJGJgZuo=`-u1N^EcGoAN_gFckcIh@5fNbAMRkP z<4<=eZ$IGgJV0D}z+ZlVxbT3#sBy3B5B(K8U4OSrzSZ@&yTrx6`AdHz&i~C{_?w?Q zkO%#(2mS2_`Dg0y{`BAdnZNVT$V2|)WBU9+M(v#+2t}|O3DnfWg@NLQT7GdLb1}AJfp!dQi9lT+O4dFd zsDBz0p9v&CgZrNeG}K%wkWb-3D$rE(pA8f~i|x+_I%@fIfy(DFa#bLD6&|Dm%{11o z4%Dy4?$v>wTKjyU{&~!PA&~n5cD@kks@*RJdSBG|OM&i}FuWIt>|yMhK>Qkvd^HgL zs>azsJd4F_pp*@;)Yk?|*9OYh^3QHA(8~ov*YVHL^?~s9fynhNc=h@~?RrwJ8v^Yc z0-YOZo6iRddF5Wi8&zZvLh+`KW+(l}QNjC9rpk z=5GnK)WUZI#qVO|dx7ZpH2=LoOD&WG#WL=FKal-C=6(>!{{XwU270$*yAtSB@Zh#U z^EQnABoO}zhH8Ou4I8z&h3G&x_?KYafjLn zG#VJYD-gd6!_7dXiN$81r0(4v$le{`xW6Y*yob2e3bb1oyDt#G54(R1^!}*vp91ke zv4rva1Bv^opZmW+{{P4){v1gDnS7!XNOp*;4+LrtVC!#z_TO;tp+NQ_^{l?^S$(Wa zxGx&U+Btpob1)z7D}?)a+;nbV_FUrTxqYoeFY0SuM7(!#U-n{5Ufh>bs~7jx)aWIB zu}d&}X|N3qQX7}{9b8I(wafbIml4O}eepQfujt#q0+Y$UR1%}fzL;7}_LbD^ zm3_G@G5&?V#22uT=__V1`K7+pm(=g{rM`pNQeUow(Oddrw_yCceTna4_j`T4@AYx! zf3Gk4y}p?K^Pt?1*GE$v^a^{-E(6 z`r2x})wkcmgM0g$_hR$DzSeyhZudpnn7_ZTa6fkb)Ytu!<~x0n4i^91SNb!y{?ga} z3-%u93w7Bu^={vOm$>=YzSdtc^I+fJgIMbIm3z4V_rAv8vGPz~^&!kZ+*f!QYoY#n zsGqGrzdv_A#xLkkT%caqpSTc9(f)E2_b=*iT!ih5`#Tq7I@X_wVd0Yg;w4zWw159n zY+cshz6?9@{%#z@m-k05*ZA`Ou3AX+7ZaHNWPj$982MCx^i!CyGU4^-He?E@|@f!Xa|9XGo>;1{E^Uuh&{n2at zW7q0G^Zn6$e=N^GyZQcJzCZL0{u#ZgKXy}p{3d$p-qhby4~qTGB1UiSkKK%oAN3#n zsNd(S|EPceN5qM0f3iv(tMv5EB<3Nvi1!k7U%^g-7aY_QE6o zkE!>Mck#ae|5dx4T<4se-^uyu^qiyXthLoPTdnO{?X=S$Yjw3wyLN5&(N$a9wAI$O zt_^aIAeQ%=;BL-(39a{M!hx*0ioW^`IkY#PNwGjqZ-iN;wurdhN3Z^<#V5F;%)QD(rO6Z8{x+jI2WiLUKA?(I}gI+&9Q z=G=R4V0TV%cTQ+`4o&Xv9PjQNAOF+1H^;O$$Gn#^IQHc@_YvLub3FTrhC?~VL(CI7 z#uHSKC6;52ktdJmq>hv8PUh%Ol7~;^L{1Q0Cv)8Fne#c>^Hg;3d`{?mPMH5`yqsgY zoMXOBxl)&N(w8Y!;&M*1!>{C|uaF1RIiWNqbzaSJUCnV{rGL6dsyriA-jVdA$=;}P zG!k7+Dt8n6IF(}@(a@|iHWO3hRq636`T#s$WgAbP9H&Zg+}Et~b39^FMNJg~D%0U-RgtsoXH^+yFrf-1h{=R1#WbE%na&YI z=Tu>4{G2Mm%$!qYnT|G*~6W!kQ*?AM8&>nblZbX^r@ zCa$ZJOkGB$&k!vcm6hqrsNBpzMipenGO9Q;lTl@vrW-2r4Wi?Q%E|QIQ2CjW8>%QX zbwibA8g8nLH;J~JDm&A2Q{`obZmPn}#7$L_sk^1p-y&LWsjN)bEtQ)YxTOj*W4Bas zX6BYE%QR(G<}A^XRXLfytjf=fWK~gSDyvE}4YyUs+eG(mm4_L;tqL*Yw^a#d_O?oQ zhiJZ|vM>X8R6%C!jw;T~+)-tjrgoLNo#<#+Ihnq8m7f`DS4Ekrc2$~b)hRX|J;iqG z6c00~Q$ozRPDwCL!xi&zqGPz?Wcr3Her9C25@qT~D25S4>j=fhbdOLx%-{$m#LSFP zvP|1Z#Xgeg8L4=giIGZ@Y1Jz>Ju$9V5=>X4;%+1c8kHc^-=qYZi26~AVHEo)CBW1h z6oY}?pahuu(TZU-`)DP=)Q?dNW7x+i0j7SeVi-$Ij#W}jw^8vJiShADVm#5+thk$r z*=9v&A_h!KkZGQvSSAo-6O=g9F;Q_&Bqk>+DW+|bVxL5ePf`+0i&?RniBYo>W11!_ z=E=nHWF^8hOi_$eh`}jJh^d>Z=%*6>QU ztr%t#-8RKzBkJZT`Z?@#6b~~!N6B>fT*Wh&eXf#Wy5}jLdF=C)4AX5_Ja%@wl3}{% zE1vo6^OX$Ky+H9SU|*nQnC^v&XCeDSCBuw5l$e8PTcp?*5p|0d{bFKjv65y6mMFm` z#E?@7JBg8{N^~hPxJ(HxBbr@`#iiVLZ^WfUT}sSFyYwp+!%CuVm7-roOs-N=%!pfw zx{2=9if1*^v_>(n;rJRQ#SE-ff@_Ipk7Dr+nPHz2Vd`2HeJjz~s<@buRwc@ew<-x{s#Qrdv#pA5Bhj!? zF*3~?6${h0QL!_f8x zre%|2W!g6>4yJ39;%0g`DL!UklM-ZxHz^TjY?BgaCO0W5W@eL;W$OKk!A~^#6*JT7 zS8Pm&UvVEEmbn4!%|m>J!y#F&ZAN|Kr0tYnzFEsA~%(YQr1F&$eJCo{A~2{Y3H zB@>{fY1^jQw<(To3f;TxQ2aZTdpf&!DD+QySieK@?BFaxB^)H0b}Htb#Mn+H&J65Q zg1dis1k;a6kz%?FSXdL89ZZ z;yg^WL=|h4s5`6Z&l1yTl*}1oJy3~K{O{63p0>Vf=q8h@i9Z^l<+yCp-nNi z5iMfmL?beY_GS+Oyr*Ob^bj$cuMpIHsqQ&5ThG%V@$U% z*W+Vu%=K*K{hM-Qn~2^mxxOt#Qy|wIAZE7ZX15V-J9F(jiK$3#Izsdw%Jm(h{+f^F zT8AEL%O`ME{}XSIBrnSJEy?pU9ZT|@Ow*D)Gc&U|FU#e|7U#v8fyH@2rg3SWX(`dMG|$QO zEz9#SBbr@#78lX8JkPtFXjzeGUBT|k^SbirQ1j*4eR&Qa{WH><7j4apwQ{OWdDcxt zt3S`?CkFj_A*Od*o^Km5vMn#lwC~Mx>?J1m=B1diLwWH-M91Mg=V7AdaGsSJI-VCk zPK+PVOEAMH^CBmSj(DCkPSk&&XZW7zypZR*KulcDOI{|Xujgg16AicWjJJrf+j;TZ z>?8AyBk6Ypc0<0yKn#w{4~-+5XXRUF5goJgolMWHd@nOND?h}H&dQH5Q?v5ZOv~(i z>uh3ZaejC)`;vU?5~6!WzGnr|vnt=aifCS&Z&^z;uFp5E=l!ku-d19EbG~j1(X=Dq zyn|@pmG9Wa`$PGP0f`7vgqJwM4zx94Y=_Tg&BaQbCNYPdSh^o~&bMi31n)y9#;%t&>X z>1tHF8#&&n_A#BK)UHuPi$QHQ5N)H?_R++^7aw6HN0swPhU9G+u2UPYjsUK@-tsQoETJliJGEnbdk_ zqFJ46CWe~TVWy{9?Pc1U)pn+#S#4yd#;em@USzyF%Jhv_`qG}Ca8@Qh`PyY z{bZthy4o|H=$NT?&LsNhssnS`=c}FbiIMs0DAT+^ZCOA}EmWr$5~EAhu_Z*~QnhI* zF}YNoV(MLLgNtZhrM9dhdRD2uO#do%fEjYD!){{QtY2h`pJy#Js&d5{>0sDlw=^sqX1n3z1OP8}th zj;YPZh}L6j8`E)I?L1Bl9#@B$k>lzpGkQuLJ4N)IR(nqqoe8xoq3%qd#nq_6){lAh3brrY!~LEks+ez#b%~f(7Xy z#htqfT)W8Qy9*M#iLw0!@%_Zip@QroqB&Y%i4yfk3k*kzj-v%mru%4t=P2cmoh*o- zBoCY`2%h8k_XW=HiS`Qxjtj&{svw#o>Mj@PFB6@Y3tY_5je_tEVm4c#yG?Z8De&AO z2JRFDnbA81F=p~kL5itsFVMHs(Ae4w?Ck}PcG?whFGw)M?FA7IIffTHhZnkr^Y6Mw z6go!`lTC%GCZc6@p>;ITKDyAsv>FR-9l!rF7CM=3W1)xXonGjhPITA`oi?I=UZG(g zF+8s@!VE1a3@;%17ZwH<61|HHeT#|7<%Ox`M3bw~>>^rSg*K-5+d|*BL`zGdwT1U@ zD70-LhBp;PHW34x3xk`9@vVi4t;E#U!Zg#fztFp%Xg*wMIZU+03hgnX>2#s_G|_mb z&~%3AJ74HOPjsIz^f2QW3KJKIkqd=UruSl@?;_E4vCz#lrwT18Vk}h{XQoqynN(qC zI@cE_uaajnh1pCYeLb8hOlQawnZhJ9mMM%gtv3s8H!1GBS?Iq>?zvg$WoGq7y2c_J z-=-o*6EWRXlwo>D75PRHGvkZ0>~4Q+OM}28EnMl{G!x+qGLgka{Y+pf4xQml+VrX@7cr`Jwx;V%Tw-iTOh+c28&r5WBi#<%g zuQ=c%I$Miftweikv4d&z7u)^C_ugyWT5Q`|Y~M<|^jnJ!%wV866d+o66x((X9XpGi zJBjIFaVAJi>?%&~BBnyc=@2mzDvmNOdyB1miJ^nV;e)*YKymZ{(R`@ba){_UTI@bb zOdl=IFcT+=lP8GTlf}AIL}$F%6(?Fw7h6vgjc1BYXNbu}aVkM{wH3SDnCFY#=ZU@x z#r_M#(8c2LMWXXkvFj4iakbcam6*O-oMAez7rU+#bvKIjH;AsA#qOI#$L(V0ZKB~$ zvGEQuai=)R473*q+c~Z)aq3EFzpf<7Ob#ze4JT$slw?N`o%#}&zU1C}^^GNl#u8&A z?b0`u7@C-)OAMolvC$=Qre$o2bu7_mEb$wO)^R1aam4hvk_tqn2$dw6{yimuJw)%G5+5@eE=h%n zf&C@H{Y3kL62}3e^+1V@89Y=HIz)6FE^!_v>W`Edju5klOLR=bu@d7kVk}k?j}dhz zOY|p+mJ=n`6U6Y@lE_(N^kPZuBGG@dByf}C*%E7(7{6VTxXtm~C9&Hj_jLB$E}>oY zozm?RFYoslO1*|sN;k1IF_D;^S*n{w^v)~w&123l_01=m7nE8S5Yr1vGfbST}KC{1)QTbjs{`|p$n?huW-GLx>1=1^DWWqL=J`9=~GO=Za@Vz#MFH;Nb>TNWBi z)EUe4MxtX}nR6Ub-&|&BCVHF8e9UljS%evFE{ic!&1Gq(!Bl265!0r!4AX2bvzUoV zOIgZ7^vo^u&Lu|Ymc^J>N14q*G%YSOFDAN{l)0A>1Ix;S%ZTxovP28fvcAl^o*43% zh5bb5)-u;tqAyV94-jp8%ItfH-o0hMy+qgPGWThs<8+ymX*pMBJ;(do%G_;4=Y=xY zg);hq==rkjc}{n+%z2SKeW5IKf!v!a^QDNXt7Yk{#OSrM*fpZ*dYSn;(SEDUaf|54 zmN~OT-R&~{ZKC;hnT46SU6#B}<+*Q{dDw$@%0hRD*7h=6dl~)aK&P?jG*%t`Zvj!A zCdPD)(6~ns4I?$ik(&GNwT#qQM`~;%X;*5bCe3u}H7-3dqSr*3#zu{)k?3mDxSKTe z^VCL-u8G_{N@E#CjE~YJn6@z*`xs(oj3&#pkJUKFvX9kd$5KB3SWSREYShGxMCUk- zYaG!#UgH~2P02KCvdtQuiFTPMXe<*rG+E=DObkrX1g8*fR*l_CN!?bB$ExvKX_sN9 z#yFGcpQ#BjLo+pDrg^r;GMj3R&CT(&*g8^eRn;J>%A7+2d<8i8WNT zca6rkM&svy+SY39Yc-Cw6iuzwq?zGwHIZ+r*|u*r_HW5U>onnY8`ILFv9{2D zvsYvB5))ocl4<)+WB-n5Sg$dzr=kNsP0*(a`RJdqjhgsIO=2Ub4rr46KatqCYaH8& zmhBoV(-_p4f<(tojdLgaZjEU-58f_KbQifPq%ntxmc1J5UiSSO^M0cKfW~lu_aD$$ znXyBf_#vt?bVw6Eq=_7&UAE&I`*GUkIj->@*Z7XpE=Nq`j1k?}HJGf8XMDcLu0)`G~UpdnC=@I4>PROMs!*ld7V}_Tua}%H)>6dT63e8 zCU2tFHj#GOtXjKO>#$NPlTB;35q)#D{<%c+BCTZ+(Y09XUQBc>);gKi#abKFxL9jq zW*2F7%;aKis$>5Wt!W9leTmk=bhxxm7cu10hMC4yTGJ|`)uXj}i28L}!#bj+MQd## znp(7GroKgMV5Zk;GaQev(ASn8&SVaYhb1W+6?bc2DB+=c$+rD`wiQ*#_h!HHm#0n->!8q%{#P~9YjY^>kRV# zom$6EqGy-ZyNl@Ft@Z3C2143ki0I#=4eTLC_G+VhiJ^Vk@IGQJtc{0>(f!)keq!o? zHhqAYJg7|_B=!*0Wk0({)zsX8O-+1I)--ZIqcj zt4%R=39UXsG$*tcrX!(sGQA0{j~Pm6!_0U>n_y-V+APy}PHQ?xw4Kx1neKC14>NF1 z8)Qb$X=BXPIc=I5zo1QAU{7n)X^vmh#;&nn)25mBJ6gvbqD5D3)s@qJU3r?B995ng zMYI~qZ3f;yx;#CasGn4Bm_#&9E;mmmnx~XorVtHN%8ks_^z!s{qJ37mV;1|Y@-$OF zyWB9FXq{bdV+QAyhvpG|^UD29_o8yoBBFV5xn(giyQEyl|07%6S)O1TmX;fra(rpI zg&AF59$QX~>@Sb*CwdN+dk^ydgXJ-1;$V4_={j8QKFofiJb8i`Yb%ep5lvUh%~y!d zkrl3y^uNkQ$5zC~663atgpKH*QxTX$bk41C%_XMhRix(;L-Q-b^NH#C6&a>(L4|$+ zG2o~OI*7Jq74~Jk-&LV^5$&!D2h-)Ma5FP2E3zwzrgatObwq2V!WJQBBNe(sMBU*E z{b6F}P(_wK6|G1|iI!s()?*d--J3pDkvUb7Jw>|$@rq!ab_Ej^p+rSELA#viDqQC{ zS6fB8jc83(*iuCAl?vY#j^C+p-Qjq9MY^5ijg_{>O6sklGGHL4CRL^<5wnvjb!MW+ zTqIFZHZ4)QiROw`f{FPxp(Y?FUvzzGK zUFm0LcUS5{M8n=n<6feDU!`Lo(R94he4J=IUTJ40k5{Ic!4s9C6U5Ys$}}^3qEdH~ z=#N(h;zVOxrKyb=ZLf^A6D@`+tAYNPN!Pe4_c)@dxysy3bT?Odn7-yJKhrR=$~ci| zn_6X`N{r2}iq9r`?NvTI(Y3hBy_gtTQWaf7bT6&)EG33kR)tp*gR81StBBb(Rl2pr zXlqrhm1x>jW!^+|2C7^EqHRZ&eFxF8v&y-X=sQy7KSI<+tMpN#|7caG4E!bG4qT<42-M^GQ%TlB1~&jjjf58G}NRFMBUgL{a9kmSQ9rA_2X&`(YK?$Aw#J+#2C_9lWk6_PNsWHt%qsfTI<-# z@olw+Z5-cL>twpO)q0rO9kse3(YveGw~J^E)!ITtU#Qm442Eh$Ol!E-7AATQ)OrsP zqX%kZ%*27(B-3@M)_sT=JXRYzMs&w&Ju#x`RIT|G`>9$F(|4-Y&orE=HJ%|R6Sb)X zG1yicY9prFYSYYYTdnSUqW^qt;5<=(tJZLfXlt*vw-YnE`?I?H$w%IAA4&9&yg$GU zjl4h1v^3psZ6cbM-EUq-Ou6q*yNUk8_XiFWUBm0#!|SLWBkPPKiLS;vcOx;}SQlZ& z8tdXr&*(buXkvU)U1Ac^J+00&jc8d`XI;kem37{g#8hitx|OKgQK#R*@nD@b$no8E z-raSo&idVThTY`uP@N}4t_#)aL*({7b&fqm> zb*>1}e5lTHh!{Ow7duQ0AE}ERAqJv#!6-2itxGb!N9%k?sUE}8I^$7t&#^l1F>c4P zI>Rw?$MHJnabh%97mG1Z)x}N`6Y;tvzq-J5y3Tx>=sZ*BIz!Z*t<#?+2HWaFZN$L$ zb;0k6sqgF3O#Asd$9baZLY?^n)e}8m7h^YGtTSCChA!2GFA)t_>Wo*2j!d01Lk!-j z3*905b@c&VJ^lZSx_Yy&p4Q3mdjD{uzo|aZM06YKJqDt4biHdd$H&zB#}LzF>N8B; z*n0g~VsvbMY%G=I7+ddT4;$+vM&^Y2$OPJNn^13`KpvP_ADl=`POVQ(WlpP4O(R-o z)Z1nd!?Wrmvxp{Jz1c?e&8hd#AsXk`o8}Xp3+i19*d6sI2hruIcQd_?dLL82q~5TE z7+YQ+Urw|I>g@qyB2b@X`nT5ywiCm<>La^|_TBZ4-MoKKeP9pKu&>^@j~EQshxjED znd9}@%(!Pb994ibOZHoY(sD?F*&v&#mtOt$TEH7 z8~o#m(Mb)lNks4D2H#|2Y;r@KnVj5^V!AC29t+Vkv%x!)Xqnw$olW%4ZtyV!vm1g; z)7%F0T%yO`;I$Ji3mU8oh~5PaK4xG+Ly&1&)L>pjv@L0{FCiwEHl&skjY}I$O#Si( z!*XI~MMHK4(Ymt1wvy;r+2CYa-3>N3(dTaPGh^}v?_BPPNP$uQBozrnYk7~0IyM)t08-fXui{6xkEIzH<;Rqp7sVWGv3~iV48GY&AP5M zI=ZetW}qNxM)X~y zyg%63HN@^~>gsPI#z%Ecj3T;6clC@W>PC0fGoxd=#>NmcW4dOU*0Eh}V~L)zUA@f6 z*sf8g!PwPk>`L!?iPOu}>HReS|2CUm>_qQn>Xg~WZ~mcoJn>6w=$%?cALe%W5l&BD z4}bj=@g8t1z4V;pPs6`$qnFB1`B^Eh)1&{Cct6BP(o66;{d@3X@HYobeLwkF;)CH+ zs2nbj-_yt2n{WfYKan>D>4%`a&*>%jT>iR`q`c4gusqLGgksm<(i+jcIz=z$I{BQD$-DrD&Uq(df<8|T|dMO%v-4A79keqDGnj zZ+Sh^yQ>0!7ymc6@BjGBX_7vom-u|Fw~eT;bOFVw(fRZeG~U`cPWeM9FCXh^3eu0l zdY*IFar{Si$$Zs~mh$T81D*c-qs=g-XBPNVrWk@y|<0)A3U8Vm9~d*e()oG z?>D5pAmZO+{B|P#y8%=_oZf=se4Xz(0-k;}(-Z9o~kc`hG zJbwSjAKNSW0|rUoYqPj#wD@v*Pa@Z+nk25l`NaW0O@9=D$1{TQq<77Bq)*O5ex#4i z7w?1gF{J-9mCft@$`i6ayU~mJxV{IL$$0fa{4(MXKPBbcmr8u?&%|SH@frCtUIC~0 z{hOq`PD`c!0~^K5;O6b(-QY{NiuZ&c`+&-)^JC&G8NWq4B;IS8l=tu!@jmc0#_uKg zYnIl7HboiCbObgW*p2@6aAEJP+=NKk1kJLHOUo;t}|kZQ=>|GrPny z@QX-)-wLV!Ypl2I8gXB%q&Kb={|sL7t@s-lKl?iIk1;-F--&;V@#wZ*{A+l0gZL(_ zzd@VC_3)5id^g6o*B0?faN}0-L73lIK)eh3^U`+lap=E$hj?f7KNu9BhxEan;;oqP zUSG?6Pv_%@j_=2CehT1v+#CK0&S!n#pYcoPXujWyNO?cym)p_O&ft7-l-3f*dsWhZ zXdC;i9RJ=UNRRRJC&iz-d;Gv(49a|TJ1_AYDDN%!D>(it=p}c&{RjE^@4xeA&X@W< z@WeW)zv7a_e~0!a(B7Z>CH_EK;#;WM+@BQU?I^DX@%As}{L&rgo1UMF_ke%HaXMcl zaQv6ODg6oMQb%a(^@z0ZCHU7fseU??vtBtr9Krb`h5WzA^=n`siT@hc$6r4yJ^j=kq=JyNK7$koF~Tedq-LdN&O`Z6&iL zelsNgGx&3R#fQMta1-3HU*fOAV+X{yER^}^N7otNQZG__=%4-{iW_--(lw_y#`_Lm z@BWX!h3i`g*O!yHKRN;5R4e5teJXuj%E!9rvq<$8bOLI(!H2Z$E-RjsAay^G$c89|dp3 zdTmAhGw4O0ygr7mmHM9VFZJ8u1z1mU_!C$kU!gt&t}pk|d4jjKSTAGlw&#o-uMxz5 z_Fq3l*ZFAP>yFi+z0;;mrv`v zAJ+R^l-~{c^SC@Zf15Bqf5v<)fRC9h<@d$ z5m`@P(0Q20+x5MS*C+G>RBnF;?L9U~;--v@&k&4H546{U_VQJ-W-1|8`K^d`*1HBh)_nrycI>EbZ<7xr}!i&ey%so^EuV z;`DuPNdEDdkAX<t?}3kLl6j-+ zIHyn2%XoR4_L{_d(o1@I`#X;J16cphpg%*=zCWSAaeBEgZ~HJm0nA^2^tT_{A3*!* z^(-Cfcb=5`ooLU%Q{wi)(!QQp4>8nNfq42~63<2X15o~Ll%KDX@*lq-fyZ#X_O?lVJts=~A&8g5_3)=K z-UjsNe!kzL^QQ@};_Dl^1wN3^hvYW+L_QyqJK&SC9>e9*-hZBu@fbKq+Vk#Fan)+^ z4B|cEzdb4OK5HaijpHFZQTn?U>7Q6D@%0$Lib)cG2i^@{h~vRkCGFwA7r@7VO^x_b zjPC$=5!U-#@CUKpRb3?gI=;TqKl?A1`rhO7J^A9b;xC<*@(tZ3{dAm9&SU-k2e3xSsAueH&1|2k~!k zf8vF|i1K}KC$Cp3Zwvf+)E9)?QQvO(UaZ#&T<;&c+h4?cb9$b-^Kw0&&&NBt(Jj4_!QLF1>Ozy zb%U?OeE$;O5A{6>?~D0<{%(HM*B|~mo|nA?58?B`NAM=xZ+{N2NB{l@{|D-Cgx8|} zaqwTGzmxCgM|)<%tvEjC!+WDWOX2I#p4E5beEp#H`5k-++P4|r3GLenzk=iOC_E4C zISs!D?KuzkVSMVbet(Ykb%(!#_B;w-jQMy9{sXk<_wZcQ|3~-+)b}>L8s!gy&%t{8 z3~omGU&Ak=e@*aru)fE`_h9^|z?+cf$m#F_XT#x#HfaC8w z%zq*Lc^r>*I3D{W|7fiD57GbS@V~;lBL94o z?+?+w%P8+@_;mOdjL&ml$ob}Ph<}dwCB&-{e;Dyyh%Z3=KZw7G_4^*;PRyr*coMz_ z@sHtuM*LUE--P%S#D9r+D?EmHZ}@b?|Bdl_67grzzCXa*Fdqr{uW&q#hmS`5F_iZr z;vXVD8}VYqHHdFQ{6oYCBK}*<@1GFg4$r{(kLvL8Y=fH-{{!+rjQD>McOzbpcpH2_ z;zQwj#H+9#zDImEj+cw@_Yt26zl!)2c>L~oqP+fyKLh_S^8W+rwMhR7{3g5%>Ayk# z3ixBlzXj>HBfcH(NB(~xeNV){fOo<1@CMRP!}0qzd^O@(_=7m#bVmMbh%Z6>?})F0 zk3qa2(%(Y)ufeq#@2`=50`iZ5FGl_ckiH1&r#lH`1^?WfvXYM!`C4m#P#_vh`){X`YPfYod2)F z6Y!bvFw#Gd{G~WvhaujMcrD_+k$(^3Zp6Pvd@|O@d^`{O5r6)oTl;r$K5pgXm3#>N z#x1(Pru#1y?!U6Ae+BZtiT+N3KRQs-cS8Dg_`K@E=at*^VSw-N0wr?){$v+&`h3v+ ze{%m`UMTUtRT5WmetLA$6YbG+`^bC2S3XMhQC2&i2mOmq(_CI)l$7U$hv2uVSdK^F z=May_lHh+5?)5%yYO}a&jU^HYSiaLeLIS1 zy!oRYp6}A1L+BVE_W{ZOBYgkmjfj`y`-}mH#3$kVxgfkhzQ6GumiXWB{ZIOc_@nr~ z%*21_i?;u6mHLJq6~Bq^hqCaKNbfr)@rTg9VaLVYyCi=G{_p+b-A+jSJL((Hcg;!h z!Z1~~&*k$6#lM2@K>y8s=^+4Z7chP?_$hoJrGH-H{Wi*Y1mV?~ zpPnyBT#fj!m&8wEzGLvt82_FxOZ-ucZ}JuKHJGnxKk-{AKlG~j*O;Ft{wU6mC3rp@ za5vVw3G4k|I3L;IL-D*Mfc5$l9uF!i1b+_amk4|S)^`lvg6HcxjNg8Y_f+_A5ZA+Z zV}91dC*byp(z6jd)IQkcbU&8lwjdp_hvVUyDw)5cfz%P&s^K*sh<}0fA*64{_{LG6!uO*z9_QgXNN*S+ z$J-Q?=N%#CeF!gW6yF5z(Ih_UU1^^M`5))!^;A>}_5YRE57l=S_030nZox|jQhJIv zp}(_tQ~zmwmMxU>FZ@l)Q=$CMG;JJzV3owvINrO%lYfx;>h~?$hxMDneDK$VoWGY( z;@=>D0PcaS_DTHTsJ|ELe}mgk^P53=f580S8<6YCboB3W_}h41ZhK$W+w*8oC#;v_ zcz)OGV~Ib4^n>8f!@q`)fongJ^rzwd5%2m_>HnZoT9mZKvEH6Td%nW`TN~DIXMCQ~ z{zK;f*SJ4R!(Ye!O#VM5J{|WPPa|H(>zzIy{0rU>$LkDu4EH+$_*LAGK7jJR$Nl4L z@PDEFD7+KOzYKpB?H>+5h|gEc;rm~a{ttak`hVuiTA|#t1$j$d_JR42>v6q z|A%}dL)&V!zbpI-)_>qlDet*r%1`U*zIVlodHg7A0PE#pjNfmNe?R*FFZf3&|Jxx_ z-$8ue^6m&JFN*uU2;yzHpS%j6jq*x9k^H%x=e`@|G{x*KkwE+I{9m)U1*Ao8=*4N8eUwzvpJ_O&tl;igUdy)Pp zJpR1&aGDANB5->3D)_YrGQ-*os@_!sb@NS}be(}U)Vjt_@d)^qEta(wDr#5ey> zj?cb`AHnzxSS0;Pza;71>m>a#{C?#LeBW^h?(>Ca-keq%;{jF)eL_^;63Cl`u8 zjq%tC5956PAM}6dFQomQ_(qntYP9bF+II=#_ZI)*V%k2(`RoS&yAR>Mc2d_U4J<6G;O+1<{D=6x`9;)M2%r2%Szp7>(n*816|agX;9U`?zyHw@KZo)vkbfWi$MA7z z->=}`^Yw}P+aKPB_yBl2;$OlCqJ95`#}J=5G+@^CbK=Tt9BWe~I<0!S9LeSijxjWjJ5I0B=TpQPh`<-!DD!Te%;4lCQ5c zv|l2937!YdgZ~rv(>vjX=uZsg{Q&(>z+b}eDF@Gx^1FFuJ}ox!B#sxAQ@nnlT#t0$ z$?@5Z)+(QmzFH;mQ~Z2|E}b!4ug9am!|;2lp-AsuE$OS!zDsCNfQsev>^_PA9p1fF zoc{K^od4if#Cva)_&_}0h{CVo^KE~>#1EnV$Y$|v`21`@e?GPpc_DenUJhnjx(_vi*5e+u3Gz0hH-kDJK95$owq{2qS%>U;R_D|hnI zb)2^o--t)(yw2NSY5X`|@i`r&w0%gwyJFAMd7QW3Bc2&5?l~^$i|Dx+Zy#O|@7pFG zr}^Uidi-9=5<{H!^Y&l*KD_WAU#HA}sbJb}o)M3j#iPe0y#v2*m`LBpb9rwqm+~8s zzwb;*|A&~w`^)rpy60!oe*WXzygeL{c%P)?uRkGG!oFqr$2Vh+e-TV0(%dq__v6M9u;q+-@$U+gYu2^T!KCRvcy~I_XX^I zejGp{+H0+p3RcpK2qu%h~F!( z&A+!}J=oXC=gGbBVeqRM&mjG7l{f8^_jIIxcdC^4EIbV_e@xa>=v6wY()K94H?3>l zZvRd4>-u$Qr#F5k{V97@e8U6c?pMUeP<|c{@1Mj^&PV%kJe+t;eCP`jpZ=7TU-O>$ z!=Fi9^`iLuFLdr`f4@IU`+C9c*QNipEt210k^aRWl=?$xkAeEZ$4~xbiCf>4^4%!E z8SUxWU+Sx+-#-=Jqw5qNBL4HoCB5yB;`hHQ>(Pw)+D~yVzX-qgJNsj)-}t(u|KHP+ z-}SP1;Q+~>K>1}n!|8Yrgg+GY?4*7$W-(!K)*W*d?Uwk6o z?|JcF1a2=rPIP*Eki-XJK3BZhxuZQ%jL(=hsjnBt^CS90@Z8@17>_~AIlZov@gOBtWw?`6LBtr5>YC;nf04$SFOcF8{p>ED_r{wdOXaDD!?T=J*g zlK<)dC;k#Yh@LvVO+= zN6PQ#7SDlq`5JjK@0Em;6}9WBb1)-hHs7A85# z2imtE?e%{o_2**zTs!3W?1u5{3*UnAduxrPFZ{367l1!MUfP$%{m>J?!TRa)gO2&s zB0v3k=nn7pmE<4j6MrA=&mjH0VG{S7aHpi#{R#I^qv> zmht=}`lq^2{N#I*KZy9}y~IPirTnSr-xDG62k*vx;&0uJw~Du5{q|og-h}l#aJ%?d zm=C=h`LTW?+r-bHf4$+Kp}g)1i9dq!Z15*h-ms{|yP!PVS@HQOPX+(`K+G4~SNwwb zy8%i6Bf4(#dJJzBSFaOKt`ff&`JJc5XFo6Tx-;TCF#dIjufTl9j!1k4+UMCR{$s4a zm*9sm-@RAJdf0~XeGA9y2*i5@WqrPY{+WN@v79=+hxnk!b2@hX81cc6iT6glW~Y>Y zKfK2bY0rH~?}5KU_nSN(^w&;1%6sw`(qH3ivVPR?!Sm&Kcn!zzu+5VGIXdn*{{!$R z=zPq6ACBMNIKK{iS<3rci=?;ilKju$`2Py$*PnhP@d0R0SHycgEBWW)dg|IO`PV-s z>0_wB75QtnN&IJsC%1_2qyI03+t>3gDbEIfqL27zf0g4ofc9?wPSU&Ym;C<^?)1v| z2D}pQL*HZZrp5WNj;_nRT^}s*G>(7s2JxcXGQSV{#0~A@Cx0#Vr|5ev-dd5r=#Io+ zL4MUvY40hxW4E{m`CTFL$#?Vb5}&hP>WfblzX5+~viMtQzjLqD_tZbo{z($=hV+Ro z;y=cCgj!{M1|lBziTB6&1Wb~?86Mmy@hNC;-ARd?>HdM|Cq&O_dHV$IugQq}Xg%Fe zr}`n2#WmN&qZ7oH-qK!GK+6C3Q{qPWPkM^m=gNBS|0k)>R3hnD)BO$C|JEXjJN_*0 ze?!_g;C1on-^7<9zwI6I&Pdb8C+ArhRI77TIyfb|d&++hV$-ikD@^_N)y?}T( z#OF_!cyfcJub}VsIsf1Va{fAn`YrJ8XkTcL#P7M=KKMYi&wo31 zeLYcs$|mlo-wAO2F~mQhd0-#3SmNW+zR2rRe}D9^`=7-hJ1Xh>A%6tn#Gg4R`3E9iKULhaT+**WJTpbygm~|%;xD89J?VQH-manl2KbtnQnWS_yBn5T`7M8)|>m3tk2_cBisw`2LBMAfUm&yAn=Xkzpzs3^XSBV zYsHN?pZ2HgCXavMYl&Z^&kr5*L*veyjgBuqKlIrn_k->a#Ru#VSG^<0gKDLW?@xyy z|1~)tPQ!aI=_sz#jT-s<&FYyfGlkoW>HB{mn)E}ht7;jtX zcM2WtgRea#?Hf#=Yj}I)uG4)HZ=b&_@t!EZjjm6ee+bh1==%Zo2k?C7pZGl0?^79% z8HlUC5YJqY{<}(LK3~K63?}N8Rq`ba#o#5@u=ViWY6q%oc@F!};|JPUI_Mvh- z*C5{WlAMoP5r3EB@Rh=b&xJmqpMdEW2 zw=NN1h4D?;#TyNhKHDtq?S%ZU)e_%Y$zOGM{;cAoMoRhV z6_WpHc+?{P6w3cH02TjKc`&%dC*=}|I1W$^G; z@tY$geUDGX$DzMHOT~AheFH1RS0Q~(Qr5$BNT2VMcv*KjKlQ}=jCT_c;`)5(C*tnc zq(8TQBu;-~y<_~!9~MuH5zjm*p8P<(H_A)CCq4@0G+mZppt0asNW`dc=EUeXc@z zLmH+3g>aiiJVqyHKHv1h`Wz3h!}|OI%J)r_^s_O313HU;i2nC&mHOvAB;`GU`FI#^ zrtb-Oi`1b$tj|Vx1=i=|sDJ1X8NZJ(Uc*Yne}VLla`8m1l=trUvOdd^zTXCkU!wDT zNB?rffBqNoPF`vM^RJ6X{SrU&u6THv^yjNL#nVxVUqt>s_&%%p?-C!{DDem0NBYg; zn-EXll=gl6fy7_>pVWUJ>PtT&@zsBo_~2^sohUC+AwCSpf7wIgb?->}I6fcrLH>cY z5}$y$?g8-_^7s3hcpjb?74etEv<*dj-l`H`^k*qQvj*4eKZ=`bB>vDFh!=`aep%e} zp!lP&i2ENFfBz%#e6;uZB{F}*dPw|1r}$u$=S4h*_Pn`R;$P8y7jL^4iI?GdRrGGW zNXi@SkoXfn7XKO2_w6q3qvyK3J`8H{FX?%3$Mtuql>e(AizmNDeeXzly}aV@KPd48 z#=8cepPr!m5Z+#(Wx(YH@I2)hJW($7b){w25l8#(&~Ekz_=mByjY0ZedEz6GK8*HH z9VG1;wp!}D2kr4J6aVOka{t@|<2mPDN#6(Sss26jAwQAwOAwFei?<-|{Hgex=wAr^ zJKQSyyL+U*9(X>{XOs9;+|PACE8goRtdAwK{s-fEO&Ok#yz`-yXKa)D^tk`d&XfD8 zPmn*0=QE9Xo|9cHv0pi_pe{06^ z6@zcU`n1MnJlo*i@qKy!zes!D?Jez}TaNnhev>EuByRhi#D5o(_Vt60gD2se-<0yK zPf7YaxW86mzK<=Fct4!KChrgrAVf1#A$X_ojOuHbl?Lk9+Juhaie&)=Uo@7^EcdFfY+WW3(S=cj?=r9VwS zmi)c({X`?4mk%B%@mH~)!zaXN;P@)Se7Aip?Xf>D>tiLJ*QVjFHzeL&E%^t)6MvKR zsb5Rn`i%H6`aHw^?evQHd-VB@Jv>0%a9Y|ss6fiAru%Y^-`9-snjq;1&lC^7An`#a z@i8cG$orDNrH8k`}&E;E5!T0A^sxL2i_O|2L3 zeni%PQMGulUy3hp5FgY{{K0zhx}S>oK)lbR;tlspyy!XcHSl4*#mCi3T=l&89Ml)Z z_Y?oElK9}?O8egFBHsNu@oVs!r^L6S{R4j|Zb$okABZ38E$g`t#w+re_)D0-v%e7! zz`sU%J;v*8q&L1LxOfUa@fqW}|g+V?W*e;4C<^0$)S^{m7{M1I?o;%_3J!1`W@ z_VvN|Y0%#?eBNp4CFOZklK=j+toI)HeDFN{D?Go`cYHq4bu!`mqwP3egCSY(#dv<3 z!2Pihua3oX_kypZyT$HwSzN&VRk}ys-0lIsQ{P-(E$$ zZi>w3VvJ8dp7*^&zh~m{=ygZxGs6A1#pfV@aCuJ0`WS=!COq%^67ivUp7%V??*slU z=a&!gd^!Fn@#s!zpXwJfzXdHa-`UqCJ_zyqelGEieL20ZQ}MgDgiB!3y| zQx%K%?I-2ebrt`|E@@8>+%NUS{ecembHAhCzi|6}m6E;!*UQi^#V;(Ccn0@#@8SBI z!smfz#Lc*0{{Z*P_x(un--cW8`9Qh5zV4C!{s`-<6P_RMN4(A_^LrHW{&?Q~zwXk% zUbvs{{IIwU^=8-v9bh3Q50qW=icx4nLIOjooVvh{rsQL zC!h8^=iGD7eZTkIH)03J_fN8Z=Km4pCqTT>3;f;;#d~l>ODpJAlWs zd=#$&zLD#r@wWndIlgL_dk@uj8gc7H&~GB1^AzHLV;$0W%hgD)i{_~IzacJhk_@!v zd+!9`^ohV%$UIijYYTz*egola{sMf_Cg9>s;Ah0ItN4dx1J}O>+%|@|1-SVx;5%Li z9(xk-6ozl|0H4b6^|OHwpuXT-;QMLMh@(+n?UdJcCg^XU2m9k^05_Zq+~EawJAp@@ z3VcaEaPwH;Ak(Ay6yR*i%WwjJ!|)yF0WTB3l!|}mF|enJs2LjD#5 zcu%Hx@+{yA8Lx^D^& z)&qMF2YnyX>lps#J3(JN3iN;94qPeaTzxOy0leV|;D^=$Cno{_!uZ7>16+0?=qsim zz1@|-ty6(B&IcZPE^y#t%5wrw@Bzoo0S;aSJp4Rh=LNtcvVhO708W|!eC`t9kv-Ml>k7EAE{Q_Ld{NKDQaQ*J32Y`qD7X0Tv2wY3NOvX8if9t=Ip0`n6^~b1-eCn!$gS_}x@|R@0yJ6LI^V=ztC)9>(|vs=&WyAJD&I`;hos;8$GG zpUw7o7IFNC(C7I(!aE)S{#Eu-D*ZW|ffo|DalhM_c!ZbN%60zCnvVF?)kEIr(}0^l0Inp? z{3q~liC26Id`toOGhPP1k^NQGXTYBx4SNzef7+kvweh#0ADNB#=6}KZn@xM@k2^%- zr^g!yX>;RN6XzcWTrct!z4cJw`R8JOxa?)%zvn`Kd@JyU6A}N>Zvrow1>8t{2XXdm zpx?I->`~_w)wh&*4)LZL|FcnGe9(YoxRb z>N_AG@u{Z&IP*p5YxxG_$sJ9=!>$AW+0O#6T?PEN7l21fJFULN=YiLqjPU0&eDzr1 zCr$dPz-iBcfB3Dy^BRF0^MEgrfuu^m?3XY;EhMhze#m{Z82%2-Hzu6`-0=kF8$XW* zp7Rv&BgDhDLH?!mfBPif>U*#qTw@7)aF{ycCN_072+cm?&%;(o_`^5=0s;vY!w$Oiu?(u2gWliu_U z;$K7kjn{&I$7a|+i~AL~F@F+x9_u*9r-Az+UuAqY?uGXHc+z(SqeZ|}lIGgcb!To-dXn!U5_l=fwE6U!a z`yuZZ;!5u4JBsof7to#w;P<_b`gAYx)|p73pEE%p!TlYFnb-ySt1>{ZEd&3zlYwil z03J#DtVe)nOay&PIrJ|a2b{SZYfhu6;1(t$F&Im266Cm#Q!~ppZpx~5ZYH;27D6r)$IrT3F++z0l!H5*K$2{ zDeYhRB0?1pqy8qD2dZx>!;ky~@~-+9P62k1 zUUM4ozupJ`YPKKy(f;8Ff<u*YJGFD|ey&TXQ4y@A5JF&(-2*Q(xo1fg6aw$N~S@ zrD#tdKNk60mk9hE+s_S8K;GLN?-V};oX!4mG|xBRP25O)g^U+ZZ9`>EqrA^k5Zf&92iq|eG`q~A6h@bEQ= z-^TYKujy0Zl}`eH@do&PFCu;$WdEbGznDNMjJI9k-E(hNBI{0T${^;3=&uPmU zU*`XxZ-Ttl=YoEP_P>jNg8r)6#0jS$K93M*l71v{zIzXypO=Z>S=pD9iufIN8{{Ya z8}S*nKk#<7kwU(#*MPIdZ=t@oUqXBnxZZvGsi3dC3HBZREpR)})2V%>O5fUBK_6NJ zT(t=DTkZhfZ~^e_GZFtGry)LjtOLDyE$BDw3+&w!_-WeTd?E0LV?eK73wv)F0o-vb z@F<4Qd=KU2UamhhGykUSf%K_qg}m>?ucGXC+=TRcEgpFFbj0U%@xv(k$csQDBNBQd=|$OE$1OWUO5o-j5k4l>oBBGJ;(2dGyPh> zKzttM__g^5;M+LAtX_=pb^k&BRXw_g&d+j)%dYK>7ifz`k?`8tu2^mm&W{tMv7n}O>uK>8j~1$iSc zKznrepFs~+fxh}B;JB|4zV1fgs*6GQ3`h9pS7HCFGA~g2i^qUJ@f7g4eFFQc)&VCI zKhF9+G85%-9pw#K1$kdkUwQ|^pJeJUhyKf6fV|Zm&^O^0;L3%d4`cmmVEy`*<$o;O z_e$w^l)XuupM64{!1-Ac^Ls4Y{|8Kd&exvJL->lDP#&_*1a4q|^2uCa2m7nD3xTuQ zzx`SOJd6F?a`F#le|8J$tJ(gHB~E02Hl6z05)l8x*uG`6{X6d(P%XOUmkTlUcQ#It@nSieqZ`_{4r>3f}=J5cf)H={f(XZy6}VuY`F6!c{k zz}p`K-n1C_C-RSEdpITm^rkk*zbYB|vEv2cZ;0c$KlA7lL2tVS>2ophP=+5y{%zIJ zH{Sq%W*p=lZ3EtR4DbgGU$+vt;v~>#aewHk^mo-szp1`6Ilte;^NfeFKOaGyay#Oa zFY99JvoZgdi62CLchG;?G#>Qd4g-JnHL&;PYk@0127Y!iaNak-cN_wo^C|MLgt&qD zLgrUG>)*qT;Lqp$q~bZ?vH3{9YqtPzV}JZ2?a5FNugdov+t;`YpzrQCgIs6CU72H42wjS|mqr3yZ0=@8i*t6%Cz}ZERchq*^s`nx97uvIx{q44I82&2I zk7ECoyaxEkZ$WpI0`D#BEGm8Dxu2$z_S8}TmCVo4bD@9JF|fCxS|>-`O!^;3uLW*n z`K@~k_2HKNz@J%w@S`}s8k+|FC$l`Q<@hR2@2_ZxTVsH}>s!c=?LpwD3Lvkd5%^z! zhW!aI0H4D4rM(sH%U>t4KjV0H!<)c6%E7;Y@~WQ&zJ&5>UIc!x2Kw?|Lw<~A|5MNW ztbGsqM^6F&$EQMmAc zEs*!{aPT*9{PRXVaP30Ko6Y_qo#W*smd8YAUYyV?IXyHTE}vHz`o7xdt>h+owo4>FP%q@?6Q6Yl!WVBwd@f~q>o_0shqAm42?CFL6#Q-F!1s_|%<{Px+rPXr z&@X2GY>;(m_1T$!`CFl{=w#TFegNY40N1NpR-=54WB*xvIp~|%-z9Q>^e6V8?cD$Q zCi}b5uQR>a-);E<_AFs~#$N&YE~dN%z^^sHo@DOF{T=0P+6?;J_aOdN-$LG5ZtxFb zd3*a6rVr;Iv(5HxDcXmOzkpuI@n0j?J1RI{e(G?@8@@mEo%R{{llB8%M0!2(-}VQ+ z;YZjrjP>8a_O$FzC=VMrUn!G%smh0!^OYw^UncQX-wUMgApP<+kYA@Bl9g{5=W822 zgFVfRPu@k)|2EsR3Xb3LzqOV9(eY*AuV;VsA?H`yet~_bUxM%}dA_Mk`|oA`IRW;Kn9TY!9yp^C z{4G4MbolRqYo7qUE(`oaiPv95`+i3Ib=Gmfaoo@L*+lTqNk{nWsz6U(4ZO=};Hp0Z zXJvxF`T^iu_5xnB3V3h&k2W!U=2C=j9YTJ}^X(2iZ4$z-9tV8-F~FJRzn=1{b_4yz zC6G7#QsBu+z#EnUe@Ocp9|ykoD9Ee21UP*e@?#^zKg#s1-j4KH%Jdw`^IiuteG<|T zKI>@6+x`Rit0~X%Bk=DohCO4i1^;7A?@iYM$4x-^$+f^|?hU-Q8n}b<+8F*HOuw34 zLEoL_V_ODr9n&v^xZwh(_fpUwWcrL`di;Uq!}l2INh}|EjL+wce=rsFD#pJd1^8{o zukC8!bB~9FIufqwz{N3i|QCx1Qpf8qQgaWUG9DQqv2*O8@U2Ee`6YO&E<&CHS>`ka}ET5 z`rV)>t$_UZIey>t5%jxn0=@E&h~M=~5q?uH!Y7^z`bzpIo~OKFXMsQKP0-u9-{Kbf z?}`sb__{kmA9+3W*RnrZJr3>R<&B`nT@Cv0-vS=-73fpn0bX_h9$-iS?&^Md%3L$S7#57A-$wH9>O*|;Des26K`*BNC7!s| zkNmi7Jorb;xK(}Y8NY^=pr_FvTYM?(n@0a@O(Afe?Bi1XY359{M~;Jm)9XR6=6Ipy zGo)8L^S9zL$e&cr{J0F|aWVV5ngH^19_<~<@%i#=z@I>R1??^NgMW{Wi0@jiuQfjo zJc8?!ag6V#k9Bn8+GL-EvfuGJ@DCh66vo5e_oTe4{U^mkkUpCxg1`8C>f?IM%AbJ` zll^Ooe|S9jPx=Dk>vsqKR{-IMZ3q8so(D_Z73uXn>*LTbkRI1kf8$;V-y!}NCBKpT zy}rwXysfgYOnv|2d9b0M?5^>B9M28;82FEDpK?A2zLE3IEnL6Zo#U;s^P&IhPmzAf z9$^1w;Gy$?k6`{Kd4bbNPbdaHpY^A40r2xo-}Sp9eW#xb`#0SP`-^9z{A^neywnSQ zWA6k1H5@OtuLAvdEKe)$0{t&`@OMbNt-j@~pVh<;u2)n)0{*}5PJO#0{V(KrDTnl9 znO;E;^xgLr<$b;YZ-z>Hl5*cf{wQ^Jz~8=oM@~8@Rq&#P)K?R?y3?hyKc&5dKrH z_tg4;58fC3X+Ci)^E*Br>Gc=ldg8~{LEg%b(H?Bwit@Vt7^IJj?O_e^37f!Q_YcVX zjP?(sfBeoA==a?W`ex2&H#`k|Gx>ewKaKozZUKD{8{`jT_($JD`m9ZdediDl%?1BV z${*SQTtfM4I6oVj3VS-%g8qg9`L)EJ&5)l*`Sa<2+Bg&Ze>@rdRc8X9whnmY2e9Yy zUm(Bfwnpxz^%m3NIR$6JKyiYe~tJ# z6&^7R_?e4ff5(2nN0PpV^Z?tFZJD6oC;hexpO^^zTWL2GjynzbA!#=h?jZi^S?Et1 z0s8d)fY%%f{H~N+#lMO1eRmY&&-0+3`@rA6Klr~r9rUsE7al!Ix)%$|}5!=Jb9^jG3fqx{=n?Cd$`16=vEu>H8`O~W@FY^$D z|L$X?$NHhb=lvUa^E}{JJ^`-F0Uq@!u|L90{%GiHy;h`W_~w~1#aee zvHCFJH7t+$EZ;wIJ+WuDKQ<>L{3W^IUvVIC zbt=l|kO{z5tRLH%{_oSDKb+-Z&MpX_M|-9W0p8B^Url>jnf~!(K(DWYJ$G|`V=MQU z-7*sN9Xv0571uX5{|)>pOpn@k_R#&+5cWr#Zv=f6(`PjO{kQxE@)|A#J)Y^6cLwm^ zY44U4v?tADk^lLe9~_#4@Rez3k1us1eY|6U4`BXnbR)eoXul&9@^)~&yX9Tj>-rhx zaX9hyqz8$wV0kZO{B|Q=UC8`ldCp*boh<*=(?CD91M){QzW*Wr`Wq16TGBV>0N=#= zlF0avmwg|q{8nBBx|{7w9NXh^wioMoU&FnVz`u<98-}pGX?_p!eU16uN_iKu{TVU~ z^6xta;eDqfy(Umz{GFhm#`b9J`;d2x_`Q^UJ1z$OIhp4uJS-phu493dS$-~<47_Fo z=(fKhe=Gh4c{fnrSjsz%_1AF@`1fJ`P2_p?cFNm)H|RG~UKQ3a#s0|{;5zlr|y8m@2EWg`9? zxt$c~SKJh<5-<9m&Ywm~qGUjJC*C!L0pT4=E|IG5gc@pyT zQ`X;E4FB<8A>YCE*F5I`7N+m2$B{nuT+f^F1aQ*~l<()C1YYZdzL%Z?b{qqG)<)o! zTu+%LacF<)?H1Rx|lGUJw3>)YmbCnEJ9Eh~G$#w^zhN-m?o3zq&V& zeodo*^QrGvjvtqCeYlqE^Oa5DPdO0$>s|)_hV)=F@EM%{#>==~eam@1rsf6E*DXW% zh66EQ$vqVDpG^GlC7{>-3G^xSM`e}+r(a0@+`seAYT)eWG5$TB`)3-T13s=C^cC&E zCk%zY9UlSTNqWY!!1s|}+Xy`Ma)i(4ez8C9kMJE!5ueLs9aWXjY|=*( zH(d>S;bNrcBF3lIT#r5g@VK0L|o8@WEOTcRwzK!Gw9&zf)1UY&gya3<*&EQh}450Rc1vVK?m4tU`b&@))S6G;!!zj_qu zd4(u%!3yxVeuVb0ndx6hyx$_wy?=qdZ!$f%asIr5^pR}{KZWIW!~4LGl_7lXmk8fR z|9(30)ZZa~@m$}%b|LuN-$8tej|1IHTy#F@Yd(d%za@g6NSw&<9aW&eu^;F@;=izc zaeNB<&LCD|q9l|e3LimmBPg_}j=aBvt?HPMC@^8UD;IBIh_z=qT?hX9X zZ$WS03-~eiKiLVuZ3lwhcmVKk02!hfA(;MZ{m1m1@$Mr4f+YRe;Dh>m8FosqaE}E7=9V?QOy6$4?v%C zB;+@9yp`=k_|4q!^yiVF=M%?qeQ7xN->q8({tg$)?{n-QoAQC#EW+TZnOApM^?2)OzY@IRh~`PbG{Ab;td(4SF&^eLc!ZDb4lr;EA2$!j2dD*a2% z^nWyQy(*LYrAEAo@-wRm{P)yAeg*eSozL-CGxu9ObSCT@@(uLgOaEdO$1kaF*gJyb z$5-Y6CmfIQ+oN26-fjoZ=6;Ke?BYex>fPK4w9=8kd2fqQX83nwG@*Ecfe@6bgZ782BcL)Eh zr$Ik^E8|cMg2jkZYdq4Ua;WOAi{m=oN!1Dl)CqiBo_bY$@ zZ_tPR1bt^60ebNgSQkarB_H!lEQ*9!hb z?!O=NE^zvFpf93*`I(4s1Le0+|0myoe?G9lAh)*Tcdn(g^ zi}(rDSKp5CaqKVlXZ+`Ize%eN>6^j*7Ds#l{#Nd%c*p^I9rx2+%lycE9QGZ}^19&} z*mL#!2w(9x#P`WI;7sP<=^p}j@O(@S^$q9#lgHlyea*9wcPQmmbN|E@%@l1@wt)V*Kt42 zEnk9vEcbslFn*QXZ~lx~zqntrfaSmPUBvHK+P_xz&8aVq`fHfJM{I}ugr$hjUMwFi zi+~SddbRuq<@a!=chxbFKj9OE?_l{)Iuhk&1os=f%JQB>c_*;GZ{m7>@h=FU#P!`- zTY#GuAw8~R`Cn58d=TqrJNN%)ds}!+VgwgX7JgXnzOiI~}{B{I+tuxi9Ox?{K8wmhTY0jpNPWufWY5U;0QN zO8-bZ)1!ss$H}zEM}O7+w5Oiq$6fyec`N^o^tqaN6UT=uXisns?8zGfd$-ZQayI*m zeEL6}Z0~)X4}HV-U@XU1N3(u3aR116% zv8-RSmLUAGY>%4WL;3zE`=cRGfd2xPzadWGPiTMK*9gCnq|Yy zyNj59b?h%bWqYyC3;u^mpDcb;^W2-_|I{hLQn-x4kY9#aqOCH+p)hg=BykxziW zo%>Dy$^8zE^e6dAPa^%f2f@GLVuXL@@4%Inz&_%&)PFGXO6p5r5B`x1|J>Ec@3k^c zRNvR-z{5E{N|${kYP`Gla?sBq|8~-^A^&a&5L=Sq@DAt%f17D6X#d2UXS>-vOFz62Dor7>i>1z|FMDltsj01^kp^3 z?+qsd`)&nZ{tx75#WLW=>6o9?UjuyHAAl3r01mJq&_!+<(cA$Jdo(?>EEch=ce1CEKH|6@u!R1D=0Age z{T&FO5d_XW7 z0{8>$pORTW4oe2T&IS6hOy8}XzrIL%@l?>4klwa8aKcFlKiUI)BGY^2vE--zZ0<)t zg8JLJU%ipx+s^_2YYabx<#on9rpI{Dox_p79lHUa%knsx^h)|mHg5#I;z00^1?*DEh|BhPF|L8#aRP2fR zv^WKL%@M$-j0WCtBlvH!0}s6(csTj9j{^Thj!){JK!0;8`CD!R|EPx$zt(c#+bF-| zP=x=1{Id=Qev|y^k3rsECqRGjc+elA{q4sBfATQo$2|%DH@Kf?#X9I~vmty(4e&qf zz(090@TH^=y$je!`UtjJmp->+*x5555Y>D&*uZ5VJx4d|N^fHSGTX{Zh!_b$gf z8~y?M)=$7+xi9b-C+yoW8u-{lfNQ@*`*a8S9mj+I)p?+2=K_B)9C-Voz$dc(%Gm|D z?o`l+usxl93UC73vxX;O&ocVM-X9CP<57fPL;gABzpDZKL%xH3`&0fh2l$U;{!P9L zcp~YWnf^EAAb;xFpFP|Gc|48~H!l@*Zr6@Wcn0*1UqIhcp90f86xTrhYN(4lsgd?E zJ)W=wCv$)6y}JLD`vG=C{dtG=dBh&T<2j$Ge+2dETZUiF@EG`|L_qAe>uai z<9KNi%R|y$C=Wl}4SQPrFnH=pq<8H#=+BQl9Q5JW0xwEneCR)#I1c>n+&}&Dp}@`m z!1(SQ=3l;ygVnb$`Llln{b=&%JPrIi@^2#l-khH#$-WTv`N^OBFW_mUSID_M^&Nf~ z^tVvnXWZ|cH*^{-v@GAA8-!h5i?{)DrDV$RP z{Du#>!wtOWJo3AMZA_mE%8$DR`fBEb{ucGAcXrj+bRFmkvw=^M@}u-s5s%#!c-HZt zH{L`n{igb^V0yQc|6jWQi;GK=eF^FteGvHT&jTL&XW-g%ftTzDoKCuQw_1PDl(#$R zHKY%h`l{>;<|F*s#4CvFR)D{Q{2$*4Tul5J^VduMZ^$3V^r$L={1)<87Xs%Hf6em0 zjCdcZf6AUj;yak%vlzbvAXP3&j#qO~9tnI7?W-d`<0r_kBmYM% z4~}EOzc2H9J<}tR`8{?t=q~1W66r57f2)cA%>39){4(vIMZAvrw~pyERoX+9zMBJ( z|2o5OCI4*ZX9MvP=4S@+E6h(H@z*j=Q1a@Te^0UfsGbA)hnwxeGT^^5Jrjuwr2SUm zhZDcd_H-EWdZu?{Il{lp^iE$09B0N~_PMEV4cpTZ#Fw(ZZoC5YajbtCR|0Qg`?*&3 z!KrUK+ozSpRV+^<$X|U2>}_5F{_k%GZe0%i0P*_EfUhM^VtigDUUNC<=hNOT)R#}Z zf%p>Qik0B6XM4QuF5q_f>Z`e2MX5e8g@2$jhNgvMecIJPD_}$fa z9P3y6wZL_hpH2J>({tM@(53s+`PoAH_tNgF{H^*6>C(?B+;J1|g)Gl&NPmjuA&&T~ zXJCKZjo_ca{F%(~?ZoNC`>;Q0p*^$KBm5fDZ)N(;B7Tqd`Ka$x+P9hX`)JQr;=O6l zaN4ss`|GMDu$4-ATNa^cz{;S2Fx_x555lrq6+|A${xl%Q)>!3gTS>V$czVd0{B!+K# z5xAB7ZOy>*NZOIh#rC}8HQ;AiUWc~<|AFn|F?noT-raJ@ozQ9A8$h5uj~(#h~H#-Z>PR8*6&8**{t7d-bMIZ znBLX2|1$RHiEW@KuzYVOevauin*6WQ{A1b5{LB7qr7;Qzb2NigI9r`{U!K+p}etMf%DlO4<$aBxZ`Wk z&tQAoK>B#nTfYIlmiBD?0yt+6=vz(v73uB7WlZ1rZ^55Jeh2Aqkw1y{9#4I9sP7>1 z$GH&xXtO>p1YXbdZ8!(m&id1~2>5iCpH|{r&VPpf0D1xEGtEB%f4&RK^KjC?VS2P| z1N}^v|Dohp%e<<+%l{7aTR8r1{t;MJQ$N|tjA?c>R z0QuV_9_qW7`7>4tk7?|{Nd+!g4IDfXcmcy#odA3$)3=RyIr%F_gTC(&*ykf|qdhAe zpf^&U*9H8d_yd*xxVgaFDbJS<{Mxmkucv*lkls25^jyvt*BuXh7wv004)|BLuPvk> z$MUk~SkMD;kiRYk*h%`jQNYQR*O&xcPkJKD%TUs5j{*HI=FdjTPh)%2SPr_{wxi-( zu>?4s{eAL6;4Wyc^k?9HOrS{G3X~VKU;}2o<{g()c^XQfhSY` z*Ob5h0)+pQ{G;q!R|!0V_O)FK{Qf}*zj_Yv>Cz4;{eAwQ4!@67*|pMd{9*0((3lUW`LPm+dKzN3jJtBHVo zzc7EQPXOMZ`MGU0@QvhOQwaGBiJJ;R|0m0H{XF0YnBH4Gz}N2qd+UmTZ=w7O;#X+z z=3>zI<#=JseBjZ{uXOT1y*K2wex}Wj`-J|tWxOxu5#l7`FUh}+!lYS}lzhW}zzhi&1iTEj&@9o4F)j(gS5BjfSee@CE zMgDB!gag4}Tn7F#+27U^zc1OM%A1ckcpdojK1F^_G3}$geCn$rHbkrnUq}9OiH5?% zOQBC~dsDdOeBgyFzcs|KGktu-IqZ*z(VjW%k4KyFVfw5iu4Dh|VE6?rkF$u665UGw zHp+7`J}VeL$nY)1=M{jz%`SoDD`$F6_QU>E#(y~R1hyA(#8XI5CNAZ8U?kJya_ZYc zeO{K&$)rC=x_XyWeWx*eHgPf2FNydEwm%76kNPw7d(8z1-^~7YCGjq+SRNLF{!|&- zhYI30b9})3e3SI%#o$-l`c-;vUaifG+s^)^y#n-)`#VF2dT=>L-K(^%!0m+w-h z$EFp)BRPK>P5Lv$^$h=@Sste8;BjBj|B*-jN9kW!u@dr{*qlw*jAb#5! z{y*ejdnNdfB!9+Lz{gWxJMpc|uc5U69;V+)rq@{ZziWuI&G7*7)6Bo7rHIeRSHPa3 zmjcgWc^}L6GKckh4)IwGpF@0stk0w|S`u3CfS^0N}f6$8Gm-fbrcZ;z9I4Q4I`mqu8m!y5S(yOKZ zSn;BSaQw2=7c2c2X+NxZL4^E!BIMUde`e*kOZ#QT_ey_m#f>%Lcuquo@*?oH5%Qml zuy=Yyd^SYLzcT_qDdP{TJ#R(WyRX!5D_w0XwBo-<$a^*-J>+;>82{}N=|4L{-;FYU zv&!#?kauqce_I6o%!v5!8KHktMEDn_|Fi0=i@=3azpV7fYr^?2jL46-BJ!gy!oH0W z^w|;iZj9jHF3PR?gAw7+k0_ttMaa7$!oIsB@bU=kkHB$G=Q-KNn7QReMQ*=yq1*2% zTI_WD{bl|f!ziBXBq5kHMnF+nY0w$WnOd+!1)CnmkXGUj1YGmnSzS2Ifb-lzr@O=# zTpZ_=p8|ryf6>y5%1a9Z5rpzmPeECs+u0qB_JvC-arq)d1d3fgx6|i!l|~SXTm|lk zpXPeY=0^OajP(R8)+-I2Kd2I)TIT2BC5by z6m)t$bNwy`QnnYA`5-~r4G;+WOAFMmCGHaauP<2ace@ImCFMbPg|pBt3}pzUGsgOZ z5^2SSe%B)Aj`e3thFX6%V}b0nQka?6pOnE?Y{^LL&pI2eKj=&h{h$h*B&-hXM=>sR zNg{_a6uG?Kxvqi*eXv>NsIt=!IbGSr9F>Np?h46mS1FQN<-99ctc%_}?_yuE(-jD~ zOXhk(Rsmdvh0Z{kKjmPtkSD)PiU=d^O~L{EjT zb2^oj98YPX+wzmDJ)J*^9TK*zT>VozuUzW1Hp%Zkzue;&%|&iku-xx9Lx_rrDu$EX z!3o7K|5+}-$5k4f0u4fx-<^u!4F74mtHf>oq_Ssvx!3EQkr(>uoNSxDps2`j27(gj zpx;wEFW@W*%<~kA;Zodf$wg&;NiV}$Dv~TDi!8BaiehJSt7w+ERB-vBGaHNDbN%i` z5Na#(yWOHLq9QE>)o!J-FnK+Jpe7rsTC6YVDJu;~;&}LTidL`MAHQzcAj=rjRaStc zWKB|u&tD|27PG{1U3F+w7)|QFm1bDOl^00fspeGzN>aE>wSeh1)p7--;dgmGOH_+g zD)nEQd55n&P&{S2ZAM;dwk{51Cgq+v-svgvc?~1Cd~P6^T~@ZB+?SP=m6PY}uPh^V zhRND2gU}yzc12ceQ1V#TNN*o@;K5GE*m%m6Vi~rcY3{NA+Y;MXak~Mz&|3 zt|__h;FRgPHm8xCTOw_YihMwX@0|E_Q+n^BrEh0xx3=OrC_A93GNU?nHio3x?JAsZ zF{GlQnJe&?1ys!s=QPrTewTD-UQcNx$)<%!8}3u>hGceRP;HztK(~?Tb4=rOeX_RW zB-jv0g_v9J@fOOs#o7piOO@MfBh@2?*&lEh1Ov_juQaDwIaAZw8U*L(OkLO$vu=O8 zXU;a#t?HZ$ic8#n)8;W@q+->6dQG$KqFB|z$lg20P$q@292h zJcZJ8_GzudqPfJQM!71H`U+;Gs$i0?p&-4diA~p>pk)XbRE-h_#;Vwca@P)4Yf{2Vi!p_3kEQ-$e11ugt~zQKl} z$Wy92C$mnZhSjoik;cjrUNdD#<0$~i2(OqfziX~Z$~NqhQ(h@c(w@lB-<0KGE|y4l z;0%`KOf`~aG;@};CDI&5GU>LjdnVNqIV8$K!|p055Ji5Mk`PQQDDgQLxED(+voP0A zi9Io=D`pw{s0OT)JKJV0(4CpuV}9h!&ox4}o25DwuKPR*3!?`!(q79bL1r3}5w-{q zF_ue0cgGmw)h)Hn5o)QWr_fEcQ@6okEw;pceok((C9Se;X<-4`b@wl<5f-*flOLgN zs^p_#%yb9J%KZiIX)a%Sz$Jq`88c<&=w{G_okJ**pazc9RnW9dnQ%lM%1CxClrgm} z&*kw(q0c^UoY*=M19dghjv}mzX3BU^PNL}6^oRvxs*K3@a4cc9W(5x09x)Vs03d$Lr2^N~Vz-RUub>eY$Emr@H;6Q%Z}<&?Fc(<>y-t)aAui=X(F5FYHjbow zU^B#NTTo1Q%uFLi@<9g>muXR%${edqGDBit%nnL6{daxwr&}zMwUmNlcVSj9VbmzT z$J897iUQ13#mgM{_pc!~TX-!5WguD+W?LS;hyiTEqgNhL`@0pO>Ur3_OC_~(7-mHz zl6Askq${of$GW;~1%!Woj$O3}E>~!cqll{+VXV%enx0xSv2&baV5%zqPFa0(x`J8r zi)K!hVTh5UhcbG6i@|kM%7XD?4%qP1{7CM7Q zifke%kc~Xfg#nLh8La`6bwJsjV-2A?uk_OLlDV=97tG4)Nx)RSKW45+b;+`}oTfTw zS&FB4)x)RjmMheXs9ZNvgXKP1GxUgo@R=JndgJxh35E{ahGf_Z#Fg)N%Jv0cd5|1x zG*9Ra;)#3zt`~aQDKcBVrCAB83_0rfWpa<2gIg;}So;$Xz6l z$;+ECS$5&L{f5IF=5%2S8x8fw*JZ7}2j-r(0HlbWZZmnpk~xf`lGiaQGi#!u$8RO# zL*tNMLI=z|?qQpO%_#H)3S54*$-^a?T{d^VTCO!i$&gzuG0IF$7LmP+B`vr;!AMqH zEOgm0nUx(JSZPDlh8U9;X1$SuLL#d&dN^V-g_RSVo=2K_yHIUw(OWxA%X)~9VON>! zl{F(-6Iu|GtY?*a?axT@mdQ3NsWav(MQ9FXQ!At9B70{{$N0)**H*bKbC<~qyPjl( zZ{AS?-Nj(O#(o(JG|vTPnAw@QmKqN_;zuTymGM3P|DPby`o zVp@XO)IdP38x)TBh^yJ4E~y=r20hv;b_I%MF60bOnLl3-9aE*vE^!9+2*l^|gc{RG zZX-=^$1;bJ$}6XR^gVsL}_OzSo!hfxe8u(-59wy%osrdtMd%4TP!y4Nl-2xFP4 z`cySGlo;wQIiHGSu>~FM>^B8a~8@f#Z37z z%jctwJ7qvvmMC?O?$kM=P^UcFOFXhKok^nhhIq=O!333h!bmgs!eSB0=5)w>FF9f(Yfs|3oAP-~^ZKYe z|GyN9k`gmJIwt_S{Vn&oyCIFyQv)kaO|8_bl{9cJ*~98DQ)Bj^9MlMfR-@`MvIJJ4 zosfE&FI8aaj6CV?q6w9zLW!{6f<-o?VXau24AsRluNmb?=05tBh~O&b%Hv>+3EMU& zCy2bNLD$tMCFILczIg43Vr3;G8S_X_OefEn5c^g7RQwWu?eY z}$`S6Cl7mR< zJQ8+m8a7$9D3MWUq1uNRN|ml|tR5N7J-XVf8+2J^81~8H_7=IB?uDKLH&&O`-d`@a zs_rOV{b9vBZP}B}L!WYLZ^>e( z8c3)lPA!lgIT&Kq)mWcJ6LxW~^~S6F4xU@VN;Ejag3Y<^_0pww>o2pNrfF7whGK$J4o|R)wYx_ zs?D`6O75{D8Om|a ztJu1gbL8g9j6vrB{6*m`;!Vw-KL&#fm2?=Qs-HSDSiBN?MNZYYKGjVdmp8c&b@p!b z$!{?zRJBdbzAF0AXj2*`y{$2n-(t|HS{ilYqYs5fH&K+|Vo<1~SRzZ*eQ30$cN4|* zSTw3A7WE^FN}&u%t!Zk+q|l6FpShUUO%&5&jG`Kk_mQNjT_czpqc+_;^`XwzjXwD; zhBBjaa6-^>CQQ@Tb_ev46Iak1OgheAhJeU4bwO_-5Avk!IlZuH4-F~-kZR?t`c z`Gx|ipHc-)j~B|>_efgyBNl-P%2?z9}11GDQd)=qH?pqf#N?|x{0Cu7Gu3%*mt{TbfZvyi$S3-rLNKieT^^dGKB1srpd8rlr%Nc z)eSAqFfVSF-qoW=gWU`m)5E*{^eh=hMl(t@(qxBSGz#qz8U;tIGF=_Ub8H1f$B&lyH?P(Q8!uA)|?sADPKyrO7y8WB1LN3B!eTogsAwK>9* zR&dlh3zTah3Z3?FmGOL47d^ehP#;nWGl24hUL&%d*#9e(1&DJTMA+aZyLDK$X~V2X@fj z565C-qWqLrR#wh1Ty7EyMsr0L*COfTLHw~v{p~N;$ZK0E`*6v(=X`KkOrWS+gxPn z!E({wG%3ho*Fc!%M(?SNEHzVg-=Wu3LN~IOcq%+{a9`J$&O-^tnDCqNFC zPtaGBiIhp|KqSuIND-Bti*{#Ln$sz3I!?1GnX0!RT32$^imLUVRZ*?u9bVDo9FA%R zAe>u?!f$w#tDi()ckP_oK&g(fNNv;C6I$;YR68tl(`18X?`u3}>PaL^dWlPT(J0b_7lpLN(gV{p=U)s8pP4xevsXNm~4}zK9G}66miFtS-O`+Ot zVm5`UdC=oUbwfhLiMvc2hh9AmC_5Q?+RGH;2;VXp`dPY`?ygD!2vvP_qxLG-pEj=6_ z%{no3vRCg!>8jI^Eo+udDub;q+9(Oi}koE^|O$D&VNA*(iCtG$t-YguGCsIH=xiv_HwD!MPqz29KnvrNNjx3o&( z)uSIWvz5!D$m0)a4cSJD+$d{4i=g%ms<_BeA+<$KZg-{Y2LuVIw$`aVNv@!}RacnL zS7YhWHT>9it|51iswBeY(biu(kLl}QrLEwz1lVYV3wx~LIyqEOxqQyEMC!0?>sOoo zaYL_bp7@evcb`7}Z;F*wTe+dO>yH6vk-w}Y;`cBc`1@SB31#3ZsNsqgX=in%rxkgX={QmB6~8u!PnG z6(o`%_L>S+Ut1`ntTP!W~m4&sGGorTAXhLbyD?P+v~Vl0?yuz8i%zY&OfN1C7Q1y7k=Gn7M5R@HYF&t3Z7an6C0ed} z5hC;)M~I-_!qC@0-3}Ggl*2*2Sur#0sKHF^y*JYm?+nS+-cE=z2O*u~N_oCVT>u^urkdOE(7`@r zb~jc{QOTan>jU*&6LM*}ifX4~b>X;amFhC(bSGa=;7M7v!#Rr=frn_Ffz(dv&~P$z zA*rRSvG@`VxrNE{NXXotZprTK7(Q%gHveC^wRQ(a|P>XOzYUmPmDYLR1 zv8czp)kCEwt@G-JFu!)!988n@y#2Y|KgJ@%=g0#aaBJtLi=%E(%nD^lq|?32OELdV z<05=G|4X*@`UK8@G0m*br2k@i88$s_o>}hYVvboO!W+`Cd(lkKyxN1ArF_r>TJ+QY zhit(~6lGA4UCjSs$~gX4451&Zv)eOlxQ%q0OHS8S^pYg016)`_mW0~Lu%5l=`aNid zm|dKuSN<jo~C$}18={5BKL!I)>jQDVZXX)GU zt+i=zqdG=CvNNGfUK|?SxTd21gtZglF_T5}SlS08Mco}Lw>AYVbD~gFL=|dRQ7po( z^Q=LY$+jw1I|uRx%AK0`sb#Qqb*GM+cB&Gkp4H-=m@1##{;(2YJ_4Yw--&(}+-Iz# zxeaqL^mnwmFIpRHB4H#0-Y9W1NEa~1^E27Nqfl@2Q%E(h!wQ-MApXF@l6z_aF z8)W@Gm$N}u+(S7F8!UB}7TIwX!!@IWQ89aJ82;xC?~>F1^A`6|L?U8gJ zCOc%*9Z7>>eV4~W2SJOF=IG$4>ggrWLD6P? zFmzB9^z;(wpePG(vj(H`ghr*D1gUNF=JOvhbqk#>q-w+Z|M1ApwqYrF*uI;V(yy!(VS66t&$v@;o?tI2P-iFos&4fvP{ZuFo;GxB-q!BG}jHImFnx;5A@PNb>YD-PDU~OO+aV98vbj z%6>$jcE|RJmoh~NgbxW&u0<`R(EK)Ac-qih=_2RqzqKVLc*;xpn(yt7tL+C zxR{_!UlMICqvjg<&dpD>5*aVb7I*Qm7}ydJ)?n?79z&0VIRp+^EG;W4k`2>x4oGh{ z4y_-_4sCVQF1P&Z-MeZatyZOMX(6r>wdGxIdzCBc{cgFuxUe5`jI_{*d|V*lE}83H z9NKra!f`UF2wj+GJr} zFLOs3F!YdfG|IxCZ;mEpGPWH=X{3?dnJ`gkv)NUl$}97Y(-`I~dqB2BM`OKgcfxz=+Fbn}W)ylI%5f6~KT47I^h6V^%lwQB1O3&kyvq)COJaWm zNP(~!q4s8+EDV$uPLNXTj!FVstO7X&CSGSbrdATGB)hg{ro8ghWIFJVieIi z&y#bG3$WuMiWKd93O9;C`ex~9_|;|G(eSG)WuxI&x4=cgZ*+N>KAOOKaG?73DWyea zQ3SN zTtzbqA)UkgC<57x&`3#l82)mdx=~1wowf36LNM3TH1s#LZp+jyy8R8HI=5u4PUmEQ zgQ<=;-5mAyJCJH<)uqY(4WLe+nTMyN2ovhH(C4b>iK7W^*^L-QurZ-kiYNjZ4xRL& z+l!(JiXI59el+2rGEXkH3CIhAQKgJ}>>1Bu>w}{G)vD)6>a`qOY~iICIMmVP{_0a@ zy31SW(FC?x7yqLP*xg>`{)X3!+%{>>E2Op3tyX_ScGh9tWJDD#cl?xDx#BBb5KZd# z;E9Pwam4#d=G?UJsigFn`bDPxhv?kr8-;-mxu?4@8h&-bXB7OV4=0Ks4s|hdH2mtV zmT36ZBM4FOr%#s4)6bH>D8e|RjmDdKaH%OLw-ALa7VilDnx-5G)#QS>rV zXciYb@Z<=w>EYWz>Ikj$+Cns|Qv98y7NrUwWb>zFwQP|q0 zuG*4w#rrJ>kJS|rsMOs*9vzF4P-RV(_Qo&ubf6WOElxMFK;{laQuPpvfm0BQg}w7q z-_Gp7-5LWCk&qtc(RKyP{nlI`3^mi_!fTJb`e`X#1EW%XD%*jB=kyF6eu$^wtjhjJbg_^=NCJ+_Mu!|EXo#^?d~c zCr>WI)~jFTF7LnzO|=yA0g87|X{m=Ih3>+EO3R&**JE1ljL;s^GDeY+qtPB*@=*=y z!iKlD-aYg?A-E@p{Z5GN!GGU>iMmSa>48)p?S4Qvn~FVLR=)&%`#Ue%F?gc&MN)=3 zjv4Z%43yQ})V4FCmBU7PdQ@YolUgN&Em{3CBhUP8pzM{T5Pdr-a9K^WQ4Uw-7E_9zXo;@W_2F#gqR3la#WHG zG_Tq6+_lR;$?q!k$P%h<5iDB)qm!5phr}Yc+cz)*Vd6}&&E*{!iIx;Ak|p1riZAv^ zss!9AF+FBPsQe8`F2pFUr!0t3TsP?-o22l>k4;7>6!H(HSFQR*mEaDi_^Oozhkjf# z8dqFrQ2pL+zk{l#)#^%=_9Yd)SN|>VMn>l&^-=f3s%oRH2WIgbSS+ZU+ zmNh^vRCkfFi;~jE%PDtWkYUd*D_c;`NTv^fK!;VJk-T#frDpY=%jSOBfzRb=CHIoc zQH$y+mtzs64yMW_>>O-MqJ|1zOwxKQGcgJ5wammMvBwCT`;q%wSX4W0t!?4w3i{ou z>d|;N>9#ZCx=Xd4ke4oxt_0<;LU+gZaKD7ysFrR|O|~W59r9Xee-lqink~iJNUN&^ za^3UPCRa4o@^+Q%8IuW=_Aa5Rm1ofhTZ6pI+21&*oQp`BaJQc&Y2?+){)&~PkrnOi z2~qGHsi93aNGL}%fx|k>=)-rLQBfLDEc?3XrGx?YXd>WJ-wD3CQ@zno>tQa?L`^K<6sgsIR! zO9QQ5w(U+sXg{i9DB+6JBdZ@#%ZWHuFh&W}$8xgFCj?5=Nu2^7JLqDJJx!&hPae_m zmlen@fKGk(XJOeQH{WXTt8JtK$*gW390<>=h-hXTY1W)yAg^HfV-hpQDyC$ytF*)w zlOUTdGMeiB+j4JAMx|Sgid~K^Int(}wC^!kgeN;f4?>iRUr4rQFLB2pD%%(nX_UPA z5R;%3YbwPk#AZZV<0&ol6vSjtSc!~XOjzcl4U5GbTZ*qN5Hu^^Jk=b@r4K?zJXdJg&3C2rK3qQNqMkD9>>>3? zxj&3OoIXG|D2HFvT`GaBUW$%xAo^z(^i==6ZL6YSbgziMCIutr?r)T;ys|o~p>;u=I7%8UJ zcsWZ>zD`}36K;}{qc>w2x=gWd%Y(!P%7q}^d<1*g+dy3vbm15A-OnX#@rLo%?+kR(aVx|d~E|LEAma?*yAXN zB4Q4#u04p1lrEn>d7F-z8AXDR(Rrs{Co_ymYRHK_BKBl!kyjdp z-&L1v8Rw|pxvv~AlAg(yte>=Wsn;pxT}K&*$}zG+J^eK}a1buMUfEgj^if^(sICfk zG$D;-<@IC#t-It%)j2)rHK);?J_`L3-vpcW(L8y1&#s3g+9@m3=`x?%=_n?`_-?GphNQXK$Waw8H(NM@ErQ#OL zny*HZX5z^hL|Ph6L9)stmgcx5G=7Aep@+m$9cH%8uKF{-r_k+;CRFJ4R&}%41R}=daEV+v^HRtYCQ`Z#4w7Azm-K1cDLUpl@Q|F#_Sqc?rUb;T%SF2@i zA!R|eQZkDcC#g(JZ?SDSBf8_9BIExXF^006Zp-F{RW3 zn|j_|C5db%lC<)8)rbre*e=4dly|1{pjlMHy4NF)>k^+w_ASpe%mIP20|Wku%rY$( zhMvsM=_&_JR+8DNU}q#zp?7CuJ9bN=#ni@JEcplHYm4>;ZR;2?b=Y4iu(!J zK!hABy1p@A)e3;sH)0PHAWewbyz~^BdOO`YN_s!SnQ|kVtueA)p`cimyYv#*VrO81 z$0sFIb~VqO+NC{EEx`1!f}idxER+sc4CsM9+epis)bUtHuG+5DM$go;Kj6s|KX`qpO*vOYs!od{RIVIXs`pCm_}FYCUq zksMl>Gu66hoJ%HsM7Q%+9qp1U(C=tkI=q=mrV(*tR2L8Y|EuoXy4yCAb@OBPa~2!m z_0h5Ej3UL>ku*7b?H4SHA|=Wcso_Pj_pd)+RrM8UfB*@~IaxDFi|DSZzE{`P&Xy_| zhP48=8xbqBJpC1xHU4a4cIi%M!PpkIG^{DN)Df7xM7bFlNComdFJIcwM(;N3AJ<6| z{mjb?);JH7-6WfCplO{|y|annD>d|MSJ}5n^`2k7^jRQv141geW2zm}q2)zU-h*m? zNm3f*Y`V?BK#*CL(a0#+{)m0kb~c%gZ@!R`dD1bpVd6B~yuu3WE!)9XOnx_wVJ9|u z(f6QhA_!;+K>5)Gx*9N6ZdnDI2yF_QC8*rchs?@oiY=8_BNR-}j0~JAX9%*Vd(8)= zFYg7TN8&P=(9sTfyKxopJC>K6Xzo`n?^T`Ya=o1$XvVw-N7q%XIMV{xY{&5d*tUQe zSC4n|YiQga5bmX}GENRP1!N=PoQpJc$HPjEu`Gzh=^noQc!C>riTfU^`6pVDe zniNB^UQLQLSFa`oEUQ&>`1G>-{)Ye4gQiObijprbi&UV%aKuRm^B?bW2#Vk`D0X2a zP!yN0E-2ccd?5&~ZSMQwMH{DOSf?-OZnQ7_;=-Pm zbF)X%t4?9D)2lQw54;@nPc%g@ciHM}&KACi`GXw0yg@3VL(h2{blTD;(h1}Co$hw%AvA9GJ6{U)>CJF_+|2$g?=8*Gg`ccZ4gai35Ty^BB6=jS zAw6LcaCi{2AtX;^s)}=s3wZY3hyv}32&TJOB?pLSJW^{=HtCVNqw;x=)b7QnK2mc~ zHv74{!9`Ewx70Devgu@lTmt^cJF{BitH|^UqmCM~od8MCkgI2_6wvTAZ9$|MT{4<* zCCNmxNhW_a@<)i5?s0lSc(1?FdVN85midAtbNR3M$VZ;hZ}Z9!g|xA}G{{i}HVm(@ zsDY3#qru=`>@t_{LKhDe+d+h_i3ejVh+yQflgN<>6z{>1ZY)GCp*AcsqcjO5q>@;+ z@OX2P+R_t{`7P*F#RA;?+9eJjicwQ_nPnt&-tK;t2@q&{?1|k+aJOGgWvw^N(Zpg; zJ7`-T7HwKA`(jf@y;eLTd-3v~)8A8w8 zZ)SgAU#42REQhsQ2-YWr%mK$L*?z(+diz8|YB@B+TYXEGS1kWBL#eOsjdyjE(UxsY z>&_}L%wp7wO)e6;rrE1PE;g=X*~``Xg_Zu^H+>JdJ`}(C3!wPbF*xQMEsDtTCWj!T zagVyU{oKMSR0x51C%*%NeNl4G$??~Spd{je{Kg2%3_wMC|>|nLSpdjdp zhAQ{#=!vXwG2#%^2KAFZfk$58_2Xvp`m}(DL#{$MuSpBrTiPKN2J;qt6xw4SASWhP zFRa}&m~4lzaJ^TDKi8}QF?)_Av3N@3l}sg>DBc;ya$}1~G_pm!k6QnSSF``g+W}h% zEaUkw#Q90aFr0YC(YenJY@E3*xU$57E@CJRz)TERsaVw zGqd;#e0Nx}gclAgm2$wY8s^mQUa@fS=S1@s#<`LQyhNf9)}hnH?b^4@7>x;p@at3f z6~_v*+gLkfGJ%H=Niqo-W@zyUp$Tc@g-TP`1Qp1A)2E1D*9?Of=YpEk{_km-0pPGE zF#MIyzWr)yQQ0%n{c4U!dNz2!n!{9na*_yIX~avSnHwGEDt$rn8(d4s^21kb-l`1$ z`xW+BOHxHST;2{bQli2~!d3jZpTY>O_=U!$ug8U|IB3*KoU=TK;6J1c?gszUdxVu# z+Z|aaGtZN~Y#;5{j!49m91G^tGW(Tl;9qclSpyP;*Zkis(*=B*KH&p~#1oeg>HH@l z$0y98{3$yv|Kr2{<$hMEs&^a1)+4D8qV3{kv7BhEK*ge0+jadH;bo;PM96-mD++}5 zJ5p!93Kd)h>V@ozMML-z0|Xnk4Zc(7UgWG6rh- z_5}tOi=<6#?=&WhAl1JmkqNuXf8xp)*g$V%7+~RRZ%h$zF7W5COr@+J%ZB3FM4(sf zot}};(~^3LTD&LOAal2NKk%OPfB4USf|?|b^nac1DaH`}a!&@K++H7H_Law6+Ar7@ zSO=_$m_Q)AS(&=}NF#Q~>dqm&7+6w*`sWt80p%a9KT!5LN|L=>oR8GO2g!)T0hc zJ^f56!|p2T{zNKz?7znohJ!<^fMC6@U-w9AXl5JhHuiIFl7Bb}l$~d94ScWujEh)8 zHE>&!;~VTm6s{D#@(hXCH(b+BxeU~s_UDd$qaD27L-jyfGaezCrdVBn0hQN+l{G9_yxYOXftPH~u-nRrUQaAwtC^2j~6#Nm!;vtyDrL zmyMf}aa8(Q9>>>YiCH79yQYD)WO%$BkG}BT+%w%xY*vy;=i_B*(Ry#^gba5OwW!6ucA@hq5Pj{T` z^NxgFN^1RR$KEDU<)rGaGpP+><6VG5&~tN|VtBnrt((+nU={dT8=ECW57D++bo1?8 zL+n!=#Ae4-#yoP3jto$IM(7AmTobxY4-VfDvIF1ZkcE{i2kN@Mv?r}})&!%VyUGaK z5d4O?S}p$=KPMzrpgRP0j8KF{y?U5QxhFM5hG$-pU}~PVI}_h4?s4hQPl*qPbDTlx z2XMoU2Ch_j*A{Qe;=UZPaDSTNeixRKJn<081jcPeFBt)aJy`Hsf$5tyN0At`8CX`Z z5aJh!kVj->tT7nxnOz|$VIBd%511UV5vF#f5MD$NUk@i*aLgDeyP$UC%1<`qJ4`9|aPxpB6!4w%CBU zJt7Gr#*Yl4+w3-lQEwR}ZN-*BPFCMG?SZ7Be8dZ>U5Mlt*e=9L>kwZi-(TCMku2KV zg-BwE_8{_c0jbHimO&!x%42&Vc|{`DTe}eH)@v6ck{3O+3z0ma+Jz{ImD)NaX=Wtf zQkxJdeoni+CNGe7A>Q77XcuDWqtWJYQdF~cJ1-tCZPNHBJG!(9QCw%*g!u9L!&STE z_~(baf3*rRz5VO=RsnYZ`g+qcMDnw0m&V^dz^kb>#t&zj@0O*kix-t}#KS`iCA|gC zh*f)o0he|MLrE{{HnDO%?p8<7o@DHy)#eU_#yM$~RLY#vDnNGqJOuGlaflPBKarN> z;*teOpWqh%Cozk?C20pQo^_D%Yk4=W@D!h~_pmiKGLj+;)g>jUi!gc;EH4^IeK_Xn zkZ=GHtqy`JhTZb-f54E-Uk&mQC9!a#aBh8CPxthYX89t^rB&AnipaaJ(3r!WVzi)V zWw}0HH~CbOiunT2|up7z9qy0MbDuh)&WG zqmJYF%cvoo9Tc9FJpp-*$QRW9?L;ikdN~ASQXD*pwvb5(p<&H>;inY6#1+Rdh8+`h zy!2fZFPKA^@`_a(_W3rYm*GNxWq)qN5-#vJi9<$`DIA5_ZJ}#jKLs@vsRo zGz&f1=pgIfqpPw>E+bx5OIS5wlF0ZFhGljH?#od{8W5FvlmUd32C-`1RG%g;pgu~B zH*hD>5>Dt5*e?}Do~EgWU=&8JJyO}uIC8Sy0J(`>LA{SXwEBS)$nFsXgQjk=f(62E zL0-wbQLJ_dPz`Mz-Bbd33wEY%zniOm_MPJ=U}g(Cpe{kcF%8|#Z7(xa(Q$&7!)(_j zKVf`-0{<8Js$2VCFPTP|=R9GzW4As(U)?M6=f~K*u=xXhgOQRMfqZ>?Hj9F_b~`m- z!%b0|vnBYhAp`_cqA}7c&vC=nUvQkN4opV=vxgJRZsRn? z$droxnpR+_OluBCqdLw~E*6mQZ7k8MBteYcyL7h|8-`ls1`WdibY#AVy@<<~teuR; zkL>rxBW44MHO5uO9A0Cx+J;`FefUxIF)$H12k~bH&$-V*H(P^3+L@5_O8ee3xC=fMTLPVEi-h`+v8g03QjbHZ)7>*ABT!=QEbo?dXczxZnJR7( zEI=bcIvu}az$B_6G7aJ?q|orj8{R_Xnp!uzlcxpjnNVB&{4DAaB6!Acvuv}5k1aO1 z1%?jTfGLR|X3ClSnYtmokx*!;<9CIr$%loXEZJU{#BKQDwgw(SBXxz})OGFxCHWY0tI?23E z#r83Yq7OJs%{Q~JBrOZ+cHkxGh)2!JDPZ(G1Bcs~k+0Ea_;o(VHn>~kAW+$W@2;aiL1)&>4(!NxIT1AGIEr77mM7O>xisyS}I2rJmclvshzNt|6|@Ne+t z=%E)+@V%U#Le)Gyg$gIVj;da2{P+#Yrl9+Di##0hm=7OfMc{1tXwEy1OSoMiVUgj} zYMpiso0+pN-z=Eo6eDiPU;zx9bERJ9&$yX?A&e?akKkXw@K!(R`BlQsFu0h>8*E(s z-k}Fp?yC*1nNTQBHmcIWHR&iDuGmM2V&{EKLM5gN@QlUHU|l z{)z{Pj1t0cuw+|9M9IwUY&V?IX$V0j9+Dmag*fJr!*It`m} z%Ev*k&B`7J{zO*xIHa{$+2cUhVPylzPE^rHKsW?18($-9$P=%DG?xm5Zxdq{h|NRs z1>B~~M>`fPwax62T?*i+3~O3h=GSv>b(Ofdn3D&@81j59Jj2lIg|5#jWCys+>2Vi@ zPTNBwFQ=$>!>F&|XFS#r;Btm@7CdypdXaqMsQ1$Ew7eP|1BmT_{&oa)JC&#`sL6%s=;b%V)f?O->wz$IWt7Dkd z2wrk8bX6FTnkNWy10#Gn_R)!PTwkWG@@wF^;sg!VqxJ16(Ww1uw z?MZ4sz6PT#!{Q^e0;B8oR_k@ngsE}2D4@8R4_>rhisbUn@dC2WA{_dbL)#vR657d! zwiV$cl!5G+WF1UW<6v@qo9f{#!wBD1KW-^MNW5UWCt%Ercu8(rqDvaC@1J4RjroU6 z6O3L_3~c*x64bnK(n5`l4u>jFAWnc@&4d$1=mgMMGU&<;x+))Z9Ra;XusKP1VKG>5 zqig8DWN)$ON3W9g!(@iq%|eGHT2*5u&%=|zKu_XSCpmJkOQBJ)ZFND&(vgkPeoenX&qkpRIJ6W z{v52wGv@7&z#)FUeT)a#`1%Opbj7AFURVssjyZ(W+X60$2#ZBBC$W;@qjz_$_cPdx zF0q+8o|0v406P0l%sd--*oYBiWP&UL0)X0!6ej{$q>Nfl{}qba?VREZ}mJq(;Sh-Q3~{;3IMl8#u{4Bi5FFkyz`YT2U40 zrEo=@zeHr@AWAjfG!&3gnkv(jlfN{;Nddj!KQuFua~ff_1oQrE(9{s9owr$98$=ZK zJ;BT#B9U)&Giu4X4&tB>12Z=K;EqYrMNlk<0KK{OPG!Mz=k~XY|GtH1_P3co+iZ&` zDLN$RJp^{dWO_}lLJI15z(%y0%>qIJbJn+N6@p z!dFb(G6L{Uet&$5RI$9xkBq)>RQlu}-Y7gTax@1`0}t1-O2J0F z+bmuXD2vX;g7)QT0EX`@0dS;GZHv%wK9xX=9#ds?hc~k=VvkH`IQG7Y;*IB&EM>wu z?VBa}8PB562uo3{=LvrX{=J30LLSYR(}i9nUPVV(#+Mw+eY~o?vB`-sf6&%y7!w&C zXm~Z^d=J=XkJq3B4<}7DPM8u&h8j^WJQ5aWuwg>bBWQk&VU*q#p;|{9Rmr!eaK)s` z?6xxNumDBg5H0tSp5{iyg)F1cOHty7vE9*SIEqzsDyKpPK0I`|m7Pd9aR{=FuKa3{ zax!=$T+tF)PrULG*+_U1i9fJ2*M*{lFFmC9mcum< z;J6&1R%HX*R%XJ6ES?TTE2_`GL9W1N4a|K@S1=v!;$$;onOf6Td{^DyAbXHGBXKxn z&rmf|$QOOb26Z7hmyk}k*r>CF)p1&i&(|u1dV4Yuv*_9LS1g#dm%M!QjzWYq{e2iKFu1|~JQ(?|;Ei-2pG%Tc;V7|Z$TA`LPc{R7iFk}krD zzeXc7y^R_fTbU8UNj)M*Uo%X_MlcAe$ffHK7#(yJA}*KP$aXXbDHIiq8$hBXdo`8KtSf z{3Lll#eA29;!q=yld-4UCvdahw7x}C7`BjfhLrBKLWj@@jw;th)P-|`j;Rrfc4&J2vryJkCNDT8@I2w^;AXSB=t9lGsjs14NCbw65G>Lc~Q-wgcz(Q&F z?6`sJ;ti_O`_qphYs?E^Q!&b5pAwkrElfv9VhWR*RLMby{EQS&4ADb5Dj=P-MqFyn zTd6+`>q8HWH&1CZx^O81Lr#8^$`OSg!tGOFTl7F9)Ggu8MemfaK(OXn* z5I1c+2I}2uN?_8OCkG>2CXs@1v1f7Zt-2D?GO<%4S-yw+J>nF(4!c{CU)9Du&Q;>A zQt;>NZ;-11Uc>?@Unk_Ms_T|HuT{2cU~*Ck=lP)HTiE>aY(~{XiXHegc{4*w8)QU* z4gP}d?2P$t?Ni{Lf~kL$#=~-o9JyIjbAHyx+T!J0A8GEAEjFYb)Ya~s{GjDG?qatm z!{mrBg*gaIwjKN&IKY5AVUsE&v0QbUP`BB9pCz-2=;YV8iWlILMNbli*W0%I=8~8b z?84;*W!yorWI)nJGzOlW=K|U1M+ln$XAKigIrHk%fRWvIA!dT=!aP)83=iv-fzPLS zM9I#|1D5r>gC=ScD*h~d2(wXZ1>H#pBs|RKll>A(wMPWCWD$jjfb+A92$A)71{m3N z8maVPwt^uqIb^tP)TPjE?(NH&;vHBmD#^tk))!mKI}iWFhlqqvH#4A{f-1C zcAvF?VP>Q302@t{YJ>Ozwx5=s*!roSb@=M79wwUyJQi%xg1aYb(4#YY!MnGn%9)iEHkf^ zJ$I+IFf7{-8#oyZR5au&2}_(TQiTugd>9ywn3V}Z>~fY1%`IhIp*-4iEHHI52>K!n z;zj2mV08S@SvGQ(4V-1-X5~0!@e?wMGstI-yk;@XIIp+xHlR=rcKkyOI!cxel4W9K z9g89N7-F|3S?{HfAy+3S91EXDsbMGa#AN$gM1sJJ5Wx=pEo$B~7hgh3REGm=)NEVg zVc0b!NJt3S_#U9a90|G696a(8CL`f$048P-S7%?9Oaf6~ua^ZVa6rRC^l)dmX{SMp>n}Wj zNH2o{th4r?RewAlOrQ49R@5MyVG_TJ5BkIekZG30&Uk2S0vs!um-)etC6LWsnrrWdz>qN! zCYz7+|6RP=zsYNHv4-kPS9nI|?LMJpqZ9Khlz$um4UwAy97X5k;8#4rb(TewsPum)e?R_M5JSZ4UhtE&_@ZinN6bygG!K2=;<%A zeOc`gC&DRX0c!{KsG?MWJ6v7)DZPN90S7fJ4v%YY`3$Q z`{fVKz7vMi5FjzEbS{>_4-Zqa3-Cy`zMMMM8y@fhsUgGs_Okm9jr~EEoW0qXh-gmF z+j}Hyr2ld_i-0fp=ztZloq{gKvVv zZt}xRM$TS)Jb)LEAE^~vNO3UInt;UPxXWvYJ@(0NimXFD@MLws6W@r$T9D~ALlZavt4HdDn%l;4X0SIuWsb6nk&cF>$P)G-=^SDwF^?mb##`l0lQ1?t00Xp(Pn zsy_U-SlwcMPoJ#rwp_IxF}!A5LbrHNhHC`QEy4Ar(S9r+mG!NDx@b*~6QZAw<P9Wupizwn%>5w_;U!+#q%5lb~q#Q{_LyA8mQYb=^>WF3P_KERr294VF z+x6!+aAMRP*Ow%)D%c^xK=N{hfE}s9NXZL<02m7f z<1u8x?{56V`Z7T@?m0lr00kh7+$#iNeI3J}DO455IdP)Cr0IvG;IB8Ad_q3{Fm%)yFwU=)ec2hdYhZy=Cd_@`LTt34+R9aq5sIgfq@^R zd}3+kkT5S94Z$4fw!H6EHA<)!UROVaHM zc}ONqn`7tN&iNl9uUIcfAk{6aYK^Qas+cj;RY*Wh$;xs9YNa3~Bf%G$mW6T$GB+wn zV8^#z1V(@U6M_Vxj-HW6y_*t#1^TLtfWyU8!o4-G%W&1?#*f665AMVi%Se$15iX#P zE{}zvx0GWc@)bEDNZ6(IpTP#X8 zj4s8)$~wh8w8}aiCXOC;uA^N_=*0C{$bxxt-%Ok;f1rpmdD1y1ONXc86kMadHpJ!jGVmb>awx zBl*giBEHtVzlk&R{`3xX?^kXl$GrEexpE61G#}wrF}cblNn?i6pdHr*Zq!fj!!03T2Pl{p?E}K5%FW<7qJ8GyFE$W|YTnG$l}Td;3Q7XW*J8eDrbre)_;MTEwz6VbJZ)na))%%aiK_we^TmKa8YN_IWov1i)0iAXP8Ys`#JnG2nlug8;+j@wv=A zlM*{dy!=kx{(>0T89eK<+u4phc)oB8&Hnz*FBSQTRynbbO)eoLF?MI zi0E{4Z|K|ybGlQkVh;m2SEx$;U!aZDRHx==^VGkcW0~Fw6=v1a1;s`);aYV+v1|d` zN}?^xjzSyb44?ZM43_sxc;I>;2q^W0Lm|^>{|{?X?DLanL<|<8!84|d<}(xFomR2m z2}1C@J9hQUZaZ62e7$@nEe?qN%=q zak~1wewbNS${4BopCccM(Mh$5p0z^+O=P$zM_do9G-s!1zhkxVLivG!A`oayp$?mC zVGrZwU2E4a|3vk}U%WFZ{NU~R@I$!W!*6zN`E(G&6IPS!lbOHpL%7{!^yrYy)e2Ac zH>}z>BeAI{d2lKbT+wlHmo4yB9gJQ^iU^Hk%m<%c<@zWQJ`?2_o zuC`ynIP6=ox%Vr``ZD`F`xDV>H$Sq^j0nHUb#4B-v0^-_V6UpLciG3~;#CYqv1ZUI zzQXYP4Ml3VABa%~CDW&G+2bA-qqy@kVjH%*Ur8uI&gLXaWh0xY$qSn&jUXw36)7yCq7LNWzQLh-7R?KvTMCFWDX_GFb zaWd53awe*Nm2Py)SO~owbbO#=;89~plQ;&y8puXxi%W*N4Nx|pyeyVKjE$%noRa!Q zyHnFZ-do0))V;olS%K|oyc!L>%P2- zBN9wA6Xi?!`3p`YUBK$bW@ZTC$w;v63kE|9TMgtw zTPzp59~^t5q{-t9Sp%_SrjiM>vaY$`5Xpm~@i+*VNZ92Bq^ALbCc(fNa!-djSC{{M z!&{u57!n+$9OR)|4D6{0tT;dz7Nkie4vn4cOUVm#G>6Eu7s8>6_HytldKV&%p>`T| zgyp_#VP@%fU$k3V$;fbBh1~4OOulI!)dSU@3e}3^o>Rp+h`H`L&77+erHxiyY{B5H z@HKCxP=X0|wThHmWrwR2CCKVM4%D+s4p*;;)a_&2&tfGlf^cx6bjg8e!9?rWx9R~{ ze1Ka}9`pSI5kJQtD47+ro{Z4e!ibV%w}~c)j$vGY+>;Fj1YBV1!yo01MF;7Zz-&w< zhBOLJ>e~|`df7FBfsNjXcy$S)2v-ZSOT*_Pv_ABFi}?>Y4riWB7GY3{o3Ym&#wiWv$4LC&n&Ju9cv89(0)4H|Bk za>@y_mcS-2m-ob_^4s3%46Bj^6OXV9O+NvcW}ha~-u5i2;op6k4Olh(0n4<^qF8|) z#hnNNHU#40+;5GH5V*>>gn>QIRUwQLEX`P6amxX+y7dF^+WysJ+rj1 z-9wV54%E?{okFA^gXiZE7&;{?$lC54iV=p~hA5Ns8FUD0-ED|kB43K$gjG7};J?aLGd$;~V4$YRzdPu8r*c|2H z-7x87dwMFmmQ*CdbuvYZ+s@z-{KBNxZ7{^;R; z#(giQzlK*V7?69c*R!l^(wxUQkVDoEC6LG>h0K(U_6J@joC~YSH*l>7$)gdp1VL^2CcO8oNq5^hcjq~)5Yi`N3hf_xsd3ggC z_q3F!BOWMpuHZOg>A9RMSE_FwFpzESxBP%J&eWb%)c0HpA2P_+CT~V!`eT6wW1nq& zpX!rXrSguWFc}bij|CM!ZN*v3^VM2tJb{y$JnK!DRm?NqkW$h<=vC1-zPfc2@Ayhc zW=2?);=8w3whA5GE33v_+$$T1`(9-g@nWy6B7W?ZRVqB$tJ~G^L$3*-+!OsUfSfOS zb%S7os)#pwljcQ#^aHI)vZS|)F&WsYs7LxSfFeHS)nLj*9dYOBYFO46`KXM5HDMp+ z=N!Uj(``B09@cw2@Qo+xgLk@V3F=PuS+lN>$R#WVkQf=cGmUhuB%oH%Oa~3tt*#Qq zQYoz#Cd~rLTyy@lQ2Ua47qW*eMiqh(l4ApucN8&pd-3@md5!6s5<(@Y0PLUfKzgHK ziyB67(Dua(8?M~&kJdFxvvkKQD`J&NeN9pl9wu_|rzl%4BEh68P64}j!z^m{9W1)C z$=0o;_X12M#9sI}RM>DrvZJmO)M6ufhc%+v;%xvC@Z}p?cs=%%**H-V;{*|tFzWnz zp>G#A$Wo20Nna86`|Dk&QPaZ>8wB*r(}f86XYA_uwWb9Q!>}{B@uRe-= z{xiGEC0UQ2Xj%Xj%9;FR4f-jO&-&mf;6(Ez_iq`l3-_VaEve^bzmvVI1hq3-B2giY zE93a;6T3uLF{E^?h+FY(jC!~>SR+GbD`f5IRLJ&ekuN%Q+b9>idx?AyQgyvKhR6Ch|7ET6+g1ds`xXHPw{6an}#jKOBIX1dVMT@ z4EtF8uKQU0Kz%I!>h-bsk^5Nu*{*@GGtQi7vV48Q;$Y7Z%}8PCaJRHAkS9CDGuq>% zm}z6ZFGmErxUuKYc)FBuHPjIuord!%$>ER>k*T?%@&A0eglD}=u90-a8yzy2t=^Lo z$+Dl5CR0j9$+FH28{%PnfhMOi=;|1eX`aW~702l%j*%i-WZU%yFB0@;zpbOY>wGDe-R+t1z*=WiD*K24@x<930ITmm(Kcx6VF(tcL`{E`eRY zz(P%qjQ}dRXgF+vg+P2A@M{#K2g;;Vdv|C)O^7+#8F1GoMLuz^J8wF1tQR!5rL#KB z&8nXqX8<6BkfFGwH&xSpG!p zBl;=5LlEs+i|q5csdE_}|C!|JC62*6+vp{9LPfSH8*avTW_;pVgW+#VqIsBIe#Rbr zt2f`{bIf>m=BrrPao>HAJL7gTkeehk3GI|Bps{NyNE6ZOu4=(VCqyR0n&E| zsqZ320*%y`7s0J_*${o5<2W9B+9@}Sq3G!9%bkwk$U}u`=xR>)Q=2p9``Asd)-~B&Bx?f z@2xW3crKv|NQs&2;nvZHieN3WT|=Om_r&W`xE;7(ES3+fEROa7=Pgb1{=UB-P-~K_@gU|BgjKx9AKYzNLE~m@wCPmtm@c{ZS z3ZH%f0pNK4iho5u(HHEr@z>jbXJ2piH1gHjzokeYY%lhSjSlF6uhOyhcO~<%Eg1{3 zmh!vN$;z`G=`HXfsyrW!ab5hNiwIG2*_r`$VVKv~mJJ?TIevph7W4a61bw~Vu9q`V zY6*h*63mo1Jf0R`u-G+ASv&4D~ie#vg`}efIVN^wVSUgJ{AKbj9_&P zw-Z%UMazTwt9oGU4)aj6;-&(1nI1_n=3CPi_rr`P>AzRxgYiHyn!e8Elj`5CFIXa} z4ZoSI%CV9-F0Hw?PNKq8(^BEW(1ho{_=B{Y^s*r>jQQ2c@gTMQ^a_nJb6k7~`4p=uqG#5@_q;7i+J-FA|6Z)!8meKE4ftH#p zk9!}Wx4k_h`apkoX6!1}8}AyfSuf1u+j%}?Uu|yolH}%Yv7M0!JKuxr_4aDL{QU=*h{i z;vC#(*41(YlfNn3HAJ18W;9|muF zP9tvMX&28rnB_@=&x?0t=kUCE%>11fOFqW(nXx4wVTIJ>@pi&(F#3vUTcixo zuU9hVK6Cdvx4&Kd_bs&G-_DFF6nR+@-+8-d!b_hQi%P$&SCBkX%IJUpb$e!Ho%g~7 ziR$9@w>77<@?R1uR(N|XQ2Z8a7Y7bNBnQ4ifLazqb-t|milN;_Pom)dJSXPid!bcc z7pcpm4|8PZniMY4L$4&c)|6Hv8oP?XQ zbtGY$xATr9;^OZR0`sZBFt^{Up;%iIrmyo`jvagMzR`Q&T`(yb#cPTtc-~GWDV#B$ z?$)m#rc-FF1uyBY&x_U?p!(-m`)h+ zlA@itKVEvZ^I|F-^|9=JtuI82)oK?G$)?)l$t>=A0;u*7OL|#~m2t6}ug^QJNso@P ziyhLYO}8J{2Ld;5nFmu59_|yLotr%m=6R8li72ByGa6%A za$Yp5!+CXCRDNDeBRZYm0Z*l*=3ED6-i-RZL#fk9ofpZ7n8=Uo_2%KccvQmPu{V2| z#dB25xSi8^i5UD`^dmb2o`NVeA3JaVyVU=mgxlWxmgh)5ED<1S1#4Bea2Yf#?#e-ifa-G>jskXVVUqDr#14$+8x`H$)+cqO zY57xo0GX9W#sGRM{fX4H_{OU+kn3hQ6uzTkh(aUzqzio{2S+{ zLQkr}=TEnsGcwJvEGbzSZ#ly=>ys$l+E~E;a`?2WcKQexb2I#U6*7LiUt7YT+aLBq zwU6pXZUS`B_@ly?iayH5l@|16<5NbTx$sp34}zaST|I}AC}HIOnX>}MoYMd|8A-8N zu^i3CAN5aMw@5wXV>|90($LjC?dcih*&G~4LvWBo%5~TlY@FL9yd1mR`^9%qP<}U; zuSL}-zE_MI>i0eCYcq&rkvhG61Ei|!nz6aUaoB@VKdi)v4tdT(qXk0ZhFHv}k-dAA z3eQ&jI0~Tjuvt=LtZL!pb5`TWAxv0p%vvKhpN`DFd2V|EefIo{4laQt4kBzv} z6z;CEn4tVxNfIqi`O7#HMCQA6ryB{jZM?;(9&@{eGksW(SF+WqAurlv>45j+3far? z6p9Q(*;eC_x<__gS;GUeacF=vX99BEuphb2D=b2eqa*F;RmfTc_AOiN_7vWy!H872 zjT}c+uqbPp9YmL<<6Mp*g9Qxf=R5K}z^bGdVjTtmVm!F)JObm%+wq`tz=30zq$iR? z_jb45%#I|<1~&BNJ7otGM>0GTQ84TFgtw2 zb;GCLnSs`uugf+E)=;eS%Kj6{PEuz);D=yN(;o|w;G5l70qkoF247vB`#~ZP;tnm%$n@G|?|CCD6%elYctUJ=8 zCQ72UPHKy|T%U0X=mW3z!i@}MS(<~kh_<894!M!U2@NSdsL3c1s$1&@bKwT@KuToe z&6efKq#5qKebRhsWUyo2ZBc@oYi*mKcTpZe>9I4Pw?4_AlQ8eft7|wy$5AJxCx~&9 z6`vI~%P)61;;@z{j5t$W;Ho|Lu=YqW?{0v4Um7UE@s1q5p$#p@OfsiKehj)Ff4lm4 z380|Ms@IUzu6+avlHwcNl|zYH42Cj6;i0d-Q7pYw)+=y^g;4Mx{NyOFdyg8j+I$E zD)-o^ZFZ|%{Bq5&lsvnYTMD~tEThf?KRA9Ie@w#4rWRrzv(Q4v1Hx)J za1~w)$be+szWhjRRfl1n2^j@pT0ac(9)$rnGqz(PK^k5-R3BP@WH+1-IkOI|h0A zMTHl+yIuL_te!P1e$Uz5(bKA6&gw0cg9Lu^3Cxj!NHY>+xuGE|@oxE{f<?xvmP%7yuXTR3t_iVGI`CjTkQ!3C@la*s!Ir-xn$c{B zWU>znEaSJy65csJG>YU}A6%y~6s#&<0mv}7ocvht@gEL{?Un?szV2eRz!J3bb|(`E zgTU&X?HpPDSjZ98WejZfk{v!Qw#W@NeIlaEB>b*FIsF0htkd&y_VT*>k?kl8ebA!@ zs3X$)cfcC!Fv(=!0d=m!?}W7=Zipm4l}vjDJz;xuZHX`|IA^}~egqhyOJo$}j{AwD z@O}i?Q7BcdM|9q2SPqtsG6ng2lTo7TejhT-<`B^=8Sy(YXqMoJde^ndP64o6_=z;g zK#qDM?Xva#GXzMITuvnjZD9*J54wu1^o_%dHi~3eiWrQfp1EB34BHHp$Mx)z|y$;{d`Wz zt5tV1dtFYZv+QyCR9%_GgZV{s|LnCU>D&E+C8gPJ__|q7XWMNyzW&U) zu(gaT>8zx=rr|amW!TKU+}7 zMy#5G>b;9)uvqUVMmPWbJdPw@#{#>!g$9WqerPcvod|*J;Sb&lz%XA^)S~~nQbUC1 zf5^5!mP-;vZ!^$%9n9wV-%E@yyyS4yr~d^5;p;cZs^cwhM;WU7vSYTpkd}k1+utb# z`*=LLrSbef(r@gut5i+JSjz_J+03S}>6vNa>6RpImQ}Eq-W&Y(aPpvAQyq!PfZ2_C zr{Z6z0dHj%!D{vJGyRkX?Gs)iu;55<1(~of?zKk#9P|ZQ=;jfYd4b*Y|?Ulmw`@^ zr=EjC-%95+>M+qt@v6rHeBHDByEv)$JgKBGhX|dNBtM+uL}vB+^ZiX>F=MJRRljA| z&ln9mAYT!rFE`?)ZWUj!X~MyGmQv&Eq-<;lpme+5>}C&krxk6H_c; ztTRI_>o0oKEd~c#xYum9dc&^8VjZsbFZXn#k*ctV3vh$|fNf*P&e&;=#~%~yEESk? z@e$K+0gK&sHLzTE|0`3Y>GC3eP83cU|HwcGiYFCan-|YFVwwL%bux_l(`@p95xW25 z)7^C0UA(+5r_1do-R>U7gZX;%_hj>MahHwfuh}^A0hxv8ulU#WjgPz6&0@V-?0#HG zTqv<8?(Pr)Y5eu}WA+sjb;2Igt5DmJA(j_;9Ljlw8BTNSF1qRI;H16&(H@(Hr47sM z#UtM?SR~usIhXGU%NM>MSjLqE`F?%yuQuj}*;3P4zOSHlJZ@tZDPwc4^p^LiHV~j~ zRXrzl3=)Ia5MPq?8p4?HN{ON+lZqj+vgC+P`5uQ1?>fFw@k5zslxD6so zTC5G=Pxv*~CVsc)o8ynLCgI6MXV^g>nJ3}H4<`f+U(6Vkyu(Id z0*yM8`23+_l*P)3k&V7#zA{hHdCLY66gnc8-T3j+){iYvz)|V#tLv(mn3Mv?75~$nGhl z*DjuL#P;s!83tbc4X>#$#KI&Uu2!8DNl1KjXHVwT=v9>}G?y@$o>Mi^QD7h_-w@oKAEkY9~`&Tp9mF z>hmYvcx;B;of+>sUxHSrZ$0~6sD_)iwozp60RJxvateG#QIF|VdaN8|BdqvygAvGOQ2 zH94VE<}on%xQ0Y;@;DQ(uXCVs@`gy?N)1R(=$nVIk&(tRC{>RbXUML$j=2Z-9^9L; zi;j2O5oWvfaI*JRW?`a)#LA*^*)-uJO4tg1z&ZL$M;W&z7U#-o{092GhBon z2uyWtq8oYq9)&^O{`LE(^>k0!7}+mJygB_Im`nK>_^MAfJrelOJ{{cPoCLZ~fHF%n zR!L;s6XK6mP5xMAIsRDl!^$$%CH(M!9A&Dwf?5ZO;Zyb5K}^#bP7On7!^^(lXerN- zetX?E`{*oZWs7v0CH)VeGZs+q5Aky=#>{K^_NgAx7#pnF)9&xE^vdzny~<@&2@ED{ zabR@g6gcAY08~XqL(+MKZGq_KCMM_Ab_{j%GsF(O-J>`PL9_BA2h}COKFAV?#w1SL zh$$v$vYI}vHxwNcCjYpvqY9aMltKefrIOk}c-!<$aFb);mTGhgvMY03+Wkmus-Bln zvz@~6nhua?$q*7*N_L1oHSi>A zBL0GqHYa2gNGDMCeuLLHg9j@HgtOUx`-ctTiS)hSKn~16zOJ{s>;>Y1f7nRYBQWt~ z#k-4&eOJDZ@x^Js$K&{p9`~N+%h`9tCV@F(uwQc&lx(ir=p!4pHturid2RG1z3=|K z&eueJzP^v%-dOjrTmPKdZ-W1fqww^TN1*}!GmgS$^K;ii1N>(kg}0}lI|>c(pK%nP ze)1^%Wc-6S;u`9liszey!KN+^=eU=DGWMsseLv&)zb#=+TxSiOW&CSnKjR2&e(DI+ z#(u^Tc>1X$P#gRCMnH9V8nlJV&v+p;qu{I~!J|Mc;^%P77>NcHoNpxh{9c4n*UwlE zwUM8%|2=v!{-o}g;_h3G*k%U%cM$@Xi1+ehfilrd$%}ae`4lYdfd@-Ki(y&5cM1(r z31CcO5W{|gooZ--09D=@GwYm~DG=bJ!7GrCX3$ydM83tJ>bhU=4Iy_hkvj%b-ven}N3koGN0Pnu6H+)%DfdQ zlUAU-OuoOKJ}y&O(VPwin_zVs6kd36X#Lg#7@Z#M#LYyO{-+T`>yF|Wo(x6xzrM~^ zbcTM0`@rYL@^p}0*rGn1Oqj_=cH&U83GPWpF%31F*PaYzxt>l=AD556eY!gx%I)2U z7NC6mdUbO;E!sHx#F_q644+SgqRppIg!1wF!`12I^5=)Uf1L~^h1K54K)Qc@y=ei; z@1Mq>Pp9R#4`lRn3U@_YT4z@|aiU3`e=;rU*W1&9uzhWu6tXQ!(jb(&&Oq{YlScg! z#ja@a0;~1xVX~XRG5gtY!u6pUdzva}wXJme;^a>~gmsQ)r`f5_GczXdDvrWHL>qr? zj@ICQ)vjRd7iP_a*`Vaw*avIq2W&#!b*%)jwTAW+0)FL(L{*qlX)B0()O~D45)!;cd*(o z5druD7ULKetc|>dPkqwfWj3QGD)nhR=bW}n+8Ji{L;~Mse&dES|BMN4nYJ^`a6JkU zsv42Mt%%Qx616;avv`~AaBEQ|IhZ-F213xV<(>Z-(Zlx$iE|Hmmk7F)9}k?f#3kB> z56uLm;FaJV<8dJC^KXqRB5|bpROE@weXc>IN_?v5LidfTqD0aqj_{bv$#(l`HupW# zOx%PpR7wIVpUxcs+2EAg>9AW6l3D+Kgw)Z45Q8s{Xzjpf!_(#De}5o?(BwhZ0Cj1| z!ToK(af-!0W?A5z0)>SQaNA!!4>5^g8u&B#mEo8;f&LVN%H3>iyHkd40OmT3{9cVM z&7s5JjqnZGVz5E?24VLG4bg4y7vCH8FNZH}ijX&HgZ`-;Lj2uqK0u6`YKoAYgq!pbmg)YE=r!yg`D8Rfm*nu_?`AW|VKbTxXbvH=5;jA~`5hY| zOuFHS;_qe%Ns!uPNZ}gb&tTdR9lg?X#j(1du7`e|sY?+KMdh`*xBd#Oru@x&FK$WmtkVL3;Q! zoMs1t)`X9Dg!4eB>q35*K@wl8L<}J>0?5pnq~c)e9Lh7BpLj@5&K+qeN#>C{?<`ep zG`ND_^X-oJh2~`um6Nyh!nj657Kt`#Zw90X2>0-@j?Br+N??;tsc zya+FP3))}G)@_MFN4cyBXd`wW6dB^D(xawNGe|uDUOeocOf-+P%uJUOx|Ge!{awaJ zOu<-`>7q#^?&Z?<^w1op#`~mo(5y&L`e8F)^$aPw{3)(C{)ChfA-<_|*d7;D_Bt+* z`{t9;MCV{x+qBnNSc-y#X#t zgM{%#ljP%SVmzGrnVy%i*i-H zU7Pg~Y8)jmg~{l*gHb9OQZwH@=Bx#hAx$s%f)aOVB8F={?MKS`WH6z&=UzDyRu}qQ zoiq-)JYWFULEyZP%mm{LD`<5@-LX={8sZI&40${9+SEi)f3=ACH4PU-8nYi9DeqGc6egTykH2(YK4f$S;g(=0B8Ge>y@<$SEBH#w?JWBt^zioHq%iv~! zLha`vQI}nd8cd9pOzQgmRhFDbIU1>m2~Ve=4UteHM48Z=93w^?%KjIndSjn5=wURZ)-Ancl} z2O=RVg0s@m5b3qUU2NzuA8r_&tTh{kw~Y)K^AYj6o!VhyQgb8C4GXLG+G|9YWH2z) zB-gWC^`KXk)tQ&HBn7LcWaeFOf?FkQTI`T(MpvxvPtYjWrLaM4S(h~kS7U%9LsS!J zx+vmXY3txzgWbEBY3o;Sbc#tEW*EKTl*zX)42##2&lx=~xppC``8IlJ>b6NqKV@e; z*Q#`U98y-esm_PpZZdtkT5NY}KwQOy|278foTx*FL=<%7B2lX%1%gm)9R504&UU!W z@!VW*bnXuiq)n82O%lTG$0z(}3a#f~G-FWpiShT;{4A>w> zcI?rbtVE_zN~GbnChuNVH8R0rB%!DX!8qp#zZ2t)Ivi<$ZR?dHVxX{^eV_RxU&R=S z`DXnhFPPY}yuO?+$`+;^TCRP5VTNt}rI~9PEX_!(;3Ts6s#?+IiETimn{k6BTn6?K z2Ld|8bhbxd?D4ZpdC-J1!wAgb$!KL}NF0+FqFpcami6KAL94@{Yb)`%(xDU@Nz zE_u_t!cyoq<@MV$_E?gcRTOLfRKK~;6Nk8i!z9GXje;Y{5M0qH#@?A`1z|#nFV@ud zk%ql|cvvG4kQ$soVaps=3)MaEgU0dM$pH!2p4b^!pg#v7;Cuvt*bl`nCx{scAumk* z0>?rzYb7B$ujNsESOp@g;Sfy$@5~g1gLxQ2Ff9!s2)h)<5{mex5d*1vZy2oai>>IO zgh83EAvVEFatFTPhR$Zc`p^U>s2z4dGc9F)`t5`TKzIncb+)_B`UkX82XM9&8=x7| zb^-)6#Mx4mfQDFEoo$sDha)|dgbHYgwWW9g4Y8uH$|-7U^fewdpdr>)A_p|Y*;4p` zhFEbX&l`|YouiP+1rt?G$uhuvKF|AA?6$r@#^}w~Aql+Gxj;(Bz<-P7#Z0 zh6R>+-SG+@GtiipEEv3*nh;LM$%klknS-jlm zyUgAPK3x?iXwJ^_eD<4x`R1n#x7ODvnUzLTj!>4mIk8Zw(Pod0HV0y~8PG61nTC?o zBD6xj+y%IL<+$oi3(0%7lNHQreQ&j9m}-vfK{L=+d)6AZ2E8LruFBH1ZU-BntYP0- z7i+BrL&Mr4&iXyAZ^PMkf7{1gzt@!}qjfvl0Nr6b(E~_FY1&OtHmt9+l z{SF&{geNm5{1@+ZL40PbcJr*E+qrKk`b=)SJN5qw;f1js-Lh8%#`WDt^;3RSOO}CM ziCsJB%**%-q3#7d;0t&Zxqv_9sW~vmKZ&Xn#;87nFgU|loPfQg&oz#R+Kfum9-kF= zNq_6CxMmDY(_X&=1tonyJl^N+`PuQ8^t4V5XF&0UX&XaqZJ&ap`T8boWDiu6 z9|#An6kX{eKM9?$Kec>7`BG@~91lCz5L44vXE`!+{lu4E`*>hR61gF0mfFWvw%FUl zba+u5`S?0=!p?@RWGGw5cX&YSKjVTiEHjtr&qx#Ya6zUwCbKZ<)vr0XaL!7h`wb5O z$M`pX+;sE&KN2r4UVmGEcQEVUT4^4bN|?|1C?R870Xb+BSP%U3YS#)~xrsP-(D*tb zR_42TO145>*+ewEXbbaOoQzWdR`tE%rCFe~Y5*Etk_E`|F*pro6}3&TikbwU47P&i zBhTb|l(z-Eg8upkd_9tngNN|pCcF=Y(OS&5l=e>KQr+#}lh+%zYBvVpyWmr)ZMd%W z@M4DM$Cp;(@F?us_E z91Y*AlJ}xOotdVD;OxE3Llb7;W)C6XZ08xvgx1PE7RipUD{c~`3%t$Jj?Y_s zpa_i;MpH8gV+sey9-bqvNO<27sXk5)^;Rj*?oT>hes#3p?{lFC>w1M~>?CKk0Ru(U zF77xq5rd1>jwC=A$Zd_RsrcuW)@VbDP-M;MeSC?Stq=1s=RD5bPTaE3N~Qpxkn}DaQ?1 zNqQh>6pkdHjQWV3N*5CxuoOGxiD9td1}!z7Dnq#?cWb&K6Xl;i0xZdTrCbbOp@{s> zO|gCvk3+ysZOmR~ijE*f!Pjhs{5!j!N=0lyRM!0m49HKS!Y*bbrA#`W(%H-v4Ny{W z3Iw}#p0#3$GCNH5wVwKC6I3xuDog)aqxAC#vZIuS_9ZfVDocLSKv}wyz#`?JLsnqJ z^0Ub@n=fG#3vI>mPa#T;oZZJig(ev&ZO8GGh*Bb}2=3bSoY#8y-B3kt1?zVtqfJ79 zv)@VP5J@{F#$bBp--8yjMb*G*pnnGXer_Tl#H%+E6dI)lQ_BJ9h!b5*IRoUbhGfM` z@0#*_Opo%GTq?pE!m;4_lfuq*eWg4b1sBPAZS+cAPBo@H${b zeZ$e54b3It=^_EfH-8%(UZK1VtSb{)lzktMn}JBw4I=ijA;t?#2f{AqEc}~6R?ycX zWE90bY!ParzN`_KD?an5(ObHpP6J!Ad`<#dIcvG~-_op|1hsP3PJ*mTXYDkwC9`%K z&}P?G!-JlLr`a8|%*xhD%Y$t-rM}>ZCS=nhw`Xf`V?vjPej~};ks*c;LCC=zT-AM@ zz*G2szgQxWVYX8#+HChP{E6mRhKr5ueTrfG@Lfz=RtoXV0(c-^e0 z@a(1FB)e_4>rzta@y(a?8Tx(*vC49YH6mq+Ek|@U%E+mk@W68iBOgn4H1^WiKHqSf z98RZ;#A}qWAlt!lm4+eL1sRlFXH~j?eZa71_v`)Y0SRW2d9Bb?4ZPmVAPsbC@%jyP z((ZVJp`g!peIX}ai|01sx#b+e4-5E-uU|Rcoa)fLkQ4p-Rs7;qlAHZ-@<~jb=3u>1 z>M|@QS@;&6l9a@)pz~ox&?%;9w|+$q`x84S17$&#AX7-|eh3*{r)l-uivGA_%aOTD zSRuqkX1VSJDLI+?_EeIS1WQo>2S<`QFYL*rhJ3u)OpBi;yNN#K_6XmZ;rv6A_w{BR z#J{Jpz ze~ zqE?_&l-|-_9iz#^18VKJGsLO*3`=`8lv^R>Unm6~iGGeoGEe&buhKPQsz>wf!$8D2eN)o1g~ z`X%F;-|+fW-TNOvh&BQoNLsp0FHVRxa^OHiJYUO%B3V zVd|WrZNjws%t#eD7+~B2wiTE}kh-T^OG;9k6Si5cucx4GG}w%dlTc)ogu za+dxXAx6uRRw~x1p4J6I!and%xZy5t`^Y#0FeBjEamG}4=^cmM#?3ey`Bl=zrhnZ2 zAphy*lA^#EhwAGCZr13ex1RL%K&MU~kh9avd1jlnsE46KKdidMaZFa}*ba=N|3wvxD0ToSZ$caz8K z%PAr{sSGUo_2;K2H{kGELU^LxU&O*`QvlT?W_n6L%i-s9&WZxtJS;X?Wz00|ZDKhI zo(T_p$ANDI_xS+e?uYM-tqj*ab|^n%o?%7Ii)uvve;?QD&4W-9T!CFmnoI`ApBK11 z^YX?Oj0{rL^U>o;XyJKog$6gK^G z$=q|*$EX=nB$8wUYto`!uIez0i4>7|^pbHdOyqZ1Tx=ln ziH&$KfbI1F`}CNxWJ#xX;j(jh6XL;bD(Zwl6emNY-(do-(`OtFts|444Ri* z?C+8p!692FPS7z+F_8h=Pp}Iz4w+s$vb&UzUZs=i6l^5F8nRuINXQCVoOlA6*U57L zc`?RzW3#Ce_`G}~Hk1{Xh$oESm_xRji00JoL{FJ4Y7UGx;xeD_;gY`{f;Bj}=tCUG zFM6JEV*_7{JW5vU$cqeWg<)!ogPLUJBS_4ZBeABb`f;@3$f9r><+LCtvPVm)L33M& zSQBE(2By8W)xyC1qlh^?ODWN=$Tk)$tPON6D%xfGa{+y!yn1=XVF@whBelDX$%KDd?p|I;zbvy~ zAu#(j9ob^yis{h(>Wa!0lYy^rn7Cq^x?f$n)fJU1rUO^O6_qQxQrdS_UD1`&p8M{K$`xHH?YgS2n5OPm zS5&U(l@eFg6%~rSb1AYY?^C6JP+nQFG-f_^D(Wc_Qn zlkuZDSzR%4MdcM;)s8JDuBfPpdG1+=BU?;dQMqC|v=x*qx>7o@-xF6-&R$w z=t^nNeotIcxuPqjU0cyRyAg)+Nh$Zd0B|{F~-cjWS)r zjG|=t8(U09t~j(sxB;5Fu9OVykIEHYDec?ui7UEN+H>DsG3~lvUD1`&)P7g4=#>)t zJ#j_limsF@SJf5Mj{DUWl`E!^K~8v(6FvbwRrYi<1Lt4zGn5q5r`ZFV>Y34{em~PC z%n?dvj%+a**`jjAWaxf%#bn@qbwyW7`}TX{imsIQ+;>+@yY5$4L@9Cur1EQc1K>x~ zFIP-lQMsaDvaM8Ni>{O^_oFMO9rr8Gl42@7dhj}1tnjNO;7~jtgWf2U673mXN{6PD zm=ZSffPVbr?qZa3i6(Q{Hx)6N@)g_I6cb!^`d2VFsV??SAyGp_$`z0UE&-(K4-wMY z9>!9F#?AcL1+R@C&03*iTgUFm!c|^zXn#!xwy0dumC}Bj)G#o<0+lPeQrfe`q+MG~ zT+x-%)P7g4=#>)t9W!Re7DH}|u9Pb8M_WugwwSmge#5=m;i(*rG8C|O@J!(%X1Y5t zC0c`0uP-H3?Aa1lj``e^62ZZfP`AP2FhyFz8qc6(iv8};K*ze)c(ASwLCO^I>>21^ z`vX$~i)@NXPl}*@fXyI~cwcBxN`BQ_ME}^wZjq`zDdBU{wMDEX3%}p7#Q}Dfw4yzx zOW0!?DD5%%F-gsjNiQ)!DqSR0vY6qQa01w2X$f$S0HxFHR^asF5x9r9_Rp225W{fHO>NlYuQJ=_t{F_^1<@ zBOG-aI_@k@P`_tOUHf^Em>;o7Y?01KvoI+M;sBbYOo?Tv55AD instead." +#endif + +#ifndef HB_AAT_LAYOUT_H +#define HB_AAT_LAYOUT_H + +#include "hb.h" + +#include "hb-ot.h" + +HB_BEGIN_DECLS + +/** + * hb_aat_layout_feature_type_t: + * @HB_AAT_LAYOUT_FEATURE_TYPE_INVALID: Initial, unset feature type + * @HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC: [All Typographic Features](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type0) + * @HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES: [Ligatures](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type1) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CURISVE_CONNECTION: [Cursive Connection](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type2) + * @HB_AAT_LAYOUT_FEATURE_TYPE_LETTER_CASE: [Letter Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type3) + * @HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION: [Vertical Substitution](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type4) + * @HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT: [Linguistic Rearrangement](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type5) + * @HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING: [Number Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type6) + * @HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE: [Smart Swash](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type8) + * @HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE: [Diacritics](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type9) + * @HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION: [Vertical Position](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type10) + * @HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS: [Fractions](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type11) + * @HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE: [Overlapping Characters](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type13) + * @HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS: [Typographic Extras](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type14) + * @HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS: [Mathematical Extras](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type15) + * @HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE: [Ornament Sets](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type16) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES: [Character Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type17) + * @HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE: [Design Complexity](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type18) + * @HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS: [Style Options](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type19) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE: [Character Shape](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type20) + * @HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE: [Number Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type21) + * @HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING: [Text Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type22) + * @HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION: [Transliteration](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type23) + * @HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE: [Annotation](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type24) + * @HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE: [Kana Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type25) + * @HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE: [Ideographic Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type26) + * @HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE: [Unicode Decomposition](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type27) + * @HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA: [Ruby Kana](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type28) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE: [CJK Symbol Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type29) + * @HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE: [Ideographic Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type30) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE: [CJK Vertical Roman Placement](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type31) + * @HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN: [Italic CJK Roman](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type32) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT: [Case Sensitive Layout](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type33) + * @HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA: [Alternate Kana](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type34) + * @HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES: [Stylistic Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type35) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES: [Contextual Alternatives](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type36) + * @HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE: [Lower Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type37) + * @HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE: [Upper Case](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type38) + * @HB_AAT_LAYOUT_FEATURE_TYPE_LANGUAGE_TAG_TYPE: [Language Tag](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type39) + * @HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE: [CJK Roman Spacing](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html#Type103) + * + * The possible feature types defined for AAT shaping, from Apple [Font Feature Registry](https://developer.apple.com/fonts/TrueType-Reference-Manual/RM09/AppendixF.html). + * + * Since: 2.2.0 + */ +typedef enum +{ + HB_AAT_LAYOUT_FEATURE_TYPE_INVALID = 0xFFFF, + + HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC = 0, + HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES = 1, + HB_AAT_LAYOUT_FEATURE_TYPE_CURISVE_CONNECTION = 2, + HB_AAT_LAYOUT_FEATURE_TYPE_LETTER_CASE = 3, + HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION = 4, + HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT = 5, + HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING = 6, + HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE = 8, + HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE = 9, + HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION = 10, + HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS = 11, + HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE = 13, + HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS = 14, + HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS = 15, + HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE = 16, + HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES = 17, + HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE = 18, + HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS = 19, + HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE = 20, + HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE = 21, + HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING = 22, + HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION = 23, + HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE = 24, + HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE = 25, + HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE = 26, + HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE = 27, + HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA = 28, + HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE = 29, + HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE = 30, + HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE = 31, + HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN = 32, + HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT = 33, + HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA = 34, + HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES = 35, + HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES = 36, + HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE = 37, + HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE = 38, + HB_AAT_LAYOUT_FEATURE_TYPE_LANGUAGE_TAG_TYPE = 39, + HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE = 103, + + /*< private >*/ + _HB_AAT_LAYOUT_FEATURE_TYPE_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_aat_layout_feature_type_t; + +/** + * hb_aat_layout_feature_selector_t: + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INVALID: Initial, unset feature selector + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_TYPE_FEATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_TYPE_FEATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_REQUIRED_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_REQUIRED_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_COMMON_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_COMMON_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_RARE_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_RARE_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOGOS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOGOS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_REBUS_PICTURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_REBUS_PICTURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DIPHTHONG_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DIPHTHONG_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SQUARED_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SQUARED_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ABBREV_SQUARED_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ABBREV_SQUARED_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SYMBOL_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SYMBOL_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HISTORICAL_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HISTORICAL_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_UNCONNECTED: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PARTIALLY_CONNECTED: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CURSIVE: for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_AND_LOWER_CASE: Deprecated + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_CAPS: Deprecated + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_LOWER_CASE: Deprecated + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SMALL_CAPS: Deprecated + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INITIAL_CAPS: Deprecated + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INITIAL_CAPS_AND_SMALL_CAPS: Deprecated + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SUBSTITUTE_VERTICAL_FORMS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SUBSTITUTE_VERTICAL_FORMS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINGUISTIC_REARRANGEMENT_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINGUISTIC_REARRANGEMENT_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_MONOSPACED_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_THIRD_WIDTH_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_QUARTER_WIDTH_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_INITIAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_INITIAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_FINAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_FINAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_INITIAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_INITIAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_FINAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_FINAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NON_FINAL_SWASHES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NON_FINAL_SWASHES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SHOW_DIACRITICS: for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HIDE_DIACRITICS: for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DECOMPOSE_DIACRITICS: for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NORMAL_POSITION: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SUPERIORS: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INFERIORS: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ORDINALS: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SCIENTIFIC_INFERIORS: for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_FRACTIONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_VERTICAL_FRACTIONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DIAGONAL_FRACTIONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PREVENT_OVERLAP_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PREVENT_OVERLAP_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHENS_TO_EM_DASH_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHENS_TO_EM_DASH_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_EN_DASH_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_EN_DASH_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASHED_ZERO_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASHED_ZERO_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_FORM_INTERROBANG_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_FORM_INTERROBANG_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SMART_QUOTES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SMART_QUOTES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIODS_TO_ELLIPSIS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIODS_TO_ELLIPSIS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_MINUS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_MINUS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ASTERISK_TO_MULTIPLY_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ASTERISK_TO_MULTIPLY_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASH_TO_DIVIDE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASH_TO_DIVIDE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INEQUALITY_LIGATURES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INEQUALITY_LIGATURES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPONENTS_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPONENTS_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_MATHEMATICAL_GREEK_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_MATHEMATICAL_GREEK_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ORNAMENTS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DINGBATS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PI_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_FLEURONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DECORATIVE_BORDERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INTERNATIONAL_SYMBOLS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_MATH_SYMBOLS: for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ALTERNATES: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL1: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL2: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL3: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL4: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL5: for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_STYLE_OPTIONS: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DISPLAY_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ENGRAVED_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ILLUMINATED_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TITLING_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TALL_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SIMPLIFIED_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1978_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1983_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1990_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_ONE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_TWO: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_THREE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_FOUR: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_FIVE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPERT_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS2004_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HOJO_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NLCCHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_NAMES_CHARACTERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_NUMBERS: for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_MONOSPACED_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_THIRD_WIDTH_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_QUARTER_WIDTH_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALT_PROPORTIONAL_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALT_HALF_WIDTH_TEXT: for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_TRANSLITERATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HIRAGANA_TO_KATAKANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_KATAKANA_TO_HIRAGANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_KANA_TO_ROMANIZATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMANIZATION_TO_HIRAGANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMANIZATION_TO_KATAKANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_ONE: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_TWO: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_THREE: for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_BOX_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ROUNDED_BOX_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CIRCLE_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_CIRCLE_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PARENTHESIS_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIOD_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMAN_NUMERAL_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DIAMOND_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_BOX_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_ROUNDED_BOX_ANNOTATION: for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_KANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_KANA: for #HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_IDEOGRAPHS: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_IDEOGRAPHS: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_IDEOGRAPHS: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CANONICAL_COMPOSITION_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CANONICAL_COMPOSITION_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_COMPATIBILITY_COMPOSITION_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_COMPATIBILITY_COMPOSITION_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRANSCODING_COMPOSITION_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_TRANSCODING_COMPOSITION_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_RUBY_KANA: Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF instead + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA: Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON instead + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_CJK_SYMBOL_ALTERNATIVES: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_ONE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_TWO: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_THREE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_FOUR: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_FIVE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_IDEOGRAPHIC_ALTERNATIVES: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_ONE: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_TWO: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_THREE: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_FOUR: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_FIVE: for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_VERTICAL_ROMAN_CENTERED: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_VERTICAL_ROMAN_HBASELINE: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_CJK_ITALIC_ROMAN: Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF instead + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN: Deprecated; use #HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON instead + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_LAYOUT_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_LAYOUT_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_SPACING_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_SPACING_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_HORIZ_KANA_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_HORIZ_KANA_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_VERT_KANA_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_VERT_KANA_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_STYLISTIC_ALTERNATES: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ONE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ONE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWO_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWO_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THREE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THREE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOUR_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOUR_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIVE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIVE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIX_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIX_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHT_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHT_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ELEVEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ELEVEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWELVE_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWELVE_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THIRTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THIRTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOURTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOURTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIFTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIFTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIXTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIXTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVENTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVENTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHTEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHTEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINETEEN_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINETEEN_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWENTY_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWENTY_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_ALTERNATES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_ALTERNATES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SWASH_ALTERNATES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_SWASH_ALTERNATES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_SWASH_ALTERNATES_ON: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_SWASH_ALTERNATES_OFF: for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_LOWER_CASE: for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_SMALL_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_PETITE_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_UPPER_CASE: for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_SMALL_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_PETITE_CAPS: for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_CJK_ROMAN: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_CJK_ROMAN: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_CJK_ROMAN: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE + * @HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_CJK_ROMAN: for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE + * + * The selectors defined for specifying AAT feature settings. + * + * Since: 2.2.0 + */ +typedef enum +{ + HB_AAT_LAYOUT_FEATURE_SELECTOR_INVALID = 0xFFFF, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_ALL_TYPOGRAPHIC */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_TYPE_FEATURES_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_TYPE_FEATURES_OFF = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_REQUIRED_LIGATURES_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_REQUIRED_LIGATURES_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_COMMON_LIGATURES_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_COMMON_LIGATURES_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_RARE_LIGATURES_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_RARE_LIGATURES_OFF = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LOGOS_ON = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LOGOS_OFF = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_REBUS_PICTURES_ON = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_REBUS_PICTURES_OFF = 9, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DIPHTHONG_LIGATURES_ON = 10, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DIPHTHONG_LIGATURES_OFF = 11, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SQUARED_LIGATURES_ON = 12, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SQUARED_LIGATURES_OFF = 13, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ABBREV_SQUARED_LIGATURES_ON = 14, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ABBREV_SQUARED_LIGATURES_OFF = 15, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SYMBOL_LIGATURES_ON = 16, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SYMBOL_LIGATURES_OFF = 17, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_LIGATURES_ON = 18, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_LIGATURES_OFF = 19, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HISTORICAL_LIGATURES_ON = 20, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HISTORICAL_LIGATURES_OFF = 21, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_LIGATURES */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_UNCONNECTED = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PARTIALLY_CONNECTED = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CURSIVE = 2, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_LETTER_CASE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_AND_LOWER_CASE = 0, /* deprecated */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_CAPS = 1, /* deprecated */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALL_LOWER_CASE = 2, /* deprecated */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_SMALL_CAPS = 3, /* deprecated */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_INITIAL_CAPS = 4, /* deprecated */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_INITIAL_CAPS_AND_SMALL_CAPS = 5, /* deprecated */ + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_SUBSTITUTION */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_SUBSTITUTE_VERTICAL_FORMS_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SUBSTITUTE_VERTICAL_FORMS_OFF = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_LINGUISTIC_REARRANGEMENT */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_LINGUISTIC_REARRANGEMENT_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LINGUISTIC_REARRANGEMENT_OFF = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_SPACING */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_MONOSPACED_NUMBERS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_NUMBERS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_THIRD_WIDTH_NUMBERS = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_QUARTER_WIDTH_NUMBERS = 3, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_SMART_SWASH_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_INITIAL_SWASHES_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_INITIAL_SWASHES_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_FINAL_SWASHES_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_WORD_FINAL_SWASHES_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_INITIAL_SWASHES_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_INITIAL_SWASHES_OFF = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_FINAL_SWASHES_ON = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LINE_FINAL_SWASHES_OFF = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_NON_FINAL_SWASHES_ON = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_NON_FINAL_SWASHES_OFF = 9, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_DIACRITICS_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_SHOW_DIACRITICS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HIDE_DIACRITICS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DECOMPOSE_DIACRITICS = 2, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_VERTICAL_POSITION */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NORMAL_POSITION = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SUPERIORS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INFERIORS = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ORDINALS = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SCIENTIFIC_INFERIORS = 4, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_FRACTIONS */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_FRACTIONS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_VERTICAL_FRACTIONS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DIAGONAL_FRACTIONS = 2, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_OVERLAPPING_CHARACTERS_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_PREVENT_OVERLAP_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PREVENT_OVERLAP_OFF = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_TYPOGRAPHIC_EXTRAS */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHENS_TO_EM_DASH_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHENS_TO_EM_DASH_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_EN_DASH_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_EN_DASH_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASHED_ZERO_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASHED_ZERO_OFF = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_FORM_INTERROBANG_ON = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_FORM_INTERROBANG_OFF = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SMART_QUOTES_ON = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SMART_QUOTES_OFF = 9, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIODS_TO_ELLIPSIS_ON = 10, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIODS_TO_ELLIPSIS_OFF = 11, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_MATHEMATICAL_EXTRAS */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_MINUS_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HYPHEN_TO_MINUS_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ASTERISK_TO_MULTIPLY_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ASTERISK_TO_MULTIPLY_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASH_TO_DIVIDE_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SLASH_TO_DIVIDE_OFF = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INEQUALITY_LIGATURES_ON = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INEQUALITY_LIGATURES_OFF = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPONENTS_ON = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPONENTS_OFF = 9, + HB_AAT_LAYOUT_FEATURE_SELECTOR_MATHEMATICAL_GREEK_ON = 10, + HB_AAT_LAYOUT_FEATURE_SELECTOR_MATHEMATICAL_GREEK_OFF = 11, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_ORNAMENT_SETS_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ORNAMENTS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DINGBATS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PI_CHARACTERS = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_FLEURONS = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DECORATIVE_BORDERS = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INTERNATIONAL_SYMBOLS = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_MATH_SYMBOLS = 6, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_ALTERNATIVES */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ALTERNATES = 0, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_DESIGN_COMPLEXITY_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL1 = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL2 = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL3 = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL4 = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DESIGN_LEVEL5 = 4, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLE_OPTIONS */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_STYLE_OPTIONS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DISPLAY_TEXT = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ENGRAVED_TEXT = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ILLUMINATED_CAPS = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TITLING_CAPS = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TALL_CAPS = 5, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CHARACTER_SHAPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_CHARACTERS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SIMPLIFIED_CHARACTERS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1978_CHARACTERS = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1983_CHARACTERS = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS1990_CHARACTERS = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_ONE = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_TWO = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_THREE = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_FOUR = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_ALT_FIVE = 9, + HB_AAT_LAYOUT_FEATURE_SELECTOR_EXPERT_CHARACTERS = 10, + HB_AAT_LAYOUT_FEATURE_SELECTOR_JIS2004_CHARACTERS = 11, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HOJO_CHARACTERS = 12, + HB_AAT_LAYOUT_FEATURE_SELECTOR_NLCCHARACTERS = 13, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRADITIONAL_NAMES_CHARACTERS = 14, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_NUMBER_CASE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_NUMBERS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_NUMBERS = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_TEXT_SPACING */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_TEXT = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_MONOSPACED_TEXT = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_TEXT = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_THIRD_WIDTH_TEXT = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_QUARTER_WIDTH_TEXT = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALT_PROPORTIONAL_TEXT = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALT_HALF_WIDTH_TEXT = 6, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_TRANSLITERATION */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_TRANSLITERATION = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HIRAGANA_TO_KATAKANA = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_KATAKANA_TO_HIRAGANA = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_KANA_TO_ROMANIZATION = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMANIZATION_TO_HIRAGANA = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMANIZATION_TO_KATAKANA = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_ONE = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_TWO = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HANJA_TO_HANGUL_ALT_THREE = 9, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_ANNOTATION_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_ANNOTATION = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_BOX_ANNOTATION = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ROUNDED_BOX_ANNOTATION = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CIRCLE_ANNOTATION = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_CIRCLE_ANNOTATION = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PARENTHESIS_ANNOTATION = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PERIOD_ANNOTATION = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ROMAN_NUMERAL_ANNOTATION = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DIAMOND_ANNOTATION = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_BOX_ANNOTATION = 9, + HB_AAT_LAYOUT_FEATURE_SELECTOR_INVERTED_ROUNDED_BOX_ANNOTATION= 10, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_KANA_SPACING_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_KANA = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_KANA = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_SPACING_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_IDEOGRAPHS = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_IDEOGRAPHS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_IDEOGRAPHS = 2, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_UNICODE_DECOMPOSITION_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_CANONICAL_COMPOSITION_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CANONICAL_COMPOSITION_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_COMPATIBILITY_COMPOSITION_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_COMPATIBILITY_COMPOSITION_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRANSCODING_COMPOSITION_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_TRANSCODING_COMPOSITION_OFF = 5, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_RUBY_KANA */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_RUBY_KANA = 0, /* deprecated - use HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF instead */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA = 1, /* deprecated - use HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON instead */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_RUBY_KANA_OFF = 3, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_SYMBOL_ALTERNATIVES_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_CJK_SYMBOL_ALTERNATIVES = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_ONE = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_TWO = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_THREE = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_FOUR = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_SYMBOL_ALT_FIVE = 5, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_IDEOGRAPHIC_ALTERNATIVES_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_IDEOGRAPHIC_ALTERNATIVES = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_ONE = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_TWO = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_THREE = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_FOUR = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_IDEOGRAPHIC_ALT_FIVE = 5, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_VERTICAL_ROMAN_PLACEMENT_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_VERTICAL_ROMAN_CENTERED = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_VERTICAL_ROMAN_HBASELINE = 1, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_ITALIC_CJK_ROMAN */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_CJK_ITALIC_ROMAN = 0, /* deprecated - use HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF instead */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN = 1, /* deprecated - use HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON instead */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CJK_ITALIC_ROMAN_OFF = 3, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CASE_SENSITIVE_LAYOUT */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_LAYOUT_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_LAYOUT_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_SPACING_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CASE_SENSITIVE_SPACING_OFF = 3, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_ALTERNATE_KANA */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_HORIZ_KANA_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_HORIZ_KANA_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_VERT_KANA_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_ALTERNATE_VERT_KANA_OFF = 3, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_STYLISTIC_ALTERNATIVES */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_NO_STYLISTIC_ALTERNATES = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ONE_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ONE_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWO_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWO_OFF = 5, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THREE_ON = 6, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THREE_OFF = 7, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOUR_ON = 8, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOUR_OFF = 9, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIVE_ON = 10, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIVE_OFF = 11, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIX_ON = 12, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIX_OFF = 13, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVEN_ON = 14, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVEN_OFF = 15, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHT_ON = 16, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHT_OFF = 17, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINE_ON = 18, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINE_OFF = 19, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TEN_ON = 20, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TEN_OFF = 21, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ELEVEN_ON = 22, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_ELEVEN_OFF = 23, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWELVE_ON = 24, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWELVE_OFF = 25, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THIRTEEN_ON = 26, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_THIRTEEN_OFF = 27, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOURTEEN_ON = 28, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FOURTEEN_OFF = 29, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIFTEEN_ON = 30, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_FIFTEEN_OFF = 31, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIXTEEN_ON = 32, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SIXTEEN_OFF = 33, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVENTEEN_ON = 34, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_SEVENTEEN_OFF = 35, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHTEEN_ON = 36, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_EIGHTEEN_OFF = 37, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINETEEN_ON = 38, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_NINETEEN_OFF = 39, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWENTY_ON = 40, + HB_AAT_LAYOUT_FEATURE_SELECTOR_STYLISTIC_ALT_TWENTY_OFF = 41, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CONTEXTUAL_ALTERNATIVES */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_ALTERNATES_ON = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_ALTERNATES_OFF = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SWASH_ALTERNATES_ON = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_SWASH_ALTERNATES_OFF = 3, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_SWASH_ALTERNATES_ON = 4, + HB_AAT_LAYOUT_FEATURE_SELECTOR_CONTEXTUAL_SWASH_ALTERNATES_OFF= 5, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_LOWER_CASE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_LOWER_CASE = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_SMALL_CAPS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_LOWER_CASE_PETITE_CAPS = 2, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_UPPER_CASE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_UPPER_CASE = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_SMALL_CAPS = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_UPPER_CASE_PETITE_CAPS = 2, + + /* Selectors for #HB_AAT_LAYOUT_FEATURE_TYPE_CJK_ROMAN_SPACING_TYPE */ + HB_AAT_LAYOUT_FEATURE_SELECTOR_HALF_WIDTH_CJK_ROMAN = 0, + HB_AAT_LAYOUT_FEATURE_SELECTOR_PROPORTIONAL_CJK_ROMAN = 1, + HB_AAT_LAYOUT_FEATURE_SELECTOR_DEFAULT_CJK_ROMAN = 2, + HB_AAT_LAYOUT_FEATURE_SELECTOR_FULL_WIDTH_CJK_ROMAN = 3, + + /*< private >*/ + _HB_AAT_LAYOUT_FEATURE_SELECTOR_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_aat_layout_feature_selector_t; + +HB_EXTERN unsigned int +hb_aat_layout_get_feature_types (hb_face_t *face, + unsigned int start_offset, + unsigned int *feature_count, /* IN/OUT. May be NULL. */ + hb_aat_layout_feature_type_t *features /* OUT. May be NULL. */); + +HB_EXTERN hb_ot_name_id_t +hb_aat_layout_feature_type_get_name_id (hb_face_t *face, + hb_aat_layout_feature_type_t feature_type); + +/** + * hb_aat_layout_feature_selector_info_t: + * @name_id: The selector's name identifier + * @enable: The value to turn the selector on + * @disable: The value to turn the selector off + * + * Structure representing a setting for an #hb_aat_layout_feature_type_t. + */ +typedef struct hb_aat_layout_feature_selector_info_t { + hb_ot_name_id_t name_id; + hb_aat_layout_feature_selector_t enable; + hb_aat_layout_feature_selector_t disable; + /*< private >*/ + unsigned int reserved; +} hb_aat_layout_feature_selector_info_t; + +/** + * HB_AAT_LAYOUT_NO_SELECTOR_INDEX + * + * Used when getting or setting AAT feature selectors. Indicates that + * there is no selector index corresponding to the selector of interest. + * + */ +#define HB_AAT_LAYOUT_NO_SELECTOR_INDEX 0xFFFFu + +HB_EXTERN unsigned int +hb_aat_layout_feature_type_get_selector_infos (hb_face_t *face, + hb_aat_layout_feature_type_t feature_type, + unsigned int start_offset, + unsigned int *selector_count, /* IN/OUT. May be NULL. */ + hb_aat_layout_feature_selector_info_t *selectors, /* OUT. May be NULL. */ + unsigned int *default_index /* OUT. May be NULL. */); + + +/* + * morx/mort + */ + +HB_EXTERN hb_bool_t +hb_aat_layout_has_substitution (hb_face_t *face); + + +/* + * kerx + */ + +HB_EXTERN hb_bool_t +hb_aat_layout_has_positioning (hb_face_t *face); + + +/* + * trak + */ + +HB_EXTERN hb_bool_t +hb_aat_layout_has_tracking (hb_face_t *face); + + +HB_END_DECLS + +#endif /* HB_AAT_LAYOUT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-aat.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-aat.h new file mode 100644 index 0000000..c14313d --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-aat.h @@ -0,0 +1,38 @@ +/* + * Copyright © 2018 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HB_AAT_H +#define HB_AAT_H +#define HB_AAT_H_IN + +#include "hb.h" + +#include "hb-aat-layout.h" + +HB_BEGIN_DECLS + +HB_END_DECLS + +#undef HB_AAT_H_IN +#endif /* HB_AAT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-blob.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-blob.h new file mode 100644 index 0000000..4eb4231 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-blob.h @@ -0,0 +1,160 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_BLOB_H +#define HB_BLOB_H + +#include "hb-common.h" + +HB_BEGIN_DECLS + + +/** + * hb_memory_mode_t: + * @HB_MEMORY_MODE_DUPLICATE: HarfBuzz immediately makes a copy of the data. + * @HB_MEMORY_MODE_READONLY: HarfBuzz client will never modify the data, + * and HarfBuzz will never modify the data. + * @HB_MEMORY_MODE_WRITABLE: HarfBuzz client made a copy of the data solely + * for HarfBuzz, so HarfBuzz may modify the data. + * @HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE: See above + * + * Data type holding the memory modes available to + * client programs. + * + * Regarding these various memory-modes: + * + * - In no case shall the HarfBuzz client modify memory + * that is passed to HarfBuzz in a blob. If there is + * any such possibility, @HB_MEMORY_MODE_DUPLICATE should be used + * such that HarfBuzz makes a copy immediately, + * + * - Use @HB_MEMORY_MODE_READONLY otherwise, unless you really really + * really know what you are doing, + * + * - @HB_MEMORY_MODE_WRITABLE is appropriate if you really made a + * copy of data solely for the purpose of passing to + * HarfBuzz and doing that just once (no reuse!), + * + * - If the font is mmap()ed, it's okay to use + * @HB_MEMORY_READONLY_MAY_MAKE_WRITABLE, however, using that mode + * correctly is very tricky. Use @HB_MEMORY_MODE_READONLY instead. + **/ +typedef enum { + HB_MEMORY_MODE_DUPLICATE, + HB_MEMORY_MODE_READONLY, + HB_MEMORY_MODE_WRITABLE, + HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE +} hb_memory_mode_t; + +/** + * hb_blob_t: + * + * Data type for blobs. A blob wraps a chunk of binary + * data and facilitates its lifecycle management between + * a client program and HarfBuzz. + * + **/ +typedef struct hb_blob_t hb_blob_t; + +HB_EXTERN hb_blob_t * +hb_blob_create (const char *data, + unsigned int length, + hb_memory_mode_t mode, + void *user_data, + hb_destroy_func_t destroy); + +HB_EXTERN hb_blob_t * +hb_blob_create_or_fail (const char *data, + unsigned int length, + hb_memory_mode_t mode, + void *user_data, + hb_destroy_func_t destroy); + +HB_EXTERN hb_blob_t * +hb_blob_create_from_file (const char *file_name); + +HB_EXTERN hb_blob_t * +hb_blob_create_from_file_or_fail (const char *file_name); + +/* Always creates with MEMORY_MODE_READONLY. + * Even if the parent blob is writable, we don't + * want the user of the sub-blob to be able to + * modify the parent data as that data may be + * shared among multiple sub-blobs. + */ +HB_EXTERN hb_blob_t * +hb_blob_create_sub_blob (hb_blob_t *parent, + unsigned int offset, + unsigned int length); + +HB_EXTERN hb_blob_t * +hb_blob_copy_writable_or_fail (hb_blob_t *blob); + +HB_EXTERN hb_blob_t * +hb_blob_get_empty (void); + +HB_EXTERN hb_blob_t * +hb_blob_reference (hb_blob_t *blob); + +HB_EXTERN void +hb_blob_destroy (hb_blob_t *blob); + +HB_EXTERN hb_bool_t +hb_blob_set_user_data (hb_blob_t *blob, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + + +HB_EXTERN void * +hb_blob_get_user_data (const hb_blob_t *blob, + hb_user_data_key_t *key); + + +HB_EXTERN void +hb_blob_make_immutable (hb_blob_t *blob); + +HB_EXTERN hb_bool_t +hb_blob_is_immutable (hb_blob_t *blob); + + +HB_EXTERN unsigned int +hb_blob_get_length (hb_blob_t *blob); + +HB_EXTERN const char * +hb_blob_get_data (hb_blob_t *blob, unsigned int *length); + +HB_EXTERN char * +hb_blob_get_data_writable (hb_blob_t *blob, unsigned int *length); + +HB_END_DECLS + +#endif /* HB_BLOB_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-buffer.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-buffer.h new file mode 100644 index 0000000..8c17489 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-buffer.h @@ -0,0 +1,799 @@ +/* + * Copyright © 1998-2004 David Turner and Werner Lemberg + * Copyright © 2004,2007,2009 Red Hat, Inc. + * Copyright © 2011,2012 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Owen Taylor, Behdad Esfahbod + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_BUFFER_H +#define HB_BUFFER_H + +#include "hb-common.h" +#include "hb-unicode.h" +#include "hb-font.h" + +HB_BEGIN_DECLS + +/** + * hb_glyph_info_t: + * @codepoint: either a Unicode code point (before shaping) or a glyph index + * (after shaping). + * @cluster: the index of the character in the original text that corresponds + * to this #hb_glyph_info_t, or whatever the client passes to + * hb_buffer_add(). More than one #hb_glyph_info_t can have the same + * @cluster value, if they resulted from the same character (e.g. one + * to many glyph substitution), and when more than one character gets + * merged in the same glyph (e.g. many to one glyph substitution) the + * #hb_glyph_info_t will have the smallest cluster value of them. + * By default some characters are merged into the same cluster + * (e.g. combining marks have the same cluster as their bases) + * even if they are separate glyphs, hb_buffer_set_cluster_level() + * allow selecting more fine-grained cluster handling. + * + * The #hb_glyph_info_t is the structure that holds information about the + * glyphs and their relation to input text. + */ +typedef struct hb_glyph_info_t { + hb_codepoint_t codepoint; + /*< private >*/ + hb_mask_t mask; + /*< public >*/ + uint32_t cluster; + + /*< private >*/ + hb_var_int_t var1; + hb_var_int_t var2; +} hb_glyph_info_t; + +/** + * hb_glyph_flags_t: + * @HB_GLYPH_FLAG_UNSAFE_TO_BREAK: Indicates that if input text is broken at the + * beginning of the cluster this glyph is part of, + * then both sides need to be re-shaped, as the + * result might be different. + * On the flip side, it means that when this + * flag is not present, then it is safe to break + * the glyph-run at the beginning of this + * cluster, and the two sides will represent the + * exact same result one would get if breaking + * input text at the beginning of this cluster + * and shaping the two sides separately. + * This can be used to optimize paragraph + * layout, by avoiding re-shaping of each line + * after line-breaking. + * @HB_GLYPH_FLAG_UNSAFE_TO_CONCAT: Indicates that if input text is changed on one + * side of the beginning of the cluster this glyph + * is part of, then the shaping results for the + * other side might change. + * Note that the absence of this flag will NOT by + * itself mean that it IS safe to concat text. + * Only two pieces of text both of which clear of + * this flag can be concatenated safely. + * This can be used to optimize paragraph + * layout, by avoiding re-shaping of each line + * after line-breaking, by limiting the + * reshaping to a small piece around the + * breaking positin only, even if the breaking + * position carries the + * #HB_GLYPH_FLAG_UNSAFE_TO_BREAK or when + * hyphenation or other text transformation + * happens at line-break position, in the following + * way: + * 1. Iterate back from the line-break position + * until the first cluster start position that is + * NOT unsafe-to-concat, 2. shape the segment from + * there till the end of line, 3. check whether the + * resulting glyph-run also is clear of the + * unsafe-to-concat at its start-of-text position; + * if it is, just splice it into place and the line + * is shaped; If not, move on to a position further + * back that is clear of unsafe-to-concat and retry + * from there, and repeat. + * At the start of next line a similar algorithm can + * be implemented. That is: 1. Iterate forward from + * the line-break position until the first cluster + * start position that is NOT unsafe-to-concat, 2. + * shape the segment from beginning of the line to + * that position, 3. check whether the resulting + * glyph-run also is clear of the unsafe-to-concat + * at its end-of-text position; if it is, just splice + * it into place and the beginning is shaped; If not, + * move on to a position further forward that is clear + * of unsafe-to-concat and retry up to there, and repeat. + * A slight complication will arise in the + * implementation of the algorithm above, + * because while our buffer API has a way to + * return flags for position corresponding to + * start-of-text, there is currently no position + * corresponding to end-of-text. This limitation + * can be alleviated by shaping more text than needed + * and looking for unsafe-to-concat flag within text + * clusters. + * The #HB_GLYPH_FLAG_UNSAFE_TO_BREAK flag will + * always imply this flag. + * To use this flag, you must enable the buffer flag + * @HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT during + * shaping, otherwise the buffer flag will not be + * reliably produced. + * Since: 4.0.0 + * @HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL: In scripts that use elongation (Arabic, + Mongolian, Syriac, etc.), this flag signifies + that it is safe to insert a U+0640 TATWEEL + character before this cluster for elongation. + This flag does not determine the + script-specific elongation places, but only + when it is safe to do the elongation without + interrupting text shaping. + Since: 5.1.0 + * @HB_GLYPH_FLAG_DEFINED: All the currently defined flags. + * + * Flags for #hb_glyph_info_t. + * + * Since: 1.5.0 + */ +typedef enum { /*< flags >*/ + HB_GLYPH_FLAG_UNSAFE_TO_BREAK = 0x00000001, + HB_GLYPH_FLAG_UNSAFE_TO_CONCAT = 0x00000002, + HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL = 0x00000004, + + HB_GLYPH_FLAG_DEFINED = 0x00000007 /* OR of all defined flags */ +} hb_glyph_flags_t; + +HB_EXTERN hb_glyph_flags_t +hb_glyph_info_get_glyph_flags (const hb_glyph_info_t *info); + +#define hb_glyph_info_get_glyph_flags(info) \ + ((hb_glyph_flags_t) ((unsigned int) (info)->mask & HB_GLYPH_FLAG_DEFINED)) + + +/** + * hb_glyph_position_t: + * @x_advance: how much the line advances after drawing this glyph when setting + * text in horizontal direction. + * @y_advance: how much the line advances after drawing this glyph when setting + * text in vertical direction. + * @x_offset: how much the glyph moves on the X-axis before drawing it, this + * should not affect how much the line advances. + * @y_offset: how much the glyph moves on the Y-axis before drawing it, this + * should not affect how much the line advances. + * + * The #hb_glyph_position_t is the structure that holds the positions of the + * glyph in both horizontal and vertical directions. All positions in + * #hb_glyph_position_t are relative to the current point. + * + */ +typedef struct hb_glyph_position_t { + hb_position_t x_advance; + hb_position_t y_advance; + hb_position_t x_offset; + hb_position_t y_offset; + + /*< private >*/ + hb_var_int_t var; +} hb_glyph_position_t; + +/** + * hb_segment_properties_t: + * @direction: the #hb_direction_t of the buffer, see hb_buffer_set_direction(). + * @script: the #hb_script_t of the buffer, see hb_buffer_set_script(). + * @language: the #hb_language_t of the buffer, see hb_buffer_set_language(). + * + * The structure that holds various text properties of an #hb_buffer_t. Can be + * set and retrieved using hb_buffer_set_segment_properties() and + * hb_buffer_get_segment_properties(), respectively. + */ +typedef struct hb_segment_properties_t { + hb_direction_t direction; + hb_script_t script; + hb_language_t language; + /*< private >*/ + void *reserved1; + void *reserved2; +} hb_segment_properties_t; + +/** + * HB_SEGMENT_PROPERTIES_DEFAULT: + * + * The default #hb_segment_properties_t of of freshly created #hb_buffer_t. + */ +#define HB_SEGMENT_PROPERTIES_DEFAULT {HB_DIRECTION_INVALID, \ + HB_SCRIPT_INVALID, \ + HB_LANGUAGE_INVALID, \ + (void *) 0, \ + (void *) 0} + +HB_EXTERN hb_bool_t +hb_segment_properties_equal (const hb_segment_properties_t *a, + const hb_segment_properties_t *b); + +HB_EXTERN unsigned int +hb_segment_properties_hash (const hb_segment_properties_t *p); + +HB_EXTERN void +hb_segment_properties_overlay (hb_segment_properties_t *p, + const hb_segment_properties_t *src); + + +/** + * hb_buffer_t: + * + * The main structure holding the input text and its properties before shaping, + * and output glyphs and their information after shaping. + */ + +typedef struct hb_buffer_t hb_buffer_t; + +HB_EXTERN hb_buffer_t * +hb_buffer_create (void); + +HB_EXTERN hb_buffer_t * +hb_buffer_create_similar (const hb_buffer_t *src); + +HB_EXTERN void +hb_buffer_reset (hb_buffer_t *buffer); + + +HB_EXTERN hb_buffer_t * +hb_buffer_get_empty (void); + +HB_EXTERN hb_buffer_t * +hb_buffer_reference (hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_destroy (hb_buffer_t *buffer); + +HB_EXTERN hb_bool_t +hb_buffer_set_user_data (hb_buffer_t *buffer, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + +HB_EXTERN void * +hb_buffer_get_user_data (const hb_buffer_t *buffer, + hb_user_data_key_t *key); + + +/** + * hb_buffer_content_type_t: + * @HB_BUFFER_CONTENT_TYPE_INVALID: Initial value for new buffer. + * @HB_BUFFER_CONTENT_TYPE_UNICODE: The buffer contains input characters (before shaping). + * @HB_BUFFER_CONTENT_TYPE_GLYPHS: The buffer contains output glyphs (after shaping). + * + * The type of #hb_buffer_t contents. + */ +typedef enum { + HB_BUFFER_CONTENT_TYPE_INVALID = 0, + HB_BUFFER_CONTENT_TYPE_UNICODE, + HB_BUFFER_CONTENT_TYPE_GLYPHS +} hb_buffer_content_type_t; + +HB_EXTERN void +hb_buffer_set_content_type (hb_buffer_t *buffer, + hb_buffer_content_type_t content_type); + +HB_EXTERN hb_buffer_content_type_t +hb_buffer_get_content_type (const hb_buffer_t *buffer); + + +HB_EXTERN void +hb_buffer_set_unicode_funcs (hb_buffer_t *buffer, + hb_unicode_funcs_t *unicode_funcs); + +HB_EXTERN hb_unicode_funcs_t * +hb_buffer_get_unicode_funcs (const hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_set_direction (hb_buffer_t *buffer, + hb_direction_t direction); + +HB_EXTERN hb_direction_t +hb_buffer_get_direction (const hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_set_script (hb_buffer_t *buffer, + hb_script_t script); + +HB_EXTERN hb_script_t +hb_buffer_get_script (const hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_set_language (hb_buffer_t *buffer, + hb_language_t language); + + +HB_EXTERN hb_language_t +hb_buffer_get_language (const hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_set_segment_properties (hb_buffer_t *buffer, + const hb_segment_properties_t *props); + +HB_EXTERN void +hb_buffer_get_segment_properties (const hb_buffer_t *buffer, + hb_segment_properties_t *props); + +HB_EXTERN void +hb_buffer_guess_segment_properties (hb_buffer_t *buffer); + + +/** + * hb_buffer_flags_t: + * @HB_BUFFER_FLAG_DEFAULT: the default buffer flag. + * @HB_BUFFER_FLAG_BOT: flag indicating that special handling of the beginning + * of text paragraph can be applied to this buffer. Should usually + * be set, unless you are passing to the buffer only part + * of the text without the full context. + * @HB_BUFFER_FLAG_EOT: flag indicating that special handling of the end of text + * paragraph can be applied to this buffer, similar to + * @HB_BUFFER_FLAG_BOT. + * @HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES: + * flag indication that character with Default_Ignorable + * Unicode property should use the corresponding glyph + * from the font, instead of hiding them (done by + * replacing them with the space glyph and zeroing the + * advance width.) This flag takes precedence over + * @HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES. + * @HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES: + * flag indication that character with Default_Ignorable + * Unicode property should be removed from glyph string + * instead of hiding them (done by replacing them with the + * space glyph and zeroing the advance width.) + * @HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES takes + * precedence over this flag. Since: 1.8.0 + * @HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE: + * flag indicating that a dotted circle should + * not be inserted in the rendering of incorrect + * character sequences (such at <0905 093E>). Since: 2.4.0 + * @HB_BUFFER_FLAG_VERIFY: + * flag indicating that the hb_shape() call and its variants + * should perform various verification processes on the results + * of the shaping operation on the buffer. If the verification + * fails, then either a buffer message is sent, if a message + * handler is installed on the buffer, or a message is written + * to standard error. In either case, the shaping result might + * be modified to show the failed output. Since: 3.4.0 + * @HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT: + * flag indicating that the @HB_GLYPH_FLAG_UNSAFE_TO_CONCAT + * glyph-flag should be produced by the shaper. By default + * it will not be produced since it incurs a cost. Since: 4.0.0 + * @HB_BUFFER_FLAG_PRODUCE_SAFE_TO_INSERT_TATWEEL: + * flag indicating that the @HB_GLYPH_FLAG_SAFE_TO_INSERT_TATWEEL + * glyph-flag should be produced by the shaper. By default + * it will not be produced. Since: 5.1.0 + * @HB_BUFFER_FLAG_DEFINED: All currently defined flags: Since: 4.4.0 + * + * Flags for #hb_buffer_t. + * + * Since: 0.9.20 + */ +typedef enum { /*< flags >*/ + HB_BUFFER_FLAG_DEFAULT = 0x00000000u, + HB_BUFFER_FLAG_BOT = 0x00000001u, /* Beginning-of-text */ + HB_BUFFER_FLAG_EOT = 0x00000002u, /* End-of-text */ + HB_BUFFER_FLAG_PRESERVE_DEFAULT_IGNORABLES = 0x00000004u, + HB_BUFFER_FLAG_REMOVE_DEFAULT_IGNORABLES = 0x00000008u, + HB_BUFFER_FLAG_DO_NOT_INSERT_DOTTED_CIRCLE = 0x00000010u, + HB_BUFFER_FLAG_VERIFY = 0x00000020u, + HB_BUFFER_FLAG_PRODUCE_UNSAFE_TO_CONCAT = 0x00000040u, + HB_BUFFER_FLAG_PRODUCE_SAFE_TO_INSERT_TATWEEL = 0x00000080u, + + HB_BUFFER_FLAG_DEFINED = 0x000000FFu +} hb_buffer_flags_t; + +HB_EXTERN void +hb_buffer_set_flags (hb_buffer_t *buffer, + hb_buffer_flags_t flags); + +HB_EXTERN hb_buffer_flags_t +hb_buffer_get_flags (const hb_buffer_t *buffer); + +/** + * hb_buffer_cluster_level_t: + * @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES: Return cluster values grouped by graphemes into + * monotone order. + * @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS: Return cluster values grouped into monotone order. + * @HB_BUFFER_CLUSTER_LEVEL_CHARACTERS: Don't group cluster values. + * @HB_BUFFER_CLUSTER_LEVEL_DEFAULT: Default cluster level, + * equal to @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES. + * + * Data type for holding HarfBuzz's clustering behavior options. The cluster level + * dictates one aspect of how HarfBuzz will treat non-base characters + * during shaping. + * + * In @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES, non-base + * characters are merged into the cluster of the base character that precedes them. + * + * In @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS, non-base characters are initially + * assigned their own cluster values, which are not merged into preceding base + * clusters. This allows HarfBuzz to perform additional operations like reorder + * sequences of adjacent marks. + * + * @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES is the default, because it maintains + * backward compatibility with older versions of HarfBuzz. New client programs that + * do not need to maintain such backward compatibility are recommended to use + * @HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS instead of the default. + * + * Since: 0.9.42 + */ +typedef enum { + HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES = 0, + HB_BUFFER_CLUSTER_LEVEL_MONOTONE_CHARACTERS = 1, + HB_BUFFER_CLUSTER_LEVEL_CHARACTERS = 2, + HB_BUFFER_CLUSTER_LEVEL_DEFAULT = HB_BUFFER_CLUSTER_LEVEL_MONOTONE_GRAPHEMES +} hb_buffer_cluster_level_t; + +HB_EXTERN void +hb_buffer_set_cluster_level (hb_buffer_t *buffer, + hb_buffer_cluster_level_t cluster_level); + +HB_EXTERN hb_buffer_cluster_level_t +hb_buffer_get_cluster_level (const hb_buffer_t *buffer); + +/** + * HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT: + * + * The default code point for replacing invalid characters in a given encoding. + * Set to U+FFFD REPLACEMENT CHARACTER. + * + * Since: 0.9.31 + */ +#define HB_BUFFER_REPLACEMENT_CODEPOINT_DEFAULT 0xFFFDu + +HB_EXTERN void +hb_buffer_set_replacement_codepoint (hb_buffer_t *buffer, + hb_codepoint_t replacement); + +HB_EXTERN hb_codepoint_t +hb_buffer_get_replacement_codepoint (const hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_set_invisible_glyph (hb_buffer_t *buffer, + hb_codepoint_t invisible); + +HB_EXTERN hb_codepoint_t +hb_buffer_get_invisible_glyph (const hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_set_not_found_glyph (hb_buffer_t *buffer, + hb_codepoint_t not_found); + +HB_EXTERN hb_codepoint_t +hb_buffer_get_not_found_glyph (const hb_buffer_t *buffer); + + +/* + * Content API. + */ + +HB_EXTERN void +hb_buffer_clear_contents (hb_buffer_t *buffer); + +HB_EXTERN hb_bool_t +hb_buffer_pre_allocate (hb_buffer_t *buffer, + unsigned int size); + + +HB_EXTERN hb_bool_t +hb_buffer_allocation_successful (hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_reverse (hb_buffer_t *buffer); + +HB_EXTERN void +hb_buffer_reverse_range (hb_buffer_t *buffer, + unsigned int start, unsigned int end); + +HB_EXTERN void +hb_buffer_reverse_clusters (hb_buffer_t *buffer); + + +/* Filling the buffer in */ + +HB_EXTERN void +hb_buffer_add (hb_buffer_t *buffer, + hb_codepoint_t codepoint, + unsigned int cluster); + +HB_EXTERN void +hb_buffer_add_utf8 (hb_buffer_t *buffer, + const char *text, + int text_length, + unsigned int item_offset, + int item_length); + +HB_EXTERN void +hb_buffer_add_utf16 (hb_buffer_t *buffer, + const uint16_t *text, + int text_length, + unsigned int item_offset, + int item_length); + +HB_EXTERN void +hb_buffer_add_utf32 (hb_buffer_t *buffer, + const uint32_t *text, + int text_length, + unsigned int item_offset, + int item_length); + +HB_EXTERN void +hb_buffer_add_latin1 (hb_buffer_t *buffer, + const uint8_t *text, + int text_length, + unsigned int item_offset, + int item_length); + +HB_EXTERN void +hb_buffer_add_codepoints (hb_buffer_t *buffer, + const hb_codepoint_t *text, + int text_length, + unsigned int item_offset, + int item_length); + +HB_EXTERN void +hb_buffer_append (hb_buffer_t *buffer, + const hb_buffer_t *source, + unsigned int start, + unsigned int end); + +HB_EXTERN hb_bool_t +hb_buffer_set_length (hb_buffer_t *buffer, + unsigned int length); + +HB_EXTERN unsigned int +hb_buffer_get_length (const hb_buffer_t *buffer); + +/* Getting glyphs out of the buffer */ + +HB_EXTERN hb_glyph_info_t * +hb_buffer_get_glyph_infos (hb_buffer_t *buffer, + unsigned int *length); + +HB_EXTERN hb_glyph_position_t * +hb_buffer_get_glyph_positions (hb_buffer_t *buffer, + unsigned int *length); + +HB_EXTERN hb_bool_t +hb_buffer_has_positions (hb_buffer_t *buffer); + + +HB_EXTERN void +hb_buffer_normalize_glyphs (hb_buffer_t *buffer); + + +/* + * Serialize + */ + +/** + * hb_buffer_serialize_flags_t: + * @HB_BUFFER_SERIALIZE_FLAG_DEFAULT: serialize glyph names, clusters and positions. + * @HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS: do not serialize glyph cluster. + * @HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS: do not serialize glyph position information. + * @HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES: do no serialize glyph name. + * @HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS: serialize glyph extents. + * @HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS: serialize glyph flags. Since: 1.5.0 + * @HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES: do not serialize glyph advances, + * glyph offsets will reflect absolute glyph positions. Since: 1.8.0 + * @HB_BUFFER_SERIALIZE_FLAG_DEFINED: All currently defined flags. Since: 4.4.0 + * + * Flags that control what glyph information are serialized in hb_buffer_serialize_glyphs(). + * + * Since: 0.9.20 + */ +typedef enum { /*< flags >*/ + HB_BUFFER_SERIALIZE_FLAG_DEFAULT = 0x00000000u, + HB_BUFFER_SERIALIZE_FLAG_NO_CLUSTERS = 0x00000001u, + HB_BUFFER_SERIALIZE_FLAG_NO_POSITIONS = 0x00000002u, + HB_BUFFER_SERIALIZE_FLAG_NO_GLYPH_NAMES = 0x00000004u, + HB_BUFFER_SERIALIZE_FLAG_GLYPH_EXTENTS = 0x00000008u, + HB_BUFFER_SERIALIZE_FLAG_GLYPH_FLAGS = 0x00000010u, + HB_BUFFER_SERIALIZE_FLAG_NO_ADVANCES = 0x00000020u, + + HB_BUFFER_SERIALIZE_FLAG_DEFINED = 0x0000003Fu +} hb_buffer_serialize_flags_t; + +/** + * hb_buffer_serialize_format_t: + * @HB_BUFFER_SERIALIZE_FORMAT_TEXT: a human-readable, plain text format. + * @HB_BUFFER_SERIALIZE_FORMAT_JSON: a machine-readable JSON format. + * @HB_BUFFER_SERIALIZE_FORMAT_INVALID: invalid format. + * + * The buffer serialization and de-serialization format used in + * hb_buffer_serialize_glyphs() and hb_buffer_deserialize_glyphs(). + * + * Since: 0.9.2 + */ +typedef enum { + HB_BUFFER_SERIALIZE_FORMAT_TEXT = HB_TAG('T','E','X','T'), + HB_BUFFER_SERIALIZE_FORMAT_JSON = HB_TAG('J','S','O','N'), + HB_BUFFER_SERIALIZE_FORMAT_INVALID = HB_TAG_NONE +} hb_buffer_serialize_format_t; + +HB_EXTERN hb_buffer_serialize_format_t +hb_buffer_serialize_format_from_string (const char *str, int len); + +HB_EXTERN const char * +hb_buffer_serialize_format_to_string (hb_buffer_serialize_format_t format); + +HB_EXTERN const char ** +hb_buffer_serialize_list_formats (void); + +HB_EXTERN unsigned int +hb_buffer_serialize_glyphs (hb_buffer_t *buffer, + unsigned int start, + unsigned int end, + char *buf, + unsigned int buf_size, + unsigned int *buf_consumed, + hb_font_t *font, + hb_buffer_serialize_format_t format, + hb_buffer_serialize_flags_t flags); + +HB_EXTERN unsigned int +hb_buffer_serialize_unicode (hb_buffer_t *buffer, + unsigned int start, + unsigned int end, + char *buf, + unsigned int buf_size, + unsigned int *buf_consumed, + hb_buffer_serialize_format_t format, + hb_buffer_serialize_flags_t flags); + +HB_EXTERN unsigned int +hb_buffer_serialize (hb_buffer_t *buffer, + unsigned int start, + unsigned int end, + char *buf, + unsigned int buf_size, + unsigned int *buf_consumed, + hb_font_t *font, + hb_buffer_serialize_format_t format, + hb_buffer_serialize_flags_t flags); + +HB_EXTERN hb_bool_t +hb_buffer_deserialize_glyphs (hb_buffer_t *buffer, + const char *buf, + int buf_len, + const char **end_ptr, + hb_font_t *font, + hb_buffer_serialize_format_t format); + +HB_EXTERN hb_bool_t +hb_buffer_deserialize_unicode (hb_buffer_t *buffer, + const char *buf, + int buf_len, + const char **end_ptr, + hb_buffer_serialize_format_t format); + + + +/* + * Compare buffers + */ + +/** + * hb_buffer_diff_flags_t: + * @HB_BUFFER_DIFF_FLAG_EQUAL: equal buffers. + * @HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH: buffers with different + * #hb_buffer_content_type_t. + * @HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH: buffers with differing length. + * @HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT: `.notdef` glyph is present in the + * reference buffer. + * @HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT: dotted circle glyph is present + * in the reference buffer. + * @HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH: difference in #hb_glyph_info_t.codepoint + * @HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH: difference in #hb_glyph_info_t.cluster + * @HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH: difference in #hb_glyph_flags_t. + * @HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH: difference in #hb_glyph_position_t. + * + * Flags from comparing two #hb_buffer_t's. + * + * Buffer with different #hb_buffer_content_type_t cannot be meaningfully + * compared in any further detail. + * + * For buffers with differing length, the per-glyph comparison is not + * attempted, though we do still scan reference buffer for dotted circle and + * `.notdef` glyphs. + * + * If the buffers have the same length, we compare them glyph-by-glyph and + * report which aspect(s) of the glyph info/position are different. + * + * Since: 1.5.0 + */ +typedef enum { /*< flags >*/ + HB_BUFFER_DIFF_FLAG_EQUAL = 0x0000, + + /* Buffers with different content_type cannot be meaningfully compared + * in any further detail. */ + HB_BUFFER_DIFF_FLAG_CONTENT_TYPE_MISMATCH = 0x0001, + + /* For buffers with differing length, the per-glyph comparison is not + * attempted, though we do still scan reference for dottedcircle / .notdef + * glyphs. */ + HB_BUFFER_DIFF_FLAG_LENGTH_MISMATCH = 0x0002, + + /* We want to know if dottedcircle / .notdef glyphs are present in the + * reference, as we may not care so much about other differences in this + * case. */ + HB_BUFFER_DIFF_FLAG_NOTDEF_PRESENT = 0x0004, + HB_BUFFER_DIFF_FLAG_DOTTED_CIRCLE_PRESENT = 0x0008, + + /* If the buffers have the same length, we compare them glyph-by-glyph + * and report which aspect(s) of the glyph info/position are different. */ + HB_BUFFER_DIFF_FLAG_CODEPOINT_MISMATCH = 0x0010, + HB_BUFFER_DIFF_FLAG_CLUSTER_MISMATCH = 0x0020, + HB_BUFFER_DIFF_FLAG_GLYPH_FLAGS_MISMATCH = 0x0040, + HB_BUFFER_DIFF_FLAG_POSITION_MISMATCH = 0x0080 + +} hb_buffer_diff_flags_t; + +/* Compare the contents of two buffers, report types of differences. */ +HB_EXTERN hb_buffer_diff_flags_t +hb_buffer_diff (hb_buffer_t *buffer, + hb_buffer_t *reference, + hb_codepoint_t dottedcircle_glyph, + unsigned int position_fuzz); + + +/* + * Debugging. + */ + +/** + * hb_buffer_message_func_t: + * @buffer: An #hb_buffer_t to work upon + * @font: The #hb_font_t the @buffer is shaped with + * @message: `NULL`-terminated message passed to the function + * @user_data: User data pointer passed by the caller + * + * A callback method for #hb_buffer_t. The method gets called with the + * #hb_buffer_t it was set on, the #hb_font_t the buffer is shaped with and a + * message describing what step of the shaping process will be performed. + * Returning `false` from this method will skip this shaping step and move to + * the next one. + * + * Return value: `true` to perform the shaping step, `false` to skip it. + * + * Since: 1.1.3 + */ +typedef hb_bool_t (*hb_buffer_message_func_t) (hb_buffer_t *buffer, + hb_font_t *font, + const char *message, + void *user_data); + +HB_EXTERN void +hb_buffer_set_message_func (hb_buffer_t *buffer, + hb_buffer_message_func_t func, + void *user_data, hb_destroy_func_t destroy); + + +HB_END_DECLS + +#endif /* HB_BUFFER_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-common.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-common.h new file mode 100644 index 0000000..e92feb9 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-common.h @@ -0,0 +1,902 @@ +/* + * Copyright © 2007,2008,2009 Red Hat, Inc. + * Copyright © 2011,2012 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_COMMON_H +#define HB_COMMON_H + +#ifndef HB_EXTERN +#define HB_EXTERN extern +#endif + +#ifndef HB_BEGIN_DECLS +# ifdef __cplusplus +# define HB_BEGIN_DECLS extern "C" { +# define HB_END_DECLS } +# else /* !__cplusplus */ +# define HB_BEGIN_DECLS +# define HB_END_DECLS +# endif /* !__cplusplus */ +#endif + +#if defined (_SVR4) || defined (SVR4) || defined (__OpenBSD__) || \ + defined (_sgi) || defined (__sun) || defined (sun) || \ + defined (__digital__) || defined (__HP_cc) +# include +#elif defined (_AIX) +# include +#elif defined (_MSC_VER) && _MSC_VER < 1600 +/* VS 2010 (_MSC_VER 1600) has stdint.h */ +typedef __int8 int8_t; +typedef unsigned __int8 uint8_t; +typedef __int16 int16_t; +typedef unsigned __int16 uint16_t; +typedef __int32 int32_t; +typedef unsigned __int32 uint32_t; +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#elif defined (__KERNEL__) +# include +#else +# include +#endif + +#if defined(__GNUC__) && ((__GNUC__ > 3) || (__GNUC__ == 3 && __GNUC_MINOR__ >= 1)) +#define HB_DEPRECATED __attribute__((__deprecated__)) +#elif defined(_MSC_VER) && (_MSC_VER >= 1300) +#define HB_DEPRECATED __declspec(deprecated) +#else +#define HB_DEPRECATED +#endif + +#if defined(__GNUC__) && ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 5)) +#define HB_DEPRECATED_FOR(f) __attribute__((__deprecated__("Use '" #f "' instead"))) +#elif defined(_MSC_FULL_VER) && (_MSC_FULL_VER > 140050320) +#define HB_DEPRECATED_FOR(f) __declspec(deprecated("is deprecated. Use '" #f "' instead")) +#else +#define HB_DEPRECATED_FOR(f) HB_DEPRECATED +#endif + + +HB_BEGIN_DECLS + +/** + * hb_bool_t: + * + * Data type for booleans. + * + **/ +typedef int hb_bool_t; + +/** + * hb_codepoint_t: + * + * Data type for holding Unicode codepoints. Also + * used to hold glyph IDs. + * + **/ +typedef uint32_t hb_codepoint_t; +/** + * hb_position_t: + * + * Data type for holding a single coordinate value. + * Contour points and other multi-dimensional data are + * stored as tuples of #hb_position_t's. + * + **/ +typedef int32_t hb_position_t; +/** + * hb_mask_t: + * + * Data type for bitmasks. + * + **/ +typedef uint32_t hb_mask_t; + +typedef union _hb_var_int_t { + uint32_t u32; + int32_t i32; + uint16_t u16[2]; + int16_t i16[2]; + uint8_t u8[4]; + int8_t i8[4]; +} hb_var_int_t; + +typedef union _hb_var_num_t { + float f; + uint32_t u32; + int32_t i32; + uint16_t u16[2]; + int16_t i16[2]; + uint8_t u8[4]; + int8_t i8[4]; +} hb_var_num_t; + + +/* hb_tag_t */ + +/** + * hb_tag_t: + * + * Data type for tag identifiers. Tags are four + * byte integers, each byte representing a character. + * + * Tags are used to identify tables, design-variation axes, + * scripts, languages, font features, and baselines with + * human-readable names. + * + **/ +typedef uint32_t hb_tag_t; + +/** + * HB_TAG: + * @c1: 1st character of the tag + * @c2: 2nd character of the tag + * @c3: 3rd character of the tag + * @c4: 4th character of the tag + * + * Constructs an #hb_tag_t from four character literals. + * + **/ +#define HB_TAG(c1,c2,c3,c4) ((hb_tag_t)((((uint32_t)(c1)&0xFF)<<24)|(((uint32_t)(c2)&0xFF)<<16)|(((uint32_t)(c3)&0xFF)<<8)|((uint32_t)(c4)&0xFF))) + +/** + * HB_UNTAG: + * @tag: an #hb_tag_t + * + * Extracts four character literals from an #hb_tag_t. + * + * Since: 0.6.0 + * + **/ +#define HB_UNTAG(tag) (uint8_t)(((tag)>>24)&0xFF), (uint8_t)(((tag)>>16)&0xFF), (uint8_t)(((tag)>>8)&0xFF), (uint8_t)((tag)&0xFF) + +/** + * HB_TAG_NONE: + * + * Unset #hb_tag_t. + */ +#define HB_TAG_NONE HB_TAG(0,0,0,0) +/** + * HB_TAG_MAX: + * + * Maximum possible unsigned #hb_tag_t. + * + * Since: 0.9.26 + */ +#define HB_TAG_MAX HB_TAG(0xff,0xff,0xff,0xff) +/** + * HB_TAG_MAX_SIGNED: + * + * Maximum possible signed #hb_tag_t. + * + * Since: 0.9.33 + */ +#define HB_TAG_MAX_SIGNED HB_TAG(0x7f,0xff,0xff,0xff) + +/* len=-1 means str is NUL-terminated. */ +HB_EXTERN hb_tag_t +hb_tag_from_string (const char *str, int len); + +/* buf should have 4 bytes. */ +HB_EXTERN void +hb_tag_to_string (hb_tag_t tag, char *buf); + + +/** + * hb_direction_t: + * @HB_DIRECTION_INVALID: Initial, unset direction. + * @HB_DIRECTION_LTR: Text is set horizontally from left to right. + * @HB_DIRECTION_RTL: Text is set horizontally from right to left. + * @HB_DIRECTION_TTB: Text is set vertically from top to bottom. + * @HB_DIRECTION_BTT: Text is set vertically from bottom to top. + * + * The direction of a text segment or buffer. + * + * A segment can also be tested for horizontal or vertical + * orientation (irrespective of specific direction) with + * HB_DIRECTION_IS_HORIZONTAL() or HB_DIRECTION_IS_VERTICAL(). + * + */ +typedef enum { + HB_DIRECTION_INVALID = 0, + HB_DIRECTION_LTR = 4, + HB_DIRECTION_RTL, + HB_DIRECTION_TTB, + HB_DIRECTION_BTT +} hb_direction_t; + +/* len=-1 means str is NUL-terminated */ +HB_EXTERN hb_direction_t +hb_direction_from_string (const char *str, int len); + +HB_EXTERN const char * +hb_direction_to_string (hb_direction_t direction); + +/** + * HB_DIRECTION_IS_VALID: + * @dir: #hb_direction_t to test + * + * Tests whether a text direction is valid. + * + **/ +#define HB_DIRECTION_IS_VALID(dir) ((((unsigned int) (dir)) & ~3U) == 4) +/* Direction must be valid for the following */ +/** + * HB_DIRECTION_IS_HORIZONTAL: + * @dir: #hb_direction_t to test + * + * Tests whether a text direction is horizontal. Requires + * that the direction be valid. + * + **/ +#define HB_DIRECTION_IS_HORIZONTAL(dir) ((((unsigned int) (dir)) & ~1U) == 4) +/** + * HB_DIRECTION_IS_VERTICAL: + * @dir: #hb_direction_t to test + * + * Tests whether a text direction is vertical. Requires + * that the direction be valid. + * + **/ +#define HB_DIRECTION_IS_VERTICAL(dir) ((((unsigned int) (dir)) & ~1U) == 6) +/** + * HB_DIRECTION_IS_FORWARD: + * @dir: #hb_direction_t to test + * + * Tests whether a text direction moves forward (from left to right, or from + * top to bottom). Requires that the direction be valid. + * + **/ +#define HB_DIRECTION_IS_FORWARD(dir) ((((unsigned int) (dir)) & ~2U) == 4) +/** + * HB_DIRECTION_IS_BACKWARD: + * @dir: #hb_direction_t to test + * + * Tests whether a text direction moves backward (from right to left, or from + * bottom to top). Requires that the direction be valid. + * + **/ +#define HB_DIRECTION_IS_BACKWARD(dir) ((((unsigned int) (dir)) & ~2U) == 5) +/** + * HB_DIRECTION_REVERSE: + * @dir: #hb_direction_t to reverse + * + * Reverses a text direction. Requires that the direction + * be valid. + * + **/ +#define HB_DIRECTION_REVERSE(dir) ((hb_direction_t) (((unsigned int) (dir)) ^ 1)) + + +/* hb_language_t */ + +/** + * hb_language_t: + * + * Data type for languages. Each #hb_language_t corresponds to a BCP 47 + * language tag. + * + */ +typedef const struct hb_language_impl_t *hb_language_t; + +HB_EXTERN hb_language_t +hb_language_from_string (const char *str, int len); + +HB_EXTERN const char * +hb_language_to_string (hb_language_t language); + +/** + * HB_LANGUAGE_INVALID: + * + * An unset #hb_language_t. + * + * Since: 0.6.0 + */ +#define HB_LANGUAGE_INVALID ((hb_language_t) 0) + +HB_EXTERN hb_language_t +hb_language_get_default (void); + +HB_EXTERN hb_bool_t +hb_language_matches (hb_language_t language, + hb_language_t specific); + +/** + * hb_script_t: + * @HB_SCRIPT_COMMON: `Zyyy` + * @HB_SCRIPT_INHERITED: `Zinh` + * @HB_SCRIPT_UNKNOWN: `Zzzz` + * @HB_SCRIPT_ARABIC: `Arab` + * @HB_SCRIPT_ARMENIAN: `Armn` + * @HB_SCRIPT_BENGALI: `Beng` + * @HB_SCRIPT_CYRILLIC: `Cyrl` + * @HB_SCRIPT_DEVANAGARI: `Deva` + * @HB_SCRIPT_GEORGIAN: `Geor` + * @HB_SCRIPT_GREEK: `Grek` + * @HB_SCRIPT_GUJARATI: `Gujr` + * @HB_SCRIPT_GURMUKHI: `Guru` + * @HB_SCRIPT_HANGUL: `Hang` + * @HB_SCRIPT_HAN: `Hani` + * @HB_SCRIPT_HEBREW: `Hebr` + * @HB_SCRIPT_HIRAGANA: `Hira` + * @HB_SCRIPT_KANNADA: `Knda` + * @HB_SCRIPT_KATAKANA: `Kana` + * @HB_SCRIPT_LAO: `Laoo` + * @HB_SCRIPT_LATIN: `Latn` + * @HB_SCRIPT_MALAYALAM: `Mlym` + * @HB_SCRIPT_ORIYA: `Orya` + * @HB_SCRIPT_TAMIL: `Taml` + * @HB_SCRIPT_TELUGU: `Telu` + * @HB_SCRIPT_THAI: `Thai` + * @HB_SCRIPT_TIBETAN: `Tibt` + * @HB_SCRIPT_BOPOMOFO: `Bopo` + * @HB_SCRIPT_BRAILLE: `Brai` + * @HB_SCRIPT_CANADIAN_SYLLABICS: `Cans` + * @HB_SCRIPT_CHEROKEE: `Cher` + * @HB_SCRIPT_ETHIOPIC: `Ethi` + * @HB_SCRIPT_KHMER: `Khmr` + * @HB_SCRIPT_MONGOLIAN: `Mong` + * @HB_SCRIPT_MYANMAR: `Mymr` + * @HB_SCRIPT_OGHAM: `Ogam` + * @HB_SCRIPT_RUNIC: `Runr` + * @HB_SCRIPT_SINHALA: `Sinh` + * @HB_SCRIPT_SYRIAC: `Syrc` + * @HB_SCRIPT_THAANA: `Thaa` + * @HB_SCRIPT_YI: `Yiii` + * @HB_SCRIPT_DESERET: `Dsrt` + * @HB_SCRIPT_GOTHIC: `Goth` + * @HB_SCRIPT_OLD_ITALIC: `Ital` + * @HB_SCRIPT_BUHID: `Buhd` + * @HB_SCRIPT_HANUNOO: `Hano` + * @HB_SCRIPT_TAGALOG: `Tglg` + * @HB_SCRIPT_TAGBANWA: `Tagb` + * @HB_SCRIPT_CYPRIOT: `Cprt` + * @HB_SCRIPT_LIMBU: `Limb` + * @HB_SCRIPT_LINEAR_B: `Linb` + * @HB_SCRIPT_OSMANYA: `Osma` + * @HB_SCRIPT_SHAVIAN: `Shaw` + * @HB_SCRIPT_TAI_LE: `Tale` + * @HB_SCRIPT_UGARITIC: `Ugar` + * @HB_SCRIPT_BUGINESE: `Bugi` + * @HB_SCRIPT_COPTIC: `Copt` + * @HB_SCRIPT_GLAGOLITIC: `Glag` + * @HB_SCRIPT_KHAROSHTHI: `Khar` + * @HB_SCRIPT_NEW_TAI_LUE: `Talu` + * @HB_SCRIPT_OLD_PERSIAN: `Xpeo` + * @HB_SCRIPT_SYLOTI_NAGRI: `Sylo` + * @HB_SCRIPT_TIFINAGH: `Tfng` + * @HB_SCRIPT_BALINESE: `Bali` + * @HB_SCRIPT_CUNEIFORM: `Xsux` + * @HB_SCRIPT_NKO: `Nkoo` + * @HB_SCRIPT_PHAGS_PA: `Phag` + * @HB_SCRIPT_PHOENICIAN: `Phnx` + * @HB_SCRIPT_CARIAN: `Cari` + * @HB_SCRIPT_CHAM: `Cham` + * @HB_SCRIPT_KAYAH_LI: `Kali` + * @HB_SCRIPT_LEPCHA: `Lepc` + * @HB_SCRIPT_LYCIAN: `Lyci` + * @HB_SCRIPT_LYDIAN: `Lydi` + * @HB_SCRIPT_OL_CHIKI: `Olck` + * @HB_SCRIPT_REJANG: `Rjng` + * @HB_SCRIPT_SAURASHTRA: `Saur` + * @HB_SCRIPT_SUNDANESE: `Sund` + * @HB_SCRIPT_VAI: `Vaii` + * @HB_SCRIPT_AVESTAN: `Avst` + * @HB_SCRIPT_BAMUM: `Bamu` + * @HB_SCRIPT_EGYPTIAN_HIEROGLYPHS: `Egyp` + * @HB_SCRIPT_IMPERIAL_ARAMAIC: `Armi` + * @HB_SCRIPT_INSCRIPTIONAL_PAHLAVI: `Phli` + * @HB_SCRIPT_INSCRIPTIONAL_PARTHIAN: `Prti` + * @HB_SCRIPT_JAVANESE: `Java` + * @HB_SCRIPT_KAITHI: `Kthi` + * @HB_SCRIPT_LISU: `Lisu` + * @HB_SCRIPT_MEETEI_MAYEK: `Mtei` + * @HB_SCRIPT_OLD_SOUTH_ARABIAN: `Sarb` + * @HB_SCRIPT_OLD_TURKIC: `Orkh` + * @HB_SCRIPT_SAMARITAN: `Samr` + * @HB_SCRIPT_TAI_THAM: `Lana` + * @HB_SCRIPT_TAI_VIET: `Tavt` + * @HB_SCRIPT_BATAK: `Batk` + * @HB_SCRIPT_BRAHMI: `Brah` + * @HB_SCRIPT_MANDAIC: `Mand` + * @HB_SCRIPT_CHAKMA: `Cakm` + * @HB_SCRIPT_MEROITIC_CURSIVE: `Merc` + * @HB_SCRIPT_MEROITIC_HIEROGLYPHS: `Mero` + * @HB_SCRIPT_MIAO: `Plrd` + * @HB_SCRIPT_SHARADA: `Shrd` + * @HB_SCRIPT_SORA_SOMPENG: `Sora` + * @HB_SCRIPT_TAKRI: `Takr` + * @HB_SCRIPT_BASSA_VAH: `Bass`, Since: 0.9.30 + * @HB_SCRIPT_CAUCASIAN_ALBANIAN: `Aghb`, Since: 0.9.30 + * @HB_SCRIPT_DUPLOYAN: `Dupl`, Since: 0.9.30 + * @HB_SCRIPT_ELBASAN: `Elba`, Since: 0.9.30 + * @HB_SCRIPT_GRANTHA: `Gran`, Since: 0.9.30 + * @HB_SCRIPT_KHOJKI: `Khoj`, Since: 0.9.30 + * @HB_SCRIPT_KHUDAWADI: `Sind`, Since: 0.9.30 + * @HB_SCRIPT_LINEAR_A: `Lina`, Since: 0.9.30 + * @HB_SCRIPT_MAHAJANI: `Mahj`, Since: 0.9.30 + * @HB_SCRIPT_MANICHAEAN: `Mani`, Since: 0.9.30 + * @HB_SCRIPT_MENDE_KIKAKUI: `Mend`, Since: 0.9.30 + * @HB_SCRIPT_MODI: `Modi`, Since: 0.9.30 + * @HB_SCRIPT_MRO: `Mroo`, Since: 0.9.30 + * @HB_SCRIPT_NABATAEAN: `Nbat`, Since: 0.9.30 + * @HB_SCRIPT_OLD_NORTH_ARABIAN: `Narb`, Since: 0.9.30 + * @HB_SCRIPT_OLD_PERMIC: `Perm`, Since: 0.9.30 + * @HB_SCRIPT_PAHAWH_HMONG: `Hmng`, Since: 0.9.30 + * @HB_SCRIPT_PALMYRENE: `Palm`, Since: 0.9.30 + * @HB_SCRIPT_PAU_CIN_HAU: `Pauc`, Since: 0.9.30 + * @HB_SCRIPT_PSALTER_PAHLAVI: `Phlp`, Since: 0.9.30 + * @HB_SCRIPT_SIDDHAM: `Sidd`, Since: 0.9.30 + * @HB_SCRIPT_TIRHUTA: `Tirh`, Since: 0.9.30 + * @HB_SCRIPT_WARANG_CITI: `Wara`, Since: 0.9.30 + * @HB_SCRIPT_AHOM: `Ahom`, Since: 0.9.30 + * @HB_SCRIPT_ANATOLIAN_HIEROGLYPHS: `Hluw`, Since: 0.9.30 + * @HB_SCRIPT_HATRAN: `Hatr`, Since: 0.9.30 + * @HB_SCRIPT_MULTANI: `Mult`, Since: 0.9.30 + * @HB_SCRIPT_OLD_HUNGARIAN: `Hung`, Since: 0.9.30 + * @HB_SCRIPT_SIGNWRITING: `Sgnw`, Since: 0.9.30 + * @HB_SCRIPT_ADLAM: `Adlm`, Since: 1.3.0 + * @HB_SCRIPT_BHAIKSUKI: `Bhks`, Since: 1.3.0 + * @HB_SCRIPT_MARCHEN: `Marc`, Since: 1.3.0 + * @HB_SCRIPT_OSAGE: `Osge`, Since: 1.3.0 + * @HB_SCRIPT_TANGUT: `Tang`, Since: 1.3.0 + * @HB_SCRIPT_NEWA: `Newa`, Since: 1.3.0 + * @HB_SCRIPT_MASARAM_GONDI: `Gonm`, Since: 1.6.0 + * @HB_SCRIPT_NUSHU: `Nshu`, Since: 1.6.0 + * @HB_SCRIPT_SOYOMBO: `Soyo`, Since: 1.6.0 + * @HB_SCRIPT_ZANABAZAR_SQUARE: `Zanb`, Since: 1.6.0 + * @HB_SCRIPT_DOGRA: `Dogr`, Since: 1.8.0 + * @HB_SCRIPT_GUNJALA_GONDI: `Gong`, Since: 1.8.0 + * @HB_SCRIPT_HANIFI_ROHINGYA: `Rohg`, Since: 1.8.0 + * @HB_SCRIPT_MAKASAR: `Maka`, Since: 1.8.0 + * @HB_SCRIPT_MEDEFAIDRIN: `Medf`, Since: 1.8.0 + * @HB_SCRIPT_OLD_SOGDIAN: `Sogo`, Since: 1.8.0 + * @HB_SCRIPT_SOGDIAN: `Sogd`, Since: 1.8.0 + * @HB_SCRIPT_ELYMAIC: `Elym`, Since: 2.4.0 + * @HB_SCRIPT_NANDINAGARI: `Nand`, Since: 2.4.0 + * @HB_SCRIPT_NYIAKENG_PUACHUE_HMONG: `Hmnp`, Since: 2.4.0 + * @HB_SCRIPT_WANCHO: `Wcho`, Since: 2.4.0 + * @HB_SCRIPT_CHORASMIAN: `Chrs`, Since: 2.6.7 + * @HB_SCRIPT_DIVES_AKURU: `Diak`, Since: 2.6.7 + * @HB_SCRIPT_KHITAN_SMALL_SCRIPT: `Kits`, Since: 2.6.7 + * @HB_SCRIPT_YEZIDI: `Yezi`, Since: 2.6.7 + * @HB_SCRIPT_CYPRO_MINOAN: `Cpmn`, Since: 3.0.0 + * @HB_SCRIPT_OLD_UYGHUR: `Ougr`, Since: 3.0.0 + * @HB_SCRIPT_TANGSA: `Tnsa`, Since: 3.0.0 + * @HB_SCRIPT_TOTO: `Toto`, Since: 3.0.0 + * @HB_SCRIPT_VITHKUQI: `Vith`, Since: 3.0.0 + * @HB_SCRIPT_MATH: `Zmth`, Since: 3.4.0 + * @HB_SCRIPT_KAWI: `Kawi`, Since: 5.2.0 + * @HB_SCRIPT_NAG_MUNDARI: `Nagm`, Since: 5.2.0 + * @HB_SCRIPT_INVALID: No script set + * + * Data type for scripts. Each #hb_script_t's value is an #hb_tag_t corresponding + * to the four-letter values defined by [ISO 15924](https://unicode.org/iso15924/). + * + * See also the Script (sc) property of the Unicode Character Database. + * + **/ + +/* https://docs.google.com/spreadsheets/d/1Y90M0Ie3MUJ6UVCRDOypOtijlMDLNNyyLk36T6iMu0o */ +typedef enum +{ + HB_SCRIPT_COMMON = HB_TAG ('Z','y','y','y'), /*1.1*/ + HB_SCRIPT_INHERITED = HB_TAG ('Z','i','n','h'), /*1.1*/ + HB_SCRIPT_UNKNOWN = HB_TAG ('Z','z','z','z'), /*5.0*/ + + HB_SCRIPT_ARABIC = HB_TAG ('A','r','a','b'), /*1.1*/ + HB_SCRIPT_ARMENIAN = HB_TAG ('A','r','m','n'), /*1.1*/ + HB_SCRIPT_BENGALI = HB_TAG ('B','e','n','g'), /*1.1*/ + HB_SCRIPT_CYRILLIC = HB_TAG ('C','y','r','l'), /*1.1*/ + HB_SCRIPT_DEVANAGARI = HB_TAG ('D','e','v','a'), /*1.1*/ + HB_SCRIPT_GEORGIAN = HB_TAG ('G','e','o','r'), /*1.1*/ + HB_SCRIPT_GREEK = HB_TAG ('G','r','e','k'), /*1.1*/ + HB_SCRIPT_GUJARATI = HB_TAG ('G','u','j','r'), /*1.1*/ + HB_SCRIPT_GURMUKHI = HB_TAG ('G','u','r','u'), /*1.1*/ + HB_SCRIPT_HANGUL = HB_TAG ('H','a','n','g'), /*1.1*/ + HB_SCRIPT_HAN = HB_TAG ('H','a','n','i'), /*1.1*/ + HB_SCRIPT_HEBREW = HB_TAG ('H','e','b','r'), /*1.1*/ + HB_SCRIPT_HIRAGANA = HB_TAG ('H','i','r','a'), /*1.1*/ + HB_SCRIPT_KANNADA = HB_TAG ('K','n','d','a'), /*1.1*/ + HB_SCRIPT_KATAKANA = HB_TAG ('K','a','n','a'), /*1.1*/ + HB_SCRIPT_LAO = HB_TAG ('L','a','o','o'), /*1.1*/ + HB_SCRIPT_LATIN = HB_TAG ('L','a','t','n'), /*1.1*/ + HB_SCRIPT_MALAYALAM = HB_TAG ('M','l','y','m'), /*1.1*/ + HB_SCRIPT_ORIYA = HB_TAG ('O','r','y','a'), /*1.1*/ + HB_SCRIPT_TAMIL = HB_TAG ('T','a','m','l'), /*1.1*/ + HB_SCRIPT_TELUGU = HB_TAG ('T','e','l','u'), /*1.1*/ + HB_SCRIPT_THAI = HB_TAG ('T','h','a','i'), /*1.1*/ + + HB_SCRIPT_TIBETAN = HB_TAG ('T','i','b','t'), /*2.0*/ + + HB_SCRIPT_BOPOMOFO = HB_TAG ('B','o','p','o'), /*3.0*/ + HB_SCRIPT_BRAILLE = HB_TAG ('B','r','a','i'), /*3.0*/ + HB_SCRIPT_CANADIAN_SYLLABICS = HB_TAG ('C','a','n','s'), /*3.0*/ + HB_SCRIPT_CHEROKEE = HB_TAG ('C','h','e','r'), /*3.0*/ + HB_SCRIPT_ETHIOPIC = HB_TAG ('E','t','h','i'), /*3.0*/ + HB_SCRIPT_KHMER = HB_TAG ('K','h','m','r'), /*3.0*/ + HB_SCRIPT_MONGOLIAN = HB_TAG ('M','o','n','g'), /*3.0*/ + HB_SCRIPT_MYANMAR = HB_TAG ('M','y','m','r'), /*3.0*/ + HB_SCRIPT_OGHAM = HB_TAG ('O','g','a','m'), /*3.0*/ + HB_SCRIPT_RUNIC = HB_TAG ('R','u','n','r'), /*3.0*/ + HB_SCRIPT_SINHALA = HB_TAG ('S','i','n','h'), /*3.0*/ + HB_SCRIPT_SYRIAC = HB_TAG ('S','y','r','c'), /*3.0*/ + HB_SCRIPT_THAANA = HB_TAG ('T','h','a','a'), /*3.0*/ + HB_SCRIPT_YI = HB_TAG ('Y','i','i','i'), /*3.0*/ + + HB_SCRIPT_DESERET = HB_TAG ('D','s','r','t'), /*3.1*/ + HB_SCRIPT_GOTHIC = HB_TAG ('G','o','t','h'), /*3.1*/ + HB_SCRIPT_OLD_ITALIC = HB_TAG ('I','t','a','l'), /*3.1*/ + + HB_SCRIPT_BUHID = HB_TAG ('B','u','h','d'), /*3.2*/ + HB_SCRIPT_HANUNOO = HB_TAG ('H','a','n','o'), /*3.2*/ + HB_SCRIPT_TAGALOG = HB_TAG ('T','g','l','g'), /*3.2*/ + HB_SCRIPT_TAGBANWA = HB_TAG ('T','a','g','b'), /*3.2*/ + + HB_SCRIPT_CYPRIOT = HB_TAG ('C','p','r','t'), /*4.0*/ + HB_SCRIPT_LIMBU = HB_TAG ('L','i','m','b'), /*4.0*/ + HB_SCRIPT_LINEAR_B = HB_TAG ('L','i','n','b'), /*4.0*/ + HB_SCRIPT_OSMANYA = HB_TAG ('O','s','m','a'), /*4.0*/ + HB_SCRIPT_SHAVIAN = HB_TAG ('S','h','a','w'), /*4.0*/ + HB_SCRIPT_TAI_LE = HB_TAG ('T','a','l','e'), /*4.0*/ + HB_SCRIPT_UGARITIC = HB_TAG ('U','g','a','r'), /*4.0*/ + + HB_SCRIPT_BUGINESE = HB_TAG ('B','u','g','i'), /*4.1*/ + HB_SCRIPT_COPTIC = HB_TAG ('C','o','p','t'), /*4.1*/ + HB_SCRIPT_GLAGOLITIC = HB_TAG ('G','l','a','g'), /*4.1*/ + HB_SCRIPT_KHAROSHTHI = HB_TAG ('K','h','a','r'), /*4.1*/ + HB_SCRIPT_NEW_TAI_LUE = HB_TAG ('T','a','l','u'), /*4.1*/ + HB_SCRIPT_OLD_PERSIAN = HB_TAG ('X','p','e','o'), /*4.1*/ + HB_SCRIPT_SYLOTI_NAGRI = HB_TAG ('S','y','l','o'), /*4.1*/ + HB_SCRIPT_TIFINAGH = HB_TAG ('T','f','n','g'), /*4.1*/ + + HB_SCRIPT_BALINESE = HB_TAG ('B','a','l','i'), /*5.0*/ + HB_SCRIPT_CUNEIFORM = HB_TAG ('X','s','u','x'), /*5.0*/ + HB_SCRIPT_NKO = HB_TAG ('N','k','o','o'), /*5.0*/ + HB_SCRIPT_PHAGS_PA = HB_TAG ('P','h','a','g'), /*5.0*/ + HB_SCRIPT_PHOENICIAN = HB_TAG ('P','h','n','x'), /*5.0*/ + + HB_SCRIPT_CARIAN = HB_TAG ('C','a','r','i'), /*5.1*/ + HB_SCRIPT_CHAM = HB_TAG ('C','h','a','m'), /*5.1*/ + HB_SCRIPT_KAYAH_LI = HB_TAG ('K','a','l','i'), /*5.1*/ + HB_SCRIPT_LEPCHA = HB_TAG ('L','e','p','c'), /*5.1*/ + HB_SCRIPT_LYCIAN = HB_TAG ('L','y','c','i'), /*5.1*/ + HB_SCRIPT_LYDIAN = HB_TAG ('L','y','d','i'), /*5.1*/ + HB_SCRIPT_OL_CHIKI = HB_TAG ('O','l','c','k'), /*5.1*/ + HB_SCRIPT_REJANG = HB_TAG ('R','j','n','g'), /*5.1*/ + HB_SCRIPT_SAURASHTRA = HB_TAG ('S','a','u','r'), /*5.1*/ + HB_SCRIPT_SUNDANESE = HB_TAG ('S','u','n','d'), /*5.1*/ + HB_SCRIPT_VAI = HB_TAG ('V','a','i','i'), /*5.1*/ + + HB_SCRIPT_AVESTAN = HB_TAG ('A','v','s','t'), /*5.2*/ + HB_SCRIPT_BAMUM = HB_TAG ('B','a','m','u'), /*5.2*/ + HB_SCRIPT_EGYPTIAN_HIEROGLYPHS = HB_TAG ('E','g','y','p'), /*5.2*/ + HB_SCRIPT_IMPERIAL_ARAMAIC = HB_TAG ('A','r','m','i'), /*5.2*/ + HB_SCRIPT_INSCRIPTIONAL_PAHLAVI = HB_TAG ('P','h','l','i'), /*5.2*/ + HB_SCRIPT_INSCRIPTIONAL_PARTHIAN = HB_TAG ('P','r','t','i'), /*5.2*/ + HB_SCRIPT_JAVANESE = HB_TAG ('J','a','v','a'), /*5.2*/ + HB_SCRIPT_KAITHI = HB_TAG ('K','t','h','i'), /*5.2*/ + HB_SCRIPT_LISU = HB_TAG ('L','i','s','u'), /*5.2*/ + HB_SCRIPT_MEETEI_MAYEK = HB_TAG ('M','t','e','i'), /*5.2*/ + HB_SCRIPT_OLD_SOUTH_ARABIAN = HB_TAG ('S','a','r','b'), /*5.2*/ + HB_SCRIPT_OLD_TURKIC = HB_TAG ('O','r','k','h'), /*5.2*/ + HB_SCRIPT_SAMARITAN = HB_TAG ('S','a','m','r'), /*5.2*/ + HB_SCRIPT_TAI_THAM = HB_TAG ('L','a','n','a'), /*5.2*/ + HB_SCRIPT_TAI_VIET = HB_TAG ('T','a','v','t'), /*5.2*/ + + HB_SCRIPT_BATAK = HB_TAG ('B','a','t','k'), /*6.0*/ + HB_SCRIPT_BRAHMI = HB_TAG ('B','r','a','h'), /*6.0*/ + HB_SCRIPT_MANDAIC = HB_TAG ('M','a','n','d'), /*6.0*/ + + HB_SCRIPT_CHAKMA = HB_TAG ('C','a','k','m'), /*6.1*/ + HB_SCRIPT_MEROITIC_CURSIVE = HB_TAG ('M','e','r','c'), /*6.1*/ + HB_SCRIPT_MEROITIC_HIEROGLYPHS = HB_TAG ('M','e','r','o'), /*6.1*/ + HB_SCRIPT_MIAO = HB_TAG ('P','l','r','d'), /*6.1*/ + HB_SCRIPT_SHARADA = HB_TAG ('S','h','r','d'), /*6.1*/ + HB_SCRIPT_SORA_SOMPENG = HB_TAG ('S','o','r','a'), /*6.1*/ + HB_SCRIPT_TAKRI = HB_TAG ('T','a','k','r'), /*6.1*/ + + /* + * Since: 0.9.30 + */ + HB_SCRIPT_BASSA_VAH = HB_TAG ('B','a','s','s'), /*7.0*/ + HB_SCRIPT_CAUCASIAN_ALBANIAN = HB_TAG ('A','g','h','b'), /*7.0*/ + HB_SCRIPT_DUPLOYAN = HB_TAG ('D','u','p','l'), /*7.0*/ + HB_SCRIPT_ELBASAN = HB_TAG ('E','l','b','a'), /*7.0*/ + HB_SCRIPT_GRANTHA = HB_TAG ('G','r','a','n'), /*7.0*/ + HB_SCRIPT_KHOJKI = HB_TAG ('K','h','o','j'), /*7.0*/ + HB_SCRIPT_KHUDAWADI = HB_TAG ('S','i','n','d'), /*7.0*/ + HB_SCRIPT_LINEAR_A = HB_TAG ('L','i','n','a'), /*7.0*/ + HB_SCRIPT_MAHAJANI = HB_TAG ('M','a','h','j'), /*7.0*/ + HB_SCRIPT_MANICHAEAN = HB_TAG ('M','a','n','i'), /*7.0*/ + HB_SCRIPT_MENDE_KIKAKUI = HB_TAG ('M','e','n','d'), /*7.0*/ + HB_SCRIPT_MODI = HB_TAG ('M','o','d','i'), /*7.0*/ + HB_SCRIPT_MRO = HB_TAG ('M','r','o','o'), /*7.0*/ + HB_SCRIPT_NABATAEAN = HB_TAG ('N','b','a','t'), /*7.0*/ + HB_SCRIPT_OLD_NORTH_ARABIAN = HB_TAG ('N','a','r','b'), /*7.0*/ + HB_SCRIPT_OLD_PERMIC = HB_TAG ('P','e','r','m'), /*7.0*/ + HB_SCRIPT_PAHAWH_HMONG = HB_TAG ('H','m','n','g'), /*7.0*/ + HB_SCRIPT_PALMYRENE = HB_TAG ('P','a','l','m'), /*7.0*/ + HB_SCRIPT_PAU_CIN_HAU = HB_TAG ('P','a','u','c'), /*7.0*/ + HB_SCRIPT_PSALTER_PAHLAVI = HB_TAG ('P','h','l','p'), /*7.0*/ + HB_SCRIPT_SIDDHAM = HB_TAG ('S','i','d','d'), /*7.0*/ + HB_SCRIPT_TIRHUTA = HB_TAG ('T','i','r','h'), /*7.0*/ + HB_SCRIPT_WARANG_CITI = HB_TAG ('W','a','r','a'), /*7.0*/ + + HB_SCRIPT_AHOM = HB_TAG ('A','h','o','m'), /*8.0*/ + HB_SCRIPT_ANATOLIAN_HIEROGLYPHS = HB_TAG ('H','l','u','w'), /*8.0*/ + HB_SCRIPT_HATRAN = HB_TAG ('H','a','t','r'), /*8.0*/ + HB_SCRIPT_MULTANI = HB_TAG ('M','u','l','t'), /*8.0*/ + HB_SCRIPT_OLD_HUNGARIAN = HB_TAG ('H','u','n','g'), /*8.0*/ + HB_SCRIPT_SIGNWRITING = HB_TAG ('S','g','n','w'), /*8.0*/ + + /* + * Since 1.3.0 + */ + HB_SCRIPT_ADLAM = HB_TAG ('A','d','l','m'), /*9.0*/ + HB_SCRIPT_BHAIKSUKI = HB_TAG ('B','h','k','s'), /*9.0*/ + HB_SCRIPT_MARCHEN = HB_TAG ('M','a','r','c'), /*9.0*/ + HB_SCRIPT_OSAGE = HB_TAG ('O','s','g','e'), /*9.0*/ + HB_SCRIPT_TANGUT = HB_TAG ('T','a','n','g'), /*9.0*/ + HB_SCRIPT_NEWA = HB_TAG ('N','e','w','a'), /*9.0*/ + + /* + * Since 1.6.0 + */ + HB_SCRIPT_MASARAM_GONDI = HB_TAG ('G','o','n','m'), /*10.0*/ + HB_SCRIPT_NUSHU = HB_TAG ('N','s','h','u'), /*10.0*/ + HB_SCRIPT_SOYOMBO = HB_TAG ('S','o','y','o'), /*10.0*/ + HB_SCRIPT_ZANABAZAR_SQUARE = HB_TAG ('Z','a','n','b'), /*10.0*/ + + /* + * Since 1.8.0 + */ + HB_SCRIPT_DOGRA = HB_TAG ('D','o','g','r'), /*11.0*/ + HB_SCRIPT_GUNJALA_GONDI = HB_TAG ('G','o','n','g'), /*11.0*/ + HB_SCRIPT_HANIFI_ROHINGYA = HB_TAG ('R','o','h','g'), /*11.0*/ + HB_SCRIPT_MAKASAR = HB_TAG ('M','a','k','a'), /*11.0*/ + HB_SCRIPT_MEDEFAIDRIN = HB_TAG ('M','e','d','f'), /*11.0*/ + HB_SCRIPT_OLD_SOGDIAN = HB_TAG ('S','o','g','o'), /*11.0*/ + HB_SCRIPT_SOGDIAN = HB_TAG ('S','o','g','d'), /*11.0*/ + + /* + * Since 2.4.0 + */ + HB_SCRIPT_ELYMAIC = HB_TAG ('E','l','y','m'), /*12.0*/ + HB_SCRIPT_NANDINAGARI = HB_TAG ('N','a','n','d'), /*12.0*/ + HB_SCRIPT_NYIAKENG_PUACHUE_HMONG = HB_TAG ('H','m','n','p'), /*12.0*/ + HB_SCRIPT_WANCHO = HB_TAG ('W','c','h','o'), /*12.0*/ + + /* + * Since 2.6.7 + */ + HB_SCRIPT_CHORASMIAN = HB_TAG ('C','h','r','s'), /*13.0*/ + HB_SCRIPT_DIVES_AKURU = HB_TAG ('D','i','a','k'), /*13.0*/ + HB_SCRIPT_KHITAN_SMALL_SCRIPT = HB_TAG ('K','i','t','s'), /*13.0*/ + HB_SCRIPT_YEZIDI = HB_TAG ('Y','e','z','i'), /*13.0*/ + + /* + * Since 3.0.0 + */ + HB_SCRIPT_CYPRO_MINOAN = HB_TAG ('C','p','m','n'), /*14.0*/ + HB_SCRIPT_OLD_UYGHUR = HB_TAG ('O','u','g','r'), /*14.0*/ + HB_SCRIPT_TANGSA = HB_TAG ('T','n','s','a'), /*14.0*/ + HB_SCRIPT_TOTO = HB_TAG ('T','o','t','o'), /*14.0*/ + HB_SCRIPT_VITHKUQI = HB_TAG ('V','i','t','h'), /*14.0*/ + + /* + * Since 3.4.0 + */ + HB_SCRIPT_MATH = HB_TAG ('Z','m','t','h'), + + /* + * Since 5.2.0 + */ + HB_SCRIPT_KAWI = HB_TAG ('K','a','w','i'), /*15.0*/ + HB_SCRIPT_NAG_MUNDARI = HB_TAG ('N','a','g','m'), /*15.0*/ + + /* No script set. */ + HB_SCRIPT_INVALID = HB_TAG_NONE, + + /*< private >*/ + + /* Dummy values to ensure any hb_tag_t value can be passed/stored as hb_script_t + * without risking undefined behavior. We have two, for historical reasons. + * HB_TAG_MAX used to be unsigned, but that was invalid Ansi C, so was changed + * to _HB_SCRIPT_MAX_VALUE to be equal to HB_TAG_MAX_SIGNED as well. + * + * See this thread for technicalities: + * + * https://lists.freedesktop.org/archives/harfbuzz/2014-March/004150.html + */ + _HB_SCRIPT_MAX_VALUE = HB_TAG_MAX_SIGNED, /*< skip >*/ + _HB_SCRIPT_MAX_VALUE_SIGNED = HB_TAG_MAX_SIGNED /*< skip >*/ + +} hb_script_t; + + +/* Script functions */ + +HB_EXTERN hb_script_t +hb_script_from_iso15924_tag (hb_tag_t tag); + +HB_EXTERN hb_script_t +hb_script_from_string (const char *str, int len); + +HB_EXTERN hb_tag_t +hb_script_to_iso15924_tag (hb_script_t script); + +HB_EXTERN hb_direction_t +hb_script_get_horizontal_direction (hb_script_t script); + + +/* User data */ + +/** + * hb_user_data_key_t: + * + * Data structure for holding user-data keys. + * + **/ +typedef struct hb_user_data_key_t { + /*< private >*/ + char unused; +} hb_user_data_key_t; + +/** + * hb_destroy_func_t: + * @user_data: the data to be destroyed + * + * A virtual method for destroy user-data callbacks. + * + */ +typedef void (*hb_destroy_func_t) (void *user_data); + + +/* Font features and variations. */ + +/** + * HB_FEATURE_GLOBAL_START: + * + * Special setting for #hb_feature_t.start to apply the feature from the start + * of the buffer. + * + * Since: 2.0.0 + */ +#define HB_FEATURE_GLOBAL_START 0 + +/** + * HB_FEATURE_GLOBAL_END: + * + * Special setting for #hb_feature_t.end to apply the feature from to the end + * of the buffer. + * + * Since: 2.0.0 + */ +#define HB_FEATURE_GLOBAL_END ((unsigned int) -1) + +/** + * hb_feature_t: + * @tag: The #hb_tag_t tag of the feature + * @value: The value of the feature. 0 disables the feature, non-zero (usually + * 1) enables the feature. For features implemented as lookup type 3 (like + * 'salt') the @value is a one based index into the alternates. + * @start: the cluster to start applying this feature setting (inclusive). + * @end: the cluster to end applying this feature setting (exclusive). + * + * The #hb_feature_t is the structure that holds information about requested + * feature application. The feature will be applied with the given value to all + * glyphs which are in clusters between @start (inclusive) and @end (exclusive). + * Setting start to #HB_FEATURE_GLOBAL_START and end to #HB_FEATURE_GLOBAL_END + * specifies that the feature always applies to the entire buffer. + */ +typedef struct hb_feature_t { + hb_tag_t tag; + uint32_t value; + unsigned int start; + unsigned int end; +} hb_feature_t; + +HB_EXTERN hb_bool_t +hb_feature_from_string (const char *str, int len, + hb_feature_t *feature); + +HB_EXTERN void +hb_feature_to_string (hb_feature_t *feature, + char *buf, unsigned int size); + +/** + * hb_variation_t: + * @tag: The #hb_tag_t tag of the variation-axis name + * @value: The value of the variation axis + * + * Data type for holding variation data. Registered OpenType + * variation-axis tags are listed in + * [OpenType Axis Tag Registry](https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg). + * + * Since: 1.4.2 + */ +typedef struct hb_variation_t { + hb_tag_t tag; + float value; +} hb_variation_t; + +HB_EXTERN hb_bool_t +hb_variation_from_string (const char *str, int len, + hb_variation_t *variation); + +HB_EXTERN void +hb_variation_to_string (hb_variation_t *variation, + char *buf, unsigned int size); + +/** + * hb_color_t: + * + * Data type for holding color values. Colors are eight bits per + * channel RGB plus alpha transparency. + * + * Since: 2.1.0 + */ +typedef uint32_t hb_color_t; + +/** + * HB_COLOR: + * @b: blue channel value + * @g: green channel value + * @r: red channel value + * @a: alpha channel value + * + * Constructs an #hb_color_t from four integers. + * + * Since: 2.1.0 + */ +#define HB_COLOR(b,g,r,a) ((hb_color_t) HB_TAG ((b),(g),(r),(a))) + +HB_EXTERN uint8_t +hb_color_get_alpha (hb_color_t color); +#define hb_color_get_alpha(color) ((color) & 0xFF) + +HB_EXTERN uint8_t +hb_color_get_red (hb_color_t color); +#define hb_color_get_red(color) (((color) >> 8) & 0xFF) + +HB_EXTERN uint8_t +hb_color_get_green (hb_color_t color); +#define hb_color_get_green(color) (((color) >> 16) & 0xFF) + +HB_EXTERN uint8_t +hb_color_get_blue (hb_color_t color); +#define hb_color_get_blue(color) (((color) >> 24) & 0xFF) + +HB_END_DECLS + +#endif /* HB_COMMON_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-coretext.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-coretext.h new file mode 100644 index 0000000..e53dbaf --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-coretext.h @@ -0,0 +1,96 @@ +/* + * Copyright © 2012 Mozilla Foundation. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Mozilla Author(s): Jonathan Kew + */ + +#ifndef HB_CORETEXT_H +#define HB_CORETEXT_H + +#include "hb.h" + +#include +#if TARGET_OS_IPHONE +# include +# include +#else +# include +#endif + +HB_BEGIN_DECLS + + +/** + * HB_CORETEXT_TAG_MORT: + * + * The #hb_tag_t tag for the `mort` (glyph metamorphosis) table, + * which holds AAT features. + * + * For more information, see + * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6mort.html + * + **/ +#define HB_CORETEXT_TAG_MORT HB_TAG('m','o','r','t') + +/** + * HB_CORETEXT_TAG_MORX: + * + * The #hb_tag_t tag for the `morx` (extended glyph metamorphosis) + * table, which holds AAT features. + * + * For more information, see + * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6morx.html + * + **/ +#define HB_CORETEXT_TAG_MORX HB_TAG('m','o','r','x') + +/** + * HB_CORETEXT_TAG_KERX: + * + * The #hb_tag_t tag for the `kerx` (extended kerning) table, which + * holds AAT kerning information. + * + * For more information, see + * https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6kerx.html + * + **/ +#define HB_CORETEXT_TAG_KERX HB_TAG('k','e','r','x') + + +HB_EXTERN hb_face_t * +hb_coretext_face_create (CGFontRef cg_font); + +HB_EXTERN hb_font_t * +hb_coretext_font_create (CTFontRef ct_font); + + +HB_EXTERN CGFontRef +hb_coretext_face_get_cg_font (hb_face_t *face); + +HB_EXTERN CTFontRef +hb_coretext_font_get_ct_font (hb_font_t *font); + + +HB_END_DECLS + +#endif /* HB_CORETEXT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-cplusplus.hh b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-cplusplus.hh new file mode 100644 index 0000000..a210ab7 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-cplusplus.hh @@ -0,0 +1,221 @@ +/* + * Copyright © 2022 Behdad Esfahbod + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#ifndef HB_CPLUSPLUS_HH +#define HB_CPLUSPLUS_HH + +#include "hb.h" + +HB_BEGIN_DECLS +HB_END_DECLS + +#ifdef __cplusplus + +#include +#include + +#if 0 +#if !(__cplusplus >= 201103L) +#error "HarfBuzz C++ helpers require C++11" +#endif +#endif + +namespace hb { + + +template +struct vtable; + +template +struct shared_ptr +{ + using element_type = T; + + using v = vtable; + + explicit shared_ptr (T *p = nullptr) : p (p) {} + shared_ptr (const shared_ptr &o) : p (v::reference (o.p)) {} + shared_ptr (shared_ptr &&o) : p (o.p) { o.p = nullptr; } + shared_ptr& operator = (const shared_ptr &o) { if (p != o.p) { destroy (); p = o.p; reference (); } return *this; } + shared_ptr& operator = (shared_ptr &&o) { v::destroy (p); p = o.p; o.p = nullptr; return *this; } + ~shared_ptr () { v::destroy (p); p = nullptr; } + + T* get() const { return p; } + + void swap (shared_ptr &o) { std::swap (p, o.p); } + friend void swap (shared_ptr &a, shared_ptr &b) { std::swap (a.p, b.p); } + + operator T * () const { return p; } + T& operator * () const { return *get (); } + T* operator -> () const { return get (); } + operator bool () const { return p; } + bool operator == (const shared_ptr &o) const { return p == o.p; } + bool operator != (const shared_ptr &o) const { return p != o.p; } + + static T* get_empty() { return v::get_empty (); } + T* reference() { return v::reference (p); } + void destroy() { v::destroy (p); } + void set_user_data (hb_user_data_key_t *key, + void *value, + hb_destroy_func_t destroy, + hb_bool_t replace) { v::set_user_data (p, key, value, destroy, replace); } + void * get_user_data (hb_user_data_key_t *key) { return v::get_user_data (p, key); } + + private: + T *p; +}; + +template struct is_shared_ptr : std::false_type {}; +template struct is_shared_ptr> : std::true_type {}; + +template +struct unique_ptr +{ + using element_type = T; + + using v = vtable; + + explicit unique_ptr (T *p = nullptr) : p (p) {} + unique_ptr (const unique_ptr &o) = delete; + unique_ptr (unique_ptr &&o) : p (o.p) { o.p = nullptr; } + unique_ptr& operator = (const unique_ptr &o) = delete; + unique_ptr& operator = (unique_ptr &&o) { v::destroy (p); p = o.p; o.p = nullptr; return *this; } + ~unique_ptr () { v::destroy (p); p = nullptr; } + + T* get() const { return p; } + T* release () { T* v = p; p = nullptr; return v; } + + void swap (unique_ptr &o) { std::swap (p, o.p); } + friend void swap (unique_ptr &a, unique_ptr &b) { std::swap (a.p, b.p); } + + operator T * () const { return p; } + T& operator * () const { return *get (); } + T* operator -> () const { return get (); } + operator bool () { return p; } + + private: + T *p; +}; + +template struct is_unique_ptr : std::false_type {}; +template struct is_unique_ptr> : std::true_type {}; + +template +struct vtable_t +{ + static constexpr auto get_empty = _get_empty; + static constexpr auto reference = _reference; + static constexpr auto destroy = _destroy; + static constexpr auto set_user_data = _set_user_data; + static constexpr auto get_user_data = _get_user_data; +}; + +#define HB_DEFINE_VTABLE(name) \ + template<> \ + struct vtable \ + : vtable_t {} + +HB_DEFINE_VTABLE (buffer); +HB_DEFINE_VTABLE (blob); +HB_DEFINE_VTABLE (face); +HB_DEFINE_VTABLE (font); +HB_DEFINE_VTABLE (font_funcs); +HB_DEFINE_VTABLE (map); +HB_DEFINE_VTABLE (set); +HB_DEFINE_VTABLE (shape_plan); +HB_DEFINE_VTABLE (unicode_funcs); + +#undef HB_DEFINE_VTABLE + + +#ifdef HB_SUBSET_H + +#define HB_DEFINE_VTABLE(name) \ + template<> \ + struct vtable \ + : vtable_t {} + + +HB_DEFINE_VTABLE (subset_input); +HB_DEFINE_VTABLE (subset_plan); + +#undef HB_DEFINE_VTABLE + +#endif + + +} // namespace hb + +/* Workaround for GCC < 7, see: + * https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480 + * https://stackoverflow.com/a/25594741 */ +namespace std { + + +template +struct hash> +{ + std::size_t operator()(const hb::shared_ptr& v) const noexcept + { + std::size_t h = std::hash{}(v.get ()); + return h; + } +}; + +template +struct hash> +{ + std::size_t operator()(const hb::unique_ptr& v) const noexcept + { + std::size_t h = std::hash{}(v.get ()); + return h; + } +}; + + +} // namespace std + +#endif /* __cplusplus */ + +#endif /* HB_CPLUSPLUS_HH */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-deprecated.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-deprecated.h new file mode 100644 index 0000000..333dc3c --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-deprecated.h @@ -0,0 +1,251 @@ +/* + * Copyright © 2013 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_DEPRECATED_H +#define HB_DEPRECATED_H + +#include "hb-common.h" +#include "hb-unicode.h" +#include "hb-font.h" +#include "hb-set.h" + + +/** + * SECTION:hb-deprecated + * @title: hb-deprecated + * @short_description: Deprecated API + * @include: hb.h + * + * These API have been deprecated in favor of newer API, or because they + * were deemed unnecessary. + **/ + + +HB_BEGIN_DECLS + +#ifndef HB_DISABLE_DEPRECATED + + +/** + * HB_SCRIPT_CANADIAN_ABORIGINAL: + * + * Use #HB_SCRIPT_CANADIAN_SYLLABICS instead: + * + * Deprecated: 0.9.20 + */ +#define HB_SCRIPT_CANADIAN_ABORIGINAL HB_SCRIPT_CANADIAN_SYLLABICS + +/** + * HB_BUFFER_FLAGS_DEFAULT: + * + * Use #HB_BUFFER_FLAG_DEFAULT instead. + * + * Deprecated: 0.9.20 + */ +#define HB_BUFFER_FLAGS_DEFAULT HB_BUFFER_FLAG_DEFAULT +/** + * HB_BUFFER_SERIALIZE_FLAGS_DEFAULT: + * + * Use #HB_BUFFER_SERIALIZE_FLAG_DEFAULT instead. + * + * Deprecated: 0.9.20 + */ +#define HB_BUFFER_SERIALIZE_FLAGS_DEFAULT HB_BUFFER_SERIALIZE_FLAG_DEFAULT + +/** + * hb_font_get_glyph_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @unicode: The Unicode code point to query + * @variation_selector: The variation-selector code point to query + * @glyph: (out): The glyph ID retrieved + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the glyph ID for a specified Unicode code point + * font, with an optional variation selector. + * + * Return value: `true` if data found, `false` otherwise + * Deprecated: 1.2.3 + * + **/ +typedef hb_bool_t (*hb_font_get_glyph_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t unicode, hb_codepoint_t variation_selector, + hb_codepoint_t *glyph, + void *user_data); + +HB_EXTERN HB_DEPRECATED_FOR(hb_font_funcs_set_nominal_glyph_func and hb_font_funcs_set_variation_glyph_func) void +hb_font_funcs_set_glyph_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_eastasian_width_func_t: + * @ufuncs: A Unicode-functions structure + * @unicode: The code point to query + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * Deprecated: 2.0.0 + */ +typedef unsigned int (*hb_unicode_eastasian_width_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode, + void *user_data); + +/** + * hb_unicode_funcs_set_eastasian_width_func: + * @ufuncs: a Unicode-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_eastasian_width_func_t. + * + * Since: 0.9.2 + * Deprecated: 2.0.0 + **/ +HB_EXTERN HB_DEPRECATED void +hb_unicode_funcs_set_eastasian_width_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_eastasian_width_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_eastasian_width: + * @ufuncs: a Unicode-function structure + * @unicode: The code point to query + * + * Don't use. Not used by HarfBuzz. + * + * Since: 0.9.2 + * Deprecated: 2.0.0 + **/ +HB_EXTERN HB_DEPRECATED unsigned int +hb_unicode_eastasian_width (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode); + + +/** + * hb_unicode_decompose_compatibility_func_t: + * @ufuncs: a Unicode function structure + * @u: codepoint to decompose + * @decomposed: address of codepoint array (of length #HB_UNICODE_MAX_DECOMPOSITION_LEN) to write decomposition into + * @user_data: user data pointer as passed to hb_unicode_funcs_set_decompose_compatibility_func() + * + * Fully decompose @u to its Unicode compatibility decomposition. The codepoints of the decomposition will be written to @decomposed. + * The complete length of the decomposition will be returned. + * + * If @u has no compatibility decomposition, zero should be returned. + * + * The Unicode standard guarantees that a buffer of length #HB_UNICODE_MAX_DECOMPOSITION_LEN codepoints will always be sufficient for any + * compatibility decomposition plus an terminating value of 0. Consequently, @decompose must be allocated by the caller to be at least this length. Implementations + * of this function type must ensure that they do not write past the provided array. + * + * Return value: number of codepoints in the full compatibility decomposition of @u, or 0 if no decomposition available. + * + * Deprecated: 2.0.0 + */ +typedef unsigned int (*hb_unicode_decompose_compatibility_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t u, + hb_codepoint_t *decomposed, + void *user_data); + +/** + * HB_UNICODE_MAX_DECOMPOSITION_LEN: + * + * See Unicode 6.1 for details on the maximum decomposition length. + * + * Deprecated: 2.0.0 + */ +#define HB_UNICODE_MAX_DECOMPOSITION_LEN (18+1) /* codepoints */ + +/** + * hb_unicode_funcs_set_decompose_compatibility_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_decompose_compatibility_func_t. + * + * + * + * Since: 0.9.2 + * Deprecated: 2.0.0 + **/ +HB_EXTERN HB_DEPRECATED void +hb_unicode_funcs_set_decompose_compatibility_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_decompose_compatibility_func_t func, + void *user_data, hb_destroy_func_t destroy); + +HB_EXTERN HB_DEPRECATED unsigned int +hb_unicode_decompose_compatibility (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t u, + hb_codepoint_t *decomposed); + + +/** + * hb_font_get_glyph_v_kerning_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the kerning-adjustment value for a glyph-pair in + * the specified font, for vertical text segments. + * + **/ +typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_v_kerning_func_t; + +/** + * hb_font_funcs_set_glyph_v_kerning_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_v_kerning_func_t. + * + * Since: 0.9.2 + * Deprecated: 2.0.0 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_v_kerning_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_v_kerning_func_t func, + void *user_data, hb_destroy_func_t destroy); + +HB_EXTERN hb_position_t +hb_font_get_glyph_v_kerning (hb_font_t *font, + hb_codepoint_t top_glyph, hb_codepoint_t bottom_glyph); + +#endif + +HB_END_DECLS + +#endif /* HB_DEPRECATED_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-draw.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-draw.h new file mode 100644 index 0000000..c45a532 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-draw.h @@ -0,0 +1,325 @@ +/* + * Copyright © 2019-2020 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_DRAW_H +#define HB_DRAW_H + +#include "hb.h" + +HB_BEGIN_DECLS + + +/** + * hb_draw_state_t + * @path_open: Whether there is an open path + * @path_start_x: X component of the start of current path + * @path_start_y: Y component of the start of current path + * @current_x: X component of current point + * @current_y: Y component of current point + * + * Current drawing state. + * + * Since: 4.0.0 + **/ +typedef struct hb_draw_state_t { + hb_bool_t path_open; + + float path_start_x; + float path_start_y; + + float current_x; + float current_y; + + /*< private >*/ + hb_var_num_t reserved1; + hb_var_num_t reserved2; + hb_var_num_t reserved3; + hb_var_num_t reserved4; + hb_var_num_t reserved5; + hb_var_num_t reserved6; + hb_var_num_t reserved7; +} hb_draw_state_t; + +/** + * HB_DRAW_STATE_DEFAULT: + * + * The default #hb_draw_state_t at the start of glyph drawing. + */ +#define HB_DRAW_STATE_DEFAULT {0, 0.f, 0.f, 0.f, 0.f, {0.}, {0.}, {0.}} + + +/** + * hb_draw_funcs_t: + * + * Glyph draw callbacks. + * + * #hb_draw_move_to_func_t, #hb_draw_line_to_func_t and + * #hb_draw_cubic_to_func_t calls are necessary to be defined but we translate + * #hb_draw_quadratic_to_func_t calls to #hb_draw_cubic_to_func_t if the + * callback isn't defined. + * + * Since: 4.0.0 + **/ + +typedef struct hb_draw_funcs_t hb_draw_funcs_t; + + +/** + * hb_draw_move_to_func_t: + * @dfuncs: draw functions object + * @draw_data: The data accompanying the draw functions + * @st: current draw state + * @to_x: X component of target point + * @to_y: Y component of target point + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_draw_funcs_t to perform a "move-to" draw + * operation. + * + * Since: 4.0.0 + * + **/ +typedef void (*hb_draw_move_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float to_x, float to_y, + void *user_data); + +/** + * hb_draw_line_to_func_t: + * @dfuncs: draw functions object + * @draw_data: The data accompanying the draw functions + * @st: current draw state + * @to_x: X component of target point + * @to_y: Y component of target point + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_draw_funcs_t to perform a "line-to" draw + * operation. + * + * Since: 4.0.0 + * + **/ +typedef void (*hb_draw_line_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float to_x, float to_y, + void *user_data); + +/** + * hb_draw_quadratic_to_func_t: + * @dfuncs: draw functions object + * @draw_data: The data accompanying the draw functions + * @st: current draw state + * @control_x: X component of control point + * @control_y: Y component of control point + * @to_x: X component of target point + * @to_y: Y component of target point + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_draw_funcs_t to perform a "quadratic-to" draw + * operation. + * + * Since: 4.0.0 + * + **/ +typedef void (*hb_draw_quadratic_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float control_x, float control_y, + float to_x, float to_y, + void *user_data); + +/** + * hb_draw_cubic_to_func_t: + * @dfuncs: draw functions object + * @draw_data: The data accompanying the draw functions + * @st: current draw state + * @control1_x: X component of first control point + * @control1_y: Y component of first control point + * @control2_x: X component of second control point + * @control2_y: Y component of second control point + * @to_x: X component of target point + * @to_y: Y component of target point + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_draw_funcs_t to perform a "cubic-to" draw + * operation. + * + * Since: 4.0.0 + * + **/ +typedef void (*hb_draw_cubic_to_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float control1_x, float control1_y, + float control2_x, float control2_y, + float to_x, float to_y, + void *user_data); + +/** + * hb_draw_close_path_func_t: + * @dfuncs: draw functions object + * @draw_data: The data accompanying the draw functions + * @st: current draw state + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_draw_funcs_t to perform a "close-path" draw + * operation. + * + * Since: 4.0.0 + * + **/ +typedef void (*hb_draw_close_path_func_t) (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + void *user_data); + +/** + * hb_draw_funcs_set_move_to_func: + * @dfuncs: draw functions object + * @func: (closure user_data) (destroy destroy) (scope notified): move-to callback + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets move-to callback to the draw functions object. + * + * Since: 4.0.0 + **/ +HB_EXTERN void +hb_draw_funcs_set_move_to_func (hb_draw_funcs_t *dfuncs, + hb_draw_move_to_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_draw_funcs_set_line_to_func: + * @dfuncs: draw functions object + * @func: (closure user_data) (destroy destroy) (scope notified): line-to callback + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets line-to callback to the draw functions object. + * + * Since: 4.0.0 + **/ +HB_EXTERN void +hb_draw_funcs_set_line_to_func (hb_draw_funcs_t *dfuncs, + hb_draw_line_to_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_draw_funcs_set_quadratic_to_func: + * @dfuncs: draw functions object + * @func: (closure user_data) (destroy destroy) (scope notified): quadratic-to callback + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets quadratic-to callback to the draw functions object. + * + * Since: 4.0.0 + **/ +HB_EXTERN void +hb_draw_funcs_set_quadratic_to_func (hb_draw_funcs_t *dfuncs, + hb_draw_quadratic_to_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_draw_funcs_set_cubic_to_func: + * @dfuncs: draw functions + * @func: (closure user_data) (destroy destroy) (scope notified): cubic-to callback + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets cubic-to callback to the draw functions object. + * + * Since: 4.0.0 + **/ +HB_EXTERN void +hb_draw_funcs_set_cubic_to_func (hb_draw_funcs_t *dfuncs, + hb_draw_cubic_to_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_draw_funcs_set_close_path_func: + * @dfuncs: draw functions object + * @func: (closure user_data) (destroy destroy) (scope notified): close-path callback + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets close-path callback to the draw functions object. + * + * Since: 4.0.0 + **/ +HB_EXTERN void +hb_draw_funcs_set_close_path_func (hb_draw_funcs_t *dfuncs, + hb_draw_close_path_func_t func, + void *user_data, hb_destroy_func_t destroy); + + +HB_EXTERN hb_draw_funcs_t * +hb_draw_funcs_create (void); + +HB_EXTERN hb_draw_funcs_t * +hb_draw_funcs_reference (hb_draw_funcs_t *dfuncs); + +HB_EXTERN void +hb_draw_funcs_destroy (hb_draw_funcs_t *dfuncs); + +HB_EXTERN void +hb_draw_funcs_make_immutable (hb_draw_funcs_t *dfuncs); + +HB_EXTERN hb_bool_t +hb_draw_funcs_is_immutable (hb_draw_funcs_t *dfuncs); + + +HB_EXTERN void +hb_draw_move_to (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float to_x, float to_y); + +HB_EXTERN void +hb_draw_line_to (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float to_x, float to_y); + +HB_EXTERN void +hb_draw_quadratic_to (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float control_x, float control_y, + float to_x, float to_y); + +HB_EXTERN void +hb_draw_cubic_to (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st, + float control1_x, float control1_y, + float control2_x, float control2_y, + float to_x, float to_y); + +HB_EXTERN void +hb_draw_close_path (hb_draw_funcs_t *dfuncs, void *draw_data, + hb_draw_state_t *st); + + +HB_END_DECLS + +#endif /* HB_DRAW_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-face.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-face.h new file mode 100644 index 0000000..38e7104 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-face.h @@ -0,0 +1,181 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_FACE_H +#define HB_FACE_H + +#include "hb-common.h" +#include "hb-blob.h" +#include "hb-set.h" + +HB_BEGIN_DECLS + + +HB_EXTERN unsigned int +hb_face_count (hb_blob_t *blob); + + +/* + * hb_face_t + */ + +/** + * hb_face_t: + * + * Data type for holding font faces. + * + **/ +typedef struct hb_face_t hb_face_t; + +HB_EXTERN hb_face_t * +hb_face_create (hb_blob_t *blob, + unsigned int index); + +/** + * hb_reference_table_func_t: + * @face: an #hb_face_t to reference table for + * @tag: the tag of the table to reference + * @user_data: User data pointer passed by the caller + * + * Callback function for hb_face_create_for_tables(). + * + * Return value: (transfer full): A pointer to the @tag table within @face + * + * Since: 0.9.2 + */ + +typedef hb_blob_t * (*hb_reference_table_func_t) (hb_face_t *face, hb_tag_t tag, void *user_data); + +/* calls destroy() when not needing user_data anymore */ +HB_EXTERN hb_face_t * +hb_face_create_for_tables (hb_reference_table_func_t reference_table_func, + void *user_data, + hb_destroy_func_t destroy); + +HB_EXTERN hb_face_t * +hb_face_get_empty (void); + +HB_EXTERN hb_face_t * +hb_face_reference (hb_face_t *face); + +HB_EXTERN void +hb_face_destroy (hb_face_t *face); + +HB_EXTERN hb_bool_t +hb_face_set_user_data (hb_face_t *face, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + +HB_EXTERN void * +hb_face_get_user_data (const hb_face_t *face, + hb_user_data_key_t *key); + +HB_EXTERN void +hb_face_make_immutable (hb_face_t *face); + +HB_EXTERN hb_bool_t +hb_face_is_immutable (const hb_face_t *face); + + +HB_EXTERN hb_blob_t * +hb_face_reference_table (const hb_face_t *face, + hb_tag_t tag); + +HB_EXTERN hb_blob_t * +hb_face_reference_blob (hb_face_t *face); + +HB_EXTERN void +hb_face_set_index (hb_face_t *face, + unsigned int index); + +HB_EXTERN unsigned int +hb_face_get_index (const hb_face_t *face); + +HB_EXTERN void +hb_face_set_upem (hb_face_t *face, + unsigned int upem); + +HB_EXTERN unsigned int +hb_face_get_upem (const hb_face_t *face); + +HB_EXTERN void +hb_face_set_glyph_count (hb_face_t *face, + unsigned int glyph_count); + +HB_EXTERN unsigned int +hb_face_get_glyph_count (const hb_face_t *face); + +HB_EXTERN unsigned int +hb_face_get_table_tags (const hb_face_t *face, + unsigned int start_offset, + unsigned int *table_count, /* IN/OUT */ + hb_tag_t *table_tags /* OUT */); + + +/* + * Character set. + */ + +HB_EXTERN void +hb_face_collect_unicodes (hb_face_t *face, + hb_set_t *out); + +HB_EXTERN void +hb_face_collect_variation_selectors (hb_face_t *face, + hb_set_t *out); + +HB_EXTERN void +hb_face_collect_variation_unicodes (hb_face_t *face, + hb_codepoint_t variation_selector, + hb_set_t *out); + + +/* + * Builder face. + */ + +HB_EXTERN hb_face_t * +hb_face_builder_create (void); + +HB_EXTERN hb_bool_t +hb_face_builder_add_table (hb_face_t *face, + hb_tag_t tag, + hb_blob_t *blob); + +HB_EXTERN void +hb_face_builder_sort_tables (hb_face_t *face, + const hb_tag_t *tags); + + +HB_END_DECLS + +#endif /* HB_FACE_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-font.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-font.h new file mode 100644 index 0000000..e2c3df4 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-font.h @@ -0,0 +1,1108 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_FONT_H +#define HB_FONT_H + +#include "hb-common.h" +#include "hb-face.h" +#include "hb-draw.h" + +HB_BEGIN_DECLS + +/** + * hb_font_t: + * + * Data type for holding fonts. + * + */ +typedef struct hb_font_t hb_font_t; + + +/* + * hb_font_funcs_t + */ + +/** + * hb_font_funcs_t: + * + * Data type containing a set of virtual methods used for + * working on #hb_font_t font objects. + * + * HarfBuzz provides a lightweight default function for each of + * the methods in #hb_font_funcs_t. Client programs can implement + * their own replacements for the individual font functions, as + * needed, and replace the default by calling the setter for a + * method. + * + **/ +typedef struct hb_font_funcs_t hb_font_funcs_t; + +HB_EXTERN hb_font_funcs_t * +hb_font_funcs_create (void); + +HB_EXTERN hb_font_funcs_t * +hb_font_funcs_get_empty (void); + +HB_EXTERN hb_font_funcs_t * +hb_font_funcs_reference (hb_font_funcs_t *ffuncs); + +HB_EXTERN void +hb_font_funcs_destroy (hb_font_funcs_t *ffuncs); + +HB_EXTERN hb_bool_t +hb_font_funcs_set_user_data (hb_font_funcs_t *ffuncs, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + + +HB_EXTERN void * +hb_font_funcs_get_user_data (const hb_font_funcs_t *ffuncs, + hb_user_data_key_t *key); + + +HB_EXTERN void +hb_font_funcs_make_immutable (hb_font_funcs_t *ffuncs); + +HB_EXTERN hb_bool_t +hb_font_funcs_is_immutable (hb_font_funcs_t *ffuncs); + + +/* font and glyph extents */ + +/** + * hb_font_extents_t: + * @ascender: The height of typographic ascenders. + * @descender: The depth of typographic descenders. + * @line_gap: The suggested line-spacing gap. + * + * Font-wide extent values, measured in font units. + * + * Note that typically @ascender is positive and @descender + * negative, in coordinate systems that grow up. + **/ +typedef struct hb_font_extents_t { + hb_position_t ascender; + hb_position_t descender; + hb_position_t line_gap; + /*< private >*/ + hb_position_t reserved9; + hb_position_t reserved8; + hb_position_t reserved7; + hb_position_t reserved6; + hb_position_t reserved5; + hb_position_t reserved4; + hb_position_t reserved3; + hb_position_t reserved2; + hb_position_t reserved1; +} hb_font_extents_t; + +/** + * hb_glyph_extents_t: + * @x_bearing: Distance from the x-origin to the left extremum of the glyph. + * @y_bearing: Distance from the top extremum of the glyph to the y-origin. + * @width: Distance from the left extremum of the glyph to the right extremum. + * @height: Distance from the top extremum of the glyph to the bottom extremum. + * + * Glyph extent values, measured in font units. + * + * Note that @height is negative, in coordinate systems that grow up. + **/ +typedef struct hb_glyph_extents_t { + hb_position_t x_bearing; + hb_position_t y_bearing; + hb_position_t width; + hb_position_t height; +} hb_glyph_extents_t; + +/* func types */ + +/** + * hb_font_get_font_extents_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @extents: (out): The font extents retrieved + * @user_data: User data pointer passed by the caller + * + * This method should retrieve the extents for a font. + * + **/ +typedef hb_bool_t (*hb_font_get_font_extents_func_t) (hb_font_t *font, void *font_data, + hb_font_extents_t *extents, + void *user_data); + +/** + * hb_font_get_font_h_extents_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the extents for a font, for horizontal-direction + * text segments. Extents must be returned in an #hb_glyph_extents output + * parameter. + * + **/ +typedef hb_font_get_font_extents_func_t hb_font_get_font_h_extents_func_t; + +/** + * hb_font_get_font_v_extents_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the extents for a font, for vertical-direction + * text segments. Extents must be returned in an #hb_glyph_extents output + * parameter. + * + **/ +typedef hb_font_get_font_extents_func_t hb_font_get_font_v_extents_func_t; + + +/** + * hb_font_get_nominal_glyph_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @unicode: The Unicode code point to query + * @glyph: (out): The glyph ID retrieved + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the nominal glyph ID for a specified Unicode code + * point. Glyph IDs must be returned in a #hb_codepoint_t output parameter. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_nominal_glyph_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t unicode, + hb_codepoint_t *glyph, + void *user_data); + +/** + * hb_font_get_variation_glyph_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @unicode: The Unicode code point to query + * @variation_selector: The variation-selector code point to query + * @glyph: (out): The glyph ID retrieved + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the glyph ID for a specified Unicode code point + * followed by a specified Variation Selector code point. Glyph IDs must be + * returned in a #hb_codepoint_t output parameter. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_variation_glyph_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t unicode, hb_codepoint_t variation_selector, + hb_codepoint_t *glyph, + void *user_data); + + +/** + * hb_font_get_nominal_glyphs_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @count: number of code points to query + * @first_unicode: The first Unicode code point to query + * @unicode_stride: The stride between successive code points + * @first_glyph: (out): The first glyph ID retrieved + * @glyph_stride: The stride between successive glyph IDs + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the nominal glyph IDs for a sequence of + * Unicode code points. Glyph IDs must be returned in a #hb_codepoint_t + * output parameter. + * + * Return value: the number of code points processed + * + **/ +typedef unsigned int (*hb_font_get_nominal_glyphs_func_t) (hb_font_t *font, void *font_data, + unsigned int count, + const hb_codepoint_t *first_unicode, + unsigned int unicode_stride, + hb_codepoint_t *first_glyph, + unsigned int glyph_stride, + void *user_data); + +/** + * hb_font_get_glyph_advance_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @glyph: The glyph ID to query + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the advance for a specified glyph. The + * method must return an #hb_position_t. + * + * Return value: The advance of @glyph within @font + * + **/ +typedef hb_position_t (*hb_font_get_glyph_advance_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t glyph, + void *user_data); + +/** + * hb_font_get_glyph_h_advance_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the advance for a specified glyph, in + * horizontal-direction text segments. Advances must be returned in + * an #hb_position_t output parameter. + * + **/ +typedef hb_font_get_glyph_advance_func_t hb_font_get_glyph_h_advance_func_t; + +/** + * hb_font_get_glyph_v_advance_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the advance for a specified glyph, in + * vertical-direction text segments. Advances must be returned in + * an #hb_position_t output parameter. + * + **/ +typedef hb_font_get_glyph_advance_func_t hb_font_get_glyph_v_advance_func_t; + +/** + * hb_font_get_glyph_advances_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @count: The number of glyph IDs in the sequence queried + * @first_glyph: The first glyph ID to query + * @glyph_stride: The stride between successive glyph IDs + * @first_advance: (out): The first advance retrieved + * @advance_stride: The stride between successive advances + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the advances for a sequence of glyphs. + * + **/ +typedef void (*hb_font_get_glyph_advances_func_t) (hb_font_t* font, void* font_data, + unsigned int count, + const hb_codepoint_t *first_glyph, + unsigned glyph_stride, + hb_position_t *first_advance, + unsigned advance_stride, + void *user_data); + +/** + * hb_font_get_glyph_h_advances_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the advances for a sequence of glyphs, in + * horizontal-direction text segments. + * + **/ +typedef hb_font_get_glyph_advances_func_t hb_font_get_glyph_h_advances_func_t; + +/** + * hb_font_get_glyph_v_advances_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the advances for a sequence of glyphs, in + * vertical-direction text segments. + * + **/ +typedef hb_font_get_glyph_advances_func_t hb_font_get_glyph_v_advances_func_t; + +/** + * hb_font_get_glyph_origin_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @glyph: The glyph ID to query + * @x: (out): The X coordinate of the origin + * @y: (out): The Y coordinate of the origin + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the (X,Y) coordinates (in font units) of the + * origin for a glyph. Each coordinate must be returned in an #hb_position_t + * output parameter. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_glyph_origin_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t glyph, + hb_position_t *x, hb_position_t *y, + void *user_data); + +/** + * hb_font_get_glyph_h_origin_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the (X,Y) coordinates (in font units) of the + * origin for a glyph, for horizontal-direction text segments. Each + * coordinate must be returned in an #hb_position_t output parameter. + * + **/ +typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_h_origin_func_t; + +/** + * hb_font_get_glyph_v_origin_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the (X,Y) coordinates (in font units) of the + * origin for a glyph, for vertical-direction text segments. Each coordinate + * must be returned in an #hb_position_t output parameter. + * + **/ +typedef hb_font_get_glyph_origin_func_t hb_font_get_glyph_v_origin_func_t; + +/** + * hb_font_get_glyph_kerning_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @first_glyph: The glyph ID of the first glyph in the glyph pair + * @second_glyph: The glyph ID of the second glyph in the glyph pair + * @user_data: User data pointer passed by the caller + * + * This method should retrieve the kerning-adjustment value for a glyph-pair in + * the specified font, for horizontal text segments. + * + **/ +typedef hb_position_t (*hb_font_get_glyph_kerning_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t first_glyph, hb_codepoint_t second_glyph, + void *user_data); +/** + * hb_font_get_glyph_h_kerning_func_t: + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the kerning-adjustment value for a glyph-pair in + * the specified font, for horizontal text segments. + * + **/ +typedef hb_font_get_glyph_kerning_func_t hb_font_get_glyph_h_kerning_func_t; + + +/** + * hb_font_get_glyph_extents_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @glyph: The glyph ID to query + * @extents: (out): The #hb_glyph_extents_t retrieved + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the extents for a specified glyph. Extents must be + * returned in an #hb_glyph_extents output parameter. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_glyph_extents_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t glyph, + hb_glyph_extents_t *extents, + void *user_data); + +/** + * hb_font_get_glyph_contour_point_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @glyph: The glyph ID to query + * @point_index: The contour-point index to query + * @x: (out): The X value retrieved for the contour point + * @y: (out): The Y value retrieved for the contour point + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the (X,Y) coordinates (in font units) for a + * specified contour point in a glyph. Each coordinate must be returned as + * an #hb_position_t output parameter. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_glyph_contour_point_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t glyph, unsigned int point_index, + hb_position_t *x, hb_position_t *y, + void *user_data); + + +/** + * hb_font_get_glyph_name_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @glyph: The glyph ID to query + * @name: (out) (array length=size): Name string retrieved for the glyph ID + * @size: Length of the glyph-name string retrieved + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the glyph name that corresponds to a + * glyph ID. The name should be returned in a string output parameter. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_glyph_name_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t glyph, + char *name, unsigned int size, + void *user_data); + +/** + * hb_font_get_glyph_from_name_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @name: (array length=len): The name string to query + * @len: The length of the name queried + * @glyph: (out): The glyph ID retrieved + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * This method should retrieve the glyph ID that corresponds to a glyph-name + * string. + * + * Return value: `true` if data found, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_font_get_glyph_from_name_func_t) (hb_font_t *font, void *font_data, + const char *name, int len, /* -1 means nul-terminated */ + hb_codepoint_t *glyph, + void *user_data); + +/** + * hb_font_get_glyph_shape_func_t: + * @font: #hb_font_t to work upon + * @font_data: @font user data pointer + * @glyph: The glyph ID to query + * @draw_funcs: The draw functions to send the shape data to + * @draw_data: The data accompanying the draw functions + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_font_funcs_t of an #hb_font_t object. + * + * Since: 4.0.0 + * + **/ +typedef void (*hb_font_get_glyph_shape_func_t) (hb_font_t *font, void *font_data, + hb_codepoint_t glyph, + hb_draw_funcs_t *draw_funcs, void *draw_data, + void *user_data); + + +/* func setters */ + +/** + * hb_font_funcs_set_font_h_extents_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_font_h_extents_func_t. + * + * Since: 1.1.2 + **/ +HB_EXTERN void +hb_font_funcs_set_font_h_extents_func (hb_font_funcs_t *ffuncs, + hb_font_get_font_h_extents_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_font_v_extents_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_font_v_extents_func_t. + * + * Since: 1.1.2 + **/ +HB_EXTERN void +hb_font_funcs_set_font_v_extents_func (hb_font_funcs_t *ffuncs, + hb_font_get_font_v_extents_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_nominal_glyph_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_nominal_glyph_func_t. + * + * Since: 1.2.3 + **/ +HB_EXTERN void +hb_font_funcs_set_nominal_glyph_func (hb_font_funcs_t *ffuncs, + hb_font_get_nominal_glyph_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_nominal_glyphs_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_nominal_glyphs_func_t. + * + * Since: 2.0.0 + **/ +HB_EXTERN void +hb_font_funcs_set_nominal_glyphs_func (hb_font_funcs_t *ffuncs, + hb_font_get_nominal_glyphs_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_variation_glyph_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_variation_glyph_func_t. + * + * Since: 1.2.3 + **/ +HB_EXTERN void +hb_font_funcs_set_variation_glyph_func (hb_font_funcs_t *ffuncs, + hb_font_get_variation_glyph_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_h_advance_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_h_advance_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_h_advance_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_h_advance_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_v_advance_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_v_advance_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_v_advance_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_v_advance_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_h_advances_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_h_advances_func_t. + * + * Since: 1.8.6 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_h_advances_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_h_advances_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_v_advances_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_v_advances_func_t. + * + * Since: 1.8.6 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_v_advances_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_v_advances_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_h_origin_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_h_origin_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_h_origin_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_h_origin_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_v_origin_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_v_origin_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_v_origin_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_v_origin_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_h_kerning_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_h_kerning_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_h_kerning_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_h_kerning_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_extents_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_extents_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_extents_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_extents_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_contour_point_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_contour_point_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_contour_point_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_contour_point_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_name_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_name_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_name_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_name_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_from_name_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_from_name_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_from_name_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_from_name_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_font_funcs_set_glyph_shape_func: + * @ffuncs: A font-function structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_font_get_glyph_shape_func_t. + * + * Since: 4.0.0 + **/ +HB_EXTERN void +hb_font_funcs_set_glyph_shape_func (hb_font_funcs_t *ffuncs, + hb_font_get_glyph_shape_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/* func dispatch */ + +HB_EXTERN hb_bool_t +hb_font_get_h_extents (hb_font_t *font, + hb_font_extents_t *extents); +HB_EXTERN hb_bool_t +hb_font_get_v_extents (hb_font_t *font, + hb_font_extents_t *extents); + +HB_EXTERN hb_bool_t +hb_font_get_nominal_glyph (hb_font_t *font, + hb_codepoint_t unicode, + hb_codepoint_t *glyph); +HB_EXTERN hb_bool_t +hb_font_get_variation_glyph (hb_font_t *font, + hb_codepoint_t unicode, hb_codepoint_t variation_selector, + hb_codepoint_t *glyph); + +HB_EXTERN unsigned int +hb_font_get_nominal_glyphs (hb_font_t *font, + unsigned int count, + const hb_codepoint_t *first_unicode, + unsigned int unicode_stride, + hb_codepoint_t *first_glyph, + unsigned int glyph_stride); + +HB_EXTERN hb_position_t +hb_font_get_glyph_h_advance (hb_font_t *font, + hb_codepoint_t glyph); +HB_EXTERN hb_position_t +hb_font_get_glyph_v_advance (hb_font_t *font, + hb_codepoint_t glyph); + +HB_EXTERN void +hb_font_get_glyph_h_advances (hb_font_t* font, + unsigned int count, + const hb_codepoint_t *first_glyph, + unsigned glyph_stride, + hb_position_t *first_advance, + unsigned advance_stride); +HB_EXTERN void +hb_font_get_glyph_v_advances (hb_font_t* font, + unsigned int count, + const hb_codepoint_t *first_glyph, + unsigned glyph_stride, + hb_position_t *first_advance, + unsigned advance_stride); + +HB_EXTERN hb_bool_t +hb_font_get_glyph_h_origin (hb_font_t *font, + hb_codepoint_t glyph, + hb_position_t *x, hb_position_t *y); +HB_EXTERN hb_bool_t +hb_font_get_glyph_v_origin (hb_font_t *font, + hb_codepoint_t glyph, + hb_position_t *x, hb_position_t *y); + +HB_EXTERN hb_position_t +hb_font_get_glyph_h_kerning (hb_font_t *font, + hb_codepoint_t left_glyph, hb_codepoint_t right_glyph); + +HB_EXTERN hb_bool_t +hb_font_get_glyph_extents (hb_font_t *font, + hb_codepoint_t glyph, + hb_glyph_extents_t *extents); + +HB_EXTERN hb_bool_t +hb_font_get_glyph_contour_point (hb_font_t *font, + hb_codepoint_t glyph, unsigned int point_index, + hb_position_t *x, hb_position_t *y); + +HB_EXTERN hb_bool_t +hb_font_get_glyph_name (hb_font_t *font, + hb_codepoint_t glyph, + char *name, unsigned int size); +HB_EXTERN hb_bool_t +hb_font_get_glyph_from_name (hb_font_t *font, + const char *name, int len, /* -1 means nul-terminated */ + hb_codepoint_t *glyph); + +HB_EXTERN void +hb_font_get_glyph_shape (hb_font_t *font, + hb_codepoint_t glyph, + hb_draw_funcs_t *dfuncs, void *draw_data); + + +/* high-level funcs, with fallback */ + +/* Calls either hb_font_get_nominal_glyph() if variation_selector is 0, + * otherwise calls hb_font_get_variation_glyph(). */ +HB_EXTERN hb_bool_t +hb_font_get_glyph (hb_font_t *font, + hb_codepoint_t unicode, hb_codepoint_t variation_selector, + hb_codepoint_t *glyph); + +HB_EXTERN void +hb_font_get_extents_for_direction (hb_font_t *font, + hb_direction_t direction, + hb_font_extents_t *extents); +HB_EXTERN void +hb_font_get_glyph_advance_for_direction (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + hb_position_t *x, hb_position_t *y); +HB_EXTERN void +hb_font_get_glyph_advances_for_direction (hb_font_t* font, + hb_direction_t direction, + unsigned int count, + const hb_codepoint_t *first_glyph, + unsigned glyph_stride, + hb_position_t *first_advance, + unsigned advance_stride); +HB_EXTERN void +hb_font_get_glyph_origin_for_direction (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + hb_position_t *x, hb_position_t *y); +HB_EXTERN void +hb_font_add_glyph_origin_for_direction (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + hb_position_t *x, hb_position_t *y); +HB_EXTERN void +hb_font_subtract_glyph_origin_for_direction (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + hb_position_t *x, hb_position_t *y); + +HB_EXTERN void +hb_font_get_glyph_kerning_for_direction (hb_font_t *font, + hb_codepoint_t first_glyph, hb_codepoint_t second_glyph, + hb_direction_t direction, + hb_position_t *x, hb_position_t *y); + +HB_EXTERN hb_bool_t +hb_font_get_glyph_extents_for_origin (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + hb_glyph_extents_t *extents); + +HB_EXTERN hb_bool_t +hb_font_get_glyph_contour_point_for_origin (hb_font_t *font, + hb_codepoint_t glyph, unsigned int point_index, + hb_direction_t direction, + hb_position_t *x, hb_position_t *y); + +/* Generates gidDDD if glyph has no name. */ +HB_EXTERN void +hb_font_glyph_to_string (hb_font_t *font, + hb_codepoint_t glyph, + char *s, unsigned int size); +/* Parses gidDDD and uniUUUU strings automatically. */ +HB_EXTERN hb_bool_t +hb_font_glyph_from_string (hb_font_t *font, + const char *s, int len, /* -1 means nul-terminated */ + hb_codepoint_t *glyph); + + +/* + * hb_font_t + */ + +/* Fonts are very light-weight objects */ + +HB_EXTERN hb_font_t * +hb_font_create (hb_face_t *face); + +HB_EXTERN hb_font_t * +hb_font_create_sub_font (hb_font_t *parent); + +HB_EXTERN hb_font_t * +hb_font_get_empty (void); + +HB_EXTERN hb_font_t * +hb_font_reference (hb_font_t *font); + +HB_EXTERN void +hb_font_destroy (hb_font_t *font); + +HB_EXTERN hb_bool_t +hb_font_set_user_data (hb_font_t *font, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + + +HB_EXTERN void * +hb_font_get_user_data (const hb_font_t *font, + hb_user_data_key_t *key); + +HB_EXTERN void +hb_font_make_immutable (hb_font_t *font); + +HB_EXTERN hb_bool_t +hb_font_is_immutable (hb_font_t *font); + +HB_EXTERN unsigned int +hb_font_get_serial (hb_font_t *font); + +HB_EXTERN void +hb_font_changed (hb_font_t *font); + +HB_EXTERN void +hb_font_set_parent (hb_font_t *font, + hb_font_t *parent); + +HB_EXTERN hb_font_t * +hb_font_get_parent (hb_font_t *font); + +HB_EXTERN void +hb_font_set_face (hb_font_t *font, + hb_face_t *face); + +HB_EXTERN hb_face_t * +hb_font_get_face (hb_font_t *font); + + +HB_EXTERN void +hb_font_set_funcs (hb_font_t *font, + hb_font_funcs_t *klass, + void *font_data, + hb_destroy_func_t destroy); + +/* Be *very* careful with this function! */ +HB_EXTERN void +hb_font_set_funcs_data (hb_font_t *font, + void *font_data, + hb_destroy_func_t destroy); + + +HB_EXTERN void +hb_font_set_scale (hb_font_t *font, + int x_scale, + int y_scale); + +HB_EXTERN void +hb_font_get_scale (hb_font_t *font, + int *x_scale, + int *y_scale); + +/* + * A zero value means "no hinting in that direction" + */ +HB_EXTERN void +hb_font_set_ppem (hb_font_t *font, + unsigned int x_ppem, + unsigned int y_ppem); + +HB_EXTERN void +hb_font_get_ppem (hb_font_t *font, + unsigned int *x_ppem, + unsigned int *y_ppem); + +/* + * Point size per EM. Used for optical-sizing in CoreText. + * A value of zero means "not set". + */ +HB_EXTERN void +hb_font_set_ptem (hb_font_t *font, float ptem); + +HB_EXTERN float +hb_font_get_ptem (hb_font_t *font); + +HB_EXTERN void +hb_font_set_synthetic_slant (hb_font_t *font, float slant); + +HB_EXTERN float +hb_font_get_synthetic_slant (hb_font_t *font); + +HB_EXTERN void +hb_font_set_variations (hb_font_t *font, + const hb_variation_t *variations, + unsigned int variations_length); + +HB_EXTERN void +hb_font_set_var_coords_design (hb_font_t *font, + const float *coords, + unsigned int coords_length); + +HB_EXTERN const float * +hb_font_get_var_coords_design (hb_font_t *font, + unsigned int *length); + +HB_EXTERN void +hb_font_set_var_coords_normalized (hb_font_t *font, + const int *coords, /* 2.14 normalized */ + unsigned int coords_length); + +HB_EXTERN const int * +hb_font_get_var_coords_normalized (hb_font_t *font, + unsigned int *length); + +HB_EXTERN void +hb_font_set_var_named_instance (hb_font_t *font, + unsigned instance_index); + + +HB_END_DECLS + +#endif /* HB_FONT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ft.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ft.h new file mode 100644 index 0000000..6a8a7ab --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ft.h @@ -0,0 +1,145 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * Copyright © 2015 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + * Google Author(s): Behdad Esfahbod + */ + +#ifndef HB_FT_H +#define HB_FT_H + +#include "hb.h" + +#include +#include FT_FREETYPE_H + +HB_BEGIN_DECLS + +/* + * Note: FreeType is not thread-safe. + * Hence, these functions are not either. + */ + +/* + * hb-face from ft-face. + */ + +/* This one creates a new hb-face for given ft-face. + * When the returned hb-face is destroyed, the destroy + * callback is called (if not NULL), with the ft-face passed + * to it. + * + * The client is responsible to make sure that ft-face is + * destroyed after hb-face is destroyed. + * + * Most often you don't want this function. You should use either + * hb_ft_face_create_cached(), or hb_ft_face_create_referenced(). + * In particular, if you are going to pass NULL as destroy, you + * probably should use (the more recent) hb_ft_face_create_referenced() + * instead. + */ +HB_EXTERN hb_face_t * +hb_ft_face_create (FT_Face ft_face, + hb_destroy_func_t destroy); + +/* This version is like hb_ft_face_create(), except that it caches + * the hb-face using the generic pointer of the ft-face. This means + * that subsequent calls to this function with the same ft-face will + * return the same hb-face (correctly referenced). + * + * Client is still responsible for making sure that ft-face is destroyed + * after hb-face is. + */ +HB_EXTERN hb_face_t * +hb_ft_face_create_cached (FT_Face ft_face); + +/* This version is like hb_ft_face_create(), except that it calls + * FT_Reference_Face() on ft-face, as such keeping ft-face alive + * as long as the hb-face is. + * + * This is the most convenient version to use. Use it unless you have + * very good reasons not to. + */ +HB_EXTERN hb_face_t * +hb_ft_face_create_referenced (FT_Face ft_face); + + +/* + * hb-font from ft-face. + */ + +/* + * Note: + * + * Set face size on ft-face before creating hb-font from it. + * Otherwise hb-ft would NOT pick up the font size correctly. + */ + +/* See notes on hb_ft_face_create(). Same issues re lifecycle-management + * apply here. Use hb_ft_font_create_referenced() if you can. */ +HB_EXTERN hb_font_t * +hb_ft_font_create (FT_Face ft_face, + hb_destroy_func_t destroy); + +/* See notes on hb_ft_face_create_referenced() re lifecycle-management + * issues. */ +HB_EXTERN hb_font_t * +hb_ft_font_create_referenced (FT_Face ft_face); + +HB_EXTERN FT_Face +hb_ft_font_get_face (hb_font_t *font); + +HB_EXTERN FT_Face +hb_ft_font_lock_face (hb_font_t *font); + +HB_EXTERN void +hb_ft_font_unlock_face (hb_font_t *font); + +HB_EXTERN void +hb_ft_font_set_load_flags (hb_font_t *font, int load_flags); + +HB_EXTERN int +hb_ft_font_get_load_flags (hb_font_t *font); + +/* Call when size or variations settings on underlying FT_Face changed, + * and you want to update the hb_font_t from it. */ +HB_EXTERN void +hb_ft_font_changed (hb_font_t *font); + +/* Call when size or variations settings on underlying hb_font_t may have + * changed, and you want to update the FT_Face from it. This call is fast + * if nothing changed on hb_font_t. Returns true if changed. */ +HB_EXTERN hb_bool_t +hb_ft_hb_font_changed (hb_font_t *font); + +/* Makes an hb_font_t use FreeType internally to implement font functions. + * Note: this internally creates an FT_Face. Use it when you create your + * hb_face_t using hb_face_create(). */ +HB_EXTERN void +hb_ft_font_set_funcs (hb_font_t *font); + + +HB_END_DECLS + +#endif /* HB_FT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-map.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-map.h new file mode 100644 index 0000000..3a067c5 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-map.h @@ -0,0 +1,124 @@ +/* + * Copyright © 2018 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_MAP_H +#define HB_MAP_H + +#include "hb-common.h" + +HB_BEGIN_DECLS + + +/** + * HB_MAP_VALUE_INVALID: + * + * Unset #hb_map_t value. + * + * Since: 1.7.7 + */ +#define HB_MAP_VALUE_INVALID ((hb_codepoint_t) -1) + +/** + * hb_map_t: + * + * Data type for holding integer-to-integer hash maps. + * + **/ +typedef struct hb_map_t hb_map_t; + + +HB_EXTERN hb_map_t * +hb_map_create (void); + +HB_EXTERN hb_map_t * +hb_map_get_empty (void); + +HB_EXTERN hb_map_t * +hb_map_reference (hb_map_t *map); + +HB_EXTERN void +hb_map_destroy (hb_map_t *map); + +HB_EXTERN hb_bool_t +hb_map_set_user_data (hb_map_t *map, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + +HB_EXTERN void * +hb_map_get_user_data (const hb_map_t *map, + hb_user_data_key_t *key); + + +/* Returns false if allocation has failed before */ +HB_EXTERN hb_bool_t +hb_map_allocation_successful (const hb_map_t *map); + +HB_EXTERN hb_map_t * +hb_map_copy (const hb_map_t *map); + +HB_EXTERN void +hb_map_clear (hb_map_t *map); + +HB_EXTERN hb_bool_t +hb_map_is_empty (const hb_map_t *map); + +HB_EXTERN unsigned int +hb_map_get_population (const hb_map_t *map); + +HB_EXTERN hb_bool_t +hb_map_is_equal (const hb_map_t *map, + const hb_map_t *other); + +HB_EXTERN unsigned int +hb_map_hash (const hb_map_t *map); + +HB_EXTERN void +hb_map_set (hb_map_t *map, + hb_codepoint_t key, + hb_codepoint_t value); + +HB_EXTERN hb_codepoint_t +hb_map_get (const hb_map_t *map, + hb_codepoint_t key); + +HB_EXTERN void +hb_map_del (hb_map_t *map, + hb_codepoint_t key); + +HB_EXTERN hb_bool_t +hb_map_has (const hb_map_t *map, + hb_codepoint_t key); + + +HB_END_DECLS + +#endif /* HB_MAP_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-color.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-color.h new file mode 100644 index 0000000..d11e07e --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-color.h @@ -0,0 +1,146 @@ +/* + * Copyright © 2016 Google, Inc. + * Copyright © 2018 Khaled Hosny + * Copyright © 2018 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Sascha Brawer, Behdad Esfahbod + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_COLOR_H +#define HB_OT_COLOR_H + +#include "hb.h" +#include "hb-ot-name.h" + +HB_BEGIN_DECLS + + +/* + * Color palettes. + */ + +HB_EXTERN hb_bool_t +hb_ot_color_has_palettes (hb_face_t *face); + +HB_EXTERN unsigned int +hb_ot_color_palette_get_count (hb_face_t *face); + +HB_EXTERN hb_ot_name_id_t +hb_ot_color_palette_get_name_id (hb_face_t *face, + unsigned int palette_index); + +HB_EXTERN hb_ot_name_id_t +hb_ot_color_palette_color_get_name_id (hb_face_t *face, + unsigned int color_index); + +/** + * hb_ot_color_palette_flags_t: + * @HB_OT_COLOR_PALETTE_FLAG_DEFAULT: Default indicating that there is nothing special + * to note about a color palette. + * @HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_LIGHT_BACKGROUND: Flag indicating that the color + * palette is appropriate to use when displaying the font on a light background such as white. + * @HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_DARK_BACKGROUND: Flag indicating that the color + * palette is appropriate to use when displaying the font on a dark background such as black. + * + * Flags that describe the properties of color palette. + * + * Since: 2.1.0 + */ +typedef enum { /*< flags >*/ + HB_OT_COLOR_PALETTE_FLAG_DEFAULT = 0x00000000u, + HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_LIGHT_BACKGROUND = 0x00000001u, + HB_OT_COLOR_PALETTE_FLAG_USABLE_WITH_DARK_BACKGROUND = 0x00000002u +} hb_ot_color_palette_flags_t; + +HB_EXTERN hb_ot_color_palette_flags_t +hb_ot_color_palette_get_flags (hb_face_t *face, + unsigned int palette_index); + +HB_EXTERN unsigned int +hb_ot_color_palette_get_colors (hb_face_t *face, + unsigned int palette_index, + unsigned int start_offset, + unsigned int *color_count, /* IN/OUT. May be NULL. */ + hb_color_t *colors /* OUT. May be NULL. */); + + +/* + * Color layers. + */ + +HB_EXTERN hb_bool_t +hb_ot_color_has_layers (hb_face_t *face); + +/** + * hb_ot_color_layer_t: + * @glyph: the glyph ID of the layer + * @color_index: the palette color index of the layer + * + * Pairs of glyph and color index. + * + * A color index of 0xFFFF does not refer to a palette + * color, but indicates that the foreground color should + * be used. + * + * Since: 2.1.0 + **/ +typedef struct hb_ot_color_layer_t { + hb_codepoint_t glyph; + unsigned int color_index; +} hb_ot_color_layer_t; + +HB_EXTERN unsigned int +hb_ot_color_glyph_get_layers (hb_face_t *face, + hb_codepoint_t glyph, + unsigned int start_offset, + unsigned int *layer_count, /* IN/OUT. May be NULL. */ + hb_ot_color_layer_t *layers /* OUT. May be NULL. */); + +/* + * SVG + */ + +HB_EXTERN hb_bool_t +hb_ot_color_has_svg (hb_face_t *face); + +HB_EXTERN hb_blob_t * +hb_ot_color_glyph_reference_svg (hb_face_t *face, hb_codepoint_t glyph); + +/* + * PNG: CBDT or sbix + */ + +HB_EXTERN hb_bool_t +hb_ot_color_has_png (hb_face_t *face); + +HB_EXTERN hb_blob_t * +hb_ot_color_glyph_reference_png (hb_font_t *font, hb_codepoint_t glyph); + + +HB_END_DECLS + +#endif /* HB_OT_COLOR_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-deprecated.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-deprecated.h new file mode 100644 index 0000000..5192ff7 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-deprecated.h @@ -0,0 +1,141 @@ +/* + * Copyright © 2018 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_DEPRECATED_H +#define HB_OT_DEPRECATED_H + +#include "hb.h" +#include "hb-ot-name.h" + + +HB_BEGIN_DECLS + +#ifndef HB_DISABLE_DEPRECATED + + +/* https://github.com/harfbuzz/harfbuzz/issues/1734 */ +/** + * HB_MATH_GLYPH_PART_FLAG_EXTENDER: + * + * Use #HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER instead. + * + * Deprecated: 2.5.1 + */ +#define HB_MATH_GLYPH_PART_FLAG_EXTENDER HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER + +/* https://github.com/harfbuzz/harfbuzz/pull/3417 */ +/** + * HB_OT_MATH_SCRIPT: + * + * Use #HB_SCRIPT_MATH or #HB_OT_TAG_MATH_SCRIPT instead. + * + * Previous versions of this documentation recommended passing + * #HB_OT_MATH_SCRIPT to hb_buffer_set_script() to enable math shaping, but this + * usage is no longer supported. Use #HB_SCRIPT_MATH instead. + * + * Since: 1.3.3 + * Deprecated: 3.4.0 + */ +#define HB_OT_MATH_SCRIPT HB_OT_TAG_MATH_SCRIPT + + +/* Like hb_ot_layout_table_find_script, but takes zero-terminated array of scripts to test */ +HB_EXTERN HB_DEPRECATED_FOR (hb_ot_layout_table_select_script) hb_bool_t +hb_ot_layout_table_choose_script (hb_face_t *face, + hb_tag_t table_tag, + const hb_tag_t *script_tags, + unsigned int *script_index, + hb_tag_t *chosen_script); + +HB_EXTERN HB_DEPRECATED_FOR (hb_ot_layout_script_select_language) hb_bool_t +hb_ot_layout_script_find_language (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + hb_tag_t language_tag, + unsigned int *language_index); + +HB_EXTERN HB_DEPRECATED_FOR (hb_ot_tags_from_script_and_language) void +hb_ot_tags_from_script (hb_script_t script, + hb_tag_t *script_tag_1, + hb_tag_t *script_tag_2); + +HB_EXTERN HB_DEPRECATED_FOR (hb_ot_tags_from_script_and_language) hb_tag_t +hb_ot_tag_from_language (hb_language_t language); + + +/** + * HB_OT_VAR_NO_AXIS_INDEX: + * + * Do not use. + * + * Since: 1.4.2 + * Deprecated: 2.2.0 + */ +#define HB_OT_VAR_NO_AXIS_INDEX 0xFFFFFFFFu + +/** + * hb_ot_var_axis_t: + * @tag: axis tag + * @name_id: axis name identifier + * @min_value: minimum value of the axis + * @default_value: default value of the axis + * @max_value: maximum value of the axis + * + * Use #hb_ot_var_axis_info_t instead. + * + * Since: 1.4.2 + * Deprecated: 2.2.0 + */ +typedef struct hb_ot_var_axis_t { + hb_tag_t tag; + hb_ot_name_id_t name_id; + float min_value; + float default_value; + float max_value; +} hb_ot_var_axis_t; + +HB_EXTERN HB_DEPRECATED_FOR (hb_ot_var_get_axis_infos) unsigned int +hb_ot_var_get_axes (hb_face_t *face, + unsigned int start_offset, + unsigned int *axes_count /* IN/OUT */, + hb_ot_var_axis_t *axes_array /* OUT */); + +HB_EXTERN HB_DEPRECATED_FOR (hb_ot_var_find_axis_info) hb_bool_t +hb_ot_var_find_axis (hb_face_t *face, + hb_tag_t axis_tag, + unsigned int *axis_index, + hb_ot_var_axis_t *axis_info); + + +#endif + +HB_END_DECLS + +#endif /* HB_OT_DEPRECATED_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-font.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-font.h new file mode 100644 index 0000000..e7959d1 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-font.h @@ -0,0 +1,45 @@ +/* + * Copyright © 2014 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod, Roozbeh Pournader + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_FONT_H +#define HB_OT_FONT_H + +#include "hb.h" + +HB_BEGIN_DECLS + + +HB_EXTERN void +hb_ot_font_set_funcs (hb_font_t *font); + + +HB_END_DECLS + +#endif /* HB_OT_FONT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-layout.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-layout.h new file mode 100644 index 0000000..f7b488f --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-layout.h @@ -0,0 +1,503 @@ +/* + * Copyright © 2007,2008,2009 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_LAYOUT_H +#define HB_OT_LAYOUT_H + +#include "hb.h" + +#include "hb-ot-name.h" + +HB_BEGIN_DECLS + + +/** + * HB_OT_TAG_BASE: + * + * OpenType [Baseline Table](https://docs.microsoft.com/en-us/typography/opentype/spec/base). + */ +#define HB_OT_TAG_BASE HB_TAG('B','A','S','E') +/** + * HB_OT_TAG_GDEF: + * + * OpenType [Glyph Definition Table](https://docs.microsoft.com/en-us/typography/opentype/spec/gdef). + */ +#define HB_OT_TAG_GDEF HB_TAG('G','D','E','F') +/** + * HB_OT_TAG_GSUB: + * + * OpenType [Glyph Substitution Table](https://docs.microsoft.com/en-us/typography/opentype/spec/gsub). + */ +#define HB_OT_TAG_GSUB HB_TAG('G','S','U','B') +/** + * HB_OT_TAG_GPOS: + * + * OpenType [Glyph Positioning Table](https://docs.microsoft.com/en-us/typography/opentype/spec/gpos). + */ +#define HB_OT_TAG_GPOS HB_TAG('G','P','O','S') +/** + * HB_OT_TAG_JSTF: + * + * OpenType [Justification Table](https://docs.microsoft.com/en-us/typography/opentype/spec/jstf). + */ +#define HB_OT_TAG_JSTF HB_TAG('J','S','T','F') + + +/* + * Script & Language tags. + */ + +/** + * HB_OT_TAG_DEFAULT_SCRIPT: + * + * OpenType script tag, `DFLT`, for features that are not script-specific. + * + */ +#define HB_OT_TAG_DEFAULT_SCRIPT HB_TAG ('D', 'F', 'L', 'T') +/** + * HB_OT_TAG_DEFAULT_LANGUAGE: + * + * OpenType language tag, `dflt`. Not a valid language tag, but some fonts + * mistakenly use it. + */ +#define HB_OT_TAG_DEFAULT_LANGUAGE HB_TAG ('d', 'f', 'l', 't') + +/** + * HB_OT_MAX_TAGS_PER_SCRIPT: + * + * Maximum number of OpenType tags that can correspond to a give #hb_script_t. + * + * Since: 2.0.0 + **/ +#define HB_OT_MAX_TAGS_PER_SCRIPT 3u +/** + * HB_OT_MAX_TAGS_PER_LANGUAGE: + * + * Maximum number of OpenType tags that can correspond to a give #hb_language_t. + * + * Since: 2.0.0 + **/ +#define HB_OT_MAX_TAGS_PER_LANGUAGE 3u + +HB_EXTERN void +hb_ot_tags_from_script_and_language (hb_script_t script, + hb_language_t language, + unsigned int *script_count /* IN/OUT */, + hb_tag_t *script_tags /* OUT */, + unsigned int *language_count /* IN/OUT */, + hb_tag_t *language_tags /* OUT */); + +HB_EXTERN hb_script_t +hb_ot_tag_to_script (hb_tag_t tag); + +HB_EXTERN hb_language_t +hb_ot_tag_to_language (hb_tag_t tag); + +HB_EXTERN void +hb_ot_tags_to_script_and_language (hb_tag_t script_tag, + hb_tag_t language_tag, + hb_script_t *script /* OUT */, + hb_language_t *language /* OUT */); + + +/* + * GDEF + */ + +HB_EXTERN hb_bool_t +hb_ot_layout_has_glyph_classes (hb_face_t *face); + +/** + * hb_ot_layout_glyph_class_t: + * @HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED: Glyphs not matching the other classifications + * @HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH: Spacing, single characters, capable of accepting marks + * @HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE: Glyphs that represent ligation of multiple characters + * @HB_OT_LAYOUT_GLYPH_CLASS_MARK: Non-spacing, combining glyphs that represent marks + * @HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT: Spacing glyphs that represent part of a single character + * + * The GDEF classes defined for glyphs. + * + **/ +typedef enum { + HB_OT_LAYOUT_GLYPH_CLASS_UNCLASSIFIED = 0, + HB_OT_LAYOUT_GLYPH_CLASS_BASE_GLYPH = 1, + HB_OT_LAYOUT_GLYPH_CLASS_LIGATURE = 2, + HB_OT_LAYOUT_GLYPH_CLASS_MARK = 3, + HB_OT_LAYOUT_GLYPH_CLASS_COMPONENT = 4 +} hb_ot_layout_glyph_class_t; + +HB_EXTERN hb_ot_layout_glyph_class_t +hb_ot_layout_get_glyph_class (hb_face_t *face, + hb_codepoint_t glyph); + +HB_EXTERN void +hb_ot_layout_get_glyphs_in_class (hb_face_t *face, + hb_ot_layout_glyph_class_t klass, + hb_set_t *glyphs /* OUT */); + +/* Not that useful. Provides list of attach points for a glyph that a + * client may want to cache */ +HB_EXTERN unsigned int +hb_ot_layout_get_attach_points (hb_face_t *face, + hb_codepoint_t glyph, + unsigned int start_offset, + unsigned int *point_count /* IN/OUT */, + unsigned int *point_array /* OUT */); + +/* Ligature caret positions */ +HB_EXTERN unsigned int +hb_ot_layout_get_ligature_carets (hb_font_t *font, + hb_direction_t direction, + hb_codepoint_t glyph, + unsigned int start_offset, + unsigned int *caret_count /* IN/OUT */, + hb_position_t *caret_array /* OUT */); + + +/* + * GSUB/GPOS feature query and enumeration interface + */ + +/** + * HB_OT_LAYOUT_NO_SCRIPT_INDEX: + * + * Special value for script index indicating unsupported script. + */ +#define HB_OT_LAYOUT_NO_SCRIPT_INDEX 0xFFFFu +/** + * HB_OT_LAYOUT_NO_FEATURE_INDEX: + * + * Special value for feature index indicating unsupported feature. + */ +#define HB_OT_LAYOUT_NO_FEATURE_INDEX 0xFFFFu +/** + * HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX: + * + * Special value for language index indicating default or unsupported language. + */ +#define HB_OT_LAYOUT_DEFAULT_LANGUAGE_INDEX 0xFFFFu +/** + * HB_OT_LAYOUT_NO_VARIATIONS_INDEX: + * + * Special value for variations index indicating unsupported variation. + */ +#define HB_OT_LAYOUT_NO_VARIATIONS_INDEX 0xFFFFFFFFu + +HB_EXTERN unsigned int +hb_ot_layout_table_get_script_tags (hb_face_t *face, + hb_tag_t table_tag, + unsigned int start_offset, + unsigned int *script_count /* IN/OUT */, + hb_tag_t *script_tags /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_table_find_script (hb_face_t *face, + hb_tag_t table_tag, + hb_tag_t script_tag, + unsigned int *script_index /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_table_select_script (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_count, + const hb_tag_t *script_tags, + unsigned int *script_index /* OUT */, + hb_tag_t *chosen_script /* OUT */); + +HB_EXTERN unsigned int +hb_ot_layout_table_get_feature_tags (hb_face_t *face, + hb_tag_t table_tag, + unsigned int start_offset, + unsigned int *feature_count /* IN/OUT */, + hb_tag_t *feature_tags /* OUT */); + +HB_EXTERN unsigned int +hb_ot_layout_script_get_language_tags (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int start_offset, + unsigned int *language_count /* IN/OUT */, + hb_tag_t *language_tags /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_script_select_language (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int language_count, + const hb_tag_t *language_tags, + unsigned int *language_index /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_language_get_required_feature_index (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int language_index, + unsigned int *feature_index /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_language_get_required_feature (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int language_index, + unsigned int *feature_index /* OUT */, + hb_tag_t *feature_tag /* OUT */); + +HB_EXTERN unsigned int +hb_ot_layout_language_get_feature_indexes (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int language_index, + unsigned int start_offset, + unsigned int *feature_count /* IN/OUT */, + unsigned int *feature_indexes /* OUT */); + +HB_EXTERN unsigned int +hb_ot_layout_language_get_feature_tags (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int language_index, + unsigned int start_offset, + unsigned int *feature_count /* IN/OUT */, + hb_tag_t *feature_tags /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_language_find_feature (hb_face_t *face, + hb_tag_t table_tag, + unsigned int script_index, + unsigned int language_index, + hb_tag_t feature_tag, + unsigned int *feature_index /* OUT */); + +HB_EXTERN unsigned int +hb_ot_layout_feature_get_lookups (hb_face_t *face, + hb_tag_t table_tag, + unsigned int feature_index, + unsigned int start_offset, + unsigned int *lookup_count /* IN/OUT */, + unsigned int *lookup_indexes /* OUT */); + +HB_EXTERN unsigned int +hb_ot_layout_table_get_lookup_count (hb_face_t *face, + hb_tag_t table_tag); + +HB_EXTERN void +hb_ot_layout_collect_features (hb_face_t *face, + hb_tag_t table_tag, + const hb_tag_t *scripts, + const hb_tag_t *languages, + const hb_tag_t *features, + hb_set_t *feature_indexes /* OUT */); + +HB_EXTERN void +hb_ot_layout_collect_lookups (hb_face_t *face, + hb_tag_t table_tag, + const hb_tag_t *scripts, + const hb_tag_t *languages, + const hb_tag_t *features, + hb_set_t *lookup_indexes /* OUT */); + +HB_EXTERN void +hb_ot_layout_lookup_collect_glyphs (hb_face_t *face, + hb_tag_t table_tag, + unsigned int lookup_index, + hb_set_t *glyphs_before, /* OUT. May be NULL */ + hb_set_t *glyphs_input, /* OUT. May be NULL */ + hb_set_t *glyphs_after, /* OUT. May be NULL */ + hb_set_t *glyphs_output /* OUT. May be NULL */); + + +/* Variations support */ + +HB_EXTERN hb_bool_t +hb_ot_layout_table_find_feature_variations (hb_face_t *face, + hb_tag_t table_tag, + const int *coords, + unsigned int num_coords, + unsigned int *variations_index /* out */); + +HB_EXTERN unsigned int +hb_ot_layout_feature_with_variations_get_lookups (hb_face_t *face, + hb_tag_t table_tag, + unsigned int feature_index, + unsigned int variations_index, + unsigned int start_offset, + unsigned int *lookup_count /* IN/OUT */, + unsigned int *lookup_indexes /* OUT */); + + +/* + * GSUB + */ + +HB_EXTERN hb_bool_t +hb_ot_layout_has_substitution (hb_face_t *face); + +HB_EXTERN unsigned +hb_ot_layout_lookup_get_glyph_alternates (hb_face_t *face, + unsigned lookup_index, + hb_codepoint_t glyph, + unsigned start_offset, + unsigned *alternate_count /* IN/OUT */, + hb_codepoint_t *alternate_glyphs /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_layout_lookup_would_substitute (hb_face_t *face, + unsigned int lookup_index, + const hb_codepoint_t *glyphs, + unsigned int glyphs_length, + hb_bool_t zero_context); + +HB_EXTERN void +hb_ot_layout_lookup_substitute_closure (hb_face_t *face, + unsigned int lookup_index, + hb_set_t *glyphs + /*TODO , hb_bool_t inclusive */); + +HB_EXTERN void +hb_ot_layout_lookups_substitute_closure (hb_face_t *face, + const hb_set_t *lookups, + hb_set_t *glyphs); + + +/* + * GPOS + */ + +HB_EXTERN hb_bool_t +hb_ot_layout_has_positioning (hb_face_t *face); + +/* Optical 'size' feature info. Returns true if found. + * https://docs.microsoft.com/en-us/typography/opentype/spec/features_pt#size */ +HB_EXTERN hb_bool_t +hb_ot_layout_get_size_params (hb_face_t *face, + unsigned int *design_size, /* OUT. May be NULL */ + unsigned int *subfamily_id, /* OUT. May be NULL */ + hb_ot_name_id_t *subfamily_name_id, /* OUT. May be NULL */ + unsigned int *range_start, /* OUT. May be NULL */ + unsigned int *range_end /* OUT. May be NULL */); + +HB_EXTERN hb_position_t +hb_ot_layout_lookup_get_optical_bound (hb_font_t *font, + unsigned lookup_index, + hb_direction_t direction, + hb_codepoint_t glyph); + + +/* + * GSUB/GPOS + */ + +HB_EXTERN hb_bool_t +hb_ot_layout_feature_get_name_ids (hb_face_t *face, + hb_tag_t table_tag, + unsigned int feature_index, + hb_ot_name_id_t *label_id /* OUT. May be NULL */, + hb_ot_name_id_t *tooltip_id /* OUT. May be NULL */, + hb_ot_name_id_t *sample_id /* OUT. May be NULL */, + unsigned int *num_named_parameters /* OUT. May be NULL */, + hb_ot_name_id_t *first_param_id /* OUT. May be NULL */); + + +HB_EXTERN unsigned int +hb_ot_layout_feature_get_characters (hb_face_t *face, + hb_tag_t table_tag, + unsigned int feature_index, + unsigned int start_offset, + unsigned int *char_count /* IN/OUT. May be NULL */, + hb_codepoint_t *characters /* OUT. May be NULL */); + + +/* + * BASE + */ + +/** + * hb_ot_layout_baseline_tag_t: + * @HB_OT_LAYOUT_BASELINE_TAG_ROMAN: The baseline used by alphabetic scripts such as Latin, Cyrillic and Greek. + * In vertical writing mode, the alphabetic baseline for characters rotated 90 degrees clockwise. + * (This would not apply to alphabetic characters that remain upright in vertical writing mode, since these + * characters are not rotated.) + * @HB_OT_LAYOUT_BASELINE_TAG_HANGING: The hanging baseline. In horizontal direction, this is the horizontal + * line from which syllables seem, to hang in Tibetan and other similar scripts. In vertical writing mode, + * for Tibetan (or some other similar script) characters rotated 90 degrees clockwise. + * @HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT: Ideographic character face bottom or left edge, + * if the direction is horizontal or vertical, respectively. + * @HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT: Ideographic character face top or right edge, + * if the direction is horizontal or vertical, respectively. + * @HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL: The center of the ideographic character face. Since: 4.0.0 + * @HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT: Ideographic em-box bottom or left edge, + * if the direction is horizontal or vertical, respectively. + * @HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT: Ideographic em-box top or right edge baseline, + * @HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL: The center of the ideographic em-box. Since: 4.0.0 + * if the direction is horizontal or vertical, respectively. + * @HB_OT_LAYOUT_BASELINE_TAG_MATH: The baseline about which mathematical characters are centered. + * In vertical writing mode when mathematical characters rotated 90 degrees clockwise, are centered. + * + * Baseline tags from [Baseline Tags](https://docs.microsoft.com/en-us/typography/opentype/spec/baselinetags) registry. + * + * Since: 2.6.0 + */ +typedef enum { + HB_OT_LAYOUT_BASELINE_TAG_ROMAN = HB_TAG ('r','o','m','n'), + HB_OT_LAYOUT_BASELINE_TAG_HANGING = HB_TAG ('h','a','n','g'), + HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_BOTTOM_OR_LEFT = HB_TAG ('i','c','f','b'), + HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_TOP_OR_RIGHT = HB_TAG ('i','c','f','t'), + HB_OT_LAYOUT_BASELINE_TAG_IDEO_FACE_CENTRAL = HB_TAG ('I','c','f','c'), + HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_BOTTOM_OR_LEFT = HB_TAG ('i','d','e','o'), + HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_TOP_OR_RIGHT = HB_TAG ('i','d','t','p'), + HB_OT_LAYOUT_BASELINE_TAG_IDEO_EMBOX_CENTRAL = HB_TAG ('I','d','c','e'), + HB_OT_LAYOUT_BASELINE_TAG_MATH = HB_TAG ('m','a','t','h'), + + /*< private >*/ + _HB_OT_LAYOUT_BASELINE_TAG_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_ot_layout_baseline_tag_t; + +HB_EXTERN hb_ot_layout_baseline_tag_t +hb_ot_layout_get_horizontal_baseline_tag_for_script (hb_script_t script); + +HB_EXTERN hb_bool_t +hb_ot_layout_get_baseline (hb_font_t *font, + hb_ot_layout_baseline_tag_t baseline_tag, + hb_direction_t direction, + hb_tag_t script_tag, + hb_tag_t language_tag, + hb_position_t *coord /* OUT. May be NULL. */); + +HB_EXTERN void +hb_ot_layout_get_baseline_with_fallback (hb_font_t *font, + hb_ot_layout_baseline_tag_t baseline_tag, + hb_direction_t direction, + hb_tag_t script_tag, + hb_tag_t language_tag, + hb_position_t *coord /* OUT */); + +HB_END_DECLS + +#endif /* HB_OT_LAYOUT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-math.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-math.h new file mode 100644 index 0000000..1378a06 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-math.h @@ -0,0 +1,333 @@ +/* + * Copyright © 2016 Igalia S.L. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Igalia Author(s): Frédéric Wang + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_MATH_H +#define HB_OT_MATH_H + +#include "hb.h" + +HB_BEGIN_DECLS + + +/* + * MATH + */ + +/** + * HB_OT_TAG_MATH: + * + * OpenType [Mathematical Typesetting Table](https://docs.microsoft.com/en-us/typography/opentype/spec/math). + * + * Since: 1.3.3 + */ +#define HB_OT_TAG_MATH HB_TAG('M','A','T','H') + +/** + * HB_OT_TAG_MATH_SCRIPT: + * + * OpenType script tag, `math`, for features specific to math shaping. + * + * #HB_OT_TAG_MATH_SCRIPT is not a valid #hb_script_t and should only be + * used with functions that accept raw OpenType script tags, such as + * #hb_ot_layout_collect_features. In other cases, #HB_SCRIPT_MATH should be + * used instead. + * + * Since: 3.4.0 + */ +#define HB_OT_TAG_MATH_SCRIPT HB_TAG('m','a','t','h') + +/* Types */ + +/** + * hb_ot_math_constant_t: + * @HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN: scriptPercentScaleDown + * @HB_OT_MATH_CONSTANT_SCRIPT_SCRIPT_PERCENT_SCALE_DOWN: scriptScriptPercentScaleDown + * @HB_OT_MATH_CONSTANT_DELIMITED_SUB_FORMULA_MIN_HEIGHT: delimitedSubFormulaMinHeight + * @HB_OT_MATH_CONSTANT_DISPLAY_OPERATOR_MIN_HEIGHT: displayOperatorMinHeight + * @HB_OT_MATH_CONSTANT_MATH_LEADING: mathLeading + * @HB_OT_MATH_CONSTANT_AXIS_HEIGHT: axisHeight + * @HB_OT_MATH_CONSTANT_ACCENT_BASE_HEIGHT: accentBaseHeight + * @HB_OT_MATH_CONSTANT_FLATTENED_ACCENT_BASE_HEIGHT: flattenedAccentBaseHeight + * @HB_OT_MATH_CONSTANT_SUBSCRIPT_SHIFT_DOWN: subscriptShiftDown + * @HB_OT_MATH_CONSTANT_SUBSCRIPT_TOP_MAX: subscriptTopMax + * @HB_OT_MATH_CONSTANT_SUBSCRIPT_BASELINE_DROP_MIN: subscriptBaselineDropMin + * @HB_OT_MATH_CONSTANT_SUPERSCRIPT_SHIFT_UP: superscriptShiftUp + * @HB_OT_MATH_CONSTANT_SUPERSCRIPT_SHIFT_UP_CRAMPED: superscriptShiftUpCramped + * @HB_OT_MATH_CONSTANT_SUPERSCRIPT_BOTTOM_MIN: superscriptBottomMin + * @HB_OT_MATH_CONSTANT_SUPERSCRIPT_BASELINE_DROP_MAX: superscriptBaselineDropMax + * @HB_OT_MATH_CONSTANT_SUB_SUPERSCRIPT_GAP_MIN: subSuperscriptGapMin + * @HB_OT_MATH_CONSTANT_SUPERSCRIPT_BOTTOM_MAX_WITH_SUBSCRIPT: superscriptBottomMaxWithSubscript + * @HB_OT_MATH_CONSTANT_SPACE_AFTER_SCRIPT: spaceAfterScript + * @HB_OT_MATH_CONSTANT_UPPER_LIMIT_GAP_MIN: upperLimitGapMin + * @HB_OT_MATH_CONSTANT_UPPER_LIMIT_BASELINE_RISE_MIN: upperLimitBaselineRiseMin + * @HB_OT_MATH_CONSTANT_LOWER_LIMIT_GAP_MIN: lowerLimitGapMin + * @HB_OT_MATH_CONSTANT_LOWER_LIMIT_BASELINE_DROP_MIN: lowerLimitBaselineDropMin + * @HB_OT_MATH_CONSTANT_STACK_TOP_SHIFT_UP: stackTopShiftUp + * @HB_OT_MATH_CONSTANT_STACK_TOP_DISPLAY_STYLE_SHIFT_UP: stackTopDisplayStyleShiftUp + * @HB_OT_MATH_CONSTANT_STACK_BOTTOM_SHIFT_DOWN: stackBottomShiftDown + * @HB_OT_MATH_CONSTANT_STACK_BOTTOM_DISPLAY_STYLE_SHIFT_DOWN: stackBottomDisplayStyleShiftDown + * @HB_OT_MATH_CONSTANT_STACK_GAP_MIN: stackGapMin + * @HB_OT_MATH_CONSTANT_STACK_DISPLAY_STYLE_GAP_MIN: stackDisplayStyleGapMin + * @HB_OT_MATH_CONSTANT_STRETCH_STACK_TOP_SHIFT_UP: stretchStackTopShiftUp + * @HB_OT_MATH_CONSTANT_STRETCH_STACK_BOTTOM_SHIFT_DOWN: stretchStackBottomShiftDown + * @HB_OT_MATH_CONSTANT_STRETCH_STACK_GAP_ABOVE_MIN: stretchStackGapAboveMin + * @HB_OT_MATH_CONSTANT_STRETCH_STACK_GAP_BELOW_MIN: stretchStackGapBelowMin + * @HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_SHIFT_UP: fractionNumeratorShiftUp + * @HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_DISPLAY_STYLE_SHIFT_UP: fractionNumeratorDisplayStyleShiftUp + * @HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_SHIFT_DOWN: fractionDenominatorShiftDown + * @HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_DISPLAY_STYLE_SHIFT_DOWN: fractionDenominatorDisplayStyleShiftDown + * @HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_GAP_MIN: fractionNumeratorGapMin + * @HB_OT_MATH_CONSTANT_FRACTION_NUM_DISPLAY_STYLE_GAP_MIN: fractionNumDisplayStyleGapMin + * @HB_OT_MATH_CONSTANT_FRACTION_RULE_THICKNESS: fractionRuleThickness + * @HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_GAP_MIN: fractionDenominatorGapMin + * @HB_OT_MATH_CONSTANT_FRACTION_DENOM_DISPLAY_STYLE_GAP_MIN: fractionDenomDisplayStyleGapMin + * @HB_OT_MATH_CONSTANT_SKEWED_FRACTION_HORIZONTAL_GAP: skewedFractionHorizontalGap + * @HB_OT_MATH_CONSTANT_SKEWED_FRACTION_VERTICAL_GAP: skewedFractionVerticalGap + * @HB_OT_MATH_CONSTANT_OVERBAR_VERTICAL_GAP: overbarVerticalGap + * @HB_OT_MATH_CONSTANT_OVERBAR_RULE_THICKNESS: overbarRuleThickness + * @HB_OT_MATH_CONSTANT_OVERBAR_EXTRA_ASCENDER: overbarExtraAscender + * @HB_OT_MATH_CONSTANT_UNDERBAR_VERTICAL_GAP: underbarVerticalGap + * @HB_OT_MATH_CONSTANT_UNDERBAR_RULE_THICKNESS: underbarRuleThickness + * @HB_OT_MATH_CONSTANT_UNDERBAR_EXTRA_DESCENDER: underbarExtraDescender + * @HB_OT_MATH_CONSTANT_RADICAL_VERTICAL_GAP: radicalVerticalGap + * @HB_OT_MATH_CONSTANT_RADICAL_DISPLAY_STYLE_VERTICAL_GAP: radicalDisplayStyleVerticalGap + * @HB_OT_MATH_CONSTANT_RADICAL_RULE_THICKNESS: radicalRuleThickness + * @HB_OT_MATH_CONSTANT_RADICAL_EXTRA_ASCENDER: radicalExtraAscender + * @HB_OT_MATH_CONSTANT_RADICAL_KERN_BEFORE_DEGREE: radicalKernBeforeDegree + * @HB_OT_MATH_CONSTANT_RADICAL_KERN_AFTER_DEGREE: radicalKernAfterDegree + * @HB_OT_MATH_CONSTANT_RADICAL_DEGREE_BOTTOM_RAISE_PERCENT: radicalDegreeBottomRaisePercent + * + * The 'MATH' table constants, refer to + * [OpenType documentation](https://docs.microsoft.com/en-us/typography/opentype/spec/math#mathconstants-table) + * For more explanations. + * + * Since: 1.3.3 + */ +typedef enum { + HB_OT_MATH_CONSTANT_SCRIPT_PERCENT_SCALE_DOWN = 0, + HB_OT_MATH_CONSTANT_SCRIPT_SCRIPT_PERCENT_SCALE_DOWN = 1, + HB_OT_MATH_CONSTANT_DELIMITED_SUB_FORMULA_MIN_HEIGHT = 2, + HB_OT_MATH_CONSTANT_DISPLAY_OPERATOR_MIN_HEIGHT = 3, + HB_OT_MATH_CONSTANT_MATH_LEADING = 4, + HB_OT_MATH_CONSTANT_AXIS_HEIGHT = 5, + HB_OT_MATH_CONSTANT_ACCENT_BASE_HEIGHT = 6, + HB_OT_MATH_CONSTANT_FLATTENED_ACCENT_BASE_HEIGHT = 7, + HB_OT_MATH_CONSTANT_SUBSCRIPT_SHIFT_DOWN = 8, + HB_OT_MATH_CONSTANT_SUBSCRIPT_TOP_MAX = 9, + HB_OT_MATH_CONSTANT_SUBSCRIPT_BASELINE_DROP_MIN = 10, + HB_OT_MATH_CONSTANT_SUPERSCRIPT_SHIFT_UP = 11, + HB_OT_MATH_CONSTANT_SUPERSCRIPT_SHIFT_UP_CRAMPED = 12, + HB_OT_MATH_CONSTANT_SUPERSCRIPT_BOTTOM_MIN = 13, + HB_OT_MATH_CONSTANT_SUPERSCRIPT_BASELINE_DROP_MAX = 14, + HB_OT_MATH_CONSTANT_SUB_SUPERSCRIPT_GAP_MIN = 15, + HB_OT_MATH_CONSTANT_SUPERSCRIPT_BOTTOM_MAX_WITH_SUBSCRIPT = 16, + HB_OT_MATH_CONSTANT_SPACE_AFTER_SCRIPT = 17, + HB_OT_MATH_CONSTANT_UPPER_LIMIT_GAP_MIN = 18, + HB_OT_MATH_CONSTANT_UPPER_LIMIT_BASELINE_RISE_MIN = 19, + HB_OT_MATH_CONSTANT_LOWER_LIMIT_GAP_MIN = 20, + HB_OT_MATH_CONSTANT_LOWER_LIMIT_BASELINE_DROP_MIN = 21, + HB_OT_MATH_CONSTANT_STACK_TOP_SHIFT_UP = 22, + HB_OT_MATH_CONSTANT_STACK_TOP_DISPLAY_STYLE_SHIFT_UP = 23, + HB_OT_MATH_CONSTANT_STACK_BOTTOM_SHIFT_DOWN = 24, + HB_OT_MATH_CONSTANT_STACK_BOTTOM_DISPLAY_STYLE_SHIFT_DOWN = 25, + HB_OT_MATH_CONSTANT_STACK_GAP_MIN = 26, + HB_OT_MATH_CONSTANT_STACK_DISPLAY_STYLE_GAP_MIN = 27, + HB_OT_MATH_CONSTANT_STRETCH_STACK_TOP_SHIFT_UP = 28, + HB_OT_MATH_CONSTANT_STRETCH_STACK_BOTTOM_SHIFT_DOWN = 29, + HB_OT_MATH_CONSTANT_STRETCH_STACK_GAP_ABOVE_MIN = 30, + HB_OT_MATH_CONSTANT_STRETCH_STACK_GAP_BELOW_MIN = 31, + HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_SHIFT_UP = 32, + HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_DISPLAY_STYLE_SHIFT_UP = 33, + HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_SHIFT_DOWN = 34, + HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_DISPLAY_STYLE_SHIFT_DOWN = 35, + HB_OT_MATH_CONSTANT_FRACTION_NUMERATOR_GAP_MIN = 36, + HB_OT_MATH_CONSTANT_FRACTION_NUM_DISPLAY_STYLE_GAP_MIN = 37, + HB_OT_MATH_CONSTANT_FRACTION_RULE_THICKNESS = 38, + HB_OT_MATH_CONSTANT_FRACTION_DENOMINATOR_GAP_MIN = 39, + HB_OT_MATH_CONSTANT_FRACTION_DENOM_DISPLAY_STYLE_GAP_MIN = 40, + HB_OT_MATH_CONSTANT_SKEWED_FRACTION_HORIZONTAL_GAP = 41, + HB_OT_MATH_CONSTANT_SKEWED_FRACTION_VERTICAL_GAP = 42, + HB_OT_MATH_CONSTANT_OVERBAR_VERTICAL_GAP = 43, + HB_OT_MATH_CONSTANT_OVERBAR_RULE_THICKNESS = 44, + HB_OT_MATH_CONSTANT_OVERBAR_EXTRA_ASCENDER = 45, + HB_OT_MATH_CONSTANT_UNDERBAR_VERTICAL_GAP = 46, + HB_OT_MATH_CONSTANT_UNDERBAR_RULE_THICKNESS = 47, + HB_OT_MATH_CONSTANT_UNDERBAR_EXTRA_DESCENDER = 48, + HB_OT_MATH_CONSTANT_RADICAL_VERTICAL_GAP = 49, + HB_OT_MATH_CONSTANT_RADICAL_DISPLAY_STYLE_VERTICAL_GAP = 50, + HB_OT_MATH_CONSTANT_RADICAL_RULE_THICKNESS = 51, + HB_OT_MATH_CONSTANT_RADICAL_EXTRA_ASCENDER = 52, + HB_OT_MATH_CONSTANT_RADICAL_KERN_BEFORE_DEGREE = 53, + HB_OT_MATH_CONSTANT_RADICAL_KERN_AFTER_DEGREE = 54, + HB_OT_MATH_CONSTANT_RADICAL_DEGREE_BOTTOM_RAISE_PERCENT = 55 +} hb_ot_math_constant_t; + +/** + * hb_ot_math_kern_t: + * @HB_OT_MATH_KERN_TOP_RIGHT: The top right corner of the glyph. + * @HB_OT_MATH_KERN_TOP_LEFT: The top left corner of the glyph. + * @HB_OT_MATH_KERN_BOTTOM_RIGHT: The bottom right corner of the glyph. + * @HB_OT_MATH_KERN_BOTTOM_LEFT: The bottom left corner of the glyph. + * + * The math kerning-table types defined for the four corners + * of a glyph. + * + * Since: 1.3.3 + */ +typedef enum { + HB_OT_MATH_KERN_TOP_RIGHT = 0, + HB_OT_MATH_KERN_TOP_LEFT = 1, + HB_OT_MATH_KERN_BOTTOM_RIGHT = 2, + HB_OT_MATH_KERN_BOTTOM_LEFT = 3 +} hb_ot_math_kern_t; + +/** + * hb_ot_math_kern_entry_t: + * @max_correction_height: The maximum height at which this entry should be used + * @kern_value: The kern value of the entry + * + * Data type to hold math kerning (cut-in) information for a glyph. + * + * Since: 3.4.0 + */ +typedef struct { + hb_position_t max_correction_height; + hb_position_t kern_value; +} hb_ot_math_kern_entry_t; + +/** + * hb_ot_math_glyph_variant_t: + * @glyph: The glyph index of the variant + * @advance: The advance width of the variant + * + * Data type to hold math-variant information for a glyph. + * + * Since: 1.3.3 + */ +typedef struct hb_ot_math_glyph_variant_t { + hb_codepoint_t glyph; + hb_position_t advance; +} hb_ot_math_glyph_variant_t; + +/** + * hb_ot_math_glyph_part_flags_t: + * @HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER: This is an extender glyph part that + * can be repeated to reach the desired length. + * + * Flags for math glyph parts. + * + * Since: 1.3.3 + */ +typedef enum { /*< flags >*/ + HB_OT_MATH_GLYPH_PART_FLAG_EXTENDER = 0x00000001u /* Extender glyph */ +} hb_ot_math_glyph_part_flags_t; + +/** + * hb_ot_math_glyph_part_t: + * @glyph: The glyph index of the variant part + * @start_connector_length: The length of the connector on the starting side of the variant part + * @end_connector_length: The length of the connector on the ending side of the variant part + * @full_advance: The total advance of the part + * @flags: #hb_ot_math_glyph_part_flags_t flags for the part + * + * Data type to hold information for a "part" component of a math-variant glyph. + * Large variants for stretchable math glyphs (such as parentheses) can be constructed + * on the fly from parts. + * + * Since: 1.3.3 + */ +typedef struct hb_ot_math_glyph_part_t { + hb_codepoint_t glyph; + hb_position_t start_connector_length; + hb_position_t end_connector_length; + hb_position_t full_advance; + hb_ot_math_glyph_part_flags_t flags; +} hb_ot_math_glyph_part_t; + +/* Methods */ + +HB_EXTERN hb_bool_t +hb_ot_math_has_data (hb_face_t *face); + +HB_EXTERN hb_position_t +hb_ot_math_get_constant (hb_font_t *font, + hb_ot_math_constant_t constant); + +HB_EXTERN hb_position_t +hb_ot_math_get_glyph_italics_correction (hb_font_t *font, + hb_codepoint_t glyph); + +HB_EXTERN hb_position_t +hb_ot_math_get_glyph_top_accent_attachment (hb_font_t *font, + hb_codepoint_t glyph); + +HB_EXTERN hb_bool_t +hb_ot_math_is_glyph_extended_shape (hb_face_t *face, + hb_codepoint_t glyph); + +HB_EXTERN hb_position_t +hb_ot_math_get_glyph_kerning (hb_font_t *font, + hb_codepoint_t glyph, + hb_ot_math_kern_t kern, + hb_position_t correction_height); + +HB_EXTERN unsigned int +hb_ot_math_get_glyph_kernings (hb_font_t *font, + hb_codepoint_t glyph, + hb_ot_math_kern_t kern, + unsigned int start_offset, + unsigned int *entries_count, /* IN/OUT */ + hb_ot_math_kern_entry_t *kern_entries /* OUT */); + +HB_EXTERN unsigned int +hb_ot_math_get_glyph_variants (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + unsigned int start_offset, + unsigned int *variants_count, /* IN/OUT */ + hb_ot_math_glyph_variant_t *variants /* OUT */); + +HB_EXTERN hb_position_t +hb_ot_math_get_min_connector_overlap (hb_font_t *font, + hb_direction_t direction); + +HB_EXTERN unsigned int +hb_ot_math_get_glyph_assembly (hb_font_t *font, + hb_codepoint_t glyph, + hb_direction_t direction, + unsigned int start_offset, + unsigned int *parts_count, /* IN/OUT */ + hb_ot_math_glyph_part_t *parts, /* OUT */ + hb_position_t *italics_correction /* OUT */); + + +HB_END_DECLS + +#endif /* HB_OT_MATH_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-meta.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-meta.h new file mode 100644 index 0000000..7748eb4 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-meta.h @@ -0,0 +1,72 @@ +/* + * Copyright © 2019 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_META_H +#define HB_OT_META_H + +#include "hb.h" + +HB_BEGIN_DECLS + +/** + * hb_ot_meta_tag_t: + * @HB_OT_META_TAG_DESIGN_LANGUAGES: Design languages. Text, using only + * Basic Latin (ASCII) characters. Indicates languages and/or scripts + * for the user audiences that the font was primarily designed for. + * @HB_OT_META_TAG_SUPPORTED_LANGUAGES: Supported languages. Text, using + * only Basic Latin (ASCII) characters. Indicates languages and/or scripts + * that the font is declared to be capable of supporting. + * + * Known metadata tags from https://docs.microsoft.com/en-us/typography/opentype/spec/meta + * + * Since: 2.6.0 + **/ +typedef enum { +/* + HB_OT_META_TAG_APPL = HB_TAG ('a','p','p','l'), + HB_OT_META_TAG_BILD = HB_TAG ('b','i','l','d'), +*/ + HB_OT_META_TAG_DESIGN_LANGUAGES = HB_TAG ('d','l','n','g'), + HB_OT_META_TAG_SUPPORTED_LANGUAGES = HB_TAG ('s','l','n','g'), + + /*< private >*/ + _HB_OT_META_TAG_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_ot_meta_tag_t; + +HB_EXTERN unsigned int +hb_ot_meta_get_entry_tags (hb_face_t *face, + unsigned int start_offset, + unsigned int *entries_count, /* IN/OUT. May be NULL. */ + hb_ot_meta_tag_t *entries /* OUT. May be NULL. */); + +HB_EXTERN hb_blob_t * +hb_ot_meta_reference_entry (hb_face_t *face, hb_ot_meta_tag_t meta_tag); + +HB_END_DECLS + +#endif /* HB_OT_META_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-metrics.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-metrics.h new file mode 100644 index 0000000..30de500 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-metrics.h @@ -0,0 +1,129 @@ +/* + * Copyright © 2018 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_METRICS_H +#define HB_OT_METRICS_H + +#include "hb.h" +#include "hb-ot-name.h" + +HB_BEGIN_DECLS + + +/** + * hb_ot_metrics_tag_t: + * @HB_OT_METRICS_TAG_HORIZONTAL_ASCENDER: horizontal ascender. + * @HB_OT_METRICS_TAG_HORIZONTAL_DESCENDER: horizontal descender. + * @HB_OT_METRICS_TAG_HORIZONTAL_LINE_GAP: horizontal line gap. + * @HB_OT_METRICS_TAG_HORIZONTAL_CLIPPING_ASCENT: horizontal clipping ascent. + * @HB_OT_METRICS_TAG_HORIZONTAL_CLIPPING_DESCENT: horizontal clipping descent. + * @HB_OT_METRICS_TAG_VERTICAL_ASCENDER: vertical ascender. + * @HB_OT_METRICS_TAG_VERTICAL_DESCENDER: vertical descender. + * @HB_OT_METRICS_TAG_VERTICAL_LINE_GAP: vertical line gap. + * @HB_OT_METRICS_TAG_HORIZONTAL_CARET_RISE: horizontal caret rise. + * @HB_OT_METRICS_TAG_HORIZONTAL_CARET_RUN: horizontal caret run. + * @HB_OT_METRICS_TAG_HORIZONTAL_CARET_OFFSET: horizontal caret offset. + * @HB_OT_METRICS_TAG_VERTICAL_CARET_RISE: vertical caret rise. + * @HB_OT_METRICS_TAG_VERTICAL_CARET_RUN: vertical caret run. + * @HB_OT_METRICS_TAG_VERTICAL_CARET_OFFSET: vertical caret offset. + * @HB_OT_METRICS_TAG_X_HEIGHT: x height. + * @HB_OT_METRICS_TAG_CAP_HEIGHT: cap height. + * @HB_OT_METRICS_TAG_SUBSCRIPT_EM_X_SIZE: subscript em x size. + * @HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_SIZE: subscript em y size. + * @HB_OT_METRICS_TAG_SUBSCRIPT_EM_X_OFFSET: subscript em x offset. + * @HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_OFFSET: subscript em y offset. + * @HB_OT_METRICS_TAG_SUPERSCRIPT_EM_X_SIZE: superscript em x size. + * @HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_SIZE: superscript em y size. + * @HB_OT_METRICS_TAG_SUPERSCRIPT_EM_X_OFFSET: superscript em x offset. + * @HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_OFFSET: superscript em y offset. + * @HB_OT_METRICS_TAG_STRIKEOUT_SIZE: strikeout size. + * @HB_OT_METRICS_TAG_STRIKEOUT_OFFSET: strikeout offset. + * @HB_OT_METRICS_TAG_UNDERLINE_SIZE: underline size. + * @HB_OT_METRICS_TAG_UNDERLINE_OFFSET: underline offset. + * + * Metric tags corresponding to [MVAR Value + * Tags](https://docs.microsoft.com/en-us/typography/opentype/spec/mvar#value-tags) + * + * Since: 2.6.0 + **/ +typedef enum { + HB_OT_METRICS_TAG_HORIZONTAL_ASCENDER = HB_TAG ('h','a','s','c'), + HB_OT_METRICS_TAG_HORIZONTAL_DESCENDER = HB_TAG ('h','d','s','c'), + HB_OT_METRICS_TAG_HORIZONTAL_LINE_GAP = HB_TAG ('h','l','g','p'), + HB_OT_METRICS_TAG_HORIZONTAL_CLIPPING_ASCENT = HB_TAG ('h','c','l','a'), + HB_OT_METRICS_TAG_HORIZONTAL_CLIPPING_DESCENT = HB_TAG ('h','c','l','d'), + HB_OT_METRICS_TAG_VERTICAL_ASCENDER = HB_TAG ('v','a','s','c'), + HB_OT_METRICS_TAG_VERTICAL_DESCENDER = HB_TAG ('v','d','s','c'), + HB_OT_METRICS_TAG_VERTICAL_LINE_GAP = HB_TAG ('v','l','g','p'), + HB_OT_METRICS_TAG_HORIZONTAL_CARET_RISE = HB_TAG ('h','c','r','s'), + HB_OT_METRICS_TAG_HORIZONTAL_CARET_RUN = HB_TAG ('h','c','r','n'), + HB_OT_METRICS_TAG_HORIZONTAL_CARET_OFFSET = HB_TAG ('h','c','o','f'), + HB_OT_METRICS_TAG_VERTICAL_CARET_RISE = HB_TAG ('v','c','r','s'), + HB_OT_METRICS_TAG_VERTICAL_CARET_RUN = HB_TAG ('v','c','r','n'), + HB_OT_METRICS_TAG_VERTICAL_CARET_OFFSET = HB_TAG ('v','c','o','f'), + HB_OT_METRICS_TAG_X_HEIGHT = HB_TAG ('x','h','g','t'), + HB_OT_METRICS_TAG_CAP_HEIGHT = HB_TAG ('c','p','h','t'), + HB_OT_METRICS_TAG_SUBSCRIPT_EM_X_SIZE = HB_TAG ('s','b','x','s'), + HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_SIZE = HB_TAG ('s','b','y','s'), + HB_OT_METRICS_TAG_SUBSCRIPT_EM_X_OFFSET = HB_TAG ('s','b','x','o'), + HB_OT_METRICS_TAG_SUBSCRIPT_EM_Y_OFFSET = HB_TAG ('s','b','y','o'), + HB_OT_METRICS_TAG_SUPERSCRIPT_EM_X_SIZE = HB_TAG ('s','p','x','s'), + HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_SIZE = HB_TAG ('s','p','y','s'), + HB_OT_METRICS_TAG_SUPERSCRIPT_EM_X_OFFSET = HB_TAG ('s','p','x','o'), + HB_OT_METRICS_TAG_SUPERSCRIPT_EM_Y_OFFSET = HB_TAG ('s','p','y','o'), + HB_OT_METRICS_TAG_STRIKEOUT_SIZE = HB_TAG ('s','t','r','s'), + HB_OT_METRICS_TAG_STRIKEOUT_OFFSET = HB_TAG ('s','t','r','o'), + HB_OT_METRICS_TAG_UNDERLINE_SIZE = HB_TAG ('u','n','d','s'), + HB_OT_METRICS_TAG_UNDERLINE_OFFSET = HB_TAG ('u','n','d','o'), + + /*< private >*/ + _HB_OT_METRICS_TAG_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_ot_metrics_tag_t; + +HB_EXTERN hb_bool_t +hb_ot_metrics_get_position (hb_font_t *font, + hb_ot_metrics_tag_t metrics_tag, + hb_position_t *position /* OUT. May be NULL. */); + +HB_EXTERN void +hb_ot_metrics_get_position_with_fallback (hb_font_t *font, + hb_ot_metrics_tag_t metrics_tag, + hb_position_t *position /* OUT */); + +HB_EXTERN float +hb_ot_metrics_get_variation (hb_font_t *font, hb_ot_metrics_tag_t metrics_tag); + +HB_EXTERN hb_position_t +hb_ot_metrics_get_x_variation (hb_font_t *font, hb_ot_metrics_tag_t metrics_tag); + +HB_EXTERN hb_position_t +hb_ot_metrics_get_y_variation (hb_font_t *font, hb_ot_metrics_tag_t metrics_tag); + +HB_END_DECLS + +#endif /* HB_OT_METRICS_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-name.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-name.h new file mode 100644 index 0000000..1ea4b55 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-name.h @@ -0,0 +1,158 @@ +/* + * Copyright © 2018 Ebrahim Byagowi. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_NAME_H +#define HB_OT_NAME_H + +#include "hb.h" + +HB_BEGIN_DECLS + + +/** + * hb_ot_name_id_t: + * @HB_OT_NAME_ID_COPYRIGHT: Copyright notice + * @HB_OT_NAME_ID_FONT_FAMILY: Font Family name + * @HB_OT_NAME_ID_FONT_SUBFAMILY: Font Subfamily name + * @HB_OT_NAME_ID_UNIQUE_ID: Unique font identifier + * @HB_OT_NAME_ID_FULL_NAME: Full font name that reflects + * all family and relevant subfamily descriptors + * @HB_OT_NAME_ID_VERSION_STRING: Version string + * @HB_OT_NAME_ID_POSTSCRIPT_NAME: PostScript name for the font + * @HB_OT_NAME_ID_TRADEMARK: Trademark + * @HB_OT_NAME_ID_MANUFACTURER: Manufacturer Name + * @HB_OT_NAME_ID_DESIGNER: Designer + * @HB_OT_NAME_ID_DESCRIPTION: Description + * @HB_OT_NAME_ID_VENDOR_URL: URL of font vendor + * @HB_OT_NAME_ID_DESIGNER_URL: URL of typeface designer + * @HB_OT_NAME_ID_LICENSE: License Description + * @HB_OT_NAME_ID_LICENSE_URL: URL where additional licensing + * information can be found + * @HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY: Typographic Family name + * @HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY: Typographic Subfamily name + * @HB_OT_NAME_ID_MAC_FULL_NAME: Compatible Full Name for MacOS + * @HB_OT_NAME_ID_SAMPLE_TEXT: Sample text + * @HB_OT_NAME_ID_CID_FINDFONT_NAME: PostScript CID findfont name + * @HB_OT_NAME_ID_WWS_FAMILY: WWS Family Name + * @HB_OT_NAME_ID_WWS_SUBFAMILY: WWS Subfamily Name + * @HB_OT_NAME_ID_LIGHT_BACKGROUND: Light Background Palette + * @HB_OT_NAME_ID_DARK_BACKGROUND: Dark Background Palette + * @HB_OT_NAME_ID_VARIATIONS_PS_PREFIX: Variations PostScript Name Prefix + * @HB_OT_NAME_ID_INVALID: Value to represent a nonexistent name ID. + * + * An integral type representing an OpenType 'name' table name identifier. + * There are predefined name IDs, as well as name IDs return from other + * API. These can be used to fetch name strings from a font face. + * + * For more information on these fields, see the + * [OpenType spec](https://docs.microsoft.com/en-us/typography/opentype/spec/name#name-ids). + * + * Since: 2.0.0 + **/ +enum +{ + HB_OT_NAME_ID_COPYRIGHT = 0, + HB_OT_NAME_ID_FONT_FAMILY = 1, + HB_OT_NAME_ID_FONT_SUBFAMILY = 2, + HB_OT_NAME_ID_UNIQUE_ID = 3, + HB_OT_NAME_ID_FULL_NAME = 4, + HB_OT_NAME_ID_VERSION_STRING = 5, + HB_OT_NAME_ID_POSTSCRIPT_NAME = 6, + HB_OT_NAME_ID_TRADEMARK = 7, + HB_OT_NAME_ID_MANUFACTURER = 8, + HB_OT_NAME_ID_DESIGNER = 9, + HB_OT_NAME_ID_DESCRIPTION = 10, + HB_OT_NAME_ID_VENDOR_URL = 11, + HB_OT_NAME_ID_DESIGNER_URL = 12, + HB_OT_NAME_ID_LICENSE = 13, + HB_OT_NAME_ID_LICENSE_URL = 14, +/*HB_OT_NAME_ID_RESERVED = 15,*/ + HB_OT_NAME_ID_TYPOGRAPHIC_FAMILY = 16, + HB_OT_NAME_ID_TYPOGRAPHIC_SUBFAMILY = 17, + HB_OT_NAME_ID_MAC_FULL_NAME = 18, + HB_OT_NAME_ID_SAMPLE_TEXT = 19, + HB_OT_NAME_ID_CID_FINDFONT_NAME = 20, + HB_OT_NAME_ID_WWS_FAMILY = 21, + HB_OT_NAME_ID_WWS_SUBFAMILY = 22, + HB_OT_NAME_ID_LIGHT_BACKGROUND = 23, + HB_OT_NAME_ID_DARK_BACKGROUND = 24, + HB_OT_NAME_ID_VARIATIONS_PS_PREFIX = 25, + + HB_OT_NAME_ID_INVALID = 0xFFFF +}; + +typedef unsigned int hb_ot_name_id_t; + + +/** + * hb_ot_name_entry_t: + * @name_id: name ID + * @language: language + * + * Structure representing a name ID in a particular language. + * + * Since: 2.1.0 + **/ +typedef struct hb_ot_name_entry_t { + hb_ot_name_id_t name_id; + /*< private >*/ + hb_var_int_t var; + /*< public >*/ + hb_language_t language; +} hb_ot_name_entry_t; + +HB_EXTERN const hb_ot_name_entry_t * +hb_ot_name_list_names (hb_face_t *face, + unsigned int *num_entries /* OUT */); + + +HB_EXTERN unsigned int +hb_ot_name_get_utf8 (hb_face_t *face, + hb_ot_name_id_t name_id, + hb_language_t language, + unsigned int *text_size /* IN/OUT */, + char *text /* OUT */); + +HB_EXTERN unsigned int +hb_ot_name_get_utf16 (hb_face_t *face, + hb_ot_name_id_t name_id, + hb_language_t language, + unsigned int *text_size /* IN/OUT */, + uint16_t *text /* OUT */); + +HB_EXTERN unsigned int +hb_ot_name_get_utf32 (hb_face_t *face, + hb_ot_name_id_t name_id, + hb_language_t language, + unsigned int *text_size /* IN/OUT */, + uint32_t *text /* OUT */); + + +HB_END_DECLS + +#endif /* HB_OT_NAME_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-shape.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-shape.h new file mode 100644 index 0000000..afdff72 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-shape.h @@ -0,0 +1,53 @@ +/* + * Copyright © 2013 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_SHAPE_H +#define HB_OT_SHAPE_H + +#include "hb.h" + +HB_BEGIN_DECLS + +/* TODO port to shape-plan / set. */ +HB_EXTERN void +hb_ot_shape_glyphs_closure (hb_font_t *font, + hb_buffer_t *buffer, + const hb_feature_t *features, + unsigned int num_features, + hb_set_t *glyphs); + +HB_EXTERN void +hb_ot_shape_plan_collect_lookups (hb_shape_plan_t *shape_plan, + hb_tag_t table_tag, + hb_set_t *lookup_indexes /* OUT */); + +HB_END_DECLS + +#endif /* HB_OT_SHAPE_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-var.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-var.h new file mode 100644 index 0000000..05147cc --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot-var.h @@ -0,0 +1,191 @@ +/* + * Copyright © 2017 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#if !defined(HB_OT_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_OT_VAR_H +#define HB_OT_VAR_H + +#include "hb.h" + +HB_BEGIN_DECLS + +/** + * HB_OT_TAG_VAR_AXIS_ITALIC: + * + * Registered tag for the roman/italic axis. + */ +#define HB_OT_TAG_VAR_AXIS_ITALIC HB_TAG('i','t','a','l') + +/** + * HB_OT_TAG_VAR_AXIS_OPTICAL_SIZE: + * + * Registered tag for the optical-size axis. + * Note: The optical-size axis supersedes the OpenType `size` feature. + */ +#define HB_OT_TAG_VAR_AXIS_OPTICAL_SIZE HB_TAG('o','p','s','z') + +/** + * HB_OT_TAG_VAR_AXIS_SLANT: + * + * Registered tag for the slant axis + */ +#define HB_OT_TAG_VAR_AXIS_SLANT HB_TAG('s','l','n','t') + +/** + * HB_OT_TAG_VAR_AXIS_WIDTH: + * + * Registered tag for the width axis. + */ +#define HB_OT_TAG_VAR_AXIS_WIDTH HB_TAG('w','d','t','h') + +/** + * HB_OT_TAG_VAR_AXIS_WEIGHT: + * + * Registered tag for the weight axis. + */ +#define HB_OT_TAG_VAR_AXIS_WEIGHT HB_TAG('w','g','h','t') + + +/* + * fvar / avar + */ + +HB_EXTERN hb_bool_t +hb_ot_var_has_data (hb_face_t *face); + + +/* + * Variation axes. + */ + + +HB_EXTERN unsigned int +hb_ot_var_get_axis_count (hb_face_t *face); + +/** + * hb_ot_var_axis_flags_t: + * @HB_OT_VAR_AXIS_FLAG_HIDDEN: The axis should not be exposed directly in user interfaces. + * + * Flags for #hb_ot_var_axis_info_t. + * + * Since: 2.2.0 + */ +typedef enum { /*< flags >*/ + HB_OT_VAR_AXIS_FLAG_HIDDEN = 0x00000001u, + + /*< private >*/ + _HB_OT_VAR_AXIS_FLAG_MAX_VALUE= HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_ot_var_axis_flags_t; + +/** + * hb_ot_var_axis_info_t: + * @axis_index: Index of the axis in the variation-axis array + * @tag: The #hb_tag_t tag identifying the design variation of the axis + * @name_id: The `name` table Name ID that provides display names for the axis + * @flags: The #hb_ot_var_axis_flags_t flags for the axis + * @min_value: The minimum value on the variation axis that the font covers + * @default_value: The position on the variation axis corresponding to the font's defaults + * @max_value: The maximum value on the variation axis that the font covers + * + * Data type for holding variation-axis values. + * + * The minimum, default, and maximum values are in un-normalized, user scales. + * + * Note: at present, the only flag defined for @flags is + * #HB_OT_VAR_AXIS_FLAG_HIDDEN. + * + * Since: 2.2.0 + */ +typedef struct hb_ot_var_axis_info_t { + unsigned int axis_index; + hb_tag_t tag; + hb_ot_name_id_t name_id; + hb_ot_var_axis_flags_t flags; + float min_value; + float default_value; + float max_value; + /*< private >*/ + unsigned int reserved; +} hb_ot_var_axis_info_t; + +HB_EXTERN unsigned int +hb_ot_var_get_axis_infos (hb_face_t *face, + unsigned int start_offset, + unsigned int *axes_count /* IN/OUT */, + hb_ot_var_axis_info_t *axes_array /* OUT */); + +HB_EXTERN hb_bool_t +hb_ot_var_find_axis_info (hb_face_t *face, + hb_tag_t axis_tag, + hb_ot_var_axis_info_t *axis_info); + + +/* + * Named instances. + */ + +HB_EXTERN unsigned int +hb_ot_var_get_named_instance_count (hb_face_t *face); + +HB_EXTERN hb_ot_name_id_t +hb_ot_var_named_instance_get_subfamily_name_id (hb_face_t *face, + unsigned int instance_index); + +HB_EXTERN hb_ot_name_id_t +hb_ot_var_named_instance_get_postscript_name_id (hb_face_t *face, + unsigned int instance_index); + +HB_EXTERN unsigned int +hb_ot_var_named_instance_get_design_coords (hb_face_t *face, + unsigned int instance_index, + unsigned int *coords_length, /* IN/OUT */ + float *coords /* OUT */); + + +/* + * Conversions. + */ + +HB_EXTERN void +hb_ot_var_normalize_variations (hb_face_t *face, + const hb_variation_t *variations, /* IN */ + unsigned int variations_length, + int *coords, /* OUT */ + unsigned int coords_length); + +HB_EXTERN void +hb_ot_var_normalize_coords (hb_face_t *face, + unsigned int coords_length, + const float *design_coords, /* IN */ + int *normalized_coords /* OUT */); + + +HB_END_DECLS + +#endif /* HB_OT_VAR_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot.h new file mode 100644 index 0000000..f2dbaa1 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-ot.h @@ -0,0 +1,49 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#ifndef HB_OT_H +#define HB_OT_H +#define HB_OT_H_IN + +#include "hb.h" + +#include "hb-ot-color.h" +#include "hb-ot-deprecated.h" +#include "hb-ot-font.h" +#include "hb-ot-layout.h" +#include "hb-ot-math.h" +#include "hb-ot-meta.h" +#include "hb-ot-metrics.h" +#include "hb-ot-name.h" +#include "hb-ot-shape.h" +#include "hb-ot-var.h" + +HB_BEGIN_DECLS + +HB_END_DECLS + +#undef HB_OT_H_IN +#endif /* HB_OT_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-set.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-set.h new file mode 100644 index 0000000..93636ab --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-set.h @@ -0,0 +1,200 @@ +/* + * Copyright © 2012 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_SET_H +#define HB_SET_H + +#include "hb-common.h" + +HB_BEGIN_DECLS + + +/** + * HB_SET_VALUE_INVALID: + * + * Unset #hb_set_t value. + * + * Since: 0.9.21 + */ +#define HB_SET_VALUE_INVALID ((hb_codepoint_t) -1) + +/** + * hb_set_t: + * + * Data type for holding a set of integers. #hb_set_t's are + * used to gather and contain glyph IDs, Unicode code + * points, and various other collections of discrete + * values. + * + **/ +typedef struct hb_set_t hb_set_t; + + +HB_EXTERN hb_set_t * +hb_set_create (void); + +HB_EXTERN hb_set_t * +hb_set_get_empty (void); + +HB_EXTERN hb_set_t * +hb_set_reference (hb_set_t *set); + +HB_EXTERN void +hb_set_destroy (hb_set_t *set); + +HB_EXTERN hb_bool_t +hb_set_set_user_data (hb_set_t *set, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + +HB_EXTERN void * +hb_set_get_user_data (const hb_set_t *set, + hb_user_data_key_t *key); + + +/* Returns false if allocation has failed before */ +HB_EXTERN hb_bool_t +hb_set_allocation_successful (const hb_set_t *set); + +HB_EXTERN hb_set_t * +hb_set_copy (const hb_set_t *set); + +HB_EXTERN void +hb_set_clear (hb_set_t *set); + +HB_EXTERN hb_bool_t +hb_set_is_empty (const hb_set_t *set); + +HB_EXTERN void +hb_set_invert (hb_set_t *set); + +HB_EXTERN hb_bool_t +hb_set_has (const hb_set_t *set, + hb_codepoint_t codepoint); + +HB_EXTERN void +hb_set_add (hb_set_t *set, + hb_codepoint_t codepoint); + +HB_EXTERN void +hb_set_add_range (hb_set_t *set, + hb_codepoint_t first, + hb_codepoint_t last); + +HB_EXTERN void +hb_set_add_sorted_array (hb_set_t *set, + const hb_codepoint_t *sorted_codepoints, + unsigned int num_codepoints); + +HB_EXTERN void +hb_set_del (hb_set_t *set, + hb_codepoint_t codepoint); + +HB_EXTERN void +hb_set_del_range (hb_set_t *set, + hb_codepoint_t first, + hb_codepoint_t last); + +HB_EXTERN hb_bool_t +hb_set_is_equal (const hb_set_t *set, + const hb_set_t *other); + +HB_EXTERN unsigned int +hb_set_hash (const hb_set_t *set); + +HB_EXTERN hb_bool_t +hb_set_is_subset (const hb_set_t *set, + const hb_set_t *larger_set); + +HB_EXTERN void +hb_set_set (hb_set_t *set, + const hb_set_t *other); + +HB_EXTERN void +hb_set_union (hb_set_t *set, + const hb_set_t *other); + +HB_EXTERN void +hb_set_intersect (hb_set_t *set, + const hb_set_t *other); + +HB_EXTERN void +hb_set_subtract (hb_set_t *set, + const hb_set_t *other); + +HB_EXTERN void +hb_set_symmetric_difference (hb_set_t *set, + const hb_set_t *other); + +HB_EXTERN unsigned int +hb_set_get_population (const hb_set_t *set); + +/* Returns HB_SET_VALUE_INVALID if set empty. */ +HB_EXTERN hb_codepoint_t +hb_set_get_min (const hb_set_t *set); + +/* Returns HB_SET_VALUE_INVALID if set empty. */ +HB_EXTERN hb_codepoint_t +hb_set_get_max (const hb_set_t *set); + +/* Pass HB_SET_VALUE_INVALID in to get started. */ +HB_EXTERN hb_bool_t +hb_set_next (const hb_set_t *set, + hb_codepoint_t *codepoint); + +/* Pass HB_SET_VALUE_INVALID in to get started. */ +HB_EXTERN hb_bool_t +hb_set_previous (const hb_set_t *set, + hb_codepoint_t *codepoint); + +/* Pass HB_SET_VALUE_INVALID for first and last to get started. */ +HB_EXTERN hb_bool_t +hb_set_next_range (const hb_set_t *set, + hb_codepoint_t *first, + hb_codepoint_t *last); + +/* Pass HB_SET_VALUE_INVALID for first and last to get started. */ +HB_EXTERN hb_bool_t +hb_set_previous_range (const hb_set_t *set, + hb_codepoint_t *first, + hb_codepoint_t *last); + +/* Pass HB_SET_VALUE_INVALID in to get started. */ +HB_EXTERN unsigned int +hb_set_next_many (const hb_set_t *set, + hb_codepoint_t codepoint, + hb_codepoint_t *out, + unsigned int size); + +HB_END_DECLS + +#endif /* HB_SET_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-shape-plan.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-shape-plan.h new file mode 100644 index 0000000..aaf5cf9 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-shape-plan.h @@ -0,0 +1,122 @@ +/* + * Copyright © 2012 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_SHAPE_PLAN_H +#define HB_SHAPE_PLAN_H + +#include "hb-common.h" +#include "hb-font.h" + +HB_BEGIN_DECLS + +/** + * hb_shape_plan_t: + * + * Data type for holding a shaping plan. + * + * Shape plans contain information about how HarfBuzz will shape a + * particular text segment, based on the segment's properties and the + * capabilities in the font face in use. + * + * Shape plans can be queried about how shaping will perform, given a set + * of specific input parameters (script, language, direction, features, + * etc.). + * + **/ +typedef struct hb_shape_plan_t hb_shape_plan_t; + +HB_EXTERN hb_shape_plan_t * +hb_shape_plan_create (hb_face_t *face, + const hb_segment_properties_t *props, + const hb_feature_t *user_features, + unsigned int num_user_features, + const char * const *shaper_list); + +HB_EXTERN hb_shape_plan_t * +hb_shape_plan_create_cached (hb_face_t *face, + const hb_segment_properties_t *props, + const hb_feature_t *user_features, + unsigned int num_user_features, + const char * const *shaper_list); + +HB_EXTERN hb_shape_plan_t * +hb_shape_plan_create2 (hb_face_t *face, + const hb_segment_properties_t *props, + const hb_feature_t *user_features, + unsigned int num_user_features, + const int *coords, + unsigned int num_coords, + const char * const *shaper_list); + +HB_EXTERN hb_shape_plan_t * +hb_shape_plan_create_cached2 (hb_face_t *face, + const hb_segment_properties_t *props, + const hb_feature_t *user_features, + unsigned int num_user_features, + const int *coords, + unsigned int num_coords, + const char * const *shaper_list); + + +HB_EXTERN hb_shape_plan_t * +hb_shape_plan_get_empty (void); + +HB_EXTERN hb_shape_plan_t * +hb_shape_plan_reference (hb_shape_plan_t *shape_plan); + +HB_EXTERN void +hb_shape_plan_destroy (hb_shape_plan_t *shape_plan); + +HB_EXTERN hb_bool_t +hb_shape_plan_set_user_data (hb_shape_plan_t *shape_plan, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + +HB_EXTERN void * +hb_shape_plan_get_user_data (const hb_shape_plan_t *shape_plan, + hb_user_data_key_t *key); + + +HB_EXTERN hb_bool_t +hb_shape_plan_execute (hb_shape_plan_t *shape_plan, + hb_font_t *font, + hb_buffer_t *buffer, + const hb_feature_t *features, + unsigned int num_features); + +HB_EXTERN const char * +hb_shape_plan_get_shaper (hb_shape_plan_t *shape_plan); + + +HB_END_DECLS + +#endif /* HB_SHAPE_PLAN_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-shape.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-shape.h new file mode 100644 index 0000000..922f8c0 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-shape.h @@ -0,0 +1,62 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * Copyright © 2012 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_SHAPE_H +#define HB_SHAPE_H + +#include "hb-common.h" +#include "hb-buffer.h" +#include "hb-font.h" + +HB_BEGIN_DECLS + + +HB_EXTERN void +hb_shape (hb_font_t *font, + hb_buffer_t *buffer, + const hb_feature_t *features, + unsigned int num_features); + +HB_EXTERN hb_bool_t +hb_shape_full (hb_font_t *font, + hb_buffer_t *buffer, + const hb_feature_t *features, + unsigned int num_features, + const char * const *shaper_list); + +HB_EXTERN const char ** +hb_shape_list_shapers (void); + + +HB_END_DECLS + +#endif /* HB_SHAPE_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-style.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-style.h new file mode 100644 index 0000000..d17d2da --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-style.h @@ -0,0 +1,81 @@ +/* + * Copyright © 2019 Ebrahim Byagowi + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_STYLE_H +#define HB_STYLE_H + +#include "hb.h" + +HB_BEGIN_DECLS + +/** + * hb_style_tag_t: + * @HB_STYLE_TAG_ITALIC: Used to vary between non-italic and italic. + * A value of 0 can be interpreted as "Roman" (non-italic); a value of 1 can + * be interpreted as (fully) italic. + * @HB_STYLE_TAG_OPTICAL_SIZE: Used to vary design to suit different text sizes. + * Non-zero. Values can be interpreted as text size, in points. + * @HB_STYLE_TAG_SLANT_ANGLE: Used to vary between upright and slanted text. Values + * must be greater than -90 and less than +90. Values can be interpreted as + * the angle, in counter-clockwise degrees, of oblique slant from whatever the + * designer considers to be upright for that font design. Typical right-leaning + * Italic fonts have a negative slant angle (typically around -12) + * @HB_STYLE_TAG_SLANT_RATIO: same as @HB_STYLE_TAG_SLANT_ANGLE expression as ratio. + * Typical right-leaning Italic fonts have a positive slant ratio (typically around 0.2) + * @HB_STYLE_TAG_WIDTH: Used to vary width of text from narrower to wider. + * Non-zero. Values can be interpreted as a percentage of whatever the font + * designer considers “normal width” for that font design. + * @HB_STYLE_TAG_WEIGHT: Used to vary stroke thicknesses or other design details + * to give variation from lighter to blacker. Values can be interpreted in direct + * comparison to values for usWeightClass in the OS/2 table, + * or the CSS font-weight property. + * + * Defined by [OpenType Design-Variation Axis Tag Registry](https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg). + * + * Since: 3.0.0 + **/ +typedef enum +{ + HB_STYLE_TAG_ITALIC = HB_TAG ('i','t','a','l'), + HB_STYLE_TAG_OPTICAL_SIZE = HB_TAG ('o','p','s','z'), + HB_STYLE_TAG_SLANT_ANGLE = HB_TAG ('s','l','n','t'), + HB_STYLE_TAG_SLANT_RATIO = HB_TAG ('S','l','n','t'), + HB_STYLE_TAG_WIDTH = HB_TAG ('w','d','t','h'), + HB_STYLE_TAG_WEIGHT = HB_TAG ('w','g','h','t'), + + /*< private >*/ + _HB_STYLE_TAG_MAX_VALUE = HB_TAG_MAX_SIGNED /*< skip >*/ +} hb_style_tag_t; + + +HB_EXTERN float +hb_style_get_value (hb_font_t *font, hb_style_tag_t style_tag); + +HB_END_DECLS + +#endif /* HB_STYLE_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-unicode.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-unicode.h new file mode 100644 index 0000000..faa8d67 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-unicode.h @@ -0,0 +1,643 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * Copyright © 2011 Codethink Limited + * Copyright © 2011,2012 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + * Codethink Author(s): Ryan Lortie + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_UNICODE_H +#define HB_UNICODE_H + +#include "hb-common.h" + +HB_BEGIN_DECLS + + +/** + * HB_UNICODE_MAX: + * + * Maximum valid Unicode code point. + * + * Since: 1.9.0 + **/ +#define HB_UNICODE_MAX 0x10FFFFu + + +/** + * hb_unicode_general_category_t: + * @HB_UNICODE_GENERAL_CATEGORY_CONTROL: [Cc] + * @HB_UNICODE_GENERAL_CATEGORY_FORMAT: [Cf] + * @HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED: [Cn] + * @HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE: [Co] + * @HB_UNICODE_GENERAL_CATEGORY_SURROGATE: [Cs] + * @HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER: [Ll] + * @HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER: [Lm] + * @HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER: [Lo] + * @HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER: [Lt] + * @HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER: [Lu] + * @HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK: [Mc] + * @HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK: [Me] + * @HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK: [Mn] + * @HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER: [Nd] + * @HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER: [Nl] + * @HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER: [No] + * @HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION: [Pc] + * @HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION: [Pd] + * @HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION: [Pe] + * @HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION: [Pf] + * @HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION: [Pi] + * @HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION: [Po] + * @HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION: [Ps] + * @HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL: [Sc] + * @HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL: [Sk] + * @HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL: [Sm] + * @HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL: [So] + * @HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR: [Zl] + * @HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR: [Zp] + * @HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR: [Zs] + * + * Data type for the "General_Category" (gc) property from + * the Unicode Character Database. + **/ + +/* Unicode Character Database property: General_Category (gc) */ +typedef enum +{ + HB_UNICODE_GENERAL_CATEGORY_CONTROL, /* Cc */ + HB_UNICODE_GENERAL_CATEGORY_FORMAT, /* Cf */ + HB_UNICODE_GENERAL_CATEGORY_UNASSIGNED, /* Cn */ + HB_UNICODE_GENERAL_CATEGORY_PRIVATE_USE, /* Co */ + HB_UNICODE_GENERAL_CATEGORY_SURROGATE, /* Cs */ + HB_UNICODE_GENERAL_CATEGORY_LOWERCASE_LETTER, /* Ll */ + HB_UNICODE_GENERAL_CATEGORY_MODIFIER_LETTER, /* Lm */ + HB_UNICODE_GENERAL_CATEGORY_OTHER_LETTER, /* Lo */ + HB_UNICODE_GENERAL_CATEGORY_TITLECASE_LETTER, /* Lt */ + HB_UNICODE_GENERAL_CATEGORY_UPPERCASE_LETTER, /* Lu */ + HB_UNICODE_GENERAL_CATEGORY_SPACING_MARK, /* Mc */ + HB_UNICODE_GENERAL_CATEGORY_ENCLOSING_MARK, /* Me */ + HB_UNICODE_GENERAL_CATEGORY_NON_SPACING_MARK, /* Mn */ + HB_UNICODE_GENERAL_CATEGORY_DECIMAL_NUMBER, /* Nd */ + HB_UNICODE_GENERAL_CATEGORY_LETTER_NUMBER, /* Nl */ + HB_UNICODE_GENERAL_CATEGORY_OTHER_NUMBER, /* No */ + HB_UNICODE_GENERAL_CATEGORY_CONNECT_PUNCTUATION, /* Pc */ + HB_UNICODE_GENERAL_CATEGORY_DASH_PUNCTUATION, /* Pd */ + HB_UNICODE_GENERAL_CATEGORY_CLOSE_PUNCTUATION, /* Pe */ + HB_UNICODE_GENERAL_CATEGORY_FINAL_PUNCTUATION, /* Pf */ + HB_UNICODE_GENERAL_CATEGORY_INITIAL_PUNCTUATION, /* Pi */ + HB_UNICODE_GENERAL_CATEGORY_OTHER_PUNCTUATION, /* Po */ + HB_UNICODE_GENERAL_CATEGORY_OPEN_PUNCTUATION, /* Ps */ + HB_UNICODE_GENERAL_CATEGORY_CURRENCY_SYMBOL, /* Sc */ + HB_UNICODE_GENERAL_CATEGORY_MODIFIER_SYMBOL, /* Sk */ + HB_UNICODE_GENERAL_CATEGORY_MATH_SYMBOL, /* Sm */ + HB_UNICODE_GENERAL_CATEGORY_OTHER_SYMBOL, /* So */ + HB_UNICODE_GENERAL_CATEGORY_LINE_SEPARATOR, /* Zl */ + HB_UNICODE_GENERAL_CATEGORY_PARAGRAPH_SEPARATOR, /* Zp */ + HB_UNICODE_GENERAL_CATEGORY_SPACE_SEPARATOR /* Zs */ +} hb_unicode_general_category_t; + +/** + * hb_unicode_combining_class_t: + * @HB_UNICODE_COMBINING_CLASS_NOT_REORDERED: Spacing and enclosing marks; also many vowel and consonant signs, even if nonspacing + * @HB_UNICODE_COMBINING_CLASS_OVERLAY: Marks which overlay a base letter or symbol + * @HB_UNICODE_COMBINING_CLASS_NUKTA: Diacritic nukta marks in Brahmi-derived scripts + * @HB_UNICODE_COMBINING_CLASS_KANA_VOICING: Hiragana/Katakana voicing marks + * @HB_UNICODE_COMBINING_CLASS_VIRAMA: Viramas + * @HB_UNICODE_COMBINING_CLASS_CCC10: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC11: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC12: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC13: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC14: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC15: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC16: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC17: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC18: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC19: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC20: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC21: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC22: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC23: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC24: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC25: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC26: [Hebrew] + * @HB_UNICODE_COMBINING_CLASS_CCC27: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC28: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC29: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC30: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC31: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC32: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC33: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC34: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC35: [Arabic] + * @HB_UNICODE_COMBINING_CLASS_CCC36: [Syriac] + * @HB_UNICODE_COMBINING_CLASS_CCC84: [Telugu] + * @HB_UNICODE_COMBINING_CLASS_CCC91: [Telugu] + * @HB_UNICODE_COMBINING_CLASS_CCC103: [Thai] + * @HB_UNICODE_COMBINING_CLASS_CCC107: [Thai] + * @HB_UNICODE_COMBINING_CLASS_CCC118: [Lao] + * @HB_UNICODE_COMBINING_CLASS_CCC122: [Lao] + * @HB_UNICODE_COMBINING_CLASS_CCC129: [Tibetan] + * @HB_UNICODE_COMBINING_CLASS_CCC130: [Tibetan] + * @HB_UNICODE_COMBINING_CLASS_CCC133: [Tibetan] + * @HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT: Marks attached at the bottom left + * @HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW: Marks attached directly below + * @HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE: Marks attached directly above + * @HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT: Marks attached at the top right + * @HB_UNICODE_COMBINING_CLASS_BELOW_LEFT: Distinct marks at the bottom left + * @HB_UNICODE_COMBINING_CLASS_BELOW: Distinct marks directly below + * @HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT: Distinct marks at the bottom right + * @HB_UNICODE_COMBINING_CLASS_LEFT: Distinct marks to the left + * @HB_UNICODE_COMBINING_CLASS_RIGHT: Distinct marks to the right + * @HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT: Distinct marks at the top left + * @HB_UNICODE_COMBINING_CLASS_ABOVE: Distinct marks directly above + * @HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT: Distinct marks at the top right + * @HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW: Distinct marks subtending two bases + * @HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE: Distinct marks extending above two bases + * @HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT: Greek iota subscript only + * @HB_UNICODE_COMBINING_CLASS_INVALID: Invalid combining class + * + * Data type for the Canonical_Combining_Class (ccc) property + * from the Unicode Character Database. + * + * Note: newer versions of Unicode may add new values. + * Client programs should be ready to handle any value in the 0..254 range + * being returned from hb_unicode_combining_class(). + * + **/ +typedef enum +{ + HB_UNICODE_COMBINING_CLASS_NOT_REORDERED = 0, + HB_UNICODE_COMBINING_CLASS_OVERLAY = 1, + HB_UNICODE_COMBINING_CLASS_NUKTA = 7, + HB_UNICODE_COMBINING_CLASS_KANA_VOICING = 8, + HB_UNICODE_COMBINING_CLASS_VIRAMA = 9, + + /* Hebrew */ + HB_UNICODE_COMBINING_CLASS_CCC10 = 10, + HB_UNICODE_COMBINING_CLASS_CCC11 = 11, + HB_UNICODE_COMBINING_CLASS_CCC12 = 12, + HB_UNICODE_COMBINING_CLASS_CCC13 = 13, + HB_UNICODE_COMBINING_CLASS_CCC14 = 14, + HB_UNICODE_COMBINING_CLASS_CCC15 = 15, + HB_UNICODE_COMBINING_CLASS_CCC16 = 16, + HB_UNICODE_COMBINING_CLASS_CCC17 = 17, + HB_UNICODE_COMBINING_CLASS_CCC18 = 18, + HB_UNICODE_COMBINING_CLASS_CCC19 = 19, + HB_UNICODE_COMBINING_CLASS_CCC20 = 20, + HB_UNICODE_COMBINING_CLASS_CCC21 = 21, + HB_UNICODE_COMBINING_CLASS_CCC22 = 22, + HB_UNICODE_COMBINING_CLASS_CCC23 = 23, + HB_UNICODE_COMBINING_CLASS_CCC24 = 24, + HB_UNICODE_COMBINING_CLASS_CCC25 = 25, + HB_UNICODE_COMBINING_CLASS_CCC26 = 26, + + /* Arabic */ + HB_UNICODE_COMBINING_CLASS_CCC27 = 27, + HB_UNICODE_COMBINING_CLASS_CCC28 = 28, + HB_UNICODE_COMBINING_CLASS_CCC29 = 29, + HB_UNICODE_COMBINING_CLASS_CCC30 = 30, + HB_UNICODE_COMBINING_CLASS_CCC31 = 31, + HB_UNICODE_COMBINING_CLASS_CCC32 = 32, + HB_UNICODE_COMBINING_CLASS_CCC33 = 33, + HB_UNICODE_COMBINING_CLASS_CCC34 = 34, + HB_UNICODE_COMBINING_CLASS_CCC35 = 35, + + /* Syriac */ + HB_UNICODE_COMBINING_CLASS_CCC36 = 36, + + /* Telugu */ + HB_UNICODE_COMBINING_CLASS_CCC84 = 84, + HB_UNICODE_COMBINING_CLASS_CCC91 = 91, + + /* Thai */ + HB_UNICODE_COMBINING_CLASS_CCC103 = 103, + HB_UNICODE_COMBINING_CLASS_CCC107 = 107, + + /* Lao */ + HB_UNICODE_COMBINING_CLASS_CCC118 = 118, + HB_UNICODE_COMBINING_CLASS_CCC122 = 122, + + /* Tibetan */ + HB_UNICODE_COMBINING_CLASS_CCC129 = 129, + HB_UNICODE_COMBINING_CLASS_CCC130 = 130, + HB_UNICODE_COMBINING_CLASS_CCC133 = 132, + + + HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW_LEFT = 200, + HB_UNICODE_COMBINING_CLASS_ATTACHED_BELOW = 202, + HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE = 214, + HB_UNICODE_COMBINING_CLASS_ATTACHED_ABOVE_RIGHT = 216, + HB_UNICODE_COMBINING_CLASS_BELOW_LEFT = 218, + HB_UNICODE_COMBINING_CLASS_BELOW = 220, + HB_UNICODE_COMBINING_CLASS_BELOW_RIGHT = 222, + HB_UNICODE_COMBINING_CLASS_LEFT = 224, + HB_UNICODE_COMBINING_CLASS_RIGHT = 226, + HB_UNICODE_COMBINING_CLASS_ABOVE_LEFT = 228, + HB_UNICODE_COMBINING_CLASS_ABOVE = 230, + HB_UNICODE_COMBINING_CLASS_ABOVE_RIGHT = 232, + HB_UNICODE_COMBINING_CLASS_DOUBLE_BELOW = 233, + HB_UNICODE_COMBINING_CLASS_DOUBLE_ABOVE = 234, + + HB_UNICODE_COMBINING_CLASS_IOTA_SUBSCRIPT = 240, + + HB_UNICODE_COMBINING_CLASS_INVALID = 255 +} hb_unicode_combining_class_t; + + +/* + * hb_unicode_funcs_t + */ + +/** + * hb_unicode_funcs_t: + * + * Data type containing a set of virtual methods used for + * accessing various Unicode character properties. + * + * HarfBuzz provides a default function for each of the + * methods in #hb_unicode_funcs_t. Client programs can implement + * their own replacements for the individual Unicode functions, as + * needed, and replace the default by calling the setter for a + * method. + **/ +typedef struct hb_unicode_funcs_t hb_unicode_funcs_t; + + +/* + * just give me the best implementation you've got there. + */ +HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_get_default (void); + + +HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_create (hb_unicode_funcs_t *parent); + +HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_get_empty (void); + +HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_reference (hb_unicode_funcs_t *ufuncs); + +HB_EXTERN void +hb_unicode_funcs_destroy (hb_unicode_funcs_t *ufuncs); + +HB_EXTERN hb_bool_t +hb_unicode_funcs_set_user_data (hb_unicode_funcs_t *ufuncs, + hb_user_data_key_t *key, + void * data, + hb_destroy_func_t destroy, + hb_bool_t replace); + + +HB_EXTERN void * +hb_unicode_funcs_get_user_data (const hb_unicode_funcs_t *ufuncs, + hb_user_data_key_t *key); + + +HB_EXTERN void +hb_unicode_funcs_make_immutable (hb_unicode_funcs_t *ufuncs); + +HB_EXTERN hb_bool_t +hb_unicode_funcs_is_immutable (hb_unicode_funcs_t *ufuncs); + +HB_EXTERN hb_unicode_funcs_t * +hb_unicode_funcs_get_parent (hb_unicode_funcs_t *ufuncs); + + +/* + * funcs + */ + +/* typedefs */ + +/** + * hb_unicode_combining_class_func_t: + * @ufuncs: A Unicode-functions structure + * @unicode: The code point to query + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should retrieve the Canonical Combining Class (ccc) + * property for a specified Unicode code point. + * + * Return value: The #hb_unicode_combining_class_t of @unicode + * + **/ +typedef hb_unicode_combining_class_t (*hb_unicode_combining_class_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode, + void *user_data); + +/** + * hb_unicode_general_category_func_t: + * @ufuncs: A Unicode-functions structure + * @unicode: The code point to query + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should retrieve the General Category property for + * a specified Unicode code point. + * + * Return value: The #hb_unicode_general_category_t of @unicode + * + **/ +typedef hb_unicode_general_category_t (*hb_unicode_general_category_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode, + void *user_data); + +/** + * hb_unicode_mirroring_func_t: + * @ufuncs: A Unicode-functions structure + * @unicode: The code point to query + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should retrieve the Bi-Directional Mirroring Glyph + * code point for a specified Unicode code point. + * + * Note: If a code point does not have a specified + * Bi-Directional Mirroring Glyph defined, the method should + * return the original code point. + * + * Return value: The #hb_codepoint_t of the Mirroring Glyph for @unicode + * + **/ +typedef hb_codepoint_t (*hb_unicode_mirroring_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode, + void *user_data); + +/** + * hb_unicode_script_func_t: + * @ufuncs: A Unicode-functions structure + * @unicode: The code point to query + * @user_data: User data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should retrieve the Script property for a + * specified Unicode code point. + * + * Return value: The #hb_script_t of @unicode + * + **/ +typedef hb_script_t (*hb_unicode_script_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode, + void *user_data); + +/** + * hb_unicode_compose_func_t: + * @ufuncs: A Unicode-functions structure + * @a: The first code point to compose + * @b: The second code point to compose + * @ab: (out): The composed code point + * @user_data: user data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should compose a sequence of two input Unicode code + * points by canonical equivalence, returning the composed code + * point in a #hb_codepoint_t output parameter (if successful). + * The method must return an #hb_bool_t indicating the success + * of the composition. + * + * Return value: `true` is @a,@b composed, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_unicode_compose_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t a, + hb_codepoint_t b, + hb_codepoint_t *ab, + void *user_data); + +/** + * hb_unicode_decompose_func_t: + * @ufuncs: A Unicode-functions structure + * @ab: The code point to decompose + * @a: (out): The first decomposed code point + * @b: (out): The second decomposed code point + * @user_data: user data pointer passed by the caller + * + * A virtual method for the #hb_unicode_funcs_t structure. + * + * This method should decompose an input Unicode code point, + * returning the two decomposed code points in #hb_codepoint_t + * output parameters (if successful). The method must return an + * #hb_bool_t indicating the success of the composition. + * + * Return value: `true` if @ab decomposed, `false` otherwise + * + **/ +typedef hb_bool_t (*hb_unicode_decompose_func_t) (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t ab, + hb_codepoint_t *a, + hb_codepoint_t *b, + void *user_data); + +/* func setters */ + +/** + * hb_unicode_funcs_set_combining_class_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_combining_class_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_unicode_funcs_set_combining_class_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_combining_class_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_funcs_set_general_category_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_general_category_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_unicode_funcs_set_general_category_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_general_category_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_funcs_set_mirroring_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_mirroring_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_unicode_funcs_set_mirroring_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_mirroring_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_funcs_set_script_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_script_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_unicode_funcs_set_script_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_script_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_funcs_set_compose_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_compose_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_unicode_funcs_set_compose_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_compose_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/** + * hb_unicode_funcs_set_decompose_func: + * @ufuncs: A Unicode-functions structure + * @func: (closure user_data) (destroy destroy) (scope notified): The callback function to assign + * @user_data: Data to pass to @func + * @destroy: (nullable): The function to call when @user_data is not needed anymore + * + * Sets the implementation function for #hb_unicode_decompose_func_t. + * + * Since: 0.9.2 + **/ +HB_EXTERN void +hb_unicode_funcs_set_decompose_func (hb_unicode_funcs_t *ufuncs, + hb_unicode_decompose_func_t func, + void *user_data, hb_destroy_func_t destroy); + +/* accessors */ + +/** + * hb_unicode_combining_class: + * @ufuncs: The Unicode-functions structure + * @unicode: The code point to query + * + * Retrieves the Canonical Combining Class (ccc) property + * of code point @unicode. + * + * Return value: The #hb_unicode_combining_class_t of @unicode + * + * Since: 0.9.2 + **/ +HB_EXTERN hb_unicode_combining_class_t +hb_unicode_combining_class (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode); + +/** + * hb_unicode_general_category: + * @ufuncs: The Unicode-functions structure + * @unicode: The code point to query + * + * Retrieves the General Category (gc) property + * of code point @unicode. + * + * Return value: The #hb_unicode_general_category_t of @unicode + * + * Since: 0.9.2 + **/ +HB_EXTERN hb_unicode_general_category_t +hb_unicode_general_category (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode); + +/** + * hb_unicode_mirroring: + * @ufuncs: The Unicode-functions structure + * @unicode: The code point to query + * + * Retrieves the Bi-directional Mirroring Glyph code + * point defined for code point @unicode. + * + * Return value: The #hb_codepoint_t of the Mirroring Glyph for @unicode + * + * Since: 0.9.2 + **/ +HB_EXTERN hb_codepoint_t +hb_unicode_mirroring (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode); + +/** + * hb_unicode_script: + * @ufuncs: The Unicode-functions structure + * @unicode: The code point to query + * + * Retrieves the #hb_script_t script to which code + * point @unicode belongs. + * + * Return value: The #hb_script_t of @unicode + * + * Since: 0.9.2 + **/ +HB_EXTERN hb_script_t +hb_unicode_script (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t unicode); + +HB_EXTERN hb_bool_t +hb_unicode_compose (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t a, + hb_codepoint_t b, + hb_codepoint_t *ab); + +HB_EXTERN hb_bool_t +hb_unicode_decompose (hb_unicode_funcs_t *ufuncs, + hb_codepoint_t ab, + hb_codepoint_t *a, + hb_codepoint_t *b); + +HB_END_DECLS + +#endif /* HB_UNICODE_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-version.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-version.h new file mode 100644 index 0000000..1070262 --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb-version.h @@ -0,0 +1,95 @@ +/* + * Copyright © 2011 Google, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Google Author(s): Behdad Esfahbod + */ + +#if !defined(HB_H_IN) && !defined(HB_NO_SINGLE_HEADER_ERROR) +#error "Include instead." +#endif + +#ifndef HB_VERSION_H +#define HB_VERSION_H + +#include "hb-common.h" + +HB_BEGIN_DECLS + + +/** + * HB_VERSION_MAJOR: + * + * The major component of the library version available at compile-time. + */ +#define HB_VERSION_MAJOR 6 +/** + * HB_VERSION_MINOR: + * + * The minor component of the library version available at compile-time. + */ +#define HB_VERSION_MINOR 0 +/** + * HB_VERSION_MICRO: + * + * The micro component of the library version available at compile-time. + */ +#define HB_VERSION_MICRO 0 + +/** + * HB_VERSION_STRING: + * + * A string literal containing the library version available at compile-time. + */ +#define HB_VERSION_STRING "6.0.0" + +/** + * HB_VERSION_ATLEAST: + * @major: the major component of the version number + * @minor: the minor component of the version number + * @micro: the micro component of the version number + * + * Tests the library version at compile-time against a minimum value, + * as three integer components. + */ +#define HB_VERSION_ATLEAST(major,minor,micro) \ + ((major)*10000+(minor)*100+(micro) <= \ + HB_VERSION_MAJOR*10000+HB_VERSION_MINOR*100+HB_VERSION_MICRO) + + +HB_EXTERN void +hb_version (unsigned int *major, + unsigned int *minor, + unsigned int *micro); + +HB_EXTERN const char * +hb_version_string (void); + +HB_EXTERN hb_bool_t +hb_version_atleast (unsigned int major, + unsigned int minor, + unsigned int micro); + + +HB_END_DECLS + +#endif /* HB_VERSION_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb.h b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb.h new file mode 100644 index 0000000..360686c --- /dev/null +++ b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/Headers/hb.h @@ -0,0 +1,50 @@ +/* + * Copyright © 2009 Red Hat, Inc. + * + * This is part of HarfBuzz, a text shaping library. + * + * Permission is hereby granted, without written agreement and without + * license or royalty fees, to use, copy, modify, and distribute this + * software and its documentation for any purpose, provided that the + * above copyright notice and the following two paragraphs appear in + * all copies of this software. + * + * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR + * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES + * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN + * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + * DAMAGE. + * + * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, + * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS + * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO + * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. + * + * Red Hat Author(s): Behdad Esfahbod + */ + +#ifndef HB_H +#define HB_H +#define HB_H_IN + +#include "hb-blob.h" +#include "hb-buffer.h" +#include "hb-common.h" +#include "hb-deprecated.h" +#include "hb-draw.h" +#include "hb-face.h" +#include "hb-font.h" +#include "hb-map.h" +#include "hb-set.h" +#include "hb-shape.h" +#include "hb-shape-plan.h" +#include "hb-style.h" +#include "hb-unicode.h" +#include "hb-version.h" + +HB_BEGIN_DECLS +HB_END_DECLS + +#undef HB_H_IN +#endif /* HB_H */ diff --git a/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/libharfbuzz_sim.a b/iOS/libraries/harfbuzz.xcframework/ios-arm64_x86_64-simulator/libharfbuzz_sim.a new file mode 100644 index 0000000000000000000000000000000000000000..f8d309647ee8e37546e6a23fa6a2e458489a35db GIT binary patch literal 2755928 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%0AJgN%CpQ>X^VU> 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

-8E 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