From dbf1c7d8dae22b7402e2bcd286d80477e188ab81 Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Tue, 3 Nov 2026 01:42:30 +0000 Subject: [PATCH 1/8] Take the LOD and physics models a single file names into their slots A file holding NAME, NAME_LOD2, NAME_LOD1, NAME_LOD0 and NAME_PHYS uploaded every one of them as a model of its own: the loaders cut the suffixes off, so each became a copy of NAME, and LOD slots filled only from separate files. A high LOD file now keeps its names whole, and the preview moves each suffixed model whose base the file has into that LOD's slot, where the matching by name that separate LOD files use finds it. Those LODs are not generated over; a LOD only some models have is generated instead. Submodels move with their root, a later high file releases what an earlier one filled, and physics taken this way warns of models without one as an explicit physics file does. A suffixed model with no base is named without its suffix, as before. Co-Authored-By: Claude Opus 5.5 --- indra/llprimitive/lldaeloader.cpp | 5 +- indra/newview/gltf/llgltfloader.cpp | 3 +- indra/newview/llmodelpreview.cpp | 228 +++++++++++++++++++++++++++- indra/newview/llmodelpreview.h | 5 + 4 files changed, 237 insertions(+), 4 deletions(-) diff --git a/indra/llprimitive/lldaeloader.cpp b/indra/llprimitive/lldaeloader.cpp index 2bb02c6c13..a14fad1ff7 100644 --- a/indra/llprimitive/lldaeloader.cpp +++ b/indra/llprimitive/lldaeloader.cpp @@ -2131,7 +2131,7 @@ void LLDAELoader::processElement( daeElement* element, bool& badElement, DAE* da if (model->mLabel.empty()) { - label = getLodlessLabel(instance_geo); + label = mLod == LLModel::LOD_HIGH ? getElementLabel(instance_geo) : getLodlessLabel(instance_geo); // Mesh uploader LODs by name llassert(!label.empty()); @@ -2512,7 +2512,8 @@ bool LLDAELoader::loadModelsFromDomMesh(domMesh* mesh, std::vector& mo LLModel* ret = new LLModel(volume_params, 0.f); - std::string model_name = getLodlessLabel(mesh); + // Mesh uploader LODs by name: the high LOD's file keeps its suffixes for the preview to sort out + std::string model_name = mLod == LLModel::LOD_HIGH ? getElementLabel(mesh) : getLodlessLabel(mesh); ret->mLabel = model_name + lod_suffix[mLod]; llassert(!ret->mLabel.empty()); diff --git a/indra/newview/gltf/llgltfloader.cpp b/indra/newview/gltf/llgltfloader.cpp index cb5d97ae9d..304d89b8b4 100644 --- a/indra/newview/gltf/llgltfloader.cpp +++ b/indra/newview/gltf/llgltfloader.cpp @@ -431,7 +431,8 @@ void LLGLTFLoader::processNodeHierarchy(S32 node_idx, std::map // Potentially multiple nodes can reuse the same mesh and Collada used // node name instead of mesh name, so for consistency use node name if // avaliable, node index otherwise. - std::string base_name = getLodlessLabel(node); + // Mesh uploader LODs by name: the high LOD's file keeps its suffixes for the preview to sort out + std::string base_name = mLod == LLModel::LOD_HIGH ? node.mName : getLodlessLabel(node); if (base_name.empty()) { base_name = "node_" + std::to_string(node_idx); diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp index 374821d3e4..fab3e2cb77 100644 --- a/indra/newview/llmodelpreview.cpp +++ b/indra/newview/llmodelpreview.cpp @@ -1007,6 +1007,7 @@ void LLModelPreview::loadModelCallback(S32 loaded_lod) if (loaded_lod == -1) { //populate all LoDs from model loader scene mSimplifiers.clear(); + std::fill(std::begin(mLODFromHighFile), std::end(mLODFromHighFile), false); // Mesh uploader LODs by name mBaseModel.clear(); mBaseScene.clear(); @@ -1113,6 +1114,18 @@ void LLModelPreview::loadModelCallback(S32 loaded_lod) { //only replace given LoD mModel[loaded_lod] = mModelLoader->mModelList; mScene[loaded_lod] = mModelLoader->mScene; + // Mesh uploader LODs by name: a file of its own replaces what the high file gave + if (loaded_lod != LLModel::LOD_HIGH) + { + mLODFromHighFile[loaded_lod] = false; + } + // + // Mesh uploader LODs by name + if (loaded_lod == LLModel::LOD_HIGH) + { + splitSuffixedModels(mModelLoader->mFilename); + } + // // Duplicate the model if it is an internal bounding box model if (loaded_lod == LLModel::LOD_PHYSICS && @@ -1839,6 +1852,216 @@ void LLModelPreview::genMeshOptimizerLODs(S32 which_lod, S32 meshopt_mode, U32 d << ", failures: " << meshes_fail_count << LL_ENDL; } +// Mesh uploader LODs by name +void LLModelPreview::splitSuffixedModels(const std::string& filename) +{ + bool was_from_file[LLModel::NUM_LODS]; + std::copy(std::begin(mLODFromHighFile), std::end(mLODFromHighFile), was_from_file); + for (bool& from_file : mLODFromHighFile) + { + from_file = false; + } + // A submodel is named after its root with a letter added, after any suffix: NAME_LOD2b. + auto core_of = [](const LLModel* model) -> std::string + { + return model->mSubmodelID > 0 && !model->mLabel.empty() ? model->mLabel.substr(0, model->mLabel.size() - 1) : model->mLabel; + }; + auto letter_of = [](const LLModel* model) -> std::string + { + return model->mSubmodelID > 0 && !model->mLabel.empty() ? model->mLabel.substr(model->mLabel.size() - 1) : std::string(); + }; + auto suffix_lod = [](const std::string& label) -> S32 + { + for (S32 lod : { (S32)LLModel::LOD_IMPOSTOR, (S32)LLModel::LOD_LOW, (S32)LLModel::LOD_MEDIUM, (S32)LLModel::LOD_PHYSICS }) + { + const std::string suffix = getLodSuffix(lod); + if (label.size() > suffix.size() && label.compare(label.size() - suffix.size(), suffix.size(), suffix) == 0) + { + return lod; + } + } + return -1; + }; + + const bool legacy = gSavedSettings.getBOOL("ImporterLegacyMatching"); + // Only a suffixed model whose base the file also has is a LOD; any other is a model of its own. + std::set bases; + for (const LLPointer& model : mModel[LLModel::LOD_HIGH]) + { + if (model && !model->mSubmodelID && suffix_lod(model->mLabel) < 0) + { + bases.insert(model->mLabel); + } + } + auto lod_of = [&](const LLModel* model) -> S32 + { + if (!model) + { + return -1; + } + const std::string core = core_of(model); + const S32 lod = suffix_lod(core); + return lod >= 0 && bases.count(stripSuffix(core)) && !legacy ? lod : -1; + }; + + // LODs an earlier file filled and this one does not are generated again. + LLFloaterModelPreview* fmp = LLFloaterModelPreview::sInstance; + auto release = [&](S32 lod) + { + mModel[lod].clear(); + mScene[lod].clear(); + mLODFile[lod].clear(); + mVertexBuffer[lod].clear(); + if (fmp && lod != LLModel::LOD_PHYSICS) + { + fmp->mLODMode[lod] = MESH_OPTIMIZER_AUTO; + if (LLComboBox* lod_combo = fmp->findChild("lod_source_" + lod_name[lod])) + { + lod_combo->setCurrentByIndex(MESH_OPTIMIZER_AUTO); + } + fmp->childSetValue("lod_file_" + lod_name[lod], ""); + } + else if (fmp) + { + fmp->childSetValue("physics_file", ""); + } + }; + + // A suffixed model with no base is named as the loader always named it, without its suffix. + for (auto& scene_pair : mScene[LLModel::LOD_HIGH]) + { + for (LLModelInstance& instance : scene_pair.second) + { + LLModel* model = instance.mModel; + if (model && suffix_lod(core_of(model)) >= 0 && lod_of(model) < 0) + { + instance.mLabel = stripSuffix(instance.mLabel); + model->mLabel = stripSuffix(core_of(model)) + letter_of(model); + } + } + } + + // Each model's LOD is settled once, before any is renamed. + std::map moved; + for (const LLPointer& model : mModel[LLModel::LOD_HIGH]) + { + const S32 lod = lod_of(model); + if (lod >= 0) + { + moved[model.get()] = lod; + } + } + auto moved_to = [&](const LLModel* model) -> S32 + { + auto it = moved.find(model); + return it != moved.end() ? it->second : -1; + }; + + bool split[LLModel::NUM_LODS] = {}; + for (const LLPointer& model : mModel[LLModel::LOD_HIGH]) + { + const S32 lod = moved_to(model); + if (lod >= 0 && !split[lod]) + { + split[lod] = true; + mModel[lod].clear(); + mScene[lod].clear(); + } + } + LLModelLoader::model_list kept; + for (const LLPointer& model : mModel[LLModel::LOD_HIGH]) + { + const S32 lod = moved_to(model); + if (lod < 0) + { + kept.push_back(model); + } + else + { + // Named as a separate LOD file would name it, so the matching finds a submodel too. + model->mLabel = stripSuffix(core_of(model)) + letter_of(model) + getLodSuffix(lod); + mModel[lod].push_back(model); + } + } + for (S32 lod = 0; lod < LLModel::NUM_LODS; ++lod) + { + if (was_from_file[lod] && !split[lod]) + { + release(lod); + } + } + if (kept.size() == mModel[LLModel::LOD_HIGH].size()) + { + return; + } + mModel[LLModel::LOD_HIGH] = kept; + + for (auto scene_it = mScene[LLModel::LOD_HIGH].begin(); scene_it != mScene[LLModel::LOD_HIGH].end();) + { + LLModelLoader::model_instance_list& list = scene_it->second; + for (auto it = list.begin(); it != list.end();) + { + const S32 lod = moved_to(it->mModel); + if (lod < 0) + { + ++it; + continue; + } + mScene[lod][scene_it->first].push_back(*it); + it = list.erase(it); + } + scene_it = list.empty() ? mScene[LLModel::LOD_HIGH].erase(scene_it) : std::next(scene_it); + } + + if (split[LLModel::LOD_PHYSICS]) + { + // As an explicit physics file does: the parts with no _PHYS are logged and may use a default shape. + mPhysicsSearchLOD = LLModel::LOD_PHYSICS; + LLMatrix4 ignored_transform; + LLModel* default_shape = nullptr; + FindModel(mScene[LLModel::LOD_PHYSICS], DEFAULT_PHYSICS_MESH_NAME + getLodSuffix(LLModel::LOD_PHYSICS), default_shape, ignored_transform); + mDefaultPhysicsShapeP = default_shape; + mWarnOfUnmatchedPhyicsMeshes = true; + } + + for (S32 lod = 0; lod < LLModel::NUM_LODS; ++lod) + { + if (!split[lod]) + { + continue; + } + if (lod != LLModel::LOD_PHYSICS && countRootModels(mModel[lod]) != countRootModels(kept)) + { + // A LOD needs every model; the file's partial set is dropped and the LOD generated. + release(lod); + std::ostringstream out; + out << "Only some models have a " << getLodSuffix(lod) << " model in the file; generating that LOD instead"; + LLFloaterModelPreview::addStringToLog(out, true); + continue; + } + mLODFromHighFile[lod] = true; + mLODFile[lod] = filename; + mVertexBuffer[lod].clear(); + if (fmp) + { + fmp->setCtrlLoadFromFile(lod); + if (lod == LLModel::LOD_PHYSICS) + { + fmp->childSetValue("physics_file", filename); + } + else + { + fmp->mLODMode[lod] = LOD_FROM_FILE; + fmp->childSetValue("lod_file_" + lod_name[lod], filename); + } + } + std::ostringstream out; + out << "Took " << mModel[lod].size() << " model(s) named " << getLodSuffix(lod) << " from the file for that slot"; + LLFloaterModelPreview::addStringToLog(out, false); + } +} +// + void LLModelPreview::updateStatusMessages() { // bit mask values for physics errors. used to prevent overwrite of single line status @@ -2699,7 +2922,10 @@ void LLModelPreview::update() for (S32 lod = LLModel::LOD_HIGH; lod >= 0; --lod) { // adding all lods into query for generation - mLodsQuery.push_back(lod); + if (!mLODFromHighFile[lod]) // Mesh uploader LODs by name: the file gave this one + { + mLodsQuery.push_back(lod); + } } if (subscribe_for_generation) diff --git a/indra/newview/llmodelpreview.h b/indra/newview/llmodelpreview.h index b62030a349..14c46d97f6 100644 --- a/indra/newview/llmodelpreview.h +++ b/indra/newview/llmodelpreview.h @@ -172,6 +172,10 @@ class LLModelPreview : public LLViewerDynamicTexture, public LLMutex, public LLH void setHasPivot(bool val) { mHasPivot = val; } void setModelPivot(const LLVector3& pivot) { mModelPivot = pivot; } + // Mesh uploader LODs by name: a file's NAME_LOD0-2 and NAME_PHYS models fill those slots of NAME + void splitSuffixedModels(const std::string& filename); + // + //Is a rig valid so that it can be used as a criteria for allowing for uploading of joint positions //Accessors for joint position upload friendly rigs const bool isRigValidForJointPositionUpload(void) const { return mRigValidJointUpload; } @@ -271,6 +275,7 @@ class LLModelPreview : public LLViewerDynamicTexture, public LLMutex, public LLH bool mResetJoints; bool mModelNoErrors; bool mLookUpLodFiles; + bool mLODFromHighFile[LLModel::NUM_LODS]{}; // Mesh uploader LODs by name std::map mViewOption; From e9201bdaa525b94abffb322280a21d1ecd87c781 Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Tue, 3 Nov 2026 02:01:38 +0000 Subject: [PATCH 2/8] Keep the physics and default shape a high file's LODs feed Physics copied from a LOD the high file then replaced kept the old file's models, physics copied from a LOD no longer counted as the high file's, and the default physics shape was cleared by every rebuild before parts without a _PHYS could use it. A LOD set whose submodels differ from the high LOD's is now generated rather than kept. Co-Authored-By: Claude Opus 5.5 --- indra/newview/llmodelpreview.cpp | 36 +++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp index fab3e2cb77..188d678d63 100644 --- a/indra/newview/llmodelpreview.cpp +++ b/indra/newview/llmodelpreview.cpp @@ -287,6 +287,15 @@ void LLModelPreview::rebuildUploadData() assert_main_thread(); mDefaultPhysicsShapeP = NULL; + // Mesh uploader LODs by name: physics from the high file names its default shape as a physics file does + if (mLODFromHighFile[LLModel::LOD_PHYSICS]) + { + LLMatrix4 ignored_transform; + LLModel* default_shape = nullptr; + FindModel(mScene[LLModel::LOD_PHYSICS], DEFAULT_PHYSICS_MESH_NAME + getLodSuffix(LLModel::LOD_PHYSICS), default_shape, ignored_transform); + mDefaultPhysicsShapeP = default_shape; + } + // mUploadData.clear(); mTextureSet.clear(); @@ -885,6 +894,7 @@ void LLModelPreview::setPhysicsFromLOD(S32 lod) if (lod >= 0 && lod <= 3) { mPhysicsSearchLOD = lod; + mLODFromHighFile[LLModel::LOD_PHYSICS] = false; // Mesh uploader LODs by name mModel[LLModel::LOD_PHYSICS] = mModel[lod]; mScene[LLModel::LOD_PHYSICS] = mScene[lod]; mLODFile[LLModel::LOD_PHYSICS].clear(); @@ -1990,8 +2000,20 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) release(lod); } } + // Physics copied from a LOD follows that LOD when this file replaces it. + const S32 physics_from = mPhysicsSearchLOD; + auto follow_physics = [&]() + { + if (physics_from >= LLModel::LOD_IMPOSTOR && physics_from <= LLModel::LOD_HIGH && (split[physics_from] || was_from_file[physics_from])) + { + mModel[LLModel::LOD_PHYSICS] = mModel[physics_from]; + mScene[LLModel::LOD_PHYSICS] = mScene[physics_from]; + mVertexBuffer[LLModel::LOD_PHYSICS].clear(); + } + }; if (kept.size() == mModel[LLModel::LOD_HIGH].size()) { + follow_physics(); return; } mModel[LLModel::LOD_HIGH] = kept; @@ -2015,12 +2037,8 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) if (split[LLModel::LOD_PHYSICS]) { - // As an explicit physics file does: the parts with no _PHYS are logged and may use a default shape. + // As an explicit physics file does: the parts with no _PHYS are logged, and may use a default shape. mPhysicsSearchLOD = LLModel::LOD_PHYSICS; - LLMatrix4 ignored_transform; - LLModel* default_shape = nullptr; - FindModel(mScene[LLModel::LOD_PHYSICS], DEFAULT_PHYSICS_MESH_NAME + getLodSuffix(LLModel::LOD_PHYSICS), default_shape, ignored_transform); - mDefaultPhysicsShapeP = default_shape; mWarnOfUnmatchedPhyicsMeshes = true; } @@ -2030,9 +2048,9 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) { continue; } - if (lod != LLModel::LOD_PHYSICS && countRootModels(mModel[lod]) != countRootModels(kept)) + if (lod != LLModel::LOD_PHYSICS && mModel[lod].size() != kept.size()) { - // A LOD needs every model; the file's partial set is dropped and the LOD generated. + // A LOD needs every model and submodel; the file's partial set is dropped and the LOD generated. release(lod); std::ostringstream out; out << "Only some models have a " << getLodSuffix(lod) << " model in the file; generating that LOD instead"; @@ -2059,6 +2077,10 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) out << "Took " << mModel[lod].size() << " model(s) named " << getLodSuffix(lod) << " from the file for that slot"; LLFloaterModelPreview::addStringToLog(out, false); } + if (!split[LLModel::LOD_PHYSICS]) + { + follow_physics(); + } } // From 6ecbd443532380a02f26c97b28d59abf84da887d Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Tue, 3 Nov 2026 02:16:55 +0000 Subject: [PATCH 3/8] Guide exporting a multi-object file with its own LODs How to name and lay out parts and their _LOD and _PHYS objects in Blender for a single-file upload, with the glTF export settings it needs. Co-Authored-By: Claude Opus 5.5 --- doc/mesh/images/blender-gltf-export.png | Bin 0 -> 56665 bytes doc/mesh/images/blender-outliner.png | Bin 0 -> 118124 bytes doc/mesh/multi-object-single-file.md | 81 ++++++++++++++++++++++++ 3 files changed, 81 insertions(+) create mode 100644 doc/mesh/images/blender-gltf-export.png create mode 100644 doc/mesh/images/blender-outliner.png create mode 100644 doc/mesh/multi-object-single-file.md diff --git a/doc/mesh/images/blender-gltf-export.png b/doc/mesh/images/blender-gltf-export.png new file mode 100644 index 0000000000000000000000000000000000000000..60fdb53aec6571a6b9d685ba971ee7f6f388db61 GIT binary patch literal 56665 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

4v*?~WLj8#%Mt-Lsp<#jS5-ymmp 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�W5_XpaX;A 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 literal 0 HcmV?d00001 diff --git a/doc/mesh/images/blender-outliner.png b/doc/mesh/images/blender-outliner.png new file mode 100644 index 0000000000000000000000000000000000000000..7a57cea153cde8a908aaff43b41c02e0d8384620 GIT binary patch literal 118124 zcmcG$2Rzn&-#4x$LMmk@Drp(nql5~P6_xBVvv)RyCL*$DDYFPkc9c!XCZz1Gva+7{ zuk*T}`?{X%y6@+D{?GG2UoWrosE*_C8{hBe^Io6d17$@Ss%?zhNJvPiWY3>dAtBk2 zPeQWkDH$pL=9crdU-;h!I~AETBdrgJ)X>(cJ%Nh`(E_n zrlfW0Pq$M;`|Cvb>}Ed|O*_X$*ga~=vomIRdN$CIAx7~YM_)nio5Vy?8XB58)Be*Y z;|mF#^M_@3G5V9r2DM1d-M3rpZ*E)nw8#{n6FK}q;xL&PtGz)`K|ukTy%#IlnR~4_ z;Wv&yz@+mh4M(^*E?WXpPbm@izoP*YQr zoRZSSO^bK=Y>i}-4Ude}Gcl2sl$2bR81C=C%_jRKENnbOFuv)=>)hPRx;lC77OvE^ zw4+CkNF+6<`0l3uX0~hUUHf!EqsPa*^^teo4X=2HGn3$kq(7d?YR!)S417gp6gh!o;(>vr{nZgDx*7GUwjNFeO^J~a)xve+nF`oNbwJ5CoCAJ>M42Bqj_=Bt_>xdLywg@kgAO2SfB(??p< z=yvYhxwyC(7#sVkx5)K@udixQ@XMDkNdq>-pHfU=IjSkQdZy>g7fO$kxUpv*Ns2M| z@87@nYov+vf|HYQe}BKf*kt8nL_dqxKAFZvA67sj)Xl|8JvgT5>PPW?D{z_BE-rl}Q^vv>Da}ssKsh^a5Ms;5+Sv=W< zguq+`D&Bc9(vI-$m(qNvq8< zJo**Mj?M9cCWbJ_cWC0toN{iQio2|`dcpklAZqAX#@qKFQ)5_9M=kNYPjidH84cKkc?(eft$K>P&T|Ba&4;@< z1aok5j`kLvJbLu#UQzq|@7@WYI(5q0#^$1$g`Gn^2UU!n7c0HYy4~}2XYAr{N}j)I zrVD>=XY`j|T55Zx>F;rG#H?AOeTTnv^T_AemWaJMonL&&X#&|E=&p{b*-w2@*Oq!G zBQGx>DJH4u@(3IMfb6bAhYp<&IwvW)p)!C)Carbj*YDpyd@c1Rr=UpiTwm+x?A*|p zrp9gPKHXc?bc0_mu`NSaoRpHjabR9$@~nXOR%)ZK?{8yQjT9Y|9C3R2>Q!r+Mh|tm zqK%DBfEQoycy`v$CSTm6s>NU9w^utoC)`n}Ap<2!#%^)PXBbDNr)qWV>!HnOm=aOo6QHHfdvU%a?; z!-fqwv8T|p@-5U` z6>c%H7~+pADqdk>VPhfWXDa(AC+o%6mz2DJe);@4$aCd8iyxyvO}yoWm6;FJRaxeZ zZtCs!3@j`Sp`4oUT;`5N30fQw5D3Ah3dEK*;tn?nkXTsmTaRtm_0%>Iy(IovU1rrs z|I(%16m(pdHrC=oJT{EL3hj&U?Mbd38pCFdeE(j;TlDu-xtYr)i=O-t?85$m0fU*? z^Fcld2?sNZ<{33}Ed|Ed+QI?@-(wFQJ$4MWKW4)w(rbo>cYJ**jEszajkWq>sqYdJ z62hXxJHBB7;gA}$jg{)^>P`p=ZH>>$QmG~#7yZ<>8XFy5hq^$LoSe)mBt&-$MbFSx za^(K!=H{jDzO{;i>0;loFuKstP`6)AGAqBDl~xwN2aJuqN{r)|4f^=vLYUKVjH45_ z2=RZ)d|Ljb`b|B$Yd`3Eorjr;9|QIDg>y#wN=Av#pU-%%FL-ijy;CMXav_w1r(>Zf z)yy;%`#z)a$F{`8L@L4H9^dv~$@$j(8~faTQn7fh@Su*_kF}6HIyy=R?5j_T^LXg* zPlfl6)khlOq;Xwdym;|EG12z-FOy@(kB9iaDl9zpi1}niQ-X|$?Eu+2Zoe2dfXq8GL>&yYjoe zM9}H0*+fUC|J%(1iEFv8OlhtMREzk385n6_GYPo$`RaT3mD$S9B3Gfz%uF0lijY}5 zPJrkZSa3!IRgcX(v+e|luZ7!uugEm-F5QmfZ3@~7JN7X+ zl%|V$?RB9Gw4E%<6UF;oa{Lnf{7?bb*474whttOCZ@j#B@;%Gi%+|FZVI}m1$#;2Q zh&s3*@N4bJWYQ=xs%O0NN~1i=s<;|IofDZYlI>Tim^DwdbW|OwC#Rx1Bq|!Y=lB)t zp*n_y-h_1Rf^Yr(PbtZtgoH?`sO)O#)ts51zuRS0{rou_;KXQW_TizSp-XCNs;a7I zZ{8G?l9IBY?u}Vro%XD;DJm+O{qf^WLX)zNj-sC40o+Q`xx&IiYdgE|brF1|8EFT1 z9Zaw{w^-_F>nLtHm_Xcxq4A6o%OBajS7Q>TrA>ZHEVP%bwX*I?ySFv1Ir4fLQ^8ExO+dEHT9Kn|xlSvZq=?X~UAcl)=u&7i`j;*y@_8U^3A` z^~!T~uDx3zIIX!cbIVyrrjcZ-n|4EW*FQyz)aw+IE!-uuXV&}+1~|ks30Z1oFMK5y zYdYEQF8)RlVPWNq7n?@x$tKG`f8Iqw;Y)hY&t->hu=PD}?@hSIyZ7u#@%6d)VhRn>TO1ie<|XK&i;g z&Q5s!T3LHD^$1Yl5e|-z<>fDQ7Pj~I8C%!wPKl-uyC?5yHuQOO;fpPr?;tq6EL(s(YO2KZO>jqCi0hiPfYZ{NPn z>EZL{*)uOxQd?Ww7AfNM$^qDUw6wIBE?q*=x3${XgRU(N1l4GobLsNs6yGQVBcr>x zteu^mY;0`FzFY7+N^fOnXaBI%(a~AnDypWY<}yD~jYhAzcOaR{UOV5uw6!&)HjLZ1 zjyRATpT(%{H*MYi{N+nO{AL1LIM@WEZ7tSYd3eXgv7l6UbaYrxbnrL`;L9bIlQ(G> zi2Lao8n&j&E51riO)Xzoz?p1*+OsJJhs^p#X|mUT$yay9>*Y%h?7_BgHg#i*OG_IX zQ&bOo{2o2*!1KMr|NC6KZe>%`W8msF?6;qvPENo1?d15Oy7~c%HPM9ub!9JH_}=5# zH(0X1nvtJ+`}OM+SJJg)4Gh@O^sjhW*7qq3736c&0+VGMRPRFF?MZbf_hLO|KIPnO z$gHcYOY+vD+oJ$`m#uZCHAD_*|tMi)0i{B`SKFF>VD~}C_ zP2qF*F0bR17A?0<-RtWggaHzj#O8KCefqR;L;fcDvEfheEk^(>Fi8%YRdA zu6S(it?v5ocC6@~3=HZSd6$a(e=qv~b+Fku*j|@$PN4F54y&TM(ENuN+g_@FxWHZX zaj-UQsWro+Jh#uo7x@3fU8;jzT#D6Gf|g&Z5*4E81*p62-o1NA!k_1#*^)5~IDS}Im>#Xb;j)x|<>l$LDJ!#wE=+T?Ov~Na zR{M+=1R8U;0LJ~E8?OWwaavzph&biUD8E-W10 z*r?1V`^{gd_geYGJ!9HTCyb)(hCkW#mu(TW=sMS)uATYjjR7v5e6;Z6Cr_TZWEjs+ zbZWh`zCAXE{cd`KkMC>{n|B=3$#fT82T!J)4Qco|X$DntuK(IBu7GIjz0-}%!q&IA zix<6e%-U^N7H#m&A3w#M>@0RaY1|My=uLfEIr2Q*L5^G{@u~IzCbKN7> z?T2hJm=I}pc)o+bMZ()_r5jP|7Kg>xtHF54sHu%dKNA>VfS))? z)hkyj=yct#&)Df#T1;4N>L_sJ?#{IujxdhpS&WJl^-%RJK$-pUvS+!em1@J4%a^6F zOS<1$sH&L+uFdGSJaRsImxL&}kqJ{W?Nhfum6zYqDROxn6H`Ao-aam7()lERL(B$1 z7GQZgZ&3>D6ovfZ+m8gp6Ny5FVz!HhrnQ_X%h$dZZx%J>E4X!w1U$DzN&$fG;GsiO z2DZe%UYyeWQ`>!9pLR;9p~dLxqHgZkckI!lM>P!^ujc!wb%;Vqrm*vGyf-oL2Ua+sZ2UL;%WUa3TdBybDK+CJg&%fAyrK%B|kqhQ@`@t zz`%2^U7IDH;*(1zm_C0dQBJZf31U0ioogV@s8Gwa$w4&6<+3*r_0@OQ`#;>HR?`{o z|8TGK_4Q4A_UsuOquO=*PiNYW&-Ln{LzK*- zyG^~VdivIhZ}eDodBJ^CfBDR2(VZhWU}2E4q^7zQE_wiT)WXP>&l!N&XYXwvr1o6g zM8~Z&5VyW^IE-62(RE?!)cVR#A0M9?0IHDnwS|&;(gLUy{Gz@OBNdZW$AsoZ#g`}e zz*ghut-1koPdZMq9X$Zi#Yvj~2ZT^BE2tl_~G zxc}(U(67;Eq7W}kJ9}R(KFnC|Ju*R^(f%<@B3K5JjS2)9{ON*?0woM?dFWv%$yo;?t`DrnUdgs zslT~#G5Dyf_UohfQy+tFNaTqk!a+LUG37$B!RZ3!Qj~8xkM?KHgIG%-OT*`SwSFip+cR_uMj$ za}Om-!vmVb!1Q2%mm{|?V{Z*CSh?oioMha(eec(Lp}v8}r)LWnzxl2#l&l-#Yzd(O z97K@e7L#4y#vbC}UaDu0Z7IN67&XM!&rf!1u53j=;&EHFHcW|%d&PO@-aQ&-=6duR zbsSJ{Z!hU!bE1O&?_Z-evc#>X<?Z_xxm<`Ejzc)oi`;ZA7QGwB*8i;84%<0VwYu zAMZBjjkm&QYs#%$Ttu@t_^y|22Ih61?=*hQ1~gA;pk7f|=O-jVVz?!oF~5-#I}>3z6w`w5#%3x^@`Q! zmjJ))o+X-~SOjw?7R{jxq1JO_mt)=M)xAXlI$of11GGq3%!s)E=Ev0p|J;Ggn|e8I z=Eo1c_qR4EpX56Wsfnl%Vq!hl1b-yf{90OE{5m#PQyqL5f?t}W)X>OC6*|F#2M=y{ z?YF%-(NT)ek9>YX0gClfw}dF@e0m?rio__qtV;krY^T16;0k?2IgwRRC~t2Mqhb=I zr?hL0hS;F%te1HqjO%>RN8J59hjChhWkczjob+dt1sI+w-O7Rs)X?hg*}8gsTrB*v z$^vKO1~zu~W2IAcC5v0Kjq1N81e`XV~02Npd9Pk1?x^8TI51ge%P=@W$ zp$&ndp?70qVzNqbEvOjz?}JmK3y9pDpf4^iCe2VtYh_$1q20YZFd~9n0$&V0RwC38 z?T%6GE-TqWTb5z%NLSAB(a}*k_T1|qNVT-IS}sS~&rhfens-P*5{8}#4gM~uVjrzUOIr-~Ab+A^6hjyN*$(X^7RQbM{{tx8jOc6Dk#Xc;!kV_OSw%Y6f$&*PVn$N#mXag5yY}6+kF22TiIHLqlhN{?z|?e<#XmgFXGW9ac+ERb5E=lt$1Fwu&B?CR>7?a-1V0^b z&+v@*-kU>x3sj?jdOCnj){jLz7SJd*GLrE{N>CR~O=ac1ePS-w!0^~*wY9$3Za1gC zV4pntal}HCZ2R`aXwHHs2xFZwFfd>rWdTGbPyP;k{P;FBrZ6t;jbA}1Acww2!%b9-kpp%1u52_m z@4U5P6QGR{{jSN5OnqSyk)1nsC|ijutfq5;&8!JSgMx1{7rAkcPCuL5eQ9aQ4KmXT zdaW^prIjhi68)b;^{9&}X@aIGwFJb4`n`jJA;rK-G)A%d$ANQtB}Q?cVxp)dU8!E*TAA z3=RuB%=_mp`e5Awo6oCI(9J30(>_}t-pFs^6Rf(!Qxwf3z{BNsdE7vcdoc4jSD0&` z>N${E{UEmLc-`2Sk?F}I&qlMzKje!rG7pf*3+%$Hhi?>t)8({Tp-0boJ>=nMRPd$K zkBEraxo1x~_F`wQ6$_Z1{@hqAAu*&ePTsB>xl6@VQR=<5HElXCY^!r)U%TQ1O@D2P zkvN*9=7)=wO-%l6djN}+A);ny^98dj8~~=b?8$!|9WAe=wO7}3RRB~&+E5Xl^@VDZ z;#jMH&8JU8cj$C(*weqxm$;#)SB9cOP=@5hAwp7YYH9+dlH}Xeo5lys^~*_Ah1N8*Vm;zOR#;8)%*H$R`6@K8Q#m{$ael|RJ^|CO6B=?4*kix|*9Hecm@SEKG6+av4X)ek^qp#cs;3sp!dR=xd9$vzEs{>ZK;puZ zlaD~>SX%knup#`!^^Lk7ONVgh&jhiZUSF|$G5Q(?$iiU3At?6fpV>edgn)o@EMonY z1h;qZDW^bCIiu|QyY}G{xfb1mfI6z&9a~6Ad98X+{ZT(Wl@s53*)h1NYd6Ncv@{RA zkd`HK3qpco>?v8m6K_%~l{UwzFAQjTYw-I>W>AhUf<9SWzwT|j3r3mKuA>iXeNINE z8P3ZK^9nx(f>IMdb+KYhV9bWA*zV~3*MAID*T|kSs>34ecn=1C74Q&%qNW&%7yVFu zRFc-Iq@<*SwY)&VA0b0Q9$}T;g+f-9dKm%Np=e^G_7I61e zkDV#9G-PU*KSL;&=2T^ty!U|5JE9n0ic;TjG-%6u58}CdB?te zpKy}uAX?xJhTlFu82do(H52GMU9^y#{LcOQ)ZpM9Hd$yk{#aH=Wp6>V2x0@7D8)OH zddtPs7MN4w)ZYr$PMo;?sOws;VJ+>@rRkfp~_2>1#)?`2YOQ)GgQ)!xyf>k+kRV`3HgLh}br^56SzB>lSy>@~eQYf3tB;^q_a8pg z>&!9)CAtNDDb10a?95i{#hL4{r(~3scR)bgf8+=m(h`KO3Vi|+7dt!qT~KSLJp=rV zRJg9^&Yk1Wd*cK36mFdX)EG(zULS%Qfq7?R8QrC3QG^~7rLdXtbN@!>oKh}P(fn4) zN2FQ#`Rm;joOMI!uV(=ovA*@!R+j4G#N#rGe?P>o#eT$IgEs!Nj;{fG2fwxwt|832 zWXBhwetY&6r@OvBJ?_Gd}L$m~h8US7{s;HE~ zvaH9BZzWgRRxv z$>Yh&%7V^mnxK#{=3#%JQQ&*X38gbd7LRY)F_gR6vt>)whdSzG)y<_}gZrBJFE@6~ZQuSoEJuWwwyq*zC2dP{`f; zd0Jl*n?>nnZwCrHdXw zTNZI>enDnGdE}50ckOsKxl=@BgJna$2IF3c6LmeL5?MuBfI z^2qRzyAr0WURu(udY-d*VYrYL{tNSns6n&g)vMtym(x;Qmviq^W+lEAQ6XJVZkW-X zH!0c@W3H_9&eh}Xy!;IL*S^uCZgG$0&Rjn&<)XTOgK&iAjID&yiuoi}8--V6rhSz} zdnnlEB`aPv{fNOmHV%`QRP++Br*dAQJ6`wW;k*2)Ln_a7O|xRJ?X~m2Yh1Xx#6BsP z-5I&rZ(+VtOaB=pwx`}F;GL=~SPVgPv)8S-_-l4{znGYIQGRQettXHUnqd@#449)y zT$Vu}nw&T?3{^)*{n~Yl&1Tm2-dbJfQe_Sw=FKG!E^cl*25q~b;9z3Afs(MFIH9clg(Gc1UjAXtktwFek%OM) z?wd{=<@z9cv^kk|>j|fsYh1d;@~|CvgoM=S`UKQNi57;%`4xct8Cn^n6dCQw+b!i? zp&!da{X4tLyRH<;?eN+D?5vT!MIN{5)-4JO3WlK5uWBahvMH*Zf0Iurvh8oBS3JHy zDl$;OP}s6>l^W~HJ1gqn7*UxbAu+>Tfe#CJJ0DS=r}+5u7cX+g&norr>)l)E5K}{% zICJAjLhuGV8k$FjOyb6&SlV2Vn{rf8gpep9fDWgJMEQY(TYbm#c2iC0aHk!2%Q{IL zk$2UAUOeF)Iy;;Pf_(!{!!R(OiQLP~+?i*07_CwHWY7W-&D9*!J%kpZHrONK^DDc>42?^@>6s$c$0XpseyRpdCkbR4xtOj=R9*aFuc30Q!#H=U6myd z`%~l96?Folor~vFxps{eEzE6cFzi*NZng6?!<)0-jp`al#_eg1Zrq!%Fq!V8bvR7V ze`5z&DIw&*8gz4ahlp~yCP#x4FtBDCb}Ed?jmnoUeT1nNXcz&t7%1b3%Wng9Bci!# z=Rd(Y(*PC(?mvt38wMyNO0Y#2Ki>B`Cua~BttzVy=#FUJfacHMymg=|w`o%e z)yN&?JWj-la0GA4>G)t4zQakM!ATR65mpqNh={tj`R?qAjW4;A5}3OvI?rtiI#=4r z`jUqCM1!UJ{0YdA$jNoQvpI;a`w?pqtnT>Wn8eF9?KmFY5hyx-cyrgqPWw8Hpe^_>NceY!4m3^77j3xAK=7Idbmz1w$@s_)&(R z-{rnn`~I(A*EJ-lX}8RM51>=}>0DztZ;)ss8Re@O>Ri|R;6h$5$>JclXEhW!_$7=@ z5n4M$eYP`9k`_gjiH9eDZLka*pzcM+#RV9dxP`|LMHD1vo)&vO9fwc@i>g41^(gHZme~X zpMSS{XmvwF5{YM0WVW*D2njSg*3+kZ zS-S}pL{U)@(7UC!H}bc(cA`=cTd&8m1@S}3On^|>t^NP2ARQ}Pz?%yZd z2dB%y0qt0Y*_Q0}+g@Ewxd*Y*?ICdoM-5ckihR~>dA_K*qT>xSSb0X*aXz`HBB(9u zofJaVGr>&u#%=(8ORFxw6s~^7bJ^gl#cm=9F%AIXL2}u&b?d#Gqs9Bl&MaS~-q5zc zfbPxQT9=AVABk-x6|3hZvcxXEy&jL$)OL2=f1BmS=iGUzTJ)HMK)9Lw$n>{IuOb*a z2Mt$FirxA0&=zPNHuYx2&JYiKxVE}X!^l`u?n`$R@rjS;{2~vKQPVgqcx{hpB0qBh zjPeMb6U3mpNP!F0BPd)ve0-`_2gu4c$;UK3aJ4Tx*icbHig06eObkrLf$WCU`k)IP zU0n}Z50f$90w#&C{Pamtop8tCn4R*0G&3}uYwq{{?FlG&AhF3hoP-6&IW#fxawR$} zteuB1ABJg)8i8s8lCgC6?cS9;tYXphtQWY#%UX?q1DewrITfUNClbT>64@*6WSGXt zPrNvFvwTpnyHg#iO#)P#YtIj>heqxFdS>$RjeIv{%JHEa_JNyDw4TSSBcCA$bzT1V zgqtr6J4#-N8b~k1J2?k#U3H&)@~*XG%Y!wMo1(Aod+tRTQ5(`pTM!#Lt_0TqIcw_^ z&?ydzh(w_16G;lFy?!->Kq808MoSt~2+T$b?!sH?w?z)5P(_n~H*jdam3RJhCe-i{ z8HX47Ap>6g!V2ouw zLP0G@Cps@DN3iFlSeJ*0e;wVx^T#Ml*=}Dk92^inq_Q+rvw=5fPqZxene_Uu1Fi-1 z2391Gi=tC%#~O@w+ZDZk$2vSP@DbcM0=i{UyPla@EnJ9>EJF$a{wI>^X9;W2W%-8L z!Z&&^R(|;)wz9G^5Up=zcPI!`3`dTpw}1a_P-IGG+Pne%j-rhmWgSZ=rL|7Ms5;DVuNSU`a(lj)Im3S(&3YJR*Vz za?%{v)B~*SSf_8~kQzEO^|zt{pip^3E#bBPDuE`}5=H-lIIY0&@G4?CKvqMt34|04 z7R8+i2(TVKDqAF*a8oxwxb==p&!@3ddpR^>>Ipw-Xs80_A>^Ml$GMQmNK@sKqlAX3 zriLP2zVvgrwR{fL53cw2wsdXH=>>=xWgk8eKo|XV0B$Ox4VmSYCl23wQZULIsD5&>UEt?`C}j@je6$h2-fbtolXwuLWmEbl)P}N2;~K|&ChgK zOBgiEl{vjbX}%+a@&=7Du6Dy2xg1eoS_h#~)zrwrD|!gF56CxWYH`M0Z*X`xI54pB z>omOj3V?cChh1>gkl%b16&2OnhV4sj{3&`rU|wqKF$iUMr4#zQtx61mD`BoPn_4*& zXH7%%0qI$P)6CDK_Vrxl?^d1rG2J&$?n-+@_al#9 z$E-YUn+jt)5&~@V^FJZhg43)X2L}f|ufhF%jkIK?y3o3EcG+FD^$ zNHJGIVrYN}{pwdfGK5BRYOX~UNHwW*I;-Nohy8*w9jbP~td#1qPBpK&Uy-zQ@$Bs> z~IlQq)Y+f$>@YCM6=ile~>75o0>U?HYTaXC{ z)J5$a)|INI3c@jOTCi*>HJ*$`pLBe*g@Trzd7>+b%zh!l*PkK#uFHY_nS(P9whyhS zjSr$*y`gf59}ip@>3YVZ?OM&5qPIF__HjaSk0dgP{rg4&{{&%njNSihy6DE-RMQ?> z+SKtk1&}qN*F4kdF|{ZXhwlTjJTj8J^0L+Rq>=PtuV_F6Yd?P=*rc^&~j@6u~3 z-4Ifl1Xx*Z-yg+wGWE?Jnv|PwwvfwH$j$Wrq6$j)UNQ)kCF6GLyGb4Kbs3@;9?a1XQZk*;IkPgd5WDy02TVqu5ugNVDHEyk?1&p*nm z()I0^UF2TAl%kgF-{=9Ufnj=5$@X#R^RkV+wGSiu(&BoKg~Vk?^fzH8YJmXgCw_n{wSSu1&MCnsm-*e$d#gVRIbGT1;%& z0z(Sh?jhAnh8;4WtG{@KZF2c$Y-aUZXNS*x`~FQm-sZsSbL@5kq3Sw2)!G#gL3#l) zbjU2@$he<2u5;kf?-%UjtOgkw8ww z-QeJ6cZP*V7^S~{+0Tt#aSdDu3kfMlQYR0y14uHAePb8d>tFdpLog)vlhf*80qJzZ zhK}`V-WQU^?<`LGjW4Y89ZR#bwf!?2fh4)Y#?2-yhE?Jag{cW?~oxvMAeu z0~?W%0bxl>?`79YnvYN9w5d!ENu}-r ze0zu>{SP~5=e(+ssT^chVHefm2+1iaFVP9r9uuJne#ZN7nUw$cRb60Z`G>Wy6>Ip9 zRc)Z$cPbo7vSv_baF8Lv=_^?_!72ihTX03`;ug zmlm=d=ADbL@uD>i_O=W&Z-QB^d(-yi+S=NKFlR6Uk#j7YuYrqoc=Yh=laGBa=?g2| zF*iNa_N4!v`+_*u9%W7B4+N=fz?LyO29kzA$e+O$9nVz*&$E)h-uAQ;7Wd8b${;66z)1*?{iIca5D ztyQJP3JE|RlKp!fBjf+Ij$t9`Zob;*?d635MPsxLpxwJ*RZN9buKTm!Z1&W29Xd^0 zx4BP(G|%~~)%Y#{6o&HF%WQOeX6)vvaJ)mSA1N-4m{xIcK23gyiqWd@fG=G)v5=>YL=g*Tt z_%`S-y92kGkn>(>G2d@388;gZd#jkl*HM8$PrQ~p$7lwU17c}yHgJ6uua6|NcosTEHmGuCALjF?=+d&!s?(oG6Oym|_|XSR z%*WHk%jvy+N65}}j|JXN=Ugsos#vBVBfAC_keI7SE95a83y zEG)?UiDEZE;-k*l&{SOwC>eD!HdxBzh0Q|Fs`=z>Zq9H^{Wy_v4GP+YbcUaF!c)u< zX>0HB5&Zn8T*8;L*fsEVen!VS>AP^2UrO5|^bbswNx-=kaQUDL(~%O|EHb!bhD=00 z!t8#&BBTT&+e^$rz|bM(`;s=E>Zt_cBq$h4Y%<7oh`N+w`;iFS4N;;`nk^)8A9oN~ zISD1XomSiIWQeE3Any%+1Sd%O`1p_#NgUfRFr7J%cd?;$FjzYr26s{_a zU=tIQs0Gd4n@g4N)s1ZKm%NN=86?CT#1{6#kj0SYEOMInP}1-FDemaHFPcD%I80^Y z@_XNAz|?P77bAu5No^?wwOVj;~<;96)Ucs>sirObu%q6`#AAL4*(x znn_h7;C8G675|MbjhC1gL|If@#@k0-NPHoWM1CRIcO8ZIM$&ph9) zaiLv9-&>2mxt2kd=6ji1jw1WK%D#ecwo#Lf9MH()1ECKXu&alTQ_(j)kwLH{fw8T= zX@qs_wbaM-ZS@zQJ7B;unSzbcKT$`S2dLa+R_|s0PH)1!NAjTq!463L#c5mLLKtYj zSahn&d#(7U+!xb{jWX-eVlh`fia+YT@g^M_#&+2t>zg-?FrT$~>(=I1nnKvjh{}D3 z)XjeQaAk6x$#~lNUEF2s2n_S;7n1zB=S2ceOIl!{+b?EX8Q7PCe zdA7IYEw&hc_6;=4ep}VcMcTInCQ8Q}!u zFQkiZ6aK&9h@pd|V^)5qB-g8&Ari>Z#2hK$12|t*`~(uV1dkzs4t?Fi!a_Nn`^b^| zC{TlEdH)gxGM-4m)Bio5@pCB33d~diBdn2}o9OwBumR1l5w5y+{%(wP3|__UARKHt z?HmR^qnY_`tDpGcbDcLwZe`qp2^oFd#&994eW=%lNDvTXa7LIuo73^dAkLr6$NR+p zH<=HEc-I|=*x9oX-9akhEUwC5fmckZFJV{$Dwc}X=j5KSDFcV6I=R`R)LVV87~7pb zefnKq9+YHq?1nMz`tphjl`B_B-@{STbkEvQV?*Q#r+Nx7%aLXKvZ4lMpO{3z1xL6s z5WAfhf=IH3Z4dMgoa1HYQ9%rWU|`~Ewh*iL6Qb&Db^k8!0;^j0uWFXTd? zUJ!Gr&|KwmjN#`M5~{>v>OZOyk0<|GmEa!nr2C^vOzo3H&IR41F6LwykkScEM9~8L~otFj5uRP0)N$D&d7#9;@!^JaV4!a2pQKLnlg-vfrvvBf)IRcZgc;2Y(xe~>B*_7 zdR=c!5bGocjR-9asoo8QHG=p#LZQ|eiA^~DT{I@W^Ti?f5F#Ec!q}?c)k=QvnVOm+ zpfEA)|GhGx8BPPTtUGT{?Yr;~A_xD{p`It&bao*x)8lfPR|}^N>(S zh_Poq7%K!m!f2VdXvxYTw=-h<#Ja&O9jW2(mcwtM|CCOTy-#Yo@r3%4zF`m>5i3KR zCgLG*L$6^~lR7Z**^elL`bs-HixAo1g9p!Qmme8xXD6eMLKq|4vPaa*%ZpeW$QdJ6 zP0TYxt-1ir16gkGX}6AKR{Vzhetuv;&#J*QS61jnY}p9w2ab{3Y&jhz%jsxDPxxRo z{mHmC=-s2Vx9GY2^wk0es{dXZS^aON5!*BV^gLd=7}Ih?U>b&;pz|}szn4hn(%+k# zo6`%J?ncW%YU|jsW9MaMO|mBbMH;01T8TdfVi5q3nJ!t6#kj{QF|pRmn1iz!Y1|Ln zRZ&AD@(2HSvkb@`(xk*A6+onTk5w5O8D+UHSVBOd3WXBgs!7MhL_C$DwcthzXq)p; zgz+Nw2*b&n98p46LkKSGq3S7kEbvSHN^rgJVDskMEWIv&&UDegj)++QV?+d5t9=Mn zX=}eS&oyag2kH4WZ(j*}kpVLvu;R4xY`1`v5Hm@;P`n_=zX#x)ou8LZYR*J}4!LT? z_$1Dq^Vzi-VZ%jO$AraEPN&Ou>{x0OHS%kR5eg9*VMqN}rk34*@M=4h^9jTZ+4rzcGNTVZSpH6dOtF z@f_CHiwl36`@(-Iz+6Qs;0wQWNmu)X*^v_hmyKSA7VneXG1dD=jk)z7YRsG8Ki!1R z#gAXpGOr64XrUp0zoa~Hq#UkvF{EFDL~)3=aBm}xxTdT3oEK{gA;lyZ z{9i~hpLXmg^V+|2WS=eO+Kj=Xzyni#BL`P2t!5StxQB#(&aO4*`U}dqtS)KRSq(KW ztxtY1R&8Dwh9|xR2|$OtnHUlv${JN$&v8KO6^uO$Lw0<%kiU;#>D|pCxr>t7lIf3v z^S0nmD#VZ(s4{ile~KuYdnR56@$nozmhjF>A|YUI&jQu^=kF-TpV!^X8ikWls#WY3 zfo7?1X_?OD5pSRQ_E6?)!w)kKnY6)W+s>%Uqn=z*bD-h++3{Q$;?#86_-NlWuW`go(kNj!N2zOH}h1`GuML{|O; zO4{#*X(eRy(QymcevcC)t@s9rzXsM?rpD6ZFp$w<5Hx^M6MvJ{WYxmX&TeVa%JTw3 z_D;V?lZeP7F*}1<0{Fe&?VokZ#0o{6#zjM@+NV6M6PNzytr{~0a@Js;GWE?Is`~6Uw`F#m!D76 z3}PGwV>TsA^;S>Xzg&&@mtqL5Y253szj7q02YZU|+d4Q5A`lFy*MxMg_d3hmTPQq) zD|0#RN)w17v@UfFm@O|%8)KHj#nqDKKZ78e*Cj|TL&7pwHF&c)RMpjGb#!90V7A`F zgg;@~{LdiBP{qFtg0N55=3K%1uZ5VRSHB(I7Y^JqctU${6MN7(78$w&V(#Izjowm{tBc>uo84kJz= z1sm?mcKmkENEE*CpOK%19!G^WDzBL%e<>^}v$v+XSy^vEZJceAVG)RIrLX%>>9*mhCjvF*xKqL$3J2(Iyk4UsmW(Ma2{?e#KDITx25Y8bs4Bb`0()X zKy(NR6~L@v*qdt1J<9*3PV*%=zLl}kE~_eof9iA|>f_qm`RIJ-7`S&xNR=UGg~g_wgOMu`$+sNr3=8O-xyMhC)XoO`L2m!&gvBX#29cL?-+y=zDs9-)3=o^Ma8 zbet)_^W=^j!&O9%v8Dl2@LUK`_+s3Si26YNE`vTpX{1i;BU62lXLER?i;=UGmbP8N zXqK3?q{*>c0+;8L|2M*nT+$DO+-hoTQ&Llri28MV`uGvD1&u$#%*BiUjWFY6kV4FW zZ0_H$rlO*Eq7gReRZUI(>o!Sg_gPQLwcJ+Z*WOlk_S0Xv4nr)NUGQdpwbYLM_^B!Q zNk@~&8f>NBcj?b$vJY*u)!T-@S7vIwiwS$?sSPu4BYDMROQn6iS$`=rTeS#fre*%W zRc0DBg4h`Rbl7Tbee+qwc0nVux$9uZFIu%B+>{NkcALboo*Ee2_&_=#h3=By)2165 zh4g8bKEyCI47$@G6qV>G(_cw z5lffPwd^^ssK^dkl+YlFsb=0J4BCHA37+NaMzDjJ;fOc87Ay6O)J_O<%}B4+*iqU} z-kKtjd9-)GsAwb{+*{HMQkxi1Y64FDb6`W_IuY2I`5Mgj00|d7H^FKL9bF~j@Qwe~tdng22XDD;0cSxz!4Mh$=zxiF0cT!8H60o8w3AU6>ndeVCs~ITqGnkbn9Bx<>Osl7!(TxD^M_GjK6?5Uoj#VJd2l9WK5))(w zT8%(!Ea7e<%?``wJ^K22i~~YKhz;t;qoQMe`|Cyq8c5=m@coI`; zkC@=;fPA|{&wV*#w>x%~itVii*nnQ=5vaYA56$C;@};V~OE#h@eMGg$^Bh(KP)qkw_Z1t+wp@xQb`(_+yT@ zh2ka>5Oq;P0r(3BhcgDI$A!Z#`e?awbMaP5Oi`-6EW6*lx#>qKks7}2X;Wso^d4g z8DE~ntm}Wo;xJO}pORuyGzs(KYOWLcvcD`4)WnAHpm9SFULG9o-07yI2XDFqAL;)RRM`6Rwy<=-wy;#DK_%OUfL@lgVh%hI9T%4|H_xUt9aRJ(n)vK|n~}l|w*?m)Eto=ZDel2Ds*i*;T{=XIfO1X5rqw zMs9(yy?6~DW_e=K6Nf~MY><($qW$48vf;d=1=gTDK_vaBNuO&)lPOeHeeMg)py%-@ z=!7GIWsV1BRV80cpwvlYJ(Y|oiJ0N3ONd2cX+fj=lJ9UK@5ub@tYi=<<1r^N(w2gE z!(*qLfA=wuP4CnP>)Js~FZ~;;jxBPAKif4!>+jsT^B5D#hK7e=4wg4GWaykgc3_&A zs=Nz;j3?ww5&LqpQQ#)OK& z%NvBG3Dlo}m>6xGH1iHYK0caTV7R<|d@w6en3^(T@=b8T_QD;B#yf|cTh;T8cop=_5EFb*aq7DgY5FQ^w zfh&bD_bld%zJ2|AtE8mFMaWShhz+Gi0#CKWHPV>RHwr!hUeWbwVEnBYZ>74E`#W_l6R%1{i5s4!wPpMZ=JMmI}4?TGG}Ge;9m{d*0X8bp0dhroo}FVm;A z@*B&{)0N^*hKoE!@YQ7z(G2gG3EK7Q;P43MQbw#Fllh3qxf zGcv@mh6!?oRWO#Sm2dw5^Tq(<7=*@#y$$XEpGJXFh4%PtAB9+qIk1>FZ}=gqe!z#E z{vV}bE=z7dch5#r=|93Su3Y~*46{k!!lE7p#~E-}7K{n30See&Jg*B66$7686T_XB z%QUFo1>*L+PMscecG!K5H~5LCG~ha8_*oJy#0jq-Jbb9~hD|+ff!zN=+nYdh z*>~OJrBX>MBtvKrk|;!mOqDWboGhff?UUunPBEDnr-{dmAJrd)8(>J9M*xp)A`Ilw}&~2x~ z%QV^1Ul;!qNwb_JefdOf;=|XM2N)8DbxiJ-HQZv;5gs)%l--v-U}$9=y*ENh`+5GS zSk>w2Q0l|mLdkwl0ZGRGw}Kh{{oqX++*c!XQjTOkx$&yN;KTCt1zoGSe~kep7)iM7 zChmhpIr)wqDtYC{Lf`!AN@jTaUrqv@c$gQ$NU$_qXZ+@Qm8IEVrDrrhsYwRa!M*j{ zi`PBF`c(%+vd}lA(zgCzu{5_|ouY48-TYa;e{U{-M2_?`7i;fVr%KYfDQ{hffx`Lb z>_7=G`t-~I1nQ%C0GLVMms z5h(Y*pgk*s>Oo?@VK9Y^Tcdz=og}Zu!#}N{KT(eV)WNm&hR&&V;lIwi6+^L$XiC_p zz|2$IH#re($O907i0hJidQ1pDYH6Qh;1mo=5C{)2GG~E9h*?DFP~mI&Yvr|fIP8GY zCm`%(H)!PQj54o(-%7a5)-DnLJ>WRJ>M$Gf`SWK`=)Pz&Fu8v^3BCAtbfnNg5B@Px zl({}b*LTapIsSj*&B{r3cV<-bRy3~4+f%jCmA_83vvi%4hw4K zvIN`QUners-)eg!sg+)M;;isf0R{Kh{H|9Nki+0>mcdC3&~89x8bd~rX;{I?3cSJm z1Da;Ho&X63_$8x@nO@^p_iG=VGM^l&5d&mPNl&*&1MJYDL&VH393kHJ4_nQ3jxfOx z@dmVx8(@%4_@WhXMnpvT!q!ANuj=3CY9{}$xte3=xBQIrjKJl%ihUv3TTag-E6dKo z#mdL`w07keoJtRn#4BF<7wKYQTWG}i-%QjHl#6t<5g|r-bUsM)smUG~Y5ZEKAgvzh?i9Wud#qn=|@!U8H~1)5=-!FRy@~N=c^~Pg{3wVs9X3($QZ0 z!<#@0O3dj$c<>|H=g;g*dKaUZmk17+2Q=iy>RKQ38j=ZAvk7uVJM)(!KDedd| zpH(YDPl-_76MNd$Aa=80>6yxXgHxyPa2jS+RplOslKcsD;CR>)P*~xk$f#rs*&~Vm zXH^Q}90$uwV)zKjFFf9JbtB#4(rz;?0owVhzv0u0E zOyzaa?rU!yz9}wz0XjxWWiNOpJ6r|J3BqSH+!={U8_4s0U{_fyx+UrGo=du9%aOlT zjDuF?)X9lYL%PN!hcA^r3l-ok)wzG^s@jplip8{qAciebQ9sX&`n<`k!~uqfB!(u? zo~$1n)Tt7dnEVWJ2HQ3g$et86HD7`SYs4S~Qut3yCyin@_E0jF5TBzI8%g{D2YuL2 ztEvvV-hjy?yrc7C# z=53+vUo<1^NK8(yrLDjo;7&{j)M|27)43vMtFW7!yhx;+xm^JR_L;>dO7rJRy;-{7 z&>GI1QYJlZ<;h8?r=Cd$owB|OJrBJo-2wt z?jh|o=xs} z>T*(jh+Pz9g%J#bFy|c#zHX%ZtSW?%RN9xqQ)qMrr`-SMT)49uoRZgLg#Iapv6)Y? zin}=y?!AF0lfn31$#?`Q?dFD?N-U-5mLVSu_ROO=y7nJdj3~uJPidm!y&vTUD z0q@@F1BXl5+3}!+BnHwTTcllF8G%kEUWiW2-4nLG+?Ah6pkLA5Ty&G_8N_L*kdMA* zd|B{#^C(0~aI%tDoAn3|nGGW4AsDbtDC3M!tK`tnyy@)lsozt5-^6NbS%`aXSkkHe zx8B|tdcGEx??Tz#=5*kusoqIF1_rC}SDGRLX8VNi*7DVSaeH`&hLiDq5X+EPo}tr~ z_fj`U-DgMjYYScqJMw=jYjCs`eY)fS<8Y3m?*D2y=lS7L$cf-#A_%Rhyl&Uy|5}Q3 zl91x)F4p({CVn86fn1T^(l`bkc#OcxBv0gYqjvyCsQr`I6-??F&(I$GqZnb4=J{TB z#?|uY0|n;!+D~aTc_r0WCtNnVR8{RPjMWzMtW57%wV#aN)%9@Kd$)=%^XUEQ&UfNk z*=Zzl;~_)W)TG743}G^fhBg&5GpZ5z)INdlRNKQdE#N~zE8g$;s12e0o65Iu4de=q zbe-5+c!*9g;iZI<1U+JZ@F+x_8}?rJJhGvLCH9<%}{}#gcKJ)MXCXtX~pad)l-n^Y_RPvygf~FWO+KrB@Qm zFDeak?~Zt+{5U)}J7~Jk^XMhl(6dz*Q;&t1;Vv@rKH}!kzWTH5v#FRAfEmqIGqYy+ zPEkCAu^`btCL9A{;t5Xun7lu1Tm&%kpW4->iWV_pu`P(ej7;_cAqqwt_J}B;&>#HV z&!6^t8bV_!W0o5N++CvI6V+mL|1}kKZ0SF#e|C~a5@vKLSq29O;k_1Au1Sms@PI&q zu>sy*V!Q>{z3BvSD)Jd!S$%p|u-k++om=H{ZC~(! zuWNQ;xowp$#2HhEV$CmsdQ#!q-Pzd*Py}*o40dw3WvJTz>4S%H4@~J0K6r!&Dlt?9 zxCOJ8t7tgsRJw#gcSE^vU;6M1c7k?x<_5Qfd5@Du&5<-$`u;~ANn_rO7pMy})x=}K zuqSA$#M-4F(4$`f$+{74V60e^fe8%UIgovEXWVJbVr88F5J)?VcWvLEgd0jwp%7M~ z$Ch7Ea0p~D$PX}yr@enw*7E=Ow#)#z8)553*n0t{UzC+K?_PJlTzK(y!=c0ekJ#KZ zg4pT1HZ9DQX{HQ4EO|{^@ojjf{Bdr+1)M&wXaUe+H2YOTFX?ZR>6OaAlT1M%6c4uW zAnW5r!w@%kCW4658Tu%`zR=$P8aCaMzNk*<1g!S2BlTS#R3*%p{+EMH8{mz50-Ykv zPLYOqoc^X;YO@ilRqzmC8}u>e2GsK&!X-?d!>aREKldQCdW#9mM z(c{O}G|VG^dEs8kgPg#~_y!Lc=fa@os)4dtM0xLi!%IphDt8I(;5CYGdmijF>S@z& z|0dDOe!6X|*=v6obnWC>TgY;^_g)mV7=!=q;n4JI3iRN|H zAE!Jdlsn8~3aE#^!#UWmqCyxiJ|EQW`OW^V=ZO-A;G7|FB+T@Pn_mOfRd7s~=TvZr$o!Ul!}Si)B~?wAd^)4Byxe|4az|kqB;AAuK&9)#eKBv* zg^#a4!g%En3(IEdaKga1W_4)Z1xei%|0ldB#eRO?bj5Qq%1tA%eCgLrueF#QI?%O< zjAfWmD`ftRr{}d0J3?4g5xh@g=hWn28E=>9$q%r>h2s-I0=mi2n8JP=4rF%_Wl^?a z+mI5E@LIzB5r5C??RUu3gaXa$&f30pt}rc0?b3?36U`_P#4HL*UZPV@cnhGy#Q@&1 ziRVLt4wJia+}MsEmv?>e1zuQ(QLYkFNPLD{dLT@ z5byU}sCNkg7oIxsTjWS-M}fo^roSlOOExb4-;yYCX8~C0sLqqwpe0926;^z2)%8>H zwNLEq4G#ogMBMH7S8TgZT{vNrrmU{3D=#g*U3qp=1WT!$M?8N!j2v%{^m8|d)>URl zP&I~AG34muw$EkRr@XEdp|ip+|D<7$;w2WA;{DYM3SVYN-EaB(@@SLEhx!oE~;2Xfrinpn@2_MzX&Sy&>xRM#Pr2mQTVj)hhTnJGP;M);E7S+(Xj_* zh|wMih0@E5Jms*Ac7)&?|JGzuz|p)&JFMfkCs6F)obQ`|)@9X{>&Ts^|5tedf5ae1iU z^XXQI*==oW8ycjvG~f-Upm3)nPvvhT=WVd72z>J739IiAYTZ|8!-i07*Z^1H(uxXD zyCG3gd$G;|rUG~4q5STvk4evPDEhG@(w%p_SSq zv~}xN_{_0$aA3{OUbC9znd%E`KYuY>cumqAm<3G1!z2Wr_>Lkr$hI` zdZ>KMjo4TQG#8!`ieFfrXY4#wTwJnsxcUl&JJ51a)6hJEEcU~zo^tD(b7&BMn;)ss zdt&e8MCgQx0Tj}ikS~~T{<{8aWL+g1FgH8Lmg5eE}M`a6% zm9PFstcC-6A;KuWVOst{s=~3l{i5j}0TH$ZJEF47hs)CR9!1gac4eP*Ay9L|{;m^rcG|qKzTB6t9*&3>#z{MN-j9LHm{=<-Cz+Q?JIBgiNws$*nw_B@snH9m~a6h248(@OTGRfL3)W3KU#_-YrV-N{& zb5l86LR*4Zp7S+`XoX?Pd{x!|3uG08jt5MR!A}}jQuKZCspD1$$7K>CTkO82KGT&M z@%2DZHQ2AzmgiMHNhG?mTb*b&5t|DfJQz8C`@{J>5NbcOo5&y-r*i+tzJcFvEZDb1 z{O$9zXT7`bBP{$YdAOyha}oc=SC&tAdb>l(q4rk#kgyKf=!1e4!Q+=xpFVa^v8mZh zv0d`I5yg$P$CRsw_nA)0Kh~K4eBN;{<}Yu$r9?(65;N23*Hw32=adTxwkzT=zvdPE z+I&)2+2w|5-RfBBa`0Dsm2WfMYn?(m;-p0fpCJ}50z#E_h^I22_Vn_7lynB+U zUZCI7J|+G%K6U$9lKo*R0}^u=?Kb*N-1ZHlSGnNwdGGB-$?Kl0kJ2((r447cKd*a+ z?2PgZ$M0oxGqhRM(52%I%r7cBa`^D39QEws#}9#rZ7@@?I8EAA@R)F7S^U&TWxp^` zvMqygQjD8Bw4i_o?-vNihQ2MKW7!4qYmpBi!;nExf_7g`%}+gBjYJPKqJ_4JAp40l59lxC zJSPVu9eQ18f>M7D(5}(7S`U^&1H2J~=4i@b@2U1+yU|}ezsUR8Jrjrm_XWERkgrm+ zvI0T;V+Si{lG0&s>^&ospkt}?l zA%qiP0rhipdAZX<15}X_uxUb)!MemO%2IqgwrUdYg3x)rd-qNp!|Rh>nN+w4VuQs5 z9!!*7K>VE<@E>-5R44x22VivTm6j2~}i zE#&NvaIY2Og@`u|BZI`FN48w%e5U9gQJz#&l;k+u#Ir)W*K6)&n)3r$BdVSFQZvv( zVR8e3N?^94Eeq)}kP!yDaYaeR-RS)x<^V4%&p%Qs;1qywE_R+l#G|RDHToOj(V@b{ zQ&G{>{0m^gjVc-92cWoD@UzF%08oPB|+hI}H6R>uvpD#x}C@06V%Jmm;`B5$|eoc+W=4LX)d!#Jw#pRMy5#e@n z_GFo#9W{R3QT^`toG*QMM0n2-6`a=P5w0*%jSKpNes;oI&(cyJoMV1*G3%K#Rp)n+ z>Xq6gVHA$gxY^kebp*~j+=c@Xs)00N{=$E{Hv6QIPNI3xfeV|obage$x}RILVZ|l@ zCsECa+y(GSAN1wm;=(%1TNv1Yup2NFCzWsI7RL4H@CUGlum%JOgo@^>we=-@Fwk?z zla#`@hiUL&Rh_GB{#mxmn+MJq0p`(h;*QaV&~>= z?Cgxd`-#HlLOvKun}rYZgoqSM z0wQU4cB<%ho4{j+>eF%g?K^A~A8=mow9dU!}BF>sOk zi`dEqFW)ZF;5W#EV2j}~jZa4UnplU8jyt)6W{!FbG!J5UV^N$nAeh0~2{@q?6aX?4 z=>TR5FK$KF0vT^ zg8b>o1Fpr*X%-NLlIJz(4?nt|H%I6I&%#4AZ)rHNk z;n7rayNj_`);|u3Y`K>2@W4h;EUDP0Uh`w+^0r6mAYCr_ytSn^>YehT? zEKO6%vw{|KFHUO+DaYEgsrT=b$u%;r=nGBA(##Fk4feq2(0KO1|VQ zet3w&PAr{TQPb))W#CE2TU)QxzI#ZToXFS1Vrp?l!i5$aJP5%aXe*ox5WCmUi1Z2@&@~cnUw= z-3r0zDZ%?Rk&1@bL+bKdrVadzq$t$p?!48hyzThh(J}vk2p@7af_+kH>3tBtkOZKW z1aUq>6zWdQfTI)HVX>b`-ngZYoacv8+-EjTKwJ-|N%fWN;#f9-Q0g`ZkN#LFJe6|Fa(p(`D!dmB zYXUVwbc^$ZXSC5QkC4)1=lld%U@YR?O-cF4f>}rS6xPz}C2N?>)^e6?%Pa^a+r{P> z_NbtcSJ`N#di3MowQ!X#NoRqnCBs(Mg z5e=V~6E>D3djg3O{lv8PMig+`BY>d_@JmQY zC>KJYCRlFVU8CZ6m}LaBlzh!)Ib7}Q&gKdysa$u%#h3H}JnL$}FuntP@dQ!7w_oxMF?@k1yV@CPGLa{vzT5VBaPRp1wG!k%3b zYte>hg9{}N3rY?oBbgZBX|POPU4z>n5HI27%g1W65#EUngLua>uHEQTFw4TmZ;$UM zh<#MV06p>@&=g?Kb9A9z{27}9XN7Irx1d9VLm+WROp3IT{4+&$B7m&{H*$Ns!V(fj zCe^MEwa%A2eT#l>0-xLzZY)KW|afJ?D4t81N)$`?t+&dQ4Hs~|cKQpvU0j08HGIJeN&qrrps2CqFkNBPhvVqZIf9u*V_3loG>{0G7_ z184n3XJ=v4h5==HPetto=aPNd#{`ZpJ6_eS(kHDOt&LPsJB$F3TwLn2Nw)t4kf6w=>WQAUYP9WHB@|3oI!S*g*U&kXM5d z7_%|sKX1*hh&|1WswOws`Aq2=BBC2SJ?cha4MM{^Phjy?YnYjOvT6yk$8o8s&+{_(Ug@dd| zaw^zB%0B=~!gZo_sqO8>2tC6eXC2g4C@+b=veFJ&EH5dPmBnWr!!kCcJD5|YV_X2K zgsAY6lap)DvL5dkC5cC=LfiusY0it^9tve=2OTTXzTa9_Q30mA3CrQ1p}HeJHd?zW zC<_(cQ`Ion2b*Fng!$dOHF%_Bbn3;cSLFBrDg9gr@us5>gaLxTVWdnfe^Fl29}@0p z==c7&Z^8cO3>qdc?YXkH>bz6wALtPhjQT(55nvQiiquo@-`KoQq??jhq!;hla%-jy zrVQ5b!m+xEnNg<9`#NXdaJ3-!HpcV7tq7Lb3iobwR08kI7ZAiuy_l;3$Ai6<^KS57 zu&Hvyq!@p>H&f9i{qjG!5q2P@t_!Sq3Zx|-+F56plCea#Ci{R!~N2dU3-oY`*H^^+648Y4hByNE`j? zJ3#D&l_;PiU^XHkxEO44?;cP{@3e)B8v!qH7&l;<4`H{2N(VR;sTfl>PlXt)k1v`W zePmyHfHr+@>?!h|3{7viaZB;sja;lk9VOAdJTqe{%O-5kvb})pm|%q0yp+WDUAr{$ z#?X0{xnaV+JX5+HOS|R#Ztb>_k(yff>u9||dYGXxLIscFyHPQ>y+oZZKAZY>Naoo5 z+TqX7s}4#@?74ME;_sc;DqG7bmQMiA`5c%e%%LEQYX=9(|LujY`@-VlDHm#8{M~MC zS?|fl{}&UfJ#}DszgG1bRn4zCZ`^xI6igWW&ib@#4Kek|tEdO8g$40_W9`Xy{{H9> ze)PVT(jatOKx)Y0C`tT7r89B)Crh*RAo`qRBKMz;dfE;;la8ltx}Q%tpg;>0 zh=2wBfoPPWIM{6}`ds_6VBO4yDgygVo+qDT;3>rk> zDNru|)))gP2T4t`@m@3>LOWDo_3|Id#|=n$@XkxddhH72h`daJaX^aPZfPxq@L%L~&=Ej@EoU7tg&3$!Lr2Eq)p1oTWP@ zXz$(|ZgQrC|kKVDwr*{Z&j zuH3bP9=?&OX=eUZ{3G>j!b5>eIH~tdUtbe&Kj1U@u3bHyU zEENA-tIr=hH8XQKN(Oc!=khhrg|h_KAIjI1qp9=|^-iHE)#37~J%GXxK>xj68O4xK zZQ{@Qt6f45tSv3~gf`k%47rFfb(x(?QvAz96rTbUKanyMNq+O0I@a0OKurqF@K6SP z#w6!SVd0=5D{BkU@Os7D)ABwoPd{?$)hDV~e@RU~bESNESnv7h2@3yBQ8H@1{DOkg z?9^kxz?E)`fe0%?-sQfh74G~bcsF0|oDVQ@86z}?pwf}+%J;9L-i4VmjoA86Ubm`; zQ&Xm8mN?{#i;jfjd31C%(SREmK9Uu`Svl!q?b?UAyfB}E+p6r3`UThCxRBIJUp+zl z*{$kgILnS(b))(g7UceQ8~0kvaP(r8e6MLl%fw$&$=^Lh4f1J0G#sW0YI+??`L6D? zz2t@SpXNqtygBn_KRER%sCrD^knmSvieRvtzILU2*5&3khNH6gTIxT1V2zO@4Q)I; zFF;F7}W1GC24A12hbY902QxakOLDsok%9!Cd%Y zO^l+9j-%WzKS{@_sa+f=9W>cDbJ*tQyR+}1E&5uN$U&p4s|%mw zcQ&U{sCbC(x*?gA5%feM!a*pc>Dr;#R#cj2^EE+G`pdEUHeC~PO8Y2B#u&AK{`qqf z9F!3G3(5@Ljd>+c9dCj3j71k_E~b#%iNb;Pp~`TvG;W=eAMrtI#(k$GZY^kB7T ztR`mzh|Tvcr|Qj$a1+LvrK3#vICf|qF4MUq$9njJ2ReBT1Dbzt7^uds}`10lNMBuerHBXlqk|L6tTl&fbStoFmErTTj|(z~7wS{{aylH#y^4eDefPc6K&PL{o#xewi{ItMVdWy*#$C zi;3N4`2(|f;`${6P@}U@25j=2*B+H4F7^G_iI%|{?{&>W?u|4)i%PmBEAo6Lv=(O` zY?_>(Pp_!BtgwqCN~ThedqcoE5(u*eSkt@BVsC@VWMsdsmv=8S^C;p8+{FtflvyLN zaMSC+?rr+{n#B0>#D0$hyWfEY9ISG`hv{;AprqS{{A@HqII)V^Bb+UXUl~)BGs`{I z5X>>MX+`p;y?wV;Ni39V%)-08bt0$sXW968B&g_NcTJh19~FCN`l{Y$ALsKTOxGP9 z_r@#uzy5eOuNO2UsOew7ywKxBd1NV1?tvNdu*@rud+|!g5Uf zo=jE#_@u6mj+^*8oaLvNSl*QyR>}Zl)n-gz{%qMPYDPYepNgVbbA zl9LN7pI1CYTt2^3wDssU(X$F;m}GS_y#2P7&Ti9?iJql^6V*0Rld&(S7Zw)A?F8N2 z+`zNG!%IHC;ELdLSzBBDNH%t&=UbzpG+1J7VBjN})J3Jby%@G!2$Ij9iAtK<4KYXMROjcLG1tZe9Px zOBk7NjA~+ETU!Go%ykc}|J<{hjYZn6aCuc)-pUYE|2=R02e*)r5H9Q4s7<0Ohje5>+vUsyw{qp5#*=Zm%3plu+szX5Jhm^) zr_e9M=g{uBowwSzZzj3`#)Q%T)r+q6BO{50`bk)84fy}Qr&mEq~iAvT05V@Wlrm0@2?WFk9;ca0^)r>6{EPRx2qb7KAHH*wh&&owWhA)z>u+AC50MV0=?$;E;jx>9$S z)8~e0DrWcZu-lQ>G8h}mzsm7Yf`sa(}Z10r>SJp?s|j#{MDPmckaA_Nnz=#B7z5wuRobuj*VND zUYX8SOLw(TS^J&1evwH!6YIi7J@Ly;ErckOrJABP@{*Ze8u#+r%NCZMck7J|bM5M- zpUs-Odn4VG8wk5RyMZ8(GC2ufT@%g#Jx5neZh!IoLn_``I?yqx)t`!oJXa3lo+1(sF43ZR0IO0Mi)4OIC*Tpy_uNP@A)0sRZH7;Cv zv6(+g1~5mKkN!w(D?h(L>gV!crJNTTN{6J|GnIE|l!j=Oz3VaT`lL0zIed%y;T%sr zY^ubJ9i?yWlRW*xdV^5}+~DBgcZ+UK#)T=JTVp+i_EQk%{C%NwPZhJff5HT+?&HGf z^6Hn>HM};sWoAVWh%JohO_dv>H6q1zFS(@T9^qGt&dvJOA0DE}D=z>)xb6j^eUC&q zh0tAC7-4f-$2m7bs*px%@1;WXuB*QmT@4F^jnBw+m`bc)+cNZ1>K_R4i(6HS@=>Up zj?x6-ZOqqXp$SUrov}T=e|%x(u;a4{yFKKjbj-|+6LzP75DzG%7iJy~8kmhfZvoNZ zxkD1p&H_xKTfySRzMv;3Wx*cX(bS$cwtFq{Ra*DLF5W^w=M@&dtU;QlrgytAl0#rS z*ZYSRE_;2o13ERoq-M*V6a4OFAch2ctL|!fdAVYys-q>q2L1$v?_uHFy+1k`U)b7> zTg#T|e1Po=fehAv{9-ap9x8Bo80o=Di(YL&jkN!A?yE`ZFdW;UoS5 z0_hDv(7uLA-8cCW=QyaFDsn>PdHk#xfEODTW~3rXYFBU9>OY%VJR}{?xtqe@7qERl z#a7kIqnRlbyExu>&?CwM9*QP}x`?zvRXp)AU-Q#jy{PL7lNoy|FyB*j+^K0WcYnR~ zn_;Ko| zo>)JoQ{facH)rL#{_PuIZ{C%U7#t-sg`dIvvD~>Du$z#-+j-ZFyav-kfXD=x8C4H{ zzY5er8E{T_z3xSc4%foZ6?>E%Cuqs>s)ft3!hZ=o%qHpZYqAeb_?iK=Y#w(l*tT<7 zh0V;T>8u%;vmawAKw7y%cF(rfU;fgi(4VW11J8HYR%B;ms%V^DAv~r0SGsif1>T4z z$O;kn0VM7=T^nC(1e9Rhn}1nH=i1n|!yUe-*|XeZP1-E@lRKvfMFch3s8huRzi+KL zqP+8Rh>3BbmV;3I&&oZJ6rczIK(O00dtlgR4yS90%6GuI4RHD2RsTJew$CuT~4ts@0;)Q>Um z+qM~44>@@wKze7oyPWOABJ}xOns7iwo-OCON6^=2~^Qzi*7JYP0{2Wa}dH`qnl?l+kXn#{sEaq z&V4*7$ljZKdi0*EaNWa{zrs+@X{jHd`grjcfeelqp?U_>9N5ZSxyV9^QciUJ=R(^2 z`;?CALDt@nDUaPExVVn(9sdz$a)rs_#y|9niXS|C^yX74OHdWi+6qlON2C*nGfBMQ_nubb588yfhs+2 zD0M4g4~&<_)#nnRCD989wB(Onfqmr(`Vhr{r#Lx{;HOIMKT^OA#IjCnMDdt0h$bU1 zuj+hRm8{PD=HBP9JvF;q2ACPJ8{%;*5Yc8sV)Vns zkOVJPT8(z|r!3bR`klXN)h7*vMe+|B@Be?1|23~D6CvLavb&j$HV3JQFht{FHu zP#5;S`udfJCI}4`Y2i4*q(bc+!Vd$r8!D>Kw}U((O1f$qK9*AU3h5D&NzcUAS1xI> zJQQ&~bgB4asxtB;LU$O;_Jr5|%9)Y#1r%7jxCwty)uJq@s6fuCzs7@#9O~h__Wi2E zb=XXV9(+{#_vuA9qzRg!E!mFNJPokX8TvkCs?SHiGMOA|b9z4lx`xKRxVAI$e0jx9 zI~}O1MCHFV@Ri-P;*)jvT_CB|I>;2tD<*bHG@)_UiC0t<)kvs_ZjD;lF`6I%y7>Vp znwDl6n3=83*`Lok8I}z64G$YzS=|AIwBWxyboWw4T-n4Hs5wQvetyq6mn)O@B&abf z?0l}yZ83i3@hc@vuhDahP)MJkW{%p}J34yRb^EzPVTm<031MM-01?rb%aNV!e$+dY zugRIA${}^(0=^(1q$6n-r zChUOAYhkHu-u7)S%t>~fv^?KyLAXC~a!T*7iOoKR7cx~3Mak?5IJb?|_uQd9;Y}$b zw|mL(Zs?z2w@y;Ls3!$nfzN^C`EvHc@qGyLUtb7vgrUBwn{qHH?3->_&D>^LXzua; zs}FC9{?C+{sZ;NGoDNCvzDVuz)X7av5qxc5X%Ml}8X;d`PE_gFd{ELH~q_$6dTRZ_M z+xS8xojgP-Lk#h zpI5cNwpaV?@8=?5gMK=JuK8tAJL3V1hGS-Q=Z)q8! zVyxJes>%5kC+4hQmilQ#8{EfKzSZZ5t4bbyX$ zU$**>ZK5KS3GsQ^fp(fQ1>IhV8h_Or)V}|M5)gOo8V?;3yh1vaZ|$=mKgvIy>5NzeOVXP zs&?)JPwGt7K%7ykp!%hiB*ycjj&#XVeoD#bNQBhLir>3akg9Q&?xa2C9xXKRg(N$y zN0b}#5BQz=)#_&)`%K>chh4-ws<;v!3(uw_1H(1P?zrtl!8Nk}%ejxPDtdbTx}9A( z-cBT!Ye5gEZBd(%Q&5a8ub!kO$H6blcnkoGmTGj6;&mQ6xWv70iDREG+MVTcTQ`}a zllwJ&tWnp@!9ay$Kg#w#U6=`JC8>1}>a$48%L`TIsDJZ@vff~ibT~Ur5E8f6=dUY2 z!-U@1mEpC5DMI_uP)N&!ki!mA->)_PN;4+aMMWs{5t812aRD+0$?!PK>YXFl9BuI@%2_E0{qNP2JB}SS!<2@?f2ywC>|U6{-)z0x30A{ z_oxl6f89-))GTvU#J6ZR=LR;u7gWDf$vFJs6eu|Ye#5_>nD++tOlU0b+1G$`Bos23 ztd+{^g(2DT5_ts$N-{r!j6@R>1FMhP^5%7u`lS!-4Wu5lo+D*AT55UG?@(5JCwCOv z?*03GYj5<nbf)&)Bi)Hs1jCMPHFRvpNuu_W_*#PwWA z9s~<(M1Tc<3nmjS8Y7ynfjqcCuZ$Z&EyU5$@&Di)QI^-L+l{GteIMN_lS+x)Z%JRS zfyt3dmoGjr4EGwb|1ZeIfjlMI?&Fmmy?_x0Cupaa)KH(|rRAjAA(b4a!__!9$6!A& zefqg+qTDq_R^IV5?#^XJ<7X%U51YSN$S0F+W^2XRj|iXQqS+2VNouk!NWc?zTEka3 zqTUV;T1+*p>e_`%x*Pko85f@9T3YQ~U*&!cD0+t??p&TJRQ2+}q zEm3;9neCg?;nKM7rnx#eVFwV1>BB>KZWzk^*frcM5!o`aX}xq;|1wtxr&ZXp;L+^i z6xkM;Ev^YvA%A_?%zOY50;cFv>=_la^J!S9W)#(mWeuYB#t5horaI!t?0 z{PT4xU>;rF^XZ+V3oGq2i{RoQ8m_5fj#p^x@7KOewTW5G%VWHUf4Cg67 z|0EtJct1_fXrYgvolNGlzHhXlJk+>RN%vIRwqm+g!FUBSKazF$v5#-3h5NF6W89rU zeFSKcY<6&_>e(Q2*`s9Q6h4MEYHatDgqqHkWA5$S`*G7bo*~A3)#@MtXo74(-~zya z-KwpXh*Mz0uUx&u8zTpp4%&}^b^n<|%wObcuN*ui&@TU}fgCvyfTN?b-|7?VZVyFN zap3N79KU`02Iu}-Ao`ad7hb)7T_O?;ni*8sTOt6>4ZsvsB1uuqy^7ANgrQ=nZE1-= zlv&K!+G}0pVx*{9qJyhQE{pHJT zQx4@;(pbb|?Ba6YginS)7QXSvz)%ohnV9L^*FpCgKB!T=is)TX8$$w=8^mZ0(4``1rb5Tvm5;pE~9Z<(0Zdw+me4}{RjeB;N3 zlc!I=eE04E`Vfe-AiJIn%mU2uh=^co(pBI}{Il}+D5X#X9;6BS^8JgUEBV2&iziN; zIN*&v4kCh|&s55$3{eW!Fto&902LasP|;ES)`Yl&HfS**LV*HW?$kl;a0KIlJ^w#QY7rZ)onI(uO5#ZkKL;yJP6v$a)PJ*`KW)^M8q{Oj;Q4tP^Dr&gcBdXX?ghO08^u zY@*pHASCW#YaCOoR?Bml$oTKIL6uu@&Fw-(vd#mXF-LbWJ}XN)X22t}F1RD0OE1;) zo=|7O%Z(S6W2_eSb~c<73Z2)fTB`s~t<1alCN@XcEY#A`e6Mu)q~qn%6XVeW)}fA9 zIs%=(w_I@0NPE2}a4sO~3Uhk)g8cTUbu4*H?}v|?xWw?QknUG!6kF$NKDT|d&+@(~ znVWTH;@O}lrw+t&hd0q|yUR3dEXkOjE zJ=RLeqAb``Z16Q|<%zwm_&K&)xl)r3&Aq`4hw*uNPTYGE(U;@A$-3tPfx%r8PBNVO zcKZ0Wf-RC^)G<06bJ8~Xx8BgpHs+;ednn@e-N@r*YXr^l?B)r9wOv%{VP0&EjMle! z>0j>-xc+h?$fS$$?JJ?jtnvGesDoPl3Y8|8_B!UCdi9Cv$Llmd-b-YL*Kewh4z+y} z2_CkhiqY9~!$9k%`U-vg*He`32crULX689P%2|ZE^+Fm=B+i~#Z>W*ao7J~m)n{gt zPY;}7UcTDyMEN#T08@5~Jff5OZZ86Eonz^!e6r+M%Ox4+Y<}6k%iO_ZoFJ~@4*)v+nLn^CRX>U%3LQc_>J_ZOS}=$R zwju2@d-!wHfz{;`gA@^*1_Mbf0jhWAxTrqr&~(LfJn!IJ88asrI&~2}fd>yS<+vQ~ zVRfJHqf1`BRXaZe~M;`LWw`LLsxxRjpM!mSVarP93x<9_@e&)|Rd2(EQDCu1dleOJ) zjrv=%^!xkm^!Yyxy^3tHnXl0(T^>31b9skU+euwTz{c)Pvhve>tcla}4F6ar=Yp&Rz8+>e_T}0govYmJ zruTRcJ8(xImJ1bH4v6ngxoX^1A2cD5WWmc*!Eva*id&1M&GgOJEhEX&ht*iK&+VWu z*lF5oeA?2jxX!d-Mb~ZrVpR2&oW}3(&)XyfOiOqOIa2tMh}Luk)uko3Jem;WT5O)J zX5ziaUAl3+IJ99%Cq}4bUQm2pkayiR^WM5^Ukh8rnfu@3SM`z^Uy+`oNq!)vckAMH zq8${?KX&U7U8R+Zq4S%*L*A9!3`$Ho%!LzMU!Og&d%t{W9p|MF8B*p>K@TaSC@a)L zStOE5ORj{o3{t3Ern;yQ=umt^DUUVw7-fJFd-d=U%GY?$*EK_SJ0;h*rAMnz3P4aORKR12eK|ZwPCj8ySsOS2zpI;kEQz<>x z^>a+k@&nUU>RXCv#n$r$oB*N>RNv2>TxbkBF!HNdMkMC?+w115r_4?=bf*-aC#(M< zF>AuZjXv_qbFLU2r90pISAHK>i`!#g+i#TH&y$|nFR#KmS3o7N!d26Eh3j4)*%69= zuzkVpN_#6-4)7)`;6|Ju_c=F~6SO}ngG-yLd(q^Ld)Uy)btD_g?jmyY3`;;7xKl-Ga zFX$(iyl%pOSUElrVuH=*2;ah z{hUG$531JOEU&*mc-%Ja7R3R|5h~%(P8ZIw>;fgK?mi*=w;U}L{UIMVR1UG~I5Dm- z9Oh1tD_1&tq^(TBINCJXvwNS+O++M%DKr^Jv&Ip+#*0;d(h zmucrbx9BP;r>i$nc4fh7U;Ws4w+IPGY6jCsl5O`_8?bv> zL)Bt%GAo~US-GmtlfP}(+oaJ`4?4ap=U;p1!tuK636*ayl^;uocbiXLmXYI3>zk-) zTPaVrh_e(<23l{nj*na>&VqzFqCJheQv_6;l%cY>m+&HPU z#ZO}Sm*wOQPv1GuvvjSKPPF+ki<_TIKjgH^XH?MVotbp{#QffRZ+>N>v8%-4vT(BN z*A-~)@I1L+tjNji;ce6Y)kh*PO0M{&Q){@7T<%{ry*Q|BvEHp0-dmAYsU!J11(Alf zoI6z1>$IEHa_eDHVZSl1{A)~6%C$BLdoPs)sHQw zA^)b`o)IN-x&I*L>uyGYclqr@MhBvs7se;mq|JCPC$ z7sR;Tm(O2ccYD${H-~{d-7nRZyHFtf8eMpM!en_X$CSm*)W!He4B3~O%62VzdZ{1F zpiypV=eIn$YOVB5vRN|M!KRO);(W{V0`_T602*(8&}23gxsnGH>MTSD`~s5$_9tB= ztvE01Z?@hT#(mT^?#aUGt73}d07IW>jwfA|`akUbc{tYny2g(;D5XgpZWkm_Sn&NJILjxa>N5HRY&Y+d&;w7A>33`%Wy^)z=Abw@eE4 z^BaF4LhWOa9pilSxsxg?yS6pGzUo$o=<@2LF~7^o$_Z=aCQ7=czd_YxDLa=oD^BNo zxA24mWM}YjzWGF%#A?hCR=q>iPl64l;>Da;Ftcbh-t^8MtO*UM>BeM0IB2^tCcUe- z+QrFqShtJyQ5nZXzJH?UQ{9rQ!!!~M)h5>cf4=VQe)H&)nsgE7gKc0X8 zL_V1=-L6BfxhUaL|7l4$EPJ+kEB-$3);rH^CpO-iU}m{ScH64$YZCJ|ry@d#E;r1u z4+s~Fx}SRT=sCw=iJn6tuempc@@30T*?KpK`|0;obG7>Utw$$OH1{p3Kmm72q*PQ( zk+rP#^JBKAukqL3wi>r`i5`Ct`M&r_Qp4aT0o}MO_^)Q2^P3zryS7d>r{U&Bv8?r% zK30cfyz+K@@-E&#CTOK!py%o34ABT$(n<0v^nc??V>rl>?xp@oU4Qh2rR=8swt~p_ zvyz??_zSzP7!RYDzdoeh0(8awagll6sUYk#D$ry-p%UVI37#5sM0j9 zn`b|%+(}4a8ll>O>+4f%HpodQl8UJ#Xum3`)xJuF9CcMKsSEi-06`vQHQc2sRl4r$ zYXe4iB{{hOS}Je_le6x!J2thn>{PGHxDBEPpL>TTL>r7Nb^)sOmGcn9(9tgMV^?gi ze$Lvc*4a(U@0g}z4h6BNod~g$q+YkOI7GI64VlME_;cOEs|_V39ElbPQxRWqpL&uG ziN~mR>E5rM-C^|Z*fWcxoYYE^nz|3$TUt)=GnN9bP-e1-t6vZDtpiLRVSH9jc!8l? zIj}n??19%KZ7S{<&K!uH5Q$Rf@D6T1uU<>Kzjwv5XZc4Z?DpKKHU!Y}^3^Nm-RUPE zoY$9j>3R27%+&6<>aqJfT|eJVjp2X6{h1Y612x~i31X(gnKYl^{To0ONQ@9(hyi%N zgAhiPZwDLz>_8>Mdjgb<7&!G?A$i*nlTz`sHHmTipVM#Ne8$f1*4WtCa^3v#DOe!g ziy|>7!|eC>mVq72{-fAZ1Lk1ZNf>{%!0}}e4ba+6jm@|hFfZ_JCht#3pYi*00b(LMZ(Fl`3TSN!3Izl-`VlBR2f zCeQ0S(FF5^7s_Xc40lDyXJlr+K>Xj_tt~Y;JUnAOf|kY0sx#5ke;n>8^Of5Z<(w;7 zSR-?4Y=^e0+OCQTfx3csf_5{5tQTBd@Qpg_=!g^S5dJB_R)(?>$W}Q!b_Z7l$PR9K z{%O>C%0@8aK}N>OK}RaaugwkJ+`((0Gh-xAsEmgXAGRNw=FsA%8+HQpd)Pl|YRVaE z4K$Q9`!MBwYR;>d(FATC6#6;dFeT0)vP;iO>mxWqlve}8za!<3XY*u(w^EeEb{Xm_ z1FHPg)dk#-RLVz$BOj36cXV96@)EJ^W4>?xTan1;H_1o7h-~{kWraB}1G@50a7K(s zW@{5@nPPYWY4z(iWe{eY8swK5Ja}SfwZknfn9cA|=>a02oPI0!=Xz*JW)sb_F-2bFV&+*nGyJZHd? zu=M2$UZGpF{A7GR%W|oGE^{%I2-mfeZY|9aFF9w;5UX4}H0-zL zywE`82m&Nq6wS}9dY>brugAfmC$;OY@Lw|p}rBWMpL&H>-+ zD=vxQk=QBy5EF7h6;DQu*Ry`jJ67mgyQG?n2*eOdXL$6U7urbLsX^ELB<@Hgjq^Ft)jr`-NjKI93NZqagsb0o>!)D0nq z+n>HU6sXMHt^Aq#xGV+Dj@X+);(lj1z2)ON<|jqxHp~spPtQa8`K<^BtC`gKv7%0y zL-@O#u2P-xIAEJat+b-+Qa2QI`<4Dn5?*uH*lywVaXy!yy6e`7>+$w>yM#DypAfDx zIHp=U3h8Rfl^G8U@|C<5)>5q^bGZs4%xR6ES^Y^+t7OY&tma$hfy8cx7B}BLKjkqA z$E~EqPRfGqz8fPj=6k;gd*Dk^1H#r`}&GS(ZlPngFrh$3<5z6FAf5o z_h1ac@pBM(KvdKtUa^59j?{-4`+!;MHSM6{S0%b)pTS^PA|T0MHLVR}K!c~(#hW+f zM(UQxbdD!#WY$Z6`LMC*fRs#5j(hT{AA`Uq^U}pZ;L1xs2Z2v?YA`P_|M>1YG7s?4 z(mS#o14A;+vO^x1o_&xfTfi#Z*XF!FkmU_C&Sq&Eh;dO<$SsII0@u4o<8*IVn)629 zdHO(k7c^Zgq_Pn5q|*uBpBS|H&~f(Fm;x^I{uW(D_wK^=(8CJ3N7A2~-p{Hz5mWaC z=m&-z;~~Fc*nl;;6@XrDu=kWNdkw3B+`8im7h`meCaaBNVIvYnYTvTYdw`lU*g5Pf zq97O{h2P03nq3DDp?%2c%$X&?c-W}|)~KFNRuh?<)Wg!%&jSP7gN_GO=+ocGk8-4O550L%@CUBgO4t$J zdPlLDE?JpH6=yS)5~CGz)%MHm3wInRtG$Xr(MKsK^fo7|9SS(sSu1o)Q<%9X&9-xZ z5P%LJmNPQiDLVU=Fz|vF$7!((n4!wx7hJp5xS9#N21N$Yor*FAIk~jL!dLj!Q#v|^ zwzlb?`iK1dBG^HhwYfR1P7%*pm!NoG&!~pt80#b@04=8{I_xqxS3Lhyvr7&QdbccT$Lbks%rGoHs@-&v_+@_URB!WKp1sS_XAWHxE6T- z31YIUW^bJIi5_9U!F9uYn?a9lF2+&pVb!*v=oaULhcBoYJvqM_hk|63;ulezATPRX zKUnh>iH$WW^B1ds3{^$)AR;D(&o-tRyOR-yOJ)> zCRFP?-j$y-yK$8~7B?_Ym1c1g$K~`+a1WN$m3o1ssDKDMa=POl|nq;86kk zKP0-|NcnU8Rpb{$Gw#VM7E@|%kvMOdu?3SMlyy;xt8!YjNzDFbeRugffDheQ;j{sQ z{ve@*6I3QH4NMKa+-d-cp#~>ju8`v(sz7u-giZti#a4ArGrI0`l%sdUvoEGPvq&EY zl0?rb8Q9{s!RiucfLO@O8xwYicmpQvqTnJP{jv$v4T%2qUc1`y^hH`EzGL%BZ3TUB$4nsKHKG$ zS`PiL#l4dufLFv(Fe1Lel(_KliJ+Jo`s#LQ`UB%v>BGFdSDMTTLx8W`5cNQng{_-> zWg?$RU%IkbN{#op!R%z>kuO`(yZ{U%v?V)1tn{(we+iZm)v01GvtmX38(MnNYqq)X z?99kPKphCV<$GU9P!JQE1;Xoo_!y+gg&84u$6>4@)2l8d(^&h&yEjiR!Y<5@u3BlA zCJLx(L}NTg^d4uBX=LEIjmgYWWsc_Q5_MhO0EqhhPLT4Z-ZNxA3s_({$cF<~eSAKW_0@;}TfxunU zNsUWQ-S9*QS>Jf6cw{i&H97zcbO(yw&PrSw$P*YW=u*TPd&3?I1@Rx(EELDFQ}-1-}mN*CX&9XP~vcpU)EM8Yg#!?+-k}*nXJP^pX*;fh!WA`E!uVST~l@Bh2 z10Ms;r^vy+CaR`82CM{-v21%I=bJ?72k8HTTPSWd0{Xu#zxOgHWx<;7(Eq42Iw;_v zm=%`SkDaE;J(pGvk8q&{sD$=HSVM1T*a1m)T^z~70#CthqTO2pdjg<0aUS~C33^|AlVOVj z@6QO{e`tQr3cUYjfW~M^6*R^n%r3sB+wj--pU{?ysVfy33P+M&UP3qVtCWnv&9D6f zj!8%?{-KstQAuKgpLU?5z)UJ2@8Q|n1cTbBK)S0elDP%yoaX!Q2xMj1UvxbBv3JGs z<|hZNu9+{bS5V;pe4>>!RJQX+b!Ff4=<)}zx;uH);_Ag?N(`o|KAh@Nk4}FY%qSNl zNjxK$=>N3#wvc~kS#|t?x*Hdzt8szv4W8R`W|!4;;bke%v1+CAL`{t#pQ>(3ankQ5 z{+`TLVdq|Wx!upw9abxNI%HOHbeckB?KwW9N3Nr*DyvsKT;QHC41V5Y2Xc?dCCoU5 zn;=RtzAN+=T6l}#{tI(6Q&HloyTf%-)p<=)EdHphz@eT8+<)PrX0Vj+%_R3VH#2wI zitZ_u>Fll2%6g5;DqynT^$)VYO&TrYBH7PM$r@OJ5M}^gK&f#=_GwA1*TYq7uqM+s zmuo^)HXPr?-nF+K9UOk8`yr(L6Wy=SN_Dx?%R_mE%gF?4++jOteFCZt8N$MpowQ5i zmCnB52>4At=;FZS-AiIYYb=*bRo_);awu4=uaX)@P&i>a{Zq1*7j^ph(vG!A*p3lTikx^-at@m^sLojZVz*uG4w$UOqq%Ce5LuCCz#IHoo< zbdM5#LD+Xc4-S4>bPUwCxBF`*r;NUFp^GPp$A8@7;43Iw#5m{?r?WxHPP48i`Cdf3 zZoek0lP)BOuVZ5YIOa7qqcymIgFs-^;M%c9M^Vl>;hPR9X)XI}UTM%o_3C%QP_cnxLN7d%;5xuacOT4Y|cw?0q6QCB3fl7I;et zfJ)b6_7K#*-MGc@8>QUSPIEH?D({LDu6}|M48{;3{K!-!ewFy6z=?t9Gn<;(-Hdmj z0%NseA}s%z6a~TXUp4LidZKGJSy{=MeQ;Lam(8c&{jR-jCCqT=f?p1#N5oIoF1@rqLU;#X=bMT` zJ79HxaQp{CUW)A3(9-I}W#M(@Lze5@R5xBLPRlD*T`1+O!B^$Fp(RAX1~sQgIWV4X za224fX37e?mq4&0yi~{%w}!{%rQv8H$@sF9usmBp{Inu@ELvu1^fmRZ(Qyw(J?<|t^2$n zw}&L{tu|GMR2!n0gVpbM@hG>I7n3_*B+X!rE3^i1KP^0Vsfg-z8veMV-D7^Xup3t) zJPO#&MbJPHO2OD>>%@H1LnU#i`coeDSJ=Fs1?#%+vdZcqP>p??^<7;Vf#?VB{E6s` zO!pr|vxCoy+Nb0;c||+zPj_e4AMQ?v<8-Uq)bX%j7Hgdj52>XE7~1;${Cq?&p$CIo(zms3 zHB=Kz*QD{>zdANshLSi9abKdQc$AyFD+gKnNtR}e2azTMKgzS(#TiCX;`XjA#WMF!)Tyx$-l^YP)t{TgKSqg`%hPHOB3g-vgT->uL&S2Pw ze*wiA_%FAjvKZi8aybrYH((h+PrFzxLp+56Qi9Fq-jMe0aG9u#CUfMBhQM}{BRtqp zF8)XaA7hdCC)!KN(&vd=7g`xturl0jc{=(?*g1&pb%GoHlqo66LCL72?8{iv$u7cTj|01_~)xf+~l42$h38f z)5zbGWwE+`gmp5*8ys&+N_2e>OpOpk*=5Az>g#Z($;TnAJ2~0g6G)DTtr@wm)TIVf z183(gffX{WMs;{T0o~ZeTr*kbYN{uZqvTQYQ)z|;sPEb4N zK5K;hL7?vohBI3jCeUy13#&%E`eEz>-qLAhH&tMmXbs~OIVgRlloC{MUep1LKM*1j ztBg+6Pbamk$1XiHlPoCn$iQgtR86F)fBS+z47jLmu2!oVqkd`9AF%vsD4-v#A9L^d zI68GzDrUqCA31Cq#l^)$E&(cg?CM71^C6=P6UXwm+q(0iuBa_&-qGzCzbe{o0uR(HuGr|f+Q+diT{$8E~ zI(U4s##`;^d`cd4n``Mlxwpk(C=|FRB7Nu`*AU27 zEpL{N17O`>3c0AfeFd#@goZY>m(BiE@x7xy?NMTN=L`arol_s57g}+5#l=aZ?p-Dm z$18WGuXrgcdbswLyKYhBU0#Qct6p(snK?3?U}Bd14$Mn&#j6gi$h}N57_64wkSD*I zjGXGpe&4aM_O2gQTsYZ+Rg?XHv}&%_+(D>qt?g0ow4Q1X?4-=Rv{=N|_tctZ!Q{4B z#2E-ZgafWgD4hl!_b(<**&X$T^yE-;VWSQ8(kLsnpoGFaAZ<+(mujNF84pmq%0s!943VnEM_#@Y&d2X87vj^p=xi@3(V!7XzQ+MH_aNs^N964 z;%L7URC?da=NWB;5(|jF1R+y;o1pB=%F7cH+M-MS?*dt{*@z@K`QMWNX7n6t)KLA! zh-q!Mt@^^9==zIu6%={SN{X6a9R4DVA&{7h7Be55m6!xhxy~J9vd-1AFRiG~Hcjh3 zv+u1F{g#}TJw9)tbU>~LleRQw7@_Hq~DF-%oy`T1;h0=N3pPTa@?Xn#C?#$G6pIQOQ6I(f5XI{J@gH;C7$|H=NkiV); zGv+8+CQp^1$Ucn&NW* z+-WXa!cg<(Hm06m5EWRiMwI2iPt$Q$7JqmTShlps?f^gkF%OR-bIaz3>z)ox;F2!} zu!>{?Ct<$|{f~hPB2h50A#gxVU7ew=ni+2i;V?u_OUb#dl&flS_dA+{rH%0yd2X45 z@6<)O6HT)YK;dg2N_E-mt773nzfI7m zJuuV37|?xsfNx3&SuSSZbmXZF1Qi@!T)MFB`Wx#q6*Wv*r|YUyW6E=QE!ij;@dgE! zy}<{ANe|>j{!h`sUn$5L_BFh{$%u zI%b45G_j@)LtLyPMy1%42~Z!uPf-3y5N%s=OVztZNzAcV1cTiA?bAAPOjanR_qC z3?|E(cUx1AtryP46* z`A$qmi7zh_&tX~W6akO{03Ne>r_Kl!co{M6&c18)G60$b3MT}>qWeLQXW;*=xEY@W zt&gPN4F2&x<-65zxIps6mmi5xn|(`5xpzv%Y?k^*d9dvlc@R$49hkGo$HBBHb(0+m z=kZwO!s5ew{%-3mQ_x*Q<^{7T%^**F)G2UabBV&LP-Ic#ra|t4p}Jvh;l}^n=$kllLkn!_(?~cB>!SV z4LX?^cRBMk%o#+bRi`GQFd@!`*(w9vMJO&%&BEsi5WQtk3>I>$*NDfXp0?JrP{93134ovf~0Wm;}crI3ldCDCuL5%`xToMlulno#K@%L z|IrmHV1d5|5;3`7>LIgDGgAx7WyRLt7ehuurJ{t+2PzQ-Eo;2w58vpta&SY!=QtT% z-S()1gA2cD?A0t-_TP0&Gfn0{>6RNJUo@<_mFcp*i@IsqgUGwqwJf!T?xG?l{Rl}p zWx9Loq1z(D*S=?y_%|yiX{zK>Ty8z!7%91avEt1axYYG(+s|;4ozGfU$><3bs{JR2 zXu&Q@*SFG|(==8kYi0^>3umStsXayrpjOOcxw*e(H7l?hlP`voq>`|=X(5RN;UtPx zhj!r<*Z0U*gGG_>H7G_U(#WThb~EfGWviE@RG#hrn96ELB+O{_J<`5Tzg>NnmYql> z(Yzj5-Vl7(G}iw}?e!N%-F=Doe%8A%W-r#el&g@JuvqV+X9E!N;#^v3@%VlLfu{5o zn%~F4&`s^tw1GgtaGBo3rI}2N?@qO0;EFUw4j!6UAmY^D*p5$|Fj>vcOn4fNU26C}j=E}+8RaM~OhBB9)YdZEAr4D#C^+y$!Vu=KzyDU$g~0a*26BDW_s0iWx%L>>1g8MFwC2BF{NcziMJ-9!1F5@I z$QiI7xLAyvSq!so6t%-+B;5=+!VzGr?LPk11SwSW zhXh$QvicP*Osc6QA9k5^6d3CvMZ<)zIDG%UZSsX+htt)V>7r7_@eNgsFzNY}baqRx z{&F@v_p0Bui)H8bL-K0z>mQf2Kfc2Ag^r42RJT(dBh8xd#Gv&--^^4YxZy6t|JEsT zuf|M;XvU?Bo}rw@*}Kr_SAGCg@Gv#C!S6+^0jll52lGags>Z!(3IkJnzDEESYRI|{v>zbNC zKR`{$$j|pdzEG4R0?xuh)kspN(sHs;u%xBz8b)!!;vE81hx`Z}-A(3dyxuGD>?v-0 zNpACLTOKC?8F6vJVpsRpjy(&(XU=Y*)~6V(%z%q~kF_2|-TI znABiOWYS;;inj+Z5_;)jP@Z2WCiudqj325c^}DGPX%A=iy%|V?cMflr?F&++(~Ep@ zf-y8KcNrgyH(Ou~x7-@O6!Ch+MF&K5->4r`P0hv>v3(|JG1%^A$(Nc=j-?h}2X_;u z&ZwxU+vKulGM^k)tF)GQih22Mjg#j+vyPpDz2(kt*gNwl?XxTYrY3kze+-m+>N`$n zVr1F08o6_*Xt!>7$=vwKHWz&f@hw7?L&Q}Up@t^C;n|OAY;JA^ZrsH-vGP)-Z`mhX zfu=V+sA>J{d+boqntU;uznb(j-cGr5G2YHF&7Dh~m7jaj$chh-@$lv1vxG>`L4EPK ziYj+7WN?crSJ0e%t<7SoB*H{$ngwPQQ^Um(HI?@Z&qBv!>m7vimKdTC(T)8oZ~m-+ zs=QwLSI959@1)$8wjz%rlW&iQH^emt1y^b-4n!z+bd+|hF7sSM(0&j^kvo)ca7itd zRE4Zgj8&?utMyuhnYst}{7ki59W^q`a(iWiX%^=8o8*Fu)>YcASLGKgtl5=%x?)-j z0_m-u;`#Mt7ae{TMQsHY|D=evm!j(Of7dJ)Q+Fmy6EF!>`~8^kBY6$#s85MLxs%XOT>YnFVlmJQr31LAw95&oxl#|C!GfCT6H6mo8nx`B+hJ!hknGGFBPyvJ@En zA9ZR1#e2YFIN4D8-#8u{nytFime`qF)UJS$KTcl^e!}JBgonFWabaUbi39}{UFiJu z56Fl_rV8QPLOMLOKuO`ShjP!)=qG5C7%R91zW={^VLMlILuy6x7bvl}O-%_xmd3_c z7YkM>Y8vK9Kub8?yD{EV16m!C#0yLl}>JLj3n{m;%kN_o=sg*<53A$COWTj38a zws%Lc;;G--`onz#mHvYv_Bw_Jm7CP*G4F#&W(&%r^uYs*4&xBtsEC}_@;f1X*cfsT>H_{STR$BDMqDj_uxBuPa{v(xh7`}+i%)p z*gjgLFp*Ek_+}`sgLH&ul?ab1sh;)Ky?a#!2ha>)pWgjv6wk1OUh6jn!V%9KS)Ph)=3(ZAHJ ze+|?#YxBZ&pI)TBo7zVb=J5?QiJBk2UU+gx_JP}gYFd)*+uX_Bt6HJOIDh+Uax@0X|HK%FGk-FhJ>w-OV&eF87s#DoLobSjuc}f2*b&agnGS=f-o2pbDVm zv6U-4#?D6fX!f9pOSR@^RpDyXtW%_J-|7RQWBVlIR?G&{*o{V)XS^SPk^|ukr8WHg zcvlf?uEEtvqh8ZJD&2deVL$c?U{u*)mqhDg`Dx#vL%zX6wHk1Y2r((^Kp|PRBkgBY zNsYQ$H%_`&Z4axCu|G!wK9b&&cQ3E!+*^F=cu*KwuuYA2!8Nhu7bXuUU#sqjW^@%z zi^Q}6X=CVV7pCVR4#7DPqg1>gJYS7jYu3k^j(__|5LqKF%-oI4sgY3)E(deR zh=X)>N@)g|5D_6)cz4wFNnDBfwdV_r{jRN$Z#W)@a-fL{>PgdVjt19(efyqb+g|Ii zDvn0fk>2Kx^?(g=u%Zt_l}xat@a5wuMjeDV3+;kj%MwHgKzb$a7l(Y@7|?GBrwF(O zBpgCr%lgpT4?43N%cAh{LJ!0}jd#qx3<+~0-#%|cm5T7zMN0`D5irqt6R)o#z2MB5 zGrAH+X&PYPJJALN6?Guhpw1Zm7;^vm{B~1QptC33DiGI^SeaZicVFqjsJ^stJm2$U z>l|ebP@|@^w9W`#b2aPOvFzDd#Dh7@S^y1&A(7M*<_^WR8CPGh|^==P`>%kMmCttj)~XSziO=)YBzjl7n$z3=awr6$q^_6f21!5R^*kZFul4@qy-YW zotMZrgkEW{{xd?EwzU`F50W3#!D(AdV5V^aQ*W~HqhBPD(Jvp4f{3qRaLO>q`k#N}3YcA4B=O=|-yB#`5W%s<>* zb;joXw&!@Ron44*Arj{6jL|nD^$699eV;{QS%~b82XS$LVACnHN1KXv|6Njz3l^uD zvB%p;l&v-0$i>HGgXnt{NLH$yn2_SJo6bg(z1uXz)zdnW(grIZEKdKid@4I92Xg21 z71!nuAO(q}PuQ%8(f@(V+QMqST((^YX3_%K=JUp!ED^+FCs<7^G(~(ZT2HRMoPMU>lMl!OBT zEn9)>6cuXI`W}5}=iFh7azJ~ifl+e;Du6uGWs}jYH+I3Tb+lJyt~c`&djF%0;5fpZ?L zE_`EP&-u*+8HJ9YuL~{wW^+{bE1Um4XRmmt&DgT-13EGSFxT|N?PUB)o|)S2uRx!V zpy=Dp$B+5OZt#!ZZ@=sJlq-EPyl)a|Ra3;z=Dch*3b>SVa@jM_7nZNiX1l_H3i%**4rXmB-29 z70Z5_KoqY1Yrfuvh>WtcsEM-8J=HM&n)C9m$HIUJRTA#sUp+M$P5OU$YG~|5EW)Tb zS=^IUGyIY62&teeJE9~Z&&Ny!Q}O;>AFHwn#85fDm|T!e!O?+6}~cjL%AM{cujkvv#RuoQVMj zMG#tem{88-!c2@x1*K1nT9QB4k?HJzWjuAQ%xPCOW897dSsJOPFnD2^0J{vT)N^Tf zxSSS9fq22|NW1=XqFx=&ss&mAdLO`~#VYl33Zsw9+ioI!~xe_O_pXhzph-~okL&*45h zrVdFLY`CxXIC47A$3H%%xUm{aA=(ubLNLw{ze@a3W??6!I2?LAye+jkJ45r)d;1tB1dM;kuR`Grmq7^U|qlW3rAw=DAJ(Q z9zWJFx_3b%tiiNoXkru<1YvjPqSeC^7tTU?1ZlsY9x4j1IY~rKV)i&Y(LRbiNXV}O z*pSL-4J`|az;|6H22lXuMG}fE#Ancl?be@WRpx649E1!ratA+sM)?1GAVIfsnnk}R z?rof$^CL>H5FyMtAv}Z$k(Vj|)l?Dfnwq-apofQOh$xqlmO9X;MK^zxImdrY+0O2s<~Qi6AS`>7>(Ehkm!I3PS5AhPc3th9FBj0{99Yr zbHqS`#=y5C*JFMz%}{q47g=9Sp5-HL{`)rUkZU3KtvwVoK%CXxza(L2p+Ja*v;jvo|0(ENq7t55EB zwE6>hO?V(>Rv&`|X=LhQ-41Yl0#WI-&AnYZCr@D@=*1b%+TMMOl-%jYt@44a^6Li= z@?~QA7(U>K2Fif8P=G1Ez6T==WGtd*Xl&f~`u{IkcS`&)AD=qkhiBLkFgk_hAkU&Y zR8;Zp`~`Mx^p=p8CI{673=F1CM@RKnSuBmnl||0DZ6_ZuZ=-D`=|`3{0MmJsOK;0S zfDa=#p(64u4A(0!MfLcW<{ufg^?~IaVHqeOZZLe78a2&N3p?_q5kKI+q!eam{&w8K znD8HAOqOfaj?(M0_-y}}AzTG$$6H!j2<{WS0OsPDE&6Jo{`7KnD;oGV&CW!wl^M1w z(%VB%8y^fEbrOc{Kd)jP9y?oO`RxX%F)J{nsw8kc7=Uuz*6c{aPy##$$IQ(_PYe=I|xe&C;5Eh!9bv%Eln?JnN ztiT_${firdJUy3U#@k^D-42_P%-^|j@^Eja6L%zQmR}KEu!H^mGt-;0XLHi3TrOb` z*12;ZpAKgkT3i%mQCcC%$}jLI7WVoACh+G(!oO>*jaA(Lm%SyL9MUTkIfrN*E#sbM zyf>#@FpTS*;$Jk3PcyAr-#bx1+;@k9%ws#DvYs|~r}RxYfjuZ%3~Be&vgkT#b%JyG zSPp-t-^pM6*R>@cyaWp?$@Je?*xpKy2IXlc0u4yJOC>%*x9!g?Y&b1v5Jg-)%>74` z8Zdps&;x#l+j|nBj2SGF0q6i(I90Nq_l#ZGA0j*5oODjT>(TjPb;`UX_0$m}Hu{05 z7i>eh2hK=s9q@ivlll>5ZIB|$TK?%5sn;7+4+wB=Z!#72e9uD&jsHnwmC$BtHT(mG z)ii3L`S+D2IW=d6BWp5!ZKt#+%>_pNXBN>tY!rJ6bO3{;Tq46{s$JB z`Uey{n2Ai za0d&yWN>c_ScP4wMh*_yDQjhu3f3C!QnjSgDqVCjQN^WwJfZ%NE^%U`*+N~5IXCed zbj&dIflP+EcW~*04L1|d_7RJ9k(~qgH4I_L9jsBa5i3hDDIP_Ef!zsU;cogz-nm0y zp53pQaE!tBD4pOs`sB%OL5G__Vx4oc(qtag5@9_(Z%taum09^sz>Vmn(qWAUmQXMP zTK#CyBjJ{zoP@Z4IPsj2DSTCz8xWl+rOC z`Y!yR_Y>_N1PRQ;^8yZ9Vs!=R?crgY+#+P(Lau`1x)j&K)2F|^!!{^l;9H?j0CnJ! zM;14u=m!=zcO;{9vsynDi?o3zH}6z`yaa@rRjNBWnU>2V*~&vJi8iXPtrfnl>bV+s0qP zQf%|fYLh+RSDR48SwD+Zzt;e!_?!4 zZkv5{=Pif|&|e|5LGF`^Nni-9H_ft_?;fK6!yVuC!yRA7a1ud6q4<}vxdmo;;HqF{ z(d_^5V4;+mSeL{@Y+fr*W=bR#Vrd;LQP2({uVWb$k_YT}RX8A;5j(K{4#*x7{ttlc z5&2V`bsP+v!?l}YegFs9MvONTL?|%(;t%ns51u^y3QPpzIXI}X$KIt4Rc}GQwzp0sJTIXrW}pcLyZh+|~av%~U^Nckl;)U+O86m$a-eUJSOLG&MKhoKW5S5=ljf zufUo{NId`!AXg*t|J2FlTB)QH!pzvzc%!Nd_XH7zy>H)d7*in%8^&Or)QaZfx+P1h z6=fvER0uOyLBZOfwB4MW^nNP3H!;70ff$!Hpnz*7(ZZH$F0LI@xU!MNG4iI9P;uAU z{ZA_Hsh6`8Ud^QdFXNXK)xP^)uZ7PfyR~ zWv@{3VkLv=FD38#6?9Le*x!H9yeS(sme2f5cMVbHI*C$#7ir~UY9n$hI2OG5Z`giN zv2F=fh8eSMG~mj;UNsW1fag6X(>_LNwv8L>K$v+Vzx(%;l|6UD2*tNeSE4ulidY;D zLHQIDXX>sIorFgvXFk1YY+T*8fl7U^;_Jbn%O~~M+;P9~T+D-P`rGW}{WKqB1pL;_ zdAz!ko>}5wcBFKW8Qmcko1oG7nTwR+j9etHE)vB;E)vo0ZeNB6CMYQAcFoq`Q&!hA zFF$;nujKNE>0@R^ACsLt+etUQ#%aRk{$kuWLEg>3Y)HA&Z$+X2+k~6;N1ba>-_`t! z=WDb^G`NpF+eay;GqL?5J8E17AA%!DR|Q89?nXtdM!EQ7HHrz2cSwJ*<6%6D6}ed2 z2`L}0tHMHgcy)x$SrA0D=kz@^M+=58US2h$(Ja`K7dQf9e%54;GUOB`zDg%Qm{aGu zNk;gasm}2t+y8cwA&VqBb9m$}gnUlg(~;uG-<33-r)&2c64!fz0(OH~Wf@lM$3n*}Hhwneby>80 z5tboV=Hq5-vLS-hX=d_+n`i6!pQTh}0EdkKN42lW8y}-BAIhKUn>pnMSgj)vXpKVKL zCwutKrw!3RSEDfhvKl3MC#4G3%HU1^k$!|yXCeJ)dyrW}erB&J79DP*_l4Gm)jF`% zTt|X|sOa(EHgvp{v{RuLMsXx0)Z(C@vp4Z1=PLH`=)5(DiCb8s1LSL!Y9T}Ya?Rx1 z{vzM5;yot1_GZ&5{8;!h5n)fjSa6VI+45o#C&qcOonXHVeA|R&Kc__wP#oqVU|Q#!;2wAw&aRpfX99R&Bw14Ryi;zR%S|) z6;!_=Idq35oYMk3KkgzEU; zcCUD@yojF$lJEB-7h467pvXmm+YP4|)JhCO2m&F;s(nYmu{X1khv?UR7i&=g!}8=j z`DH8dn~QbsKZv*Q3Of>JmRA2`Nal1G$$|z>P?z=wD!i4O*V<1f!n=AP1v*EPxh1ez*^)^5f>-=8g1|9!SqdOpUD0&AiYKN(?x{7{IyQne#h_C@N42>6}Sef5$V3=W!<1)zt;X`wF`NKJir=4 z|3rw2^0fb_`1{1DYU-oU z-p3clI028OlGX&t&|_l`dVa7$Xl{-yu&N9S^;FWWD^~n{2K$Q;H-;Ypy$ckJ&YHLgnPdM(#fnD!Ky=wJe z>(!2ws0$1@l|=7+d_h#RPDKgHf!LuffnZS32pPWE{+zg`xTO`Jdp_E@@p=456XZ+1EE2IYzg_pxYnR}j&yf%B zh0#ggUE#ruw+9_7#1v=eknik4N#67R@8rQ1e}8|xq)^L-b2ZhBrLC4Z3uPh3B5rVTjo)LBc@a1??G4Uob{X)WNU(*GYjDxX#qUd_n^!4u>(bE9 z@%n|T^#L{$2OU=>jaT!ve}QL<5LRdAn_Nb7c+z?L=edtGIdaf0-DrK{#o?YFuEU49 zdtPcCoUfl&kSp?bczxpL;8bD69mx)=L!6wIY}4}h3q@D$R9tp(zeBS~WMATL#cq|e z8oepq0^P!VC=Auq8FcxVK1DVw#K)r9afYHE1(}lmF{CXzp^QN}h-en94f7mf`T*kv zl!7ntJ&R%GF{bg1qDTOE^5igBxw9@V3^+|yjpkkL7`H#8zE*yk-i4g@rQp8HY=VB8 zeChWUx#=&9FGcRbm9tlmz#@bJ|5Ib0Wd>DyZ=LiSyT+r76omC4axsbr%7JXnP9g;% zC;wHD&u7JKg2=^vbmV6WLeAa2p+}qOjjXITfaGN?i%8#&kfA%_;V;I=9qM@o!3{!Y zLyRgy)vTSIRs~mGh75zD1P*+ZFK7es8i=*zmzvDcglvFu4gCj51Nkuo=$63GjrGn* z1;jCfzr@t9#xR3eOO3<)+w?T*Y!F)zc9#G-L1$IFO`e?!dz~Y$edeKGhx-77vH5_S zUG%)DsV3;atjeYM`8Z{|V?fMNQcq6oQsT;TPDsabbxMslQIy?P}N6_JsN>BHpYX0ED> zXEz^jWl8+X9ZAfurMVFdP87x@CYgU|&Pn)3J60Tc8AlW{iIxi7M1YW)y;V_6s}|VKxwR zpBQ9v|JJh;A=gq=soaJv%=(o$QHW{Uc+_YEQUS~#hn+9I6V`2n^k1+L#zY6i0&7z#8FhZE-!b-!9UXf80|T%s zg;QlQ{qU+j}<*PNB0yT+vxmQwrR! z5d094gL~N0`n+KTR*EKA4Bv0doaJ3I^r(>Wy77owwH0_uuqA{Xdb56Q zG0&_m3S$hxH$yipoteRZ8kR;$1extU($WBqb<1xfZHml5+pWk!Eupa+X{IR4LfvS< zQs^HzRo(ySIOjO#Fx{^@BI(WwdSP|7fLFk+$_o1oFubg?x`XZFQ9Q8D7I%;0{E5lW zXTVRlw)hBQ-g@lBxr6cR5%g*%rLSMV4mmBPlHvw0q+)^!wk7`tYZw*@LZy~Fp3amK zUJKJOg00S+J-bv|T6*Tw?GMuSL1s=!-tsdzh0c;7Y3`uA!H>~a=(Z-Xf@}%?qQ|f) z;PKyl#k1OQdGWqIHS}v&UIKZl|B;~1pmdsCGesl<4uH(&z=};oUK2e%1amCcD8qUP zd=Kyh%-62DwD(G#F*Qy)l$e+t;DAAOivsYFnIUIcf(j>uQY@F>xE1XuauQ3C(R11{ zn$Ej(cB?J-!RY#!tFNxJbsspIZtuKHg(8*)fFtsoZq#%`c-_atLx!#35BhRAZLyOU zZEPHGD#^vP9kCx(eWQwZJrhWMHcn22cEHHYjI6Q-rV*2%-F#aNY;CFF`HEz>r8#g} z?`VcVQkPaI`gcdB9tbKraH#1Fey-YNS*ZlBO?a#DC4Sr9PAsP0q=lmvH!wtf zluUNL{0Q8_af2U@?Gq8Khyx5FEdC7s2W?5LdvHhx72d>5(SnPaTo=+E?F5!~RYB(k z`M#CPn|1SAAiS(0vW-s!EG76ErSMOjh87hlk1;05UL>I&a~b<0eHamD)z-eS9LmQn zuS&-h5&pSDvpyx~>dk~b4pau6-sfI-y@_VuE}>`pj<6~{t!k}Gx<~|0v|lDdlYDQZ&Khff468_`TgF_apI0EU$0+U%5;3+5?Y7Aa$*s7 z)J)brRYi_ldzW+CA@WB&_w|>{gOzepQFxpvV(EYUV)$`wkf-ZVP^|QWR%3rOiQooGCGhX!>%mBb$G zkmvioq<05gAn{ky?BEqzSv_-N#*75(e6q9xZLO_uOtxf+r)j(Z#D6p@kyhTTSWGrJsb%*$^{BesFF+a4 zw%io-9*DlR%BC!NX>s_~cNxC?RJqNB#2cmMMwOG=pdw~+3z=RlmuU^mjCT?;lu(BMx~RR|)AR24|GwXMeBW_6dV1{CegE!j zSm!#|TIXXsuI?7Kt2nif94*AAK%N)qEi5UVt$-kYGo!C7IUeY3i57p|K8GSx)R5d{ z3HzdL$Kyb#b9L-E!u_<~l-ae5d2lM(N!+r1dt;ec$JxPI?!hnLkx+RA9&V1+u4i*q z&6PG!xa9y64+2%VY^=WNLpeEstX2q}CJu{K;p!m~Man=lxSRoD@H$wSXt%w_8@CFI zxOPodG3IQ|!4fckKs;jy)<3B9w(M*R?{-}fNjCfz=pp2m$5NKEfL+tK?J+I zrW5arF+C;-DhveSczljHdPefr8-XkOD?ha_Vmr{bb)P)QUdx=O*5!QM&@hp=P}ssokWoEf zDBvJ6kZ_=)10n%*izFTe*8wWMB2r+Wq;b%$Evp$1Q{gp@yK|NV`~=`Wjr? z5P6t+7G+EiCk7$~96gnh5wZ>0RZBr$lb9kf-?PKiX+n!Cz+97LS|agy?t)nEFR7i6 zNVL=X^#Mqh!)1t;&sF(%P$dAhpt|a8f&aZD%BHZmzFvQiht8s?*pIyWan#3xI__j< zBD@BslGDI-usT44AgQIDRJX)mWdI$NnAf&Bd*gdNI*kw3M<=f`z35=H?Cq_{4go zu9AC)raM@5j~5a8Tb&LLZ_^(UuDiNB)z?@I6CAb*u_dpf!>+_|VgMX`jURjj3<@L1 z;Kznl#2W%%5dORC*w6~pFqkM~HCcD6eLv8ZZLMqdkjK2DY;O@PI&hn4n8v zG(N;gpbP{g;Mb$&0a-D%wgk)!#N~W!41=i7kT1pv(O;+2Qk}6uEYw>KA0tDDkrXum zWkYbP{Dk)4y(NGGmFACL=d3i_i_7uEi4z1)KwAW#0aTiMc=V_A&-gQ)sbm_u7n0X* zH6*Zj{B1Ifcw(jod5x;*ZyIJo5P7mLyk*P^u+>#hb zV`QfM3htsaXa)$jAaV)>Mos;3J9_o zIk5ONa10EfWSXe|{#`EkDA%%n^Ph;YI_d(G`FO=D{5p*zX^VE}MNU@Yz9t79 zxdEetBkpdjL8agZP)4{^tvrxm?J zpn@%@sbI`kpu51c0V%CqJW3u+D9eI_Szua#Dbrz(RP=E3E!He(U)r8zs3`&w;Z5K; z@5MZLyb72>T~YqP&U6lwrerpZ=PpQeSm3j;!X?YRZ`-@WUP4z-Nt`TPL&HG10l@@- zJr*{an*>C0(gIIn(cwEN1FVl6Xl-wApMkwVR|NKQah*|(E1rS9fexhrIja307qtH^zFF<+_EB~E)%`v-uqkzW!B^=!0; zAOZ!YTyz?eyyN1QV~DpY4ACHN5Lf-`^=q<}0X88e$3&CeYg?;#Y#4~y_2TwC%e#$7 zj##v`wef+VUV}>m*R>gb5|=7IGpPwh8L#omE7uQBt}tQ~tH_@0NYoY!z#Y`u+Dhg} zxqf~>4=!i~RSdRm?vWV)^+CSXBvQAu+^*BkiRfyD7%iP1=%qBEb%v;L{0a*~!`+>S3LQsB|*u^rD>t;+?0z_HOa9RI;`ez%9AYPMpK`5_!w-89bbfY36}Nv zTL?-Z;p^-#WE*9Cob)XE^j*DE^k*5EPH_|p0RDS$Fwo3kP1>KZl3>liI+$7*e01k6 zk_U8*H9oABAXb~_`%w=WC7zM(rPF{iGwEw4knp-2arl?28hil`!+hHMenp$A!f#aR z=d2FRoOO!TMfXi^^sL&@lpW(=r2sZpbO3DD7l}1yrzkb_H%S&T`V5699AAAbtL*)7 z>rJtwXFJz4q@Omd$DF0nhi!wq@4j<7Kg6*@el0`a{Pc>BgZd*W3V6QW1Z!^cBUn=; zVL?in2>1zv;87g3F=WY4lln-m>)KP1L;D)^Js-~M*n_utQY zX{E$K;b-wzLAipRh6)7y%21ClL5B=jVyoJM zk{=b&MXj5FYX~g|ZS^oy6qw=b$jBa%-rnKk83-C}*~<~sp*E%3zD`0y+l;WYe?XfJ zR{lTHraXFNQ%XXN(FQ3i#InNucc&IgoYqXx1w*C+`5eX4ncZhTSLgx0P*y%p+7E2> z3xx6lcilf0yjfUokeg9}abU~t6Gd3>#5IkNor~vXx>f)1apZ?Dy%)m)=Qf5-9DsGZ zMZX073mg)jBe|$zM+q03nwlC}K8(|XFrQf4W11g&drR@hu#ZW#2yGO$xTE|$AVtr~ z&oMaEP}s%4H-R={%U$$SF+Afm8o(eBz*t?5=6f1oF2kgw5NMXb^l?h+9{;6YA02b4 zi$!lwA5G0jQSh;6!Qq8J4K4wSPMAc&hT#;(#f4ZZ5PhAW$JRQbnbp9_H!Z0(yu1Zt zH)4FD;qde0=HglwtcLk~B?q%MAyy;A@Ha4eExq~a%JAyF)58Jg0Hc+6cA9GsLf# z_WE6)CLDCvc%6iG1Zj(OfOfbz@FuRi=g7*)oJBK;L$(lGc>dm+lPw|47qd~Ysz zkn+5xTAfcwiC%zF?Ot%^x(E%>IndoAUc6nV1G%5BQckp$%KcdV#icc|D{Mn#N!I6QovDEHXuq-{+Um?-M^%KHuIJB(W5wshoYXwoBTwg z7#>($ObrG|lzqEq-s?WqB>hLoF94p11XDDNx?S;UrYN*rEb_QKpI@7?USa0Wwwgge z8r-@{Q{!s^1{lEBVnhw$N`de|ryYwdysemSkg^4p38KIKF;^1%lK(2lY1Oz*B4P4j zst`@i>z7?My9aGV&O1E3p80%8{{uFVDt8xCnSqtkvy156qNpF4)7}^z^SIBZz8)fw zOHb3|hp|}Exx}xsLCe3(1$nn1hj!A*$TcDGi8!-3%6mje(lNh#mc& zH^_WQKvP;#kr`+S#P?;(-KSklE?Xc(sG>9mcNd^1qV>o3r5sdxWbm%MTKR#SpRo+1 z)|WMVtLSMeoU$$+GwC%H^?B~6FX96@3p)I=MX>}E-T?$Ll~Qq+x^eFUUFEM`=bIv_ zlA4q4Z7hc9c!9_DzmlNX1>>7{w}0LjJV^!lDF&VnzzgMo$xo*OpOxQwdi&!UBd5Yc z%oa=eaonM`jRCTR%7PF^Xa^gybV0j^(OVn9lB2O;oaY?qxda1%d@9Yo(7nZHkMjow z+xDqOxb+EnzJP9HszC?Rq&4*t`W{MXyx!M)5X}f2uYP4K*DeGn`oMP~37H4kfGAJo z#R{-)tGRMjUu1*Jw+;om7jnpqt&lq(e_kssYKx^T_5N?}9rLi?!KxB?h}@}9pHLFb zEs^LvxM!LY1vdLU-@0Ok6h*%Plm;w|D6I%JhZ+ZH5i^aXLNuD&s_1c9l)>5rw~wu( zW2w!t#UA>*=$Xl|DA8&Rr6YbsLW+_a`)l7GN#?JU6DLS{ObTkSy#8eqNHk4)Uu=rD za+r!G3LX6Kn+Pdy3nM(8c?g%)7)gDz!j5Zhl75v^JRklb2C|&@KCZxn#{ha1A0^sD zqdR$Iyjw8*9ZNz22_M)7Xkz5No)=eVm~}1D{wjn==-y+iVLRb!#;@oIJd|L%s%5EJ zf5J%Z9WNNtf)U)IDu*ILnh+1#&3n9!R94*JUFB94K;Gn0cU-&lEKYxqL#Nlvr?@YL~dK>Uhdu}sHmNch%I!nB(1 z7s9k)f2b89OfQ~Q;pbah=Oq6&Y3TsQSbtekxzEIw!hU|=Ix}Y)jVdh(rUhzj1NI|B z$=6{<9dc75nxctCZ8ZegYH^V_-rp! zu>_{Z>Tmw>%}BkZ>O1m}OBG2Jo4m`;P(X~vYJ^9N%Z zS|r*KcBy&w>WUqEbz@Tw9N#!M!?Uz>_3m`lviUhYe=RbOcm80w* z5LSL9-bggDv?UU_&!wj03?LHOtvGkl1HtpnYi8F}P7Gn)on{(NMFT5ILAT)8vT4rJJ*`2mc4&oi$G?Slvft3(0EzOo} z)#fP6Rce^~pn%_b(UNFJqBOuz;3S_{V(R`2T;42^c;a8N;kDoL;FQ&x4eGpA`=Uzw zj!5m)UP1y5K+dw^k_OubsEjR(+Y{g!Ty3njDH^o|?Y$BP2HbORV~1?e7aIXB=#D=0 zDs1bR{jjc%1#1au3poC88sm$l6r{br?3l7k@~zKqsZ~lefvPX;8+x;Fw37-Rizvyf z(o$#i;U-}ge0fnn6J~9d@Mt&HZhNqWI-#@lD@DTOl=$=J@0jFiH#K=ui0xeDtl9?f zwk1~Cte@)xkT%;&hM425E=uwZ4h~LCOzDFzoP?zUYNfol+ki8CayZ?SW#xbsHZCde zARC-UzY)Ig8)V%Q2Nu zo3vKRjvE8gK-~=CB^n%fg*Xb)%m)DpVqIJ4=<(EKv02eI2h*psxx5g?$qh~q2io}i zwM}#u+PT{#l0Z1G5-NRkq0kXYvQME4<6=fWA5zW+qd=ViF&P*v*~eK+^k6{xqj@_} zojeUYF?AKKO`zlsq7WEprAB!IH;+L`QMw`51SaDV#LCUR!WsbY;RCI+gaCzv~E1YWBdMQR8F-ryPq zfA6uD46s6CYK3`b;=W9Le8{+&ZDBWF>p8jk>gjS&TM7zDfAs6_K1{Co7WdEd$XMOh zI8h!DsRW{eF4xu?W0*4wrfQaS1;z2tvrfJ4dyGI?WE7o+&jlCi;QaM6GYAy{23Vr4 zvdr+xLS>KYX8aSrVQ6T0s@N0?H!3Q^E$rVPyZ>B=1OMKU5DYvYKEl8 zKZ|vrTU1!cj3iGR`H+tQF^c{l6<0)pJHRIc+z$TmCexe^Jo9mgg91e8JDKY6!lVZD z1>Uqado5-Of2zQ5x1GR*g!~gD%-}$`Ph(V&Ii!1kO~GvzhEWlWihe!8s5~32B3W&iUJg7Ja<{d)c?r77fv4Mf%XlZ2r!H%f z-T1E3YvDFko0WX%4u1-~AAOpr`Kz@+{P|ma80A_iPKT zCw9g!Qn^v)qa467fc`Q*ZTKkpLMlOvek4%=yq;UWF`-*d`ZT0VF!Jij@jKGVYg3d| z9hMfqjFY2+UgC7qQNivFphF?B30-*(-O$$eHBn^71WMf2L02-lZSpW38qa9PKui4! zZyBvpXkRb_(`CaJG|>rPPB#bhM3E%$HZkeB^C7`!T_D2|vawNg@_y%RO07(odP8pt z$W^>Nv7`1cZt`n%En`@DvHxJ@gV6jJb9DZKNPj0Recv3dHkU-W)4k!>M#jbp4oBt! zA7UyhK0v5LAd7@h#uPH5C4q^Lp=m{1Wbc`ZSS|fsxzn0flKTYVbjE+q6huv*KZ*1&_Gp6A8G$PKtbLl?*loaWz4(Dk13@67k@5 z%gXI;iuOd2wywFqJ%cm`HtUOEok=jw_T6vw3j{@}G6O*`l+V6wkx@`^@}n$*)=}xg zL+z_v;Tc%H@h|LV(W{7THuY7&wP4e6_u{?)TY3ZPF5pklMyqdrWAvGoZ_=M+?dm#O zuZYrFIoA2>@wGVAiDY#Cd<2B}L572m9-?!P#>=_()r{yE066v#@Y(H7@0@xjUQ~`M z-C3`~^Uzz1{GuXWLcVX?^s`C-A!!9scmnVoYtBH`{20g*_yNT~+E0H1q1zKb?@|H) zg?kC)u?lP&fOnWbcWUU#ZR8GM8`ev;QetGntMQERaS;}BdV~rK-VmrTltoA>L{Tnq z;iMw()Lk%BxD|2u;d;auAyLt`U$%gd19%xg>|k9mJ?9K)fXEJXEAe^&`29}Jeh7;( z21Cw=63M%m3RR-3g2%^`Q&%O*S9HE%KlFZ|^3dc0xg473F5kzGu~j8NMS%`H{ynT; z!iQ-HR@x*kLOBRlstIobUxt^<+S~cPicK|7Wc4hr>KIgREC1qQ(T8MTFRh#Foo1V0 zhQYOvqWspX)tp6#9`~wWX^1whGIL-oMDN}neIh-U3NWfjY3X61xQ!X7Pvk!Rp0GLP zx^|j~Sa`~(&O3npxMLP?OfHP0cRP4W!-b1)mtp$ ziDNq!H^+-T#WM7MNc+=1HrGVslkGX_u>u=}7q6^fzdq@do3?i%$)ol%I`{;S_E6NA{tD9!`q5y5m8%W?qwEjOF^Y%S|KJm^OxAVEo4X)Mp=$ zV2k9vHCb+e9SoJt>KJc^y$e;3G8k4v_j>WhQ}<-04sTcL^buYC4?<^9gx$ShLT&6o zeS~z?gMpIJMh7-TD+KL3JU1+@Oz@o#sc`s><}K9~WhbE`+P9K@UbNX>9m+Q6^!+oj zdRb)bvyS?i`xM>H57EU>@9$9Sv|1H=_xahOMnR7wcM=)Y<4EAEP-p-M2rzqmkO@HG zfwrPx$Y~2B)Lpn^a`ay{^$e5aq$p1eJ+;Ze(!;2WqoaAf&qM!(ucOl2Kblx&@8+M0 zd>!)nq_1OHSV^&fC{kR*6th*aC41O46aya3WmeBv0F=x$+wt5Sy3n_eR~hG2#D-pF zyTg#S=6CgpPYtEeFm+aMsl@EZf%j$r6<33oXQ zA6ry;jPr);l5+LM^;3H&G7AMx>}NBY*JDlJrkJ`vI!3)yq*vpNWB#)yB3w30uF@#00csy7ywprhTx1T6)=d^KDGbK zlKz_G`me_jFq0zFBgyLDio8|u(6@yV78}(js!oZT6Eak~H{VNHbWV!s_vc|NZ`2pX z$YRPMBxJsTOlkt{GMjI{z{hqwO}bFx8ku^4CpO>`gSt0*)ySmWVs7p&2y}v!-xnn# zY)R0klJFRzmeo(8PCa&vnTT6)&qB^xF$f(VY3QJ7M>;kN3dT-fYqyr`u%fY_Pbr;O z$U~C_r0N$G_fk_#IP^1SHn-Z!f?r@kOWzO0HyGvXNArB_Ki)A3eqRmB5!WO{XoO#I zatc$pPrP!t}ftnI<7#!g1rAC`6Of2eQNemZ##nR)$b$=kI|Z)+!MW}e!;SY*n%&)PT|?u6 zkz#1^V>Iuh-=HeoA5+Ur+}uaIw&dE6As`8!IlJ#)`}A^$cMys#rGX5xLM!M8P^I<$ z2~JiXd5Q3x#;StO)o8c9YY?R*Ha{Zu{Wg# zr8nAJttB||kiZ)ICUtv8KsEy&0T3J#Rn#^_S_M!u(bY!!`3G_`GB8bofYjqUZ*QtN z;Ijfk!vX?8#XxhZKByRQ>CUJ@4_ira0-7{jQ=u2FhTdmkEDYiTeZsguFy0IS=Ji}Q zk`aJSgAgEeV45~Af)C*55aI~q(!l6oM`CyN$IsZt*fi}(U4puAD}V5^M{X?O!{T+5 z^bUs}TGu=flqGq`q_Pgfa<3Uu4G#}XO%&~2cSD61q^Vof>6SD3HB`W;I^*t2#taGE z=xcB5+V%W6>?E%H?76mnb>Ny?gz&BLp3M7du?3ls*L6PwzlKbKDxJM|+Qpty9rI@6 z=@^S6;Ph8{DUKv+s*LP?Mn-(RN3-V3axy_2461NpwHuTP*pYzS1UHJ04xguAmDY(+ zPS61m?jCYWT;$qiVZ@H|NMqa$-DGgFbG&M&vaP-@zdbTJ52z~D0G)E5mM=!Z$9VV~ zYks0s`?sR;Q5@^pw?kAJrVh^+2Uj^Z81_3h7fJ&A8nnKIEH{Da>1PUT`-7Y`ROKr8 zYJ6U>yO>)wQ~p0iq5e@;`eY428~RO9xL#df?rCzSn@hfgzLQH;S9N7$&5gCB#h&ZQ zNJ-aJ;5l2{MTlY`9~>0W@yNV}!W5zd7?C{>Z3d_H6mtt8002(4v_w8212mpsx#4Z} zMQTBW`E%x7S|3n3fk{Rt+$oeF9uCz5aSzllE;zb2(#(h*eI+s$1N`Y4C8Z1S2wt+g z0~JpPaumC}`BnM}MlnxMRI>E`P3|jz!cI&VQ!`S@Pt*hZp z$B85>J1X0a2rnqI(m%2KRfVTDwZuR(0ZfR33Uv##@4&0d^M-T8p%-pGbTx5S0rlP}xI}3y`>1DYY+Z4oOe^yiY ztLNZ81sn&>0XmjwO7I%6qL6Na0lqldqUE1jWfP8qlq6fpp$rWY{;C7#{EDFp9&1xkBjTT_goCp}(hE9Pyna-u z&rNJN6P6&>cx@+Nuv&$NW3-mbN7{TtQRxEJp>PgkOx@zBxw4l!By%Ct>^ZD7`ELsH zMT8(+7~eYzCrxGNx!TIE<9)SG@5H%x)A-o$gbu)II#&RbL26r03J-9c*Na_0`|w$+ z4(1h{RE&As%o$Q!hP8zj9fGQjGIU*eS~Me*rcB~iE zmm4)WFtQgvldm7{fgwh}>Hwa|{R&qN7%u3jTJ63@Qyv}4@S5(Rn6))GrFx}Zm%RG( zkV|%6N2!x7ZFKq>?UP$x@ws;DlEN`nr=lt|28!e;8(&*^&k-MkeNeMtK1JjTqzZ8T4q2@k45fG(>12*? zPf=#F@1i)(NpBrl_sOP1Mr?|<+UhFW z>Ss);09j?v$H;Q(-#@0a5fT9Q_2)TS1MYtHfYIPhktaaFjl_ozQlRy)NlF!lZ{U(1 z{g{$|Cp){$CV9WPdFP|^+X7XWlO8X~%m#%t;$SSA92Q4j<8@@l;6BGcj+qO0p^Qs= ze+6V4OgNzD2#)Of94uad_yjmB?i3ZxN4pK_b=OhOf?WlWv}C_BprNyX9l&#FUSK$S0aIZteL*EVaxTbrrw4qr^S#rf^9H^ zP#&o>E$)I#W0^!`=mi`6^IU0s3`gt2nfu0`H}yHAQ4f5GBFAGb4i3Z16QYl=gP8e4 z>;J~|agR{gsfm71JW%}0<6<}A;-IM#WBJb-RQ7GZXi%e9{H{T*{-iUx8(R-D2nnXm za~?s<2^k|qmQ)oUd2c=T^Mv&w_zjXsNDlE>AmaoBq3>?i!4OAN7^7HMY?Jk6d-ctNDv?zD*P8DX#T*qqq_v%w$?WC3;>eC!^?Gr3&jT1O;Z>A5N=Ees)N)K*o zi(Nv7%mHsb7DhM>z+K`q!ehFfGH2E%%`;8}t%8L@zAMgjmi5=L@4)b&rLPpfA`PtS z)sDUU_MM%vNjd3T8pNnL#jw^SHCUmJ1kns0NRQSF=@m1O6&884@sbZ?kiftKaF0R( zmY8zsVvgj7_zg&WC;BrC6Ha*V3T6;5C&uF&{f=u2r?rL1X##%L3%A483p`Sq^!hQo zQW{9+5>gMz=p#&m%6-?*5XO7iB>n8})U<7uEqN~U$*_Z_WW9xpT2k;(QJ>|XJR$iq zOiciX##zWG$f||04nrR()FV5#T&dW2<;gOe^<(bIm9Nhe!kii1%p zu4Gmcx(Sem+5*>xtFM5b(YIq?c-a<)zOY5|$U1rV?j6Q%rEGg2#B%F?KsY9g9um8F zNSp`*WaZ@_4Gykxc5#784oo2x6_6q}G7?ySfwv1R`w=XO$`3*D^ zWrIr4goczF%AwZ}26n~#pk4iyK%0?fHSM`RZ5GV3TZ2wE#u$g(J2(4;MaP9AF>!IU zFdlV%X6bUGA{shU4gx&kG=&&YeGo6KaKWEdtQH`ciDl{ z}M%-1Tb3`(+XV7lQmpvPB8Uwaf?A--?jqH&ZMw*Mj+2LWp zAL5OiQ?$x)wq19(e4KOJMs?YOWx*?|gkJ#)f?f~mz=wvS)6G2sdl)(S3#aXnNEk!I z&td+d7>>&K)X)JOSZjvXDCuVpO&+j(sVkI9{3p;sLooqmGZ@8OQc`qwZf8=SoC^{h+C`W;QK|J6vP98m>m`6A1=!-sVUUm1|l4(J8qu);c zU?|eGs=KZ$H=bdMn)T9t@F0~Gr6@UR^8EaEn*4X$bzCvuQh0o|I_G43gLR=rg$A6>lgK%wTmXLevbvDM>P&)YKZmONy z*kqmm$SHtJz0yC&aGB9e2R~Si*eSrDFL0Q9nXTfG-M z!ITwE^x0Tm>&gceMaEUm>*??>J3s&}l-J{enK(0!d z+XAl+@||^~#4#E9z-#n&Wsbes2nh|2Zs-)Ach?>{C(<-;Guw_1Lt*c4o`Kf>zp$yV zyJYl)Rzua>W-E)T0jFf(FQ62hA>a{a1J>44hg9mDIlno|Nb7BCbT26nBO&ml`_>RdDGq9A2)=%X|q%_DPL_QPOKH)_H*fqc3WMw`(_`YW8?@#@bdlcEgWGpGBxwf^HoJI2(hYDC_+A5c@u#pjjl!7fON7k6!yPjcw7&1IO zc)-^Y*Q@sEVAhoJ&m;gXjs{UGkJ&qurU``cqO7)V4cR6tmp6LgCYt!qa(LK#j@lIPdn?>V*pZu13> zVJNDQ9%~9`6&(D%Ht>qi1~rd39`q!fY!Lr|@#Gb}ogmy9Q_P2y-c zslM)}K?(qyEfyc>#(*;27w?*y=n)%D#E%6ha+02bjo@edg@auUVg0}7V7H^=gHd0& z7J@70QW~9eji(J+U0tY0kR(J$g$f%D#8PCH5hGG*xv9j%ZbuSOj}#ueJ>IVye$chu zh<|P#czRcoD!uNI-{PLZ!SbcyN2SqJGH`g(r5rkgZ`Te)Ashe^0n5(C^v~6bz23Xu zXxocv#+DOQ9Q4@4Muk><|A-9N)B{m5-9zcOVa$;SOMK6o5@fH>ar=J2+EcHW`INg( z9wH(cG%t|00Q(lfp&TIXcjlk`&Q9iyq1T9|!?&P*>JYAPJSWtn8CM&vvcV7nN&@0; z98)$~b1*frU0v~4@oTKY2`i9SR47|%pqauA3$4~nb{N(lXs#j8CkL}i>12Y{Hi{}n z7=nZ%Rjt|ME(sOuuV$&^7sZC=I+?^rorN^ERfYFO!d2~4(93oUIxWBHz69qnE=F+t z)0hawDTH2^j;OBiMvy$tC0ENsOuH=ncH118J3TmI+j)`@`$K`CA&AEH*x9=(6Di#> z1luBzDc^Ol-8f5}+I0DsH4q`l?>C4hNgTcvN2SdGUviGUMcXXdZtxwNy$B6JH-;#& z@%Dwnsv;fqF+py>WCXg;8F;%e!G~1VKcA8cscZ#n53LLy7Qr(w8k4s!-;e)K(wAVY zIuFe=nNct&1r7Yq4C%*TKK#2r#X2K%?sTK}61RA@Z zR+UT6+MOyOk9=W}0i928FBYwChp--+Uh@Yw6fyq}S+wsa`J{jmu_3&K#ka~SDyptq zg3t$kGYg>|9BJ`VOW}eA9IueI${v;R7DqnU--QhH9Q!3?fb>Km=9ng0FSye-)D2qj zxq14*ruE^A(2ccm#HMvrN^7~EP#*%y2vT-eoDVV`H73@jHkuQM0Dm{QQcGOKWBCKk)ILT*$QEjEav5!U@r*!HWKdy4LiHUrH zD{P>4QtmtVE%_~vfDa?DCfTtUr`_Hgzzbjn;|DGp?ZjN5wxL;w}nQ3%UBU2U-1BFbI@8S&yAG)JM;AxdDBGe|9{3@o)M<_f>) z5D`1kwkY1BE~Fr?nqG(l=OjuvXz?~laH`-}NY{&e4500S8qgds$$W7!{yrQtICKuD z%beE@)Vi6nIE@H+yB*QCA#D3R*XiKdE^+bu_Kc6kBiH2360}&!NlPcd;F^2FZKpPw zEu1%i0Pc3w0OM~tp7M@0kIpigy5L2;Vol&M{vAi$rwkE`=SJjud~o|wiF(_bDmBgO ztk(M>y8D+FKS@YUjWgzEbxDhZreQVFG#vlRK3u4F^V^1#)hHN@<&sw|lUl|7kEsMJ z84`pun$|!;a_Oh4!JUDq8YJC+s2a|e=wzuZLm&4yv)C<7>Xi3p`&(6Q4i9g2Um)Jv za4d8GK86Gq@)voy(%aV1+=hWmebtPt0jm(J>8NzTjI04e!-|WG?;Xwl6F+?AFZ{6V z-|)j%!4La9XYhaBXq9|@o%*(WCY0$O|70A&$6YsaOjE3uW%E2zOq#_jSh) zAYO;l02c*Vr(bjps&m9+YGaaS!-4}h!k@zmZaJ@0l9kJp<-2|ME&9%e(Ju*aPOLg976rCzCNP$1K99mf&~%8Z zvKkr(4o6!Z@X(5FYfWb1UIDNzWT^P=^pLQjqbb7{zaX(91zw8PAEgXf zA4JN~yV8FsJ9+PgssM0AP~Ec1gg_z*S@F=gDD|<@u!ZuWWuFM8#hM41@u%1{pEJ1_k^>5H}dLiybK&ZlD#1C{g0LAwFd&2Jp9Fj16f+NJvTf z*c44%c6}M!yGI6)9PI@(9xhJwX%80fF*MvL5;kkbF$MwJPsbRNU?Fn=&q-x!W;PqD z-FbR^F$=pN@S^AGbn`m{XQwf{nv7Kz70gm_|FbN;dd?7}61jvAt%FwkKpn=7Tk+qn z7Jvc=Ht49D_75NYUJZhI!+2wdD87B$VmFUHbq8&OIOY~d!3LdZqm!&Zfp&N`Jik!l zYb~aOChrl&em^GDf%4JRiRj!wX2(fd7N&7Tc7Te`Dj<=Jq&e%%UaEr2=)O6Dseo*;k@!+L!nSjIa>`~f;D1Z{_&?1j7! z>IgH46!{OKYyj_vq>G2dIlSaenrcb|lmXF0y2$)gsTf619B+(uFk4b=Fn58VBxvJ` z*IJ6@zhxCXR?TOtG9t>|btnHxxqI^eO1XRfE*Pl;c6Kaq!-4yISW%%CNWWhS8x|KJ z)&Wj56rNBT&tPqV`PZr`A0x^5UzlZpSoeqw5X67f_Ut zWLPgVP}^KmV8sNQYJ#aZXf1^T)oR0(T#Q&6%Plv4 z>79*bGqEP}HQha)8tRRRc6oAe?Y3?taNvDCF9gGn{xK|Artmf?$KE*{qyXXkQRz60 zYsOO{A9hrYibNz##RHv{3sIQ>{*Y>}`^eya&cwE813Xb8ZTwKT9GpNKM!2FERS1~f zK=Sy0!tAs9B0ICvy{3_N-kojQG3O+ry@jrBER0&wvuj9eAvonT-Jb)uYYR1CIUy7T zZwdqo`Xdkvf7ya*IBG`*xx!9L5ocnWLLmCg^8eM*}^Y%NBOfKciby0EgPrSh?f?qH zCk>c~b!5J~AMX5!!yV|z@au&(*4~}9j|&2J+)zluAkiNS=%A{GrWgXU9o#o{li*W> zdc0nnZYXt-z3X0dR@75IQr21w$rRq?5RZe3bhzUkrEW4=jyWjz%T$9V&$JwABuj%N&>vO2YU^XxH;G z*52Lp+l=g~O!^YxM0-%}3Y3YF$TgR|fJ87P104lyUwpy45(|_H`3fMaW(#cCfsnM} z;b14g*a2q@`Afl?lwepuxLb?eL2J)|mtf*)$Zk~Un}HYfb6ZayT~de8L; zPx{L5n;{)mYw7!(ry~@Ds_O^7hRo^@_k78%dZuJrO*J!)af{ZVTY5m2EpHho|)L#@d zImawTlQ(wDd5os_8EQ;;@Ywp_5#S=K|CRvXS}o4)%06Dd0{LNy-=r1DEW=7`7zPdf4O~ z19yToD$i$%$7%kAtp83hym8OH-G5ABfDtC?>$z7u4>^jBFFNxH+0uq4CdZO4De*#m zu}4g54*Y8q-xPyX((aLzT%k|{zm_Gplf0e_k?4s0~9=h2VUFBF+gV{0m~cJT#iNc<;UwJW>~h1en)R_^HF0VM(_505Ge zYgi3%{@}d=u1%tK54+W)KIf2Tca&vpnGGNk0Ii7X3VKC-5vOA^9R|U@zI^9y+T9M_ zG*PtEW9_C)4%Og>jg!uEGo^NSM%XLj@qr#km4Sm1!A3ZmQTgE51bTp|8DqsFiASFcPP92UCb zgx@=IWgqk17ORhn_|GEZl~2EhMH!>y%=w2*28XFf%D%Bq5RD>{Nq24sB>>mq8*-_-uSGp?ZY?R#T(p zN`AXcmP6oPIf%A(uS?!rqAlI5>J>Hga@4 z1Gzfz5a__KF=tl^I|>E7#kPrfA2WRG|6Ph3;{6%iT}>g`6h!ffb~Q?_>%C?K4F#^5h~xK%}GHD5wXlYUyYNZE&8wpRpF&-jEUWlLG`hx=g2o6}7TL5EmSGNp9|UPI9?;DhR*Hn^6l67Yr=nfiyH{h^qi97L zqFs2gajoF(`wXS7~n5JrxNI{-s+F7@UM{6`suNKGG0(ZR2$=YsEiC=X!)E?i*L_ z+7N)OHB3XEa~CcpaHDBWyO8*yEEv-8L;~5)(5!)tFUu{T^)x^tdb6eM>8mAbRehZg zjF1ztAW?k8Ce~OJnqcG(;QW1%mq&bP668(;UdDIuef-y{XTDJBM$d>lkQs)|6e8}R zrG>=>W;Y`4SX&wYhuqxLDlA>6c^h`76&Fj#$z8TUFw_9%Qi$UzEYV`J}Ss{Sqm0U$+nP9Py) zjPv~&j~=Xhqucm*@#)F>YOdnrFSmQxGr=~*yJYJMcko%L>g{X?>?D8K^o(ZV$6(ldnoP^4b2~nKb0$4%M(1b&@Et1WURg2yz;xsNDxb0yg#D)UL2jCsTThPy! zy2p{@(wMe)vtms8_is?}pkIPj*)8~Y%vS+O~_twumcjqNKVjpc?a^Ji!p@+$%0zk7^X*5 zg-DWnyqbtWQAnX?n1S+;$8De3K9=(i}GWV&4D3epXeP?r+vT*h?!^-8 z9?(}4UW$<_aR{QM!$_j$o_TTln4xXudj$D6*rotxzj^meI>xFQ)82Ru1{{2nc4}J_ zy)QLJteJc=0TxHX<)j#CADKTd?drVXZtYH;KDBidXzR(N_l?sYm{~%M(%(|l^-Cby z=2LcOS(#4xyhR||%l_jC(TyePyF1P@%xFs1xyR<&hfD{eDJS{<{N_#F@UXJH@NF(G zE;Z|Hr*+a#w>x#0s|hGCp9xK~zV&Qp@l}UklqmZX1~@I^6DdZvZ?+}f2{e8G{N+oX zG-m(xjXIaEg23MsG=rg1eax)>S8e0#2v(>53ZyQ#TLZ?Nx7 zL(NbU7p7Lwv(V>x=&N4Nb)Us6e+Hr{`j9}h#fASx_^!mC!grCeL;fPA{5d}|(GnJc zc%25s-~+ZuM{R-A6rp^%f)pr`XTUhx?mr{Z)@Y>t8j1FBiG=>m6Q0Q7u-#rbloJuX`gxU^pua2|=TZ=BH-vSjkMg zC~Xg$wz`%=39aNe0A5T@9D0C`mp`o$5PvgC5 z$Yyymcg_4irSqP4`YjO6Bqcduqh(gp44Qb`Y`o~x`l4qd!K%6*t z^XCNULD9E@ykmjCij*}90TQ{2yK)dtT8uxtoj9QfB8!MMJx7F(O7Gd8J7Vz7U5i*@ z=FaD7h4GCSEk0CaMb*L(*q_dfnp4&9_Rkr;hdzGs(D4gm1@dMSON$}(e24QzgR48-G&ZaI=z z&E|#4r=vTB{4s~^s`offJHEYu7Vv`?Cux}M#Tet4W*bq#?)JBd6!EP8oJc`NA52}m zOajyFgIxZ9NP_R?d6PCyHGF(Sy_J(@^LJ<(NuWZ7LG+_rqh`p7g8j9v?{!E<8bq-e zg91Fa6y_#8Ubu-?&wt`6@@U37_`0&oQ1jivGZGP}CEmUA3s;s4z@BcG*)?c|BMQwd z+?B1eLA~N(>JVAYD=!iY2w-bowF(mem~l|7o`1z4?tV)*OA@HC5uL4ZEMIY2JMYahO95#3-@u`<4Q;&|@HNz@}J`*_M_Giq0P5mu+ zzxLZ3HEHIHE}4+8Ohfwo5T7%u4xu{)!qnjn0pE&8eR@A9QLi95n?%V)!3&@@A^p^= z<9_0v^b-}byJ~BtzOz#OuaN4i z6PmHaiCllOOhLQgQSutctARz#eg@SPyS6V3b97T1xkvjiUtR1bs z##8Hev3Ak#V(nk_E6{aK55EA$2D^@q7p_WpIdf9|PlLX+L>_Xm8YZz27!N-KicfI= zNXXobbZ6PKIVE8W9|SCrtM~sX65e4NRmWAGiPbm?;o5ewXPDR^u%S|d3D$G)Kg_=S zkrxR!?L{pat(~|k&=3pGBP$<6coVZCMUY~K$Z+({=i(m*dyFGyqtThs%fs$aLEuMG zcYq33bRUJAn}nc1A(}Xh2;plH(x`9*B)7OtJmEc!WH-p?;B$mJ26eG=tnA3c5x3x@ zJj)R1CcV}dXoLj1_3zNFLuTrKmTx}^YV6sNJ#YT}nC7nG<2pk1Pfcum(Z@yp1OPib z2Zx=lEg24psh0iClF+UrA7rwUf7kxyS61k7SJk~a9#wZ05Cmf&#_U3u-&a5M)Q;<2 zzT0dhU-uV&XGV`3Z*_DaHsi{-2@fp3OOXhG#+@!z%|05eM{$Eb2X+oLH3u-u3DYGm zb>RJy-y>bQk!z2pNEiYs9wPn{7yaTcJf=sOJ4%wa*RLlgm4bqhq=E6G1n}J~i0UD8 zTDrTtFP}-M%YAk|HS8p$HDqivctMg500RyQG`Ol>AT(zzge~)D+_1;#>)N}~U!ISk z)*|U4POga8pwbRz4H#JSgOXJ{KC*0$!JKjD#ZVT*85PC0V5SEQM8Me{ID6K%dFS8 zC?npe90_$4LwfsZsp&#hdv=pF;q!uaF4gtBK03> zZSM5Ih^W%YgbVLYpapP-AesY0Kp@S_46r+xfEgHcY4qukeO?qSJCBL!de&#Ni>TB9 z=YF4Z@q6y@R!sVynqQ@S6W^-twYc$1NCrl{>~IT?-qJREZh|3Qf(o54wfvS@bE=MY z0C0Cs1MXRsGb1nHt|c1`t;Z{ILr{g45Vu)QPUDx^cVG7rtPKhoiHL(aMH7Lpr4u?J z0RDTDZW$u!R(|y-N%v7bm$LyIGne`bU3-j?7sFFa_E2y8`ba2qNkz-2jrZ==BD1ZK z^WQPtRvPD{tkEhHt(JD$g$iMM<^@T*mySY^8d`1s+ip*bNTl9Hr9OLisy>FCi+^Ue zr5?vC*m0y^U%*%_QeEgs@fQlD++qhC4-N#;IKgVAHogdkg?BsS>0wMcEkTeS8ISDo zf};|G5H#Kfdz;oOxQ{Nt04j*)L7{CN3$lUi8$|f%FJ$(}@dChf#3HOrd#~J9UQ2PP zvkRT0C&X_fXXlu{wfOdIJ)s*Nx18eC87P_9rN4k^#I~G&ywLJH?!f;r$?ZsGTRacW zSnUla=L=*xg1@ z@64c!y1Ex30zXvR5GNzhZ8N&q{~*A&!GVoG1Tfu(>?9(;JnZl*m3>mg#e;n&y6t}+ zE1^!20u@X3WZi9iX}utrz~MT7c)2yjBSA6os456_fN^n@Zw($ zh4)h5=mdTATI6C!Yr8alfU}mj27X#R8It0L{758&y;ru*-kpKa56tae43r7pZ~ZPS zF~oQGkCdQ1Lh8$bj4O1zq@z|Gyo+O`7q%&!4(3Bz*-b*#nIO~f6D7EEZyWUZFlc1) z>Qc6Q1n>L$ng6YVN?H`n%5S3)w#wAg;TXf^dxS&9iMIGJA;VDZz#GU-IRaf#dvxp? z<1jv}g6SML_!rkCe){kMDOYC!lTl$Ai*@lnXWgZX9It;(EZ=%uwnrq4_4MGFJ5)Sf ztZcyM$Om^H9iS#7Kjy@I6z9bK4lE;851d0%}vA|ra#$_DT)S!^iHnjIZ(c{8{%n`pr z41u}=^fXE^dyeCO6CJ$LdxWhj#s?}+I6xM9-~$2#m5-QQBr8DrSgvuDqeYRHrd znRV;xhrTIhITHGEZqcH?uT)#v&=;T(zRaIx4*Yh5A|3f?D8rR(bi)g?R zmpK{=8MZ^Z@=g&73cF>rRtH!rl$AGwR$*2ntvC4O#}N0Q8j^)K(g$Q9EInXN zBKVvm22v89m9?=|(T6QB9$IPWn$r`W{9^sg$`oBcguM3#ly|&pYC1f|7c$xcasnVe>T$!X(b+ujsH zX!UcNMfj<|V{d`k5xYgQ%6Og6p<(`OjKwnf^*em2w8f-(e+8Dmk5BsrSk_waoD@E^ zF7k59!I&-ZOd&J^=Q_~nSdFGIoP?o%*Wo0j!b}U>pX1a{>DnJy?7%7hkmGRQ1eAJY zE(LU-%*-Fx>yC_!bO08V$|RHJw(sQdA}D0l)Fz5hfpCGm`Uw&_ig7 zPEn@)?E;lSrl2s%TONDbWETE;gqk=lPR#!&GJsR=d=LAF)QTl$y3zLoc4_z@X_aL_RnaQ8Tq~9Hv2pE8z0ageMRD(c` z>PNO3Ws9PgBPCo0KK=Sv{LvU_GcZd<$n3WhUxd3Brebf`Y z8m!82s$*=1Rdb3Pq;00GM#8j1N_dlMo>oS>bl030?hB<~Pl7`x+#i zL5-Awuq$}_8e~r&$=>}O(>zH;6F$@D?-;-~!VWR+Cj$8)zd1%?bAd7QAKkrp?Wi%` z!o_qUi#x4Xx)d~YTC3vsbpNNiFM-Cg-@DeJkdRDCh0KH`QBs*IAsJJK2qDQlRMOy< zp=2rvNk|AGWtNaBB&mqX97>`@#Jm60d7kG?-}&D6UF%!lS*=camT=$K^}qIS@BQ1m z>s!ooU@i*i(NN)(T$c;~7(=nG`$^XI{~kRGTPQF@S5oZh#|SV0(Za)WT0QcC8tnb= zh@4qEH!@XI9S3=sT!KgH!a8eGIU6Pe`)~b`znX<#UN4z+9^EMYG$;d1k`*GDQX#dH*Gc(S`e$QNOay2w z{@qzNE(13Ol1kiydlAcNyu?fj2kvO*XbZj zY7DV?jAXiJPRT!ND<#$Iu5o*xl7xe`F@7f@DPdtE)|2aF*?`J8q&J4}*2IG9OZn|K zh>3hsB=!dtdGHS^^644HJi9rE!QWg3pzeTtAwJ+E2myKXqkY}K&yG;KRquwhME7O9 z7dG!R=J#XxOFfyz;|eT0;Z^GoLqQkd=A7X1pdLNF8T<1Op5JY4j4lozXW_ZMf9^K2wj1^x#PO$wj zq>!PXiV6xpB0&L*z)--+fb)A{P1rtQMg(c#M}oz1;Pg(IaFA|pFiHukFdv_pE}3D( z*C1i^5cB9L$iO14)7(sVvuCfnx*TzQIp0Nrq=#TljoHdo@Y=}hwsW7+1knag zUH9t^lIE9X%x20&$%KzmE4O#g6|2EcCbhoh;!^qx+$Ld#msxA0_HVkCvD+ zqpqW*HkQ-Z47bF5&?iA%!yRRdiQnRq&`ioKvW#8+JDk_(pH@Yv9?eh?yi(0HyTN88 z{VU$=%D<^O(|;@EC|D8mMtE3#!kMYWYbk$!^?dyu52(In)Vi+g+xzY00}^(jRlnog zfp&d%-%aOGnWpoT(@*6Sbsp5|)fp;-#tVeK&50{^dN|;3;bwdKh`mdxx-|1z9+Jd`?gPUXkWCW%oZu#j=k zpy>0zr5#C~?38^3>ZYGy2LXgc{c%NXqe90e>AY{>nqW-CXoU$AN9xpQ>=`;U)m-i*L-FIaNytx4e&{S<~njo8#LD_7cMnM6&gAa=SlTwwi5-R!P3Q zUZ7_#tGElvFC=}JP?eDGP!b>9wNq7xDIM!-SF;23c*2$svXV9=ZyiO{5fR6o|xV=+yM( z|KBM{zo>hV?DHnDYjQQFGKu%MQ?}Hgl$OK7*lO3N ziv`bpjhWhn&iKfGZIfM8c!Y!UGX7swn!)dd1&a#vQqZu6<{;ybufhZ};(=q3VGGEp zD+0(!n#)K}1WbhMMZ^D+=%9?9GC0f+o0-kSDp$JWeB>kGB>zha#IDwZ;CGO96Qf2^ zj&JmJzjUSaOU>O>jQY!$+=NHYsn2tTAM+e`OxhOqM<}lXxM|4Fd^)<0{U{eB!uo|W zBCLZ)0&UhmTy5#_=ce3aqVD1G`G+cuqvy3P5|)25y3-k+aX2B6s)RxHJZ4yRfwi9y zppUQ^LPC%%DvUrhlr=iH(?WOgA-WkA+i-)=M?{N{XjC0@{Bxkjv6Yup@$i)LtVFKi z=+Bu?MH2>`M`mVbxVE>rbFeL2)@JRnM_R6Bs5h6-W+tU!Tk~6g{ie6auAhFV@j^L% zy{)d1q2+6feSMSX9jI0JN!n_k*jgW{6Fsw%WeLa&(&)AVs)zlUi8s)x0`y}&1@yl9$>0NVS- zii2;0awA#H@86%14UARoufXNm^6v4H4NNqLFge3U!LepdB|OnJtqov|A#`P_FQa^h zu6*T_D7I9=ztmWHqa?P}D!T)tD*I4UiBPBRA_NsnX>JgvgxQ!ias(+w=fC}qy>OPG zF1%H+5i~x3J|7W%zGh?()+z6%t_W5z8&)X@TiV+XwWSfv0+trJa|lv^w~`v{C0IW& zx1p{t)!J!eFgl`}0L!K-Qr7~xpAH1js@{8I7i4J&GwsyWXao7C0p1X+${1LoXpTq9 z3L&@6G3XJyn=f&_&vUj~;%1}uBS(UAr|BkA4C7jJDfVGo}Nb?t7orG@@ZDZI_^Lf_e6qlGt4G+-9tu`hCS$hkr za?@U~94dReYmJn>s730lR}?h__#^igYh)mP5K4v#!L1-h{Z)p3H+DcyDZKMfD=3&O zSBPye`1V7d#p)1tNnkB8hgJk83?!PM?u=mV&Z)w+-e?utXrqm(eWL$5opHYfa9GCk*)vW%VD| zFTG{Iu#D=g2Sd}!R|eFUE-t#cORzD^J>Ox4w6rv-ig9*cj#(XcV|1VrtnCx$Gw5OZ zju*{k6es3~Z@dOx8{)fxTH{ktLI;4l<1P1NjU-O`Gs%}0KF`YrZ`p*Q2COH*`g_mS z@R8Ypw_GvHTORqvTe@nr|L%=onZv8eM>SoHZ^*s^Q*XawW z=xT?=b7$rCHxxJHtIwX)G+OBgQ+M{2j#ef9n@a8yzA`F#lCWEc@ec- zoslD1`pxB9(-Y;Ny$$rK6SX5OavWJ|9+D<$tPf%ihv^i_Nl<8Ov%sw<|2ZX|nR( zy?dM4tmPZR#??Bzzn!S1zp^%j22Vi5Lqiz>kAml-A9t@)-Uf<}-~MFX>1`}Nni;Q5 z3#jSn)=XQne$WsIBgQ+hTGP|T_a@Yx7R$eoqJ1H?o`dQV^D?)*!;8=JZn6`(V_8{j zQDDR{ZS5Kxfgc(&9txlCWjp7ubp_0XD|E-Hco77-I${6>)Wo@kjb3)RIUe6T3Qn{W z-FeDKkBYXwdDHR512PU$rFXxf($4hiS#jYQA|H3PhJf1DF%62sI zsJ*=^@)U8i<2;oqLu^!!QwNx>a@t%3n=QciHI8NgiiT+n6n0WwHVO9^K0JaL zSr=$IFz(zTjo?IJSVU#`0KyZst>MPjGURhY`Kq-GN~hb+#~=`~v)+nHW|@=Bf@?;r zL#w_;)W>V3s6b#9y?1LnptVPl34Xu%eyjiEq7=@+j8rIRr2P&rGc;AC3;=j{e;!?! z%j_!XBIMT&*OUaGoBvZDw=U{6o2iajQLhL)dW5w+!X9A^`;;OQaR!2}dfxxlKdJ<0 z8N_}d+J-ti=t88A0<6~8@3GN*NG89GvHxOFP$$-5F)U&28__(Ef!46oMMAfhU6!M= zK7O1;MPN{Yl0^2wpZ9+8ki^VFL`3A!3;w7VEp_DT{NmBVc>6h(Ov5OtEkn>A*g|Y9 z^M;(kHPb~^!Fd_ZLs{y2RHgX-rHgL@bdov)I4s&^sv`C_JQEH-PPu(sz)!jI z;pDCTh@>S4q@4_mY6#Q0>99?t?p}HrC^Gow!1m#7!?=XsF)@MKPx0DJd6D=m?pb94 z?Ej$0&6@JUtz7j#IqHAsZ;3{j0bJF1QBV*_y8y3_8^|6EB*f?-5SDzmD4bN@A*JhD zWMt`Amx*%Z5e9-4nu4>f44?vzxW*SR7P5#9L_|bj)PVuguQD2bGjM>=hOz!r6a5Ij zPa7;clOQ^<6`zv!O*z8EXr0q4)o~iBRIvRi%H$bowt`;98mZHaRHs zs;!MQ)*x{o{!8M2jMEAp!|PA-_u)jZ09R%IwvaY++&RJ~2dM}UY47Lc#AReKqJr1r z%%&L4Fxt&nN29skVux7uTE;KmEFs6k)!0i-q z?D6^+c%0&*M-noQ>Z}>uc?8m9_QEb`@yzt3^Seq*-h*#5f$e18b$?Ad*cB$6?t$SkRK#q42yUV$dv?DGENIY zJ+T8P4VJnJla~gEn8(i_-zZk5^B-y7lTXdI-FC#ewsas{j)kizO<%Ns8k>=D=O!4# zD{GhpM~r#qxZ)SvVVnD8a(eY>hT zu<)d4TxyDFpi)qKbGA%0W~n9S58wQ%5|Z|jyXyh3%=62yt+x@J8S6$dW2xD+w9*j? z4+!r%3toTOpF>=}0jDwU?!K&ToN!s{MpT0q_rK3Pf(u8Kz=LGh|^yGqH z9lYVc(QKW6dac^gjP%e>3!2%TDe;xpXN%4f(+Ny;H1kM<(;-f)*x34&CG9aQIeDuU z%6e?ew{~6*-118MeWbRj!}pT1kf~hxXzOi@KgEtF9cYU6J1HkY4;aiJp5C06V|ANJ z#D$;Ub%6WIi>uwe3?Ay@Losg07f_fDGaAjEV>v|9gj&H|kCv zM;i{V6kI=9637Jm1G#1>QJ;+S*nsE)!(ILEfUd)C8+KEMOlvT3eO+}2!ZW_9k#w^_ErSMvE%0h8025myJF z5Z)xrH?Wt%9D?EqT@hSxdU|Gkc#0z4h1NZmu3?m~I8@dZiAHj+xJjNVd`W$t7-+7$;ybI~< zyHxC7hilaa1zujnEH@tC>}3Msie%Zt$vrgGm+~Dn9R9lF;K7wG0G3!06xqxny=hYy zWK*oK5>qlxmffYj89NRiUW-G)VesWTNqT3i9mfDbF(x7FW%q04dZb02$8#RMCEx>e z1w5CgkZuI>2u&*q#U|36{1w)&n^z%|9GSHwvlOTzLE8Wky>Dog9w$27(ceC4V0n>DP7Er zNTysFRtTbFq-Fb-S>UnkiY~pr@o=K3x^nW6XXpNCtUN;E!qcQEUvAR!9qyL*_!`n>X0#U&3;O zz7p$12&F;HEQBL82t;tbLjW4eo!}Hl1}I|kjjJ9#(C6f(mCTdRk}109ADqqksC&fP zPxrVrC{_Z*XTxzou}0OQ&)^)80Uan-msL0P6DBr8bq12f8vqCoD9Y_!X`ZPQqmvRh z~sauG4 z_mX#}jkNE9LBZ(a%PE?guEBE%m&BRJlu0N+#PEcw*~eHqV=S5;t$Uc3wv+@x1LML1 zLQIUaSQc0pFqrs(Vd+G*9*W*cPZ~DLc9~OfTw{eQUm%K+2ah{E^ic4NO9_KE7Nfu~ z;KzCFz!$a~%XlaW!3(FDs7*4bMQ;M}Akq@6>m6|h=T3Ppj?@<&@1)kAFJXS~^8>|V zMTGF0E-q--l)8OuKg+5@1a!gdiJx84^2@8;jXO6WY7-4;XzPPL4Pfghdz?6hfjaY` ziAizrz7IBr?GYBvP|Lw<P zwL^StZK76jI3VN*_W>6|wc^=Hs8-J#ANxF41GAdG*y6mx==QUhY0p;BFS-xwwp~w< zqCUG=KH_vM`F2K4bha2dJ8!_~Oo~oXBtj~UmW~(NrE}ses^&11UoCjfN+t?7Vin)2 zl6QN9%nV6(A$;j1U%K61@UsNcLo6ITSfjt47oFx1AKmG=uUoXB>i)g={ILalJTqw` z+1N%{2UImDPT&m%Dn8Ta33K~w5$_l1e&*GBAAf=_KEkkLyQtv*E@|_iV+l*2NuCvdB3=y1`)x zK||Qhyu3WI+t=;V_0=S#e9da6*-XyBTmn{;1fYT-G%57h_wsbJ1J~j!YI;{~ZVemj zU)P$WHHno8@nd1tnz<~d_fxxg{d87H`*u~y)+JbI-lnJ=o&%9f!0up91Bk?Tec-?W z99LL9_#2>{I_<5oRT?JmKKmT}TQ>n4(F%=O3vdYhFd7baBsGQH&DI~#{D7N`5V^_8 z$s3N$#9WX}6&0W_<;=!fKh`0KF*hHE>WuX-QjI0Xw#P6UI#!pO!45v=v!F}xYZsr$ z@>cMWPpY)84GfM>s0F33_BBhXN%vWg84QQSuWTmFC(saD?8Fal(UI4TZ@h`=12aER z8@Pix>;~=tb24yw>rxBLSho0e$vf#>rtcnJ~%iHsmIa4|G} zOJ&VNHf?N!yE!nWLMFhBUXcPLWyLjQ1cJXLp)W&2;`ED@DtKaT?-cY-qo|D?~{a(-Ym57tLKV?KU7b;D1qkcT~DJFqBd7NmGbSKZevLj-S^ zEXENGC0Kg`3!U{!$gdbryxv{`r0L)kha&*U{%?@6O6nq6Xqf9j!byYa+_EpV949<^ zSRv3etl9@a!-30vV1xk`BM;wbT%{!$SeH~$rbK#+tfg-uy64!jV_->1dm$gQoMSZL zHJBs_X)8|RQDhC|333P^6`WVdE~C$4J9~#|Ry<_=VQR%K;di5Rt+D3z2{)wD{sNZ> zmz@QdcWk5#Ww}(b=X4Nm+FBYC5r}ns^de7smaQQHI*omW78?iD;EXwFf7YHx`@R#A5x7K%4#dNtV%~LRn`$_oFzsd{Awu6zdiIjdX{c3kM_kz!F=(CluQr3 z`}gmMYw*mqlV#mpF}ub;zzI+&$=(L3h%)j?u|Rx}_2C}t4WdY$9eqF1rEOMQ`ZWis zv!@Q0uW5Vq8(`MeewY1ZF1ze|>-9s%Tce=`h!!fL7`WEv>3jMB^vOn zKe$9*yT%668T{C_r=)Y0_=U(z$`$+7yq5o!8cj#-(fnDE2ihRBq~tQdpO%oWtA-lN zOniM8bqoctEYa0vPSFO&i7B_syI&;arXmtED2@A`JP`-hz6>}Z@MOVd26|^PCy5BT z@(n#bDJlMOQz!l2&7|L@Q%e-Dw(SxMPgPE8D(!F}-QP?!a07#1z_p;wzKJc6mT}9D zzavH)UwgFWTvlB6!&*83IE;+#^o#I|*Dud#NWFu_>DHZ5m9(0Yh3F7*ZT>h4$!U%j z-I8->*szz#I2RP(5xTH9?(*dSVUHbaQYxDu;gyWH1b~w#GIZQ-HT%n zzWI;`wI|l(@cNgRc8^rG&_5PXthb^Ht5sson`S=A5&*uised7QD7leViQ^EzYYitT zcbFg_tv0AcJm9+ms4>X$6bdyIu95Ga^NsxTmv3e%A42>fJ9B|@FH^ynbBwFb$Yh_p zSe=tiXWo*H_LDntwa<~xa`NO#_GPUZeWZ< z{7z=Xpga^;Esqq_0|!6=KfKp(q?WxobxbyOGSp5J+uyK;;T4I~x^wI7&31cio@{Aq z?Ih_8NGO|4)%9{xL_khC(pmry0UU4&pFQ_3>`#Pe;a><(YPw>rHQP>?&rE;c#w?L= zUE${_C=uMJf>TW2$Hx4EX{#-y-~r?7D!BOFabNit>2iPRte~!>F6}Ia4fu0;Tfb&M z>VC3wa#Zri1I63%q{ku&eusSW6RuUj|7j7%i-~`Ri3VE_9Z=(S_S@cQTo~MZ#mf1t z$FW(U2-ge&ib#Zo6wZueQdtIPPRsQ}eYnh!B0YHc#FJZF7dKDH|q$wh}Y zvxa>*bg2ca;W)*K<*rIO04AONVpp?r&1Kv@JoZ1B$wKrBt`2-A0XB*&=_pv!Gn3@n zdmDB^_JNUg+8Pn(C9NQWKmmbazz04OC>h`c(DBvU+UgH;!BWH>VXaDpE^hc;E`x>W z7D(8Bm%gr*X}x^$4P8r;u^9(tL=Qh17G5xVf{p$F@=!--IZjFJa;FYWqd*QHQpo)F z^=tI&SD1B;(oc>3FvPG97)7LP@MV~-AZ6o|A3sY;o>@-5!vA@g{cGwC{4p_*P)3Y?0%87z zB~4e|K_&wFn8$M~@%BFoywQVz1Ub>bVBn zDIPu-D;KqoOM{IK`SO~3CYPTc8Y(C5INZH>kl`P~@Ax8uCp_y>+q0I5CU_kOJt}B0 z+&-(TaC1%*{I$4|^aUqr7@6 z@@!@!CA%O&u=?sJy!@_n^ic)8%y*u}oG;wxb5L_B2i5T@ z+5~5VrW}uE@Nb~zAs!9OUxs(>X+uNUS?ih}65S;9j%{u=T>I6F_FtW}YQKU~^Lv$F zS<0XOnKK>`#z(LnOv=`?3+3VYuxip)P&#t#$%iN0;*2Bs???6wU$bP=Gu+qZw@rM= zXwTUrYF?%7GYmUNx<(vs{p7muT_0E5WPn_negwWQ| zwzheft1F6{hK_}M&pWx+>)DKyl1Z$JjnS8ll#!fqW}ani=kEC0&L9c(8Myggr4=aD zC@wbnCg-CSCmQ!E?p%>p;R-6@0kMRyTi$j!c@#t@D1Mi)Jf6V#!+*tZDf~Cy!zN`! zEgt3IonXZUVMXakdX6lxImibo12G`_EOV$2*7LIwzFPF9(i zKw!VE57~Ho_jkjh$#X+E!$(_#zUSQn_lARi$l`jpz>&?iSYa#((M-aLhvZ|-osg|k zL_W6RR>O(VF{IPsd86EbISDhSw9IKuDNOfs+W0?ki)@^xCX4^4+@kH+9Jk0r9rUKP z6(MQ<`^EGdHIS{i!hNXiEM!x-PLNdTW#7@0nvj{f45kV)!gKh_W#4=Nj006Y^ZtE4 zJKjFr%sWn=+yd~0(*!gFp2DZcI~L;}#GR;ZD#3Xv)cii!BK*5MFk%5-;b|{=+Bbq? zx0aqZ;&I%8d7n(zfX4bWyBKohKV=uu0ZkLzusE>7srP@vF~L;BM6Q>p3p`a&Axz#0wMNpKLr)_a0JfBIB`aSwZq(5evpeIqp6bk)+3 zh0x0lqfA~aR~arnoU-YDf|mFaz$F}`zGi+zJx8oash!LM>b+_#`3!qSpPyQV z^A7kBZv|9K_(+3G4rjimw7X(}(c*PO-B60*N9IVS(2Dg>zoQFbp_^^sjZSxpDv%du>77xI%mH91pPk;>_CdZD+pZH2c zI@-VfXxQ}b!2=n1*hmr}$&LX!+#LnL1j`*Z&mCu`y@1pRPz1n)QJxey__Jme7GA{F zblpzD2eJX;Xuug@Xo4a_pdtqO-%xSu)}>+9%0?G{p5E4921sLR%wurrpYV#tPyP+B zhy;-XX{zvSBg7ijb(rSSGdn4vXiT??&ir9v;VGU4jZInk64kvh=z<)AIUMH&8XA0f zw)@wP6Bm+(4-qWE(~#6gD=SS+Yk2;UvssFaTsr9DyYMsMCcyGMvWv5xRv*lGMHa1* zLj_6*+zy`b+v93oQT07bNwuBaCmh{g;)_)+AdgW` z#Ucj2IlRaac8}KZ0&S-5jG2#grb}j&He6e@Mu}we(hj>;eyUr~8o-H|jQS+60ER6D64N7z2<1EIq#G zoSkR;`rSLh!xq03ZdKI6g}Hz{lk>GS1X_f@?l9hE7~%>`)CF|HN;~u%UNR2dUjykM zmwCnG$LH?#tA%8I9Hes zwBs!ZR_Y^n=o?0l*yrE|K}Qdc?%hvpW`QG^zFnU+(qMG}P1=_4x&&(-dCxxXq1w;j zRX=d|y6XOo?6tjG_js}nq>(-pRA(d5hde;obTniPL=)LpfME7sBJpTD_Zbw^ArYRe zh`^F2bhN}4Yes5`BDK={#>I7#bz6#g;fh9&x7}5Q(67W8U`-)XzAA)^{{dC*IOC4lMQ`X-MK#6?C$ZE;VfMl?6d!N8E?hQJLBLy$Q@B}fg6m>g|) zMQnRGLe(K*W^$9C<$a)6JJS52S7VbOmlCl~!VU<7P)#RzYj`jnJ@)_1I|`VzJ*f$7 zCHTfGw8zN0w}p`UH#h|OcN#F3NhVntD*i`2qaRINZI2>mbL?2#p5QG~CjjZM{9;DN zk}D|KK|*nEt{>{;(7lLb8KnO0K?6}I`1%xLKbOC3Z}&2fZRkrq;kBA>gCv+@qFQ6= z4JiQ}^u7T~3e8&XwM&qnifX_~6;^WVYodqa`AO^>ZT!>8!Mudfxjv)0&DX}3NV7X<+J|-_Lup_|%9vOlWi%f7R zVsOEt9?q6vOAfNWfR_#rFR0YqbMO-TGlVzAR^LbxtMJ(h9v}_ycGzIzIB^)#G&Dd-^J`S_icD^6c z?ieRQ5P_hFUp>#rgblCo(frC+?dQJK-Yzku4$NOhzhGgfoceJiQ`T?@JRRbsiEa*Q zLV<(hMj5?4P5s37M)nHKtW|8iw&gr|wFK77o_AQjP;mVyc16v2Ku+ZQ7fH)$pF^ z9y|MFRNg;>Ptzph;Zq?wC~2re_V!+b6Ak?IqVs2I%*7+N=*Uu{g$7QwzZ4KUHQuaW zr*PRq${&lU0(ue&RjSkaQ1+}q6Ihi@je!J|9D8N+gF1+=i}?+c1T8ElQuLO zTH8aoL^5=rJpvCSo?5qxiel_A9^-+-+U^pgDLB-Yw*bHb0||*=nKNC+17E_!j7=0O zI(8d=0wAZp?1V=dpS=oISolU^d%W*8HJ1=_KICc|B*Eg08 z;A8sm@gup86SVvDDlAG^`c-L|#V;x4%)f4M<>%*wD4uS^t>Mmt!4md#QNrP(JO7sq znBgo(43c%hNSkNo3LNgq$NKms)h}R?Nd1Ot{Jz(x#B1ZE10Z47%}Ll(EfEYk6VJ&r zmy4myPDTm4r$6B|noW><0HKmMtU5Z<5P2RDoI4w~%_!q(j1$R+=am}vLmh%1(RzYY zys`D9FKTF)VEF=s9)}Ytv!SBiNyDO?jTaB|K89W3%?dnKhrvlAvLBrJsL!hBdffjn z*~cGGqw)aS|G=(5gcA2+ntP{^=V9U~s$r3dWc6`HaIvriDBlK!FNR!M` z;Q$H(VB!1$F$<;IO&{Jbv9f$kOg|uFAi^T#%Wu_QIG|MHlV8`mu7=4@$bucIfFN1e zWMcN%=pSibeZKd+9`a<-zPwyHGVGyAhTt(w6Td)ZDf<8r_c)phc6L&9o023F#@9-5 zUcxS~rSU6l4?PJJ+*_qTprZFR7gb{<3VmkU&F;aVJhClmW+tMx^gF_BetlvAMe{Q~HKjBcMF0Nxes89A?pfIGamR!dl zBBy-wgSbi6fLeCm_QD5t=@>cTp(BBOuV0hoACULHF;R7TSf>;)_WL_q5qc|a>K~9ROHhu7oAxv?xL6nA`qxifnyD^+a%uj98N=^I{X(HTky=cn8DpMj42G_ zBaV+#Ge5s4ovt^a*m*97q0(d|uOJGGKCYR;jdnpJth)um@M+Nd&cRGsCJBWeUS4i} zV{H7&H(+%(X7O)Sy6kc#@vlpBHa>d>T>+xjj*GX+7y+RD2$pbcco{e4?i1cqI&!x@ zh>UcXCFrb{jj7M#091-Dk_dbrc+u>d)MB%^Cyku%*$%>PyR}p`O6WT&*_ZVtx@c0LsIW;xD%zNs~V!R}g?d1`dWUqkP z-1&gQe^e_=d@(I`7~* zkcAjwh~gdJ_-OE(B4SYg0H*>jIVqnXR$2OSX;u#e>~{HMn+GXb-MtE%Ho2RJDzA^) zA}=rY#@mo=>wG(b!H#U}#KB<&)>D!rNKgmWO-o!S*z%r=U$8}eL$24P%>Jv?Ws+Fp zfPBQhy0BO%>&hyq0p+ScmaY7>^T{#F$EI{*_7lNaTT!8cDHm4)bRi6?v~a=W)YD^B z0?&*O{pV&$rnoN8=^Fd2SJiOD6z}g25L^6xw?1}s9_k*J>2r_;e^V=U2M{v!dVFx* zMj4qKax(60iHt&5R_o)Mh0PSjaM&J=%lf>T*`I9nl5P+9#opMSk-=tDVUjVe}h(J~sNYu*WGcYe*A)X_&~# zYXnvlsb_bK*gBN^&pEOP@K;%6EkDd_aH*-kaBQV^&R4k?_pDczvOMWc&!(%Xs;ct; z_yKD4M&n==;1=|-kP4DH8z>&pH{`07ccpz!dO3dL?8>3@ZcdBdFUb(J^5J1oYk!7K zh+p1E*NzL{Yj3N6;PBmn6BK^@94q&VmBSDH?(Xn0xquCxhf%vf_GNr_&Qs^`EyWuE zaiDZm9+{sQCp?5BB@&~{Kh-x-M{kh3GgG2Mq~kmR3n|0AXK};bV31LclVj-yX$g3o zd59!j()B2US;zlFn22H7%yMHo@MsC>tHz%$EoiIzIP`qpNn)5hC3niKem8H(cB#nn Z8ODYi$PV!Gk)*=^cB^PArz;*h_g|d{7ZU&g literal 0 HcmV?d00001 diff --git a/doc/mesh/multi-object-single-file.md b/doc/mesh/multi-object-single-file.md new file mode 100644 index 0000000000..fcf92d8676 --- /dev/null +++ b/doc/mesh/multi-object-single-file.md @@ -0,0 +1,81 @@ +# Multi-Object Single-File Blender Exports + +The example throughout is a robot arm built as a linkset of ten parts: a base, a turret, an upper arm, a forearm, two wrist joints, a flange and three fingers. Each part has its own levels of detail (LOD) and a physics shape, and the whole arm uploads from one file. + +## How the uploader reads names + +Second Life draws each part with up to four levels of detail (LOD): High up close, then Medium, Low and Lowest further away, plus a physics shape for collisions. The uploader matches each part to its LOD models and physics shape by name: the part's name plus a suffix that says which slot it fills. + +| Slot in the uploader | Suffix | Example | +| --- | --- | --- | +| High (LOD3) | none | `A1_turret` | +| Medium (LOD2) | `_LOD2` | `A1_turret_LOD2` | +| Low (LOD1) | `_LOD1` | `A1_turret_LOD1` | +| Lowest (LOD0) | `_LOD0` | `A1_turret_LOD0` | +| Physics | `_PHYS` | `A1_turret_PHYS` | + +Every part and all its LOD models go in one `.glb`. You pick that one file, and the uploader puts each LOD model and physics shape into its part's slot. Any LOD you leave out is generated from the part. + +- Suffixes are upper case and go at the very end of the name. +- Don't use `_LOD` or `_PHYS` anywhere else in a name. +- No two parts may share a name. + +## Setting up the file + +Keep every part and its LOD models in one `.blend`, export the whole scene to one `.glb`, and pick that file in the uploader. Only the parts are uploaded; their `_LOD2`, `_LOD1`, `_LOD0` and `_PHYS` objects fill the parts' slots. + +The arm's Blender file keeps them in two collections: + +| Collection | Objects | +| --- | --- | +| `TelvanniArm` | the 10 parts: `A0_base`, `A1_turret` … `A7_finger_2` | +| `LODs` (hidden) | each part's LOD models and physics shape: `A1_turret_LOD2`, `A1_turret_LOD1`, `A1_turret_LOD0`, `A1_turret_PHYS`, and the same for every part | + +### Object names, not mesh names + +Each row in the Outliner is two things: the **object** (orange triangle, such as `A1_turret_LOD1`) and, under it, its **mesh data** (green triangle). The uploader reads only the object name. The mesh data is never read, so give it a plain label that can't be mistaken for one. The arm's are `Arm Turret`, `Arm Turret medium`, `Arm Turret low`, `Arm Turret lowest` and `Arm Turret collision`. + +In the screenshot below, the parts are parented in a chain under `TelvanniArm`, each holding its mesh (`Arm Base`, `Arm Turret`, `Upper Arm` …). The hidden `LODs` collection holds every LOD object; `A1_turret_LOD1` holds the mesh `Arm Turret low`. + +![The arm in Blender's Outliner: objects (orange) holding mesh data (green), the LOD models in the hidden LODs collection](images/blender-outliner.png) + +1. Name each part's object plainly (`A1_turret`), and each of its LOD objects with the suffix at the very end (`A1_turret_LOD1`). Delete Blender's `.001` endings. +2. Place each LOD model exactly over its part, with the same bounding box. +3. Export the whole scene with **Limit to** off, so the hidden LOD objects go in too. +4. Pick the `.glb` in **Build > Upload > Model**. The LOD dropdowns read **Load from file**, and the **Log** tab lists the LOD models taken from the file. + +- **Each LOD needs every part.** If only some parts have a `_LOD1`, the Low LOD is generated for all of them, and the log says so. +- **Physics may be partial.** A part with no `_PHYS` gets the uploader's usual physics. +- **A suffixed object needs its part.** `A1_turret_LOD1` with no `A1_turret` in the file uploads as a part of its own. +- Each LOD model needs the same material slots as its part. + +## glTF export settings + +Use **File > Export > glTF 2.0** with these settings; anything not listed can stay at its default. + +| Panel | Setting | Value | +| --- | --- | --- | +| Format | Format | glTF Binary (`.glb`) | +| Include > Limit to | all four | off, so the hidden LOD objects go in too | +| Include > Data | Cameras, Punctual Lights | off | +| Transform | +Y Up | on | +| Data > Mesh | Apply Modifiers | on | +| Data > Mesh | UVs, Normals | on | +| Data > Material | Materials | Export | +| Data > Compression | Draco Compression, Meshopt Compression | off | +| Animation | Animation | off | + +![Blender's glTF 2.0 export settings for a single-file upload](images/blender-gltf-export.png) + +Apply rotation and scale first (Ctrl+A), so the exported shape matches what you see. + +## Common mistakes + +Where each part turns in-world is set by its origin; that has [a guide of its own](object-origins.md). + +| You see | Likely cause | +| --- | --- | +| `A1_turret_LOD2` uploads as a separate part | its part is missing or misspelt, or the name ends in `.001` | +| An LOD you made is generated anyway | not every part has that LOD | +| An LOD looks stretched in-world | its bounding box differs from its part's | +| An LOD is missing from the upload | Limit to was on when exporting, so the hidden LOD objects were left out | From adadad0bf85c4abd94bf7f7b100d90bc3cae6468 Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Tue, 3 Nov 2026 04:11:43 +0000 Subject: [PATCH 4/8] Keep a leftover submodel's letter and a chosen LOD source A suffixed submodel with no base kept its root's instance label once its suffix was stripped, so the upload resolved it to the root and dropped its geometry. A LOD the next high file no longer supplies went back to generation even where it was set to use the LOD above. Co-Authored-By: Claude Opus 5.5 --- indra/newview/llmodelpreview.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp index 188d678d63..79e95a13bc 100644 --- a/indra/newview/llmodelpreview.cpp +++ b/indra/newview/llmodelpreview.cpp @@ -1924,10 +1924,15 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) mVertexBuffer[lod].clear(); if (fmp && lod != LLModel::LOD_PHYSICS) { - fmp->mLODMode[lod] = MESH_OPTIMIZER_AUTO; - if (LLComboBox* lod_combo = fmp->findChild("lod_source_" + lod_name[lod])) + // Only a LOD still set to come from the file goes back to generation; another source stays. + LLComboBox* lod_combo = fmp->findChild("lod_source_" + lod_name[lod]); + if (!lod_combo || lod_combo->getCurrentIndex() == LOD_FROM_FILE) { - lod_combo->setCurrentByIndex(MESH_OPTIMIZER_AUTO); + fmp->mLODMode[lod] = MESH_OPTIMIZER_AUTO; + if (lod_combo) + { + lod_combo->setCurrentByIndex(MESH_OPTIMIZER_AUTO); + } } fmp->childSetValue("lod_file_" + lod_name[lod], ""); } @@ -1945,8 +1950,8 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) LLModel* model = instance.mModel; if (model && suffix_lod(core_of(model)) >= 0 && lod_of(model) < 0) { - instance.mLabel = stripSuffix(instance.mLabel); model->mLabel = stripSuffix(core_of(model)) + letter_of(model); + instance.mLabel = model->mLabel; // a submodel keeps its letter, so it isn't taken for its root } } } From 9b41eabac1fbb219bc20e34280e13c4be5490f0d Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Tue, 3 Nov 2026 05:38:24 +0000 Subject: [PATCH 5/8] Match a file's LODs by name and keep its default physics shape Collada instances of a high file were still cut at any _LOD or _PHYS in their names, so a part such as Wall_LODGE found no High model. A LOD set was judged complete by its count, so a part without its own LOD could take another's submodel; it now needs each part's model by name. default_physics_shape_PHYS goes to physics without a part of that name, as the separate physics file it stands for would. Physics loaded from a file of its own no longer follows a LOD it was once copied from, and the LOD controls show each slot's source once the file has set it. Co-Authored-By: Claude Opus 5.5 --- indra/llprimitive/lldaeloader.cpp | 6 ++++- indra/newview/llmodelpreview.cpp | 44 ++++++++++++++++++++++++++----- 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/indra/llprimitive/lldaeloader.cpp b/indra/llprimitive/lldaeloader.cpp index a14fad1ff7..f978a955f8 100644 --- a/indra/llprimitive/lldaeloader.cpp +++ b/indra/llprimitive/lldaeloader.cpp @@ -2146,7 +2146,11 @@ void LLDAELoader::processElement( daeElement* element, bool& badElement, DAE* da { // Don't change model's name if possible, it will play havoc with scenes that already use said model. size_t ext_pos = getSuffixPosition(model->mLabel); - if (ext_pos != std::string::npos) + if (mLod == LLModel::LOD_HIGH) + { + label = model->mLabel; // Mesh uploader LODs by name: the instance is named as its model is + } + else if (ext_pos != std::string::npos) { label = model->mLabel.substr(0, ext_pos); } diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp index 79e95a13bc..31bcd967c4 100644 --- a/indra/newview/llmodelpreview.cpp +++ b/indra/newview/llmodelpreview.cpp @@ -1129,9 +1129,7 @@ void LLModelPreview::loadModelCallback(S32 loaded_lod) { mLODFromHighFile[loaded_lod] = false; } - // - // Mesh uploader LODs by name - if (loaded_lod == LLModel::LOD_HIGH) + else { splitSuffixedModels(mModelLoader->mFilename); } @@ -1910,8 +1908,17 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) return -1; } const std::string core = core_of(model); + if (legacy) + { + return -1; + } + // The shape for parts with no _PHYS of their own goes to physics whether or not a part shares its name. + if (core == DEFAULT_PHYSICS_MESH_NAME + getLodSuffix(LLModel::LOD_PHYSICS)) + { + return LLModel::LOD_PHYSICS; + } const S32 lod = suffix_lod(core); - return lod >= 0 && bases.count(stripSuffix(core)) && !legacy ? lod : -1; + return lod >= 0 && bases.count(stripSuffix(core)) ? lod : -1; }; // LODs an earlier file filled and this one does not are generated again. @@ -2003,13 +2010,20 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) if (was_from_file[lod] && !split[lod]) { release(lod); + if (lod != LLModel::LOD_PHYSICS) + { + updateLodControls(lod); + } } } // Physics copied from a LOD follows that LOD when this file replaces it. const S32 physics_from = mPhysicsSearchLOD; auto follow_physics = [&]() { - if (physics_from >= LLModel::LOD_IMPOSTOR && physics_from <= LLModel::LOD_HIGH && (split[physics_from] || was_from_file[physics_from])) + // A physics file of its own is left alone; only physics copied from that LOD follows it. + const bool own_physics_file = !mLODFile[LLModel::LOD_PHYSICS].empty() && !was_from_file[LLModel::LOD_PHYSICS]; + if (!own_physics_file && physics_from >= LLModel::LOD_IMPOSTOR && physics_from <= LLModel::LOD_HIGH + && (split[physics_from] || was_from_file[physics_from])) { mModel[LLModel::LOD_PHYSICS] = mModel[physics_from]; mScene[LLModel::LOD_PHYSICS] = mScene[physics_from]; @@ -2053,10 +2067,25 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) { continue; } - if (lod != LLModel::LOD_PHYSICS && mModel[lod].size() != kept.size()) + // A LOD needs every model and submodel, each by its own name: a partial set is dropped and the LOD generated. + auto complete = [&]() + { + if (mModel[lod].size() != kept.size()) + { + return false; + } + std::set names; + for (const LLPointer& model : mModel[lod]) + { + names.insert(model->mLabel); + } + return std::all_of(kept.begin(), kept.end(), [&](const LLPointer& model) + { return names.count(model->mLabel + getLodSuffix(lod)) > 0; }); + }; + if (lod != LLModel::LOD_PHYSICS && !complete()) { - // A LOD needs every model and submodel; the file's partial set is dropped and the LOD generated. release(lod); + updateLodControls(lod); std::ostringstream out; out << "Only some models have a " << getLodSuffix(lod) << " model in the file; generating that LOD instead"; LLFloaterModelPreview::addStringToLog(out, true); @@ -2076,6 +2105,7 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) { fmp->mLODMode[lod] = LOD_FROM_FILE; fmp->childSetValue("lod_file_" + lod_name[lod], filename); + updateLodControls(lod); } } std::ostringstream out; From 99c75a28c616803a4dfe302a686a5d39181edaef Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Tue, 3 Nov 2026 09:42:59 +0000 Subject: [PATCH 6/8] Copy physics from its LOD once that LOD is generated Physics set to use a LOD was copied from it while it was released for generation, so it stayed empty and the upload fell back to the High model's own hulls. It is now copied when the LOD it uses is generated. Co-Authored-By: Claude Opus 5.5 --- indra/newview/llmodelpreview.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp index 31bcd967c4..cd02b45c15 100644 --- a/indra/newview/llmodelpreview.cpp +++ b/indra/newview/llmodelpreview.cpp @@ -1852,6 +1852,17 @@ void LLModelPreview::genMeshOptimizerLODs(S32 which_lod, S32 meshopt_mode, U32 d } } + // Mesh uploader LODs by name: physics copied from a LOD follows it once it is generated again + if (mPhysicsSearchLOD >= LLModel::LOD_IMPOSTOR && mPhysicsSearchLOD <= LLModel::LOD_HIGH + && mLODFile[LLModel::LOD_PHYSICS].empty() && !mLODFromHighFile[LLModel::LOD_PHYSICS] + && (which_lod == -1 || which_lod == mPhysicsSearchLOD)) + { + mModel[LLModel::LOD_PHYSICS] = mModel[mPhysicsSearchLOD]; + mScene[LLModel::LOD_PHYSICS] = mScene[mPhysicsSearchLOD]; + mVertexBuffer[LLModel::LOD_PHYSICS].clear(); + } + // + dropFacesCopiesOfLostModels(); LL_INFOS("Upload") << "LOD " << which_lod << ", Mesh optimizer processed meshes : " << meshes_processed @@ -2020,10 +2031,11 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) const S32 physics_from = mPhysicsSearchLOD; auto follow_physics = [&]() { - // A physics file of its own is left alone; only physics copied from that LOD follows it. + // A physics file of its own is left alone; only physics copied from that LOD follows it. A LOD + // released for generation is copied once generated (genMeshOptimizerLODs), not while empty here. const bool own_physics_file = !mLODFile[LLModel::LOD_PHYSICS].empty() && !was_from_file[LLModel::LOD_PHYSICS]; if (!own_physics_file && physics_from >= LLModel::LOD_IMPOSTOR && physics_from <= LLModel::LOD_HIGH - && (split[physics_from] || was_from_file[physics_from])) + && split[physics_from]) { mModel[LLModel::LOD_PHYSICS] = mModel[physics_from]; mScene[LLModel::LOD_PHYSICS] = mScene[physics_from]; From 6d4ecf05899b6fd388ed41360f713348c6719397 Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Wed, 4 Nov 2026 14:48:45 +0000 Subject: [PATCH 7/8] Keep physics set to use a LOD equal to that LOD Physics chosen as a copy of a LOD was copied once and went stale when the LOD changed: a new high file, the file's own LODs, generation or a LOD file loaded later all left the old copy. Rebuilding the upload data now copies that LOD again wherever it differs, which replaces the copies the split and generation made at their own points. Every instance of a shared leftover suffixed model now takes its stripped name. Co-Authored-By: Claude Opus 5.5 --- indra/newview/llmodelpreview.cpp | 63 +++++++++++++++----------------- 1 file changed, 29 insertions(+), 34 deletions(-) diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp index cd02b45c15..c20dd52028 100644 --- a/indra/newview/llmodelpreview.cpp +++ b/indra/newview/llmodelpreview.cpp @@ -287,6 +287,17 @@ void LLModelPreview::rebuildUploadData() assert_main_thread(); mDefaultPhysicsShapeP = NULL; + // Mesh uploader LODs by name: physics set to use a LOD is that LOD as it stands now, however + // it changed since (a new high file, the file's own LODs, generation, a LOD file of its own) + if (mPhysicsSearchLOD >= LLModel::LOD_IMPOSTOR && mPhysicsSearchLOD <= LLModel::LOD_HIGH + && mLODFile[LLModel::LOD_PHYSICS].empty() && !mLODFromHighFile[LLModel::LOD_PHYSICS] + && mModel[LLModel::LOD_PHYSICS] != mModel[mPhysicsSearchLOD]) + { + mModel[LLModel::LOD_PHYSICS] = mModel[mPhysicsSearchLOD]; + mScene[LLModel::LOD_PHYSICS] = mScene[mPhysicsSearchLOD]; + mVertexBuffer[LLModel::LOD_PHYSICS].clear(); + } + // // Mesh uploader LODs by name: physics from the high file names its default shape as a physics file does if (mLODFromHighFile[LLModel::LOD_PHYSICS]) { @@ -1852,17 +1863,6 @@ void LLModelPreview::genMeshOptimizerLODs(S32 which_lod, S32 meshopt_mode, U32 d } } - // Mesh uploader LODs by name: physics copied from a LOD follows it once it is generated again - if (mPhysicsSearchLOD >= LLModel::LOD_IMPOSTOR && mPhysicsSearchLOD <= LLModel::LOD_HIGH - && mLODFile[LLModel::LOD_PHYSICS].empty() && !mLODFromHighFile[LLModel::LOD_PHYSICS] - && (which_lod == -1 || which_lod == mPhysicsSearchLOD)) - { - mModel[LLModel::LOD_PHYSICS] = mModel[mPhysicsSearchLOD]; - mScene[LLModel::LOD_PHYSICS] = mScene[mPhysicsSearchLOD]; - mVertexBuffer[LLModel::LOD_PHYSICS].clear(); - } - // - dropFacesCopiesOfLostModels(); LL_INFOS("Upload") << "LOD " << which_lod << ", Mesh optimizer processed meshes : " << meshes_processed @@ -1960,7 +1960,9 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) } }; - // A suffixed model with no base is named as the loader always named it, without its suffix. + // A suffixed model with no base is named as the loader always named it, without its suffix. Models + // are found first, so every instance of one shared model takes the new name, not only the first. + std::set leftovers; for (auto& scene_pair : mScene[LLModel::LOD_HIGH]) { for (LLModelInstance& instance : scene_pair.second) @@ -1968,8 +1970,21 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) LLModel* model = instance.mModel; if (model && suffix_lod(core_of(model)) >= 0 && lod_of(model) < 0) { - model->mLabel = stripSuffix(core_of(model)) + letter_of(model); - instance.mLabel = model->mLabel; // a submodel keeps its letter, so it isn't taken for its root + leftovers.insert(model); + } + } + } + for (LLModel* model : leftovers) + { + model->mLabel = stripSuffix(core_of(model)) + letter_of(model); + } + for (auto& scene_pair : mScene[LLModel::LOD_HIGH]) + { + for (LLModelInstance& instance : scene_pair.second) + { + if (leftovers.count(instance.mModel)) + { + instance.mLabel = instance.mModel->mLabel; // a submodel keeps its letter, so it isn't taken for its root } } } @@ -2027,24 +2042,8 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) } } } - // Physics copied from a LOD follows that LOD when this file replaces it. - const S32 physics_from = mPhysicsSearchLOD; - auto follow_physics = [&]() - { - // A physics file of its own is left alone; only physics copied from that LOD follows it. A LOD - // released for generation is copied once generated (genMeshOptimizerLODs), not while empty here. - const bool own_physics_file = !mLODFile[LLModel::LOD_PHYSICS].empty() && !was_from_file[LLModel::LOD_PHYSICS]; - if (!own_physics_file && physics_from >= LLModel::LOD_IMPOSTOR && physics_from <= LLModel::LOD_HIGH - && split[physics_from]) - { - mModel[LLModel::LOD_PHYSICS] = mModel[physics_from]; - mScene[LLModel::LOD_PHYSICS] = mScene[physics_from]; - mVertexBuffer[LLModel::LOD_PHYSICS].clear(); - } - }; if (kept.size() == mModel[LLModel::LOD_HIGH].size()) { - follow_physics(); return; } mModel[LLModel::LOD_HIGH] = kept; @@ -2124,10 +2123,6 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) out << "Took " << mModel[lod].size() << " model(s) named " << getLodSuffix(lod) << " from the file for that slot"; LLFloaterModelPreview::addStringToLog(out, false); } - if (!split[LLModel::LOD_PHYSICS]) - { - follow_physics(); - } } // From abebcfcd395f8da25dafc32dd01b6b37711aa8b1 Mon Sep 17 00:00:00 2001 From: Martin Pitt Date: Thu, 5 Nov 2026 04:57:11 +0000 Subject: [PATCH 8/8] Set the physics source to none when the high file stops supplying it A reloaded high file without _PHYS models emptied the physics slot but left the physics source on 'file', its file controls enabled. Co-Authored-By: Claude Opus 5.5 --- indra/newview/llmodelpreview.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/indra/newview/llmodelpreview.cpp b/indra/newview/llmodelpreview.cpp index c20dd52028..15e8467af0 100644 --- a/indra/newview/llmodelpreview.cpp +++ b/indra/newview/llmodelpreview.cpp @@ -1956,7 +1956,9 @@ void LLModelPreview::splitSuffixedModels(const std::string& filename) } else if (fmp) { + // Physics the high file no longer supplies is no longer from a file: back to none, as a reset leaves it. fmp->childSetValue("physics_file", ""); + fmp->childSetValue("physics_lod_combo", "none"); } };