From 5fc097765bd35d66fe18887e938f9aea0528fd50 Mon Sep 17 00:00:00 2001 From: SBDeveloper Date: Fri, 5 Aug 2022 11:07:53 +0200 Subject: [PATCH 1/5] :heavy_minus_sign: Removed BKCommonLib dependency, moved required code into our project --- pom.xml | 23 +- .../com/bergerkiller/bukkit/common/LICENSE | 56 +++++ .../com/bergerkiller/bukkit/common/README.md | 6 + .../bukkit/common/io/BitInputStream.java | 104 ++++++++ .../bukkit/common/io/BitPacket.java | 51 ++++ .../bukkit/common/map/MapColorPalette.java | 237 ++++++++++++++++++ .../common/map/color/MCSDBubbleFormat.java | 224 +++++++++++++++++ .../common/map/color/MCSDGenBukkit.java | 50 ++++ .../common/map/color/MCSDWebbingCodec.java | 128 ++++++++++ .../common/map/color/MapColorSpaceData.java | 160 ++++++++++++ .../internal/resources/map/map_1_12.bub | Bin 0 -> 204299 bytes .../internal/resources/map/map_1_16.bub | Bin 0 -> 216148 bytes .../internal/resources/map/map_1_17.bub | Bin 0 -> 221691 bytes .../internal/resources/map/map_1_8_8.bub | Bin 0 -> 175777 bytes src/main/resources/plugin.yml | 2 +- 15 files changed, 1034 insertions(+), 7 deletions(-) create mode 100644 src/main/java/com/bergerkiller/bukkit/common/LICENSE create mode 100644 src/main/java/com/bergerkiller/bukkit/common/README.md create mode 100644 src/main/java/com/bergerkiller/bukkit/common/io/BitInputStream.java create mode 100644 src/main/java/com/bergerkiller/bukkit/common/io/BitPacket.java create mode 100644 src/main/java/com/bergerkiller/bukkit/common/map/MapColorPalette.java create mode 100644 src/main/java/com/bergerkiller/bukkit/common/map/color/MCSDBubbleFormat.java create mode 100644 src/main/java/com/bergerkiller/bukkit/common/map/color/MCSDGenBukkit.java create mode 100644 src/main/java/com/bergerkiller/bukkit/common/map/color/MCSDWebbingCodec.java create mode 100644 src/main/java/com/bergerkiller/bukkit/common/map/color/MapColorSpaceData.java create mode 100644 src/main/resources/com/bergerkiller/bukkit/common/internal/resources/map/map_1_12.bub create mode 100644 src/main/resources/com/bergerkiller/bukkit/common/internal/resources/map/map_1_16.bub create mode 100644 src/main/resources/com/bergerkiller/bukkit/common/internal/resources/map/map_1_17.bub create mode 100644 src/main/resources/com/bergerkiller/bukkit/common/internal/resources/map/map_1_8_8.bub diff --git a/pom.xml b/pom.xml index ea74716..43c1699 100644 --- a/pom.xml +++ b/pom.xml @@ -77,6 +77,12 @@ false + + + com.bergerkiller.bukkit.common + tech.sbdevelopment.mapreflectionapi.libs.bkcommonlib + + @@ -135,6 +141,9 @@ 11 ${maven.lombok.delombok-target} + **/com/bergerkiller/bukkit/common/io/*.java + **/com/bergerkiller/bukkit/common/map/*.java + **/com/bergerkiller/bukkit/common/map/color/*.java **/tech/sbdevelopment/mapreflectionapi/*.java **/tech/sbdevelopment/mapreflectionapi/utils/*.java **/tech/sbdevelopment/mapreflectionapi/listeners/*.java @@ -172,12 +181,6 @@ 1.19.1-R0.1-SNAPSHOT provided - - com.bergerkiller.bukkit - BKCommonLib - 1.19-v2 - provided - com.comphenix.protocol ProtocolLib @@ -190,5 +193,13 @@ 1.18.24 provided + + + + org.jetbrains + annotations-java5 + 23.0.0 + provided + \ No newline at end of file diff --git a/src/main/java/com/bergerkiller/bukkit/common/LICENSE b/src/main/java/com/bergerkiller/bukkit/common/LICENSE new file mode 100644 index 0000000..8643c4a --- /dev/null +++ b/src/main/java/com/bergerkiller/bukkit/common/LICENSE @@ -0,0 +1,56 @@ +MIT License + +Copyright (C) 2013-2015 bergerkiller Copyright (C) 2016-2020 Berger Healer + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, and/or sublicense the Software, +and to permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +========================================================================================== + +BKCommonLib utilizes Objensis and Javassist for some required functionality. Licenses are listed below: + +====================================== Objenesis ========================================= +http://objenesis.googlecode.com/svn/docs/index.html + +Copyright (c) 2003-2013, Objenesis Team and all contributors + + Permission is hereby granted, free of charge, to any person obtaining a copy of + this software and associated documentation files (the "Software"), to deal in + the Software without restriction, including without limitation the rights to + use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of + the Software, and to permit persons to whom the Software is furnished to do so, + subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS + FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR + COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER + IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +====================================== Javassist ========================================= + +The Source Code version of the Covered Code of Javassist is available under the +MOZILLA PUBLIC LICENSE Version 1.1. The project can be found (oct-2020) here: + +https://github.com/jboss-javassist/javassist + +Javassist was not modified for the purpose of this software. \ No newline at end of file diff --git a/src/main/java/com/bergerkiller/bukkit/common/README.md b/src/main/java/com/bergerkiller/bukkit/common/README.md new file mode 100644 index 0000000..ce9a09c --- /dev/null +++ b/src/main/java/com/bergerkiller/bukkit/common/README.md @@ -0,0 +1,6 @@ +# BKCommonLib + +These classes are from [BKCommonLib](https://github.com/bergerhealer/BKCommonLib). Only the required classes and methods +are extracted. + +Current version: master#25ad90b702cabbbf632c40f6ed209241aee38a41 (1.19.1-v1 release) \ No newline at end of file diff --git a/src/main/java/com/bergerkiller/bukkit/common/io/BitInputStream.java b/src/main/java/com/bergerkiller/bukkit/common/io/BitInputStream.java new file mode 100644 index 0000000..706a4c9 --- /dev/null +++ b/src/main/java/com/bergerkiller/bukkit/common/io/BitInputStream.java @@ -0,0 +1,104 @@ +/* + * This file is part of MapReflectionAPI. + * Copyright (c) 2022 inventivetalent / SBDevelopment - All Rights Reserved + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package com.bergerkiller.bukkit.common.io; + +import java.io.IOException; +import java.io.InputStream; + +/** + * Input Stream that can also read individual bits + */ +public class BitInputStream extends InputStream { + private int bitbuff = 0; + private int bitbuff_len = 0; + private boolean closed = false; + private final InputStream input; + private final boolean closeInput; + + /** + * Initializes a new Bit Input Stream, reading from the Input Stream specified + * + * @param inputStream to read from + */ + public BitInputStream(InputStream inputStream) { + this(inputStream, true); + } + + /** + * Initializes a new Bit Input Stream, reading from the Input Stream specified + * + * @param inputStream to read from + * @param closeInputStream whether to close the underlying input stream when closing this stream + */ + public BitInputStream(InputStream inputStream, boolean closeInputStream) { + this.input = inputStream; + this.closeInput = closeInputStream; + } + + @Override + public int available() throws IOException { + if (this.closed) { + throw new IOException("Stream is closed"); + } + return this.input.available(); + } + + @Override + public int read() throws IOException { + return readBits(8); + } + + /** + * Reads bits from the stream + * + * @param nBits to read + * @return read value, -1 when end of stream is reached + * @throws IOException + */ + public int readBits(int nBits) throws IOException { + if (this.closed) { + throw new IOException("Stream is closed"); + } + while (this.bitbuff_len < nBits) { + int readByte = this.input.read(); + if (readByte == -1) return -1; + this.bitbuff |= (readByte << this.bitbuff_len); + this.bitbuff_len += 8; + } + int result = bitbuff & ((1 << nBits) - 1); + this.bitbuff >>= nBits; + this.bitbuff_len -= nBits; + return result; + } + + @Override + public void close() throws IOException { + if (!this.closed) { + this.closed = true; + if (this.closeInput) { + this.input.close(); + } + } + } +} diff --git a/src/main/java/com/bergerkiller/bukkit/common/io/BitPacket.java b/src/main/java/com/bergerkiller/bukkit/common/io/BitPacket.java new file mode 100644 index 0000000..755779f --- /dev/null +++ b/src/main/java/com/bergerkiller/bukkit/common/io/BitPacket.java @@ -0,0 +1,51 @@ +/* + * This file is part of MapReflectionAPI. + * Copyright (c) 2022 inventivetalent / SBDevelopment - All Rights Reserved + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package com.bergerkiller.bukkit.common.io; + +import lombok.EqualsAndHashCode; +import lombok.ToString; + +/** + * Simple container for multiple bits of data. + */ +@EqualsAndHashCode +@ToString +public class BitPacket implements Cloneable { + public int data, bits; + + public BitPacket() { + this.data = 0; + this.bits = 0; + } + + public BitPacket(int data, int bits) { + this.data = data; + this.bits = bits; + } + + @Override + public BitPacket clone() { + return new BitPacket(this.data, this.bits); + } +} diff --git a/src/main/java/com/bergerkiller/bukkit/common/map/MapColorPalette.java b/src/main/java/com/bergerkiller/bukkit/common/map/MapColorPalette.java new file mode 100644 index 0000000..f2cde2c --- /dev/null +++ b/src/main/java/com/bergerkiller/bukkit/common/map/MapColorPalette.java @@ -0,0 +1,237 @@ +/* + * This file is part of MapReflectionAPI. + * Copyright (c) 2022 inventivetalent / SBDevelopment - All Rights Reserved + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package com.bergerkiller.bukkit.common.map; + +import com.bergerkiller.bukkit.common.map.color.MCSDBubbleFormat; +import com.bergerkiller.bukkit.common.map.color.MCSDGenBukkit; +import com.bergerkiller.bukkit.common.map.color.MapColorSpaceData; +import tech.sbdevelopment.mapreflectionapi.MapReflectionAPI; +import tech.sbdevelopment.mapreflectionapi.utils.ReflectionUtil; + +import java.awt.*; +import java.io.InputStream; +import java.util.Arrays; + +/** + * Additional functionality on top of Bukkit's MapPalette + */ +public class MapColorPalette { + private static final MapColorSpaceData COLOR_MAP_DATA; + public static final byte[] COLOR_MAP_AVERAGE = new byte[0x10000]; + public static final byte[] COLOR_MAP_ADD = new byte[0x10000]; + public static final byte[] COLOR_MAP_SUBTRACT = new byte[0x10000]; + public static final byte[] COLOR_MAP_MULTIPLY = new byte[0x10000]; + public static final byte[] COLOR_MAP_SPECULAR = new byte[0x10000]; + + public static final byte COLOR_TRANSPARENT = 0; + + static { + // We NEED java awt or all will just fail to work anyway. + try { + Class.forName("java.awt.Color"); + } catch (ClassNotFoundException e) { + MapReflectionAPI.getInstance().getLogger().severe("The Java AWT runtime library is not available"); + MapReflectionAPI.getInstance().getLogger().severe("This is usually because a headless JVM is used for the server"); + MapReflectionAPI.getInstance().getLogger().severe("Please install and configure a non-headless JVM to have Map Displays work"); + throw new UnsupportedOperationException("Map Displays require a non-headless JVM (Uses AWT)"); + } + + // Now we know java.awt exists we can initialize this one + COLOR_MAP_DATA = new MapColorSpaceData(); + + // Load color map data from the Bubble format file bundled with the library + { + boolean success = false; + MCSDBubbleFormat bubbleData = new MCSDBubbleFormat(); + try { + String bub_path_postfix; + if (ReflectionUtil.supports(17)) { + bub_path_postfix = "map_1_17.bub"; + } else if (ReflectionUtil.supports(16)) { + bub_path_postfix = "map_1_16.bub"; + } else if (ReflectionUtil.supports(12)) { + bub_path_postfix = "map_1_12.bub"; + } else { + bub_path_postfix = "map_1_8_8.bub"; + } + String bub_path = "/tech/sbdevelopment/mapreflectionapi/libs/bkcommonlib/internal/resources/map/" + bub_path_postfix; + InputStream input = MapColorPalette.class.getResourceAsStream(bub_path); + if (input != null) { + bubbleData.readFrom(input); + success = true; + } + } catch (Exception e) { + e.printStackTrace(); + } + + if (success) { + COLOR_MAP_DATA.readFrom(bubbleData); + } else { + MCSDGenBukkit bukkitGen = new MCSDGenBukkit(); + bukkitGen.generate(); + COLOR_MAP_DATA.readFrom(bukkitGen); + } + } + + // Generate 256 lightness values for all colors + for (int a = 0; a < 256; a++) { + int index = (a * 256); + Color color_a = getRealColor((byte) a); + if (color_a.getAlpha() < 128) { + // All specular colors for the transparent color are transparent + Arrays.fill(COLOR_MAP_SPECULAR, index, index + 256, COLOR_TRANSPARENT); + } else { + for (int b = 0; b < 256; b++) { + // 0.0 = black + // 1.0 = natural color + // 2.0 = white + float f = b / 128.0f; + int sr = (int) (color_a.getRed() * f); + int sg = (int) (color_a.getGreen() * f); + int sb = (int) (color_a.getBlue() * f); + COLOR_MAP_SPECULAR[index++] = getColor(sr, sg, sb); + } + } + } + + // Initialize the color map tables for all possible color values + for (int c1 = 0; c1 < 256; c1++) { + for (int c2 = 0; c2 < 256; c2++) { + initTable((byte) c1, (byte) c2); + } + } + } + + private static void initTable(byte color1, byte color2) { + int index = getMapIndex(color1, color2); + if (isTransparent(color1) || isTransparent(color2)) { + initTransparent(index, color2); + } else { + Color c1 = getRealColor(color1); + Color c2 = getRealColor(color2); + initColor( + index, + c1.getRed(), c1.getGreen(), c1.getBlue(), + c2.getRed(), c2.getGreen(), c2.getBlue() + ); + } + } + + private static void initTransparent(int index, byte color2) { + COLOR_MAP_AVERAGE[index] = color2; + COLOR_MAP_ADD[index] = color2; + COLOR_MAP_SUBTRACT[index] = color2; + COLOR_MAP_MULTIPLY[index] = (byte) 0; + } + + private static void initColor(int index, int r1, int g1, int b1, int r2, int g2, int b2) { + initArray(COLOR_MAP_AVERAGE, index, (r1 + r2) >> 1, (g1 + g2) >> 1, (b1 + b2) >> 1); + initArray(COLOR_MAP_ADD, index, (r1 + r2), (g1 + g2), (b1 + b2)); + initArray(COLOR_MAP_SUBTRACT, index, (r2 - r1), (g2 - g1), (b2 - b1)); + initArray(COLOR_MAP_MULTIPLY, index, (r1 * r2) / 255, (g1 * g2) / 255, (b1 * b2) / 255); + } + + private static void initArray(byte[] array, int index, int r, int g, int b) { + if (r < 0x00) r = 0x00; + if (r > 0xFF) r = 0xFF; + if (g < 0x00) g = 0x00; + if (g > 0xFF) g = 0xFF; + if (b < 0x00) b = 0x00; + if (b > 0xFF) b = 0xFF; + array[index] = getColor(r, g, b); + } + + /** + * Gets whether a particular color code is a transparent color. + * There are 4 transparent colors available. Usually value 0 is used. + * + * @param color value + * @return True if transparent + */ + public static boolean isTransparent(byte color) { + return (color & 0xFF) < 0x4; + } + + /** + * Gets the Minecraft map color code for an RGB color + * + * @param color input + * @return minecraft color + */ + public static byte getColor(Color color) { + if ((color.getAlpha() & 0x80) == 0) { + return COLOR_TRANSPARENT; + } else { + return COLOR_MAP_DATA.get(color.getRed(), color.getGreen(), color.getBlue()); + } + } + + /** + * Gets the Minecraft map color code for an RGB color + * + * @param r - red component + * @param g - green component + * @param b - blue component + * @return minecraft color + */ + public static byte getColor(int r, int g, int b) { + // This helps prevent dumb exceptions. + // Nobody likes random exceptions when all you're doing is color calculations + if (r < 0) + r = 0; + else if (r > 255) + r = 255; + if (g < 0) + g = 0; + else if (g > 255) + g = 255; + if (b < 0) + b = 0; + else if (b > 255) + b = 255; + + return COLOR_MAP_DATA.get(r, g, b); + } + + /** + * Gets the index into one of the palette remap arrays + * + * @param color_a first color + * @param color_b second color + * @return index + */ + public static int getMapIndex(byte color_a, byte color_b) { + return (color_a & 0xFF) | ((color_b & 0xFF) << 8); + } + + /** + * Gets the real RGB color belonging to a color code + * + * @param color code input + * @return real RGB color + */ + public static Color getRealColor(byte color) { + return COLOR_MAP_DATA.getColor(color); + } +} diff --git a/src/main/java/com/bergerkiller/bukkit/common/map/color/MCSDBubbleFormat.java b/src/main/java/com/bergerkiller/bukkit/common/map/color/MCSDBubbleFormat.java new file mode 100644 index 0000000..5928bf5 --- /dev/null +++ b/src/main/java/com/bergerkiller/bukkit/common/map/color/MCSDBubbleFormat.java @@ -0,0 +1,224 @@ +/* + * This file is part of MapReflectionAPI. + * Copyright (c) 2022 inventivetalent / SBDevelopment - All Rights Reserved + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package com.bergerkiller.bukkit.common.map.color; + +import com.bergerkiller.bukkit.common.io.BitInputStream; + +import java.awt.*; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.zip.InflaterInputStream; + +/** + * Stores all map color space information in a highly compressed bubble format. + * In this format it is assumed the color data is in cell shapes. It stores the cell + * borders separate from the colors using the {@link MCSDWebbingCodec}. These cells + * are then filled with colors to reproduce the original image. + */ +public class MCSDBubbleFormat extends MapColorSpaceData { + public final boolean[][] strands = new boolean[256][256 * 256]; + public final List bubbles = new ArrayList<>(); + + public void readFrom(InputStream stream) throws IOException { + try (BitInputStream bitStream = new BitInputStream(new InflaterInputStream(stream))) { + // Read all color RGB values + for (int i = 0; i < 256; i++) { + int r = bitStream.read(); + int g = bitStream.read(); + int b = bitStream.read(); + int a = bitStream.read(); + this.setColor((byte) i, new Color(r, g, b, a)); + } + + // Read all bubbles from the stream + while (true) { + Bubble bubble = new Bubble(); + bubble.color = (byte) bitStream.read(); + if (bubble.color == 0) { + break; + } + bubble.x = bitStream.read(); + bubble.y = bitStream.read(); + bubble.z_min = bitStream.read(); + bubble.z_max = bubble.z_min + bitStream.read(); + this.bubbles.add(bubble); + } + + // Read bubble boundary information from the stream + MCSDWebbingCodec codec = new MCSDWebbingCodec(); + for (int z = 0; z < 256; z++) { + Arrays.fill(this.strands[z], false); + codec.reset(strands[z], false); + while (codec.readNext(bitStream)) ; + } + + // Initialize the colors with the bubble colors + this.initColors(); + + // Read color correction data for pixels unset (value = 0) + for (int i = 0; i < (1 << 24); i++) { + if (this.get(i) == 0) { + if (bitStream.readBits(1) == 0) { + this.set(i, this.get(i - 1)); + } else { + int mode = bitStream.readBits(2); + if (mode == 0) { + this.set(i, this.get(i - 256)); + } else if (mode == 1) { + this.set(i, this.get(i + 1)); + } else if (mode == 2) { + this.set(i, this.get(i + 256)); + } else { + this.set(i, (byte) bitStream.readBits(8)); + } + } + } + } + } + } + + private void initColors() { + // Set initial cell colors + this.clearRGBData(); + for (Bubble cell : bubbles) { + for (int z = cell.z_min; z <= cell.z_max; z++) { + this.set(cell.x, cell.y, z, cell.color); + } + } + spreadColors(); + } + + private void spreadColors() { + final boolean[] all_strands = new boolean[1 << 24]; + for (int z = 0; z < 256; z++) { + System.arraycopy(this.strands[z], 0, all_strands, z << 16, 1 << 16); + } + + boolean mode = false; + boolean hasChanges; + do { + hasChanges = false; + + // Alternate the direction in which we process every step + // This prevents really slow filling when the direction is 'wrong' + // The below logic is partially based on the light fixing algorithm in Light Cleaner + final int index_end, index_delta; + int index; + byte color; + if (mode = !mode) { + index_delta = 1; + index = 0; + index_end = (1 << 24); + } else { + index_delta = -1; + index = (1 << 24) - 1; + index_end = 0; + } + do { + if (!all_strands[index]) { + all_strands[index] = true; + + if ((index & 0xFF) < 0xFF) { + if ((color = this.get(index + 1)) != 0) { + this.set(index, color); + hasChanges = true; + } else if ((color = this.get(index)) != 0) { + this.set(index + 1, color); + hasChanges = true; + } else { + all_strands[index] = false; // retry + } + } + + if ((index & 0xFF00) < 0xFF00) { + if ((color = this.get(index + 256)) != 0) { + this.set(index, color); + hasChanges = true; + } else if ((color = this.get(index)) != 0) { + this.set(index + 256, color); + hasChanges = true; + } else { + all_strands[index] = false; // retry + } + } + } + } while ((index += index_delta) != index_end); + } while (hasChanges); + } + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } else if (o instanceof MCSDBubbleFormat) { + MCSDBubbleFormat other = (MCSDBubbleFormat) o; + for (int i = 0; i < strands.length; i++) { + if (other.strands[i] != this.strands[i]) { + return false; + } + } + if (bubbles.size() != other.bubbles.size()) { + return false; + } + for (int i = 0; i < bubbles.size(); i++) { + if (!bubbles.get(i).equals(other.bubbles.get(i))) { + return false; + } + } + return true; + } else { + return false; + } + } + + public static class Bubble { + public int x, y; + public int z_min; + public int z_max; + public byte color; + + @Override + public boolean equals(Object o) { + if (o == this) { + return true; + } else if (o instanceof Bubble) { + Bubble other = (Bubble) o; + return other.x == x && other.y == y && + other.z_min == z_min && other.z_max == z_max && + other.color == color; + } else { + return false; + } + } + + @Override + public String toString() { + return "cell{x=" + x + ", y=" + y + ", zmin=" + z_min + ", zmax=" + z_max + ", color=" + (color & 0xFF) + "}"; + } + } + +} diff --git a/src/main/java/com/bergerkiller/bukkit/common/map/color/MCSDGenBukkit.java b/src/main/java/com/bergerkiller/bukkit/common/map/color/MCSDGenBukkit.java new file mode 100644 index 0000000..77b67c1 --- /dev/null +++ b/src/main/java/com/bergerkiller/bukkit/common/map/color/MCSDGenBukkit.java @@ -0,0 +1,50 @@ +/* + * This file is part of MapReflectionAPI. + * Copyright (c) 2022 inventivetalent / SBDevelopment - All Rights Reserved + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package com.bergerkiller.bukkit.common.map.color; + +import org.bukkit.map.MapPalette; + +public class MCSDGenBukkit extends MapColorSpaceData { + + /** + * Generates the color map information by using Bukkit's algorithms. + */ + @SuppressWarnings("deprecation") + public void generate() { + this.clear(); + for (int i = 0; i < 256; i++) { + try { + setColor((byte) i, MapPalette.getColor((byte) i)); + } catch (Exception ignored) { + } + } + for (int r = 0; r < 256; r++) { + for (int g = 0; g < 256; g++) { + for (int b = 0; b < 256; b++) { + set(r, g, b, MapPalette.matchColor(r, g, b)); + } + } + } + } +} diff --git a/src/main/java/com/bergerkiller/bukkit/common/map/color/MCSDWebbingCodec.java b/src/main/java/com/bergerkiller/bukkit/common/map/color/MCSDWebbingCodec.java new file mode 100644 index 0000000..752cb07 --- /dev/null +++ b/src/main/java/com/bergerkiller/bukkit/common/map/color/MCSDWebbingCodec.java @@ -0,0 +1,128 @@ +/* + * This file is part of MapReflectionAPI. + * Copyright (c) 2022 inventivetalent / SBDevelopment - All Rights Reserved + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package com.bergerkiller.bukkit.common.map.color; + +import com.bergerkiller.bukkit.common.io.BitInputStream; +import com.bergerkiller.bukkit.common.io.BitPacket; + +import java.io.IOException; + +/** + * Encodes or decodes a 256x256 grid of booleans by walking down the connected lines and encoding them + * using drawing instructions. For example, a diagonal line in the grid may be encoded as follows: + *
    + *
  • SET_POSITION(23, 56)
  • + *
  • SET_DX(-1)
  • + *
  • SET_DY(1)
  • + *
  • MOVE DX AND DRAW
  • + *
  • MOVE DX AND DRAW
  • + *
  • MOVE DY AND DRAW
  • + *
  • MOVE DX AND DRAW
  • + *
  • MOVE DX AND DRAW
  • + *
  • MOVE DY AND DRAW
  • + *
  • etc.
  • + *
+ *

+ * For encoding the data, the follow bits are written out in sequence: + *

    + *
  • 00 -> MOVE DX AND DRAW
  • + *
  • 01 -> MOVE DY AND DRAW
  • + *
  • 10 -> MOVE DX+DY AND DRAW
  • + *
  • 11 100 -> SET DX = -1
  • + *
  • 11 101 -> SET DX = 1
  • + *
  • 11 110 -> SET DY = -1
  • + *
  • 11 111 -> SET DY = 1
  • + *
  • 11 00 [byte_x][byte_y] -> SET POSITION AND DRAW
  • + *
  • 11 01 -> STOP
  • + *
+ */ +public class MCSDWebbingCodec { + private int last_x, last_y; + private int last_dx, last_dy; + public boolean[] strands = new boolean[1 << 16]; + private final BitPacket[] packets = new BitPacket[1024]; + + public MCSDWebbingCodec() { + for (int i = 0; i < this.packets.length; i++) { + this.packets[i] = new BitPacket(); + } + } + + public void reset(boolean[] cells, boolean copyCells) { + if (copyCells) { + System.arraycopy(cells, 0, this.strands, 0, cells.length); + } else { + this.strands = cells; + } + this.last_x = -1000; + this.last_y = -1000; + this.last_dx = 1; + this.last_dy = 1; + } + + public boolean readNext(BitInputStream stream) throws IOException { + int op = stream.readBits(2); + if (op == 0b11) { + if (stream.readBits(1) == 1) { + // Set DX/DY increment/decrement + int sub = stream.readBits(2); + if (sub == 0b00) { + last_dx = -1; + } else if (sub == 0b01) { + last_dx = 1; + } else if (sub == 0b10) { + last_dy = -1; + } else if (sub == 0b11) { + last_dy = 1; + } + } else { + // Command codes + if (stream.readBits(1) == 1) { + // End of slice + return false; + } else { + // Reset position + last_x = stream.readBits(8); + last_y = stream.readBits(8); + strands[last_x | (last_y << 8)] = true; + } + } + } else { + // Write next pixel + if (op == 0b00) { + last_x += last_dx; + } else if (op == 0b01) { + last_y += last_dy; + } else if (op == 0b10) { + last_x += last_dx; + last_y += last_dy; + } else if (op == -1) { + // End of stream + return false; + } + strands[last_x | (last_y << 8)] = true; + } + return true; + } +} diff --git a/src/main/java/com/bergerkiller/bukkit/common/map/color/MapColorSpaceData.java b/src/main/java/com/bergerkiller/bukkit/common/map/color/MapColorSpaceData.java new file mode 100644 index 0000000..3c5e338 --- /dev/null +++ b/src/main/java/com/bergerkiller/bukkit/common/map/color/MapColorSpaceData.java @@ -0,0 +1,160 @@ +/* + * This file is part of MapReflectionAPI. + * Copyright (c) 2022 inventivetalent / SBDevelopment - All Rights Reserved + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +package com.bergerkiller.bukkit.common.map.color; + +import java.awt.*; +import java.util.Arrays; + +/** + * Stores the raw map color space data, enabling transformation between different storage methods. + */ +public class MapColorSpaceData implements Cloneable { + private final Color[] colors = new Color[256]; + private final byte[] data = new byte[1 << 24]; + + public MapColorSpaceData() { + Arrays.fill(this.colors, new Color(0, 0, 0, 0)); + } + + /** + * Clears only the RGB data. Equivalent to using {@link #set(int, byte)} on all RGB colors. + */ + public final void clearRGBData() { + Arrays.fill(this.data, (byte) 0); + } + + /** + * Clears all data, setting all colors to transparent + */ + public final void clear() { + Arrays.fill(this.colors, new Color(0, 0, 0, 0)); + Arrays.fill(this.data, (byte) 0); + } + + /** + * Sets all color data of this color space data to that from the input color space data + * + * @param data to set + */ + public void readFrom(MapColorSpaceData data) { + System.arraycopy(data.data, 0, this.data, 0, this.data.length); + System.arraycopy(data.colors, 0, this.colors, 0, this.colors.length); + } + + /** + * Sets a single map palette color + * + * @param code of the color + * @param color to set to + */ + public final void setColor(byte code, Color color) { + this.colors[code & 0xFF] = color; + } + + /** + * Gets a single map palette color + * + * @param code of the color + * @return map palette color + */ + public final Color getColor(byte code) { + return this.colors[code & 0xFF]; + } + + /** + * Sets the map color code value for an rgb value + * + * @param r component + * @param g component + * @param b component + * @param code to set to + */ + public final void set(int r, int g, int b, byte code) { + this.data[getDataIndex(r, g, b)] = code; + } + + /** + * Gets the map color code value for an rgb value + * + * @param r component + * @param g component + * @param b component + * @return color code + */ + public final byte get(int r, int g, int b) { + return this.data[getDataIndex(r, g, b)]; + } + + /** + * Sets the map color code for an rgb value + * + * @param index rgb compound value + * @param code to set to + */ + public final void set(int index, byte code) { + this.data[index] = code; + } + + /** + * Gets the map color code for an rgb value + * + * @param index rgb compound value + * @return color code + */ + public final byte get(int index) { + return this.data[index]; + } + + @Override + public MapColorSpaceData clone() { + MapColorSpaceData clone = new MapColorSpaceData(); + System.arraycopy(this.colors, 0, clone.colors, 0, this.colors.length); + System.arraycopy(this.data, 0, clone.data, 0, this.data.length); + return clone; + } + + /** + * Gets the mapping index of an rgb value + * + * @param r component + * @param g component + * @param b component + * @return index + */ + private static int getDataIndex(byte r, byte g, byte b) { + return (r & 0xFF) + ((g & 0xFF) << 8) + ((b & 0xFF) << 16); + } + + /** + * Gets the mapping index of an rgb value + * + * @param r component + * @param g component + * @param b component + * @return index + */ + private static int getDataIndex(int r, int g, int b) { + return (r & 0xFF) + ((g & 0xFF) << 8) + ((b & 0xFF) << 16); + } +} diff --git a/src/main/resources/com/bergerkiller/bukkit/common/internal/resources/map/map_1_12.bub b/src/main/resources/com/bergerkiller/bukkit/common/internal/resources/map/map_1_12.bub new file mode 100644 index 0000000000000000000000000000000000000000..23ee24db9cd4af2d2f704e5d6f042114e23c5a08 GIT binary patch literal 204299 zcmZsBWl$V#w{1djA3XRB?(Pl)3?4K%4DK2vK@wnq!7aEGB)D5}4Nh=(3+@^qm-qcn zopbN0`=h7&&vez(z4zK{t-ZV#r{`{c$lj-M+}#qq!V92v13@?gO<%o^r|v|IrIx}Q zNkw!Y%TGZ>4hz@GVI8hFG4re)`z(x%=Sb*~G0_k?w}pOfmD9zo#8pK|229iR8~`s=!mK$h}jC z)1A-vkC=ZeKmQf~J84Dyd3WUP^Ud+nW8<3t@c78c+3oAQwe^^vYedgUNhg;@YJWpM z-x_6|{+{1_|Ni~G``+03hD*xn$;mDdRdi(Y^wslFK*vANN?&^nDf(<+VDPwF|Lw7K zZ*`+l!nfDUBj&6Y%jvnG3;lUiEXvniU3hJIc?1UsXUj9`EoovzS^Nv5632Tkxy|)>f z7d|I;_dOB<7ti-L&pK-Gzu&~H?>`GYzW&@xwQa;sY+`IYCcw*kw!gps`1mOL`SH&6 zc_@*^*WRAx^dNO__?CQ+4BKR5>Z#l}=9s$Ur(dvyVMEWK1mt_IIjL10|6nivqqD** zsrLTFA+O}6yFp}zQ&oX;zNWt`O@9-b{yHuHy`R>4ZW`@3aTUJTNeFw-oY<;Ux)UWw zLq$O`y7u&I^zXqR^yjs|#c>k;jG4Djzwy={cVycCj(;B9J2Kk5^f|q>#OT;Kj6Q3f z>FDc8{6I;$cYbEwCt8+rFRsSjp_@ENbv(4gQXA#V^Twa#vl96k-QC~&H^Yxl!$tQJ z?OvHCB)_+l!y_MuXV4z&8?@SKlt#zB$?j;b-#qrMi>_I4Y^IaR-E9PT_}f17nrLVZ zQ;~6AoL11DnPfnAJ}dNBFDZF<+tMfyQPU_kPZ zUn>m$YSi8zIce_kRT59;t3{qn%(}{GMKr^cqcprL>p6m)_aXVn6!zl*f-phpJA_8Njl;MNa!nDx{PTJoQx0o3_al@lu zD?orK=U#onoWAd2u&-{oet4zGI}Fv#?_ksDU$W^Asdudv21vh4{^-}jZSF62(H7>b zavn{My>djjn930R^~gJpc+lL+3(s~3IeX3n??+X)6DL_Y+cdJU&WVW(V?RLqu)@&F zh(yr>h0h4Ik^^gVCNVxjRfte~Wa)Bntan};ioX4l5n(V;(T5zk!rKi+ahh{N5uC|* zlcrhToMTWoCp~D!f8lS!m)|a-`zEPoM{$60$p9%e`NUJ|z95rYOZ5D`(^>XZ!>1jJRTCnT+n|A=>Q1GH_^ZgM2 z7cVt6Y4v9?$Fz4g%#{0c9*$j`ghB8iP6$Kpbx;?Y4f|6};|6&Db1M>q;nbU)lC=)x ztcRz=^{{br6nkIf$)h!l=FuIcSf8gLmG3S7Zx*IHP_cZFiE{lfH*IZ}ME|1Kt&kWZ zob<1A{~nQL$Qd$pBWDf{F#p9;CbjD0ignX^OHsplj~B_I+=gh5)m4jY^II5W=I0D_ zUa&&SuEGzsE6vMUs?lbPlpOb1hTrqF>#83gto4y1PgZ+Q3RKdL4N_khuIdj+Uw0;N zLVAWznRFfkDybP1vp{_V?Vlg<=NnI{{u12Gh~Lw(PWwNZKy&w3PuK0HR@S;=RGrSw zW(GYh{!)1hwoql8Ssy+}hvIwuJwp)$goi_GVhzVEO7;2hj|&$`1hO^9=hNPey4r(4 zfpFSh7!2m0PKKd^V_5QDyN%VBTmKe~v z4O}<1bUWDM{VpYRv3pwz2!EUlHe>`T_LdjdgZPte2wca1sDN(De$ob7`?(H)?P_=cE2^+KsG1Y>8d`|iEvbDW?7hx_P1!!4POC&pn;|>&3x_H zJnD@{98;hV5wC3LoUAKAPkV)d#0L1r$6=y&EfNa#N zYSN0PD@Mbr7KzZ*$PnUc?lVFlPAs43@EXieh4AoX!(4m$%ybj%0a2$)V2P`(!h z+p?*Igl4k^t!TAGX8ISa7fL*7B#g9L>c>@=3vRoj6BqbqfZ&0#)Xd?*y6q0}`;s5Wxu0!KL9uWp;cMdCjz%ynlYs0);Q`10rp_ z{TX>kJuy}$9*8-Xxb(;;1T&&-T-ajddUQ4wd6yJH@$d7Rf7-^Aph{^)GWKq;5r#*G z0m@6JxdQj(Ys}W~l^RG;OKZ$+FwNHc6hvxdGo-U-k<8Anc>7(7VtD(i%D)oQde9-i z%sUx)L{fybx?3|f?R#qG0>i3C1S)`ih7{$W+7ZEz+v7E{&D(-PKK`Nx(Mwgst{D_= zH~H;~W4p&uZYNh8^g>HDWz@DTZcfADFpwERw|1Kja9PEbas4Wn9?AWfLbFrnAw1C0 zvW&4QILr@y{_glE`o??acm00BR|%OvTV-8#GB@s5_|jLmFh z7m0{eE+z_SZvnDk8X#N;O-7?ReCbfL*py9J$MTVuNr$k_Zn_u|S})V*sp+nDWNQ?K z&Jlo2==C6(5blT~qFt5PmS;96fw55nlEear8M2|uvP>I7a(nZ2ikr3RRv&?x`lC8C zr1hrSMcNqRihL!(R0Sk6%XJI}Q9n1{)vkOc=M#0b*C`qkNt-^pqTgH;skmvHrJt^{ zG*PduM9c}OgbmzUg@ptQX6#9KlVB0!4f6%Q`zlQ{Z%{JZxyrr$ZCViPv5s1g=6Nx_ zBu+JX&t|(N$q*}Ay8@Z0{v)aP@8leP4l~aLl)FQ0=QvVfnvdq4k4){7*g5~I~@(w4pL>&O`EgDPuj)QznsjG!cdaw zg#+Hw^~Yut725TgB#80;&XZoXyilR zq?ejcJsVO87$sEVXRO*xa?SPUV<*J~tv2~)?3>H5%8fsX8kZBpz;0s1@yxgdisR)& ze4o@I-}*HwCu*s2?9 zz#wXdY+gPUE#$kkIe*Z_f>wjny-NK|XM6D&=Q`&OX;W3&uWeG7qf1PO!h(6~%yB1v zm&+Tg06Ko440P@R96iZoA&`z z@sy&tiKN{K=`+z26e%L`!})cp?52OZNvW8zV%VV>nXw{X!vf$+(wk^Jagwy4HQv46 zp`OK7U3SBxh{R+1oxW}-Zm28Bc0k!2$|{QG*>Ba}YDjGFD>RL3|LOKZm$j_cCc!0B zHWd*_FHn6=(u_tmfsWr;@h-(Qu~;PzSd6EXh_}`-PM5CBC}+8;LuaR~9~Jf_svh(i z`YUaoW3%p#SU*$2r3GvqxI`HgR^I=XGm%$=^^6H?6E%)jzK>gAw#e=8Z4hZuUKi$c47|3HCC5M`bY1=w3Br~(v&^8TRquDr zwIR&Y`srG#o+hZPZO8TY%60j;W?r!C_HBsZ9Z&$VW*|79lPh|Ksr!nP9xaZh zQcGwP5h`m;j=^%dNqxi~k#IsUvSq5i6&{p4N4nMN=LQ_xT-Apwbv&E$VN)ijY;Mi= zU3fRJC;r^Rmj-ZPx`unR(@M^MBbX;D?&VetW}H4>E>RA0B(>1a?c;Cbr*ukA-wZA# zH4?q`OQRG~4)MP63*n+XA)xz-LCKu3wUHbCE1z0_`yT4m`cNcmdw!Idw(QN$Iv(*; zXd+But2bZPQ}c3bp@L2#YiX1N9$H54<-6@Er74=;Sl?T#v{wH!=+9l2_iUBFaF*Cj zZ~E3O&9+qoCBQrcS2LyABNagtHaQY(!3?h8uhlN@SC)ySu(Qyv=+h{dx%$L&>-S>< zQ%WUXk6@ZUwOJ&%*lI$?ujDNyY3yD)d#znXr&H2M^Rd;wT11(ZcLDqOh;i{a&(_l+ z@75*Og36#kt!({pPp#M0w`+I!L&3Hb^=bsW_VB|YIzt0lB2vWEo}*E z7b(F-1C*=6mar7U)JrE8!M^>6xaHz;er8+@o0;)n89$LEC!ykO#Z{Kp;L}ji>*BlS zjjHvE1plILVPdD9NgO!VHw>#fWL1Wx=5VN=UwkqLId~!BcX?Rw14w68x9Fu(VLTb! zXhl$MJpb3l2`6M@%dhg+zI)O2Ac6^?JR04 zfuRcf5N>XxE!FstoqGk=vH`Vj{NN+{mUvwqcWC@}x0{~ERo+l0qNS##0`7Pe4Z`+{ zKpd_neQhix82mjRNUP1TCHqaus+81^d-NjVlMC40$s7&E}g3$C86u`+?2al zK8A)1M!q0|%rxQiGcNXBV&M2I$8b(s9diVga8vCvm9Ao~2+K(JU_Ubz2vka2BYbpGR`2&!*|-YTROi+8^JMT8Di=2EcU8t`&1&9n3{h(}SUlfODTD>H_MY2nZ8 zJoa>UrGSO5A%d=>cb4HUo=x0Hs#K0jVQcITs?eo!BPQHR3i%H(N?TpA%KPHM z;OWWg50Ji8xy0~O4`yWq3qJj1^gH^Xd{A~ijg+NE$(^dYPRUivj}fiAiiM;h%0lac z?jB_WX5~4eLdEWh3N3P7Y1Qv5#ezXiT(&F4tYtsz(&4rOXnI-%`J2i{@#vPd?ONWS z^Vt(4V#w5j@4PKo30Yn0HO#`A^_l7iDs_gwN7k&<<h#Huufa<~+WpoVG zNni}$ubFlL-#LrgPOoE63?G}}1~`?KwLuf{o*$8lj(eOexlR+C;13x3f{KfQ>70R8 z*eaW>)t?ep&ZU@EiB;2$EFC^w)0To^gmZ;02zMNhE%f}OCXox(ig`e_1th4{f4kla zg5NqjGKtt|Z)wZfr)3+g`NgnYqo}JyGQD3XSYH{B0wg;dk2gvE9iq5JDSTvmW<)k2 z^#Q~&mRw{joDt3YQE)Lc+_9HM)vOBEL zHn2vF(Dv-vP$|t+{8zS>3!8G`!Y136EpE2lJj3LA|Czr2gf2*T!?SG~T{EX@v%XZ8 z1W+u~JD@KeNEmoQ%W@k>(>K&!;i=n{!X$m0v8h+p+lQ&)5Xt7NwUtwB#V!qUm@2Spu;1T1V0FTZ~}tbMAtj1QaJ- z|8DQQ)C==d%#NV#pK-D=7~w}MDDJgaj44>V(|z1$B{zzVej_)4<_Bzei!pV6(qEUZ z%!KsOy^JxFt)E~6G)T9<{0GBvf7uhNB<%CKS&X6~{m0~n+-F9L0|C`_$|mYJP6G0H zo0!W{DVVwuN|Kv#rdk>y)Fhc-1A-FLUT1%DiQb=@1O$_1iuxGhlRhxCzUq&+I38Cx~RfB@MEdS{?RFPhFe66wt!;A^xs0CWBk&TVOe z;>NRaC}~VT^6`S_oDqZPoE*RvtUDC9A_&Ujq;bXu^bF+Hp%PCJZglr=DzlSEu*wme z8~CCn*{&*AIEckEHF@*JqN$}Faxd(gAE*9sR5P%;YG`ERv1?&UK|7(rNG*fj6N+|v zLWw{_fqa@~L{8OzZ$2}r5s~eNG-Id zv37Y%*%PH#k`8b?2q4$awL1~kdY54lR9a6&=6f_& zgLX<_y#%Hj6Lbj2DWc%N53R)}^A*fC4+~)iEL@^Z454oD7KSuvORBItOwVgN8FzM^*miVi|G6 z!O;-s<6wBu0MIQ=v|C{tpS@RIBZbY~JJtoP&JUycFZ%V4$a>3C>U%`>G2&_}6EOF7k7{Ty=`$XwCsu+|y63hw(ZNj~~m1%Lq zz<8UC)aYR#+R_#K7*wT*V^&t0Jos-jk+EY~#yjd3`lI zbR>+At_guH_nStHFOPJa22K(^j%P}nCwqp5-A{u_`%q240?!m%rk>SSHPh;11BImVxbQqQCy-4>u?rPXFS_-F@8q# zz?9g^4_iubYHz)ppNc*H{l*uDoha=4scxPJA}9pe zi91z)HuK1vI9{-D!x=`v2yt*$bTK$8TB%r* zI96_fM(7beKGVPliu%4!)pOw9kJXV3cuLjEOv7D&T6s~}kBSEXA#6?K&{B?241-}8 zfPoObk5HlSXKYb6=dmudI;>)hO^9l(A#6B!M_{LUC`Xho`A<`4QpDQWPV?qoI$^U} zXbb22Gl$9aVKFk6!9I)%L1GR;TJkNaZCKztJZ1~^-=mfhAdVzqWvCe48z|UQ6Ry=Q zo&VCw;5Te|CgGo<^mvNyz|uxc%@7V^3Cj}qKB$i@JMma?=Z@jCVUu@*n85C4YQysH z<3&?;3*)pQm0@3e+ndneaDtEF_7C}@s0XYc1MRB^Q!Z)&#BL@!fiD*0K<)mdXanl1 zsICQKC`|hW#BlYu{n6;mnedcS;DQ!&()j=#P^K{6@P&&sd(YQMi|co`=RjL=hhfHX z^CD!fOj1xt7{Ki7r`n;*_3k_goS5W+OY`(nZk%ybB}xaB9~ab@-L!5W(eEdC-4ea6 z>0`u5H!{v_!0Q$YOQy{cL8)@QixoAZe>gNfHsK3_>Hrp2x(25g! zm9rrEjQ&m4;G)xi!C#ERue=V2%I?yfOcYC#Wlim>v?*yD7E<=~H=Y)zsj0F|_?it^ zBIFCY4NFxcqjDFh3>V)=RRv>b4H>eWaPWdGJQ9VPt?`W+Sf!b|QL*<~Sv-b>{R+mu zkGV0k#0Exxvc9T)tGv;~O`FAuk2X+|2w~ucD}y4cCP0JY46B9U5}YNsp-hLyfl~sD zYxQ)(VHe>z?Es7Sf*ak6iJG`$r61fj9u*Cxq!JUvuImL|RUN$CmI87TEZfDlU?X1E znJ)D+NmMN#ctH|o@XK9mW1jr&o@91f8_2MAm!Q3POHxLNrL=Go+N^Jr6|hX#cz9rd z7+I6MY6Ki;o0{T~+GHq4M2~`3w-B3g=-5UzlBKXuk!FysNw%_l#6HCv`Z&VD0VxS=0pItofKEflM z`FDG!YLa~CJsbCAcCQzFZBoP%V&t=q!~J;2n)8+9L56ub{hNU~Tv%LsMlNiGXlYYM zXO^$=l*c4lQ|F=M(rykA;|3+~(bT9xORwrb;Tpu^9C2mX*%*6ovN2-f*I%YCZH8fV zK5j8YN1~t(y;m_GKh>XjX|$^@U1?iA9c!sOT9LTrTCadbEW=<+uz5;u5ZriR=DXV(oP-E}(*tI&+uWi0zA(Z?`J{l9mfz`bJ zFeXmSJCfmAEswvRWSAB6p_KhJ>_aJs+Te;HS|L!bl&peKaJj5Udp*f_(eOmaZ^~%X zN&ttr<(m^Fn=6YmC7Wl@C_bH2(~|Z<((*C8yVB{+*XDD&;m{8tuRm~q3&0RS&IO_) zFcGv&K^qdAI*Tqa=HcI~vv1Y%F~u_zEMC7*&6Z&hOi_?HuOoK{cgqVr!%qYg;*C{$ zZXszLTM^&PP^a@bwJN49cNbZfJIz<1{{U`nbGq3f3W*&c-*(XnI6TfUoWMCQS&+>=Y?h40)uJD75Et&}4vax(=`L=_^IkhYQV21(QC>ugRwWevgheZr!lpqj! z>JV40bTd1!fWpJ@Xpc(RzhL~aM>q8>sh7N{tE>OwNbErXc4!enZ#o__eQnXot^W#Z z${Kw>8CxlLS6{&i=)0(|{{6>kG3&GtdN?{=ME8)iuY{!4Vw{U7p&0`?*w_Oo>N-Qv z9gJo6*%3H$Ge=y*;HVOOHoc^ey3|Jz+~>jEu7A)=&|q2_gkUvnJ>+|k(D_uq8>lC8pbj?Fyy^Tj_#Z` z8RM+y3{v=c>kOfLZ9;k9W(2W*#71#ZISF38a0IkPR2Q?xZ@5oq;dy8C>cI~se4}Tp z25&jaB7a1`n=-i|vC5#M>T72?RT_szOQvi9nst*OZMEAHl3T4h@EYG3T8N%<=~@ix;FU$%i_e9!x60*x<#c-w*IIq zuMmJDED9sO_pST&2HPtxw5780rql0DP0HK`K*9ved!2LIdp@rUc?k?=_Y@tdIEPTq zqoFj2{ST|_mhp~DT@}WOc4|S%R?ejC^3=oC{Md*>+HZXQMPi`U_%m+nszC=bhi{Y4 zMxqgq<)@A6wGB(0S|j6%Z{IsHDEbEcH2KU>y*D`DpGNt{8g2!nFoBt&z{wXPrfNYw zJ_q+O`&>?p$D3))E)``cy1X46A)nsnEknJuO07Y9)!k6Jgpq|2WZYHYjM9pm%5_BO zEuL`}cq=ev%-N&BVQmHJ`CV%4&CAZZLm3sJnA*XTM?e{+ponBbSCF(hFQTLu+LA*c zj1HIHZg2iUKuKaBtJ@9k1)L8+rQC}jrBwWwTIa#+l=e)POGriqf_5tf>&=3?%||~=?>vHvwIx<09m6u`YfHwoB|0ZJoU+$e&3)z&LnA;x)X6HL*FS#0}lItVeJCP3YQI&{zqx$;e8sT=uiST|G`rD>fI91DpS$ zb9Q=rYCbL9*Umr*KdBr{#w{{^6vQyf2ElMU_hxac8U3kB<$PNmQR(@BSfu88cczTu zx9oe|q}Fake$~}bw1ko+5b8VP{t2AD<~M?}JDnhI z)qwlLM0;PT-bsE8&rcexp2~+D*E?~_19%>J$D6M^%io|LLVE)o%+}F?n{J+7`Nhk> z7Id}8ev}~WD4dI%Dry;mwlKo?FmA9vs0vCplEa2TMhhQ1UF z%1dDcio%i^>4s3L)K#@`{qy3#gG$0)sRtQ~t^~BsYIm`>3B3a@jN$0GELE5yi38zz zC+Gtv`;}h=Nx=WRR0iOTptKhq`7cwIRr(fwM0rL!{bPXT2pLDd#(Sh z;8`^l|MNpd_KL5P9-6?KhW4hsi$lTsgrs3Xr}{e$v}h2{=D7~Hd~qWlB`v>Jcf|We zmS*CjxT2E^MbC4G_jLZzAKrKS9)k;5YfNi2aP@e#nI5S*jRr?f@FB0&;k;K_N;JcURtmp=;U;(%!1@x8i}4>1-aoXOG}1y?Tyl`{O`Nk{08oeE12)wMw6H!64N@t zmG$`AT!mR<%-5d&UWDKz<@abSb86apBYg}dorZzDR~hAIEVp{~A9lpGl$?z<-}j8# zr`bI=#8mE5UNdN6RM72e$rLq~ky2`TXdO~&;SWaX7E(9d6du@U%3IejPA}+T6|#dM zA80s?WhQSufj~2gkBcIP6hhfz`dD$RsdgJEd{ZfpJTqmve;oLh?n+x`j&?mfUO5@h zA+D=`){t~Lh4{QO&Nu-Z1IMVdwLOvQvb6y-M!LxVyDRbtQ^()-V6_#MOMMtvC?viA zX6h7mWLMjWyhf9Ti{a*9Qq=E#Y9o&YP8yqbi6i9Ub9qV#;(Pb7^^LFUzH5OLH*|bP zw^v|nCf{fkqkehR(UEO=d3L6|9^_p9tnX&bX6VRX9L%9}V5gGZ@L<0{%u-)pP35FD zx9OwGR@2x{bka7h7hwXLs;_xms9uCW7Ub$TU0LK4?WX^<15OGU49h-P*=+P)dc9yt?sK^%Ix9@ME!;jWnDzsN*q@eXHbt@cylqu6xquut&y zk(I6qj)|4^EXKMjonF=B_;EGn(zb5fXDTLo{lfKJ z>Wp2UZZQw5D7 zr1Milxyau7!G=HhmpgAhIPx;~R%ScDIw$M>xQTGiwTWnh$RNXh8f9l8;QW^C{LzZ9 z#?{Z5Ci15cSDy$M-L8P!mcqR*{hmPJh1bB0j)3}?9cLx74F<>d{>bdQL;)*L9W6e$ z%;yrh8y$P?Z%sV!W>B5$wfW>e+`oxBS{*!*^W1+xy`a3P^UMci%>u3=&sh_4O;@8N z7d&Rfsm`R%FtN7MC^zUrnB2VY?TlPT;wc|G$Eh}Nb$X+UO4B%huak42tD`YK+1w74 zTR0uIRXs-Uw7lKR?=Idzw=ICyuW2}+bYN#DVaw(am|aH%=u`Qnr#FKb+IOka;6o;( zQmC}_P3343Wnk)Ig5G;kvMvTHBphNJNg~hg#~1zh^^VkaRE4(-MY~qTfrY}TQJdH}{o`QMcUhI55Lw*%VfV$2d zBon2hQ5QLkG4Tc>Q4${v?6Nkbei}D}d2d?aSf56qp<@w2La5_~s4}|r9(eNt5Yd7Z zQ{GPZqZITD!3YbB4Z*+>w0*33q_vNvk;vJW^C zMq;=dEHuGmx9i=uUd-n?^sN^s$gQL72jPzcGX3V32)6R7%l>yP14Z=uTia8;BVZQ8 z9|8+Q?8mq!%4YW|cky>zn@`tfEU3e3b=|u&JmubcDU0)h+YMcUG@wgdE;BZqI@j57 zNwV69H@Z4_+Ta}IVyPdCWU<(J`1@+M_7SIQbgYh!WfD9j?=~5PW3oxt&A>m2n zw|o7IlH&Yfku(*F`}`-9MJeoJDR$<`;xgjDO>81suUycVC;{0t2Jz+m_elhLf*%{O zdT}c2qz?bWZYE~`4x(02D7^;Kf{$H3R_Cn=bFMpn;#+N-;DzO5dzaGxf;QD?uf=`b(ejf|dO_}>+6Dp7FZFM# z`FMd*U?q2yD;bt<)M#8>X=yMRHxBmC*1%$KbOPI@eAE+_J6hFCvLDT2qgQV^XwBL~ z`cT5!YjS2m&;Hov0MVYo&EK(vXSSYejtTeky$-|oyWi|D)r((kq})f=qT9K99QdWJ zF2bj@xMJ9}-1aEE>Za~PKt1ukz3rh{VZ#{v36ED5hSLWJPqg4?{JOwM>Y~krpbz$l zZvrr#aS>8s|Nrs zE^lq%Lyki#@@ZWP-|XP!xtsFPh(!t3f-cT#Au^EyzAG z!>6+Wlf$mP167>ICfZ7Y&7XbuZGaL9hbz07fEMEDF!b0LX#rfY6^4vcI#l3U}w=xDLFtKD`M% zkhr7b8Br4fkMq+5HLlW&m&?{S#emvtj-Jxyca~H54d-NxM#KQa zPeJ5V`C96B$dJnSS4Si!&)gI20~)zz(3c^z=K@8d^(f2j5+GQQ)! zZk+mlNv-;k;(YDomTPbg_*%hL0&$xT{$k;hs!3qjpk<;ci9xS!+<(Sb9qV#?^nT(h zcrp9X1RtNy?k&taeofD;;54e<-u8^u@B3H9u-^V$kWc=jvikQ&Bh^ja>1imLBgzAG z;`^SmmoUVUvvdep}Y#>D>y_Z#1QRjbAZO{2Gh>zVn! zO{GSD9}C>>AIJ?Dm>gHb{&KhQ=MDA!Ug#U;i$9?$&pUv^ztM=ggVdCmK*qPdK|nAV z5qOU2)<`*m)xZ3Ji8dfQPZUf(%qV+g8MMrWa&fP!=?RugH-r;kLx0o1Moa7<%G^E z6T%dNS^WdJUwu>q6inJ9+l&^9%iZh;`idfjnkl#W$(WiLNzTT)S2|<%DLg-&<3gV2 zl4Wqu_^}V8cOF8Zj2*9C0Z360pqp2rJ;@0L8F`4oUPvf(?@7plY~MJOs$WV}khOKf z&xNE{0v773twQr)UU32N9Erl*;g9TmM~U~{jx?a9)`-Ss2Yia^t0T^faN`$2<8rdO z3t7~e2?NXz359LreS{?pFc`wp|K0ig-_k30N%{&Fz=>B43xm`AC-sD<0OpR9&c`DH z{WB53$Z-l50De$<6;0)u&&S^Lhqfu2=1K{{;2rB;8HUNrwCz1uAxNQH>!guJvDkr)O_V#h{iTdTz)WCiHzPjGc+5Gpr+4~9g z*v!u!TIMNw6nrFBfK!h5@?D$_A(53)+&zc|3fppPx$3&88DQ*8vf$h2vpz;LmQb#z zcb}d}FfFN_W4vha2ilTD`qyXss<~o~gm?RM|1L97Ou`y)t3f_?%x~qBqVe zUdo;2!}$2W+V~}2hrD6I&v~HP?mvTCz({0?h)lBK;_DK8uThx8nDf$5abGyDy8JYL zMKZ&BTj(BxLom&h^q%pa$^UrY? zQ}yja7t>(>ZMJe(|CU@+M2&;)6qoWei}e z7m-Ur889_a?qy{qd0l$_mT{rOIfP|lS%8L7sEO;%s)Vef^q)8nv-4Lqk|X3`t1uz6 z3taAC)}zmU$g6jAp*-d7a|;for=lYb_b(}iu3KSO_J53m0eeMhK8zl=iiOAxqFaZM z_GO9E**}l9Zhpa^iP*>IM!F4X9BTzPjcSipckdkXJv=Rlv_3a*VVroWjk`HN-lEi= z^>>J-IQnm`QJOv6%GVx6{k=x&mdM)itxVhP^rH92Zj9qWNxr??OKGo(*SIG4t)3QQ z@U?Gp#6F=Q$&RQRiyD)<=@jIKU;^KGB)I=DnA_Wxyx#k>E6MNbi@iLjI=*qx(aF~l zFN$+qT5x%H&&f^YN1{4Xq_@{!l_8IekZ}3K;Bi@boAY$Y;Eel>HOk_!1Ryx;>ObYW!Y$zBKtTOtRHLub}bvhhl`PM3s_fU8lDh%=q{!+Glw*Ilw!nQu*CulEq+ z)tXRWRMGN}#u`+S+c~1HKbJufIS&+|=lwCW+3rQM6#wf9(Dcc(Ra~jx!(PO)O9B+F z5o*|7S+-Hou>Z9NdE_?ljZb?BdrIUWSRh zCuJE&zyS^i8=98rrk}re*vAeLnB!j;ctfGF9PjY2cD)A7H%VcZ{IUE2gD>lvw_y6X zU|s82FMj&u+BH4-ZKbJUY7=^$*i00%;n@2t+zYl%KTq$sT7N$v-dk_p!X5UHxLM1x zOhOhJK1-3s7zZ>i>c@HJ6*wXxZ_?|`OFkmf{}UtqFF*wq^Juad9xPvlQ+qhsA+4eT zi!r7KK-I8;BCA+iGvtMjRnADf$9J6MNq$wau0H(1Qk( zww%0J-jbL7$v>mer{HP{w{2vC5dp#f$6Yl=P^k(-VlGCkzZ zdWc3j9vXhW91zx(XPE11ud2Zo5lKIEIoZhd_^l@x$%^MLANvt}^R4z!`KDh;dC%Ac zWnbd2Cq@6zG#T9L&7xYObEjI8zCiC&6b;$0HJENFLmZ%2oM3VNh=+x&%H7NT%_r&5 z*qxpMbWqFVA~O8%Foj{FS_4klBFbx<)#Pati5i>-ve==9IKPS6+(EyyvE?iAM^cPq z^PB3nl>RU@v-lKgPw|Ci6tO?pAp6i*kL^1f@9gzElA2Rz|7M(#6U`HS-C8uAGMLs{YN&)1 zTfyWqo=#4b2wMRHIIjIc&Xn;t?Y{T8S6Oo4ODf7h7L=e+*{7_Ho_G6HQp|v!0F`ZO zSJZ`jT%p_ji5^qY3wpP&-eH0vS6R)Gt%@14UV8I`~4kk_}hE&6C(-RPgHLq9+NRciJ_;q_>E zdefnbN`hAb$w3z7XQXoW#C4CdTQIaj8|?^8CF zb3md=HKm84S;}!il?6%ktr4#!kEy=XcsS$Qkr(4*k#b4N$E{8X11A|s3!EhPQSwHt z4i;5Oen`sWhXf2=AW{gaDj;g6+Kzm%LUvIyMA*C*uF1+SaCcE0pNX5&pbr{E+zP*t z|E0b;J!(qIlbKqF)XQxr*W){;Y}NishJ&O_7Pl!h{wK-_zfxi6%I5Y!=gO{O z&8szj%d!N86_!_bfl^ZHg9P^qA8K$H_(g(VNQVVxJj0SfRl$YcPa-bt>)&@s3|rNF=m?+qJZQ&`+^zz zvMr7$mk7mMhIb3$wpi`9!*y>&42cqc_(=TXG3Bbykg%%8-G7TE%$50#Skr9tmJ-rxm`C165}tSO5yk!mr?R#We3cEn7Qbs~D10g&f}v z$#7=r@~L?gRczDhX@r88Cp9$~|EQ{>@3a~rJ-?PYCF`QW^;P z!bmz8Ni$h6X#{R4O=qH_3z|e$(Up#K{FaOwcTDn;SJjB*ea=y*Hz$SEU`m*hjdWwB zl-D~wybiEdGd*QNJ(?0D6YEFBz|=Lq`p%k*tP&uH954Ewl2iDM4KYiBI?_s={x@fv^Pp? zm)$w=Zq-T4Dav2Bz(vT=+54S-PgFUZ;M_&}u1SvLZZ|QnE__fAL#M3Io~60271M(2 z?cqD?7;)SD6IAre4#nCz#7IRlZ9E<>6|IXtYg>W^kgy88&iv?`>p^Fo1$jUX+f;NM z54&mL;aq2w?RXOpdf}VztdVLmUiA6ulT{YDh-KE+h3YqIEK>uGA3V}ho%Iyb*3%m( zi}sZdkgE_OV_Jn1Uu-WvXs|qd!KS7crKaF<@cse0w6%Ho4k`Wp0a(LiJ~|IB(#-!q zY`tYvT+7xriWA)3g9oQ^CkdLy-CcvbJA~j4jR%+D?(U7dySqDF_SxrszweHFf2{u3 zwMO@PYStrFYbIFq58`VT@XGVCjR6@7IO#yx(1xIKntUWIO`i-|EMfxMevn09t?82A zaKM9;!tPO!)9_MKoNW7U-y!z>Qc6^6y@oWKl1_5mQrW%Y)D5c67xSke=6p#74pyVy z2wtNu4g;zPYI!a*O;(o(!R^jk7-}pUfBPzZ0W5@^98;FQ2pM(hGlK9W&1N%Z%`f(H zT0zrJru3mHb;iYF-;+@DZ;UGwhV zIYiO+?-%9>gqoHxi>a34i1}_-tDxyH6lO834&aJNuz<_yA0Nv`z=nqr?@eJd>`$-K zPi4iF2a%zLVX+Siioq+2P8EiW3e!M*91SW4V~V4tV_vhT@)uT&+u6&m#!$HER#SZA z&~MhESuz;sF;)cEssfLJiVc_JRHvci>{3#bBKqGW2q;a#qKXxLoynI*FaFD6$}!N@ z^$r$~m@%+_%}h)c??zjJ;FBvL(SGeMXs6XlaDB>xz#ZkJ3jAYr*q5MKD^T8Of<3mM z+nAtQ7rUh(UzEc0)OYx_I*r;c~>shW=0~ zApQ?hA#G}s_Ci;-rWK_1G5v3^kYoCc0lb|SKC-ALdgJ31`#E*I0ggTzs2V%7dmMFx zr6X0cle0VOc~sC9Hfs!nrTn3{=LjCqbs!dWz+MEbvWBP&7EQ&0 z5njH=WwUUj82_RaLe*ZJ_Aex>>8qoY#2>mkB3AdLO*8B^ zUd$E}GT{6oQO8bw(@!b-NvX?!UUTxayV~?M%4_OeG?+D544r`NH7Qb%veym{^v{-} z%)H5odx&E{=W>)06`Qlha1=dQy^rjdk{=WPO#jcEAV4ZWpfq44U?}*f@USWt5KtOf zf%bq%{ZUnB#3@M;l-s>LfU=Z1AW^};#V>+kyT8_Kg#dQi|5Be1ibZT*;OYp%u*C&l zmwbkYLoQ*(TAkFQIRczZH%rWlUOP{-8++ccd_|lwpSTxGwXaW_4=fqMQlw$eJ+dS0 z|5yn?Y+!Yo0D^%Cv(F&^TYYpu3PCrrNeG)L*v=FN5Qkv;H6^o9l%@ZlsS8>IlA$l> zKYy8Wi-O4zQGVyuhscEq4!%~4J-TjGQ7sv=FHNo0OR1GM&q}BbtLDlt`+QuH9LPhH zDfNLIrLSuxG_v`Nbfcq?|G_9WfSUYSdh?6JntXE@Rb7jkg7j9g%Gco&CAv|AJ@)IA zM=;c0sU~YMXc%Zz005+bfL0{(ff(>>0pI#nKEM|5b!GX%9jZv0A<<%h(AOrZQIyy8 zCF{iKoiG7+zoi}nZcla}2N7yIwM|LwzKjmh?nmZ7QVo?37h-#JN*dwL`(e{0O7Xzr zvP^wSZsZ1q6L0$8Jg1pq4WM}Mrn zVLC_^__F|II>};SkN~eg(cWkYa2648_|FPVAjfL>p0&}rez1_FgGe{mMkMcNtcb&b z#EDAJ`s2;m91^9P7$G&1MMOP}F}p~}QABS~X+nsi*e`u=$L|D({Fg@8UtE|ROo;`uPQNl9bln(xu(d~!ZI9oWKCya( zVGkYzB~tCYqTShi?1LV_?;3mk^viT(oLVY zJtoI%A40f4>ktJIX&+bd*?sA2&E2I`aDqy#?#C$$HC)BJ{G6{2Yt;oYRJ*@A#Z6ZY zDl_TJpnihlDD^qjd7hB*dm>Cer`UttXySew()eMtWCgZ$*dpglHX}XFZfD|ZU*Njzk4t3O=ByXi;tN-6g4*mKQq_ip`6OCzQ9{2;Cz)_d? z!(j6-X4nxsyjQoANvp_Qe?GP3CkOv1DLAf?h9n*-)DxCJ!Ob2qU`A8L6lGI{T(dY? zXr@pc&x!(d#|hu}iP=000C6pBFzmFNQo=s*#P37o^u2xm3biua^!7bPftna8!`e=o zpU0LGX(wfLyAV>Nx^~9vmYOLFXzU;putT;zX?qAqS?AGK9_Oek-p_fC;|}qfkQ_cR zB&i4vsIp&)lMgkYjr?YCm~*FAf0l4qNDqn`B5j3$s4Ia#T zHC_J3`EoL1m#{`s-29*^Pup6RvSbn(GqudfW+z5b_m&7xCH<22mxUc$(P9Xg^@GZ! zfC^_rzQEEfR-G;!Tf1WZ#s#dI;yJ{wW79I6Uxe^wIAREn^I^G5qdGrICK~IEm0AfB zAS(2)*%5^ZHEGOK;S*yEU_*17OiUGI9Tgl*HQCDizX<#RD{-=;=Ih6J+c*;}{$11- zABqZ`Q>ez8Sb%|~pGJnUeX`6zr%prqsJxEz3d;Yd_{yV1LsN(; zxzQmv#){33lA7CqN@P|T6&d2rf}Y4i+iOT%@h{Z2Y8m7s5K?In8#2v0jceN2VT}Mu=8p?oQRD;8RxS~MNzyEdod8Hv`B)Ei z0ykC138x5uyUtkj3;O&5GOfie+O!{eAwryiJFVEG*P2E}t^iM-sti)o6eAaU@%AV8 zbmL6*=uUc-drki6TG%N515z5vOFi`A)6u9-{&5MnmNd7rEsX_lrI)7#pt$%R7yh>L zO>2*+-bdpiG#Tq+1!73J-I%{!~DH0?})G=vHEzpKJI$$sx08TVVCaI zpxy>%Ipq|Lx<^zHw}@cH-e7~1rzLAceW;p^>tS1?goeCAQv}Zz2;C5SKlnzDU&PmE zO}U?+)}X;d#FbMET7;S@={!A1hFlgaoo8B+Eu9DCOX)M&tyfyM%yw$llQkHKR;WT^FRLUF(uY7 z+zH;6tK11O@^2`-v}%3lkqkNPcjtjmh7rX5b( z(z=&Ib&6zHN5TK2cm7p%(@=D#iD!916(g>3jwJ@P)lFsmQXUsPJTQ#w+Kco~luLc@ z;SA`Ib$T5-c{y(6te^Y;mk>boMNH`==+yY&@vBHmL2J)Pr#wvx z!Vg|evdofmMLMzp-pjeh-xt1$2yc+8A@3#o!RmLb{d9?!S(;nj@pO8&i6eW4+c{a0 zNn)uuudiNlwdH;%suB!XB5L%lu|#W9W9J9ueU4FY{e`VGfA;6(2*qgRGazNMP2EX zHhUJDCl~o@qYC|+RE-+w!h8`;Pb(IU%m)JEXA_oU!Dk=ZB7U}vXCH|*L1EZ7e7%XQ zk;(N~&&My7vBmmaY;dLkr8u-X))6ET+!WU08~z!SRo4XXoELtDZgAu}1?dUI$K92X z^KJ(^E%e>@P>WiSWM5xMiurF=X^R9?qB;e0?Z{+8HCm#pqm$3EFbix~BzWI-*Y*h*8p$OS#E$TZ%3P_&z1nOEWP&Q5Zb*`fR~*i0i**vuGHXd;5D zjQ^$-L~t7QNP#upL5VjTV&#<<(%#VKZMjfv?NvRjF zrU=tqXNAPuyRYqBBVX>fCj*C|rmhF>;&<5Rkw5C0SGl;#sz%esNp5gi%Ygg5VQtb>7fEXH5fFJx>>x#d zK7YCOb3Y>AhLk1&BO8RU_oR@U@&Ez|hF|~`KsrDe0<>kJ5Ik%hU^>iVwANsW{q%|W zJFSn$gjImXrRXuj=j;?kpBT*cg%20-YN`i5ZK%eDglc4dzH5~XP4UQ$GSoOH1p#aZ zDBQN%3xVcGZYc1BzaAZ*}?QTV9~0XFsG{3)?BdhsB27 z#E;e>lhSy}N)0qL^!FOw?BTllYl{}|JA2)e(EPaGvsbK@QW41$X|x4`p_v?PNKp0v z@3Xp7DGJv~%;q}Rp;pvlmGRhC{^wRerT%7DoMLNy`irD{NM`bxg@$2ZY)ffLnW3~8 z&QOi3TI~C8GnIrAK!C9+TYPsO`wx7o?)LdKy!xZ!*bbJ zExE_IvO)1O42>gu}zAwnP8>DM$t`k3gl zbwIu^6-sD6s|gEFeQcC;3sMC9L*Zz`hqxSOHOXMD@gEhGt5+4eTHI|vOoLZ;OPLs8q-m5dYCL zSWwtXT!F=44syNARr{-sJA7^UVxoxb^u?lk_nvL6Mu+|Q>|-hI zxA^$(&!9aj`qlkRs?~i2+E*t%s?3|Tjk-6gA-PldI&dsBE$rhY^b1Os<%SN^Lj;k6 zOgJOwY@SnwmQ3?PkfpI{lHE~Tfi!#Ws8)=!8CBlv`^)DU1H((WL<;0SSI z(r$Fe_6&jsi|(O2rW8ZH-IJ=syZ-%#(&x2S4mWzFLW#)cQi1U`@{Q9p97YBOrB++x z8|r#Ofb`zQ5@FXLM5+hdl0QKo`n!PTntnPO0V2#|*;3NSMtD#V!iDTF#tWHH_bN?; zP;kqw0CmvIG*Nzoch~xBr=I`DIAjFo`5W7({Pkac^F5uV7+}fPOLpx1{mqR<{B$7# zcv4x2dzwtlgfU0i*t41-rJYJwriZA-ffF-SR(Q}iFhG$8i0T$JEfWA zL-#|wpNUo;%9oLIe`GC8ohIk`n%v3f%(HPLV&r9;_!(3EfBKGP3NvG2x?FpiQ7UMeCY*IQZx2q`fmhfq$i2> z`$PT1res}bBV|M^j;5v)$k`zP;{R8L`Y0QzRR(!LfO!7``zQ!Eg2ZT?hn0yyqW`x& zT$shW-(lx&Z{M`BbI)L117FYKB*9dqEYG)+ilodgi7(^XlqDiU|B&hAB_uPtJ%*YZ z5w9dN{js>Ck$khEU2t%XvGej^1#Bi|R(7_dF&>_0d8v(ZH?N|Mt_LdjI>Lu{;y3b$ zv_E)cw$1wnyDebRA0ZfR3*>wMeRQ3_f7zt7AKaUBbiLzn*zI1;{^p@;eB0@k=?m8^ z^5u34iE32X1=1FuMO|HxOLs$0k|mDD=|*e{woi{rPM*amyQH-VSYZw-R8sC?Kb5RSp%BN|!;P)Rnr97*iiI{3C zdeq6Dc;#`kTH7kADHfh(--_%XIH!eXk73L)iBRa%Oit^_Nce`LOF1k6pTGY~x z5pDH0racdw-&lAm;!WijoTtRU>(J`FKOFD)(A_qFXM1fqZo~j!QSGVfNuWV?!0%VY zkKB#Wk$8gfKDCQ3RVi@8=!m?aIIMR(gp@sR&JYDW$5M0K`FnE*^(M}851wzj??Dy$ zctPtSJ!WzYSDs7p(;RtDc@v^NLEg7DpTqXuc(2Fbyn)V7u^dY}3VU%xQuVF{9|ifw zwI4FI>vhBrZz$#OA3U!PxprvYDzqH3N#bO_K|cyML1gMa`D@qf ziXUF}kX=M#2upi6qdvxRcz^Zn9qsX@vNqp|4j5y3lW-7Dx}q!=&wrN;>rN%pVkjUJ zv4Feq^uQ2kd7*rK|M^notpDd!&LPtGK<-6&{Ox;l=4CdXd~m`0_prFstR*^A;_ntT zlG>`!NzfLer*b>@FYJ!6D_##+u((_uvtt8B7fe$RA#0zlC3l#noTEF$&iL`xKC9S0 zF-e1qAVDIU>aIxZZ7{mp2IT?1WGmHI0Cr))RxzPd_;ngG*X%=5D36den)~f=+jvXk zC+ok#-~It0Rl&U92W6CZO?%PR{rDz7nr&|J`+$U{kgFj*phdM{Q|Jy17rog0GIx3`{Fv0Z28b+z)xcoh2+0SL=`~+M7FjF zW1#Ya3w?35k=1=6rDPUzaGheKDL)w|yuw z_;Vr7Xq`Gfl~5dZY>-NH0%M9wA%{B8?~gk^`HYjjd@Xlo@v(Oie8kK@N~W95-kCO@ z5WM;yixW9Y4IUy)YLohzuL@g1*P6X06F7i^KeC}R*Q@PBF_f(z95}QLdVTun~ zn)Qon)7u5|iW_P>yl&J@3*I-hGVIT?F)WoIT7LEv|pO2q*a~g~#^7w>Vw?d-)h$v$3q6L)g8~j=!70 zwjbz(>gcc)!fsmgxr=Gdy9sSgg^axYr2jABw-Cat)jz@aWM!k?!LWcH5X5wvYLv+P z`9C7G2x^+_kIz6CvMEi>ngEiIe%P3Q{5~1Nlx0B(Z{G~NGf>cxurWc;J?N|zb?xmz z^1}1^0;B2e3b_t%(&&mETIgC+m?m=Z6S*n)ze$2Wm;Q>;lt!=r|D`^lSL7_okVl!-wf1j&=x$r7>Rnk2uRcVtuLoV2NQ2c(-Dvf(aaCXbp@JjYy!%& zuCb=>i0)ygt*)?QqqZ_*WdEDy`9HV!(lV{cnP-t#XF`0Cb8`DNdR8(?+YIloKECS^ z{bX4wP58FL6!T_sU5*=o^-X%4n?9vj!>6Ib2j-9RIwo|hESc_znBOF#=>X|9aME(2 z9CP+x!eQXk5XRe04C~WRmYMoUa4tYSua_m%w|bHpJIAsG%D#l zmjPSB*;i7Yq9ryWY`JhBMO!b!gMvzyH+V{!+}q_TSpDhv5bv|aWgp&7_1O`U_S@6P z^^6yAEG(xN^G;3Ki0swQ<%!VCBDE|Cbp!FGf@1>(4z&Cr)@A_nA@=P((s{cK#Sd0CiQH~{y!FHlZ!^`KCZ~*9pBYYHuz0&Hw+dn zVlQEKH5Y1KuRGm(QnS=3AMP_OG`!W*ERFqCv0iZRf>MWKPU<9U7IYtnDIXvZG$c^` zjPrAEs-kgsR&VGXp7H?$2qbz4Q_h$YF^j?XM(kz9^52qrWr!0JewB_XZ%3YE%?E21 zL}>hLLUz8_U*bHjLoUf0`C`>(fS8SZDHA0K4+h<|MBi&rtk`VvGQ2ta&H)v z93HtH=-Zys7Tz;2xl>bwHaIQ#qr92S1x1VO=YGaM|L&bXDCnKfbC84n*bX2`toN)b z8DX4bskeRQTmjqnmoFhR(?@1%R!tX)`Db}M&AWuSc5TnXI&2yIC(f}qojeDb=L}^V zpl1xe?sH2FPbz^@_;eKz27pReFz-(Qjt6w)j;Z;4&|2{eWS}31Q@|B3lxc#7^KV|f0_;L7@b{zrn#3kcnZyyy|F zPxMB#`^MF;E(lARWZe~JJ4k*j{wE3c@AawkMf?p3B%jVAkPqknSA78F0yV%^rl@vJ zF3)mEeXHTVVc5a|wDIjoiT!tM>_V1Yrx4zebfYlas-cHKW&p4~d${T%r9 z`-_(1?-kYr>hVg<|YIrgR^0Qd}+#oqdH+d7R z7})4S3bP8c*Qs4@HkZ=P0t!I@@M5XhhitF)>H@<)%+xy`l z&7>lto9kZHqW;BBHxbdYA6H-|ktZQ7Om>STI(#--0(;eB6n7N%&!>xL+dulAZ?Vbt z4L}+sbDjx@s>5rt!1h|CDkV;rChLvTygx5;q(Pl_=rB<)`GLPeU-L}krj;8 zy^1f2o~0yiKxz-4k!8UNL#bbML&f$M$EjM!G5Y++mB@lz2wOk^fUSfVkC$Q9cC)ZH z=BC03!}U^z$UX4=n{SFI_xa$uI9aODQT^EdwIrxPkGnzI#kr*)8dODX;5I`329FB#Sz-82pva_6S9HIXgtwx0!;R9~*!E?`!q40K zezUNnp1p_UT5FMxg!}KRxf>4d0g-%&TDc43p@N#mZ;&l(?{{?tKgC54YgX4Fi}s7b zQru>1^@`q=F888_eZ}bwF5(`owe-?Oqn}SVTQX~~Jp)EZm)bMBS(m07)+3u}6~QL( zaoMd_YVJ>kQg;GZ(h}3yTM8tRyP=2v!UfJlSOzxsBCHiD_ao*@-bz%Ts(AFH*VJFG zX7~dC@RrdE=l18Oe_v}&yLx?*<7#qo+|%%{Qn+E` za2?Hziu08c4rlcH$x9MWfjmR|D=YsFX_d!t$s)ewei9a}`S~nM>rQp=`IQ;ifx`5Q zr3tL?*q{ixR9G(A+ilUXkO|`_CEw$(A{AH~dUYSTK|({S%Hn_W+qw@7VX8v}diuk7 zX&t{dj9)xwE&qnThQ6PhQ=Nm?nL&;ZdyEnLMJm1eHpQjnXl+$h^yjzSAX3dIZ-#h~ zuX+JRqvI!dX;PY~^eyy!%+jL=+%`3%=^0zE|4kd!qvqz-|2;-yGTsFTxEm6D6Q z(B22CoUe`ahIH=k!6_C*fs*>2V>DfkT4WqP?=CXeuA6_@KD7$hs2F}htVbcqsr^>_ zgf1PxmK`bDeS?-S$ju=?*VxF`?#2m2{TH;^R$5?&keN2AlbONiTykApdcUaceXQ^k z$>UUpX|NU_fPMr#?p2c>Mh9k~r$Gc!vN&v)i4ZST22Bvv7Z8MS4K_+V*tXbtPJ1iw z83J2a|N1D!v-G{3t=Q-|qr5jzo=4l^$VsYMd+%p7mfZY9Ur^ zA#*hD-hozD&~w*=kz>U+UvK}Ymc_kt#_R5-POj!ho3yDQ(ztMww5*+s(G@QorcTy; zT3CSuHC*Ge=~D-%0C6ANsUp_*QHgyPDr9{U1v++=ZI}$NlbAw9b~U&Jv=^EAMEOm& zLOZ-T5O~mriLZ`ewu(NjqwVHVaRssAI}$}&us8`7}wgeTm3%FhSHDOY4d z_2NEF+{C{?^KB(*zTqB?^MhmkX6!WC3M;|3#zP;I>pGYZs^KVw2fMr#B}Y}XvX;t- z?O!h?&$+a&S(!y?NzLfFzqmXV$%J(Egg1L%(M;#_9$hMMG;%0m(@p$R*t{DN>Sf8a zS-MwX^6l`HR9^tvPj)I80V%BZTHlCWdkqV18|nnxdm7qZz|Vr~{GGlDzT+3_-~zCr zl)j$@Qb~Q?s)C+IqsQ$_+zOWO*d7Wpq(nhoouYkpA3bD+yt9e>V>&~|aSRkMnWf;% zR=HCC<27!Z<+M)GH;y9#&oq1jxwdP8j4nsVGJ|k>nUeFBvgN*~v%s+=ha~02CY1x8 z#VwE?1(h5|DdYw>pOBN+Ji(+VI>%a;}p%Et4*X`Q;gC{>N8A<#JM^$g{ z*G>b)uG(Z?n~?@VH=z>;^`Tj2gC=IRZ?X7A=wFk;58Yev&~cSEc&-SSX-X>NgkSIa zN~4C}WFAxb39qDtPI@CDrRV{>@psiBUhKdX)-Ix}p_n5I-vJH0`W4Cpi%lvDd`OmF zF0W6vb8geJIEJZL{$Fsu?pOeJ;s@z^TF~;2mQDF%xE#K!H{IWCCe1Wv%Y>`YQ!14h zFLASs(<~AZIlNS|LMd-rr}8AK8tUkGZ)5Tw^RIK4zwneV{Ccmjr{47Gus63wHmL(# zV>aSJm(b<1=~a0rFFQ2W;H-`QY{eqRWacvYe8-NDYs1WyA4Kt^+&3|1a&GkRQBQ3i zD^*{znJ)RXi9!xKSilQN6C2uY!8aUTc%!c>yGPHXYg}Z5Z8V&zpNH$Cb@{Flz-(dusa#5)(e60 zBIf^w8-7^s9v(6q4p+PX{p_Jk(=q*hTq4ZXY_-MKi%iL0JGD5S6kCWG%X{*ka~ckm zbKWAHoVe=!d?$EZ?U^u~AQ+Ooz(}9+knD6DoEnzRkQ`umlu>RY#p7)R>@TQ_G{Rjd z=-FU(>bUTU|Gq_p{$j6KyjX+N62EUcKC0v;FzmXpfl#rwzg3=6TM(HgqPFssaZmR{ z!g8U-xR;-R6domnr8tB4>lb0-or<>b+GXd-(m2_0bPPVcA*ayr@|H%`wC^*_=jiu#Z>uLOq zK*917>mJ#_N(1S^=mwYDsLaXS5k{ZZPoFFuR?a|06cNKQFw2)ABp1vrNF2MMz2Oi} zf;*cXpnCy{>9-!Ms@?RdT&B+!DfDqJJH+t3)P`uZEdE^u=~FUP+whKB5lp1aC+jSZ zVzv{k9Vdu|y5$DjpQIh5AKR-}vf#2|;Rmd!scRp)F*-OE;13d7Nt#OxR5 z!lR=P1OqBBUBg_y$!V>g=ym&cEme{9(rQ~jJ^@0fZ*NyyP&$^UA3*fWBC9;jq0r+) zqibv16O6qvjAN-_LZ4}LtG3Z1wi?CZvDjY+-x8tT8O)l$z@&7H!`Ka06|{-j$_jJI zmgNDi*X7F&;XeV(wTO41-h=~J{P(?MK0C&}kZECX!g#I)H9IeZ-d^K<;ppGZm>-ze zkZ$79D<@JJO(LTo3bK?4YmQwfJ8SWZyRA>%21L!jdXU(#a8WlGrCHpTBzP@X*$kdN zHpGvu8doEhx|a4P(1$gV)v{~RN*#HxpOwk!l6|hhSsv~U@9uU$vLq5J5#%-TT*gf% zq{(z(Gqp3uf|(@`K7Agf7Sb`G6)UA$!8shKuC%cwr^)fYLXtYuu>oK)Vj zeb6K4`c;K#XqN%WjsMEn%gX6~-{st$Z0p$aO2u(b()xCR+|N6Ms6@i39o#Y$u2*?O zX=PTEB&&mSbxz5RgWnPc;nR8{WxYYOVUblSu3F&{aMLgIHUe)rqNj}oQyJcOX2D58Dv9c zWGI%wn?Z6>s>g5C)jBX@^d~YB3^q-yKUJMSg^4aF)Vh4XOrbb@#;|Czm5~5Jy1D~$ zT>bb2yquVQ8RSU*(0Bf!uU)v_&&0;$B;{+;Wq!mbiD^9gAvi4H82nfoq^xa=~MOml)Sr(t-`n7qHWn|6lFYP%a` zvc%G;d7RGISTEmzW+eyuyr?$b%^y99Alvi5=S>e^%J_`*_%#e)B!A+R8c4B>`ztrerUb2;VpdFf^_jz)X@?Rxz7OTW*#^uy)3dd5SGsP^`uT1B@ICokkm#88 z!C!(h_OkS3_3X1Jv3N47&o{i9QZ#cg39CBjb^<&pfAO5QO3LJ$;PF+J)h-%jjLK#$ zi~D3ROW&9^Kvgd>PZ!qf4DrL>C5iI$_>?X7x}WuC*4?o96v+zXwR)#Lb-kiGU6p}Kj@cQMTAg_b;c6RzkdFWp%9f{|asaPB>Sx1SBDlf5;H zoO`NSRUigB{f}`TF_g1`Hw7H7J#DS&Ayde}?Z{5Dz-@i34o_91Xxli=W);TZg zEJvYT%?iFX`DwbVoLZ@K>AvQB%W%FZMKe!plIN0{CwjeMXWUc{+SV~HF431|Z#)^w z#lp;fzmC5r6+U0q#`QK6YF@yMJkemCoA z?X+g5!^Y1F7*-jnZHyJFr{Tg)z6aXMj55YF_Vv4P!0D(zSA$0xO)V!LyzcmM z>EL5u_(?Lq!uF?itXdSLwXe+G>9b+q8$8~|v$@sHL-`!0d+B}x>>hudixNKwNq@$; zpA6E`Jk$Aw7R{TZren>jKDjy4@kdb(#!9D89yKX+%Y+mz>YmTt!=t%yKl$9SyZcOHo%@$-cArw6o1V33*oq!MKLa_BufK=arX0@o65n#y8tvIBl^{FhSAcgKUvd zpJVoRX7F5?i!kLzx{sAcc)~i~Kbr1AT7mvRjc8_e)D;=d+=O`hrT!AXyR(5#BbOxL?`<=YOm$L|D1v3OJ)A>ONerE=guG< zilbMeY);|i7gGLX6Hn@621rZ$in;yZmX^s|*eP6BZ-e+fo=HOfi=5-WGo>ZIfsHvI z{J@*rk9qv9N@LQ80vBeM_ikSumTyg6l|VkPM{a=jPQlZ#j6Mwd_jJK}p);GaIsC^R z^FIRQ$z~?emw+GeApVjMgK6!*feJUf zcF@yc)7(iq^iV_DCBltl`E@cl<|xYS16ii!q692G@Up^nSDFp>oYSXD%!Btv0TnyN zn;00d7{PkPj!_~T3i~Cq?o4Nq?TkNb1o*Q>RvG<;L5E++c^NKNof^HYx3JMlDE5H_H0Dx;$iNyNJ@ zuWE)-yOJ??6tQ>QhI4gXJB|ZJ`MbQ*o=W{kQ`yBrtN=Q`4yX8^>@Hul+6aCrap=B} zhODiCZ&JJ1xENdx0BgbW&e3&;UhXGa9Qx<$C|%RO8rxg5K7th&(Po(kQa#Bswc$W| zOlH$tpUFdB=A_@+BQFwzW3p3Yjyt~8qpR8r$|JusR6vEi?LmZ}#hX*-c#rf#WXcV^ z6F^B$pm%nuP6yHPG!nv}o644rEn@iL2fxXAYUnIlUtTYndtUI{zcCuMLq`%jJzMkf{=n24zNQ05rE;B;`El}= z=+6rhyh=UsyK5%4@fR}$*XNrd)<1GM^E)tgR@mWpl3Xt^ye_=SeUe*-sQ4;Q#i5W*qx>7y1bt6zT?0XDGr2K$JCCmqXK%ql6bmfq9moL zmea$eUa2c_edl{@5m41q*!=y|V`Is|sx9PwVOM;g^UQ&Jr(0ddKR!Jx&IM zIzA*Ll>YeSpy{zkpn00%082(i1%KE0ZEnl-F?r~h%bJkdtVZL47e~1@Aw&h+*ht49 zJLT!fO>KV)OqXdj1_@Ng{!C zEi=tkB+MT`1>Cm4G8G%m^(%??u{&>^`-G?34G~?)NDIrGTK(`s8D|xg%iA4=#2uY2 z$ce=iN6%l};Rt9Aw(7~84J#u-X2cJVKEm&Z}F7L+Uxt>G8sJ07vFTzb+oU9-hM1O`o-?JUU0!GW+v--z3$zN z;W+57Vov5A-QwW5mg`6YMiEeB`Qf7WBC$4=n3B`1-P%S^A~Ti581G8Pk_t^o9Z=<4 z%iWhEk9dzK{H%$PiJM2JUTv*+X`)fqA9Z?ci{|$A-b@FoZVZ2!XMRulriQEDms(8; zvk{uPjUI|LVOa(3YfSFn1`^-f7@Hb7iVnTiIp4l~wsdio6{33#Rz5Zmj9R;VZ z>X7+BXT5U46hF)hUYJz)v8~nO7S}YY3ghYp?YG4t%^w4`_!a&};nf%$))f(1^?rBy z9D36r|19SwmYZm=A%n;F%0%w~ukLxWRQ7n6; z2P6A&NXgM;s`hcJC8=vrakhY}uJboxrhu@3^P7ZWeoy>9Ma^Hl$1F>-M-(^3q<2ey$5|LFnt<*%?ZrJvC$EA7Kjyh%@ z%ir#UdRBQag72-t{X^0mr?YxL8~uqdM~N{1ZiK{i?2HTUkyR&!2s{Y;$~|U%bafz+ z2e7=G%T@HF2o_p|l)AKb^_)jxwDU4!)8nE8FzB?(`NAw&Xyd%$s-*PSqsy;|Nx$Q~Vd#{dN z$2+hSlBVC17SO0XWLZo@$q`d3YAMZ*^2T8}3MC1(6m zrId**>B)zZRS>Z`jP0So#%iHBi8F}#8|+uLtW33e!jBe>Pf^$VBx|qC*^bEcb0D87 zx|I#-C4W7;=*0QY#(Xy89q(I*PggQr4A;mip3f;yyFYqsGVro~J`y=J&F{yKm}#bR z7GN*cs)~_#Kk(lBpNFW|Fu1?5De+2?W?#5*UpFOxj}LL)IFZwP-?+(pT6fpkYY=>T z9R_T3SWdIhCii7&a#H!nkso7qv{hxwtE&5H6}~Tv;WI5l9dqB&Or=OY_bM^cGL#v>(M~bJPvV3)F7MKwe`!x7wBE)19b@v zLc$G3yU=-|*0l?|j_EtyB=?)@g@ZrSV(AbJ&FkY57euU1#awh1bx{(c-BPs%Vgt$% zVyDAk6j$22h{x)IrdYhTx6sVHO0Nl*o@CA(n&2^k{R?D_)ja8$N(-qq7RSu8mm0%9 zoy!p+-1uZK2~zx4_PnyBR;JCS`oB2_Oox|2X*Lsw48Z7ug2l&o9#1^KqTy5PmkgwB zQ$l<62}m(+=q*-Flz9ji6hz}Nm~OkgzkmRsh+=AT?%Q83%1u^^jYzofL=q&wVz)0< zEu1k~ATi^L6O#0FS(Q)HIqHl^&CCs6EGTYWiG{-&WYUWBY<9Lt? z`hHvA8h$#nmIefWTZlo@XrS=L<;0#+~W#LAe_r9{VHb32#uC zB)9c$K$eNOMs~thdy~lgE!@{T7d65*(55R?kMwKNHjJL3QcI{d{BM+55ci-Uj8(6FxPvi zPe^#9{S}FeJJk}P;kelnhxbLfDdxpkyc4?Ttt)jp8$;UwtvbymOU*8Jv*4pw)grK_ zmQnA`4f*vX_6V}e#l*P;1NF%A&P8tP(1uPLr?jojka`ghYk{KWxRSY)Xds~hHbkWz z;=y?75^Kx?=2R;^Y-)!Gz{6)_tG)d6M}8q+&rSFX4Gkk(o?wjGUoPv;DkhMN#v^?6?u>B8*lIaFSwGoD zADk0RBYxA0-%TZT<0=(Nc?iuOqie!o9~)h#9M2JuiAuASS`)xB)aWXWDzg4nbi0%J zO7=rjYX!w#09g%I&j=t{C9q(VImvMSvStn<_!M$^$5dcU=(StAtZ16bo$| za_OlKL@hJeUG=aI7QgbggGQ`{~J-A&JM$iT! zY0We?Rw>myt{}ue4vsOZ#<&%4Ad?N_dQomZet*jJVt;{S;}Uzx|11A-*lq0112MG6 zzVR3ugJ>5`!SZQymbv0ax2!A5z>i+M#PTrbzhGr}dq{opH(^6S5xennf6{z(Sip%0 zEU^MJGS`F7TOZ6Ao&MWlfKK=m<0mPP6*=r*C|DQLN41{+cdbhKUsGC9(F)(yw~wqM zNYClNQjMRV(w^id9A<(6?Q8Zxu(h1z{1jXKq#=Wu5I>Xsdn06M`jaM3evrQHsG`Aq zWRK$0&2<06-tZ6-{fQ8nvN$pgH?Mb=I{TSQ*DBPES0rfp<;7ZK8E%GrB0 z+N^@4A)h!SOa}I@`Q`AmLO#zk_&m$FMjV@FruU~?mMA|V&!5f@uf7wY#H#>5NY3S- zD!lFRDU%d&c)?ZH9ABFfWZ=+PzMIgJe6fK z6>pfgB`5h6;5Hysyz}Pc_}v0_+znTrriLBiE#Ju6j$K&BOx>7G&@NsbU42i`Mch0tH!@ z=s}-kqi3~Ru8mcM6TFh%D&&YTcQ1GOJlz#-)ndiI_1hZqV-@QgzflDZ&I{`8+~Me+ zaZbeF2}TzpsAagZ^ylARJ0`)weM^tgg0XkfT5GO@xgV4%+LB>U}=+f@1^HI{zn;EZNy4 za3f5blBRi_4*WqfL--+VCU_CvQf8+K2xO-MV6XZA7xt38O_7dI#z7#GS9|FDLxZ(P zUtE=$ip)5d+UZjc{E(L;!Uc^2fDdubrqX|L=8@^X3a$$P}8`0rjwwKwcz7n|zEuexNVNWc$b#5-tHa$yR^b4`qnu?#S!3yU zL~@DeCtZi{&i(BOSX4Zm3_m&jNd)W@zvu${D}@gXVrx`%apfp#^&)Ly_9KGIjw1_~ zlNGr8*g2taUOj{>@Vh-%=il8dV~VvAO1$x}Cyso5h+>WOnEwSIUc=&@AZx6x+S>^? zU?iSmw~WU{Me!3yB6Rrj4b#?s>Lr=ous8F32)5*o72etWzQ1JfEB(`zWR>bI6R*z)6DPVkEmzq8OCH1q$j{_OK`fYZeH z<4tEZsf5T#ZLz79EPBX(<*%zE2)f{tc}m`X;w1xALqSckA#e~euYF^xU7p$A{&Ib# zw8vzcwq!%KA*Pu)CxVakU3Uqg2ip+OF>uokjT_pU92m_WBj6H$8Lp7JOdFWT!Y~T{KZye?WFaqFg~DB*`e0LA#E zcLRY!C#Owm_`X7IBv~Sc%ixaUKuOqFt9shTA_RH9Gs}nZvO8i+MWTWU77<$4vbPT4$Or zVB=c(!`~WXrXXSDnt2%|f~AN|EZ#Vr)D3NH#J)=1_Em#`{xM_!N|rZcgbWigaYk&n z%ucYhcw&UadzzE|wC4&@2*(@lqb7lXHLI}ACa53Qn+sKv2*c`hrEtK|U|Z{ABb7G4 zZNWcVp5v0chjJMB()4}TXpZu#^+kC~_s76J`40_tQWvA0G-!YkbOlx(BZv-Wj%a<2SWbXaR`e=gA?s#n#f;KbK;>a= z8GNbPtILINW(;qAjp5<3GX1xQ34eP?Vud2!CbI5K9Rb0AY{((zWf+g}jpZs`5-hXV zx^wa1Cd*qIU{8oGCNWRn#bGWC_IqU=OLh!iNhX^M>*M!XAq)FGD+`77*n>O2UUNPxGq{yg<_5=4MWeq2;Yd%~|qt3#>+lsm>plOm5a)w`M z+v5YFJzKE737oS~$l(_;d|rTPbo{sNaypeTv5H+X+m_y=706`mP<4_$uG-DMdge32%OWqTId; zhWd>gdv0C08+wGYkSN0D6{45^kjab;4h*yG`-D7Ddf?99tB#E0o#EK{xY!J%zUleM z!7?MKxHh)fktl^X5H_X_XCVD+WQFB``Shw6i#HhP99W(VA$$e+ACele)tps)R9ss6 zO~eO_L)E)nq822Sr1}}EQ~+RC-lDMl(?#OjO((W{@es+GcXC()ju_&rG{%ghcLVV^ zTIcAhY}nwMLAGF4CyCHPGcB@bw;?=SvraD5YfN4z}0h#Ir$lh2m>i+GQqXQqa` zcxIEy;Ox~HKk{}?$HrsC-%3Lb@)ZrMmG@mYRD%sUI z%8%Sc2O@PE?hJ2U30Rbuz68ZC0_E? zU`F+_>tuThtF@t;XJZ502|&$Ljt5?w!vDZuC5<8Q%nV}n-+jExMgu};C}*P50EWd5 zjRGs+Zn0%Dnq1NY2AOSOZPZ7PAQg@J#JouoF-sr{$@SuQV%5ByuRrmphh8|B`M<}xELFgo9G-*?vzj*#=0D1mLB5?8 zZ!F5ag0MXceBHLV;S(+>g+kcb*)KuRTpyE65W69{Xaq z>7O2xf^wFrup4+_Qw4j(uE{ zE$+Fr@@#dPh2%aGg5?hsyLO(n3@1;ea2XwwcV6GIRu9=F9#ArjB#JBvTXJS)YIx%| zyVF@(Ta}w!&8|ON_*;|TkIBa8a%ZoO&Rrp6d~}Ad4z5MWm57g@o}RT@kXw$|M&p(d zjXR@V+zVsa;p>S@npfU<;~k(HIik31Q;UfD1n6n7QCfT(paQCNh7)nAH97M!$@!}* z#feX3)HXaDW<4_Flg#gwv6Y5?dAX8uN(>2QrhdBQ)7V3JWj|sv0mpOE z$)m;&C$zAWmqQzg%hRi0Vq8oF6>@<x=Dlcc+7!!a4lJ@nDjeT9SGyc?6nzO&cWI9uRdvlxy z-;gCFl3oXQS#uznMUR3i2{|^A~8YXQB!|LZe!QH+=b_Z8(m(V$36rpm(2kZR%!|>f3GQPJo z49=;JO=nzIxs_EfB*9 zpU=iSXHillevU5d3;95umP}Rt3qi1voJpx&i+Y#;_P>^Tn`q?ArjFn+N`2a3 z9T-($a%>)}TROM)Sy3VCrv&6&FAG6a<7k=87sEO4kURuiI&j5Syv&*ykiBAX*{^vE zxlt}cK1hor$$JX!DS9#dNBZiWUtiluW<#eV=G(|;;CpZ=OeJ$H$HOZj?>gaca8g9s zg-yD7MGc@!4Nr*{08#`6zp0v)SOs{kbDTf}T1F4&OPLoN$9fcw4x1Vvi&6^I86amN zLCzdwBUx+$fCIGH%-fEX{q|g#XJ0%DGpQlxT?}O3j6CCDQ+>K#rY9mrBG7=fbaJc~ zbUp-8f4@vH4|Em{x_s1H_S=rj6aIn7(BykOjG?jQn~sMU-B6Sg&yVET{t$}NpHgj~ z$^$}`;EvTG;$@(s!6pQy+(1<>aOFhQMYK$Mlu?)Ys)bbHDqWfTxu8S`5)J25^+V#Ik@Q{@jqCH#<{ue9__rqeDm` zkfZnN;@OE>IbJ*$D(ie8^0zGyacAB23Ci#O(h|c`hSylU+ZNY0#t1bdrpPE8%xHR) zQW6nPGETxvzlKIs9gCY9Mi_gh!s*EDdRzN7BwxaaO{(0TAv7x1y-V`c3g<323CkG& zwfU2@bf&;Y!fg)Ns4&?YH%?O$ckTHMd9T(oWVpPX`XbX-|AvM@VZo=x{3K$CKs-Kj zsTK%?DQKEQWQc92e1N;Pn1_eC7c2()czjtzO<{UfB`N%2h|wousOr^Y?S-YK&-Z>U zKK$&r$$qE0xeozT>vi$i{z2>n_D^_J6+B5&TZM#ScG;68q-=U}Q|X1hyBs85#GfI1 z->ohA-2%VUeO1bGE>f4M6;r5B>Wd7G znSZ+Qarets0unly-kD#Vq<)U1CSYYujgX>&F<^jWldk6$H?q$+(JQH7vD>h>tK%*n z@Xdt;d_zKnFhF@~TX9{8+1@FYNQ9LtqhhU;VXcBAiuV8}>z$KH$WrjS)>7xveD$S0 z0pnS)az#z}86&pMn$ONvsFmaagj`qcT2sf_q$;yH_U#>A=PiBQp`_47c$rnVUl3W| zO><+xww+MUJB}t9ZhgfvM=hs4Jkta;6v+`ZbCN@KC@EY`4Ge;s%Ai!Jniglvq4GW` z5Xw1IvvS+3(Di5}6_Wz@EI~>l@~Xu_$e-5SUCj|Ko{OekjqDu)3(&eVM}(8{sFt$f!6sAk4fvng1HI_%=DF`u`zTU4ZDkN?}L z@}7moAC4{@I}1u=#X)Bm{xocK;qRMNxf{i##yu$~vjv?uFmPN$t^XvJ_=s@Sz~^!@2#V3Rt#x}46E$|tpMFfrFk$R<8G^MXPwj()xHu>T7)dV=TgYQY;YBX)DkLI1W*a)3PT3Vb?YCisRxm@yz4nKAI){=%=?iv5IxVMD5cJ(eW9-BIX z#Zq0-VzZ+d-onO`4Ty62iK+4%HruSk#o#5ZBZ6aXM+{N1j70 zwj_^DODkHrVr2f$@P>Vz(zfdHq0KG9*JcIj@czh7TRrB76cGp+WPWO|I`rr#UnebW zdUL=VEFk;Dvg{Rcily}#Ical)>h|_XNGW$PyUl-OXwLJVU~nmlpoSd#Ta_#6qf!&B zYa&sOl_+b~Hox_{dx>A~-RDk|F{=AB#oF2v$l)MGuu2R=ZM~duo-U7<0OU=wi$Mc{ zF9X^Er6ai}lVR>zgop<`7)Y7^fJb!zjO6~;$9@;zT73g8>jL1K$p4flU}ce0H8wh#qU#@d6@JUJ*ApC@OGvjq%G zlT7%Xub>J6@(@Sftyz#9zbS^H6#gZ0=&+!J_t0#c@1?{)qap%ji;D0RZF);X8B+q< z;p)hveE`1-XdbH5Y%aEjJUTC#7*KYG|Ck4`HRK0Ilbc25SsJAYrbtB#)yyjM+J}F0 zRZpv7q&T9FpcPpTr)xq!75)3IO>gCThqwddT`TZ-F7bpBKah*gH#(%Bp7G0qbT?lT zNQBXbM*GYdEib4irQC*+ggwu1Rrg!QXBqMq?K|~A5v44gF&4nEs$20wPoZj5<&`ul z0N`gDLqLS+V1?{>8^d%nYx>f}Mvi;ckjrv*rLpc?ahl22Sd_Fuy*jKHcpghN2Ff;v zs&UAgYfll<$7I>J25!{JkFE)Zol}JR8BJ0OPx}-9GSlX8-08iIhbLpod*3BaTJ*EF=Ivw^)$*)B)T)u&p@t#@wxal<;KM}@e>~JE$wK^rLdDS((|AmFe-|}x8u_r{x-wsRaJQ==njTYz%|90$a zv1W4OnUcqZ>!7l@NT=I4_*A#HthuJ_iysbDZ(j%C=72_k3XjFbJsxnM5fZb2j>-~F zc6~M{?LW*KQsaoBD04jO<8g$OD(L7=mMz-_q2c-{h`3dE;=Wp9YkPAD2XgFoS*b>`s%I2=6KIyiq$&nF%Ch{~=!Kf=udR@O$F+BOXH zHpstA;xkTa4-1nKWS^BJ2({rw=9EH>x6zedW1VUxpIc)HGe-Xfo0CIAms}Nk0sL3; zid7asf{CSNhWu|^9V|??R7ze0`CO&bl$?>*(>tfV)00%?R%8r5Gk2ZfO_3xE0(Zl( zqM`*O(1-1AyUKanRfgJCa1D7-^^SMR?GebACMe-{fhaQ(@>@kCcL(%TP%8PD+{oIb zL{|r^+$u=)W!&6_jj!l(W&NmwaN5+wLBO`aBPs><5&vQqLn=)R(3{xaj~F0Kq2VdR3scN)VaolQbyFNF2{^N;$Dp>xwxT9o{Ip@_E6V4=lep+) z#+Y4laPWK2H8(eJ6kxB02L&5`>=RDDcz$8(5)gvnQ4NurzWYn6N{XMLKT+%78y1a? zg_ssxfQtBJ7F1+lQ&{12?Em_%LiL!?c>74n;zYa#EHRJ@v_^eQm`hVJx73jCBP>`p zyXni3#Dp2$CE3i};^!sD2|(&=FWNGvO)jC@{Od((J>yOP0{e?-1x+#2;8aA8peeM- zE(vdBxoVPQ@hT6-e@fJipGI;w7k^{qHssgiRfO$UxFGuR45V2%-QjF>#;)Ayfa+1R zGg(vk#x=EiN;pwJ!kb!DF<>(p2R3_Q;>X=NFtCbB?}`wZiJJXFiKgI{=HzGEkKMVm z8_YGWf9RO_g%m%9=Etw`9VKSH;M^9RFt4~V;lo9Df>mVsE&9B$G2c)Roc%^9Wz>nF zXfu7Sdrg-9G|bm%#kb*b`sqlWXPTG3Pis=HKe}MV(czSnv6h=4kD}kw!MZBMxNt9N zW4>*<+YrlYhALwWBTDKq49Z_q)%v7bZLhNSc6{`wjk^4t({=f)l88z;?#R{F)QOz` zIv8jDoERh-CxWVKC6x20pD;B`!w64z$barF>TC;Et}xV&4e8DECH9T~c%mUj<=&9M=AmyItt1$LD&(!u#<$SOoL>3n|y$2FAbDdD{| zpj{S=SKaK5x*#el>X~~KZ(V6t5%xEP0?oT;(Q?U|G1`2h2Bx%VeM8Blwhyjp{sAIk zw~;EMMk@K?X~4O;_Y`OlN3zW(8`U|fOV;mX@ut{mVs^UPh4fqCPf4Jq$Z5VQ)^=1CjfwE1)$Bt zs&{8^HSv{fFxI){jB%3W+Fgw@XcGR?Q4{bovtY!`MwPlT_X+aJ43PpX?}1)kMCwmSy%qS~XnhNiR9g-pNHp%Rw?RgfUfC zv&D0+68mcTvWcW_Bu9%nXTj6aWkyPKQ5ZCnDU#yHtvgxW8O~ZZZ|zuUyH1(HGP|l zp9R1cGR!XY0wNBznq;;i+-e*AeZu22As&tyr(YdaVUx@&+~$R5rD7AUjlDXJ`=YO?QVkXbpYZJtz_$$@jo0+0|K==9aY1_Qa1^hE7c@v35 z@B+CraU8yp*1FR|H-oJCbF3k`{1f^+t+yViL}PE=oDC)JhMX%|hQdWsZ@yWh_0Rb} zyKt-$t$OMwvcrlmWZ18QXSMsYyd?`tI1!7OrFeLx3$@Xj@Hs7pbYO z$(*1ikT9PZ=Awp%qQ-`j#*#^q$^Dv#b6d;6jv(Rx&W^B;+K~{nx}6g~kZ6Srp$aTQ z#KT>wQB#1j7$WU34Nyr)z1E+Vs^82)fXz6tz-|KcYWy7<8hAGW4nb(l?I{FPOzm#L zfSwY&-Rd;gvM6V#1yj0&YMy2_Kr5{Lcqm+6q6pyHwO-vJyoD1aC?HwW8#E`T`ojtd z6}s>D!^5)Qva5d2M7T1HLP`>mZ4N8MEihDrX~HHz$Sdagkco;Dr6dv|vKbumJA8Y$ zI!mhLum{bmg1jwWy#$uc{_Za-iCT?4k29*eoR};iYe?NdP%7&t0l#Fr#3F!v~!=!i7*BGG*FYIGMoF83QG_B3w=qVkmkn@`ek*T+juXu z$)7_O`v_XO=8h3b6-T<_wei{5liDmVms0H#heAxl7}8J2-BG9ExN9<$w%a9ZKGCWuyqb|X3m$gm~y06}}sQWSQBdtq0TfjcIRlGBvIlpO2(@M$No&C5G@zxA3A`{w1=!x21RX z!g=xgZt3zjuIU*GlZRrKD<=`a)c3z=YlqUavlNLzG_bT^V$+GV#9MmcxKNMmU zj@J|q5|wJQ?T!5YCULx)SXHy5=9nN08{`1afx~d6*$h={povqH<3(d4vwm!dhS3g+4qF3;#G?hQ~qPs~S;+$i-FCc0`121*P~ zb8>r@e3uHt2n2S_fopZAXSod3;2~MpaiEVkohE$b4SCzVVR*ieHch;>X>(20JP%M6 zHYNn|*7=9TWnn^8zXPEnL&%4Rc7*drk|~FRXMX=-ObaWRiY@R*apkl=`@A_P|3`ESWOGau6w|>L+FwzwsqD^tr(SN+mYzAJjMjoT_)RJ7Fl+Lr)OTG4aElk&lJAI7t$vyKU@wz~X3hfltxa4RvW7D3=TGR;5r>>{^xf=_{S zTKQJzF~u8`CES{eD3M4_v|6nXs08pApkzo3)bSm|v$NBJ$mtC9lr*pUW=mepVt7 zBTZoiX@*VGB5^`bFOPwvdOt93p;pqzu3KGjRHnhI> zO&&t3lP#m}=oVQNRio}i<6r;sYMmI4+rZ0ZD2%^sbqaoip39QKo4(3rt8?;s#g8Up z*x{(=gKMs5iv8h=@!74}p0huqHH&-&^b{W;CR_DoNKEBOa4s6&3E6@1JBsiM)w+B3 z>(Zb-e5!zd*{u=ltLHDBI4V41=x4Gjausq~nr3^^P`ZpOh|0%H*y8mCOi!75C>4(Q zlan^kky9;lxvb(b=$TFqAOmrQ;AHz_q!Vg&wKC0h_k~{v!V3~l9>|3W#v_<@oOIBa z^J@>k$_Gy6BMafkA;0_(So=tjqv~Dsd?V7zQ%Alx#Vw9{<+r8#@w7Uf(l*~gZ{FD! zyDgdC5F09x%^m{#hlU(lT;;Z}zvR4_(=_FZj^1%wTY{X>>Dn ze|BU^<&UYLpa|0ST)vr|Q#SqO*v~sV$)Ocob>)U(?lU5w&%9vnt)VkxV?Ww{Pb&!B*bvS{zM-KtB^upELNqFT^p?>ocg% z1vYGS^dh*wHMw7X`Rs_;(5`6Mc!rF}b(<%o<0l0{5zL%^Uhl3>^3>nt-!+6zr((C6z1Q#P;f*0*&?RP7myeD#((d#JdWVKrt2Vs;Z|wk{ui^XoMmgBHvY-DGzM2 z+6d@$@xTrh2|)ojIUu8&S}VvR{EO1$r7OXK1+Ocv@>aB`-vqe=X-nY}dPpf_%%ST^tI*++_AN5=@4IXWURNfK&@G8)+=u-HZYapVNRRP!Ruwdn zE{_pHsML5g3V@`P7l4?oPP5}0(;MY<0Jq_cS)ddk6OgiaFVtKGkwx+oqYg*SciLQu zr8=s9hk<8&8D`2KL}YwaW*NB-+8V(>X+Mm`t`ZWmU-}c9KITb|9(w@&)@bq;1lW6*H^@oUuU8Q& zopEo9wb>D_9jb(oi@TZl1@zB6`pKUkV~m&fO`9aF5acbsh+!sPOL&-3!bnyqi&7(QZys2YOZL`^IDqC^l zaDiStiskaxvZm;*i3ulr$N;c8@q>W-U`5AnD-wn%L;fy@H!(%NJkOjCO8ni^N%duA z%lDR~%;@v77=f_$md_*zp(1ZEmM!m;a_fr_+EDUU;isj3pwZgsCK*Vv1$3{R6#0BV zw%}B}1sR3fy+YE=NEN~jqDe|l%77`QU3rx@;#$mZ*HW=^l;{+3mbXR>AW?omH6qPz z1@!qO4b`kn0m>z-(8zc=6uh!r6=@`6;-vfAQ6u7hRRFDs*P#(dFbmLEd^AY4K_=1` z3i~XNQ*sG0?kT=~?^~}VDnr)Ztii3J?z|#432^A#5^P0Tz9}5F!i^7KaQA8xDjzLq zCZ6U|nqKH;K}=9!!tlZzXwPS+jnIrH8+I*5rESHioj)G-a(s_u9Hr=f_u)9W9<)uJ zhdlK8540B)UMxX$cN+MvoX?E$F1ZGD?{+9l1 z8(tiAwV3&KCamq32f2pF?ed*qT5kn=ZcT}V-VDw$_r^ekvr{A4f08_Tf0$v4=O z3ZCjxyo4XI@ngDVHRW4}NWQ1^ITy+eA{{4LD+5RFxVUc87SZMyU_d?0E|IRV(=ZMR zBiz+e%eX`Bt-rlY8nNR~dNzfgxVBJm1@jOH*mU_p<_$%H4}W>)?MD?Bp0pV;2=4MX zNN!S_Zd0p)&jb#Sz%-?bSY$foq*B~w67u~G98PoTZ=WH)m!^v&X5Bp{Y%4NHwZ4Y( z2n=MrcwLp!>2gw}fgEj}L3)TbDcZ7cj9q>ta}bd~(s$mRRG#=*MAbNEbqDvRpa#ig?=IQ#0iiKn)%jY*cxRgrVZ zbVUN%o)e~LtEu|mOLUX4aR+ZjtvEcqWr%`oQGLWFS5+cLHZ`#wVisw7Nr^OMKh7)` zAFXzo8U|^)W)YCiFoiFyCfmPD))x5Dq`uD$ObN*=V;fguU*mM{Es?q-sJ^Ja#D+p( z>19K*?pY$kd4pUHwcopYzt38|P%WavtKZIT^B{?Wj^~LO+_Llsx_1zx*mt14<;B4> z0uXlOvqRHA^F{jEO>fq6ZtP{5_!$UoT^*|VJng{FqN>LDz2(bC1RuKG7)~lLhJqV1 z7I*wpZwRd7-`!mNP0Q}^`y|DU?@lv3X#L`e&kGJa9F7y5Rq?mM@Do$^4a@o=>4UaA z%SFMHQ}qyk zQBmAmwt<0iMo4~UXrQ|LoBA_%V*hgn4@r!$U9DfR4-~v=^zh`-JlNW+zXw~s7Z2pOWS-V7W_@O%uF))K> zrpYraVO~J@*R9g#;XQJ~-7u60whe}ae8@HuR)VzZ?K;nt%cvjzUH1{a_zAU zfu$7k_N?Yb9CC2w)b;|yWP@&THq*B%VbhP*f_V+(>R~YtPs64FG07IM^ek9@HCTSN z8n3rvG>Qxxjw~cr0nH5;ptFnz-*ZU8Z6r!KrP2L-u=vCH?l{oz$0?<*BDv=L^OM|7 zI!F=rC^}|@6GNhZzec=gK3`HVH0IOZNN?r-F7WnzgXs5pUkRb1lJ}LsGk~)c(oQ?9 z<H5^d+9YRE*C0F}wF0?_IyP4H z2p80v*sw%V^N!jqG;Td==Jj=WP|&A2x>>bbW0GVhk*@ZHRnzDv6)J5`!PZN2b{>U_ zDbzN8&A&FkWA-AQ+6gDQo*SK)bEolZuF5v*$^f_K4GL_%AK7HH$7Ql z4oL~2=|;;(cHYz3oc7QOd}~ml{X_4P~rQ*mbd(h6!FOWMwA~w;7aWHg`{_$Vy|0fU1XvhWzH{gy*7b+C`eDpQ$p* z_HQ6<5ro2K$CZqZiIu7}Mi~ehdRE~W2@sp*?APMFHca}yD4vkOf7*74+U#!=T2Zm3 zzVEUR7y;7=GRO-~Y_<26JSNNru?H-qnQwOu@#aY|coHGHe2f^sD+yykyvEVBFPsi* z5%7GOB65?mamS`(ft5lA4Jehs%Z7@TH*}kRg8d>zXnkJX%yeH(X8I%*Ep({-NAZ@r zwz_`JsM(}!=bQ`MMSNnG@r}x-IuOd`O$N1w^W}NiB6D;T6CZ3c@|&JCz>w0KdmiH8#oWsY?kdnQh5}_z zIfuwH7D0dL`DE}KVqJ*oL7 zx+I|KZ9*Eiy6rv7YlUWsSc&HwvQ{`WC7v?MR1v~>W7bQ_C(vO*F-IvI9C8e@x=w7w zD@St4)0YR?17OZ;!X`$EcwtE6K6L$`1dx|u9 zuZxLIy7ScY#O4KilxAUO86y_nbM!TY29V){^%2|6ef_yUPs#r9j;SV^_r7Eg!ew(e7iWd^x$9%FjzB4SuVV z?0A{SRFpke5Ti`|I_cwGc-98p|v4n82DPK4u$jG(QbGAt`*A*Su*7#gay`K|$T-Bg@@%f78N^RJ=go-@9v zz0-bI@3#pf_YeNMD(0^*+05bp+(DH!&T83t5jA%bvy8;41>gOhwrDatOLt#o&IzW8 z+$B4(%2jG&m7O))_?|(u@EmfAZDnzSH^U`*(tJ*rXUfW#EEw@Lod3of<%I%r?2;MI zgzApsC<-=|dB47+p75PP)3S9jg()M^7zw{Tr)wNM-Dyl)Bs}q zT=G?+b*G<*`*iet_AYK@jiGWRLs%}sea_>lB-V0j$~h%d>rle*gdnZMn+@D5uvtgAWGSMug831Qi3N%i?Ud^rTK!AYSEaa&#-yQc~%gngnu|(8tK}WYAq9doO{M zQlqn`&=`Gk7M!~W*30aa`94$I=oifLEDC;Y&8joeye= zu%M|wuS*&?*TbXBPOeU#`P7Gd_nGNX358aoL8Z(L2`E>O-Ttr5`-W2hKtR90O*e*9 zx99qjoP^>NsMN+onx7nL9*}pic^q_U8^`jt8=KAphvwzimpk(F36Z-hCZ;UUc4beZ z0E)ZLtp7=b!tm=Hm+R2ky$c1xkiApDgfrIVoPc#rh`uziO2wmqMwKP(06A?2j979_ z_ldHmPTqd`e_v%L-O?L`Pq=SMRWPxv%9CsWZbGfb%k0WiZ*9{7^2jT9Cllmmm1_x1 z{U9g4a2fWfLU%#;XLl6OeK(*P;*E9Vj4a|0gDhw)+2(XEPd46^S6UkJB;bH}>hxC# z*vDIBP0nzqv8?M*t%4u6V1K~RA^4_dH7SETn4i;cbRRrXB^+?b zMYUZ^`$+26TvzfCSW~f;oof5?()_M#&tX$q^KLs~%#F8weT{6$%(eN+0)0ysxd+3B zK`;^eH&;{+D(*aOdBN%qeJxSjQl<#?zgf7X`9h>Wu-i}MXNOY`ZRXCz8S(R9P_25l z5{|eoE&As8p7?_K_8M6zL*q5LyVkScgprn3nGC+gAYHaNB^7jYDMW{s-Tti49?+0%iSs`l;@R+tN=t$%Pin+9Gxm=9DYWEj8KtHJ7)gs@zulm~u7l#tH6VWgIPSplY zip2hbX@S}9Mos?yVj^-&1(lT!G-IjcGdDXsRqR8qkgH1-#vwmdrpR9RW6L=u-mrs9Jgy9(U3Vor7X>H}dGX=di8%qFe#K*zm7A^0h2~Xj@S@3*A1xCv z?8GZsCKosCop5PTAZ=+R8Y6;tmbKwK661>%t`ms;myA68B|K+~Q%id{;lHK@29J<0 zb}TDMjqDG(xN!f9uLWxbG<&!wF(d7>@iWp~iomY5FQ=yRv#@F@eu^N_#Nt0$L1|RX z2ScgNC}>KRKd8)C!*0OKH8;CxY0M}jCheNUaZiNG(UE1#VKf9{(Jg=Q8P*ebva2g>NBrme_H{yIs>sTD ze$U=Nx%OGo#jX0ZuK-mKX`6fWMIv)`wkx9e$@S4p+Bwv-s-h>W#USq$FB$n>efy#A z?#JZS*E6$ob91xflSbwIEQB^z#}m(sQ}M=6!FYc1WVj;#fghpu-!-DHxEVef^KxjX zCD>W5ap$L{iqqj?UCKl<66FC+Ph})wR}n;JD=y4z36+`Z`Mwwp5nQPd{0iF>~gUS<~!> zSMM4PvcEaiGhA{;{g#iuTXIVdvcpdGrj75MNWnl}>l#tce_nFN*e6{9;=97boz8~S zN1t^pLvq>hP;tt!LjQorOnl6IM9Nt7sCN`Ve2w1Y& zS}$3+zkkm{JBo|Pwp|?MRF5k^H7b1S>xv?-1uVzDeY{9GWB;g}#}->2=DynNcWXoj z+C`1suIX~?_}G(O(|ZoIU-t=353=HKj{7_YTN-D(Nszl_H-fpUYO`&?SCPIT*cB5pCLv$OFQ z1N|{#M~N;8#k}0tt%%MhhMIRy+R#Dl_IAX|Q(z}$ffX8zLWufQK-wS5Q5@<(=uv&Q z*8QE77J=5s{S}4$LVueRk(CW2?eG8inXd7lxy?A$s+->rR zz&n>bB3{0H<2aOhZzMO7s$z+G6Sw~I?&K~Ie5ZQsJXLz9@irf=9Q*UbgohuBU0#Vc z2PA)ayW|vcntz%Pb;IzB_Y_kxa=4*U#Y1&mn9I)X^#-ypV{dn5eN7S1Gf9~zPD$g za?-3achHRoO-pAJP4N#VroF}45+(ByBahA)4j`==m2)OV{^60K{(D=njch5Ej26i0 zjyj*x+`#U(KLw0-39+#RH!UTWyImv^-PV?x?E ze>_`f7rt3H)PHWjE%nQ-b;~kB1BpX9GVwTZ53UdV9j2t|reZU`qv!+Qda3gR{dGYE zbx{wRM;t1?1@U)uQ)Fy>4*xW6_Z;3dW8f1P5c|oKq(`Dljh-4f7fqvXKTNagDVSjZ zUahhZqAF^1&%rFvIr2~W`n>Py<^8kl^9Q{dJ1p+xfi%)mQnzM}(w{d$@#C|mPyhgz z&dT)>5U&^7p0l9s7M?7zYqwQ?URuAC_DPgucZqF!pnvefCt;&xr=@Mo_Z4Y9v$+fI zR;%3uDXm=?njW%P7W|3az1uAcv=+^#zl5IBk_}Y3;j8i3+T+(cLsIO=vINg~uvGMn z_H8NA{}f&%*J_~^FfpWg=*&gO&t)tD!z`|do^m2;>vjLQNkRT!9$(hF><#L^_lr(n zeVhENnuCDhSd8#UMh*5?XI`g5<&2rnilg(!uE~+2>X)bEr^)`Z?q?X%(ZOSesR)p28%^-KjiH7|01CS!*7= z1%16wuhIXuQK>3W29;iV{yQe{@D-Hiopv^O{{!&bY6D2&qq zeej6zLCDygTSUmmQ+x~(^&g*hoeJz??mZNN5PiB$mc_UE%cBa?8wW)jbo`O%o{rp& zeP_RV8?JH1Qk?r)S)6*=#X}Lj2}hT2g)9yZOjnH&7UY3cq)4~s+N(OQt|+e_lsUTi z5yNm4xO(Aj2lVaxrffioxcgR}D>8>`zfgVuF#mI)O>l#v^F%9SDE*RmZM5#jiy$XgOZAX?`p-%Ki+@W4-(n9(l!bsILQvW;ssna|YT zP8#DPfr#3DRaxx8RD26}GUDgtOKVQ4h?uYo3H*IPsuNzs1^h=GqSM}|A?t|% z@_&URSTSO~b!|jBVyuVMH)h9<8Q*zd6{b8hXE34fs*8g0rVFpXW9q9OL^w|U^Hi9^ z{c?M*^UXGyin4RY%TN)aP>e;Dnf=z7&vU^TFh`4Dj4qhpoc!F}cu14-d{OJ&=kT*I z$0~k?T_h=6gU2~|Tm%ukjz}}}r7*=m1>#o~NW#ZC`>yW~Nx~1V$p24rjenF;^Tu|- z!0TWCl^*wq0|%nmuZcf!foAKA*5sV`^R|sBMV<{sk559(4GoaJP%@ODg$@d^wy1Ye z2%p-4QUAD^Ju9lWoGL@pNYlBKKpp9@^Tjc)zd)PS9!z;4>_#&x#*c#r-WPun?IAUX zE#r5|Q#$u`Ar$kEX#G>Gn+4aSG3s}JXiy+jGeY^OT<)KZ@k0>7?LH(_=K&$OWBfBf zfT^UHG)o@qM)MZ3dG5-SjuUIFAF==VW*OH9F13y`;HW z7@m<4wEks-0I&oZ+kFH}oav8#KV|hVV@0n9{QJ*e2s%Wrhyqxk0qF!Dzj&24@sS6s zt>~0e+y+AzxVJ0r^YO1BC3g|207}Xga2#KCNp{yqM$2Q5uuHU1 z{Ff4#mYo|IzhiP*c6N4H}j2yc$v+_h#8=r zX7VVAWATS(?C_N8voZ`DPca|hX}EfD{h&asF&bK3?n zVjsDyPHIS9z9_~yc+odadjE#L<9kL4T)7O%vm5S7C_ISIyfKPQr|(DNwWK3GH8SFv z5REu0Dx1R8`C~MK*)}B({;tSWTX8Hyv&xcaucwfr>M4lqTh>R+9}mN-ocXkOl8ok$ z<47ulRY)T6-CA{CsCF<{6-{Jk;hhNCA&b5cG+;PDobNLDqUab2rEv~rc zQi^X!1RlriPV1h3#RHbqJ#}~%4(y`x3ZpYui4SE8RXV)Ov~Z11G%3vnEOAq%MjND6 zYph#Zm;Zs*Mq+PVW{}AY+MfLF4DAYc0MQT1!|Dwf%4tTwDdN;RClgKmU=y%yjk}6v zAtOr=Rw4mz0Rq)}F^qzmY$b+b9}ydX27027pf(ixui`L1G?4@l%_Lc^7-QjN_#*PH@g1ly%Bhr519jn$pRiGA%#QY z3qmd+RzUs+|IUKO2nNejAecRp6UJ80@`DmB8uT}O4+fb|>cptQZYUTcQUK#IOcK#) zP3)VzZrT@vvp_VdAY#9pHaK^L7T*5*4~i$B*ps1uwKk4~jKr3Z!S|*j_J)`cEl+>| zdI|6lniV%_^jj{fA9+}wgYytR9Z$_p;tx-jqhIMzsOV@chO>gxkN3w7N!+u8!H~yH z@-GR%1;I~=)}Uj_W~1AWmFQ+HS?Xy>5~_9yTpq4dJTsA(nSkdxK@Nc8u!c5~hkTWQ z@3>R@`QdXkDP`^SW^Jjsm32~&SAY9-j#%GTL-LzqpOP&u#H=aiERjO)Lcqbj;u$#O z?qHHwY|0jx&NS_h^GzMi%rA^EGmKR z(9s*t9rBr2e`C}^a-b3J$b{+o8{HS1%Qfi_HO!zMdhWQZa{1faHJY1~KYWRAbBB9) z|AbBKBY%tf&eFY)-uBT2OfD##?RIP023pYs{OunO?0bsSj^@ky~u+JL(CsXED9)-4){7@Syj zH%2=%&kWN%f!$+GjBM%dUQ_u}YlX?qj!ZcmO`&QV`oXCgIcShkMiThZiN38A zylVVCpsn)<?(2F@RG_35;hd4LQ2i@+eN&URZbJ&hS}AJH-hc!NQ-3 zYoKlm5{7~O!Y*mMcw7sr4_q%)Y2lRjbEF~jiRYdD3@KO{K}}&j=%1_z;50+*0unS1 zhIYEVMB;NGJkcPPwBt$4PbK#fJ|Z&)E5~?Z$b>RL7Ptr zPx((jF)2~&=Y>iAE;Ld~X4-x&+m&tLj$# zqhjfNvE8S=Sg`hmhe_5Rxr|x&l_1H*8ug!mherN+q@0BoS{WCc6%}B=_Y1@d0)=#ZBfm z)C%AvrWF-DV#~l9fZNWWq~eIZ1$)tvo3A~7PmTCZ%*!!7@aIadZ%2Ak;iEGIv<1|I z|7{o9>cG##?)M(2FgVsA4t^KBZ5^Ld0K8)WTr@O?K>*F>+~cK+zw01PM0LCHYr3h= zVk0r$aIo!;$G- zoohqW!HZ!(bDwTmb`g&Rb`R=iT%rXn_MAb<-0e}Dg8@MXj^dt{)@Y3xj1pw87?QWEI~}P z$k^7>Wf*Rsqt~w~teY5=9;gZ=vswOc3DVH8y+H8#uGwSpiuOQOB;VC;Ecd6h+ zf*Bk)ysT<{kAy$m+@%~8?b%%y^25c|RU}YPZ~Hjk4WXRRUIM;0H4Xw5BN#;CiR@4| zS*n#dE2GBZziYs?h58W^XR)@blQAUrXCv3YUcGmF^P0IY`l`uljG7bS#p>NpyOS5A z5euM4K$}9!I!LI1Nj|N?O+%`D)@ft`%{7;Lsb@Aaf+S%rj;G$a5Z zc69TFTpA?9*l*kBBO#d=o#u3~mfy56?F;vRpVwN_>Uwz>r*xD_+?lp_$@;G*XGOA> zLg^L!Jm08ElHEZf-4c(F%;wm{^VYAP5-F`sYQHd+eq7f ztPW#R3%^+qu{8T(6uDAx>cl0R zK1)>?!ASS-61B4E`4b71S4yOr z9Q+n^7p+lA2kt5%8AH}46iG-K*c?ufFem$ktPqF$tp-g)eo5&ATvQl`J)OiV2_St0 zWL#|Zhll}C2G@_`D=QRxlcJSD6*U?y*sr!4L2|0W(A0)BjIC5=JB|=4MMGflOGf4V z7mFZ98tM0n1(q#U|N9YOJX9PCh{v)AJk$Rt#@lixc8q87PLeo@`KSQu~}Yb5IABsri(y8p<#S3zlB2Y|Iacnk3CySrRAonY1+=TPJKQoBZ~8A+$Er;H7VK z_1Sc7!hD%MYGUzThv>okTQ9sFz0dwuJ^hwtXl!_z-34LwUFQaIlmtKEB3 zu)Wk8lrP1JRs`(W|MNoMfZMLQ_dJKC5Ti=cA@%KUlDkT)URn7(AEdx%zy{B|N}(51 z-kC~JA8s^pZZPq6@t5-YQLz4Rtlj~ah%(xOf&z1Gk)P43i9Vs&_24dgI@O%52_q_F!staBb&px`kCMZfjs9^C=zxcNto zewgI-0^R`t&*d-pf!9itQx}`|ymY%Pd*u(mpZ_X=5qA|vcOJpJsYidrKYJyP6G?78 zK?V~F^rIaUil?#x73IFa)U22fi5jup+2V8`deKOvVa8j(CJa{Ft@f&L@g9(fqZXBr zl3+z_i1>p02VQ*cU8k|mb9LYHlKVDSg!X2=?o+?*@TqBU67zXF!Wjo+i`~fWM)pL! zHnHvXhGl`)uR1l~TCWZ#VL-ha&BqS@nc1$$XG9o_LYIpACwMe$yK~QA*wGm4)v&=; z9lGT^#xiCmW8qW`vdTtSW-kv2xID?=Z#mxHJ|S}XXJ6~ve#*`H8S)#NhIjn%orNYI zN>D9w8R7|Z-#YO}}@@wso#ie8?&**>U_n2dd6z*gZ)_`oo7A4poP{202!AbPp zn093AlC(8RUe3&U*Hf5$f5_n?_dP0S93%%>IGQ-gRFZm%FahCG4ik{;byhjk0vX!; zM{dDnVoC=IHlUfLFbMIr4x!$?F)66A(fq;;XSrmstvFWk!#mK$odpL>w7Ux&NGtA9_skiQp;x<4DL+*zMq51amC1Cp@Ivk}YLLCHkKPDSH4&18Q-i!mC zej zD&iW*+AI&uC1ma&@TDKBu=eR@xhSi)CObEF{P->BHo8)U!_uk$*(j&2s1>JG19DbG z36=Pk^3u|37e9nVa=RXp;AZTzQIAVDmT>i9lq5ap<*@eE-MphCowyDu7DNYx9_V+G z?_Ky*5s`RGlwZpfyvb2P5>#3dc`Neyww93AJCY>*rOe6;&>t4`1ZP}6_F4=sy_@6-QSmfv>EFXC}eP>W`aKw#tB7JB! z-APY(cW*Cve*XIiaCo*0P+ylz%IZ5%LM5&{{e&vYqi zHqB1)6mH+@v9EnS*)fYM=H-33kSu{m>lz!k1~nWEC0*u=4lfgls;7q{=Q|s8PHw2^ zhHLHiiu^qSThp?<{^Pe|J(pCKnJY5FM4V#&EP4D}8(@t`%t$O%G^LwNk+Yr}(752Y zRm@Kt&Sgl36^UxYny!2tlJJA4puSPfR`1r*x+7ywHZAx0Du|Jr%#=*Xt%z@thQdIC zHI$o+B9o}>+Ry_>3=<20=>&?00{XAJ3v2|3wD&WZvv*zAOK7%Y*qAZc-#yM6rW#CE#U7CKQR0vr2rGt`~=z|N$VXVYd~+vQ>^L8r2+9;YD~k(`}4Ay>=;iw{dwK zF!TjeEuS;DLK@aBI(kP0Qy%V01$T-_^&`G0yKV-Bd!wWMa@`>={b*?s67c=Ce3$*1 zR-x%i#Wch%wxw-h`+7qOaeWC{pUUC%|u_@%qB_@(bh8Q0hfXy6;9& zqSv_K?#y}h2z@xvWt^&g4hhOTy@Su9pK`KmeM{Xtx`)f^&a|Dyqj`PZ4T91lh7-97IDk_!TU1HNSju2%5b#)9#P^TGTT(wlAS$Jty-FKt8EN$9 z>VXdj&>?nis49)z@6N2OoifqZ?An?SY9ILg%lIb?hJQ}p>}z>#NMR!Cjs4{bcG0nS zZLfs?6D(5ltw9{>MBxS%*;y#VZA@F?gxRYoJlI%dx;quUO&2al=^{mnC)pcZA5Y@3 zGx$&6p@RC;kpH~1>m9>i@ZI(ayem|Il2n!xF-o`~yc7VwORIy{m-&rxE-m|go?%AA zDMF@BRy3iO05NM`xUCXL{go;o)4p+QOsAK}ZY;7neQ6&C+g^RqA8RP(m+5x-4IiW! zCe4(kjxb9B;X#3Uom+5(FcGNuI$p#1(cWlZ z*bZ-KFWtfLDK?9L30@22G4ry5>^`t`>WS|;H=^SeF*|qTY{N#+uifOyY0x&0&Hm;K zuH;2KW$q`}xvnFaQ_PWe`K_eZJs3FA;2v^LRLIE?$ro+a<5w@L(ygOJE48XARC#Lb zX=fT>5jM^W&&rN}o)6wt8hrEC*?U3(Sp$BizBFTyNMt0Fk4HOukMkh+(&xf8LRM_o zZ@OU|R#ft8I1SY-Z(d?@F0G}KpxIY>=~1(QaG4=_`qqQJv6-5(y@l+_`>_nzZcD{B zP2}X~x2!9sef{J!*7M?}%mpTXiNb{X9XoI?BGz-^PGii6FK=;m5sD~le`y-_1LdXU z`o>_(gqJ{X?5IreFruezd|YxTijqCTSEFz0fxaG(rWc z$bCl~HfFD%KA^wFVT-H7)_v4)R~|i`a9vUIp-`)W>>wXz7!ss^^K!+N#sB8Yw|R*y z@>kXoVz#*+bGC)ENMNlj^L)P@$O+`mTb-!;>GMB7@`e27yfxBIglVgEQS%}op-+1h zW6kpkk6pcYkkNC$oAkic;3DGEJc7}pqowIFn<~s@vGZpYm3s%^DNtm*YVJE-ED{Db zfFq4R_KF^$>V9*6P|ckKlnLd{a2f#k9g8Ft_$7&(Gg86N39aox72HkY*2N56# zM64kDKhmbS#tVAZzrW4(-l!msD5{s;jmbv5`-{UFbDUvDsJJ)gQ#6nGzX12x_wC6< zIV4yY+0z<8t%!q(7HGAZ=OAay&942e`pTZuI7~OpbFelNt5Ms~7|&kFL@zkj2P|8= z2>@u)jd7 z6iJ*JLGI7|z7P(R2Pb37AHNgO|BB4sM#PgU53&qAp&9Y~!964DIBV)Oh(+tn%ec$x{;g&-#fa1z>ntkjX-33J#i zNIJ+qmW$#-pIv9PIqvv(`(!YAIV6<*k-SBLljWZ*~+VK4hIpI zjr+|_^2Ie-B-qE6r)vj$@?4dKZl#>hw(_~YVv3~cJ97wY5iDhav2=wvj}uciJ>Ju< z&oD7IH-;LCSkDceJdZ{CSFhS=ym1TN9z`}zShmt)0z63oSj7Itm-L` zdDalTHPYXI1NqcHB_JWg#Y{o^viE~|PigVdvJVGD?;6dqTXdG!7MN@tWB4k=!-=E| zSKlWew>|6Iu=!6BMmM>tEZkGlzP#=rH^$~>_?(-*p3sZ(IoyWuO`nz*M3VurB&4AO$*u$#`?i3XN=JS3lmB9`( zs@dKBHbWTBh-i*6;iH^2KQ!ElD&u|Mu;4`}4mHe{hlhvG=`}UPkAG!{VY5e>M^ys0 zDbn+cYX>537GIs&Kg48dP;t{ zIcE*_)8_@rtDiRRnLe#zn-{i5|1-vOShoT=kCsg4@05f zm5)#Sz&EwPof`h~F;^c2N9--9jvZ%}k1AiVYwlM!gs^k_=T-#_2WXd@0sinp=XLEl z5ym?C10R5LNNU3vR$$n!nJjN~92MvQMB)P~U?9dUAb8{O~lY)+&_q9CoM4x9?AfwU5tRNCe z@^rM&?n%l2L_tRMj|eF8eZer&iu+F}$L^Czk({@ayoW9r1eB-<+d30J{epzwo=im> zhorI)(uW9FR6jA;x-9qlw*9_#!h6`|hS2}d2dwXr`D{^fap4%g<&RrBmRukXqi zXQ!dB6Yf1@1M9M(5N-sX_qpf3%8Z*S_i>^pStZ|x%5AKic)i3{H1D7Qff`LQ`DwcD&&@0mtf{MD*_LZ4$ z_Er(mlB{TD@OsU_KHaiWhvEr!Y1y^niT6jX_v0u}Hh?189B^SVi&pEghhwuIUuCZL z+R#`c2ly{4t#%#->riCN+z156&X3q_Y;+bW{3i3^%4=^d>(6!Jf?g~_5JkCDbglRO zy(YRow-$ycNFH9I#yOnhZBoPWqg3d~9FBNW z&yurI8*MlmTvqaKI8Xf!R~ueLDfpOgMons}dc9_wGJUc2%#RbupG(aZ18+<==5#Hb zNQ|BPjoRKwFa&rS9t})QTwQG<&Z;SLxyi_EeiEp!C(X74ojd&cX51 zu=NP}{DX-1vIpkR$6IT1VcBq>ziUZqs?@Y`Djei+A5SG=-B&k2!mNm^Hxs>ZQ2Q!{ zfetgpdU|js6970j(vI1nT!jPxqhUtkjD=Bu$w=tAv1Npbq5D4^Fv0|}l08tu4=@{t zoL3RpH|6SfVrL%8O@)=eS7&kNzB*>Rfp_}#TU-THkIiTd^{zKp^w}hs(f~MY&GHQm z`J+xfacujc--5%@!wN4;Ch`NZ1we0rZ#<83p0&@9^P>VcMGmS-ayP-)(hw6xY!oZh zrx7p$C~9ncc8I_b!EkTUy-`RE=qV7Mg31k{8eIOC_dXMddrA^E)ejn26!+4 znz1D&^eoFROyxnZf1N`aEc;TeL4qz%ovg)O#_Y0Em zk3yT!u_Vq(vG*u+v6JYy^Y2@78)_H<9=$YRDoE?8yn)d68kuM-m88J&Sl0S<=5grh zP~yH(>ctA|V*yKdcFQs?(P)!%r&ruhSIrccWF|@61al(=W zQG!R#G4Po8-`QTua~$F?vF9%*&L@iHrM~0ciou@20E9MXcUR*_+@0z|5cF}shX-+0 zD&-VXoLkDNavd?UV<2@i*Z|vfi^!*uNo8;tQLj6;jxHrzwhk7voUl+BMW((5Ur#UT zR++kk$DLEz8*!#FsV=|_0FDXqnn9g^3p3Dy?J^V-z>)EvsFPxWW%~cWygXp~j z^q$364rTvsTU>n(*Z+L@14fj%aHr|4|G~t|Rr1fQ<4SCq5kblhgIx5d6biSk|5u;G zp)j;=wo@0lm9lHys-RLuxDEjcFwJo;l70|w&RbxX+w(j18~?G@^`H0><^AKAnh)dI z{H}L$LS##3COvn5L6Cm0uHvrZ#iVb2gM&jZH#EBMJalt)gd54*TgUbZt3OEL z#ye70jT6b}V^iUYR6-=Q6=0E;N)-YwKZz6Ry-?HII42@04K0FD6a@WxI?|M)ql|r| zTo6jJpozlK8Vr3#0ZV-A2}KVna-^h$Ep1k>fKUWA~y z#iYiQQE`LH%jpmGew==AOFrcbY;0;q4Ae(T)KVp?e$sRL@pS=X*PQ+@T}NVJ<>Trn z-<@{2GlqL}|w3R_iI*;GJ{n|K`qW@m`y8aW! zRwSM7_4MzbA$$>(GfMpB6*o`PLdG=_uE{vO&}zoK*E?nOXg2d#HGZ-DQTyJzEeJz--}u-mJI}ZQAQ}0A|@9I z;|LceR0JkN`Ks$Q*4Ev1S2=M^O!WA7@k?DO{Ix9kU}9IIP~Bq1i?baH(#;8_u1Lk5 z3W^h={u_f%p`F{_9gW}f{H{usiql9u_DLDOg_2PR+|Ii_SsC&I=$IP}@kb1_aY?LJ z;cNEdTS4Jokc2^smt!;%V7X%V$`7JsPhMjk${M#^ICMip8tIi9)n4Z) z!wU!rCr2Gw1+{miDwFTPRP)`xw6R+ppU_%(w7m7vac>o>IXp>wF{9vj&!=9#^OZ); zQ+tYAd<>wHj-PpX-Z4n9^i9Bb9dyk%n_%K$%oxk_{Xu8-?RZTDA<(C7d3LLf|{BI4=ts*aD< zWw|roV(fL!=_T3K*-J^esZUFtizWR#blRM%l{v2uU0K~3V$ki@B_L8M$u|7rE(uUI z%)&$Ao+%CC^(9~jS*GuRWLhASV= z$F5#RbJpY((2Zmoil~3?hMy0?o6%lj5C+v8r6wHlgxjNs;3Ct|_`ytkaz+mn^t))u z3OVqjl{O^D#K(=L72Z$Y+4WA;pfn2go*gHS&fK?CTS!q#v^{-di}Li?H*9>J?^8wtCuDg{SB;V`Vh!GnGDzm}o|5BAYZ!9fW&LK>UTpb#lBqWb~27EBy& zv+v_Ae6nL`v;)5ra6h}F1@jCuoWV1o!A=<>H60ME8A0NKYAWHY4YR#}@G|tf?YLl{ zV32!9{3#WemL=nhID&(nk=3tT`aw{UURIWwPcpE-F>m5&LJJ^#FSk!V}@FFvy!$xXSh zsvhy#i90b<}f%@imVtN^m8C-+Vh?_Q^ua-kdU#FnRU;pW)ox=fKPQTpL5{{OO?Ci0Uk z;!hJ2ufAstTmSCL05?F$zfUuBL(9(IsLXko!Pi%=MXW!*$&iSOW&Ryj-NfHnD;eo(H1_PvM z)Z!mbuXG>G?oPLG!R=pQdKUR-&?8bfs5}%8`Lm+NO9E6a^@qoWCT+<5ccam-US7Q* zIN{8@AJ2*X?D6LYIAm<`YcR#+#8oWV)i`%#BdKK_`5iqKIkWqpp!Em1m8V(0iga?5 zbA%!RIZY@762-7!Gq2xLDstm>JgKZia2X`CNJwG~10VnqbP(62;khW-Xf7LscVRH3 zcVpTR$$qBotjU7RM_$SnW;S-{J}h7?uaT4i$b%S3THP3Hz0{GpeW4Gx7-TN|EUz`7 z@NkewBLaGG-9U_YHwKNKVM|hwK_lty`Y`qIQgts<9)PF?R|5yPmFDn$`?o;JD<7rdqA;2 zty{1c1>)B!l8A!*V#f=3#1h59B-)SKit3HE9iJBL-o1y0{Qz~?*@NVjZ!^PXmmj3) zRv%8aH2^wFm6n>lBWUrj1!DU$^Tk>QKYdaC8qiwF-Xu2}^H!vk$R_YwP55)o-0=$# zsqB$keV%)z=>8=JPgk6PB<$)vPq+PA9a0mzsYDJ%AUyWnDiw>I?>LibBnJdyS5$adgq>?6QDNE01nTQQJK{wW`#IJ}xv zc7=T65SBA!$x^mVjr~{W!q?Jv(6U!KI-3))QL%WbK$N)sQsTsoioHj6l5`nZ0~laU0rr@MyUI6{Oj~jJzdF>0`iG8evg89g*&dN{Hom(7zit@ z{;27Spdy$Tw=2zw5UkxI4~BA2Kf$_$v3NsQ1)D0M=y+$==1ac87`2H_w1$O<2-mIU z*a!wskL5y@z>d@IvqbUUPADeh>9UAblZL|)C&u6Wa#xOmwV<@BBes0Oi{`moyo(gC zM(y;_bqYhD-V6>x=u($-;~JE{x){5m`dCx@t*MPS#p)Swu$wThVa_m=-g~&h7?bi+ z8K8K?jgJ7aK6`shBM8ivm9;N;KPWh2W@$*?KZW-sVu?-{a66#B$)>_Us0|{!5+jq6 zQaw~u9H2N^r+hV@r)rT%?A=Yae?a_wgGn~%b!Ky$9zmQ2L7_NAlw9ba#MwLXC$v}v z>aeaTk5>n_I8zQ9mhyD4>I;wiy#5Of)!;;cTCA05rE1!xO^6RAHiAee5|By^PH($- z)KhZDrY7@UB?8q9(orWxl(!CAPjwm@=|QFOBfS}5fB{Jk(r*cE#9A%9wG5I8woDO` zci_o3XoECSuFDsrh?b_iLm0Yf?;PlNXamOj0vF_g2^|qFiIH91`qaj@$Ip*0@wE`T zgz=PO!iq<{D=_56l|FLFQ9`e{z5QgNi(EEHZ-WMaY*SOaK+Kb5x}$XD#h@WP@TO)^ z#yIIVI8+`SJ>zeLkBa}B_mfv36=VQ9C!LMuJ((m=@GosIdY!rVmOJt!wByj_N_oBT znBZ}+{&C$|?rZ0qw`YC0jhiIMUXJ!8g9i9Db~Gw}c_h?>cx* z!ZD~`|J@Q;020DG1F?1IH(vNUx4kX1-O5GFk4}W>Kuy{Rp&t=hViv1_|G~T9m%3e} zxa(4E`OZqU)_|N8C~|NkACu}WQ}NU((E8_2OBh*8@o|<#Y;xPFXO)@1 zSIc!fF2==a&g>s2KBfC~jdk-dNc5<5T8*AIjXLp*^+tIkTt2foB?(r7N(xu3j+!UX z>9oK&sncBi^()di+Zy$*!HMSD3hSbGBcDS7$oIm_gOACf^Ow`)S1v=oJ)q$N*~AGg z)ss#HMsh-yh!j8oPCxM85YhHxrArLCJ(6`Ici+04^WsZeRQOeD-TZCN&$FACZB1WW zkn7B_*7+4|)ZFR#O$WkctSw)}wye^VT@A@8JuIMrk`cpU`!D|Hg7eNWm3MySBwO}DKlhZu_Y=Ps-z*Ixlqc061uqs|5tn#*NNRjXI=d(2 z|BxO?c+vN|Q_^?Ho-CV2(slz^Q?(vj#7MC&j!qb>n5tR7MC0x4l(wieck(cF@*-;*1UpS=T~t!!bJ1_PzkF%=H_Te$A%<{PiCHNkDk-c)2fVFX zNVHO35;4uXstL24#0gr|Wf%)}QW=1?)S#0YB#!jD&Y+bJf=q%Z0WQ6LN{}SA??1eF zoX{Y|!!`t1Lascy_Ww5v8s01rMm|Ww+WEJ%VlC;BH!xt6oM0hqq)yNtuX-?ju7{fr zcB4UWAj^{|KDeuHW+FlWDjt%}7PPdR34sm1rO&a)z&*p-{z!NsR1ZCFJXwym4tXZO z{1{-DdAwiE+dISyH>qdbe&=_-+y$gHbTSz)?Sp8_T4%5g$MxfaunrzDJB;R{Yw67N z?Bn&}YX{z)Pl$J1%#?W{0!VVB4UKJ;dkAq$-1oVBh7^JxS7`>I2ahYbmge^ zWH`90?+=phc{hNg#s4T0QsO_yNA`iahE5gAXn%uSm(TR8`xKd@;7Ee#_-tFHA*)d$ zsS<1YKGA4GGE=qh+Ejc9FUV|*B2(?fU-c>WDX#@H+P?5mFD_dlP8fIQ(*i}DL{?a* zKTBw5V5}B398J-h+j{qr*CO46p+?; zd-hw5_mqdm6Gd)#x1h?~0ovkEPMx(KRJ?lJ2@Vf3_U%+vzL|@ClfokDv-EHEKgZnH zAhcqX>HTqTwe_L++S7k8^89&P2HvO_AG=C;{*(*(53BY10EJOp7q#c(X?K-{vs&JZ zi3n@?q?ouYdV>~QSXQ^;(R!dbiQLuDj8_e+{wkP(%dMW(*w)$zFkMPEAms6*RxRMs zy^DF>=l*;Ep<-rqyg?6~jQYAMho7z8CI4sJnB57~bHktR9WvG~$F^6#qHYy)z(y;A z*G~tKMIU`!H6DxJ?w1;`4?fOZwA4 zO0j#?>&%FHn#`U;_TKIZ+ynx`lqoT)WYMGsWg{OHWTwd7qCF*2g zadlDv3pgh=*d1T|L15l~R!T6curC)^GZg84&;9%>X%h02|6^c+OcJ zBO&g-eufM2P6q+Bn4+}i^Vsr{_cF7A(2JSPs)p3J06W#@{jV^)mVQ@i_=bD?>od3$RZb_$XFy}~{mBUO4yGz{R$;)dogbf)@L0v3B59nvib4fTG!z#bdQ4y2C!lM) zFLie$3W+}~G2PytcnCTr(SM60_~2fff}e+DJ-mD*lFwi3KctstiQ|dq5B`w3c@Dlx z?z`MMY)0^_gv$%I#n%auu7qE|KKol|bbeL#t7{Y?;0}BD3EWklVnl_<7+!M=42zm_ zF2+|15x+`VO5E9fYR_39z%75F5{4GvH34=UCVkr*px)P&8Og1nfeHjfiMk69on$-* zk4ia5aXU8uEusO*s>v<@$YB(3BxL6PR{gKND~&s=UH6%JqNj%<~xUOIxgr% zA+va;{!?O-3+7P}k@F;=)|cFYg*kGvkP$03N7>HVff0RmK~&PHIZ@IYMWEOx>isKA zQ$AOF3z+QR?l^Xur!GKIrMKB+R=McaS%%x=Kf>-nO(&r(&z^gqL0x)>3g)p@^Fgz5 z+Hgc!edvj}jBW?1n#?jvmN~&oI)S^1HwBm$2Nji+(vs>ldI^YrY9$&yK}|JhXP3mz zxtpXaLTGBMe)M&J0EW>F@nAg+xL`bHnv3~=><3}SLu;%f`SKH;q3sHL767veYzX$d zhN;d*MQ^_Lt89h~k_=^yEyg&uvKy@xUf>HOoG8x_!|)_h2AhY^@bpqt(?SQ(W{^So zj1=yW1*#>TgqIM*u9AL;hYyK>{31l?{n}8XW06XA`kwq+!re=F9VdiGb|gl2MQs+q z88eb=Wk=egQt&&;ATa^lg}mPi7b(#Ug3qC~0Ile4@Hiw|y}r<&>uzg(!e=1{B}`QG zOLF&J#gk)$^))nq5`hJG=G`ZQ@?3))1w6B#FJs=`02+3Aye|))G>wX9xbzOUy_J{* zm&M1Y6?n0*|&O>N9F12`-rYBhDig`Fo{g7(?&}$S}`Xx zOs*vvw}R~9J*&~{waGvsn!?(gQ#N2p`9wpHWUex)OP_Sa9JsB8R@ChEdSleC5&Z{B zV7SfZ>~R~e_hwN|I&otBTnPzW_=*&`JIdhO8g)TxA2sg;VEfwpo|MKcjF3xJQ_?dD zpF3-1d!;P0h8u5BDWIV0yJ9q+QAmVnSgN7EmFt-&=>HJ<~)E5$0 ziiwf#Dd;yz4Rx;m4>xDO(t5}h!seR~zW=JXb;9luBqIQyeU;ucfTv@i`MN*IwwdsSl)?+BMO2|71*4>Z_5D%10?pUDgJW8|>;T)3JaEWSP5J33YfiJA5D)Jy< z2Xuo!)h53($Rpw;eG*mwu0&wJ!h5&oc=W4X`Z+UPbeomC4uQI#|Ciz_*VhFq#9fT@ zT3mElBhD~YYeHZBS#fTGEqN!2dM|sRK?GYyxc^~1*#fM(vf2EsyOwfF+CDvr}$Z6s&ogoIL#BrAIR<=VSj9TAiH)}WWhI1?PgGe0ora`NQYhW zi(U|lMi8g9>0&A?POm*k)>QSy1nP*V2QK#a8;8*1$9KXzB1Vmyq(9TN&xORFQETG` zEG@I@S|GHcH)2{>U$J(2pwpMV!5%AeRA2qz&LG9x32h%IeFRrgdu2K-w#94S7Z>L~ z7oYB*(2(~%e#FY9EOW}ehY^;zz{~bUFGw05tcq`)P3lihFOL1`-;mFQDeE~eM23J_ z9`zV5jX*ux4&pFd*CdWSpHYGmJI!~Mix4>ApPvxw1D1&EZBjTBTC8R_iDcZSYx@{j zR*5&>8Eol>AcT`;RUKo?cVjOuvMi!2F*4eXC9G^I`iu3DlumUl3XKj#LJ6NG$rW!H zRu7ee9sB^B1HGTTGm6ur!Kqy`P3y30D4>p@r1A8Li8F1Wry2r!=}0`J;|8(V!*&}5 zE*t+C75T5^x0B6;92tk`#3dra%I4F5^1C&E&A|}ATVhMT;3${R{peM!4o1b$GZ2#( z$Gm;}ofqIPu~8^y?90-!OwgVGN80hulYZ=<4g|ywxc5k8dDj-~Q~XsCdV9Z%TBf~d zZnKib$6pTY_#4<9V5EhVm7&o8L`|FY2a;70Q)dBq1tBB=tV;&SMGH54)~Aq-Cgwu1 zG!Y_NomvAk!bbbbRV{uaSe^<`9Q9%$8A3=lpZd?-IGQ82$wgBusbZ0cw28Mjj ze%bhXY-OBSxL{pOon@IH`fSQPT2>6V=mDYcAwm zAr+kgw}(mS!moDN1)GF(^=lC{Ad_XG8)qaxOnxPP;0SnRn$1ab^hC>Az4VK7-cc=0 zO|`lg9W>BNFTVqQ%Gb^TijzS-bE9{ab;5yJL`3_nC)s6>r(+P*OJ(3)Xrq>dP^*!s z3&7z}`SA`Vh~7kXMI|M5o=b@K?@y<&0z2|CrO-qnYu81}o|XIi-+XB-B%P81-E;(Cg~{_svUM zk}NeCe!TF{m~k#>dEg$=Jx(~UJz4+bI5lh2?2PL z^G%j&Jybpp&(z)GBBs^eT3KP83)coUXr!hy01cIVU=g0!jZZ#;hE3};Pdn!hjR9$PR#m1K5ftB*aN|hORov*3;X!yH_nzsWR^~popRRU$NxvCCn{6nQ~FY zYe3Mg(opv4R_@;bhVrl2FhaT<-|YQF?( zs_ z%OgadA0@gt*qm<&buf!E(&*3h&e_p_U^hvQ{-+kw9n ztaO4O)s|H=T{o0{uSCgDY1-Sk3H=Cx)%Q&vM+=!rjk@T zmCcRmY9pDu*7`?;2N|0b())lIMXoA!OjPpJ+p!C0KMsBFS+URP{d;QGBxa?(bUQz3 zG50>4lV|@r!g26JqHF-8fy4iArjb$Dsqab3-85i$bK zvck2O*Cbd+FSKoCd~GpFi@yABR7CXhOBRhTUmQa6USd>IF-KM?7p%RwItVaOks~(r zs9qG(fP~Eqz4S5owh303#jER8J~Kncp81wZ%@9(9WBKZ9WSRbN>&Wx&9s&JFXWgD4 zLN%tpyOejG$0+`##3~t4E*ptszXydY6rDaieB+C*{veW7FBX64JnwnDerrDY+yx;; z!e&4j<)%H3GrxNYjsi_vu|nJ$0S4AU^2refBCK( zaea5x!S29q@2wn_!(GR2c~5>hO6-a{U=9>ogw!TDj`n$MP)ji`t|V|e2!^4rN7yUm zn=c5>G%I2FBOaEG|Ia(SNH^kLMah#tMgI<1lcMX7Ug?|sgWW#p~3|_rh2^7dkSplW;DGIT;+c<7kGqm zcoW1v^iYM{3rKtix8d-B&!q_;MvtD!Zy!xtjY{5WH3!CP2we}hfG{b)*CuOszwa#7 z?lZ3`e?@0=(!Xv#sy<0K+tZ z9C(gwK~Nm{q{<_4gPcoNyzO)xadnc~U5R?lY3zR4x87Sq#S_cz#Z=oWt8z{Mnt~{%EF%OZ?=B@ z6}zJpI_d7Qz8yxR5$~K1I6BDQ?1CdRyrStz0ya_ME*Trr*xi%-iL7EX2rfBK*f3g! zG9nLqZ5}#Z#ry3?A)~A0$68?znv>vuX?G9luZ!%}E!<)X>#o@e0sb;uW1(V@z zRXh;8Av7Rk(UcrX^(6uyFJaw;d^D86CP7)q}WA~K9r@kEl|A;z3_OW*5 z*2uP5u(rjDwJY%0D=U_Dx%|(kwlfo$%2>@t$FVkCLE^}p%j*&uM_mw{$~^jU*9lc* zM|)m2M)Q;)qITNU+-&uW>4G4mDFR24p?8+c1$T89Sq`b(o#JRR9?xv+zBe^=X<%1d z;X9eWa(Sl*vM#=we`u$;;f=7Rua{z@rC2z7p>O9?#F6Fp+{7y&RN_TMdzk8uh5{_4m_(D))hj21Dmw!nsra z)+)$?^mwX<^Jj33?XU=-4X#d$VQZ!T7?czleGpOU^U1h^-O!fK&rp zhS`1g!H_TclU@YH75JYjY!Wn+VxJv*>Z5=Snog7?8bbw04gpRz|%U1LsO3`iq?oE}X3a_2G8QqURm#A$?361zxRH@ww z#{-kBB3LewKotr_H=8ulHj9vj0%H|#lA!7Nv~Kd7Q}7(7Mrw(nNOX59kO-)}nP{E+ zWhFJ#jxRQA-HO&gWPU1fyU6BZVZU!yaB;URp*xIQHrvf9I6y!99Bof*QvbXsf9r>V z%JFHeO^1-tN$9pnZforDyVb;Fl}^8MYs(r%`it?qq_$OF9{A)|D;RZhidvje zMoUb&rabw%hdL>~SY_gVjXlzo^z{`4#D?p31Z8@wIBZ9HjxWBeNQ{8!L;@?c`;gKZ zM>dw#@BMAbW}SviywB&!0J4awC#SjXx#1qHV{mvkx%%FGm~Pgg2$5Z}OKPjVPk;ZRy?NQOFElb4 z_EbJUbqwEiiHn;gbg8TFbbpC@@!|)t4{Kg9HgCLHwWkJyvhOGLE_mOyS^^B-t65@; z6|bx&xukLjA(FM!2f6Q)*<1**J2=$k`>sCpcNQmJ1NKwJ+_d2WXWkQl$U1R@S_ zj`TX(RIYX6LpF^TyN=1poEq3-n)Xi7T*yoA~uj&DvU4tFPhTvGTjnh%ldv>kVG1aBy;i{NbK+vIV7cfj?E z-D9}xh!qfZofr({Vn_EeYik_`AslLVh*mB#1qzYv0FIpONt|>znr~z7z3HwZM;pYb z==6NiGk}9mrIJ$2mGHo*hKebvCYf~iP8y7u@Z#-9J?>)~6U%m+0>z@elc-!Xh~CB-e{5+}eH(h8aR2%^x_Y~J&+NK%!Y z+GSnm!=UdKK0#a3PCxXheclyca-n~$xveRe)U&bbfnVZuy39zgq<3A(TEn}Zh)hF4 zygqV?6f#jXb&whnEf1x&xTv>yJ5iZqPjx3c(O?PxqtM6vVO!X*tRqpuu%r&3$b=4z zv>gJ%khCh!#ca!ku+?Tm!47DKrql*UQOf_r*Vh0vU2gwB8v_Oc4gsCKIfmkxS_1(A zr90%smp~b8D5g1?AmS?`rCzg%1Y;s%ij8RoQ|I`K@0D8J9KHY%z5=D?y`mH<)lE~o z+V$rDInVRmfa?ESDF}mo_k5q{b3W&s&p9Wq3|}6(ZxJKeBtOSmG$h!Qwi>v7?mmV$ zA3F5B$lq^ov*4jn&KeVr?Pb%NIX*wmTU6(ay%YcN51wB9=H&q~HCgfNpj`A!QaUd> z>zo{>q_pTLfuVE`ntUPb5oU)yZ3jZS@4`-a^l1FdzhSB;lM+<2j_v6m8t1uP|H{G% zB4?IIC5fDrd4Aa57x}A>dHZ~Ni7~L*&Uks-yD4DqiM&za;~p@A4pefx*EYqkQGMJ>)p_d|{hTTbky~0d@^RPS^?!%>BP72oepS92~(5iWgke z4`oxt_@P2{e--VHe?Pr_^=Ds#HV?o0>h({V*69GT5l5RRl_n7j9g(8>I_Mvca=W7l zm%Z|M<=sW@JWv0qCQReQqc}W6yR2{R6 zILPh#48iswY_>J=T!ElMI~d8h_HizR4*PiU&Of~^uwI|q=+kq+*>K97U%P&#R)=y2 zm)EO)vjzXpKZprPdOz?LLX3%-a9TTvXizx|O`q?mp(XM*#pIoj6AJ=QGRC75RPTTO z$?@q=f_R)?V5ms2qTCGnhyRo#&&#{8|-;WHfkRkiQ)yUE8BpUpL2PzYZPivX;<#Y z5ch?>Q^5OC7^|NnTezGWPdbea+ZGtq)KP$Vw~7#Bhwxt6sEjl54o5N6v>hilW9*l0 z%=BZYF1|hH&vG`~2cl+(XTL=2N|Z$5tYSyA3gn%IXVCy_VNd(v1?njH{l=+_e?-~8 zAkFx>N>*Tl7gj(O1T-h9R1M(zR9?h1xL$mA;FUI826y0J)f0Lw$mXCj3VpOtr@SH zfDaHqzGFe#hSHT~5s`-)n(u}FGdJu2t8=9B1HW+-RVoKgN!`Rd6N<3Im~qhC<`Xq0 zx+H-XXPIz4-ilY_-+8`e+hFW+FPrR{nC5;{z;hcW;LIJpI?WqIvKzS&y6f3CT^T`m z0Y}~-%g6v(B|CTyBe2mT!r%*lv(GiDd1k@QlBe#;Q=6x4X&^CXIJi{cz#Cw)fld;& zodCuXOUDdC+QghnUDKyy3E(M}{vTbS1JCxsKsMc)rkRz@*e^qV%oDe-t9aj!2gu1v zNAM;~z2(V9g2Tql;o0FdV@gqgF;q|zhCv#AM~Z-W<2xgi^RQWv&vCTtzNgM=yfV*S zaHXVROYJa6{G*CQS2=RKJuJLxL59+q_@7tSzsIq8sco-)BkAF@Hii7%;XjUe6K#jC z6s-G=1b^kWcdO0Pe3lw8f+RU*ix*s;R>9+tsr99ghuTNm8a|po!0f4ySB`$~HE@Ou zvW>Tn5vc(scKN^6<14S4HW%9vq277?!N4R;mX{61hYO$Z^H1kO+yPQ6iG)GF6(hIG z>xU$<@PFRB7q!hCEc+;7QwF{z*6Ts>ZNsj`J8gEUsn_(oPwJ<;mAhYi0)dm7_Q^@Z zdkzKC4WH6F>)dK5YB}9Ucy$*}m7~;IV*Ga82w}F$YuNls%8BK~wfX1~O2dw@B9Yz} zxI6_p$PftxZpfpFyEH*RmIn6~9&&*#9OwxY(UYb!%3MT%n^&3U6bEI1vwJP<`_}L; z@iB&FvPfk;?jp>tnd3G(+^YY!fg5NwZSMKc*0hngiT0-Quo z!q8-rI=2a^@NrP7NN@rwGVt0qa|CPM*aAOfSEz!V!iLd_&9`}$K8-Z=hT-$3r_v+q zRBKl+3Q;`jH&GJrlC+|JVi0;eEUo$IY`=a%_As$sMnc12R5{ldy8aXGh0o6u%1YEW z$|N5f)Teb8{$4+L)6)@sVRTz%7yZlg(Pbz5oOjj=Ji6ujm(g_rSv4YRre9L{(5gNd z?Wggr_voH|;lrTk%8OaNRLbWB780%tN3{jp?}d%=hI|+qGOp@;GI5v$t{|ziAo*?1 zfOM1qKI@~fPZ1+ z@Zek9R&mK}$GrDQU=Z;{NzFQ#l_F|3eHZ2(!sSx7hff6=9qp+=LYq(z)YY`Ln2#Wy z&+$|R+&%jpUdUn*KYT+$zZ;n-*xsIgqW#^;ROKOXs~E)LVYHGHS-(;hFy)5>Tm(^shYHSD9E)ee3f=-5=Ev~W-Tp`jR>P6AaN*|3i9zY@5#uk0x@(>1ieiD^k%$Y54y&@4sBP*6$9!_Vee50#gbJ-2w(CrYT_+LtXHBSHxtSxJ@1ZNme}ree^JL! z&Z*RS^GTccLc3&eNWNCNgWG~7Qh6u)%Ojt`GxW_#Qq zNG`zUvgGu#BN$vyi)wc4az?V~38=8zAzt=Q>zSKhiQw@y5b5c`Gj&P?A)Db3*UUU zp=+LVejeg+Y>`7Ak?kd_`Z9ZV6HBd!Jn09S#=5mHsDb)Af62ju(X2a33fFo(`g!`F zL{@gV^&|pM`kgct1zdc~ys0;vh&>$)IS{o8Bjt<=GO$?bNDD}iT-jOJXL#6av`Cjw ztDxu~Bk4!QFFZeCZ$U_n0w><#KM!_o=41CVWjd*YATOgxink47j(j;0e|2TRwb%OW z7s1eE`BW(4j8F8wtF!E$fGM75eFGgpPedTngAad*{_N)xH}ZNMT00uggCXLA)w_F^ zkhjdR@&@A;&mDW%inm0Cl9s_I`XB-Igoy0lF`h>&kK#dn3XXons^s&lYh|L)ic zk4JHAdD)P#A;f7!{>ME$o1L6F!n0u;fbg`bF6I4%!YU@(FaZCJZQ1qIdR-tgpPb_Dx$T&%{@arOJ@{OZl1Rd^vbQJTJDM>oiIf1sNw{flomOS| zP^M7&YwMoI6Imk(RmLZ#T=aYtdA`V$=3oPDnpg`P4vg;UmMdwf@a|ASVrM}bWY-u{ z7*X0hdF7Aq9&hc9iBy7JX}l@m$gMwFB^OD8oE(*TBRC}TDyYcwgLr`3zZ9~!rrx?= zI7F4(U6M8N5cmKG-GnQ~C((il|ExGD(;NOj$AKLRYVwWmOX4ARoI8fhp|Ug!=Y5g* zx??;GR=lt8Z}N&4EI4~Aw>(8*c6Nm~q5ju3;-MseIU}iX>Q(Q6;k&{Zzxihr8h=ke z?A{g`ZJ}|6+uWF;f@A_h z+xMSSKTMfF`21X#coZBGF>jje@7RLg5k8%^eUBrT$EglXiquVd_5|_DUdL4N_R6NqpF+%tx*|cArByUH&sPSyy4A%ItOV8RINBm{dt|LjI1c55i zNh_2Q6^j!SqhF1%pRCmG>l$t;Tpb3@#DJJm=|Sm+@o)0tI}5(^1%rE$Wc3>wx}pl* z&NNoZPONKtZ4Qr?Hzl%J;COG9G7=?FK~+5Ucs8XImYAlbN;1?n0u@oKbb1rce1tYuD8&>p#o3J!uT=S|)- zHgS(ItC6>j^n;~M89CIJl!?$r;a}2T*xk{EzFsiS6&f2{E%4*US2bRXY5S)qH(msx zr--O2Bos>iq~tBLS3X^RptinQx(*qx&L4PF)sJ_an(=)G1yQ+d+T=4qUPF!rIuiK^ z&r_L@;Ya}Zikqin$`XYl(aCMPCzOjq?-Fo0+ENuz%RMTIWZRq$@R9o3*+k{)_5U+B z-J3Ae98Z}BKuc=yOcIkPO)G|7o@-bc@JckiicmUQu=`yp$&U*s)-$JfrFR7V?+}O- z<@Op~9%n(Xd4sLdid;~!x6`uJ(_YV+#-TP?-W)Ie#ND!h^$%=rU)UF~v4=b5rIYtcq2i~DphA?m5KuM|- z8O|<+GV~LH-OHS85>&Y+8*@tt0Qf|1&N)$(!bYDJe~jlvEaIw~Nf~u3(^SDLd*%y{ z5#m@s0RuM#Zg}DK%G= z?szHM9q?sZeUKsNr47_il_}IyR$u=L@y!2CA@L>e>S>c5JQw~}k55|F?Slu$E>Zsn zR2j>^#}{!UeLd`1Gz;AG`Xk$79m&0T15Kqp$V6oJpqQy_cd1fU+vbF1<>sp5nmAe* zrhva6JHuOBQ?ocE6vzX2Gw3c|)q4omsh!%iJJFkw!bB z?ySkdA2Od94(vL2k25w2ZGG4q<2Fg2rRvvs4u(oX^VND^I#!r3 zx6D>GE*tV9SWhSa*k*y!PoO7f*Th2TWpQJ+!$Mm#Rv06&gY<7(Z0lGzQu>v~|Il)W zDpxeH2Pu3r9j?D@8?)X`9*zdK<)Grq z(KbN4UsJpO4et1`{`T=@#UioE)~Qe2yEX!*>i3o{m?;F6E2VTUV=~Z<|!Ahkl19a*KwC7_iCUW(@Q$~nruQ07hFVVYvSj%)j4Rs<{Qv&l1JZ6@ryfi^Y$1`SK zy!Y}S7D+Cxd^h{+wOK)AuA){a(KGqHF=U`nPyT38-p+h{BTX=7&1Cin<-3w4EDiqt zEjpxLuNTv4CSq3+^ig%CLnTb4-KrkGBZaoM_{Yb>oE(@$WFL|q|oY!o%8v5$>ESHLPwCNx}_R_3()w&c>s-Y%JCrSz1!dPI$McZpvHTf$M z>baX6Qc7mn}B`>|4N>YnNb^TDj5oQu=1I*8Dns55VwEE0Ujq_K%f3FMb*wH33! zj`-FU2BXQ;$>Q)iZ|L)Vwa6oI$a7dWSKng} zpK~t5KV6Z2<7L{8pW8ETnF%_TvYi^UB{$&Z9&R7hZ~GV5HvWB(?q0N|O2rPbzcKY= z_gSywy>p|m;zzo&^ePcIIdd@dwdMEq0k(g}wwN@8!gfpU^``Szg`-;^Cz3&6ZlYB9 z{i?{sN#}|tc}>PQsn>1t>}u8b=unVOw#oC1Z=)|lhV6bB{+E<(G){7xKQAXsb3xM+ z{fnDY*eaVJ3@v3JaGpGfnvjgaxGVC1m67Xb&iFA9-^1}!BHvK9&v(b~C}rXGVA6j# zPxyu5r9Giu#s>xJVc>MW1&i#kqI&^c9$&U9WMlK&R1kgn_Q!Y!PS1 zot!yt7jo!P)QRTes>!DL1{+#}9O)HeX@l!wT=qKnfTtwFZQi#Y(LozFil*!A{Y z`yi>mf*kl)& zTl_>AHp>_3_$F=N+;#jCu+yRMHJnRV{KQ&4jKE>%N5W(j6Vo@kQD-tSv6T+;t(>Fw z?vEIw7}{AF%#043nbllnCfk}7T6U|R2(|I{0gMiRL~Jdcf~FrzcRrup`P%JI=a)Tu z^Bvv5oy70|8QcQ$xrCvkSNZsjxKfh`4Wh+lR*1;b8}>E2I}z!&K0EMAMUWhN1}mX^ zD1Nt6K!N<@G{He$?Hvj6m^W3hU^srx9V4X}_S zdq);}k`BQlt)SKIAyyqInuSlmx8t$KAEp)GI-JH3ZC_y`gOSFi}U;s^$c1(@&uobw-yO=4zo?vV`u!h2OnCD`?|)PJ%u``EdJ#M{uA%`*OiM-ydMI6m`$eWWlIpZ!mz8}wAXn;!rJ=qNpB-M3Kq$Z|J~~& zyt%xJVo%*w!NL8w8wrv?J&ZjrP9l}ZDf-m#BqZBWa0$_PDFb1>-Y_(ZhB3g=1J9sn zcbK+;Ps4)5aIFR^1vs6@lwZmHkr-U_9P9iKzw-=4NWrNV~@!k`r$;w5$#(hhk8 zy=7X3qad|-jH`flr4S&fbd0>U5jsM(_U{Nq6fdboOJA%Yah4?7u+)dg77Wmir5N+c z8GDoOlai`ZTs?hft=r%!G+Z3>`t+2+Q%EZ@xHZvNf-?3&iYESM@{uDA4O0Bp7Vep{ zAtA#D++eh6l>;JS6^K#$2oMQr(E&pc zGGxe9xbLF(u_sI-PPOY&1`R22VlR4-57c!js^M!}z(r6#^-qPME7 zLqd8$;+wC^81HNaa2Mn%iDI@@LiXejGR>JJn?gq+do>x87VTbVwizfCVueLa0W6y} zEwRKF*$UHch5+~DFOvENyW#~AZ_RA3pKP48|Hdv&8m+>BsY=A(p1x&W#llQBs?OPd z*2kux;3Rs|sXp?6vQghhwalf0m2>BX5S5ZG##=T1O4V5oUIMpJ*}#rD_*y>;-RAj& z@A3$u4^}9fF8$=mbN~KZ;SJJg~+wNo-*MZ54j7Zn~{Jt zb-}l(v!IK^G|*;z$Jyi>6)|-7hJ7)wY`BAjL`}zzKS2t6T$ht`2uU9}hXS@RZ9wPX zTNpcSy+kmof&jQ*B$Q_>=zzAk1y%nJEL_-({GkVsoNf|t2>L~mSVBOvs}^4nb|Vz$ znRO{*d6EB8EpfN|59?}=Xm4o#E;*nHrg4#O(D)q%_Q{r6xv%fHFB%9OW88rVG67!u zMh7HPc5#USucZ6!w&uLAg^kBUZM(62O22j!yM0}eJ#D8 zOsc$`!d76CT4aUNktD4k^c#sXfjPIG@v|42u`e8#1n~$apFv@=2n?AsE`ypbN`(Mad1YvjtVRx52RxXzL(eiMl4vnoiof zk;U59d_OsXg5!?+e>WD)CS6o(I!2R>NxHve@9-tT89whd<3y*)ssNG!R!idz#AEGUS633`WK(C*;zygp8kEPWXR-ghaO8>A{{2qLoL z#2k6IAq)m)_95#%-W{V8G9VXqznT9Q2G zD6{lwZ{Xh5&iIaER|YKG-jDc*=hZS5TbAgU^u()E-=E<((6q>8E%XzJ1gmeJz*eCo z0EK{aO#BN84A#(7hY`lt>&1HF9FYixJKB2ee`h@U$3t!7Uq}p0B<)=A`z?`e&N7VhHJeW8f&s{4L_%cWO|ImdyF!Lu?vmzf_KQP9qT@ z{HR%MG}h$$c518}JPO^@AXE)8gvDkv!@y)^QL)yF=EgapKGZh5);e_!7=P9ki{260 zV+$|{lV8h3q5A&QaBL$aln~G6;B{bak368~MRos>!yi7AzkUtA*=V;7yBGOUxqR9;UoX*WB`}U1BJB9;v-4I$;6r~u%nc$0B9qRPRnefA;>ER1 z_pQ}gNF>cRL&)&OI5t*V+r4^kxn8d~StPMbl65+V@sG&(mip=Y$+Pj#7%Sbz!t|lM zkAFd|ORwd8A}(zx*tw#fo$urddkNMP20i2djFX4rW9QVGC#}2_RTzv9t|a#F(>O3{ zRqM93PL=VFo;{m1d@2*E${sdyxwYlb#WV~k*6q>g2Z?N(RRn7)Tl=cUaa49$%??)* ztx&)65)HBI@oKF-%@H1pB2(QEmqfBjGC*rcpQ8P_wvmtUR>&xw11Y2}i@o7`Ep37S zS~mTAxQ1kNZ{xy$hB8Kx*7~4vBfbDP#a9r1ZS%SO`1i1t`3YY)4dzZZ4G2<-OE2}t z?p&E5m59Z6PAwUPztjC8{=He6p>BVeKDBqjNU@2D(QwabNcyTK2d35T>|CQxsor{j z^=v9#Mh>eUYS|%TB6GsX?6a@?)@S7XQkm^rg|zoK`T8ZGzfQ> znDBP&Z6$q(3Fb;JtDYdO<~=<-3y}2>w9{IIYJpzX{v3hQyxF*hr=mH`K|+}-X}s1O zMoa^%Vn|d{rIkQHNLojMKZkY?4L{h*w6@WQ{@dqgIJRH{k5xU8Hsy%|DnX!qJ~@f_ z$_xKH|B1ggVPKCT#JH*gw3BVDmPbp`pS>N|_V!DE9??254gd|IeJH>2p~=_JJIcysV<&9gHol&r8ZpNA=m!jQ9LYtIsY&48Hvi{k5S~Lh!C^B>PEAo1 zjIEN3u;X7?oY^ar&yE);J>$I*J4WTon-%|{1toG3G*&vb<(fON^^TK)?FGDkGY_!; z9?$lUEs5um`bM&(0aNbnU)OfaiwMQj5|utw@!~e!jT5gVdkr3t`@E2{oOYYyHCnz{ z?QaT1y94}@_E_;cx6by@+W4enD18ODZSFj7*z#l!C#)u^EU220hazTO_{H9^%s9DR z3#BIBC%^b4L-`S2m(sx=_%`nTVC=n#<%`BQhj8MjCVKX-dpzF|5ODW$`89cBvj0$6 z<|@x?>)c*XPZZ2+?zMh+HG|8+Znjkyh4)XE#j9+-v`vi7qdKQBOX@gghD~}D%Bzq>= zaACJ_Vw+d@it|D*&v*euH>TVAB&w$ea0ssK{{GugN1NxYUGVu(e4iIyKk3}EFBvkC zhVTU!fr|ffNkY&Ue(7ItRr-E_RKb( zH!o2T@m2;a=c_<=@vU`a9fx$;L1DWJP{pl)ZjBK9p)JFLWiu-iJqzD)MJpY1o%(w2 z8r-W3PTyFJ2yrC?#>8AL<)ZvrNMc(|dYVz|p8IT46H~^C-bi^O9j*u2*bGNZJ#vf; zBhkAJms3uPjY-zdtgK9plbY}!Rc1A?OcKgvx>q|aRM8o()j2zX2mvECnx7cvG3S&H z3$ZbT;c>a<`g+D>!gdU1cx99MY$ADF^49xNeWh~!L=|MWS!S2T4BC(~(z*g2?qf8N zu&0RulDA{J*Kn1YBzu}wlS6F86CoN&xTmO=k&5}GI^&ebBzeqY1Gv|WVcNyUOE1RUEPeR5e)t<6%*2GI_r&@Z zm$?=A`X!*F(CKUwc8MCnmh%*wgg4@V$J?C&TMDu-E$MV&vu(bqwiZ%!c%8Me9%Dby z=~{~RS;^2p(S{Speld(1jYJaqN)qx~rdmSi$%sp%_wXQ{E8$pV0-s2Xx}uhb8_hI; zojSrFFZ+z^Ziu`7KnuRvI!msTGi1U{WLDr-{5z<8^+<2^9~)s2yDtLM``w2Ww%7)B0eU6F4jds5wy7EE%)p(cs3ek5gwbc5XA4*5FbvBIoW>^4Mh_n zJk9exG5fL`X5BAth2HWl6I-mg)P}@9>{P3HL^)L@qst?zVUI>$<@gr*0(ydye zvFbm`vNq-u2RKJOD#1eB+Tlz5fBh+|DPYY;!XvYCs&iO}7z9xHjPcy)QR46eRn#@w zSskepXFaM@WNvM`c0d~Pumqht`(P@E98QPgRZnAu8GK}w>&sggKAXhP`^1Qnce)~> zQJU+DiD6f3#YY@2|J-|JGGl>tFyb~f%K(##znD{k)V2Phrrcg{W5!%`eWSC5Av2ww zw71$gN^%g$WB=lXxyHqDr78Dh?TB11zFLfY3{lCz>93jtNm(uG(EMs#?oj2(=3$jZ zh8J^*H%Jvxe+C0M?h@?zQ#hbgCB-&vf<;W>z^$fzfdy^oc2BFOsqgX6O3L3Re_2~%4kcYvS(!ueaK6EWUYt{T|K?gl~0Ce8p5&t z|FTS{i{3uJ&J@0o3vUAZNFW%=%FJwBR=L!q(_@!5Y|u-32_1!N(Q12RG=nm8A{AR) z!fY+SY-a|O&5QF&KH%s-RA4AqHB?}bo9M@>Pfp1G?Y z$>A4c(A%&Q@8(N8y^t(xCVJkJA%$Iq52w?EQ1TPl)NnuG!9DAhZC7qRw((s{vB(f= zIoFlu*hS%`pBt%_b`RUH)3pcBb{!z8vo4eG9|;(L``f>Jv_LADd#3!gVA!>K2paVT zg!1G^DI=n8J6}TPW%IESxfB|3(xuh+jb(_0>5wS7@*o>2G6=R%CIu(aa(epvUPq>d zcTf28R9w?|w_>>f9d2h)J3705BN;nPeyx}8&CkcLnNSu&wqyI@{~6j&1LAR!wsh*< z*yj0VSN}VRH3Np%t;1#O`3LN@eOwzPROlQK&vRL;?CK{Mee`RmJad)z{oWZw7#Vx02uv936eDiemLsYuK-2U~-!9C;A%He?r_ znwaj{TxAZC(bgmx85>#^_&I5tp<)*3T3@i12G;nLY}kk(-1g#oF{{zti4PEjPub`n z#th1G^BMD{wKk^c1eR+E=K1} zYEeMOrR+aZ{Dwz5hG2b$E?{iM`?I? zneZav=jQCJ#vc1_vTbivAl88^qZ-bx zzIEXfh}2?Zyt800lRr1#M5quz2gvj=xKUg_3jl3mCv01Y`Wxg)7Kl62+2c0&wogkJ zo0=?Uv9>mb3C&h7)xl6`1kzlX!ETa%=HWRwrbJ;~k-J=-Qo){Rwb6*Q<)`W1114ZR zB4KZ5>?P6bx)%NueoFP={Wn^E*@%tSsN{_zQG2k#alpWFw9@a;0e<%5-}zc9=@Su% zRe!u^UCMkf1dCdzA7tZbL<+~9@m~9izyZy8CQ;#`+$kcPYpYTwdJ8g_Zu!+u_KIhmuOemM=X!>FC=N|0jakXGSzNFY0 zqcKdkrTXwOKl2_Q=ajeQ2aC~#4D9BH$7GQEXH~xOaFa-|Fgb#68_t}&dTGSn(n1eR zpMf5X#QUMoMfkILk@M;yCV!86e^J6giu^AkK3kBW1Jw!MJ!uU)n8aX<_vf3zKi(#PjM3k}k3cZ{sc9PbjM zZx!wj+GND1`dpEl%}ce8JnkX}V4bmTPiU|Dey8TJkb{zYw`H4W)Ghw`utf^4RFx^);3kl0s5o~?Rwfp8|IS3yGW(r@|L2~TH(VIPId_RBWQU$vA95Pm% z0E@-~-l>I&oe?c3c`lkhVOc%qsW&w1j(9i>PE!#Qn+1Yapk>Cz=KA{jd?rW)I!naI zfaPOdCPaY_wXWPhWSQVECBD`iAAYtyiqN?Ly&Jgczw=qFQ*rR-noJB}S-I2G)DStT zjL6K*&1dQpiKAl7iZd_2FUvtmDh1dTvX|qWY6r1qXF%r9rl};+yV^McJ%97~gYRD~ z%JYRHjlUwrV*Rtr?`YY_AM#dqWXJyMy1>!DpMjf1iV#dT$*l0Wc7+)e>hYOr!8_B4 zIkNNEsGSrZbPrv{*aNS18Ny-n6e6vJLKke|yySGLp4k(uaU{)v)Tm>@p4z~>6H{m0 zY~q)(q@PONc~b1B^oC6iQ9-%Fj4Lfi8o*{Ve38=yiOo$Y*5%&Ycf99iR}p;!CN6bv zoLri-7CMmSpk)U~+OHP3mUO~B%EN?|-~D~`fl~vDX|!EcZv~j$X!M@A^>~T0-#D%% z85K)!SjD?qa)KYcZw^67FC}j(`}L(2#0SG;m-YO>$mJ1?(@csurz!LOdVSI8R%*k6IyUdpD?MDL2l2N{~?BJ|zp zd03~uqJvjZr(0P@!558WZJD8E6r{)`HclZN6$;wSjLi}%K{a6u@bCo2By=Z$}cD>9xq090KZ>roddj+V^UW6(4>ISd41`S#O6e1}=vv0YxZ>mPq3 zhZ(=NR$Xh_v&kni%R);DSQFv4pktUgvBXI+U4(jLQ5nb1_8`Be6*2jRUSMdfPk#@E zw4GkxIyH>Dqw{f|`{+*P8~;;R{=>r|Gb2;=#L#x+b{G$kNrVBRX=?7ZCcN-2#nj!` zQ5S>yvw-p=_mrFNEd3pkyJWI3%wpr>8oX;Wvm&vxz!#s3XXOhom#9}>+1fZ6o30ie_E#n5dpU{GzA-x(re}~@ALKlU9Ic)_I8XLYtnnLV+{VIHC8Cy=qB>K>2Rn4S3Waa@%2!3= z_9iEhwJR*H*f1s;`Ob_*xyN0R;nrBZhg#3_jUAtW4428!Wqq}u$&YyJ4Iz@)4TVl; ziM=#ho<;KZD%+#RT)#NZ>G*wFE~?2)caHx=eRUS7tH5jRO38~( zVlUuu1)uvak~oOaUxjbA$n=IG;&$`%StFX*@Mzy3J5C#)z5w_ob!B=kqMm`4xr;2^ ze$J`g3K6^4x!|y9gvKW(n}23+JtMA{N=;KcHRrvJ!m%{-3YbPO1|Jd&A=~f~0tEy* z@oSMl0U?_vNUZn8Np-YbqPrw!M^-N7*Ezti@5H3ky{;2gnBS=w{ZCEw4?UIx7^{GP z)>`N`%+9Q2mw=?~xu|rcBe&RARzi5^wM&{EtA#^6L@eX7FeVees@kyL`*ZI;9fLRf z8Z#iTx@xJ#WYXt{*W=enz7*0m5!}G|;H|^M*kC4~loE*a<&EWl1^5N|NV}~u2;RM9 zdHb;vt!T30o0Kpv$tCC+U%p5-A6f%PPRR>0MQ>pd{<*o?S$({g^?izK6`l_LJSZoD zly8fNh={fEZIiOKe|)57HsJTLk=FjG8w}=p7bI*jLyS-7RN#u;jc?`g8?9?jNn+<# z+C5BJjzTu?aHeBFk|>kS-YDmjUDTFwRsQ;x`dSPO-xy4Ho;GsC{O}30-g2y&5J}cD zSZv~Nq8@8*7wALA zJaLj0&c?hW*cTW%z>0gd6{eyv$-I41eKIpzcp5`u9#7-J<%;&MA7tCYC!Xlq=Z^y! zM8SlbT=SN_UU-wYf7rhCNF8y~Ezx(5kpxn>xp9CWfUM`kHtGtSJMir(wJZubh(hk> zzw!f89~N%Ju*eTN`FXyx$c>aINgM{mbwqXq=Snimp#L{Sn}C_>5G(nx^kNtMOdXd9 zK`gz|mk`S$%{4~+1s%o=?z`s2`Nk)P<^$)}bCn8}g3VaKBl022V%=9Z<_8705FyDI zkt!aPl?Be^i`fG)sdxY;@rlexY$|xZRbuy)`!hP7*h&5*>^pRZlg4EMfjC^n7Ks*# zSgv;`$_<{t;j$%IY}f%G=;yOG;ZLnyzu)SaU&-=FIEJhi?b&6BcNW|D;-5kQa3mO- zQE{bTf&>!%woXc+kXHO?DO}@SsWmZK0Z#5+6Zdc;i?{SmEES~_t(eWQa{Jw9+566& zRqqf1)5<92PSzwzp!i>XZ6K2kH&vN+7O zA87W{%3WV#3Til{kcpCCt)~9BNmtsW7a0Oapq}pzQe7YZ zoe~yIbYX8b;FHm<{9jdWVS>-eFb*Y$PATFKygm$xww$)#MW{Iz$qG{*YK%sNYIRKG zDpFFe=R2q7bN6GU;+cNf=i<=MzX3>mb>j1$dyB>%LNwn9-@&+VG>j2SB&RODGyz|0 zi>_%7rg5rs`+fNoILXz?tg|t7z-}I}h^*YK%$-!D7&S5L#E>TMZ4&H~8(j6e7R#1$ z{iPB9d~tMWDIpNs{H94_|l6{oijxG#C61NBo7U__NLh zzZY(_d4{6DrafZp8F~a*S6FD~SI>0s<1DPH*`KAzA&m!~2%WSPm2APPN-tM6d?$xx zpE*y2S|7WGW0k7dk8eYi6k>?XXG|dPO-{u#8#q8h%_vsAUZ6T+Bw*{lQzTU`GE=tI$$uieK zU{g9BuSZQ*oVoJ8OqIex9U8;#<(le^66wWR7gnSwZ7~tr?Vz%~2V(A>nJ;eqdB zGKVc^*nQRq$HxNXnkKz|EkzbBq_(%c+(&Tpb`~7O=h`d9Z8dM8s7e-3>n{iV4(b&~LzafAc_8byr*sF5Y*>2%Q}UN(h? zE-*13!>^yxJ#-{DYbpz{{GJFyzqScYH*MSMZbxwO|C#~!};s}Yjk*uZJrLMW$j z__j>f^1Lywbi&G0{?4-ekJIY9cv~2u@*I=H-YXnsHM{UC z)mFf9T1Ss4ju%_FS{k!1W)<<8eniQ{Jo@18h8MH{%qVUD*70458VFq2Jrphb((ddn zt0KWm$3C<~ouB|R**#J&g*xq88!H{iNMYA%e||nI7@vhM9aqVoCK_pI;27{qn6s2L zFBq50Ax49?E&vJ@>!JNc^GZ-}^cxfR)tGN+u2*>^1P&qv^>WptoQ)=axnAtrshOcH z7TF`^*iOY(ZojNCt}}$z#?GJxp?KG=S+FpdL@9H!@J~#lgbf@_iQcR@Zoy7(u}vJL z2kisflmX71@#7Dr^o>dM7`XIJ*ESP);&OYV%QuL0(IL{%R_*Py>L-TNyCkKqeA;7# zn>($nG`9=@7KBa2nU)~F-LoD^w<3wpj_kuOWXoHl%bZ(CtE4Y4>;F<);vw{Kcp&pU2}>Kf#sT<%6N3^$DFu;=*M@}GEGbp?Y@ zx|un=eNkj(rdI|Z39xNi{9xC~G0wl}k2SiMw%~JhWBL|szeqGqe|tE7OCi#wuQ$oT z@`_L~fi1*!`uOMQZ}PTboS}P-7D~6zt}OjqAjg*u9rSqk(klCwqJ`D=?7MrYvn3c*|dvqxv|uW1qDp5>MTrV*)*r8?y+(e z4JNYc%v_R$oeR4 zBr#JJ7xMdyD0U_RzyD?9e<&$LKk$=kX*^2bE6WVn8suoHd^BRv$!A}W>I>Zc(M_cv z@Qz;>IL;Qg18>#U_8kC9K9Tv+r6k6f%Qw8p|NNX&6_hF&=a8_*R*tA&9Q^S1|IW{0 z2`&e}@N8;40(u^v`IEQK!edB;srd*~nel9tR2uvG@EuumFhb>IVSw7R-s9Z3hd|(UYn>*xN_QtwPh46e{J?uOZR;07(9}b(C-25oS@`6sLE8MSE@C4F z{qJNmYVz^@G1p|$h(u?JRWiLuxTE^k(K?l*2-Pzd1>Dei_}uA85=6xJ-D70cm32W5 zB16a?3$R88L@RQ_B%M|Y#KmlXA=ASl#1HU2Ig-RFV7+`L$Fy477K9-}O>9qXp~}*cc z$6vD!2mVG#-cPZ0k$9=}dIr0>R71Ia2h=3)b}H7Tyj)9qe&|i-E**lX+0+oR>E77i zwn!SPtBE)I{rc~zA~3+*wDOnV*&U@t>f}Kis#U3XMijS5x@|ptG~wx;EgvaWUQ-># zx|S>7ckDg=14nJr8Eaq})t@zx+rc+R?>E$s76vA0si-RmWWmDIhll?v?uo8o?ey?; zzYHs9yKe(bf$(YVOt65e}M3Of863z>`Kc5 zI_J}m4;LBU&JzDob=?1d0*^iO-=pq03EKQcts!=-uy;!GAN^||OCbNTv5%S!@INJD zDNwUPuu`2GWUx22tGE4X7*%&}Uow}(F7WEdg+%-sHB}O1l2l3pANY9> zrB|S3WyRm}-^3PValR4AF{W@e)j1Goz_)e#6W*C=90=>{q>Ra;n>HB)gBDBn=c{Sw zDpRlQP5H_D&=*UjtJ9Fw4xcELExuKTW|67RVwqib?D4v`dle)nXf!S+4ZK$G=kog* ze`P?(zsC^7(Teb4C;KpYN6*B~v$iTeFPa?|AxpD7 zJ_v2fOR6#(Nv!PR79YA3GKwM#V^n3gU*E(s>!u&qd>s9`!+-Xhf)hgekpo$}a_g~c z4y^VNan0^qX!2f6s#(RwwuFRE;q~w61uGe;E9{n`H%lum&AcIce)zPt7_#>DaBWH< zaGtqmqh~k~1NYGHa0mFV1SAB1Xx7muVYPhG8|`88AgK0Nh!4@QtBJBDQfi0(7Rz6COlZZBwkUo}n2( z;*zibAX|ZmjK#>LS5x=NwU*{=7=7%eP`N6r+E#I0P2_U<`Aq#2L*l`6LWkMlqt?{W zgzSuezgQ-EvH8ydD)PVUQ;z^SaYA!gKU6KYL7Ir|Z6?;aQqo-MMT^O+`-;gyWP_bq zW)7|8%*m?mbGI>PvJulhXt4$Akb`Ze33nj(qj6MDAF!sCJ$rA|pYkRBFcfYH=9esr z(x!fP`0Ou!7sK+|>R$+vqCS@hF9-Z~V$rA#Vk<#xK{qx>hPdkA@7pAuPzp@L4cT{I z>?JBB5Ycei3?X&&7!$3U>6-YW6WCTbTC}x1L&~KXQ9BJtek~L0QJ+Xt==B6w#YsCB zd%Wii0>_-povNf6sagH)jg{y7tFT&tk)oE-)1)r^wmVU2iXikT8uY?^T|iSu!OC3f zgEGvt#kVIG#*$S{Q~BJ?RSg!YQ$_`8>;6l#J_v7yRSafB&|VPl+~Q;ZEjKk-7~hY_ zn@GrykD!Tag>G$cImp;8QX&CS^9BVK>uL%7nRFKE22FQ{YPcS+_NG}2rLQ<6T`Ga zI)cd<)AJ-BkuVIaU^XvVva}6^bA(JV-5mx0_~F4DgYXkI`-hQyZ(B!pPUlTS<6x1N zOLLqeWQ>X^?hCG&Z0#8N#d#&yv_I&YSdmV(tnCyDkDVR)@%um5x;hLLgwqSe< z!XIUy_5wO|^5+EUL?^oU*E=|uwqjt^?fqvdghWh|R{u|2&W?2w>naorL}c*1opZ9B(id@mSfX|NlCFsbC>NtlE>mxU)|_#r0kuqT^mzoX zCx%N1!RZ!)wgend^EVp7ArFjDD%!yUp2KR1jmCV2nFGu~D~CcApOt=3UobStWs*u+ z*#)w&*$ye``*z7&PJ@RbwgP@+@AO$r0WsFCA~W?4Eu_hxBE%CMF*}cj6#>w2kG} zmhOFAC2(RIr@Q#}M{sN1zy?qQ0G@g2PZc(=nKkkD7cP8%?4jG-+f(qmLXPypvf7e8 z=QcS#&rRZS`Iybay{A`}{qYUEEJs@(6hvJd>_SPUOwW&NqO#RLZr~T+i-v?pTb1wZ ztceM<>z(6#rjjcu9=;!pgLFY!R8KGpg}1(iD!wfEj({t@4(NW-%$C z+xz74?t`D%1NXw#LpqXZfxuPkIK;OJg|Oo_{@Cz{&no}3&}44#;_vuw`()x7KA73b*dnfTB`=P;)W;)ZRVdM{;Ysb5IW~{wZ-rjYREuM$=XJj(F>d}!w_CAw;XmCb9BnlL& z%bYX^#OdF&VtRY7Yu5z3#|wSk(wqiPJYqj`V94mfb5`4sx+Im7Lx=34zK$Nytd6sd zle>RZqUZ33vq`rI{|-H@Z~hzC3}X%;YkjsWQm3b_bNiCdOY>1dqffF0;EDrsr{4=3 zKa!nFlLnJPlYAmoBj-AQd0yOfsXQWekY|!23CgD0Q^tQe7N$I{GNvbPYt(U)_wP6U zYdL;J;gMPfX>WB{BT6!@Y1X!3!;nBAz|IxERz+f?a#fOmj0%lMVXG#kc?)={v#NaJ z$y6rq2~W3VdS7^el1S4Jq(~GdlMY*C-BSivk?t1OpJe011iY}ae0tRp4eNRIZqcT2 z9fcK*N>!w)y(0p~(33WQbinZGV_dSB>KS|R4pf+T3_-&`{XnrR{rtw)TF0K)Hm9M1 zX>gsaP&o+Hr5*gl^9%f(229#P2GJ2}%xb=^k4>57$>BwuSF^(oNwZVglH4=SY%shAUdf zN+*qq;DA;IoPQOiMa8!2qqf>o`Jd^AVEcVIpoq!6=bp39+WYLiRveat@Y-gr{&-uX zGH&bE*OoNwnt+V^kb129!_VPjD=EL;{NlpC=HI-Wuu$YOag8=Xcun%33+F=ia9M}f z1-#)Unep``ERLw8YM8APdOj~nZwbEdaWgdDrjIKR# zja~cjXac+i!?|Jc@tL2v3h)@J6Md^Z;UqYp`{VnNc;`E;yKAaks4hwC31M)QGUa~6 z$M2v!KcOtaf#uGml6xAlSQIgNx2UH7UNXr_ch+6%S*dkT$f#?|4P#=*5zpY6w_hXOLMF1~{W)Z*S0Tr%AIwy3atx5`DcF0A* z48k3}!S7or0Aceo0q^D-bARdYiuIkZ&L{q-*sF zH6Ok%J5NTv9$&f7mu)Jw9*e?$DFx)bdtAxQ4Gf9SH-D{GR~sz(0|%YrR$ z$>FL{Y1Ao^krxur2b4?VIgk1G|2TH)UN3Qt(rTSjgXY+UP5#7v4~P}3CPzesdKRQ; z;(f513pNZF5V4`gbmMHU_1qvZx7q@Ssr3_5=f~wf_=G!HUxo8flP8FkNO}3(Io|=_ z)%~{95kLIUm{>SJ0rsO$kMruSic?*C>T=H+?IMYTUW@O4?db$$!XuzlUF`Jz_=dyL z^_77l9(=LsizHq|q2tni_py?A>}KQ@-%ISd>-v1zK;)mAzA+Db!imhAzJS*e77q71 z@!Z)}L~6zGWqNl}Bo@*<)r@@h`Gwva;l-@LyI81h_U+mnlCf}F-wTE9BgVY%C=#zN z?tNCf(2>ppMb`9`oe4mRg6ALQ<9Y&r zBk)SCPh1mh+h+Iu6K$zAjeo=Mb2!4pird?q;S|gx_!pnYz!90@*4No_f;cWN@4D{$ zk2fB26p6MDT81MSf7E7jX-Zw%pvsvuCiqj~<zvCRQi|3EJX(nMr%%$c9#nnVjl2bq_M9vFS=!}4i|4_} z#SZDmepH`Mzp@A@_AL&5vj}fZ5!*L`9aV3m?H7LRNd2}2B&(@oDI!J)DMV-^6^pvC zOI24+%5XWZuH%}YxsMS^%Z4Wf$x9dEvhrYE+K)Wxtw)Qa8qGcFFz$+)JDN27T;?|)%g`2QoXGOa^*adAQL1v_Td z-D?v4^Ing@7aw%n3aRQd{6o!ymw)sFnpeDq37a&Y!)GOSi>~$Xu;=dIDm8)kd1c`6 z$;owT7Za39>xqRzu=V32F7LmV+K^!^Lho|L7p1%&-g+DI)E3E^|qSM|jJKz|X@cjoP${D9a*1^$S}3 zVe3L0f-dCh>*rY)^}9Yn3ASTv^N+6FR)R^I%l;{Ucp}B75tlj`WZji`^pa(hV=T3i z$D(g=Vp7F6aKfw7k>?BQ%LQMq3F@2kEn+#?br?<`20KqL!v7GX6;z?R>)n?&c7hj!#4Et1pe@uce(k@DgZ>qBPi}N`(qI^W~y74t_=!O)^nTV;Jw)`$Q zFYA`K=D2jYg z`RM|h=I3|rrQt1P%_r;;NNM+8_!bYJs+PRfdgo8YhR%OOA@sBU`0I9Z+W$~8M96)i zb4YBrP*r62lSZpaT8u6#7(;5pKYMZ>^DdPNB`fQyrhB;$PH2a`pBI=z1~i(;)P(|` zzEI6L$dbkJUU1Hlxe<$f(KYtIuaQFs7HqBZGz|$q&n+yj@F5o~h$VbJ9;Fu0r33in z;J2g8^>!311u*!CBf^0WX74yjf#0D6ZHIaF z5Q!vX-&P?Qd&@l@JDi_RX9Wf)!zv65BG32~_wOYDr3NC@qn+^PgqAnbnM9XxXaM|A zKYsE8KN7a?(_m2TE}ce{oJH2)FD2Lz;!?0T5`2Dg07F2$zic#e1qKqy%2*K!Q^-Db zdFB#FOrL?EMV;?AX#3^mlNurrJ%xjuk^}?M+LE*NVPhMQR3XuJ_-zRnbJQmIm@caZ zdpZE=`7fGBjGr#LUI4iq2{kqE(QQhJtqzxks=eY?RE|!MI?ld^<_&g?u=ZPd+8sl& z5o`1TxG{_7Ua`cjbD92E$>dzZAR*{Pte!2l?I|!w4t^*Af$@&OYW!VL^X^t(DAS9`0!Y@> zy*TPHyZx;mJn6y9x7$yV1i7OoL;546^jz7cU}_UGrA8><+XIa~X-A_g-XHDu)6%%E z5X}x@;^Q2MD+vkjL^K9^B)r|SW6HUGgK56loAjh|e)S8&OlCxpqo=Y~QCh)wP z?vGx?zrYK|nlWPmX23kQ`G{nb;QoNVCtgi4StX54j#I^H)I{f#11Jd*D+a415Dp|bBo|-USYI%0a6;M$oT?PHj$a37qidWO+y}LW3Wy4E@0~{m zq7bRHMxzK64RD3zXsq59u(5k8`VJ<;;575m;<2h8@DjRHBvkuPn=;J6!f79o~huOynm7_7siX7DoO=!yCjMG;_cQ;6o zHS}g_+}7O{zDI-CJrr`ezZUw#HxEr2laz9Kns=;1_zr!0I7h7YF^*!l|EiJA>3h?P zuSn-7_9mBFeA$;W!KAf)v5@V|Z+Kd#1TBZ1Q;s+TnlWf_jd}~mc_)-ZM~g-EGjPF3 z($ztN&~x9wX)y|5I*Rh-ab7ep1fOBSR)(!>7BuF~6bxBo!dl1Yi}gtL7bkik4oz^7 z#32(CWA%k0);SLZh|ioODIvs;h)+Q0D6K)n61Kq=}4W8`xiY3 z^`X}6-9(%*XkM=Gt#)v77GNwkjvijLT@l;h6v?Yp;~!gw!l zjYMMGo8r}2RGK~?5-`_|j1P@O`-peEYDHM2JA11p1_jU%L%krcR%tR$_fl&jClCJq zMW|>=i_p{Nn}U9W?5QSyd@LLrI)F*)9*A*52=xGo*zg-$9^2fwVl{Ox?59)>8;+*( zLN6b>K#z{^yZqB-BTL(+0GuE|(P~8Ld%)`E9c%ro^m_@OF0m4H9wdrasX?OVNUjQ-^&|gVjgc}Ohq-eYxkQ-X_ z@cB#0I#+^vuk#rQF{L=9o9Bt%DRzceoM?9_vZdd8A}ZEth&LW$Y62Z}KIdxb*x$9S z!AmqvaULX|YcWlVObf|qnpa;DWvV|Ins19?0GqQecE+Dyz^Axk!5#K(8Oi4-*j6Vn@Ta$#h#ftSC*wc6rrJr$D24~aS=lsVoh}NNF z_~7it=Y^2FBzLh0_~HT^o`{ym^f_ix!4ptc7Y28cn!RcV$pHYWFLe6-GiZ87 zoax1Oh$D;B9Pv1G_z%OmPLK9?-nNThx`PCYW#AlBqiF~3y#hB%;C0qX>0@tu)IHV` z&~r33HMtj)FN-zwAPs%r;#K}e4hy5TaKg^zxiaX^itL>TMG;xqw@81Q(coE}~GG&W4_C4t+tegIe3 zFS=J8GPIBLj_=CBsd#HN%tZ*M6!g2&2VFOWl>SL6eWR5>6bQ8d1qqnAi^bmjF71tT zatQXscuhl$rJ28)89t7u79{cqxUZZJIRH-_{t@CDIxJKmq1;tmlYCl@0jMc&+Kjjv z57>zC@V@6x!4Z&kZ6-L=#f1Q+ZAXwsgo$ePa0ir5tVPQ>Xl9QUC+4|=wLXQ9LdTCo z7*-@9$1B*Rj%Qgk1rfhOB3cG#a$+C6$%*UVk;DSvsTK+5Zu@B($&eR4d#u=tW#IXr zc=A9zUzV)8ut|cbL$(IxKdhNHvqAxO5)*_T$;Rm)MQFmaenWaoR1ln-wvL$IJxQRg zs7DztLs>A;<~Bf(5^94-VfF|iT5Fwz$BZX4sD@s9g&V!`zyadZ#jX=MTcgXEI9s z497=nk|s!<5~37HiJGb}+`T#uh;}0u8!%pK>Ui8s zOp`Nl;#cxB66#S&A&&)GX7*6j1OqFj>;g)7 zxyrcKPLJl{ornJoHf<>&fk1G%W}JjvK>Jun9P_KcKQJz;zQN!6TZMp+u*BF5D>f=P z8rw?XWROykhbON{jJS&C#K&8wg~1?Me=FD}rY`Jf#k*sZTT%4Djjm8B-~*#E^z z_@mOxYf)DCiJ#O*lBb-dRuR-{DDoJ0p+2Y{A4&!B$Cc$ZW9^=z5&HnRQtFAKh#wV+ zkV&b$e2k{CK;#AIW^%F^4IxfO31V%bnTn!@mpBg1-{qMb>u!u*n7HYETTY86%tQjX zjt~urCkANoIN#}zk9i<^5jc`?p-GYfL~$I+#f6^xn%=4g2g@k?8NNa!*fF)X#s~y7 zt`!&e>Lp72%nOy=@bNu55{mP((K`gDibw%aOinyHe$S+uv-2tj28-B$zhMj`0@Bp? z_!)@NZH6=e@*iz!aedB&op2i$w7yduS5RH8L@b4z`r|kD3EdmIXw;qUZl1loH>C|; zgkHn#+BzJxC+_hPD-%t(W*isTwq`f!v^t;SMa8e*75R)-f@KH|O9tFyD-*o<^GNrV zN>${rA)0i`uOv0u+nhwV2hZg${BF-SSEL1CEB(V2uhAEeA3;^!$xRs`i<&bKy$`C+8SIL6 zuHbj;WQC^SkPwD7wLOm@^_hGPnX3$)uj%C>RAmLXaCK8G#Sj*C6r@pg@GRtCZIJvZP^Vlahy0xdJ9ElWpN=whlO`sp z>8WB7*n~ATu(gyNZZPo{I zxd5!SSbV|a-4OjaCm@hvv7PO6EV21-)K?D?Vs!;gQ%3&x9vP>R+4nmi?pi6IT6SV# zr3v1&p3@WIAS$B8_!@i|TMq{=7_X>3Si1ZtFCg2H;KW#Uvjivm|9!hw;X-OVbzJ3i zq7(!Y%-rr}Cd>S1Xl}uw9hsB5I&7y=&IpA-@%4&BD;xU-{ariGMZmCWi$&EQruC?U zSAS~bIQX2#_Mv?>0wI69<%>j zfvA#LfhRV(cC2j^jQg#1CKgpB8it3XBn}9%b!eed#T8_tqeq6e83PEmf9P8A5!@EZ zFr)#KVfLkDtfY^lU*q#lE&z0x-<|-6ZUvnNC^BLnDWc^%#oU_i8?5zAh2Y7yj6)B5 zVLi8mze;FHENW_g>dssEVO@_COV-?CE1j^$9uYNSi(BR4(p8GjR;T!&lFK_TDML+s zw{)&{3YWWe8ZZRKqlZ@Xa93$sX4AKqWMOghZ2cDWlcH%J(T1qMSAMQ|eQH|L`nAzT zi8;9$gNkHfAAQIin)18h$3wWzRvIuy$msHN1F^bf)vg1ZznO?A47QPrixvtq)OBU@ z+`|)HbUA&#KpG6W zispj<{KX3lZvsez&J77aMB}fv&`E%-Xcf*f3*cvz7j4S>M1VO^aL6H4PlU2Z4JebX zxiBfd3GS0de}`2IKDk!@_Foq|pQZmMzz&lrvJ+SqLAs+Pr)M}P5bwwro1lmz7MljYhgSH4p)(EwPlfm1CjZ?{Z$Y+CO~5$&SbVPT(n@ zaN?QY68s#A#16KIuG9qg7XtXa!j! z9vLrQ;}h6kc0b`(ANr(|GBX%d^Cxm{Y+FWA>6u2z-G=l4%_9yhTeYrb9LmOcN%oBI z+e6Hrm{NUVQbWdiL(qK5k}>{$#gx+}y1DZqKC5?g|HLqSSOqbE?tA*XbB6;hQo z`)T9MKl=?FIfC8`$BDXy4TkY5V#$fiaDk<6reKo>n=6Y&*rg2d^FH)UPg1azGlTVK zMU&u@I^z;1>UM|;K$b^vWcZ=19=Ifo6Lv*dcJFC0?z~aa3$TL{7uIV$^R|rHb<9&e zjvUqtV(rHr7bmK`;>ETDUrA`b@_w{IA7_^=!vm4=(?%Tr7WeK&Ov%Dio^9O{ENObU zzT#H+lJ>}W$m#jxj3kL4d}#rk&h^b;g<2H~wjSm_-sU@)T%}=CUscs9t=aXS~ z71OI!{4wCDJ^(ET+fhDR#Z7rTZKwCeZ=i!Nzx%zd_x)+HpXtpr=?xl?Kry}w?q?9@_6u$9K~XE*5&wWB#869S|AqK zr=a0qWZq3bD-su%3984u`d>tGUb`NHOC&S|#Mzg6?Wxo#$pfc7x;*%<1^s^Lyaj^a zXzlz{(Rt+G^4KKMLN_B2pq@tOZpkS76gs;9=kCCbCh2ius+V^dc*p**4G1pfy=}oeh#_KY|j}re+g0f5*z}ryZHg$@K2$I<0O*H zZgPp(dTGjuS(|(9sN#Bwyu6!0dBmRNpm90oD*#A?1}<5iHUZvoFA2%ttK)4GD)gOq zHh30nI~trd$qT~P0I_l$eW;gj)48Q6UxPEJ%PrpcpiP1w6$%{l`|Uqi_k3GCvhZHz z)8IQiBG!;Nsd;!Fi+4}>qu4BMS@64|dV2R=PxTyG&Scp~2& z#pa@h5JquhE=lI&dZWPLv2k5{Z-GJ4G-$C6KJ+gB&zm1Nu;l}`aIHZh2yCm8xBZaOcyIb56Y<2VLC03-MGE0@G z^E|Z*`JT6~8eeefj8f}6ULfXE=i0cj0#WP3p9G2TiP4ORNQfP~<<^miL+chULKT_s zziWM9g6~{EZz`H-ilVt=Yo|^`faDe5@9hLptoF-_1t6Q@+wiEwA6Cr>LES(w@`5ZD zsX#mL z2y0M07JI>RE?m~_*0*}{WR;PTCP3qhFIN6T#DE4s3=*G0U0K}y>%tBv;Do!^abFO_ zSS&Kehjqm47HfdW`Q9>Lc-`S_Wo{sv>uvbl!*9&!KTGrFPJ{7bt*oBHM zWOrPW!!Nl~eFE~YmX-%`n*uyj0>j=*fj1HEyfHT`Ye&^knJk$+inPcfgBan-sym5m*Htdhir4MPaTO*`3+?{gv>I>v{7AUxVY)hJqqygxkqJl+|K4>` z(rZ(}(X;(}5RI$b5xmfBw#VIL^NWMv1FtMk+wgq&jJd*{dcE6%tw>`P{y0?g8HZ9h z)++H|pY&CPFf#M~oGbfy*Tbhb3m=Z^8y&&komWvg0^VPdqBQpFHNoc9J*AUl z4KNU#KE-{{0^}KrE!bJIY{^sAm$rLQ(|4q@l7`k5b<#6)Tuxc+#8GZCC27^os!;Lk z+9IGv0Yd6fhg$qh7W^k2PN^U?yVx0tCMYtdXO{tz#liSz!d_>FrNu2Bk5A5e*-o`` z@GmsUjVEY7v5EglyN>1h5Waa)u1AjV_Nx$n9LIUq^<$38AwXSwn!UF%r z0;aa-UepoGd-_m`*B0^LJBROEURK_N>MB5dAOAxM$E_Re)D1eTCzg7z^L}87Ny{o~ zop}~%rL~y+r??MI78pi7`}JbMG0vPj6b>&Vr=CwNnbrW9-*(}J>gR5L zZqgyShUxEuuxTFwZBU5b?W-!HDZy*ZYJQrz-Vr^qs2OFX6aqy#0z7RJTqv?sRjw~>pu3}^)O(N=f-4H#4bq8!3 zw$b&I{)?M7@jP+6cWcGIA6nhl;%%1&hTA7qD;C##T+aVoC?n{oXnQj^w<61&mbE!E zWAKwb8AP2H8E@T??iR>Ec+2{xY3H|-%SpU&ZaG?c+RaCnQHLIBY7H0k&=D|F-@Z7p zS^lWfsS2r8J1r0=h+R-a@4nqR%aHoqYQ690xCcPnxR0uz`_>F4QjXe*Pe_b=?9kKE zqdbBFA!hHd3=q4`-jXw1GbaYV!O1A8s&N6(%BX7{l752J1&*e%P-e6QqwzG!c+e;v zs>Cwvm`ZFeFHhTvik){tW*efaG;zsW6NViCmg+5;!1>s6$n7Gl&@lXTF-T zzR6>U`&yiPMygTzkdP2laM-V1Tmrux{H=Xy2|}ObGJ#QO(@sK|MTM%+j-rG6l?*(H z>I*b6PR%Z_m_}GyM8X-!Vh_=X(inz!kCx%%2VuqO%ExYR+T?3--mfY6?@F|r;_EJ! zBxa?hPu$BH zIazS7a;#@TRvg4;8y7T{A3$PCOvRf!u-u~lK~#)dB5#@7&Th9ZJ9{QQI$yfh4_<)w z{ZCrQqn5*cry>L4{|;%Z_N$!Qbjk7Q7T?~)HBAVDJ`85=MJva?WpirAkBzMC=;Ez6 zGwxk6q@LtngdtFBi`p<@Lg}RUW1NatW5Ul8vAui4=S=d9bOh~932;bGyqMTJ9kCaO zglCM**4H1TKJsGO*B8C}D%%#Dg?c0@iYjov?m?|du$jfl{sEIVX&gb~l)ivz`Rr=C z$6X|r2*4*FkU7BnQtEW0v6xiaRS${)Y{2|IMAvk>`2SqxT{&#{41r9>Z)p5(Cbv5= zk=K4d4(k_Z4f$1ZZ5|R+hI2J>(hqadP6!*YBV*Scr5eW~rmzf48Sr ze3aUW8unM8%D=o?ANJKOb2*%pr}q4g%BZF|H-H%b;=ikJ_UP|nItB}QeoToSg@c7?!&(MQiA+{(l{b=WNj z0$0|$UXpbc7H;%}sXGyFfq~ujfB3EsqB<8sa*DZ5u-(ZSjbL;kCLRMq&>Nu-Io2O! zxcePDwm$CoAQ1hvF#~8>du(MnEc0S4G?~yTmQhwnvDIS~wV+ESOb_GUE+o6cah0{R zUd{@T+l#8(9y*-`h|VnZ0I&U1HBY8D{pm-}{%t(Q9#wd}Vy(Zue3z>8d9yG$NkhK8 zcN}@s3VW$nJ2NL3i-I8z-Lz4=xDoml)(=v@Y!*pl#XeV8|g7?O2uxX=}^n z4xLN;{v3s#diI<0Dm|z7JrH#)x8v=EkRU*0 z=gjAa8t;Saq9#@Y2go{;jFnD$Ope80*|WKQU)!-3@R6QLDPws}PG7|i zbb!}Vv&{&{QJ45)2;q05n=*=Am$N}t$jPTL+AS}5?v^hqpQfxST3wcXrOJPd+7eO; z)&_^1Iz0d!S~p*M@gUV+uef-y&g(>nS>XZfIVfX#bY|BDLtj>Va?X>hNa$S7&i5O3 z)c-B39-rTUH;aSthv${ZTPSFc6yo3SiBV~^+8ArMvN zaDPwyYCXpx-Itu!OV$pqXq-7?bCYaO004>NwXId5X)P^jSVti8F% zOhJQZFEJODl$cu^=5)-R(ty(rflyf6<0DKB+?;1|?>oRTm*!)-i&x|o=WVX}eNzvZtFc#k$99Bq@I|AXO|6}1YU z{_^8xw32|aPa<`Rh?=<1$r4`pOS-Z@%7d7vcnP0R?59U41z)=CtDI$+dLR}mGgw04 z=vQAHyxbH#eWe9$T0Sz~P7ozSr^FljSy>9lY+d^gXFy znT$NG><5Kt`Vby-u(V;q$y?|~2@vzkERIDN3W zz4%rDRmQH}Jyy<~v@G-}zdAS1#aevAg(*~gl;M!-#8|)mpDVR`!ori*o~;ko(x^CL z&0e@}NZf8XF?<=TlYZ55Ysj(HaE2&Wu6+_nvQZ})8@3^d;zD6&57 zOO;C5^qyZ3N#ERoG~rB(ZXn-bIGj8Q!F-YKWVXj=^l(`CyOedt;37ku9%q@zMhvH$ zsdNmJj3vjjvdon^gi?WAp1H`$Ge!4`)aWd(SY#AAnLzMpKkj_n>E&A-Z*wZ7CFzF3ZaW=cI1pg5WI#*K~YuFw+ol282&DhmskUW@M}_0GiCxvtG_w{ckC8 zJP+aLU{)~YKW?n29ii=TvbuIT`=R@g(WETSP{>Wf=u&4T#L%90|7o8C%XFtkLa=sR zMG(YDcWYQTSvfn~K=dnh)rYvh5uJhhf61Zi`Kkb1xXOW2z3%(6auxr{MPem^LY)0+z6v~Yz#+Y|*e z%eKFpQMg`clY~d>UdKmPx{A3|flwS|9+=?&ap7W*l-K1pyB=h}4)45vS~3@s*=qUi zji53ey{c%q8g-#1mjjO8y|-}U^qpwU6&Nm@u3K?J0RKF3ZNr@Z-LxSjsjmwvb4OlZ zd@UUQAm8&mZjQ+#B=?Spd86y8>W6m`)W z=qT#pVU!WCG22`cBHeKGgX9#(;S~ZSi4a>70I#^xz|V%ih0~k!V^)zT5;b*ZjCn9Q zXNJs7$43Z~nVyVHK7Fox`TnQ`Hy0WE)#l}0o00URuWl)?lr;LAEE7}y3p!fQD6l&T zNrsVW7O;40%jHvXrLJ9qm>$;#F`*oe(H+)lt) zJ!sY0>*=kFa~HFv!%HWY=L9-6b<|GQWV*lW?XlGt4b91)vrDdBb&y^@MA@$P+e@Vl ztApTvcILN?Ksf4(w--}ecD8{?dCsjI`SHxM^emK^+}`Fu(gCe+&tA*)otS_wdjYnm zCDdGK<4!0HSPXuXVo5sQo(zY5RDcmb8M(eR1>qA0j;!2VYPFgwpt;VW);T87m3o4J zh^~nv`6oFtb#eghU2&dm`Ra7Yt{1%#eCBOYo!9WnfUi8aka}w|eDVXWYdxh?q^47j z_YE}hOt$Zn>2SP=rmGHMO;5S)s7BYO*s`YV)6V1Wc14L@^5&vglgY!5VewCQJZFQR zR~|M^R8Lt2snoyHD2Br0!unZv)8PzU`liq>CxllK`?#Y8XV*~xHUkEmoX03^Ae*)c zmxdyOWA?8F<)%T5`B8*SM#v#LZX9%1AT2YKlp*E{awCX|;nXV@MP7WrJ=wS5q( zbK51*#QMo%d7`KTgvFvDPoMB2adHO$zV-0FKhaD)M87=3t*TcHjGFYt0n zFhJtxis2y?kBy}nZ;u0)3ZyNFY?-eO<^61k|Ab6;BX`IBo$rl&FONl~bxg*Y$Wia= zOzwsfI8{v$$uc>c>7NV)j#l{v9W2#Z>ex*Jq1AZegyFPb^Qiad^&|o7bl0DFM_>B$ z1~)21pK^3~!m4lgoSJOr+@|-3Grt*TTN>&8Xs^PH{#g zG5XUiYWxO#1yUJ3+a?ED(f}zscQzd853*}bzITQL?aUduY<6jR7gy{3OEPYe< zN(j<6@^L3}vnRBHUsQBW*{vwZx9)>RNN0?%xMd3=dRa;xgij!LGPW>{5DVT+4>5I! zPI$5h+tNisA$kPxhY)`Ut?Sj>n>LYd-nOVBkeNw?&K!>Dq_=kt2diJn_6R{77r<-} z=4c$)g;cb}8;ssW8x`>1tQ{GzwRZOAg;W2T&?>|pW47dyeRv?WS?>V0K>GE)J00!W zTm@vsaG=LQ>KOe9XzUGk;O9(yfEszM^Kmp-_RrY1e%`Hgt-A|9qcJd{;%ym9UZVx4 zV_aFw{o?e3eljV`KD-}KjI@E!`1zqj8Rg~w+fr#jB?(BP9CC0}Uk&IfU-ZTFYZ-1| zRl8p=fty{3!&(RHoSE~4qYJ4!3;{DI|JObG&(>}%#7f@v{jVnOobT8T}--|cl|qokg`?_J$iM;0_x#!wX|-Q z$(k=YuH!<|hDVQn9G$sm8K9vo3((Ro{=ei8ma*6c&^M6767Ge_7`83yPB@uxgg3z( zOZ0nJEIumPQ^@ikwbzEyy%W!LboW`k-eGW%0>^7yAe;>> z-wsAF?AGTqpwMQ@fMVAd@Ydjn%aGghlc$Qaw}e8^-A*`gzHKhaO+cr}CNB5p?PKuW z6x(x9Bp$Xh|DCSgn89&&(Jym${z-~v*meE<1`h!;?VmrGFG{hld2xp!mUd;C}S7z+EDTM`m&!KL2IAm zoFBW@m45>}ZW4lo!ZB7BqJ&OMTvz6)OrXPrik$G<@Ct@~)RqTf532NlGgpUYpvlyw z>in!M7*OJgAPzBsG*V22w7(G%gOtl8KjeW@#^iJ`H7hNvH(GV6*fs{vF}Us(oyrPK z$RIC{1`0ki#Za&EU?HHKKxUgT#t_2%8F|QThf7^`#m8Sfjwxo8hym`m+h}o&XDdy@ z$cNqH;36i#A~PYx#;rAIBQ3NA?g*o8$K4!tkPA?z@dt+HTs3KVv9DRK_E5@SF-R4H zbYG@$t;J%4K_0CcKDXDc1qBtbxBhWF_vH&)odtE@Y5n`SO+TIGYp)hweCzl0sLsHD z)?N_UrqvhtP{Ocu+NKkMDByNnVx0b{;w{CMhO7RK4< zY3c{TKz%wS^%dK7CR6nM*vS0Yrfh^>&?{Pd0tDaG_KAXV}_^ z<7)eU*#aU9w)N@(hbwpCRzl!jZ^uTeXdc5=L^sou?13AIzzWGBKPqwpwO7T!)+VCF zd6Pnw^b|a`!uZ+fVJXWVj9{Oi2iyEI$#`??m0Heww5kZQuGj zbbCgLTi3uPab`*bb$aqhYx-v5{-dmQ{~{Q9$)YCphZ84v?)2!?$jCP?Tr4ZSab>wn z?(}o!+EpJh-<4Y0p49FtPfPlvs$u2kixm~{8HCNu?WwgkgKA`8S}C_NLB;!dZi$2h zTh-5=I-miwhbdv)1bs}#Zq&|(J~s0j`1eGq2OPR{8~2v>yIJp| z+0nH5X4I0^CKIQB<~OJu?|OT1k6{R$48Bbnm&}G4v-zEX4Z+*>S7)~~uHCZOLf@^% zM-MgyaMP1l!cldEr09WYQ4a=Lm1znL{^d-50=Zc#0c!CIucgX7tGuw*%2OX853*MpeWU4EmQ%nENhE0eS~Jr7_&E!1u`$BGk&me6-PKSab?EKUpfj&$`B>&c0Y)$OyM50)-*|g#BG&?41b<0h-X8yk9@(Z8l5ukR&ua=yvpl-5e(=Q+qw=~eE22^&BO#~#F zb>l_Bd#Vm%G02D{%?>O+QkK89fJI7bxaYrW2x@i<4@WxLXm6RIIpTk+V}W5RYZK1K zDoKgB4ZjWoofB|EGR7bhzo&o*IRJqu8Fd-N#>M%WEe}Kc19ar4(p&}+uXdXWBob9) zo~f&Nfm`Ut_N1B@BBYXu6=%h6%HFhnLqO%l1xnf+ArVpir#LT1DvTnD^Ws~o$d|D0 z2I_XeLW#76jJPFi?R>9!c*l2G;vT=U@_RwB=pPCPN^z{Xm$x4qXXg+=`sDKYJlv}i z;9!3hx*?k^*K2<%I{!mE`^eoPmxE!7&T8DW!VAvD+PYY1t6qH5{2w~^aBYfhov-xd z@V^Q8&K&qjEQ$cpWr8VA;1%&rUZM+Kw&B9*Xt#IV9*?@UuPN_(ExhS*DT|7)rmEsp z#Tyf`)KfBQ;6swPb*gU;))~|Nf_9rNAw9BsODqT3TZVK;G5>KX`5b!iB9Rzg1J*#0 z)PPT8J{&R@K9aHG|0&8QAh8tzmaDt{Gwrn#<1UT*_ixOE_v72&39xDd zl@5rDtM_|X6u7Flq%obnt8N&w=c#^C;{O)d)U}Y}fl5^T$|{3O^sfo1OoWii&?CJPC7HJH!*gWxs2CA#KBE5|F>bOLH)3W^ zQNe+iN>p{}Z#n`Zkf#b#Pk=+TZqO}=OtVj&#eE`fzYQXa22^d}@@;=1pbb3u#!nbR zW1O7F^?ekEZc^o?QF|Bsx_00%bLP3z-k9<+|`1y@?cm-*AS1S$p~Og5pn!n&yn3eVhN}VBEIaR%VSk3{RJ$CzjP`d@^0i`pPhQ zCUF4bF2R_&$cY^`VJ?sxAV+E)AL7_*NL+D5Xzzk4*P)%y(h@9Gr>4S?j8s$SqP+Rb zr9In^@5FN6_@Ksu;Gz86NmIB>p~Dhn zyq89e_iWk%KExFsm1a82sOvNdU>QaVhT5?dT-FJQ%X}f}IXA)IO_XcH-&_%+$CYh5 zo}XUy`cIZ*(iK9!CA85kVWCs=PocOX%f0}OcG`e(ytoJH zj#tXT%>^;e6kFA2Jy?u6BrC z)}0y^nm+e@)I*5SfCVCxW#r0t&E+{20eTphjePU|sN4)8C@jC3v3@^(8)T>XqmFuu z!HbJIPyj5&M%_5t^D zNFq!v-UD%@lIZIP3B<|bCIQ&+Q7~y_IQPb*LOAqKwjcsYD{wdq8ng< zh{{glxQfVi>4<3kXZQR(VSw|W8>Qh*B=CkDc>1)SI}9`4uMV4+o$>YXlRpTjYm)BV z8ZuZQEIxbU3l!5=3{%UDkjju!oI+W`s@5rE`uxVw)Jx%wdys90I=oT*bUi&S6^7Nl z-E-dtsSElq;lGJa{aOM?`J{B#wqfUz|LdO97cKt=o!3BCIzm1y%x^aQ^-X!EpjDJY@;fKiVAKj&hE&lU#*ZP*0e9Tm9}^Gn7d`^ zTeii8{uRz~9L%QCGyBa*7zLHsm~%2|trtRbdVWFCT<6s6NJ1MS`5L@JW3Y^O>ZPkN zm=9ES)$UK0HrdBW{K~gOqGZ3?_P72m6$Brh@x}K8{uzHUT~TOA+eka)VY`KjN?c9O zr>WY@{$u!~6Qx^FmXNb0h$vx2`X0|qU6h)#uQK{pmXp&A3qE_zwWRb6+`G9A)Me&o zrMg?n^l*{nRODn$iV6CKLyrxWT0wBfgT#HMcA!+aB*< zowU!yMuqC^nd#g`B#_v)W_fMoN2$dYZzA~M$y2YNDSpe~Le(EYv zGeM}J^~k*4)m62%J(jh3|KS|-Z_yXAd^05G#qN8fpoAw=)M@Blna^CGA7~gMGF?Tp2?ZZ?#n0|kP*BZ&GIve zdzRrUrC_~2qz#Oo*zZF6=uW4hA8E_F1smFlZcE^*gO71F$7lXsM5DN=~}J>>GzAqrvQ#ECZ=9iJ{I!aJ<=D-$uqhKnh?_6#tb90tFtRURm{ znB*I_4F*Da*p=+0BYvcNBJACzJ>j@1)Qs-(MMtvS8JQL%5?_4GGYy)BBZy=PCVM`f zuCAn-UoQ_KU%^vYZn6Y(w#=>Gf|4es?PWvJLYiU+NMvH;wTtKuUdq8HOY}t-B_u=h zd!AyFyYeiR<_UNK_W|9HAeqA8Lfd{xgZU6kO9Pq15dB%2>cYF61$m&Fbo%bj#9@vr* z-Nz@GwJU@O;athtA}$WoxBlHZyi;|5)M0=svCtJ{;wvzd%5QkvGQ3!1eC2}{wRV|vek0-8 zP#mcw2ul24Xs316(~e-oe33c15IpHyjk}wP@|UR)gAP3}neFgPs%F)vYB_(Dr+X}o zJsUMvz;7Tj)@U+?Z3+$%Px--0d4E0AbqRiC9BRZQ^~?pt2ess;95@SWXE_)}9_fSbcG_4+GB3 zJmP{L`I(lV(c$9#h++^+Xr*wlDLfD=m_4)416TRf>~v0D8d>tqda-)kq+&WJ_(VW@>RHl$3m<^d#CBl}CI&_$ff*fAB4|@A znO!EZECXGl1z2ayh_cKOiU@PT4)72eQ5lluRP<*3uFPF7|W_-n(Jx&n=gPYFu%c z%J;@l>)IG6o1y^*5=$XDX+#%p;+)tXU3q5$-$J|7bGR@#h}0CO850Xkq=dzlLO1#< zn!}vM#$8B1c4_-NyAVgfR_=^^I$s6~$53N`^k#*zkkqbZ81okN=KZ4)xF~S%+`o|< zLcx;#&;gqXpRie6sXsBx@_eRwROgAgTRPve)ob9I4Yn1NEgRFqSB?KvXcW9$O4dis zjjfNLobWD06cjkz+z}F@m+#7{C{KvD-1{U9w`0o`i}LU(IH>QpHfKB6usqlBx?X2?yYK&MA80o;B--YxIOriCsH?G`||(7fRP^C%G&(;6CLX{9FFFJ;EN(+}O> z`c$V&+;V*;N`)xWC$rWwymL2v!u-U2Teljb=hBjEZ}Q*wS~Xz;YR8!E>$JW`iMD>ORf!B2RW0zXxO}aS3J;VTC>}c zi+5Q5EPRNr_;hxebeK|`&n^J3+g2mm5zsb*gA=ah+s-?!Z%Ji%iokDaM%#5Nffn2q zUtX@UwXpVJK-ZxO*{b=#4zELfY5RZO(N`uxdZD#DR3myPFpP)aR@zYWOlltLWOTCI z*Kyb))O=>%Ia|r3Xz_!lXlG8(HP6R&W}hMD!3~iLnP`JKDd&-+SCePiE;VQ zKu4nmE2vn`31mXPWC60pegdw=;-KcO$5A$?ynGjFDaN@dV^;zl0ZA}Uu*h@}WFad= zHKqhWgY}kucb;zO%lZRKVPvGfg%!+o0sPl!{HL?nV3=k}rrTw@QL(s{c}1rL-p!?t zUv_%5FWrUP*&zJFk&qsJf!GS)w?c>tDdLs|+d2vLh@~x@_+%;V!qdo-Qz_wKgl=|6 z_5aY%grDoB+Kz-@%@9C6S1s4+TE_X(y%B?uNpBigVJ^?ga^xP&+#7$*BLfZ8vYY2C+>kcpkzF(u#1h$A#Brx zB1(JZ{!mP#1UL%Wi(gwNvqubjc4#VhpnD5sA|tRA0DSu|kLiQkq8j&_O)`cI?_)hG z%R+J;pjc&yUbz8Jsxyl>!OgY4-_3g8K(xXR<$MOGe%OV)ru36Rfg~RwEqDUxX(=mM zuoGSsdeDTZ>lFN4Uo}LW-v4j^x5)m9?$CVGgKwWk<+6huimB)gyanm-*PVZEQ+&S0 zbCH|9goNT^o{&{s+p|Fwx#+CtXGLfZTO)d_(WJ#G*h(&XQ66?}2Z_V_>x$PkW^DeR zv-p@0tOV_IXK$RyS-=L(esI0oud==78H9o9SF4L2q2}Tj9nt!8)~^tcw0f;f>Qhmw z*jABsb@6tgtr!?y!Q%O(jAzV$2I5Nms7v$9WYW;_Gz>f$yock8{tq*u5N-kJC8)mm z*V3kRB@yhg&spM6u8b`nHCb4eumT3J3EeAP+ODRK&P&gZ52)mjw@i)a^&rSm5XYMX zzP6jfd}(+gX`LYPEY~t0AFFZ3DDN}!ftz; zkl)xa->r662EJO&2rtDx5TW-)X`}+g!>fOtTo|SFw7C%>O~(g0=3ra}jxexx*2|;M zJwQVSSjcDIDE(rzU>dC%ASDzyBcylb%dTifNQlu3C&o;{t{Afs&dTxYyP_8`qIiIP zWp&w#z@^@-g|JO7`=y{K+zrrckB({m;JKm=g@I^e*_7E8idL9&CUm2JxXy+`xDiVN z=|2@&O2_m_M&+(JjLpL3uJlRA)P9ItaJ2`of9p|ErVC!dRpjPYl$WPvWu|3D!i9^5 z|IE+LQ88}?{*lsD|96K+d1_hCnCQ|W-B8ZT{;q@kX><;Z7ks?A2a7kYtAr5%-(jX` z`j~L`_Xj@dK{``LZSKJyV^D3U&BLxaLYI=T3e0M!vFx3MsQrudn7yMNK}UK%8+deBqX{_7v7I z`}Ffs^&0|Y-TM#V!}&x%C~Wb1ih46M;QjG%$6PC~NV_`i)-$_P31jRZjyRVxef>97 zyh*6NdU`M^y7pr~r?tyMz6=1JZNYek;k#CGWg}ema3KVngoHO168?%F99}LuyJe0$ zooq3!Z1$^2C9|uXLF-bz>c!DNJ%%cA`#nnOqJyi7v`qfA>*a9|w07Vtj*fA%I@13o zv}KDedK+0F$0@Ed+scJN`ZdJZ0z+py9t`xh&pmo5Nfw-M;1!Vyp$=Xh_=l_!I$M+L*7}fYEQcq|E9Hp@os?~& z&JQ*CtZvl{XOUe|A}G8!BH8Zv53iSzlYZDj5uhG5UVi)Awj#S4p#pG&tg0fxj%L4xfxEa=ss(7Y)I# z5&{N%dJt?jm3$CpKWUQ-3}3y*)rPL-Gc)WRx3NJ?Sj~Gvs+^}Zg-!kF%`Y%7wEor$ zU$H6h`YuE@2f_8 zTr@2<*>&_=0bag^Kc-uOLEfX$LcK67mshsF_#D7gamw0-YDrO zpIUY|^4k(f)kz?R7B(NPv5(<;O{I;lcvszAo@FjK!v$NB+I?R|_a~AZ4Xc)(~MGXa{8hV%=FXGn^CN2m7Q0+cf+CB`fuFe|_RU?@4 zit6OrfAA~xIypr$`EP!#n=Q-S4LsVS4g&(xshjD!+a?W3pDXROr`bn9;lTbg3)F@9 zjp?I1cl_gw9)FUxzO}Y1Y0R+NA3E2d$P$vDEEp63nO?8Y)sDtfC}{Sh(And5m1`Sxk@3Pik%2L={0|Db3(X0+LTJfB|B>0EK*oiJN8 zm}KZ5M3s(*bI4roK5q!41n6-;lR6Io(iy+Q`928Uhco#Eim1;mSDGuQW zP-Y#!L*A|Jq;T%ljh| zQk~%rCTx!WEwg*LAk3c8!}cLUqcH!DBI!gfnwJky6Q|*v zcd^tmouZ(GW+L9QASp1l(omBk_dm}$=iP>V|Dhnrw)Z{fJoo4M{Y=II^J9=uGVfOiA>_ z$j(Z`$Iycgx8v}ipyOIhAry0sz~nMwk=zZ^Cl8l13|}e2-Yz313dbD=sYtkp;xuE3 z5qZhwW`R*|FXuy)X3w$MC*S1mVn_ZlSANXX&`;3GqakAv;*vMH+@yFG|LVidHfvSK zTfl{qLK4WiNyXc%zq~mAht%h*my^l?($F27mm8Yu1X`>`QYMjf{VW2ti5B7{)2SZ` z=Z6gR>LAQRj!mY3@<`ajQbT#>ZQHz{j;R~@co%=p$JraFv0gqIjZa`ydg^q;pQR&NT(6RJekj1AK3}O2t^7BJ2r{}CR8V4c$ zX9~ofAw)5hQ)ABXG8ibH_AG~B?RE-F(Wjk8xIy#cOMYvO9=HFSm~=UHN#2(0$9{Z? zgImCAP{2EXNCKcaCD*90-WlLgf3+ZyTu{QYS57VZ3s-V0JZB#}gPv;8Gxw*>-8ulP z3e)o8C11x1FzRX9@jj$yA4%2ew}ur&?ct$c1cDXmPxd#zj^`f}`rOtwCUz?g-?=I< z{F61vEh3rF^`FPw*b}t4zfqn*RhsqkcFzqp2e1V%YmPxu<1>4>*ikL;>9e`|T)WAMC=xbp9*h~4X1B4HS&~!nW*a*zH6lg~|&8lq6;)L$r z-QBW!8#dK+%;+=5U%tn(m#4Uf*NM28fWi3_qbvb!Qy26$9H?P#@C}%lSpiIgGAZge z+fnKB1AECex?_OoIJH#DvFN>@c`^}L6ECpCIy;cfDdS~cK`4W1)(?8Mee=2tCJUxb z#iYNOP$L7Qs`g25W|D&~kna>GbXsJcstOWEiuB!_0sRRR2Kpv1^0W2{!wT*$<5@ZE zpWutPgd^k!(3h-HD(g+eGXAU1e?Du)U+Q@y#wk1YgjEsmF2&@T~vN8FM=0a8})ktJ2i8?GP zTrDGHj~t5ug0;Xc#ni&-H02QIn2xktHm-3!D|nD4GCkqF_QCj=71GHzt`(v3<0Y*xT$x<6vRYRvP