From 37622f3fd33eeefd469113846e487d3d2ffa95d2 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Mon, 22 Jan 2024 19:33:40 +0000 Subject: [PATCH] a few changes to warp3d map --- .../World/Warp3DMap/Warp3DImageModule.cs | 256 ++++++++---------- OpenSim/Region/Framework/Scenes/Scene.cs | 3 + bin/Warp3D.dll | Bin 73216 -> 75264 bytes 3 files changed, 114 insertions(+), 145 deletions(-) diff --git a/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs b/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs index 50ff88b447..6e0a5d4321 100644 --- a/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs +++ b/OpenSim/Region/CoreModules/World/Warp3DMap/Warp3DImageModule.cs @@ -70,8 +70,8 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap internal IJ2KDecoder m_imgDecoder; // caches per rendering - private Dictionary m_warpTextures = new Dictionary(); - private Dictionary m_colors = new Dictionary(); + private Dictionary m_warpTextures; + private Dictionary m_colors; private bool m_drawPrimVolume = true; // true if should render the prims on the tile private bool m_textureTerrain = true; // true if to create terrain splatting texture @@ -236,8 +236,8 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap private Bitmap GenImage() { - m_colors.Clear(); - m_warpTextures.Clear(); + m_colors= new Dictionary(); + m_warpTextures= new Dictionary(); WarpRenderer renderer = new WarpRenderer(); @@ -246,8 +246,8 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap #region Camera - warp_Vector pos = ConvertVector(cameraPos); - warp_Vector lookat = warp_Vector.add(pos, ConvertVector(cameraDir)); + warp_Vector pos = ConvertVector(ref cameraPos); + warp_Vector lookat = ConvertVector(cameraPos + cameraDir); if (orto) renderer.Scene.defaultCamera.setOrthographic(true, viewWidth, viewHeight); @@ -273,8 +273,8 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap renderer.Reset(); renderer = null; - m_colors.Clear(); - m_warpTextures.Clear(); + m_colors = null; + m_warpTextures = null; GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce; GC.Collect(); @@ -331,19 +331,15 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap // 'diff' is the difference in scale between the real region size and the size of terrain we're buiding - int bitWidth; - int bitHeight; - - bitWidth = Util.intLog2((uint)terrain.Width); - bitHeight = Util.intLog2((uint)terrain.Height); + int bitWidth = Util.intLog2((uint)terrain.Width); + int bitHeight = Util.intLog2((uint)terrain.Height); + if(bitHeight > bitWidth) + bitWidth = bitHeight; if (bitWidth > 8) // more than 256 is very heavy :( bitWidth = 8; - if (bitHeight > 8) - bitHeight = 8; - int twidth = (int)Math.Pow(2, bitWidth); - int theight = (int)Math.Pow(2, bitHeight); + int twidth = 1 << bitWidth; float diff = regionsx / twidth; @@ -358,29 +354,20 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap // Create all the vertices for the terrain warp_Object obj = new warp_Object(); - warp_Vector pos; float x, y; float tv; for (y = 0; y < regionsy; y += diff) { tv = y * invsy; for (x = 0; x < regionsx; x += diff) - { - pos = ConvertVector(x, y, (float)terrain[(int)x, (int)y]); - obj.addVertex(new warp_Vertex(pos, x * invsx, tv)); - } - pos = ConvertVector(x, y, (float)terrain[(int)(x - diff), (int)y]); - obj.addVertex(new warp_Vertex(pos, 1.0f, tv)); + obj.addVertex(x, terrain[(int)x, (int)y], y, x * invsx, tv); + obj.addVertex(x, terrain[(int)(x - diff), (int)y], y, 1.0f, tv); } int lastY = (int)(y - diff); for (x = 0; x < regionsx; x += diff) - { - pos = ConvertVector(x, y, (float)terrain[(int)x, lastY]); - obj.addVertex(new warp_Vertex(pos, x * invsx, 1.0f)); - } - pos = ConvertVector(x, y, (float)terrain[(int)(x - diff), lastY]); - obj.addVertex(new warp_Vertex(pos, 1.0f, 1.0f)); + obj.addVertex(x, terrain[(int)x, lastY], y, x * invsx, 1.0f); + obj.addVertex(x, terrain[(int)(x - diff), lastY],y, 1.0f, 1.0f); // create triangles. int limx = npointsx - 1; @@ -392,40 +379,37 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap int v = j * npointsx + i; // Make two triangles for each of the squares in the grid of vertices - obj.addTriangle( - v, - v + 1, - v + npointsx); - - obj.addTriangle( - v + npointsx + 1, - v + npointsx, - v + 1); + obj.addTriangle(v, v + 1, v + npointsx); + obj.addTriangle( v + npointsx + 1, v + npointsx, v + 1); } } renderer.Scene.addObject("Terrain", obj); - UUID[] textureIDs = new UUID[4]; - float[] startHeights = new float[4]; - float[] heightRanges = new float[4]; - OpenSim.Framework.RegionSettings regionInfo = m_scene.RegionInfo.RegionSettings; + UUID[] textureIDs = new UUID[4] + { + regionInfo.TerrainTexture1, + regionInfo.TerrainTexture2, + regionInfo.TerrainTexture3, + regionInfo.TerrainTexture4, + }; - textureIDs[0] = regionInfo.TerrainTexture1; - textureIDs[1] = regionInfo.TerrainTexture2; - textureIDs[2] = regionInfo.TerrainTexture3; - textureIDs[3] = regionInfo.TerrainTexture4; + float[] startHeights = new float[4] + { + (float)regionInfo.Elevation1SW, + (float)regionInfo.Elevation1NW, + (float)regionInfo.Elevation1SE, + (float)regionInfo.Elevation1NE + }; - startHeights[0] = (float)regionInfo.Elevation1SW; - startHeights[1] = (float)regionInfo.Elevation1NW; - startHeights[2] = (float)regionInfo.Elevation1SE; - startHeights[3] = (float)regionInfo.Elevation1NE; - - heightRanges[0] = (float)regionInfo.Elevation2SW; - heightRanges[1] = (float)regionInfo.Elevation2NW; - heightRanges[2] = (float)regionInfo.Elevation2SE; - heightRanges[3] = (float)regionInfo.Elevation2NE; + float[] heightRanges = new float[4] + { + (float)regionInfo.Elevation2SW, + (float)regionInfo.Elevation2NW, + (float)regionInfo.Elevation2SE, + (float)regionInfo.Elevation2NE + }; warp_Texture texture; using (Bitmap image = TerrainSplat.Splat(terrain, textureIDs, startHeights, heightRanges, @@ -435,8 +419,8 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap texture = new warp_Texture(image); warp_Material material = new warp_Material(texture); + obj.setMaterial(material); renderer.Scene.addMaterial("TerrainMat", material); - renderer.SetObjectMaterial("Terrain", "TerrainMat"); } private void CreateAllPrims(WarpRenderer renderer) @@ -453,7 +437,7 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap ); } - private void UVPlanarMap(Vertex v, Vector3 scale, out float tu, out float tv) + private void UVPlanarMap(ref Vertex v, ref Vector3 scale, out float tu, out float tv) { Vector3 scaledPos = v.Position * scale; float d = v.Normal.X; @@ -490,16 +474,15 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap if (ppos.Z < m_renderMinHeight || ppos.Z > m_renderMaxHeight) return; - warp_Vector primPos = ConvertVector(ppos); - warp_Quaternion primRot = ConvertQuaternion(prim.GetWorldRotation()); - warp_Matrix m = warp_Matrix.quaternionMatrix(primRot); + warp_Vector primPos = ConvertVector(ref ppos); + warp_Matrix m = warp_Matrix.quaternionMatrix(ConvertQuaternion(prim.GetWorldRotation())); - float screenFactor = renderer.Scene.EstimateBoxProjectedArea(primPos, ConvertVector(prim.Scale), m); + Vector3 primScale = prim.Scale; + float screenFactor = renderer.Scene.EstimateBoxProjectedArea(primPos, ConvertVector(primScale), m); if (screenFactor < 0) return; - const float log2inv = -1.442695f; - int p2 = (int)((float)Math.Log(screenFactor) * log2inv * 0.25 - 1); + int p2 = (int)(MathF.Log2(screenFactor) * 0.25 - 1); if (p2 < 0) p2 = 0; @@ -513,25 +496,24 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap if (m_renderMeshes) { - if (omvPrim.Sculpt != null && !omvPrim.Sculpt.SculptTexture.IsZero()) + if (omvPrim.Sculpt is not null && !omvPrim.Sculpt.SculptTexture.IsZero()) { // Try fetchinng the asset AssetBase sculptAsset = m_scene.AssetService.Get(omvPrim.Sculpt.SculptTexture.ToString()); - if (sculptAsset != null) + if (sculptAsset is not null) { // Is it a mesh? if (omvPrim.Sculpt.Type == SculptType.Mesh) { AssetMesh meshAsset = new AssetMesh(omvPrim.Sculpt.SculptTexture, sculptAsset.Data); FacetedMesh.TryDecodeFromAsset(omvPrim, meshAsset, lod, out renderMesh); - meshAsset = null; } else // It's sculptie { - if (m_imgDecoder != null) + if (m_imgDecoder is not null) { Image sculpt = m_imgDecoder.DecodeToImage(sculptAsset.Data); - if (sculpt != null) + if (sculpt is not null) { renderMesh = m_primMesher.GenerateFacetedSculptMesh(omvPrim, (Bitmap)sculpt, lod); sculpt.Dispose(); @@ -548,59 +530,50 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap } // If not a mesh or sculptie, try the regular mesher - if (renderMesh == null) - { - renderMesh = m_primMesher.GenerateFacetedMesh(omvPrim, lod); - } + renderMesh ??= m_primMesher.GenerateFacetedMesh(omvPrim, lod); - if (renderMesh == null) + if (renderMesh is null) + return; + + Primitive.TextureEntry te = prim.Shape.Textures; + if (te is null) return; string primID = prim.UUID.ToString(); - // Create the prim faces - // TODO: Implement the useTextures flag behavior + float rc = 0; + float rs = 0; + for (int i = 0; i < renderMesh.Faces.Count; i++) { - Face face = renderMesh.Faces[i]; - string meshName = primID + i.ToString(); - - // Avoid adding duplicate meshes to the scene - if (renderer.Scene.objectData.ContainsKey(meshName)) - continue; - - warp_Object faceObj = new warp_Object(); - - Primitive.TextureEntryFace teFace = prim.Shape.Textures.GetFace((uint)i); + Primitive.TextureEntryFace teFace = te.GetFace((uint)i); Color4 faceColor = teFace.RGBA; if (faceColor.A == 0) continue; - string materialName = string.Empty; + warp_Material faceMaterial; if (m_texturePrims) { - // if(lod > DetailLevel.Low) - { - // materialName = GetOrCreateMaterial(renderer, faceColor, teFace.TextureID, lod == DetailLevel.Low); - materialName = GetOrCreateMaterial(renderer, faceColor, teFace.TextureID, false, prim); - if (String.IsNullOrEmpty(materialName)) - continue; - int c = renderer.Scene.material(materialName).getColor(); - if ((c & warp_Color.MASKALPHA) == 0) - continue; - } + faceMaterial = GetOrCreateMaterial(renderer, faceColor, teFace.TextureID, false, prim); + if (faceMaterial is null) + continue; + if ((faceMaterial.getColor() & warp_Color.MASKALPHA) == 0) + continue; } else - materialName = GetOrCreateMaterial(renderer, faceColor); + faceMaterial = GetOrCreateMaterial(renderer, faceColor); - if (renderer.Scene.material(materialName).getTexture() == null) + warp_Object faceObj = new warp_Object(); + faceObj.setMaterial(faceMaterial); + + Face face = renderMesh.Faces[i]; + if (faceMaterial.getTexture() is null) { // uv map details dont not matter for color; for (int j = 0; j < face.Vertices.Count; j++) { - Vertex v = face.Vertices[j]; - warp_Vector pos = ConvertVector(v.Position); - warp_Vertex vert = new warp_Vertex(pos, v.TexCoord.X, v.TexCoord.Y); + warp_Vector pos = ConvertVector(face.Vertices[j].Position); + warp_Vertex vert = new warp_Vertex(pos, face.Vertices[j].TexCoord.X, face.Vertices[j].TexCoord.Y); faceObj.addVertex(vert); } } @@ -613,47 +586,36 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap float scaleu = teFace.RepeatU; float scalev = teFace.RepeatV; float rotation = teFace.Rotation; - float rc = 0; - float rs = 0; if (rotation != 0) { - rc = (float)Math.Cos(rotation); - rs = (float)Math.Sin(rotation); + rc = MathF.Cos(rotation); + rs = MathF.Sin(rotation); } for (int j = 0; j < face.Vertices.Count; j++) { - warp_Vertex vert; - Vertex v = face.Vertices[j]; - warp_Vector pos = ConvertVector(v.Position); if(teFace.TexMapType == MappingType.Planar) - UVPlanarMap(v, prim.Scale,out tu, out tv); + { + Vertex v = face.Vertices[j]; + UVPlanarMap(ref v, ref primScale, out tu, out tv); + } else { - tu = v.TexCoord.X - 0.5f; - tv = 0.5f - v.TexCoord.Y; + tu = face.Vertices[j].TexCoord.X - 0.5f; + tv = 0.5f - face.Vertices[j].TexCoord.Y; } + + warp_Vector pos = ConvertVector(face.Vertices[j].Position); if (rotation != 0) { float tur = tu * rc - tv * rs; float tvr = tu * rs + tv * rc; - tur *= scaleu; - tur += offsetu; - - tvr *= scalev; - tvr += offsetv; - vert = new warp_Vertex(pos, tur, tvr); + faceObj.addVertex(new warp_Vertex(pos, tur * scaleu + offsetu, tvr * scalev + offsetv)); } else { - tu *= scaleu; - tu += offsetu; - tv *= scalev; - tv += offsetv; - vert = new warp_Vertex(pos, tu, tv); + faceObj.addVertex(new warp_Vertex(pos, tu * scaleu + offsetu, tv * scalev + offsetv)); } - - faceObj.addVertex(vert); } } @@ -665,12 +627,11 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap face.Indices[j + 2]); } - faceObj.scaleSelf(prim.Scale.X, prim.Scale.Z, prim.Scale.Y); + faceObj.scaleSelf(primScale.X, primScale.Z, primScale.Y); faceObj.transform(m); faceObj.setPos(primPos); - renderer.Scene.addObject(meshName, faceObj); - renderer.SetObjectMaterial(meshName, materialName); + renderer.Scene.addObject(primID + i.ToString(), faceObj); } } @@ -738,30 +699,30 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap return color; } - private string GetOrCreateMaterial(WarpRenderer renderer, Color4 color) + private warp_Material GetOrCreateMaterial(WarpRenderer renderer, Color4 color) { string name = color.ToString(); - warp_Material material = renderer.Scene.material(name); - if (material != null) - return name; + if(renderer.Scene.TryGetMaterial(name, out warp_Material material)) + return material; - renderer.AddMaterial(name, ConvertColor(color)); - return name; + material = new warp_Material(ConvertColor(color)); + renderer.Scene.addMaterial(name, material); + return material; } - public string GetOrCreateMaterial(WarpRenderer renderer, Color4 faceColor, UUID textureID, bool useAverageTextureColor, SceneObjectPart sop) + public warp_Material GetOrCreateMaterial(WarpRenderer renderer, Color4 faceColor, UUID textureID, bool useAverageTextureColor, SceneObjectPart sop) { int color = ConvertColor(faceColor); string idstr = textureID.ToString() + color.ToString(); string materialName = "MAPMAT" + idstr; - if (renderer.Scene.material(materialName) != null) - return materialName; + if (renderer.Scene.TryGetMaterial(materialName, out warp_Material mat)) + return mat; - warp_Material mat = new warp_Material(); + mat = new warp_Material(); warp_Texture texture = GetTexture(textureID, sop); - if (texture != null) + if (texture is not null) { if (useAverageTextureColor) color = warp_Color.multiply(color, texture.averageColor); @@ -774,24 +735,23 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap mat.setColor(color); renderer.Scene.addMaterial(materialName, mat); - return materialName; + return mat; } private warp_Texture GetTexture(UUID id, SceneObjectPart sop) { - warp_Texture ret = null; if (id.IsZero()) - return ret; - if (m_warpTextures.TryGetValue(id, out ret)) + return null; + if (m_warpTextures.TryGetValue(id, out warp_Texture ret)) return ret; AssetBase asset = m_scene.AssetService.Get(id.ToString()); - if (asset != null) + if (asset is not null) { try { using (Bitmap img = (Bitmap)m_imgDecoder.DecodeToImage(asset.Data)) - ret = new warp_Texture(img, 8); // reduce textures size to 256x256 + ret = new warp_Texture(img, 9); // reduce textures size to 512x512 } catch (Exception e) { @@ -822,6 +782,12 @@ namespace OpenSim.Region.CoreModules.World.Warp3DMap return new warp_Vector(vector.X, vector.Z, vector.Y); } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] + private static warp_Vector ConvertVector(ref Vector3 vector) + { + return new warp_Vector(vector.X, vector.Z, vector.Y); + } + [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.AggressiveInlining)] private static warp_Quaternion ConvertQuaternion(Quaternion quat) { diff --git a/OpenSim/Region/Framework/Scenes/Scene.cs b/OpenSim/Region/Framework/Scenes/Scene.cs index b3d919a0d8..16484fe79e 100755 --- a/OpenSim/Region/Framework/Scenes/Scene.cs +++ b/OpenSim/Region/Framework/Scenes/Scene.cs @@ -1775,9 +1775,12 @@ namespace OpenSim.Region.Framework.Scenes if (!LoginsEnabled && Frame == 20) { + GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.CompactOnce; GC.Collect(); GC.WaitForPendingFinalizers(); GC.Collect(); + GCSettings.LargeObjectHeapCompactionMode = GCLargeObjectHeapCompactionMode.Default; + if (!LoginLock) { if (!StartDisabled) diff --git a/bin/Warp3D.dll b/bin/Warp3D.dll index 307f8c6c941d8c0dca8897dce85fd63d399d0808..9d2d20efbeb6ad4a80c5205943d27b795d6a426e 100755 GIT binary patch literal 75264 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

