From 3ac831a924d19757cbd3dc798d560f2265a9bb6f Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Fri, 3 Sep 2021 01:27:16 +0300 Subject: [PATCH 01/23] Introduce font metrics structure --- osu.Framework/Text/FontMetrics.cs | 55 +++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 osu.Framework/Text/FontMetrics.cs diff --git a/osu.Framework/Text/FontMetrics.cs b/osu.Framework/Text/FontMetrics.cs new file mode 100644 index 0000000000..b2e615e8b8 --- /dev/null +++ b/osu.Framework/Text/FontMetrics.cs @@ -0,0 +1,55 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using osu.Framework.Graphics.Sprites; + +namespace osu.Framework.Text +{ + /// + /// Represents a structure containing the font's typographic metrics. + /// + // todo: convert to init-only properties on C# 9 to avoid always specifying parameter name during construction for context purposes. + public readonly struct FontMetrics + { + /// + /// The distance from the baseline to the highest ascender, representing the font's ascent. + /// + public float Ascent { get; } + + /// + /// The distance from the baseline to the lowest descender, representing the font's descent. + /// + public float Descent { get; } + + /// + /// The typographic line gap. + /// + public float LineGap { get; } + + /// + /// The em size (i.e. UPM, units per em). + /// + public float EmSize { get; } + + /// + /// Creates a new . + /// + /// The distance from the baseline to the highest ascender, representing the font's ascent. + /// The distance from the baseline to the lowest descender, representing the font's descent. + /// The em size (i.e. UPM, units per em). + /// The typographic line gap. + public FontMetrics(float ascent, float descent, float emSize, float lineGap = 0f) + { + Ascent = ascent; + Descent = descent; + LineGap = lineGap; + EmSize = emSize; + } + + /// + /// Returns a scale computed from the font's metrics to apply to their respective glyphs, + /// to display in a similar scale with other fonts that have different metrics. + /// + public float GlyphScale => (Ascent + Descent + LineGap) / EmSize; + } +} From 9bd7ff83bfebbb15d079ec3b938c173f0f8f128f Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Wed, 8 Sep 2021 04:40:45 +0300 Subject: [PATCH 02/23] Integrate the font metrics structure with the glyphs flow --- osu.Framework/Game.cs | 9 +++++---- osu.Framework/IO/Stores/GlyphStore.cs | 6 +++++- osu.Framework/IO/Stores/IGlyphStore.cs | 5 +++++ osu.Framework/IO/Stores/RawCachingGlyphStore.cs | 5 +++-- osu.Framework/Text/CharacterGlyph.cs | 4 +++- osu.Framework/Text/ICharacterGlyph.cs | 5 +++++ osu.Framework/Text/TextBuilderGlyph.cs | 1 + osu.Framework/Text/TexturedCharacterGlyph.cs | 1 + 8 files changed, 28 insertions(+), 8 deletions(-) diff --git a/osu.Framework/Game.cs b/osu.Framework/Game.cs index f6f304a2ad..65f2f88a3f 100644 --- a/osu.Framework/Game.cs +++ b/osu.Framework/Game.cs @@ -212,11 +212,12 @@ private void load(FrameworkConfigManager config) /// The backing store with font resources. /// The base name of the font. /// An optional target store to add the font to. If not specified, is used. - public void AddFont(ResourceStore store, string assetName = null, FontStore target = null) - => addFont(target ?? Fonts, store, assetName); + /// The font's typographic metrics, or if not available. + public void AddFont(ResourceStore store, string assetName = null, FontStore target = null, FontMetrics? metrics = null) + => addFont(target ?? Fonts, store, assetName, metrics); - private void addFont(FontStore target, ResourceStore store, string assetName = null) - => target.AddStore(new RawCachingGlyphStore(store, assetName, Host.CreateTextureLoaderStore(store))); + private void addFont(FontStore target, ResourceStore store, string assetName = null, FontMetrics? metrics = null) + => target.AddStore(new RawCachingGlyphStore(store, assetName, Host.CreateTextureLoaderStore(store), metrics)); protected override void LoadComplete() { diff --git a/osu.Framework/IO/Stores/GlyphStore.cs b/osu.Framework/IO/Stores/GlyphStore.cs index a3be41ca24..3f6478a5cc 100644 --- a/osu.Framework/IO/Stores/GlyphStore.cs +++ b/osu.Framework/IO/Stores/GlyphStore.cs @@ -31,6 +31,8 @@ public class GlyphStore : IResourceStore, IGlyphStore public string FontName { get; } + public FontMetrics? Metrics { get; } + public float? Baseline => Font?.Common.Base; protected readonly ResourceStore Store; @@ -46,7 +48,8 @@ public class GlyphStore : IResourceStore, IGlyphStore /// The store to provide font resources. /// The base name of the font. /// An optional platform-specific store for loading textures. Should load for the store provided in . - public GlyphStore(ResourceStore store, string assetName = null, IResourceStore textureLoader = null) + /// The font's typographic metrics, or if not available. + public GlyphStore(ResourceStore store, string assetName = null, IResourceStore textureLoader = null, FontMetrics? metrics = null) { Store = new ResourceStore(store); @@ -57,6 +60,7 @@ public GlyphStore(ResourceStore store, string assetName = null, IResourc TextureLoader = textureLoader; FontName = assetName?.Split('/').Last(); + Metrics = metrics; } private Task fontLoadTask; diff --git a/osu.Framework/IO/Stores/IGlyphStore.cs b/osu.Framework/IO/Stores/IGlyphStore.cs index 18d20cf207..68cf74a3b9 100644 --- a/osu.Framework/IO/Stores/IGlyphStore.cs +++ b/osu.Framework/IO/Stores/IGlyphStore.cs @@ -16,6 +16,11 @@ public interface IGlyphStore : IResourceStore /// string FontName { get; } + /// + /// The font's typographic metrics, or if not available. + /// + FontMetrics? Metrics { get; } + /// /// The font's baseline position, or if not available (i.e. font not loaded or failed to load). /// diff --git a/osu.Framework/IO/Stores/RawCachingGlyphStore.cs b/osu.Framework/IO/Stores/RawCachingGlyphStore.cs index bf505909b3..e267a820d8 100644 --- a/osu.Framework/IO/Stores/RawCachingGlyphStore.cs +++ b/osu.Framework/IO/Stores/RawCachingGlyphStore.cs @@ -9,6 +9,7 @@ using osu.Framework.Extensions; using osu.Framework.Graphics.Textures; using osu.Framework.Platform; +using osu.Framework.Text; using SharpFNT; using SixLabors.ImageSharp; using SixLabors.ImageSharp.Advanced; @@ -27,8 +28,8 @@ public class RawCachingGlyphStore : GlyphStore { public Storage CacheStorage; - public RawCachingGlyphStore(ResourceStore store, string assetName = null, IResourceStore textureLoader = null) - : base(store, assetName, textureLoader) + public RawCachingGlyphStore(ResourceStore store, string assetName = null, IResourceStore textureLoader = null, FontMetrics? metrics = null) + : base(store, assetName, textureLoader, metrics) { } diff --git a/osu.Framework/Text/CharacterGlyph.cs b/osu.Framework/Text/CharacterGlyph.cs index 3812a1dbd5..66e81bbf4f 100644 --- a/osu.Framework/Text/CharacterGlyph.cs +++ b/osu.Framework/Text/CharacterGlyph.cs @@ -9,13 +9,15 @@ namespace osu.Framework.Text { public sealed class CharacterGlyph : ICharacterGlyph { + private readonly IGlyphStore containingStore; + public float XOffset { get; } public float YOffset { get; } public float XAdvance { get; } public float Baseline { get; } public char Character { get; } - private readonly IGlyphStore containingStore; + public FontMetrics? Metrics => containingStore?.Metrics; public CharacterGlyph(char character, float xOffset, float yOffset, float xAdvance, float baseline, [CanBeNull] IGlyphStore containingStore) { diff --git a/osu.Framework/Text/ICharacterGlyph.cs b/osu.Framework/Text/ICharacterGlyph.cs index ba198225e8..d56a839cf2 100644 --- a/osu.Framework/Text/ICharacterGlyph.cs +++ b/osu.Framework/Text/ICharacterGlyph.cs @@ -33,6 +33,11 @@ public interface ICharacterGlyph /// char Character { get; } + /// + /// The metrics of the font corresponding to this glyph, or if not available. + /// + FontMetrics? Metrics { get; } + /// /// Retrieves the kerning between this and the one prior to it. /// diff --git a/osu.Framework/Text/TextBuilderGlyph.cs b/osu.Framework/Text/TextBuilderGlyph.cs index 1394218df6..1211ef0a51 100644 --- a/osu.Framework/Text/TextBuilderGlyph.cs +++ b/osu.Framework/Text/TextBuilderGlyph.cs @@ -19,6 +19,7 @@ public struct TextBuilderGlyph : ITexturedCharacterGlyph public readonly float Baseline => Glyph.Baseline * textSize; public readonly float Width => Glyph.Width * textSize; public readonly float Height => Glyph.Height * textSize; + public readonly FontMetrics? Metrics => Glyph.Metrics; public readonly char Character => Glyph.Character; public readonly ITexturedCharacterGlyph Glyph; diff --git a/osu.Framework/Text/TexturedCharacterGlyph.cs b/osu.Framework/Text/TexturedCharacterGlyph.cs index 0a88e8915f..f8ea4a85eb 100644 --- a/osu.Framework/Text/TexturedCharacterGlyph.cs +++ b/osu.Framework/Text/TexturedCharacterGlyph.cs @@ -14,6 +14,7 @@ public sealed class TexturedCharacterGlyph : ITexturedCharacterGlyph public float YOffset => glyph.YOffset * Scale; public float XAdvance => glyph.XAdvance * Scale; public float Baseline => glyph.Baseline * Scale; + public FontMetrics? Metrics => glyph.Metrics; public char Character => glyph.Character; public float Width => Texture.Width * Scale; public float Height => Texture.Height * Scale; From 9c43cdf740adcd13baff7e85b49fb9e21aa572c7 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Wed, 8 Sep 2021 04:51:58 +0300 Subject: [PATCH 03/23] Implement an optionally toggleable CSS scaling functionality --- osu.Framework/Graphics/Sprites/FontUsage.cs | 31 +++++++++++++++++---- osu.Framework/Text/FontMetrics.cs | 1 + osu.Framework/Text/TextBuilder.cs | 9 ++++-- osu.Framework/Text/TextBuilderGlyph.cs | 26 +++++++++++------ 4 files changed, 50 insertions(+), 17 deletions(-) diff --git a/osu.Framework/Graphics/Sprites/FontUsage.cs b/osu.Framework/Graphics/Sprites/FontUsage.cs index 402a3b5123..5746f7af39 100644 --- a/osu.Framework/Graphics/Sprites/FontUsage.cs +++ b/osu.Framework/Graphics/Sprites/FontUsage.cs @@ -3,6 +3,7 @@ using System; using JetBrains.Annotations; +using osu.Framework.IO.Stores; namespace osu.Framework.Graphics.Sprites { @@ -40,6 +41,15 @@ namespace osu.Framework.Graphics.Sprites /// public float Size { get; } + /// + /// Whether the text glyphs should scale according to their respective , matching CSS. + /// It is recommended to enable this for better alignment with other fonts. + /// + /// + /// For more information regarding CSS font size scaling, see https://iamvdo.me/en/blog/css-font-metrics-line-height-and-vertical-align#lets-talk-about-font-size-first. + /// + public bool CssScaling { get; } + /// /// Whether all characters should be spaced the same distance apart. /// @@ -65,13 +75,18 @@ namespace osu.Framework.Graphics.Sprites /// The font weight. /// Whether the font is italic. /// Whether all characters should be spaced the same distance apart. - public FontUsage([CanBeNull] string family = null, float size = default_text_size, [CanBeNull] string weight = null, bool italics = false, bool fixedWidth = false) + /// + /// Whether the text glyphs should scale according to their respective , matching CSS. + /// It is recommended to enable this for better alignment with other fonts. + /// + public FontUsage([CanBeNull] string family = null, float size = default_text_size, [CanBeNull] string weight = null, bool italics = false, bool fixedWidth = false, bool css = false) { Family = family; Size = size >= 0 ? size : throw new ArgumentOutOfRangeException(nameof(size), "Must be non-negative."); Weight = weight; Italics = italics; FixedWidth = fixedWidth; + CssScaling = css; FontName = Family + "-"; if (!string.IsNullOrEmpty(weight)) @@ -91,17 +106,21 @@ public FontUsage([CanBeNull] string family = null, float size = default_text_siz /// The font weight. If null, the value is copied from this . /// Whether the font is italic. If null, the value is copied from this . /// Whether all characters should be spaced apart the same distance. If null, the value is copied from this . + /// + /// Whether the text glyphs should scale according to their respective , matching CSS. + /// It is recommended to enable this for better alignment with other fonts. + /// /// The resulting . public FontUsage With([CanBeNull] string family = null, [CanBeNull] float? size = null, [CanBeNull] string weight = null, [CanBeNull] bool? italics = null, - [CanBeNull] bool? fixedWidth = null) - => new FontUsage(family ?? Family, size ?? Size, weight ?? Weight, italics ?? Italics, fixedWidth ?? FixedWidth); + [CanBeNull] bool? fixedWidth = null, [CanBeNull] bool? css = null) + => new FontUsage(family ?? Family, size ?? Size, weight ?? Weight, italics ?? Italics, fixedWidth ?? FixedWidth, css ?? CssScaling); - public override string ToString() => $"Font={FontName}, Size={Size}, Italics={Italics}, FixedWidth={FixedWidth}"; + public override string ToString() => $"Font={FontName}, Size={Size}, Italics={Italics}, FixedWidth={FixedWidth}, CssScaling={CssScaling}"; - public bool Equals(FontUsage other) => Family == other.Family && Weight == other.Weight && Italics == other.Italics && Size.Equals(other.Size) && FixedWidth == other.FixedWidth; + public bool Equals(FontUsage other) => Family == other.Family && Weight == other.Weight && Italics == other.Italics && Size.Equals(other.Size) && FixedWidth == other.FixedWidth && CssScaling == other.CssScaling; public override bool Equals(object obj) => obj is FontUsage other && Equals(other); - public override int GetHashCode() => HashCode.Combine(Family, Weight, Italics, Size, FixedWidth); + public override int GetHashCode() => HashCode.Combine(Family, Weight, Italics, Size, FixedWidth, CssScaling); } } diff --git a/osu.Framework/Text/FontMetrics.cs b/osu.Framework/Text/FontMetrics.cs index b2e615e8b8..204d39936f 100644 --- a/osu.Framework/Text/FontMetrics.cs +++ b/osu.Framework/Text/FontMetrics.cs @@ -50,6 +50,7 @@ public FontMetrics(float ascent, float descent, float emSize, float lineGap = 0f /// Returns a scale computed from the font's metrics to apply to their respective glyphs, /// to display in a similar scale with other fonts that have different metrics. /// + /// public float GlyphScale => (Ascent + Descent + LineGap) / EmSize; } } diff --git a/osu.Framework/Text/TextBuilder.cs b/osu.Framework/Text/TextBuilder.cs index 7b9b4b1d80..7d8d01b4ac 100644 --- a/osu.Framework/Text/TextBuilder.cs +++ b/osu.Framework/Text/TextBuilder.cs @@ -360,11 +360,16 @@ private bool tryCreateGlyph(char character, out TextBuilderGlyph glyph) return false; } + float size = font.Size; + + if (font.CssScaling && fontStoreGlyph.Metrics is FontMetrics metrics) + size *= metrics.GlyphScale; + // Array.IndexOf is used to avoid LINQ if (font.FixedWidth && Array.IndexOf(neverFixedWidthCharacters, character) == -1) - glyph = new TextBuilderGlyph(fontStoreGlyph, font.Size, getConstantWidth()); + glyph = new TextBuilderGlyph(fontStoreGlyph, size, getConstantWidth()); else - glyph = new TextBuilderGlyph(fontStoreGlyph, font.Size); + glyph = new TextBuilderGlyph(fontStoreGlyph, size); return true; } diff --git a/osu.Framework/Text/TextBuilderGlyph.cs b/osu.Framework/Text/TextBuilderGlyph.cs index 1211ef0a51..8d7b452865 100644 --- a/osu.Framework/Text/TextBuilderGlyph.cs +++ b/osu.Framework/Text/TextBuilderGlyph.cs @@ -3,6 +3,7 @@ using System.Runtime.CompilerServices; using osu.Framework.Graphics.Primitives; +using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Textures; namespace osu.Framework.Text @@ -13,13 +14,13 @@ namespace osu.Framework.Text public struct TextBuilderGlyph : ITexturedCharacterGlyph { public readonly Texture Texture => Glyph.Texture; - public readonly float XOffset => ((fixedWidth - Glyph.Width) / 2 ?? Glyph.XOffset) * textSize; - public readonly float YOffset => Glyph.YOffset * textSize; - public readonly float XAdvance => (fixedWidth ?? Glyph.XAdvance) * textSize; - public readonly float Baseline => Glyph.Baseline * textSize; - public readonly float Width => Glyph.Width * textSize; - public readonly float Height => Glyph.Height * textSize; public readonly FontMetrics? Metrics => Glyph.Metrics; + public readonly float XOffset => ((fixedWidth - Glyph.Width) / 2 ?? Glyph.XOffset) * Size; + public readonly float YOffset => Glyph.YOffset * Size; + public readonly float XAdvance => (fixedWidth ?? Glyph.XAdvance) * Size; + public readonly float Baseline => Glyph.Baseline * Size; + public readonly float Width => Glyph.Width * Size; + public readonly float Height => Glyph.Height * Size; public readonly char Character => Glyph.Character; public readonly ITexturedCharacterGlyph Glyph; @@ -34,16 +35,23 @@ public struct TextBuilderGlyph : ITexturedCharacterGlyph /// public bool OnNewLine { get; internal set; } - private readonly float textSize; + /// + /// The size to draw the glyph at. + /// + /// + /// Note that this can differ per font on one specified , depending on each one's font metrics. + /// + public readonly float Size; + private readonly float? fixedWidth; - internal TextBuilderGlyph(ITexturedCharacterGlyph glyph, float textSize, float? fixedWidth = null) + internal TextBuilderGlyph(ITexturedCharacterGlyph glyph, float glyphSize, float? fixedWidth = null) { this = default; - this.textSize = textSize; this.fixedWidth = fixedWidth; Glyph = glyph; + Size = glyphSize; } [MethodImpl(MethodImplOptions.AggressiveInlining)] From a8806ca6a88eeb7ce5068159813488509a77df92 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 11 Sep 2021 11:38:45 +0300 Subject: [PATCH 04/23] Include font metrics for framework fonts --- osu.Framework/Game.cs | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/osu.Framework/Game.cs b/osu.Framework/Game.cs index 65f2f88a3f..5a3959a5a6 100644 --- a/osu.Framework/Game.cs +++ b/osu.Framework/Game.cs @@ -20,6 +20,7 @@ using osu.Framework.IO.Stores; using osu.Framework.Localisation; using osu.Framework.Platform; +using osu.Framework.Text; using osuTK; namespace osu.Framework @@ -161,19 +162,24 @@ private void load(FrameworkConfigManager config) // note that currently this means there could be two async font load operations. Fonts.AddStore(localFonts = new FontStore(useAtlas: false)); + // Roboto and Font Awesome have different metrics for Windows and macOS. + // The ones used for Windows are used here for the time being. + var robotoMetrics = new FontMetrics(ascent: 1946, descent: 512, emSize: 2048); + var fontAwesomeMetrics = new FontMetrics(ascent: 460, descent: 84, emSize: 512); + // Roboto (FrameworkFont.Regular) - addFont(localFonts, Resources, @"Fonts/Roboto/Roboto-Regular"); - addFont(localFonts, Resources, @"Fonts/Roboto/Roboto-RegularItalic"); - addFont(localFonts, Resources, @"Fonts/Roboto/Roboto-Bold"); - addFont(localFonts, Resources, @"Fonts/Roboto/Roboto-BoldItalic"); + addFont(localFonts, Resources, @"Fonts/Roboto/Roboto-Regular", robotoMetrics); + addFont(localFonts, Resources, @"Fonts/Roboto/Roboto-RegularItalic", robotoMetrics); + addFont(localFonts, Resources, @"Fonts/Roboto/Roboto-Bold", robotoMetrics); + addFont(localFonts, Resources, @"Fonts/Roboto/Roboto-BoldItalic", robotoMetrics); // RobotoCondensed (FrameworkFont.Condensed) - addFont(localFonts, Resources, @"Fonts/RobotoCondensed/RobotoCondensed-Regular"); - addFont(localFonts, Resources, @"Fonts/RobotoCondensed/RobotoCondensed-Bold"); + addFont(localFonts, Resources, @"Fonts/RobotoCondensed/RobotoCondensed-Regular", robotoMetrics); + addFont(localFonts, Resources, @"Fonts/RobotoCondensed/RobotoCondensed-Bold", robotoMetrics); - addFont(Fonts, Resources, @"Fonts/FontAwesome5/FontAwesome-Solid"); - addFont(Fonts, Resources, @"Fonts/FontAwesome5/FontAwesome-Regular"); - addFont(Fonts, Resources, @"Fonts/FontAwesome5/FontAwesome-Brands"); + addFont(Fonts, Resources, @"Fonts/FontAwesome5/FontAwesome-Solid", fontAwesomeMetrics); + addFont(Fonts, Resources, @"Fonts/FontAwesome5/FontAwesome-Regular", fontAwesomeMetrics); + addFont(Fonts, Resources, @"Fonts/FontAwesome5/FontAwesome-Brands", fontAwesomeMetrics); dependencies.Cache(Fonts); From 474853582223d5af2d8c063623bc6c0a362c6542 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sun, 12 Sep 2021 03:52:58 +0300 Subject: [PATCH 05/23] Update `getGlyphHeight` to take post-scaling glyph size instead Also renames the field to become `useFullGlyphHeight` to better reflect what it actually does here, also matches with `SpriteText.UseFullGlyphHeight`. If I understand this properly, when setting this to false, it should take the glyph's texture height instead so that text get properly centered, but for some reason it's still including `YOffset` which could leave an empty area at the top of the text. --- osu.Framework/Graphics/Sprites/SpriteText.cs | 3 ++- osu.Framework/Text/MultilineTextBuilder.cs | 6 +++--- osu.Framework/Text/TextBuilder.cs | 16 ++++++++-------- osu.Framework/Text/TruncatingTextBuilder.cs | 12 ++++++------ 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/osu.Framework/Graphics/Sprites/SpriteText.cs b/osu.Framework/Graphics/Sprites/SpriteText.cs index 4981f4cedc..f3422e8dc6 100644 --- a/osu.Framework/Graphics/Sprites/SpriteText.cs +++ b/osu.Framework/Graphics/Sprites/SpriteText.cs @@ -230,7 +230,8 @@ public Vector2 ShadowOffset private bool useFullGlyphHeight = true; /// - /// True if the 's vertical size should be equal to (the full height) or precisely the size of used characters. + /// True if the 's vertical size should be equal to the maximum full height of the glyphs (constant per font). + /// False to consider the maximum texture height of each individual glyph instead. /// Set to false to allow better centering of individual characters/numerals/etc. /// public bool UseFullGlyphHeight diff --git a/osu.Framework/Text/MultilineTextBuilder.cs b/osu.Framework/Text/MultilineTextBuilder.cs index da21e4f7f7..a62c911f35 100644 --- a/osu.Framework/Text/MultilineTextBuilder.cs +++ b/osu.Framework/Text/MultilineTextBuilder.cs @@ -15,16 +15,16 @@ public sealed class MultilineTextBuilder : TextBuilder /// The store from which glyphs are to be retrieved from. /// The font to use for glyph lookups from . /// The maximum width of the resulting text bounds. - /// True to use the provided size as the height for each line. False if the height of each individual glyph should be used. + /// True to use (full glyph size) as the height for each line. False if the height of each individual glyph should be used. /// The offset at which characters should begin being added at. /// The spacing between characters. /// That list to contain all resulting s. /// The characters for which fixed width should never be applied. /// The character to use if a glyph lookup fails. /// The character to use to calculate the fixed width width. Defaults to 'm'. - public MultilineTextBuilder(ITexturedGlyphLookupStore store, FontUsage font, float maxWidth, bool useFontSizeAsHeight = true, Vector2 startOffset = default, Vector2 spacing = default, + public MultilineTextBuilder(ITexturedGlyphLookupStore store, FontUsage font, float maxWidth, bool useFullGlyphHeight = true, Vector2 startOffset = default, Vector2 spacing = default, List characterList = null, char[] neverFixedWidthCharacters = null, char fallbackCharacter = '?', char fixedWidthReferenceCharacter = 'm') - : base(store, font, maxWidth, useFontSizeAsHeight, startOffset, spacing, characterList, neverFixedWidthCharacters, fallbackCharacter, fixedWidthReferenceCharacter) + : base(store, font, maxWidth, useFullGlyphHeight, startOffset, spacing, characterList, neverFixedWidthCharacters, fallbackCharacter, fixedWidthReferenceCharacter) { } diff --git a/osu.Framework/Text/TextBuilder.cs b/osu.Framework/Text/TextBuilder.cs index 7d8d01b4ac..9cc7d3e4b2 100644 --- a/osu.Framework/Text/TextBuilder.cs +++ b/osu.Framework/Text/TextBuilder.cs @@ -6,6 +6,7 @@ using osu.Framework.Caching; using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Sprites; +using osu.Framework.IO.Stores; using osuTK; namespace osu.Framework.Text @@ -30,7 +31,7 @@ public class TextBuilder : IHasLineBaseHeight private readonly char fixedWidthReferenceCharacter; private readonly ITexturedGlyphLookupStore store; private readonly FontUsage font; - private readonly bool useFontSizeAsHeight; + private readonly bool useFullGlyphHeight; private readonly Vector2 startOffset; private readonly Vector2 spacing; private readonly float maxWidth; @@ -62,7 +63,7 @@ public float LineBaseHeight /// /// The store from which glyphs are to be retrieved from. /// The font to use for glyph lookups from . - /// True to use the provided size as the height for each line. False if the height of each individual glyph should be used. + /// True to use (full glyph size) as the height for each line. False if the height of each individual glyph should be used. /// The offset at which characters should begin being added at. /// The spacing between characters. /// The maximum width of the resulting text bounds. @@ -70,12 +71,12 @@ public float LineBaseHeight /// The characters for which fixed width should never be applied. /// The character to use if a glyph lookup fails. /// The character to use to calculate the fixed width width. Defaults to 'm'. - public TextBuilder(ITexturedGlyphLookupStore store, FontUsage font, float maxWidth = float.MaxValue, bool useFontSizeAsHeight = true, Vector2 startOffset = default, Vector2 spacing = default, + public TextBuilder(ITexturedGlyphLookupStore store, FontUsage font, float maxWidth = float.MaxValue, bool useFullGlyphHeight = true, Vector2 startOffset = default, Vector2 spacing = default, List characterList = null, char[] neverFixedWidthCharacters = null, char fallbackCharacter = '?', char fixedWidthReferenceCharacter = 'm') { this.store = store; this.font = font; - this.useFontSizeAsHeight = useFontSizeAsHeight; + this.useFullGlyphHeight = useFullGlyphHeight; this.startOffset = startOffset; this.spacing = spacing; this.maxWidth = maxWidth; @@ -332,11 +333,10 @@ protected virtual void OnWidthExceeded() /// /// The glyph to retrieve the height of. /// The height of the glyph. - private float getGlyphHeight(ref T glyph) - where T : ITexturedCharacterGlyph + private float getGlyphHeight(ref TextBuilderGlyph glyph) { - if (useFontSizeAsHeight) - return font.Size; + if (useFullGlyphHeight) + return glyph.Size; // Space characters typically have heights that exceed the height of all other characters in the font // Thus, the height is forced to 0 such that only non-whitespace character heights are considered diff --git a/osu.Framework/Text/TruncatingTextBuilder.cs b/osu.Framework/Text/TruncatingTextBuilder.cs index c2fc2f9cff..d0b8b66854 100644 --- a/osu.Framework/Text/TruncatingTextBuilder.cs +++ b/osu.Framework/Text/TruncatingTextBuilder.cs @@ -14,7 +14,7 @@ public sealed class TruncatingTextBuilder : TextBuilder private readonly ITexturedGlyphLookupStore store; private readonly FontUsage font; private readonly string ellipsisString; - private readonly bool useFontSizeAsHeight; + private readonly bool useFullGlyphHeight; private readonly Vector2 spacing; private bool ellipsisAdded; @@ -26,7 +26,7 @@ public sealed class TruncatingTextBuilder : TextBuilder /// The store from which glyphs are to be retrieved from. /// The font to use for glyph lookups from . /// The string to be displayed if the text exceeds the allowable text area. - /// True to use the provided size as the height for each line. False if the height of each individual glyph should be used. + /// True to use (full glyph size) as the height for each line. False if the height of each individual glyph should be used. /// The offset at which characters should begin being added at. /// The spacing between characters. /// The maximum width of the resulting text bounds. @@ -34,14 +34,14 @@ public sealed class TruncatingTextBuilder : TextBuilder /// The characters for which fixed width should never be applied. /// The character to use if a glyph lookup fails. /// The character to use to calculate the fixed width width. Defaults to 'm'. - public TruncatingTextBuilder(ITexturedGlyphLookupStore store, FontUsage font, float maxWidth, string ellipsisString = null, bool useFontSizeAsHeight = true, Vector2 startOffset = default, + public TruncatingTextBuilder(ITexturedGlyphLookupStore store, FontUsage font, float maxWidth, string ellipsisString = null, bool useFullGlyphHeight = true, Vector2 startOffset = default, Vector2 spacing = default, List characterList = null, char[] neverFixedWidthCharacters = null, char fallbackCharacter = '?', char fixedWidthReferenceCharacter = 'm') - : base(store, font, maxWidth, useFontSizeAsHeight, startOffset, spacing, characterList, neverFixedWidthCharacters, fallbackCharacter, fixedWidthReferenceCharacter) + : base(store, font, maxWidth, useFullGlyphHeight, startOffset, spacing, characterList, neverFixedWidthCharacters, fallbackCharacter, fixedWidthReferenceCharacter) { this.store = store; this.font = font; this.ellipsisString = ellipsisString; - this.useFontSizeAsHeight = useFontSizeAsHeight; + this.useFullGlyphHeight = useFullGlyphHeight; this.spacing = spacing; this.neverFixedWidthCharacters = neverFixedWidthCharacters; this.fallbackCharacter = fallbackCharacter; @@ -74,7 +74,7 @@ protected override void OnWidthExceeded() int startIndex = Characters.Count; // Compute the ellipsis to find out the size required - var builder = new TextBuilder(store, font, float.MaxValue, useFontSizeAsHeight, Vector2.Zero, spacing, Characters, neverFixedWidthCharacters, fallbackCharacter); + var builder = new TextBuilder(store, font, float.MaxValue, useFullGlyphHeight, Vector2.Zero, spacing, Characters, neverFixedWidthCharacters, fallbackCharacter); builder.AddText(ellipsisString); float ellipsisWidth = builder.Bounds.X; From f59391ed701240be29b27c2f14fe06dea991c6ac Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sun, 12 Sep 2021 03:55:23 +0300 Subject: [PATCH 06/23] Update `AddNewLine` to insert post-scaling glyph height on empty line This one required a bit more work as CSS usually takes the "glyph scale" of the font specified in the `font-family` as far as my manual testing went. I think it should be fine to create a `GetFont` method returning `IGlyphStore`s for that purpose, as it's also required in visual testing to visualise the baseline position in a sprite text. --- osu.Framework/IO/Stores/FontStore.cs | 20 +++++++++++++++++++ .../Text/ITexturedGlyphLookupStore.cs | 7 +++++++ osu.Framework/Text/TextBuilder.cs | 16 ++++++++++++++- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/osu.Framework/IO/Stores/FontStore.cs b/osu.Framework/IO/Stores/FontStore.cs index baeda61c5e..4e2b1f03df 100644 --- a/osu.Framework/IO/Stores/FontStore.cs +++ b/osu.Framework/IO/Stores/FontStore.cs @@ -130,6 +130,26 @@ public override void RemoveStore(IResourceStore store) base.RemoveStore(store); } + /// + /// Searches for a with the specified name. + /// + /// The font name. + public IGlyphStore GetFont(string name) + { + var found = glyphStores.Find(g => g.FontName == name); + + if (found == null) + { + foreach (var store in nestedFontStores) + { + if ((found = store.GetFont(name)) != null) + break; + } + } + + return found; + } + public new Texture Get(string name) { var found = base.Get(name, WrapMode.None, WrapMode.None); diff --git a/osu.Framework/Text/ITexturedGlyphLookupStore.cs b/osu.Framework/Text/ITexturedGlyphLookupStore.cs index 66a41c88bc..b04668fc98 100644 --- a/osu.Framework/Text/ITexturedGlyphLookupStore.cs +++ b/osu.Framework/Text/ITexturedGlyphLookupStore.cs @@ -2,6 +2,7 @@ // See the LICENCE file in the repository root for full licence text. using System.Threading.Tasks; +using osu.Framework.IO.Stores; namespace osu.Framework.Text { @@ -22,5 +23,11 @@ public interface ITexturedGlyphLookupStore /// The character to retrieve. /// The character glyph. Task GetAsync(string fontName, char character); + + /// + /// Searches for a with the specified name. + /// + /// The font name. + IGlyphStore GetFont(string name); } } diff --git a/osu.Framework/Text/TextBuilder.cs b/osu.Framework/Text/TextBuilder.cs index 9cc7d3e4b2..3e372efc6d 100644 --- a/osu.Framework/Text/TextBuilder.cs +++ b/osu.Framework/Text/TextBuilder.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; +using JetBrains.Annotations; using osu.Framework.Caching; using osu.Framework.Graphics.Primitives; using osu.Framework.Graphics.Sprites; @@ -36,6 +37,12 @@ public class TextBuilder : IHasLineBaseHeight private readonly Vector2 spacing; private readonly float maxWidth; + /// + /// The of the font specified in the . + /// + [CanBeNull] + private readonly IGlyphStore fontGlyphStore; + private Vector2 currentPos; private float currentLineHeight; private float? currentLineBase; @@ -81,6 +88,8 @@ public TextBuilder(ITexturedGlyphLookupStore store, FontUsage font, float maxWid this.spacing = spacing; this.maxWidth = maxWidth; + fontGlyphStore = store.GetFont(font.FontName); + Characters = characterList ?? new List(); this.neverFixedWidthCharacters = neverFixedWidthCharacters ?? Array.Empty(); this.fallbackCharacter = fallbackCharacter; @@ -196,13 +205,18 @@ public bool AddCharacter(char character) /// Adds a new line to this . /// /// - /// A height equal to that of the font size will be assumed if the current line is empty, regardless of . + /// A height equal to that of the font size will be assumed if the current line is empty, regardless of . /// public void AddNewLine() { if (currentNewLine) + { currentLineHeight = font.Size; + if (font.CssScaling && fontGlyphStore?.Metrics is FontMetrics metrics) + currentLineHeight *= metrics.GlyphScale; + } + // Reset + vertically offset the current position currentPos.X = startOffset.X; currentPos.Y += currentLineHeight + spacing.Y; From d194b8d91b3e14be8dfbff769720099fd1003b7b Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sun, 12 Sep 2021 04:01:51 +0300 Subject: [PATCH 07/23] Add test coverage --- .../BenchmarkTextBuilder.cs | 4 + osu.Framework.Tests/Text/TextBuilderTest.cs | 152 ++++++++++++++---- 2 files changed, 129 insertions(+), 27 deletions(-) diff --git a/osu.Framework.Benchmarks/BenchmarkTextBuilder.cs b/osu.Framework.Benchmarks/BenchmarkTextBuilder.cs index 61df335fa4..031154983d 100644 --- a/osu.Framework.Benchmarks/BenchmarkTextBuilder.cs +++ b/osu.Framework.Benchmarks/BenchmarkTextBuilder.cs @@ -1,10 +1,12 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Textures; +using osu.Framework.IO.Stores; using osu.Framework.Text; namespace osu.Framework.Benchmarks @@ -50,6 +52,8 @@ private class TestStore : ITexturedGlyphLookupStore public ITexturedCharacterGlyph Get(string fontName, char character) => new TexturedCharacterGlyph(new CharacterGlyph(character, character, character, character, character, null), Texture.WhitePixel); public Task GetAsync(string fontName, char character) => Task.Run(() => Get(fontName, character)); + + public IGlyphStore GetFont(string name) => throw new NotImplementedException(); } } } diff --git a/osu.Framework.Tests/Text/TextBuilderTest.cs b/osu.Framework.Tests/Text/TextBuilderTest.cs index 826d6c2b29..7b4104bce6 100644 --- a/osu.Framework.Tests/Text/TextBuilderTest.cs +++ b/osu.Framework.Tests/Text/TextBuilderTest.cs @@ -2,11 +2,16 @@ // See the LICENCE file in the repository root for full licence text. using System; +using System.Collections.Generic; +using System.IO; using System.Linq; +using System.Threading; using System.Threading.Tasks; +using JetBrains.Annotations; using NUnit.Framework; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Textures; +using osu.Framework.IO.Stores; using osu.Framework.Text; using osuTK; @@ -25,6 +30,8 @@ public class TextBuilderTest private const float height = 6; private const float kerning = -7; + private static readonly FontMetrics metrics = new FontMetrics(1000, 2000, 1000); + private const float b_x_offset = 8; private const float b_y_offset = 9; private const float b_x_advance = 10; @@ -33,6 +40,8 @@ public class TextBuilderTest private const float b_height = 13; private const float b_kerning = -14; + private static readonly FontMetrics b_metrics = new FontMetrics(3000, 4000, 1000); + private const float m_x_offset = 15; private const float m_y_offset = 16; private const float m_x_advance = 17; @@ -41,6 +50,8 @@ public class TextBuilderTest private const float m_height = 20; private const float m_kerning = -21; + private static readonly FontMetrics m_metrics = new FontMetrics(5000, 6000, 1000); + private static readonly Vector2 spacing = new Vector2(22, 23); private static readonly TestFontUsage normal_font = new TestFontUsage("test"); @@ -50,13 +61,13 @@ public class TextBuilderTest public TextBuilderTest() { - fontStore = new TestStore( - new GlyphEntry(normal_font, new TestGlyph('a', x_offset, y_offset, x_advance, width, baseline, height, kerning)), - new GlyphEntry(normal_font, new TestGlyph('b', b_x_offset, b_y_offset, b_x_advance, b_width, b_baseline, b_height, b_kerning)), - new GlyphEntry(normal_font, new TestGlyph('m', m_x_offset, m_y_offset, m_x_advance, m_width, m_baseline, m_height, m_kerning)), - new GlyphEntry(fixed_width_font, new TestGlyph('a', x_offset, y_offset, x_advance, width, baseline, height, kerning)), - new GlyphEntry(fixed_width_font, new TestGlyph('b', b_x_offset, b_y_offset, b_x_advance, b_width, b_baseline, b_height, b_kerning)), - new GlyphEntry(fixed_width_font, new TestGlyph('m', m_x_offset, m_y_offset, m_x_advance, m_width, m_baseline, m_height, m_kerning)) + fontStore = new TestStore(null, + new GlyphEntry(normal_font, new TestGlyph('a', metrics, x_offset, y_offset, x_advance, width, baseline, height, kerning)), + new GlyphEntry(normal_font, new TestGlyph('b', b_metrics, b_x_offset, b_y_offset, b_x_advance, b_width, b_baseline, b_height, b_kerning)), + new GlyphEntry(normal_font, new TestGlyph('m', m_metrics, m_x_offset, m_y_offset, m_x_advance, m_width, m_baseline, m_height, m_kerning)), + new GlyphEntry(fixed_width_font, new TestGlyph('a', metrics, x_offset, y_offset, x_advance, width, baseline, height, kerning)), + new GlyphEntry(fixed_width_font, new TestGlyph('b', b_metrics, b_x_offset, b_y_offset, b_x_advance, b_width, b_baseline, b_height, b_kerning)), + new GlyphEntry(fixed_width_font, new TestGlyph('m', m_metrics, m_x_offset, m_y_offset, m_x_advance, m_width, m_baseline, m_height, m_kerning)) ); } @@ -201,7 +212,7 @@ public void TestNewLineUsesFontHeightWhenUsingFontHeightAsSize() [Test] public void TestNewLineUsesGlyphHeightWhenNotUsingFontHeightAsSize() { - var builder = new TextBuilder(fontStore, normal_font, useFontSizeAsHeight: false); + var builder = new TextBuilder(fontStore, normal_font, useFullGlyphHeight: false); builder.AddText("a"); builder.AddText("b"); @@ -339,6 +350,24 @@ public void TestLineBaseHeightThrowsOnMultiline() Assert.Throws(() => _ = builder.LineBaseHeight); } + /// + /// Tests setting the (i.e. metrics-based scaling) on a text builder. + /// + [Test] + public void TestCssScaling() + { + var builder = new TextBuilder(fontStore, normal_font.WithCssScaling()); + + builder.AddText("a"); + + Assert.That(builder.Characters[0].Size, Is.EqualTo(font_size * metrics.GlyphScale)); + + builder.AddNewLine(); + builder.AddText("b"); + + Assert.That(builder.Characters[1].DrawRectangle.Top, Is.EqualTo(font_size * metrics.GlyphScale + b_y_offset * b_metrics.GlyphScale)); + } + /// /// Tests that the current position and "line base height" are correctly reset when the first character is removed. /// @@ -495,11 +524,11 @@ public void TestSameCharacterFallsBackWithNoFontName() { var font = new TestFontUsage("test"); var nullFont = new TestFontUsage(null); - var builder = new TextBuilder(new TestStore( - new GlyphEntry(font, new TestGlyph('b', 0, 0, 0, 0, 0, 0, 0)), - new GlyphEntry(nullFont, new TestGlyph('a', 0, 0, 0, 0, 0, 0, 0)), - new GlyphEntry(font, new TestGlyph('?', 0, 0, 0, 0, 0, 0, 0)), - new GlyphEntry(nullFont, new TestGlyph('?', 0, 0, 0, 0, 0, 0, 0)) + var builder = new TextBuilder(new TestStore(null, + new GlyphEntry(font, new TestGlyph('b', default, 0, 0, 0, 0, 0, 0, 0)), + new GlyphEntry(nullFont, new TestGlyph('a', default, 0, 0, 0, 0, 0, 0, 0)), + new GlyphEntry(font, new TestGlyph('?', default, 0, 0, 0, 0, 0, 0, 0)), + new GlyphEntry(nullFont, new TestGlyph('?', default, 0, 0, 0, 0, 0, 0, 0)) ), font); builder.AddText("a"); @@ -515,11 +544,11 @@ public void TestFallBackCharacterFallsBackWithFontName() { var font = new TestFontUsage("test"); var nullFont = new TestFontUsage(null); - var builder = new TextBuilder(new TestStore( - new GlyphEntry(font, new TestGlyph('b', 0, 0, 0, 0, 0, 0, 0)), - new GlyphEntry(nullFont, new TestGlyph('b', 0, 0, 0, 0, 0, 0, 0)), - new GlyphEntry(font, new TestGlyph('?', 0, 0, 0, 0, 0, 0, 0)), - new GlyphEntry(nullFont, new TestGlyph('?', 1, 0, 0, 0, 0, 0, 0)) + var builder = new TextBuilder(new TestStore(null, + new GlyphEntry(font, new TestGlyph('b', default, 0, 0, 0, 0, 0, 0, 0)), + new GlyphEntry(nullFont, new TestGlyph('b', default, 0, 0, 0, 0, 0, 0, 0)), + new GlyphEntry(font, new TestGlyph('?', default, 0, 0, 0, 0, 0, 0, 0)), + new GlyphEntry(nullFont, new TestGlyph('?', default, 1, 0, 0, 0, 0, 0, 0)) ), font); builder.AddText("a"); @@ -536,11 +565,11 @@ public void TestFallBackCharacterFallsBackWithNoFontName() { var font = new TestFontUsage("test"); var nullFont = new TestFontUsage(null); - var builder = new TextBuilder(new TestStore( - new GlyphEntry(font, new TestGlyph('b', 0, 0, 0, 0, 0, 0, 0)), - new GlyphEntry(nullFont, new TestGlyph('b', 0, 0, 0, 0, 0, 0, 0)), - new GlyphEntry(font, new TestGlyph('b', 0, 0, 0, 0, 0, 0, 0)), - new GlyphEntry(nullFont, new TestGlyph('?', 1, 0, 0, 0, 0, 0, 0)) + var builder = new TextBuilder(new TestStore(null, + new GlyphEntry(font, new TestGlyph('b', default, 0, 0, 0, 0, 0, 0, 0)), + new GlyphEntry(nullFont, new TestGlyph('b', default, 0, 0, 0, 0, 0, 0, 0)), + new GlyphEntry(font, new TestGlyph('b', default, 0, 0, 0, 0, 0, 0, 0)), + new GlyphEntry(nullFont, new TestGlyph('?', default, 1, 0, 0, 0, 0, 0, 0)) ), font); builder.AddText("a"); @@ -563,31 +592,70 @@ public void TestFailedCharacterLookup() Assert.That(builder.Bounds, Is.EqualTo(Vector2.Zero)); } + /// + /// Tests that adding a new line after an empty line has a height with the CSS scaling of the exact font specified in the applied to it. + /// + [Test] + public void TestNewLineAfterEmptyLineWithCssScaling() + { + var one = new FontMetrics(1000, 2000, 1000); + var two = new FontMetrics(3000, 4000, 1000); + var font = new TestFontUsage("one", css: true); + + var builder = new TextBuilder(new TestStore(new[] + { + new TestStore.TestGlyphStore("one", one, 0), + new TestStore.TestGlyphStore("two", two, 0), + }, + new GlyphEntry(new TestFontUsage("one"), new TestGlyph('1', one, 0, 0, 0, 0, 0, 0, 0)), + new GlyphEntry(new TestFontUsage("two"), new TestGlyph('2', two, 0, 0, 0, 0, 0, 0, 0)) + ), font); + + builder.AddText("2"); + builder.AddNewLine(); + builder.AddNewLine(); + builder.AddText("2"); + + // The first line would be font_size multiplied by the glyph scale of the glyph residing there ("two"). + // The second line would be font_size multiplied by the glyph scale of the font specified in the FontUsage ("one"), as the line doesn't have any glyphs. + Assert.That(builder.Characters[1].DrawRectangle.Top, Is.EqualTo(font_size * two.GlyphScale + + font_size * one.GlyphScale)); + } + private readonly struct TestFontUsage { private readonly string family; private readonly string weight; private readonly bool italics; private readonly bool fixedWidth; + private readonly bool css; - public TestFontUsage(string family = null, string weight = null, bool italics = false, bool fixedWidth = false) + public TestFontUsage(string family = null, string weight = null, bool italics = false, bool fixedWidth = false, bool css = false) { this.family = family; this.weight = weight; this.italics = italics; this.fixedWidth = fixedWidth; + this.css = css; } + public TestFontUsage WithCssScaling() + => new TestFontUsage(family, weight, italics, fixedWidth, true); + public static implicit operator FontUsage(TestFontUsage tfu) - => new FontUsage(tfu.family, font_size, tfu.weight, tfu.italics, tfu.fixedWidth); + => new FontUsage(tfu.family, font_size, tfu.weight, tfu.italics, tfu.fixedWidth, tfu.css); } private class TestStore : ITexturedGlyphLookupStore { + [CanBeNull] + private readonly TestGlyphStore[] stores; + private readonly GlyphEntry[] glyphs; - public TestStore(params GlyphEntry[] glyphs) + public TestStore(TestGlyphStore[] stores = null, params GlyphEntry[] glyphs) { + this.stores = stores; this.glyphs = glyphs; } @@ -600,6 +668,34 @@ public ITexturedCharacterGlyph Get(string fontName, char character) } public Task GetAsync(string fontName, char character) => throw new NotImplementedException(); + + public IGlyphStore GetFont(string name) => stores?.FirstOrDefault(s => s.FontName == name); + + public class TestGlyphStore : IGlyphStore + { + public string FontName { get; } + + public FontMetrics? Metrics { get; } + + public float? Baseline { get; } + + public TestGlyphStore(string name, FontMetrics metrics, float baseline) + { + FontName = name; + Metrics = metrics; + Baseline = baseline; + } + + public Task LoadFontAsync() => throw new NotImplementedException(); + public bool HasGlyph(char c) => throw new NotImplementedException(); + public CharacterGlyph Get(char character) => throw new NotImplementedException(); + public CharacterGlyph Get(string name) => throw new NotImplementedException(); + public Task GetAsync(string name, CancellationToken cancellationToken = default) => throw new NotImplementedException(); + public Stream GetStream(string name) => throw new NotImplementedException(); + public IEnumerable GetAvailableResources() => throw new NotImplementedException(); + public int GetKerning(char left, char right) => throw new NotImplementedException(); + public void Dispose() => throw new NotImplementedException(); + } } private readonly struct GlyphEntry @@ -624,13 +720,15 @@ public GlyphEntry(FontUsage font, ITexturedCharacterGlyph glyph) public float Baseline { get; } public float Height { get; } public char Character { get; } + public FontMetrics? Metrics { get; } private readonly float glyphKerning; - public TestGlyph(char character, float xOffset, float yOffset, float xAdvance, float width, float baseline, float height, float kerning) + public TestGlyph(char character, FontMetrics? metrics, float xOffset, float yOffset, float xAdvance, float width, float baseline, float height, float kerning) { glyphKerning = kerning; Character = character; + Metrics = metrics; XOffset = xOffset; YOffset = yOffset; XAdvance = xAdvance; From 07cef0876c48785ab153314b7b80a15a7c53660b Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sun, 12 Sep 2021 04:03:05 +0300 Subject: [PATCH 08/23] Add visual test illustrating the baseline position in font-mixed sprite texts --- .../Resources/Fonts/Noto/LICENSE.txt | 202 ++++++++++++++++++ .../Resources/Fonts/Noto/Noto-Basic.bin | Bin 0 -> 60040 bytes .../Resources/Fonts/Noto/Noto-Basic_0.png | Bin 0 -> 73038 bytes .../Resources/Fonts/Noto/Noto-Basic_1.png | Bin 0 -> 84646 bytes .../Resources/Fonts/Noto/Noto-Basic_2.png | Bin 0 -> 93586 bytes .../Resources/Fonts/Noto/Noto-Basic_3.png | Bin 0 -> 77761 bytes .../Resources/Textures/css-text.png | Bin 0 -> 12583 bytes .../Resources/Textures/css-text2.png | Bin 0 -> 12723 bytes osu.Framework.Tests/TestGame.cs | 8 + .../Visual/FrameworkTestSceneTestRunner.cs | 8 + .../Visual/Sprites/TestSceneSpriteText.cs | 113 ++++++++++ osu.Framework/IO/Stores/FontStore.cs | 11 +- 12 files changed, 339 insertions(+), 3 deletions(-) create mode 100755 osu.Framework.Tests/Resources/Fonts/Noto/LICENSE.txt create mode 100644 osu.Framework.Tests/Resources/Fonts/Noto/Noto-Basic.bin create mode 100644 osu.Framework.Tests/Resources/Fonts/Noto/Noto-Basic_0.png create mode 100644 osu.Framework.Tests/Resources/Fonts/Noto/Noto-Basic_1.png create mode 100644 osu.Framework.Tests/Resources/Fonts/Noto/Noto-Basic_2.png create mode 100644 osu.Framework.Tests/Resources/Fonts/Noto/Noto-Basic_3.png create mode 100644 osu.Framework.Tests/Resources/Textures/css-text.png create mode 100644 osu.Framework.Tests/Resources/Textures/css-text2.png diff --git a/osu.Framework.Tests/Resources/Fonts/Noto/LICENSE.txt b/osu.Framework.Tests/Resources/Fonts/Noto/LICENSE.txt new file mode 100755 index 0000000000..d645695673 --- /dev/null +++ b/osu.Framework.Tests/Resources/Fonts/Noto/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/osu.Framework.Tests/Resources/Fonts/Noto/Noto-Basic.bin b/osu.Framework.Tests/Resources/Fonts/Noto/Noto-Basic.bin new file mode 100644 index 0000000000000000000000000000000000000000..3a4450536927c2bcbfddc3065463add9ae7dd8db GIT binary patch literal 60040 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 A&Hw-a literal 0 HcmV?d00001 diff --git a/osu.Framework.Tests/Resources/Fonts/Noto/Noto-Basic_0.png b/osu.Framework.Tests/Resources/Fonts/Noto/Noto-Basic_0.png new file mode 100644 index 0000000000000000000000000000000000000000..c962e4c5ab195f44a03198cde960349133e832cb GIT binary patch literal 73038 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

rwUGU9YOiXn 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 literal 0 HcmV?d00001 diff --git a/osu.Framework.Tests/Resources/Fonts/Noto/Noto-Basic_2.png b/osu.Framework.Tests/Resources/Fonts/Noto/Noto-Basic_2.png new file mode 100644 index 0000000000000000000000000000000000000000..89e395e9b1846d06863aa87b8ac56d4d31bae443 GIT binary patch literal 93586 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∾FK+kUYtU!Db^kQZjh5bkV z*OD`i*QU)M#bvO(=c_`+i=?3T!y1Kyk&pLRbOsZhTdyuzqKf!zJ}?Ho3q9dubC!9f zQX)kM#)oO1@{Qwg?iiq*-1zM20~X*NeU0(Tyf~s}=fSFCHcY>`C9cIHa@cvLf_5#Y z4?QG6&kvOtK?In>{0IGLkq710D&OGhXb1RFeEbH~)4n&~?%rpVIjr zbfWqKnby)F>g5)j4w4;~rK1;%?=FPEjYP0LCf?e?Y63mYeaj|vfe5~t`IN_w803Js zO4siTyaBT69#hDE>% z0z(*>Re^Y8K^T9viL5{;VEI+RuiMGjHN4mNxA*kwXiAgRZx|yXsDJ3bCYKA|zzn_N zmlTpIpdEzUgfAYWri_yHR`B$ve!nnt|6K z=}&sdsp2V9nk{8m%4dZdMTC~O^5ER>&y^g3ByF)hN%INKQBl;sFI_Sc$)aRX8Dd&Z zk4s2g%daJ@1e+KvM^oX}WA*IV&N?ot=56D%0ZVsxBi)GPN(<7BsDLy`ODZfOEh#Ai zBHfCFR(x4$p#?Fy^(g#{TpbUR~w| z@u#165)WnInC`*^mPlJl^AK(r4Ex*-%-Zm3Bv%>YV(iIDgqR^hXyedOv!3jT<@in~ z9{4x=h7`s&%~$z5tb6ADfTuV#f7|eD>pSe5V+zBv1h2#n@|?Q1LKhx;x(LUl$q>QV zCYCdAGtnmFu!}S)tosy*Jn;95f2}Tjg$k`Gp1>&jJN(4vdTB2Z-Q;@D7gr#4i5-KUfU)9WcGc$K}L1m>)7`CWpO0A5hccV-#SP{B)Lr^DF9y z9z2Hcj2=9#`&%)3e8c0JI_PWUkBl{gZjkrAo?Mh|>!cemSI%48Fd(o5HCRbl03(=4 z1Qvw=W&L1!boliBxe|03|3OziU0Y zv8$#w2@|caGzoHUwg`=MrUFF;HU}17{_VJWZHj>Gj5^G&7$1v3@4$jiIL+4fum#w# zK!S{A+!*2O$>(%$r(c>>)C7!1`c8`C1c)VV1;BTM5LlP)d0%-UY_WrmIPi zjGC=`vXt(#J;i-MjQ>W}7uj4eSJx8V-g@7@R(73rqQ^_*;pI`Gt?a^`iyxJVhJs68 zj3DuP5YDFM<}Nlg^f_*Z)aH%?81_WOcegt3|9ii&^0hUnS7DOI9}GngbDB z&zR4T2tc1O=0+s9Q`lyJ*kxtg6<(|7Lmsx*QCA7u}4!ED8TgP;!By{aim?#5N>fMRKgHmphbC|+wt zcAmK@5qR$CqV8O)+Fjq|qRCdj`LZ{0<5w2RuCpGx&9CJ8cpg*6NC40p*3;WKF1kWO zk!QG5>Uckv(RC;c@AEQ7a5Bv_{>2@RPJ#E)l7_a?ff-(A0(R;FGG+oI&%*t%)kmV& ze|v9mi(hu*tb{7SM%$u-D!?O|pCN>-4)~vE* znAx!5K<>hvc8%ZrP#yiAw%T|&LU`CHT6tpo*GK=GY#m!G(gxq%RvuMTfNi%WrZ7%M zgvAIxzUZ6dN9Xi~uQN48Zv*VVzq$asG2$QrGk3CGW@*B*LX~K98Tb1JKzKh?xDM)`z&Sh_y& z*8JlgCJ)Hil?@t>UVlhDH!^6Koop!3&5HO9%70Un7p?Ln{zXb-aq1P3r*xntNP(+Beb;6rP35OOo6OgADsnu3m=FOx zoQ&z%H&)}-+s3#y-$0RtqBOxNy18)#D3D==61)nbTC4BV((N<Q|&F(RzfcW8jZB!DPWJn}-hDiUW+G$16f14= ztSidBbtiOvp<{m#Ni6gW0q{uZ0aXu_a6a=_f+*t81Ln{+7O)A|RBk>FLw+ILW*L3* z#3M^LIdMmgz8;q2xE9KCV&wS@m%J%G5)>6@KyWVpI)P{uFDR%kI^VeB!k{k6{jIC< z{KS3&kVYcKfx!F~s567aiLzPYU*z@DTsx3o!Epz5$% z6J3iC1Dwg^Zv7%0EBKKjP<5OTTJOTOJd!Q4EV5+{1S3bcP}d9 z`Jz}pqh~)CMY0HCoL`9aQ`IFTVHguAqefpee|#V2&IU03P+by^t`TX?rnx$I0oGh3 z#4Qer?H7`T!ED_v$d3cNMJlXfc88!& zzEHxL_DK@tPKd(wM5nE(EPnTYmPnSHO}fpvic4-(QJKVl48_D7&y4>XCiU^@vc+L6 zfNQ#a9(H4BS32l=RNbJZnR%iPmXJ#tCeW@_0s4k|VVg2&;fgOf$@=D8TMxxVcC!XM zU@*E$foyiO=SdcBq_p$W@tEXQEKYy^gb` zsWg~v89<|t*1u)JCXn?+d*Qau!3cg@_tN(kAMLZ_|4kN#5yq6kM?2f^`dZmGG7Dpt z!XsTi88X(q-$^scok^r+Mwcc>{XAV8qSpDh?%YF#J)lh*{V=q1t9OrzTR2hJ69>fD zb!_$0+gxH+uqE`Fdc`5kF-UwBI#S>x2ISoY@}%wJCRs&Lm~wU42b3{ys&CY0463b> zDeS2We=AwxM~O;SUAI~d?9*Ap^$(_$KYZj?*5<-K%E`d5sK9Wf@|o?69hkKU0_Xzw zi_Ozk(TbAEl>Ak22 zfLn_0WFlb!9SWLl%*vm-U$mi2IA{+RQUB1_+kUS&gskFKzg*JfJ%QO##(fUZ50-Rr zmhq2VzLG;s1tn?GVBaT!c#0i_UzOI(XlC0eFX9gOiQ_ER$77YF{!lpj0xshZ zK%#724voZr2mjG~bw7MojjxY5APiKqHIX>Qx1;_l?T3*@%VSQD4)1N{w{UK~Ie(Z0 zCR~V+{hJ(U{Fb+h^s0*l81E?`{_G0^zA!>qa<|(716u-p+QZJJOf!!FZCZlSHdfjX zBh@!50$ZJXb+tK;ARmq{NNl|#A|5zgZ2)+WGbQiq|FbXTWPMt?AGZ7;?Y40GjC81_06l>0JF#3O!~|57yc5cBcCE;HKve(TcPtZdcYIFE%aTgOt_G8l6MhDzp+BiUtR=NiW)n#3l8oPTOTtI z5eQ+s&_E7*A!AM&f8b+oeQvheXMIrUUs3`sB$$wJ5PH*002a~#7V=RjQvO|q$iVcv ze)svhj#X*P6YY-|>vfFtrRuI<-Db?&Qd;k4{PQpSq<=Ba+hO4;0aZ8c@ccQ#S$eIg}34u?_Tp8^Gu!e)}D^ z?ZdamR+q91`QS4B+T6=peI15*Vm2p}=v8Nsm?s zq&qtZe|AT>#mj(#*YtJ6W7qTs%Z|Thir<@q4g{~Z6%M->L&x=3uPwj5$(Cm8PEiQx z`ErRfUn2HYneq9Rys;0Rg_7c!Dl_NHq}}D9L+15DtMj?$49+Ia@(roa&BH?s+1i(H z7c9+r@l5nvUlMlQ-hD4U@WzZIuoC}YDw+9d?WOf??`4n2EBE{?a(#%_rRz3}V;Dp3 za*UYGXkmFma(NC`Z6mhiW|iM*TW z*Pk5T5cm@6QQ{@_Yb;DS_vC3FV~_6zW!dQjdSIYQkv+}DkgteGWD?vEhX z|0WY~Q_kfU2#}%X)B`dq#>8SRW2z1-a-jsz>UUHf+6O<()f5MmnUB4~J49i8uVKfG zm^vkV&@zAbzJwDD)SYzspBJ}W@w|tr;l*dUW!6li0JUzSThx=jdIm09dF*DT!qNo014LxDzLL9$I>SRyCK>zI3nft7dpX1df$o z;xZRT1~C9n1$y8;ty|GTNBzi64cA0%fg|N=SE7x~8NQ?v`R;+>(NbnvQ}g)Xnp)~L zok{`|;fvoLKj&*N=dy;3b(H$Qdr)RNM;nq=mjrxO8}f5>lV@cizf*lfwX58vlN`7V z`{R4(dqx*1bAXcWJ)F{R^uEd*UDfZjZTuR41|ZwC{E8~%caih-mZe(VD%?D9;f;=vl2)R9~@Y0!Mg^O^4Qr@3tcN$SRb72c7}JQViB z?~1YKT;+^F=0ke({+<*5FQEh7`Zi)#rJ$Lv-lIxS%%{co<36I=N%DcW_qelz2qJJi zmv@-(x!vozi7p>=;^xQ0c_N)KuY{p>Gftr4!PWK#J)&#*x2uoT;>TVAFC`vJKI zi57p+uS>zuS#1R>!A>2D0~$*lDSZ!#-QZwcx}fl#_p3<>Nt0tS5;?*o+LG533*}-4 zuUaekw7)Pv=o)*I0}eR>_Q+TIT$khfut$jSMmzKt!P{JrIIYNIQb*~0Gk?~$2=PgL zq$Wx&#ZsGOb6HYia%?hrtlc~d*YSZ#bn5E%mEEc8v9s>I*Svwp;pg~!QR}N7mMi9v zofxYqLOh&-&*miSebd!NZp|2N4gDK&sY0&3u1U*0xJF_1+*g zq8&P(Ej|CeSoTaIXe0%OaVg$?&F=JG&iEB1i4p^oT#~(ICjUEJ&#%x19j8&;^3*zoJQ=4ftx3XkjRP%>ZibH?rSC4wPGv(`SR*?(BL`CB7i{&1DBBOAcz9g{i;d$eorbP&G+LT zea0hy#k25$spy%gS$Zw9W(#sP5z>HN`!oBZyg_dcaDrPRJ^XaR6P>U^-Dong(`Vg6ZJ8< zTn%i0lv-u$d`JlXiBPxcL};qR(# zFS^*LQPVrwrR{8J2%YlcS_?jmfHT=gno=sH}6~w-AgI?fdhs}9>*zvj0MR}V-&XjhT)Z-_tj{* zvhq6kY8U`siz8zl6`Liqz}*jSU-Vu78KbP8PckJ6ZOExg_TOjriE^6Rck0O5X;G;` z-##@CRsuYQ9v5SmFXLNl)sWnwZ_!q3E5G>u?UWCIrB0GyxSTd6khuBb8~W$%a0rTL zI``SHoVN+45dd04sIJZj!U0BuX5QV}m`Wnr@vuCM(BW6$dXXL+%K|IdW)+!SGjaKd zyLBT@v=fKGSQ48zYOu!utdqX{fM599X(ytkLuEX1T5gs;{Sinl(WyEWN9E25=%)F~ zbeVyGl9-n-f!#gG`??H^RTD+fr*c^Jgf2Y0B&eoVu` zWgdWII?FFY{c zFvu}v=UQrex^wSVV*|^Gc5r9vUZuio_T4@|A=GY4CA8ba@>*cvJv_YeDI*-iQ6iqG z-2>1I{QwXmw1@k$}d;T3`TtE z$zY;mv`#{>uz}MAHv>P&ID^e2+jlK6;tJ2PX`0c@>4g>aNM*gMji&?V0dbPJm=BI@ z-BZxDXH$oV*V()>5$*a|pgN~riKm`;ay&DKahS?B!Hb6ZFHs+o{{2wqy9i5+G) z!6->qd4%^1OMk@ctx6sgG6s7G3C;p8i4TVXR^wip?e`#5w}23P)UNBfq^IxyUzmycXGGi zY8%vbO9RkLTp#p;MFB@v;vRH}hqy_RgGdMmUXXSH3i=AW15h!*9FI~Ebd!O>TR^Z? z?&2+P>suNC!}AZ}jc~sSD`3f;GA|Q}?@I9`NN(>|6gAQ&NuzCbRG~M6slqXoZBVTz zr$>0r+W-0n(7apb)TOyQn!snqh(a@=z)>9~c+T)0g?Uc@75>Zw2@1Ql0o%+I_>vz9 zXmL~ZzHpcO1Y>`5av>4%HDqvvk*)a!B8gipkI$)-z_|FqQ=_nKs~(%ad#?8v6sTZ{ za}-d6gC9sBvLukd-Vv8axErp03IJ3gBL zlbrcXS~%MA=}+WXG$?rGTM1@lkrfA)IB3fIhF@;`;?T+&wub?mgQy5{T!%#hGJ0YY ztzF7f2hT~l`*JDO^ztyZd}pgmDOH`DNYLXhI3}5ZeZP4Fh;rqQcJ(w#TVGVzynF9L z0V#*Qjx{^K0_&dHuU_tU5=wpD93Hr1C+xDYrDz!D9h-ifsoKk!Q~l23cFNYlrKq=T zCtQ``4o(UWKa9K_^PhjiR%D={SgO=Yi_!eJ%^bJ@=|O3McxQtQg_U^oOacO^sEN+q z2~#EYZtwyD06m#?RM9ysh82jEX?iZBO^?FkI)7XVkL_$F!a>x`bo zVdf~B&*)cS6Q3lTrAPoFX(h-q8pBF22^~zK1Z+gD*1uy=4ucw#UrsB4@9*qrJr2ZQ zDG-x@Pj+$S8$GgM0L5cL>Xnd0N|tL;$MrNDxzGRWz@^tmbZ)MaL>D-MEN*6k{i8+h4|q65nxJLOB81Vq+s0m^IJ*d zSJAiyA~4KzHQSna6!C9|$`^1f#2((9#{+D6!pzV_`1=Xez$pS2? zr8YC_2gwBy5T54?BLF#15kX7zrMO=*cm* zwgrMzTPBcwPB@Cjh za+({%Kw)gEkoSDKk3l6PTv!8#M{gAu)*T3LoGT0c(`Q7%Fmb5Oa>HS11xsQWwoVta zOINc5Up^qfl04RhTmO8Zyfmaw77tsg(gLEAwTzHMf8Gox`lJ_0g)&(91(lKt=9MGI zt3`hazoi5x#)+@yN!D<{mq%RaQoWBjCwOBmR&YSN)8J@TWf&?&4`O<9q?S}3CH>Hb z)m3Lfo$jTDIz%ZSaTH!&aTdl-aFi1y2ZzhjQqO2b+;AXBhGE=gvS=ocnjVHdRCqqc zsu_1e18%gb`OGU&tljn?Uy=v%Gq;dlQjnUQr3H<$rfh0`=OPY7e<5LL>L>%jh5j}e z#!{cn-h)!bbMHo2LO%tdI84UDtj8$i(W0jcQ6?DleLpO&r;lM~>Zi{(${uhi2(U7j zkqm}G;Z zZ7nRG2!lT8gxti%p_xJ?naedy0i0Tw zCIOn9;Hf)0knEE^8lI45MkW?|1D5=2lrA3;AgN@1H0t=X<R zZ^f+)Oq0FYAcxLyrxxv3imGHMZ)i^k9Up}psC*W7S-0Fw9bFCN`+&K05+jM<6%6xG z*X2ud`A5cHuE0l5DGr#vvGk-!32O=_koaBdKk*{7Z$uCZ#2C}yIbwC`#m0jz-M%2v z(9-NGCrN>r{_9L%8dME|E%b>W3s#e76Ps96kwIgmwZksx&Gp0_2TJ%$4QiB!k*S2+ z3{_S5l+-<@9fxyBv81&TYW{}kJ0a$U&YE^K3Ml&ZbO}y&k2SVy6PJq&UFu=k$a`SW zT1qa>5E>v(og8f=>Ud8j4PMdP6Zunu8V!I`o8fgQV$mT8+Wnc7l zM%}I=r!v+KX)bgA^40ud7P-oY&6kOfu@sPGbnaEZ(LF9^Iq|BS`VSaKr1Rg`y7HOA z7$h%a@l|jm58qU`RyyyP>2`TDmgyqF+E^a_jpyRPlYD`=IN|d>PWd`yH{$8p4vej` z$zTz8P(SGzo=H}^w*gKnj)bopA_E4F^vm=wy?87|;qY*u|{Ff;XN!uy)sg1%1zRGV|N@^BOu*+q{-wdem}rT8&f1T)lbx?b;TgnGC% z1!6QIh|kAnL03R$28qdO6etm6RmHjVyW8u%H);#8XC--EzB5JNrD4gg;S8@LzZoEF ztRA}qHk4!H=*e9fxy>WC=M;eKxh}Sb+AdO*o%CbgIZ=EnCt#CuPWK5Dc(|5A%nNJ} zhty_p6YTrzM1w14puDugKd|;=`QZ9%X6D%VkCX1k56Y1#PA(}w<6o9NefN2WTctFO zr?KSyc;7A8Jwv+lm`OZ?09DZ#B-}_sgbPZUCRoqH7?{`lR(Enfb-Sux_I)*Dv>8DP z$6(B<(r)DStKR1nQKz`6-r^kj)%2w2Q{hil0SSfZoM{ds&6jb8KOO}1xvFLZeUk_F zIDUE64daGcQaI|%f-hB&l25pTv0a=#^b5@{g(S(-vs12boKye3P+%#pBLyu~c}FDf z4{4txyCW0vzU}G0ed9p{qD04UCb+m(Q*RrEGnF-u9JFVBBR3w;my7q)PWY}XeSpHS z;()k}vV@;GPo_uh4NR3?|0eVpyrReNb+P`Y7eAiMY~b-RYOjbzMEeaBrDrN~`7W*0 z-kZ-0vNYOON7x5{rIixoHQW2I(T~WwBr#>(3YyBrw=vI>}Y5nfG7oJ^m824t_ zS;Dl&(U&wb5E`*MA3rA?kUbKbo8gd3bG|GN5rdWJY@6X)D^R}Dn{YHBL!`#|8ao3FBCHM*QyWi zKcS4$$_|>Bc)-f5X>R%nu~gglSMlk{yPBVnu6-leU?ggCD-c+_kJ-PUqFrc~rXxaS zhMFE^42r~#v^8abHo3BW$kiT{93!}(QN&rAaVTG zW|cSAP2*@AVj5ch(a^FiNgy##?=uHgYl!{Z#(LKw*k$4FqM|T4JzTW)F(*06)P*TS7TcPUJ-t3_`tft_xx0Eco=G={ zMwW2}tRCvR)0b{5UKjnh=s!GDK0oGg_W=4W;nboxL2RnjHjS#MQn9zdqo;=XhMnOP z^#HT1k;rtD1hd5p@vJL9edFsQ4w`Hg2)wm~(;w`fBtasqj=WLA_f6xK^-BuA=REW! zE)lyAbPMnH8+Vn9s5T~^5lx#t|5Q(4{3_RR6?4uBr;ANh=9_Gjr!m=pa{#-4vVhL| z8bTH3lE*dL=MG%n>tt@ZTvVsHUguL*69f{?)?$G9XD?!K6W{srk|NG{OZVtlh42! zooEb0m+*K$)k(NaYI1DuIJmR$wrtP4ZRNw=e_b4MwZyA5S}&^%-fEffz{ozm#zD_+ zqr9@KO^C^YW;3`En68sc1i-p=-}-!T{Z%KeiA9vcKOt}(T>NL8xO>H{fl$?;xSr*Ox z*+|gLz_trfX7)|)4ytaJpPfu)hOZo+zu)b9SJ56E6~?D5MgcZAZd7RQ@HMn#eZQxf zf@Eb0&!B1nONSAqmrY!Rh}Wd9I#Bj2%vyK}L{ruFLH z$C7_C08X->5krbRgpe0+KNo64js6M3L!y=SQO{E@Ac;3F2dguVn#u4{xWbL&QVL~4 zf@MC!V~TCQENUT7+*^noV??O$O#!^-3@hg^^Ag5CBu;NV75z+r=zKnhXY{}MDlmg& zVrCXP9yst9dI1B`X1_T>-w=`AyVnNJD;a=HnB}HsNPlT5CsXK5=PNcbb(5`Dr@G}Q zr6u)}4&nPLkX}5$_{qu98PR0Y-QZg|@1&{T?h4M(Z3{ktG6Z?k&)$-PosWMq7+>iJ zTo~YD1bHrafwiW(1u&<0sgsuJ;}n1CLVAH?z3u26=}kON`*8_hwx%lGjFIQ7(Muq) zm>0h@0Fu*dH9OfS;*U@IYiJc9rA1S!VEs%Q*)U)^6c*+ZdxcMi^mDjuT3(=z>@OxU)W&?Bc`SWrusPvx(1);(ae2Xv(B>o3oA%E&fk6q z-^8uO!R*&0X)}1oCR8?*=RC49Vj=_}7`ZNphCfXJ*k4mGWRPIDPQdHw!P(E@KmAou zyes%1K?3%(O~9vS*eK}$H$S@Q)2;M6T0u!+G-05`s=+mBb3MuAs`3IAZ1hLo(S?x` zs5?DPhkd8fKmwNus)N&4h$B1N_z0c;Tlc7X4rht}YuF@o(gai?W zsp8rDOZZM);AIZ)lCOBni%s069kck2Oqe4cTTo0^W#a;Af-C+(0#&1tbcC#W39I#A zg%Q#D`Mi{i8h>Wba`N1JNUI=#VUV&wh`#LM!Mpm?BW?%5dQWAa?T#WqAEumjj*tur z@0lTF`vCh*6ez0*qsU^FG_dqTcK<#}p)Oj}B$x_8`HgS2uaE5Ep&^!IWG3t|@jHe= zeodX=KDo0;5DYDM8?S%7C*ye%bC0G%ITslQF>dDbhA(8+h-i6OeH@z8#`Outw(FRITx`Wo#*aQ$qY^!p3;s82Y8Hc_R+u#R%ayv93^qv$5S15=Pf!;TO zNjg*3xyJru4u&N!J-W13Eue;B+84rq4lzZEis1tIklv8+HK39a^G8^R?O(kWgQY0~ zz`QeEqv z8~hsdV#2OOJ@{1&=sI53{t=xG0Wx^i*F6Sd@n+QEMy42lokGfeWoFaIt0B)gHGZOe z?25=GK`SE4xuA^UU4=l6BHsix+;}op6GE^+OWkoXv!}}k>km3eC{Ut|Wu6`F5bY;jBH>rjeawu_`?f+im6iN_%f@_TJ(YG!od`!xhqGN)uXOnoWnPi z8GvqUBzb6;VAH>CkCt-tg#c*}PiCQ34%4Mc|#^!Zx@J*+7!p$7C z@yQ(udCvBy|G+B>D|4Z{YeYhxUha2*#8NJHWgWWlJsMyi27!&VqZ?^C8p z*Fpjw_G_rq4U}acie1l~da)5E_0y;N&QQSxDBr&)0=!B8zO~RRk`3(GL`%@^uY$LKoidb?mqXAyq z+Q3~~WtAtVOEqblD;e-F7gRF%QNPZb9keRVwcPa2^_9tjV~kCCwml519!zNl9ZG4Zd)sO`* z*!~FR5^+ClXy4naPP(AqtHyU7Y&K4X5(QrBjg8H`^W1v#UcO)o|A79rbz1?A0PR9w zjo%&j&YK5yng#;9zW*Q^gxIg3NVJ8c8)qWtH@+1{;(!w^wb( z-%~&NT-A)fFu|hF%zG_x5>*MTWBe*yk4BX}3OHP-J201!AG_{`D=Q60Wp6eSbN=g` z3(2=sIW7sC=`eQYz|+OQ<^?~xy0H<1f$?wkA5Q4!%2SQ+UWnDa3v|KV{`Kjk5xP(; zu%X_O5|-_IP6)2?&Rx<^SZPFuPk{Eic|-{G`@! zF_dnC=X+2*;KG?@b~;&uuK$=AiqhT9@)Uk#kCe)w{+gc2 z2#v6r{tx2#l&i7iXnY53L`u}=-_q2o0~%btBkNPG`3l6FYV~Z>-`#(Qg8?s7<|K?+ z$uS#M(Gvg6imOVbf|{ZN_OJx(L}f8gWl6tDkbdp7BaB__FULQ{11C(d`fCn|4n9gp z`n&I=3)_G7;{I6R719{N!?`|5d6;l9Fb$_ZznZ zjt{72D4Z{kz?<4x5aFf+5!e{SozmChCJZ951RS z6NV*cYaJ$^tQcw={&(ls!#}6?I1dNUjNg>G1AT-1ILG5*%g5EH?4eIzib~%!77oK@ zbG!Fh8CJc6ywUX!AN%mnO|8rbMp>Rr&D2qPl&Zh#Z!@Dl#=i<4zh5#hOF&sq%Osh1 zuJExU{0qXq->hPyum$!{~zI9Kh z-FhYj+}*u?7FB!SzCo_)+RJ~18?ARoEDa;4 zenvI62>!I_`cj`59g36nXXswrbeCjzaZnEV`uy6kX<Aa(k582Km>2MrG}&E1x6dqM8T);JY3Aeg zHRdR%j+D!t@0Fa)(|rQabNTBRXURSKRgwCp z`tx6}9O|i~o>aw%sl9t|6GibdtI}vf_Y*+1LFjnG^u4kK0u1`Lz9Gaqhy1YI^+%qWlA;0wrfg9I) ztLev+2O}#%=||a?(_UPKE+$6ew%p2zUvxiUJdJoPdb2;@m`7L$^vXN(KcyP_xfLJr zi=qM{AA;dFcu0!J= z*k$TL$%SfKP$Gt7UjCeUnlnt0rc`?%CeG@qD{8>Ih2ltR;;eg?cs#CLduz~6!aS-3 zycvG+3H|%)`(Al!@|xzbGW+A_Dx^P8`=m@{4P5tQBi8-WcJ3$lbKQ%_pU$%9NTzy4 ztvWxU_?%BFZKVIhvwd?MGDBgz7S)kcU+rS^ti!vn-*E^woVyi&yhtW5U($K2f$Ym8 zez}RrE#bM7kmagW;q`}>cbX^OqSW&SlQBa6g!WI)`;QR(C1WBB1F*pavo&`ne-Ak| zx(c4|-7!*$sC&7=`b2@BpYvNuqpX4ua|k#eY{|LZ@hiwD?Vm77)>jp=1b5F4!xG1; zasg)V3jFWjLXu+LbihmWG4Y+v9=lQzUdKtpn`IbGskD$*f@=ctZvvDQWm$9SVgz%u zL!o87e?6&5gT?wPUDbWJtm3Jhutl>9^}6^Lt9ugO#QBn~Bg;h$wvY5>I5UfVk>KXY z;47_zQ&YBCA2lCmbv=`nMGv0HI|t$`@o#MBy4}8)>T?tx#|C=4Srg8?HHEdOnhl*s zwJppS`j^i1;Ie|EJYeN z1BI?CVKq67nWqGxc(Q8v8_ z*hHji>w~C4#x_1O>Qo*IR&1bT-svmrgP$o+07DV?#%^q={V24jk~>b zxlliq7F>IWdOBk=gM`)OMNRdV)SRkBYQTe|9M|>r%B{$R&p$sbrg(&-qkO>6X*TM_cIQ49^nKJ6q8*2Baq)xiW7 z!}un=MmkRJbz5%)c1jOAN@mw{x_=B{#dm9_5mfdiI?R7X$IgBZI($ZRe&Vzi#b4?~Up-YciM=nES&jLX=VWw+j8{VW;p5zUD;cy1*}ffVHqR(%2FEm~l8)TFsCCrU_FlU$ zVdpuxA@Gg99pIt-s)&1)7?R>nwjK4(&SKcYx@#*e;q#3VRl2Nu^OOvMYmYuKrDy0!-pHm!i#55dE|F>qknr z^H6_!M-5_~=J7G;6|CIKPX%5c@k?f+@Lwcc@yV=c>KQV4;Q6YJf>!aP&a;&QVL5M` zch;(mgW4twSgGl=f?KcyZbzTbn*>qQu&zhFLC;D0AB;2S%`I>q>_9Zm8R5U#341Lp z+eL&Npi-^$Ebwo?S)wJC zts0cjz!M2+?xH>kkMIh9OR!3NwLuB=6vOQ|{3raL8S;6TGD}oDQJ6|LCV!zX%ILoh znE|V3db1^c+j~`;d!!b`dpby_c=FNzX0=v9o$$-J+ZPciY(G*ve*TBJNfsee*Cjdi zpYu$c`ZACg2-+A3aWGF^m|wqp$i4Z-)y2K)g(JHIiJt4drV*kHIulDfo0%pVG1+V- zLC12O+p;7;O%{9~KYd8ru3K+pl6R1G8T?mRq-m-vAsi1^_hB&PZYnK-XM96O%SYUnu4 zF;f)5pS;tMR;c0XG$h(gJJ$YF!QuFw%JfNYHMXnxxy9WmwHT8wK`W-2*Hz9I{hzFe zFH@84k$~f4^dIAA{jIq$FnpoVWxW|h;Kcg4U9L!&@MXm7&riAOfzMUfny5qLw=T}o zZ?}lvtt79`5b`8ncdR>&H9O@q(#%@jXf+_seoEw{V_-th5bM>qTn~>jQe;d?3VJki zIFg<9A~mw>Rzw})dlJKu!CI=J9AoxG;s+k&w!V&CHzmCp2 ztjVv9<7Y6&Xb=#P8r>fkNHe5Ukd`i`ODX9FQ3UA@l}1XC=6!zepS!N@ z*{*9ld(OG<@BR6hsAIb@HNv#--@tJ2B7z!pSn+pXsbhLKPQZ3$a^h$WVb=+9$r( zM_+~7&6^f52L!qmX3xo!%RG7Aalc}aqPunsHkth}SQ12xe=1`+JT z^J17WC(fXMQ40H;Ju-vyJyhQ!?RxHdj;I-86*-}7pc&PM)b4wpL1MP+JU-`g{j#bR zaJ{}olzyy{1%n10wA7dD0Q0%{0p?r9q_+l*_f_+e0#kNUsFGa@0YhDpa}|$o$}r*x z$O|~)SK^mi*1e~P1@C;TQ-Oin3eUI424*`TkvzvJoKD0`Qp>VL^iVuOkUCmXp57tZp_`yu@&dqHCd>li%`(x3#)DTS$c( zKYxJT#fG$Vf7N@OgQmYC$xwxIYa`^RCpNvjRW0%*m=ON$9difL$i(&T;qvqUzP`(a z{uhuL=m{|e41FOP?i{1a7fFuu!g~Va3Onv0R777}a#j$?#p%#pKB-9u!(@Vh5lLy4 zoys*?V8~bVXN0u#$PWgQxep`;cGM?pR(p{X1~1bqE#X6OsYAGc2^{^<@Kw71k^m+@ z2~i}@MmyG0CDxKw0C}h3{x$B-b9EEPeis%qsMwr49IwOKT^Z_#dngk*t_sMCWiG+JHOje{lCz{vv^uaKQ~-*G zmWrA%*kU9yVI+2}N5#k!0=zPu^f1)pG)xdVTlO5Kv;iab3xj@kqr%lEm@}y9hC|ZK( z_nluUOsTmG{~4>xGo57$yzCx^xfzX`&%=N?C;#qV@;hrvfMONM(nlR30rAnTfsg3H zlA?#C&7-X!XPfU_XYkNP6O}Hd-RCl|!ZsJ65Z`{L7hBj%py6ZHl|Zqtl%i-dofHvF zSU&0*Ry5U%*((7N20+ub-5=!ne!5sEyJ+OalW$uXfP1~71?H3jWGV=!Vd$#!_lsz+ z57OWEG9$*d(fn)Qps-b#nuB6yPwmgl!&zFZ$&Jymg7}>%ureL?L*ZzrUDt|QaEEZ2 z#w|b+h{e;&7g3t94c)-)G^B|jYmHldn+HT^FWJ`R1SZGDhoEMy7Y+}(@;PD|sHYS# z-TxZ;=n2<6(+thn=3$J*3f8vr@(CFcn(li7L}e>)oa8HQ4yaB_piX#aqV_PX?37*i z#m0|n0Pb}D5p#yj1H%}?)@>6(Z_Z9zFOsN(GGHDVAmNP4-?+4!w{N#q4~8_N;Xn z({n;>x2&tee$Bn$jJ2>%Ss5xlABO>Lt%o`ds*0(#ZR~GXtYsYzY)Xuyvl#R0VZh==+!7mAB-g;QCJE&`G|aXYh%&3W$?xR={1*CuF* zD&3Zb)>=GXO_)>Sz|kR<+}|kI-WeA$LwNs>6*&mT&Y|gEub81K-3vEkyZV}9qd?{2 zRmv={Z|bP>6`|I*SNqs%SX!7Zr(XmEPPj`hXut$N=nm9#I2gH1D0}=vK&j}vbA+~&Eo|gM)yqCJB8Ux zUYrpm-2rYf_$jIkI9vSZk<(;M$a44H{!#}b^kMkNznKBcI;AAn8)&=fNHR-{2P>ji z<4%)&2jfE$X8?D9E#QiKrw+y$S}hW)=t#>1+Z0NPZ)Wb9K(F#ExguwqqtH0^F3PW|&H(-*B{2OO}; zVBV# zb+4-ZCG$sO+59>(HAW=CBMh=z9;`zR2GHf)KP~0VtGnF2p7?J_=OKR5w&?lbG~9E( zc9v%2oz}MUUQZ=9k*2Yp_(ey*!LkEIHj4qvj4~X#QS1cE{$~l!*aT%P#r88I;AI;~ zhUT~UfEWJixY?xZm#pV%H@e-QIQ{ob0i&=252drj?jy?4M2Z&i7ty1n3>1l_9&SX8 zj~m9bB^pmN{eL-HKA;Fg<~o#audP8v`~~mjXfkf2MZwj>xAYv|(th+_|6m3-;%W(9 zby=x(Yc3ryK2rOP{ zp!NxBZ-OGq4RDlz$s=bRBOGC5Ony5D9OX^c7sHN*xJnnjRMrQPVIPSD8Li zj{DlRm~x1btW!@%=t`=<_5>>%FH+Ip7l16?`FZ~-7Z0Cx6TTS^ z3`HS1;4G@aGs5#*KuNGPkDVdVkoAxA*g>pKLHRH8{qUu4b%x=-X)|^fuUVq?1fctI zyJNw+@jD5lmEUGlRhr^PO}?|}iX#gI$%#H@jF)4ui^S+^b6CpZ&MXV5SXu+oJ{jG~ zThWD+siO`~jo?b5r9c~LA|9QjGL7vZCeuOA283`)N68GstvmKVwrZ2Fk^gOmiDl|$ z&ls0!gn6Hde>7N!lasF04RJ_mC^H_vo@g#>!}49UulsPglaa(GTiN06`67zGmYE6r zPkyQe$;p3Lc&~ykVou30xEpL#*hgQ=_yJLyxocr_A}@3O9~i+gCXOfg)bbOtj_~ik zB*AQf^Oe3|j!JV%8R{%$hCE552+ju_t(;{c`pE$uZjcb^^(m6GbkRz9#OQvsbTq}Y zWL2r3)2*`}3A&33?NK=&-~*h-Ei2a?qt-OliaK0lx1XH;|0+U!2~~ug?6F{A4}L>~ z`%XXWa#@Lf(i?wOfiH(&@J>~8^+bhB+Uk7PtFP)FDO=V>5qzol!VzAa{(Ui*|7tOj zJIr=@gY23F@GpE^efGgxJ}%S0zuHGTDEhc9ed{IGS?Ngm?iGiSdSjo@ezxvUz0ncB z{SED}&lvhC(|*1Q)BJf>Gf+z}{10<}XSfuls~Y1ccGeg=H-!tJ+PLf8-2?lyK~nGn{FKQ_MhR5rypG4FNs-3&d*Fq6b3>}l_tiJm_8I3?4f1OsaW4S#YP7em3*)5 zo_tW0)B4Y=sD}^B>3zU-r%KW+p)n?fPT^KZI9EmOy*BrQd$7CNOE3^CmoJ@z)k(rr zwze;E3tL%cPtIjLKcx@(vwOgrKk%$^bcNIY&5EYMs$ko+zPG3^r>)&=^a4w?4=K2- zKP6B9`FWH;|H>yQj-{~Fwo=m*4AExQ@9x+`2-2IN-R!;8j}?UB!yh8qC2tECcYN&L zH@-`cZ1A$JJ}TFWEBM6-N7{^a<8oPBYKOhiP5)RtNX%y8MIadJV|Lzj^yqa}tK0(7 z=Q&59(acZMiHfDmqqCvH(=t}q3iAIWPKZGWxi|kf@+u8kh+@Ui1d|Ks_l3SJF#C}3 z^F2C4dwDZF$>LTb_eTz)tJy2B%*Trz@(qq92Z=l&G)C|jxnjO-c#ZRC*F=&8qxmIl zlX+dOG=)Wl|x%sKH z0h~@{NVw+dBtE6c<4qSp8d`WD2)xc zLRBik!C;QPKeh>?Kw@;(;W)09iVS`54* zBm=MIgwO9nSYGYba=jFu7*L`Xt1*sKcboz`lW)4!pH8&7YQ}<}NSd#ZhWIm5cH^ja zYCaZ8W6_O?T}uMS)lEAIhkZKm6Kc|bQ^)fNZvQ|Yo!w%91xeDXQKx^ZKOne3&sxx& zPiq0jx$ZlpH9{UDMS#hZ*DpN>+zSi%mKbc!6RclRfV}1&qwKO z%;kFC#Ch@-K|*qfI5k4XNf9d2t=gx^MV20798*ozxo*4Up!`?OSfIa}G~-HeO#$qL60*?|Of8Q*?|{)Dk^-}$8Ssk4l*C?7wciJgd3_xM|>Q#fvnBb*)6|Kb{f~QtUrRyyjyGO8e5QDTq2mZ z*RYen_?Gkf!8B-;y>f#-0imnGR)%&37X_6Rm4cyPWfHVRZew6zdd~-MWfoAn_2a?# z1IqO*qOnVC3*s=qHU;5z$R>aE=ZJtB9Q1R)92?&s?-_*9Y#rj;mFG>E=qC} zGT`8PBLqbc$5DlYjGk0zi-~u*v>;Wym=FS6O z&8#ehAWy9s4#GJC9Vo580htaLs7_1+lhL4moR+w{s%f)Xb$XiL`{~QU25@UZfSZjz zPYiH@pqIHB`t}Al7*8AHqdri%qM%w2Q!wMGI=ju@+W;lcmbK=@I#Qnp$>_G10`@t10iBa>d{Y3k<8o*m@%9IFv zI-O{80BBgr;)Q9CEQn2*h69T;g)|tg1P&UxFG$DIFj(?;k6dQ87@#UC8eN9>aFk2h3K?3|zHqk;$Da@?D ze7IBp!P?>E1S(`VD?66zBq!1(tM5_{L{i#*6uUh$M1$0dbX$SK>UunIdx8fu7ca%h z)%r_}OoGGSGyyc1HQzP`CeR_{QLWEaQ^Z{z02)y{Pg8=8i#SB;mngA>LfV%|1$)Vz zJUj0UPc_3!WDf&jAR+gV6qrB5Bpl_sM=~hu^!nSrB0UP4zw~7Qf`vT|1yY;GK!C5R zV*H;Z1TGxfeq9bar$fShWYn=`LeJeGNG7t37VKb^SUreDJsJ%P2tCc=kr0}Ob*^4x z0^f(ANcV)Wruxov*(^e^J*3D7flRhnY6yR6vgGN})D4aN(z&zu>o*jqXnROlV!xFH z1D`xL0Du3y0KgA3|0@=$F_3BPU598e#R5Vj!9eB>GW6FW56_>3A$__qQY?$5^pGDN zgn+5>#2f2P?1ZxFnKl5?3a5)57{C+*Ek!7%)tR~hP!?c6Yi+WM3TV_D+M;S&Z1V86 z@`O#~)z>~5V}a2CNFHp3!RTW>vH&Zb8JowC>rXo|HASFSp;6Fc-G1621dPhsH8bI2B3(n$t# zxLH`o59;9HJHjjGUm7MVwjwZMAhbZ%o(kXNF{J(mo8R`_fl34b^SfJs{a3T0bvkdc z@vo&uLiAY0ds14>rB;pP)H)d?Mh!h2XgR=S-e8ic&r$#`qMBK=rx!>U=bt(_;Jx6w zd20t9Sc)Z9+(?U+KO*c)vGq|D#hdNFH3Z3RWkZ59QdA&;W)6l9?G#9QjsSn@v%lpH zqb`U@3!XC)FW#%LJ$9QtgVuCcn`Sw&mi_@<1I-$G)jl3>nns#{pFsgSub67)b1bBk zQdes(##6K|LX$UyIPVu8?*sEkEeOpM2v(PJHOY!u;zGo!W&bjy>Qy0jM+MW|z-e8m zvC>d>7e_TVpc>@00~!etvwYsQIMD@i@Uk&~1Ml%`TyWJw{(V>T?o zIjmF#lIb2%oY@RR>-G6v=Yn1rhl#0tyF1U_FqCdylaA(FU0MTX{Hq)Y5|Q}{!`!+^ zr4lB|blKoRRTgNr1`nk^paI+z7NkYFE|_@@#lt<>@6%1O(Vw`yLzXZp$u7l{Y8ZpC z!Ot%`4Mw0O4nozQL!pAgA=VAOnjgJ<={Bicu3q&sQVcr)Hs^8B> zg2#LrbAVx{7@m)TpzVW;pOf_vr<)-I}V-NU{i4( zT@}XpIP4G930*-5?TF*XZ_L5&tTCq3 zxaGnqns-&8rUIgwcA|KErg$1)?s3=qzmmqR9$|r)fQH&p?l(QJzoAS*Y}KSTNSFtm zMD?C=00prJ-J7`eU-^-PnxeJ`FmxggW-19+dN0o0A6TIJLxsDq%|6|$c^zUHJH~uP zMfS=CGJVJ96}VI~p2Tj(mft<8cZA7=+8h!B8O`wwUf|~|PJo70g+cJWCe#fajBX7` zektsv8Vkk(3T3O%|7*Zhcx!?}mA))TAv9yP=%RLGR#Y+an`-!2H%H?U3ZN!jb?*$+u4nTDOHTmXC z*46;)G;c%l-h*0Hi8mfQg*EXeAFAm2Mq^)Lf?EGXgm8|ubY(poLxr2Y)piyJ+7!1V z47d94vZHxcN{>OWfkUyJ6fKKt2i`&5$+M6!2q$ zp`r<8bi4~y*QmHNr0KsHA?Z%AObOKtLZ3`bD3Yt+VeoTO>T zNbqnl3x88um5DY=IRch&&BTzD7a#$-eEwNeq6);8$*mn=XtOofo5VR0k~eVhjJjvo zUY_Q;G%Y)4;cy2%m{3(KJj`g_6=Ac83wW1tVEejkmXjk#W6{oztXK>Ump;}>lf`+H zVBQppw6QUVIqtU|zxiE0{#ldU+O0T4g$tZDD!L~sx{;{E^5!YGPkgGx?nW*`8|zs& z0-6?MT^M*){n9t!4n85EyZ=b~i9dcQ&WQs!82cwdljQPoRE@7&4x4(No;{&hdm;Sg z1^`0iP)7;4d6sWY!cd15pAld|@Rej=NDv`(AXU2Xhot4A@)<2kOd%fgz%4bG|DK*h zR#fRC0vN9gC0Ph<@?m^MCGJXBq~61Fg?0c_#N|;QnTKkMbNc^CQfGhjgF2^nW%%Zk z;$Zw>pwULca@Xcb@RR>QE!(({;>UJ}9#Q}ulZ*R+om#D~ZdcyMM`3w#yC|4_LR*<~ z0RsdKu}D?)2;im%SEuf6`=*Mo;{p&Y?6VV*QeOF??CXbm-_8+nA~1=AtPLhEL&!ca z!8cX&)DT$Ag*9G>Clu6DJWAv-pRRokGwhgnSP+L^X_Kczvlbg@D$;Q#rG=}B7 z*gd%R132J&6MRx+K=mB+iKhYViRFTWR2p-mhqrVbL}Ts*LYGMaAs;_ZXQa8v9%;OBqLgxjG* zc98J$98AVWcYr5rh09;XshjG3gs9fDcl=ii)gBrWLU>7})~IIJ+(X8~!O+RH;FkI5>Lx`)w`R$~(a#F&h>+Lku4;U(x)1{wifcD}PwG zsO|B4c}|`AX&&Ef z+;b~QN--K&LZ1_*;$d`FM-SY_?ZgHB2nuSLOq=!ExkIo?#TJ@F;*#=Vbno?Ch3(l z(FZ+Bp)6mYX(D|qYl}J_u_t7Ob73X5_hgikp{`rHTAD5TQ*REKdq}r?R6O+5`j++lrATQN}RX*$F?XY3E+gS_%7hYId8a#e}Rmf1PLF z9g0-+jIMp97Qd2IlPL;yv}g5+?^j~W*1KT_QlM$+ZB6r|>%=wqNp3Fwvn)(>^-Jd+ zk-H>Mt>cDCv3yUKH^ zAkSgk_5DM6%2EVf?rwNkepCavlI5%REQDn;u z5uWpV{`+0eU(fmD+~>N^b;f;v-tYJ4weClz#=6uL925XRt*@tJ4uB@UL<1R$c+mSW zSw}p`n;KbMBpy%yKOapQKO>1Bqw_a6z5=woGMXm#-rgHl)jFZ z#XY;Vd`IW{Gqf?3d;-Yb)6C*#i$%S&wnqPzlEkpR5#rDIed*#oubQe;rUy|rr~JSFBAId%)-~I& zG>MosPWtEneRJc5;&oT+x6fxEw3>$uDtrieb5Yk@EMY}EasO1PYdrUr^=rB>U6yAt zzen%6eNE7M(HOYp){wvdCgv|&Z)|emjo!O%(Z_rBoEq`e^^+e5o$9St;yCVY6>J1t zn{?GL{cL3$6D-f^GUj4(TfpRwS)v}RsRy!uo<{9wOT)8?K*{F5%2(FWk%}wM;honb zirBZ`{)nL))x8>8D>oP_VBKN25n7|y@Z#fZq0fa``@o+6@0uqGF2s^-te_Wi2*qkDGNx&}Y#mH%LXh*=wv<8ll6x(~|*2@E(?E`xs%Lykl7C#}N z2-h6$F4=RR?Dgg1IgFICqs0a0X~p}bWpL{l!qPL3v0T9AbcF&LXDM8K%Lo>yjJ~|& z-1*mId6QTV?wRk~t1xzNO1w^gvhkq6=RYY($(ZytSJdMU=k*V8ifEOVd7+WVmNybH_ZVX|rGTDrmAVaA|yf%%;zr z)bW#h>_48;6yeX|Op~;*bh@~bd>5N}!?}C$UC2@Z>(`_w5sL3zhJO+U^CYKO1fH8; z-ZUC*?05rrD9pJJ-hzTexlcghr^hkN&qDjA%)mgka! zwgog&ZdlnkG-{{E4eHd9L>)3fo_cgT!hu3Hq<-loUS?Za?A5ih2cocvj1u8}Bq1Ug zkPzV7aiRP*$I^R~*@FTVhlwWZPWH{8A+EZ?-$?Lsi!utSyo&il5ti>Qi@FmQ0;TiV zN538y-%h`-v=ovAIJPV>1RJ*VcQSUeLslFX4?N$J&e=un-g~o;0JK=mVJqjSNoMB1 z{W@yjEW>06+bK`ntjHPn^Pk-6@*gFS5!V`d9h)eR35;e}tnR+b>^m9=4U}uy_~uyl zr-iC|ka7cYpB%ijH2+N~KLQzxR{yL%?`6NkBmhKwdCn|T>%bTdIqT-i5OAazsEhrF9m1V@+WfNxL#j(}DVX_fa(6YlVa7nC|i#=MxS zF}RAlt1a$)|K1r+2|v>gM0-z^N&9@UGJ+eW-@8m7zgjLNmqB3(eC;kgOTuMVGPlqb zZV23H>pFCkP)tdm=X>1`_awk&ZbJdGL_pR~`@k!ZJV0bA>4NrCk*K97UPZ3ij|0~V zB=%)UaGm30C$CV;_rSp~r;R+p4-IJfKvKXHI6sp0@;|A!Ijx6UV*68=zh7Tpir8zd z{*E`ksgpM~C9R_tymd~J9nhc|eF?2Vt&xc2bB zwHHW-aSZgUXU%WXA{E)}axRP^?pHLK$qqgYdiu4GVdP7{pr<~0+x~^@y{d}}51dA}&PY2%FkfNaU5n>gAi^+&Vae(*Io8|%v zT%w`UN1b1t6>6KcNs-IAXzWE&)z-m7@yf*ZO@F_05f{$Z6Hp_ks^EZQEpVMb_jL^k zR!ihS#-oVh!^fQWD=AX!Xa2I@g#?3P0ae7f1Q*^vKs3&OwQ=9qR+#(mjh)WlvNc!l z_F?U{Nk-T#(*vg~0k`<*XFXHf!nRVr{P*apZ@XRZOAh zS!*7cH@@aVm-EE3ME7UuXmL~D&HfE2J51W4MJByq>d70@a87t%vDH&@e_Q;De= z&_ojoe;k`JnK#{1{cN_Q`8|J;$B6$g0RNpcSai;|qyiF4qxP=_Tzn#(7l`}HkA%12 z!vOy4MK)>w@|c)065{7Z9^CegU22!kvOTteagn!AKHK$td+1V+XdZi&nD2WU#;Qb$ zi@*HCDOePWx~KMmpn!t=)q5!XBoe}Bq*D#!7Cw#FyY7`USV5R1)Z(Y9a9T~5A6m6v zN-`T45bp>BW#wOP5a&t$PT=-!B=*_$|H8RIk&S$FaDx=f!n~&drj$Zuwi}mkukOY3 zQsD|OS9h~5KeR^HC_X3Q73tv3Oj1MO<#2k4P0OHUXCs|_ntWtBFAYpyM;|HdqwtyJ zZi8s33N3pu{@-a(6B+JLCH%byHVAWu27{)%Z)LwGTi)`;FwX@cz(zct|7xvXpXfo} zoLVXPYV{mJiqGnKAeh^4`!hrM^Bur#vNR(tr)o}%H1*$V(qNez$=WGoKN>x|tk|mi zT$FwBhDYPN)822)N=5PfJWajbtZ-J9OL7sgJoP0@eA)X2@h6(K7d zfz@t^Pk2*uBzHbmIO-K!(rQ=WF)R6I7<^1BhX&5C^n~-7zP1A3l66FlTAAQ$v0%ho zBV=M#_SGwbt+n2fgeBd2+Jxj&+{jsSm1UJ1bsM>VYKJp@?Aa4(*{C7Wdst(QrhXbn z@n}U9$=49AB=<<>$nuaD-Hpb7lDpKZHh%f}VG=v)Kh{Q{$x=OnFAJGV@b4n*6dIOR zo~i5KJ#(%ndD0FN?=7B#=0GLgcBwGd8p8A;t^Ud)f^hcU9pUFU`Ok(2%KSQrE%S;y z+d1U%~#t9E3TKjWC>_$l1{eJ5V2aX0*Ug`2MCN8<)9tdRCq8Ql%LHl zh+qE_q;Z9^q+{cTIzOQf;&%M^zg>7=!nOfaYWpd)Qh%{VjvFln$#SWNp|2)zB)ksel(>hP7lA;hol_)^k%70bT!YVR%I%L%23A$9AJRU5!gOO-S#?D8wq;9y6KeABP*Jh!O|@Fmk(?kD z`wvX?D*D(Mnp^W2YhB6Mx;NkE!#4%HTv2)27}&r7pY`rcIWCKD z3C^<8VZsQ1fx|(%*=d09hm+qxPjX$UW2=E-I(2rS_%2;<{X!4R9`1~&RIz+I)yq48 zb=tk-=cGK;Lw+UJ3O1MT0~E3`Gv4~R9EPMiQsopTguwxZ+z-mojqCL79Y~;S+TE-R z)xzvDKYlf*x!_ic(=6KPEx2!C0*6!4; z&R&VPZf1Jrg(mFHk@zK$!vB0PpSjIlF3Nu?M)vNVo^}^-ZIX9-C|1dUa*+w(&Rulv z^4l-XrLsG26q2iqnmH+C!<0Me$G838q!7$+aWJP(#&hB%YU=-kRZ6 z%B2gcQKf0&GqR2=v)1||5!g!9P=@941#rH9@_?KgHeSuTCO}e!LO;obfuf~+}#|{O#RMB z#pI@mo4JVAYm1Edo63~%^5jAQ;<)Ase2i?m--yX6b=fcRvbanob@XxCOi-uB!10E% zau8znX_VH#KJU4OW7W%+iJwP?=bwZWkV}S`IXAB(aqSnJyxqF%8~5owNSIqM4zS&+ zeu>x{r2*^PG;%U3~}q(XK!V_A>! z{OxF&!hsWPn&Eb(X{w)@W0CJ94Va?M1s=9>N%UWz4JtN4ob`m+H1khj>e?xI{zvG` zrVAa8c4ozm`66%P?`NJHp5a%~7GUy_2jI6`Tl@OQT_r;$-iNs$GYWmeN2QfNL z1D8#OJilz3>b_C<8Lnm#b5ZxM`?#XJDWe)Mv&#{a18zV80SMzNt8FmVZ!^MxbSlEZ z?M&gA_A>)3DZuJJ<|6I_^U7y;(i42d*3g9hc_K_^_O%~=Rb38Y zcSXj;SOghQ*|Qm=aNY>W8GbjC@roe}|6TUXH_30?TFs1a`|5kR{EM@@{^d~c@&Z(` z3(s8hs9Fzwf9Dn{%s%EGB*E%>wXnleQymOW(D%y^^q7AD*041RckJtO%@c^;Z;u zezOw&M^o1*_0l@tI+jIvRFzHZr!m;HOSZ6(q0PJ=GRi35)bjrw5QI3I?zEF1*!V2( z5&XywSy^&Bn56GNPMuJcbZoMkl9%Zb0+wT_=Bb*O?Eq`U>y#}KmiYbJP$@g;(f7#r z{xz}1U{5V8oF&Sp2x$rak%t9>US=N5m$c1V_%er&Wlu+Eah^<3%o@h?rVepe74?}j zQzpX5di7WDBxN?2NS9XLV8K$^E*(qi(#*BBZ!;L4&D5^V?_kr9Z`+vUdo+Zo!-gXA{FQVBUW(cjCTHKf|MZ!ppmr=R3U@88 zgoHP~1Wo3Vmdu`!EFZvszIu-B(l;xKWRpRXmko`D_a%iN*D!;6`1y7wm4fUEdHOpDxTy+Yhq)jDTy8yw}V}3mLB!w(3aW zc3Fm`mms9GIxUp@8#SyErK30LC!$0pfX&_Hz3|>O=Y-pXeMSgu(0z{OEXrv5+tRpXeg+>Vs^QC|H~D#9&3hl&wGnJO81T+vXijHA}!68pm~qBNs6=Gl&3&sGWWP zUf5Kpi>3<}vCeukY>B~1gp}7feswSxMPkv};?(G*l*NCfze6CAvB1~*LEYd+vo{G= zXurn0u9LJ>JoNhGtM()?$(2ykYYRho$yMZaG|qOsOI^)AbL)#9yBw2eXszY&=yaJl z4Q;-|;BQV-^)5#p-*64!+ULSKvFD8rmWOQLKHgeH5iYlAH9LyItb6^~6f4mrT*}gvQ z-+2WoY6!+6!_EL|NT@ZM!^7Z#jng{ z3VyM;KFL<4KitW~@l~Z0cb2QFGfhBfS+*1SoL(5I;={!KZ36|16V_8jd$qENkuQUe z_l*z^oPb?%s8y>%gL=SgO$02VbG|dJF9Oc|;!ZN93=-=nas9r~vPKbCHrhWUIomBU zkw@rB(L{a=m3v{2A)3tpQ}l8?OJwj94H-HzMNM&yzHck!?R|d221x865QLuG5;|KP za#eW{Uuoye4rTq{ikBDPB>*1kPnbaYz1jBJVzd*Eq%9pWwDbBrN+X@-cIhAC8%KGk zuf#hng4BqgNf*UB^l_dhTjFkCSkLhw8X2ut3SDgn4n{v=BGaE-#RBxLg;ptKH zmH1#Fn3$$Dvp`m>zPV5PMc<)t-vb5wxFKT5Tdm$DJuSO~6~Xt#zQ6zJ1oBlgMs*_n zfdgXb6#`rM@m~^kqXDUZ7z=>yH*y$yO`QB0H{ax=pl|Lz1hu5ekNgF>*Nz5d`+H98Jjq+2935T4>Xar1;C3Un5t@ zL2O>#n4M-hjB+I-0#~lCIgEy^;-HJj9u}Of2Tcb`3M5_Lu)t>OZxT4~S~9*ROjJWe z>Sf~skPKrv`oe-J9NAh85{K*)-$ng2KeJ%pP6HpL!2!u+C3ul_cVGt`mMkfxu{`h= zuX28NLW3kF+lkjU*-{N+;u*@mB0=MGqfsN-jbF5y`Z5R{O6id{^Jkk2^kb<87#<+# zv$T-Qi`+^)VjC^n@(>0>nRZp61Yo`Uz7!?8i{lSPGhL@6c=n97$phX;rwvA49kmQe*kwrQ4W*b1?MyCk3E~@;Ii^ zuMZfc(h>L%f@aa*kq`|#0kAads>TRe+gDhLL)}7%(5tWXLO1#o=>0NwQIIMY{i#v! zUp4p_x~1GUBA$l2R$k+BzE8wcf0X>v=!~QS?q0lN9Q{}7Itr$y&Tzlmcf5H@qJ0Gc z*(z77Jt?k_Tm`W{(*ZOngyk8NPa&aUNzHKnl9P~woziJWrCCp921c*&1x+f|6Lm8~5`S+Tz8+rh9-73KCnV~8jA_Y(^Vuy{9(20D#= z8X)~bULyG_NB-Nl%IBqG%L}+i#7*lT&-Sk$Z-MT&MnebUBF81q&k}&E4re;jPo#Fpv;NnD_f^{9yEx;l?p~OBT_u7tdd}}nF>-o#18L(skeL0pO0e^UvUCc{o?kd z?C^jLPvLdyj369om;LCt>aoHMwNzCxva6Q2KM7qxhzuzxA^3*0KhzJ14mlu|g#lL> za0dxgxC}65KRC|{2g<4Ag5+>f|0Kb;qrcx-H|BW}8|ci~R#xY`*mGLnw2XUo<|tDQ z@nxU?>6p!GT8dkYZQZ)WyBY{;}T8-`tsoU^1b2p~oFnbldH1m=rt- z8W2T{me7b$T*VM@WBIi3XZI(jAw&X94ckL@`2S;j$j{4;eEFcQvbRJ*lslf>NR^xT zhtx*Wex+WV$^KLxd=?ZGbXVR*xzq+F>_z-1o_-K{xIFV=q_p(u3o79DEmaLGC$1uO z7O^D|y#pu^n!Uj^dl`vaLn-tsJ@%;f$s-vaw8}^kGt2|r=>}0**D+B%?U9gZz`jds zX8^kG?kfN0u;uAWGhV$lyYHHHYFipp^faHc24xRX6{}6>GwNq^l)*g6@i+GBj&R zk9YlL4a?AV6-j_+{scILL;J7#NSEqYH~CA3weM)Z)V(fLRz7>FX#b(VQ@`&IyBIcE z0Z@q9l#;`b_8xkBB|!>v2QL}a%VyS%7GO5kiKb)`BbzA?iH9h~jKsv%gtNs4f40~k zrABf_Y4~_H0?s%+TD31!OJK2=NybSg@fyBhBSo_KBCFToTI_%S#TWF#JzzE@^vSZ%I(+81@rAo=r-%=o7N2 z=7u(EXrzZAv!4QA(%dBz79W4Q@dZWLDSG))9>KS&=~?CA5C?G*1?pZXoI%!>RnCGP z32ZjV3WoGAcWg@;zER*Q7aU|~UR~O#*mNL;GqUXA3c$td zI#?j~)!{=|Ch*CYf0_P=^b>*F7o&6eo0&B4tNUMOR`=QJ@}ynf8jI@BV2?zp9Ty-8 zd`3!Y*9WdsoiQNp-$Ta^pzPRo=08*sO_S^@#S0`9()`?WxMGFEH=uyNx}u8h(XO0% z6hS1J*PmA*ZAtC3_t~{#{P7jQ-rjY^-iv7&awozRsmiw?o7HkBHQ6&r=5M9s2la(K z9gTxsJwO|up0C85=ec(descnDZ9*22bFTXl5BkRg7wx&gpm}fQy~HN=UB(<4-Ijy^ zcN1a3s!q!T^R$0!j(2-S!oD{QadnR}fJMyBH6(1udZrQ1ThSeluC!^0+SqO8W%Waf z6nobNs+%_cW8)f1E_$Y%fcGH`JRzs^zL2(#-7zEC!6Mr^z)jJXR1tNaST6QUeDPp6Qnd6 z*Y5ZP9Gg@)K5nr0RMHxpUmlh2>ZFZoY=|bb80i zfWDn!t-I#?x?pv*{!86htSlF$*Up$ME~2ja@X)#3l2d6t{vQqMb%b(M3hy;3c6WoZ z@OVDGt#dH`cNFzXA~CI~v-Z=2Pv{|6{fNu_qrb^1QTT=XPo5edBYVaG`*k>Lb0OqK z5R$O_eVH1D2KH}iJf@}M2G75+Z^q;aYO?AA$l;tkixx zeIWag`LO+Q)&BwcTxsJ|neP&`Z)b%Zqc-T&n92`R>xaPuaV=kzc;` z)k41#TNwW;&QIG42uw<%TrG(lL%odvxmOKmsBk>u6xlaq9v*CS6nSo%1ZCidgivs3 zb$P6FKf%n;aNeJ4gCglP?dLimk!wttSE9kOGhXe`IlHYI?UE6V#J>2O zg?r{Sgz}S$x>myCqV&tj-S*s{B6%HG3&U`emVMD}-6NKd0@j1h;K2$wp0Tg@^RllR zOy2~2vKt+41nm+whHKlJ# z)sciM(qq@2ETji+jz%iE_IRhB=Dkr?^!P-(WV3e$@N44QQ|C9=cSV8Cge2|bePs|;d>M}yD;QImYnGO#osu^MN zKfAi+(nwlrz*4qUgRE-?bJ82$x0evqyf!tt9cIYJx4TJ$RSHs0v2yrFpTLE%f-okX(_BCkB5Hu_}tWqxjm zclFCg-qjyRs^q=l*U=VtSDdkzE$aK{f4A+2NnTfag1{|wn3zNb(vR|%pAuO2#FaJG zLsQ&MdZIRtaXgHA?Jxb#NE8t)`{jQOEVrv)APb7iF{a?MCT(A5E+V=K*4mFTWb(5I zmtl4_1py_WZ>U<_+q=0Pu&S7$L$9C+Sn42K$$NtdxiqDE4h$aJ)szcLjSu|-*g0wb ztdjN7SrScTYb_-FXSzB25LF6= zjud?8{Kl|rpe@eUeC57N4O;88(#9gO#r1+T z9WhiAnKDwIOSg!hJU6bg?Kr4bUkyeK?m{*&7a1#>y0BBK*DhD=?NVmKb?>m+7)y4b zS8~sa*DP2992^dbF!tiFfLd-)zgARQ*0(K@fxr&z#u7%~Fo3}NLsGO-Wl)L7WKBhD zv~mVgGuh>b#d(KLsdY=4pLNbCwXPSX$@D-t-s|{!W{uVc-eoiv&t7^SR4>>Yvx@>`fcx zXd55Dv15_w6wUPVwP>0t(R*6%9GtvCW*A4P$?@s_`RA9GgtEs1Yko6UKIrxyB}9k)G$D1fhpwBas{HX@*C+J?tyx%osz=dQ9&dg#PV!yz{}riiAnp?xXGhX^HhZNbo2{I`?%48gtbgA93u>Gn zTOO-Qc)!~{XuiDnwJ<*@##>&F?4^_GL)JGhpDWd9u3R%-Ui}%1w=(npmHf}|R=f5A zt4KSAv*tqyK6ORrj?tUPFKxCQS?_-=J;7J}>6dm}JP@xkW$3uE{w2IP-I2rZ{}uPH ze}2k#Sq9zF_28VIvdrI(A77s9auOj_dHKKC@kfS~iSi~26HzjH-J-cBRFAJr8dOp2 z*lA0d2^8oO_ISg(LVxoxX9Z1EtA`qyNXXXx2%7uaGC8PYF-_;(mhe+_TKnwktvl%R zsxR2QjO-repRtgcw;!^Q@e#K@V%_t7ylcdw@&)a8h2fGz^q=3kZgWXYD|krB4E`Ai zXpMxqt3*e#I)s8qWd9}m;NI0BaNE%j=Nrgxmw%qRH07zUP)$&LapWv3hQd*Y6I)h5 z{=B^GkF&lXY&~hNz6;=s>nsxoT#4h4okAWeuq=7I5fMXhrFpT{iE>aUrXRjx!g{>8 zfiT_oLx!l0CsRTGM{bIjS*E8_83}y5PyBgx&a*&^_$H#^HUbJxU(dDNc_#Au zmP(~3)>eE==m;h7@^V3k^0SSg)$DNP?_cIyQ^w zsG++ZQqhp{dw;xqV^d+W=AZODhegI8q1rt9FM}F$BuwL8}!-npnJ05^*VW1xm~|PX?SkEods@x&%^!q6~JMAJSy51 z%FNHAxH&|Tgw%TJ&sHvDo zgwDJw0fulHDfI^q(0u06W!LuP>Nm#zr$zRZQ0oy>-OK}ms4t0}`asyv@zvCaxRLle zO?{5*ow63q@vcaP1VGWw~*?7CYhO@qrq zqU%XLY0=|rBoHdqu~W+fq4^gmcoP6n7yh_dvBQ-UF^kw005d zfvZP-lkrPEg|XWj*%3YiBkI9n%l>2mj2N%GPg==g#Cz%-e@V4C$4z;m93+Y5d zl2j1|P0LIB$G3s-`N!i&sR-<4VDha7oYtll#5uRzk^`?YYw6_vyzRPY7Qs_3`7cv* z)}Kc{vRUVNHgN9qdqTch6ctgsxcT0QcK`^U^E>q_Tgp<{^$vg*b=T}0)G$)^*JV%+ zEcnkGFoqcbTX(-T0{fbu=J1<+G%8r{;39FJSrAlDZQEx}?$#t` z4O5jKfkWkGNT`wvG4m3ks?h2xSqggx9QMZeTdDjii+-MLn@rdRDxcIax%rAFtd5wa{1>sfk7jC{%;liM!?iPiprGTd{cW)Ebn`x}?rviojBipND zeY2@J8pl}-=aee3&&(_%#C?$;*`Et%!2q27${5A}G-A;-?}_{flHqYMhrE>7R&7wc%<$ zn@9$9MJ$j_44=r>)?+|wc}q#*A{wj00Bn!RK6SFd`13kvI^v4pKG}PbK*~<=h}fjz zrNpBLknPXr zHMMSxB*x3+=4M5&UF=`%k%OP_VDn)ueb5aO_#`tyjFg?3pC#A6tHQ+gAy}7h;MYnI zo1YyT>N{X_73dtVHzIKBamzbrghoUK{j#P7Q%!zKS+n*#d)^zE5^x}PTEvd12!59d z`1-#7$ec^#E>hKb*G38oyw(U&YrtL8(mu)nxM{HrD0Z+xhVv0*glDX!=UfV`QG5+- zAQ(eI4*pUG7##kN?A%YOfrj(NlI)$IN(80^mN|G@gs7%usduk}f8Hu}=|_ENRxzdO zA9;`X(%h#9o7kQRzzaUnZv6_leJ36FdcduGFQ9+Jg1`wJQX(2R{e*u}(yZTCfd&WI zlqi=2%r1c%2>6THva|CcENu{%ZMEe6EJfWZE*0aY{6q&#|9f8H@j{InY|i?Q6n1Qn zqn_g{0mAv9%noJTBm(2{tL3wT^x)Sio=#Lb`5^z1W%vQ59Tm*{?0&>1HU^-$gn?Pn z1SawGjT?2cF~47n)35c@SGbG_Q%`YRPeIiBY)g|B8>4X~xCe^2G^rT^WtqRDVXY6u zof%{2)}#Ow>DDAyX9ep#LbL6d@J$-0a*dGEDyx(dgo%~0ITSEnid7J78YUdXspYk zQw0ggBIGEVkU%Cz#X%>$a~DkIgEO>O0>DR%=*r+4_?_=}eBfOoJ&-l_J}irN@GRkY z*YyO)A_wjtWw`GiF%lh`%x4V|GPfMh_yC@J$Z4?U>jMP17~2KUU|=G^ly4>n@I5;o z;uYM0g&RMc1XX5#jsjuz@?{K`&+4gi#T^vjr&GmnJrk}~{V%z)zo-AFE9J6E%OOrZ zB^!YTp9f(}mWK)e&UB(5SeSc(D78`EBpRw+pPtf95`#N8P4qc*AZ{`F6$;33#e?5(@42%-sLG))1Q$>l;S3v{pC+ba?+Y}r~}aJV?jK)W@3DNq;=zF-(jB^MDm zo`!s@7r`i7S1?^BrjQlQ1Vf0b>$y3lv0WnR-*{fu4}dJXI70h5`Yj18K5QNxSaqJHxzz5v5UM9Ih zgrq`iXwa_zQFx1(m^Tb3nZ`i+h2cPAHr0Nm;M1)bZxr^Ub&+Xko1gZv`=1^*#}`wC z7XE9O2vG{wPO?0`;m0K=XQPUvlFj*|S%@PNzmSnzkHGh=gveyGfdKr@dzcSo&9v$Y zNx-J}ocmc7HQbB3_zJLbhwr|<+Cby9dA$|E1*U>fgs)B?DaiX=oXyjZw~-Sj`n-d; ztJe#z(1)!2jI%)77d_7qVuuh51Ndf40;Yod>B-{aNWS2iKVfe!9EQSD`@QJBBP(!d z?A)be2eG&(Y6zTb_yOuWDeTgGae+52_4IZ6) zg^YCgOaqozWDw`%b7hZMSdZy{5sNJInVw?7O+fn$^8oIE>7W>MWCv_sogy#Zqrsr$ zGZLrg`lFWi+9%G`ifzfpTy{!h475Iev=a)LX4b9Thlw@;0 zq&KBUgfx4-FYpAsTDYpix)IF&;ctJ$=0{THjl_NU!->EJ#%_fFA-=E4N^rS~z>CVr zdXa*K#!9(g<1VqhBkwnG!lEwHy!7S>=FhG=rEh=G--D1NNS4$HaM9LB!{*t3)LEN> z?^Fsu_ZiHrBeJ4Z*b-}n}K zD&dI)j(T>YYx1{k*%Jjm$*j!^iU|1nTG!QA0E7{``a7` zDbt1sTy%pK3je3O?!g2FVE;^#UD=grH+s2c=s_LBU~^)>CT6}Hg^`ZE2}30v3S#SP z4YQ3;4|4}i;$DTkMZoRTGZ15UdU4u|6S#7axs@cq!A$hMd5CNLyOe=9E_wt$wK2i1 z=QIn|;B)j6S)AI9eClzH9d$ttcTy=8cIf-@G_$q-LPD!2EIEE+Gu<)*cZQG@A9Ck2 zF7MYjYh1BxUfg;kWU%D@j{R&BkR5z_cX1LRvz;_>@ZO~UUA$R49h3+*o|GQg=;)eX z1K1RxbRxf?ob52PlNFk!;_F@qaE~uO;XCTl$#FV6fLcVEiT!&}78Gfu`g}gj(i1 z0>OFfYv^~=)Vk@ACY>R3{ z7mLkHFlU$s@)lHn_7eBlUk~wK!tmbZs`o|j);*F4tz3k|{f*rg3Zp-M#4Mi>3P+3~ zpKneAtOTR#SObZ1ulUAsHGDVi{#{QYY3$6SrU9f*AVzid^%MG zD-1f#Jx9P2_lkJE!r6%B*d(sB*Kqo-DB`-pVA*ht=$i+EMv?e%lCT&eN{g%F%6mj) zZOB1+5gqYBTG19U7AWnTv$jC0-0Tu)KoHdP5#PK~aOYk^BsFmX!+sN$71L7hLC4Lj z44Ja7UKscuD1*Yc+$)t!yUdSmCBgbH8N;Gm%F*@J^HVrYB_F@LMw5uc3xA>gZeqU6utS z5}FAnS+EXzkwt6dBn#ggsi5M@kd-h8$N^8OfKaS4BQ!+wGo)R)nv8DpdppT|R`BYR zz)w8@zI;EJfNXp$<0CxsziqDNK>Qh!+is|X9G)Yh6vh>-2KP&&$iSf~>>WA+4!#5I+2(wc`xz#c6rf4J%ce{9+_TH0}#;bLhyB! zryq9pT_(9hDp$M1|DLDYH5Bq5P9lgskW3U53s-Z24zQhQI*>IE0YTGkXP`qv?RoO( zVE%d>OJRd8+b_~f&sT1U4|%Z5ZHJc4pm2mVs!TumS)Jnx;Dm$DuCr(r9*AUNO-UrHrA;(4W}|F9?V7DS?+#+EHDj)aKz zH{^U>i1fnxu?Y>$XYE?XLCBx?!z>;mYAHd9GYA~`>__t9;`hSaE5(kYYW#&F#M6xx z3}S%;y*BaTxm}a4D4Cs990ljZHz`k>tlMZTvhperR1xOHra39g1tJZi2+~t*+CjkV z>&g3&mGk2T2?~n=dPYSQe$L~q@Gxn&8W-iWfL~k=luB*_uCq#Cf^(b4no>8E64msL6m)NbE&|6@S;iA?os%Fly_3OA znCm44$t&X_VLv2whj@=LX&C+fbi3T@M@xA1PSp9UjOe-1KtssJ_Tq897s4X}>B2$_s_J@7LLw{}qnj z;Y2gv_}@vq{~OGUt1~~eQ^9BIB|3Z4l%2xNs!GPaAhCQ! zHpe@X@F4nx(L&Uag_rT?T)13SsG{a+_rUaA22TF3(W7QD)P}aR{bkYDlo^i;)1ER! z`Nx=ZjDlW84x3v_5h4*wChDC|@vwVwHE(n2mK3cG$!&j}B=O70nQoSB|cJ1cQYk`0|*S%5u3z>jg!dS34q z3qS&H*e(xIGRXqiP^4O0alt3kIf>eY-IoG@B)_b7ZE-$KLjiDae(p{DHJCv{umeRa z0+1uCqlqWPRMtwAOGJSv63^;(4MjIh0b(pU1h0q8ddts4->!W+KcBK#SK<&P=3p@8{;PQhnQVD^eG%6iVf03?tK}KApX=U+FLH+euFgdaUKkb%lG6 z@psfx8)W4Uz99H^d+!p*5g0tx{&Ok|v(o2{4MJHVPnML;N|I?p_-fQyTVv}%CG01= zo@eqJ@eD9~X72A_Ro%N4X5vH^JYfDzh?(7$%mvwI*e!WFxfrTgV{UjA1hf| zrU%hDhQOJdv!-(IrB+|ex$_J=Sl$0|BDJ`HBnH9@{_`8Wb%g2kF%W>-*Q{mUHThrD zw}}qRIh&=$H>5y?p!&`}d>Td6mqbgN>?FekKvtUi9~Jg4t_W!yTOJcXM*2~1Gfkz4 z(ygQmbF8VmXd2>xX`!E?0Ky3QCQ`J!0NrA6;p& zW#r<1P+#tFrWQfP^gm}_=_mG`*8Q+glHBVY_`frBugNDZAl}`j?zbiw$Ga;HacJBL zFBR-BWe-J$2tg+a;3v)3+1dJ;4?f!5exvrxNw)IW1$u$PGy|7rH!gO;@h%kZ>uFj5 z&GFQ%?@gcOH)x1Mxhjnej4l$X=)In-R?b#RU_jtcbx{r>E5EMBJ)EXgVuzcKG_u|D z>5}Pu^ugM^J$>(3nUex~adr5@S;Wnj?N6$@N3SareSe9daK83RV*^3UN=W>ogLNBb zC=}?(;8>FbI7(tPVu*KX^xU!`%5Hz}X=;Rvl~!PAEs%Fq6&#-IOnfC2y5)T_1k>mw zM^*d9Qqro&%@5Z& zNd(x{TZ2RW%}*@C@mfV|I9{`O1nd^@PkmC24SVM1DNCE81Vn*3~+;7x+-z$uDu z`w-g_Do(plgp?XpC!OzM|J+}wU+ccSck=W7RBQdH7=4#V39LY0R5LS+AL zMbJ_7>1Z^L4VYNu1MYiRf{H3rmaWrgzGG!l?8}r(#LGT(Di5Y{R^q#Rp@6jv>Of+d znF=#AR4aN0gmF2;yibk1m5k-g|31jh3&|(F5>$vDtJ1a zi#-2-qA)ZzaiVo8(eM7)=OG)l!M(oypi9JiOF{NU1gkm?arEuQ{~xx#JD$on{`^*v}@9+25^Sqva@=xa; z*L~lg>-xOcMF>{j6S)4?&{On5TZQ%0T<|}xuz0zLHwp@=Gk^On>QN#`PB@wB5WBdQZss$v{Rll zz9Z55ZGP*Pxgu7jsedx^#-^&B04bMz?d$&>42zQ}A)WdkrHJ@s96 z2#EW|53IiKcv2d+1KfpXfcddD-WQL(qV767#a}w6%TPX6Ne8G-)w_|IbNgl1BSG;2 zbZE4wj%IkZHltsM6PLx8_jilmTKdId%OS%n3w1H0ML+lr2g~D^s8Bd_MVG>KI8}xy zPykcXH;-@<0P}MY!O?p9Xy^C$tV8`L-R-Yy`T4x#t}I;ypyk1dy7^Sj)lboHT=#}E zNDG%0n4BkbP1ehv9eA;JkA7KPVHYUMKKvxcZkkZu8txMIB#MERXQby#V&_&8lZ;DV z@iqov@3EVqe?t=yWyeZ4$julY65jBH64}eG*PB!$bebNVz3xoT^b~pk7_+>-YDlPf zM{VPLJrZ_f?~z|mqQK!7g%nK|?NzA_nB5PmoXiNZHZsFhY9EH&z!;T*?>ZFKXoK$F$PXxrVBGZ}sL+kMCAE!qzk;`a&O`7c|`PU$Y) z2h0K*%S!Lp+kVY@W@)(LjT`PRRidpN3$ipn+#v)JFLKw#0akUe_jFJc;%VZuX^eci z0$K{l{NvBaJ8$&NyDJEIJ!|r#m1VDjxj%prBt_*6RP|3kE0%wOQPaLCyH6?b*D7Sd zi>f*Jj#hz-Kb9Rng(zBHG_EsXiVF=gTm?1GK>+goXkP_|eTP6NF3lwBvFsQ$j&x?F z&OUV_=s(a;zt@9cWmS@lryE~;JScwZ^~{zU{Uhl7!_9OBttcC`(f*+2T8uV+Z|poz z{xB4NVmOGvu2{wo>nc`Y|InG7Kw|y?ivjO_xkZZE%lCBE8+lRsoiQI zZIzUw&lUk|4>V{#%g%=xT6r=32LU%7`MythrtdhWtrT!IX3d2*pH9fHjjs69KVz_M zMNCREb7XmK;iy+1)iWYbAFlfGnA@f0o9tgA$6^jz+#Up7r}yuHzG-cfTrP4@r$+fQ zc%!uxxccY}1_Ers8rK`DsWGpX_MKh~A4Z80bnw!2Dr>(k#h)i2Xl;gR5vPlM2;U#} z$iy&&<6R&BRJCkPsrNf>n3|Dap-KXB3j&$5AWvXr*XV6^@>m$$C;p~L1i7K^EXtGS z9*zdWnHUtPos(70P}?J0N3ceNDS7^M|E-((1VT}`kl7bMb!3M1L)W|!JQool_;-Qg zDlr<68K}z9f+NwZe#BsDm}>^pi7yF9Spo9IY(9eJb((Kz&>Ydql>N!0LT;Fhj1?Z| zu)T6vbbT`g$%WJ6yG_F9w^#v=Nct^7qZTpBs=D(PBpkx{tqM4Pi@GWfl9F5sG{zFW zTcjd9@dor7_lPEgGe5wig%IDH%JqG8Yi42WFid*A3T)UDCaFxJaAgD3u_$m7U&(#0 zGkG1R+FTc&rRBQr%w9ub>K6W`-9irv;3o{y2r`R2`1ODJm^gvlx-R%0ku|J9gy+NW za{xPc-U2c>n2}6IcCIQkmW1`!Vb(N6G6iPd@;+{%p(X@WM;B6bnsxiu2ykMga+Zts zo7klhB3wKHR%%$klL1Z*zeaC@2`aLFD0a@@wW0}dqXFL&j;|uF>j+@n`!RU8$XAI3 z;H8yW`4jd&0l77Rllt#S%=1L!w?QA>rRyGR_L9yed{kHtQa}l+VQ=66@zh={;4>Gf z;1zDr-~k2uSqjj0@R}e!O-6pZV*6WqC5?L3a9=mpqHbDCLyt1#m5NR4G9-i(adciW z`(8)`gvfs18h6lAUWSrMPIO~10J>2Q1mL7%Ej)C#lLyRb>sE_v7ZQS3Hf59407zqo zOoTu#Q>eq27^dc$D|-kw^MA)K`GGwlj`Mk8X{mRnucIsqe=k>s9z6369NS0jyo@1k z9XUp5o<7|US=R(@!7lIy%WuBeqOD)F6F!ZpRyYgsg`#V#iq-!LC*e9KBOycNQp_(evlxlU;HQ4N@T5uttiJgusyd;%wX&MbV8C8NZ#?REqXp9ZK zP-jm;AVv!GdPiy=>(aS-K=0!4`(t5mhdXP^bT7EkfMvo8uv6fuN-QXGqV)Zk>m~1| zteC~m?V<3xI!lVQWHj~jKVBV{$p;2}W&>6jT!~WoyeyfN>KL)an0g&Fg#PfR9U|4~(@I#xeY#+2hKJ#6_t%prZv z%r@1efQI!l0)`e4oV7o|<-5rnmV70J*O+l$XzVAz9(o{HK4kF^`*{Bg5P{o#H+HjS zKzEkVOOX>8dp{twqgU(-aW`_M1|g0nY!u%fA#v1MD4bdu55FXEB{o0?bpQElIZ!$0k&#D^lcxX^Tw_`fGp{b@kb*RUS1z7rp-x$T`kYTZM0`2 z;4v-c&%`l;eOdN-FM?p~4q_Nm_l*Nos0jm!B){|Yv;+`Do8fsfzxf}&(}_DGfl3AU zIMoGGKBx_Ko2Tc?RU(b^`g;o68q}7(5p1LB6ag;8SVR>K9-H4amgN;YS88Npjhgf( zw=%aed8yME@}T(_EeACP0qW=cd8TXfiZn~AU2{V@TLz2){|!-;FwUv1)nnuST~lwj%NiUNz%t_N=&jmUCT+(4Pu+^wkQm&MNm zEXVj*i>=gy-?EMF?t0bny@)>!V=CeG{%;}k|3fldW4iGL<0M5Jw4v*REec%yp7hxP zVK59KGhfr9R-v~|>Y03{d@1J1 zz>i}Aswt^(;l2#p&F`^m%kEYSiUltNlMhX#a_`^BO1XJ4Aoa}y1J^&5LqDm&VFjTD zW9T&srWilxWp5BRFYVHOBG-TPAv3K(kN(^POcmPdYjNxQ+cC7(wNu!uoh}+gxDGy8 z?Z+NudiJ|MfAmxO%J}UEzezcb!b$1@v+N-BKl@TwKDilSr9NRGI!T3dPFJFe6_BX# z<$XsSeBjruAqkQ^`AMH}p7#;p`9b>h`R}_^7koK^9zyrw`h6Ed^WUYajY%1%g=Y%9V)_(V|f$DSbBr_#Zz~N;{N^iZkUUww}&{uE>b-&YQ z(Q$Qod{9d8-t_EaU?@F4kxyu>n$(h<{mH|NOU=H zj)B~C4V~XcRW1Zz^1+qF%%%(M374xslY@uP_cXHHSksCq{%D$9J^F~`Rt={Av3bYj zKK1C4)1t=3G)oJoJri9L59}HUHo+8DYN$WFWF*(Z3WSA7i_=}unZ6W99%~ww z{zjVO&My}ff&*Gw=)V;2Sz$+Ry)PgsFr6sd^E1D+C6{^|9RZC;kA3!b8@jf6Pg@i? zigGB$&G3T1avtV;Fo6vj;^E+Ks?1+@%byohor!U?T0$mVE=sS>D>O4Kv;KUNR9(5B zf&eNie#|d(ANDQZ@4KD}8VH{H^NI0=PmBO31Rqko>>Dv_zp;K{?*NKFFIO%%d}nXI zga%RTPF|I0&|ivXn;zNmSrjGEd=Jk7eC>Yj7cv8Fx~`@%>(blhv2WHpKpV9$3v$e# z>Eb|iG2NADGnF39=8c~$Ctd?2SQ>IbFQMxr8hO-ta6?0&{N)P0-uAiF4v6)3)hlJrvP5{m$wmfR`Z7UMIf12OX3-I7B_C2Va0{&UqBYD36Jt#BH--i2Bl2tm`>s}p8=jCLjB=j~4)m|6w1|PehxN1}E1>tahQ#!#~T@x98v!2XKc4E-uK2P*Q@B#;EOOu+nLj-_(e*Vyoz(wUuK({1H9urbH!fZE;v|7-M`sK3PMpfxFBo4+>aG)l zIX`mdzxRP*ELXhFpi}$vU4E!w>M~*OpyxLh1}yL7)l< zb&kH?s5WhWj_-|8P$S!KQlAdo`^7)<_yU+&kkTwt4NhkEeg;oKgezPzZwQwFxqn`t zL`~LY@X3@hAY%H<68-)|_UA6LN>?D5+<7J7`o{mB*48UR&_)Hwz<)!e!V{g6-~Vbz z@ehUl>vzL>6gZL+GA~YIa022k94`-4jL*Xp5CBi*p(~y|Xl(Wy#_LHR9&dTwLIL_x zU5+&)c9Goca4ur5hhZ+32OoUHNY4XoKovcBzKW&&7%JCbiaR*?LaOkn*2;e0;x z%FWr*hZ}gRZpl9$3>dzDkg-O;YbG*zI}xECS$-NH{vGDw7@Era^VXwAQGhxsgb?>l z@`!IiGvd$jDdP3YJZJMxI}lTDFT)HzRsx=8;a!{*+&7m0d%Ae-(U7NQtXZcTSKc)I zBKja_a-+^pSCrLWIy)T^izlZEJ2N!RB!FJsJf!;(0R4YA*V^YrO=lcgd27c^UH$)D zme-!iZVPJ1=?INth8~MS(Z$ckG#FpD)cHPniV}qPwnh9j_M(+NLy_`8)eGqi61O;( z-9$hT8Q2G5VQtS$VyIDz^Z^@A8=sIklU~M1h5Vk9w8k}29YgD^2au4vRfLn3eso8r z9F|J{9d-%pO5-)A+sYC}3S>Zm)C#fcdwM{^b9AhEk^N8`U|+>=wY7r?t4|cTct_?G z!Q@si>&IM1?=OZzqVU->1!@A^J*n_c!&YIxtXqE5f?xqWS8+vWh2C9Je_ClK4ls#; z5ol-zOV>EGo0HhLih}#pEH;_GjZwBH;PHQNI0>OEcQwN^FE=Y6^#q$d{c{Xo&Ve5? zBQ;RZmbXf%_tio^)6DMyJ803D7Lh6<#IAg{Qe-*l9(G(*Vd{i|HgxiA^j~>TI>ISH zwG`8U$rrwDCbs!BtVO~0Rm&-~Gx${htISe~>t>_pB>Q^kAv+X-$}QorC*-RR!wrICD7y(k?nqaa%Jb zI;Gg;rz;*pXepDIm8?;P<6H1;YQP6gvg;d(lPAqmh*g;L$kW?PC7FJ1rt50hU{$2x zQQ-}${NE-BhU!h+A0}s;g4tsR$0tBy=*n|7ayCU!J`D%&CZChv2O3aC zu6ad<=+Vi&%K(TzAq1|05guTW{-@N?@iwv%p5sJ_>nKyUaO;zAaKukM|5;%1oT?E& zVz>yc{@uSKqG%P-Gq!T&JNf{xXi&w`q3DjKD)qTk{ z(8z)=`>ieR`u>m29*f)QZ++0Y$3!oA_0H|^Tx}8bX7uj##|!5?qN=(m{%?Z!G=L>U zNP+!{1kJVQQ&c!GS4Rp4jnC;XUe^rR_B^v;TRAxehRNIE%AehSPcHG)DHQLh0K8hU zbKSBpCq|sq14Jc4rpmC|ej+1Ao+6x%ZnyW%QYy%$^O4C-(y8PCWkQy@PwZ4o((B}U zlf%#{7#KZxD1=~alzv?z>2LR; z=7p4uCyN5M+d%z3PiCjn+fg#hpOzO`ic?J9;ffiNTrFBR9u)q3u%jZx_;7>Iv>n;b z%@3Rn!IHXmd(A>k{Jr32H!9rM z(R!&bIbl&$8|DDV@j%4%8_Uv^EE?94Hh_v=V_Lzh>%LF-XgJv+!o#IKj=8Z9Md zpZ?EP{v{Y)hC*e2@hpMMp8=MM4DdL1==J#`OdtP_Z1Y>4nhM^re!7O&BYI2@Di*f=UK{h2+@9~|=nt7rrV2FXKM>5y zdHGve^{iDoGU1ZHZGysj+ot`Llc(KI@sQ0jhkd8{^bHgkyNDc8{dfVy2*CbliH25* zv_Ud(VKOb~TiQ4gn23cD0|`sSF+wcMvGdIzip>|{`t91)W_*dw*0iLy-hVY6mt8(! z3#@4SN^{|oB>+BY2YJSU{ zyqS{r*}rAd^S^q~mzgDs26$nI!w42=5xp};0$7>bLLbsYFPF_xM+o}|7X+-fylRVN z?EEWyh4w*`Cp#O)Hv37Qs3`lzcayQSE(mEh9 zz_*qF3}m%kuOE$AYfD*gw0G2|$g$8BF4~AjbWpPZQHa ziu;_`n`>*BlD%JM*KS*0=MdYBnU_^>K78A1^)k%+*KlBA+a>DhKYrcAtiP@bX5Czy zOesud68Web{y@t|TK7qfmd=&rK2_G0lh)q}x}r7z_dlEc-ydp-=jr_(VLGs5DI1Ny zRaA4_9L`{|9Z#Rs6iL`yBQ0X@LU|T2AJ8>Ht*NRfUgW;`rR!_Z=7({v1<}s4oRTK2 zxx;bCq{ogvhcVZ`KkZwI2yW@w&sU#qnA8i|*^U>HxDj-2EZY~uRi@KrJ6|wQ0)FoU zEYMxT-~={-2cDNrN$NvK`hYM3QX z?kviy3nB+(dv(72LS&Cf!QL4)%*>VshOf0(Qh53m^mwTVu|}%IVDw5wIs1kDXGc?n zxVpSiBM>pv!@hD67hZ}1n6rlfG((%t*vQj_4B0~nJElNUg-x&9e1b#%x;;p`3EDp9 zjj93W2y~nd?urDj11b1>mWqHM&`UBUYTWe!;Ff#p6DhhRC zuTwU2nwNWtOMrZ|;S_na-g6W%hH)XwrQapNisi01H)WM`p-~%~y%2xbulf#pMB=on zEalxV@dqeuVA>v&=)bUCnHA@@`y;lDN_}1v^INlsuEb~d-|HVNDF_@ZDe#K7>B1oGS6d@|vxEl29 z?o|66*{`V{cbV^0F8RfzA7-D6(YTFgnXk%${AlWCJ2gJMq=4J^X<{rrm}%P(gfDLE zibZBPgngOr~#`7T|o)<_eEfp;w=h)83bd7*2obnlNYNzDV!ORYs5G~Ysx%t z_HKSJY-ahtsw`aNYi&6?K+-110DRLRRe!GU5q}jI$cMLR>@3f+?93XqMvVQa0BX?v zV)y!J!O5HoJk{pQyemXl7$aqRs!R=b?oGKM74rMD_ZacP`gk?wpXriKP1eT8koqqu|MJijjpgTC;`Fk!E>rk-7@O=hr)7|78CX4$&1MXnKnIY6(U z!I`%b1;p$>oz4Yg`IF2*K5=ao+KS*~F9M#V!4fAb`#E*a=C-lMlUguyi*TRU{+>qZ zDTw31?Q}DQ63@awMx!7u;2W>}Ns3}HJ&urms7b_1P4c=O}Mut z%7MR<3+&{w$e)4PYAWr{@gO*5-=rtT;l^DEaGDJs@Yz4+0eTq!x&5Tq8us@2E==Gg z+WpXV|h)WScH!f*tSL78vziGnHCV*~ul4W2H5`q~KgfLdO`msrDofX|1D0}XX4&>4 zAUd zhHoz;+e!P<$hTf!Nx!~>Hy1*zK*1RckW2dXrwhCFg!=48AO^mfE=1TJ4Aw@zD>9s! zuDghT1io{o`bzF}Ry?zbX8ysJlsI88ET!owB&ZsH2$$wDADRJtBXkk8_10Fg-*?P+ z;R3W@Ny~gJrYq?a&skQuHfWP~+{N+%42u3A4G^B9dM){D1pLpJ3m%0hvkl#rgXW78 zcDBQ?JMQ8&%EMz*d^8vlG=7@){OeT$;Yc)gx1qKE8yVK*sLa}{B^j3aK!>w?ck9Wl z{MW-xwPU`gxPMLJbc*{kjs{=9OUfV}q6XA)A_%77g@#_z3nd`&(CB2&4W#HLC>2X~ zq)r0<2TjNZ^>!UL7khNaM*b(?#gQslMdT)Eb-iBH7hV zG#leH#R($P{b-thrz-Z{L+XzkXBxRdw7gYR^?fQ3okdQTp z*G&Y3{+2UMuDh2e>)dCCg_UAD;;ak!8Y44CJ6r^~X1w^VOOm;V)E&ea)vj8Qo6Dov zQFD05CEtY{;AlMhFXB%@#HYsi9l9>51)gmM2FItcz~#3FSw5)Y;DCk#K0AU0u7zs= z?{nPIZBXZ&Z*XwMv_{dJE_VXrN_{gO784=f_Y=;0-sNlO+oeWT0)E^O`qh`pV7~>Y;W;NTs?aUyO<}i?71A8nFYTM zKip*m$|q+5ZP%O=>gfCb?CN>)O;0*WL)^C(@V1-^!RkiDKVS>E8~ zUF>uGo#D|-1m6N>7>jZIZQlN<^VyLMf)RDu`V;0QTaz}y`I()RxyCiLC`LlIcr;$& z1|oQ71aP&DtDWbr3ZrqiNWGyK%opxW0;r3;Q~x|a95S?21SP&f!xynN%7P;6gc0oJ z?w={m$n1hWp-6G5PC)T}%_C0_0o9+io9bZZ-V_>ylVqRHOAI`EdL)Aa9VUtKm70Pu z>@ks*JNL0FDJqE3fSFGME-`S!?lbsf> zvXbFmi9!jWX9`vohTaq;6^Rd|PLl(rF18yX_hxxgA1N_mi(DkZ*SPDK<9toUt9ad) zvX_X9Zqt6&^P40DH~9e(GfY>G>t0g^hOiRg=E}dB-_N-qGq?}C8dk{+L)GVKniM8V zK9~!j-PTY{gzv7W1I>;19r*deZg@HEenw+X2*B?;arX$(o1ZB3FI{5& zK3fd{A8DQ5MlsBOSox;{Cbq_bp{u%1586+f^ zfG7M6+k}wZXyw56eUR%<4X!V_Hav58`=#^MbXpuNecGXGUK3teeZgdI9{<;{nu+}6#?8jUJC6o+i?s{_d6xG#E*E^Bh~mt@uZt2iN__`$0Gl4rt5!7at+4>wW1$y>OP;dY1ZXf45 z+L*5|_Afqn7g{=JU*@^bga!%3PdrPv5!}__P*ozpLBpWx9YhV>pBJ42V-E&TR6zc@ zd(n?HlVt&*-AQlmA;zBh1F>M-5d6dc4gsvSGO!VgXxki;n1HJ62*t|LpP+=FlKq4i zc-r2wGW^F1{^}GGU{&qRcLT`*xFb+GwYTXButx)tFuQG=3B>(O%*~_v@Bf7o0Q~MG zD9J;|vXbVye_IoT@&xT5$I=0SGf)f(g%V!fgBF^ZX%sGq6hu4G-gp`GoAi4v3Rg(e z`*|`cT;=CSDJacJ`aFDixko^?WONzewO|?h>0#Y`o#g!I5NNBjypdjRkg9lrX_mpi z4?lc)`tHr&c-pT^bck!_(xn@d=ek7>th#^LeCXfPmrHhK11rmaXG@!VP#{`H)3t9y zB}4K1L$AY*w+Nec_j|ABR2L^#!?^iUwZ(}Hc&$|@dWrEOYPvZjaa}=z$RKHIYSFNF z{p?1_?Xj|%+GO1=L8L025vCD7oRww^x&-tHH~g}x8}Czy1wkGuT0O+buGr9*8hAEG zONREJ9x&5*xc2|BnR=DbVNW9?yb%ta_cITdVnw{6A?R`#a&i^CA)E5U{$nZlySENY z$fYsk@F`80FRqU|!rB)4*82%#azbtwIDy}{DLp)e8O4Bg!s!)AdnwV+B(<;NAT zsvr_TRXi^Y*xAU~-|tIn)b!dKSH0C$eyF%hl78*)eEu-sL;3nqNb&6i!*i;GrH|p^ zIuWPE08mJ+0pAgc+$Tr8H*=cV!{exk@sd}qE@;j4TrNzrTQXssJN`<6b55?=Nr%@Rc!=6@N>JevUA-`kU|Y0EGp0%?$Fc8s6g{m>A~XQ~u&Y;cPg~PX7Q` zX8K-Y+-_Y^ZVR(Ht-#ado72Jnrp6z0qqNzWEdTOIeC{Jon$#t|^(Q}8+UC0n3g{64^pKFskd2Dr28*rTPW z57n8+rk<2w@(IcQOh-7kz^E3(6N zi~;~R_^UING0rv?J`)!P3Ne}SW1IwSL0%?>_qd1|;t@>!@-Xk$v%B=t0M;&FA|9n!{})MD6t*~eQMHHAd?!mQ*BV!>Rz9EVk!Ao(*T+IJ6~Vl zAH+MWtSraC#rn)i_Tl*un>R#XLlx+Nwy*Ar7_hh0#?O#8`?`6mH$}ZQ9k`&_cL|Ms zmeAYt$N%7&Qq!3ku!{f0M}$8FxJ0pKCht9Imy ze&2(G{c0F4LTi0K8`gywtV*w+rfJg_(?xEoKV%vMV&8hsBtY5`1*YuM3S9WcTI^Ka zt~NpNcYTp4zc*b0)2)2s2!f}dy%Gnl*42s9dr8(6PLqn8oG;g6C9>>BuM~&T4eT(=*sTo zBO;yo7AQ05Vo7`nHqPV#`b-uzbE0{ciUxGE3Aw7pW`u1d^-`9U%L{<{@1~J*g_}7h z{jIap$6BK>PBMcw5SXi*3G&RE7ev*bRieBWe_plXgN!;7)aX%B=>25 zyt@CGbmW}4JRg1HuiwLO^{U!V<@C*eBb&l!BbQMzojO4~0Rab%0MDlO3z9HP7O&6l z-j9VrE@+^%quhG%jY&&OW?ppy=X_q-^5Zpphe^%B`DnDOsexJ6%tITyCwW!BUnNFr zPQ8_vfu5nZO9=RW`jqS+H~2ju-VK|V8^S?LUv<*z^daBEtZMaR{wa^D(lhCK^}3OA z)U@q~UX}rejtoRHmME^SDDAt+KXyi>S~>xa5RkOfJAU-6+_Is$ zHc5&j5V0@ro(yCL&^K(qE=`E(U~|4igm((#`nbQH$6<*fF|E9R!~=J~`kbMC^p6L@ zy?5|N>HCzw|{f`A?%2uVXtn5w86`lk914! z1=bMav&hs}4j2G`$iH%pC$MuiR{NO>09_H)wGA)p2h2e8ouVpn+@&4%p)v;|?6dP* z+aQia5GMG%4>=J9_MQXHr6vF1FGj~9!l+OvHk$F#%q2J?Fgdif3O%!w80;!FV?cm& zHYc3XCp?7a3|R(Yf^9hV7qNjXAlHxQ%uG-7EwLPhm^JBk)vf1i571lpCPO9Hf2{6_ z%@YCFW$ej13a8OD-oL*&eUVijybg|x6%4!Qc=7+O|gbZ z9wMf9wo^|HaAWRz(Wm?FsD%;O%(nPuaXx$!zu^-m)A3H376$>SqpQ~;!b5Vy*^p6& zBjVHokaU8Ge}8}F{{38wEc3^nd)M^Ce_hpk>pM3IKX0w?);X}``h776g-tE(E@Xg9 zl|3%las1wm1;78<037KCEW912;sYAb_(XPNxxQa8oQ;!*MAr?mJ1210xhJz8{G9-A z+eWoh3*u5hANml!LRKi4D7R!k+UB6}?>x!uO|)aMm)qUOy8y2*8lPy1fTlGH?O4>e zDTta?u0lU&S#Rf$8RH;m%v`|_~^7MO!3vk_#*c^uk@GAt=@ZBi>aM0gSO1{6}!Y`E>Shff9S zs5S*K4O(7B0uihV6P5_)D%f@jh5H6DX<&KJ8ekRV!1>2w-HUY#GbzG2a`54ih2)|E z;UOBphU8fO6I@JNPYie;NgWl*7g&;a1R)r|Z|CiaGK~|9YgGy0FY409*}z7iTe+mw zS7H8zr#cA(4V7PU@_1cfeueAC<-k}r-L_Zx z53B#|>Y=o<#lM&QyCZL(Pl7V+lhaJ`w#iZjcO_hNez|n%lEMI$uj#-^Dz66;L{U z$$QHGy^l=8mHPRQen^7PD& z){T$0(r@f$PL2cl<_*F1yqAH}EgwfCKjxruml+>zaK>P8RBfpf!Yd8cZqz9A+c6U+ zb^YyM4AboEqwPnZ^iR%}L^|!?%3JCe{q03r=_LEnO}c}%V(y;r=eTXU&hDngwbQS; zg*zL}b?D7-!8({F@NdB61goV2sU@U1&rGk5Zti}R=^NhPw0Q8G(K5ZCS)x2`)QK&>xukUz|#bq>jWE2X@M&Q)XvWBc2W zHPw*pK|9)lSy!j58*k5ni%AjZr+W<*#JW4Gh(J>^uy;^|mHm3P{=s?MhKo)7RQR%x z=pOGznZ(+t{Q^9O=kR)$9%UKL9{+rgh+lJykdG2r(dUG%k?X>3^ z?Qqh(GE#eDuvf%89z|OL6YSL{aS`PQ*gZ zoZ0VM3)T*#2muzib#A4)6`PpQ?EQIuHc4p@nT?BBf;?Ujf>HAMG6YJ>!~k>Ho#iRR zt!CSF6o&iHHNBICROMNr7^b!QJBkY34P6F5?D&GFykWqHZGCuVf#J>h&;CV$?{09w zJSA1LDgRs7t`!Xno#HHrOz^5RidQ`>?tH>1vn9B(fFk20-zLzvZ4i=ebS&l!g{Z-q zVrc$9sYq4oD&t8?%hSu<>SoZp&Q1mbzZCn0WL&;i$Oo3*G1k}~Otim{E`6C-w?Z79 zuj|@I2Ku10`SiW_gTS&Le}_$CicF!Sqi>^T#Ig24ca7AvNMJ7ay=O8Ce=q5290}eP zZ-FxU??PpLc0t?#vs*c;g7tbmMupqF2}%+-Xa#=`vC3O7?am;w7JJq<7Rd0Apa~zI z&Mtz!?+pUnU=?ot7h-dtHhefu{blYl=HkuC-n(y)iF9Oy1UKja)<*nRWDDinLtM}v z`M|Dm(4x_X$n)}tRTN%cDqth}$ZVhPX3iSeDBFvzQ^fd}s^gd$tTjT8&T&i{JO&tRo*CqX} z)o(mQw@z{MoP}=$^1=NV24bWkomsR%NYe5jh2KMIXDif&ZfG7Qt{^F-O>O2x<2VCu z4acUN^((Rh-j*5vN7TBOF)TbhI&R|1o2rvdIRk`YLv`AT3+C&FLvpwH5+b+7+JKes z7go^cE?8v8Mz7(i%l?+)gP-wdP1Xk{CNvCS3+qR%AW9dp(ea(ABKoLNq;r%PCLd{E z>72fq!UHqLF^6p{`ai`9`-ZQXyo&rhJP||Z>-odxyuhu%C)hpz)fbFG-{1EUfQfda zKKqBwBthd4aM3yP|3hxk$YJQR{Bi6DX_Qk~!?j=n!689_b>GlHjS%1rlV6k-DX2db zPZ{ud_wDOf5*ABB+>r9u>E8rN$5ufkBsh1y1NWsmiw!$|;4K|;b{CCv0${Dkxxad} zP`kW1ukI2d7BuIIF|XBjEq)PE=f_$Xh}~!21=vS~!GZjABm~%c9jI+gY$75#8e2Rt zy%NP(km7;l7I4u8g(hvBKnqkUZ=fuJm0kFQ*c{?oDfLSvy8O{5TJb9 zEwe~Nzd^U&w-h7OJiq9%dPZi(x-Kl;HO^q$%zhAdoN2RrUy5kqb0w|IaO_ikj z1Cv4}LMY)42H)q2(?7b|z*UR}nT}{Yi6&jsz-I?ektgXxLc{CXLaqa3uEY083uvi( z8PepDXhw8QgFTTxgt7t#`AYmmL6iQA?pV$fMFPOsH86aeO|1X#bAlbqf2(4gh5&QG zCH8&#FB{xJ8qn%>7NIKWFe(Mu{3zJSRtQUe0+pW#Lp1GTG8g>VOj>rxoki0aY0czh zcG-kn^$43Q>~0!;eJyJ8VR1w?+xE7yX~gMAnVCebs&TkCh5}#gl;BuXK@1@lFF5xf zigJs|GgThYKV>S)X4pF$6X&!o~hupq^ z%Dj!RJ9+x?=yLNXg$4^R+jS3+dlWy+vaRW-0(CyVysPw6)VPlqs?cEL=lORPU)cC* ztR4h#s5nGYpO#z$Go+aM>W#uD7Tvt}eL=nk5WDp8Ea~UHR3r zOqsQ`ugj<(_p13R>D8jDv0;j+zs$h!rtpWWCnV||(Cgfz{TC9#D)kCL!Ma;BfTJFX z12D@BdlBd8u;Oy(d_vEKvJEINiCIl=maSp|O%?Wh*e3gLg&|>|}yK$j{68w~tz@Um`1(Hu{yYz!B+X9xl85E3DxYDT1rf=gw(21a&gcsX#G~nKXCwG!;K}sRVL={BjYvwjc1x76q~A8T(b1Ya#j4 z4LGV&j933sBEULPB;!U;0sd>JYAo};I@{`eND7%2XS*ynC<`9%%$k_ATV6(G$jBq} z?H?(CJdM2&Sc>jyqZT8}!@o$}38u~cjEW^o`N2?C+>fDn*OvY4LJMj?FqsZN@_0Ot z_W^=cRV5wf-baJoWU7li?O&dvx%WVBz|aoXKD&~;yjE?_r1W5j`y^x>U}D2As$b_F zm~|BediRX;-6}b7NhxoSuuJ8yQB_O9^Ma;gK^XmElp|S6e@nCAr=6}_!#0M(rQaU{ z{A>F+gQx=^6kgT-m;z_amK|OQu>Qn@l5an~?uZzw)6!MpJf;D-@iJap7LVP_;Qp(z zXt@u}34iETNdIufbA?wTA#NcK#z3 z*nqi!cuuq5L?Kedj+JOD{39t}3du<)%cWf0+IP!LUjh_!1%!KYvCSvKKu!S_+2S{& zXeX;dq{7G$M~hEZX4q)CR-68dc`PaqNIQE{^l={u+Pq`Wpfl{CEFkt$Bmx`F_Z-*q zWyWN{hFiiW8_}spGAq@{&#BAD`QuN9tz)4+p8pdU)Zg+K<7vU?dba^Ucw{~3jXRDuBCh%7A zdK?6eah*^rzMIdGk=ZeEuF52OKRJo?lpg!6QlUMkO}gvjPPvGvQ`##Qqln$nX>c6HQy3 z)k>I$y@L3{xQMIrB61&JRBc?#KcNispU8g{F!&q-jn(o?Z5L7b*Q>~B$z%jEg3N46 z!b8bzqY|pM#O=`kF)j8mfL$4~5Nlyo3QNA0-*ecCHqhGY2MA)rNyc z$u{R4_ALy)U*-15N%46TkNPDHD0Z(1P=UgJ@s|ur10QbQX2Ghwx|JT>%McqfyEa{W zI+r{0!$c> zy+>tmFgUtI=22g{@wT&H{11rL&^jvPFtP|1&4O+b$pvUapd5Um(WjDjo?+;eMmhwPZV-{7Lt0v-L8MDM21Hsy36X9T z3F&5}L0VEkKsp2@q~V_5``+jN%RJ1SIp@sG-ru#>XFaKSJ+S*eWOFfYOJxlE4!S-w zQquhrRw61K&7v{>9s-0F$U&Vyn2IG2W~aW=0^!U=0+-u~oZiJ#?zGsoMBc$Btv$K5 z5T=##A>^iY;cZu3T_8{5>V||tlXov1h`|b#uKbH*c|==Ugk0NW$bP2JJ?NWM%-vIT zdsFh=0#uF{u?CKo`KfW21XN8Csnjj~gpDSP$iW{aX?__Y23>FN;J>q2{F-()9x=6t zK$&$kl-^B0T3IVJSbxK~&5A>&GIO_AkggTUF-w;rtAPHZneXA^_L zz+&YXf?4YOT{!hKsr;MyAl2^A&_>ht{dZ!XeE z*cN2|H(ZFSq-XYhfoWkmPY_zhrbxK*iK*LB zPy6JGl{p7mCm&2n+-ko){0-q?mljl?gmf?DLYHztKQk3Z{jdC9 z7d=JT3wnBUY0-})A%8f!9nHW2p|+U+6EE4bAI3uAqR+hSA-SK+z+pqDN)~d z)CU*L`Z3B+OD1 zm5X+yelnzp+;ZkafN}Eu_u)Lt;tS^_U;+KMf0aiw zjUFO*Bj$s$!fL8REh?m0)XLatjrIRb1bRltV+;jZtu%#h-9p2CM|Q$>N5J$1&vd~V zAU(P3hJxiHnGSRtAw#*93+^o5Z^=`r{OeAY(1u>QkG^J5fu@THv&2Zcw`(3pQf1Ul*>JMTKRFZCz!r!8YLX*bP8qn=(( z8f~AcJTJY5|8v;7{gwO7TM1EVFW3GXmi0yDp6y}=%RnAn(gNFAVqiu5SJ9s9p_qAQ zgQ9e@mP4xIqLb@Nnt=o#^R|;n2}%C+kX7ts^NgxFhs~mw=?hyL&VfY>4C|O!E+<~V z@D6aFmyz3b;}#%lGnfnB;ZA+0GkS2!E8yos<-3l;T{|2=?U)k_FU;@Vy^7VTI(kT1}z}UI*i0cnh-=;W!aGNdPTBPh#An~ zqx@%{%jsI)r!O8G>Xh1vkLY&-kxBr)I~q*FM3+n;z^9%ll`nOXQ*hT}^1SoqJ>VPx zl^JB~cH;BcS2M339`e@&X-b*bkM9Yb2l0cP_BjV-`)=Mf(iJh-E>*W@<7FTi<#}tc zbebivqXHT3aC4|mIt3S-FpeQ{c0+w0asfC)?4{?7W^`@Oz-U91_<$tEC;laLgLEEh z6q^_e9DDl{zPq>I#{c5GLBA*Qq9pDKFNiI?XKM^l2m!E!go|r*Q~l-7%Db%(2^qtO z@>y~}mx^4l0ELr3 z<}PaN&8$3z&~LpFK8u;Tw}3H8TwBs7&sjwLU}u@`ztk zu!Cc{_zo>MQs@+?+gFOS$9$u-_g;1OO7ttQ_OpkDMb-nhU-=Rg0LvaHJ_?CyJ%V{k zBw)LLzLA4^pd-in0F%2Y;5Ylb0|QNXIxP@u=rG}?;FkjR>tPIZ>mmj!-Aa2G=lL%6 z>rA!tDswl1-^J}E23&D0=YG2QUx!7_Nr`=lVDp(UfODXF9nnGn>c|Z2OPaL+>g#YX zom&X^2LqxpO}1b-TJv6$)OKq2SI02!$PL&M!#^mnsTwHpO<6<|l-&Vrxb})7P(%V# zJ5jm>8zF9dOXlp#4e5^3*kHKQG1I1r^~_A@ zERqbszBqz~4%C$du0n-BW%4JS^cv&mV6IQI9-+seohxI*LrrF&Tm7gB6DtZ1Z_&J+ zgJNlbKS#+~YK1JDBeQ=1K8u0+3hiOM^5qk#HGo91^+8?$f5&&ya}U?)sRQs%Wl7Y! z>%}7oPXTl)BL!qB*E(V5Ed4S8cVRgngP=GJyv6L+2CQmo7S^Z3mJ)2^>Fsi7IRIJ= z&NO8bJREVxoSW6nzO3O2KbUZK3OdqDtE;+i)u37{pd)M`y!Cdx$}0NV*`JsuNv zXniygg+ST&(11NLlBL3niZ3T}+f#7#PbW7ZXLF?|PFC(*^z$v?bWYz9A9or z_oZrDPlHgrInOen>g?en%@15!nKT8J{PTFI2K%z-VsP~9w4g8btqt}hC7D-iA8uap z0;V{?WMou?zY_HNe3SM!_-uJ}l&UxS`W|MDnSI4u>s5*OKuaCs;sB-iTUBamV@gBl zq_+`BUYmz}o(&2^EvSMn>J~8vNa=!?g)516Yo5!tX7`bSmUtsiZY{?kGAS}qD?=$p z5S!iX+yBEU&9um0I~|6aPD=40r|vN(n_%p`O@mI-6wDkK7FU0J@5g~Iuq$OZOTJ2a z_&m5!H@x|63(a7|hTm*UG-K*Tq!I>`Cg}5)fm30j^2yTH+N)sz7Y?l9@{<8?A#9GF#xAzOo4Y{CH5(I0S=5P`}WE879GI(w>L9M6y}8hub>ij(;N2{MM}{5{GCP5 zdwCzwvXX0t2MnA4K-6OM_p21_sP~e2$bXYS>v8p*xD9;QU`P@w=RoBjo5j83`u9%| zu5jdD3V4xk+39x&s$;q&}1H5vIf)SvO6pdLtUCIs;*rg7q6v3ZR2a{WG{ikt17BmF` zWNJoY3D>XY^A*F8-zbJ%vdqlQf=60SZDXv|g2Ld-BdHkRw;^T+o~tv83oaE4&{$hrU>b4w;(1`6Sqocg=3lVFnYm{EG;674kMOtzXs|14;4% zFzo~Za;CaA=Fy~S4DcKuhiiG)hR`jsZgC;aPM91f8$UU8`32p3;QV zWPdLfPnp^b_626v&`=AivN{Qth7iyT7uhX$;I`DbQ2T=G*Zkw(FgJkww4X~qhta!h znGwnR>d4IyAE+0J!D0Zu8cqc^iq#*caeVvZ)M~p=Y2<*XaeP_+zM|+fw{zQn?JJn5 zFSnOa@_lzaxFK|VTtz};4xmDGXATn?R3qPDhu_e6L{XL;ri}D8D6l*>rPQ<^@yMD{ z&F{pAp}vv=aS=GGEvN6~sAM)P7xiekSXZqxz)1|kSOVne?FtU`#1p~4>O;>@>xT*) zS#UOK0mvh7B>>l2vZy-XlKjpK-@OZtN;JYxXmIrMNr`r4u0MB7y`1wu#d!$(P zKBL;Izal+!&!w(IkHF0xvU6@D?m#|=vfHZDJTshvNIwx^Zgx62qP91#eLH+7LM1+i z2q#%0Nl<;sSlGRJ&L{ONR|N)A5TSf;z_O0-R(pa%FXpNSB0QHMO+NBLmJd|7ss3&J zJpd{VZlTUYGHBJW^iEC&3eq_tHc~xHw8X+5GKB;i4qRdV+$<{!FRa9Ch{In7JCO2G zAX<#*JY4jOT0Pm}XcAS2UC0&*^I-w#-Sb}rb3>P{=E-gTDUEru;Gx_y$yWt0vEnms z8WCxXr(}SC;%t2uK!w&fz$zuY0VeZ_6} z*Xh!vbHr$J#RamI4j!AH6K653 z7OUI)!zrge*1F|L5HhI?Jpr!1H}Z*{)em^2n!bk;ZFVT(JQ&8wbt=x$(95%Ht8*0v z^Xqqa+t#F`_u@uHxBU0MWCiuNUgCl&-(ODgTLy z1^TMxgB;=uH^m@+C2H)}1Bax3NBRt3WZLlqVVG&D;#K21C*kcV?~`_&g#;S0R|coY zpTeea@-Dd7gX(OGSTZNWK7JhHGuU?Wj(vTPC*gZCWZfBxySqEQCT-uUVDI1U+;(W) z#0*=oE%KAe*C<7$dca1{AzNQ|X|d)?iskVwIRsgEKXY%`h&M4SvvB=vd1n9iw^0An zi|%v;P_C+73DV`ppCi=M8+r9PX|47to%JeFuiW&5ClOGr z%@3DCEGIZLBJHqwo&`HbD2`RbMyoHmN^Y{1z)(>^s==qw17TEk|9HPa%J*0JAhOv< zq`4m_|0wJvG3|${%4qePk12CLRbFAuhx+mtl*EOdM7j?#fQ1VoQ(q7>E<^YL^-5ne z#am(v&LmjQG{r{p$kS`-M38CzhPxp(^h%h);NJO*1Q?TJIU&W#Mzy{1XrHjcBcf

