From dd88903df701b76cb4c52bd1f16e21a0f175d595 Mon Sep 17 00:00:00 2001 From: CalistaVerner Date: Thu, 25 Jun 2026 07:41:13 +0300 Subject: [PATCH 01/17] Improve atmospheric realism and sky texture controls --- .../java/jme3utilities/sky/SkyAtmosphere.java | 781 ++++++++++++++++++ .../java/jme3utilities/sky/SkyControl.java | 323 ++++++-- .../skies/earthlike-atmosphere.properties | 22 + 3 files changed, 1067 insertions(+), 59 deletions(-) create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphere.java create mode 100644 SkyLibrary/src/main/resources/Config/skies/earthlike-atmosphere.properties diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphere.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphere.java new file mode 100644 index 0000000..d3c8fc9 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphere.java @@ -0,0 +1,781 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky; + +import com.jme3.export.InputCapsule; +import com.jme3.export.JmeExporter; +import com.jme3.export.JmeImporter; +import com.jme3.export.OutputCapsule; +import com.jme3.export.Savable; +import com.jme3.math.ColorRGBA; +import com.jme3.util.clone.Cloner; +import com.jme3.util.clone.JmeCloneable; +import java.io.IOException; +import java.util.Properties; +import jme3utilities.Validate; + +/** + * Mutable atmospheric tuning profile used by SkyControl. + *

+ * The profile intentionally remains renderer-independent: it does not replace + * the existing dome shaders, but provides physically-inspired controls for + * daylight extinction, horizon warming, twilight length, cloud brightness, + * moonlight, starlight, ambient balance, bloom, and shadows. + *

+ * All color components are linear-space multipliers as expected by jME lights. + * Runtime code may either mutate the instance returned by + * {@link SkyControl#getAtmosphere()} or install a copied profile by invoking + * {@link SkyControl#setAtmosphere(SkyAtmosphere)}. + * + * @author Take Some + */ +public class SkyAtmosphere implements JmeCloneable, Savable { + // ************************************************************************* + // fields + + /** + * Strength of solar extinction through low atmosphere. + */ + private float airMassStrength = 0.85f; + /** + * Multiplier applied to ambient light computed from sky/cloud color. + */ + private float ambientScale = 1f; + /** + * Multiplier applied to generated bloom intensity. + */ + private float bloomScale = 1f; + /** + * Height of the sun where horizon color shift fades out. + */ + private float colorShiftAltitude = 0.35f; + /** + * Daytime cloud brightness multiplier. + */ + private float cloudDayBrightness = 0.95f; + /** + * Moonlight boost added to nighttime cloud brightness. + */ + private float cloudMoonBoost = 0.6f; + /** + * Minimum nighttime cloud brightness. + */ + private float cloudNight = 0.22f; + /** + * Height of the sun where daylight is considered fully established. + */ + private float fullDayAltitude = 0.25f; + /** + * Strength of low-altitude haze coloration. + */ + private float hazeStrength = 1f; + /** + * Upper clamp for generated bloom intensity. + */ + private float maxBloomIntensity = 1.7f; + /** + * Lower clamp for solar transmission at the horizon. + */ + private float minSunTransmission = 0.08f; + /** + * Multiplier applied to computed shadow intensity. + */ + private float shadowContrast = 1f; + /** + * Strength of warm color shift near sunrise and sunset. + */ + private float sunsetWarmth = 1f; + /** + * Twilight reach expressed as sine of solar depression below horizon. + */ + private float twilightLimit = 0.12f; + /** + * Full-moon light color. + */ + private ColorRGBA moonLight + = new ColorRGBA(0.25f, 0.28f, 0.42f, Constants.alphaMax); + /** + * Moonless-night light color. + */ + private ColorRGBA starLight + = new ColorRGBA(0.015f, 0.018f, 0.025f, Constants.alphaMax); + /** + * Full sunlight color before atmospheric extinction. + */ + private ColorRGBA sunLight + = new ColorRGBA(0.95f, 0.92f, 0.82f, Constants.alphaMax); + /** + * Horizon color around sunrise and sunset. + */ + private ColorRGBA twilightColor + = new ColorRGBA(0.95f, 0.36f, 0.12f, Constants.alphaMax); + // ************************************************************************* + // constructors + + /** + * Instantiate an Earth-like atmospheric profile. + */ + public SkyAtmosphere() { + // do nothing + } + // ************************************************************************* + // new methods exposed + + /** + * Apply overrides from Java properties. + *

+ * Recognized color keys use comma-separated components: r,g,b or r,g,b,a. + * Recognized keys are: airMassStrength, ambientScale, bloomScale, + * colorShiftAltitude, cloudDayBrightness, cloudMoonBoost, + * cloudNight, fullDayAltitude, hazeStrength, maxBloomIntensity, + * minSunTransmission, shadowContrast, sunsetWarmth, twilightLimit, + * moonLight, starLight, sunLight, and twilightColor. + * + * @param properties source properties (not null) + */ + public void apply(Properties properties) { + Validate.nonNull(properties, "properties"); + + setAirMassStrength(readFloat(properties, + "airMassStrength", airMassStrength)); + setAmbientScale(readFloat(properties, "ambientScale", ambientScale)); + setBloomScale(readFloat(properties, "bloomScale", bloomScale)); + setColorShiftAltitude(readFloat(properties, + "colorShiftAltitude", colorShiftAltitude)); + setCloudDayBrightness(readFloat(properties, + "cloudDayBrightness", cloudDayBrightness)); + setCloudMoonBoost(readFloat(properties, + "cloudMoonBoost", cloudMoonBoost)); + setCloudNight(readFloat(properties, + "cloudNight", cloudNight)); + setFullDayAltitude(readFloat(properties, + "fullDayAltitude", fullDayAltitude)); + setHazeStrength(readFloat(properties, "hazeStrength", hazeStrength)); + setMaxBloomIntensity(readFloat(properties, + "maxBloomIntensity", maxBloomIntensity)); + setMinSunTransmit(readFloat(properties, + "minSunTransmission", minSunTransmission)); + setShadowContrast(readFloat(properties, + "shadowContrast", shadowContrast)); + setSunsetWarmth(readFloat(properties, "sunsetWarmth", sunsetWarmth)); + setTwilightLimit(readFloat(properties, "twilightLimit", twilightLimit)); + + setMoonLight(readColor(properties, "moonLight", moonLight)); + setStarLight(readColor(properties, "starLight", starLight)); + setSunLight(readColor(properties, "sunLight", sunLight)); + setTwilightColor(readColor(properties, "twilightColor", twilightColor)); + } + + /** + * Copy this profile. + * + * @return a new profile equivalent to this one + */ + public SkyAtmosphere copy() { + SkyAtmosphere result = new SkyAtmosphere(); + result.copyFrom(this); + return result; + } + + /** + * Copy the moonlight color. + * + * @param storeResult storage for the result (modified if not null) + * @return copied color + */ + public ColorRGBA copyMoonLight(ColorRGBA storeResult) { + ColorRGBA result = copyColor(moonLight, storeResult); + return result; + } + + /** + * Copy the starlight color. + * + * @param storeResult storage for the result (modified if not null) + * @return copied color + */ + public ColorRGBA copyStarLight(ColorRGBA storeResult) { + ColorRGBA result = copyColor(starLight, storeResult); + return result; + } + + /** + * Copy the sunlight color. + * + * @param storeResult storage for the result (modified if not null) + * @return copied color + */ + public ColorRGBA copySunLight(ColorRGBA storeResult) { + ColorRGBA result = copyColor(sunLight, storeResult); + return result; + } + + /** + * Copy the twilight color. + * + * @param storeResult storage for the result (modified if not null) + * @return copied color + */ + public ColorRGBA copyTwilightColor(ColorRGBA storeResult) { + ColorRGBA result = copyColor(twilightColor, storeResult); + return result; + } + + /** + * Copy all tunables from another profile. + * + * @param source source profile (not null, unaffected) + */ + final public void copyFrom(SkyAtmosphere source) { + Validate.nonNull(source, "source"); + + this.airMassStrength = source.airMassStrength; + this.ambientScale = source.ambientScale; + this.bloomScale = source.bloomScale; + this.colorShiftAltitude = source.colorShiftAltitude; + this.cloudDayBrightness = source.cloudDayBrightness; + this.cloudMoonBoost = source.cloudMoonBoost; + this.cloudNight = source.cloudNight; + this.fullDayAltitude = source.fullDayAltitude; + this.hazeStrength = source.hazeStrength; + this.maxBloomIntensity = source.maxBloomIntensity; + this.minSunTransmission = source.minSunTransmission; + this.shadowContrast = source.shadowContrast; + this.sunsetWarmth = source.sunsetWarmth; + this.twilightLimit = source.twilightLimit; + this.moonLight = source.moonLight.clone(); + this.starLight = source.starLight.clone(); + this.sunLight = source.sunLight.clone(); + this.twilightColor = source.twilightColor.clone(); + } + + /** + * Return the strength of solar extinction through low atmosphere. + * + * @return extinction strength (≥0) + */ + public float getAirMassStrength() { + return airMassStrength; + } + + /** + * Return the ambient light scale. + * + * @return multiplier (≥0) + */ + public float getAmbientScale() { + return ambientScale; + } + + /** + * Return the bloom scale. + * + * @return multiplier (≥0) + */ + public float getBloomScale() { + return bloomScale; + } + + /** + * Return the altitude where warm horizon shift fades out. + * + * @return sine of solar altitude (>0, ≤1) + */ + public float getColorShiftAltitude() { + return colorShiftAltitude; + } + + /** + * Return the daytime cloud brightness multiplier. + * + * @return multiplier (≥0) + */ + public float getCloudDayBrightness() { + return cloudDayBrightness; + } + + /** + * Return the moonlight boost applied to clouds at night. + * + * @return multiplier (≥0) + */ + public float getCloudMoonBoost() { + return cloudMoonBoost; + } + + /** + * Return the minimum cloud brightness at night. + * + * @return multiplier (≥0) + */ + public float getCloudNight() { + return cloudNight; + } + + /** + * Return the altitude where daylight is fully established. + * + * @return sine of solar altitude (>0, ≤1) + */ + public float getFullDayAltitude() { + return fullDayAltitude; + } + + /** + * Return the strength of low-altitude haze coloration. + * + * @return fraction (≤1, ≥0) + */ + public float getHazeStrength() { + return hazeStrength; + } + + /** + * Return the bloom intensity clamp. + * + * @return intensity (≥0) + */ + public float getMaxBloomIntensity() { + return maxBloomIntensity; + } + + /** + * Return the lower clamp for solar transmission. + * + * @return fraction (≤1, ≥0) + */ + public float getMinSunTransmit() { + return minSunTransmission; + } + + /** + * Return the shadow contrast multiplier. + * + * @return multiplier (≥0) + */ + public float getShadowContrast() { + return shadowContrast; + } + + /** + * Return the strength of warm sunrise/sunset coloration. + * + * @return fraction (≤1, ≥0) + */ + public float getSunsetWarmth() { + return sunsetWarmth; + } + + /** + * Return twilight reach below the horizon. + * + * @return sine of solar depression (>0, ≤1) + */ + public float getTwilightLimit() { + return twilightLimit; + } + + /** + * Alter the strength of solar extinction through low atmosphere. + * + * @param strength desired extinction strength (≥0) + */ + public void setAirMassStrength(float strength) { + Validate.nonNegative(strength, "strength"); + this.airMassStrength = strength; + } + + /** + * Alter the ambient light scale. + * + * @param scale desired multiplier (≥0) + */ + public void setAmbientScale(float scale) { + Validate.nonNegative(scale, "scale"); + this.ambientScale = scale; + } + + /** + * Alter the bloom scale. + * + * @param scale desired multiplier (≥0) + */ + public void setBloomScale(float scale) { + Validate.nonNegative(scale, "scale"); + this.bloomScale = scale; + } + + /** + * Alter the altitude where warm horizon shift fades out. + * + * @param altitude sine of solar altitude (>0, ≤1) + */ + public void setColorShiftAltitude(float altitude) { + validatePosFraction(altitude, "altitude"); + this.colorShiftAltitude = altitude; + } + + /** + * Alter the daytime cloud brightness multiplier. + * + * @param brightness desired multiplier (≥0) + */ + public void setCloudDayBrightness(float brightness) { + Validate.nonNegative(brightness, "brightness"); + this.cloudDayBrightness = brightness; + } + + /** + * Alter the moonlight boost applied to clouds at night. + * + * @param boost desired multiplier (≥0) + */ + public void setCloudMoonBoost(float boost) { + Validate.nonNegative(boost, "boost"); + this.cloudMoonBoost = boost; + } + + /** + * Alter the minimum cloud brightness at night. + * + * @param brightness desired multiplier (≥0) + */ + public void setCloudNight(float brightness) { + Validate.nonNegative(brightness, "brightness"); + this.cloudNight = brightness; + } + + /** + * Alter the altitude where daylight is fully established. + * + * @param altitude sine of solar altitude (>0, ≤1) + */ + public void setFullDayAltitude(float altitude) { + validatePosFraction(altitude, "altitude"); + this.fullDayAltitude = altitude; + } + + /** + * Alter the strength of low-altitude haze coloration. + * + * @param strength desired fraction (≤1, ≥0) + */ + public void setHazeStrength(float strength) { + Validate.fraction(strength, "strength"); + this.hazeStrength = strength; + } + + /** + * Alter the bloom intensity clamp. + * + * @param intensity desired intensity (≥0) + */ + public void setMaxBloomIntensity(float intensity) { + Validate.nonNegative(intensity, "intensity"); + this.maxBloomIntensity = intensity; + } + + /** + * Alter the lower clamp for solar transmission. + * + * @param fraction desired fraction (≤1, ≥0) + */ + public void setMinSunTransmit(float fraction) { + Validate.fraction(fraction, "fraction"); + this.minSunTransmission = fraction; + } + + /** + * Alter the full-moon light color. + * + * @param color desired color (not null, unaffected) + */ + public void setMoonLight(ColorRGBA color) { + Validate.nonNull(color, "color"); + this.moonLight = color.clone(); + } + + /** + * Alter the shadow contrast multiplier. + * + * @param contrast desired multiplier (≥0) + */ + public void setShadowContrast(float contrast) { + Validate.nonNegative(contrast, "contrast"); + this.shadowContrast = contrast; + } + + /** + * Alter the moonless-night light color. + * + * @param color desired color (not null, unaffected) + */ + public void setStarLight(ColorRGBA color) { + Validate.nonNull(color, "color"); + this.starLight = color.clone(); + } + + /** + * Alter full sunlight color before atmospheric extinction. + * + * @param color desired color (not null, unaffected) + */ + public void setSunLight(ColorRGBA color) { + Validate.nonNull(color, "color"); + this.sunLight = color.clone(); + } + + /** + * Alter the strength of warm sunrise/sunset coloration. + * + * @param strength desired fraction (≤1, ≥0) + */ + public void setSunsetWarmth(float strength) { + Validate.fraction(strength, "strength"); + this.sunsetWarmth = strength; + } + + /** + * Alter twilight reach below the horizon. + * + * @param limit sine of solar depression (>0, ≤1) + */ + public void setTwilightLimit(float limit) { + validatePosFraction(limit, "limit"); + this.twilightLimit = limit; + } + + /** + * Alter horizon color around sunrise and sunset. + * + * @param color desired color (not null, unaffected) + */ + public void setTwilightColor(ColorRGBA color) { + Validate.nonNull(color, "color"); + this.twilightColor = color.clone(); + } + // ************************************************************************* + // JmeCloneable methods + + /** + * Convert this shallow-cloned profile into a deep-cloned one. + * + * @param cloner active cloner + * @param original the profile from which this profile was shallow-cloned + */ + @Override + public void cloneFields(Cloner cloner, Object original) { + this.moonLight = cloner.clone(moonLight); + this.starLight = cloner.clone(starLight); + this.sunLight = cloner.clone(sunLight); + this.twilightColor = cloner.clone(twilightColor); + } + + /** + * Create a shallow clone for the JME cloner. + * + * @return a new instance (not null) + */ + @Override + public SkyAtmosphere jmeClone() { + try { + SkyAtmosphere clone = (SkyAtmosphere) clone(); + return clone; + } catch (CloneNotSupportedException exception) { + throw new RuntimeException(exception); + } + } + // ************************************************************************* + // Object methods + + /** + * Clone this profile. + * + * @return new profile equivalent to this one + * @throws CloneNotSupportedException from Object.clone() + */ + @Override + public SkyAtmosphere clone() throws CloneNotSupportedException { + SkyAtmosphere clone = (SkyAtmosphere) super.clone(); + clone.moonLight = moonLight.clone(); + clone.starLight = starLight.clone(); + clone.sunLight = sunLight.clone(); + clone.twilightColor = twilightColor.clone(); + return clone; + } + // ************************************************************************* + // Savable methods + + /** + * De-serialize this profile, for example when loading from a J3O file. + * + * @param importer (not null) + * @throws IOException from importer + */ + @Override + public void read(JmeImporter importer) throws IOException { + InputCapsule capsule = importer.getCapsule(this); + + airMassStrength = capsule.readFloat("airMassStrength", 0.85f); + ambientScale = capsule.readFloat("ambientScale", 1f); + bloomScale = capsule.readFloat("bloomScale", 1f); + colorShiftAltitude = capsule.readFloat("colorShiftAltitude", 0.35f); + cloudDayBrightness = capsule.readFloat("cloudDayBrightness", 0.95f); + cloudMoonBoost = capsule.readFloat("cloudMoonBoost", 0.6f); + cloudNight = capsule.readFloat("cloudNight", 0.22f); + fullDayAltitude = capsule.readFloat("fullDayAltitude", 0.25f); + hazeStrength = capsule.readFloat("hazeStrength", 1f); + maxBloomIntensity = capsule.readFloat("maxBloomIntensity", 1.7f); + minSunTransmission + = capsule.readFloat("minSunTransmission", 0.08f); + shadowContrast = capsule.readFloat("shadowContrast", 1f); + sunsetWarmth = capsule.readFloat("sunsetWarmth", 1f); + twilightLimit = capsule.readFloat("twilightLimit", 0.12f); + moonLight = (ColorRGBA) capsule.readSavable( + "moonLight", + new ColorRGBA(0.25f, 0.28f, 0.42f, Constants.alphaMax)); + starLight = (ColorRGBA) capsule.readSavable( + "starLight", + new ColorRGBA(0.015f, 0.018f, 0.025f, Constants.alphaMax)); + sunLight = (ColorRGBA) capsule.readSavable( + "sunLight", + new ColorRGBA(0.95f, 0.92f, 0.82f, Constants.alphaMax)); + twilightColor = (ColorRGBA) capsule.readSavable( + "twilightColor", + new ColorRGBA(0.95f, 0.36f, 0.12f, Constants.alphaMax)); + } + + /** + * Serialize this profile, for example when saving to a J3O file. + * + * @param exporter (not null) + * @throws IOException from exporter + */ + @Override + public void write(JmeExporter exporter) throws IOException { + OutputCapsule capsule = exporter.getCapsule(this); + + capsule.write(airMassStrength, "airMassStrength", 0.85f); + capsule.write(ambientScale, "ambientScale", 1f); + capsule.write(bloomScale, "bloomScale", 1f); + capsule.write(colorShiftAltitude, "colorShiftAltitude", 0.35f); + capsule.write(cloudDayBrightness, "cloudDayBrightness", 0.95f); + capsule.write(cloudMoonBoost, "cloudMoonBoost", 0.6f); + capsule.write(cloudNight, "cloudNight", 0.22f); + capsule.write(fullDayAltitude, "fullDayAltitude", 0.25f); + capsule.write(hazeStrength, "hazeStrength", 1f); + capsule.write(maxBloomIntensity, "maxBloomIntensity", 1.7f); + capsule.write(minSunTransmission, "minSunTransmission", 0.08f); + capsule.write(shadowContrast, "shadowContrast", 1f); + capsule.write(sunsetWarmth, "sunsetWarmth", 1f); + capsule.write(twilightLimit, "twilightLimit", 0.12f); + capsule.write(moonLight, "moonLight", null); + capsule.write(starLight, "starLight", null); + capsule.write(sunLight, "sunLight", null); + capsule.write(twilightColor, "twilightColor", null); + } + // ************************************************************************* + // private methods + + /** + * Copy a color. + * + * @param source source color (not null) + * @param storeResult storage for the result (modified if not null) + * @return copied color + */ + private static ColorRGBA copyColor( + ColorRGBA source, ColorRGBA storeResult) { + ColorRGBA result = (storeResult == null) + ? new ColorRGBA() : storeResult; + result.set(source); + return result; + } + + /** + * Read a color override from properties. + * + * @param properties source properties (not null) + * @param key property key (not null) + * @param fallback fallback color (not null) + * @return parsed or fallback color + */ + private static ColorRGBA readColor( + Properties properties, String key, ColorRGBA fallback) { + String text = properties.getProperty(key); + if (text == null) { + return fallback; + } + + String[] components = text.split(","); + if (components.length != 3 && components.length != 4) { + throw new IllegalArgumentException( + key + " should contain r,g,b or r,g,b,a"); + } + float r = Float.parseFloat(components[0].trim()); + float g = Float.parseFloat(components[1].trim()); + float b = Float.parseFloat(components[2].trim()); + float a = (components.length == 4) + ? Float.parseFloat(components[3].trim()) : fallback.a; + ColorRGBA result = new ColorRGBA(r, g, b, a); + + return result; + } + + /** + * Read a float override from properties. + * + * @param properties source properties (not null) + * @param key property key (not null) + * @param fallback fallback value + * @return parsed or fallback value + */ + private static float readFloat( + Properties properties, String key, float fallback) { + String text = properties.getProperty(key); + if (text == null) { + return fallback; + } + float result = Float.parseFloat(text.trim()); + + return result; + } + + /** + * Validate a positive fraction. + * + * @param value value to validate + * @param description value description (not null) + */ + private static void validatePosFraction( + float value, String description) { + if (!(value > 0f && value <= 1f)) { + throw new IllegalArgumentException( + description + " should be greater than 0" + + " and no more than 1"); + } + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java index c4263b2..6122bbe 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java @@ -84,31 +84,6 @@ public class SkyControl extends SkyControlCore { // ************************************************************************* // constants and loggers - /** - * light color and intensity for full moonlight: bluish gray - */ - final private static ColorRGBA moonLight - = new ColorRGBA(0.4f, 0.4f, 0.6f, Constants.alphaMax); - /** - * light color and intensity for moonless night: nearly black - */ - final private static ColorRGBA starLight - = new ColorRGBA(0.03f, 0.03f, 0.03f, Constants.alphaMax); - /** - * light color and intensity for full sunlight: yellowish white - */ - final private static ColorRGBA sunLight - = new ColorRGBA(0.8f, 0.8f, 0.75f, Constants.alphaMax); - /** - * color blended in around sunrise and sunset: ruddy orange - */ - final private static ColorRGBA twilight - = new ColorRGBA(0.6f, 0.3f, 0.15f, Constants.alphaMax); - /** - * extent of the twilight periods before sunrise and after sunset, expressed - * as the sine of the sun's angle below the horizon (≤1, ≥0) - */ - final private static float limitOfTwilight = 0.1f; /** * object index for the moon */ @@ -169,6 +144,12 @@ public class SkyControl extends SkyControlCore { * lights, shadows, and viewports to update */ private Updater updater = null; + /** atmospheric lighting and realism profile */ + private SkyAtmosphere atmosphere = new SkyAtmosphere(); + /** custom moon texture asset path, or null to use the phase preset */ + private String moonAssetPath = null; + /** custom moon texture object, or null for phase preset or path */ + private Texture moonColorMap = null; // ************************************************************************* // constructors @@ -262,6 +243,29 @@ public Updater getUpdater() { return updater; } + /** + * Access the atmospheric tuning profile. + * + * @return the pre-existing mutable profile (not null) + */ + public SkyAtmosphere getAtmosphere() { + assert atmosphere != null; + return atmosphere; + } + + /** + * Replace the atmospheric tuning profile. + *

+ * The specified profile is copied, so later caller-side mutation will not + * alter this control. + * + * @param newAtmosphere desired profile (not null, unaffected) + */ + public void setAtmosphere(SkyAtmosphere newAtmosphere) { + Validate.nonNull(newAtmosphere, "atmosphere"); + this.atmosphere = newAtmosphere.copy(); + } + /** * Calculate the angular diameter of the moon. * @@ -342,12 +346,51 @@ public void setMoonRenderer(GlobeRenderer newRenderer) { this.moonRenderer = newRenderer; if (moonRenderer.isEnabled()) { + this.moonAssetPath = null; + this.moonColorMap = null; Texture dynamicTexture = moonRenderer.getTexture(); SkyMaterial topMaterial = getTopMaterial(); topMaterial.addObject(moonIndex, dynamicTexture); } } + /** Remove any custom moon texture and return to phase-preset images. */ + public void clearMoonTexture() { + this.moonAssetPath = null; + this.moonColorMap = null; + setPhase(phase); + } + + /** + * Alter the moon's color map texture using an asset path. + * + * @param assetPath path to the texture asset (not null, not empty) + */ + public void setMoonTexture(String assetPath) { + Validate.nonEmpty(assetPath, "asset path"); + this.moonAssetPath = assetPath; + this.moonColorMap = null; + if (moonRenderer != null) { + moonRenderer.setEnabled(false); + } + applyMoonTexture(); + } + + /** + * Alter the moon's color map texture using a pre-loaded texture. + * + * @param colorMap texture to apply (not null) + */ + public void setMoonTexture(Texture colorMap) { + Validate.nonNull(colorMap, "texture"); + this.moonAssetPath = null; + this.moonColorMap = colorMap; + if (moonRenderer != null) { + moonRenderer.setEnabled(false); + } + applyMoonTexture(); + } + /** * Alter the phase of the moon to a pre-set value. * @@ -365,14 +408,15 @@ final public void setPhase(LunarPhase newPreset) { this.phase = newPreset; if (newPreset != null) { this.longitudeDifference = newPreset.longitudeDifference(); - SkyMaterial topMaterial = getTopMaterial(); - - String assetPath = newPreset.imagePath(""); - try { - topMaterial.addObject(moonIndex, assetPath); - } catch (AssetNotFoundException exception) { - assetPath = newPreset.imagePath("-nonviral"); - topMaterial.addObject(moonIndex, assetPath); + if (!applyMoonTexture()) { + SkyMaterial topMaterial = getTopMaterial(); + String assetPath = newPreset.imagePath(""); + try { + topMaterial.addObject(moonIndex, assetPath); + } catch (AssetNotFoundException exception) { + assetPath = newPreset.imagePath("-nonviral"); + topMaterial.addObject(moonIndex, assetPath); + } } } } @@ -396,6 +440,8 @@ public void setPhase(float longitudeDifference, float lunarLatitude) { this.phase = LunarPhase.CUSTOM; this.longitudeDifference = longitudeDifference; this.lunarLatitude = lunarLatitude; + this.moonAssetPath = null; + this.moonColorMap = null; Texture dynamicTexture = moonRenderer.getTexture(); SkyMaterial topMaterial = getTopMaterial(); @@ -421,28 +467,81 @@ public void setSolarDiameter(float newDiameter) { /** * Alter the sun's color map. * - * @param assetPath to new color map (not null) + * @param assetPath path to the texture asset (not null, not empty) */ final public void setSunStyle(String assetPath) { - Validate.nonNull(assetPath, "path"); + setSunTexture(assetPath); + } + /** + * Alter the sun's color map texture using an asset path. + * + * @param assetPath path to the texture asset (not null, not empty) + */ + public void setSunTexture(String assetPath) { + Validate.nonEmpty(assetPath, "asset path"); SkyMaterial topMaterial = getTopMaterial(); topMaterial.addObject(sunIndex, assetPath); } + /** + * Alter the sun's color map texture using a pre-loaded texture. + * + * @param colorMap texture to apply (not null) + */ + public void setSunTexture(Texture colorMap) { + Validate.nonNull(colorMap, "texture"); + setObjectTexture(sunIndex, colorMap); + } + /** * Calculate the angular diameter of the sun. * * @return diameter (in radians, <Pi, >0) */ public float solarDiameter() { - float result = moonScale * Constants.discDiameter * FastMath.HALF_PI + float result = sunScale * Constants.discDiameter * FastMath.HALF_PI / Constants.uvScale; assert result > 0f : result; assert result < FastMath.PI : result; return result; } + + /** + * Update cloud colors using the atmospheric profile. + *

+ * Subclasses overriding this method should preserve the contract of + * returning the color used for ambient-light estimation and should update + * every configured cloud layer. + * + * @param baseColor source color (not null, unaffected) + * @param sunUp true if the sun is above the horizon, otherwise false + * @param moonUp true if the moon is above the horizon, otherwise false + * @return new color used for ambient-light estimation + */ + @Override + protected ColorRGBA updateCloudsColor( + ColorRGBA baseColor, boolean sunUp, boolean moonUp) { + assert baseColor != null; + + ColorRGBA cloudsColor = MyColor.saturate(baseColor); + float brightness = atmosphere.getCloudDayBrightness(); + if (!sunUp) { + brightness = atmosphere.getCloudNight(); + if (moonUp) { + brightness += atmosphere.getCloudMoonBoost() + * getMoonIllumination(); + } + } + cloudsColor.multLocal(brightness); + for (int layer = 0; layer < numCloudLayers; ++layer) { + cloudLayers[layer].setColor(cloudsColor); + } + + return cloudsColor; + } + // ************************************************************************* // SkyControlCore methods @@ -471,6 +570,8 @@ public void cloneFields(Cloner cloner, Object original) { this.colorDay = cloner.clone(colorDay); this.moonRenderer = cloner.clone(moonRenderer); + this.moonColorMap = cloner.clone(moonColorMap); + this.atmosphere = cloner.clone(atmosphere); this.sunAndStars = cloner.clone(sunAndStars); this.updater = cloner.clone(updater); } @@ -501,6 +602,10 @@ public void read(JmeImporter importer) throws IOException { this.colorDay = (ColorRGBA) ic.readSavable( "colorDay", new ColorRGBA(0.4f, 0.6f, 1f, Constants.alphaMax)); this.moonScale = ic.readFloat("moonScale", 0.02f); + this.moonAssetPath = ic.readString("moonAssetPath", null); + this.moonColorMap = (Texture) ic.readSavable("moonColorMap", null); + this.atmosphere = (SkyAtmosphere) ic.readSavable( + "atmosphere", new SkyAtmosphere()); this.sunScale = ic.readFloat("sunScale", 0.08f); // moon renderer not serialized this.phase = ic.readEnum("phase", LunarPhase.class, LunarPhase.FULL); @@ -523,6 +628,9 @@ public void write(JmeExporter exporter) throws IOException { oc.write(colorDay, "colorDay", new ColorRGBA(0.4f, 0.6f, 1f, Constants.alphaMax)); oc.write(moonScale, "moonScale", 0.02f); + oc.write(moonAssetPath, "moonAssetPath", null); + oc.write(moonColorMap, "moonColorMap", null); + oc.write(atmosphere, "atmosphere", null); oc.write(sunScale, "sunScale", 0.08f); // moon renderer not serialized oc.write(phase, "phase", LunarPhase.FULL); @@ -532,6 +640,75 @@ public void write(JmeExporter exporter) throws IOException { // ************************************************************************* // private methods + /** + * Apply the custom moon texture, if one has been specified. + * + * @return true if a custom texture was applied, otherwise false + */ + private boolean applyMoonTexture() { + SkyMaterial topMaterial = getTopMaterial(); + if (moonColorMap != null) { + topMaterial.addObject(moonIndex, moonColorMap); + return true; + } else if (moonAssetPath != null) { + topMaterial.addObject(moonIndex, moonAssetPath); + return true; + } + + return false; + } + + /** + * Approximate solar transmission through the atmosphere. + * + * @param sineSolarAltitude sine of the solar altitude + * @return transmission fraction between 0 and 1 + */ + private float airMassTransmission(float sineSolarAltitude) { + float altitude = FastMath.clamp(sineSolarAltitude, 0.01f, 1f); + float opticalMass = 1f / (altitude + 0.15f + * (float) Math.pow(altitude + 0.1f, 1.25)); + float extinction = (float) Math.exp(-0.18f + * atmosphere.getAirMassStrength() * (opticalMass - 1f)); + float result = FastMath.clamp(extinction, + atmosphere.getMinSunTransmit(), 1f); + + return result; + } + + /** + * Compute daylight color after approximate atmospheric extinction. + * + * @param sineSolarAltitude sine of the solar altitude + * @return new color + */ + private ColorRGBA daylightColor(float sineSolarAltitude) { + ColorRGBA result = atmosphere.copySunLight(null); + float transmission = airMassTransmission(sineSolarAltitude); + float warmWeight = 1f - smoothStep( + sineSolarAltitude / atmosphere.getColorShiftAltitude()); + float shift = warmWeight * atmosphere.getSunsetWarmth(); + + result.g *= 1f - 0.35f * shift; + result.b *= 1f - 0.75f * shift; + result.multLocal(transmission); + + return result; + } + + /** + * Smoothly remap a value from 0..1 to 0..1. + * + * @param input input value + * @return smoothed fraction + */ + private static float smoothStep(float input) { + float x = FastMath.saturate(input); + float result = x * x * (3f - 2f * x); + + return result; + } + /** * Compute where mainDirection intersects the cloud dome in the dome's local * coordinates, accounting for the dome's flattening and vertical offset. @@ -657,7 +834,8 @@ private void updateAll() { */ Vector3f sunDirection = updateSun(); ColorRGBA clearColor = colorDay.clone(); - clearColor.a = FastMath.saturate(1f + sunDirection.y / limitOfTwilight); + float twilightLimit = atmosphere.getTwilightLimit(); + clearColor.a = FastMath.saturate(1f + sunDirection.y / twilightLimit); SkyMaterial topMaterial = getTopMaterial(); topMaterial.setClearColor(clearColor); @@ -716,21 +894,32 @@ private void updateLighting(Vector3f sunDirection, Vector3f moonDirection) { * + blend of moonlight and starlight when ssa <= -0.04, * with linearly interpolated transitions. */ + ColorRGBA twilightColor = atmosphere.copyTwilightColor(null); + ColorRGBA sunColor = daylightColor(sineSolarAltitude); + ColorRGBA moonColor = atmosphere.copyMoonLight(null); + ColorRGBA starColor = atmosphere.copyStarLight(null); ColorRGBA baseColor; if (sunUp) { - float dayWeight = FastMath.saturate(sineSolarAltitude / 0.25f); + float dayWeight = smoothStep( + sineSolarAltitude / atmosphere.getFullDayAltitude()); baseColor = MyColor.interpolateLinear( - dayWeight, twilight, sunLight); + dayWeight, twilightColor, sunColor); + float hazeWeight = atmosphere.getHazeStrength() + * (1f - dayWeight) * 0.5f; + baseColor = MyColor.interpolateLinear( + hazeWeight, baseColor, twilightColor); } else { ColorRGBA blend; if (moonUp && moonWeight > 0f) { blend = MyColor.interpolateLinear( - moonWeight, starLight, moonLight); + moonWeight, starColor, moonColor); } else { - blend = starLight; + blend = starColor; } - float nightWeight = FastMath.saturate(-sineSolarAltitude / 0.04f); - baseColor = MyColor.interpolateLinear(nightWeight, twilight, blend); + float nightWeight = smoothStep( + -sineSolarAltitude / atmosphere.getTwilightLimit()); + baseColor = MyColor.interpolateLinear( + nightWeight, twilightColor, blend); } SkyMaterial topMaterial = getTopMaterial(); topMaterial.setHazeColor(baseColor); @@ -762,19 +951,23 @@ private void updateLighting(Vector3f sunDirection, Vector3f moonDirection) { * By day, the main light has the base color, modulated by * clouds and the cube root of the sine of the sun's altitude. */ - float sunFactor = transmit * MyMath.cubeRoot(sineSolarAltitude); - main = baseColor.mult(sunFactor); + float altitudeFactor = MyMath.cubeRoot( + FastMath.saturate(sineSolarAltitude)); + float sunFactor = transmit * altitudeFactor; + main = sunColor.mult(sunFactor); } else if (moonUp) { /* * By night, the main light is a blend of moonlight and starlight, * with the moon's portion modulated by clouds and the moon's phase. */ - float moonFactor = transmit * moonWeight; - main = MyColor.interpolateLinear(moonFactor, starLight, moonLight); + float lunarAltitudeFactor = MyMath.cubeRoot( + FastMath.saturate(sineLunarAltitude)); + float moonFactor = transmit * moonWeight * lunarAltitudeFactor; + main = MyColor.interpolateLinear(moonFactor, starColor, moonColor); } else { - main = starLight.clone(); + main = starColor.clone(); } /* * The ambient light color is based on the clouds color; @@ -783,7 +976,8 @@ private void updateLighting(Vector3f sunDirection, Vector3f moonDirection) { */ float slack = 1f - MyMath.max(main.r, main.g, main.b); assert slack >= 0f : slack; - ColorRGBA ambient = cloudsColor.mult(slack); + ColorRGBA ambient = cloudsColor.mult( + slack * atmosphere.getAmbientScale()); /* * Compute the recommended shadow intensity as the fraction of * the total directional light. @@ -793,10 +987,14 @@ private void updateLighting(Vector3f sunDirection, Vector3f moonDirection) { float totalAmount = mainAmount + ambientAmount; assert totalAmount > 0f : totalAmount; float shadowIntensity = FastMath.saturate(mainAmount / totalAmount); + shadowIntensity = FastMath.saturate( + shadowIntensity * atmosphere.getShadowContrast()); // Determine the recommended bloom intensity using the sun's altitude. - float bloomIntensity = 6f * sineSolarAltitude; - bloomIntensity = FastMath.clamp(bloomIntensity, 0f, 1.7f); + float bloomIntensity = 6f * atmosphere.getBloomScale() + * sineSolarAltitude; + bloomIntensity = FastMath.clamp( + bloomIntensity, 0f, atmosphere.getMaxBloomIntensity()); updater.update(ambient, baseColor, main, bloomIntensity, shadowIntensity, mainDirection); @@ -857,19 +1055,26 @@ private void updateObjectColors( assert sineLunarAltitude <= 1f : sineLunarAltitude; assert sineLunarAltitude >= -1f : sineLunarAltitude; - // Update the sun's color. - float green = FastMath.saturate(3f * sineSolarAltitude); - float blue = FastMath.saturate(sineSolarAltitude - 0.1f); - ColorRGBA sunColor = new ColorRGBA(1f, green, blue, Constants.alphaMax); + // Update the sun's color and glow. + float sunVisibility = FastMath.saturate( + 1f + sineSolarAltitude / atmosphere.getTwilightLimit()); + ColorRGBA sunColor = daylightColor(sineSolarAltitude); + sunColor.a = Constants.alphaMax * sunVisibility; SkyMaterial topMaterial = getTopMaterial(); topMaterial.setObjectColor(sunIndex, sunColor); topMaterial.setObjectGlow(sunIndex, sunColor); // Update the moon's color. - green = FastMath.saturate(2f * sineLunarAltitude + 0.6f); - blue = FastMath.saturate(5f * sineLunarAltitude + 0.1f); - ColorRGBA moonColor - = new ColorRGBA(1f, green, blue, Constants.alphaMax); + float moonVisibility = FastMath.saturate( + 2f * sineLunarAltitude + 0.6f); + float moonWarmth = 1f - smoothStep( + (sineLunarAltitude + 0.02f) / 0.25f); + float moonShift = moonWarmth * atmosphere.getSunsetWarmth(); + ColorRGBA moonColor = atmosphere.copyMoonLight(null); + moonColor.g *= 1f - 0.15f * moonShift; + moonColor.b *= 1f - 0.35f * moonShift; + moonColor.multLocal(moonVisibility); + moonColor.a = Constants.alphaMax; topMaterial.setObjectColor(moonIndex, moonColor); } diff --git a/SkyLibrary/src/main/resources/Config/skies/earthlike-atmosphere.properties b/SkyLibrary/src/main/resources/Config/skies/earthlike-atmosphere.properties new file mode 100644 index 0000000..e8ab425 --- /dev/null +++ b/SkyLibrary/src/main/resources/Config/skies/earthlike-atmosphere.properties @@ -0,0 +1,22 @@ +# Earth-like atmospheric tuning profile for SkyControl. +# Color values use r,g,b,a linear multipliers. + +airMassStrength=0.85 +ambientScale=1.0 +bloomScale=1.0 +colorShiftAltitude=0.35 +cloudDayBrightness=0.95 +cloudMoonBoost=0.60 +cloudNight=0.22 +fullDayAltitude=0.25 +hazeStrength=1.0 +maxBloomIntensity=1.70 +minSunTransmission=0.08 +shadowContrast=1.0 +sunsetWarmth=1.0 +twilightLimit=0.12 + +moonLight=0.25,0.28,0.42,1.0 +starLight=0.015,0.018,0.025,1.0 +sunLight=0.95,0.92,0.82,1.0 +twilightColor=0.95,0.36,0.12,1.0 From 33a743d9300645cd5b0d9275ed76bf7b0486fc10 Mon Sep 17 00:00:00 2001 From: CalistaVerner Date: Thu, 25 Jun 2026 07:54:33 +0300 Subject: [PATCH 02/17] Add GitHub Packages and release publishing --- .github/workflows/release.yml | 66 +++++++++++++++++++++++++++++++++++ PACKAGE.md | 36 +++++++++++++++++++ SkyLibrary/build.gradle | 41 ++++++++++++++-------- build.gradle | 22 +++++++++--- settings.gradle | 4 +-- 5 files changed, 148 insertions(+), 21 deletions(-) create mode 100644 .github/workflows/release.yml create mode 100644 PACKAGE.md diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..6f2ccce --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,66 @@ +name: Release + +on: + push: + tags: + - 'v*' + workflow_dispatch: + inputs: + version: + description: 'Release version without the v prefix, for example 1.0.0' + required: true + default: '1.0.0' + +permissions: + contents: write + packages: write + +jobs: + release: + runs-on: windows-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Resolve version + id: version + shell: bash + run: | + if [[ "${GITHUB_REF}" == refs/tags/v* ]]; then + VERSION="${GITHUB_REF_NAME#v}" + else + VERSION="${{ github.event.inputs.version }}" + fi + echo "version=${VERSION}" >> "${GITHUB_OUTPUT}" + echo "Resolved release version: ${VERSION}" + + - name: Set up JDK + uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '17' + cache: gradle + + - name: Build and check + shell: cmd + run: gradlew.bat :SkyLibrary:checkstyleMain -PskySimulationVersion=${{ steps.version.outputs.version }} + + - name: Publish to GitHub Packages + shell: cmd + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gradlew.bat publishGithubPackage -PskySimulationVersion=${{ steps.version.outputs.version }} + + - name: Create GitHub Release + uses: softprops/action-gh-release@v2 + with: + tag_name: v${{ steps.version.outputs.version }} + name: SkySimulation v${{ steps.version.outputs.version }} + generate_release_notes: true + files: | + SkyLibrary/build/libs/sky-simulation-${{ steps.version.outputs.version }}.jar + SkyLibrary/build/libs/sky-simulation-${{ steps.version.outputs.version }}-sources.jar + SkyLibrary/build/libs/sky-simulation-${{ steps.version.outputs.version }}-javadoc.jar + SkyLibrary/build/libs/sky-simulation-${{ steps.version.outputs.version }}.pom + SkyLibrary/build/libs/sky-simulation-${{ steps.version.outputs.version }}.module diff --git a/PACKAGE.md b/PACKAGE.md new file mode 100644 index 0000000..5a9c6ab --- /dev/null +++ b/PACKAGE.md @@ -0,0 +1,36 @@ +# Take Some SkySimulation package + +Internal Maven/Gradle package coordinates: + +```kotlin +implementation("dev.takesome:sky-simulation:1.0.0-SNAPSHOT") +``` + +Install the package into Maven Local: + +```bat +gradlew.bat packageLocal +``` + +Use it from another Gradle project: + +```kotlin +repositories { + mavenLocal() + mavenCentral() +} + +dependencies { + implementation("dev.takesome:sky-simulation:1.0.0-SNAPSHOT") +} +``` + +The Java package namespace remains compatible with SkyControl: + +```java +import jme3utilities.sky.SkyControl; +import jme3utilities.sky.SkyAtmosphere; +``` + +This avoids breaking existing code while publishing the artifact under Take Some +coordinates. diff --git a/SkyLibrary/build.gradle b/SkyLibrary/build.gradle index a2a7bbc..17957c0 100644 --- a/SkyLibrary/build.gradle +++ b/SkyLibrary/build.gradle @@ -1,4 +1,4 @@ -// Gradle script to build and publish the SkyLibrary subproject of SkyControl +// Gradle script to build and publish the SkyLibrary package // Note: "common.gradle" in the root project contains additional initialization // for this project. This initialization is applied in the "build.gradle" @@ -11,11 +11,11 @@ plugins { } ext { - group = 'com.github.stephengold' - artifact = 'SkyControl' - version = skycontrolVersion + group = rootProject.ext.skySimulationGroup + artifact = rootProject.ext.skySimulationArtifact + version = rootProject.ext.skySimulationVersion baseName = "${artifact}-${version}" // for artifacts - websiteUrl = 'https://github.com/stephengold/SkyControl' + websiteUrl = 'https://github.com/CalistaVerner/SkySimulation' } processResources.dependsOn(':SkyAssets:skyTextures') @@ -32,11 +32,11 @@ dependencies { tasks.register('install') { dependsOn 'publishMavenPublicationToMavenLocal' - description = 'Installs the Maven artifacts to the local repository.' + description = 'Installs the Take Some SkySimulation package to Maven Local.' } tasks.register('release') { dependsOn 'publishMavenPublicationToCentralRepository' - description = 'Stages the Maven artifacts to the Central Publisher Portal.' + description = 'Stages the Maven artifacts to the configured repository.' } jar { @@ -95,12 +95,11 @@ publishing { from components.java groupId = project.ext.group pom { - description = 'A sky-simulation library for jMonkeyEngine' + description = 'Take Some internal sky-simulation library for jMonkeyEngine' developers { developer { - email = 'sgold@sonic.net' - id = 'stephengold' - name = 'Stephen Gold' + id = 'takesome' + name = 'Take Some' } } licenses { @@ -112,8 +111,8 @@ publishing { } name = project.ext.group + ':' + artifact scm { - connection = 'scm:git:git://github.com/stephengold/SkyControl.git' - developerConnection = 'scm:git:ssh://github.com:stephengold/SkyControl.git' + connection = 'scm:git:https://github.com/CalistaVerner/SkySimulation.git' + developerConnection = 'scm:git:https://github.com/CalistaVerner/SkySimulation.git' url = project.ext.websiteUrl + '/tree/master' } url = project.ext.websiteUrl @@ -134,13 +133,27 @@ publishing { name = 'Central' url = 'https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/' } + maven { + name = 'GitHubPackages' + url = uri('https://maven.pkg.github.com/CalistaVerner/SkySimulation') + credentials { + username = findProperty('gpr.user') ?: System.getenv('GITHUB_ACTOR') + password = findProperty('gpr.key') ?: System.getenv('GITHUB_TOKEN') + } + } } } generateMetadataFileForMavenPublication.dependsOn('pom') publishMavenPublicationToMavenLocal.dependsOn('assemble') publishMavenPublicationToMavenLocal.doLast { - println 'installed locally as ' + baseName + println 'installed locally as ' + project.ext.group + ':' \ + + artifact + ':' + project.ext.version +} +tasks.register('publishGithubPackage') { + dependsOn 'publishMavenPublicationToGitHubPackagesRepository' + description = 'Publishes the Take Some SkySimulation package to GitHub Packages.' } +publishMavenPublicationToGitHubPackagesRepository.dependsOn('assemble') publishMavenPublicationToCentralRepository.dependsOn('assemble') // Register tasks to sign the Maven artifacts for publication: diff --git a/build.gradle b/build.gradle index e8b0b75..198de37 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,4 @@ -// Gradle script to build the SkyControl project +// Gradle script to build the SkySimulation project plugins { id 'base' // to add a "clean" task to the root project @@ -6,9 +6,13 @@ plugins { ext { jmeTarget = '' // distinguish non-JME libraries built for specific JME releases - skySnapshot = '-SNAPSHOT' // for development builds - //skySnapshot = '' // for release builds - skycontrolVersion = '1.1.1' + jmeTarget + skySnapshot + skySimulationBaseVersion = '1.0.0' + skySnapshot = hasProperty('releaseBuild') ? '' : '-SNAPSHOT' + skySimulationGroup = 'dev.takesome' + skySimulationArtifact = 'sky-simulation' + skySimulationVersion = (findProperty('skySimulationVersion') + ?: skySimulationBaseVersion + jmeTarget + skySnapshot).toString() + skycontrolVersion = skySimulationVersion // compatibility alias } subprojects { @@ -34,7 +38,15 @@ tasks.register('checkstyle') { tasks.register('install') { dependsOn ':SkyLibrary:install' - description = 'Installs the Maven artifacts to the local repository.' + description = 'Installs the Take Some SkySimulation package to Maven Local.' +} +tasks.register('packageLocal') { + dependsOn ':SkyLibrary:install' + description = 'Builds and installs dev.takesome:sky-simulation locally.' +} +tasks.register('publishGithubPackage') { + dependsOn ':SkyLibrary:publishGithubPackage' + description = 'Publishes dev.takesome:sky-simulation to GitHub Packages.' } tasks.register('release') { dependsOn ':SkyLibrary:release' diff --git a/settings.gradle b/settings.gradle index 1415978..4f522d2 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,6 +1,6 @@ -// global build settings for the SkyControl project +// global build settings for the SkySimulation project -rootProject.name = 'SkyControl' +rootProject.name = 'SkySimulation' dependencyResolutionManagement { repositories { From b3461679fcef305a9bb3ec651e2a8d1977d9496b Mon Sep 17 00:00:00 2001 From: CalistaVerner Date: Thu, 25 Jun 2026 07:59:33 +0300 Subject: [PATCH 03/17] Update README for Take Some SkySimulation --- README.md | 429 +++++++++++------------------------------------------- 1 file changed, 88 insertions(+), 341 deletions(-) diff --git a/README.md b/README.md index 1387331..29481d1 100644 --- a/README.md +++ b/README.md @@ -1,381 +1,128 @@ -SkyControl logo +# SkySimulation -[The SkyControl Project][skycontrol] provides a sky-simulation library for -[the jMonkeyEngine (JME) game engine][jme]. +**SkySimulation** is the Take Some() sky and atmosphere package for Java / jMonkeyEngine worlds. -It contains 3 subprojects: +We are **Take Some()** — a small engineering team building game-runtime infrastructure: simulation systems, rendering tools, world technology, and reusable engine modules for our own projects. -1. SkyLibrary: the SkyControl runtime library and its automated tests -2. SkyExamples: example applications -3. SkyAssets: generate textures included in the library +This repository turns the original SkyControl-style sky runtime into a Take Some() package with practical controls for modern game worlds: atmospheric tuning, sun and moon texture customization, cloud lighting, stars, horizon haze, and release-ready Gradle publishing. -Complete source code (in Java) is provided under -[a 3-clause BSD license][license]. +## What we are building +We are building a reusable world-simulation layer for our games and engine experiments: - +- dynamic sky, sun, moon, stars, haze, and cloud layers; +- configurable atmospheric lighting profiles; +- texture customization for both the sun and the moon; +- lighting synchronization for ambient light, directional light, bloom, shadows, and viewport background color; +- package distribution through Maven Local and GitHub Packages; +- a foundation for richer worlds, weather, time-of-day systems, and future Take Some() engine modules. -## Contents of this document +The public Java namespace currently remains compatible with SkyControl: -+ [Important features](#features) -+ [How to add SkyControl to an existing project](#add) -+ [How to build SkyControl from source](#build) -+ [Downloads](#downloads) -+ [Conventions](#conventions) -+ [External links](#links) -+ [History](#history) -+ [Acknowledgments](#acks) +```java +import jme3utilities.sky.SkyControl; +import jme3utilities.sky.SkyAtmosphere; +``` +That keeps existing code usable while the artifact itself is published under Take Some() coordinates. - +## Package -## Important features +### Release package -+ sun, moon, stars, horizon haze, and up to 6 cloud layers -+ compatible with static backgrounds such as cube maps -+ high resolution textures are provided -- or customize with your own textures -+ compatible with effects such as `SimpleWater`, shadows, bloom, and cartoon edges -+ continuous and reversible motion and blending of cloud layers -+ option to foreshorten clouds near the horizon -+ continuous and reversible motion of sun, moon, and stars based on time of day -+ updater to synchronize lighting and shadows with sun, moon, and clouds -+ continuous scaling of sun, moon, and clouds -+ option for continuously variable phase of the moon -+ demonstration apps and online tutorial provided -+ complete source code provided under FreeBSD license - -[Jump to the table of contents](#toc) - - - - -## How to add SkyControl to an existing project - -Adding SkyControl to an existing [jMonkeyEngine][jme] project should be -a simple 6-step process: - - 1. Add SkyControl and its dependencies to the classpath. - 2. Disable any existing sky which might interfere with SkyControl. - 3. Add a `SkyControl` instance to some node in the scene graph. - 4. Configure the `SkyControl` instance. - 5. Enable the `SkyControl` instance. - 6. Test and tune as necessary. - -The SkyControl Library depends on -the standard "jme3-effects" library from jMonkeyEngine and -[the Heart Library][heart], -which in turn depends on -the standard "jme3-core" library. - -For projects built using [Maven] or [Gradle], it is sufficient to add a -dependency on the SkyControl Library. -The build tool should automatically resolve the remaining dependencies. - -### Gradle-built projects - -Add to the project’s "build.gradle" or "build.gradle.kts" file: - - repositories { - mavenCentral() +```kotlin +repositories { + mavenCentral() + maven { + url = uri("https://maven.pkg.github.com/CalistaVerner/SkySimulation") + credentials { + username = findProperty("gpr.user") as String? ?: System.getenv("GITHUB_ACTOR") + password = findProperty("gpr.key") as String? ?: System.getenv("GITHUB_TOKEN") + } } - dependencies { - implementation("com.github.stephengold:SkyControl:1.1.0") - } - -For some older versions of Gradle, -it's necessary to replace `implementation` with `compile`. - -### Maven-built projects - -Add to the project’s "pom.xml" file: - - - - mvnrepository - https://repo1.maven.org/maven2/ - - - - - com.github.stephengold - SkyControl - 1.1.0 - - -### Ant-built projects - -For projects built using [Ant], download the SkyControl and [Heart] -libraries from GitHub: +} -+ https://github.com/stephengold/SkyControl/releases/tag/latest -+ https://github.com/stephengold/Heart/releases/tag/8.3.2 +dependencies { + implementation("dev.takesome:sky-simulation:1.0.0") +} +``` -You'll definitely want both class jars -and probably the "-sources" and "-javadoc" jars as well. +### Local development package -Open the project's properties in the IDE (JME SDK or NetBeans): +First install the package into Maven Local: -1. Right-click on the project (not its assets) in the "Projects" window. -2. Select "Properties" to open the "Project Properties" dialog. -3. Under "Categories:" select "Libraries". -4. Click on the "Compile" tab. -5. Add the [Heart] class jar: - + Click on the "Add JAR/Folder" button. - + Navigate to the download folder. - + Select the "Heart-8.3.2.jar" file. - + Click on the "Open" button. -6. (optional) Add jars for javadoc and sources: - + Click on the "Edit" button. - + Click on the "Browse..." button to the right of "Javadoc:" - + Select the "Heart-8.3.2-javadoc.jar" file. - + Click on the "Open" button. - + Click on the "Browse..." button to the right of "Sources:" - + Select the "Heart-8.3.2-sources.jar" file. - + Click on the "Open" button again. - + Click on the "OK" button to close the "Edit Jar Reference" dialog. -7. Similarly, add the SkyControl jar(s). -8. Click on the "OK" button to exit the "Project Properties" dialog. +```bat +gradlew.bat packageLocal +``` -[Jump to the table of contents](#toc) +Then use it from another Gradle project: +```kotlin +repositories { + mavenLocal() + mavenCentral() +} - +dependencies { + implementation("dev.takesome:sky-simulation:1.0.0-SNAPSHOT") +} +``` -## How to build SkyControl from source +## Build -1. Install a [Java Development Kit (JDK)][adoptium], - version 17 or higher, - if you don't already have one. -2. Point the `JAVA_HOME` environment variable to your JDK installation: - (In other words, set it to the path of a directory/folder - containing a "bin" that contains a Java executable. - That path might look something like - "C:\Program Files\Eclipse Adoptium\jdk-17.0.3.7-hotspot" - or "/usr/lib/jvm/java-17-openjdk-amd64/" or - "/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home" .) - + using Bash or Zsh: `export JAVA_HOME="` *path to installation* `"` - + using [Fish]: `set -g JAVA_HOME "` *path to installation* `"` - + using Windows Command Prompt: `set JAVA_HOME="` *path to installation* `"` - + using PowerShell: `$env:JAVA_HOME = '` *path to installation* `'` -3. Download and extract the SkyControl source code from GitHub: - + using [Git]: - + `git clone https://github.com/stephengold/SkyControl.git` - + `cd SkyControl` - + `git checkout -b latest 1.1.0` - + using a web browser: - + browse to [the latest release][latest] - + follow the "Source code (zip)" link - + save the ZIP file - + extract the contents of the saved ZIP file - + `cd` to the extracted directory/folder -4. Run the [Gradle] wrapper: - + using Bash or Fish or PowerShell or Zsh: `./gradlew build` - + using Windows Command Prompt: `.\gradlew build` +Requirements: -After a successful build, -Maven artifacts will be found in "SkyLibrary/build/libs". +- JDK 17+ +- Gradle wrapper from this repository -You can install the artifacts to your local Maven repository: -+ using Bash or Fish or PowerShell or Zsh: `./gradlew install` -+ using Windows Command Prompt: `.\gradlew install` +Common commands: -You can restore the project to a pristine state: -+ using Bash or Fish or PowerShell or Zsh: `./gradlew clean` -+ using Windows Command Prompt: `.\gradlew clean` +```bat +gradlew.bat :SkyLibrary:compileJava +gradlew.bat :SkyLibrary:checkstyleMain +gradlew.bat packageLocal +``` -[Jump to the table of contents](#toc) +Build release artifacts locally: +```bat +gradlew.bat :SkyLibrary:assemble -PskySimulationVersion=1.0.0 +``` - +Artifacts are generated in: -## Downloads +```text +SkyLibrary/build/libs +``` -Newer releases (since v0.9.27) can be downloaded from -[GitHub](https://github.com/stephengold/SkyControl/releases). +## Release -Older releases (v0.9.0 through v0.9.26) can be downloaded from -[the Jme3-utilities Project](https://github.com/stephengold/jme3-utilities/releases). +A GitHub release is produced by pushing a version tag: -Newer Maven artifacts (since v0.9.30) are available from -[MavenCentral](https://central.sonatype.com/artifact/com.github.stephengold/SkyControl/1.1.0/versions). +```bat +git tag -a v1.0.0 -m "SkySimulation v1.0.0" +git push origin v1.0.0 +``` -Old Maven artifacts (v0.9.25 through v0.9.29) are available from JCenter. +The release workflow publishes the Maven package to GitHub Packages and attaches the JAR, sources, Javadoc, POM, and Gradle module metadata to the GitHub Release. -[Jump to the table of contents](#toc) +## Modules +- `SkyLibrary` — runtime library and public API. +- `SkyAssets` — generated sky, star, sun, moon, cloud, and haze textures. +- `SkyExamples` — example applications and test scenes. - +## Current Take Some() additions -## Conventions - -Package names begin with `jme3utilities.sky` - -Both the source code and the pre-built libraries are compatible with JDK 8. - -In the default world coordinate system: - -+ the `+X` axis points toward the northern horizon -+ the `+Y` axis points up (toward the zenith) -+ the `+Z` axis points toward the eastern horizon - -However, these axis assignments can be overridden using `SunAndStars.setAxes()`. - -[Jump to the table of contents](#toc) - - - - -## External links - -+ November 2013 [SkyControl demo video](https://www.youtube.com/watch?v=FsJRM6tr3oQ) -+ January 2014 [SkyControl update video](https://www.youtube.com/watch?v=gE4wxgBIkaw) -+ A [driving simulator](https://github.com/stephengold/jme-vehicles) - that uses SkyControl. -+ A [flight simulation game](https://github.com/ZoltanTheHun/SkyHussars) - that uses SkyControl. +- `SkyAtmosphere` profile for atmospheric lighting and realism tuning. +- `earthlike-atmosphere.properties` default tuning preset. +- Explicit `setSunTexture(...)` and `setMoonTexture(...)` APIs. +- `clearMoonTexture()` for returning to phase-preset moon textures. +- GitHub Packages publishing under `dev.takesome:sky-simulation`. +- Release workflow for GitHub Releases. -[Jump to the table of contents](#toc) +## Attribution +SkySimulation is based on the SkyControl project lineage and keeps the BSD-style license terms from the original codebase. Take Some() maintains this fork for our own engine/runtime work while preserving compatibility where it matters. - - -## History - -The evolution of this project is chronicled in -[its release log][log]. - -SkyControl has its roots in SkyDome by Cris (aka "t0neg0d"). - -From November 2013 to September 2015, -SkyControl was part of the Jme3-utilities Project at -[Google Code](https://code.google.com/archive/). - -From September 2015 to August 2020, -SkyControl was part of the Jme3-utilities Project at -[GitHub](https://github.com/stephengold/jme3-utilities). - -Since August 2020, SkyControl has been a separate project, hosted at -[GitHub][skycontrol]. - -Old (2014) versions of SkyControl can still be found in -[the jMonkeyEngine-Contributions Project](https://github.com/jMonkeyEngine-Contributions/SkyControl). - -[Jump to the table of contents](#toc) - - - - -## Acknowledgments - -Like most projects, the SkyControl Project builds on the work of many who -have gone before. I therefore acknowledge the following -artists and software developers: - -+ Cris (aka "t0neg0d") for creating SkyDome (which provided both an inspiration - and a starting point for SkyControl) and also for encouraging me to run with - it ... thank you yet again! -+ Paul Speed, for helpful insights which got me unstuck during debugging -+ Rémy Bouquet (aka "nehon") for many helpful insights -+ Alexandr Brui (aka "javasabr") for a solving a problem with the - de-serialization of `SkyControl` -+ the brave souls who volunteered to be alpha testers for SkyControl, including: - + Davis Rollman - + "Lockhead" - + Jonatan Dahl - + Mindaugas (aka "eraslt") - + Thomas Kluge - + "pixelapp" - + Roger (aka "stenb") -+ the beta testers for SkyControl, including: - + "madjack" - + Benjamin D. - + "Fissll" - + Davis Rollman -+ users who found and reported bugs in later versions: - + Rami Manaf - + Anton Starastsin (aka "Antonystar") -+ the creators of (and contributors to) the following software: - + Adobe Photoshop Elements - + the Ant build tool - + the [Blender] 3-D animation suite - + the [Checkstyle] tool - + the [FindBugs] source-code analyzer - + the [Firefox] and [Chrome] web browsers - + Gimp, the GNU Image Manipulation Program - + the [Git] revision-control system and GitK commit viewer - + the [GitKraken] client - + the [Gradle] build tool - + Guava core libraries for Java - + the [IntelliJ IDEA][idea] and [NetBeans] integrated development environments - + the [Java] compiler, standard doclet, and runtime environment - + the JCommander Java framework - + [jMonkeyEngine][jme] and the jME3 Software Development Kit - + the [Linux Mint][mint] operating system - + [LWJGL], the Lightweight Java Game Library - + the [Markdown] document-conversion tool - + the [Meld] visual merge tool - + Microsoft Windows - + the [Nifty] graphical user-interface library - + [Open Broadcaster Software Studio][obs] - + the PMD source-code analyzer - + Alex Peterson's Spacescape tool - + the Subversion revision-control systems - + the [WinMerge] differencing and merging tool - -Many of SkyControl's assets were based on the works of others who licensed their -works under liberal terms or contributed them to the public domain. -For this I thank: - -+ Cris (aka "t0neg0d") -+ Jacques Descloitres, MODIS Rapid Response Team, NASA/GSFC -+ Tom Ruen - -I am grateful to [GitHub], [Sonatype], [JFrog], [YouTube], and [Imgur] -for providing free hosting for this project -and many other open-source projects. - -I'm also grateful to Quinn (for lending me one of her microphones) and finally -my dear Holly, for keeping me sane. - -If I've misattributed anything or left anyone out, please let me know, so I can -correct the situation: sgold@sonic.net - -[Jump to the table of contents](#toc) - - -[adoptium]: https://adoptium.net/releases.html "Adoptium Project" -[ant]: https://ant.apache.org "Apache Ant Project" -[blender]: https://docs.blender.org "Blender Project" -[bsd3]: https://opensource.org/licenses/BSD-3-Clause "3-Clause BSD License" -[checkstyle]: https://checkstyle.org "Checkstyle" -[chrome]: https://www.google.com/chrome "Chrome" -[elements]: https://www.adobe.com/products/photoshop-elements.html "Photoshop Elements" -[findbugs]: http://findbugs.sourceforge.net "FindBugs Project" -[firefox]: https://www.mozilla.org/en-US/firefox "Firefox" -[fish]: https://fishshell.com/ "Fish command-line shell" -[git]: https://git-scm.com "Git" -[github]: https://github.com "GitHub" -[gitkraken]: https://www.gitkraken.com "GitKraken client" -[gradle]: https://gradle.org "Gradle Project" -[heart]: https://github.com/stephengold/Heart "Heart Project" -[idea]: https://www.jetbrains.com/idea/ "IntelliJ IDEA" -[imgur]: https://imgur.com/ "Imgur" -[java]: https://en.wikipedia.org/wiki/Java_(programming_language) "Java programming language" -[jfrog]: https://www.jfrog.com "JFrog" -[jme]: https://jmonkeyengine.org "jMonkeyEngine Project" -[latest]: https://github.com/stephengold/SkyControl/releases/latest "latest release" -[license]: https://github.com/stephengold/SkyControl/blob/master/LICENSE "SkyControl license" -[log]: https://github.com/stephengold/SkyControl/blob/master/SkyLibrary/release-notes.md "release log" -[lwjgl]: https://www.lwjgl.org "Lightweight Java Game Library" -[markdown]: https://daringfireball.net/projects/markdown "Markdown Project" -[maven]: https://maven.apache.org "Maven Project" -[meld]: https://meldmerge.org "Meld merge tool" -[mint]: https://linuxmint.com "Linux Mint Project" -[netbeans]: https://netbeans.org "NetBeans Project" -[nifty]: http://nifty-gui.github.io/nifty-gui "Nifty GUI Project" -[obs]: https://obsproject.com "Open Broadcaster Software Project" -[skycontrol]: https://github.com/stephengold/SkyControl "SkyControl Project" -[sonatype]: https://www.sonatype.com "Sonatype" -[utilities]: https://github.com/stephengold/jme3-utilities "Jme3-utilities Project" -[winmerge]: https://winmerge.org "WinMerge Project" -[youtube]: https://www.youtube.com/ "YouTube" +See `LICENSE` and source headers for license details. From c1fdc70bc8e174c816c27e6f105025f5c660b5b8 Mon Sep 17 00:00:00 2001 From: CalistaVerner Date: Thu, 25 Jun 2026 08:10:01 +0300 Subject: [PATCH 04/17] Split sky control helper responsibilities --- .../java/jme3utilities/sky/SkyAtmosphere.java | 113 +++++------------- .../sky/SkyAtmosphereProperties.java | 105 ++++++++++++++++ .../java/jme3utilities/sky/SkyControl.java | 63 ++-------- .../jme3utilities/sky/SkyLightingModel.java | 98 +++++++++++++++ .../jme3utilities/sky/SkyMaterialCore.java | 52 +------- .../jme3utilities/sky/SkyTextureSampler.java | 90 ++++++++++++++ 6 files changed, 332 insertions(+), 189 deletions(-) create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphereProperties.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/SkyLightingModel.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/SkyTextureSampler.java diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphere.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphere.java index d3c8fc9..7b6b082 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphere.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphere.java @@ -159,34 +159,43 @@ public SkyAtmosphere() { public void apply(Properties properties) { Validate.nonNull(properties, "properties"); - setAirMassStrength(readFloat(properties, + setAirMassStrength(SkyAtmosphereProperties.readFloat(properties, "airMassStrength", airMassStrength)); - setAmbientScale(readFloat(properties, "ambientScale", ambientScale)); - setBloomScale(readFloat(properties, "bloomScale", bloomScale)); - setColorShiftAltitude(readFloat(properties, + setAmbientScale(SkyAtmosphereProperties.readFloat( + properties, "ambientScale", ambientScale)); + setBloomScale(SkyAtmosphereProperties.readFloat( + properties, "bloomScale", bloomScale)); + setColorShiftAltitude(SkyAtmosphereProperties.readFloat(properties, "colorShiftAltitude", colorShiftAltitude)); - setCloudDayBrightness(readFloat(properties, + setCloudDayBrightness(SkyAtmosphereProperties.readFloat(properties, "cloudDayBrightness", cloudDayBrightness)); - setCloudMoonBoost(readFloat(properties, + setCloudMoonBoost(SkyAtmosphereProperties.readFloat(properties, "cloudMoonBoost", cloudMoonBoost)); - setCloudNight(readFloat(properties, + setCloudNight(SkyAtmosphereProperties.readFloat(properties, "cloudNight", cloudNight)); - setFullDayAltitude(readFloat(properties, + setFullDayAltitude(SkyAtmosphereProperties.readFloat(properties, "fullDayAltitude", fullDayAltitude)); - setHazeStrength(readFloat(properties, "hazeStrength", hazeStrength)); - setMaxBloomIntensity(readFloat(properties, + setHazeStrength(SkyAtmosphereProperties.readFloat( + properties, "hazeStrength", hazeStrength)); + setMaxBloomIntensity(SkyAtmosphereProperties.readFloat(properties, "maxBloomIntensity", maxBloomIntensity)); - setMinSunTransmit(readFloat(properties, + setMinSunTransmit(SkyAtmosphereProperties.readFloat(properties, "minSunTransmission", minSunTransmission)); - setShadowContrast(readFloat(properties, + setShadowContrast(SkyAtmosphereProperties.readFloat(properties, "shadowContrast", shadowContrast)); - setSunsetWarmth(readFloat(properties, "sunsetWarmth", sunsetWarmth)); - setTwilightLimit(readFloat(properties, "twilightLimit", twilightLimit)); + setSunsetWarmth(SkyAtmosphereProperties.readFloat( + properties, "sunsetWarmth", sunsetWarmth)); + setTwilightLimit(SkyAtmosphereProperties.readFloat( + properties, "twilightLimit", twilightLimit)); - setMoonLight(readColor(properties, "moonLight", moonLight)); - setStarLight(readColor(properties, "starLight", starLight)); - setSunLight(readColor(properties, "sunLight", sunLight)); - setTwilightColor(readColor(properties, "twilightColor", twilightColor)); + setMoonLight(SkyAtmosphereProperties.readColor( + properties, "moonLight", moonLight)); + setStarLight(SkyAtmosphereProperties.readColor( + properties, "starLight", starLight)); + setSunLight(SkyAtmosphereProperties.readColor( + properties, "sunLight", sunLight)); + setTwilightColor(SkyAtmosphereProperties.readColor( + properties, "twilightColor", twilightColor)); } /** @@ -434,7 +443,7 @@ public void setBloomScale(float scale) { * @param altitude sine of solar altitude (>0, ≤1) */ public void setColorShiftAltitude(float altitude) { - validatePosFraction(altitude, "altitude"); + SkyAtmosphereProperties.validatePosFraction(altitude, "altitude"); this.colorShiftAltitude = altitude; } @@ -474,7 +483,7 @@ public void setCloudNight(float brightness) { * @param altitude sine of solar altitude (>0, ≤1) */ public void setFullDayAltitude(float altitude) { - validatePosFraction(altitude, "altitude"); + SkyAtmosphereProperties.validatePosFraction(altitude, "altitude"); this.fullDayAltitude = altitude; } @@ -564,7 +573,7 @@ public void setSunsetWarmth(float strength) { * @param limit sine of solar depression (>0, ≤1) */ public void setTwilightLimit(float limit) { - validatePosFraction(limit, "limit"); + SkyAtmosphereProperties.validatePosFraction(limit, "limit"); this.twilightLimit = limit; } @@ -715,67 +724,5 @@ private static ColorRGBA copyColor( return result; } - /** - * Read a color override from properties. - * - * @param properties source properties (not null) - * @param key property key (not null) - * @param fallback fallback color (not null) - * @return parsed or fallback color - */ - private static ColorRGBA readColor( - Properties properties, String key, ColorRGBA fallback) { - String text = properties.getProperty(key); - if (text == null) { - return fallback; - } - - String[] components = text.split(","); - if (components.length != 3 && components.length != 4) { - throw new IllegalArgumentException( - key + " should contain r,g,b or r,g,b,a"); - } - float r = Float.parseFloat(components[0].trim()); - float g = Float.parseFloat(components[1].trim()); - float b = Float.parseFloat(components[2].trim()); - float a = (components.length == 4) - ? Float.parseFloat(components[3].trim()) : fallback.a; - ColorRGBA result = new ColorRGBA(r, g, b, a); - - return result; - } - - /** - * Read a float override from properties. - * - * @param properties source properties (not null) - * @param key property key (not null) - * @param fallback fallback value - * @return parsed or fallback value - */ - private static float readFloat( - Properties properties, String key, float fallback) { - String text = properties.getProperty(key); - if (text == null) { - return fallback; - } - float result = Float.parseFloat(text.trim()); - - return result; - } - /** - * Validate a positive fraction. - * - * @param value value to validate - * @param description value description (not null) - */ - private static void validatePosFraction( - float value, String description) { - if (!(value > 0f && value <= 1f)) { - throw new IllegalArgumentException( - description + " should be greater than 0" - + " and no more than 1"); - } - } } diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphereProperties.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphereProperties.java new file mode 100644 index 0000000..c8d1455 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphereProperties.java @@ -0,0 +1,105 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky; + +import com.jme3.math.ColorRGBA; +import java.util.Properties; + +/** + * Parsing and validation helpers for SkyAtmosphere property profiles. + * + * @author Take Some + */ +final class SkyAtmosphereProperties { + /** + * Hidden constructor. + */ + private SkyAtmosphereProperties() { + // do nothing + } + + /** + * Read a color override from properties. + * + * @param properties source properties (not null) + * @param key property key (not null) + * @param fallback fallback color (not null) + * @return parsed or fallback color + */ + static ColorRGBA readColor( + Properties properties, String key, ColorRGBA fallback) { + String text = properties.getProperty(key); + if (text == null) { + return fallback; + } + + String[] components = text.split(","); + if (components.length != 3 && components.length != 4) { + throw new IllegalArgumentException( + key + " should contain r,g,b or r,g,b,a"); + } + float r = Float.parseFloat(components[0].trim()); + float g = Float.parseFloat(components[1].trim()); + float b = Float.parseFloat(components[2].trim()); + float a = (components.length == 4) + ? Float.parseFloat(components[3].trim()) : fallback.a; + ColorRGBA result = new ColorRGBA(r, g, b, a); + + return result; + } + + /** + * Read a float override from properties. + * + * @param properties source properties (not null) + * @param key property key (not null) + * @param fallback fallback value + * @return parsed or fallback value + */ + static float readFloat(Properties properties, String key, float fallback) { + String text = properties.getProperty(key); + if (text == null) { + return fallback; + } + float result = Float.parseFloat(text.trim()); + + return result; + } + + /** + * Validate a positive fraction. + * + * @param value value to validate + * @param description value description (not null) + */ + static void validatePosFraction(float value, String description) { + if (!(value > 0f && value <= 1f)) { + throw new IllegalArgumentException( + description + " should be greater than 0" + + " and no more than 1"); + } + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java index 6122bbe..609fa87 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java @@ -658,57 +658,6 @@ private boolean applyMoonTexture() { return false; } - /** - * Approximate solar transmission through the atmosphere. - * - * @param sineSolarAltitude sine of the solar altitude - * @return transmission fraction between 0 and 1 - */ - private float airMassTransmission(float sineSolarAltitude) { - float altitude = FastMath.clamp(sineSolarAltitude, 0.01f, 1f); - float opticalMass = 1f / (altitude + 0.15f - * (float) Math.pow(altitude + 0.1f, 1.25)); - float extinction = (float) Math.exp(-0.18f - * atmosphere.getAirMassStrength() * (opticalMass - 1f)); - float result = FastMath.clamp(extinction, - atmosphere.getMinSunTransmit(), 1f); - - return result; - } - - /** - * Compute daylight color after approximate atmospheric extinction. - * - * @param sineSolarAltitude sine of the solar altitude - * @return new color - */ - private ColorRGBA daylightColor(float sineSolarAltitude) { - ColorRGBA result = atmosphere.copySunLight(null); - float transmission = airMassTransmission(sineSolarAltitude); - float warmWeight = 1f - smoothStep( - sineSolarAltitude / atmosphere.getColorShiftAltitude()); - float shift = warmWeight * atmosphere.getSunsetWarmth(); - - result.g *= 1f - 0.35f * shift; - result.b *= 1f - 0.75f * shift; - result.multLocal(transmission); - - return result; - } - - /** - * Smoothly remap a value from 0..1 to 0..1. - * - * @param input input value - * @return smoothed fraction - */ - private static float smoothStep(float input) { - float x = FastMath.saturate(input); - float result = x * x * (3f - 2f * x); - - return result; - } - /** * Compute where mainDirection intersects the cloud dome in the dome's local * coordinates, accounting for the dome's flattening and vertical offset. @@ -895,12 +844,13 @@ private void updateLighting(Vector3f sunDirection, Vector3f moonDirection) { * with linearly interpolated transitions. */ ColorRGBA twilightColor = atmosphere.copyTwilightColor(null); - ColorRGBA sunColor = daylightColor(sineSolarAltitude); + ColorRGBA sunColor = SkyLightingModel.daylightColor( + atmosphere, sineSolarAltitude); ColorRGBA moonColor = atmosphere.copyMoonLight(null); ColorRGBA starColor = atmosphere.copyStarLight(null); ColorRGBA baseColor; if (sunUp) { - float dayWeight = smoothStep( + float dayWeight = SkyLightingModel.smoothStep( sineSolarAltitude / atmosphere.getFullDayAltitude()); baseColor = MyColor.interpolateLinear( dayWeight, twilightColor, sunColor); @@ -916,7 +866,7 @@ private void updateLighting(Vector3f sunDirection, Vector3f moonDirection) { } else { blend = starColor; } - float nightWeight = smoothStep( + float nightWeight = SkyLightingModel.smoothStep( -sineSolarAltitude / atmosphere.getTwilightLimit()); baseColor = MyColor.interpolateLinear( nightWeight, twilightColor, blend); @@ -1058,7 +1008,8 @@ private void updateObjectColors( // Update the sun's color and glow. float sunVisibility = FastMath.saturate( 1f + sineSolarAltitude / atmosphere.getTwilightLimit()); - ColorRGBA sunColor = daylightColor(sineSolarAltitude); + ColorRGBA sunColor = SkyLightingModel.daylightColor( + atmosphere, sineSolarAltitude); sunColor.a = Constants.alphaMax * sunVisibility; SkyMaterial topMaterial = getTopMaterial(); topMaterial.setObjectColor(sunIndex, sunColor); @@ -1067,7 +1018,7 @@ private void updateObjectColors( // Update the moon's color. float moonVisibility = FastMath.saturate( 2f * sineLunarAltitude + 0.6f); - float moonWarmth = 1f - smoothStep( + float moonWarmth = 1f - SkyLightingModel.smoothStep( (sineLunarAltitude + 0.02f) / 0.25f); float moonShift = moonWarmth * atmosphere.getSunsetWarmth(); ColorRGBA moonColor = atmosphere.copyMoonLight(null); diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyLightingModel.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyLightingModel.java new file mode 100644 index 0000000..aa7d018 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyLightingModel.java @@ -0,0 +1,98 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky; + +import com.jme3.math.ColorRGBA; +import com.jme3.math.FastMath; + +/** + * Physically-inspired sky lighting calculations shared by SkyControl. + * + * @author Take Some + */ +final class SkyLightingModel { + /** + * Hidden constructor. + */ + private SkyLightingModel() { + // do nothing + } + + /** + * Approximate solar transmission through the atmosphere. + * + * @param atmosphere active atmospheric profile (not null) + * @param sineSolarAltitude sine of the solar altitude + * @return transmission fraction between 0 and 1 + */ + static float airMassTransmission( + SkyAtmosphere atmosphere, float sineSolarAltitude) { + float altitude = FastMath.clamp(sineSolarAltitude, 0.01f, 1f); + float opticalMass = 1f / (altitude + 0.15f + * (float) Math.pow(altitude + 0.1f, 1.25)); + float extinction = (float) Math.exp(-0.18f + * atmosphere.getAirMassStrength() * (opticalMass - 1f)); + float result = FastMath.clamp(extinction, + atmosphere.getMinSunTransmit(), 1f); + + return result; + } + + /** + * Compute daylight color after approximate atmospheric extinction. + * + * @param atmosphere active atmospheric profile (not null) + * @param sineSolarAltitude sine of the solar altitude + * @return new color + */ + static ColorRGBA daylightColor( + SkyAtmosphere atmosphere, float sineSolarAltitude) { + ColorRGBA result = atmosphere.copySunLight(null); + float transmission = airMassTransmission(atmosphere, sineSolarAltitude); + float warmWeight = 1f - smoothStep( + sineSolarAltitude / atmosphere.getColorShiftAltitude()); + float shift = warmWeight * atmosphere.getSunsetWarmth(); + + result.g *= 1f - 0.35f * shift; + result.b *= 1f - 0.75f * shift; + result.multLocal(transmission); + + return result; + } + + /** + * Smoothly remap a value from 0..1 to 0..1. + * + * @param input input value + * @return smoothed fraction + */ + static float smoothStep(float input) { + float x = FastMath.saturate(input); + float result = x * x * (3f - 2f * x); + + return result; + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialCore.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialCore.java index 91339e8..349d538 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialCore.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialCore.java @@ -34,7 +34,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import com.jme3.material.MatParam; import com.jme3.material.Material; import com.jme3.math.ColorRGBA; -import com.jme3.math.FastMath; import com.jme3.math.Vector2f; import com.jme3.texture.Image; import com.jme3.texture.Texture; @@ -854,7 +853,8 @@ private float transparency(int layerIndex, Vector2f skyCoordinates) { coord.addLocal(cloudOffsets[layerIndex]); coord.x = MyMath.modulo(coord.x, Constants.uvMax); coord.y = MyMath.modulo(coord.y, Constants.uvMax); - float opacity = sampleRed(cloudsRaster[layerIndex], coord); + float opacity = SkyTextureSampler.sampleRed( + cloudsRaster[layerIndex], coord); opacity *= cloudAlphas[layerIndex]; float result = Constants.alphaMax - opacity; @@ -863,53 +863,5 @@ private float transparency(int layerIndex, Vector2f skyCoordinates) { return result; } - /** - * Sample the red component of a rasterized texture at the specified - * coordinates. - * - * @param colorImage the texture to sample (not null, unaffected) - * @param uv texture coordinates to sample (not null, each component <1 - * and ≥0, unaffected) - * @return red intensity (≤1, ≥0) - */ - private static float sampleRed(ImageRaster colorImage, Vector2f uv) { - assert colorImage != null; - assert uv != null; - float u = uv.x; - float v = uv.y; - assert u >= Constants.uvMin : uv; - assert u < Constants.uvMax : uv; - assert v >= Constants.uvMin : uv; - assert v < Constants.uvMax : uv; - - int width = colorImage.getWidth(); - float x = u * width; - int x0 = (int) FastMath.floor(x); - float xFraction1 = x - x0; - float xFraction0 = 1 - xFraction1; - int x1 = (x0 + 1) % width; - - int height = colorImage.getHeight(); - float y = v * width; - int y0 = (int) FastMath.floor(y); - float yFraction1 = y - y0; - float yFraction0 = 1 - yFraction1; - int y1 = (y0 + 1) % height; - - // Access the red values of the four nearest pixels. - float r00 = colorImage.getPixel(x0, y0).r; - float r01 = colorImage.getPixel(x1, y0).r; - float r10 = colorImage.getPixel(x0, y1).r; - float r11 = colorImage.getPixel(x1, y1).r; - - // Sample using bidirectional linear interpolation. - float result = r00 * xFraction0 * yFraction0 - + r01 * xFraction0 * yFraction1 - + r10 * xFraction1 * yFraction0 - + r11 * xFraction1 * yFraction1; - assert result >= Constants.alphaMin : result; - assert result <= Constants.alphaMax : result; - return result; - } } diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyTextureSampler.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyTextureSampler.java new file mode 100644 index 0000000..d35e221 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyTextureSampler.java @@ -0,0 +1,90 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky; + +import com.jme3.math.FastMath; +import com.jme3.math.Vector2f; +import com.jme3.texture.image.ImageRaster; + +/** + * Texture sampling utilities for sky materials. + * + * @author Take Some + */ +final class SkyTextureSampler { + /** + * Hidden constructor. + */ + private SkyTextureSampler() { + // do nothing + } + + /** + * Sample the red component of a rasterized texture. + * + * @param colorImage the texture to sample (not null, unaffected) + * @param uv texture coordinates to sample (not null, unaffected) + * @return red intensity (≤1, ≥0) + */ + static float sampleRed(ImageRaster colorImage, Vector2f uv) { + assert colorImage != null; + assert uv != null; + float u = uv.x; + float v = uv.y; + assert u >= Constants.uvMin : uv; + assert u < Constants.uvMax : uv; + assert v >= Constants.uvMin : uv; + assert v < Constants.uvMax : uv; + + int width = colorImage.getWidth(); + float x = u * width; + int x0 = (int) FastMath.floor(x); + float xFraction1 = x - x0; + float xFraction0 = 1 - xFraction1; + int x1 = (x0 + 1) % width; + + int height = colorImage.getHeight(); + float y = v * width; + int y0 = (int) FastMath.floor(y); + float yFraction1 = y - y0; + float yFraction0 = 1 - yFraction1; + int y1 = (y0 + 1) % height; + + float r00 = colorImage.getPixel(x0, y0).r; + float r01 = colorImage.getPixel(x1, y0).r; + float r10 = colorImage.getPixel(x0, y1).r; + float r11 = colorImage.getPixel(x1, y1).r; + + float result = r00 * xFraction0 * yFraction0 + + r01 * xFraction0 * yFraction1 + + r10 * xFraction1 * yFraction0 + + r11 * xFraction1 * yFraction1; + + assert result >= Constants.alphaMin : result; + assert result <= Constants.alphaMax : result; + return result; + } +} From 23e15a5e200a5d946966199d4bc8880feee6a9d2 Mon Sep 17 00:00:00 2001 From: CalistaVerner Date: Thu, 25 Jun 2026 08:16:37 +0300 Subject: [PATCH 05/17] Split updater application logic --- .../main/java/jme3utilities/sky/Updater.java | 35 ++--- .../jme3utilities/sky/UpdaterApplier.java | 133 ++++++++++++++++++ 2 files changed, 141 insertions(+), 27 deletions(-) create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/UpdaterApplier.java diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/Updater.java b/SkyLibrary/src/main/java/jme3utilities/sky/Updater.java index 41e0b20..8fcff64 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/Updater.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/Updater.java @@ -455,33 +455,14 @@ void update(ColorRGBA ambientColor, ColorRGBA backgroundColor, this.direction.set(direction); } - if (mainLight != null) { - ColorRGBA color = mainColor.mult(mainMultiplier); - mainLight.setColor(color); - /* - * The direction of the main light is the direction in which it - * propagates, which is the opposite of the direction to the - * light source. - */ - Vector3f propagationDirection = direction.negate(); - mainLight.setDirection(propagationDirection); - } - if (ambientLight != null) { - ColorRGBA color = ambientColor.mult(ambientMultiplier); - ambientLight.setColor(color); - } - for (BloomFilter filter : bloomFilters) { - filter.setBloomIntensity(bloomIntensity); - } - for (AbstractShadowFilter filter : shadowFilters) { - filter.setShadowIntensity(shadowIntensity); - } - for (AbstractShadowRenderer renderer : shadowRenderers) { - renderer.setShadowIntensity(shadowIntensity); - } - for (ViewPort viewPort : viewPorts) { - viewPort.setBackgroundColor(backgroundColor); - } + UpdaterApplier.applyMain( + mainLight, mainColor, mainMultiplier, direction); + UpdaterApplier.applyAmbient( + ambientLight, ambientColor, ambientMultiplier); + UpdaterApplier.applyBloom(bloomFilters, bloomIntensity); + UpdaterApplier.applyShadowFilters(shadowFilters, shadowIntensity); + UpdaterApplier.applyShadowRenderers(shadowRenderers, shadowIntensity); + UpdaterApplier.applyViewPorts(viewPorts, backgroundColor); } // ************************************************************************* // JmeCloneable methods diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/UpdaterApplier.java b/SkyLibrary/src/main/java/jme3utilities/sky/UpdaterApplier.java new file mode 100644 index 0000000..619ac35 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/UpdaterApplier.java @@ -0,0 +1,133 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky; + +import com.jme3.light.AmbientLight; +import com.jme3.light.DirectionalLight; +import com.jme3.math.ColorRGBA; +import com.jme3.math.Vector3f; +import com.jme3.post.filters.BloomFilter; +import com.jme3.renderer.ViewPort; +import com.jme3.shadow.AbstractShadowFilter; +import com.jme3.shadow.AbstractShadowRenderer; +import java.util.List; + +/** + * Applies Updater state to live scene objects. + * + * @author Take Some + */ +final class UpdaterApplier { + /** + * Hidden constructor. + */ + private UpdaterApplier() { + // do nothing + } + + /** + * Apply ambient light color. + * + * @param light target light, or null + * @param color source color (not null, unaffected) + * @param multiplier intensity multiplier + */ + static void applyAmbient( + AmbientLight light, ColorRGBA color, float multiplier) { + if (light != null) { + ColorRGBA applied = color.mult(multiplier); + light.setColor(applied); + } + } + + /** + * Apply bloom intensity to known filters. + * + * @param filters target filters (not null) + * @param intensity bloom intensity + */ + static void applyBloom(List filters, float intensity) { + for (BloomFilter filter : filters) { + filter.setBloomIntensity(intensity); + } + } + + /** + * Apply directional light color and direction. + * + * @param light target light, or null + * @param color source color (not null, unaffected) + * @param multiplier intensity multiplier + * @param direction direction to the light source (not null, unaffected) + */ + static void applyMain(DirectionalLight light, ColorRGBA color, + float multiplier, Vector3f direction) { + if (light != null) { + ColorRGBA applied = color.mult(multiplier); + light.setColor(applied); + Vector3f propagationDirection = direction.negate(); + light.setDirection(propagationDirection); + } + } + + /** + * Apply shadow intensity to known filters. + * + * @param filters target filters (not null) + * @param intensity shadow intensity + */ + static void applyShadowFilters( + List> filters, float intensity) { + for (AbstractShadowFilter filter : filters) { + filter.setShadowIntensity(intensity); + } + } + + /** + * Apply shadow intensity to known renderers. + * + * @param renderers target renderers (not null) + * @param intensity shadow intensity + */ + static void applyShadowRenderers( + List renderers, float intensity) { + for (AbstractShadowRenderer renderer : renderers) { + renderer.setShadowIntensity(intensity); + } + } + + /** + * Apply background color to known viewports. + * + * @param viewPorts target viewports (not null) + * @param color background color (not null, unaffected) + */ + static void applyViewPorts(List viewPorts, ColorRGBA color) { + for (ViewPort viewPort : viewPorts) { + viewPort.setBackgroundColor(color); + } + } +} From 69ba3fb8c9200e381a731006ade822ed6b1d94a2 Mon Sep 17 00:00:00 2001 From: CalistaVerner Date: Thu, 25 Jun 2026 08:26:04 +0300 Subject: [PATCH 06/17] Split SkyControlCore construction responsibilities Move scene-graph names into SkyNodeNames so geometry lookup keys are centralized. Move material and cloud-layer creation into SkyMaterialFactory to separate configuration from control state. Move dome and star-node construction into SkyDomeFactory while preserving runtime node names and public API. Keep README unchanged and validate with :SkyLibrary:compileJava and :SkyLibrary:checkstyleMain. --- .../jme3utilities/sky/SkyControlCore.java | 232 ++------------- .../jme3utilities/sky/SkyDomeFactory.java | 263 ++++++++++++++++++ .../jme3utilities/sky/SkyMaterialFactory.java | 121 ++++++++ .../java/jme3utilities/sky/SkyNodeNames.java | 55 ++++ 4 files changed, 466 insertions(+), 205 deletions(-) create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/SkyDomeFactory.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialFactory.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/SkyNodeNames.java diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControlCore.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControlCore.java index 0f1c0d8..b45eefe 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControlCore.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControlCore.java @@ -39,8 +39,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import com.jme3.renderer.Camera; import com.jme3.renderer.RenderManager; import com.jme3.renderer.ViewPort; -import com.jme3.renderer.queue.RenderQueue.Bucket; -import com.jme3.renderer.queue.RenderQueue.ShadowMode; import com.jme3.scene.Geometry; import com.jme3.scene.Node; import com.jme3.scene.Spatial; @@ -49,7 +47,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; -import jme3utilities.MyAsset; import jme3utilities.MySpatial; import jme3utilities.SubtreeControl; import jme3utilities.Validate; @@ -85,58 +82,15 @@ public class SkyControlCore extends SubtreeControl { * maximum number of cloud layers */ final public static int numCloudLayers = 6; - /** - * number of samples in each longitudinal arc of a major dome, including - * both its top and its rim (≥2) - */ - final private static int numLongitudinalSamples = 16; - /** - * number of samples around the rim of a dome (≥3) - */ - final private static int numRimSamples = 60; /** * message logger for this class */ final private static Logger logger = Logger.getLogger(SkyControlCore.class.getName()); - /** - * reusable mesh for smooth, inward-facing domes - */ - final private static DomeMesh hemisphereMesh - = new DomeMesh(numRimSamples, numLongitudinalSamples, - Constants.topU, Constants.topV, Constants.uvScale, true); /** * local copy of {@link com.jme3.math.Quaternion#IDENTITY} */ final private static Quaternion rotationIdentity = new Quaternion(); - /** - * name for the bottom geometry - */ - final private static String bottomName = "bottom"; - /** - * name for the clouds-only geometry - */ - final private static String cloudsName = "clouds"; - /** - * name for the stars node - */ - final private static String starsNodeName = "stars node"; - /** - * name for the top geometry - */ - final private static String topName = "top"; - /** - * local copy of {@link com.jme3.math.Vector3f#UNIT_X} - */ - final private static Vector3f unitX = new Vector3f(1f, 0f, 0f); - /** - * local copy of {@link com.jme3.math.Vector3f#UNIT_Z} - */ - final private static Vector3f unitZ = new Vector3f(0f, 0f, 1f); - /** - * negative Y-axis - */ - final private static Vector3f negativeUnitY = new Vector3f(0f, -1f, 0f); // ************************************************************************* // fields @@ -238,48 +192,23 @@ public SkyControlCore( this.starsOption = starsOption; this.bottomDomeFlag = bottomDomeFlag; - // Create and initialize the sky material for sun, moon, and haze. - int topObjects = 2; // a sun and a moon - boolean cloudDomeFlag = cloudFlattening != 0f; - int topCloudLayers = cloudDomeFlag ? 0 : numCloudLayers; - SkyMaterial topMaterial - = new SkyMaterial(assetManager, topObjects, topCloudLayers); - topMaterial.initialize(); - topMaterial.addHaze(); - if (starsOption == StarsOption.TopDome) { - topMaterial.addStars(); - } - - SkyMaterial cloudsMaterial; - if (cloudDomeFlag) { - // Create and initialize a separate sky material for clouds only. - int numObjects = 0; - cloudsMaterial - = new SkyMaterial(assetManager, numObjects, numCloudLayers); - cloudsMaterial.initialize(); - cloudsMaterial.getAdditionalRenderState().setDepthWrite(false); - cloudsMaterial.setClearColor(ColorRGBA.BlackNoAlpha); - } else { - cloudsMaterial = topMaterial; - } - - // Initialize the cloud layers. - this.cloudLayers = new CloudLayer[numCloudLayers]; - for (int layerIndex = 0; layerIndex < numCloudLayers; ++layerIndex) { - this.cloudLayers[layerIndex] - = new CloudLayer(cloudsMaterial, layerIndex); - } - - Material bottomMaterial; - if (bottomDomeFlag) { - bottomMaterial = MyAsset.createUnshadedMaterial(assetManager); - } else { - bottomMaterial = null; + boolean separateCloudDome = cloudFlattening != 0f; + SkyMaterial topMaterial = SkyMaterialFactory.createTop( + assetManager, separateCloudDome, starsOption); + SkyMaterial cloudsMaterial = SkyMaterialFactory.createClouds( + assetManager, separateCloudDome, topMaterial); + this.cloudLayers = SkyMaterialFactory.createLayers(cloudsMaterial); + Material bottomMaterial = SkyMaterialFactory.createBottom( + assetManager, bottomDomeFlag); + Node subtreeNode = SkyDomeFactory.createSubtree(cloudFlattening, + bottomDomeFlag, topMaterial, bottomMaterial, cloudsMaterial); + setSubtree(subtreeNode); + Node starsNode = SkyDomeFactory.createDefaultStars( + assetManager, starsOption); + if (starsNode != null) { + SkyDomeFactory.attachStars(subtreeNode, starsNode); } - createSpatials( - cloudFlattening, topMaterial, bottomMaterial, cloudsMaterial); - assert !isEnabled(); } // ************************************************************************* @@ -496,13 +425,13 @@ public void setStabilizeFlag(boolean newState) { final public void setStarMaps(String assetName) { Validate.nonEmpty(assetName, "asset name"); - Node starNode; switch (starsOption) { case Cube: + case TwoDomes: removeStarsNode(); - starNode = MyAsset.createStarMapQuads(assetManager, assetName); - starNode.setName(starsNodeName); - ((Node) getSubtree()).attachChildAt(starNode, 0); + Node starNode = SkyDomeFactory.createStars( + assetManager, starsOption, assetName); + SkyDomeFactory.attachStars((Node) getSubtree(), starNode); break; case TopDome: @@ -510,12 +439,6 @@ final public void setStarMaps(String assetName) { topMaterial.addStars(assetName); break; - case TwoDomes: - removeStarsNode(); - starNode = createStarMapDomes(assetName); - ((Node) getSubtree()).attachChildAt(starNode, 0); - break; - default: throw new IllegalStateException("option = " + starsOption); } @@ -554,8 +477,8 @@ public void setTopVerticalAngle(float newAngle) { */ protected Geometry getBottomDome() { Node subtreeNode = (Node) getSubtree(); - Geometry bottomDome - = (Geometry) MySpatial.findChild(subtreeNode, bottomName); + Geometry bottomDome = (Geometry) MySpatial.findChild( + subtreeNode, SkyNodeNames.bottom); return bottomDome; } @@ -597,8 +520,8 @@ protected DomeMesh getBottomMesh() { */ protected Geometry getCloudsOnlyDome() { Node subtreeNode = (Node) getSubtree(); - Geometry cloudsOnlyDome - = (Geometry) MySpatial.findChild(subtreeNode, cloudsName); + Geometry cloudsOnlyDome = (Geometry) MySpatial.findChild( + subtreeNode, SkyNodeNames.clouds); return cloudsOnlyDome; } @@ -647,7 +570,8 @@ protected DomeMesh getCloudsMesh() { */ protected Node getStarsNode() { Node subtreeNode = (Node) getSubtree(); - Node starsNode = (Node) MySpatial.findChild(subtreeNode, starsNodeName); + Node starsNode = (Node) MySpatial.findChild( + subtreeNode, SkyNodeNames.starsNode); return starsNode; } @@ -659,7 +583,8 @@ protected Node getStarsNode() { */ protected Geometry getTopDome() { Node subtreeNode = (Node) getSubtree(); - Geometry topDome = (Geometry) MySpatial.findChild(subtreeNode, topName); + Geometry topDome = (Geometry) MySpatial.findChild( + subtreeNode, SkyNodeNames.top); assert topDome != null; return topDome; @@ -852,109 +777,6 @@ public void write(JmeExporter exporter) throws IOException { // ************************************************************************* // private methods - /** - * Create and initialize the sky node and all its dome geometries. - * - * @param cloudFlattening the oblateness (ellipticity) of the dome with the - * clouds (≥ 0, <1, 0 → no flattening (hemisphere), 1 → - * maximum flattening - * @param topMaterial (not null) - * @param bottomMaterial (may be null) - * @param cloudsMaterial (not null) - */ - private void createSpatials(float cloudFlattening, Material topMaterial, - Material bottomMaterial, Material cloudsMaterial) { - // Create a Node to parent the dome geometries. - Node subtreeNode = new Node("sky node"); - subtreeNode.setQueueBucket(Bucket.Sky); - subtreeNode.setShadowMode(ShadowMode.Off); - setSubtree(subtreeNode); - /* - * Attach geometries to the sky node from the outside in - * because they'll be rendered in that order. - */ - switch (starsOption) { - case Cube: - setStarMaps("equator"); - break; - - case TwoDomes: - setStarMaps("Textures/skies/star-maps"); - break; - - default: - } - Geometry topDome = new Geometry(topName, hemisphereMesh.clone()); - subtreeNode.attachChild(topDome); - topDome.setMaterial(topMaterial); - - if (bottomDomeFlag) { - DomeMesh bottomMesh = new DomeMesh(numRimSamples, 2, Constants.topU, - Constants.topV, Constants.uvScale, true); - Geometry bottomDome = new Geometry(bottomName, bottomMesh); - subtreeNode.attachChild(bottomDome); - - Quaternion upsideDown = new Quaternion(); - upsideDown.lookAt(unitX, negativeUnitY); - bottomDome.setLocalRotation(upsideDown); - bottomDome.setMaterial(bottomMaterial); - } - - if (cloudsMaterial != topMaterial) { - assert cloudFlattening > 0f : cloudFlattening; - assert cloudFlattening < 1f : cloudFlattening; - - Geometry cloudsOnlyDome = new Geometry(cloudsName, hemisphereMesh); - subtreeNode.attachChild(cloudsOnlyDome); - /* - * Flatten the clouds-only dome in order to foreshorten clouds - * near the horizon -- even if cloudYOffset=0. - */ - float yScale = 1f - cloudFlattening; - cloudsOnlyDome.setLocalScale(1f, yScale, 1f); - cloudsOnlyDome.setMaterial(cloudsMaterial); - } - } - - /** - * Load a star map onto a sphere formed by 2 domes, one for the northern - * hemisphere and one for the southern hemisphere. - * - * @param assetPath path to an asset folder containing northern.png and - * southern.png (not null) - * @return a new, orphan node - */ - private Node createStarMapDomes(String assetPath) { - assert assetPath != null; - - Node starNode = new Node(starsNodeName); - - Geometry northGeometry = new Geometry("northern stars", hemisphereMesh); - starNode.attachChild(northGeometry); - String northAssetPath = assetPath + "/northern.png"; - Material northMaterial - = MyAsset.createUnshadedMaterial(assetManager, northAssetPath); - northGeometry.setMaterial(northMaterial); - - Quaternion orientNorth = new Quaternion(); - orientNorth.fromAngleAxis(-FastMath.HALF_PI, unitZ); - northGeometry.setLocalRotation(orientNorth); - - Geometry southGeometry - = new Geometry("southern stars", hemisphereMesh); - starNode.attachChild(southGeometry); - String southAssetPath = assetPath + "/southern.png"; - Material southMaterial - = MyAsset.createUnshadedMaterial(assetManager, southAssetPath); - southGeometry.setMaterial(southMaterial); - - Quaternion orientSouth = new Quaternion(); - orientSouth.fromAngleAxis(FastMath.HALF_PI, unitZ); - southGeometry.setLocalRotation(orientSouth); - - return starNode; - } - /** * Remove the stars node (if it exists) from the scene graph. */ diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyDomeFactory.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyDomeFactory.java new file mode 100644 index 0000000..94e932a --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyDomeFactory.java @@ -0,0 +1,263 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky; + +import com.jme3.asset.AssetManager; +import com.jme3.material.Material; +import com.jme3.math.FastMath; +import com.jme3.math.Quaternion; +import com.jme3.math.Vector3f; +import com.jme3.renderer.queue.RenderQueue.Bucket; +import com.jme3.renderer.queue.RenderQueue.ShadowMode; +import com.jme3.scene.Geometry; +import com.jme3.scene.Node; +import jme3utilities.MyAsset; +import jme3utilities.mesh.DomeMesh; + +/** + * Factory for sky dome geometries and default star-map nodes. + * + * @author Take Some + */ +final class SkyDomeFactory { + /** Number of samples in each longitudinal arc of a major dome. */ + final private static int numLongSamples = 16; + /** Number of samples around the rim of a dome. */ + final private static int numRimSamples = 60; + /** Reusable mesh for smooth, inward-facing domes. */ + final private static DomeMesh hemisphereMesh = new DomeMesh( + numRimSamples, numLongSamples, Constants.topU, + Constants.topV, Constants.uvScale, true); + /** Negative Y axis. */ + final private static Vector3f negativeUnitY = new Vector3f(0f, -1f, 0f); + /** Local copy of unitX. */ + final private static Vector3f unitX = new Vector3f(1f, 0f, 0f); + /** Local copy of unitZ. */ + final private static Vector3f unitZ = new Vector3f(0f, 0f, 1f); + + /** + * Hidden constructor. + */ + private SkyDomeFactory() { + // do nothing + } + + /** + * Attach a stars node as the outermost sky child. + * + * @param subtree sky subtree (not null) + * @param starsNode stars node (not null) + */ + static void attachStars(Node subtree, Node starsNode) { + subtree.attachChildAt(starsNode, 0); + } + + /** + * Create a new sky subtree and attach its base geometries. + * + * @param cloudFlattening cloud-dome flattening (≥0, <1) + * @param bottomEnabled true to create the bottom dome + * @param topMaterial top material (not null) + * @param bottomMaterial bottom material, or null + * @param cloudsMaterial cloud material (not null) + * @return new sky subtree node + */ + static Node createSubtree(float cloudFlattening, boolean bottomEnabled, + SkyMaterial topMaterial, Material bottomMaterial, + SkyMaterial cloudsMaterial) { + Node result = new Node(SkyNodeNames.skyNode); + result.setQueueBucket(Bucket.Sky); + result.setShadowMode(ShadowMode.Off); + + Geometry top = createTop(topMaterial); + result.attachChild(top); + if (bottomEnabled) { + Geometry bottom = createBottom(bottomMaterial); + result.attachChild(bottom); + } + if (cloudsMaterial != topMaterial) { + Geometry clouds = createClouds(cloudFlattening, cloudsMaterial); + result.attachChild(clouds); + } + + return result; + } + + + /** + * Create default star-map node for a newly constructed control. + * + * @param assetManager asset manager (not null) + * @param option star rendering option (not null) + * @return new stars node, or null when no node is needed + */ + static Node createDefaultStars( + AssetManager assetManager, StarsOption option) { + Node result; + switch (option) { + case Cube: + result = createStars(assetManager, option, "equator"); + break; + case TwoDomes: + result = createStars( + assetManager, option, "Textures/skies/star-maps"); + break; + case TopDome: + result = null; + break; + default: + throw new IllegalStateException("option = " + option); + } + + return result; + } + + /** + * Create a star-map node for the specified option. + * + * @param assetManager asset manager (not null) + * @param option star rendering option (not null) + * @param assetName asset name or path (not null) + * @return new stars node, or null for TopDome + */ + static Node createStars( + AssetManager assetManager, StarsOption option, String assetName) { + Node result; + switch (option) { + case Cube: + result = MyAsset.createStarMapQuads(assetManager, assetName); + result.setName(SkyNodeNames.starsNode); + break; + case TwoDomes: + result = createStarDomes(assetManager, assetName); + break; + case TopDome: + result = null; + break; + default: + throw new IllegalStateException("option = " + option); + } + + return result; + } + + /** + * Create a bottom dome geometry. + * + * @param material bottom material (not null) + * @return new bottom geometry + */ + private static Geometry createBottom(Material material) { + DomeMesh mesh = new DomeMesh(numRimSamples, 2, Constants.topU, + Constants.topV, Constants.uvScale, true); + Geometry result = new Geometry(SkyNodeNames.bottom, mesh); + Quaternion upsideDown = new Quaternion(); + upsideDown.lookAt(unitX, negativeUnitY); + result.setLocalRotation(upsideDown); + result.setMaterial(material); + + return result; + } + + /** + * Create a clouds-only dome geometry. + * + * @param flattening cloud-dome flattening (>0, <1) + * @param material cloud material (not null) + * @return new cloud dome geometry + */ + private static Geometry createClouds( + float flattening, SkyMaterial material) { + assert flattening > 0f : flattening; + assert flattening < 1f : flattening; + + Geometry result = new Geometry( + SkyNodeNames.clouds, hemisphereMesh); + float yScale = 1f - flattening; + result.setLocalScale(1f, yScale, 1f); + result.setMaterial(material); + + return result; + } + + /** + * Load a star map onto a sphere formed by 2 domes. + * + * @param assetManager asset manager (not null) + * @param assetPath asset folder path (not null) + * @return new orphan node + */ + private static Node createStarDomes( + AssetManager assetManager, String assetPath) { + Node result = new Node(SkyNodeNames.starsNode); + Geometry north = createStarHemisphere(assetManager, assetPath, + SkyNodeNames.northStars, "northern.png", -FastMath.HALF_PI); + result.attachChild(north); + Geometry south = createStarHemisphere(assetManager, assetPath, + SkyNodeNames.southStars, "southern.png", FastMath.HALF_PI); + result.attachChild(south); + + return result; + } + + /** + * Create one hemisphere of a two-dome star map. + * + * @param assetManager asset manager (not null) + * @param folder asset folder path (not null) + * @param geometryName geometry name (not null) + * @param imageName image filename (not null) + * @param angle rotation angle around Z + * @return new star hemisphere geometry + */ + private static Geometry createStarHemisphere(AssetManager assetManager, + String folder, String geometryName, String imageName, float angle) { + Geometry result = new Geometry(geometryName, hemisphereMesh); + String assetPath = folder + "/" + imageName; + Material material = MyAsset.createUnshadedMaterial( + assetManager, assetPath); + result.setMaterial(material); + Quaternion orientation = new Quaternion(); + orientation.fromAngleAxis(angle, unitZ); + result.setLocalRotation(orientation); + + return result; + } + + /** + * Create a top dome geometry. + * + * @param material top material (not null) + * @return new top geometry + */ + private static Geometry createTop(SkyMaterial material) { + Geometry result = new Geometry( + SkyNodeNames.top, (DomeMesh) hemisphereMesh.clone()); + result.setMaterial(material); + + return result; + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialFactory.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialFactory.java new file mode 100644 index 0000000..61b8c9b --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialFactory.java @@ -0,0 +1,121 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky; + +import com.jme3.asset.AssetManager; +import com.jme3.material.Material; +import com.jme3.math.ColorRGBA; +import jme3utilities.MyAsset; + +/** + * Factory for sky materials and cloud-layer runtime objects. + * + * @author Take Some + */ +final class SkyMaterialFactory { + /** + * Hidden constructor. + */ + private SkyMaterialFactory() { + // do nothing + } + + /** + * Create the optional bottom-dome material. + * + * @param assetManager asset manager (not null) + * @param enabled true to create a material, otherwise false + * @return material, or null when disabled + */ + static Material createBottom(AssetManager assetManager, boolean enabled) { + Material result = enabled + ? MyAsset.createUnshadedMaterial(assetManager) : null; + return result; + } + + /** + * Create and initialize the cloud material. + * + * @param assetManager asset manager (not null) + * @param separateDome true for a separate cloud dome + * @param topMaterial initialized top material (not null) + * @return initialized cloud material (not null) + */ + static SkyMaterial createClouds(AssetManager assetManager, + boolean separateDome, SkyMaterial topMaterial) { + SkyMaterial result; + if (separateDome) { + int numObjects = 0; + result = new SkyMaterial( + assetManager, numObjects, SkyControlCore.numCloudLayers); + result.initialize(); + result.getAdditionalRenderState().setDepthWrite(false); + result.setClearColor(ColorRGBA.BlackNoAlpha); + } else { + result = topMaterial; + } + + return result; + } + + /** + * Create cloud-layer runtime objects. + * + * @param material cloud material (not null) + * @return new cloud-layer array + */ + static CloudLayer[] createLayers(SkyMaterial material) { + CloudLayer[] result = new CloudLayer[SkyControlCore.numCloudLayers]; + for (int layer = 0; layer < SkyControlCore.numCloudLayers; ++layer) { + result[layer] = new CloudLayer(material, layer); + } + + return result; + } + + /** + * Create and initialize the top sky material. + * + * @param assetManager asset manager (not null) + * @param separateCloudDome true when clouds use a separate dome + * @param starsOption star rendering option (not null) + * @return initialized top material (not null) + */ + static SkyMaterial createTop(AssetManager assetManager, + boolean separateCloudDome, StarsOption starsOption) { + int topObjects = 2; + int topClouds = separateCloudDome ? 0 : SkyControlCore.numCloudLayers; + SkyMaterial result = new SkyMaterial(assetManager, topObjects, + topClouds); + result.initialize(); + result.addHaze(); + if (starsOption == StarsOption.TopDome) { + result.addStars(); + } + + return result; + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyNodeNames.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyNodeNames.java new file mode 100644 index 0000000..5faf213 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyNodeNames.java @@ -0,0 +1,55 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky; + +/** + * Internal scene-graph names used by sky controls and factories. + * + * @author Take Some + */ +final class SkyNodeNames { + /** Name for the bottom geometry. */ + final static String bottom = "bottom"; + /** Name for the clouds-only geometry. */ + final static String clouds = "clouds"; + /** Name for the northern stars geometry. */ + final static String northStars = "northern stars"; + /** Name for the sky subtree node. */ + final static String skyNode = "sky node"; + /** Name for the southern stars geometry. */ + final static String southStars = "southern stars"; + /** Name for the stars node. */ + final static String starsNode = "stars node"; + /** Name for the top geometry. */ + final static String top = "top"; + + /** + * Hidden constructor. + */ + private SkyNodeNames() { + // do nothing + } +} From 76a5d21bcf38607a5870a254917cf8580d4fde12 Mon Sep 17 00:00:00 2001 From: CalistaVerner Date: Thu, 25 Jun 2026 08:28:57 +0300 Subject: [PATCH 07/17] Update project links for Take-Some organization Point README package instructions and publishing metadata at Take-Some/SkySimulation. Update the GitHub Packages repository URL and SCM metadata after the repository move. Regenerate Gradle publication metadata successfully with :SkyLibrary:generatePomFileForMavenPublication. --- README.md | 2 +- SkyLibrary/build.gradle | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 29481d1..2947bf6 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ That keeps existing code usable while the artifact itself is published under Tak repositories { mavenCentral() maven { - url = uri("https://maven.pkg.github.com/CalistaVerner/SkySimulation") + url = uri("https://maven.pkg.github.com/Take-Some/SkySimulation") credentials { username = findProperty("gpr.user") as String? ?: System.getenv("GITHUB_ACTOR") password = findProperty("gpr.key") as String? ?: System.getenv("GITHUB_TOKEN") diff --git a/SkyLibrary/build.gradle b/SkyLibrary/build.gradle index 17957c0..4cb759f 100644 --- a/SkyLibrary/build.gradle +++ b/SkyLibrary/build.gradle @@ -15,7 +15,7 @@ ext { artifact = rootProject.ext.skySimulationArtifact version = rootProject.ext.skySimulationVersion baseName = "${artifact}-${version}" // for artifacts - websiteUrl = 'https://github.com/CalistaVerner/SkySimulation' + websiteUrl = 'https://github.com/Take-Some/SkySimulation' } processResources.dependsOn(':SkyAssets:skyTextures') @@ -111,8 +111,8 @@ publishing { } name = project.ext.group + ':' + artifact scm { - connection = 'scm:git:https://github.com/CalistaVerner/SkySimulation.git' - developerConnection = 'scm:git:https://github.com/CalistaVerner/SkySimulation.git' + connection = 'scm:git:https://github.com/Take-Some/SkySimulation.git' + developerConnection = 'scm:git:https://github.com/Take-Some/SkySimulation.git' url = project.ext.websiteUrl + '/tree/master' } url = project.ext.websiteUrl @@ -135,7 +135,7 @@ publishing { } maven { name = 'GitHubPackages' - url = uri('https://maven.pkg.github.com/CalistaVerner/SkySimulation') + url = uri('https://maven.pkg.github.com/Take-Some/SkySimulation') credentials { username = findProperty('gpr.user') ?: System.getenv('GITHUB_ACTOR') password = findProperty('gpr.key') ?: System.getenv('GITHUB_TOKEN') From ca709bc02d3f8cdad3a63bb06ab5da1586f95597 Mon Sep 17 00:00:00 2001 From: CalistaVerner Date: Thu, 25 Jun 2026 08:39:48 +0300 Subject: [PATCH 08/17] Split Bright Star Catalog reader from star map rendering Move Yale Bright Star Catalog parsing, entry validation, magnitude filtering, duplicate tracking, and catalog statistics into BrightStarCatalogReader. Leave MakeStarMaps focused on command-line orchestration, map projection, star plotting, and output file generation. Preserve generated asset behavior by validating :SkyAssets:compileJava, :SkyAssets:checkstyleMain, and :SkyAssets:skyTextures. --- .../sky/textures/BrightStarCatalogReader.java | 399 ++++++++++++++++++ .../sky/textures/MakeStarMaps.java | 327 +------------- 2 files changed, 401 insertions(+), 325 deletions(-) create mode 100644 SkyAssets/src/main/java/jme3utilities/sky/textures/BrightStarCatalogReader.java diff --git a/SkyAssets/src/main/java/jme3utilities/sky/textures/BrightStarCatalogReader.java b/SkyAssets/src/main/java/jme3utilities/sky/textures/BrightStarCatalogReader.java new file mode 100644 index 0000000..c6946c3 --- /dev/null +++ b/SkyAssets/src/main/java/jme3utilities/sky/textures/BrightStarCatalogReader.java @@ -0,0 +1,399 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.textures; + +import com.jme3.math.FastMath; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.util.Collection; +import java.util.TreeSet; +import java.util.logging.Level; +import java.util.logging.Logger; +import jme3utilities.MyString; +import jme3utilities.math.MyMath; +import jme3utilities.sky.Constants; + +/** + * Reader for the ASCII Yale Bright Star Catalog. + * + * @author Take Some + */ +final class BrightStarCatalogReader { + + /** + * Mutable counters gathered while reading a catalog. + */ + final private static class CatalogStats { + /** Number of duplicate entries. */ + int duplicateEntries; + /** Number of missed entries. */ + int missedEntries; + /** Next expected entry id. */ + int nextEntry = 1; + /** Number of catalog entries read. */ + int readEntries; + /** Number of skipped entries. */ + int skippedEntries; + } + + /** + * Exception for unexpected invalid data in a catalog entry. + */ + final private static class InvalidEntryException extends Exception { + /** serialization identifier. */ + final static long serialVersionUID = 1L; + + /** + * Instantiate the exception. + * + * @param message descriptive text + */ + InvalidEntryException(String message) { + super(message); + } + } + + /** + * Exception for an invalid apparent magnitude in a catalog entry. + */ + final private static class InvalidMagnitudeException extends Exception { + /** serialization identifier. */ + final static long serialVersionUID = 1L; + } + + /** Expected id of the last entry in the catalog. */ + final private static int lastEntryExpected = 9_110; + /** Number of degrees from equator to pole. */ + final private static int maxDeclination = 90; + /** Maximum apparent magnitude of all stars in the catalog. */ + final private static float maxMagnitude = 7.96f; + /** Number of minutes in an hour or degree. */ + final private static int maxMinutes = 60; + /** Number of seconds in a minute. */ + final private static int maxSeconds = 60; + /** Minimum apparent magnitude of all stars in the catalog. */ + final private static float minMagnitude = -1.47f; + /** Earth's rate of rotation, in radians per sidereal hour. */ + final private static float radiansPerHour + = FastMath.TWO_PI / Constants.hoursPerDay; + /** Message logger for this class. */ + final private static Logger logger + = Logger.getLogger(BrightStarCatalogReader.class.getName()); + + /** + * Hidden constructor. + */ + private BrightStarCatalogReader() { + // do nothing + } + + /** + * Read the star catalog and collect valid stars. + * + * @param catalogFilePath filesystem path to the catalog file (not null) + * @return new collection of valid stars + */ + static Collection read(String catalogFilePath) { + Collection result = new TreeSet<>(); + File catalogFile = new File(catalogFilePath); + FileReader fileReader = null; + BufferedReader bufferedReader = null; + try { + fileReader = new FileReader(catalogFile); + bufferedReader = new BufferedReader(fileReader); + read(bufferedReader, catalogFilePath, result); + } catch (FileNotFoundException exception) { + logger.log(Level.SEVERE, "unable to open {0}", + MyString.quote(catalogFilePath)); + throw new RuntimeException(exception); + } catch (IOException exception) { + logger.log(Level.SEVERE, "unable to read {0}", + MyString.quote(catalogFilePath)); + } catch (InvalidEntryException exception) { + logger.log(Level.SEVERE, "", exception); + } finally { + close(fileReader, bufferedReader, catalogFilePath); + } + + return result; + } + + /** + * Close catalog readers. + * + * @param fileReader file reader, or null + * @param bufferedReader buffered reader, or null + * @param catalogFilePath catalog path for logging (not null) + */ + private static void close(FileReader fileReader, + BufferedReader bufferedReader, String catalogFilePath) { + try { + if (fileReader != null) { + fileReader.close(); + } + if (bufferedReader != null) { + bufferedReader.close(); + } + } catch (IOException exception) { + logger.log(Level.WARNING, "unable to close {0}", + MyString.quote(catalogFilePath)); + } + } + + /** + * Extract a star's declination from a catalog entry. + * + * @param line text line read from the catalog (not null) + * @return angle north of the celestial equator, in degrees + */ + private static float declination(String line) + throws InvalidEntryException { + assert line != null; + + String dd = line.substring(83, 86); + String mm = line.substring(86, 88); + String ss = line.substring(88, 90); + logger.log(Level.FINE, "{0}d {1}m {2}s", new Object[]{dd, mm, ss}); + + int degrees = Integer.parseInt(dd); + if (degrees < -maxDeclination || degrees > maxDeclination) { + throw new InvalidEntryException( + "dec degrees should be between -90 and 90, inclusive"); + } + int minutes = Integer.parseInt(mm); + if (minutes < 0 || minutes >= maxMinutes) { + throw new InvalidEntryException( + "dec minutes should be between 0 and 59, inclusive"); + } + float seconds = Float.parseFloat(ss); + if (seconds < 0f || seconds >= maxSeconds) { + throw new InvalidEntryException( + "dec seconds should be between 0 and 59, inclusive"); + } + + float result; + if (degrees > 0) { + result = degrees + minutes / 60f + seconds / 3600f; + } else { + result = degrees - minutes / 60f - seconds / 3600f; + } + + assert result >= -maxDeclination : result; + assert result <= maxDeclination : result; + logger.log(Level.FINE, "result = {0}", result); + return result; + } + + /** + * Read catalog lines and build up the collection of stars. + * + * @param bufferedReader reader to use (not null) + * @param catalogFilePath catalog path for logging (not null) + * @param result collection to populate (not null) + */ + private static void read(BufferedReader bufferedReader, + String catalogFilePath, Collection result) + throws IOException, InvalidEntryException { + assert bufferedReader != null; + assert result != null; + + CatalogStats stats = new CatalogStats(); + for (;;) { + String textLine = bufferedReader.readLine(); + if (textLine == null) { + break; + } + logger.log(Level.FINE, "{0}", textLine); + if (textLine.length() < 5) { + continue; + } + String actualPrefix = textLine.substring(0, 4); + if (!actualPrefix.matches("[ ]*[0-9]+")) { + continue; + } + ++stats.readEntries; + + int actualEntry = Integer.parseInt(actualPrefix.trim()); + if (actualEntry > stats.nextEntry) { + logger.log(Level.FINE, "missed entries #{0} through #{1}", + new Object[]{stats.nextEntry, actualEntry - 1}); + stats.nextEntry = actualEntry; + stats.missedEntries += actualEntry - stats.nextEntry; + + } else if (actualEntry < stats.nextEntry) { + logger.log(Level.WARNING, + "skipped entry due to duplicate id #{0}", + actualEntry); + ++stats.skippedEntries; + continue; + } + + assert actualEntry == stats.nextEntry : stats.nextEntry; + Star star = null; + try { + star = readStar(textLine, stats.nextEntry); + + } catch (InvalidMagnitudeException exception) { + logger.log(Level.FINE, + "skipped entry #{0} due to invalid magnitude", + stats.nextEntry); + ++stats.skippedEntries; + } + if (star != null) { + if (result.contains(star)) { + logger.log(Level.FINE, "entry #{0} is a duplicate", + stats.nextEntry); + ++stats.duplicateEntries; + } else { + boolean success = result.add(star); + assert success : stats.nextEntry; + } + } + ++stats.nextEntry; + } + + logStats(catalogFilePath, stats, result.size()); + } + + /** + * Construct a new star based on a catalog entry. + * + * @param textLine line of text read from the catalog (not null) + * @param entryId entry id (≥1) + * @return new star + */ + private static Star readStar(String textLine, int entryId) + throws InvalidEntryException, InvalidMagnitudeException { + assert textLine != null; + assert entryId >= 1 : entryId; + + if (textLine.length() < 107) { + throw new InvalidEntryException("catalog entry is too short"); + } + String magnitudeText = textLine.substring(102, 107); + logger.log(Level.FINE, "mag={0}", magnitudeText); + + if (magnitudeText.equals(" ")) { + throw new InvalidMagnitudeException(); + } + float apparentMagnitude; + try { + apparentMagnitude = Float.parseFloat(magnitudeText); + } catch (NumberFormatException exception) { + logger.log(Level.WARNING, "entry #{0} has invalid magnitude {1}", + new Object[]{entryId, MyString.quote(magnitudeText)}); + throw new InvalidMagnitudeException(); + } + if (apparentMagnitude < minMagnitude + || apparentMagnitude > maxMagnitude) { + logger.log(Level.WARNING, "entry #{0} has invalid magnitude {1}", + new Object[]{entryId, MyString.quote(magnitudeText)}); + throw new InvalidMagnitudeException(); + } + + float declinationDegrees = declination(textLine); + float declination = MyMath.toRadians(declinationDegrees); + float rightAscension = rightAscensionHours(textLine) * radiansPerHour; + + Star result = new Star(rightAscension, declination, apparentMagnitude); + + return result; + } + + /** + * Log catalog read statistics. + * + * @param catalogFilePath catalog path (not null) + * @param stats catalog counters (not null) + * @param collectedStars number of collected stars + */ + private static void logStats(String catalogFilePath, CatalogStats stats, + int collectedStars) { + int lastEntryRead = stats.nextEntry - 1; + if (lastEntryRead != lastEntryExpected) { + logger.log(Level.WARNING, + "expected last entry to be #{0} but it was actually #{1}", + new Object[]{lastEntryExpected, lastEntryRead}); + } + if (stats.missedEntries > 0) { + logger.log(Level.WARNING, "missed {0} entries", + stats.missedEntries); + } + logger.log(Level.INFO, "read {0} catalog entries from {1}", + new Object[]{stats.readEntries, catalogFilePath}); + if (stats.duplicateEntries > 0) { + logger.log(Level.WARNING, "{0} duplicate entries", + stats.duplicateEntries); + } + if (stats.skippedEntries > 0) { + logger.log(Level.WARNING, "{0} entries skipped", + stats.skippedEntries); + } + logger.log(Level.INFO, "collected {0} stars", collectedStars); + } + + /** + * Extract a star's right ascension from a catalog entry. + * + * @param line text line read from the catalog (not null) + * @return angle east of the March equinox, in hours + */ + private static float rightAscensionHours(String line) + throws InvalidEntryException { + assert line != null; + + String hh = line.substring(75, 77); + String mm = line.substring(77, 79); + String ss = line.substring(79, 83); + logger.log(Level.FINE, "{0}:{1}:{2}", new Object[]{hh, mm, ss}); + + int hours = Integer.parseInt(hh); + if (hours < 0 || hours >= Constants.hoursPerDay) { + throw new InvalidEntryException( + "RA hours should be between 0 and 23, inclusive"); + } + int minutes = Integer.parseInt(mm); + if (minutes < 0 || minutes >= maxMinutes) { + throw new InvalidEntryException( + "RA minutes should be between 0 and 59, inclusive"); + } + float seconds = Float.parseFloat(ss); + if (seconds < 0f || seconds >= maxSeconds) { + throw new InvalidEntryException( + "RA seconds should be between 0 and 59, inclusive"); + } + + float result = hours + minutes / 60f + seconds / 3600f; + + assert result >= 0f : result; + assert result < Constants.hoursPerDay : result; + logger.log(Level.FINE, "result = {0}", result); + return result; + } +} diff --git a/SkyAssets/src/main/java/jme3utilities/sky/textures/MakeStarMaps.java b/SkyAssets/src/main/java/jme3utilities/sky/textures/MakeStarMaps.java index 50c37e3..7d3ac80 100644 --- a/SkyAssets/src/main/java/jme3utilities/sky/textures/MakeStarMaps.java +++ b/SkyAssets/src/main/java/jme3utilities/sky/textures/MakeStarMaps.java @@ -35,10 +35,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import java.awt.Graphics2D; import java.awt.image.BufferedImage; import java.awt.image.RenderedImage; -import java.io.BufferedReader; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; import java.io.IOException; import java.util.Collection; import java.util.TreeSet; @@ -61,34 +57,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * @author Stephen Gold sgold@sonic.net */ final class MakeStarMaps { - // ************************************************************************* - // throwables - - /** - * exception to indicate unexpected invalid data in a catalog entry - */ - final private static class InvalidEntryException extends Exception { - - final static long serialVersionUID = 1L; - - /** - * Instantiate the exception. - * - * @param message descriptive text - */ - InvalidEntryException(String message) { - super(message); - } - } - - /** - * exception to indicate an invalid apparent magnitude in a catalog entry: - * such entries can be ignored - */ - final private static class InvalidMagnitudeException extends Exception { - - final static long serialVersionUID = 1L; - } // ************************************************************************* // constants and loggers @@ -96,14 +64,6 @@ final private static class InvalidMagnitudeException extends Exception { * luminosity of the faintest stars to include */ final private static float luminosityCutoff = 0.1f; - /** - * maximum (dimmest) apparent magnitude of all stars in the catalog - */ - final private static float maxMagnitude = 7.96f; - /** - * minimum (brightest) apparent magnitude of all stars in the catalog - */ - final private static float minMagnitude = -1.47f; /** * luminosity ratio between successive stellar magnitudes (5th root of 100) */ @@ -113,22 +73,6 @@ final private static class InvalidMagnitudeException extends Exception { */ final private static float radiansPerHour = FastMath.TWO_PI / Constants.hoursPerDay; - /** - * expected id of the last entry in the catalog - */ - final private static int lastEntryExpected = 9_110; - /** - * number of degrees from equator to pole - */ - final private static int maxDeclination = 90; - /** - * number of minutes in an hour or degree - */ - final private static int maxMinutes = 60; - /** - * number of seconds in a minute - */ - final private static int maxSeconds = 60; /** * number of points per ellipse */ @@ -294,54 +238,6 @@ private static Vector2f cubeUV(Vector3f direction, int faceIndex) { return uv; } - /** - * Extract a star's declination from a catalog entry. - * - * @param line of text read from the catalog (not null) - * @return angle north of the celestial equator (in degrees, ≤90, - * ≥-90) - */ - private static float declination(String line) - throws InvalidEntryException { - assert line != null; - - // Extract declination components from the line of text. - String dd = line.substring(83, 86); - String mm = line.substring(86, 88); - String ss = line.substring(88, 90); - logger.log(Level.FINE, "{0}d {1}m {2}s", new Object[]{dd, mm, ss}); - - // sanity checks - int degrees = Integer.parseInt(dd); - if (degrees < -maxDeclination || degrees > maxDeclination) { - throw new InvalidEntryException( - "dec degrees should be between -90 and 90, inclusive"); - } - int minutes = Integer.parseInt(mm); - if (minutes < 0 || minutes >= maxMinutes) { - throw new InvalidEntryException( - "dec minutes should be between 0 and 59, inclusive"); - } - float seconds = Float.parseFloat(ss); - if (seconds < 0f || seconds >= maxSeconds) { - throw new InvalidEntryException( - "dec seconds should be between 0 and 59, inclusive"); - } - - // Convert to an angle. - float result; // in degrees - if (degrees > 0) { - result = degrees + minutes / 60f + seconds / 3600f; - } else { - result = degrees - minutes / 60f - seconds / 3600f; - } - - assert result >= -maxDeclination : result; - assert result <= maxDeclination : result; - logger.log(Level.FINE, "result = {0}", result); - return result; - } - /** * Generate 6 starry sky texture maps for a cube. * @@ -863,227 +759,8 @@ private static boolean plotStarOnDome(BufferedImage map, * Read the star catalog and add each valid star to the collection. */ private static void readCatalog() { - File catalogFile = new File(catalogFilePath); - FileReader fileReader = null; - BufferedReader bufferedReader = null; - try { - fileReader = new FileReader(catalogFile); - bufferedReader = new BufferedReader(fileReader); - readCatalog(bufferedReader); - } catch (FileNotFoundException exception) { - logger.log(Level.SEVERE, "unable to open {0}", - MyString.quote(catalogFilePath)); - throw new RuntimeException(exception); - } catch (IOException exception) { - logger.log(Level.SEVERE, "unable to read {0}", - MyString.quote(catalogFilePath)); - } catch (InvalidEntryException exception) { - logger.log(Level.SEVERE, "", exception); - } finally { - try { - if (fileReader != null) { - fileReader.close(); - } - if (bufferedReader != null) { - bufferedReader.close(); - } - } catch (IOException exception) { - logger.log(Level.WARNING, "unable to close {0}", - MyString.quote(catalogFilePath)); - } - } + stars.clear(); + stars.addAll(BrightStarCatalogReader.read(catalogFilePath)); } - /** - * Read the catalog line by line and use the data therein to build up the - * collection of stars. - * - * @param bufferedReader the reader to use (not null) - */ - private static void readCatalog(BufferedReader bufferedReader) - throws IOException, InvalidEntryException { - assert bufferedReader != null; - - int duplicateEntries = 0; - int nextEntry = 1; - int missedEntries = 0; - int readEntries = 0; - int skippedEntries = 0; - for (;;) { - String textLine; - textLine = bufferedReader.readLine(); - if (textLine == null) { - // Might have reached the end of the catalog file. - break; - } - logger.log(Level.FINE, "{0}", textLine); - /* - * If the line does not resemble a catalog entry, - * then silently ignore it. - */ - if (textLine.length() < 5) { - continue; - } - String actualPrefix = textLine.substring(0, 4); - if (!actualPrefix.matches("[ ]*[0-9]+")) { - continue; - } - ++readEntries; - - // Cope with missing/duplicate entry ids. - int actualEntry = Integer.parseInt(actualPrefix.trim()); - if (actualEntry > nextEntry) { - logger.log(Level.FINE, "missed entries #{0} through #{1}", - new Object[]{nextEntry, actualEntry - 1}); - nextEntry = actualEntry; - missedEntries += actualEntry - nextEntry; - - } else if (actualEntry < nextEntry) { - logger.log(Level.WARNING, - "skipped entry due to duplicate id #{0}", - actualEntry); - ++skippedEntries; - continue; - } - - assert actualEntry == nextEntry : nextEntry; - Star star = null; - try { - star = readStar(textLine, nextEntry); - - } catch (InvalidMagnitudeException exception) { - logger.log(Level.FINE, - "skipped entry #{0} due to invalid magnitude", - nextEntry); - ++skippedEntries; - } - if (star != null) { - if (stars.contains(star)) { - logger.log(Level.FINE, "entry #{0} is a duplicate", - nextEntry); - ++duplicateEntries; - } else { - boolean success = stars.add(star); - assert success : nextEntry; - } - } - ++nextEntry; - } - - // Verify that the entire catalog was read. - int lastEntryRead = nextEntry - 1; - if (lastEntryRead != lastEntryExpected) { - logger.log(Level.WARNING, - "expected last entry to be #{0} but it was actually #{1}", - new Object[]{lastEntryExpected, lastEntryRead}); - } - - // Log statistics. - if (missedEntries > 0) { - logger.log(Level.WARNING, "missed {0} entries", missedEntries); - } - logger.log(Level.INFO, "read {0} catalog entries from {1}", - new Object[]{readEntries, catalogFilePath}); - if (duplicateEntries > 0) { - logger.log(Level.WARNING, "{0} duplicate entries", - duplicateEntries); - } - if (skippedEntries > 0) { - logger.log(Level.WARNING, "{0} entries skipped", skippedEntries); - } - logger.log(Level.INFO, "collected {0} stars", stars.size()); - } - - /** - * Construct a new star based on a catalog entry. - * - * @param textLine line of text read from the catalog (not null) - * @param entryId (≥1) - * @return new instance - */ - private static Star readStar(String textLine, int entryId) - throws InvalidEntryException, InvalidMagnitudeException { - assert textLine != null; - assert entryId >= 1 : entryId; - - // Extract the apparent magnitude field from the line of text. - if (textLine.length() < 107) { - throw new InvalidEntryException("catalog entry is too short"); - } - String magnitudeText = textLine.substring(102, 107); - logger.log(Level.FINE, "mag={0}", magnitudeText); - - // sanity checks on the magnitude - if (magnitudeText.equals(" ")) { - throw new InvalidMagnitudeException(); - } - float apparentMagnitude; - try { - apparentMagnitude = Float.parseFloat(magnitudeText); - } catch (NumberFormatException exception) { - logger.log(Level.WARNING, "entry #{0} has invalid magnitude {1}", - new Object[]{entryId, MyString.quote(magnitudeText)}); - throw new InvalidMagnitudeException(); - } - if (apparentMagnitude < minMagnitude - || apparentMagnitude > maxMagnitude) { - logger.log(Level.WARNING, "entry #{0} has invalid magnitude {1}", - new Object[]{entryId, MyString.quote(magnitudeText)}); - throw new InvalidMagnitudeException(); - } - /* - * Compute the star's equatorial coordinates - * and convert them to radians. - */ - float declinationDegrees = declination(textLine); - float declination = MyMath.toRadians(declinationDegrees); - float rightAscension = rightAscensionHours(textLine) * radiansPerHour; - - // Instantiate the star. - Star result = new Star(rightAscension, declination, apparentMagnitude); - - return result; - } - - /** - * Extract a star's right ascension from a catalog entry. - * - * @param line of text read from the catalog (not null) - * @return angle east of the March equinox (in hours, <24, ≥0) - */ - private static float rightAscensionHours(String line) - throws InvalidEntryException { - assert line != null; - - // Extract right ascension components from the line of text. - String hh = line.substring(75, 77); - String mm = line.substring(77, 79); - String ss = line.substring(79, 83); - logger.log(Level.FINE, "{0}:{1}:{2}", new Object[]{hh, mm, ss}); - - // sanity checks - int hours = Integer.parseInt(hh); - if (hours < 0 || hours >= Constants.hoursPerDay) { - throw new InvalidEntryException( - "RA hours should be between 0 and 23, inclusive"); - } - int minutes = Integer.parseInt(mm); - if (minutes < 0 || minutes >= maxMinutes) { - throw new InvalidEntryException( - "RA minutes should be between 0 and 59, inclusive"); - } - float seconds = Float.parseFloat(ss); - if (seconds < 0f || seconds >= maxSeconds) { - throw new InvalidEntryException( - "RA seconds should be between 0 and 59, inclusive"); - } - - // Convert to an angle. - float result = hours + minutes / 60f + seconds / 3600f; // in hours - - assert result >= 0f : result; - assert result < Constants.hoursPerDay : result; - logger.log(Level.FINE, "result = {0}", result); - return result; - } } From 0bbffb354e4a9a50bb76f93291a2957c8350b2a7 Mon Sep 17 00:00:00 2001 From: CalistaVerner Date: Thu, 25 Jun 2026 08:51:24 +0300 Subject: [PATCH 09/17] Organize SkyLibrary helpers into focused packages Move atmospheric parsing and lighting helpers into jme3utilities.sky.atmosphere. Move texture sampling helpers into jme3utilities.sky.material, scene naming helpers into jme3utilities.sky.scene, and updater application helpers into jme3utilities.sky.update. Keep public API classes in jme3utilities.sky and keep SkyMaterialFactory package-private so CloudLayer construction stays encapsulated. Document the source layout in README and validate with :SkyLibrary:compileJava, :SkyLibrary:checkstyleMain, and git diff --check. --- README.md | 28 ++++++++++++++++++ .../java/jme3utilities/sky/SkyAtmosphere.java | 1 + .../java/jme3utilities/sky/SkyControl.java | 1 + .../jme3utilities/sky/SkyControlCore.java | 1 + .../jme3utilities/sky/SkyDomeFactory.java | 1 + .../jme3utilities/sky/SkyMaterialCore.java | 1 + .../main/java/jme3utilities/sky/Updater.java | 1 + .../SkyAtmosphereProperties.java | 11 +++---- .../{ => atmosphere}/SkyLightingModel.java | 11 +++---- .../sky/atmosphere/package-info.java | 29 +++++++++++++++++++ .../sky/{ => material}/SkyTextureSampler.java | 11 +++---- .../sky/material/package-info.java | 29 +++++++++++++++++++ .../sky/{ => scene}/SkyNodeNames.java | 18 ++++++------ .../jme3utilities/sky/scene/package-info.java | 29 +++++++++++++++++++ .../sky/{ => update}/UpdaterApplier.java | 17 ++++++----- .../sky/update/package-info.java | 29 +++++++++++++++++++ 16 files changed, 186 insertions(+), 32 deletions(-) rename SkyLibrary/src/main/java/jme3utilities/sky/{ => atmosphere}/SkyAtmosphereProperties.java (92%) rename SkyLibrary/src/main/java/jme3utilities/sky/{ => atmosphere}/SkyLightingModel.java (93%) create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/atmosphere/package-info.java rename SkyLibrary/src/main/java/jme3utilities/sky/{ => material}/SkyTextureSampler.java (92%) create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/material/package-info.java rename SkyLibrary/src/main/java/jme3utilities/sky/{ => scene}/SkyNodeNames.java (81%) create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/scene/package-info.java rename SkyLibrary/src/main/java/jme3utilities/sky/{ => update}/UpdaterApplier.java (90%) create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/update/package-info.java diff --git a/README.md b/README.md index 2947bf6..2ce9601 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,34 @@ import jme3utilities.sky.SkyAtmosphere; That keeps existing code usable while the artifact itself is published under Take Some() coordinates. + +## Source layout + +The public API stays in the stable `jme3utilities.sky` namespace: + +```text +SkyControl +SkyControlCore +SkyMaterial / SkyMaterialCore +SkyAtmosphere +CloudLayer +SunAndStars +Updater +``` + +Implementation helpers are grouped by responsibility in focused packages: + +```text +jme3utilities.sky.atmosphere atmospheric parsing and lighting math +jme3utilities.sky.material texture sampling helpers +jme3utilities.sky.scene scene-graph naming helpers +jme3utilities.sky.update live updater application helpers +``` + +Some helper classes remain package-private in `jme3utilities.sky` when moving +those classes would force us to expose constructors or state that should stay +encapsulated. Public compatibility is preferred over cosmetic directory moves. + ## Package ### Release package diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphere.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphere.java index 7b6b082..3bfcd76 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphere.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphere.java @@ -36,6 +36,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import java.io.IOException; import java.util.Properties; import jme3utilities.Validate; +import jme3utilities.sky.atmosphere.SkyAtmosphereProperties; /** * Mutable atmospheric tuning profile used by SkyControl. diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java index 609fa87..715d62c 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java @@ -48,6 +48,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import jme3utilities.math.MyColor; import jme3utilities.math.MyMath; import jme3utilities.mesh.DomeMesh; +import jme3utilities.sky.atmosphere.SkyLightingModel; /** * Simple control to simulate a dynamic sky using assets and techniques derived diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControlCore.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControlCore.java index b45eefe..32c526f 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControlCore.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControlCore.java @@ -52,6 +52,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import jme3utilities.Validate; import jme3utilities.math.MyColor; import jme3utilities.mesh.DomeMesh; +import jme3utilities.sky.scene.SkyNodeNames; /** * Core fields and methods of a SubtreeControl to simulate a dynamic sky. diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyDomeFactory.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyDomeFactory.java index 94e932a..a30b120 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyDomeFactory.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyDomeFactory.java @@ -36,6 +36,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import com.jme3.scene.Node; import jme3utilities.MyAsset; import jme3utilities.mesh.DomeMesh; +import jme3utilities.sky.scene.SkyNodeNames; /** * Factory for sky dome geometries and default star-map nodes. diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialCore.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialCore.java index 349d538..7a289c1 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialCore.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialCore.java @@ -44,6 +44,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import jme3utilities.MyAsset; import jme3utilities.Validate; import jme3utilities.math.MyMath; +import jme3utilities.sky.material.SkyTextureSampler; /** * Core fields and methods of a material for a dynamic sky dome. diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/Updater.java b/SkyLibrary/src/main/java/jme3utilities/sky/Updater.java index 8fcff64..d595289 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/Updater.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/Updater.java @@ -47,6 +47,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import java.util.logging.Logger; import jme3utilities.Validate; import jme3utilities.ViewPortListener; +import jme3utilities.sky.update.UpdaterApplier; /** * Component of SkyControl to keep track of all the lights, shadows, and diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphereProperties.java b/SkyLibrary/src/main/java/jme3utilities/sky/atmosphere/SkyAtmosphereProperties.java similarity index 92% rename from SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphereProperties.java rename to SkyLibrary/src/main/java/jme3utilities/sky/atmosphere/SkyAtmosphereProperties.java index c8d1455..1dfd9ff 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyAtmosphereProperties.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/atmosphere/SkyAtmosphereProperties.java @@ -23,7 +23,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jme3utilities.sky; +package jme3utilities.sky.atmosphere; import com.jme3.math.ColorRGBA; import java.util.Properties; @@ -33,7 +33,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * * @author Take Some */ -final class SkyAtmosphereProperties { +public final class SkyAtmosphereProperties { /** * Hidden constructor. */ @@ -49,7 +49,7 @@ private SkyAtmosphereProperties() { * @param fallback fallback color (not null) * @return parsed or fallback color */ - static ColorRGBA readColor( + public static ColorRGBA readColor( Properties properties, String key, ColorRGBA fallback) { String text = properties.getProperty(key); if (text == null) { @@ -79,7 +79,8 @@ static ColorRGBA readColor( * @param fallback fallback value * @return parsed or fallback value */ - static float readFloat(Properties properties, String key, float fallback) { + public static float readFloat( + Properties properties, String key, float fallback) { String text = properties.getProperty(key); if (text == null) { return fallback; @@ -95,7 +96,7 @@ static float readFloat(Properties properties, String key, float fallback) { * @param value value to validate * @param description value description (not null) */ - static void validatePosFraction(float value, String description) { + public static void validatePosFraction(float value, String description) { if (!(value > 0f && value <= 1f)) { throw new IllegalArgumentException( description + " should be greater than 0" diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyLightingModel.java b/SkyLibrary/src/main/java/jme3utilities/sky/atmosphere/SkyLightingModel.java similarity index 93% rename from SkyLibrary/src/main/java/jme3utilities/sky/SkyLightingModel.java rename to SkyLibrary/src/main/java/jme3utilities/sky/atmosphere/SkyLightingModel.java index aa7d018..69c26ec 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyLightingModel.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/atmosphere/SkyLightingModel.java @@ -23,17 +23,18 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jme3utilities.sky; +package jme3utilities.sky.atmosphere; import com.jme3.math.ColorRGBA; import com.jme3.math.FastMath; +import jme3utilities.sky.SkyAtmosphere; /** * Physically-inspired sky lighting calculations shared by SkyControl. * * @author Take Some */ -final class SkyLightingModel { +public final class SkyLightingModel { /** * Hidden constructor. */ @@ -48,7 +49,7 @@ private SkyLightingModel() { * @param sineSolarAltitude sine of the solar altitude * @return transmission fraction between 0 and 1 */ - static float airMassTransmission( + public static float airMassTransmission( SkyAtmosphere atmosphere, float sineSolarAltitude) { float altitude = FastMath.clamp(sineSolarAltitude, 0.01f, 1f); float opticalMass = 1f / (altitude + 0.15f @@ -68,7 +69,7 @@ static float airMassTransmission( * @param sineSolarAltitude sine of the solar altitude * @return new color */ - static ColorRGBA daylightColor( + public static ColorRGBA daylightColor( SkyAtmosphere atmosphere, float sineSolarAltitude) { ColorRGBA result = atmosphere.copySunLight(null); float transmission = airMassTransmission(atmosphere, sineSolarAltitude); @@ -89,7 +90,7 @@ static ColorRGBA daylightColor( * @param input input value * @return smoothed fraction */ - static float smoothStep(float input) { + public static float smoothStep(float input) { float x = FastMath.saturate(input); float result = x * x * (3f - 2f * x); diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/atmosphere/package-info.java b/SkyLibrary/src/main/java/jme3utilities/sky/atmosphere/package-info.java new file mode 100644 index 0000000..6246509 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/atmosphere/package-info.java @@ -0,0 +1,29 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/** + * Atmospheric profile parsing and lighting calculations. + */ +package jme3utilities.sky.atmosphere; diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyTextureSampler.java b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyTextureSampler.java similarity index 92% rename from SkyLibrary/src/main/java/jme3utilities/sky/SkyTextureSampler.java rename to SkyLibrary/src/main/java/jme3utilities/sky/material/SkyTextureSampler.java index d35e221..a4482bb 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyTextureSampler.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyTextureSampler.java @@ -23,18 +23,19 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jme3utilities.sky; +package jme3utilities.sky.material; import com.jme3.math.FastMath; import com.jme3.math.Vector2f; import com.jme3.texture.image.ImageRaster; +import jme3utilities.sky.Constants; /** * Texture sampling utilities for sky materials. * * @author Take Some */ -final class SkyTextureSampler { +public final class SkyTextureSampler { /** * Hidden constructor. */ @@ -49,7 +50,7 @@ private SkyTextureSampler() { * @param uv texture coordinates to sample (not null, unaffected) * @return red intensity (≤1, ≥0) */ - static float sampleRed(ImageRaster colorImage, Vector2f uv) { + public static float sampleRed(ImageRaster colorImage, Vector2f uv) { assert colorImage != null; assert uv != null; float u = uv.x; @@ -83,8 +84,8 @@ static float sampleRed(ImageRaster colorImage, Vector2f uv) { + r10 * xFraction1 * yFraction0 + r11 * xFraction1 * yFraction1; - assert result >= Constants.alphaMin : result; - assert result <= Constants.alphaMax : result; + assert result >= 0f : result; + assert result <= 1f : result; return result; } } diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/material/package-info.java b/SkyLibrary/src/main/java/jme3utilities/sky/material/package-info.java new file mode 100644 index 0000000..935ca91 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/material/package-info.java @@ -0,0 +1,29 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/** + * Sky material and texture sampling helpers. + */ +package jme3utilities.sky.material; diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyNodeNames.java b/SkyLibrary/src/main/java/jme3utilities/sky/scene/SkyNodeNames.java similarity index 81% rename from SkyLibrary/src/main/java/jme3utilities/sky/SkyNodeNames.java rename to SkyLibrary/src/main/java/jme3utilities/sky/scene/SkyNodeNames.java index 5faf213..027a524 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyNodeNames.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/scene/SkyNodeNames.java @@ -23,28 +23,28 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jme3utilities.sky; +package jme3utilities.sky.scene; /** * Internal scene-graph names used by sky controls and factories. * * @author Take Some */ -final class SkyNodeNames { +public final class SkyNodeNames { /** Name for the bottom geometry. */ - final static String bottom = "bottom"; + final public static String bottom = "bottom"; /** Name for the clouds-only geometry. */ - final static String clouds = "clouds"; + final public static String clouds = "clouds"; /** Name for the northern stars geometry. */ - final static String northStars = "northern stars"; + final public static String northStars = "northern stars"; /** Name for the sky subtree node. */ - final static String skyNode = "sky node"; + final public static String skyNode = "sky node"; /** Name for the southern stars geometry. */ - final static String southStars = "southern stars"; + final public static String southStars = "southern stars"; /** Name for the stars node. */ - final static String starsNode = "stars node"; + final public static String starsNode = "stars node"; /** Name for the top geometry. */ - final static String top = "top"; + final public static String top = "top"; /** * Hidden constructor. diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/scene/package-info.java b/SkyLibrary/src/main/java/jme3utilities/sky/scene/package-info.java new file mode 100644 index 0000000..73d399e --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/scene/package-info.java @@ -0,0 +1,29 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/** + * Sky scene-graph naming helpers. + */ +package jme3utilities.sky.scene; diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/UpdaterApplier.java b/SkyLibrary/src/main/java/jme3utilities/sky/update/UpdaterApplier.java similarity index 90% rename from SkyLibrary/src/main/java/jme3utilities/sky/UpdaterApplier.java rename to SkyLibrary/src/main/java/jme3utilities/sky/update/UpdaterApplier.java index 619ac35..d5cba99 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/UpdaterApplier.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/update/UpdaterApplier.java @@ -23,7 +23,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jme3utilities.sky; +package jme3utilities.sky.update; import com.jme3.light.AmbientLight; import com.jme3.light.DirectionalLight; @@ -40,7 +40,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * * @author Take Some */ -final class UpdaterApplier { +public final class UpdaterApplier { /** * Hidden constructor. */ @@ -55,7 +55,7 @@ private UpdaterApplier() { * @param color source color (not null, unaffected) * @param multiplier intensity multiplier */ - static void applyAmbient( + public static void applyAmbient( AmbientLight light, ColorRGBA color, float multiplier) { if (light != null) { ColorRGBA applied = color.mult(multiplier); @@ -69,7 +69,7 @@ static void applyAmbient( * @param filters target filters (not null) * @param intensity bloom intensity */ - static void applyBloom(List filters, float intensity) { + public static void applyBloom(List filters, float intensity) { for (BloomFilter filter : filters) { filter.setBloomIntensity(intensity); } @@ -83,7 +83,7 @@ static void applyBloom(List filters, float intensity) { * @param multiplier intensity multiplier * @param direction direction to the light source (not null, unaffected) */ - static void applyMain(DirectionalLight light, ColorRGBA color, + public static void applyMain(DirectionalLight light, ColorRGBA color, float multiplier, Vector3f direction) { if (light != null) { ColorRGBA applied = color.mult(multiplier); @@ -99,7 +99,7 @@ static void applyMain(DirectionalLight light, ColorRGBA color, * @param filters target filters (not null) * @param intensity shadow intensity */ - static void applyShadowFilters( + public static void applyShadowFilters( List> filters, float intensity) { for (AbstractShadowFilter filter : filters) { filter.setShadowIntensity(intensity); @@ -112,7 +112,7 @@ static void applyShadowFilters( * @param renderers target renderers (not null) * @param intensity shadow intensity */ - static void applyShadowRenderers( + public static void applyShadowRenderers( List renderers, float intensity) { for (AbstractShadowRenderer renderer : renderers) { renderer.setShadowIntensity(intensity); @@ -125,7 +125,8 @@ static void applyShadowRenderers( * @param viewPorts target viewports (not null) * @param color background color (not null, unaffected) */ - static void applyViewPorts(List viewPorts, ColorRGBA color) { + public static void applyViewPorts( + List viewPorts, ColorRGBA color) { for (ViewPort viewPort : viewPorts) { viewPort.setBackgroundColor(color); } diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/update/package-info.java b/SkyLibrary/src/main/java/jme3utilities/sky/update/package-info.java new file mode 100644 index 0000000..75725f8 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/update/package-info.java @@ -0,0 +1,29 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/** + * Updater application helpers for live scene objects. + */ +package jme3utilities.sky.update; From 61369a426350ff53aa64843318317c2fb63ab9ce Mon Sep 17 00:00:00 2001 From: CalistaVerner Date: Thu, 25 Jun 2026 08:56:22 +0300 Subject: [PATCH 10/17] Split star map projection and rendering responsibilities Move cube UV and equatorial-to-world coordinate conversion into StarMapProjection. Move pixel-level star drawing and luminosity-to-shape logic into StarMapPlotter. Move dome and cube image generation into StarMapRenderer so MakeStarMaps remains a CLI orchestrator and file writer. Validate with :SkyAssets:compileJava, :SkyAssets:checkstyleMain, :SkyAssets:skyTextures, and git diff --check. --- .../sky/textures/MakeStarMaps.java | 543 +----------------- .../sky/textures/StarMapPlotter.java | 347 +++++++++++ .../sky/textures/StarMapProjection.java | 107 ++++ .../sky/textures/StarMapRenderer.java | 122 ++++ 4 files changed, 580 insertions(+), 539 deletions(-) create mode 100644 SkyAssets/src/main/java/jme3utilities/sky/textures/StarMapPlotter.java create mode 100644 SkyAssets/src/main/java/jme3utilities/sky/textures/StarMapProjection.java create mode 100644 SkyAssets/src/main/java/jme3utilities/sky/textures/StarMapRenderer.java diff --git a/SkyAssets/src/main/java/jme3utilities/sky/textures/MakeStarMaps.java b/SkyAssets/src/main/java/jme3utilities/sky/textures/MakeStarMaps.java index 7d3ac80..963f2e6 100644 --- a/SkyAssets/src/main/java/jme3utilities/sky/textures/MakeStarMaps.java +++ b/SkyAssets/src/main/java/jme3utilities/sky/textures/MakeStarMaps.java @@ -28,12 +28,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import com.beust.jcommander.JCommander; import com.beust.jcommander.Parameter; import com.jme3.math.FastMath; -import com.jme3.math.Quaternion; -import com.jme3.math.Vector2f; -import com.jme3.math.Vector3f; -import java.awt.Color; -import java.awt.Graphics2D; -import java.awt.image.BufferedImage; import java.awt.image.RenderedImage; import java.io.IOException; import java.util.Collection; @@ -41,12 +35,8 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import java.util.logging.Level; import java.util.logging.Logger; import jme3utilities.Heart; -import jme3utilities.MyAsset; import jme3utilities.MyString; import jme3utilities.math.MyMath; -import jme3utilities.math.MyQuaternion; -import jme3utilities.math.MyVector3f; -import jme3utilities.mesh.DomeMesh; import jme3utilities.sky.Constants; /** @@ -60,31 +50,11 @@ final class MakeStarMaps { // ************************************************************************* // constants and loggers - /** - * luminosity of the faintest stars to include - */ - final private static float luminosityCutoff = 0.1f; - /** - * luminosity ratio between successive stellar magnitudes (5th root of 100) - */ - final private static float pogsonsRatio = FastMath.pow(100f, 0.2f); /** * Earth's rate of rotation (radians per sidereal hour) */ final private static float radiansPerHour = FastMath.TWO_PI / Constants.hoursPerDay; - /** - * number of points per ellipse - */ - final private static int ellipseNumPoints = 32; - /** - * x-coordinates used to draw an ellipse - */ - final private static int[] ellipseXs = new int[ellipseNumPoints]; - /** - * y-coordinates used to draw an ellipse - */ - final private static int[] ellipseYs = new int[ellipseNumPoints]; /** * message logger for this class */ @@ -131,10 +101,6 @@ final class MakeStarMaps { * stars read from the catalog */ final private static Collection stars = new TreeSet<>(); - /** - * sample dome mesh for calculating texture coordinates - */ - final private static DomeMesh domeMesh = new DomeMesh(3, 2); /** * name of preset */ @@ -204,111 +170,6 @@ public static void main(String[] arguments) { // ************************************************************************* // private methods - /** - * Calculate the texture coordinates of a point that lies in the specified - * direction from the center of the cube. - * - * @param direction (length>0, unaffected) - * @param faceIndex (≥0, <6) which face of the cube - * @return a new vector, or null if direction is too far outside the face - */ - private static Vector2f cubeUV(Vector3f direction, int faceIndex) { - assert direction != null; - assert !MyVector3f.isZero(direction); - assert faceIndex >= 0 : faceIndex; - assert faceIndex < 6 : faceIndex; - - Vector3f faceDir = MyAsset.copyFaceDirection(faceIndex); - Vector3f norm = direction.normalize(); - float dot = faceDir.dot(norm); - if (dot < 0.5f) { // way outside the face - return null; - } - - // project outward to the plane of the face - norm.divideLocal(dot); - - // convert to texture coordinates - Vector3f uDir = MyAsset.copyUDirection(faceIndex); - Vector3f vDir = MyAsset.copyVDirection(faceIndex); - float u = 0.5f * (1f + uDir.dot(norm)); - float v = 0.5f * (1f + vDir.dot(norm)); - Vector2f uv = new Vector2f(u, v); - - return uv; - } - - /** - * Generate 6 starry sky texture maps for a cube. - * - * @param latitude radians north of the equator (≤Pi/2, ≥-Pi/2) - * @param siderealTime radians since sidereal midnight (<2*Pi, ≥0) - * @param textureSize size of each texture map (pixels per side, >2) - * @return new instance - */ - private static RenderedImage[] generateCubeMap( - float latitude, float siderealTime, int textureSize) { - assert latitude >= -FastMath.HALF_PI : latitude; - assert latitude <= FastMath.HALF_PI : latitude; - assert siderealTime >= 0f : siderealTime; - assert siderealTime < FastMath.TWO_PI : siderealTime; - assert textureSize > 2 : textureSize; - - // Create a blank, grayscale buffered image for each texture map. - BufferedImage[] maps = new BufferedImage[6]; - for (int faceIndex = 0; faceIndex < 6; ++faceIndex) { - maps[faceIndex] = new BufferedImage( - textureSize, textureSize, BufferedImage.TYPE_BYTE_GRAY); - } - - // Plot individual stars on the images, starting with the faintest. - int plotCount = 0; - for (Star star : stars) { - boolean success = plotStarOnCube( - maps, star, latitude, siderealTime, textureSize); - if (success) { - ++plotCount; - } - } - logger.log(Level.FINE, "plotted {0} stars", plotCount); - - return maps; - } - - /** - * Generate a starry sky texture map for a dome. - * - * @param latitude radians north of the equator (≤Pi/2, ≥-Pi/2) - * @param siderealTime radians since sidereal midnight (<2*Pi, ≥0) - * @param textureSize size of the texture map (pixels per side, >2) - * @return new instance - */ - private static RenderedImage generateDomeMap( - float latitude, float siderealTime, int textureSize) { - assert latitude >= -FastMath.HALF_PI : latitude; - assert latitude <= FastMath.HALF_PI : latitude; - assert siderealTime >= 0f : siderealTime; - assert siderealTime < FastMath.TWO_PI : siderealTime; - assert textureSize > 2 : textureSize; - - // Create a blank, grayscale buffered image for the texture map. - BufferedImage map = new BufferedImage( - textureSize, textureSize, BufferedImage.TYPE_BYTE_GRAY); - - // Plot individual stars on the image, starting with the faintest. - int plotCount = 0; - for (Star star : stars) { - boolean success = plotStarOnDome( - map, star, latitude, siderealTime, textureSize); - if (success) { - ++plotCount; - } - } - logger.log(Level.FINE, "plotted {0} stars", plotCount); - - return map; - } - /** * Generate starry sky texture map(s) for the specified preset. * @@ -331,8 +192,8 @@ private static void generateMap(StarMapPreset preset) { float siderealTime = siderealHour * radiansPerHour; if (forCube) { // Generate 6 texture maps for a cube. - RenderedImage[] images = generateCubeMap(latitude, siderealTime, - textureSize); + RenderedImage[] images = StarMapRenderer.generateCubeMap( + stars, latitude, siderealTime, textureSize); assert images.length == 6 : images.length; for (int faceIndex = 0; faceIndex < 6; ++faceIndex) { String filePath = String.format("%s/%s/%s_%s%d.png", @@ -347,8 +208,8 @@ private static void generateMap(StarMapPreset preset) { } } else { // Generate a texture map for a dome. - RenderedImage image = generateDomeMap(latitude, siderealTime, - textureSize); + RenderedImage image = StarMapRenderer.generateDomeMap( + stars, latitude, siderealTime, textureSize); String filePath = String.format("%s/%s.png", outputDirPath, preset.textureFileName()); try { @@ -359,402 +220,6 @@ private static void generateMap(StarMapPreset preset) { } } - /** - * Plot a four-pointed star shape on a texture map. - * - * @param map texture map (not null) - * @param luminosity star's relative luminosity (in terms of pure white - * pixels, ≤37, >0) - * @param textureSize size of the texture map (pixels per side, >2) - * @param uv star's texture coordinates (not null) - * @return true if the star was successfully plotted, otherwise false - */ - private static boolean plot4PointStar(BufferedImage map, float luminosity, - int textureSize, Vector2f uv) { - assert luminosity > 0f : luminosity; - assert luminosity <= 37f : luminosity; - assert textureSize > 2 : textureSize; - assert uv != null; - /* - * Convert the star's luminosity into a shape and pixel color. - * - * The shape must be big enough to ensure that the pixels will not be - * oversaturated. For instance, a star with luminosity=4.1 - * must fill at least 5 pixels. - */ - int minPixels = (int) FastMath.ceil(luminosity); - assert minPixels >= 1 : minPixels; - /* - * Star shapes consist of a square portion (up to 5x5 pixels) - * plus optional rays. Rays are used only with odd-sized squares; - * they add either 1 or 3 pixels to each side of the square. - * In other words, they add either 4 or 12 pixels. - */ - int raySize; - int squareSize; - if (minPixels == 1) { - raySize = 0; - squareSize = 1; - } else if (minPixels <= 4) { - raySize = 0; - squareSize = 2; - } else if (minPixels <= 5) { - raySize = 1; - squareSize = 1; - } else if (minPixels <= 9) { - raySize = 0; - squareSize = 3; - } else if (minPixels <= 13) { - raySize = 1; - squareSize = 3; - } else if (minPixels <= 16) { - raySize = 0; - squareSize = 4; - } else if (minPixels <= 21) { - raySize = 3; - squareSize = 3; - } else if (minPixels <= 29) { - raySize = 1; - squareSize = 5; - } else if (minPixels <= 37) { - raySize = 3; - squareSize = 5; - } else { - logger.log(Level.SEVERE, "no shape contains {0} pixels", minPixels); - return false; - } - int numPixels = squareSize * squareSize + 4 * raySize; - assert numPixels >= minPixels : minPixels; - int brightness = Math.round(255f * luminosity / numPixels); - assert brightness >= 0 : brightness; - assert brightness <= 255 : brightness; - // TODO tint based on spectral type - Color color = new Color(brightness, brightness, brightness); - /* - * Convert the texture coordinates into (x, y) image coordinates of - * the square's upper-left pixel. - */ - float u = uv.x; - float v = uv.y; - float cornerOffset = 0.5f * (squareSize - 1); - int x = Math.round(u * textureSize - cornerOffset); - int y = Math.round(v * textureSize - cornerOffset); - - // Plot the star onto the texture map. - Graphics2D graphics = map.createGraphics(); - graphics.setColor(color); - graphics.fillRect(x, y, squareSize, squareSize); - if (raySize == 0) { - return true; - } - - assert MyMath.isOdd(squareSize) : squareSize; - int halfSize = (squareSize - 1) / 2; - switch (raySize) { - case 1: - graphics.fillRect(x - 1, y + halfSize, 1, 1); - graphics.fillRect(x + halfSize, y - 1, 1, 1); - graphics.fillRect(x + halfSize, y + squareSize, 1, 1); - graphics.fillRect(x + squareSize, y + halfSize, 1, 1); - break; - - case 3: - graphics.fillRect(x - 1, y + halfSize - 1, 1, 3); - graphics.fillRect(x + halfSize - 1, y - 1, 3, 1); - graphics.fillRect(x + halfSize - 1, y + squareSize, 3, 1); - graphics.fillRect(x + squareSize, y + halfSize - 1, 1, 3); - break; - - default: - assert false : raySize; - } - return true; - } - - /** - * Draw an ellipse -- a circle stretched to compensate for UV distortion - * near the rim of the dome. - * - * @param map texture map (not null) - * @param luminosity star's relative luminosity (in terms of pure white - * pixels, >0) - * @param textureSize size of the texture map (pixels per side, >2) - * @param uv star's texture coordinates (not null) - */ - private static void plotEllipseForDome(BufferedImage map, float luminosity, - int textureSize, Vector2f uv) { - assert map != null; - assert luminosity > 0f : luminosity; - assert textureSize > 2 : textureSize; - assert uv != null; - float u = uv.x; - float v = uv.y; - assert u >= Constants.uvMin : u; - assert u <= Constants.uvMax : u; - assert v >= Constants.uvMin : v; - assert v <= Constants.uvMax : v; - - Vector2f offset = uv.subtract(Constants.topUV); - float topDist = offset.length(); - float xDir; - float yDir; - if (topDist > 0f) { - xDir = offset.x / topDist; - yDir = offset.y / topDist; - } else { - xDir = 1f; - yDir = 0f; - } - float stretchFactor = 1f - + Constants.stretchCoefficient * topDist * topDist; - float a = FastMath.sqrt(luminosity * stretchFactor / FastMath.PI); - float b = a / stretchFactor; - - for (int i = 0; i < ellipseNumPoints; ++i) { - float theta = FastMath.TWO_PI * i / ellipseNumPoints; - float da = a * FastMath.cos(theta); - float db = b * FastMath.sin(theta); - float dx = db * xDir + da * yDir; - float dy = db * yDir - da * xDir; - int x = Math.round(u * textureSize + dx); - int y = Math.round(v * textureSize + dy); - ellipseXs[i] = x; - ellipseYs[i] = y; - } - Graphics2D graphics = map.createGraphics(); - graphics.setColor(Color.WHITE); // TODO tint based on spectral type - graphics.fillPolygon(ellipseXs, ellipseYs, ellipseNumPoints); - } - - /** - * Draw an ellipse -- a circle stretched to compensate for UV distortion - * near the edges of the quad. - * - * @param map texture map (not null) - * @param luminosity star's relative luminosity (>0) - * @param textureSize size of the texture map (pixels per side, >2) - * @param worldDirection the star's world coordinates (length=1) - * @param faceIndex which face of the cube (≥0, <6) - */ - private static void plotEllipseForQuad(BufferedImage map, float luminosity, - int textureSize, Vector3f worldDirection, int faceIndex) { - assert map != null; - assert luminosity > 0f : luminosity; - assert textureSize > 2 : textureSize; - assert worldDirection != null; - assert faceIndex >= 0 : faceIndex; - assert faceIndex < 6 : faceIndex; - - Vector3f basis1 = worldDirection.clone(); - Vector3f basis2 = new Vector3f(); - Vector3f basis3 = new Vector3f(); - MyVector3f.generateBasis(basis1, basis2, basis3); - float numPixels = textureSize * textureSize; - float area = luminosity / numPixels; - float r = 1.2f * FastMath.sqrt(area); - - Vector3f p = new Vector3f(); - for (int i = 0; i < ellipseNumPoints; ++i) { - float theta = FastMath.TWO_PI * i / ellipseNumPoints; - float rCos = r * FastMath.cos(theta); - float rSin = r * FastMath.sin(theta); - p.scaleAdd(rCos, basis2, basis1); - p.scaleAdd(rSin, basis3, p); - Vector2f uv = cubeUV(p, faceIndex); - if (uv == null) { - return; - } - int x = Math.round(uv.x * textureSize); - int y = Math.round(uv.y * textureSize); - ellipseXs[i] = x; - ellipseYs[i] = y; - } - Graphics2D graphics = map.createGraphics(); - graphics.setColor(Color.WHITE); // TODO tint based on spectral type - graphics.fillPolygon(ellipseXs, ellipseYs, ellipseNumPoints); - } - - /** - * Plot a star's position at the specified time onto a cube. - * - * @param maps texture maps for 6 cube faces (not null, modified) - * @param star star to plot (not null) - * @param latitude radians north of the equator (≤Pi/2, ≥-Pi/2) - * @param siderealTime radians since sidereal midnight (<2*Pi, ≥0) - * @param textureSize size of the texture map (pixels per side, >2) - * @return true if the star was successfully plotted, otherwise false - */ - private static boolean plotStarOnCube(BufferedImage[] maps, Star star, - float latitude, float siderealTime, int textureSize) { - assert maps != null; - assert maps.length == 6 : maps.length; - assert star != null; - assert latitude >= -FastMath.HALF_PI : latitude; - assert latitude <= FastMath.HALF_PI : latitude; - assert siderealTime >= 0f : siderealTime; - assert siderealTime < FastMath.TWO_PI : siderealTime; - assert textureSize > 2 : textureSize; - - Vector3f equatorial = star.getEquatorialLocation(siderealTime); - /* - * Convert equatorial coordinates to world coordinates, where: - * +X points to the north horizon - * +Y points to the zenith - * +Z points to the east horizon - * - * The conversion consists of a (latitude - Pi/2) rotation about the Y - * (east) axis followed by permutation of the axes. - */ - float coLatitude = FastMath.HALF_PI - latitude; - Quaternion rotation = new Quaternion(); - rotation.fromAngleNormalAxis(-coLatitude, Vector3f.UNIT_Y); - Vector3f rotated = MyQuaternion.rotate(rotation, equatorial, null); - assert rotated.isUnitVector() : rotated; - Vector3f world = new Vector3f(-rotated.x, rotated.z, rotated.y); - - float apparentMagnitude = star.getApparentMagnitude(); - boolean success = plotStarOnCube(maps, apparentMagnitude, - textureSize, world); - - return success; - } - - /** - * Plot a star onto a texture map for a cube. - * - * @param maps texture maps for 6 cube faces (not null, modified) - * @param apparentMagnitude the star's brightness (log scale) - * @param textureSize size of the texture map (pixels per side, <2) - * @param worldDirection the star's world coordinates (length=1) - * @return true if the star was successfully plotted, otherwise false - */ - private static boolean plotStarOnCube(BufferedImage[] maps, - float apparentMagnitude, int textureSize, Vector3f worldDirection) { - assert maps != null; - assert maps.length == 6 : maps.length; - assert worldDirection != null; - assert worldDirection.isUnitVector() : worldDirection; - assert textureSize > 2 : textureSize; - - // Convert apparent magnitude to relative luminosity. - float resolution = textureSize / 2_048f; - float luminosity0 = 100f * resolution * resolution; - float luminosity = luminosity0 * 1.5f - * FastMath.pow(pogsonsRatio, -apparentMagnitude); - if (luminosity < luminosityCutoff) { - return false; - } - - boolean success = false; - for (int faceIndex = 0; faceIndex < 6; ++faceIndex) { - /* - * Convert world direction to texture coordinates on this - * face of the cube. - */ - Vector2f uv = cubeUV(worldDirection, faceIndex); - if (uv != null) { - BufferedImage map = maps[faceIndex]; - - if (luminosity <= 37f) { - boolean success2 = plot4PointStar(map, luminosity, - textureSize, uv); - if (success2) { - success = true; - } - } else { - plotEllipseForQuad(map, luminosity, textureSize, - worldDirection, faceIndex); - success = true; - } - } - } - return success; - } - - /** - * Plot a star's position at the specified time onto a texture map for a - * dome. - * - * @param map texture map (not null, modified) - * @param star star to plot (not null) - * @param latitude radians north of the equator (≤Pi/2, ≥-Pi/2) - * @param siderealTime radians since sidereal midnight (<2*Pi, ≥0) - * @param textureSize size of the texture map (pixels per side, >2) - * @return true if the star was successfully plotted, otherwise false - */ - private static boolean plotStarOnDome(BufferedImage map, Star star, - float latitude, float siderealTime, int textureSize) { - assert map != null; - assert star != null; - assert latitude >= -FastMath.HALF_PI : latitude; - assert latitude <= FastMath.HALF_PI : latitude; - assert siderealTime >= 0f : siderealTime; - assert siderealTime < FastMath.TWO_PI : siderealTime; - assert textureSize > 2 : textureSize; - - Vector3f equatorial = star.getEquatorialLocation(siderealTime); - /* - * Convert equatorial coordinates to world coordinates, where: - * +X points to the north horizon - * +Y points to the zenith - * +Z points to the east horizon - * - * The conversion consists of a (latitude - Pi/2) rotation about the Y - * (east) axis followed by permutation of the axes. - */ - float coLatitude = FastMath.HALF_PI - latitude; - Quaternion rotation = new Quaternion(); - rotation.fromAngleNormalAxis(-coLatitude, Vector3f.UNIT_Y); - Vector3f rotated = MyQuaternion.rotate(rotation, equatorial, null); - assert rotated.isUnitVector() : rotated; - if (rotated.z < 0f) { // The star lies below the horizon, so skip it. - return false; - } - Vector3f world = new Vector3f(-rotated.x, rotated.z, rotated.y); - - float apparentMagnitude = star.getApparentMagnitude(); - boolean success = plotStarOnDome( - map, apparentMagnitude, textureSize, world); - - return success; - } - - /** - * Plot a star on a texture map for a dome. - * - * @param map texture map (not null) - * @param apparentMagnitude the star's brightness - * @param textureSize size of the texture map (pixels per side, <2) - * @param worldDirection the star's world coordinates (length=1) - * @return true if the star was successfully plotted, otherwise false - */ - private static boolean plotStarOnDome(BufferedImage map, - float apparentMagnitude, int textureSize, Vector3f worldDirection) { - assert map != null; - assert worldDirection != null; - assert worldDirection.isUnitVector() : worldDirection; - assert textureSize > 2 : textureSize; - - // Convert apparent magnitude to relative luminosity. - float resolution = textureSize / 2_048f; - float luminosity0 = 37f * resolution * resolution; - float luminosity - = luminosity0 * FastMath.pow(pogsonsRatio, -apparentMagnitude); - if (luminosity < luminosityCutoff) { - return false; - } - - // Convert world direction to texture coordinates on a dome. - Vector2f uv = domeMesh.directionUV(worldDirection); - - if (luminosity <= 37f) { - boolean success = plot4PointStar(map, luminosity, textureSize, uv); - return success; - } - plotEllipseForDome(map, luminosity, textureSize, uv); - return true; - } - /** * Read the star catalog and add each valid star to the collection. */ diff --git a/SkyAssets/src/main/java/jme3utilities/sky/textures/StarMapPlotter.java b/SkyAssets/src/main/java/jme3utilities/sky/textures/StarMapPlotter.java new file mode 100644 index 0000000..ab6f4cb --- /dev/null +++ b/SkyAssets/src/main/java/jme3utilities/sky/textures/StarMapPlotter.java @@ -0,0 +1,347 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.textures; + +import com.jme3.math.FastMath; +import com.jme3.math.Vector2f; +import com.jme3.math.Vector3f; +import java.awt.Color; +import java.awt.Graphics2D; +import java.awt.image.BufferedImage; +import java.util.logging.Level; +import java.util.logging.Logger; +import jme3utilities.math.MyMath; +import jme3utilities.math.MyVector3f; +import jme3utilities.mesh.DomeMesh; +import jme3utilities.sky.Constants; + +/** + * Draws stars onto dome and cube star-map textures. + * + * @author Take Some + */ +final class StarMapPlotter { + /** Luminosity of the faintest stars to draw. */ + final private static float luminosityCutoff = 0.1f; + /** Number of points per ellipse. */ + final private static int ellipseNumPoints = 32; + /** Luminosity ratio between successive stellar magnitudes. */ + final private static float pogsonsRatio = FastMath.pow(100f, 0.2f); + /** Sample dome mesh for calculating texture coordinates. */ + final private static DomeMesh domeMesh = new DomeMesh(3, 2); + /** x-coordinates used to draw an ellipse. */ + final private static int[] ellipseXs = new int[ellipseNumPoints]; + /** y-coordinates used to draw an ellipse. */ + final private static int[] ellipseYs = new int[ellipseNumPoints]; + /** Message logger for this class. */ + final private static Logger logger + = Logger.getLogger(StarMapPlotter.class.getName()); + + /** + * Hidden constructor. + */ + private StarMapPlotter() { + // do nothing + } + + /** + * Plot a star's position at the specified time onto a cube. + * + * @param maps texture maps for 6 cube faces (not null, modified) + * @param star star to plot (not null) + * @param latitude radians north of the equator (≤Pi/2, ≥-Pi/2) + * @param siderealTime radians since sidereal midnight (<2*Pi, ≥0) + * @param textureSize size of the texture map (pixels per side, >2) + * @return true if the star was plotted, otherwise false + */ + static boolean plotOnCube(BufferedImage[] maps, Star star, + float latitude, float siderealTime, int textureSize) { + Vector3f world = StarMapProjection.worldDirection( + star, latitude, siderealTime); + float apparentMagnitude = star.getApparentMagnitude(); + boolean result = plotOnCube( + maps, apparentMagnitude, textureSize, world); + + return result; + } + + /** + * Plot a star's position at the specified time onto a dome. + * + * @param map texture map (not null, modified) + * @param star star to plot (not null) + * @param latitude radians north of the equator (≤Pi/2, ≥-Pi/2) + * @param siderealTime radians since sidereal midnight (<2*Pi, ≥0) + * @param textureSize size of the texture map (pixels per side, >2) + * @return true if the star was plotted, otherwise false + */ + static boolean plotOnDome(BufferedImage map, Star star, + float latitude, float siderealTime, int textureSize) { + Vector3f world = StarMapProjection.worldDirection( + star, latitude, siderealTime); + if (world.y < 0f) { + return false; + } + + float apparentMagnitude = star.getApparentMagnitude(); + boolean result = plotOnDome( + map, apparentMagnitude, textureSize, world); + + return result; + } + + /** + * Plot a four-pointed star shape on a texture map. + * + * @param map texture map (not null) + * @param luminosity star luminosity in white-pixel units (≤37, >0) + * @param textureSize texture size in pixels per side (>2) + * @param uv star texture coordinates (not null) + * @return true if the star was plotted, otherwise false + */ + private static boolean plot4PointStar(BufferedImage map, float luminosity, + int textureSize, Vector2f uv) { + assert luminosity > 0f : luminosity; + assert luminosity <= 37f : luminosity; + assert textureSize > 2 : textureSize; + assert uv != null; + + int minPixels = (int) FastMath.ceil(luminosity); + assert minPixels >= 1 : minPixels; + int raySize; + int squareSize; + if (minPixels == 1) { + raySize = 0; + squareSize = 1; + } else if (minPixels <= 4) { + raySize = 0; + squareSize = 2; + } else if (minPixels <= 5) { + raySize = 1; + squareSize = 1; + } else if (minPixels <= 9) { + raySize = 0; + squareSize = 3; + } else if (minPixels <= 13) { + raySize = 1; + squareSize = 3; + } else if (minPixels <= 16) { + raySize = 0; + squareSize = 4; + } else if (minPixels <= 21) { + raySize = 3; + squareSize = 3; + } else if (minPixels <= 29) { + raySize = 1; + squareSize = 5; + } else if (minPixels <= 37) { + raySize = 3; + squareSize = 5; + } else { + logger.log(Level.SEVERE, "no shape contains {0} pixels", minPixels); + return false; + } + + int numPixels = squareSize * squareSize + 4 * raySize; + assert numPixels >= minPixels : minPixels; + int brightness = Math.round(255f * luminosity / numPixels); + Color color = new Color(brightness, brightness, brightness); + float cornerOffset = 0.5f * (squareSize - 1); + int x = Math.round(uv.x * textureSize - cornerOffset); + int y = Math.round(uv.y * textureSize - cornerOffset); + + Graphics2D graphics = map.createGraphics(); + graphics.setColor(color); + graphics.fillRect(x, y, squareSize, squareSize); + if (raySize == 0) { + return true; + } + + assert MyMath.isOdd(squareSize) : squareSize; + int halfSize = (squareSize - 1) / 2; + switch (raySize) { + case 1: + graphics.fillRect(x - 1, y + halfSize, 1, 1); + graphics.fillRect(x + halfSize, y - 1, 1, 1); + graphics.fillRect(x + halfSize, y + squareSize, 1, 1); + graphics.fillRect(x + squareSize, y + halfSize, 1, 1); + break; + case 3: + graphics.fillRect(x - 1, y + halfSize - 1, 1, 3); + graphics.fillRect(x + halfSize - 1, y - 1, 3, 1); + graphics.fillRect(x + halfSize - 1, y + squareSize, 3, 1); + graphics.fillRect(x + squareSize, y + halfSize - 1, 1, 3); + break; + default: + assert false : raySize; + } + return true; + } + + /** + * Draw a dome-corrected ellipse onto a texture map. + * + * @param map texture map (not null) + * @param luminosity star luminosity (>0) + * @param textureSize texture size in pixels per side (>2) + * @param uv star texture coordinates (not null) + */ + private static void plotEllipseForDome(BufferedImage map, float luminosity, + int textureSize, Vector2f uv) { + assert map != null; + assert luminosity > 0f : luminosity; + assert textureSize > 2 : textureSize; + assert uv != null; + + Vector2f offset = uv.subtract(Constants.topUV); + float topDist = offset.length(); + float xDir; + float yDir; + if (topDist > 0f) { + xDir = offset.x / topDist; + yDir = offset.y / topDist; + } else { + xDir = 1f; + yDir = 0f; + } + float stretchFactor = 1f + + Constants.stretchCoefficient * topDist * topDist; + float a = FastMath.sqrt(luminosity * stretchFactor / FastMath.PI); + float b = a / stretchFactor; + + for (int i = 0; i < ellipseNumPoints; ++i) { + float theta = FastMath.TWO_PI * i / ellipseNumPoints; + float da = a * FastMath.cos(theta); + float db = b * FastMath.sin(theta); + float dx = db * xDir + da * yDir; + float dy = db * yDir - da * xDir; + ellipseXs[i] = Math.round(uv.x * textureSize + dx); + ellipseYs[i] = Math.round(uv.y * textureSize + dy); + } + Graphics2D graphics = map.createGraphics(); + graphics.setColor(Color.WHITE); + graphics.fillPolygon(ellipseXs, ellipseYs, ellipseNumPoints); + } + + /** + * Draw a cube-face corrected ellipse onto a texture map. + * + * @param map texture map (not null) + * @param luminosity star luminosity (>0) + * @param textureSize texture size in pixels per side (>2) + * @param worldDirection star world direction (length=1) + * @param faceIndex cube face index (≥0, <6) + */ + private static void plotEllipseForQuad(BufferedImage map, float luminosity, + int textureSize, Vector3f worldDirection, int faceIndex) { + Vector3f basis1 = worldDirection.clone(); + Vector3f basis2 = new Vector3f(); + Vector3f basis3 = new Vector3f(); + MyVector3f.generateBasis(basis1, basis2, basis3); + float numPixels = textureSize * textureSize; + float area = luminosity / numPixels; + float r = 1.2f * FastMath.sqrt(area); + + Vector3f p = new Vector3f(); + for (int i = 0; i < ellipseNumPoints; ++i) { + float theta = FastMath.TWO_PI * i / ellipseNumPoints; + p.scaleAdd(r * FastMath.cos(theta), basis2, basis1); + p.scaleAdd(r * FastMath.sin(theta), basis3, p); + Vector2f uv = StarMapProjection.cubeUV(p, faceIndex); + if (uv == null) { + return; + } + ellipseXs[i] = Math.round(uv.x * textureSize); + ellipseYs[i] = Math.round(uv.y * textureSize); + } + Graphics2D graphics = map.createGraphics(); + graphics.setColor(Color.WHITE); + graphics.fillPolygon(ellipseXs, ellipseYs, ellipseNumPoints); + } + + /** + * Plot a star onto cube texture maps. + * + * @param maps texture maps for 6 cube faces (not null, modified) + * @param apparentMagnitude star brightness + * @param textureSize texture size in pixels per side (>2) + * @param worldDirection star world direction (length=1) + * @return true if the star was plotted, otherwise false + */ + private static boolean plotOnCube(BufferedImage[] maps, + float apparentMagnitude, int textureSize, Vector3f worldDirection) { + float resolution = textureSize / 2_048f; + float luminosity0 = 100f * resolution * resolution; + float luminosity = luminosity0 * 1.5f + * FastMath.pow(pogsonsRatio, -apparentMagnitude); + if (luminosity < luminosityCutoff) { + return false; + } + + boolean result = false; + for (int faceIndex = 0; faceIndex < 6; ++faceIndex) { + Vector2f uv = StarMapProjection.cubeUV(worldDirection, faceIndex); + if (uv != null) { + BufferedImage map = maps[faceIndex]; + if (luminosity <= 37f) { + result |= plot4PointStar(map, luminosity, textureSize, uv); + } else { + plotEllipseForQuad(map, luminosity, textureSize, + worldDirection, faceIndex); + result = true; + } + } + } + return result; + } + + /** + * Plot a star onto a dome texture map. + * + * @param map texture map (not null, modified) + * @param apparentMagnitude star brightness + * @param textureSize texture size in pixels per side (>2) + * @param worldDirection star world direction (length=1) + * @return true if the star was plotted, otherwise false + */ + private static boolean plotOnDome(BufferedImage map, + float apparentMagnitude, int textureSize, Vector3f worldDirection) { + float resolution = textureSize / 2_048f; + float luminosity0 = 37f * resolution * resolution; + float luminosity + = luminosity0 * FastMath.pow(pogsonsRatio, -apparentMagnitude); + if (luminosity < luminosityCutoff) { + return false; + } + + Vector2f uv = domeMesh.directionUV(worldDirection); + if (luminosity <= 37f) { + return plot4PointStar(map, luminosity, textureSize, uv); + } + plotEllipseForDome(map, luminosity, textureSize, uv); + return true; + } +} diff --git a/SkyAssets/src/main/java/jme3utilities/sky/textures/StarMapProjection.java b/SkyAssets/src/main/java/jme3utilities/sky/textures/StarMapProjection.java new file mode 100644 index 0000000..11fa558 --- /dev/null +++ b/SkyAssets/src/main/java/jme3utilities/sky/textures/StarMapProjection.java @@ -0,0 +1,107 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.textures; + +import com.jme3.math.FastMath; +import com.jme3.math.Quaternion; +import com.jme3.math.Vector2f; +import com.jme3.math.Vector3f; +import jme3utilities.MyAsset; +import jme3utilities.math.MyQuaternion; +import jme3utilities.math.MyVector3f; + +/** + * Coordinate conversion helpers for star-map generation. + * + * @author Take Some + */ +final class StarMapProjection { + /** + * Hidden constructor. + */ + private StarMapProjection() { + // do nothing + } + + /** + * Calculate texture coordinates for a direction on one cube face. + * + * @param direction direction from the cube center (length >0, + * unaffected) + * @param faceIndex cube face index (≥0, <6) + * @return new vector, or null when outside the face + */ + static Vector2f cubeUV(Vector3f direction, int faceIndex) { + assert direction != null; + assert !MyVector3f.isZero(direction); + assert faceIndex >= 0 : faceIndex; + assert faceIndex < 6 : faceIndex; + + Vector3f faceDir + = MyAsset.copyFaceDirection(faceIndex); + Vector3f norm = direction.normalize(); + float dot = faceDir.dot(norm); + if (dot < 0.5f) { + return null; + } + + norm.divideLocal(dot); + Vector3f uDir = MyAsset.copyUDirection(faceIndex); + Vector3f vDir = MyAsset.copyVDirection(faceIndex); + float u = 0.5f * (1f + uDir.dot(norm)); + float v = 0.5f * (1f + vDir.dot(norm)); + Vector2f result = new Vector2f(u, v); + + return result; + } + + /** + * Convert a star's equatorial coordinates to world coordinates. + * + * @param star star to convert (not null) + * @param latitude radians north of the equator (≤Pi/2, ≥-Pi/2) + * @param siderealTime radians since sidereal midnight (<2*Pi, ≥0) + * @return new unit vector in world coordinates + */ + static Vector3f worldDirection( + Star star, float latitude, float siderealTime) { + assert star != null; + assert latitude >= -FastMath.HALF_PI : latitude; + assert latitude <= FastMath.HALF_PI : latitude; + assert siderealTime >= 0f : siderealTime; + assert siderealTime < FastMath.TWO_PI : siderealTime; + + Vector3f equatorial = star.getEquatorialLocation(siderealTime); + float coLatitude = FastMath.HALF_PI - latitude; + Quaternion rotation = new Quaternion(); + rotation.fromAngleNormalAxis(-coLatitude, Vector3f.UNIT_Y); + Vector3f rotated = MyQuaternion.rotate(rotation, equatorial, null); + assert rotated.isUnitVector() : rotated; + Vector3f result = new Vector3f(-rotated.x, rotated.z, rotated.y); + + return result; + } +} diff --git a/SkyAssets/src/main/java/jme3utilities/sky/textures/StarMapRenderer.java b/SkyAssets/src/main/java/jme3utilities/sky/textures/StarMapRenderer.java new file mode 100644 index 0000000..27e02c1 --- /dev/null +++ b/SkyAssets/src/main/java/jme3utilities/sky/textures/StarMapRenderer.java @@ -0,0 +1,122 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.textures; + +import com.jme3.math.FastMath; +import java.awt.image.BufferedImage; +import java.awt.image.RenderedImage; +import java.util.Collection; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Renders complete dome and cube star maps from catalog stars. + * + * @author Take Some + */ +final class StarMapRenderer { + /** Message logger for this class. */ + final private static Logger logger + = Logger.getLogger(StarMapRenderer.class.getName()); + + /** + * Hidden constructor. + */ + private StarMapRenderer() { + // do nothing + } + + /** + * Generate 6 starry sky texture maps for a cube. + * + * @param stars stars to plot (not null) + * @param latitude radians north of the equator (≤Pi/2, ≥-Pi/2) + * @param siderealTime radians since sidereal midnight (<2*Pi, ≥0) + * @param textureSize size of each texture map (pixels per side, >2) + * @return new array of 6 images + */ + static RenderedImage[] generateCubeMap(Collection stars, + float latitude, float siderealTime, int textureSize) { + assert stars != null; + assert latitude >= -FastMath.HALF_PI : latitude; + assert latitude <= FastMath.HALF_PI : latitude; + assert siderealTime >= 0f : siderealTime; + assert siderealTime < FastMath.TWO_PI : siderealTime; + assert textureSize > 2 : textureSize; + + BufferedImage[] maps = new BufferedImage[6]; + for (int faceIndex = 0; faceIndex < 6; ++faceIndex) { + maps[faceIndex] = new BufferedImage( + textureSize, textureSize, BufferedImage.TYPE_BYTE_GRAY); + } + + int plotCount = 0; + for (Star star : stars) { + boolean success = StarMapPlotter.plotOnCube( + maps, star, latitude, siderealTime, textureSize); + if (success) { + ++plotCount; + } + } + logger.log(Level.FINE, "plotted {0} stars", plotCount); + + return maps; + } + + /** + * Generate a starry sky texture map for a dome. + * + * @param stars stars to plot (not null) + * @param latitude radians north of the equator (≤Pi/2, ≥-Pi/2) + * @param siderealTime radians since sidereal midnight (<2*Pi, ≥0) + * @param textureSize size of the texture map (pixels per side, >2) + * @return new image + */ + static RenderedImage generateDomeMap(Collection stars, + float latitude, float siderealTime, int textureSize) { + assert stars != null; + assert latitude >= -FastMath.HALF_PI : latitude; + assert latitude <= FastMath.HALF_PI : latitude; + assert siderealTime >= 0f : siderealTime; + assert siderealTime < FastMath.TWO_PI : siderealTime; + assert textureSize > 2 : textureSize; + + BufferedImage map = new BufferedImage( + textureSize, textureSize, BufferedImage.TYPE_BYTE_GRAY); + + int plotCount = 0; + for (Star star : stars) { + boolean success = StarMapPlotter.plotOnDome( + map, star, latitude, siderealTime, textureSize); + if (success) { + ++plotCount; + } + } + logger.log(Level.FINE, "plotted {0} stars", plotCount); + + return map; + } +} From 432f4ac3a3f1395244ee36eaf5d7308b897da485 Mon Sep 17 00:00:00 2001 From: CalistaVerner Date: Thu, 25 Jun 2026 13:25:56 +0300 Subject: [PATCH 11/17] Release SkySimulation v1.1.0 --- .gitignore | 1 - README.md | 32 +- RELEASE_NOTES_v1.1.0.md | 3 + SkyAssets/build.gradle | 15 +- SkyAssets/skyMaterials.gradle | 306 ++ SkyExamples/build.gradle | 4 + .../sky/test/SkyCloudWeatherSmoke.java | 143 + SkyLibrary/build.gradle | 2 +- .../java/jme3utilities/sky/CloudLayer.java | 12 +- .../java/jme3utilities/sky/Constants.java | 2 +- .../sky/SkyCloudLayerFactory.java | 55 + .../java/jme3utilities/sky/SkyControl.java | 407 +-- .../jme3utilities/sky/SkyControlCore.java | 207 +- .../jme3utilities/sky/SkyMaterialCore.java | 435 +-- .../sky/cloud/SkyCloudAssets.java | 105 + .../sky/cloud/SkyCloudLayerSpec.java | 147 + .../sky/cloud/SkyCloudPreset.java | 147 + .../sky/cloud/SkyCloudTransitionRuntime.java | 206 ++ .../jme3utilities/sky/cloud/package-info.java | 29 + .../sky/control/SkyBaseColorRuntime.java | 240 ++ .../sky/control/SkyCelestialState.java | 174 + .../sky/control/SkyCloudRuntime.java | 211 ++ .../control/SkyCloudTransmissionRuntime.java | 211 ++ .../sky/control/SkyLightSelectionRuntime.java | 172 + .../sky/control/SkyLightingOutputRuntime.java | 292 ++ .../sky/control/SkyMoonRuntime.java | 251 ++ .../sky/control/SkyObjectLightingRuntime.java | 126 + .../sky/control/package-info.java | 29 + .../sky/material/SkyCloudMaterialSlots.java | 360 +++ .../sky/material/SkyDdsTextureLoader.java | 289 ++ .../{ => material}/SkyMaterialFactory.java | 29 +- .../sky/material/SkyMaterialParamNames.java | 202 ++ .../sky/material/SkyObjectMaterialSlots.java | 248 ++ .../sky/material/SkyObjectTransform.java | 202 ++ .../sky/material/package-info.java | 2 +- .../sky/scene/SkyDomeAssets.java | 59 + .../sky/{ => scene}/SkyDomeFactory.java | 25 +- .../sky/scene/SkySceneLookup.java | 150 + .../jme3utilities/sky/scene/package-info.java | 2 +- .../MatDefs/skies/dome02/dome02.j3md | 37 +- .../MatDefs/skies/dome06/dome06.j3md | 49 +- .../MatDefs/skies/dome20/dome20.j3md | 31 +- .../MatDefs/skies/dome22/dome22.j3md | 37 +- .../MatDefs/skies/dome60/dome60.j3md | 31 +- .../MatDefs/skies/dome66/dome66.j3md | 49 +- .../resources/Models/skies/skydome_high.mtl | 7 + .../resources/Models/skies/skydome_high.obj | 2818 +++++++++++++++++ .../Shaders/skies/dome02/dome02.frag | 56 +- .../Shaders/skies/dome02/dome02.vert | 33 +- .../Shaders/skies/dome02/dome02glow.frag | 61 +- .../Shaders/skies/dome06/dome06.frag | 92 +- .../Shaders/skies/dome06/dome06.vert | 33 +- .../Shaders/skies/dome06/dome06glow.frag | 93 +- .../Shaders/skies/dome20/dome20.frag | 40 +- .../Shaders/skies/dome20/dome20.vert | 30 +- .../Shaders/skies/dome20/dome20glow.frag | 44 +- .../Shaders/skies/dome22/dome22.frag | 58 +- .../Shaders/skies/dome22/dome22.vert | 35 +- .../Shaders/skies/dome22/dome22glow.frag | 62 +- .../Shaders/skies/dome60/dome60.frag | 40 +- .../Shaders/skies/dome60/dome60.vert | 30 +- .../Shaders/skies/dome60/dome60glow.frag | 52 +- .../Shaders/skies/dome66/dome66.frag | 94 +- .../Shaders/skies/dome66/dome66.vert | 34 +- .../Shaders/skies/dome66/dome66glow.frag | 106 +- .../resources/Textures/skies/clouds/clear.png | Bin 0 -> 84 bytes .../resources/Textures/skies/clouds/fbm.png | Bin 0 -> 1385784 bytes .../Textures/skies/clouds/overcast.png | Bin 0 -> 108 bytes .../alt_heavy/cloudhat_marble02_ap.dds | Bin 0 -> 43816 bytes .../clouds/presets/alt_heavy/detail1_nrm.dds | Bin 0 -> 2856 bytes .../presets/alt_heavy/skyhat_raintop_ap.dds | Bin 0 -> 699176 bytes .../presets/alt_heavy/skyhat_raintop_n.dds | Bin 0 -> 1398224 bytes .../alt_light/cloudhat_altitude_medium.dds | Bin 0 -> 699176 bytes .../alt_light/cloudhat_altitude_medium_n.dds | Bin 0 -> 1398224 bytes .../alt_light/cloudhat_marble02_ap.dds | Bin 0 -> 43816 bytes .../clouds/presets/alt_light/detail1_nrm.dds | Bin 0 -> 2856 bytes .../alt_light/skyhat_cirrocumulus01_alt2.dds | Bin 0 -> 699176 bytes .../alt_light/skyhat_cirrocumulus01_alt_n.dds | Bin 0 -> 1398224 bytes .../alt_med/cloudhat_altitude_medium.dds | Bin 0 -> 699176 bytes .../alt_med/cloudhat_altitude_medium_n.dds | Bin 0 -> 1398224 bytes .../presets/alt_med/cloudhat_marble02_ap.dds | Bin 0 -> 43816 bytes .../clouds/presets/alt_med/detail1_nrm.dds | Bin 0 -> 2856 bytes .../presets/cirrus/cloudhat_cirrus_ap.dds | Bin 0 -> 699176 bytes .../presets/cirrus/cloudhat_cirrus_nrm.dds | Bin 0 -> 1398224 bytes .../presets/clear/cloudhat_marble02_ap.dds | Bin 0 -> 43816 bytes .../clouds/presets/clear/detail1_nrm.dds | Bin 0 -> 2856 bytes .../clear/new_skyhat_clear01_bot_ap.dds | Bin 0 -> 699168 bytes .../clear/new_skyhat_clear01_bot_nrm.dds | Bin 0 -> 1398208 bytes .../clouds/presets/cloud-weather-presets.json | 876 +++++ .../presets/cloudy/cloudhat_marble02_ap.dds | Bin 0 -> 43816 bytes .../clouds/presets/cloudy/detail1_nrm.dds | Bin 0 -> 2856 bytes .../skies/clouds/presets/cloudy/trialap.dds | Bin 0 -> 699168 bytes .../skies/clouds/presets/cloudy/trialn.dds | Bin 0 -> 1398208 bytes .../presets/contrails/contrails_ap3.dds | Bin 0 -> 174848 bytes .../presets/contrails/contrails_nrm3.dds | Bin 0 -> 174848 bytes .../presets/horizon/cloudhat_marble02_ap.dds | Bin 0 -> 43816 bytes .../clouds/presets/horizon/detail1_nrm.dds | Bin 0 -> 2856 bytes .../presets/horizon/stripeyclouds_ap.dds | Bin 0 -> 349648 bytes .../presets/horizon/stripeyclouds_nrm.dds | Bin 0 -> 699168 bytes .../presets/nimbus/cloudhat_marble02_ap.dds | Bin 0 -> 43816 bytes .../clouds/presets/nimbus/detail1_nrm.dds | Bin 0 -> 2856 bytes .../presets/nimbus/final_nimbusclouds_ap.dds | Bin 0 -> 699168 bytes .../presets/nimbus/final_nimbusclouds_n.dds | Bin 0 -> 1398208 bytes .../presets/puffs/cloudhat_marble02_ap.dds | Bin 0 -> 43816 bytes .../presets/puffs/cloudhat_puffs_ap.dds | Bin 0 -> 699168 bytes .../presets/puffs/cloudhat_puffs_nrm.dds | Bin 0 -> 1398208 bytes .../clouds/presets/puffs/detail1_nrm.dds | Bin 0 -> 2856 bytes .../clouds/presets/rain/skyhat_rain02_ap.dds | Bin 0 -> 699176 bytes .../clouds/presets/rain/skyhat_rain02_n2.dds | Bin 0 -> 1398224 bytes .../presets/showers/skyhat_showers01_ap.dds | Bin 0 -> 699176 bytes .../presets/showers/skyhat_showers01_n.dds | Bin 0 -> 1398224 bytes .../presets/storm/cloudhat_marble02_ap.dds | Bin 0 -> 43816 bytes .../clouds/presets/storm/detail1_nrm.dds | Bin 0 -> 2856 bytes .../clouds/presets/storm/skyhat_rain02_ap.dds | Bin 0 -> 699176 bytes .../clouds/presets/storm/skyhat_rain02_n2.dds | Bin 0 -> 1398224 bytes .../clouds/presets/storm/stormclouds_ap.dds | Bin 0 -> 349648 bytes .../clouds/presets/storm/stormclouds_nrm.dds | Bin 0 -> 699168 bytes .../presets/test/cloudhat_marble02_ap.dds | Bin 0 -> 43816 bytes .../skies/clouds/presets/test/detail1_nrm.dds | Bin 0 -> 2856 bytes .../clouds/presets/test/testwritting.dds | Bin 0 -> 699176 bytes .../clouds/presets/test/testwritting_nrm.dds | Bin 0 -> 699176 bytes .../wispy/skyhat_cirrocumulus01_ap.dds | Bin 0 -> 699176 bytes .../wispy/skyhat_cirrocumulus01_nrm.dds | Bin 0 -> 1398224 bytes .../skies/clouds/presets/wispy/wisps_ap.dds | Bin 0 -> 349648 bytes .../skies/clouds/presets/wispy/wisps_nrm.dds | Bin 0 -> 699168 bytes .../Textures/skies/moon-nonviral/full.png | Bin 0 -> 5585 bytes .../skies/moon-nonviral/waning-crescent.png | Bin 0 -> 2909 bytes .../skies/moon-nonviral/waning-gibbous.png | Bin 0 -> 5046 bytes .../skies/moon-nonviral/waxing-crescent.png | Bin 0 -> 3040 bytes .../skies/moon-nonviral/waxing-gibbous.png | Bin 0 -> 4934 bytes .../resources/Textures/skies/ramps/haze.png | Bin 0 -> 32990 bytes .../Textures/skies/star-maps/16m/northern.png | Bin 0 -> 39255 bytes .../Textures/skies/star-maps/16m/southern.png | Bin 0 -> 41684 bytes .../skies/star-maps/16m/wiltshire.png | Bin 0 -> 40212 bytes .../skies/star-maps/equator/equator_back6.png | Bin 0 -> 14272 bytes .../star-maps/equator/equator_bottom4.png | Bin 0 -> 9847 bytes .../star-maps/equator/equator_front5.png | Bin 0 -> 12894 bytes .../skies/star-maps/equator/equator_left2.png | Bin 0 -> 12368 bytes .../star-maps/equator/equator_right1.png | Bin 0 -> 14004 bytes .../skies/star-maps/equator/equator_top3.png | Bin 0 -> 10110 bytes .../star-maps/equator16m/equator16m_back6.png | Bin 0 -> 36455 bytes .../equator16m/equator16m_bottom4.png | Bin 0 -> 27491 bytes .../equator16m/equator16m_front5.png | Bin 0 -> 33630 bytes .../star-maps/equator16m/equator16m_left2.png | Bin 0 -> 32739 bytes .../equator16m/equator16m_right1.png | Bin 0 -> 35919 bytes .../star-maps/equator16m/equator16m_top3.png | Bin 0 -> 28033 bytes .../Textures/skies/star-maps/northern.png | Bin 0 -> 19057 bytes .../Textures/skies/star-maps/southern.png | Bin 0 -> 20591 bytes .../Textures/skies/star-maps/wiltshire.png | Bin 0 -> 19491 bytes .../resources/Textures/skies/suns/chaotic.png | Bin 0 -> 107807 bytes .../resources/Textures/skies/suns/disc.png | Bin 0 -> 7956 bytes .../Textures/skies/suns/hazy-disc.png | Bin 0 -> 51136 bytes .../resources/Textures/skies/suns/rayed.png | Bin 0 -> 82051 bytes .../sky/test/TestCloudWeatherAssets.java | 110 + build.gradle | 2 +- 155 files changed, 9066 insertions(+), 1506 deletions(-) create mode 100644 RELEASE_NOTES_v1.1.0.md create mode 100644 SkyAssets/skyMaterials.gradle create mode 100644 SkyExamples/src/main/java/jme3utilities/sky/test/SkyCloudWeatherSmoke.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/SkyCloudLayerFactory.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudAssets.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudLayerSpec.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudPreset.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudTransitionRuntime.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/cloud/package-info.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/control/SkyBaseColorRuntime.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/control/SkyCelestialState.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/control/SkyCloudRuntime.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/control/SkyCloudTransmissionRuntime.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/control/SkyLightSelectionRuntime.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/control/SkyLightingOutputRuntime.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/control/SkyMoonRuntime.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/control/SkyObjectLightingRuntime.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/control/package-info.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/material/SkyCloudMaterialSlots.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/material/SkyDdsTextureLoader.java rename SkyLibrary/src/main/java/jme3utilities/sky/{ => material}/SkyMaterialFactory.java (83%) create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/material/SkyMaterialParamNames.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/material/SkyObjectMaterialSlots.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/material/SkyObjectTransform.java create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/scene/SkyDomeAssets.java rename SkyLibrary/src/main/java/jme3utilities/sky/{ => scene}/SkyDomeFactory.java (93%) create mode 100644 SkyLibrary/src/main/java/jme3utilities/sky/scene/SkySceneLookup.java create mode 100644 SkyLibrary/src/main/resources/Models/skies/skydome_high.mtl create mode 100644 SkyLibrary/src/main/resources/Models/skies/skydome_high.obj create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/clear.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/fbm.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/overcast.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_heavy/cloudhat_marble02_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_heavy/detail1_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_heavy/skyhat_raintop_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_heavy/skyhat_raintop_n.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_light/cloudhat_altitude_medium.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_light/cloudhat_altitude_medium_n.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_light/cloudhat_marble02_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_light/detail1_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_light/skyhat_cirrocumulus01_alt2.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_light/skyhat_cirrocumulus01_alt_n.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_med/cloudhat_altitude_medium.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_med/cloudhat_altitude_medium_n.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_med/cloudhat_marble02_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_med/detail1_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/cirrus/cloudhat_cirrus_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/cirrus/cloudhat_cirrus_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/clear/cloudhat_marble02_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/clear/detail1_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/clear/new_skyhat_clear01_bot_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/clear/new_skyhat_clear01_bot_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/cloud-weather-presets.json create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/cloudy/cloudhat_marble02_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/cloudy/detail1_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/cloudy/trialap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/cloudy/trialn.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/contrails/contrails_ap3.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/contrails/contrails_nrm3.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/horizon/cloudhat_marble02_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/horizon/detail1_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/horizon/stripeyclouds_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/horizon/stripeyclouds_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/nimbus/cloudhat_marble02_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/nimbus/detail1_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/nimbus/final_nimbusclouds_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/nimbus/final_nimbusclouds_n.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/puffs/cloudhat_marble02_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/puffs/cloudhat_puffs_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/puffs/cloudhat_puffs_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/puffs/detail1_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/rain/skyhat_rain02_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/rain/skyhat_rain02_n2.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/showers/skyhat_showers01_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/showers/skyhat_showers01_n.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/storm/cloudhat_marble02_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/storm/detail1_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/storm/skyhat_rain02_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/storm/skyhat_rain02_n2.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/storm/stormclouds_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/storm/stormclouds_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/test/cloudhat_marble02_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/test/detail1_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/test/testwritting.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/test/testwritting_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/wispy/skyhat_cirrocumulus01_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/wispy/skyhat_cirrocumulus01_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/wispy/wisps_ap.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/clouds/presets/wispy/wisps_nrm.dds create mode 100644 SkyLibrary/src/main/resources/Textures/skies/moon-nonviral/full.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/moon-nonviral/waning-crescent.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/moon-nonviral/waning-gibbous.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/moon-nonviral/waxing-crescent.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/moon-nonviral/waxing-gibbous.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/ramps/haze.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/16m/northern.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/16m/southern.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/16m/wiltshire.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/equator/equator_back6.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/equator/equator_bottom4.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/equator/equator_front5.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/equator/equator_left2.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/equator/equator_right1.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/equator/equator_top3.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/equator16m/equator16m_back6.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/equator16m/equator16m_bottom4.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/equator16m/equator16m_front5.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/equator16m/equator16m_left2.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/equator16m/equator16m_right1.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/equator16m/equator16m_top3.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/northern.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/southern.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/star-maps/wiltshire.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/suns/chaotic.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/suns/disc.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/suns/hazy-disc.png create mode 100644 SkyLibrary/src/main/resources/Textures/skies/suns/rayed.png create mode 100644 SkyLibrary/src/test/java/jme3utilities/sky/test/TestCloudWeatherAssets.java diff --git a/.gitignore b/.gitignore index 947b088..fefc134 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ /SkyAssets/src/main/resources/bsc5.dat.gz /SkyExamples/private/ /SkyExamples/Written Assets/ -/SkyLibrary/src/main/resources/Textures/skies/ # Ignore Gradle's project-specific cache directory: /.gradle/ diff --git a/README.md b/README.md index 2ce9601..bdbfcaa 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,24 @@ Some helper classes remain package-private in `jme3utilities.sky` when moving those classes would force us to expose constructors or state that should stay encapsulated. Public compatibility is preferred over cosmetic directory moves. +## Cloud weather and generated sky materials + +Version `1.1.0` adds data-driven cloud weather presets, generated sky material definitions, and DDS cloud resources. + +- `SkyCloudPreset` provides `CLEAR`, `FAIR`, `OVERCAST`, `WISPY`, `CLOUDY`, `RAIN`, `STORM`, and `NIMBUS`. +- `SkyControl.setCloudPreset(preset, seconds)` changes weather by fading current layers out, swapping alpha/normal/scale/motion while invisible, and fading target layers in. +- DDS resources live under `SkyLibrary/src/main/resources/Textures/skies/clouds/presets`. +- `cloud-weather-presets.json` records managed presets, raw bundles, DDS inventory, SHA-256 values, transition policy, and generated material/shader settings. +- `:SkyAssets:skyMaterials` generates `dome02`, `dome06`, `dome20`, `dome22`, `dome60`, and `dome66` MatDefs and GLSL shaders. +- BC5/ATI2 DDS normal maps are supported through the first-party fallback loader and are mapped to `Image.Format.RGTC2`. + +Visual smoke test: + +```bat +gradlew.bat :SkyExamples:SkyCloudWeatherSmoke +``` + + ## Package ### Release package @@ -71,7 +89,7 @@ repositories { } dependencies { - implementation("dev.takesome:sky-simulation:1.0.0") + implementation("dev.takesome:sky-simulation:1.1.0") } ``` @@ -92,7 +110,7 @@ repositories { } dependencies { - implementation("dev.takesome:sky-simulation:1.0.0-SNAPSHOT") + implementation("dev.takesome:sky-simulation:1.1.0-SNAPSHOT") } ``` @@ -114,7 +132,7 @@ gradlew.bat packageLocal Build release artifacts locally: ```bat -gradlew.bat :SkyLibrary:assemble -PskySimulationVersion=1.0.0 +gradlew.bat :SkyLibrary:assemble -PskySimulationVersion=1.1.0 ``` Artifacts are generated in: @@ -128,8 +146,8 @@ SkyLibrary/build/libs A GitHub release is produced by pushing a version tag: ```bat -git tag -a v1.0.0 -m "SkySimulation v1.0.0" -git push origin v1.0.0 +git tag -a v1.1.0 -m "SkySimulation v1.1.0" +git push origin v1.1.0 ``` The release workflow publishes the Maven package to GitHub Packages and attaches the JAR, sources, Javadoc, POM, and Gradle module metadata to the GitHub Release. @@ -148,6 +166,10 @@ The release workflow publishes the Maven package to GitHub Packages and attaches - `clearMoonTexture()` for returning to phase-preset moon textures. - GitHub Packages publishing under `dev.takesome:sky-simulation`. - Release workflow for GitHub Releases. +- `SkyCloudPreset` weather presets with gradual transitions. +- DDS cloud preset resources plus `cloud-weather-presets.json` registry. +- Generated sky MatDefs/GLSL via `:SkyAssets:skyMaterials`. +- BC5/ATI2 DDS normal-map fallback loader for cloud normals. ## Attribution diff --git a/RELEASE_NOTES_v1.1.0.md b/RELEASE_NOTES_v1.1.0.md new file mode 100644 index 0000000..2d0f654 --- /dev/null +++ b/RELEASE_NOTES_v1.1.0.md @@ -0,0 +1,3 @@ +# SkySimulation v1.1.0 + +Cloud weather, generated sky materials, DDS presets, and BC5 cloud normal-map support. diff --git a/SkyAssets/build.gradle b/SkyAssets/build.gradle index 18a0adf..3d3e684 100644 --- a/SkyAssets/build.gradle +++ b/SkyAssets/build.gradle @@ -8,9 +8,12 @@ plugins { alias(libs.plugins.download) // to retrieve files from URLs } +apply from: file('skyMaterials.gradle') + ext { bsc = 'src/main/resources/bsc5.dat' skies = '../SkyLibrary/src/main/resources/Textures/skies' + skyResources = '../SkyLibrary/src/main/resources' } sourceSets.main.java { @@ -52,6 +55,10 @@ tasks.register('cleanDownload', Delete) { delete file("${bsc}.gz") } +// Register tasks to generate generated sky material definitions/shaders: + +processResources.dependsOn('skyMaterials') + // Register tasks to generate sky textures: tasks.register('skyTextures') { @@ -61,7 +68,13 @@ tasks.register('skyTextures') { description = 'generate texture assets distributed with SkyControl' } tasks.register('cleanSkyTextures', Delete) { - delete fileTree(dir: skies) + delete file("$skies/clouds/clear.png") + delete file("$skies/clouds/fbm.png") + delete file("$skies/clouds/overcast.png") + delete fileTree(dir: "$skies/moon-nonviral") + delete fileTree(dir: "$skies/ramps") + delete fileTree(dir: "$skies/star-maps") + delete fileTree(dir: "$skies/suns") } tasks.register('clouds', JavaExec) { diff --git a/SkyAssets/skyMaterials.gradle b/SkyAssets/skyMaterials.gradle new file mode 100644 index 0000000..0c6393d --- /dev/null +++ b/SkyAssets/skyMaterials.gradle @@ -0,0 +1,306 @@ +// Gradle support for generated sky material definitions and shaders. + +ext.skyDomeProfiles = [ + [name: 'dome02', objects: 0, clouds: 2], + [name: 'dome06', objects: 0, clouds: 6], + [name: 'dome20', objects: 2, clouds: 0], + [name: 'dome22', objects: 2, clouds: 2], + [name: 'dome60', objects: 6, clouds: 0], + [name: 'dome66', objects: 6, clouds: 6], +] + +tasks.register('skyMaterials') { + description = 'generate sky material definitions and shaders' + outputs.dir("$skyResources/MatDefs/skies") + outputs.dir("$skyResources/Shaders/skies") + + doLast { + def profiles = project.ext.skyDomeProfiles + profiles.each { profile -> + String name = profile.name + int numObjects = profile.objects + int numClouds = profile.clouds + writeGenerated("$skyResources/MatDefs/skies/$name/${name}.j3md", + makeMatDef(name, numObjects, numClouds)) + writeGenerated("$skyResources/Shaders/skies/$name/${name}.vert", + makeVertexShader(name, numObjects, numClouds)) + writeGenerated("$skyResources/Shaders/skies/$name/${name}.frag", + makeFragmentShader(name, numObjects, numClouds, false)) + writeGenerated("$skyResources/Shaders/skies/$name/${name}glow.frag", + makeFragmentShader(name, numObjects, numClouds, true)) + } + } +} + +void writeGenerated(String path, String text) { + File target = file(path) + target.parentFile.mkdirs() + target.text = text.replace('\n', System.lineSeparator()) +} + +String makeMatDef(String name, int objects, int clouds) { + StringBuilder b = new StringBuilder() + b << generatedLine('//') + b << "// A generated material for SkyMaterial: $objects objects and " + b << "$clouds cloud layers.\n\n" + b << "MaterialDef $name {\n" + b << ' MaterialParameters {\n' + b << ' Color ClearColor\n' + b << ' Color ClearGlow\n' + b << ' Vector2 TopCoord\n\n' + b << ' Texture2D StarsColorMap\n' + for (int i = 0; i < objects; ++i) { + b << "\n Color Object${i}Color\n" + b << " Color Object${i}Glow\n" + b << "\tTexture2D Object${i}ColorMap\n" + b << "\tVector2 Object${i}Center\n" + b << "\tVector2 Object${i}TransformU\n" + b << "\tVector2 Object${i}TransformV\n" + } + for (int i = 0; i < clouds; ++i) { + b << "\n Color Clouds${i}Color\n" + b << " Color Clouds${i}Glow\n" + b << " Float Clouds${i}Scale : 1.0\n" + b << "\tTexture2D Clouds${i}AlphaMap\n" + b << "\tTexture2D Clouds${i}NormalMap\n" + b << "\tVector2 Clouds${i}Offset\n" + } + b << '\n\tColor HazeColor\n' + b << ' Color HazeGlow\n' + b << '\tTexture2D HazeAlphaMap\n' + b << ' }\n\n' + b << makeTechnique(name, objects, clouds, false) + b << '\n' + b << makeTechnique(name, objects, clouds, true) + b << '}\n' + return b.toString() +} + +String makeTechnique(String name, int objects, int clouds, boolean glow) { + StringBuilder b = new StringBuilder() + b << (glow ? ' Technique Glow {\n' : ' Technique {\n') + b << ' Defines {\n' + if (!glow) { + b << '\t HAS_STARS : StarsColorMap\n' + } + for (int i = 0; i < objects; ++i) { + b << "\t HAS_OBJECT${i} : Object${i}ColorMap\n" + } + for (int i = 0; i < clouds; ++i) { + b << "\t HAS_CLOUDS${i} : Clouds${i}AlphaMap\n" + b << "\t HAS_CLOUDS${i}_NORMAL : Clouds${i}NormalMap\n" + } + b << '\t HAS_HAZE : HazeAlphaMap\n' + b << ' }\n' + String frag = glow ? "${name}glow.frag" : "${name}.frag" + b << " FragmentShader GLSL300 GLSL150 GLSL100: " + b << "Shaders/skies/${name}/${frag}\n" + b << " VertexShader GLSL300 GLSL150 GLSL100: " + b << "Shaders/skies/$name/${name}.vert\n" + b << ' WorldParameters {\n' + b << ' WorldViewProjectionMatrix\n' + b << ' }\n' + b << ' }\n' + return b.toString() +} + +String makeVertexShader(String name, int objects, int clouds) { + StringBuilder b = new StringBuilder() + b << generatedLine('/*') + b << "/*\n * generated vertex shader used by ${name}.j3md\n */\n" + b << '#import "Common/ShaderLib/GLSLCompat.glsllib"\n' + b << 'attribute vec2 inTexCoord;\n' + b << 'attribute vec3 inPosition;\n' + b << 'uniform mat4 g_WorldViewProjectionMatrix;\n' + b << 'uniform vec2 m_TopCoord;\n' + b << 'varying vec2 skyTexCoord;\n' + appendObjectDecls(b, objects, true) + appendCloudDecls(b, clouds, true, false) + b << '\nvoid main(){\n' + b << ' skyTexCoord = inTexCoord;\n' + if (clouds > 0) { + b << ' /*\n' + b << ' * Keep cloud coordinates consistent with material sampling.\n' + b << ' */\n' + } + for (int i = 0; i < clouds; ++i) { + b << " #ifdef HAS_CLOUDS${i}\n" + b << " clouds${i}Coord = inTexCoord " + b << "* m_Clouds${i}Scale + m_Clouds${i}Offset;\n" + b << ' #endif\n' + } + for (int i = 0; i < objects; ++i) { + b << " #ifdef HAS_OBJECT${i}\n" + b << " object${i}Offset = inTexCoord - m_Object${i}Center;\n" + b << " object${i}Coord.x = " + b << "dot(m_Object${i}TransformU, object${i}Offset);\n" + b << " object${i}Coord.y = " + b << "dot(m_Object${i}TransformV, object${i}Offset);\n" + b << " object${i}Coord += m_TopCoord;\n" + b << ' #endif\n' + } + b << '\n gl_Position = g_WorldViewProjectionMatrix ' + b << '* vec4(inPosition, 1);\n' + b << '}\n' + return b.toString() +} + +String makeFragmentShader(String name, int objects, int clouds, boolean glow) { + StringBuilder b = new StringBuilder() + b << generatedLine('/*') + String kind = glow ? 'glow fragment shader' : 'fragment shader' + b << "/*\n * generated $kind used by ${name}.j3md\n */\n" + b << '#import "Common/ShaderLib/GLSLCompat.glsllib"\n' + b << (glow ? 'uniform vec4 m_ClearGlow;\n' : 'uniform vec4 m_ClearColor;\n') + b << 'varying vec2 skyTexCoord;\n' + if (!glow) { + b << '\n#ifdef HAS_STARS\n' + b << ' uniform sampler2D m_StarsColorMap;\n' + b << '#endif\n' + } + appendObjectDecls(b, objects, false) + appendHazeDecls(b, glow) + appendCloudDecls(b, clouds, false, glow) + b << mixColorsFunction() + b << '\nvoid main() {\n' + if (glow) { + b << ' vec4 stars = vec4(0.0);\n' + } else { + b << ' #ifdef HAS_STARS\n' + b << ' vec4 stars = texture2D(m_StarsColorMap, skyTexCoord);\n' + b << ' #else\n' + b << ' vec4 stars = vec4(0.0);\n' + b << ' #endif\n' + } + b << ' vec4 objects = vec4(0.0);\n' + appendObjectMain(b, objects, glow) + b << '\n vec4 color = mixColors(stars, objects);\n\n' + b << (glow ? ' vec4 clear = m_ClearGlow;\n' : ' vec4 clear = m_ClearColor;\n') + appendHazeMain(b, glow) + b << ' color = mixColors(color, clear);\n' + b << ' color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb)' + b << ' * clear.a;\n' + appendCloudMain(b, clouds, glow) + b << '\n\tgl_FragColor = color;\n' + b << '}\n' + return b.toString() +} + +void appendObjectDecls(StringBuilder b, int objects, boolean vertex) { + for (int i = 0; i < objects; ++i) { + b << "\n#ifdef HAS_OBJECT${i}\n" + if (vertex) { + b << " uniform vec2 m_Object${i}Center;\n" + b << " uniform vec2 m_Object${i}TransformU;\n" + b << " uniform vec2 m_Object${i}TransformV;\n" + b << " varying vec2 object${i}Coord;\n" + b << " varying vec2 object${i}Offset;\n" + } else { + b << " uniform vec4 m_Object${i}Color;\n" + b << "\tuniform sampler2D m_Object${i}ColorMap;\n" + b << "\tvarying vec2 object${i}Coord;\n" + } + b << '#endif\n' + } +} + +void appendCloudDecls(StringBuilder b, int clouds, boolean vertex, + boolean glow) { + for (int i = 0; i < clouds; ++i) { + b << "\n#ifdef HAS_CLOUDS${i}\n" + if (vertex) { + b << " uniform float m_Clouds${i}Scale;\n" + b << " uniform vec2 m_Clouds${i}Offset;\n" + b << " varying vec2 clouds${i}Coord;\n" + } else { + b << " uniform sampler2D m_Clouds${i}AlphaMap;\n" + b << " uniform vec4 m_Clouds${i}${glow ? 'Glow' : 'Color'};\n" + b << "\tvarying vec2 clouds${i}Coord;\n" + } + b << '#endif\n' + if (!vertex) { + b << "#ifdef HAS_CLOUDS${i}_NORMAL\n" + b << " uniform sampler2D m_Clouds${i}NormalMap;\n" + b << '#endif\n' + } + } +} + +void appendHazeDecls(StringBuilder b, boolean glow) { + b << '\n#ifdef HAS_HAZE\n' + b << ' uniform sampler2D m_HazeAlphaMap;\n' + b << " uniform vec4 m_Haze${glow ? 'Glow' : 'Color'};\n" + b << '#endif\n' +} + +void appendObjectMain(StringBuilder b, int objects, boolean glow) { + for (int i = 0; i < objects; ++i) { + String objectColor = glow ? "m_Object${i}Glow" : "m_Object${i}Color" + b << "\n #ifdef HAS_OBJECT${i}\n" + b << " if (floor(object${i}Coord.s) == 0.0 &&\n" + b << " floor(object${i}Coord.t) == 0.0) {\n" + b << " vec4 object${i} = $objectColor;\n" + b << " object${i} *= " + b << "texture2D(m_Object${i}ColorMap, object${i}Coord);\n" + if (i == 0) { + b << " objects = object${i};\n" + } else { + b << " objects = mixColors(objects, object${i});\n" + } + b << ' }\n' + b << '\t#endif\n' + } +} + +void appendHazeMain(StringBuilder b, boolean glow) { + String hazeColor = glow ? 'm_HazeGlow' : 'm_HazeColor' + b << '\t#ifdef HAS_HAZE\n' + b << " vec4 haze = $hazeColor;\n" + b << ' haze.a *= texture2D(m_HazeAlphaMap, skyTexCoord).r;\n' + b << '\t clear = mixColors(clear, haze);\n' + b << '\t#endif\n' +} + +void appendCloudMain(StringBuilder b, int clouds, boolean glow) { + for (int i = 0; i < clouds; ++i) { + String cloudColor = glow ? "m_Clouds${i}Glow" : "m_Clouds${i}Color" + b << "\n\t#ifdef HAS_CLOUDS${i}\n" + b << " vec4 clouds${i} = $cloudColor;\n" + b << "\t\tclouds${i}.a *= " + b << "texture2D(m_Clouds${i}AlphaMap, clouds${i}Coord).r;\n" + b << "\t\t#ifdef HAS_CLOUDS${i}_NORMAL\n" + b << "\t\t\tvec3 normal${i} = " + b << "texture2D(m_Clouds${i}NormalMap, clouds${i}Coord).xyz;\n" + b << "\t\t\tnormal${i} = normal${i} * 2.0 - 1.0;\n" + b << "\t\t\tfloat relief${i} = clamp(0.90 + normal${i}.z " + b << "* 0.15, 0.75, 1.15);\n" + b << "\t\t\tclouds${i}.rgb *= relief${i};\n" + b << '\t\t#endif\n' + b << " color = mixColors(color, clouds${i});\n" + b << ' #endif\n' + } +} + +String mixColorsFunction() { + return ''' +vec4 mixColors(vec4 color0, vec4 color1) { + vec4 result; + float a0 = color0.a * (1.0 - color1.a); + result.a = a0 + color1.a; + if (result.a > 0.0) { + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; + } else { + result.rgb = vec3(0.0); + } + return result; +} +''' +} + +String generatedLine(String commentStyle) { + if (commentStyle == '//') { + return '// Generated by :SkyAssets:skyMaterials. Do not edit by hand.\n' + } + return '/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */\n\n' +} diff --git a/SkyExamples/build.gradle b/SkyExamples/build.gradle index 81c6499..a32e22d 100644 --- a/SkyExamples/build.gradle +++ b/SkyExamples/build.gradle @@ -119,3 +119,7 @@ tasks.register('TestSkyControlWater', JavaExec) { tasks.register('TestSkyMaterial', JavaExec) { mainClass = 'jme3utilities.sky.test.TestSkyMaterial' } + +tasks.register('SkyCloudWeatherSmoke', JavaExec) { + mainClass = 'jme3utilities.sky.test.SkyCloudWeatherSmoke' +} diff --git a/SkyExamples/src/main/java/jme3utilities/sky/test/SkyCloudWeatherSmoke.java b/SkyExamples/src/main/java/jme3utilities/sky/test/SkyCloudWeatherSmoke.java new file mode 100644 index 0000000..187a51a --- /dev/null +++ b/SkyExamples/src/main/java/jme3utilities/sky/test/SkyCloudWeatherSmoke.java @@ -0,0 +1,143 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.test; + +import com.jme3.app.SimpleApplication; +import com.jme3.light.AmbientLight; +import com.jme3.light.DirectionalLight; +import com.jme3.math.Vector3f; +import com.jme3.post.FilterPostProcessor; +import com.jme3.post.filters.BloomFilter; +import com.jme3.system.AppSettings; +import java.util.logging.Level; +import java.util.logging.Logger; +import jme3utilities.sky.SkyControl; +import jme3utilities.sky.StarsOption; +import jme3utilities.sky.Updater; +import jme3utilities.sky.cloud.SkyCloudPreset; + +/** + * Visual smoke test for cloud weather presets and generated cloud shaders. + * + * @author Take Some + */ +final class SkyCloudWeatherSmoke extends SimpleApplication { + /** Message logger for this class. */ + final private static Logger logger + = Logger.getLogger(SkyCloudWeatherSmoke.class.getName()); + /** Transition duration between presets. */ + final private static float transitionSeconds = 1.2f; + /** Application time accumulator. */ + private float elapsed; + /** Next transition slot. */ + private int transitionIndex; + /** Sky control under test. */ + private SkyControl skyControl; + + /** + * Main entry point. + * + * @param arguments ignored command-line arguments + */ + public static void main(String[] arguments) { + logger.setLevel(Level.INFO); + SkyCloudWeatherSmoke application = new SkyCloudWeatherSmoke(); + application.setPauseOnLostFocus(false); + + boolean loadDefaults = true; + AppSettings settings = new AppSettings(loadDefaults); + settings.setTitle("SkyCloudWeatherSmoke"); + settings.setResolution(960, 540); + application.setSettings(settings); + application.setShowSettings(false); + application.start(); + } + + /** Initialize the scene. */ + @Override + public void simpleInitApp() { + flyCam.setMoveSpeed(25f); + cam.setLocation(new Vector3f(0f, 3f, 8f)); + cam.lookAt(Vector3f.ZERO, Vector3f.UNIT_Y); + + AmbientLight ambientLight = new AmbientLight(); + DirectionalLight mainLight = new DirectionalLight(); + rootNode.addLight(ambientLight); + rootNode.addLight(mainLight); + + float cloudFlattening = 0.9f; + boolean bottomDome = true; + this.skyControl = new SkyControl( + assetManager, cam, cloudFlattening, StarsOption.TwoDomes, + bottomDome); + rootNode.addControl(skyControl); + skyControl.setEnabled(true); + skyControl.setCloudModulation(true); + skyControl.getSunAndStars().setHour(14f); + skyControl.setCloudPreset(SkyCloudPreset.WISPY, 0f); + + Updater updater = skyControl.getUpdater(); + updater.addViewPort(viewPort); + updater.setAmbientLight(ambientLight); + updater.setMainLight(mainLight); + + FilterPostProcessor fpp = new FilterPostProcessor(assetManager); + BloomFilter bloom = new BloomFilter(BloomFilter.GlowMode.Objects); + bloom.setBloomIntensity(1.5f); + fpp.addFilter(bloom); + viewPort.addProcessor(fpp); + updater.addBloomFilter(bloom); + + logger.info("Started WISPY preset"); + } + + /** + * Update the smoke-test timeline. + * + * @param tpf time per frame in seconds + */ + @Override + public void simpleUpdate(float tpf) { + elapsed += tpf; + if (transitionIndex == 0 && elapsed >= 2f) { + skyControl.setCloudPreset(SkyCloudPreset.RAIN, transitionSeconds); + logger.info("Transition to RAIN"); + ++transitionIndex; + } else if (transitionIndex == 1 && elapsed >= 5f) { + skyControl.setCloudPreset(SkyCloudPreset.STORM, transitionSeconds); + logger.info("Transition to STORM"); + ++transitionIndex; + } else if (transitionIndex == 2 && elapsed >= 8f) { + skyControl.setCloudPreset(SkyCloudPreset.WISPY, transitionSeconds); + logger.info("Transition back to WISPY"); + ++transitionIndex; + } else if (transitionIndex == 3 && elapsed >= 12f) { + logger.info("Cloud weather visual smoke completed."); + stop(true); + ++transitionIndex; + } + } +} diff --git a/SkyLibrary/build.gradle b/SkyLibrary/build.gradle index 4cb759f..5b9d392 100644 --- a/SkyLibrary/build.gradle +++ b/SkyLibrary/build.gradle @@ -18,7 +18,7 @@ ext { websiteUrl = 'https://github.com/Take-Some/SkySimulation' } -processResources.dependsOn(':SkyAssets:skyTextures') +processResources.dependsOn(':SkyAssets:skyTextures', ':SkyAssets:skyMaterials') dependencies { api(libs.jme3.effects) diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/CloudLayer.java b/SkyLibrary/src/main/java/jme3utilities/sky/CloudLayer.java index 8eac187..cae586c 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/CloudLayer.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/CloudLayer.java @@ -210,12 +210,22 @@ public void setTexture(String assetPath, float scale) { material.setCloudsScale(layerIndex, scale); } + + /** + * Add, replace, or clear this layer's normal-map texture. + * + * @param assetPath asset path to the normal map, or null to clear it + */ + public void setNormalMap(String assetPath) { + material.setCloudsNormalMap(layerIndex, assetPath); + } + /** * Update this layer's texture offset in the material. * * @param time (in seconds) */ - void updateOffset(float time) { + public void updateOffset(float time) { float u = u0 + time * uRate; float v = v0 + time * vRate; material.setCloudsOffset(layerIndex, u, v); diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/Constants.java b/SkyLibrary/src/main/java/jme3utilities/sky/Constants.java index d029881..681e9eb 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/Constants.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/Constants.java @@ -74,7 +74,7 @@ final public class Constants { /** * UV distance from top to rim (<0.5, >0) */ - final static float uvScale = 0.44f; + final public static float uvScale = 0.44f; /** * coefficient used to compute the stretchFactor for objects projected onto * a DomeMesh diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyCloudLayerFactory.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyCloudLayerFactory.java new file mode 100644 index 0000000..afd0f9e --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyCloudLayerFactory.java @@ -0,0 +1,55 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky; + +/** + * Factory for cloud-layer runtime objects. + * + * @author Take Some + */ +final class SkyCloudLayerFactory { + /** + * Hidden constructor. + */ + private SkyCloudLayerFactory() { + // do nothing + } + + /** + * Create cloud-layer runtime objects. + * + * @param material cloud material (not null) + * @return new cloud-layer array + */ + static CloudLayer[] createLayers(SkyMaterial material) { + CloudLayer[] result = new CloudLayer[SkyControlCore.numCloudLayers]; + for (int layer = 0; layer < SkyControlCore.numCloudLayers; ++layer) { + result[layer] = new CloudLayer(material, layer); + } + + return result; + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java index 715d62c..d1c22f8 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControl.java @@ -26,7 +26,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE package jme3utilities.sky; import com.jme3.asset.AssetManager; -import com.jme3.asset.AssetNotFoundException; import com.jme3.export.InputCapsule; import com.jme3.export.JmeExporter; import com.jme3.export.JmeImporter; @@ -37,7 +36,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import com.jme3.math.Vector2f; import com.jme3.math.Vector3f; import com.jme3.renderer.Camera; -import com.jme3.scene.Geometry; import com.jme3.scene.Node; import com.jme3.texture.Texture; import com.jme3.util.clone.Cloner; @@ -46,9 +44,13 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import java.util.logging.Logger; import jme3utilities.Validate; import jme3utilities.math.MyColor; -import jme3utilities.math.MyMath; import jme3utilities.mesh.DomeMesh; -import jme3utilities.sky.atmosphere.SkyLightingModel; +import jme3utilities.sky.control.SkyBaseColorRuntime; +import jme3utilities.sky.control.SkyCloudTransmissionRuntime; +import jme3utilities.sky.control.SkyLightSelectionRuntime; +import jme3utilities.sky.control.SkyLightingOutputRuntime; +import jme3utilities.sky.control.SkyMoonRuntime; +import jme3utilities.sky.control.SkyObjectLightingRuntime; /** * Simple control to simulate a dynamic sky using assets and techniques derived @@ -288,11 +290,10 @@ public float lunarDiameter() { * storeResult or a new vector) */ public Vector3f moonDirection(Vector3f storeResult) { - float solarLongitude = sunAndStars.getSolarLongitude(); - float celestialLongitude = solarLongitude + longitudeDifference; - celestialLongitude = MyMath.modulo(celestialLongitude, FastMath.TWO_PI); - Vector3f result = sunAndStars.convertToWorld( - lunarLatitude, celestialLongitude, storeResult); + float longitudeDifference = moonLongitudeDifference(); + float lunarLatitude = moonLatitude(); + Vector3f result = SkyMoonRuntime.direction(sunAndStars, + longitudeDifference, lunarLatitude, storeResult); return result; } @@ -399,7 +400,7 @@ public void setMoonTexture(Texture colorMap) { */ final public void setPhase(LunarPhase newPreset) { if (newPreset == LunarPhase.CUSTOM) { - setPhase(longitudeDifference, lunarLatitude); + setPhase(moonLongitudeDifference(), moonLatitude()); return; } @@ -408,16 +409,11 @@ final public void setPhase(LunarPhase newPreset) { } this.phase = newPreset; if (newPreset != null) { - this.longitudeDifference = newPreset.longitudeDifference(); + setMoonLongDiff(newPreset.longitudeDifference()); if (!applyMoonTexture()) { SkyMaterial topMaterial = getTopMaterial(); - String assetPath = newPreset.imagePath(""); - try { - topMaterial.addObject(moonIndex, assetPath); - } catch (AssetNotFoundException exception) { - assetPath = newPreset.imagePath("-nonviral"); - topMaterial.addObject(moonIndex, assetPath); - } + SkyMoonRuntime.applyPresetTexture( + topMaterial, moonIndex, newPreset); } } } @@ -439,8 +435,7 @@ public void setPhase(float longitudeDifference, float lunarLatitude) { moonRenderer.setEnabled(true); this.phase = LunarPhase.CUSTOM; - this.longitudeDifference = longitudeDifference; - this.lunarLatitude = lunarLatitude; + setCelestialPhase(longitudeDifference, lunarLatitude); this.moonAssetPath = null; this.moonColorMap = null; @@ -536,9 +531,7 @@ protected ColorRGBA updateCloudsColor( } } cloudsColor.multLocal(brightness); - for (int layer = 0; layer < numCloudLayers; ++layer) { - cloudLayers[layer].setColor(cloudsColor); - } + setCloudLayersColor(cloudsColor); return cloudsColor; } @@ -648,131 +641,11 @@ public void write(JmeExporter exporter) throws IOException { */ private boolean applyMoonTexture() { SkyMaterial topMaterial = getTopMaterial(); - if (moonColorMap != null) { - topMaterial.addObject(moonIndex, moonColorMap); - return true; - } else if (moonAssetPath != null) { - topMaterial.addObject(moonIndex, moonAssetPath); - return true; - } - - return false; - } - - /** - * Compute where mainDirection intersects the cloud dome in the dome's local - * coordinates, accounting for the dome's flattening and vertical offset. - * - * @param mainDirection (unit vector with non-negative y-component) - * @return new unit vector - */ - private Vector3f intersectCloudDome(Vector3f mainDirection) { - assert mainDirection != null; - assert mainDirection.isUnitVector() : mainDirection; - assert mainDirection.y >= 0f : mainDirection; - - double cosSquared - = MyMath.sumOfSquares(mainDirection.x, mainDirection.z); - if (cosSquared == 0.0) { - // Special case when the main light is directly overhead. - return new Vector3f(0f, 1f, 0f); - } - - float deltaY; - float semiMinorAxis; - Geometry cloudsOnlyDome = getCloudsOnlyDome(); - if (cloudsOnlyDome == null) { - deltaY = 0f; - semiMinorAxis = 1f; - } else { - Vector3f offset = cloudsOnlyDome.getLocalTranslation(); - assert offset.x == 0f : offset; - assert offset.y <= 0f : offset; - assert offset.z == 0f : offset; - deltaY = offset.y; - - Vector3f scale = cloudsOnlyDome.getLocalScale(); - assert scale.x == 1f : scale; - assert scale.y > 0f : scale; - assert scale.z == 1f : scale; - semiMinorAxis = scale.y; - } - /* - * Solve for the most positive root of a quadratic equation - * in w = sqrt(x^2 + z^2). Use double precision arithmetic. - */ - double cosAltitude = Math.sqrt(cosSquared); - double tanAltitude = mainDirection.y / cosAltitude; - double smaSquared = semiMinorAxis * semiMinorAxis; - double a = tanAltitude * tanAltitude + smaSquared; - assert a > 0.0 : a; - double b = -2.0 * deltaY * tanAltitude; - double c = deltaY * deltaY - smaSquared; - double discriminant = MyMath.discriminant(a, b, c); - assert discriminant >= 0.0 : discriminant; - double w = (-b + Math.sqrt(discriminant)) / (2.0 * a); - - double distance = w / cosAltitude; - if (distance > 1.0) { // Squash rounding errors. - distance = 1.0; - } - float x = (float) (mainDirection.x * distance); - float y = (float) MyMath.circle(w); - float z = (float) (mainDirection.z * distance); - Vector3f result = new Vector3f(x, y, z); - - assert result.isUnitVector() : result; + boolean result = SkyMoonRuntime.applyTexture( + topMaterial, moonIndex, moonAssetPath, moonColorMap); return result; } - /** - * Compute the clockwise (left-handed) rotation of the moon's texture - * relative to the sky's texture. - * - * @param longitude the moon's celestial longitude (in radians east of the - * March equinox) - * @param uvCenter texture coordinates of the moon's center (not null) - * @return new unit vector with its x-component equal to the cosine of the - * rotation angle and its y-component equal to the sine of the rotation - * angle - */ - private Vector2f lunarRotation(float longitude, Vector2f uvCenter) { - assert uvCenter != null; - /* - * Compute UV coordinates for 0.01 radians north of the center - * of the moon. - */ - DomeMesh topMesh = getTopMesh(); - float latitude = lunarLatitude + 0.01f; - if (latitude <= FastMath.HALF_PI) { - Vector3f north - = sunAndStars.convertToWorld(latitude, longitude, null); - Vector2f uvNorth = topMesh.directionUV(north); - if (uvNorth != null) { - Vector2f offset = uvNorth.subtract(uvCenter); - assert offset.length() > 0f : offset; - Vector2f result = offset.normalize(); - return result; - } - } - /* - * Compute UV coordinates for 0.01 radians south of the center - * of the moon. - */ - latitude = lunarLatitude - 0.01f; - assert latitude >= -FastMath.HALF_PI : lunarLatitude; - Vector3f south = sunAndStars.convertToWorld(latitude, longitude, null); - Vector2f uvSouth = topMesh.directionUV(south); - if (uvSouth != null) { - Vector2f offset = uvCenter.subtract(uvSouth); - assert offset.length() > 0f : offset; - Vector2f result = offset.normalize(); - return result; - } - assert false : south; - return null; - } - /** * Update astronomical objects, sky color, lighting, and stars. */ @@ -806,73 +679,28 @@ private void updateAll() { * @param moonDirection world direction to the moon (length=1 or null) */ private void updateLighting(Vector3f sunDirection, Vector3f moonDirection) { - assert sunDirection != null; - assert sunDirection.isUnitVector() : sunDirection; - if (moonDirection != null) { - assert moonDirection.isUnitVector() : moonDirection; - } - - float sineSolarAltitude = sunDirection.y; - float sineLunarAltitude; - if (moonDirection != null) { - sineLunarAltitude = moonDirection.y; - } else { - sineLunarAltitude = -1f; - } - updateObjectColors(sineSolarAltitude, sineLunarAltitude); - - // Determine the world direction to the main light source. - boolean moonUp = sineLunarAltitude >= 0f; - boolean sunUp = sineSolarAltitude >= 0f; float moonWeight = getMoonIllumination(); - Vector3f mainDirection; - if (sunUp) { - mainDirection = sunDirection; - } else if (moonUp && moonWeight > 0f) { - assert moonDirection != null; - mainDirection = moonDirection; - } else { - mainDirection = starlightDirection; - } - assert mainDirection.isUnitVector() : mainDirection; - assert mainDirection.y >= 0f : mainDirection; + SkyLightSelectionRuntime.Result lightSelection + = SkyLightSelectionRuntime.select( + sunDirection, moonDirection, moonWeight, + starlightDirection); + float sineSolarAltitude = lightSelection.sineSolarAltitude(); + float sineLunarAltitude = lightSelection.sineLunarAltitude(); + boolean moonUp = lightSelection.moonUp(); + boolean sunUp = lightSelection.sunUp(); + Vector3f mainDirection = lightSelection.mainDirection(); + + SkyMaterial topMaterial = getTopMaterial(); + SkyObjectLightingRuntime.updateObjects( + topMaterial, atmosphere, sineSolarAltitude, sineLunarAltitude); /* * Determine the base color (applied to horizon haze, bottom dome, and - * viewport backgrounds) using the sun's altitude: - * + sunlight when ssa >= 0.25, - * + twilight when ssa = 0, - * + blend of moonlight and starlight when ssa <= -0.04, - * with linearly interpolated transitions. + * viewport backgrounds) using the sun's altitude. */ - ColorRGBA twilightColor = atmosphere.copyTwilightColor(null); - ColorRGBA sunColor = SkyLightingModel.daylightColor( - atmosphere, sineSolarAltitude); - ColorRGBA moonColor = atmosphere.copyMoonLight(null); - ColorRGBA starColor = atmosphere.copyStarLight(null); - ColorRGBA baseColor; - if (sunUp) { - float dayWeight = SkyLightingModel.smoothStep( - sineSolarAltitude / atmosphere.getFullDayAltitude()); - baseColor = MyColor.interpolateLinear( - dayWeight, twilightColor, sunColor); - float hazeWeight = atmosphere.getHazeStrength() - * (1f - dayWeight) * 0.5f; - baseColor = MyColor.interpolateLinear( - hazeWeight, baseColor, twilightColor); - } else { - ColorRGBA blend; - if (moonUp && moonWeight > 0f) { - blend = MyColor.interpolateLinear( - moonWeight, starColor, moonColor); - } else { - blend = starColor; - } - float nightWeight = SkyLightingModel.smoothStep( - -sineSolarAltitude / atmosphere.getTwilightLimit()); - baseColor = MyColor.interpolateLinear( - nightWeight, twilightColor, blend); - } - SkyMaterial topMaterial = getTopMaterial(); + SkyBaseColorRuntime.Result baseResult + = SkyBaseColorRuntime.compute( + atmosphere, sineSolarAltitude, moonUp, moonWeight); + ColorRGBA baseColor = baseResult.baseColor(); topMaterial.setHazeColor(baseColor); Material bottomMaterial = getBottomMaterial(); if (bottomMaterial != null) { @@ -881,71 +709,27 @@ private void updateLighting(Vector3f sunDirection, Vector3f moonDirection) { ColorRGBA cloudsColor = updateCloudsColor(baseColor, sunUp, moonUp); - // Determine what fraction of the main light passes through the clouds. - float transmit; - if (cloudModulationFlag && (sunUp || moonUp && moonWeight > 0f)) { - // Modulate light intensity as clouds pass in front. - Vector3f intersection = intersectCloudDome(mainDirection); - DomeMesh cloudsMesh = getCloudsMesh(); - Vector2f texCoord = cloudsMesh.directionUV(intersection); - SkyMaterial cloudsMaterial = getCloudsMaterial(); - transmit = cloudsMaterial.getTransmission(texCoord); - - } else { - transmit = 1f; - } - - // Determine the color and intensity of the main light. - ColorRGBA main; - if (sunUp) { - /* - * By day, the main light has the base color, modulated by - * clouds and the cube root of the sine of the sun's altitude. - */ - float altitudeFactor = MyMath.cubeRoot( - FastMath.saturate(sineSolarAltitude)); - float sunFactor = transmit * altitudeFactor; - main = sunColor.mult(sunFactor); - - } else if (moonUp) { - /* - * By night, the main light is a blend of moonlight and starlight, - * with the moon's portion modulated by clouds and the moon's phase. - */ - float lunarAltitudeFactor = MyMath.cubeRoot( - FastMath.saturate(sineLunarAltitude)); - float moonFactor = transmit * moonWeight * lunarAltitudeFactor; - main = MyColor.interpolateLinear(moonFactor, starColor, moonColor); - - } else { - main = starColor.clone(); - } - /* - * The ambient light color is based on the clouds color; - * its intensity is modulated by the "slack" left by - * strongest component of the main light. - */ - float slack = 1f - MyMath.max(main.r, main.g, main.b); - assert slack >= 0f : slack; - ColorRGBA ambient = cloudsColor.mult( - slack * atmosphere.getAmbientScale()); - /* - * Compute the recommended shadow intensity as the fraction of - * the total directional light. - */ - float mainAmount = main.r + main.g + main.b; - float ambientAmount = ambient.r + ambient.g + ambient.b; - float totalAmount = mainAmount + ambientAmount; - assert totalAmount > 0f : totalAmount; - float shadowIntensity = FastMath.saturate(mainAmount / totalAmount); - shadowIntensity = FastMath.saturate( - shadowIntensity * atmosphere.getShadowContrast()); - - // Determine the recommended bloom intensity using the sun's altitude. - float bloomIntensity = 6f * atmosphere.getBloomScale() - * sineSolarAltitude; - bloomIntensity = FastMath.clamp( - bloomIntensity, 0f, atmosphere.getMaxBloomIntensity()); + SkyCloudTransmissionRuntime.Input transmissionInput + = new SkyCloudTransmissionRuntime.Input( + cloudModulationFlag, sunUp, moonUp, moonWeight, + mainDirection); + SkyCloudTransmissionRuntime.Resources transmissionResources + = new SkyCloudTransmissionRuntime.Resources( + getCloudsOnlyDome(), getCloudsMesh(), + getCloudsMaterial()); + float transmit = SkyCloudTransmissionRuntime.transmission( + transmissionInput, transmissionResources); + + SkyLightingOutputRuntime.Input outputInput + = new SkyLightingOutputRuntime.Input( + atmosphere, lightSelection, baseResult, cloudsColor, + moonWeight, transmit); + SkyLightingOutputRuntime.Result output + = SkyLightingOutputRuntime.compute(outputInput); + ColorRGBA ambient = output.ambientColor(); + ColorRGBA main = output.mainDirectionalColor(); + float bloomIntensity = output.bloomIntensity(); + float shadowIntensity = output.shadowIntensity(); updater.update(ambient, baseColor, main, bloomIntensity, shadowIntensity, mainDirection); @@ -958,76 +742,17 @@ private void updateLighting(Vector3f sunDirection, Vector3f moonDirection) { * is hidden */ private Vector3f updateMoon() { - if (phase == null) { - SkyMaterial topMaterial = getTopMaterial(); - topMaterial.hideObject(moonIndex); - return null; - } - if (phase == LunarPhase.CUSTOM) { - assert moonRenderer != null; - float intensity; - intensity = 2f + FastMath.abs(longitudeDifference - FastMath.PI); - moonRenderer.setLightIntensity(intensity); - moonRenderer.setPhase(longitudeDifference, lunarLatitude); - } - - // Compute the UV coordinates of the center of the moon. - float solarLongitude = sunAndStars.getSolarLongitude(); - float celestialLongitude = solarLongitude + longitudeDifference; - celestialLongitude = MyMath.modulo(celestialLongitude, FastMath.TWO_PI); - Vector3f worldDirection = sunAndStars.convertToWorld( - lunarLatitude, celestialLongitude, null); - DomeMesh topMesh = getTopMesh(); - Vector2f uvCenter = topMesh.directionUV(worldDirection); - SkyMaterial topMaterial = getTopMaterial(); - if (uvCenter != null) { - Vector2f rotation = lunarRotation(celestialLongitude, uvCenter); - // Reveal the object and update its texture transform. - topMaterial.setObjectTransform( - moonIndex, uvCenter, moonScale, rotation); - } else { - topMaterial.hideObject(moonIndex); - } - - return worldDirection; - } + DomeMesh topMesh = getTopMesh(); + float longitudeDifference = moonLongitudeDifference(); + float lunarLatitude = moonLatitude(); + SkyMoonRuntime.MoonUpdateState state + = new SkyMoonRuntime.MoonUpdateState(moonRenderer, moonIndex, + longitudeDifference, lunarLatitude, moonScale); + Vector3f result = SkyMoonRuntime.updateMoon( + topMaterial, topMesh, sunAndStars, phase, state); - /** - * Update the colors of the sun and moon based on their altitudes. - * - * @param sineSolarAltitude (≤1, &ge:-1) - * @param sineLunarAltitude (≤1, &ge:-1) - */ - private void updateObjectColors( - float sineSolarAltitude, float sineLunarAltitude) { - assert sineSolarAltitude <= 1f : sineSolarAltitude; - assert sineSolarAltitude >= -1f : sineSolarAltitude; - assert sineLunarAltitude <= 1f : sineLunarAltitude; - assert sineLunarAltitude >= -1f : sineLunarAltitude; - - // Update the sun's color and glow. - float sunVisibility = FastMath.saturate( - 1f + sineSolarAltitude / atmosphere.getTwilightLimit()); - ColorRGBA sunColor = SkyLightingModel.daylightColor( - atmosphere, sineSolarAltitude); - sunColor.a = Constants.alphaMax * sunVisibility; - SkyMaterial topMaterial = getTopMaterial(); - topMaterial.setObjectColor(sunIndex, sunColor); - topMaterial.setObjectGlow(sunIndex, sunColor); - - // Update the moon's color. - float moonVisibility = FastMath.saturate( - 2f * sineLunarAltitude + 0.6f); - float moonWarmth = 1f - SkyLightingModel.smoothStep( - (sineLunarAltitude + 0.02f) / 0.25f); - float moonShift = moonWarmth * atmosphere.getSunsetWarmth(); - ColorRGBA moonColor = atmosphere.copyMoonLight(null); - moonColor.g *= 1f - 0.15f * moonShift; - moonColor.b *= 1f - 0.35f * moonShift; - moonColor.multLocal(moonVisibility); - moonColor.a = Constants.alphaMax; - topMaterial.setObjectColor(moonIndex, moonColor); + return result; } /** diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControlCore.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControlCore.java index 32c526f..3de7d7a 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyControlCore.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyControlCore.java @@ -30,7 +30,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import com.jme3.export.JmeExporter; import com.jme3.export.JmeImporter; import com.jme3.export.OutputCapsule; -import com.jme3.export.Savable; import com.jme3.material.Material; import com.jme3.math.ColorRGBA; import com.jme3.math.FastMath; @@ -52,7 +51,12 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import jme3utilities.Validate; import jme3utilities.math.MyColor; import jme3utilities.mesh.DomeMesh; -import jme3utilities.sky.scene.SkyNodeNames; +import jme3utilities.sky.cloud.SkyCloudPreset; +import jme3utilities.sky.control.SkyCelestialState; +import jme3utilities.sky.control.SkyCloudRuntime; +import jme3utilities.sky.material.SkyMaterialFactory; +import jme3utilities.sky.scene.SkyDomeFactory; +import jme3utilities.sky.scene.SkySceneLookup; /** * Core fields and methods of a SubtreeControl to simulate a dynamic sky. @@ -119,28 +123,13 @@ public class SkyControlCore extends SubtreeControl { */ private Camera camera; /** - * information about individual cloud layers - TODO privatize + * Runtime state and update logic for cloud layers. */ - protected CloudLayer[] cloudLayers; + private SkyCloudRuntime cloudRuntime; /** - * simulation time for cloud layer animations (initially 0, may be negative) + * Runtime state for the moon's latitude and phase angle. */ - private float cloudsAnimationTime = 0f; - /** - * rate of motion for cloud layer animations (default is 1, may be negative) - */ - private float cloudsRate = 1f; - /** - * the difference in celestial longitude (lambda) between the moon and the - * sun (in radians, measured eastward from the sun, default is Pi) - */ - protected float longitudeDifference = FastMath.PI; // TODO privatize - /** - * the moon's celestial latitude (beta, in radians, measured north from the - * ecliptic, ≥-Pi/2, ≤Pi/2, default is 0f, realistic range is -0.09 to - * 0.09) - */ - protected float lunarLatitude = 0f; // TODO privatize + private SkyCelestialState celestialState = new SkyCelestialState(); /** * how stars are rendered: set by constructor */ @@ -156,7 +145,8 @@ protected SkyControlCore() { this.bottomDomeFlag = false; this.starsOption = StarsOption.TopDome; this.camera = null; - this.cloudLayers = null; + this.cloudRuntime = null; + this.celestialState = new SkyCelestialState(); } /** @@ -198,7 +188,9 @@ public SkyControlCore( assetManager, separateCloudDome, starsOption); SkyMaterial cloudsMaterial = SkyMaterialFactory.createClouds( assetManager, separateCloudDome, topMaterial); - this.cloudLayers = SkyMaterialFactory.createLayers(cloudsMaterial); + CloudLayer[] cloudLayers + = SkyCloudLayerFactory.createLayers(cloudsMaterial); + this.cloudRuntime = new SkyCloudRuntime(cloudLayers); Material bottomMaterial = SkyMaterialFactory.createBottom( assetManager, bottomDomeFlag); Node subtreeNode = SkyDomeFactory.createSubtree(cloudFlattening, @@ -244,10 +236,8 @@ public void clearStarMaps() { public CloudLayer getCloudLayer(int layerIndex) { Validate.inRange( layerIndex, "cloud layer index", 0, numCloudLayers - 1); - CloudLayer layer = cloudLayers[layerIndex]; - - assert layer != null; - return layer; + CloudLayer result = cloudRuntime.getLayer(layerIndex); + return result; } /** @@ -256,7 +246,8 @@ public CloudLayer getCloudLayer(int layerIndex) { * @return multiple of the default rate (may be negative) */ public float getCloudsRate() { - return cloudsRate; + float result = cloudRuntime.rate(); + return result; } /** @@ -282,7 +273,8 @@ public float getCloudsYOffset() { * @return radians east of the sun */ public float getLongitudeDifference() { - return longitudeDifference; + float result = celestialState.longitudeDifference(); + return result; } /** @@ -291,7 +283,8 @@ public float getLongitudeDifference() { * @return radians north of the ecliptic (≥-Pi/2, ≤Pi/2) */ public float getLunarLatitude() { - return lunarLatitude; + float result = celestialState.lunarLatitude(); + return result; } /** @@ -302,19 +295,8 @@ public float getLunarLatitude() { * contribution */ public float getMoonIllumination() { - float fullAngle = FastMath.abs(longitudeDifference - FastMath.PI); - if (lunarLatitude != 0f) { - float cos = FastMath.cos(fullAngle) * FastMath.cos(lunarLatitude); - fullAngle = FastMath.acos(cos); - } - assert fullAngle >= 0f : fullAngle; - assert fullAngle <= FastMath.PI : fullAngle; - - float weight = 1f - FastMath.saturate(fullAngle * 0.6f); - - assert weight >= 0f : weight; - assert weight <= 1f : weight; - return weight; + float result = celestialState.moonIllumination(); + return result; } /** @@ -349,9 +331,7 @@ public void setCamera(Camera camera) { public void setCloudiness(float newAlpha) { Validate.fraction(newAlpha, "alpha"); - for (int layer = 0; layer < numCloudLayers; ++layer) { - cloudLayers[layer].setOpacity(newAlpha); - } + cloudRuntime.setCloudiness(newAlpha); } /** @@ -360,7 +340,25 @@ public void setCloudiness(float newAlpha) { * @param newRate multiple of the default rate (may be negative, default=1) */ public void setCloudsRate(float newRate) { - this.cloudsRate = newRate; + cloudRuntime.setRate(newRate); + } + + /** + * Transition cloud layers to a weather preset. + *

+ * Textures are swapped only after the affected layers fade out, then the + * target layers fade back in. + * + * @param preset target cloud preset (not null) + * @param seconds transition duration in seconds (≥0) + */ + public void setCloudPreset(SkyCloudPreset preset, float seconds) { + Validate.nonNull(preset, "preset"); + if (!(seconds >= 0f)) { + throw new IllegalArgumentException("duration must be non-negative"); + } + + cloudRuntime.transitionTo(preset, seconds); } /** @@ -478,8 +476,7 @@ public void setTopVerticalAngle(float newAngle) { */ protected Geometry getBottomDome() { Node subtreeNode = (Node) getSubtree(); - Geometry bottomDome = (Geometry) MySpatial.findChild( - subtreeNode, SkyNodeNames.bottom); + Geometry bottomDome = SkySceneLookup.bottomDome(subtreeNode); return bottomDome; } @@ -491,10 +488,7 @@ protected Geometry getBottomDome() { */ protected Material getBottomMaterial() { Geometry bottomDome = getBottomDome(); - if (bottomDome == null) { - return null; - } - Material bottomMaterial = bottomDome.getMaterial(); + Material bottomMaterial = SkySceneLookup.material(bottomDome); return bottomMaterial; } @@ -506,10 +500,7 @@ protected Material getBottomMaterial() { */ protected DomeMesh getBottomMesh() { Geometry bottomDome = getBottomDome(); - if (bottomDome == null) { - return null; - } - DomeMesh bottomMesh = (DomeMesh) bottomDome.getMesh(); + DomeMesh bottomMesh = SkySceneLookup.domeMesh(bottomDome); return bottomMesh; } @@ -521,8 +512,7 @@ protected DomeMesh getBottomMesh() { */ protected Geometry getCloudsOnlyDome() { Node subtreeNode = (Node) getSubtree(); - Geometry cloudsOnlyDome = (Geometry) MySpatial.findChild( - subtreeNode, SkyNodeNames.clouds); + Geometry cloudsOnlyDome = SkySceneLookup.cloudsOnlyDome(subtreeNode); return cloudsOnlyDome; } @@ -571,8 +561,7 @@ protected DomeMesh getCloudsMesh() { */ protected Node getStarsNode() { Node subtreeNode = (Node) getSubtree(); - Node starsNode = (Node) MySpatial.findChild( - subtreeNode, SkyNodeNames.starsNode); + Node starsNode = SkySceneLookup.starsNode(subtreeNode); return starsNode; } @@ -584,8 +573,7 @@ protected Node getStarsNode() { */ protected Geometry getTopDome() { Node subtreeNode = (Node) getSubtree(); - Geometry topDome = (Geometry) MySpatial.findChild( - subtreeNode, SkyNodeNames.top); + Geometry topDome = SkySceneLookup.topDome(subtreeNode); assert topDome != null; return topDome; @@ -598,9 +586,8 @@ protected Geometry getTopDome() { */ protected SkyMaterial getTopMaterial() { Geometry topDome = getTopDome(); - SkyMaterial topMaterial = (SkyMaterial) topDome.getMaterial(); + SkyMaterial topMaterial = SkySceneLookup.skyMaterial(topDome); - assert topMaterial != null; return topMaterial; } @@ -611,7 +598,7 @@ protected SkyMaterial getTopMaterial() { */ protected DomeMesh getTopMesh() { Geometry topDome = getTopDome(); - DomeMesh topMesh = (DomeMesh) topDome.getMesh(); + DomeMesh topMesh = SkySceneLookup.domeMesh(topDome); assert topMesh != null; return topMesh; @@ -640,12 +627,59 @@ protected ColorRGBA updateCloudsColor( } cloudsColor.multLocal(cloudBrightness); } - for (int layer = 0; layer < numCloudLayers; ++layer) { - cloudLayers[layer].setColor(cloudsColor); - } + setCloudLayersColor(cloudsColor); return cloudsColor; } + + /** + * Apply a color to all cloud layers. + * + * @param color desired cloud color (not null, unaffected) + */ + protected void setCloudLayersColor(ColorRGBA color) { + cloudRuntime.setColor(color); + } + + /** + * Return the moon's longitude difference. + * + * @return radians east of the sun + */ + protected float moonLongitudeDifference() { + float result = celestialState.longitudeDifference(); + return result; + } + + /** + * Return the moon's lunar latitude. + * + * @return radians north of the ecliptic + */ + protected float moonLatitude() { + float result = celestialState.lunarLatitude(); + return result; + } + + /** + * Alter the moon's longitude difference. + * + * @param longitudeDifference radians east of the sun + */ + protected void setMoonLongDiff(float longitudeDifference) { + celestialState.setLongitudeDifference(longitudeDifference); + } + + /** + * Alter the moon's lunar latitude and phase angle. + * + * @param longitudeDifference radians east of the sun + * @param lunarLatitude radians north of the ecliptic + */ + protected void setCelestialPhase(float longitudeDifference, + float lunarLatitude) { + celestialState.setPhase(longitudeDifference, lunarLatitude); + } // ************************************************************************* // SubtreeControl methods @@ -673,7 +707,8 @@ public void cloneFields(Cloner cloner, Object original) { super.cloneFields(cloner, original); this.camera = cloner.clone(camera); - this.cloudLayers = cloner.clone(cloudLayers); + this.cloudRuntime.cloneFields(cloner); + this.celestialState = celestialState.copy(); } /** @@ -690,7 +725,7 @@ public void controlUpdate(float updateInterval) { return; } - updateClouds(updateInterval); + cloudRuntime.update(updateInterval); // Translate the sky node to center the sky on the camera. Vector3f cameraLocation = camera.getLocation(); @@ -732,14 +767,8 @@ public void read(JmeImporter importer) throws IOException { this.starsOption = ic.readEnum("starsOption", StarsOption.class, starsOption); /* camera not serialized */ - Savable[] sav = ic.readSavableArray("cloudLayers", null); - this.cloudLayers = new CloudLayer[sav.length]; - System.arraycopy(sav, 0, cloudLayers, 0, sav.length); - - this.cloudsAnimationTime = ic.readFloat("cloudsAnimationTime", 0f); - this.cloudsRate = ic.readFloat("cloudsRelativeSpeed", 1f); - this.lunarLatitude = ic.readFloat("lunarLatitude", 0f); - this.longitudeDifference = ic.readFloat("phaseAngle", FastMath.PI); + this.cloudRuntime = SkyCloudRuntime.read(ic); + this.celestialState = SkyCelestialState.read(ic); } /** @@ -769,11 +798,8 @@ public void write(JmeExporter exporter) throws IOException { oc.write(stabilizeFlag, "stabilizeFlag", false); oc.write(starsOption, "starsOption", StarsOption.TopDome); /* camera not serialized */ - oc.write(cloudLayers, "cloudLayers", null); - oc.write(cloudsAnimationTime, "cloudsAnimationTime", 0f); - oc.write(cloudsRate, "cloudsRelativeSpeed", 1f); - oc.write(lunarLatitude, "lunarLatitude", 0f); - oc.write(longitudeDifference, "phaseAngle", FastMath.PI); + cloudRuntime.write(oc); + celestialState.write(oc); } // ************************************************************************* // private methods @@ -789,17 +815,4 @@ private void removeStarsNode() { } } - /** - * Update the cloud layers. (Invoked once per frame.) - * - * @param updateInterval time interval between updates (in seconds, ≥0) - */ - private void updateClouds(float updateInterval) { - assert updateInterval >= 0f : updateInterval; - - this.cloudsAnimationTime += updateInterval * cloudsRate; - for (int layer = 0; layer < numCloudLayers; ++layer) { - cloudLayers[layer].updateOffset(cloudsAnimationTime); - } - } } diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialCore.java b/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialCore.java index 7a289c1..2b1a36c 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialCore.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialCore.java @@ -25,26 +25,26 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE */ package jme3utilities.sky; +import com.jme3.asset.AssetLoadException; import com.jme3.asset.AssetManager; import com.jme3.export.InputCapsule; import com.jme3.export.JmeExporter; import com.jme3.export.JmeImporter; import com.jme3.export.OutputCapsule; -import com.jme3.export.Savable; import com.jme3.material.MatParam; import com.jme3.material.Material; import com.jme3.math.ColorRGBA; import com.jme3.math.Vector2f; -import com.jme3.texture.Image; import com.jme3.texture.Texture; -import com.jme3.texture.image.ImageRaster; import java.io.IOException; -import java.util.Locale; import java.util.logging.Logger; import jme3utilities.MyAsset; import jme3utilities.Validate; -import jme3utilities.math.MyMath; -import jme3utilities.sky.material.SkyTextureSampler; +import jme3utilities.sky.material.SkyCloudMaterialSlots; +import jme3utilities.sky.material.SkyDdsTextureLoader; +import jme3utilities.sky.material.SkyMaterialParamNames; +import jme3utilities.sky.material.SkyObjectMaterialSlots; +import jme3utilities.sky.material.SkyObjectTransform; /** * Core fields and methods of a material for a dynamic sky dome. @@ -73,28 +73,15 @@ public class SkyMaterialCore extends Material { */ protected AssetManager assetManager; // TODO privatize /** - * maximum opacity of each cloud layer (≤1, ≥0) + * state and raster cache for cloud material slots: set by constructor or + * read(). */ - private float[] cloudAlphas; + private SkyCloudMaterialSlots cloudSlots; /** - * scale factors of cloud layers (each >0) + * state for astronomical object material slots: set by constructor or + * read(). */ - private float[] cloudScales; - /** - * scale factors of astronomical objects (each >0) - */ - private float[] objectScales; - /** - * image of each cloud layer - *

- * Since ImageRaster does not implement Savable, these are retained for use - * by write(). - */ - private Image[] cloudImages; - /** - * cached rasterization of each cloud layer - */ - private ImageRaster[] cloudsRaster; + private SkyObjectMaterialSlots objectSlots; /** * maximum number of cloud layers (≥0) */ @@ -103,18 +90,6 @@ public class SkyMaterialCore extends Material { * maximum number of astronomical objects (≥0) */ protected int maxObjects; // TODO privatize - /** - * UV offset of each cloud layer - */ - private Vector2f[] cloudOffsets; - /** - * sky texture coordinates of the center of each astronomical object - */ - private Vector2f[] objectCenters; - /** - * rotation vectors of astronomical objects (each may be null) - */ - private Vector2f[] objectRotations; // ************************************************************************* // constructors @@ -123,17 +98,11 @@ public class SkyMaterialCore extends Material { */ protected SkyMaterialCore() { this.assetManager = null; - this.cloudAlphas = null; - this.cloudImages = null; - this.cloudScales = null; - this.cloudsRaster = null; - this.cloudOffsets = null; + this.cloudSlots = null; this.maxCloudLayers = 0; this.maxObjects = 0; - this.objectCenters = null; - this.objectRotations = null; - this.objectScales = null; + this.objectSlots = null; } /** @@ -157,15 +126,9 @@ public SkyMaterialCore(AssetManager assetManager, String assetPath, this.maxObjects = maxObjects; this.maxCloudLayers = maxCloudLayers; - this.cloudAlphas = new float[maxCloudLayers]; - this.cloudImages = new Image[maxCloudLayers]; - this.cloudOffsets = new Vector2f[maxCloudLayers]; - this.cloudsRaster = new ImageRaster[maxCloudLayers]; - this.cloudScales = new float[maxCloudLayers]; + this.cloudSlots = new SkyCloudMaterialSlots(maxCloudLayers); - this.objectCenters = new Vector2f[maxObjects]; - this.objectRotations = new Vector2f[maxObjects]; - this.objectScales = new float[maxObjects]; + this.objectSlots = new SkyObjectMaterialSlots(maxObjects); } // ************************************************************************* // new methods exposed @@ -186,22 +149,41 @@ public void addClouds(int layerIndex, String assetPath) { = MyAsset.loadTexture(assetManager, assetPath, mipmaps); alphaMap.setWrap(Texture.WrapMode.Repeat); String parameterName - = String.format(Locale.ROOT, "Clouds%dAlphaMap", layerIndex); + = SkyMaterialParamNames.cloudAlphaMap(layerIndex); setTexture(parameterName, alphaMap); - boolean firstTime = (cloudsRaster[layerIndex] == null); - Image image = alphaMap.getImage(); - this.cloudImages[layerIndex] = image; - this.cloudsRaster[layerIndex] = ImageRaster.create(image); + boolean firstTime = cloudSlots.addAlphaMap(layerIndex, alphaMap); if (firstTime) { - this.cloudOffsets[layerIndex] = new Vector2f(); setCloudsColor(layerIndex, ColorRGBA.White); setCloudsOffset(layerIndex, 0f, 0f); setCloudsScale(layerIndex, 1f); } } + + /** + * Add, replace, or clear a cloud-layer normal map. + * + * @param layerIndex (<maxCloudLayers, ≥0) + * @param assetPath asset path to the normal map, or null to clear it + */ + public void setCloudsNormalMap(int layerIndex, String assetPath) { + validateLayerIndex(layerIndex); + requireCloudLayerAdded(layerIndex); + + String parameterName + = SkyMaterialParamNames.cloudNormalMap(layerIndex); + if (assetPath == null) { + clearParam(parameterName); + } else { + Validate.nonEmpty(assetPath, "asset path"); + Texture normalMap = loadNormalMap(assetPath); + normalMap.setWrap(Texture.WrapMode.Repeat); + setTexture(parameterName, normalMap); + } + } + /** * Add an astronomical object to this material using the specified color * map. If the object already exists, its color map is updated. @@ -214,12 +196,10 @@ public void addObject(int objectIndex, Texture colorMap) { Validate.nonNull(colorMap, "texture"); String parameterName - = String.format(Locale.ROOT, "Object%dColorMap", objectIndex); + = SkyMaterialParamNames.objectColorMap(objectIndex); setTexture(parameterName, colorMap); - if (objectCenters[objectIndex] == null) { - this.objectCenters[objectIndex] = new Vector2f(); - this.objectRotations[objectIndex] = new Vector2f(); + if (objectSlots.addObject(objectIndex)) { setObjectColor(objectIndex, ColorRGBA.White); setObjectGlow(objectIndex, ColorRGBA.Black); setObjectTransform(objectIndex, Constants.topUV, 1f, null); @@ -235,14 +215,12 @@ public void addObject(int objectIndex, Texture colorMap) { */ public ColorRGBA copyCloudsColor(int layerIndex) { validateLayerIndex(layerIndex); - if (cloudsRaster[layerIndex] == null) { - throw new IllegalStateException("layer not yet added"); - } + requireCloudLayerAdded(layerIndex); String parameterName - = String.format(Locale.ROOT, "Clouds%dColor", layerIndex); + = SkyMaterialParamNames.cloudColor(layerIndex); ColorRGBA color = copyColor(parameterName); - color.a = cloudAlphas[layerIndex]; + color.a = cloudSlots.alpha(layerIndex); return color; } @@ -256,12 +234,10 @@ public ColorRGBA copyCloudsColor(int layerIndex) { */ public ColorRGBA copyCloudsGlow(int layerIndex) { validateLayerIndex(layerIndex); - if (cloudsRaster[layerIndex] == null) { - throw new IllegalStateException("layer not yet added"); - } + requireCloudLayerAdded(layerIndex); String parameterName - = String.format(Locale.ROOT, "Clouds%dGlow", layerIndex); + = SkyMaterialParamNames.cloudGlow(layerIndex); ColorRGBA color = copyColor(parameterName); return color; @@ -276,12 +252,10 @@ public ColorRGBA copyCloudsGlow(int layerIndex) { */ public Vector2f copyCloudsOffset(int layerIndex) { validateLayerIndex(layerIndex); - if (cloudsRaster[layerIndex] == null) { - throw new IllegalStateException("layer not yet added"); - } + requireCloudLayerAdded(layerIndex); - Vector2f offset = cloudOffsets[layerIndex]; - return offset.clone(); + Vector2f result = cloudSlots.copyOffset(layerIndex); + return result; } /** @@ -308,12 +282,10 @@ public ColorRGBA copyColor(String name) { */ public ColorRGBA copyObjectColor(int objectIndex) { validateObjectIndex(objectIndex); - if (objectCenters[objectIndex] == null) { - throw new IllegalStateException("object not yet added"); - } + requireObjectAdded(objectIndex); String parameterName - = String.format(Locale.ROOT, "Object%dColor", objectIndex); + = SkyMaterialParamNames.objectColor(objectIndex); ColorRGBA color = copyColor(parameterName); return color; @@ -328,12 +300,10 @@ public ColorRGBA copyObjectColor(int objectIndex) { */ public ColorRGBA copyObjectGlow(int objectIndex) { validateObjectIndex(objectIndex); - if (objectCenters[objectIndex] == null) { - throw new IllegalStateException("object not yet added"); - } + requireObjectAdded(objectIndex); String parameterName - = String.format(Locale.ROOT, "Object%dGlow", objectIndex); + = SkyMaterialParamNames.objectGlow(objectIndex); ColorRGBA color = copyColor(parameterName); return color; @@ -349,12 +319,10 @@ public ColorRGBA copyObjectGlow(int objectIndex) { */ public Vector2f copyObjectOffset(int objectIndex) { validateObjectIndex(objectIndex); - if (objectCenters[objectIndex] == null) { - throw new IllegalStateException("object not yet added"); - } + requireObjectAdded(objectIndex); - Vector2f offset = objectCenters[objectIndex]; - return offset.clone(); + Vector2f result = objectSlots.copyCenter(objectIndex); + return result; } /** @@ -367,16 +335,10 @@ public Vector2f copyObjectOffset(int objectIndex) { */ public Vector2f copyObjectRotation(int objectIndex) { validateObjectIndex(objectIndex); - if (objectCenters[objectIndex] == null) { - throw new IllegalStateException("object not yet added"); - } + requireObjectAdded(objectIndex); - Vector2f vector = objectRotations[objectIndex]; - if (vector == null) { - return null; - } else { - return vector.clone(); - } + Vector2f result = objectSlots.copyRotation(objectIndex); + return result; } /** @@ -402,12 +364,10 @@ public Vector2f copyVector2(String name) { */ public float getCloudsScale(int layerIndex) { validateLayerIndex(layerIndex); - if (cloudsRaster[layerIndex] == null) { - throw new IllegalStateException("layer not yet added"); - } + requireCloudLayerAdded(layerIndex); String parameterName - = String.format(Locale.ROOT, "Clouds%dScale", layerIndex); + = SkyMaterialParamNames.cloudScale(layerIndex); float result = getFloat(parameterName); assert result > 0f : result; @@ -424,11 +384,9 @@ public float getCloudsScale(int layerIndex) { */ public float getObjectScale(int objectIndex) { validateObjectIndex(objectIndex); - if (objectCenters[objectIndex] == null) { - throw new IllegalStateException("object not yet added"); - } + requireObjectAdded(objectIndex); - float result = objectScales[objectIndex]; + float result = objectSlots.scale(objectIndex); assert result > 0f : result; return result; @@ -456,11 +414,9 @@ public float getFloat(String name) { */ public float getTransmission(int objectIndex) { validateObjectIndex(objectIndex); + requireObjectAdded(objectIndex); - Vector2f center = objectCenters[objectIndex]; - if (center == null) { - throw new IllegalStateException("object not yet added"); - } + Vector2f center = objectSlots.copyCenter(objectIndex); float result = getTransmission(center); return result; @@ -476,16 +432,7 @@ public float getTransmission(int objectIndex) { public float getTransmission(Vector2f skyCoordinates) { Validate.nonNull(skyCoordinates, "coordinates"); - float result = 1f; - for (int layerIndex = 0; layerIndex < maxCloudLayers; ++layerIndex) { - if (cloudsRaster[layerIndex] != null) { - float transparency = transparency(layerIndex, skyCoordinates); - result *= transparency; - } - } - - assert result >= Constants.alphaMin : result; - assert result <= Constants.alphaMax : result; + float result = cloudSlots.transmission(skyCoordinates); return result; } @@ -500,22 +447,20 @@ public float getTransmission(Vector2f skyCoordinates) { */ public void hideObject(int objectIndex) { validateObjectIndex(objectIndex); - if (objectCenters[objectIndex] == null) { - throw new IllegalStateException("object not yet added"); - } + requireObjectAdded(objectIndex); String objectParameterName - = String.format(Locale.ROOT, "Object%dCenter", objectIndex); + = SkyMaterialParamNames.objectCenter(objectIndex); setVector2(objectParameterName, hidden); - objectCenters[objectIndex].set(hidden); + objectSlots.hide(objectIndex, hidden); // Scale down the object to occupy only a few pixels in texture space. float scale = 1000f; String transformUParameterName - = String.format(Locale.ROOT, "Object%dTransformU", objectIndex); + = SkyMaterialParamNames.objectTransformU(objectIndex); setVector2(transformUParameterName, new Vector2f(scale, scale)); String transformVParameterName - = String.format(Locale.ROOT, "Object%dTransformV", objectIndex); + = SkyMaterialParamNames.objectTransformV(objectIndex); setVector2(transformVParameterName, new Vector2f(scale, scale)); } @@ -528,14 +473,12 @@ public void hideObject(int objectIndex) { public void setCloudsColor(int layerIndex, ColorRGBA newColor) { validateLayerIndex(layerIndex); Validate.nonNull(newColor, "color"); - if (cloudsRaster[layerIndex] == null) { - throw new IllegalStateException("layer not yet added"); - } + requireCloudLayerAdded(layerIndex); String parameterName - = String.format(Locale.ROOT, "Clouds%dColor", layerIndex); + = SkyMaterialParamNames.cloudColor(layerIndex); setColor(parameterName, newColor.clone()); - this.cloudAlphas[layerIndex] = newColor.a; + cloudSlots.setAlpha(layerIndex, newColor.a); } /** @@ -547,12 +490,10 @@ public void setCloudsColor(int layerIndex, ColorRGBA newColor) { public void setCloudsGlow(int layerIndex, ColorRGBA newColor) { validateLayerIndex(layerIndex); Validate.nonNull(newColor, "color"); - if (cloudsRaster[layerIndex] == null) { - throw new IllegalStateException("layer not yet added"); - } + requireCloudLayerAdded(layerIndex); String parameterName - = String.format(Locale.ROOT, "Clouds%dGlow", layerIndex); + = SkyMaterialParamNames.cloudGlow(layerIndex); setColor(parameterName, newColor.clone()); } @@ -565,18 +506,13 @@ public void setCloudsGlow(int layerIndex, ColorRGBA newColor) { */ public void setCloudsOffset(int layerIndex, float newU, float newV) { validateLayerIndex(layerIndex); - if (cloudsRaster[layerIndex] == null) { - throw new IllegalStateException("layer not yet added"); - } + requireCloudLayerAdded(layerIndex); - float uOffset = MyMath.modulo(newU, 1f); - float vOffset = MyMath.modulo(newV, 1f); - Vector2f offset = new Vector2f(uOffset, vOffset); + Vector2f offset = cloudSlots.setOffset(layerIndex, newU, newV); String parameterName - = String.format(Locale.ROOT, "Clouds%dOffset", layerIndex); + = SkyMaterialParamNames.cloudOffset(layerIndex); setVector2(parameterName, offset); - cloudOffsets[layerIndex].set(offset); } /** @@ -588,14 +524,12 @@ public void setCloudsOffset(int layerIndex, float newU, float newV) { public void setCloudsScale(int layerIndex, float newScale) { validateLayerIndex(layerIndex); Validate.positive(newScale, "scale"); - if (cloudsRaster[layerIndex] == null) { - throw new IllegalStateException("layer not yet added"); - } + requireCloudLayerAdded(layerIndex); String parameterName - = String.format(Locale.ROOT, "Clouds%dScale", layerIndex); + = SkyMaterialParamNames.cloudScale(layerIndex); setFloat(parameterName, newScale); - this.cloudScales[layerIndex] = newScale; + cloudSlots.setScale(layerIndex, newScale); } /** @@ -607,12 +541,10 @@ public void setCloudsScale(int layerIndex, float newScale) { public void setObjectColor(int objectIndex, ColorRGBA newColor) { validateObjectIndex(objectIndex); Validate.nonNull(newColor, "color"); - if (objectCenters[objectIndex] == null) { - throw new IllegalStateException("object not yet added"); - } + requireObjectAdded(objectIndex); String parameterName - = String.format(Locale.ROOT, "Object%dColor", objectIndex); + = SkyMaterialParamNames.objectColor(objectIndex); setColor(parameterName, newColor.clone()); } @@ -625,12 +557,10 @@ public void setObjectColor(int objectIndex, ColorRGBA newColor) { public void setObjectGlow(int objectIndex, ColorRGBA newColor) { validateObjectIndex(objectIndex); Validate.nonNull(newColor, "color"); - if (objectCenters[objectIndex] == null) { - throw new IllegalStateException("object not yet added"); - } + requireObjectAdded(objectIndex); String parameterName - = String.format(Locale.ROOT, "Object%dGlow", objectIndex); + = SkyMaterialParamNames.objectGlow(objectIndex); setColor(parameterName, newColor.clone()); } @@ -653,86 +583,25 @@ public void setObjectTransform(int objectIndex, Vector2f centerUV, if (newRotate != null) { Validate.nonZero(newRotate, "rotation vector"); } - if (objectCenters[objectIndex] == null) { - throw new IllegalStateException("object not yet added"); - } + requireObjectAdded(objectIndex); // Record transform parameters for save(). - this.objectCenters[objectIndex] = centerUV.clone(); - if (newRotate == null) { - this.objectRotations[objectIndex] = null; - } else { - this.objectRotations[objectIndex] = newRotate.clone(); - } - this.objectScales[objectIndex] = newScale; + objectSlots.setTransform(objectIndex, centerUV, newScale, newRotate); String objectParameterName - = String.format(Locale.ROOT, "Object%dCenter", objectIndex); + = SkyMaterialParamNames.objectCenter(objectIndex); setVector2(objectParameterName, centerUV); - Vector2f offset = centerUV.subtract(Constants.topUV); - float topDist = offset.length(); - /* - * The texture coordinate transforms are broken into pairs of - * vectors because there is no Matrix2f class. - */ - Vector2f transformU = new Vector2f(); - Vector2f transformV = new Vector2f(); - Vector2f tU = new Vector2f(); - Vector2f tV = new Vector2f(); - - if (topDist > 0f) { - /* - * Stretch the image horizontally to compensate for UV distortion - * near the horizon. - */ - float a = offset.x / topDist; - float b = offset.y / topDist; - tU.set(b, -a); - tV.set(a, b); - - float stretchFactor - = 1f + Constants.stretchCoefficient * topDist * topDist; - tU.divideLocal(stretchFactor); - - if (newRotate != null) { - transformU.set(tU.x * b + tV.x * a, tU.y * b + tV.y * a); - transformV.set(tV.x * b - tU.x * a, tV.y * b - tU.y * a); - } else { - transformU.set(tU); - transformV.set(tV); - } - - } else { - // No UV distortion at the top of the dome. - transformU.set(1f, 0f); - transformV.set(0f, 1f); - } - - if (newRotate != null) { - // Rotate so top is toward the north horizon. - tU.set(transformV); - tV.set(-transformU.x, -transformU.y); - - // Rotate by newRotate. - Vector2f norm = newRotate.normalize(); - transformU.set(tU.x * norm.x + tV.x * norm.y, - tU.y * norm.x + tV.y * norm.y); - transformV.set(tV.x * norm.x - tU.x * norm.y, - tV.y * norm.x - tU.y * norm.y); - } - - // Scale by newScale. - transformU.divideLocal(newScale); - transformV.divideLocal(newScale); + SkyObjectTransform transform + = SkyObjectTransform.from(centerUV, newScale, newRotate); String transformUParameterName - = String.format(Locale.ROOT, "Object%dTransformU", objectIndex); - setVector2(transformUParameterName, transformU); + = SkyMaterialParamNames.objectTransformU(objectIndex); + setVector2(transformUParameterName, transform.copyTransformU()); String transformVParameterName - = String.format(Locale.ROOT, "Object%dTransformV", objectIndex); - setVector2(transformVParameterName, transformV); + = SkyMaterialParamNames.objectTransformV(objectIndex); + setVector2(transformVParameterName, transform.copyTransformV()); } // ************************************************************************* // new protected methods @@ -773,43 +642,16 @@ public void read(JmeImporter importer) throws IOException { InputCapsule capsule = importer.getCapsule(this); // cloud layers - this.cloudAlphas = capsule.readFloatArray("cloudAlphas", null); - - Savable[] sav = capsule.readSavableArray("cloudImages", null); - this.cloudImages = new Image[sav.length]; - System.arraycopy(sav, 0, cloudImages, 0, sav.length); - - sav = capsule.readSavableArray("cloudOffsets", null); - this.cloudOffsets = new Vector2f[sav.length]; - System.arraycopy(sav, 0, cloudOffsets, 0, sav.length); - - this.cloudScales = capsule.readFloatArray("cloudScales", null); + this.cloudSlots = SkyCloudMaterialSlots.read(capsule); // astronomical objects - sav = capsule.readSavableArray("objectCenters", null); - this.objectCenters = new Vector2f[sav.length]; - System.arraycopy(sav, 0, objectCenters, 0, sav.length); - - sav = capsule.readSavableArray("objectRotations", null); - this.objectRotations = new Vector2f[sav.length]; - System.arraycopy(sav, 0, objectRotations, 0, sav.length); - - this.objectScales = capsule.readFloatArray("objectScales", null); + this.objectSlots = SkyObjectMaterialSlots.read(capsule); // cached values this.assetManager = importer.getAssetManager(); - this.maxCloudLayers = cloudImages.length; - this.maxObjects = objectCenters.length; - - this.cloudsRaster = new ImageRaster[maxCloudLayers]; - for (int layerIndex = 0; layerIndex < maxCloudLayers; ++layerIndex) { - Image image = cloudImages[layerIndex]; - if (image == null) { - this.cloudsRaster[layerIndex] = null; - } else { - this.cloudsRaster[layerIndex] = ImageRaster.create(image); - } - } + this.maxCloudLayers = cloudSlots.count(); + this.maxObjects = objectSlots.count(); + } /** @@ -824,45 +666,58 @@ public void write(JmeExporter exporter) throws IOException { OutputCapsule capsule = exporter.getCapsule(this); - capsule.write(cloudAlphas, "cloudAlphas", null); - capsule.write(cloudImages, "cloudImages", null); - capsule.write(cloudOffsets, "cloudOffsets", null); - capsule.write(cloudScales, "cloudScales", null); + cloudSlots.write(capsule); - capsule.write(objectCenters, "objectCenters", null); - capsule.write(objectRotations, "objectRotations", null); - capsule.write(objectScales, "objectScales", null); + objectSlots.write(capsule); } + + /** + * Load a cloud normal map, including BC5 DDS fallback. + * + * @param assetPath texture asset path (not null, not empty) + * @return new texture + */ + private Texture loadNormalMap(String assetPath) { + assert assetPath != null; + + boolean mipmaps = false; + Texture result; + try { + result = MyAsset.loadTexture(assetManager, assetPath, mipmaps); + } catch (AssetLoadException exception) { + if (!assetPath.toLowerCase(java.util.Locale.ROOT) + .endsWith(".dds")) { + throw exception; + } + result = SkyDdsTextureLoader.loadTexture(assetManager, assetPath); + } + + return result; + } + // ************************************************************************* // private methods /** - * Estimate how much light is transmitted through an indexed cloud layer at - * the specified texture coordinates. + * Verify that the specified cloud layer has been added. * - * @param layerIndex (<maxCloudLayers, ≥0) - * @param skyCoordinates (unaffected, not null) - * @return fraction of light transmitted (≤1, ≥0) + * @param layerIndex cloud layer index + * @throws IllegalStateException if the layer has not been added */ - private float transparency(int layerIndex, Vector2f skyCoordinates) { - assert layerIndex >= 0 : layerIndex; - assert layerIndex < maxCloudLayers : layerIndex; - assert skyCoordinates != null; - assert cloudsRaster[layerIndex] != null : layerIndex; - - Vector2f coord = skyCoordinates.mult(cloudScales[layerIndex]); - coord.addLocal(cloudOffsets[layerIndex]); - coord.x = MyMath.modulo(coord.x, Constants.uvMax); - coord.y = MyMath.modulo(coord.y, Constants.uvMax); - float opacity = SkyTextureSampler.sampleRed( - cloudsRaster[layerIndex], coord); - opacity *= cloudAlphas[layerIndex]; - float result = Constants.alphaMax - opacity; - - assert result >= Constants.alphaMin : result; - assert result <= Constants.alphaMax : result; - return result; + private void requireCloudLayerAdded(int layerIndex) { + cloudSlots.requireAdded(layerIndex); } + /** + * Verify that the specified astronomical object has been added. + * + * @param objectIndex astronomical object index + * @throws IllegalStateException if the object has not been added + */ + private void requireObjectAdded(int objectIndex) { + objectSlots.requireAdded(objectIndex); + } + + } diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudAssets.java b/SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudAssets.java new file mode 100644 index 0000000..ea6ca05 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudAssets.java @@ -0,0 +1,105 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.cloud; + +/** + * Asset paths for built-in and optional cloud textures. + *

+ * jME can load DDS textures through the regular AssetManager pipeline, so the + * preset paths intentionally point at DDS files where richer assets are used. + * + * @author Take Some + */ +final public class SkyCloudAssets { + /** Classpath directory for current built-in cloud textures. */ + final public static String directory = "Textures/skies/clouds"; + /** Classpath directory for optional weather-preset cloud textures. */ + final public static String presetDirectory = directory + "/presets"; + + /** Resource-side cloud weather preset registry. */ + final public static String registry + = presetDirectory + "/cloud-weather-presets.json"; + + /** Existing clear fallback alpha map. */ + final public static String clear = directory + "/clear.png"; + /** Existing procedural FBM alpha map. */ + final public static String fbm = directory + "/fbm.png"; + /** Existing overcast fallback alpha map. */ + final public static String overcast = directory + "/overcast.png"; + + /** Optional wispy cirrocumulus alpha map. */ + final public static String wispyCirrocumulus + = presetDirectory + "/wispy/skyhat_cirrocumulus01_ap.dds"; + /** Optional wispy cloud alpha map. */ + final public static String wisps + = presetDirectory + "/wispy/wisps_ap.dds"; + /** Optional cloudy base alpha map. */ + final public static String cloudyBase + = presetDirectory + "/cloudy/trialap.dds"; + /** Optional shared marble/detail alpha map. */ + final public static String marbleDetail + = presetDirectory + "/cloudy/cloudhat_marble02_ap.dds"; + /** Optional rain alpha map. */ + final public static String rain + = presetDirectory + "/rain/skyhat_rain02_ap.dds"; + /** Optional storm alpha map. */ + final public static String storm + = presetDirectory + "/storm/stormclouds_ap.dds"; + /** Optional nimbus alpha map. */ + final public static String nimbus + = presetDirectory + "/nimbus/final_nimbusclouds_ap.dds"; + + + /** Optional wispy cirrocumulus normal map. */ + final public static String wispyCirrocumulusNormal + = presetDirectory + "/wispy/skyhat_cirrocumulus01_nrm.dds"; + /** Optional wispy cloud normal map. */ + final public static String wispsNormal + = presetDirectory + "/wispy/wisps_nrm.dds"; + /** Optional cloudy base normal map. */ + final public static String cloudyBaseNormal + = presetDirectory + "/cloudy/trialn.dds"; + /** Optional shared detail normal map. */ + final public static String cloudyDetailNormal + = presetDirectory + "/cloudy/detail1_nrm.dds"; + /** Optional rain normal map. */ + final public static String rainNormal + = presetDirectory + "/rain/skyhat_rain02_n2.dds"; + /** Optional storm cloud normal map. */ + final public static String stormNormal + = presetDirectory + "/storm/stormclouds_nrm.dds"; + /** Optional storm rain normal map. */ + final public static String stormRainNormal + = presetDirectory + "/storm/skyhat_rain02_n2.dds"; + /** Optional nimbus normal map. */ + final public static String nimbusNormal + = presetDirectory + "/nimbus/final_nimbusclouds_n.dds"; + + /** Hidden constructor. */ + private SkyCloudAssets() { + // do nothing + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudLayerSpec.java b/SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudLayerSpec.java new file mode 100644 index 0000000..6fe0184 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudLayerSpec.java @@ -0,0 +1,147 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.cloud; + +import jme3utilities.Validate; + +/** + * Target state for one cloud layer in a weather preset. + * + * @author Take Some + */ +final public class SkyCloudLayerSpec { + /** A transparent clear layer. */ + final public static SkyCloudLayerSpec clear + = new SkyCloudLayerSpec(SkyCloudAssets.clear, 0f, 1f, 0f, 0f); + + /** Asset path to the alpha map. */ + final private String alphaMap; + /** Optional asset path to the normal map. */ + final private String normalMap; + /** Target opacity. */ + final private float opacity; + /** Target texture scale. */ + final private float scale; + /** U-axis motion rate. */ + final private float uRate; + /** V-axis motion rate. */ + final private float vRate; + + /** + * Instantiate a layer target. + * + * @param alphaMap asset path to the alpha map (not null, not empty) + * @param opacity target opacity (≤1, ≥0) + * @param scale texture scale (>0) + * @param uRate U-axis motion rate + * @param vRate V-axis motion rate + */ + public SkyCloudLayerSpec(String alphaMap, float opacity, float scale, + float uRate, float vRate) { + this(alphaMap, null, opacity, scale, uRate, vRate); + } + + /** + * Instantiate a layer target with a normal map. + * + * @param alphaMap asset path to the alpha map (not null, not empty) + * @param normalMap asset path to the normal map, or null + * @param opacity target opacity (≤1, ≥0) + * @param scale texture scale (>0) + * @param uRate U-axis motion rate + * @param vRate V-axis motion rate + */ + public SkyCloudLayerSpec(String alphaMap, String normalMap, float opacity, + float scale, float uRate, float vRate) { + Validate.nonEmpty(alphaMap, "alpha map"); + if (normalMap != null) { + Validate.nonEmpty(normalMap, "normal map"); + } + Validate.fraction(opacity, "opacity"); + Validate.positive(scale, "scale"); + + this.alphaMap = alphaMap; + this.normalMap = normalMap; + this.opacity = opacity; + this.scale = scale; + this.uRate = uRate; + this.vRate = vRate; + } + + /** + * Return the alpha-map asset path. + * + * @return asset path + */ + public String alphaMap() { + return alphaMap; + } + + /** + * Return the optional normal-map asset path. + * + * @return asset path, or null + */ + public String normalMap() { + return normalMap; + } + + /** + * Return the target opacity. + * + * @return opacity fraction + */ + public float opacity() { + return opacity; + } + + /** + * Return the texture scale. + * + * @return scale factor + */ + public float scale() { + return scale; + } + + /** + * Return the U-axis motion rate. + * + * @return motion rate in cycles per second + */ + public float uRate() { + return uRate; + } + + /** + * Return the V-axis motion rate. + * + * @return motion rate in cycles per second + */ + public float vRate() { + return vRate; + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudPreset.java b/SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudPreset.java new file mode 100644 index 0000000..50231d7 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudPreset.java @@ -0,0 +1,147 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.cloud; + +/** + * Cloud weather presets built from up to six cloud layers. + * + * @author Take Some + */ +public enum SkyCloudPreset { + /** No visible clouds. */ + CLEAR(SkyCloudLayerSpec.clear), + /** Existing procedural fair-weather cloud setup. */ + FAIR( + layer(SkyCloudAssets.fbm, 0.35f, 1.50f, -0.0005f, 0.0030f), + layer(SkyCloudAssets.fbm, 0.18f, 2.15f, 0.0003f, 0.0010f)), + /** Existing overcast fallback. */ + OVERCAST( + layer(SkyCloudAssets.overcast, 0.72f, 1.00f, 0.0000f, 0.0003f), + layer(SkyCloudAssets.fbm, 0.20f, 2.40f, 0.0002f, 0.0010f)), + /** Optional high-altitude wispy cloud setup. */ + WISPY( + layer(SkyCloudAssets.wispyCirrocumulus, + SkyCloudAssets.wispyCirrocumulusNormal, 0.28f, 1.30f, + 0.0001f, 0.0012f), + layer(SkyCloudAssets.wisps, SkyCloudAssets.wispsNormal, 0.16f, + 2.20f, -0.0002f, 0.0020f)), + /** Optional varied cloudy setup. */ + CLOUDY( + layer(SkyCloudAssets.cloudyBase, + SkyCloudAssets.cloudyBaseNormal, 0.52f, 1.20f, + -0.0003f, 0.0018f), + layer(SkyCloudAssets.marbleDetail, + SkyCloudAssets.cloudyDetailNormal, 0.22f, 3.00f, + 0.0004f, 0.0024f)), + /** Optional rainy setup. */ + RAIN( + layer(SkyCloudAssets.rain, SkyCloudAssets.rainNormal, 0.68f, + 1.10f, -0.0003f, 0.0026f), + layer(SkyCloudAssets.cloudyBase, + SkyCloudAssets.cloudyBaseNormal, 0.35f, 2.00f, + 0.0002f, 0.0018f), + layer(SkyCloudAssets.marbleDetail, + SkyCloudAssets.cloudyDetailNormal, 0.18f, 3.50f, + 0.0004f, 0.0030f)), + /** Optional storm setup. */ + STORM( + layer(SkyCloudAssets.storm, SkyCloudAssets.stormNormal, 0.85f, + 1.00f, -0.0004f, 0.0032f), + layer(SkyCloudAssets.rain, SkyCloudAssets.stormRainNormal, 0.42f, + 1.80f, 0.0002f, 0.0026f), + layer(SkyCloudAssets.marbleDetail, + SkyCloudAssets.cloudyDetailNormal, 0.26f, 4.00f, + 0.0005f, 0.0035f)), + /** Optional nimbus setup. */ + NIMBUS( + layer(SkyCloudAssets.nimbus, SkyCloudAssets.nimbusNormal, 0.76f, + 1.10f, -0.0004f, 0.0020f), + layer(SkyCloudAssets.marbleDetail, + SkyCloudAssets.cloudyDetailNormal, 0.22f, 3.50f, + 0.0003f, 0.0024f)); + + /** Layer targets, in material-layer order. */ + final private SkyCloudLayerSpec[] layers; + + /** + * Instantiate a preset. + * + * @param layers layer targets (not null, aliased) + */ + SkyCloudPreset(SkyCloudLayerSpec... layers) { + this.layers = layers; + } + + /** + * Access the target state for a layer. + * + * @param layerIndex cloud layer index + * @return layer target, or clear if the preset has no layer there + */ + public SkyCloudLayerSpec layer(int layerIndex) { + SkyCloudLayerSpec result = SkyCloudLayerSpec.clear; + if (layerIndex < layers.length) { + result = layers[layerIndex]; + } + + return result; + } + + /** + * Create a layer target. + * + * @param alphaMap asset path to the alpha map + * @param opacity target opacity + * @param scale texture scale + * @param uRate U-axis motion rate + * @param vRate V-axis motion rate + * @return new layer target + */ + private static SkyCloudLayerSpec layer(String alphaMap, float opacity, + float scale, float uRate, float vRate) { + SkyCloudLayerSpec result + = new SkyCloudLayerSpec(alphaMap, opacity, scale, uRate, vRate); + return result; + } + + /** + * Create a layer target with a normal map. + * + * @param alphaMap asset path to the alpha map + * @param normalMap asset path to the normal map + * @param opacity target opacity + * @param scale texture scale + * @param uRate U-axis motion rate + * @param vRate V-axis motion rate + * @return new layer target + */ + private static SkyCloudLayerSpec layer(String alphaMap, String normalMap, + float opacity, float scale, float uRate, float vRate) { + SkyCloudLayerSpec result = new SkyCloudLayerSpec( + alphaMap, normalMap, opacity, scale, uRate, vRate); + return result; + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudTransitionRuntime.java b/SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudTransitionRuntime.java new file mode 100644 index 0000000..0721b7b --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/cloud/SkyCloudTransitionRuntime.java @@ -0,0 +1,206 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.cloud; + +import com.jme3.math.FastMath; +import jme3utilities.Validate; +import jme3utilities.sky.CloudLayer; + +/** + * Runtime transition that lets cloud presets fade in and out. + *

+ * Texture swaps happen only while layers are invisible, so changes + * do not pop instantly on screen. + * + * @author Take Some + */ +final public class SkyCloudTransitionRuntime { + /** Cloud layers being driven. */ + private CloudLayer[] layers; + /** Opacities at transition start. */ + private float[] startOpacities; + /** True while a transition is active. */ + private boolean active; + /** True after target textures have been applied. */ + private boolean swapped; + /** Elapsed transition time. */ + private float elapsed; + /** Total transition duration. */ + private float duration; + /** Target preset. */ + private SkyCloudPreset target; + + /** + * Instantiate a transition runtime. + * + * @param layers cloud layers (not null, aliased) + */ + public SkyCloudTransitionRuntime(CloudLayer[] layers) { + resetLayers(layers); + cancel(); + } + + /** Cancel any active transition. */ + public void cancel() { + this.active = false; + this.swapped = false; + this.elapsed = 0f; + this.duration = 0f; + this.target = null; + } + + /** + * Reset the driven layer array. + * + * @param layers cloud layers (not null, aliased) + */ + public void resetLayers(CloudLayer[] layers) { + Validate.nonNull(layers, "layers"); + + this.layers = layers; + this.startOpacities = new float[layers.length]; + } + + /** + * Start a transition to the specified preset. + * + * @param preset target preset (not null) + * @param seconds transition duration in seconds (≥0) + */ + public void transitionTo(SkyCloudPreset preset, float seconds) { + Validate.nonNull(preset, "preset"); + if (!(seconds >= 0f)) { + throw new IllegalArgumentException("duration must be non-negative"); + } + + this.target = preset; + this.duration = seconds; + this.elapsed = 0f; + this.swapped = false; + + for (int layerI = 0; layerI < layers.length; ++layerI) { + startOpacities[layerI] = layers[layerI].getOpacity(); + } + + if (seconds == 0f) { + applyTargetTextures(); + applyTargetOpacities(); + cancel(); + } else { + this.active = true; + } + } + + /** + * Update the active transition. + * + * @param interval update interval in seconds (≥0) + */ + public void update(float interval) { + assert interval >= 0f : interval; + if (!active) { + return; + } + + elapsed += interval; + float halfDuration = duration * 0.5f; + if (elapsed < halfDuration) { + float weight = smooth(elapsed / halfDuration); + fadeOut(weight); + return; + } + + if (!swapped) { + applyTargetTextures(); + swapped = true; + } + + float weight = smooth((elapsed - halfDuration) / halfDuration); + fadeIn(weight); + + if (elapsed >= duration) { + applyTargetOpacities(); + cancel(); + } + } + + /** Apply target opacities. */ + private void applyTargetOpacities() { + for (int layerI = 0; layerI < layers.length; ++layerI) { + SkyCloudLayerSpec spec = target.layer(layerI); + layers[layerI].setOpacity(spec.opacity()); + } + } + + /** Apply target textures, scales, and motions with zero opacity. */ + private void applyTargetTextures() { + for (int layerI = 0; layerI < layers.length; ++layerI) { + SkyCloudLayerSpec spec = target.layer(layerI); + CloudLayer layer = layers[layerI]; + layer.setOpacity(0f); + layer.setTexture(spec.alphaMap(), spec.scale()); + layer.setNormalMap(spec.normalMap()); + layer.setMotion(0f, spec.uRate(), 0f, spec.vRate()); + } + } + + /** + * Fade current layers out. + * + * @param weight transition weight + */ + private void fadeOut(float weight) { + for (int layerI = 0; layerI < layers.length; ++layerI) { + float opacity = startOpacities[layerI] * (1f - weight); + layers[layerI].setOpacity(opacity); + } + } + + /** + * Fade target layers in. + * + * @param weight transition weight + */ + private void fadeIn(float weight) { + for (int layerI = 0; layerI < layers.length; ++layerI) { + SkyCloudLayerSpec spec = target.layer(layerI); + float opacity = spec.opacity() * weight; + layers[layerI].setOpacity(opacity); + } + } + + /** + * Smooth a transition weight. + * + * @param input unsmoothed weight + * @return smoothed weight + */ + private static float smooth(float input) { + float t = FastMath.saturate(input); + float result = t * t * (3f - 2f * t); + return result; + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/cloud/package-info.java b/SkyLibrary/src/main/java/jme3utilities/sky/cloud/package-info.java new file mode 100644 index 0000000..e8b77a1 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/cloud/package-info.java @@ -0,0 +1,29 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/** + * Cloud weather presets and transition helpers for the sky simulation. + */ +package jme3utilities.sky.cloud; diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyBaseColorRuntime.java b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyBaseColorRuntime.java new file mode 100644 index 0000000..4434a6f --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyBaseColorRuntime.java @@ -0,0 +1,240 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.control; + +import com.jme3.math.ColorRGBA; +import jme3utilities.math.MyColor; +import jme3utilities.sky.SkyAtmosphere; +import jme3utilities.sky.atmosphere.SkyLightingModel; + +/** + * Runtime helper for sky base-color computation. + * + * @author Take Some + */ +final public class SkyBaseColorRuntime { + /** + * Hidden constructor. + */ + private SkyBaseColorRuntime() { + // do nothing + } + + /** + * Compute base and source colors for the current sky lighting state. + * + * @param atmosphere lighting profile (not null) + * @param sineSolarAltitude sine of the solar altitude + * @param moonUp true if moon is above horizon + * @param moonWeight contribution of moonlight to nighttime lighting + * @return new immutable result + */ + public static Result compute(SkyAtmosphere atmosphere, + float sineSolarAltitude, boolean moonUp, float moonWeight) { + assert atmosphere != null; + assert moonWeight >= 0f : moonWeight; + assert moonWeight <= 1f : moonWeight; + + final ColorRGBA twilightColor = atmosphere.copyTwilightColor(null); + final ColorRGBA sunColor = SkyLightingModel.daylightColor( + atmosphere, sineSolarAltitude); + final ColorRGBA moonColor = atmosphere.copyMoonLight(null); + final ColorRGBA starColor = atmosphere.copyStarLight(null); + Input input = new Input(); + input.atmosphere = atmosphere; + input.sineSolarAltitude = sineSolarAltitude; + input.moonUp = moonUp; + input.moonWeight = moonWeight; + input.twilightColor = twilightColor; + input.sunColor = sunColor; + input.moonColor = moonColor; + input.starColor = starColor; + ColorRGBA baseColor = baseColor(input); + + Result result = new Result( + baseColor, sunColor, moonColor, starColor, twilightColor); + return result; + } + + /** + * Compute the base color. + * + * @param input color-computation input (not null) + * @return new color + */ + private static ColorRGBA baseColor(Input input) { + assert input != null; + + ColorRGBA result; + boolean sunUp = input.sineSolarAltitude >= 0f; + if (sunUp) { + float dayWeight = SkyLightingModel.smoothStep( + input.sineSolarAltitude + / input.atmosphere.getFullDayAltitude()); + result = MyColor.interpolateLinear( + dayWeight, input.twilightColor, input.sunColor); + float hazeWeight = input.atmosphere.getHazeStrength() + * (1f - dayWeight) * 0.5f; + result = MyColor.interpolateLinear( + hazeWeight, result, input.twilightColor); + + } else { + ColorRGBA blend; + if (input.moonUp && input.moonWeight > 0f) { + blend = MyColor.interpolateLinear( + input.moonWeight, input.starColor, input.moonColor); + } else { + blend = input.starColor; + } + float nightWeight = SkyLightingModel.smoothStep( + -input.sineSolarAltitude + / input.atmosphere.getTwilightLimit()); + result = MyColor.interpolateLinear( + nightWeight, input.twilightColor, blend); + } + + return result; + } + + /** + * Color-computation input. + */ + final private static class Input { + /** Lighting profile. */ + private SkyAtmosphere atmosphere; + /** True if the moon is above the horizon. */ + private boolean moonUp; + /** Moonlight contribution to nighttime lighting. */ + private float moonWeight; + /** Moonlight source color. */ + private ColorRGBA moonColor; + /** Sine of the solar altitude. */ + private float sineSolarAltitude; + /** Starlight source color. */ + private ColorRGBA starColor; + /** Daylight source color. */ + private ColorRGBA sunColor; + /** Twilight source color. */ + private ColorRGBA twilightColor; + + } + + /** + * Base-color result and its source colors. + */ + final public static class Result { + /** + * Base sky/haze/background color. + */ + final private ColorRGBA baseColor; + /** + * Moonlight source color. + */ + private ColorRGBA moonColor; + /** + * Starlight source color. + */ + private ColorRGBA starColor; + /** + * Daylight source color. + */ + private ColorRGBA sunColor; + /** + * Twilight source color. + */ + private ColorRGBA twilightColor; + + /** + * Instantiate a result. + * + * @param baseColor base color (not null, alias created) + * @param sunColor sun color (not null, alias created) + * @param moonColor moon color (not null, alias created) + * @param starColor star color (not null, alias created) + * @param twilightColor twilight color (not null, alias created) + */ + private Result(ColorRGBA baseColor, ColorRGBA sunColor, + ColorRGBA moonColor, ColorRGBA starColor, + ColorRGBA twilightColor) { + assert baseColor != null; + assert sunColor != null; + assert moonColor != null; + assert starColor != null; + assert twilightColor != null; + + this.baseColor = baseColor; + this.sunColor = sunColor; + this.moonColor = moonColor; + this.starColor = starColor; + this.twilightColor = twilightColor; + } + + /** + * Return the base sky/haze/background color. + * + * @return pre-existing instance + */ + public ColorRGBA baseColor() { + return baseColor; + } + + /** + * Return the moonlight color. + * + * @return pre-existing instance + */ + public ColorRGBA moonColor() { + return moonColor; + } + + /** + * Return the starlight color. + * + * @return pre-existing instance + */ + public ColorRGBA starColor() { + return starColor; + } + + /** + * Return the daylight color. + * + * @return pre-existing instance + */ + public ColorRGBA sunColor() { + return sunColor; + } + + /** + * Return the twilight color. + * + * @return pre-existing instance + */ + public ColorRGBA twilightColor() { + return twilightColor; + } + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyCelestialState.java b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyCelestialState.java new file mode 100644 index 0000000..968ce7f --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyCelestialState.java @@ -0,0 +1,174 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.control; + +import com.jme3.export.InputCapsule; +import com.jme3.export.OutputCapsule; +import com.jme3.math.FastMath; +import java.io.IOException; + +/** + * Runtime state for lunar latitude and phase angle. + * + * @author Take Some + */ +public final class SkyCelestialState { + // ************************************************************************* + // fields + + /** + * Difference in celestial longitude between the moon and the sun. + */ + private float longitudeDifference = FastMath.PI; + /** + * Moon celestial latitude, measured north from the ecliptic. + */ + private float lunarLatitude = 0f; + // ************************************************************************* + // constructors + + /** + * Instantiate default celestial runtime state. + */ + public SkyCelestialState() { + // do nothing + } + + /** + * Instantiate a copy of the specified state. + * + * @param source state to copy (not null, unaffected) + */ + private SkyCelestialState(SkyCelestialState source) { + assert source != null; + + this.longitudeDifference = source.longitudeDifference; + this.lunarLatitude = source.lunarLatitude; + } + // ************************************************************************* + // new methods exposed + + /** + * Create a copy of this state. + * + * @return a new instance + */ + public SkyCelestialState copy() { + SkyCelestialState result = new SkyCelestialState(this); + return result; + } + + /** + * Compute the contribution of the moon to nighttime illumination. + * + * @return fraction (≤1, ≥0) + */ + public float moonIllumination() { + float fullAngle = FastMath.abs(longitudeDifference - FastMath.PI); + if (lunarLatitude != 0f) { + float cos = FastMath.cos(fullAngle) * FastMath.cos(lunarLatitude); + fullAngle = FastMath.acos(cos); + } + assert fullAngle >= 0f : fullAngle; + assert fullAngle <= FastMath.PI : fullAngle; + + float result = 1f - FastMath.saturate(fullAngle * 0.6f); + + assert result >= 0f : result; + assert result <= 1f : result; + return result; + } + + /** + * Read celestial state from an input capsule. + * + * @param capsule input capsule (not null) + * @return a new instance + * @throws IOException from capsule + */ + public static SkyCelestialState read(InputCapsule capsule) + throws IOException { + assert capsule != null; + + SkyCelestialState result = new SkyCelestialState(); + result.lunarLatitude = capsule.readFloat("lunarLatitude", 0f); + result.longitudeDifference + = capsule.readFloat("phaseAngle", FastMath.PI); + + return result; + } + + /** + * Return the lunar phase angle relative to the sun. + * + * @return radians east of the sun + */ + public float longitudeDifference() { + return longitudeDifference; + } + + /** + * Return the lunar latitude. + * + * @return radians north of the ecliptic + */ + public float lunarLatitude() { + return lunarLatitude; + } + + /** + * Alter the difference in celestial longitude. + * + * @param longitudeDifference radians east of the sun + */ + public void setLongitudeDifference(float longitudeDifference) { + this.longitudeDifference = longitudeDifference; + } + + /** + * Alter the lunar latitude and phase angle. + * + * @param longitudeDifference radians east of the sun + * @param lunarLatitude radians north of the ecliptic + */ + public void setPhase(float longitudeDifference, float lunarLatitude) { + this.longitudeDifference = longitudeDifference; + this.lunarLatitude = lunarLatitude; + } + + /** + * Serialize celestial state to an output capsule. + * + * @param capsule output capsule (not null) + * @throws IOException from capsule + */ + public void write(OutputCapsule capsule) throws IOException { + assert capsule != null; + + capsule.write(lunarLatitude, "lunarLatitude", 0f); + capsule.write(longitudeDifference, "phaseAngle", FastMath.PI); + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyCloudRuntime.java b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyCloudRuntime.java new file mode 100644 index 0000000..8ef161a --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyCloudRuntime.java @@ -0,0 +1,211 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.control; + +import com.jme3.export.InputCapsule; +import com.jme3.export.OutputCapsule; +import com.jme3.export.Savable; +import com.jme3.math.ColorRGBA; +import com.jme3.util.clone.Cloner; +import java.io.IOException; +import jme3utilities.Validate; +import jme3utilities.sky.CloudLayer; +import jme3utilities.sky.cloud.SkyCloudPreset; +import jme3utilities.sky.cloud.SkyCloudTransitionRuntime; + +/** + * Runtime state and update logic for sky cloud layers. + * + * @author Take Some + */ +public final class SkyCloudRuntime { + // ************************************************************************* + // fields + + /** + * Cloud-layer runtime objects. + */ + private CloudLayer[] layers; + /** + * Simulation time for cloud-layer animations. + */ + private float animationTime; + /** + * Rate of motion for cloud-layer animations. + */ + private float rate = 1f; + /** + * Runtime state for weather-preset transitions. + */ + private SkyCloudTransitionRuntime transitionRuntime; + // ************************************************************************* + // constructors + + /** + * Instantiate runtime state around cloud layers. + * + * @param layers cloud-layer array (not null, aliased) + */ + public SkyCloudRuntime(CloudLayer[] layers) { + Validate.nonNull(layers, "layers"); + + this.layers = layers; + this.animationTime = 0f; + this.transitionRuntime = new SkyCloudTransitionRuntime(layers); + } + // ************************************************************************* + // new methods exposed + + /** + * Clone mutable fields using the specified cloner. + * + * @param cloner the cloner currently cloning the owner (not null) + */ + public void cloneFields(Cloner cloner) { + assert cloner != null; + this.layers = cloner.clone(layers); + this.transitionRuntime = new SkyCloudTransitionRuntime(layers); + } + + /** + * Access the indexed cloud layer. + * + * @param layerIndex cloud layer index + * @return pre-existing layer + */ + public CloudLayer getLayer(int layerIndex) { + CloudLayer result = layers[layerIndex]; + + assert result != null; + return result; + } + + /** + * Return the speed and direction of cloud motion. + * + * @return multiple of the default rate + */ + public float rate() { + return rate; + } + + /** + * Read runtime state from an input capsule. + * + * @param capsule input capsule (not null) + * @return a new instance + * @throws IOException from capsule + */ + public static SkyCloudRuntime read(InputCapsule capsule) + throws IOException { + assert capsule != null; + + Savable[] sav = capsule.readSavableArray("cloudLayers", null); + CloudLayer[] layers = new CloudLayer[sav.length]; + System.arraycopy(sav, 0, layers, 0, sav.length); + + SkyCloudRuntime result = new SkyCloudRuntime(layers); + result.animationTime = capsule.readFloat("cloudsAnimationTime", 0f); + result.rate = capsule.readFloat("cloudsRelativeSpeed", 1f); + + return result; + } + + /** + * Alter the opacity of all cloud layers. + * + * @param alpha desired opacity of the cloud layers + */ + public void setCloudiness(float alpha) { + Validate.fraction(alpha, "alpha"); + + transitionRuntime.cancel(); + for (CloudLayer layer : layers) { + layer.setOpacity(alpha); + } + } + + /** + * Apply a color to all cloud layers. + * + * @param color desired color (not null, unaffected) + */ + public void setColor(ColorRGBA color) { + assert color != null; + + for (CloudLayer layer : layers) { + layer.setColor(color); + } + } + + /** + * Alter the speed and direction of cloud motion. + * + * @param newRate multiple of the default rate + */ + public void setRate(float newRate) { + this.rate = newRate; + } + + /** + * Transition to a cloud weather preset. + * + * @param preset target preset (not null) + * @param seconds transition duration in seconds (≥0) + */ + public void transitionTo(SkyCloudPreset preset, float seconds) { + transitionRuntime.transitionTo(preset, seconds); + } + + /** + * Update the cloud layers. + * + * @param updateInterval time interval between updates (in seconds, ≥0) + */ + public void update(float updateInterval) { + assert updateInterval >= 0f : updateInterval; + + transitionRuntime.update(updateInterval); + this.animationTime += updateInterval * rate; + for (CloudLayer layer : layers) { + layer.updateOffset(animationTime); + } + } + + /** + * Serialize runtime state to an output capsule. + * + * @param capsule output capsule (not null) + * @throws IOException from capsule + */ + public void write(OutputCapsule capsule) throws IOException { + assert capsule != null; + + capsule.write(layers, "cloudLayers", null); + capsule.write(animationTime, "cloudsAnimationTime", 0f); + capsule.write(rate, "cloudsRelativeSpeed", 1f); + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyCloudTransmissionRuntime.java b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyCloudTransmissionRuntime.java new file mode 100644 index 0000000..6b36872 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyCloudTransmissionRuntime.java @@ -0,0 +1,211 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.control; + +import com.jme3.math.Vector2f; +import com.jme3.math.Vector3f; +import com.jme3.scene.Geometry; +import jme3utilities.math.MyMath; +import jme3utilities.mesh.DomeMesh; +import jme3utilities.sky.SkyMaterial; + +/** + * Runtime helper for cloud transmission sampling. + * + * @author Take Some + */ +final public class SkyCloudTransmissionRuntime { + /** + * Hidden constructor. + */ + private SkyCloudTransmissionRuntime() { + // do nothing + } + + /** + * Determine what fraction of the main light passes through clouds. + * + * @param input lighting state (not null) + * @param resources cloud resources (not null) + * @return transmission factor + */ + public static float transmission(Input input, Resources resources) { + assert input != null; + assert resources != null; + + if (!input.modulationApplies()) { + return 1f; + } + + Vector3f intersection = intersectCloudDome( + input.mainDirection, resources.cloudsOnlyDome); + Vector2f texCoord = resources.cloudsMesh.directionUV(intersection); + float result = resources.cloudsMaterial.getTransmission(texCoord); + return result; + } + + /** + * Compute where a direction intersects the local cloud dome. + * + * @param mainDirection unit vector with non-negative y-component + * @param cloudsOnlyDome optional clouds-only dome geometry + * @return new unit vector + */ + private static Vector3f intersectCloudDome( + Vector3f mainDirection, Geometry cloudsOnlyDome) { + assert mainDirection != null; + assert mainDirection.isUnitVector() : mainDirection; + assert mainDirection.y >= 0f : mainDirection; + + double cosSquared + = MyMath.sumOfSquares(mainDirection.x, mainDirection.z); + if (cosSquared == 0.0) { + return new Vector3f(0f, 1f, 0f); + } + + float deltaY; + float semiMinorAxis; + if (cloudsOnlyDome == null) { + deltaY = 0f; + semiMinorAxis = 1f; + } else { + Vector3f offset = cloudsOnlyDome.getLocalTranslation(); + assert offset.x == 0f : offset; + assert offset.y <= 0f : offset; + assert offset.z == 0f : offset; + deltaY = offset.y; + + Vector3f scale = cloudsOnlyDome.getLocalScale(); + assert scale.x == 1f : scale; + assert scale.y > 0f : scale; + assert scale.z == 1f : scale; + semiMinorAxis = scale.y; + } + + double cosAltitude = Math.sqrt(cosSquared); + double tanAltitude = mainDirection.y / cosAltitude; + double smaSquared = semiMinorAxis * semiMinorAxis; + double a = tanAltitude * tanAltitude + smaSquared; + assert a > 0.0 : a; + double b = -2.0 * deltaY * tanAltitude; + double c = deltaY * deltaY - smaSquared; + double discriminant = MyMath.discriminant(a, b, c); + assert discriminant >= 0.0 : discriminant; + double w = (-b + Math.sqrt(discriminant)) / (2.0 * a); + + double distance = w / cosAltitude; + if (distance > 1.0) { + distance = 1.0; + } + float x = (float) (mainDirection.x * distance); + float y = (float) MyMath.circle(w); + float z = (float) (mainDirection.z * distance); + Vector3f result = new Vector3f(x, y, z); + + assert result.isUnitVector() : result; + return result; + } + + /** + * Lighting state for cloud transmission. + */ + final public static class Input { + /** True if cloud modulation is enabled. */ + final private boolean cloudModulationFlag; + /** Main light direction. */ + final private Vector3f mainDirection; + /** True if moon is above the horizon. */ + final private boolean moonUp; + /** Moonlight contribution. */ + final private float moonWeight; + /** True if sun is above the horizon. */ + final private boolean sunUp; + + /** + * Instantiate an input. + * + * @param cloudModulationFlag true if cloud modulation is enabled + * @param sunUp true if the sun is above the horizon + * @param moonUp true if the moon is above the horizon + * @param moonWeight moonlight contribution (≤1, ≥0) + * @param mainDirection main light direction (not null, alias created) + */ + public Input(boolean cloudModulationFlag, boolean sunUp, + boolean moonUp, float moonWeight, Vector3f mainDirection) { + assert moonWeight >= 0f : moonWeight; + assert moonWeight <= 1f : moonWeight; + assert mainDirection != null; + assert mainDirection.isUnitVector() : mainDirection; + assert mainDirection.y >= 0f : mainDirection; + + this.cloudModulationFlag = cloudModulationFlag; + this.sunUp = sunUp; + this.moonUp = moonUp; + this.moonWeight = moonWeight; + this.mainDirection = mainDirection; + } + + /** + * Test whether cloud modulation applies. + * + * @return true if transmission should be sampled + */ + private boolean modulationApplies() { + boolean result = cloudModulationFlag + && (sunUp || moonUp && moonWeight > 0f); + return result; + } + } + + /** + * Cloud resources for transmission sampling. + */ + final public static class Resources { + /** Optional clouds-only dome. */ + final private Geometry cloudsOnlyDome; + /** Clouds material. */ + final private SkyMaterial cloudsMaterial; + /** Clouds mesh. */ + final private DomeMesh cloudsMesh; + + /** + * Instantiate resources. + * + * @param cloudsOnlyDome optional clouds-only dome + * @param cloudsMesh clouds mesh (not null, alias created) + * @param cloudsMaterial clouds material (not null, alias created) + */ + public Resources(Geometry cloudsOnlyDome, DomeMesh cloudsMesh, + SkyMaterial cloudsMaterial) { + assert cloudsMesh != null; + assert cloudsMaterial != null; + + this.cloudsOnlyDome = cloudsOnlyDome; + this.cloudsMesh = cloudsMesh; + this.cloudsMaterial = cloudsMaterial; + } + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyLightSelectionRuntime.java b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyLightSelectionRuntime.java new file mode 100644 index 0000000..206c742 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyLightSelectionRuntime.java @@ -0,0 +1,172 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.control; + +import com.jme3.math.Vector3f; + +/** + * Runtime helper for selecting the main sky light source. + * + * @author Take Some + */ +final public class SkyLightSelectionRuntime { + /** + * Hidden constructor. + */ + private SkyLightSelectionRuntime() { + // do nothing + } + + /** + * Select the main light direction and expose altitude flags. + * + * @param sunDirection world direction to the sun (not null, length=1) + * @param moonDirection world direction to the moon, or null if hidden + * @param moonWeight moonlight contribution (≤1, ≥0) + * @param fallbackDirection fallback direction (not null, length=1) + * @return new immutable result + */ + public static Result select(Vector3f sunDirection, Vector3f moonDirection, + float moonWeight, Vector3f fallbackDirection) { + assert sunDirection != null; + assert sunDirection.isUnitVector() : sunDirection; + assert moonWeight >= 0f : moonWeight; + assert moonWeight <= 1f : moonWeight; + assert fallbackDirection != null; + assert fallbackDirection.isUnitVector() : fallbackDirection; + assert fallbackDirection.y >= 0f : fallbackDirection; + if (moonDirection != null) { + assert moonDirection.isUnitVector() : moonDirection; + } + + float sineSolarAltitude = sunDirection.y; + float sineLunarAltitude; + if (moonDirection != null) { + sineLunarAltitude = moonDirection.y; + } else { + sineLunarAltitude = -1f; + } + + boolean moonUp = sineLunarAltitude >= 0f; + boolean sunUp = sineSolarAltitude >= 0f; + Vector3f mainDirection; + if (sunUp) { + mainDirection = sunDirection; + } else if (moonUp && moonWeight > 0f) { + assert moonDirection != null; + mainDirection = moonDirection; + } else { + mainDirection = fallbackDirection; + } + assert mainDirection.isUnitVector() : mainDirection; + assert mainDirection.y >= 0f : mainDirection; + + Result result = new Result(mainDirection, sineSolarAltitude, + sineLunarAltitude, sunUp, moonUp); + return result; + } + + /** + * Main-light selection result. + */ + final public static class Result { + /** Main light direction. */ + final private Vector3f mainDirection; + /** True if moon is above horizon. */ + final private boolean moonUp; + /** Sine of the lunar altitude. */ + final private float sineLunarAltitude; + /** Sine of the solar altitude. */ + final private float sineSolarAltitude; + /** True if sun is above horizon. */ + final private boolean sunUp; + + /** + * Instantiate a result. + * + * @param mainDirection main light direction (not null, alias created) + * @param sineSolarAltitude sine of the solar altitude + * @param sineLunarAltitude sine of the lunar altitude + * @param sunUp true if sun is above horizon + * @param moonUp true if moon is above horizon + */ + private Result(Vector3f mainDirection, float sineSolarAltitude, + float sineLunarAltitude, boolean sunUp, boolean moonUp) { + assert mainDirection != null; + + this.mainDirection = mainDirection; + this.sineSolarAltitude = sineSolarAltitude; + this.sineLunarAltitude = sineLunarAltitude; + this.sunUp = sunUp; + this.moonUp = moonUp; + } + + /** + * Return the selected main light direction. + * + * @return pre-existing vector + */ + public Vector3f mainDirection() { + return mainDirection; + } + + /** + * Test whether the moon is above the horizon. + * + * @return true if above the horizon + */ + public boolean moonUp() { + return moonUp; + } + + /** + * Return the sine of the lunar altitude. + * + * @return sine value + */ + public float sineLunarAltitude() { + return sineLunarAltitude; + } + + /** + * Return the sine of the solar altitude. + * + * @return sine value + */ + public float sineSolarAltitude() { + return sineSolarAltitude; + } + + /** + * Test whether the sun is above the horizon. + * + * @return true if above the horizon + */ + public boolean sunUp() { + return sunUp; + } + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyLightingOutputRuntime.java b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyLightingOutputRuntime.java new file mode 100644 index 0000000..8772c13 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyLightingOutputRuntime.java @@ -0,0 +1,292 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.control; + +import com.jme3.math.ColorRGBA; +import com.jme3.math.FastMath; +import jme3utilities.math.MyColor; +import jme3utilities.math.MyMath; +import jme3utilities.sky.SkyAtmosphere; + +/** + * Runtime helper for assembling final sky lighting output. + * + * @author Take Some + */ +final public class SkyLightingOutputRuntime { + /** + * Hidden constructor. + */ + private SkyLightingOutputRuntime() { + // do nothing + } + + /** + * Compute final directional, ambient, shadow, and bloom lighting values. + * + * @param input lighting output input (not null) + * @return new immutable result + */ + public static Result compute(Input input) { + assert input != null; + + ColorRGBA mainColor = computeMainColor(input); + ColorRGBA ambientColor = computeAmbientColor( + input.atmosphere, input.cloudsColor, mainColor); + float shadowIntensity = computeShadowIntensity( + input.atmosphere, mainColor, ambientColor); + float bloomIntensity = computeBloomIntensity( + input.atmosphere, input.sineSolarAltitude); + + Result result = new Result( + mainColor, ambientColor, shadowIntensity, bloomIntensity); + return result; + } + + /** + * Compute the ambient color. + * + * @param atmosphere lighting profile (not null) + * @param cloudsColor cloud color (not null, unaffected) + * @param mainColor main directional color (not null, unaffected) + * @return new color + */ + private static ColorRGBA computeAmbientColor(SkyAtmosphere atmosphere, + ColorRGBA cloudsColor, ColorRGBA mainColor) { + assert atmosphere != null; + assert cloudsColor != null; + assert mainColor != null; + + float slack = 1f - MyMath.max(mainColor.r, mainColor.g, mainColor.b); + assert slack >= 0f : slack; + ColorRGBA result = cloudsColor.mult( + slack * atmosphere.getAmbientScale()); + return result; + } + + /** + * Compute the recommended bloom intensity using the sun's altitude. + * + * @param atmosphere lighting profile (not null) + * @param sineSolarAltitude sine of the solar altitude + * @return bloom intensity + */ + private static float computeBloomIntensity(SkyAtmosphere atmosphere, + float sineSolarAltitude) { + assert atmosphere != null; + + float result = 6f * atmosphere.getBloomScale() * sineSolarAltitude; + result = FastMath.clamp( + result, 0f, atmosphere.getMaxBloomIntensity()); + return result; + } + + /** + * Compute the color and intensity of the main directional light. + * + * @param input lighting output input (not null) + * @return new color + */ + private static ColorRGBA computeMainColor(Input input) { + assert input != null; + + ColorRGBA result; + if (input.sunUp) { + float altitudeFactor = MyMath.cubeRoot( + FastMath.saturate(input.sineSolarAltitude)); + float sunFactor = input.transmit * altitudeFactor; + result = input.sunColor.mult(sunFactor); + + } else if (input.moonUp) { + float lunarAltitudeFactor = MyMath.cubeRoot( + FastMath.saturate(input.sineLunarAltitude)); + float moonFactor = input.transmit * input.moonWeight + * lunarAltitudeFactor; + result = MyColor.interpolateLinear( + moonFactor, input.starColor, input.moonColor); + + } else { + result = input.starColor.clone(); + } + + return result; + } + + /** + * Compute the recommended shadow intensity. + * + * @param atmosphere lighting profile (not null) + * @param mainColor main directional color (not null, unaffected) + * @param ambientColor ambient color (not null, unaffected) + * @return shadow intensity + */ + private static float computeShadowIntensity(SkyAtmosphere atmosphere, + ColorRGBA mainColor, ColorRGBA ambientColor) { + assert atmosphere != null; + assert mainColor != null; + assert ambientColor != null; + + float mainAmount = mainColor.r + mainColor.g + mainColor.b; + float ambientAmount = ambientColor.r + ambientColor.g + ambientColor.b; + float totalAmount = mainAmount + ambientAmount; + assert totalAmount > 0f : totalAmount; + float result = FastMath.saturate(mainAmount / totalAmount); + result = FastMath.saturate(result * atmosphere.getShadowContrast()); + return result; + } + + /** + * Lighting output input. + */ + final public static class Input { + /** Lighting profile. */ + final private SkyAtmosphere atmosphere; + /** Cloud color used for ambient-light estimation. */ + final private ColorRGBA cloudsColor; + /** Moonlight source color. */ + final private ColorRGBA moonColor; + /** True if the moon is above the horizon. */ + final private boolean moonUp; + /** Moonlight contribution to nighttime lighting. */ + final private float moonWeight; + /** Sine of the lunar altitude. */ + final private float sineLunarAltitude; + /** Sine of the solar altitude. */ + final private float sineSolarAltitude; + /** Starlight source color. */ + final private ColorRGBA starColor; + /** Daylight source color. */ + final private ColorRGBA sunColor; + /** True if the sun is above the horizon. */ + final private boolean sunUp; + /** Cloud transmission factor for the main light. */ + final private float transmit; + + /** + * Instantiate an input. + * + * @param atmosphere lighting profile (not null, alias created) + * @param lightSelection selected light state (not null, unaffected) + * @param baseResult base/source colors (not null, unaffected) + * @param cloudsColor cloud color (not null, alias created) + * @param moonWeight moonlight contribution (≤1, ≥0) + * @param transmit cloud transmission factor for the main light + */ + public Input(SkyAtmosphere atmosphere, + SkyLightSelectionRuntime.Result lightSelection, + SkyBaseColorRuntime.Result baseResult, ColorRGBA cloudsColor, + float moonWeight, float transmit) { + assert atmosphere != null; + assert lightSelection != null; + assert baseResult != null; + assert cloudsColor != null; + assert moonWeight >= 0f : moonWeight; + assert moonWeight <= 1f : moonWeight; + assert transmit >= 0f : transmit; + + this.atmosphere = atmosphere; + this.cloudsColor = cloudsColor; + this.sunColor = baseResult.sunColor(); + this.moonColor = baseResult.moonColor(); + this.starColor = baseResult.starColor(); + this.sunUp = lightSelection.sunUp(); + this.moonUp = lightSelection.moonUp(); + this.moonWeight = moonWeight; + this.sineSolarAltitude = lightSelection.sineSolarAltitude(); + this.sineLunarAltitude = lightSelection.sineLunarAltitude(); + this.transmit = transmit; + } + } + + /** + * Final lighting output result. + */ + final public static class Result { + /** Ambient light color. */ + final private ColorRGBA ambientColor; + /** Recommended bloom intensity. */ + final private float bloomIntensity; + /** Main directional light color. */ + final private ColorRGBA mainColor; + /** Recommended shadow intensity. */ + final private float shadowIntensity; + + /** + * Instantiate a result. + * + * @param mainColor main light color (not null, alias created) + * @param ambientColor ambient light color (not null, alias created) + * @param shadowIntensity recommended shadow intensity + * @param bloomIntensity recommended bloom intensity + */ + private Result(ColorRGBA mainColor, ColorRGBA ambientColor, + float shadowIntensity, float bloomIntensity) { + assert mainColor != null; + assert ambientColor != null; + + this.mainColor = mainColor; + this.ambientColor = ambientColor; + this.shadowIntensity = shadowIntensity; + this.bloomIntensity = bloomIntensity; + } + + /** + * Return the ambient light color. + * + * @return pre-existing instance + */ + public ColorRGBA ambientColor() { + return ambientColor; + } + + /** + * Return the recommended bloom intensity. + * + * @return bloom intensity + */ + public float bloomIntensity() { + return bloomIntensity; + } + + /** + * Return the main directional light color. + * + * @return pre-existing instance + */ + public ColorRGBA mainDirectionalColor() { + return mainColor; + } + + /** + * Return the recommended shadow intensity. + * + * @return shadow intensity + */ + public float shadowIntensity() { + return shadowIntensity; + } + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyMoonRuntime.java b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyMoonRuntime.java new file mode 100644 index 0000000..1b03958 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyMoonRuntime.java @@ -0,0 +1,251 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.control; + +import com.jme3.asset.AssetNotFoundException; +import com.jme3.math.FastMath; +import com.jme3.math.Vector2f; +import com.jme3.math.Vector3f; +import com.jme3.texture.Texture; +import jme3utilities.math.MyMath; +import jme3utilities.mesh.DomeMesh; +import jme3utilities.sky.GlobeRenderer; +import jme3utilities.sky.LunarPhase; +import jme3utilities.sky.SkyMaterial; +import jme3utilities.sky.SunAndStars; + +/** + * Runtime helper for moon direction, phase texture, and dome projection. + * + * @author Take Some + */ +public final class SkyMoonRuntime { + /** + * Hidden constructor. + */ + private SkyMoonRuntime() { + // do nothing + } + + /** + * Immutable arguments for one moon update. + */ + final public static class MoonUpdateState { + /** Off-screen moon renderer, or null. */ + final private GlobeRenderer renderer; + /** Moon object index in the sky material. */ + final private int objectIndex; + /** Difference in longitude between the moon and sun. */ + final private float longitudeDifference; + /** Lunar latitude north of the ecliptic. */ + final private float lunarLatitude; + /** Moon texture scale. */ + final private float moonScale; + + /** + * Instantiate update arguments. + * + * @param renderer off-screen moon renderer, or null + * @param objectIndex moon object index + * @param longitudeDifference radians east of the sun + * @param lunarLatitude radians north of the ecliptic + * @param moonScale moon texture scale + */ + public MoonUpdateState(GlobeRenderer renderer, int objectIndex, + float longitudeDifference, float lunarLatitude, + float moonScale) { + this.renderer = renderer; + this.objectIndex = objectIndex; + this.longitudeDifference = longitudeDifference; + this.lunarLatitude = lunarLatitude; + this.moonScale = moonScale; + } + } + + /** + * Apply a custom moon texture if one has been specified. + * + * @param material top-dome material (not null) + * @param objectIndex moon object index + * @param assetPath custom texture asset path, or null + * @param colorMap custom texture object, or null + * @return true if a custom texture was applied, otherwise false + */ + public static boolean applyTexture(SkyMaterial material, int objectIndex, + String assetPath, Texture colorMap) { + assert material != null; + + if (colorMap != null) { + material.addObject(objectIndex, colorMap); + return true; + } else if (assetPath != null) { + material.addObject(objectIndex, assetPath); + return true; + } + + return false; + } + + /** + * Apply the moon texture for a phase preset. + * + * @param material top-dome material (not null) + * @param objectIndex moon object index + * @param preset phase preset (not null) + */ + public static void applyPresetTexture(SkyMaterial material, int objectIndex, + LunarPhase preset) { + assert material != null; + assert preset != null; + + String assetPath = preset.imagePath(""); + try { + material.addObject(objectIndex, assetPath); + } catch (AssetNotFoundException exception) { + assetPath = preset.imagePath("-nonviral"); + material.addObject(objectIndex, assetPath); + } + } + + /** + * Calculate the direction to the center of the moon. + * + * @param sunAndStars orientation model (not null) + * @param longitudeDifference radians east of the sun + * @param lunarLatitude radians north of the ecliptic + * @param storeResult storage for the result, or null + * @return a unit vector in world coordinates + */ + public static Vector3f direction(SunAndStars sunAndStars, + float longitudeDifference, float lunarLatitude, + Vector3f storeResult) { + assert sunAndStars != null; + + float solarLongitude = sunAndStars.getSolarLongitude(); + float celestialLongitude = solarLongitude + longitudeDifference; + celestialLongitude = MyMath.modulo(celestialLongitude, FastMath.TWO_PI); + Vector3f result = sunAndStars.convertToWorld( + lunarLatitude, celestialLongitude, storeResult); + + return result; + } + + /** + * Compute the clockwise rotation of the moon texture relative to the sky. + * + * @param sunAndStars orientation model (not null) + * @param topMesh top dome mesh (not null) + * @param lunarLatitude radians north of the ecliptic + * @param longitude moon celestial longitude + * @param uvCenter texture coordinates of the moon center (not null) + * @return new unit vector + */ + public static Vector2f rotation(SunAndStars sunAndStars, DomeMesh topMesh, + float lunarLatitude, float longitude, Vector2f uvCenter) { + assert sunAndStars != null; + assert topMesh != null; + assert uvCenter != null; + + float latitude = lunarLatitude + 0.01f; + if (latitude <= FastMath.HALF_PI) { + Vector3f north + = sunAndStars.convertToWorld(latitude, longitude, null); + Vector2f uvNorth = topMesh.directionUV(north); + if (uvNorth != null) { + Vector2f offset = uvNorth.subtract(uvCenter); + assert offset.length() > 0f : offset; + Vector2f result = offset.normalize(); + return result; + } + } + + latitude = lunarLatitude - 0.01f; + assert latitude >= -FastMath.HALF_PI : lunarLatitude; + Vector3f south = sunAndStars.convertToWorld(latitude, longitude, null); + Vector2f uvSouth = topMesh.directionUV(south); + if (uvSouth != null) { + Vector2f offset = uvCenter.subtract(uvSouth); + assert offset.length() > 0f : offset; + Vector2f result = offset.normalize(); + return result; + } + + assert false : south; + return null; + } + + /** + * Update the moon's position and size. + * + * @param material top-dome material (not null) + * @param topMesh top dome mesh (not null) + * @param sunAndStars orientation model (not null) + * @param phase current phase, or null to hide the moon + * @param state update arguments (not null) + * @return world direction to the moon, or null if hidden + */ + public static Vector3f updateMoon(SkyMaterial material, DomeMesh topMesh, + SunAndStars sunAndStars, LunarPhase phase, + MoonUpdateState state) { + assert material != null; + assert topMesh != null; + assert sunAndStars != null; + assert state != null; + + if (phase == null) { + material.hideObject(state.objectIndex); + return null; + } + + if (phase == LunarPhase.CUSTOM) { + assert state.renderer != null; + float intensity = 2f + FastMath.abs( + state.longitudeDifference - FastMath.PI); + state.renderer.setLightIntensity(intensity); + state.renderer.setPhase( + state.longitudeDifference, state.lunarLatitude); + } + + float solarLongitude = sunAndStars.getSolarLongitude(); + float celestialLongitude + = solarLongitude + state.longitudeDifference; + celestialLongitude = MyMath.modulo(celestialLongitude, FastMath.TWO_PI); + Vector3f worldDirection = sunAndStars.convertToWorld( + state.lunarLatitude, celestialLongitude, null); + Vector2f uvCenter = topMesh.directionUV(worldDirection); + + if (uvCenter != null) { + Vector2f rotation = rotation(sunAndStars, topMesh, + state.lunarLatitude, celestialLongitude, uvCenter); + material.setObjectTransform( + state.objectIndex, uvCenter, state.moonScale, rotation); + } else { + material.hideObject(state.objectIndex); + } + + return worldDirection; + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyObjectLightingRuntime.java b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyObjectLightingRuntime.java new file mode 100644 index 0000000..3ba220b --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/control/SkyObjectLightingRuntime.java @@ -0,0 +1,126 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.control; + +import com.jme3.math.ColorRGBA; +import com.jme3.math.FastMath; +import jme3utilities.sky.SkyAtmosphere; +import jme3utilities.sky.SkyMaterial; +import jme3utilities.sky.atmosphere.SkyLightingModel; + +/** + * Runtime helper for sun/moon material colors. + * + * @author Take Some + */ +public final class SkyObjectLightingRuntime { + // ************************************************************************* + // constants and loggers + + /** + * Sky-material object index for the sun. + */ + final private static int sunObjectIndex = 0; + /** + * Sky-material object index for the moon. + */ + final private static int moonObjectIndex = 1; + /** + * Maximum material alpha. + */ + final private static float maxAlpha = 1f; + + /** + * Hidden constructor. + */ + private SkyObjectLightingRuntime() { + // do nothing + } + // ************************************************************************* + // new methods exposed + + /** + * Update the sun and moon material colors using their altitudes. + * + * @param material top-dome material (not null) + * @param atmosphere lighting profile (not null) + * @param sineSolarAltitude sine of the solar altitude (≤1, ≥-1) + * @param sineLunarAltitude sine of the lunar altitude (≤1, ≥-1) + */ + public static void updateObjects(SkyMaterial material, + SkyAtmosphere atmosphere, float sineSolarAltitude, + float sineLunarAltitude) { + assert material != null; + assert atmosphere != null; + assert sineSolarAltitude <= 1f : sineSolarAltitude; + assert sineSolarAltitude >= -1f : sineSolarAltitude; + assert sineLunarAltitude <= 1f : sineLunarAltitude; + assert sineLunarAltitude >= -1f : sineLunarAltitude; + + updateSun(material, atmosphere, sineSolarAltitude); + updateMoon(material, atmosphere, sineLunarAltitude); + } + + /** + * Update the moon material color. + * + * @param material top-dome material (not null) + * @param atmosphere lighting profile (not null) + * @param sineLunarAltitude sine of the lunar altitude + */ + private static void updateMoon(SkyMaterial material, + SkyAtmosphere atmosphere, float sineLunarAltitude) { + float moonVisibility = FastMath.saturate( + 2f * sineLunarAltitude + 0.6f); + float moonWarmth = 1f - SkyLightingModel.smoothStep( + (sineLunarAltitude + 0.02f) / 0.25f); + float moonShift = moonWarmth * atmosphere.getSunsetWarmth(); + ColorRGBA moonColor = atmosphere.copyMoonLight(null); + moonColor.g *= 1f - 0.15f * moonShift; + moonColor.b *= 1f - 0.35f * moonShift; + moonColor.multLocal(moonVisibility); + moonColor.a = maxAlpha; + material.setObjectColor(moonObjectIndex, moonColor); + } + + /** + * Update the sun material color and glow. + * + * @param material top-dome material (not null) + * @param atmosphere lighting profile (not null) + * @param sineSolarAltitude sine of the solar altitude + */ + private static void updateSun(SkyMaterial material, + SkyAtmosphere atmosphere, float sineSolarAltitude) { + float sunVisibility = FastMath.saturate( + 1f + sineSolarAltitude / atmosphere.getTwilightLimit()); + ColorRGBA sunColor = SkyLightingModel.daylightColor( + atmosphere, sineSolarAltitude); + sunColor.a = maxAlpha * sunVisibility; + material.setObjectColor(sunObjectIndex, sunColor); + material.setObjectGlow(sunObjectIndex, sunColor); + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/control/package-info.java b/SkyLibrary/src/main/java/jme3utilities/sky/control/package-info.java new file mode 100644 index 0000000..3293473 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/control/package-info.java @@ -0,0 +1,29 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +/** + * Sky-control runtime state and update helpers. + */ +package jme3utilities.sky.control; diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyCloudMaterialSlots.java b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyCloudMaterialSlots.java new file mode 100644 index 0000000..3012f25 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyCloudMaterialSlots.java @@ -0,0 +1,360 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.material; + +import com.jme3.export.InputCapsule; +import com.jme3.export.OutputCapsule; +import com.jme3.export.Savable; +import com.jme3.math.Vector2f; +import com.jme3.texture.Image; +import com.jme3.texture.Texture; +import com.jme3.texture.image.ImageRaster; +import java.io.IOException; +import jme3utilities.math.MyMath; +import jme3utilities.sky.Constants; + +/** + * Serializable cloud-layer state and raster cache for sky materials. + * + * @author Take Some + */ +public final class SkyCloudMaterialSlots { + // ************************************************************************* + // constants and loggers + + /** + * Maximum value for opacity/transmission. + */ + final private static float maxAlpha = 1f; + // ************************************************************************* + // fields + + /** + * Maximum opacity of each cloud layer. + */ + final private float[] alphas; + /** + * Image of each cloud layer, retained for serialization. + */ + final private Image[] images; + /** + * Cached rasterization of each cloud layer. + */ + final private ImageRaster[] rasters; + /** + * Scale factors of cloud layers. + */ + final private float[] scales; + /** + * UV offset of each cloud layer. + */ + final private Vector2f[] offsets; + // ************************************************************************* + // constructors + + /** + * Instantiate empty cloud-layer slots. + * + * @param numLayers number of supported cloud layers (≥0) + */ + public SkyCloudMaterialSlots(int numLayers) { + this.alphas = new float[numLayers]; + this.images = new Image[numLayers]; + this.offsets = new Vector2f[numLayers]; + this.rasters = new ImageRaster[numLayers]; + this.scales = new float[numLayers]; + } + + /** + * Instantiate cloud-layer slots from serialized state. + * + * @param alphas serialized opacity array (not null, aliased) + * @param images serialized images array (not null, aliased) + * @param offsets serialized offset array (not null, aliased) + * @param scales serialized scale array (not null, aliased) + */ + private SkyCloudMaterialSlots(float[] alphas, Image[] images, + Vector2f[] offsets, float[] scales) { + assert alphas != null; + assert images != null; + assert offsets != null; + assert scales != null; + + this.alphas = alphas; + this.images = images; + this.offsets = offsets; + this.rasters = new ImageRaster[images.length]; + this.scales = scales; + rebuildRasters(); + } + // ************************************************************************* + // new methods exposed + + /** + * Add or replace a cloud layer texture. + * + * @param layerIndex cloud layer index + * @param alphaMap alpha-map texture (not null, unaffected) + * @return true if this was the first texture for the layer + */ + public boolean addAlphaMap(int layerIndex, Texture alphaMap) { + assert alphaMap != null; + + boolean result = !isAdded(layerIndex); + Image image = alphaMap.getImage(); + this.images[layerIndex] = image; + this.rasters[layerIndex] = createRaster(image); + if (result) { + this.offsets[layerIndex] = new Vector2f(); + } + + return result; + } + + /** + * Access the recorded alpha for a cloud layer. + * + * @param layerIndex cloud layer index + * @return opacity alpha + */ + public float alpha(int layerIndex) { + float result = alphas[layerIndex]; + return result; + } + + /** + * Count supported cloud layers. + * + * @return number of slots (≥0) + */ + public int count() { + int result = images.length; + return result; + } + + /** + * Copy the recorded offset for a cloud layer. + * + * @param layerIndex cloud layer index + * @return a new vector + */ + public Vector2f copyOffset(int layerIndex) { + Vector2f result = offsets[layerIndex].clone(); + return result; + } + + /** + * Test whether a cloud layer has a texture. + * + * @param layerIndex cloud layer index + * @return true if added, otherwise false + */ + public boolean isAdded(int layerIndex) { + boolean result = images[layerIndex] != null; + return result; + } + + /** + * Read cloud-layer slots from an input capsule. + * + * @param capsule input capsule (not null) + * @return a new instance + * @throws IOException from capsule + */ + public static SkyCloudMaterialSlots read(InputCapsule capsule) + throws IOException { + assert capsule != null; + + float[] alphas = capsule.readFloatArray("cloudAlphas", null); + + Savable[] sav = capsule.readSavableArray("cloudImages", null); + Image[] images = new Image[sav.length]; + System.arraycopy(sav, 0, images, 0, sav.length); + + sav = capsule.readSavableArray("cloudOffsets", null); + Vector2f[] offsets = new Vector2f[sav.length]; + System.arraycopy(sav, 0, offsets, 0, sav.length); + + float[] scales = capsule.readFloatArray("cloudScales", null); + + SkyCloudMaterialSlots result + = new SkyCloudMaterialSlots(alphas, images, offsets, scales); + return result; + } + + /** + * Verify that a cloud layer has been added. + * + * @param layerIndex cloud layer index + * @throws IllegalStateException if the layer has not been added + */ + public void requireAdded(int layerIndex) { + if (!isAdded(layerIndex)) { + throw new IllegalStateException("layer not yet added"); + } + } + + /** + * Record the alpha for a cloud layer. + * + * @param layerIndex cloud layer index + * @param alpha desired alpha + */ + public void setAlpha(int layerIndex, float alpha) { + this.alphas[layerIndex] = alpha; + } + + /** + * Record the offset for a cloud layer. + * + * @param layerIndex cloud layer index + * @param newU first component of the new offset + * @param newV second component of the new offset + * @return the normalized offset vector + */ + public Vector2f setOffset(int layerIndex, float newU, float newV) { + float uOffset = MyMath.modulo(newU, 1f); + float vOffset = MyMath.modulo(newV, 1f); + Vector2f result = new Vector2f(uOffset, vOffset); + offsets[layerIndex].set(result); + + return result; + } + + /** + * Record the scale for a cloud layer. + * + * @param layerIndex cloud layer index + * @param scale desired scale + */ + public void setScale(int layerIndex, float scale) { + this.scales[layerIndex] = scale; + } + + /** + * Estimate how much light is transmitted through the cloud layers. + * + * @param skyCoordinates texture coordinates (not null, unaffected) + * @return fraction of light transmitted (≤1, ≥0) + */ + public float transmission(Vector2f skyCoordinates) { + assert skyCoordinates != null; + + float result = 1f; + for (int layerIndex = 0; layerIndex < count(); ++layerIndex) { + if (isAdded(layerIndex)) { + float transparency = transparency(layerIndex, skyCoordinates); + result *= transparency; + } + } + + assert result >= 0f : result; + assert result <= maxAlpha : result; + return result; + } + + /** + * Serialize cloud-layer slots to an output capsule. + * + * @param capsule output capsule (not null) + * @throws IOException from capsule + */ + public void write(OutputCapsule capsule) throws IOException { + assert capsule != null; + + capsule.write(alphas, "cloudAlphas", null); + capsule.write(images, "cloudImages", null); + capsule.write(offsets, "cloudOffsets", null); + capsule.write(scales, "cloudScales", null); + } + // ************************************************************************* + // private methods + + /** + * Create a raster cache for an image, if supported. + * + * @param image source image (not null, unaffected) + * @return new raster, or null if the image format is unsupported + */ + private static ImageRaster createRaster(Image image) { + assert image != null; + + ImageRaster result; + try { + result = ImageRaster.create(image); + } catch (UnsupportedOperationException exception) { + result = null; + } + + return result; + } + + /** + * Rebuild raster cache from serialized images. + */ + private void rebuildRasters() { + for (int layerIndex = 0; layerIndex < count(); ++layerIndex) { + Image image = images[layerIndex]; + if (image == null) { + this.rasters[layerIndex] = null; + } else { + this.rasters[layerIndex] = createRaster(image); + } + } + } + + /** + * Estimate how much light is transmitted through an indexed cloud layer at + * the specified texture coordinates. + * + * @param layerIndex cloud layer index + * @param skyCoordinates texture coordinates (not null, unaffected) + * @return fraction of light transmitted (≤1, ≥0) + */ + private float transparency(int layerIndex, Vector2f skyCoordinates) { + assert layerIndex >= 0 : layerIndex; + assert layerIndex < count() : layerIndex; + assert skyCoordinates != null; + assert isAdded(layerIndex) : layerIndex; + + ImageRaster raster = rasters[layerIndex]; + if (raster == null) { + return maxAlpha; + } + + Vector2f coord = skyCoordinates.mult(scales[layerIndex]); + coord.addLocal(offsets[layerIndex]); + coord.x = MyMath.modulo(coord.x, Constants.uvMax); + coord.y = MyMath.modulo(coord.y, Constants.uvMax); + float opacity = SkyTextureSampler.sampleRed(raster, coord); + opacity *= alphas[layerIndex]; + float result = maxAlpha - opacity; + + assert result >= 0f : result; + assert result <= maxAlpha : result; + return result; + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyDdsTextureLoader.java b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyDdsTextureLoader.java new file mode 100644 index 0000000..d5ec0bb --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyDdsTextureLoader.java @@ -0,0 +1,289 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.material; + +import com.jme3.asset.AssetInfo; +import com.jme3.asset.AssetLoadException; +import com.jme3.asset.AssetManager; +import com.jme3.asset.AssetNotFoundException; +import com.jme3.asset.TextureKey; +import com.jme3.texture.Image; +import com.jme3.texture.Texture; +import com.jme3.texture.Texture2D; +import com.jme3.texture.image.ColorSpace; +import com.jme3.util.BufferUtils; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.nio.ByteBuffer; +import java.util.Arrays; + +/** + * Minimal DDS texture loader for unsupported cloud maps. + * + * @author Take Some + */ +public final class SkyDdsTextureLoader { + /** DDS fixed header size in bytes. */ + final private static int headerSize = 128; + + /** Hidden constructor. */ + private SkyDdsTextureLoader() { + // do nothing + } + + /** + * Load a DDS texture using a small built-in parser. + * + * @param assetManager asset manager (not null) + * @param assetPath texture asset path (not null) + * @return new texture + */ + public static Texture loadTexture( + AssetManager assetManager, String assetPath) { + assert assetManager != null; + assert assetPath != null; + + TextureKey key = new TextureKey(assetPath, false); + AssetInfo info = assetManager.locateAsset(key); + if (info == null) { + throw new AssetNotFoundException(assetPath); + } + + try (InputStream stream = info.openStream()) { + Image image = readImage(stream); + Texture2D result = new Texture2D(image); + result.setKey(key); + return result; + } catch (IOException exception) { + throw new AssetLoadException( + "Failed to load DDS asset " + assetPath, exception); + } + } + + /** + * Read a DDS image from a stream. + * + * @param stream input stream (not null) + * @return new image + * @throws IOException if reading fails or format is unsupported + */ + private static Image readImage(InputStream stream) throws IOException { + byte[] data = readAll(stream); + if (data.length < headerSize || data[0] != 'D' || data[1] != 'D' + || data[2] != 'S' || data[3] != ' ') { + throw new IOException("not a DDS file"); + } + + int height = littleInt(data, 12); + int width = littleInt(data, 16); + int depth = littleInt(data, 24); + int mipLevels = littleInt(data, 28); + String fourCc = fourCc(data, 84); + if (depth <= 0) { + depth = 1; + } + if (mipLevels <= 0) { + mipLevels = 1; + } + + FormatInfo format = format(fourCc); + MipData mipData = copyMipData( + data, width, height, mipLevels, format.blockBytes); + Image result = new Image(format.imageFormat, width, height, + mipData.buffer, mipData.sizes, ColorSpace.Linear); + return result; + } + + /** + * Copy available mip levels into one direct buffer. + * + * @param data DDS file bytes (not null) + * @param width base width (>0) + * @param height base height (>0) + * @param mipLevels declared mip level count (>0) + * @param blockBytes bytes in one 4x4 compressed block + * @return new mip data + */ + private static MipData copyMipData(byte[] data, int width, int height, + int mipLevels, int blockBytes) { + int[] sizes = new int[mipLevels]; + int offset = headerSize; + int usedLevels = 0; + for (int level = 0; level < mipLevels; ++level) { + int levelWidth = Math.max(1, width >> level); + int levelHeight = Math.max(1, height >> level); + int blockWidth = Math.max(1, (levelWidth + 3) / 4); + int blockHeight = Math.max(1, (levelHeight + 3) / 4); + int size = blockWidth * blockHeight * blockBytes; + if (offset + size > data.length) { + break; + } + sizes[level] = size; + offset += size; + usedLevels = level + 1; + } + if (usedLevels == 0) { + throw new AssetLoadException("DDS contains no mip data"); + } + + int totalBytes = offset - headerSize; + ByteBuffer buffer = BufferUtils.createByteBuffer(totalBytes); + buffer.put(data, headerSize, totalBytes); + buffer.flip(); + int[] actualSizes = Arrays.copyOf(sizes, usedLevels); + MipData result = new MipData(buffer, actualSizes); + return result; + } + + /** + * Look up image format information for a FourCC. + * + * @param fourCc FourCC text (not null) + * @return format information + * @throws IOException if the FourCC is unsupported + */ + private static FormatInfo format(String fourCc) throws IOException { + FormatInfo result; + switch (fourCc) { + case "DXT1": + result = new FormatInfo(Image.Format.DXT1, 8); + break; + case "DXT3": + result = new FormatInfo(Image.Format.DXT3, 16); + break; + case "DXT5": + result = new FormatInfo(Image.Format.DXT5, 16); + break; + case "ATI1": + case "BC4U": + result = new FormatInfo(Image.Format.RGTC1, 8); + break; + case "BC4S": + result = new FormatInfo(Image.Format.SIGNED_RGTC1, 8); + break; + case "ATI2": + case "BC5U": + result = new FormatInfo(Image.Format.RGTC2, 16); + break; + case "BC5S": + result = new FormatInfo(Image.Format.SIGNED_RGTC2, 16); + break; + default: + throw new IOException("unsupported FourCC: " + fourCc); + } + + return result; + } + + + /** + * Read all bytes from a stream. + * + * @param stream input stream (not null) + * @return byte array + * @throws IOException if reading fails + */ + private static byte[] readAll(InputStream stream) throws IOException { + ByteArrayOutputStream output = new ByteArrayOutputStream(); + byte[] buffer = new byte[16 * 1024]; + int count; + while ((count = stream.read(buffer)) != -1) { + output.write(buffer, 0, count); + } + byte[] result = output.toByteArray(); + return result; + } + + /** + * Read a little-endian int. + * + * @param data source bytes (not null) + * @param offset byte offset + * @return integer value + */ + private static int littleInt(byte[] data, int offset) { + int result = data[offset] & 0xFF; + result |= (data[offset + 1] & 0xFF) << 8; + result |= (data[offset + 2] & 0xFF) << 16; + result |= (data[offset + 3] & 0xFF) << 24; + return result; + } + + /** + * Read a FourCC. + * + * @param data source bytes (not null) + * @param offset byte offset + * @return FourCC string + */ + private static String fourCc(byte[] data, int offset) { + char[] chars = new char[4]; + for (int i = 0; i < 4; ++i) { + chars[i] = (char) (data[offset + i] & 0xFF); + } + String result = new String(chars); + return result; + } + + /** Format metadata. */ + private static class FormatInfo { + /** Block size in bytes. */ + final private int blockBytes; + /** jME image format. */ + final private Image.Format imageFormat; + + /** + * Instantiate metadata. + * + * @param imageFormat jME image format + * @param blockBytes block size in bytes + */ + FormatInfo(Image.Format imageFormat, int blockBytes) { + this.imageFormat = imageFormat; + this.blockBytes = blockBytes; + } + } + + /** Mip data. */ + private static class MipData { + /** Packed mip buffer. */ + final private ByteBuffer buffer; + /** Mip sizes. */ + final private int[] sizes; + + /** + * Instantiate mip data. + * + * @param buffer packed mip buffer + * @param sizes mip sizes + */ + MipData(ByteBuffer buffer, int[] sizes) { + this.buffer = buffer; + this.sizes = sizes; + } + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialFactory.java b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyMaterialFactory.java similarity index 83% rename from SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialFactory.java rename to SkyLibrary/src/main/java/jme3utilities/sky/material/SkyMaterialFactory.java index 61b8c9b..177b954 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyMaterialFactory.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyMaterialFactory.java @@ -23,19 +23,22 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jme3utilities.sky; +package jme3utilities.sky.material; import com.jme3.asset.AssetManager; import com.jme3.material.Material; import com.jme3.math.ColorRGBA; import jme3utilities.MyAsset; +import jme3utilities.sky.SkyControlCore; +import jme3utilities.sky.SkyMaterial; +import jme3utilities.sky.StarsOption; /** * Factory for sky materials and cloud-layer runtime objects. * * @author Take Some */ -final class SkyMaterialFactory { +public final class SkyMaterialFactory { /** * Hidden constructor. */ @@ -50,7 +53,8 @@ private SkyMaterialFactory() { * @param enabled true to create a material, otherwise false * @return material, or null when disabled */ - static Material createBottom(AssetManager assetManager, boolean enabled) { + public static Material createBottom(AssetManager assetManager, + boolean enabled) { Material result = enabled ? MyAsset.createUnshadedMaterial(assetManager) : null; return result; @@ -64,7 +68,7 @@ static Material createBottom(AssetManager assetManager, boolean enabled) { * @param topMaterial initialized top material (not null) * @return initialized cloud material (not null) */ - static SkyMaterial createClouds(AssetManager assetManager, + public static SkyMaterial createClouds(AssetManager assetManager, boolean separateDome, SkyMaterial topMaterial) { SkyMaterial result; if (separateDome) { @@ -81,21 +85,6 @@ static SkyMaterial createClouds(AssetManager assetManager, return result; } - /** - * Create cloud-layer runtime objects. - * - * @param material cloud material (not null) - * @return new cloud-layer array - */ - static CloudLayer[] createLayers(SkyMaterial material) { - CloudLayer[] result = new CloudLayer[SkyControlCore.numCloudLayers]; - for (int layer = 0; layer < SkyControlCore.numCloudLayers; ++layer) { - result[layer] = new CloudLayer(material, layer); - } - - return result; - } - /** * Create and initialize the top sky material. * @@ -104,7 +93,7 @@ static CloudLayer[] createLayers(SkyMaterial material) { * @param starsOption star rendering option (not null) * @return initialized top material (not null) */ - static SkyMaterial createTop(AssetManager assetManager, + public static SkyMaterial createTop(AssetManager assetManager, boolean separateCloudDome, StarsOption starsOption) { int topObjects = 2; int topClouds = separateCloudDome ? 0 : SkyControlCore.numCloudLayers; diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyMaterialParamNames.java b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyMaterialParamNames.java new file mode 100644 index 0000000..10fa86d --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyMaterialParamNames.java @@ -0,0 +1,202 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.material; + +import java.util.Locale; + +/** + * Shader parameter-name factory for sky materials. + * + * @author Take Some + */ +public final class SkyMaterialParamNames { + /** + * Hidden constructor. + */ + private SkyMaterialParamNames() { + // do nothing + } + + /** + * Build the alpha-map parameter name for a cloud layer. + * + * @param layerIndex cloud layer index + * @return material parameter name + */ + public static String cloudAlphaMap(int layerIndex) { + String result = cloud(layerIndex, "AlphaMap"); + return result; + } + + /** + * Build the color parameter name for a cloud layer. + * + * @param layerIndex cloud layer index + * @return material parameter name + */ + public static String cloudColor(int layerIndex) { + String result = cloud(layerIndex, "Color"); + return result; + } + + /** + * Build the glow parameter name for a cloud layer. + * + * @param layerIndex cloud layer index + * @return material parameter name + */ + public static String cloudGlow(int layerIndex) { + String result = cloud(layerIndex, "Glow"); + return result; + } + + /** + * Build the normal-map parameter name for a cloud layer. + * + * @param layerIndex cloud layer index + * @return material parameter name + */ + public static String cloudNormalMap(int layerIndex) { + String result = cloud(layerIndex, "NormalMap"); + return result; + } + + /** + * Build the offset parameter name for a cloud layer. + * + * @param layerIndex cloud layer index + * @return material parameter name + */ + public static String cloudOffset(int layerIndex) { + String result = cloud(layerIndex, "Offset"); + return result; + } + + /** + * Build the scale parameter name for a cloud layer. + * + * @param layerIndex cloud layer index + * @return material parameter name + */ + public static String cloudScale(int layerIndex) { + String result = cloud(layerIndex, "Scale"); + return result; + } + + /** + * Build the center parameter name for an astronomical object. + * + * @param objectIndex astronomical object index + * @return material parameter name + */ + public static String objectCenter(int objectIndex) { + String result = object(objectIndex, "Center"); + return result; + } + + /** + * Build the color parameter name for an astronomical object. + * + * @param objectIndex astronomical object index + * @return material parameter name + */ + public static String objectColor(int objectIndex) { + String result = object(objectIndex, "Color"); + return result; + } + + /** + * Build the color-map parameter name for an astronomical object. + * + * @param objectIndex astronomical object index + * @return material parameter name + */ + public static String objectColorMap(int objectIndex) { + String result = object(objectIndex, "ColorMap"); + return result; + } + + /** + * Build the glow parameter name for an astronomical object. + * + * @param objectIndex astronomical object index + * @return material parameter name + */ + public static String objectGlow(int objectIndex) { + String result = object(objectIndex, "Glow"); + return result; + } + + /** + * Build the horizontal transform parameter name for an object. + * + * @param objectIndex astronomical object index + * @return material parameter name + */ + public static String objectTransformU(int objectIndex) { + String result = object(objectIndex, "TransformU"); + return result; + } + + /** + * Build the vertical transform parameter name for an object. + * + * @param objectIndex astronomical object index + * @return material parameter name + */ + public static String objectTransformV(int objectIndex) { + String result = object(objectIndex, "TransformV"); + return result; + } + + /** + * Build a cloud-layer parameter name. + * + * @param layerIndex cloud layer index + * @param suffix parameter suffix (not null) + * @return material parameter name + */ + private static String cloud(int layerIndex, String suffix) { + assert suffix != null; + String result = String.format( + Locale.ROOT, "Clouds%d%s", layerIndex, suffix); + return result; + } + + /** + * Build an astronomical-object parameter name. + * + * @param objectIndex astronomical object index + * @param suffix parameter suffix (not null) + * @return material parameter name + */ + private static String object(int objectIndex, String suffix) { + assert suffix != null; + String result = String.format( + Locale.ROOT, "Object%d%s", objectIndex, suffix); + return result; + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyObjectMaterialSlots.java b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyObjectMaterialSlots.java new file mode 100644 index 0000000..d6a8dc5 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyObjectMaterialSlots.java @@ -0,0 +1,248 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.material; + +import com.jme3.export.InputCapsule; +import com.jme3.export.OutputCapsule; +import com.jme3.export.Savable; +import com.jme3.math.Vector2f; +import java.io.IOException; + +/** + * Serializable astronomical-object state for sky materials. + * + * @author Take Some + */ +public final class SkyObjectMaterialSlots { + // ************************************************************************* + // fields + + /** + * Sky texture coordinates of each astronomical object's center. + */ + final private Vector2f[] centers; + /** + * Rotation vector of each astronomical object, or null when not meaningful. + */ + final private Vector2f[] rotations; + /** + * Scale factor of each astronomical object. + */ + final private float[] scales; + // ************************************************************************* + // constructors + + /** + * Instantiate empty astronomical-object slots. + * + * @param numObjects number of supported astronomical objects (≥0) + */ + public SkyObjectMaterialSlots(int numObjects) { + this.centers = new Vector2f[numObjects]; + this.rotations = new Vector2f[numObjects]; + this.scales = new float[numObjects]; + } + + /** + * Instantiate astronomical-object slots from serialized state. + * + * @param centers serialized center array (not null, aliased) + * @param rotations serialized rotation array (not null, aliased) + * @param scales serialized scale array (not null, aliased) + */ + private SkyObjectMaterialSlots(Vector2f[] centers, Vector2f[] rotations, + float[] scales) { + assert centers != null; + assert rotations != null; + assert scales != null; + + this.centers = centers; + this.rotations = rotations; + this.scales = scales; + } + // ************************************************************************* + // new methods exposed + + /** + * Add an astronomical object slot if it has not been added yet. + * + * @param objectIndex object index + * @return true if this was the first addition for the object + */ + public boolean addObject(int objectIndex) { + boolean result = !isAdded(objectIndex); + if (result) { + this.centers[objectIndex] = new Vector2f(); + this.rotations[objectIndex] = new Vector2f(); + } + + return result; + } + + /** + * Copy the center coordinates for an astronomical object. + * + * @param objectIndex object index + * @return a new vector + */ + public Vector2f copyCenter(int objectIndex) { + Vector2f result = centers[objectIndex].clone(); + return result; + } + + /** + * Copy the rotation vector for an astronomical object. + * + * @param objectIndex object index + * @return a new vector, or null if rotation is not meaningful + */ + public Vector2f copyRotation(int objectIndex) { + Vector2f vector = rotations[objectIndex]; + if (vector == null) { + return null; + } else { + Vector2f result = vector.clone(); + return result; + } + } + + /** + * Count supported astronomical object slots. + * + * @return number of slots (≥0) + */ + public int count() { + int result = centers.length; + return result; + } + + /** + * Hide an astronomical object by moving its center to hidden coordinates. + * + * @param objectIndex object index + * @param hiddenCoordinates hidden texture coordinates (not null, + * unaffected) + */ + public void hide(int objectIndex, Vector2f hiddenCoordinates) { + assert hiddenCoordinates != null; + centers[objectIndex].set(hiddenCoordinates); + } + + /** + * Test whether an astronomical object slot has been added. + * + * @param objectIndex object index + * @return true if added, otherwise false + */ + public boolean isAdded(int objectIndex) { + boolean result = centers[objectIndex] != null; + return result; + } + + /** + * Read object slots from an input capsule. + * + * @param capsule input capsule (not null) + * @return a new instance + * @throws IOException from capsule + */ + public static SkyObjectMaterialSlots read(InputCapsule capsule) + throws IOException { + assert capsule != null; + + Savable[] sav = capsule.readSavableArray("objectCenters", null); + Vector2f[] centers = new Vector2f[sav.length]; + System.arraycopy(sav, 0, centers, 0, sav.length); + + sav = capsule.readSavableArray("objectRotations", null); + Vector2f[] rotations = new Vector2f[sav.length]; + System.arraycopy(sav, 0, rotations, 0, sav.length); + + float[] scales = capsule.readFloatArray("objectScales", null); + + SkyObjectMaterialSlots result + = new SkyObjectMaterialSlots(centers, rotations, scales); + return result; + } + + /** + * Verify that an astronomical object slot has been added. + * + * @param objectIndex object index + * @throws IllegalStateException if the object has not been added + */ + public void requireAdded(int objectIndex) { + if (!isAdded(objectIndex)) { + throw new IllegalStateException("object not yet added"); + } + } + + /** + * Access the scale for an astronomical object. + * + * @param objectIndex object index + * @return scale factor + */ + public float scale(int objectIndex) { + float result = scales[objectIndex]; + return result; + } + + /** + * Record transform state for an astronomical object. + * + * @param objectIndex object index + * @param centerUV center coordinates (not null, unaffected) + * @param scale desired scale + * @param rotation rotation vector, or null if rotation is not meaningful + */ + public void setTransform(int objectIndex, Vector2f centerUV, float scale, + Vector2f rotation) { + assert centerUV != null; + + this.centers[objectIndex] = centerUV.clone(); + if (rotation == null) { + this.rotations[objectIndex] = null; + } else { + this.rotations[objectIndex] = rotation.clone(); + } + this.scales[objectIndex] = scale; + } + + /** + * Serialize astronomical-object slots to an output capsule. + * + * @param capsule output capsule (not null) + * @throws IOException from capsule + */ + public void write(OutputCapsule capsule) throws IOException { + assert capsule != null; + + capsule.write(centers, "objectCenters", null); + capsule.write(rotations, "objectRotations", null); + capsule.write(scales, "objectScales", null); + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyObjectTransform.java b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyObjectTransform.java new file mode 100644 index 0000000..deead81 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/material/SkyObjectTransform.java @@ -0,0 +1,202 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.material; + +import com.jme3.math.Vector2f; +import jme3utilities.sky.Constants; + +/** + * Immutable UV transform vectors for an astronomical object projected onto a + * sky dome. + * + * @author Take Some + */ +public final class SkyObjectTransform { + // ************************************************************************* + // fields + + /** + * Horizontal texture-coordinate transform vector. + */ + final private Vector2f transformU; + /** + * Vertical texture-coordinate transform vector. + */ + final private Vector2f transformV; + // ************************************************************************* + // constructors + + /** + * Instantiate an immutable transform from calculated vectors. + * + * @param transformU horizontal transform vector (not null, unaffected) + * @param transformV vertical transform vector (not null, unaffected) + */ + private SkyObjectTransform(Vector2f transformU, Vector2f transformV) { + assert transformU != null; + assert transformV != null; + + this.transformU = transformU.clone(); + this.transformV = transformV.clone(); + } + // ************************************************************************* + // new methods exposed + + /** + * Calculate transform vectors for an astronomical object. + * + * @param centerUV sky texture coordinates for the object center (not null, + * unaffected) + * @param scale ratio of the sky's texture scale to that of the object + * (>0) + * @param rotation (cos, sin) of clockwise rotation angle (unaffected) or + * null if rotation doesn't matter + * @return a new immutable transform + */ + public static SkyObjectTransform from(Vector2f centerUV, float scale, + Vector2f rotation) { + assert centerUV != null; + assert scale > 0f : scale; + + Vector2f transformU = new Vector2f(); + Vector2f transformV = new Vector2f(); + + Vector2f offset = centerUV.subtract(Constants.topUV); + float topDist = offset.length(); + if (topDist > 0f) { + applyDomeDistortion( + topDist, offset, rotation, transformU, transformV); + + } else { + // No UV distortion at the top of the dome. + transformU.set(1f, 0f); + transformV.set(0f, 1f); + } + + if (rotation != null) { + applyObjectRotation(rotation, transformU, transformV); + } + + // Scale by object scale. + transformU.divideLocal(scale); + transformV.divideLocal(scale); + + SkyObjectTransform result + = new SkyObjectTransform(transformU, transformV); + return result; + } + + /** + * Copy the horizontal texture-coordinate transform vector. + * + * @return a new vector + */ + public Vector2f copyTransformU() { + Vector2f result = transformU.clone(); + return result; + } + + /** + * Copy the vertical texture-coordinate transform vector. + * + * @return a new vector + */ + public Vector2f copyTransformV() { + Vector2f result = transformV.clone(); + return result; + } + // ************************************************************************* + // private methods + + /** + * Apply dome UV distortion compensation near the horizon. + * + * @param topDist UV distance from the top of the dome (>0) + * @param offset UV offset from the top of the dome (not null, unaffected) + * @param rotation rotation vector, or null + * @param transformU storage for horizontal transform (not null, modified) + * @param transformV storage for vertical transform (not null, modified) + */ + private static void applyDomeDistortion(float topDist, Vector2f offset, + Vector2f rotation, Vector2f transformU, Vector2f transformV) { + assert topDist > 0f : topDist; + assert offset != null; + assert transformU != null; + assert transformV != null; + + Vector2f tU = new Vector2f(); + Vector2f tV = new Vector2f(); + + /* + * Stretch the image horizontally to compensate for UV distortion near + * the horizon. + */ + float a = offset.x / topDist; + float b = offset.y / topDist; + tU.set(b, -a); + tV.set(a, b); + + float stretchFactor + = 1f + Constants.stretchCoefficient * topDist * topDist; + tU.divideLocal(stretchFactor); + + if (rotation != null) { + transformU.set(tU.x * b + tV.x * a, tU.y * b + tV.y * a); + transformV.set(tV.x * b - tU.x * a, tV.y * b - tU.y * a); + } else { + transformU.set(tU); + transformV.set(tV); + } + } + + /** + * Apply object-local clockwise rotation. + * + * @param rotation rotation vector (not null, unaffected) + * @param transformU storage for horizontal transform (not null, modified) + * @param transformV storage for vertical transform (not null, modified) + */ + private static void applyObjectRotation(Vector2f rotation, + Vector2f transformU, Vector2f transformV) { + assert rotation != null; + assert transformU != null; + assert transformV != null; + + Vector2f tU = new Vector2f(); + Vector2f tV = new Vector2f(); + + // Rotate so top is toward the north horizon. + tU.set(transformV); + tV.set(-transformU.x, -transformU.y); + + // Rotate by the requested rotation vector. + Vector2f norm = rotation.normalize(); + transformU.set(tU.x * norm.x + tV.x * norm.y, + tU.y * norm.x + tV.y * norm.y); + transformV.set(tV.x * norm.x - tU.x * norm.y, + tV.y * norm.x - tU.y * norm.y); + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/material/package-info.java b/SkyLibrary/src/main/java/jme3utilities/sky/material/package-info.java index 935ca91..2219c0d 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/material/package-info.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/material/package-info.java @@ -24,6 +24,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** - * Sky material and texture sampling helpers. + * Sky material parameter, transform, and texture-sampling helpers. */ package jme3utilities.sky.material; diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/scene/SkyDomeAssets.java b/SkyLibrary/src/main/java/jme3utilities/sky/scene/SkyDomeAssets.java new file mode 100644 index 0000000..9831b7b --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/scene/SkyDomeAssets.java @@ -0,0 +1,59 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.scene; + +/** + * Asset paths for built-in sky-dome models. + *

+ * The procedural {@code DomeMesh} path remains the default runtime path until + * OBJ-backed dome projection is implemented. These constants define the + * packaged asset locations for future optional OBJ loading. + * + * @author Take Some + */ +public final class SkyDomeAssets { + /** + * Classpath directory for bundled sky-dome models. + */ + final public static String modelDirectory = "Models/skies"; + /** + * Built-in high-resolution sky-dome OBJ asset path. + */ + final public static String builtInHighObj + = modelDirectory + "/skydome_high.obj"; + /** + * Material library next to {@link #builtInHighObj}. + */ + final public static String builtInHighMtl + = modelDirectory + "/skydome_high.mtl"; + + /** + * Hidden constructor. + */ + private SkyDomeAssets() { + // do nothing + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/SkyDomeFactory.java b/SkyLibrary/src/main/java/jme3utilities/sky/scene/SkyDomeFactory.java similarity index 93% rename from SkyLibrary/src/main/java/jme3utilities/sky/SkyDomeFactory.java rename to SkyLibrary/src/main/java/jme3utilities/sky/scene/SkyDomeFactory.java index a30b120..bd8f40b 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/SkyDomeFactory.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/scene/SkyDomeFactory.java @@ -23,7 +23,7 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -package jme3utilities.sky; +package jme3utilities.sky.scene; import com.jme3.asset.AssetManager; import com.jme3.material.Material; @@ -36,22 +36,24 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE import com.jme3.scene.Node; import jme3utilities.MyAsset; import jme3utilities.mesh.DomeMesh; -import jme3utilities.sky.scene.SkyNodeNames; +import jme3utilities.sky.Constants; +import jme3utilities.sky.SkyMaterial; +import jme3utilities.sky.StarsOption; /** * Factory for sky dome geometries and default star-map nodes. * * @author Take Some */ -final class SkyDomeFactory { +public final class SkyDomeFactory { /** Number of samples in each longitudinal arc of a major dome. */ final private static int numLongSamples = 16; /** Number of samples around the rim of a dome. */ final private static int numRimSamples = 60; /** Reusable mesh for smooth, inward-facing domes. */ final private static DomeMesh hemisphereMesh = new DomeMesh( - numRimSamples, numLongSamples, Constants.topU, - Constants.topV, Constants.uvScale, true); + numRimSamples, numLongSamples, Constants.topUV.x, + Constants.topUV.y, Constants.uvScale, true); /** Negative Y axis. */ final private static Vector3f negativeUnitY = new Vector3f(0f, -1f, 0f); /** Local copy of unitX. */ @@ -72,7 +74,7 @@ private SkyDomeFactory() { * @param subtree sky subtree (not null) * @param starsNode stars node (not null) */ - static void attachStars(Node subtree, Node starsNode) { + public static void attachStars(Node subtree, Node starsNode) { subtree.attachChildAt(starsNode, 0); } @@ -86,7 +88,8 @@ static void attachStars(Node subtree, Node starsNode) { * @param cloudsMaterial cloud material (not null) * @return new sky subtree node */ - static Node createSubtree(float cloudFlattening, boolean bottomEnabled, + public static Node createSubtree(float cloudFlattening, + boolean bottomEnabled, SkyMaterial topMaterial, Material bottomMaterial, SkyMaterial cloudsMaterial) { Node result = new Node(SkyNodeNames.skyNode); @@ -115,7 +118,7 @@ static Node createSubtree(float cloudFlattening, boolean bottomEnabled, * @param option star rendering option (not null) * @return new stars node, or null when no node is needed */ - static Node createDefaultStars( + public static Node createDefaultStars( AssetManager assetManager, StarsOption option) { Node result; switch (option) { @@ -144,7 +147,7 @@ static Node createDefaultStars( * @param assetName asset name or path (not null) * @return new stars node, or null for TopDome */ - static Node createStars( + public static Node createStars( AssetManager assetManager, StarsOption option, String assetName) { Node result; switch (option) { @@ -172,8 +175,8 @@ static Node createStars( * @return new bottom geometry */ private static Geometry createBottom(Material material) { - DomeMesh mesh = new DomeMesh(numRimSamples, 2, Constants.topU, - Constants.topV, Constants.uvScale, true); + DomeMesh mesh = new DomeMesh(numRimSamples, 2, Constants.topUV.x, + Constants.topUV.y, Constants.uvScale, true); Geometry result = new Geometry(SkyNodeNames.bottom, mesh); Quaternion upsideDown = new Quaternion(); upsideDown.lookAt(unitX, negativeUnitY); diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/scene/SkySceneLookup.java b/SkyLibrary/src/main/java/jme3utilities/sky/scene/SkySceneLookup.java new file mode 100644 index 0000000..57a6a16 --- /dev/null +++ b/SkyLibrary/src/main/java/jme3utilities/sky/scene/SkySceneLookup.java @@ -0,0 +1,150 @@ +/* + Copyright (c) 2026, Take Some + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + * Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software without + specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE + FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER + CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ +package jme3utilities.sky.scene; + +import com.jme3.material.Material; +import com.jme3.scene.Geometry; +import com.jme3.scene.Node; +import jme3utilities.MySpatial; +import jme3utilities.mesh.DomeMesh; +import jme3utilities.sky.SkyMaterial; + +/** + * Internal scene-graph lookup helpers for sky controls. + * + * @author Take Some + */ +public final class SkySceneLookup { + /** + * Hidden constructor. + */ + private SkySceneLookup() { + // do nothing + } + + /** + * Access the bottom dome geometry. + * + * @param subtreeNode sky subtree node (not null, unaffected) + * @return the pre-existing geometry, or null if none + */ + public static Geometry bottomDome(Node subtreeNode) { + Geometry result = geometry(subtreeNode, SkyNodeNames.bottom); + return result; + } + + /** + * Access the clouds-only dome geometry. + * + * @param subtreeNode sky subtree node (not null, unaffected) + * @return the pre-existing geometry, or null if none + */ + public static Geometry cloudsOnlyDome(Node subtreeNode) { + Geometry result = geometry(subtreeNode, SkyNodeNames.clouds); + return result; + } + + /** + * Access a dome mesh from an optional geometry. + * + * @param geometry geometry to inspect, or null + * @return the pre-existing dome mesh, or null if the geometry is null + */ + public static DomeMesh domeMesh(Geometry geometry) { + if (geometry == null) { + return null; + } + DomeMesh result = (DomeMesh) geometry.getMesh(); + return result; + } + + /** + * Access a material from an optional geometry. + * + * @param geometry geometry to inspect, or null + * @return the pre-existing material, or null if the geometry is null + */ + public static Material material(Geometry geometry) { + if (geometry == null) { + return null; + } + Material result = geometry.getMaterial(); + return result; + } + + /** + * Access the material from a sky-material geometry. + * + * @param geometry geometry to inspect (not null, unaffected) + * @return the pre-existing sky material (not null) + */ + public static SkyMaterial skyMaterial(Geometry geometry) { + assert geometry != null; + SkyMaterial result = (SkyMaterial) geometry.getMaterial(); + + assert result != null; + return result; + } + + /** + * Access the stars parent node. + * + * @param subtreeNode sky subtree node (not null, unaffected) + * @return the pre-existing node, or null if none + */ + public static Node starsNode(Node subtreeNode) { + Node result = (Node) MySpatial.findChild( + subtreeNode, SkyNodeNames.starsNode); + return result; + } + + /** + * Access the top dome geometry. + * + * @param subtreeNode sky subtree node (not null, unaffected) + * @return the pre-existing geometry, or null if none + */ + public static Geometry topDome(Node subtreeNode) { + Geometry result = geometry(subtreeNode, SkyNodeNames.top); + return result; + } + + /** + * Locate a named geometry under the specified subtree. + * + * @param subtreeNode sky subtree node (not null, unaffected) + * @param childName desired child name (not null) + * @return the pre-existing geometry, or null if none + */ + private static Geometry geometry(Node subtreeNode, String childName) { + assert subtreeNode != null; + assert childName != null; + Geometry result = (Geometry) MySpatial.findChild( + subtreeNode, childName); + + return result; + } +} diff --git a/SkyLibrary/src/main/java/jme3utilities/sky/scene/package-info.java b/SkyLibrary/src/main/java/jme3utilities/sky/scene/package-info.java index 73d399e..606e188 100644 --- a/SkyLibrary/src/main/java/jme3utilities/sky/scene/package-info.java +++ b/SkyLibrary/src/main/java/jme3utilities/sky/scene/package-info.java @@ -24,6 +24,6 @@ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ /** - * Sky scene-graph naming helpers. + * Sky scene-graph naming and lookup helpers. */ package jme3utilities.sky.scene; diff --git a/SkyLibrary/src/main/resources/MatDefs/skies/dome02/dome02.j3md b/SkyLibrary/src/main/resources/MatDefs/skies/dome02/dome02.j3md index 3eff1b0..cdc454f 100644 --- a/SkyLibrary/src/main/resources/MatDefs/skies/dome02/dome02.j3md +++ b/SkyLibrary/src/main/resources/MatDefs/skies/dome02/dome02.j3md @@ -1,30 +1,5 @@ -// Copyright (c) 2013-2022, Stephen Gold - -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of the copyright holder nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. - -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -// A material for use with the SkyMaterial class: this version includes zero -// objects and two cloud layers. +// Generated by :SkyAssets:skyMaterials. Do not edit by hand. +// A generated material for SkyMaterial: 0 objects and 2 cloud layers. MaterialDef dome02 { MaterialParameters { @@ -38,12 +13,14 @@ MaterialDef dome02 { Color Clouds0Glow Float Clouds0Scale : 1.0 Texture2D Clouds0AlphaMap + Texture2D Clouds0NormalMap Vector2 Clouds0Offset Color Clouds1Color Color Clouds1Glow Float Clouds1Scale : 1.0 Texture2D Clouds1AlphaMap + Texture2D Clouds1NormalMap Vector2 Clouds1Offset Color HazeColor @@ -55,7 +32,9 @@ MaterialDef dome02 { Defines { HAS_STARS : StarsColorMap HAS_CLOUDS0 : Clouds0AlphaMap + HAS_CLOUDS0_NORMAL : Clouds0NormalMap HAS_CLOUDS1 : Clouds1AlphaMap + HAS_CLOUDS1_NORMAL : Clouds1NormalMap HAS_HAZE : HazeAlphaMap } FragmentShader GLSL300 GLSL150 GLSL100: Shaders/skies/dome02/dome02.frag @@ -68,7 +47,9 @@ MaterialDef dome02 { Technique Glow { Defines { HAS_CLOUDS0 : Clouds0AlphaMap + HAS_CLOUDS0_NORMAL : Clouds0NormalMap HAS_CLOUDS1 : Clouds1AlphaMap + HAS_CLOUDS1_NORMAL : Clouds1NormalMap HAS_HAZE : HazeAlphaMap } FragmentShader GLSL300 GLSL150 GLSL100: Shaders/skies/dome02/dome02glow.frag @@ -77,4 +58,4 @@ MaterialDef dome02 { WorldViewProjectionMatrix } } -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/MatDefs/skies/dome06/dome06.j3md b/SkyLibrary/src/main/resources/MatDefs/skies/dome06/dome06.j3md index da571f5..b5a2f83 100644 --- a/SkyLibrary/src/main/resources/MatDefs/skies/dome06/dome06.j3md +++ b/SkyLibrary/src/main/resources/MatDefs/skies/dome06/dome06.j3md @@ -1,30 +1,5 @@ -// Copyright (c) 2014-2022, Stephen Gold - -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of the copyright holder nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. - -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -// A material for use with the SkyMaterial class: this version includes zero -// objects and six cloud layers. +// Generated by :SkyAssets:skyMaterials. Do not edit by hand. +// A generated material for SkyMaterial: 0 objects and 6 cloud layers. MaterialDef dome06 { MaterialParameters { @@ -38,36 +13,42 @@ MaterialDef dome06 { Color Clouds0Glow Float Clouds0Scale : 1.0 Texture2D Clouds0AlphaMap + Texture2D Clouds0NormalMap Vector2 Clouds0Offset Color Clouds1Color Color Clouds1Glow Float Clouds1Scale : 1.0 Texture2D Clouds1AlphaMap + Texture2D Clouds1NormalMap Vector2 Clouds1Offset Color Clouds2Color Color Clouds2Glow Float Clouds2Scale : 1.0 Texture2D Clouds2AlphaMap + Texture2D Clouds2NormalMap Vector2 Clouds2Offset Color Clouds3Color Color Clouds3Glow Float Clouds3Scale : 1.0 Texture2D Clouds3AlphaMap + Texture2D Clouds3NormalMap Vector2 Clouds3Offset Color Clouds4Color Color Clouds4Glow Float Clouds4Scale : 1.0 Texture2D Clouds4AlphaMap + Texture2D Clouds4NormalMap Vector2 Clouds4Offset Color Clouds5Color Color Clouds5Glow Float Clouds5Scale : 1.0 Texture2D Clouds5AlphaMap + Texture2D Clouds5NormalMap Vector2 Clouds5Offset Color HazeColor @@ -79,11 +60,17 @@ MaterialDef dome06 { Defines { HAS_STARS : StarsColorMap HAS_CLOUDS0 : Clouds0AlphaMap + HAS_CLOUDS0_NORMAL : Clouds0NormalMap HAS_CLOUDS1 : Clouds1AlphaMap + HAS_CLOUDS1_NORMAL : Clouds1NormalMap HAS_CLOUDS2 : Clouds2AlphaMap + HAS_CLOUDS2_NORMAL : Clouds2NormalMap HAS_CLOUDS3 : Clouds3AlphaMap + HAS_CLOUDS3_NORMAL : Clouds3NormalMap HAS_CLOUDS4 : Clouds4AlphaMap + HAS_CLOUDS4_NORMAL : Clouds4NormalMap HAS_CLOUDS5 : Clouds5AlphaMap + HAS_CLOUDS5_NORMAL : Clouds5NormalMap HAS_HAZE : HazeAlphaMap } FragmentShader GLSL300 GLSL150 GLSL100: Shaders/skies/dome06/dome06.frag @@ -96,11 +83,17 @@ MaterialDef dome06 { Technique Glow { Defines { HAS_CLOUDS0 : Clouds0AlphaMap + HAS_CLOUDS0_NORMAL : Clouds0NormalMap HAS_CLOUDS1 : Clouds1AlphaMap + HAS_CLOUDS1_NORMAL : Clouds1NormalMap HAS_CLOUDS2 : Clouds2AlphaMap + HAS_CLOUDS2_NORMAL : Clouds2NormalMap HAS_CLOUDS3 : Clouds3AlphaMap + HAS_CLOUDS3_NORMAL : Clouds3NormalMap HAS_CLOUDS4 : Clouds4AlphaMap + HAS_CLOUDS4_NORMAL : Clouds4NormalMap HAS_CLOUDS5 : Clouds5AlphaMap + HAS_CLOUDS5_NORMAL : Clouds5NormalMap HAS_HAZE : HazeAlphaMap } FragmentShader GLSL300 GLSL150 GLSL100: Shaders/skies/dome06/dome06glow.frag @@ -109,4 +102,4 @@ MaterialDef dome06 { WorldViewProjectionMatrix } } -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/MatDefs/skies/dome20/dome20.j3md b/SkyLibrary/src/main/resources/MatDefs/skies/dome20/dome20.j3md index 30b1f79..bb9ee2a 100644 --- a/SkyLibrary/src/main/resources/MatDefs/skies/dome20/dome20.j3md +++ b/SkyLibrary/src/main/resources/MatDefs/skies/dome20/dome20.j3md @@ -1,30 +1,5 @@ -// Copyright (c) 2014-2022, Stephen Gold - -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of the copyright holder nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. - -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -// A material for use with the SkyMaterial class: this version includes two -// objects and zero cloud layers. +// Generated by :SkyAssets:skyMaterials. Do not edit by hand. +// A generated material for SkyMaterial: 2 objects and 0 cloud layers. MaterialDef dome20 { MaterialParameters { @@ -79,4 +54,4 @@ MaterialDef dome20 { WorldViewProjectionMatrix } } -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/MatDefs/skies/dome22/dome22.j3md b/SkyLibrary/src/main/resources/MatDefs/skies/dome22/dome22.j3md index 4cc1d0f..702ad1a 100644 --- a/SkyLibrary/src/main/resources/MatDefs/skies/dome22/dome22.j3md +++ b/SkyLibrary/src/main/resources/MatDefs/skies/dome22/dome22.j3md @@ -1,30 +1,5 @@ -// Copyright (c) 2013-2022, Stephen Gold - -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of the copyright holder nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. - -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -// A material for use with the SkyMaterial class: this version includes two -// objects and two cloud layers. +// Generated by :SkyAssets:skyMaterials. Do not edit by hand. +// A generated material for SkyMaterial: 2 objects and 2 cloud layers. MaterialDef dome22 { MaterialParameters { @@ -52,12 +27,14 @@ MaterialDef dome22 { Color Clouds0Glow Float Clouds0Scale : 1.0 Texture2D Clouds0AlphaMap + Texture2D Clouds0NormalMap Vector2 Clouds0Offset Color Clouds1Color Color Clouds1Glow Float Clouds1Scale : 1.0 Texture2D Clouds1AlphaMap + Texture2D Clouds1NormalMap Vector2 Clouds1Offset Color HazeColor @@ -71,7 +48,9 @@ MaterialDef dome22 { HAS_OBJECT0 : Object0ColorMap HAS_OBJECT1 : Object1ColorMap HAS_CLOUDS0 : Clouds0AlphaMap + HAS_CLOUDS0_NORMAL : Clouds0NormalMap HAS_CLOUDS1 : Clouds1AlphaMap + HAS_CLOUDS1_NORMAL : Clouds1NormalMap HAS_HAZE : HazeAlphaMap } FragmentShader GLSL300 GLSL150 GLSL100: Shaders/skies/dome22/dome22.frag @@ -86,7 +65,9 @@ MaterialDef dome22 { HAS_OBJECT0 : Object0ColorMap HAS_OBJECT1 : Object1ColorMap HAS_CLOUDS0 : Clouds0AlphaMap + HAS_CLOUDS0_NORMAL : Clouds0NormalMap HAS_CLOUDS1 : Clouds1AlphaMap + HAS_CLOUDS1_NORMAL : Clouds1NormalMap HAS_HAZE : HazeAlphaMap } FragmentShader GLSL300 GLSL150 GLSL100: Shaders/skies/dome22/dome22glow.frag @@ -95,4 +76,4 @@ MaterialDef dome22 { WorldViewProjectionMatrix } } -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/MatDefs/skies/dome60/dome60.j3md b/SkyLibrary/src/main/resources/MatDefs/skies/dome60/dome60.j3md index d2f75a0..81336c0 100644 --- a/SkyLibrary/src/main/resources/MatDefs/skies/dome60/dome60.j3md +++ b/SkyLibrary/src/main/resources/MatDefs/skies/dome60/dome60.j3md @@ -1,30 +1,5 @@ -// Copyright (c) 2014-2022, Stephen Gold - -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of the copyright holder nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. - -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -// A material for use with the SkyMaterial class: this version includes six -// objects and zero cloud layers. +// Generated by :SkyAssets:skyMaterials. Do not edit by hand. +// A generated material for SkyMaterial: 6 objects and 0 cloud layers. MaterialDef dome60 { MaterialParameters { @@ -115,4 +90,4 @@ MaterialDef dome60 { WorldViewProjectionMatrix } } -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/MatDefs/skies/dome66/dome66.j3md b/SkyLibrary/src/main/resources/MatDefs/skies/dome66/dome66.j3md index e8b199c..cafe827 100644 --- a/SkyLibrary/src/main/resources/MatDefs/skies/dome66/dome66.j3md +++ b/SkyLibrary/src/main/resources/MatDefs/skies/dome66/dome66.j3md @@ -1,30 +1,5 @@ -// Copyright (c) 2014-2022, Stephen Gold - -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are met: -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above copyright -// notice, this list of conditions and the following disclaimer in the -// documentation and/or other materials provided with the distribution. -// * Neither the name of the copyright holder nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. - -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -// POSSIBILITY OF SUCH DAMAGE. - -// A material for use with the SkyMaterial class: this version includes six -// objects and six cloud layers. +// Generated by :SkyAssets:skyMaterials. Do not edit by hand. +// A generated material for SkyMaterial: 6 objects and 6 cloud layers. MaterialDef dome66 { MaterialParameters { @@ -80,36 +55,42 @@ MaterialDef dome66 { Color Clouds0Glow Float Clouds0Scale : 1.0 Texture2D Clouds0AlphaMap + Texture2D Clouds0NormalMap Vector2 Clouds0Offset Color Clouds1Color Color Clouds1Glow Float Clouds1Scale : 1.0 Texture2D Clouds1AlphaMap + Texture2D Clouds1NormalMap Vector2 Clouds1Offset Color Clouds2Color Color Clouds2Glow Float Clouds2Scale : 1.0 Texture2D Clouds2AlphaMap + Texture2D Clouds2NormalMap Vector2 Clouds2Offset Color Clouds3Color Color Clouds3Glow Float Clouds3Scale : 1.0 Texture2D Clouds3AlphaMap + Texture2D Clouds3NormalMap Vector2 Clouds3Offset Color Clouds4Color Color Clouds4Glow Float Clouds4Scale : 1.0 Texture2D Clouds4AlphaMap + Texture2D Clouds4NormalMap Vector2 Clouds4Offset Color Clouds5Color Color Clouds5Glow Float Clouds5Scale : 1.0 Texture2D Clouds5AlphaMap + Texture2D Clouds5NormalMap Vector2 Clouds5Offset Color HazeColor @@ -127,11 +108,17 @@ MaterialDef dome66 { HAS_OBJECT4 : Object4ColorMap HAS_OBJECT5 : Object5ColorMap HAS_CLOUDS0 : Clouds0AlphaMap + HAS_CLOUDS0_NORMAL : Clouds0NormalMap HAS_CLOUDS1 : Clouds1AlphaMap + HAS_CLOUDS1_NORMAL : Clouds1NormalMap HAS_CLOUDS2 : Clouds2AlphaMap + HAS_CLOUDS2_NORMAL : Clouds2NormalMap HAS_CLOUDS3 : Clouds3AlphaMap + HAS_CLOUDS3_NORMAL : Clouds3NormalMap HAS_CLOUDS4 : Clouds4AlphaMap + HAS_CLOUDS4_NORMAL : Clouds4NormalMap HAS_CLOUDS5 : Clouds5AlphaMap + HAS_CLOUDS5_NORMAL : Clouds5NormalMap HAS_HAZE : HazeAlphaMap } FragmentShader GLSL300 GLSL150 GLSL100: Shaders/skies/dome66/dome66.frag @@ -150,11 +137,17 @@ MaterialDef dome66 { HAS_OBJECT4 : Object4ColorMap HAS_OBJECT5 : Object5ColorMap HAS_CLOUDS0 : Clouds0AlphaMap + HAS_CLOUDS0_NORMAL : Clouds0NormalMap HAS_CLOUDS1 : Clouds1AlphaMap + HAS_CLOUDS1_NORMAL : Clouds1NormalMap HAS_CLOUDS2 : Clouds2AlphaMap + HAS_CLOUDS2_NORMAL : Clouds2NormalMap HAS_CLOUDS3 : Clouds3AlphaMap + HAS_CLOUDS3_NORMAL : Clouds3NormalMap HAS_CLOUDS4 : Clouds4AlphaMap + HAS_CLOUDS4_NORMAL : Clouds4NormalMap HAS_CLOUDS5 : Clouds5AlphaMap + HAS_CLOUDS5_NORMAL : Clouds5NormalMap HAS_HAZE : HazeAlphaMap } FragmentShader GLSL300 GLSL150 GLSL100: Shaders/skies/dome66/dome66glow.frag @@ -163,4 +156,4 @@ MaterialDef dome66 { WorldViewProjectionMatrix } } -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Models/skies/skydome_high.mtl b/SkyLibrary/src/main/resources/Models/skies/skydome_high.mtl new file mode 100644 index 0000000..c5ff516 --- /dev/null +++ b/SkyLibrary/src/main/resources/Models/skies/skydome_high.mtl @@ -0,0 +1,7 @@ +# Bundled material placeholder for skydome_high.obj +newmtl sky_system +Ka 1.000000 1.000000 1.000000 +Kd 1.000000 1.000000 1.000000 +Ks 0.000000 0.000000 0.000000 +d 1.000000 +illum 1 diff --git a/SkyLibrary/src/main/resources/Models/skies/skydome_high.obj b/SkyLibrary/src/main/resources/Models/skies/skydome_high.obj new file mode 100644 index 0000000..0c07efc --- /dev/null +++ b/SkyLibrary/src/main/resources/Models/skies/skydome_high.obj @@ -0,0 +1,2818 @@ +# Converted from skydome_high.mesh OpenFormats text mesh +# Source object descriptor: skydome.odr +# Vertices: 469 +# Triangles: 928 +# OBJ contains position, first UV channel, and generated smooth normals. +# Second UV channel from source is preserved as comments near the vertex list. +mtllib skydome_high.mtl +o skydome_high +v 0.73339840 0.60205080 -0.30322270 +v 0.44726560 0.83691400 -0.30322270 +v 0.00000000 0.00000000 -1.00048800 +v 0.09277344 0.94433600 -0.30322270 +v 0.19531250 0.98144530 0.00000000 +v 0.38281250 0.92431640 0.00000000 +v 0.55566410 0.83203120 0.00000000 +v 0.73339840 0.60205080 -0.30322270 +v 0.19531250 0.98095710 0.02441406 +v 0.38281250 0.92431640 0.02441406 +v 0.70751950 0.70751950 0.00000000 +v 0.55566410 0.83154300 0.02441406 +v 0.19482420 0.97998050 0.05273437 +v 0.83203120 0.55566410 0.00000000 +v 0.38232420 0.92333980 0.05273437 +v 0.70703130 0.70703130 0.02441406 +v 0.55517580 0.83056640 0.05273437 +v 0.90820310 0.27539060 -0.30322270 +v 0.00000000 0.00000000 -1.00048800 +v 0.83154300 0.55566410 0.02441406 +v 0.92431640 0.38281250 0.00000000 +v 0.70654290 0.70654290 0.05273437 +v 0.98144530 0.19531250 0.00000000 +v 0.92431640 0.38281250 0.02441406 +v 0.83056640 0.55517580 0.05273437 +v 0.94433600 -0.09277344 -0.30322270 +v 0.98095710 0.19531250 0.02441406 +v 1.00048800 0.00000000 0.00000000 +v 0.92333980 0.38232420 0.05273437 +v 0.98144530 -0.19531250 0.00000000 +v 1.00000000 0.00000000 0.02441406 +v 0.97998050 0.19482420 0.05273437 +v 0.83691400 -0.44726560 -0.30322270 +v 0.98095710 -0.19531250 0.02441406 +v 0.92431640 -0.38281250 0.00000000 +v 0.99902340 0.00000000 0.05273437 +v 0.83203120 -0.55566410 0.00000000 +v 0.92431640 -0.38281250 0.02441406 +v 0.97998050 -0.19482420 0.05273437 +v 0.60205080 -0.73339840 -0.30322270 +v 0.83154300 -0.55566410 0.02441406 +v 0.70751950 -0.70751950 0.00000000 +v 0.92333980 -0.38232420 0.05273437 +v 0.55566410 -0.83203120 0.00000000 +v 0.70703130 -0.70703130 0.02441406 +v 0.83056640 -0.55517580 0.05273437 +v 0.38281250 -0.92431640 0.00000000 +v 0.55566410 -0.83154300 0.02441406 +v 0.70654290 -0.70654290 0.05273437 +v 0.27539060 -0.90820310 -0.30322270 +v 0.38281250 -0.92431640 0.02441406 +v 0.19531250 -0.98144530 0.00000000 +v -0.09277344 -0.94433600 -0.30322270 +v -0.73339840 -0.60205080 -0.30322270 +v -0.44726560 -0.83691400 -0.30322270 +v 0.00000000 -1.00048800 0.00000000 +v -0.19531250 -0.98144530 0.00000000 +v 0.19531250 -0.98095710 0.02441406 +v 0.00000000 -1.00000000 0.02441406 +v -0.38281250 -0.92431640 0.00000000 +v 0.38232420 -0.92333980 0.05273437 +v -0.19531250 -0.98095710 0.02441406 +v -0.55566410 -0.83203120 0.00000000 +v -0.73339840 -0.60205080 -0.30322270 +v 0.19482420 -0.97998050 0.05273437 +v 0.00000000 -0.99902340 0.05273437 +v -0.38281250 -0.92431640 0.02441406 +v -0.19482420 -0.97998050 0.05273437 +v 0.19433590 -0.97753910 0.08789062 +v -0.55566410 -0.83154300 0.02441406 +v 0.00000000 -0.99658200 0.08789062 +v -0.38232420 -0.92333980 0.05273437 +v -0.19433590 -0.97753910 0.08789062 +v -0.70751950 -0.70751950 0.00000000 +v -0.55517580 -0.83056640 0.05273437 +v -0.70703130 -0.70703130 0.02441406 +v -0.83203120 -0.55566410 0.00000000 +v -0.90820310 -0.27539060 -0.30322270 +v -0.83154300 -0.55566410 0.02441406 +v -0.92431640 -0.38281250 0.00000000 +v -0.70654290 -0.70654290 0.05273437 +v -0.92431640 -0.38281250 0.02441406 +v -0.38134770 -0.92089840 0.08789062 +v -0.55371090 -0.82861330 0.08789062 +v -0.83056640 -0.55517580 0.05273437 +v -0.70458990 -0.70458990 0.08789062 +v -0.37890620 -0.91552730 0.13964840 +v -0.55029300 -0.82373050 0.13964840 +v -0.82861330 -0.55371090 0.08789062 +v -0.19335940 -0.97167970 0.13964840 +v -0.70068360 -0.70068360 0.13964840 +v 0.00000000 -0.99072260 0.13964840 +v -0.92333980 -0.38232420 0.05273437 +v 0.19335940 -0.97167970 0.13964840 +v -0.19189450 -0.96582030 0.17773440 +v 0.00000000 -0.98437500 0.17773440 +v 0.37890620 -0.91552730 0.13964840 +v -0.37695310 -0.90966800 0.17773440 +v 0.19189450 -0.96582030 0.17773440 +v -0.54687500 -0.81884770 0.17773440 +v -0.37255860 -0.89892580 0.23291010 +v -0.69628900 -0.69628900 0.17773440 +v -0.54052730 -0.80908200 0.23291010 +v -0.68798830 -0.68798830 0.23291010 +v -0.81884770 -0.54687500 0.17773440 +v -0.80908200 -0.54052730 0.23291010 +v -0.67431640 -0.67431640 0.30322270 +v -0.82373050 -0.55029300 0.13964840 +v -0.79296870 -0.52978510 0.30322270 +v -0.52978510 -0.79296870 0.30322270 +v -0.75830080 -0.50683590 0.41113280 +v -0.64501960 -0.64501960 0.41113280 +v -0.36474610 -0.88085940 0.30322270 +v -0.50683590 -0.75830080 0.41113280 +v -0.18994140 -0.95458980 0.23291010 +v 0.00000000 -0.97314460 0.23291010 +v -0.18603520 -0.93505860 0.30322270 +v -0.34912110 -0.84277350 0.41113280 +v 0.18994140 -0.95458980 0.23291010 +v 0.00000000 -0.95361330 0.30322270 +v -0.17773440 -0.89453130 0.41113280 +v 0.37695310 -0.90966800 0.17773440 +v 0.18603520 -0.93505860 0.30322270 +v 0.37255860 -0.89892580 0.23291010 +v 0.55029300 -0.82373050 0.13964840 +v 0.00000000 -0.91210940 0.41113280 +v 0.54687500 -0.81884770 0.17773440 +v 0.36474610 -0.88085940 0.30322270 +v 0.38134770 -0.92089840 0.08789062 +v 0.55371090 -0.82861330 0.08789062 +v 0.70068360 -0.70068360 0.13964840 +v 0.55517580 -0.83056640 0.05273437 +v 0.70458990 -0.70458990 0.08789062 +v 0.82861330 -0.55371090 0.08789062 +v 0.82373050 -0.55029300 0.13964840 +v 0.92089840 -0.38134770 0.08789062 +v 0.91552730 -0.37890620 0.13964840 +v 0.69628900 -0.69628900 0.17773440 +v 0.81884770 -0.54687500 0.17773440 +v 0.54052730 -0.80908200 0.23291010 +v 0.68798830 -0.68798830 0.23291010 +v 0.52978510 -0.79296870 0.30322270 +v 0.80908200 -0.54052730 0.23291010 +v 0.67431640 -0.67431640 0.30322270 +v 0.34912110 -0.84277350 0.41113280 +v 0.50683590 -0.75830080 0.41113280 +v 0.17773440 -0.89453130 0.41113280 +v 0.16699220 -0.83837890 0.51953120 +v 0.00000000 -0.85498040 0.51953120 +v -0.16699220 -0.83837890 0.51953120 +v 0.32714840 -0.79003900 0.51953120 +v -0.32714840 -0.79003900 0.51953120 +v -0.14453130 -0.72607420 0.67333980 +v -0.47509770 -0.71093750 0.51953120 +v -0.28320310 -0.68408200 0.67333980 +v -0.41113280 -0.61523430 0.67333980 +v -0.60449220 -0.60449220 0.51953120 +v -0.52343750 -0.52343750 0.67333980 +v -0.71093750 -0.47509770 0.51953120 +v -0.61523430 -0.41113280 0.67333980 +v -0.35400390 -0.35400390 0.86621090 +v -0.41601560 -0.27783200 0.86621090 +v -0.68408200 -0.28320310 0.67333980 +v -0.27783200 -0.41601560 0.86621090 +v -0.79003900 -0.32714840 0.51953120 +v -0.19140620 -0.46240230 0.86621090 +v -0.84277350 -0.34912110 0.41113280 +v -0.09765625 -0.49072270 0.86621090 +v -0.88085940 -0.36474610 0.30322270 +v 0.00000000 -0.74023440 0.67333980 +v -0.89892580 -0.37255860 0.23291010 +v 0.14453130 -0.72607420 0.67333980 +v -0.90966800 -0.37695310 0.17773440 +v 0.00000000 -0.50048830 0.86621090 +v 0.28320310 -0.68408200 0.67333980 +v 0.09765625 -0.49072270 0.86621090 +v -0.06054688 -0.30322270 0.95166020 +v 0.00000000 -0.30908200 0.95166020 +v -0.11816410 -0.28564450 0.95166020 +v 0.00000000 -0.14501950 0.99755860 +v -0.17187500 -0.25732420 0.95166020 +v -0.02832031 -0.14257810 0.99755860 +v -0.05566406 -0.13427730 0.99755860 +v -0.21875000 -0.21875000 0.95166020 +v -0.08056641 -0.12060550 0.99755860 +v -0.25732420 -0.17187500 0.95166020 +v -0.10253910 -0.10253910 0.99755860 +v 0.00000000 0.00000000 1.00048800 +v -0.12060550 -0.08056641 0.99755860 +v -0.28564450 -0.11816410 0.95166020 +v -0.13427730 -0.05566406 0.99755860 +v -0.46240230 -0.19140620 0.86621090 +v -0.30322270 -0.06054688 0.95166020 +v -0.49072270 -0.09765625 0.86621090 +v -0.14257810 -0.02832031 0.99755860 +v -0.30908200 0.00000000 0.95166020 +v -0.72607420 -0.14453130 0.67333980 +v -0.50048830 0.00000000 0.86621090 +v -0.14501950 0.00000000 0.99755860 +v -0.30322270 0.06054688 0.95166020 +v -0.14257810 0.02832031 0.99755860 +v -0.49072270 0.09765625 0.86621090 +v -0.28564450 0.11816410 0.95166020 +v -0.13427730 0.05566406 0.99755860 +v -0.74023440 0.00000000 0.67333980 +v -0.46240230 0.19140620 0.86621090 +v -0.83837890 -0.16699220 0.51953120 +v -0.72607420 0.14453130 0.67333980 +v -0.85498040 0.00000000 0.51953120 +v -0.89453130 -0.17773440 0.41113280 +v -0.83837890 0.16699220 0.51953120 +v -0.93505860 -0.18603520 0.30322270 +v -0.91210940 0.00000000 0.41113280 +v -0.95458980 -0.18994140 0.23291010 +v -0.95361330 0.00000000 0.30322270 +v -0.89453130 0.17773440 0.41113280 +v -0.68408200 0.28320310 0.67333980 +v -0.79003900 0.32714840 0.51953120 +v -0.93505860 0.18603520 0.30322270 +v -0.41601560 0.27783200 0.86621090 +v -0.84277350 0.34912110 0.41113280 +v -0.61523430 0.41113280 0.67333980 +v -0.71093750 0.47509770 0.51953120 +v -0.25732420 0.17187500 0.95166020 +v -0.35400390 0.35400390 0.86621090 +v -0.12060550 0.08056641 0.99755860 +v -0.21875000 0.21875000 0.95166020 +v -0.10253910 0.10253910 0.99755860 +v -0.17187500 0.25732420 0.95166020 +v -0.08056641 0.12060550 0.99755860 +v -0.27783200 0.41601560 0.86621090 +v -0.11816410 0.28564450 0.95166020 +v -0.52343750 0.52343750 0.67333980 +v -0.05566406 0.13427730 0.99755860 +v -0.60449220 0.60449220 0.51953120 +v -0.06054688 0.30322270 0.95166020 +v -0.41113280 0.61523430 0.67333980 +v -0.19140620 0.46240230 0.86621090 +v -0.28320310 0.68408200 0.67333980 +v -0.02832031 0.14257810 0.99755860 +v -0.09765625 0.49072270 0.86621090 +v 0.00000000 0.30908200 0.95166020 +v 0.00000000 0.14501950 0.99755860 +v 0.00000000 0.50048830 0.86621090 +v 0.06054688 0.30322270 0.95166020 +v 0.02832031 0.14257810 0.99755860 +v -0.14453130 0.72607420 0.67333980 +v 0.09765625 0.49072270 0.86621090 +v 0.11816410 0.28564450 0.95166020 +v 0.05566406 0.13427730 0.99755860 +v 0.00000000 0.74023440 0.67333980 +v 0.19140620 0.46240230 0.86621090 +v 0.17187500 0.25732420 0.95166020 +v 0.08056641 0.12060550 0.99755860 +v 0.14453130 0.72607420 0.67333980 +v 0.27783200 0.41601560 0.86621090 +v 0.21875000 0.21875000 0.95166020 +v 0.10253910 0.10253910 0.99755860 +v 0.28320310 0.68408200 0.67333980 +v 0.35400390 0.35400390 0.86621090 +v 0.25732420 0.17187500 0.95166020 +v 0.12060550 0.08056641 0.99755860 +v 0.41113280 0.61523430 0.67333980 +v 0.41601560 0.27783200 0.86621090 +v 0.28564450 0.11816410 0.95166020 +v 0.13427730 0.05566406 0.99755860 +v 0.52343750 0.52343750 0.67333980 +v 0.46240230 0.19140620 0.86621090 +v 0.30322270 0.06054688 0.95166020 +v 0.14257810 0.02832031 0.99755860 +v 0.61523430 0.41113280 0.67333980 +v 0.49072270 0.09765625 0.86621090 +v 0.30908200 0.00000000 0.95166020 +v 0.14501950 0.00000000 0.99755860 +v 0.68408200 0.28320310 0.67333980 +v 0.50048830 0.00000000 0.86621090 +v 0.30322270 -0.06054688 0.95166020 +v 0.14257810 -0.02832031 0.99755860 +v 0.72607420 0.14453130 0.67333980 +v 0.49072270 -0.09765625 0.86621090 +v 0.28564450 -0.11816410 0.95166020 +v 0.13427730 -0.05566406 0.99755860 +v 0.74023440 0.00000000 0.67333980 +v 0.46240230 -0.19140620 0.86621090 +v 0.25732420 -0.17187500 0.95166020 +v 0.12060550 -0.08056641 0.99755860 +v 0.72607420 -0.14453130 0.67333980 +v 0.41601560 -0.27783200 0.86621090 +v 0.21875000 -0.21875000 0.95166020 +v 0.10253910 -0.10253910 0.99755860 +v 0.68408200 -0.28320310 0.67333980 +v 0.35400390 -0.35400390 0.86621090 +v 0.17187500 -0.25732420 0.95166020 +v 0.08056641 -0.12060550 0.99755860 +v 0.61523430 -0.41113280 0.67333980 +v 0.05566406 -0.13427730 0.99755860 +v 0.11816410 -0.28564450 0.95166020 +v 0.02832031 -0.14257810 0.99755860 +v 0.06054688 -0.30322270 0.95166020 +v 0.19140620 -0.46240230 0.86621090 +v 0.27783200 -0.41601560 0.86621090 +v 0.41113280 -0.61523430 0.67333980 +v 0.52343750 -0.52343750 0.67333980 +v 0.47509770 -0.71093750 0.51953120 +v 0.60449220 -0.60449220 0.51953120 +v 0.64501960 -0.64501960 0.41113280 +v 0.71093750 -0.47509770 0.51953120 +v 0.75830080 -0.50683590 0.41113280 +v 0.79296870 -0.52978510 0.30322270 +v 0.79003900 -0.32714840 0.51953120 +v 0.84277350 -0.34912110 0.41113280 +v 0.88085940 -0.36474610 0.30322270 +v 0.83837890 -0.16699220 0.51953120 +v 0.89453130 -0.17773440 0.41113280 +v 0.85498040 0.00000000 0.51953120 +v 0.91210940 0.00000000 0.41113280 +v 0.93505860 -0.18603520 0.30322270 +v 0.95361330 0.00000000 0.30322270 +v 0.83837890 0.16699220 0.51953120 +v 0.89453130 0.17773440 0.41113280 +v 0.79003900 0.32714840 0.51953120 +v 0.84277350 0.34912110 0.41113280 +v 0.93505860 0.18603520 0.30322270 +v 0.88085940 0.36474610 0.30322270 +v 0.71093750 0.47509770 0.51953120 +v 0.75830080 0.50683590 0.41113280 +v 0.60449220 0.60449220 0.51953120 +v 0.64501960 0.64501960 0.41113280 +v 0.79296870 0.52978510 0.30322270 +v 0.67431640 0.67431640 0.30322270 +v 0.47509770 0.71093750 0.51953120 +v 0.50683590 0.75830080 0.41113280 +v 0.32714840 0.79003900 0.51953120 +v 0.34912110 0.84277350 0.41113280 +v 0.52978510 0.79296870 0.30322270 +v 0.36474610 0.88085940 0.30322270 +v 0.16699220 0.83837890 0.51953120 +v 0.17773440 0.89453130 0.41113280 +v 0.00000000 0.85498040 0.51953120 +v 0.00000000 0.91210940 0.41113280 +v 0.18603520 0.93505860 0.30322270 +v 0.00000000 0.95361330 0.30322270 +v -0.16699220 0.83837890 0.51953120 +v -0.17773440 0.89453130 0.41113280 +v -0.32714840 0.79003900 0.51953120 +v -0.34912110 0.84277350 0.41113280 +v -0.18603520 0.93505860 0.30322270 +v -0.36474610 0.88085940 0.30322270 +v -0.47509770 0.71093750 0.51953120 +v -0.50683590 0.75830080 0.41113280 +v -0.64501960 0.64501960 0.41113280 +v -0.52978510 0.79296870 0.30322270 +v -0.67431640 0.67431640 0.30322270 +v -0.75830080 0.50683590 0.41113280 +v -0.79296870 0.52978510 0.30322270 +v -0.88085940 0.36474610 0.30322270 +v -0.80908200 0.54052730 0.23291010 +v -0.89892580 0.37255860 0.23291010 +v -0.95458980 0.18994140 0.23291010 +v -0.97314460 0.00000000 0.23291010 +v -0.96582030 0.19189450 0.17773440 +v -0.96582030 -0.19189450 0.17773440 +v -0.98437500 0.00000000 0.17773440 +v -0.91552730 -0.37890620 0.13964840 +v -0.97167970 -0.19335940 0.13964840 +v -0.92089840 -0.38134770 0.08789062 +v -0.97753910 -0.19433590 0.08789062 +v -0.97998050 -0.19482420 0.05273437 +v -0.99072260 0.00000000 0.13964840 +v -0.99658200 0.00000000 0.08789062 +v -0.99902340 0.00000000 0.05273437 +v -0.98095710 -0.19531250 0.02441406 +v -1.00000000 0.00000000 0.02441406 +v -0.98144530 -0.19531250 0.00000000 +v -1.00048800 0.00000000 0.00000000 +v -0.94433600 0.09277344 -0.30322270 +v -0.98144530 0.19531250 0.00000000 +v -0.98095710 0.19531250 0.02441406 +v -0.83691400 0.44726560 -0.30322270 +v -0.92431640 0.38281250 0.00000000 +v -0.97998050 0.19482420 0.05273437 +v -0.92431640 0.38281250 0.02441406 +v -0.83203120 0.55566410 0.00000000 +v -0.60205080 0.73339840 -0.30322270 +v -0.27539060 0.90820310 -0.30322270 +v -0.70751950 0.70751950 0.00000000 +v -0.55566410 0.83203120 0.00000000 +v -0.83154300 0.55566410 0.02441406 +v -0.70703130 0.70703130 0.02441406 +v -0.92333980 0.38232420 0.05273437 +v -0.83056640 0.55517580 0.05273437 +v -0.97753910 0.19433590 0.08789062 +v -0.92089840 0.38134770 0.08789062 +v -0.97167970 0.19335940 0.13964840 +v -0.82861330 0.55371090 0.08789062 +v -0.90966800 0.37695310 0.17773440 +v -0.91552730 0.37890620 0.13964840 +v -0.81884770 0.54687500 0.17773440 +v -0.82373050 0.55029300 0.13964840 +v -0.68798830 0.68798830 0.23291010 +v -0.69628900 0.69628900 0.17773440 +v -0.54052730 0.80908200 0.23291010 +v -0.70068360 0.70068360 0.13964840 +v -0.37255860 0.89892580 0.23291010 +v -0.54687500 0.81884770 0.17773440 +v -0.18994140 0.95458980 0.23291010 +v -0.37695310 0.90966800 0.17773440 +v -0.55029300 0.82373050 0.13964840 +v 0.00000000 0.97314460 0.23291010 +v -0.19189450 0.96582030 0.17773440 +v -0.37890620 0.91552730 0.13964840 +v 0.18994140 0.95458980 0.23291010 +v 0.00000000 0.98437500 0.17773440 +v -0.19335940 0.97167970 0.13964840 +v 0.37255860 0.89892580 0.23291010 +v 0.19189450 0.96582030 0.17773440 +v 0.00000000 0.99072260 0.13964840 +v 0.54052730 0.80908200 0.23291010 +v 0.37695310 0.90966800 0.17773440 +v 0.19335940 0.97167970 0.13964840 +v 0.68798830 0.68798830 0.23291010 +v 0.54687500 0.81884770 0.17773440 +v 0.37890620 0.91552730 0.13964840 +v 0.80908200 0.54052730 0.23291010 +v 0.69628900 0.69628900 0.17773440 +v 0.55029300 0.82373050 0.13964840 +v 0.89892580 0.37255860 0.23291010 +v 0.81884770 0.54687500 0.17773440 +v 0.70068360 0.70068360 0.13964840 +v 0.95458980 0.18994140 0.23291010 +v 0.90966800 0.37695310 0.17773440 +v 0.82373050 0.55029300 0.13964840 +v 0.97314460 0.00000000 0.23291010 +v 0.96582030 0.19189450 0.17773440 +v 0.91552730 0.37890620 0.13964840 +v 0.95458980 -0.18994140 0.23291010 +v 0.98437500 0.00000000 0.17773440 +v 0.97167970 0.19335940 0.13964840 +v 0.89892580 -0.37255860 0.23291010 +v 0.96582030 -0.19189450 0.17773440 +v 0.90966800 -0.37695310 0.17773440 +v 0.97167970 -0.19335940 0.13964840 +v 0.99072260 0.00000000 0.13964840 +v 0.97753910 -0.19433590 0.08789062 +v 0.99658200 0.00000000 0.08789062 +v 0.97753910 0.19433590 0.08789062 +v 0.92089840 0.38134770 0.08789062 +v 0.82861330 0.55371090 0.08789062 +v 0.70458990 0.70458990 0.08789062 +v 0.55371090 0.82861330 0.08789062 +v 0.38134770 0.92089840 0.08789062 +v 0.19433590 0.97753910 0.08789062 +v 0.00000000 0.99658200 0.08789062 +v 0.00000000 0.99902340 0.05273437 +v -0.19433590 0.97753910 0.08789062 +v 0.00000000 1.00000000 0.02441406 +v -0.19482420 0.97998050 0.05273437 +v -0.38134770 0.92089840 0.08789062 +v 0.00000000 1.00048800 0.00000000 +v -0.55371090 0.82861330 0.08789062 +v -0.19531250 0.98144530 0.00000000 +v -0.19531250 0.98095710 0.02441406 +v -0.38281250 0.92431640 0.00000000 +v -0.38281250 0.92431640 0.02441406 +v -0.38232420 0.92333980 0.05273437 +v -0.55566410 0.83154300 0.02441406 +v -0.55517580 0.83056640 0.05273437 +v -0.70654290 0.70654290 0.05273437 +v -0.70458990 0.70458990 0.08789062 + +# uv2 1 1.46099900 0.19879150 +# uv2 2 0.57717890 0.21023560 +# uv2 3 0.99032590 0.49655150 +# uv2 4 0.68014520 0.26525880 +# uv2 5 0.62921140 0.28868100 +# uv2 6 0.58599850 0.26557920 +# uv2 7 0.53909300 0.25135800 +# uv2 8 0.46099850 0.19879150 +# uv2 9 0.62704470 0.29194640 +# uv2 10 0.58450320 0.26921080 +# uv2 11 0.49032590 0.24655150 +# uv2 12 0.53833010 0.25520320 +# uv2 13 0.62457280 0.29563900 +# uv2 14 0.44155890 0.25135800 +# uv2 15 0.58279420 0.27330020 +# uv2 16 0.49032590 0.25047300 +# uv2 17 0.53746030 0.25955200 +# uv2 18 0.34928890 0.23268130 +# uv2 19 -0.00967407 0.49655150 +# uv2 20 0.44232180 0.25520320 +# uv2 21 0.39465330 0.26557920 +# uv2 22 0.49032590 0.25491330 +# uv2 23 0.35144040 0.28868100 +# uv2 24 0.39616390 0.26921080 +# uv2 25 0.44319150 0.25955200 +# uv2 26 0.25903320 0.30673220 +# uv2 27 0.35360720 0.29194640 +# uv2 28 0.31355290 0.31977850 +# uv2 29 0.39785770 0.27330020 +# uv2 30 0.28245540 0.35766600 +# uv2 31 0.31632990 0.32255550 +# uv2 32 0.35607910 0.29563900 +# uv2 33 0.20401000 0.40969850 +# uv2 34 0.28572080 0.35983280 +# uv2 35 0.25935360 0.40087890 +# uv2 36 0.31945800 0.32568360 +# uv2 37 0.24513240 0.44778440 +# uv2 38 0.26298520 0.40238950 +# uv2 39 0.28941350 0.36230470 +# uv2 40 0.19256590 0.52587890 +# uv2 41 0.24897770 0.44854730 +# uv2 42 0.24032590 0.49655150 +# uv2 43 0.26707460 0.40408320 +# uv2 44 0.24513240 0.54531860 +# uv2 45 0.24424740 0.49655150 +# uv2 46 0.25332640 0.44941710 +# uv2 47 0.25935360 0.59222410 +# uv2 48 0.24897770 0.54455570 +# uv2 49 0.24868770 0.49655150 +# uv2 50 0.22645570 0.63758850 +# uv2 51 0.26298520 0.59072880 +# uv2 52 0.28245540 0.63543700 +# uv2 53 0.30050660 0.72784430 +# uv2 54 -0.48034670 0.79431150 +# uv2 55 0.40347290 0.78286750 +# uv2 56 0.31355290 0.67332460 +# uv2 57 0.35144040 0.70442200 +# uv2 58 0.28572080 0.63327030 +# uv2 59 0.31632990 0.67054750 +# uv2 60 0.39465330 0.72752380 +# uv2 61 0.26707460 0.58901980 +# uv2 62 0.35360720 0.70115660 +# uv2 63 0.44155890 0.74174500 +# uv2 64 0.51965330 0.79431150 +# uv2 65 0.28941350 0.63079830 +# uv2 66 0.31945800 0.66741940 +# uv2 67 0.39614870 0.72389220 +# uv2 68 0.35607910 0.69746400 +# uv2 69 0.29409790 0.62767030 +# uv2 70 0.44232180 0.73789980 +# uv2 71 0.32344060 0.66343690 +# uv2 72 0.39785770 0.71980280 +# uv2 73 0.35920720 0.69277950 +# uv2 74 0.49032590 0.74655150 +# uv2 75 0.44319150 0.73355100 +# uv2 76 0.49032590 0.74263000 +# uv2 77 0.53909300 0.74174500 +# uv2 78 0.63136290 0.76042180 +# uv2 79 0.53833010 0.73789980 +# uv2 80 0.58599850 0.72752380 +# uv2 81 0.49032590 0.73818970 +# uv2 82 0.58450320 0.72389220 +# uv2 83 0.40000920 0.71459960 +# uv2 84 0.44429020 0.72802730 +# uv2 85 0.53746030 0.73355100 +# uv2 86 0.49032590 0.73255920 +# uv2 87 0.40318300 0.70692450 +# uv2 88 0.44590760 0.71987910 +# uv2 89 0.53636170 0.72802730 +# uv2 90 0.36381530 0.68588260 +# uv2 91 0.49032590 0.72425840 +# uv2 92 0.32931520 0.65756220 +# uv2 93 0.58279420 0.71980280 +# uv2 94 0.30099490 0.62306210 +# uv2 95 0.36723330 0.68077090 +# uv2 96 0.33366390 0.65321350 +# uv2 97 0.27995300 0.58369440 +# uv2 98 0.40554810 0.70123290 +# uv2 99 0.30610660 0.61964410 +# uv2 100 0.44709780 0.71385190 +# uv2 101 0.40895080 0.69299320 +# uv2 102 0.49032590 0.71810910 +# uv2 103 0.44883730 0.70509340 +# uv2 104 0.49032590 0.70918270 +# uv2 105 0.53355410 0.71385190 +# uv2 106 0.53181460 0.70509340 +# uv2 107 0.49032590 0.69757080 +# uv2 108 0.53474430 0.71987910 +# uv2 109 0.52954100 0.69371030 +# uv2 110 0.45111080 0.69371030 +# uv2 111 0.52593990 0.67561340 +# uv2 112 0.49032590 0.67912290 +# uv2 113 0.41340640 0.68226620 +# uv2 114 0.45471190 0.67561340 +# uv2 115 0.37219240 0.67335510 +# uv2 116 0.33998110 0.64691160 +# uv2 117 0.37864690 0.66369630 +# uv2 118 0.42045590 0.66522220 +# uv2 119 0.31353760 0.61468510 +# uv2 120 0.34819030 0.63868710 +# uv2 121 0.38890080 0.64834590 +# uv2 122 0.28564450 0.58132930 +# uv2 123 0.32318110 0.60823060 +# uv2 124 0.29388430 0.57792660 +# uv2 125 0.26699830 0.54096990 +# uv2 126 0.36123660 0.62564090 +# uv2 127 0.27302550 0.53977970 +# uv2 128 0.30461120 0.57347110 +# uv2 129 0.27227780 0.58686830 +# uv2 130 0.25885010 0.54258730 +# uv2 131 0.26261900 0.49655150 +# uv2 132 0.25332640 0.54368590 +# uv2 133 0.25431820 0.49655150 +# uv2 134 0.25885010 0.45051570 +# uv2 135 0.26699830 0.45213320 +# uv2 136 0.27227780 0.40623470 +# uv2 137 0.27995300 0.40940860 +# uv2 138 0.26876830 0.49655150 +# uv2 139 0.27302550 0.45332340 +# uv2 140 0.28178410 0.53804020 +# uv2 141 0.27769470 0.49655150 +# uv2 142 0.29316710 0.53576660 +# uv2 143 0.28178410 0.45506290 +# uv2 144 0.28930660 0.49655150 +# uv2 145 0.32165530 0.56642150 +# uv2 146 0.31126400 0.53216550 +# uv2 147 0.33853150 0.59797670 +# uv2 148 0.35472110 0.58715820 +# uv2 149 0.37500000 0.61187750 +# uv2 150 0.39971920 0.63215640 +# uv2 151 0.33964540 0.55896000 +# uv2 152 0.42791750 0.64723210 +# uv2 153 0.41668700 0.60675050 +# uv2 154 0.45851140 0.65650940 +# uv2 155 0.43960570 0.61900330 +# uv2 156 0.46446230 0.62654120 +# uv2 157 0.49032590 0.65963740 +# uv2 158 0.49032590 0.62908940 +# uv2 159 0.52214050 0.65650940 +# uv2 160 0.51618960 0.62654120 +# uv2 161 0.49032590 0.57989500 +# uv2 162 0.50659180 0.57829280 +# uv2 163 0.54104610 0.61900330 +# uv2 164 0.47406010 0.57829280 +# uv2 165 0.55273440 0.64723210 +# uv2 166 0.45843510 0.57356260 +# uv2 167 0.56019590 0.66522220 +# uv2 168 0.44401550 0.56585690 +# uv2 169 0.56724550 0.68226620 +# uv2 170 0.39660650 0.59027100 +# uv2 171 0.57170100 0.69299320 +# uv2 172 0.38012690 0.57019040 +# uv2 173 0.57510370 0.70123290 +# uv2 174 0.43139650 0.55548100 +# uv2 175 0.36787420 0.54727170 +# uv2 176 0.42102050 0.54286190 +# uv2 177 0.46253970 0.53813170 +# uv2 178 0.45497130 0.53190610 +# uv2 179 0.47119140 0.54275510 +# uv2 180 0.47406010 0.51281740 +# uv2 181 0.48057560 0.54559330 +# uv2 182 0.47753910 0.51568600 +# uv2 183 0.48152160 0.51780700 +# uv2 184 0.49032590 0.54655460 +# uv2 185 0.48583980 0.51911930 +# uv2 186 0.50007630 0.54559330 +# uv2 187 0.49032590 0.51956180 +# uv2 188 0.49032590 0.49655150 +# uv2 189 0.49481200 0.51911930 +# uv2 190 0.50946050 0.54275510 +# uv2 191 0.49913020 0.51780700 +# uv2 192 0.52221680 0.57356260 +# uv2 193 0.51811220 0.53813170 +# uv2 194 0.53663630 0.56585690 +# uv2 195 0.50311280 0.51568600 +# uv2 196 0.52568050 0.53190610 +# uv2 197 0.56396480 0.60675050 +# uv2 198 0.54925540 0.55548100 +# uv2 199 0.50659180 0.51281740 +# uv2 200 0.53190610 0.52433780 +# uv2 201 0.50946050 0.50933840 +# uv2 202 0.55963140 0.54286190 +# uv2 203 0.53652950 0.51568600 +# uv2 204 0.51158140 0.50535590 +# uv2 205 0.58404540 0.59027100 +# uv2 206 0.56733700 0.52844240 +# uv2 207 0.58093260 0.63215640 +# uv2 208 0.60052490 0.57019040 +# uv2 209 0.60565180 0.61187750 +# uv2 210 0.59175110 0.64834590 +# uv2 211 0.62593080 0.58715820 +# uv2 212 0.60200500 0.66369630 +# uv2 213 0.61941530 0.62564090 +# uv2 214 0.60845950 0.67335510 +# uv2 215 0.63246160 0.63868710 +# uv2 216 0.64212040 0.59797670 +# uv2 217 0.61277770 0.54727170 +# uv2 218 0.64100650 0.55896000 +# uv2 219 0.65747070 0.60823060 +# uv2 220 0.57206730 0.51281740 +# uv2 221 0.65899660 0.56642150 +# uv2 222 0.62031550 0.52241520 +# uv2 223 0.65028380 0.52836610 +# uv2 224 0.53936770 0.50630190 +# uv2 225 0.57366940 0.49655150 +# uv2 226 0.51289370 0.50103760 +# uv2 227 0.54032900 0.49655150 +# uv2 228 0.51333620 0.49655150 +# uv2 229 0.53936770 0.48680110 +# uv2 230 0.51289370 0.49206540 +# uv2 231 0.57206730 0.48028560 +# uv2 232 0.53652950 0.47741700 +# uv2 233 0.62286380 0.49655150 +# uv2 234 0.51158140 0.48774720 +# uv2 235 0.65341190 0.49655150 +# uv2 236 0.53190610 0.46876530 +# uv2 237 0.62031550 0.47068790 +# uv2 238 0.56733700 0.46466070 +# uv2 239 0.61277770 0.44583130 +# uv2 240 0.50946050 0.48376460 +# uv2 241 0.55963140 0.45024110 +# uv2 242 0.52568050 0.46119690 +# uv2 243 0.50659180 0.48028560 +# uv2 244 0.54925540 0.43762210 +# uv2 245 0.51811220 0.45497130 +# uv2 246 0.50311280 0.47741700 +# uv2 247 0.60052490 0.42291260 +# uv2 248 0.53663630 0.42724610 +# uv2 249 0.50946050 0.45036320 +# uv2 250 0.49913020 0.47529600 +# uv2 251 0.58404540 0.40283200 +# uv2 252 0.52221680 0.41955570 +# uv2 253 0.50007630 0.44750980 +# uv2 254 0.49481200 0.47398380 +# uv2 255 0.56396480 0.38635250 +# uv2 256 0.50659180 0.41481020 +# uv2 257 0.49032590 0.44654850 +# uv2 258 0.49032590 0.47354130 +# uv2 259 0.54104610 0.37409970 +# uv2 260 0.49032590 0.41320800 +# uv2 261 0.48057560 0.44750980 +# uv2 262 0.48583980 0.47398380 +# uv2 263 0.51618960 0.36656190 +# uv2 264 0.47406010 0.41481020 +# uv2 265 0.47119140 0.45036320 +# uv2 266 0.48152160 0.47529600 +# uv2 267 0.49032590 0.36401370 +# uv2 268 0.45843510 0.41955570 +# uv2 269 0.46253970 0.45497130 +# uv2 270 0.47753910 0.47741700 +# uv2 271 0.46446230 0.36656190 +# uv2 272 0.44401550 0.42724610 +# uv2 273 0.45497130 0.46119690 +# uv2 274 0.47406010 0.48028560 +# uv2 275 0.43960570 0.37409970 +# uv2 276 0.43139650 0.43762210 +# uv2 277 0.44874570 0.46876530 +# uv2 278 0.47119140 0.48376460 +# uv2 279 0.41668700 0.38635250 +# uv2 280 0.42102050 0.45024110 +# uv2 281 0.44413760 0.47741700 +# uv2 282 0.46907040 0.48774720 +# uv2 283 0.39660650 0.40283200 +# uv2 284 0.41333010 0.46466070 +# uv2 285 0.44128420 0.48680110 +# uv2 286 0.46775820 0.49206540 +# uv2 287 0.38012690 0.42291260 +# uv2 288 0.40858460 0.48028560 +# uv2 289 0.44032290 0.49655150 +# uv2 290 0.46731570 0.49655150 +# uv2 291 0.36787420 0.44583130 +# uv2 292 0.40698240 0.49655150 +# uv2 293 0.44128420 0.50630190 +# uv2 294 0.46775820 0.50103760 +# uv2 295 0.36033630 0.47068790 +# uv2 296 0.46907040 0.50535590 +# uv2 297 0.44413760 0.51568600 +# uv2 298 0.47119140 0.50933840 +# uv2 299 0.44874570 0.52433780 +# uv2 300 0.41333010 0.52844240 +# uv2 301 0.40858460 0.51281740 +# uv2 302 0.36033630 0.52241520 +# uv2 303 0.35778810 0.49655150 +# uv2 304 0.33036800 0.52836610 +# uv2 305 0.32724000 0.49655150 +# uv2 306 0.30775450 0.49655150 +# uv2 307 0.33036800 0.46473690 +# uv2 308 0.31126400 0.46093750 +# uv2 309 0.29316710 0.45733640 +# uv2 310 0.33964540 0.43414310 +# uv2 311 0.32165530 0.42668150 +# uv2 312 0.30461120 0.41963190 +# uv2 313 0.35472110 0.40594480 +# uv2 314 0.33853150 0.39512630 +# uv2 315 0.37500000 0.38122560 +# uv2 316 0.36123660 0.36746210 +# uv2 317 0.32318110 0.38487240 +# uv2 318 0.34819030 0.35441590 +# uv2 319 0.39971920 0.36094660 +# uv2 320 0.38890080 0.34475710 +# uv2 321 0.42791750 0.34587100 +# uv2 322 0.42045590 0.32788090 +# uv2 323 0.37864690 0.32940670 +# uv2 324 0.41340640 0.31083680 +# uv2 325 0.45851140 0.33659360 +# uv2 326 0.45471190 0.31748960 +# uv2 327 0.49032590 0.33346560 +# uv2 328 0.49032590 0.31398010 +# uv2 329 0.45111080 0.29939270 +# uv2 330 0.49032590 0.29553220 +# uv2 331 0.52214050 0.33659360 +# uv2 332 0.52593990 0.31748960 +# uv2 333 0.55273440 0.34587100 +# uv2 334 0.56019590 0.32788090 +# uv2 335 0.52954100 0.29939270 +# uv2 336 0.56724550 0.31083680 +# uv2 337 0.58093260 0.36094660 +# uv2 338 0.59175110 0.34475710 +# uv2 339 0.60565180 0.38122560 +# uv2 340 0.61941530 0.36746210 +# uv2 341 0.60200500 0.32940670 +# uv2 342 0.63246160 0.35441590 +# uv2 343 0.62593080 0.40594480 +# uv2 344 0.64212040 0.39512630 +# uv2 345 0.64100650 0.43414310 +# uv2 346 0.65899660 0.42668150 +# uv2 347 0.65747070 0.38487240 +# uv2 348 0.67604060 0.41963190 +# uv2 349 0.65028380 0.46473690 +# uv2 350 0.66938780 0.46093750 +# uv2 351 0.67289730 0.49655150 +# uv2 352 0.68748480 0.45733640 +# uv2 353 0.69134520 0.49655150 +# uv2 354 0.66938780 0.53216550 +# uv2 355 0.68748480 0.53576660 +# uv2 356 0.67604060 0.57347110 +# uv2 357 0.69886780 0.53804020 +# uv2 358 0.68676760 0.57792660 +# uv2 359 0.66711420 0.61468510 +# uv2 360 0.64068600 0.64691160 +# uv2 361 0.67454530 0.61964410 +# uv2 362 0.61341860 0.68077090 +# uv2 363 0.64698790 0.65321350 +# uv2 364 0.57746890 0.70692450 +# uv2 365 0.61683650 0.68588260 +# uv2 366 0.58064270 0.71459960 +# uv2 367 0.62144470 0.69277950 +# uv2 368 0.62457280 0.69746400 +# uv2 369 0.65133670 0.65756220 +# uv2 370 0.65721130 0.66343690 +# uv2 371 0.66119390 0.66741940 +# uv2 372 0.62704470 0.70115660 +# uv2 373 0.66432190 0.67056270 +# uv2 374 0.62921140 0.70442200 +# uv2 375 0.66709900 0.67332460 +# uv2 376 0.72161860 0.68637080 +# uv2 377 0.69819640 0.63543700 +# uv2 378 0.69493100 0.63327030 +# uv2 379 0.77664180 0.58340450 +# uv2 380 0.72129830 0.59222410 +# uv2 381 0.69123840 0.63079830 +# uv2 382 0.71766660 0.59072880 +# uv2 383 0.73551940 0.54531860 +# uv2 384 0.78808600 0.46722410 +# uv2 385 0.75419620 0.35551450 +# uv2 386 0.74032590 0.49655150 +# uv2 387 0.73551940 0.44778440 +# uv2 388 0.73167420 0.54455570 +# uv2 389 0.73640440 0.49655150 +# uv2 390 0.71357730 0.58901980 +# uv2 391 0.72732540 0.54368590 +# uv2 392 0.68655400 0.62767030 +# uv2 393 0.70837400 0.58686830 +# uv2 394 0.67965700 0.62306210 +# uv2 395 0.72180180 0.54258730 +# uv2 396 0.69500730 0.58132930 +# uv2 397 0.70069880 0.58369440 +# uv2 398 0.70762640 0.53977970 +# uv2 399 0.71365360 0.54096990 +# uv2 400 0.70295720 0.49655150 +# uv2 401 0.71188350 0.49655150 +# uv2 402 0.69886780 0.45506290 +# uv2 403 0.71803280 0.49655150 +# uv2 404 0.68676760 0.41517640 +# uv2 405 0.70762640 0.45332340 +# uv2 406 0.66711420 0.37841800 +# uv2 407 0.69500730 0.41177370 +# uv2 408 0.71365360 0.45213320 +# uv2 409 0.64068600 0.34620670 +# uv2 410 0.67454530 0.37345880 +# uv2 411 0.70069880 0.40940860 +# uv2 412 0.60845950 0.31976320 +# uv2 413 0.64698790 0.33988950 +# uv2 414 0.67965700 0.37004090 +# uv2 415 0.57170100 0.30010990 +# uv2 416 0.61341860 0.31233220 +# uv2 417 0.65133670 0.33554080 +# uv2 418 0.53181460 0.28800960 +# uv2 419 0.57510370 0.29187010 +# uv2 420 0.61683650 0.30722050 +# uv2 421 0.49032590 0.28392030 +# uv2 422 0.53355410 0.27925110 +# uv2 423 0.57746890 0.28617860 +# uv2 424 0.44883730 0.28800960 +# uv2 425 0.49032590 0.27499390 +# uv2 426 0.53474430 0.27322390 +# uv2 427 0.40895080 0.30010990 +# uv2 428 0.44709780 0.27925110 +# uv2 429 0.49032590 0.26884460 +# uv2 430 0.37219240 0.31976320 +# uv2 431 0.40554810 0.29187010 +# uv2 432 0.44590760 0.27322390 +# uv2 433 0.33998110 0.34620670 +# uv2 434 0.36723330 0.31233220 +# uv2 435 0.40318300 0.28617860 +# uv2 436 0.31353760 0.37841800 +# uv2 437 0.33366390 0.33988950 +# uv2 438 0.36381530 0.30722050 +# uv2 439 0.29388430 0.41517640 +# uv2 440 0.30610660 0.37345880 +# uv2 441 0.28564450 0.41177370 +# uv2 442 0.30099490 0.37004090 +# uv2 443 0.32931520 0.33554080 +# uv2 444 0.29409790 0.36543270 +# uv2 445 0.32344060 0.32966610 +# uv2 446 0.35920720 0.30032350 +# uv2 447 0.40000920 0.27850340 +# uv2 448 0.44429020 0.26507570 +# uv2 449 0.49032590 0.26054380 +# uv2 450 0.53636170 0.26507570 +# uv2 451 0.58064270 0.27850340 +# uv2 452 0.62144470 0.30032350 +# uv2 453 0.65721130 0.32966610 +# uv2 454 0.66119390 0.32568360 +# uv2 455 0.68655400 0.36543270 +# uv2 456 0.66432190 0.32255550 +# uv2 457 0.69123840 0.36230470 +# uv2 458 0.70837400 0.40623470 +# uv2 459 0.66709900 0.31977850 +# uv2 460 0.72180180 0.45051570 +# uv2 461 0.69819640 0.35766600 +# uv2 462 0.69493100 0.35983280 +# uv2 463 0.72129830 0.40087890 +# uv2 464 0.71766660 0.40238950 +# uv2 465 0.71357730 0.40408320 +# uv2 466 0.73167420 0.44854730 +# uv2 467 0.72732540 0.44941710 +# uv2 468 0.73196410 0.49655150 +# uv2 469 0.72633360 0.49655150 + +vt 0.49066160 0.37823490 +vt 0.53935240 0.38302610 +vt 0.50294490 0.50302120 +vt 0.58250430 0.40608210 +vt 0.78045650 0.08770752 +vt 0.69410710 0.04154968 +vt 0.60040280 0.01312256 +vt 0.49066160 0.37823490 +vt 0.74740600 0.13716130 +vt 0.67134090 0.09651184 +vt 0.50294490 0.00352478 +vt 0.58879090 0.07147217 +vt 0.71145630 0.19097900 +vt 0.40550230 0.01312256 +vt 0.64657590 0.15629580 +vt 0.50294490 0.06301880 +vt 0.57617190 0.13493350 +vt 0.44384770 0.39242550 +vt 0.50294490 0.50302120 +vt 0.41711430 0.07147217 +vt 0.31179810 0.04154968 +vt 0.50294490 0.12773130 +vt 0.22544860 0.08770752 +vt 0.33456420 0.09651184 +vt 0.42973330 0.13493350 +vt 0.40602110 0.42347720 +vt 0.25849920 0.13716130 +vt 0.14974980 0.14982610 +vt 0.35932920 0.15629580 +vt 0.08763123 0.22550960 +vt 0.19181820 0.19189450 +vt 0.29444880 0.19097900 +vt 0.38294980 0.46661380 +vt 0.13710020 0.25856020 +vt 0.04147339 0.31187440 +vt 0.23757930 0.23765560 +vt 0.01304626 0.40557860 +vt 0.09643555 0.33464050 +vt 0.19090270 0.29452510 +vt 0.37815860 0.51530460 +vt 0.07139587 0.41717530 +vt 0.00344849 0.50302120 +vt 0.15621950 0.35940550 +vt 0.01304626 0.60046380 +vt 0.06294251 0.50302120 +vt 0.13487240 0.42980960 +vt 0.04147339 0.69416810 +vt 0.07139587 0.58886720 +vt 0.12765500 0.50302120 +vt 0.39236450 0.56213380 +vt 0.09643555 0.67140200 +vt 0.08763123 0.78053290 +vt 0.42340090 0.59996030 +vt 0.51524350 0.62780760 +vt 0.46655270 0.62301630 +vt 0.14974980 0.85621640 +vt 0.22544860 0.91833500 +vt 0.13710020 0.74748230 +vt 0.19181820 0.81414800 +vt 0.31179810 0.96449280 +vt 0.15621950 0.64663690 +vt 0.25849920 0.86888120 +vt 0.40550230 0.99292000 +vt 0.51524350 0.62780760 +vt 0.19090270 0.71151730 +vt 0.23757930 0.76838680 +vt 0.33456420 0.90953070 +vt 0.29444880 0.81506350 +vt 0.24833680 0.67314150 +vt 0.41711430 0.93457030 +vt 0.28642270 0.71954340 +vt 0.35932920 0.84974670 +vt 0.33282470 0.75762940 +vt 0.50294490 1.00251800 +vt 0.42973330 0.87110900 +vt 0.50294490 0.94302370 +vt 0.60040280 0.99292000 +vt 0.56205750 0.61361700 +vt 0.58879090 0.93457030 +vt 0.69410710 0.96449280 +vt 0.50294490 0.87831120 +vt 0.67134090 0.90953070 +vt 0.38577270 0.78593440 +vt 0.44320680 0.80336000 +vt 0.57617190 0.87110900 +vt 0.50294490 0.80923460 +vt 0.41354370 0.71888730 +vt 0.45736690 0.73217770 +vt 0.56269840 0.80336000 +vt 0.37313840 0.69729610 +vt 0.50294490 0.73666380 +vt 0.33773810 0.66822810 +vt 0.64657590 0.84974670 +vt 0.30868530 0.63282780 +vt 0.39404300 0.66603090 +vt 0.36433410 0.64164740 +vt 0.28709410 0.59243780 +vt 0.42793270 0.68414310 +vt 0.33995060 0.61193850 +vt 0.46470640 0.69529730 +vt 0.44232180 0.64939880 +vt 0.50294490 0.69906620 +vt 0.47204590 0.65841680 +vt 0.50294490 0.66145330 +vt 0.54119870 0.69529730 +vt 0.53385920 0.65841680 +vt 0.50294490 0.62902830 +vt 0.54853820 0.73217770 +vt 0.52752680 0.62660220 +vt 0.47836300 0.62660220 +vt 0.52120970 0.59478760 +vt 0.50294490 0.59658810 +vt 0.45472720 0.61943060 +vt 0.48469540 0.59478760 +vt 0.41493230 0.63476570 +vt 0.39091490 0.61505130 +vt 0.43295290 0.60778810 +vt 0.46714780 0.58946230 +vt 0.37121580 0.59104920 +vt 0.41384890 0.59211730 +vt 0.45097350 0.58081060 +vt 0.32183840 0.57804870 +vt 0.39817810 0.57302860 +vt 0.35656740 0.56365970 +vt 0.27380370 0.54859920 +vt 0.43679810 0.56918340 +vt 0.31066890 0.54125980 +vt 0.38653560 0.55123900 +vt 0.22004700 0.62020870 +vt 0.20262150 0.56275940 +vt 0.26930240 0.50302120 +vt 0.13487240 0.57623290 +vt 0.19673160 0.50302120 +vt 0.20262150 0.44328310 +vt 0.27380370 0.45744320 +vt 0.22004700 0.38583370 +vt 0.28709410 0.41360470 +vt 0.30691530 0.50302120 +vt 0.31066890 0.46478270 +vt 0.34754940 0.53393560 +vt 0.34451290 0.50302120 +vt 0.37936400 0.52760320 +vt 0.34754940 0.47210690 +vt 0.37695310 0.50302120 +vt 0.41650390 0.53883360 +vt 0.41117860 0.52127080 +vt 0.42515570 0.55500790 +vt 0.44386290 0.54251100 +vt 0.45269780 0.55328370 +vt 0.46347050 0.56211850 +vt 0.43728640 0.53021240 +vt 0.47575380 0.56867980 +vt 0.47596740 0.54341130 +vt 0.48909000 0.57272340 +vt 0.48435970 0.54789730 +vt 0.49346920 0.55065920 +vt 0.50294490 0.57409670 +vt 0.50294490 0.55160520 +vt 0.51681520 0.57272340 +vt 0.51243590 0.55065920 +vt 0.50294490 0.52911380 +vt 0.50804140 0.52861020 +vt 0.52154540 0.54789730 +vt 0.49786380 0.52861020 +vt 0.53015140 0.56867980 +vt 0.49296570 0.52711490 +vt 0.53875730 0.58946230 +vt 0.48846440 0.52470400 +vt 0.55117800 0.61943060 +vt 0.46859740 0.53736880 +vt 0.56358340 0.64939880 +vt 0.46255490 0.53001400 +vt 0.57797240 0.68414310 +vt 0.48451230 0.52146910 +vt 0.45806880 0.52160650 +vt 0.48126220 0.51751710 +vt 0.49470520 0.51536560 +vt 0.49246220 0.51351930 +vt 0.49726870 0.51672360 +vt 0.49818420 0.50776670 +vt 0.50006100 0.51757810 +vt 0.49920660 0.50860600 +vt 0.50036620 0.50923160 +vt 0.50294490 0.51785280 +vt 0.50163270 0.50962830 +vt 0.50584410 0.51757810 +vt 0.50294490 0.50975040 +vt 0.50294490 0.50302120 +vt 0.50425720 0.50962830 +vt 0.50863650 0.51672360 +vt 0.50550840 0.50924680 +vt 0.51293950 0.52711490 +vt 0.51120000 0.51536560 +vt 0.51744080 0.52470400 +vt 0.50668330 0.50862120 +vt 0.51344300 0.51351930 +vt 0.52993770 0.54341130 +vt 0.52139280 0.52146910 +vt 0.50770570 0.50779720 +vt 0.51528930 0.51126100 +vt 0.50854490 0.50677490 +vt 0.52464290 0.51751710 +vt 0.51666260 0.50869750 +vt 0.50917050 0.50561520 +vt 0.53730770 0.53736880 +vt 0.52705380 0.51300050 +vt 0.54243470 0.56211850 +vt 0.54335020 0.53001400 +vt 0.55320740 0.55328370 +vt 0.55493160 0.58081060 +vt 0.56204220 0.54251100 +vt 0.57295230 0.60778810 +vt 0.56910700 0.56918340 +vt 0.59097290 0.63476570 +vt 0.59205630 0.59211730 +vt 0.58074950 0.55500790 +vt 0.54783630 0.52160650 +vt 0.56861880 0.53021240 +vt 0.60771180 0.57302860 +vt 0.52853390 0.50810240 +vt 0.58940120 0.53883360 +vt 0.55059810 0.51249690 +vt 0.57266240 0.51689150 +vt 0.51750180 0.50592040 +vt 0.52903750 0.50302120 +vt 0.50955200 0.50434880 +vt 0.51779170 0.50302120 +vt 0.50968930 0.50303650 +vt 0.51750180 0.50012210 +vt 0.50955200 0.50172420 +vt 0.52853390 0.49792480 +vt 0.51666260 0.49734500 +vt 0.55152890 0.50302120 +vt 0.50917050 0.50045780 +vt 0.57402040 0.50302120 +vt 0.51528930 0.49478150 +vt 0.55059810 0.49354550 +vt 0.52705380 0.49304200 +vt 0.54783630 0.48443600 +vt 0.50856020 0.49929810 +vt 0.52464290 0.48852540 +vt 0.51344300 0.49252320 +vt 0.50772090 0.49827580 +vt 0.52139280 0.48457340 +vt 0.51120000 0.49067690 +vt 0.50669860 0.49743650 +vt 0.54335020 0.47602840 +vt 0.51744080 0.48133850 +vt 0.50863650 0.48931890 +vt 0.50553900 0.49681090 +vt 0.53730770 0.46867370 +vt 0.51293950 0.47892760 +vt 0.50584410 0.48846440 +vt 0.50427250 0.49641420 +vt 0.52993770 0.46263120 +vt 0.50804140 0.47743220 +vt 0.50294490 0.48818970 +vt 0.50296020 0.49629210 +vt 0.52154540 0.45814520 +vt 0.50294490 0.47692870 +vt 0.50006100 0.48846440 +vt 0.50164800 0.49641420 +vt 0.51243590 0.45538330 +vt 0.49786380 0.47743220 +vt 0.49726870 0.48931890 +vt 0.50038150 0.49679560 +vt 0.50294490 0.45443730 +vt 0.49296570 0.47892760 +vt 0.49470520 0.49067690 +vt 0.49922180 0.49742130 +vt 0.49346920 0.45538330 +vt 0.48846440 0.48133850 +vt 0.49246220 0.49252320 +vt 0.49819950 0.49824520 +vt 0.48435970 0.45814520 +vt 0.48451230 0.48457340 +vt 0.49061580 0.49478150 +vt 0.49736020 0.49926760 +vt 0.47596740 0.46263120 +vt 0.48126220 0.48852540 +vt 0.48924250 0.49734500 +vt 0.49673460 0.50042730 +vt 0.46859740 0.46867370 +vt 0.47885130 0.49304200 +vt 0.48840330 0.50012210 +vt 0.49635320 0.50169370 +vt 0.46255490 0.47602840 +vt 0.47737120 0.49792480 +vt 0.48811340 0.50302120 +vt 0.49621580 0.50300600 +vt 0.45806880 0.48443600 +vt 0.47686770 0.50302120 +vt 0.48840330 0.50592040 +vt 0.49635320 0.50431820 +vt 0.45530700 0.49354550 +vt 0.49671940 0.50558470 +vt 0.48924250 0.50869750 +vt 0.49734500 0.50674440 +vt 0.49061580 0.51126100 +vt 0.47885130 0.51300050 +vt 0.47737120 0.50810240 +vt 0.45530700 0.51249690 +vt 0.45437620 0.50302120 +vt 0.43324280 0.51689150 +vt 0.43188480 0.50302120 +vt 0.40939330 0.50302120 +vt 0.43324280 0.48915100 +vt 0.41117860 0.48477170 +vt 0.37936400 0.47843930 +vt 0.43728640 0.47583010 +vt 0.41650390 0.46720890 +vt 0.38653560 0.45480350 +vt 0.44386290 0.46353150 +vt 0.42515570 0.45103450 +vt 0.45269780 0.45275880 +vt 0.43679810 0.43685910 +vt 0.39817810 0.43301390 +vt 0.41384890 0.41392520 +vt 0.46347050 0.44392390 +vt 0.45097350 0.42523190 +vt 0.47575380 0.43736270 +vt 0.46714780 0.41658020 +vt 0.43295290 0.39825440 +vt 0.45472720 0.38661190 +vt 0.48909000 0.43331910 +vt 0.48469540 0.41125490 +vt 0.50294490 0.43194580 +vt 0.50294490 0.40945440 +vt 0.47836300 0.37944030 +vt 0.50294490 0.37701420 +vt 0.51681520 0.43331910 +vt 0.52120970 0.41125490 +vt 0.53015140 0.43736270 +vt 0.53875730 0.41658020 +vt 0.52752680 0.37944030 +vt 0.55117800 0.38661190 +vt 0.54243470 0.44392390 +vt 0.55493160 0.42523190 +vt 0.55320740 0.45275880 +vt 0.56910700 0.43685910 +vt 0.57295230 0.39825440 +vt 0.59205630 0.41392520 +vt 0.56204220 0.46353150 +vt 0.58074950 0.45103450 +vt 0.56861880 0.47583010 +vt 0.58940120 0.46720890 +vt 0.60771180 0.43301390 +vt 0.61936950 0.45480350 +vt 0.57266240 0.48915100 +vt 0.59471130 0.48477170 +vt 0.59651190 0.50302120 +vt 0.62652580 0.47843930 +vt 0.62895210 0.50302120 +vt 0.59471130 0.52127080 +vt 0.62652580 0.52760320 +vt 0.61936950 0.55123900 +vt 0.65834040 0.53393560 +vt 0.64933780 0.56365970 +vt 0.63468930 0.59104920 +vt 0.61499030 0.61505130 +vt 0.66595460 0.61193850 +vt 0.61186220 0.66603090 +vt 0.64157100 0.64164740 +vt 0.59236150 0.71888730 +vt 0.63275150 0.69729610 +vt 0.62013250 0.78593440 +vt 0.67308050 0.75762940 +vt 0.71145630 0.81506350 +vt 0.66816710 0.66822810 +vt 0.71948240 0.71954340 +vt 0.76832580 0.76838680 +vt 0.74740600 0.86888120 +vt 0.81408690 0.81414800 +vt 0.78045650 0.91833500 +vt 0.85615540 0.85621640 +vt 0.59988410 0.58256530 +vt 0.91827390 0.78053290 +vt 0.86880500 0.74748230 +vt 0.62295530 0.53942870 +vt 0.96443170 0.69416810 +vt 0.81500240 0.71151730 +vt 0.90946960 0.67140200 +vt 0.99285890 0.60046380 +vt 0.62774660 0.49072270 +vt 0.61354070 0.44390870 +vt 1.00245700 0.50302120 +vt 0.99285890 0.40557860 +vt 0.93450930 0.58886720 +vt 0.94296260 0.50302120 +vt 0.84967040 0.64663690 +vt 0.87103270 0.57623290 +vt 0.75756840 0.67314150 +vt 0.78585810 0.62020870 +vt 0.69721980 0.63282780 +vt 0.80328370 0.56275940 +vt 0.68406680 0.57804870 +vt 0.71881100 0.59243780 +vt 0.69522090 0.54125980 +vt 0.73210140 0.54859920 +vt 0.66139220 0.50302120 +vt 0.69898980 0.50302120 +vt 0.65834040 0.47210690 +vt 0.73660280 0.50302120 +vt 0.64933780 0.44238280 +vt 0.69522090 0.46478270 +vt 0.63468930 0.41499330 +vt 0.68406680 0.42799380 +vt 0.73210140 0.45744320 +vt 0.61499030 0.39099120 +vt 0.66595460 0.39410400 +vt 0.71881100 0.41360470 +vt 0.59097290 0.37127690 +vt 0.64157100 0.36439510 +vt 0.69721980 0.37321470 +vt 0.56358340 0.35664370 +vt 0.61186220 0.34001160 +vt 0.66816710 0.33781430 +vt 0.53385920 0.34762570 +vt 0.57797240 0.32189940 +vt 0.63275150 0.30874630 +vt 0.50294490 0.34457400 +vt 0.54119870 0.31074520 +vt 0.59236150 0.28715520 +vt 0.47204590 0.34762570 +vt 0.50294490 0.30697630 +vt 0.54853820 0.27386470 +vt 0.44232180 0.35664370 +vt 0.46470640 0.31074520 +vt 0.50294490 0.26937870 +vt 0.41493230 0.37127690 +vt 0.42793270 0.32189940 +vt 0.45736690 0.27386470 +vt 0.39091490 0.39099120 +vt 0.39404300 0.34001160 +vt 0.41354370 0.28715520 +vt 0.37121580 0.41499330 +vt 0.36433410 0.36439510 +vt 0.37313840 0.30874630 +vt 0.35656740 0.44238280 +vt 0.33995060 0.39410400 +vt 0.32183840 0.42799380 +vt 0.30868530 0.37321470 +vt 0.33773810 0.33781430 +vt 0.24833680 0.33290100 +vt 0.28642270 0.28649900 +vt 0.33282470 0.24841310 +vt 0.38577270 0.22010800 +vt 0.44320680 0.20268250 +vt 0.50294490 0.19680790 +vt 0.56269840 0.20268250 +vt 0.62013250 0.22010800 +vt 0.67308050 0.24841310 +vt 0.71948240 0.28649900 +vt 0.76832580 0.23765560 +vt 0.75756840 0.33290100 +vt 0.81408690 0.19189450 +vt 0.81500240 0.29452510 +vt 0.78585810 0.38583370 +vt 0.85615540 0.14982610 +vt 0.80328370 0.44328310 +vt 0.91827390 0.22550960 +vt 0.86880500 0.25856020 +vt 0.96443170 0.31187440 +vt 0.90946960 0.33464050 +vt 0.84967040 0.35940550 +vt 0.93450930 0.41717530 +vt 0.87103270 0.42980960 +vt 0.87825010 0.50302120 +vt 0.80917360 0.50302120 + +vn -0.38041731 -0.46346073 0.80030420 +vn -0.34143414 -0.66058057 0.66862249 +vn 0.27456351 -0.33446419 0.90152570 +vn -0.06280816 -0.74098957 0.66857280 +vn -0.23299890 -0.95491455 0.18398291 +vn -0.37467635 -0.91288012 0.16207261 +vn -0.58065079 -0.79302940 0.18425264 +vn -0.66581334 -0.47735522 0.57343229 +vn -0.19195965 -0.98107075 -0.02552794 +vn -0.38030042 -0.92456867 -0.02333165 +vn -0.69545353 -0.70032569 0.16089844 +vn -0.55427418 -0.83178967 -0.03010118 +vn -0.19051762 -0.98010740 -0.05561047 +vn -0.84006746 -0.51045103 0.18364752 +vn -0.37922611 -0.92349806 -0.05778309 +vn -0.70512444 -0.70858424 -0.02660623 +vn -0.55228524 -0.83188443 -0.05430756 +vn -0.70849140 -0.22577367 0.66863008 +vn -0.27456351 0.33446419 0.90152570 +vn -0.82951178 -0.55800793 -0.02318090 +vn -0.91016945 -0.38122216 0.16205321 +vn -0.70357372 -0.70851735 -0.05465513 +vn -0.97141781 -0.14993482 0.18402986 +vn -0.92239839 -0.38551426 -0.02366343 +vn -0.82783510 -0.55805444 -0.05713393 +vn -0.74098957 0.06280816 0.66857280 +vn -0.98011725 -0.19624877 -0.02926778 +vn -0.98695690 -0.00345646 0.16094763 +vn -0.92093856 -0.38546212 -0.05736827 +vn -0.95491455 0.23299890 0.18398291 +vn -0.99960330 -0.00240768 -0.02806135 +vn -0.97872822 -0.19735458 -0.05605574 +vn -0.66058057 0.34143414 0.66862249 +vn -0.98107075 0.19195965 -0.02552794 +vn -0.91288012 0.37467635 0.16207261 +vn -0.99852106 -0.00350389 -0.05425317 +vn -0.79302940 0.58065079 0.18425264 +vn -0.92456867 0.38030042 -0.02333165 +vn -0.98010740 0.19051762 -0.05561047 +vn -0.48220484 0.58746207 0.64989754 +vn -0.83178967 0.55427418 -0.03010118 +vn -0.70032569 0.69545353 0.16089844 +vn -0.92349806 0.37922611 -0.05778309 +vn -0.55095348 0.81881148 0.16123906 +vn -0.70858424 0.70512444 -0.02660623 +vn -0.83188443 0.55228524 -0.05430756 +vn -0.41871584 0.88921176 0.18433528 +vn -0.55800793 0.82951178 -0.02318090 +vn -0.70851735 0.70357372 -0.05465513 +vn -0.21069043 0.69381941 0.68863936 +vn -0.38551426 0.92239839 -0.02366343 +vn -0.14993482 0.97141781 0.18402986 +vn 0.06280816 0.74098957 0.66857280 +vn 0.38041731 0.46346073 0.80030420 +vn 0.34143414 0.66058057 0.66862249 +vn -0.00345646 0.98695690 0.16094763 +vn 0.23299890 0.95491455 0.18398291 +vn -0.19624877 0.98011725 -0.02926778 +vn -0.00240768 0.99960330 -0.02806135 +vn 0.37467635 0.91288012 0.16207261 +vn -0.38546212 0.92093856 -0.05736827 +vn 0.19195965 0.98107075 -0.02552794 +vn 0.58065079 0.79302940 0.18425264 +vn 0.66581334 0.47735522 0.57343229 +vn -0.19735458 0.97872822 -0.05605574 +vn -0.00350389 0.99852106 -0.05425317 +vn 0.38030042 0.92456867 -0.02333165 +vn 0.19051762 0.98010740 -0.05561047 +vn -0.19963704 0.97515008 -0.09605924 +vn 0.55427418 0.83178967 -0.03010118 +vn -0.00621443 0.99540152 -0.09558862 +vn 0.37922611 0.92349806 -0.05778309 +vn 0.18774753 0.97744344 -0.09672224 +vn 0.69545353 0.70032569 0.16089844 +vn 0.55228524 0.83188443 -0.05430756 +vn 0.70512444 0.70858424 -0.02660623 +vn 0.84006746 0.51045103 0.18364752 +vn 0.70849140 0.22577367 0.66863008 +vn 0.82951178 0.55800793 -0.02318090 +vn 0.91016945 0.38122216 0.16205321 +vn 0.70357372 0.70851735 -0.05465513 +vn 0.92239839 0.38551426 -0.02366343 +vn 0.37548920 0.92174706 -0.09690315 +vn 0.54826987 0.83063362 -0.09720046 +vn 0.82783510 0.55805444 -0.05713393 +vn 0.69940606 0.70832875 -0.09540204 +vn 0.40944937 0.90268968 -0.13229722 +vn 0.57746754 0.80587781 -0.13073714 +vn 0.82407370 0.55842668 -0.09519553 +vn 0.22486546 0.96535917 -0.13235259 +vn 0.72364692 0.67777935 -0.13019330 +vn 0.03216652 0.99051117 -0.13361491 +vn 0.92093856 0.38546212 -0.05736827 +vn -0.16071959 0.97802493 -0.13280232 +vn 0.19702028 0.96270217 -0.18543877 +vn 0.00546951 0.98279270 -0.18463095 +vn -0.34909028 0.92765612 -0.13262770 +vn 0.38099378 0.90548528 -0.18692282 +vn -0.18554056 0.96531921 -0.18366690 +vn 0.55064938 0.81368922 -0.18626622 +vn 0.37469235 0.89544181 -0.24039469 +vn 0.69829732 0.69073743 -0.18778353 +vn 0.54240679 0.80522903 -0.23958522 +vn 0.68873185 0.68413542 -0.24001491 +vn 0.82010465 0.54109652 -0.18612609 +vn 0.80887063 0.53641009 -0.24081636 +vn 0.67330846 0.66533115 -0.32247507 +vn 0.84189089 0.52330802 -0.13178937 +vn 0.79027034 0.52110965 -0.32236241 +vn 0.52988987 0.78398088 -0.32340487 +vn 0.75604984 0.50715287 -0.41374462 +vn 0.64242154 0.64483346 -0.41410673 +vn 0.36704514 0.87206726 -0.32369207 +vn 0.50450656 0.75789007 -0.41361308 +vn 0.19252786 0.95126383 -0.24089448 +vn 0.00382254 0.97093617 -0.23930805 +vn 0.19001000 0.92684020 -0.32382625 +vn 0.34701208 0.84209029 -0.41287596 +vn -0.18648959 0.95230889 -0.24151482 +vn 0.00566824 0.94607570 -0.32389603 +vn 0.17588605 0.89329270 -0.41363299 +vn -0.37109706 0.90987060 -0.18553291 +vn -0.17971955 0.92865136 -0.32451123 +vn -0.36859186 0.89741496 -0.24245915 +vn -0.52330802 0.84189089 -0.13178937 +vn -0.00160335 0.91034654 -0.41384370 +vn -0.54109652 0.82010465 -0.18612609 +vn -0.35647976 0.87687109 -0.32252018 +vn -0.38662175 0.91709479 -0.09726645 +vn -0.55842668 0.82407370 -0.09519553 +vn -0.67777935 0.72364692 -0.13019330 +vn -0.55805444 0.82783510 -0.05713393 +vn -0.70832875 0.69940606 -0.09540204 +vn -0.83063362 0.54826987 -0.09720046 +vn -0.80587781 0.57746754 -0.13073714 +vn -0.92174706 0.37548920 -0.09690315 +vn -0.90268968 0.40944937 -0.13229722 +vn -0.69073743 0.69829732 -0.18778353 +vn -0.81368922 0.55064938 -0.18626622 +vn -0.53641009 0.80887063 -0.24081636 +vn -0.68413542 0.68873185 -0.24001491 +vn -0.52110965 0.79027034 -0.32236241 +vn -0.80522903 0.54240679 -0.23958522 +vn -0.66533115 0.67330846 -0.32247507 +vn -0.34941071 0.84093017 -0.41321739 +vn -0.50715287 0.75604984 -0.41374462 +vn -0.17907830 0.89280924 -0.41330694 +vn -0.16119713 0.82226504 -0.54579822 +vn 0.00176890 0.83776798 -0.54602352 +vn 0.16506360 0.82150994 -0.54577966 +vn -0.31872725 0.77493519 -0.54579153 +vn 0.32222738 0.77311250 -0.54632095 +vn 0.13426298 0.69346809 -0.70786684 +vn 0.46698615 0.69528317 -0.54635634 +vn 0.26783782 0.65350965 -0.70794636 +vn 0.38946376 0.58909064 -0.70801850 +vn 0.59370259 0.59074745 -0.54638329 +vn 0.49749141 0.50139375 -0.70788884 +vn 0.69696020 0.46422361 -0.54657381 +vn 0.58501374 0.39541454 -0.70810046 +vn 0.38338804 0.40407136 -0.83050584 +vn 0.45575202 0.32056557 -0.83037812 +vn 0.65081825 0.27375497 -0.70816229 +vn 0.29774777 0.47093545 -0.83040115 +vn 0.77493519 0.31872725 -0.54579153 +vn 0.19969947 0.51967732 -0.83069586 +vn 0.84093017 0.34941071 -0.41321739 +vn 0.09458224 0.54882353 -0.83057025 +vn 0.87687109 0.35647976 -0.32252018 +vn -0.00326965 0.70635451 -0.70785070 +vn 0.89741496 0.36859186 -0.24245915 +vn -0.14066533 0.69219370 -0.70787086 +vn 0.90987060 0.37109706 -0.18553291 +vn -0.01420194 0.55656689 -0.83068141 +vn -0.27375497 0.65081825 -0.70816229 +vn -0.12239036 0.54305826 -0.83072759 +vn 0.05681455 0.35521746 -0.93305555 +vn -0.01331212 0.35934103 -0.93311136 +vn 0.12473109 0.33746101 -0.93303924 +vn 0.00961222 0.19817733 -0.98011905 +vn 0.18852895 0.30637399 -0.93305510 +vn 0.04771523 0.19219326 -0.98019641 +vn 0.08472630 0.17912408 -0.98017142 +vn 0.24426152 0.26381850 -0.93313242 +vn 0.11857183 0.15857283 -0.98020170 +vn 0.29194178 0.21005135 -0.93308543 +vn 0.14664860 0.13304284 -0.98020089 +vn 0.00000000 0.00000000 -1.00000000 +vn 0.16995856 0.10187265 -0.98017144 +vn 0.32706027 0.15003192 -0.93301769 +vn 0.18625415 0.06738377 -0.98018816 +vn 0.50856992 0.22687012 -0.83059412 +vn 0.35005490 0.08303386 -0.93304177 +vn 0.54305826 0.12239036 -0.83072759 +vn 0.19619058 0.02831884 -0.98015677 +vn 0.35934103 0.01331212 -0.93311136 +vn 0.69219370 0.14066533 -0.70787086 +vn 0.55656689 0.01420194 -0.83068141 +vn 0.19817733 -0.00961222 -0.98011905 +vn 0.35521746 -0.05681455 -0.93305555 +vn 0.19219326 -0.04771523 -0.98019641 +vn 0.54882353 -0.09458224 -0.83057025 +vn 0.33746101 -0.12473109 -0.93303924 +vn 0.17912408 -0.08472630 -0.98017142 +vn 0.70635451 0.00326965 -0.70785070 +vn 0.51967732 -0.19969947 -0.83069586 +vn 0.82226504 0.16119713 -0.54579822 +vn 0.69346809 -0.13426298 -0.70786684 +vn 0.83776798 -0.00176890 -0.54602352 +vn 0.89280924 0.17907830 -0.41330694 +vn 0.82150994 -0.16506360 -0.54577966 +vn 0.92865136 0.17971955 -0.32451123 +vn 0.91034654 0.00160335 -0.41384370 +vn 0.95230889 0.18648959 -0.24151482 +vn 0.94607570 -0.00566824 -0.32389603 +vn 0.89329270 -0.17588605 -0.41363299 +vn 0.65350965 -0.26783782 -0.70794636 +vn 0.77311250 -0.32222738 -0.54632095 +vn 0.92684020 -0.19001000 -0.32382625 +vn 0.47093545 -0.29774777 -0.83040115 +vn 0.84209029 -0.34701208 -0.41287596 +vn 0.58909064 -0.38946376 -0.70801850 +vn 0.69528317 -0.46698615 -0.54635634 +vn 0.30637399 -0.18852895 -0.93305510 +vn 0.40407136 -0.38338804 -0.83050584 +vn 0.15857283 -0.11857183 -0.98020170 +vn 0.26381850 -0.24426152 -0.93313242 +vn 0.13304284 -0.14664860 -0.98020089 +vn 0.21005135 -0.29194178 -0.93308543 +vn 0.10187265 -0.16995856 -0.98017144 +vn 0.32056557 -0.45575202 -0.83037812 +vn 0.15003192 -0.32706027 -0.93301769 +vn 0.50139375 -0.49749141 -0.70788884 +vn 0.06738377 -0.18625415 -0.98018816 +vn 0.59074745 -0.59370259 -0.54638329 +vn 0.08303386 -0.35005490 -0.93304177 +vn 0.39541454 -0.58501374 -0.70810046 +vn 0.22687012 -0.50856992 -0.83059412 +vn 0.27375497 -0.65081825 -0.70816229 +vn 0.02831884 -0.19619058 -0.98015677 +vn 0.12239036 -0.54305826 -0.83072759 +vn 0.01331212 -0.35934103 -0.93311136 +vn -0.00961222 -0.19817733 -0.98011905 +vn 0.01420194 -0.55656689 -0.83068141 +vn -0.05681455 -0.35521746 -0.93305555 +vn -0.04771523 -0.19219326 -0.98019641 +vn 0.14066533 -0.69219370 -0.70787086 +vn -0.09458224 -0.54882353 -0.83057025 +vn -0.12473109 -0.33746101 -0.93303924 +vn -0.08472630 -0.17912408 -0.98017142 +vn 0.00326965 -0.70635451 -0.70785070 +vn -0.19969947 -0.51967732 -0.83069586 +vn -0.18852895 -0.30637399 -0.93305510 +vn -0.11857183 -0.15857283 -0.98020170 +vn -0.13426298 -0.69346809 -0.70786684 +vn -0.29774777 -0.47093545 -0.83040115 +vn -0.24426152 -0.26381850 -0.93313242 +vn -0.14664860 -0.13304284 -0.98020089 +vn -0.26783782 -0.65350965 -0.70794636 +vn -0.38338804 -0.40407136 -0.83050584 +vn -0.29194178 -0.21005135 -0.93308543 +vn -0.16995856 -0.10187265 -0.98017144 +vn -0.38946376 -0.58909064 -0.70801850 +vn -0.45575202 -0.32056557 -0.83037812 +vn -0.32706027 -0.15003192 -0.93301769 +vn -0.18625415 -0.06738377 -0.98018816 +vn -0.49749141 -0.50139375 -0.70788884 +vn -0.50856992 -0.22687012 -0.83059412 +vn -0.35005490 -0.08303386 -0.93304177 +vn -0.19619058 -0.02831884 -0.98015677 +vn -0.58501374 -0.39541454 -0.70810046 +vn -0.54305826 -0.12239036 -0.83072759 +vn -0.35934103 -0.01331212 -0.93311136 +vn -0.19817733 0.00961222 -0.98011905 +vn -0.65081825 -0.27375497 -0.70816229 +vn -0.55656689 -0.01420194 -0.83068141 +vn -0.35521746 0.05681455 -0.93305555 +vn -0.19219326 0.04771523 -0.98019641 +vn -0.69219370 -0.14066533 -0.70787086 +vn -0.54882353 0.09458224 -0.83057025 +vn -0.33746101 0.12473109 -0.93303924 +vn -0.17912408 0.08472630 -0.98017142 +vn -0.70635451 -0.00326965 -0.70785070 +vn -0.51967732 0.19969947 -0.83069586 +vn -0.30637399 0.18852895 -0.93305510 +vn -0.15857283 0.11857183 -0.98020170 +vn -0.69346809 0.13426298 -0.70786684 +vn -0.47093545 0.29774777 -0.83040115 +vn -0.26381850 0.24426152 -0.93313242 +vn -0.13304284 0.14664860 -0.98020089 +vn -0.65350965 0.26783782 -0.70794636 +vn -0.40407136 0.38338804 -0.83050584 +vn -0.21005135 0.29194178 -0.93308543 +vn -0.10187265 0.16995856 -0.98017144 +vn -0.58909064 0.38946376 -0.70801850 +vn -0.06738377 0.18625415 -0.98018816 +vn -0.15003192 0.32706027 -0.93301769 +vn -0.02831884 0.19619058 -0.98015677 +vn -0.08303386 0.35005490 -0.93304177 +vn -0.22687012 0.50856992 -0.83059412 +vn -0.32056557 0.45575202 -0.83037812 +vn -0.39541454 0.58501374 -0.70810046 +vn -0.50139375 0.49749141 -0.70788884 +vn -0.46422361 0.69696020 -0.54657381 +vn -0.59074745 0.59370259 -0.54638329 +vn -0.64483346 0.64242154 -0.41410673 +vn -0.69528317 0.46698615 -0.54635634 +vn -0.75789007 0.50450656 -0.41361308 +vn -0.78398088 0.52988987 -0.32340487 +vn -0.77311250 0.32222738 -0.54632095 +vn -0.84209029 0.34701208 -0.41287596 +vn -0.87206726 0.36704514 -0.32369207 +vn -0.82150994 0.16506360 -0.54577966 +vn -0.89329270 0.17588605 -0.41363299 +vn -0.83776798 0.00176890 -0.54602352 +vn -0.91034654 -0.00160335 -0.41384370 +vn -0.92684020 0.19001000 -0.32382625 +vn -0.94607570 0.00566824 -0.32389603 +vn -0.82226504 -0.16119713 -0.54579822 +vn -0.89280924 -0.17907830 -0.41330694 +vn -0.77493519 -0.31872725 -0.54579153 +vn -0.84093017 -0.34941071 -0.41321739 +vn -0.92865136 -0.17971955 -0.32451123 +vn -0.87687109 -0.35647976 -0.32252018 +vn -0.69696020 -0.46422361 -0.54657381 +vn -0.75604984 -0.50715287 -0.41374462 +vn -0.59370259 -0.59074745 -0.54638329 +vn -0.64242154 -0.64483346 -0.41410673 +vn -0.79027034 -0.52110965 -0.32236241 +vn -0.67330846 -0.66533115 -0.32247507 +vn -0.46698615 -0.69528317 -0.54635634 +vn -0.50450656 -0.75789007 -0.41361308 +vn -0.32222738 -0.77311250 -0.54632095 +vn -0.34701208 -0.84209029 -0.41287596 +vn -0.52988987 -0.78398088 -0.32340487 +vn -0.36704514 -0.87206726 -0.32369207 +vn -0.16506360 -0.82150994 -0.54577966 +vn -0.17588605 -0.89329270 -0.41363299 +vn -0.00176890 -0.83776798 -0.54602352 +vn 0.00160335 -0.91034654 -0.41384370 +vn -0.19001000 -0.92684020 -0.32382625 +vn -0.00566824 -0.94607570 -0.32389603 +vn 0.16119713 -0.82226504 -0.54579822 +vn 0.17907830 -0.89280924 -0.41330694 +vn 0.31872725 -0.77493519 -0.54579153 +vn 0.34941071 -0.84093017 -0.41321739 +vn 0.17971955 -0.92865136 -0.32451123 +vn 0.35647976 -0.87687109 -0.32252018 +vn 0.46422361 -0.69696020 -0.54657381 +vn 0.50715287 -0.75604984 -0.41374462 +vn 0.64483346 -0.64242154 -0.41410673 +vn 0.52110965 -0.79027034 -0.32236241 +vn 0.66533115 -0.67330846 -0.32247507 +vn 0.75789007 -0.50450656 -0.41361308 +vn 0.78398088 -0.52988987 -0.32340487 +vn 0.87206726 -0.36704514 -0.32369207 +vn 0.80522903 -0.54240679 -0.23958522 +vn 0.89544181 -0.37469235 -0.24039469 +vn 0.95126383 -0.19252786 -0.24089448 +vn 0.97093617 -0.00382254 -0.23930805 +vn 0.96270217 -0.19702028 -0.18543877 +vn 0.96531921 0.18554056 -0.18366690 +vn 0.98279270 -0.00546951 -0.18463095 +vn 0.92765612 0.34909028 -0.13262770 +vn 0.97802493 0.16071959 -0.13280232 +vn 0.91709479 0.38662175 -0.09726645 +vn 0.97515008 0.19963704 -0.09605924 +vn 0.97872822 0.19735458 -0.05605574 +vn 0.99051117 -0.03216652 -0.13361491 +vn 0.99540152 0.00621443 -0.09558862 +vn 0.99852106 0.00350389 -0.05425317 +vn 0.98011725 0.19624877 -0.02926778 +vn 0.99960330 0.00240768 -0.02806135 +vn 0.97141781 0.14993482 0.18402986 +vn 0.98695690 0.00345646 0.16094763 +vn 0.74098957 -0.06280816 0.66857280 +vn 0.95491455 -0.23299890 0.18398291 +vn 0.98107075 -0.19195965 -0.02552794 +vn 0.66058057 -0.34143414 0.66862249 +vn 0.91288012 -0.37467635 0.16207261 +vn 0.98010740 -0.19051762 -0.05561047 +vn 0.92456867 -0.38030042 -0.02333165 +vn 0.79302940 -0.58065079 0.18425264 +vn 0.47969863 -0.56828161 0.66853962 +vn 0.22577367 -0.70849140 0.66863008 +vn 0.70032569 -0.69545353 0.16089844 +vn 0.51045103 -0.84006746 0.18364752 +vn 0.83178967 -0.55427418 -0.03010118 +vn 0.70858424 -0.70512444 -0.02660623 +vn 0.92349806 -0.37922611 -0.05778309 +vn 0.83188443 -0.55228524 -0.05430756 +vn 0.97744344 -0.18774753 -0.09672224 +vn 0.92174706 -0.37548920 -0.09690315 +vn 0.96535917 -0.22486546 -0.13235259 +vn 0.83063362 -0.54826987 -0.09720046 +vn 0.90548528 -0.38099378 -0.18692282 +vn 0.90268968 -0.40944937 -0.13229722 +vn 0.81368922 -0.55064938 -0.18626622 +vn 0.80587781 -0.57746754 -0.13073714 +vn 0.68413542 -0.68873185 -0.24001491 +vn 0.69073743 -0.69829732 -0.18778353 +vn 0.53641009 -0.80887063 -0.24081636 +vn 0.67777935 -0.72364692 -0.13019330 +vn 0.36859186 -0.89741496 -0.24245915 +vn 0.54109652 -0.82010465 -0.18612609 +vn 0.18648959 -0.95230889 -0.24151482 +vn 0.37109706 -0.90987060 -0.18553291 +vn 0.52330802 -0.84189089 -0.13178937 +vn -0.00382254 -0.97093617 -0.23930805 +vn 0.18554056 -0.96531921 -0.18366690 +vn 0.34909028 -0.92765612 -0.13262770 +vn -0.19252786 -0.95126383 -0.24089448 +vn -0.00546951 -0.98279270 -0.18463095 +vn 0.16071959 -0.97802493 -0.13280232 +vn -0.37469235 -0.89544181 -0.24039469 +vn -0.19702028 -0.96270217 -0.18543877 +vn -0.03216652 -0.99051117 -0.13361491 +vn -0.54240679 -0.80522903 -0.23958522 +vn -0.38099378 -0.90548528 -0.18692282 +vn -0.22486546 -0.96535917 -0.13235259 +vn -0.68873185 -0.68413542 -0.24001491 +vn -0.55064938 -0.81368922 -0.18626622 +vn -0.40944937 -0.90268968 -0.13229722 +vn -0.80887063 -0.53641009 -0.24081636 +vn -0.69829732 -0.69073743 -0.18778353 +vn -0.57746754 -0.80587781 -0.13073714 +vn -0.89741496 -0.36859186 -0.24245915 +vn -0.82010465 -0.54109652 -0.18612609 +vn -0.72364692 -0.67777935 -0.13019330 +vn -0.95230889 -0.18648959 -0.24151482 +vn -0.90987060 -0.37109706 -0.18553291 +vn -0.84189089 -0.52330802 -0.13178937 +vn -0.97093617 0.00382254 -0.23930805 +vn -0.96531921 -0.18554056 -0.18366690 +vn -0.92765612 -0.34909028 -0.13262770 +vn -0.95126383 0.19252786 -0.24089448 +vn -0.98279270 0.00546951 -0.18463095 +vn -0.97802493 -0.16071959 -0.13280232 +vn -0.89544181 0.37469235 -0.24039469 +vn -0.96270217 0.19702028 -0.18543877 +vn -0.90548528 0.38099378 -0.18692282 +vn -0.96535917 0.22486546 -0.13235259 +vn -0.99051117 0.03216652 -0.13361491 +vn -0.97744344 0.18774753 -0.09672224 +vn -0.99540152 -0.00621443 -0.09558862 +vn -0.97515008 -0.19963704 -0.09605924 +vn -0.91709479 -0.38662175 -0.09726645 +vn -0.82407370 -0.55842668 -0.09519553 +vn -0.69940606 -0.70832875 -0.09540204 +vn -0.54826987 -0.83063362 -0.09720046 +vn -0.37548920 -0.92174706 -0.09690315 +vn -0.18774753 -0.97744344 -0.09672224 +vn 0.00621443 -0.99540152 -0.09558862 +vn 0.00350389 -0.99852106 -0.05425317 +vn 0.19963704 -0.97515008 -0.09605924 +vn 0.00240768 -0.99960330 -0.02806135 +vn 0.19735458 -0.97872822 -0.05605574 +vn 0.38662175 -0.91709479 -0.09726645 +vn 0.00345646 -0.98695690 0.16094763 +vn 0.55842668 -0.82407370 -0.09519553 +vn 0.14993482 -0.97141781 0.18402986 +vn 0.19624877 -0.98011725 -0.02926778 +vn 0.38122216 -0.91016945 0.16205321 +vn 0.38551426 -0.92239839 -0.02366343 +vn 0.38546212 -0.92093856 -0.05736827 +vn 0.55800793 -0.82951178 -0.02318090 +vn 0.55805444 -0.82783510 -0.05713393 +vn 0.70851735 -0.70357372 -0.05465513 +vn 0.70832875 -0.69940606 -0.09540204 + +usemtl sky_system +s 1 +f 1/1/1 2/2/2 3/3/3 +f 2/2/2 4/4/4 3/3/3 +f 5/5/5 4/4/4 2/2/2 +f 2/2/2 6/6/6 5/5/5 +f 7/7/7 6/6/6 2/2/2 +f 7/7/7 2/2/2 8/8/8 +f 9/9/9 5/5/5 6/6/6 +f 10/10/10 6/6/6 7/7/7 +f 6/6/6 10/10/10 9/9/9 +f 8/8/8 11/11/11 7/7/7 +f 7/7/7 12/12/12 10/10/10 +f 12/12/12 7/7/7 11/11/11 +f 13/13/13 9/9/9 10/10/10 +f 14/14/14 11/11/11 8/8/8 +f 15/15/15 10/10/10 12/12/12 +f 10/10/10 15/15/15 13/13/13 +f 11/11/11 16/16/16 12/12/12 +f 16/16/16 11/11/11 14/14/14 +f 12/12/12 17/17/17 15/15/15 +f 17/17/17 12/12/12 16/16/16 +f 14/14/14 8/8/8 18/18/18 +f 18/18/18 8/8/8 19/19/19 +f 14/14/14 20/20/20 16/16/16 +f 18/18/18 21/21/21 14/14/14 +f 20/20/20 14/14/14 21/21/21 +f 16/16/16 22/22/22 17/17/17 +f 22/22/22 16/16/16 20/20/20 +f 23/23/23 21/21/21 18/18/18 +f 21/21/21 24/24/24 20/20/20 +f 24/24/24 21/21/21 23/23/23 +f 20/20/20 25/25/25 22/22/22 +f 25/25/25 20/20/20 24/24/24 +f 23/23/23 18/18/18 26/26/26 +f 26/26/26 18/18/18 19/19/19 +f 23/23/23 27/27/27 24/24/24 +f 26/26/26 28/28/28 23/23/23 +f 27/27/27 23/23/23 28/28/28 +f 24/24/24 29/29/29 25/25/25 +f 29/29/29 24/24/24 27/27/27 +f 30/30/30 28/28/28 26/26/26 +f 28/28/28 31/31/31 27/27/27 +f 31/31/31 28/28/28 30/30/30 +f 27/27/27 32/32/32 29/29/29 +f 32/32/32 27/27/27 31/31/31 +f 30/30/30 26/26/26 33/33/33 +f 33/33/33 26/26/26 19/19/19 +f 30/30/30 34/34/34 31/31/31 +f 33/33/33 35/35/35 30/30/30 +f 34/34/34 30/30/30 35/35/35 +f 31/31/31 36/36/36 32/32/32 +f 36/36/36 31/31/31 34/34/34 +f 37/37/37 35/35/35 33/33/33 +f 35/35/35 38/38/38 34/34/34 +f 38/38/38 35/35/35 37/37/37 +f 34/34/34 39/39/39 36/36/36 +f 39/39/39 34/34/34 38/38/38 +f 37/37/37 33/33/33 40/40/40 +f 40/40/40 33/33/33 19/19/19 +f 37/37/37 41/41/41 38/38/38 +f 40/40/40 42/42/42 37/37/37 +f 41/41/41 37/37/37 42/42/42 +f 38/38/38 43/43/43 39/39/39 +f 43/43/43 38/38/38 41/41/41 +f 44/44/44 42/42/42 40/40/40 +f 42/42/42 45/45/45 41/41/41 +f 45/45/45 42/42/42 44/44/44 +f 41/41/41 46/46/46 43/43/43 +f 46/46/46 41/41/41 45/45/45 +f 47/47/47 44/44/44 40/40/40 +f 44/44/44 48/48/48 45/45/45 +f 48/48/48 44/44/44 47/47/47 +f 45/45/45 49/49/49 46/46/46 +f 49/49/49 45/45/45 48/48/48 +f 40/40/40 50/50/50 47/47/47 +f 50/50/50 40/40/40 19/19/19 +f 47/47/47 51/51/51 48/48/48 +f 52/52/52 47/47/47 50/50/50 +f 51/51/51 47/47/47 52/52/52 +f 53/53/53 50/50/50 19/19/19 +f 52/52/52 50/50/50 53/53/53 +f 54/54/54 55/55/55 19/19/19 +f 55/55/55 53/53/53 19/19/19 +f 53/53/53 56/56/56 52/52/52 +f 57/57/57 53/53/53 55/55/55 +f 57/57/57 56/56/56 53/53/53 +f 58/58/58 52/52/52 56/56/56 +f 52/52/52 58/58/58 51/51/51 +f 59/59/59 56/56/56 57/57/57 +f 56/56/56 59/59/59 58/58/58 +f 55/55/55 60/60/60 57/57/57 +f 61/61/61 51/51/51 58/58/58 +f 62/62/62 57/57/57 60/60/60 +f 57/57/57 62/62/62 59/59/59 +f 63/63/63 60/60/60 55/55/55 +f 63/63/63 55/55/55 64/64/64 +f 65/65/65 58/58/58 59/59/59 +f 58/58/58 65/65/65 61/61/61 +f 66/66/66 59/59/59 62/62/62 +f 59/59/59 66/66/66 65/65/65 +f 60/60/60 67/67/67 62/62/62 +f 67/67/67 60/60/60 63/63/63 +f 62/62/62 68/68/68 66/66/66 +f 68/68/68 62/62/62 67/67/67 +f 69/69/69 65/65/65 66/66/66 +f 63/63/63 70/70/70 67/67/67 +f 71/71/71 66/66/66 68/68/68 +f 66/66/66 71/71/71 69/69/69 +f 67/67/67 72/72/72 68/68/68 +f 72/72/72 67/67/67 70/70/70 +f 68/68/68 73/73/73 71/71/71 +f 73/73/73 68/68/68 72/72/72 +f 70/70/70 63/63/63 74/74/74 +f 64/64/64 74/74/74 63/63/63 +f 70/70/70 75/75/75 72/72/72 +f 74/74/74 76/76/76 70/70/70 +f 75/75/75 70/70/70 76/76/76 +f 77/77/77 74/74/74 64/64/64 +f 76/76/76 74/74/74 77/77/77 +f 77/77/77 64/64/64 78/78/78 +f 78/78/78 64/64/64 3/3/3 +f 77/77/77 79/79/79 76/76/76 +f 78/78/78 80/80/80 77/77/77 +f 79/79/79 77/77/77 80/80/80 +f 81/81/81 76/76/76 79/79/79 +f 76/76/76 81/81/81 75/75/75 +f 80/80/80 82/82/82 79/79/79 +f 83/83/83 72/72/72 75/75/75 +f 72/72/72 83/83/83 73/73/73 +f 84/84/84 75/75/75 81/81/81 +f 75/75/75 84/84/84 83/83/83 +f 79/79/79 85/85/85 81/81/81 +f 85/85/85 79/79/79 82/82/82 +f 81/81/81 86/86/86 84/84/84 +f 86/86/86 81/81/81 85/85/85 +f 87/87/87 83/83/83 84/84/84 +f 88/88/88 84/84/84 86/86/86 +f 84/84/84 88/88/88 87/87/87 +f 85/85/85 89/89/89 86/86/86 +f 83/83/83 87/87/87 90/90/90 +f 90/90/90 73/73/73 83/83/83 +f 86/86/86 91/91/91 88/88/88 +f 91/91/91 86/86/86 89/89/89 +f 73/73/73 90/90/90 92/92/92 +f 92/92/92 71/71/71 73/73/73 +f 89/89/89 85/85/85 93/93/93 +f 82/82/82 93/93/93 85/85/85 +f 71/71/71 92/92/92 94/94/94 +f 94/94/94 69/69/69 71/71/71 +f 92/92/92 90/90/90 95/95/95 +f 94/94/94 92/92/92 96/96/96 +f 95/95/95 96/96/96 92/92/92 +f 69/69/69 94/94/94 97/97/97 +f 98/98/98 95/95/95 90/90/90 +f 90/90/90 87/87/87 98/98/98 +f 97/97/97 94/94/94 99/99/99 +f 96/96/96 99/99/99 94/94/94 +f 100/100/100 98/98/98 87/87/87 +f 87/87/87 88/88/88 100/100/100 +f 95/95/95 98/98/98 101/101/101 +f 102/102/102 100/100/100 88/88/88 +f 88/88/88 91/91/91 102/102/102 +f 98/98/98 100/100/100 103/103/103 +f 103/103/103 101/101/101 98/98/98 +f 100/100/100 102/102/102 104/104/104 +f 104/104/104 103/103/103 100/100/100 +f 105/105/105 102/102/102 91/91/91 +f 106/106/106 104/104/104 102/102/102 +f 102/102/102 105/105/105 106/106/106 +f 103/103/103 104/104/104 107/107/107 +f 91/91/91 108/108/108 105/105/105 +f 89/89/89 108/108/108 91/91/91 +f 109/109/109 107/107/107 104/104/104 +f 104/104/104 106/106/106 109/109/109 +f 107/107/107 110/110/110 103/103/103 +f 101/101/101 103/103/103 110/110/110 +f 107/107/107 109/109/109 111/111/111 +f 110/110/110 107/107/107 112/112/112 +f 111/111/111 112/112/112 107/107/107 +f 110/110/110 113/113/113 101/101/101 +f 112/112/112 114/114/114 110/110/110 +f 113/113/113 110/110/110 114/114/114 +f 115/115/115 101/101/101 113/113/113 +f 101/101/101 115/115/115 95/95/95 +f 96/96/96 95/95/95 115/115/115 +f 115/115/115 116/116/116 96/96/96 +f 99/99/99 96/96/96 116/116/116 +f 113/113/113 117/117/117 115/115/115 +f 116/116/116 115/115/115 117/117/117 +f 114/114/114 118/118/118 113/113/113 +f 117/117/117 113/113/113 118/118/118 +f 116/116/116 119/119/119 99/99/99 +f 117/117/117 120/120/120 116/116/116 +f 119/119/119 116/116/116 120/120/120 +f 118/118/118 121/121/121 117/117/117 +f 120/120/120 117/117/117 121/121/121 +f 122/122/122 99/99/99 119/119/119 +f 99/99/99 122/122/122 97/97/97 +f 120/120/120 123/123/123 119/119/119 +f 119/119/119 124/124/124 122/122/122 +f 124/124/124 119/119/119 123/123/123 +f 125/125/125 97/97/97 122/122/122 +f 123/123/123 120/120/120 126/126/126 +f 121/121/121 126/126/126 120/120/120 +f 127/127/127 122/122/122 124/124/124 +f 122/122/122 127/127/127 125/125/125 +f 123/123/123 128/128/128 124/124/124 +f 129/129/129 97/97/97 125/125/125 +f 97/97/97 129/129/129 69/69/69 +f 65/65/65 69/69/69 129/129/129 +f 129/129/129 61/61/61 65/65/65 +f 125/125/125 130/130/130 129/129/129 +f 61/61/61 129/129/129 130/130/130 +f 130/130/130 125/125/125 131/131/131 +f 131/131/131 125/125/125 127/127/127 +f 130/130/130 132/132/132 61/61/61 +f 51/51/51 61/61/61 132/132/132 +f 132/132/132 48/48/48 51/51/51 +f 48/48/48 132/132/132 49/49/49 +f 132/132/132 130/130/130 133/133/133 +f 133/133/133 49/49/49 132/132/132 +f 131/131/131 133/133/133 130/130/130 +f 49/49/49 133/133/133 134/134/134 +f 134/134/134 46/46/46 49/49/49 +f 133/133/133 131/131/131 135/135/135 +f 135/135/135 134/134/134 133/133/133 +f 46/46/46 134/134/134 136/136/136 +f 136/136/136 43/43/43 46/46/46 +f 134/134/134 135/135/135 137/137/137 +f 137/137/137 136/136/136 134/134/134 +f 135/135/135 131/131/131 138/138/138 +f 127/127/127 138/138/138 131/131/131 +f 137/137/137 135/135/135 139/139/139 +f 138/138/138 139/139/139 135/135/135 +f 138/138/138 127/127/127 140/140/140 +f 124/124/124 140/140/140 127/127/127 +f 140/140/140 124/124/124 128/128/128 +f 140/140/140 141/141/141 138/138/138 +f 139/139/139 138/138/138 141/141/141 +f 128/128/128 142/142/142 140/140/140 +f 141/141/141 140/140/140 142/142/142 +f 141/141/141 143/143/143 139/139/139 +f 142/142/142 144/144/144 141/141/141 +f 143/143/143 141/141/141 144/144/144 +f 142/142/142 128/128/128 145/145/145 +f 144/144/144 142/142/142 146/146/146 +f 145/145/145 146/146/146 142/142/142 +f 147/147/147 145/145/145 128/128/128 +f 128/128/128 123/123/123 147/147/147 +f 126/126/126 147/147/147 123/123/123 +f 145/145/145 147/147/147 148/148/148 +f 147/147/147 126/126/126 149/149/149 +f 149/149/149 148/148/148 147/147/147 +f 150/150/150 149/149/149 126/126/126 +f 126/126/126 121/121/121 150/150/150 +f 148/148/148 151/151/151 145/145/145 +f 146/146/146 145/145/145 151/151/151 +f 152/152/152 150/150/150 121/121/121 +f 121/121/121 118/118/118 152/152/152 +f 149/149/149 150/150/150 153/153/153 +f 154/154/154 152/152/152 118/118/118 +f 118/118/118 114/114/114 154/154/154 +f 150/150/150 152/152/152 155/155/155 +f 155/155/155 153/153/153 150/150/150 +f 152/152/152 154/154/154 156/156/156 +f 156/156/156 155/155/155 152/152/152 +f 157/157/157 154/154/154 114/114/114 +f 114/114/114 112/112/112 157/157/157 +f 158/158/158 156/156/156 154/154/154 +f 154/154/154 157/157/157 158/158/158 +f 159/159/159 157/157/157 112/112/112 +f 112/112/112 111/111/111 159/159/159 +f 160/160/160 158/158/158 157/157/157 +f 157/157/157 159/159/159 160/160/160 +f 156/156/156 158/158/158 161/161/161 +f 158/158/158 160/160/160 162/162/162 +f 162/162/162 161/161/161 158/158/158 +f 163/163/163 160/160/160 159/159/159 +f 161/161/161 164/164/164 156/156/156 +f 155/155/155 156/156/156 164/164/164 +f 165/165/165 159/159/159 111/111/111 +f 159/159/159 165/165/165 163/163/163 +f 164/164/164 166/166/166 155/155/155 +f 153/153/153 155/155/155 166/166/166 +f 111/111/111 167/167/167 165/165/165 +f 167/167/167 111/111/111 109/109/109 +f 166/166/166 168/168/168 153/153/153 +f 109/109/109 169/169/169 167/167/167 +f 169/169/169 109/109/109 106/106/106 +f 170/170/170 153/153/153 168/168/168 +f 153/153/153 170/170/170 149/149/149 +f 148/148/148 149/149/149 170/170/170 +f 106/106/106 171/171/171 169/169/169 +f 171/171/171 106/106/106 105/105/105 +f 170/170/170 172/172/172 148/148/148 +f 151/151/151 148/148/148 172/172/172 +f 105/105/105 173/173/173 171/171/171 +f 173/173/173 105/105/105 108/108/108 +f 172/172/172 170/170/170 174/174/174 +f 168/168/168 174/174/174 170/170/170 +f 172/172/172 175/175/175 151/151/151 +f 174/174/174 176/176/176 172/172/172 +f 175/175/175 172/172/172 176/176/176 +f 174/174/174 168/168/168 177/177/177 +f 176/176/176 174/174/174 178/178/178 +f 177/177/177 178/178/178 174/174/174 +f 179/179/179 177/177/177 168/168/168 +f 168/168/168 166/166/166 179/179/179 +f 180/180/180 178/178/178 177/177/177 +f 181/181/181 179/179/179 166/166/166 +f 166/166/166 164/164/164 181/181/181 +f 182/182/182 177/177/177 179/179/179 +f 177/177/177 182/182/182 180/180/180 +f 183/183/183 179/179/179 181/181/181 +f 179/179/179 183/183/183 182/182/182 +f 184/184/184 181/181/181 164/164/164 +f 164/164/164 161/161/161 184/184/184 +f 181/181/181 185/185/185 183/183/183 +f 185/185/185 181/181/181 184/184/184 +f 186/186/186 184/184/184 161/161/161 +f 161/161/161 162/162/162 186/186/186 +f 184/184/184 187/187/187 185/185/185 +f 187/187/187 184/184/184 186/186/186 +f 188/188/188 183/183/183 185/185/185 +f 188/188/188 182/182/182 183/183/183 +f 188/188/188 185/185/185 187/187/187 +f 188/188/188 180/180/180 182/182/182 +f 186/186/186 189/189/189 187/187/187 +f 188/188/188 187/187/187 189/189/189 +f 189/189/189 186/186/186 190/190/190 +f 190/190/190 186/186/186 162/162/162 +f 190/190/190 191/191/191 189/189/189 +f 188/188/188 189/189/189 191/191/191 +f 162/162/162 192/192/192 190/190/190 +f 192/192/192 162/162/162 160/160/160 +f 160/160/160 163/163/163 192/192/192 +f 191/191/191 190/190/190 193/193/193 +f 193/193/193 190/190/190 192/192/192 +f 194/194/194 192/192/192 163/163/163 +f 192/192/192 194/194/194 193/193/193 +f 193/193/193 195/195/195 191/191/191 +f 188/188/188 191/191/191 195/195/195 +f 196/196/196 193/193/193 194/194/194 +f 195/195/195 193/193/193 196/196/196 +f 163/163/163 197/197/197 194/194/194 +f 197/197/197 163/163/163 165/165/165 +f 194/194/194 198/198/198 196/196/196 +f 198/198/198 194/194/194 197/197/197 +f 196/196/196 199/199/199 195/195/195 +f 188/188/188 195/195/195 199/199/199 +f 199/199/199 196/196/196 200/200/200 +f 200/200/200 196/196/196 198/198/198 +f 200/200/200 201/201/201 199/199/199 +f 188/188/188 199/199/199 201/201/201 +f 198/198/198 202/202/202 200/200/200 +f 201/201/201 200/200/200 203/203/203 +f 203/203/203 200/200/200 202/202/202 +f 203/203/203 204/204/204 201/201/201 +f 188/188/188 201/201/201 204/204/204 +f 202/202/202 198/198/198 205/205/205 +f 197/197/197 205/205/205 198/198/198 +f 202/202/202 206/206/206 203/203/203 +f 205/205/205 197/197/197 207/207/207 +f 165/165/165 207/207/207 197/197/197 +f 207/207/207 165/165/165 167/167/167 +f 205/205/205 208/208/208 202/202/202 +f 206/206/206 202/202/202 208/208/208 +f 207/207/207 209/209/209 205/205/205 +f 208/208/208 205/205/205 209/209/209 +f 167/167/167 210/210/210 207/207/207 +f 209/209/209 207/207/207 210/210/210 +f 210/210/210 167/167/167 169/169/169 +f 209/209/209 211/211/211 208/208/208 +f 169/169/169 212/212/212 210/210/210 +f 212/212/212 169/169/169 171/171/171 +f 210/210/210 213/213/213 209/209/209 +f 213/213/213 210/210/210 212/212/212 +f 211/211/211 209/209/209 213/213/213 +f 171/171/171 214/214/214 212/212/212 +f 214/214/214 171/171/171 173/173/173 +f 212/212/212 215/215/215 213/213/213 +f 215/215/215 212/212/212 214/214/214 +f 213/213/213 216/216/216 211/211/211 +f 216/216/216 213/213/213 215/215/215 +f 217/217/217 208/208/208 211/211/211 +f 208/208/208 217/217/217 206/206/206 +f 218/218/218 211/211/211 216/216/216 +f 211/211/211 218/218/218 217/217/217 +f 215/215/215 219/219/219 216/216/216 +f 220/220/220 206/206/206 217/217/217 +f 216/216/216 221/221/221 218/218/218 +f 221/221/221 216/216/216 219/219/219 +f 222/222/222 217/217/217 218/218/218 +f 217/217/217 222/222/222 220/220/220 +f 223/223/223 218/218/218 221/221/221 +f 218/218/218 223/223/223 222/222/222 +f 206/206/206 220/220/220 224/224/224 +f 224/224/224 203/203/203 206/206/206 +f 204/204/204 203/203/203 224/224/224 +f 225/225/225 220/220/220 222/222/222 +f 224/224/224 226/226/226 204/204/204 +f 227/227/227 224/224/224 220/220/220 +f 226/226/226 224/224/224 227/227/227 +f 220/220/220 225/225/225 227/227/227 +f 188/188/188 204/204/204 226/226/226 +f 227/227/227 228/228/228 226/226/226 +f 188/188/188 226/226/226 228/228/228 +f 228/228/228 227/227/227 229/229/229 +f 229/229/229 227/227/227 225/225/225 +f 229/229/229 230/230/230 228/228/228 +f 188/188/188 228/228/228 230/230/230 +f 225/225/225 231/231/231 229/229/229 +f 230/230/230 229/229/229 232/232/232 +f 232/232/232 229/229/229 231/231/231 +f 222/222/222 233/233/233 225/225/225 +f 231/231/231 225/225/225 233/233/233 +f 233/233/233 222/222/222 223/223/223 +f 232/232/232 234/234/234 230/230/230 +f 188/188/188 230/230/230 234/234/234 +f 223/223/223 235/235/235 233/233/233 +f 234/234/234 232/232/232 236/236/236 +f 237/237/237 233/233/233 235/235/235 +f 233/233/233 237/237/237 231/231/231 +f 231/231/231 238/238/238 232/232/232 +f 238/238/238 231/231/231 237/237/237 +f 236/236/236 232/232/232 238/238/238 +f 237/237/237 239/239/239 238/238/238 +f 236/236/236 240/240/240 234/234/234 +f 188/188/188 234/234/234 240/240/240 +f 238/238/238 241/241/241 236/236/236 +f 241/241/241 238/238/238 239/239/239 +f 240/240/240 236/236/236 242/242/242 +f 242/242/242 236/236/236 241/241/241 +f 242/242/242 243/243/243 240/240/240 +f 188/188/188 240/240/240 243/243/243 +f 241/241/241 244/244/244 242/242/242 +f 243/243/243 242/242/242 245/245/245 +f 245/245/245 242/242/242 244/244/244 +f 245/245/245 246/246/246 243/243/243 +f 188/188/188 243/243/243 246/246/246 +f 244/244/244 241/241/241 247/247/247 +f 239/239/239 247/247/247 241/241/241 +f 244/244/244 248/248/248 245/245/245 +f 246/246/246 245/245/245 249/249/249 +f 249/249/249 245/245/245 248/248/248 +f 249/249/249 250/250/250 246/246/246 +f 188/188/188 246/246/246 250/250/250 +f 248/248/248 244/244/244 251/251/251 +f 247/247/247 251/251/251 244/244/244 +f 248/248/248 252/252/252 249/249/249 +f 250/250/250 249/249/249 253/253/253 +f 253/253/253 249/249/249 252/252/252 +f 253/253/253 254/254/254 250/250/250 +f 188/188/188 250/250/250 254/254/254 +f 252/252/252 248/248/248 255/255/255 +f 251/251/251 255/255/255 248/248/248 +f 252/252/252 256/256/256 253/253/253 +f 254/254/254 253/253/253 257/257/257 +f 257/257/257 253/253/253 256/256/256 +f 257/257/257 258/258/258 254/254/254 +f 188/188/188 254/254/254 258/258/258 +f 256/256/256 252/252/252 259/259/259 +f 255/255/255 259/259/259 252/252/252 +f 256/256/256 260/260/260 257/257/257 +f 258/258/258 257/257/257 261/261/261 +f 261/261/261 257/257/257 260/260/260 +f 261/261/261 262/262/262 258/258/258 +f 188/188/188 258/258/258 262/262/262 +f 260/260/260 256/256/256 263/263/263 +f 259/259/259 263/263/263 256/256/256 +f 260/260/260 264/264/264 261/261/261 +f 262/262/262 261/261/261 265/265/265 +f 265/265/265 261/261/261 264/264/264 +f 265/265/265 266/266/266 262/262/262 +f 188/188/188 262/262/262 266/266/266 +f 264/264/264 260/260/260 267/267/267 +f 263/263/263 267/267/267 260/260/260 +f 264/264/264 268/268/268 265/265/265 +f 266/266/266 265/265/265 269/269/269 +f 269/269/269 265/265/265 268/268/268 +f 269/269/269 270/270/270 266/266/266 +f 188/188/188 266/266/266 270/270/270 +f 268/268/268 264/264/264 271/271/271 +f 267/267/267 271/271/271 264/264/264 +f 268/268/268 272/272/272 269/269/269 +f 270/270/270 269/269/269 273/273/273 +f 273/273/273 269/269/269 272/272/272 +f 273/273/273 274/274/274 270/270/270 +f 188/188/188 270/270/270 274/274/274 +f 272/272/272 268/268/268 275/275/275 +f 271/271/271 275/275/275 268/268/268 +f 272/272/272 276/276/276 273/273/273 +f 274/274/274 273/273/273 277/277/277 +f 277/277/277 273/273/273 276/276/276 +f 277/277/277 278/278/278 274/274/274 +f 188/188/188 274/274/274 278/278/278 +f 276/276/276 272/272/272 279/279/279 +f 275/275/275 279/279/279 272/272/272 +f 276/276/276 280/280/280 277/277/277 +f 278/278/278 277/277/277 281/281/281 +f 281/281/281 277/277/277 280/280/280 +f 281/281/281 282/282/282 278/278/278 +f 188/188/188 278/278/278 282/282/282 +f 280/280/280 276/276/276 283/283/283 +f 279/279/279 283/283/283 276/276/276 +f 280/280/280 284/284/284 281/281/281 +f 282/282/282 281/281/281 285/285/285 +f 285/285/285 281/281/281 284/284/284 +f 285/285/285 286/286/286 282/282/282 +f 188/188/188 282/282/282 286/286/286 +f 284/284/284 280/280/280 287/287/287 +f 283/283/283 287/287/287 280/280/280 +f 284/284/284 288/288/288 285/285/285 +f 286/286/286 285/285/285 289/289/289 +f 289/289/289 285/285/285 288/288/288 +f 289/289/289 290/290/290 286/286/286 +f 188/188/188 286/286/286 290/290/290 +f 288/288/288 284/284/284 291/291/291 +f 287/287/287 291/291/291 284/284/284 +f 288/288/288 292/292/292 289/289/289 +f 290/290/290 289/289/289 293/293/293 +f 293/293/293 289/289/289 292/292/292 +f 293/293/293 294/294/294 290/290/290 +f 188/188/188 290/290/290 294/294/294 +f 292/292/292 288/288/288 295/295/295 +f 291/291/291 295/295/295 288/288/288 +f 188/188/188 294/294/294 296/296/296 +f 294/294/294 293/293/293 297/297/297 +f 297/297/297 296/296/296 294/294/294 +f 188/188/188 296/296/296 298/298/298 +f 188/188/188 298/298/298 180/180/180 +f 178/178/178 180/180/180 298/298/298 +f 299/299/299 298/298/298 296/296/296 +f 298/298/298 299/299/299 178/178/178 +f 296/296/296 297/297/297 299/299/299 +f 178/178/178 299/299/299 176/176/176 +f 300/300/300 176/176/176 299/299/299 +f 299/299/299 297/297/297 300/300/300 +f 176/176/176 300/300/300 175/175/175 +f 297/297/297 293/293/293 301/301/301 +f 301/301/301 300/300/300 297/297/297 +f 292/292/292 301/301/301 293/293/293 +f 302/302/302 175/175/175 300/300/300 +f 300/300/300 301/301/301 302/302/302 +f 301/301/301 292/292/292 303/303/303 +f 303/303/303 302/302/302 301/301/301 +f 295/295/295 303/303/303 292/292/292 +f 175/175/175 302/302/302 304/304/304 +f 304/304/304 151/151/151 175/175/175 +f 151/151/151 304/304/304 146/146/146 +f 302/302/302 303/303/303 305/305/305 +f 305/305/305 304/304/304 302/302/302 +f 306/306/306 146/146/146 304/304/304 +f 304/304/304 305/305/305 306/306/306 +f 146/146/146 306/306/306 144/144/144 +f 307/307/307 305/305/305 303/303/303 +f 303/303/303 295/295/295 307/307/307 +f 308/308/308 306/306/306 305/305/305 +f 305/305/305 307/307/307 308/308/308 +f 309/309/309 144/144/144 306/306/306 +f 306/306/306 308/308/308 309/309/309 +f 144/144/144 309/309/309 143/143/143 +f 310/310/310 307/307/307 295/295/295 +f 295/295/295 291/291/291 310/310/310 +f 311/311/311 308/308/308 307/307/307 +f 307/307/307 310/310/310 311/311/311 +f 312/312/312 309/309/309 308/308/308 +f 308/308/308 311/311/311 312/312/312 +f 313/313/313 310/310/310 291/291/291 +f 291/291/291 287/287/287 313/313/313 +f 314/314/314 311/311/311 310/310/310 +f 310/310/310 313/313/313 314/314/314 +f 315/315/315 313/313/313 287/287/287 +f 287/287/287 283/283/283 315/315/315 +f 316/316/316 314/314/314 313/313/313 +f 313/313/313 315/315/315 316/316/316 +f 311/311/311 314/314/314 317/317/317 +f 317/317/317 312/312/312 311/311/311 +f 314/314/314 316/316/316 318/318/318 +f 318/318/318 317/317/317 314/314/314 +f 319/319/319 315/315/315 283/283/283 +f 283/283/283 279/279/279 319/319/319 +f 320/320/320 316/316/316 315/315/315 +f 315/315/315 319/319/319 320/320/320 +f 321/321/321 319/319/319 279/279/279 +f 279/279/279 275/275/275 321/321/321 +f 322/322/322 320/320/320 319/319/319 +f 319/319/319 321/321/321 322/322/322 +f 316/316/316 320/320/320 323/323/323 +f 323/323/323 318/318/318 316/316/316 +f 320/320/320 322/322/322 324/324/324 +f 324/324/324 323/323/323 320/320/320 +f 325/325/325 321/321/321 275/275/275 +f 275/275/275 271/271/271 325/325/325 +f 326/326/326 322/322/322 321/321/321 +f 321/321/321 325/325/325 326/326/326 +f 327/327/327 325/325/325 271/271/271 +f 271/271/271 267/267/267 327/327/327 +f 328/328/328 326/326/326 325/325/325 +f 325/325/325 327/327/327 328/328/328 +f 322/322/322 326/326/326 329/329/329 +f 329/329/329 324/324/324 322/322/322 +f 326/326/326 328/328/328 330/330/330 +f 330/330/330 329/329/329 326/326/326 +f 331/331/331 327/327/327 267/267/267 +f 267/267/267 263/263/263 331/331/331 +f 332/332/332 328/328/328 327/327/327 +f 327/327/327 331/331/331 332/332/332 +f 333/333/333 331/331/331 263/263/263 +f 263/263/263 259/259/259 333/333/333 +f 334/334/334 332/332/332 331/331/331 +f 331/331/331 333/333/333 334/334/334 +f 328/328/328 332/332/332 335/335/335 +f 335/335/335 330/330/330 328/328/328 +f 332/332/332 334/334/334 336/336/336 +f 336/336/336 335/335/335 332/332/332 +f 337/337/337 333/333/333 259/259/259 +f 259/259/259 255/255/255 337/337/337 +f 338/338/338 334/334/334 333/333/333 +f 333/333/333 337/337/337 338/338/338 +f 339/339/339 337/337/337 255/255/255 +f 255/255/255 251/251/251 339/339/339 +f 340/340/340 338/338/338 337/337/337 +f 337/337/337 339/339/339 340/340/340 +f 334/334/334 338/338/338 341/341/341 +f 341/341/341 336/336/336 334/334/334 +f 338/338/338 340/340/340 342/342/342 +f 342/342/342 341/341/341 338/338/338 +f 343/343/343 339/339/339 251/251/251 +f 251/251/251 247/247/247 343/343/343 +f 344/344/344 340/340/340 339/339/339 +f 339/339/339 343/343/343 344/344/344 +f 345/345/345 343/343/343 247/247/247 +f 247/247/247 239/239/239 345/345/345 +f 346/346/346 344/344/344 343/343/343 +f 343/343/343 345/345/345 346/346/346 +f 340/340/340 344/344/344 347/347/347 +f 347/347/347 342/342/342 340/340/340 +f 344/344/344 346/346/346 348/348/348 +f 348/348/348 347/347/347 344/344/344 +f 349/349/349 345/345/345 239/239/239 +f 239/239/239 237/237/237 349/349/349 +f 235/235/235 349/349/349 237/237/237 +f 350/350/350 346/346/346 345/345/345 +f 345/345/345 349/349/349 350/350/350 +f 349/349/349 235/235/235 351/351/351 +f 351/351/351 350/350/350 349/349/349 +f 346/346/346 350/350/350 352/352/352 +f 352/352/352 348/348/348 346/346/346 +f 350/350/350 351/351/351 353/353/353 +f 353/353/353 352/352/352 350/350/350 +f 354/354/354 351/351/351 235/235/235 +f 235/235/235 223/223/223 354/354/354 +f 221/221/221 354/354/354 223/223/223 +f 351/351/351 354/354/354 355/355/355 +f 355/355/355 353/353/353 351/351/351 +f 354/354/354 221/221/221 356/356/356 +f 356/356/356 355/355/355 354/354/354 +f 219/219/219 356/356/356 221/221/221 +f 353/353/353 355/355/355 357/357/357 +f 355/355/355 356/356/356 358/358/358 +f 358/358/358 357/357/357 355/355/355 +f 356/356/356 219/219/219 359/359/359 +f 359/359/359 358/358/358 356/356/356 +f 360/360/360 359/359/359 219/219/219 +f 219/219/219 215/215/215 360/360/360 +f 214/214/214 360/360/360 215/215/215 +f 358/358/358 359/359/359 361/361/361 +f 360/360/360 214/214/214 362/362/362 +f 173/173/173 362/362/362 214/214/214 +f 359/359/359 360/360/360 363/363/363 +f 362/362/362 363/363/363 360/360/360 +f 363/363/363 361/361/361 359/359/359 +f 362/362/362 173/173/173 364/364/364 +f 108/108/108 364/364/364 173/173/173 +f 363/363/363 362/362/362 365/365/365 +f 364/364/364 365/365/365 362/362/362 +f 366/366/366 364/364/364 108/108/108 +f 108/108/108 89/89/89 366/366/366 +f 93/93/93 366/366/366 89/89/89 +f 364/364/364 366/366/366 367/367/367 +f 367/367/367 365/365/365 364/364/364 +f 366/366/366 93/93/93 368/368/368 +f 368/368/368 367/367/367 366/366/366 +f 365/365/365 369/369/369 363/363/363 +f 361/361/361 363/363/363 369/369/369 +f 365/365/365 367/367/367 370/370/370 +f 370/370/370 369/369/369 365/365/365 +f 367/367/367 368/368/368 371/371/371 +f 371/371/371 370/370/370 367/367/367 +f 372/372/372 368/368/368 93/93/93 +f 93/93/93 82/82/82 372/372/372 +f 373/373/373 371/371/371 368/368/368 +f 368/368/368 372/372/372 373/373/373 +f 374/374/374 372/372/372 82/82/82 +f 82/82/82 80/80/80 374/374/374 +f 374/374/374 80/80/80 78/78/78 +f 372/372/372 374/374/374 375/375/375 +f 375/375/375 373/373/373 372/372/372 +f 374/374/374 78/78/78 376/376/376 +f 376/376/376 375/375/375 374/374/374 +f 376/376/376 78/78/78 3/3/3 +f 373/373/373 375/375/375 377/377/377 +f 377/377/377 375/375/375 376/376/376 +f 371/371/371 373/373/373 378/378/378 +f 377/377/377 378/378/378 373/373/373 +f 377/377/377 376/376/376 379/379/379 +f 379/379/379 376/376/376 3/3/3 +f 378/378/378 377/377/377 380/380/380 +f 379/379/379 380/380/380 377/377/377 +f 378/378/378 381/381/381 371/371/371 +f 370/370/370 371/371/371 381/381/381 +f 380/380/380 382/382/382 378/378/378 +f 381/381/381 378/378/378 382/382/382 +f 383/383/383 380/380/380 379/379/379 +f 382/382/382 380/380/380 383/383/383 +f 384/384/384 379/379/379 3/3/3 +f 383/383/383 379/379/379 384/384/384 +f 385/385/385 384/384/384 3/3/3 +f 4/4/4 385/385/385 3/3/3 +f 384/384/384 386/386/386 383/383/383 +f 387/387/387 384/384/384 385/385/385 +f 387/387/387 386/386/386 384/384/384 +f 388/388/388 383/383/383 386/386/386 +f 383/383/383 388/388/388 382/382/382 +f 389/389/389 386/386/386 387/387/387 +f 386/386/386 389/389/389 388/388/388 +f 390/390/390 382/382/382 388/388/388 +f 382/382/382 390/390/390 381/381/381 +f 391/391/391 388/388/388 389/389/389 +f 388/388/388 391/391/391 390/390/390 +f 392/392/392 381/381/381 390/390/390 +f 381/381/381 392/392/392 370/370/370 +f 369/369/369 370/370/370 392/392/392 +f 390/390/390 393/393/393 392/392/392 +f 393/393/393 390/390/390 391/391/391 +f 392/392/392 394/394/394 369/369/369 +f 394/394/394 392/392/392 393/393/393 +f 369/369/369 394/394/394 361/361/361 +f 391/391/391 395/395/395 393/393/393 +f 396/396/396 361/361/361 394/394/394 +f 361/361/361 396/396/396 358/358/358 +f 393/393/393 397/397/397 394/394/394 +f 394/394/394 397/397/397 396/396/396 +f 397/397/397 393/393/393 395/395/395 +f 357/357/357 358/358/358 396/396/396 +f 398/398/398 396/396/396 397/397/397 +f 396/396/396 398/398/398 357/357/357 +f 395/395/395 399/399/399 397/397/397 +f 397/397/397 399/399/399 398/398/398 +f 400/400/400 357/357/357 398/398/398 +f 357/357/357 400/400/400 353/353/353 +f 352/352/352 353/353/353 400/400/400 +f 398/398/398 401/401/401 400/400/400 +f 401/401/401 398/398/398 399/399/399 +f 400/400/400 402/402/402 352/352/352 +f 402/402/402 400/400/400 401/401/401 +f 348/348/348 352/352/352 402/402/402 +f 399/399/399 403/403/403 401/401/401 +f 402/402/402 404/404/404 348/348/348 +f 347/347/347 348/348/348 404/404/404 +f 401/401/401 405/405/405 402/402/402 +f 404/404/404 402/402/402 405/405/405 +f 405/405/405 401/401/401 403/403/403 +f 404/404/404 406/406/406 347/347/347 +f 342/342/342 347/347/347 406/406/406 +f 405/405/405 407/407/407 404/404/404 +f 406/406/406 404/404/404 407/407/407 +f 403/403/403 408/408/408 405/405/405 +f 407/407/407 405/405/405 408/408/408 +f 406/406/406 409/409/409 342/342/342 +f 341/341/341 342/342/342 409/409/409 +f 407/407/407 410/410/410 406/406/406 +f 409/409/409 406/406/406 410/410/410 +f 408/408/408 411/411/411 407/407/407 +f 410/410/410 407/407/407 411/411/411 +f 409/409/409 412/412/412 341/341/341 +f 336/336/336 341/341/341 412/412/412 +f 410/410/410 413/413/413 409/409/409 +f 412/412/412 409/409/409 413/413/413 +f 411/411/411 414/414/414 410/410/410 +f 413/413/413 410/410/410 414/414/414 +f 412/412/412 415/415/415 336/336/336 +f 335/335/335 336/336/336 415/415/415 +f 413/413/413 416/416/416 412/412/412 +f 415/415/415 412/412/412 416/416/416 +f 414/414/414 417/417/417 413/413/413 +f 416/416/416 413/413/413 417/417/417 +f 415/415/415 418/418/418 335/335/335 +f 330/330/330 335/335/335 418/418/418 +f 416/416/416 419/419/419 415/415/415 +f 418/418/418 415/415/415 419/419/419 +f 417/417/417 420/420/420 416/416/416 +f 419/419/419 416/416/416 420/420/420 +f 418/418/418 421/421/421 330/330/330 +f 329/329/329 330/330/330 421/421/421 +f 419/419/419 422/422/422 418/418/418 +f 421/421/421 418/418/418 422/422/422 +f 420/420/420 423/423/423 419/419/419 +f 422/422/422 419/419/419 423/423/423 +f 421/421/421 424/424/424 329/329/329 +f 324/324/324 329/329/329 424/424/424 +f 422/422/422 425/425/425 421/421/421 +f 424/424/424 421/421/421 425/425/425 +f 423/423/423 426/426/426 422/422/422 +f 425/425/425 422/422/422 426/426/426 +f 424/424/424 427/427/427 324/324/324 +f 323/323/323 324/324/324 427/427/427 +f 425/425/425 428/428/428 424/424/424 +f 427/427/427 424/424/424 428/428/428 +f 426/426/426 429/429/429 425/425/425 +f 428/428/428 425/425/425 429/429/429 +f 427/427/427 430/430/430 323/323/323 +f 318/318/318 323/323/323 430/430/430 +f 428/428/428 431/431/431 427/427/427 +f 430/430/430 427/427/427 431/431/431 +f 429/429/429 432/432/432 428/428/428 +f 431/431/431 428/428/428 432/432/432 +f 430/430/430 433/433/433 318/318/318 +f 317/317/317 318/318/318 433/433/433 +f 431/431/431 434/434/434 430/430/430 +f 433/433/433 430/430/430 434/434/434 +f 432/432/432 435/435/435 431/431/431 +f 434/434/434 431/431/431 435/435/435 +f 433/433/433 436/436/436 317/317/317 +f 312/312/312 317/317/317 436/436/436 +f 434/434/434 437/437/437 433/433/433 +f 436/436/436 433/433/433 437/437/437 +f 435/435/435 438/438/438 434/434/434 +f 437/437/437 434/434/434 438/438/438 +f 436/436/436 439/439/439 312/312/312 +f 309/309/309 312/312/312 439/439/439 +f 439/439/439 143/143/143 309/309/309 +f 437/437/437 440/440/440 436/436/436 +f 439/439/439 436/436/436 440/440/440 +f 143/143/143 439/439/439 441/441/441 +f 440/440/440 441/441/441 439/439/439 +f 441/441/441 139/139/139 143/143/143 +f 139/139/139 441/441/441 137/137/137 +f 442/442/442 137/137/137 441/441/441 +f 441/441/441 440/440/440 442/442/442 +f 136/136/136 137/137/137 442/442/442 +f 440/440/440 437/437/437 443/443/443 +f 443/443/443 442/442/442 440/440/440 +f 438/438/438 443/443/443 437/437/437 +f 442/442/442 444/444/444 136/136/136 +f 444/444/444 442/442/442 443/443/443 +f 43/43/43 136/136/136 444/444/444 +f 444/444/444 39/39/39 43/43/43 +f 443/443/443 445/445/445 444/444/444 +f 39/39/39 444/444/444 445/445/445 +f 445/445/445 443/443/443 438/438/438 +f 445/445/445 36/36/36 39/39/39 +f 438/438/438 446/446/446 445/445/445 +f 36/36/36 445/445/445 446/446/446 +f 446/446/446 438/438/438 435/435/435 +f 446/446/446 32/32/32 36/36/36 +f 435/435/435 447/447/447 446/446/446 +f 32/32/32 446/446/446 447/447/447 +f 447/447/447 435/435/435 432/432/432 +f 447/447/447 29/29/29 32/32/32 +f 432/432/432 448/448/448 447/447/447 +f 29/29/29 447/447/447 448/448/448 +f 448/448/448 432/432/432 429/429/429 +f 448/448/448 25/25/25 29/29/29 +f 429/429/429 449/449/449 448/448/448 +f 25/25/25 448/448/448 449/449/449 +f 449/449/449 429/429/429 426/426/426 +f 449/449/449 22/22/22 25/25/25 +f 426/426/426 450/450/450 449/449/449 +f 22/22/22 449/449/449 450/450/450 +f 450/450/450 426/426/426 423/423/423 +f 450/450/450 17/17/17 22/22/22 +f 423/423/423 451/451/451 450/450/450 +f 17/17/17 450/450/450 451/451/451 +f 451/451/451 423/423/423 420/420/420 +f 451/451/451 15/15/15 17/17/17 +f 420/420/420 452/452/452 451/451/451 +f 15/15/15 451/451/451 452/452/452 +f 452/452/452 420/420/420 417/417/417 +f 452/452/452 13/13/13 15/15/15 +f 417/417/417 453/453/453 452/452/452 +f 13/13/13 452/452/452 453/453/453 +f 453/453/453 417/417/417 414/414/414 +f 453/453/453 454/454/454 13/13/13 +f 9/9/9 13/13/13 454/454/454 +f 414/414/414 455/455/455 453/453/453 +f 454/454/454 453/453/453 455/455/455 +f 455/455/455 414/414/414 411/411/411 +f 454/454/454 456/456/456 9/9/9 +f 5/5/5 9/9/9 456/456/456 +f 455/455/455 457/457/457 454/454/454 +f 456/456/456 454/454/454 457/457/457 +f 411/411/411 458/458/458 455/455/455 +f 457/457/457 455/455/455 458/458/458 +f 458/458/458 411/411/411 408/408/408 +f 456/456/456 459/459/459 5/5/5 +f 5/5/5 459/459/459 4/4/4 +f 408/408/408 460/460/460 458/458/458 +f 460/460/460 408/408/408 403/403/403 +f 4/4/4 459/459/459 461/461/461 +f 461/461/461 385/385/385 4/4/4 +f 459/459/459 456/456/456 462/462/462 +f 462/462/462 461/461/461 459/459/459 +f 457/457/457 462/462/462 456/456/456 +f 461/461/461 463/463/463 385/385/385 +f 385/385/385 463/463/463 387/387/387 +f 461/461/461 462/462/462 464/464/464 +f 464/464/464 463/463/463 461/461/461 +f 462/462/462 457/457/457 465/465/465 +f 458/458/458 465/465/465 457/457/457 +f 465/465/465 464/464/464 462/462/462 +f 465/465/465 458/458/458 460/460/460 +f 466/466/466 387/387/387 463/463/463 +f 463/463/463 464/464/464 466/466/466 +f 387/387/387 466/466/466 389/389/389 +f 464/464/464 465/465/465 467/467/467 +f 467/467/467 466/466/466 464/464/464 +f 460/460/460 467/467/467 465/465/465 +f 468/468/468 389/389/389 466/466/466 +f 466/466/466 467/467/467 468/468/468 +f 389/389/389 468/468/468 391/391/391 +f 395/395/395 391/391/391 468/468/468 +f 467/467/467 460/460/460 469/469/469 +f 469/469/469 468/468/468 467/467/467 +f 468/468/468 469/469/469 395/395/395 +f 403/403/403 469/469/469 460/460/460 +f 399/399/399 395/395/395 469/469/469 +f 469/469/469 403/403/403 399/399/399 diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome02/dome02.frag b/SkyLibrary/src/main/resources/Shaders/skies/dome02/dome02.frag index 921eac4..92b4c55 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome02/dome02.frag +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome02/dome02.frag @@ -1,31 +1,7 @@ -/* - Copyright (c) 2013-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * fragment shader used by dome02.j3md + * generated fragment shader used by dome02.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" uniform vec4 m_ClearColor; @@ -45,19 +21,26 @@ varying vec2 skyTexCoord; uniform vec4 m_Clouds0Color; varying vec2 clouds0Coord; #endif +#ifdef HAS_CLOUDS0_NORMAL + uniform sampler2D m_Clouds0NormalMap; +#endif #ifdef HAS_CLOUDS1 uniform sampler2D m_Clouds1AlphaMap; uniform vec4 m_Clouds1Color; varying vec2 clouds1Coord; #endif +#ifdef HAS_CLOUDS1_NORMAL + uniform sampler2D m_Clouds1NormalMap; +#endif vec4 mixColors(vec4 color0, vec4 color1) { vec4 result; float a0 = color0.a * (1.0 - color1.a); result.a = a0 + color1.a; if (result.a > 0.0) { - result.rgb = (a0 * color0.rgb + color1.a * color1.rgb)/result.a; + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; } else { result.rgb = vec3(0.0); } @@ -70,7 +53,9 @@ void main() { #else vec4 stars = vec4(0.0); #endif - vec4 color = stars; + vec4 objects = vec4(0.0); + + vec4 color = mixColors(stars, objects); vec4 clear = m_ClearColor; #ifdef HAS_HAZE @@ -79,18 +64,31 @@ void main() { clear = mixColors(clear, haze); #endif color = mixColors(color, clear); + color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb) * clear.a; #ifdef HAS_CLOUDS0 vec4 clouds0 = m_Clouds0Color; clouds0.a *= texture2D(m_Clouds0AlphaMap, clouds0Coord).r; + #ifdef HAS_CLOUDS0_NORMAL + vec3 normal0 = texture2D(m_Clouds0NormalMap, clouds0Coord).xyz; + normal0 = normal0 * 2.0 - 1.0; + float relief0 = clamp(0.90 + normal0.z * 0.15, 0.75, 1.15); + clouds0.rgb *= relief0; + #endif color = mixColors(color, clouds0); #endif #ifdef HAS_CLOUDS1 vec4 clouds1 = m_Clouds1Color; clouds1.a *= texture2D(m_Clouds1AlphaMap, clouds1Coord).r; + #ifdef HAS_CLOUDS1_NORMAL + vec3 normal1 = texture2D(m_Clouds1NormalMap, clouds1Coord).xyz; + normal1 = normal1 * 2.0 - 1.0; + float relief1 = clamp(0.90 + normal1.z * 0.15, 0.75, 1.15); + clouds1.rgb *= relief1; + #endif color = mixColors(color, clouds1); #endif gl_FragColor = color; -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome02/dome02.vert b/SkyLibrary/src/main/resources/Shaders/skies/dome02/dome02.vert index 7612a48..2a2591e 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome02/dome02.vert +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome02/dome02.vert @@ -1,31 +1,7 @@ -/* - Copyright (c) 2013-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * vertex shader used by dome02.j3md + * generated vertex shader used by dome02.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" attribute vec2 inTexCoord; @@ -49,8 +25,7 @@ varying vec2 skyTexCoord; void main(){ skyTexCoord = inTexCoord; /* - * The following cloud texture coordinate calculations must be kept - * consistent with those in SkyMaterial.getTransparency(int,Vector2f) . + * Keep cloud coordinates consistent with material sampling. */ #ifdef HAS_CLOUDS0 clouds0Coord = inTexCoord * m_Clouds0Scale + m_Clouds0Offset; @@ -60,4 +35,4 @@ void main(){ #endif gl_Position = g_WorldViewProjectionMatrix * vec4(inPosition, 1); -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome02/dome02glow.frag b/SkyLibrary/src/main/resources/Shaders/skies/dome02/dome02glow.frag index 3a86365..5f1ad68 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome02/dome02glow.frag +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome02/dome02glow.frag @@ -1,31 +1,7 @@ -/* - Copyright (c) 2013-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * fragment shader used by dome02.j3md in its "Glow" technique + * generated glow fragment shader used by dome02.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" uniform vec4 m_ClearGlow; @@ -41,17 +17,17 @@ varying vec2 skyTexCoord; uniform vec4 m_Clouds0Glow; varying vec2 clouds0Coord; #endif +#ifdef HAS_CLOUDS0_NORMAL + uniform sampler2D m_Clouds0NormalMap; +#endif #ifdef HAS_CLOUDS1 uniform sampler2D m_Clouds1AlphaMap; uniform vec4 m_Clouds1Glow; varying vec2 clouds1Coord; #endif - -#ifdef HAS_CLOUDS2 - uniform sampler2D m_Clouds2AlphaMap; - uniform vec4 m_Clouds2Glow; - varying vec2 clouds2Coord; +#ifdef HAS_CLOUDS1_NORMAL + uniform sampler2D m_Clouds1NormalMap; #endif vec4 mixColors(vec4 color0, vec4 color1) { @@ -59,7 +35,8 @@ vec4 mixColors(vec4 color0, vec4 color1) { float a0 = color0.a * (1.0 - color1.a); result.a = a0 + color1.a; if (result.a > 0.0) { - result.rgb = (a0 * color0.rgb + color1.a * color1.rgb)/result.a; + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; } else { result.rgb = vec3(0.0); } @@ -67,7 +44,10 @@ vec4 mixColors(vec4 color0, vec4 color1) { } void main() { - vec4 color = vec4(0.0); + vec4 stars = vec4(0.0); + vec4 objects = vec4(0.0); + + vec4 color = mixColors(stars, objects); vec4 clear = m_ClearGlow; #ifdef HAS_HAZE @@ -76,18 +56,31 @@ void main() { clear = mixColors(clear, haze); #endif color = mixColors(color, clear); + color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb) * clear.a; #ifdef HAS_CLOUDS0 vec4 clouds0 = m_Clouds0Glow; clouds0.a *= texture2D(m_Clouds0AlphaMap, clouds0Coord).r; + #ifdef HAS_CLOUDS0_NORMAL + vec3 normal0 = texture2D(m_Clouds0NormalMap, clouds0Coord).xyz; + normal0 = normal0 * 2.0 - 1.0; + float relief0 = clamp(0.90 + normal0.z * 0.15, 0.75, 1.15); + clouds0.rgb *= relief0; + #endif color = mixColors(color, clouds0); #endif #ifdef HAS_CLOUDS1 vec4 clouds1 = m_Clouds1Glow; clouds1.a *= texture2D(m_Clouds1AlphaMap, clouds1Coord).r; + #ifdef HAS_CLOUDS1_NORMAL + vec3 normal1 = texture2D(m_Clouds1NormalMap, clouds1Coord).xyz; + normal1 = normal1 * 2.0 - 1.0; + float relief1 = clamp(0.90 + normal1.z * 0.15, 0.75, 1.15); + clouds1.rgb *= relief1; + #endif color = mixColors(color, clouds1); #endif gl_FragColor = color; -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome06/dome06.frag b/SkyLibrary/src/main/resources/Shaders/skies/dome06/dome06.frag index 134919d..fb07cd9 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome06/dome06.frag +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome06/dome06.frag @@ -1,31 +1,7 @@ -/* - Copyright (c) 2014-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * fragment shader used by dome06.j3md + * generated fragment shader used by dome06.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" uniform vec4 m_ClearColor; @@ -45,43 +21,62 @@ varying vec2 skyTexCoord; uniform vec4 m_Clouds0Color; varying vec2 clouds0Coord; #endif +#ifdef HAS_CLOUDS0_NORMAL + uniform sampler2D m_Clouds0NormalMap; +#endif #ifdef HAS_CLOUDS1 uniform sampler2D m_Clouds1AlphaMap; uniform vec4 m_Clouds1Color; varying vec2 clouds1Coord; #endif +#ifdef HAS_CLOUDS1_NORMAL + uniform sampler2D m_Clouds1NormalMap; +#endif #ifdef HAS_CLOUDS2 uniform sampler2D m_Clouds2AlphaMap; uniform vec4 m_Clouds2Color; varying vec2 clouds2Coord; #endif +#ifdef HAS_CLOUDS2_NORMAL + uniform sampler2D m_Clouds2NormalMap; +#endif #ifdef HAS_CLOUDS3 uniform sampler2D m_Clouds3AlphaMap; uniform vec4 m_Clouds3Color; varying vec2 clouds3Coord; #endif +#ifdef HAS_CLOUDS3_NORMAL + uniform sampler2D m_Clouds3NormalMap; +#endif #ifdef HAS_CLOUDS4 uniform sampler2D m_Clouds4AlphaMap; uniform vec4 m_Clouds4Color; varying vec2 clouds4Coord; #endif +#ifdef HAS_CLOUDS4_NORMAL + uniform sampler2D m_Clouds4NormalMap; +#endif #ifdef HAS_CLOUDS5 uniform sampler2D m_Clouds5AlphaMap; uniform vec4 m_Clouds5Color; varying vec2 clouds5Coord; #endif +#ifdef HAS_CLOUDS5_NORMAL + uniform sampler2D m_Clouds5NormalMap; +#endif vec4 mixColors(vec4 color0, vec4 color1) { vec4 result; float a0 = color0.a * (1.0 - color1.a); result.a = a0 + color1.a; if (result.a > 0.0) { - result.rgb = (a0 * color0.rgb + color1.a * color1.rgb)/result.a; + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; } else { result.rgb = vec3(0.0); } @@ -94,7 +89,9 @@ void main() { #else vec4 stars = vec4(0.0); #endif - vec4 color = stars; + vec4 objects = vec4(0.0); + + vec4 color = mixColors(stars, objects); vec4 clear = m_ClearColor; #ifdef HAS_HAZE @@ -103,42 +100,79 @@ void main() { clear = mixColors(clear, haze); #endif color = mixColors(color, clear); + color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb) * clear.a; #ifdef HAS_CLOUDS0 vec4 clouds0 = m_Clouds0Color; clouds0.a *= texture2D(m_Clouds0AlphaMap, clouds0Coord).r; + #ifdef HAS_CLOUDS0_NORMAL + vec3 normal0 = texture2D(m_Clouds0NormalMap, clouds0Coord).xyz; + normal0 = normal0 * 2.0 - 1.0; + float relief0 = clamp(0.90 + normal0.z * 0.15, 0.75, 1.15); + clouds0.rgb *= relief0; + #endif color = mixColors(color, clouds0); #endif #ifdef HAS_CLOUDS1 vec4 clouds1 = m_Clouds1Color; clouds1.a *= texture2D(m_Clouds1AlphaMap, clouds1Coord).r; + #ifdef HAS_CLOUDS1_NORMAL + vec3 normal1 = texture2D(m_Clouds1NormalMap, clouds1Coord).xyz; + normal1 = normal1 * 2.0 - 1.0; + float relief1 = clamp(0.90 + normal1.z * 0.15, 0.75, 1.15); + clouds1.rgb *= relief1; + #endif color = mixColors(color, clouds1); #endif #ifdef HAS_CLOUDS2 vec4 clouds2 = m_Clouds2Color; clouds2.a *= texture2D(m_Clouds2AlphaMap, clouds2Coord).r; + #ifdef HAS_CLOUDS2_NORMAL + vec3 normal2 = texture2D(m_Clouds2NormalMap, clouds2Coord).xyz; + normal2 = normal2 * 2.0 - 1.0; + float relief2 = clamp(0.90 + normal2.z * 0.15, 0.75, 1.15); + clouds2.rgb *= relief2; + #endif color = mixColors(color, clouds2); #endif #ifdef HAS_CLOUDS3 vec4 clouds3 = m_Clouds3Color; clouds3.a *= texture2D(m_Clouds3AlphaMap, clouds3Coord).r; + #ifdef HAS_CLOUDS3_NORMAL + vec3 normal3 = texture2D(m_Clouds3NormalMap, clouds3Coord).xyz; + normal3 = normal3 * 2.0 - 1.0; + float relief3 = clamp(0.90 + normal3.z * 0.15, 0.75, 1.15); + clouds3.rgb *= relief3; + #endif color = mixColors(color, clouds3); #endif #ifdef HAS_CLOUDS4 vec4 clouds4 = m_Clouds4Color; clouds4.a *= texture2D(m_Clouds4AlphaMap, clouds4Coord).r; + #ifdef HAS_CLOUDS4_NORMAL + vec3 normal4 = texture2D(m_Clouds4NormalMap, clouds4Coord).xyz; + normal4 = normal4 * 2.0 - 1.0; + float relief4 = clamp(0.90 + normal4.z * 0.15, 0.75, 1.15); + clouds4.rgb *= relief4; + #endif color = mixColors(color, clouds4); #endif #ifdef HAS_CLOUDS5 vec4 clouds5 = m_Clouds5Color; clouds5.a *= texture2D(m_Clouds5AlphaMap, clouds5Coord).r; + #ifdef HAS_CLOUDS5_NORMAL + vec3 normal5 = texture2D(m_Clouds5NormalMap, clouds5Coord).xyz; + normal5 = normal5 * 2.0 - 1.0; + float relief5 = clamp(0.90 + normal5.z * 0.15, 0.75, 1.15); + clouds5.rgb *= relief5; + #endif color = mixColors(color, clouds5); #endif gl_FragColor = color; -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome06/dome06.vert b/SkyLibrary/src/main/resources/Shaders/skies/dome06/dome06.vert index 336d988..2533bf0 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome06/dome06.vert +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome06/dome06.vert @@ -1,31 +1,7 @@ -/* - Copyright (c) 2014-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * vertex shader used by dome06.j3md + * generated vertex shader used by dome06.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" attribute vec2 inTexCoord; @@ -73,8 +49,7 @@ varying vec2 skyTexCoord; void main(){ skyTexCoord = inTexCoord; /* - * The following cloud texture coordinate calculations must be kept - * consistent with those in SkyMaterial.getTransparency(int,Vector2f) . + * Keep cloud coordinates consistent with material sampling. */ #ifdef HAS_CLOUDS0 clouds0Coord = inTexCoord * m_Clouds0Scale + m_Clouds0Offset; @@ -96,4 +71,4 @@ void main(){ #endif gl_Position = g_WorldViewProjectionMatrix * vec4(inPosition, 1); -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome06/dome06glow.frag b/SkyLibrary/src/main/resources/Shaders/skies/dome06/dome06glow.frag index fc828be..6b6ddcd 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome06/dome06glow.frag +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome06/dome06glow.frag @@ -1,31 +1,7 @@ -/* - Copyright (c) 2014-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * fragment shader used by dome06.j3md in its "Glow" technique + * generated glow fragment shader used by dome06.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" uniform vec4 m_ClearGlow; @@ -41,43 +17,62 @@ varying vec2 skyTexCoord; uniform vec4 m_Clouds0Glow; varying vec2 clouds0Coord; #endif +#ifdef HAS_CLOUDS0_NORMAL + uniform sampler2D m_Clouds0NormalMap; +#endif #ifdef HAS_CLOUDS1 uniform sampler2D m_Clouds1AlphaMap; uniform vec4 m_Clouds1Glow; varying vec2 clouds1Coord; #endif +#ifdef HAS_CLOUDS1_NORMAL + uniform sampler2D m_Clouds1NormalMap; +#endif #ifdef HAS_CLOUDS2 uniform sampler2D m_Clouds2AlphaMap; uniform vec4 m_Clouds2Glow; varying vec2 clouds2Coord; #endif +#ifdef HAS_CLOUDS2_NORMAL + uniform sampler2D m_Clouds2NormalMap; +#endif #ifdef HAS_CLOUDS3 uniform sampler2D m_Clouds3AlphaMap; uniform vec4 m_Clouds3Glow; varying vec2 clouds3Coord; #endif +#ifdef HAS_CLOUDS3_NORMAL + uniform sampler2D m_Clouds3NormalMap; +#endif #ifdef HAS_CLOUDS4 uniform sampler2D m_Clouds4AlphaMap; uniform vec4 m_Clouds4Glow; varying vec2 clouds4Coord; #endif +#ifdef HAS_CLOUDS4_NORMAL + uniform sampler2D m_Clouds4NormalMap; +#endif #ifdef HAS_CLOUDS5 uniform sampler2D m_Clouds5AlphaMap; uniform vec4 m_Clouds5Glow; varying vec2 clouds5Coord; #endif +#ifdef HAS_CLOUDS5_NORMAL + uniform sampler2D m_Clouds5NormalMap; +#endif vec4 mixColors(vec4 color0, vec4 color1) { vec4 result; float a0 = color0.a * (1.0 - color1.a); result.a = a0 + color1.a; if (result.a > 0.0) { - result.rgb = (a0 * color0.rgb + color1.a * color1.rgb)/result.a; + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; } else { result.rgb = vec3(0.0); } @@ -85,7 +80,10 @@ vec4 mixColors(vec4 color0, vec4 color1) { } void main() { - vec4 color = vec4(0.0); + vec4 stars = vec4(0.0); + vec4 objects = vec4(0.0); + + vec4 color = mixColors(stars, objects); vec4 clear = m_ClearGlow; #ifdef HAS_HAZE @@ -94,42 +92,79 @@ void main() { clear = mixColors(clear, haze); #endif color = mixColors(color, clear); + color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb) * clear.a; #ifdef HAS_CLOUDS0 vec4 clouds0 = m_Clouds0Glow; clouds0.a *= texture2D(m_Clouds0AlphaMap, clouds0Coord).r; + #ifdef HAS_CLOUDS0_NORMAL + vec3 normal0 = texture2D(m_Clouds0NormalMap, clouds0Coord).xyz; + normal0 = normal0 * 2.0 - 1.0; + float relief0 = clamp(0.90 + normal0.z * 0.15, 0.75, 1.15); + clouds0.rgb *= relief0; + #endif color = mixColors(color, clouds0); #endif #ifdef HAS_CLOUDS1 vec4 clouds1 = m_Clouds1Glow; clouds1.a *= texture2D(m_Clouds1AlphaMap, clouds1Coord).r; + #ifdef HAS_CLOUDS1_NORMAL + vec3 normal1 = texture2D(m_Clouds1NormalMap, clouds1Coord).xyz; + normal1 = normal1 * 2.0 - 1.0; + float relief1 = clamp(0.90 + normal1.z * 0.15, 0.75, 1.15); + clouds1.rgb *= relief1; + #endif color = mixColors(color, clouds1); #endif #ifdef HAS_CLOUDS2 vec4 clouds2 = m_Clouds2Glow; clouds2.a *= texture2D(m_Clouds2AlphaMap, clouds2Coord).r; + #ifdef HAS_CLOUDS2_NORMAL + vec3 normal2 = texture2D(m_Clouds2NormalMap, clouds2Coord).xyz; + normal2 = normal2 * 2.0 - 1.0; + float relief2 = clamp(0.90 + normal2.z * 0.15, 0.75, 1.15); + clouds2.rgb *= relief2; + #endif color = mixColors(color, clouds2); #endif #ifdef HAS_CLOUDS3 vec4 clouds3 = m_Clouds3Glow; clouds3.a *= texture2D(m_Clouds3AlphaMap, clouds3Coord).r; + #ifdef HAS_CLOUDS3_NORMAL + vec3 normal3 = texture2D(m_Clouds3NormalMap, clouds3Coord).xyz; + normal3 = normal3 * 2.0 - 1.0; + float relief3 = clamp(0.90 + normal3.z * 0.15, 0.75, 1.15); + clouds3.rgb *= relief3; + #endif color = mixColors(color, clouds3); #endif #ifdef HAS_CLOUDS4 vec4 clouds4 = m_Clouds4Glow; clouds4.a *= texture2D(m_Clouds4AlphaMap, clouds4Coord).r; + #ifdef HAS_CLOUDS4_NORMAL + vec3 normal4 = texture2D(m_Clouds4NormalMap, clouds4Coord).xyz; + normal4 = normal4 * 2.0 - 1.0; + float relief4 = clamp(0.90 + normal4.z * 0.15, 0.75, 1.15); + clouds4.rgb *= relief4; + #endif color = mixColors(color, clouds4); #endif #ifdef HAS_CLOUDS5 vec4 clouds5 = m_Clouds5Glow; clouds5.a *= texture2D(m_Clouds5AlphaMap, clouds5Coord).r; + #ifdef HAS_CLOUDS5_NORMAL + vec3 normal5 = texture2D(m_Clouds5NormalMap, clouds5Coord).xyz; + normal5 = normal5 * 2.0 - 1.0; + float relief5 = clamp(0.90 + normal5.z * 0.15, 0.75, 1.15); + clouds5.rgb *= relief5; + #endif color = mixColors(color, clouds5); #endif gl_FragColor = color; -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome20/dome20.frag b/SkyLibrary/src/main/resources/Shaders/skies/dome20/dome20.frag index aab0c82..62ee761 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome20/dome20.frag +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome20/dome20.frag @@ -1,31 +1,7 @@ -/* - Copyright (c) 2014-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * fragment shader used by dome20.j3md + * generated fragment shader used by dome20.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" uniform vec4 m_ClearColor; @@ -57,7 +33,8 @@ vec4 mixColors(vec4 color0, vec4 color1) { float a0 = color0.a * (1.0 - color1.a); result.a = a0 + color1.a; if (result.a > 0.0) { - result.rgb = (a0 * color0.rgb + color1.a * color1.rgb)/result.a; + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; } else { result.rgb = vec3(0.0); } @@ -70,14 +47,14 @@ void main() { #else vec4 stars = vec4(0.0); #endif - vec4 objects = vec4(0.0); #ifdef HAS_OBJECT0 if (floor(object0Coord.s) == 0.0 && floor(object0Coord.t) == 0.0) { - objects = m_Object0Color; - objects *= texture2D(m_Object0ColorMap, object0Coord); + vec4 object0 = m_Object0Color; + object0 *= texture2D(m_Object0ColorMap, object0Coord); + objects = object0; } #endif @@ -99,8 +76,7 @@ void main() { clear = mixColors(clear, haze); #endif color = mixColors(color, clear); - // Bright parts of objects shine through the clear areas. color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb) * clear.a; gl_FragColor = color; -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome20/dome20.vert b/SkyLibrary/src/main/resources/Shaders/skies/dome20/dome20.vert index b52ee9b..1ad9229 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome20/dome20.vert +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome20/dome20.vert @@ -1,31 +1,7 @@ -/* - Copyright (c) 2014-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * vertex shader used by dome20.j3md + * generated vertex shader used by dome20.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" attribute vec2 inTexCoord; @@ -66,4 +42,4 @@ void main(){ #endif gl_Position = g_WorldViewProjectionMatrix * vec4(inPosition, 1); -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome20/dome20glow.frag b/SkyLibrary/src/main/resources/Shaders/skies/dome20/dome20glow.frag index 17444d3..d7cce6a 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome20/dome20glow.frag +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome20/dome20glow.frag @@ -1,45 +1,21 @@ -/* - Copyright (c) 2014-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * fragment shader used by dome20.j3md in its "Glow" technique + * generated glow fragment shader used by dome20.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" uniform vec4 m_ClearGlow; varying vec2 skyTexCoord; #ifdef HAS_OBJECT0 + uniform vec4 m_Object0Color; uniform sampler2D m_Object0ColorMap; - uniform vec4 m_Object0Glow; varying vec2 object0Coord; #endif #ifdef HAS_OBJECT1 + uniform vec4 m_Object1Color; uniform sampler2D m_Object1ColorMap; - uniform vec4 m_Object1Glow; varying vec2 object1Coord; #endif @@ -53,7 +29,8 @@ vec4 mixColors(vec4 color0, vec4 color1) { float a0 = color0.a * (1.0 - color1.a); result.a = a0 + color1.a; if (result.a > 0.0) { - result.rgb = (a0 * color0.rgb + color1.a * color1.rgb)/result.a; + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; } else { result.rgb = vec3(0.0); } @@ -62,14 +39,14 @@ vec4 mixColors(vec4 color0, vec4 color1) { void main() { vec4 stars = vec4(0.0); - vec4 objects = vec4(0.0); #ifdef HAS_OBJECT0 if (floor(object0Coord.s) == 0.0 && floor(object0Coord.t) == 0.0) { - objects = m_Object0Glow; - objects *= texture2D(m_Object0ColorMap, object0Coord); + vec4 object0 = m_Object0Glow; + object0 *= texture2D(m_Object0ColorMap, object0Coord); + objects = object0; } #endif @@ -91,8 +68,7 @@ void main() { clear = mixColors(clear, haze); #endif color = mixColors(color, clear); - // Bright parts of objects shine through the clear areas. color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb) * clear.a; gl_FragColor = color; -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome22/dome22.frag b/SkyLibrary/src/main/resources/Shaders/skies/dome22/dome22.frag index fe0e744..cce6cc8 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome22/dome22.frag +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome22/dome22.frag @@ -1,31 +1,7 @@ -/* - Copyright (c) 2013-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * fragment shader used by dome22.j3md + * generated fragment shader used by dome22.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" uniform vec4 m_ClearColor; @@ -57,19 +33,26 @@ varying vec2 skyTexCoord; uniform vec4 m_Clouds0Color; varying vec2 clouds0Coord; #endif +#ifdef HAS_CLOUDS0_NORMAL + uniform sampler2D m_Clouds0NormalMap; +#endif #ifdef HAS_CLOUDS1 uniform sampler2D m_Clouds1AlphaMap; uniform vec4 m_Clouds1Color; varying vec2 clouds1Coord; #endif +#ifdef HAS_CLOUDS1_NORMAL + uniform sampler2D m_Clouds1NormalMap; +#endif vec4 mixColors(vec4 color0, vec4 color1) { vec4 result; float a0 = color0.a * (1.0 - color1.a); result.a = a0 + color1.a; if (result.a > 0.0) { - result.rgb = (a0 * color0.rgb + color1.a * color1.rgb)/result.a; + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; } else { result.rgb = vec3(0.0); } @@ -82,14 +65,14 @@ void main() { #else vec4 stars = vec4(0.0); #endif - vec4 objects = vec4(0.0); #ifdef HAS_OBJECT0 if (floor(object0Coord.s) == 0.0 && floor(object0Coord.t) == 0.0) { - objects = m_Object0Color; - objects *= texture2D(m_Object0ColorMap, object0Coord); + vec4 object0 = m_Object0Color; + object0 *= texture2D(m_Object0ColorMap, object0Coord); + objects = object0; } #endif @@ -111,20 +94,31 @@ void main() { clear = mixColors(clear, haze); #endif color = mixColors(color, clear); - // Bright parts of objects shine through the clear areas. color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb) * clear.a; #ifdef HAS_CLOUDS0 vec4 clouds0 = m_Clouds0Color; clouds0.a *= texture2D(m_Clouds0AlphaMap, clouds0Coord).r; + #ifdef HAS_CLOUDS0_NORMAL + vec3 normal0 = texture2D(m_Clouds0NormalMap, clouds0Coord).xyz; + normal0 = normal0 * 2.0 - 1.0; + float relief0 = clamp(0.90 + normal0.z * 0.15, 0.75, 1.15); + clouds0.rgb *= relief0; + #endif color = mixColors(color, clouds0); #endif #ifdef HAS_CLOUDS1 vec4 clouds1 = m_Clouds1Color; clouds1.a *= texture2D(m_Clouds1AlphaMap, clouds1Coord).r; + #ifdef HAS_CLOUDS1_NORMAL + vec3 normal1 = texture2D(m_Clouds1NormalMap, clouds1Coord).xyz; + normal1 = normal1 * 2.0 - 1.0; + float relief1 = clamp(0.90 + normal1.z * 0.15, 0.75, 1.15); + clouds1.rgb *= relief1; + #endif color = mixColors(color, clouds1); #endif gl_FragColor = color; -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome22/dome22.vert b/SkyLibrary/src/main/resources/Shaders/skies/dome22/dome22.vert index bea6d11..923cc4a 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome22/dome22.vert +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome22/dome22.vert @@ -1,31 +1,7 @@ -/* - Copyright (c) 2013-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * vertex shader used by dome22.j3md + * generated vertex shader used by dome22.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" attribute vec2 inTexCoord; @@ -65,8 +41,7 @@ varying vec2 skyTexCoord; void main(){ skyTexCoord = inTexCoord; /* - * The following cloud texture coordinate calculations must be kept - * consistent with those in SkyMaterial.getTransparency(int,Vector2f) . + * Keep cloud coordinates consistent with material sampling. */ #ifdef HAS_CLOUDS0 clouds0Coord = inTexCoord * m_Clouds0Scale + m_Clouds0Offset; @@ -74,14 +49,12 @@ void main(){ #ifdef HAS_CLOUDS1 clouds1Coord = inTexCoord * m_Clouds1Scale + m_Clouds1Offset; #endif - #ifdef HAS_OBJECT0 object0Offset = inTexCoord - m_Object0Center; object0Coord.x = dot(m_Object0TransformU, object0Offset); object0Coord.y = dot(m_Object0TransformV, object0Offset); object0Coord += m_TopCoord; #endif - #ifdef HAS_OBJECT1 object1Offset = inTexCoord - m_Object1Center; object1Coord.x = dot(m_Object1TransformU, object1Offset); @@ -90,4 +63,4 @@ void main(){ #endif gl_Position = g_WorldViewProjectionMatrix * vec4(inPosition, 1); -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome22/dome22glow.frag b/SkyLibrary/src/main/resources/Shaders/skies/dome22/dome22glow.frag index 3cb2a9b..19f8fe6 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome22/dome22glow.frag +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome22/dome22glow.frag @@ -1,45 +1,21 @@ -/* - Copyright (c) 2013-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * fragment shader used by dome22.j3md in its "Glow" technique + * generated glow fragment shader used by dome22.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" uniform vec4 m_ClearGlow; varying vec2 skyTexCoord; #ifdef HAS_OBJECT0 + uniform vec4 m_Object0Color; uniform sampler2D m_Object0ColorMap; - uniform vec4 m_Object0Glow; varying vec2 object0Coord; #endif #ifdef HAS_OBJECT1 + uniform vec4 m_Object1Color; uniform sampler2D m_Object1ColorMap; - uniform vec4 m_Object1Glow; varying vec2 object1Coord; #endif @@ -53,19 +29,26 @@ varying vec2 skyTexCoord; uniform vec4 m_Clouds0Glow; varying vec2 clouds0Coord; #endif +#ifdef HAS_CLOUDS0_NORMAL + uniform sampler2D m_Clouds0NormalMap; +#endif #ifdef HAS_CLOUDS1 uniform sampler2D m_Clouds1AlphaMap; uniform vec4 m_Clouds1Glow; varying vec2 clouds1Coord; #endif +#ifdef HAS_CLOUDS1_NORMAL + uniform sampler2D m_Clouds1NormalMap; +#endif vec4 mixColors(vec4 color0, vec4 color1) { vec4 result; float a0 = color0.a * (1.0 - color1.a); result.a = a0 + color1.a; if (result.a > 0.0) { - result.rgb = (a0 * color0.rgb + color1.a * color1.rgb)/result.a; + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; } else { result.rgb = vec3(0.0); } @@ -74,14 +57,14 @@ vec4 mixColors(vec4 color0, vec4 color1) { void main() { vec4 stars = vec4(0.0); - vec4 objects = vec4(0.0); #ifdef HAS_OBJECT0 if (floor(object0Coord.s) == 0.0 && floor(object0Coord.t) == 0.0) { - objects = m_Object0Glow; - objects *= texture2D(m_Object0ColorMap, object0Coord); + vec4 object0 = m_Object0Glow; + object0 *= texture2D(m_Object0ColorMap, object0Coord); + objects = object0; } #endif @@ -103,20 +86,31 @@ void main() { clear = mixColors(clear, haze); #endif color = mixColors(color, clear); - // Bright parts of objects shine through the clear areas. color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb) * clear.a; #ifdef HAS_CLOUDS0 vec4 clouds0 = m_Clouds0Glow; clouds0.a *= texture2D(m_Clouds0AlphaMap, clouds0Coord).r; + #ifdef HAS_CLOUDS0_NORMAL + vec3 normal0 = texture2D(m_Clouds0NormalMap, clouds0Coord).xyz; + normal0 = normal0 * 2.0 - 1.0; + float relief0 = clamp(0.90 + normal0.z * 0.15, 0.75, 1.15); + clouds0.rgb *= relief0; + #endif color = mixColors(color, clouds0); #endif #ifdef HAS_CLOUDS1 vec4 clouds1 = m_Clouds1Glow; clouds1.a *= texture2D(m_Clouds1AlphaMap, clouds1Coord).r; + #ifdef HAS_CLOUDS1_NORMAL + vec3 normal1 = texture2D(m_Clouds1NormalMap, clouds1Coord).xyz; + normal1 = normal1 * 2.0 - 1.0; + float relief1 = clamp(0.90 + normal1.z * 0.15, 0.75, 1.15); + clouds1.rgb *= relief1; + #endif color = mixColors(color, clouds1); #endif gl_FragColor = color; -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome60/dome60.frag b/SkyLibrary/src/main/resources/Shaders/skies/dome60/dome60.frag index b65af7f..8db0101 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome60/dome60.frag +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome60/dome60.frag @@ -1,31 +1,7 @@ -/* - Copyright (c) 2014-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * fragment shader used by dome60.j3md + * generated fragment shader used by dome60.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" uniform vec4 m_ClearColor; @@ -81,7 +57,8 @@ vec4 mixColors(vec4 color0, vec4 color1) { float a0 = color0.a * (1.0 - color1.a); result.a = a0 + color1.a; if (result.a > 0.0) { - result.rgb = (a0 * color0.rgb + color1.a * color1.rgb)/result.a; + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; } else { result.rgb = vec3(0.0); } @@ -94,14 +71,14 @@ void main() { #else vec4 stars = vec4(0.0); #endif - vec4 objects = vec4(0.0); #ifdef HAS_OBJECT0 if (floor(object0Coord.s) == 0.0 && floor(object0Coord.t) == 0.0) { - objects = m_Object0Color; - objects *= texture2D(m_Object0ColorMap, object0Coord); + vec4 object0 = m_Object0Color; + object0 *= texture2D(m_Object0ColorMap, object0Coord); + objects = object0; } #endif @@ -159,8 +136,7 @@ void main() { clear = mixColors(clear, haze); #endif color = mixColors(color, clear); - // Bright parts of objects shine through the clear areas. color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb) * clear.a; gl_FragColor = color; -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome60/dome60.vert b/SkyLibrary/src/main/resources/Shaders/skies/dome60/dome60.vert index 96bb4ff..76197dd 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome60/dome60.vert +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome60/dome60.vert @@ -1,31 +1,7 @@ -/* - Copyright (c) 2014-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * vertex shader used by dome60.j3md + * generated vertex shader used by dome60.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" attribute vec2 inTexCoord; @@ -122,4 +98,4 @@ void main(){ #endif gl_Position = g_WorldViewProjectionMatrix * vec4(inPosition, 1); -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome60/dome60glow.frag b/SkyLibrary/src/main/resources/Shaders/skies/dome60/dome60glow.frag index 8859501..4f801f7 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome60/dome60glow.frag +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome60/dome60glow.frag @@ -1,69 +1,45 @@ -/* - Copyright (c) 2014-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * fragment shader used by dome60.j3md in its "Glow" technique + * generated glow fragment shader used by dome60.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" uniform vec4 m_ClearGlow; varying vec2 skyTexCoord; #ifdef HAS_OBJECT0 + uniform vec4 m_Object0Color; uniform sampler2D m_Object0ColorMap; - uniform vec4 m_Object0Glow; varying vec2 object0Coord; #endif #ifdef HAS_OBJECT1 + uniform vec4 m_Object1Color; uniform sampler2D m_Object1ColorMap; - uniform vec4 m_Object1Glow; varying vec2 object1Coord; #endif #ifdef HAS_OBJECT2 + uniform vec4 m_Object2Color; uniform sampler2D m_Object2ColorMap; - uniform vec4 m_Object2Glow; varying vec2 object2Coord; #endif #ifdef HAS_OBJECT3 + uniform vec4 m_Object3Color; uniform sampler2D m_Object3ColorMap; - uniform vec4 m_Object3Glow; varying vec2 object3Coord; #endif #ifdef HAS_OBJECT4 + uniform vec4 m_Object4Color; uniform sampler2D m_Object4ColorMap; - uniform vec4 m_Object4Glow; varying vec2 object4Coord; #endif #ifdef HAS_OBJECT5 + uniform vec4 m_Object5Color; uniform sampler2D m_Object5ColorMap; - uniform vec4 m_Object5Glow; varying vec2 object5Coord; #endif @@ -77,7 +53,8 @@ vec4 mixColors(vec4 color0, vec4 color1) { float a0 = color0.a * (1.0 - color1.a); result.a = a0 + color1.a; if (result.a > 0.0) { - result.rgb = (a0 * color0.rgb + color1.a * color1.rgb)/result.a; + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; } else { result.rgb = vec3(0.0); } @@ -86,14 +63,14 @@ vec4 mixColors(vec4 color0, vec4 color1) { void main() { vec4 stars = vec4(0.0); - vec4 objects = vec4(0.0); #ifdef HAS_OBJECT0 if (floor(object0Coord.s) == 0.0 && floor(object0Coord.t) == 0.0) { - objects = m_Object0Glow; - objects *= texture2D(m_Object0ColorMap, object0Coord); + vec4 object0 = m_Object0Glow; + object0 *= texture2D(m_Object0ColorMap, object0Coord); + objects = object0; } #endif @@ -151,8 +128,7 @@ void main() { clear = mixColors(clear, haze); #endif color = mixColors(color, clear); - // Bright parts of objects shine through the clear areas. color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb) * clear.a; gl_FragColor = color; -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome66/dome66.frag b/SkyLibrary/src/main/resources/Shaders/skies/dome66/dome66.frag index f2a4b0a..7ae11f5 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome66/dome66.frag +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome66/dome66.frag @@ -1,31 +1,7 @@ -/* - Copyright (c) 2014-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * fragment shader used by dome66.j3md + * generated fragment shader used by dome66.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" uniform vec4 m_ClearColor; @@ -81,43 +57,62 @@ varying vec2 skyTexCoord; uniform vec4 m_Clouds0Color; varying vec2 clouds0Coord; #endif +#ifdef HAS_CLOUDS0_NORMAL + uniform sampler2D m_Clouds0NormalMap; +#endif #ifdef HAS_CLOUDS1 uniform sampler2D m_Clouds1AlphaMap; uniform vec4 m_Clouds1Color; varying vec2 clouds1Coord; #endif +#ifdef HAS_CLOUDS1_NORMAL + uniform sampler2D m_Clouds1NormalMap; +#endif #ifdef HAS_CLOUDS2 uniform sampler2D m_Clouds2AlphaMap; uniform vec4 m_Clouds2Color; varying vec2 clouds2Coord; #endif +#ifdef HAS_CLOUDS2_NORMAL + uniform sampler2D m_Clouds2NormalMap; +#endif #ifdef HAS_CLOUDS3 uniform sampler2D m_Clouds3AlphaMap; uniform vec4 m_Clouds3Color; varying vec2 clouds3Coord; #endif +#ifdef HAS_CLOUDS3_NORMAL + uniform sampler2D m_Clouds3NormalMap; +#endif #ifdef HAS_CLOUDS4 uniform sampler2D m_Clouds4AlphaMap; uniform vec4 m_Clouds4Color; varying vec2 clouds4Coord; #endif +#ifdef HAS_CLOUDS4_NORMAL + uniform sampler2D m_Clouds4NormalMap; +#endif #ifdef HAS_CLOUDS5 uniform sampler2D m_Clouds5AlphaMap; uniform vec4 m_Clouds5Color; varying vec2 clouds5Coord; #endif +#ifdef HAS_CLOUDS5_NORMAL + uniform sampler2D m_Clouds5NormalMap; +#endif vec4 mixColors(vec4 color0, vec4 color1) { vec4 result; float a0 = color0.a * (1.0 - color1.a); result.a = a0 + color1.a; if (result.a > 0.0) { - result.rgb = (a0 * color0.rgb + color1.a * color1.rgb)/result.a; + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; } else { result.rgb = vec3(0.0); } @@ -130,14 +125,14 @@ void main() { #else vec4 stars = vec4(0.0); #endif - vec4 objects = vec4(0.0); #ifdef HAS_OBJECT0 if (floor(object0Coord.s) == 0.0 && floor(object0Coord.t) == 0.0) { - objects = m_Object0Color; - objects *= texture2D(m_Object0ColorMap, object0Coord); + vec4 object0 = m_Object0Color; + object0 *= texture2D(m_Object0ColorMap, object0Coord); + objects = object0; } #endif @@ -195,44 +190,79 @@ void main() { clear = mixColors(clear, haze); #endif color = mixColors(color, clear); - // Bright parts of objects shine through the clear areas. color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb) * clear.a; #ifdef HAS_CLOUDS0 vec4 clouds0 = m_Clouds0Color; clouds0.a *= texture2D(m_Clouds0AlphaMap, clouds0Coord).r; + #ifdef HAS_CLOUDS0_NORMAL + vec3 normal0 = texture2D(m_Clouds0NormalMap, clouds0Coord).xyz; + normal0 = normal0 * 2.0 - 1.0; + float relief0 = clamp(0.90 + normal0.z * 0.15, 0.75, 1.15); + clouds0.rgb *= relief0; + #endif color = mixColors(color, clouds0); #endif #ifdef HAS_CLOUDS1 vec4 clouds1 = m_Clouds1Color; clouds1.a *= texture2D(m_Clouds1AlphaMap, clouds1Coord).r; + #ifdef HAS_CLOUDS1_NORMAL + vec3 normal1 = texture2D(m_Clouds1NormalMap, clouds1Coord).xyz; + normal1 = normal1 * 2.0 - 1.0; + float relief1 = clamp(0.90 + normal1.z * 0.15, 0.75, 1.15); + clouds1.rgb *= relief1; + #endif color = mixColors(color, clouds1); #endif #ifdef HAS_CLOUDS2 vec4 clouds2 = m_Clouds2Color; clouds2.a *= texture2D(m_Clouds2AlphaMap, clouds2Coord).r; + #ifdef HAS_CLOUDS2_NORMAL + vec3 normal2 = texture2D(m_Clouds2NormalMap, clouds2Coord).xyz; + normal2 = normal2 * 2.0 - 1.0; + float relief2 = clamp(0.90 + normal2.z * 0.15, 0.75, 1.15); + clouds2.rgb *= relief2; + #endif color = mixColors(color, clouds2); #endif #ifdef HAS_CLOUDS3 vec4 clouds3 = m_Clouds3Color; clouds3.a *= texture2D(m_Clouds3AlphaMap, clouds3Coord).r; + #ifdef HAS_CLOUDS3_NORMAL + vec3 normal3 = texture2D(m_Clouds3NormalMap, clouds3Coord).xyz; + normal3 = normal3 * 2.0 - 1.0; + float relief3 = clamp(0.90 + normal3.z * 0.15, 0.75, 1.15); + clouds3.rgb *= relief3; + #endif color = mixColors(color, clouds3); #endif #ifdef HAS_CLOUDS4 vec4 clouds4 = m_Clouds4Color; clouds4.a *= texture2D(m_Clouds4AlphaMap, clouds4Coord).r; + #ifdef HAS_CLOUDS4_NORMAL + vec3 normal4 = texture2D(m_Clouds4NormalMap, clouds4Coord).xyz; + normal4 = normal4 * 2.0 - 1.0; + float relief4 = clamp(0.90 + normal4.z * 0.15, 0.75, 1.15); + clouds4.rgb *= relief4; + #endif color = mixColors(color, clouds4); #endif #ifdef HAS_CLOUDS5 vec4 clouds5 = m_Clouds5Color; clouds5.a *= texture2D(m_Clouds5AlphaMap, clouds5Coord).r; + #ifdef HAS_CLOUDS5_NORMAL + vec3 normal5 = texture2D(m_Clouds5NormalMap, clouds5Coord).xyz; + normal5 = normal5 * 2.0 - 1.0; + float relief5 = clamp(0.90 + normal5.z * 0.15, 0.75, 1.15); + clouds5.rgb *= relief5; + #endif color = mixColors(color, clouds5); #endif gl_FragColor = color; -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome66/dome66.vert b/SkyLibrary/src/main/resources/Shaders/skies/dome66/dome66.vert index 3619db1..de5d9f9 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome66/dome66.vert +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome66/dome66.vert @@ -1,31 +1,7 @@ -/* - Copyright (c) 2014-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * vertex shader used by dome66.j3md + * generated vertex shader used by dome66.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" attribute vec2 inTexCoord; @@ -121,8 +97,7 @@ varying vec2 skyTexCoord; void main(){ skyTexCoord = inTexCoord; /* - * The following cloud texture coordinate calculations must be kept - * consistent with those in SkyMaterial.getTransparency(int,Vector2f) . + * Keep cloud coordinates consistent with material sampling. */ #ifdef HAS_CLOUDS0 clouds0Coord = inTexCoord * m_Clouds0Scale + m_Clouds0Offset; @@ -142,7 +117,6 @@ void main(){ #ifdef HAS_CLOUDS5 clouds5Coord = inTexCoord * m_Clouds5Scale + m_Clouds5Offset; #endif - #ifdef HAS_OBJECT0 object0Offset = inTexCoord - m_Object0Center; object0Coord.x = dot(m_Object0TransformU, object0Offset); @@ -181,4 +155,4 @@ void main(){ #endif gl_Position = g_WorldViewProjectionMatrix * vec4(inPosition, 1); -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Shaders/skies/dome66/dome66glow.frag b/SkyLibrary/src/main/resources/Shaders/skies/dome66/dome66glow.frag index 4634238..4cde18d 100644 --- a/SkyLibrary/src/main/resources/Shaders/skies/dome66/dome66glow.frag +++ b/SkyLibrary/src/main/resources/Shaders/skies/dome66/dome66glow.frag @@ -1,69 +1,45 @@ -/* - Copyright (c) 2014-2022, Stephen Gold - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - * Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - * Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - * Neither the name of the copyright holder nor the names of its contributors - may be used to endorse or promote products derived from this software - without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ +/* Generated by :SkyAssets:skyMaterials. Do not edit by hand. */ /* - * fragment shader used by dome66.j3md in its "Glow" technique + * generated glow fragment shader used by dome66.j3md */ #import "Common/ShaderLib/GLSLCompat.glsllib" uniform vec4 m_ClearGlow; varying vec2 skyTexCoord; #ifdef HAS_OBJECT0 + uniform vec4 m_Object0Color; uniform sampler2D m_Object0ColorMap; - uniform vec4 m_Object0Glow; varying vec2 object0Coord; #endif #ifdef HAS_OBJECT1 + uniform vec4 m_Object1Color; uniform sampler2D m_Object1ColorMap; - uniform vec4 m_Object1Glow; varying vec2 object1Coord; #endif #ifdef HAS_OBJECT2 + uniform vec4 m_Object2Color; uniform sampler2D m_Object2ColorMap; - uniform vec4 m_Object2Glow; varying vec2 object2Coord; #endif #ifdef HAS_OBJECT3 + uniform vec4 m_Object3Color; uniform sampler2D m_Object3ColorMap; - uniform vec4 m_Object3Glow; varying vec2 object3Coord; #endif #ifdef HAS_OBJECT4 + uniform vec4 m_Object4Color; uniform sampler2D m_Object4ColorMap; - uniform vec4 m_Object4Glow; varying vec2 object4Coord; #endif #ifdef HAS_OBJECT5 + uniform vec4 m_Object5Color; uniform sampler2D m_Object5ColorMap; - uniform vec4 m_Object5Glow; varying vec2 object5Coord; #endif @@ -77,43 +53,62 @@ varying vec2 skyTexCoord; uniform vec4 m_Clouds0Glow; varying vec2 clouds0Coord; #endif +#ifdef HAS_CLOUDS0_NORMAL + uniform sampler2D m_Clouds0NormalMap; +#endif #ifdef HAS_CLOUDS1 uniform sampler2D m_Clouds1AlphaMap; uniform vec4 m_Clouds1Glow; varying vec2 clouds1Coord; #endif +#ifdef HAS_CLOUDS1_NORMAL + uniform sampler2D m_Clouds1NormalMap; +#endif #ifdef HAS_CLOUDS2 uniform sampler2D m_Clouds2AlphaMap; uniform vec4 m_Clouds2Glow; varying vec2 clouds2Coord; #endif +#ifdef HAS_CLOUDS2_NORMAL + uniform sampler2D m_Clouds2NormalMap; +#endif #ifdef HAS_CLOUDS3 uniform sampler2D m_Clouds3AlphaMap; uniform vec4 m_Clouds3Glow; varying vec2 clouds3Coord; #endif +#ifdef HAS_CLOUDS3_NORMAL + uniform sampler2D m_Clouds3NormalMap; +#endif #ifdef HAS_CLOUDS4 uniform sampler2D m_Clouds4AlphaMap; uniform vec4 m_Clouds4Glow; varying vec2 clouds4Coord; #endif +#ifdef HAS_CLOUDS4_NORMAL + uniform sampler2D m_Clouds4NormalMap; +#endif #ifdef HAS_CLOUDS5 uniform sampler2D m_Clouds5AlphaMap; uniform vec4 m_Clouds5Glow; varying vec2 clouds5Coord; #endif +#ifdef HAS_CLOUDS5_NORMAL + uniform sampler2D m_Clouds5NormalMap; +#endif vec4 mixColors(vec4 color0, vec4 color1) { vec4 result; float a0 = color0.a * (1.0 - color1.a); result.a = a0 + color1.a; if (result.a > 0.0) { - result.rgb = (a0 * color0.rgb + color1.a * color1.rgb)/result.a; + result.rgb = (a0 * color0.rgb + color1.a * color1.rgb) + / result.a; } else { result.rgb = vec3(0.0); } @@ -122,14 +117,14 @@ vec4 mixColors(vec4 color0, vec4 color1) { void main() { vec4 stars = vec4(0.0); - vec4 objects = vec4(0.0); #ifdef HAS_OBJECT0 if (floor(object0Coord.s) == 0.0 && floor(object0Coord.t) == 0.0) { - objects = m_Object0Glow; - objects *= texture2D(m_Object0ColorMap, object0Coord); + vec4 object0 = m_Object0Glow; + object0 *= texture2D(m_Object0ColorMap, object0Coord); + objects = object0; } #endif @@ -187,44 +182,79 @@ void main() { clear = mixColors(clear, haze); #endif color = mixColors(color, clear); - // Bright parts of objects shine through the clear areas. color.rgb += objects.rgb * objects.a * (1.0 - clear.rgb) * clear.a; #ifdef HAS_CLOUDS0 vec4 clouds0 = m_Clouds0Glow; clouds0.a *= texture2D(m_Clouds0AlphaMap, clouds0Coord).r; + #ifdef HAS_CLOUDS0_NORMAL + vec3 normal0 = texture2D(m_Clouds0NormalMap, clouds0Coord).xyz; + normal0 = normal0 * 2.0 - 1.0; + float relief0 = clamp(0.90 + normal0.z * 0.15, 0.75, 1.15); + clouds0.rgb *= relief0; + #endif color = mixColors(color, clouds0); #endif #ifdef HAS_CLOUDS1 vec4 clouds1 = m_Clouds1Glow; clouds1.a *= texture2D(m_Clouds1AlphaMap, clouds1Coord).r; + #ifdef HAS_CLOUDS1_NORMAL + vec3 normal1 = texture2D(m_Clouds1NormalMap, clouds1Coord).xyz; + normal1 = normal1 * 2.0 - 1.0; + float relief1 = clamp(0.90 + normal1.z * 0.15, 0.75, 1.15); + clouds1.rgb *= relief1; + #endif color = mixColors(color, clouds1); #endif #ifdef HAS_CLOUDS2 vec4 clouds2 = m_Clouds2Glow; clouds2.a *= texture2D(m_Clouds2AlphaMap, clouds2Coord).r; + #ifdef HAS_CLOUDS2_NORMAL + vec3 normal2 = texture2D(m_Clouds2NormalMap, clouds2Coord).xyz; + normal2 = normal2 * 2.0 - 1.0; + float relief2 = clamp(0.90 + normal2.z * 0.15, 0.75, 1.15); + clouds2.rgb *= relief2; + #endif color = mixColors(color, clouds2); #endif #ifdef HAS_CLOUDS3 vec4 clouds3 = m_Clouds3Glow; clouds3.a *= texture2D(m_Clouds3AlphaMap, clouds3Coord).r; + #ifdef HAS_CLOUDS3_NORMAL + vec3 normal3 = texture2D(m_Clouds3NormalMap, clouds3Coord).xyz; + normal3 = normal3 * 2.0 - 1.0; + float relief3 = clamp(0.90 + normal3.z * 0.15, 0.75, 1.15); + clouds3.rgb *= relief3; + #endif color = mixColors(color, clouds3); #endif #ifdef HAS_CLOUDS4 vec4 clouds4 = m_Clouds4Glow; clouds4.a *= texture2D(m_Clouds4AlphaMap, clouds4Coord).r; + #ifdef HAS_CLOUDS4_NORMAL + vec3 normal4 = texture2D(m_Clouds4NormalMap, clouds4Coord).xyz; + normal4 = normal4 * 2.0 - 1.0; + float relief4 = clamp(0.90 + normal4.z * 0.15, 0.75, 1.15); + clouds4.rgb *= relief4; + #endif color = mixColors(color, clouds4); #endif #ifdef HAS_CLOUDS5 vec4 clouds5 = m_Clouds5Glow; clouds5.a *= texture2D(m_Clouds5AlphaMap, clouds5Coord).r; + #ifdef HAS_CLOUDS5_NORMAL + vec3 normal5 = texture2D(m_Clouds5NormalMap, clouds5Coord).xyz; + normal5 = normal5 * 2.0 - 1.0; + float relief5 = clamp(0.90 + normal5.z * 0.15, 0.75, 1.15); + clouds5.rgb *= relief5; + #endif color = mixColors(color, clouds5); #endif gl_FragColor = color; -} \ No newline at end of file +} diff --git a/SkyLibrary/src/main/resources/Textures/skies/clouds/clear.png b/SkyLibrary/src/main/resources/Textures/skies/clouds/clear.png new file mode 100644 index 0000000000000000000000000000000000000000..436d4439ce8e8eb6437e4c72ddf4a91533a34f34 GIT binary patch literal 84 zcmeAS@N?(olHy`uVBq!ia0vp^4j{|{BpCXc^q7E@w5N+>NJZS+gN-1;!wY@}-+#ao c$_QlFFbg;^Fdof)83vN^boFyt=akR{0I{nRWB>pF literal 0 HcmV?d00001 diff --git a/SkyLibrary/src/main/resources/Textures/skies/clouds/fbm.png b/SkyLibrary/src/main/resources/Textures/skies/clouds/fbm.png new file mode 100644 index 0000000000000000000000000000000000000000..6985f6ed820e4c93ebe8ad38ed5307da52b2b81b GIT binary patch literal 1385784 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≪ax%~)l(EpkjV4^cJCDnLJ}eh@PB>xOS4n+f6r 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 ^@qK?;|y zPZDu*M?dC|a+11)53?z>T{ESaQobNMZ%@OYHe zDM+RD?p^s9VtvVr`Qh3!yeJG~8#nttKM0tpo6qucb90kmy(B?7fTNBak)q63eTN!z zy3hc_SsqyP9GG9*Mcw`J!zQjE_4vME%6ir|Zf@#Bl|0okO{l+WagPvo}z zMfjE08Ec|MmHhfEQ#gApw7KE)VL<*(w%)0l)XO z1Bs+=_X5e5qxs5@zdav7J0G*^caDKl`~hsvvo(HUKC#*5H9c*ejGWx$R2+DJ^8LoF zIz@%2Lwp~&g+j@E36@kriOTd>sjLwiwCQXFiY;2~1Skk*NeY8|HKe?F(cvG%48>CA zg#^xEvZJE_xmxi{0`C)fcD-Ut7z)+Ip6gqC{&Z#nDFW@I-=TC{pdzvWn5C2@Inttt zc}3Zf){RS54Pr`iq&&L!tS*#rnAnR^>rh2Pmn@utWt)SA z-;ivz;>y4v%Na6rL6Cw?n6Ru{$lhBmh%GMFDu3G0?D?!>C8zY>*3*bq%d{fE z+Nz`3ZsHR1@`QbC3?QTXoAmMt6hiL%8^eGF`k&-sMeH0L@$i~_;IsUH&oO42C#NNm zPIKZwDoDWHpRc8x@sGoF1dOP48SpRdqJ}vXF7q;#YC^3KBw;<@VK%!LG{Qd;t_5b? z7o1{aVKvJ1ZuP2LR}T$nv+ey(LV&rL4#>|VwpYh^D$jdfr%`)A%jp(hz#}5XHN&dW zlj@`51>uSh@aJ13Fkfrw>hO1iF=(Z~7ezX_k^wo~31d=da3l}BR}KOa9I zFK?5Vr{}i&_QKBWHK3wmXE*y_t%aQhKqJK=n|ER_$0-TaBF)gv7gezr4CWWHr&FuE zfHQgVrw7i!oASJ%hkpq{=c}q>?RQ|dassAUL^SACu}(sdzDQ$ZqvvIBjWk<~!B3`q zh*N2gduDRfgLv2c#^HD5wP%?(!NwsKlo8#V&a}A~h$2+R*Ur}OSnw_v?1{pnd!SOZ z2_v5pPlmLFVwiChwc~xUgY>#_lhnDRUq#m>(L$`#zb7iu9K<+d2aoN-U~a_xu+?4f zs$Tf9Q-3`hz96V~bPh{mBIg+>83_6=j3jNeEoEg%ZN=r09$H!Y+CAW^bD*Pk9vJ6)K%s~5*hz&Wa&28#Vh!c%?hYSZ{=RrXdEFCvN zi&lz|`dQ!F(colnd-YuT@#&UY#MuON#o1UwA=1cT%s2k<`MR^&d~d7rqu=eZ!Ac8P zWZ1ao%$qk^jrOY@)#Q;#x35oD>%1n$AL6!uJH-8E^dSXo9@AZzLIKB(vK<~17~5+d z&|QoP)PeK6i;L^)>+|ay>8g7!3O+Pc>CT0Pg($T*OPQ!^?H{@XC}mhMq7%kv5rifr zkG4+8aR~O$&aAElkPyDrl#RBs~s;lTZ_4$3V4SPb_D zeyuc<#@GZbfvk2+-<(2yR_|fFaE0$PdWKYy@O_y4Y&9Pe?<-!9pUatpK$_Ogd)8Aw zS1=N#>74C`k;81NPt~9TdhjN#oUw_6P{SWdI8)qxxRgE%o(%R}wVxh0XeiO~A(683 zvNCc2mnz3h1B(Ecn3n}~C4Jb3&R;YFY>Z3Cg}Nvis&|IqZCD%;M;YC3;wI>w%$Pj< zmrR~n_jd}}{%bY38a)hz#coNaG({Pm1o7Rg(~r!F*4B&)zC=*WkYS=%*`n}0_|vr) zEOnKbC|$=QKiu9wJl!6zwK>`NAVS)MeAZ9 z=PN-3wC;1RW4bT#@{zBaoNFA>*LSQOJ9;#W;1XK6WZ$JICkrdmUM7tdkhP-3jV%5TE$p{ zNEWEOyt64m%1%P^urqS`Agle+obAvmJ~lo!&LJZ=bBzmlPM7~q%}p;%PR_0@ErB%N znoWZUN!Chxz*)$4ag|}G$JK5_xo)Lli|5NDC~I5yxdV(>c`4_!Fl3geEA!OnpmWG- z7J%prdhK2hrP!6rW1ko=wRxR&Sn}=&`kUD7t<3IAsLI;~Xrof4_I}QaTdP#DEiz>F zKO83|=ZTOjR3Gw0Fo46wR2i~BLxq@`D^)YA17<+pge7;0Rz51-tFj;7_Zgw=5{K&O zg4|*t9KEo!y?Kc7gIZ6#SC%Cx-a_X$wI(UTvza4Lu1Gru_>~y3h&jn$GQu08$m_X~e*Zxbyj7&0jDvQ3*N2Sa*Sm zQ8`6g)B!Us;=_T>kc-;UldoU1u&`~aV#E02-?5oxahk6Ey=_Y_@9#>#xVcEiTxl7? z!$CPBBNJ2afUJHjmC#VuuehsEp$b1|tO@WAlFUeC&~n(4ZPYHiaWVJX{r%r}7ffBe z+eb~$&Na~c%nwV*`0!y!U2<)|?ezu^%S8A|AREk!m2)@`1-z@r9gjYp*>=iI?c_4m zgCh4M4F7+92H2Q|WOEBU^&T>xKr_hihL#SbRV=bBGV-bGW_Xsa{n_1<7$xL{93k_x zIT4q~=LqyYPUGL6N4H>&vJUvQ6<%vW=NH9!AVD-C2H9T~)}7c6i>DNJz28sjNrZa6 zK3$89&#vAj+5@an-*adQ``|mJsJQBk_LX{9cIn)Ra3b9Epwng;-0F_}##;-rxS_3c zL3X55%&v$jq1I-<$891bge6!;23S~>284SbQp0-12#r_iQHagj!=Gw{-wLwSt2i1# zbQpi-2TQo=S!ikbYbfeC1_l}dO1z_~jjWH44d^r0H_YgaF&z9Uaww-iAY?>he{Az! z1cE16!n=T2GILOG%eS)13d|;R)-=$O3zXoV&05ll2E7{E8A_;6WJi_Jd8di#jcnxG}HG%v+)D z{LbR^;-;#+gsSu#FJtpW(i5G{*X#sszce-Q%nSdFL8$bH9wF;?NaQ?m-DXo@Hzu=O zwO-rQP{{L^1%q9eRm*lZ`|A1)BEq)4wH8L}#J{azJ zy^0$zV4evvRd*Qz0p0)1un*WpZ`5H?3|^2we@=vXudM7qa&UBTXl>^J{3oU5RZiB{ zB^B^QlPgP8qJm<4bsnZJcX(X?=pz$goQw=aeQuvyuF^S-+ubj=`s|uOx~wNb>~SLu zd(H3Z_U{#_su1-DyAk*iHe{XKQzIF;4g?I7^{qe8yQLQ)RJ^O~LlY`-SeUm0`+Tl7 z3cXfusESb^4E}tTDd4$~2}WGZ?itt)vQId_MaRIxLdC>RP?1Rbp@43S43=Zk&b=w( z+}I>AF@0MwH=1QRhAWs0xA-_XB-Z^^(W;7yW21j4Y3yZ?AiBwUDVY=w7oLImziQ?$ zn7ZN>i>CDKLkODSKHjLP_*yalGN~7mf9*e8l8QwqmIrSadgWiPgO}T8s{1-pwperU zR&}04mWJC0FRffvf@PNPz$bz*PE;D7yvcsG5k48R760(M?%aw1(J1uM{I26S_$bbIbkSfwFb~#bqQG7*@CHz)7d1ZWB&Mh35)hlBqFvuO zd;C56C@O-1d^l4QL3)#s^17$2nQpSzlND>KBE8ByC4X$J$y51R#bFN~3`) z&yj6r517!uDoZOWDoQIWBG<{XmVAG~*JbffaGtKUd7;)mKwglss1PCkwhlM<(G8k= zRqL&8cR7G31X74&BYQg7uQ^YaV-}j)tz4e|G)8<>Qc~&~CEncwk4+5sMnK;tv?%J6 zM|f&`J51@V7F=yTaTU6lU-K6I3#|wa;g=t-QIVB8S?+_oL`r%9_i1~tm*0AK$0I0Q zM$0p7iC3UDxLqws(LqvK*gr%%!20r{+#f8Vq+l(>o(Q=HiG}O>*p=kzTF}0hJ$l_c z2!q|Q|Ei4?j2~9;bm6>YDSd=?&difzK=>wn6+EY&K-VN>0)r(5n~pk^sT{<#>XQH$ zF|=zQRH@Kq`KFY?k0SQ*(42~zpP^B0cYhb3ga|(`HOW9tXI&JS>)I?GP3J3fmiIpW zWcqIfTMcwG!jiirm|y>ylSWJNnN{=j4GauEin`n$x1g)F7`8j_&JN+@^o-}eb#aHD zI=JlSK@Ya-9IKSUbu+&UywW_`CE2sa&q=J zZLLtUZqkESHAK`_$h(E71s=b)5yMQdy~GR{W&~SEC%fjx`ee_Jql|Ppd~@_)r+<-E zdx3u&Sos>JkpW3}X9MP6%AioRbpKj*mDqlbsnQRZUPUWxV@+!amnyq06MM2tWG~g#*SE*+O6+k0TIucahhI;sIl@5~(|_%Bfwj$h zbLFAV>fHKj=OWCn$ti2O-jswy!okDxgNvi>dkY0;iQrD`oj~lc;^N4x;wJ5n1d8IC z`J`W8WKef` z%k3kDT1F>ySW$^$B=&P7ak6^Sq;P6}=G`j`|1sST1f1hn_8l^n9-dcR`rq+q++5wz zzWn#9E@wT;(qC%x^KC1DoPm?;jGBs+ob>d}(ZR{d&hc0ItE%3w{Y%5i8YT8@kREBY+|kfnA^qi&mHC~8VeUXX$PIf8-|pO_q<6wQ!kaR12CdG6?=p`p8Cv=hUM`7}BPl`>->eEV}QBqw#~WLMy(brFpySyGYtsj1ZYm zmzHG2*v94x?uv3oram5;17H@r9_=5yQtO?tr^o}lDf}-_V-CwLc4q(Y=gbw)+0V zz?;YlQE=jQv6{Gg+wr)HAyiC80ynHx9=4(K;mlJ1rK6Ml- zQs^Q^bD>Hcz<)PsAY1O`c6WJk$A=gZE-O1AGr(9>^dF?eVsB?}&#I_zK<@K>OLsQ&JQvYX%f`ObBJ=4&^Dy{2)M zxCGFx3WVoomrtLL;`?%hz0M5Yx?XMp05aFM^cpgr^TS~rxj>~cVANI^bir`siuygy zUWAS4^lgl(71ayO0|W_^OoT+HlPF?v#M!@t&42&wFfe+hCF&SOMCj;Pg~Z;zrR5Og zrhWB_k(Nn>cW_;)YUg+M;+coP!9wz&yIl;LDowJ2j3E=gfp#Z^i1B+kf86*ksC7ba znO3jzntt2X+DtBj$stss!D`m2DCR8F3KOW1)8^%@Wvk=pD5-8^sjN)c3d0Y`WS*XP z7#JXCe|@_x1|FUU0QRG6Wnk{0Y-#xx?dAtlvDMy(o71Z=tYw?!-Uo$f^*Pi?ReLx(U?Ippx99zDycXY3= zs;d#Y~r#E*&`^CD~QI_^p~&I&hJQ zh*nQup>r98hP|dWO{!6QX3od7wso!5rr_mZWhW^9_BT{l2uK&@)wIb4BE3Y~gBY$6 zT7yqY9Fd+3?tNyi5mE)fkz&gE`q|ZewvDIVT&eB ziO~!<&oqJfY5AiSNRp&8JF5wk`ooXnqLwZqTJqf}SL6i1_n4FOkArUGEMOWTrRuu) zsZN9V#%(|+^}tIz@x;VeX#Np`o|1Uqt^8@W|&P;X_(cHOkaOl`03Fl2jklG(aFKa z=H&SB@Yvq2q?Da)bnLxyRCIh)RIGATLZn4{Vn+72%mn_yiq{pC09jmEXpTSgChOB) zBo?T&wMb+y25;>((|_P1w(fCPB>$>1=$%=itYTnxm8rtz$=x%WL3o3R(z ziRM{Thj*PH;G#9QcXrKrzlBQEo8jT5Xz&1_?1=6uo%S?~62sLy%bhVU={>^roL)n3}87%`Cu06JWzI&~@h#ig)~_t7#~% zoxIaL*)hdHi&GdJ5%{ zKOCyt8#iuuy;=Ip)=cdDGQQe$w)V8qgDvKLmecef{S9(_FvG0+3;e*Fo%VqAQ@Pt( z+YS_l66YxFkiaz~poXrki9teu8DcPMFryjp_ubh`FVWF1Yc*1U|7y#u@DIBhtf1oC zDlNk1_)e6lXa>Jo*bTHkEVKswqQo!Wqn$Kp_msZ~2HmmJ2M7i8*JCOC`dTQW=n1CL zM?WPX8sLTP(dY{Mk-f%sK^-D}`w$@uTG9Fv2Mw0MW|sCXHi&80H#7morKthjNcDVw zbvJ26g_iZ%X}_wiP=IS7Dqi`$;utGS>95jqCu^HCDiR7ZvYc;=^*$qC7c(=#g4v*n z6OskX@(NC_&KVkiNKT<3wZFc-cAgq$q@#gZXT|Y1 zzXCI#%Y; zrnKUuppdN=4{X-Zcg<1)9<8pbWtCveO>u^Hhdh7c_1vLEe>YI}n$?_(Yrj+Vy_R7p z>~GO3m}-04z>?50{lKUAmDlU$e;l1vR8?IYh0me8Te_rMy1TpcNOyyTbeDj%v`9-y z2+|!QB`p#njdbU~zJFgbxPm?Qde?mCoDW8#nsm!>+2+#T=|)(=Dxg|6ROT$P|041| zTKqPXTS^}H6 zIs3M1E6fLwm}T)s-`Q)F@V*X;wNcK{X2?3p`P=>0V)@SmO;Rteh+-+0G!_C@yx5*z zVtzf$&$3eb;K+tAMq!w-IK<4{)is#g7%K4Q0vkM+J}rD-`2}8m<+CcW(6Mr{@o)`z z>mA9!M9sv6<7t&Lionc6ASem&JzD;HdOj4QUrHM7+${q($IFt^Ht`pazxsdQt^o)! zKO}+Kg}J5QzkmOf2pxt5iTyrV{f~WYW}co;=5%`P{l-`K`+#(j@tS*Sp%BUyeIQ=O z4}4a>2_&m}2KoVVd%oUtS&QV@ii(jDuEx<{YSrm+e&ifk@ZF0TNC{E4i#$oI>sH~c z;k=L@$QN*ZQ;tV3f+#|ts3=_J_lq*VSmf|eJ!8P(K@=ZMi75P&aB^ubIcg_Zkh>t_ zqt+>L2;u+I7N$7~eXYkA`BNTIH9DT0N7)J#!{7f_og zz((ldu#zYHqhB%)h(y6>-Tj^2n9ZTcfy-pMG{=BErw?jKXXo`Ywrv$}l=dzd8=C7YX@X*y|(g!MMA=NF43k{SjY79r2n zx=%9jolIO)%QJ>%#@SgJA4qW5!KZt}Ph*XPV7$E48thCYsW7^++TX(Oy$`gBiCYX+r26z6YC(KIWW6B}* zBYxbKMqcZwy(xVrtPUB6Ry;<%IA!!I+4S11p_p2o?u|@}1*PnlPr>KX@k{WxEiF`k@jdo?wfmcDofBRvuI^~elyer^e z&DXWZ_1@va;J3i12K+(5bT)?$*6$QT-s?SQwQZxlwPkm}*5s^uIK6>`_V}O*Et6F7 z^L{J*t;*K6xWrh=-^NEz&qxYL@XFejs{gsV7k>83F_<31`MJPkBEJk5^uc8K;Vc3E zfkHNKSZHiGm_=9@i*1<>3CSF~xU5CG7zAHhkXy%1EyyM;j%pUh+jx%t9Sk+XT4+U$ z%?-uH4aE&DA2B=wJ&cs3Z1GZ-iX=;t1=I)pTibW@%~k-*9WE65=`RrxAyGzp#)6>% zg)$0;RE~tGFgHJ3dZ1%~?@u5Mgt$%i;J9*PVA4YEog6Ce_Gjmp=h!HG$T^8+p^`9!ur8!dA{TAhU8-0S2p?Jg z;Bbk8T|}J_8?7iU3qJ?*EBGWuWo0yKW%_|(`543-;Bs`>dMH1A6&ze&qPgch@_?5k zOP@JLXlzGJ{AO0r=goYTo^p;4>p^NKXB`Xd-wd?_JP_bV%ww%t&>N{cChW;E{ZmJa z-p6XtXq_wf&rj^fkN!DZ#7Gz4LXCn;HAL_@ek~n5Ur#fg;&wL3gIttFn>uItb6-@k znGWaQzY$#+Js(-r!{X^rB=}bf^jY8ago)p*^`yi`UUd8!i?Mqj^dGrb=V$9nAu(~d z?8R2p{nVOsaHBSsHG(xg3HfZVL;}ni^BF(;s zQ)4r$FeBh(m*+?jTADH;m zk*Gopx$V*OGT&!r7-;I78LX|WPERi_&7f4&)iHB2a|~2=H{DclHKMYFRJ&KK4k}ga zS2uGYadu0>AeBo?Mnd*srtlVP)4v4-MPdIK$Vs6*T;f>du($R_-BiC2xSz2xur7f< zu%N3iS(#TrfbWWW;W^K=uH9pD;9Bb0O%|p?A|_DM zQlv5UpbnSn_%xj(nyOm~^i}}{S;;32Mb#gnv_-%;-YUq+%Pz#t&jRFxVVOET;SLzH zrU_gx()B-=uqB)>TlhlBCPw)ec)C_^QzJ|(b;mNuYD%he+jC>SCMN^adUZmYd}XBZ zNn3lLgcpvYpRYz~QOD=sg+B@@u{G7-=ZF>?GNvh$Q!B(FiXLv>3M1AFAhaM2 ze&tO=Eygl2Z8P0I_n)9AOBf}LEoGt4vJ|JPtJkDnKVPR!V_uBz8?eA&Ou9J13c@J* zUa3f%QJkLjH6%rdMX0*|3up`lIf6iUd+!zD2Z>ig{K7n<@svBcHBXShH~)-R+5)#g z`7w4fq}II6_k8|e;BnWR;|QQ!z4d&KcyrwOIRE2C7H6J#bAaD-*PshaO*AtUU+a5 z``h$6?_nmsYV2ECram9U)w!akmYI{CZTyF_ic)M8{lA?p8}~U!KF8(~eTFP$S-gxA zp9OX#1q)s;&vS6q8gt5B{ziR&4W6swx+x$aF5c{(NLpBE98aB`^iae6ipradt3DM` zzr>%hmQ_qiZZA>ZpvIHhk_s?Fd>JMi5&2GmjFA^t&UWcUWFmsagBhW@+F%v6D z(yTxmOL=!Omc2A<`|sZkHY%41?>C`|9^<1h(9&2i5rF;n&6-esi=isfi`8BF`(Y88 zW|~D_pqc8{&HyyVT{fJIrM9PX^}&k|08$iy47}7~P*pW`^~7YOd#J5ewe#8;-v0aJ zCBvKsx+hh(B5}+s;&a?klb9dDiAr~(Z? zo2I&>tlNAAp@dHD>bJ90Txt?+Epf(X!J7mMn=qxKMD=`_np8rE}B_*RpvF+_u z>9AT`LbGnqq9;+UQ64QT)V%}J5iW)pk;fy=3y=heJJU*xQEiGzT;lztS1OBUcFA!y zsWo)$3BEx}ZHlfm^nG1ldl)%zyAsI9#2CUoh???gKcV};N7?oDVew-n3~pF0z~zSh zdyozMNCC8K9zc~s!3aYdRi{oJp)gxnp}D^Qkhtr->o)MjXp!gXI}gXc+2t!P&+l9B z>p;MQi3+(qT@nma>@ywNMwhj0K$(vrkt-}F3D%i^qJt?6O5wCx6wSWoW+E6nw>NJY zY;h#gV9Tg%61IC;1Gh^^MG}g`1U0v#c@IrhWE&uQ!Jihr`O@N%(gK?{i4{j_OF5}A zp*<_4NQj5Iv8bsEfH*o!+C#iOJskrAJp2FtjmDHjv<26tE-&oA&!Cu)<7l<{&2#Ep z^Uti>wSa?(U&kHy8^~0_H`5Bo{lnO+A;&<11x^3KmuFFFKuBkI{Ut2&ihm`ciwTD? z;mkvYkCumxho4!DuI_Ug$gGrtP3{s4pQk)-Z^2O@iFPb)`zw{INYJ{j*JHPb=qqUS2(6UMS8}#+` zGP5!>h`|=vrkrsgG8aBE*c@o?-UDfhC+k>v)cJ#dWQ)3|==+y818D*t+(p8G(a zkZ>xz^X>^u;M2{IRF_|7^uJCzCL`>Ja$s?7Y=h zj{sX<-RE6ozyIu&*s!&krwE02g$k*Px7K9}561^FGXiY&srAKYc2 z+s(f_Tx$;s2KS7c5txQSAi8Ukaqe3@e7vHE$uZ7q7a+5>%!`~9Hv-I7duJyhiKIuc zZvaoUMp{gD8j?cnx>E9RFikb8?KMi#|0_wvuCbm&;;l#1~$m7X(O*`PE`>pV_ zXL!8O(74}ZWM&W%5)u&+NM6P8@bmZK?QYuWy^5x#cn=y~ZMf3p5q$@U1ets&%cf!% z2hwNxU=SeVRP;?R&dg)&?gG&9;AUvSYS$BRF+7PAU{aFr9y`~tasrh&5euFF&d=Xp zI$n+$Z(2o9?Mp-XCUwV%RBa0DoFts7>F*WO;;RM6zaXndlQzngt89}ZA(tZIVXt01 z9r&SdGi|0(ix8IrPdWa(rUB}F@P|ux_>rVE_Gwb~;4p(9EZ^qOH(nfU#zvC)jsULc->)*FD)OvT-XR1ddF)#<>qT6KQF zOiT{PBwN*{E}UlaMY$igfgtb@9zjMPr7I+9*ipgWfrVCll(g>v?M2{cUlMOoLI3UB zwV|O*MLB(z_an3K0t7@&XR35Pk;P5zkrG(f&u=ZsTi`16Sej^yv}#K7l93NB*U>4g z$?_9=1*qAO=EhW5L0SC=pnydWy%bPaQ+N6B`-=_O-cz(+*N}_8b$_0j>Dt;V?Ns@G zk6lyH_V(Yl$@S{}$rC78JKM7>489wUxL$1wx~~xd-G839eK~2>3Rs8ci^APDzK;F7 zFmO)4Q81CwQ+n;{s?Vq^CWN?kSy32|sj+Aaaic4V2r|oe`O&;33DL&;^RW-EL(AFd zhJ1DWD#$dy^PFFGC!*2;7GA0&_0B~I-9U0BlRY7IN!q} zzQ~qoJI!j|I5m+qkM}|c^9fQU36-0TOH!m5OJJ`h-m)orPS+Y~j>*@f>^_XvOZF{k@ z9uGgN)p!2>kIu=()hYHD*&#;yAsMZ-Y#e+dYY?zIhtB*zI?Sp1;WnoSYb&s*$Yy5L zSC$@<%sgl#6OJ(w{z4MLgX{(#xeX;G3a>SaPphs9%gc_e!Wnl%$qk>Xd% z+4lC=A(f^y_~(nNhfRN=xkRyl9TgPV>-7|pOb3Q^7KQ_tAd3xyFmxNo{Kj?-O<8G2 zdG%lqfA;9&cLh@9@Y&0)q+21x#N5wRLT`6_&boqF?+r3D4Y0_CJf6;)55BGjUq6+v z-LJmszBju$Sr0mVZudD~E=B(@z9|*}n|udCCa%B3$F}JDE6nFL^^A2*byKoH(r<2Y zNkEVfXh34T?GAKUwkj4Z!5UU*}s4 zlL_@v{3xB8px}%V>ju_!obMe>#eyC{Bo7~?y1sZ7zmpp-{1k~W@}!9lvMWho-&3RS zGABdu$A}_Jsrluiv`y5X2E3&9I_42P+$0NZgrd(?Aj8?vP}x>f)7AjOoF(mFzrGNQ zzPq~*Y{xbG&wAcQT8WA))kPVQuV3;$?&fW}MTE^W&r$q%=dtf7B9j}lovU`4#_YbD3v%!KM|GsR9~Nq!7f^vEq553yr7B{ zMW2rvCGkP*BOG1|l(FUcVZmWV`jNg!bn_v9f(%z4Z)-fA(xE9W4@Ly)Y5M z11C1O5jI2oUWIl4_SqEtFwka!TaKHZPK=jTfY{K`Ra`~@wnd2$9}7PN?+Xezr~eq3%f>a2TuEvv*doHqze1tjK5yQ% z^zY>69)yyXzce=U%+vKF|M8lu$kvLhlJn~lTvGm?b8RzSPSmS7l=!#EakBITu@u&x z48o=MK46MeXjbOP+TaeWwv)6sb=1c)X6e&$adA4{KRP(Fclcb%G_I6{{x$nSbcLLd zRy^T~wgNM30I&MOT>R+?3S|tT`{YjLCJ~Z0ZOxPWqnC!rt7yrRI~QI}T%6LC!?l(} z9p@dU=5wy}XGcb(UF-C;{7jOl&F|2sRae12CYWYyvRP86GY*q#mn0JoD)5U$IJ(8W zr?dzfr;{w>C6$aD#KI{%9N#DTIdLw#dSby$rtmseuWXD!X+OWl7FICoFVe zb~#~Oqs^FV7!%A)z!IfAC=Vedcow$nY)l&q8!k?JmYKM1fT_^)x?}hLmY`>3XRWL6 z_(CRf{sAohqKAgc`CX&#Le^$@u%4(aOvHjO7B^&&lgY&bZgv~+%O@>50v?Y#v5!KY z2C=)YBRGR^2C>E4LylMTzq+n;1aFDrgo3No)xXttJCD~pS2c~f0x}sA;w!&?&g){o z?XImXb%Htf59QSS7b0kHYI;F3^aQUGNYwH}9qY1rE(2uaUcM&bx(#R*bo#rfBOTQB zPZEJgRtN2J>y^%PR+L^SInflW|CWn0s`WvEST6h}J3a~|W7L{^kvt6H9@6m`A^qq5 z`!KwGv%;N0I?CdO7Wp_zUX>nykaZA}}CJ{QCvHjFyobx5sn_ytvH@VLW zo_Dl@PmJ!jYIJ9dAKXOugX;nk$mtDUr7F_gmoeP0GnWA?h?+veduF1KWagEwK9S{wM~tH1tzFgXV_EQEc(&!`?u*wYH$mp=MU%i9#`-hmj3< z*6-i%egCaCd%Xtjl#)}JCU&~xmmssyqU62AAoF>hwi4~G-YAHkl{`Ra=oaYW9 z3Fm4G3o>&Evyo)Jzr>KF{Ug4{6BF5WA?j@AU-0~0xC;qE1T=LV$q@vs!L=Y5MtdXW zPVTt3`VA;M##wjUPI_x=+0<$LSX+vr;%{C;Bxo2&S0LLB+GdVF%Lw%BynUfWi z=#CFoF);GXk`t^S{EMsVkzTpD)gBL?2nLor%Jzv=CYJ3Sjs}{s|kO@O2?l-a|p3lB>hMYwl2j8tf0%uN_$K!Id z3NdGaM9`m`)c^cV7Uo9g|K)X#qH0WRL5?gMm~-y}kcSxUTBNTm`fS4+0sUFz&DHGk zerm>V^xT(7?IuoRpsM5jCM_HE$$as)C`I{Z(rboP&RkG5EM?fXYruE^`D1+vBtPh3 zB7+#+1Xv|l&Mo0MSetuNBDxcFa_rYA*pTj^7O*5@85s_AhfSm zW$S5yGDfJEYBN8NQv8nY!voq0#_G`eNo3;x%{(8zm2GdwNW;C#(0g@)y9%8O z(hsF2d)@nlWS5jT`L$iQd z>gZ6T!Exn!7HIJWWh-iGpnL_O1(w&Av<*IFVIfdYE&MiOC#*Lg@%(gV^UhTqK)kfL zr@6H@XlOv>zX26hNojO+)PWRGK)|;rO3r_Y)M50rVS1yOM&D|uB_(;>2E}6CQn||L+=grGq2e`b~4|gV`C*dXXjfi zHoje-+OTpe=LC7Of6E!)fkn(z+eCu3Pu z*BDPl(`&u$k@MijcyT#ROKQ_5vU3=k8fkUZ(;o#_;h3}gtXw>uZ5lQObu>}v>=i(H zFXip6YZxmeI7P*9Xm$b8T`ym`{^Z^D*41xryx)J#6~&(71O$#?sSS_HrCYhu49Sic zWCsUM;M=OK5{9j7V4%PL*3>~s$-_hIwUoZGrL$j3cMQJkMUa=ae{qkz5?q)heV+*K zdt_M#8s!YMNW44@@0oW0BGlHbmuC_}2bk{I)UJEhbE!4+HHO}CG9fOwCYq*a`J=4vO2c5#sL3gZvGl%_Vj%8j69^& z_2nI}E6a1O;!ls&g$N8ilU0T_>wD6ZfLmEB7mb6UB7H z8U^BDMO*sazzt+fj<1rOvN-ZYd>&4o%zk|>{`&uZ=f;oac1vGs2NT*eIn2ITPd_YC zu&ZG<6E@oFeLM`g3NP(^gfX`U_s{3I`~F*OLDUKbRU-TbMAl{M$;k<%_@w&>;V6(M z?S6W~w6p0ilrH2s@kha3G|Bzcj~khe&%Y%rqp-H|)rmCi`$H#5iEB7{^@BjqIlDg&Dn`;7qcO9ifazSMYzeUVI=mwN|~A0+E2!zPGF)pXsFa0K7#UbLd7 zF=_zwSs|VPO~9cb4pDqkK9}ok#dJxDd?E>IZN!w-k-e2G8%#Tv%5>*`QBxr#o8l)3 zdCtlsK+5_^z0oK{XCk?@?Ow-0y0cl?56!55WefTQXaj1!l!qK3p34Ne_{cd(`6@r$ zY|s=HI@jFEHM*Y?M;sg~16Z-`b=&(JYA|XdQi!6~(PKuKwX9EsjW`B8U zQ)diCQMpJt+3;ZKh=gilE|1OFtOGA7T7QqfS^m+$?ZVwB2T~@fHo#S?H1w4AlMH8i z_)jGp|D>k9Jrmd822!R3nGJmli(~A>LgPDGGIU}7w*BFSIlV?tLBy%KpYyX*^FN3G z)OTMP+wWU)8H%b_d9|@M&){bu7$*z%g%pv_lq00*#(cxckFw`8pnjkGVQi|_64W77 z&?B5-6F?48G*A9`-tOYZy5NcXIZaLVYTxi=bSg;hqD;{z%fxDY$kEZ&2TY-r2AIPe zx91P+B3G2co+mwF@b}o{E8T8uy(KRv@<5?0Fu?w2Y4ksz|9yXbyw>iuxxbZQr$Hgn zgxwVSAK2&h56O_{c*4%#Dw%9%GjpBZy(>$A+Vumo`4uL6K6=*G73SyP^$rLBHDesF zGzLx{<(ml9zSuRI(h@*N3)8VIQHZ>06In9J9ZgJ(gsV3m3i-UBjTEi86K)@uGFb+N zr|P3Zz--=%ExQVAdGUBU73yy#)ZDEHHwLrJ7jmd~-c zuY1F!XnJXA!ptXpGtqKzW6qd;s~p44YnK((iT_Tc5RiQ{1T7*?5HMdFWSe}b9%pB- zasFHb`pw~Jep?63!hIc8>FJVp(22}fB!#iGLUw9-D3Qs=k)q~}h^_mUYST;rHK9oliaPyG%r zl}mc#A!rKSTB0{uQppf{*&^{4T4_S6i0OqeVF*#e+|OybIwt6Kca?W+Ck#~<54VrN z7@M4foIh*3)(LwnTGPx4G?XRSq5m|bK9v_uIn z`xNow6wA1mocVQOC{)h!pNbP08s%(#kDh2!H(~f6gkQZ5@ClLpp}UsyLVStne$8kMJ?L`E~8z58R2)k+vL&j!0Uf&U+sol zejMCoj=NT}Oem?v7xKCKDTXHJHrA9@BBZ~=5IX69d{}x;C{nO?e?6~FyUv3%2^2Gv zaLf%W8T7Iwi9ObuO3avLYvJ7QHlg`qvB5GAJ7<2T@N|_cvafAz%bJ=Ryxi-Xn;V;T znN=kpDDjvdEq+}=?fY#`1{hgDM<+2C5+yfTJj4UvYADQ3o*pBkSd&29*-$a1Fe@f2 z3t&9*OJ@wNd&(YuAuHn_yQC{k| z-l{9Jq@?>soAF~+!mpqeRZOEwO0g7#MC+h)+kxdT*AodTHD=J4u(;*~x092R)Dn3) zkPn5Fe&L>;=Ei4y8EWY7>4{Xq{b^D)9JP$uBTZ`zdm3aIUWxJY(y{y4+NzuXKR66J z=I!%)q(YOcYue&WS%^IMA}!v}&4pfRr)WSf--a2wR_TWMhnqT&AXX`rrch%YJWA2- z2FMP0L`g#{##4HrQdHl@y)UK6Q67^*%{6GZpUdTqzZKa<-S$#K8!Q=P+)y07;bh=B z64Vte5{I$!OR*?n^9gbXC@c;bNcmtTElW%ABt-7*6}pTR0hJ#R%vNIj;~~hC1id5{ z&ba6`;<5CQjZV$USAgB@dNjnI3=M0je8@>PFf}(?6AhgHLRh`vvhr=`B<`o3dZCcd z9b4kPSy%ARMq0TBm4yEpK$~$EN(4RZ?(Iw#N`zcpOg{p$yt$y){!MDcz3=g2lk4S& z=7afKa{$%*`SWM9b?-x)*Y-rNfZbKcV5j>@_hqBmJr;$K=S|O35NM$ie{26-@b3ju zCcAw#`}avj^~4ucLTr%Fx-|qmsfKKLCnVN~!;Wlo@CsgWUqIsw; zE~p|1sJ-x-<&? zFoq$hI#w=J_OUogn`laIcoU`y_gTq9kUVZ;`xI9XFH|KINF(FqkF8ioU9U?RRh3kg zzq91&Y3b>qdeW)=P{Z^gWN34U!&itx_7h(E5P?O#(XYXW48_FIEAl=;K}k*|d*ypL zqIdxps>OV9#SqSDW$UZ{+5tGST=gB59UXZpUX|L0xmdaSVrBE~Y<-+GNYBcW3DNQ0 z=bPdo5g%XcAC-4-q~#5-qQ$!BCB(_WLkoH5ep|t z_uy+j)zn1Q9>p9TP$8+2W7_1<7E8vGFy<81RU>auB+!b&q49vUr#cPHr^#FDm}tn5 z878Gr%roc9hf$!(E=R|Y_u^ED4T%&DQpn%Lum#xK>%_jb>J{n1ss5Moq z*D)h5T-5Eo zn8@;Qbd{>0bA;yIuSKPP>>3Cp6rv<6rMtXrST+6wc1K086=FrPzk!>u{vszduOq+2 zE@fE@Hon_X0?16!h)4(^n1lqtAz>ejBJ!JS#KssIqS>0ZC2GlrV8y6%mb7EHuW>Mv zd)GBbWO{T+r^LdDvQ)$2B3BS@-Zf^04767M)CQ=(c-E?_>S`xPG7~_D%spU@Kbyg` zl#jaoCbZ17C2zV8ea72H3-}gD)!DDk+78CpI()~-b zHZzPYMVY}e&$G7x!H1 z-2LRWt*r3vb%+x%Lmz3ct_y0LWNzf__pL&yc}QZBXL87)yY^mlwISY%;Xn^qzQ+b_ z_l6kn`d|?_@P=Fu+T}wMF&qU9&F+_^L_++wGX#Ps%6a0v)vcdveXz!!7hD&=c&$yJ z8@QP(q&^RUUM4W>J)ewLzgc^}tqZw-5%ByA)W!WUuz0@Z47q>0ck2dtqua)Nfx0{i zpFg{)L4m%mYhM5~{L*OwxOnlVem46}_YJCi%i=Iv{@ERT-vzIrktgbNwG!0`YL^B5 zj~+l9_B*QOW}n~jgA|uGx3P{dRSQTcNGbmwIJ&vKc6F#tCp%r_L)$xkc_Cqe`Jr1u zQy+eki%WVm&y&rB={Alr!vK8G(cUVf!uL4G(WF0QF5J+FNC{0w*^d#~d#__I)7 zHrjV?G>~8vjPYoyti)@=;5YnqGBQdtN)Z>=$W9FjMCGr)DlaVG(IXw^GO_9#E&Ja@ zMJL53l5txKdZ*m_1^D0J-rU^=gq5WN z2c%Kyu@pY`Fi|6Kacbj!Q}v8$tI3Z@u!C8v{z*(+>HBk5wfy13{{FYjtBI?YvgI!y z4|8;elTgk8z+A5ib&`q)@#baFw~>{>m$GV*p~S?*SQ1J?F`-~EI{AtlW~65tEC}$= zE$F6agcmrd+v@uUqgrz46D853rk>9o7oRFY?(-cf<)6)?#2I3p z%9Kf4?Klag4WBq?Z}_-@Sp1wKlb*iS!T&G-6j~4ybj0PT!~svC6=P|Xa`zE+#-P~( zVKdqUPJ}^58S%9EVaaLq!65f*8{XbE0|*hHJC_v0X2WhN!!$0#`U?`2^=A|Wc^-TQ z4F8Wi7;$81GJ@XK!TT!rI??jn9RK`lYQw$%<6DzV`*uYrH+ zibLTTTxOOqvEY~vExx@y?E_$4PK!3*tv{7?fh~0w4WAmjI{qu`CCtQSDh$6P!m+YS z4V|?588@X>Qu(M80do->Pz!NU-}+jt1Vf`A8j9_WM{p*i{AMxh$SF%pX=~a1l#gfj zY*$=bS$SJ6=2?g#iAtjIu@N>zWZE5P$drs{Z%S!6Q0&8uhnfT<>Vb<2vC0{U{Z8Gb zLG>=0(zt(rmC{NlBPrpHroG`}{nS(nwS?On1JFfa0YEmK8nM){dn-o_obDD?);?ezRKvW^j3B2%S{cN7;1O=eET=flH%)1dGYM#fT`h#5sa_V^+n z%o++WVNk!VjLu^>kc5eT;_mBSuRoS}!!|=z41e)bEM9YO9iJRm$nkKI+e%(R4&Zau z6qUY@vvSBVi=&;t!cSzwQfe3| zh&W~REzV-Rrz|DC>qatV^wUh0EPgKeC$o%zWWf}kn=>gTivQPU(HUz}6Jq}EtvD?N zE(}`ueXGxuE+E5!tw1uABoP5kB(`FNP}z&n7&4?yC&Q8dIkVy^J96t;xQUD2P!MTd zWbk#Pk^NVxd(7nFoiDot1ZSrRc=jAPnl~>c82KUzNWFjV}p z8K3(7gD_HWF;bPCge}G)&z!}S?~?ayL>gsUm3+dpo*s9?A7th}hX}1hAhwCXsAFI3 zm&~A5M4+sX-b@V#`GTvNv`JP(t_ZV-QNJf;RZZ&sheWopnh@(45s7?s~-}rjE`<`E%o?V={d&!+JNoKre+`j6;}q z3jLEe8zB#FA%ATAc8p9KTPR~ieQc_gl_leVY;s&qo**52J51ll1wQf-Yz?-DqKD*9 zwGa1I|Y;ABo;xp zN;mMb|3r1gp5BQY>s^2|sG1R#R3jFiUjs%ANliuf(C$L2Kai_=eqSu#6V$*LTyonp z4&F@%Qu|4_iUgW5iZVuJV6NxJJIf(pQD$m;dx@HbAYXqAMHhUA>_Z^mjM8AYi)r$^GVfNwJWVYkIP$L!&qR$5^Qsw$JjJv zOSo+l7IM;Bp=lvNZ1>WH6*i!}h$-YPOyM$2;BIR(<)BNOo!S?NqAZToW(IR050i~{ zeUqcuQeYk5`{_U?~gLc;BB-`d*S z{ab~NS+}II5|mzAK4+)i^g^w_$I3S6QQ+2zd(;_h*fx8TDl#E7PvX? zkP?vLBAy57yc`@-Q&E~^=8)0&T-sb&Tvk=p(gpPZy}VcRncLfU9{{8N+tB>g(m4^Q z`8WICymu4+=)~;iqHex{3MO7bK3e+wEndyLM7-6~%^*&W^6HD|ymX zN*RHr&xSVZBe@!zwT_Z?dSRuCRLDT}bqHFl=)wLjZl(KCvN<$Iw#Q0yBqi~SmaMc1 zMuO5%gm0Cx3o5sB)4I2JgJ$i}t|KOk&Ric2+&V7#E8joq)+Z1a4rVv|!i8qf$E!{- z3krE1fe+``BMJZ0tM6-x&nRml=Ua{Up!TKJ^R#b?w_Ke{;#HS z7LGuHDy5LmRbPh5nmf(#$iksQwEk@?rw1px8mH zDXDby8mNqSoepZq2>0I*8os8cVA|w+RB4&>;Sa2WH+#GLe_-OuCOYt^aAGH$wq8@) ziVQj=Q+q?7v_MJSQ)j~bvLS73ooCxyIvtfjI{{+iSY%2{^($ZXiFM_O*gAG)s+><6 z<_2au#1SuH4eM#Lw3gmDR6VdF_gI_e0iLSBmw}89o$RrZ{7lmK~G}Vvl za||-`(NnWRr-i(-iMm}U5oZ)-np)@|9G#yTH|$}=aFq+e;ZsB^yIQ5$(1Jy0a*1&V zFOQGsee@Juj=2kVu>l(wGkjWj3g9JFV^8vFj&0>Dx#_NGFE4KooPIz|$n?JSX8#}& zvg$kl83TVpoiw~M^+ZZS(*2zc>o8AiSS*)7-_9A%W?FW3rE{L??>TXqU~zG1algX5 zBuY$~*eN7D$W~F&x+HK|0UN9i9oDyIO$`|Tx$c*=Y^1@{dauf8@r0QD7@@RiFc7$U6T*P3>K*3YnMd$vH<5Ryb zSsoX<@bih9uBTf@rEox?`I>@~;zi;63=30zP>izJRv) zgl|rcYDBJ&*1AJ>Snl@0uYNwZ5Oq@z)R8f>iCZRdALo+bY$E*D7gJr5#GnXIhKhj@ zTQ{bvrZqxTh3rstr(Cj*EWl8tu@#pz?Sc`+<_WrK1wtG2HL0Y%opu?Y6mO&ucO?+H z8jBJNPSy&)V5xfi+~Xs|Re;c;3f|JgBxJkPUZ4kcITI-`85oNQiwISU+5OIQ{zsli zo{ziN+^97gWjX_!xO@`qnXE>2yb_#Zkm}hj>O_r@F%6B!Gbf{k@G%-t^XeE0wSM!z ziH-#S+oZyRcPNrR@I@_UU6qI{eJsieU$oW}<1o-MFHXI^nzTvLjRvH=Uj;EWIY{%0 z9IxYAy=0(gV3^G2rhCOJQ1^)(H*LOUo2UY!TbV!o%XV_l*}=7<4&=itoLqCox}9$0 zp9sIVXZc=Uc(WfI880_`pLR?PRlN^i8UOn!auk0kISCE*#9h)MA#R+ccUBhZM+#3= zTSf-p5o)Xh4?U5v^FRfV0Z}|W(ijt|@Ck9bMJ>S~ozepd;e08QF`F{{G1Y+y)tb9f zLTqbp=CP3e{_(i|8IxT!pOu@xu|A6LyD5!;eCo=8ZWu~v4*52T)OJ>hI9>`0#;qua zDiew<55AX4pos`;2HgHLi!23BP>Kr15_NVQV)wU@wC3p$wx&xDLE13MPelWecZQ#K z_t9Iu1&#VsD=~=1-a1&@bL;2w?e1>$eoPOYhF_8&Kx;z&N%yf*0jA9M8%|zbF*`?~ zx~iq2veakdk4=zM@%{676lenbi12t6Ffeh6PK&O$rx&CB zK&xDBcG~HJj{zc($HPhLe|y1pzpb&FcI?6qzsK#Z?{>+Q;=yNsH%b6%&rCezZ2jm* zbznQu4=1O}Iu2G2V4S3)BE?$=-J^SZ|2B6Hww&EuT%+ex4Ow`@XdIoKymWw-(-bZm z`W7pKE1R3S^?A?}@lWIYwz5_8QA$`3jR_7h9np*l2w{Zi$a3mz-iqoxNP)mu^8Kl)r(L$tS$YTgZaUvh%$3- zetOW-W4FBcy%N*uPk?)rVMZlkoXYWLNs0@PSs5Q&o%{LgJE!|%Y(s+%zO60cM3t+v ztE21ZI=BDKpic5(EuWdtwVtNw`XYiv&B)m@7-{)!xX|z5i-)uBt2E+wVp?}HhC`vY*9=ky2xFT^Jn;_chQSG>CxS>Wrm(;@d=zt*VPQEu(a>gwtd zWxdirvlc%NOCB3Je*jJSS*{+J6o-a=;_K1WtXnl+!&dV{kEx$a&-j;+U~9lFa+E^x zXR58oO-9uZdG=Yc8Vj}dKN99 zStducw2I2ePmAbmMidmK?kdv#z?uPzP%Y6?G;~LpzyINoP4fWH$1S*9LZg%IOt~P* z6i$gD3+d59LuZ#!<(PfGy!4)3o?)V*(cINV8xy_&th6G%ATB~ZGtu9Yua7B&ZIvC( zuDAC^ zYs2&=qncV?K{_9=7#%x<|6O|PVyhDV$6;AH`FAMTXTFWE1TxY5*ckJFY&KNLlJBNJ zopdx`;Qkv3HJQX7l8SJx?47=~#Lu7@`y#qx_RpmTkXPBqrT#9H+g!j=zHnxDz~Der zf?FiQOa$H6c$IN&NfDi$HBmDJ49|>1yOjDlIU|FjL`hgYKJM~KFI07wL)e?RHC5?T zE7w1|pqP<(HcX|c#heDGTT>%Jj4_y=7v`qJiC7dR72PlDd|fG54wA2^%TlA9V6y`Q zpJ%>hz5^3C+a5H(Yx0U*)PDoiDt-lv?fa9{Mq; zOUri4_FA^_oO|w1uX=gk*LC7|9LM+Y`}5LMTKfxfpO?y>)8T!6(AOvzN4D1Lzd5s+ zojG5vH`VC)`IDBEy_JUhM@g0?OwbDo7cPs6fr5VK=HUYV++Cer&(F}#Zm-?lnxuYI zg-!R)%t+gH(qR;s*UDKFE5?i+lT0yvm%Ob*vi0mqBS=;4_Fu>m4Sl71G9KZ><*V0) zZg~Vdkrs-9>*L~58uQp_&}497e4t9#v)oF+zv_B#*!>r}{lf!OahOPPYe%e*y#|35 za%CKfqh_CnyD(I80ze=V5cyG5@vm&DrsfwY{VIM#JNJE8MxY!xyez09?tKKLP}yGxu`fmrNEX-Edq!6#5c!8|;|T=|hme+hgH3_waw z$Y#Q%smP|ULI(!Muf5&RZ{#thaQ$7?{;82*Z97OqRPAZ<2sX(nQClKZSrqJL-6AMn5YZgJPdY=k%58b-+fbESjT1W z@R?kcP9Md*VMxg~D)YSWCm?2W_-78Dze%Zq_(oo)MTyOa2hNj3yO(z-ljVZn{ zSRVPr^rCOd1u{~nOO{M780G|tQ{citacpqd^4OL`Fr1mvr2~hf(XS}~?r%rsah4a~ z3%P#cb;8YA8E3XLd>UEPIx30 zz}fw;xBm7ZcsLk~`q-V`s2sj$J=Nzg1xj~K6~IwYqH6>WV)aDG#S*;{5EiCkpqN}A zSe~C?=ip%hz@25%gLm$8k@ZY5eek0aM`?t}atz!$deqUM9SSwm%II6fzkZSGdxgRq zq5D`OrXNuoeG37rMG*LorlX?(OI7^x?AABuNZH3miIfjz+Ah1r+8H{>IyE}lL_Oq@Ao>`D=;q>2Lwb7pszr*oUN;4^I~q@|UZaF9@E*aB#vu@L4Uk!-{sD86t}awDwKE~{TVr&EK7spfwc&U7=RGjvfgZ^v2H94hySwwoREJ+r zfp-|c0}BxA~nPojOC`ow>P) z4;7D|#chb|){G7#HBHjfjw`E8434w1R0rQ-kjc35g1k&5bW(B`j(xg_!`c%Z3O=jx zQhSwy%xiQq4DOPSi_G=94??FME?ZeKBC*qOeb2aK z4wdAj>xw&_ZWttuP8z&_tz9Ahh>i7*TdR2mmi7gd%}6F_v*DdBpr*NnPC?;^DBdLv zycZML4^)Kp{7oD@_Y;ga;VBseLsa2D(Dp*|+M%tU^8!P8G)(!)V7K*3;#w}4drYJ5EAvRi*=!~COxG$M9yfdLT z*Jh&5%Ojrc-%Sl?AT!66g6~m^I!YORu|PRrn=u*mW%H?$fe>w1Pk0>3Tc_cxq#4xs zC054jvPuNz&gp`um7|&7pJ`K(^9Ww85`VJl0eRoV%BZ4JL`Au!B`F2NmmRJtA($OKEprw& zKOc6U)Fp``w;36u!>68metmm+esSY?>F5Dx0*&JM1OGw~6}Z|FR7|DnSETcKq|Vn@ zru*mmhnJS7NpP3M+2yN|>}Ymeba~Kn~s$_z< zFeA{512CWaa2P+zImhT*!_YvSCZELa=3msjEo)|mX-zHdG~azNI&7r9ru$79MZV{siMa-Nfv5U6h8iz-w8Y^nxpw$fo zDm~u;54MWEpO(R&r?Ax#@0J#y)LPv}|DJwU13rhP1}~8-=$hc$*~)h}*Q^FDj#FD< zmsopahqhHrV`^#{Dg18Jp`4KmU~PYcPlSt!_z{t_J`u-eRC#1*Vnj;V_MP6}Dm~gh zfDgPENPqK298#j3!}VchaI?#J9NpG|`#s@^m1dN@T__coZf{^5M}&;c)`BMhwr3NMN)iN=8KfNzo1`8OZ;1`m>YawN5zMmt=-Bwhc&m2vwCgbu#!TM0Bm?~5ba=+{ZE zJLJAsdW@5mpS~|M2|YmKTm0#7syDwChJrtSXj@UsGCVduK0Km0s$j4|5 z8M=#0LINS(*^;)g3hkseEiu~VG+~D~V+i=vWYT zlh?pNNPrlC^mq!RETBptKn}EgrC_9_s2P{&beM{po14D_5Ndm3VqrEf4|3!NthhZ% z=Pt*-dUjrr8pjs}(juOb0OqDVEcN4t(aj4_S?s6;s8j_R*qEUr4UH$cKr~4c43w>9 z?K;?Av|mc$omkArA|c^%YJ&_lpE5g|0#@gY5WZ#!dh9-28&J$#KCHf7_kBG6(Lw+6 zddzMT0HqU}Izhe;x{La+D^vf)<{n0yNA{t}{9lMTW7shzJa2Z+ds^SJoACP_+->@` z0#X~t9) z$UAE;s0jF;MekEa$^7yNIFGjp_2rWJ+Uc2=C8zAhzN*wQM_+ zuNu$_VqqotSM+8`G(-d948WOQ5J(HvNTc*gN$KhftL@6NP^%Y$+}CW54?vSRT4^)f z_n#P6R#J$`6=tOK-ib7$1cl(3r%BfRRAkwR?&KlSpHC5tpp)q}^8Gme>6%3|Rc+l{ zT)0n_Od}&qA3s*)32SI*t%DYpIZ>Ob>73nX=7;w+#y`9eqMwCs1N(<=Vu>+tK_Zaza&Bnkwiy>krSLu)#M;c40CbeiLiMLOHN}ZxMh2!) zDOAAlscI_1)s^%5fOYgqJc3RwiuCPA>9USm3__`8-Ly<*37>UL^;nV;G&j#8BtsdAvC+N;P9h-HiY=DXt_iClEuN=__M}B;N~DJ5lsX?P;%jTj?5YgL`N1BM5^0g4u9({RB^s8_9@wiZSR<@AEDx)FyC0hD$L zopU{9oW#tlQ9CbKyeQ6`8du{`RqRPcU`Y~&cis>ZcE2f+XTcxBWy+gl@YL1UEx@z3 zIz1r9=N0rem(&EsmLIXZn?6KonbY^H625icIm3*Hc5ix@K}f6=CXA04*JF0A?n$g1 z=!210^kqDeiL^bWyKuXt)Vk2oQ2(8to|X=jaUdez?gsMA5~t6}R?XT=&@2qhCtyv7 zYAJcVIa&YVF!6OP^X=!AI;-V5*5x2PJG~#?Xx;{`6}3L+ZK_Rv0D3z(rYeO>fqtH; zk+3Q8B0-s8LDxsGs-`e9&dM-4GCnjk#ws}!;03l_dpA7=1v3d%_XpJ8$SrkuZebcA z$o%e^9U4d9$yb)BP-cNzHFEWeh4qC;q7`0hVc4CT^Pgz?6Ob26S$Or0Jw8KMfWH+) zkwVc?(4=8Im&azi6wAe*RP1{HQ2h!rRxVf0Z>npMp$U4iT1aLq+?^f}Yu9*_iH17a~!r zg|yM6VwKRh;p9%%jp?rR%U-I>t4rl*XrG9z=x{Ek~sz&>y)CfW50(oZJO z8K>(A8?^y1$SqGM!T}FwC;z5v*+OnRo%z(I<0c(`e@>nw{#_BAU-x2}Q`rq$JWsCD zf0wF}iM81bfb-Z~)yb(|gXd=V{iXE}KHj&yv%EYrvvc$LKbD3Ykb4IW^fNl;iwde3 zxEakfNB1=}HYFrpM9Ieakdb~moGofUJ@RM-F^a&;l{mwREwps&W!6jE4cdIWir9L^ z3_pW{kc-EF9YWj!SYg7?8E6QD9b#6r^Eq@ff-GZ{KUOq&V4xCnI@>9)B!vPUivBA( zIVleJXJs%eC6xDk7GBLJsnTKSmLT9E^>qZau9u?XbB%=r;B!j&%+Tm~g&LC;AD@+w zoom8VSVq5ce@ANp`;!Tv2Zmh4`)Xrt z;y=)gW3_xkDm3%)PwRiwqIGT~CEsC2TJgtEfnf$<3`ZxFvpLa!z3e{0!ypajfJLr;fvX`^CTFv!=sN zSm>P@#YKlz55;%>U0_?t8_1(Wi}JbD(#9SgknH?J%??w$Hi&_|rAIbYhkyK_CAqL;n#7XmYaAA0e*;3oi+*#K6vp*Ke5NKl6 zp5^5WA~OXhgn<<};K!{61EB4>F$1yX2=mvdM4-Tkcs$%C_yL6b8i;4*h=2sYi1*H9 zmyrU^Mxb6?fBZ(A!>S2H_BZzB16V~GWXSr!niR=!T|S7{CxbK$>_9SM157RU&;n5OL z%+-$G>R{ZjT@nx!;^+6tV?Wm%A>v=uCHx{GLYe@PhV<@VTXF6y<7Z2DAC}`Cgr8AP zc4InvVtc+)V4IrKBq$b78g*H9Gr(Iu;Ubf%6>)7ELO5Z`G8LaV#&4;c5bYAm(V}0m z3j0-+2N^2t($^br8mVpA*ZuGI|9)Zr_42TM`ii$nzFE8Od%rh(DR+Ci^3(h83R06O z&|w3PMw^x99jKwt_SeQLZPZ9a{+|x&%<4)t~x7(qjMMoyw}mAF#G^ zbK^d_`SFuIm`r}o76~|MgF_)0%@wO{&u^fB(YK?EA?D>``sisJ7}r=0?8}mDe3ri% zIyMVxsw*q2(NLhkoiR-~e-ymJ+U7KvXX&`zm{5dZq5-QL?{b5B#d*AVzv$izd3SZ~&Yl7I zAx6eoshprd2>n>oVv-N;dtB&F%v1ODa79DGQ`^xI$yH8fu8BSn?bC)UF-c-2iUfIB;j;9}H_Ak~(EO8~y_#Q!H2o+9e=l`{3LR^4BYMp?p-5E2q~;pw@)Jeu6T%`e4~@F@2m#psZs;^?Kw zDPmx#`~y9|t5X3-fi^axqwS|pw!ztu6Tdw+o_g1y?*3VJbM31;h4Uf3zT{X^l-Bq5 z0-g^`*$5c9q5;plryrkRkzOul4<~Y0I{eTyb}a_t$V8d~Fov((vLXsGuSwo^}fvRP04q5&~yu zLA-l6s-y#*{8!SskWho`r}s1nj9M5p!zak$E^_>w;z8pdM*6=mp(D4>3l= z^OL}bPzGi&!YSG-8hj@=){Xp!Mdpt5GRSxRJ=ZnVg%3xS$HD!;!LZf)ej0@G0hQK!bEcj;0-bE3!)Li4v<=_5jX6}a0?AZ4 zThz_j&~PPbC{Y|j!P;8aRM3K+1fQ4fg>McO35|=J`tDr{nA85*+uPl>E-tmPE-Izz z2f+@a{X-D-{ABUzkEsnDYjU2xxrN2)j;(`*8683wAsgb2WKbBo7L>Pl2V-|-HAerX zA=}*}QmnLjlynWp4|nNxEa?{()=gN5NKEmtHl2j_=)ywpC}{W{8CXV1T6i`yTXYR+iQJdXt zO8WpixNN?jU%oYYe!1!B*naew=sLRHO5awe7jm|JU3-p*%NCBBh zz3gLw#NGUcQQ&enFnOn4aV!{fa-fB7tTFT8R=OVnK{m`EcGIb&n>CaK@e&(2Ow z^#z7A>gsLQ>5j^+xPa&F6(_L1ZlUu>l(+qW>ks8%F4;6gRC5|vj#9^CKQ-Nj<)1)lcixHO4g2O zz0TasHWQs@8W#Nnsw&!V_X%`n_`ZXp6}}%$U5K3xc*Or53pnoF0Ve{xQL8(Sy-8fI zNC3Q`4I;1_w))(@wEO({Y}gD+GS9c=(2tj!tuDjAKd+)JeH;eI{`^WYPEJlyN=i;f zR-7f&io*o*y2I4WNKn&azaW%LJ)RlT3H=M0J|Cif)Iia zf{+1jPBqIEu{i{cDF{q~pIs?7H2k1MNfd*21D6Wv)!>~kksvtO_H19=`2xgQuqax2 zlw@%O$9u+PYejBuEgXxmX~SZ!#4j>bQN4tI)8j)uBLnjjVjP$(dQVTm!NI=mv-s6> zOwv#>D(b_uJN34>K;(Lk9U$)(3;B;MN4~_l6Q?s!g*HDFH*R(Svok15xn%M$i}dPU zxOsX#Zh{zQxOgwoOE%cB$fXOM76M$qz98{%YS%2x^e@s|&V(|8Hk;-!yzA;l0=HV- z9~SH9jqe>+eV(?)I`Up$Pw#H7w_79erLyEuH#&p-fZ15YfA2`9HwAQmc>!K0P6Wo$ zYO~evB^~DX)g-$01-0N{TKSKykweB0EspCArT8jj?a|~hYVgxi;r)A$iHl#!%<%B< zsu$~=wlkol>xB#sn5T$F;92WKf1X>&#uAd@6K(7s#7raMaKhe!8HJ`eBgSN-<)%enus z8^g){UiKgtM#!IeTblz;cNcvlf7nF>?w^1O;YY1Wizm8MAWZ9z(}f0qnbY7o#Yurt zX(UBw=i!*7q?xO%U_GF3xuG2cR~}Xe-ekN+#b|3FP9@_K?CpX@Z^yEzxErYx z_>nfdpngR{_?JK}^Wt(PX<>CWCS0A9yPFJdCw`b+Sbe=R9dC+4jHx5}0b7TaWdRUT z>M0)I^6a4WG58Qf^*J}!ugu`0YG4&s$iwl9~m4M7}_P|ecW%TP2E`JMs3w6<1` zLSs-HIZV<95GMABx^WA#WrrtX@hr|1_VeC-;btOs;oVqWD=ePHR9uqHUaymyQ zBI9=RR{Y0!^m|;95qbW^cOvL`G&*Z=OWyvpwH%;2shNwkbIKh00*`CEn20N0_A|e)4yKu{GLU=SbMm;x{v=o z%4!GGb`SQ2&p`S29;@K}1ZtTZoO&{T(SF%;<9Vz7ew2xIcuZbNF%1`-e?|xEDAb!8 zzVqO7l+j2>U%9!}fi!BU58?|Acx6o|=;w$2h81*J z*bo{ppX|iJqpg>w;vd0qAO72(U;d>}D~*KDgyyZzqG0PioSd|bS{Ak#@DTqfYinuA z&;L~e#RO>wVZK$5ryYUsst2n=|3ZNe7hn$H|G4U55^#C^*5udYLuT!|-~G*fqulL3 z0{q`2K!CqFS^4EeO9h#21W92nEo&OuF=aVDzjyAy0BU7#;qqyKBx!N<#Ma*4zN)5- zAy>yxQ&U%48*yBG11&2jCFL8xTX&gR5I{PzjRW$8DjPb*G|ER|Aal5@)_i6=`8@8< z@Q@L-8=Rj0CgubMF5DMCNWQ$0x?Z0JPXnYWNci1>y4eAD#>ba{4`#CDI2g-;v z`W`%i2$EV# z73rC6zIh#oQe+_Y#CXdGDk>3(?fabI6w zm`opSSXdaGmsj)R8wzqBtF3*rm$ef%RWPt~M^{B>7_Sh5*d3FS07I3qpI^I?M8f>a zFueZls18$dRK4MWw9lXzWvF&lM=KDb$}cTNTlyq~yu6P1Sm^UREzKV)eh z1eFBIlj!Ubqu{6E;Q-N5*sR!KsqSt`34zI}uA!l>enl%5JfsCzrgMw`?4RC>!<=in zji4sS%!kEjODPdolVI~euobl7zkEW3FR*6%WWX<$s8mD;w*2H_<#KICT;$1(&>q6A zi6g@6GoIdGDplF-QU(2eDoSIF6`xPi8ch{$8(w%bf1C|sfh+$j&-oSyk2L% z$EeK_0Ghmw(0}$&=SN1Zw@1N2i#Vlf0C2E(RSrhPW%CNJ7gkCHY-wT+FTr7#f7nC$ z#6nMMij}aSfW`Ln=MSf8A`U|hYrpWAf#6te)bU~DzkhRycAwLn3BH` zk~R%L;br$_;uT_GCs7Bj>UHgEpcE-$d#TExBQfFBeV&nev2lulCB4)Eg8Tpl)s>$Q zrkeSb`90m#;Sq56-Yo(`0OT#WpwF~}O-XS4BQ0)x<;6it3nPLGAB*PI>A*ZXyyU;H zZ1CQ;kqq&i8ic7`E8%Ecp?vt($T(pFqmc{Cl*WkO%Y1w(is^v^MK8URvM5T{ZxnZ! z5Nh)hIJHVAMj2~9%Wig5+IX#ZK7e!%iLn38!D=b{`t#|dcir8{d-f9}!TNxC&^yCd zWzgymrdtL-J}DB2=oaAo?#@%B$9$Dg$~dS_I@-Nb(ce2)EYj4RtH zxM|Us9HgPqHx8fgf-=7(uC6Z6r7CZz=k;>3!7Fl6NiK*;AP&SwA|XZ&4VIOaGeTe} zXsN0D2ObPjHl?0$Nk zY-}x66IXYXx0Lk$tN=1BZ*e)&bG(|Nmy7%bR37d&uWy#NRz_!ZJ(TRd{JqU*en))e z$n3DTa=TuNHBkRJd7bZ}?rG@>%i>BGIErv&pho89^;1AdNTAvKXLAd`1Uh6FhCPRu zb4D{k0FE>W0uxBr{v<4{u6m!;RFo8x)z((WC8Nah#0jk5Sb1z^XzyNBRl;vldGhlVCqH6;~+EI}C}IRZB+92VJ}Sgo`) z4+#}Ayy}{TxieA!-rU<0L6Ix;NM(5i6_ttc2-!|nBbaTM^(Gk80GGdgjy@^?n)vx9 z=##s(s^|t(u?`TDVq;@fV$slId99ie8vXOtmrp-%P(U^}1Cwc_j*iV=@tvxy zzCLheKH%B~;P32O7SVLSd|#qN#)o2oO#YT?h2LkCmW4JJG4zcm0gi;J$>}L>&R3rK zf&Q+p@gZhUWod0gXiNy43@vT(Z=$6ZoAG@xllxRwnez^wQVuxE7>5!ip;zpbU2!Rn zg;z8?(Cc{Nq+df`#CR6+&=F>*)B(I}V+w+VM@<|D@l;WTj?BRnq;q`={n?aNRVD1{ zrCLeCg8X3!N6t%t@WUYD>o_D{eX0&|=&!CT+`pWJ|Zys>I>!((*i;~a9i{0B=1`Ff#C_# z6mUv_FY4C|#czx-!2pW;xab&E3=9+$BvjP!*@peH{hxQz3>dHjPD_G9t$AMJpR|nh z%#4AFTGd_O*_`A~?cWJHj;uvs(YV8RP251{op$_}*j@U1)Ur}#Sw+;)oJgl`F$*c;tsfhJmO4;U1I zuhFqzVB+?Eap?PwSQ|-$$AAQYMUm-hEVjTp)e>H^H*a^cBqZW_M2v}zmHJIf9sF8L zQ`}tVPrDcWYYq+x4j%IaHYK@e9zogcZ)pYhqgoR~s$<8{Dw*Fo!gdagT}G|{jvw47 ztjneC?UR)Y7C{%x@%-5$>UlT#I7D3=aq{m9=}}{lk^5Glu(+a#0>ixOXB~yB7B;3Z z6BQF9ZLRM^6Ua?O7i6Kzchag2F)MoFvFp@!^TMd}B=Rt0V5DDJUo{Ha50Q&ARJ}_zTb@p6Vyn zHylB^6%rl{acbaMRAS&a(nwoUF-khh!lHtrqN6#{0+x!+0-`glv)kL zX892RPi#|iu`0>tZm^=x4o$D6x@3AV_P3P~RRvAS6|wTihX4Y^zQ>mxEpitOr?v0z!Fe!0G$-t1Xu%H)#O_EJ<@{Is!d0UDf-Sov)LR3tJMI{!t z*8bNi)$Nxd1O7pqoCp zgx*%y8n?S&))X?E;;F$%Nm3V>Z|5y5Xj}3x>;~sP2wz-XLC*ks+ilc5%$do_S{*d3 zxSGK;MQI|mMs{wh+(zW2lM|zW3?7~iubZ0=9^4zk0IQwkmD|almMjP zD8^DXw4pd<*Cz)DA=nT!9a=rTeN+lo7e(dB+{Cb)lwib1NBTR#&PDC`{cWuu zeDalV4*w78OmdN`WHHt|cqZpF8g=y-X~z#64G3SzwgaqD9&n)EU}~_~#kZN6<#i)7 zFzv&&%Agq)f`IR8%b$&% zO;SvfBUu{E4$Ah4n2MhdbAQ(qWmuOtNzy_aGucRZ%kGL>{xA1#}&MH z`87Ed6G%vCNKui{Li); z4N)>NRi9-rBJ!gY$|aktbW{@OXbe)LOHb*IgX)mn_)klF*`}pP@}{1%QH) zAC(>zl#|0Z$b(n3*%i`M6%#tB@flz6BeLXCPtw65gw_u!5)lc}(To5hcm>dDeLekw zi}>(tPy!+dB)V|5VW^#I)f7xbAXwJYBIqq^Gm!(hv@45^CGdg=(VFJ;c};Xlvqgna z3hXe8n;5|aJLyM)v~7Ox?u;yEj2kD~5&`Fz0uY3HeBey|J~i zDefN~gFI1ucJ74!oEV@@5oC{qfpBRH=K|xh$j-$?TiL5aAsT22aN%g8_N?`+yR_#EzC6aP4chTb?N zC&9-D4FYiVIr(jRcEU$y=*Y;zg8@{9Jw1{ze!|(OMnBqYKLR{61W!hQ0e*C1WQ3i8 zimkQ?oQ;dCi;MH!^%W!(G!zu@FrjtgADNjdJKq9p=^IYU&(@0FCPV!i^^T5bNDA`u zL*mBrvgjDHW5$yJcM=*hI!bEmpf8>{J-fs7vs2&2@GNucIFT*mh$Nf>lqg#n{t(zm z$6d6wWmR6cl7((p$sb^4d+Ca8c9Y-Dy>+_+gSa@=ahB5;S(gzT3x~h=whl^0dJ?kE zhSGU)^HOi$-y-C!y>tOE%j7ye4{XK*JUpx@n&-jk^Wg8_IEJ4AS3e4AsQkl_f)hA9 z<#+x6{#!>234Ps93!ORI%J}bOGioR*>Krt_uYFC~3xCLHSvt7bYCF1`X_`se>80sp zDUf^;$v!pwA?)BPD>pCdBEJtL&~v8JgtZq z5jLD0gy|!39#ZFEY!9{xVUo6c1sK93VY{$??6 zB3xvZv2LouynQ`Mb5OVFY;Nc(?dfT$>?1^(+t=nnwzBTjx*uOu z3q<~|evTN0PM4o|u_f^qmkyr{O8}1*Mu`3`J3yqpC5U`&^9_~@jr#(fB@DIJOH;h7 z<8~bzBmOk6{azy+4f3rHMqN8CH=C@b_PPAS#w!GK%1MFogRMlrsw`^h$2!xy0kJ#O zoGHw2Qw_*uVuTPKP%A6q`Om2rtD>wD6B|2WTvyj-?l-dc70oq)V^UM=TjDoN5lSjw z?ZCK*2sLqeZGFAvnFBu4{57b2PKESl8LL?|d-e5?M~gF~TXR2HAZ@E@K70#{x;j~z zIk=?IY*1ycn_CB)yN9nc>+|6L{p0Q3{_*zq;o<4w^TJ`5lsLL1FsXvxzv4HCJ)#9=YV0b+PIN-Qi& z3JCvX2s94PN9}Dg>{oKafR&jw4>&G#3W%Jv)$G;SXzf~4{dX7t{bP)aqMfX*;U&O0 zI_Wz9gYwBIH=f4Nv$0W7XnI!Lz&JjKg!m2F)76mFk4N;cs%$4@#%pR)J>5OjRMb=! z*w{GRiQf``qw`E|n{R#7oTfy#gY{cIwy!ZT<`68b&W9ol%t~5t!oo_}rl+w?0&3M2 zFi*O=UW?<`)RdHzR~Mpn*Hax$Y5~jfd?=GG{hjVc&=WhHC2ZMHOvo2GP_pgJK`aA( zt;xw*ha}Hf{+Do3d<`T@2Ku^?w#4qV)&Hf(=*0;I*qG?N6jc?BZb#qTW#&`WCH?%F z#^6bSzhhoR0fr~LB_UG2OrWJ%Sz%%joF|l2l@ZPzV9p#3^oTFL-7J@Ku8m+r7e>px?)hOO?u_i743eBjv4MOQ>q3zkF$G@&2$I+N0SI+TNH_@D~Z}dLa*_ZW7w4q;`8~p<3=FrPDqiFd0TJUOp7V*h1C7T zv|sppb4lg-cTh>>`Ye;0V%fVn#f9kO#3Nn{5`Ss;dQ3?4$K)v}dr6oKC-wshdJlixQ zgJ`2LqakY_%iUYiJj+BlT|%;_w~v|v(v=&CIsA5G+YIpL%(k!-HNXX|vCif49Odl7 z(aGu3@%-%k92rrf+QdvA(pzMSm!vJRGc~2I^)5a!I2kJ6V&LnUGuIU6_BP2JR0lfZ z{$zS^P*`kia!?BNB)4zc6HdJNx-}R7ukp@tA8Bb#2_3EXr=xHDVEjb&Ml|=J4dMefti(=BWlhB zx7kKnSzYU()l-BFfJ*vkXlP5VEUhgA3CYONMIe&FJr@2g!8AWw*bId|<`(v2(B)sCkS5iIs!IwADvFVYf-_oD!Yi`wu+Y7k z%!Ol2KDtQucZ$}fPua?Ws2*?Mr|wwM^vNMSdVBM)cbxjJPjyYLp|8lD5eNw_gZwvWK574C z<6vX+XJ_Yyfr5sL?w`SgS%{gHmQ4_q3C$9e@Snbn9{vb=*&|F?YEGa1Q97Y+=51uX1q}`=6fYVZr*R6YC1GHK z^X9yi?d-6HcS3#ev^he?_XPAdQnC%Sb&QORbc{7MvvSD@4vtT3ZCs9rWwfZNr9^;@ z;rB2T5fNCjy&p;lSXtN%4EaGV7~+@nKp5MyE;?}?R#t#c{~t$Z8C3<=M&V0$gGhG^ zNO!|XC?P7{A`Q|Fmj(%u?nYAS?(Xg`Y3a`U9Y5Br`7>+HIC}3n=iTqK_vZVEW%G_m ziwlk)S31;Z0w02efPsR8LPoaiQz;QrCCa>49}Ri^n!DoS{OtT|RaGVBG(@l=OX;$P$cPQGbJKMIw}*n9HyvsL^|Q)5s(J{_ z3(J>CpYz=%_&-eC$!F@7L-z1&3<&k5lJ#x!ti2&8|9iZ++URrC%XbJIHOuujj%4LF zD8wp)3@9IL0kmKz zlE(R4n@%SACzZ=zEI5+zbxCy+6aow^675b{mP$9xv!x_c)|VY259#+>eYd3zGgqlD zAkeMD=*NTt$z6WU2!$A(I;TX#+j}EdcT4N6rj~}@$AO1gI7{NTQw>^@9t>7)_6a8K7xstR`(z_R zq2G|NUt<>Xg#?9RuZ;fyG9g?AQ$bEXkp8yUcQ!Zw7;ZyXprUD||IrfuYN<33@zLjCI=4&O-o8<0fJH6VB$-qsNmsokBo?PE9O$yW@hF1 zFv~ZDK|GqAoRpH1l*ZHMF*Lfpv6WSrciFso{;lz6?dWs%j~`}JRTzgNnNGD=`|~=a zRD0&dEJI3>VW{VxfA(Eqt9m**(I;ySAl&gNRp7S)68&sv=lQq%p!k^@5T7s9S;8(V z%poq$hw$?pO^u5StTo9B1=mGug1vsirEyD$R#>Q(9+9Z?lTt^F)M_jmABQ~ zqmfYP3rJWtVbJ0;a=^ji(TFpWKR!?Hp5lhwW+HH73n3&zLzDb}X0z}jR=axtApuFWIQ1tLr|f`!NK4B|JdteGYTu>rx{o}Ny|#h^aa8@er+U=@%a3K z(CMolc-i=0hK5mmdTyAPn%~{n{%m4s_}O#|exCq^=|h%~yY$=lisy0lduni!*pLAz zg=PJGNCDIU>w~U?FbF=--#er8`pXPPuS=hGL=|z^#1@EpAWV$Yn3xsdZ!mN}y8pFQ z*FjoukMQ3laD>e-t~h>ma`9fjyA7*T0Sg*UbLfeTE3w%d&s3`ypc|q2E86lfyWOhe z)#WutxY7^@Ygv(v<>5XR2?bSVik|-3Q|+AuHH0lTAbn&ee<92WPF#i3W4W%)@v!%o z4u74Ueobv{tHX9>4+!_h{`S(0Gs&RE*0HbSZX>q6+#I(>ox2iDQRC*O^GJ4&AsMw5<^c>{qAaT%$ZUo6c{xA94Ak1t@GG~e>Q_-kZE-0z zk2r1r?vId?mdKiXA^AH_0OOrC-w~CE_+uVm%jf+zX!w8pIb*Py)4y4&TJkpJ9rP4c zQU<(4uJfn`2-rzBI8Pi=nG5^n`}>)FZ)~KYA0fQ2$fe(dkSAfrPkU4S9oVaaf||*D zg++Twn%G|c3k}~<(J;b7({PEzd;&vagMLH>lam%38$aTY2zKwn#X`S@rNTnT6}ZCG z3%XT8f$E2bMkUfY#!3B(gMop)q%bcVCB|1NniJ&scG5ZN=rlFex>}zIH`aq4l9=0R z|B?jtYe8;CaiFMmuPse=_3W?yDgmDwy;|P3&qk&;Tesu87GFO||0gA9qes^d3t?g` z$Q)xYJ$dR{yiYaqb@wRD&2FYtj;Tk`Bx$`g#Ti z>6sZX4^D#Rg278BZJ6Gi0=%8^UXYUFkx)>O{Jj{TS-tL^3I9)fa583-39(^5Y0rHB zWfmd?j|T3!O#btuIBt87e^k&@?q~}Qbq5KpsF!ZUnv<6ZxR<;ndx1=|PW?k15%P?}M!c=3LVHsCSC4G+g6tTQ4+XO7;eyFSRysoNrbSST=tf(xnum>Qb*afy(moL;ZsT88Okg#Ka+%u$;|;KcLZ( z&-v;dr?y^`{lo7kZ;kIL)PDdy;$GiS-`?4lm^epgM+Jl8wrgww0A?yCr_2A5Qo_j< zQR;NPuzm3UCswHi5~%Jod+}*TM(SyzXrbY*C;sYaZcP~Y>-nf5N6z^TVH-aBzoV{i ztbglt$zYTWf!;?XskLcY0~Hk&AgrQBL#v2il>*uR@XzzS1TU>H2gw1VS!dL9_2qCx zb#+8(b4)Q9HKQ`J!xj=T!r4l!4#`S5jgYcH0(EUp9yQA8;e26#`FJ!ga{^J^X!4pu}LN1?U4x~AQ) z;K|=HF#v`Mq%WSz9HTC-AjSaz(O2jBO1t0@6NxptcK|N$k|GQ8`Huc?l-s7cG#yXB zdPQYFf8dStZD6IzmNxl}kB+-fk_0k9l9FD&d}&_PKL8YA=E9;Pi@ld{e1;(u@VcVQ zr4g4WxT&jDhH$m3M51#TfN-+)&wz90OLS`m5CQhaTi0wDUf*I$?w~|TKt?s)S zKs|my7-JIu-a_g5a4V%iVL)X-1#1U!DbeNSr-ezf(UNASru4nC!Qxlfh-#-lYvPHl z@#_!Q@7F5~RNcH3KN)>AQF;TL2gm>5!Tt4U$&<=oo2SoS%Q|V~)@3Y%p;#W9_ORn4 zox0yzTK>zhPA!72fRy-*1mx+e*8rId zGW;e6h%drlKN;xg7FH=$DPCe0LH6*GW7yuC27X6x=q&jX9;I z&F}|_bJGGf&Mq$1wY7C!r)!IovmkDDZf$B|Ru_Z6<}z>oG&&k$FouF73KRl2@k=+z zwU-@LVahq=vk&%HkHOXJ*%`J3kcTK?_NA}@gBg;BF+DB#iTVq>B;pR1 zZSEiXEl5fB-}#K?z(C5JDlH?YEGsWBi)uPOz+yp?WTXd0YUbe@SA8G-BWB&i+n#5J z<{50D1@kV+;c4+F9li~+`u178d&dp}<`7J9X?~S0&5KB!dYpGJ&A}`TRaGSoU-u{G z(n@z_6@LI9y@YQ{ZwLAZ;jDQ$Md*aYx#!n*vxme|mq7GmZH?Jwu6*Vn2O|a_~0SY)ox2BrY(zbkBPIlq-?5Za~ewAtI=!3hoQ%HS_XEFL` zamJ@lYBS@2MT|Hmkuiy_`j-v!Woz&3kA)@>zu&)iaA56+O;w$vqn~4B>!_K*#)0y( zxwr$eNI)+9;&~^AB;>!~M$kB{gkCur)1C_|3-2#2sL5-wPCd`ZXEvg0?t~Dqw1A)E zu3l(E6N$IAyH8r?`P&{0hMV<-#wtw8I{AG7f@`>sOR`;((e-caB?z7WeEGMz6W^iO zgOQlMY^}mE_&yH`A^gDajQy6w#;1pS`zMDMb{3^Y%t#hk^POE?U^9IOJmBDOclRhrC?V1p zhMBs zFpK?Up*w2h7sNy_c1-gbWRdQ~ufP6_gs*Bl**rMjCdS1_5|sWTrS(op1J*zNIJx+u zAGYRwJBtLxDdX1{2LtEWH=G;quWQGnScfGVhCG{E1YpkOBQljkVvuu3%AXpadatLh zLPh#Ey~WVEZ{lfSDl7Vwx$qkr4y4inJzR0n>YtPw+{b8^I9GSAe`I54XH)u%eWWGH zgI{=j<-Nv7wY1b9_+&3`dE2RU*?d;T!PC~=U2tiwR@kmEmzEtF6+(={Mu$bjC&Wd= z(L2ZWNfy+Z$VilTKGBF6;AJ6@;}7DL2Dyc{aj2fLn3D*74;{4FOVuxLbnokU3iAao zBM&J#8PB!pbEX5x6M~(9zVde*ry2nPfx2p5Z~%akj5@&ifNTXn740SuP$}Tq*kriS z*3wWx>6KkqR+n4U`m;DEr<$6LhmVGzADJ~LC^#r2sPlSfzP`Rcnp*P&>(qO5>uC=l ziMcK5M@Ok(Yaa3LACxv~UM%@Er_S`7)``1rhX6-{28V`3kqV8*&5VZN5aUo0 z4is@j}bu5WMu z{QRYVP(GN}UH_)9P`cf9T~Z+42j<0H{!RN^8sM1!C>qT`O!(r@7t=p4K=fI{i-7Mv z45rlV$||9#=QjWebGEnlUBBBqn~DzI3ycHKl$^od-+mis3qA2QBk3&~c5B{SFQ9dv zsU=k=dXf2HtqFxJH#x7|7w6yIVeF1XU|vqg{{eYzM1M^4wuy)!7^S|}_YiFjTW2NJ%VqhnLdE@=mBDQi$p4CtU ze76O@<#oUCJkk;qiKIMZKSwVD2C7>UE*sQ=$5jts=G7+wjbd*Pb?@iS;l*usYE{5W zy3Xt=`FdJ%QEPBzb9MJXEG;}Boazkc1lxx}*Fb@D4{x{gZN^NirkhtG9 z2z`yn%PB6#PlyMh_%u9;mu@aB(QF;g(=v?Y`M~Y68%Xrhco_ zb7@gnc6QVOoCM%)65;}tW4J3T9URcVv0A1yGVTZ*H`F(|yNO@Blj5aDC#5CCYiNJe zS(~4n5aSgWYpQO2*xBj>R;eRfyCdr|_R*Fkaz6$r@MA~B)rYRP7pOcvWxCZ1N;OD% zE|DedMmlFPCX_>PP(;YhvZd=_-Mf%aPg^*oJ#Z>4K@7TK$-0^W$M~vGkSa996%={u>7gl zBt&_6c}2Oo`GrLVfdf?Fwdnkugdp#0!TB}d^_g6rT!eo}Lk_ub(k27xN#Wqu;^E-| z*}Ob41i(*;uP%82P%ad!CXynBFoglM3Mg@45F*gp>sRZVJa>CPvdv=}=H(VsGq5_z zLSy}6Ze6t@KEz*l_D>!dMDM#1Rj`GqA@tqdp9%8<5pV1FBt8>edP0!GLld6*6)c3@ zkxb*KEQL=EA1C9jT>qYk2se1R-37^Z)0_Sw(wKn&*+c;NjB8wPocwP1HT5jvFe~!` z!JAuC0l19Pyi2GgV~;<>`Se_0p8z$c;z9nG7jbb?Rwc*TX6j?RiE{!jAd11o#q~z~ z(E8A|yzR^ZNPR7h%shCbTT5%LK0TeC`1lYL1aCboA~`J<+=m{ZcMuQ|B|?0^eFGb< z^jYp^Lz^uK1p<{@r#rNN{?Bk4{wee@MOy@g@#k)WfI&yo-Sf&bW&IG@5XJ>(Z^*-9 z_J$-_KsmiM>{fZA^b{0Xt!i+;_z5n40`GTxrpd8y?i%J7=9Bj=ikRgUP%9={cXA}9 z`r6w&dpqc88E9zfY1?}rLDg?)zr+ZR3G_`=@O95!4-NKN+do8tmeu3Mu}Kd1p!R>e zWy|(X&c5WhfPkJI7viqE7gC2rL#%&ujzoRO#=-e6;dyO+zR=x$IX#VdYqGg;JKqnm zsP$7xI~^+}M@JnUk!n*a^5YW=1fh2p3PwK4E-s(GD7$>&mi-SD(t!|tdpUP^H8mf7 zTU(b;9@^RtUb>&lZ*oIyN59TBd3OzN=7eRW#7qz5dXc}Krgv-ON4yP!5JG`+7M&ED z6c`bRhzlt#TYQUiW+&OlWVR{9$XJqf$h&u(u-o@g=UVyq=rQ#Z&Ub~kBP_3e z0Y2(4M6J!v95s5tj9_c5_su;uG79oNN=Jxa#%RLM{lT~M7}|N%q-b0+62g}+3Gs;5qPxr_+o4CY-56wH+h(xnrLu#YYU3a_)`V_s-z=qVRow#g&>o2W2(dA8zoE}pvDmfgL*&7J4d zFgru}&t4Ay87T<;h5P%GJOt4Y<$%ch@%H%W`T2Nuad7kRA5C9RzI9=eeFb|pyllVc zR{i6fBRG;)WBZBWy@(wPQ=u>u_-5UIH(A8x^k@3KK)08B1`|loh~S{0a20uJWo0R4 zW#tH1xb~8-5jAyoPFA*&;l}#9p^;HGg(V!tCMWV|a%pZwk53u7n}AFDnOJJ`_oPV- zJ3^7O)M7tV+x_Zd<+$$5*3NNz`?CACyK0xGic=q8rNbkft!W5UyZWM;@PUR-pR?*} zDnM2^P?@R}&hQWWDgyc5IXPfUnOFas z%Ebfe-c8KO)z!JO3FBou1LzoL7}$bOd+YQ^c0O|j{!~O#vZFhQn^l%RFE6iK7O~zy zLq)8+4Jswu)9I@FURh3ENk`|+So`fG1KWJi!S$(MqN}92uHq*^g`4P{jNjhg&i@Ht zXb9@rj-T1iPozeTii#9VO-V^hOM~|^tS_r7YHe)J%X^J8xKG~=LNeuKnSOqeB>7f( z&>Qu8)sO4tbK;6zJQbvJ4sEa_u9%n z_VyO0GCFH})8TS%h+j|1#J$|=V3uZ%&h}r7vvOU+r}Tw z1u5@vl$4c6-G=%+KY@8*42xG69-kHYll~9&Zz;iMBW0_#O|WqZQLcYC(87TkKD6!V zq_phS=XK##++S4OZtDSC_z5EruDuc2Na^s*jFx4!0(y zygah7D*p9~jg6hPe+>RF7Ym0t3lh32al(whZlj&~%fWrlvfp;r$JREsrR-yEy1J|L zPhUbHcApF)ocKNveqoXex%X%kT=v6<>=2Ius)i)p54q=?gF_|24gx#I0nCX>;_=9?9KF1$fnP#s zdPX$`rw?Lcs2*{$h4MS9t}G>!haY;7RE$1}&lL3U$}~g*apFXTl z>JbsUsFD^XgnZLMjkLbzET`E_(PvmLas8%xlI zu)=;-19<Z&B0{Vj5&jCb0Xwn3F`mJUhw}L91(FE;w$a~|iCn|}ruJ*NUjx)<2ZmLTGR)frn zZv1#cs~H6i_4f-84^esh_ANBzY`dT+48$e736Q? zafR&zMRxm&f^LlX6Mvnnivg@z7xsK~e7$pheLOmQa6Uv#K=-6Ka#e%n>v@yl;%cjrjeW=P@MUT8011UN5y(W<0>$P??t+?0dxesqlSy7yRC*RIt zb@L!nr#331wF9pLAe~wbU~Ir*PY;My(s{6x@OeCa25BWHYyMVfUk`)!e`M^W#4N|n zhn7dLL#R}49%=M1*<^S^LjU|Gl?0<57y-YN81$p_ox!H_Q;-16c3vYmkj?D$QydI)y zXRL@({YJ~J%XTI~#;P1E2ltcRhn179r_`r8L*Lc;W%rBcrzL@hGX0}A@2a|rN?r-y z*Zs?Io8Ir_+~q#%Ia*m^xS>GevVNoSdkD+{Zt~;Y?CkV3fA!V(D3yrs-!XB(U*J1` zgM)?T#5Wg5^f|v9@xjBrzEN;qx5YdsmzIvTUs**?`EBS$gRo>KGCk;`e`~EPDlIJ< zk?DJaYk>M$7yXksjT(t5me>}?4xr!dJy74T_ZKGJ#=XUTE+Jb)F(|b@I%@NTDIs`L zf&QSUd-mb5#N7;)h)d^c-a2T_^fIK#RF2_R6|k0Kg51L5LReRq{Bxipxz@E-Km%OV z9nxvZ-VKcx?23>R13PHevX(|lVtmX?ii6$#O+yd}9gKx=7Hi?6Z$;Y_OQ z$yy6i-P1~X`VoaBgfXN^$8yL)-MG^q0sfJ)L1ba2w$-acRz+P#T}I}qI;R?u9^wy$ zlvmo@JC?s52WJZImM@pRoNQM&-OoI5{%!o(+1=gxoX1Gl-E(^#UkjWNiIYj3D74d( z)U*st1$o&fpYsZ6JMXYfd%^wQhK}jwApF}T=G=18q>FsQlBPK7v1C0p2=ZAO`UZ@bmHW zSG!35$cozOy}xhlWo$IoYgvJI$ zUdfrTn=0Ume-b7|$A3Kem?@$v)7RP2@h~Br)k=k19%`-yenU+^@?PS|GN+3@$>bP8 z-VTj&mRVRIQnuQ6(%xib|nW5`$f6#$0?1TpWy~q^!uojQn^)Vq|L-u?2)5s;|cMD;xK3 z+Xa}p0VBY|K-W~CQ(FYo^yT|warsAslcOWsUv{NsWxv_SqHvt}H4?Y~yL`%iuZsdTVaM%ZGICx1}pxU<&c670| zkM+nZDZ_IFaBdSAAR$gmc%h=;AyFWVO2+({g5Y-#%gXq}aN zW2ewFk%ufd2M{=xh%hDIv>JYYyuBVNX*p_XnX?o3LCkFP0daUO4UM&z4lc(%w|ean15Smqak;L=r9)Ll>hUEp4?8;&7v-pc9sDB`?)W&@>vHCRV?hW63Q>@i z`oIO-!`kD-_yCXoUsNuW%0R~Kv;a?CF{Bgo7uT;Ia=0HQz^m72~UMy~0r$86IizYN)QPsA#CDYH4}0v~zT~u;1A3d>l$F zNo^|gh3&$y#akD&)6-v?m$46x4at8C!#sBh2<}cG9>&BP+uPsUH)kGD_(nmzx%vjDrUm_{vdHs6Gc+9Dbg4zc`Xf0Apg||7h?I7-pqE{Mp0v z(N{J%>KW=97?zY%mcHHI;tDla#YDJ%_4TVg#;Ic`50dmFY>);5kI(qxUgb-MFCng~ zDp$qVGjKEZTkMm()JnEcK(*&mgOPoI2Ka!jWG92k`ilfeDp$2(i^EYyh=JRCDes#< zlgEj13Tw^&Ofb)fhZ9gddEsG)(wJNdowoX7`^BLicvH}X5vTc}%WXwPln}2);CB=h z73CLRUISeuD=xxPIWmJ&#q8dxRYau zf9*=;aScw(*u~2m*IDAsE~9p%a=~Ea`^F~WrPLJd#YN$V|9TCE*|LqfE0dD&(0#z305mBQ}Ug1Xvk9!iwHg|BQ_-$5+4Nt8wv_1Cozv0 zmXJ9Ay=(Kh4^e2prr`XZx$hso&KM%w6^m*dIdR)GQd@dB-Xl@NztTv2!)^w7R(htto3Qs{v1t!xHKX523bG zhcCvc-(Ue*26L!xk|rj4V#9OV?LK0>{Nh4)fK_*L`h2-?84fDHoTKZd?y3Ut+riIz z|DLL=mA9O}wlsaUcZ2UuFHsfGfddngP_j9*Jb<9=jQydvCXLx%I9XdixPYN24CJrx zrRr7II-h%y#;1M!095bg)hUT{FC*`hDgTQm4G}9&ga4Z*zDL5t3ysfB&CD*YF3gCC za`83QS2kDHwqlE*0i|`-7q)S<3QXvae?{pbO`Z=1m5sig4+0NgNsUZxJxa@J0BXm> zKqLIBAN)>JUgy6&u;_r6mNGN>NXtXRBa<^y{6YQp#*<7O3K~{oQbcfAfX-<*;OWKG z!*!x?nnB8Uwug~2pxr%B<}nI&>l-UE1y3&q(AnwZf;6q;W`u}=)8X6;_^Zpee*=qOca0}WRg8J z`KAPf@oJw?_LJ_eL`J{M5I7Vsq7)>w7OGiN{eeLt&G3*jAjKo(=?ww3RY?h>NkDg_^mWydku&m;{;ZibwiUvG z?P~K|ORv>1ufSgWpJz=$O&^&Rn{s0psUy<>n)y93Bp^OH1O7FXQ?&j+>7Gs|U^U9g zH!=LO^=HS}>?a*l_v02OTo%#V+KJGI9pJEf*eb^9-_vvp1V>Eu>22l@JX~sJ>=($a z#>*0$8v)h`S8dW&*k=gvNU5P|VH#llt+jNT*7MF2r>#G(^Zxk9E}H>2>y?kMs}%@z zMCm?RnFCMr4)pfL$@9U%$)UTu-7N$?n~`_yU*WSVejh{8dEt@ACxu=M^FRN+3r_}b z)O^6hgEdv#l5a~}Q%l981Bkr(=Q4W+Q`%_4!Dd=qeLr>E8(SBF-@4qhALGSG#}s7( zLjvyl@{vPsS*eZi)wmon(9`4I&yI(nL$Hta{p^#GOlyv)?K8FR)6iOQ>|B6!^Hb6T zQ*-l_*%0ys0zLx(D&8TijllNR*O%&g0wy-uwzj5?Bt^6c4-!mTePD8k>tdpcnp#Q8 zDKDvxPppgm86h2hhH{`m^PlPePsG1&ot)ApEm1D*jYsdY`Y-DKP=#l z37yv*VI&!TT=tL6=o43 zeo?UF{}D0;mi&P3;^rAwQ;z{nB#C0qii*;h*l?#87ii={9)aM`Ix#gpEFmTi_b^=d z74Ad@TBs2U1VIcHTKei$X#_95Zyf1sT5fLeFhoWsWo1Q2r{yMPe8Epi1Gh>=-y0Gd z6^=uM3s@Gd1tG!tc|i9sEX*fiQ^H&$hoR?^Fb488iD+|*%@AaGQc4np@8x?eLLbEl z!gX%Myy&LBk=|#F{A#1)5 z?t$HM9=73}=-b$pcKn9S=T^dYp88ZoEN*eUfN4-iD=qU$VXm^Gm|2YDRr}n-kJJE= zqoB0=c2p9@(83}abTvc)EXkgG>U~TsJ^{goQTFqc3N{=P0&!+&+_#KmCCR(c`Ok!Nz^y6zwhkoHt zek?y(ZoM72xg8wdc+6uXYso??HzAp;BeN9D5F*M}jP8%X`K95Kr$6M`m zDKXPVvTt6bfMzcNL-9t7=Blv&dV1PHhRukKjLeA5fsM`2LCL>E^&Vcbvz;k7C)>n$ z>(9p4*7nx!E-~Ty#%I$nS+sQBQgXoj_^8hl7Rqcs?unWRMWs3{Us}iYMa8X9*l&pX zmJ#!DmY=`P=wyc=`P1^eL`(fs1KK1wU0v&DUl=CN9PAvAu0E#<0IiOV&8i&F)7!$u z(iqYD%MoyhQRnU-o1>6tW&cLTwsF100^u)_Dsb@Sm6a6_J5*fjT}vxhcgefzr-WHe zVEF~0P&O8R*1!9)C>*Y3I!Oo2O5{e_v>h;gEQowzVLvLWe80SW2;%w@goGe5ZbK4X z130H9v>Zzg1&)@zyJ8)OtVl(WGe*jed=j4jfQ8}3SOK_i3K;u>k*V)J0oYKmqv47@ zeEE!Uvevw~plhJDvbf^;wDYuf0mFg)7WnYu=NptRx4#E& zyTy0z1l~3ug;>BEgv&lGw(mOz#m1Il9(_PmOyDhSHt!qIk7VTED!=RN@9i1ld{tEH zc|3UJ8D%>j$_BvE#(YmVOHiv~IVMJRa-u!N~0V5@ShTi0w@ zn)`~0jgF3ujSjA}ZM=dGet8)RAs4~kgYFFwNI#N)h5U%St&)4C%Jnt0zX-g(4WBY2 z(<6g2zC|QKc185eB~XMpxVX?rKn^7f4K_9hr8pcM93?hCKQ+Wx5)FbzkQtE>6d8LG zI)1hVBK*<9Lqo|$Ixk|&@i~M^0jqxMU{8U7B)5%Xd z5(w$UfI$XL&4^|LR5W0KABycQ!z^kVdRkiAM^_qm*$=No;c1yUyV{2bM?L?>4JJD# z05g;5DO!}G{1DqO8>+OVl#Jx`)YN41qa*8oEe=8a?fWcY(5GO;+XoMc^RKPGH#_kd zpl7lCmXpp~@i7qhHpt&=S#-JCpB5yH#1!NyhoN0ma7|9Cs^M;Vt>XVDjZ#L41xz#; z1Ox;aY-AV+d@OJKU`f@4Bq2$05x~V9m5}lXtGXeA*c&X&g+H`Y2Q>Zr(SfIrmK?{G zUS5$$m4Zifb#=YLeO2FtvZ?UUB5-tEyHdTBr_grXmd5e<2i}*}lNHC~rW;*!dX|{9 zm>BYYUt@e@TKHx=0uLCLwPxNR9W^~oZecODzJ?rdIv@!t&`|Pgj=;6V19~b9^{j1A zce~CnEFe7OjeKBM)=w!Kg|OCoZxbBPTTDZ|sq*u014aAV!k)M3jUF(2MJ+2>_vG=( z>Whin(=WR{*Y}UpVC%a#41x(6m(7eOoo!5=9j#2T5YNNTCUyf5p2jk;u&-{e#ck|t z1FN9n;cN#w!XEb_!38fqeflJz{}>4Ig1MM^8#xe?w$}0i^)P|xa{(MY?(^yOc2(cX zjn>{EMui&PY1>GlEoQk&EH1$&9P;VAW7r9b*L!sB7q(IgL@!}CA{2su_qWNu-ftd- z2A0Mw)~;6M{~9|Ib#H3n7U9AM7u$UQ#m0{fI6+g7&$drJOc6e<0U?TiZtc;e5!L8~neJF;1Abs?!$>5=&r z2{EO4g@7>03k(GLTuH#EAx0DvL4Ldgi)w#)+l~4j-I6d15;6Q&6u6FpKPeyk_$3|( z%Ze%t4wsp`3%};&=0|`2z2Vc&V`)|LFGMLOHWu`E(n<%MNYwj2+{a@uMR@@K5}A2X zabZbOF*DoXz`#%_1_nGlHA5N5*U8Q<%KuHxGCb7V*$Jh65*48)hsQ@JL=XXL7cp>% zp@@J_oe*Z5?`XUv^l_uc$i(bRmW*1ox|)=diE%rkyn=k_=^1Kkx?pcR4Sl}xHW5BT zS$5-Zzt-PTKU0cRDx2e&C749Wcqq_S@if27g9~a#2mkdM8rrE*4Z^pm7jjaHr@Q69 z#2#1t}1i=J^!bHjt$3xOYs`z zw7}XEw(IvjE5~$)5I1)2HE&Jz+R5h5@z$2_=JHHdX!meVO6_y<%$Nw|mNEs-=GEB9 z$f)wWw-J$W!9u(c>0Lrbm-d)C-GROu6%60b`lC+jb zQ-er1A`-}e%FrC7ik^{1j+Uj!yl6jZ9`Hqg3%{nimhjyI)z1}0LZ(>hVk#5Yb231l zeFwT_^P_KjnR@%)ya^UVN3QqWItYsGYsMDQPTsS!u<)nOhv#jJX$~wb4+Y@``N?Ev=0|XXXAX z%BH959qStD=tU)gATfON$K0Xtb-$26J?L`4$_w04aiM-4tp({vpy2uHqp6%+&-TX}tY7J487l0h(u=2C8%KSvc5AJk z4Gp{qRZS~kt@SbfE8W|7p!Ywt!7rJ}l7`a%v9 zZ%00i2#VE^Rn%Gni8CE{Sxq+;TTIG&^>~khTvhe8Cg!$VBLyIBX!9xjDt@~ss9_;F zIe8&@|4gm?K7rq5&CBD+Cxm|%rJE2LmdNRv&C@;!$nnL+o!L=e_fr88K+Bj5lpK#n z?c5JeJ`Vq>A73I?zJGw+otRr$ARBX`64Fv52Apy-w}T9VzK&4o&d@8zqln1wI4EzU z)y7q)#xN_6KxfB$=&ezY+@AYNV z;J~djuk-l5Y0;w?&fbQk2^IcxG}AJ%voL^&hu?sg1r$_C$!}_!?!J)@MHRVop$&8p z@)eD!AUD=KI@;OYFRv0pi*knjpu!qNLoK5=H9kH$$x~6mJvF6@kX6_}Fi=!zu`b9! zFN7qtsdMXNv<^2LVEhLcH}RwDd$p-)p4#f_*Ibixpu^=yB4IEAo>sDX(MD{*lvG=3 z!=?aKDNr&xCPsZ?l4o4?*_W)bJfw~6t9-wO)*Y0CXK9!6>$8idvCl`xv5SG8tF?4^ zw;KmDD{oUD9~UrmApUKyx=@n5wzF(F zQhAu;*Wq5K7VIxvoMhsOZ9q+3bG4uZj{pku&hX>;?2t;|`3a=Js|Lu`59iy58s%z4 z*r?jNn!4~xP9SLd@XC&lx_LocJBb7g$NT11NYgcq)sTA_5(4dkXZOrN$84vj${QIV zBQ$sRIue7tgPSQkDSO#Yc^VNRQ_Mp%nz0y1z_L z`lzb~NW*bel+@3bgW(t;R&6q7D^oP;+rOkfZ$f<1`@M~)r8&+Fk^Pf>V>1g|WI<@_ z@7my>z#g8H6H^SrR$KjOE|DiERO1No*0&9fvi|czhHLNcWum8*iq73LdV;WH5h2C= z86!iC2*{G1nDh$)I*GAS9>NDGsjLsHq67HlT0p3>kff3xhp@1HiRNWLGkfq;;*rP^ zVX@ojiP7;Wk+C_do6w1|J2Q}|NkRk{ItX%1AmB!ep$Tn0UZCTL<6?<{mmBJrRZ$AM zp==HH!DxDyBj|5~88GwTJU=8-tv0cZe$|7@vNE;UqXDI0HDQ z^)}rntv?^ib)Grf9m;U%=uu-zcV!fcy{)K zYL2MB`$+;3c$l_wV0O9UUxiZ*cO69G2-`!swgV7?jWIPxDH8d#b?k*k(J>uR& zCq^|JqP$xG9Q|EV5-`FRq_sc5MN`L-aT>7VR{J7Y8`y=p@n6GHGqTXo(6BPM_aWgx zLc@UL&PRLz86yN54ap3Q@J~yNNy$i8`Jk<)H`l#U4l7b}rIgG6lK{4XpSl`?^BE+c zcDFy9eanq*hh>D5VIZc0$te zgcJIP_w&oP)2p;*WdrY1dO$%T@T-@#-0Holqyk)t7I6KLc!&$Wel2+F<>X@I?(OMm zMZjE@4{-0he1Hk@~xbUP2s5-Xy_>)XcJzo-WhcAcJgf^JcuVFCX_ z#w#Oz->gUHBnct~<`Z5GQ(#k`U0zE#A9rq(x%zi)sjm|*_hwY&r*l$6)^bVqt_R`& zrs`-SE1gJ?LMGf`_k0mBwxOZarKU0&Y3(1{@KpQ<>ltI zw7+Sk!*RET<>OzW<RX2N^g|jtPOV# z_OA9$4u3FE|ETt#v}R~x?2m7!W-9AovhYP%h{9(?2k@9KtEU#6#fbrLQlJ{RP=$y6leDXcOK)L-kv7QGf1(|E?*SI8fvY0EGxBxrh-CyXVE=TY_fa3kNG_BNxKP ztE+1)Y;2X`QTA7Mw!gblAc8*L*w({UJSNol2$+}RM`SO_$w@tCXC_v`GgL!Q>!aRB zB=KUhMGs^qfWjEG_`;zcW=^;Ii5*m&#=WnAS(X>ClPGhnOw3XMF`WI*Ph~Gdl1diV@=H;30_!ojm z^aMC@Q&Uh`PcP<M+*+# z(9F~}ryx5Ab;QqofkZV^24a{_YuH-O6p2WB{#Y7#mWn_Oj-;G?xoluW1jZxH@fK9w z(zmb1lfHvgx;K)l@~Y9{VF?F^=RVfb^b{dk^=XZ*Kf)R!BWohlTUv5sr+k>0P{?=? zoZU~K(b3NB9loBO1(>xDb@WQBDBQDPI9QY8_7C9FcO%Ygo{~I2^T=A$ayzgJ|JP2& z5-O1>_SXo<01*?On~N=e4dLz%akVM-Y+lsVOlY;61O@KIDw4# ztZMLY>vuEtyc^5o=m>P%(`8>v4+jV1FO=4m>ba`0n=1*=Spi;AVNucXrJ02Z^iAK7 za;DDjOr1?lKYBZQ-dv!SqqTXoAh0h11cZqZ%o|LMOu;Cg+GGdCL*eL-;K4VgzLhIu zYaqDc*eAnxcem%W z$Nm6&-S~d5>s;r&PyI#I@Q){p>!;%`H!8#SIUOSdJspE*Ue?az<*x84-byyUdN)_s zPPq3gI`8$!5D{+@5)f>f7lAEHti@$5 zJ}YF%2iXQ6UXg)R4i~gu`$*9I=k%WmAazo5XnCMFESn@#(3lDQSQu^@0kY?3{j2PU92C zDso8)%qLK!#pTvEJ8L_Z?g$zCpr(q8@4qP??$DHoA6LJ8dyxD4ECvZljs)N08y*gXfC3(!EIKB%GL)JVn@UWq0@4nP0W{|L zd=x4n9*W!9Ca$VVlU!_&-wBUWf2*fEJGTfT7c(O!D?YLoN$|*vSWSlwe6s<0i9K%+ z5fP}n@$rGX&CDWK5^wF%Ssn#R^gm`eIjlZ0>XTE)$|^_HuoK@c%(u?_ZQp%Mb)uDp5V10*fWd93@)I!>W^{wUX-R^U0jkk^*Ii(C4l`J|V}s z(TmM~V+Unf8&ie88i~qirQgFGY#f{;em5ebuSFWT_`uoafxQ2D*#aK)qT`!(Kempo zw3HL!!1huXzJDM5&caXHXklq>LNOxoUeE9iK13W^Xkp$bd-wBw+I}ghq&=$!ylMPg ze-py&nv_I;5tKH9xUmQ(Osp9Q1(pSBE7u zw6IX6LAICQi$SeDS*GE_?O(Y2R`+Lf3s2znw6fd2Z2#@+8xClx9#u`%wYAmtb*<nsZMx+qukll=SRiQg7R7}K0YBPRv{4q z#xvEELsq5-VJyKpU0sr$VwSgIsArWmE~fxt+Uf5^$)Q9fNRLV*ijsrCFZNzsXKa&_ zDk~X5B2rvUl?Uhvs1b5QrTZlB1t|oaPQg-F8QQ1(0S^yv9k7fitIyHSoq5#o!42fY zhY$GQCMIgQC-63M>8O@|Iv<(AqAQ}K@7Lg!uIh;jk%Ac$XRchYUe6?I5pBr`4xVx2 z(b7u7!5}eSDY-p8y)@K!E_PP`orZQONGZuF$SVI!(bKWf(6Q5jWH$!~2Q6A|dy79F z$}dS_@<rklzj#tPSMkiw zs%n2r#K9*{`t~jM8xHRJ#>R)7V4_j?Mt89_h|WzupzW~`cwK3X@uJLtATQoyO&A<{ z5(*AE9-LRYucy>AS@KQ(ChVG8?y4~Qcug7Z^?!(j?D*)!?Sbjv%bW7HclRZ7{wo3T zw2a4Y{Bzbn?F@sWZOd?})=n=Fc8Ux#${hP001EzmtqNq)ZwsV9X?NUA4PRVL?VM20 zncjP3U5QXpkWrBBdM+#h$AONv0pP1?12~|eDk>}V&rf8g?X7KMqOC3B#H1~YLZ%|~ zEnNie3=Itpyp8fC|8!`ZofMan_ydKCiD&N*4g}*}r3es6a352cvY%!B z!ek|X_jfX}l-YkkwmXJXHfnTY+Ud-z-02y9$gSRMP8{(Y-z`|tw`&i=b}%}!FJtHA zbZGIqKU(trHgmk(y12Bgqnm03mXigaD$GQ7;}jR3IQ%&9?Cl=C&$nIE-+#NYs*<(5wY-{_?Nr{qo4tX+hHuZW@sWitmG=hF z7tb!$+&ooI-A(^3rl*sWv(<{j!_|dEpVtVgVa%B!w<$!5$HaVt>h%o#VtvWRkq4Oj z;EeSJ4ks@=gl0|kG%O5NPOc>7OAzAi7t)e}lGRv1X`JAOPC%idSiX)M6T2N7eee%0 zB1>2YD;73Z)*sBw?QBdxezY?&u{X&@w+w464#mMHqZ3#oMk2tlZE-NIz1@c~(bHFQ zg#{%9L?|P?@sgI-B?YOjFE_e!n$o(u5|V*gAz!bsDdIO){l>m3i2LWmK4KBXS02X5 zzSZjPm;-A6^6o0Gg99g(gAuSth>c1`X)y*jR}M)5mYSA~3|b|NgdrA^H9ed}IQ4^E zV=oO&QGTw8G1yBjKIZ4ph6qqv6A+T3(g5%VB?lHwEswbBw{JKS5x8uxe%%ec50Dd= zmrx3ZAV9X2eWtHZ_z+*CB8Df1B`AnX%E%3Y^V9Y4NGJr<_$#Y>LxE?r#W5Y^Fv+r}*sg2>eup#s_=bb*4zeUN& zNy$Kwxcdxz8SKU0cR+~9?o*cjXs2i=WW z4PaswVSc^7JU!XBNTK-Z?;Ce0^k(6&xEKT<-PXt5w;poWj%q9EjP%+N*GigQy-!Ni z&jP@{JeYP&b~cz!t-b)D|E1!ga#r*xo5OQdZk+N)_a8nXGU^{764-J#%N6Fk@wmTa zpcCKB)!xz;#t2auiik1p!kx;K3UFL7Qy!gc^NTH!zG&>w29{^{=cA=R+Q78%gYzAx zYuzgi!tFvP;jpNvNEGxY&yBNRlTVrD_dnQ&6+cZUeDq`7Gyz4H7Qj&fqQ1eD&5={$ z116>>&)iGsX$L1JNH7G6;J`1q9F#sZ!0e>S4(}pFT+!j8ZI6f;BHi2D$3zb}-&=k+ zSxE_4pL}IJteu_pK>Ezp+}R6*8q!dnDTe6yP+U>;^G~ODz1CJ?;TG5wU%%D@p5WjG z7PN^S7aMcI%_P2&XBWofEMzt~1UzZv=m(G@r2m_ssiB#W5I+s+XlL1bv1dKVy)Nl> zZ~;7aSjv}JwGMd*Hg@}-eBJ8xc`5zTF zu_r6KDY#;NA=MRtkUD`qN)*8NtkEo}%|3XzntK3o4CBpXrwRYQ1CBZ5?%vZgON1&b zJ+MYY5Flex_ib#(5V8RLEf%$dl4u-~c5(0k^v)Zu1)<8ELV7-+>@YJP z9R0;#F27>bbEXweXIlw{WKWCHh;~-Q-yN;-z@o*0_e756`)=ytH3q-u=^#jQ2XyDI zYQlwvd(8o}GLepZ`_&o7i!@-RE(O;Rkzin)_32 zUEB9poOH}AulR4)0>y19NtvotgRm0jc}bLdNP?D6q8m)Ye`^g08Pc z;2k?yTueUzOy{Y{bbtw>3WpqZGWTqcWT0W3T#K&zIA;Cp4i0Oo`&yP!2CSxSh2gmX z{(()5F2Z}}Yt_c~8W#_7lb^UEyD`7^$2Y+X-hZ{YU|yfr(4GX<^J?lb!6jlZ&N$b2 z`2*=u5Kx}pqOt7sAmj_Ok_r7|B)4ZL=cluHa5NXKRCTDs3Jv+)w%9)D3mzO8+gRmR zV3NSd(=n+Tu!e;B=K-R{YF7nJ-uWmbBd8~+xGx!9DWN)8EFD9?e)aZr^mHK$Y^R9Nf(!Iktp?VEvt`(G|4MlOh67Ih``Ryka`DUEE zy7D~q?H~*6asFwnO5wU|ohRaZ+RytC6Bgf(-rlCB-YynyZk{ftc6O#@p}E9=($dJt zhQ!lA?f_F5ajzw(s=T=td;+=ke|J~=Z>BCT2<}$fkLPPZdZZKD0UvzlktO2!njg-h zL1cgTXwTZgzPO^aBA@{F@vr6yb#`-kRjZr(2Wwa8i`ugCE>ZS5bbfAru9F`>n+gFu z3*_+5I=`OxwdzwS^8WpG!=GZ=-zJ^L{q7Cz+s@B7^M}HoHw;{$SEUJo!7RQm@`pi- za%TId!k`4EOQOK#*Z*j zHY$wT7v|^Zm&Lc^iM09nW)q3Gjc=bfZ{|>RIvnLczW02uU@E1qa6g$d&{UxL778*u zOY?dL>7-O13tC2+hVdB$6dunrm;1AvSt7Wr`+uG0=102T7!e24IZ2380%%pG6CJZv zvV<^r`{hc-K7K;zXon#hKu%6k#KhF|Mpj0+#bsmfuL3b=x(K2BRNtS+Z1{^Z zC`QLjZ|_2v254tDln+dT$Eu>C>v>$!{Y4UJHWhi$LQOuz^1b+bz*vQYu`#GOu(CGG zE&`W{qB5jX$W3FiidhdZ@DEo$5F4*{Z^@vc5m4ZV4*xjN7jA(F!vey>Llxk0&Dur} zLycBR#nk{r^2^3xfr|y)qwo?IztBSRj@9><*)}-zzoexDgFtXv2V8DacK(&g?#hTH+8DWFki?q!;3FtNCIat%S3;SeXJybxSu(T>Jf62+r_L7Z-xx&U%5aR!^vvYFp z2hCmt=vt&KY^m$4HjABrnb_Ezr?$+IawTyx@f+Z>gd$`YS2hCu1VaTjQxuS=evTe7 zmiyV%lu&pB-3z9B-% z7ac57I!1pKL^FTfv`HH|S9|aFVfLF!)1VSQrHh@VEj|@WV5F%(yEI6|I zAq1hCihgRD9OFg8SiQO32Wo_{+*_rgk)hx0FIhO4nOT|HL7NlD;HV!H#0r>=##N)K z5SLoL@exW&lSVQwz$3VMWn^KoheU8rM>mCZr?`6t!EnbgB=<)B{q6HhN8G8gls9Th za`1tkbm}?@*q�Wn~?#_SqF>JYc}%r@nWOv?cxB$2wNKvUchNqQyLLbz>1mq zKU`H+8c|An4kdf)9TPTLzidT0X+_YH#lldOPtC;206j{K4k50`1g$s!*wp7ICnu=k zFwUDsP-m+{N;>9)tg#6U<zN6FD%}_zJ1-xak9B>Go>#}tx8VbT(wtM^VW;?6(ZKGr zw6vU$D^}xYRgj1_P|#kPyEr)LIy)P@>%CjJ1F86lhs}N!BR3nVFFrDoX8ngYFbMyj z7bOE>=x2^xIic;HAN~Cl-ad4%a&}eN+}>WpGvZ>h61OLV07%T~z)vhrwL=G)&ez35!vokZZvxCU+;VxBHMwXGjp`N}zINt$O ztKD~w!FOR17)@@64+ExcnIYIe1%>A3lSy~1OG-Rjp_gDovtt%-C1``dg5+2hxHvL5|Xs1 zrX;%~_Xfj(tlpCT<07&)A8-UuR_`UK-y-@^e_jjBO1kfSysE_Lm|7g3SbY0lQBFqx z4dkr~PKIUMN#nyaHW!NOu%mTgOL)CsRZ3k(cN;vifw4m7xsRs}x;hxv6g9t~s!DK} zd%R$wZpB4-E~CLgH*k)IvPWf);=r>C2?-IS^tU`newg6qp5Rtn&s|rmK4aNikV%9= z(p%gQdo%8_{iP)R1CBb^hL|3O7xl@@eq+{7YZCnZxM^14Tj@!FgF`^HzP)B{@z7Zq zlNkmo|Md0bG<7AEkdy)maB<^e;^X6h20|z?8U`_v50wK0*y-uN$1^t<*MDPboqmiY zV&z2d^d%8eAu8YEfV=7RnmfkxCb5Gt2PET+%|2{xf-zWQlDA%9)#c8^QA5pD72I%? z9gac7VQ21!gl#!s+RNM9F>{6b$KL+_;o+|BF~V6%VarQCY-+Lg?8@5asxtJzr%Vp_ z;)VHTcpk_oau)RB^7{H36GK7)wtRGSRoJ}nJ$wSKvWyV$q%6!kZ7obxzbLwF*W^?U z=u(4qgHMa^wejW51^D^Yl+UE*0*b4w+ZtCkylZc&yqcu`!MiD=S-eeIASlE@Kn(2N zO-bCM$b-)+IE|d6$+N(@HjVy9-}&Q--JSbkoX|dq;qPTx#*(sU)+MI$NQLd8&qDaN z+bX;nWM2V&EX4Y=H~i9eLvveOeRC81%Z{TfP#-dZhq6muS5}g zAHPWq=^)qA{cMV?b72~%4j_qfbdRGR3wx{))p(|K;E~wuJ~4XEHH`cRp4YkYRyQ}-m)CEFtU(BW0a>9*AZ3?%;B-8iPEyKWic+M-?ffhS z;+sVmqEBv14bSx-(w&j6mOi*4Mg#?=#73q1Z~7LatWvqZ)q70|$`U?%m`xIC;o~i0 zU{Fw?xG+(istSU$fu5SyKlE2$$DH*F%?kc@#ZoiX1J^5B+KbMBY!H^n#5%d+->e=T zSrk`Sl-8A#lQ2{=RFYT2d*hDtH|VBu4%A`J&w*!d(+$)`6*PvZeM^c>Oo;s!6RWME zrUg{6#6&owfa8GxG6jY3Fx1oB5Ogl?iM)Qf6R!WB<)D=(p>K0=;Rqk7nfwmno~4eL zD4%9w5wNhgNHVU}5@rd!pMGCa0OJt2A2XL$R#yRneOW1)?HE@AcDI|dtgIXMT>1F! zgGK9-9e{1si6?L74aGyy`#H3}(_bu&2D#n& zCd6OjpR{@F>)k{S_o-6!be12i5LYbLyYKlpUuzRvSoo^kqJxafkd4hy#Lzwfl>Q+D znHR^i(XNMemJYnyX8=+?hVB#p=sNr6Z(Dg)O>-vCy07;W)Ldm@M@NeI&MYsg02n|l zIR1ED3)VilxO`qdwtNmakBVyc&rdFf5VOMbev2o7eiFg@bjQRR_OTtYrlf*tPc4QPW~+2&g=9Q;RFe!^8cfV}e4a0!#zQAy(skM)RkQ5XoUC zTm}RaN6-V`AQDBRF?_fD`qBf^3-paEM`Q zY7%}V)clC3EAWw!koU7D;unZC1Hjx}tjaJ5kjeo@xRSY`p7?10Ta?PG=PxJ_EgaNu z{&><-3Vq_yaQopXz7DTXDBDOYv!4ktK{rnWtTNvJdt%tv^Vp6EaMA0v*wWUJ$}`l- zG%}i6RBTmY77 z(Y@gku}@~B5OIE9Q!{B=sa@Jy*Y-+?m*Z?LW5~}ib{N2S%{>u;uilXg1a&lo||Ew?Vk8mXXFv#i#E*=hUhf`dm`w2bFA7m*4 z6vQ$54Mkj#`LZ@FDv*Qv^1(%Q8?1L)Ga6DwY>tY&(=*c`?XQtYKmayBvm&P6H(-wv zhAeJ&rQrL-K*foT=|nJ#1sDLtMF*rLR5adp`JUp=EnxTIKLpM4GX57HE2X2SIJ?+8 z;*&MmDJ9#|D(wCE@c0nzLE-$_Y1zWz?h> z^jf?4&tbH?T9AZ>j0xxe2Wejq0#v80e%bgF;ty~$_>Q4 zwDv$EGWTH7p?iCB8AA2XQUV8%QsIeyDH&vUu`f&Z)BaGM2>Pt)skna-6iyl)Vg*Yc zGcyNs>G$s?CFMU#9IUNuY>;1NUt570SJTQw!qA@RV(0g8|M1`dD@$21Tx1T^cHdy^ zw7sApujXeBz%S;YE>;2?+5BpUxDjXQv)xzTg4-0Z(o$a((K9d<(1UHDz#_o27(h%9 zyhTOYYik2JW>YDt{Jz55Df0f(Wj-CJajQr_6WBbk%&DLs>3(}@w*Zk?rCn5b_Qk{j zp^Gzga0MjQ75aIf(L_m(8wcF;1^{CSMG=?&Y-;0n+;LvD8}#>*xLqLrx_xzHpO}ml z{oJLd68Yl?XLF}7A5q^t-2P3dODLGPI$4^ZZvybd%Q|44DyfQ%1;snf;p_hXEiDH> zUR5IDkIhq1-3``L1jJvIVgdvNJIqQ08^To z#$Jn2k3fJK7ix#&-9;@j?p>jTFoj+-rw15o_JX-I((OLgD?(Q@VR!IhH+E`4O} zW0(t{WG>#fNuG`x=91zc;Ny2dnl(_MTV+)Idda(5P|C(R^80Q0*C-Ei%Cpt0%OPSV z%1hzRmeHAs9u;kMFp?U|sF8@&2NPLt`r_)&ElWyb{2YC5E@Ag__IT~XTuG?=N9f4S z_59=tjHn_naBx7Anp&Z z5mgPmX25M$9z_(h9xng=#e(4K(kpJBhFYh&V~-xb)q{_7g)i`t`=TIlj(@v$Az&<8 z)K4e>@%tSJ!w-X0ZR9()VUyAz{~wX@@qvwiqLh#D3JuP!2$a8qIHm)5p#jmWtgOfZ zpqtA5M-YntF{nx5;Bv}y^XXZk>X4HbDmgSF_~qyXv^oA87*s`tr>c@0%-FQC`JpQ} z`@m}_h6G#>gcRsxOcgQ7jghnq(VMW@uo~^7V39CI(D$RH1pk5p!L1UvQ{ts`fo2^H z{?%*0j^zmz10?*L)gr4B@iq&ykK3DsiSe3Kl7Nnb`mCZ*0GJm!8Rgy~()EOjW;|+N zy;ql2eg<&9#lhY!ssWH#cnnGU_bWFUw_%E}j*kx$60(R?W{zhP4PN5=!z)kwKvf@05l(*j}=f{a|4o8GYx!QB+|h zNVvMa|GEEHC)yhba5&OYumftbv=y!)=Ym|BT>6hl^7)6vo47aP>V0FW+c zAb0VQ2}NfY$G4=Gr*zYFbUK8*5%%+fGe;-+5G931Im0-zrVOaLvT?Lf1M3q`Ez!B z!=iiF$-b19dB=_&f@%uQa({^YHO<2MR##6hVQ`iBzRmWG$~o0wFy@lP;;HRgNw-p2WL% zp`bAsYYBpbVj0}g-;bh2Oy2)45M89e=eFU{1lyOKzh`smf-N27hCbkNqp^G!tiXVzh!uI4-=i2ybY}IMiws)&C6lz&k(XSjGhT-YBKOtw-;GKxHS1n0C<=e4k zi@idbOkY`ozQdtNr{GEKwgQWAlgi3wg@nt?11lHno?f#DvTTug(#-1yqqfJ|r03)A zzFDFDA=rOPkS%@@9%Ro);zW>^T+Pl7`qF{8wFSUdK%M+2MTXop>zSNVQCIu}OTzpZ zdql#3IT(OrgYa(w!?c=5EpDAE1Zkzod8@I#Aqg3!JQ3ikJnlTW8cP3#35SPd(0?|< zGN0_GpVKX?%Opkf;zVkLg@?Hh^w((Droy{x$MON-hf0 zOchn~OFAi8m0Iqp>pLEq#P2Rvj*4=d4~LB_)7^jm{JEYxRks-JBzmW;%;`>kd=fB= zi!%<2kz$}KF|l5>s!@Is3X%E1db+!24E3R@>>B`143ZQGs)J>A5h%4TF}1X||G3{c zdfU+%5V9yD@)(uX=KeSWUwJ7lBZ`IH>U({4iOvN7;O*TK-ALhBTL;##8aIHD{ue!d z#WNKo?H7KACLhl7-TM0;xE(Hd1Q)I**&ZI)+5zdTtn=B=_SYDWa3-a@um~M^#?W~K z)3YurjUg7!rU@T4FBq*+KOy*^QYFO%M#3%q=!g742gDL%w1CaHHaws@Q^6r&`THlv zVk$yFt>tFI)WvTKtVT}?AY&D#6%)u zGr0Lo94ca}tQb(plbIQtn5nCxrw$MT3s__0)8pgglhfm9B;x8Wrrx0c*GgB>+r`E7 zGeeAalkRSqQx(@~YJ74GM09<_^uvcZo-@E<-%I@iHm{K2U?ka0?2en2>3KEn)VPxy zld-Z=i%0Ck8ty5L_*IKs`a2mWi093V4r+1kE&)(=iACZB*UU>y2DqLCa_pl$k zy{7nl{q=F?RR*tGOj_QcQ6*0pkMF$5Z=7aNWj?ivj?Rj_n#&#yi|22v_we2Tl(tKUNw zQMX?_$dOe0Cf+J&qJ|2CLTg}hHIblv4QlCg#SW?i0%YHX=jRq6W5D9H-^xgj4v!3U zKVKBQ@5CKH1)=jG>A#MKSCh+`<$&ORHF8vr)lqCyS~{oztUJ(Wq{Y8ZI{mHt+sf`u z0*5uoxP2-{+UlTsPw$Le$}EN9ih8mXx0hr;&?A?xB2^LN<+d4>U2bCaig?%}ht0ZaszgX{Rj zo$Y&lwA|>mrD5FhUnR<7`r!|DyTj{4m)am#g&88o<`=-aH7GwgIQadA_$qvCg{hhS z{_0NS%KZGmz`!r7XCLBiZ`b-6Enq<^48GG#)w`1co_j$@otpe&YGN`TR&*XZcy?Zf zY_7l?9g^n`e~Nw-XBKNc51A8ukGYp`rR9K@EmvRk`Rb(3&o3l9TUO{BIy@XTT`9yf z_PUAu42}QG(L~+;Y{g28=dr{|UTConPR<61(}D8$iPdapo%5`;Sb~3@zZ8%3FLny^ z38-b&xX%C;??u|5=H`F+@|c{iTXKT zeaOwt>?tza1~rad(9YJ;%*(4QKV>fH*s_K}JmvY$NZonShiK9_avy z>(5f%E$E^wX%d*jL@^b`ct}h8^Zw8K_dx0Z1>dHl&?0h5kC}NiEmK`5dk?()EaO{g zS!tQT5Tx#rJDkdEv8c%4kbRJ~Z~yc(3i4Y2 zhS=(9%25h>$9^LrCWNXJ7Cj2JGNnQ*p!BPJT5UIAs$3I;VWh{K7d%^#>S|s z(c-=d%sR}yE`nxZ{OVx``CkijyY}bokn3?+oW+Pyo9p4(ZJewK5a=YeDL*AjDH`g- zl0pD1EQRu|WzXn39TA5p?z^W+t}5qKG;rM;Vr5}r=^tV(u^~$(AtOym?%43cH$5R4 zLB^(V6^;(Ul>`tLtg6JzPc7N6VoCY~Z?#Jew)ixxI^nCm}9 z#;#!SIw^Zr9nQWeyoz=d1{CZR-uSHiZ|8nfbij+wOW7MA@D!JQl<qe5$$zU>!6$CMG7)c^lx9{RT93c~)z(_d*`o*eVvD?=7^oJwfHG3wQ>6 zmUi+{vR48OOGA4lB`vLgMvYJJ*xpgY?tSpc;NOr?zZejwBubo~YN-7TaGY+RuREN( z>g%`esvqKuk@-fEJ)|Bh%Gl_JrDgAu{`RcO%TVo_d@y<3aPXY}fJ;ltkI-pYZff>- z)%k>LZrHD*nfL`^QhLgJeJx#0_1T3bu~(uze83cReztTkhV$Hhf8ych4Gn)L-9fHx zYpZI*Lh0z8i8#zyTFO|;AhsFe*%%GE%lzzC_YWl)Pw0O`g>Gdr90#gzWTPp;Ti=E3 zMF%3Xm>0p-&Uk<)AGl*v>>PtT_VheRKxr5m7~=K#h~lWs&+8`ds)SZZiAhw_QiGAx z+}O-yn>Yaw6slbXoiBzNKC$aLn=Ad73b_FO=gIMfg~de_kypT|QpytU%rhqI2=0Bc zYtjDp1}K0uBlfA|OIAPz`vR7Zgr1DNn#LQQnCR$`h=j0UJUOLcglCBmR{wTOPf{dG z5EzJVYzfXR0TH^=km!}u$!!k9R-cW*U+R5e6lgvOK!$+&Nb5=@SW-k>0-__CyfZiL zgRg;QawBYqn)zjkWwL-ffMEGm0#@&shPHZu3nIqXuZqLNY=9~~{M(Kq1DjHGeRtR8 z74^wf$)p9R!B20#8&&?f4KUi%c2gp)AY-g9Bt!rxmB7)qlVf{cMn)M$=+kOV9cbAC zt*YU<->R#>eGiTTLElV(jC_284-sy8@Ot#}5{_>4^zirsp>@QGfe6`j3|>GK$Hr$g zw6(PolW_4j|8D&KyS{FmQ&b?M3c&)h?b~;e)C{tIH=}SUkXPaUlW21S0&}ER{ZEg? zK&yS9jH3)B=MvAd=0^%_TR^?S%I4B$K#<@M3cMHvsb10iB{_8b(GdaP`7E zPm5D3>gjPfKHGzGRI`s-GB3oRUH*&l$-ulJgWzLhQ&C}~{#H;yd(t(BxSH6@gZX+Teo9z(7j z3;{EJ1fGq(0&cDS9}^Cv=()xH^6qkI*1^!ed_)lg^UAdj?$$`vP(LOv76%_SadD$R zRQ8%m*xm8@DdRog(PFFTHsuZYIJUQ@U6>vo!CKTr;aJ_!Q1fa+H4&F^{jXV2-13f< zN`J*i$*+DvK|#urQT`hUx6&U8US0k^)NhT-YV|t2dhBnEAEp&A5z4~6xE4Evd(&7& z+4G#*oSHgV{qO_yF-+yh_ssPd_n*XMms$WMWsAsSC;qa7gPnPH4qF9EU}0o!U~zIX z7gajO8$~%lfU?MO80U1^^2J=m`8HX77CO|a-&(K)b>m#Y2T$}y*Zr+JFi63}ts)G3 z^=qpy3~xz>5Mwiu;q$;_BBl?VD=Vwmf*3MABA`vDCT0d`ztzx^(=?dH>G$y#u@eyi z4j+7Vb#w)OzVShitcZOY&>!gVEZ)J*Vc6`ozZ?((s<6dJ=ox$9;7(rh?~E+{;j1ug zcfCD8U7 zZbd^ybdr#}I?zqtVPafFTDWB(J`N+EY^6i~1O1nOj%4+wX2sJ`wwYn?4kCpsDdD@K+8+Apo7{#HJLK1=N)O z{8`k{Fgm`$q-@mo<@zZvG*ots?EI)TJ9{;z5^y+nLMw5oQ|y--UC(C@g|544>9Try z8S=LhHKus$>fAaX#NIsyK$gMR1RQ~vs*kIlnwpxVni}`Py)ps;9NP0vGShf8m8`6+ z%)f!4kBOn6@T2*5QhbuOmL^=Rj{4--oDT3fCuR^lo-8o8cSmUj>xECyE@BWMv_E)0 zv2^qVFD>5yUqB-a83z~FZ`6oc?*SW{h9U-(YVj>U-CCO_St3lUUg6h!NLP`%(Obr%=b?6pG*^0lV;kmGUFKBe?l z$F;M%eZFIakRWLpk+3j@w~-Ovc(^a{&Q>W`gWZ5*+-Z$q7~04$ASieQYBXybUh()p zdZSgZ{?ddXh-fo=yFjl*qAB`1jnVo?lYK_dPs#MK|&<=z{v>U90__ z9ZM@4tM471l6dQ&;1UL{tmK;P?1XG;yp(5Qv9=bJF*hgDG6$YoEG1D1%l9vPehtDF zgw7VbwGprYsgRHz{25YFHNVl)(=wEk(x&199zfY`ur)7<2zx&$8@4!IQ^wz2`yVYq zJD*%t94#&RKhb(SUia3OCUL?eIqn|?;GDD;Gog|q762G^nOz1B;F~Eb{sxfRGR3j0 zfBt4HmZw0o>~la%jl)|XBZW22757DV8e)i2iiN?8DJja0j#{DF3R!G@h@ud4+3kG{y@@}_4NvW@AIWUX86OBrsH?*ihqPG|bo7C1L%Z+w z-ru8z#QGdAR;HbbSI_Jv>_Iy3i4`H3WEP*8U+s=_goEa4>=x zMw>4g$7TdD%n7-ztp}ZNk7fvdIqNw!ZIji{xE7id%8eUo{_dkYnJXub<> zZU(piZ(WO#wHl7>3`|{kGU5=93@i)`;Vs{(+3v&aIDj$DsRzB=09g|i{QcXHWC$k{ zx(FsO;aKlWf=}6gblXqX36SJK6i^(2<%4>{lAQd0UWn=pP1tSsY`QcF{Lj~pclXR3 zKH8h-R^*k?axx5#4h#;9Ba@JlXUo2W^l_T3ujA8|6kC$4R*Kn!&D2WT&Qzzx!R8}K z2YfKIG&8d{F}2%nTp9SgDlywF+XCbkL6^JXFDE2?_DiT91W=)@4<9!0@gNo9D2UZe z7%@G_*Y<{jF5De`ONZGt=Y9brN=i}niHtx_l|KWOJM!U!l_=uaIGFD(_>|i>pngos z8G_z>Zy=DydmbjZhbZzz3kOqkv+Rme3*-C>?5F9Ozy!#|H{b+p0sR{9F2?G@!22pS zmE~*?(p^3|icGSsn(K zkUME|aATFf)u4fT=NGAZCXYs*E>cobE;gPv>UPpjO6Jz`U2(<5#Y|49sB+9!%vM$< zVW-r~|1x`TWZnb@g}{qk@w42a(jyL#>VCO(eA2a-K%EjSIbG{);K;i8RK+{48b`eG zF;Dt|S3MbrWNaMYk6t#nwEU$p=dqEho%ef?GA7Xhp{j(>CQ=O%rKLZ&$6*~jN%o@d z=`o4#wf@YV)`E!hCu8TN^~8B*nr*F#^$4Sb_p#V4O_>rcOkjrX^+0rkI&e)Enyvxg=grl|XXm(43!BO)`CGb*tO1Z&%7=K09kd4++;s2oH{ z)DQ#|X98Xd9%N$RCaMet^tzm&uOhIzx`c$Fk}%YR`x^MWtyL3jWo2qd@ZfhxU0tY4 zbMvP}2+38Z%ggGKa^UX3>0XN>Af$9Yp81Pzp@et?)4m#8>$XS6=AYM1BejN-Rum(Y zLNs}SQHHDDS$K7A-}m5VpvIyzPLzh<7A zUbE_W^t?Xuk67;tib!%;Y<0V~SK%^7T#Kz5NV)yUTX*^Ow|MQRSN@0J>&u~K&peag z04xbM79HtVFgw7!n?gDe2D5~J9fN~^OF}D*K});mv>E3v4y{(}JVJULo50VbL|kh5 zv@rU+^PRS)p&l$_i&fLuo6OjF0|+zzn287y^71l%{`l=aw?faeezFpygT3tZ1^FN0 zP+)NpX(0_jNvKJ35Dk4d^5A>Wis+SQF~iUX?He8*#;A_u=J~@dZ$6)xlESWQZXTSx z-sAcqRKO`YM^U{n-h9F}TyD~J;b^&Z*w^j(-23N>Qd+GX6JPzt(+l01((5lr0@qE~ z=?P`63JphXx4nP(p*O1`RK5>u+NaM{R3cs{tDSjN?Y<||#98nV_v^!k6=_w!QP`dD z{Zd|tk@xL1A9maQJ*SxW^QA@Bq9*`ZC0*4kab)pBcd3}3gPZ?V_oltqBTJs!G0;d( z%K+HY)YN}EZOj|x@MshoWW)}i!$bLME}n@=t%M{zd^{W+uWF?-Po*Dv;Cp0f$9RHBp6#&2HN*h8$f{KcXd3E_l zfL2zP%th+|{U{8G@rW_sV&lKXYR`;KsDYV$hL?*0@7=}cSHJ*SAbo2@4I@4cT&J$6 zY>aO~^N3ANNycLfB?1CH(MJVcCuJD zxrM>dv8KAFy4KQ~(xL`8#}BT!zcfbEk-MCC$>o!dZ5`~&KRo(6d*!z`RQNiY!6CxT zx3}h5B#ROGd0%r2bH56Wn_Fr`yT5}#jqT1)rY_dHPa4~zwwecX(>GsMH^gBAs=Lh2 z{NHDidx6`S+X&F-jgE?16;U=i!gzm=fDM6srZ7c+58@|W@*4VhgFgrp{!43?T_u_q z@cesaKg29ulaaaz4cY~)Y7xk zGGf0Wgz<=qz6Q8{4kF||e>ksJk;Qb|&_Wr(RBQQ(o%^Ao^EVD{-pEaj0!_DpfxlpB z@RYNBRrCV4fjwh2XbPodf_ETQp9nhsl%NRwzOKi^DK*=i=_`N!VOIsJ+%YVifk0qh z#32bP%HZO?qr*YB~wkuf*YV(1PMv-%!WRGcl{BsS%T;t)iu+@`hLvkyOs< zHIjR7#Wo+prURIGm|+sZZ#?<3#GQ3CygpdV0LP%KtE-HjwHgLPB>B$vei&U8QnQ}5 z{D}tv0m0t_dJyS$=f^(!11=T_0*JhJ@c1t1=&V8(d|5CRv>?f^2oM~3EDYL^Kv@}( z&lo%XL7D79So3uH6ogRN;NWO!hH+K2+mzQg=4|BwhyY%;jSV$rO>K#)ntCx=X`mB4 z#ozjknJ*_Fv4!mB6Gyo{<ooDb&Eb-YzHSA3_MYb^>u$ z+E&L5cdb&sAWHuN-9mo} z6L^0JGS<{rHRb(7`j%wszSq_U>iF2y1lst_`0_X~h>36sGz2<>JY$B4+Ytt3V|fJ! zm673c`VhzD-EPyD-LJU-@e+|2J)&X!U;1J;A6ZV#{LVZM!`t(+wWvZfOb&z&` z{1>~4V2LN&95>;N9x(_`8NJ)eKe7aUFK29yy)TlK+uctdE6AVkPeZ71A;NcSA+p%* zw`UGnJ`ZcH;8*+abi?xFNkx_q*3|R9L)+us5NG=XT4m?z&3T!XJy;>yh@7ya#(}2fDBOU^$Ho*7%!lmK`vHJ~~P=Y1Ns zXt)2vV}KNGB?P?GM*G3SS7r?7Yh`o1v$wlTMt-n=NJW~Ko+8rqnn|Rp*74w_r#|UV z$P2O;ItdKYAOR%(C1v1L;|JEQd$Xs2 z1YW^l8RenDAa+C=V6I|EI(bw&_-gmvV!CRM9h!V6w6F$H#$|P_p8xVupG`flFG|$k zlQGR|DX~$crKJf7{|BCabF`uxI{Sux{r(&Z64%cOuQRJg zN{etIko--JS`3i8N?-IESW~Ut{ITf29=?#cJdjuV-ZQDZ{h`+rJij0IL&Tn%Z`+Ni zPkoeQuBTkD+ike~68IPJdZsNiII`Gg0}tA1^f+ z{&YECFRA<0#H^9Nw+~9FD=Ny$O1}RnehG&1A$etm!aiA(QWAkz!f@DMyJNDT&u&#U zulQyrCsfo`V}jYbKkuMon^FK~Ap(S&nvH{lh6ecHOy1PGTw;brDh%{hGDf0jyLTq>%Vtg9GMPQD2CMo;B#>bap;F1GY9Eb^MKD z6yr+M<<60rL4RZG?6U6&Ub>o!8DAl*(f(|&v(V2((3w9{AtM08Lt{%ShcUGUpMxjY^jk96TIc0CO}{+*!s|!bz7fj@@-8C{NKHL7<~;L1CyA_+MEq zLy%U%>8H3Ico*^t{B#XewX{@wuM9#_(1VS7N2wBmT17;J7eyBJ4HjGABu#fon?Qo# z?}@VClhoblz`zLbNhr#NM@Qw$^g^z(nHU%*@GM`|n@feZM~CpdMo2Z`%MK4ma`Y8} zmwGV800Z$$D-&-cj*BKg5B!g#vx>^9-J=q$Q-KJEiLbR60aJ zk&^B%X_W5n?vPID^ZsXW%N1j@_gZVt`OI{wmaxEy*`7Woc9!g)d3M(3irjL!Z}4U4 zWMo$Dg~Je2IRqJF(vy-k)pXU~>KPezA(nNTR_^OJz7Q2%(EsrxB?WA}rxzEO7gtvw z)@$C-oEZl-30s`Xbdx4I~;xMd^ zCn_om2yJ3fS7&8%dU;An7?jk;QqEHz&IW24rKTh+W+Qsd%RJ7+;rn-^L&At7Lp?o1 zT^+!>-7(ZR)X~xPAlXxfMYSp1=^eH)%E#Ju_AyvV-at`Bc>!i}xOzZIfSVSVl$K(w zr?tS#?f$`H=RQ%tyd@F^G7h|E>v;;exyh#v_y^wgkB{eEl8><05E#?X6Tdkv{c_)l zu3vfj_n4pI@9~uFOC8`0&Ue=<0Xv66#w~7t`QXj1(~CtA9kGaa%C}XNnCe3+`{L zRU8vZloC|v<;!@*{aZwR6df+(6=?R;IvyUa*~?qi%!#bR_B90f=A|_GSDI!r;)XQc zjkmz3wy($=51h*Oha8;JJfwt^f&v0O40>}f8hw6FIq4!M;zg_nKK{l{=>6`cXKHKd zVdTQ{2?10Yi(sMOf35C3OSC- zVj5wB0Cp9|EV+-_Un8w(7#LaTuq$M3XczTwgptA~U?+7s^rP#h>v)=)6XRef;vLuA zQ#j=rQ=e3Gg<*@$CRyi{XJ?ib0`Fv0RFsMR;I_p!Sef&>ySqQXuWa7} zdw++_R9^8N1h7BHw1yWZhbI??2T7DL(gFRUSV-g}8DOITcYHq^J3A{|d5QUCl`SqD z&|?v1j_n;n4;H7UmX^@j{VUpt8G^|E{spHWQJ+voDZNhO?Q(s#rC^W^#8uSEU zeXo#wMfFH+idn+WB~c2`A*OA#VVP8eRDXF7I#B23;lad5CF(D~UM^|IWmR#8HgZtf|DN!f?lhgdbyZw~o$H!tch@|cQ?0iJ> z;eI9XW-niEB_QA_``W0@?Yw)+PRMb^`{5A#$p7LLCGL8~=R8`-$oKNHseG}~<>p}f zbS^w7z3gfmS=+&af%j?AzJxPBhkh)Jt|R0@?7#iXU{TEPzAtE#CXfr;Q^-nAR4F(- zsOJeL;4a7O4!oG?`%cA*NR2CjxO`S}Zkr1z?+xG{ree<9)_iKu%Xp`t} zhVvu1)L40{rY-y4?+h*%E&+rUh`1?7jR&)v{ODt0`48~_mN$oim`P4lKfW|NH@6`? zJ+CS&H8m?9$f-YodIj8!@xf6wHHbL`Wr2^m0XxDK)KWZ5OvD+mu$uVKnGI>#O|cn) zYRrU?)XV2-=`U5Kl|P569i(4>aI2}O#~TZqnH|O1tIR7(<%b{-n{AqU*sqczY2fk5VtUYFc~?pYkfKkw3sUCP8vR1PJaaH-*iU^GSifcDR*${ z$Xx_{DO zzkBIpY4l#&Q3cBb!`y0T>%T1W7U-8_U;wv}>^9(YmX_x9K`gg2$OZZe1?V61J!s75!7Qojd6~G!*658*}w6xqco;iL$Q{Y~~~`-gME%6j>m z>00t>{jXeG(bH2PGP(Huz3%Sub-!4`?_(;)AtAvj_yRA#5nv#IFHiwA*HZ;}dBixkk9{$> z0JjlMW%bu@Rtw*_9f>}}`GP&(2KxyBVZlGr!xO)9CF2odzXITY!ssB7FrN{sr=@jp zI6O)d^}IT`aho+mSV?ViUi;H9p>G#io!!DQSQX4p0foh)1dvHzT{^pX0L`cxxD`R? zBj32XPQuruL`^ldw;GxZj z@Vy;e-qXwR~p}_P!R2-M# zGS$Q5w!xd7c4lXLdy9~Oi0~W1HUhl7ib{yp5F0ZH@CNB~vxz6C%Xb(-uCQ+)1JnR; z8{uFv{Ul3He)TpfJDYC7wRgIIQCHRQoyu!Pz$5xg?KsZ0E_?r3xV>+P>3MceS)moo z0qO=D2?+KU?v{xpupPre(mvObq7KQry!zH`iYxodBu!zQ(%sn%^ zCSowRU$v+{`aD&ax85m3t1g$TJJeKu5A|)!V5~{eDK}_vC8TYqtc$!5_;-}6KT~ep z^5MOc?@h0ls+)KuI5Q-C3rTS?r4RriBp_Up;Smt5{@u2=v%wmS{D{*|N!}bZJ~#KZ zWR?j6pVOCOs<|fBPShw&^)P_M161>0B@s!P$Z(@ov%$>2aFs~~fv%S^ff2a(ct>e52UMv!3|u;1yfJ@uH9zZCgdcsiE(d+q&&Q3ozeW$*?Q z$iEyMLztK+)w&q3ffQ_^@ZQK09Ljn-(yf2yF|%==h$WkXD>C@6CL|^_vnxkEK@V3_ z9AIN^Co0LI;R-JuFrWw=M-B2{494@ya@g9WBp_2z0`Ld6!jfaEWFtLE_s3f{riv-&xJ)a zY{O4A@tZ+1i;MTqvz}*}#*ZrsBU|qr9Fe~X&$J>)sGj$^?aAATaUl#l_yCdJ5jNxx}GQhkgI`{nxLAC_FS;-7g1e;(qtN znUmIJqfa0Br{N6nDM3mQhh#OhfylcOp^peZFOhHzk&Ry?>t4)jy}Pf2D-16`!j`Pv zie2G~GhJd?q7@)1hE=XqVC-rbBqxN?>8T(s_EsG{-B!n|ICT(Kj4JgzU89x77w+4O z4M6c;<368j(bQ*C>apxO#ehoT_U($5A}jx7q{k=3eTOBr2|N9#CabzSySQIpVWVNi zMr4Cr+iJ;sqxUxNP;E)u>1G{Jv?{(%a|bCW67E=7S(v)eaVBvrAFTCLF+mr5@b6ZJ zrYJp3C7pnmNCRYiIIO>e^WxSTf@2 z*hwUL89u)r>E#5qLS=AJyJ=+++W;F|k*zvcaTBPu^8y$tQ+q!@u$Nf+xZ0cl%Fk{n zEGwhBgj>z7tSxORZK(y<8q85C6h8-Zp6>!tw{=($_QQkB#=+O8MS}5F{D+bn^F(y7}@}NeJ+AeD>~ds;y|0vRsyL+=z$M<`x!~bl-`I z&4OAWZG+TriSYzV(cp}5b?uI#xC@_BmQoyv-Zwru+uj}~#Vu4{L!$?bc)BtHl{NGv zf3v>~YZ92EPz*ECb22irvM`i?###K`wIq~4raHn}U{d$t3X?irw9(7Y#^tp0G|?S` ztky2mnh-~~$!JpTX37j(e}UzNUwm=SKvOR+B?(74=-c+j-u5QU!W`W#xFNYRsO(2p zO-@+Ycm9tc>4u><*smDTQHlydhr3S|qRvmWby!t3|3O@<@-kV*`iFmyVGdj+^!`FD zd9unXllFV-rE4MuiQq6?q^1Flhc;tju1b^w_4Vxw)~faA_hMpx&5N*xn@I_J@Xx;$mWk6bc^Gf*#;bo-QHLTHy94DSway1nO=7?#syRK0dA~T=i~EU+tX} zugx2^VCh`{Np3m(I)FZr{UGkZ!Eq=IX=!~{Y-^aa=?hnYL8i=^n^I0fa&n@gayq}# znq8ivVj@+u5dQQI$q1~1A@R?BaP$3o5gEN^Z3$?fw{*8rcQjH_A!>4=iy_0qFiD{J z=!Rvq+zPz|&d!GrHPL4y+44k;pXb2_3HDQse=i#zJ9|R8);%Nr{Y_tt?WDxwt z{qgO5nLM4^+ADVdbtViR+{fD@f7L=!*Edu*GSVKl{&Uqx-kZCXpKg-- z!p9!Vu99x&^~6|Acx`o~qubZvaQKA~vYp^o2Tdp6BEYQQk1Sqc#Kc5{=Ee^neulP> zj?!FNR>wY@pI0-B>k4K9^_(oM?ET=97ZVHexK-Ta3EyyV*Y0Fu*`B6mdxqF(p3^dL zutlOBnBrA2tC!^#7G{^{=jPGVF~XBe>Kks8CU*tIyTEkhU#j=a{-OHEPPmX!eLk@7 z+ha*IQ#WGZyEWvw{B)8XdmMP)A!&7Pj34;)_5bZLtl^;MY{4sY(!xDH>eALT;*~laQcxTm9+(6Qj83V|@N)C=^6&{T z=<4Eyzk>G*xd9jojom$gbZ6&Nv@iuldHKFx<^pmcN2V^dz;|S??wA<^!};ntD4lbwyD z<9kO-OF+UZE~KZUWo_qT#!{un(v^8lg#Cns)U~>ufJcnG{gjd&(`0LX(EU|BTwTqd2{1p=g{A6tzaIUR-lj@PZNj@S3sfkNmA z>=pD(ES)_}?L8eG1Ca@&eC>byeM%QOz*O&{lGgHJtH1UytkTgyX6{q;RM*~E(9v|BB^Ypvz-Oq+^x%zR z@MQFPcBVNs;D3w8r&Xi-VELka*334wK~*Re`ToSlS_JVCfHX$p%(U5;n#_jM+R7Mp zqqk}p>fbX`Qqq3lkdqSODazLWR&#ZhcUHrpfBHEZw`$`0Gb2_sf*JuD9al^GMns5% zv$=7by?PK zo_qB?pxL0jW~%(+blY3GF)*Mc$JpcYwyrc>d7-$NZJ^ke1jEw70TaC|B!%qn{<}9< zxbVf9zyn^LO?eg&2r%6GayrNDCnqLOfli(%Md zSz4H0R1(&{p}n%hi1pv7C_i92M=1O)IO|7VS$a@VdQ1?=9SG7By?ZAj;{8rxlJ{vM z4e?-u2v28{zsA}58ueLhlu~~$N16Qrm}7L87F+!8YK2x>uE*pu{2$Dr_Uv-WrvbU+ z)_}Y2#K@iDqeI7|gCob|1A8ZX2M0%RVi}^M+P5`L+RkNQ>QwK5Z%H*wrLbqGbs$NW z`dm@fjzvPr;ckIsp@r$-?*(pO%2A*y>AlwOpCmRm){C0`C*fb+10!7U;kqhD>ZH6$ zwb@PIJk@mHvMWx#ovQtS8KbN+JWMGPj006oT!HS-;W;q6WUfp{>vOf-k6)rMFcDkz zpos1dpz{I^D-$mLdo;~PGVU{&Wz?krt%H0xsDDI71MOwc0L3a24h>d=-9UV#f=ZF~ zw6pTp6AjA<7v!2mkQfNv!9FQ-AboXmaeT|&hrE~rL5N65Ug?TT`;q^IB17QU&lGoG0LoZ?cCnp_>DKBV@vE3Hg`ZZN1Oy4% z6(|r*+6*sA+eFKyb@xgD+o|ST_eTO-dWZ9_?hAX zRYB4F=_!H9Y6!Ce!s52I{R>Ie)YrRTz8_Im6%||s<)2ycYWn(`2}c-@uG|g|X$Ho|#-MeSoczGCytsel4Lp^? zm78ZxT~$?kgO0q&Ei$l4{@Ay*?T-KeE4+ADMOY}XA^{!Z^0JoyeTP;85klkTh?^1sVX zsWi1=NeIx-SG~b{LVxRaq|fvkc6N~ooV2`gm0Gmf`oW;vwHJN z7W^OrQ8L#&r;{e-UK(13>LC+q1yXMmR4lj&RLL|ty7{-XYh7AX85Retng-o z4X6m(NjgcY?1NF5A3Qxh1*>go9EdZ^(fmpwYkhSj?Dtc=q;HVXsf>rDSfs(QX-zH0 zKe{wG7sG)>37BTe9LnyyeR`S;v+YG?>>Qk|y}v&*+Im_4tS@e1_^qa?y&FrZb30=u z30iD(n(jpj2U02r7Z=B{GS+2{Ag@w2o*A=rK)NHAHX@%Hos2&v=z@@Cun-_* z@U{{AiQBnf8TT=`s;a7}=yOs`-47t`mn7tbwQF+JgX_lm$!R1!6bC#_JeA#L?ykD@ z91P-oO%(}aqst%;CdeZi_`&h2x3WiWvT28N#qZ{5>6@|7-t-~)3|Fe2sGtDP{7OIj zP-c&;#>;y#1Iok0Lwk-{URUHsGS-Nys`2$;u|+X(_rGrz6T1)AMUcw1#Z?EPT#2#= zRm|0U;7iZ|to;?rM$jU05WcJ`QG=2F}j0RTm6ABa~ z1BTLWl>kLAFflalH_YQkySsnjPqgTi{YRzxHX=-6Ehewj$^3Oq-Rov6BxjJ;>zs`O zJ;XK+#~A!f^aQ#-wjMmb!ws2WsjF?t4_xnMrGiUs^Lv;s{R?6X&CXOk?5gY(X(<#3 zwswU*+vc+~tGH1>Cb&Nstl0!#{Me=@6xLfkT#gdTR72;f5kHmxtY@=aq#gR)?yZ=n`-U zh)Qx%JCs7%(*pebQbv}%?@B;lV9Zfac*7?`8l7V1#M%#=+(j1k_3z<+7SOcOaG_Ml zyjPIblJ!QKhMXJQ%CHtN`=%zb5(F zKMnNt4S9z}0&g8w-s%Zu9rOriW^pHs1&+CEgaqG!pHNe63}p2A_yy|S&k&7bUB%Uz ztMN%Gv2Un-4@VbZz)80AcV}Zm4lDmv7l1W=Hc^6AbBw*BURKpYTI~*oKcQu2r7bPU zEX}sFHg&W?zoDK^M;e>#9qk>R?F7Pp@aDl0J_!XL5oyZzBtT2o!KOt#~})Ru-1C=F?2#Q}%8+ zN3ahm0B^iE!%q;@LnN2;T)|Pa*RTW;SvYtY2ty;?&00)?8~XPRsJO&ub4sv6^NKE2D~k#`@S}kWDMdv%>WTpxioQVPAT< z*VXgO+?LDOXd@%!)=@85ZCYezzB7L|U+LZOBCZ4#nM`p!II!7#uMO``_}3@3Sw!ow z#OO3}56)_b4lyx*c!Usm=ZnSRAJ(5=@R8ZuX`-sr{&zq;l0kXGz%ijdI7HKXt?ev| zB*&DqMW8bySa%&wCE@C~f#HjBGNCH@be7^o{oupV9@se&+xocv*hB4i@~H3WWY_@H z_WnzLQrS}73i{7$oXuSe@>^Pqm_->FCr6gX`X{C2l=L+Xk?acNZjliG(J(wZ5#P7d zavFilG^&ja4{hrBs(-{~U{nYgE3HX->wBoE+H~ds+mem+|22GD(k(OxtDH5TYXb@ zbVH$p9zp>Gk3$Hg2ZGl+NXp{k{$}uF{oQ17^|?qvQrv?4?XQ_8MLj>-y}`oD?e3hI za4BcyC^v^jY>sxRMf}WNEbOiaZ`c6yQ8W^Hut}f%FPoBF9usnt9{JzV&GPu)B^JDP zisgjqY*l4dW#thH zY3!a)H-$Wta);Iqo%_~6H)9#k_p6aWeij%1GFEm(3QgcSJ3W8z2taXwB#k~o1rRDI zJP0FC?n&#yiBIKvXsO`fbU($9yGBGP+BPyKc~l7hF~!s1tEzHEQ!LWG#KZ&vDydVr z;;eDio%Y_fn~h>7)pP@Wk${6jY=!$Q=319vm1cJ@M=}j z?Vf4I=Sfy%fE;)I~Vj&(eqRcBz7>g_z_} zuKZHNam~dX1o(f*F|ZCJ++7`q-j8%JVKnP&;K9ZHjH7uvmedZ23#G=cl6B@)*9P_) zLx3Aal;ehb^tv@gr9n(t?WKi2;>F|b725PE)O>&DYGNW~qGl~@KtaaA`I!v4VFncN zVqkx$spU_k<%oz3SC9t?{X(0+q(4W(bE9i>MaIVeq?*{4l$YjaXFFNHMvUKxPRG`L zFAvukuk&$VOzJPWD9{^XI62F+H`kNFJ#3*Ve~ie)!TY_V>#yR%n0JO+>RMV|CcJ7{ z{Gy3O(c;9zFmV{eT-{dA>jt*qtoN^h2X1O~eraK1X>J~3 z%PGt)cJlJGT@9MSB^ z*=1#|xh>UAfnMex>_5aAzAcu^$kemHXX_h5`UgOhsW{Z+gt%m@YxYi7W)=$E0z5pU zAX|L5vvNO&g(X4jQb!x}sgzGI{!=Kj%vtCX+Y82|r0?IQ%w#B-d`0ch-Q4)-{Qm>A zyt>*Q?GJCv8}W8VjTk7}Pni?;Mbg-tlO=p(qHEakRZhEZ#L$215c?S6A@F2%EksW8 zff4a!;(EpZ;pX8k@MbsUdd2(js+Mi%TIJZ$>~Up&9-QaV7Cemg#j_jfnHU5+Czj() ze&%KteXJ%PAIJOS_q4M?B%h#q$uT?fd#K|o9Fdis=6P4T{>=24klA0z>lP(cuDiR3 zDQ}xVtLn!K6h^Dq!I2SVWvb6&Rer8_lMQS$j*HDMm+Q%CQ@Lh*_#GATpy5NYD&A(& zq-Mb7Lq$E^yOb0X@RBHC?Uf&ZAd|@6W0}MEjsWz_LfVYHp7m6Tc;<_k4-5MkRZPJyh0g$YtAGVoE^40-037CB=Z%(R<0ydne-e%7Fx z^mGi@oIM+E6fOsWhU`mBLQXUsF*j2jM6v4fJu9nG4jpUt=l{bEN~Ez0r$0 z=k?CB`P=R3qrHiI6^C-lj0`GDvVFO!nyYDGLvy$Iuf9m(y`v)*4Xl%d9qyId^FMS2 zxU`SySg!zsQA<`90NpQ~aW(^r5(|k>kMStP;9q(ju^?m?V4)6l!%_Cx6q1rAd&@Fx z0q@T=@I$nw*L?=Ge9MG$YLb+6W4-?~^+Sg8v5%I!eTb^7gqcL?7+6?Xf|9Ca8X4)TsfA-nHmK&{;Or){!rOe@z)HkAdxna7c6#o5{wyp^X)QIZ4qUgs zkdC3<^|rvjWQHK?!a1Z|spoe+`LPt@FMPfHd>jMTI_LW?4_nT^l}kTL)&}?mc-Y!k zv;hK6Ya=rs5*#cxC0iUTXATcgd-)T#EaO1=v7vB!y7oha`VcUhpRdQ4c_0zG%Ij5abU@Ri*j)H66Dx?K`Nh zD6)m1Q6WKwSz&La*RNj7c6E1kPfS$1o}ou5p5EhLH>PKfh0g&v=V9qrHed~AN}{Fl zrcNWXFGqmXwDmOp>8`fXurbiGB3k%xKXn*cyth=L$8$JHGkE{>X0V@&wG<#p|58z; zNO-K%L*rBUb_e8co;w$F=fqsb!qKl|Lg!*^LV%7$Ipp4+1?ds&WCodN+r9+$7Wz+$ zNIzdZAhV(C3zJ zL9p|xYB!L|iclJ``|f^;={`t?489AC@HAQZfzI}Rh)6JijfTXzi`e>=&_;iLdL5Yy zI+icGuBf1+?%B%H;zCxYt5i5hg2zV0LK%>NP=u&mU%e4?e)Q6NPU);gW-rnJ`p)M1 zPQSc2=e@0Kda>~JBudp#RzY2xLR*My2j3(8X=x)4_B|oEF}<)fQdQob*S2g*$o)!{ z;@$GBi08&p6LsLtYEvjSRlxOw6DxFo))9gNZX!4N8GiS_TRc~Oxt*VVa@$eK)<4?b z9^URB+Z%hl%A1e)lUmbRfI}^(^akGg0G*be_5Nb>;qk9RE%h8w`k;^K1lEJCrbsGyLw zVhZY#MS7ah=$+_5MDhAazctA(Fa;LAsSg-5bSe6}bMY|QuLo(sV-5@j@O^7u|0q?W z^D;R^l8`m=OtZ5=Ke<^p>{m}0Lsjg`5+&t<14p>MlT@mwnpCm_gVrQLoz$6$y|wkT znJJte+M3BJP$Cf>r99}6D)!Kkot2%PWw!B^ugdN041y;hMtE0P24+;s)bApVHOMuA z;9_(74>c^;tQsHT@DjshHy3G+G?|o?^j&gcP4B3b6BjnIoG7^++l2wRK+(<5i#FaM z%Q2V}{%+NoSzH$46{-JK1?L^;Yv;Q&Ni{EG^y|ace)L}uvDA*G*4Gt&A;c#l!MnJ! zG#{2^raH!3K2W*;Kr7MMraC{0UAseI};(&^>4o^$(GGNORz@ht$w- z+G+@>GTwwtVOkTrWre1+B#OX6u>WdPfN0MA|UxrT6#Jw<^sMkA$V9@;1kHOR)j)FOHJ3?Z1ojxk^UY{ zwG9mcejcX3@*Bz;h53>{x6ES^LC{+Qi_Xfi;Mmw}?7=6L2Cq*L^b9CKij@ma0E9u$*E#*|P>2X1B29wA7Iyc10msOsxSj2%FbCp}s zOV^8laTj!X-TRqz+4Ozz;iU}S1TCH$>+8>DR%>5~ip;;mMFpVEJmmTR`n6#!lRzbl z8sZ2CfBtS{WMm(3R@<#9E(Kzum5HgP;}&e4fPnQAm}aqj-~Lx+XY^h|g-dICjk~?` zV)4&uSI=#vl9HDnHg_>)8cZ?byh4r(H6V00Y!#yR^b}%>ugyhjMs#Z@XGFB~wZeWH zE$AG42|<{pX$TvdZjr_0qP_)devj+9z}RHeD2UF?F2#u+$S&$hdF)T;~t|RkBXYr;7uEUXDxT-WJT+A8ZWIl*&7tXQ_j;YI*6=eG<3!;GUJFlmwr?01u`fLdb4gGw3=kr1jXa;r=3Gp{5 z8~itgzJ8^~Qc;En_#S)KDpBrrYuQmTZ6b6URvpp?#n%1s=gS&2fJ2+7Hg4WIH@7ca>9H z_w8E)Bkgyn#94WHS@c|N9O0k0OW)HO(HP5z5^Ec{e%CS3g*CzJy8hcIm$Equj2Jguu-T2v*m*xtwESM1ldC!D{o{+v$1_59}D#A*xThxKXtL z)lV@A@c&XH`iofm(RR7m7+AVN#i;cFVD&t;9foj)3JYHyN}g=CU$=%V-mmkb^@ChE zb5yCBy`|&pnyN~-*Y1Jwn0<4=2`tG>pQ;$00}w=`;N1*39O>T(wstnntt`!R^Ye2U zna0+$S-ck4HV>q#XtD+~8p0)1#0m;+Z1>k78f_>F^YX&I=B>J=nz6Aem`PV~&LsP$ zCWN?wo&$dg!~d$e$6`a8>~)f!n3!lhY;C_6gf1cEX%0SYi;H8~=k~|rUzY297_pwL z@+S6BL4^};CTziwGVQ=2e0v)a-UPx2o)Kncd9j?BvCt{pr2P zZ)FAzK8O3Y`a(dWI4Uj&hV83pC2&#@tcNS)KPVc{ zT0HnLJ7}8CjQc)Qdimg;F(sv;vVeuyK7cy{xy?_{VOLfB$_)WoV@i;>-u>iRMAl9c z&%Sl0jt?=k8waP-Kc6TmDJH z{@WKvz#1^UKYrj9C}(IP?L(m<03!ccm7K%saKG?~Rv!=yr{LVsrOt@)3Gu(SKT29? z)s)HjKc_R(MECG{$uoRWav#4xpLcbX9t4U>yv?(FDnI$Txgjt)6U7WEt43j6xqAw( zQ8>7JOY4a-%#JKf3=DOR_4WNmHY#hZib90?fLWJneQir7%};lC+*PsPcHb5tP9x5$ z#x?NlS=s}q;paV1Xi$1+rLZ7!tSS_ubhQJ~kNH%JMf>fK?jJ6KzTgLme?2ffAsOtR zCW3R5QWL(~VHnlq1=YYGcRd4&6|?lGr)BO#W>#5}wF;Er5iCS6leQO7Uz zF)_O+uQ1=q+TPIuuukCae@g-G2&qwdURh9PYY?s42PG6@)eMLig3ttbUocA0qFxnk zPDTx0n7BJzA`StE$Hp#<74UJ2ntVq{63f$wAE*m7N0jH7ZxgM z)GcNQJ3A+%G^2w zaBvFV?uK-3@!2V!Qu4YO;(Tqtn&HbBu(bY5Lil%)5axDyOWA7Rj}eMZt_*?dL&3Q4ec3$IvRiw=*rzr)SjsYrbdanfbI25(ejp?VU&#f ztqBn2-Uh?}qa58Tm*m66c^fa$zk%3Ts({O`oeck5)K0nMw#)u#08ctfTV7b0`_1?_ zx8bxEOB>wE*_{Pcbx_EIGh_1NQ=_74zE`wU>&h(kfWSc*NEW@+Kz6X>=RcuYBv|p$ z)HI1pUzUEW=jx;K-bTw`Qy)0WS7*V{UxOeF1OQ}cb+i9$e5~PJ?-QN>5|s0|QoNL2 zNF)hw9~-@Q349WezJ5y2D=PU#!?pAHKoRO{;)b!GM$Z&j^8-|s%4Wt%(5RMmQ(UR=^? zg6i@L$&95}2H_mHx{Qb72TdAWidlu{bUWmMIl`^AgRS9Tj=&+TXX8+GYR; zq6Qm<3QlzPJis##w-D%N`iF{q-#Oy~p1yYCPsXz|zrYyQw~ z_+khfXcehz%ql5>rtmfPcnGS%>7z8UA(=;wkj~6soWDRlp=Z43>q0=_h;aK5xDk|O zg5Hv2g_tPS0j^>j>tpg1(bh`Oz3u_eWv}aySc!(GdakyIqr09SNb=$2;Tn7wHrlv} z|6R*rw?3Sq!+_&NqVf8wxV_LB!^Dalf*PUdEB=|JO?tUd&@lc2K#j@IoK~c z;`uIYv$!lbJ0ImjUmqdY;?(uo*#nAVLu^Q7C<+aNq$KrqCX?>xmk)t9NEQN{n{i); zo)Kvadc+KuRm{&B!mv0UjRJmusp*^?1U~;+|L^iry0ufW*?Emc%{4e)UVirc0_@K$ zT$ck5`1*o^*TH@$S8ELqbaRlU;Du?|#Z=Ju(XM3*Bjb<~ z;!^_CkKJw`>fhu`DLu8FZK6IE@U`-kjkAM{(~nYRR6mU*Mhv~bIg zG4x8B{+P0;K|3~Fez+rE6tLXk0sr0hAcRoih6bcpIRv%J3Yj;G)1oUx@+O;bI9PQ@dC>Lj3&v&&8gn!Uq*csHm#+ zf&9*Z%-&GZ{EN4(1s$h>G{3t(wLeYZJ@4p)lc4&30Svq@33Fq=e-C3hEMT}#CDJ1X z9KYXMAz1w5Oo)j(t#Tw0v^MtrNvYpXHyXrCN)HV|uwBM~Db4V()EZnBB?lF9)nyR; z#8Vwg!z}YGw}~p;;pir()OF&&`m{z+Ke1i8oJJ0?+K}MLJ3i8WIo-PzF&vmWfApWH_2#!}Ft2V7#)tR4zp}HV-ZuGwpydaM_pOCn_mj{*pxDG%Z zXeY&vj8LRYi2YVkNuxY0RUV88J^(n~Fe%VBYDFyMNsMCme;TH@0E{JfhPk_N+r!XCehV&wYJKA54b;T!ngVP#4s75!+;Yt0Nt6@=#FDAJ(I zh57k7d5<~|EKaJ&%rQ`eEP|Aq_(m+?72%iLc``kAyEe1|7CQ_NB`BVf>=OfBQa{O~^Rla!ThIXpf@D{{K#U zu9to9mg<*(`R-g@7K6BZqqF1A=J;4LVC)$sXdUl<&Obal{Cr(kT3A+B1ZpvOScOM> zCc0v*vqI${E=$O`^U36x1Im6=%|43a;_3M2^E!wsk?^#gx*5+8l(? z4vPa|>P*6^;Vw~bRvvM?iKInJ0GB+l^SRACQ2xbN?Y?m3z)V=-PwdzQEa(D2G7w>$ zTv-@MgWGFL1Fg%kvERO73(f=LMDWWm)9ezoEDUsfbmDxXo=h4xhdqD(1o?l5vvNZI zNKUnSxQ&eS?M>C|ITdo&UkIYU6sNV^0^^#AxZB>5A`4u#nD9{chp4bR3~Xw8q`4|g z1>9JI%uRW3EeA97ZO5rZ<}APOhof~lOj1|fXCGXCYWA6guB=_0zJ}SMlGMFEJMs6c$$tK~d4sn5egi_)?HIL1VR*nz^5= zXK5Eh{sVFo2MJ0*N(<*RX%%v8Z;v{JNyq4hl~2p zBK8|^8-MK2|G2$v-2boe7NMy==M_?=*b-^of4C+A@9-zBiW}gYp{{reM6^agDgT)h z%=mk7K52~*hcqK0H7PkQt(tUL-&8|G(biV)wU736UdiC#kbd2^)KPj`bag|Y%bK*r z5r&-of~LbEDQ6kyo4k}J;>fMT4RQi9N_=z@8Xg`I5fK48HYQIdDU_Uv`4;@WkO|Fp zIh3l!)Gf4hb3g#{#*eaaf&bBTmO)i^Z5!U3M!FwL z8lFx&U{1)%bH_Z6Qas0vF_r2D2o#%0sFosCd z*w0t)bgbnD^?*&bLz6WT1j5M$ex?9+2zQf=zk-cpw2cn;WZ%=drgLr6ri6jkOdC~WruqOP@{-H%8A56byZdqMf3T!OYF;WOKf=n-s+4kW)hBj~D z^ZfkX{`m%tlwW2vY#>V@Rkd4R;$bOj9x8^+e1)h1=m&c7!+l{?zt5gEhIRzY7sQke zD=NjjiV1xRv^!btcDO#r=zTJ^(fz`N{VF6l5H19+itAc8*>1J^3rv?Wj@o3kliLwr zAWcXB;`PzMuzVO;fg%2YCe5HD|52nkPy3BX{kXlIxLwdIeJ9Hqfd`=l=qfHox9e>G z^QP^(-*xqY=@lrXCIaW2H)$oOskXK3_CMW)bfbA_8<|#l3ql~RQrR6C}5|ejt0^v|M=;=>mYd@*YBpxaeYQLCE9b>_r9aTVw0hzwF z*tw~!EH@y4YI11_FDaFZGMCcC#MoqgV`Bq5ezF?!e)Dj#(PZIj@etfnH*aQ7$?XsQ zBp!Hp0tAuPxTt@t3oM>hvh#3{y~8AUvL5_%QgRkHV7Z&3CD2s;(1pY9bWJ)W^6@jU zI@Xg}TM?&yOw~zU_?QNT`A#6_<7l{Y#k@DbwkEdQuiN>RBc0?Z1GKV8j*5U_rfEMc zr`;U=3L!FH<(<6LXvFsFKH-0_(~=XaP3!@J)@gLL`>+^%6MikVx?PXQTZ|eA`#x>% z-QDFDjvBPMKMo|dOH!<^JU#4)JU-o*i}+qXtj*Ul5{$f90Eb7Eqpq&&W)hO{4_BJ# znd#9JASqGYGx-0VZnAB7|NI*tpJbqgI_D0B6n)y;-6JOYZ zU{2s_D@hDHRKm0iw4gyhPXZLO;=$q^sGcNXK@U%FiIh2+28`IZkLD`rX}B4>F&H5u zBj|OwRr$zZ6r?7nDyJ<4+a8@*S10^c)bBs3JW^LT-2$yMxj;q36Mefg^?N(Pe zAMolSSWigb1{sR1IxvjQm8f&X>(DZ!sbbgI5~K?S*afxT1lRDnU3cbGg`Mx;6>KL4 z&;Kd;^Cv8IfB#jwClhat{omswK5gw!a;q9Szq?=_1y#AfON-5sVZ%>jVnN1Mxjuee z`|HfFEDbz5jUJUS5*5c7znJiwktjOFpim}zo`ULJSah6*w?f*W;65%_oRU_5GN01y z-4|u6!+}lJ1*4VuTG2v)Kf%WKld+AZm9cRkliBL8A*PA|i5sI4KS{SUm=JSKJ?3^q$xom*=Xa5`2 zu#&B9Sy=`tbL})mPcT!W?{J))P!vwl zxt)pG$LD`TunCdHmai?(gH#li(V%`7qLw!EiMC$7Z;b3Ww8%`JN&?Aj^xB!`HKx9hd9D3d2@sbbuF=SQVN@? zjU2bEhe^BYT?{oc#^5h`)jX}P<%V1zL;iC=-93xnA@jcKacd7HzgYq6Ii9R`&vV10 zKl#;+D7>md!rW5}%jz2Mzg%=&F>4n)sv1G{S)!b+oh0=f9`a@}WeV`_&^(BD*33}h% zthF|~*{>b$KWxs*8W^|{1U}9r)P&9ria)lbD0AiziYX~S z*rHeZRDh1!DUw`2z4dMy=242i11?C)K0JPD@zxSWYFn0e=2wL)MPIzK|^xfH#vpNr*|0OUz73fsz%2^bnSq zkG@u?1PimEcJIvzv|cP<|GFVhgP;KFGkJI>9`4K z=$P?pz{!c}$XF0q`J3R>Lm#wNpE`va(@$_vTL>_CsPyZ6E8v%(5clnp zXrJt*c~ktOz{J06T)*^3f8Z3e*LnEQRQ`Jz3w)JKomS7st0gbDnd8!>Cdc?zs>{=X zpDJxPR~Dntsw0&ZpU1gDKE;x=;hkjRykPZUzFuNq%^(<0v${;0$~H%SM2g=={fp`GwSd)yLJ{wMQ>E+tGpL@0tIR zVy*8CIM?OJ$$gMzwCqBF+$>&cMby*=9Fl2WdsxfFe|DdWj8Yt`L?C5lD$et1t+r+Mya=hFohBXfQlWgN`4TABZeQ#)) z#`*$`6zbkijla{>_&XDn*E`nHfr-w$N#t+`peSc#63QqtF?hJ>5E5l_YO8v<8!l=j?Hckk@TBI z;p369G7IT{P}NwOpF@^uX$DT1=IY!sAO~v8+1y=gU2r0w3=QuICnhAs!YA>YRAK@n z|1fwG_sZ+KgT4V)KmiGoufG~8;>@UWG4PQyld!%X+gv=S_k#eaT8qa$ST6 z8+q(27rs9Sd0a@_{r+Uqft$UqmUe1dYINwh7)P^O4??ki*Xl zAT@=7BqyhcINmMpP1+3P((57~9vxej!6P-=FBEJRksGM+7XBJh?uQM;=A*?dxwurd z977uSi)B;p=i_68P>U`~*=gsE#>ZoN22j{j`(46pgqX;(RvewSWbyp>Mb3y8 zZYzcn&vT7l=wv^O0&Z5m3O0&-si|{wy+lX7aITxuOi08f75ZX0I%3P0riPQ#70>}c zrz$t|;q*JNP=sm!>7t?QRT10f`uhI<`tOTVbfoa8o?WsKD!*7>am;RUWwOQn>Z+Q-#FR#!Y6K86#P$P$jn6ug{nmo7m69!+}!2fpl)Iy&}vEU#O_jC8hwfRUOk!EEb zQj9>wKtqp?%6{rNU0ubTz`U;E`9QFBwA98&BTR|pk$JRdiX&u3|HN}0>|No@CQ+x% z=1556Lh4T#WM_W@+1_2<-Q9)s;Vi0YNt#MZTDq${t4m5ctDCx8lCPTZcl$D%!ApV4 zwhJ|pSOKfh)TUwdzwtS`@n9>Hlg;fTf8Bv*r` zwb3VAvrlL-%b*vcC-=Ilj%PRTNo)f@Ru%NkbND<$dh*S;4;S4UeiXscB}ZwJbNyG+ zoZIc?CL`kpM0D0_O4?X;(5jb{?c~J!ISo7r6p#kmGFhChO>E6lu9F_DVawmXq9RVy ziT@Op2^}xixdIpyO)gioh=|clK`-R=_5aP%+P;{%T<*_5(v=H8?%x|s!Q4dq-X9M} zX9)rFj;o`qIZ%1pn7UWg=eIT0td2c-3phvQni}c_J^=cad;$F)3Oa0ReL`Dgiov5;byykl$SF?B13h7+g!t`sl$s6aWq zJODr7e|Tg|{{eFdFwZnhS9U|0lYTTrwD_l@Pi%|!yP3XCCpn~02}!oyfjJYQWT64` zgX_**ss6m^+NxhHenT;YZkMR2kx`%)b5%2~p$R?Yb9Pucw&l~NcZ}`y0i|_Q%5R|@ zL93-Ub5f9|+*}-9R=QwD?1)C*X3smgU@5WvI7}QIVq!deqSyFDB)caY$NQEcQaD!- z_MqSdSOGZbu`m<9&M8J=nj)IBOKb}$dx;vzNT}%$yniC&Mnwjq`;Vz0oMhD${DE6J z^DEXNbCg6-0`pP;RlL(_fnGyRljqq(4+w^@_+D)CjkE~*o*g0!d){r1F9C%|y0&&| zMsjkhcsAk}d*CCHfx=w4@%;UcPqG*pRQgVYHIR~%Q38#xljjC}zE|oVlXt%F3#Ncfq4~s~-8Fo6E5(D*BWJDAa23mAPMA)nAYiE}{HCg=L z;5VVhpMuhAXC!m-;o0+uiFb<`8T;i!Ta@l*49piPt4f**sEO&W{XkZ#tofRh;SCEo zgB`mBsGRKWfp^;yt475sza zYEJK)?+0JlStZ{H$>utjL|(~3qZ8HZov+cO6j{qad30+c2!#Ns)13Dvw$iRaUTE%b zdnwH6iSNVR2El>bukuX&WdBnUZvMq+K4X`?*vA+$AZqRoM5tKIunDE*g_1Ke(y-io zK!H4CxX#^3Fr$;z462&bks0XKqcFQBr)!E6)#FAU|%fd8bsLypokrq}5`|1!b z0HC?DQX9?sG9};}Fji(~<|h9}Z$)PtsqYY{y%^kyj!x{X?MfI~{|Ger{*783rZ2i$ z-FsCO(#^6aF%&{qT{v0Mxw_ij@h4XReFoetpNz&GZNj6&U!lEvg^v2_{Q9$t>yJrL zKR6Z>H;~Go*oDYK5Xh+rBNc04it<43r7SnMyu7@u7+pK+MMWN*nE0#h_2v_Zd4L!m z!^dEJZojqP>+iX3SG-PT<&>=df|H|!Nqp`;)pfURF?C>Lc3ATTsoiU`1wEY@Tb707B`YFL$j4S-FLdQnDq(NLCuGW=R%(q?qF zr{gNl;`h+EWww}n$6=Io5L(~NN6Oz|;+0B>{W$ij*Fc%|9o{%VmqZ32YL zyjvI3cd1Q;n9b<3uMwUf>^HCy5|79%3)-)8=!1mtRe1!S+O@q%Y&8pl9azl)0!xNRM0z zt`@?_QR)gfdM;)jgn(FH?@QANAB#mm&h5px0`s;C@0*qN!R9g8mVQr+tv(Qas*D3Z zY9ekl(UsLV)FB)wD1(I~`dWIe&Q}*NU5yN_^w-d$$$2f8!_&5-wD%iSuwPn)getSq zRKu02a%uvhFc3AT#k*?Ck2nLIfDB#`{xeMg$N%;8pQ&zeTaY*&K9&M*S_MWUl#WGz z*=mc1_0a<)kEZZ&0Y+X1HfHO8b>1HEeS<$stcgDgKp8O5qg9lZm4`=$m_-A1(}~Gm zA08ard@6b)2#zpOWhu!0c}F7-fr>%q;o?Z>BdCV~v+rh^5rV53;0I2>RAy~?2 zi;aSU0^LvolH86V|LWcNis+S5B)d58S4GP8_t|(~z=2doUQF*wGQXe>C>X24h^To# z?lbgn=KU%t`cd=-WBI+R)WTTU@!=W{Nm`S~!g0WD&@9}4ndu0NuG>R%|8_?78k{d@ zz_8`Du+P;xUKLc(`{{go&;nz|PEQBk-C=)<@P-)J%J`g)5BJmt|HUJj=@6GFfUn_6 zf3H-wp$KaMRgdg}Hw&^)h1((o;^1(eW0(SnlX3i2)+S=FW7zOia3+_!(CR;d`{(Ld zBd@@0%HA*HJb6w z+YS&oq#h%ngY;7~a`Zo!$@Z^&J?NA@FbbT6yYrk+?O&y(|2;ZL%jEgjmMSYbJ-8F& z&kqX6PyPPUxE+SF=i^f|b90jdoczLU!u*1~ub@BMt80IikZ89@kqCXz)m3-6S#4|W zN5>_5y?W5&oP#rroGQec30Qy;Vfs6&nmAjt88m3Jzb3&E~fwH zIKI{i)&B+F91^xJQtE2H@l^IAM#MLgc|g~$K7FagR2rkQ941*^>tuKr*iCI=zH_+f z)euwGqBlJ|10WiL+`?QS#pDblI?*#dm^6~X2ajoJ_Q@RAnzYtT2IIJYL^cZT^55Ax z0;=C<(W^R6Z1y#r2*n{L-`PJD@v@NhqYT}pWV>XnW<%tT7pk~~*vA{C%u+O6|Mhc- zx8g9f;~%6!EOg%dQRjc?;2-vnEVb>dj>m-oTFqVXRVFm_iKANfqycq~jl3sbVRGZ8 z(3dgH)fY{&+|EHKB+StNcQC^U(W9C9_#B$)@Y(fqcedyanuR8hpOn6SOsTuaJwl+Q zBzV$w_t14qf%J#O!!-!XRpo#ETlrS3iM(HANKt8)83&|pV5!p2c(}=T_pFM48fRjp zw6&x&)$vb%$J@jO&B9I7yqBQ8shMd4XJo0ZV>BB(z4gJbR>bpHjA{Icy#)k`D!<6h zVKE){_J?b0y)a&j_}-5H1RCAeFOPTA|1R(AD^Ogq&N?I0c*+eLzwAx){3|?rJnGUI z{WIa;<>h80rxMX)SBx_)DI+I+(S_TAc&~BTcRh~q9lF%ZL3VTidm0&1R8bybW-$^lJR0Z&6skuuUt!2iw205G)#J$Y zKMT!mHnu}DV;;yp!(cc%m4NJX?2Gft?1vFVA+aj(9{t)l7-> z)%gXg3J9JtF*9cgJ8gq*l*MSKfbZSr`p`}Psi>Q^gqfq*@-hi8?UR0{ow74S0*s$O zRQp?QE=N^d>;QMvjc2Q%5cEHf4h#F|nA0NQG3MRG3Y^3vfuWf0`6^uy!=&U`v@$`| z_kav10kcU;1mrRZa4-erABh0*BMf*c!p>vnW#tAL{RRgAFfzz0gnmOp4il@R%Ksr< zQDx$O125B^Z?SW{=(TImP|EcQ%UTD{px#MW*nBA!m)!rZS}Z*nHt%zG`zUlfuJsSE&FLCF}P%%D&%_GJfG5_s1RpbS4B!X{kc!` z5=_WCZ!-Ggl+;30r9p$ zU_o_Y=0iaPikZ1m*H>8Fo8Of>rf?lJI!Z1YX4;NMZPz)79aIdtMP`O#dGl;7UF$Ei zF|ShxpU%qPFZC9Xlqra6%Z>#BvAw;Nl*TQyehUOI0dVg*05SMM>-{uhqWzzP3gJ=5 zE0y3{&cZ%43O+80!Hf60Frpi)0Kqd=_oL}XirQ|zP2@z&!&YJCl$ZL5ipnIunxh(p zZbZNR`FsPglHnn%tSi3f7sr?37RpS@=vU6J&X*T%E_GZVk_bq}o@N5OZyG|!AoiLv zMB}nLQXfcu(36cu*Pbl5I3k70{sH|yj%sNH63STd5bD{UE>=o<0k_f42N+pD3fN!P z`-jA@Q$WcxQ%4XwZn8Bs_b-W6zsY^=@Wpq}Gz8h)vnzfhSV1KqM9+fj23ZvH1}oG5 z-sB@A%4Zo`K}XTPX31A)$8=b__B(Iv9Q2(Bx5Mv5*q9ZSG10LMJtNq&C{rLyx#+<` zoP*QoqL}#uL>%0%&jHtMu;;8V?$7*o;!IssX6(Ri5DuM6=RuqE+QaR?9TwdN=i{M2 z6N^LLvIa6>Dljnq$oHwz=t=msV(2>c1=9%2FH|}@872tkfUEK^Mbrm<{pHtoc8WZ# zD`PJx%DnG+-LplfV=)ymn%xezu<*-F|aE7;PZz;d}xJ>cBAF_}TX8DgLrAdhMWA z2PjUH(^84Zjt*>oF$*R78r~O7HJp+sCQ%JfypvEBKmGr2!V?k1aG^IcJ$>;Zrnb1` zr?ut&F4hGUpEwO?&W7-cSKr#+T7p6+WgpDVb9Q%qp9H`I^tqR`Dpuy5mZTO^q_<+X zDVKBPkeo9eLj2zGTF?1)-!J^n5R=aLnk)SYSjt94)#nA`*=@oS?=SGm46Fap}y>Gc_gp zaB_Gfwq3UQ=H@bDO7axcm2pvEnc>f_+mHHaa*+72Imr24{zbLk_We0n@B&q(J46H- z>At>Rx*cVJVcVRxFz~+bBkQ}(su6iS-srOiqX7L>!ed+ePj;UUtompwO+4=FEedJ7 zdwaVj18+Qe7vhF5r?+S*G;pvU4A$%ImmA;!c?wsf7Rh`@b}-~l6H=nr`al)u2G!S-D zyeZE6Wo>9BS83AV<@p1lp&5~O*N38VZ{hlNaFW5~?9BLZCKjIu(d1M3Pt6akK-hXV zVMhH$zw@u~EHHj*d~mn)GKXP-z9qHsf$*}hjJ(0NQOJ#xRR^**4Aw)4yJr)Jo^Fam zkjXlZ+6$1o60T$U+{w)qq9V=7F*P|3)iRbH8-K5Ud8NLEfx!AP2likXJtWsb*6{)YSwQ}GWoaVO`1zgXa|9oy=%)0tDU9kndn z(%vU69W!9Gb|@wLj|>WNM?M3jq;`M@`#YLdD&pyYG4TZ4(t=;E9&Y3NqF*n!J8hiL z#fSf^R-^K^y~OL0K|h>LCn3h)J=hSh=bU;UhwFa8bC$+7@{FY-JWE`IM$8SU9de9s z=zsq3t7qx9@Gr)j*|oKCbR+oe%)vpWhbBc>+1^9b3o1t-V?F?IilcPoUm1-)aOQ3G zE|FmHCOJG=o~lbjAkJutOapI1BxK-3tJwRzAt-9FLZoPB9`r`SBRo6#Pj)6JtV!5|wMeBl8e5|X58Yw30uY)^nD)SyE@9q>Amf9B$;t#i9{ zuC1@*oc=(<3W1ABNc<1yaKl)EeOxsb|7I`zq3yr=z*Ma9P7Z2em&q&d5EO+9s)_OG zB_3X0UQTvyaN|GEpko!e-M?>t;2nE*xxWSj$$y&Bm=GpKQBg}fOB*XdJA6Yww9w2f zAjHNmNGZs~8MC!5OP9I}g0H0&|M-4-Y+^3l4eof%Kv%Ez%Mt%<0%KD7QiI3F zpP=eOl@ZVscIJjccpIFYtVsL>c`O8o5@0mr)(-oZ`3hpbNn$UJgBlp|xvwY$Jj{8` zl4HKdW!BOQ@v*UhlkFQn5PV-ZwU?>p=9&2mNU#=oQKk;*sS#NAxQ62t|I zsSP|#{CG?pEWD&{V~8L&0S*>E?kWN1?;BQz{2ykDRTd4^NoesL+&jmAMD&*yXW-uz zw3GSSJ+Iy@{^?=lIsPS)?0btfTL_vJd)6cf?&qh=84LCHD_$2DTj3TeS;F3MNQRd~ z>@5Qu0eVW)`S6IYwsPOlP|p8-hKKwpqr5F=gRO{7)AY;AN(xCz`&ULb?<*BxNE^nU z6ULC*PgkP!wzj5&aSgE-XGnpYF4Ko-Ypy`=Je0ynKrb%d@lZ4D_`1bz`Ev)V`^9c2ZD$ zePY6}@FE%*5>-%rudAyl8UN6vxXMKp8@$uWRz1^6L!6f z4DzSkl3?U?I&T~W>kb0Wri_4A*v&@tUzx)Fn^-ucgzG0geoQHrRz-zn1)#&pa?zU# zA%-{ou8KZ3lx}(u%4B4h`7%&~Ld9Z{3Fibb@W0R0I%A+lM@0@ZWeIzoohLB26c(=G*@09OR+VLUud9~P zLM1~tm5}(*s+5IsWFajLAGTq5>6`hdqMwvhHwy@mH{z98J(6&16YH$v{<84b3qIo~ zKO9eAg~_jT`;`=+OB(4>aX2Y}GB$stm96yH%sWlh??FQk7AV1v=iz^ftcX+M&j@8_ zW=uI5QJfSOWoO2xAdsj#S{Lt$! zThM$HOqXW?3nMD@!vtO?I^l(97Ogm%rOW5?*~7=&{IvkIdUdUku1^~A-9=;u^99C* zxTl)C;omD}Lb>s$ zC6+cv`}@bc|HIm3W~657ck`WZ_2ef^7OG?kd0n9f1~(3T9hm_--Hjkb*KJXJlGne_ zK{ri0jLc@ZlGuV@dRsEJ3~dR&*dYa#E;uCG;2p30nso532k*NwW~E3Z&zSR)euZx> zl`xYCP&qR+baT7br-#HlO{6MVHo%w@gu(^$FIzro}Q3C@Aby! z<`w}isJd@qVPfKTm)|-}%4w-9f|P)Ia&#K8^|SbCh;fc_%$otg3`mWgwHaBHrxSq^TXRoIu-H*8IM&ks1f#j zcVJ?1 z1IZnWdtg3y^w41TFK!Hi=Or^SF#-Br4jeU{(5KZ9hw=}I#7T7yp|zCweYis5X1F?D0r+3u=0;dz z9YZ&}yX5SCZrA9j=;%}n+7f%Q0bX@x7Sw?tQCzfrxBvd+856Sj&iGH0IVXWidrW^( za^A(^(fxT831b=9V|=o*J0kioO}nwB?&<8r2OZ|79(a2$a(7h7mfJqBO)Xj)xGCsq zc*w1dQ-xd|&m&;5vB&hBUtaz*X=Ed@8Azl>AOcsZbxLs<`(LwV-@*BZ=9T88 zM#Tnk^^Bx+8hTcfi$yAoEV~p{;^-Kb+ifHl1dmsmoh**F6Q)rL@yXwE&wM8!8x{apVGcfq(5<81 zL@`lHLmdI)SKlm=eY)o&w@!Az?u3X4pAbKS)2}#1TRV+ApROnPzOk7f`k|t5Va!%` z8|eN@!alzTmN8&$iMd2Mb+Vi79~d4S9qk$(4Dt4{Lq~tDFAOb34E^>BvL&MSx(QZjJ}YT%Rm9dYwGoRRj2r@7>u?i)g!FnSH9Gm6ZuVsZECXEp zr1$F6Q&Te&Q&SZG5&ck)&QHky7MmFy21-VOdC6~|S(8ULRtdmDXL9^65B09GrkDao zAqp~o!#*p>zGIwvddWKADxC~46Bev|tRqUGsh#`B%R*(PV|BOt#?W3t z<7`}_*{KR_nZ7KMgi2erBSZW+<%oJsy%6@xz;lTX1kHEIbu&$RXv`9T#;ia^x9Rcl z--)j@&MF3A>kJI`MW2-G=?HO%_}f*L=B=(mk)CzxP1i4|yL~~$$R4BMXFTaZ`j2dK zMtJ2-y@n9(^K<0z&`|jShLT+(?UIMmg}xq-^@=A zkN38Yp(1(?rn>L1ezk0%3FXHBLkY)xF4t{$I$7HwAZzux+@HG(xW_nNYV-bgw>6Do zfp4)&Y7Y(oOuQ|=7Iq(uwfvHZtw_em(L&fz2G{!Sjl-&xfEmXL>Rb*h52Zh zxtN(j`naFi4&{PPodLZ2QE%H@BJz;B|I^n;I)`~!Y`_|>j17+uPg4=abb#z2ptIO1 z>kIn;)T$~41^3(49Rj?h@4Zo9sk<38Y`tMgY%g9Rp@m0%Q&?^>@zn>FYj0~AH=gvP zW4Z?{{MfC}B>ZGChVY0cA7ar}HZw{hjbuR-Mx>0@KtGNTs18Ysq(Xye@ zh%2|c8BJW0*;FFD!vk}f+P72ciC9mzePW^f*z3laPg{5~TKL*Y>Rb7efpE7XLohAc z3;mr`Zzz727680CU@iPq8RK~ius=LJJk*xfZy13wCKTzpiZlmJP&@`w1p2GskkpsO zuKb@>#{we@3qql+{A)u_5=xzPP`WX+RSJx^`D9d-|K_sZ9BqXVG%zR%jSTIiDjgln zg1TwVwvUC>wbVa;^lYiADJf`cYlOxAIxx34w^#h_TjjWstP6hPwnbma{k>P`p4;U` zWx|Tg-NM0O*!h*+uzXZB($(ke|9;9na;uB-1?EkoF*!=0U{CxQOa6Xn>vcssTmKBU zn&*IZ(7C7f^V-1saVhJmT(6`3VJ(eS*yn7wvsK_PYgQ`p?=KY>TFd&>Axr5g_yl-| zCtb#sEiJ8JyZK)fE{eAj4Ilk@mO<%VAraz-B+x)H+f;W^DzmjAJtQU9x($)+{h=l9 zAz|T0HapfoyW4&7d!ks);zQz&Ic;HKK`$L`A+3dZL0|BF(*guS!Ycg1-QCyD+y-fI za=Is0nG(jZt_BWbXlQ5|?3Nu)!1(qp^_z~Qt&N?XlYgWd|76vF)?Mh1qT zC1B zGP>-cN5eB?x83SGINHFh_E&xlhz}0{wqL){xy5*%^aP)ug3RJ0GLH=KQwG4Df z&wY`xu5!i^z);Ve+u>ip8D%*#0YTzp&}_h07#Nt}lsU#PLJW|FuBu``|1*DwAdN3c zOox%^`%cTXX?CT3xUrbamRFUaS)!at)SO2(`RB`-PX2X*8RH#MolPW zvB~LrZBi2?ozC}K(~?*-h4@7HK=D-7;6nuuqcCSjSFEw}7!2fe`A@);;Kn*QFXMzT zqQuImjfN^|mz9t+GoLBU50f4Kt%zJL$itnkb#|$(tw3CB>O26h9NLt{~6CcDd=_YHUte z!Ex;EKb~VDpWD01^5+@qjx68j=JK|O&8^80Yw!#gVB?ya)^Z_9P^-6-SCS7!Mgfz0 zlPaE$r4&U?I{pDgO%3IbfhS4JKc6MRMhY7%>BBpzTGOydp}e1MV&KS^R!_$JL3MI$ zadBdKGUTozzB+txP~jgK899V^9I60ZkxUzgVdyf`}dF=ffA-ZyZB%aF4a_s|491uP-oP+BF5WJ+5%|quB~_dB*w>o z3kjXF6l~*5d-6YPKyL(S|M8rko}O>)msV6@3Y>f>qo>ruBq+^1l1$Y6yX0g6o{`V^JLa{|{S{j9|$Wj}wG6-)a} z&dk(}v{4{kQFT$77(!rrV=&!P(Vz$j!Dpkvovl0{UW+8w+avyZMz~|&Gf#cro;P`J zN1RmwT*LSi@?)f(XNc0>lyD&Z;k~QnqIP}ykfOkITqff6$n*W{^LgP(`|WwSioTGJ zL9^%6#kaZf<;2uDs(UxPVP%zwS0NWG83TrImw-l37jzg%ZQf~U@9T|0Z|r*qSgC1g z%JT|rO{K&pJl()LeD`~4Su;98!iOoy2b+^)(ibg8mbUK4Zu=9UGqkf`qEPiWCQ}uSRP|ozS*rNQmGf&|Hxm z6@M@f<|ir%t9l>z-#~ZIa>e|%^vmd#Q0nyLE)??4B4Q7^=P4=v;duF>D!6VLz@_r5 zfASm)dOjRZ@3h|^H^qPaB<{+Tui@mH`a3x>H8uf= zdtL1PDtSpHyx^E#>qrF>vOi)f0O{d-U|?VaH99jr!<#oHmOqqZ3TSU+OcW?}K95iG zyb)wEIXIRG>dDtYv(3<5XDxPv*fnTe15ujbEC5~<(b$Nj{>`)}7 zB7xON*bR5v;IUk6@<7ak4v^1$8oDr3Gca$>ZETFKtjw+Q3W4mDj+Kgj=-O>K7u=OQ z2ReH~sOlD9l=Cn!punrUxcCL;H}*u8Lr#sevx}p4M}+P6c5rGKw*8FEqfl=r9d(q5 zkXO}U5MIjnglZ>W{m!#Lp!hvM{}J_>x$KB{7wFM>-*R$~;8zfmB1Zd3L6}bc(a zP^+HI4QS2C$Y`LO|BG>r-tFrbSEj_Z)gyCtGM^ZaMHZDRQ-^DfqSkLw%ehuTgk!r( zz>M6EZDm}6J`G!wk()XUmuk~e0>2Yz|38Ef$`oV|pK0csc z{1ZOqvu_a;uCgT=HT_UR$dP?|d6A9$w*?_H_pO%{ew~(S`G2NCvakUp| z9vHvClZR*@tmGYh9|AcxU}S>uAa+nO@IpfVLr&(j>=d4-Lf4L)cH9_wpFww=NwGyJ+;tV4Q#oc_hlEiyJle_wJRl-OK1X>DOXxavof^{>Th#>@5!gR2`}o zHghgT4Nb)+mY#b<`@;eUpf*7!1%ZS0y>+V*d0ty67xsPJpZ?c}aje^1QN=6t3bH!; zHG?l@;7nCa_%$XX*jACgBm6raC0)fnt*IGI&veejO8#5N1`H zEwF5Mv6lZT20FEq{R6W9hzLogXR@Rld{^DxMjjqn+1uJ!mX;SYF$>mMcqyA3n^q)M zlbY6U)5bhoo3LAfSc22%%Wj%`hzJ?03W(E&gFO!S@Y|5tGGXUNweyhu{-Tn?1Nms#KQz~J93pW92#EZ>Lm>b_`z z%eleCgs^XAiq!Io@NjXDO@7q*5UAc*JTBIjX@_coNX-6CvS4;rfUWh>|F`NLD?J}Q zaMQ92Qc`ku{O#+CM80k3g3ypEaqqFheKv#F{uG;qD+Tx5JYmVUCd1O851JG+xz%ah&x zJz|7i5fC-y6R59nUk9Yl>LeBeK%D%OuW{qNF%xP1ckS$!WAI<~h6D&rp5C3in)L*^ z^Ny7&IZq{+_N-*6CiRvf|%}c;TfJl%P(~uq(ocWDwc%1Pq6TjKNs7IN(v-aX*w0OU|#DaoE zZU{sopiAQM@ePV#&|JqM$uWGCF^(Y;9n@1GHO)#M5z9nAz-l(*j;M?Y)8-2nN4@ADF1 z5MDo?Jl}M|t>PTMT50t;yO@}Auu$8I)tlQxR$c3C%RK(2jQL<23;VY>SiFXF{IB|V zZ^RQaWvKJ#RL|Z-Tz+mQa>OY4KSOhsBJDqla=^H}4$BTd;u^5aLAeJkAZocTmC8tk zg!GP%m@jKxE?uT&aofGDKNu@k6v8Ukb{c`*_T;1to;~~0cuyA!CWHarvw^?T`k6Ku z4#r z+y`eT0RDrykeWyt`bcBXwcK#d9X)_vbM=hs&VF4IW^l5+qG$yX;X>feq;Z zEyw{UO$Y?=2j&P2e9ra?%d^TvKKeSGEWgkwmz%v^E*HNA-QK1k>q5$yMiw&C2vPc@ z%ihW7kK61;AfQO+m0BB=&AopwzMGU3pCnV~+nMET zM$GF#hKY^W@c!Yq@%x)=GqZP#ih2r&i?|Jv{@H*)p9plLgybK+2;4qcDvJLp0851m z7(bF}(4!xAcp^S~=%OHdO-xLflAK~7nbF4qst-+`mlL;6JEI0#J<1(m$iAb(svM1R z?N-aBPAXDmZ!ND#KG{33uBjm=ExuXkJF)VAG@S)km0Q<_H{IPGA|28#n-UO^ZV(U< z5ReWfHquC!bc1wvcT0E2K}tZn<6FLCeEtDF<2-ww?;Py+6=g>* zsUx_kER@B~Bhtb2KizgN6TnKpAAl6LHtKT(*gSK^0>5R80c@~V$Ra$vJ{tMK)YjZQ ztDsEo6{wYX1(~XUJE&R>jP$I|E_OwJvVbp&FDCDF2e{*Rz>WGI0ufs2ziin2-EXWH zYw?0%T8f@$IOXe`6MuS$gKH0+?@562^7U>azsp6$yKytJy{GB_fo8(EUO#WoItv)A zJ$harue3C{9ZfAJsX#zNDZ2XCL!NxgrP} zngWuR-HMt&U*BMKR!P~nRCOS5l`#kkws$bM{jf8)8XQGcQCMt)co_9u$0xuiAi(eb z0SEVW{|0}CnB&=YQ4RQ-TOE!s_BGfnISpG;9X7TWHAZT{HEeV=T4wfJKXs7=rsmZH-QQBq?%X2Xf}$$gy-(;y_GKOs zAlF}RAP*>za45(3{~#hE-q?iToQ1hVd~79%8Me1Ke-p&U$7pD(b&Ex11nDed(-{c;v`t`@(s!tp=JI3l8`n} zxI>!ShzERh)|BRe=ft)Ki0%Dwb?`i9wZ%8JAMA?t7SXm{yC&Z0#YfoRqM8=oTem3zM*^mOg_W7mWnGE3>*J>DRnJK7<&~we$-dPdL1tFr zirVHX8yB}P_cOO)^BLazqp2G=&v(Hc4=0cF#$H$ZOhALM&qTBKup!Ny@zh^p?;C$I zOOoMp_%IZ)m|Z`dww-jc0ktO)rJzvceH~@@!PZuZ_b1t2bS<2*cn}Zzlzg-dz!dO! z5DQ#Ij*T6!eZxa5BGW@6;`fEGZE(HnrtbuN+lQ53+j}NlU?XUPb_2<*r>94nwl0m5 zhHURsaoM0s1eyy$lH-PJayB))0tGLr3-QCVh^T0b6c?o>%C`ivRE_axXcomMX@6T{>x|4(!5Ltelk0COw3?QJhB@X*6GdVfeOHg~_ zktQWMzP)%Lhnxwzb z;(;6>JMhz-M2Fw?;sQ%$bc~DrR}X#X_BNPIZ;QF0>Kmgl>^}4<1_wtO!5%`Hs5{(l zr}9U1s8K5ZoF$BqjHj;|8Ds!THr1Y0A?v7eW;1SBNu+LIyJoHU`iL8I6dI7}{vCXMwC4J+atygBbXR@gw06!E4OO(K6fP z!;A&}bwdMVJtJhY)v2Ysxv{IUt|DhkF3R_<9=B(|6@zzi-0C-RH+Bvl4!3U{U^>#W zj_=-l@Y0M9uJN^3()PI_ZmWgYR#puD(7TbOw}c*eRi4qMX5AzUoGJ(e7=H|y#wcGu z9hUs{Ihouw_IdnYE&4Qiy$1V>5PjQmd-tcJ{cbpntM%-_hO6x+xS-rnOgEF-it}9< z4$kTIxl47`MzSA4k1uBWiUI>inmodZ6~aOcl(;D8-3)J@N24{1`jVt~zy`T%D9Rw$!n7cZUJ(xbZslxf2R|KG|Cs95hie(9lwQV;Ef$ zK^8n}&TVy)GZy`p7ynYF3+2z@!OqT>6@o<_7K@DQo+;P)bb5!-VGmwnY_m8VghCz8 zF%|I^o0hXAr2A9s1=c>TS$(~$gWEL(@fDy67BuG6=UbY8wD{BebUTpo_4xAo^~23M z7x>RDk?_7*^R(|cpA!W(+Osg2$8mB&W~=0~Wk>zDw zgGUBrT3;SiILR(NHGpTp>+)%*{*3MR!%$>&0;&=mFh9||Im5>{lXWGrQ~wb)mdDA7 z2Vb>S5*aRH^mjJ@D|G)C2m8}|n2f=rA4n-;>q3^k2IZ8H*r4cSc5YNIHvNM20-^)a+*5^dy91t=)8+7QjNS1JaaV^AcHj}5 z*HO_@R}Xwj!c%gCW~6&o#ko;*agSKEj2tgeT4b2{2tSrZ|R@vT#LS5K2obyS7-Ep2s8ZFN=EwT+0VU29!n z9ycbHIj{H+Tko{L)uh2xFVL9?jPA-2QQ+>MPyB6}*DDuz*CM)@GVQ7vbxJfyC1r?= zw!GmQv1iM<-aYkpV~+qoJt;;^$Y`)PF>!FPGPgA^>}V-#`Y9wXFlc1b|63A|wmAD6Ucx6(%*bV@RDRj{ zLEA2sY^d>*+k^Fh6iH9W^IS#N8*K3SoTFJ zr9C5~99uyVO!lR6=H}aY@-MAo;R{HWvH&$z z%UCW9nn(I=ywQuzlSGB)8M-j3X1Iz<%v%ci)rFi@6dJR+xmlI`We?U=gOZQ|j78=PrkLJOi*RYLqc6Z5lc>c(pNNpXam|8*8n>{%C4?UqdB1~kUk zim7YGm8$T6Og>XyWJG50V}vV+lw}!w8aa5R>R@5m&JN}xgyWlP5eiaQ zob$-1<*&g7i4E6RDj6bGZFOyJfJa{4-0louD}CoAobQ{xJoeAbAi=&@e?QyVerD(T zHLesH0UXscKn?nmNhau~Ss3*f*;k?MGT6C4j>4Ch@#ydV(3F|b61kjR0Qk-jXOYcc zD$2|>gH=)3?GOc5`_))5jkm`+s4l*c{e0kh*zB*FpnJOA{k-CF+)psinYnD7No89! ztb&RYaJt^#9j{PuU|rt!~dRD{1%_e}WIVJH7%p182zb8XWFpa8Qt(9LinuGC3Q@bdG=PA^VLNHHN_G zRCqQSZnDfzRcl(YQx2pFpE!m5J^bv0Oa`TU*r$%im%cA3NaJI>@qT16;9Bv+$0)(w z@}dmWhPL8D^CIQt$Jk44L3U1G_gkzmsGv44-6d`=#=+ZobRO{R{I4Z$AmqF44_k^R zWUUVWC0k~EIT+q-@-OQkSad3Uw2JJX<>+MetvWxNRzn#%*|@m4m{>SDks1lobYnGCWmwostYa@W(#R2_ zIlaGg(n6Yp-t;S-G@u*FAdhD|?l<|4yI?9QjsF5AKtx0o4#Jv%m_S=&H66aInD@c2 zTZ|3NMi&nckGpNKO^2%(eC(f5He;(9Ec5yN?AKv_gZ~IWcEe3@g(CGR`7v9u9 zR4>hCWS{npw)w}Qc#0bQlLVIhv01)%SeE90b#uCqKTr;ZZTM3qJ&h|VM?^$myYXu$ z>`19C;~KkXcly~CUY_v7buJaR;%h7W7v`$)o4%4YvH=4!v_%V7WxG}B|IR5qEjf)~ zcl~VkZTH8b_U-6W&k>fH-aE-m8DEhf&MtUW#4oom2cVDz-LyTM@<9bmoD(NJU+~0_GSyY^-;Vo(bCuVvw`(nbTOW5yD%!5@fE?LXb!UqVbrx93q;P#z|J zDZW}9?s)h>HpTv@{~QmBb%lJ8Z6+FWZ9D!egiw8(MfD9L+b00Zv{$5r>e^>>V{I>j zYtzIS7QwtX1Il29=jtNw@!O0Ak(MzK7p>XahTv2tmRf$7_WAmsD>F)Am=*jZkB({5 z^;VHveF)5-RR=7*&30#+dU{4G_fei8+t0%ZCA2ZCi@M2~$tj3KYYs4`csN7~36b9M z*|jAh-S`XE(VK@^B2)rm=Rfw;YIlqJzQdR4SCh|`8Ezt)@FY%WT9~HJ$_%# zzxV4=o6qz(D;lUU_B)z`4DI3{5h+&rD7bu5!fPPM!X#y92-T#%*rVT6ZPEO5_b{qy(v>~S83h`8~XDrnz+K9{PBe^Qs2(Q$gH0p{@Q%eqO_$Df&p!*L{7+*%olzfVHF{R09mPe#;@uh z$rE}5m0X_iW;!M>JuRJqYVwnnottBmUHi{%f&c1SgmV$VRu+o!+vhm>W@f zWDjrXFEx396?VdS1Z0qVZv<7t&Q=0b#%+(YigCwRB(Z`&^W}yuhs*IwVu8 znb~%*xA9i^s)Wh_`5_jBhjj3?a;$z$3TYl;%QD3;GJ|M&2G+xidZIAtfC?+Ruy>|3 z%?k?obdajA50YBQL2rWYp*Ns$fBXkUc>4t8Q5R5knSgwZ<5J5Pk~a|O(IULO3X>RAg>;qB9yDv>mLdzJPW*ZKThSd?U9k3LfJ)v_@9yGu8TF2Xy`nV4oT{O|-tFpLx-jf` zJG5-H?ss3{?IKvIPToI_`F1>3ztdbC+xly!H^~8JsYtAqSXdPFIs-r>r13K_WQ5S( zSUP%85+E4ys3~IL3zqT_hlvb-pZR;^jvGg)0Qc!n=jTsa7JP3{saejx_wZ1>k(EXW zg7GLAXi(*z@TOioLG|A&kX4kGpty#SDrsZ{)|L4O+pEf(8#;Y7{bHmcH{Q9&H)HR= z3d2y`n4hgn_pjN-f!mevJcdt$7ix97TryL=@wBlp1+v$QmV%a={Oq5tw1O{Q3h)dL z%uc4rO{?jMMRGke(-!$^`&;s;$&H8fZ|kGCNrCUvWQ*?=cT01f``t;EjZTG86R2rU zr+`Ijf&FnIzX!t-n2_86DEQ|aRFr-{PCsK-oG(w)n+?Gz-+1xh*ggD-#Gqv{AZv8^VP4C(L08_T}Z(g_~=g zfTm6Ylw}1mEUB#bHnIKey1TJe2Z;HP>8Y6ywu-_ z&o=`q&o}#)G%%0z9vlg;=hcSyw>>ouCQmC}S9jg!#s*lFDWMoR$cUY@i`3}QD!3#i zk@PWho@^<6*{D2aU+Zw-gD6I)EKH2|Q_uSl8!ItC&3-E3_p$2Gcaag$<%vx&)`+a%=|32b^*apDTfn8UwBcNZ>R<$GJ#dIt zM&W@8eU*?OcHbbWst_|0bn?ZY=ne7OW)WK?56u+1W47Kb{OBM7H1IHGHdB-DZQC*e zt%oyaBG)wH7?~hxQK8@e75UPIK}&F5!R;Bb?-E&*97se9$)HUPRZtpbFaK}Fb41(9`$;r~?K!xFJcPCFXYd5dLmfSi3^v-T?X6F)Q z0u2-}se`j+$cB7>~B+Pc!_lM=t?ESm~P__vLyjQ-bw+Usd|Jv6=pnr{N zqO=Q`FWv`W1K)Ct`mhwhZP~xwtj|wt8^^{G?*IL5YcnP=(`8dkOA~UJ6~K;9>1dAL z0}{2!B8$rlOG}F)jW@w>`hJ?5?*hI-r$A>0Amo1QdTKv@zsDvF)?m4X`MHHf7FMz3 z;PokNKCykT(Ev7`EaLKs;WW!Jvs7Of5{A65BIX=^R@nIY4s!AGhHu{C6_ti-smDq* zPt_1E@Or?*spP2c8)`V)FuB{)zvC!B!kIYoVcL2kPCF5EO{SGGL^jHo_KX`G%#`}d8euYw_@_cd z?E0tk>vU@@dE46wnlm$eo3vTw*peDVxi`FJBG*XxsI{z;QE$v%>9KRJudFO-?*RxF zDSm2Ng7N$Hl_gL|hyXH>xTv6@sGx)dP%PIrfB67=z9@?G^hHT~jbaZemvH<&wdg;Z za68nsHZ}*K2tg@JU}Er)c5$;;_zI?C2{*4RcfQH-G(;a`MW~NfR*H`0Wc{2o65rn$#s4p zr^y7QizEnQR!K`qSsgg4t8@4S#pzfV)(3!WYi^jbn08Xx3OOiB9Eh`SD73Lck;C^0P~IUzOEKvgx# zSXEO~S6%x(pvg`y&d<*yIQdr%Ee7V-rMFR?(0^na2m%C01A`@zrDYM(rIZx%Kdi&U zZ_%r#@Ou!%(`|nVG2V&jALzd9os6k6!-PU+9G8$Cs_|PBmB6y6d0|08Zka6YMm$ZD z_>-@+5^{bJ3aI@GWpN`+R%%GuIk+l9x|vICLQx?xSw(Q8!N+@~_sVo7c{xQGM0QOM zDXVX35ogw!UQsSJYtHf4)n0>D^l)V*rO~l*C~_sJRh!#gKU_1=LRvuS1%gMg&8Y+% z5CdK`NY5mv+B>%TTnJK%?+GZrtpEy@nprL?+edVT-wy?IMYm`JucKG+$%BGZsi$xv` zsGY01EqfHM|66;$R`Jz`c*Mf>#1HJAFR}{+kMK4S3N_vb_5S>5u}hMmHCJ~DeO#Xe zM)s=Hp`s!(D1#;4WpY4Jj2&2_bk+K8@v^B>=@7*`T4sLTmXS|QFd#zo6RQn)c`87H|Zf@4~>G32ZUOs7Q&CXQPGm!ze9t#UgD2(dGeXFR(@T0?d9q_`MDs)N73nJf7$CN30& zh-Rcy(I0pj%wtHS4ZB|BX>gJV)K5gfp=3qZ)nySqa%%;7F3^_cy`znlUy`AhG(rlC z?Xctt-+IMNt5)p6b7q{tF;5yAJNwqnp?BLj=erLJl3_?H!8}^1Hcot z)jzX~$~+;Fwh@wCon%nRj~~ErHP_&FtwMeH*RRm+u2dd#Z!7t6G*CeoVrySsQeIqK zUR2IJrmPYf77-eXdgfTiyG!~9e`Z3?gTRxLjxOIqW zq+w?4>MC@Vz_aC~+QrpEZ#!;oP8TOrSyNRvh1W1>{-NH4_R>rWUTQU*Jr@%%QTSt*of3omeK+ z?{FpnfRyc3bU=@p=n(dwLsCDoIfp9|rvB+?`Ig$8>gHzT!{@;NBpROfsU(%8wDC$J zgGa@YHDj!^OA;G^!KtMs5k^Z3DO$|GG%~}WV0xF)a@LDs4yIai9ZxscG|yN6 ztv}!WxBhfCnkn)8Uja?qb3cX(;6FV5dK$ZfuSKw89#>Wl4@1Q|al>2E)z?i*{w}tC zl9F;z=}uOZmxr3u5nlRBrA(${CqG0Hei#Jw!B_W^&h^hta$Xv+k|Dn%s3v;bU2_Z37M96;x8dK`iJk`}_ARO|2r1&5ORC5OUqF^DTzu@OC$u1B( zd=**Jr|7!Z(^AvJVwN&9($Z5fRdXz2#tXqby>`G~g4(e0yp!GU+H7=(Qy`PYj8sBu zN?=Lb-Kbn--@}ro!#fq4m6IX3ZI?#Q$G&&1g=^~zbqe*YKVx9X&)<%&lr)rq)WV#) zr6_A~QF$1&m?83J4hxhTylmNV{~DyKGG1>?^1{|HWBe3Xfe` z)l>t!n*rk(>jfl-)9%}8PXilXGyk?#BPtI51R^4fd&Q;81u6kCA~U ztBCbjdEG8gr)uRIi?=*ABq&7BC|uB5g+duqh>MgVV?K&A)>Ye+-^%)CZ_p%GvD?H_rFIaCv!_+dpP% zFR-OV6+8@D5p}>PyYvsc@UU`tW1<7xf@Ve*3X<>irEJZ!qJmSyN^05?$f8C*yh`rB zTN2VLjoqRucz&kaYABxIR3QqJq?vq(YFtoRjWRLT2q*nX44<7F1}Nsi1tlddI#3T= z^|#uN$~NmW!*gpzVNnv#J94nQgJsZJnFku_=ezNa=bQgvPrFed6SFJfeYSc3x7F#t zI}7H_Djrd6qI1RS*bnql{s^s0fhQi;JTpg0H~N0z11Hj{pmx zzO%gKW#VFL$RhnN1}ee^*GsJKEo>LJV>`Q2aMu(Sfwge3w^UeM#>(~!NC*+LXqf=R z1^zwKl4LRlLhMiUvq%vUYQB(>oK8Kcr6crdoOjo8QK_<287QmK$XQAAbM+!|uw}k} z{P5vgcTS1CD2T}lPuAUvG~d%5f!0qb%lANr2f{Adi4Sq%Zn`WvX4=3^MW#N`l6>aR z0OP&G|E@41LllQNSp(f6RI6>`;@${7X224oG0p1?_BKY?{!lD4UEzSnk1*`1dvo)a zx8S-#hlDZs&Jz%OQ$LlkjwpUdKXabah>gVu#(8?MF-wK?!;m}>b+z;JBQ-T=$O!EO zxjDkmdeU<45*}Zt&oP|O&oM9*70-Dqb-q?s5Qr6h&shoYb%3cb!DU*b zvK-*a7I`8n1jJS&OJZC#?SaI_5aA0Cm@TJ+%O!G?gV$R(M+*&-w7XQ$w<0c*w>|E> zj{;<;z^0*W5X`Ipc{iMs7QTJM97Eh*QjRZHLSh!ip$n*l}@mb%oWy9g9&UfOuGHW7_PxWJ` zP~P6%-T~}Yu&k_HUvIy(ej*x^80&^S)Bt4hCQddwO^n^;6upT|o_<>Zk-e;JU|^tZ zAZX3p-Ujyd-RkXwMK?S^6q)!n5&s$5&-Q|*(AB3PTB;Z~iwc6lpyNdyJnA$lI6BRRiu-i2l2d(f*FRT&92q(G)HON8 zf(PcO2n#E(t6D&>hs5+2w7Hk2RuBi_MGQ>$D{^Y{Xaxy+p8=(=H_rnK0j0(fyHG#j zRuAm5?pXD3%t@{*A-3?2;vdapD@ zVp}tBdP<_U%V)P%I?fVbwRyyQjAA1z>lhan|JoEN%LW%l`nX)m1TX1nC_7>FO|6@+D6&mK0EV z|Me{2UE*#VbcG+E?4NIqX`h~txM26E72w3W&3xT-JI6LI{^e*Y`LV2T@_48Dtoty2 zA;d%iM@P;;@pZ7m^gP|CVpBELrcB`)pZ5f0@9z}fzU_hc+nY9UvR7b1b5zhP#LCMG zkzviLWG!~6?U_g#t*NZ9ad&cecXYhG!a~Qwi3$mUphyGz%A3!o!1v?|eh8lK5{JL7 z{FmEXOY<7DDl2JmWS-Ive*vXj_~GG0j#M;S9@uXSK)Lf3>s*?ekuj#III}{9A7ZtR zzQo!H;2($|G38b&9^A%3y%+Y9`PazDx8k=66Ro9oi*?-a;TB0uBv!R?%kmX#vG)78>pp+9V& zLtoL7hyJy)33>^*g7G)6Xyg>Jm31fza$GRQVLr%H=vJlGJT7@^8Uvf5=HlP+62^A) z&=1pBAEa{PoQKJmnoUX;E~XCpcjm6JL!MDQncV6H=Sg<6tu$5S%w&ClP{c!5)wd$C zC9EwyK{yHn%igqvPlCJM}H-rZUmu_r?Z|0W1pwR z0g$b@ye$CRz3!E-MHk-d{K!mC!NsD0P?nB1vJ<=zr+;UJ6!FmXB9)k?#Z3x6#aGjp)q8gbd(rr=cL)`g??oAyzp{ z6fB<7@L!U&x>^L3{*O8Y$)qY7lfaC1b^@9hGOsF2vuSvM0C6N^mWYs)-WA4d{oWz^ z;dz9vEJVtz%8Ks|S$@b38P6jH6rVC$mx##W_14U+rq;w;`9L#XL^hU!5cOFGeA%3j znvAu^4OK+wc1LNeZ3x{tTk6hma8{pfZ0v08|B{nZWhP~$Cnp;l>gwtn8ZIuZt%(b{ z-u-HFF1T`=Be7&02nHBJVErO5F}cf3h)GFGijN0H!Vf|UqJzIj``qsj~i7@Z2a=Ic2Ei&ItoP`>#098*CC;#m1tX5(I;m%LM`}n$S@QMY|wY0mf zEklG{evqCJQj>_nt%jBxG*AC$Ujs9ojIzBhJ=aoIb4#Tjwe7J-BW%PbRg~#p6WklU zG$}p34BUN-r<+e>LDdhnjUgbKO=AxzmU7?75_|YSQj~7P6wYw-cp(Q7o>D}YPyRDe zR2GUVX1{{)7g>glQJL6w?l`lLb~bF4M7jox3yZ?dw>KzqGO`1}zLB6QSdXQ|@i(pI zX+^Q3?Qv}sR9nab@DIO%=ufJcWkC6cY z-L`*!wD{?FlZi_}M!dCqwExlGuAgsa_Vv|=c{zA)L~X3^T`|m>(f6qnGC%o55EmBd zV7BmGZ4e=5LN!u;Ey`~pD81B0v|Q(ZTJ(+)W6#j#W%J;Ler}uRAB*qeCn6OfJ$wsl zH_{~p2_Hry-z|02mlj%LY4_jIX*CIc7BxjgP|-r9P;_wCvnrF~LEmnvpBRGMa0jvq zOqP}){`Dg<@dt6D_Pn5MB82H$#kP#I>(ggR+FW#eZ4G$7|T*J$M@S%o}%7cM87u-dwav zd}luzHfZ17=vR0ILwwjTuWnP;iY!!*ZCPB9rf{FmnjfJVJ=poihlD& zrD*Tz!bWz_zj*QP4IS=m{vp7{Cq}M-&)LG)fVvs$sw0m)eMz=vQ2?EXeb9Osa^zN1 z!`n2?HdO-~>-&0(dSG#kUJ4hFn3$Aw|=WwSK-ve65_WrNq%XuyyFKgq&USHPRS!($2n zq)5|K)z(;Fn3bX`EHbpPOK21cB=g$*S@IM;T`bU%I= zei3i33#T*!L4@SFKRI-d46SvI^{>R2tEje*m_2^;B~%B;Qyn7C^z;B1D1%t|YqA=F zY%He~)m$-ozi0?35W3!D?_e5H9vq*o{0HYqW))Ew$`s4;227C3N>p^cz|c!sTEj+e z{bc)aYw38Xh6Ec2VEUUHP{=xmrw+GGET#26e^LU>ui(^@mayEie3p@bk5*ZV^bmMo z*;R{d!ZgwE4i|D~kp_EDBwOmV$*NMhlgxZ?hzewLNGBJ?c%7Y{d3mWbEkByt{XIs| z*e-0`4u6O}0NdVf@ zYx*h~Q%1-vc+>Y;h~_X90$?H6tc-~3?xU+ zXNIMH?ecMkPAb%X7m<`xG0uc%qh%eoLb~1VN#_v9^_dVM7LeHsGCQQqrreb5f!1LkL`D9f3&WEpnhNW1aWO0xRpQlPe1o6S_J^*nJ(-yi@AXH_>T7 zVq$(!(%?~&0*1=w&LN`FyGFj)B{hC?DjRuLW&*5i^|a2pp&r41&{APu(C_CG^8=B0WT^ih@)a}Z?A&$*VjZ% z5R!HCPgAI7!VwJ7$Hk|nCda4T+Xb79goLPtsz8YYc;vY`Ik{%^FJ92YVW6H~7dSL!=m^BTuhD5fBKz^E&{H{$(=X3ao;P+n1SD1_m=eDfP6?9?9aK=RHV?YR?1 z4Q7{0FkJ^JpYRYBg>e>Ewu<8NGMnSWeF|zSe`;FrRK^nXE`*h-KpiKff@y04pB@VjB7yH9)ap!(;sX_T!+34dX#2I$qi) zmW2;_U}kD;Xm*)KpB+w{kmiL5Bf^9CO4?Cb(!|Tn*IeT-`~xWQ%YI5u1aU15PXfg> z-3t;C_}VM%h*8cmyW{jG5ZMf@VY!P(husY()O| za{wZ3?|6@biFH3W_teWR&4h$)^Us-2&jAJocQB66aU?)m!2Dr`|5V1VI`SJDsIg2f zEHEs(4Z$DrHn>?dw9t^yi0|-{;tYTdJwGroGBCa_(K$XoFh4#{vPLY^&j@JCeQ#t3 z`eg=WDpIjUqTwL7zC|0;gPp-pPTK#g)zNh?r$Bgt!jOR7@ne*}jtDZQos3^){ z=hVZm-rf@^4K3udF5&m@1ft(B`@RU1?SuQ3g(Vt+p|}4{K%i^@@~uC?+Gx-0WRTqS z7h2J^zYv~RIt+ivr*0hzmlj8vgv8+MrJ6h&TmIQu7Ij};@+Z*HTOe9ny(&;(pqNPV z5+%vRU3gG6)SiY%?VRa8yE|SCOT+;*CZVd98mv__l8lBu#uQWO~pwJo)fybmFl7EUj67GzKbfasr40BqK0Hav6S%fRdUZ zF+L^T*l>1*U#O|Exz6+MaI=nLyyIq=0;ILNKqCmer9j<#HUc8Piv?gC+~KS9=fawL zArxE)jbL^HS*Eh!#7ip^HPn6MUV~$vr?Ay4bV;SR*r76}Gc%{=(&XuAg^^7lo<6Y# z1QwHh$}>cy=pnYWgy<(%4hX+GM?p|xV19XddSrS;l$M!641N1itR5N8kGO#0 z(IDQAL)n{moJ=sGprT`f7PWS8s7)xkr!Dz!PxtO2UQX z3kfD7N;^hNy_M@I#yLp>L1p7&JVnSZjcF)J0d-w+p-7Ki%) z_8Dz2!|#}!7D*0oa(_ud0YdBlVor+Pm;bvL_2FQ^ljqYW%gblz>=QD?VEe`q@(3>~ znhlmC+925c{xCSi^;OYVeDt6K#EPuanGtjc%7`nVn2d~yh>DV=ndtl7CoGTBKOl#k z^!8E*D2f)At{N4D}OG_kQ@tm;r8L26h7EZ|q&m%geJ}DQx7<>XNU??c3wi z=+RT8)G>?tfBt~~)(L{|1A@FLdeOikfP82A{aIo^v!oDz5SdZTCc8#Om9Q0&xx)U4 znlw2nd3{B~`D!IOj>*ma`YIds2@De~on6)5s4M*w!M5b)iW7!eOcx?IGuX9~A7rq( zKT^mK``%ReM(arV-$Zp~X*r&_8D@Tv$>kL?|07DPB*pIhwVdIhi&0>a`2mDTM{ zWiazkK18p4Ye*^#J-3Q1GrVsj+}C{mTqfGDcw8-7X0-e4&#c`&SlK&&adUDBsc6Z? zit6D*Hjt(Ye7L1!IW>@dgt5sFvHE&RhUJyWP3Ceh*kaGe+kED5adLHaba8Zab#-@k ztPFmODrG>C?H?Bx7KSk+>vRrs%vU&==>H6$fpyOzCza8Idr2XV6He#-JH*T2 z_XOL8y_uk9mgEo&zY_=xT*I?sT* zcXP9Sb8)zJHoUdcyRdKrSllp68#8GmaazdB{Crsuw9`u_%X!@y(7O$`WCH?{_67$l zC!iA1gg2g&vz`Rf-|HE7=vckiiSgCXzUykG{rpi6M@5-QS&s(NSrb^Uj;wO|DxO}n zEERdBrA2lozv^%oT2LVH(HffC%QK6jVgmdv^`4;LQe$~_o$dcHH+->YVsBvfMN;2O z#tN4fLL0rHpK>nLuL%_PJd#-Xv@pc!dv_eiXcQm=VC`mulz#tC9{x=DLK;Eb`-Mm= zoQX7%9fd)5dR#Eje3{$Ys_TC?1$a7*-Ok>_vxA+nry>k+*}sQ9^p8|@T-~v8ecOA! zh@0n1U)0Y?-}_t0@;2-nzOR&`6**3DUNpK>wS+VT`pKsvBRr{=5gdBBv5}F06UMDE(`*Z-{LHmPsHK~i9aMymxC={C!jR|@#LoW9_|n!^ zzo}w!X0(-6UQqvYgF200v;_nsQ2U-CFG%-3*^~oJQ$-0Y8wV#R2glgR*zn-s;IO=+ zva-VXFZswQfA8*-a2#}W^b2Pa{iGDqShQgronuc=`60SV-6XPUB`ah?bj`7OO&?Nw zNrvqh=2B$IsDADSM~CY$`QgDawxV*IBXY|0G=pW~FUMPfyi7PC)LgH#JAm?Uko285 z?t>Kk<3rmjKpRVt6#9UV~_W<_bcDA}ria+3tSPYt=hdxu+FXLnYVpJ0*ATHaGbaA;7$uMK>mO-PoHV)jiw7!GZs+x+$s2lHw+cir?D8bf6}n z3FPJU)$Oy7qwocit^Hs8Avk4a<#Dh_3jhwvD&g2sm^d!(wE}bVvj9->gODTvN(c3Q z=x$B3#p6+rjobQ=o7*id)!p4AJ zDeub_@?1an!$d2EC&F5@81IlsyNCYo{lX!v^Bp$X7o?YY^oMYo1J>A(nOh*~R z4!4AHp9_M)>}|w3F4s>iJ&^W^;vnWk2uq7l>OJv>TW~HZEu`W8JU6HjQwpt;hB7A4 z67@Y_*hoWV75pwzru}E@F~Q&8e|>JuNyRk~{nk0Q24+JeBPc1Tfx*Gw>}aT|@u-RM z2xu~KX^0Ln-j^qkrTgjl?4g@<{HHDNdqI<18q`Bj>l%?{*q$8N#L|j1F+B&Bz)#;8 zK%HV%!~UdX>8SigwX=7s8(r0nZlOAQ^t|zBWs-HjU`@SyU~W4epfj_OHGK(uNd(yB z%4O+bV$|~=01-LUmg(uePf91Fp`xZf{`=Y9`g36!C(0sBP0iX`P0|#c62domjfJ#a zAZZ8uENE{7W#05~)4~KjDR_U<=^34>dEWP#6RDCC5n-a|10{8*{2<#02az|n7~lL; zVe*<%U*D_gxk@W~UU%;OI+$DQ+UI2gD^d+}KR&*>7a=csi*YW4*ttA9IX4`OBZU@h zYAaPRt&HhfhxRGy-aZp7YSFy}+o_O*%3;=G@{|TiMu18g1t^4qA=`YM{f%*7t zOU8hEPobrg%3AEixy&e9w|EUDr|U6XCq|Nn_zn=Fg@-~pZaz~-58Al@Qj=4h zzI+tZz)nSYhfN&Tvw2pAC@`V+Yh-?$ia^2N^X zH1%zW*OSM|XGEbW9tD>1NYydYGz2@e~!6EqyQ@`B6O}Ko6WTYVl3>eZ%LS%5}%!APX25i zPTr5Lh#UpegkYoQJi-baKAVVSYQfvtSq;?ssFK%ScXqEi2(Ws%r37&IjtwsJGYZfN z;N2sDJET;QjP!q3;l4fz__9Bci2>Sl|M!n?;e@CC4FyU_K(dZK*t*Nu$@ry~I97sx zlDa650!m$E3P%i&M>gnmjJ#2s2ru2BujNZ-EALkzW7{8j#oj@oqP0q4PKv;oP4^hj$ z9VmpW1{&e~8~4HnQug-d8?`$SOmcI(0-uD*$`y(4b*)oY6(E?LbY@tpJbG!eRQ|6d z@&ezY_vf&Ue6gihO3pr0<$Fi2B|E^#nDg2i&VYICnBethC}MI(#-C1XEC`fL-jbA5 zm9eTiwYRRu-R%McDLgD%MNv*kS$T||wG>nki|hg81#$QG@%-T6@6PPb-=QwB{RPKJ zBaoHQ1A5;tU!*jABzz=nyu9=lRYdjDtcOq{P%fNnxWAcXE6Hld#YVQi8uky85aq$~ zXy5b;=qSQ1CUXu*uoUy~ws!mYN#~1{gqQp3>HO_2n8p9S9-F-)-Z?j_t~HBMk!yBL2=$njq(AnH=4}2$<~P{CwWBY^XpB z5JleJd)&bV^@#xhBkcSPzW~a`%XaVG0?1OJpEmRJHK-hBiMUqPwhHo#OfPC`y-xwV zTkN%CnqS6gdp5-#x0PXW3BfP7uXHQA2UaCiu@VWpC$~ye(W+e~ zHaK#skOluCW5)%TBH?kK?X((5%UoBfD9+caepnnQSyqBTjqZfYR4V)GUp4jh&JI-# zgnuQVka@_!ZuKXGdrwb1lI$}JzH4LL$ZH3En)%+;yL^qStGYUWs0+Hv*ce+yN7PQw zEQvY{1puS`JK8^n?tW1Mx*06L2ll|1MJG&!1EXAUQ9s2zqYu( zj1jaRI0ae%fZ1VZL_aiDG;-AB4>45=(R*1B{OQlA>o;hBrs1h+(TV+=33TTC`?k8y zQ`v5-+yPA5@!}jE$cHh}!lQ-laE* z{^guRF1Q}%w1TU|wwaKUFu0%)ss4aN>Q^AU&WlVz%~Xv1UKLgd=^EPd24zH%IE0Rj z;O-A!x9~>XHz^a1caNb@HGTAdc)Qcb&8sEHxD|iIizME6t(4F7KlKJCv_%XvW+%UkrW$IiI^Z4XOY~>~=I%b>A<~|Cyc#&oQV|(_qtf z-RSai#!PsiWf=`uECVZd{MbphN8>p{wzrYNSk_Vxk;!jrl{-b%grl$S`7?`n9 zQ5cw*P?Pxum{wY_;#1qq6MytWm*R&kgvf9OaC*pw zz^baMikZxu{y7S>c~wun*+`$n~H|-46OLhN{P~1K6%y%PjzIla@{*^EFr$o-A(r9^yA@<*e zzw_Fs+AgLg@z{9xG#fM3VW#g+VkvOAoRGeJ(b+dWJLoZwXFRpD`jp_}>XQBSP4wV; znjY%mA-Na4jqkgKK1P~SAqf%5dur$!xMDYXHhSH{h4j(oTW%+-&rb6LmvQ|s zSC^Yuu^(Kwx@x3RnlZ!0e^*H(+G^7I@3~A2sp~r||qL z>{v_0*O8ziRX+e8K@4~mE0u?(J^^YanENyyJk&9&egCFLkCwc@cA1)hZh^dY8kC8Q zgq)P}kUXH{+Am8|4TkTNCg%GeI@~ds`Z&_pJ)w zZHHThS_bWE(nfcdTE?HakI`Ie7#wTl(&ur=y=;eR@(~}CPSOAi&0=Li*T~@auc|7C z{mJ~`yT~bA!0|4J0KYR7@{^&rzb^<8q$WM~mknHXqia8OHRPm+_kOfB`6yLipt`4y z60VrD-~i8MsfB6uA|`4i3V}>ir$7cqSXkLWCinC4A!UZ4_QFzIO^X*XqNR~gt7F9D z%ioEa*3VH-&Vb%G1xjcDzRruEF9qMUe})|(Vn>3nDZN-#g$)_`=0ITgr1FC}-fovM zaR}c8aG1Xhnc)WYA~84L>7ASzn(^G?Cy^zo1(u(nuKK`S^i+IJAstwo9%zKl8Idrz?K#+DCxrgA?YY&J$oZp-o(~X+Vl*kF<9_U!v+);cAp@dU zOLD{Onf4lt5j$7&^+}Yf%z)UK<}xu-b#^ARqyJ5#0!SHJQm}8vCQeSwOf~wNukRB`n`gR-o4`$&%y&~E9@Zaztkqczx;5p%2W9tp zL#|_}Z|r#HU&F~;kISv~Zm)(4BcV4d{R!ho(LlwWQ&CWIaYy{A7%+U-seKLY*yU5h z5V8Da1zJ{)86Gq(q-$}TJb){Y@;FDioh=}GRCM>{ zCK4JNawH@@J?=-6k$wbQ?bT-=2{qIdnijXC`?}4%&CP_ognxyF{K`t^Zc5C~{SVaq-I@=ZdEFqR&WpksJ6vsPlG{1-%|TNc>m^7hZogh1Q6@7mFfWf5 z(U&2SIm3X5q+fnU9kR@T-|w|BNfdw$hM9|J9+! zK5v4!ui9pvtlF+d9kf48PDhEE%sY_X#^`(TMZSB5s~8;>y)r+^#|5@s7LIT@sd!L- zMf&6+jbp>-cOS9i-&Z>#BO`OhQ&Yd|3;?t~Yk%_(soIQj9d2$j|IL}DdS5}4Kvvcs z@PK!ookXrtaz}Bjcz%dL~H&BvfS@fF0ucI`TgtnXkvo z@%|w8eCOETjoyisYoK8NeV9ISX{PRbaWiQ%^Fc)H6+y;%AO5Ou%}Ey$o={GtyS6ud zO~?KB7(+; zcDjW4^^p0=u`uV?U9@j&>Ubsn=%>C%zVZj2r{{O?s6WQ9V`Ep#E!^$C=gO<8$R|A= zJKtHsws?Zlt~NrkZtwR;N#|nGl3oDdTtWia^73c{eLx=u*x7e4Ce?5@a>ad?W}L9I zc8&Y9RaH^<&@nMyYArr0HJH~fTwjx6^pAZv@5diZlusJcDZfBM3YYKE94MHrzaAT_ z_%FF01AJW1D>1WuKb%;vWusK&gRHQK3Gg6g-7`AuTd;}7+(nY8+-kL1DIJ)rBSp5= zf0w5gIk1ZS)Xmgg^i6aej7zUUO zv9puqHpi#iJ%^L?zJr7NG4?obG7OKqp_R_Ta>Q{X-_y=v5Q*76+EqDT?Sm;w2t2A& zQ0w-Gu%~k{Gc!WElCjXSz(7!k-eFC^!S)j!jBq#i{M}=M4=G5PuM2re(d`l>i3uDY zk`j>-XX$8nKZ;s}5ditQ#SQ@oL2`_aDaOR2UDfl?>N8dXC6=5*6xbA_pLf2eW@ZQ` zl2|8AhI*Sz!?Cci(De9)l#{2is9Os^!34q>W#mHRViX2h*t;c8nhRo9Iww-M%e$w5 zwr)vkMq>WeT!lgVm(9O3tr^kytii-2B;?=#N4bBpFNPhovGl7)ART`1n1&G55s53v z4-a~~Bb83gUHJO*k*%#Z>us!DA@>p7hf6l)F*v_Gdt+|#eXUme8bh3H zeSPa^$2ls4r90qU7lEADZR73yZ3>7416(6V>zEGv*MHmd)wV~C!l|{=y8!+Y|G#U% z2W0=Yyi$8(myM0b$-hZ?Y3>xlK^?wME)G>Kwcz3B^Ti!=>M`vk5SRxzr_O$XBGtpRX;Vi{!3GK@;!Lh95BgTSI<}LWr3qrkDmF zoDE}aYa&0}^r6hX5)?`g$w|`m7MeUSo&&vr@6hvh?>R%S!EU7)YW&5|(&vkvg$dl| z%k37>#$12D|8WjFL_cr$kl-Nmq@Vk#0^46V2#~rzi>ADZ?=zb`lMPbNdrzz=RH4cY z`!(l7%a^;*p8W0PnFd$4>r3LFVu+!k(jhV-pp!ys!y=F3RO{q);p9|{?oLj&wVC7k zp4p6xGs{$=P)83J8NmDt3J5HTA;f8VkNFfz&R_3h8(PDAoD!Sv5D=t$=nE_?%q+Hc zwt?+#r<(<_nV4vekc^Cs2rW^qP&4e-mVV(NR1?X{`lB2@wxVw+1hgdB24>CX>j6Lt zj)g1oh)TUA5nNwraGZ|zwD(S>w-iUh)W1iQr*V86%9ycEk}rm+HF-dJV6Q3D;;<+q z$(sV&RwyVc*tz0q`^Q3*>k#<+;{}QhF59Tz%N6T1fi1-q)(aF8r3jpa_Ta7JdNYyd z#ot*>4t5lVE3M${?BP-6Ol-AseSO>+-4dJScexJ)W9P*4p(m{#4|lb|V3J9pZ&D&^+ zybL}|)Bf>LzBe9$sGCC9Zl`&eHy~oae*?^)3xMF;eR2K#+1bb3_jsdcfGQ~Xz9iz? zw=OU>IyLsQ=RcH63j0YTLy#dZjQjCV*Eh+62`fC3gCEWwCWOEO^XESvR8`e!%6w2y z)Zy0)jk+sXv)Q-O_11_j_f8er?u!V)d9N0fE@tgJ0(_6eGcM)R)X)+JW*?7Dl?boE>Gh$pP z-_I6`aFDfQN*s!`^zR{?RO9$b=^SiKBFPEyIHdT*V9iC0O+Z1ix4B>O{j`Y>uavub z^u?3ArmCif9v7KFdkyj9&=Lv(TyzLdW=JZvqL)n0q|OmsBB=l`s|`t#)g6M}M51hd z^?b@7Eyna2_AzE-O_Zd+Gc2!p$R0JpPbaP}>47wM;RgSj-o==^e2|WX1t<6;i+WLA zCNu~8?9-dOUC=(%U2JK7FqRnC*IgD7ZuPlY?*>Mn)!)7z5G>=9wS)DEnLw6BJyILe zWOvNUaYpC=Al| z6$EJw4a0vl_v6LSVEE3-2ozg?Tl9`WoVNO3G}^k4Vc1ugLnFmxsWxKbe9RjzHyF_> zpcu0JcV(GdF-8~kLnP(0ugXWS%++B)H$_#=b=`ZSNijVv&wWPhmJroLJRlG~!-*hK z9Q-nVbmt~g6bv*sH66!gsmt^YSYPX*$urG0Ntgty;9-twUOs-41wG4`)2+w9W9#LJ zv6OFp{*^PtQi}d|2VBs_1_(rdMY~ymmy=HftnfK`-|)?^PHE}^%x1<9JW67Uy>g8R z^3O!-IIOPRxLw5i)X$V7(-D$1-~8cq;+gP%pkv4qAP3P@OBT;O1T&ZssPi|tU*|Xs z^z?u+_6X=S+>kU=sNw^TciGQ9eLGEgMMl?@gK03N@)9W`N={Zz zMr!Y|>l^4@pP!pZ0vQKBVBv@(9Hz5Y&Fbu4Y;Q-p4C+wxi|cC)$vl zibcdZyJer-y-r}WSB|ZuAg3hH&=(RBY4+Sc-!305&uHzoX`mE&*^8`fzXyzEK%GyB z1!SV9n-v5&hl?#^uP<)aE>_?M2AEED6(u~Pw44O90kO$xn&o(c^R-k5xaDi%leR}k zpLNhkgjHXASJBbvFQ|O-ueGIE7*f`=BZ3foE$<|`}vZ1=fa zSEu_U#K+(>`pi6PasmY*g&CtHHtMZ#rr4U50z(G0-Pp`du7HzRkyP(HTbe16b;$(^ zQg{!^kH*`epO@**Qs8N=RQ{iuDZ{`=!gLBe#AMtl-hyBw+u92z#Zrs&&2c$t;oNm4 z=%hekQc?i+c zNRl?p%ip_Qw@^KVb7XTJ94|0pIMpvt05Fl_QwCNEFi$&%RE=~6}Do#j?Gi^==@j7oNC(?MT9^TrRu&w zDw3(O%(9N$6i8X`8tS|_`Dk#f79|I=gc)WvWK>0d$55PAnjcICL0<;B&-6@5J*0?v@VT?S!ZSwAg3+CN>O zlfAW9C1$T3h7*t%m`D5Dhx9;4HB5qNw5G1Qx~_Ip0OgjZdP#0`-(KJ$7A)aLN7%Z) zAbvi|Ffe%g6c|XmIprKl>c!wr@$M1uM1bw-1}L)K5zYNE+}!!rzcaj7F!l7r3AL=B z(M;z6a}#hUxW00DFMnGfrS&ctX=OXAbdxA8<%doRZdn;Ml~W_Qr6Xpl(!4J*XoaCk zxER8Ey1KprFf5q0)YQx$>12Ths|$Yt7sNnM%ScO2!|+2~+IJ#Y#}0s`(#ZQ3ajQ>? zkR&dhWsUfZml@nt9KN5H7H(x`VJG#mx+z9`Y_z`4e6dzv zdL)BxJ*|>x5VbEYsb_9157Suw^n4Yof_sg$mJC&xdCy32{>58HMw`A0-@&+^jPI-R zzp}V4N{2UMKx%F1E;t+|n-BZRv11`$Sw1)+lBCdW?Kg&d`&!lM9uTq#Ecy6mdh(Yi zNOtVbbCzL4Qncg1nn)3hN-$%hREAmFR2KmzG5&5Q1qFG=iqGS$5G53HdoT=y8jq12ZMTn8n4lHW3p8XZ*A1FG3=H%P z(m;{etox5y!T+VFUosfp^CN*cJ=pct_R>lr$^>ZBt#xVD+j?Ojrb9E{<$aK~)T97C zqzvqVdK$vYxSpkNCCwHPNJ6c`Kd`O@$5)EOBU}42wsKorFod$NU>jG8MR%#=oz_eu z6vvA~#yp)aF{43bCp7#`Ue?Er1&v0YMbq<&X(dk^-aflS;AOLPU-j?!v)9*P=r~6`RVQYGSoNJHL^9pXy-pM z0Xmbj_x~fdB?b*p8F6UUMa8~(t)L**EQu48$W190HOk65s1AXw-I9^tiO1tTX0C|R zaMHH_ZmX*;Ev)oI${g%nNG%4O_wb2#{!i$<;Vd4Fu+}QCNn34*OA% z^gB};y2xsbTwZ(`t8XY2V2wuDkS(eFuI@(%Mk1_-lS`L>OPBze-MMj~`W!ez{Kre2 zomEdvA68V51M13{*cdd-^9!e5ZV18^>(>3V3^x}q_e*yH9xba%EtqW;z^*sQ;G^Y} zDLm7eXupD?j)Qw0RyU@MQmyKLD06bIa^YI9(E`FI<0H{KT}jCFI+p+Lms%ni6z(~sMp*C);#Sz(t} z7FSn8W&MsW`>t#X`R!L*{cd)y{>{aJf9iiT+V-opeLZ{N=%^iUe>^A!U&I4T(TDqg z93ppXtqobijbB{8Tum+=E*);|iP^jBsTr8R$7pPC{I42skC}lw7PjTk=pB#6moD3Z zNHO3lS)b1!t%ivG%heqI=qOZ0OvfGeViuACYXnC%#=ywM$JSm32Dq)T z8!sJee~e$&<}bSrX2&obnp-6t4z!@qr6x-&H?Cjs`mJskW8Dn)Z~e}W5&vt@69V7| zD1E${pEL5k?_5+l&O9uuWaVHt{E^nhxAz?|Mt*}}iB>NXw2gu!*gsTQoIW{sq*1KH zeJc`Md!74NgZYQCbHTeoH0f+-I%~|Asz$UhC|gFLTC!$?TO~z?e!H8~FTXFYAS6I8 z1x@Do_(-`2U}VLNEKFmgvf;64=PuaYhU;q!m}iPxo{DT`pBsg><8dT!#G#mfit)0m zV=Ik}wG}^jDjPbQOX#g4VRW?p`UPX-^~KckWRGO0_xP>H?cPLSD7dG>Q=P7@98Kl5 zmT#vzcKlIGK!7Yw{MGgm5#?v$eZxe}#q(!QqI7MMtK+nT*anLJYjZR_?8()__TA5g zdDHT0Rn~ZUJQ9x^&cXeKyZjmS@(csmP3~IMNEZJauo{0TmN^{%! zVD}>}B`pbuc>86)PMHQ{kwUzLHg>qa?jz@(dJS)qbTxhJvl|wzGgsgdt6UYl7)Lr4Y$jXDvOQOh*%cXppPNecp5*^nh|ND-?i zduO^Cc=%pj=${3XsKW-YK{48!0G*hD7Vun18@xQivO*&jt?awA^|C(p+u7R5!Jysu zPc9X}edCS(*uOqJEvS`|)?ygTJ0cH{WfzUw@l^XrAr;9Q;l=-*zlKP@Po}yItb;{ zmwyM+;Bt*8sq_8kMbPlFdIN9WKfe~VKYGy2Q7HTIO@fpjFQi=bE^`ogfCUTJqs zlBuiR?u0~r))#F9KEhIki}k~XX+~TWua8q!=)-Yavq!UdpY`%?G{`# zvKhTJbiNy5GpuD7E`I{~MyVe#y+t zrMTYgSIL4B`JNpPZay?9Ujv~(zeBbfrM)x|GdD62vd>;9lKIH+kXgMuiJk$ z*Vnf-3yX3iKssKNWtSJXH8a*w<+U(?J`LCg8MS zjCG|9N?YGmBVfZk{Ekkh{P551uR{>DZ{Er5q}INY@L4``#orw_&tX)R*8O0sXjWAi zsc$uI!dbQ|nY?85sn0_4F#2JWg{Q77LX}TzEofp@;$(mG-+qPj`{L6wgYBT;8*59; zq!0ULA38QVCU#aI!%oJdMv&C`R2W@9*yy)<`vg?4h2hsFi07#OYkdj~c##38vRl&) zgTg5R(gN-<0WfjJfxgwmfJB2p)W`r^2?*ZWodB#J7`cHV**+Pl*ktNy>o2xB-JK^b zw{}l0cD&dxH+~_t$%v`UT>9;NBXZkDNa=kJjDar~<1gED?RT+$FAYXdQ@fO{7pHwQ z8CNsBVK5hj41Ln~x;7u*neFaaDrLWpM+ma1P4ZA z?m^MP;H)p)uX3;&(^MS1ukVKXDsl$zMq9f#NgM3b4TV+~b@keQg_-7QCKD3u6oxkI z9js9dnFJdFnA_{X|ID3U{}%L4+PrsrFD!5D4TR?Pe`F95^D#m( zudc3KAdrD^c~E{(ii$+WL_c@ch-j?mv#rlSPe5r)v^5Xkpt1B|&+b$#8(2fqv6ace zny*saKE}l&0o+XIwvvi`8)Gwo*aIU-8+6qdZE&AbQ?t>tv9WOm$wSw{rm|l>jbQLX z#Wnt@4)lgd93;-H0`i5>6p7JIpibctq)K30$icg!To^B)4T__sQZFfg6<`z=b z1+|A?xOl($xlfBA{6G)V4djlkzB0^{hRb%FDB8jacsu;}JdN_~iTF1fX$8_+n zCpDiS)%os{)N`IYsX8gK?=t34JE=>kYT{| zQ0#7`?^a_(lE&&{and`L-73v_)Qg57k??gUL9cC2bJ zohV{t`zjHD6vXcc_xyRpK{f)Wh>R6Zy=b}BJFv@y`+S(06iA2}cGjZp%V4+CNJ$Tl zYys-V3J`BTefnI&!ZI=lMl(tZ5wYQDsHhmzHif$mMyHn+w+&uO-V^ zOsXz66h>9&+Jm{`0wr8-l%2KMc5jc8ykANb95^Plb==w-tEe~_Sl;r!5t%fq{2qCS zVJo=L+qP=|ncl*$hNQnILfmxWjl8;G>k4dl5h35Ne>@@YWyJI|41QJKAOFHKGN+kt zuDji_^j1N5%#t*{Fqf~3EL{QGXaPp5j&abU?bgVX62l^+z)y=yPb4Cz2wJ_FZJ{xX z9}d=c5O$$Y8-}GUoOpl_mg&vI64QZKzNz?JRQ`2!nz#O!`weZC(dzut(t>C+!upGY zpZyC&2KLZ!K@`I3@U*ks&$05dH#OdNU+DLA1z>~r&re$Iw+n<>zc2RaF{E0f0)fJJ zR2j{MZ$?AQpu=emjf?<$=cJ-DmBzXb1-3m>H@Z7K zzs@yGXRdEhXi)I&9v;o@yBPf#a?}k9V`?0FsG;TM!{W%mKu@ArUpFeB7M1JlK`Sf` zPHn`H4awp|A3J-+nvju>ZaVS5ll_C^gM-6Eh>cANJBx5~T3SNVcd}Rr^1wVytPdPc{w%0*((%9u6>L_UjIJ(9&=LyFOWZb? z2Sz3W?>kFI-7$rsb_dd<9P?UD5#2E5rx(!>a)qz2;=6urqnIm`+(5daPUfa_9edLw zBO}wm$7f{226_IL`}Hw>Byp<|DexRIh+OZlj@8{$y@mA81%a?c!Pd~^WY9EPnHpZ~ z)+p`$Aqd{TA=CJ!CkD$)RsHZPVP!^Bldl_S-tS$*6r*gk15%H+q@*@uw!fGkN9)R> z=xe(FcplX7vhIpt58`2!-5!gmyrV8l_Bmi9I}|sJPMeJgj{raGdyJm0fAGGQ@j8+z;n5b@7J7@9|Y}_eZug(KiL|zu! zpYQqGpN{N(pDMwZa+gxL#cT8LStq-ge_d}cFjPMuU(XWQ!f}j^%L5=S+8-NE8yJWf zlbT?$>hC|Q@&S;J&Xw=)c=$OPUw4b})>ldTh&f+SZU!vs@R`E&5@15Vf=46^iBPDe z76)afe!Ju5?C4ZN>rr%cv?~%K3#dBR;ugV9FKMeeiionnw?KGtywZ`cMpeAkEWS2p zq6wABZ#o@S*BpmlLgN{mEK{>upe2e{KL>-nX*rINtj({Z2k266MNWOD-5DGw)-0 z-Yr^$sh-Yr7L?d>8FWp{Ke2kr#Di?Wo)wHzbMyX zZ?8UnIH)h(wNNWPE8I_rFOK}Sa)s|YC(|1seXNq$A=t41hbrm&zoa%c(6cO#ke{y_sVjKV_38nq9fs2d#ZE7+B7k9&S zb7Lcywi~APE&9d48%B>VS2#*K^&(z7L$JaUb2&#jzlc;A{_j6L5+J5Zt$`0!2$7+{ zf>4XUg3M&)WoUM%@1FT}OVZWou#lFUd!>G><4NaK!|KD{u+d|`{R_Z79aZ{0*|*<5 zKJ8+jEVVg$dN;Pz)%^DUAo?KVbb{^C3a9XZ#^fY8%~8t|*!4ajmtRqS0038FrTAy?;5p_)s_6 zc{7k%lNrA4KhkVWp)wz|NVBuER#vc9ezt>Nw>oWWz^ol~PV65oy8k!ldEA!C0)kmY zpq_d>JK9_xotZHge)%Cu?Y}a1{aw21??J@I@3QIJ*M6AMAK2r=f`q*Y5_)s<&V%#u z_c@d@-w1`g?KwT~bz-QKQFSq~c&DSZ2!Iy{eL%!Hd%tnGHL!LH@Sp!Fi)3WHObwJ~ zf>8;pC|~oxeI>%xp|(qhjT#)1GvM*ULlP`WqgFP!nyeZXUko2^0n0I;z4kQ&QD8u- z1P*26V4D)W8nLl)v(nSQ;gLdxk=a$4@y^NKT)Wltk>#itxJ-Z<7b5)amzFm|gFP{1 z-Fpq(@7vEkkJ|M#6i37HNWC(}Xx=w^0C1}1Zt|=fx)KK%k&JNY19+I7O-W^CF*6&u zSKkv;kgaW3%#@hHuxFeiQr>pI#>E*n%yziAJVQObIzM%AcbGj3U&2+H_4kE$Kcse%b&mk>5go1`USpKenewMkXK|7NYM zbgVQOjehbUa3KDdmr;p{TbGGjaEUY*lW*4Lg!((7U813zRNsnu?2a>iu^pLGo8G)> z3J!(`24#Q95c3cVGxI-y=VaLB04mob%EJ@;N;VFIA6e}#pFVvty*R(V-l6w+5{g~% zJX>K9eQ8*Io_o1@dEA+Md5+`|^}gBfZgIEIpg8(m!OA{nl>UQ^n1l#m0j=$eSVb(c z0%uy9t?R7ktzfDpnUlZ{EjXdJwpOtRytFtwVH23lYF>5XX_BOhoBpxlp>k_%10 zQdBwWQWO|6nd)uK%wXJ2yLaYmQtGkdif8edheJkp1W_`CznWAHMJZ!U+sEN_iicRKMenw-LLL!1-~ZO!%olPh0r8S(?#>$>SA|@bNN$ z&(CmGh_9h09Le~zqZ`;|0p+Gyc4ci{eqBCtm5P$mTh%TUvIsOthsGn9OjUZd z0|?}27mU>&MdlA9LjWFc7vP&-T$xriGI;+1?AeJB$9aH!w0l%%Xm`?R?(EjxTC$+^ z&*02*_wXEPS6fSInqlS5X`iQ;rNr&rK9AtrjzF<=r;6|0^#$6x-VMCD^l-VLTj5u# zOp=EENs&|tV=EdbU zNS^!Dw{wsW6iLOY3r$VEAo3Yq9vz(#n4pK5CE|CtFZy&Y`V7E(Coi`*Mo*8Cv4$dE z9w*16Hd;3gnjoq-I+n|G-{WB9uI23d$=6d~vZ``rRO#PFl&l`zw}GD~)12yWgjlMO zNzGwC@d(b4Q2XPjiZ__&;SffeT)9spfyNHW3zC#jn+&%UWrtQXqGaKA@~o?h{@Xme}8{{ywX{n^LPFBU~s>@1(QHuwZ}&5T;eXj$}Rr zM}{v>k(8943WKEQ-8m-W`j7ZeV$eI2q%Yh(1EH~*Xq=a4m~z1S<^L|4G+q~5RTVy*lJ`*L@_=@qYdvixNj6+r~wZp zUwpmHdCJQZl%;MFgQcWpr2Ajx|NL1%FDVrSf9KI?Qb2i%OnOQc$`R21Z=VovZ+G*k zLR0p3EsN;1Vr-0fmh?5ZLi1ZAMm5G6&zC=YiDg}=Y^|nKpp)Y4T&pJGL(X>PS~s(u z55G`62!Lvx0nZ{Lp3#Yx3U?war#E&xctQaQW8|A6d@w{kkl#tb&{ZXh{tXkFzi`GO|}z*dLQ;rt9e#A$stK<}1;fZYE5jo}xn@A&?jV zOTInawtRUkHG0_vC*4w`=ixcZ)|=V97LXMZezUS_Xk?I{mD=iYwsAPpV{9*@ru5~V zw4#T91Axh=Ny8G-g#3#OgQl0(fijH~=Z@5ZHlD4igykPb#_o}-+Fij@vIU;WRT91^ zz#tB=c&r}i2J6r?`1p^**hQC6?7=s$T;JkGl2%5D$K3e8zzFLb85*Xf5`h-u{=fbG z<72B5=F#ye%$pgcqhd=AY^#vvHi4btAGXM8bKfM*Usp{lIM4YA2U{FSPQOaGDD zfQV)29N3FF-&{w7a>enA&*klYB&NvIxk4b$j*!Ypy5aIN0_0b-(>@JMcECqzXfO6cpK~K$;iOaA8ELr0n$>su{l=^r4exX zV`XOtNi~cs+5_;fwY9PNWDSA)Gdr>JLCe4}3eqtrktf;vYJL)}M^{sT2r0>bU{wO$ zKOR2bWS7y=>FV_I6l8fWFCC;f`J;i=6+)nd7#adl<^4T{KP@eOGW5ejka)bhVy+pG8*etT~hAp2ti!Yb5yH0sMAOr`6h8QP-wg+E=JYD<%T;ys3!E*vRf?qx~#N6@lNT=%XwF*L6O5YaB zwo^XND#SnDziRL2^x@&*$jBuCXWoM7>}}!*V5fBDc5QThb%yUXH^q?x3;i?=w8vZw+KTwH>CMRw7z+>-iyFEc0KbsUG6 z;=$tZ>YR08Tf5u7;thKt6?%~A=Rbbybu(4@yq(;BKj-%ZHcron+j=1C@!R!c=WJqS ztncr}66j_E`1a+Ns=b%;nloakBTgRj6)ME$_O0LIidU>r=h#b-CR|J zJbim=3Db+UJ^7y(tH{RPoJqQj%mH^{Gij_cw3fdO2E~Rkb$&k9T%MWlL#mD_DZI z6_>ZxmgiTL96mN3Zpn(a_Q}yC$=(VOr=$3z?twG?*w3f(hllZ$;w0XTUi?zvNQ8NU zeT0P#1f`Bkipa`=la-q%3rO7h^%^5D|8n9EXRvwx{7yc>Ejtdd(O8C&GzP+=5 za&l5W_bEezi+T((cVb_?l#(v(sbv(9bf!ll`gX#9%IA|@W&fvjDg6OH_dc2aKI4A( zy4gAPIrZdC^^WPEDW_saV7b&9sXvgT^JI*5Oqs%zMEhN$Y-Ydp5%$se!erA*TehmQ z0T|00k_!>n0^;K0j44&t>QLI=Cft_*Fzlf_Y>47ngWvE9A75P+-Fw?cZ;CQ$J+YtH zZUPd49KG@F)^(9B4El!q1S47k1B4$Fn$?*f?0;80qV~t&8it z_qFqs7xxC*bLIRv7FC?E6JX8l9mm(jqax(WQ^qOY2!gaiKVV}aO z;o>@XOH1v0k-#GQmbe%OOfUuW9<>I7^{0Z3kk^A(sFn)VbKr8j`^owy0~q4^oINvS z`Ci{y{!gbgPPrnyvIqs@PQ7LxOW9D&XeCf8MniXT{l%j}X!%Me@C51n;<`hOR)T1Z z5Q?+roQii!yy_It&cyvH&dP<93<;5%>Q4X7pP*-7f5FY7=jD}!WgvZ9o>=)iyQHn9 zwTSdm3E&fKW8+HE7?;zG0UyDMgUlGI(@R|YIj5Pf_}WaY7j&9grBaz%Joz35g= z>iSW=qS>E6TMzu6LIBR_&1Uj62;6gVb2V^HsjDYzaE;?h?6s@v85tOP6%4K9Szy&--14VYV57#Y4+) zW<-C^B_tstBgttI5b1FIxIT5Uv)xt+juY>EUsh$nzx%lih5y~fJxIgX=B(*9wT)zv z94feQr))CB2nq`S`8%hp0qlrqU-CVs%e0WoVND`&{k1+C{=NRpro4vP7oNf5SVS$n z0qHD*Ms~$=P1Pc?r70qA`ckoE+j-DdA?^C{}qCA$WM*i zeYb~i`X7d;Hj4EYIE#vKKnohje2sMZaO4sS%H;b`3RQVT2IWAgUiJKJ^@4XXw$CB^ zZk&Ad`qRgu$Z-+Ivab66UiL0NGS(i(4*y{}087AH#z)408TKW-bt!Wxyre(871Z{^ zyvirVJ_r_TQg1kMKn3D-%4tg?lZ6FVjlR$&Ux^U?mV!sO*J^FKC+1PZ#>P>LqQXuT zRrD1%13W@;XKY>Svm8>#ydkGawSu7cpw7TXOkg5QU4Us=BUz%lFAPM+ZC#&!{$xoBRH}in@>*Mhiifru0l)Lk2K?RR{vx!C$)p#F#gHvmq&% zz&lo~!JMZ1eu&2J%jqp|CR`Y+_CBzEKxD$hyP%QL5?~>iq!19z0E@D7Bt-BfeRUlu zl!iPQ;T(Pn`dWV0sS^}<=x-GZ2y zM(zXj{grc??h$?l9%?2!WCkB;_s`1iR)WO6Cr8~47bpw;^E0}}1}+7KzZ+UB8VbKr z3emC&|C#s;_YdJ97bz6_NrgrWCRLPWlLArpEvUqbiz^I?yS!{d ziUAf3&!+v4ju(5_wMQTZz2bQ`2VB6n7dg8sdBVSa4!6$M4rZU3g}(6D;d*;JyV}@T z_}aOa)i#zN_$oWwMJ8m4ebEgnlcq~iaB>YQEd}pU)a!*%@g!7PXaT9WcTy~aZoTzE z!ZlD`|4)^YR_9HXnGF_L@om^t-4Ks(ZQP- z&#_-xnq&8!En#?s-`aL@aij=0cDFB&8Q--*{@Urx%Tw0t^P0JtR6%zp)}RrnTbn00 zL?5<>TjS5OpOTRq|8m+r`RjuS$$jtjbalUc`up-EhJbzb@h(N>z4vR5b;8NN_wN?} zEw(rKc;STAISP!=EbJ|8NmYfBQFIC}1jqK4MV{qD0w`44$lZfu)C*L*`qNPa6o)Zn zP5VcOGq)Ms+^=siqU4wvYHMVuCU%SMIbSx7iqI{yec_6X9>*grWNJ|6x*3_?r1UO`Q zsj1n>@6lH*_4S?A<)uG=_^fR!u1VqqkUKf`_KGL1^MUHBHpjgXJ6sJZsYQ) zO{ScK|Ge5ajj9I;X}^3LH*kg{=focWt~;>JmrIHZklMc4T-Ha3bBNKof6s}}g? z@|&)Gl>VzfVbQa%pYQLs-@kp=MglQAzk6;` zZj=R)=^E)6Sc*daYv7-N>Fv%iN|q)q5>1b-7=MHWq6SGuf>*`LOU+DA%E-}iZQt^h zyAL}Ezi9_a#G#?`@_n5MDDxuoPy{f)L*yjIG;we`FY)JosNrrOobUe~P$3ub_I!P5 z`^6uRaqHm$cGs)GzWqTjyJySV_?6PO5Tw~tvlZfyuHhPLCH3rysIgjPT0~SrSJ9m51fM#hqICnIYsdlC8fkmcJM{efOQ$vZ zN9M6uL|D~hs81Z6?|ytMsRoJ{%=y8EvpPvivw}e=# z|Lh*>8yi^jgKGS!=}e{U|4J^8Khc_zQdN$cPPQDhI|vhBGUxRG3u@8Dmb=>oX+T;z z$2&7OGpCtecw%WP_Q73W-Bq`)mVEb5(Ftu}iG%+JMsF;VrcYGNst600Ao`^&Fd{gG zoB6D*2Euhq)OGjHE1cG-y=6SJ$%$bSG6WG{m;`7BT;wsp0z`C*(0HvwSOOEk!f0@y zluTf_+IcuMWsK!61Fi(2rU2A3f|;cFyBY!!y}Z7yvoo>e zD{3I*t=BG46^<}DH5*&&$jIo(d~(5QCs+uaC5U#J!YLGohNQf$%yx8ApsYfcG>am2 zY{>c*vDz~rLP-hU6LeS*QSfD_>>nhCliykoU`Vdc*e)4?(EUyei!-Au-BbN@+suy$ z5jswM2V(}M^Puv-1alJLWsNY<#XkB0_C;i2etLF#{@?Q7NeC$=BiF)!7Tg{2-Mc>l zL>naZiXQ{tXfm!#e?Y|WuY%c~t=h6Vjd@$pHaP>xjgU%-n z2_-2xCx2xSDD{^2P3=%V5q) zZNSaOF#-I}>qQ&LFcD6)tp?nmi~wDYC(5$1LmoNV$>}i}=@IBE`ldmD4Sxp%S)1y9 zngQraBQLej$ccXj5gkcE3~V(Q#O!tW`K#r_C4vbxnH7S=!ioWPL~j6MMU$B$S~BJJ z02kg@Y+0v6I3y4L4EP*u;yCi73xLkon(J#_OJyT!ENP zcTysCl=ybxcQ!Nh756o?vmk61^!E1Jqx>MJwykawSru;= zE5dR&5FgS>lqE=Kp;mXec?N*8PNJT}v8?eWHL6tmM9KDG~QP|G%sgi?*)Was_r z`xmi-Bu=?D`AjwrYO|rw0a>`6+3zd0`tHxVRfkv$EM4E351e z_K3&_xB{IhUpLKD0%3OW@!6_D5bo&sm=zuJcc2^<}gV@r|+>{*ovvfTHeZ( zDIF+;$4|zaZ{o*ugM!*mPHy1OUW=vf7m3P;qRuCi#Js~c^;n>u%()tM!Hn^oII(bzvc>#mRzIC4O)BbK=z|G|R`#v1q^731W=CAl%gc+AL!3pH zjgfg=DIWcNuHu`pk7DAInM50J1}bipbm??ebrk;VE$Pl_DD=)8i%)@Kf%EkR2694d zU&gr9b{#&-#pN24i}Phn^n{LPDz2F_B|S5Wk&(Q-nWC<2B6}w%*%_8joOU&2H?$Q> z86pj}fVJq`K#$z>1_5Ht&u75aqN^5-lRT+F$H@rE*y?ed0A>gzEO zyX#~-ch9}PzQc@kBK`?#?f(hez+~GGL}2wPV#WZ+>4ox&WTRuPn_lDwJE7 zWL^-+9l9O-HcQl>m%y>!=xQU6O@|4(M0bG$D*Hf$=Ixw zf6D25rNa>(H|li0kE3ZoYOT^tGy(zS^G5(AkT)B4m&R#rVaj;qtgz97PMZg$yy%k! zL3M&2t)w^vhzKDsFuUw5tPu$MdLN*K+66>}Sb13)`M7vGM|zA7Y48@Nt6#4cZ!vmI ziW~2ot34bo6wPeCwLg5e(zo@tl|Oi$SoINT^0L}5Dj~pw6-QJH4c((ml*CJhOoq~k z@~F{zpSF2uD00KccJVcH_LZ~@u(CO=Y%Ik4DE-a(ce47g?X~Zn%<5v!kVW#*$x-~! z4&gKlhp%^sOYW}UgcrG+zH^13QBHa?Wy~ZmT(m?mjM_FzVi7@e?OUPxw+pfd(1y_I z$v+Sx!t`gfC39|Q$B`*-t;LC4C47Xh2yPrBp!ZI?;ChkzL&a2*tpo(xX>A# z41ojNzz1t45y+hNaiWgy*{q{3mng|js%V;Q!SUYcElV@l5@dap`F=M|bLsQ6E3qrN zzjMqUrB-5LVYQtOsEs^7nwmWFvFsGgH9omW7%53PIXM;Z3B8k}iiyI6yKm)kkH!Cr zG!)(Ce2tvg+h4kko6dg&1rhMtN%@rb*Y6BZ^@W{6#Q$k)v5|hlxXtTwXSOlI`2E90 z7vLuR`|Wf*TpY8jV*mNGIddmx)0D99-dfPlXM`Onc*Xy4FSFYC+uw@6(N!jEp4U$% z@=;ScMV=!joo*f+4R(GoHOGPOS{WVf?K~6V61Wl}gD;W%Btrl>6zkex(DTKn>0wF5 z7@C-c#tGVOXP`)yLHa#u8{}nOu2qjE4mBTQ|4FWy5=V|ExV}EBoG3_=CfO|{5H_VF zNj)Mr<2%{NSOf*)2#)nP?(c%(`fB?6!HtuBVSU>WNCh(lvi0$M<`Hn6996|O(G&~Q ziL;Lyz(cu`xUFSjzgUqA(f*rWfs@=A9klCL;ei8(DlwE({6bbz9@bLb( zHM0d~Pf-UQ9~U>d0y-h1>gW`C@vttjGC&C>`~mszbrV(=$Cw=1)3a8KepJTI;}sT0 zyS0ytQ@BYbt z&!x;UTNI5V4Kf-!;?*s|-Q~~R6H@Dv5VU&&ofIf##z{N73_BeH51w;Zw;*PRPf}Fa zimwFCr%z)N6Mt5^`;(6QQIh)Uimk1733TT8_&`7VyPLbK8_)dw>`bREYqx%4Qapsn zK;-tCi$~=9ly50X}8p7XQN-8L%n!yE+?*NND$dnAMpu z{_TH#bF3hY=y@^Q^DFP)%TXf)0BZvY zBd-ruw(9EC&9cDt1ZdZC1L^uEScD{UNa^tqF4|Ud_V9P;==$keHC*4l!*OwO zK~WF|z>2unCJan}7nqRO-mwa68}Y)W#&=Io^$PFazLBA~QHN7#_}x%g(OT17@tgF{ z)=lf9Si5veTG7z>==kIoL{*Ckq#}E}d}|W;zZ}NA(eVv15>hv*Q^l>BZo&zJy?mFg z`h7ouAn6Y`U+Ka^7wg0}(j7w@1W8a6o4ooDFVqemn2hE%H^Ztc7>35=qY`4`lI268 zd~1Hh;DkKz=bqhBpuY(&&S@lIr=ixak)Ph`ei(;E#0W@EN!FM-aCJkTa@8v2ViV-z zqGJ*d9fKI&ZH9Qi3#7bn>4-P?eV+?KbY;b&h=1M(U7{shCn%+;zQRBGos_1sj*toz zdCMq9BGrE}=TB8t*y#>N5->})`6X7LO9bDMO*}X93_d9+3|AfyXJ#502ziG~-^N0} zqY&HYqTG1I7+trxx!Y4U)-f>G0wSDt>FQ(|sn8e+7_VFiL{+zQ7KMr}RUcH>;u0hK zu*+HA)4n4)2>AGsXobZMjTO)&AS|jlHm+qIzZ!wZx3(j|#?|)U%G1+JUyn=zD}|8v z-Jf-H8T5(MEJ>2ozabQwCTeKk(Eqsm#|u(v6SH02ZV3FTuCD&5slc@uEN?E*ko`{8 zR;@EcVQ1jFYh0Awl@T=|GB!G0Iy6enfsvy#FTx1M4&l?(#JQ}W1k9azaQdt}It#k; zMdz)Hi)CY=k=h_`^8IU#&}|2;E2J}b`v3>Cgrt6$wf{}v4zReKoYc(qFUbo(vNDa% z?pRc&;F$c3g8q4;%op$jDe%?vtNL0l!k=2j@lp2L!2-P}>2q zys!J0^A4-+Ue`~3BRcH4B3@U0Z9W($f7|`Ox|`HZUS3_@H@n79fE3fi6V}AJ>A<4?$etw-i6jGSZKv~%^R)4S$GuNDXVl5w z!S)CWdQ5x_0&HS>Mpncek3Oq=$ToD}__(}^8lyQ)*Nd-%4g&E|@1L`O@MKr0 zv9V)A+UdAlT?=O_b~CEkL!+ZlDtKA}T7)2@RWH;fLx~!rRst=@#K2TpRZ~+9qpQC> z1BjKzm5*huzd3Z~p#qhH>eRW_aqyg+)JzlGgBtFUo?rsgLSf;|M3OPf)I0?&`Z?4R z^CEDBWnO>rL9Sv)WwlZ1(_>0&AqPbNFc?2Y(y++qqDskTWf`Mt6_(&jSq~#SPo->e zCM~QniN1OvWW5qati0Cz;iffMu73xr9hMipJfvhp)r)2ZIzJAD$`;h>hh15{+x1-5xd-?ffS9@+vi6G?T{aYf$KZQM^Q14G_Y6PYH zF=_%5RY}p)M8t{dlJ;65GmH0deUKxj%1^dXADWtOAw~b*wOS)0`&fhH5LkEVoSxLT zL3nP)Mkyq@|AfRKU=%!^=Kg(tR(*bK{ngqkRPfT1U|2RLuc9Rx5fj|nOaZJwiG95&!b9ZoYGYBOwD||$ z59M5edM9VMZGrrakjP%ptMV2iVN$qgn3^q@lZQx~I(CG~oiz{OQ?nD`Pshvi@pmQ5 z);H9bsF$aQCJ;e?RfB@}emIlpF51LSPEij;w<;plixz~jPUc;D@?{-gEvD-mv79WV zY_Ba%sm2@XU7L`8xk6QnqM=T*sd_yf3xE$?XI1SFF}b1WhDg)x&>+vw0Y!r{9;s8)WT|CBHdgbJxftSR290(WPfC#WR0!2c-`L> zmSXa0nvg&-p>(UGd@1K@l1jT)vd>YK_~j#*)14CXryJnP@l!CI*T+s@; zrtQUz9wz+Q0l4NF#Ch4dIa$U6zg=DL2^$jpeCQ{?e*4i_U0;Ig=%C*qPsECTaeLj> z<)g!|;{f$}4?>326B!9?24ge0=~^>0v$Igp%#=pHEPyQ~?v*&`Rq3f@~JX_v7mz}Gdxw)Gi z5XT->KK?uFaRvem}81)O0ME2 zf=~(y5LgOU3*PU5iS2%Uh8-$zjtBM$o^;4FvbP`fy|tUAE2Y{~zsali_eskK!>zK3 zB1TEue7Y$uu(ks`=!a4+Bhk04AnZ!alM?Xr@b+KNV62U)lvF=HWxVz`i;tHvBTU1U z1y4WRT*cXrLAj|{E$s$)C@w&ZY$cmTcID&O`DqPEl{{^?Xn=^niEJ4t>c&M!$3`Mz z;K+4%tHJOYViWJ}Zg0Sfq}N^{&1p(yD^ad&bjllvXCqd$ zS-h~N(O3&h+~^OGC4f?QlbYm~BQ(K7a!f88+-uo#g>`fM$770MY_8#>^SZVMd7>0O z_7T+2GRT6G`r(EVdqlL{XbtYtX5ODayPwX`@R6arf9E}v#vmaf&Llpl7)EK*>x7%u zY+#V9%ZuPn`7G5;nJG~K4>1ud(AC$~7pgOK%32*7ih^qyoEOAcWDX z7z@nf(*5jDrJlismFNh(CZc0jM`I8O4Xvi93w6f~7OqQyzek%gX=sZ)kN*e*M zf8IATef<&ok2v9EUYr}4eEPZ?O*?abin@2!|?d=>V-`14fDFJ-Tj(F)p zn8dX2tjmArjY%0*hG+2czocnt@-{<99FP%`9#Iey9vvRU!A;Yi13ySS{B!d#+JuDt<4{4ZgM=B1_+Ju%*CBfN z!&uq=;>rrVs)eTwze#LCS5WTFPJc;%Ny%LNNzi&yl4(o91AKV@pJzY9ABe4);Qs4m zUWgoF&m@n6$yuOP&%z`edb+(K+enG6cG}xJlPyV?5(!JaINZNF33ZY44*lfqFHa=# zZ}sv<=v{9WQk9aVqC)Nr`RNTt@(>{5(k%lHWuIWaEpG-EH{zrW?c~o>PA3K3U$Hk# zoSs*L0lar+Cf4TTm`Us1T?{1x4P7C5S#wKO)3+v4`VN!^H|v#(UQe%V7HKB*t=6{^ zbonRwk|s8$hX(}MR0_jPWn~Wgq@;Nw&2H<%aY7g!-ZvYwBOs#kKH%kIHtY7^(^o{plFxj1AoUhv_hCrXVZLh<0!(hHwQ*)RWgxbsZVB5A|)Y3 zI0GpJ)bJOWXoL{#d`)7q5EDu)gmeup6lI>$%sF~^>AzKBtfXSU5;dJIyCi#LrGM<>}k?CL68 zs%Q|mmyTvqOUq7A&xWYT@FX_*-x>3 zdHw?(MguydA;xrf&}sK!os%<_>tm=SO>a+k4_HX_0Ym{O)(n(nV6#V zja_NTOh0+)nvC+}zI?o$fXNVXwK4VoY~?&5s^fxI@d+;tA{H^cGPyXnG_^W84UjIb zzNc45EUM2=JnK0^b#*PSc5ZHH%a;je>{A7OFpqQ*k4p#4PTpOc>cO?|kKS{yca9F>{6YgF@xj)OGi z0bMQ-t%GJroE6G`=zg#Go4Go|K}tEs10G%rd58)`r%q)! zEW?goMh1U5Y_r?Rs*#LvCa3Mq^)1>v2@P&fKv%D*{`^G?8!d*HQ!TAxe0Y3pf}Mel zi482cm1I@LrxLp8ZXMMSCsKOcn;M%J#MDhnw9#w)#bF^*X-Z^%MU4^j%_8?#m+atu zaecrG2_#@QZu7l-Sw4L|Q+a)g2zWaAdpOT-3?3a+sLn69?>pSjM>8~*!Ns0lC3|IM zbxE+^oAjg`93|dF;9Jwd{~~6NL3VbT0ryGyVnaGONayvrW5}o8d_4^oL>r%v^51kP ziBJvTd*YRUP~${eQIv)jb4JOB6vZ^E3sMlgD8>_QT85Xe7v z###o}p=k???&Ivt;1~uq#u&_q{FX16)TB5TzP`e?H(hB{HVrd!(SvoWQMxp#pb97T?Y^rB5HJ>;(X_*Fe|E>;Qf{LU-cA9}M^mPZ&XH}MV{P^Kv1AF~CFhB=+ ze+zytc>#`shwn%8H7e>22u3x3{{fBo(ZRvq0Y(=spEx17js#Iu{WDmk5qbWWFOH2t z#aQ=gup2B{Sb)(agU~@B8XD%@+%8w|o4ze_9FdWJwR7;V6VRuNP^bYvj&5-5@?NPl zvTJ?ykF&N7XCj!@dpGf&-*m^>_I%fljt29S{YxUwZtw0nI3teaX|T)rP=S2z17-dO ztS);Ldc>3a$UlGN|IiSouQ*;(Fp889&M z6C85eyf06_Onhkfdfe%2ECtVoH{A7WM8HGG>#gz2euTrncE9V5#miC^@^}7sYpd1F zyDB-WtDTR>cMm1w#4gt~`B0uNuAm+F?MHb<3j;gCpn5Xb`}b^2!n$jl$2+5vFAhjg z|8N)HW3y+*p&42sep28HdvbcvCBkN{-d8QlV2RI4$fJZ9xkz?FL0bq=*XzcP|3XsL zuyk_btXIRL#)Y+8gwBmCQ+J7gxrO?Cvb@Kx3RV?TcdMZN7>$&M6M&TW68 zN;TOHu6=iLQIr3XuNUzerAh?!8()N%A)UhLtC3G$@d1~LG?&cwuhao+v|OJh&@SU z!&}HX8MHT1a$uRD!CmlVZD|P|3XPhUT_qnoV5(9>vOK9>x@ddHpX`437}g#Im$Sct zLkhm6doz-StNG|P_(MyF*qPXByN~Zyj$Ae2zTo2RY(viDlQ!1a1y6@I)5_qn0i+s>EiO7L2=7ZGtSeJ(RY?I(>Cp{4xiHvU zdz&3z&Fwr4Cxu)--k`ek&ja8rIM)5}xW-68MMpm--=iQUCeDJqbOgMPwzmN*m10xGh7=OKTneo5|cpXfK3V~9}fo?NKPlSmhm+= zJ5K-dynqgy`YPZh9f22at#X9FD6`uh4sRFIU-Sola~^ybum z+kvl*1r8R=|4)}vQ_1_J08zHN2nOLhkKqs-H&{!ZGU;8 zc%68?e0}bCy^099dwB*6ti1O=4_B47j6C0$qbk%XTS_U zlvWhOUG!}K-7?H;ai8cwa}C9rlqCG&)MB6x>P3Yvv-{Wtksk)jdb4`Jndj3dW|RiF z`}wnfujd>zx{2%XMaxS<^?%!*?t;3g7>W)L4|jK&5fPE`70e3(UHcozs_vOmBk%as z6Q*|rzaz=aeA5)@aJbd$?Ck1lwlu{u>hA=#zkZbe^XF&8g~c9zN)|S~91T@%O->rHaGdt$5yR1?@ucT13!S+yu(;}BtCMZt9Lm8aJ9 zXW+};RM50Y3S7Q9o4T*T^e6eNEiIV|Ga$slB3~m92b&K?o|l#j-^)|m($rK{^$ntn z0fD&L>I;5$qo-#uD>gHgRmCh^kK7YbOdR_777l`6p+>Bgl97%X@gdl`Gpnv2LTvse z5Ld}FHLx7GX`Ai={JPo?_=Tqh%sLwU%`UHga+m&4CKvk6A;c^AXVK7DXF2f7$Hu~f zaN%w9E7(bmPEhC?e$89v4-5A**Ld97K_`9R>gx*{qJD>?ilfN>#y2~Lg;6cgCl&cO}t`|5yu94@Td|icI zhQy*>Inl|g@c&XNn3}Ym>O*sbd~5AV{6^Elosy!VfrH0s3T5b#&bn>w1M$aw=(n<| zx3D~n{0mV=cL!K}{(6>IbW_$Q1j-|(r942I@FLr@jvG=1VdR6VP>cuQMai#=Suovugw4u4Si-rwC< z^2^@lb$H(I{1SP(6nP!#0RQ!WefBst?toQ2+t>z|5kIfnxzfDsRpEMXUrV>^yYugE zk>6*(#~mMQl>V5HC(FztJ^5I{GCl&;k{Z=>ZdwLC3S}Yxqd-rcMHbeD8yA`@Lc!iX zis>Hrjwb0U=|Q(!$*$%y^1HROu-`Lm+265EZ!dAj`xj4JmZVU*UTns-z&%+t%zrVP zqHkU<$g`6eu@WFhq+b=AF2Lr)+WbC75ZhZ?_nGRC$)6!K&q~c2_1nm?}4ltxES z^X3=1A<%(MZv_Qc{!LG68tJFzr4&dbTpf*89aW(ky;YEhW(u`LGhXY_OaPz*NQ{ZDRt21)Le1n21k5mI>A3YdWrW16@)9ok}xEgR?WZ;4co8!w}yC+}5@ zCOhe;rrmPYiS|EMcnWW0AfaQ0g(<9a?Rzgy^M)0teRl(C%xx*S%vhSE6s2C)lu%DQ z-Xy7>XROjtH^6XCG5#+TxxCWmV|UuVcrT$a0yL1N_bn5xFDOCvqIpA0)(%OWC2Xq5gO2 zhqaZ{^$aM+`JcY@Sl6!p4tTxUzTB-{^}CG-fWCRf_~-vP_QSZt>-u7QM5oqR*ym#J zWOtq|2Pn4n#B}ULA(gEH^+*ttPsa;W-B))eGWK%q0JSXy!>=G70_&eU-oo>dhne9< z^$@9~pUz4W88;yRg@!9i5j<{_AHXD)y$vV1cQSUpS(N*OK=_#LMXcBg}@ zMHdJpQH=CMc3u|w;o-s2!3ha51qH?55boDTm&e_Lxmp&Ap7_^$JzM1U+J) zVxZj|+O6Jp{>TdaGFk8!1_q|>_RIIT!F|m*iC$+RTx0j>Cei{DqN-jbXzJt$Dvo^RR zP}G)|^+S{aJ0cq7UAB;ESDqO6-`=e-Z*#7T`5HT@V6aoD=rpGky(8Ogi4FL9`M8Pb z7mP<1kqcYE$>iq#`J>;!TJLCATD8j;2WW_AaM7!Ahc`F^f+g1LI);ev<@IB2$IH&M z!3-1_RIV>;+gn@?ABv|*4s{<@a&;ez6y}zO;;N4|=;PVRzWxoVuwJAFuqgNe9d^9 zB;M$;jvOqNbV1{${6S7h;r1koXf!1z0-fxx4vqsAlK&mV-F{bbs8r4Z30QiefvBDy z(s-k#^(WBk(9oFlV8u&lp+YFo5=|7DpH06Y(T3)sON_EmXqkMQ`{6_G`=?GLK@~yD zs&ZR5eQztE8`Q^6^`X`DHQH8XsNW|T)&)XVK^CyFJdiBKd_VlA@>P)#tL)|oV{UD@ z_gj;qFwCIh#2{?w*OU;eDF~b+I<&1v4WC9%c3EN{&=^xw1J)I86l3{EQ2AWih+gVX zPp6|C6aD?&^W{q_Y$YJjK!pY$A`WwTbr$MrVm!^4AL@vke>b}4*^$Q%cqI#K*Mxqpyp zebhnKQ*_CASJclwa}w*?mEVtR>y0|65Xf)8=N&-SIt3>|pl1O&L$BMD>q?#4b(h+_ zckQqD*USVHb~%Q|Mg~GoW_XjgOG^jmc%5s@%k(<&$V@uYZ}dRo6WDwjy(%6>TxbC0%e1@U?&wlRm*7sGjmSmU@qF?1 zf)bysk+P-_-&_Yoj75zAC{7f1?v%oa$KOm9C`3!&OaBe>cTncCt-)5a`hbY|pO8=o zB4n+1Zt>DOsMGjvt9$Wy42M}E0^jOZSxHgJtnw9rj*hygCf~@MIh8gmSCPJJ33z>a z0u23ba2p&*4|MHT#ihsoOdG z;qd6-K%%RoD{1l_aCx?9@V)2#X^o43a&zG7|KPKxP&qOZjpFPC&0~}kB+8(XWe~`f z$au~MqTjx?>+riI{sooW;d{CB-v<>I zg0PS4=}uZqUbe`0FLi$SmgewHp~K37cruatpk&Cv7xW{tV~0vckhxPx9gyv#3i3B} z;HT>eS8lAYZ*HQ@1RRA7V!$rT0w1FJb>FFeKi!o+wTM&rTQtPAH43E%q`yh&v#Qsv zQ}=CY_b+qDChXjO+$8Trn2?|ss?2kWn4jkE4e?FJ8%sB}M!1J?KyYql)|Q^!0y`8Y zQf)rk+e=YpWPMFyVbJD5u=X&i629$Ko;0dJ z@RM&~7Nt57(h}9v{Kv`>Dxt)oT7Y(%6z3~H!?5@Ppp`at9 zk{DCvg~{bc0v~E|jz8_g+Wwtg)ztZrit>enR?hk+D>+=3@~u=(hK{Cw`1>@sxXx~$ zi2j?CX{f+B4eRmjw>~FNVG3W^{hVJ$=N_C)?jHf|(YnOi%BtWGg;0A#EByWT%6;Q9 zc)7Cz=pY*#xnM&q4CIiWk59$kp}Vp%52y>Cm(pT(`R38bl;W>EcxKaKrp7?*d}4OT z#u;Vgz(DYq&m#hSL`1<^0_6N3H+)zCX@0-JZz-PwziA)(+oKcvPZgC+?2Lb`N=p4W zB*h&X=W9 zKQcD*g?{bQ&(AG+P1yK7`9(A}kfNDwpEL0ioA*mchTetxz(5?G+#3*fr0>g1AI;Gu zj2K-m=i~xPEqA~0yPl9|tp<3yJ#JVV3wzz4WSzD@pB&y|f)G{r{I!Oyjwh%Ukk2_YRG{@cB9lOFptrmLd*^RqdMfLoVVOi{M4J$sh!_HW z=l_9CQHUgy_iwnBr5I0`cY=($_XB*Zw9C7;1d4YBUpvxRNBYnXM5b3Kv1CDzGXku} z39v*119x`^Fc7ijXbKi!d&T|lHXVWrtn*RKabO|fvQ9E129aI^)3&|kM=>g_m! z3F+<*r9nWtK|or%yOEUc2I+1jq(r*AyQCYw`~CREakzlxd98D(0Gp1Ju=1jA+I(`H|Ce-kNjs8QJ11cL>dcV6q*%IhHu zO;9E7-SAB2_R&rhMLm>ffI2F4r66X=K7g+^8$jP1q;_u*W~q3QWOe0K9T_^pe@mk; z6|x<0fnBQq#*E zZ}UHq7IhB4P^r~auR`$G%=;=z!;9Y%)`W)>`{Q3gCcJuld^}bVdvcQ9q1bF?HQ4<$ z$c=aIO~i-Ge?X_r?<;(hAi&2a2882CqgYxODh$M19Ysa-B{nHrYp_N0?b9rXU%f{9 zJmbj!k(5}S+l86g_E#rH4vzqZ7$I(u(9qj1aP50?yS*||5rL5L$@wxTr>3Q(rlqCC zgVB%q*V*Y=BO)v|TSibKCeQroXn>j88oDhE3~UgVYZL~wSgAqt4fb11`1OBTN!;)K z_{T~T`AZHz>AS#mI^SHQyn@7}s%Yq~0_{@B#m?;_e)L4x?c&%)__60kA2d6k9H((t zX0C6oVh2LOq1^2r3!^JO1fZb6y7727X*Zg=valooc5ElN{eg*z*v-R#&wtkM_Sdf$ zYT6>VT;JqsX-tAmTfv#bl8~g77%FnmuYcx4d@ogKLR5&om@*6phkja>k@I|i+l`9; zaeNekoDzL|GwAJeMJ{$R%GiEx<$)}s_+W?^q75S*(M5KTyrjn|(Uo9AY0wp~3sx+KUnc6P4g z;>s~_Q!&<6Q!|xR^RlFOhpVfv=a`xK0SloOqY!?vEc9cD84=zGMCnPy8h$ zqyuRXeDt;t*28QD9?5f*a9%YwSmC3+yel&OiXvNjkP0DF!^sU0`>DXo%JrU)@TZRk zPxwGcL;!5tvaZJK)Sx@tZ8!sbQhQAee!DhUs&OO>&?f3esM;VoPevRe(k1Jfh6v9> z$u3^5;QvwXkwq*uS3$P_m9N#*Yo<~Qb6{3JKC-gxB=LQn|739>r>iLH{N;0EVRnAm z&z2m}Tm`F3@BT`v?`8zt{B+^be${(jF9pe}3%7&*&w54Xj76P(q`b}lp6cKjh*dA8 zkiqM4vav0TKbjSgU+ea5bE~fp&p+52TiqM<*q-=Ex z^m(1k=XU3bf9b{N>}WoohEIE~ADv9l^YU_j5|EpgI}`^^tGkr%n*lskZBUEN@6p28vy!>L_4jP;9M&oPna#BAJ*TX; z>h#!5tB0r6x38Xn;aQZ2y5|GTxW=;V2hh*z(;N*AfKlw|?BvwIH4U8axI5xMM@8eg z|9;be!-hZya;ct4`B&CYXnI0F)=OGCI~HLhf}jrtj`NQ}mvt@|LatAsFQ%cMYgP?! zcXK6Fi~IPy_|f_X&{-Pb5Rh(#PDY{{R3}C=`cCS`*r_$x=Ja3&5C=7R2_0b-M5jZk z(!G@W=yRS2H#Ronl^RL){+S5Bg&z2Td&c#vFT3V-Zb1Mqj0%92%eqQ}<1x(ivb(9} z!;G{8qmw&Z=I0T9FSGS^4UI0&&M{tM^zh~^37C&C_&w%%S{ zI-2N_c|i7^8O)+0N=xbcdwY9OK8lkwlqwmrOc8R(pX2|#(?M?_nfCukZqUQrMy;u# z5yNVTA#IXdGOqY8adq<-p}UlX?5m+3ZY7*I1+}u6!NK8@6mL5uTV=y|7zEzqC6I0y zQS|h7lh>)XS~JA>YGy%a^Kx1*nb2hz9-918?v6e5g^V4(oGXV4n?Es;8|O5|IO?8_B^%+ zh&=+H1dLGhkzLe!?~sHXbL5}RgV^)`ElA`<)yG&KSr+6VkGEPEtDFop<)R@?GH4H z#V{ww#6(3DNeFycpPMaG-TUXOm62IKIMlP!5xx+-voizQ0cQFLm!M-v$QE_YL6W_` zob{<~8|SGD_kDQTFG??qTKo^eK=?)@=JSU6BW!m!G;6!u>~OmB^w4PQ?YG{G+ zLb4~kAUMg+(urpe%g&bY1*KX2Mx>CkiiKGt^0`ZFAlC00=7<1H%}=CACcj6Nipe;R$*%-AM7*xoBmpu8QU*yy71Qh-R1&XM z>G4hiixH9XVfC36nH9Mk;xkZ(!>t+ulu|Nzm8219-;(axXJyYMPB-4Xj*@347IwOu zd7@!n^#KRG)wYn07d$;dpX;shyb%2r1Xb_NnT!WuENpdnxE?;t(rb3bQ-mn&b3kTi zqR9Bei6FAF2>92d3a9(FrHs>sMO1Xgl;jSt5YD~E*q6bK^JxI?f`mWc$RIc}V|@=1 zK6(4Mqw~f2*~Yh6g>yFneSOj?9M{oN{6$wrN5bm+*2~MQ@A7iOa;JpJ7;B`3N{o!_ zY{~znm87Y{ad8RSzjIE<8JSwk*NTdqGJ-c|Cl*{(r0@V_hdxd2v}#(&l0-oE?yOAHD&E zJ%RMok-@WPUrPMacF-wM3g+-Q=&JU>!{-L zFN3wWg}gYsol3@>hrAmSUt6h4+=g-fI>nLk`aKeyr(aeQN*a>6Gfl?*Q#cDtZQb_m zt1#oSEG9-qPSl|2^(2Jr2ubu$*&lH*v5P)_j8v!HguaJiQ|b;^HZ#dL+uqs5Pxzre z1D&%vHSb3)N(D)rN6)pVX80hGE~=VY3&=(8%w{a#(^{Sn`gt!H&=X&a5|XHB16Bo> zv-9sD_U3wdJ08G%vf6w#4``GXt4(KgTvxiy?(i}X1rh4Dp4aocjW!UNCikmJpgelI zZ_bo2y4dv42m|iLLVf8hIkRqaAVq;?KiV;ne%~CN!sL%nyoL~P!)Uc21k+rfq^0mz z*@2|z>FwO@@7t}F{gVCp`TcekkD^^XJbZK#o#c#6g8fsQ5gr4cRbc5P$NM}S@_Aa5WsG!*E%RjT6u!{&Q_ANTR6`T7 zs_gk@yQdtAzP`ReWgcXBy*%YHKGo17!8v5#Pc!4OhFGjPoPL!_{4Ff}^P3IViYGVT zWriOiO#5rUoi|?r2l&>HDX2AZnqZyx^W>-#o5-r?11cJ{%>x|zKq{PcsWsx=%Ow4* zt(W)1NrpD0xl*sg^ZD;J*yQ?l`oaLUX~M&-NVqE#f8vZpSvc8#dwJc$p+X?Tguj@3W)f}6i8iNo zDZpuoQiWZGo#IW}b4i0-gTfKfz^}BTkfg>+VY|2ibQ%?Dx_wQzUQ?jOrfQKRxrmJ0 z2H&qvP53+SUO912t2qr@lL)rA0}O}mF{2Z%%1|o3af2e|vm`%>C zosmu(jfM|^3_ZsuK_Ts##DxI?jNc!Ja)L#bNlNzi zz6*kPgP)_+Se<%ZTvuLNiee`wD{HnocKg?_hyK4k+vnT;6M;e|H0?NZaX{f+I2q{`)vfXmH=tF$aH=L?X323P@)7ZhIeqZs>sa9P%>|G4n3mxn`2eMBmp>Kgfvz{#)E#5lM{qetKx~^ zRgB0Xyb2h}Ud)yz`1&_BMVwRwvp(ZDr;AK-GB)Gh^@vbc+-UMh>s^Y; z9|;)N?Av>Q{`adaUS@|^k-pR zPQ8bLk+a3-#IQ%SUK_abEuMBf?4`8BF67$=? zLXGYA8(V-bt58;60m}QxbcNiHZV%35d+*vkf?u_ymV)9@6)a^&SX0Py4#g+Na^Iae zmnnQlAIM-`ur~MNPqtQHt;{<~JNvYBX;gJB zKd5sjHfB~__bp7od;V z(**^Vb>^cQ8XD%Hx0|OOJw1URjqki6kULC>d=&0S_-c6i#@F2(<^XwdE@A_TqT7UqW7R<{+I z7lG97^dzKwpcMjV#b*=rL+FDq_a+(VZkq8{BFVId*{xfYJ%*`KUbtWK9IYQ}KRK zlN1}}{r3?Odh)_{#^E?CXrn;?a8F1y!iy&t``)f->zvT90< z(7==+_(4ya-O*?c5HR{#PPv%D9F_>1FE9VX0-=glSzIsu#J49>s_h|Z?)te}UYp!dn+ zL&z&WqEZ=-gM0}$)j$aX+O-zG`ANfe*tmBmM_QH24^ogs>mWj^?>e^H zcjWutXJ=G9hT$s(``gyW$V!GPZcKRUPq@Er*|B3}&vfrHV4L56^SaAfSFYh{reNho zn)mo@Bdw_^Y5I<(`U~v?2+}FN%r0tiTz9nITh3O$Q8eTV*p52wt<6>+Hr-;ub9 zYO1phj@RhX@{y>h=+{nl9ICju=IoPk3F8|W9nq~Q2402nCwE;W>8nx5Yh*piCdXUr z%rKB_iJ`pTaJ>i!Syf{Yzsg1gv}UNp*{2iT2fR+Sw$rynLsuy1l3fsIi=)%(;Jv3QsV4uGzK$+hl&vf z-FcTU^X!_CLEZEe2AZW*2d5n#{@P?TM`ZZ5r)V09%PZ8^pk;uAZ@F(FvCEgkK$Kj2 zVXl_9qC(G3{K8d07>ZVa4Ewb9t+gtH*m|61I?B-4)KruL2qBxl$HJJg zhMh5BfP)L+ukrEP27P3d;_&+l8^Gt_|5azdzJsr*|H}gyuU5UDu3EW)f#K<3yyqbc z+*!L*%7^1=X1EnI1U*jvmJCmtjW<{tn_53@?SMtJ`wIkW*&oeJCiog+;96DG-tm)4 zJtK}h8ek+bZ{3<}h^@=3d#w9y4ffv;KKMG*hIhLN~W&D@q+d_JICRK#M%ik%G-#>Wc|-kP&KC=S*T$KO2J?*W}FS z-IR|o=Zb{}i*VC_{veaW5=`SlAqdf^cQ8JpA2n1#MPZwm*{9fqjPhZ627d_@ld_5i zVCX8W=pcoNh+6|+wwjZgnwp@=%E-v|7jpBfY15!$xH1r09v=V7!JC?X^q1Hd2HtIc zFbo{d8on3Y*_IBZ#Oz1SHSPcB8b>DA3!S(bEU}nhc+`EDpymW{*a3MSMMYKSj`iH1 z@wZLQs6cC%!LLf9{&CVdf+{vkWC3QA+AK_~g_In{s=7@GWvKX|-V!uHnzFn5cP_bK zbW%}K8WGNWblXgFL@{De>4+nuYE6G|?Sx9=jvJOCj8P1@@ZL<%f-vjL}nJ&+{!Hp@Cwjr|VX-4zK8jca?g-T%Qrq z>A{+F^*BGdNHdcd4XmK^|0QkM#)PXp>|8+pc3|!jq_Lh*LeK#FYgj=+VR)^-*5LvH z-8)1nEK%>=<7&y3ENkp4-+d_(8FzSV!tHl)wUL0 zNv>2JFMr{6(o$8QV`R({W)j@t&;QN$o)TRUmK`}@e`kM}IXqHvQVjX;=qLhW zOt29?D{VyI&BevpnaH{iDOre+>$4wBM`d&=ip>MhoCXFG6~&-c5dqYQAT2KY2m(Qr zBDq^S-#LjLyeqh>ojn!yxp-clErz|kp2ijkYxOu>2&yeowB9IN1)>Z!xu25=1X9yD zGplH2WmQI^&*!;ydk}VYwK?=5ikJ@(VgL!Mlf3}NAqmyWaR#KbLjgTTa~j?6pHZz0 z_K7gc_U7Q%2At0>&n~vRYY?%5Lu5f6V0RBCl^Aq2`f&YZj0(IaFAavg!84?35moCs11vrpT5uD92`>)&z(-;0Hx{gES7q zrFS`8MJA#Z9u;pXT)XkJ$*6SWW>C#N7K zwzrunYfILoG7_!e)ADm#w6#WxMOd|A&f8*lBIFnJ;T17|f8_$f_kU-5=4UiMXlnWH zsF~^^7;xD@q1=GqB>n`c5!Y;d0u&Qbzw~#4>#}o zsoBZt!39-C>{c&H$SCw?cY9rmWC#6yjdyC-A4c+=e9N%h-4XC)Li=1O#gkZ35>9#Y zt;P|lC9*6RnOxCJh2Dz4s{~V#Svb^pZSTj?l7L83!S*zdua=I^r%ykU65ug#Y&tI^ zBdyZK2miQnQzE`pG&MD`;6D#7)hzVQT%SCLnOZ`io_AL{DoGVODJjj47CXST(jQGK zlD6k34g$pp0uOO*O>!WP)e}}H)HlZ%DOp`f zC!C3n?(KVO>bKMbvTyAjuzm9R82%1C8D=!y7y(@H2Gu#y3{3FIk3>t!{R}COi;phe|*rWl>dPb83XYW4(6M8oL0W} z=%L{eA&eY+?Z^kwowOl{ zovOxEw$`?PZ_bGdW+OMpBuqfi_4T~%j?!frO2&f{**OzwM}Hd85{;k&Jp*8>}K%)huu!1@b*(#yri2Sh06=5FWg z^wrHiJoq!!;qIOIZ3(jsjIm`967B5+VS7|D3h|#^O)cBRXO$lXc`7t1augRzbT~p1 zkO@a+jr_=FYAgm7QI4xb$X{k^iJnX^tP}|YFx44{Fh&Q&4}9;>5~%upH;$=>h{pqg z%%Nf8un5tI*S4E8ff(I%A82)gdwX@Ew03uP8}s-3PP*{?Fbiv~r-J2$4`H$ITUw?f z&|~>^6XYkq%hR7#v-&Kv`s~dd&0XQ+!Xz*Wx>=x@Afw83bR_`801Q zdt2{0)K630^cd^lCzQ*wCkEtx4 zf_&ub*RL!g!k2}_}vqgROdkTs(iGJ zu*t2mH~c;4?w$w9Ab&+K9N!{+oN`R>Q;A7ZSNb%~#?e^QP+cvBgv3rs2`eb*bws4D zs`{yq+RzP1othSObbOn?F?u}%Z%cHnG~gf~M}zwYieW^ydqsUdUPUHCkg15U5+S$n z%7VmCF!?51N;azfV^e=dR`B?1GIWTKk3qnGxs9NPvEzAfi4cM>h`6B4 z)WmN>Wkg}*-_F6#P8i$No1k9PZCtg4goKM7wT&DPH8&&)3kzvw%>0MAn)8Xcjg2@X zgO>u_i=Bj|q!C71S_X!aVhi)*1ELh2j*|#${S)3mg?xNwSePa@hig!Q&>xk>b`s1lG|oEx!oSr$&ZKP}d|)G!Sixb|G99+O1!X4+>P` zUw@uhoSdDUT%KH9M)d)YVe}|D1x9egA~-ocJU;0Db#Qt}MnFnLLL%vNQJvFqa(9K> z%X`+fQgQwH%RS-ya5k*&Ci3Q{CP)Rg+ij49M6U$=t*hbp+|oBR_((i{aAnFI0-FU& z(DzET5-@)8DD|FAZ%70lIfMirHuJ{eBqV%c4K@kBpw(UF|C{i)O~fzMvt`d=7)-$CpIBhG(R7(54ynRl0hh}mqAbiae@(m77ZD|R|@`az1dAC2| z`dWk%lfW7hqc}Hbrw+|VZw>U#_Vpzf{@yqGVMAi0a|q!fsJMxTgeUn2ND`*|*SykF znd4trwUd#W|KhWVA90jKV|wW?C?Qk34NH5d;S(`FpSCJ)t}GXJ<6Dy*P*q zsR-mWyErfs#^4EenzNp>ep*fKRzpn>^gc)F-kK(;VI*v8yrHEpEiRUz?{G8im2}um zRGs0fXCNTZZZcXq2-QcTIlH{nWSn~St*_ZS<4DEeSAS>{<)n-ZEN++Vf&|O3P`ya)` z9^0x?@8AQ2f+V4|ET0hAQSNi?4a*fpK4MfdQ!pA@Jr%|AXlQEMhlh4bQaE7q`gFK? zCvva7P$5zYL0Nfm8O2dN%(%1GLgxaveh1z*?foOSB{piT;$WAmRA)rxH03q1W8(=Z zs3<9k@_-rham8GJWguBHqqwIO6Y!gcmYOcF_^0Li+B#Wmy2>YZGUeO8V|}n@ZViCT zDf-ELz1!2mbm?q`R)_2OhUDJ(^5l56fv7sV!8YCHW6FQ1HwpRU9Z*-(ky92;H{Q=Ij&Ss``~6#Xb`hXqh)zB$j8m0gwm zqbb7&U0rcqr{1=3x9tn^?b(^x*;%#G zfJ=QXuF9I48p3B?Yg7ZsZEMTUb>?``&}ZAFmZzagbW%Z9)RM=EzkfmLGsq4j+aK*! zV^5j^QwX24-RTM}0y+slr`PlO(J_GV3VPbzaFIe;zP?KO!lXbZ>}h^_Qt527*yeUo zD4)hvrq_YP+6iW^?%oJIu?~bx;n#OQ;~S>*)fsN{xq$w;K3-jobjfL&oGK?D2~5rn zQ|fr8?}9w|wNf^klFI5hbXETqR5*Vf z^&gqwwWG^l+cG+4AoeC?61>?u+&8hbD61?jEia^{{4*35vXUiQWq*Mj8oHTMT$LS@ z%%iIy-#@T4f&^o#0vaT&t*oudS<_OJb3=dRR5!odfLe3ns+qnsHGKzo4w`h*nBJtF zk#e1Mb36dngEYf~pCZ?XX9Nc;0YlFYMx!36$fsAuzv}V{Mo3D{%@5xIWs{$mpLbyq zW`>2kv8qAR__L##!z=Q&ZEOs}Hz*L_x5zQEu_-DVIyyS4G4ZjnU}r@z&n||mxA_LH zRmR4fo155i0FtNj32W16)0me@wuP5`DLKClOe=<&z0aEguA&Zuo!|{G#B{J06}$p0wk_LCZdLgz0uk60!dW% zY~tK4dG7Gw>-*BL2ZY+G2S2OcW|tA$iFz43s93{4qCk+;aJO-%>rsd0uK>MPjZ>ba zT|8d)v-Mn!*KU#rItj1$JwqPq-NfG@pa=jq_14}QcF_n-f0mHF`Kl;64b5nJN{8#! zPWyiVDo@wbnWG~HUteH4(9Pg=*|?2;T0L5+_Zr$^)NVYUYq1|D{CJLn&m@u4l`w?= z9X-0Muiox#LlVTvG+%oAoaogVba~)?nu&GcFfbUjcv#uy7C){yr?=9mAZ zrI80yD&qOG&K=S_0dFa@~^>d73{B{*_vz>aN*^U+R?Kc^hA)l8X5<$DqlB7^C<6ysm#{21gI(xOR=- z>o#0$jZSBmSLk3H|1K*R-cQ;&WIkNLy)p3MO1QTF-v znZHw8zdr(2?xE+8;R6W9m@o%Ge9n)5(pQ-sn_F6$=jY%Gx)~IUl-e4m4?~Xxz{cMnPW1fS8Ztv^~Fcx!($thb~ntAy7=NISZ=J}g> z<~21nQ`3@@Q&V9ns%p8WKTL{na&o?N<8^c6<)u?5#HEGgA%;4WnNave4D=34QdLzu zU?B1^`>pt;o9HbiZg2ZWkDG4c`~YD>r|*BQ(+Rko@Cv`+;ok>+qcOpFi5z3^=hhj`g5`H)ZZYMjD@-nxf8Al#8tKmE?S4 z;paqm+uy0CJq%j}S!~$s?)Ty6Y>t@T6Et<5FW(I|)^^shF$#tThq{)jX(;L6QFqD~ ze7YsqMcU**5l#r{rYDayw)`e@upqT(U}j?Vb#rSS1wx(&nedR5RCCg0G`U)6xlc?4 zcFAxzQ`ahRJF2ekXvu|{5JqN%iWJ*gSX+p^w8KA9#)G%-gV969vi|A3%idhdK06|W zNw3541cw~*;}u_k?%-rm6p4^0PG{#lyBV`yO8e8^VEhO4la*#C1n<@KjCSW^Wb$C~ zhnu5iFq>T;^E-RiTRz|)LZA%#Xh`1E2Wq8>%$dNxQ3vN-UqG*3xmsm6E z%Tq8a(X6e;FYo08(+KLm;8(4wmVZ!cTj=J9|uUcn(4XVH_Uu*6tTG3!ASduc^== zz7>Vx#Q8qb(k+23T1_YsVaT7n3BMwc_WwDf%doADgEv*Jb3`3J(t$Mw6lY+l4WY(k z)~>giY|z!ux!;MhUgWCOZZQ9f)%^T>>o<_V0B+d+9J8U-8CEc&Cp{A;?rlz6Rp{lXx3_?Ouhx|$PlLWkS3kzAw zfTUQ0j}?^40eenUbDn1|rMf>UD5DykWpkb47cCb8t8YiEC=F8hVmlNm+9WVeT%s~TSLBy4}CxMMHPa4e!h#BwBGbt`mHnE#zz3W zTGugYN3sVrB|U|PFZW-=<2bsReU22_k~MhU%)5=^9Qm9f*~r;J?WK)Au8wl5CO~BS z>a1rdy`O#nWZj)ta(ZgG|Dnjk#tr>WTyH2K5H#BNoewFnkS|R6Yci7bgDv7QDP?#_3(-5nQ?ZOhHu|)&>}+>hv?xe&@r-Gf|X$)Bl`Lv zbq{^~g@pm}jEwwM*w6rgN(~)Q^Pb1VzTm={>yGN62=%h%CezuKc8?n}p1%a*Ex^GH z1{6?AmC5II{`$)!F#2Z-dK~;7RGBnm)@iakJFh?FJ{1B8!<8owmlNS8A0muSa4R({ zR3zrD!r%6F_6aH!(`R!}o~h7n|Azb6Z1Z%0OaHk{r`ese1=+jW;_$lsb%@{aV%02| z(T0Hvt;5EPOjX!iSVm4M#5Oj(prMEo)ZQx@XlHj5pbblp4|HE541rj`jq3D%5tuo6 zU(!wrqmAO5cT}_tROIBLwUACSB;q5hbgJJ-|4s*VPNkoGdS8@T9CFGd^2_2H!V(yl zx}odUpdiTp3~5j#000L3VIP-{3}3i7#W&5wy+|0HB(1g*f8gNvm1q4KlD%)HhQ&Vg z=p_@LSX;yV0cuQ)HaD4=Fw%lg1`SaZzJwI=6)iy9o z94D_XEQF7w?By=cE&21M;a>baAS6uPaRJDrD;MVERaJFuH7;&pev%4`24yW{RJAt* zKk}1Vw&TZS?voZQlQnrm%~w&@^pcrMvwvEfe>wDrbPghsrl;%b=qwBBk{lf!`93Vp z&+!^)7>f>eim1zq!+!AE+V6gBi+sX$!?UWN!~V??a`&P5rD7N#0(lbx`}^JAgrgNy zNeolOT2~Mj8-;;2nIKIoxhJnA<(-x)NM>ry^YOGkzy(V6_V@O&K}6i$KZ9afa^FW! zfoB8;-(xK`PPIK`CALcBFil?1pR~;E@80sU{hpl$J?OfABcpe`M<3*@;1t;8Kg!7{ z{6DIXzwM(d;0e=1@Eu*6Za(IDh<|GYg#=iDG_&ccu+<@6#2@jzMf@#R?6YC z#^qyMRvLRZvwudY18o}zrm{Wjz_W;*IilR4YvK0{S{S>mbC``F9BO|o*VlqyfMn>yn z-JW>a#EO-st06B0`<2tR_4uOEj8+bZyFb$@5xZkCTaV2SMc|(Rp;!RMuXdLST;H3y zJT`YSS^?Lx)#YX+0O7_~bg9j2^Us~ihnwU1Mzd3H4{&_(F*u#&Z?s)(v!4vUDxDGQ zTdjF>{sg2i?y}V;`@;tCyf~TbfX8}C%+Nns=m4mWWANu%wN~G%iY&d2C8hP;Jp;2! z>%%$aiW*T!er^|7s+O@uu$^&^QW&veis~Gf{~lRQucQr% zx)rqKKKh~?6hn?mtInSPh`tU83yS|peTEz!DlIxNFi787QCb)@HPkuQ*(svGIxwfP z+KFgh9+bkmrV1D)L>}s(ePXz5KJp%YEIWdONzs@1q^GPYDK4wMI<+*@)x*s~ zMS;wu_({gy+g{T`a+sJS%);{b-AlJW%)m=^Y?qJ?kTRuOw0?#=27h}fVlukp?;80& zc_<*z_Q(?wz71X`NUQ+DC&`bD%xuh%A+ue8gcK1PD*aJr@XzMQy4axhT6HDIZwiLW zZ*^Mzo8NUl&|4A_9vuF}go5iLZqg5RAX$N!XSW#g)FZBbdiU|4!<9UFwT@w@JPpmnffBoJhDZhXH^KS^Pr?Z)3q|H~VtN(PT# zvEnW81!{PD0R9{^EiN-Q?gs`LepXDNRO0&E=ank6JiMwP)@!>%b0dCQT{#Ji7}nSe z_3+3SEQiOB{uxxXbd`l>UqLf)X0oo1^6CtCgX7f#rzHf&YOW5o=A}>`(X*?>yCjPK4FC2C%T;&n&zc>JFxlNK|7%ZF7<}$n ziEVr=@m_n-GyMlViT*>+Xz}s2V7LQlLsUmjNlA5P6kteahJh4*h>r%CPjmq2{F96f za(;8Ve;iw%4%e8jfw4xMb?0&u=CM*52=IeS^sm5UfCaoxumZ%4@|V-wRJU|w+$IlC zowK3w1Cl$~IrPQFmgf5)GNH-a{BVo#U$^x;s-iDDIEkNCRi{TRtSxOVOG+7-83%?( z&83ZeAf)(UZ#LJGN+)aqNc1lg7HMx|LJWe z30IHyqJI>8@vqrsV0_`KcI~|%UhG(Kxt%-P{6PLh#&5qP5c7E0xo^9YoY4+tG1%Fd zuhoF*-0_tKUcU}5kK={^rX5>Y7}wjiE>JskA`E_cK0d@($l~$dTg##R08}YnuN@pM zWRj&?kJ*u9?FOTX5SND2r3UN&w#p0C)Yo3MyJ@!98|LfJ?HW9D&2Cp4)uKziG7jMI z(*3wZ!XW>;UUjQL;*R!Ie3uN_nd(Y{iD?SW_XC@jH=7LP@zH-y>FvO1gtf4aghCm< z-A2_a*#nGEuMdVC92;uL%e0dm!;y|BOhDd-$^<(ULPgyRe)^>XKS%_=x_9$vYKE57 zg2)DwJdSJ94~bppKQww}h7?MH1vs3MW$A5V#-A>BryH*$8FV__hY!>&XUa8OpCg!O z%2z|ZeL%oXJNS!mUd(eV|03vLJUl3+r+>eLi;uUpF5%|vY=btUs5Zq_Ka#boqphr! z9p)zjIXQ-(I+9;hdx=;u0u{q?6dMDSXV|y z`u-5E91&+^=(ImRK0SK23A8Wij(_SNoL=tfS)T72K|8!mER=fHLa3pWKM6XTdVdE7 z2EpHz{MM&L|Kf~;v_T!`X5WL0ned~ROGM4|HHiM9UcQ^2nVuYH7a97>_|ZO$BD;u1YICQ<5zY0q@?#k*Mn^_~m63zE(bdt-~Rd znhB$xfG5G&yRY;^p(sj&zZ_2PSP@2cI!_|l7+^Lgkl)+YUq;F^Sn0L_r!Zx%5!R;( zwhQF&KR>@767JSH{k63yE1{)_xlJX&#w5hrIzF+oHT{}jSx`v+jzVPpKFKyhkv&;s zj<;$)-QH?gno4C*pjhvND5Ue_^U;x&l`H=@BdN`uJ_kBhX$whIT@`I`Y}J6MXzmFn z#K)&4Mc)hYs6iin^xlyB)`X|txAg7oxG2?@=K(5IQK^doD7s!hS0ifhz8mf`E>g(k zbK3Yl7+>^85RzmDYH+-E!CSV`W;MCp`EH{ZWmh3f$m`2JNX{oQ>36``U!7lRyPPh2 z{5#I;2WfAw>!bZ1kN*&49)!~YAU5oEvf*|_B;b9y*Y)J_OKR3YYQ&5K!L!z7)ejco z`b5}QPuz9S?)KlhI6}utv&B{1ncv7x>O|XRep9gs88-qwwiijKPwu0tO_aV~6*>Yo z{}`-7Q?8DyWEhwxi(hDH$$iB-#flLkJHz4B&oe$_oYgucJthZa{H9@eU!GrL2|5=x zNC@yUk`ohB5>gUV!M8p>HZCb4As#8t-svGc@yPu6$i&o~$OknfgzA-j?nn2c=Y0RL z2t~Qi(*3W`B_zImws&&a9owqeo+GaPa=gIl3;Vf3uhoWAfI+{-ai4f7@L$@O8X_1$q{XFB9M;_~|ibPiW3sexdy(-lg@ zcSRW)`JummKg#x0Oy-`SpR@ga^5v8L^QZJH;Q?T9Xzw&~aC6oFJ>5GY+B+p9&eE!} zx@uu=I9_qt+Tv)5&Vr_*`zU0!108f&yYWQK|Ci6r^?xgFVi^&JysrI~Y#m9wl3Cb$VI=>MHoa2yl9x{Yd~=d#22gU4C$%h|SZ`?QMY4>}OegR6=2^IN~8f$ha64J*A(Ax5F z@8j>=UvV6AQI|8$`xX~`U_@67Uo1{!to0$zzn21~&(i+T#S#V}-8Duy4E_^q zqnycZ)QCzM0_8Gkg-_>~L-boAb*cdp*4WESci!3Ax2Zc;R(Po?jYFbsRi8WR8hcvZ zOcc!7dNAA1D_`;fNU)UVm0bsZ(>;Ao|gtVH`%<9N{skH!=e%MnN)0tr^wPLD}X z9b}^~NA^x3;q~u>2&dWYZ0;TJ>>Tg^`?rI3o7|RE7+h3X-`18{nTrPtK}Mqsq%h%7 z)gh4e9o=i1@x)nH|4s$Pufm&NXgr7EeQAfsX&#u@o4;v$xn^{?c^hwFrR z)exwYgMGitdoemRB&@P_l$bFVbdnI`qHpCkU~~Ib;CH%k@!IrnxUpb!SJ2>UZS5Ig z>2CS1q4G<$-}>rN#Hb{foxc+r(8w~7bX0Lu-Q!V6+FEYy(tdJlBOomQ!CD;A-4j!t zo&B{t&Q8)E%y~p}W`Rjw?>j=aMCCV_GbcB0|(qI>!D zxSfhoQMk#qLt(26i-WeLpc$-LU}vM72%-mIfpw# zI|z4P#IMsO@P40(q+9!$F1u8X!UO6TFk1=tAP{i28H~JZe>oh1W`;*5fO~D+;E#hx zBJ93#3CEWr7G|#WB$}7-RA_HU4;baxU;|Qf=Ax#9QBds!)P&>oA@K6fxY@p9pkbut zXXfT+p8EA;b{4MHO&x$${$yyZiN)l9N>O@GdjmXg(1ce0o z=Y*zar!{nR-zI0KaHZ^;=tS zc5Y^FYKE`L^9mImB`!WeeQb1cY;ugtk7>xzWMxW256!c!v@_V%+}ss>|4WAADhN4^ zTkN;)G}Mi(fDFqEOdg3AAJ7GK@NHl&Q7==VG(I;h2)10Psv7$G+OP~<{9iq<&^7t` zhx>oO<`!jT6yy=Bh3wPRY^JnK0BW3>Yy8)wLQEX;&AI!~Y_Jtvpot0oU^+ftQ4l5F zr(pi9MG=uD5n*AGb?<|*$)9Y@G?gU|)`z=eRn;;hG9$you(%4q%034E+s_}lMsMF5 z8=7h*1qM?bQ-EB@rCUV1iw}S_#$rE^wFP~9%!QK=X*A3E#_zGUjqvWi)5l`(;+hPE z1baN7AlS6A-s`LA2~o&{Epk11 zx^E6aP$L&>g8n-;`)nw>yfMvPPc6p7InwqJbh=3RyQEx-U#8b-O3WV-b zyyPn!Sn3_BLgJBrDCjMYk&PpgdY~dXGMh3Mt8eEPV&daq0RtdbT>T&)YZVnKcSl1n zQ%%L8u8S1fs3v2dRy8hAzy%g$Gjs#G^Mj_Kw1 zG`Hx-`?cY|ZVnWJT#R4JfDzu(5;0&JJ}5WGU`3>}qtn;N&-W1t0RbNIqx|rYoV;8V z;^U)F`zw*6{haLFZ1BQ5D7qJdgFIF7Km39*Ba^L|LXA&I5ARDT*|Nt(r=ekB z0vi50Ur-iyn-?Os-N3{a0J0SI2 zA8-MMch3)xRNOtm&lh6@uf3foO~3hF=W9Wp>R)348t=p7$urW%_D+HmA0N?VfjGt? z^eFq#L6Q`F1%&}OjXr=_y7TZkR%LP^`_nbxoazYslOZOS1Lk|R%WRo$ypNixw}J( z7#U=$0DsCDnMx@A6pHFWXeAfzZ-=nIPe<`?$JfYE#!_4vnxLHhVko|fOin~zRB^t) zBsinLQGD-Yw=sG*HR+rvJ=N(ti?eXgmfL0H1*)c(N#`_lm|q{02_3za;jlyfKwC){Z{yuH=LEBH@L~5P<0q znW2cV{~ZD%A|et}U*St=zlFs#*uTUmj#Z09f*kEv)t|>EAj~e-ZDNw24@#4s;pkGq zK5C^UaDP2~L@mG9{dxK53m}G9yCRvO3pATMMs26m5TBPLfSV?rm}6{S9r9&$XfmF` znn#d%QwBZW{mDID{{schbtiu=nZUHZ=R@Gl@E4<7N=uO6gU23B-T(F9m34QkyVJYQ ztTW({9A0!J5{<|XeEfwa0=*vQiUT*y5zL!nWSiO-43!R03I$Etz6 zsBwEFPybU_(bkvAit_7SrRRnCq7ocRP)+Iv%^gn{n)Lm9gO>t^t%6N0ANmq_S;cv1 zco-N^5FnN%-^0N=#l$#|Vj6d4edsqR9$iK2aCA=|3>gYSR0&BK4C=*@q{@Wwt3g_X_S9FrX|Uv)H-KV_zVN=r+_2C+8Dr$6Tp@;K~As|~34 zQ>$^AO0;gzmkmUC$y9={BQ64n+#V_S5eKo3f0wHW-`iJJ)>l^6+Syy$zCYdE1v+jV zY+Oppe26Er7>5XrI3xSwua%z&0s)$Iqm#qmXC?-xB+ZNr)RfY0g;qlJm-O}Zvw12T zU9lTzl8G<|We3Zxt<$yV_&w3ludf;qG_<63OepptUyfD-aJ=d1_wh5*KyjTw8_f0J zqm#pRQh3cYJWl;4l>yoVr(oFfh(7{G6PT0l^$o8=C`KDcHG< zNN1IIRJlLl_{f-IzB4g0R2G#))+p*SXTEcCIX&1sIyuH8CX7iObNx5T!CG6z%#od1 zn2ErpsjZ(}mZXuFr%0F1aNqnCx#HhZr)1yCZ5@8K)zzQHbpO@O-FBA+g{W9%}S_={$ z@rH`GKCkrzBHcZ9`zOCp1wB6fuH9D;UHWC3E8@L3ahO^O+-hh`(7yts7q^sRzAt+& z5*7bF)Gt4O*kNsvIIl|$LnCn1L7;90oK`lv{O&J?X2A;@cz3Q*2VU7DA|Tpwnsj*{ zZhvbArm@qtZm_BvvQqH8nB5+DUZsG612?%^W;TTwl$RBR5RrCAk#^rI{$XT@M7qlM z-Y#wNI_wSX*~P_qanP9y=X3A2I@aRZeFTGbx`1Z_$8nz6bNE2X4ql@h0}l<2_$yvo z_P&Lcf#2EFb?@K*JJ{Yfcd@c4E3IQ@VC_?WBENu=tC`{$=zmQ#?VqmpEeD|hu|PPw z9XvcOG$vqLO+MSPFp>8M&CDBp=4R@8@*e+5EOq^q$c>AVH#ez+B_sd{S%j^^3z%LJ zK*wZ*yTlgEI$)a@MM{${Seo8?I*^d?|HLE2-lPjoJKp`Aw~8O+xk-RqG=1lzuxbn~ z+aH`z+uYo|`$8(r7lQOg(?M1MW0dD1`S~j-Y;EyGkN-)%BrN=`9cC~#lplcS8KE-@ zJQiwPxub=VjBn5YhX5&JZW=VHMxM@xV>qwWd3xZLb(vL!z5UQ7(y`deX+mrQf=<#eNmuZh* z%yFp1i-38E5LcmikgNX8vstQV?T-Xb5gq#Ky6}2?V^EE)`27Q*mR^r z;fPwF3T_H`Z?(9dp(ZMhu^>XGRsaMh4j61udHRZ%UzmRpPNVxvdHGigSARQsC%k#6 zCK(+sJu`MyaB^WG7-O_iL7t-z+RNtRTUyd~BkU*0TQe$#hod@x3KDfD`GJ9669P=a z!;fxW>O~)sRFTEhrwhT`DgIA;;U@!I!3k(@q_I8{g9v+W#trUE^29NE%tqR zN}Mb(jRw8z1wF;!Vv)&V)MGjH_rpIS=O;_N!R2)23c1HuMovFadGSgIU_+o;2Q{_K zteYs9UXp=lJ$8GW)I~(|NYLqE5%UFxiz$s4q`IWy;+X7ofd~Rl2Rp9bkj*Jq1@#z~ z!|a1Z{j|c@OmqS~l-QpuYn$`G{uiHX$`f|vOCIa3gn>dm8gSbka4#G?7&BULs)CQ- zxma199{hzdl2%~OFxbZBLsbS;Y%ZWLZm(d|v#>Ng&GGM{4;WyCE#bbsdfmAJoAmMS zr1NyW#}6|NdJSfQKm`B%bdNT%1q#}NZth^_Z|pb=3dKJ>JPiTM&}v8EJ$vAt9Huv-^{P zw!Jubsc-#a_RYSmxv`0#ON?f9W8goCP)E~HN<}5>hHB4F*NYQ3l4#|{9Lw6)=FjG? zlnDd*TN<2iEcmF|j{|5&^>=vT;koJ&oLG-#m=K7(-LF1Z1q&7k3@#oXcRvCWJc!D7 zioDi0GBnJ|HCWUyrON`8Um0@3Q{fsim14sMvLb+7vtc07Dx>Um&L;;Hq$K(O0f(ei zl#~>dlz&IcmuKcyR~M1TO3QovOcgCm<&>nfktgLIz#kv~4!GXPTiAh8%bnB|yqz7| z0od;RFB2;0=*jUlmZxda)V)PjRngR?x7RyIFxE_$C^1S?hbbxB;0VM|d3CzGZEkaa z=x?(}?b-yb!oI7Oq;q-0;{dF^98t_vf?`!pe_=Nw-cR+9{hS3qFhP`qU|TOQHCsRT zcUiqjNtta)LXr?6d3mNNm!dBT<=Mpwo4Cgg5vdoU z-wSUuO5;#xs_YjYUKU>Jv%+1|B)5q&b!Pbld77>Dfl|e2N#uLN=?-XuBgMh+cd~t> zXcMUHBrgP+DyTz%$RZ6Bau|K{+L2-bC{==3Gby@5Bu-~6bgzfTjPSxXo`E(AJI%b>to9cy623>*oN7HNI zrM(Kd>dQiH7xj3VsMe}f&wu6X`72S?DN_~0TTmB&znn=9v3?9TAi&u8owmJ(hDJzlQY9NI#1JM|0A3u8L{;`p2B*}{J$nc#nXEQp(s5pZbSW;_ zwf$XrjEahq8yRM*9G2I(3HE8IuPyyj{;j&P6&M&RYTQj(mLD004~D3RSsLr_B_=SwdP>M|EXtVshvQmoP0OjQ}4|lXg{r8iU$SZ!k}AbuFrQ z!5*n6x!HFT3Tm`??nuaOd$-bRvlcs)IuK~`Q-=Woj9)*!DVP+r1sl^?{l0$bGpsNn zT{UO?q@6zT$Rq|3Yrqe(u;5Ybdw3Pam{q6|*uOe4GrazLc42{wnp>Ebm6sQnFj!94 zc03QranI|dmhb$OeEL!|VRp``zlaSpT5WItw@=N%(bn10G4u}v%bTmW zDA{$9WILr9^@k&=(JQ|P7|4~E_w5aqI=g9)`&x#{V?d43c-#+<#&($0$R+&D7cwwv36n591$8ra?HFYd+ZPRqx4z|VK5B13UAaA6 z-L71&|AJe%Q#H69FL z_}1b301uD&09*ONt)-EFZhF|1U)G_ctR0z~88;TR1ROA4SPC{tsE^J z9RBV8h2bBS;N~aAbprt3n;>0B%XdDmz`9geSYP?El4yW)bbWpjz+y7sY9|%)P>h4e zXp3(y?F7M%1k=LrOw6<_40NiQDLNXOT3Wigks7la3t$WAc5`-)7Ne#DhGSGxHr+b?uU-R0;4O1+IS{34)cSs{#qU04Z0n^Cykuv-=e4wRyXeW2 z@kw(m!pO=--1&~dw_?51WG9FB!i3#wn^b&Z>Q|CM)8*koVL{O05R<0UQg%{CLsKS) zZ}IlJbiKVAVw^u~m};nMA1sSF5P8GAa&Uqix4t?ksVr+~oGf==dQlIRKtw}IDr#@Z zD~Tm_WrY(nfx}~a&7>!!*Y&;MHImM1_Cl$abRX34T;JZ_-cZBm8#h^A4}USE67~Hr ziS)5PD7z|{a-&x^y?3GBR5bYFc;M07Wv!hj4g(@oXI9vKxjA-8#8n{S|Gc)*0|ocC z`bOt7+zaUAC^YH(W@yKSs_5fpK3VfZok^$P{r1(E)ksn)>eQZqa^>*D%0E_R)Ml*` zxV0mdEzV?uKRdRMe6Ad1esFFc&)t#eiwJz|Hnc=wJJ5Hp=_MZ+)IWi`f*&I#jb(1G ziVOkhsMwP<9nZDAjEtOYBof#RMj@8QQs~;bVau4{@sd6)%??HQe3Phowcksmk{4jv zG`>9C>ilBC6XPIa^Wn=V_T$4xxsfx7`MZF3RW5IgJhb3;q1#V+T~AM4d7tCc2HUF| zB&oQ(^_al=1<2u)Lm+A)sphY*UA;q9Y~S117FA<9Xy_=ar4+v?)3_I*BTm+RlHi8x zdy?p=I%t-zK#o!VF|MQx2cMjgflWXF;4ZwqeG6e<-tlGjBm4OnIp&DqVF-Ie)tEIU zjHbe1)5S#yjCOjuw!l^VdHd32{}5bNPhqfzwv?l;Y5(f?r#vv#i=L7UmViKf61R_! zkGK9>pB~t|yhlybGCq(NfY=faQXd_`cje%FS{I|l@M*-g=LVR`9QTf6VN~sqz}0L_L@Aqu9WkVD6!1W~ZfPO?>W&0&oT) zwr$1Up041H8YibSSa89-c@qi)vsh1w^J-*eZRqDv|M=?QRG*}}iKby%(v#i`R4*)Y zl!=~}k%fVyvZO9i?f39JU?c15>Q0zLfNMQJ$4qx^aUO-*v#7q3sC{_!dwH#(^RxTu z`C;6`sd&)&5BBFc^Evn)=*iExN_8rU_WvbKbDOajT!1y??(mZ6ml^c3w4Au)x9U+(YQtEjM7;l_vkSPjO=e$flV;1v2aF~CI2Q2Dv| zi`_d1E084IA|S@WSdtLsr>Er=g>QwIgusXwaC!*}5;6h-A?UAPTq&n#V}bD=koSpy z{umx-rlMxDF^5^C?)ldCrE9qL1|fgVMEK%k$r%`kN(Ziize_SYXz6Kgx}=8MRWJ+> z%fR3JmB=O(H7=v~Rb8JVip$m)I zlOh}(C;ff-j^Nu%J^bre1!rhVqZakKpIg%My3ku;fkGa;1avgX zB#4=WnG4n3@!{6V-@Ow@rfsssw0pb*$1+YeA822+ zL9PeitjqY|6INc#%*JwM>b=*yz0m)rDBHpvQ@;5m``%QG?Q{eQnj(P-Lg zQw?~m5!SkeP2h#itwD9&ir1-xxR}TBO(_u-^^ruT|9UdtzA!W?fgb+3N;Kss_-~E%MZEzSLI3SS!Oa&<= zQfa?RkV2F-q!dTyh6y^UQkwT*UlnewPsgkqhd+0BcLQkbx!dGe72~T;d87!*p~2Fb zyppAgwSIK{>oX}2Ek0>DK$=R^;eiR779Vgb^W{CxPS3ynl$wH#B+h=GDBas>DEtla z>b`AnFk9rCVz5;DaS|fhYaD_P@G|tf={o6Y`1rd71nD?13JPPR%F_%o@OSrjKGAvP zc@SK%d8opbWatiOJ?$~j#pI+F%9g^z$;8JC*JkIarDkFS^VIj&4mSIn2M61Ghg*lo zWaPOi`9{Lt&L9P2`&Pv#xxU^dB-mVo`w8{x^8DuN>fF7JZ(%_rnUJW$y$4Fm1N7|S zdBgp~QSKr1w23&g@Uk+~gpz8eriQVY@G6>M^k6bFI{aIL8Mcy-gf+zD$3LS^KO`6k zSZgQ3pcCgCcR6BAy&RhbeRCSQ0VQrHFMdLhkaT52)x>MCC(%yJ#J4FQjCyDn(I<0Y z`Jtq!tQb>F#!2+}cuB*@_L`3m4=;8AdY63*#fJVg4_$~tG8H22Ez0`bRMFZKT1@l6 zaCrFlFR5gZyQ`bW?L|}^7B&Yn{ouxkRbpy*HwU|qst$v!tmI?ZT<@!9=x=lRW>ixc zePrB}lo?bi0ZCljXK5n3Tk0F>{r5V(N|>fryeE~A%4=vbk7Do3L`d#)UOwnIQ83zanAH(z9X z`7m>}fed5@Ua+B~16;*bbynt46d|0>l;SYOpM;;OK=CgRoJ;^vu~ zo|~JW{w*iXjbafrgXGv!sKT8(v@3wlp5FyG1m7{cZy zg6lKP>7HHGVwz$5D^g;}p+dDsZDEn&WbM7&8unl~fN{6?du|TYb)^$nmw~cgjch#? znJfznbP`hyZEbv6QTqUE+ShEmB6qggSq3mFQZM^|h+tybIT_z%ev+l-tpDs_4xnQv zq_)i3+>emYF0Bn$c=s8$5ErZff4mu*O!^`G6X&I};9)YZ|Mo#Si#fF;GYxqJ0_wJYpn*#{3l*_Hg?H9m;w2;Pq=|7h9KXZrdCQi%o9`eGqg8gzIVGVEInLd zZ)i+gljoJOiCqkqajGeIeQWjCFL*Z@1t$ePjSNn0C(GVPtLbFP&|pEx z+14E(o%fSSl*EPMqt)JkXgN46oTrZbGVAiW-~RJsLHHkZ@AxCk&igD}lH8j_(fK%nq!}Z#e9XuXeXdE6f3%kR7 zuX77jsiC29Amir%8*6EeleO*6?%p1#OYRdQ7PNW?iH^aPN0a1op)v#HjJ*GAHV-^H z6Apg;>4^8CoS0>s9`^H_o28&|XUQKCtY86m{_{(fla%MWM8rj}7-Slt2`fgVj?XAf*wDFbz^1g6oWgwh^CKMYP7nzWT9(&a!ytDK5 z(AwI+lkyWO<+ZBJx86oJCfz10A6A~%Q@xzjn4g`V_TD(%dt+tY79`7F>$5 zx5DIN_@b@Jy!8n7WL{f$w!@{3jujam2Pb)Fe1j#g^nsE@RdV1UjC-`0e>QJZU@w1#_*e zEgkmvhzN6&^D?q?^)x`$wZZH%pQZ*ROUV1A%hzL{OTX3Db)>EvNPH>9UCn(q)=fZ4 zYMF<>-QqaM25l3)sJON1GdK>s;_sVXn*W{*1{$U1D3%AOzuiI>u@F$t3%!-LytBj3 zHpWkS!ct<05yd2gtIn$&rZI$#IgvQDFh3huDI*CTOrc-hB2?OPQ8heyK~WjLaG(B| zo6**z!Eu{8t@e)JN}`En7KnjIm(8&9*x1nY)x*{68ae*wC|9kM^S{4^qBhI% z4zqjgre7^qdP*zn*L=@*gJAy)obGce;<|v4|!7i4>{kDF&Mg!3yK33S86e z%g-hjJS+|*EEA83zlYBbX;@h>$ikW!!>z)$dtD&>R`-txQF0M)+8jX=!&pU|d7}OC ztXtIBB)=bi5!oh+oG`TxL-p7l8i5*utd>12=zWG7qXtir)|K*ixT3YL=UmHnqCmvz z;Xf}EXm|V2A}BEbTQ?0%KNuJQi6Hk8>ETiGc>~=`lTcb+FLNxSK!^f#p-B^kMYIws z<)-hR`-oy99&U6m0d+uQI5M{!B3gLE+nE^`@(~FM8HRIu0@YV>Kjpe2i?Oyg2Jz*F zIDTppM^Vak3oU@hQs*tT7QDM0KB}y2_U903E~Ea5T>SBV6nA%@v^((cU0b8|)sw^% zF|~h}IM+bGba!M4{GevzPAPD6L2z8#I665qzW|$pf{dy#D=#G@8)kT{m>KKZ&7-Ax z*KNrY!{+|hGaD6+J(Qjsw*-W254OIK;f&!o=xe~dF~?AqvDPQ2#4?Gyd=k3u_4*^cd^*>!M zgOImH^HG1dpC)z}N6mxPnb;^()fUP%b;jU93#z}NKtyC82Miqw1>V%!(__5iLAb#j zmFc-zL<6%v^SGsrO$eN*rm*dwaT2e>y$NsRRMR~DB#?_}urGv)k*IE!yJdg0`iB{ye=Z)W#I+ls0zm=SYjOL(3Pd~n@d98$QH%en`1ngd+a0CK zORwMk-%=-(-p%V-kV;8N1aV#O|3+ha9H7ds_ge`y9}ft!txc0QnyE4z?JFur$S}~` zKwBwX&><)eU0t{a1|~^X@4!coj2IjhNRRfzqajM;v>@Mrw{2ww;D)CzF)`7#HRH8B ziZ4IEu_L0T7-10b8kn9GP7%gyYE+Ufbs)*mSAdm<^*(-DsDYmM#vn<^*p9#7s})1) zmjyjN{JpY4*%29e*@%bBH8Eoxy6rG0|kvfHD$S-*0ig_0LfWcxM`Ah6C`;eb!c+*B0fG8JfT0P zjNTjl8a!;a{aMiLYQ7ZvpI~sQEAaMg8n5z~sj&CW;Pi8+*U@6n`+xKO3IBv7={C~} z=A*_-x{l@|4o0cX^o$C63JNe)r4#6x;sRZI!o2w0P|zn76=LI%(Tvf89s_yev#LgO zi^mITXc=Srp91Wu;nkn0peImlsS^9Z&~K&q8D%BK(hI+T|F-i$_ccz$(HHQ&hlh_u zM0oIdwY0Rjyu7$*7-(bbJjrK1Balw8YYlEW4ZKme(&TPF24P*I2aXQY1`ozoczkF^ zuk8xY%E0Ke;-+V8*6t@6F|mG6ko`jc^rhaZXu!kvW1%?fduXO4*5=S9@WS=bK-zl0 zd7r+Nf)tgg4E$z)sa<{0)8fV@Syzx3^x<3T2qtL6ak8I%_zlO$bi<$ir+g?9(Wi6C z$cUK70sm>=K^>P6C*8-c${xLtKnj;vn3e>AjiR-&Jp5xDU~PST?Cl{wt%%=cTmvkP z0p-oCu==gzTW3dm7=2bG&RnbJXlYmthVI|Xss3IZDNB8u_pRUXB)Cy+Vhp}5E#1r7 z{QgO?7MNP8nlI{b5m7LClL5959XUBUu_<9kWe20t4O7XGp3Yi6KgBH40|%#Wk{tQq zIc;WojdDHR(h_!qbd|v!8}4L;7ZDj5o|(6Anc<5fG*zSwb>$G_p0!4@dogivG+9KN zas=a?-Z{U24_FAxL9hvGYi#rObn|d)Xl~~HL*jn5gowy&=(@xnMHu^H82!)QVWx$D zT89k>MW%#&c`q7uihw$4WNa*)u&9nQ?#nN0H(_#VD=j`52st*4>+PoheZ*jyHBov- zMuuKmIzG`K+cG;_o4wsXfA)Z?d{7?YTujn~6bDNh&g26F!V%SoK25*o>nzx?&&(N; zK(qjJE%ku_FpEM;5fvGP8G>qcC+nfbpHL2$d}V=IF#SJ8P5!f%?XO&+VDrO^bSJ@g z`V#Gdr)Sft%rBrX%J%9mbnSKPdy3`O_dhnNnTvnEfiLPQ;pTeHK_mET?$_FM{6NV+ z$LYB@Gl~yT*qhhb86obkG0#Ojq3~ZIz1_$>$V0qMGbveZS8~LhvT}xRw~sXvklQH& zm+j0HRB+!IzQwI9Qb7P)nP036i=$JEGn3N^Nj_lJmsFYC4U#m~)sf}*dZJoZoF>Yu zG0~3~W`Cdr(H7j%CFABX^t=W-(#m=u9XmL)JUPTg%hK7>T24j|A>=Y>4LIJT=){79 z@ws~Hq!Jf&g;o)T{436w{ z9&AkBG7#F5?{rdd&max=)JI0o!y}IRwA?MWMxKvtytYPu%;Ag3j0!doZ*_Fi6osoL zR`Yx5qm{;L|B>hm`yt3MR+R7WTJP@?5oZ1t@V-$6sju&Mpb}$#@1dp!;1lCDu_a;g z@M+IT_o#-n@^nFr4qA)!|yv#X!~w^vIB zpqrE!C3Xl5KZl3O89m_-cn>^Zr4G#@`0A(7(u$$dBY6I_W=IkJR3@YOTWX8y6ja9x)QX?7Tfx7VF~|VJDCDxi7jSlWaLD&x>BE2W|L)FKEDYx*-WD5s*R`2@ zK1Q#v^XdEh;1WJKB8T`OY((m&@5c|!KN=nxLFzCn$aD!l*bm~d2PM4=syG9ZZu*}- zE6|TB#m2rEvdeEzVb1_=sy7W4DJzc?J|Y^wtl#3e|^ zg1GA0So43*sGzH>!{&Xe8QdpqQ?VZZ>($YIlV}8&^>%l2KQj+iH&aJ+mDfwl`Z-M> zw4;Ni4SAz}VWI1WewO=PcF2pN`sH1oXaHD3SkclANEc)DjY!b5GSYAg($e>tNkYge zLLolFOGcy~iz;F{jOjIi2abkr6XZrRxQ*wiOp?JS7kmnTJ00dGJCuHXEQZIVa&+wM z;^g2^#lgkK#>T?MMU|OKN<@jf8Qv6Zhoqsff8bD4!^{%a&h@EGAw&M03T;@|{lc0z ztD;BZ11|2+lkFrfOS|~cJhOt&!w$GUucD-# zJp@_O%l56YPZ5!lRD!Rll{BYxE-hEM?}o*<26#C`rMJe$DsM^A==4}~mWy6WOT(*B zQmrg){_P&@Zf@>QestHh^mBd#jLE=zscdvQ=)kwfY1rd8z=*%w_D=d9T0AhKULfKR zN-90<)W}KJJFV<@D*B6yixZqOC-PqvcXk(-P&4sioNr}eo9U4?49!X|RF{=WrafE1 zh7>3p;BWpx;Z51b-OhskEAaPcIG~iquBg${8I=)XCuBq0No|T2v9w{>Xw^rFiLqM$ zMFFJ)iyaGko|LyfzOJe>Hq?%`$hHZ#8T0epFh_?&-X4u@f&zO7vn1@3dMXv1cRgcD ziN|-r2vU}36RgQP{MT1Y#&}vzOdHW>kb%aY>xCJ>i&2-0wXMrGgM1`Erx* zz=iMZ1E@1X<=vKg63qkJIv;ip-V?mb8J;I^Y8Ls5DhEfW*(F9@=8elMjKuhu#8^}; z3`Dn^kiLej_N?dz>|ir0GZ(D1bbie3{HSiOkX(qh@q1`#Xl!zM8J7dsPQGfw zqu**ove4?C<-0+feOt$jA?-scLvCtq#yeU2TvtWY~Rj1c2y6BA(I zVO<;&TvuI{ymJt2V85L2a zhNATS5B+!q_{hTS+Yv5K5KAgUQ7Dd#jLaK13ieR#IeX8*z*d-#@B4s9qp9^P9D%El z9a2k`=JtQU$t{7ZvQ|P#bmskIl;%q|cIcr#Y|Lk++4AQ0;S9B)t(YYS0gk}gJxq49 zuYPM46#kgxB5r%M*dhB|z0hdfKCJp4f7JOtbxN@(!U~AXcjV3RN&r&&-J{AvsU&WQ zx3JD;FCW|L3&}*8d1v=sFg3f)13JKH;6EgO=O6@i7gv}$%d zEEUXSxgI29sJ}b){k!9*D2TNU81xVj{Kv2gczb^Mui;lna9%efoiK?^h*N@%L40*% z1&tC(i?~G4{BKq9=faSYtur55#ZS>AV@lFk60ldp!3~uNuvze3S(5y6`ufDkA;K+P zy=%9TvJ!5HcSgwlILWcE(ktxx_?o?30g#D_g@%EK0!o_fq4;{++F}?YMNm)PKxk(&W@WDd|BoF*+kzSBUTMo@<)9g{`xLRowU9 z($v}z2t2$zW3johrpX5EdMvj!uw&^O^K)Y1gv|NiTZ$PYz=w<#Icc%buRhLs6(K?B z7#Ls-=VfGLUnL~s8p^1l`%=4xOXbknWBG-_xM_nUyO*h(&HF%U@T$EXbZFkgVmIjV z!i$Bz1_M)%&9lZ&KrCe3?hg9Zn*TGatae&~Z84e9d*e38!|w)K51mH;ajU!_NlORY zP0rzCT#;B&lLD*w#uW3>X^58xg-25p2gi+t1)Qr2LSSEi3PF-W4jM1gI}>cO!WPkx z!_k-5)B9LaLEB&=*Q)|EndCZyyDj0;P-s_3fSWpuW09O%@x%OYv%v$RsFnvB3|z>% zvNB#lvABs|ZpA%;EWw({jD*$9Z7&L#lwGBPM_-5EzT;g%WGNPQ2;hsyE(z=PyPbD7 zTg8yTR?YkHK`5y}H1PcSpTv(fv(hW*d8xnm>8d|yMiOePGyCTL{I3)Ei+x`n%p_hy z!k~rEPan^pQ~k}%UIiZYO#&UvXJb)sM;GNk?Gq8B8fHTNPFk&rIp3++JmR;0d?#B_ zQl)s6`ct6M%QgJ`=-^H`;-Kna^sM1*YHA9I^NF!L&k4|BB(WQsdHH7Srof^{XAD)w z7h#)79U{|*s+s%VasP+_J00HA&6k^9SJ%LR!yJ--43hKA${cLtzs4q25)+WOJ4IHE za&uiZ>Z*Uu{VrnOq~02l#uLScWNoI(o}0auI{KAk7|BqyjfG=I?AIehPd^mQMhO-1 zw*)sPP)6C;6oJ7xRS?iyG}^wn*uH4L8Hn@A!eVRs{M?P_)7G1pp7j8#9wyWZ=gCAb zUBV2)JzLx1VManh!Fj@A<3N1rb~!mwJTx${#G8jaLgak5a{;yvH3SJK$ zOMGKQLYSSA!Qa?G^?jh0k)F4mkrrqc1C0rO0UjRBTHCZZFs_Zw+&tEY4o*&`GDeiQ zFR=XB5Eey6e03fEuZQofJdmFWqg{be5?HuH+VktpB(V)g6|(^!Zu48 zz&b5H(!$<@4lYU(Ng)x!iVXGMj~FVmE@zmgNO_|iS_P7gib_h%y-emdWehwixFu39 z=#(0eVK(OKYAt~e*(!*x4g@+n1O#A-#$baWLtNyvd3^cedshf1ja=%w+9mb}Q#dA8 zO^Z>Cd%AsD8c*`-RWu)E7v|sUJu7K``doIWesKBhA`P!rjU2tDxoJPKIt}h<9>z9S zBN5qg8Fl*IFe(sv^}=5Fos(zasp$2&XJQCBH3QY4yDP8TdV1V0Z-4-%4%i>B5yzp0 zPvZ!8^_w5MXPZ`M2JH{L};7P z3q7pv-#{yTscm8ulz4o#H#*X}V?1&W>?#eRe;fGv0C`AdyhvAqr^V|&LQrfZ3t!Y6 zynJ+zh6w(3zdF0F{HNbM7IC${+O6jMufHKVLJDGgHV$(<(8xpW2i&44DC2^9@@E>0BM*U=D5UFaGxEjWK)M2?zE%YB4f4u`zh;WE{N@mf{2Z~LsGqci&zo@V&Ye5pATblH>?(tkS`@^es# z5iShQ&8^Oi6N>pq`?;a(d**c1T^q`*QtopZf9Ed85nicsw0=%}qOe z&YvQk+Iqf0cZY(xZ=mu%*JqOnag~Xfr{u=r$bA!vVhKPk5u;fg{P8lXu>A?7?ljgW&dA%UW1&X%Cs z;SfXf2L?h3q;^Kbu zK;-8nFJ}G4lH^l!CmS2*s4NJ)KNpn?7Z8Fm*$LsFiHWVQiFF4CbOm-zF_{Jcs)h6nX!W{Q z&Ej=B2@CzhruSuuyWPhA@kHzqlZuK$?8D9K5St!nz677&?&jHg{z{bK7o%>!>+$lq zJ=NoX@2cxr*(Q`?L9dQy6OW*INFN^#6C2xQ>zK4Y`ZgJ+WFpDJqRQ&X-Y1xr zG=-7-m5+{&n-{H_NxdbENYSn~eAVHH&Uhg2;Ne>qx@=-R@OnZ5w4sBD6M>s_9gg<-vm+f*bLF6rBY_R9hHD zhwko9m2L#2I|Kn~kOqNAmmu8@QqnCA(jeX4ASK-`B_%QQjz2-XbMHCdxA$7mXp+fX z&<*M z9p3il_waOK2``x5m+G@g6SxY4iqb~j#ZvNh%yo=r^79KYUl~GQ4KUv^X9z-2yE-`O zyL0kzu4&@qo-U$;m!L1OyQ7(=W(?HGvp%B80CeDx!4eA#uxi~U%(KA53jl=~K&Az1 z%h_$`zn@#km~r8J)_yBv-P~A{$FJf!(Oxky27UUJ48bQPMAgL|A{kN$ay*l_-|40A zm7<6LZOhg7G)(g_hTD^OUtLhv$H!Ig?6idv7BawC4EV4*$vP=$r*Y9ygG7WetZY(_ zEk|X{ijgBDk!S!Fi-$+&hr5@pUg-WQa9u6=Mp&>dXx>qc)C?7_(?``&oX`^i9v&W{ zXLo9mU=QkZU9@>ons(n%dAjOcq~)#>bic8_yuPryG_7VBM!mfXaE*st;sV09Z+WS8 za;t*t%-#8;;Is0hpK4ulYEVHY48uw<&vI)YPDx)=Pz27G0J5nEkZj_z!2dSD-5gA1i}1AjZ&3G;b!Px7 zIL>(H!r}}dd}${qr4SNq?;Kfwq;>M7m1vaTR!Kl%hcJ6esLz!!F()R^my+{gm4}5P zYpEE9A}Z@C$;qKJ5?G=|&@#OTbt*b2FPR%L0pn*0?IRTfc1gJpx~Q#E>m75dXmsjm zHNG#0lZO8z=R)l_t7{R_U}b%)LBJtx5FLgJ`O8{rr3gbX+J;fY$M+CuS!2eP0lbEz zu9UX3mc}E*it>Ucr23qpe-p&vDfo@G6$-zc$EGN6=`4(Owhp$z43-g=sO!T3*<5P zx*t&nazD8s#{>;#zfC!KOOh+X5L=;GBh8c_nne-;FMd-jc3{u2uG(T92FTC5fc-F!06~Gw!taL z$Hw;WJ{kg9fXxPO}a*_1QX9vWHF*&TrF!V)OhUyfnN!u(`OU zqs@Q2P*KBbQm+P_Ux_Lfaj@+-8a=>#EBp(kIJeg^{IZrQHo*97azFFGtr{5^7+_%5 zU+CJT0Vmtw2wns_Iy$IC{znd8tkWSS)l+8N>2B;;m^D8SJyP>x!D4n_gW*yc(pt{iMfw{PyPsKpvS2vojOq8;C_J`p*+f5 z=5UpKcro(Oi4`+G+VXo&1Uks4pT6k1YqT4|oJ;S~c~KusxA)MJ6;XlJg#`6H1` z(JmqLaq9VDo`>_)$vHwDmfcFOsZlRw){}m!D zQ>=wALKQDX&nFaT;_Bw)Vr0WFmvy#o?3a<3F9_%6XJ>!GjP?eVUK-))Iauo3w7@pN z@wr_6`Geb2Uhe4N;Bazw1oGi$hXHb9vrm=R*M(^{5{@KRuTa$Tt?IAIT9?UL&}Gu< zy1|^jvu#-hwAY;xKlhvenugm%eBT#=2oBU?QvCE>f=smCQ;RE{O!Q(5jvv%z&28nU z?k}GSij{Nu9cQ|?iB3>{oUPV7!X(oWM7Vie@PC(=$bF#_@pST>sc4%8o@O zE0o1Xtjf4qD@dPED)F8cy)aSoO$PhLu4%oV8x=cCXeDZczBayDeX|MmF0V9ZD;)EG z$0k|b7CfYO3=Gzg>4F))d8XZJ)Ve&Si!+?qEpY^;W^h_$M_%k7pY2%_XA`P!XmXv+ zdSUz8{#WPu=H-lQ1Z1_@7dG<;$Mzm}fBZ{eu{ulG6^P>rhCrf1$om$Q#SVJp?vHq{ zzllGIEy9lWz?t?5I!4nyW_5S|LCj-&bMpI%4qFy~ZDT7VC+iDlmg&Bp-iZ7%#^=Njhbb_?%^r{nYD<3THl zhEssVn}W9~4mngg`PH_Cg{4K|x|^hLOME}xSH2s;mrd^+i~_fu6^{TF9x3$2z#ga? z%%cLF7!$(e$mobND1=@8ackn9`=(B~CxHUCU-*AMhRYyI=;Mzc$>eLYgPjHPYc3js z$xzvl5E)q+B(KXZI5!l(ImdfdTE;L9&3VAMb`RWv-6x+u%|;zB7dM@CUJ^V!4t~j< zUfkGNSzB3K`!%x=Kpm2i5!QNqH4Bnht1$dn*|ZSWI$E#_ zL>0}YYT~LmI#vc0tghzf(s5!MspZOY>Kb@^gC@|&m5O-e1pdVGmr3Rh_O>|hiHv;2 zXf9*pYq+joF_O*@be5<}$oPEpGgY*-cQw!fm3$9XSjZ7L9DL{`#tQ(uO-vd=7YmDB zK|;89+2o>L7tnAjb2?LW?>RX_nF}x zBqb&!>1YR%cV=X~(aJ8DUPKvEMyP^&t7<^CfF4*{iW&@eb;XDzL`tTWr^avNMm!X6 z)jwlZpVrzMp_ypvgu6h5jBs*LFN};HIX0RwZ1IA>JmqzERmqS<1Cr<_ANaHKq+b(h zA1_L2ncv$6NYm3oki)>lMcAV&VmE8HxHBC?r*Z>ie=deW$d=R%6RD~+Hp0oq#x^`P zHa0n~p!!x-^{rA&G&TlWBp^kiUF~>-MR2C;OiCpxT5Jp(HYe+I=$KT*7(UT_gV4)` zPaHXZbhRTUC~4wVrJ&GMh?o!nvV1|6G1ryjF}wGrxc)Ra@)&VV6i>E{jVwPB`L=sXr@cR@If@hjOU6_rKu&!N`h2rygrKczvGPM zH;>?@C2BQUna*qVF7u7$RpCg|%iBA54}e!}0_bQy{yF+Ln)>nSgamka#BnJycJ!my zrVh01Kk{nwAX0wR`ob-Lk-%#jU}s+pnB-)UQV}JAoM1X&m_rR_nxC>xPoJENKtSia z;q%U`nDg^9yK_7HN*4CvNd;BK7&M&gn=4%9LcO$fC#-2n*sSdAe^2&a z(nr1u+9+?u9$Es+`JS19zOkW2oR=^u+#qS`psnWKBpTf869(JMLkV`H6+U5BA2x#`Gm%AJfK%xe`gFiGmO_iBnko#9irPhCiI$T$l`gevUT zvU5fCxMZf*eaY1#&+1SW{P`z{G3JVSU!J9k z$I#@6H@ll&U*zQ9jFBkkPHXAt$7kZv;GORL2h=?!^a4$6P%_-a_j$8e%Jz1Yt3E-} zGoNx2(~Upq8>zoX%@9Z@vvJ(-G3%3->g|;d3WE3fYjg%2u5MUSiS%&41L_2Y`XPlT zsSiumcj72?%t7sS$UleYMrYPu3BD9!Knbn!xrPwNAQ0wxrlcfhCF0WnI_vHM*yoNe zXiEK}!L-GQjQEy^Q{<-}6M{H?6`AjAK*=58zcRG%{6SY@$uoPejZRZBItDzltgJoa`3+p0ufXT& zg$9=aTy#aH^@n%bK;faTXX!3&pz04pbTatQv7(xTQx21!LJ674&bvjB4&B7Y!EV^} zWSWnUUyFIv0*TPk(oZXyIO!!5OWA*FHeQq(7`A|UqN7R!hzAnZ&p7Dl$d0x&oq!VI zVM4gw6tTCl@%3xICbztb>^I&fM3nG$8@0Bu9w0%Z5ke=MKhpS@hpIRKBR33F zf6C>_|5n!7iEOC&(dC0C>c)(eF-A-c-Nnux(Jqk!BK-2Nd3CvJG%J|$v@F*y89AL3 z7U?oyIlf{-0s0=CAhpDtBzbVc;5I5Fj~T=cp(^RYTYKMZ$0-QG+!!7p7%Z`TM%3#}`6r@RL%E zSNPr6XXh!p+e1sUqOfCB zg_^r@C6wPQy)z|S?qOAm8r+k5QdL$`QjYi%iAgf|9s%Ch*S9^34fCdvU-Rpxi8e7# zaBp3rng3G$bEw3JFp2jwg|5o>h9Y!o79WGzRX%;x*8YU7q+egJrk#OHK@~`ipf=dZ zU0}d7lWnv;WRs}0IHueS!3o8gaDzO*7A0IthiS@to z6Y}E%8L2gA<<-Q4{7BWt@L zK+DHM$Nr40h?ZjpVQd%^n$%G07d&>Y}U^FERmB3)5*13 zO9Ukt$#|}?>vExy45VCXXwTA00;TXrFqw{y22netR!u@j3eP|tZU3RsT~Z6p0#^w4 z`LhT$Ni9in6|ojpUR9tcriwIKsD~o+bXI)YDm47r#+cPo5uY0BNXy|<)p#N(EQL<1w>Pxdd+@f zPeN`MlF7ra-&XzOg% z|Kjk+%K&jGYS(EA4YY&0+aK*Zz%h$PsK%Zlxx3g+K$Gy}D}Y|V2lHhK2^#N8|5e{zlw&wP7eB_>Khtv#w8j{TTv}9ZgYT~H6@&E~ce`E2^ z=tk!7e607SGL*#OS2Um785^YhJMC^b`+VPmb37g%rhYdi3->%q8jjWv{# z2~jzN&t`NNaKzso+uD`~1}8ZGMf!|1Fg+H2wG&nh>a^=sRg*?Cc&%U|wJa%-kJgHs zN%7yPX;xlwXIV>8QAZJ+%-1L-5Y$$}djY%wzkdh*3~g;)&bXT0u1hRvuS{+p23WDq z@cM7TNl8f^Uu*FMFF-njuQcO$^vaX$q9L#aLe`#0jt*P)!bHdk{hm}`5pE0_eFEi~ z?^?!Ux#uTeJOlilWb9lPnxnwMJm+k3A*Hx@e_^5NcCxB-#FeC4zs+G{*_{Fz+|#0& zx-SX74Sm5rUvK*STyBZrYNaBdDwf~Y(%D+cCH{&PAb(!Y4ULROlmW&dDuq`e+hm@4jFn`Y(bKut*w>3dtgxv zbh9AC4Tv0r^5Nn6rvgk&kl$sU|H>tUc5jy9M$i$3gbGCHA@ScM-um=B19Zk!`5Q_N zR+KN@7tJ9u%}yc17ZIgP_l5mw5f?SMPBIs6vWjIwsrhA3tiH=XzS;C{K7*UsrPWoJ zKfLLM9SI80&C5pu;=c_OoAhS*q>9XB?eKb`<+2C*f{$`9i!Jw37aFeLWsCY>ma7;WwJV zbd0NW^zh*V3LJgcq5J(1V;UMqM<;%OW5dD5Mwe^gsL!he=$ej_5)^DWeLQin0X{#@ z<+0rYkW;|u2VS;?f2JW(&%@!ZEklC^jAdAfN{*m&Z^(L6SjOmVuLy2XOdRHwb0a^0 zo^2UxQiP|7CvIR`7r9pEAi)7)Bfh`&ln zjgzs0b2!peaN-*+EI!CrNuh{JK&h;fqubhGQbfI}R zaf2Ddp8YqFZVN9TRQ4qUxgJT0@rXcYYWPc6b!s?BssI`oo`H^G0&Vc;gBP^)=mY-F zXfaF1!a|`*A;zElu78~uBS6t*URX-NLKTVw@I{B_)1jXXNHPJvFpk`F+*ZLf72L^^>985`zm_PxIxLB2J0}FmcC01pE%CMsYl$3J0 zJ|B<&I()1@m@ww@n5--#7`#&@6?gXWhZQO&y?S?e9$XuQ#*`8#pX=82gKus@TSrGT z&&k+O!+2w9NlnMtK*zuUq-50f^z^fG6Cf_|Jy5ZAzs+}tXQ%%#{&p7KW;MFXRC$n5 z3m&w=vpIe>v)K1698<5BI;h@;X*c_@f9K7f8CCBY&>Orra=>c-yHS&MkDVLY^UmXA>vHCQtYgvWb+h>9 z3=Dli?H_RAOss9yk`>U=m6QmhSkRaG?8C&u$M(oG_0lpkF9j*%7k0=ll_$n~c<|Vw z1Sy-uk_M)c;Lzfc5eX2~aDa}Au_qqk8ph0|u8CAaNy~_a2#E`XQlsVqNiyLB6wU43* z&jB=7XO45MnG3+`dt*B1(CeYC zA$gCgY;kAL#eM#YRE{+6vijNr!B^}YC)!$cITa_tNKI&uzgW$C7_FkkHf@4!wSPaJldMLlToZ83!j*tnN!m$$~%=$sFdg* z%lA>%mb!LS(h(DtDU2A+XnhbdAW?PnPxk8N6JksVJRDWO!ueGg{jISmy{Lsdv+TQ4 z|Cqwl?XWcJOPGu-BjdW(AJ`ANYuA1fVto9>_+&y@ay375R@UZH2D+B3G_S4BdEW4D zWzcNv!a8&P0jFN0mZfz(;l>Z}szIh8Xbxy+A~ zfwJ@6@yTyHduzMO>aw!R%2LVF>gtLzgr3l-EAT-E6|10_dtKZD;IqKQkUkyza=wqw z5%K}Smt!$tq`+2#pRe>-6XcDns0~g28{=)Pa|L$PKbJTcIM;t%oPh@fC7ZshJ3bzK zkV3ArdS_W=Ag$h}O|=AW*vq&`)+a|);-<&fWV{C)y6tv*qw}@^a@cA)_CSQOKPh$h z$w$=+gwqV(8fqyz`@PeD@8+qXTaz1Jk(~}l-_4{^!c>tTVknKUhJ&0Ly)8P`J30zd z>!@!YJzoyKGzqb@v2^%o_VK^}#&>G;kl94BSV9?Jy$VlCNJ;J=9yY5*45G}DpvB*t z(V5YZemQ3TqJLl@KlPfmR@D*h$p|$%!W@@|4!6_C{|ihuBI@l9Y95~Ae183s+`hK< z?U|S)UZft<*VydmX+MZU-kyoexwz{v$ZHJEEBNM*o{H%&2L{ zf2AafK@G@mM9Y-a7<>!;%5y*p)uCm4DXpowXzD!i`@=uB(zZsOOPy=|`yF%BR$+P( zHjy_RZ&*b5xVXAEGSBz6wziJWPVF3#lzvaAf6srXRib9%lU_*sD*Wriz&P}6uwaTp zeveE@@VAQSr0ncqa7>J@s0hcQd?9_b(X%|e8iL|#=*36$xqaLbi(Bo91i{hRIZ~Ch zs)s>M3Hi@ad2KI#oeYw!7K=*eA^bD{;uC*b_7fU|FjuCBY;-=WgTWG_pw%la`EeL$^51!ff z2^a}Z7QeyTT#kBwMG%aq@q15ZeMWeTj7-d)CGOu7)beM4GCkDKVY~mbgNo|+L?h^7 zO^fR4X=oT|VDJYXmyeboD=|sDV1SYlA?1W{I|JEx;Chb3yVnsum!5-il+rTrq?n?~ z55Wmk;S*a0$}6)AlV}4zj^frD&K@pqQs)3M^Aw&hx6 z@8JRKXV$P9Pyg51sUxbuThj|o%wbM?dF|%j)X4Xvk$*ueg?RU4(ZG;Q7-D{EU}khj z5nX24w<>f3SVmBv@0)1ze%|_;8ju#MZQ$7T$)TDWE&=X+XRIYQ zQ57tHbVW&OP9*L4ZBoU&TBgoqF1e`t!|q{Zg85J!U~q|o5W{>XsPwx212}%60R)@JNkcW{`=2Sj z;{9X)N|KaILJfWc+o7%{w?7t14gv^Lx=QM^i_lWP%WK6`GeBUd5lY)cn(j+s`?pm- zq^MxN3vw6=k+GOKSaPW7XkVoGXqTpjhBBuPyj$Da+FDv$moh18kMyk%eiqMIYqDqo zP%Ji=A|ly%YKBOJ!U(gvdm7jpvKj~jj8b4xd+hh%=(fzviX<$h({bh4p0k{)3Tch6 z{rRXKU!9i7QVxx5p;8cO@23c?YP`*^Apqnej9{0VFGFEN38a0DVl{m(iXRw zCm~*|N$Gr=y$M?YqHnNV0TREv)Abhf$AyXD6CL)jKj4WaX47r3+l%@Ntl)ZpI-FSa z7MXZbzU*e4Ok)VFu;%h3jMa^d)YY{#j13HojZwY^0QGLvRbmhTM};&C%m$5sSi}}| z-RO)X?skEAA2iTXw27ILk9pJVq#4}ELs z5aI)SX<7D=BRiZc+g#bzi{W3o`V z{?3W1wEBBlMMV`8S!#Ml7A^%5HRWb>X$0#M+)U%#d?{Z>%4&inhz;3U4*V1|695;In3WcSNS`2)ob(mf zlO|uhH`fsF{s-=Z=S>v%QzmXgFMh<81-e#v&#YB_%Lf8hc@IA|O&5S(_lCuUj=i?q z@Ho8x#roqcIB&{3>aNjphkTX1LcVi~tKX*R<4h{!Q zrq0jLgRv|B=pk2D>%IOF=VykZzIGcRcdN~oA#84@})ykJDvdpF{8=3cvjgs)N?7Cc@}P(!nQ-RY0-&=OZmr zaAtUuoqj##z!k97e>ePhWLu!}2I4Wd>%-yUO9qs%yWaqa?ezO<03jM#ZO*vKWg?>y z4E}XHU2e+xZME4cbeq9}x`nso+M{VXN>fnLXWKdcSa<8;gU$_*p*I7|CSD?9cZ)IjJe66hwH( zUySrVhOrr{@O-i}gc8s)M)izpGzbl*+;Ti^4lkuG-S_u{jCS)dE)%5tw5u!k%MSsi zV9|DPJ?yp~m>(JGNeq|Dr$+Emo(>zFw&J;VYiMjNjk@Pt5Z2UMfsc3|puQ%64z41Ps zFE_dlHGMZg5wKqdC{}Rs`9UXDWB+*D>+q?CzORP@ijZo17{cUM6S5we&Jcu%VcAn6b5)T^`EHL4kr?(Kk_@P zfd9KdP@I#7P5?!dG;y0j3ei5@kGiUgWAfePbohUEW)7C&W~`$(zq2T37FYjv`uQN% zymG1I7C`X#Hb5c4afD5mriIL96_gLA6#t_*=0GE#*S@O&gR}d**5>`v0)X|xVFv9_ zW{LSO6RL^*S0=mF)n3_LL(7Sw9)B27Q&SUhfot4Zl3CyJy^-6%Km*}Bk;0x}SaFb9 zFvZ3q30u4&9#ReW0l2s+Pvpl~gbD_{xFDpUV5Lr-n3X1c|25>9sG6Y1gwd2InCZ*V z7TzxK-zu4KacN%-)&gcAXg*gdo_3T6X@DRUG9f#&E>!33cBBJYZ2adK_3>r z8-S;@0}A*bU4L&^P$J;kOL8|m?x9B=6;`U0>-Fw^QGb8Fa(k`yb+`B>;A?~-dkU@S zk@GZa4#h#hE{*tWH%sY}lQKIV5fBNc;-CPVpzgPK ze%=R83ZNjH?hN<@+cn4$@HN*rSeOB*hsW0C@w*mcTXgpu=+0#HUN-OfZI)ZTyx?64 zi8Cjp5_0oPz!;q2!eKt&rj(Vr{U;$+>{XcLg`!fnkeve)9?JmV99(eo-}IzZ>OmvJdTorj7s$L)o$cBkg5{(Ih^kC z^}eM=ukl@(zBPOd1Lj{YU?&DX?BCMhDO{;>9($MkKqG=F_7N0hTRuJSPk@qAj=1mD zeZp3D1i#&{cFRA5u>f4Xb>1@psI~^U1iFoOCeYRNqz4ePIr*<*6vW@lPckx0-_>-~ zSA4??yQZKx0n)h&meDbQ^t^KA`I)%$4Uq~iKhUppJ?E^7Bkna*WkL7(sWpzJhn1DQ z6^Q^&=a(O;sU!uZpqjtGuSQ-|Tk8=x789j1!opTzBLPz6^%WIu80b$RMDx}1aQ`Gz zxV7zZP&G@$eR)oiVCe4Ftw~@}Q(H5cn1sl}s<49@8Xgi77KZpY-@v1xk!x#q>*8&A ze)ZHodAh{I`SIl4B~HLM9#tGr24i(QIiy;{ddq4n^Mh@Z)0XK&&C#-^){CIZUCwF( zI&L)QnC@&HY)+JOL?ONF-QbzQl5%LwmOorCsf`}!I)mnDX}PWSNuB4%luu_p&U!`e z_Rl}}+4Z{2?}ratPC!-H+kXoh4&X|wEzU?Cx|@GUU3!Gx)xM$^Mf6!Ulzf10EggXYgTJ39j-cI`}pDJYBf^w0&00X!54{-4p- zVrQ^8As<_q5Ap^id@P3BhEsmMjDRJC{Ge>u4`I5}J>pD;LyaDz|5Sx&->P|d1^^vJ zCpI=}{QP{=!YT&xV0daEtr8jH?{OI|g{C8?jr=M+wdd&tS)KqcF%bdE_a%WBp{lZw z{-Q|2Vc2KdjFS-jkGXlnOZUlHSA*0IcLA@CdJ;5B-sK8;P*YyM15pDZZm*}!&W^`C z;u^>M>4a|)lrewG$@2CIi>T+5lX5#=nZneb&wjyl&t>d8gD50$7p@oi@6)YIaU`>C3L~2zG(Ot&b1h zt!h5tP-+7&)Dt$?8nx}b)2+_L|3V0j`{$t(>BxnXd)<%v#vdLouF^0kCnuM{(YE?} z;erzDveq`iC1Aly&(xE^=*+Gt@wc}4p!Ctm^fS8|#GdMRHxK!-T1+(?CkIPexqVQb zgrnoRry#}QskLntSU5}0bkT|nzn~5?3BU*sK}16O>+RhtsGsSg2k&e~MZDdGJoxc- z9EU@Wk7I5Cu3GfPpFQC0U0GhzUqQ`K%!4-xHnF#{u^HSs=4}X+R(g(NLPu*LD=c!B z`Ai>3%lSnN$hE`!{A=yJF#R#{(3tf~uZCG!0OFY!D@NJ=!&3oIl&t}HWf<1^opknn zJE;1HO`3m9yrn^6fkb@#(%Sy7u>)4-TcwNYmfYBx9r zoUeEMnfQT|+gXx-;d_7C21<@uWI_!dD-T8WuRguj{z|fE1%RCcpivKSex%1`teaf9 z);i>U{&+xCK}r_HGa+FTdO|~pM}!d(8Hb94Axoxe9iN-p7G0lIK@kOm1_oMt{Mqtu zUefD+EoW7SiAgK{@rdHeQ|<$H=E!tW88g1cMs_?*ik6Wj^eY4Yo}xuv0hr-Ok)uB! z6TXneKbm-@&zJT@Pf(lY!O&hqDu=J%f;8!5=KuFA9V1KFl_aHP4kPEQM~d^zE_iMm z5ykZKzHKmx)E92`dO!>vdRbU_kTU1~&alSpIVJlMr-x|<#5*|*-+*}hFEIMd7WRdI zLHc-$O(W>zw!53odm!=3|N4Flpk5p{ntT^KrJX(mY{Oz#{+Yf2Z|x^Qwyt%7iEu19 zA7zPfyF4vzZHWRd45VufOi7--?@pIqH+vAo>g?)>cciF}%% zGrl#-_1zsXjlr3~cM-xn`x%|V%+G}(1tLG}bE9ZGzFn_-JN8{8^Y&r(ab2$qGex1( z%i`9W>6{kOcaY%8ddV|KArVm!6Uq*p`ECe|v~i9on&FGK>{F*mX_|y_!Mg62A6LA; z3#!GSNIRMm2TL(-I}5`9f}2|w#3YY>g?j-(kAibD-8F+^IQ{KQ(y3{^Gy`dSiG9+dH{xUvmR7h{lgdFBKA|HeV^;4r(%x!^o? z18W-jc)921HB*qPPYQC!qs9-yb z$(YQs728;yU09#@cedW;F}c|JF(~=$e+TXR$GGvi_WW;u&GDANj|ey*MVozZ%v4u? zMJ0uQvQv0#)WXN{`ZW*RaJcM?d^RjTLdK9h++)t2O-iUw3gI{QM-*6H!@ zgL9m6e;Q*N92~XlfW)E5V~PHPTH1!$G`1!R&5!v3SEI{_|7Cz{71`m@(SIkTX=xC2 zNYOhteoc%1Q2$!GJJlW$K!OC#4@zP@1a;5am~k^}H(FXIda&lN&MT~BVz{BeFAG@u z6Rb)=ynFEXL3#yAB>Fy7k|#b9pM>~HTiKhAhVZlc>>O`XjjX9c+~yuO`j;5J&Nucu z>jW2%Vq-U2eXX`Zb<4wHt<~4|X@BCfHX%RIAs+h35eF^;w%fP&jVI>cq=P%C za7BZ`Dd8JX(&l>JTRiNYW_sj``TM}m=A#dOf~a$s0Jq=s@{*drqmH+MyoZh|%mggT zJx>0*#=2`+hJwNS=t{lo&_dR@JK0e>g)6u^X8sUA$JHbs2ihbU6wqPM*1*j#j-3L4 zWbgq^HRV;6(uZ0RF?y!yA*$r9TMKXRIs_~hUNdzCKJ4J0Z6{CsRka@TT0yp1Y=`w< z%lZc0*U{gme~Hm;ala)1=k@INkM=AkRAm8>!m7|O+0Ae4p8?Zc@@fNHNb%!;qZ#vK zsqC@QQ8Abp*SAjj8fARt-w2pszb5&-@fRjX3FCrFnJR3K4y_T8P3%Gk6H4Dr+Tl2I za&k6{>}>bv^%)`3Vtjg?lCpq`h#xHbE&laKxv))QbzOQEw(hnI*q4<)QHbdwChdzx z-S<-X|536BW;O=cLN!wV+rJP_6VHuSRa1Vit!VgmYKdI>1~pQ3ayh}Hysoy$+r;8@ zA-F7k<4qGx@NxUH!$3z~p2P5zh7yAK_`%#>#hxm;rgeG-zLXfXLu0=NZFCD?PzrF|dAwfyO1Y7m`L)hP&raD*Sq3;6q8ackt4dz7a$uq- zwfH9Zzb5W=wN+=<)AD`Gm~gzkPe2NMdxV=izxUu+$aGS`tNR-Q-WR!oXE6V%l02L8tDywk{*^w6Tv+ML#2vzgrQ!_Tf<{&-yh5OJEUj_thz z5<*;JJiOfl!+!8rp!*Uqy#1oi1ps)1y6j-Eh`-UEq5X{gGWT7QkLGX!)p<2(X^hFb zyU*GgcI`pn^{;fiEca3S6Dj<}ufA7|EMlhf8SWGwRP0qk8=sG^?mNOk8QSZ56Z-58 zVlExt-rKhmwmM;)H+Q!;IB_33L@zhDcGn^ec68*!k-Z+h9v?VjKXkh6jW*f}oQwLs z;eEUuin#f^c6yS2FjbNx((He*KR*LNFrcueRztbKnr#m%RApsMz|VfT)&A`L$zd%m zJG;YqrAqWO$`>kOxEBb(Z_ukwDdy<}gLbsJ3RD}X)_GZOM}4hWkf7*Uir9p30wFHT zSE(Yw-XcQEL2T+Oh6G*Ap7ow}>JQaU=j+&kHOPBiMWHQUzp`g2INzdT#sOfdK}LMD z%lxrcMdD&%rC!@>B+ZA&NX4@BUlald4lAAJLklW;M~abSJLU!XSf2u_QC3D~s28p* zq6qrZ_YjZ$lN;0Xn_4rXq5${nbwE{40usD*A(x@ZGdu#kPsiHYs$lsqw>R@SkWPS5 zX?`2jUm%Dmp=zL_uKivn!f{4*@R8W*4_ZVdoFBk)GGGzG2^IGwZqq-(lvzZ>IZfB4 zjOd(gm)HaYw1E8!0>DVEh3eF3hrYdFk+ z9;ZUyO%YnO;E+EzuU~@)Qlah@fwQ%6A=PTLH0>z}3A3?RR^nL)A@t3Q3yQ$Y)apvW z;p86?sSKd*`6ZMo`7pKC#4ODId7y4-xMs5(B5tfIKulHWgSjfgI7=z1 zj-%v7fk6OTP@spdg@vV}qJqV4FU@Pf7r4E>MS)96xqGm4v^SzYxsOV^J>x`!7sp^W z&13+Sr}kLD0nRMQ_KTr+K}eQJ&XZ$Z)ERL6CHk((=>#sKjSUm>K=Hwxgh1#Yj8q4n;2vZ0{dGGIyM zexMIjDG%O4Nf7g$ALn8j8GgvzypOlA+CSo9Q}t74abK{n8(wP>QLl9fvD)86HG}cy zu$sRrF_D$|$2>Zmj%ldn#@}j#yveQep(k1Rf`7dibaJ@`U7q0IRD|TzczERCeTxO3 zTTc)?V$n;E9NlB)ESQKu^`?^N2wO&EaB{SNNn)zITf$iWt%@uWF2q;b+!Z(C`#9Dd zQ6Wh*#`EFg!&GlO(g$(lR_M`Qdw@L9_P{)5FMW*QO!2lHxf>b-!aeYS|0NBP5wcO5 z-iw3+(c%a3MYdB^?6`Mlopjt|Nk8jeJFK}km)=Uc? zuzqSv>qnK*WjE_#0ut)o^OKQJE(O9oq%~BbL9-IH1IzSV)R4%4pt6kx^bawg6bRuz zBxAv(S2U3tEf=fzPVx5@*B=h+@d?SeBm}PV z2X7#d0EnWDq$b|!$?q*-bv{-u!L7CC!?!_MMB9RATOM4UBaQmY%v@etUQuCNT4qC$ z!7weuGB(D^#K*R@v9dBWw1S`p#5y`JH5r4vqfmu~3CUeh5ZL)GW%U&41X&+8s!x5W zjU@3D<6!{wZjq`mHmvYgQ8D6eM6_Rpjz9JWL-W0Czh!bm%qi1pz|#E5>vLgs?TyuS zUM?5kZ76{gFEm+08VyLG#Cr{n*C%Wlo<+ez54Bcjfb3bQldb~_b<`kvZ>Ea^Yi_X$wMW4^K*@pkKRw~ zxHY!LTk?5hRrHPD`PQFbcQoSuo_7!PW9e2?IqyWhMEGxygFOtJeE?epqta|g4BOJ7c-uvlKI+Ux!p!udvw&(^XmL)zt=>No9RLZ4i^%a zhC@s0NjXZ)=xnd`4?Q9z`{IQqkrqFdIfemSIf`H6uAvRJ2BPL9#pWQ}Rq zkogQLCc0@jxLyg&{!~+sN9H_LRgG%)M3n7+krIHSsh*sg5cb#j{RdrLnTuSOa{h2} zL=Fc(bv-QvgD6{xxzUC!(Z5B2P?GISGBkKD;(2Aa|GPvLI3b~^c&#@}izw3yeuac=;rB#uhR3x3nhR1uU0bvztBJf^y*_W;0L%;y1rb0YT?D&6jV zd2zcmaMrZHJWC*dyX&wVpVMxprwpK=c{rJp4ZQPOMpq|8?f#k0^OT+B7|nk}WEqKB z%Ma5EBKWMp1RNKak|BSKEW&RxueU&&;&mJZ5-R2FRw&%o(pIk*hnj@NhG^$fB%OSbzU4YRC zq;69=DpShhz9Kh=Gv?jMIb!}|ypLNuB{=8CQ_7;9;?92-?qe@A1sq~FI(_eEq8GdP zEuJnXY%e67xHo5ZpC6OJ@{qhsWNy(tzqYEl{r-C7Tlf|BKGho|)LDNO`?d6a4EBR5 zNs8W4ki`Xg8zM^a2LFw?)$c2>Ev-HlmlRtTR;%cv$^I4jkSCiLi~twiP+!-8h}fOT zdm_(BaG_vuVa3`F!DV6_US(nolW@1-GF%h&mF{KuW>&COeR$Y>U-TA4n08Xw4HA-b zTEx5=+>pohax)tESOmLQvIpD>-`m{EP-4f*n5sDqLZYxYxtZcfk`vq8D`R4^Vqz)_ z3d)-zUwq)VXhsT=3kgShK!D#oIYHSF`9K*^2tcsmh(r}lieXX_-O(sR=uIEisEIj5bHO1MiS+U{?>p72dRZZDUu z^34j+XwLtd@pUHLg^j%8tqc5zr3s* z;$!pd<$~NBrD)l|{@;fl8x#J+_NUl){evDE^>(Dp`p{sz>|K?SU*J|PpbnYBt>-u) z2kiAbnaxsB*z%w$ zBG~DLe-_cbaEelvSox)&4r~y5k}INbB_I(_VgtR)gT!%2W~O^segst6S-;M5*1=%~ zFF_s8bW1%UL4Ags+u3=OT};f>-3#3QZXYU7vu=(?#=ZqTKebCdu9cv2#xqve@E z<;^Z=VJjIFht_2*!y{~Zm{UhZmV1Q!vFvtgK$7V#VXdpH5C9|%CTdP<5)vi>B+ao* z7CcA}vu5$rroF2Q2C_zSQt{^{)hAL$eomZ9!%Trs)wK1VwV0kx&UliNP{)hysjap_ zA3roC_P6axI!m*KF{{BPO12XC2N7`Meou$L{-oI;>Sr^!Z+AsBQ_3A^pyk6eZAFHC|AN#It+k27%}5&l09zpFj=J3~A`VvCgK z*iO{Iz{m&ma_xomY?v!j<>f<>KG#xRrpRTWzo!>ZlFIE9$HI_|WM*s9)s`LW##D53 zyS&Cijfseh1<^y~f#@$drGa^6=)of)Ked&unkraV`Uvn5iOrht2aAdW<(i2}Rv!-zCC@9}qt;kQFgzXBBkZqBm6(BC?kz z&;TcMWu)rT%v58ixmlu$*+s`S-@?3t{O9e)HdUi>sG0iV&lT`^1wU*dC_K~nyF}c7 zzMa3G>kGd-Uu}2)vjC1MXR2b)Yh*i9(`^>F6Q^TG;O3nRc33A@7ZM(ip~bCNv%Nt{ zdE=aH73JbT-N0s`Y4U6mgi>6AI9`15f0E8JEXuC!!o$$rodP1#CEXz)(jZ+T0+P~5 z4InM`&<%p5q_lK*cZYO`G|absKY#keV`OgbeeG+lbuKLvZ9^@`^P5VUdw2WQMvKY( z^uuppyYy0#bwe7lc{x49>H`}}SVe6u7cc)K!pB;xIXn6G%jgbRF*Wvt1WhrbdJZM5 zPDj#FSJy*U7R`eeOpW9?){=(a9p`y9dk0ljGe1fVk}{i|tQnct#g^w)h~`dv5peur z1}MyY82&vl%W9tKX$?)_EJ^%&)%@Q?)%ly$yZl5qU4oz^LMj3hibGO7Fpc7q9HP>o zs^HHp#wj56y*Ipzb7%ufBXzxFu)7GKDh^W62{-jd=;G>eHggB3&io-9^q!0X2S@bhzw z^K+gmkobQy@afY&#TTaSd?plOmN(~46Lh|h=V3disFg5zNj2S=Xd47lf$Q0D3^qeX zMiv0aviTS!Y1+>xPqNtADZnMlWM*-`@RQvuIvqtS*TH3De5lo)+UL%C0geui;#=?i z{y+cfQdgU=0k^z&)OXe4aPuBm)qOnRZXZ8xcWa)y&X!?eU%BvQ6|r%$v%X}1$y#1! zBfPq>Ftac(Fg828IJq*uGX5o}GXKwIk>-nYGfdM#5@!4+9L8N>4DJoO@oMDRyYdh* z0HU~(X4GC(Wf3|Zgp58`wk=nUnT-VXldFLUGyYq~|ES5>a2;qJTC?$z9|C10b7=5s zNT>*Cs0nG4D!jFwC>Tj?CMPt^atX`Y>wl5s=<>yrb!Fq%I)>l|R?2)=s|7`C3;P2Y zTyPLgRsj7;0Nr*#W-w*kyoOlSN;h3Xi+ozms`0-lY)z5xGb9H_$SKsS? zRyKF`TK&N~`+|wd9tUIKuax(5895>W0j!Z}n>e$*!rLtC60DqN0YFBpiRXNb!SurdSqGdbZKP_GVc^ zkWZA!ey_^nv$~m?loZ0#DH#!w3ecZ9Y-8Y$h>t!#&CQ^o!wQKHJaoeQZ!oH02nw9W z^bG8vE2}ua$nwJ{`;R|!^XWmCwY&d=1>{T5AZK4|DCPpfL!g9l#&AO?zji>A08}nf=-%?Z0YKmcH3YxdJG~Cp%CLYM)o`kZoz&cgByR zEf@*icf&#nlw0)owh39^MP3jQ1}tok`#WSP6pxCGhz#r6NCw#b%{SkhCq0Mq#K*?g zlGr0NaYUkBT|2pdcB}5q!DFVvu?vx$ql*y~C5a-Uw;lTXN_)#9i7gh7n1mz|GTZX) zdt;)13U#8axfiN@PZtCOj|3+ZWsJy@Btnsa(9wzyC0b73AT@=Ia=);TBUl6`!Ft?q zE7uJgEB?f5O=~59ezOlhNFyHi$q%TW>da`$lbfQDqmHQwlHx%ZXHodwFZSi^U|QPN z&*t6_Gt2k?#uDDoJ1c=+gaWH3s4`z7ZhdhE1szM!IQlkhcw6P=hyL&tp9-zr_Yc=;i74=Y6XC&bc0teX zS~eZnTIujFE)Nb)P7Y#n2!eg)JrvsJ#`yl|C;N~jmDanMq&P$XsL+3>qKLk)pO%~o z{g_S9$^LRc;?&qzMb3D z_c&Q>rDBT4CzA0wIOCU=1#f*;-eMAvQ;*tK>l z>xB`xbqu7=6`XsjO8jwQXFHrIPDXC9#|Mb z?eEnbQStE5`6h78K#M|tLC$w(fKhwS!NkM??3D3SLS8VW)Dlich&ujhr3_+IyE}TM zze0>~_81x~FCl}N5w)_M^-FFu|18>=&u18)tC@%sv_Z+*R?b~D*U1w8f*%qI2D>_M z6@$qAYsQcE%U*dERbaj3ZhA8?H#b*P0{j<^yq_rtoB|I0Ty6hMNcyQNnH#x!q7M!J zuC*KKpGWg`7+J2|G4)mS0kPn|=@J3^)!%TurIb<7VTnG5yM~5Z2{As230rP9xDw_6D77*D z6xoJn%_acyrlIvWH}yC5g=lRM>Fn*sq>zvT2T3rMswr48Ga~znXTl&cr(_}q;3F!N zq31ZI@QGH(>uAhQ3-IyrjA>{mny@k5I5366(<)(UUic^9gG_XVZWwf#>3$TJ+1Lhk z#WF{!*n$$??GeD>-V|+w^RgR}_A=4H_l(yI>dHa33=}hp^Im+q8uaSP zlJM~m5fQoY{&EN6UhYixEA_%d_}n4<{vgK$%#+JLfeg91xk>UN95^_aF11+>g)E$+ zo)2^5f%k4lb1kmUBX{2}UzHFhaROc*Ld~m;Z#BPaxL$!}3F_@?TiaMy2Z_8>cEC3q zRTLr8!0O5X-!>~~f96Kt2PsZ~Na1wwYcofb=~zRP^pN!+Tf+Pn6{)J*LjQTII4^-U zvFA1NePAzY!f!EzX#WyF4=R#~-t`JAMh^vNXF?;eI({yPJm0OcHv3+$8=gNNb=)Fl zrp_IU9~*1-Ov;zW*7CHuO-h=LBB-L0?-d{HyB0#8QKGZ~)DhAzCPJ!bC ziBdSaFDpWykoV3Se(XDe&M~ph#M1timMrsuX)qdye)0T(Q~|RQ06!kLqn?|a$b+O1 zl>6Tz1|!qj2}wj5;=ZOj$F=N2LX=K|8mXSW7_1Z=msnB8)U7_(Pk>%hkfjPwOkGPl zU7w!p_u9;Dw%Zwn6svoHm)r7U-G_qmZ`c>k<}ooJzwC$eXgIU4_~C2=BsY2l8hQYa zjG?rKQ&{@BDJ(I1~4s!v}C&R^gCJzNy{)w&9~ z!OvQ0_C+Uan=&6kX&(mCjS+R}4#;PFZDSomE{!NCXc|O?g+;xs@x1eLw`^VY&h`j< zqo`I|G2dL;tt6+UHhsFC*sXv#;POW(wlC@#q*79nQ|x{^*riO>r&ALoNZ3}$RX#gUSZ>&_ z6n9Ql+oYcfiP_K(aysb^1Rr_6cvC!@ZgaFt-sE9zb$PxuXs*-CVbb7xv_H+-Ii`bH zYz3a2%n^wy2TS|o8D$}%`Ga5l_N&fovY)kmoB>%sGR!Lu#CkGQeZ?>C%D3R74kn@v zUKb0FKn~C}vamLL0;=TiTKgegYE(4HGL0QVxTs#35cE{F-5c!l(EGb10NgE)gfliF zNk?mZYGS=UIVH_N8vRuh!(ayQGh%#vd}88$@)!(kbc}#?Zh9UTmXGsQ7U*Z(W&o_{ zWG=Koh;H>YA?IeHBi5EgfJ|u<<#pfgFeSI3T0~Lg7hGH#pOo<4T)&XmA?|43QLSiz zpLPD0sJFQ^y8@;2j&XbKkN1R|v#(LSyo3!#1TuG_?h>b@~PD4P{ z$4&K7lG=}_ngn_h`T?W6-TxaZuC+ao!b^*Ca`KD6)8Q^!74K6}q<;B0qd-3$wzY>! zCQ0N?=10q^!?YZWQHuVVnGr(`)r#&XBPSv*B-?O`b3x?7;|4*3G(=o7Vx53p;)E*j zDY{+yrK={<@GvKzxaZ?lXTclR(e&SAGrU}a9_UpYvFka5=H^M9(Kv4I)wPE8W8gZh z_s)X~&)iYRb_EOdvi5jDL_T(Q|g`Ms0yPVyuFt) ztkq!CGZS5E;E9#dmePNtk5hs199byJqAdLT(EITQ>bCOkfGpka2V%BAgd|DYGyIk9 zF@?6AR`--RRfZk=)kA+N-4DeaZ#<+vd)gr~zmhx>dpf<%5`%(i`>FB)Zj!aq zJ{?g2$iqm;JzGkTV$|%zpu6`~Bus)Vp*J3ui+X+B zw_Ih-(3Za>7NVM{r8Sdjx7XtFI1<<|uQ{4I>U*=%zSO!gc`x8#X_>jy>a&UA(E<|s z`x6@hn<2P|Aj)C$PD4}_njIVS@h|yVMC7j z4XfC-KvzmC)vaN&>r7nwU)h7P8YswI9CK+YEpgcGd2F3PxS6~Gb*hIY0&3JA=PRX@ z*&Vy~HsW6SEwyE5-d^q!hxhI-ZhxJbAo^)(qX1Sz@`qL^zRrCo$`GcUViN~i_rQ39 z1o*W)g^XAo3rkY~sjoWQHrIg?|A5Ab5#gS#aTMmkh7l;`Jmp25jS-VpkW?NG&aU4f z1tyZPELw#}7^-A5>+V7?Sm~kwhqEJF#nO^d#`=?- z#|vx=v*Xj_pp9>0JVYyzd<$UWzN}O>$6OLb^P9qo>^6vl4oRH7Y8U-bL8I%pLKn&j~^2q1v}l$ftwech(Crc7tb zU9dBIhS;NzSO(o$U9G!oZ7uAsbpYN5i4BW!ySAyGV?pEHrFm?Vs9{tfECgbB6`9L~fb~ zHzP?Mc^%c&zM&-o|L5vtDp)Tp6C+Aq)cXm(hGdqh@L{AV)V|o@V*Xl_km8>x+$5hT zd*k8j34xq#4i49ZhJY>IYjfeV0U>DcmUG&RRXORB5xC^AMmB15eWz@j`jsW3RI0_i)+m zP~;590@>yJ)Ai2itlQh8gFRp_SZeb1{G;Kgs_NyeET<^t`!p^yR_jGbw}w70wPK4x zZjSudIB5tUc0!AJ)BR`KHR;|H7{9{068TX_1?>?UZ^vwuz{PZZDK-AQ%6%tMI?44U7wNF!S4RS79I?f?l#Lt z7*khD`L^Gj?(*=~Y~FKoJ92&u-L(6>-m2dGWaAI4CIA}(y61V7qUJeJkOd)h2v&^1 zzkr57;opVVhm~0JJE^Wt)zmcG4`OKT?*rx#T;RPqJc}#RqR2pwgf@xJbErh6Px@AY zxA5WZCPE($4iN=khvR#}m@{3z1#n?E2Xemk$M2}&e&$LxNCe;t$DNU$!bURKJv`jG z+}Vk}q{PPJ?H!Jo0+X57*GnNkutG>=V|eypgAEgUcwz2e_`U3T&-g#KlCQ-lm1FTX z$Ne1OZK zUY&ep5S%{%xQYPp1zOG8B_U{xkGJ_}4N7@e~&eUnHBOz95P^Je3=W{&uzo1ECC9g z&8UG%%z1Oh2qbw$JoqHwe~LObCaS{2!zcbb-w(!ICgogBPxpO9#XWCD5FZ*5^>J~3 zI5)j-06mv?!9Bl*OEZkb#J~%No$EHsPIOYuL{sm}ofS>r6L7jnXJujw2??bXDVFHS zm`sG?`MFzSj4X7GwYAMnEiDa@gmswa*tb%5%%H>=0#jEAnrSFeeo0739d6Tq>rSlc zcGyVI8%gVD_86&5v622m%x*0^^=O-($B#dhC5S~L119jbPF*VWhcM|)t!pfdFj@MJ z8p%R*(4%H+3JQVjLfQ$asmR}wn2x?>YVunfc$PN&UgN0$15XgN?&IOl(xG8&*C_(_>OGkG}q&)uE;&)$8v zHT2K03=CV?xR+Nh;AG=}rIkcVE#c%S5l^|$A14)3gR?k1 zIZH|te|IN?I6Zgsb-Ku!ocv(o-3z8NT@q44ViKaY^|#L#QpooXKvt!=q{zCEd0>!( zWc^-$>rTj9%=9TqXPl=((v(WqxP2U*Rg*`+At=x<1l+(`Q2JYcQW237Z&}DaC$6zH z@B%-o`^)k&EI4r!=xZB}9QVKKY1{{Ng2ua^j~;ic%gYPiWtBNCIXPt@cvw#dAIr=D zYt(`Mks-sZxMnjMw~ud}oOt4)p<$v>iULFO>p zHY#K>3Xg%T^C%M_(@9UiZg7M9;?g!h7my=*b3k}nACF}k&;o7P>}!P!`F(@OWAt~uq+#V2;ZdT0fQ8>u=WK^Y@39n?VQ$`$A-qI7nj8nhfA8@2fu#K_ycGYHSo3A++Njm zj#9Sr!k<5X!j8JDHogNET5A5)(|Fo-PR?krs-KztF6UZji6tmVr`@vwg@?tUD5h9! za%yQ|Wu>Pd{;J0H?`an1Iqpf|tpqEf+UQ?OC;kuRO3Es4jDG=V-#N(iO6Z`VTbq6Q zkZogX`_TfkN{l8Iu5XZ{w;*{!gB1^9)Ffvkb>{>f_ooW=nY4hzL`_2Q=VYtL4ds>= zJ>*WA-A-MNDQqNrQu3)c_p_`A5@Zy9CJ6OMqv>uRPdPe1-ro45;GCz~p2iUQ<~cr> z8~+S{Ex*DX#PNMYeMK^sJj-+}+$= zUBNq{rcS!(a5LoM>S(2TN6lB!Vwv3I?U;b$-o)u#Mn7l0vm@lVqd$yNCxjCRC)&8# z?Py?bD^@A6*@%57bp)K)nkITq`!_jF&A;pH3|qy4?=TX0vt z3&IVn;lA9_@(OQMlt-sJNaXSwJv^ioO$vkdw|boN19yXJYq-W|$0xM31K)f`Bci}P zpg|39MvUCr-#a=uKwNo1G@Io6qNkz1-8l4Z>Q%p@Vi@|FlDRp(^y6}h7M_%{YdeD^ zg0r5rBL0)m{W;tdT;&tqO@M+7skl9RUo&+jLd{=wC;z6CGs1%K0h{6ymXeZU$tO-$ z_Lm$S9PFh(?T#rLzZ@L@BPBK8-`t*LLrzS@y!g1?iVC)D0Y*n1IK_N6|CgJx5uTmW z)zQ>6F#&8#mkq}ij%4^Gn4UkDjgAZi%$l610>EauLTEJ3wY&M8xh?zKzplW2T8gj0 zND&#F=9fs4h{i|}i1wUp<Q*gKKkCQ9VmgFWtbL}K414`7wm-dDwk;8S60I#p*{6@OtH`2I=>Tt0zmvF;^-;5y z?CN0dfUe6^T$98qare=uCeb#8D5}xXQ3=n+pX=UA29$kpYNKVN3Z0q7$>|9-ZKu1g zN*PZuwFv3Gn;dh=$t`hrwEFO8Aks_K*jF$0V6vnLwXWQxWomJHeqM}gY<01-a>G{K z05_w7^3woD6!p??8xWHL6zOk=*awrdj6K1~clF$Ty77@<0&g5jU$}S2qLCW!#@PRo z|IhR4zrMbMyLJGa2D=Bx9eLofsd*Lh;%2{?r8xCVexe#Lb`&~nqBnL6P}|o|Hjj=r zNy&()u$&Z}zIcuxHM_Bl|FBetjfo*Hex-Jl|=;XosZ-7>cYeV4tBzQ zA8dff)O>ZCa4g%3*@2jboSK+qZF397NeDT*x{_=2?Kx$#ZYO8&`!l4decI{ql&wQq z7! zg@|Y>X#*t)lJ0qCHX7RIK8Pmg0_W9NH;f6cr4@X&4s+)< z^9F85i*=SKE03Nb(KMr+%*BOvpZqudj_fk%6gwZlh0hHf%D`i=DIZNGp=YSR>XOs^ z+tSq0O6p-U9osxn`e> zZEQMt!H+7_`$Q4 zW^l)ueS?r7PJ5cSvim<~726Y7pWx|&g~Ot=VCxzmbIo9h&8K2h#O%h#@Aapbdy_Gc zsq}`iaS89OyRPP5Rg;!mr$0BJyuXO>KJH#^`A1PUiDUHx-9hFUD>E&^Y8YJU0I94$R$_!%Q^KW0s^Q3MvW*6ilmih9s+8E5q zwzV<%dDyP)1K0RM;3pc`_U_?6@->Q~t_qfXF=9dwII9E$C4^%7kf?$uKV{48NuCnJ zI3;%wblSMr@E|wdrw*`hF=xyMyo5eRu5vHApIXP6%vYcsnQ{*S-$5Bc#CEWAt0fyj z!YrTM0&la7&d=eMCY#Y?!2LO1^t-Wo3j1EQf45y5ReSYLg*3bLcR_(=cHN_`4DjPA zw)a0wb`!r+W*~8{6CJ<%|0V?!QvI{c8tuVsBemQv6l9y`!V! z{QP_ZT)sTL+-&>jV`?}6z?S`$*eh#2t?asgp)m{V@8zYXEDR64@&`iRs%s=hY$e$_ zmRMo~;G!9#>Zt3XprEE^nw?em8@14Q7e|m1Q&YwVbYi&LQH%M2OR6R&CRo2KS6Bu( zl9KJ7V87A~4CwrKT~_G_2PK2u@IEnmrMeluSx&oIyEunR3?!M{>Qfg@3tKKZDcqI3(ti1R(mD}C?Xl~UTVb@Qd94}RVx8iuu`7lj?*0n ztG&yC!+E@gNKxT2v6*GH{yAYUZ+KWK+vvF@4zU|OJu5QETqqKb6$*aM9UDJMq*HQH zQ6DPC=vL^eXtAWDG7>n-*1v8uZ9A5@q0E&0A;JxcgpxY9TIS@FWtMR&CX=-{5 ziOLc-GMt8xS}a2J^%oaK1V`q5j6jTbDv_8pgM*o^q)23TVt!h{<80$}?r&JXrHKoI zF9?NBWgO(f0<%OkG3|c?*6Kz;9IzZv1-%Fg3M#+=gXMC<@0T{qjo+qfimYD($KH1^ zJTW81CsbzErhfnL=bzD|pWCO@{syL%O~v{CDL)dZqu%EHYJQaN$nJK?F3-xU3!%h< z@evI4OvtJNc!`XryvgVo-W#Z%?py~Vq7LT?tPKK(v;iPct`v@5T4G8X^JHtdKrgN2#p zWr?kzU(PSfwT-^%G{U&a^44HT6UZ7rCbd2>&_Tc@)M(#E!ob8p+xVRxb}zx&wYIUk zwzekt8$I=SKhx2u;S_RmYa2~T^#5XGTbQh$E5O$`3u)7-? zKzU<07a(dMD7h|0tdcvvtAa&AP1Eaji~RL#5Hhf-czSv^$Plx#L`usp=yo7Lji`-e z2+et&F`WT1R}e?R)#>l)>DiSFqT*86UWc3O#nm+~2F9tIC2tWez0F^@d8JqBhKjub!!VBO=km3cX@fs z7v2Yl`^S6KREIVW_CMJX`JP;Wgy93i1Yj@Qx0_(I34=7<`Iw!I0)thnhxh$}=}yC4 z>Oj?dJT#R*v?4BRk}EAf_tyZdb~!hm8*%}R$tx8c?9?l;qJH4&4!LU_mwI%_%LS#I z&9WMQbUwuhd6TXY#HN84LkVR80l+%QcIG!*OK}vyVllFXf`(S zFxDlu)N_l#u2^a#QEzBKKn@1*ZfJRT48;F4KL65~{b@`?N=$QjacuOSv86pKLz3@MOUeCfcbUHhWP~b>R)YO>d zu6-T1%aJMWZx%cLIm~8a#$mY`-WL|2i43x7>BN$S9206fdivgXf5M>k=yP*mb||>s z*g62|OP@%_wE}mC)u!9?yYb$-a$^r_Th{>)lm^|c$HAA64OG`10xZe)9cSl#qZ1(fz zr_JK>av9Uu+h?wb`%10dN(cIg8m91}@)%;%{Re#DlAl#Oa-KONLDB88W6%VF!;L{$ za;5#faQlVdX*5#IQy3Bz^b}i}7}*-#%=h@VH7#O?^X4%ct}aPm3BiMiJNBcYk6B7P{ecdZ^iLM`IH zy=}i(Yj^bQ$oawTw-e+}u3BpcMV@P)>0Jjw#kQp!r)hHOH0InLzsB zIiMW$GwZv853tLu8V*-wjrWFHRx#x-&~lIM*&4-qW^_^Y;p`~fcJ@yvi{>i}x={L|lwUhJh_};}?o3%N4-uM>EODQ^ zn~zspgGuG9emU@)z0O6QNn8h`V;h^Fr2(vA#9Kcg7Q`^D_{7Bc_=E(KOi?IH3_E38 zP*OsJug^^5Wi`0NmJk3TP5x^z5-8~lw33xfB@e(bHqZf@Vb@Xzg+H)!S5;L>tt;YW zGrGIv1-h%iARhNOcZkOa2b=3SeVlYCFzDRoA=_J*oaENb9MDW!8CLXzy_$edlPrBu zg05{<0`lp7NU*$|yxdphdrzhSgY z?S^Pe(fjv3gLqIa%nU3kDE-Su|A}}rkJ*Bqlv!uG(sTLfU#+>nH~dgoP8s;Mnr|!y=#!}i*LRuithKVn*!++f zU1-X7*VQ@hpPP93HcfEBc5vVn9K)i#d41RT1#qkY>OU0*X|rYl@JrF@l%s9rUO2ru znA42oTEtONHZE&`%RaXg+Pt(pH-aUcAuX9q34#~>9k+h=Weuzwi|-L;rGYN@Og*f- z>dly+v5~Tok+vMjM5?G58>{H+>z~6N;@EZj7?>+%jrG8VLw>c5N-=ND$Qvrd@cv(` zFh9c!cih6~D#S$XrL9%x|N6TYQWx%0!@q-JLWMX%YieqGIxFZZS4Jm0ba#;R&xuKA z2rkfz`~>dLyDukSOqQ>-+&}WS6$o%?dRoS@)Z z89^$V5Gkn)yS5yui4dsd2Ld9(U?fOLH@zJ@80moVrb{lUr2_TFj^}R^oY(Kk+mW1o zgLG{N96BkvyQ{BA(10tlLN+#CR63EVz`}m6%K2oSaP9b~&8NNK+P2*6rdDBoVICe) zQ68tt)`AFUU%&^|!)9;R2WbJ+5c&2HPLt-_wf@OH02TDPsi7o~hjUuy)2bL!l3Upn zvj-X=pJz5bd}UAevigfushDnza2w{4bhX$UBZmtgCCNHc^H&y(xYo(--h* zsv@4tB5yN&YZa;o@xgA;7D%L3b9wpqZ?;`v4#JcX$X=jf!&E8%vpS zE0W7u#5~owUMm0OQj6&6$Slh@gK7aOU}YZn#9KydU@3l;S=*D>(oCxZXelX#}REh!M{ zf}|J#mvdkVltKAvI%8rwJ7cm+LShv7G7onLZXdGOD*6ihK(+1HF72?v_qmQ zfqN?rF0VLAr1XNGK_I8JIXCcnH~CXJpoD&P+?6)Y--15r8l1qMBRdMb5(ERq*NTz?gQm0H33SC62$nA$u`|}Yx zzZ_OaT5id)ZyvTm9C&AxX0?@j3G>1aA^vXlx6OSmSfa&GhoM*EuV?QYR61$D@0hR{ zBp^ua?&;w~_JjJbj&`O5RF1t%Odv|7gu}}!)xauNQCo9$3d3J|{cw*>)laRjtD7@2 zIt&ftYmjnwYXR>tO>|Wy7s}_!uC6&GiuC=xy?v`a3IqBut$bcgE|{s>6Pr=We=WWY zY~58nGiBkpfi_6C`3&ghmUd=83yJ`lis3m2Jzw32hf;2bXXV++d3oRdYpnGzO8Aiw z$qqF$M>l36WMBa6faf6e#chUAzww-r3u---G2tiLIEvuHA5P_}#eNw5) z@IuqUTI|Cl-QT1HB9a7cfA3W_13ip$ILNH1B*g2?Oufn!oApMxi@d}#Zg|`U&n4^* zK3oF0bt+4#^#bVcM=$pFKyYoP#q0hlDXYIdBqgM-hr_Loe|qMBH3Zr^iGe5BL{Fag z7dTX+-n(m=hI2tnG0pZy@2-L))9UPp{EZ4P|7=qKAI|ce9)40p{njsK{?}MqVJlGRH;PO79$C)t^xA^Y!o>XRVqOK znH?JzLJn7*6y1?+4i5qy8voe$3lz;^|1ng72s< zBMaDZTYZ%OaQB*#@kiO<$TB9Hq@t^g^DHO@FJDcqmk_#LI|gMBWhSls{7b9T3+K7^ zZkr8>V0844NZ<6&%v@2@={Z^QJ2gG;|Fs7nT+wOM&ak&Jk=r{4f0oilhEe!I%44|{ z`X=f7e*vXrbWn_1GUoTay5pbPeceY=Zbzmva(B#+$kmF5{ot!LnL9qS zUuZ&sw*81J3141J8qE~*c{rU(;Ozz5KB4N;f)ebCtGm>5f^7FQ^&A9WUn#Rt?_37+ zHM_S&#g@;d*U`>@)Xybb4WKz!{`?l_y@CLdR4{z=PFo4L3U_>=9XJblgr7YZV-OP( z=b>kVdV${UjKk9L6+;sp9aU9QNmyes&)r==OW{G^!v!R41!)RnJm%*lvNna!3Ynuh zlTriXLqqW-a7j^Lc>h;H=1p=p(Wz9JS8V=P7Fjf0Vt=*cAW5gTtRdHO5id0&5a0w0Pq(wxsD<$Bq@=Rd zru$vcMxdJ2*t`!r^M2C z(v)Wj>7FNw-bPP+=QcvL3Tvwf-L+D1SjnWxWS-c3FE1-X>m!zTx~(wh-FRy)9Hdm&N0{kgyLhxZ@`Z3&*;c?BAro|k$wN=0)!?t`4LMmQZcK`=MWkM2*6H{j z;ftM7V?n>Cjv(HG?VarrLw&^;QpPZD4N4-Gj2un>dfUIzz#1yn?NFx=mG#bq3#eHr-A z8~)+?)AOe-slkrt%s4@YqrlQT)iJR`{YJ`GCn7o-mzp=1ApCyCH&i!S#m znCQqGDC@J_A`sJQqb8P6`gkLV;j)N1KQahSuPuCml}acwu#=eK**F&X)y*IL_C z^Y7Pg-;T*pL@N+2ZhCNO#k_C&Kx~>RUnTvw?{$BPgI}2~+}h%ZNKwqc)03`iKuR))B4n97x3qTx`R5)osr6RJA*I!pzd8; zXLfp;e(7gnF&pbkj+Y#zW&g|kloiPdv{ipiE>!aik0=$&)`37UoSYy&T2tesYI0KV z^fjdQ6}4sLX+scT@o9viGmPQUevTfpE{3+Uj=*cZ?IT-Y4h zsl^yDc`*+h?s8bqNKvtQ>k5%5JVZ1Ca{sG}_{8sOCl}Tl7Pmv1^be(ay&hMdC3?I6 zbYw7C;ii(6oSBiC2|;rFGdJ|`P{a#j2NLcy2k<4pX)ZT5XmKT-SpzIa8c|Rx|0uBP zdtKN1c=~w#PtA1MxfG5|C6nmb=x}%Y$PB18?VcX) z#FVVaDvvIAkW^EEC8g!QYVVSidmUUke1eXt!PAw4=ZtS6pYEvt6ti8ll{IM zkV8F-fHCnOf?rT7G!hXcIOmc_diy)-p_uTcY_mTkM1)C+n(aB_1|nWwsH9b>IEkPZ zXl+G+%S1>|5gnxFUkX`>BFs*Vj|YCqEj9lDBzj02c;7SeP#Cv1odckUkwIrCy{+R z3IL(^+ealks>dsa`b}RRdrAShRl@t>Z^XY-%J25d64KTypn7ch8-x$``w$8rMf@Le z?N=v2_hCg@eifEnfl_#c+L!P3g%$OAO^q$J6vu7h;R721=~|)@*KRd0lF1GZ3SY8H zwri`Y_b{OYbBCTaOs=Z%FgG{af>d?Cl*+JKZJvjoiC>(at&f%`wG}t$@B?lUPGse9 z*t^=P&%R*9U8)N)$db(mcG~Xe`HW1@f8<;25EK9TkjL27D~o&!fk5V98imEF`oass z!i`qXW$EzP-YR2VPJ>{X1u=*&R#bw}lB5!%T1pxI7YuM~HPEBjD`tHIKK!{e*Hdt+ zip+Hu_CxEsjW2|%l6@q1Es-1fT8ia zJOsy-d-juw4DxD9%HE!NTSLnXw6o-L?mMfowbC(&^ps zZ}*c`zZ=K{d}a6`LWd(GO~TjeWMutFtd#N-D_x!Ck1o0IGKs&~+n3T=!t8bw&QH&; z@;uc3(eB6Ymlbq0mER>lp8S=6x8aPb&!i%b{}TC?k&I|YwVTTYI!;8C@>|8xf#J8x zp~w&zuX2kZ?v|Aj7cVzAf^=?}`13ba8XE)?;l=u2n2<#Nb64~D@Yaxr0wFPx4s`$$ zPj!!o14=UQ)eXGyK)9_$< zmROUI&*!r{FsdFedEHF^DhIt#PY=`gepbvkmuJfnAp+&bqCW4PysvjpPsh~YwZmc= zcI?AIj}OQEN4g&WTV7vH^ju+(#pY89%bSRZ@NgweXGlOt^TDyL-N(Fg#IFV<957Ms zVR=PGJ@Agz0G+4ma@aNg&m!@|WVK{_?xL@qq~FTMw3Y+yqPz|@^-gep@jYlRl0kxG z*&vtre>#!}MFioYN-BYULnEAQ1A}jryYN%N^3dRW3b(clp=V1XzqW8E5b1`7y5@k! zsV${~Q$V1uBe@F6eAXnuRarr|_7cJ0^k**p3lK!=>b)JUhH*KDpGdqb&oMX6gO7`@ zxkDio!onyJ$lJH96LwjyTu$gpgC+Z^i*d~|n-k}Ql)`tx?zE|?CP3?GaXq*y{e4aA z1BQgsEy{=_(vjg&sx)DKAy2^Q>)(sJumrGNKVLJm^^U!UxPp;%u~x^eeE?K+kZOD5 zefKv4kiwdL9`CkhRgahJs~p#d9>O+5uCV?(?AcluzLfDv`cr>ON2@AeDFR*UuE!1b zVRwrfVf>GEK4U}54R~Ls)Djc$Hgt>NSzbRaK5ml4$7pL!bMx`PSP*QyMG2C7A;~j1 zG%)Z+F*GtPGAca0&5gM#BCeD;k3-X(0fc?DwX0G7i~mnsLw%N;r>@F9gpmvzIjlM@PCHO zYC0>!os)x|)BWu$sj%KvmbscDV0HLLFDPkP^kN*c!}inm&}eLwn~jA@92AIFRJByr z*j&^eb&B-#yhcF{cEp3kw5_f!afG8u7zPdsxb?vyQ#E$J1yq0{rR` zKwEsS&laPzTHsG1ppV$|etYXz`7xW(Z{N+HbMTEEuL5`UOMA$}qv(0T$x5s5+0Dqt z{Ow-u=5Kc_+r`=%+)=l+^IKSDn4X zPbGJSI^}x6iqO^5(=jA@f8T$v{{`jaA;k2f;o1Jp&%iJPHA5Bc=(V+DN`j1d^{TR( z0>9atN=;0q!8*VR_q;!D7IBBcR}C9|UDpr86hk{haA<}3xPA5yyOl^mxv|sMM#JQV zv*n0UJ(}*?#+Hpz#4JP@n9n!1D0MS9O+QU2^)%MG|%URQ6Jm3q z9v*^ZP5+%_XJ)M>bG?5f)<HM11{GSez&K+;y+9}uPgQUCz{{L8tt#Ij;5pedBL)&8O)%8oi;g{U`{m=XU7Nx zTjh3Hh8+Jf#b0oRqr?Fo4#NQM1$BIgP)@fnv<=CsC}6s&t4M(>RtxcVSvhWI-Hm!^ zaPt|dMoWHtz6(b2mf{l#QXv zF^)mtODr>=$fqw5LPF$y9Anb}YW-VO8YT><0H`peE0|dT1Vt$>Ixm8xpui0OH%3WG z@D3~z8w^7S1u$@-n*rwRA_4Gm`JkZ(sbK}fDhXQJ%{O%R4?Z2f8$PIYK&F4M_5P^j zs$KJaRA731cx*~&n!jb9`{5<(8#yRjI1~}T*k)Y?Q5icc!ymghX^&L$jP$Dw2mxS3 zmhxW-!MLW@*5-14bv4l~k@-Nv!{ucF%(!{QiA>sUh>-Q8{iy;xhm9wEmv)=|q3gq8 zXJP^O^Mm8!@{G@I^(`*@%Y|6gN?7ntR;OkQ4Q=@?)NGWWSr|EJN5+ZvNIT~RHKj$Q zLD%#JV4}1&BY8IUEyX^uPe$S5J}Ez{(4Ciuu-DYoAcxVvf9k^gI{z*|&sw+wtVvR)k=z%e0TjFTFFhp82mx!Y5;6H`A^(r;R$h+n z2RC;&S2u;fhO22?7ShbqeRa+#D9Y@za7?|U{kWs(zO7uIO`aZN8BuCI1OX2}OOWS_pBQ$tR4wJpZGn=DQ@ zrOy3_qY~19OwM;n7h?m+W;(WM$`~ndjg6^*j~|zH+TB@Iwa7U#7HP1%I~E#EH?C7s zetd|AmUduNE&>(d%)!ylN6OmBATy7aiIRpK-a=PVeWfGL#L`%-g7h~581NSr2rd8| z_*aE*LMg(sM4lEKHQi%Sp0YS%_y`ynP&%`^3#`oq%1;dqTnpaq6MaRs^he7rKtcKb z=ylrPgz_a%XuOjttH4yyhQb}nO@4s3(0re8h12%pscXBKGocK;YnB)i5D?YqwcVAJ z6r3Z03iAd};1f5mx7Ef04lRVs`(&hWYIjUHHJR7(VdQ=|bT09f|KZ?#sysu$%jULk z8wvQX1UOtx*5(!D?M1XHQJr$6jnr&1|AhK8U`RCkDz6V_H~h{GYpKddrR~m&tWBjR zc}%2xtq!@lEz4k{GTFn&Pf}l)cl{|!nG4lkXu1!aNYSnS;J#qH0J)EsRZ~-wF<7xN zSpRa!pRFil-`8qVSEKwsu>klS z$|kzO-qoQI1rbFZaVcTpZ&A7mu>Ogjh68)@;p{S6U91OhjAqBU>UT~Lx8cCuz7)E- zzb|K3!_GN9*Uj^%)ZE~^;i(Ki*%@hbSF!*0NdNd8Cn?1T4ocqknzF*YAD12Iq&}U; zOOJ|A-YzCK73J{R&X+qU>1{wkTefZbH zrTeko+8dkT9s|PX<#PMZ3bNc*-BRNLj5p=!p3ghpBUn!;5^x#(t~Tc9T_aiGdVX+Q zOqngWp05D(k+!Pr7HmXIH#>b{3j>pijQVnK1>pa(({R$UQZZ5?h|kZA$Rly0P~R)0 z9r_|I6@-WoA~i@`1PxJuhh!ENWtZf`J&~Lk{b0*34TaC0Z0Ny;bZ{@6@nZsE5_t}J zw}`*T^2&gLs@}_3nT@jNb1MyYL)(c@IbRE(B8|@`As#{e@8t9(&8U?41Oi;3`8+xD z30PfL)72DF6c<;KBSs^xL6)JXw=AWnACbLs{4^7%Z1Y|S=MNUt`wn}SE`AQ_)P|X_ zfQg9?3>n{FYZ>dwo`%j#qqy2(Sp?d+`6zq#I8>oY$mzw6%LyO+w1HV!qrUhbqp z+ldK9j7}(Q%;m+8Jjq2sLSo0dx%t8GNx197G$REA1B#fstxy@0@{2V)13wWtIr%dQ zm)IkwJ`Mvp8#!S0!Dj^J#`$H((B25C^Sa(i^!>>-+TMbJ9gzD^(l03|D=QO(_(p1f z=g1;bghcMfNoA)`JSwZ^lTX{;-u~XGLrUB$ua|6UOFry zb{tCXFJD+NFl@ijAlQ=WI3=v5K>$5Y^)kpmdDN8~b>_#$+#g!{>7BTGFl(V(3 zVdZ3F=V1QC{E2LlJ9e3DJ$89nOIv%THS-Q07B)M`Q%Xf~J1`-lY*h0R3i`@=A7-rG z)5O4}fuz7&-r3k$)%o-$YeF#<_5DgC7IVj{=dZ}ok#rt=tMB_K0M#Y~^XlD)w&wYC zH`)w>ggoyQO^&AONmg6C9wINL>TSF2@Hby_cFWtJueu|Z2G+bE4|=D{PuAL<4-a}{ zC2qrRZtK{s0gq4@eyhExq@aS7lb@Z2_)<|J6Rmf}e{-J*`yEk6a(W=DU^K=C*^9~e zzhhb3I<`3_rG&(HSU6z86s4#Dy;_=`pH)^;0=kX-(m%!q1_pjB&lDlvY940dMyMgl zJ4Ri%plb<_j0_I6i}0HzwmJdChfbkR-A%IiBh4X$fXItLcX4pPP?+=2{q}f) zzoyh&$y3?Z%1l_s!N5Sx#0M9k;qW%yqHgaTfbd>u3b>~Lx6Y>bX4827vH54RRLPTl2W1wefknZhQ>e~3m26RjdDZ8&` zZsKlL=V<2ds%mE83Tkp1vS5Pi82t`2wY_#3pF8z8C`9DEk(s|+@(XbkzEPj1E6jTG zw|aVb!ub1nwrUYsmSmyhr>LPHrwyDCD=>I^w5+TwFR!#b`9XtNF5sWa$%(C!Dk4nb z<#DgKAi*O(S_`Z6v@tNTaVMF6Evvg3TWtfOqAZ_ai2~|#c!5QbkDHCx`{AjpcDor| z<8~w+w`<G zF&YX23hLR-O&1Y58kHuSr=y`O4F;LecZ@HlKFxc3Ir$+B(L)4Hfq{GD00wF-e}Nb* zCpRAWpsS_zH7+F~CJrwnE;SjC1o+m(C)1}yS_k!+B5I+G->#(Rjv+2w^D>#Ms` zCevq=-(0YiaSn>Vx|o|cNkyaX#S#5ECMobTEJun%sH3!2G_yv-nu#b@mN(ypSqsNtUa{ zcnjQ(E^uIV^7D=huT2K|ve+*W7$R_<*Lw}Oux-&7|ISZ$Eq0Pq(=xI!@czjxD5+uQ zWn-sgAji7U`$QqA%jB#|1psW$oLg6-(te;qEKB#TEUb*K%!+22xg6=Gd&}=j-rdzr z?(2L1A}Olqii)$K-v9--qP}_&Z@@l?wWJ6P*-p92nf1nJ1Q$z;3MRSGPt>& zAD-e50iol?5cZ6J?4{lN@ueB$n0UVKcQwIqYcHe)P99@#+R47BP8k;04qP;Ip z1Oecla3t+sI3^?e3xloXo-5##tEq(r=G+(XrN1WubXmNhtF_UE&au_m+1b^JQTXD@ z_VNsGg(!h2Ckubl1x;u;)tGo}oGmdN(J$&?hvA9?;-x6zuq&BaEB`|(JKNaV-XaD| zj}8nm(K6DN7g3Lm`jNz@L*05KL&Dcdy#>}f{)_c&m=Cgv<3~b8e2a__3V91H00`Qo z%%JN3Ohd-OgZUYA{cvORrwB}4!n==61Vv_Nm)P6!?2gw^42M8kaA-meTwPMbGy}tQ znS&f9NC*h(hIf3*?1ngoIB+!IKg)4&a3rj8ur}|YHChNNZftFC>;l%xx}hcu>`RM( zy0*es#s03<-W5)2K1K$*_L90v&%-?(`io0rTt)_ZEx>ah+T4tkxc>&JuwJ{HpiwKQ z`aYPR3^V5KVPr-8!okaCukUs+Us(u-RJcsq>Md^D7hMYr!RP$s{xC~!OPr;})MMk4 zAt>;8M~5)@D}Bq7y3)!}n%_hN?i;z)lkk%EfM>;YKWSke3X%D*XOfk5v57iJhVISF zCF}XyYchIjng6^DULYhoxBjZL5oSEOSosHe6Y5RQzvF!aC3zG_Ino<_#c^lo}1f@g;9F8)@MI1?!Dd44* z$VEgUtT8cPzs78Kwdfw9P8j2x@8K)wFq0>Q?jlZRfs3v zT|S@A*xUz`XAtneBtXH($45)c!@)vEM#IilUQ$+>XFfa&>g%kRQqL53x5qlmH|i2C(R(19~6yO z8)+$X6V+Qg7o*#Roa^JNfNmLBwI!eaov*37rom=sdiiK8tF>E`N0Z}Q;yVLl1Ebxo zErWcDo<4Dr``gR>Rb4r!Srv#ix<5~2le>$XtLx+4qZ`aURqP-IJRKXqBjwQ_to4l@ z9Bho(xP-2Kfn|7wiD^y%0FEG;q=W8xFgW22&D!&f!BjB!h~HDwv}P*}gnNKj!V6 zav}93Qj-5ee|rlHJ32~PVTz^N(dkl{TQ2ijExF>?N`Guv!VT(;N`lG_g)@DW4#@6* z@jcUZallTuSCVaEWwj3}B3yFw*+D}=u~=)uQSo-RmY27dS2f0k_yCCV7=s8ekmLr! zdr!m9!wkN$8+a&MsZ*|`1lh>NgBzzAC6VJTEfVVdyFaI9Df4}`E{IGb!i-PPk4Ff;QfWRcklnvos zSQ%YNrjwE56E=kf?2*q6H#uQF$CVxb07Y86#}rzFLvMW?4H$NhdQMxqIgHB~rk zjBt){M)IU2{NYBdvlXO!q3`YDqGMva{Q`qy<<+p8n;^Nb zfNMnQCBkg;R+8Ejj24<*;lZRK&v^G;!W_Gk1tG5uhy$P6#Vr%mYIAuxN@`T6KI#7$ zNxTdsDq|o4gM{DCLEp~op$B>T^`F8sATWN%AxXg#uvuTv%9;8zmd@+_GO~Qt^HSOQ zUmTMoJ5Fz7(thxS&}ZT@7i0_hPqR}B%3q_zi=~Jeos0rAjO>eww-RxRXIWWU*o0)a zaH17wCTBSR{<5QFqUjp%>>3b!{N*(Bd0b6)ysNjHijaWD7kTzDKJh&Ak7XqUpw2P%q>AODCXfft#E zT6Zoa?WLPs#DD35;}&vw`g3ouhuCL!wk~4z_%5rnbAzb)ujW(7#$e$;HY&Mvo_3r2 zi<7r=)%o%q%jR1d}i;{yt_+I-UiimNHV zuC1`Pm0TYZLe;wxzNIGu;2g@TF^P%M=vx~GKcEUI0O^lDFl0dC^;(AB=Y=;G=pCLb z-TL!)l&9G(EIt|#N7@>yBiy}iKGFL>dwM)P8*l}j4n7Oj>aFO}ININk6LYR!EvRRI%!J%U- zCi?>x^3s_VjWD>+-HYQGp0?C~BR?{h_Bk>KGOhl~O?{0e0hHDi)~98amD-^36R-g| z*uj7O0G{UM5xDrm>9}>4<^Ooo^{*qkaG~*Dsk$Hal#pW-y*9_slP0Ln zvIL>e4Q%YHzUo7RU7d^MwPCD5+_;`Tco)~Vc5pHOQ-*W0{3^*RFU=>VBkSoN?H%ju zy5i;B{Jf+lHryq)!mcv;^TJx+$mqKv%*@g#9VshKaYacJVm;*I(r(fh4{$E2z$t}_ z@3H(L00IC*;0G6a7Y4`Pb#->4ZW~Q(y?4eq`jT$)5t|ST7ygNw_S0YB;$4{;oDDHC z%PcLU4&O1-vKVoAEiEEb=&i z8dQxuS!we$zbCjMT=^-m(o*?WYx{^MRh-9jV=}&YjxpmuNc6;cD{tNHwNo8OX|bqo zh6$f@KLiM8<$6u4Pf!5?Gd%RO`<+ChB&74<9JnLy^0!I?Y+@P*ZPVrlqT?t(cmj>l2-l z79X7uVkl6b3E75ctG2IF@IjA;LPUl8Cmu@G+uglHlK!E?my|Cvv%|iovIfW#{!UHJ zDky{TT|zY60Ta!~4 z2h1d^#Ip*vQU@rHvC4!bB}wtoj>%}5b0lQsh%ouV0XlKE)8m|f{rSebEPFa>)Qcg^9zIcQUDT~;ccVF^}tDGY#_ukEF&u?+kao* zRh1k#TUPqK^vH4RKG7W6VsxBkWj>P`+r`ob8!Gxh>gMfn_Wh zk;pCU2X}D4#QL)19K}3;xEo6h_w_ll&j70}Ficgv54p6rud24IvcE(M4GEPBLAt!S zwAV8=FfcOCqoV2!guA)jhSH#c#kcTP?_?P0bhI@N(Y?R{@R{~$fyHONFk zM)PrCcu@E?kv};8j;Jy)T1iq$aca6RN#^|G8ZGpT%=jRH0sLJN2%O>uk09{I+Yuu^ zO>afRz@xpNZ?~QUVwks9(C^<1NR_@S^&82J5NB}JcyrRa9}^IEPo%@Z-~Q{=G#<{s zo}r`^yI;WnG9lE4txDzI5F2h&4NOwPGEt#8WSghL$r;YLSAtEwo@ zO|t%xKtrp#4M?R1>M_Lf4APE=?bkOlc#F^nd&>l*q0llM=Ej#U+eJ&QkYv%6b!Gp~l`l12(=os)y3qqF0GmLYP;-rj1J<)h$h2Witq*b&|e zK$cD90MiFIAGfFe%TZ&%u(WeV%fn7$1k`8G%Y#E>P>eKrpWYmUldj$FbPVur&elx2 z?RMvz0rr1(jU(mdh*NkX?#)j3)^AE%j|o$Jf>qz`QuK=nD_);poMj58Q9l2{3rLU1 zud53TX^AU<1cJXSq?@8xKu@PVn#uVm#d+T^eH{P#q7EkbGG#szp zfsXZv%9TgdFp^|0Cl5ELo%x=g>8*`(pt3z#t~IxC=m$ET`S~&JALL8*4z(a6fnjub zNLcd@o$269Sz~k=Dyh0Msa=;xD!r~p;=loW&B%X#`Vad0KqN=7==LViXx1r$k;2$r zQyS@@Bqt^Wj4MliLYO$gVwMnzoQ;rjT8YdZ)6l+ z$Z~-RzUF+R+rz&O4Uez-76vY&CJG9fB(q%B)_S>R9q*t48B8B5<~&b!bl{CoB0>N? zxBv@sb4%Pjm5`=A^j$pUzQsUH3be}Q6s~`GWpjd_#b^( z!bte+EZm$rrhLdzrQ#+ngVvhx~(8k;C{-! zx<4Y*=>E=^KSyNg(XDxjz`WSzNPw3Tap?;m{{SNeC+GBLedUMW1P7+H{~&2x2ix{` zwzk4H9ga~dU+4P#8I#AyMYpd&gje|dg z`30K|6l2dGXK}qyqra(FKif2VdMXC~oxr&Ek-5IUa;W|EZHuC(M@&rYXQg{GsBkiV zrKp003HZT;mq29m>9V9pY83Pb({^1 z@x!AMzn5tAX~gQMig-`3)^0sMKd=`;B;s=bA6QVQ>$%eL%2`rOJ0v9w90Y*&Q%99d zNI+l$Fqg%J)I&iCXSP)=9{aK%u4G2&kF=ir^kcrV4ju4(i)VDFiXjXTcCxj#si>t) z-ZTC2SQhhX3r~lUSP+V@<>`z{MLckgq5ir&vKFXB{PgXlk_)zSj17<-5c>OpL0Zwq33O(ZU=69-Z-SKM zWc(Cp=!zOA8$b@cMnj1V_J_vCAi!Hc{I?(S2>WiQkB2s-YH~9hI<=%kCd`4(ILuqB zI#?3m+HAwZy}tsW@l^NcDM8Esb9CmU{yVu2Q4Q|1q#UZ;7$f5ts)`L0 za9+|52O)@DZ*Axs>VG#f(gV$mkpw@hx~rHY3XwJpzbvIXf+87|j?>4FZ{BF|Xe7U8 zW*Hj%+rh<-SDIj9rqa+@_~Hy&S3m%z#}gEU^cxH3%-rnk z^fzS~2r1dekF-Ei)ICnsfhHdo8XEcwzKDSro{$daS+|*?4zZpf^QycnP$(I60bwKb zC8?mO?K*pM;qpBz!Gref6Y3r!r>1AjDX`M}zI$}CO@bNF$XlNaWR<1POC1sXzar!W z@7LIyei#^3cpuJ|KF_yRTk09irGu)6cvdv1ANRuKhLdFI>SnnCbqSGW;qbIes$wjIx?xESnV*RrF* zvo{eP{;fbtO-(%QD`AfG0|thl2!+zr_WuAPuVn^w9E?qPkCCUmmzQGjI=KeqDc3r% zT!qQd2hG-@GM-=;pnPWuE)@Lf^MVWP@7OzrFs~9n;tDF(*GYpqqTXJ?qxx6*?T->$ z%KjyO+t40B;{##yi)T2Ibbb5az+e&UTR4Rnt;sOIMck%;K!et2wXJ@`Ce^Z_Vf)A6E<>mU; zc5nCB^@!*VuOfl<0Wh1oA>#YQVtaHK+-Q$9mvAcJ3bg+i9k(QFt)7oJGsC-}UvjzI zI?n++N3HfcSkm>ycp$w@{p{+o`M1-v8A{dSc;DpIWJOI^JvAj7)mb;FKBYRAzb<8S zqpcJNh|yG4MZQS=M6;scST91pa&R!80~GWG-{5e6RY@5wDLLivrrUA&nfRo1qZ#k; zzV4aLOJZXzdtmmfz`Z4%9LOYFtknjMU8BJA9^{>Ap zc_Dd*Gl%PLpV-TERog)j88s(AH^v`>Y+-+xCopv!i$F&mqfo_MSm}pn53yhf2H#Fo zvRP5lkW_&LJ#8Q%MB&=^L8-Zb4Bj>?faH+G;_YQQ*4iD1cTP@L!N94@ZH0%q$s8wggL(vK-vpbVl4(WU;J|6Okv7duvYYGPt$ z3ix--zMC4KZXN6&65=8Df&~eAJu@f~N?IDC77?Oiqhs)J-eD3DVB@Wmpko5iH3oi| zd%D%w&8#T&P}-szW^jTi8{eA>QjLX17X=UK?rfWKQoOdlB_aq=7l#J~rw6jmB+AC2 z#jKJLIA{dFM%2n2{kO81w5tlCHA`*^%olZ6W$oqUqNjj0hP1ZuEiX$_u);Aw^S3^U zkpGCCoMgQW8I}%3x~#5VhZ|!U7-php`1PQxtW<9W7}|t-J`rQH2|Kc~3a12fbE*l6 z;J~ZQO_!|&h5HCn*P$R=9WGThI!nI}%%8wKq7kQaae&|-{THx9mEN#xaZ>7+`PYL}8>i{M!DSd|m0R__{ z0Mbi>qnEU2^JH*T7W+a*?4)-ShTL&7_xEW&rP}P8KttR~M+fRV0?okyg5$r}Q%2kj zY6yg1$=;6=0>MQ)^*I}8h%0&Wn;c38kCEnL6RGZv#p?0`>f3_KLQ_EIRA*Vw+nk)7 z4ABr2O-Ux>FDotvD|4AIQhh?|-#(soi?Fyij6=!hkdg-+h1_>{jY!H97PW^|wS@g- zcA`DIytKEqI|rNTifU$-%8F`xn=G$I-J^DiVM%$3<~KeVD5Dx~JZ_mHl0glmlov?B zZ_m0fw;sBy-_o78<3S7o2#hkWMwXsv0CGhBgVfpBXea*LEN88gaO-LRd=*@gx4Wi< z@p!`L%$pSVI+W98_p`szIkElu5wh=jDzM~Vfa`NZ$@Z+i7$v6`PRLtbNY2g9LDa*m; zA8RAS-6KR9!0W&h6an$u?YIlQa6!>Pd+nPKaup+@5YO%Gt5~MWub`d~gpeSDcw$@F z3f)rhze`K8S|Fd>@EWe=`wF?xn5IWBFRtLLQj(+N{i$9ckScTt1e%(jhK{KmB$JgC zu0bf#@oXeCrKRnWt|6IaO-0$+RaMYy)7BP;2P-Xb#FFpanmDXUh*xTF*YBc(2L}uH z7n1I)k>;!fJZ=uUonH$OV8I>=q!Z}0y1Z;n01(9KX3OhlZQdceYPl8#80>P9Ut`}#<@j86;cqQc# zvaZK*bYubqv!+Gmg@J3WEhQy2HMvD?S*BCK*>Gr9JQQ+Kr9}2M2J2Ksz2@ z3KW~Mp`q2}KJPw^kwIQnzpALj#baZv1M2q1#tv-P_|VWuk6?S?J9$R6c{R1)FPjd+ z)d>mjmQbJ|B|^qFSAt-HzO{jc-RFx4toNkc7RXn0@QxYgf0?T;5kiJd2{4Z&i9h>N zA4J1ml|sfVIqDppZaa96_Yd|COsq{U5BK&DmnN5{78Y79UFKFj-2tD@VGqDnnt=o4 zvEF(Gao81U`Rv%|j+4E<&SJ5mt*nYmfR~?)_S1a-Xu3)EpTdt!Gy~mTg8c(MPu64@ zP@=zofhR*$Tu2u1StrxCP6EtGJEOS>(^6C8d{}8g;&{51+^nb)IY`-K7vn~-wFTcK zoVqOr6fx>7lM;hHI~x^KdqG@FNPb;eLPDKybYVbzDac!o^j46RbousG+zW%5$gHiL znt_IvW@K1WHblaIhSYmK$_wP=cY1y9pwre)wJ0q;I(mOZHnos_i_kgU^V271rVQI! z;5Bpo@4BG358{b|DrWGO$q%c7GHN<1a&nrk;a=4H$d|Q^&ku?43`p>_YME;#MIp)g zZH4ir{^aNih;AFM4XzEbh1Y9nj_>(eJ%s<(bMVtqwO2GWP;=73kP136o-%bFcY{DF)lHkc98` zf^5o;fc9qp7c+OsRLj9l>rY|irN2N~KB*cD)Lx`L4J6T&zU9-Kd z5C_-9SQ7+=aGcitL+wadWmKC21UOz`Z(go;e)WBB4g{d3N&lr6pF7?~O-^7x)?KSW zxbyb3H2fmuWTxd3CD4n*^`GCfgqrCvk>TMoRt*K>6R9gGDy5^{Kd?OHi=4+mO-=EE zk(&6^pBn!It~7YmFx2FhB2 z4-mhkLVRclt|}Ty$5*m>zc+^Pqf=SP3mC}LIJuNPJrldI2Lk`bcXs3N!ogGt3F7lJ ztR*HSB!m`SlaJcj_A(O)ETFIK$eSBoUEChw;WnP~6Xo^(6Fnn3wcz4p?b~Z;d=&Ia zZOO*eYoKiCUx6;nX~wM*c9zh*%-;!@ML9e)H#aXDl199+vz>0p%7Su*cGSo;KJ3^# z@dSBwe8_M0>_FJe$?^;#aLIVxpDfA0LLi@8JRbHo{3Xy%>DM~cG+G>9p2V;jT0PFY z?%C}7(T=;?pdpas($Vn4qG6hf&`q%`La4s%F>|(l}_+E3(iF?ny zHoA-VelNI+8OGIKp`e71ln@PoB117a=`01*KI}CPmW1yK2=G^gu7!?{p^*PBwp3<) z7XbqiK-~EL#gzd%+e~m^yVrGIBswiA{rxZAz*Q?bC!l&cvN%SE%rBwK6n2Lkfcp5X zB%mS5RJHs8+&7(myG;kW%<|9PaFE%OJVU+j|JJwkcGusb$0x+b#sbMI6f$Xt>~ZGZ z{#oC;?l%>6V1>({eFr(6@1ANvVD=o}X4U2dM&a`*Tk&b{sPUa0DFUC2OD`Yf*#T4Tyd$ zt9|IOFM=fmTTMw_M^RDb+ix@(DsD2?=`|oTI5wa;Yj6HVxBwJs6N9}Ay}bzY5ozJ2 zl$~9e{7|VF5J>9Vv)k*-%gY;R*!2zZDslod+9Bcl-3`6ox}$cx)%!Ir6MSwLxSu__ zTR7joDbF~f$c!>r9#y7+UAd{&pp^lbaja!Vfqqj^07O*$J^StQ9(rJWd{|0a>WkbL zIaz7o3!$TB1i{~Mexcp3t)3moO-q^_LUtw=^A)I2f~K}!a!xv4ieC&JkDCHNX5xUk zU#lj(gpcgeihvi;)(j5P#KGxkwLQ*+{--p(dcGA{fV6}vlTZ3M$q9SP*5%)={0}rT>>cftbeYV=;6JcEYs!c?yY)kBtsX#5;afp8Lzm!B$^Y zXHN=s?hM)tipH41bRbX4idMwHpx#1%Pw);a@izzpPl0*jVPqlu%!mQaD**i0(nW`a zoORAOSDV4#RS)w&lER~ai`5L&g~K72cC6-|qvm5n$TLpzrK-OWy?tF_io13l+I zl=?xmNsEK!{h0r5`KssTIgl(pXQV*{JY25tHjW8_ZkI`0t-txSGb#H?Ow51T!Xhx9%PZPMK_3@sO@#WoN5_QaA0LNbz4c&l z5;K2>`T50!lmXZf*1{Ci2cR)%$!@Yz>ff>K&HEDj8MJI~czu69D0=7W~8_xPpzNObJJdg6X#` z3AFpF}R<1jSFh{?E`6JuV{Y%ExI+ntaOY_ z_91+=Qcx3h@X&CQ^CHWfKG6790h)=zQgaKdQy-j_sQ_bW2Fud4m6Uo5nA{bABZ2Fg zZLrs=$S+>kw*3xHj-eyajhlX#GZQw5s{d8&PdS0zP@YP?i(CE#-g%^YKB`Ed-E3(} zN9gSA7NCC5`a?rUUCi?N!ST?hao2cr*4Y4iW@UAzuM3200@yfMU>>s479k(wQC3w^Nl1)?x*Z;t z3q?S?xpW|p)gCZ_K+@BFUPp>spSR#<9ki=SWDg8lB;NLs4cfX&nV$jHcf(!#=EH@p)H z8ZvSw1`Dx-O2SqiRbQ{@&!2DLU6hvJGa%Q*<@r3n;!A1Ol<*0Eh+(ZlECNh*m54q6 zqy%LJ4aMp#OHl3rJMYm7KhMR#Oc4+QT1O|RSC_wQi_6QClM}6m_G_~Y{As1(*E0b6+uJL450;MrzPFGxUD{Dq)dj2p zTMa>i@~RSqA38?_wT1j5@7E4LsttDxb@tMc(&lA;*R$GQ-@(Eo5QBp#U!xEbawt4{ zAXQH(#b9Cr96hj|fxIViE>ys7&dV9{$)`C*!}E|sXhzCe`gnGXA*;v%}x%j&QC!v0TugJl$Pym^@# z&{ggZI%1AaxW-g`*EO{{W?2nQnccL?KC1w!wS-$b@ty%nfF=m(qJjm+K%?;0TcgBK zh+A3_!SvvLW?N-2_XHxQpMMTp%SRBI;M^V+6jbmViXe^ z(MpaEP2mesq;xxN#Z`nYk`$IC<;lK{fPy(`U0>bQv8n$zFL%ml8$uPV^qz{%{`Apv z?RK@kp7k_gl}~qX)UdH8jOXdrB#X2w=X>(Fp4;a%Ca=y>h{&WHF1Mz+Xc|AlE@O+(ljs#Av()!gV z$HUptLsceSU<-Y^zr~#Nx=zRuML7Ue~(~S9SNq1QX`yq$rN|obb!nL`vYQ&Y$ z@#)@?pcpt~4?Knpxq)>NPSfzJ1GIFAtP0qiVZE92DXrgdA?=!3#n$=}=?&QOMlM=* z;yPa%6~1aO{moCmN)me0VrPN==s`$uV4mwY>35YoU!aiCo>5N17KMZN{ypBn)vaAl zLkDrCn%ugi(s<9%tnZPZIE4WwzNLYB=Xb>eoNptA-#$5Bp+$z3rzRzdC{1T&ZA4FG ztw!W)e7gNX-aE)(fSZ_LPv^o%{7`K(#Bynv^TozZ0~Azl;%~6ik6JvO6u(8f;Mw;#0YAmW#l-u8d(p@+?~kE= zWQy7c3~AclAZUuON!ewEjbeFbW+laiMc9ZlFQYRT8it-CO4UW~Z!h6&9!FE^EHolf zAV5}DoZkoFPRt_H)3fX~PB&xY}60#mVM$tTgI(oyBT{k(1H(o`Sq)noQVD)7$ocB2WB<5ea<{DBSU^Qis>f_>nP1l&rZ#O zurXdP)=IPEMRt38wTHPfA=^_~E{p~zFDJM6g4_HYyi*p^pDS zGeKL=ZZcC;7y2*#&AZKRKNbo7RdZXmoKgo-dW&!gq`R9IxGV`O%lmIfG0V&u3+u%FHGBIRnh_)fDhCU zI9gtLq9eOmqNKVCiW)w&#|!vCJzFUFS!p7nHA?$;T09&&X*nqs|7TkIziTNwu-IdQ zYkK#GlJseRr#VHgIV51g$mj`1trJ-9eITs9;YLQg)x)rug*8=Q>Ej2BvnJ`x2$ju> z`$6)1up~9Mib_^`T6SF-;II{zy4zR~#P&RdYt~t$0wJ0PH#a*Q_vBKRnU#gY>@4+R z3NO6GN8_D2Yt8v)_fuc;@-#l@^Ucl1OWgm1!~1|>Zq4Ji8%?0`wRcY7^YeW_Nyf{D z{Oi-}bH?lQ>(e<+#H+y5m4E$di|ygf=wZjpcm}Wi6J9!zR)d}C`3Max#6`Z*>p2jm zSoOQ*@o7PELeL!!&h}Ai?f|K7Q)pUJXZ3!=#4P!5jRjsF;YOsl(gTe2G`NFtdw)1u z?7X^f_}y;+h2-ok>zUU^)T}#y^l(=-0`=zFp*F`3(*u(Ow3MUc^0Gz76u+7@<7XzN zytsJ^x*L&31StXO z4oT^5q@_!`Bt%+5De02#?vn2AE(vKiU1z=D8H2$Ofc30($DG&fHJ`N>p?$;jj-HqE zTM$CuKxcsEC)m$V&xtgguyOqUE>>P@c5XK2*QEJ=LxY}T9Wd+niRs7bPp{0JtChzf za3vp`y$o7wdCCnVE?ULEq@h4`$8l@w>U0@joZV7?)~FRTpp6ejB~@2PcWHhJKz*i! zvPS*^@k=qTFuqiD;`cI{qX~B;NueRhhqt`ynkt>rBDajF25+^(C43ZRDs`P$ga{qr zAc$sWT^4_LMQ_Ij!CodZ8V&pE`YMxGJB75Boy0q@67EMyWZLU+=+uhP%eJSI_3?^5 z1P^p4Cnxl9xgk$#HUl_y4e_iH{p-T$HgYjBzYH#Iz9Q%K*uIg;d`e`|Z}?{3 z##6TDv2~Sl((=5~2Z6NRpAE#)i9By$``t~6Jnrw(iTGS!Y8eXN?5)(>w|~C)dnp%T zp_IYcv91fT0yAcyv6Q}RE z!(dmKSkX%ICK1om!^31GA4j)n*7GilE#92Mp}#AYompJYR9Dy1Kto*qxrxVONb^Ho z6Ag?g5tG6uUdbaxn%P{bMnayj!Yazz7!;0lA@G8C5v!e#|H8?EhqFArv_ zIn+!or6;wS@X>jDZh^!+w30D?RrExczj5Sj?q+WQpza1(q7ZeA?`W79Mjj2# zi#fc-PsJ0P7R3C)2lg+Je{$5hPPX{`>NNgQDO0#VAF84X2p!+3RcJf7Jjn^Zd{UG1 z*0LaN$(eBq(tjgq1Gz+nP{2+16J8z(by-U;yV|_^n29pFrz~IE!us#8Jmrag2ZBXKo$|T^etXq@*nw z4{ijlGJg@FM}a;wezDyyP)R$12 zvDR5)R;lzmw(1(%pH!*(1r)vk8xyFfEZaagY5GWXTKS|kH_gKdez=PPPD(&s!4-}E z+Nm*HN=K`>B*<_e0O7-@@Vi-1!h<{F+2QtNf6vm!&fZ>3sDR{CPLYEdUVnFQDf&GY zxsdO{VUQf?Q5u~t0YtET4FYkz81<%H@xIxaTgyIJi_I5#et->JuYI|{%qefXd3fqO zY4!Yf2?9m+n;oyZfl>nkO%?od{HF&!Vpow|#LMyI3Ug2F>uY+oSW|H!yGtjwjIL1y zrBF<4gt#M1s~e1=m^`dbvOSij!ry-h2og>22^MKwG0Rd7qrEx~8uxD(tZr0|h%#Rr zkv5sux?z2nmj@w|C1Odn3mPbpyJp>2L9!m!f!}YwHOv=;j*E&QjVw%zIt^r`Sp)s- z-oe2EDGo|-aPQwb#pBiCb>(S&ER55$Y_)!{U@QMFkYH$Zf1tWO?B@1a??c zYExC`=Mmv@^Ff~b^uAj%v`b0E%(3vt?R+&bOq}N_pI=#@iTCp8i{ec9id9UIUZ&}D ziSY0U1Z~nWpW4#Ii}`x$$fziiba+z@>MZbe*f~2_vx6XKU^Rn>K*7I-O-@XxuLI@|5|AOvw;;gb$*yX#GL(reB zZy~P<6P#t0<5Jevvh(q<;C7bv}UN)D)bfGKttpOn(X+-`?q58 zY8y@Eq`@qO?(jAkDGsVS%frRf!3u@;)BFMOLf0>Pa~(I+oL3zf*w|N>S1v{VG=Q&F z$4MVQ*pwF)uo0$VGwZP0=>D8#+NYS>_@7nn9}t84JzoCP0`#P-yR>VOrt6+L0JYr$ z+>`6A*bHB-js z=UcqY|8rZ~y13ZdR@7JPux!S^_-jTZ83K>}*}0CxGXY&1{^XB-MIa*|c`Y8}dXJXo zfDNfYB|2Pu)ZCbY_$4yVazroc$CWfjkFSxX6+FF=-zB=ONGo`bMwT9#`K^_8y80?{ zDL+ziz?>Q%A2VidXr^;@(5z4i)dpPeFG+AQFi;WTh2XzdBK{D&HVz67lK#g2rA5fH z%naE^&e=3j>)K6@Qxo7Ab6)Uv&5g186O+A2i%S~A9kd}aUUG9WrKY6pL-+U82O^bf z=XrEqo(LyD@j#G`O@37Lw^uhQMo;%wT0-1Q%8bx1eZHh5D^&mH)&dAb0fm*=Vru-& zOFjOEru&LNrm9Ziyl_7xzQvg8Qkg=lsR4R$Z52+lh}BaRKxS zj#&=?DNC?X>aM8^{9N^(lVo-yFu(hD9o>MR8T@ya)IlpsQD$1nDIxjwtQ0TBZ=*Hc zxw`4{cL|((xD?VVoRGW&E^CT)Q%Feu+YAy`$qMI})L`7p=laJVkQ^MWV}D|YDdIu6 z>4yj8B_T2CKVrvN%&O7Bod|{eUZ;{lnOZ~UO|4DJN?#0yX$TH!XXWNgi;DB8$=PIA zH@hp-kgU9TL6CTc5RYdSudh;UYis|XfzZnSXb%AD_iXJn-m5s++uQ!3Bt6)k(ZG9^ zL5CCmnX1ge40uj`EHkkaM5R;EgmstH!MJVE>+mOWda6#d@zOE;|1xwpVYldjR@)qf z2?0_OD4FB#3igTL*+{*J;O*HxrSG@9=P59{d4BomN3r^NdbGp?&aBt%pT=rB#Z>+; zcZWKc1VDNcVPPOpV{w1CFrac{cy$H4x^k_nr|((D>z4_eFn$FUJ}$#bKx+T8@|@P8 zBKos9#KF&O3E~|tg|vHsqt1L))b)KM4y`1bE=E0b83kt@ddn)sYK+9 zFZLb|<8;}ofv2WUHdNPN=InFj1e?mltM^aoELhwx)!E@HrqRlC8@`wJL(~H$BSuSBkl< z*n|7$Tdv})r!je@^5m|-;)VVAEmQv!W8*ChQHA&zz0|}X-xE?)CfF*^24qkt3Lx^5 zl9mt%E78N$Gza3-$?*tAnBp+w<|$JE^^6fyT#MAg{NyTVzJ;@1JZsi+a?Q>R;=+Y` zko|73A{H%0Lz9yOTfF&O9jmZ2Hr!Y84o$^5I~@O%y;!mebK$d)Tl!|x_x29OvWmDw z9s^J3>0bZz|=KXZUj{|qFIZG#y@0lh+}XEJ?rC7sNB%W0UipFIGNP~dX+>z|qcv1?I5x6kFJ;N=E<`GS=8G7p z3j5A3ye9Z-WtD+TF+KGqwhSjbW8BWsUo#6U>jqA!Kj3f@_>ptMao1K<0E-Y8*PE9w z_wc_Dmy-9Zk3lq*six+Zrn*+r{>r*JQ7!5wwb@>Gu&V3<*M>l2LzAkNzh%zP$qTvL zf}53+gN~^5{lX*-4`a}_nmhS8k$idv>xMVu>+rPx{7a`uqS`7y6Vty1+vDOIZ*1VI zY;;0}DG1mHCPpXwPes^QwS%)vEzM6PE@9YM(J~{fTUkF;nP)jZF$;3muJeVjU%Aza z_uAT*XwgHU>-dbrQpG3P)Z6GgsUYHUIIjC!LxE93c}NP!XBnj->wo!Z?Q}tAHc~g(LJKAc|Ku^C*D0bNw>xh+K@|#M45KrCAa#iWqwQN@9R=mjTZ*XnO zZv&3}g9Gg5C8m+$+jELZ!^FI8oJ~zlZQP$vw~KDMNb6Y-g*?{RJ74!HWwbi(EY{9B ztod&Jm(tUIu|an&{CqHxUX#6_q0X%e0p)c_Vg6dOxgD3-(sze7R$#b z$K&aJj@?m1?Uo9Uv%%V8EmqcapQF>&(tny+%UE?Z8*_h{8UEm3&WDN`QJV=wSa?DG zwesI^OIVPg73P`$-QKR2o9}_ZP5*0_Dzp{NX-`NnZ(&fWtre%REGsWARGF@=aRtK@ z?5$tJu!e-N4OyKMXMpu8*!y6c||;SREaN(F#Ddv&7$3(x?&-$L!rqADWbDYXXyj zwVl1SW$&9cEdTqMo721+am2&=N&{5bhc{3_F-z3)&uwohiBnVQG$u03djo<9fb?vkwYz$U$*N&$vwdc6s z2S{!M!xo7bwCn^oDj9z{r)TJG;v$vLDuKMFxH%skhb0|SFksgz##lsvBB5GXQ`Dqe zW@`<-!(JwOYN{s1##A2x@(hKeN9B9XkHKe){Gl$xTYB@vIP{=w*)R#+(h{2j2MIeGQK69$u*;SWDrqXxMTKNGmzVpYOdiaC z@MFC~f++dZsL;|g^{%d$)cn2)rShZX@0l1~wv=&GDpkIIdVk5oEy*f_EKU7m&&b9O zmGVl_%z}tyWMzoezsC&m-D8rk@an38OEUVzU^kG^CmLC1mY3(`mfo*vnfVfqz2kJb z!~}jQ+ce^m(}wAi2X^E5mNK202?2J%pW@?VV-x;{+4}Lz>zsp0k#`s(F7>sX^-#Ei z;xYmV7~Y5s;ak)Z}OsndgD$3z4aDKW`<1`Op6w$_~~ z%JkPGrR@e$MG%OQ$u|+mDtx1w0j=o3(gU@kq$eL7#9k6rce$sxuPA@nrAjDRJaD);E>w~cFg}k5XtF) z7l;pRfIB7@#=jr6_A2vc4Mo515Hg)I&h!J+ua>l&+}wQk{5-(b)Dw|Et7VzmE4f`8 z2Y3HA+o|N!&mw?`s&QymG?4_sp?S-t+#T6!8QRy^7BzW!c{fvGbIukmL4xoK5!eiv z)rF{#!3z814Y80=4AXjSvH+6wjG`#GPTwA`wpQ4T{lK>f=xO)eE#*0Bxt&dM@Vi-$ zC~xxxL`7^7p)YqAtY8F$41xGP?Bt)cKOP+4JG6e@*_5n-@Oq;!>;yL_ z6BCbs5bZ1W(0xFdGir4iL#Q?GN&c1m>sJolSM-H2c_acO2OBx{`@n{&R(S1_4yq1F z=li!Wrm*L!7AQ1Yz7G$}8-Ee6_54hKt?_WFodu86u?p7JNx#y2%5Y?CNc1#-8o0~U zG)Md(Dxpk~^L`&7(2juu{sidZEv+&MhS5$hjXlPfSC;9^Mit$z z>SlpmbLjofUk5BqAwX5I0Lj~XzhNaNZ6$5B3PG*PN7l|t%j1y!0Q!wq%JEEq>H8Z@ zBB?=}(Z|5d0)GHPDmC>rHG4CuaXj&eSkfbE(Y2&0> z9j9YZQfg|uh{-yc*!t)TqLI<&{rA}ob4f7+PeegdH)CI{4rDhOQ~_2I%AdyOUaC&2Vr0UUNFxKi59Ko1rQ?%2 z02h|*g@oi43<`SDD1WV_WF3G*``1cE)gZQ(`r*?JvJ~xa3nDoFSYR&V;^vy=$}El7 zH~3f_46lG$s@!vG&|aPIXH)?u#klWSu;9XDAX*wSgoC|O9w!@9US4Ovn(Ld<>%_gi zPuAzVVMPlImwI(4^NlvfyQ|`TV+KuLM~gr)+;TfAaME@^(K<#c^t2Ij;`^|_uO#w( zJ~Sm_^zg976D@oXYpu685MRmw!3N}hn0m-8`Yj$$=b%tnZE@S!wn27tSgP@|E~szS zDU3lIlwCkvAZ9qjoe$rZ`TWj10T0rSWNiX~rR=ZqCfV7issY>r0@)@aBusQ19OCoI z(te9L7|k4~{Ad%;<&;!XR8*8#R*0x(o_H5lFijy_lz@b2{es$jU=ZN5WJ1v}j2ieB zn2lp`n7_Qn=RlW37my|*SxJ)xhz=*GHv)Y8KR(jiyI^By_;+-~j908zoSvSBR#5qg z8nY-$kjgRHzI?|8I(3gXWfnu zz^bF^mYF-paQAvt&uT_3(71}3YjQo3WuqjWoxPcMc`SWAHpR{Eb zT0ybWhyNKRw6bljZ5(Xut&a8%_YdIcGgUW|(u?3pGn-E_YFcw@Wl&*-vefJEFLy6) z2vavz6^WbQ(cus3>C3xlQw1uz(&949Q=PQ`>VD=42~LNK`f&(Uk*+N9P*L$xv%KPC z6J}&*WC5r;J~muY6=p8qcv@&4xga}^ zumugPxghkTc3fggkd!|P&Lv$D&0OKR3+~k5*t>TRU@Z-I$GK^zjS% zAQX0a<$8UEjfHhp!;|?hH(QpG;1oeDtVWg^88W_z^exNX$kD^H0=$+Lewp>ydjP3W zw9we-s^@m7tvz2|aWa0!LB#U0&1I*zRNw^YDuCeU{B+`4MELfpFJDCD@pjiRT`(vE zG)y*NqfgvD4I-6az^Tr%N++S?6vfnY%k`s^A|HI16 zGB`H)LD7G)3zjFaL?U#bUub7(wJU#SBGsMy8-zdQg55koV{V)65)yR5v239sn1snw zi>LhN&($w0(4aS)VVATM$F~iBqam#&-CUI0Mv-owqssE)+@FGAJ1_rDK23hNbd}F% z_IVibHM3yXI6G%`MIG&8tp4&|x(i9t_V%IJ=g+jUY5Ii}1{ka&^v^$3*i_g=F#&|@ zt2Xp$HJyOy=j(}1P&*Fy_s@SgiO=oB!%%>?A!;B0)jj;co>h{ElvwO_oL^ksoG%xo za5OSfH2Wgel~go-t}fxPSFXHrat0vS;gP=BJK5RT*x8WEYEZSbSGV|?)0!3;*;x4` z2Q#-JOy;2gobpr}E_`CZ@t$ zTf0*K*R2)Km|ul@x_Efm*{U-U;{8>sh;x18T?;Is5G*?01HC10q~KtGgbry3X}L6g zG=~y(n)P^R5b-tLtDUxTx_XTn`8_%^>ihTaO5d@;Y$FQLiNXHRZE7~n8yLf@EuI5j z_l>3Mfva%;?uh4P+4H^?`{c{*3Rr3jd!EA*MIO$#?@!tTqx%f~ZckV9DO;T{CN~?^ z=#)|geGljNofFGipYCdl=YV3zXMZ^?5M8g{)}Y_30RbXJc!i#Qer20D8uCzpp| z@p7lC-w6@)ig=jF>O`br|D^2g9lA`HM*)1X_s(nn5!2N*vPiK70SNoDhl^t_icyqZ zEHg6_Lj=f&I3 zd%4(NN?7Mc8ubinUMx)5<@FYB;T`K~vN~fS0cuc7xD$&HE7PE&!uK!~Oe~{u21N-0 z8?`Rlg^P=naY&uD_3mM>CM#g-<~|aASgL3dHD3?NkdZwyYdID%#u2 ziB^H@`l#d|kFRy0?lE1f;y5svJ&ERIz!vfcqv9jKKc*nDqpz zXSamj_C}}&DiUO-(xe9sQvs&NHO}*n=9jLvUJ@xj%uqWvF0YV$VTBcB%jH*uV#>9s zz7c2h*F9W}k=;mx7tOTY-y?o01$@kqy~}S}&v-vTSZ%*DL&9Kuq@7U3&4j$|3~U+( zzJ{WtLYbP-Umsh&M(&seh=A4t;CP?Fggspl5odifo)iSfdHw?@()VcuAoJRv&-yZa zeeb$}1n6RQP(yYX6YXp82IoVOB!~Q3h|G8owT`+k3)t_0c_fYvA>d&(IU8MnVFaX zj`8DQF%Uay(Z_K9W3wgwUL(-GKkR7JO>8rb7yD;O?Hf|nfgn#K;HRZ ztSj*TYlZR3`l)FQ>P4i7iXSc%%Q#8mWpl^(R)yQ3of{KjR!PLf1zyS6_r#*2wsB1h z3z6ZCSRPsNjT45Aliq}^{G5@tsryg3sKmEq!iH3u_kKL}ZZ-AA6^mUYWx+m~-Ezmr zEG~%U2`EDmPV7H7RXW(mqc`5?tp8EQ4sTYWC(zQekQT6EQu}%=_Zcm-u-L(NUlcv` z!|>Zp#~}Zh1C`gcxw*Ba=*`p>ckn2{M7U2$OiD~5^>Gqc@afRn!N#tjXUhQ^J%o?u z0iN{Kn&0z|wl`Ug{EIp|znJj{BrreX>(Ld3M7L*%Fwq0uQcRB-*x*xFKGD(S{b9<)KygDqPL!6cz-a{(7owsSCUm!l$8*Q z`&9tCN{8UYe1Q^rWK!+-?T=yx>EjXzqVH&MzAKD?%M+DVRX}d4e{rBog!2uT09}0r z0*=1~qj+BiiKx8^8^PPp8g?8dR{;U5$M&^jN|7Z+sx)|VJq3FmTj-LioCGHT>Oql_ zoTOLnb$Q@wGgqe5Y=0@}bvazFQ;+(1jzun9@!ZiF7-A^kdk(wpk<&70zxca!;(N0n zIM(h3yWHwqgCgBrO=v|^JW?Dy69JtMEYST}zun_%`wURh$%WnA&dz5@d6W@vhQsEt zj#ukES009kr!5V=)$9oQAwUG7sHrLsfX=|zaLzYBVTD@~8U+H_SAE~USalDP?#b!X zqBfe3o5twqAbTaqOuUVJ2(`7hwzae^QJb9>Mbem_=GuxeQe$p{Xc^rCBNOr|4kbP@ z#f#x{pj+i#{6*5%Kzo|eg9fi=g8*S6V9fKV!uR2w5)|A!cERS1$C41=KYVz25KE1G z%fLuKJR&P6gAlxTvIX@BI6U08L`JdLZ~No74!pmg&rY%BK8!IjGVGj6Xw3IcF3*-( zTNP=2=&{_U4tb2kFH>+WfNGD9Du`ncv%A`fx!U8TX)XrY!&Asg&U1v7|8q!Q~`ttfFvQmo1pBt5tBsb^!Dx7w@=U?9a!GP6p(c3`Zi`^z_XoUfV z(w|h=G-tmLJq^Omt2gZIB-nV_Ajl#T?=#y3{V0}%cS@q3th}7G^w>Dcqq;nJ&QZNs z4%YHbJ z4w-3K`{#cn^{ZajIn5bg&h{p9K#0fHQaQ-jJ%#vQ&k$vNxmtLPUTt>X`cr5sjhz#= zzJHN;dg^y}IFN&keYjfZd-=dPZ~nTq2#IrTJE0043N`x;X}P*^daWaj{0a{fp2LQE zAn4%l#?imsf0QrbhD6w2adWc>Gw@-uITB-&LW=`Ljn5o9o&QMDmONTFis{UaPfsqZ z8!`c&Zaf4{YQUzWr4qOEt+_vC;4$2TAL^W6Kjh8q6-`xj1UiB9&GBC7h+jH}`qLSz zQBW`dlYBB|Rki}VB%1XEC>s6nkZh!62o=&aB4f`?n5Es7DpyFW;QNX<6Ayn(z`6v| z8Gj+6x_rueYWRBN0zohxhc`f9C*&zzBOA?)0!N3+7R3O5eI!=}hd^~jNU)VS-NoIV zq-8D&3(VHhw?4^jaJoc-GVD9%WzFSx`BJh%40AIltY$bnRRaIu1JdM0{-#q^gl1aD z;rwPlFeRSKykN`6=rU0ajCeECC)amel<&M`R3z8g9c$+T%5f z2Ac!iw_#>zD?{ivd}+skhk0s&7$nu(Ezu`-HzalUT8+CHGgn%=kFK|mE-zmz3i}!) z0S(UFJx?-P<%Sw+#>J+;q@*Op4;+aBn)<9)8^&42#;*b_Lyxy)Ud4XElE?;iZfWiQ zP#@9L|KSVt^iXbgjbgEP)=cRc%wxa(u1WRb&KILnp$C(u9zjJN zNzb56RmQIOewPT%RV1r20U-Z%9pM!Xa)9#JJl-RrKuc=&X7i&v1t8neo3HjZo~w%l zH=|*@??oLskU#RDFNWbOk7ASaBA|#0p?mxrO>t;@+~~^ygqzb1B17o?^JXWo&z!9I zIX*uHhGcxX>(t|Up+pws_aA$FD}T(e!9QHIoP564?&9utL1QX*D<^QJlwKANG32BA zuZ)zm7eu&w((XWRL18hX8~maUOHujBk$N_T7y*Tf8{m`x?VpX0ODMmh296?BBKR@Z z!(wqYPi(}cu%rl$Iqowz1PZCIq2i(AV5a5b6Xxcp=Ixjxx>O5IkV|@gKGtGF$i|02 zGS9I2?p5<>%l(Qc{)jWHp1%jX39_p+>RK@%nEzoaN3P9cj7w z*#!kT$H%5(6`h0busz1Rme$smriP}{!UMAvX|mITIwOXypCiX7U;om3kIBx#{;sZ~ zj;`7BHmLU#fs-WU8-Wwwfp4w5+ch>8%ryte@;@;7^XUyIf9%*O9NMqc)Ks{a@0M5K z5VYUmiifL8TlwmWAq@2m1?HvyVAESnd0Gn&2CU`RL4T#heWc+lcDKd=%p*Mfd*ERr zFcJ^O&epkHUxL|LR8;n_>1o*XU}YOOCsLe-jHC~gG4FH;aK`aWOiU_oq@}X{Q8L94 zpYcC@44SOfK8OFSJizp%Wh1FGskGm*ZjMrrX;m*E3C-+AYgKqVFxcunSLD|K@3tSM$u9(CR5vz z2Ow8wAphL$=nj*V+is!Gbgb5dcxUp78oc~kn_46HO~ta?LUu3y~W41u8LX7}gndv_79-QLZ!t-dHSVJ8I9jx#k2 zqOml7FUzr6OdG8+MI{B$CBfX`29O{fOiW@T`z^!YPN@u&19vWn^QXA$YARhFU1%D| z_YB&g0meUm;2Qr>QJMH0CNn_n*+UqQ7p5I7HBjq{$@^|amsNVb_{kv1D~wCyYxri% z@b~Z2+rMvsO9>~Brz`NUd{w>n`J&YU0z@ZGo_bLrrhk-xg#2;a{|OmM8X&Loc3wF5 zsB+508t;bwmSudQL15n9ClyrnUqY)TCu2{%nH_BSlGvc98igF+8!eD9E#_NWCgLak z`KfRczVXMOCIC=p^%;6+_}Swj{O8w0*!FfeZ(KPRn#rA4lbZg=LINUswDeWzTR#V* z&{KnE{;k~T8Hc5Y1ev{;FH@H0agUDd-VVPl2~*^3%5Rb>k_Uymn0bkVy=2hzYCvbe zs(t1&NF;j{&xz%*nJrC|9ym$bXDIR8n$J-5c+5ZLCIIHtjh5t*B)b)L-T$REybs}j}P7*c_kgUa}D}}x5 zfPr~rXpzNL<9Z1LU39=5>0Va-UBuWE6UwaFwSUaJmIcKjW;iUWgiy)l$!xLdDi&sz z4G4V99KD$dZpIMNspmm6)Yf6+9QQ5#1fHY$CCU0TDUbb1o3ruB6FlZ0^A(Jy;(L7iW$g@m zSWI6rJ(D?+`5VZ=b%6Btp^=TTNlgiF*&9J3qrbCtZZukq6p%Z_>;q{tTQPohjDVWF zN>E;b*jI#1g?c8KN&bstr8;pSgm zJ6SEj`1{@%N-!tpCc|(FC%mq$XvJ6mHRtM&8ayOjl(F1S*%kZyNJ%I9Gcy=^>(19& ztUWyGb-NkQdM&M(`cVSG@#t@woBI}!}a<` ztCH{&?0Drq;|nl^uSBnT-_OQh08fIT?*l+mlCr(D9au^ek9 z=-1;D6DmIAykmRYF?D&%X9w>DZ*OF!WpaIr)t2D%g>DMLVzxF|Q42ll4a z^*J_%S?5r6sGJlbgF$XfS(&EJnlkd5vXrXo0P6r?c6Fp+Q3i*kFeRDU)xds?idgO? z31m`he=sA{n*%EcCeWrc(tba7#U=N%|??T>mfNoW6)_Ss(^4&QWdci-GN8cN&b zG<{0$+f5)OGRt!LTArVu!Za~EIPB4g*=ue6Z=aMT<<|lpIeDrT1-MbOUS%0?ObjF; z_ISXJPpm|UvF(vg@Vw*XYHg(anQ%?Z*6UjoPHW-Fhd3@ z9YPaPp~j|G)+Qzr5R;P9OEK1-42P2O>Dh5H8x7O1UJr(*3>drzzZROCJa69tFq|5P zQ@#gXRc)7u6W0`^KNgC_FY=p66ay_1sq>p@9hwaGa zt6t5EB-X#-Sjt;k5Q1ngCPD2MQ>u_*Iyo^u!2>dzseTr^NI@ck-grE{+F(1gT0qRz zZxf}$i|DB;Vg!Yl3ZOmU39@ZCG2Qr3tQYstXmz~n+{MobgW>vEGpMA|u z*2X1bg23f`Z2pOlND05$#cQ=_m2*Ouy|I9u2}-IS=sN=5mDjaQP8n5 z0}jd8Pfm_@dH}!mESo=;EHuh2nRI0;nvmdI%V^>TD&#-agN22ieM8HtBc>hvYiGH) zj!|ZD+}SDx_Acv9^QQ^^$y}fG1AZ3)l2l`Djs--U1qkzw+d9MIr;2Co7pp$~`wJ@g z5z*T|D&ntNTK$6XaQ=j^ttIl~9G;SHRty)zL&51z*B_OO@rrP;;%PVFBW#-bjZB|>gwHV3Ux_rcAPwG<*DhJhh-xp z(9qG*POmb5+A^aIU8vqrQp1?Z_4hz@<_}PZS_ed^yUayJMTMbYqho6&x>1UV7*ZMn zg=H|ZPl)V^n3H3TyJL1k^M9D^Z{HA**^`6~j@2!wCswgg(mJbD{b$EH*lTO(HpvsK znFvpE8PwfbSsk7;D^BSlQc1V8J3gq3Z)$6|I+o`9A&#r7Pa9$TNw<+pKvdsox-<)H zxg%qWk%bCzUP~zlHpSi4KPs~0(h{){-}R3zjm!X{>CC2~2fQj_4kw%C_hGX`aA(L`^ z4G4&0srv(Ddb-IeDez?PK-%*@HX0W=&j(ORE?@7+%MgTx;vMdA=O5EiNW zE1rzJKXZ{pXl*7ZOV0mNDZ9ax?#l&!;_=5#h43 z3zCSQNd-TMa4EVG)XQ@n_F3K_a zL)L38LClpF@~8+s!HkB9uhn}uFCQSn2o(uDJ}|PoB10en%>~*QFyBo^Ue`H9iVBO2 z47g^dkLme#dGPOOXX7}yO{oLqc`ol$P+$b}tfXzq!&M#bZOeZKVK^@_Fi}mAZa4%j zSv(Mptn5uHN)#bA7$a}($WuQSZ~{fpN}3oH$N$kDT4Lm?DL=&g*HMyP68`i#Ya*=j zOeM2fyz8|o$fC5VhfG16s_p(IVA|~F(}CFu637`!`L{hO3neOrR{z|b&Nk$%%4w}_ zWH4Uf?zTPvMn)+7xoF_Je`dvAH*DF&*VPn#6$;C?Be?6Wt(%^k>1X`Ug$Uw;tYYrP z;F5q5R$Z$Ke>99Ar*t?HHqJ!$6w3s*f8Qg&E69Ui-(iNm_s?qx+;A*hhT`OEdj99D z!@wC7+P`NR=ZpyrM_vp3dfLQ8^^TL8o$-zED_S9@`ih2<-vkGK3?X!Jj3nw`ww!Ia z?H917{djBxfotV(C3>^H+5HGXzs2S{z192rSa-hKV(eH5FwpqD9<~>HA|fJoL0ED` zkv~u-cwWbj3E!Vj%z=f+(Ut>H)80NdQ-VCm|EQ|~BL80kQ=qrI-3qTrvo#QNw__iO zSUb4XaToFsmA7Dc$IHo{<3c=|=1E0%ci{i6O-9M*HhX)F8{^;HREkk=O`fmIph)l@ zQWIof5gB&uYz{~m`x+PkY^9sImza;O%S)OMM$axhJVodey|%aHaMlOJDLMkYz(x-T z|6i8tYg0Vcs&hGyNq!A)B||?yLqkLNkfOpiMV;5BAZyD!|BXZlaqVOTUo z!=UU{Id_nkWCXLDu77gl!SB{ba*jnn*Ez)AbuJ%ex1MA}1q8M$|G6&wS2G~cEL zVe;i=cGf4vBzizQ#?8$yEX*wkgk-H=TUfSVbhYOzP5RHIaW6`aXU~M@ z7HA{`96Rwa0*!oCb>%w_FDw&UAg@w*SO2@g{g*j!kq*`;snh@wu=3C5 z1Nhf{JrMHh6hGc|`T5au!cg*Nqsl}H zbYf1rvQ6=gxV96~b`*+6%bq}}Q|D9qD3%5g_yXUER_~}x7%H|@BsR~_$fW&qc)@4w ztWTCZ>te1s96k@@l?n1rGy?y{)+{W7s$4r+Z*iV4W*h|%xpUd7?9@F9YY**cZ}S+x z1HedzI{^2=K}ma4-6ET-V)>KnaH+A8^{#}gbB?!Xjwo_Z(&1M+XuAIysFO|bC!H2r z1`hzHp)6oRrgnX7525HuUVfx>4e64y?Fh)@OfQ06Z9w1o9XtDled)J8hR#>H!`r`3 z0Z*h}z`!R3C!zXNRd9M3;g4@dI2$IS$`bls?-5DhcsL6ejj!uL3f#1M*!cNd4u)f` z2^2$YBcV~6R6m4tr5hVgLvj4HF2l{I_FRg^JZ_r#6@RD?u}cw0(%}J`NC&AxC!c+C zJ~jvMTR;Y25E1}v-U2&cHh#f~q62_8%GVkxUu(c*6oUA-B4fRuFqp4(p1T?$opo5Q z`E*~Fwp1x%#6tmh*u&uuhGG=_9(%Q5zna18{B%CzF8r`Pb#Ewmcifi&#I!ee6T2u7 z7G?upzq^}>*I*jAQ0toJb?4_&P~MFH&(9kuQRJx$w?BtN!w3>LF-2|ZBi_>{3!X6M zC{$Fu-k?pWjv!4_49UkMNlAz`>|p7!fk5lCzYY#g0 z{=8n&0jqRsajt`zxp=nM9h*+T`_3$Sig|0b>P)+^1T+&kVNVU=J(G2T5qIXSxud_mh^ zyPkRfSlhuHOS|;St`p&OU>H?CfW<*mN;A{I?4*aMm54RSdy0WVJTg1udD5g@b2Gcy zT539CLJN3d^4qcmt{xDO2q+}P#RbHvY;0gcU2Wb~m!|#b&UzT2UTf8LS8KDY8HM3e zH#^X?tmXaq1uqc4>&SNBa zq~qM3`A{<&a=6r7;k=Zf@Nce6ui1F(???)GxSGBIK#YLwF5J6;AsHo^(9UBk^=8=h_2n7N(fKpYqIOCOZoh z;OIZbs!Mp&8;sZskBoN{{TRQ zUw&eLJnbI`|IWHhks1Y%i{^JqLVxm=*mxH2^~G$#To1V&**2Z&iM z=Ez6DYv$l6&eKvTO$B0uT+BK#@N%7UCB7@FL2fI^78VltO&IRKyv@Sh}Te;Ei!Y(bPdMn51I3zxM#DXtEEC1cS?72?*8uszQS;v zv-jF-eQVCHt|6p?v(}IYNIyNjjisfPwT+e44m{lYJC+~9k751bY%ypLnEOQmz(M4~ zzIW@Z0q7#X9T%!TIR^r8!{Qrznh5|0g5#W8F1rY<`9?<_3a(|lMOiB-i zIT3rhxRrRh0#Jh3_UC84Tk*!rKCq|@US_SIw%6NMMEEPxO~gdr@bfRvAzl|yV9nuc z;iL>RGY^c9%3w8b_Y6=|ah7&_NZ8JHFcJgj)oakok0Y1h2LM0%BGJqg+xBA15yj+{(C7+zoN-;^Q#w1l;Px8E32go4Tv3 z>*%)tK1x9zDT|y}kyHSQWcE)rToP$)lq#|G_POuWy1lt^FVf6#9DSkOQFzP#YLv(m z1%qtq`xm@dZGqxUlS;Xh#V3>)F6|w08pY5wL@UwwC#cP-82M(~ucLEBq|{YED<&Bm zQm1_x&|6u>iC{#4i!_!!ZS_JZ_FAZ68)k^y`Yz~(+y7?4@%!4#t9CC1rP*_V^Y_L| z`aBA_H4J>Xmp-Sf9&0VP89$~*GoNK-=(g}I^7H9Jb6zBX6!rJFf28|?iz`bjM!+7M znn`-#;9^(IHmDQ@-k+d%F)dg|(6C!b+w;Z5J6}YGP84wmfq&q$f&QXMb7;CF8VW;_ zZU$4Opr)pl5ej>USzDHxJF5p+ZL|K%MBf#~cj<{B$+|}DcNI_@W(&pZ%z-(U!=Q!s z35v!j=5qVcmH%QsPeIbFJpdsC1gzv)0fFC~!KZ7GV}QWB zH<&o4Afce70O;nl^z;vsY%q#&4|Ufw*U{0(t)bmOQ_%LXUv&Dsxuq@+z2JmCuLa#7 znm`Yu)}XsY5&>6dovkgx_Z`m_(KEeG2ZMiKz)EbQ>6lmp3+o7cKqRrOEG;cvH(dQm z%qM%o9_3OB}Hmp_TfL^ zK0o>=xU{UVrx}-tOR$-*IX|R|XvC;*9B|nib8g-VtjNK{Fj2!>RSS+tESP8BqVbZ} zt_X~~JgJyf?}}&8kVPEOOTLWL2gLd~!?P9Vi`{4Yk#cot>f@$GN4Kht4Gh8c!E`*M z3&X%k(`{+3H`L}9RM@y$dScAH`7hHR8Ugc7ZIq+jS@Lx1<^~c92DR5oO`zgFsf~Wa zFo8%!h?{fm>7gq;|Nb*7Oy<)!_-PLq+E7{CNadnhZ*x47(%>hVe9!()LXRFKW6*QPjoJI6A}Del+|wGk5~Mnu#hZCPoDectR1#*fLMWA69=A4YUkI`%v8Su z$RJ>2C!76!~g9B?bYe?pED67C}E3n_`wLf1COF#vTV4pUoVuS8iMO;K1gZ6+#5pe&T z>e_2jN9(t`L-zn;e9;p(-3sDkunrHhU^pNSMtHQhQ(E)8KJj9I+ShtRzyOe%nKk4GE(9L>Y39 z3@640VV0c9%9K9d-~P9|Tk;A;K1tJA>D_TjA1`~whkyXF4-^%nuRgxhc>H3!LhjT_ zm3*C-noYH3Xl5GGo518rn5mYp8G%rYt1a;#w;#OJKz7-ijJVl4j=6RS!3>{$}E^$ zx`1ET2K%hLg}Ms{u_J-lD1N$YQR;YeW8WBA0 zEirFo2=rq=(kZF_9iIF7Fh0dOkvb|x!CQs`V7+( z-1abKqVWRVB5Hr$5B0)<_1*!>?K!Zp@Af>|d9z5X==dt@^u$rZ>xRz=X4|TWK~~`l zu;QS1?tYaj`mQ%W((xeJVNn}L#o%qZ;cVGk;UmxB_u@GAdnXtM3b!H}>)L?H+ zjESY^(c>7Y2TJ6X2c$k(S{y$Fyh-0MdGAtZfhD0}0Sb)!_l5@V7fUlf+RuUMGzsEP z(wm~C=Ev~B5_V5_4P_&yO`RIxKMeWlk99VtB3@P9YE-9pErQu=gP(R!` zDg6}Jd4!c9UleC72-yyLrBiK=@r_wEx2Xc{Ap}R|YmAcOTRAHO9S|}tit5tpp~q{h z*gGYL5rd~A4=LtFkuQN<$%s->aC$j*SkR8e)E(tgdGL%6jRPx%U6p)p#=|e`1MF0bzbu zTYYa;b1n1##z=~BoQp8JTJdrHdzXzygqdF`ImZT2qTU3?lYO{G_0*86sn=tgQ5#cJ zBhBs@_;U4UvUG7#J9>1Ky&^O7nEh=|(DwvVyzSf?pK?EG9~v9VnDfdI?mqJ?s9R>4 zjci_RlXT?tbeHtrD}-Nv$&q#jMPRt)!{nLpH{HhDO{WED;|?6#U@TurZ6Ix99v@R2 zZNS0wHtwh1{k&S9EdAk|3QL|PIRoth)2F+E^^O7X%vs#MIe|Qfc89JUk5*LFC-tWN zeL0y88v^2(D#?nX@bsuj%04tX@&}9EE8J=`3p7L8TD>OkhdX2l66g`jeF=x;{p%n7 zyDHs7FM3XUcP>S>gNI9xj})5M5+EQB2lqq~oGSiq4`RWt$AVuBhtLEg;N4V3@QHA76P960DZV~9X&&U@By!*vwo>k z>|qdWMqHhria%~%j!QglmT`(hpIw6PU&ezTX1kGZo!2BAeV&KJ&1WuawYvi-Ds0C2 z_@{O8fp(LzPYwYnmJx#ObK5zwVOUFohx4$ru3sht&xS%3!9YI!Y8m&P*8mM14oO? zd-0XE^pNz&kMtj;<8{HrXOZ8ZM!vWPMH^YelH24np!H}DRl9GZ9XaOleZgutz%n_wgv*&?pkWIixD<88@?!}ddjvsuC zeI1M2Q_{;4aQ#nz;=-n=^_WG+?ta}Ok)j&MRw;@m-u6N#0t#FG12N5ds(?ygm~K< zFLeH^iA_wX$gkAjf(zsu=9On%mYv``lc4761J9|2hOw-+mzS5$^E60Ok{mIrz5(EI zwfJAoD4aeWtzb#KY)^5v-CfkK1zkLXpQTs{f9SKp5Z=!hN}Z(TW2+Q2RzEq2hKN)S;AM~B8Ya=hfAVssB+T~ z_OpG4hYy8&TBn>$s#ewi1i-0ERh^f9odYMWi&-$((Am8RUH}_ zf#h#6h2bOX%f_5RJA-& zsm?r7xB`$z7wjhM%n0zm`R#dwiGi8x5-LMSClgAC=fRpT($Ye7!)e^?>E`0`5#)Hl z#PQDGPy4Nbnik-Vrza>oJD9QHL?IY4BD#Eg6WFxPg)!)uh+BR<16)I-HVX9#yxy4$ zgY@HLsn=GYVY7xTWn|JMBM4DKrRj5(gWpVM z=vSW}Bx~;LY<52ww%dUDMNJk~zF%G;{J~Fn{LRc<7FcQfRZ&*qVk%i8nJR&3z?OG^&o6N@>_Z)YR1 zWdoDXc){_j{AWLySqHu_K2A`ZsB^ji<`xWye|rfK)we<-5W5-24-w={)?ieu;bAod zo59I+fA8x@OIbei;N2|3>STqBnPmIzUTR)UT#OiZ;E@zX?>R5B>M#GLnHI^#G%}LfrUk|`lR8k*pYI=AJsiPxa2(Dkx)G+PC*?r zQ49{^>2H5(5G-Bkgl+0W#B8P%5c-y`P zFz1BR1j8oD(k7=W_palOnpW@gv7ll(OBFlILKt-wAlF>Pp>$OFe4yJfnd&JFf9w@M zJv}nn`InVX{7nlsL+}(eV!(;foKH`5xW@fj;Em_ocXDo;N_Qe-S=@f z`Y`3jYnEtlw@@D0cku`5KNfV}1oLjV(5HaqH>A-;F2UKAvr{t*n$8S6yo1HQ-m`iz zCh$lKL_Z7{m}k^}Wf^Bto{;K!arVIRsbT68;_{Q+iel1badIJ`33}J~FcR{xiq!XU z@(9uWF0L!D0sbJ;ofo`!?{*jv4I*(mS7TF%@-A%wBmrybZvre>6ll2<1}$g#KkM5g89;^Y6_+~O5c z8YBoa|NeuK{`=HyaKx% zPp^F4aE%>DYzv?g_1L#SrB8if_^a=)gYK=zQf8_v;B? zKk!r#VL2L+b7YBBr57C+;fKdnuy>}@`z%jOOT$uM*0<7YV8xk$Hs6!N`3&t3BHoPH zKhO@jP6wX^k^3)!v`2d2J z#%N40j*`0YzI`ym!St6NbMCK!xXj9Q(v;z&<{FBE<=li=`I_=!8i>z+`v=eJA1%*T zP8P3T;WSAOs?gWgR9Dw~1kW-eBNxm>wg>p?0cm9l{ zj+3~Sa{0FL_q!uJdD@WW<(=z5=Wb42hebj=7_P+P5yQb>w1Yxzu@6o2HEL;D0j~If z<14!YUVi$H$b&BqFSnfh%KbUk~`n!;%!w7jJMAtRfVY~RVjxmZjy z12j%IE5YMmXMRbf*ho}N)F@NOeFcRYqWGCR&*ddQo5s~MJ`JoDg-RFbvQUt3vnaf- z@9HxeDZq*G)Dvgjm#HKSk=~=8bg?%pyTOQ22UH^k{G9T-Mrt6=Yy?I)A>sM{-p+3d z;^NOxO-U;FSKNKgXowb9KYa@yym>NvQ&LlZbR&e2u+WUY?bYDswWEil)LV$YbpQVP`f94>&V<)w?@AJX;g>0XMbnEX@WN;Qyq$(o?*0aCfJ{c~Fe>e!;1Z zv@>A3N=Z)9%P1CEL9ph^nNCPg%fL=a{Q;@zj$A~#I;=SU0BT9RsW_;fuHGDf!wsg( zYS81e$;*RRcEEKwpomC-q=1cy|9vkJ7xLYz`kMc9Qu-Xg+<2dx`Z>;hu5ZR7GoN7V*h^#$BOVtfU)m&y=Qzzz7WIHQH zOKlU=?r|50ctod0ny5}$n!#e3C|r*85EAG16Og`tJ31;K*`C*^NT1Xi@i$lt1zjIs z;_h}Ve~EM6x$f_2qWjD>)yZiF`V0F1ML86E%xSV^=yKU!iJ!~zsQ!I1M9Oh7wY(Gf z9NcMsJ|SmycU@i_9&*3bA7q4OrAi(@hJ)72h-@>s-v{By|uBX&v8j1?+kNgQd%IgJ zu6H0lXLI%<0X2E_RI-Ke{;gskrj`9{h2mN9F&p@kt<5gceQ|OW90Gd;OCw%#<@|h!@TuH52JN5|IL^&EXZk;90)b}0PP5Kq*95U(m6L1 zwCs2k@~vp)ldC zxx2SVL_`QoRQz7lP?JAZEe(P~Jba?lYg4Nl2C4AY^D(o9S|I%mAy%W4U=?6%t*rk> zwT1XOq%DLdq)YN>uCMd&La&mQi<6Z@lrBSFbfH!qtT!9u(325m>^RXyBL>>o1k7c3 z1TT^|Eu@nmV)R(&*J>yD3Lm5uU#X~v2X+jV)@(jWGa=(yvcMB~NK8G6)0-VRE z`A_Z5f)ZkHcqZHmo5AJ_9fLSy&su-~id=8q<(xfc8B&_x>* z8S=<68H|puWoedODVb`;f&A9>u-R0VYv#W_CIeR#tW)4q;&q z4u0X~@edVM-!DiwZRq0KxGBTwu&cv}>!!KnnQr40WhaMe&psh^Og5UQg=!t|7gu@3 zu_m%WGV7C)Ff?H(6UIy@_A!K$&~Tff&f2-*!N?GbD@E6cICNQme4Zvp#smznVtSVS zPc|TuHN3>`nEYHrmp&ys*Ze$P=+Gwp9Men z@b`5%#_AfpJU@ATyv7W^Io;eG`ggI}HN-RU!>J3kqm!l%MlA*d>s7|7okKC(m{JVd zg%ko1zE1b=Z3$z(db#n&>a|QF`SEnT{5BARV8rYq#Q!Bh-r|l9(^q~pw z-g3K#gN@}}ui4l66Hn9E(Q&pfQg-$241pHXi>F*cK7C?)+rwD!^CwuOw%n#g($Lh> zkIPO-%StAuph%BPP0j@FzIPwA4fV9O0g!%GfKQkkSsKQa!vDT6GhE{FY-=2Pwb%Z# z!x{7hw*fjI_cP(A(5FlVECBkhYN>5%{=+9AB<|i;Td*N(=4@?mF6{^$lcn4QXd0T(FF${m-?8?~Nc@CPQ4R;;0ig ztn2L!x*Qu;@6hzmp8be{;^N`~?25j>QjEJ3S$m=0Y8}K|XMBv|!+X_s__#Pp$(FPb zjLBP#b_t}<+-YAe*?+aHKivwVLW!77+peTEFxQ z;^qWPZz-~oXDsub{EAUddS9Ty9E>Cw>?4Zx4w{40vvKaj#+Vcgi6XSH*rGdmoW2hW zmBQ8oD80SyU#|fAPgzw>88i?EIhmL_I9NDX2F6rlz)DplV$nc3oGf~2DGRFu=wS={ zf})X#aE~ZOcg_p*mr>C5-VR-*$b=dg1qUsuq zLLRRVZM9^F*@VWQTwW%Gt&}Fx9?g0GlBT9KNI^wte%}-;H6ITn_ZxO*W_}(~S{_ zimX^%S(#cHmD~FFZ+m-t^Jug9Q`L7gAxFkcRe6M9<$RoT=>DfEXi>Vg7#(>r@VR0z znipCV&fX~3C*j+Q1}ig6tUA#RoK>Ct?H1g3|4 zK@|4(w7H#rQw21)UHP)+m&uJ#8RfFn_Ui$tzTslGhmh?#>FGb6IKdsg6zyhSD>eGP@Nn*0@mBf z@iC~Gjy_|Z?fzTd{tuVsq5$4WrCoLN)X_$aJ5$-d<@_D%ik6?pbY#aT&fG40Z&fAw zz2D!p$*N+7nxn6cs2y)_{wtO)F{#jEo}R#_{w>8V*Ab3{%a2vQZNSHprc5Jq{5Ehl zMgR(qyA7sjNwY{*D_u+$J(s$8+C18P^Y2r&?(QDw%F1Y$HB)%z`4$#=boqIk-+6(i z6#!4njQ;$pF7UJUHwX4x-#{xH=;Vw@W$W|CY1>nG(8~d!`92>_t>r&JQ>dOd_gp0Y z_}SSwSq0i#R)M{eqRXR$MX+T^ZVMX`fr2<uQ;lK4Q5W0dsZ_Cm2|?S>1<_Doul( zefVf$8bLQ@fFX>*9zSTQQ!IKwJspK0Mn{`uW9}UC)l|h$$W#6C0U7Kd_R1=N89*3_ zi9h)GG`9>`na>W>BHBmLaU7V18{)cBg!!()fcG=@XyZ8yy45TgMG%$gkK*y+FX3t9b0|r z+$jT)Ptp0MrKNUou|~C>=03Fx@{05Gi%!ffOloLr#!-@OGo~mBsyE%LWAP1`&Bp}y zlbYwe+96RTq})=8 z$3-N-pvOJ;p@bzi#XhIrJnxh5L*Vl8&ayxmr^rDZNyuT*pOf3kbGtk{zr;d|LIInG zXSY~r7#L^QpVyyjuwgJ_Mz&E@*^WD&rFVXwpIw|!+1KYtR$O1eoWHJf17V|b_Mf515+yl)IiFBcQj+$-h%RSHEhUVa^DI#Fv8~tWs|shL=4dkW zO}q+w8$K_d*$KE>qHO~`)5<5?yT`GgHEm_RBP3AHS$A$e=@Rbpq^ZT2P=8k(t#Be3 z6Q_xfy94qJEe*$^p&|BxP$@#eHa2EX3AdUJM+d*dh2274o28a9ER5Ju4vrB{4xm>* zJ*F~l^E|kyPybI?;eKEW?OHv7fO*+ybP}ZL;QX(qPNir4v|ciSbq`__>jCd}hXc+H^Mt7>-dwSqyiz2!Y2nBI!d=2--C2GwtY6Em(7vV9 zfU7bS=3@weYFvQ7^jU7Q@8N<|DpP$bplm9;$e zHGFZqPYGlF9sx7Mt$%XwazA2}_RWy7TWXjc}oeCbY zMmA}A@=}Id8~MZGFKvNs?@gdEK@uidL`md0FpMwhL3fbP;){dw`n1ukiNSM`wPi>Q zud_jPo@?JT;#*8K02|%hUf*0u&Xg)U7nSi9SQj$-^JjYhOuv--9D)-+M5s))wj?6b z;_K_v)Xg5;H#&+6N1X!CfStmLkNP*LRtS!!?#|;cC(SC>FWBZN67iINqOS$Jy6$?M z?fnG-o~o8r*#f@&zhd@5dts1G^({SZBniU%g4%EsZ)tmZT{UN8uzYFe=B8;z^I)u@ zp%a*QAqyPOCA>~xLE+e`f?@>>Pc5`-nRF}u^$c@xt9#!i@YCYj*Xv~10<509dEjJC zEiT@lm%Y0t$DS^)M3$>)i$A!Rvn_0Oyi zaUKM2s!XDS{P&=l@VmM}{-@4BAvqPCKk`1!SIBGL#(nk%SUJwohXEAd12_n$x+?ZiR zSIZO2q)JT1*S;pmf5XMdt53~n!BJa-KmjAtv<%zX2VVV1YZN**mk8$ANSigeOZwF7 zJetXV(*4mz7#PM1(z&F3^>y{NdcqDlWNa*8WrbG&M0NxOSlJl>Is?4;Sy&kPY2NUP z2vk;Ki^7l9ee%4HRvqQ6baHYsY4kpxeHNf>y`IW$hrS?F{kio}gs#JT-_Gu2?ksGy zos0ow-!AXlw~{bl-D`mgCjrl*3(RBxtYjq4GR=PuM@drb*mCuT3z04OOooc%r<4Dk z^D%%N+$FhM!;@;Lg?3}E6eqipUrn*p!I~143spsIN_b1u%vEc`ltMzxB&aYo8;NK@{m+k$4{+ zF@TLS*3bXNZfiY)@cZxIMJ*!lm26R)nuM7h+1?^L5~9Q9NWwk0S!+dt07c)}>TDlU zadJV^m+`Gj#EDEZtHYdWZ(lq3Zcx2xYiR*zZeBj!=jXar()#7qv9Zoh%;{OH24x$s zwT`OP?efpxOaCP>9q8%KOwY_@!tGszJuE(i_3`d$Y^=>mOh^d2wz-%h-~`|AM1M%! z*Q~(u7_R*D3HsuIQu)XI@!!kI&F({A-@l8Y$*yI%4E>v1YB&uLf+FA9%dNrZLRovN zfr68u7=u4g&Imlxe&S^9bxd);AYs^2C6wT^Ai6|!67M&{#LLp=|HHe$O1&3TB1#pH zk+um%4J$|*kw)TZLHRVx1JZ(D+P{3u5>%%ryg(G?f53`FU=YKMQuFzBd9oHPPMc?m z6snd>gBFbPr(#lRiv$~R=h73yP$Yp8&H0nOwXd?Yw7;sQrKh7g(hyXRp|{{&(OAae zk+=k(IOws0;Y6#S>%rp69A(=*_}JX8hEx4{920SAzu%8Wu3T<%vvc`qme;;zq+%h~ zRWb$K##Z13m1dB3P=X4?9gfQQLjQkU+GIbR7WaF?|v z)cu53pHSO3qg0|%GR;96jf4_BJ4Y5E+qtA|hDKDM%&2ruR z+XY=~7D7}A<8HF9E~dRrbjs|w1U(N2GX*5;>Z)$LM}MWGDk{Hgm2gb=Si`4a(i{1U zT<>cef@Hm!*_jzY0G<}ed&s*#T1ZabEu4BgYO@5+#|Na&S$}Wh8K^}z z>gh1p2js9!-Df_I!Ut&)=pb(hyQ=_LGts(?5L?GDoy56Ac$Kw1*0nk2$QwmLmG7@P zgBi4Jjp8GxF=C1}Mx+j>(fagc$%WHYyYSXew=QxgAtaW(9_ZSrg2;F=RecjUFvQ+6 zvJvdxe+-+_E(4SxzEcIp0F?Swc6w5Laxys;85tR9-fC;;8)<#YJ5e?Cg02rR(as#E z8!p)zQW*aS(l~U19<6w-Juip=yusNuGL~^u!0{xcV&@w&*to++E&#Oi^*cop2qckh%D_UiY#uLbWiJafVToFxs2)8uk1}jgNSlw z45einAxGQW`~PCl1URvxF^jzuln_-XaX2QR=vP(vND6E+3-eMwslZ1VzAJ)3%EX9j}vwEpDcH8`2i zYPqo>B&b?(OtEbr-O^H&@|y3xx3^DIOLL6O$sIv>K!tGzl4ylmJ*iO`!3~7@CM51Wp!dhSbSb za6X0L-E4-vut#Ba^})zO!;J?!yA$|Jm&V@w&Tu$AI;J8f&-{^=mX<}HodKA5Mqq-n zw79ys+Un|hd=e_K>ibwBu;%+14W_=0jkVPc&CPAif+8XkB4Tg2^F(SKh2I$@Cg4z= z?Adefe9xxF^G60#>&)e1MYeS=Mb0bsr6^P}a>(G$`4`;kxc)rc4j8DT(S*^cL9NAP$wP2Vfb<}OpoN~s zaMecT8;7;n1yDoUpQy9Vu>dM!a|=vx>rm_~ReCMl+&@xd`w6(uD#Rj^pf#3JHW z(@;`T6ohbGdOs6={6V&aliaAy?eyjOv9kT1u#4>0#Aj#qL*x6Fs+KmvH}jBx&>sn} zS%(2XB5I?z!-JahHTohteCvlD9vq^K@3!>hF^ZC+7|4X#eNbXt@jh+jEC%4u)+o+c z;VV|up3nQC{OgkrvknIb2dRKw{o-HE3f%=mgVZRWD)IKTHU8;n-s6%%S@*rKK4NGbOPo*u2_|bLRNPL8^y!#X-xsgQ5%r2cQVt@j2KQ zG_~?kqYEEEh5;9soOJtiYvah&3NqQAUt60H)i;d10}YNl+XvMBqob$KU7w%I6B|>{ zuqB8|;64)A=;;ZpC?#V_0BYcAS%)lXFCM zY-EJ9y!;niK3{uveQit7@y#=`OWWm`h(y5N=$uKDTUArrpJq4&Q(t>`f5*n(t=Fpm z0rKR`jODd-a#}(UrW$(qI;K+nxqT(*nQoq=&8bY_MHNgVbaX1xhb)UR_jncQK?MJj z8Dj!|t9l>fDtc5(Vv6a@X==`O71Kwt2A$oSCR@FI%UQOG!%JIP+SJPLQVto?xir2s zaj9vr@NsBDiTNTH)7?4W$pVh$iRswVLQZdh4|qb@H! z+-o#e6Dpk)aMsV8rW5h+KD8u<54ktbXAMf8`VI54hI#QHWh_gQ1&1uG= zw}dD!HgO!;%viCShsQ_Hss{OUA}fE0G-{IxW&#`k4OmW!Xh##`EX2>jfmIVqbS}=q zz{Et0j8Ior8I~llGEkn){QRwapjUkRrU20=$1gJ}>w6;5zaj20@>P|X z!K|nbcvmCSytv$XwP62|Ey2){&i%=eq^Rn2^mo(E^YeLtx))L6(1(@f6+YXLrq9GV z`i}PY*7nxc9JSTj#TiCo^-`|XcocXPIQxei<*soehhvz3CbrOCp`xN;Mt^;)JUlSO z3BXDt!>Tb+F=(&O+&$dfCma17p5dkG@U(a?m08u_{I2)<=;c-Cb#o2Yxvo9EZf~UT zR~OL)67%sqh7S)9%T$2PZkP#L$;Qc9nGamZXa6enO#JS4mn30~TRe_UJ*<43oIcu_ zeX<9>wx8{Xjusz|mGJK_YIwEsLPZmIMTe%WLYlXj+fcsB-K=4TWP4sb5krZHwKs^3 ztt}krcnLfXbXZVA+?&V+i#9!o`B*5>J~Bp)76$aAY6Qq=R5AQbBj=C8B%FbhJyRXk zOdGfOe&(%XfB2JA5;JNPCjv|~*hb#|U3)9kbx9S#7BAaj5siWIt&>#O+}@1cOO|YI zMTLwUC*^yZwvi^-r2Uxpv$(3Um>QJZ?RT=T>Y%_M1o}^Z8bT+b1u8_hx17f9A8*H2 zTD&%h*H`)#@K0M`U}<3rb#GW~bSmsJW-w=yburNjq;unjlUS0L$0p&PmaPb_Bf7sfP3Pwq zuTh236Ru6aKiR}1$Dv4vc`h?3zTsqI5z_n+)VyQlH$L$nq!Q3e?@Yb?JdPtTzM|C) zp7N6$sy)6qYavBnf(o?Ii3;(BGkf7-acsT6OG!i;9qhwt z%dTcoa*U1rI$?@wZ1SPz&q+4?kp_fI18f!LP6RO=ab2NwV8()nv-A}e>*DfnW25iG z9Y}J5Tx1??cem6xdP?DV4>Xkti$N8YZ-|A##gK3;a}-U@>PV8N`+|2L-|h)F`;B8= z-CW&ZWl5~91-(42Pe_`$*!U@^LpuiUrk96yfk~lnva9QYW$0yCW%$rg#4ntva=G!A z)Evg8^?LtW&)HZ^7QxiY$_<#)ecj#ttAM@n#PXe$otwD%mq^W!tQf*SMIVYt;z?8$ z0TCed+niM@^wvqdk2e%HtCQ%*kg4t3(6UY!Vv=~9Bokp&!9+Z!7J(xna^Gze8_T&! zp{>|A?ific&;mhAgHxkhf9J$F6B)HhGxZMzCbM(%92+)x-<}1hD(31d0sPB&UmsF4 z2~w867u@<$xzv&%m#8o|ds)sAJu!SX6Du<-D+?P7b49sJ*b>yN3RZt%epRH=6IJ=S zTV>AK2p~gmjzuc}_}=bbccZuX`7Ifeu@0-C^XBh~kU5mHs3#HJQ|Bo|Y28ZXJpsz6SN+3oK}Zf8i~drmJRBAcX4NZd?!^4Zh!_!khvKi?_i;ca)@o3xq z&CpdFZ0^Q?vgncnl9H0aW@A$c321P~`q_SQV^0sDun(YAoxgoM46ZB=cIMA?!NtI? z0H`VL>k-BMC)*H)q>s^~#f1N*fhbAIB?sGsfYQ^`bKf8MiPm7yv=Vqd$_!gvF(cvr zZf4mnh|pRZrf88>~rb_G#wA2VmbG_<#OKl1mxw9|p65bW3# zy=Lr@NAPB{`co8uVXa8r?KiMdLxSHW@nbYrspB%FjXSM3{4cd3a+6pdj8-*q-F`ub zwpAfl+4v4@qhr-+?nb-A+ppX`+O|48k*b9}`i>m2u{RMqwA&L(2;`W^Lyz<NT91zy+;U>%gtj}m}C237yvZMpu6#> z=AVv=&D#3@_Lb-W^vGzw-Sb*F!VXZncP;>4$9c6e;B>WuH5|D`M8uHHfi((xQ;R|10dagix0HPdy!2AUMFqtr>m`crz@?2 zZZ_~ZFjvgH+IR_c0ZyZ@>Sx|r$u*@#Rs;228!0mC<-saU#}^h#22|lvJ`yM|Voqhz ztrvT$lwM?2ne66+KJGSDjAX?*2c#HT=@@7jMJI?fVQiWZp)EwP zoMcyAeJ0sq{IuNOwD>JQcX=H2c|Zp`unlm^Pe`LdcYCFK3CoiH*+1ZU0=WY0Y3Kr} z&@R{>$I(8!`fnjVI3Efk<{5wB@UhSU3hI(aOQTs`?i)4wkI)+4sj10HULIav-iiK< z<64e2m&Shcr^{Vnkq2E&kF8A(7QJL5qTRyReIVn# zlxx>i`iJQ?yEqRB5y&_(=ZIg6<=Ffr6P_CtvEY6{0!@lk3+9|Xc&@BjyU>MsR`N`v z%p|6VTwIjhn`1Dpt>#twEt!S0e_J~qZVYM|mrXn|P4tz{Pu3TyPxYY+FYMdq@5Xqwv654uP zF?yZUD-<_PO1dv@7=%kK3n*SvW=g0}iRlUO$S{%BnmC=X#%edSJiK^4zvn$!?jw$I z0ujJ_47b=ZwUf3!?1nL!6vU+ zkO%Zdf9i@sE;k1oj43J_1*yKmCvN2$qC96LBmto-HW38{xEKj36H>#9WsE5!;@{NQ zT}!^0q-JNPrIAxn{*wp_w6*l~w!}y20FD^)At;$48JL)W&u$dDN)$Ret3x_jdODdy z`qE>#Ugd{&*n8+=FS^LmVOiAW)D~U73?SHX)f*WY$0dA43C=EB97|LQe2{vN721s# z!30e}5e|~gw_so2L;RM@9Y2;bP=1`mLFy$C9hH!uu&7xeeXd@hB{bjdLx6E^n3|Rv zamV)X`=_mph3M?vp_e5w({-fm{&n~h*5@Ecq@D9(F^IHTa6CaQ{Lq{z>;uX2Y0TB+ z5)8V`ZHI~}T1S`KMnr0JiVN4~0nq4n)!SJyC^}}9|8lW)JRv2{Hr5Btla={}7Vm?h zYrk8QptJRvmSV6Maemgdy4u+r^+jTi!r$Y^SpZHV465hcj)Wh_W_AoZu+>O}P*B zi)*ikCSHDtY8o47q@<-KWoBk({Yb^9qS!n=$on5hXBkyhyG7wcw}1lD-SN@gAl=<1 z(%m2}UD6;(cSuP{NOyO4N_R`#*XtPiTk)K|*P3h2XC^J{rbRTNBH!o@fN3(a&v8%hqAo2 zyXeDUqFXUOfu1fupZ8yc%@=E&t7SH|8&Ojx+O6a`12n2v9Q8Q&aO%^8rFT2M?tH zbo5_U_A6v$*+}qE%E{wdT>x$(_lBkeS6{(AD9%|84Gka%Dygd{<%&Ulg#{`#m04HM&lLHl`Jf0`tya#4 z;QR72!9+|jL<;UIYIqn$4#j1lWWemBL~e( zhmlVsGazNkY{8F$d9=7PeP{|SmB{e{*3u*M4hgXr^0^MimcfVtxO{6Xbx<#)FG!ab zwD5eqEj;|dpZP_tQ5TLrd5_xXO=k3SGyBB$Nma3had0oDl|23~L2*#EgER+UGL$JX zIVSq97hh(lNK!xqvK{gF;g11u=$V}#r>s!YBTRu(Q1@jj>?F9Z4WN{}!7z^oC0DB`DSjj&CR=}REKFfthL=OfpoD^lke_1 zv}fn2;@23|Typ1}U*#1K>TYH_ev+!FxKm}vj0zGyZ-QiVeY%U5Hqr`0^Wl;0jiX}P z)X5QD@{vO&5m^1>)y=naBvsy?B0Y-=H8yMI)mF5)N8y zgp#zhe0WrpQh1D#ydoS@-`3B_p~J(&A=yS1foW%8U@y;aJ<(SKvdBT-bn&4zIB*qhT8Lz&vQa+^V7*8Bbg=f{k*aObyge-;ba0*M#w-nwsP=@$#KqHD zX2@)X=_UtXKTu(X0#KO4!wls|)<+%s`S~plmOkbtb}ruU;2~A3%^sjVcjNJHse<7> z(9m*Y&7GW(dgpt2KNOpgd_}zh5@e>0z^Ws%w4Z|8sEjhs(4e%EoPwfaWNb{#8?>3` z@?+81!0`gY3c<@*s7G8zVExSNrK=Z1U!Hz1di16nVqF*n;`N1vF_{(E1L~Jvgz&nV z>pp=bJS?y&3sZ`l`-emr$-2ratB!lN-ggf#qDjwxQZ+R-Ck|IvmlxNT+5#?LSN|!S z`;*<^94ewCLZipY&dJLQxMF-0(~~~UmCb~>BHD3PEww|PvgYRG5DEuyp6w$rjj48= z3-j)*lx{=0R*nW|>Ff{rp!#l1UXO;ti<#2L(CHX7w++06?9|l6_>}a71i-OM%E&;>{8Ea?3s*=(UtV^U zKIVQCt2kPb^VHtJBM5piSRC7amDiSg7=QBl=;Qjy*7h?H(+LC*M@L8NXJ<98uTwX1 zjP31lG^kmI>Z1K#yEBV^d37$ z2;UpeaXehcKxxY9MllzH!Yk9npFhE~!Z)tx5 zirQdU??YxsGe;{jTT%YLuhMVx^nB=B{R>XWpN~#{5w~7Ewt~=@(QnV{me9zaCV+HU zjOc8uY)I)l{P{Feuuu{%Lc&dxtZHxZU&sY%&4&Rqwr}Cw(^gnp!}COz0TdWWA2L;F zkZ#KuNk9H~(S$;ef{9no8S z%)}C#<8ff;W29xIFa5WJJ3h*zG+yWCDf&o!r&3Q_{02nb>De=)(2 zT~Ii9ABcnZBUA7TulDw~_T7INfk|*=bPSBk3giEr{YvA^6&0Phh#xV)f|B3e9pp=^ zO6EM}*j)LOmPU|{t82Y`a!kL+l%&x3FKZV4HChd2+{3$Xy2F#Yb719y4}-n8s&5PL z{OslR*YX)!Ts-Kh?p4^^0cs)C%P#hHbmZSJ)SqVNaw&{@#xf~XdOzjCR^R_Mv&Y1I zk7Kvc!0AL*&xBzb`R{tUZTqkJdSCA|PMO+Nf(BE)lr{kN`uF>vVh-)Q0z7QCwj(hn z|=3&dBuXk43ahpG-if1f0M2(!!!nm!cR7 zEsR~s%b|6dEc(kA4NVyhIVG+2iJq>p!QR2yVPQ&oq+Om!*}-HGFoy~dS%F<{sP+H! zk?`cz{aDavX8=@2|7Y0bw>?*(H(#aCa>b5Y3x00mFg&(`0LD78JUhEe zW@QDBI7y9zL;&mdTh|;=V60?RMBU-fU(b#G0kwqz#pPYA6b0mt?bErgmV&q(y7rIU zw3x(}DpwAaIUjAuoOb_!cJw8!P0WDucaQ40oov22{c5kzaT?0=oIk5Q?$Dy82N(;S z@za-@1K;N1JPkeW&9(h&;t=w=UWiESSITPfx#>IUcUbq^x>yEy0$%^ynFv#AR@bQeu5j{(4IFVdN`?GHQKiV6(Gr*hR?3^sJ1U#~V~ z#nJsQK=_dCg9l!pBAmH~eTTinh}svA*q2)8sG-4`vO}<24@Le2)i9{gWP(hbbl?um zN{7e%?DVxHTD~$z*=m+CgS_m0y)++Ri}znrPShK8)R?bdMg4FI3HQ&AK-u*1;pyq= zzm`6`u5A!@?#)r5ABwuXxLx9vphnS{{jsc1__l&=iuxpm0bXQh#aBy(X zhdSt9x|D*X8OnPpdG!zB*~KkUi9taXaF=8p^)u5_Ef6&dQ}$BrfToC=w%b@m#KF>% zqb-a8xN|rH0^`>>R%Mf3P|7*80Ga&~@cN3Jk{nH5_U@42yUrqCbK~cG_z+1NAo5@( z#nICrpz`I1f;DJniu~Z12sbmM&$PC}H!PM&*zIL#mLPT&a7Fg&w*`;G5nd|m%J8* zeohy@{U8)+M33c&qaiilF)%YS(>2z+O2fkQ;d2H`JrfV@1Sp?dorOF6o}c*chx&%# zXI=C<;oWwU%W!jrierP;Ao9eYk>!W@->Fu`O{b%V8J6d`!FMJ&(FmY=`8{5`3TIx#|3U?K<@8(=L8g|XYzY(Eo?sj1??RXKL035!1-?w9$AgWrrtOcykAlhz5x;D zP&jw>aPjbPa&oHUc+uMP{A6ZE>i8mNsHl0WC3H$f5zDJ8wLUS?1OB@Q7P^p20#P2n z|Ah;a`p`>V{LUqgWTNaF;hRK54GAjo%(2n2E}7?~q@7RFS%}bVwJ0)JYi-+~X|m_(q>DK0J-hei~kEfL>kkp%>NQN=g9Jjq)M zVotmvlKHisXj^k*Yq=3kz4b&b0j&;OSRMbW83xYJjg3H2H7L1qAn9m3=ymg?`c+X? z;b5dEnzsJX+uO8w04icjWz@fD>+2X9>F9RhbvBho#Eae^R(w=x4d@S@&(PNukyrZq z#xZQi;p2U^U9i-}J2Hx@g4}$EPao~KcMd>Ehu|GSc0&5s1x`*l9Htzt>k`>eBbf-N znuXV+KsKu>Ubl@a&)it42jwxl6R3Cm+GGk-_mg9sUS>?Kvfu()$9Y;gG2dN_o z%*5~JHkX~f7T1$UQzZeXqorhqKjRrZ!3Hx6`uvb9Q*%HCTv}UOihl1Sz?CTpx26nW@$ZPY&Q9J0PtRav^-Cc@?pQu0V;1LbQ%(^BHrvLJ-%d2}!@sq#SY%RVz37~KBIRa5PD`35}6DQfSx z=Dx0VvIbNrzx=udOwY@iG?(}P83A1O+)452)9r4m(dW&FKc_2Rr(?BBf__I!y|px7 ziG^Gt^FP(`-R(cu{i=u`H>*w4_=J@Y{6ry)(#jl42IW4A6JIK?*xA_fgS^f*=qRu5 z7Z0~OR;gMe>|PS68)tgm=0{6rTj+XhjoAvj&21)F55_CXsTEt|o-)}x_ZmzD-v%|wAkyVHIy6r(jIXOLoV|xJ@k$finWc`%v zcwD^Wqs_ff4tDkh#V`I^j?Y5DKcHv)#kX6k>ez{If=%Y-)YV;G_4Ns}+~GPHHn%|8 zXzU*iVArFTY`&|$J4i*xQ&&@&p6aC&$*%Sk!;H~er#(2v%lKxbyV_=R*G563l-=ri zF*W-yA9wA-{QJ5Ec+|FU=8b$0dQ%NQZ~ht=zPsM$X3pmIdm6|E{SBu}^&z@A!|W8# zM5E;Kap)*1U&!lq(n>|%zE#=#kB=VU?xuU^)RnHuCRV)3V;|=);huEu6*!YsRWx-& zF-XJW5)y*>0zfGT-NB-S*=_+cG8~#jutLJuwatjqw1v+e7Bd^Rxu5jK z=qU;K{wdU2_q>WdYkgfKS@!}~N~6E43{}6ME?wHa4(AF1C!3hx`Mv}6ivYBCOMML+ zKi2}XW@#&b!@iOT5 z4D@Z`{>3zs=lZ&FK5#!U;3)hSo)Btd&Urx|C%^0;W|^cuh@Mu11HLRCF*q+}Y;Cjj zA(?aLdUdI$so{5cg_KLjQJ6P>;jietK24;6U^>dDe*u~jGy&ePQ;^#Gvx|tq#fL(w zQtd(LuM9CDP91&i_KW+1msU*{Sjy%+-<_DYvE;e#x4QOza?-mP!e)bU% zZ2kTF`RU2``Cmx|=teJR7#@Bd;HZwyD@$)q4{a{049ty4<1{SbdNgm`ykV+#5&0Tove?J!8R=(s$3^wh88>Gmo z_ZwnfC(u*`8j4mLKR-OBnTAzEIhwjGA8w5}8Wn$F+?jW_ZW1sIDp6So*nV|`77eN{ zEv=|+sjaPmNmw&BF<~T=0~Q9E6Nnwq-ddCJ(pt|Z=|gc^%CJ6Fg%%%oH!yLNQ>4t#@zZse zS`hlpakRMaNO;|di8dU-6E^d`q1SdMy3o^cEy$qmbPKn?o|3HjUENi^zRbS&zv{Ue z{xhB>q9%B0$W4L$4ke(j(H5rxl7y8{C?cvTsS9A8KDM?1{?5nR4iI6# ze`G{!LGm<@7mWBJ_lP z=ISa#n}h%TN2R4~#mJRPQ}RBtXOyV5dmCu@-}PDoJ&qR^LL>9R@SC_D=eLyJOCH{b zbM1rMZxWCj*eS|^Oi1w0PTgrJe7}6XvULbDM7Nw7T7AFJ(B9m*adA7Q?Q835LRV7= zbAOM+BHB8!b}+RvFDNd&Q4ZV$4_~lB3Yp-zR|<7b0)EIMxF|L8HZ?tf7e{r4OGI#8 z(u_JZ8O1v{hDhWq2vo=Clx97M9`q*y;&{8{(n_(Fg(UP21cIPY}ZGLz>ACD^SbB2CG|g}md_7cO=|tpff4L_l^KU)`6 zj)ZdV3_<`75yFg^kf-++%k5=x zy+Q683cl=m7O^?sW}c9#l@?~E=6rt{*uF;8raB0{?7UMFx?0vU^xs|;_J2%01Gt5= z_P>u&04lnZkG}S|o8O`JcFQ5_x7*DWuwRa63%NYb93=LmpRCrfakB%DJKM}U%JEMf z_5QN59|aIZ+JWI=vZ5XdSWlkCZ+Mnv^mI=nYE)sP5%BxyZ{!T5w3M{u2v`D|FO~dz zd{Oauy(E%2rl*v(G*mQIHRoAb*Z`r@QQW}Q$bq?iBW*`|dGExD4)3&X0 z5TdVG+BH2g9{;s$)TImCbmG<|G6W)m&stRiGG}#3`n_ATQB=Nw*0?}-$83GEJCsf;7z3QExO`$zHNaD?#5>V}58usgBRlm*}x>%|AEH*|0T zwpYkDeIa%$TU=BE)Wlzji+Bo`G znL5|sw9;V$X&6xmPzx|vgoOBSkN+H4TbSfk6&8_(3APEN+CIl8#)D|f)EqY(_;|Ux zJ68j(jGLRCjcaCpzRBWH_4OldPC;N%Wqd>kl`KTe6Y$+aKJ?NQnqw!a9&jo*Hr3xK zB%BJ_78ouz_`0~5!azFWDZp;l6+J#U`O z8~JT67Td4?c0v>FSY$6&f|gjVX|P+q>=O8KnkyADF8)TuQ)9_|OO5*#h3?3owh8oOHN z6st`wtLu*xLWr1Vt?bpi6G5c^K0oZ^lRv*){3)iEL}*^p zBY>+vZ%s*9d5Jsm#@V0uN(_A(MGd3T)sscCVsBgz>i5*c#R6*)FEFft}4Edu%tNel8TBwW>DkpWm4FkG7Q z5?d>qhsHCK@`Q65vU1~_Vn8EEW_?p>DP0-D{-I_0^EJY1tg`y_#9Tg*cAKjdd(B=OO4|?S-QX489fM$KVQv2GmX$qQr1iWu|kbb|c z*ZX=oxjTa-R8@Ja%)oYa86DO_(thk#tv6DUiH$10}sKT zbP$%QSx=5v4|H)+gMLsY3dr${i~@uU{?3y2CP+<@ius*K!CCSTO+7O^!QX&-b3g^T z^nYh+3K9=S-5H1NgaP#$ob}hJqjrRX;vdyqhD+rutC33njC39D%>^c=l6dcpp@0SM zlED9dy4e3A_L4aU@Gkz%7=LeVssvt-6JytZyYC(*%e@~1Ro~|wrv@$VXDixz2Hzwf z!!HA%{g}ew22%75{u-|TMf3z_#sR)(Y7xs~!f`rCEIyzRC=9Y$Lq}MU*#Lz&e zEiogEa-3}X{vlp^TKczd_;NAB@+{nGAosM$-}L$3^Y1;dVSb?gR}T0Vlz$El79hV( zlP~Y<7R?gT9XW2Gxk6&Xd=!$xZTe(JUY zG`XEF`|sSB*1l&pYI5J6THKbpwFB$kf7ov_Gtz-I>Vt|%ya=CRN68Obn&f1)f{&E8 zTuQX|R`Jq&EeKMD_(J@5Vh`&}H8sAzUiKetbBbF)imk9zR9SC$)A8XZuV^l1E`=)q zmFOga>wc1x2b$E>($Uz{)!E$1?Qf;8cZ2)!N*l0p3UKqnLvj@K$IUbnqENv5WLj;r z1rg=?!r94HBu15j$Za-z_%e3O1d-QF!OqvzhNdb9DA=2awu9&w_%=9ev7rHx`v) zpOVy-?TyxZmewZM=DKDk76t|;CPb99{&sS;GFVz4;eAWjS!!w&yScl*L_>XpgoF|m z4tt*kU|I5cnwpb~gnp*pAV^Cau(xZsJkLGH&E=eNzwmrXF3N7iA?@E91H5O zzkeT_`E~Ih2x*VaJb$X9deXOJNQ>~6c}xVvM5Nz?s6niA-Dk3SmU;FeM94awG3p5 z-5XE`e)*SV#y`B>=cc#+to`b5YL@q28jXXn`%zzgdFpr;pVKvIhk^F)cbj4044D?e z()+HLP7vaGt-!!MK-MD#i}0CuIi29plEUzjl`yKg83KuBoHSjWnV7&b6V08%7m{8? z!85bF1}ipaeL$EQsGc)3wLoYGE3l5vvdA-t*WBEofWT0c44JfEUgQu%!P;*uNi@T= z3xW?fK7K@Dy+5EhU}=Ar6f}~8xisNh5=LydMlj$Rj-6|Qh7NMm5+%^?Kj*1(o>N`$W_E!OA2*RCuaaE zO#oo}mbv*@Tk4wIOwR&+y>B=At13p6pdkB}@5FCGVt2gTs;{Te2 z2xm59O`Rl3wxeUOfEK19LB~8aNL~bpF!#;;{7^-l?5rFUv&!+rpJka?h$G_?wKS(^ zI9Tf8AsERbjHFNy@HHh!OYdh0V4u%wzM8Ue`2DcfZ}eJyZ|d{9I-l*2h`7=FKC7i1 z)s+YxYAj30>9Xg70^#mdf4!~E4$$cfs;Yjyw=643Q7BGH-ND?-|MD!Lf6N4#24|wcN>s&NgT_cwr1A$CU&M4rr<`0K4K}VDWlNc(bF|F2ISYZ&dI^W-odfS$;q{~ zvALGGnBe=RS_dIv;#cc1nI_X^}a^(OeEVt zti(T7<=|ih5|4axTtbTI$S5;?uKN587l%x9|NCEOOWqqBfu_aG`mHw$rrZ!ygJ#Fa zg%`mV_YSod4t{R_n6Awe9!biwR6j#}_>CA{;#jR^2n2HPKYmV`{si{HdK()Q9)Sjk zd<^=XEM>)L*CXGXOhW?=KuX4v)B^gMh3@#)#E zh>nbi6onWY9T_P?wF3grPgBmwF@t+ZJ$43yAfP3lSQ`bjx^jkP5Aa;LKZm-WfIwO! z7JNUtBHkIP!RT5h!=Mig4oOQ`Q9UJp9oIJWGm&sZ``&G?F^Q*IuEaKzQP+bg{9cb8 zhG`bzGtT1~ku&|$Be1$EwrySv!hYnc_D9ZyNvo+TZNgKnsI$mV*G)-9fspcztgp^a z;&|rNWC0NPW5?_H^mDqnB)C?qiI2lVM2tV!>I!`sGnYA=n0ac5Sw$FMdm4>u_y6>&?q^GF4ZnE=ffa{q ziUF!}us|i!MQyt)=-Fq5kWoGct)5fk6>n&0fQ~M|x-CArH7GGZD26FTS5M9r$45Cs zRZ&AtYJOs6u5%VHBwK$KFhw#A^bImIGBcDf=SPQ!mxsAo7|E%rg)kMK&%d<8dS8^K zp(Z%zn~2>9=g7h7!lmwwivR998V3|MHW4LR4cO{pbp zk*g3c_Yco5c8)FKPc@`O{=9_wTo2y9*d3ooD>8h$w%MH_-^AQ4u{gOp=y4(oj$%}F zbVU1p8bv-sdJDmfUHS#}1Ma+s6>n1>p_IV}5mj#q8u7b#c*GkgwiYJVpK|gmNty2w z2UR5vMP+oB2Ub?5x(M&v(@INo$6#(D>gsbG)zwbU?rv@XW`&LfQmRmoB-q&RB8Y^Q zYp%e%F!$5^Y?KqCv9Y70t+|PbmzmviU!^a?8ZH%l`*y9*c3}q(V>{hdJ;hr0ZFJQ0Fo_;YR1|5ycus2L}^vE5Ebqh0Gb zIMg-#nrlw9@SJ7K%0L-?%2&fcOs9jUPwF*E*KZU@s!mosj<-(!_`jZJ3%@)qli<9x z_j?%mKP-m%`)uE68F@Wm3&49`mKJCC@VOmKg@ATFLS8UCy|n5r|Ed5SEXCN{`UoHu zWF}>&y(J62?jbyJWu((Aa72c+#quC{7PU|U zT}xKhwi{QlXlOo3$5lUmR8qthUBxB_04K&$h$2Ny+(8GC8LH*1mD=p zjq0fo}JM_6o^G((ZW<;9TzT0rA0~S(|)KtPx=ba}? z?Q@REI)&;;6$2SK+<>l=xO`S!krkGo{syT2pjL+djf3Y z2!HD00<)b|b#>N#4r?m7C_4Ff0X7OAjw zv0FpC-*f#kuJdq{N&j#IfmrWjOElqmo*w)QN5$@GeO|&3fDkt%;=!4@ZdAKppnR1d zVI*a@KI%R3?M_5F;=jvoe4L4Lcs`hB_W$|vdIJazPfy!-;A%1oC=^FGS}IicV-8uL zpKAI+yw&|?YjL_*DU-+jdSb1@;5!7`y#J9Ov`+BM7IgiXft82-uLIZ$t99gcWMp(i z0eK~+8yg!dIeC_&&h0w7f>2+ewN-Fs#lRpV69ZydB7jjYfd_}p1VizTU5)@jONn{s zajoqiWBL?Cw6d~jo%h~jfw&7M_Pf+?(fq035@YL1zEIn}{F%+?q&>WuML8sZErHWF z&`^-@3VwQm{w=JeAU7_pq(Je>{10|sF>TDC9fsT^bt?B=E*3i>+O*qu)gTk2LV?Fr8-X`u7$#?u_HBe7KR`<<$J#o%waj!n5P3Zz zv&6-Vmb{*S%yB1`ITX?tC6A{|uCw;E)R?uj9{c1JQjz&g0o=oC>@HE|xXW|r+fJd5 zpQ>951N*zY`c_cY*%c!r5YaC0F2opkY)Yw%iqg{~r-Z+>NL`$VM7D)wMmb2k%4+&K zfg|T03IQ1eCLAz$upVUblYdN zE{2G@y1uF|4!+|W+|x>PXdjLYh`YQFz>@yi-JL!8&j0Jy-o&)7j>#GX{(rTUEA&*s z!Ag|Vj*XHR6oOdI2MNhwsSlvXEjTn(DsLOQCI=P)MtbM+XF|g7=$!?S4^)zp6R*g& z%JIQ^9gb5`pJ#8VbGf-hR~n+vV_C>p`b_5RA5qXs1QC(4d6)J5r==ONo<=lg39e>j z5)%Cw0konF3mpkFPC<75*nsneq>L?OzADV0FZ&~14F(9~D?Yc$zl5JINs3348BCRft?pL?yh#lE}LWaay_B_Zt2M0lXm|)43p-qw{6(JfQ zWq=5Y6l$;sB+YY%f7hi7fTRZlEmI6CR;~L-k;;$?J{dQ2tn>is+gg{O;XN5EzkRMz zDhuWvA7T<-4t7Tc!+`kgaxpY(Ghb!U=D9gi`i@44xL0WF1c-M8ur-i{n;Dr z=adypF=$VGLb3hZ^V~TkUf}P3MhXqNc7ugf*EFD6-(Nm)AVZ-1|4e{byL2yH2q4iF z#M63WE5|J2`)RT^g8ehAb8_2q6?o{i<$>Pu3VeS@XMad=aquwlvVqJ5t5@>2 z8htJAf}m%VDd8*e!Ts^m(^kU?0l%`SDJWwAtDZG#alYOMA6qJlm07`hG-`3<}!W_DJx7D#mIt4FtX9Yko`=o8w?yOHpvJYaKo2ProH-l3%+Dcbsw%!REs?(gc zcc>AH^21E!Wt&k{2EG*R9fC^wjc$MHg?+Af(aT?i`?!t#ZZ816>$Njm_;Dv6h;?DY zzi%GPnOo1l(`0*YT>u+po7c%@u@2=qW{X(8AMn5wkBS`0Z4;qwI` zRoK~`T$BjYa!?|2S^k4ohPAY`gcYa$0)%)*{DPvlY*R=)e>392v_a0fWmc^Wsm2`e zv_K$*uoCB7HpSuMY0O-Hw0#~O1eltkL1y}q{+IRyXX(942=>7ggjtGEiBIvnL+BPrg9@5JS@7-V0 z66Yz;v3p#j!b0NIv^5ob?Nf^8aB8#}txLAqtgsF?g?@ae$N8*M-L#U9j}!HksgRSW zrLXC4)UZh{?+kk+ zSH+LYvxSc0pd&mF3yVIdIsX00vbQms(|2YTke0Xhzg>{{Uv_=#IF7Z^1Ls zKM2*chlfD$BKpl2pNMTv{Mf@+K@=TqI|?-veyy{d@Sf`xHvIC+T+k0(TU*@T-cImM zQ%MP3cKN(X-dg8BGCD4DSee-JsPgiBCO*wFL7$*;<@IYOz~{<)hxC9wvJ|>^TiG`G zFiV7>WYGNZT?+sn+tKx{@Ae%hZ_5{803F9uicF@h>kg>+Dy<@HE+pxpry z!d3cBuA78QM#roA2H)@xQ#j^W=?lXklbwERr~d^&<?GH*EzExK4JWea#coxiktpCcOM zXn+{rqc`{i0sgTCxMTDP3bjx{!KAdb3p?ZLX&@;0&?${QTjDBBUO(O$F!t9f|2CeN zk_x(dG~DgUZmp72)HZC?7=~nJClkJ@ba(pg1p*z6eY)e*-rfbSv6Yki$4@22Xoix` zPQezYszq087)w@ zq!q$ZFRz?De%7+gsH&+X^%v3M@#^TvXZ&=2JyR5sEK@1Vw=lK^%S~~`Z4PJQrzA-1 zH|-^!Mz7Ca5BD$+fEn3i)nN<^N#hL(fRwnx!?u=1>J0ZIWz2y!IdF0?&FeRU_Id*} z#Q5_^+eVO}Y}KLMm|_68+Ml)m+%t(zp`QuOO;d73t&*{)kFF+EX*z|ay_DbVx-hK14dSJpzk`&VsW?** z=*3CFAPTJ?1P0~B$+e*o+)M~@b98Y|k)7rCApv2g7-JsWQI810Uz*g0Ga={4u6i0H z&#Uh2Q^-BTS16yG+4tGLmk+5%KDUb&*?vzK*=v8dzgNB7F8;~#e;LcP$Zm8xS*kz! zWxx8{{bVQv91IDUmH-KDX?|^Bo29f6uBTvN17c((OoGm>qy&KmK^0JPI`*|8#ay$& z{Z{ebft&d?4)`oLAP(GGG)b_X;sJl7AXtH6-}H2r`I@{x|3wIq?Ca_I&! z+zl=Zf`tWxN(sGF4WY(ba3kwH@g zbmE29rnWEgegGp~((Zt<`u=nC5*5=v$^dkp=6V427FrAw(Q|jcDd>(yVOS1$VICVF zmH&Eucb6k#s-css-pdq)2!SOPk-^i&RFkHXxPPzf=EfOCV+%}IMBmdve$hZ%TU#IK zvWDOA2#AiYG3PXsjh~fdqGP@kQwlJ0&~}W2yUCook(wR??f0eC?&@sb9bc^Wmx($@ zV7!%)9j2$$*n)yE?lz<}v|QOFUH(+nrvK!Oov6`Wx;u+>Ut(rtFc>g39%S%!tPzbo zzFK7lLL1Os5{#Xi_Lcw#e;)<~z}m$%bl?aik~EUQf&+AHAZZs=y!@Q9C-suhKqC^T z5Em4*n?-QCyNe~u|B-8IY;E-?x-!%c5Z3+t45v=B0nYGS(#WyE0tc3^24`z?f~u&+ z{2XUE{$a@0TqUrf4Dv4U0f`UAMNRv)B@mGV*^_f7;fe4gH7f-t9WSqt?&lZur}gn^ zIEzR@UmxG!&tJOo-X$iyeQQeb1?E}cUjr_h8_5scrFOT0(t|XeWnP}Y!5>7Q$48m- zYX~S;ePJjly5l7JCm?pPhV64HeSGF-I*PLT9}u%XH#ax&E`uO40l^dBO4*BdZb_-b z$D=(G{Ol|})xolN^=>z@^2}!fj+e(FLZfz9+Vn-%nW`>E4S0hhLv)5;YPXB{?A64GjQpVUE zH!-8Yi(l2@HHSZLPb>Vn@tN-!`X zQ3!60I#ZJl+Wx*Z}Zinj{bhl z67aoU2|-aU?RA;53CIt-JzHIBYGdI9JPw{OcaWeU-)G;|6FbnW)o+qZ)>MKdjc-JX z<#CM$l4kkL56BpCgEcCpP$G%S%Hni`!$YK>%q%R-{_JhvzzATe@|OO9m5?r(<)E)m z*H|V!AnIuu8EgXe7U3Zw4`~;~G1EHA#*0y35RmcF$}lhoSU#v!#1DjNGz+2iMrx-YVY6Z=2Xm-w{p-Q4u; z(Goki&hL3nyP)-z*Jl7@5Hdv!D!Z*9bJGZe~{mo!ShP9pK{TuNAj|?%S%WcK@90Q~-=h zRdW2GF8>jqwYWsyx+4bdFE$63JjP63LrUY7!yQD9LC$3wEaI&O3449;P_c3}GRv<> z!81L<_l+e3jA;) z5VX+OH%chQ?EOSp(=@vsPM{Jv*|8GXP z9$3AbpUD`u4l=>fktc0ilvG|}Z?75lCsheE?AvvUK;xO2 zxl8;WyUf<-Dc-!o7~in3gu=e3PrEi+g;J0||7Gxc9iIobws`zt0_qo&lrJ^)~kK(F#gRT7Sp{(7dr;vDkER6thHGOLeG{Q6WWQH3j9h`K|R$DwG>6 z)e$kM*i{KC-FvySoK-1$!`-I-gx_&G+Ia|tbQQRMar|lsx5f+Ltz}o+$`iZ5>FAv5 z5s}ioO>0o>4S)o?GKC0WzzqjbJW9J`OsIN#7o114)~I_)F0JIs|M!|7@^MLj=l z?*v0S~Y(&uM-G)c96DON|@;c0Wp6e>u&J^?N~t zY_)*L`RTI5>*F&wXskTwC-J-fgTD5<5p=iadshLBPZv#K#DVt{cpgzx5_(ujP7HH* zFiOuR{6Z5qZlDM&>{1@gAd{|Oi#(U(qVh!ziVQ>C zGjl{|R_4~g)W-umVq&tqcM3vl*#f>7Q-!sE#O zXFjv2p{NNabqz9dh?ux}SjrcGMWUr)0i<_ML4NLEJi;(~ITExbrSuFVvT~8J$mo4s zXdAC%UvIfmQp~ACB}3yTIMs<`AWsCr>47m(Ao2-cHsuJLw>Nf5JQIK;>TAJTMqirT zsOh+R`9O%3gN1l_B=ONnEvm7Gc%FpOLPbpughrym6^fIvcQB{le(VZ*B6V2O&dUvr zkI$_^da^1hj>yfgC@clf_tL_mya4;<%S+@-?Pro}UDe5{)S+%qsK4mvcQrny5)EvSuQwCw%xE=A?-CL;;rk zBhojltT;XDrnfJy>dM-n?DT?5>v>_y`OonL>M!E{y#J>y5DG3?-|xO&4wO!Ae42|I z<$XQSAo=yu>GP^^z8v@eOn8!zwT_u}L4{JQS$?)>WF_x8>rAV)QbNJxl? zsDBwHag9Vp-ORAurD7f-)h7XeB5N|h#8-u1OxVEwm#r%fwWATbyn+J2_k#@=CMIUo z1cKW9nU(=YkQxV&>~tH>4O3Qs_lB0y&kPebbK~NFb%i4F_@QDigQ7ku4^N|{h+e(fwPTuA0l(goIZLV-(l!xg$cJJGlHW%?p0RLK({C;&+CTq?V7S76 zeRCa%bWs_kR)62^1rhrVp{n{$y~T)wJ4yyhxD@{=DWTwKhh)O9oNAcQO!u|~`*a}? z@a{f8n^8p3waxN@jI*$la&I#HuCPU5-``1BJyqG0ccQ%*v~ivFg88R_uQ zOl_L|RwipahkC++Fwd#l3E2a{kIXbG>!4!jb$M#ntGy!>wB(fI-xX#*cHna|b)yvRWs5+p55_>hg*j1{P)@1ZQMn0pM9sZ1aQ8qH-FQ7T1^{MYQF##owI{L_@G%&zfH+Wv3X*fYUxyrhkZrREfbkl*l&<*{m@(R#+&KQi6j9<^NK|oofl`uE-eTXrnM0>m^acb%uHPb{AtQ$eBfLdMy}7(T zw{@~9WBxj&(5f>DVI1J3P!3CN5m+xr3^GZW_fod4sI&v~6;MdXj%Ic)+lT#O`6cuH z4`oNRn(LUzJZz-uib&Y*Xh}os`;J(Uw2S@c%1u$cJykZRDGaf1;^{`7Uq`~$003RUIDq^QU-6Ta(TjKv#+=>Y&UJ9>Cn{`?_^#Hu>I_3I<)J1Bl#en<<$ z4Nk6Zsd&o!r#$ zTOJbuY?PJ_@f_@F*w~$h%qluYTdC*tiV2W|+GI5@U6VdIDlV?n%?tqtlB61j>hNhI{76a{8UeM<2P5@#aV`ac0TEn3@897N9XW$~HU!{} zy)kK_1r-CgNG=TM0*BM(@{}au@rw`$y4!{hvqPu)W*f`xtbl3N03`hN+-F;adPkER zo$o<^p3O?D(ee7?8(|T5lhtg`!$QsdeE#`g@0OLY84+HCIMb#&quGtKcLz%2`*|z! zy|~N>Uask`TrqiizUpL4<5 z1yHEb#LX(ftlaYS;ADT_#LA+mFhgPR;`e@k&^e$G3-Go%gU_?(5;sG(JT*m+NS((S zg1C&vGs#=UQ$y2d6+vaS!M3S^@##S2?ARDnd4ww5pdU1AIsG{ZvYv&SPgUU(qEW)~e^5m{cXpH#gOnl((mz*UW&7PkM~Im zsB%x&e$SB$DtpL%HeZg!qzW^(PyCw@gh}M}0-%A&YjU08Pft&gj2}j~kjzgC(-mb4 z>!IZo%p{`fu6R_f6W|jQk))~5 zwLGqkPwsxvY;goV_g<^zI@jw1u=p8CX0LLZ4GTRUw2Q(b^L1}dDGueo!+HV}h3Is#M|T6S4v z<_~8KSt2jt%^9}ZTWCl;@NK9kruC%y5(kyls2@mUl3-x(9Ukuo@kkg4BOXq+watxz zx1WO4H$1FZ6i0hL01Xe{IL$COKgEg_rX^=G^`|2uB05gdYUXhc3fz?_GR21@DphrU z(9uw#gcQxsEup<4dt^GAnrXP5wvCO+lKk@X8qAK_$=GxFE{`%&y%|~?5|TT+tf!0n zh8vDSaMS{;N?GBVYc=L?l-pV`=0(ARGt}Dp`u_SRE+Ho7|2`ZT$Oi_759G9r6d3Z@ znBGN_A2E(225suz&`%DCE8@iI(07fKU_(BwztGUq0v&EBIFrK>kWoW_{|Wws0#f+4 z4i%NG{->)5))B-jx2x0Q@`}m|vu$`m|04{jw^**Fic^-{eaYnBmcs6;y2!rxhf0Az z>cpxHq4H_b?;Rn^Gi2gLxi9tBP|}W&5(`4S1`~gqvRX!_389cf5|14nDr`lTYJ1c_ zQp3Z#-g^Y^30{BHu7O(s&Ir_aepgduu&Mcl$th8a)~fqjU;ibjirp^_mcE`(k|^J& zg@aiN@$20UJqS^CQk)FQg1U~HrgkzO!Ja9U2+Cq+ ztj_A((jRSBXU@>Ox@ci)x}j0HfRxDhPP3-SxzkLD`zGRZd|Stx`{ovzZl|dyuLvC9 zSllHj(<1i#4Dw!q9adglvgAVy_Ku;EA*rOelu-Z3$EgW#r#M{_o-$8HZS(YA?RSOJ zb01BtI++xBTWbQKeg$c~F;A9LQd85C%B?hoW7n9bc1VI`j?K{uEPw7xlzpWHxHr~Y zLLT?^iRA~+$C>Lwl@gGf**^;EbgOl=ETNMQ{eNKMDA9%LaK=I7y%I$=jl#Jy0?m;{ z3aw|$zSk)x7k7$?{P zKNx00?w>!{fCYiGq2*-8m9@C&0~Z+w=iKZd5dvWu2S6E^*8v`+40D51+?YfKNxcg{ItxrhQ+2V>Bk$1)-OflcgT$%wmKwAJO(9>| zrHOg44e@Ts=ULX$Y8C=j%*{?7Ojt-v&Yrt~m`qp*N)HF8lZuhbTPxiuZ(i*a%P-E6 zrsn29z7X9iJvK)96-8DAPxz)lN60D9veZ;LIXc+c-JbPKdM2v_9YvtQ7VdkTl!$m( zgbz%}71;RR5Ge>ODk2m=#J_!KmhG&bmJ^ky?JwKb)=!McO*tuAFz2UdprZZA-8DK0 z;9DaTT@Xa#n#cSnEfEC~?Qc?AQh0l>Fz!e%p+X{^V;w#7Odn_|NI7^4y@ZWsFJMsx z!PB@fJIl)ar{N=7mHcY6o0;7rH2G5dN)5cUk_+ipYu*PdCnF>9WCK~@gWK<=>e{H? zHc~^wa#W*3U0ri?vMSGM7WS{A8R-@~TLdxRhv@Qktz|iW>Y95v?7omuj%YP`JkH~4 zKW^gk(VoAW{<=h6f&FzJXVv<8lT^z4vUy0)ZFjg(zxf7i#>O^=j6L1VvhuVcYFUU> zLP_t}`H2G6K2@V-L=MXSjD>Wi@ed8s`%J{7B>~uP;(IJSl<3Lf_72(272J1fa7q?T zZlhj(u<89S-@3`8hv4praK=;o4zmL3{*D!qE?XI3^I(iHqh_QL#f5LfGy zQ7m2!*|I75o{^a)RUH}8H`N%?uR@C2(%OiSu`E>kQ9yr#Y2ERjgHrDoKUwxx<9l{k4 zwv?{_NJ`Qc6`2+b~D`bDg4!WOyG>9^=0kNY14UiTv`i=lHG4UHy6k3kAtSd&cj2)PHfH1N{eLz zN^SdLfgDE@ifsrL8`db)kInQ4BSddoBgBcQs2^E^zR%6e_0p`0S)*P`)P)$Rd*&*q zV|jCTic`J)Lalas+AR#Y5J=mzu?KnLtHI8eK?b%nUi58naPS3Ey2xI>f}*0j+$X5R$4CC7=l$F&9QE8hFcBHK)9Fl;ta(lRhq?8oQ7l;9W1ZmuzwA3)5b$p>IEuzAJG7^&# z|Gk-Y`8EyrV0U{1HpjQW4C?M^W5c+!;^!Ex6l#A1CwV5Tb$_d*C3RXY`Uan49>KWz z(USEO-)9yfgy^D{d^lxS4GmGz)3N_GmFM@D;0nvm0S)o8MMHoLATdT|bw2Z?q#T*Y zv(j>QV@uJ1roxDaj`}x=-uNHl`ejAMMep0nX=$k-*oa0Buq7s9mA8oDQkYwD(GmoU zoR2-bakXzpb($O>Un)y~T`s?UQDIA$A#8oz4&?jwSY6t5b+k+{3xPhe7}_M|m#|a7 zn(7_#sH)mOHWj)~JV?YR@7wTcqFwqejkSg3|Lxni`}<77y!x-)%-xQ=bL#K^jvzok z56kkKi81|)3e*vnlrQ)o^IMun_O;x4R~L()nJi zydgJLTPInPigexFoKs(3Qh-@4m(4N_fqd_V6O4uo;ev@qjiY_Wx+0~nSINl>>Dpox zJ1jeB`+1@`i8>M=#Z-dou2QqyN259K>C5)ucJnT0$Gxjw9s*3^f%SshnQ`FpC z(EyvCn>&&OksR&~qw~{UbdjLAmK{ix-wiD-O>IrxS$kSJ5k%Dg62Ro^n}spbRh_v( zLo;X1w$rGgL$>yMx9s!7AYF8Z;%~oez`uVzJrCJ3ZwUCpWO$}R-%EQmb)m@RXUm_! zFHOu$Oeg{l8u+Yk0fN0s@(XhCVyH*s!fH3A-`J@wGHGG%>OK$xks5lI~N{5C9KV z+r}r8#$qTHnSnRGG!fiyumFLz2I5`#GGsm)U&Gz416)kv_HY?VN%1%d6GKD8f4S+j zRAF#C?{GrK@5w|Xa7fbFL+UPI!pcl4?=EKIzV2#P)^V$Eexn^~Ay`EqzfM3|&j|6=&3nb&#zZ%<5sZ*CsNGp>is$84Ah;@X87ywF5kZ;lr=Jl^1N4jF-ek0q;edH^J92mQ}h}&eKcUNY02tmt9 zEKS50ou5l^EXvBu`D$3{Z34wsO7xe$ciYHvx7aJ??es9eCCyP32j;pI1qAY8DKm1W z9Z*rhW5*c^^TW3}JS7+i#97XWfP5I=1XWlITqHuViM-Eg1r!m63aYW*N;NJR618Q3 z9wF+*3Y>*Asvc967f5GW_T5ZT~aeLOMC{ znG0M8CZp_AlEGl2-$JDaB-U>AL_JY9KhPHft(?ClGit@Nz31}*!Mw}kxDc6e!NCWKRKo?TG|gnu>qvurW;?0ejHes&|`CgnzeGZ`$B3r_YS6nh5*(}7^5-~m(oMB$I>5}r?#k0?U^ z>H50gGvYNS_JKg1wWg*ihc!T z6zS`o?x2?Hng38{t?3wSFZw0wXl-u_Hu-y3AZDsUpGJIaQA!WlKQOT>z}fu>Ia}xC z;vcY!JcSvfqUZ@|Am6|n&CTE^UB(YIB%H6AvuZ2ri0xz|@Kc%0S#W{B#G0)1yYGJI z0MblZ3YTVFqPSKop5Rm6a@ncVm-Il)@^ZJR<8fD-hxP>WV4e>n)0b}uBO#}yVs6=-TJeh}7an6M2J_Mxldn8QWK!`Rq88Tyxmht4-G zCGg3C&L^xTKPR+M$61n*xAz+y9Q(3@YCJtG_uGDYj3f`e@vS)JY2AI`$%(D5b*kEI z({XT+3RP5xi%(aZ8TZDLlac~EZPd`v;o(pR7Qp)N{`T>&Y_yIn^gb4ir>H0aYsytR z!r5LI$bLR8apT_)7$&5-t>?sPd%SR5DZ|1#JOf>ESR&yupq7ANE)x@zynOUsnDf3i zHNPqHr+&;0{V@|}%sh9%9~DdI`+no%T<2D&--$6os4z6_?K#I;|0p>978OkpN`#Nk z(-UMK+S=C2exHeX{4%XkU6>kY^YegU>63NB@Ms-NoekSgVBKF_kJi|&)ipHQEo&wd z5v3%9{s__hj52cp$24K;8yFZEeFX)5n3Pe))_a>|y@JZkRp17~oieO}7)exFLl(!Sx-f%yBq{m3nMYb3x*N=!^+q7;#l1^sWNcQh?5!B^_z z#d|n7IA@|P}Dh=kR=&@ zgBmE!EwnNg%=nl~W>%1&N97JB9L^gkdv}?4X2i=_WMZ(rwN8SM2M|YpHDqbq_g`y3 zuGSks%^`Dhd`_xaV93#sr#tK1+u_~7XQ#ndU^m$5mi*wo}5~FqtaYg?YVw% zoU8rodid7k;V~TdGBAkm=VN?%sS^`UIr{l^bU zv^SjPsx{24x`;8lo95cQXRj5(0KXgg@yH+~JP7ISnYB$-4f70dp+ZC}POxbrEGG9A zPL1V@o?MX6(i3!fQ?0hs{p{`8r9i2TqO!f6!;i|MeX14_Z)z$1c{@#>@v!#U#lgwN!8gls zO~0O@eS8EvT*lAw?%%P58Y8juB0_ZYK#QhXTwR+MoBR^|8Y~kMaeVnwa>6?|&btqR zctOO41r%3S?xyRBZ51FI-0)@0Y%E`=C=c=R@gl^tUs?aqQwtP$n z)IaMkpRi~T+-Eh*ve-++UEdHCQi6d4&E z53WX7o#8$QBp4XPTgN8{x`R~=Ost@MFhja2kkIl)`()ScZ<>ByUVdTbP9@;K!6ynA zdN}%~QF8)H1aJG_aYT?QR((A@AW-*;y?Kj*7XC+Os1!^Sxtd*3A#L}aDc3pm`En2l zi=qGg=daH2ZEzynC+o-k-Cxl(v9X0F5+dy2>OF#k1H#JTLiL7YqiFbtfWCqi1zEwK zm@|qiTbLoUJeeDsY*W6{5AM^1h}!7b-BriK$#~A8Q<}$qwG;2%a&O4JP}iyFW0KC( zQ74J}E!V2+CV|fDLddO^b~_SS`0_GxGc$5>!zMd98(aU+55Y}>;xw>m%Pe=ONry~G z1H_sO99p$e?kCEwGcuuH^@LnB!KpjF^gBm_;z}v}J{yK2wYR_-5GFH-ffE}&Fz9Il zl(Xe^WspTzxcQEa;DN-4*qbm*<}+VT4qn!&H!5QjQ?eSL@*~6!Vk`9JIYxY!b+ccM(1kh1j zYH@hH`5!JvWL`WHDkN`VVrp3s^?g7B*>64}-&R2I=r&}--yir@@zo@=qM%_X ztfgJ9Zv#g570icBKjrvy?4LLBFV$bSg~HMELsnL_wOd}i$d>dnprO+f@eU65BCbgX zO$rKmR%V|f0~#=vS9sVdI2zNlVM+OkzG#0|y!Z&p74`R@Fio@+++K4rY~@OWs2EhWLXQ zA?Lw9`b)OMMM8|vE8P@ALqMI5m8F0Yuk2CxCKA5y_S(+o|NPd7=vYK27*)Y?c0SxB z2-vTXk#%&se6?YB>qHJ;TgTH76EikWuT83iL9VEKNh?BUNk7QX|26V{*ADd))l;H6 zK0d4kW@6A_67NW6@Jp+Z+~SPy`0oKCi` z`x7}KySHpAxWK&hhBN7~;QIw!kX#0T(i02_07ty0$NLkJ^CIhO6^kyOD*ionH8IVj zDKtKKpE#+;T4Vl((#VK1@0GvAT-BJjNR&HD>MKiRc}{Uwl9QOCpsS;{jgr3EY+KjR z#>2?E{~((s&t>)L(;aOC#Pjh`$Kz@}-1BUtcGdOrdiG`8Y;-m57OH4OT1q-|^rCOA z?L!x2>6$dz`}Fj1-`uRE5E~b#-=T*_uCt_$fu8J>xTOHe+VMzv4gnTl4yA|yq9Lxh z*AVJZF^9F;2IgdizyHRMJDV+W*^l|rYg6u)B?v|$iLx!Nxg=1VC>N>wHdoK47Db;$ zRU#5Oi*6=NAy6z1p>%a>)MjwBvNUwKo!c=Pe&0VGT(j0z^|^v<0Oil0J2)S9j7YOe z%!yK4e{COJYdD>(G}}Ed{BJr0>s1U$+sML^n2H9?_dgjO!BlKCAXfVoZ%zc-i<~&x zlb-Djm)o0YH5`I zm-cowMrv}Q{R>n-L;@6F=HBl~5Ky}^*A(gq|8fQXv5yNDMWvlWoT||EnH`be3DJy2 z2mAKtbB33J5WAD74FY_iQ9=L>(Fx`~Fw4hvTZhz8198|P$d!PYnAritjq&%#b8Yoc zbqx(ByjW)Vu&52@{PGn~yzic*f^sQhGn3P7j5(^R0_U~WpbBF+F-Ea8$w!{t8~z3o zkwS)t8T>>$Z-nLP-kWtivw z@1iw1Sf6ZdJ?-!B-)9|P$M}Pn&fk@r*oOjnJ#}V!Zj@tPpJ#XXre^NC2vaS>V}M#f z>3?g5l9!EEEsBe(Bn}$xbXr&v|L7J+Qa63H$IZyb(W#J&Y7Q0>7 z;lHH>K6^FHq_&su=Tsj*Zz9K)^4xC_@ZE96c)h4UJ(haDT&B67l>%^33ft=44ne8s zaktUwa*M~gv73t}(hpnnyjENcu;MFQa&s|7X^vR)g|2Fr*4 zSH!+_2kiCvj6bO?%5&43%l z*LS-J6ADpSQJAC~`kBrd-n=J-tiC^?2;q(k=*H#$Sc-R=U=o;dzMw%tK0peR$5rPc zh<30M`v*WLWqh_fvfbeF@QwWEyI7T3HixU5+uPeKd&iCNRlmI)2Aa=|uuPi9ViB#H zr5xnsgcT`Gi({ag5&VOHN>*uhY+~XGn}w02H>KND=X+Q7pKVNS@*%|1V5+gyYy&_Gtf=*UfP|^6r2l&8m!WY1nUU6|TK8kfc1P}>Pn;!v*$_8d+b(Da2qX&OB<#64<$8*Fu zC3G|}xMCt#ZKWjw%79-$;Cz(8C-^%U51XnlaC(*g8O~!~fFUElNJFbXN7!q9IZX&m z3fq;KKjA#VlsnZ?}g3;vD>S&q@

J!E{-dDic`yKbX&Ac(7J@yz*~w10 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%0DD#x%`qabNTX)hy5X!LJdOD(N` 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%0DVXrsI`yNY+d+j?+JH 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�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

#uU5_!BA+}+}Qcv~;R741_uPgVCaa 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�_7WiptB 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�REb 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

V8>(_}_yqGL@l=lcKXo>G6h2@RDc7~ri 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

*olGdpn1~Z*=BP(~qSi!9$OC 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 @=1lWvUi2MP3Z@@!8F9EoOXK>Z#NSE? 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 literal 0 HcmV?d00001 diff --git a/SkyLibrary/src/main/resources/Textures/skies/clouds/overcast.png b/SkyLibrary/src/main/resources/Textures/skies/clouds/overcast.png new file mode 100644 index 0000000000000000000000000000000000000000..f683305237293e30c87b0988ff9aa0341c24009c GIT binary patch literal 108 zcmeAS@N?(olHy`uVBq!ia0vp^4j{|{BpCXc^q7E@v8Rh;NJZS+Gm3l+3IYc<{QkdO zakE8}V@c7X&2qDg@31k5Fa$6-Ffy=08FdV1%eg;15|Er%1v19d)z4*}Q$iB}Cpa5T literal 0 HcmV?d00001 diff --git a/SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_heavy/cloudhat_marble02_ap.dds b/SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_heavy/cloudhat_marble02_ap.dds new file mode 100644 index 0000000000000000000000000000000000000000..e13ecd33d67addd7b278d8a316d2f5fc32402e98 GIT binary patch literal 43816 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 literal 0 HcmV?d00001 diff --git a/SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_heavy/detail1_nrm.dds b/SkyLibrary/src/main/resources/Textures/skies/clouds/presets/alt_heavy/detail1_nrm.dds new file mode 100644 index 0000000000000000000000000000000000000000..e1f9f225e2bcb4a85436bc34ef0d79cba8dbd9a8 GIT binary patch literal 2856 zcma)7e`p)m9X~D$oh7pLpTX!KdtqR@TDyrsg<&jtp`?GTjoZ@r>AY0Z^K3aQ*16Ln zsZ}LePu0nzmTXG=qYyjkQ|*}AC(Bym97&rfFHIS2?LVXI#bfL8Ovb=*mMx54;<=IE zUIzVZ`(p=>cii2(_kEx5=f|N#NA~3uMS0{=RXHfqK> ze=Yg?qX+-%F)cwOlg?!DBn<7<0ye({N?Uj1aWI9=m-G2NpW#M+$Le60U_@Y?<|gdw zU`-p(g50v-c0o;)^hmr&>O6(`JKtiztYk66xVU+DVQ61 zt5RVll5F4mjWJxJ(M;dRn_z*4rUQWhxy-WhbcT=$P26tS0lG{pj_uz|R;kfjo%;kt zL16!d^ABiN9PxDcG%^n+RON~;-sj6WUsc2s9nx|7DhN@eZx$6Ag<-U|UFAtI&~7_A z91}^ew{F8JoC~JY89q&O$g$sIvbMb3hh9xr(C zC{7_n6kZ}BW(RiD5gfDB4V}*6evBhMxB?UPTOWRi6YQm6?!gwXu>N*!{1!FwTyH^9 za1Bq`wztAfQd9-O^f(LQ&4L0-I8?9K=2(dtwup4gz8SI%#AisZ>}w)=QdE33;o?zV zl&nDH4U&1FR9tofB=F0M$}Jr0c_Drinmnu4T!9nNsBUcMNfIZpuoPmFT%owx#5GWA z8*dFWlV$Y#-}mq$&Q&cvLnd)4e$%_eW_eN%rnlg*FkJWX_gD!Gc`GCDfnl1>TOJjf zBB|6`4j2ImB-BN0QN!c6r|~Q;6)SZYjxp158y$QMNIo>YG{=n(7B9|#lF0cPM_`PX z3PoAJ$&;RjgRrbiv1%HBcuhLNakMOu`4Q za7;_wxYqyE*F}~a2N*(F;^uABG%^KCtkLk(Gkgrk`fsukk#y?2R56T)5y`BBagyrr zfg2*nq8CryU?2sPk!{PvDq!UM5@%i{Nu`515}zX4E+}FiC$vUK2Vdnz@3rzG9mCxeDtf>Dujk$OsvVr_(P3gM@v|dANU6^*o`8-%BR33!U^&G`PK$zAABj zW&N7}IzP?BYkDNaqpVAn4S+$?tz%0OXBnz_>n?qlk1gy|>hK)y6Zh_&hcm*&>lwmL z5Y;0+FYp8iS$?f4Rz

DDb_VMFgZK1llcVLfxTEV86q>e9yNh~a0>8eW2CLG{+j z5*g`{?kD#N>*=cn(FG4ztwxh1=qnM$Z^2{akSEq`le#HZhna(k?)OzY0`b)oer>N9?lMK zY|;Vt^o3yeQT72HkYzaR*I+J;LlNm$%fW&&2R`9T4_1N^_O1x6UB6o(ufw0M-7G5P zMgBC>g~DR2OS8om$?&LG@|8}|v4Yidu&ui5k*KeMk!!gLge6jkcUWWPYIhC+t% zpzD5F#FHc(>9gjD!BLa#^oS`K_IbTekTE(e`M$<;d@#MUvxsHqtG8P&oFZlCN{7m7 zJbSbEnP>QUl92x1PR@Yn(LaWQJVwIy&iXp5ft3IKR*PO{Ke^WTl3+99#fANl;Z+>_ z*ByTcoB_{e3f>j*21wm;t11~4NhF0uhCx;-{KJua90;b@3nT}^0>9V?Pw|kZE!ezH zW`(vZB7I>eR%sZwA_T zgVSUNi<-hMFdXW&1WACf*VZwgfGKt5Qj?cyV$oXCK!qe?nT_9wEXeM+DhkYrBmT$t zdf5b7?t6Q|!%jd0>#r8TJUF6h^(L8P&uoA3naoW*s7W3YQzRa{1w9h4(1CZ}`8K>v z&3vd^2Q@kr$&@WxVTZl)Jn$SD*CU%Me3c%rDpm_hUhkE$2d7x_+&}+vhm7!q@8%6e zDlqD6N`8F+r^FA%X<*8Hy8c-Yw!nZ_2BcU5(fCzQjV}oU>A`hg!rdN^_d_v9V)yTT z@j#gLrOwWV#pbv<+CGg~5hgQ*YMxFqBb-lPBNdt35C4CH=44JFF-nsK#qY@XxoWM| zVyAdg#@Jn4;=`)NTq=E9U2qT^gGDv7Rpn)#L|au0F5>|lNymxwLFwO8-vl)p+B7{4 z%N<2sm$@>8u54`JGceTb)as%L2ON~&!1Flddt$%KmiWkPk%9`&kuXBR9#Z3BO!OXB zfkD-`-{CVn)_Zf;eo%%bghUn2f`M&v{3$rj58uB1)+j#5y8e^X*I0jiYq0}ZA}QmU z(Jq)#7p51WiNo6cUl;=sZwJ!5KMUKlOc`5cVEtkY`9yd}fMGILplCp$yyyFgha)uwca88&dc z?Sd}KEQu~}sj^Q-`;}mbS}YvtHTMWhJe%HFS&{r6XuDV4C37XYua;_vA{gr2u?l3K nhHgKSQ@lgs}G^b^SCqoR>pqx9{k?PUfBXByxflFH|8IYvcK`Ta#FTQX{tsXNb!|xiy)o^V2O|yqCUB%D4`VlXnRsMN;r2GAdGcU}tSZ-Fj z#OP`^i}^9V-_K~LwlONb&%XlncV7>O&(pnkq*{M7&%e}f*Uob~(%!6{ulS;IYWTwObhlRd4cr%w#v3mj z4#(CHwdu$8oSWHr9X%<3)hrALbgOon<#MTh=*If%@a!V;*}2U4U6u^|7s{!;wSxew z{h9Y({l<1|p4Q)JG#UntNI%Lo`_;;DI-LeryBR;B>IpZS-A>517)h>NS(dGQAy3{V zSw?QH)*eyi**{a|tG%}TM{?;Yr+zFy)BbqBomk)7{^-hO{G+S)A%4)0jW0t0gT}Mk zBfqsAD=0o)BvPdwK8T z?Ch)nx2xe$*fbsP_o7itOCig!6OLFIA!5$D(;`2$50pYbo0%MFJfdGE8gJgaffg#g z!)`oAUtC_Je>rm z_3rfD+}2a$c)re}RZe=?a5%DkTxHoO?S3TJs~z9%Hy_)j9i_kScj?bjibCz}zuTI< zVf$J8&+X2KaEpl=`KBiZ#6ab>oD-I zEeb)1_(km2X{H6Qo#af|wUeP=RUW+t|GR!en{W71`ItLff9bj4oasNI+HpPXzU|W> ze%SuJyI-8<$RGNZebwo~w1@heipE{R-XoFxL_?0EoR+09F?~w==r2cp>?fk~M@{pi zkm;E`SD!hTGL8nru5|SG@|Wtt7TXV9J?wR<@i)z%Y#ypFdiaCtqtBL$Ozk*UNa$_8 zACHIOCaIOvIH<|Eg=$y$&-gKFZ%ubX`5(f0)=z|ZRaS2}+%mq%f7M$yKNw#Q&D8v( zX20EQ93S$dd>iN89OC?%W*p0J#b@^YbU0K$9)l7XL98Df%P|h^!PUscY%Sa|AmNA#l23#S3cF83O4mF@f5y59`Bf21L)kS?j>e(%k1?Qfm!hqm4!!4J_?2gtj=>k=R@wM8zgCZ2xSq|ovs)Lz_;Y6b%BUy) zeY@4VxSsr7*YaPq#x3k8$>aLx^*NrP;Xvg1Sm*3GJqS~Pw+lQL3__E*1A5EY5%{fTv&UwnE zt^JJSPO0D3!w(v(9P`6}=+ZlsAMv;Ce@?p@8(VgExRt$+{pY>H^q;V*&i*B$?78Ub zUsRrR%Rz|U8L1u8{}l00%a*2mZ0`d($&`+m;Xk@|zW5hfjx^9vAddeMkAKP({K8yZ? zbFZpbLXA_1+DI(jmHv5pJm@n4kAFl~Ik zETPnI-}-x87uG@LqF)nQ{>6RnddS7_Thk}#{m)#lc1sSv!AUO9&XmtIO34%90QML9 z5ql{du;7wE>9ObXt@uWcJj%}#ihnuf#gCXiGJ8j{XZzan=W3T^YyUO!B>J$cW{!5G z=MAr;y{q2F{56hl%-1;L{5n)R?lvB&I#xc*9SmaYC^9Ru^k9fyzP_p`q74~JMNdoKju zxt^_~@mu3nIf#&a;|wm&`PZGBnm{{I`Q9qL(oRqKDPSis1yj_>lftzG|=9>q{9HviL{>S=HK&c$bJmSwt8TqSC-@l!>vw;zb4+3L5v~1ih`lsq8wp== zz<*wDgrQYC-&Zp)MC?q@Rhu1hLp%IBRKE6=knoXVvyA5`^p8_I>ei5P(+?cLeh3vV zYTLOHoeiR2Q#xnq*>A3+-Xeio#93!vI2vDF1?On@=0<#HxYOWl{g9K$&ko!4cKs7_ zi36hFp7OoPh0@WdkNfUPuDbk)UA$Pbl&$3~Co z(SB+iUB1$FK2^DSyT7{qh&fs0v!klzQix~N=N(;LixppIFN?lefOQ( zeQ5m>_2Ve_VgI5(OjkXQ6Q?<8#c{C?Mg6|-^EL& zjr1)kt{N(R*i_DNda!beXS!bPe&+XlzoH&ZA1HoZyV~g&!0q*Q=kbOZCy<>FwvRL}Z}Q*OHzc6zddTxo_9VFd za?ZTfPvV3ur_CEP`)z9JPwU_w*9m#Uq3>uR;n}ksWL=Oy^7(bx$-nY<*lqE(Bp%z< z7p-%Da1K9CdbqZ6Ydk-!;&U6q_2#c(rVP7tzWnRpD8G3;=ReL{>Bx(ncksJR|1d1G z{~Dk8%|1_5ZqM@`AiN#z(~s?Mt><$-5oVZ+UmSmvw8y{n18>ZJy}yrCZZvxLO#b6I zR9@qFj%U!;ZjzaOUM}x{o2wktDzMYqZ)Vq7=(1N3-%&iE>=9tWKL9fqj#s)9`-WgYx=WtkC-!Fid+A%aj9~HK^uRt`jp_Obl7k0(Edj4yrJIn_88`c z%27N~x}J}SCJq2U9P;O!aJTy(Avj0=^|jUkb!GN}a51~k)^XON$qC(LDu)=ZgoM?t ze1#tr_u0*xh@JoW@1n(*X%~5n>(in7?YDLazsUSv`Zc@7yiEQi|6TbG1M;i(RKI&( zvH!O71KN0^om;FNGqrg>+Ut(4V>^AL*_UnlAG-Vw+j4O~(QlXD;q!dd8@<&G-~9r5 zC4Zvwm=p3n{!hYwt(9);fjN%n8Wt*$4nGXF?==6ijPs81hR9EqYknC15T5ZRu5;v5 zt|%o(p7%m`V(6WgpKdw<*;D9!|na4aR2A36v}>fsQoTIP|#0vi1XQP z;(niwrw5I1I^D7gjzr0rcEadVD!6Dvr#%`yqgDnB|foOF4g`B zM^E|Mj}Dq}1NOq^9r5DgrRBp&l~qq8iITI^5s8D zo*0)GGR(*QCmQxoh12P`s~Xhr2|e=p80R9+X7V?0(e~?VyS-O^`IkbqFGQ_cKj;Ia z5&J0rX790IblmO#4^j1TOHFUBws*7-f2xZM*TddpxWo_qT;rSK8AiWbZG~#rMgAH8 zH6G(%iww(XwUbkBwR${94n>O}LfLE8Lv2}k^w#EiyV39Ez6k9Fr}0Tn(Z|?hjbC;~ z=zT=g{zvnDzP||xz_f|?P}cl3 z|HDD|d7Sm*prqWV;@>B?}W`FB`QB3dlVR*DV-q!Oe{rz%X zdWUK!gW+nQZDn$$eWG;Fa(~!QSFgjTekI={lULk0#@UU->zwhpKWJ6sd);Ct#0si6 zZ9k)5lVJJg?@%5+YP2gOBCbYPkF@P0o$~`ZOk=Bjer1bEO}c&`V;rB#>3O*7%kBke z$wP;6z87c8SA0pRe5K>Id{C~_*MH!-XlUCJpR>&MSm&?zd*R;f3-@oBPufF2uC_}d z;r+fagAbA?9=~<+dyyk&ItNHjInI118hwx4Bfqqtt31CaRK94=MVn364ssvmQ0aP3 zC4_G#_u`*u$)EbyJX^eIk^LRhpSPp)X>2F@3B)t(9FJQ~e`>$!8*Ue$6l%Yjv(Izv zz0ymamxpDqfL{9IIX!H4Dknc6;?DLd>Yyx0$9(S8?#A{%`*ia-Uh8*^VUPWfn2+mu z=isa6AN_`J?L2AYWBktgiRI({hl=u|^_)WZBkLu^|L}&K>xE;^^99IuW_+4onayllVYANeS^(VvIyCg;FKE6?<6a*f@g z9{X1K=+B}T)h@|>@fpAMnH_NEPbz)S25|6+`pB30W0?@rwOB^{-tw7dl2cyeO+jeN zb?AC1#Ewoe(|3&}#f_f8)<=z23C*gZ9Qp<=?zca5FKvE||7G+eeD(UZ>WQDqpIScp#;YEDnZ*0b z#1C05y~5F}=dhC|~JxbxAL@#oVWHpRL%tO;J zKlQ(TPrp5-vyS)|wfmZNQ9W+2LD4StYW}C6=(0t;oA=U5wtWiX7f`<|2L?*6h`R*R zpYu!Uii-)W*(ZsiJx2&C_sD-MM?%bhAKAx!*9-0*zgF@H>%6u1l*5mU`NO>-_pfsH2LT?FN6l01ZO~RJ^)&7lEgv_4 z^64|XALFfTSF4v<{iptDhH zhucNpaJ(r)4;s4}wBIrNH8>oeuRZ0X{VzDbm$X-)XErmn%XN~C`hjK~^fS^pKswAB zU$@^od(H9vpmg~wDdjK+-w3te;yk1;m=}gn_!Ilm+T($QAsG>)URkwve&5V9jdQq< zxNS0<$7(-Mx_Q|=8_kpX9X8(Pb#Tt=*?jQFCO<#GWpL+Ha5$Q*B{$L^k}IxbltQLq zegXQx?2OK>b(GsoD0{4OxM6+aa?T3&uoK9I>mkSdL@T}+(__3|@@F*iV933kKz+rD zjQ)0O`%m&@G=bW{zv$lDdv>4P?19erng_6SJ=TMZEuuLFl!i1T)c(!MXMe9+Wc^fc zXYx7Zfm2F8#VG$Fy54{GWROn#H!b2f*!~33zr^V^UfJtFNuZs7Jnx9E;g~Qm-x#N_ zoqnPjm)%1qY(H!H%oY$IZ;bDUCdT!355PMiqKMWhN)P9fpp*eV!=lb1F^+)GdYqckRkweFQo%f~$ z*wmlwXAU}k8V~1)SwxlR9RJqOQu3K*rujLS`iP}7Oj>@xkevLA1yuR7i+KM4wb55Q z^xtpWxmLMddoK`iF4Yd#q2MFy&^|{5=SKh39E4lrEBPoattWch3pFnx_lXS2KLl4J zUwZy0zTaFw$%8k!3&<7od6e&`eB_06YY+b?w)0`R_fe6QX9CyvyQ%cDlND$l;1KIOxQ z&s^Nk7<%Q85a70)or6~RqwPE|TD%cn*t~1qC+Mqu>0&#wgQDSLMC`chp=X&;#E~It zcOiN{$P!!M{nGq^WAt>6ys#~nQC==y7A8N@zUUk-TKq1Mv)!(l3OR=0ujVGlqNUfn za#8L(`Hyz2tFPzf);<^ea@yUX*oBByDqJ!VA;WU9-RN%&d2nF#aQK7acE1!V?yG$_ z+}<90;bQJ;(j}%f`*OH|F$sv^y2OKvex8Kh>h7dpCTT*oM2Pu!1+lo{Vdj)S-U(~& z@g2PF`_Uw*J;}WXv7e>-;~WiN%3dG)ZR417Q$YP6Hq5Vh-2Y>&WubZEZ>Qu-FKC{O zpY)vb{q|0{m@EEBeF8IvFwWY=Ur>Hked3HJUL)Ku2BxpJCxd>Cep)T({m`p5zf+fl z-uCYHG}pZDiFXP&-le27Kkt~|sNq~sz0ow3HSLWt>*{xSuJcSPKjlI4!gO7V{ER18 zX7```fSuVZ`8xqQcI?J;}H7JCuA6 z-#w>g_f=nhhsH~IVV}0`Ip(4IO2<5*7x@>zT=PSYgs8tP;>H^iXi1IVPpEV~Ulk(m zhSRa0KgIUcKIaYZpfStVALlpQf4-WP@6Ruecg#5=IOb*cx|{#A`#dZ0)!Y1Q@Y#8$ zwf|XP>4fXC``+m%n*E3#@or^$5PSbF#tl%9Q;+uGTt#llIV-+5u_VK59Nha=J^4c# z7s=1`uFfG^AC>!1Pgj3XI_yn?i|g!qnonc%&v@U^!5^A+;uGrh!}a-BrK?>h{`~?f zznOk$@6U|S4C}*s7qOi)+h<$&(XD4r`vVRv+D|8^$Hygde~SQl_A$fS*P!D6+82n& zY05s~-t%#({lj^|aJnmV(nsufmuUYS)~biTa5e353@{v$ul>X^VV#rCIn3mY0E@{P zVHBRf<#zvHDE~&|LoARh*Za(UV)J9c{NLhBPC48ylgDbgU#Xqp@TJ{XSDC@zCE=kd;G&sR?hYv@p$<4e*Q1LpA`F1y)8c>)fi7VUi!6mz_Ho` z+c*mRvH5YHj`O5L&HwD>*@epCcKPT05dT~+u)h^&Bj4x`F{uA#(E3!>OO>BzQ7krkw0*?BKy{K7E>JmUf)sy)$vMPI@f`42X)b!qcO zZ)|e%XS0j565Q@@7eYPG7GnJ=SAsXJLuvQ=l)hjA)!*IiVxjRMcAQf@`eo46y}*4n z>`hX0Pk6D+nfKuI5ld#hpqolF(-LcoL}kidoI*I7ruTQamO!El4MJlJyCu~cj()E z(NE>ym-9CLqOG5$Q7@tAo$O1KKDL{xzYC=+{+IV;zxT*vYJ4o1C+_mxu#4lM5RD!- ze~c)7j2`8IoA{t{slJ}qs$Bx;PUvM=NmqW?ztW{2HO>tIVxjhvkZo`K9`j#y`}{); z&-DoJan;b2FTJZ}Z~GoQ&SRI2FzFBGLVlSr_5MG2%Ig=?Q#fqQ#nW6vft0CH~coZ~MJbf0Fxd zT?08hCNg@ziu_jO7A9-H?`FULB5Svv% zK4W_w*2EFx`+KExYR#cNOQ8xHVy9G}*F+!X+1f)cy7sz$JM7Y}UL*fQ`c3Z_*7V}o z4YK3$dna@UZuoISPkG+yz~%JbmgkT^Oz_dD`Nd+eLC(1 z{0u!mRl4}-Oy6{+?EdZPae*Af=j4UOPet?mEh&*#9)Fk} zN3Cp>jyp=cpZF99HKFe|K0xj_$b$Yq@ZvJ7VO{QVu78{ zlRM7)HFh35yz#R83e1CZ43!WC)faANcwQiKH7-cK453u}qw!(w*w-?1Li_|DdcHT^ zp$EX>=u7M;xVk+yY-X3W*zXL8!n|9=pD`6%zt>vN1iuQ`kFI>xE~I#fFLAjwI8X7>}x)An|dh@ZplUn5SN zD3?5UFnQztlu*wpRA1+BA>q`SaNIQUeh2a^n#Upd2|7PjiGyYs=vjx~ci3pWtfLRk z_0ZGTqV*goIQDVoY=2j@FPi#qYyL(3kNg7V>v?pIzL{|Uqy+U`++*(v8)p$U(o*-U zDDB((lV0bLAD`2spBigt%lMU!JQ?=;;xp~qJw)#ii1w z81}!m$U4M%82&Ndr@-CVr;q8+*X!)1_{DB4BSt;8dE)1_(&^^VqVZefagpDq_b~tH zrId0{?`x!{KdR3DZ*$hYv;U`q5JlM1oy*HNO(-<^P`gU1Mz?(FF(Nr^v3z*GNee>Xgql+=?^#XXUWr)7xRVK zx2eXd{oRhw^eS9Uh_59T9f5-*A3b`)3yy zUUZ4}5=yTMWmkl=GGgR^-pg1>r891`A8QJzUG(=xsPnAW6}Q$4#~6y>Ony7LHM_}q zrmyt=D;MRw(mjOQp2rLEXJA42wzVU+Wy{_z9edoD2Jxq!;cAO4^pn^)U4VMtCHd3&OUN+#l26!cb|1!jrSlm$({HFPlaH$U<4o-^tVAfeQ8}vZg)1IJ z=d|M~AbMf(Y}zG&ruOCk3DM)!D{1Eq{Ryi_R6fV%Hotn)=F^^)d&C<0?)v&SDfaCC z{$x;M=ePHRV~?F@f6jbTfJ^Lsk!-ma;Q1Hlq#OR5Oefsu!M@XPRYD6zqxUQh;Mdqu z=yM*Zmb8aCJkQzBsN0RBpHluhG}nA~E(yc~eCZg+7{gHaLeF0yr`S;*Cpe+zBjmGz zo?PvJ%9Z#5ye|)~2wVvD-ns`-f3Bolrg1^*JqPiH?Xii-xS@SZZ<-O$AMzgI)<%4H zelrm!RZPzsJ)a;wYqp+x{W;&cpxr)xt7Ma^j$Khchimt<_`u@=)2Cg0uzKxG zk1(qi-};(=X?!*MPvfnz^9RMDz>I=I-1JiU9G6z!J?TNsBhq?K>mSce?E974dCKp~ zRh7yqJz~7qA^WXyaGbu-xT9X}<|8?HT+hDpMMliPl=E+OCL}zG-r`(>A`#!Z=PKyi zg=o~6*&ncPw89@&FMg*3b{$k-`Z%V?IFI}umB-&Rzl`jq=mCt=diplrrhBy>n)?b_ zo_OhzQ;*$OoG^WnA7TDofxTbpT>m0{adPay@&)E96J3P$Iwk+=0YShY81wkQK1$^u zlqG(E>4hWCBlrOUxf;Fv>PyKV+n;$!t`ygk{?xqy@k8k;@&AdPNYdJyp3eb~`xiKkZ7M07J~R$s2t3 zQSKt`IH1*(*H88I9*R(LX_fP;0Iha9RCqzd6k$XWQj`AY4?$zmY%Up6$7tbFQub%=8@V zfga3zx=$>e(x6b!jSRU@AY9q~JDu+{Yagb^c6ku2_Vv9W4>At0)V&h3X8?NG+r4|G z^SsRR**9-RlaGBP9}mdtLqB23e%UVr<*rXoPm3fF2RJ>gvGd&H9R%z-&-p9iepzJ! zyT6}TuSD}2%(@17-+JWD{z(1^O%x$oPRhkvHN~=;QXH^YZ#G(6E0e%*nPg1 zELeKgc-82ka}yOwQ?^ede8qrrM2Y z(x<*x_STjE&*B5eY4}lCIYXKkZm_Q<>%hD=x$>#6bwSMDY27(~mnpQ)X-e09EMc~2 zSRcccr{1rZ@&gL|f@W*uxtD*yxbQ=TI%jG;oM#?XAN&7}+8>YO_nSAwqf_J#^LTK` zC0sxo*#4RY{zW^FcK<_K<$fezh<|9P@@@UM5oO=i-rKTGkNM~c^^5xL zUiSqkyRUijUdOTKxw;=DHS@ST)jD|2@u3u=e#e^MgkJ%2&Bo*zH9c$jT4~;dV-7-= zE$)NvUMz+?CB5RkSVQ~XH8l4;L}#pvV?5Vy-n>bf$FujbE;Jw9zm7jQ;t%DSUu}9! z`PzTM)$p}6Ju#*MD84r-&m8?gdC?=r;a$l+qiR-zuw$WovMvAZ+gFLoab4VK%||r* z5`9QLeqH$vtvqpsns)RHAm@suuv;%ZHxG=P`*LS-Jy!68b)jKl)66r&W#w|M(_)_G z@S~Z(a>g(G6q8PjRXJAkcBfukr`qD)PMKhGuvjOe%Llwu16ez zc7luJim3P2pl{y1c|Sdt%P8-VbFF(oo(QWUx54C4H0_(cq!{VQEk9w|q7H7N9XZ08 zfBTXAdfL%*E48QRT+iF5I`v|I|BHB`cK)q;p&jSPSmSTUef)S|YS_{7UbFnzZXB_n ze&6*1=l=at$hI(jhn(Iz)&Vucen9StyXMe)4%`LEvQ-h|xrOuhsn&1McTRGreuNGG z5Xye#pyt(~%HwX#J36ACQ(HQAr?Btv6zm`IUo@{(nVsIB9`^(3OpoXBUiWA+hvpqN zKe|-7UE*(xj?c-4T)YcCj~}peLhcEA!(nq8QRipUhs{GxyUq8kC-lk5{jx{`cye1~ zzfVrC?*jIIIsg1~q5Nkd4?<_c2?u#kIq%mGJ}DBe-!vu21E`HKTurg}dE#4pPc+Hr zvis9_2O)N5lw$8wsa_>(ePnc_n5DpzlEEbhenKS-7xQE3Ew9;00rxUIdDRbgSL*i4N(qI z1WIT8X18#g4S9W==Q^yrbFL)+^!9%5p_9SlUj6o~#Zu$g?WV*7O1^8f-l@MYzmy+< zzS*JIK*Z-fMGj?8B&URrybwJJ9rw$JNU1pg7FGUrU-}@}c|e%FjSd0ZV)%9#a~h=V)qhYwnLu2Q=oVNTg>Py1+ z*ImBKBewVrwW^~nYwq`-E?kdu-m10x?Rs!dvGv%aR~+lWwTrVH9B%guA;*P8IM3pH z#9Iuu_yiwFFM5^TLn`gNJ6Z?v$MDC9O!vz8e11MrJJac5m%~4{1M7laL;(qxbWngg z|EN64S*d=O7;@T0JdlTy^7p4@QtKYkY5k(+`QXWM`m6NC=f?z&ewF?z`~34y!;AXG zR~+AK?Elr|-0c2;`|7{_Tw?!G!^i$b@nX3D(TN_NpMROY2uJI{@5more);8jdE}0M zR}{e~q4(8SmzV1I{Ab;-LGMm~4h6Jx3FBgXcJ4uLcrIB$52ptg=TXfJ$&a{cQTJ4s zC+R8WImep3O^J)-r1N}fD)~Y@O5p;%Dbzi3J!en$Qc)6N`JIhX+H^P zUPw2I^84B6*Q$>jx>kFa>=z;GaVoi>d?{qtI^m4^Lex;VZ?VTbKQ!9p*6cIKcatx| z3nt$jgG|0jf6xA_{TjKXy4n5b=v{2D!>(K)eZ@H;Jl5lTCsb5A{r$UsfXY$4-y&2H zebeGc^;HhJJaqka_+j~9Oy@f;t{3#3_Pr1{bzuA@FeN@(q#pVkL8cqe4L zAQw6J>9eF1@{f{rQ@lWkyI{!i(NOkZ#H7q$EgSRtzN~yXZMuI>D+ta zl7La-Rc=rxfjH~@xR%`{9_Ay?gxf{tJoffGw?%W2QK(hIBEW+&8l+DJ`iYxFs2-)&`_B@TrH5BhFC zcAnPYLr^^4p06LK++$_DG>2UeCikM7W-_gNp8CYCp!J14ky@EO7$>9j{jP^ zXdVNPOV(qj3;7`Dze&M5&PtaEwNG-=)y{{geCneoa*O+k=D4^}J13m~J(v+NR6m-B z@GzZ@l)vVu@|SFU$=`%?PKsO-UI`9)_56Z!*01Zu{rH5z{q?W%dt-iws;64Yh7;=G2P9`)kG1jQ*N+@PDM;%`|;{bTxz?K>qE{zW~x!7uWZQ~W{c zs0&Khj$<8suXX>J9Yy)Fdk(4dJ>{Gu*Ar)mShe-!H(I?_tS>onJ>Dn2zr7Xm_%PA9 zIbXMSU*~Rz-kDb^eE0@_#2)#H8pwc11M z;a^Vqix@w^zAK+=&ixYX^j&wqX3s&rW_`E&Q+B_}#c4Q76U=`<{Z%;n{J5XwzjD9g z?_XU(zj&BT#sT}ke%MVscK+ev;V&h2zWLMlmB$~r{`~m3e&Jty%YoXH{`Az~AtzlfZs?cyRPP;yOTJ9OuLfJUIN}`>YnOxHlj~{~0~rI1fLXX66dg zc^~q|=7l&Yon@IB;s7X}?{=^+Q#&t+Kd7;d5I-^c0lYw@brOGted5Z>*F81id~j^* zLp=4kqamu*@)PPD;K}dkCoD;&90LEmJZ?;)_K-W|-o|13 zM(1gztA2-VezfZtn3(=qUx-1leMA>oTb}WE<9KSfVk0Y^xF~*0OpmC)S7LN*pME2K z_A<6Z2R)nrR*2s^PeGl-#n0p8W7ex%Kgqq;F}L_`&N_+DCLe8li|zPdJn7m89{GX2 zW=CKz@lMiN#}Z`uHbU+5g7#?klZe?TF@1#{z;C`^F6*A}-QJ#@1oY<+e?aoAd$EQ; zA(u%|Jnh&WmC5Zf3gjpxV~$hqh`2j{h9^C$li`oV{e;|$sjH$BN{s^04Z|QfqTBh{J@uFW~pTFRzdV|y3JGIOGw`HJRt}!(= z$aWrk^*0%hO3Goz4+XUNC|diZpufZJFv)3ehM^Zy96O#SZ?12$lyMw5uRHp6Toe%Q z4t$>le(>D=Agm7YK3&z`tJ^i(pXy$)_3BXNc>LAW@DuSag@0rmLflMeSn~b{G=BEZ z_sSmXx)g4RPn4{ObKdr4sqsTkCevxb`oZ-?G|L><6Ney&);wFBsT_}Y#yR`e5g-w* zd)ZchFqo_Uk_2H!96(3}!}{U)=}XG<*kMypKk5Mot$RWE`Cxe5*KvP1ljG(m*Nb$Q z-=Xp~KA}U=J*T^Lu+M02l}{ zKSLZ!i%bUVq}y8m`CdIM<@_TkN@~ z&QrnF4ly!&&ZtCcEP#c z^@79izE8n9AN+A~+{}+S40b+;#ttupbNm}2;eo#7OZNrDmoq*%S%UwJ;wj*_9%l%d z)`ikR<7a(a|8q{uh^5XYN;K_pbu>eK$FO>9PNRd6-N~u;KekqK_Ag zdygN0Uo#N>yT24gPJ6%m%U>QG_X05gn{bpLU0q&YI{G_5CvJxR7&hO#oN*BUN00d) z-}!K*#&vgk?9nqiFKL{k1K;sakWoceU5;fAvjtO#hrv(95vNj-QE3G?F_eHoQ59zh;y2?Pk*Av4V)*R zutiy_9~^$we+YF=>&UO-f2r1On2JWAB`1Uv%HWV+&TC57Jw74FDZ4+s!Ev>GDylqc zINIsAk+&QhQ+=Eicy>`Q$$=?;oGtc=4 z9=TmD2Z_V(|CaaBQ{rCpSFf=D=@IIDm_sAqNy&Z~?s@MXn)@;##XlI1Hqk$zUw7ms z|J3uzw#6~;*VIWtIW`3S=>1x6`v^Zd?iY~#+-%HmxVu-pp-dL6m(V50m9Qo-SAe{y zdLv|+`z7t_9A8p@gP%}<6AXS%ySvHcJf(K&*BjwsI=1Kh9`oUnT6TC^_jH~|?%?+Z zgIa^1(6G?qV2561l{?h82N8UNP{k!$oqa6j<;()GH1=HmR_ z6aFjxs+{_d826K&Z;uGfHkosOU{)F*ae}6&q;WcqD#BZBwo)oir$LGM& zuM%H$-U?29WSnR?@k=!7sI}Wd-==?vwcGv_%jsUJ>dBuHayY`5I~DXsUF@ zZA$8KO>i!n@Q$t1aKHGq){Cc(F0g*QzVFhcCjS)ugr4I5etJ}(Cv>krBww6xAB6Kd z&k^t4ulx&lbb23NxL@&pV?SW`efZ|ebFL2$zbEdWzHq!iQ$WvnkER3%r%SW{^Z703 zf9${Z0rvk2z2Rv0{QT^!J}QpBS(jyTR43;;zn~v^Z*X0sXGR1*gXynD-!ZN`?5(5R z*MH@^9OxzD1n9dQefZkdt)45v@s#@yNx1~e z_(JV$)=_S`zOYGYNB#3(>_~i1fX6f@7rH-|k}ki)5dCb3yay*eaE*O5eQ@J?*jXL` znB3jmnB9!`1Uh*}-uZAVfVu?%KcM1_g30-zkmC-J%8)(q19IJc{!d74m6G^ z-!Z=(AN$S5X?hBAM6U&hd4AMyqS=m?uJ?Sb9m_ZWVIf-U@f_zozchZ}unO<_FkjwF zb-o=G;J%6L3jf$2tm}3$_oUNIRkI!|E;N^k2k(zP@*z8FI6C;8^%I?wAF-w!@yoWH zvHSama~U-L zN8hs#R@VctJR%NTiaxu#`lgUSFs*z}xkGSPkNNFX-~3b3r^G2z`3Z;5oMBT&T>a@Y z)f+AbNlyNVVQL)Xb;&;R_zUO67eM&$vG)%Tmk%ZT>VX5QaLOOBDHuPGwKqcC0JHnP z;=Kp$v(a#yBL6y;u$Tyt7T6oHT$B%+!?a3goL4-@|T>0gcd&n z86D+<*^8ih{9-#X9?kKl^pwL*xludF$<(tBoc_I##~A3p0)OxEymV8Lp0#?D@=MWb zSLMdUJqqLna+X6YT{Okmr-gl2Ks4fch~?&UVe+|aHC#3pA8@>v5i(r}XPNe-`w& z!-MtQ1PTR@rtXU&jRDi*gwK{9WX3f z54IPzz3v4B-{by6(7Lc6a2yN?$Q!a>+w{tiII|%Rcggs)eImwtn>x)-N}{ineut<{GNS z>s3C7KNnOGe{?UcfWIBBe5DJO4qS_7+y}4n?5mn|*w1=-z5}ut)T|@o^U@`u$94We z!Fuz0@JWu{<#Qn?0ey3Ka(wJw_@i6N1@`(kCxb!FIsVg=+q)pUziGyzG5-_guOBWi zQ?TNmYz`7u+~)WLN&obV5!aO&Pks@Y(8~Ms^s@`4 zn_OEzd=3NuL+A1s57=0}+6{QF<$B>g`!5=GJT~Nhk0J6L)3v{xXJAT`8);)^m~-u zT)$C0{6@3?if|?H~2jwexd!) z5El;E3&i|EsP8Y<=pj9)60LY>=sB1*n+4JxKc(AqR%p(R*P<wu=H%1erp3m}6E8{0*WcMxy5a#2)VL|FxWm**-r2@N)Pf=1&tiI&wAj(M zAGPgNAM??uJ^X<)wNHG1pz+{u9((42ziaycj_pKs*o&Pmou}g@( zH>4W;N%h_M>r{HE)suP-ECEFQRX6mrKw3;4YV1r`waeJ6pH1EL{?Mr+nW}>&|1rH#vHb zFhBOcl%D$3y$DCAgXJp6ULXB>zbdik{nNXl$By%T3_H)Sx%XO-PxzjAemIiYrqFlj zZPggyg3s6Tu%T zivRd!33B~mA(UOsDTf>2g*@i$7a;c+${hVRzVy2<63OQSa*Q0dayRDQ zKrO!U8Cb*B5|Jj~>;~!5|3)wR?#S_-Bb}psa!Xjt!7t{0S-`)SFV8Pi^#5*in24|c z@$&L2Am3x$4bOUAKKvz=ApIOlTUYcpIORJhIdU-JLWB@`ni{U+dzqX!D$(e@Ly8>z zsp5PG9^RIQijSqp8DeaDL4J*sT(V(;tMP+%e?@Y5@t*t=mNI`;{)5Uj&G(P_vHX+V zt36)xHb0kpSkW)Q(G9d~Kk_B7uBUww`izf&A@^PXFO}2w6=wZUTu%D_e%T0*X;*yZHPv}w9reAtG^u%x#X7ML ztRH#}yUYu!DROYf15x)PC7yM1oFmWQH9u}rXQJ1-^Wqd$Oqxh~us zZ4Q5$330oy_XYQYZx^b6dvo)7O+BI(pXg%z6;l3%%O>H=+0wdJa2M zRzk(|g}Tokdi=}sYtvsfbf5XD-ak+AXW3ut*&4f3n!fem1IJLIzB5xI7vhHyd1AlC za-y5&haXDzUzbmK3VWSf{6NU-o$R|rfK;cr{^jM-!ma`MQ?}#FysNB;c)eXkmQBxYy3I1^kM z$nfy{(qs}!S7;wGu3R{t1V=rrv=a`who$z$Tu2G@hkUTEdTuKhq1HWI{DxZdGbB7< z>xlkB9*8q=Pr@@Uo`c=gj9YrlgTzJGLez=ftDIbIg7|(oJUj?F57~O~J+7(ID3TmL zjB!827xdy<{37nU6QW9=3N5ABn(l}{m$2QvRi zd+ymt?mgonz7DeP_ci;cFh9U0nE%oxf%{VZBxgNkr_-YX`+s|1qc@KA_YTn~jt}Oh z=)F15x7>>on)|xKOnyNPF3dj&_yH+)o$Ww*PEf9LG6_cJ5i&9KFd? z(%%L4$K?b50~|Cvu6EDA`qI(Pq<5@@v{4K^flvvFGJD1hIb`I{WT^1OgPvVN9obw=ZCfWV_5jT=@EaI#Nr8jPkg9$ zc^*GhKltZn=b?8Fxt0AFdc&Ig{D%WnQtb|t8g$8E9+EowEARP><}rToCg(9OfFDqm z@RNAcxezy>=LSWh`_47xjtBFlaJ{}7m#l;BV_HQI&r%R^ymagj^t(62AQ=9cNSD&# zPv|MCD?9I~(a!>QLHepjf5mifSfkev*O@0@>6FrQhfPU3)v^+~s0dgYk}qWVuZ488 zD=4pez;bVcyDOVAAnQ63iFzie|InYpM$q2n%}3NetIlEobeN% zxPEpoK4SmO{u38Cb_srf?#;mElatQ}1^Z>V-R^VN^Xvk?fc%*o``!a$yjMP7F_nQzO*m`b=n+EKA<%B#=v32IyQ-+?SMvNa!4i7txb5=U^ zrB}S)>^{wwzNdJ=lyg(j3u`WdGEa_+n>?=1<2rP-_#ppJe7VFQ%;A&HM=3~rV3VS6 zq-Pz-^{ll+f1!U5b*uOO76$jEM-ebOE;K&b`IPah zyik6D#;w4SSppIT?Fzn=5E zBoH6sJt?@)dFi%b9q)c~@@Zh-e!;;gM{gXT+}@VxmtWs)S3(|upns%q8q-7a2R!=d zn0UW?Q6BYA@9*4;fW76rRv^d3jgb4jBSZdxpRhkTxlPfdO-q*{Tm|&4E7v<}9es1L zo0RA?%)c){;#Qnza_S*(8VBcul798~07Y{iHT(a%+8nH0M!bRiz3x4z9R8OFIbQZX z?Okp3-JxJ{T0`Qt`H@dn3*uA>?X%Bv^6v)DsXh74LbjRFWw<=2)X|q;O(u?VQ;tOe zJ^4EVsU`e8zg+ti{^D;2@fp8&6X5^DU)p=h_#rjxGDW~Wh+J<<))lv;EI_%(LdDH; ztuN1)M5A|SLdE|J~U|YMz!w z`DD8zm!18V-EMwVK6;bgVChz#;=ZNLkHFj+60S8l*S+ZAoaFHjj{X#{P&Y`_{9b$G3M|_o6&X=F5GM-Cv)NYV7Q+;=UT#&rbi3 z^hG#Ij*jnhC#PHi! zE+-v5nffDMahZbs{->X- zog3mQny0J2Z}>0$!bfOc%bPm<9_%~mHDX*<&vAWqeqJNL4+q|_Xa85mCLizLNTeBA>4Hnpo%Ln2W=ok6*IqSl;x1IJy z>6{C_)a<-yTX%4y^#?mYfMZP+&|4*Tpl2c2b+!DVjSg$?yUdS-a z-t!r>rD*rM`kzAH+u;63p>> z#_@6zp9jIWnbsM-5#u`R^}1$VD8BO`?N18unv1EW)`^3o_|7n9IW*&`I#fE(d5v%4 zdk)`Fmz0Bl1Rfly=V&SVMt+0?(U(`jnZ7ffukV+@t>N>N|VBul%ga zGOhO>yR3fIu2B14RmB;$BGd zQtPgEYG}oSYW53KTDXLDZ|{5P_5GanKpakM)`$1>PXqh@d#sj%Hekibnu_PP4~af)96XVzDf^vE3{o@?Ql z0INg4a(!V}qyKp7?>zkEwL@3JU+yP{6uu*0Ma?>(X8seaA$croaClyno^=|Xqt{u_ zhW8i@ITp283ej7K+}8WeP?+&y*aG=c+$=S@QF=;TU^+>WH}vy^L;eDBNFm$mAmsT& zJnthX!J((%rw~9cqx}_4`$j*;2hc;oNxtLv2UNbsLjW#RPjak!@?Wh!3R>mmr^b4G z?**ET->NGM@W&ZcL%op6jJH4vnAthqiC3O8$9F&q-JL9Gdg^pkUs2_xJbW&&d~e zoNG#+XW_rXcgbTwPaPi*ZiCsqe&$TBPqDL{yO+)0v#!U)rG#b0cV8uEo3Z(|gtd@Q z{DbO#o4)YKEAL|%HW91E-XZ7slU1PJl<(WB9sRwF0y%l7^@G;mc`M1^=tW}a$)>_z zO^-(BzY96zV80^I_B`UYL@w>TCi&!?R)eek;y8eJ^55An;~nQ<+T%T$wd#$p;`1;3 zk1sVpoonNK;XCu@`T9nP`5z0Lcf9YM1oXFaHTyk0T%CL5c72$Rg$w>pPD%P7$QR8u zAM8K+euKUNd5$nGk#F{EQ-GhK2!t--d;m%>h%PBupyzoVsY#*vyg=VUzjeJgLCBvgK$Ij8>g{+Z#nnF~24Wf~Wc zzXqDu9pCL2KM4C`?`y*}3BB8!K|h6?I%f!RV_eR<=sm`ib>h!zah@l~^|9x9qVI;`@}sAFH=c$gzE$gZ)o`^BdLYvox2^+G7BW zhg)Ak>j?MJhg#RHuW<)1a%di9iH8TR_*%*Qq^}Cnv-X~w&OL?kDW0FiFVQTwA;%Cy z&VQiv3Y*mC>{C-x6M%ZumXCDag;5Z9;;rxYUwJ{QiRmQ921vO`Kb4V zO7Ae^AL?fhAJfNl?0=i?Sc1G=_tfSQyrZg#<>MQ09{l)e)MYo=e-cMW^n*}{|0({clU*-U0!<~ zsDJLm{964<52%0sOf~&_#Bd8&%(Rc0l(>MTqIUDn9=`0%IC zYSxcvfb(E;SkFq*B}gUfyleH7^pGt z<(uYQq`ANFD34F_O1{bO1`L!G-QvHfy!3W(*md-tQ29znkFC1$R*rym?Sj)iCzaEE zKp|pa@6qr9nq^A8#qIT-W8ASF_CH&pPqIV#}O?(t$KVeg!n{F9D=_WihRo7aW4Y-idO`l|6|`tKVLf+C_ld9 zNfhJdy6l5v{77R6%v1VQxVz%H2J^RNguvJKY={H&Xmq`zG03YaYT9w>2=*R6kX0Z@23f$2OdE|>-#^c z)f4^h-B0)h_{aQ0k9v|L)=ldv?C6H~1w&8PKgNmK2A>4%#fAbx{HKFZ@9)*@mug0U z7@F)0!;9)#=@Sl+LdC&6a>9U}5Vw6J)Hq7yN&ObkLecN&pnTM~`C~ed|LwfZw#S}W zy(~vAX_kE#%jL+g+Ihm%#;J0M_jkhQ_P?vw;)U|%HWjp|IDt@cO`-gO5|p0NI29N0 zAkX{zfqC*87uz8Q+}|rbPyUJV z3t4YNn-AqOUU1D5o)diY%{L{;ad9EkN|pRi?TVHhmee=@hEBKvt(Q0cU*x|<2; z&9!64{#<*lwb%X#%1``lO+WB{65;!8WjpWX;Ov{dTvX5zjv25mX^+`c^0hr~cMpN5 zyT1lvhxy!l0SlfpzR}CrX`g=bCa0gqEEFW<(fIPczjVKUN%_~LDs|_k2NXaW|8|7C z4&r;bKk;jJ@~};*cSb`Qt{yji`tMz$KmCrS^z4=Q@?ZzjQU&2G59}-tubq|94EvC8 z(C{PSIM}SmEpk?LT|i`-)wg}%3;Mt64F~-}L;JBU@j>L6=b`P&v9-fIL;qiO`#g}Z zo09%OT|TSnr{m)%!v^_~4Hplsa)R%;1^%`312X)7O4tL(N1uIGAa8IRJgJadeh;ul zu2J4!YUB|w-in?4bRL5qgmzvK;b|S%T&j1=(61%wU@tI_2XPFP$VK!&dN;9tIUeO8 z+Ys)gu{)MU$m3sjBFhqieHha6JUe>w2lE*W-N#U~kMZcLMV>A(5Jbck^ScJWX+N{v z)ogv~d-yp==DSATm@e6#Ch%Jr-~2IGCL-!|!oF`x`TBmfD&ZUb0R`xI$>Fax<0U~`U}@}N_$p<#b*O6VoR`Tkwl&Br%44|(L@ ztq0I8SwVUK!~&k>taw9oT$hADu)bNq_YA+cqUEt2Fh@fFKjXlCp0(U}`)SNe{_uyR zqgr_s_uSR^r*}CA;JWm0EBN$t7TPT@%b9IUz0gaWmU?oI zZwnQA)^@0|t82zP%Vo^hOYiZWRPZC_aOn9OyP%XtZ!f$@7(eun{U!|?{6_y1Z;*UW{Y2FErtPJy|4ldlr{2@1*S+5| zUSQ`35jViDLEfn^M3N6VsNE}#nGpIPww=_yihBkz7{N6YTao4BQ3>+i#U9`8G5Cw{ z(6hMvPD{oc&D-gl_0OSK5D%jQ{v_EXVg@qa3h&9ENwaLV6CDTQpZ}vn+z5|yKjNE@ z&yi34g7*_Y^F!|6iSzj|^Z@6>L;mmPv#e$uU=Gh3%Fl7GVM3lT9AkZV!TzqC{!w3v zrvHcqPtcpupUjIE(l_%#U!=CF!x{6H?!AKkit_P%$gd=v;|7c~_J1G%ME%zC*$E$( zm8Lzaig@tl%Ji5uta8%vyjaTG9{#7X{l{bEA9{apr!id!J1x;o72yn*S#3Yjffe=b zf0U94oAA60|BHxOvlAbFeD|*G`ZM~E*Q5XJ=Yr>NSw|>o=deqVFW@>y4#94l1md^Y ziou_$N#quKzp7^a7TR_QRDlzZ?s-Tb=zktxKD&XY-i>d%=eS` z_kLW`5BR~S;_+}0ejD`uvZmj-5ado|`aTh7;r}Ciwzx?L6?Ou4A9C-IUxobQb8O6$ zkZbt;Mee~0ng;qEu7j@7*TzGiqUQ_z|Erh>IUg^OW6rm8(q}sW*y2Cb57EL_v+t$( z{Mgdx6pZlv0P|wzdo1VPTAq(7SB-pSTN?AU>VR!gfz0EO%eCtlK{GEJ8^38+_a*Oh z&)L{?HmpmSKKrh==121A|3_5+bN>wSFw>qJj{CJr;K}H|4aD#iADp-Op7x}Qhria`SC^ov4th86jp0m(CJFwvo*fP{k!eRt!KY&Pyybt7 z@eqS?9-ywOX@c*m?&8CE10uGmNpR(~Nxt8$2Y5d$p>RL zbp34!Km7CJ>bioT_)sqVU0_#kCM8&}C-@aQJ5`zj9hLBO_q zjsei3|8H(s*8tg9GZ&}mHi!aX4ElJPh*O4_Ab-H%1g-)b(ASwZTV*!+yKAmz&P)_n3%>`NH!Cd5PT!8m~dF zeTasuFB-;+euxhF4pzLEk~C&&E>2ijtl^W&UxW_^(x~syE3;`z731kO8I**Zk2K?c zQh=^M%Xiunfs+a0Md;~YF=w7STjw2rhFm9^fBPN%82%m$_?&Ajk@unhvy%5&)_pKv z?JQ}gdzs}yzb`EJEeBvlmWN{A|KR!9tmV6pSE0|j=YNq$|Ge$`Z^piwuD{;yaaPc8 zEVuPb!f##I08yi17r1`+VLauZ^u-zX3xLPR%)8(x$FGRofa@yu5q!;fE8pw?H5Z_m z4|=}M>GzkPpPwhnd4A5mB>HKKK(>FByCUY}iS@$05^~S>mv;VU{ke`W`h|8u4xsm# zHyF-vjpyMHmSzDX!ri9=O?Qn7P`_kJJ0nImIqj+*&5=9EVfF!}xIa4~m$cVJ*msX# zY7eSP!C#Q)guu`Iyda&cVJ{vRKD&a=p1^QYphpF;mH zX(;=vkKPy2)3+km5*;`6C;rEybin?A;bFf(p5az~C_(joiTvr$7U73a$WQ5CaURd1 zL*H|rAfCrOBjn;{YkI7!qwf>A8Mj$FV3_rxGR%aNguGP_Nn@rkUn2$^6O5;S!S@b1 zKvj`1@)PM<9x%F@AC;~jY{i6!s#dPTAT@Nm-b{@D755NOTJ{laHm1Y$XCmST4LiVf zuAKaAf5S1W7nYZC7k&cg9fqTKH9>~8^=onV{jB!6_PeNkYCCefLEX^)r(4fg zr)#C`WNeIRSBQCUmyqB z=JIU;UvcmGBnJ~e{`Qz%1;&0fXxwAO2k)p4*v(5G`L@O1U)2dd#@tx9srhhSe_%L# z%(zH<{>F}maUbI~j2FjOgWj)cN6~qL;kXYOC!PK`-;}a%I!v#`{$MaDC^vHLxS~F& z{~POTyNjJa1bN8)j47+J51jue*8LCXgz@tjq!i(^*-eFn;}}=nf`?Czt_%8^{H{v)Y5oiG;SZLFf~GpZ`?>)2 z^V?p`TQ@nl9ZzEZ?)tBEj0ceIKS67M8;<{Emw4ZG0qNoWwp8cm?!27Iww&;l|`~90<8+;bX#L#f&b-RXfGMiR0 zZU}xVO}5wpb?Ez=c&Ld!RIg$}EN+nx;wc;dMDm|h@D=l^s)ROwX@(DazSA3`;U)ao z>60SHRRNzWc5=df{)mP{t{>@th-~01d5`9L2)ym~7bw@IXN(uiad#zMxgLgItKA1) zTR+xeZ&KFaAG^8AX)S2>!RF{;^b7qRutylEBtGRzhI=yWV&2=22_YR2MD;4%G&5S>w<7dM$+nDFK$$L-Q z)FjK-p!X?O)q=>ix#6&9W_;B3B2g}ygH%BBahw=0r#`sFVmu%60k#VM-#y%1*CNkt z7tS*s+g?XU&yEu9Xfla*)WZeC*lQw_jRm}IzUq7nl zLBDTnuwHlT_~`#lNx9jb(w5YN`SiE|r<6~mdZDLXug_^0gxJBr~ULF<+P^``2w^& zIeZ`%wm$|^3C*OLjlCBV*U#M znUD0Eiiq?p<4XQhz9sB|%a@6AVit^B%8$DW`Bv-iiFrQlSXa<=f4`#MsgjQVS&Ojm zq@;b2np4sI988Ka z|BdW|{Oj=7c;5RrC%jGH@Z9vA$LG*p{5;Y#oC!$e&#{2t%>T8YEGNgJ9`@yrdeIJ9 zMY*}Y@34_Sx#vt|KS${O<$Tb0JkT5$wk!Vsm^Dc-MUcY%m0upwXUsH{Ox)-!R1f1bBke^t)nkEO#5pRoXDI{NoT{a_{e zeewzGyvW7b`WNJ4alo;GZ2^69@)kd95&IDXXV^K~1?yet|EM=~|KpEC-^-__>jow< z(Q~5nqX@_D$)RDVsGkjyki#+mp&ZO7Ce|Oek91($+V=)9fG8t~?!W4APQB3!@MFuk zVOij1P5Y17Pf*ftT$fVk^ylgM7cW}I1AfP<0WTRyHT_TWwTOJe9w@mFr5h(q=eH$% z#J0m!!r#pE_wwiMw>jbRqc{Ky_!08}zLh_}eOw>l`QP*Hhyvuq*BE^gqeJZPE8&*a6B_!!5S)luvCp&Mti4`H1PVUu9_d>gkKKDF5#NjB#+o!G7y` z%?9U&dc)px+v5fYXv&)2TlgVmE%jg>4_ve1U1WZKm}u82jxUjXQcnA3L-uuo{Tb)+ z34gujo(i914~U(9EZFD7_Z=A@^ZofK`h8h5KCa$;dn=#9_V7P`fVZ7p+Wh76yvbVT zv-+{*+q>H&AF%!;CjMu9*ytn>yI3@!gny2gckpL^fJO~_Ayw=dMKuy$7`%I*JUgfqI_F@8m z`0hKxTfcv^YkSG(K_lOWZ7<>noz12z<0Z!jI7Q%#edLGvFh2?8?P%|q-;f{cS|N9U zkV_{V*fM_XzcL+$jp@XGNAid0x9a~YCGm&Z;3ILylfcv=$7(C-<)V*VY~kIdV4i|LE(7Nd=$LPDw-@ZA$oYwVq82Xrc!{A}>Y- z<7P1XKPu7i-yrjWoc9cWM4!Jxuf=;QCDUb{_~FBJS=I`@hn#;ff7}5}aX#$keao9A zgDt13&3UR4|o6GampsULAIV zeDT}(-E+oO#G{#(CFzmugV^W5SQY7a`ab;c@Zk{R_>+T&&PX;$VP%Nqp8%k6Pr~$9(Xo z&6+H|LVklaidyXNv6`)a4w?njgq-W6$3^B*9j6wqn<5*8s{sqmxs1EUO z8jlG~O+HKyl6Y~!zDtnLmR(1BT#%X{Uc;~w;R~61Pwbyytq%_^ag$O0qO12aePQmm@r#^?nOk7m)gneit*xku!4R$AG1G& ze&xK^x`hw6_nw!joZqi%(0zuY>-{B&+I>^OH>1&Mj2B*?mhidv50>zmegye#O-1uP z|4U>3ObYmO$GpD7b;N^zLfbz*=>CEReNS=T zw5drW+E>I~xiB7fZk!urJ?qT;PHu1BiY$XN4szEuvx@TV=AHffK>ya%Ysm#k4ejve z>Ii+*aIeJ;^V25ARohF4zY}r8gndxMAJXnC?ZRj9KQxS))86WT z@dqwI5pnPj3&zEq4bo!bKx|3>93C#NYWj=s>fW^UUxo*)&6=#f7;(<7gn7542ECmB zu-`wxcQAa8eH_UC0LDd=X;>u24QvTNG>GNyyv^d8a=;%PkGad?PwZ>f8}b9(16Kuf z$^F~r%l#93zPY@#T=n#RRZ>p&0c;Bp_rZixQ|_u3Ii45w48ImM)s6a&Mqh{i_PB`c z!nv6a5sz&z553|0M1Sx(yA2y!HNqd!a6T(zD`mq&{f{~K1i?=r{g^D5{94#Pw4>p$ zaa#}{{t0DirN){D83v%p*+y`-w(@<)(>O2{gWe?ST_VIPLjT* zqT1YZCYU;@L+4W>%GQPUyCXb^SwaNrmX3G_436_>w)-t zY5n+2P}CRm>a?Vuyf-Lm57;;4m~vejvB^HUJnT8q^5pw=lb(M^J|Od}XjjkS#d{<8 zop{c|2}i_UYy5`Pnolz1{ltE7NEF;ANXpa>l!8Jkj$WB7E2(7GKb_ z&3PavDD#6h{4J(8VdGwc4!?JnJa^DH9?7mml8banF2c{pYtk!SCqsT0%7=C z+X8-^)roM%!Tz2M%trXPAYM04)bsJ&`|pj19)5f-%{?Ehyr&LxJ`@CVe1 z@xt;-%>NxOZE6zktmO09uLR=8AC#oye6b?m+v~%urkoFax6*pueLwq1G~XIIhZvYy zZ~S`m27NHYE@=%%aZA53AD%n^HT>}S;Y3UrrV+1N?~Hfyd^YohhweVGUuZXJ_@|0^G`Prp8T}$~*N^A>`8?}W zb;|G)aILnuoOgbeI}R8d-}Oq%L;r$Bwp(D&iRgdnb(NCOasRF?uluu2e|)+3-!O1Y zm*Kx{dx>@&^jrEZ@oS?$St#W>YVk&djYvf~_^^|1!;Wc~?`<~5*FKhS9_{9;s_ME| z!ROt*fwqUVdar{2UXhQucK;gazA@2wCH&f9@w;_^Vz2)@EFEWe56eI<$St5PzqEc{ zk?DOre@riB|D2hxa!(|DXt|7EQT{1@>;@V!5C6ya{07$VQU4G5<+Q^w`(<+4+4*cq z%OF1&BK2PvJjdMHBxuj886QrW2h!99;iHqULx0c;br-JQM*p+ly2wi8n)m*d!AB+e z?0z~u4aA`Q$9RYRK>R^UrqeXd|D9*916;na9_oMVNwNNWMZMMM;&?n7m9!IVJQgRD zP98l?qyr6rIqkBZ<ddub0oOVq7q_^%zhkn6((x~ac)q1wKtGj(U+HpPy zZpB*!vAF!>knxHBzdAZ@_@Ddj8srP^{J`^(^BVLp{Ttzdm2zxne2xjB*DL)AU z&(~}8L)NfAwnHFjz?moq=H#~tS}`MDUY;Y@n{2(_ zZbkK;;dH~ZQslmulKG$ay0p~a`{ix7^UH32v|_?#|Bo*()-C*iT#I=PZnOIa+Wkv4 ze8V<^x`uB!HW>2<%zngz? zd@kU#T)y6M&XV`OEXyw~58u}+3(B_{Z@(9@3qzl-7Th8g;r z_+Nh=^ShI;|8vp3zhmCU{GEM9*5d?6OW^t&^f&t9lJnHOKl*|1GJtn$JoJQLAXt2l z`AOgStmhotE~IlPVqR7ve7p5IX6?Q4xsGRTdEnki$Mqr0E1y$(sKHD`9nB0s*)4|R zaX%&BBmJ59GxvCilksHa^BB+c>zJSYu61jQ=D2{YXEe?>RrONEdm4p2z+rUP(FFZhvNZ zsO~(<`}Ct^J-GksN`7V97<_x!MLZ4~BPkK|TF%_vZIV5BA|G!gWDB z+%v&Xv+wi=x9L(T>=w&@^8+Z}}Dfybpiq5dQ}92X$X3;yaH|$R+Hnb(>PO$L}%y#tyhR^L_g3 zHs?L-Z8{%dJRi_6IpK+40Y1>N`*KG4d5*p>dd%~e6=*+|v;%(83)=%X_i@S^&vjhc z{%r5OjedY(M1H~l%!{Te`s17EM~mb0@rZSH+PVIob!U)$L`%c*LtKmV`Ji9$9&XuT zfjq(fsq2tacekPjKt*_`mn-`hxdbwguHh&2;9maiSnnyAH*Z4E*DUZCK4*NEQ7-pg zVJG7E7U7?z_>_(lv1sNM=>EEr^x5}yVLnX14qNhn=DOkm`w)kRtk)O#@9BT^?0|a^ z#gww3*-pwlKOJngiHNy~e1_)N;n{P;uiqT?yY!BRqVtAy&~n~&75d-#jq!LbGyL|J z?+Js~&yEi(^1ou>iX4lJeO=y{(a?V5ufBR&(tejOzxvAlIv;y}w((v7rsxXhnqak2_c>WcR$|V8U7fbWy*N((SG=u__mMsUroEs z81~Yz&%6a4cPVT9p1_lWcD_FP_@IOz*)KU0?{>>UO@G{7T^)$}t1H4c!f%W_5Pz!A z4~O%4B4_S7jD5J1$=Bf*_{(4Z($>VoUvw{@(7(vrgq_*>)15!Hy*&6eWo;*)Kpk2+ z@s`|&V0`Oe@IKkTleQnE2mP)dH#k5_%j5bf<>{VxXuhyj#9w~*G#QU|%bN<+&b9mt z7IbRrHyK@CR?yqYWNbW&y~)9tUy}~QWMa9-IFKx_(|FPEymzRc($DQa=N!8Xzwf@h z(w58T*a@|G&cwxWGNzyGZ`8}E?p5xeV_ew(@-g^&kI+8H4KS&K4^t9P_urjieWWUp z)7~>z?D_N&4OdTzT;up4BGzvnpFg7Ei0`b!F8!03-Jse-QGk%g=k^UVS9{1sZ`T>29;Y>S6 z`@IQzr~jYuQ8!;?_}u#Z48iRC+SQ`-J#lqhdexM9 zFNk=X2hwhV3{2xQd}95QdD>gU>F!BFkFVj2Hl;}a{|$|2{=TREl}N9ne`^Q$TrMqm zj+t;*KpRhb*6$Ck7yT9Ue&(|S>wOpdK(YJc{^p8%osOT_PPiG-|MEr0MpN8na68<KpsJ(*el|t>1-m>jUo4D>?15m$9b{oB@D-$=WlTMh%{@U{+SYbdGqj4 zklw%B9-!@FIC?nb1?Raw4mo)Trd@F#LOSsKX$|cG`?n?S`L}!hq{u}SPY!zTRZc&iUedte$%GAm@X6`_bH3wQSMYuKeWgh!!so2_5RZHML!PmWF*9A`nLpL6 z#U10)^tJa(=x*On730Y80sUhUYCa8btWQdwzMYTnZcv7Y*%$c)qcnke`bd zIm$5t!~^DIh)-0 z3!fvW;pYl^$vCRHXO;3ovoALEK7P#@Pv38u=MbNIuEjM8`o81c{P@k`QrMMy6XBm% z^Pj^XaEU*t;W^u?gHQOp{L38vXi=;p%b6!oJ=9?y zrq}koci4VbpVahopI_apnD;}ZOoUj<*WkCk=lBEDl7 zxLU15^w30P{bNxOk93jqrFKT3bi`-=Y&xDFt4t@tDFOU#IArJn)v@`bH}D74&QqgY zOeeDjT7Q2_eViYq410)$|D5{6cFTg6xaC5B+w+11rTGoSl%_$~ue)$Qi$pB^FI-0{ z(#~Vk!9TM}Ak7`^jrt-z?L_3J;r*_kkb^U6+%m-P_&^%-JK`}<97%7s9UoGwb)p6# zhp9)!0q}-;VouXPthZ=agIf&50(`u8;Zgt3){pm|&jtnZ#Ct_@B<> z&&Lf{uNdz47p1kYMaCPoHsry=(j!-j1o>@dLH`R{r=K@ z`ddVwPelBiVb`&*W8!-pn+m$yH%-5Dk$O)0`QPk+a^Bk+2{~i@#p3G5bZEA_a?dZ) z4C7@5Vh7C|2YsiLf*0OWRZi~EeZXKKVq7rC$WEKBKw^}&vNeR-uJ+j zh?u);)#FTv8u0t=`AD2Cf4ocRZ$1YHwyaM~m`^p?Jq*yO->Hf3>CZMi&Q%Z(e-Hbw zKtAwZkS}_U`F(zHF?)+2A$ec%J24@z4QF0M`Pz_=h9g!^#Ubk+5swck7R2Kk!=oD9 z?H0%4XmZh}gDU3xw$B$|eDzg9d$AwzUc}!Ra+>jXR!~~p@U`vD`fZ&+hH=Qh{=j|E z=xy|VBToG8cFp`9I|k%)Cj+13zU+6ns5@kQkq)1WIyOK2s#OV%{lR$0|G>gT)2ldl zwVjH7hdFTK`a3k&X4LTWXt$|E({Di57y57`@fYv|<#?Ev@_R|Rd@P<_yqBA6Y1j9R2h7Dj|1lk=ueaio0oG7ohTT!yYw)jK9p_n# z9e@3#p`OnwT>sJM ze1Gt;%F1jpe^rUd%S{PipRiyg?Y=1Sao-fv%Bp~-xaiYDu@UhckH$ls-qqkC4gky7 zAAB17O(tvoNwxZ)a_J{}xk{k=Dp9W-eim!(-yZS+N2h4B7(QeHLu6Wn-ax)156u7M zKXwa|>qE)4!ruSa=N0r%n0KOfT8HZ>?{Yq?3u0P+@dEVufbm*GBVVp+(rIz*R?w*Z zRmt-ffo*);`@END>y_&Yu^(WPQ=UgVfaKm-FQSFMVS7#BVm>64(Uz(tA_k~G^Bx^& z^e^hUwZGL1H8j=l_?`u`x>p%q^EdeE_vmxX&#*r+bGH@zG(x_M@bjWXZm(9Jw^jdl z>t?PO79Ib=pT(X}i{6@WY4vxt4>ujw{}Rz5i4DVZ?m6pe5NZx%PeB zmX*l)jFE_%jdZ#GszVHI!{7S{Sf6{OZU2-wMWNy-}6@h6s_dE>YN?{QFD z-+Hy)mLTTZn~Hjq?Wh3t3)yb!|9szW1^Se3nB?fwlu{*5v7f|>s*7xAN{M(h`|J@7 zci*N+b(rt-&ma1{Ur%3)+G`@8BM+Pn_PD1916Ymc{A$y2e2SFkA$^eF1%`s*Ohckv z#Lo(zKc4$z+w+u-1s9%C=tPE0QkQ-&PAzJ3rD47T&qd&s~w^KQc{ zG7zKOAnI=0_F|lezNdUkpTnjDagLwS_dh|e+V6axr_%jiL^)Q>V;=L($%pC0BJn={jI$g*n@*=MN@&g#%}eO+oC5M;7!^ zS81+UL7$WVW;Zf_+$1N`%r|ePQ{LTgkX~=%IrFa*!@&pRAs*S+jXi)|Zx6}?*LfO{ zS>0dn1av9!~r{(JD`9Yqh6VjVK6q&O?M*)!k9||flSDgbp&t^4mFazUb#o&U-WL%gsi5C4+p5YL&wSQk zYJMjV?jLEHM-TfI&qsXdGoGJso>s)eUh20IZ_&>W(36Wkevm4=BfU45#opi{3!os(~8(bBavehH$Fdn z!u*->X1%2ESAU6kE%r$P{a9b;`33y}J10@QRdjz#PWfi3AK@o=%Z1^XvE%|GrXxNd z`p&7(=Hf+b{aOqwk>X4m+>kc37fr~TaA?F`N<*_(tB567F1J}^D!y`VHr{OtbXWmdA zwpC=-2fY9vC-)ak6Cq5~(67$_kS}2BvtJa{-_zj|Ovu~2kk`yp9;A&|fXMr3ci24S zymoD(T`?s3ruT}8U8MWE!|8grlXf00;#OP6^O}x;Uc+#f&vg#Vo0yP^?sKso_v6mr zj~|SFD4q95I|4h~jresD?ZG+*dNWbcJlb^@G~3rh@8TBuj;GOXBHb1G-gDXM1AT0} z=IHGYF+r0}EgJs+kLkU=Fs0ujKJvwUA08fd`~3bb%7LLL!VamR9PaB7-Pa)^hWgf1 z{a8`Y2ljK=4z82gK78(EXnP%9T`gPMQMX34Gmg4wXEb3Tc8^H2Z$knmlbHLgoce9r!Zo$)I+K%35Nz1cyz|70V=ey1Y$`!S!Yn0G9e#vd-b zeT|HVrRjN}r1>ma5KhS1&$VCB1NhHY`9X_tzc}}K^=tlH-b$H*EyV|fW zLpb*=gAKF0?%WsSW>JzZ*ESqA`2Vqc4jaxhvaRc7Nj{&m-M^(>++SaVd|#%nXgA#K zp?|akY&Z5RZEZ*7b1G{<6Pqb<(zx(KqDW*SCs4JCHdy$ z+ugJNC^wkKh8>umK20rhh29SA4?apc?ZJMsW8Z@fqyHAOKJ8Ou7twwo#jnK)_6fOV z6f5ij?6RsNJkd}k;aUIFH&I^nx8=uP4*o>m@ifxmJ^UVQ7^pzZ)2Z=(^(V;B1?^~j z?cHrvQm)aqO5!aMOT%xk`ab6xfk1+5!%yRTTg*#X4zph4HTP}y&`(^5*-~%pi?9RS z7u&!Wu=~0~-crAB0+FXR;kb`x(gPld2~Ak-`K?3xiFn;}=c|)WZ>5jm$1?OpiF{`k znv9QrNADNr^WJVXywA`4{`@E85_pFpVScEkT6&ISxPjIWXZgXymeMef>E!#Mj~&pw z*RSrk4jM^mJZe*=EbPCK+XL=Hlg9113`At-j03iN--&eKu&}*P{}l5(&LiC$5Az%S zZF+;SJFp7iA42#Uj+ZG=ds`X+8_PAb{av@Kq2Ijue&m0Ko$hnmabS7x-o3-`pNGAdcm01NO}8iOiT`S7 zy}7>pu%R7T_dafHR~CG1zvbNahUUlLjO{Lu_FnWO>h16JeZ-?)kC^B`^nAo;-$2*@ z7`BF^&pND`r$V#5KN3-EonC*BuHQ7YulY5+*PW*V=hBbgb6^?q!SX+6qloDYhxjSs zD~=V0{+M$giu^_M3`@o<#d;72{o%aIm~UVgh<=!*QeH5CY9s;I2;c{WM&38jn41p` zG}Q?^K|L&u*?D4o_-@t3XQ)8$uop{^>m@?&n16(aU$tW0!S~6B33*F8EJuW&0l&*9 z1^Q{pL?cHJ)b;8`Lf(GGJ|gqOZ@Te4^ut)B{T@u$d4pJCfQZ<=p)V3OX`nH49?YkI zc=#kS-~XIngWf-SdlmP)dS0MJKmMg*o=v{o57ZieH2K@ArhRb3*COY%2Z3wW)1gO; z*+(_)IohPufF}s(lJ-9RUz``E>^X{5WV-TK`)4rVBn_BYh!Zba2otIIRpLFGI~gDS zAMzpLfwuoJ53vUe^}@{bSr=TI|C=}Lx2Jxy`SBle+6lWR_HE!bW1gQ5>iaGGB3kAf z-93_+o8d2kkJ0~){@bnfyyTuv>+zER~9oLo-Rfxn;V${raBkIW;up1BuVQ6oCkI<5vh~ zQHOtoujMoNit{Kz$NEDT&vdYVM-}OeaD){gX2>V>CVtTMI)V6W&|eMqZFe6)T~(=p zKR8z#dT5J#sqVo~*wZ3x{c4Z#{Qug$`%!vA{YB5+md3*|P$9nw?)(7Q7bS9?`qm=n zoKgjn-g~_t??LPEi6-4=Yp zd8*b}FkCWS^+t#48EE|c4RRm1YS0z)EorLPxBOs?Pm`&jS?9>CKi#}8dsRHQogDwR z8{&0TpeLt9$oK6hjamI;4pNN7-(JOlNYJJ)y@Me|rnmS9+L+f%+i#-hIuhZyO?c1e z>vfw_tRr^xEavrn(vwbB*?8Pb+NI06nRxG4JHz}hBL1)CSS;tmf^g>9w;z_@^sFD| z;7vjO@%Kl+GwnNUXon|HIy>)*iBwB_CmOcHEKqwz8uCElSI#3c@q1Yg|{PwZn~Civ=e#8&}w z&hV&2PQm7PMOJ1P)JK}}KChs6$Q^M(`W4}i{!7 z9&+PT{4c(*KR|R}cBBIzM7oqmOy6|*<+C4t@O`$m-nOLs?6c24DG%6pz&cEc9-dsj zc$q_U-O5X!-`{W1_jR1F@IBTWB7fXBNX=UPIyQVeK0lBAF#xQe->+yu&xNIfI_Ar! z|A(VzcQx~W&OP4L*aI8vI>T$mOM%{Gp0Y9jQ{-zxPoAu2wdL4t*yji84iJ^2f$TFd ze_p@0-e;FD$F@JqYu}1A(=2Cvv)_7T|E$*Q|Izkf&b_}6x6_T`KhR!cI_%aLF}ogo z4|y@nNf$9!ix<)EMfNG{1r6=`1cy(eoKK$o0n870jGsCkV7{Lw>cKc4`&@rgON+sN zfiv`~7@SGs%OczqHO2k1-l zrI~Ij%EfZSSqn0Mx@vog{!b}o^dpWSag4sRKAz{Z9-V$b4zu6PaMl$U#?zhZ1Vk?G~v9kSob=lB~E`Wtg})}|EpTVSNqdMusvc>Z({h}cNJ=e-i* z-5v6<%kNBj_6_Tp;y!=esZkEpPb!GVa?itu<#+#y^+UYUzoq>g>praSENq|Q@bEBY zO%Hd^lSI2a{}ORmRU+=UZ3`dZ2iWU>L!ptcdyH_zIN^(Rbo(yE_d;z6G*yR1@FxfYL-?ikOcbotR1b9tzrYS*DNl6C3VxO2qa* z_$w)gmj!%AIfo@^`xT7eN91~zum@`NLHC?-L_F62K~fmZ|FZ&7L&vr9hmIE6W)gCz zU9HwWXB))U_$({!9@Cfhz0&t+$ZDUj$TrbII;ikhV4tA3IL?11^1YgMe$ZxTXXl^S z$it7(lugL5+mL4`OxUD3hFpn`mzwmDA6v^oF}9ES8?Ij=KWH+pFJ?bse!%!-|9{T+ zjQIWnc7Xe4rQ4UI*e{6RVV0ofpF}xUtF}(OufM*fBqJsQ<_k%_74xm{L*IzAh#E|0mPHbPLG|A?%}tDUG*A&MBC$hC~xJ=Gg(*RJ+?;#A2F?5 z8?Icpyon3`O()H^lfca`-f!_wSkD>Xc{e@mg9q{HV|}mg(5t+6xOgxf&moH13z2Sr zuaEnOA6Jy5UU&8;{26=+-!1JQ+sS%j$Lw10vuA%?wpqdb)zhg+H_r^8u#dxb`26LU zrRgIMD-rn_{fM5Aei)#ybIPTkOdRZX{~_|fx$#eKy&t}yog8O5>oK-Vu3nCD_nZq- zEbnmH+1-5C7`v#-`p0~i2>xQ2)Rq_Z)E8f;6!aR#k!Ja6V|?7i_abr_`%3$zL-|D- zIWadr_Wf-j9To5Yi{qt=@hDRL;NREuTNU}DC-&%b#QdlPPrmK;Q*O4>1^l!<7ZLN( zPcK%hmHqjs|Le-{Mbod0^9DJkei7LxGp>6T^GPZO;+3c>!tDoXsuA{pc0z^RM*mDj ziutJj2PN?!r+a)1N52&x#tVJtdynt$abP~(Izgw$E!XX>`l0bW7H z6bBT~aLnRL#GXPwG`(9s6e2p$Fdl4ErL2v4cMeyeA0HC^pI`{X=Yy0A!d*AZX+PGt z2gbvVdhheU?Cq!N{#*sc|Hkxbmx<*}G)Q3mUN5YrAw!R>v6rnM&A$>cpGGD4*beaX zsCeI=Ma<(1^e1lcwTN5~z3zNJN8f(Oi>cGYed)g<|3#)3;nz5u*GlR&IZ=Q zd7bf?Ufs4L6}0@HefHTK`ObUQ3vkHAz9sy&`>8v3fO#GB8Q=H$igVwh{swXRQ@2kM zIU4f)2_IIgvJ$;@a404itPD9a8x+vYci%?(FoyV!a*K>Idjrc?r3jRu@5mF z)S>?i=Bo#X^JR(NUC$QS0j>A(G%a%I^!#t=-ikmIo~zM4=@@@1VV>=4HFea>^-xox5x zH3p8zusJpV&E{|01{{yo_sqleOM=)71M|In;XOjR_pG<_m2xjZ8^M0zm|@$}e|4Uc z=tfO(fC1e0l6r^uEq0#se&&s|qlg@5UXf?dnW&T?X5G^K4v&}Uw~BR+`xhv3-^Y#iPWpt45Tz3z1~Gliom;Wb#uUq|AIE+e9zQv>e-JB447ox1aSP0> z2lGTiE6zon!+#~QYWQ93##MKJNVz``P-%aM-bXCl_`d7I=Hoaq9mr`#im@&XLVuwD zOZkFvRa*b8<*gX^1vKKYZ+)`YuU?7g*uVCZ@$EnP#{L9C&Y@rK8|2fN2CTuvukKaY z0adD?%~x8vD>6;Gt&rE4Lv;zw<1>-^4-CJ%d$$wW-Z$Sr|JRPDoL&6i>wWSm)yt{o z`Eq{PZ$Q@}EZ5ybcV5NzwcN^Ek>lSB5&jDKpHiMT@GIM3-n9F2`utl;}s=oAxYNpV^K}^rrK+99q68pxIs#^KV|O z6SV!3qld@i3G?wb@ip5jFgb7MpFhJ>PJFS`>tusn(CPmU*K3|edO_3Bru%-rPy44{ z-n)4I9J}Jzd=WQ;96IrP!~&Y}cNd7^E4n|xdRSiR`E1a)p3eI#P`zloaPIiXcKn=; zW+_uoKD%mrj8lHnG{-y-{i3}p`kwj3c!Q=tb`AL( z{wvn3lgRI;)A1qes_~xV-gM%7E}-==9?cQs1bcB+MLw@1JTpVMYc$aNj(1w{JCP{ru>vV%#4uu5ZPbiGBrN z$2tZk+);fPBWV$?*L={EM$%-q*;n^YQql>HjboeAGbS9(_7&k#`?|-0vHI z_aE4IzK2{9an~(!(#3CgT;m70zWVr39JB4MBz*kx<(J0ev#;lE)?f#$$Na_5dA~6~ z_&ek#-9&wuhhfN>|I4qs^#?w;F)kd}YwQTxVSv2+kk9lFwDjj{R=;X{3Hja44{&24 zZ#sT_#GG{K{%eu#U8Kf3!-ev`$euC3tI7A{E53V6`S=`DC)Z&(!F|5NKV;i6;l)Hjln~X2T8wQ?;yFTW9X|@i#p!(i@ zEIISUlydk_|5pN2)!if4>4Oye91I_0Cs==u&)hT%(cs2CTe7?N1A8+uxCiv?G27&mN z`Dr?+S&!iRsKncB#*>QoxUS{ibT2U2Y;Wbi`E3x;BJ-+A+oK)$MR}BGg#U4QwJ^S7 z*LK=5k2O4{ZFLhwPd@o@rE|^HRAa=y8h40wE8pyI%pmwg|bVne?37q0!H(b6Ij}dSw zYu(Qi&F?e@o+vL9{>Ah+jcFNtfuuF#@YVPjYYCDu1sxQ?zG} zUjDuQhaJK%!0^9K>UGK&NIw4v2mA24s`@@(uW85Br7x{KOyo~A-p^g14?Clt&NB0# z&7Pv~6ZbNuWI65sBEr@0T{^#FZvQQfH)mbg`mt?rC&s>5>P@#?**;v?d}Duy9H6~j zhq2x3*RR)YFU5EgtzJh@>2F5=Kt4#yX=3v~e)f-gpn;}3{TiBmDsKX**B;OIh@HlB zHr70%{Rxf!78&<}_3IATYvXB0O0&-N_}(~WHx{IkXP@w^NXK*7rhki~G=1djqUAY??n+EFfcf}52RYX} zG{0;1VO0mM{@_`|zQBu%%jbr>|G<3I2My_0)4yGsF53*zE8=!kWhHii>;5J3Pq|xU zYXo5lZrNB^P=EG`U)mms!+YD6>QEB&-{q=q?MK#arE#AJ&hY~nAG?_L0})u_!*~5; zdJntrpNd{@SdtH7ZCQa-cVRh5WERNx8O05H!Fcp<$Zz@0@T1SV^MO zC-p;&kA3eY^1=KrQPVl)P+yDl9qW6PJEf`(oc%TUX1$#RKP|Bj42Ogt)35uKDM!P2 zd7SUxuQrUkrZ-|fEmH3XpEIr^p7&Up&duFEJ?1;6$LOM}@H2dqi~T3NXcwM~X}G+# z{QbklT_vIjTl(?n=#$S9dS8D)4j-(s&l>7`|MH9f$#&s<3;jsDVXsI1U*6xF9@|T( zZyx(v&ChnU9k9=1JRueX7x?)NXM6EqlaUW&h{Ewa-9=5bU z@~bbh9jq4p&O<}FanG!3;;m2&wdG?yy@ZCp`=(b@9}za(iZn~qgU=aV``#fJkeJSV zc)Spq-Mtbo*`V)pP6s3rH%H{7-nJd^LvKXv9maVX{sYrTeZ;tD8Ej*HTl5cqxesWy zYUxMyM?*g%rUp&94jMfg9g5KhbcJcKH|6 z<(h@IAwSH{w(eEE3IojcFn?+NMB;e7-P#`0U;QP~KH705dXQMt!gky1|IwrVUoj4N zZh8g!Q+p;yzuJEZ+Hh&A8GeCV7+!kBfKA!~{C{4XDo{2`c9NHNoYM*?&@&#U;#lHUTzS9W*FUDK&zV&1~$4%7pIetKBrkT+WbkE#& zVmMsep3k_KBxMbLfvcO8wXDzoGH>An*mchj)oa5&{~6Dx-T6=Y8~(6z`|oAa;0=7D z{x@Bkvl6Y3{iogHbHrZoi}U>m$I)!OL9RTcWV7j7q&dHdO+j&Al0ME|6{7 zt5*4ipS>ns)a$)?2S1q){T=ciH#yiip9=kdcf)r;)cbtct|lKocbhfn{n`5RvLd{` zXWkCJJV(!ve$%vHnjZVscQx{Fio>h|>sdFiruv-lTL5m%u<9(IdCVLTj%74f_;uOgiZ3#F#7|1fYq2wWltd=7ih zEf?QGd?k%~cwsrFv-5LtHoJ~;a_`)+^|F;+pIydP+hg3&!mWIRJ=DPO@x2CU?GM8_)&Sqacl+@|vz!@@ z^hhGh+EekDkjD+@b$%;%&v?P-?7QEH1J=()EmOv#0YC!gi;*{5&c;&*DZ7Z>AkLw&#EVpQv!>Zj=C5 zzcGA=9Vs%8ti&1Xha!47%0YAUyl{NXD)8=;Bl?x}XF2+|^uFSm<>DF+#zT{#o){l3 z{f$C~X1=>_=^^#M@zfVJI6g-Y^8OgXZ#iA37Q6d_OUoJgF$|XGGaMe@)L9ernuhdX zzo9s-QxZ8xP?^5_&?{)f;2YET{-BC<-Tz|xsFP7aJ235;i3G#v$$JsnMEg6RZRr=( zSuOe<*akVIKB=K8)*I;`f7)$`B^`2(=6Ywi_xy{<1rWWBpQ1J%$4f-{q(+ZnPp>QW z89(tm3}T-MbgZc&kr&!xErG&5cH8TS+a^S<7cA>S~#L{h25&E9W8`76s$dk#eH z?T+s3cJw52vP-{#uV3u_RIu5V?E&1_KCVC6Zd@ZA{my4W=F*q!EAlzVZ0?OeIv(N z>GR!g{#snjJ9|LApOYVu3h)j`Xuq$uVz}k+aM1TTW;AlJ?lFAUqVq{{JL$qX*SDYNC(^BWztiu?y^-Z-`uY%c+u>o3 ze7l>oJ_dSzNn9>w%=hzy>t{z#8ub0cZa!?#%MVNTWrOE9BoBm)~+Wt;pvy^#SS5*_cq1U&*f^UA{~3 zRT5dxXpw(Re>OFU`kz=2^?wO|gq{?c@1B;_^Klu>*y44bX(!mO@I z(DIA4_ppeXna1P(oo`do3=-Ksj7YNQMt?HBr%!XnN6UO?IyD{>VM>V|u-yG3W{3U0D zVNE%25cm!4!*P>8*uNhizFj2v~3;P8<|F)(ayEuP~{l4<#BL+~-R_rV3(avs%2Tudp|dldpS`^Ief;+DMWLRe{^s-cQ|pEK z8})75m;VoA@9*QtvE_RPleK_ELXfq7VgNmKCsCj!Q@HsjJY(3^Q;^7X7U(TYjxYtT zL(T7~y;A1LNOL9{hbfw8z0X4DR$0wpr{^F2vQeebTZY@ok& zA|vC+iHLJfocNKG*mByBW9=_J6xDtweJVdmCAq`=G!RblPI6B7WChmYGZ%%m^sV8E z*1eV$e#^Vpiibbs7+UB%UaNncOk$Yd5 zAGA{AlW5dE{TjdAWNQ8F&&>A}zghQnX78weGJF-T`KOTlJ`$o|OmE{}UaH-hW3!*eoXH?;j$YG_``OKn*c5SFMh4HZycoA=jvZf3m0lP*=4cm2iE@F<4^m$ zKhE>P2%}-ZhnSsc=aN@SNA`DxJYrnDZLrbz*olpvb@FEh%C$WTj|?1@3w^N{vR?X& zQ2WshPkLPPMD=oxs}p&y@0l2lK~O-mZK@P%pMg;GBt7qdiqG`j@{u1vG&3~|ca+EI zlV6P*pTZgcln*n+%FXxN*AW`=bZ`ml31FH~Pvl2Rf8CC!BL^MW&@If^f1q&2!LFcx z-+%V@A=2-;X8AHjzFlfR40;^vx3sPokzcD%SqCB>WMg%a3OZI~^&GCc2FsZc`O$I2XBve61^r2f(fbdp9{L--&qX<|9rT@}UP^hs z+Oh%y->yctLG?mDI>WMKIDL$j%Bk~+0o-o4=n1VmH22at7dDP|dGb*gd(27yJoV($ z{kT~#!R|vZ6s&J-@oVIXr{V?ge~TPcJ-BaTsP~Yo*m(z`k#ZJ43APY;x~xzk5oYQ zac;IX3_ne&CHn&QQ$p>0fg^qALTpg-K<(JbeZISGd}cpi&ykMo61^w4lhR{2Fdp*c z<4e_*;~?Z>py z`olLgSfpJM&zZf4!ZJioDI6_i@v%oXdVh-_S*Y`nJSE*mUeQm?f1q^roaLC6kbXwG z*qt=I%Exi=mGG>u)qtXzhE0_(&1LxoRJ~}jhjv6eV>wfN)QqKrKX+^N;L2#OcS;JL zqhB%)zt{%QDc~dW?yYF%dnP~hooMlq-WPKChks?;@bP$rdz6A7=}g8N56yRbJ^1wL z9r9h{N^<@W>_CSW`hW`@O?@Dh8*$*;H30FMP zT4zbo-`f%o5wybpzwze!|7W~`;)%aXU-Ohd@^hB{iM}a#j+(ae5^tsQdn=dKgXgkW z&icN&=TY_rvCyxor`LJT8}Wy0a9@ZoCGjh0%&~r?Kj2@!7b1;6a!DjV>=SUvejSCA z%uMYrGf3gTlD_DY4_JwYTr_yxD*QbEr#V9;AMJ-xek{XY37I~cK9#*3T9ni7WAuNs zU&B++Q0}J%&oN_NgN$FoGYTYB{e-qYY4Jqo#y^GE^^f>_^gaUxn&@-ohkNv72b}!} zWukEW0JW!l#B-uK-c(!os=-c%oZvaz%pb%T+*%JV;T~*$v6X807(b})Ug4Mp%ar~r z`!}b51ItLiXS#iv<5yqk9&z+-Sw7=F8sQE5@ALNB^mM`feC+dKKHek$3jJK(VTWJ` zTzz-{Nku%w0R8~i<{VK>k&Eb!$B4XI|AHQYJ{-De`Ix-^EMwgu)%X6op7hF>te2Bs z!aPEB55@0EkMF?^3*z&+tf}6A|A?F-J?Vd+6iGmw6_j7!p(&^j=3A|LVaH7!$hoLH zq0Vcm-po^NK14GcVs@<+pJ|uzV}iU(NzXaPncmk$fgs|d^FKG*(@ z6fDpTTMw*$_&Zdt*LQarrL*-5y+`$9q3y0VJ0NF$CpaN)Rgimwz8&u) z{bMru^0A`7JjpUA8oRsi63PEQ{lz7o57#Okt-C0ndb_p$gF4|o{0B^M_1=_zXz#C^ zb*jTk>$SY;vQqhtko%Ti7*Kx4eR`jCV^XkQG6y~P)QoR~5Qn5t-^GdW3H!Ac-&o%| z2p>0m7mbpT|7}kC$LVlLF1pWRqI__#*5U*1ioI~NmtVpq<(r1D^Ii}ArS@;eLB{zf zy)QkW^yH5gu2!-W*;o1e`k4pu3wHvj_f$Tck5E3&seYW&&J35QIsJV41N)z$M`Ko^ zC@=ayR>VgyZ1o=c)80o9fd&2VxL5kXMrir~#Gi^?P;ef&m+3t_PXuzjYEhBzoO3!t zmFI++aI!ByQhrlD5TW$1@beVZ2QwM|FmI(}3eWnVaq=iWu{>dNRBpLQd*X&Rnt9(r zwETU-k`|3E$NwK0;x;g(7$$!^ncBH(MFg>MgrN(C9R}Z^F{4ec(j7uYznj03pFWsf zp!m%5X&>Y~IjCG32SVv#;gRvG=bi-(rK|djriHhnwVzfrh7;v=iR8Q9!(V6Po$))* zssCWG>UdD=brpQttx9P4$%pSeG*V=fgZRhp3VOyB{u=d**_)S6IAKGF_{i=HC&XR2 zRX*D8Os={YVDG7y{4Sy8rGKtYXmTBTCmOYV<&pa|%gmz}WLM;k9zd@bR= z{;l|H9J)f;Yf2wBTfUI?e36w|q35h)s+=>v%cpWm4|-7VdBU~6U`T}v>Z^IAQ0;a` zJ;yzti68h~78QKsnw$q=zu(K$u3AS?yLLL=UTk5<%1{F3MpU?Cz+3yD&n02c>bcf0 zT|)cMoBeU;bph-H>_>7yTq>W)#&PA3TWKbgWvTGN;49Ow$H`=@a#D=HDL2iB{?5ri zv-)!X*P!72KkAot^j`gA;|G8ZYon*!yQlYp_@MWbta&duJ*S)p(NxE1SN?oZIN2CK zHJ*(A099_y<0}xozKE2cX~V)L==o)H&joHMlaEZFrwV7gb+Zo3&Z~lcy?gll^Ste` z1DN-qZ!yo&YUp*^Uo?I@=h4Tzd4mjZFPeJog^1UzB0g@#r|Cs(50=X>(u>d@ZM}0B zuFYq8LxFtMck>G5<-a_PymG;=fKApUySwz5k=+dsxsD?gJL$pZv%v#HDwl5qId_ zTyo=u-e+5gQ+n#pXN=_c&~Nnp^XKI(r5GPbx1^D_#8m5-dl{SxdZbSWI zYla^~@i(XQdza_)BplRty!Y&R@VuRb7~Uw}S^2Z*A?M>PNJ@$6V9ds(9gSZ7*@kD71hl!xQ0PUWMW(E~Ytoj$o2)W2D$Sz{Lj zLgeRExellAaB)AW&HFK1>7{x58NZzVu-R~LB>iBIBB&@g{;;9mCwufwz}~^X2Yuv# zg7S$JPk8nVU|;gIK)N}nc$ifK;R*p$fei0OBps%;bM-UM+rq~R{{e51FZWxPk$A)L zc%%AYcRzR3kM?@2cBOkw9sCemgzqpwV#{%UD53SDwP%Aj*AYId96}W*@*IRFJ`5Iy z6D@n{6z_?U*7t@p#iO6$01=+|Rbl2Z|8MeBxb%Rf>y?j_UzgG$jV=AE_2+U{Hu1A2 zJ@{eivd=;I4nMV?bIodL<-)I(l7jf9_T{@4mjQn8J&s-lfA~CUR>4R73tQ3bkDU0V zkiTS{gVO)P4*jy=y(x^#Nrz;;ka@e=0nFaK_)GI<4i4h(ybUeidi<8}VS(CTV@SXD zlH(XkhVW0Qb`UB(A?ria9F%{$KtEt7K&QG_W@dbB_72znts~Q|H{10 z!e5`T{3pFfKYuA?Io{%-hW=X<@8(+ho!9NV>#Gqf@<6ALa*F`4sQ(5x#W-@zhRLD`-E#y)f$`2SA6SRQvWhKP03)s|K5W$6R-D z>KAXk!npgpw8?z%6R-dLG zS6A;E`({^n6rSQJ7B=(#{P%kswJ$(?W8J{?zVv%;d|+P~;i$1Dob%wKU*YE!c1rGp zC7$k&RQ_xe;JNtec<&G7G3E8}ZM_zDY`!1F&v~RCa%8Li@*fG$;|Vj#Mp*x{e;??- z@&oubav1>*qIan<`uy+%20O_3ZLnsY270=sT#Cm6s7GHjD|Qv(PdVu2E-LJS{(XMo zF6Q(3BE5+1Tk=n_2d?(sPZA88klJPq&PH+r81wTOJ%>T%EvINBl1M+@+zmB?a^1B{f9O3yPzD~ zq0*C|x*#8qA0sD~_b0s_FhpaERFT6jVg6&^v%-JFA1Smu>3Pfz>{sFiXYJYa>x%w< zvV;G%(Z{rON9oWV`l(8b-&lyh5IxPj@2}1&-5vE)IDYw3h^_{P^{zJO5^HPxcndvi@CE#B?jeEu~ z-Ad(Hv!6im2kW;_#rMHrL8{ohxCPZ7TrY^8Ezk$_bDroNnee#94+%0IqTK`U{Zv+< z_HQ`a{o(WFWsbh*n!rWgPTT)d){PzL<52Nqe1EI=wNFjyWfHoA^rgRbpbzAKEkn2_5Q=d=hz+Ok7Gvp^O>r|kc*#F(QLz4`M3_jSJV$T zz((~ayN!b%j(&2&QpmlXHKCeL(Vwao+ipxxcZ^p2CY-mdzj@!B6GhJ~^gi=^`T>Qc zi#4dws^w4bNiKXyCK>1gMESE;?} zISOZb|4PVX>P0`~mr@euk@JG~Myx%A1b@zHKg~kxtc+W>XBmG{`=8@<3c zSZ;IPQ~o*W1d}Hz{A~8?cm{3?e^UDUZLl`np^!z_KQ;U92cvyx zo=;El1`YB7QVT!FUzCaHIf_yU8yckkqBA;%%DHBpPssia)8Cr!TRqsH?~x0h`iiF5 zM+>I{4W7<>U{8paeXaOR6Rs=pl6Dh5ah+E}k~s<)Ko%~2qjts}YW^VYXA}L713T&u zH@qO42K!00?)eZ+y9MFP@>NG@_BrVyMsAfpW;TAAN_w7hBR^OuQ2CC09>&VehVVdr znfDS7*4U3cKd_No&$*T@iXVu@NAYQM%RH2JVz`;TR_>AaYPXX6Y(S6V7nXmm>y-H1 z@7LIO$O*mAu`II(a2KtO@9cjQqGzmK8}wE$l}G(u6`eUmSAm0HW9VMS4+7uU+KOox`BbX%YI^&L%5VJlp>!$1Ff!AxD_FD&4R@{-}H?x9Km|6(=eD*Zv|0YMm(3F3vj_CD-`z zf70x?J0s62fW>oq%TXTpk!Z~$D&B*y_Pnd}n#91J-c9*y!H52YTk4U6heg>DU(gq! z!A031en7(e_)QDSjlbCVw;zA`k9z+F>kmp7eapCvzkf#tb#e{IP^99Zx&z9AgEl z{Ay?Rcg|IA+?|xWl6_?5|NM)7FGb&W=08o-HZ_=SM|#dRyH^$I;zzcAzvAj%m8#tegv356WUoxoiFohK8@$ zOFg~Ewm%nJ4d2gb;cRO#H2q8eu=7`>z)$I9nXuA%`Ex&gEBbtHKSSSGe%@O=$2vmw zL4RhNZ~g0lqS1S_FLI9eITxdR2ZvRISF0x}G|fi8aM)Y&-*X;{38beVbwB--en~s@ zdOacYgAm}e#-Rr>*UTPc-pzaJ7g;9$@fg2Yp0JGw%E_KT3iromJm5d3|1tj`k0(_N zy*FV$CUP0SSty|CUN#S2pfCe8=if~4V|F^x@{b6y115S;`d=tM<{<6>(+AjF+X6j+ zIz8#{W}Z&^HwvGZ9p^!sp;W$s4%nnK+3Pvm2b_?{9gBzGU(cEDlb*NpZ$i?u_vHYw z=ccC%(p?y>d{o}`;jj`CYkVYJ1Ll>Iv<6lTJ`RcNOti?pajmVa6Hp zD#Ei;H2U4v<(dAQekQ(!V@Ca==NaQm=v;HokL(VW`b}28G9=fl&8VyoT(b^{%Xou-U<%fSk*za_b=Dq1uH1|4KyFFq@iocJyx04+G z&M+IMtgm1O%pA1zuxP}1gK1VOp7!w>)|}Ua)_qn=XZ?pAVC~Pk|H1kL=@jIv?yLOy zUYYq#IM2FNxsbMRgpQ4i4K{ppuJOl--!6%*&)D!E=+SKZV?I+QEYEfe=HCth>_Nc% z{|-NeXs!$3Uj9P%L1P!-SO{h(EEa~8t3v-@UVic5E~++W2zG$GU|ZE%m~lW+h#9vM zGLH5s`X6z%kG#h=wXM>BvDs`2CXJm zy0G{M*0tt+DRNu#KgYknTX_((m2r=LAN<0&4$|kyW#|JJ7Ph_i^>I=Vqo?=^tY#{KCVbga405 z?1&cJRzA=p28M8OlB0vs2s!N}k7rT+5raV3=?Go&5f38$9k6iS&!TX|r%OqPak5l? zm|2t}#~*>8PyEro9cbnsD?>6oq0zggz6%7uPsi?dg=NJiB zqu-(sF#(^Qts_;WaM|rGVp4Ix)MDV^tF1%9PwdmB0~wCnm=x&C&8^Bcd;D!;{F1#0 zjpnd&)`xGt(R1u*!ZrWjoBYMD=_nRrlyZUogz!i2ukmXY)Pwt^zwsd5mi7o1Uo@5x z?N+eQU~vePSNC94Jm>RcrvK;YiHM!TykI7zolO73&yLFPnde912R5RpzS93nFK&)g zp~kh43fn1rL84zlOu%rg%@V2o%n-s-@Di{qLmz`Jbf!WAe$zUFQ91 zn{7~E<>-0DAM0Xi8$UDsm2&R6PXyY&V+Fs_`-~g>036FnsqOH~Z*Lv#M)$jptqS|I z@tY!c(fjNh&YaWpo$UvScHcz`jU8qB6t(lK(!o!CKmULp4=vApx6y}e&+P@`son|? z&Ku%a+XmDB(mw_D+?F21U+KN{Hv129Xz{thn`=GCZ@(1Qi>xD@p6C<7j8*MsCYuz zcfyhk4NtV@H+mnp80$BoML(Pe+FRuijTvV8pM6xO|Nj;Lro!KiMn@r^*E9X!%gVX> z3EQ}u{&KbhES=bT^QN%_w%Z1$w1?hj{l@a2@Dt5&9S9Lmrbkr{l?Qjgox;`cg%p=~ z)RTT8{$NiZ)jqPT3-q__#T?|bAEOj~uXG&rhiKv0gF?qhQhe?INl8cXM9Y7lLpy#2 z2pbMUjaN^;?APy$pG@ETD%Wz=oX^EQZuX7#xi$Q3_Ty5Ih4{pNfy+FJ+GlxL*|^ZW zA|_q-8Ry6mH|D-@$rs)4F5Kg<0CitmA^Eaen?1nyg71Uufkl1rCqF@jJplW@a2Hkk z{we$9(DUd8)AOpA=yyy+(u;`v`nh%>$C5^|UA6fv&oJ;l!{>cLer#7SBIA`=4En*d zF8B7%Gfr6+n-+}I5q{qk>|kFP)C2Y*4^rg8%JlHy^ga3m6T`rJ%tw>79auNL$Id~| z*BSd7;_v$sc0K1*Kb?2X$^ZKLYr9_%f8H>VzYki!&++fihRPqe{Ycnf?2z+0etp() z$X|9z4$?o6AE}+Yl~bL z%Xn6OZVRn@x`geULG{u3T!oWPsqpKKcRBg(@Q*8<%cpmX!26ipW?%8gpn_&U-$O+1 zay>Qrzaszo5DCZ38!O%0=l}SRLWVK>53PJN(e5R34?N;%fJ!!TwiVLwDfvN|yr;J73#YQ!c5~sv|*v_pbPVB@V})iTI)0cn)8>t ziu834s>*TM%dkticWb%(CZ!zM&8$CB0^1i8$p^it^5JI?+Pxqk^HD1w{C&*f6QBJH zDec5Q{YUkW!FLP{AqOxNj=PIeIL5=gqxf2%6UrQIaO+d((O%!p<}dsMqVfNke$@F! zrN^=P5L;MpndB|{69yVB{wcp{{j+Fi_JAS%mk@pm_wMX}Xx1BaAE3%du{xf7vD3Q& ze(tbCLsBHu+vq(sZuCvgbL7HU<@#Tfp_Pm6&9txdf4^73-^E<#oGa{@LlC zovW+iFbA3DlbZJDHuq!W=EL5hWV3QF6dhX?`?&T;A@Xr5#7$xHmTO^5Pf?zcM=mpu zM2{3E*F(!|pVmr9^*fd671;%(=Q7?yZ=yIGe3b~NY!L9guXCnC`85l@&pcA}YBA3O zH0yYz=8Js1hsC|=bcF=Xk~@KNDc-+gC@I55Or_l?3) z@4F^`8H6|Fr*H<+_YoRBxfagZXe!k5wM#1A;{X>pr9TVV)*U17@tw?2f$HzV19D7Q zVxJmfC-if0(1U_c)SL>2(x_gVwn}A@DmYp6oUu?h(`X zYIo7{iwQflhtj3JSvM$HpHTbd*v*|p`O1#}eY zKIKXO1qTNs;}iLHTY%b^<0)@l|Mbc;Lh<{~0*JorM8emHMV7aN&Es>^@5n9Dwl0ca zm+~lGwmEjmmG#s5-<2Qt$nHIM%yv8T1vKj9uD}i$V}3Z&Y3?yBxM$!o7RUvi3(3Jy z{=obqm;6RvqDM~i*6>Dp5jn&@(G+z0fszAI$z)pB4*p-E$A!$dkZ(@w@CVV(c^_Mf zFS*%Z6YflY^4xHOzmnLbpBa5PH2wqJqRJILvgoNC|N9r0y&}mq@9Bwu1N?U4r~8Qh zBt(uYe9?PT258E$3(#8(7|(mMXA07hpIxZ=pwh#CX~?=4&+}xBezts8hn*1dRG)C+ zp*g0qs7N3C`cTooSimv60JjKoH%&BeQn?v+E+sxzks}qYqf8Y(+cxJm_BaMbqwWk> z$OFgw;@1gZ{w>W+)1J%D()Sq}yG8mohwd#__yKa=f4x+_`;;?MzHV3N{3G9WAbqn} zxc7i?ADHJ6FQNwu-aF41Dd$n?!Opo*ekVJy?0JXYZ!7JmSJ5o<0Bj~M|*%r1OkX(VH;b{`mqpucxKNL*uoA!l~eL6z#l%x zyHveUqwpbUf1dT%$I5$^k7EqDy?C)vxEArj+7N3PdF3bPjn+s91oyhy&Q8DE+I@tqiKTkS~QuFBoy`gla z_m}+&lpYa{xv)_@?N2PA$^Pzy=ntd+9&Z#MHYZ9~nI0TqFsgi-hYIO$ zR?fj!-+d)|I2=7wd|o$yK!^TqH1kJGhk3f<;f@;!S-wZ_d+9B2h@-{gGcb)NgFrl< zTmCv%-^4Gs4L0@@$JxvtkRGhiZ>ZfM{xN@6E3!V+@2244PyLSCckoT)FB*)w>7|vj z|5e|CtyB>=gNJl`sB&%30X_-=mLpA9R7fmLDJoQUAvj{V#ur zgBCy2(|rs%;Y`o^iho$)hn0SR_sdA{5j_YMzrn1d=YP!mnWvF2^iuh=?7#5v=Z5$y zm&c(hq+d>jsA>2@`yr1i;_==tf}ehh9}&)Qj{mbjzrVl##^!0Rvun^L$RE$4G1gZY zU)}z_&4;+h_23vU8S|(VIm3CwokvfuxS!Ttc z4LjiK_~>)=|70I4M?8)xzmMpDt@Bstf6S+mXPp7R>bE)R;}$;Y|MA#UPP0S7dc`?& z%BS`Dg7RoSP!QkFkyD;!uj4A|cRplLkskN7LE|UIzKiI2`2m#gRB{P>W$?eYnabZh z7jlme@8K4VswZX*_ZfK3cWr%z9ATLb`67L&dt8u*IOv3^)p^QuyAK2U3V&V-pFKYZ z&1b?)|7)Cz?$9uLjyYeaNo@KFG}jFw_jrQfb%gWX8y{Ov^1dVbIMsP5m%Ji^=wIiH zp5B)~F6aFn8=VW@AFzN?P@eT_PQTCX+;joow9m!EN79=c{!VYVqB~vIe?a`1BfS?m zASnf_uq$WZf6<)i(VIY|Fo3FWvDs>FJ4f&J*g6$=u9bbGAp3j^mf70&%fQ^jX} zWT>|SAE>sse;wiPjT-+pPAP90TjcivHqVoe;{Sw0UHA(IbIN;)cYgnb(7gY|ImJW$ zKM0*mC{0Q~UmiSvb^CqOFC1sNk4eRKh1{>fI0&2VvEn)REsRud?EGl~PG}F6pJR#> zA@bd5%tOkNCpVNs;hGOC{x`DcNk?) zML&+WC4Ps99dPuHamF=P&b15X|ICMYf51Yw>NR2`dJZ48ZY_SYPs#~#M;mfo@l5mp zg(X~{_MMLEH}+h1NUHuTN54?_DuT>wEgUg7&v{S!-;-|-fiFI>o=AW4)O%ig>ihb& z?ARQ8=RNhbeZH9o8D5#n+uUoS`rX~Bez5On;bbxyxprWkWU~px8%~=25`+&`4z2G- z^Z-`*Mo4>`9~d)b7NFG*6>{}Q#)FXNG5t8=7h1?;ex7i}6TRXm#9YV}AN9WzvdzTO zK@B_QBRwH3%a_ohHMaF?kKGi|hu~cMF*JW(WI{f-W_ogj9i#NI(iX%btgyRQ1fnsK83f&4}8(SNa@6h0hlJq&rwPw#IzAYlAI z`60a5`4jA$$;8Tmc^FkcHNQtc+dbdlNat-q)l=vgq5Kd3_t37T@sOk6zvy>6Iqxf8 zq4)SHT*PYQ;s>e&~05;i9m80hQq_4TkoPsjH>N8UUVLHUly*F&%JslB1suP;B&dCu|&^Y~o)yc4k>)-2;I zy~BQEcEyhGq=;V7{*L?xtNGlJ3(th;BU^u1V8^D|CEqb{6^^^xN0sN633}UcpV8wi zP_EHr>vQA;-`_2J(CvO+lc zwUaBH_l3yEnbE87k*7TW>OYZxj{A+C7cPm+la8C%a)i)Q(D;v5DabytPxT(dw^t~C z7CeND9`|gjTnIpw$NC%m18<53&EAteqIg@jvFbe+Hopm3#x_0X!fdPZlt279zEQ38xz^I`hYfm4?_*Z)RWD`( z$TjlgCz^a1*Q8%&#ERU1aWK1}od0?d-Ni7q_fGbbJEL#DXSl&XtLG~W17U{$Atj{; z6sr(_*1^ipdO<qe{`Kg8GV^Yyy4nGSIhhKh)gzG)g zbk{2(Y7qORq8!7K-orgaxkK`3=T1HL=jN#P)^~|K=}&o4$T<)5f4}|g@)OsNoQHgw z2zzB#ru6$RhMUmivT^kPS2Td0V~uVi?_aY$NAwhU|K>g7ZNA zP`mV}%GS*)!Wowxq5QcKetdRG(@_3ayW35vS3Mn}_j$qrV?D=i8VB-uWIZaSpWyF% zR5@_-Tt)Q4{y3Rd$Wg{a8K9fie_HVcpzMgAAE(M)?Y3f+*k8(6DhWq?xXo z^qYCN_-OCV=RG}Vm_0P*dd9q{YH^Oe>yijA|D^tO|MvdApk1*eSDyZ=^_PPFf;xGk z-Xs6A;xqqzruS+8q0&X{nZ1Mi@k%se&f1k@zP28t`F%k>7`Iu0e&!yqP@uPK*~8N3 zuXN8sZhUA^_aUa{mr#85SJCeOHSaGiJ>-Y&|8M5`1@rfBz7t>Z@9i4??rULyktzq~ z@7c~f@xNz&6qai*RepWHq~XhF|65MIar>`w_`-UY$@%$#^?qos5q>D((*ijz#JpYy zuq%Ip##?!3^Pz74bM^yD|9}3FUsQ~$`(=TC=a}Z&v%fzp8K>xd?1);(wB#G8i^s?D z#9hQTeqa3lRU3L(wTrg)#}&vKVC>qQ52IZI?Zmc#kq~{ye28(3-4ckWdy6A_|MG6m zzC-jo>$#R5>vk34j`cb{H@^ktLq84l+__mD+wOu{2J`>OKJ?x^1#w%M{`cknog@Ba zTfTA^MH}(Pd4<3|1~cq}+)(*L+j_zk*PQ3rBN|=~l-!GycgS}N#kZ^D%n4;DcyL{^ ze-=LOpoN47g->t1Js%AIJ9du6r?&VJFzgH33xC2arJvTv=nU&Wq2JLnyZfG{YwPby zZ)@pj9ZBIDF9qchDnIuB^#b%^CHnw@X;dW~t0 z^%K+``ZP7YB2@aslG}~9Qtp*lul4>7;i7-{3;0(?2l%aU_QTn{J+h&~Q9tLL7s{Uo zW%n^e%{TZ(#wSoVI78lvE^C)mj5GO5iH}@sFc{(mM9%5nWBLcrgC_;j@1Z}M{5n0A z|K{e!ivna^EIs9xJtOQ;&H`kgis^aHuXE~IVwdPWlI^J8m_=q6A+`=F@io6!{rH?_ zChR!p@}!yf3&k&`i@eJ`^qPxL1MPtPx~ypV1sla8EwlKKX5NqdoGKh|$fIz!t^ZkA zV%P}del*bgj{O0F^x*GA>H4kCqZD@krBLe(Ld@cBu#eCuDmU|iTG;JoJz)qj>Unt7cO{EN=Qfr9?d|iS`UUqTk0bqyYf~o`@>6m; zK%dw5*~%jWquR7x!?@01RH8~S^Yes@Cd0gcLs{r>2C!r4FD zJg?93EFASrJv5%mJH?xCw}h)cs)vO)$h;{KzJWiU`oW!bc~H5H=crd{Dml2N-WcmW5Uoh<~W(h{--##$UuUMY5V${VKUVrB244UXFX-7|`c*W`8FS&N zo=#P-tqdBF^|5V%UT2xu?0_SNKrTCg=fYR~A;kS*h}<$i!CN|1da@Jr96#Y)>8#U%Emo z$A?IR<t4at!Qz!G%G=m0DhJC)1L1zm zz8=D#ls}k%fX_9q6+WJI%s;S29Hr2sEeDyf52i6-5BT;ZA{Z#o6@G%E?Kls)kB)M3 z{cDKG7lt7ikZ8Y_2&Em^Qy}C)-V^;J54$ z4>Int8<3}LXQ>kAar5T9I` z(>=}pM{hH4KptG*AlG=04H=@9u4uaVJht5Lb^v~foufQ2ispWoK8~#dTK%Sge@t7f zylhh$<{B4Ut=Bl_*Ui2JribWz$N7Q#zUsv?o7p|ePqa|!3>eT&x(&^DEfxxA{$P3# zxn%mEX1T0rAGT}s)qgO{P2ZBtQQ?~-a*6h}d8pcXyN8y4;yCpn`hMU^7k|Z-($~H~ zL*@;_f56^Vyl#K7ta!h>WZyJM#9btP$4!IEm*Mn{`XT(p9su!k=((Sj*dd;EkjV&2 z_ZXOc(RuRZiRiDs!QV^z>=JasX({`+U|%l&W}f5cs)aio+(O)=UdZ<|_MY;+e;l3OX4$z6q%T6FuQ30Po_K11g`+MS{bl-3dhB4d+F$9(?o@vA*QQCtU(3C0)}NLO)mQhi zimprU|AXe9)H~4w$|F8)FvIlTm~|Kj4sfFg*ULs9P8paMe)Z@L2ZLjSJM4{$^02f!^SxfaWnGho3md!qrOI;5HNoqsa5Z_{cFP4+KX~Mbx`@8#; zdK3N1i7%ORqB*C$HkyJpbUhL>4Qk|cN9VE_MfgiS@Ac`Yk#Qz@8PI#^^=GwELzj9ctt@+;aOcc0!>ALw_ZTOk?Jw=V;-n{k zKxng#{Gf8bDSPZ=sM;eL%;0jlDplSE26;|B7`EJB;4UKTfqKrlK(k*$7!Q>0BNIN4 z9l-Sk-op>cvy}2`-82UW^-oUp;A$KUcXu7bI4@jr^xHB8@yBCFMC8)rZG;cc zzWnw#@d5W;Qb9k>Sg+!*>2&&?=tt~XukfcIe_Rkx`%Z=8U!cFM9(sSy0;02nN{Wn7Rk6a->cCUpK zc8;I(m-L|FpxMWVoo#Z+q2L|;vpoJtzr^ofYo9}}C0uY_yi14%z_QQRk zeeUV!741WDXs>{9>&%3VBh$BTwg=JorSyF+fB#s>u>{gh6OA+F7q_1HawD(4F-?``dZ$X#kZM`v5yb_i^Em1hc=^ zwS~Lnl_5Q#p_vy_e%S1VW%-w9P<)q3>v@57uJ67PP4}Ax(lNP7IUhL&HH}c!Eyf0*VBoQKZU4So7C}^ed)4dJT^L|U*Ju0{Ol%Mz^ls%A3kK@Ql8@*qO zo@#$M`vPP)36T%ZkcbT?7LV?;%Xv=mq0gAI?wR#0U6-1F0XYo6bM8xAE>#Zf$@@q- zx&NdaNgcbrbcy_)8b7hceR2aK=aUUJUQ*Fp{NNyBy}^#wq4>uy1!<05niNUFaE_ql zl}BFzwhxg0YW{S-U(dP!*k+z$es!v~chLLcmHFXshmD_pG8~Np`qS(}^!f|-J*Vh@ z&Huf|E&S6s=JUjtIeO{~%dcp+_>h_2V>qomdR+VweT1=|bdZZ%A>DN9+d0pVwP@`} z3!vu__xDnruRJpSNWFA zkA$3qA)mZGd8}9;$lC)P_&NCn=Ep@lZBI(}4T3fP1Vi1!1HGPNCn|jU-5`aZI#101 z+zbR{0M)W5VdPG+x3ylf#vJQpN!kU1=@#c)Er^CH@3T6`AGKFD!Of52?9enId| zG-7h9?!Q7Ew`x!TBC?N3(xMg0rogL)v~#3!aRYhg(Ng*@mK@DX$J8{vwd zr=1wC4*|aSKkfD^+GjrJyILUX{7T_b_mL70Kg6xx<9kN?g7h{ou18R)^V;-5WB@3C z#G91||DBZwaXMH2m^Fmwc3*o1ib+0?=#^E2VJZtf=} zdE)aXSu4D*xi1X-8NH|X#TVWNgBL!-|LCa?*CpSmK02nN`mJ~0eJ7g!;DvPep~|7- z4=Lrsejke8j*LXZPUKbkJKtevFNbECnR@1ykIJR>4W);;xK}CpncR2uZH5^i{b_2nR~w3_Yhl- zlsZ{te0YbPr(86{Q01ljH}%C1_S6UW?!K^kI44^As-c-bSa_q)RSrGZI+7v%G|TvzODfI-ma|BHqvNB=neXb2<*)r1;s@){v=bcaNWReSYzGq} z4{ud&$+N=ryzULo|JdKha&nH|XFt<1MUOj&pY){9g(|4yx#n%c8_?p>!YMTI?S1?v z>y&hvZ}2>4J?fA31LbG)W6H79`C;n8y&;`Qd!oji%I{bp6wZEV&aE;XXy#ejqPBS4 zhb&C~LH1zOe$~GCG}!&eT=)yLhhN;Q-Ot-W=ajnvJtuoCq8IP@@PH8ig6YdS<25qB z#?E8iy+R+4Y<*t)Y6JSxhuNbL`M3(`$)b31laj9Ve_;G_K66trUa9X*j(+Ov9yj7? zAEVx5Kdb5e?FmPt$;9&>BF^*K66Ka>A8TK{xG=$T*$&+DvYGpp#&&by9q%X!4WbE@@LG}CtGBSt5pzvn|+ zLdj<#)9jVfYvgRS@l`R7M6M+6s`I_$#fnwhkwmJw%_+b5ThVm42t5dn~CrtDlbFzhP&x$K}y<)ObT{BgTC{&G*kHYfebZ48c{bT!rehRFTF9y>JP?;U;_TKI?g z32V(akhk!CCRDo%)d4L0jObH~kAf7UmO4U)5&9$G?{D-A-H?9BJuNr_R6nZcQd$A? ze&mvfUAx&Ea`TA7WnT(8ezOwlm-8O`P#9;lFZb3eT;sJM{F6^V?W^5T>p?Wbe5iO~ zv%OA9|F`3ad@9WY>F<>Ax9PN^oZli?pj!V-Kl9Wt(7_65wgGes^p0~c(c?LGbW?Ag z&s9A1?pL00^$)}CuV;Vt56yenj}{MkZ20b-(nU<&C_k>1T?NK1_Fz#Y(*K`)?CB>j znZOG%j|Zv`Y&oXj;H~a|Qa^3xDN`m6DfM$s--Qq+CYPLZe|FU0^e5p{+R>5zhKUYb zHhUnFFY8c`6?`bM`zquG<2xu^{ZTj?HT==NwSn^E4`6>_Zs#IYKc+)<4w9csLFEUf z=ceDwmkM{*Zyb7FfG{2v+$n87IQo zUjEcTyVlbHJ$T!k>tx%E*`3tb>^<(s?28Y`$%h=o?a~kMiF-j9HNw)lc7Y$h-!0Hn zmp%3upx3$`{DtT_#$|)Fx9IGIj&+I(yI^*#ZC#%AqiNvzc!FOM)H<=!xfxHUDSBS| zzcRVExAFR#0itl(e~Nea^y8;`Pki_gHGlBvSLBH4{SEeM3axWAIr_DOL0!lWz%l4a z=WyWOH`00g_F)$(ANv;Grs)0o|9#jAakE`H?1DEaTz65m$BcW$pUCfHcFwh}Ckzff z_6dYG+wvDF@z-3WBb;s>{)3ABg6!AfIs2tqR{+`AlM@a?qhsA7D{{*Cm{eLaN^jJMfLsP_WlH=yW@4JblB18;Oa znT&~T<4oZ!Lo-jI-{bfcVkW$egiFsVAKVpQ`Ec&a>|qMjQ#sgf!~7Ec&iaE8^Qy6r zaU?4KN7?tF(>*m#sB{#M;+XtpS<~hfjK`(wcb3PJ>#Dcvappq-z2+yRShWY|w(qde zb`_Iv^3yBa&$hoPUW{Y(eu`gcGEw?RQ2Dz*mybe@PnsN~o@SpoilBHbCzySr{6#Ze zvUoGjrN)-E%S}!=_h4K3xGu-+6U-+oA98%8{ADjFf3<%K&9Yi%bT+RWTI=viuUThc z*zY{?#CM-iuSNZD1^x3zjDtoTqn8OsE-Bt4`wCPJmc6WAoVUjgbfH>i$)w$j-YmMqEV~HXZ#$Nf4Sddzlgtl zmrr~;ZnxAn`DfPi$X#|p3@wjeU}K2CZ{(5tq-Xlj*4=o1riG{HbG^6ZekUPzaiV_8 z{&kbTi+OJz>0j&hFSX+d=IToI)J8|4r+~sq-L&t@)@ym*mERUU&j)i=f9?Y?`6mQ02q#L;Zrj`}J1!U^?!F zEH`e2)9Gkbpm*fQ&QE+0-cWC0voAeoU61}lysgdqbNS&|?>4@9g==9-=qQ3GT>CUa z3;nO}(~>{iAwMgq=hM5px$1#hxysdV=trU@r*rDXc&A_RT=_$zf0?g18?VChf5@&& z=}+iY@r{Xz`0AV|JhtL?KZ5%GJJam*L0(W2-+V8fdH-HC{eLAsO}}Z*A7Y(El~?;# zJmnuw#+%&gcXy|Ho%aE-KI2kowr9P~(c7{gQuH{x$_RIapOFxr-%t-B{pyv__Q6;@ z=26hvhaz0z=l7(`Jy+d|ay;$zz@YOg8zFx8E0qubCHmjD{#w6VD;~pWspqhxr}`|| zH|rAV|K()`f7p)vsYCy0AF7b$YL}yzKJRB)(aziV%#%IH^#C@XcJpO}Oke`~Rd!!M zUy9Gd^5^eN&olj>dY&ICM?v^C!&CTF?Lt0{{txUgq8~C|RW602{+a*h?JnnlEIrme zEuZbt(%ax)P`S9iW0a#$xvpcFqEA0^vuzGCT|@t;ZQQ?o<&Stc=>0wdDx%LHUL#K~ zs&>MPK#Kn7eiB>1*pA2B$hiUMSOFm35I3Q4UH@SF1=a}8^n&{j?t19;^n&{tdqPg_ zH1{C=Ty_d*K11U?sC_Gea}f_c_LHzravT+pbjOdeqCD6Mj|F_j4Dcz4duisV|Fk|n zM);w7SSsXKje#G)ALv&B{f)Z35z=j5LvgR!=-9+tU^ftdB@9~sNAJ^~hrw5h|N5=I z)92AIk7LicdgOz9xs9(o(*q+6i-K{(eyv%q@k70YTg13fehfp-Ary>1=@B9KpdBrK z+Qg?^7JtHqgET?DPHrC^{cZ9{e@`myGeQo@uAUq#`X$j_gX|L{ocHfUuMi*&eN&3Y z?=}&lX9vOs{YuYoctI$+e5Umry~BG^->Y+x=PU;ugtAwK{$HljJx8y< z6!LmU5#j6S|0s392TJFbsl*yf0H-)PR~7|p5MTC#Yf(l{#U`&4>40szbsb&eW!HUrZZQ4 zwSM7}*qZ3ME?PWDe~;eQ}{o_Tdn zxc9OTQu#&pDSXjBHqlzAE1=niyB4xcHCOuTzX4owK-DFo^#ulLLAg=?Hg5hIgQjTe zbIesAekrudCAyy0j2CLi?+>KDuJKdu&vvuJqnOD4QN1h5qxFx9dvvDFd>MIA!H*g1 zV8SWuJVMMbL+r0!AU@a9zpf}R`&Zx>{Q&gT$Mz#YXMERQd~)VDNp1e0Q-AEpkP;7b z+W5i#Soq^w0Y*EXt3IONaiO)aUj956mN+8yKKI`B3Xth0Tq@ub`ywdc{i-Q9!`1XY z$L@xn=WIi;e%i?#@pV36Ve_b7uisa_Sr+aG`o)?JmXV&sbv}t}$E5SB{GTcM6SwC& z2l2Npa`b4)JV|thU#@^=eD4bMZ-;#a9z>2E3iP_F;n8bc2VnLA<{<0gyeWPNlaB45 z+cNRX(R1Ho00i_BVlu1HSNOwL6(xCrBefvEPwx*qPkv04Y+W6#JW~EM*_B}6yKyP; zSk~s;66K`YLi|eCir1GPjB;VO&Qz`r_D==P_G{Y*sPUJg|EKKJO)sM69r^P>(Hh~~SL zhV`#r;an@=8Z1xraa$3tekFWUZjGj2+d4DDV&Z9cy6+|jxp$fQUSaVIjjuN^-<;?h z(e=;V^9Zi+i+j;47)^Z2VRCdEygkQ0uyMWBk$Gy%2qdoZ}qs zW`-Wa9+;P}gjdtaw4z^cX@4PdY$#+~yN$ys0fGMf(UXr{Al&f_yhrn>> z`|z1px#s^uE2fF=JJEaEr>S`Ur1x?E+k5rZ$jZYqn4$Qgc$8>m@0CA5=gjw;^&^J4 z)tBoatY5t?KXN(waGf&g@tw){k2cR`UT%6{dPDrap~1v&(}2X&{80J8#--kWU>}S4 z$M?QW{~r#AwWkL7ALxfZLETutlzvw@dTF5e0YxX2e?#dw{PbJwM zs`kW8$%N;2Rjv^}fV4BueX}ltn;^^K1IOI&3+kcoMS1FnUg!jHSI;{UM6Z;hwe6o; zQ_t+R>N(;Zc1p^O_oM2y-#2!2y#2>#fpX$kp9g(8bef}==*A&E@#BoS^cTMqJySdhdcC(m|0sQ?v+%*QE^^t=Dc=L%@lyTz zi+Sc%kFO2~(JaG0=F|iC!z_g+*&ES1zAe=JM@T=PrtnE(M#!=z^(6;rA?}W$_|Nh4 zvD$@cGwmC&=dP}VQx=4UoHInuRJ22L4}|99q7f4vJ=b?u1LYnLS?3j>u)l=t2QP)J z?;Z>4xyL>hLT(G{uW^}!8|HgL=AB0eO8yGV8_s`#gTu<=aqN+Fv7;WAd_JVa!_BZZ%;to|mmF3;?Ejjp9LST7Cx7w5vp+%0Ozxs$_TOc;pI*$$YxFky97WV1 z>-9zp(+ln`i8*@zz_on^^!>cYJU_n>TZF4EatE}0(f6`H0yyt=P5;v&x1!VXd+tf{ z7pz}QmF|%FaDEZnL!E=Z@Z3WXeW1J}>_s8>8By-EJ$k|ZD(c5J!?d7&IyWdBjnPj@ z4nIoc1LuKk9f4){z4)kkc1SA5OLiyz;)X&lh9rA>_cqY}@+)}Z);r-q7dQ&(|3b+Z zdtP(y5&4Q)c_aE2<4H92zY~pKZsgAE1$LZI2H$O82F5A(tut=fZ^d!R6l9ogT%!3E z^#vKO+sL>o-#90n*89hbewwE2djzqww?gi5H@p16_c;Qz<9Ej9d2_$&4#gTs=jQsq zl?o3CG9l&MDjc+Nd;=<6`;&#vJwXmv_MNV#9L@dWzx={JR)u5#3i-TWU*(n`Ux+<9 zSG}5fzqD4Tn68VkR;uO|EyIG zrd8;FXa=a_q5emD54ZnB{B#`b6oxl5@~K+iqhR!$Z6r(KCFRun+;a^-)1;SmUKNCp zjrmVHCx3%OAbI$$^?p5fC{AIRZBPEKhTrG;zUBid&olIy%EfhX%p>tr!FT2Bcu`1k z(F?4Le>hZ}O`66v|d|2jJ9 zBe{L`T>4SZ2TaU_t6rkoU}rC^9oJlh<_S@{ffhXQ;e@;$WDj&b@orXf$c|!EuR|Wcq=?nV1P=C*I^wSgg zC!{->ewY26pY;9TW6JyDkK)U3=AltT@Wpe!@8PpNsldx_K{+3oUwPVbz(6ik^HV#r zE!Jq7hyIkR-Ljl`Rt}K%FBQ&qeJ32%-y6RMQ~62Y-)Qf1_=#MMj{HW`$!`%ppnfwU z`?o^{B0e^Oc2IdmzdHGEkQzbZol|%{&+NI$Y3ea~3|{<1Y?|J!G59_FLY|o&rS;Ro z_~4w7dt^4^#~yd6u>LE01Z28MKgu=V?|ASYTIm3!>+vIT4+iC;7@27Kwe%c0XZdZJ zK#1nEB-VbtUVou@EE9B9pC$G~ny_DhU!?zV4cdJ~Kd^tU7BaoB9sTG*^9hjZ_Z<2M zx#bPX_>3v~M;8a?Jl8%uq1FLTI5lKpHI*Ji?>FJ>w}Zx>n5Cr8a*B`0A-)^_K9Il8 zaa7P`Q%2}}He3rkWsQ9TvH;HPR0EHGwh!9g84k_A~||}F<;yV=Iv~!{H$W0KEN|>ygfZ@O&UffHmua zLdov}y+6yIIMIx6?nPw&k30^%H^&bmy4=_A^qlcx_au21LJOXYoqGRq!~BbKa6kV0 z^diU~u&-EmV87`kP~NHXr~GSP5KVs?duY}X9&@ns^s~=Y?+JFTgAdxz5)<|luufIM z&n<3@0Il`$igw?lR|3fPIsB#KxAqJ8x#DS`2=OR? z6ygwY?Z9`3Sr;LH-OHS|eKL}xgK<2XH1`c$eTyHA@hEpknnaziDIIt<+?ziRH-U{q z*bxKc?JxB6ivFwqP|<&xo|qqC#CpAG_CM`}yIpPe0eX5Wy8dzfH+}%BySH!*4#T?H zH*j-G_niJ2CD#-$J)!K!NO`ng8(S`colfPZnav;I7znBte%gl|`LnS51# z^A68YK5pi267FF>L=W zC4P?%ulF+62HVqac?-Q47F>uBUZ-o&lyL4OR&pVb8y zTd9>-^cKM;T-86Co-F5o{Z+K)1A0&Ee}@0o;H#hY9VY6-K5R=*=Ugc_ZVb|`T7Q1y z4KdF)qO+`*Dcy*K4M9w*Az`DT5XdGA!^K|gM)mS?`$toI&ip8`4~A1^tJL!m+L zLx9fE-+|`~V4t@0<0toTxn@IKf)|ts@#H2=2Bg~c{j#esFBHlW^