6e5v0Nznsm@-c)l3O9;oZN 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 literal 73216 zcmd?S37lM2l|O#pQt!QbRo&^A>Qr^7lXR2Nq3rH#9hLxrZV^OQ*{!Zd5&{83M+(#I zWkEnu5Kz>}5*$VuML>sf98|^)QDhr+9C2S5#0}SBL>-rr{J-CG?yIU!8pIjqH^1NK zUrFD0&$;KGd+xdC?)TkyRP{RJ8Do6>?bu<=J$UjrF79(XTM^vZ|FKSUclHar-Qyhj zh22hg)u!ozbGFpZ+;Zxx2TnWn?6Yg<4s6&su;sk72R5BOaPZ5IA9!``^o`3qI^x|e z>thZv=19jgzgkoHM4H;;X7NDIS!qnSV@#yjEvw-lfPWlMW4gres@z0Se)(-hIPm;= zX8jc;<^R^xf<)oh556y_2YmNzG9kkL);lH-?=ho}IU&V8pXWeRbfJy_zpO3Z@^d#{ zcrM@z3y>FKl2bce-Fq++fjIFU-q#%iX{ZEpqE%><=w= zy@q(sP{cB~IONtD$Mb9RKv^0(PDAQn7i6Y(II=!uOkt&GMj#1dC#|@Crkrz35G%$D zYWo3Fptd)>rJ*6$^GjtI6PS?4ZnN>o?82jjB!zx>SNd|W3;B#BCEoH~<7GPia`b1S zBCcy#M`q^J=C8I7qX*PlP`()c($Mp#f32nWP5Jro_aScWEa;7C{3UTNv~fK1BBX<| zZ7VNNGg6#>9f;zf_If;AFDRn|21`prr)aQR1?{AExCp&rXS`QCR06i_5+GtviwI}U z5?I?JL9;MKr9@U|jq~bf4^jmopMRN-REobW&UqpQ%X{#7m0#@wi6F8)?>OiG7vgMg zkFy`rL&a|^b1jAX_fedFt%y2)ZU@Xltysf6vFo7r8_TE8rrJGt(J#hSTpx zW`;a&oei8OeI8ml$5zZ*33<#7?-tg2;CU|~CqLIM_cG@Y#1#u= zVTQH&z%BdwV@Y@(NS%)CNRX}d0r#EK5M_2zQ9mPPICmH^+HwIGmIS{6gcrDfrnzXl#%a??J$ho)BolMB(2t%4`cjGPjPDddOu ziCU)6G1n_EpedknbP7J8rePE^YL|(hWTYdD)IjcgtUD3|DFjI{5+;G#h!RUTXH7AX zF7&ZrX?G!f%ngQ;aL71F%r#5QOU^K`QU1Ej>$jPJ_2B%S>p}f%wCKhtTy}u0hbs^x zY|CeH$arn_F!xwNnMl;2wiQ_~4KdxF>Ku8oZ9q@l)ERkA-$`X@mF^E}7=}WJtqwrg zhL$ZWbILc{t#z60A!U5lHm9v^uocv=eMF>`{QbAvnGXuDS=$+oH~M#xZTfx8v1$z? zmbKc-kal1fT7UZXS%~{U3ssoxOkMgdUFIH}vr_^nk{3pIcc;2@%*l`;Zpu)5338%? zIkEeAcwx}8``lbdEgccu+FyZ5pw|8E$C5y-J0Fb%k(xHmq2n>PG?X1u`z@IljceUQ zlIHm1wd|>fJptz^gXd3UNE^uT(n_%q;%U{W(fe3#sauAv1jU%V18HN)Z*b7$SRXES zyPqTa(BXDm3$>@?S{)-E0v;HDC*4Smfs&fP#WCib+9D)8Qt->LgSa+8XE!+UaOC$+ zFQzY;UV=x?^};gh9f!KGOV6yulfO2Ou3uga3b&4a(H}VKC}Wnp-9rXBFYgWf@Nbts zhO~DFH;rWTw-^GT&LV$zx~^B=3#1KlAOP(J4RmV&glq8`zkwR+553K+4T6!ni#DuR zPk&d_*Rx^$&_O#9QFe}LJ|vPu_89^naDXwZogpi}83)wqf@B}cfTq-M2BA)_UhYo+ zi~(qSe9exx1?7B>TPJCGspOJ@(&nX6yBIYBQ#3U}iX2Fh`?n#-QzR4(O251>pOjz6 z-x#ALTjn6ac(^MF*@5qYB+F$uRx5+KWj_jJY(+bK3E3XOyQ{?kUhdBaXA=r5f% zfZ4TKmkUSc1Oq#ETx!-07_-%^AI@5^v?0Ga+FXSd$ZtFxxE`K~&1LiuadiqZ(H@{B z196gKJX~;9?`dHLrAiE|U@v5Jmj!5>}*U=36e+b0ZD;JjO>wu5kERQnHvCw{3?@Do2f`bFp+hk(=)7hb6aV~#oX|oGZ?7ojb4W~ zMDZC+=b6>aLo*RPtyqTC|kmapoaID5eS^1!j^&Vfa zdzM;(LMs%x;k7f-_geH|indG@9R}s=AW%MtAL~2QO51;2s z5^kNbN6}XBISd1kggZ2~tXoG_o*{tfrY-sG#+0U&u+q$yER?9(qc+MvPPH*~D;k3P z0Ws$IJbN!_(@8=07U8(BMyd^D&)*DIaYU`atXD%SM@voz9V zb-ZwKTF=FZ2E~dXAFGdA(4f=^ztU(K)u7ZRP|>(tseC&{q(D1GR1{-mY($%ZGh9zo zm4rO4r-!2?hTZ^uQ3Fs<`5Qpg-poN&yG~|}dnDtYJ&i6tXjV$Cp8Tw9N*ZW>zd_V-x+^rwkpoiR-oi=3J+`l!GRIL5#N67SlT=yhYaSX&Mu zN~`IjIX4Anz1;O`WRRd%M?i>&7*Hn zC^K|=hE4x@D)o$%|MSu6Sp!IH2dw{@XUw|NX~?#EDiDTxInK&LePEpKx<8X zfHc60c4{%}2ez86rZSlFuB4t>H9wPEKAMFeicUD@qo&=7AtDd!@>WJq#>wa^5`Scl z-+$@yPTB(|a{h20+Q4Q-8C^W)Bfvu3IIyM@O!!a&hWQrn4j`D53Qs+uhO?ds9=SC; zg7vWUc6$Ud(BLZ1<#U1&^n3;UgY~!R2g(OT#L<%PYO46zqnqoe(l0+KL8c0d< zl9ZIuBjR<7;A2er5p9#!du=f0nSL9%e&|=3Hn6{E!(SBnrJA11S;-mm)eL#GAs`6# zgL$E?BT$c72OF{aU36Nr59zH23#yf{(jQOe5lTHqC{TO;^h@X+6kP zeMf|JdftaTGcnpUF6TA?-ihuSzl(Fy}+ zLalf|Xoc12Z-sonErkA|>up+gyh^!!I~=Az)7S`ib}d}U__t{MI;tXuT8vWHQLT6x zSw@bKTqlV{TQ3W=x#y`xev-l%B4YT#ks$^EK6gY3@+t6Qgs&!IKX;xiz*;T`V(7Rx z<9X$GQZ|lxDlk9((jZ@gFc20(T{pqX4rHgh7$XA-b>2W~Q}P5CN;$1$$yUpa6FWG=sn7ywU^X0GKBb&>Wsn14P^X<*=S z$fGTbN;5ui7%?KTUNwJEApG6pT(=2GGYd51|9+lgi6H}A(5aofGX78q-Yb0D(oMCE={{o#~`;So_M0^ zAAMG#ux-u)tWU!!Zuc4`4El#KLTu~>1lBe8(Z?D*u*vCqp3fnYDZdR`hjGC77V7^L z1o@f%l{@2)Bfk9h*@&^L{f?PM2_MaxvVb&DmN1~2ozT->Z}VRd(8~&N1$8BN}peUl+Ksn z1fg5skH8P%R4dz7F>({pgVtW5A0fDBvLgy6rV4&GgqtZAa%*lxKDl92Mp*|@w)`+2 zQLNB%|yz= zyH$x(*nbz=q0peUF_0+1^8QK4Scl6~6mNx+3%*~PC}f6Tm1MkX?7<%lADaZ2flo}q znVQTc8BD(?rr=CX=CgG)c|JDKDv7@YJdJt0HXer6D5_RAmsdjk>ZZ2A#t zIpQQ%ipgga7-VFpQp_Moi!1KR4sAgFb2H`Zk#iRsxB<`db#T~?d9Lr5Z)Qk;xqMSI zMCuZ1kc@4-DSxW`S%hthslnsm%cY*Y8w4&=6&B^~O$Mxs+{Ktr{d=N+jOTn~G{4zm z`3s;e7P4#D8fK;jc6fM9Oi9Jw6bG4!LOgt05(g8R%2cMOiZaP2@mrv5XYlZ5A*jbZ zH5P8R-Y<L)nM$XRlHHaBRVnVt@+nZ_N!eH^a^ff!8#yLa4Jt*i-={aCR)~3RyM8c+KmX z_jpR=o9xJLUebTX&yKxk(eKBq+^2}qj%k)q6P8r=z5Ai_Kb08=RqCzE4#cE#*!tqh z&200Ma4PYu$kC=aiBfMa$)?^sTBMjJyg_mpBTp!v;@WeWL+Ri34Az1fd5T5k+%RUt z-YsEiA{Q1{{F=++(1CCEz;kx`&Oj%4;Y1qimy(8WCJ|@h%ruI5@Q;eOL?ydGU`C%R zb_|a$UjBzSuN}A>5wcZpa;j?Qj^0GJVvGEk@o=+PUv<+hu(6J;H~NT82c3z?*4ziU z^d)NkQW3c&(H(?AsMWj@PV}4xN$rA$8U2CHV_@D3K8t3`+bZT?s=u6Bey{dZfdve-o(2 zA;f$2Z`1!$^?wbIIyzjxaVQaGm`>o9Z-XmshHoxK+WoMl{;lYZYKhMlz^ttfR`ZEJ zuoeEwq75Ag%nZLI$=JZyn)*{?K~RlsmpCzn9-NY8L$WX{^)c*(??Ru5Wj;S^tfHWLMu{&gu@->=91zTmMW8-f@irsjtz%hile~zHHwrVxu=7Na zPH|0JYHLP#DU521aI#W3pUgp#%}H=FgoZTsjc0c3aO(#(#bytdWVPLP>tdgh9V7!* zwmt6z3+&oU0LG5YZqg~GIQCNTOF9tVVas(a0Y=+!&pKxfokvjLMAiXWOWill3l5aEU6TmB%l-m#` z3bSz>&853>0v~~tLol+?U)BsiUc*s+82da!uWW2E~}P}c}qG>O~TP9v!&I$hiC(^Z4wM{XkD&x z`WC4lHXqd10}*F?cBVULcDmlxOH+PWYY~pGnU&HXSqlA#nlM~Lt3wfzX!;URx2tUk zRHCe1soIn`bT(?y(Nt!g?g;t~K5JEQ;p@cWqaows1VxCTlvC6B^lz^MCROn#~ z-(QK16d#)hJAum)nsNPS{GsB|;oh>)<)NsUTMRJs;hj(}QCnQkZp#%t-KUgg`Z5MK zaawo(8hYT5!3}GJ-y}KM6Vq!%2KvQ@nqwO_A}N9nLB-eF0VD^^lw$&ylX%b3~$ zlrQ5Gh3vuvZOeeK}8Nh)5ci$i+_0$V2A$8u)aZ8R>lXt#;IUB=<9ko z?L2EPf^qB)I~PK?ekBOhg@s$_D&VT9;2QQOLa3q&T}=qml1AMsM_&pGDFiYl_s6`C4Ry8 zl!2!V5_@|4RAW1 zvIIkSVIayq8k~yZ0}yqJV>5gJqONi9g%8ZjJaY$h!5@OCIIpU0k=A-Z(&}i%2PEx_ zO`w`4KtX&pDR7}UfcOBkULigJi73@n6k1b8jS6A3B|y@expk@r5FZE=p{r??ge|;a zawAU^A8AlvKy7jZYLgp~RUzdD#D|p|P@CL<+T;c#%EmD&dwi(;LzEPHCiFUAg-=0r z(&|B3Fn^cg$sbbKwOpXzwsL`s9Jq^8m`WJXqc9`2RU&L3(Yn z0D4wg5H_oJca;T{ZL$EOJ}FDaoG)4ty@-8V?WnzCuR={VQ?1Off48oxNzD^vRD_VV zRSdVTvZys;jG=}IkF7Cnh4>>DB1=s?t4deW~3B3QNJ zN!J=k`qfH09$?7_Lf0gx23zFR63C?hQts4$lbpG1kyDKzml8_Jsl_Habo}ya$5>Yo@PPGZ5H@wlG`jO zd71?!PqVWl~Gz&_eW?^Uh%9xkCMt*jHtWB-9UUqz7TQ564Xm7m+ zZNH_hS4yt=O37`$nDZvNSXWA}`AW%czDUs|mwct&SJD+WM}~z3frIqKPA!WoN6sq3FVXl252ay z3@_lPj51h*{|x%+z|T30OkCjSOh%?N@N;gGPEa^D+3p+e%cb)~N`VO?3rF+B38F%j zfD=UK4l_d*l_lZKP(djr&J0PUBa$j-hSWj|VrIya)ofR}@UNhhK>_b9Xk29lSv0PK zO<|~lY5~%yY*J!{rc}&D73szavGqjuUhCzL5+(SV>Am)y;_)?f?_5Gyd0}> zm2-CrD(88r7#bIcBvdMmTS|#F3q2_)`YiM&KuB(q-k>@G8nf@7N8)>%@S*=+Qvam0su?BI-y#(%C>|}q=;`R(VEa^nv|lJCel)> zY{>$haX|_#Izcz3P@Ke1rAS}{w7e=#xTNWABpcEWCa?hs#oDSBJ3+zQ2q<&ON`>^) zu+R&8(p!;0FQ^F~mJwWqiHh76CMqR2A&IhF1``;MCJM7rT_vy>n<$J$6O{-o&cOs0 zqY+>$HUiAVMu3I1q-5C)Ca@BvhkaOjn1-c?RkS5Q;Ut1)3lVI#5W!{(5p1@QsLd7< z)of8U#0@qziA=FLp>WhjnHGfjO5kE37ze^ z4O}e*Z7Ru&fwZwDES4~ha8O&=7EbGb4(@n;RvsC7lz-0z_e;6G1TmHpR0anN*c9gw zfGu%eN(d9p#s!d0_R_zEyqCESR%d4P{X@x?vacPA7>)A~gvA3&Uwau5(~4k{8g{DBpGKWKx>Q53h0Sj2>-| zgQzhV^g$iB5cxsvJs=P2`8Iz?(;p#bR9tbtTmA#pBeQEci(CFBVU82}kk=O>uY5I) zr*z|hrzUH+!i$wZA=7A=0#p7sMiU!{QOJ8NcsCe&qG-YP+U1l*-wdYQqd&q?6olH0 z-G)#(hoU+d{gK+6FZ-(SW8Lw$;9ukcmi+>pp_`bR>_j(?^D;}aI9~@aBP+YYZxAP1 zwqun~M70NGzA1_Oqo2`rm7hVzVJS!IeAzsyHZ4aFRI7N!?RB1Bl~sN;&rBgjaj_rm zbUTV`{`peJ@M{&FZHpZ2iH44}?MTZpMUi8;GhJIUDIJrEcBYfGCBLf1u?um^3HxN4 z8(G`>U&;60&okdU(>+_hccyzD`EH=RN5qbHz>a7}r)pV*T0r{pqP{acVPAa|TS|i| zi@q5=VPAus5lj*E{o)CEC9>U^uSac}lG>qb2S-7cWg^R;D2rSEPdsv(b|_|6p(Tz_ zYI>pUO*K(WDU|Iei?XGwy!ZdJyeHbZ0%-A@XtNUxXym-K*1NQ2iicmMS_`(PPpKRF zR)QWoVqL*m)fgvLAJxXihW-?})b}uI^lDpi64K!hySma>bW2kU2$ho?<|s2hUZW4H z9FR7a(!3sl#?!W=N7CD^y-~MxLTEVHj=c-~mqXw3CIZwgElF;;1ZlJkYj>dek#`W< zi|uh7&?Akut+h9jhK-z@*VEQ_^l^k!?k%sx*1z1wAlU$xJ%;23e&$7wZP5n=bEOFS z0(s{_+uYAP_8mawAbZ1&i$H|lf-Gf|xN&hC;%N9AuO&hWUJma_PfAWmj(s-J?ecZx zZt=Kv#@KfeQgiDU!rQZ=j3|Vv(@~>@x&cK%b`mf=H+Z(8e%!{CYL)5m$);1K%hN#QhQ2!yQ(nRBuHstS8q zma9I5q>XK{x2J|u4T54%Nj%=jT=;t}vSdTC?T;NhUJQtX64DyE(g3;oR<;DNUWMjF zWN3x7V`$N0N{Vv_UbzM2{5Bvj)vpjN&~qrEeMa_~O~PV-d`l7)dvPMASiB_(O9Ger z=kSOMuwf6qQ4a}v7#8*lMK6f6z5RJ0=EED!C&BzafPHYHK7xISS}eqCwnIuDH{F2a zW%0IBlJDDQ%SxD@0d>2 zV3;_`ieqOupgMo_rX=pc0au)4!Aa_#N|NiXh`JTg3q;8x?7{H`W2e}Y$<%QmcN#5$ zj^|&y5H(LM14;(5}ly(}wjIp7(&TCS$jn53*q-v6Yz)4oefGpT(ZGCz;_=G?1);k`g?*%+HhF9P136+9hEJSPWVcu{E0OL_~fjG}EZzH@NSUHg{sL)L? zh~wo7Jk%fQ+4rg-*%ezP(vGW@sh!b#61_76p`DoO5In~zSsAVmCV^ZvGnj-8UM*9| z;Pkcha?KN8{@CfXHuPwPD2alxaX_dg!>8g^qT!=M7_FZ`41MAaf3a7^i5Xjp_Kfq-d@-iB9tI>SzGtaw5)uEjko4N*M6cG=&-#-S@?2k4vs3LB6Vp+5)TbuJgi0X zQgYHY1p!eDaSl5fUXvtv=LoOD1xd0!31zT4eG8Hp#Hp8F#2HLtttS!cg4PpzIfOs@ z+4Mq;>{uXmWbT^Fpn+ncFuZRv7cZa`U*5WJ3X6(5<# zoA|(s1y^%ya&dZ6N&?%?I!$9CLB{BT!Idk#*Dje(fWnm_#oE81nR81ec~;z>9`)q( zIR4(}^0{@)9@?M6#YZgPv8tpf-e{5+D`+$qqY?6(h^iuJ;P%)Aib}u$N*B0ArF2V5 zzyM}u&A)+tuM8^&i=|rzOFg#~VQiK-n-%tZyQPj)Qn!ig=@`sz<4bMZu-b32E-cQM zI4;aBqj_VOgDlBO$3lR9U;5s$Y7GljXb#dY0TT@!2qgg;f4)A65rXCAs~}j<)mSiQ zgerfev~y@L^q41y5mCatzESQp?8Or|&`DwN$+&z{)qINGyvZ6@e`n*}z+>U92a3R+ z`ac0Gqq_-)ehKJdK#k7{fxO+?cz}MlPL#ai+IX-H@gw*f55d85RJTU!mKZ~y@wn9H z)ej=YI~c{2R{|Q>(_d;_%ZFRPhQV)!BkNZ?kgL6rCr<|E7>?^~>Mf)VbRzXu^`q(Y z8*hUX$f4Yk0>WD}r)>z3nG-#3opk%|2HsxV%t@F^P}|H&kln&~4MyHJ0$(RnE;4gk zg#~=F6aW(^@&6i#aQnzc$rHx7O{(VP>4rAs@8A!&VOn$} zJTiF_j=uynBZ;2^0jl<>KT{MVrh>@isa*`2Jc$s+#?2rM>N0uadm03L)(h6HQ=KCz zc7BSbC{64l#RhT)x`{1WTIJ`~X@Tn+_rQfI&<2naEkaEJeW7RG2lev@yTK6CZ%EO2 zbqss`h8Te-GdU?M&~S#=XchO!THrWyRrPpvPDNEOUY!$3(IjZL(l5I3>X*?kYVhip z)6dLX9Xt=2eRD`?%-*nHw@#BDiM%>jzU6IlvMQ|`>BR}@IQM0XY55{h%`k1QsPa&}THR12&LX@$m{-Xgvi#N_`oX5ihPw7I9gWJ|h?NzhI*AUb4qA-3e~k z5}3k39b*Kv%h`!3jD7JU6J89%ICx^wX^r=Qz^&7ThVkZNN8;o4MYPgzGk9qcGrgeR zkNg$#kv@5K75-9IouQ)VxJhR+2m6=gHQBfgZcty$h+UCBlcWn5Q*@;f=Z1>Luxf5n zXh!^yL|np%-BDeh^OEiae`&;GsOXZL6q8aj;y*~l0Yr4`tlm@ALQhnm0b@ru!QTWY z0EPMC%)maETez0p)MVq+!Viri__1vOzXef!2D~s?kl;`GEedA__PfcVq`$@QKH;}J zGd2*_<+)ojkl;__FAf#C#7!0_OIqnTf948%VD`NS%BT~sn$0itC5sCE z$>PG2WG=>E#X76S1&E4gqxnVG_AabfD#$&^^;3|L9StuqN?nLA)5 zMYqlbiDeFfmGs>@lP8wB1XiSR>l6m_9=Fb%0xiP1b;>4a<`!s?)vc?jpk|JNCXDGD z_q^HitiqNspE!}vlsIgtHqff0aDv9Icn){FWi)JDZzPDf0r^k>uQom5qMnDg##^3i zf7Dj;-;$EY{GwTATJ)&cO^lX(hg4lP4=wvd>ZD?{?B_{kQ;e2~|AuwkRq4#Mg34a#}LU99#MYTlyti`hB+a`)%nj(b5lRmOipROX&kUOX&kUOX&kU zOX&kUOX-KRmp;+6ls?fjN*^y&>{R+}xM!Ar_~%PM8hv626@c$eo#fhm4Xq4#YrSzh z%|vSf!8;VBy*IFG%OF~L<8JlSwi_Q-KMlI^arM)R8=p}BXXyVV{dF=gu0;dS>L=_3 z<<{Be!^&+6!rX?iQAdbPPm;1BY_$<$QmRN|z<`S_4 zS5!sRCI3>tFfvtDt4?Heu`F`S=;4ClSGjc#xZ~jx1 zgZ|FtL&MA6GCG=I7`LCJg9wH(Z$;M^3>V!pdaz))(=DUH4{!@?8Mo)KK1($hkt$l{ zweZxEEA7pgnsKGQ4O1Jgv^QXCz?JsaORcxk-gIfZRcUXw)M_j3O_o}0Md})ijAKm{ z0`JGhxb1V$Q2j|bg9U#Cv%xoST9zq3o*%~IQc><5c^rfP2P8a$@Qj9cAUtEkasGuS zgk`KrHha`WC6`(fV}{#Sl%w#``PItdZv8qS%BMonv7&+#vJ#{bPH37SjjtlMm#$~I zQtqQScNhHbLPpoqu;az~<;;BGR{SJ_oI&w%tn}bQ1}i8J&uLEZ*^ne_DKenQrW82A z^A03DScpLpTZ#Y_aY}(4UN00mP~k?aIuW%{pC?DxI!rYEg{ga`qkFg{Zrb?JmUKg&fPoHy6I}Wuh8?t}@vM z8FB5wpDzy||Di%yv2!7CPv$g~!M;1!i?;g9 z`kmI_X8p!{?@0iQM*U~~4y-}LaNjQ4#T)WTXf2-gDoicjb|Tna_y)C$4zaxv(E5G& zidWk5`xk-oj>)g6_2`Q3ebRciSgBxHKv3=}dz6FRt>wvZP=i89L#x>nf zgGFU#M|7W{W^_R8c`DNJq`ME+?E6IHneIY>uf}LQ^a<#Dzn%5n-pWv4%~qz_4z*h} z+o5JF(`<*@Et>66vz2MKLwS@+zO5a~r=^01L2E?^C^{@f1RfnJ1qw=9s?IgvXSv}_ z=4>t1+BYKb`B#jzJ|vNCuGkXItQWJjXaCbJmt4caEOPKL)+I$~o2~9bzPr#Nd*H(u zd;MQnj#~eoM>!q`JABr1M9umylw*7M!m9lORo%4toKchir~0k`dd;6{Ht)vuEY04| znhpBAz^sGa?7wsUZ?D~~|IOOntpDw`oAtk0yPNgDy>_$yH*0sZ{lz5OY8=$5Ld$V@^teB`0Yiy4IXZ%fjmXtS!Xn|4WvYWS_N#`2U}w z+1u=G`}8(3G>)m%%DM}k-GwQn?Sq>x zxNzx-i}enobzu@ATrXBxCveAf8YrS_1f9kz2`FSnuE`brHSZGpy%h{G{^r&$UIus& zP-&tJ(+);nfx(i_@>9$q*bcLk`~;%})(Rb5qt+47F@C?D4-v|o&=&NZ198fsi)*?- zl-?4idO7fT^j&LKiME()&3j8*%=0YTBD$$9mbGSHwWWbl7;V~83MdQj6{+GxYimGf z$;oeD87_m|OowRirN>Ot~tyXcJ#0#h~PC6+%4n5dpW-P3!ehxf>J$}BsgX1+% z?)XP8_>RCh-Vr#4_Wniiz|B+m;8f$E>9tp|G#(*<^W{gOvNawi;L4_8@P4ynuf4J=avSCUC-1i&onf&@W2-}xuQ*m(OACSsOJ_%(9b>ELF!7vEqL@Vai zt>dk@o>=b2$cFNe@-N_WO_)I;H-IA8TFC2zhf0PoK-_6c(Y2jtY@)1JdpGjSd!TTU z@ZZpjnUgeQtFQwv9^5mBJ3hs`qKU%^3gB3Qg^nI<19VuN&QXl4mX--gxM||G*Wd#{t~bxRB!eHJ`Ft zRUNO!2kZi1c@$+&BzGb+Msq4ur?|Qu3Z2-&lUN?$bvA!3nG}9 zGj_K23WT1^&|B@B6HTV0UkfpB@y%UG4>gWAAA7|v*SD8Zt;$+Ymy4^I5#nWb3BkSQ z+v_+s<9iu>+B5sHpUdQjCcTfHcID-Wp4 zt2^O}2mELSF1GNaGJ5x5X(n6+D9kA2iLP98BxL8$EmuS#tp2LiP?-}2-0FRS@g@Nm?fhda{Jqe)tRuN8?P z)AVI%N*Z5dDm;A_G`>!6sqr0se3y^KByKr!KCJPtHUuxHJx;HF>-~Ez?-MOAX5T5n z59rnR&seVLnC17sC^-CCI4T9Dlhb}9O;M;B$d;6VLm>KX0jWlOufH`s{HdghnN z<3UotX$T{AjEBV{cFD3^XU?zff+AGg6ZCA+9c)cl9FsIP^FN-lT<7C()2uK zOI0x~s=}+;w1|WnMUFSQbv`*aDhbAw^0yZCBANm++NuP#A);QYC~dorCFW>X24CI) zEM~`g`A!L6-eim7)wZ(Qq)=l8aMr#CK|L4tC2tdUW5gupv0X+0mAJk9zc2NUW7=nn z!wz}&IKFwpG3F(-<8~WYo8=)Mxqd<4b5bwIY${A~d+kq<9#xE@SqQyvZq275yJGRx z1|fo(kthW_A~|`Z?~(1D$AK3fHJ3NqB6*KPUni3g9>tND*`l_$z$AocXyrY&tVGv$ z)Aq#a`4+dVaMPE`B&5kLE8O(WG6`vNYkdcT)oW}uMq4VVeen+8jBDeHj~wWWZuZ4G zp5kFaBMwv7F7c-v3la0q& zE^eKjPVH)#oxIEk1o7p~+Bma6Io~t9SJ>Wd7w8cvUoxckMb?n(Ah6fP=@$>>PL04` zKY1z`!Y}ID$V8Jc|A)$8u1MI*0DW#?0W0HLt#{P>oRhx zbKrzec?_Mj~9>3S z6*=R3g%|k7U=E&mm{ejc|0^Wx1~m-OVzttshWx~0xLysaiSe~j_7N-RMgw6NzCE|Q z!poNr9~upGjxR9F_l^eQfu&}7AsXly-_tB#IJ`^{SOgtTJ&RLMZ|dnvJ>fvq;~IXT zxx<>zRQXj%c=7&s-h-vcP4I3K1G45aODGM-?>+Ex=*g|q*4#Q#tM*sOUo~Yt6NLnQ zrBEnIl1wy6s!(yoL73GM9^O|m{;HMMGlBcZe5F-p$=nI$BqP{XPm~rgLhCYY9VX!PESFsQnt1k53Y;WUJXzAY(lu*ga$NN zn1>E;p6&3u(c#TYJG|~TO zl0cCu6uEhpbl@`?coV*B!+O5Nus(^`pOEw-w3qj4QR8Eqxh`JdI&>lFf!o6iv{(XT zha+UoU+tW!USw*1vCubsQL(UK_?1n;{<7?}3wg;ODE3Z5E`TTtk_9RxUbZhJ^C@8; z(0vK^TSUT(Az^o69=7Rg=RoUN^a`{GYH#Mw!s`K1GUwzkL*w{JIG%iIpHIxMS#Tpu zpi{zl&3adTHJ$2JMu?vKI|SpD z!=-H`3%r!>@+D^vi-L_`3s1VXfxZ=~DV1)T{e}cHQNP_4^&h*Uen*sO2`drQC3Hby zu|2`u@Te$~WKxB2%?+>tS8n;h%?%Z7Nra_Uqx@t!SGc0ms-CEH8pe5e&lN}ZGw6?S zj1F^IH0}bOuF!l?7I&uHC}An{B)HYBGfzpFy~V9FD=0D_US=T)L-;5;&Pw452&Bi2 z)U~I=3eb3~M%iCwfYF)fET#dCv;yAuUDykWnB zQpS2NPMPXynT{U5T^zyWEfy& zJi)Fb>75zK0OZa2c#}HDJ~hte!o|8yIC`g^pG|e~Aml$9@?**u<8R-O0ZylX`Dn1v zc7$`MBiP!!r$;!`qtEFXPW|*}IDAy#O`!F#{fa-SRi~QcmmZ_x-Ltr1L5d%p6$WN( zSF7G+s1|{#5UHTE6<==}?TWi_7Mpd<4u|dFIBHOyp}jqPOr`jY<7J-l*J&BKvQGJO zZzRvC|X#<%4ZDd0zP_c7xIBu!*}U2u_rD=C07PXJz?!4P(IcTTZ!~DP_0b}3gj$6 zD}t}>p0ruV(k@1%XP&SA&#;4q9Hn+I) zm58y$_>A&6K3hLvFr1Um8U^ab@_>HTNOc%+tS9{Rm2%ucBHxH6zjM}a0^gpQeDOWD zF~7P%nVo~CYIeRM+wYzE;;YK!yW6VcgzxGzZfePkAra*5wF19pcE*L3k$ivqIOM;4 z0cc$PFe-YWat#QMt|xK9V_=or-*XfOQL^;%k!WX&86( zYxdr}hj~9t)}VaNpHJg>rg6xOH29e~bI?u+>34FR7X0CIfZ0{m3#+&=WSUy6#M!9Q5oOSekZQb&w@0Okf}Tge9Axx@ znkvJ_WNDh)n_I`q{{%aPu5tG_LQX`Q?xxt=lyieA>;NDn1t{fPg-nDn{V%tGIiu>{7{ys`%jC+t>Are4_hCd=&#!<0tQZc?qT%HacC^GhS~7e9h*wYs*+X?}AjMQncd=AkZCf|E zHp$|+MPP4LoRr$MUhm{f{OwIo>-J5%ON47bcwbACKzKDFC2wPlYp3O2m$VkzD@LzJ zUGvOs|24U}9bk8*RBkLsqqjt5`wQf5Mp2R5cxJ1!N&HSJZ_jX~jZW*iblt{F8h?A) zW%ezLQ1#g+9MjTj6QIt@4Okooe*Q5@X7THOzxY7aHQ_W)8*h{ZZpPq2+Ph)N`3;AUOasRf# z7vKuKD^LL&Ji9aW2ZReFoI8ZsF9RZSC<`ZZqNuLgQiB*NRBpv_~X7BcdQQB4&IN zQEQrHnckFK{7Q*Qp-|EiEO&ZSO7SZtdax)fHxf$S`w;AS{QoJP1flG)4qb1v%p=n_ z%k-vM7XK6ul#61Npmrw=WZ9qsTF8pRHRvpHr4}L4_KCzbAEns%CBgj_cFk8*>FTE%a+Y4U#Z7@4&2XTG~gTS{pK^+re zydb|cceDz8dP+@20GvJLQ;$j@NbQDV^NSEFKFJY8Kp9o-J;uj*u3SimjiVcovPgsT z;(G0zr;n70uuSC;j@C*wO?)2J8mJZJIY~d#&J}#L?C8#5T2VWhL5*CssGGTGwr!>^ z#>)aKtSYJsSX8CV9?+!Kea>pPxr|Y9JT==LuPyuaIrq^rn!XY`Y)A*FUYwLqKM;V| z^?7V_kdNt0z_x)yj8JtvKKID}oBVk@{Z*-K!V_bo7m_FM%9CEOGb5uN zq~UU3{=b_>ZF^H{)(7_m(6!g%i7r8eZj%`e+6yPM>uXwK1{td$UloK@*#Eo(V;=s{ zX|TNQ=&FyV;no??*YVZ@V(P?;DKDo+Neb!k(BNBwDrTkma%rMh)$W@BSODLFvd*w_v3nrkSnG;3|CPo}Y& ziMVq4P&HGBf%{XHUDIq5%(Da{f?_wO?4)>JD zw(i*C%U6pvTS7nu>_V^vNPh4^3vFhZ-6$mnEfgDkiOrQ4D~c=lrWj$|yvD~czTzUU zIgRrAHezt8o6<9GbCJ5%0sj^)?iWeJo$M(NVL@Kh<=7O!?G z+LmSL!xTCQ5MLD_RKt3=JwxLg?9!Pk#+Xn7u;S*#<&qd)<6(qsZ5&}TYRA+VuSd|3 zaHtbLX|!<=NiDOIw=*3{2Frx;=qKH@$1C$X(+16Y=zL^?rR&*=s#~Xx;l3h1TA>v! z02^AFQFkDb{HAXPSBx52fm)Rt2qx63fj}@pVF*9dX|+|@zCl~sGsrQlo zx&qw~f5cpF@O5Zl{=5%&6-_nBJ4JKRLb`{De^A^r#eLoUqdHjrGU^f^ICzPm``Yh*(%U8(V$btO}Lkv z%MkC}gkk%dcS_jf!exJRi$L4vGVCDp9)XUYL+A+HLCN$k?<7<;_X;$+K%p-Q^zS`` zPLDau{7j(37BcKglfhz1m$^~WyV4{AeO&TzjVTFq3nV+rJPb=G<)K+Z|6*1O)Pt}d zK%)YkAY6WEjuPl1q5P>iNua$Xy+4{Mf&6*oVw{Tw`fyR9O9VP3B$Rb773g=}gbL1; z0zKVFsOa1b=)&lla5wX!(sgiuUA!)I%t!ofaPRM>`~L6-xF_~*hui471+MA2E)2|H zFL*cHH;a1{T*q9JxdoVamfj2ZT|IPv)O`ospY+iEcIP&@N6x4Fb@9Ipe$VXV-valc z&O6|)nSV!k($?>oZE(LR?rMkrFN^y+ab0mgChoh%{VQ?%TvDD5o+oYHDDG3j;YZ^B zLEI0;4DDD*cW4eJ(Ojtfef|fKi+;F)xl81HT{mgI*F(21{<||Dgufu#m|vuRew(LG z7G&>+dqUqoBJ}mpCu(={Nw|O0M?Gvcbgw|_f$1yIU7OIoU-bMsLrq>0-zTB>p%k`c z{}J3K=6?=u7O6WTj|1Iq3yDdA7%()~yeOXRm9 z-D^5;fP163j}#w)|6AgIa={nj|Jg#iBYpn@_feF40NW=2K5-8h_iAx7;`WPsw772( zH!JQEagP)C?c#QbyN9?ZiF<>%ANIZq{@V+b>QV0-a4+#5hkH_nsecky7no%t`HuP5 zKm$Kq$XpC8coOc#;VHtg$l#!K=(5Be*aO|iAPKApk~ronq~)0Vkgj9i{AZ=w&5Q`; zFC>+x#r>&pdu9PS{F`7{rjGe%q1;3G2e3xREEM;9LjOexT`Hjq1plWjX*$Gzn{eA* zxV=yOgW~^Bp~(x)R!HlZOiZ236Zc~a=znq{-3R*U`hxEk_a7znH4^%pEJHshG`|)< zYmj3u6a9P-Erw%`lUhmqZnl=)JNLKH`3FV+|5W$`Xg;2Q25v@b8RHhshm#xNE{SPT zABx-vHCoyq<@WUa0GLy}7;de%6E5o=>|biV*1id}Y>wFs*Ee0AEaiXbWsUw#KzsO< z$M*1HasNu(X>nVrIOfAR&>fgwDg6V(9{5|K=$A#F<&wJ>chO@1M(XL1Sn>{+DL#pI z29zbbkCYaI!-qOaIWV8@qkVLfIdmUHEhw7D(c%?N|C~GEe#O5dOw1{T#Zh9`AQu{% zwiWG?XdCixC>ONkD3`#@mHPFV)T}2V|4CcFkRg7@{Oxe}GHfk3iF>oSN6w{YzT8Fk z3~BfNL28QD>wAUsFNE{c;wm5QH8k!v*Z^Bjy3@iz`P>Vu3k>Z%Ftqc)(7K=*;X|7Y z3~e$n|0pSH>u~{WQd^bX%#RC?hsO+XJo1K~$Gh3aovl!`BpQw!bH0U^MJoYas*w4K zvv=g0n=EvMcR=Ku4_fF|*@L6dJZYgh(GgK>e%*wQjq+yq-3)$jFkj0Y5zR3tTjSk!%z6vW$=+=G%{we~P;{~x zFn?>I8|SZ&2FwE%+8k|+b~E2^LT5*V=9wmRUQ{-vC7QxM(b>_9%&3K4324L|W1$t0 zWrcaYg|6wSM61m`O{gC2V}9O*E|2y#1G_8Fu=j{)e{+I`ZkuyebbxuMg{J3T6^)ty zw9wCb-x9spj0|eLTam)c%m*#BS63xE((JiZ!SyIbfM=&Xv*fN9ue(EOx%$U~D34=d&SFiPKKRx2bHxyiiD zhP^YqJKAL4X`!pSJ|0b(Ukh}Z*}d@D=+&lwgj_B&*Uf)8I@=sM>(8@WVjn0)%u#xBHzRyPInIo5Lyi)+3Z$53I zV~U@RE->9I7^d~;LUUacdLp{e1X#7CwO+X3$I(Tm+d{7pXm^1wGpAryb&xrmgc39}L(gD#WriimcOyRQ9)6r#SsfAwGb3k;tIiLwW z9bI9Lve1T(Z#$64Lf`5=AiB~#(}bRmt~Nb;D$n=F2SnGH{hH9z(Ob+30$p#8bAKOQ zXU?(Ep#oiFp(6#l-9oNF_gm4ePn<|Fgn?Dgily_M(V{?!iFg)n1h3cCT?ZYmbq z!;iD?G(WJ=LWI4`oPaq!DVHy}+PT%7W1&oVweueHB@4}4c(rqzIhQK}pnPJ%-0bb< zNejI^bG7q+vt>UGdwKWV?BAOAHlaBCLGy%#PDa?>=GRRq&VJOOIS`&-UhoU=@$n2J`c--s~sMTP?)$`;>Wi6M8zj&wScKned6|Gv;Ht~6LbQ9{&{GQH=%s8N%n(+dR5pEagGPFG_qsPrX z&9IkdzsH*Zm^yCN2+R-6jTS=f2DBC@Y8dujfxcuR=HUnChZgE81m=h4KP_}u-?yC~ zn$oz&`&n>w_Qz(0h3-e){HZzELdW(LGe0*cTWG&|CuW~AHwyHCS%lS=- zIlCXM@g{mM%7)H+4pHdQ_^NEqx$vb5CEiupymPySo^s!k?Qp(hq3^p_0Xq0lrTjX= zI-P4QbWgku&;c)F7+cJhkzJ-T4`i65#CfHJu^b3(Y*IcQCC(L1=;rKP=L1dX)@--) zlP2{3Y>%_YVUmKmptm=>(5WaS=`C`;A<$*!q`6q5a!x;7DgREO%}1t^G3*mf2(w|Q z`=~T*JUifA*o3;wZcY~uOradE>iTT7*m;qKZb$#H#5u-7?45RZF0>GPph4#Y7J5VW z!`Y?IF~>*>=DXSPY}wgtp?{q_o_&#Xg@ra^-E+u!vqI4i@+X^N=VLbPek^hiJ72WW zT|M(KBl^09z8%gp%bdq8^dv@g%blNC=*!tpWLG%j>o!otuyTWmfRmtvN zNGNNe$0I_Ch2Gb5vRUEuTIe$&q1_ac(p=$;2z0&K7T<>yCJ0F%@KAQt+1P}-GNaA~ z7W#$PmD$s|+(KXRV`p#YY72d$BX;(2wpr-fBzD#~w^-=PQta&O+-9NSd0mWnB$z^3Us}>e8JP%_IE1YjOp=?}reqf=)5jN@EkF{pDMC=hxah|eJCOjZI z)w%r@8pa;sbmx^7h1iyFbY9(r`m?WcUfYCvvzwhOEp&Ou0nw|SZX5|>3hX=1ao%O2 z4qB*;&(dT(@J@kvnBp(=d~7^>u!l}b^LQR?6uCt@q3+XEHva^7QfFKKVQQt z?wjH}ock^Gp!25q@10{V(6Hm28{&U-UUCs39f^O^IbsHMd=t7g{-krELgta^&iFp( zMuD!!8tC5v+OsZPP;WmHf5y4cLLcb*c>G!Cg9^dU?u$R?JgShnf8KrZ1J0b+N<1@! zJ(LHXehb|?_rdr<=NJo}Jm(AXL(a*UDCPZt9(KAeRp`*dQ2dDV|F!om&~X+=y7l)w zr5VZ6ST;72lL;}zWNoc1*~WlLBulcSAWO0&{2D^qiAOWzfBwIt_hI^L{;e;fRgqRR>xk(6*Kwg`$y!NZ=o|hjv$)0=8J!j93 zH1$_iS66peS64s&e`XRNVQN494bC+lu^#>?2x~vxhWi(fSXUp=6n@Vh)bcAdbx_i7 zyHZmbNn7$ULrL1vk85g7r+q?GXA5=dHJW-Z@V)9stOuAv>DLB-RQ;&+@TZt!dp=wJ zn6>^op~!~6e9v+X)wA%0>hD>faXq z9@OZKEcr8Q3SRyL>q|^o&se8bML|6+X}UL`w4SS=vVX_WKxx&{Nh5L!~^mp&wi48tRQD4WXy4aYJob zT1Q8%4;d=IpfU7}bjp!;Ak<@qYQ|lxm#hbF(dFHz)`ecOHr~e6!6mk9n=$L3lm*ZK{sPN@C#*~S4-+rFUFj(WR7UgZk4 zpN@J5LRIQpU*t6H6LpHdB$Cq8b!ugix-b+`b46+_v`Af9q&^rrMSV+CG>rBwRg<^t z@`ka#UaA~Jy#oJiRP%=Vy8oW4M)iQ99%*7qzDy7E!-GQg-=Vei)nr4B>N=tJ(|LNRZf{mIp|`2guW0Jypx&WwGSneZ%hm3$a=!i4h?>1iwf#>m z`K*6Fbf)TJ3Z;KDcu&EX!bp_OX+*Emi0QHyF3O0Sw*)Ow*1&(yV{7WGj> zZL_WowW*_qIv3PBwf=6_f*q}OW9V#kgQ2bj^WwOTH305*kx0?$^|W_edzN9uZ2%iG+H*NIerusO1l^B&WT% zI;A=^MN8}N2xip9hT=WKUUj3Po?hT5M?Gbz*Xqu#a?~pi5?&u6o<$vX$3JQ63o2?k z>TyG@^zB5x1>ewV-weJS!ZWX$Lg}otrAVC@bkvZMY_4gp%Bx$M!rnJu&D3Lt`dw|* z$}4(Er@bG$j=WmQ6zcL~-ETvA^|+ya4r*F`hi@@sMg8)E*FrPuCq>E|o>Q+F>XN0e zg)UMf|65C5veX;?Yc*-8*eMIb`_*AXt!P{jzEpk7P)EJ5g)US7W~gPLE>|o5S!=;( zXTt|nkD(^&-yXg~%?ZW6+gx>}x`rt;GheBGTcmKlq?B_Ysk#OI1hsGwQ>JT3Ua^I;{AMo7raH#|(S3 z>N3=~F;Z_)qlV&szePRD6#C&Ei#x)%s22=%HmF-w_)(qq&EUCJx2f%h`o-d&@NMe9 z7pcwR&nu{)r^5{I4e;|GAF5~k{wBs>TEj+fNd`19(cNbA>mxmJaCO_br~ zGB?+jWR5M%hx?KI?91am{t2jZ4aZ6rO8Im7KJ<7YFW1CFmjs!kt*Yx*Uc;X>R?6$V z1r1!=0$!f$?TeWI4D>793p}yRr|X!1Jk*vvo_{jVVX2{p0}(E9M%vXNBE>hbWoQ&>iiqxBfJ zN}l4AM%JSbs{&DtW1gu7Kxz>0&^Brh#R2Uzf`;-)s2g_0%|SmZC&0 z6OkU*`~>1yWes)DYW+K8E-3dmZJ$L_6NU=UPjIa?&Urm}s)lRwkd#uA@!%N?=5wmg zr0U+$I`ufxy`ZDb$zlTY72PWOwfrZg@3e;JQ3pIbg?8boAc+sJNT0HwD?C@kHPk+K z05wtcGs*iS%yETr{eZNZd(9#pVKgjh!1E$SZD_mbVQn6x?N8wxfHjnf%;orNGNNx< z%BAl@l*5D$Ne|sGqv@cO^`O-G_;IIwUc=*4Pd2iSmpqG+c}^jwcDE$4ledL$`~h9`D*)^jOyLWbxtHh~cGcU~?ayhu~65 zz3(wSSUwWJikf&SEwhOpWmQs7#&wjiC<|QCG@yqr5n1~NH=y)r!28$k*+5aWM87i|PeNaZChWCif88QoNc$(l06;kBIy-LJT(qI ze$f;7f2^nE=jCnj(9?SUiqzrIUmBn_}tL}2m|1p`@p)FvvmAuzO zzd|d#^sBTT9$LP%pzz|r1A3FE{A2j^ctdvkGjQg%SWZg--T9} zk2|mUxsN#Vl<#PQCLSK&Bc&28dP2s+K^YyN1Vj{-xTK@8h9wOrinsrf)N(zQI7d8X zR>G{=qT}m!ET?itxKirRP{~Z;F*Akc{41h_NBCaD{~0Wx#10-x$=KofMVZucTm7}n zXn!I0kBG;X<9a?~sOYD@28!Vcw*7Ppu2pmtXSDTzID-VNrZWNSXtltz1$GGR6Szg- z4uLViMR+EP<@XAl6LhqnX2qH!lZNPOmgH(ATJL#7(%%zf7Dwb#=Y>#FLT0N-EzIoe_Esk@z?fzJPd zC-RRr{3GB5a(##XF8l!G4=s6!l2%vkcLaZe_F7+PdRHYtA~=cPik) zK-4;5{k-;Ez?Nm(klNL_0B{dv_F8e2vDf-PjaLAlJY|9PB+5Es;S&M%J5km(;on<_ zz^?}EYOIEa>VL2=ss@2!*kKwt!!QMEE&|RlO#5)Bu0dd! zmNXs!=SNLfA(in4!NX#c27!m9MTbyZZr8d+FL_>-vi4f3TCV>uYZh3qqLhW+S4I9+ z(eo;;ZG0yOpV4b+qBr0zb=qzn@miJrd@B+q>Gjt@eOgZB?Dh@as#eeTPsJw$CqdPy7&iq0aX& zkX-Dmx9XO>&3C3%Ppf=SS~I7v243Sopz5uqOU^>-(S|Sj&IZJ{Qd!se?*hKff3L5@ z$}f8eu*3fd;5+=^1&sTj1pK1^sBbx4wRE|Ex%AO;x?$c1K zs#eY)#P<=+0;cFs>S4e-^(bJ2`YzxS^#i~r^%P)MQe8=% zmDGzQbsnkE<9!A)JA$k~CNK~9F1nN+^*2+9Cd19x2h-sIRy>wfED+&g>Ddd+&L zYEf&|M)e`}x9U1|llq*xUEQU=uD-2)sGe8oo-;h7o`h%KbFJsAo~Jy&_AK%K zrFVn3!+U`@?w$5t>iv@UU%XFvpYp!PH{hG_?e$&m`?T*fzTf&@^(lYY-{4>EKgZwY z-{RlySBTX$hhI{?32_W^RPrvvD*0I6$1rOj%NxL4QOWzD z|4hu>mAsgL9cE{u8F&?*_Eh)d$}~;2w9wRQyj$^ZYoQ6--8B-Ar9riSh(yf$j)p>wrasZOC zm8KyQ!^aS3acyaX0=!%CZfm1#o6Z4DgxhG^aMn;VJ>9x?Enil*uBQ!~Gl_i4eh+Q# z7&*VUqkmIJ|4?s-P$g{L#-yuxXBDyGo{b_kypei3X=E$btcF6!*%^kxV`@3nRZ}U)p_fUVw zKsR*`0yuU$VLScFv^|8>q2BIcmK`~NWB&!+w5?-nxr9y`-pCCq%eaX)$J|LkWb5c5 zcP#1lLRH^zM?WQI`-R^#+}%AuJ;NP+12oh<+>gt!J%RqSouO2I0;Fkc-yn?+4wY#i zqRt%<@9G{FMQGSopo!UG8Xg?&80{Mz7~J^2?#|KjEZw8j-@R#+hWmPYM`_dW;J_%f z4qq^G{=i^`U^&6~R4jYJR)PZoayzzB!j89Yr;UT#1=~R*=kL(G9qgE0Xu*Y)5Qwh7 zkh*hj67FMf%*+lsnGf1=*G_aec8rBb?082ii>GgZ52HVe1Y1AmXmT=^EAop-XC|G4 z&$^ls6D2cnfnA-kDcgxrERir6nvj{c4KXsA9Cy3y@mN0P8djo$itFt9(iL-K1jmo1 zCsMW$@mPG)M&H_Cri8;yD-v*8*h~2Nob3pb8RIq!no3SgYHZqeTzgiS2`(g;+-G;$ zDPT@4oybgWOS+SqmO-ph7D|YaFg2RXk5O!TqBYKNO`PH|t!u-ul*|n}?qp`diDf5~ zaqhwj+H^+eTq>DPI1tF{-YGGR|8-_kDYPI7i#PY!X|y&@9jO$)D>&yMm+e47Yl6@o zH}BYe2}08W<9P=o$$eiwy$94Jnl8;BL7<2w;4l-d4z3-E1oxFVfSuqtBi8KC#1bGS z2P|sHL?%C$vPY7fl(PXO5KhJ%pz%~DhYR#_6`>|U=}a7vKjfCO)F zMlz`+FzK4y08|azWBFvtlvu$@BQ;k@c8nN81RHc?EWT&L$>c#L5RuBru~N!-#(`%h zXbhq#Gi{GfCV`;ko%u1FoLw$o+)N79PRDJwXpX}G4Fi#2I8_P|)f=wrLNlxwQ?8Qg| zGN~_8=%^XXTuu?!0isBz?U^FZ?R5)zhA{{v63_r#eFUb4_T*GHDc2A<81aK0b7>{cA*kAQxr1ea5$evB(>RbhElP#P12;1IQ(6Eg<#N# zwE^?QZW=QIQDFA?J+bAm|K z*O{5hBEQpY5Dw%rEp^$sc!8I)(-ZFG$lg4c1jQrSNgG&BU$oEYxP~^x5~BuBAv_gu z^k-?@7nnK<562P+It3mC3n=VRK)KOIt9YBi6FEea97cY6R$pCnP0tzHT=xm-*eRRE zlf_YPCk8nDQBLB5#w8%qHhXN?#>hz{wFmQV0Y}e(qX!jtA;zX?)Yn9Ed>nzDwC|J` z1kpmwB}d$cwoN8o=~v7h8D|LN*VS|x+LOx66v&=@GSR^!Z7dJD3(_1G#*;jrI}vtD zDP0J^6BEoY@z9l9^_Va5I&wLCYAiK3nsm!Wi)_q1SlBpwN;yVj4mxEMkICWg%CbGe$6(^UNpLsn{&mUV;`U4jRd4c~_F#luXM^qPHrX4P3b(h6}=K zFl4zXq|OSQ6Sz;O^W-yPr^d;|M@F@;mvMR4ObMOiWu{>8v{tN1IGphU*DTKjH9@Pe zmEmcVB|2@G8rRCG-)wx3Q_v{3abi=((Q&toS;6CwrN2LhMl%MfER`1$`G z#T;!+VcA8wJ;^LDJ0)cETrI@rn3F@1#kR;glQ@zW*7H086mfJ|5l7@Mh4>;@uN#Ua zg!HsutT=6UZBT3mX^YT#}QU_SdatA z)W2yv@5Di6^#ygnP7TFmQu!$(vn9_RnMQ19}J9<+_-Lr99=8rGW^5c2 znVB^960!{>+3)D}&gNKFll?q5Fa>AsPERu?TWbt+$}&L9(Jes4J|fN(dv}pAd!!X0U;@TM35;Qw7)%G0f{%}8P@V&j&*H|!zD+TQI?<<&^fGYl`>;^M42&h9 z40Rsny$E@>LmLtDojG;{5IRUggwJ)ba!F!*6?cZ^yF{&7&pT*pcFv$?DuRu8FUj4Y zmzKQKb+{#+nDBs!QQ8u@U461EC~$@`?h$SFfp*GJbJ#Or!#-mfhtdT^)X2(-GT0=t z$+<&HAxN`ew_{nnpTcHKrx!L?n!<7}tud}I%vvI(0BF-3vv1eL*hE}X$1?^orzM&j zn;J`^=yF)H6V(zxC9A)R+$=E~&W~Pp@oNOoUc#eAX8Az@;LXxqGbOr}gNHgw=z>I?p zJBNP9J`1xg5<$VB8aZY4z__>8DX z>j7UPu@6hZ2zc+B;>A>sQt(?`c<$H2GM8zFYjCWv-B>b>Ogc^%>sSc6&878uF|D&0 zO1YES$8wz+ZbNDa7gUKaXf|JR`Vt44#fbyWGMHnqj{&Ndg^$_k%~X?6|O}Y{I1B5_+7u z6Fl;9otCQ%cHMd&!UmJIj={z84KC818OJuXUilb8H^~rk`fG3#<_smr8yPV(&6ulM zY8mf9(BVB52edNNvZD}|sBjdX-T#hUTHDSF$AmgNdISoQK7fEGdnb8v-X)?7q0o zLs|T1a%he_OU}$JZ}CSn@P#>?2g?OT%XKs(1}-}$h|iUsf6qyG%t=R|Z_m*lys>$N&>*yb4o|<(`aD@4RsYX_nA|k0qc2Wb7oNbKFaQs z`@U7!Z{shE2a0y_4eImbbPm3CGe;TtAJ)NSgW87Ye;mlP;WtJ8lBPhp;A5Q&ECpGX z--GY{;gl>j<6AVb_{MX_QG5$i91hE#6QI@9!*pVdk<7ZOHip+n$)(4&Qx3gwDfV$My&)>=Qi`Xc`=O<4sUcP{**5?7E z77qz%Iv5NBuc@hl+F&5y3x~r&zJebNdIKsL5b;&_!QZ7YX|S2?V^$f+(UcP@~zbNnQcJv?&+~)B%xN6q2~pfC5l*Yu1SC-|+uTKLwZtA4!2i)rXB2A2T5g=fFs!eh*MGtlH) z-g%lQ?>v5e4UR^Z_pLYIB=765zYY=n+9iXxyq8>ZiD=p2-9JBnF6$#NKlkNT44C%v zQ(j*FX{q^JnyvZ2F}tY3d|$qkY%VZMyUXJ4d1bWnKwxDQYc)O(JZ~Mo^BsRHqn%j5 zU@v@L+Ro$9Gqo~0gohiFajbJjGkfgxd1EbY<7>yy8ehFSv9=}F7F%SEs=5&zZ9@}o zj$z{kb(Y5;*^c)Xg~D1PGx zJo|1(%(f!i{ZXZABP-Y?(95`}TEu8(8bV}6aRUA+y5f>;?kqugjx%5iz z+UjUPvcbOs7<*f4Yq1W2S`DQL_C&=gSP0+}NlKL%1|vx%S(>F`Se6kMszF?!$HM3q zc^3{6slx-@`2JB0Tpkbb7k*(i!55L*fSOxUb0K?KjmrxVo(q_m75;A26~%5>dW@jG z61t?O7{uY~sF%l#6cd%wP@d-L)*umzz=TeGH!aJU%q|OB7)BUy&?*QESdpaS3hYL8 zVbL&Jg2~*&D+oVfE;kn+KI6dDGUUdDj!}yGlZS&Z&;6JJdJ!o2g1825kkB#whw5Oq zW0=*Z&@JWp8%sZKAeR~ztuiy}kjWiRk#H(DL4VfbCSYV=A0_$p70T!$JvPNI(^kpToV|1X|dQRKG9|4e#k(d~Y zVx1Y(@sW$=J{NbHKL9I2E4mI2!M*PhZvZWQR)h9(oIfN1o=pUO;cDX0EU`I6fdUGX zacmV6a^J&}9+)i1Qy091One3n%e2?<1i+PpAR+~-pXEBZkqvBlaR{vSG{T*vq+z)7 z`pAV2K(QbqeU-Q($9(B`b`;oCp?hFHg*6_ADy9H@b1VYc3R1omTqExabQZokPM*0X z{6q@A>0K@6$CU;$>EaEK(MjyAa~9+{e&a_iELyrvo&$|WanckW%-ZP@+%3XM6b_5& z42#}jl5x6-7-}a@B<7PRfzPpM?U0QPadaEbByDG9v;#MYqEKh&qPU|K?ZWM)Xn#Jv zZ{@M&gz$?Wx*Wpq5KyFe*FE}ApN~dcTUyo@v|{REefpGlLpaRe4lyqK=&vgcXed5D+{yAG^Q1psJ5Z_ z1Oq?Ek&4a9Ge}kV4sf|CCsv~0|8C|hWNjW|qmANyORGh<;ByUy7i0LS54{WTKOpT7 zWoayf54cpkhDW+aUJPH`+xh(;oPYP5=Qbq=@4Jq5be*%aW15emF;VT*1~C_ye@qfu;tL;d2W8w}!^p2DB4D9BtvV5gD9$Orh*FwB*1qKPibK zC4*CsBx;qE^N*<1&q3!8;)H~AjUZ(TCoQ^u8PtUEiIH_h-MBdlsX16HCgpJ5hmcdB zzeJ@xK7rxWn3d4mA(lu3)0*-43UJnuz_kl(-~ymQqT!$OPkM3Cg*UdzI!-0KtgRF4ap<9ShhFnXSm