x*M+f~HOA=4&)*rOtYrkEv;YdoS%=mMn$6<3cmUu*z7vgpX?5uCA zxop)1Z7(fBjRvnCN~S#&Xz#W@ukE$Fyyy3=KS8OtzH7~1lhZUTRgwe@@9OJ&NSaYfz{-Z#BI-b*M17*{VAZd z7iKDDI`?M;yl!LleIFV*={L+9d1AVadla=ZPtCFl%DpsKCQMHmP7WmYr8cw)wR3ZJ z9N%-Nm-%s@3T_uEx$5}tIb5GpCz2WKQ3fYOsd^(jl-Yn zcdNF3Myhtx3Ezt(tM_5nYVJ>(nJb>5cNk?BG;oYI6$>O!9<%S#=6#QdzLCN}IzBpd zD+#Cn41o~UJ-f)hB*AtDB-!RQF#)CGeIP%u(mOv0=o{x(67I;5@c|SDMLZUYx9c#u zi+`?P(Zv`fte6NIKP(?k%w|-rND+FDIWSKYFH>T_wdfBs|LpG_FiSJ}Is6}zBPI|r zr_g=b2v8~bO7{jNIdpdT%j8;RX4No)2M#_x9IM4x`i@eAyoREOQdyR;zKv%(9*+`% zWQiHWpglPAQ~HLl7$cu?!9lUlw%fDyIs+4&f4E^#xfE5ktB|qLa;+}$gaCnpsv)j2 z6P%g1oGwBtH&4|AIXzgJ0_C4Ijm(i(%z=ZP7hj-q)n*llc-X+QWZ39Kd`$RO50eWL zYiDYi`|j{>KN!k0y2|tZ@x)93bFL1ePq< zWgWc*bTkuHlK23_IS>v)8!jLJFr~C_pR8Lbob4ToPGU#VsGg9CP_*kl$vfwMI+z( zbG}crk`J3}#*}2&A=g;P8FPlCs@lMrb;d!oM;)MuuN#Jzk(eC z5Xy1@2NIRP6grU6^inTB*us{e)MqZ591upi&3Ek7O8($M7N0yYMjiWK#qD{CL*b^# z3XeczvJbFU3l@?Ti-(~rVc-L6tRDuT6w-3A+xQER@b}|UWWDmz)DLJlbXftn#j&Hh zE-~f{b}hFsf;OGl)BEx>BB73$Kv)esSy=BQKpVA*rIaIo?ulo{ z2oH$lz(C^ad(TU8VuwIBhyL>92eQ$PnV8_-J*DXPat2PMhgXZtcB-Pcs&$)k(UyGr4A-X0J7;x$A^PceHsO=8r7i> zD(fN5OA1Ch?D4Og{+6$2_60>AJ??^N#ZGHq$kITeS*p{7-yjHywAdppEdE9q0l}Zs zrl53lF${FMn*PTf_GkLX`OANR-E>pIKll;@B61%S#bZ~LT0yzF{i1vW zyel(3a32|d+j2KRdy)Y4lHzeNMeT3b(J`pj zVxIi8aq1gk+Qpcwx%S+CF$UVnVDa)R0_U_9xE|y&;(~Em@Ei*$24d5FVMU6bSULx_ zoQs2U`gxNs9#u<{n3tHyA}-Z6m6LF9j2!H-ou|{W&HLCWju~S8$>AUOMZSB>tK0!w zj!@a?w!d@|uz2zczpFEhxQ~F)b;K+Mrej&<#4vQyq-pS^=AvZlJ!*Q0mX;6YI_4QpS{YSPm7nU)#i!YL zpvmQPE0SD@1en}_|FYNZ$G3aE%5kFK-{WgHY#L>~@Wuh$$J?1u5Yc*B^F_sm7^90n z3>lUASmv&lgvi)u=5|#C@S@8?04=wJcS(4#fcFHEo<>@zU!whv=ljB-BvFbX+XHj% z&ft4Bpr=f4!nPxy7LD;JtNlQP%IIUoEQb1?UON-`I8RLHg;%k`YY%Q&f-I znmk~NMrT0vv5%#zVX(UB*FuSt!S%BsEZJWejC)2BdDy6oUB=5JrFeaa3fgel0aUe; z?_BrVja&iHRNg93kORodM$R!I$(?LWfxoDk05VJxqPMgvJ`bT^}<8s*Ekb z5vK&Yw`NbkfKaRE?bj=)WBPa3>XRyphguv5>in?LLTY$U6~im_;_DDh@OW<>!4ElA z+-@WH;~=+kl0|gQC=ZtFc`Jm-%S8mr%}**{D2}MpzjeK# z2f3iq=6i|5zro2*ZQfzY_8WWcM=;kPr7c=X-j@cpV^@3HnsWX zZYGrF0T0}vkl8Aqzs6>X{BJtoHC~RZJAbHZm?6Yl0|$g>MjA*rc!D#u-VB2AXa@NZ zjzXOb6AV!TR&)W~rl8$oNrCe!NP21E$Ci%nr3qxgN8=Qc0uq#0=qJ^#L4BCyJdQ6L zDykAqC3dQ`Q|k}Iq3yH6j{~8g|qW!hf&~+rU_|b^mUGkMrh!Gd)Op*vTu#6uPiTfC_S6d}b^o z+Y}$Jg8HlhJM>ViTvJn2SrGa-2sh_#*to<9S#5(QK;p>ipL!deKn4nxErmkedA`53 zb0K>6RWL=ntzX$J{P?lmyWcU6q3)SSwD>4yuW{FIMGVZ%vD#;!Xj2ShR}j9=nw>ot1&{-euJ~5tL!pxyz7GfBUOz1e&z)3}wUM_W z(>t8<8(d|0U&B-&tRdt*F$w^+!>xS=4@FSk8Yo#w z*Ao7Zo){2sJ^=}xAuw>`M`d~Z@n(SlkmRUDe>$-Br_gy~ZIObp2#rQupv5)9#zpn_PPN+SmVw;_lQPoaabkW(}!xbQ(s2CMv(#LKLN=Dfr0ZEFtB%r z|BL{#?o<$hnNHk(QZOp!c(Q+X4|;bnQLcUG>qSjqD{+8MG7q?O4k$1=f*kB=ab~@D z*n5|4Dzf5knmC%{_&&y3)ZqfkhbL_XIaLj^lsfTPU<#HF&@ZstpuEtQ$B7Gsu{oX} zidg>h-$5>=VvJy;0{lX|3EC7O1bOwr6YpP_rWI1NOjCe_S%3$|1b46&L;HfwUh#kG z)Nk1me)|A(i3$pEutfl&WPRAxZ=JD0xVlWk%ZdMYkj@gWw~bIs+-fxi*4aV5Kg_Q0 ztu)K)wnC8e$P5~26n}hF{FoT9i-bpi3h|tO3K8&a3YQ!N=nS!taKL@tOaYO;xiJw$ z`Cetm1&KOrj+G8?jEDjxK)?yTjotoZGIaghy1K=Je4~45NyO!gys=e?*&7@H0eH!0e@nZ!Z|CZ5)M2;|IY#Y1TpW&=TfrmK| zZ^l9Ojk`nY;9#5XPpa6r+aZMqc6kKAk-1-_-R2QK(0=#~FYi*G_}ODBKtxCdm@bKn zeiHHO7wuqN`%?k(I+m*M&zh;MI#vHHyl^p>sDy#jx9}fyj(_%EZc499y}1&W?0|`Y zeou!g(Q zprK@4Xd_@MVXis3w%ETJ5pE*_e?NKu^d%W_CSw{@FR;)l``2A7D6!>|-cgP~$?eS`lXhSntxYLztRp51{S8Arz_LiS}hzBH5ae4`YFCYw5^Q+kY65!&HwJ3|8(g} z>Q`M7G%uc%ff^J?@c4`7da1(!06V%N#cAdh1Z_*hQt12p2-@FJETcaI;8ev3?hZfq zib&_aEGDrVaGkri43Sg6E)Z}oWd3G4_&!5fkFsudOEnRNW3g_rb$0MSAG{B=Fa);l z!P)BLFA7jKi+p@ABp#baSBoSb_~ySjh8f6E-Bvd^PT}gEeoSk>NsLP!m`SE}Nnozd zLX!WJzW=TRdG!PyHBCpf!&-OgoIPYzx;J{fNY*;yTx@K74$ z{b^*q+ELcKO4UYjAb@Wxu-AFePR~2)HZr25D7DYdf2TeQ?~m6(WYI23Jp=eFjoT*E z5#h9%n`jhxx^{Ckw|Oe{+WnV*ip5lKud6_VQ%3IPCoWlkD+2s_y!@tXtwwn)l)9eQ zmfOCTqt!GXp|DN7p~qz^`{nOK5&P?4`fVjNfC%e(RAd_1+rBx+ z2Ms8+OIzOx%|ZFdvY$?sRXM(`Iw%z_o0TlCnBZm`nNT4eyuSU zYN1wb6Wq#yV%le-fEZ8ejl( zG5({?c$dD{zC&zdm219f+Fp{~w20fJ!sH`wkI}DFOIm+gom=N-tUI_k4`uk8_sM5d z!(=(&NCkFlS|uHq#OIIJAR(gPVeiZHzQL2Pb2zAfXKs~q6{w<4!h%0|QTQ(O zYev*;pCHFqnCpc!95~XS1f5xaH4TiI=f`yIe{6?wV14=J*DN#I-o4crtB9=18Fx^5 ztXDp-DQ#Txj(J3lPvFEH>yG1!NH_fTcZ93Xqw<~9DJ7ww^$&xMu5tm2@|p&eTzL*( zq0@nWPBB0|4*oTp&u3m&W|EcR&1j1UMcCzBwvETTeXeKlA3#u@F+Hm2FUe49=BHQ! z>PRNM$SP*3o4HnJOszL6<{}$wKM-wQb9)DpPBL!TKo0I6P2jmJSPIaHG4rmP99)wy z%Fk4PO3?hL(CH}h!O=q8L)^}hyI<$8d`yf&{JY7)b7OWC8Q$vt^N1$(qT;j8RWsVteCcFF7 zSc-|1@B{2iY|dp{Fi~$_&@}$o)b0!EQdT}U4XZ6H2v3&>Mz>=pSiEMRO;wxr*3*2| zEL<%X@llL>hzWXqE{U;h1vN~sPI9)gJAY@eEI2}?NcgW4B`v0)F$Dh(ux(lNXx|*f zFM6%;X^I9EZL9R9!?f1JZxc$*kKa!&@XpVA61roVlh9FHDlChV!mO`*Pu817(w;fE zooqjU#f>jb0QR3_JyPK(bHPH|+0&>67i`u62SQM1G0o+tMuLMpo)uC|vf(xFwYL37 z@>wqU&}$1PJny5BDS0&mpxht#O)$86dD21%a1a-g zK>59-xL_=9tfy0&NDsEwQ0K?HUQpwKWFC>kzESw+J3rnx8df+eny)e+ zS<2A}1{xEEGQ%>>u!5n2irbS$R`?U70IG>f$c)VOH!hlOykLL~jJpHgts{F2*;uuLK8C7+Sjyy0iJcAuX~m(f5HHGkQ8HE`9`^+b5( z-EpGb|H15X%OMM4R%5mPMf126e#gmTaeN&F4PK5U`jI?_?7nWh|B`~%r{E}pNA8HF z6Gq(O3AzV&o9l}vKVvf=`L!2a-UpQsX%0^{K9bJ}^*h;;fiuQTpn|^^not;Q>^l1j zkSsh<=TpJcI;9=SwKCbWnx@QhOyOLKx@mp}RkIe+(7{S>zT=lr%9v2xnl~)mRRe>R zydZ-Y<>~ztroa0ap!=i|M}%Pw_<)G__90c3F&$#1%Z_tBif}~~Bz;s(m8oZVv0(#B z5NEXj{jJX&7ri4b{4QLJt=`(STnsi}Ky}xF!vUl9T9X&h-D5J@5@hLuY*r=4eUIk% zVW|6q%6z<7@2)mKFNM23Q?w8bA61;z(KNybgx4+@=*aIr@PnK7a$Ve<9nmLn2mOyA zE*_3Lyb%FiL++ywk^Wd-7_?18_~Lrw(4tURW|e@Jj@k%lJ!@*G2dL$oMHXIIPViJ` z!Ce@NLLv)1*$ECOK{7n^t1;abl!_=mFo0D;TV1HYV!`fEla{vi?JSpj)(AW3+X*zp z!>Pg~(ISemPB(x-i`H(oi0vE#fKP>n!&0VhUyuWw^e4+IU z`}Bz>NNgCS>8mSvj=(9gd5fDv8axLrws^q@-Sh4{^KP>40sM7jFedMB8fs^2hS^e- zz)tgM&aq_97obzOL;jRFmqD<(J6@~$@1gxI`OljMlb2r!hBaYmOz@O?{Zy-h4CIU^ z&q2_?+|Cpa=CAYR<25MChwbEsl?Iezf?ZLHvpfvFEamQ49YcQ*ILFvkF$XFwRL05e zgrMCB`fS@N@QdUAHl;JW3_PWG*@2n&Qn!AT;VR!Qh+B{&!|i<-o6x&CnK;~a{UYlk z`8+r$N)Xm@SWTU`GLMO|XYAs2l@ENfbK0pSpPi0?ybvc}b4aLNjO+0MarCiD$Api@L*$5Ob zx*TIvK;M%CqK`W8O+v^P{-xKz5<_kIp@*&D=(f|&Ipy*EJ$r4L1?K^I2Hl2UZA2sm z>(@#gTDBGQN*4fb8m?6UB8S1W`p(wESqT3h4?iVK{wL6!sVCyqS&hjHFEyeiw>kGL zNjnNx!-*2NeN{Q)<|ynVO1Mv4H2GmxYj7U2_;?yxc2h~!#?yz(3oMU3W-PeJMhPRi z&ySHw_#KN!NRr>3l2p5k#w5sj(ZIl~Zv~PG0#7+E; zy?)=0F`eLooW=+naF+Ii&wQ7X;SQoiZ`0u^R&y|yRx?w80G~Gd?$j;Yw)6rGTLqIu z_>1QY>*O#bVKxNhqT~Bes10Y!b+b2!P{O-U16izOODmn{EX{Ee7_#$H7{p#CO}J;a z)NRd#kUW^=rdQ_N3C4$=xx2;5fBze5G%5Qy?i7a3wFxE#UQN^Z?qx-YjA=>c!qtBF%x%YV@NiakDR-*4> zQ62=Fx$@YF+CC87x^-;^uHmt@yt#e5XPe6A*aT4Qo&$fE0}#o7*=nCyaX&Vmw( z;YX-xuVivb9m;d$LC(MPHsjl)@bxVugXZY1KD?mrY1%6(dt+jO@Yz5=^lzw}r-#~q z^zq_;{<$`oVbkRL-ap6@vzoriEIzn*^usPpUq0{FM5%6z2C$BuIM>hJc}v5PNuMR{ zes?Q|6843I!2LU@P8anTdwcr`wi@X$S84m%K~dE#Kc>Bv0>F5QmdY<7vg$V-8R;7C zAOG&3Gk8e>thV9?c@_FywTM5aj6OQVZ&jl+X0lr(obj`{doJ#nz+E>i@dr~CwQtTT zTLW$?kN{SpuxRbZIgmMt^EGEY9gJ#@EBPXxX2F4#L8Jr$KzS4V^3O1fFHbvh1N>1t zFF%jeUXP8vvp$xjnjQTktKA?GHm$tCOk8CjFd8Th!>TpBWkKF9{rL9dT3Q7i9wHaQU|>uc25cFTap=|56y_%n}2erglM7u+6vX_Ia9K zaFv@kP&~PQO-EA~H+CIs`#|nLI=UGF*hUDS?eqe)GYw5Kxo+mICS93oGj_EVK^wbV z>{dQ+wZ>l)y?Bp`4^JXS#H1SLm=A+M!^=+uf6RWeke_(ad6hE)2AnCg1zkBZ^&GWlKY)2A?y5*yL zay29~bJm-z^L<{?5Kk8ryto2p0$M@=x%*)A&8vPR|`=OkTCFvhkbQS z4ca>9oGX&8>au5f^DMy9|HOv#?~?1~1K^X=N-5J_BNtIefFn%sla2J4m(W;FFFiUH zm{*CDzj`8(Ltax?=fD6*^!+3u(b4{pAt3K3Dx9oZl}sXPG!&YU{NzE8v_Qd!?!`i$ zpTF3P$jQp66`+P2Opx`fD^Q7M<{=1kZ3|2v98vpNJ6sIEbYYe@u@laPf;cnJDhJM4W)- zcyxjG2-QO(P{J9M^cAHez0r~w=T11eu-YG7lB^kKv&8igGiNm@3qAEsw4!zYk%uw) zla_6o)7-4koT#IBn=Fqmx;&_##VGJw5Dh+(vDy_6R!JNWc9*mgaW=(3+HODfC1O~S zF06i)W@gd;Y%d!|VnugVUHK_ysAsiLuHdi|_vsg$6E_OXl~0_IKPF2Cxka-u@oG^j zd>-W_71rk5WLV34)b42< z6co!>(V;(`_qotHb0Ay9aR1D&2A{NThAZC zz~UBa2Ee1Gc=H)LwzAxY96l3f#ckPztL25nW+l2*u@C{GiGlna_6#xqmRQ=SA5T9uAZr`t8wMWzJ?R zkdBj(E9iM##_U%R*r_8b2qTAm6u?H78^5AK$Pyx64K4_2e~~c}3M1?|ARxYbfNSsv z3HbY7-(T;n3i%;GOlBNS!^`7j*x12gh_~8SSo$epEmMaD`Bsx@OjyOR>h)%4)LAc!`0W=MhI?Wsl#t34-AedDZ2kU zipqvIwnR--93@lbk}td4w%grbZ%p?>TrF-Rgo0BLxw*=kgS8ZmjmoN^d{I@a>HgrbW^d;1MYtt@iazn5 zpO_yi_u=4k{01C2*ZcL}*W2*ciGU-s;E0weTevwxpK0E<+!s>V=wB)wU@d5=M>W)$LUU06H2W&ItU5Vm5JM*7-UfN6I6TE;UE2SU5wbIH%fImjc? z4wLv~9R6zt)mc%oI2+cUcl8;C`TFd0WP{}k-TV?c#c`0JYHr`HRA!e7vDwbzQGJ+Ef`UBc|lp6Z2W31O_Lf)BG_-x7p5c4px}(;jQc z$w(rL3L2RXN`;8o;Z6`&lSV*wle+sCK5E94y8?!)=x$AV56o>K%2ET7n~K&gSu*Q_ zqGsxRX|)om)+`cr=@qres^a6Ucv`u9a#VL@M~SNyi}uS?PQ+0&sgjOSj*=hO0OkiD zVQAefoYVvGfr`hGZN~{8koYR!^PgHlsy1kDPAr{^5BCAI7r@y)JNgw62%xr zqOh;@0L~HFo;`>0)n?wgFBa~3c| z!F&gr_Aucm$nF>anRu|^uhHrMvilk;sxza!!s!3^66;4`%F$zsgcrE{1ACAfQ#*4@ z=U0lkgjtfgKe7@omDPOVNBxAXyBU6eHmIKg@;r?A!1XjDa~V zs2s-qU5cPim0f{Iam$@=pz6n4HPfo z7%t(@`Yx1_F(!wj=JL!1FEE(KGdo(+$IGzLoG!5@>3AW0-KX5D)WUcgZSN2awCc2^E+T6O5JW1t)MeS3*L zl)gzNB2iYUuuoz=0nDFDu!$s_O!`;|H2Ia8L)|75l8#N9X+gpi0=@=)_MKRxZSIrc z_>rctz#`6F7nhsL##5v6hnFkVbJ3e#MY+_p2vN0$w1XPx)iPd5kE{- z`^KnTbWqXc)iGVIGo=voSJ@H21zV=a1dsBa5L4=a+R}Oo@;5#}43HhaY0^p62akS! z>w+y0$x{NE%IM|a668Sq<+P;85aKh;{pu@PpS<#{ni(b*VyRu5_{xwN#UPa!kx*PI zv%{r!*Oig^nNFIn9(B6P404j)lL023?lnK-v^5ea({QdjP$}&!+(X|DL700gf`4Kp(@Jh#yxX{QO z4%F!PWhU&mY54qH!jgn@|HH23z&2a8e-fG0l=KEJjCw-xCsGOK$TVUHjBA_`D_YV} z{!bVO%=eT{)P3~cJWs}B^$i2fkIxw}XyM?m)cdewv5_M_ zaTs%D=eijiFl6#e6D<+|{pqPNb7Tg7yz28GukP#`J-#AUw;WZb45H(q|DKS_Sz&Hx!NK^Ptlo~nAX zEGsD5LXw)0CMAiu#>dJTDfb2vfk*uTBGG^!M^5Ii&JQV8TZN4>xu*!vFKT%9Y3i2L z`~HUaO-x-MMOsmpL5Mpgy(rWv0i)9Aine(&n;B&Z3sQw?Lrr{VxS^k&v1?NmMbik= z8#ocE?r(Dx(e)-9giYCa^&GZD2ud>W;N_8b3*Idie#)SAgTz=|-4AfrO9_|{A3J6t zqSE%hXe-~Bzf0WMfYUm@W>&XZM4&}IH>11LGv?(tLKS?C7tXImitx=a88H70HGFj9 z_qu2{6?>P_HA(FkQ~K)U>YcEmL+mTLERpJbj-WF&G2gy!CRXoF1D)F8gx}OFU#>2o zvb`}L`Li%ayTVT|U(MiwDhB2KtZieC=D^Jn8VvwgsHp+Ue$zvK;-Y5ByMmqlWkD?Q zd{2(J#ERvXbxs)36HA+QV}l#o=;O}mv-3p_X~t<lYk9b2GAjP75E8ZL&Deau@hYm)VF_uJTtH zgmH+y8#qZ>(Y;N##{fOoxp_HvGv?VR9>014m=c7tMpv`6df!s`NZuo+bhE$drryFS z-cQKL>J3-P?&pL$)&;7f;o=EILlI$45wAb$(BepWXw|GFO9t~($ud?5oc|TB|AzRZE$$%6E6bw{d;1clPD}Lt( zA4HdC@x*jSz94S3eb@#8iWcm3O`ha#N4@FM;hJ5Uc&YFp@ww4EcPi=oBK$ceUxl>M`GC9Vom7gx6vB@4a_oD=oT`fQ=4qozl9HD|M?U+4lW3@H?1@AJLs zJ`cUZY0i$hZB3spE(zuCjw7YoDjJ|ZIhII?mHiJ%R~-<=*G1p%vUE!--GY>)BCtw{ zw19L9f+&rk8E(iq|{&)@|+B6Fkm@ZvtJ=m#UfH7>1k8m`N2HwTDFsZumGW`J087 z2WI^2WHvscp`}B{wV&~t%C>`~>Y#^z6((E(uCi!BI-J4ClcaQF_T7Up^)8QelgbDt zhGnCC9WQ;?U4gqE9zN7xV)kBzHAQ(+$?*2EJv02%azt+Pr))Q}>VoADaTbL8n&bP3 zUZT8y z?5}lVDha9NTl1pG8NWNJevaq4l9_38v{3 z`f+oerUCGnk-+6Gar*~BKMKx|@7xJFk1=%{59Nrskz zNHq1O;iuOYV}1+<B@oD)n11FF**KzHL%K^kVs{o6apMD@&rDWFiB?cg=Nr zqQ&B2{|fKSE~Oh*$t7&Ld9GSs42ujU+TU*_4qdlAxP`g0EY;%`r!buVAh+k~>MhTh z&6C>sn**(ecB>1LtvDz7X8gni{&ov|Ow6aZI+X5W)>H#!YNqI?pEo{HFtUExuJLZ?#E)#3a%fG(OL0>GE@gmjU z2FL^p}|^yo$Fa=!?lNUNMxw(bDo!sn#++&1rG#nX+_O3EYT2c2t-dFT)HSXw+Q(p z&0<;zwfCM{v}dRm`b%{vY!D}YSJwH$;lvE)y}J#h@74hAPudRMzh6g*s|7vGW8|g& zE%>wjqwMF6TCD;5_Z^Vx;1{z-)9>z^-2v6ore(%&G!<^BM(sQ{W|77C7!14aH0!(H zTsk^TS=*sNIYdEY?*e|5Uu{plFa7l|5@W4V4i_!@W0#}&JS8gJm;v*%<;QNz)!J~o zAxB)Odr=+pR_&Ju*<6e5Om?qlM6->Z!^obEi@Wzr@E636OD}0hkD+1J;X&K8mqEtw z5z{N*Yw>*-2Mqcj6M975WI;MmcW8r6L4&={Xeze3L1OF2mS0o2XQfC@t}IWN#?UL> zjgRxqrx&J&YnH9r5gdR?8D)Mv9(iSao79K$ z>www*z)WZ}XR5_my4b%>cUKTtBEWP>R3VD}%Oiw`lcxz;#B(!7wNXP<2yF>j`RH5L znuItn6=sh#vB3Oo8?E;wFd&~#3XH>o&KvI(9p=ayuo@ccm3KNi!gfIcJOTp0d5WL3 z_}q)7_ZmPrrB}v`OQ*O00xpPYB)D~^I@~o{qi0db$BnffdcTwlL@uc$QWpzm>x=2- z2#Bv{qom7w7Dg)*30Ka=*wc*(8%CE?FMi(n3Mz$AJUPjv2Zx?V4M&2o} zN+Y+@l&5~EEL|(&nFXeiZ~@kLrINVgzF$;ww)G-i2O;c>tLYMXsr+s8zC!1ZVAVfX z!QulAqg3ZfX^+-^3vegGJ{|DvFg^UVH_z|*&ADyfHq{R%z~mQ6dy*=em_iej&CI`s z_7xiRYD%JlPZzylr zQe5|^9I(mB@Njnf1{1;motD;vW5s9bdlT&Uou??kQ_TegTV6c739(unLc~5N>LCJ` zMR$2n2bR2cLEtbX1HuSMjSR$eE;Gs9cPvaoatRE$uF^nS+HnK7{~N?sLX@Y?cg6)s zZQ+dbw!6=p6<96BSB?4fa`Olhd^{s!6auTT@qGE3--qwIlPIV-H5867183ZDg~&U^;cnj zaUX01G}hVrkizT36eiw?Usl!>Ra_C-^Q~uAvM&%i$`>K zyWV`axjMS39RgOu^OizGIWcNlO2ysS9!Z zWhhr)k$I;Uz2(zWl8R}O3y-6Hh7AZ>clE;^DT-a--&>ZG)xAC~Lmf3u4pSfC)jD_U z)4KMR%7~nl?vUS(wh!`ETplVh+RGf_Id1RuO(=df*30w%aHe;1D}tZYf?l3snu7?R zZUt(ld>Fb#&Y0teN+WeWT$l?@7j1Nf+W@mn0Y)d+(X0zAWafCK^VaprCERF0-b zJaerJ7xz5oK8=ieQ@@P9hn*}nUMh9zRppXYjC|N>b0x}e5=3C z9@;3H?vpW9#FsEI1iN~?#j3M+m3k09%rp#Utv(52zjS?h&>^Urt?PlWaw>g@^Y^Ia zH(x_@?U)4BMSVMb1;YZ{Dtv5?AG)>8-Y`9IN&@F}b_rvhi|T5Ow9lJ^cxyN^o@fh5 zbh`VY0dSJV7rD<&Au7jV7y6La;JbER#LNwCwL60Ao*zuz5SWZnoUC44*PI)V3Jdv& z6aO4Mm{P)^dsQ#lcqxW8ifr!|x5u7G{R=Lsm}Q9JB()WD&etL~JNLxwWcjVyfL+fD z-93*@uWPXU{#qHwNiTcgE3MT1S%lnoL>E>2CfeF!V`t$8z1Oa1gz*yXW!r1~(<_I~ zZbYWb5h?CZK3Py!w0aW!nO}0Mq|>305BI$qLKKvk^M!DAM%u^eQRBVH6h3aoHE|(c z>rHXW67>@(OK@_``JLLpb)$k*BJXw`=QRrLy1qDi_Q0`(ZG7 zEu6v;*7@3dfAcfIF7T>mCy_uk^_jIs~*;z z6XXTi%Hg|?AQb;vkc~u%#OjX0Ma}-6|EI+dyjlE(8U-6qxW46-({uZx*dnwhk|WIb2x-_UjJ&i^5S`BEeo_f-)=SXu)Pigj%16uBC@|uI8Y7dGr`%c>4&>^i;<>WhM5K{tY|>|`zI~S>@sN8 zox5VYe4Oe8%QajLJnDTH>7dO;9^G1CiebnE&=w^62T%C3C$ zq{)Ut-PDO7Aaq!8PBe1;?DXhVr%cJnaol%IExQG+EHQ?S>GBuT_+i`v_JW`={0Y@9_zTFXE(V|va|n^U zm%bdpbRHT)o1Oc?!%LZ0?^@RAzC`0*CezRT2BEZ-I=&kyu*=%i@cZ52iVBMD!ze>u z9yzC!^EnR1rsHObAk^(#Qc223-YPFp5+7#va;?qNe0z%(H@n=ARWVTRC< z_O{){P~)|d9wQJ6X8`2DR6lV0i{EOukU_L|!=oM8pF>;MJ^i8@fwKrB!jXX9v5?oo zD(4lw$Q-#A+M<#m7HZP3>o+!rV{~4_)=DHp5-6zawmnH?5hLJgWPx3SFI_wY&_Vu^ z;p-_9CZ6=(qy>yd{bleW(kODtTM~qOqro-3V97|jP<=o;IFD-UeaWHsjc@rTU@}8K zhSfYO1-V@x%(Ca|o$~>vfn@&&c<~6?r)ZKb0~GGp{as998T^)iRQ@svE!C?7_?VZd zL>P$Zt+~5z4j>@se;iMg{xMOR5E#Fnd?pwQLM4Eq>6sb=YETdby~0RHzQSjX07zsp z@7B{@esJSSUiM{h&HIls0Lq1^x~Q**tum(z2; zmK7mjnz8^2;?NQf$@xM8ekI*c+%k3qU~|Er9b_}$Q!gXIa8qewLGJ_0*uMa0AOohM z^xVJqEI=Z|X%L57%^DIq`{zj-cY=gE&FVcAjid;0U=BiKgn{M!(3Af8V-kSx4jlZ; zQGj)MiUP{-#)Csdl34_ZBneJxDgzibQdFx4!ZN%Eqs~=M0V?E0(3^k%Md5lzx?p!P zc7r;_Xgnn zY~g7zNW;FeX9~dG;%$020yc%g*ed#n zd(Yqlu)MDXrgwkGnE~k8s52f^$Y4Yd?5!Rg>O)Zk7=s8oJ$f+Ijo=s^a>U2{coKjB z_`9^Z7cvMeaZ4H;TQCLL_e)O3!y-TZByTpVQ+m04Ix=0P51h!c#i12cfN<8A z44C@)LBgzX{?d9s$zc z5A?7(N^27{o3PT`okTT;jw_%Sp=xtl53~n+(-%N7i9gPj8{Bka#A08;wBuOkCT|=M zkUn)2MgU1{mI|j{>c({dHzkqS>A^1zQdQaA3nXa5zFKy|;BNCgAH;#M8(y7g@S&*@ zYqbWq=6l!d(j%}TZW#>+tp?`zm_g&EbiEKyAto}(uW)aE!F9ujt0E13XkdKZ;2`Gl zBt;@O=*^5AyfHmt3KHw%sm2`%0MRVGL=P=Xt*x1XY&hXoRQA|6fYVR@WdXA7&b;sd zUfui0Wu!p8<>}f%kAWPJG-Hg@$^6)u?FvGLqNJ*|GF>5s6S#e*sx!DeQ^;L;8Lbg zYOr{fPpJUIzJg%PzE1+2%<2?MQP+e)@z&cE6K&$X+(Zo}v^IN)G`-t%*g9r`78U|* zmEPKJ29-JIeQ&Aj`U=lNuzG(6mKXP~13kglS_^s0tQcn2HCNVx66v}2U-WN&W$4To zAs}5RfVq1!T7<=aNXbx`$EO;A$=OjDr9I6^@B7pPKvd^&-V3|Ct`Gj?Ur?u~r)U3U zKdqkELV|_bM*yd^J&m6vYT0)A>%C4McyTL|iUn9OyN4b`5)S8-K#*fWq=T!B3)1{X@5(oHb zPpPiSI>j1dhi3cU91vrR)A^0j?-KlqD`GL|j#zYXoLD<(&9E;#o;%o!M`Q{Z=_wTz zcXIox)EK<3bu;CI`qZS3o$KdK!PhH^`w9bV(e2#R`*JGSM?WZIy-ufn zFM43}U3vTf7HRv+OxqpHE}9%ld~R9#QoG)<;S+4Ic8umecs^c_52=}+(s;%FIQ!;( zC{FqT&**k=8@im7w65wW4mWgY1#tJooS8}KK@`i?siI1kl=Cuxb7ffFmo(@j^kouA z_{o2Z>00;>Vwzp9{R0idNJEq820j!m=2~>0Cf}JUmv6&hoCHAFw3Mxo$Y;MW4c?gv z!xfAKxP2S&l{}-e50}P10n5ytsGsK1pzTlG|0R$1Qz6vCN86m=Yl%#ws8~7es|3W{LkXQ+O;>@M_Dz3E?qrg6i4|!T-Hy-19P*61}u1|p@?ty%R1 z>x%k!`np41uiqkGRMqLc6a~PS5kY`E(xDVfCfdXNnEL2KK`Nv1{dfe@BF9*S!bFv@G*jWUHs=^1w^<@egEKkg}o$?w7Ul#(UfNZ}z3^8&HfV|5I4XIf1Jl1I-UD){l<9>5L zCx_*-eKfbZ=*^E+A(<;g59*$YO_8HPUBwz$bO_Q%Xj4|7{)IsV7%PlkUzgLt1Ro%3 zJWRRzHZxwo@XqnGSAgltgo83oaE1IjaF~cj;3yx~JV3y$LAuew&samtqbzZ)jLpj? zUTKTPq^An86F!3AH-XD9ms48nuctE;&_7Uie7j=H-zg^NiO`6g8{=eZWdw)mR^+ML|k1fz0*Zz zRgDKqn@B)%lLaV##T6<0adDJsTKCO8TfNr;sS*$UUJl*r`sz~&%r6u1ZJ-%$m@MS2 zuiO21C7~1lt@4zq+oGWn6ovkhahsw>Y^%8Nn~we;S*PF0a^;VaV83nP+i-F)jJ&wL zD-6f2@X0VZk}&3{8AYURoiSUd{6?snB-aN>v2ixL<(8W{!=`g2z|s6lB!5k|J{TE( z!@hyU6%d9X1XJEVNu(x9rQk(ir#?_%8T{?IHrC-Kcs}k?K6{+N7k(xMD7D$P9=TeM zHg@I_nEw6*v(60XDS}Gk}59(%GN=Fc`Bzr$H9g@vCO)BJ8t0l?QK`E`D(-+ z^loiP4DY^aRO!*n?S}OO$J~&aDa;cM*DAuQy8y1|Ce@0(l9-nhfY>|>d~_*K3=l5l zBa;>sGP{hLyoa@-h5jWR51P|JYoO6P+7WLKCmr{%0j-V{VD>Vjlfb+e0=JQ{#}@WV z(!#90G4iGOuVPWDJ#gs~OGrLh^jcG(s$Pv&+fvBg9*UFMnU-pK8$o zhD)4bC(W*$8FL2pt821uZ8^-RG%w_Vf8M1{gLb&y7sZq`|EQz8tDY2si-gj@ed<|& zYkgws0^Y6F@BY=MvjVT$qTU?%EYk~!oKeO6({cfhCU$YLt9P=)*Msj0Uo+PQU$fg<*b8BCNZxjmgVuKkll%2|eio$-4J3RfJ2$5s)=sddoAZuy zKtUOw;bs{>dH9w5MUw!q0$Y4n+ls_4U{6seZz05J?fXF4qux6|tf-~(@nwxmXzs_^ z0+y(!w!^+UWB~IF23!8Z*6cPQ?hGWZWG>&SD~d@M22bBHgox?wx8&wO8Of2}PMiMo zA|bSWXVJ^laTtkB6Vi8(l})dO)fEmr!S2B?KzSMxDVl~ajKn@cV)B1myr??q(GNMl zeykaA|2JYO%;PJ$vhRidk2_B(vfANtiJPpr0(FRp2FJwwm7XUI*0LrvSD5d_NXAR7 z=6LxjI7Us74k5^P(&$rXW+i}qPDff^_q}Eq((!U8fQ0@cfYklMUZd~4_ls}n0LTzJ z2G&YPCy#sjRY$G_MNwLmBBnGH>}N+E58jV47IZYVAol4cUn!Kp-3yD&xOJVrl_!nT z9ZoNF7jN#?Q3-3p)nE4Epy+Hl+dJ|UTL&-RGZQ?SWpDEuy6dfK^@tvS=na4pOP>lK zB$BMb+|r>zoZ+2{;-ivmRs^8HNdV}R_p4X3hi$CHJN|(0mhz|doHWT>x<5O?k2n0W zNp>ag0MHJ7Rw7rabm%&&@+Qp2V2OK>tQu=jjc{>~;4f$hSp$%V?Y6D|kbf{{krV#L zR_LwCF*iu2aw^5M!rtepAJ_w?^h|zEcX#4?b;%-{P_6k$uES5s%g9nOQ2=Yu;O^GH zLtxuG09Lzf;K>1MI@2#QFe#|#O}=O2<4gXWfXhUUwm;_(hvx-%I4|agNA)~YaAa6g z^E2_CVRrHSlr?Ng{M*zZB{#TH3D#heHO2>tunKtw8m^_lP2hU4ZcggkIGss zu9hc`2#4OY3GaI_9GYhZ3&sMN^A8&$oM?c`3Rs<0{0H7N4Hz*mn7Vij^BZY=v7NA( zY9f{6A>8sxtH!{mt5I%c+SN}A+#AyScxyba;8jTsDb)sv-0OyoBITzpBSiYWZNPMH zWxuQJ7)v2HXx%aE0URX6($oJHbQ{#zO1#z91O2mJ))EGJvRryB=`DbFS7D2 zcc9U5w{fqR`+Za2NW^~CtXB@{l$`*$pL|LC&rhimG#Hqi;l!AwnaQ3oY|1}lY`8vu85 z(%b>XuzbF)ER_X{Q=2)`N=_KT;!HZH`l94OW?I(#rN-oWH&)%G&d{K$FAlJl3GgMX zG2j5yoj=9_FqBZV0bE&!1X-sv>n_qjq-tIs0bZYbtAhp53vIlk`Z6hlw#-~S{PJ}; zcuTIY6~UZbFZJ4>}xKx&v2jPNM(yhl|KPuH*_ zU;`fjmCpzR5GS-3)}>HBYqPstcfRe61{+^Cwr;ySjwmVOcfKSje(Hp0o#<5b#MI91 z+ICA^c{M^p{S6tY{4NQ{z6CPc;Wh1lw?9Ye0*EX-012L#Kg*YO@R}+_W-A^zfns+E zPr{*)>?E{pDmbH-)K`lhd>bBgFG+%ve;)Wc{y3U;-~>*RMN?k+1#1d9RZ=ued>p{i zG3gRKx2bdZxz3nLS+3sy`)h6wRqTup^o^=r@iEyq9;lRDV|mjN@tHi|@mXJOO&5Up zEEK`55FifsoweryXuI4pjLIMk0M#=hK$vKGih!4cB@YVP#0x#Qx)urVOrrk}BV>AI zK))av(fX+R>iw+P738OVO$4PICyH&Z@d3c(v$9g&?JLrh9T2+&sDL5;O(t*?X&C_X zwgn>EHl!Y>@U#$-G;R<8<}VF_P7fV()fp@pB!3K0GI>>r?BtO>`|b1jlC~uGY=|CW z+BKOO*pHKXsC^|@0{lp}^k4Q3{1q=|j3+bR9EmgmM;k)k-IY|S5k1hhilbGQ+O`W^lU92U{di@+DK>+BKZUmY!SYq9FQ88bJ~Fb zHQ~C@p=>)39^#Y%M#WC-d@M&yO%Bv!URrTF(F8Xaf7F3RI9JkZSYvBF1b{b< z3AXJe1m4flQD1>&zn#DnRjEn#jOsIHpg6e;zfFjDB#7h3V5lMZaW4*5p)E;aaF>YI zEFhjVZzRX=SM7d|6Uz3u1W475=m4G8xg-h1vo144fZe|QH$Uz7tFrI#tpG(aCFFoK zs4=0GOr8*E8wCaYWiCgLP+qpT(vyj~<+)9cb$o`XL`=iZJ%qpBrVMw)^hOQC*510Y zJOGZc;2w>80bDyQ)`gB@&~rO>bz@lQ6c%C_Q4M6#Apmq2$d;fAXM#-P`OUkHL!;VC zNVb#9i=uawow!Q2b7M{EKYdutD(P@S;-DfU0QnZ7AtjtHJ}MtDX3cFFyCz zYOMCatcAi6IvZGXCS0R|*O>sIjliX@q0vmwi`H&XtVAesmrMq_yz;8w2M2V6cz~sm z1|IZ60<7-FGu}ifd_B0WepFgh{U6Wj&VykczrG?A(nB3=T=f2c4&8U5_eWaScf7OoTY! zcD<)Z!|odA1IlTf1yV*G>HTam*4gL#?s}?U*+G4SYx|mK%lRm^4J< zTwn#I;4wJ>s`##96T-S8U0oP7x(Oh-(5fEkL;#bX7{-Z(lbLlhG0}UAv2@Mm3T?9d z5sT$(@b{Bi=Vq?&i$Vh>g@*~vMMWh0MsytWN&pAj2iZPwMq<8J_yInDGfj+yFZfW> z8yRn~CZ|)U%tTJ;bg7yv4GGzXc`PK+CU`M}>`$>IfGK~(GrE1KcHcZEa&(iQExe4p zI_M!?I3cw6%1Xx*KPKuS7S+?Lzcy6SL4_NQzhF-x=Zg?WFinrk^R(5-)nRFU{bL*RQ8nG7n z=uhU<)rE!e8IwE-4AuRyB26O$SH=+9>3oegUsy+0B_>osO!N8!BQN+>9uWHdOyfIO zlWWoXNn-C~gHCZ62xQYnmPpXJm3iE?g6nVs zcW<%+S((b2YVwm6pnS(rAjfF@8i8cR15StfG(f@)hwL;HWIxEVxl zyhHSwUn`_aPfsxI7hw^PdrB-BKW7#o0CxW}-6T*XVj+R*uO(zJY*EJ@JZU>It>nf?p>r4kY}%lIGwK_jZ_`xut=XrdoA6z^YB;INr~7SFFu44UaiYNNsq!N@ zGtDC83Cj`?!tXq@>K#UdsXY+C%uXrw_sNuUMU10~Z?L`2``bNnXevrOx_EGfZxb zNn-|rCJHcnD_!cfcFrMdT^i8_KJI4fY9F)ddLA5-bbX+G9cGIH$DTkuz6N&fa#Bvx zJY1S212h-Ip!dV70)Kim0i5=nc)~ChVSzbD*M%RqfrM`T*!xDWQdxnVR$Q$^f#o$g z@t?lz{xj*7o&tR2zXGtJr1$M8_qN_|QmAPp#IM2IniHuD!xS(hMPJ`n{vQT$r{fOx z9$`v7Oq;R%90{BL(1WKWVW{iE|6qh-eGUh2ssEq~Zz-$-`Tjo)NK&nZe;W4pLEs96 z@<{fREdCAjijMLVh6h4FCq{F|{s{!Yln#3v!4m}huVpNqv(C-9|9-4CGo@WTqUqAY0@$W>nM@SAI{To$%+GG~^?{G}@ z#E1UyFF3h?8_xe>67Y9s?gTzAR`!=xOX1AF1CnRk`^vzBTfd*%ujBrMzNSe2+YHFo zT9*-QB>el0I?DX)9}f%iy;wa${I~O(|L;6T>y(j_zf$Gj6hyTDiJl@M-vx{6@E5nY zF2*-t>xVdVeL-%88pz_KK26By3IRwpR+DUnaH-K zB5;5D9Szo$BQ7g+z}?T6<%wy^E`gh@_V3*efJ2VM!L`3Mpds?l?ANe* z{>=bc^VH}gk!Omp``2Gz3t!69{xAcEM*Qi}7z&cp5D>my0YI&Y2%y|G5dueju=wck zae*@T9qYFDE=j})+-=#NyWmucpIb`)rGO0jEPw-7_9l(`<_;Q^#8DH1!MKl5`&^ZpA0#8<5;&n)jnc|sQi z#=(URZ~8SF^gyey!(4W_7QhiwK%8(W(c@%7x9l$kg2T7wdsS1;KJD0r;MkbomIu| zH`!ZAfZNzaxV#ppMPYuiEZdyb1Ga=&qF!vqwTylMQ@haGb zElg9#zFZ*zAk(rb5yjSReh+rP0xo1+d5#Eyx^p?T9_2?~`?|>6ET|u4i0RJ{L9fxr z-#Di37=dw(ogUn1pV7k;MdcC_V4ZUr5e^GGu@|ItK#~*y4$p;Tq0I_=&8T<6#wjzB#O_WR7kpfstU=v zI0mq>Du}Dj6BGo18zKd!!koB5JW!LBg_tI1|8@5ORv#@|MMZ|%0&Md8X}{Lw&k%?E zP|Y!g@b7$>BnoSACsU&_(E&I4#N)LYf1VtfUHfF$klwKzqKIr^ts~{5#^6J~B3hMU zfQ=hY%ET36dHY*{<&o{F&EDaztdQXH6TJ;3fL)1NPAeQ!he8%Qo9Q-_Vqs};s9~KC zc--#8eYi^@m`Qsd1={5Te`pb*yX)~_Ka_g_GM=ayJj{N&j&}{`3$w2Q<|pz555-HD zjl%dvv08M?1#P(I1jMiv!fm@AqAl{E$1m53*z3r_Np?1` zY5|UFhdD63xXT_83_@F;IQ2~;(G#aoi`l-r4}^6BL*I6h&AlogtWq4oS=(kUqbjw z$Z!rX+{7B7<8=S?OVT43JMqx;Pu_*B&8JU+w7mct5`w-Ij3ozsx<8Iu%NKcnSGD^7 z-0D@B0MS{50A_|pcsS{jx?(hnloEhkJGa2U1-4Wo*fY*F3vItPEwVR!>U$9XH~1xf z(>BZmOxGI@XaeypI8@SWAfN$K7kD9QL&G;Mt-c9iiI%WSaU|z!pp|W+2mo%3Are!F zI8rMe766cd_>`(zkkWBf2hF*e7*Yo#ft*G(!Y*Xluj+d4&T>Rz`YMo?5dI~A+dKf$ zeQz;&sH;CT@SzKK&}+Z#jD+rpDD|K)?}CgkpNn|Hxk+pa5^}4jq-V{ikaFgiTMd;D zn|#&1cGi=KJj@WlD$M*v;vQT?l^?y#iQEtJe_fa^0JLF(lZ(zN2hc`J(}A;F4wNR4 zB|dCi^vKK_A%cl#U&`5<`)G40a*I)Xj!_rV{RmZIQ_HN0*Y7mJAv!Uv=cc_ydHh?k zE{_4=*Dn^801l^3831)R2cf1vm?rZkTD3!#^a$v8@B)Yt@G9{#&3uwJb({n7^NkaN zN-~^hD2uD8ki#vil;yrMz0PQ*4=>#8-O!*0~uPrywtZfXdG(MZfc9%zs54;i>ilzK2ukFo?bS;`;2^)xBr7cS{GIJ|s#*2T06k%%LNIoQ75t z4w>yQG4zjOD78^I`Zx0BT(BBb+F{Yy7iYmAr=_>leNJWa+JL3@bfI0c-|6PG z>}?=^_VJ5qALC>m9K_tZJhOGQfdCleMuUbO6`n zoEZ(T=qU;2Z(%dR?06vn$>XzwyO;f$Vb^EYJlHocD12cVQ}w9|-5U_S?0yAtEPIPA zBWzWfp-$!p;V*6hkK{vH_g2Hrh9f0%uMZ!`r%c|E?}@iGId9d8g>a*rg;FPcg5dx( zxj*^ct6by09~#R(lAJLwc)`;K3p(T7WB~rI-nw#r_<9bE4k^CquG-&Ej;O*Z5U6%5 z)Ne&BZ#$af$LMGLeZ$*~vxpgxdfW9&@E+4ge@|}rwk18*hoqj(NwF2oul(w&J;@YI zJ_3j}nU=v^%weh8*y=&}iz{FNdPXVDU3TUOd#o(E@B-~WIe|*-!iiCp8m|?-uB?AP zmQ3vY`g&tG;7{7rw088;AJB0xWBufpwa6ELddX&YK_=_Sz`9zan>NQI2~v2McRhix z<5IuBEV!RxgT=>1cN0gB2XU2tJCOiDXl5$VpS)uIMJ1_{s%*8Kk~S!DeTGMNNKedn z^#Zz$$ZE}!zaO*m9wyWCx7u)vmOab9A#WYyjIXUDI?j^d&XRK^coy8k50JNU)K?o%AQtoSDHM>6~3d?M%P5LGQ4 zw?A_W`^$c9(@@s8pW7v~)^|3<*S|Fy7B*$BbhG^?znv3UQkQA&db2oTe&zic>B8lO ziJo_A482Y$fTdsz^)9pXFHdFL|BQfc;3~I?96t&al0EarlYDB-y;x5O;Sb8)7c#rz z)Hq*cbRQ$5u$itu&&ZxOTWOhe;eQ2)tj(d2N4oN3wUGQ}aIEHI+^sTP-m^R$g8N{h z+B>3F_2)*G)l<6MG(EU-o40o(E_&X93M4;J_H7nh)53$ZxEg}Ul#?@maCm0z4A=f{ zPuaWTNBYei=)#(a#ufiXMdP>`Z1~0{Y{ZPx&dSzE((Qi5o+!c(; z0t>I0H{nL7gH!{&4L|>Rnu>lJHe6AbTQi>Y-L+r_=XxC>oxs^Q?iH9*WvgQqtCMvu zuj-R5K*<f%Z%-+Ou9t6d9~N4@HUm+~{%rTaN(E5wzsLZ+_>vk+5U~Lf;1Pg3M8sZF}mz z-h(XhWQzr@)6+^Bt4i zC8BdGZ_UfzFk5MP5b@Ew*8j?)aFZUnyZOh?BNcC3krP;d2GP_(9b@nRxiZKE-H!j8 zXe7X#T^bSQvC7_lx47&IoPqXQF%*~*u8Y?m)akBO1!U0@+tunmi-fg47q>o_p4*kH zUA%b6S%NoGKW5zeRc^*v2QDEZz+DP;#J4CRIb@gtC+@Y@&$pERzOc!qV_CYkX!YKd zpxvC>vMFGzWr+pXS7AC0SP^?Z34jC!(axVx=Jq(3yDf*66wu3a2Vltiup4+d!M1j0 z5$}zG3!GaG1niKQ_+>}@>BnL)2mp0T^L;@8MYIiaMEloU%K#oQ&(tDtv>J_ukO;gp zuaK2`buId>VN%E;h045QHdH%>b6&$jB z%(!4Vu73p<5_OwjpG3OL9gV^7$LdWjBhV*_z2N0kom#BzS!LBB1GmjRW@P7K6U2A?#S7yYLcYjt|-|;Ea^vQY3^A=4EIr;xr&6 zme(Y98!HUNsi)VQiahlu)ws#lpTWGNyjZ)6875nN7%4?eE2v{`FamL%5*AmXK2xTx z_wheltk;MX(qRUeb4=!Ew`y##rcj=;_?#~oe;0htN(ciBi#L>tP(W5t%q`+N4^8^n zgyT&9K6U4BaJa1kH^;Z^l0n;tPskw;20;CEtgA1as8as1%{)V6#duU3L3qi z;GsL(l2ToQSI!;Q@f#p?q?i*4zUS@1Rl<98RA6VP#3~`MCejDTg&-41@R_BsHTq2Kt!FxhrSO*G0A;s4_v ztK#>&5yA*u9RuKGeU`Zjv+*x@0PcL?950Yb~*K~|ILJc|__+Ti|6UnAOyUfAp4A*aqf4d};I;5*bF|8p$ zqBIq(?s=@$l3e@`j8m^uIo8}U2E8`d&;lw=CG^r>rPHEcRR9<)(ZoD)ydZ;i5A$X> z7(yGqGJ@K(xXpK&u)lnx?p3uUa;JNi^-@U(&?Y*UXQwG9gZDW;uV-6sssFh6 z<&T0P>&XmWH7Ow!rW~$x@rit^CrO?>xQ1$ZbX83gM`O}FZFPl?+MB7{j~XC%>y<$T z5xfVN=+m4uvz9w7^w&m6q1C+tBac}CWgZSA*~SIF+XbV5%i(oP18i+I3Zbqh{zDaP zVtC4!H=hEAa#FD82{!TPt$A+a#mSNJHZEHr_#2Se`f@e;=Op0F|M^ugP)qmh*TZ76 z$%B2_mzY2X!mp@?!W%Y}0Q=hn09)Sl_rMa;ACh82U`T*SI0`D4i}Qhj5t+D|X3#3} zt3cvg`yB0^!`e?JKUg*sP~h2Fhc$j50rW>1F67JFlK`Cj2fsT$Pu46*&^%FqSNzp$ zQkFVmtlJ-s7jQnMJ)wO{4b)TD&By>HYpR_-dF{6Qh&tU;r5DPwF)i8?j^ceD%NKi3 zTLn_E{UGSAB&L)AA`fAHk+wG{pve|LUF*V74)j&=Qqe7V18FB27sJluU!uoova{v8 zasj!E1j&ys`?AVKgoKpbsdh2dJnT(dEJESBf;pV<73bs4381w6k;R`sNq_jj^PziI zgaC1Aq|Z?S-ZHQ!o>S8cqTBf~_STlaQZ)1xdow&tPU{E(Vf`hbEi2!`@H6Ft{SrRr z1!GL`ej6{vXK5vTfH9&mM}bH&b6SSm0rKpG%f(~c)XjX&2+ZrK5c8j%u$4Px-p^fr z>Su(HIY)rdXIAxYT};7(JZNMCHbLs-2jR_xXyB&o6iUDAzVXI;Abq&NsS!QW{*fc)LSzINfRddc<%?O*AHcvp8E!=e!0Cb(< z)Dj6-OqL!1Hg;wrc|T5Y{OqVsHr(-jtgJB(63&7VogcxCBvuE{pVf0v3%WynmI#07NQSjY#_*)mxkm^Ok2d<(X)#-~M^C z;c{Z+7Dk+#5-QBkZdA{Ef}tTIE>HABQv9!@vy6)B`@8s=pa<#h4(X5<5D*Y01O$Yi z(qJJVB@zQDU5W^jLw9!wLr8ZCN=bJ}_jCWxyx`R=)`ff5x##TfXYakPokbyaR+&nq zl*OAwI8KO$&bP4y_6Dt1O+-Ly`6}PpQ+}?tsr~I2TaiC^+gUjj`NEf?apKB0#39wU ze14ARl0Z%|@wjrncKpY_H7hgY0VePl$UwN)a8n0DrT@n$?ujk#$`|0@JRS{7)2OZX*R^vp8V;+LEo ze}P^PiUEcREO)tE-!>#2q;UnMAml`$Ry6 z9Vt&~?`ptwmp+Xh?M?NtKIPHa5`C)Xlf2QpB&D{9$F#B(^i+&y}F;Y6$6DvaO{KwGYu7YGZ{$R zPnY*B_-56NXtsOsxuuypmBBVL@BPi12F1hOADuzMv09}O`QhK9q-$c!N*TTrg*fGG zj7l3wm)jQcQ}m82&=5__NVJX8@WWWhL8Y+!?F3M1!vsiwX<1sz$*juzPj7igYMVG8 z4&)o+N$hvG?roM$c^XRhiF*_HY`W>a^fn;nOgI7}CdS-C51-{kXD`xzTh(d54xwrb^_u-N?@7*BP#&$UH6l)dnG!EHGpev{CmKP7x z82ZEmkAKX8{*a=Ll>drEBdMYv0RfNA0NA{(g<7UvsTTtJ`zUWp@dV3Y&YctZ18?k=~0Ow*fA(tA- z=8hUL_t0r#A*Zy9#Gr`HkZ69%@I$ILY+Av{3>Q!p%@lxIhc7sOs~u&l)b^$U^c3Zx zgw6-!x75GcX2e&k!@o(6V{Q(kJMV$$B9zoS(@4`W)sL5%(sk9f_gUOmgW}Vk91cr; zZ1`#tnLmzf6hu9AqtC+;CI$&2h9tn)|8Vxt8 zmVO$f>_4^Yd97C;U*)HiS58Z|VK-r`8wEpW)CnXTu>%9{A03>9(R-lObLYdlNsUde zISi9&t4uF@74ExmZf6J1xB*5~jxM~?b^qRk+iaBRfgG`U=g&KtwY>H;6L+#+hoHiP zpf#79ND#}Nx4ZObrNM4h4Z`oI9yaLy#4&D?o=0|y`Glpf*oNoH6vFjRd)$#wBgpGz zpZWy(RzxWZ2q+BqSWH{Pl<*?gb~O_F;8-?3e{{6|pi&`k~uDdOctD^CgAp+Einv4+qsqaArI zr*7i$(f+eW?<@0z0w*<5 z9f$Kwdg$GA5ZyFFSgQaP+}`6a_qfsm=mT2#YXg`F`G{j(l}jFqkl!is$~lYUX}j;x zp?vhMJ5zrFR9!al(wEUw;biQuUgg#qLRdmSbBLW@mGshYPkI}U?ipdbB=LqEW2MzB z%(jVYohyKq7fJx}x~*&M)GzJY`rfCNrfW(9iuDY@L0LnJuKBVCQNK3Om838v`hg|u zk_YChVohiH7ZREUon?=|ch};rcI7}URPj%Eo?j!q+-DJl(jLX|!NJ>$GfH!Ngp#EZ z7q3IWf2$L{KVI@dRpu9neXmb}VOiCMeadi)6GMK*!!20isSO<}0y<+ZBMA_?7;BK* zO`8?wk{uV+O#sa67)7FCN{RC;X3kqk@W+oPePi!Mb(aGr0oWKtk5mBk^4Os57v-Lo zmxLB5NE`Gq_h{{cJ!=v<`b_!F3vgcH=BlRhdNP6XljL!dz?jJP`8!XiisH;n$vnff z9cQ%I<+X*MU#Rs1;N>jk^O@}q45Teo646igM#7Y42=IPrIg7phlJY1`%vo|z6Yk#s zrUmI}{ZRk?d%Gfw^bK>QM|Sh*J{37J5#X#zQxb|bNy{LquGOW_2^;-ZmIA|&9WfCD zWU=jv^)90o6fJKjIQ*G2u-#aMvjJB%SZ&EvX@m_phQ*~7$Zr6M-6)iRv+CPyGQa%z z(*vSq?L)BULR!?=y@xTyY%IVEz9z?be%oxgsdTO&82f@5)W2*Y4#h!#pBcp9H^V1| zxi6FtMW<)KnUEsJWv7=Nfmdji?N6CpB!F=sZU;(l8rM8ae5czhq+aDKy zdA*s9ZFrFLkGA5yM~dnu70^9Pba)@~uI<2GoJHwm3o%3t%9=m=M@0a@3kI zDU$?45SjVvGPZV4_f$C#wnB#ogvcY`um;ha$Z+U(0B;Gv3c1j?ge?tcSfuU$?N1-% z$Wjs*6IdJM%%v+ByiKq-A*QToil=TVMmb(mnb6WA}VEc@7=#7pbtGKu~iCe zUwmE%?TQaiSdgIq=Qc0ur?@XBg%0;e!mYEHJ7*kK<97vI<1*@4U_jp^|72eJI~=3q zP!8b5DamKZN-BsS%?}wDTf?Nbfd?eiw<7pjI@GZFs+93%dwm<;H2^JC)g>wk&XK?% zaoj~BM1jt;~aS>b+&$0<}K zMQG`Ls7AOGotJdUI=+W1g*$y|^)%hKX1aLjY+W%f=>-XlBAPGhn&RJAj3a5JhY;2j3JJFY zBGJtRGU}!`Y(xhE;W{W`-IX45U3V0q|Ku6Do#F+7KH#rO1zfT-2d3y{8f^84AKk*F zS#fkYp@$2Km;2o7+oFW_^Vw@*OJB`xEb^-DUS5S^J&-qkiL5KnF#DQW0y5?zF*((l${6zhAz* z-@N@T-^0;9mD!@VK+9<*8%Of2JsChtD#F$JRne%(Bw_?2e;6@+V>_>VO@O!@N>nT zF8s{VFV_WTe++D4XcDh@VdDfzsGaNgOWV&jl;kk9CKf9VFgM1o>4Kqy9MyJUNPru- zqbw^-KUk+1m^3mmShWfxdSt}@E6%TP3xaI)9MXf3`@Mrz-ow?G_2^PB@!2tlSOaWc zUDd6wuo{8&mJ($6oBKRokpt`vhw|>=%%3cmTJU;Ykpm^}%Gd{<=WLR3WcZ~dwY|>( zc6p}aAYj4hiTGW;Jkid^S!Xd)dAP9N$*C-uH@2V#ycD0-yk)=ebW$=_)_z&5s>FKe zQ=6)bIKPFV>En!CQQW{q3KO;;)8!qm=Q}+@07w}%@m0A>nkk?p=;Xh0jl6exSo<0C z-4MXivsei^r{+|n$SVdu{s7fm<=qD@QyZHkfinF;g zsxqL-H~*UKQ!9Jh(PXmFa%EE@1M(fiaec@gQYXql*9^k*y|)0PNqA z0n&5KQ}lJ&PF=hY2PFLI4zS<@667keDVl+&N*NWpfe-BEn%g2&}PwL|-M;h08^em#}wNe%6;q29M48 z?*%t3P_EqKp&J;ApNV=06BEdUlJuvgpqQ0CZ#p2AF)PKrL#`Y)zwt8qn};;NuHMPV zXQd|$^EO=2x;(e2y$T0plmz%9bo$Skfk-UfBMYPb@U63oi}KKIB;XDI)w;EzA;^P( zrhCn0EccXxqi{gu^PLOpN6XhtpliHMyNQ9q1{fGlLlbq4gd$$=FQ+M@psVfh{3Lkp6Xiz<9XrZm|9Q7N{bJIC1xzDnQG<_=Agp z7zd!iV^rmv?sWyBoHH`B$VE{g!f_)_9rU6*2XW&BWhP0yq*u|aht^<*F<01sI+r^nl7A#|ZC|23-`Dqe4 z5Y2qx3wRRYXyPFEYcqWG=cTRFZ3}&$|E8xNWOm5l#PO`opi&gLofttl%fW$vXU-!k zZ>a0q)58h}%sVwA(fb)gZQ;zvP#!AXV;S_5r?#-ZvP!gGLaB zy*AqT6EXJ&uH+q_x;N%u-H8C>425sidxe*!9hiiqlD56O!~WY`W8#W8JSuLW3KmVK zprNE&1*M-Aadqm*n&vW~hd3HqqzAOgVbRTC^)7qEF#;Ry+Oj{z%*z7+HSU&4MR%p4 z$c&JTZ>-lOG_SemEdY9!?ji|7;Mn`GH!Mj)dv|mJHXk~{aC%g7f>U8^#El`;gLfo) z_erE?6eP)X2Hben1v)>tF#n~=4kdeXsK#d34p zA*KgnV0w$97lyeVOdCT@eFgo#(I`03eTY=L*?02YRP2FFH@Q*!DINx#t^cvh39Rw_ zGiSSc;2hfFNqh_eDgT%TP_(!?1fY^A00mH|rxX{qez# z%-K!6M6E1P-5(d7HF}Iaxq$%m-J4&@4psRI2i;LfB{Qz~B*6aL<Q($_rX}qi^!$KUa-6->W2j5lUGf>=Q$0!enj%>6|1u z+V3L@T~d^qTEMc%2nLA$@oIK@$n6sxis1Rg<)YtB(vgXO*4uqO`#%tqbcRQSRratY z^rH<>3Y;2~nfD~QddrP&W+`VNm6J9GLy}H(fJrDA3BF*gZNgK{yBWg12vcCJx{<`=V|wSgvy(O3x^gm-EN1cM{!ijopLb(N{3^S1(Oh}M%@d{ zH^?jFt10M;Y6+FZiAJ(FgaLBWm3U-k)B<3?OELo7R%o*urF9P7N0rHoG(9{7t0jkT z*rdRq=H;bZdF`jy|Lyr)LG@vL*LIJ+DLI`0T2%r+QIcOK9xC;_S7(=UzpUX#C#I&$ z@#MOxWV9ma>toW%G@z}QD+z9D-8plZ0pHMf^zu5@fy{eQfir>)EJ>c zrY+T0nxJ4Wp9Fs8&>;$k&kjjU__+EMX) zTBTXvX$8E3eIik2`Jb)W;g#@hsGqXN$*|Ftm=yBUho>=x_1dLz$48V|`SSh3-K7^4f zs6NHP((1HzA5H;BoQc_&tEpa3U)`7qo>y+6`i^j%@Sem~mwGh&CmciLDS346n5eiE zv_GjP{bO?W;z@|Y`$v~PKUd_)r#1Y8?OOf8G_CpkN`8&xj8Mw{ay_j&}jz!%oN` z8p1cfxAqJkth?J#?Hc_3lfQcd2i8->Kow@Ompb@aQoxfAEGFYlW={EqmKI29K>GMX z2wKVnmt1{k?FJKQzUtV|Gyh_y&7S|o#r+acwPRh|_N z&@V3lYrqAF@nciPL=I2yKWxknDT2-yN0wsG)`r3S8y6qjxv&96*^E+67u=^!MW;JK zP=`d}^Z9gajZ;e58xJlJTFJ0ivArTEZU71K3Ku3+o|KI*fN7JqK!|0K(`uzb%k29ViscRf67ie*uT%Y|# z^v5u?_}nZ)OdN+koTJi0=Qw2L zX%>X(I(FPxY42A|q1FEz!JhuT<SK1VHOlBk zv25|!K=5Pj{&YO{@uq9KovVz8!||tXJWznw@SA{xDCLg^@yzPCC@?AF3Jbfw@1-yT zo(p#`xhz+6@;E|rH;5F>2scQO4~_qFsTmyhctS zK!LKY&DU%zH3w`A@j=%N-L3Aw$a#JdLW+4Ay?&(`&UH98s<+j?I(0;`rQti6-z+4x z3A%?$*Y-^j75jW?B8|xr=B;9;rc&yjGD@$kC13*dCHmh^-Oz!{5DzNMn^DZoC8R8OF_f&O z$)o(6(y1+EWl4-9OQ@XN1u)!7XJF7y0hTQwqm1)LH_CVOT^#Ja9ji5L`#l|*f7<8N zYeri=zx6-n*xNxyrMZf5(1nB6s88I%aEstN{Eo3ulzG?iLQ1%?a19}b%=-SaL5^-l zWqZjCwZt?`C@u+0d6%t@^3q=(z{IFL?8x&|Y7}=I@0-;Oo?i@AdZeY}Fs?Jd&Ai5W z(zgQHpjY9S5Fv5WZ2?5$9Y^%D^5n2_zx598XcG~I7XLe0sL0Y3l1;y11%De<>bljP zUc#q$)o`&OF$+ugQU`@Yo#a<5$dO+f9G&ckqvDff1Fjo~5}^~}Yb5$=zU%Xj z3$~c#KR#?JY9F^yhw?17Z9Vo|Q(T^nG*yNNjpw2OizazgNgZ}`ecQD0K5#psBsbrx z+@p~zT%lrmn%kW7o2)B0{-U(wLKa3#G2e@aVWFg><6+HjEnq&n9`ko=kA}kMl zB%9i;a_wU;!KDrW?JZm%ABnbi3|?(bo_+XH`uvFt;@}TOl;YRY`{?3hJ`FSGuXMX7 zd%+gO#yGh`h;*vpy!Qw&RF+l$<1$`@<}y!_)xMRm8MCGz zpk&i$ix|E+wer?pTOQY2MTAW!_eRY*Wnm zxX$52J{pmtb8NgxdtYePO6cx=TaqAjb*5gEwPq!#4x0LHjQ1*a3gr?~*jb-FG5Uj# zdnBOI(74O8_`h7&^fIY(;u-E^6i|vWMNXf-07Gs111~ml>A!vPd{vY<%z8Lc@0dz6 zp%ofgRv%4kzNV-S)bA3HzVPeVKq|bS6#3(KQ+-NIUeA#Ay3uf~-cwp3G~ZyDbg9!O z3we8T=*^dL0)Q5rV~v+#Bt*~GXm}X>y&@&@TG-oFPXCEaEk12yK({ugt9UNmPbOs* z2rR2*i2W*2Q$`*UnDOs<%msIM0Jm|qY7w-@Xs=cHsy z_aEn(dALse=Hfx>9Yp(wb%&F&&p8MO--2A%q+4f0Bp!C*nCpK0q30=URd7|N=C4+X z)%dN9PoSis9iKrbNAfPA&ytb+qK|3j2ZKLpg|lluTCJHeg@K45<`_jaFqwbt?jo*v zIN+nXs$QShzH8cVX7)F_MO>_*> z?QXqJv*?O8Fr}2dszikjRpnP_4EDDG(3EJ?c*PIQZi)Uug8cRxu`BUMG+f>EHZ7=2 zR?vQ*Z}b^`OL53kEigp2SbN*d$Lq0!wMve}YkSS$WFHBjbaJ2XTo;^r|Ffg~1zm$K z*F<~4otcm3`>Thhz9{gUtL<5uXSkvbI6S~bEm_My$zHcjUwC70VxE&qF(Bg*Z_0#+ zjtlYFib}`nt3UhBdtC!V^OyZhjeSdec85cCUjdXl!pIdmQVp_#_(cGb-~)5w^^2TmL2-&eipKx+c+w9y)wq2(v;ds=&eJ)GC_E^Clo`qZz1)OO zC&e!szhAH8i;fb4uhJeDq^q4SjDT`Io9>mpLD8_s$<=%bs)g zj*7mg0`~=B%FyvONljW_?ZNN3IcTBSrQCf}AzcCiH=a&JtG&nv;kv1sgOYCla;h?) zS3ud6E%bMwsE#hf8g+t=C;G1f*ix;jnm=#x|2??fu;0}Y-VrOiiVl>sI#z%D>j zaV9Mzy_!X2f7qIjyBKkst@_v2QUIn$xRHiE-=8k-{x(ar4+~WE?fuxpmi3}p##`N^ z2hUDUKMltVOKUK!hqLlk82UMs#8ud~lpXtJ#Z7W}&oAs}22#^H+!QK>)G3NnT3zR) z*oD)Na}R!>u>!g@QhJ;GfDoX^Bd+M}$K*_WU>HLoKk`wnvc%p0B8sZ~P((rT0bEGAH|ivXTUhK5BAyF9^yLI9}h%QR8N|oO&)l>v9%eQTuivQ)@My8_q0It zVSFh0oIyOY(%r^Cz~^61WQ?Zt^^^dARfTDtbQ{wlt?$aN;*rF+@h0}WhR#D)?|Q_& zD2Lsdy4gsphmIo56vkn){4xu$5~mw!4s z$F}%6bhD(*I{eK2vA=Q%+k4O7=86gt)?G7WNTV7>Zdzxpy}K5)cOjI_Hfz9*0B_XC z{7D4Kc{mAqdr5Slh*nU(T>J^NJxk!0d^9la@H@-oFT`3u5%|0J7pd-j(_*+0bg@a! zB`V2Ptw5J*|M;L;u(Tz{C%o#+3@nux62&$<7^YO)#tAb<%!!vznIM+BK5X3D%W}gF zjL6&*rp30CmpP1|oO~EGK5Bj-^y1`4d%xW}b;N$192JOJyvS#1@BFc^Y$)u4p(jQv z{qOB{9RQ-QJfSAr`L~oQ)6CcX06(?q?j(L2(-+&Yn*&M|(>=KDCmpG||F#j2wp{-C zZE=>wiX8Ew>D7-aa)43N_jrj32+o^Cxd?&WpU;yiTv$>}JP5c0Or#B*PQnzd>Gn#x zvu5SAAVdxPF3`qN8ed&)ZuCEEpyOcLwSZF|@u>Kn^m3j23h^Zd>^v*xzzg+b53gPy z$_O2{jm>Q;P-Vw4P{kdApvS8-5DbN9&rABlCRF6cZvlaTn2$%UoIFlsFwPn=5?0ikSD^o+*QHG)lE$lF!XI?N1-*=_ZM{ zn9eWbmd3XH+Eh_|!qTy~GXWPAR}Xm$1z-Rya`xs6-n~!IdIo(o)wETM@0t7mA7Udy A=>Px# literal 0 HcmV?d00001 diff --git a/osu.Framework.Tests/Resources/Textures/css-text.png b/osu.Framework.Tests/Resources/Textures/css-text.png new file mode 100644 index 0000000000000000000000000000000000000000..a0bfe8038eb51de9f431074a8aec5c60f5e4beb9 GIT binary patch literal 12583 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 BlockExit = new Bindable(); + private FontStore testFonts; + [BackgroundDependencyLoader] private void load() { Resources.AddStore(new NamespacedResourceStore(new DllResourceStore(typeof(TestGame).Assembly), "Resources")); + + // nested store for framework test fonts to not interfere with framework's default (roboto) in test scenes. + Fonts.AddStore(testFonts = new FontStore(useAtlas: false)); + + AddFont(Resources, "Fonts/Noto/Noto-Basic", metrics: new FontMetrics(1160, 320, 1000), target: testFonts); } protected override bool OnExiting() => BlockExit.Value; diff --git a/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs b/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs index 4c0499ee73..099991157c 100644 --- a/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs +++ b/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs @@ -4,15 +4,23 @@ using osu.Framework.Allocation; using osu.Framework.IO.Stores; using osu.Framework.Testing; +using osu.Framework.Text; namespace osu.Framework.Tests.Visual { public class FrameworkTestSceneTestRunner : TestSceneTestRunner { + private FontStore testFonts; + [BackgroundDependencyLoader] private void load() { Resources.AddStore(new NamespacedResourceStore(new DllResourceStore(typeof(FrameworkTestScene).Assembly), "Resources")); + + // nested store for framework test fonts to not interfere with framework's default (roboto) in test scenes. + Fonts.AddStore(testFonts = new FontStore(useAtlas: false)); + + AddFont(Resources, "Fonts/Noto/Noto-Basic", metrics: new FontMetrics(1160, 320, 1000), target: testFonts); } } } diff --git a/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs b/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs index 3889ec2868..5b710af4c4 100644 --- a/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs +++ b/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs @@ -1,9 +1,16 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. +using System.Diagnostics; +using osu.Framework.Allocation; using osu.Framework.Graphics; using osu.Framework.Graphics.Containers; +using osu.Framework.Graphics.Shapes; using osu.Framework.Graphics.Sprites; +using osu.Framework.Graphics.Textures; +using osu.Framework.IO.Stores; +using osuTK; +using osuTK.Graphics; namespace osu.Framework.Tests.Visual.Sprites { @@ -43,6 +50,8 @@ public TestSceneSpriteText() { Text = @"0123456789!@#$%^&*()_-+-[]{}.,<>;'\" }); + flow.Add(new CssTextComparison("Hello, せかい!", "css-text")); + flow.Add(new CssTextComparison("せかい、hello!", "css-text2")); for (int i = 1; i <= 200; i++) { @@ -57,5 +66,109 @@ public TestSceneSpriteText() flow.Add(text); } } + + ///

+ /// Displays a font-mixed followed by a captured image of the same text drawn in CSS, + /// with a baseline visualiser placed at the correct expected position. + /// + private class CssTextComparison : FillFlowContainer + { + private readonly string text; + private readonly string sprite; + + private const float font_size = 50; + + public CssTextComparison(string text, string sprite) + { + this.text = text; + this.sprite = sprite; + } + + [BackgroundDependencyLoader] + private void load(TextureStore textures, FontStore fonts) + { + var noto = fonts.GetFont("Noto-Basic"); + + Debug.Assert(noto.Metrics != null && noto.Baseline != null); + + var notoMetrics = noto.Metrics.Value; + float notoFontSize = font_size * notoMetrics.GlyphScale; + + // The baseline expected for the sprite text would be of Noto's font (containing japanese glyphs). + // As it has a higher baseline compared to Roboto. + float expectedBaseline = (noto.Baseline.Value / FontStore.BASE_FONT_SIZE) * notoFontSize; + + AutoSizeAxes = Axes.Both; + Direction = FillDirection.Vertical; + Margin = new MarginPadding { Vertical = 25f }; + + Children = new Drawable[] + { + new Container + { + RelativeSizeAxes = Axes.X, + AutoSizeAxes = Axes.Y, + Children = new Drawable[] + { + new SpriteText + { + Anchor = Anchor.TopLeft, + Origin = Anchor.TopLeft, + Scale = new Vector2(1.5f), + Text = "o!f (with CSS scaling)" + }, + new SpriteText + { + Anchor = Anchor.TopRight, + Origin = Anchor.TopRight, + Scale = new Vector2(1.5f), + Text = "CSS" + }, + } + }, + new Container + { + AutoSizeAxes = Axes.Both, + Children = new Drawable[] + { + new FillFlowContainer + { + AutoSizeAxes = Axes.Both, + Direction = FillDirection.Horizontal, + Children = new Drawable[] + { + new SpriteText + { + Colour = FrameworkColour.Green, + Font = FrameworkFont.Regular.With(size: font_size, weight: "Regular", css: true), + Text = text, + }, + new Box + { + RelativeSizeAxes = Axes.Y, + Margin = new MarginPadding { Horizontal = 25f }, + Width = 2f, + }, + new Sprite + { + Colour = FrameworkColour.Yellow, + // generated via https://gist.github.com/frenzibyte/9e73ee324ac1368456695cc2a75db74b. + // (with the displayed text and canvas size updated per usage accordingly) + Texture = textures.Get(sprite), + } + } + }, + new Box + { + Y = expectedBaseline, + Colour = Color4.Red, + RelativeSizeAxes = Axes.X, + Height = 2f, + }, + } + }, + }; + } + } } } diff --git a/osu.Framework/IO/Stores/FontStore.cs b/osu.Framework/IO/Stores/FontStore.cs index 4e2b1f03df..561d017868 100644 --- a/osu.Framework/IO/Stores/FontStore.cs +++ b/osu.Framework/IO/Stores/FontStore.cs @@ -17,6 +17,11 @@ namespace osu.Framework.IO.Stores { public class FontStore : TextureStore, ITexturedGlyphLookupStore { + /// + /// The font size of the raw glyph textures. + /// + internal const float BASE_FONT_SIZE = 100; + private readonly List glyphStores = new List(); private readonly List nestedFontStores = new List(); @@ -34,7 +39,7 @@ public class FontStore : TextureStore, ITexturedGlyphLookupStore /// /// The texture source. /// The raw pixel height of the font. Can be used to apply a global scale or metric to font usages. - public FontStore(IResourceStore store = null, float scaleAdjust = 100) + public FontStore(IResourceStore store = null, float scaleAdjust = BASE_FONT_SIZE) : this(store, scaleAdjust, false) { } @@ -46,12 +51,12 @@ public FontStore(IResourceStore store = null, float scaleAdjust = /// The texture source. /// The raw pixel height of the font. Can be used to apply a global scale or metric to font usages. /// The texture minification filtering mode to use. - public FontStore(IResourceStore store = null, float scaleAdjust = 100, All minFilterMode = All.Linear) + public FontStore(IResourceStore store = null, float scaleAdjust = BASE_FONT_SIZE, All minFilterMode = All.Linear) : this(store, scaleAdjust, true, filteringMode: minFilterMode) { } - internal FontStore(IResourceStore store = null, float scaleAdjust = 100, bool useAtlas = false, Storage cacheStorage = null, All filteringMode = All.Linear) + internal FontStore(IResourceStore store = null, float scaleAdjust = BASE_FONT_SIZE, bool useAtlas = false, Storage cacheStorage = null, All filteringMode = All.Linear) : base(store, scaleAdjust: scaleAdjust, useAtlas: useAtlas, filteringMode: filteringMode) { this.cacheStorage = cacheStorage; From b2370e53615cedf9fe5267f25fa3a858299059f4 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 23 Apr 2022 06:42:54 +0300 Subject: [PATCH 09/23] Include CSS-style sprite texts in test scene --- .../Visual/Sprites/TestSceneSpriteText.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs b/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs index 5b710af4c4..244ad09f1a 100644 --- a/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs +++ b/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs @@ -64,6 +64,16 @@ public TestSceneSpriteText() }; flow.Add(text); + + SpriteText cssText = new SpriteText + { + Text = $@"Font testy at size {i} (CSS)", + Font = new FontUsage("Roboto", i, i % 4 > 1 ? "Bold" : "Regular", i % 2 == 1, css: true), + AllowMultiline = true, + RelativeSizeAxes = Axes.X, + }; + + flow.Add(cssText); } } From 78d32b636864d29903c976fb319fda4b2f3c80e9 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 23 Apr 2022 08:59:37 +0300 Subject: [PATCH 10/23] Fix wrong font metrics for test "Noto" font This doesn't affect the test scene since the scaling is based on the name of the font specified for the `SpriteText`. Same for CSS as far as I've tested. --- osu.Framework.Tests/TestGame.cs | 2 +- osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs | 2 +- osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/osu.Framework.Tests/TestGame.cs b/osu.Framework.Tests/TestGame.cs index 18c1602122..95d7ea3621 100644 --- a/osu.Framework.Tests/TestGame.cs +++ b/osu.Framework.Tests/TestGame.cs @@ -23,7 +23,7 @@ private void load() // nested store for framework test fonts to not interfere with framework's default (roboto) in test scenes. Fonts.AddStore(testFonts = new FontStore(useAtlas: false)); - AddFont(Resources, "Fonts/Noto/Noto-Basic", metrics: new FontMetrics(1160, 320, 1000), target: testFonts); + AddFont(Resources, "Fonts/Noto/Noto-Basic", metrics: new FontMetrics(880, 120, 1000), target: testFonts); } protected override bool OnExiting() => BlockExit.Value; diff --git a/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs b/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs index 099991157c..7ca6fd0f0c 100644 --- a/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs +++ b/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs @@ -20,7 +20,7 @@ private void load() // nested store for framework test fonts to not interfere with framework's default (roboto) in test scenes. Fonts.AddStore(testFonts = new FontStore(useAtlas: false)); - AddFont(Resources, "Fonts/Noto/Noto-Basic", metrics: new FontMetrics(1160, 320, 1000), target: testFonts); + AddFont(Resources, "Fonts/Noto/Noto-Basic", metrics: new FontMetrics(880, 120, 1000), target: testFonts); } } } diff --git a/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs b/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs index 244ad09f1a..91789ae67d 100644 --- a/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs +++ b/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs @@ -150,7 +150,7 @@ private void load(TextureStore textures, FontStore fonts) new SpriteText { Colour = FrameworkColour.Green, - Font = FrameworkFont.Regular.With(size: font_size, weight: "Regular", css: true), + Font = FrameworkFont.Regular.With(size: font_size, css: true), Text = text, }, new Box From 914f81b2cd0af9fcac1bceba82607af7f94abf4b Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 23 Apr 2022 19:41:41 +0300 Subject: [PATCH 11/23] Reference computation of "height of each individual glyph" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Bartłomiej Dach --- osu.Framework/Text/TextBuilder.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Framework/Text/TextBuilder.cs b/osu.Framework/Text/TextBuilder.cs index 3e372efc6d..7ffb2e1c54 100644 --- a/osu.Framework/Text/TextBuilder.cs +++ b/osu.Framework/Text/TextBuilder.cs @@ -70,7 +70,7 @@ public float LineBaseHeight /// /// The store from which glyphs are to be retrieved from. /// The font to use for glyph lookups from . - /// True to use (full glyph size) as the height for each line. False if the height of each individual glyph should be used. + /// True to use (full glyph size) as the height for each line. False if the height of each individual glyph ( + ) should be used. /// The offset at which characters should begin being added at. /// The spacing between characters. /// The maximum width of the resulting text bounds. From 6c6ec9e4445fd362bd57e5b54dca846cddb887c2 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 23 Apr 2022 19:22:24 +0300 Subject: [PATCH 12/23] Split `GetFont` lookup method to an internal interface --- .../Visual/Sprites/TestSceneSpriteText.cs | 3 ++- osu.Framework/IO/Stores/FontStore.cs | 11 ++++------- osu.Framework/Text/IHasGlyphStores.cs | 16 ++++++++++++++++ osu.Framework/Text/ITexturedGlyphLookupStore.cs | 7 ------- osu.Framework/Text/TextBuilder.cs | 2 +- 5 files changed, 23 insertions(+), 16 deletions(-) create mode 100644 osu.Framework/Text/IHasGlyphStores.cs diff --git a/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs b/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs index 91789ae67d..58e6b65c1a 100644 --- a/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs +++ b/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs @@ -9,6 +9,7 @@ using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Textures; using osu.Framework.IO.Stores; +using osu.Framework.Text; using osuTK; using osuTK.Graphics; @@ -97,7 +98,7 @@ public CssTextComparison(string text, string sprite) [BackgroundDependencyLoader] private void load(TextureStore textures, FontStore fonts) { - var noto = fonts.GetFont("Noto-Basic"); + var noto = ((IHasGlyphStores)fonts).GetFont("Noto-Basic"); Debug.Assert(noto.Metrics != null && noto.Baseline != null); diff --git a/osu.Framework/IO/Stores/FontStore.cs b/osu.Framework/IO/Stores/FontStore.cs index 561d017868..ae37e06bbf 100644 --- a/osu.Framework/IO/Stores/FontStore.cs +++ b/osu.Framework/IO/Stores/FontStore.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using osu.Framework.Logging; using System.Collections.Concurrent; +using System.Linq; using JetBrains.Annotations; using osu.Framework.Platform; using osu.Framework.Text; @@ -15,7 +16,7 @@ namespace osu.Framework.IO.Stores { - public class FontStore : TextureStore, ITexturedGlyphLookupStore + public class FontStore : TextureStore, ITexturedGlyphLookupStore, IHasGlyphStores { /// /// The font size of the raw glyph textures. @@ -135,17 +136,13 @@ public override void RemoveStore(IResourceStore store) base.RemoveStore(store); } - /// - /// Searches for a with the specified name. - /// - /// The font name. - public IGlyphStore GetFont(string name) + IGlyphStore IHasGlyphStores.GetFont(string name) { var found = glyphStores.Find(g => g.FontName == name); if (found == null) { - foreach (var store in nestedFontStores) + foreach (var store in nestedFontStores.OfType()) { if ((found = store.GetFont(name)) != null) break; diff --git a/osu.Framework/Text/IHasGlyphStores.cs b/osu.Framework/Text/IHasGlyphStores.cs new file mode 100644 index 0000000000..fd3b9eb451 --- /dev/null +++ b/osu.Framework/Text/IHasGlyphStores.cs @@ -0,0 +1,16 @@ +// Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. +// See the LICENCE file in the repository root for full licence text. + +using osu.Framework.IO.Stores; + +namespace osu.Framework.Text +{ + internal interface IHasGlyphStores + { + /// + /// Searches for a with the specified name. + /// + /// The font name. + IGlyphStore GetFont(string name); + } +} diff --git a/osu.Framework/Text/ITexturedGlyphLookupStore.cs b/osu.Framework/Text/ITexturedGlyphLookupStore.cs index b04668fc98..66a41c88bc 100644 --- a/osu.Framework/Text/ITexturedGlyphLookupStore.cs +++ b/osu.Framework/Text/ITexturedGlyphLookupStore.cs @@ -2,7 +2,6 @@ // See the LICENCE file in the repository root for full licence text. using System.Threading.Tasks; -using osu.Framework.IO.Stores; namespace osu.Framework.Text { @@ -23,11 +22,5 @@ public interface ITexturedGlyphLookupStore /// The character to retrieve. /// The character glyph. Task GetAsync(string fontName, char character); - - /// - /// Searches for a with the specified name. - /// - /// The font name. - IGlyphStore GetFont(string name); } } diff --git a/osu.Framework/Text/TextBuilder.cs b/osu.Framework/Text/TextBuilder.cs index 7ffb2e1c54..6aba85700d 100644 --- a/osu.Framework/Text/TextBuilder.cs +++ b/osu.Framework/Text/TextBuilder.cs @@ -88,7 +88,7 @@ public TextBuilder(ITexturedGlyphLookupStore store, FontUsage font, float maxWid this.spacing = spacing; this.maxWidth = maxWidth; - fontGlyphStore = store.GetFont(font.FontName); + fontGlyphStore = (store as IHasGlyphStores)?.GetFont(font.FontName); Characters = characterList ?? new List(); this.neverFixedWidthCharacters = neverFixedWidthCharacters ?? Array.Empty(); From 6113bb30f233a0f502b89749cd27ef0cc022e88e Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 23 Apr 2022 20:13:12 +0300 Subject: [PATCH 13/23] Remove no longer necessary implementation --- osu.Framework.Benchmarks/BenchmarkTextBuilder.cs | 4 ---- 1 file changed, 4 deletions(-) diff --git a/osu.Framework.Benchmarks/BenchmarkTextBuilder.cs b/osu.Framework.Benchmarks/BenchmarkTextBuilder.cs index 031154983d..61df335fa4 100644 --- a/osu.Framework.Benchmarks/BenchmarkTextBuilder.cs +++ b/osu.Framework.Benchmarks/BenchmarkTextBuilder.cs @@ -1,12 +1,10 @@ // Copyright (c) ppy Pty Ltd . Licensed under the MIT Licence. // See the LICENCE file in the repository root for full licence text. -using System; using System.Threading.Tasks; using BenchmarkDotNet.Attributes; using osu.Framework.Graphics.Sprites; using osu.Framework.Graphics.Textures; -using osu.Framework.IO.Stores; using osu.Framework.Text; namespace osu.Framework.Benchmarks @@ -52,8 +50,6 @@ private class TestStore : ITexturedGlyphLookupStore public ITexturedCharacterGlyph Get(string fontName, char character) => new TexturedCharacterGlyph(new CharacterGlyph(character, character, character, character, character, null), Texture.WhitePixel); public Task GetAsync(string fontName, char character) => Task.Run(() => Get(fontName, character)); - - public IGlyphStore GetFont(string name) => throw new NotImplementedException(); } } } From 82ca32d0d4a8f5110fb00b17db0df19041ec374c Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Sat, 23 Apr 2022 21:44:20 +0300 Subject: [PATCH 14/23] Fix `TestStore` not implementing internal lookup interface --- osu.Framework.Tests/Text/TextBuilderTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Framework.Tests/Text/TextBuilderTest.cs b/osu.Framework.Tests/Text/TextBuilderTest.cs index 7b4104bce6..b08e1a2bda 100644 --- a/osu.Framework.Tests/Text/TextBuilderTest.cs +++ b/osu.Framework.Tests/Text/TextBuilderTest.cs @@ -646,7 +646,7 @@ public static implicit operator FontUsage(TestFontUsage tfu) => new FontUsage(tfu.family, font_size, tfu.weight, tfu.italics, tfu.fixedWidth, tfu.css); } - private class TestStore : ITexturedGlyphLookupStore + private class TestStore : ITexturedGlyphLookupStore, IHasGlyphStores { [CanBeNull] private readonly TestGlyphStore[] stores; From 252a680b32a0eb97acc7c56f72564700d178fd69 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 3 May 2022 10:59:56 +0300 Subject: [PATCH 15/23] Add note about noto font usage --- osu.Framework.Tests/TestGame.cs | 1 + osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/osu.Framework.Tests/TestGame.cs b/osu.Framework.Tests/TestGame.cs index 95d7ea3621..982bb0e301 100644 --- a/osu.Framework.Tests/TestGame.cs +++ b/osu.Framework.Tests/TestGame.cs @@ -23,6 +23,7 @@ private void load() // nested store for framework test fonts to not interfere with framework's default (roboto) in test scenes. Fonts.AddStore(testFonts = new FontStore(useAtlas: false)); + // note that only a few of the noto sprite sheets have been included with this font, not the full set. AddFont(Resources, "Fonts/Noto/Noto-Basic", metrics: new FontMetrics(880, 120, 1000), target: testFonts); } diff --git a/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs b/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs index 7ca6fd0f0c..b0188d2429 100644 --- a/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs +++ b/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs @@ -20,6 +20,7 @@ private void load() // nested store for framework test fonts to not interfere with framework's default (roboto) in test scenes. Fonts.AddStore(testFonts = new FontStore(useAtlas: false)); + // note that only a few of the noto sprite sheets have been included with this font, not the full set. AddFont(Resources, "Fonts/Noto/Noto-Basic", metrics: new FontMetrics(880, 120, 1000), target: testFonts); } } From 4cdf9a05b001f24e233cc88a69e69eb6f560cf46 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 3 May 2022 11:00:30 +0300 Subject: [PATCH 16/23] Expose `BASE_FONT_SIZE` publicly --- osu.Framework/IO/Stores/FontStore.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Framework/IO/Stores/FontStore.cs b/osu.Framework/IO/Stores/FontStore.cs index ae37e06bbf..5a52d8c097 100644 --- a/osu.Framework/IO/Stores/FontStore.cs +++ b/osu.Framework/IO/Stores/FontStore.cs @@ -21,7 +21,7 @@ public class FontStore : TextureStore, ITexturedGlyphLookupStore, IHasGlyphStore /// /// The font size of the raw glyph textures. /// - internal const float BASE_FONT_SIZE = 100; + public const float BASE_FONT_SIZE = 100; private readonly List glyphStores = new List(); From aaca14b388f5290a64c6f474c5eae8ac8cac4356 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 3 May 2022 11:41:28 +0300 Subject: [PATCH 17/23] `IHasGlyphStores` -> `IFontStore` --- osu.Framework.Tests/Text/TextBuilderTest.cs | 2 +- osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs | 2 +- osu.Framework/IO/Stores/FontStore.cs | 6 +++--- osu.Framework/Text/{IHasGlyphStores.cs => IFontStore.cs} | 2 +- osu.Framework/Text/TextBuilder.cs | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) rename osu.Framework/Text/{IHasGlyphStores.cs => IFontStore.cs} (87%) diff --git a/osu.Framework.Tests/Text/TextBuilderTest.cs b/osu.Framework.Tests/Text/TextBuilderTest.cs index 2f386e15ef..5556718657 100644 --- a/osu.Framework.Tests/Text/TextBuilderTest.cs +++ b/osu.Framework.Tests/Text/TextBuilderTest.cs @@ -651,7 +651,7 @@ public static implicit operator FontUsage(TestFontUsage tfu) => new FontUsage(tfu.family, font_size, tfu.weight, tfu.italics, tfu.fixedWidth, tfu.css); } - private class TestStore : ITexturedGlyphLookupStore, IHasGlyphStores + private class TestStore : IFontStore { [CanBeNull] private readonly TestGlyphStore[] stores; diff --git a/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs b/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs index 58e6b65c1a..5559a3ba97 100644 --- a/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs +++ b/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs @@ -98,7 +98,7 @@ public CssTextComparison(string text, string sprite) [BackgroundDependencyLoader] private void load(TextureStore textures, FontStore fonts) { - var noto = ((IHasGlyphStores)fonts).GetFont("Noto-Basic"); + var noto = ((IFontStore)fonts).GetFont("Noto-Basic"); Debug.Assert(noto.Metrics != null && noto.Baseline != null); diff --git a/osu.Framework/IO/Stores/FontStore.cs b/osu.Framework/IO/Stores/FontStore.cs index 5a52d8c097..f6ffb2ef9f 100644 --- a/osu.Framework/IO/Stores/FontStore.cs +++ b/osu.Framework/IO/Stores/FontStore.cs @@ -16,7 +16,7 @@ namespace osu.Framework.IO.Stores { - public class FontStore : TextureStore, ITexturedGlyphLookupStore, IHasGlyphStores + public class FontStore : TextureStore, IFontStore { /// /// The font size of the raw glyph textures. @@ -136,13 +136,13 @@ public override void RemoveStore(IResourceStore store) base.RemoveStore(store); } - IGlyphStore IHasGlyphStores.GetFont(string name) + IGlyphStore IFontStore.GetFont(string name) { var found = glyphStores.Find(g => g.FontName == name); if (found == null) { - foreach (var store in nestedFontStores.OfType()) + foreach (var store in nestedFontStores.OfType()) { if ((found = store.GetFont(name)) != null) break; diff --git a/osu.Framework/Text/IHasGlyphStores.cs b/osu.Framework/Text/IFontStore.cs similarity index 87% rename from osu.Framework/Text/IHasGlyphStores.cs rename to osu.Framework/Text/IFontStore.cs index fd3b9eb451..4e34c3133a 100644 --- a/osu.Framework/Text/IHasGlyphStores.cs +++ b/osu.Framework/Text/IFontStore.cs @@ -5,7 +5,7 @@ namespace osu.Framework.Text { - internal interface IHasGlyphStores + internal interface IFontStore : ITexturedGlyphLookupStore { /// /// Searches for a with the specified name. diff --git a/osu.Framework/Text/TextBuilder.cs b/osu.Framework/Text/TextBuilder.cs index 6aba85700d..649eb4dffc 100644 --- a/osu.Framework/Text/TextBuilder.cs +++ b/osu.Framework/Text/TextBuilder.cs @@ -88,7 +88,7 @@ public TextBuilder(ITexturedGlyphLookupStore store, FontUsage font, float maxWid this.spacing = spacing; this.maxWidth = maxWidth; - fontGlyphStore = (store as IHasGlyphStores)?.GetFont(font.FontName); + fontGlyphStore = (store as IFontStore)?.GetFont(font.FontName); Characters = characterList ?? new List(); this.neverFixedWidthCharacters = neverFixedWidthCharacters ?? Array.Empty(); From cf7a7f6c8fba86087cac0d0a7840b121a7cc72e1 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 10 May 2022 13:32:29 +0300 Subject: [PATCH 18/23] Revert font size metrics changes with note --- osu.Framework.Tests/TestGame.cs | 2 +- osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/osu.Framework.Tests/TestGame.cs b/osu.Framework.Tests/TestGame.cs index 982bb0e301..0902e2979e 100644 --- a/osu.Framework.Tests/TestGame.cs +++ b/osu.Framework.Tests/TestGame.cs @@ -24,7 +24,7 @@ private void load() Fonts.AddStore(testFonts = new FontStore(useAtlas: false)); // note that only a few of the noto sprite sheets have been included with this font, not the full set. - AddFont(Resources, "Fonts/Noto/Noto-Basic", metrics: new FontMetrics(880, 120, 1000), target: testFonts); + AddFont(Resources, "Fonts/Noto/Noto-Basic", metrics: new FontMetrics(1160, 320, 1000), target: testFonts); } protected override bool OnExiting() => BlockExit.Value; diff --git a/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs b/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs index b0188d2429..233c0cf903 100644 --- a/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs +++ b/osu.Framework.Tests/Visual/FrameworkTestSceneTestRunner.cs @@ -21,7 +21,8 @@ private void load() Fonts.AddStore(testFonts = new FontStore(useAtlas: false)); // note that only a few of the noto sprite sheets have been included with this font, not the full set. - AddFont(Resources, "Fonts/Noto/Noto-Basic", metrics: new FontMetrics(880, 120, 1000), target: testFonts); + // also note that this uses the macOS metrics (hhea table) for convenience, as it matches with css-text.png which was rendered on macOS. + AddFont(Resources, "Fonts/Noto/Noto-Basic", metrics: new FontMetrics(1160, 320, 1000), target: testFonts); } } } From e34c36435526b4c2b6803027c515ee26731a7f6e Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 10 May 2022 14:03:18 +0300 Subject: [PATCH 19/23] Improve glyph size documentation --- osu.Framework/Text/TextBuilderGlyph.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/osu.Framework/Text/TextBuilderGlyph.cs b/osu.Framework/Text/TextBuilderGlyph.cs index 8d7b452865..3dba070f0f 100644 --- a/osu.Framework/Text/TextBuilderGlyph.cs +++ b/osu.Framework/Text/TextBuilderGlyph.cs @@ -39,7 +39,7 @@ public struct TextBuilderGlyph : ITexturedCharacterGlyph /// The size to draw the glyph at. /// /// - /// Note that this can differ per font on one specified , depending on each one's font metrics. + /// For the same size, this value can differ per-font depending on each font's metrics. /// public readonly float Size; From aa38a9343eb09fed8f02bcc59eb7473a641588cd Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 10 May 2022 16:54:37 +0300 Subject: [PATCH 20/23] Improve `useFullGlyphHeight` parameter documentation --- osu.Framework/Text/TextBuilder.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/osu.Framework/Text/TextBuilder.cs b/osu.Framework/Text/TextBuilder.cs index 649eb4dffc..c783990b30 100644 --- a/osu.Framework/Text/TextBuilder.cs +++ b/osu.Framework/Text/TextBuilder.cs @@ -70,7 +70,11 @@ public float LineBaseHeight /// /// The store from which glyphs are to be retrieved from. /// The font to use for glyph lookups from . - /// True to use (full glyph size) as the height for each line. False if the height of each individual glyph ( + ) should be used. + /// + /// When true, all texts that use a particular font will have a constant height, regardless of the letters used. + /// When false, the height of a given text will be cropped to only fit the letters used in that particular text, + /// and extra space above and below letters will be trimmed. + /// /// The offset at which characters should begin being added at. /// The spacing between characters. /// The maximum width of the resulting text bounds. From f06c1416938c055ae50fc4332b3ffb1c35772faf Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 10 May 2022 16:53:57 +0300 Subject: [PATCH 21/23] Encapsulate font size calculation logic --- osu.Framework/Text/TextBuilder.cs | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/osu.Framework/Text/TextBuilder.cs b/osu.Framework/Text/TextBuilder.cs index c783990b30..93f4bd51cf 100644 --- a/osu.Framework/Text/TextBuilder.cs +++ b/osu.Framework/Text/TextBuilder.cs @@ -214,12 +214,7 @@ public bool AddCharacter(char character) public void AddNewLine() { if (currentNewLine) - { - currentLineHeight = font.Size; - - if (font.CssScaling && fontGlyphStore?.Metrics is FontMetrics metrics) - currentLineHeight *= metrics.GlyphScale; - } + currentLineHeight = getFontSize(fontGlyphStore?.Metrics); // Reset + vertically offset the current position currentPos.X = startOffset.X; @@ -370,24 +365,21 @@ private float getGlyphHeight(ref TextBuilderGlyph glyph) private bool tryCreateGlyph(char character, out TextBuilderGlyph glyph) { - var fontStoreGlyph = getTexturedGlyph(character); + var texturedGlyph = getTexturedGlyph(character); - if (fontStoreGlyph == null) + if (texturedGlyph == null) { glyph = default; return false; } - float size = font.Size; - - if (font.CssScaling && fontStoreGlyph.Metrics is FontMetrics metrics) - size *= metrics.GlyphScale; + float size = getFontSize(texturedGlyph.Metrics); // Array.IndexOf is used to avoid LINQ if (font.FixedWidth && Array.IndexOf(neverFixedWidthCharacters, character) == -1) - glyph = new TextBuilderGlyph(fontStoreGlyph, size, getConstantWidth()); + glyph = new TextBuilderGlyph(texturedGlyph, size, getConstantWidth()); else - glyph = new TextBuilderGlyph(fontStoreGlyph, size); + glyph = new TextBuilderGlyph(texturedGlyph, size); return true; } @@ -399,5 +391,15 @@ private ITexturedCharacterGlyph getTexturedGlyph(char character) ?? store.Get(font.FontName, fallbackCharacter) ?? store.Get(null, fallbackCharacter); } + + private float getFontSize(FontMetrics? metrics) + { + float size = font.Size; + + if (font.CssScaling && metrics.HasValue) + size *= metrics.Value.GlyphScale; + + return size; + } } } From a6a41bfecbdafbdf0b9a422c5afde14a24e0b27d Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 10 May 2022 16:56:10 +0300 Subject: [PATCH 22/23] Fix out-of-sync constructor xmldoc `inheritdoc` is a life saver. --- osu.Framework/Text/MultilineTextBuilder.cs | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/osu.Framework/Text/MultilineTextBuilder.cs b/osu.Framework/Text/MultilineTextBuilder.cs index a62c911f35..b45c68b929 100644 --- a/osu.Framework/Text/MultilineTextBuilder.cs +++ b/osu.Framework/Text/MultilineTextBuilder.cs @@ -9,19 +9,7 @@ namespace osu.Framework.Text { public sealed class MultilineTextBuilder : TextBuilder { - /// - /// Creates a new . - /// - /// The store from which glyphs are to be retrieved from. - /// The font to use for glyph lookups from . - /// The maximum width of the resulting text bounds. - /// True to use (full glyph size) as the height for each line. False if the height of each individual glyph should be used. - /// The offset at which characters should begin being added at. - /// The spacing between characters. - /// That list to contain all resulting s. - /// The characters for which fixed width should never be applied. - /// The character to use if a glyph lookup fails. - /// The character to use to calculate the fixed width width. Defaults to 'm'. + /// public MultilineTextBuilder(ITexturedGlyphLookupStore store, FontUsage font, float maxWidth, bool useFullGlyphHeight = true, Vector2 startOffset = default, Vector2 spacing = default, List characterList = null, char[] neverFixedWidthCharacters = null, char fallbackCharacter = '?', char fixedWidthReferenceCharacter = 'm') : base(store, font, maxWidth, useFullGlyphHeight, startOffset, spacing, characterList, neverFixedWidthCharacters, fallbackCharacter, fixedWidthReferenceCharacter) From fecd0ee23899224e002ab85bac4c6112b3accbe9 Mon Sep 17 00:00:00 2001 From: Salman Ahmed Date: Tue, 10 May 2022 17:01:38 +0300 Subject: [PATCH 23/23] `css` -> `cssScaling` --- osu.Framework.Tests/Text/TextBuilderTest.cs | 10 +++++----- .../Visual/Sprites/TestSceneSpriteText.cs | 4 ++-- osu.Framework/Graphics/Sprites/FontUsage.cs | 12 ++++++------ 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/osu.Framework.Tests/Text/TextBuilderTest.cs b/osu.Framework.Tests/Text/TextBuilderTest.cs index 5556718657..d7b8b9fe18 100644 --- a/osu.Framework.Tests/Text/TextBuilderTest.cs +++ b/osu.Framework.Tests/Text/TextBuilderTest.cs @@ -605,7 +605,7 @@ public void TestNewLineAfterEmptyLineWithCssScaling() { var one = new FontMetrics(1000, 2000, 1000); var two = new FontMetrics(3000, 4000, 1000); - var font = new TestFontUsage("one", css: true); + var font = new TestFontUsage("one", cssScaling: true); var builder = new TextBuilder(new TestStore(new[] { @@ -633,22 +633,22 @@ private readonly struct TestFontUsage private readonly string weight; private readonly bool italics; private readonly bool fixedWidth; - private readonly bool css; + private readonly bool cssScaling; - public TestFontUsage(string family = null, string weight = null, bool italics = false, bool fixedWidth = false, bool css = false) + public TestFontUsage(string family = null, string weight = null, bool italics = false, bool fixedWidth = false, bool cssScaling = false) { this.family = family; this.weight = weight; this.italics = italics; this.fixedWidth = fixedWidth; - this.css = css; + this.cssScaling = cssScaling; } public TestFontUsage WithCssScaling() => new TestFontUsage(family, weight, italics, fixedWidth, true); public static implicit operator FontUsage(TestFontUsage tfu) - => new FontUsage(tfu.family, font_size, tfu.weight, tfu.italics, tfu.fixedWidth, tfu.css); + => new FontUsage(tfu.family, font_size, tfu.weight, tfu.italics, tfu.fixedWidth, tfu.cssScaling); } private class TestStore : IFontStore diff --git a/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs b/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs index 5559a3ba97..4a02a00d67 100644 --- a/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs +++ b/osu.Framework.Tests/Visual/Sprites/TestSceneSpriteText.cs @@ -69,7 +69,7 @@ public TestSceneSpriteText() SpriteText cssText = new SpriteText { Text = $@"Font testy at size {i} (CSS)", - Font = new FontUsage("Roboto", i, i % 4 > 1 ? "Bold" : "Regular", i % 2 == 1, css: true), + Font = new FontUsage("Roboto", i, i % 4 > 1 ? "Bold" : "Regular", i % 2 == 1, cssScaling: true), AllowMultiline = true, RelativeSizeAxes = Axes.X, }; @@ -151,7 +151,7 @@ private void load(TextureStore textures, FontStore fonts) new SpriteText { Colour = FrameworkColour.Green, - Font = FrameworkFont.Regular.With(size: font_size, css: true), + Font = FrameworkFont.Regular.With(size: font_size, cssScaling: true), Text = text, }, new Box diff --git a/osu.Framework/Graphics/Sprites/FontUsage.cs b/osu.Framework/Graphics/Sprites/FontUsage.cs index 5746f7af39..29c1df974e 100644 --- a/osu.Framework/Graphics/Sprites/FontUsage.cs +++ b/osu.Framework/Graphics/Sprites/FontUsage.cs @@ -75,18 +75,18 @@ namespace osu.Framework.Graphics.Sprites /// The font weight. /// Whether the font is italic. /// Whether all characters should be spaced the same distance apart. - /// + /// /// Whether the text glyphs should scale according to their respective , matching CSS. /// It is recommended to enable this for better alignment with other fonts. /// - public FontUsage([CanBeNull] string family = null, float size = default_text_size, [CanBeNull] string weight = null, bool italics = false, bool fixedWidth = false, bool css = false) + public FontUsage([CanBeNull] string family = null, float size = default_text_size, [CanBeNull] string weight = null, bool italics = false, bool fixedWidth = false, bool cssScaling = false) { Family = family; Size = size >= 0 ? size : throw new ArgumentOutOfRangeException(nameof(size), "Must be non-negative."); Weight = weight; Italics = italics; FixedWidth = fixedWidth; - CssScaling = css; + CssScaling = cssScaling; FontName = Family + "-"; if (!string.IsNullOrEmpty(weight)) @@ -106,14 +106,14 @@ public FontUsage([CanBeNull] string family = null, float size = default_text_siz /// The font weight. If null, the value is copied from this . /// Whether the font is italic. If null, the value is copied from this . /// Whether all characters should be spaced apart the same distance. If null, the value is copied from this . - /// + /// /// Whether the text glyphs should scale according to their respective , matching CSS. /// It is recommended to enable this for better alignment with other fonts. /// /// The resulting . public FontUsage With([CanBeNull] string family = null, [CanBeNull] float? size = null, [CanBeNull] string weight = null, [CanBeNull] bool? italics = null, - [CanBeNull] bool? fixedWidth = null, [CanBeNull] bool? css = null) - => new FontUsage(family ?? Family, size ?? Size, weight ?? Weight, italics ?? Italics, fixedWidth ?? FixedWidth, css ?? CssScaling); + [CanBeNull] bool? fixedWidth = null, [CanBeNull] bool? cssScaling = null) + => new FontUsage(family ?? Family, size ?? Size, weight ?? Weight, italics ?? Italics, fixedWidth ?? FixedWidth, cssScaling ?? CssScaling); public override string ToString() => $"Font={FontName}, Size={Size}, Italics={Italics}, FixedWidth={FixedWidth}, CssScaling={CssScaling}";