h&yr1      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Safe-Inferred  harfbuzz-pureClone the given array so it can be freed without the losing access to the data. Uses memcpy- so it gets very heavily optimized by the OS. harfbuzz-pureIterate over an array in a ForeignPtr, no matter how small or large it is. harfbuzz-pureVariation of peekArray, taking a tail to append to the decoded list. harfbuzz-pure$How many words should be decoded by  & . harfbuzz-pureConvert an array from C code into a Haskell list, performant no matter how small or large it is. harfbuzz-pure0This "function" has a superficial similarity to  but it is in fact a malevolent agent of chaos. It unpicks the seams of reality (and the  monad) so that the normal rules no longer apply. It lulls you into thinking it is reasonable, but when you are not looking it stabs you in the back and aliases all of your mutable buffers. The carcass of many a seasoned Haskell programmer lie strewn at its feet.!Witness the trail of destruction: https://github.com/haskell/bytestring/commit/71c4b438c675aa360c79d79acc9a491e7bbc26e7 https://github.com/haskell/bytestring/commit/210c656390ae617d9ee3b8bcff5c88dd17cef8da https://github.com/haskell/aeson/commit/720b857e2e0acf2edc4f5512f2b217a89449a89d ,https://ghc.haskell.org/trac/ghc/ticket/3486 ,https://ghc.haskell.org/trac/ghc/ticket/3487 ,https://ghc.haskell.org/trac/ghc/ticket/7270 1https://gitlab.haskell.org/ghc/ghc/-/issues/222047Do not talk about "safe"! You do not know what is safe!Yield not to its blasphemous call! Flee traveller! Flee or you will be corrupted and devoured! harfbuzz-pureHarfbuzz produces ~40x as much output data as its input data. In many applications that input data would be a large fraction of its heap. As such, unless callers are processing these results, it is usually more efficient for Haskell to recompute the glyphs than to store them.This synonym of * is used to instruct Haskell of this fact. Safe-Inferred W harfbuzz-pureIndicates that Harfbuzz has ran out of memory during a computation. Should be extremely rare!None ;/-9  harfbuzz-pureHolds positions of the glyph in both horizontal & vertical directions. All positions are relative to current point.  harfbuzz-pureHow much the line advances after drawing this glyph when setting text in horizontal direction.  harfbuzz-pureHow much the line advances after drawing this glyph when setting text in vertical direction.  harfbuzz-pureHow much the glyph moves on the X-axis before drawing it, this should not effect how much the line advances. harfbuzz-pureHow much the glyph moves on the Y-axis before drawing it, this should not effect how much the line advances. harfbuzz-pureHolds information about the glyphs & their relation to input text. harfbuzz-pure"Glyph index (or unicode codepoint) harfbuzz-pureThe index of the character in the original text that corresponds to this . More than one  may have the same  value if they resulted from the same character, & when more than one character gets merged into the same glyph  will have the smallest cluster value of them. By default some characters are merged into the same cluster even when they are seperate glyphs, "'s .? property allows selecting more fine grained cluster handling. harfbuzz-pureIndicates 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. harfbuzz-pureIndicates 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. See  https://harfbuzz.github.io/harfbuzz-hb-buffer.html#HB_GLYPH_FLAG_UNSAFE_TO_CONCAT for more details. harfbuzz-pureIn 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. harfbuzz-pure&Directly corresponds to "hb_buffer_t". harfbuzz-pureRepresents a natural written language. Corresponds to a BCP47 language tag. harfbuzz-pure*The direction of a text segment or buffer. harfbuzz-pure.Defines how fine the groupings represented by 's  property are.` harfbuzz-pure harfbuzz-pure#Allows configuring properties on a U when creating it.@ harfbuzz-pureSets the horizontal and vertical pixels-per-em (ppem) of the newly-created U.A harfbuzz-pure)Sets the "point size" of a newly-created U. Used in CoreText to implement optical sizing. Note: There are 72 points in an inch.B harfbuzz-pure:Sets the horizontal and vertical scale of a newly-created U.C harfbuzz-pure.Sets the font-face value of the newly-created U.D harfbuzz-pureSets the parent U of the newly-created U.E harfbuzz-pure.Sets the "synthetic slant" of a newly-created U. By default is zero. Synthetic slant is the graphical skew applied to the font at rendering time. Harfbuzz needs to know this value to adjust shaping results, metrics, and style valuesto match the slanted rendering. Note: The slant value is a ratio. For example, a 20% slant would be represented as a 0.2 value.F harfbuzz-pureApplies a list of font-variation settings to a font. Axes not included will be effectively set to their default values.G harfbuzz-pureApplies a list of variation coordinates (in design-space units) to a newly-created U. Axes not included in coords will be effectively set to their default values.H harfbuzz-pureApplies a list of variation coordinates (in normalized units) to a newly-created U. Axes not included in coords will be effectively set to their default values.I harfbuzz-pure9Sets design coords of a font from a named instance index.J harfbuzz-pureFont-wide extent values, measured in font units. Note that typically ascender is positive and descender is negative, in coordinate systems that grow up. Note: Due to presence of 9 additional private fields, arrays of font extents will not decode correctly. So far this doesn't matter.L harfbuzz-pure$The height of typographic ascenders.M harfbuzz-pure$The depth of typographic descenders.N harfbuzz-pureThe suggested line-spacing gap.O harfbuzz-pureGlyph extent values, measured in font units. Note that height is negative, in coordinate systems that grow up.Q harfbuzz-pure=Distance from the x-origin to the left extremum of the glyph.R harfbuzz-pure on it. HarfBuzz assumes size is always set and will access frSize ` member of  unconditionally. harfbuzz-pureConstructs a sub-font font object from the specified parent font, replicating the parent's properties.x harfbuzz-pureFetches the empty U object.y harfbuzz-pure Fetches the V associated with the specified U object.z harfbuzz-pure>Fetches the glyph ID for a Unicode codepoint in the specified U', with an optional variation selector.{ harfbuzz-pureFetches the advance for a glyph ID from the specified font, in a text segment of the specified direction. Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of direction .| harfbuzz-pureFetches the (x,y) coordinates of a specified contour-point index in the specified glyph, within the specified font.} harfbuzz-pureFetches the (X,Y) coordinates of a specified contour-point index in the specified glyph ID in the specified font, with respect to the origin in a text segment in the specified direction. Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of direction .~ harfbuzz-pure Fetches the O& data for a glyph ID in the specified U. harfbuzz-pure Fetches the O& data for a glyph ID in the specified U, with respect to the origin in a text segment in the specified direction. Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of given . harfbuzz-pureFetches the glyph ID that corresponds to a name string in the specified U. harfbuzz-pure4Fetches the advance for a glyph ID in the specified U , for horizontal text segments. harfbuzz-pure4Fetches the advance for a glyph ID in the specified U, for vertical text segments. harfbuzz-pureFetches the kerning-adjustment value for a glyph-pair in the specified U , for horizontal text segments. harfbuzz-pureFetches the (X,Y) coordinate of the origin for a glyph ID in the specified U , for horizontal text segments. harfbuzz-pureFetches the (X,Y) coordinates of the origin for a glyph ID in the specified U, for vertical text segments. harfbuzz-pureFetches the kerning-adjustment value for a glyph-pair in the specified U. Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of given . harfbuzz-pure>Fetches the glyph-name string for a glyph ID in the specified U. harfbuzz-pure Variant of  which lets you specify the maximum of the return value. Defaults to 32. harfbuzz-pureFetches the (X,Y) coordinates of the origin for a glyph in the specified U. Calls the appropriate direction-specific variant (horizontal or vertical) depending on the value of given . harfbuzz-pureFetches the nominal glyph ID for a Unicode codepoint in the specified font. This version of the function should not be used to fetch glyph IDs for codepoints modified by variation selectors. For variation-selector support use  or use z. harfbuzz-pure Fetches the parent of the given U. harfbuzz-pure* which has no effect on the newly-created U. harfbuzz-pure$Internal utility to apply the given > to the given U. harfbuzz-pure Variant of v which applies the given >. harfbuzz-pure Variant of w which applies the given >. harfbuzz-pure1Variant of createSubFont which applies the given >. harfbuzz-pure3Convert from a ByteString to Harfbuzz's equivalent. harfbuzz-pureConvert from a ByteString to a temporary copy of Harfbuzz's equivalent. Do not use this Blob outside the passed callback. harfbuzz-pure3Convert to a ByteString from Harfbuzz's equivalent. harfbuzz-pureInternal utility for defining trivial language bindings unwrapping V foreign pointers. harfbuzz-pureInternal utility for defining trivial language bindings unwrapping U foreign pointers. harfbuzz-pureInternal utility for exposing Harfbuzz functions that populate a bitset. Converts the populated bitset to a Haskell lazy linked-list. harfbuzz-pure:Creates a Harfbuzz bitset wrapping it in a foreignpointer. harfbuzz-pure0Lazily retrieves the next codepoint in a bitset. harfbuzz-pure2Converts a Harfbuzz bitset into a lazy linkedlist.>IHGFEDCBA@?JNMLKOTSRQPUVWZYX[`_^]\abcdefghijklmnopqrstuvwxyz{|}~None"p harfbuzz-pureTests the library version against a minimum value, as 3 integer components. harfbuzz-pureShapes the text in the given " according to the given U/ yielding glyphs and their positions. If any [9s are given they will be applied during shaping. If two [=s have the same tag but overlapping ranges the value of the [( with the higher index takes precedance. harfbuzz-pureFills in unset segment properties based on buffer unicode contents. If buffer is not empty it must have   . If buffer script is not set it will be set to the Unicode script of the first character in the buffer that has a script other than "common", "inherited", or "unknown". Next if the buffer direction is not set it will be set to the natural horizontal direction of the buffer script as returned by :. If : returns , then  is used. Finally if buffer language is not set, it will be set to the process's default language as returned by ;. This may change in the future by taking buffer script into consideration when choosting a language. Note that ; is not thread-safe the first time it is called. See documentation for that function for details. harfbuzz-pure4Returns the library version as 3 integer components. harfbuzz-pure>Returns library version as a string with 3 integer components.  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"#$%&'()*+,-./01 !23456789:;<= [\]^_`eWXYZfabcdghiVjklmnopqrstuUvwxyz{|}OPQRST~JKLMN>?@ABCDEFGHI      !"#$%&'(()*+,-./0123456789:;<=>?@ABCCDEFGHIJKLMNNOPQRRSTUVWXYYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~harfbuzz-pure-1.0.4.0-inplaceData.Text.Glyphize.ArrayData.Text.GlyphizeSystem.IO.UnsafeunsafePerformIOData.Text.Glyphize.OomData.Text.Glyphize.BufferData.Text.Glyphize.FontclonePtrpeekLazy peekEager chunkSize iterateLazyaccursedUnutterablePerformIOnoCache HarfbuzzError OutOfMemoryGlyphPos x_advance y_advancex_offsety_offset GlyphInfo codepointcluster unsafeToBreakunsafeToConcatsafeToInsertTatweel DirectionDirLTRDirRTLDirTTBDirBTT ClusterLevelClusterMonotoneGraphemesClusterMonotoneChars ClusterChars ContentTypeContentTypeUnicodeContentTypeGlyphsBuffertext contentType directionscriptlanguage beginsTextendsTextpreserveDefaultIgnorablesremoveDefaultIgnorablesdon'tInsertDottedCircle clusterLevelinvisibleGlyphreplacementCodepoint notFoundGlyph defaultBuffer dirFromStrdirToStr dirReverse dirBackward dirForward dirHorizontal dirVerticalscriptHorizontalDirlanguageDefaulttag_from_string tag_to_string FontOptions optionPPEm optionPtEm optionScale optionFace optionParentoptionSynthSlantoptionVariationsoptionVarCoordsDesignoptionVarCoordsNormalizedoptionVarNamedInstance FontExtentsascender descenderlineGap GlyphExtentsxBearingyBearingwidthheightFontFace VariationvarTag'varValueFeaturefeatTag' featValue featStartfeatEnd parseFeatureunparseFeatureparseVariationunparseVariationfeatTagvarTag globalStart globalEnd countFace createFace ftCreateFace emptyFace faceTableTagsfaceGlyphCountfaceCollectUnicodesfaceCollectVarSelsfaceCollectVarUnicodes faceIndexfaceUpemfaceBlob faceTable createFont ftCreateFont emptyFontfontFace fontGlyphfontGlyphAdvancefontGlyphContourPointfontGlyphContourPointForOriginfontGlyphExtentsfontGlyphExtentsForOriginfontGlyphFromNamefontGlyphHAdvancefontGlyphVAdvancefontGlyphHKerningfontGlyphHOriginfontGlyphVOriginfontGlyphKerningForDir fontGlyphNamefontGlyphName_fontGlyphOriginForDirfontNominalGlyphfontPPEmfontPtEm fontScalefontSyntheticSlant fontVarGlyphfontVarCoordsDesignfontVarCoordsNormalized fontTxt2Glyph fontGlyph2StrfontExtentsForDir fontHExtents fontVExtentsdefaultFontOptionscreateFontWithOptionsftCreateFontWithOptionsversionAtLeastshapeguessSegmentPropertiesversion versionStringghc-prim GHC.TypesIO GHC.MagiconeShot throwFalse throwNullBuffer''Languagehb_buffer_set_directiondir2intint2dirbase GHC.MaybeNothinghb_language_from_stringGHC.BaseString withNewBufferbufferWithText titlecasescript_from_stringGHC.WordWord32Char withBuffer decodeInfos glyphInfosdecodePositions glyphsPos thawBufferBuffer' Language'#hb_buffer_get_replacement_codepointhb_buffer_get_invisible_glyphhb_buffer_get_cluster_levelhb_buffer_get_flagshb_buffer_get_languagehb_buffer_get_scripthb_buffer_get_directionhb_buffer_get_content_typehb_buffer_get_glyph_positionshb_buffer_get_lengthhb_buffer_get_glyph_infoshb_buffer_allocation_successful"hb_buffer_guess_segment_propertieshb_buffer_set_not_found_glyph#hb_buffer_set_replacement_codepointhb_buffer_set_invisible_glyphhb_buffer_set_cluster_levelhb_buffer_set_flagshb_buffer_set_languagehb_buffer_set_scripthb_buffer_set_content_typehb_buffer_add_utf8hb_buffer_destroyhb_buffer_createhb_language_from_string'hb_language_get_defaulthb_language_to_string"hb_script_get_horizontal_directionc2ww2cSet'Blob FaceOptionsfaceOptGlyphCount faceOptIndex faceOptUPEmbytestring-0.11.4.0Data.ByteString.Internal.Type ByteStringfreetype2-0.2.0-7bf6919c09ddd1c4def49c8e7faccfcf273be5ab732c17020cb6e1cb355ba63aFreeType.Circular.TypesFT_FacedefaultFaceOptions_setFaceOptionscreateFaceWithOptsftCreateFaceWithOpts buildFace createSubFont fontParent_setFontOptionscreateSubFontWithOptionsbs2blobwithBlobblob2bsfaceFuncfontFuncfaceCollectFunc createSetsetNextset2listSet_SetBlob_Blob'Font'Font_Face'Face_ hb_set_nexthb_set_destroy hb_set_createhb_blob_destroy'hb_blob_get_datahb_blob_destroyhb_blob_createhb_font_set_var_named_instance!hb_font_set_var_coords_normalizedhb_font_set_var_coords_designhb_font_set_variationshb_font_set_synthetic_slanthb_font_set_parenthb_font_set_facehb_font_set_scalehb_font_set_ptemhb_font_set_ppemhb_font_get_v_extentshb_font_get_h_extents!hb_font_get_extents_for_directionhb_font_glyph_to_stringhb_font_glyph_from_string!hb_font_get_var_coords_normalizedhb_font_get_var_coords_designhb_font_get_variation_glyphhb_font_get_synthetic_slanthb_font_get_scalehb_font_get_ptemhb_font_get_ppemhb_font_get_parenthb_font_get_nominal_glyph&hb_font_get_glyph_origin_for_directionhb_font_get_glyph_name'hb_font_get_glyph_kerning_for_directionhb_font_get_glyph_v_originhb_font_get_glyph_h_originhb_font_get_glyph_h_kerninghb_font_get_glyph_v_advancehb_font_get_glyph_h_advancehb_font_get_glyph_from_name$hb_font_get_glyph_extents_for_originhb_font_get_glyph_extents*hb_font_get_glyph_contour_point_for_originhb_font_get_glyph_contour_point'hb_font_get_glyph_advance_for_directionhb_font_get_glyphhb_font_get_facehb_font_get_emptyhb_font_create_sub_fonthb_ft_font_create_referencedhb_font_destroyhb_font_make_immutablehb_font_createhb_face_builder_add_tablehb_face_builder_createhb_face_set_upemhb_face_set_indexhb_face_set_glyph_counthb_face_reference_tablehb_face_reference_blobhb_face_get_upemhb_face_get_index"hb_face_collect_variation_unicodes#hb_face_collect_variation_selectorshb_face_collect_unicodeshb_face_get_glyph_counthb_face_get_table_tagshb_face_get_emptyhb_ft_face_create_referencedhb_face_destroyhb_face_make_immutablehb_face_create hb_face_counthb_variation_to_stringhb_variation_from_stringhb_feature_to_stringhb_feature_from_string parseFeature'parseVariation' fontGlyph'fontGlyphContourPoint'fontGlyphContourPointForOrigin'fontGlyphExtents'fontGlyphExtentsForOrigin'fontGlyphFromName'fontGlyphHOrigin'fontGlyphVOrigin'fontGlyphName'fontGlyphName_'fontNominalGlyph' fontVarGlyph'fontTxt2Glyph' fontHExtents' fontVExtents'hb_MEMORY_MODE_DUPLICATEhb_MEMORY_MODE_READONLY