From aff93d54672feaea4fa0cd0cecb1bcedd8df782c Mon Sep 17 00:00:00 2001 From: Git Merciol Date: Fri, 20 Apr 2018 09:49:46 +0200 Subject: [PATCH 01/31] =?UTF-8?q?=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20include/Appli/Option.hpp=20=09modifi=C3=A9=C2=A0:=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20include/Attributes/AreaAttributes.hpp?= =?UTF-8?q?=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20include/Att?= =?UTF-8?q?ributes/AreaAttributes.tpp=20=09modifi=C3=A9=C2=A0:=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20include/Attributes/AverageAttributes.hpp=20=09mo?= =?UTF-8?q?difi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20include/Attributes/?= =?UTF-8?q?AverageAttributes.tpp=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20include/Attributes/MoIAttributes.hpp=20=09modifi?= =?UTF-8?q?=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20include/Attributes/MoIA?= =?UTF-8?q?ttributes.tpp=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20include/Attributes/SDAttributes.hpp=20=09modifi=C3=A9=C2=A0:?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20include/Attributes/SDAttributes.tpp?= =?UTF-8?q?=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20include/Att?= =?UTF-8?q?ributes/WeightAttributes.hpp=20=09modifi=C3=A9=C2=A0:=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20include/Attributes/WeightAttributes.tpp=20=09?= =?UTF-8?q?modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20include/Attribute?= =?UTF-8?q?s/XYAttributes.hpp=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20include/Attributes/XYAttributes.tpp=20=09modifi=C3=A9?= =?UTF-8?q?=C2=A0:=20=20=20=20=20=20=20=20=20include/CompAttribute.hpp=20?= =?UTF-8?q?=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20include/CompAt?= =?UTF-8?q?tribute.tpp=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20?= =?UTF-8?q?include/triskeleDealThreads.tpp=20=09modifi=C3=A9=C2=A0:=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20src/Appli/Option.cpp=20=09modifi=C3=A9?= =?UTF-8?q?=C2=A0:=20=20=20=20=20=20=20=20=20src/IImage.cpp=20=09modifi?= =?UTF-8?q?=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20src/apGenerator.cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/Appli/Option.hpp | 2 +- include/Attributes/AreaAttributes.hpp | 2 +- include/Attributes/AreaAttributes.tpp | 4 +- include/Attributes/AverageAttributes.hpp | 2 +- include/Attributes/AverageAttributes.tpp | 2 +- include/Attributes/MoIAttributes.hpp | 2 +- include/Attributes/MoIAttributes.tpp | 6 +- include/Attributes/SDAttributes.hpp | 2 +- include/Attributes/SDAttributes.tpp | 6 +- include/Attributes/WeightAttributes.hpp | 5 + include/Attributes/WeightAttributes.tpp | 14 +++ include/Attributes/XYAttributes.hpp | 2 +- include/Attributes/XYAttributes.tpp | 2 +- include/CompAttribute.hpp | 41 +++---- include/CompAttribute.tpp | 142 ++++++++++++----------- include/triskeleDealThreads.tpp | 2 +- src/Appli/Option.cpp | 4 +- src/IImage.cpp | 2 +- src/apGenerator.cpp | 10 +- 19 files changed, 137 insertions(+), 115 deletions(-) diff --git a/include/Appli/Option.hpp b/include/Appli/Option.hpp index 58bcbfa..b65603f 100644 --- a/include/Appli/Option.hpp +++ b/include/Appli/Option.hpp @@ -25,7 +25,7 @@ namespace otb { Selected selectedBand; size_t countingSortCeil = 2; vector areaThresholds; - vector sdThresholds, moiThresholds; + vector levelThresholds, sdThresholds, moiThresholds; unsigned int coreCount = boost::thread::hardware_concurrency (); bool maxTreeFlag = false, minTreeFlag = false, tosTreeFlag = false, alphaTreeFlag = false; bool oneBand = false; diff --git a/include/Attributes/AreaAttributes.hpp b/include/Attributes/AreaAttributes.hpp index e843e0e..71bf19b 100644 --- a/include/Attributes/AreaAttributes.hpp +++ b/include/Attributes/AreaAttributes.hpp @@ -9,7 +9,7 @@ namespace otb { namespace triskele { - class AreaAttributes : public CompAttributeC { + class AreaAttributes : public CompAttribute { public: inline AreaAttributes (const Tree &tree); inline ~AreaAttributes (); diff --git a/include/Attributes/AreaAttributes.tpp b/include/Attributes/AreaAttributes.tpp index c7b41cd..eb800ff 100644 --- a/include/Attributes/AreaAttributes.tpp +++ b/include/Attributes/AreaAttributes.tpp @@ -5,7 +5,7 @@ using namespace boost::chrono; inline AreaAttributes::AreaAttributes (const Tree &tree) - : CompAttributeC (tree) { + : CompAttribute (tree) { compute (); } @@ -18,7 +18,7 @@ inline void AreaAttributes::cut (vector > &allBands, const AttributeProfiles &attributeProfiles, const vector &thresholds) const { auto start = high_resolution_clock::now (); - CompAttributeC::cut (allBands, attributeProfiles, 1, thresholds); + CompAttribute::cut (allBands, attributeProfiles, 1, thresholds); globalTreeStats.addTime (filteringStats, duration_cast > (high_resolution_clock::now ()-start).count ()); } diff --git a/include/Attributes/AverageAttributes.hpp b/include/Attributes/AverageAttributes.hpp index 07cc6b7..c21ad91 100644 --- a/include/Attributes/AverageAttributes.hpp +++ b/include/Attributes/AverageAttributes.hpp @@ -11,7 +11,7 @@ namespace otb { namespace triskele { - class AverageAttributes : public CompAttributeC { + class AverageAttributes : public CompAttribute { public: template inline AverageAttributes (const Tree &tree, const Raster &raster, const AreaAttributes &areaAttributes); diff --git a/include/Attributes/AverageAttributes.tpp b/include/Attributes/AverageAttributes.tpp index 7a174f8..2fdcd23 100644 --- a/include/Attributes/AverageAttributes.tpp +++ b/include/Attributes/AverageAttributes.tpp @@ -6,7 +6,7 @@ using namespace boost::chrono; template inline AverageAttributes::AverageAttributes (const Tree &tree, const Raster &raster, const AreaAttributes &areaAttributes) - : CompAttributeC (tree) { + : CompAttribute (tree) { compute (raster, areaAttributes); } diff --git a/include/Attributes/MoIAttributes.hpp b/include/Attributes/MoIAttributes.hpp index 9041a5e..4834d5a 100644 --- a/include/Attributes/MoIAttributes.hpp +++ b/include/Attributes/MoIAttributes.hpp @@ -9,7 +9,7 @@ namespace otb { namespace triskele { - class MoIAttributes : public CompAttributeC { + class MoIAttributes : public CompAttribute { public: inline MoIAttributes (const Tree &tree, const AreaAttributes &areaAttributes, const XYAttributes &xyAttributes); inline ~MoIAttributes (); diff --git a/include/Attributes/MoIAttributes.tpp b/include/Attributes/MoIAttributes.tpp index ba197ef..089ecd8 100644 --- a/include/Attributes/MoIAttributes.tpp +++ b/include/Attributes/MoIAttributes.tpp @@ -5,7 +5,7 @@ using namespace boost::chrono; inline MoIAttributes::MoIAttributes (const Tree &tree, const AreaAttributes &areaAttributes, const XYAttributes &xyAttributes) - : CompAttributeC (tree) { + : CompAttribute (tree) { compute (areaAttributes, xyAttributes); } @@ -23,8 +23,8 @@ MoIAttributes::cut (vector > &allBands, const AttributeProfiles

::getMaxValue (); cerr << "moi max value:" << maxValue << endl; - CompAttributeC::cut (allBands, attributeProfiles, 0, - CompAttributeC::getScaledThresholds (thresholds, maxValue)); + CompAttribute::cut (allBands, attributeProfiles, 0, + CompAttribute::getScaledThresholds (thresholds, maxValue)); globalTreeStats.addTime (filteringStats, duration_cast > (high_resolution_clock::now ()-start).count ()); } diff --git a/include/Attributes/SDAttributes.hpp b/include/Attributes/SDAttributes.hpp index 1521c95..8c19336 100644 --- a/include/Attributes/SDAttributes.hpp +++ b/include/Attributes/SDAttributes.hpp @@ -11,7 +11,7 @@ namespace otb { namespace triskele { - class SDAttributes : public CompAttributeC { + class SDAttributes : public CompAttribute { public: inline SDAttributes (const Tree &tree, const AreaAttributes &areaAttributes); inline ~SDAttributes (); diff --git a/include/Attributes/SDAttributes.tpp b/include/Attributes/SDAttributes.tpp index 9d2fcf8..66f127d 100644 --- a/include/Attributes/SDAttributes.tpp +++ b/include/Attributes/SDAttributes.tpp @@ -5,7 +5,7 @@ using namespace boost::chrono; inline SDAttributes::SDAttributes (const Tree &tree, const AreaAttributes &areaAttributes) - : CompAttributeC (tree) { + : CompAttribute (tree) { compute (areaAttributes); } @@ -23,8 +23,8 @@ SDAttributes::cut (vector > &allBands, const AttributeProfiles::getMaxValue (); cerr << "sd max value:" << maxValue << endl; - CompAttributeC::cut (allBands, attributeProfiles, 0, - CompAttributeC::getScaledThresholds (thresholds, maxValue)); + CompAttribute::cut (allBands, attributeProfiles, 0, + CompAttribute::getScaledThresholds (thresholds, maxValue)); globalTreeStats.addTime (filteringStats, duration_cast > (high_resolution_clock::now ()-start).count ()); } diff --git a/include/Attributes/WeightAttributes.hpp b/include/Attributes/WeightAttributes.hpp index 1fee457..f7614c9 100644 --- a/include/Attributes/WeightAttributes.hpp +++ b/include/Attributes/WeightAttributes.hpp @@ -2,6 +2,8 @@ #ifndef _OTB_TRISKELE_WEIGHT_ATTRIBUTES_HPP #define _OTB_TRISKELE_WEIGHT_ATTRIBUTES_HPP +#include + #include "triskeleBase.hpp" namespace otb { @@ -15,6 +17,9 @@ namespace otb { inline ~WeightAttributes (); inline void setWeightBounds (Tree &tree); + template + inline void cut (vector > &allBands, const AttributeProfiles &attributeProfiles, + const vector &thresholds) const; virtual inline ostream &print (ostream &out) const { CompAttribute::print (out, "weight"); return out; } }; diff --git a/include/Attributes/WeightAttributes.tpp b/include/Attributes/WeightAttributes.tpp index f7bfd96..76406a4 100644 --- a/include/Attributes/WeightAttributes.tpp +++ b/include/Attributes/WeightAttributes.tpp @@ -1,6 +1,8 @@ #ifndef _OTB_TRISKELE_WEIGHT_ATTRIBUTES_TPP #define _OTB_TRISKELE_WEIGHT_ATTRIBUTES_TPP +using namespace boost::chrono; + template inline WeightAttributes::WeightAttributes (const Tree &tree) @@ -39,4 +41,16 @@ WeightAttributes::setWeightBounds (Tree &tree) { weightBounds.push_back (rootId+1); } + +template +template +inline void +WeightAttributes::cut (vector > &allBands, const AttributeProfiles &attributeProfiles, + const vector &thresholds) const { + auto start = high_resolution_clock::now (); + CompAttribute::cut (allBands, attributeProfiles, 0., thresholds); + globalTreeStats.addTime (filteringStats, duration_cast > (high_resolution_clock::now ()-start).count ()); +} + + #endif // _OTB_TRISKELE_WEIGHT_ATTRIBUTES_TPP diff --git a/include/Attributes/XYAttributes.hpp b/include/Attributes/XYAttributes.hpp index bc14297..d69bf3e 100644 --- a/include/Attributes/XYAttributes.hpp +++ b/include/Attributes/XYAttributes.hpp @@ -18,7 +18,7 @@ namespace otb { operator DimImg () const { return (DimImg) (x*y); } }; - class XYAttributes : public CompAttributeC { + class XYAttributes : public CompAttribute { public: inline XYAttributes (const Tree &tree, const AreaAttributes &areaAttributes); inline ~XYAttributes (); diff --git a/include/Attributes/XYAttributes.tpp b/include/Attributes/XYAttributes.tpp index c26cfa5..92d7bc2 100644 --- a/include/Attributes/XYAttributes.tpp +++ b/include/Attributes/XYAttributes.tpp @@ -5,7 +5,7 @@ using namespace boost::chrono; inline XYAttributes::XYAttributes (const Tree &tree, const AreaAttributes &areaAttributes) - : CompAttributeC (tree) { + : CompAttribute (tree) { compute (areaAttributes); } diff --git a/include/CompAttribute.hpp b/include/CompAttribute.hpp index 69d822a..b98fee6 100644 --- a/include/CompAttribute.hpp +++ b/include/CompAttribute.hpp @@ -14,6 +14,9 @@ namespace otb { template class CompAttribute { public: + static inline vector getScaledThresholds (const vector &thresholds, const AttrT &maxValue); + static inline vector getConvertedThresholds (const vector &thresholds); + inline CompAttribute (const Tree &tree); inline ~CompAttribute (); @@ -22,6 +25,14 @@ namespace otb { inline AttrT *getValues (); inline AttrT getMaxValue () const; + template + inline void cut (vector > &allBands, const AttributeProfiles &attributeProfiles, + const AttrT &pixelAttrValue, const vector &thresholds) const; + + template + inline void cutOnPos (vector > &allBands, const AttributeProfiles &attributeProfiles, + const DimImg &pixelId, const AttrT &pixelAttrValue, const vector &thresholds) const; + virtual inline ostream &print (ostream &out) const { print (out, ""); return out; } protected: @@ -32,39 +43,19 @@ namespace otb { inline void free (); inline void book (const DimImg &leafCount); + template + inline void computeSameCompLevel (const CumpFunctPSE &cumpFunctPSE /* cumpFunctPSE (DimImg parentId)*/) const; + ostream &print (ostream &out, const string &msg) const; - friend ostream &operator << (ostream& out, const CompAttribute &ca) { return ca.print (out); } + friend ostream &operator << (ostream& out, const CompAttribute &ca) { return ca.print (out); return out; } + }; } // triskele } // otb - #include "Attributes/WeightAttributes.hpp" - namespace otb { namespace triskele { - - template - class CompAttributeC : public CompAttribute { - public: - inline CompAttributeC (const Tree &tree); - inline ~CompAttributeC (); - - static inline vector getScaledThresholds (const vector &thresholds, const AttrT &maxValue); - - template - inline void cut (vector > &allBands, const AttributeProfiles &attributeProfiles, - const AttrT &pixelAttrValue, const vector &thresholds) const; - - template - inline void cutOnPos (vector > &allBands, const AttributeProfiles &attributeProfiles, - const DimImg &pixelId, const AttrT &pixelAttrValue, const vector &thresholds) const; - - protected: - template - inline void computeSameCompLevel (const CumpFunctPSE &cumpFunctPSE /* cumpFunctPSE (DimImg parentId)*/) const; - }; - #include "CompAttribute.tpp" } // triskele } // otb diff --git a/include/CompAttribute.tpp b/include/CompAttribute.tpp index d7f0b25..cf44c5c 100644 --- a/include/CompAttribute.tpp +++ b/include/CompAttribute.tpp @@ -1,6 +1,26 @@ #ifndef _OTB_TRISKELE_COMP_ATTRIBUTE_TPP #define _OTB_TRISKELE_COMP_ATTRIBUTE_TPP +// ======================================== +template +inline vector +CompAttribute::getScaledThresholds (const vector &thresholds, const AttrT &maxValue) { + vector result; + for (double percent : thresholds) + result.push_back (percent*maxValue); + return result; +} + +template +inline vector +CompAttribute::getConvertedThresholds (const vector &thresholds) { + vector result; + for (double value : thresholds) + result.push_back ((AttrT) value); + return result; +} + +// ======================================== template inline CompAttribute::CompAttribute (const Tree &tree) @@ -47,78 +67,13 @@ CompAttribute::getMaxValue () const { return max; } -template -inline ostream & -CompAttribute::print (ostream &out, const string &msg) const { - cout << "values: " << msg << endl; - const Size doubleSize (tree.getSize().width, 2*tree.getSize ().height); - return cout << printMap (&values[0], doubleSize, tree.getCompCount ()) << endl << endl; -} - -template -inline void -CompAttribute::free () { - values = vector (); -} - -template -inline void -CompAttribute::book (const DimImg &leafCount) { - this->leafCount = leafCount; - values.resize (leafCount); -} - // ======================================== -template -inline -CompAttributeC::CompAttributeC (const Tree &tree) - : CompAttribute (tree) { -} - -template -inline -CompAttributeC::~CompAttributeC () { -} - -template -inline vector -CompAttributeC::getScaledThresholds (const vector &thresholds, const AttrT &maxValue) { - vector result; - for (AttrT percent : thresholds) - result.push_back (percent*maxValue); - return result; -} - - -template -template -inline void -CompAttributeC::computeSameCompLevel (const CumpFunctPSE &cumpFunctPSE) const { - const vector &weightBounds (CompAttribute::tree.getWeightBounds ()); - unsigned int coreCount = CompAttribute::tree.getCoreCount (); - DEF_LOG ("CompAttributeC::computeSameCompLevel", "coreCount:" << coreCount); - if (!weightBounds.size () || CompAttribute::tree.getCompCount ()/weightBounds.size () < coreCount) { - LOG ("CompAttributeC::computeSameCompLevel: no thread"); - CompAttribute::tree.forEachComp (cumpFunctPSE); - return; - } - DimImg first = weightBounds [0]; - for (DimImg curBound = 1; curBound < weightBounds.size (); curBound++) { - DimImg next = weightBounds [curBound]; - dealThreadRange (next-first, coreCount, [this, &first, &cumpFunctPSE] (const DimImg &id) { - const DimImg parentId = id+first; - cumpFunctPSE (parentId); - }); - first = next; - } -} - template template inline void -CompAttributeC::cut (vector > &allBands, const AttributeProfiles &attributeProfiles, +CompAttribute::cut (vector > &allBands, const AttributeProfiles &attributeProfiles, const AttrT &pixelAttrValue, const vector &thresholds) const { - DEF_LOG ("CompAttributeC::cut", "coreCount:" << CompAttribute::tree.getCoreCount () << " thresholds:" << thresholds.size ()); + DEF_LOG ("CompAttribute::cut", "coreCount:" << CompAttribute::tree.getCoreCount () << " thresholds:" << thresholds.size ()); dealThreadRange (CompAttribute::leafCount, CompAttribute::tree.getCoreCount (), [this, &allBands, &attributeProfiles, &pixelAttrValue, &thresholds] (const DimImg &leafId) { cutOnPos (allBands, attributeProfiles, leafId, pixelAttrValue, thresholds); }); @@ -127,7 +82,7 @@ CompAttributeC::cut (vector > &allBands, const AttributePr template template inline void -CompAttributeC::cutOnPos (vector > &allBands, const AttributeProfiles &attributeProfiles, +CompAttribute::cutOnPos (vector > &allBands, const AttributeProfiles &attributeProfiles, const DimImg &leafId, const AttrT &pixelAttrValue, const vector &thresholds) const { // no debug (to many pixels) DimImg parentId = CompAttribute::tree.getLeafParent (leafId); @@ -152,7 +107,7 @@ CompAttributeC::cutOnPos (vector > &allBands, const Attrib AttrT ceil = thresholds[chanel]; for ( ; curValue < ceil && curId < rootId; ) { if (parentId == DimImg_MAX || curId >= parentId) { - // cerr << "CompAttributeC::cutOnPos find sub-root:" << rootId << " rootId:" << rootId << endl; + // cerr << "CompAttribute::cutOnPos find sub-root:" << rootId << " rootId:" << rootId << endl; for (; chanel < thresholdsSize; ++chanel) allBands[chanel][leafId] = curValue; return; @@ -167,4 +122,53 @@ CompAttributeC::cutOnPos (vector > &allBands, const Attrib } } +// ======================================== +template +inline ostream & +CompAttribute::print (ostream &out, const string &msg) const { + cout << "values: " << msg << endl; + const Size doubleSize (tree.getSize().width, 2*tree.getSize ().height); + cout << printMap (&values[0], doubleSize, tree.getCompCount ()) << endl << endl; + return out; +} + +// ======================================== +template +inline void +CompAttribute::free () { + values = vector (); +} + +template +inline void +CompAttribute::book (const DimImg &leafCount) { + this->leafCount = leafCount; + values.resize (leafCount); +} + +// ======================================== +template +template +inline void +CompAttribute::computeSameCompLevel (const CumpFunctPSE &cumpFunctPSE) const { + const vector &weightBounds (CompAttribute::tree.getWeightBounds ()); + unsigned int coreCount = CompAttribute::tree.getCoreCount (); + DEF_LOG ("CompAttribute::computeSameCompLevel", "coreCount:" << coreCount); + if (!weightBounds.size () || CompAttribute::tree.getCompCount ()/weightBounds.size () < coreCount) { + LOG ("CompAttribute::computeSameCompLevel: no thread"); + CompAttribute::tree.forEachComp (cumpFunctPSE); + return; + } + DimImg first = weightBounds [0]; + for (DimImg curBound = 1; curBound < weightBounds.size (); curBound++) { + DimImg next = weightBounds [curBound]; + dealThreadRange (next-first, coreCount, [this, &first, &cumpFunctPSE] (const DimImg &id) { + const DimImg parentId = id+first; + cumpFunctPSE (parentId); + }); + first = next; + } +} + +// ======================================== #endif // _OTB_TRISKELE_COMP_ATTRIBUTE_TPP diff --git a/include/triskeleDealThreads.tpp b/include/triskeleDealThreads.tpp index 9bafaac..23ad948 100644 --- a/include/triskeleDealThreads.tpp +++ b/include/triskeleDealThreads.tpp @@ -71,7 +71,7 @@ dealThread (const DimImg &maxId, unsigned int coreCount, const FunctThreadMinMax functThreadMinMax (idCopyValInThread, maxIds[idCopyValInThread], maxIds[idCopyValInThread+1]); }); #else /* BOOST thread */ - boost::thread tasks [coreCount]; + std::vector tasks; for (unsigned int idCopyValInThread = 0; idCopyValInThread < coreCount; ++idCopyValInThread) { tasks.push_back (boost::thread ([/*no ref!!!*/idCopyValInThread, &maxIds, &functThreadMinMax] () { functThreadMinMax (idCopyValInThread, maxIds[idCopyValInThread], maxIds[idCopyValInThread+1]); diff --git a/src/Appli/Option.cpp b/src/Appli/Option.cpp index 329fde5..806b4c0 100644 --- a/src/Appli/Option.cpp +++ b/src/Appli/Option.cpp @@ -97,7 +97,7 @@ Option::parse (int argc, char** argv) { bool helpFlag = false, versionFlag = false, useTheForceLuke = false; string inputFileName, outputFileName, bandsRange; long left = -1, top = -1, width = -1, height = -1; - string areaThresholdsName, sdThresholdsName, moiThresholdsName; + string areaThresholdsName, levelThresholdsName, sdThresholdsName, moiThresholdsName; try { desc.add_options () ("help", po::bool_switch (&helpFlag), "produce this help message") @@ -115,6 +115,7 @@ Option::parse (int argc, char** argv) { ("tos-tree", po::bool_switch (&tosTreeFlag), "build tree-of-shape") ("alpha-tree", po::bool_switch (&alphaTreeFlag), "build alpha-tree") ("area,A", po::value (&areaThresholdsName), "produce area attributs") + ("level,L", po::value (&levelThresholdsName), "produce level attributs") ("standard-deviation,S", po::value (&sdThresholdsName), "produce standard deviation attributs") ("moment-of-inertia,M", po::value (&moiThresholdsName), "produce moment of inertia attributs") ; @@ -186,6 +187,7 @@ Option::parse (int argc, char** argv) { usage ("Bad options"); } areaThresholds = readThresholds (areaThresholdsName); + levelThresholds = readThresholds (levelThresholdsName); sdThresholds = readThresholds (sdThresholdsName); moiThresholds = readThresholds (moiThresholdsName); diff --git a/src/IImage.cpp b/src/IImage.cpp index 3860f09..9779d7e 100644 --- a/src/IImage.cpp +++ b/src/IImage.cpp @@ -24,7 +24,7 @@ IImage::~IImage () { void IImage::readImage () { - DEF_LOG ("IImage::readImage", "fileName: " << fileName); + DEF_LOG ("IImage::readImage", "fileName: " << fileName << " c_str:" << fileName.c_str ()); BOOST_ASSERT (gdalInputDataset == nullptr); BOOST_ASSERT (gdalOutputDataset == nullptr); close (); diff --git a/src/apGenerator.cpp b/src/apGenerator.cpp index 7a6f104..23a5c37 100644 --- a/src/apGenerator.cpp +++ b/src/apGenerator.cpp @@ -69,10 +69,10 @@ void apGenerator (Option &option) { Border border (option.size, false); // default = no border GraphWalker graphWalker (border); DimImg leafCount = graphWalker.vertexMaxCount (); - DimChanel maxThresholds = max (max (option.areaThresholds.size (), option.sdThresholds.size ()), option.moiThresholds.size ()); + DimChanel maxThresholds = max (max (max (option.areaThresholds.size (), option.levelThresholds.size ()), option.sdThresholds.size ()), option.moiThresholds.size ()); vector > allBands (maxThresholds, vector (leafCount, 0)); - DimChanel outputBandsCard = option.selectedBand.getSet ().size ()*(1+treeTypesCard*(option.areaThresholds.size ()+option.sdThresholds.size ()+option.moiThresholds.size ())); + DimChanel outputBandsCard = option.selectedBand.getSet ().size ()*(1+treeTypesCard*(option.areaThresholds.size ()+option.levelThresholds.size ()+option.sdThresholds.size ()+option.moiThresholds.size ())); if (!option.oneBand) option.outputImage.createImage (option.size, option.inputImage.getDataType (), outputBandsCard); @@ -96,6 +96,12 @@ void apGenerator (Option &option) { for (DimChanel c = 0; c < option.areaThresholds.size (); ++c, ++chanel) writeBand (option, &allBands[c][0], chanel); } + if (option.levelThresholds.size ()) { + vector thresholds (weightAttributes.getConvertedThresholds (option.levelThresholds)); + weightAttributes.cut (allBands, attributeProfiles, thresholds); + for (DimChanel c = 0; c < option.levelThresholds.size (); ++c, ++chanel) + writeBand (option, &allBands[c][0], chanel); + } if (option.sdThresholds.size ()) { SDAttributes sdAttributes (tree, areaAttributes); sdAttributes.cut (allBands, attributeProfiles, option.sdThresholds); From 7722357a1b1f629690e061f3067d0f735ce095eb Mon Sep 17 00:00:00 2001 From: Git Merciol Date: Fri, 20 Apr 2018 16:27:52 +0200 Subject: [PATCH 02/31] =?UTF-8?q?=09nouveau=20fichier=C2=A0:=20data/levelT?= =?UTF-8?q?hresholds.txt=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20include/Appli/Option.hpp=20=09modifi=C3=A9=C2=A0:=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20include/AttributeProfiles.hpp=20=09modifi?= =?UTF-8?q?=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20include/AttributeProfil?= =?UTF-8?q?es.tpp=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20inclu?= =?UTF-8?q?de/Attributes/AverageAttributes.hpp=20=09modifi=C3=A9=C2=A0:=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20src/Appli/Option.cpp=20=09modifi=C3=A9?= =?UTF-8?q?=C2=A0:=20=20=20=20=20=20=20=20=20src/apGenerator.cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data/levelThresholds.txt | 8 ++++++++ include/Appli/Option.hpp | 1 + include/AttributeProfiles.hpp | 3 +++ include/AttributeProfiles.tpp | 21 +++++++++++++++++++++ include/Attributes/AverageAttributes.hpp | 1 + src/Appli/Option.cpp | 5 ++++- src/apGenerator.cpp | 18 ++++++++++++------ 7 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 data/levelThresholds.txt diff --git a/data/levelThresholds.txt b/data/levelThresholds.txt new file mode 100644 index 0000000..d2864ab --- /dev/null +++ b/data/levelThresholds.txt @@ -0,0 +1,8 @@ +0 +1 +5 +10 +25 +50 +100 +200 diff --git a/include/Appli/Option.hpp b/include/Appli/Option.hpp index b65603f..2e073b2 100644 --- a/include/Appli/Option.hpp +++ b/include/Appli/Option.hpp @@ -28,6 +28,7 @@ namespace otb { vector levelThresholds, sdThresholds, moiThresholds; unsigned int coreCount = boost::thread::hardware_concurrency (); bool maxTreeFlag = false, minTreeFlag = false, tosTreeFlag = false, alphaTreeFlag = false; + bool averageFlag = false; bool oneBand = false; Option (); diff --git a/include/AttributeProfiles.hpp b/include/AttributeProfiles.hpp index 23434ec..6627b67 100644 --- a/include/AttributeProfiles.hpp +++ b/include/AttributeProfiles.hpp @@ -16,6 +16,9 @@ namespace otb { inline PixelT *getValues (); inline const PixelT *getValues () const; + template + inline void setValues (const PixelT *pixels, const WeightT *weights); + protected: const Tree &tree; DimNodeId leafCount; diff --git a/include/AttributeProfiles.tpp b/include/AttributeProfiles.tpp index b8b6945..cbfb391 100644 --- a/include/AttributeProfiles.tpp +++ b/include/AttributeProfiles.tpp @@ -1,6 +1,7 @@ #ifndef _OTB_TRISKELE_ATTRIBUTE_PROFILES_TPP #define _OTB_TRISKELE_ATTRIBUTE_PROFILES_TPP +// ======================================== template inline AttributeProfiles::AttributeProfiles (const Tree &tree) @@ -34,6 +35,25 @@ AttributeProfiles::getValues () const { return &values[0]; } +// ======================================== +template +template +inline void +AttributeProfiles::setValues (const PixelT *pixels, const WeightT *weights) { + updateTranscient (); + PixelT *leafAP = &values[0]; + dealThreadBound (tree.getLeafCount (), tree.getCoreCount (), [&leafAP, &pixels] (const DimImg &minVal, const DimImg &maxVal) { + for (DimImg i = minVal; i < maxVal; ++i) + leafAP[i] = pixels [i]; + }); + PixelT *compAP = leafAP+tree.getLeafCount (); + dealThreadBound (tree.getCompCount (), tree.getCoreCount (), [&compAP, &weights] (const DimImg &minVal, const DimImg &maxVal) { + for (DimImg compIdx = minVal; compIdx < maxVal; ++compIdx) + compAP[compIdx] = weights[compIdx]; + }); +} + + template inline void AttributeProfiles::free () { @@ -58,4 +78,5 @@ AttributeProfiles::print (ostream &out) const { return out; } +// ======================================== #endif // _OTB_TRISKELE_ATTRIBUTE_PROFILES_TPP diff --git a/include/Attributes/AverageAttributes.hpp b/include/Attributes/AverageAttributes.hpp index c21ad91..26da188 100644 --- a/include/Attributes/AverageAttributes.hpp +++ b/include/Attributes/AverageAttributes.hpp @@ -16,6 +16,7 @@ namespace otb { template inline AverageAttributes (const Tree &tree, const Raster &raster, const AreaAttributes &areaAttributes); inline ~AverageAttributes (); + virtual inline ostream &print (ostream &out) const { CompAttribute::print (out, "average"); return out; } protected: template diff --git a/src/Appli/Option.cpp b/src/Appli/Option.cpp index 806b4c0..9c1420e 100644 --- a/src/Appli/Option.cpp +++ b/src/Appli/Option.cpp @@ -110,12 +110,15 @@ Option::parse (int argc, char** argv) { ("height,h", po::value (&height), "height crop (default input height)") ("input,i", po::value (&inputFileName), "input file name image") ("output,o", po::value (&outputFileName), "output file name hyperbands image (contains attributs profiles)") + ("average", po::bool_switch (&averageFlag), "produce average profiles") + ("max-tree", po::bool_switch (&maxTreeFlag), "build max-tree") ("min-tree", po::bool_switch (&minTreeFlag), "build min-tree") ("tos-tree", po::bool_switch (&tosTreeFlag), "build tree-of-shape") ("alpha-tree", po::bool_switch (&alphaTreeFlag), "build alpha-tree") - ("area,A", po::value (&areaThresholdsName), "produce area attributs") + ("level,L", po::value (&levelThresholdsName), "produce level attributs") + ("area,A", po::value (&areaThresholdsName), "produce area attributs") ("standard-deviation,S", po::value (&sdThresholdsName), "produce standard deviation attributs") ("moment-of-inertia,M", po::value (&moiThresholdsName), "produce moment of inertia attributs") ; diff --git a/src/apGenerator.cpp b/src/apGenerator.cpp index 23a5c37..4d71159 100644 --- a/src/apGenerator.cpp +++ b/src/apGenerator.cpp @@ -88,20 +88,26 @@ void apGenerator (Option &option) { WeightAttributes weightAttributes (tree); atb.buildTree (tree, weightAttributes); AttributeProfiles attributeProfiles (tree); - atb.setAttributProfiles (attributeProfiles); AreaAttributes areaAttributes (tree); - if (option.areaThresholds.size ()) { - areaAttributes.cut (allBands, attributeProfiles, option.areaThresholds); - for (DimChanel c = 0; c < option.areaThresholds.size (); ++c, ++chanel) - writeBand (option, &allBands[c][0], chanel); - } + AverageAttributes averageAttributes (tree, raster, areaAttributes); + + if (option.averageFlag) + attributeProfiles.setValues (raster.getPixels (), weightAttributes.getValues ()); + else + atb.setAttributProfiles (attributeProfiles); + if (option.levelThresholds.size ()) { vector thresholds (weightAttributes.getConvertedThresholds (option.levelThresholds)); weightAttributes.cut (allBands, attributeProfiles, thresholds); for (DimChanel c = 0; c < option.levelThresholds.size (); ++c, ++chanel) writeBand (option, &allBands[c][0], chanel); } + if (option.areaThresholds.size ()) { + areaAttributes.cut (allBands, attributeProfiles, option.areaThresholds); + for (DimChanel c = 0; c < option.areaThresholds.size (); ++c, ++chanel) + writeBand (option, &allBands[c][0], chanel); + } if (option.sdThresholds.size ()) { SDAttributes sdAttributes (tree, areaAttributes); sdAttributes.cut (allBands, attributeProfiles, option.sdThresholds); From 07112370349b83e4af198d27dc058046991e1af1 Mon Sep 17 00:00:00 2001 From: Git Merciol Date: Tue, 15 May 2018 14:17:27 +0200 Subject: [PATCH 03/31] =?UTF-8?q?=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20src/apGenerator.cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apGenerator.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/apGenerator.cpp b/src/apGenerator.cpp index 4d71159..c2de193 100644 --- a/src/apGenerator.cpp +++ b/src/apGenerator.cpp @@ -93,7 +93,7 @@ void apGenerator (Option &option) { AverageAttributes averageAttributes (tree, raster, areaAttributes); if (option.averageFlag) - attributeProfiles.setValues (raster.getPixels (), weightAttributes.getValues ()); + attributeProfiles.setValues (raster.getPixels (), averageAttributes.getValues ()); else atb.setAttributProfiles (attributeProfiles); From 4814ea4a8e023269536a87f76cf536d782be2de7 Mon Sep 17 00:00:00 2001 From: Git Merciol Date: Mon, 28 May 2018 17:30:48 +0200 Subject: [PATCH 04/31] =?UTF-8?q?=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20include/ArrayTree/ArrayTreeBuilder.tpp=20=09modifi?= =?UTF-8?q?=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20include/ArrayTree/Weigh?= =?UTF-8?q?t.hpp=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20=20=20=20=20includ?= =?UTF-8?q?e/ArrayTree/Weight.tpp=20=09modifi=C3=A9=C2=A0:=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20include/triskeleDealThreads.tpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/ArrayTree/ArrayTreeBuilder.tpp | 8 +-- include/ArrayTree/Weight.hpp | 16 +++--- include/ArrayTree/Weight.tpp | 72 +++++++++++++------------- include/triskeleDealThreads.tpp | 20 +++---- 4 files changed, 58 insertions(+), 58 deletions(-) diff --git a/include/ArrayTree/ArrayTreeBuilder.tpp b/include/ArrayTree/ArrayTreeBuilder.tpp index 892f537..99e8403 100644 --- a/include/ArrayTree/ArrayTreeBuilder.tpp +++ b/include/ArrayTree/ArrayTreeBuilder.tpp @@ -43,10 +43,10 @@ ArrayTreeBuilder::buildTree (Tree &tree, WeightAttributes (raster.getPixels (), raster.getSize ())); + buildTree (tree, MaxWeight (raster.getPixels (), raster.getSize ())); break; case MAX: - buildTree (tree, MaxWeight (raster.getPixels (), raster.getSize ())); + buildTree (tree, MinWeight (raster.getPixels (), raster.getSize ())); break; case TOS: buildTree (tree, MedianWeight (raster.getPixels (), graphWalker)); @@ -84,10 +84,10 @@ ArrayTreeBuilder::setAttributProfiles (AttributeProfiles (raster.getPixels (), raster.getSize ())); + setAttributProfiles (attributeProfiles, MaxWeight (raster.getPixels (), raster.getSize ())); break; case MAX: - setAttributProfiles (attributeProfiles, MaxWeight (raster.getPixels (), raster.getSize ())); + setAttributProfiles (attributeProfiles, MinWeight (raster.getPixels (), raster.getSize ())); break; case TOS: setAttributProfiles (attributeProfiles, MedianWeight (raster.getPixels (), graphWalker)); diff --git a/include/ArrayTree/Weight.hpp b/include/ArrayTree/Weight.hpp index 29b402a..9157b6a 100644 --- a/include/ArrayTree/Weight.hpp +++ b/include/ArrayTree/Weight.hpp @@ -45,7 +45,7 @@ namespace otb { }; /*! Structure intégrant la façon dont est géré un poids pour un MinTree */ - template struct MinWeight : public WeightBase { + template struct MaxWeight : public WeightBase { typedef WeightBase WB; inline bool getDecr () const; @@ -53,9 +53,9 @@ namespace otb { static inline bool isEdgeInf (const Edge &a, const Edge &b); static inline void sort (Edge *edges, DimEdge count); - inline MinWeight (); - inline MinWeight (const PixelT *pixels, const Size &size); - inline MinWeight (const MinWeight &model, const PixelT *pixels, const Size &size); + inline MaxWeight (); + inline MaxWeight (const PixelT *pixels, const Size &size); + inline MaxWeight (const MaxWeight &model, const PixelT *pixels, const Size &size); inline WeightT getWeight (const DimImg &idx) const; inline WeightT getWeight (const Point &a, const Point &b) const; @@ -63,12 +63,12 @@ namespace otb { // ======================================== /*! Structure intégrant la façon dont est géré un poids pour un MaxTree */ - template struct MaxWeight : public WeightBase { + template struct MinWeight : public WeightBase { typedef WeightBase WB; - inline MaxWeight (); - inline MaxWeight (const PixelT *pixels, const Size &size); - inline MaxWeight (const MaxWeight &model, const PixelT *pixels, const Size &size); + inline MinWeight (); + inline MinWeight (const PixelT *pixels, const Size &size); + inline MinWeight (const MinWeight &model, const PixelT *pixels, const Size &size); inline WeightT getWeight (const DimImg &idx) const; inline WeightT getWeight (const Point &a, const Point &b) const; diff --git a/include/ArrayTree/Weight.tpp b/include/ArrayTree/Weight.tpp index 013f1ec..1f7eb50 100644 --- a/include/ArrayTree/Weight.tpp +++ b/include/ArrayTree/Weight.tpp @@ -101,60 +101,28 @@ WeightBase::weight2valueBound (PixelT *compAPTree, const Weight // ======================================== template inline bool -MinWeight::getDecr () const { +MaxWeight::getDecr () const { return true; } template inline bool -MinWeight::isWeightInf (const WeightT &a, const WeightT &b) { +MaxWeight::isWeightInf (const WeightT &a, const WeightT &b) { return a > b; } template inline bool -MinWeight::isEdgeInf (const Edge &a, const Edge &b) { +MaxWeight::isEdgeInf (const Edge &a, const Edge &b) { return isWeightInf (a.weight, b.weight); } template inline void -MinWeight::sort (Edge *edges, DimEdge count) { +MaxWeight::sort (Edge *edges, DimEdge count) { std::sort (edges, edges+count, isEdgeInf); } -template -inline -MinWeight::MinWeight () - : WB (nullptr, NullSize) { -} - -template -inline -MinWeight::MinWeight (const PixelT *pixels, const Size &size) - : WB (pixels, size) { -} - -template -inline -MinWeight::MinWeight (const MinWeight &model, const PixelT *pixels, const Size &size) - : WB (pixels, size) { -} - -template -inline WeightT -MinWeight::getWeight (const DimImg &idx) const { - return WB::getValue (idx); -} - -template -inline WeightT -MinWeight::getWeight (const Point &a, const Point &b) const { - return std::min (getWeight (WB::pointIdx (a)), - getWeight (WB::pointIdx (b))); -} - -// ======================================== template inline MaxWeight::MaxWeight () @@ -182,6 +150,38 @@ MaxWeight::getWeight (const DimImg &idx) const { template inline WeightT MaxWeight::getWeight (const Point &a, const Point &b) const { + return std::min (getWeight (WB::pointIdx (a)), + getWeight (WB::pointIdx (b))); +} + +// ======================================== +template +inline +MinWeight::MinWeight () + : WB (nullptr, NullSize) { +} + +template +inline +MinWeight::MinWeight (const PixelT *pixels, const Size &size) + : WB (pixels, size) { +} + +template +inline +MinWeight::MinWeight (const MinWeight &model, const PixelT *pixels, const Size &size) + : WB (pixels, size) { +} + +template +inline WeightT +MinWeight::getWeight (const DimImg &idx) const { + return WB::getValue (idx); +} + +template +inline WeightT +MinWeight::getWeight (const Point &a, const Point &b) const { return std::max (getWeight (WB::pointIdx (a)), getWeight (WB::pointIdx (b))); } diff --git a/include/triskeleDealThreads.tpp b/include/triskeleDealThreads.tpp index 23ad948..969e926 100644 --- a/include/triskeleDealThreads.tpp +++ b/include/triskeleDealThreads.tpp @@ -106,37 +106,37 @@ callOnSortedSets (const std::vector &sizes, // get min bool found = false; DimImg minVectIdx = 0; - WeightT minWeight = 0; + WeightT maxWeight = 0; for (DimImg vectId = 0; vectId < size; ++vectId) { if (!vectCounts [vectId]) continue; WeightT tmpWeight = getWeight (vectId, 0); - if (found && !isWeightInf (tmpWeight, minWeight)) + if (found && !isWeightInf (tmpWeight, maxWeight)) continue; minVectIdx = vectId; - minWeight = tmpWeight; + maxWeight = tmpWeight; found = true; } - LOG ("found:" << found << " minVectIdx:" << minVectIdx << " minWeight:" << minWeight); + LOG ("found:" << found << " minVectIdx:" << minVectIdx << " maxWeight:" << maxWeight); // loop for ( ; found; ) { // get next min found = false; DimImg nextMinVectIdx = 0; - WeightT nextMinWeight = 0; + WeightT nextMaxWeight = 0; for (DimImg vectId = minVectIdx; ; ) { if (vectCounts [vectId]) { WeightT tmpWeight = getWeight (vectId, vectIds [vectId]); - if (!isWeightInf (minWeight, tmpWeight)) { - // minWeight == tmpWeight + if (!isWeightInf (maxWeight, tmpWeight)) { + // maxWeight == tmpWeight callIdId (vectId, vectIds [vectId]); ++vectIds [vectId]; --vectCounts [vectId]; continue; } - if (!found || isWeightInf (tmpWeight, nextMinWeight)) { + if (!found || isWeightInf (tmpWeight, nextMaxWeight)) { nextMinVectIdx = vectId; - nextMinWeight = tmpWeight; + nextMaxWeight = tmpWeight; found = true; } } @@ -145,7 +145,7 @@ callOnSortedSets (const std::vector &sizes, break; } minVectIdx = nextMinVectIdx; - minWeight = nextMinWeight; + maxWeight = nextMaxWeight; } } From 9d76b1ad039c54f21a80430607c3409ccace7225 Mon Sep 17 00:00:00 2001 From: Thibaud Balem Date: Thu, 31 May 2018 18:17:15 +0200 Subject: [PATCH 05/31] =?UTF-8?q?Erreur=20de=20frappe=20dans=20XMLTree=20e?= =?UTF-8?q?mp=C3=AAchant=20la=20compilation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/XMLTree/XMLTreeBuilder.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/XMLTree/XMLTreeBuilder.cpp b/src/XMLTree/XMLTreeBuilder.cpp index fc0adac..8e4ae75 100644 --- a/src/XMLTree/XMLTreeBuilder.cpp +++ b/src/XMLTree/XMLTreeBuilder.cpp @@ -1,4 +1,4 @@ -<#include "XMLTree/XMLTreeBuilder.hpp" +#include "XMLTree/XMLTreeBuilder.hpp" using namespace otb::triskele; From 4776043ad6906b55c82c95368dc6c35aabb957ac Mon Sep 17 00:00:00 2001 From: Thibaud Balem Date: Tue, 5 Jun 2018 16:28:48 +0200 Subject: [PATCH 06/31] Changement d'appelation entre les poids MinWeight et MaxWeight --- include/ArrayTree/Weight.hpp | 7 ++++--- include/ArrayTree/Weight.tpp | 16 ++++++++-------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/include/ArrayTree/Weight.hpp b/include/ArrayTree/Weight.hpp index 9157b6a..30ca7c6 100644 --- a/include/ArrayTree/Weight.hpp +++ b/include/ArrayTree/Weight.hpp @@ -47,13 +47,12 @@ namespace otb { /*! Structure intégrant la façon dont est géré un poids pour un MinTree */ template struct MaxWeight : public WeightBase { typedef WeightBase WB; - - inline bool getDecr () const; + static inline bool isWeightInf (const WeightT &a, const WeightT &b); static inline bool isEdgeInf (const Edge &a, const Edge &b); static inline void sort (Edge *edges, DimEdge count); - inline MaxWeight (); + inline MaxWeight(); inline MaxWeight (const PixelT *pixels, const Size &size); inline MaxWeight (const MaxWeight &model, const PixelT *pixels, const Size &size); @@ -66,6 +65,8 @@ namespace otb { template struct MinWeight : public WeightBase { typedef WeightBase WB; + inline bool getDecr () const; + inline MinWeight (); inline MinWeight (const PixelT *pixels, const Size &size); inline MinWeight (const MinWeight &model, const PixelT *pixels, const Size &size); diff --git a/include/ArrayTree/Weight.tpp b/include/ArrayTree/Weight.tpp index 1f7eb50..c3769be 100644 --- a/include/ArrayTree/Weight.tpp +++ b/include/ArrayTree/Weight.tpp @@ -99,12 +99,6 @@ WeightBase::weight2valueBound (PixelT *compAPTree, const Weight } // ======================================== -template -inline bool -MaxWeight::getDecr () const { - return true; -} - template inline bool MaxWeight::isWeightInf (const WeightT &a, const WeightT &b) { @@ -150,11 +144,17 @@ MaxWeight::getWeight (const DimImg &idx) const { template inline WeightT MaxWeight::getWeight (const Point &a, const Point &b) const { - return std::min (getWeight (WB::pointIdx (a)), + return std::max (getWeight (WB::pointIdx (a)), getWeight (WB::pointIdx (b))); } // ======================================== +template +inline bool +MinWeight::getDecr () const { + return true; +} + template inline MinWeight::MinWeight () @@ -182,7 +182,7 @@ MinWeight::getWeight (const DimImg &idx) const { template inline WeightT MinWeight::getWeight (const Point &a, const Point &b) const { - return std::max (getWeight (WB::pointIdx (a)), + return std::min (getWeight (WB::pointIdx (a)), getWeight (WB::pointIdx (b))); } From 8ca67867ea85035c7b7bb8020c42ce934f716f37 Mon Sep 17 00:00:00 2001 From: Thibaud Balem Date: Fri, 8 Jun 2018 10:01:12 +0200 Subject: [PATCH 07/31] =?UTF-8?q?Mise=20=C3=A0=20jour=20du=20CMakeList.txt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 72 ++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 52 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ea02227..f877678 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,32 +1,64 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.5) +project(libtriskele VERSION 1.0.0 LANGUAGES C CXX) -project(TreeBuilder) +# Add custom modules like FindTBB.cmake +list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake) -set(OUT_NAME "TreeBuilder") +############################################## +# Find dependencies -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -pthread -Wall -g") #-Wshadow") +#set(THREADS_PREFER_PTHREAD_FLAG ON) -set(TREEBUILDER_INCLUDES include) +find_package(Boost REQUIRED system chrono thread program_options date_time serialization filesystem unit_test_framework) +find_package(GDAL REQUIRED) +find_package(TBB REQUIRED) +find_package(Threads REQUIRED) +find_package(TinyXML) -file(GLOB_RECURSE TREEBUILDER_SOURCES src/*.cpp) +############################################## +# Create triskele and set properties -find_package(OTB) +list(APPEND TRISKELE_SRC + "src/ArrayTree/triskeleArrayTreeBase.cpp" + "src/QuadTree/QuadTreeBuilder.cpp" + "src/IImage.cpp" + "src/Tree.cpp" + "src/triskeleBase.cpp" + "src/triskeleDebug.cpp" + ) -find_package(OpenCV REQUIRED) # Petra +if (TinyXML_FOUND) + list(APPEND TRISKELE_SRC "src/XMLTree/XMLTreeBuilder.cpp") + message(STATUS "TinyXML found, XMLTreeBuilder will be compiled") +else() + message(WARNING "TinyXML not found, XMLTreeBuilder won't be compiled") +endif(TinyXML_FOUND) -if(OTB_FOUND) - include(${OTB_USE_FILE}) -else(OTB_FOUND) - message(FATAL_ERROR - "Cannot build OTB project without OTB. Please set OTB_DIR.") -endif(OTB_FOUND) +add_library(triskele + ${TRISKELE_SRC} + ) -include_directories(${OTB_INCLUDES}) -include_directories(${TREEBUILDER_INCLUDES}) +target_include_directories(triskele PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR}/include + ${Boost_INCLUDE_DIRS} + ${GDAL_INCLUDE_DIR} + ${TinyXML_INDLUDE_DIR} + ${TBB_INCLUDE_DIRS} + ) -set(TREEBUILDER_LIBS tinyxml opencv_ml opencv_core pthread boost_system boost_chrono boost_thread boost_program_options boost_date_time boost_serialization boost_filesystem boost_unit_test_framework gdal) +target_link_libraries(triskele ${BOOST_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${GDAL_LIBRARY} ${TBB_LIBRARIES} ${TinyXML_LIBRARY}) -# Ajout de l'exec / lib -add_executable(${OUT_NAME} ${TREEBUILDER_SOURCES}) +target_compile_definitions(triskele PUBLIC -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD) # -DBOOST_DISABLE_ASSERTS) -target_link_libraries(${OUT_NAME} ${TREEBUILDER_LIBS} ${OpenCV_LIBS} ${OTB_LIBRARIES}) +# Add Warnings for Unix and Windows, Optimization, MMD and debug for Unix +if(MSVC) + # Force to always compile with W4 + if(CMAKE_CXX_FLAGS MATCHES "/W[0-4]") + string(REGEX REPLACE "/W[0-4]" "/W4" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W4") + endif() +elseif(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX) + # Update if necessary + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -Wall -MMD -pthread -g") +endif() From d678ec66c93290c78fb2f80d55ecfdc0ca944817 Mon Sep 17 00:00:00 2001 From: Thibaud Balem Date: Mon, 11 Jun 2018 10:42:48 +0200 Subject: [PATCH 08/31] Ajout des modules pour CMake + du .gitignore --- .gitignore | 2 + CMakeLists.txt | 19 +-- cmake/FindTBB.cmake | 303 ++++++++++++++++++++++++++++++++++++++++ cmake/FindTinyXML.cmake | 74 ++++++++++ 4 files changed, 385 insertions(+), 13 deletions(-) create mode 100644 .gitignore create mode 100644 cmake/FindTBB.cmake create mode 100644 cmake/FindTinyXML.cmake diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fad204d --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +build +data/result.tif \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index f877678..c32e0c3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,8 +7,6 @@ list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake) ############################################## # Find dependencies -#set(THREADS_PREFER_PTHREAD_FLAG ON) - find_package(Boost REQUIRED system chrono thread program_options date_time serialization filesystem unit_test_framework) find_package(GDAL REQUIRED) find_package(TBB REQUIRED) @@ -24,8 +22,7 @@ list(APPEND TRISKELE_SRC "src/IImage.cpp" "src/Tree.cpp" "src/triskeleBase.cpp" - "src/triskeleDebug.cpp" - ) + "src/triskeleDebug.cpp") if (TinyXML_FOUND) list(APPEND TRISKELE_SRC "src/XMLTree/XMLTreeBuilder.cpp") @@ -35,16 +32,12 @@ else() endif(TinyXML_FOUND) add_library(triskele - ${TRISKELE_SRC} - ) + ${TRISKELE_SRC}) -target_include_directories(triskele PUBLIC - ${CMAKE_CURRENT_SOURCE_DIR}/include - ${Boost_INCLUDE_DIRS} - ${GDAL_INCLUDE_DIR} - ${TinyXML_INDLUDE_DIR} - ${TBB_INCLUDE_DIRS} - ) +target_include_directories(triskele + PUBLIC + $ + $) target_link_libraries(triskele ${BOOST_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${GDAL_LIBRARY} ${TBB_LIBRARIES} ${TinyXML_LIBRARY}) diff --git a/cmake/FindTBB.cmake b/cmake/FindTBB.cmake new file mode 100644 index 0000000..0a1a5bb --- /dev/null +++ b/cmake/FindTBB.cmake @@ -0,0 +1,303 @@ +# The MIT License (MIT) +# +# Copyright (c) 2015 Justus Calvin +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +# +# FindTBB +# ------- +# +# Find TBB include directories and libraries. +# +# Usage: +# +# find_package(TBB [major[.minor]] [EXACT] +# [QUIET] [REQUIRED] +# [[COMPONENTS] [components...]] +# [OPTIONAL_COMPONENTS components...]) +# +# where the allowed components are tbbmalloc and tbb_preview. Users may modify +# the behavior of this module with the following variables: +# +# * TBB_ROOT_DIR - The base directory the of TBB installation. +# * TBB_INCLUDE_DIR - The directory that contains the TBB headers files. +# * TBB_LIBRARY - The directory that contains the TBB library files. +# * TBB__LIBRARY - The path of the TBB the corresponding TBB library. +# These libraries, if specified, override the +# corresponding library search results, where +# may be tbb, tbb_debug, tbbmalloc, tbbmalloc_debug, +# tbb_preview, or tbb_preview_debug. +# * TBB_USE_DEBUG_BUILD - The debug version of tbb libraries, if present, will +# be used instead of the release version. +# +# Users may modify the behavior of this module with the following environment +# variables: +# +# * TBB_INSTALL_DIR +# * TBBROOT +# * LIBRARY_PATH +# +# This module will set the following variables: +# +# * TBB_FOUND - Set to false, or undefined, if we haven’t found, or +# don’t want to use TBB. +# * TBB__FOUND - If False, optional part of TBB sytem is +# not available. +# * TBB_VERSION - The full version string +# * TBB_VERSION_MAJOR - The major version +# * TBB_VERSION_MINOR - The minor version +# * TBB_INTERFACE_VERSION - The interface version number defined in +# tbb/tbb_stddef.h. +# * TBB__LIBRARY_RELEASE - The path of the TBB release version of +# , where may be tbb, tbb_debug, +# tbbmalloc, tbbmalloc_debug, tbb_preview, or +# tbb_preview_debug. +# * TBB__LIBRARY_DEGUG - The path of the TBB release version of +# , where may be tbb, tbb_debug, +# tbbmalloc, tbbmalloc_debug, tbb_preview, or +# tbb_preview_debug. +# +# The following varibles should be used to build and link with TBB: +# +# * TBB_INCLUDE_DIRS - The include directory for TBB. +# * TBB_LIBRARIES - The libraries to link against to use TBB. +# * TBB_LIBRARIES_RELEASE - The release libraries to link against to use TBB. +# * TBB_LIBRARIES_DEBUG - The debug libraries to link against to use TBB. +# * TBB_DEFINITIONS - Definitions to use when compiling code that uses +# TBB. +# * TBB_DEFINITIONS_RELEASE - Definitions to use when compiling release code that +# uses TBB. +# * TBB_DEFINITIONS_DEBUG - Definitions to use when compiling debug code that +# uses TBB. +# +# This module will also create the "tbb" target that may be used when building +# executables and libraries. + +include(FindPackageHandleStandardArgs) + +if(NOT TBB_FOUND) + + ################################## + # Check the build type + ################################## + + if(NOT DEFINED TBB_USE_DEBUG_BUILD) + if(CMAKE_BUILD_TYPE MATCHES "(Debug|DEBUG|debug|RelWithDebInfo|RELWITHDEBINFO|relwithdebinfo)") + set(TBB_BUILD_TYPE DEBUG) + else() + set(TBB_BUILD_TYPE RELEASE) + endif() + elseif(TBB_USE_DEBUG_BUILD) + set(TBB_BUILD_TYPE DEBUG) + else() + set(TBB_BUILD_TYPE RELEASE) + endif() + + ################################## + # Set the TBB search directories + ################################## + + # Define search paths based on user input and environment variables + set(TBB_SEARCH_DIR ${TBB_ROOT_DIR} $ENV{TBB_INSTALL_DIR} $ENV{TBBROOT}) + + # Define the search directories based on the current platform + if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(TBB_DEFAULT_SEARCH_DIR "C:/Program Files/Intel/TBB" + "C:/Program Files (x86)/Intel/TBB") + + # Set the target architecture + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(TBB_ARCHITECTURE "intel64") + else() + set(TBB_ARCHITECTURE "ia32") + endif() + + # Set the TBB search library path search suffix based on the version of VC + if(WINDOWS_STORE) + set(TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc11_ui") + elseif(MSVC14) + set(TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc14") + elseif(MSVC12) + set(TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc12") + elseif(MSVC11) + set(TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc11") + elseif(MSVC10) + set(TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc10") + endif() + + # Add the library path search suffix for the VC independent version of TBB + list(APPEND TBB_LIB_PATH_SUFFIX "lib/${TBB_ARCHITECTURE}/vc_mt") + + elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") + # OS X + set(TBB_DEFAULT_SEARCH_DIR "/opt/intel/tbb") + + # TODO: Check to see which C++ library is being used by the compiler. + if(NOT ${CMAKE_SYSTEM_VERSION} VERSION_LESS 13.0) + # The default C++ library on OS X 10.9 and later is libc++ + set(TBB_LIB_PATH_SUFFIX "lib/libc++" "lib") + else() + set(TBB_LIB_PATH_SUFFIX "lib") + endif() + elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + # Linux + set(TBB_DEFAULT_SEARCH_DIR "/opt/intel/tbb") + + # TODO: Check compiler version to see the suffix should be /gcc4.1 or + # /gcc4.1. For now, assume that the compiler is more recent than + # gcc 4.4.x or later. + if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") + set(TBB_LIB_PATH_SUFFIX "lib/intel64/gcc4.4") + elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$") + set(TBB_LIB_PATH_SUFFIX "lib/ia32/gcc4.4") + endif() + endif() + + ################################## + # Find the TBB include dir + ################################## + + find_path(TBB_INCLUDE_DIRS tbb/tbb.h + HINTS ${TBB_INCLUDE_DIR} ${TBB_SEARCH_DIR} + PATHS ${TBB_DEFAULT_SEARCH_DIR} + PATH_SUFFIXES include) + + ################################## + # Set version strings + ################################## + + if(TBB_INCLUDE_DIRS) + file(READ "${TBB_INCLUDE_DIRS}/tbb/tbb_stddef.h" _tbb_version_file) + string(REGEX REPLACE ".*#define TBB_VERSION_MAJOR ([0-9]+).*" "\\1" + TBB_VERSION_MAJOR "${_tbb_version_file}") + string(REGEX REPLACE ".*#define TBB_VERSION_MINOR ([0-9]+).*" "\\1" + TBB_VERSION_MINOR "${_tbb_version_file}") + string(REGEX REPLACE ".*#define TBB_INTERFACE_VERSION ([0-9]+).*" "\\1" + TBB_INTERFACE_VERSION "${_tbb_version_file}") + set(TBB_VERSION "${TBB_VERSION_MAJOR}.${TBB_VERSION_MINOR}") + endif() + + ################################## + # Find TBB components + ################################## + + if(TBB_VERSION VERSION_LESS 4.3) + set(TBB_SEARCH_COMPOMPONENTS tbb_preview tbbmalloc tbb) + else() + set(TBB_SEARCH_COMPOMPONENTS tbb_preview tbbmalloc_proxy tbbmalloc tbb) + endif() + + # Find each component + foreach(_comp ${TBB_SEARCH_COMPOMPONENTS}) + if(";${TBB_FIND_COMPONENTS};tbb;" MATCHES ";${_comp};") + + # Search for the libraries + find_library(TBB_${_comp}_LIBRARY_RELEASE ${_comp} + HINTS ${TBB_LIBRARY} ${TBB_SEARCH_DIR} + PATHS ${TBB_DEFAULT_SEARCH_DIR} ENV LIBRARY_PATH + PATH_SUFFIXES ${TBB_LIB_PATH_SUFFIX}) + + find_library(TBB_${_comp}_LIBRARY_DEBUG ${_comp}_debug + HINTS ${TBB_LIBRARY} ${TBB_SEARCH_DIR} + PATHS ${TBB_DEFAULT_SEARCH_DIR} ENV LIBRARY_PATH + PATH_SUFFIXES ${TBB_LIB_PATH_SUFFIX}) + + if(TBB_${_comp}_LIBRARY_DEBUG) + list(APPEND TBB_LIBRARIES_DEBUG "${TBB_${_comp}_LIBRARY_DEBUG}") + endif() + if(TBB_${_comp}_LIBRARY_RELEASE) + list(APPEND TBB_LIBRARIES_RELEASE "${TBB_${_comp}_LIBRARY_RELEASE}") + endif() + if(TBB_${_comp}_LIBRARY_${TBB_BUILD_TYPE} AND NOT TBB_${_comp}_LIBRARY) + set(TBB_${_comp}_LIBRARY "${TBB_${_comp}_LIBRARY_${TBB_BUILD_TYPE}}") + endif() + + if(TBB_${_comp}_LIBRARY AND EXISTS "${TBB_${_comp}_LIBRARY}") + set(TBB_${_comp}_FOUND TRUE) + else() + set(TBB_${_comp}_FOUND FALSE) + endif() + + # Mark internal variables as advanced + mark_as_advanced(TBB_${_comp}_LIBRARY_RELEASE) + mark_as_advanced(TBB_${_comp}_LIBRARY_DEBUG) + mark_as_advanced(TBB_${_comp}_LIBRARY) + + endif() + endforeach() + + ################################## + # Set compile flags and libraries + ################################## + + set(TBB_DEFINITIONS_RELEASE "") + set(TBB_DEFINITIONS_DEBUG "-DTBB_USE_DEBUG=1") + + if(TBB_LIBRARIES_${TBB_BUILD_TYPE}) + set(TBB_DEFINITIONS "${TBB_DEFINITIONS_${TBB_BUILD_TYPE}}") + set(TBB_LIBRARIES "${TBB_LIBRARIES_${TBB_BUILD_TYPE}}") + elseif(TBB_LIBRARIES_RELEASE) + set(TBB_DEFINITIONS "${TBB_DEFINITIONS_RELEASE}") + set(TBB_LIBRARIES "${TBB_LIBRARIES_RELEASE}") + elseif(TBB_LIBRARIES_DEBUG) + set(TBB_DEFINITIONS "${TBB_DEFINITIONS_DEBUG}") + set(TBB_LIBRARIES "${TBB_LIBRARIES_DEBUG}") + endif() + + find_package_handle_standard_args(TBB + REQUIRED_VARS TBB_INCLUDE_DIRS TBB_LIBRARIES + HANDLE_COMPONENTS + VERSION_VAR TBB_VERSION) + + ################################## + # Create targets + ################################## + + if(NOT CMAKE_VERSION VERSION_LESS 3.0 AND TBB_FOUND) + add_library(tbb SHARED IMPORTED) + set_target_properties(tbb PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES ${TBB_INCLUDE_DIRS} + IMPORTED_LOCATION ${TBB_LIBRARIES}) + if(TBB_LIBRARIES_RELEASE AND TBB_LIBRARIES_DEBUG) + set_target_properties(tbb PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "$<$,$>:TBB_USE_DEBUG=1>" + IMPORTED_LOCATION_DEBUG ${TBB_LIBRARIES_DEBUG} + IMPORTED_LOCATION_RELWITHDEBINFO ${TBB_LIBRARIES_DEBUG} + IMPORTED_LOCATION_RELEASE ${TBB_LIBRARIES_RELEASE} + IMPORTED_LOCATION_MINSIZEREL ${TBB_LIBRARIES_RELEASE} + ) + elseif(TBB_LIBRARIES_RELEASE) + set_target_properties(tbb PROPERTIES IMPORTED_LOCATION ${TBB_LIBRARIES_RELEASE}) + else() + set_target_properties(tbb PROPERTIES + INTERFACE_COMPILE_DEFINITIONS "${TBB_DEFINITIONS_DEBUG}" + IMPORTED_LOCATION ${TBB_LIBRARIES_DEBUG} + ) + endif() + endif() + + mark_as_advanced(TBB_INCLUDE_DIRS TBB_LIBRARIES) + + unset(TBB_ARCHITECTURE) + unset(TBB_BUILD_TYPE) + unset(TBB_LIB_PATH_SUFFIX) + unset(TBB_DEFAULT_SEARCH_DIR) + +endif() diff --git a/cmake/FindTinyXML.cmake b/cmake/FindTinyXML.cmake new file mode 100644 index 0000000..aabb323 --- /dev/null +++ b/cmake/FindTinyXML.cmake @@ -0,0 +1,74 @@ +################################################################################################## +# +# CMake script for finding TinyXML. +# +# Input variables: +# +# - TinyXML_ROOT_DIR (optional): When specified, header files and libraries will be searched for in +# ${TinyXML_ROOT_DIR}/include +# ${TinyXML_ROOT_DIR}/libs +# respectively, and the default CMake search order will be ignored. When unspecified, the default +# CMake search order is used. +# This variable can be specified either as a CMake or environment variable. If both are set, +# preference is given to the CMake variable. +# Use this variable for finding packages installed in a nonstandard location, or for enforcing +# that one of multiple package installations is picked up. +# +# +# Cache variables (not intended to be used in CMakeLists.txt files) +# +# - TinyXML_INCLUDE_DIR: Absolute path to package headers. +# - TinyXML_LIBRARY: Absolute path to library. +# +# +# Output variables: +# +# - TinyXML_FOUND: Boolean that indicates if the package was found +# - TinyXML_INCLUDE_DIRS: Paths to the necessary header files +# - TinyXML_LIBRARIES: Package libraries +# +# +# Example usage: +# +# find_package(TinyXML) +# if(NOT TinyXML_FOUND) +# # Error handling +# endif() +# ... +# include_directories(${TinyXML_INCLUDE_DIRS} ...) +# ... +# target_link_libraries(my_target ${TinyXML_LIBRARIES}) +# +################################################################################################## + +# Get package location hint from environment variable (if any) +if(NOT TinyXML_ROOT_DIR AND DEFINED ENV{TinyXML_ROOT_DIR}) + set(TinyXML_ROOT_DIR "$ENV{TinyXML_ROOT_DIR}" CACHE PATH + "TinyXML base directory location (optional, used for nonstandard installation paths)") +endif() + +# Search path for nonstandard package locations +if(TinyXML_ROOT_DIR) + set(TinyXML_INCLUDE_PATH PATHS "${TinyXML_ROOT_DIR}/include" NO_DEFAULT_PATH) + set(TinyXML_LIBRARY_PATH PATHS "${TinyXML_ROOT_DIR}/lib" NO_DEFAULT_PATH) +endif() + +# Find headers and libraries +find_path(TinyXML_INCLUDE_DIR NAMES tinyxml.h PATH_SUFFIXES "tinyxml" ${TinyXML_INCLUDE_PATH}) +find_library(TinyXML_LIBRARY NAMES tinyxml PATH_SUFFIXES "tinyxml" ${TinyXML_LIBRARY_PATH}) + +mark_as_advanced(TinyXML_INCLUDE_DIR + TinyXML_LIBRARY) + +# Output variables generation +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(TinyXML DEFAULT_MSG TinyXML_LIBRARY + TinyXML_INCLUDE_DIR) + +set(TinyXML_FOUND ${TINYXML_FOUND}) # Enforce case-correctness: Set appropriately cased variable... +unset(TINYXML_FOUND) # ...and unset uppercase variable generated by find_package_handle_standard_args + +if(TinyXML_FOUND) + set(TinyXML_INCLUDE_DIRS ${TinyXML_INCLUDE_DIR}) + set(TinyXML_LIBRARIES ${TinyXML_LIBRARY}) +endif() From af491c91b6abac9ffa02b80c7d12dea9493a0780 Mon Sep 17 00:00:00 2001 From: Thibaud Balem Date: Mon, 11 Jun 2018 14:01:55 +0200 Subject: [PATCH 09/31] Ajout du fichier d'info sur le git --- GitInfos.org | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 GitInfos.org diff --git a/GitInfos.org b/GitInfos.org new file mode 100644 index 0000000..3791650 --- /dev/null +++ b/GitInfos.org @@ -0,0 +1,28 @@ +* Git de Triskele + +** Infos concernant le pattern de git de Triskele + +Triskele suit partiellement le [[https://nvie.com/posts/a-successful-git-branching-model/][modèle gitflow]] pour son développement en conservant certaines branches : +- la master qui contient les versions stables du logiciel +- la develop qui découle de la master sur laquelle on corrige les bugs / on crée de nouvelles features +- les features, ajoutant une ou plusieurs fonctionnalités et qui découlent chacune de dévelop + +** Commandes utiles + +- Créer une branche et s'y placer de suite + $ git checkout -b nomDeBranche nomDeBrancheParent + # Exemple, création d'une feature pour les oméga-tree + $ git checkout -b omegafeatures develop + +- Afficher toutes les branches existantes (locales ou distantes) + $ git branch -a + +- Se déplacer sur une branche + $ git checkout branch + +- Supprimer une branche sur un dépot local / sur un dépot distant + # Pour une branche locale + $ git branch -d nomDeBranche + # Pour une branche distante + $ git branch -rd nomDeBranche + From 87ecb22ea5e4aa20d82977c5abcbf461b9b0a855 Mon Sep 17 00:00:00 2001 From: Thibaud Balem Date: Mon, 11 Jun 2018 14:08:17 +0200 Subject: [PATCH 10/31] =?UTF-8?q?Suite=20de=20la=20r=C3=A9daction=20des=20?= =?UTF-8?q?infos=20sur=20le=20git?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GitInfos.org | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/GitInfos.org b/GitInfos.org index 3791650..155ed98 100644 --- a/GitInfos.org +++ b/GitInfos.org @@ -9,10 +9,15 @@ Triskele suit partiellement le [[https://nvie.com/posts/a-successful-git-branchi ** Commandes utiles -- Créer une branche et s'y placer de suite +- Créer une branche locale et s'y placer de suite $ git checkout -b nomDeBranche nomDeBrancheParent # Exemple, création d'une feature pour les oméga-tree - $ git checkout -b omegafeatures develop + $ git checkout -b omega_feature develop + +- Synchroniser la branche créée avec le dépot distant + $ git push orgin nomDeBranche + # Exemple avec la feature ci-dessus + $ git push origin omega_feature - Afficher toutes les branches existantes (locales ou distantes) $ git branch -a From 12fc0c5ae7a9b36cabfde6b78c8ca7d1bd5a7e5e Mon Sep 17 00:00:00 2001 From: Thibaud Balem Date: Mon, 11 Jun 2018 16:39:11 +0200 Subject: [PATCH 11/31] Suite de GitInfos --- GitInfos.org | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/GitInfos.org b/GitInfos.org index 155ed98..42c4080 100644 --- a/GitInfos.org +++ b/GitInfos.org @@ -9,6 +9,9 @@ Triskele suit partiellement le [[https://nvie.com/posts/a-successful-git-branchi ** Commandes utiles +- Se déplacer sur une branche + $ git checkout nomDeBranche + - Créer une branche locale et s'y placer de suite $ git checkout -b nomDeBranche nomDeBrancheParent # Exemple, création d'une feature pour les oméga-tree @@ -19,15 +22,15 @@ Triskele suit partiellement le [[https://nvie.com/posts/a-successful-git-branchi # Exemple avec la feature ci-dessus $ git push origin omega_feature +- Annuler les modifications effectuées depuis la dernière synchronisation + $ git checkout -- [nomDuFichier] + - Afficher toutes les branches existantes (locales ou distantes) $ git branch -a -- Se déplacer sur une branche - $ git checkout branch - - Supprimer une branche sur un dépot local / sur un dépot distant # Pour une branche locale $ git branch -d nomDeBranche - # Pour une branche distante - $ git branch -rd nomDeBranche + # Pour la supprimer sur le dépot distant + $ git push -d origin nomDeBranche From 2a11586d018b746b3153da9a19ad2514f6ea3047 Mon Sep 17 00:00:00 2001 From: Thibaud Balem Date: Mon, 25 Jun 2018 15:31:13 +0200 Subject: [PATCH 12/31] Reorganize GitInfo + Reorder some initialization to prevent some warning messages --- GitInfos.org => documentation/GitInfos.org | 2 +- include/ArrayTree/Border.tpp | 10 ++++--- src/IImage.cpp | 4 +-- src/Tree.cpp | 32 ++++++++++++---------- 4 files changed, 26 insertions(+), 22 deletions(-) rename GitInfos.org => documentation/GitInfos.org (96%) diff --git a/GitInfos.org b/documentation/GitInfos.org similarity index 96% rename from GitInfos.org rename to documentation/GitInfos.org index 155ed98..2997d3b 100644 --- a/GitInfos.org +++ b/documentation/GitInfos.org @@ -29,5 +29,5 @@ Triskele suit partiellement le [[https://nvie.com/posts/a-successful-git-branchi # Pour une branche locale $ git branch -d nomDeBranche # Pour une branche distante - $ git branch -rd nomDeBranche + $ git push origin --delete nomDeBranch diff --git a/include/ArrayTree/Border.tpp b/include/ArrayTree/Border.tpp index b05e643..e095146 100644 --- a/include/ArrayTree/Border.tpp +++ b/include/ArrayTree/Border.tpp @@ -60,19 +60,21 @@ Border::Border () inline Border::Border (const Size &size, bool defaultVal) : pixelsCount (getPixelsCount (size)), - size (size), mapLength (getMapLength (pixelsCount)), + size (size), map (), defaultVal (defaultVal) { } inline Border::Border (const Border &border, const Rect &tile) - : size (tile.width, tile.height), - pixelsCount (getPixelsCount (size)), - mapLength (getMapLength (pixelsCount)), + : size (tile.width, tile.height), map (), defaultVal (border.defaultVal) { + + pixelsCount = getPixelsCount (size); + mapLength = getMapLength (pixelsCount); + if (!border.map.size ()) return; // XXX todo diff --git a/src/IImage.cpp b/src/IImage.cpp index 9779d7e..70d61cf 100644 --- a/src/IImage.cpp +++ b/src/IImage.cpp @@ -12,9 +12,9 @@ IImage::gdalCount = 0; IImage::IImage (const string &imageFileName) : fileName (imageFileName), - read (false), gdalInputDataset (nullptr), - gdalOutputDataset (nullptr) + gdalOutputDataset (nullptr), + read (false) { } diff --git a/src/Tree.cpp b/src/Tree.cpp index 22f5970..c738cd7 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -7,21 +7,21 @@ using namespace otb::triskele::arrayTree; using namespace std; Tree::Tree (const DimSideImg &width, const DimSideImg &height, unsigned int coreCount) - : Tree (coreCount) + : Tree(coreCount) { - resize (width, height); + resize(width, height); } Tree::Tree (unsigned int coreCount) - : size (), - coreCount (coreCount), - leafCount (0), - nodeCount (0), - leafParents (), - compParents (nullptr), - children (), - childrenStart (), - state (State::Void) + : coreCount(coreCount), + size(), + leafCount(0), + nodeCount(0), + leafParents(), + compParents(nullptr), + childrenStart(), + children(), + state(State::Void) { clear (); } @@ -195,7 +195,7 @@ Tree::checkSpare () const { maxParent = leafParents[leafId]; }); } - DimImg *childCount = (DimImg*)&childrenStart[2]; + // DimImg *childCount = (DimImg*)&childrenStart[2]; // Only used for the assert (so put to comment to prevent warnings) for (unsigned int i = 0; i < tileCount; ++i) { DimImg base = vertexMaxBounds [i], maxParent = maxParents [i]; for (DimImg compId = base; compId < maxParent; ++compId) { @@ -203,7 +203,8 @@ Tree::checkSpare () const { BOOST_ASSERT (compParents[compId] != compId); BOOST_ASSERT (compParents[compId] < maxParent); if (compParents[compId] < compId) - BOOST_ASSERT (childCount[compParents[compId]] > childCount[compId]); + BOOST_ASSERT (*(childrenStart + 2 + compParents[compId]) > *(childrenStart + 2 + compId)); + //BOOST_ASSERT (childCount[compParents[compId]] > childCount[compId]); // Edited line to prevent the "Unused variable" warning } BOOST_ASSERT (compParents[maxParent] == DimImg_MAX); } @@ -319,10 +320,11 @@ Tree::CPrintTree::print (ostream &out) const { if (!onRecord) out << printMap (&tree.children[0], doubleSize, nodeCount-1) << endl << endl; if (tree.weightBounds.size ()) { - out << "weightBounds: " << endl - << printMap (&tree.weightBounds[0], tree.size, tree.weightBounds.size ()) << endl << endl; + return out << "weightBounds: " << endl + << printMap (&tree.weightBounds[0], tree.size, tree.weightBounds.size ()) << endl << endl; } else return out << "no weightBounds" << endl << endl; + } Tree::CPrintTree From 5fb8eab85ad28703dacf8918330e4152319478ad Mon Sep 17 00:00:00 2001 From: Thibaud Balem Date: Thu, 28 Jun 2018 12:42:15 +0200 Subject: [PATCH 13/31] Modifications du CMakeLists.txt --- CMakeLists.txt | 5 +++-- test/thread_test.cpp | 6 ++++++ 2 files changed, 9 insertions(+), 2 deletions(-) create mode 100644 test/thread_test.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index c32e0c3..80bdaf0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ find_package(Boost REQUIRED system chrono thread program_options date_time seria find_package(GDAL REQUIRED) find_package(TBB REQUIRED) find_package(Threads REQUIRED) -find_package(TinyXML) +find_package(TinyXML QUIET) ############################################## # Create triskele and set properties @@ -37,7 +37,8 @@ add_library(triskele target_include_directories(triskele PUBLIC $ - $) + $ + ${GDAL_INCLUDE_DIR}) target_link_libraries(triskele ${BOOST_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${GDAL_LIBRARY} ${TBB_LIBRARIES} ${TinyXML_LIBRARY}) diff --git a/test/thread_test.cpp b/test/thread_test.cpp new file mode 100644 index 0000000..e9b95e9 --- /dev/null +++ b/test/thread_test.cpp @@ -0,0 +1,6 @@ +#include + +int main(int argc, char** argv) { + + return 0; +} From cbcc8ee9e63e3c4c3a5aee1c2aac0f971e636e85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Mon, 2 Jul 2018 08:49:43 +0200 Subject: [PATCH 14/31] clean data --- .gitignore | 2 +- data/10m.tif | Bin 807213 -> 46 bytes data/areaThresholds.txt | 0 data/moiThresholds.txt | 0 data/sdThresholds.txt | 0 5 files changed, 1 insertion(+), 1 deletion(-) mode change 100755 => 120000 data/10m.tif mode change 100755 => 100644 data/areaThresholds.txt mode change 100755 => 100644 data/moiThresholds.txt mode change 100755 => 100644 data/sdThresholds.txt diff --git a/.gitignore b/.gitignore index fad204d..96cbc51 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ build -data/result.tif \ No newline at end of file +data/result.tif diff --git a/data/10m.tif b/data/10m.tif deleted file mode 100755 index e5264cb847a21248e06c7c38db5091c1560cbf26..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 807213 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%0D@{ZSq1?qCw^9cpO}YUi@2;Gl zP2%f~&R2)~SrF;Lpb>s8Zyr^UQLiTQc)nma&QzO5+%UpR3&nTe8B~KY#rAc9U3fmWYL{kU6KJ#*-=0n8pEQdqm0ugkD&gVv)Vl z6ck6#wZrFs>^#_Xh?IHDQSs2KfhfUDD-xVY@*$UJSVEDG7=&sTBMT%2YKrY_gkgXm z1~SO1z^bWCx0?;v++se^QRGV7brq$fB%nv{Nta0-3|!I82QuP>hgub{o}-2l?lkZf$mXznf^2wx3Ha{ zc|h2PWP_K0$m(RWSOX+EOUD5Jt%x?w(=80p%oMx~3qdl(;% zKYwp?^FM!v;{4uj1V1mw+D8LN3`Am$uyK0HKXxB z*F`0Rhn!Ks(AXwzN#{98cMGG9zK|0d>J(7p$?Eaj6FI{oAK_*-)@KSrebHRsqpUUb^1QGD5pRTR{D?WYjlk0;_$79Hq`;B9XMf3Tg5B*FXOJ z^T%I*{dq3X7Mzk*2HMn)$aHvA!3R?gl8S~m7mEu&b1DNC2B;yLG|Y>KX+1B(iU~#m zbk5pqoT);m2nIo*j>k&=7~>(m0+no2j_1o|*dtO0*-um4rsT&r@*nfqJ4hGd9l`Kr zbCQm5B|blM6{XT99+#Z>`q2%#j|LZ@#T+EqrcThf2ErGyRDJOae zniC8^46Xnz(@yAmlqEw1$GB73Ig+)(E>$F)i^81U8SMvzD$7z^Rhrnqspe=fQK)e4 z(XB4lo7Lv*{QQiebXVnJ5rOY`n=&C+3!acG1=%6cZ@($NP+(8E7 zdhMVRmYO6!^c_L16t~-P5dxdV-&f1m{PpwGmwOm2=NFeZ`xz~IN`e`wtFB7}mC^4z zQhnerF_ld>Ycj#10`qwCi1M(qBo=@){*v7=j0M3YW}0Ku5YuT)ux?l0iDlUDAM?0> zcRZKm$J~5=+%GwMT~vHo0%ImL7;=a6h}7H>~N=m-*mv(gzjqXH!b{Q)ze z8o@$`AC6BO_U3$l4HTJS=%-KjGo>{M&c6P~zkmAc&pU&MVSv5N;wFNDzyVDU&S3$` zj%T<*9*|8uVz)W80uc;A1tT;_<)R=8h;OIIs8eN)MzL+jlUOUCQYHvkR-@x(i|ux^ z*=+Zhml?gj8S)b$uTJm-;N=oK#L(P8q^mFsK>`~(Ed0jv*kUSa&(`F;-~!`yM2!r+ zj2BbvsTm5YBkndPe2i%6$jRb@YfJ7T+m6vd6H{kq0RouF)JdQCD%n9Cq-2}%u$B$4 zXD$O%Z=eT-aJ`N@m3&FxZg-{_sgee*gCwBm9Es=|!l%$(SP{#039&qkwAAk@OTVLN zl*9XO69&BTwdRQx#M8Hy1KsH^0d-mir}qyxtPzgP(ld93W{Up#YYM zB7Rm)YkqbA_2SllT`0a6~Q!QgpCh<;#41`yjB`lLtXo+ysa4=AA z^D?xxm>3>@g#9`R0}L$%WE53|3RAgWI;n6jatyG1NABOoTuwv}#q4&o=5gJf?H9=3 zteE*13L-&ir@7au;dP~6(_M*UQnKLv0VUGcEDeN4O;d+#ZoNmuxQA>$?EiKe1rPWn#}N)wX&0 z?VsOgn$&EUT7Dm9T8Rl`Gyef=f4|L?+{MpM!cgJlqyUbnP&h4|ke)&%*^h47GJ!+- z^y&5aEJdG)g>^ccXN$|1KmOSJ22%*ZBtp^wJZ2;$hk&FVorHx(On%^~cE?;r1Q0r2#{0Gmb!%hqH#W2c-+!ZCZ4^ zFQ}Z+!rO~QKv{}@Fjo-b6Y;Fl{Bld9#qEVtlWAGw_+uX9Lp<&QX>t0r1(?1QhE-!@ zyGL$Cj60nMZX|)30e_G1fE`G$rxRGjX-Bn;C8cK|k#W{agR`N|nid0PwQ$;x1Gz6Y zWri0ms8<(=!@~`vVqbI8EJFuHP0xrVnr7+aBlTv$=4*s4S3nB?^@|#S?~S7Z7dcZ+ zoGBtOT>y9p2oa?#&66|glny@pF7#RlwVD>4-(K;>*67?N8>%=PO7L3*GyIzBogMTf|xY06Sa2rN1|Y8ai}h4P|z@H1X=! z%fX_5`0--}1%d^1h33G*-qz$qhw8;N_e~RC{aIL{BfzPXJ?H?^XzofVC4V z0xvUOTs%BIU#A#MIwZ~l{bL4391jo<;*+gDLs0Su$OK^6K-iB&?JbFXSi>OvkEK@! zfwmAPl2ApT?voLX`VMoR3LP#O`(G90k2{1M6ip87>-qL5L>!k6dZk_X7h z@=SEkaAT1eh!=yKM?kCE>h9(F<@LqQ%gf!G_+(5t zV6V8bnWjj>l+Ag?JBHSTB32L?6xOo%HW;Z&&}pH(_ANjO%(~&6vl{C29-h|gAt7^o zU)GW+1|HS3yVp;z*OPFTWjHiI=VQMkowZ+T#oKtgnYFNWQ~nG^+!On8+!}cDJ7xwZ zaz0@l!fA>C!)fw~q61q)yCN%Fi3G#mnVjP51ITI>=77}mwZ52phw3D@JravfVdb20qag0`;*N&!@t3@jZ0hn3g#D6!BQ=~XDon< z@UR)b{Bd{xdAq*2+(xKgZ466dt2!q6kM@cEG;zZky-phUBe^R?O}TuofcYMF6)6ic zmz)&?(jXR2v^OU#;ONm2bJIPe*A&C-L7(!IGgc^>z@>1WK*10OtR5qT8mUpWQlZ-J znwPg(z>6*s$aA;RipQ0%$i5+}s9Qg&xPG1Vo-$&0ly!YC1avRZM=qdZ77`@YMOF)e z6ZS!!?A@+)`T6zJ^W)PUsL&NxhRHXjz?evx(DDAq)BQES@F=&0c9nLIAOuQ(M9KVu ziif!rX-W@y07D$yJxnUV$N|A(+aoLtWs-Iohb1}|sjj-&+=SwGlt2J&VRv3V@Wo#r zxv(IN3~hbj3$i2ItXgx%X@3)<@!_370}q9SLybXH9}cV(Zq5MSBU|Bp5Je{gt1f#k zhSWke%%xqev!=+AXv^Yd960rw;qW^psdRW$=dlwWM@=R46io)h4Kjz^%<0=HLK}Ac zBW>A7jwaC}!V@E#oevYh1Q~z^^Ee$rAsK@_B#iY)OdVTlx$haRqR30xSezU1=#e(a zWI9G^Ca0IU(kbFI9xDu zK!QjoO!^kW>LI|p+eHM^1*4eA+k?tPki|r|w&(t+K;g=c;6p9CCirTz+TRdu%yKfp zM~YLHa4rs4cwb~cikiBg=siy*y_|qEjLU^OrlGdZ#D^|}Hih?{VIaiI0ytHSt+cF= z*eJre_mPf`dGQIzAp?T+(gRl|)t?;d_|Q_!d!fA$A>m%a`xpz7mc9xvgyMJP4t|+|0jx zf5{Zh#^sM|l>olCSC&@*nw>KoRXQ^LGPt zJT!5D;sH^+<%Xo8IUvD>vX+q^M*|Zr9-~a}iDzPrMwf%N*!2OQ!`-8J;AP;$<{Q%x zACr0mw+oOEUmRLpqy1(pWsu%2wE8FQrAs%)4||p>1kNCWmORsNMW@758w6?K#q^fT zZHR`f%hrQ>-nQqwD`WP1>3Y3brh!Ym3)8GH64C$!SJ7m?oK5Ci?EF6YZ*G9Nh_lw@ z*rnv6es#iFWwM#YsZ+sOz~lO^tWIVj;OIGVg^aQo$W9XUnF+@;+gk>N45kT>!mG(c z%ROJ>a4m9e3qfldDv+p%80Q{FBG)*jGw4qxS}F=th=@#sn5Xrt&;cn41nd|s+%X}1 zw5I%X`Ch?y;T%QE(!h#`XC2)JA%*kjFHgM8M+NYfB<1oREM}uTM{T!LD}wk_DFkSA z>T2i)b{m}`r2u6f0125R5XDctxcfzGgvzR|~~tT8EkhBQ$e5(%ON1r*6i|nJDuXQpUzMwBlFKDC;&JRQ%12CH&nfWXrCH^(wE@*~z#cuY z0pmdH?mU@IB5vVU7p=gRs zqz#DYf*4{Qb@Ujt%S;AKIs~4FRbOW(AQ-tOfhJ)18qzea$a9(XN|jv=#*b=^2Q9o< z;4ekpU&GM=J?ONMKRV1aM?x-Du~M5z7STws&LS?5KLGrV{4u5z?6=U@+0ZgZG?*bx zws7pKEv7pJyQ_MZ5&U(zb2ZN_78YvhyohcjB^_t*3vKe=4I1{Wo@c)`vx*fo9LfWUXLlN~?q(htXyo)p2+D#QL-QNij z624Y)+s`*sPB8Egvchk7oQc(8wT|1g8z$JL2gLg@iXJkW>k=8mV>D*;VHh(;n?Qgl zP~=)ZS7if?KD;W%SFN5K@{THQoXyk7LY&JOoj+y}0l1RL`*N+J)`4?@I{majh-U{x zU9czgf{nL3X`dc8BnDh!hue~owcsaX<~{Zd_vZO3r9a0W&zOU7LiCVrRW!$;%^JDa z_rt-!p`%yT4k?YGXOE8?w4aQx(E%|(im1572cu2W1}960v^hE|_uG zYa$N1f%Fx3KTb=MGFc@K`xwrUM2H4YClLhM6p!mk4$df{7+7(JwmkMXSNn))zV?vb znBg!ZK*OKTH+N4Cv;QV$C87b*1z^|cL4&Duhr|;>C>#+>)l{-`gh$AexKqWPVa(2y zYewY%O2Z4%B?CNJtJ;;8WEL_qPVzC7KZ zqY=zRzk(@$=mVVGERYj$`?Ah}u))-x+P)7}h>n8UIGz@=h&dYvIBrlKo-Hwqf!rYP zxWuJZ$iat!aMT`P8VTuwQLlj58lbBKXiJ|n7OvM=8#@;CGBI>(lo;geMt`ylTm%F9 z%x1t8qzV~aEIg5_pj<&qMlU(+2ak6+#DHS}OFItzdqdz+LejU$#@iFD`bw&1$i`WH<79$Af#eT`hT9XF`aI?k1hM zW4`TLpJXvrwZ+Q=Qkr^&&?<#EmB@|+mLL8@5E_Hx!?Un%&TXm1Qm@0y$5 zeA$aQXw-y+S`VdSL0s^lEF_t5?^dg82>~0bxZ0^4r)mO5yJ2_V#Lbw%zy_&rgr{Hy1N1EG?d=HmbjBL*0J)^!oYv zA_LD}>>~qr89@hNb!$W>JKF+dyV3hfb_EXIkOy>;sOrMSj-ckpr_1$nf!2b< zMWompu{#W}{T?d^oaBV%aV?A8DoG0^WJL~m3Y+0y2S_PO4M2C-a>yO{N1r6}bX z@Utf)Fb?NlG*5{wO58E}J}(XD>orv6I9p!b+eEfG7>g)AxY8J9TWXiq8}P+AjobMX zbw3A=u3;1Hw{#507?MT$LuUvfLNHKC0O$auVhSk`A3YK~dS;)X;bMP5h9nHvB6J5V zNJ#rVwTT%AbQ{wEY$_pNf49QAKMgk9^)lwx$u^s->m5UaB%J~o5dT`tVQXQ)=L7{g zLlWwGy{Ae?`M;Wn8U}d=XULh!fz@<3GzmDNC_)ZT76#$Nqizvl_HRdR4K*M-s7}x0 zM;MXL&CeXWl;w&j<3@GdIBXJFC_;8ovtpgAw8u$yYohvzTp;$GbB&Y3!}lK#Ndr2{ zm5C6<5yZvBi2rh83;Z^^unLm^O4eKf;2<`)Pd1nG1?B>&# zZ$Ezgc-?|=W(z^gsmjh#k$vFuH+Of}+tv2s?Dm1h!PBMP!Ha|k-lSc){T@lP+gcX<+EOSKvH^&#e35T}^F6Bnorvj9D>ZZ6G6 zzDa^6t1%>*#0T(^@D)0!9kfxEv0aB539NB|Bh1;sY@(lK&4RdvHE*TGUI9+sfQ5`i zd;{bCM*i@igbX2z7)Mcv_~iRd13$H;jJFiK31%yw$8@n-CBY=iW^+u_9?a_cH7<6{ndVdb^EZD*$&gWLz1ybz-iVcbMo{!U7w>y zqs-I72qfur%1b9IM||1V{+i$^w3a%oifR=-gkh74y4;^_c6WDY%NbfhG-FHyaJO4l zzgi=f3_B%wL$*)|L!gg`GIM$2PJmaV=Oa>w_;E3P7IU~}Ay=x6f*6NHhj|}S$OrG= ze=KUN{lqe(+nZJ71+<1B;n=_%p z4d#>vlCOeVw^gOvQ%M*V!Jn`-xI>X*A&g{_+oUrXv}#S+w=jH>eqo7_Zl%)*W-=1k z#>eA^hL{Siu;U1&6sDE4iy6DCFqk1%+Pryd5?kNa_-OM+t%O9)9NT|G?afj`Ctt8|fP77*<5xWe|rz=rBy$g5Q5 z8T6Z$3A+puACFZ`5t$zhoU z($iMACg1~NrCueA28Cgx$(~6SQ5(kU_V(gzbGeJ>8353+7VlTCle~QY@y)%52?~Kb z`xTA_Zl@MRIEl;_b2U@NPaSXqr&D=gcNM(HXO}lO7rXr#7vW+>v38NB3u-jNgZUGy zy3M1)vCLaYN7^x6JWY)e5r+-#6aiQwq?Kd6UqN%&$2VGR8>z?tEVlQJ;?c*CrD1TB zO2B2qsn(SfL^GL-pb2nJG@Z;JzusNm++XhZyNen3645UPdsAl$@XoWgGY*3NGST@t z;FCuZ->yTPgu;Vlf=w~hoThAcu^w{Wi4KG|9k>`f87es5QMzroAWedOR(FXK#3L4C zydmsZ_=Tz$K7PEpy11I5=0j*o7)Uso&CXG&;=`U>?JDheNsLrn(P%9eizTg=xO^yf zce^$J1(*;E3~Q9EHsB=bk!wSY+<35s=0#LB^kP^SY9E~@`NqsJ$X>4YrqHoh4Tj-@7av?8*w(=Q$!7sMQZ3xvB12{@AkQkU2t zqRj6!ps*r`7&VI&tNB9yRAywuCqXm@Y9?Av5t_qZs)pVH^8}V=W;aqDOEJIss7PWJ zBOekW(X;jYkR@0_ik$L39|M;4<<1M%O#T@15fUa&b3eKM_Q%)nKYslD^V5}!brE@s z3HqWxvUGNry*R$OzB=3O&(F6G!Mf|$*O%L$UoUSTo}cfYE~!s>r3KcrHE;kDC(DaS zI5T}6Yl6q6-v>)L;({(xl*5=~)-lPp7uUDL+bpuM=`S^~5X1Z~8PxRAIa1qcF2eNI+) z4?*w^5SW*3!g`A307`*d! zt^0fp)Sd*1R;+J~Fc43#?x%`S@Qp&?m#f4LU(@@KHE#{bp?VugU@2l_gu4R-V(~bV z%{WuJfmaLS-+V&2&T4KFU8@c5fB5dZAAaO|wY8RzBX{?6jhe7R_eK-8VsU;ZO>;Kh zY@6_#v&;Et{qv9K-s{!s{{C`2n`tqsp#`-Fxn_4mkjOR65z(eOmBEn9()!S)YH5Fu z`f#}sRrccLi`TDi{U)}z?fL!d*AP(TKDyDWQ^1HsQR|yZB}-$_6i&n{86)qhASDBe z>jM&d!Y(lNkfq}$M6|mA6Bu~%M!nz{jM-XT>0~3he_R6iP(Vok(={!OH_Nm2;_UWf zGAPGV^+{;IZ8qiPXt?T=!lQ=Me-#{Hae{|Isb-ASBM-S`oZecr^1UAKrkIqmubBUq2s<#cO36KnHfpf2E8Dz_-Rw=dvivj2G%Bn1`-w9~Dwc1D9gcyn)6mpzmvKJzNOoQ0W44lL$!HhX})7< zU;#9liokGcEoVZbmcpg%UX-9O0@+;Rz))a`lEDq>8-C1Z5K!YTpiWBjt~ouOOmeAy zcQ(j1%S|Y&TF1B@xWHDY*l|1e^%m=Byxb1J1~HEhMXzXV5j*NQ*9Fdgyhykz9J!O^ zBE@m7P_8H|X#PERgi`(~x#;PsO(@^6*|T)YrZ( z-w!0IZ$DXXH=9MjH=T}pojzmrVmaTeJvb}vsO5SI%sd)(;yVY5PPcQb#ZKAfI#e%z z^~on+Jhzo0F^{gUuUE^0W?;#DBT(}Qj0g4FEX+5^*@G`oe+91u`-`Cize|7R>E7c< zPalVrOASzop>1Lk&)wl0{Kj&r8rYc>*IeiIcE_g%1Xt~C`jqy9#ZU=fI&7Pxl&OB&{(`ncb0 zo`kjf`PZrTbk!*!dWE3sb`7Jm<2wj0J4vC|pRTq+>$|p@+RcTAZkO|cFE$CBE_GvF zVaJQ5r>8es3>2=@ouYp zBl}**`8vr{fP~q}RWm^*RUO_NU9r&+vcA4MXBJp(Wa0Ae1koJ$Y#+M7C&AR2%?_6N ze6tdZ@5e3l*{Y7BYQ&HFpmUXmKMPUqy4TMhBJBpm%%U7TFg~_3_Ct6cafX4L}z?>XwyQJD~(lLhldZW z)vtHUv&~{|0b^#_SlV^jP2KgXEdZ=B(QJi$UTrp8)#`kyPqLIv0wLV24`;){e6yL_ z7ND@EZFTIV(_OCn-R)*E)cnFh4ghjntiexvwWub(`J5j6p$Qx%x@hE7rZzvlyDLMw zlauZ~Ee^A#c8z5*Xb{F|)25P|;N|y!`)WA*-8)9sSQHkKCd+TTbDVbSK0m5BFm0d| zY1Cyy%U#EOGwtXBs%Du|a-Lq%F=74}Veytvwc}>YmuKOBLpgYI{PZ^u4nCSTT}+jI zNDc`7x>qV|a#=;cz-*JVL&c>-Za}^#4-)2^1VhuJ_Cgi#-G?83`0mxkMCO|*JiJM| zJU-ptUiACACxzTd-MSnT&$mW*Hyt-{IauiuWQC?^fg7#Xha;D3EJw!~A!*p@Qf@($ z2B!(zvW>j1%mMv-_4=OJ`|VpM#TS>sEO2W18luym%OTdLN~+BXSHs;#btSx##Yt8q z!a&zp&4XPl*P6kNm`YMyn(QAxdg}R#SNfCnY4b=XVzN1;GE7GaVlcwqf>P-gSp~c!B&ev1m|F)LAueMFa zN@+4VtonRgXE0MV(LfcYJ*XOG)Bfcu38P_c>?ma~QQGnD9`fEUOWfz?O7ZsW;%YWe z)EBG9NgUs~)t*eu1~Lb^KxnIE(Z5bF&Wr`OTTk-RaX($nA@uQrD-B@-+$x+$j4*n$ z^e(y!o~wxw7Mo4<*@Fj9+(XGi8k2eTG1u#-UmjBGxDhJOTBmof-(L4c{!(A;Jt>V- z4YOX!yw!F{$e`S8)H~ZB|F{41fB9$s$N%*|tXeEH4ip!tBS69)9&ye-sg7k0F`? z8U0Y;Nn)SQVn+gyOBV&dyK*WuS+BM$bgPORj8>D>+Gwox@_PfUcW>X`Z{%X4lO84T z6>?>sg!{XTi`z2+v3)S6*0d&QseO6V4=AGW+-1vPWQB^5y%btxt&WY2O&uy0jjYLl z<|RZ1xu6$nz(H)j{nd>c;N=_p>Pr)>TSwgT{MEa+t|h5rtJ5r4rI^LU|C)QpoDz-3 zdW0f5=@#?CZAcI^VcZAw=(SG)gNwVvW%Rc#wC~^Dp0$sj5S|yieMv^H>uOt5S*@q@>zn16gt0doG&@rhIn%fFL6USg-kdBKi?j9o^h&h)ywe~?ucRu2#YE2p z1yvJSZfPP@E()Pi3A(R>!io0qRjFDbD_GV=78yPn*T{4R2G^Thj>B~1Nhkoq(s|Zc zY%f=X-br^Q-$5Qlqp6wdLd=*Avy6T=IX_#6zS{OobI+zZYLBM<0aa^%Le6TjcDhX! z>{Pq8Kj7Xij|ZKF6H%}%dyBScER3#Gl9Gmp>VQu_{rVWcJ#P3myLokYITeYOO&Y%K zJui*2@8s z+Ndzu0=XbkCt{IEX&zaW=^OF^vL?Xf@LqN3J4d?Qlu!Uzti;$)zj?0Ajd{!V_tKR1 zdlHKCS-gF7u`EwWP~Am{*AH|3cEjFXEG{qB^K$?MT7`U&;4tR&H?O~c`|8#8>BMx@ z5htr4uUAtkOs=U-)d#n@rycW{%B&Ml*4Hm?CaqW?8`;E~7G<$?4DrS)o@={s7XlYG zk#zkHeg)4o4zf$+%Cjl=(Pq(rpF zqw#wEVwlT~X3bn<+DA1k({z{OIl0l+SY(%nSTj#4pKjj&{Ns!1k<8XZ&7VB;jZ1jN z6a~52e4Z4V{-(2BcC!7;?a;oX7d6#s#jOjZ=VYas-77WWAcN&}y16(LZfv5Oi56Qj z@5hriCo{+X3G|j%+|EkMX9C_(r6 zoS^`Pb}`${yfAz2a-~V|+>kynpM^Oz^H}1$& zu?_mRHk06uvMZ+vtc&yyWERdD(}!HR;xRh$jakiM%4A<9*mz7Q5cPRfe^&MmE&Dz& zhMS$$nv%5TX~>=&y8DIel`*#mk~H#kB|a|gDJaxhwa#KTTioC3vpDPOUi!eZqBziM z9kUU>RUo`t5kr!G^f!xAzIFBPy4lSKg5$o#>Qbv$780t{C|OSG37V1{PH4xWhNp9o zU%^aNX#rQ5ESM=@-@jC?s#)K>V^X|3UvDmKv~Dmx)l1q~EE#$JWXJDqqPY7!(rjMN zWiXGrjaGjGfhDC4C_^lWekRkmp}Z*bAXJ>cdwa7fA;XvwCQ34OlXkk=pqne_(*CyX z)l4??SW%hinv>^R8({-XeEmu;4~U4nQD?vwA`m2^V)(|RDsOn%Bhl#Vunzj=v^2bC zleIPisPCO%lGDU-o6uK3vNo^;LIYCUyVYm;^bQk=;y((?8O5yCZ}#>~-WM0*%&Qci z&3bRTz8H9-JnzHHF>rJoJhIf%#Os>{(6okq9=KpWaqMFWLbH#yOB=k4*D!Rn7U$R7 zexo<+Pvx18ri;t_t8u4;^AskpsSxhkd@j1+lg}O-c-Br&U)`Loq&If;7j-iC_A2}g z0{Mt-b1~UAg_C4&(&$b;{CEH3|Nj5{^MCR`{onucU;dMSBt#?;eMW5Y@UX0>%U)%= zjLj<%_o?hb(>!mzRE@gv>amMFiij#i)6f~?^@xRdvJ+#zJwBs-&GAF9GL8a`Ts(f0 zi35w(Tr%cIrC^+2MabP@Lb;!v%~tJ7W4jrSOS$f}ThzbD3eKkkIfaCmqZ3j~rAr5< z(b{_>5a7dy@84`;Xcp_Mm#?nJmHO4oyXkruImn>?3@YMx1%!3$?j{Tz5*$0c1kq>T z#$W)c%E(rD56YdX1jhMzKHr{Q-`&0pG6NKt_aENBx;{HSzkmD2bSI+%wsncWqHlbj zDsDEFbgt0ros9~>cTFSMa%i_Q@Q^b>8y`R3L;lh+$f8&0M%S<0^An)#E(6D^ghIZg z7Mr#|x`JHToE6jQpv{lcU(Y+m_Pp2bPr?*4pA}9^Pc2Kn>9I>PJl+0N&HMJqGt}6lXN!G z7if<3)4ZU@h`r8WJ|TW=3E-vUIGxSs-cZvQ+gqL{^P!zpuEwKSRkrl$*`zn_HYE{I zhD4MBZA}(Z*Id}-_?>qmqOMxKd}Vz7?(X!}&p-UIYS2z3P9A;vn=igPBtVcWAkHJ;^{P9yc>4*Bv&(Pl4Dj^Q& z*@An;yvL9QweTCIb8rP3V~W5OrAzClGV z{wY_#{r*GfX}!G}oxOUa8~gs%g_m%C|N6xuQ@gypy?ePDOl@7{m+{?+Zp`31fn0)25or3=k;q1rgxG6rS>^Wy2D857@~ zv#pT{AwPr#;VwfUhpkucZiZc^fX<-P*JuyQ5^d~$^#sje&;>&c!wA->k`6&ju{xna z(OjrXSYw^8I-{JlN>%R$(pk{5Iyo9~BOnfc!d@gThtgv@C>5xLc8(4Vi-7marHyOX zJ9#TFW@q1h`0)P2hc|bZqt5cx5AUvKr&m{R-&{_O)}sKm&K}0$ESbv9i>*gy*glDb zA#b_k3Oih$x-3kUU6c7~0O=ZE-Cf_o!M%EMb#Zxd^Wr7RTe&fwR?QVk8I$NpsdM?V zshOiil^ZQubm>4n8vp#IMUB43fN3nw${tab8)qS-47$)?XmGf72}%mt0=VH)xLaii zWJQ18Tz+OQo+%Tz5D033btmKgSSd`{JFF(^>vMg2s`h{jbhS6+GdI=)5T;o)nYFI! zeUdVDebp$Q#+Gc5%t>#83y*@+BdY+;eUyl+rlO)hS7+C6U%kA$ySaL?R)Ur6PPmhe z*;G6ZJ9yv5?_qKmJ4T$lxjCaL&Tu2t2R4Q22*GSIp9Lbw(tuz+E)hLW7t@bgA)tlv z`gAcFbK|rp3Yy7c)|C>qp10eBj~v~?xF{Mb_V6<b@G^j!`2hNuLwkIUA^DH;a z<-6rVxGz~v^r*XdyQOh%_gfy7y#y$py)#IrA{m#!>4$%yn*t7DB*2~ME)C8j!%vSf zdE)XCvFmXPC}oXcJdT==q6t^r6%aEj+}3_j?aCd{Zw;;t9jfTQ zb6q2e_9`v2V(+ALc6EJqx}4?@anuM7btJr+wWqGmY*WHa&rZ$AC#g8jmsGMsm+`Db3339SXnYC(f>1L}4 zSZHOh@SZMCuWm0^yz;MK-ro59{QUB^MebkfRf~oK8463mP2JO#wJ8WE7Lhl@Cy-C( z_^rwUI?XbrG~`;Lrv<^4(m>2tN2pFw47rv`nMNI8oQ_%np&QO1TJCa~HtbVYApSsU7{5pZa`(wv{+WAH?A)@tPV zDOZ7M6yX4b^I<%ji#`4NsjqLK3@}gi}UW`{g?e^Zkc+XR|xq zEk)+*%kAd+)vNp4m%#WNldEK|w_1$Hh@{kR{L;CzcR&38_iq9TFI$ytT&XD!*IUjN zW0%!xd!aEi+nz4M*y_do^~JeO*KR9+!}KyQVwc~_GDpv7bSvouO_@oREHvOs8z#Ff z{k$SuoJ&4w(Z){jS_lO4mqEZ(Jwq8L?IUZ(K5_yH%fwq&?_xg z)XL~_t6vPg(Zl+Ozy905{RbP8Ei4oRkHP4t|K`8AD>#_8o72n7N_Q$V&uXHsicByR5=ju>Lm7AGxdj(V24$w70hq_{L-v6iUl2~iGV?9l;WkEcW=V+|Nd@% z{r!)WgdbktDOF#;yg6Gqhk3Qijm3@jPZ9mL+UZj>M7FQL`~B~KcUdiH8)~oEg({A# zbMClsVb~DG%tnh12g2R${q5D+!kz2vVk<8%2Ov@E4x1q)L)ohs!j>?qHG6P$M)CtL z@0t4#WDiG^iziM8+lbLK*+YJQJ8joHt#VzR6qtrajEW$xeoR24`%IJg9)1&xC!QOw zm&ThzR;<==I2qLGK^x`FNJ>nvZKu_c@}U}#?Mqb{>H)1cSVPef)mAq8JeGU@ET5nE zNMxZXxJNs}y(C7vfrFRz>gD$JS*dkOum0-Qe9Zr(trdL|X}3EJhl`1%$`FDhGyw9d z#_zee7eTcUs!^DZo5Ci@r>kRCgDrSIn`^c@eoS126JBf-(10|dT%9)u!FZK#&o&x4fo8XGfVYE_oTwe;O-;b_uytT2N_|wlneQilBz$N%=fKIJ=!Rp;jv%Zs`L{9s?$_2X|f z`AuaE40GNU$Y-zt0BqXJ=-#8Rzp+rCej8ZX5s7v?37UaC=N1i;y)l!f`pBjaY%Suw z>seBYqhz(16my{8<3^I{@!v)YM%(31arNeMX!tSNY~I`e&$}cZLRL4^*pU1CnbkXY zc3^>*^Yafs`tkJ()aJ{(yG_gRPz|mqTc6IFCXc+r00B}emT$lN!ykS+AE5>lvX$Ky z%l*yinS0&XeZjf5S-LwQ#9mzk!JIEloz}AfZ*kdQq7GDNXN}j0bS06eglg~jy*Yo5 zv+c&m$tG1yX*4Nn@;NV_?+EHPZcC;nx9i2yyD#SBtRSE0A>6 zl3*kPXPKb9m7>Jc?Ai=~-O*rlcD0!=_@;O|j7^ZRh$1S3rF*KTRu4O-Dy_WHE|zA~ zv-{gK>vuaDAA zEnj6o6qad+El6LZihHVws*LhdaY;XUblf{zli*H%_|N{+jVAnVdU@JzPfm+M2oLx6 zvw7hA{oQA~Fj)1nEymRz0^eelNNB41?7`Php3zzBS{*(42KF>l)>Y9Xr4x4KAMMzo zBvb}j9pzX_s#^tzi!n<-k=!PVn44&HiUrZLy{n&ZTH)q>d%FdGC$eNAst$_gsqVR{ z@k^b1X;!aJ7q8y)P7|PN~jC^RdM_@D+54 zw521$q4hd+V(5gzx>bRll5D+rd2=4h+4hmpF66 z3;iw1G&G^#JAnD60_jL~00)ndyK=SHtM*^~c!%szNTP#+@d}8jr8JBulXj)h zn$di_q=o(gdsp?Q5yGnt8OK=LsjJc<`Ve&*==)_ zV^z=ytIuJ0TeqaA?ot}=SFeqn-oJfywHoSs@a{fGPY zx;MDKy1Q;BKf2yBl@X=3Hn*L1y*|4-HfOiASNg0MBt&cal(brh69OGf-=)%um$$b}evsK@7D5)NVswa#C#V2! zVD)xXP`99)0Qx)*;!P+^xAOI(WAq*mDxd;ATu~@yhZuJQNdc*ZzB?VSvZRwGUTYmAk|M}ls47XR4ic&}H z;$X5`jvbS&jz}j1($U#S8*YbR8|O0^UO6xgugs`2dSCk-YsEN;p5GA{!0g>z7Kf@n zycu(}dfTatao$Uj-JQcs-TRy@lyw)Vx#_Z@+5&T&9;4I?;P(?L4;%N^`FvE3<%h-U zJh*g2&_=a{dUK^dxVyQ3d9%8B{Yv%v;mys$Y)++8rljr@TUXkZvg@$Iu@Zn>sq+ut zzkR!%T)lkz{Uxd3Aw9jDt!5#;oAdwNtyVG{P3d2|U^H11rsjiJYIaeDvZryt*GAg?&16lC5m+!!gvt?Bj#l(~D3 zdwp676Gh}5D~$%412J7-Q0e!FB^ZwMzQhvd{ASSmfhkNe*#_g$>5IE*W&g`hLW=tr z5B8ICwkPD{)7f}9U7cN=xde0t30`e)&(FNTTjQ?H_2n?NH@NQQYn^U|z&KahrK5R} zUtg-D#cMzS<7i`iwk}3(Od;v!Fj`;S zyuJ`qq_qd*aG0vimp#`iXtgl-cX;K5q)YJy$F%W;3{@#ZHf-^4`%jM8H-e{y4R0`Y z3hJtot?L{z#0HBP)5np!UxGCx64SLdM$Be?Ju^(JPY|s;RO?tRv;jK$Quii$a0Xz$ z8?QiqAtw0cOKRzh3-eK-W3O*VI`Oe`*A#lx4Vc<6E}`1X+{R2^Tlerxe&8w>iYU6z|(LtHcuvaA%Y~?jo}*-g%TU& zjWrV8=>W9mB$?5|ESgzGA`JUci<;Xk5ULZsbVgHVzGU(*x2Ye4E;?#{Rji~K`1fd= zv#A4J4x6zTLV^oT*WQspfY##9GO8GEneQ*w#LXkmQy3D!eg;2m@II3M8J<>x`x}*o z>H+oraljQvn#=Poh4lC;gnqh+zJ7JF8BuV3)C!_-P=8lOC0pC_s>cmD?{=w&>=`&x zf!=S&<%+k zI~C(oLVY*04dOKNZMi8d&Oxw8r__pEFsnJSh0-W(%v8vZHc+DLiONdO0SggRkp3~YWcP=4+& zRu(Pb&&zY6teqxQjr%ZZ z0XZpJJ&O{bFV1_p!Iq_f*LI*QN>*B7t->^c8)>uP~jD00Zf$ zSEz1!tNF0k=4sc+=O&(J2~+>HT7Uh?=MQ$|B-eVQ(PX}43hGnbjz^2>d^Vh{XbXq6 z$!gx*jjJ^1nerfLYNm9;a{ug^ry}F<)wtH6-)n8u*(qd8o&OMJp+OywHzs6IsS{;P z2*{G-E(IlfQk|SvP{Q|iGdAZ{MclP+xI=Srw(VEDt7X4eqM>3`r~lI&I3PxLzJt1G z0yqrA=-}Y-b6X4swW$}8eWN*=a;*naYQn2l@I-0bM)9vp;MlQRtIc7_h)LsR6l-rS z4pfmXUGEwY)BH}+%$3Q#o7gXmMk#uxWDAn&?(XHQn{zsrdrH*1i(2n|J89M@+M}mq zeSG8`sXN56pxF6j{o?Zc{(h~$^5Td0*QaNrqHx`SZ3<0pHfZMEsV6Y2K!?DhA5{PFeKM&9JWNR8#) zQ$)xU@}slCxIxKKZIiDr7M-n-^^~cbnW3^ISpM4Q_)nA8ygpbd@d?0Zt5MPHx7pT|N0;^gRctFF8@L_W`J>F@L27>^a z2rIQQEFV4m{PR!0e9k)Tjwv2K8rgZC@8)`A^aEU0I~fTZT3>Rs%EhVW$Z_OMi3h~; zL;lgst)`NP2hrX|J+Iz_4u+gBug`&EijC!VvKq$lvnAK^C(0{K_Qt-E!uNsUOpvZ*2^SOOM71`fg=v7q(R4If8l5c+ zM9MwltM1?ig^BDY=>EK_^TJWWEa&va3wo6ow>Q`K?_SB<5>gb#ikwFI)F#gsoC8Pf=cbp1kmM( z{?&i5V9hUZ&O31{q9x_$9v0d=P)+v5kiu2u{)i-sz17)fE(o)oK9OB@(wy@)pBut2 z7TY0nV{xkXREUU9;nPeP>*ipYcwn#Rx+Dhv7VDe$Km6{uzk7c@;9~8PSJG;g?2Our z>X}rWN#`J)m&-P&bcnz3?wl1h0fr#Na;VBC1KyaF$}Qxf?Wy^4TGHx}epzDNOw7~bfQ53q)o$i&==v z6FbiynqxhPH!Eoyo~zFBv#04ok}u3wXdghnIW*EaiLcgr*gPE}eua%c5<&z{%#PaF zmI8Ec-uBR&NS^)dak6`{Cd9P^O-DuQ%;%9nD~6k($u2p>lmQ`F)9gT3=i&2{RNWgA zJAkZ#GcV%M)QWNGwh*S22DJCJ;Om6ICVk>Z*L9pU)m`9)t#3zSU5?Nd>gxO!ytyV^~zFxb#-=igCKA|7$~ZxcZej~ zLtAzzo>0ZODH+EhMjG7v29b0%d-&~xgIt#y(}k0}nt#H0t4X9rw3@<9u}0z=Q~cV3 z7b9W~a5==*%tc_no{M(?cH|74Ir+ds4vDpvtF10E#xfL68k3|0|K2W zRgwRTL%nB00L;n3Nrx)u?)7&+{P5c!fB50Y*B283lw*5XI;VXAG)~A3d5B(uZ<2(f zu!KsTHWVRLIIz3JCqwB78b=Ioqt61Y0nt2v@U67OB7?|$)?ptQug2tF9M^-*ws(ZH zreyu}lVAJz%YyyvH(!47#n-zEo^Flhr?ZkFN~zZw&3h+LVok9a+pSa&wqRZ)JLl2S zgU`N60DqA##&U7C(`p~Clvg_7#0XH1A~0@|+NiE$6>? zb=}rLZa`Nemdlf~uAP!NU=bZ0Gg3NjQCy%43AI5KlLzEh-R^8i6-T(aG=U_6iyVb< zSgwWLBt^GcE|Dhymbid38PLo=<0|Von>2iQ-A{LnV0-6FSN1knX5o7D z`0nNX?fc)pwPlXV!oIS3gY}w8DQQ+OT(2kvU%h#Gy}f#McYb|;F&!(Aj>y0Eg0(tl zLJa(oOe=YcWKZo{^68@^m#^IM*NlM}Zv|4HpzaOLSG95`M<-U`H6ThR{CAJaW<}P+ zSC)E##}F$d1SuU5QM%_kh7M!0NGGSK3?svi&?O1M(M+NE9Ysf>7*&J$$Oj!8+=c*CG-wF-KCi1J!Y{DF!1tD$+gMOt)3e%^EC-rD4!%c1;efGs(t4sD{ ze4N~W_N+0}EW#7Bndt_&2r0GPJexTnN@O3BK9P-k+|&Yc9CDP@@$UVM`Ai2EG!Mv( zGK{%m@%o4RGQH}dix6W)c`q0}^h3Br9B)BNh?Dd1Nv4MO5s(-}o$a#KT53@*=jzgN z_e0hg%N$?*;ZrwfqAl*ZDx+hla!skWYn0z)?`59*#9>@F z=j!UUP4LAX*rQqXYH@beZElzJXq^t3ids(k*l^-yQSqpU%U8%*Km7Rq-Tm9|Ui9II z;kyc0{AD6Y&B-DIry16KdV2r*Zo9gDbKYC?1r50mGlH|hEduP8d&&$yzJGKmpP-0n zO`Ff~c!E92YMm*y3nhAVy*wcdiM+t0M2LKoVK0z!v*xJUyP-qa5m+3UZ}fR zH=B&QGeXwe>}|G-ewWKJdl1i>A(X)^%KgQlqSu=4Z7#`*7(jTPD$c(w`Mah!Eo1|Gr%bfRgT--F?FH?`w$p1tv~*kWSbfNx_4&N?+{XIrzbw^%dv~>fKmCf- zkf^oRXQl|ii`wzm57PuzA>n>LfJy5BI0t8Xe*a5bYoVf4HgPc&s7*B^f|rlQDs-&~ z`A_!aowBq8>J*Q+aVm}9-g6`+OD2Jm3&fE=Ie_=Ba%|@M_qP|zuKUZ2?J<61zUP|^ z1k-!JP9i(H{7?evyg9)h7UmJNiqb9?%OZ>wdrfGI7KxvSD3b;ab0hQgx<~JXph8(1 z<}Pu34lyJsX=)0i{Nqw(dVeYH=+^Z6hG)N<%QUq=nN{fNI!ZAk_dRnV;Vf zrowj(++#8Zxs*YR$#PN`PWDI{m7c$Pr7;uS5@`PZ6NVqYOFS&HjI z5nLk}j*`jlwtARsuU@UuWfSc&)pfwcM4$|EwO(hRt;^18dzM|5$k&DfBR6ALtbXn| zowXZ=S}R?eFUxvOt@Ua;65insFq?IX7!gE=(w9_(w)r}9OC@Fx9)S4z!e6`4;X5o4VLctT^UN*wfnkS>D1W4DTC4%~}N z1cL?yoXz?Qx#qCzf>o>Z8yNy(LqE7AtD=!U$hGr}#Y?8?o2%RF^=L3Nh%&n<)=l$0 zhTK|BYKu{YXDlLK2B|!M%3tL_c>CS=Z|}E@)Ah8Ye%y~Jpo3^hTXra(>1-1&S?lot z&0~CXcE04;s_0n2)u9cbYb#nq|g5vLB7wGewufBP1m?*D&|EW}L-d}xg zPUkXcbJRm&MaGqSq)v2}P2d&u`ombck0c)A;b>E$@ZlbhSQ!FC0$T#%4~o2KYC)@9 zIfA98eI;x?vG!wl+t@a*-oLpWPBv#Ne5Iu-C|)dd=8*aOY5SlXaE7}!JW3|viT${N z3;yus{kymKmpsLbj@_Mmm&ArIm0`5h@>^Z#X0A`w$UP{K)AO?#<7q3jFZYh~@?F}9 z!FHhir#osHx90=Ir6|t~iA}pCC5Up28L-x6?+VV}tl;(B_R!bO@LyBH9B+wRGQq}rp`Z!$FW~(V&RjS31 z5svnOVzn-RGL5OxsFBANY*Wy&5&>AtaCHOmPGj8t4|2FUfiRfLPqL?Y(hMSpC) zA;7+3$Cc4o&S~MdYE5U8ZvTwtcevavN3<3-t|~#=lhn7)|G%pNe)a2Lw$!k%hPCRm zPd@ovxRl#iFa0>c2|oGt=LbPo(_`H3UA}#Je}8wqaNtbpk3M?{BA;~e%-CQCt8AlH zXC#eli7H)fd$HquP40Y5#ZP!5RXE<9b~SwGDTSU!@Yd zTQhj_dsq3RaA)|p2$_2%#6hR5!j{&YEoVkYOL`dBl z8I(bnL1?pS?=wI%=q(fnopegu6%o~l&}AWw5?baSd=eebN+(9wI`yVrA&(&VeKL7< z-fBJ01FU$)hlQU!(a4sk3FAY-fFQL&`Z&4U4wyO@#-K8~Jh z25zw$_7>;cSpTiH`tc`iufP8EH|)U8R_f8mp{&mz##%-m zE3L-W)r-5k+ncqzY0~(bEjv@G=3Bx*pC64k#n!M2`|Nh8O=y^}+uCUIR$H|Kl%GE* zy{bbKJCoFnxH=-6cCZ6zDLibRaWU{N2RWVPgB{UtnZ9?WT2Ji>dv%s;$A+8H(bI2s zvq7&Muau7x-rasSkp>LYuu5bJf~$@wNlv+D1nb*TuREa)gH_7(j@^AAe?y^Sn~``i zt_C74jLC3SDJdc=8J*nSV@Ps4eaat{AF#i^yFFc#;LfW@iPqJY$XO>Qo!ozt!u26S z5Tk@LLugYXYJT_bw?F;(+n;~;<9$Ep>2Y#+jP#if;n&zyQ)OmPN24IZaw(l|%r_G^ zWkRrg>d4XKZAxWA*%IBAhQ7C#^1>9*-{GF{8H64PMy(7x=(K4YYOs=E;P^8ZR5zXm zRufT+Citq&16GaQ+-g>eD?{AQ!(kSD2kb$a_If#Fu8Z&IYdXtgYiKO;xneafJ=8XGTq7cwj*a6TMZ#lra&nM6HuwT5T1l~;6a>_F%c*KPq>%p z4(eoYrXS&3$#Sj=2^YqGQi+0Vu7XNRqh9jZb`Z|{m~6S-g=#p-2uos6_lreHVJXm!{qLOBc1iH&AX4cY?d27CYFJF!OW=x>gW)1wCJs*|=UF3`>Ow+RD>| zoF0yQur)>lIK6puiT}9T^pg9j+5IUOY-nIc_Yca8ned*1Hq&w11Y;4G-aH{Uz#q}N~?9vyhR<@sgUaDxmOT>A=3n2i)|<`rw!f~ zlC@B}gr~M7~F7jbvK$>lemhZ5FU{vA1sZ zJZ-w|4&S6rF4qKoB~PEV$J^<2H4QTL)#>F*KC8^q`0=AJ{=81ZqV(~XI^Zws_G1h7 zlTUy1#b+PC)IX2{lFiXt9`AB|_VU%s+xwT79LSZYpMLSw{7>-*op(e`GU&JR7OO6x zl-7h{M#MWCuy|Yu3U<3p2|rE)qhN|0KM90Ms8NuLJ)x4xOkG_g66hl@)9<*i-BQe| zjGpcR5j^?k;dAD>=;KF+`Pz7F2AGWI!C&K`@CWgpm}vfUW6FpCDlcY60tQ_rD1)Y$ zc6c$B+B;;kU-l|xA{m~MJ@vZpSgHvDA11wcwrg6r>3YhHZ>bfFQX z!)jwKwY#gH^3g4*UzG$A(94}sCMx1D6Z!VR<19qFa-Oc)Tc0=JPa}#k!7_tfp3ZB> zN2Q8|wm!SKUo{6C&>)@rYIC~j5rEg5tS>-cA)P`^Sqzh%RAVcl!)=4Ti(Hs0I{^7Z z6qm5i@g-owp>W?M9*#Ss#Dp_mD@S&72%TmgJliaNp9dOapR; zB7xeT3&J%6Eq11Wy>g|d1=Nfzn`C`dw(FAyVI)$AQCBpo6nMzm4W|F?jykl{$yX3U z6{F%h^vlbmakB~?Z&aq~&vBK~2v8rfRfSY25V!!rkGZst)KFOl%QV~o`D>~HkH_t2 zh4a_93$fJx&hd%1@V8I&&-2yg_RafyUg}&4XiO3o>NfEwbBX*YuSyu ziv|JSBX0YK##F20CYNsfQ2w7C?D5`lrqfDgw?A2|KmYa5KmYXo+ZUGrRu2CoD5*{e zSqxHigFEBSTnSHV-DRSk-LVjk$4)$$gh&M-{@~f;=Sk%PyB~t7enyJmlE#7*H9%?N zxi)%clE)mpWjEt2rsgTz)j5b`g!{&=(RjId^y~<^N*g-g3A1yJ1HG3(V$^K|vKJlrN7uLH#gUlW|f<}J3C)#YfZ*9m)*Gz5cY-01N8L4h{ADH2|fTa60$Gn zMh1S)xgZCqQq5qF>`JU3_i0MnWXvJt00Ue|Lq_H9#6aTT@eUbbX~r7S=mpTBw7Z?= z^mZ$lDF8;ryrqYme)Iu4#lJHR_+>8*E7M~A)5phu`Q@j6`KKnqClao@oq4^`8ZB^S(@;?N{bVl@Xj~SG66z`5B~!%~pt2N$AN$TTO7 zLKSO(nfc*Cwl`kREY=r4{_yggLupu!IUg^FMN*PbwapqQ`&w7HGwKOhoC#5Xx#hbb zzW@Hm-~IOcA3oeK+u6W33Q}kjKKm(WL_~W(3+jaG-kCJzZ*N{~Co}lteO)R+?wW7h zh|cOPXn2cEjlVfZ8GP(P3@B;EZJ9zZsQYs#tQ2I0uKC_>0Y?6EgTnq(H&zd&@TQ~I z>7rI1%*Xiqlnwk=eG%!C3ozfo^!n=la+KUJPHWjt=h{s94IMMh(n721db^cMG~$?= z39AY}joLFCWpza^7X7NngQv(`EAN?smzPE8v)Z(qr^HBueZWxY4`lq=H70^j-krhv zhJ!GQOBl!MBZzcWag!P~a9tbqHnKH6*Sx1_(S=<%j>WCmBSRJNmybUk{2xF6^IHA$ zkAL2AeT_}_VMdM{JI%sSO!w;g`u_5=m3a2~XI~vA@M1M+b`Oe~m~US~g-*oNgLPl1 z8Y(Jri08`W_&8wy;%XbHBQq6`8i7gE$>V~~$nto{iCs9+zxKB~iRC+!QGpAIz&f5e zpvaUD7JRNxz9By7H^Y)lf=I}HtVR#*#_4Pj@Z#YSg(iyey-1^jMc?>1n&6jENSGE_ z#JOBGAtWBvsx-N#OFA;dhA6Q`We3nY3>}9%VO&1GSaq68*3s+lSa+7IPOdnb4~xP` z&C9SPFWYo*&I4nL!vpFK0WXPU@BWA1{qA=^{q)m!x64k*BDU2>cy9C6tOf#{u=IIF zxXy1&Sljx1b9Uomq4V_=NuA>4;n&a8P<&=TB$eu0{t_L&N*I0QDWy~ClZ-?(`bXWl z=TCwfPg+dTsood4+h3mc<4+O5c8+(RGYw0_vS(7;aj+PUj`%>fr*D7!4*1~W_U7fy zIB{5CRLkr2&D$3*PDN(53G68FU%q+w;oWJa8e*ygwpSHk3^lCLn2d%DiY@?9^6pmd z#PVg(iSU22`hbRKa2%y}zbhnc&)da#cf?5(OnD}2)GAnmLV0wZafU#O`h$irWnIkiV_ATw-KE5ywm#cWHHW5ak);dHD6kZN;p}dts@aQ@CMI{qt6D4Wj3e&g- zNw<`XC*$ZDc`Z#-quqm4sWTf_4|Y8g3DJr{oft91PUeCBEBT$Hc-E8G>y}u z{P|H<+OT*Gn-myMv$a~)gpjqmXLnbiAk$Q=vYwT-2q;LhYU_1{Q0GYKxngwR^P@DC zQ+@jV?|=W-zyHJU-!GtKgPGK$8PBFU#XSWYHSqJ)s@g+Js=*mK_oXYvx8K?$S=M5E z4<8>9TPKfbS{Vm~{P=#b6d~uz)u$+!jv5-ZhY&CoJxUQXOL4I}&YQrb_1Ox1quxk8 z=LXn|O*c&m&8xnMTkMI3&S|N>zWu|0^!s=B*H>4k+lx``xHa)}>*d+a{mlEIN4?x^ zE)4BnoVC+v(^yzzDrgJ#BdKeR=oX7rb2O;sYQG+ZY;<`>is9*qms+-bk0V|7u&%lD zF}TmMsDHP&-=UqAG9&RD*GPeAxyM4}W>!f;JlRpeYcq69^=hfHK5y>QTiYQ2Zd(oi z_HonvxFSD(60TDJ&c~mBQSb#Y_XxGMJ!!RHes_C$`|{;^E&2Gf&vyzIT+w2EdVI9o zsvg;w98_#Xu2q2!ObYG%-8VB0yQ|B;J`KHTRGy1YE2$ArRhUr;9FRJ|<92+cM@KF_ zEL*lZI+m-ot*TW_93s-#TaDvBu6Eo|L~`g(P%yF9Vr9F8-)s|S zkQn#px5JMVU@g;MG_1cY!LTmFBK>92{(DxcU;g+dVQ>BH+azvRitv3jT;9FAzr4G@ zzn_+6VtfF1y%@VFZlc*@Xyd?D;<Qt^@O^vRvZ+gYfVsSpNBr%|e)d^j|@keH1A#?bgmjQ5N?}*pg6t|Li?unjE zPKSf_sFVe)ESo7)?63k=bfX<1QUd**qzCB)=hTw`KErnP?-%ReFV_EH7OTk`@}?(Q z%S5NH(h6618la;>q0-Dm%A<}5L)to}6fhIp9lT&B9k%zFN2sQ2m-F))x>&8^0S_6p zPp2it7flPtNs~QoW?Ingb~mqo`1$9zTY+;I(^>Z*)ooV>TUN=Nw`Zd1`=DkDp0?>T zYQK#Yop;8M$Hrn;9_kRZOS-$1KT2ukw0oj9i$pl)%CIfv-Ng(?=qu31tM&X5Kde8v z^CC}fsOT$qGbhCnnJLTop60Bsrti{_b~NC;Zf26fd48GxQhW8|$Dhyj@Z+DW(qDcq zY_$KrkB`NI($rs9(|yXr+FUwrz-^CHQwNWi^HDOO{Yh(yZi{bXx4 zu0@_b)$G>>EG2fIK6?1%30RO~z%Z6^`w&GoALHpe((Wb$(V{04+I96$vY8=(s%e4% zCP4jiwJ5A5;nYD4AhGB&PWIeFy-OX(_5%lRm=zBaHz0Q1%tz!;8c&WUp#DdwwT-;X zRoK?q*^MDjgqq9cIuKuAPU5|{7mI;RtF&nan^hEQgyu}ENEtd_P2}AfY$Qtxwyb-4 zK3JKFRCo8EJRo9us$NeRXW^lyj-EWHfXO!zPpSzo1@;Ba9@lOGHk^bassEI7^`ra& z_=ay4z7(Pj_9?7R_8)xn=unl5#L^S0WdI$E*Q%a za`+!aUC|{<@lI21Sdt;7oRgB|Fa6Q|XVjfK2!R$+Evyi0agsCMKzEm=6jB2UZqS)R zG}WE74J!?*_Mq1*l|kF(6JohiVttVwGP%O&l{Gk0+iQG|SMmR`D<6 zJlYMe{gBTt8^Rbrh$bi`=;;%oImKTQu0Gw#J{+C)>eD^ykRlLxw;IppyQ0_fSlGO0 zISm505GavIy#P38*2_CpXVfzU=oN|z350^6EU5Knvs$X%CO_0rIw_W16|pcIkOKDX zbfbHQTXy4ug$Oaq?3aht+A?$@*EhFQHVBaFCOgR)Nh=))8@?$JiS)kp#pH%uUmUFtbbare_p45`tjGl`m4YC^Fj?v z`jbySdv4HHrxiZc3OVZ!E?gk*PbKm``t-{vQ)wNs`KaB@^eX5foD?cpqwYj9M%#Nx z5Mq|7A;3W8D#dWbNcAyCL1;Pcey}g$Vn&}ld?F3alqV58c<%O(5oC)|pI3S)Kwc9= zF@7y^+T0gl4h2HC43wHyIySZqvBRfcOeDl*7YlNpfK3wn$$BPWzxD#oQY34m+8FR$ zd$z;m>>#1JavWgrQB5_6n(n(nPYRJgAp}mFH#B;KNWe8r1A&SPX7c!1tl5n3>1jK= z@(m<9(2S`W|1-`(5mg@Aa<7(?gw`^V<5COFJI%=h9Z;0R|o=L1X5R1pu*0;sxmHiXZqGvW3lxIk+1WxAiXgwa3EW9*SZi)BxWI(?^d=XVZC*Wk+cli| zVj~6FSB-}qBT)?1LASSF5bt>aT(By{vt@}*QPYrO!i+i%Yq$qRf6yTzHDStQ!^Ob0dT0>+&J?fsHZ+|k$>Jt!%q6~-~I6M z|NpXH{ffQymtX(*YhgqFEH)lCJ$5|Zt?qKxA7smJi;QqjKK)IUYcH>vc08C>MvZ(= zGolzj%5~l5*~UJ$r)oh52h9D?ta87rE80GSFvot>K`;dIXqI6rmv)9@;e#%i*j9 zfWnS~(7H$dQO-d1(pv^iSR#0BcAl|1pQJ%~{OQ0peg7jklf$4I^IMh33Dd>lMJ7{o zHDj@h?aSyqJi>vIbVu(AFhWI@!C!^Hrx&+)Ir6l{UjT z<8rrSDBrEEPNhzWz%*F*<7}oG9Q1%qh3{b48TW!KOazc-0kDt^n9}jXM}$^-7md=9 zZG*YHTW(eqBdtQdVl1oAlc{F+v#_4|Lk3yB1j^st7_mdH?nSYw)O#d2O~{}&?{;U^ z+YK2j7VF=wRR8u@VR?o{`OC8X%VPc0zl2}#E8$Ci_3KZ+E?sKhDk?@J=ftF$rF}Ov zEmvWL9;a%YR0q2!tpNkNbJS!bo^K*A%W&3LWD^1$b=Ddx>!70m?7_F}9rIJ*1G(>W z1{?>~Ui=p|hYR%KGu>ne3r-jtOQ}~rD)E9DJVb|!Mvc`H{lZWxw6Fy4)hyLmtRzkZ zd!3>n1dqe{M3Qli4UvmQfkaRDGyww-BpWrd5LjdYNsXx&pG@2Gscv$~&^V1{F^GFG zD1qb4D5@4?A}Hir7q|Rbhefka$q1@P&Hi+)i*YmSMI`Fi?e>f zLa9*HlEHius9k|c8jqJp)|1}4Du?)>GdEn~Ps|mYwPLI+k05ApA(Xv#z9iKc&N3#b zZU2FDRJuF~gJKYcPoE(peFB8E$dTnpDrUI1+p<~20w|2i^~Ia(23^7NLB5?z?H~RB z?7iobW671J`v{kvI&?s5aUhNsz|qiJ1wxAyRY`W!IP>G0-6t5EhrXX9GOI~8i=4k> z*1@XGO34VokNft$*ZP(dZJ`leZ@AM|9wVNf$iKA%NbCAP^1FOR8L!F$f zTAoTv%JUe4mziXxlY9|)n?3N?_*}aY*z~SY1kPe`KmORw95&X&^83&AdRUa=hd);2 z;m6{eKm0*#!lDv5{F?YJ?@slruGb^5u|HW-gX>n0BpM4(ZQ;ZFbN-J9dO5F-dZwr4 zXx}q{l#fs8W;ZbSf=Y9%V~`*`#PmqJ*X*piR#jrA$Zc%;>e2%+PwmHHFl= zUC&nmg5jGbhZkcZFbl4?;Rq=JwkB2Wux8MjgGmTG7EmBZ+)#Z*7&wH_7rh$V)GA%A z4&0k;h6B97G>l!7nI$ND&f79kd1B)fXeXsr#;9Fu#i%NnRU-g!#(fYefP7FAD^_s# zV$`rc17S%Aq8gv0IXR_`0g-DX8 zLY}^GDl+oN6oPh97%{_EmCP`#99=7LXit`E%q|!!2n__$!sJ(}1`@$cl8_`$R-QYV zBE%z`2?Yho5Ph-~q%pSLbyN$FCR&x-(8Z@U|!`5P=ZJ+qb5 z<|AITFns)Sg-B^I*&oYRhHlhDUtN14XsRmEe>B)}&3sZ#4ec>r`F;yUy&4nPhu6o^r0 z+TH*S)Ns5AYiEaz^=}vJ;q3phRDWBihyVD)zrB0UwCn$QBWm2k&iZd}POKeDh9LwD zP=kIGvAO`w`))h)@!gry_j`IdS9f(*gP?ej+S3)###&9!pPz~Uog%KxaLh89gm;|F z0R_l&Kc|CQ7ejyg^;BjU323x~R4Jv{c=Q5YumCA<5yJ;|qnc|Hb6&xb zh5m#U8e^*nhCtHvc9!8fCVnJW^q!NIZXctKY+$6Prz6$!v?oMa+Guh`;3x$qq=ZP1 zCqrM)(wc9?%YGjqMTc9j!AM3`gT)$RW6r_^?9gu(4$=c~U zM5~Vpyr>}ijUd4z0cy4|mzzv9S{x9R2IK)U>ckMJaxWpT5svzF9^;tdF6WFOB{QT$ zXizTet`gtwCnCP72rmG;zDt1VSX3rsxI2MV@@RE9q$K_N_2w#e=bQeBwF&ZYyA|Q+ z3-~A$1DFT~!%;sJBYy)S1w960T{rjh>UrLDWmsx@r{{L7mlsTp&(GTdMqv!vu+5;` zC?sfO?x=_`TU4xwyqLe+yw( zZ37*|_UiU}w^|P=LRf)JpbAA{Bjlzm($oRC5IiK9ttI*%cnx`hnXuNfCl?o)A^|HB zNxs~!3T1^`2^yJ3C7WkY;wIEIfm30g!_?PuYI!a|If;#tQ5ZUU)XW-tE+``0G+e4$ z*^Dus_e~o9tTqA#s!b~Vt|sOc?3RqiaEt=%P>k_-JaCy_SB&+DQ6{Z6hWJ)jmZNC@ z@UZtwxoZFEn+lG};Rb)8zO%Vu^l1qsEOT5Y$Xw~O`142!-Hb(fsRy75(d_Z%HqGhn z(^aq6j|JhO(;Z&-6in2_yfP$**rMyDtkf(>1PGC$zV)~>>lWiyC_;`H05a&S2!Ir= z5$spuu;i_0v_YFp!pGwv0x{8Y>uqDmIF!eqdWIIOmX><6e#>!C?uh6+82&8Npc9Q| ztEm^&YQxRY?cIF;{=Do5qt$({(*w-8UX!4{MGGdn0kj0f)=II16K5Dey+c`pZGcGo zxC}0jd_j;-phQh6ad8HwG*tsU(i;=Jg6FX7b4ti+rwMhBSC{uvH2wf0kNNVbUAV}g z7FAW$EEdwuExPMb{pi0|0Y5fOv2*_T;6D#ltoY%(_n$73N8-QU{8;55%iL{IHY`bW z8wVC~k>p7*Ra0}H-ha%w^RY&9s$9!;toifRRpbtqcl+BR^?}6nl!}l;p~Smcq<749 z3XgFXuQh=eHPs@t_ zDngxIK@#~d^dFJL(`& z3@HkykE<0>L2dQ$(rm?-+(wK^HrP)X)(Y9t2 z7qo^7MMeOn0v=huYQT130D>!IeS*CPS#gCcad)4R}A6F!a6ESYJb1% z1DgdqMWMlYvl?SFtkov_HoglV3Y?=ch(&xd@8)w=n5M+6uA%stZBh!t7-Jwp7(P+N z=h)a-Dk{x4tdcYjG%~Nz{0_h$X#gNGVKF*_kO{*mhG&IhSHsZf_9z(1j<_aw=KCN2 z^vmjvC|? z`4nLnyo4f`gswOC+oVZkUs+63nE5OxHrO5k+e2u0F-`*^Eij|1D0PiAQ~2st$KPWl}lAOO3q znhND(EuYL4E>dlQEavjYj#Dim0VX9?qvU|Vwc3MX8AE<;)bzCr_}OVSMJ@^xuQ=Xq zT#4{2SjX0gwq~b6N!yG@FicHsAmw7du8}FA+PGWTO~oU^97#}9@Mjz7AW-JiNHZ6K zw{7C;sUv6y7`U?`w0g7K?|=T&uP-laV6?i0mo|cD8EN^7+>6LDTdhDC(K%wRQUFk+ zPM2)1Y^tCVSBIX!bR+<_+M_>%~|S_c6cdKpdC}n;1{Up+IG0z8AhRM_D8@C z?HWuZTn}K_T&{;rI)n-q$=+x#XyoKY2?nzUk`uG0Z8!5ZbI@xgKZ&-LSbKlNk+)O*DPCXvfg08dT1hK19NEB4+gc!>ds}(gmqxs2rKrc&)=uP)Q zLqC4F$Am(>*|sr}11mwsN(;cSD$bCam8eaEK^eClQlrK6NG1FS zpT_LK1i&lHb)w%W zw7gM(zlL$^YJe4bvf$7cEp)nZJfoswrDTPPP76!O1hC&(g#=w@!)dj0a6{YKljMPM z-hy()NBy}#-+Vx!{Wl-4o9~;qmx?=B-;lsU%Sy}bPgXu%+U*8)D2h_FbQC43Cs1cpKTO|Vy%9ESlJS_F1KzO1X#CES|0;@DVgP7 z70*|q+b`DOlw{}$qQK#>TJ~29Uyo={jhX+?5ekY$IgSS-{PyeBLM&H)QGCDPnl+g) z^~mHYp(B*xHS#8v+;{JY*Ek`fc0d6x8Hq}b;_}x)K^e{3-N3RZebKsy#wAZ3_Wbl5ngJS$( zGEYO(=6D8XYBs1@Ay=@00uA6!#d}ZhN(?v|?K4!R%0(y2@QNu@RYZ)C99+*r2qtF_ zeMGZrV6^BP*sUpMo7Q;PbrH-H#&$?ZjyDn-e7fBo#KnGX5F+k1Da=YIz0wtG7QK<7(Hyn6RMzEQ4 zSo5xeOT(+iAR62i!fSR{N^fwqSVOww6=3N$ydxb4k9ZL3*h`VSw$%{{5Zi@o4DX-! zV~NOQ!qmB~L#=P2QsA~gkq)5B!2k%A?{hM;`yi-(0ziU+6Uq~h{0DgnWJ&sPM&3L1EFmUQp$0_Y1ku=0im#a z#T{M>7Ou%GvqcgaTZY4pN=KT3v4Tk_xtv$T0qk~h;K%9{EA;37 z`ePAupL+BD@AuW8tM$#>PpOOcXmfS57@?2gv0O+NyGE0|oe3fz z7iZ&uQwjP8Q5M(%p{b!cwiLqVa5q4@&NDnn3uGCIG9`>=Su!-S(_!+*gv3QcbYbyI zNvIyMq|gY*AYIjP>o_!VYDiB*5q8R8+#8OESool_k&@GO2GA(6(MtskAO;fvoOq1h znJxfmt5rS6bxA;xb{LYZMESd>e%7PZ6neSU0+~zmfO3Kylpfu zQXy9@lgvpZdYucFN%`y3X;s-g+rv7T_!VRnS11}BY#2RgZ|bLOLjI9d{%Q(J0gDr5k+xXlrG?J(12 zB+-DXx?pDHnb9;-m1e0m7%@PrF_n*8qSjlwYg&Wt%P%kZ9bvkSCd;eO<8s-b4&td- zkmBArjQ2}UcnAZNqYB!5!YZa0BuCEN$P7o zaeT&GS8P*r#kyW2D+g$hPv^kw&O))lkV*p7n}{4CyRVgiZD@?yn+{99KL9R%#isz< z=Ww(7YrXYhM-^-HXIb#NpNbWE*g;v^fB5^2_4QZYy!mi;QW_BOx*CQgVYv)AK}sOI zJbwGJ6e0jiRRTv39U=VLjn#(9a|?V8T|Ki6E5r+8A($3kT^LyTQXbw8Gp$Ce2%(*E zD@7`OSRB+15%3@;p;QGeYR5LiWQGE~k=3S4x0$;!3=C>>#Bdb~=MDj+;Gx+3N=<^i zCKKOh4vfPBu_W5B?Ix&ldqoq4cc$tDMvGb%Zze5t87bW~fZa>Y>dvEPDqru-*jfEv zs7o-1?A{ZBI7F;icDD|N8+rpnk7B7we**}t5qGIkt>`Rs5%#jz^FloiFFj&;2pOcvLxz#u|x7{tTdU%%aL z$dTl-v;to|DV;UJRSmVA6cKwKbI{MHi`im@a0S0!Fye=kAxJ;SP1FEXt;}8rA>(Vm zi~g)!V`M_=yHh_u!)e1Du9{C2xFCaWT-^-l5J7(qT#{i4h_EAIc_`{Aut{aaM91t$ zc#Wk_tl*6?*`=3I7k4}(dg8SN__;2BJNke8$6*nQCCU!_xYyh4RAZ7a*C8D=V%3!+b#qPY=Z{<31TN9T^bd0lD)idR<4l zY(mX940jCv5naiQ^d;U7NH;*(g6Ef)+ndL&NSEiUXi89A5-7t6MxtA&bK`wpJl$p=!Y8V7op$KrNL6$Obe^uhE92Kt@+b;}BjqJ8BGjQ-*Cb90kO=;?blo zhlEQpf+7$td9Bl?9bK&(zK>9XL>hCnzInR6oxrFwGd~7bf4@p!8vy+5kK5AH_Tu$eN zdLG^*j!_+Kez%LrNg4UD#>LC{(xGwZMyP=xRAYMi5 zN((slMcT+<$lM&F5QR(@?QYBCZpMzviOphd>tmRy79h#>8aM%dZjsBxa-?BLDbmF8 z$8we7W;G}Xc|gSJjY>l3XvK>KiM^#4^PEUxaazpx%Vf?gl-~#fJ&FhzQMYpw*-SJ5 zu5Bn(0ArHu0ZGP_>t~X#0_f4#po zO{xHt0CrneD=cbk0)rme9q@~ILuq592kTJg)Hwk83TcXn`!7y>#<@^9_=F2YnPGe_ zCyqXz!w_j=N5aq~bnjYs*1^{dDiH{tuA!TBU@Mchh>FoOQrxU)ME#ewdRVMKe^xBm z!wO}O+4)6@&J~jnpaH_r%*KQ?ugu_53`2+{2!<6h1-Xqd zdOf|syB#H%?1x^=vJ?K;!jKBEna48`-B)FZ}t(vQNxb)nry5JU!`A$x7qFfCqmNsam@ z?$$hDZw3q|=DdN+kS>ZNdJXUibE!fRR16MQMsgf<@SF^^L~Y5O-Q4bIU7-P9_H3G5 z@V|u`Tac^aW(9%Qtk8`$)Dpr^8TmP$Rw^izK*C+fOo7lVxrvyHLj^MlI(xMGgrWw7 zDwF+0R3DTpbT#83T&=DUCisKh)7L-#>CeB;c}yOD`S$Y25WMde&oj#C?(;M2qg?XF z123H7Bb@MvkB~(T*i4Z?MeWjn!^I5%huwsMI?iO&Rd0n;c- zWk0MTTP&mREEcn=1V>D*oc{FTi1&`ul5s~HXDa~?qX134WVHCiN8MVcXpdLxD;8@! zbhU$gh4uGyUH;AYzy0iguFJRF#eV+-P2rn&N$+OA=wt8g4T(p>WakCiC&~jeY~~Xs z+I&N_lI*Oj0UmtLK^<*BuDV3>@`7)Y$;4#}17YLhjFozsOckjSxUVB46=j}4c($9_ z6lPJ-B_bKqMQvJ>g{v@&vmWFKTr<~28CS!WjY!e3IYDAFRO!0c3!FoUEs%Vm<2KPA z!$iBE`)jS!Qe&3}g(SJLRRJD`Y^2Qw43V(w>wF3*tgEz;D)d16F?^6{;M35w-8k$K zLf6C{P3|wd3Ri9B6gA2P3I_;pF;FoGMTQ3{vmtks0$&|0SW9L#w{)>s+s=0AX|-0c zy}{qPdi+8GIq#C3Rt6+5jLQhBWs`##dL2;}aJxvdlc;MOideOxh!^;PMpeNVIvA3h zNZ5?HXo*BO0Qt7Je%i-O+QGHABzrN2+)B{TWV8R}FW~?iX9aygolYJm1`m zwDfs<{^k2GkCVP#Z1%^I>ki^EQvhyH0Dhnb0t^K3&H2AV&B}n-F}#j}M%81;%>L>L z;{>cIwj4sM=*!gUPv8eyBk_=-)8)?3PmYey&l6w^*_yJ2CTA*n9tR^1>E(!#$U3Bd z&h}8v6t(`GlX|mU@4^onp+Agurc(5Vd8KhwpPyaeXGH-;cM6g# z_H#P7IvJFiB+hFw9ccJbJ;R+7(p9N+d6`F3P)D=`R1l6ZLQw7@1n3Dn3Wg7&q3Y&1 zMrX?ef$-a)XK_~f+fKZw(a7>?O%~eiz;A=%Y2Z?38lgAzE(sMfjaCX~(F5jI)JH%^ zDg!8kiW1L87@ILY)38QI%3TMygl{nLd;{Y=Y z>>#xJ+gS%VX)Bofv)TUU`tI}Br~QbvU8w<#MqP_M770L?{sh(8_u@ef@kt8!9r6qM=@t-5H-g-O5t#@)FfNnWyYMj3ZGBHHx(`g1^I2 z1epe>4evj*R(wz8Y`$s-0Jq7#-gmO^Ah7&{BH(Y`*M2{Es&n?ueT(E1Bz*YUJ>(S1Rr@^B=DaB2v>nx zq%T>mXshbtNG*YifN$sX0J}yHVJ51GQmxxpaX53W;mgilh$Sr3JuR{>TPnH-6O=C8 zahknE?I<+%96~+UE>W%$SWpKwit6rf$P{a+#kSvoj0T#45kjMc>41SfT~(j7VdRM9 z=jNcRGL>ja0WoealvBJpooEaD9GO1dSrP|Pxf?FhPI7{J0eg1`hG`dIfm2}E-6JM* z)F~&*aJ^_1Q%ln-Wp`FhFsuV?D#TZ;fR1hNpPyd7eV$wNBf_z*Ko*Mn1IS-;2L~$x zY~jN9c-R^xhHD%WnKDlY%MFtT*Dc=GYn(eVY6Ai|W)pa+FzMi~kg&7W#yXYdIv zZod8HPoMAah}hW9cYxy`9`2rA9sz2Ro4Y0D`{jNH6+Qrp2GQoWloEr+z?~@|`Z_RM44V$G z4xA|N+PsmfgFP>RIN($=Ey7d~+K7^5IA@5J`Tegh_^Nx0y8cSG{|!?%|u2~oRS zAkU;p?$=<3ad!~RQ&)o7gvCm}r~r48`h%Gg`9#~o&cqX7nbot4^P`W)Xek-6d4}eJ z#}k~puD{%boy8Qm%=7oZ{KuEC-=6n7ZV#&)7VG`p!~Kqk>(O>O-LuQ?hjyjl0YG%^ zA;Xov2ucx?RSy5dv*Y_^x<#7Va%I{G|63z7AOxV*sqd;XhBoz zpRLs&d#U&>NCI9PSpR5uWfdR(nzyH&n@y*~4Kfljiga2-JDE?F`U4D1MkJfl;o^R` zo2};S-5g1g;Qk;?5g$NSsL_T)C2?L5?KU(!H5zwBl2U$FDj9)$;$XY^%PoNwC|B@8 z32k*#2LPW*W<+Ic$r*Ihpg|dOaZ!f4DAOVmq&LfAPt)lXxLj`(dLw+RR`RsPHTW!O zsX0>XH2fGy){9McSVbxp)qalv%6c^BR$D>skNr#Xg~BNAF}}qZG`k{Ybt*T}uu>Z% z5HgiuG$s}!9zas22OfC*))?-3z(pi9agW4ID;%y@T%HbCnrO$^zn&NDYh5Qw;_CY5 z_WJW5KVS9Z$FEOZfI5KdBV{gN4V zHkC|fS`GokcF3-wbzFAT`K;$HHa9OXzkdJv@`S$X?&XoV==;aVyW49*M*IB@iH4iS z-P6M&Fe*|MyC5Ow6O2mJg%Ipar((3aSa8P@4siw+zys(7Am?XLj*=0xZix4nwabXq zpFe#2cGZC>K8-X294>OQD-&AG#()RCQ8Us0LJSBRT*ia(maP8R<-7AMgZK!t%B&fdBUP`F?-@?aO-5vl#|H|N8yQ^%f`Me=pYmUabF@ELIu_RDQxY!0fKu zB_Ei=34|=_D`LP4t&q@8`f`yPTjdmaH(f+BVrHV~b}t5>h!sxLhl@eS9d4eU$cwwX z`Fefx<(JiHyuQA@x!SEgwgK{5AwJD#`z@2|qB%h!&#-EWcxAZ(Z7j%E;-85?q%*^J z0(Mr|MlLN6p*Z(MdJ7de^8Wxs!Tt9?{_&4rpYH}Z!diCy@+iYSMkhhxsf?J zIVX67?j&O%VN?L|K%$h5EtvRS^dVUHmkdiNVQ2uK&^P_3_p6`vswh?8zyDDY{O#`g zTVe2HYkhm7t`~09Zb67H7W0j!uNNe}oK=i!K3!;}m5CcFqz@{>u+V6uMdio`xs2l& zp%KpPFlrTAW$@ zBgx<)mI`}!SF4td-HeMmValR0#z|rVBX7YbD_y22d1~#+!g!F^O0WY+_3{X}fO8B(6WtO+%C;5srURUX9i<~@304Gd!i6+%~e8 zRT-&Hmq1q-9DouNf|O1d!OM_=7>kuJ6gPIjKL{H7+}>YazLBE%`Pc8id|#rcVeDGT za8UNu67MA0FqkazI7D;I-}L!R|AndCl#Dw9Bn`v z6f(j+)c^1|AQ^PQBFS1Ds08>T|D(Cd&>x(dkUa7w;ztEFI{(wZgFUVGDeZ2yZYh-l zOw1H4bDpEvY=<7LBMTBOQgpmVEm*hXNkD?Vhy~`pPd5mE6#D1}lNKP+gmI(GMvmVS z_&_uYlP4Qn;RlZjpq1&@Ux zj0nnu;)za!7a659f0COQBPqUt%uyhi1JQ1YIcuBOpv5Pl6J{o5lVx{`q_U{aAD*6G zULK|-UxnNG8Z91|E(mV0V!&Dnfdoi-hFF;Uz}V0-uBjNpx;#*w5N35Fd!7SUgkY_3 zesV6RS={x4*mrazBu&vm#JT?R{oCXH%ggg^V2e1K^`hU*X7mk+QsVYLKP@0q`pq0J z+CgtN5voDjRou+jMx&UDUF52vlVZFN?jLFfa!K5w9sz7DRt#g~>!%0$3%9p;4jw=6 zC&Sfx0G5wCZMf^BHZ!q4hh43h$iRT0TM2Cx77P+ApMD^ylA&j~qfuAF{t6k7{;uVY zDHFQ(nPY9n#Y9TOCTyl2?0tk{ww4dQEU=U)Vq8Y)4 z0L7X_QFc8B+FW~3d~qBYeHv)&vtlg7y@wcduHrJIb;{`Og#0H^4Q{vD>MU8TDpZ?( z52UMwGQWcd&Nc1WwM|o;)FLG#n@OaTnH>432*eR`(P1;a;Fg^_}vYS9B8sUBq#*XxZ;hZbzzgiLE{dB0LN?;V~52Q(MofX z=}70Nr)S5<7e!T9MfMjnZ&V1JNc8WQ%g66uKfgSJ&T&b+iZRTlM>l zC3sSYv~HKe^zLJ3$OMSLBw+7-vX`jF)LvvV=;9{$UfOD{IwgG2AEePwDN% zVnsRIm~S(!g?}2h>04+(onmpWLydLD9$+93Z0V4E zR>y#ti(4C%HT`%Bu^eqRTD~at5OxYjDJ7YqGL3`o!IN`XtaKy|tDLnac%h)El<{)R z?_XdDKfjFJ8CbqCF;Q0tboqNU0=&pd653XZJQE`o(@Tlf*s}fM*wDLy+RC4&%lg<( zou6NvCcu0k%c8APYcjr40;fX0QXH>de);2{@7D8S*RUyIVmWhE8eiQ!K7Ri4^!(*z zJPv)Eou$)T-~mUbif90qzYtl?rsSs!W`YyXdR>NLtX9`KY^~G*qH0Ba<;DvplNgDU@C^cJH4l0JnMI8+tPD<>- zKw%Juviaev#GS^8%@#o>G|f~6d1y__A)%rEBrt<#Nbr6GyFyykbW5@%o*B?1NQs#F z285*`F=Ld^|83^%^di%+gtS<$L2hj7ZbaEd)*l74R&DfMu!ZpS}7^3YZV^@gFP--BwU3daj1?V zS5Ho%B>O=PJ#acla)S86Sgpk0a&>8Q{E(8=-+lY_k>K6{bM3&hTiK)(tZyDD10J7V zzCMpfZfN8x-FS);i^WNuI_iy3TL}p(1Azf!)!w*=Uy3n67ttjxR)K*KwJTjKigU)Y z%k9+;!}ch?`u6?n(?(0@H4^^c;X2a7 zQp0Ly3cY2wt9E+MjeyX}j7 zBa_x5tyIXAor*pszL&W#yeLtk%9hM@pDY=!yX-b}jTx>Y_ZJo{GTD%`*6NITcmQk8 z_G+l}&UoM2X<|7Ppd2mMI{t zY^tlN;MF0D%2Ws!HCRpDsew@mPcT|jhJuvbqJLXfq`XMKfw)3@5K%!_E9IK%a)YMB zVc1TXpGx#0y(-2EUbR>ipL*N0Y5J2n!39c>@Fj}aK432F(-qmFEYi_j;%c6?T zDWDWFn@D&or-=gg5M0h}hQr*fmSq->% zacFl!g6oOzTdnuo{pVl5JU?yS7I9(IA(DKvm`|IC-e^{&k_D^nCf3hx&yc(((HUIffmI3qWM2}m`SE-G~fv^6`VLyKoisCWm73!gDec)%#o$F`Wl~0C4@5AivO20Q%u=S~4;>AE0&wgA0XM*_ z$uf>%dy=Hv;U0@>76a&T9`ghOht>M4304}$8+<7Y9K>0{+`Em2+$t$HTnPfQ`ACBr z;gC~lH;os>hh9bW0?;cBZ_YgX%s6d}d}?9h+`MH3)|@yG27rHku{ zmKL~6rzaNcdbzrOA+P@V>FFxM!l>`I2q#+r5TG=bljj+}U`UTuHS(DfbGngUBD@~q zaLtG!z}gV_vNT^Y0>e4S4NL5*^aOsVh4s2pDFFUe$@+7}a=|)=ALjKIQ>$r25fLQ$ z3}#ba9*x>m?`uj-WrZr`^>P4(0Szv<@P_FH;OMz4vX!F6%84ii8Pj zu)mG{VQ6?v<=XaeKA^t91k+5O7z8e?6TbKQTFxwqn<-DY$}B;UlBWeE1IH} zN8}lH#}S*Q(;N8=yBViiOt}0>2i(awj65R`|EXYog;5 zZoB;%luoJBUC^^CrE;1d;T>~v)XFLzczPUVEbmoqzJnUa*Ju)5q|+j}(~LyhXk_^gH0dbOO8_&Xg%?4j(S;({f*0Ee{-Qi}y_ zLY&tPcIEA6y;|S>`U?T+kB@s#MesKr2$&-&EsXB)LX<%((?q0TCFp=ZL?9V75bm@p z!do@o&lT*#<>3;2tQF5{EY^1)UZ+^Uv$eh!s{gtQ5QA7z*0NZu_(!725RILO(oxM` zRugF=re)TZIcT5*3NY@&co5rb86h6Rp=w2ejfu{jVwSm^Yy$!0J$Ct$ywE`=Ck?B(=3(d>3NoWxXeL_EQtjs>kwK&16>>? zq)9uP9F7pOC#6rm; zQY26{U(fVlJihyN9r?`u*;blTH0cD(kxUPj_8g8r&u=SzHg=={g5Sr$4eVSdm#-24 zPyY(B6@>Iip>8i>2jntD8&5I$7K>I3J1DCasrogW6~nwjo*GqZqqRLuCMAq$hT)lH zgiCM{@f~&$+|3~48Gg|D& z%u`3G>@PkZofZ`*!YNfZM$mb{JE3NP#{fD;(#3X!Peb9NOWT`S2ffXJ6F@C;LYM{@n|M9&^*3R&;3@=^3Ryp(fF=}3DmPWcHC4T1BeAdL zieQ{84RUw{-6@M-2Lgg(;ZVUbV)D_$a$QuHXH8D5p{6G4O`8=!@}oXP+aE3 z1`id7pgI`TQ06rKDK&_aOVuR9A9lOEIeb0Unk>+U- z$EPW4yxHI0UemSapWFLgZ?%ZP5u`F6z+m)NeLx8#&{u1`))-jC%nCCoU=hRs+(~E* z0Qn>TmDV3B8ia0W0nu>=0oCpH>i+XHL$T-QYs{7f88>bXCW+wGkVb>pmp(ChPMY2E z7Ax**D2L(5GivW(=rjh`IJXDOHNrN7*@l&T_xAm#vr8KORITi?hZRfZ`TG6OvmIRk zdY6Csaj00|o;UmvU)la+;E1$1^wk;`fo z`#hZ=q=IAuH|s?I@wKz}VSd6f3F8~H4nc$XO3;|bct1(676lGS!3roPP}!0$l}JL_ zUJp#U3mrInmQDj05^Wof9i^H&KF+q9Iff?Zr`+gZyGlr4Y0;V;h1nl1R+!f)R8SI9 zyqe_j8Zz1I_+_dHW<{1PS=^ijC>Ag?`RL=g2l%+Z8{?NNVxnQc_PNeL$f~q@iwR9g zk7gNb+La+#%L-$KjwN) zW;xIke!a#!4S5EW8Pq`ipqY?s^fF*~{z>xBDHq<6iCj1riUxYhAx4<~aLOhR z8DKi$T)`WKGRE~I(QsuxN4?5)f&bA#W@ptQ9(B8;4a1B(cGX8Rr*COrw8@Q-`2|uq zT+46~wbL=t+J&58%yk133<_N>G~^Zh*gOk_v-Nru!b1*d672lar}sxGsdn=I!|~bq zkuYSvZje70?O}ob0R+qc=~{jBE)75d4Te9Q`0SRdS9t&aQyz63LsU989{Oh+53V2> zU|2y=&1gdisawH{b|`ZmxE1wgZ%uhV9Zwg+((AYBUW!&M(RmDSRL^8UTL5=%qH!UM zuyCF%q|;i@$X?_c_=I~NuY;TyZSl+VjM`OF$!a@we3aC*Ql?r>9-U;fl=6*Q=A!0Q zYNV_goTQxFU7FQ_BoYs@CC!u!Ol`J7Up7y3i;|?xNRF1Qge?Fjvv_OR3wWl&tF_-D z)HG&H&O-rt0~rhXzi{s$(sYqE@)S0VmPm;%wxJi->o`0Lbz&kbD(RtpqK~N24IyG? zNtLnnG*NG3rY&pJ)nqW{YU4OfrI9O>*2+x{`jOK{m1IE?iXv}-NgMPqP!gP3>T8@Mc}{$!wQliR!dyZv@|O|;-{w;9uxpide~ zSsN_?n16@S6aWCc-7%jCV}U_PypqbyN9ZIY#;c;$O0*=XAJ!`L8$LwrStp!rcjPXy zR=K?0_=;?@k@RCl$z~-36)sc=@*?@lQGROmVgo=b?l*>Q7~jZw)MYfSJc5Qdi6R4B z$51+YpHe)hk}A`~Yvn#7NBz&M7Uh6gtQ4bvjSKp{4fb`Fzd6bS*F_%R<9!n(iu&c- z_h#rP$`uLwW2Y;0@C*a!6E%CA9e#YQ^vgLLt^vX< z!=;}F6c#?Z{$*sjO?&bB;RlYBo(KbJ3ccI{IxhA;7Hgwfpk*c` z^+xs_Q?^ZmtkxYxEr@gN#RDEJgONgmVjQIJe5y2*>5igxGT$(=q68*F&=5jhRV3Kj z;{}0Za3*7PDqXYFAoK>3ZzkDbo~AK7u8R;l6ve=@S;vU*sxn=+F4y>g>Aq)8;^~U~ zwcG0};oE>hN(-Mf1rI2-S8QxB+zaTJPKU7x+6}r_N$EqH>cBhnkfmQY5o+N)Z+bn-%;mED;eR zX{jKoK-DidqL^Qgcxx4|`ryRao9U@iLy)bErR3%RebhP56Nz&s2UMonvs@*0kxmya zGH5J=)1#g_$(habqeQKp6BF}R)tZ{;A6cx$%hQWg0Wc}fwydzp0@z~W##YfGdBnAW z<6maw>c#1KDlZcm2xv2Z5FAqO)^s&}dUAYxj%GAVO$<~BF@p^j72F>&)lxB+Ov81I z)NWhZY)x1I6c*eokgeqN=n_5dMCmk_C0HDlb})3)mo;~G^Ni87EjWL8MbQIKm*5~~ zWTv1Y*$JP7$WS8NgqIG>g6R+UQ``{b%$lt>c~PcJRuU0DshmX{i@2#?mlQe)lCnUa z)tPaseDxD1!lhC&*U-ArXu5v>{(N_}g#@z&wnCK+ss)XPGw>??m({#)W6OYV2MiIB z^$4#3F6=KY7O-TQN4gQg8T-43J3@P&ZsK6E|NedK zFrLH>j#Pz>!4g_rxuI%~sSB^6Nh_os0X}KkU9~1pKy)#9<=N|-t){=^Q^V=87`~?4 z8LiUgr}y}*{`!i=auup;u_%8m%zv=A9@ey2-EWVj-eLuvb?k8$^)WPE0Jt!?>a&AZ zA#j29Au~s)!MI>E^=D`09>u^_1@X_JUJ)sonm2_5Iv-MkPlgcq#LT=_1(EZ}DW8;uIP=8qio$g<2`M(ewm7d7OmkU*-OmsYKuBWtT% zFPxm^>dg{VO>i1qPPuv%o4m!aWo@n1nLB4i(#*69NLUmDxN7Xl&D|;jx|5em32cq6 zD(R=plx&TI-)-AiU6?`MRw$_f1Fm87ztm;pnZ(|FMMyx|BLwjX5b0s4lica#uzbn36ZeKi#4Lpxs#w4m# z(RTwx&e)@Az1XrE(}@@ou{I+h0s{j@2eIj;QbOokey&%sLa|=`vz7XD@v^Gly!lx6 z*LWgqV#)fT0os`l?~V~tp{J>1Hnj&$wcm}|SveXx2SmhA0|)@CMZp_+Xk9f(hxBLA z#CX(0KOFjuG9;kwiClw+7Hmot1TF>N*Z+BKgY|}x4aga{C~71wF{r2rsP$yhGWbeT z4dC|ml1ipPKenn3EPM3#8PF&;RiPco?yefTr*jFi{|e3TBE;B02AcL&zAcMkqNEa7nHpnz^{r>YQ{e zOz^Uqawe5JJp%p=xfJ5FBOw|C{WQG&_UqG#iLgKyqx)ly(`s77u&J1f{k;%l2Z0K! zgdVlTWiSJts*6PjLneJFoV*M+xTNq@OX+0AT|NDBzr?jw;iMG-b%GgckR}J6z%3np z{J=*-hgAWEZT;|g#TtME%=C$o6yFY)yY;+--Dh<-Zd@=m;_}VEAJZLR*I4&<{eaWo zVO_&eWMI|hb`{X2_K;Ozo)J4Mn=EB6b24#bd;a?6%h#73J;!D-pG)vQUM7lCj+bPc+>z}da>AQC)`XFYE4#KGI4M^B=$bagf z8pRCCy<{`Na>Ks+qpvi;snS) zZK*;M$Tqtj1V$7yC1ZWn&gdSmX{G^s-7Ye%27x=gx|_!eaalApXcu9icCcb|oziGI zvc=dKz|%SB;dV@Q8HP4@$Tsp6`t;>0g?fgIVCv%ND3fV}QDt(Xr!Olqx`@@y%Z-oV zmc0e9U4z6ZBnoQiqT3lR$Wp(4g5?Gnxb0glhIizmg{aAVVXlUpQsBdAbhSmApY!H5$C-I zr7L0#>yp$$mu)6giCim4a&Z`IAk>snAB5@k=kEI9zb@9Fi}$zhS*M4OcVr2N)7=R3 znH9Tk@x!}!=jL=wgfyv8l0PJ)6X`H_?>bc&2tXM=BM-FD>ac^Ng;u$6HM|+f#R-W_ zksHNowU|6Ty|_penbRh6nSmLC-jMOcOh5;&@ls$H&8Rqj?X2e5~;HyWN^`|7XHgJaD!Ue58K7l<1+1( zav7+pQpxfvE08-my_+0)w28>^U~iFi$u=QTbRquBx-OO^Eb#61%@ta{P^?dO zSUzK>t^B}+aACmZ5=lrzh|(8;(T(Hr@oqin&qrOvpm3205oMa9wYnirXA%a^k`;P? zK$7qnF%PE}s|oi5MqXmk%C@7HbDyD@HHS8g8eZr7`ex z{k?rJ?pI=2{#=@WzrDWxJinik;jBIA&2Kh~#n_7^iH-IB1)T`RBo5DRdcAUY;5#%? z5E1h#(^)wv_E0U8bd@h4&jh$zXatn|z47&KG+?gODy7d6yj`T5a{4rtE4A$5pi4uP zh9Pjl6t|@&4K30NGbcwM-@iYjHiluDxI8&YH602zaM5f*3>B>L6cQ(09&WB;Y{EUg zo=;t5>`~+NvgH%ch5m07VB{e5@*QxmS-MddYZ%+ICdP3_pWOrq;qPk+SGQDEqpvXb&fX5t90u4QO4AY;^ zcN-f2AXfk{RqNj7?q;ztnn54nR|QoaK(8b~XBIaKCHN3jV_+W|WqUU3L7J*3%No(( zj#CFyJ(^r?H+vWz0BgmuO#y;{aS(!9uAPZe;PAoc`T8G!zeW#jtsg)6S~V~T`&14W zH%NwV_B|_+_(-*b6cxZYw*eawc(ps~VqGqAYeC3C-IpW0FU{wj%?V(G(2p=M@K{X%CJ^1FH^;G>M{d?rY4K{`M3)ufklfXHSn$lch#2eR5XZZhzUdCCfG)t<=y79c;VJ zQjJ~!aR*Jig#w=#A-YKHqm%-;xr?S5ci;o)OuRsn!E`+E zkvkM^bgohuAsV#J1t%T!lDnJ%>1_+{EdoB|&D&?(SI^s+O9N5HonUjdfF>!_{Q!=0 zxlC(7eu-VnGQ;b&-ZKpPxm3mX1VgOv?yhf9L{YC&qcaJ>7eRLbF)Q64=IC^<1VIq6 zlG~qes4BkxFDyJR#;_E2iLw%L_ojJAGmkzT0SK_anO#Pt`Uv$$la>|`d)>3EoU#IY z5Jolb7Z9RQwj6mj(LJOUQ3W?c)}GEKzJd_V7Vg|F8@&2bKcW*55Zl0R%#617gK7F?%v zQNYt!y{Jq-Z`b1qaizsm>fU0TB<_>rl;^EG{J*ecDmBfl)8mUt2>r`)_L$@Sb+Nv#)xX_fUw73XTQ6j`&K3^RavoL7 z$>fK3M^$li?1d;Y-CAz}W{<*&Gej!-w@go-w=Q%m3V_Do>FdMI)6=iN{`=?qn;tn9 z^d(Uwi-4IqHX&LtXrZ9A+{m zuT!B2Z$v$nYfyR67j1!I8Ts6=@=&Wv0Ku9h8St{0F=#6KmJIZZ-k+i9jA;c_?Px{g0o=s~*S z944R;hz0FR&6qABr$k-)awh6&xNaotRJ72am9qr?l}=c!udM*FV#TukSa4?d4|h9U zJ(dH0**bW4xn1!gd_F?UYGDk5$+%c>&Xk!U_gT@*u_H(s{cy4gi^UW{rVMt_;h+vc zy+rb;W`X@ecm!sStC>m~p3+3e$Ut7{fcEo-i>qx9!vekq;3A~CM*^tfdc&b87yCTr z*u;@VFj%f8_?*QCDwgHne!Tw7&uv$HNk^q{w^>YQbFiToyPSSzo$Rxj0Fw4sn-VwdJg~ChdeQ z5IbBl%6Pv9vew^?dA6IEX|-p-D3an8@Dw<vC-M8o6^1m1Be=pYmYZfb$P{JW?&S&WH zAek^XqE@U_Xgs=9DA3)IeL+4DOjRSRPY9pkv8 zS&N$qUBkAB>Ocx(A;O@5uXP9OT)L{%kKshTeu#~gedyi$_ot1KkiFpBV!TW_M-{+^ z$^c!|1Sq8#vtsu_KL$pek$Am36s_DT3Nm*hIIrvL7=a=w4m5J|B4tk2>kX_JEp{6O zXfTE73js=IXGN}zKdoU6eVacxny+SDxOyWp4k+yhaFH2cAc2jLEKGVm0M;XdBB(&x zdG3Wj%YeVr3Hz*$L5?m6|ym)63z0 zF<*3wi9~bUqqHrVO@fM<;>)>{`G-gIT4Rq59;zH*DCg-@N*!o471pCv4F zY_^csSdY}hc7HhbxRpt@)L9|iKHTmXw#{NBU7=nC>kVoSPYga6R4T+uA%>~87_vZ& zB9(|HK`UA0I)_n$JT`LwzyOBb(cRSm?AC$|SA++YVJJez`!UK?s$Jp9ZPO&hZ(M2x z<1n3R8Wp-hbb($M>fzgW@85l@EhydgGZeD80(ebWGBk%p^(u0g0oq%R+b3(IkV<80 zhBIHxx(W!8I0y%1X3S=T9%11cavk#Rkm!=^-6lJ2XzJ~jw_a1LX7S1~YoTFfSt>#t zos_Wk`f3=@2E#EjMdIb@MMPY)7=G}L&v)WNycl-ip>n}f8plGO{aOXQR;c{oM?LWR z>M9hGHP*i{POV2 zFJHetJy64sYAGh{RiR@oo`IW&KZnaM3oNjXLJAu)Fm^>MrH{`A^4m3R#_|fesr1I% zbYmq}TyO1uo-LP1opVH--Z_rm@jX;G)e;7oay1kei`C@zT5An${My-vfpSC(O+{GTRlb2e3rNL(7Iy5@}J^MefRc5 zVR&=5-+{$O%0e?$c!7kWm9- zi|Dcri2`FH&T~U2NYE-QQ#MOth$UJA+_c0uhn0F*raw2_!}okesp$Ioer%VCXOb`9 zzWtCOSS2DWv07Jl{zCsYxi(1BHY7OcxWv$ zBXxQrX<_Py6$>;JzW31I&G2;nKcKHEi_?%7Q`&ot^lE7EGup<^Y0kn=G#J1tRk`Tu zBGB-8BbUh1qcuNu>oqfshY_K`n&|R!*UpyQKsrQ3U$CUJ!z{=QvU_%5p`BpWBXmeI z`kli2uR};?9xsmpxQy&esFOhlwT^-Po%u0giJWu{<>`o8Ay){#G+k%hh=d;GR zTs`#;*0J%pi-phx)87vK!8D47J+nbm6c7iwL5SE18l{1u_y9+de8|KhAR87KCk~2q zH=p$#V!$Q?3<*6yx!Dr84)3Ln-&ZuR+H9vNTL?50#wJDQ`7E+d$E%f?!A$)HKQonlFyq=faB(6D3vs-Y@^$ABo|s^19jhW z(%(%uni@pH;L5F+H0kJ_=vvulhi8?xLYTK3MeEz`dfGfGN47qVD=@>wqvZd8Mj%~( zNbQA+oZ8o1{^|r|_XrV5U#w2A!6mKWE;(K9p!= zm1W=~q*hqW*-6-AkgU&d`@=;`PsRnn8R!wP!F0BwiZ8J zSI2ON9(jZV;r2mJUed0v_FXA=ddw(>?Vpw}oj_`LVNk z7YhN|X~WrO#fXU31KboCkbJQzN>}n1vTV?HFdmRf7J@m^)r;q^ToeLgKYjlD*R?9X zi?5rl_;%i8%*lEbwXtG%+ZE(J?+WI4y`%yI$v^L@@vzFM&3A@Fiq+9zx_f%O8Mi3e zpi)v>O&D;%J&$`G40c@X>C~Pcvf7YHupt$YYv*zoXE}Iogb$Gnewb}ATRcAjDnWio zSf|8bU!*|iOwFHFDp9J|&JRw>6sntTXa;WW;*yyuOacTiNI4{E~u3#uc z^rdqg3nIIs`B!%Xs61%p$E*eu&;oTC@3>S)ZNw2m_5!h!qUm2}sLr&qe12MyhzqB9 z#r5<4Lr#xZo7r^#`C)VOX|2=4*X%V$^3i~f1u%{9=4OYM(>2kB^s$=2uW{1bN&cc? z96iqizV52e&sglR;-u_suGXs=LodT*(oA<1#U3lw1er917sOaP#%4>H=3?Su^+_Ey zm@Jolq56V?UaSF3W~i9EBw|NoMsbvpiU3bff{P5gseo09jV}#!Ig{u z!T*0FoO1_{$ zskKYuTS&mjX3Iv{sppPQk&-B-oED;T1(+oau}u0TB5-7ME5`?y=6HtTx|YdX*^8#p(kp?6yid%T|oT~2NTCB(`5Gob!RQRv_U)k412G7!*k$E>khn&5%CB;xKf z+tXz~b`bYkb^??{ghX=Oz>tB}4zr+^&C^2zkA^!&v|LHE*KbeUD9H_wO0 z*T*YX>GQ~)zrW6lCAlDi)i!aeh$B*Hv28yRc%dm=mwqGP=#n`!!`2jzeBJV=!$ANS zT$Qt@SUO>Qa1ktJgyn$;EtM|?)P!^pO5pb8xd@jA3FSR}yW(27n{yFgF8AAUj9i$u z0~TTumN~o#A0g&BAs~5%v)2ztv2C_fdY!V;Dt!ho^;ys`dvseb+2Z&&U&Z>qyl zy6&U4B)bz-@$s?B6^=CziaQ6SQSJ{YPMeTSj2;1w6=S_4TapP525d!$T~HOfDY%px z8)i|qh7q|}muDxJ`e@Pb7cbBAhELUDIgoN!~oY6Ir zSO%Fa57$9d&8;lc@G110DuP3y1QZiG6t2goS+?r3J>N|Tbb(2DCLAd;^QSTh>7#iFCk174Iq4z&qgS4M>2x;l`ZNiYX3=AyPK!p^Q$N(0T0AHJOntqYSz;UV}3o|04=XE_ZCA$W;AZFC3$_BGyPzoS_(rlwl#Y zhhCE{)$M9{V3|NL_GzdHNOi!VaIem@Ew}jLFpqZtI16{};O61;N2S%S=EL>*(OUt}A_x8lqY-{AA{&-ckzC5qRVCk{c| z3!pYUxRywx$Bg9>jWL;E&>Bv+_i4G-nJ$JyPc@JT1}4wM#sG+(5cpC)TLdi1<*<;i zqa`Qy8aW$Rc=|j1ts523Nv_58q)r~LfX2@zy=V-$evA4Ekt_=pg&2#HOBN$D;+x6& z8ZN*Y*_{;BIEDq4p@}S44%kedx6|KN0iuo(Kb{w{*j5Q>jV4Jj=%@xcSl!I)S4gT= zHxhA@gj*=2orbXz`Asi2P1mOTBn@{V%Z+(9ns7K=Qk~K4xMwxx>^a@TlH(OG(2dE# zm|U@Oqj8C+LtH`I)Z^9S#o-0TE|WS;#u7;cI&`!$;@vvjJ^}|MRpoNoPM*6Byl!59 zGL0G#;b4H2^L6Nb#K;|9a0TJqv2H%C`U^LkWw~AuesWom^`pZ}t|XCGsOFFw$n{ei zgE|CCM+&>u!)Ki*-@ee!$(orgMsY|wTpMUwOlQYNj7_~S8RX0Jo#=zUl|RfiNHdjn z8=y96@bHGp)B?Onc>`+|REq|s5BC+wG%85e$T!H|f?QLQL-t(EJXLo%aS)fI+eT5x zg`elm*-cXwOExuZDNE*djouxK15Kz0Tb-+?@4h^4K5qODcq*t=W;on#xAS2*dHVjx z@1AaliSE6dS2noZ@d^w^{MD#Ioh*US@;kfZwY4vzJZ6i;%0=^$wALsI^i2(wL?>$Xl1cILmX2UIn%lL)JD+b-jWzES#@{@ocqDA#st= zA?fM$-QAqU1}lpQVwb6g6CwfzW`t^7A{XARKJKs%VQC1i%Y~%A4Ho(}XDo zCoxPu7^VeSs3;SeZ6cbeE8LOK>HO$Z#@Zd^7D}0WNwuot5TEYn9WK+YbgjXqY?(_PRTkfY6XOUM!83Tr*mo?TFc7L( z^G2tc$r6M~qBnuvrXBm(ei$SZ+tw;)4?nzrPlH2NiWq%t%ooLTdhN~9#R+hN8l#ZK z&F5eK?$hnvSTvV9Ld%DoY&>6#CwJd|#{DuTNO?N<4Xb6bl)E%8Q!8^)YE^{dN?cQZ zyBCQ>3AR<9^6S!Yvs|o)EIm#R&l_Vy#p}m4FrW9(-oN>lmqlgko68mvrzzd0IC`J8C^V#2Hd79{dH8k zdW#GaT2#nR?QWMK<>3HWY}oMtC?Nr&_$LxxmXE}?Dy~`Vt^d4czph^1xR;03bkig8 zSWnj;CpFM}_fHSINlbUu3b}JnyREn{(;*n6m*Gw6C5$N$JlC-oqxuvhh^~ek zki0qgLfmgl4sjqpURf4vQ?wH0IB4SdV_Z?$$+XK=l#V z32YhBOm8wtIAhR|&0G}a@_Alr9K3l$aN_g+`ubc6R`>mErWr0{a;rSu=F8x#XLZBa zX6QtEDJ^DRtQrcLk!1mZ?YgWjL`E7|6-6;U5B142JqGleJ{zFnC=9N_sf`yogbp@yw{uiRNOUy8(20RXoW&AdFsPpqn)d2PS>DRxwXFy7-rYypg zJfMWQRD1J}pTGUQMdO}E6Yc{d!h=3PS9M~BGm?7Ax};A1m(}{)f8gg{Ui9~y`I?p& zl_(L46Ntf3u$Wc#`UJpZy4obP?qRvjhX%BI&N!wOBFuz2DhC2r{mZ=E9b;){gaxFB zlN(_n_DL=<5C z{y0GM=t5*tL*V%zzLo%A>i~9H@qaAa=Q7}%gGP6V{N0X|&6s`Q^3CfE(Y#yKlQ*+= zv8WG*i@ujAt$r-$YjM22Svisx>D2UTTXfkdS|MRm%wh=Cga-r{L8I!7h8|N11zQYw z7LJZ!+n3Kz7{#K@BbgXrB8pD>qs^8R4`$n|w1bg}`K-uJtq_zg2!(jP&yTW`H3Z-s(!$XgQbBhU>M#mHibQNXf~~LWqm5L|ao&Q+#6_3mI6+@sE7r|mgISt?qs?~KX@_mF9Mk31s6k7?%D#H8ah{J(v1q?OW$~zA96MJxo9k_W>8r(rct||f zbTKD;5arWqyS=*EEmq5!$z-X)ln!fhRkZw3xatHwv*6&#vF4DM3j#XdZ3DDLqgAB4 zO5YVlzKBnPnir=%#0-RKggjBxqR}F}`-CeYehdbP8z-RPudZ&dM5G&v($#W7hX8CP zd5mdPufP5o`|9%o72gCEHIBFi_w8dA9 zJ4sT5S*LoId%lWQ^Cj{#vw+n({L#J|(d2r+>OuYjhXSz#%vp{BBm)tw1KI4!If>c1 zv*Tl2Gh$oNP5f?#1j=$SiChUmrvZTK`f7Q57o z7)`f3Y(h|Gun{a~Vdbpk`Po;`>-6hizOLJ^e|_=d)L!4+++Foxd8pVU;0BLJyyXzt zM^H&t8#u4Kfg|c2%>t?9(E=Sn3u5>bP~$S#gBjhlYz?=*MrWGtK$E()MrWj6L3}3( zL3aqwB?$wjQZ61JY;G1CGpn3CCgF7+oI@kM|NQY`zuzr~gXu7iCkRr;-1;EFL}9;M zDv6`vU(Wv*uV24B$YVZ2O{!-r1x*LMnIO`v-rl4*yS&Z<)XlPa*1v$5@`)nnr_6jDiB-|yda#%p_j>($h*&Huy+;C4v!8` z%Qiuna3HyP8>P#-J4k&)3sHnfGm&F@e?>&g#jE!@JMFZFVePC0t&mO-Ocoq97}R9- zc}UqobSb2&G_DLcyxPx+M!}JXQxic70&E_HL?SwS3R(|b{rJGxOi$jt2mL9yRa_S< zj+sBbqzz(g4MTywb;9lsioT68u-?1rm6&J{hA8;N7Vx!ZMW3WY;l$Qu8ZF~LsVt+Gd7!uFd zYo<=N1yhx<4X$qoP-0}Zyr_ZG;|C<}ut9hm#Su0G{xa z4D0>v#3XE3X}3A+qR2|7bU^8k!jm&BNAOyxHUs}z_TuTn;M%OojF}Z=2HcIJ`GDm{ z`yIJT(7`3dzCxmjFbI=0iO^kjiF2@2dyF?|D&}Pjd&; z0cA%?Po~3Yx|#Hcu{T|AcI#MnXV+<3h9-nag>hjvQH3qat0@y(LM08B9 zOdbijQuIPGN3;L}byuq{!KM)r0B3Iwa^AG7^>;&*NDzC~lh+4%2N4^?q5>^6IM&RF z5oH#`Q~XS7MYAl9B~!FJAz1*j2s-oFddNmNTT8cmSFjQKN`)~;3qp#AA&LAexBN7 zD<ki~a~+NdsA0e@skX6eWF+fgeCGJW%kI=s7_D)KJpAc)nUurc$WByr?ig zOYD{fZ#RL5J8P4F(jMMjNmaLT@Z!~((gkwx@N~DCn1zCbLZIJjMWF+9w@rhrm}zu~ zs0RCtwPm?lZ`Ywd`QcZ$w-63!U=cjq!chiBZ-fm!>L}dpCEM@fkt>|$aEOSMmdaVa zdU{%9vw8={hfZ?nB9LL>k;7(sz#v;1kUEWqp34h> zGl{E*;1%&ZKm`QDFMs&EyJ!0-M*xR0F*4|-YzJp3wR60G`tj&TU&c{EI7=2{v6C0PQuX?1%^z@UE+8RhryX|q0mR8eo)%=lD?_6CCAbkq;Pz~R>d(1IGD>&M|yrU>(aA|og3O(^_kkhb#h z%P0h91RtTYX|}-ou9jNEZ=Bc0W3xRDO1M|ZcB64==#XS6K4dg$trlPk^nRm0BJSRF z5mk#C*HrM;RZxd)=E6S9bdg&=r+`G|g+25*DL zF!e8x`Nz*|5QiS%2_|YDTPp`KvlS=k_ah@2T-F2-6W3s?Tb^S(;& zha1)N&iecp8g;J^>;3E7Im=V%sd$ax3%2BVwVVw5y%dEhx)zP9C=f70_9dWgZCS(V z-%gjI{fy5fA7hAeQN%gGS^#DT_XvL>AqV}T51YlbaNwi(MaPJ{TqKris-J`{Y^6=* z^0?fNXvOP_4YG$0u8mNr3Tgm{kIq1?4XNCziD5WxD_*m2-kmWaM-!$~h>0K|s1k1C z;#=K){=9HCr}XOehg>Vz-olf=S`)FFFIkJL#n@6tekow`1da0D2`%;_@p4o$;CF0l zOlbMgzStdw{tJ2pQ-2sW^alN2AE7ipN4tY^C>_V7CZe83FWkyuijt})N9R? zHhJ1+BB!YfsiVy(AA2W+&gZajM7K0KxNy@~N1$B*RD>y?UP%nmR4QUvkV98JPlgPa;>wzG!s%qk&w8*u@Nob<@Bq z#sMIJhz3MJIiktyv)e~pd+GMNCUP~0OmVW4iaf|tt2e=q-SPtsL4*UDs^f-8xdpN* z|Mty$io5sk4^AZ11+e3#Q_h61r@@;Hi6OieY|eCOc}qEw(A64sE4q5zvQR4TU%Wl9 zcc6Yevazm)Dt@Q{Pw~)HC*879IupF5*C_ZHzi|J71ORA?G%Iwf{7uLyF#Gk_+J_(LhA_Z^eYl&iJmcVe-M_4>5{5dQ!-APY`B8LY1Fw*<*ysfWnM zDsMVY0x`+q`-_>J(j&0Djx6il^<=%*DMiGrH3*Wd7kHfJkP`N!5%2XwtChB2+WWodBLcB@f0={{Z z!Szp9=Mrt|^N%;DbqoC>AXV-?f;50C6^MMBuo5G@x#~5o^7~hB-xtheb$h?xL+}_& z%tpiQayHajL$^so=i==2^!Nh%AC1t{!-K<1*sDsTKr8~>)l!Ai96vFALsii63Yl`f zggvol$WSI$%l8jmZoj^OMLYZ z7=4E!P$rv4YJn~WI0CbP?D@$DNS(Zm=X?P~Ax6V7<()0nB)=bsiHKr&v8BY@<#_%0 z!?(A$*4x)_k22;wNsz=8E^$9sF5Zig6&sY0gK(*4IlM*XiqERoU*Pkc&o@(IqqvB- zEdmDzir`ZJL0>*eoVrbO{| z{QCJdd-3|Ltnx6}w=fHlYQt;Gd!u(!hpkXc$)zeA#{hgXt!S`&SWhP7^;J)7kMVjs zAGPXTO^W>%-6|p9phH~2?sj%2l7$#?)Y)Tb;!9bizf}?hWP@J`S)~3POIsHZ97e82 z6l;Y%LP+u2l%dmev&i5w2FD?C94sBOBN+MGa-P9nj*6QKn`G5&y^*bRq#IO zlQ^}D5`t*O;4!x~aK$Yw8jX^h;CUKYia%LgP3r}W+=Z;3&>=z{OrZtK<^n^$8z2Pg z1W;j$#0qddx@Zn&(0JMrJBtW);14A2mAZlbkm-@vreY*KUL@1eGL{11hO}3;JdPHD zGq%dd2xz&ky42tYC)|{(C1e{41zOSrj;*o(fW@{GuiZ0YWr{?LxqAy#KV_PG%Uf5K~egQIkh8k=lUdZQ65Y@9uF+TuFu1 z4bjL^>DlBnpzJ=pe*>KT&A|mid(pZAfaA2IAs$3afynhd3uZ5U{r=7SclZTGkM)~3 zmpCBMc2lp?3Zc+MN#hOH>!*b*hX1`(1+xC;^{FKJ&0TW+c?F1z8TM!i?Px` z0<{?V5%WE8TaH;eqlv^)!RkeiUIiwK`a-183g(7Hy1Kc~REBti zT%hXOa0^9E04ol;6Td~wEF%v&Rx=rSjz%#gLNrqD>jPUOJ4ioydttDNwcB+&A!U~q zMua$kt3P}lVr6)MAk&?05R#HT1nJ-@{&K(WAlMU`0$nE>j3V-R2s36(26$J*L!r|p z--$Gl-hkHDfF2iH{9?b0V<&P%bO}-AtVtJ>if=12_~|5>-F;m8Op8rlblR%t2hf6F zf%c^--E`_ecJMNo?BC^siw5_^aQ*O^Y~<^!L|n$vK(1#5t_{QHFt$~`Lx*2t z6)sBjw$av)+JK`?kUWgY6>@2M?e-|@(irpx(^VkIY7KUZa`E`X!G|3AP!+}?RXR4L zJG4dXSZ^?~p{d`+Y-Lu?L0xjqfr0&u)0KkdsC6j}%T1S^P91DLPib0OcQN(Yx)P@b z)Xl^`L(NwuH-=sj2H!+)GV<$hlgg>oZ2*u(Je4I=1I(%HsKYJ>Rz!!OZRx90tocT= zxZb3dY#AvjgK%LOEE1`LMOBA61~7*k5NCD)x)sO`gW+lwmEf7s3sf59?V`Lg=q>X# zWNPVZ#Mq-+QfyTbw0?sUkOn~)O>D!B(f%|WG~H}*Lt(KRlmi4W)ayU1H(Vbsv}WREsv7%6078(iDq3sa z1%?`=Fk=FWT{e=A)h5Kw8qeFrkMnPAa+L-N&I8C3Y^VI;nCzHnD<*p<0yX3aaf}IT zm~?bI=yJ<}1uhGrSY1T}?2EfSm5E~Z`*)wWKJA&o0BZNe$s3AMG;Qzc#2mbR_x|9+ z+qeAGfAiwyn}hR`Ozb*sR>BZV2L}fyaBnX!&)$I$d|s*StS^sbL@;1TF(OivK%wY= z+yWhJTO{4ku?zu$)Q?X9fztIAk@I(VS96=2Q+Y(b!faqz%K!-oH+Y_exQFC2aHHra zpm5;2fR!Bg2r4&T&MImhSH)C^Hde3suumuhVD_NZyyQG9%DNwF4bdMEUrRKJYDcGx z@I6)Q&=3Yi#eMqpG_OdNqJ;Y_rX#@x4(2cw2UqM4+B3h4<%0V$UJ0|BGl5RRcSRg$ z;L7ysO}7Q1IUKK+fn;bIIGFjf4EanH)VwNHs57h0Vm04fjqn7pUL=1q+03=GGr&&h zrMT!|NJSgXbi)*R^?3Y+gQJ+EDUA111MkTN1CDnd$`4a4J>;uF+C>w%)&a~$A%SH< zBMi_5cc1+0V*S^}`d`gr#dgp#$0iImfp{Xh*zYoVGj#fUXzdgnwS}Ss`4*ialr|!a zDT~p&Hpw`McX!u|zK;kV<&L8=;J}|JYs0HqNPtE%-hCR2EEqQ?hO4(RxJDt_(~&qF zgFXGg)Kn;*nbW|_=;^?Up{If07#rB2mGve(|Tf-5U6t4xl* zB^-Wqh^mf{kDV1gEGeoao6;E4DD=#T25|*b5>UiUj?N73UEl|lU3Ix_2QCr-A|Jc- zH}NI7;+J1A8$iD!&TKS4NC!%Cr`JKYMV%z&Pq>YlCP`!qw^8=i<6b|st7m6r+hUB0 z#h}KJ$giK5?5flzC^i``r!Jy4ew?3Hrz@w5IuRx8;>*)!GdBAB0i#URHmZrecBBE1 z?Xvx6Dui2d-_vbCQc_a`1CKinQhBk$W#;07fbcw?DO9^9$N^2WX%pLLlKNiCL9Y@N z!U|I;G=$h>ura`@g2@U${ZipdNDGcLPo6IZMO1x$yy#UPl^3!^NU zh`Kwy{qd(C9(L=H3YS4`l_qOb?LFM@cqGwefB$LL4m3N!|7)f9jZ+Ru0%u(0oNVn) z;#e_TwdmiIVeQe;fQ|}ySe*aD9!4*up}Q1t+_*cTtJpnS7N~njN8&$;|CK00s}2Ah zFc{Nm77b?vMr^7&)Jo)dp?Bbex?V51|MgP z;G7kX--=$!z{zFuyFLvt9OhjfscsAnt_u+^j(KJFJnNEqK*{N^uXkHKw}41JI#DHSH%u`mx$Tjr46V%R(YtqV-yN5EQ2<@GpmGDj z(|fUt=R^eYsN5pxUxL-u=wlk_aV4BQ9kqFS!g3|`1ebDwNq-GBn9j;WK_%DCW~Pcj zo%qQ!N>;l4l$jKR3_a0oi(D+loD!4|?#DM`JFedK(fv+?|eE*RVcl@EW-S zGDB6oh+$Ea_$zuURP{=|BqPybs)|8APZlIXSB6f6m=S*#TD0EC$s|M$(;EcH98Aa- zjv6bXB9%xA#3o4#mGr2ZozQ$ogNM3+_0O10!eJoVmO$QA9zIqe!OgTWzg5+A`{h@^ z{NZUoakQ`pFOwflVqAAWeE)bgTEPA9Q>^kmF^+Uc*$bDM10AZHJxTR`M~p-vP&8pD z3+6D_D4@B6NfJ5e`xH1i6~e(y-huiv>(U#Fd^k(1a*3q4S1r1n%pN6^R5TGwN~oI< zjN#sRD)Jr1sF>w4>(n z>sM!u_W0)M%kAzO7{Y2IBB989B>QtRcC1meJTL`il~!emFSjY?f@nW9k#92UQFlxE zW`l2u@tn@<)@Zt@&N<5%fnqeMWKT~-4i{3Fdc7FB)T{^R4w)lOngSY<&_f<9m`g3Ui|DvvI3xoI^slYof$6y z1sOQ3)Cn)&otI7V0g3pH>e>5)42jk4DvR}91pyHvh~eWvTq=+gIgO(aS)dyD3%uSm zI(hZ_Tr&In`={?7_xtU7y^d>0pB2aSSgZrBO2?;X70L1Qp+*J*ghBF(5|4dia}4Ci z=p)%FbzJex$2s4SCNYALX~&Uu5YiqlVGBS%h|_}>YOBSNCePy{QM;NsqidX(LhbyV z4pGf0BRJt9wo?GtExL;YjHu1h!8sc;hL*y~c^%rj1rAy}J7tPU%#d2tBHW#Y6C{Nu zvCvMe)*O$$Qg=w$d0&w1aJXFG?hp`i|Hlu?z#lXi*W-rbTeWj0YMN0d&y55+zl{x( zcTLAR&CM0BR8|0!L3QzvNF!2mSiO*}5PL-13*5dNmdQXq6-=3W0cqDuz%$)Mkn|Ux1F1@NDu~QW`OOE-Ex;o@M;tc> z5je=wmnKQmD`ar44V>2#z|)8}B;^``(ZFcXL0Fnd zM^Wms9Wb`;pv^M7NGKeyaSjmpLnd3sY(Zbl$BHJ3jjpc)2vVdDpdmP$=vMJCzkhD0 zzIdM_Fxm!(obn&U3w?2McJS)$+jBuEV_7EOk0T%Pj?pT>tKog?^e~gJ6BM5XXE5H8 z2Yw5CezTp=ZAPhOL^R1@JVnToSn3pQ63Ak(oy70f$TPoaMk((pxRts?m@*QDCh%^K zDx)dX0~9{)u#(fmI^` zXxVh)u_w}v3n%c$5k|`JP0yKcSXLBt-RjA^59b6`l&k&qdUKUlPtMD7@zR7YNHL*)e92c#8%*laf7caU65iOUEc28D|Rp2%qYodnF+ZAqgb%@KW$1q9Fm@j5DG zFPVZ5UIgKUL0fH=&`sAryngxmghX25uj1(E$P_pM6vqr#6W5BnI42#Nb~1Tn6o_PiHC7Px zWN>_}Ne&B4AADd|le`Za?!YcM0y+E|1n0sb#)5^HzKTc?X*@1Of1Y*?k^&g>NJh`E z!rEGF5}K0D;|nLI3s$JrIzuNzYEX-m*H#U83KoEB!6k0@`fisrQGirh^Ijo??vQ3z z5jn&A_gSn8-u@R~t|70QELOrG*<`4ps924_C#Aq_WAm;njI~HaMub4J7B9^4+ml9} zaDtOerEL{k;{+2=>GY(g0X6207%EbCY;rtQ^XP0bbz5Amaz)b10ayaEhnAC$LVA5- zyJq6ZiD5XD6%7-?hYwaih8R~DN{u*_5|8T)gQYqiq#7=;)TzbTlp!RL!Vf7#3QsY?kPY7q5;Q z1QiR25y~p5rq?o{8FOT4iKLA5;hF*x#l=wu%CY#J3FzH7&*~Mlyw|ta+u3?K-K^Se zz~2R%y9n{4t9jd<(I`hx#5hhW!jB=R!jy8L5xs~v2oEuLcP!Lply-jK#o0yxl0lp@ z&41uY9w!&S2D^NLU&LZ<){B=pR-Qu5PG_}-;gHX#E+%|-9 z25p}fCRtO>!KeGEniqUjZ3)le}Rj<4TEty$$8PW+f8HpP%@WI())ole{ zf4GceMEW#LsO{-ODON~$N~>Xt-I7QZA6j)M$jgtj*_td2ZKbmu9g@pJ_VV=X2wSrN6ZZCt zP?OUie?oF($RGeoqC%d+91;HlmFb(qYFk$Zcl}yH(n^d4xs<(o12n6Q`T7zn&iTd`Kl8%s1C!8O`bERrlJXlPy1w>vr zyxmW^|M)31LUv3+?NmDi1PVqBvPHbTWFyd~MeHS31B$7p2%jZw23v$AXsVR7bv?_$GeVKmqGDmr+{zFmX;<6=E|xZl&Wg5UWZTsQE<9#~K( z3{NBYPs3Kp1ffHh5rapr3AYlPLgf-wh-7d;AUmYWW8{tzj#f8^3S?KBI%LrsDBc~1 zReD*em$C#Z;+1E$V;eCg+z>9{D}>cV=^7*-_G_!cxBz$zY zza9Jj=J9d&xKVQ@nL(~xJ9*D-UzT%+hvyP!FhF>@dYr2QFTy!^irpJE&tN&>Cf`|a zh6yJ*_%wR(g0|_3hKh7?`tDeADH87%EPkMI2XEgp*M7ykDqcW%;6b*8q(KV6M76u7 zQO`-i5UV>Co|<`o+ypaiV08(2M|i1L6Q>wP7x9m)mW~j!9rAeO4eW637bGXcp0SGWKNqH>#8X zuP=ETpaMdy0GO(HO$IUAZA{o4Ea=FG6Cu6Dg2@b;&=-+ozy_^VPhO)6KdP!wlIe`l z)}jBaRBP^PJxo1>k|;^ab$d7^M7&;q_u}jbA=i@4<0t%I2hLSoM z;@Tk!6F45q8DXEUweTkiUd&}d#rqHgOu*dBvv3J6BP0j$5=ToDYj@CBTk+827D5{g zpzg^r`yMfaAyV{?&6@+uO>q=%NWvdghk$|d8RURMcdCQGpoFK0E^6iS$i7N(Y4xXg zEN+&)*$;PJN;O2;jnaoVhk30RHyW9Ivt<@C=2$POja-BHz@p&u<_P8HYEmunL{O|2 z8<>81q{1eF8a^70yz0?0)q~p|jIr)n6k)mC>FF8qUiEb2CxZz3G{;b_=8uM4)FH5n zKBU}f*SJ>ZPKh!Ywi)T5vYL}QxnHfP%c(!wt@l@VfELHZYIPY>fus|}Uxw2X+?5kh zH_fKI+75lgpN<#XrSFLtLV^Y(x+h$r+vELy0aRVDXHE`3oSwXXiSQE*)k(e;5#H6A zTs=OnC$u|E+@)%gP&_#vdIFv0IF6Q^m>W3RXy}fxJTmyFxi`I@ixoTU+5TwEhrq&$ zc=Unk4t%BKG5UWF=%BCS&|_2KY+KH1J=;tnHVV4~G+FeSK#x>53OW}pa`~&JgGR;_U?x zDL^$6yinFRI#8-&E)Q6xGX6W?Teu_yW{W*8{4J8eDy2J*&ez?U74 z(3LgdKeA{rJfV0KLGJK`5SupC;29eRJWmwgjRs;JOs{B!ZBuI6NkGM9a*@G3uG0FY zOwC@DwP?FY;uQK2{qhEhWV9hgR5?Q+E=0wWR6!-nbp`dcQg78Y|NJa}X5BB<%tg7) zz;U^oU;p&e4e&I0gNAha_CvlEZk9_sb5Uz%3V~%HgED^gtT z;yA0fGbEbS%ih&zz@R`=MyN%%*EfJo?ye$tNn-^pWlGe^m;JCG(83#y$5#pS5^CE{ za`$OGjz;PH_d2dXo>&YI@LsW|8UMAEVANxhX+cRUQ*gIY=aa0>CoFylRSiG*)pRVF z2v%t`fy7?lcL;x^J;;w|SZQCWoythK33nKTh_z!xK80?>k@DQ6eu7-PKFXvJ-7HEzujY>Tr&BnboC5%fpN z4Qa%243%i_(@a1;gkl2@z0(vJ8jS1k1xkoUa6~V8)uv>439Ovm>tm0`4v;==u|{AB z;M33qq!y?8nYf(A7?N$aD59>dWk$hj=ez| zt?#dQbF-pF-H@`4=_1pvaJpWvCTT=U9+Ez%i=&cfT(nb)BFY=4g+7@&lm7a1Wv+wr1F&fTZuRGlmlPa5?x*0uu>Gcrl^{0Xh!Ol91xLgepZ&YbVc1NqU z&7sLGw4_EB5g~#*C{8anRDQ|xIaY-MQWF$Snq!m{qZDfleju?0iyaXQFPJ;-7WLNt zAAh-d!W6~LDd^E*iR1o&(tisjb+ry?E#oie_n{HH45E&4<=<5mid_`q6th8v1BMsrwL6eSJf+mr~-;!I3f14&!=p)cH9F>@0Lgw!tLmxOTUhN6?@#TV! z-ePulGw!gRn9Q=pSYvu;b=j(k8=xtKbxQ=Dew4~X&PMt3@N#n46|%jrhbPrv_X|K{6|fBZ*(`Varx z&COr@?VtV4@7*8_(EZibdbM88JKgQ|c5@HzL3Mk8x}&T{@&emy+M= z_u45&C@3S`;EYb`|p)!E|j|MKzAHt2C`#NBy(f@#oQ?)PJ(?T#1pApn&M<224&unkaX?XH9c zgzWetV+vsy?02P3X8;hK!U_}*Bgn~=R;z+xKq6fjax0HAhjbE8g~$P6HVytMb6I48 z;cKEoFhy3qMXe0t02KjW1I&B||1?zT|G8dZ08t%uI~q4E@?X^XLb3+i?I(1cgTcq| z?nXl>9$YwMT)gweV2;#kf4%IJ&_n7pl5?z06cWgEp#*@IWT;fry)L6#zCu8h)g0eEdC4Y2`AE~!^#o=c;{`^J zI3t1{>NOLU0+w-qNz;!qXt}w5_y~)SyKhXJGE62{voT|(WCSR2{aw=E-t^)&yx!F3 zrUU$C_!+NuYA!iY^(w~B^K*5JA#ZO zhw-L=WaPEAMeu_@dz z1ku+^)Vv~_Io}B8^MOw7%UiFt2Qx7XrL|`Hb63SAL9|Yk`j%WnHAGnWW*}Fg_6X-y zQ=aXhxL;onJhKf}0Zm#BH}Tb$wb+M_HI26@0&X7`Z4g>QN>^2xdr+&R2y+@mqDe?c zF3B#5^@_NxY(`ejbX=xBO)Te z849AYKois%?mz$VtJUW2>8C&YyMO=JfBo`9Xi7LuhpQD?!IRl&GM{&?-flll;n~C^oHd9H z(DZq@E8DPB=rWe-23PjBWgr8jiq!}_W!RUb^xUVtpl*%EiXM$w?6~S7RgQvoe=zHC z5st2AlkHEx_rn&zcDMg=18E(^oZ9&~Ci$JZ7mG7u_)%{O&BsQQRU;TwxOxP>1%Z}W zjAFq)uSl@4v_9d(!PElk&qqtci66p&NfA)31K=*UP-YL7OzmsMinIdg0{XC+V=f|#MS!)Qder9as2?>;_`x&#J6_`|WG$W^fe zf=LDDpUsj$K}p0P!tj))Pzwj%aCN`wC)3;O(R4nYrh_(iK4f0pB!xxfxlu=hihHEi zL>BYx(3U7kAU@#wkXfvBfyB_K=_JFOEi;|#WxQODW*8q>T#hdj4(`> z@g*ZXri8+O=_NBFqV7NKCc|Lx{U812H^2GyW`2LOom&-kI%KT4!n6c#WU;xv-o^%v zB`clZ4%(eryEA4mo2)pHy6sQnzS6k@fKaEmHyd(gccCODQY#n@ar=dBkJZW=?+to$ zgv#7ISx}W+NpphXsPA|144{R;C8Q0mSDp^b2%TNNjzOR<_jgM|O2W|TLRAy`rquCZ z+)Xz>{o>Q-FSy-5ZBZ^!1Zb^bk~Rre%3)=1LNHH)@%Cy-3|EVrEnp9xAV28Gux3Tc z%G05$#IFO>zClj_1#VuH3Ggz|V=xjz@FVtDKy>(!MZ2ukAO$mk^grk{iI!fIcYI!DkY4VBuH8rIaqlod}5nf}Jwta`XjuIws~MmRc5Tm5ylz zloi9~7Sk(n8rzP{1v)Qr*bf%J^M}9tyFcDgKCGrOaClkcLlLu_!LNREZ`+6r9n4@p zesvq<0BjOer-=CQ?*k?>C*MZsp=6Q*QJ|?%G+nnMSzYiT;|X8*^~3dyy_u;x_#bwB z0uM9%!3>w++oEEl@4(Akq7#hByso6n{%o`C2TnT%f)%AHoe)S-gd{YeQP3xX`H0d? z#puuHjUI%GpKn=*<`qBAn4$7w3V8)Phonv?+nbNSe>Vt63|WLyb2&zJZcKNd@1L%* zq<4i6zZ)iW<(ZK(Ne-g*XVSpf(1*d~)p_k4Tf&Sdo%SOELrXQ{q=+x z)}}fH|J5IEo1WVzzwGv5I<*HszaPtSYV9VTtW76_?rPv-s#C}`!XOr|`r#@}NtR2m zwkfJNtZ_VBh9e!o39Jq+TI&Z6gMre!D*j*4yDE zff4MR{_b%<=f%9e{dQu*HG!@R2HmcR&@;A$3X_~#9WS%5pbBnME+M#JnoEC{{t}J( z=Uo-IFT7)HN60Qk^Fl?u3vdU}LeeD>IUmNE@E_r?(Glf`0(M zJI(}u5u^%#fVve%Ve;@GuGN@8&Vr}Vnh~*>IA`T8uXWo-e`(AEPyR*sZDlw z1_q2cFmz(as*~t^nY*kn_S+!6+v6NE!hXbM0}>t}TDXI}81~a|ej1M(O{PN3)|?() zOm%S650nxpGzl1?E~6lZ5}%~03m6-nj@#}#4uSUJ$Vw-x$xtvka5$1(ju=eb@?@JW z9cxwLl8+H7RFS1hanc0ANLf+$AHJ+ub;;!Ql=Od&+{b@q<%qSf#zdSrXrpPlW zarm0}_R!sR2L0Z6w!ORAGFK0i=_euir2A&{ka-UL_7K4H3jL=x-7dEzAm776VVFn) zJBiqEWi>0=EN*@v>T$S27CN%K`@xJG^3akTlC7I08oH z9_~nBw5it_t!Jp3bt*-^T}@m4>iUY%B=MtaZ7EgQz9%Od9_y~;QifnJ`LGt zz=uu80Ac22q0ouvGT&fTLJ4V>8SwD{lr$#b0S8zG1sbzG7M$2Up0^Mv;+*jGrKK8% zV5G53a``jG4Gf1cj95O@<}+rJq}42J4>3(;wX(HX7P$jps)xrCq5(J=}V z=8a-P#rQ!LV##G*84Um=+F!;^JqR0Qlq?pL&HlSzeOWJ)c(R3&Z{rjx;LM@Uq)E)U zyTWDU5^93&&%e9!!l@X}m;65NUeWu--a=u+w<<@A1bs>s@eT<$+{xg0jCSLcgz>7* zAl8SQ(Q=05Vg!!L<^dVY5!M|I-g?hyFLv`OoGL89oVM7s5mBMR(R5n9jWTKwu1Erd zEW8T1hG=EbNi;W~C$O97YDl_=mPNFTQNLp^px#wE7$A)(Bwq>uA4nXkC=M*Cv%=`v zS_PC@LW+q_4w$tQEv^QirgQ9TwHn1N3g5J&szcK_YyAIFgPfIqW)Pg1fI43(oJ zPSVZ5jn|9uZ2xeL7k<^_DEaj1%XWmAVY6D&;IQUfE=x~O-)>zkrd$%5AW^?79cIWM zw~oW@3h^T`uy_mQpdUAw(336>lW)SQ9fYRkb(4?N@62SHEPxe9*hf|@SuL5ln}7V9 z-+x5C&-V;-&ULSU{rJ?Z@v1V7)4yL3-9rs$giE{)P2%53$u=OH0#)>9sStiKG2&~n z9GRWELG6@9f5)ND?`O*9C4H_MK!}0ZF>n03+QeSK%gu+@Ku0f10&0KS;m9h4cb&d9 zg({+Hl_LwdoTzO@9Z(ea4i*V3T@BM;{Pg4U=imN37JDuIgesl^9aF2Y-%yz&Yy~L+ zPrXX;rs@%m7pQtNpUej7{?pHY{)d0{Km3pX;SX+6r!1})1jpkdr+I}(gnvEBy8WzX=n+qG5@>q2XG zb|?Fxuh?kP#x@uR_f|HGFbw^WEisE96-h#d?sOyU@M47!%H zxV_yzJ?@vtZ@Bi~fBN*aA1$u|1Yz~x)%663S{oXV6*-47Tvwa z$ENqSw7Z@uN)os9*%;lkKEQm8L18yZZMD1DqOco<{{1rTw?`vqvTj?<6um$Fzy9z4 z=l|IDXuZgd5+BRm$Mu+fq{J>)R414O1+y5omdJ7Arcf5*^8!=nVo6x4xwx~qxEv9F zt1Ia7auk>F!x$t{TjB(d9Qv2kPK8StaeR*AB!Avp5i!bq&^&lnD?Naw0eMKM)y4ga zhb$J45S)r~fvypwiV7?Bxr%^78%=hfuRlHjI_LgD^#H`lW$*MyeL=J^eY1(*nlp^M zp1=ro@k?}P{$Ta(AOHLR_z(Z^_y6gi{`3FxZ|`R}OR`>dtIAHprAHi|+*8N|D2Q2# zzP!KM^gybD=^BskpLS&X@onR6<0i(7$(zGh%s`0MDxpYo5ex*;c(J~V)EZgQQHb)n zP~p<;`Bo=!suim@A5GeH+!Q?lavRPTvlRCqvupTb5Pdic5Xtl5gSerJM@27S+{L^! z96o(sA?6|O6j=<&e^JF^JmZZ=uPP4v79Ko^x(z!JaAZL1c@GXi_Q?l&kQ`;S{rjzgfQrEy>SCiLTZxaJ;2X5EUw1}vl#AsmUT^`!p!nm#qbsMc$YK@$%&iIvDnb)( z^!#G}Jz6;I5By?LMJPr*^_^+zk+z3%6A?TUcmm;2v7pyyPXnn$U5Jz9|7Gt@e=NVisZ1nr@Ol9-rsY6=X}q1K_S3U z58a3ti34xneEmm%_1C}p)t~<5-~7{m{GUDJy}`na?~CymL4rT#lW`I|MyRv%j1nL1 zVY(n6*}_2m`OCvlMji1m;Y-AZR-V%ntRZ|X=t~x(da$W8TkZoG32rdz8$lk}t*Pdg zH4W`7T5oWBin=2|>9w6=xs(ordDNv{#YhF4({nK}zIfcN>&(Qxb!F;R zge5e43BJs(D&RB?JpM5al&c-G4Acn5F%zz2N0ZP4oCTc)IR{sUN}x476nYH?J?b)! zrVevqkY#BUap%zdqg5zu&9PUzyW`b$gg_b4fc{oAhPLFKy$AiDVR(q!f&;vVgQMwB z{oA$L1beo;XujFRQ0(xTg=qyZ8vjOXh<29+PS7WKB-hKkJ0DgfiBPVdbsH|5-P|4n z2E_CE*7jGcI*x-#UleP7_2IV2P;6lrJzm{MW@*myN!NS0_w?m{7Opq>)zuIG?00t1 zHKBU6npP2G6A!k{!$tYJ)L@9n5YJ^o!z;pFC4$(76Br07iylenh`O@_?y4^%fI~7 zU;WiT`G^1DLykZnhKjTcIJk@thapaj1NQ zZ5kt%D5nerQ4VQ z5YA1CI3J+Q6ig;5#;Ny7<<|IeK}cJ8s-B-K(9Dog*qM=RQZ6{aHQo%NIRcX4MGue+ zO%?JZiFag{_r+pDNHGkhr&kkMK=Xnw`I6nABx4X&46p^$j7|{*0Io+_6C#4ked4n? zu|`Ap=8DuGT(WUY1T2}@QH56{omiVsdI>C{*L)(Nc=!vi$nh+dY}vp@x6y zuv{&+v{k-%c_*x^$S_42iTiD~+srN|j#aP}IBYW-<3@9IIm+=dMgqmz8schn*?=0w zMucYz!Za*nu^h#&!vIogckCvw&^NHYtWU*;iBkrw@cz3f%IJYl*r{}Sr?!(DjFT$I zRyH#rf@dA0e@1(XmkZ+zFNpxb16eOg4Fibbz|${sSkbXy7!$HK!oG*l9sI3ycgX#S zouky@(^G&f96sE1NZJ_JJ6|)O@}if0{%3#vSHJqzfBq+b{>$I}au-`ej9an89*QaC zrMC~mz0sOH`x^KZC`AkAAyN^DX+@r2L#>6QExjTexo=J?G<&WO0Wd(!dTk{zrrRYK zBH{{Q8wR!Z)E-`Rusr}pzQikl#|M>Vqjfn5158Hq5}Jr)h{NO)^hIPH82-Nds4-k? z=%w07uIWiG;KugoJSW;TUzcOZDLCZt3oNuiPvPAU_!77Z<$fn8Y8tV?7E?^Vv^L`? z|3i!4w{%Ioy5QyKsEX;Q?k01wCn!sD7|3Htk__#RAuH;ZenT*0yFs8dKp*XisYi?y zxM4SBB{&=>AJ&T4?9X`x*>80G+ihu3waKIGs6;X^;fW0}NohAm*;FN;36<$o!+er} za?Gi17DpMYBYlo3Ir_du3fc(t6lKN;tktn0`w_mYhXz7t8XUhWOibX7=7KB62gNAIKyx>u@YleMp`Z0K0-*#}fADT5_Yiv)MlE_f! z>{Fpw88d+rp~-bY4G|^)TAeuCuNa0kJ#wXWIae{ZAvdDH(@Pb+A8-#)jXyaGO%O19 zP9_qmqTJZ0qKdKulD(j;U7IjW`4Axbf^P-KZ7mvk^{Ey|E5mam)Fx{aqi@rXD(W?2dNxI$Eu`Zzdp!nniw zx|csd!P8m{3lnscESvEnM2v`+(R(~T?P2+KJ_{X|Ow-mRfpKcx+`QVS2F(!sDCTXt zSr%S8Su9j?e`TLZ^bWvBnI(CcY3PAvZ9Ie#~f&{9*XJZY3 z)szFZc{to`-R{_(cEz|Lgkh*Qyka&fe7{^fW)ZWWRXc9J3jtIZG#NnT9FDS;CdiSr zv}8)M)fgM>lv#XK z1*K1JX#O@jD@v<;{WQNrLXRXEsr=3lfAI0g%TVL-n^>SCEY{8*ksBo_4NL04^9Hp0r}BwM=x?q0F<~05n2tBBLP73dDj4BswaA#FdT(1+D5VidIR5 zCqZzR`(8ZvS(IUA&*72zewrzdu+oKNSiAixoi}EZ*zWOh_K1HiNgLcGn6FCLdfsLe z0lmsr|hVpiOee>*oTl?do%esSXF#do~T5${UHd_h^ zp!rWc7?8ZOtUPUu;aFY=?&jsr0Mz3uYHN@JHR$)IJk+yjD6P(ApgH0T49a7MhgBJl zt(&?&K230}>%9;7S6ni(UE5%mT${5jmS(4M(~D8#JCEAo z;dpmPKwIFzS%`AR&kUt3s`L;X2Yivwb^;e|(87O%Wq@#}Z7Jqg%$_cppw#Jc4ZTjq^@ZF3(yf02D^|7<|m#fsSts zCgI@IXQ+lwc*6xRAnYBEHUJ=$&zXu}k{+fWuAHW?bm%$9IBRfRn<_MLN3#Ge`dX;d z5UGBpAt=Cb2k@B17~G}ZkN??kzC1)z1%o_{Iv`Xfl++^edFm5(=#oxB`RVkXM9)^6 z7f+AJ`+a)5u*$g$4P`ubCkF16NCaqDDEHxazD^ZHV5ko8DkmE+B?q}Z(PnY1vPNw8 zoH2c3f8rWlP+q}-X$<{hoKB~xYDUaMHuYGD0sD`4HY=(D6lL5%7qN-^`@q~r0C`R| zCoBQYziG~u&Iq#|56LnHIEEI)L_}C?kKN$oN0{RqcDsdH?!02QWgr}p#)*6@y&>@x zoC(Z^;)TMg+2$^&*DKC6eLps-o7=mqY{14iNrJ3@5AsYl=V^j;b71mI9=S^@Ht`+jPw108wO?&g-gxDZb5-we&Se z^r(>J*`ToU=futOw4jGwO|_=2#5AQLAR|{cZsn+o88R>u7|`C2QLs(uf;m<5Qm9(^ zJ@&irKOR6ghk+G(xFXy(!q)J*@qqq`}~7 zruX+b22Kzo+_|;!4|OpfnH>E=ws&yxn)(s%^Cdbc+!PQ-vv?nLW<;HpqsxBZR_r`R za4<8ydVRQ_4GaP!V+Q3`&)PifeL$SR;Ctz1h3bSpaAa12N;#A4`O={K^b$lCxKfPS zs)2CB76Nu?j`vm%tr6%EU;vi$mkqSn1-!u_uOZcrW{oMcKbe568-j|$kEx!#cyYH> z=n$C|SWm&tJL%`X=_BPBaYa-2PRCWw>o*_NT#!^Uo%>e(>Vun#^k7wJMzRkOvLFEm z?>ssm#QWQo(j=0DK<7zZEtXYs{KYSR`Q^?TVyDt)Qj*ikm&J)?a+*L)#XOVwi7pyA z6CXzmkbz~z;1|IQ{sR0VOg;EpSVKbnMbl6_@@fs> zKoCq1L$xI^9be+($34}|mUULI>Ahy0we!osK39nB{evr7qRx zvTszydXCd4`YVtSS_;N@@gX_C94X69)TgY{eKp0h6^*~{FejmFKq`tc8++jatSGQn z5{)(wGJTT`0BxaRAMP}v1jBsm4d|rc=CUcqW&+SS$+IjkfYW$cfLT;S!={a)G9@Az zmgIaBnT%Z_%Hpf7bHA*t{OPraQ|%B+iC73cqDmQRby#Tw-7?bjxX+;kEK&{k{*5!T zvqT#x(KbQYNm>j8NKXT8*j~+9=us_r6Iy0_T)dbs{Jvh)kfx@6C%S*QI^5mOJ(V}s z%#Jl=FP4HyrH0s0?>7j2J4s+B2~*X$t%L!|RAADWP3d`ErHC|)%khIjd90c zh*kVdfGd7o{*|0Cd^(#=B|U!h>RFgV@`TXG3rHH$IecN*9cKe?^{npWX*4#2iE4W} zhxN%XfBBDp`$orYmJDDqLqDMh;E9;Gw0KxLAgG*HT>Xbm#M3Sdc=-^g78SBtA9$8k zfV05!{@q5y-mkT(O^elVi-F+jbjL$6rsylE$+m&jCWObQs6Yo{Tg@uDPu(Wube!$$ zf+R8vRv3kOK>CQZ31-}vn;*#eop0eKz!L{-I50Et8(>g9&uKd>7AKg+^1v{-WAM+V z1l?WJuQ5n;2?f}J5yvjowQ9V!aNzU`s3CTf;?-x`N8=oGt{CIlRWwW&%%0ID2F zJdDEF<3RCu90+3tXElpGtQ1Fb%k|9Cy&T7^iShy~uSRnQ8kj6|LdjN7Hf{mt+~)Nc09aZ`KIwg-$Cl zU<jL9IicT7Wn- zMT?5KK3pz{?74gP;(j-7O_;Bx9>8jowpA#V-1@Qw;IzsIH{7WJ%CDdL0M4t7R-JKh z^YpnFE%`otm4|}&mymdNU@$X>?#l)3=Kwc4O;4k|CZG)h@Y@vvU8oryDhuQK={S;e z$+naA_6Q?Es92hvfA*9_UiJn|cewHL8)uQrN*@|X!~LklpI=#{J1De(o8d7)eiPjj zBJAa+VuPDTUIf?FGD7BP);Zjty(tN_m;o_DHwPXPC4c#1L*%IN$GQVvFHi;=5)l7K zSof0@@-F=-7{PfzNP9RropDasON59ILAL>cA z0UH5ai4B6DW`yIot7}NpOB4*aqb4ZCNORSlGyF~Q81q; zKICyEl%J%u5xX18H9kpGN5(~#|1|i<3-jrL|ppm+ON~n$FTyG-hZ(zO7>%2 zyV&wIK$G>^Cj=UDy;T->b6cSkXBvornsmUe(g;7r0LxP>nsep4l6t0 z>eKDsXnnUSy|SKLoHn}a#)UR+bO|WYL3aq`9fGO?iYN*>yCz4K+ffg09$r1{d60R5 z;bmgh#w;TvD4-Oj6b<(`HI~PkkJGWGuyO_SSDd;6oZRij7DWVqhCQte3Nmf*jw3c~ zsa1i;$|$|5wBl}CF&pEzpYLk2X8ClSQduCtpJ8>yX(0`eb=QoLAu-`Ue&OPcH8h|y zj0j?u`9<17NXt&O20IpuXB-_K=J%o}rH{>6e(^=PF9iW^oOEScHnW1AcpO^%A zkgNpP9oH}vJerqjkUokh*Dk_7z+gn+XdrQYWDUjTiJuVg2sIIM6h453ce?H2&exl5 zhAjtMmkBm0T}AovKmU~c?Y5`UV)bx`;%cF-I0r2x?q)m?BR~RcETVSFK^4|&AOC&m zH)xGn16;I8anxWrb5k+L0WQ)tGLA^;%wku^MVD6us8Jc2^J8KfH|yhJgCN-PUa(_D4!v2>o6cbDheiFYzhPsyTLTXop^S}#VOn;LPKQf$P@}3u9?hH>hTw4kL30m`Z5OW`7XsH z7!=UK;scy5vHb8`BtIj4;MIHPFQ%!$X%F@KX7%k~nP{<)%a{GzE+xpaExc{VoyAFEgek3nn;P zfd86D`45ozZ1$fbNRLF)Lpc&?(IFB+bjr z!it_dhC~`z2$&%)Y`zd1OAU8*ynV66p$XTebW<|MjR`nRnO@5n@`!~_;>C--2GH3j zzk--s414+`M?*Q$(+D&ks{{?eV!hs!%j0#$<^#P7nVuJf-4lN2DZCGSb$}+sOY(`= zN$EKgZF`;MOCu6J4VUPeK{*a8KU;z6LPk+SAD{RJkUH#zxe$UMoH%|&)xS9L(;b$5>ihK@8n!4f)9Xx=ex1h)$W#D4dUw9~mbk)BZ4VzTR+E{B zFQP&|psovZ-mw*P!mUA@3nnecPR?OBb6r#($jFe_ur#ErLDSADVg6&C%p)h6dQHAN zT36^eNG_RZoAQnb6i%ZU1il^M@s`9{nd6mn^6AxBYqIxC9pBA%sjFx?vcSXPSxh1` z7U5xx?L*JG1vS#vFaO{V3w>Y#8M}trY2lQFA11Ed6Oxz!sKx6pbZ59aPK$)2y4@}- z%!4hc>uMOz&311>Z8g&1lS87h%)-%UHijY?BOG7)Nr{;x>x>w_CgxD{Cr@_U;!x~z z@mxV}%V|f&BY=_44(T}$_XE6Hz^@8aybbA4?`|5cz$Ym^P*6pqZr6(3Cim?6&LcL2D3^#c(hyC zd8fGsJDg1vf13Y-^b-w6g06UJu%3V|*>N1g`Gz3o8n$(?IL$tW-8wBd1yslZ@~UyW zG{)u#a2&edsZhfnVcLX1i3Xra>Xc08@^Mabq=G4&3)6&dhovGpAfQuKwVo$@+3Zk( z-+UYW6r;z~FUztHaKW7)=eaY!>^dwgGQjH@^%E(nP9BK?AB)k<-u?J5zQ2oy*$m$- z&=l;*Xk)OYOYOKWSwTfSY0x1k&khE9=>1mk3yRE!|3~-#$N%#0zH$d{V&?ws{r+~b z2twS6C}|ut+JpW56(%GdHUzk!W?=}ECiQoB+bhzsVvyB4EZEqh_?uM*j?hrK6(J8w zoD0Ru$x3GVlFPX5uN)r7!ojw0=&yI{U0q>rC|g3-QI}3Km?8!)(~QLjcD)?5j+38?(KoeQ4!6;?Nd>q?r`Rqj9R1^$T!9)jKwmM zRF@sj{%qiSTKA$k4zISQ+wLetzyn$FXj45`VknoE!^5NQ?fIYN)EsqT|W1g#WWYEcwP1X2Y*H4eC_4d11V&aZb+@d7^yV)?-SMgurnnRNA(xL!-QQ$LM)T*Zug z#0tFLZStsCquryl`ij$M9h_`lKT(?q;&Qj%uWr`v{OIEnHo-ZMI@0&}&dbV=Orfx- zB)ZEzpwDCW8)h==DwzkN&;)aZdJBtoNqx0qHFP`dnkPVT9u7H{75c?(xXroOO=>*c z_WHV}To!+SSpWX8{wH%-QBKp(H!qEFIGMvbOxKvteD=XMg#0mDxq=3aP2AJPSv01K z${jp{=_5pJN*&9R9zSAKW^CtQfhiJ6Kqc$~%$>$7evvs$iYpBRdKhEeg4sxB#p3!P<5bx zLoxdh#B3B-NDrW+o{iWlitdF? z!aVOx76%-z(e%K`lCW?n4hBUvqW72eT$(e)Q}dZhnCLN2#)ZzYfq#06koN#TU~RNJ zI*t?(tp3!-4K!!zpNMU3zz@>Y!%$GYd~zSNw8im0f(s%bpc3MOuwbZ3_D`Q4 zcbi@9JCOoj?-@FLei(?$D)z{vP?vXX?bxAAT+!q5g{B#GI3-ZG+16JZ+Ya%A#EF4k zMC6lWwg2LSs~mO)a4MOW(;=i9_&<=W$6>zW63plGWm-Kco^GZnjG~ZUw5b=HMV5rj z(A-aKtm5u)o;dNmh~nF?fBmbshl4i>;+gP8xN9scE%JyYTN$4Qd?8%x-_QY>n}uI@ znyNU9;*2I!JD3(qKmo4k1fZXCU^&|SjQ{5c0JAVT2!Qw&Cbd{Lz56b*X20l@sJ&Uv zUtJ-0f4atojHN^p!YIc5UuDKX-w(q@IjJ`!%$2n#h#lstWK!_hjkQb6=`FIdox>A6 zBJ8{fYBcn*5F^Y3f>S^m;f^zo&7MES^f9$YR<*nGrAu#gunnGu3z~niKBE(b%^=V{ z)bprjyMUz@a}w+c`3_r578tofCE$CxY`A%DkdUgCc;noob)kE#Dk#@tp^^AWy$I(n&i0Pw zTwRIGhh3_PzipVuP!+sFJT+5{NRtHq`^16a<=QmiP(CN4i&?zb?rskAIh*0OYT>nL zWmo8|0o&l-@@yH0DcOyi^u{rWe5{^fUH zvus=JU%bAl;nNX%9@~20i=!>aa6ovLP^=MD@&Udl(Lw#dTS2&R@N@*Vj9EWy_=(9<9@%nbV-p;R*8|Au6!&=~~ly#)<`q12=}4!w2y!C@7~ELvf}9Jt;^YX!NjZfWDb= zda?vbXd3xJh~J49kk*T+1X*ejQ;0*I*a@UHI8H!pgrPWb3Xind@BQ?rpFi2)9v7G^7CGeNnQ7sBx5@`E_ zG2zqr3C%*p1w)%d=W6bLv0E;5eGy~}8sv$cRB^R;Htfbn)4qR9do41Glqg7@sml7) z7+@z0$K%N-cbTa$-FTsuFb0nE*uZicGHQ$7KAtZi5)x+x`(>UsAA=@NJvLXfIZrJ- zt|j(%xm()fD1{ToLLK}Gp_$|%F^|&kW~&@?c5CrRKl${{(eqU2@cD22#t+^+T-7sn zm?I|_8nj&NCi%o1N*JYb4o|kOoJm^hZ$=^ZuL54lzm$V16_p=If)?(_C{+32^Kk0H z2sjMqNV%w9@38wZcXx-~_4Yd7-`?)LiAHb^ zY_{30utI4LjCmQF?lRLbK300?k6Zq}oK1Y7E3l2uI3!XV4kb&f+4_E7ZQnw zH6$Dw@!#nB1*Q!c?1I!n%+Pet31f!{+P>V4et$H_=#rbqHL(xs!=tfDeU1U6c>TRF ziQ_OvGfS($0T1o$#8B~B5M$mnnbP+dix0m4gYVzI`RMJ(ub(~Lpz>u_BnW2U98=q+ zjbV|3a+Z5t43n39_N(KaZxo z(5Zy~n0q*wo;LJA?QK*#pj~M);T+->j&<&Q}Lrgsp=;NvqAXW*M%Jc21c zNp{!Q5_!7e_CT*UWh>5djpSu|48b3I6C^+`r0j`VANCu36S!M&gHRM>ZUF~e#cB^- zHIUrMD32lk0tO%qH%>V*KycU5Ltz+=3nuI>D=brBdsd_d$qL|{=Vua<#%2vM1dk9U z|9$AtGbKJQ5|heF;3>h!u!}SryD>Wy#Ue7SJ)s@N0>{C38_GV`o7#+;8lb+DfGU4J z_a&~0u<};FcoMX=YfXMr-@!8gqCT(GX_-9nH1s(5Psuwe?zIlmSaJEW2=leN5I4f` z>ft6{eEfUA`pM6K`sI)AH*a6uy!haHbHr&EoysJrSbjpgC7F4e)E4CxD~oy+u5$Lj zXk^7Hsa~n1AT4g5KYuf8wI5-LqaY$C0Zo}+J+GFl<;_jOUu+dm1Jz|e7VWNXHZynM zm8{z6xQm93SwV`kAI#MICu@&)l3b_3(3niiY7BQBqhG-K5quh#6>nWKbXeDRpnzI| z@ghV7J#+b?mb({kA&MuWct`l7*A#ia@nmtcUk3OrOxeESaXjgqw^)_~S;{iBg{gvOwjXyia^vJk zK#36^1H&MX1tt-l5!W-Fk4_6Sh)cw(3<_{M8i*q0m2^dlE_fTwl(9-(TQqsK?cff)S7N?{aJbRz*ce1 zWlPIWiftdK=<;Id83F@h9gqHuiiePZl{MoiH2)}IQfSTRuYdTx5C8UG|BL_f?VBI` z+^yvCDMo5f(TrHlDkBw#~O0m%6`s^~q>er=C>Xp+m!iDl*WkF?LG|KA z!QsT4nXm|-l@fO?q-VTT=ubI|gPP`=TV3z~w5NU|ytGqWDoX%4gq%b^`GW3z`Q9U%fk!A|$dL4i+ZNy-M+vTcC^kYHNN6OPy7BII6g)7*!{Qs1mAS7E zSWbR2;ZUV3&E1t61`pS zB6XoVLTcS13fqB@1V4^ipaRXZja8K8C!hcR|NX!JZ~y%3@4fx*&wl##w?BAz`TYLr zj)@Fw4#X8^lG)ihoN2nP*q>Cf0DputjjO8S#5cJ!W| z^auX($=yc@sV?h!N~lqXn1#9|RVjeek!&2*qr}~&T98n;(PZ+ec=KR^b6DvBwMNTb z(=^WtKb)^>7UsM)?1C|CPg$KiB#&XK20I(=2|O&!EzE;C!znIwpu)W#qK)WFP3Ow!OHNuwu0ByjAEYV9FFr4&vvo6+@Pvy8BNfn`8t z<2F-*g~Kc^*(lgg5PRYRBg^qS{f}ZGH$K<>fBfJFa#R5gB-Mvod8CEp1)Vwtewpq~ z`~`)P{2pRsu%e-nZMQZm*3pE!jpD_V!39F-4KWK?E8=dU@>figyW3<$m`ahysYZlF z`SfE9w(&C>X)&a~bx9->__{EiaPP;s4{|Hvqi|KB&+rwK9Dscekn1=y2zCb%iqNPc@S`C9J#I zTbOxTP?R>MBccU1Adebwz;RYF!`s70i@QlPaT6N7@|bjM_BIF8l*z*Cibsm zh1(0J5ri6E_8}2=43!XUob`)8|9AiI|MEZl#UK67Prm-iZ~XkXUtNFt>TbIQ%PObF za-Plz9v+*P6<!SG@T3dxp}w-#v{GF5!NB?7)Ri&kHJ z`qtcSS=*A6(z|TiNxDq2I&;dPiYJ(yA~NQiCQ4IJW_5@V>!Rn(U?s9O#%Mpk$~9WH zG8y(DSgb;!`e6#vYL7=ou-|8%WIlUDs2B=d3PmZg+igNE;B3uQcg~U1Z4W%9tA);P zF~gePOxkUGJj%mMt?c(Ab_t~Zk`<;HEY_I-FtX>+3KbbrCod5(x)V$ohLTDJtcRmK ztBx>&2ti*3Wk`c$Y{UgyV(Dj313xb`#x%UrQdLjIRSGCw0WoE;GvIt{&@TXR`5V}t zviuio5Q2mmdmxQIB8gNSZlO0oaxx~Ec+#sOwIKzqb7qc>o}5go`A`nVS@!u1r#ug0*P@L~=@;KJ=)Wupwj$MKQw(s*^dxO4 zwC-Se$l>71(UV`H52rV!Y#lf|WFOE7kVFHBHU@~tEtdCGG17$C7oJLQroeJyWIOM= zpvmxDA<=NB!~H*5$+Q|M9$T&Vu<;NNuMV!x=iqWCV^-mP9Zu=fY#XakiJiKlw(v+Is-(%T|b3o5>tX9yvV4A#{hU$ z59l>plu@h_7ue~rT)pJi!!m)~N31Gl2NRR>%MjR_S{Nu3K8~53u&q#`k~T<=q3wcN zT>sX;{I~ztfA}B&?w8;D`uG0q7tf9lS66ke53M>jd}}h@28uPY=BWkIf8!7)nucxn z?l#9J?7S1Kj(59IUP)2q3`X1p@!D0R7)&3SGH1Bm9Tfu3LhMGJItq0q-X=(>p09&o zWdM1iV~mP|>8D3XF{rk52<28i1J7^!7MT8p*`l}>l1a|H+?H2TN+eNfy~1~9UC!s0#%jP zQNA=$W%H?EX+aJ^`GAEv^dXHjMon{gySo}xQQ6?rZu7WcR@;Q+^@u+X2nA z!7sjhvwHn{yVzhgV*xRGwx?J)eP9-trn=0JLrZC>74r+vO@H9BxziYQ2v(n9O}tMG zFKCYl>YUNs4TtDEA3j>EUiI0b4y>Zg?CR>61z2A^fBkyJd``IeBuoRqL>3?&lQ^Fx zZ~agyy?*BV;ARsO)nM#JYKQj*o;ZaJypiP-=f0~-(<>UX4IeCVo8Y5{a{kQ|g6U6%ns<|H9nF>CR{L1GzA4Iox73631E z7MHm&R^-^S5fI>%qS)+*Ah1~9pKiHcLm_%d+ALz6KpZ*Wvfv`tga|@3V208^8Ps?a z?Ce>ZPAwP^8mI=Es8tz7sUdkNyj_Fo06hU(&I=9;;*iOw5%n665(1)mV&I#hD^vPS zLyIdF_6(#!(*m^;r&qGvH!*hp#1P1pkM4_I6k1RC(vZH{pCWr36Ct1=@1L#{%&ljr zZ{VoXp#lT&2gDkYzkt^QT&~+u^L5Pu2~!L+uI#DJa+4^xNqB3+d(Rd|AGEqX3sWD5 z&<3(~ZU#X79Xc1;DhQ|zLeas1OY#HZkHfk~0Yz|fkf#yOQ}lhjp6ym&!IkEuBqSw@ z{uP@It_F@6N(HI(X!!`9kCy9YXfMC~Z~w#p^S}OA-~IZxe);pwZg<>nwo$j2t${W1 zl^{|bO(UwZA=F`R6WFxqEtqI{#g|*0rziAf{^sqcFCJESgLX7CV=x3uYpW1t9Q0|2 zJDi56{%Wyejt!<}9b&2?I_LspXvoKp{p*qPHx)dqHuy(TC@wwj3dzMNG#6o@K>tS$>IOw0g;*g)@w^16o+vWsO0RUbbVCGc3YGNQ@Ul8ab>ay3;;y zO{z6@E}dDpdHUqx#rGc`;;aYZjJ6)x3fC*fBFMFAU9nM7*$UYbzYgbf>KD~9>*-%}r;( z_X5}hNKiAE3?^s{jrcKzT}~qz!8J zTU{R$cvr_2+3=TpgQ=C9&x@Wvg#?Jf_|zq#9$zFd7#y0oD_|W&u*nDGa(|Pf+fpZU zle?dtg*{DWZUE_Rw8AeTHGjyK0WMtw9>Qv%J! z&g@(7ToAJd@Z7qvFqDr$30R$AhK07NIkYt$zeXHxNh@q#sx1HCJ8Rg)i#Q%6$tfKl zizqD3zJ-Q{GYg3YvNvu&*d_#ETIAs2e+5(S99R`d;L*G1v>Gf)z_|Ewg;R?1eP&kC z;nl;NFTaBWnaN0ox&fq#O=@VkrAG~*HVI9fH!i@A6bb#vD(ihl2Q8;nDCX=Le9Xt` zc)9~ZjiJ)wgv2|9oUPrp%EObz2ow}B7?CnQ5G*Cx>kx;@gFz>Ux2rsL=z@XSu%Pg( zRq2v#@%H7-`sLeS{Lb^|hqqsS`S$gz716P-qB~VEYj-@m2j8#T)vduSiwr-p>L*vr z{j=MYbHr@h?U4^KiKdM{`C7Dm0o;rbD)2bAF+r-s!C7OrxLIPnFyNV<)%W)s$GysX z4JU^$gokyhOuLl@?R+@eJ#a0WZ0|4VFkm%e#oX2~B{gwZYmV$fiB!b_hQ$J*t7e@_|JtKR9kgR(m;~0C{VB}^ z8!2(W;8miG0u8eahzcl4z^hyVQ&#g(v1HQccD!U6Nv0?DPpoaEx}LPja-pIopsESa zniUnRcK9D$;A6~dXQwz_g?pR;R?sh9l4+Jx@(V)fCpYy3K?idRF9Q#-n3!?GAczBl zLS(_ghQ1i)e2?rELc^FJ0}tyO5-_|1cWS)!I@o~VvpD7b9+7V$RtKW$dxVe%&ne&r z4D(v&qtT+~fg~#q@+KZU^7SGM!$qe{QAKKnL$X{fRLhZHB**pL>-*!~v**vNDYgXo zVuI8w(1q7G#{iHCf`D|DLjk5?gyK3iOJOBU5yJ4Y2tk#rILS?25=ATq635ml50XCG z%ctS<&p*9!NtDCGh^)sn&4{QO+BTI*Yzpw;U}oV{(awmDM8%W9jH@Ejus&VxfA;z7 zufPBOD_pDR#lwpd_K2M#WZh&q9kXk$Vhn{>i_pvZ6I!OKTD-<4IAZg}jH%Cy$?US> z1(PvO6Q(m?+dzBmS&;j7F&~YcG&~f9sdR$tsd#=wu*a6=x~iYtl+2ts9$2reHZ4W4 zsixr+Y1w=44^4C8#A~Oeq^@bAvZZX11t+E<`jXhc#?nR4Mvmns&*cn*&GoL13Kqn&CXuH^>kt7n)DKk5vj z)NoOAu%)8*W(ej+-SY-?IE{E@ON;K0MN$W4S|1Lfct`XprF4O+Ul!#OB8m9pig`uweT@dSd7giDq28SUZo&*zm(X*XxD(>dlJNT9kTO zGF*)5f)N}mHeTf8OZcVimb?;YSfxisC!Xa?ihUg+`JC#_kvyo`f`ph&9n<7$5MxG5 zocS*?-<%4BhfyMuQIpaM#K&PBW1Gm1a*9VgcQ^QcNJ!2%t0vJxNejwwMXe)}`Q7&( zKNeXPaQ-{L#-aTdboxh>DWG_+KJmzc(MQE@T#Se}v!~?9bBm3XSYtVWw`bt0{Tc0m zjc>Fb9G_k9An9ckM#O>xB6>=ng)0`qJSXk&T;ohgz@oCQV%ZwOnxW;0CT z?9IOTr$0S>_;ec%I||8}Vk65si0c#f0+5yLP^D=UBhT|*&&2lhyoH_c)(ua*vz0=P|9+udSm(KBYyIyIXv6J7e?O~Ly zzrBuN&Q6`=`0#MO#(tuxWp6O@G``$RZQ)|nISk@O4zswE?Z5pptB&r(hvU~Hv+HVw z<(6gF`Ird;A}EBt{>%?GOxf`yaDle~|J$pVsnev%%eKVueN;_vQ zKoab$1XTfNl!_zL84luL?2zx_d2#L`$`cWuzrh6pH~_u{NWNgKQd%)Vkv@-zAXYv6 z2v#Z%D?(2_b*ty7d-!dPZ9*)7nga?mQk`KB-l8%=2ss&J);~7&z7A&w_kANQZ|@G9 zxLkTD_93h_hUD&5K$Tof`067frMgFaS6IaJfMP@qB}>n_K3N-IvdFT=cu!V;@Ow)m zpNlA7*r@Nm!yU|11G9n5Z2Fe-cf=fp4_O{aZ;eka&M1&+PS&1Gk;CZr?#^oV3{ZeL zUj@7M`f73g;c-jw62?GT&f*yuLO8H`I$womP*&_WA;~a(vTLJTA-!2VM#?EO8)q7X zRC1>@vfId@Z*)A8G;A*Maki}7fMxu%59YloLR+S05anLas?qcT?fK>`d{|0<&&CH0 zB90}@V6aaJup5$v>_Jv`k!Ml!-h6h4`P%C0*=xUjIn&uuG1N@)Tt_2)TaFV&B^3|~ zfnDz>#ys1yE<=G5FA77+4w*6qKp@`$uUYtvUjL%$E$ekMOA9mk=<|BwjbLOwC1G%X z%@t1A%VJfM?u`s|P!ZfV9-HwzA?M=w@n_FQgXsJBvuT!%M%j9O{pw-CaxW-GZ0nj( z1o28kk}u-%$qchwxZcR{+asbjGFMgNe7(L4du$#W?g|hB%izmL*okYb(HV}oswbG# zqa5ezmmy1u?yu@FT49h_oL92W67hmikT{5brOY;5+Xi&gO$dDmN}J zCGWlmr<(rcWIMnXVb~`d`i$YFJ;o|&$|VW9Dxd>P2P8nj02>Eo7R*0s+aW_9^3^A|(_*1M+ zaW%!I6`LyTTPEWU-c$4_Yz?42NdwEIOo$81g7@${lk^Z|2=jeRIv`@~Jc06>ElAgU zK0iFfI&$O~32Y3VXcY+odlE-X_%pCi1i*MN0A4a{z{rN*(Vjy0VMR>iGF3^RVpOGD zX@lL4ee4eNc@+8A`zlOU%N2PjtU?9wH!WP@y`1D3xRIp(7%4$%v_xEbMS#m`i8yj61y(MN>PF3B1_4DWXlC8zlhlr3bZKM@-Mj3R-q_{fNwu#N2g^-R8!JVc2 zmAhTB+6IfHte08jq|pS2Q@kf42-6o>96}2;AsK>{E-4Xgpli=ne0s_#qc#PU&+V$#dx)THXIh1Zh9t<*Uui7dqcIppoO$Z{m8Xa#7 zlyr+Nq3ay9f#FE#mH4=w+F4m$0Yk#9lOqa?PQsb#%cMCIJRK|(6)EWrlwoRq2Oyu; zjeC~o5QL#EQw2tU>^G%Aa~tq*u_@E6Mzdi)$fk%_>8PTTz=rHzaKB4GS%rQ7hG>VTNW8!p6W%bkJJ#0upSbW2{{(B-4~KSNAQ9Uy3uFZJ%W9zGXr;_e9M=6 zj_D1953MQ-B7TaAF#bFpi84`n@rTVRvjI-mgokdB!Y@Db=v8S9V%6aBf3{bEoW_C0 z1BWQZLm3yr)8ITAz`?{|B4HpMf=qGPSzO`((|GDl##-lb+lC{pRE*OBqi`JIQCTla z9NW=6*Ej&lCN*|l zuV36-qpDl7xFbh@^TQhGbiT%^eY*?-E!`cVsUC5CslxFnVx`7IG4e=ABaEC3&WDs&00CBF@*7xVVuHZ}nL`72M7jemUDQQvYb7mDwoz=sDd?bT zXwB^uVZ>y#iZ%SERK9iD5fNhphY%`~>=}5UgzNZ=vCSA*X)U&kdmTEH6gi}-&GJ5*Ls3{I>}f+zTb5%ydmjzx?zrkqY4RgI3) z+Kvdfm+^u}?#G-1#UTQW8mgto5F@*>ld5)VHBMJAyS=#Yn)(wXw z5b+RUR!yV{pulNiYz8)KQ`u`#l3}`pi`8O%|K^CErC1!Z5yq$5gyWvNwll+kZ!)yk z;q_{JbA6ySy((>W;$`^?F_UR+Zk&-7L{_+1MA{H}&^AKx zjA{ivI?j+4joTyaB`_!O)Zm%d0rPP-`zICDZx$YSTd`Xu7;vKIMmT2x3yEc7D400? zONFEzXzRW6_a7^vMe4#R#Q?HD2+F$N++YCTZEG=W&VH6~BVImg`c*|Y&+V>sWomwe z*n{2EV4U3CE%JQ6S*p z2?wW};}3&`zd*_s=bD;G4W@$Oeam-(V1?Zfj{}ev!+o!#f~(nKtHJX1F-}TTQLzk$ z8Up~9+yFK_CDJd`?J)Q-c>@NGd@j0~fy-H!ASw+{2o}fZk9!sn5bY@UKNLUqviJ`( zu<~I>YL1DNc&LjeTcp*1Z(sx${dI<+;0!H(7#QVq;*B7$1qhew+{ZrzCsQC{r(7=G zqO8y!IfCYO?NIFw=_Ne^pRCZ~fiR_3x}4o8CNeFvrHO%o38=+#5qyG&m%8HNO1_I@ z$lD`J$MsxNh|L0z*_ldJrUCG{VX>4qIb%YNfRzFDFck5m4l4mEJ9`b51-+^5Sd?!n zs~6%~VMUSy`25ZDZIB$+(F{J*%*23)J3rvr>hyAE^Z#({Px#3s2+-KlK6{PS0k{`nc|~f?@ZG*vTRJ)oN(n& zRk}3)^^4m*2CB|(>nQ%503pV4ze-k-PY5SeY{P&>GbX;De#5nOVcU3@wqSb?S3%=@fkl^Wsb9HsBeBCcqJzT~k+L zycT)>4Lr&!11ng|8ar$3UAleUpJ1b@l@M9V^>bQ8cw?>Rh-7=#*=81Jd7cP20fTDt zyQjc(0a8HP0@1<(+0r$!5@y8X8(~33;EA_R64>I*8Lfsv?Zj<-d^uzv3nT`5EHXiL zW`+8w(VBDs63}E#`I0a$1>Ytl^ARC)!0l~#t`MkzQa#GJY3JMZa(n;rrysxm^p<2F zI72#^z|$ZJZCd+o;srTQLjHb3nhVD0qc}i_O8)Wy>N+FEu-r0CM627)V#3xXc>Uu~ zQCwbq@trNeLBYDfG5RhPLp35Di*udob~1EfAS^0F7U%uh=4LcF>zN-sS#G9ExZiIq z=l~-Z{T2{EbiwQpa)yBK#MpCUm6aV3r_{Kd5^O!Ubn&laY8!j&d_g^!L0=zYUG4=0 zPo167y5qv{iZ##45QmkCetoyDs^hlCvrj-O{((}DH32`R(FER-)j^Y4h0jd9Bu7%- zdI~G0l`ar>@^{|nU!FEw^o>$uTR?*fQe%$rw*t&;x8Mi+KJuYCFxr(EL@FDQ=GHh$zYL!N6 zzg~_ylvD40B>WkW4mcqU!O1;#{{ zaV!Q~-LZqP8E>?ZYH!#9E*8th?dwl}@YAO?zLl)W^2K@wYFe$p4;R+9@Frt(F~=^1 z;^X0eY7>m|xQP!xZ!KdtEtpMrfhNKl`d@r;gnDn@{`eUHZ476aP;K;!t+sQxn#bg_ z$7Wz0fOeKS$=7q_*3j9s`u^=rP7f}o*;lBx{d!X`VrZW2c0mB+Du&O3Jlq&bBr(Y% zJdOEbl|5Z)DoYYxFHB7FtVFSk-qLDcj8Im(*6{BS>)#*N|6~p;sUMK=JSTr)L6=}O zVrQjTtLtT+ul8#yD+8C%ui#e+ef0!c(HAglbp-d9tDZhoCMS(;`O26ykod#qm^y+!mYpTu z7|!}=^Y7W-(mG&{dU;M*Q?uVZrqM zm=JZ&+6kLE_~a~#J>3}T&4^5tgs7?}VYF)xXp+!PiXC=4apy?{j+MzF*P z89@c-m0s+0SoyuO%Hpv0M{ThugZ{yBg%u#8A>eL&R^-R$@QTE41rZa=tj2g;Fg?>* zGYjAfeo3YpwgDrJiH$*+4J6k)c2&Xst84gVk_f<7warbyJT(|0AZ5@qJ!S=>)}RH# zGb}0{7|aj!D29ZC;zim3ytG+PHE=9M;EM+(nSJC-g2XeiV7zkL8l?(e$>&|Rm-xpE zxf#(BU05R3`iWN}gk}9+|S$iRLnbsBZ zX*b@j5C!7M+in#TE4g|5!{?bF7X?oQJ^(q}+PPcrR?hv+)ZCWA@p#1a722}_?;%(^ zK#nsJ0xRvdb7ci#67I{AeScJhP931oQA%XL6AQ*~w>h?4-*)F8EUw<(%x#^xlDpmPG5s)pY8+KYEQtjCW;b&h7KDE_ z;CVk;tev4<5+BOO#gOTB*b(+9lnc;Hda4sRK=5b~EV3N!lsSzf3v=#{5RFx`*Pu?p zm_^(*MKYkxZ=XJ&Z+`OW!oz+7&JdD0h$MYhwm_sr+FA}Z224v`)JJ~=WlXhPM@l0q zD0ZvV<~C463*%QwpL|4sg$tQQ+Sm>&WaQXL3-EMrbGaSf?*`)a*iAHMp~k3A8D3y zFU^;`{qg?kljGb7cUd}@VoJA0vq_%`|8Qmnx$E>N4&dhTZol1EG7S(XpsY!tzCP?c z#?K~#+6hfLyBFS_fS4x}8FU7x66!Yo188+SAUO2p5OFZe>l2cuS*)Jm$LLOqNl|rt z`@QdfXf`3%)(IVP_TcyWQ9Vytq^q#;35lQWT76C9Y?~ znGzg=j^bs(YVqrzU2h0dVMZ855Ou?ul58q_l!W@Sp5~j4uZ1=KM40?op5eIUa-f!m zcrally^S(GUAdu5t(q6G0IMWJve!>dmYMbK!?MIH!L^EKPXlj+oy&5Ong(0V!GGV=odoYV*#HA`L!8x7}-il>$Y2+%ZANUmn;Z9`sprZgiMYlWi zDP4j4oqzNPKiHFki5`V5y{a=ScZ^9JMr3J&BCrk`D8+Hby0g&(>odu#8=fwIc5rOE z&aq8^ln*%d{v}zsjGaBnn`j`Z84R68i6sl;Hw#MHOfaro^er;pCRT_jN%Nz8vwe8| z!6y%Qch?xUg|{#N@W1=3yX(7hz42WqyMA>K-m}=QGw7&(Dk4#QE&#=(U+F1+Snp7g zU)?@=czE&b{t#MoN~?@Wz|91IN_gw#(9Ciw7KWS{x!*qBG6aR20wI&tKBp5s3v@T!0 z{r0C}gNyT#bF;EX5Ou0Jt--slKd>EIE7y(nA%T=t9R(vSTJ%_jy5CUZ znZ8+1Q2@@8+aLYVR3>=6XvG7yqxC$?<~^pD)%}bw>5_#fL={f>a~QO0SaY#tk=X zpbPGU#b&X(<>{qNa&%Vpa%*#gA}QziiB=UuQ~|1>^#O0vbWt4mU>L>Ia-d+#45|Jx zuFgXKWPnAQtZ6-*$H6Y;zeHT{hg!3Vx!&!NNMS$5AnC(Jg`Yj+!gbi}V~dY*?*LJ6 zziUKKkE{5X|LVW~v-JRoK<-TH4PLK+oC@I|bdDGgj94QZG220i&h9EP4iGS5bqQYt zr9VhN4T$hm5UEb)OZH+@HX4nFiszz{R92^}kVaNk2M7`}SD%yNgPBg?J0^Sn>!&Y1 zdGhRLvx?(rx%|z){crx~fAuH7ef{vZ%9gNI=Bt;lcRO6I>%>;DZV_s+SjLI8zwcus zdbqm1xq15Z`ThOF)0>Bz2#P`!2ePLFYQdQvZ6Jpdol+ZzA^e4U;|zO9f&Y7KVn!IPI%MVOqD#5UhwWzfqf>}E){ zp@2O)bE=}qXOrl^==Du^fPEf5WmO8-LSfj%e#blj?J6T3OynMj+|w; zSX~`8Z@YqbZJ<4K!>DFK#+9FDGt1T!9iBY5ByXe8`{`FjH6Vpm+$;ECl92xw>p=Jg z!l>hvYD1Qt++(bM91HT3=&9dj@;c$)Lv<5JJYKB$xg}>V-cvIy&Kt;2xYz_Q@%+ZJ(|m97A`@JFmFvC>89I>0Gg_#fP_ zv>e=u^w0FH#I-ZnG37fj=y>a7LhSdDgQQ3!debNkd5Q58p>JtF#>Izz1nJUfQonfq z9JWf470GwM`zL?<@Bcsc-mAy9G(YeAGM?$~b1Lqf*Is+CoO9SYSMACtbf50iX>y(s zXBeg7P*k8u2?XQ|j}6+^4Rv9`GI$~A!hiw8Hhm-cL)gE!=2IBZAvn|1=~UHz*Sr4V zd4A8|{q^tN%!{;KUTupwbJHj;ndk*Jr3qnM(5HguSrR`J(tIY9<6(b&b39((Jzec? zuJ*fCDBGEz_yUq}f!de4OF$HBEsf0Jv!3U&!J%oJKO`vgW3|~eN&eYEJ728V3x8~N zyo0V->+2~SAaZqTcxn5!nr4F`pmPw#S`~MeFuy)4X3y({d0{%%bc5J?hW}ACz5o2{ z`+JDc$`E@GATWb`l-boxcpI(EwpC;aVNsegVuE^NDVQj1C3TDOz{9Ws3m?gfERUw12YJ9v5Xd=F1^)tGGI!AE8_ANbiD%z_@tgns zKmNzR`)?lRhU{)i8O!^2LGC1Qd{9|P19^a1yy~f|BB2u5HY@=#$X{LGT-_ZG6am*1 z-z&gjLhb0M0AcXC@$M17D6#5@XsO3yr`xSGc=?uT=p}goU1VJ@)_GK7FWvaM*$X~i z&!Wlg6#Qf#e-5MqR$M4p*gG@{0$>2aESn{WSj8}YIcJrojDT&32*joWCo7)6djI+7 zlNJP<`bnjy`sRSiPr0AlhY(S8s6~4%Um7Dbzk0J}tzp|~3B(X4yH}QhtFwi=T^c27 zh)z!qzy37A0^f-jWn?7->=Jl)4Msf8Vd~N;tAN(HS;t_PFD`qY6KJSw*Qg0@7m@6) zvSHo3-zoIGFS%Rij$j6p6-b;FD%u99s}9o>Z#gF}ljkQ(!pUN@PLmm!W5v1q&ijYy zE~2}l{NkB(nMCwYczLpjr#O8EQ-}q?^MU2haLtKImR<+Q<%yt`Fzj#k*ty_T?IW0L zL=E9fpp`Rh38bi(ld`Ns!xIv5m zaC_x737kg7&hv755oSb{3Gk1cL+@#~NUw}$P{qauV~@a!9Mw~LcK=M6YIx7$3?PB} z8z10X@x*n{;{||P8)1>b%QIvimfqYiG7mzZgTz=tMh(h9b%zZrn%e4W^PB(W-~NaH z`UhWsy=0u1t{y(wnf`1B5}b5-;{U`?peJxt$OXKSR71GI4~ABh{rvj&uv)AR>)qA$ zVGq{`;mCK!vz{|bcisv8|Q5|&KJ9NK7~avnib`$%;vMr=2&8Z zDc-KoAg?yr+qaoeF*5YR!q>cLuq8q2g>SNcL6LrnHUrTk!nCd-;De$P81)P==}Efz z(RaS{CRWrYn^`fP1(?jI`=ySoD2Q!;Sr+r{ zT|6dQ8xvB0aQ%Y`*G_;D%fKZqp&rnNVT|s!YY|`+PvfvynsDmdCzoADDC>2SPLWZk zW=A!>#k3dRUE$UdW%db54l|0bXIg{KXJA{L87+)$CJ1Fnl|3UR&pa$QR}0weg!~PEc^W0cH*8qa8#*!Lg2B(3l^dnH4O^jX0 zRoKx`5t*9QXQ>AA^$d(Di`%v=&F=Sn(he!dVTs@mz(?g0Hi}T}2@WB1005E<9lBc6 zSroBN9lKe`)~fA zfAh;PXF95w=L_y?zg|u#o5(JvZs+~M!^%&rPrx>^Aq!9Ma~UtDUX0T=i!w{s%XQAO z5`q?&Y1=CTsHj9|F-+xsh3SEJ4#qULbchSsys9*xiw#FK_tBJ;@IK?I5r+E-(k1V( zWI(W9MjyYKCMtje5rs+)04p-CPymEYK6^AW0*}mCn@6=pD)kuM0wO~{&7w&f=DXdy z*U*51L3IE!x&r}sqG48XgE-HznJPUpDYZ##hFP4Dz3d;3*h}?(cKfF{6MW}T82#xq z*35~We(%%8qBNL_sP@8B6>3L9*o`*peOepFXMJ|MRM^CCPLOj2hbeXFc55{TmZ$2X z(&t*?%f<6p?4prLJ?guyx*TcAu+9pui#lMsNKDsV9h0zJ94Bc8uHW@DO_U)ci$Ea~ z-x;kARda;w3M3QVm3UdvqCda3_#e-&WZubwCxG<=EBps9$-=->&#)a~5R1_s35|?T ztZ`ltUB$!zqORD356so>8jYoEuZd)&6hQmVEr`Jhuo-%QYK_P}3E&!zqs}1F?W9;( z)C*lEpGZ&uDo1O8I!uGJP@%o>Q4tZ3(q$Y7JH+gY6{(7Vr`Lnhg7L(~sQ;4b<3%$( z3Lc9qf&W zLO2g}iA-I1qEAkEBk`Q$qU@@GGKd#0SI9WCVloeK9+&gQzMNZONbIRc?na5w>3S2F zC8t0q;N=nnT)m6;bwrCV#B0wkTroUEr6GFD2Fk>dDpJ^ObiuO}Noo4{)mOJ9fRLqq z3Li?1mlFqIC|rOvAZ@jy@;@=>EPni|w51H;LkX|Bo4CG{mPI}qxh!kvezx$^Pkwwn z`iON%c2^qbdNfjl1WQjc6!HrfR*%hV+fa<@^)~5Mx^_k+#b8kDFK_fZi>A3{(iLHj zmy%5k3M^n=70AxQ?c$-chOI$9b?GqyDI2JGXW0_`YEBNVC;% zU4A4sQoQl`c&WmkDUrOt81abmk@*YD6N*}|EHHb0aFkukU!)MKh!sih-dqQ|vv_*<`S)HuJw4u+30e~T z=D15~?AXvFe!}92N*u-Nz=w!erR?ce$dGmbAE5YL&%gN5!|t$ud{}hoFR7ix@QOYR zIR#dBa+RNhUbtRaiHz_VGTqR^^=7&>wDo+@lNL{h`Ff9kayD_?S~JOK)A{OfO#0|b zJ)^;Xky2H-1)w$w7ZUljGjhpZ-L+yE$&YVGJmD3}D=ln%!Nf#+b(jU3>oZC!gqT z&Ew79cu@)BuA7Fo;#gpQQaBjC$8VQsht*`|G%KX473qM1t&_r z7|>K@8AXmc>XHdW{FOWKpXO<5E^mEZmuqJ#-dEG-a~dasRr<+hwI`4(8R1wFOMuq- zhb#?HoG@YM)rnw43`pp<1g1hP6g!BGdB@VaP$MC}Cw*khypZ_~p57kbNBR~QWu=4q zhxQ22vW;fgU97;NgZZ%s@$Nd7`QcE+@h+@@BN7uz5LOa=S_CTsON70N=0nE!NwfFS zNe2+G6;IOQNMd^5aq+fx&LImLQ(McdCS9YhP5J;K99)B>t+NP&altICqXak_MDN5y zhUNAA+`75DKQ4B+>9CJVmL+YER}Zzx)%^sAXfg3YMPs@C@(=#-kACv7+o7RCgTg9_ zdPOJ`>7gV{Qp2GQrnE1a-hlbA#9NnW+`#NJYq)y%oqzoGr?}CtaV4U6Nwy_TKWla9V~H>qn{Qn|eCu0V za_-8Uka!<0Y?P7Su7S8EK!(>7J*uT9(|t_10mHN0k4BV9)>La5j`f7bWZP z*?~U{)!dNBQRvF8p`T3G*{FC}+|PAF2>W_4#!(ih7E5`SxmoH>?~Wom3z?6oMr+Sa zJTqo&t0G!R^sd~g&u3PQtC}^z<>3hyn}6s4V@+lc)bYU@w(uL7EV_q=qFSJDZ8Ti{ z`Ife&p~j&(0_8PQ1~EyEN{Y62bcvpnC9)9jQ7q8p@Btt~W>+c6?Q=wq)U&8yPpS&| z^8D(%U(HQ)<;dnBH6VP|Xy|CX`9*1bz#em`2@XgqzJtS)o-;dD_60?}PYIb**OY-d6H8wC?iH~Y~Geb3k z!Z#TS({byC)5P220g`b*-bCJV$3H!qx{XUG&yw8fv;~Y8BD}LoXk=JNip_tQ7-`NS z$_TnEF571vE7z(RWN}oY)$@xWfED5SRRIG+-K^{7;CW&GO`&Unp~>&UYJk5ea%9d_ zruEls^#O^3h!Am7bj`XReDdw@e}4bw;5r#-{jm<)(cl6Si))P|Fn8wN z^MX+yUo^HRtvMbxwejkn{^#BPX+N9o7YoX}s5^zmZq+9g)2u*Hp<&iEG- zv5Tc7>tfE(@ptl=_9WGutw@fxp_Qm*R>p|!l90U0YCXDndOeM1``vn)*;<%qnPJpk zUhwgODk0R6orJ*DA#)HCVkRM=H7Q&nM2$GEDhoN>jS*vI4G>COv5Rzcc~O@QQGty3 zE1A_&SGQ9cX{0K%K_5zRe*sw5BZEf5h(Ei6{QL%)M&0+HCr$65^bmdZz)7AYI z`hx11zd{hs!6H#yki^q{N({%CVf9rZXK%OLfqXy|K#(owvKR={pyJ5A{N27RCq#iD zP9pc&vyw%cCN=>20EM^WX41*&xJ=SX)JLnRYovG;vCQ!if5C_t!#=sd-> zDx^XTTVP!X`~s79MgU?+a@lOi&In%HxQ~;QBrpel-e?j4+GG8Jga_#nOQ`__4zn*; zDs`u@#lO*xyV2QdH(Z5f$USTrLDt! z!U)Q2v!NO39$&O#FmUyE-}>qyWsD(5E?;#I*LPPKV7i3V1W~q~6Q3Zwi3mv`34Hir zwJQDw+HD>9N8dK4_h0;EW9dL@xV&cb_4ewKDqz1)5p;8-H_RkwnWV6xQ%p;yUDGzU zws-2at~TaJj64evN`MF?iohVn?>BQIC&r_`kuj=vmov&l5d42(H^zn!97vp-* zJ3K5FOP1hZJ;LL{8?az7$81O!J8iVUv(1W(a%$K%Gqa~8g<0wAL_#e|y&SV4;^!&r z1bPI?Zl!^kaf~I3I=yxB;iWZ=qiH_C!OM&!OE4thR-$$Ar80MCmNs<9$AMHC2#dzETlO%V5yp4fPpTHX^Y@`K@ zQzum1wQ(TMHsZTcgG|=n9e$>VVtFXEEp)r=Nr6w$^(v{f3q%EY`c*yW^3~z$P2;lw$+XhuB9lqh4)IzI(5SA(QYdx{X?u zo+37Dl+-8&%hhUjv$rInK#Y^!oBh5FRl7QR*hacqgrrO^lWevnFNMjliPeFxQbhE1 zM+B_Gs6aZ#^h9U|`BDidtaLPEq#zjN%^Cy{E)T0!5&5>^U4Q#^!aa(nsP9cCQ+rIx zhOH3Sr5SK?Tc`DcRSP=Ab_;jx)%`+}y{0xl_`z~E*T*CvJ^kd9tS1LX5l)`&@@7?4 z?tl1tfufH5oOz-KskxaF-W3@d3t8GH(wkE4?3`H6g^to5GNLvfuv#>8@UVThDpi@V zXQ;I~f{UR6Z?{;jVp{MEYqd)KFj4!ON_)#G8R#Huxy{7%pR$!@2qh`u5rSC?d!=4^ z0V0akVw(y9IUq}-Golh?)$$bqx6~s%YJfaD5)dQk@K_NsBe#UU15axg9XT^UBj9e) z*hN)Tq7%+L;TWVkb`0^G(H*}KKWH9|D#`9*Y0ACLP7BrC=?9gV9`NS&Ivz<4@Xr@& ziuo-JM=6*nIi>Hg$NApww_Foo$xu+RWcBLmapFU>8AZ|RCNWJV%9r=YtL+-i1;!?xK_q^IiUCX_Z1GM%Opvi^^LIr{ z8&)oR3Z)JmAZ5@Xm~OA`-nfYBf_X97K3rdKi_mV2o&alwsqGBM>D78NgD;UJi3z@v zNKsg}PNJTc}%glp`ka8;gO_WU)Qo@?>T4@rPec4A2X_W>GhJ zfi!lg+)=7Zn#;7|QZAw)8dN2Ra@4ea(QEVv$#kQv=Nr5%l9YY*t#|Vv06sf=T&AFD zrJHS@#=Jdj%XJ8Ha1+lMuzf-4qY7b)aaJp*&GLZciNBTDdO=uuyCE!3*# zfUM3L&Qrk)h{cI`aq+3(UL!-fDmflAvC*JMrdy{1!iS7M9G<3&@J9i>qjmx0I$7!U zdNgPf@cvfgqy@Me9RJw*jH*zDO$y@ZyCf^xAjt`UZFA-iKjvg&c79x9_N*bn@}^-D^`_C8Wb(VKRUSG?fPTgV0Zt|(n0HV(O2p%8t@h=JO07{@C< z^JqHXtP0kzV`Lyh8wb*qJ35?hu4eN*T5ihY4f+kX$p*PDe30lk+I?fB0v)@4cZhnd zu!yA=>Q~iLTa96U^>jZUb>(ro&eG!k>gskL+pT7~3w_@Eyt0k-z-+iEIeJWsdR(8_ z<~w+r8q8UUml1UUm3ads9zr+9${qA9nAI6s;^dCX`HYv;aecMDdw)Goi_P6!$CAgn zVbsE+!N&T>#>UMt4qnzxbN#Rd2~MjG%W9w`Q?(cHUDwY#o%HGE`|nh(d~+9oZK+T+ z8v+#v1-6wso!$^ZwPjWNn2>a-o$XY|*(^3s{?HB7hRCw*jiXXSl+ox!QOPUudf`+) zJgHgaZc)6qPJzW3#>9l0-PTcK!NCNqYXqQoS5U`T=d7|kN+YO1R zia~+=4C3DqC2D)vVPw^@+)``MbFj}jI~9!<9Z=!1+XYOn>SSP@KCakH}TV9rW1-m72! z^v6H_#XtJZuYUC>pPM74*JX2t!Cce}EZk_Du;;buv4~Bl$0q6w$Rn=_J}huYz9rS@ zrt0z>D)b~L!XQEz3iCn_!LN;n=Jt9r(cG(LoRxRq`r+@rDtD7W2cYIUJwAKphs^(V zGnv}n?7;pFNm|>;)@uazHyf!^k9W7%CGCv4zFSXruiw0R+Js)GSw5{$&Us_V5>rBLY%g*d)vpu=sBr^IBoQ7;Z7?V^7dPIkNeV5$ZK7(#@5*3_r1 zPnb%eq7B_-vP0(e@}s6EVF;vVGWyB1FwJw?;fGSbtc)oG5PB+5mZHhT9gjtlRyX_J zSNmw*Lv;ljN+hR(r{YB^P&?A1X68F51jO#&X&#Zc1B3Y>Vsf#W%i5PXNP>+eSF~PEP=u zG#Qo(|2CU%z(NQ+t3#l+ngnB(+%>R?`6OR%w;^EHMnAWL{U5G$TAvc7+J zSXsOA3sLmjKm748e(zVm`G>#w)gQkHP|c8-TUC(xfDSMTv=Aq>SQeT6F_b#jn#2prb~PVwxrK@(=gu6&9;}j zq$1%cubDaGp-0|g;MkQWPX8g%T`g;FOvn1fESlz4~n+T+Mch0F@{bgJ&^q#yA3ZgNS7}%=vuCX z>j9T=ZLs+VzyH~*)fj^>2oq8GF>@7l0v{L3RP-&d{edCtI+JMBffdx#Jv`~SxW&SR z1+z*lZCR2E8o8K+Kr04=3QB(pAlGM15DbXYtPa*!IVYs1F2WI83PEt>RDOsTmT+{u zvLBr^q|O=O!ZvLj^#L`>OLW*|sPR51)7^ycpB8T1pYCEJkvCR1pN`YarsI2ag+@#N0j@Pzi~7MV+J@&tEuwA|xEWgxx$kr1 z<*$GBX$Uc<2ZuX6{(M5O7^WeH4=cTYEdr$CWB}26pk})rcqczE_Fqspl#x_b)8p&6 zukLPNy?QnG%vwzc*0VS~@}HZB8M?34@#bcl~ZWrUst7MzjvQYg(pyBfiRI zH4n3i&AL^0H9n$k-qF*;%8&Qv1^%?nnj$}&D4t(=c}^puHmf~b8?lG2U!cmKO;z4> z`N9|l{+NvsTSS^sDj%Agnsoi+AHGg34a7M-V4_MmC1OSew453c98evQkrk0Ipy4yC zRJmi7F(Pri(?W|vo0&n|M_iRLWf)bv<}C6Q{Qcv^0Ts&SM6xpuq?W#r*|$~sSPAas z2IsH}EGm~cBQeShLM@uy2+X$NNYly#sw5MWgL~13|k|JA?v^Pm0fPu>q{q!26#i#Tj6 z5LD<>QT!{Jzqp=IT=>}RAk7KVOdU7#Rk_!giz4m!xm9y7WuOop?rv^82C;@WDVU4! zn+%+E_1QLj{OpP$4YwVGqtfyXHq{|TEAQp#vq#$n=Q5X301tG+lnXF)tK}zOCDwKZ zjZV$3?r-mJZyz5YOINB?wNJlZZ+2Jta`X1MKzP6(Z07R?>N+oK3s^H)l9pJs@x=>P zBRv;cB@}otBSd-ABOC{Lre!F^p?HU{zIZjuQ!TlBdiVa?lni4+{PBV~%VEG+?_uht zs<$UM6Ut-TiYzkXF#Rwl9J4K9Pulf!N_gT;`u^Nxc!Qk`QTTYEM;fEq6{fU^kY@y| z6?g76EV&gG1|g%Sm0+deK7AYE4)e>*Zugwk+~L}H$L+>RRg99PVWTp%lIa8;1-ORf zc8PeUH=B>FkejdmlDiWo*_f=CN_DX0p702A;WlFl^3DJ18~mq8s1yNCAAW>S3pOtZ z%z+|N9-$!bK|cX{(ZwD`3?(}bq`p+E(?u~^#$9+(4nP`Oj4a_+Q(fwvJRtr=NWH$3OYr=U;#4ic}1t za(sz*3z4^wnfFu;Ds>BPc^D}b-)O!^m1-AC){g9nh@d1Pww3UU!% zQ&)se<_7psM!?g@>&>E&J3UJq8oo^in*#`?%BbDBl!EyeS0-U(@HVJ%n#uOWj{ZQ3WMF}QovA<6~}j15!8bUpLLDl|Iur#Lh&Y(q%hch7 z$#IiT@F>RPK3TZFV?&{1;}RpiCCAX}DN)QyRI%d?v5&eLV^8B(;AT4{5^$^dDK@(o ztxOio9szOz{?KA=j+?8~GZ}Wa$ALK(ebh*7jfT)Em}x=$Kl3&T@y~*knT0gDJT}_X zn>U-e1mmkKTcZ&rsEFY?LHsY4Lnxx237yDgkd_W*70L~a9ZVa{4cMVwunrZ1EYYZ^ ziy1hW+G!oqv+KK*dP8iSBr)`O!!gYt6Lu9W_fDuNHFf@Kq8s$isOmH=p7GgvUc}y$ zIfCnuJ*r5)qe}?mVsy;DT&pQLegVlrUZn*8;A`7xAXFp^dwqHQFe=F5-mEB z=X|DA#*Hx`bifyuO|XrY9_~MXxA4o&o2Spd+R=D8q$Br-`gUQ@*KX?R?sSEk);5eN zB(9RErD{v*)>RF?OhcPw5-)Yhge$0xc3bIO^YEIB)O!P{QaNboNOQRrML{mqKK3Nh zM@)zagiFV@A*jM>fnI^j);jW8U>{LrD_^arpfmzPuViwrv8Z;Va(1)D zpc`pjubk~8Me4w(fM0viGg&YTIIwsLQvMNKLW(57Eveq{Xy>~vJfFrY0wT4 zoa)HbSk^%O0Fyol-p7D3kL7kJRfH$KtN-~v<#TVx? zTgW70V?b}f7tvs$-17t7>{Pi>A5^Z~TC%&bHTEf#{~1>P)Q^@!<4%RZ$BTyu9hr1t zdBpA~&cW-LjBk4(X}gylW0H}NO=M%88&M+tPF3B>1PQa{)YwPk=}opfFo1I!tdizh zGPm?{Sdm`e9fJJFKg!D@16nXkC;5D1cknn741*AyXHp1uL@Oyu0ZMTuDU?9W^Xk0S zSlB_c)@4SVtJhzAx|-~t?(PpBYF;#bdb{gQ%rOr!soie4Pl|vllo+?hX;m=c6tLLC zW~b7ojAL;nc*tNLMtR}2h$3EiQlrJXs$8%2jxi^~qv;I+nqp^XzZeyBOqZ&;9oN0W zE@D!!G(YL~=IdHl;^(Z6hH6%tlDWQF={+N&*3j6su#RjwraLVh1!_C6%Rn3CMah8X zzZ};8a#;U=b6D}rHD<@KZ_IM0Cs@!>v7hrQWpYLJ$8uE+*sE;fc}aD~18hu)=wl!d zj1y91W^AVdprUXd34WxlKW!ReL}WDyENIM#i(`a^7EmLr(MHH41SW$ny;W_@v|aGB z&ylP;C?DIyU^IYs1&>xXB{HxHJOUp;1XhO(vNPxzXP{Dx0m)3jnn~9g)va6$7wh>b zJH!By03C2=vc%%P7Wby$B4bt%I{`6*WW6tbcWPSR7f4;WfB+7NoL>gctxLg`ATABN zJib7W>13Z*z*%ExlTuht^n^P!*ltINX?v^fjElv=!I8{OiB(q+cZTbtfWf7y{jokG z+KU#LYYChnvNE{URuuPfz@Ur;TnS2-4fepG_c0Sezv~%JAKG@_)7gAY=h@Z!_phdb zXHAyJWjx&D7k#g0hT#RI1b6O;Kfo^UW7%D}ML(=k@U{^b|r)L;`{igB+<^ zrNaR^j3~|+OX}?U>B~>AkB5*RGRHm=B{~k<6|!awTd^HzC00zR50~(L&tXe2%WI5K z`~ej`V}x51w5<;OH7yE~SXP`_X5+WD{n=zY?CNq~A)r1c=6>G33m@PL-wR*W|6 zJhG5v#Rn_Px)riBB;kwm9vEs7p+TF40ctb~b31fdmbJ`Saf)@JP+K;D8J+dd*(>mv z34}jY0D=eciWCcYz5?EpNDxprFq@-~MZ6;v5LK)ol3o-d2d?etsu2?z0PY7pGh+%N zWd;^MS<5L-nAuG#F>NAbqTFfWgGJPWO+l;yQAq&e(0{iomk z{QkJfNPK6epgWA+lx)(iNS;5Rx`q>b!uv^uvQBok%IAIXg%I_xiW_W#_DlHVC z_$Y-Of=&yt`dMAEy*#JUr^X-(7QvI4=#3V4J9?>nwV1?u-SNkbP5Z!Uu(%-DWBmu5$QZs zO&zqG^!;E$AiYzMB4}o`Yqc->%!JO`akhp57YNCX$TxNRs} z32vm7BI5`m>$!04f#yKvE&8lJc6Ho+P^mJ_S}=w>n23gkszyj-sjsf}ygj3(18o6}Y84$I|wHRX4i!2$M0 zaJ$$&GMN^-1x(r0s?W8#D9;0-}>@PmRF&! z*Aa!0m*e^p1-~@)>~a#?1d|ObQi>)vqyonoX63qQQM+15Lck1|k2B;p>_+=U^GjPd zT$Vm)Ley-d5WKg6QkbqH#UqP#l+9VGINQgv3xh*TN-jDlKt-fE;6|w5WeNTu3i;7u zTg(v|w~403=?tKeI8tP!A6$5&*7?|z*k9=|q8ioK>|Itv{#E#N+Jr73xI;3EQ+0$Q z(n*WR2|VkHY(q8xSEJPWOwxHc1BWHsMFVNMJ@aHo${i0Z0_&(j zUCRz6b<9`SH_2#x#j(9Doyi10A}#p9#Y9VD0=K2bawnz~Fj&4PnaRb@<%-VWtcrtr zV4z#^vfcXl3JaFjweR){Yoj$J$#S>bMwU!eYdTx3CW}>QmHX{twt@jQ+1)H6f^`Lx zp9LYa8n}4WX`EfYPw|V7iT4GZbEX|aF+icyP%saej%}&3v-{)+KmF;??h4Of!ehas zrGAq=U*jlQh`wy_9b7tj!R9%Pr9s@o-x6}tz12KH`Q!GQ*&a$py>Cu4sZ-8IB7+^F z)&NOG6?gDtx|mp)0SI-o?%&}I&b%B?HU97c1SE^&La0uor|%FZ<0{r9Wx!)lc#2~T zhR`L1%6-_W(j&5)swx`qzfso7CR3fr$wsBUc^lSy!C{%Jx=)yM5>Sw2lL?z+qQ%(m zGvVeju82T7rkCWv&L18h?q;MXdb-_YMPTO&v?|`5f{0vz&WDttcW1mxHwmIHxVz1cmcSuUXvCOkA(wGU%f_%AN%-5UMifVu=OUzRdK_l?Q zV}zW8!7}%VpudUBgsPQ+Bk}0stX60|h|0slfdoq%+xu_*^k+YRENCEFM!^tFCE?d5 z0Hg3M=K2h7C?+wkN@g~j*u)dIFj6leDe6k2K8AWcG@2E)*zP9bqHOsVV(<>$?hGXO z07ti}+hXiJ+lGd*c(vg7%r*u8GR`{`qwavv5@*mn>zHfk8v}hemxiQw#F#!E-_8%M z6M`fKpQ3WntA5nrPNTh$;0_d%pnAsgRDJ#EbwCrd`s46Wf>OaJ)8!Ha@AH#N4aZx6 z89VP?K4r^V-#^~%xkyxG?&IbqkhyT=S;Cx0fHRZ+rZvX(*P-H;5h5av*R)=xrJ>?j zZRZg>=LTep0RRD{^i@L4Oqp#I58FsHMEVe0+{QpBcnSS-6M3;R`*cXinw&U zMeirF&xZ=X9}N@Md7=Z(&gxR*91#xh@e`yrq7o4CvRtD0xt^VRqQ*I)V#cOUDO zJa;ZVO`?22jtEa*ciLVufF$#j|&xHkv`B$M~)aM^bP^88v$n{NiNg^&fe^LeXVmRDTwSe_bQV}$K)>eL-EP-P@Ma%) zgO-HCC|um;*tF0+bUJQ9JW`+#1|Qi+w<#4y6$`)Aq^M8^IO6-(8bEvpIZ0G{XQ#~p zpWjQ$El;kRGL<=PGMaTBSxnURO2@TFT)mEm@Kkr_(;_gK!7i7i3ya|$H7fKJG03A+ zX|=7x;o<4k{hUBr!4&Ea)R8f<25~yT)_oyd@wkm_1)DyPn2o9vRtsw0T1`r(#L+A! zq{a`ePGuB_13tVFO|eWCUW^lG=#K$k3{1cWedcq#x;td!>G9Rm5*nKwTEM`VG>$8E z))jmlcmYr|qTUngBdjb`45$1l(eA&1HBHmOJ=17Xni43(q71tu(HwM-&$EICs5E-E zVVEwj59`F&yv|3hC}}B?L&B_y`iL+v>h-`YCS^Qgg?V1NkTD3=0|NTU=MpH)Y32<^ zUh2uB2hE%T-9`0d9H>z-dH+BEzyJ9^e`nNZbwb1$S3ey(n_!57I8^0voX;LU zzDns?!z2H-y|hIglZI4P9VjkfIIDI-QpWI$aoci$&CwbxtZ$ zJI`~FAfgUf1`-~5bb90DW*=H+diAO6<$C=>S{GwB#As#*dg5&t(DFL{ZclN>2uCXH zPC@netg&fSg=d{JNXYwQN_JLL$S$0Q5y2OOX8{y{QUdL5mF%-PxtedI>`wKO7NLiDR`#htr07pjgF< zf09(Cu0zel57I}bKlF3g0NVkz6#rbG{S^ce*X~vcjr9X{a(C3Q9eG({E9rhZ#qL{$ z7(`kiDu$OA6ad07k9BT#?+X$t$z1rvfgOp@wEk>>CM=;X7CR8Q#K+0ol25U6#y?Je zPm|wxAPGK6WP@O{oYTU4i`jAk!&G-7 zAEsciSYq)U4Y2C6QzHdv(Vy)Ec$;>-r)`ut1qTu)v$h+Z+%`QrA6ck9?4 zPwyYo_~voF{`61(_IuxZ{TXlwFMIg;RRLyqx7jY{d9l7<&F53%VFU?|2acBpl@9r{ z7nhVo&#-3{bkBd`;^ZR~m=#{C2!ktR(?S$r^=gQrfHq$L)vxy&+~mngQ-477Ue1Iz%H+Xy8N>JCFA=@Y+)*%kj8rCxey|r55Q@gjq7BBzlQy ziO5(Kb}J^}tmY-TKWdtjd7*W#t|BYaIlSGvwajeGC}PZEUb4EDiZ%ZVfZ0Z<0HM^=40FNzlC@KI_1$T;gSQ;%ABMupbmzS7WImdO?GI8h! zp{L1%zMrAy;H5>_3{xD!dC2NEY%EX`Q4>PSGNP8Ks}nrs@ipI^W+!{}zl8{o3iY8z zP$%634i2D&5L;f>RNwy>zn+OTUz0NKL~N&oN><3p5p6Z$Ju)YwOGXARhFNTBE;+0x zHH|ggBwsjVKU9r`Ff9d2QOJ4@w175bmlBEi3spj2@5e5wXzgfHu#3r2?5*dRlA%po zYY{h^IYq3&&c?OWqA#pV#AsaWSXtnaO5-T?g?x`8%Nf5j+0ku!SUtPGdivh=)QgB(ObXM>MN(lcGHq-y%o#D4 zu|y(fa)5f(TJ9Y3r_+$c!CFfK7Fh2(vw(XbM_B8QqQfou09rbuA>HN}?z-xEHNRh2 z@CH++BmfrJ|7k%Phye*!cQx1_aX?aS-a*PRNoPb%iia33B?^D+I3sa`u|`H`#Mj+Y z2{v{Ki|CleG8jERBIVM!kE(UL9`?NH#7;Jd5?RKLxL7HT81XaE7Vnr=c>U_>@$t5MH#IM;+`2r(j&zY=DV>an|5*8K6FPXw*^i&OHZp;!9r zjI0-i@=@df(;dVJHywi*h~~vO69qXDE_n4UJDJak?DhS8wz;|41S8UpjeL`jl(J?*tmuuA-5sejLNI)*3Y_P5O5CFyQtlLjY{U^3 zhxK{oLHEd@j*o-<9GotdOWgYgGXYMfAMFnl7MuFR=gZVKJrmKGneJ!-tJ<=S_@rKQ zl9Id8%l3=|s%Z3K|8+Y6k1%|?+Mr$;I07YLPgav527|3_OL55u(ydpGqczGO*Zf9| zq3GhQiHoyQ?;6CtxxQ(w4uQ2iM9zM{RonixfqGf!Gk7O3`^H;>5QdVqe)7Q!dEAgt zRVWo~O?I}R0XP!%Y@;_|gihJcP_6Ld8(M@QNFC0Rpj&loBG`&2xwmPs%>1fPhVXPn*_~}ams$3n-$e4_en)o;>giZGIGWG-E&C_ z2CY$2+IUX++4awb=!^(=gmIQBGU7Vxwm`LggK1VBDLV!oUX^^0m#0v#5ccqqvcmvlQXBWHeC=*x z!L2`+r~OVt#yXC)S`bUp0&#hubqP`9BTeL*WETbTBK&w(!S(fm&Cj5zG8J|b#OKUR zuWZF!97a!gj1a&Q3&hT!t_HbMm!K@W{d`s_2F~%j6FD=Mr%T@PZ*L#J*hKgDMX)_S zy!sFS>0kZjU;gm3>oV8d`h4yTct)Ifw!6Q-dAjvHm8mk1+VcgY-ZD2AjLSgt73nLtq8@;9TCXFY&b%7S(Zlf;|e?^iQZgW)x{Fv^iH$aayQ-&##n zRDg^jmMgz^He7l9t7{Ev8yDNkK-a1Ws$E&KyaYsatj|4<2@jU_%PuRCk^g${b^4a2 zwd&ojX(QFEH9_*A6P|Iyx+5uneNRcTD$M=1C5W9+a-k!OxA!a@h;E{XRDbY@wGYjpY|NPNUau=pzMzRJV(T4ZUz%M_xY)$&^orzIRm4 zkbW@PQu+FOYBu!D3pCIyT2v++;3XKqo&yDGLr)_Yb35(e--%pzHlN?``bDi&k`86w8bRh@Cw>?KvZdZ*|0D zH?DqIbGoNA>bhs)W46;d+bEZMyyYiuaUf-g#@b{2&+Nc~dRE4^6Db|3-H?V6fO$#DyV*4fhEHwgzxM8g0-^j{OIrh-Cz9pE?Yhp@!c`< zS2uU>|NZ}VoJ`_$igkc05!1hGsgzHLx3A~-SJ?Qu5ru&Ach#ww08qm{R|U_1#D~S7 z17j+VEV-F1QW~b-?&t_oFY0&*RdKmGD68`Ac2y*#x49OInJLW<^fR+@DheuGX!W|H zK}&}!D0|1-l}(6Pa`*OaLJefCAE!wQg=!Y5&Sa4q!Fsd7)|5>A$!_LmZ}0J%S1ezK zw1Gm=N#|PK+h@*V0*-J|>ierGUma)*?jL4j3Ny0&P|G73t@LHshKSJu69qGSE1kJX zz0*)MmDhi}v)Lq0?mt6vAY8LbLS97*ghVVynUd$ppJU`m4bNs9)QxvNVFlGIXg!<>2eTc~I%_kX6H#JgGD;C}@RyR=oD9**T_SpoJxjQv(PY4_2lI^u)uq z5lb&WI8#O#&}vo;R-iu~b%sfdSEr4i!wHW|&8e}k(32QbwoxRAGCkKD*5F;jcFdU1 zBCqq9QH{pKfmf9VL&{WMJIq4-)E!DOLDx)$aW#?xK>Xv7a}&P#&AR$&2>v`! ztQ=aiWiJl1PiM?g$*4TO{o;$sbTuPrGv6Q$83!fcw;5P-Z?mzRLqFZ_QtxmD1xAxm zy80?Eioht>8{ONcBQs)4q!^i*><^B_HmqDvNHM>t^C@xtpSG3@oACHak}z|X+GsiF zp$InXwTFaY^@*%pERuK<8z!QK5nrK~9k+V6lOH1z|nK;7{eK`b%$>y_7q)dyOTpq4VkC|3*lRNt)BSOm7o@lb;K#?YIhF;RxLOfJEZgX75{AtX&^kK6 zU^;^{Lu)<9=IGYjQd&-J(3NFi7{$!t-&Hcg9dZhQkF@HYt`>)a_ky#+!cyrheVg}H z5ED6IEmCv8mKrewOTWYXkarCs&*#1SfBmnnzW-;;7G|a9Mo>+Rxv%?*@FtBYocR23 zA7ZqaZ4V)p5KKSSk?92%54bfm?mG&g=jr+-|4J0N6be|eBa%}(B&A4lfQipgG1xXS z&`@>43*}zrLAiVe11YiJXNd~^U+)le+Axx_Y)|_rG`O+GAd~n<@V2x)ci7EDnnk;( znKZTM7oxnSkOD}|Tomm;o+*UcyGhBAL{<_R^#=HWt|Fgb-2C}1w(u5SKe19O1FJ>U zCy1R653SIyP^$_@Ht$7#iR~*FjwlTTGrd+(6P-M9*gYi?5Wy^Fe&hKAtfS0xv?vJ` zjq$FT8vNbO9y(N6p3`yZUdg^CzHrf?g$A|V)*6M6IK_o0rVWgTg=w9~ zIJ<`kX~DK|G#%;@t9hM{-dVb1H<`*JbrP**N+K`}l+m+#EOr3_*J~IPJVPi#u zC48|j&$|Ni0rG@R98WB_WS?->#Mi-e$?el z9g-bHt|rB4RZMmSJV3lF1qey}v1qsmh?JyDt)P;k5RhXFf^!sKo)KMZ0y`htnEay> z3q&y?kq4;)GzqSnPB=}`wgs6Upt6JVY35#6Uv7LK$uY=OG+@Bo^OC;ov>8u)J-fZ# z?Mp&YqBH`?$*s@Mjjgn_&oV*^fatlLc>;W|T>t7SH?;Zwv(Nt1|NYD2TYvk1{rg|! zBh8s#Ee>zK_a2R0}CEuFqtDTZw~MGW@*yw)y_p!!NMgk>0-f&wM z>q%gfBA*3uYNU_%L?5$JIw#4CFZ`nY>bL*yz2$!K>mR+F&xcZF5Y2~ta#FWMjn>46 z1l8f<>S_-Q>FRjg#y$zOVk0-ZyIt>BoT5Rmb58xsx#E7~><@$ll%GdkU5x6ZBw(G; z?PJDe72ehotB*GqUB&ZZJ*f{z1d5lbY!MIQ!;i!dAx^yzbB+TT9K79G08$n3SlT1W zDfQ6195^GMBj_gsp~)H6d*@Xcq-UKV#Oh)!7nAk-_wOfwF1i_Xvy;}McJbLiTPB`- ze7(B5`r*^;X*ROET~z+6UW2`hyo&pi5`f=Ykf$-+3L`7GEFW`|-+qY6R~Rwsn%jTT zV3pUV$m>RIjvGA6#G>12F-`1XqEKn_ui&tjGmtit<+DB7o2nfL_T9I?4O$cnbC@P7!z-pG=!8$sG;9FaR5rWKaR^8 z7eqa?l2##<@Gjj(j-|gx0_(hBpk|R;P$HS?c+Qpt6?-CFSy%rrtuQDW&5I` zfAMZe${?%a@{qfkZ>7scz_c6$E3MLax`^WeKTX1{5Nn>dZvXnRRbyie0f5wH~<6Oh2bVjz-ze@C0)!xOy-_YfI7lr=bLDESC*CY&h` zx@>j(swH2%?2%hC#>hN!adwbDB_tb?nSiSZvnIm>1}czW7a_}@^Nt0}HHP@x=+D;L zcz#?g0@jqAR~D@!a{R&-A{~wOs9-jq?uEO$;J5IOPo=eMLE0BqFD+jY1-e)aA9`}yHht05jiaZ<%q%3Ff}C zRn!CMK*YpDlsr^aC?_@a@`ulE4ThjF%NP+=>U18aX{ypN+U^S-qKC%ziPgb*&(8RQ zw=>^WnK^c_)M;a|8dk*Q91qT<#H%UQdt@ZquyzpAE$?@11%Lpw*$oZ7V5|^i+_RkQh-~0@R9+R=Rum9}N-gGYE zc7_aoS6Kdq8Ya?a9s0Ik8C99U?d;xs^t2Fsp=2dh%>gfv0ij>lT_kZrA4vhmVsx2X;3(h~oW;Q=IpF!ZGpE#0AcG z@=|W8<7#b;lyrd7fd>#$m}lWCD(rJ!7>E$iGEc%r2eA$TR%9gbKEWQ)XqiNtL>5&c z-6<`M9dp3?{kYUsBE~F_-Iv}UMGUXRp{h2|YA9$Jwh46!g_pnPg>ZEUqo;>F3h{I; z*{h~Z<1Qf6 z5XC7VLqa1YXyEpOEvLI+NE}=FBv34d$U~cHn}OxeHo8>qXfE4uy%|seS3;d_b31P{ zER_a+6M!DTj~R%Ajw0Tve*4$I{l&&0nj4J;SqCVCFNaaC_iHaD8=*00MW(EWP}&o# z5At#dw;hia4KXWu0Qf;T%BpZE=g2ymJ^>;9?BCWg8X9y$C@r#Hd3XR7LG?;l;WClmqaa= z(`v7+5z5g2=p_^U9ulcmTl3M-$GVAk+}A2&7lSuzsp{xg|Lqe{oHET2Hu5}oI}NSR z7VYHh!*kyM+%}^9Kz#K4qQphV7?SZeAGScZn>Zh!GLrE})?%eH@D$619IeT8@xtNi zJBG*jp^jY7{GLSf2f9EeQUR(@7FUiF;XQ(%SwK3A`gB{*n1vDT=nl9&zPm2Bh)Q;04 zmQ-1?mz!5#e*4|Kum0fMK2tF06YqS+o)R#JnZ-hssSdBmTGJ)A(b;AdBPp&=f*v8om|8oU+#Eil!4DXUAhR%vh7z z0clwKgjY0dI)pOZ+VA|6uN@P3g&t7AOcW(o*}a>VfHsg$V&==>iyMftG>$6oMbtkS z(K5Sc1`$v~<(3!~X(q~on=gwGiZ04ZdV?-myy&S}SJo?-SL!VX=R`g)k=O{sogcKi z99C2S&4i71SCxaZ(q(If1s4PuaZv&&%5vUpqNXIgT?sfU237{QJ?s09a}B_3Hfd06O00s=V0qo{W6%7~VK*B7V2sZ1L*yGWNTRlk0~MA3lEc=+VQA z!)d5ly+OvshSHFqJEt>BFata_lcW20L#ciFWU{=wUJl|GJ#>THE{rp3E!!9NeAM*d z_W`Q__XPGP@(qMDfG$eBK7LxfiYu1kRPN4eKl3wR`k60-egJ!Sz}S1=Zue4p)tc#Y z@s;n$dWAVNnq3@LSaP!AbZl3-MB+5rd~{6is$r+Y&DG2c+T(^cJcgOn^}DNHoZzw9 z;(M?nW1v^{Y|tW0xvSR;aHYv~<^70o$tFOfy}Eyrp7r(NTvg{6iyqgD8LlTFn=G$4 zG{ru16vJ6V5}JJU*?9Nz6x4HD;U&nfm(SlEd;Mud4^E$sHS|Vf z?bGhxx|J)aWJ;2ms0$1%BMQsv0h)^kWU*6?_+6xF7TtzO)2PWMjY5nhrZ--vRO3_% z8_CT}l833{hE1O61GIUp8hD4wxHL$J0grA)<1SFsyhzv3y3Lvaz8jZv)d{5> zAu=T)?IYQqqLfG`Cq}u@P=WV*MqNrI{_3zhZR@SDnXDf^d9{w`M_12ZJb&x?n{PgQ zcK>*mG#c$;7fcS9A*=7aMO+ZYUOP_ckY%-V@nkkX9nX$XVxtHRdzqgt_{CUxV;MlX zA3$Cb?|qGL8Hx=Ccg(5iEW~1!82*lwBkVx>NoF2uu zV@H*-!|LvAnKcdWvRn1x5 zy~{k4+4k%~oY&gx)u72%pLaTwo73O_gf|Q(9M2}q31Lm%sGy7#X9n&+`-s_edAw=z z73WyZQ}rN#s2AA;iOA)G0qsRcYU)^IBDdIB$FAuQqyAE}q}vDk(68|VpqU^YoA#53 zd9T8lgFT_#ksTIpQsG5sNe;W=0WGHiTSzmVLBwsVNg3P`kZ^hV6kun^V?66cZX!jKzFS&?*#cCjsnH(tvO`K9v(;+1X7D{+; z&@&jNA~kOq5gJGfstx;8*9?%3_vfRQuC+s?k^Q4>`|zu058r<0<;xe(pFe+kZ%5d* zMx<24dzv#}xs^wKo;m$z?|=BwtG9mk!*((`87=4WU^~nP^Z7I!ro69@P>0)b2cA4VqO6cKJ|rt5uFx5 z7y6Yx(dY zE2OfFov3h7a|UCVm>`vm*}`h|yWes|Sqhg&ydLQ>N^&ivaR1xG`nQMmKbphJc)VPT zCx@5!j_y7<06_}%mT*tTVXR_Hw{mRhsu(Ol{)4w-@lwUGpThojz2V|?h2Rk7 zA$upX;7ZICm}`JUwuorS+Q>=M4%1T>-;|rUvI{x8inEj07@8hnHC6*lQES}!?jzZi zutnYo6!L(fVI`vh5Th!T4W$E_95N{V&05m(Dnu+9mIL?`dQP(_07gunxpgTi#W1;w z>67h50pye`>Or}>Pv)#n^cHEiHK|ptksvHsH!NmZaH$@EtQyw~;0CKnhWFvgqqpCE z`QptdPafPqpQk4M=xB;zy8yqC-?|DUq%(i@@mJq|>*M#YyUyTnI`(SmlZzB%*2Et+ z%7g3E)x3{nnq79-M_cF8Fpw~{JXsFuMrqxdQ3*8jN zqw$W31E-g{T1nF>=-Qhnk9UZlC@FX`&`tpLXvMnl*s%lXt-vx5N!sQmuohzD0B=TSP32 zw@B6OP3G$f;pJMHOybM|+()U(_*}5kF){V!;t)ladPe09cU=<4wRn0+T$f0Bzg$PH*S4`QXC2h;n zMcQAf7SYjZBvpwKUYVIP^AB|B2w#$>R8jqgh|c7{kSCh01~wG*ytMX&kk;Xil(<#* z6{v?upkTjhji{qkRGOkrn)F~n^1W;Vh+R)ZumMbOn$4@FkM2LttRlc>p%%gr5j~4our(0Fug>(>zl}miv@aZXHpODC zDh$wKgT?iVb_cT_+iIYR7_QhRwEeP0wpfN5l8dOIv{Qlwi1;LgCJarDN0}$WN|dq% zE;Ub+$yLz`7}o9=T7931eTv68n~znt;}VQ$jO9Wp(jWCTSV7bwTJJE)mH=Moig(FXIy8r>tRJzG}DDhr6@0 zX^RG}g9U$icNe5*GopIj{v-e`**PZhvL7IJ7m29~doVW6sCH`w{1gXhZNU z9UvBLpfeGD3ID|#f_caB7{l4Hf7H-m;3EsSj6M_^u}amJ+Jtmqn7@OI;`M#rrJ62g z2zu5Yj;5Olfiwx>z#d7WZNEPpEzTco1_PJcnip=Pv251W$ZH8f1GHGS?|HmwWo}^9 zsQU#+D+8wVxEOOMKPbP`WvtBGVf|1AEre4)C6?bh(Rs#HHI;mQKVVGv~ zq$WZpSR#&&@1V&>MmSdq5IkIUlGXEV%d(Gt?Vo&iFiljU_A#s1iMCVOWV2wzFfBv^R06!_1pJ5p>Vw6s zKRSK!>Gk8s&+jb}rnJ*QGnsIQ3B!GZ5`%oP`PF2SvBdARTR8d?LkGz%weGjF0MFDo zs-QWhh!gM!vXYrE;Xf8Yqv7&wHQDs~7V3VmWfhAaynh7mgW&Hm0p^_yJDn-l6jE(z z*c1y?1dbzilQI|x*f$<{DKYB6VZfRuY!ZOmj?)D`gR6jTtXOj~4QNzN zPm!ryYC)GCw%?4~#Pjj}^2$&f1Xkbx5EmJHS`ANb^sR6G?rQ$aKbSSJCX0(1Is)Z5 z58=&G<&Qjk@att6w6=+2g*A8_D}>p=O!qowUT>mQW*5k8p*0;2O)$M4JWyz|W(&ef zMQeI2_z0{<_SOQ+Hk@&kmALH%R-FVJ&#OTu@6Ebu3G2hKi;E01JRAx@KQ|^+UeR^l z`YGP&+qaqX+9(%oca@j$Y;m~SC zev=A62lcJNb3z4vz_cPwnG=l&#p})DLdEL3{*WQpVx58K^^oK8^bcEEJC(`lm8>kH zek2nN5j-dkUgE(#GJ@#3?9!A?Z80)Iu zzq)KnB1M)O7KKCHJx~_dbMHIWOv|T*SLL$?nsXa zFjr=WgodG;kKuq5Dy)@?QcdrJSMSWStdbY;22isJRN|#$iupTbF7lfKQKa1HG;5Nd z+Gt7kDuZ#{CNE*!Weh_8ZRpebuogkp&ht$sxx*Sts!gW@qyO@&eKQApg&8ATU{+NK zTE*Z>99ixeNZLjPm1|8UP&pk8292srikRy3ng=xrMvU&NRX`QsavBnkP7WuV4sIQ^ z8DQjg3)kzQ8zu)J`+RnPb$`-5HaCLkvbonh{F0<6>t#_Mt>@bP#KKjGU@0=Yk zm%A)mozB|mNw8V^&C$^+*_uvv|SQ#VF-1V|F_BN3+BJU@@6(R*9F5Ml3BC zDDDeYX3En=M+Yt@fddD(OYwvZ4KAW1v1#Zo{Ou4ACVQ$5c|}2s>U%NmJB;2To7WGT zE`BZ|q2S&qgh|&d_S>vNKsnPirP#XJ!tGbs%TV7JShusnx~b>*5_$XL($3c`8pews z{K_G#Ex!4D(q$x&c`1a_<%jTEx&el1ucDOoPj`zpJlam!#C*c{zJ?s6UcYm@Y6O~{ zG}*AWhGa4tkr%jJ>?F7pidELs){uzD$iW`T?~V*75Ynx-R~1Kvu7K5b!9+c8OGqwS zQzY`lwECN{C|gDnH%UWim?&+C7EatUuuMZL0jr9C`Iq`t869HDZVMYCxU$y;!CdUm zg^~ULKdn4WIju^IhpMr@k+K#_|JYp>WWt7JR%moP1; zRc&w5>lq4Jv?K^LLW_G7Ess*yc%|`LprG|Ndom%L6d5!7719HLnoNPgjSChuUfRZx zP5w=VRM*JIUwr-S^!)jY$#}&!b$+}ajfRU%Mx=x1dorG#_9G%0)Mzq_&%gfsi^cWZ zZ-28BBxC_!9nJb<6HuNUOxCREtr$&`b6}xC;8|tlTC}XA`&R>1At4}FPTFf# z9SR19Qi-~RFMj!Z|fvu9X?8ANnO1W;d z(yA8&A~2d-?Pl#(XyC}KVaPzOXhmt7dDUBZJwfIGGhx4q#+l9s={r9-tC&1!Y|IQ! z$N0Oy@h}z1Mlk(Z4AD*bF&vn{wIyP}cu#7K9HL)(_-GZW1z~xA>P=pR$daORwdExe$$s?r=h@GlojGxc^9cs~8?O=2(J&;3R|028k zy>EQu-O;?$bmtFuliujXTk|2#4xY-Ji5{B+W`3gfS7{a#e?$^)bimt!8AlmXgfx|K&|hRix-DA;y2H(XVZ_~S`J4Es1K$I zjJe?MuwxFlyVdr5gr5jgIMxfjgBI<8VT9|-OnF@0OPJ#$cN$MDT3lI?*k0Ia+7vR#`&d-67h#~rwgMZp zqm_cUKK}Hy(?r}@Cnu`M|YX0Ez z6(0$m5yh%R~!-2KeZ-XOlrfTw$MetYw{DU9_R|R0xHz zR6I3&Z;JWq0;kvf@Oa%$heI9;lbmn4P$PtyqP-HEr8FdM-Pfp)PmUI2SIRSP$huur zEc6v}lQ(vnU0!4~awX=F^}25|(cQ22`c41Hs_e44rUoG?hsOPB^fKJN-Vdk+O0MZFx*&ucx z3djW4xht`lQ@9~LCrMP*bl>s1?IsI1z6P&Gs0YtGoMYgsWLAihl`*OfIH=mNZ5X`* z6|m{Y*)V(Os%slr%j-Z5OM3c#K^CN$qCDIz&{vpMwfD*6$LnAEzGJa+07U{l2w8x* zQ~4oU#hap)Z9);cn_8k`CY(I%cCla%GuNRQHwTjd4hcp;z6%joNDOWV5Kxitm6qrV z4F&E7XiqvHCN*mj#GTABVG@sxvc<{c&TyR}eUFP45@-qk29<=k_883k6ck(cK`HK& zEdt*o>cg4B4v#T9YFd6c9Q!&VL$(ec@ekuszc-#udi_Bkv2R-+Jvf`Ae%@|Z7xy23 z@bMwHE1^c`GIx#AvUoJa?JC}>d-}7xnL(q@`qPC^=XtC3ili_d%a9zZg4D7vNXZ(t zKqyKPa)*zu(z=)W@@?!OA_!P()a`LiUpLFffZv60bo&V@33{7swuE=07oyi9-+^ly z`bnNNPFf%?zdaI6^e`K=tt27R!4%(xbIVa{QpPJEeZP7OamF=W5~RstLT$oW7&j_W@pSDKCK!}z3gvKT5t{B|dIVty z%l@d#h)HKktPx9A2Cy}sp|`9v$3$cvgLH&g$|nKBiV_lm6(?0R!{X}Uxbk3@R9Z5A z2~DrT6Ql(yl|6RT%sgcR8Z|4Lj@ooIXj!!e(KHw&>9PuH+F4Rqr!1ue|ZoBNE>jUZ7Az^cr>iv@)swNou^Y!lX;XBuhzH8HCqgIz& z>|=P*@|_gFRv~=2BzZDrDi3~Bs&>1l=UczV$BLUPG0@VAp$)n?DDlLfkoKZki+hOx zj~@VJ&MOuoIb`xmWlZ$CgMC#}*j5g<7gINewz>(u!8WY{SBadYADIly3;VTJtB6!1 z7xx`C9QE658&x@VSshKMV@EOvz$n-YjPN_o^l0P+{h)|eXkVr^PTl%}xjXV02bS}O z*Fx}w;7(V14HppWNEDx9GYS&hmW>url8AAx1V6-TGGyfSE?3nM#xD3C9H(`3 zD=|7veZD9j) zv}M+7W-pP_BleXPAxde#YPvSeECp8p@)l;agkG7LS5?Kt0_7F!1YpNRYAt7d%LP@) znv^uIiqiwCM`d4Qi{RGEFpBs+mrw}9xX4vdSt3BD!w~OBW;>#I6^1|CsG@1qC>+JC zwvOybE;H1m%lMq=ml%&vd{(0pj@8><)~?8IhNg!Ly^ zG7;@+Wj*L2bB@HB5x=Ie^07m^(GsyH*+*_$*Ff?V!8xEC#h;ai-N|&=8;obO#9*N$ zwZHarXD4rd^z`Z28sm1Ej{E%y42jVQ-$>ujc9)-i`diP}W9D7!_dmZ!_1@%n+o&6; zTftrNvO&faj)-89pyRN@3To9}@A%@-#z$O}EWAOCv8dg-97+Z=$ebXMOV;=-YdPFp zuQ4uS4o$UVAgLE~PZiq8L911T*>=c>iSMfAf<>z5>BtByOCttNUb*a;CeZi;Ema!; ze!8Rzs}^GV0R@%m%SJlM3@+S7CK_@#=@RrBmr>LOEjYHdT){v8?Af%}z_6e}=7Hub z);Dh7$EVCn10_9g4kiG1T%fXW&slhzP=l$@csrTlAQ6l?HH=)NQP*5U4Lc_%W0l@Q z09e^+F_Hwl2_`XcX)nSQN2E>1k9#_a&3nex44`p?^&5lFtMG3Y!78kkOp-LPDa#}Na3wKc(}0EYl7HqznN zWHD-4hDcB-@Qp2SGfP!uNx~_gs~)hO5YsAgs|x*t@VGLG%Og;r>ma5Zy}pRQ>p=Q( z#)A&86xD`EX8E+k3f>0peSQ_lrr2L7`=v@zQWZ{LS!Xm|Cm)HupLmftsn3Sq!ZDyY z?7yo4!g)?9$CV0_dWoGJGeI&%4)|+@daIjO!ETj`n%_kU2ziD5>2f@cm~hl<+1+*b z{PSOV`Eog)fpi>9hx19Ibr08Lf}6tL;fvq??f>QnZ*dF%{Kr51otGI6j3q*ITj>OA z5{c6^&0Vl11`iRbOQJSVCA4&GWB0(=mP#ff)%@NYUnWoE zHtGl}ZNwHzv0!!?a^w$`S%XO%-x6kc3H~ac`&>>ogfN$C#$9w-pcRXE-q@2;bH8X~ zz^+(i)z^X1xLhDqyQ7|$w*yA|R(IZw+KUNlLvlgb@#yTvE8)rY*FKw|<}z5!V4#)| zk`#h|DD#dK5|RCq)6~lp9N1c1Kfxu}^TqR)++{21$`1LJi(- zfL?Fkl2KGBn(UJL&Hj)IrVZi}gsPHp!B}ntOu2ASl^wgD*J)7PBw-%cKq?_sZEk5b znT{K+r7Kc?52R%N@WD~6(KxelrFPH)v*K*;-`_^$iKdfIB%u*jEwt>6x^c@O7>B*l zB>Oj|*+f92H>*J#_RFZNc}Z}Ria=iC zhCOPv2Rg%Lz6!(xXd?LM9G@CmD&QUWbesHf21C@RoP5UZZ0_J%%W;UYkQ)(2JMsoV z`4KWon~4^`Ccg|mfZC2T8nE3hH!v@8WU-gR|ixLPA+iVT%`o4RoH>a}I^?zO@)hEM>%S zT5!bg5JieuS}7fM1EL`B+y+Zk-oKp# zCSf=F(`J=%qry-rS5G02+^#4kscwZ-bL3&n=6$|&fMP~IXCmC`q|Z<184pAio(}5g zaw*8Hyoe1JIV}5Slo=>WYoKCKE2tUkeF`3drvxh;z$@S(t+e~yi0w6?5%&D3hWJ+m z%?$az9rsP>M-HURu$?+^SoH=X*)Hl@c7<9nGK(xlb5N06j=;AecHk$rjXEWGMNYTt zCYLEsEs9d2`$hxA?=pj+a-EnJMVE~}gVB z8^UV<{llZQECS_=Bhzoz3m9o*nb064R|Q!^!^LlqzfIj+Df^jOroDl4sVPm8>oMyz zRK>*|DV`7UXh0g>N0zPGb&~3IL4k0(J)3ryG9Vz8$7odPI=dOD65S+jvPVYh8&l* zH*eirvr4wv0pzHN0BQt3|MNfk;_GVzssq}%gxmz=*(k-T4F={_thQ8L{>0c5TrkQe zo?))!1Ij4f1UYYZV>#_=R5aopr9wocA!>avLb}b~2z>^7aj&-FdoKRYLVyN4?0(c&u1R~m{DI4Uv(NeVhv(Qa~YvPhHM zO85y7=UhI8QA{-}nMZPy*m z@DfsN6-;lY)1Ol1wmh*27cMX^2!1kd17-{r)L_gyIh{gJKsUs|RNRof1jQ9x$3s;$ zr*l&{Uttacc3_U2&y%%7+;P6lvH^1<4xobrOqQHJkPz6&ggn9>;%=^jL86V~8)=lC z#PCUb2AatjfainLir^XX0o!}CLSDr|4y{KM16G+K8P6EQ8UPoR14#hYefIL{_TkHu z2fy;8A3ec>X1c@Uc4)?ZYJi~WCDYaOfA|M~@P`kU!payA2k~say*fR{Jpj+^ybXWWQD{2TEM84ocG%&~1PF%PQd;&7}MtRN&b zrD8S>0u;Gf*_(g)HCn6!tJI1`W(JzbhQ&*vP=RsLsJIvhErmyd6_?W#9;pIe-ThMJ z2ofQm??JvEXidf?F|dG=N_En3CvUE`Hb(Rt#6$0`XCsT!MkU=suj~tMXw~Yu&~=4) zE3n+wxCes(c@id;@n+HDVqq-_l7Qz=Cz8!weRy~{I_wsUlo*;CGPC8bQ|+)(<*+vV zcsS1-NRwtLl&%r!FJ;^%UZjh-vNvu@FWg&Vsw7$~Zd0(zH&-18SGV$q^;U8&aLHo{Hk9E)I9O?&Fda!^slFvNpftdZF43bS{y)6|1CZGzV<5 z;2t-r$>c_F5_VTzH1|jWgwO^fG>^W-GRTL?jPoiRMa5hD%p;K55rPU>0P|#bvC?&K z_wwn*vo}wleec(P?G?By5;12)Frd|7BMtQL>dD!&ci(+))zyR6$zLBqRh8$^K9x&o)O!rz~B)($qFob%=sm-4?={9jKpJ7wIEozbo+Ka@};(J zcRu~VuM@pVLq2fh4E|Y|ffx?zymQH`Ljus*ZNT05vrfmwVTc2+a7Xf+u4oLa%^6c? zvG3%u7AapmG-4Y`9IwRn?)I6vi=Txl4~)s)kZ@wQS9XIj74spPd79;8dJPRGg1j~0 z^YMn24HiKvGL(o)m*u!&wvXB};qJUfsTZs$Avcc?h$oL#k4V3*>P+%wTS1ZC>rci} z1A{CzeyOB6z4^%m8Q1%VK*J&lwlcRZ9JYYqaa)UP-i93H>(asw1mJQ1iX_-!+$P^}>G6^Y0nB^zZTkFJOUxYHq%8VlBZbNS|dhOD#G zX?M6B&MzK5d~$C)TjM!=u=RN6hljg(e*OD@^3}7WBcj{rz!YvrNr4rsH(-Su>g4iGp2CEL@pTT(8 zrH{tl$0x(g&LYOca1o+*dsw_&;8Z1k$9q+^SkW1T$CS&CLrxhl%?2V5g^&P3ufn7^ zS+@fXl7+~Fa=YCa?KpW`4f4|=N61=?U}F08lY6jxdJ`0FP#z}d$3q~Ps@kv^MlKfX zSxdo@q)Wko-UdJXa5LPi3pSW9to?jMuk-4_Z~Qvq4Z3l$?-ckzF%*DEC;mgH#KMeq zROA>u5DCeB)fy;d(cOkMq*!=wV;pN$gb^mdNXd>P^fh2GnX72{a_bW0P&sutyhQH7 zAP@rccGH0#vwS%VV^dVd)X3cJBIiOw+``jKPbaqqDZ+;euNlf*cY1kmvwVDU`r%gw ze6Wvx^@pFm`s9-b*Vm69ZpMd4^T}$;a>b07yUFq2`FB70pFbT8?!6>$;uvS)h`>BQ zh|}db0Ws~83f1(-*Jo3;BC96=nFE5#Z#?z%iUV`^`x#f?qhs zwA1ARsbRiE??H0u&3haKG>u%X9dc1MY@ltBD{3mG;s6pi*mE6w8Dnj|DuT9rs0HzE zyK2dGyTkguA>(Xd22x?|;x-+<3d4&5G~r;(J#tJeuy?Ltazoicr(R(+$_-}sAQlr? z5V3oMVz9q=E7v6MY^>4Kxoxb*8VnU0mnJ657a!au46@l?ogEH`gLZeGqHH3ZfPjSI z(fRqr&}nKSB0p&_8ELqaiGz=tuQ4zfpir{1Sr#N=N*;DH;%eo;oK@;nQAqN-M@V0h zcmT;t9kzO|>W@+h)w1Y4EEstR*NA)!QkbT)2|gZdrK9p5LLW@YE13aV-2eln)F1{C z4$6FxJ)6NIx@ zJ<}fj&R_rJCx7+t|NQGe{Nc|(yBhVUtE25GYR?7$r`nr8<8_X_W36lk0c!h9L?0Q}l>Nd&p zq($H}MaB;kL5QG>%~2OwLdR~Y)c$+LX5i?EP2fFnxyme&LB>XCkm-dHo|Q>d?=pj% zz&FX|$Q0_&+AL8TR}Tj_V~%wv*8H_2P1Av68vQ{;5=+*?oq zk?G*yM?i(5DUo$0WS`G*R%2pOt4e1&cB{;CVe*YSG(>}NG)gGaP~nsMKIymIDv>e6 z<J@Q6@*ZT6Y9D2pClcoJdNVkJBhUamAuh52#(=B%NmBcBxRMW7+yiC=K->U#Y;Lh@`DccUw>U} zW4`nn!7;)bBla~yn=7`Uh-Pn2ZT>*^$sA2$08W-G?rzN`&Kq0<;@u*#Qn`|1&{7r} z22%^%2^2M;jj*N>lSj)%HChClh^#PASWH0%av|uBSi&(7M%}XVE#lPP6&^PWPoj*_G3uEVij-;mqR@W z4M4`__;)d4dvFmnsnVW7Yy{ zfeL{axZ@z?mZ^kE+~WtmBuDnv8%WK0h;EjyV)4o99|Z%>ZUENE_jXc<{gL(f2j z0pi_80=!C8G?AaxBbSU&E|)w1;wL}(H~;cCPG(2--9|7?+dE|S&&;R=W`px0fm*;%~6&!4^{eIRB&FJ{} zdw=rn%jAUVZSDPd<5)vROwmtyGlW`N$6% zmR+uqBA4~k8DW-je=&_KECPwk1wsV#jJgT2tV7W7sNLc#n(GB#g?9>m8}v07A&uMq zLDgv~={%CE4JzWOGhPkIzaHGZ*68*PsoOzKU^;D(TFKbCS*^v2=C#!EqE$g>EX+~% z{P^zKZnyFw*07-7r`|ii9@G0(1qrAJjx3OB1SfMm4A$vfJ|*FDlqsl`5?c&eHGHb( zLdmuZl3i(tC=3!k$k}SjfY4-9akK8YtFXya5PW5u-O@6Zj=e?up{A^XtGV` zm&x79Q{B(5TV~vpqN7xn!!C4+dR`K47&=lWn0^aqk-u7999=z}IWChJQVTHADg

(2X4G_2IH+{yqcW%y4uy7hdHHL}b?l6N*&I@bxqALxW&YDq||LKo^?=Sw% zcTVPyUu~U6boAuiZ~o$Ue&Ji+`qsx6s|jSQ>7eavfU;W@dPEii4Q+GDIu1M^S7<)Fz`=o?PzUAJUWQ{V$0FX1tb;P0s$EbkMfR;0y_+3&qMAnXE_*7lgs87-R^g2j zJboJ}PFD~Pj?d0cpWH{RJD>IpebDnv64niaz;QNMK)jI`?lt-+ZKcU5YkF+dR}0E+ z*&ffeJi~xD?$Gn$jIc=aNmr}YY_&y_fx1DrY_p6ojFqR`V*Xn$nMo&>4+y;_Xp{KN zjwkk@nidlaifxA*^)-4uW&z9<>9nW{sAJhUAW@-9Km`qyjgcCgFW#)keSPqmT)GTi z>G5k`tg+S+vwtVSV9n&X3WmOJm z>&u6mu%gZS_3-W(r?R3HOCjv(vZfT+05hCorP@Y_Os#{K<;1T@kOz}Q!fcq=Yg#L$ zm&YbV)H*Uq4yw&aG(we!{W6Z5deHCS17l{ze_sFcm*H?zxKg@uWJ$&3Nd&xxCxS+q z3R;Cg)*YU!a3}rnYYo{FdTdS>irMj{qz^! zdFO0Fo>q4;Uk#0fttX^W2E(4mKKW)<&5oFQ7t0Pr4uq$y4p4FOt!HO*KK-eWpFO$^ zQBgv(SFTXeOuT%#G0dd8H{Y##j@T$tp<*cTNE#zjs~r#+=J~ocUTzhgfHa#Ku34>v zDDj5l7U5ov@$u>T*~xaRQveeSbvsXlpsH9JQrV(T)D`hfOg>bwIBLB}#-Z1g7$=Z1 z4WH4A5Y(ZIlyU7 zv@{@I#mW_%m=dZmMieo24qL=KSCyFWuru(8DnMzdS>5H_1|`hZ@Ww5MS8SHW5`@$H z`s=T~Ca`)yK5BSk=&~^DGPg7Ed|4fgIT|n`{&^-{3}cxY<0{b- zScafRfvC%*oRKP`R{UF4o-rX@W%^NtBf)$3u?YP4rbci?m#)wDY!lbNW9*qV{izQuT6 zGo0brV}Fqtz-~NGvE{y6se<}I91Ggg-<%wuo*d6+D&2wNK@|qKqH$L59Mq%Ha?RM% zWv4B^mAux7MkCh3GF`6DJPW!y%t1xBStFA~5(qt;r}4xEp<_99c<_6LijsBpCi+Pw zu;b-2saJEavCQ2U7ZrCHeM^Km42MSX%3mB0PA*4~v0d%E74$++=38lUjEEK;z5Sy<_^r>saz+gOw7`UF*!P8kfDqpX zJ3O&K5y`VIuC5-P8PHFAr&>HR;JzT7#3W`7j*pK`}4(E39yWssL8EXWO`n407*v%2osrs5dAHgols{h^YW~E`L$rS8o8FT;;s_QM+&= z1>Kr#3V})xaZ22mn8#VBNOg!`T(o5hCoX1DF7R<0u=cC?9LVcZ5GobXC=siRZKp1g zOxJ_GS>nk46B>VuQ>CvRU~9jzzh@o2F{g@uY`wqCyb^8Ps3bmq&$d-v{LoL|6d zd2si18AsP2eg4be`_4C$>S%`@m%JSWLfxf10+lai@BQi*zY9 z>a{6;lR@Z@`d*fGTNrZ&X$xm2EMxv|&w;uwap|c#6}{KTFUrWXL>&C;$?M|UY$;7po>YvCf8BY>S3eqjzgLPSTBviVn~dcgZ~d3pzM-E z?IgqYdcCV2gLQPk=Q%AGCUZ1Rm<(hXtv@o$SBC5kP<}kSIL!w!a#?J7N zK}KuRRT4E=2YiWea$!NqIz9svQSNd!osSP6TwgqXydnkCn?70R6rpnh#AHA*iFa?m z{oYcG7V}2cVZB+-QcdP+3Sz>-lh}#->j~+tXs0J7E>M&dgaL?6)lNT>wDD*qauYLd5{?V^Z zLwsuO(eAxp`1%glRyJRKWo@238IKQp=Wm|fefrTy@7|5P$z&J?OxuZ?@H)GP$lKOe zaWC*DyWQQB?b+qkB{-^}N2mL>uiihZ#pl2r1PUrwz!16p+S3_sc6)t&dbnOKpr>rm zbjDryf<<0`bQ|=90G1$mF=Dp)&JHvY6v9;y z$E|dHcD8JKXCJJ1#PuXJy?zf69Y_=|FwAqq;}FOA6<^7*H^PR zS;KbRUOzoOJ-s;DQP_>{-XlRmUl_#W`I-hB1qeS{e>r}(8kVRFq_?_nKhiODp&pt0Cc$m3}b@$^gV?+{%D z(ZwJe(***Nm<;J;l5sbVhmmbMD4o{JaM+O)M6$eAwC=$7Nwirl69()A>o9#lIno}5 zRjM_X5qC(KRx5XImo&dKID6T;Q6%^KFyFWdZ5-4}*xRyYJE#ebKoIo%yls-bJ1y={%WtR5hLI3o$f#@2dZs{0zg8xwkDT>*f5o7u7-LDXT%CO zt+L!69Up_XP_qmC{nWxOGUrz@@^DF44yXXhN>$Y4=-EfF9)bJRs==zwVw+8mtcuJ) z-E;izXk?V#_1&0RJj#jrENRJAqt!N8VjU>{ViE^hfz%l8LoQBqNAy~CFMt2j%Wk>=(^J>OU3iKpWCNH^%22EG0=MO-+$H=nkXVFJvy+3L?%{eBMs3XBfCaY8== zcy$;DinvsGgH=Ea0J#7Z)t!tM7ct#Wx!NbB*fkByQzYF?7b3!SpAD9iy3|leAEW-F zOL$QRLc9fr+~`nsqZ9Sfp!(CJ`RaVt?WH=(9N*Va<{*s)_w5HhXhZ1vO1-~M%=va3 zN~V%;PR8qd5hliPJ8rJ7vJeWMr5A4PS0KFQ5hO}v{JM?#i#LyHO@IT2i;0}qX?BWr zU}_D^2=Hb&HN0#p*O)^&(#Q*y8 zmyn$cjmsO13plj=`IqU$_#32~2)4U8q?8EaZ;3y<`62FTadH`Q+!jkL9#(eySib2# zC>NL?D5OY75pi?e1LVfw!D0{SK7H6hzyNj_nVAX8y=m|m?Zegyk$Dhm*P9VBF_nS63fCyFOjM`fT&!ek)y`9?tJSJ=rdo6N2M=^VRO|yKkMs z>>uBK`1tANDdj4C_~z=~+3{qVk#G}F2hHs^AVxNHkShSW0sh>)`^AsG`EVIayulME z3}s%jNvA_;U6F~$Lr)Iu4$K0?NxIm{PXzK?<7% zkDgB$?`*cp0`_z?on)j7UtA0f({8b>YWD~ICNYWG`g}PSFV8gS2rvRlS6{C>Sa5_} zj3_;nHlB2Y*4@vmhLk57(G9wb?RqlZPK1G_5=DbZC1@zNnXWXv1TU6`M!uHz`xe{! za@m{p$<3Y&-Q@E5^{Ts4gt(zC5jH`ehtHM8#D+OJuMjBsCHDpr7a9rzp6OH)s z*ll$>r8{*G7;AR}Xz8dbnS2%&{f*N;zTh`%*T6Rl2EHMosZ z(FtTnratma>}f={iccT)x;vfUKeah19XV0;njzBOroRFq$SJkmAr1m2fc@m_~__Y|Md5N z{15)i|NOUp{SW_(Z%&$~7q%z;`O(paK%&L!#aEu5Uw`oQ^kO|ZI@+Bao?h+9PX+(q zPDYF6>6`Dq{pfJio$c;FeQ-`{R;N1zMzr05do?m}-qr5?F&cj)s2FW9z!I>nJA;pY z@cDhWZjj~RL3_fzVzdXy-q=Djt&AV8mAsmEIv5YS8Shf+5~la~_>J9@cRqaY&Ew+? zxU*^03MwUlZj&OAH1+vzeRSli#90*CR=1O|g&!x0jauM<67l+E#ehoc&oAerARW&K z5zmrGW?a-7hOQ&n9MBzvnX^Jjws>`k3gC^`bH=1QX3(*tqzDzkLv1#FJVyoStMs%K z4;7m6$(DDKt)!0ccz1;435Hf@v-%8bpK z+IorCu!U#4s*PI6`SxliBYeCUWd9K^!siYm6=*jLiqJ6O!1meDGaz`5p(f~Qm!+Zyvdhz&@jo(RKVlm7V&&>T!9M^EJk8Tt4)$p z1M7iV+AjsYM39@Lp!?o?|LP}y^>603t7E4ez0182N#Nm$ol+zb)z4!dh z2Tv}}p1k?+>g@RVc-AG?chVYUD5|Hci|4OiJy>?K&ErSQh-Fl|JDNnT)!7a&eQ1@! zt8I)H33+A^B@hvaGK7$pJ^$vA-k0ds00|x?xXm7|7Zg#P*MsplE-c9xC$t69Xn~R% zL`;g;{GhRZ>%I5id-v_PFNYSc2up1^3Q~FGU4ff~1b_jOEfZpvjz^{)g{I-y(J%(E z#^}FAqF28;xO(^5e3T_^-ytOkC2P0)&Ts!`53@i*8%)^*p8)I#MKVGFkpFk~c$)@; z^~ur6>3rPvNv$cDT({3#i6{Y!nT>eT82+}LY980EK(0|mHag>R$I=yT_uY5K8H4J! z!!oBJr>EQT5L%DON?~>z4qLFh?{5%G!)clf`n^tuo4J-8k0B+ZxR}h+QN}32_m9pF zSN%Awmtk@SO@u*+FAEX@9ek5~orz@4}mn5bZLH7JIB`LSy9WZKus0DwLIR$0W?JxZ& zU*byThOMW)RuVNqT45!d&id?~hP<~1gDxJ8@nkfa&L#sEARrb<1{d=!&g)IrMH_<1 zlb@N+5INl&Zyx~t)MU<31vHf(cSegzf><>sHe~J? zgaG&26Rd@^qjob&*}4yVZMU&GBZ-hL6Z25lu}G*BEXV++zED@xG5153p=+i3i$_xj zskvJBS0-6lU>PyUMSQ2|M6wT0vm`mWw;T0@kCOaIF)(B% zShH-D)Hz=HKrI^?#SfLwD#Nb=F6AzAaS4QOGqh_gZMcnKh}5073t^-}T-qs)1id@s z9#&*y`|St)#Q@do_;9>9>ay!+u*=2NXfIE<>-n_b51LtoTzozrFk!^egd0Up+caKT zyM2Cd8B*l%UhD*l+i5~Lum^+dd6}iH3^5yha&JH+Vv&XV&3qFKNPX{(g6YaMS7=t; zcIIMo##BJci=+2^z9Jc|Y(ydh>FYQzHSP{Z_*9KZiEm^qw;_CS#c@hi4SW|0mY*Kh zpLvZbEXVHka@I+Zu5;`FCPrv3;G~X5=tgpQ>9sJpA`uDP!#^K5zcJ@e$gXWo6Uy{eb$Zgs0Ab!!E!AYmjV))2xVgNIdE zcmNwCAZ%kp0K$%79QH6Cj}Xi-^!(mzeF;Z!TdJ zwmGdRO`4$$>%;2|lkw{4a6BWjityjlNyF?n@Hg{KgT8NiIIN?*aXC|6Ho&->QpHc+ zzL}*_MCNPi#qoH0*umR;r^NVaS25!xah*QVvASCv(n~o#qxVR zD%A*m4Y9DX?11Bh?yQye$+6k15R2JVG4Ej|pkgwm1b%nX)>-G}FX^^5OA}^(hjg}MyFAp-fQJ0XV)LSr(J8)Cku(3v=8$>>^b-SQ7N}QP(CfA7^ zCx-&11IC(~Vq# z<-on0SMW#SGjQzKhJ1B_)2N0t+PGysq=MXJIJQBkz_u+l(f5a)K)~`QQKU zo`K&zu2xY((o!#t`gS}&n00K6_H?{Hj4PyW_u5@7S`fW14p$KwtmK>EZGvl`1zc~e zZtk866}S?hAMX2(kF}u;w+dONQf0drg(y?0S12Q-(Q$C*-~iC|H!aH{wk4LVX}6jw zTZ!j2Xk$dF^6fr0B|t6F%@eN-Rq54_ed?_T2ZsV3%`#l)%6hvu;SPkLO-eu~ZYgy< zB3x7)O^fVyd@Ak~8v#70S|#joK$etut?t2bgUf%z${O zZ+`xt{qj|e%UXZA=!Jx^@_RvTJ=&wgQEE3U&BA*D7!a1&2{GiJGXog1P>X#6{7!PFNYGICEo50e+0HfWXnRu*8Y`*i2i5 z7_oGXT|g2PJ#?{~btLv@0#0CDz<0DrhmUy;AyCAwZe^XQ3F}}_!Z_bao_+ocU;XOm z-}&-i|MerEZU?)d{&*N8WF(n52-4JcPe=1%cQ{G>S>H13XgG!YqS-^R(a7udhU=*&B>uRGs1olx$1B}_ zay$-utCJ3R}PR=pls%~SrDQu`(vcALFeGFr|DG+FxSXg;5f zmlGBYAka6IhiET(MEeY~?h8I`|R@37TH~w;-=- zQXUk>k!1X!_c9n4Y9$E`d$p;ONgd0u#)u5Sw8#h#FFKCIBb!Bp1ki~@a07D}Hqfdt z?F60z6DX>c_o3Uy^@>5M+*yoz{Q*TfnM`K0IbSKGRu|hgd7q!9>!qEjh!{AL5C&tG zZh$6#pH9on-yxJ-97YHW@&(zcqY0!J!}+#~CpOOkOss-p6>md{RCY^6;x~*Wnf}(_ z{sW5EfB2hs|NHBZ2bxJTO2(Wv?LKMBeIjzFL}e+evwr2QtB2i$gsgFw*R^laBT{E< z&lyXn>-B6f=thQZnPsf!qI5b*d+VcRS3&`YX`G8T5oxK0!dB8S$5(KNEHe}_|Jc>N zIslvB0l+Dllg2&|6PjaQ4iFO7lL%ZR3kGRjW9K2xT1cm-6P!*_3qcAZ{2UUKE_4PV zgDqJp*ku+`93i$+{g~TfKIx8Eqv6R>Yea8l^iJ2Ez~Y6XutFCMNhV00a$1PY~aIGgo(RU8YJNx#R~()2w^ z>)=vFkkQAvh zTpTE|a_$B2C-wkztedm7qGn(YLiZA*gxy=sCZh?f$k}4Cn9Zg$QLdx$Y!pIC6R3ee zl11Tfu)!>#fM6Z6*UD9(5D~9IwQ}=gx8UQUCH`9BP|HW5!g+!LiLrNw0ZZK_8@pmN ze8eC4k*|E_M}FgXzxwG<9@fQrxjpvZ`yfgKPfQF*oA5@p!%tv>iS`LpX*3-#QD-r; z85YQWNkg3#kNJETBV<{`He(K=DagCK=cgl+pzwT|Fj-QhEmhd{f;Uwg#CzlB zqrn*mcJiaZYwT5HZ7*xm^=5CwEn)q~fV!)T$OnkqxXg)%5nXOFGRwkTG=pO^2AMF^ zXwN0X?F5#Cj{}mzW<+wMZ-)kk3~I##*FUn^3@MQ~rzb!bT zw3l(*?H&K{KY#gzeTJ|=V)dmR&e}n`nhoKe^e!KC^wF^0?yhGi!`0;kkU(m2fB<+2 z1&&bvgJ$7@+Qh?1!g{>oc4HrGgJf|mLO>17uoVnkgkccUo0%7G@9$%pO;wsWZPl|) z1ui~8Pk1_rQ^KfXR}7PcfODcI2yLk7+;Y&jws(#BJCAz7<#|vpXybXivPJTys4=o4 zsWBA(Vwe|;QQ6x%hzl zh$tHprQptrKMlQ7F~>X$S((qYX4!zo-1{P*3Jn2s-LMx1Llnfj1v8R%Mb@FiaYWOj zFrYi8CaDTULJPBpxSjBN_)b3BqNrlF@5b| zHal9)$CIu_-`lfsEmnBTAi=Vdz`$7}z`&Hb40+=U)mEbIZDWL-#dpahaJZBKP~wH( zDLJtr>9OmAn24<(8s$> z=uUyL5MJvx8BO_Gdj>_x3dUxm)d+k9Z+kFXXh|A4Yh|DTHu9)QI95tT%&`_L7q)gw zK|Dgvx1paYQ>!mB$%?FFfo!j+l|r9)`EipRU6bQ==h%n_o-iH~c5 zV7#FL$UAc%4m^zB@#N}9fBB~l+#&8o>4P8m;??+Y&NNw+ngr$Z~)j&$%? zyxkD-+U|0_m}2rJ<+t}L5+k0e*21v?DJQqvOmNo1kXZnq|s{FDMqjc z?(n$=@^!M;eNrazLo7Ch0%d#GymQx+h+2V(t`OfToG4f=hzKPBS?(D+ z0Jf%rk}V`JY)vs`hqk|KbmwUoVmGmv5}|nMIvW$1N8|V zf}pzarwN3WfA8g)0$C!K>^ja`a*I@1Oo{T^!8&Xc9|h4Rs^Q2?#VhDEmAT1uhd>>YU+Yl8tecI3ls}RbWng4n3>S z9>KMOB#u(LAUjvDVRI=aMwI(GtA(j0V=Jygu$E}lg$?Oufs!q27BIVSHFNOHJR`I) zrf$H94(Y7|7*>Ykb^AV&!ltK|=p@9!%*2G59&`lOEBp*%p?wyQI}n-AsFBfpJw3!e ziu2yVm<=5Vo(xS~Vk=lY5F=kjqaTRz=vQ%XIzMV-Mo`V% z-UHCtCx6NsPK`>VlqrQnTi39PmE>B*HX2A;EvZOUdO1Q64-nw;i^>G6qQ2EUo!Y5W zMR>Lq?Ted}1>l6D2FG`Y!*b5F^!mnrLC^&nNW@XkS`OcuvX@LP=y!OTkkI7<`KnvxX zwnu+AvoU2?u1>yW9nLUVw_*OJ)NwU^d`9i@1wI_Qq`+PM63GOoY5foOAHyE!!>YquRlJ% zT#sYn>|UU`2i&EJspe5!@gGQ`=(W(T-J(ysvx9tVbvB($mq*KajMcP>EM~pN9=2~_ z0bIv|; z@!Th25B)IP5xSgG&J~IE`;ah)J?vDapkCy9-;)A1|J}p1x=*N8_V%7c{s);h?P-rM zHdj;%Oa-{;7$C&Tm0yx;0<3lxyzgVttWG9< z^72?>jVC>5QOTf%N>Z#ppdxXuQmP!Th5e03f#`twa~Y5Eh2Rg|Kmxeh0hdAADKKEs z;)}cd{vvGb73{DHFtGij_)3w&1b9WWD-YWsU_Q^<$6iw7!! zjD&BuDAv5%Uw71`t%kgTHCfDTPVR#QSdyJm&;8qpLqMQm0` z(!kwHb1(i!?uDT<-tcO!Nlt~!kWUA|yyJ4dH5!&XT#Q$T^NFiA>d>Y^f1S1- z_BmOZ;)cDX?dF9^!5svWpr#HGyI$PM8UfmO2OL`Skh5aQ=c*(bVPFYC0xjHn?tRbQ-f#k7VhPgKZ2@2jf*+~B?|Tm5q|jtzl^)E-!_gGA zk7$*;DU0}C$HR*UDPWzjV6-cur4TlRqI2b4$-)W*#p0CafEA*%Js1gSve^A%p)EA9 z+`$!WJBbsBuC8KJs=Kkg4YXAcA*;!d5b%wRXKej@hP`_A?bqM<^2hE!di3~w4Ew`X zQPvrqiw9Tp;rtY;DqF&{!wz?IZ!}q)o*pmNkOymE`jf#R;yeK}#Jo#4Dy$YIKO8Zh zbh~&~!o$nc@Y^PGEF*VnIn^u=&-wjO(f zv~6eZ?1?lHM0c<(NJSm3*1p+q<1m^jVKBwyMlsRY2);H8m@Ix&vfv!o~_)ylOApfqIPmuHd&a+j+ggCJ;?R8Hu1i;#6G|+0CX^Sd&pT z_)kCy!XYl`^jS-2Zj(<-B4?3@cX8CyWw&Z0z|@s0d#yHh*F{+#E=J2}eRY0-C1|@n zJX*9z%duFck^~HMKxycZuJ*|I%kF`uYUbeaW0Srs1|*9+0c$?XpC)7lnj-!s%hjJn z_DDxuYLs`0^z)mt1^L^QTSy}@oMa5Bq0N)DA`4)PE~IV{eN^{5ZkfeB9Aro6E|G_* zMm4>Tb$xoh@_|M`7`yX%*Vb~mjk=XiTlhXc2h&Or0@+G&Tx7Q4Vqw%&R8r8uqt&qA z9U!d3YKwS8#5_>ENGKyF4BI0B0df6SUyiM$|yzJ^! zIJyvlmM~oH+`6^X?Dob73&ZGw%+QlJiBuD(U526~1YW>6bnhZbomL(DE4Jm7C(H}j z26a@36gQDf!gNWr`n+y1IQIB_O5Hj%*~~V37JBJ2QM1+faB_GAF&_qtIJhOmg02fC z#KGj-pUqLX$xU8gtJ9Kf&|{t%9K2$i=yc8iMJH&8^+Ch-h(A8Ox0#X1^a z`i&;Rjo})1Oow851h>>fomnPWg;MnVV57p z-58S^$`5~GG8csD0GnGO_I%WIv@^nsYi*Qn| zkr7bV>U+@Z+&UTeTPRQ4!w|@VQ;<;!{lG4a3Tz-88+V|2*O*`4y-uo95~4PQc8Q}6 zPv+LXzKA=^>v4no46k!x^+el+9+PLE-3#SPBg7lehmf|zLgm3mJJJL>Q+aJ+bJxo| z+b?AB{Y1$DkCSvUB22b-v0>#EgnGrl1j(p6y3Z3x=n8KGY#bT^%mV(gSpTtD|0gL{ z^tc8qOB?=}LarQEq>361dp4+2Qx>Xi0?af{1$fc4R~9Zxb%HPBpe-_?SZfOM3TuNZ zeAoV9&`YzoxdT9vIN^bF_F?i^3Q1>9RT_DM-BI&(OXl#dn|_i;vJ5AT`HH1PqLBB4 zdb@!`cD<TG%TS z59Y^*h5>m8cd`Pm1(HmJ4p>1szXjTHX?Qgw8&fTp97O+#2EYzKbO0tvv_$r&fgM%XST?ojUJkSgGugeU~Bdz_bO# zS|&w6u#>Rbb9Aq+=p~PltN{@a42I1<^EDRFG4jP|b=B5V`(hgr$p1(pa< zBX_bPgqFtWrMv4EFS>}ZCcggp_uWD<2z`Yy2&OL#Li}2QNtxf_r-%lW<_MN17!9kM z4Gm=*OZ)e|@WOLj=wqO%@{WOuLQDZ>rE2s0Ta0OSu=kFRT>`!u3=8Nod5dB%LS>rpKbD_Xe_u&**Z>>wA5Bi_GewAJ!BIO)IquKM&xVv*vo;3{!`V z42Tw9Q49lCi^t9JbT5tS_${a%Z1-CjGuR%y$>}wA($(PNcsv*e#sn;bj5Zts;&eRk z2L9ypKl;S&9xbq!P&&i)+134*A77t$DlN0+nK*aK>`sH(td-Tqm+$=gU;gywvG0cKaHXUm~e##4pdHP67Z3bTI~1+H-B*oSe(imQf;u7;zo3Dl3P5+&ifB3f0V zQRU&z8oe&+II!%JK7IJ;#n;~a@N0du#}>LO@pua3dm@@RH6MKLbD#O-N7=Wj1o844 zYpjz(R#rUv`vgm1OSx5>-aR(3^ylSfp5j2=cMey*dWQG{yfhfos@3jX0(!0Y1C1yo zVXlwymeg#p4#e2ZFBVBuE%Bz=M##3Q(}Cu!u+l&heBSdQk9m4D!6zs+A-cF0qTx8I zltMop#iGr2Ivs4GwBgV%Z9~V|40%xJSp3@ciZA?z>A3e4wbbyGnw$1gE7K&qwqD_w zE0YLPQ3D?n)?s2C8h3!zAiN1pCGQ&0CAOZd^PYOr}ak^4X%}l|{MounWM7LKGjHiHkV%Tt=)?1cbPk zgC8YmRXIW47N;&}FXZhF*ag6XJ+ZjEgqQaB$%Zf7+9^-gm`|q2;KkRy=`D7p!v}iO z?!*%Z*Gr-=s}hqi`XL0-bt&$KWne_i6KorgcGq%3$DW>awX!^TaD9ZCZjZ3mF3Ue| z6x$%7*)u`gc7<>2ht7Y$erSqHy~Gbn9vIThT# z*-|jg;aot^B;#<7HA>$WUNHsS$#+~WNQRwc6eu)$nu-bfh*dA(kusXL8%`?kXC%oD zTDsAeFbWLA0p!(Qn8-OTNm{Ku+N3)O=~(4ubFBnhvi(BN^jZ}&hbJqy4jV(F95jp=9FQxm(ZWw2DqPf09QqT8 zu5vVrta2;TvUrOcowkyfMh_lb*d;lA^OcoK?6B}HLQ2?B3`arNFB;c7-17pd0B8aa z5Kch?!V(3`Q_P*i%LtX4NE>lZiX{Sgfha91^+#ZVoLp=`aDZ=^c>W?ut2WYpi%X&;$h(~c$GdjY4&(U*`v`mf^v8eZ zQ`hsq>y z`j?;k$$RQ#KA24AC)d|6-J7-h3xeHI_J`y^r6GBH#% zq%nsoinhQ}GaIQ%mQ+(MAjAwfl{Cu!-TRj(vj-nIl>JT%&odJ3pk6ZZm&?wlf8u9; z_Um8!R9a`g2NeLA-QF&dO0&nQAk5MV?%XLLC!&>w_9jB}bU>IAowEpn0+2L8FDSi;K2*uSlS;c=?0pIFaSgRjP++TB#o-%6n8+{`$&u;} zcRtlw6~a-5bzZ?%nY~#!2FjPm+?j}qu7}rn9yUQu3H#5w`LfndQlf%jfuR{F4IXZc% zSmwiE5g%pzbA`kbRSJv>F)0ZgcC(QcLfPk@6Y&HB;}Yr>qBVFVq5oyEC%Cm2V*AJL z0BqEOCb+c)i3?w>u-jWKClO@wQK;bLSGG^qV^+dg4TkMHl*GI(nBB9*csM_RuyHUp zTQz@i{e!>pjg*-d-ly9Y?BJ-K!h5xlX7rcKSOb_=dVPSa;p*xGMfK;A_Z^b$@%O*p^7lqFomdQn4By&O32?@&30a`XJ)%WELZ<9111#t~Y=9 z!5{ju4>d)^6Sotu6suJc&EtGX9RC4w*1LNjFbZ#QPkP%L-#gO1pR%OtzUea{4*&9j`qktHW~JHo((evlS5 z&|`{~VXcG(9e!9@YPDDdwIp|ns6>Y~T|W(xsZS&N47wdn!MmLq^Va^p?g%3dLssp0 z8d%8I5oalQv*zKgJYGi>w|DPcE$rs-8am;vr#;Zv1!0?>Bc>dGKt2V6kcBvvq7!8J zj7ZgE@Mo_>pdA|nQLP98I47}l6QdI^{H7)4NBQ9R+y+p*P2KKyVOvZmgI>4WF|wSy z@DFL(D`qknvmG5R&u4TYQfu+{+fPXA+=Is-)o&w)ahAR1^7`iD?C9+5a5iSw+iWE# zC$E0_GU1q1QhXWH<%GF@F^;1IvFQjHzG9kwN?^@N*G&%}-9xxy`7}v@wM2k@I4qZRM0e@N@4&PdiZ$Gtg{Nb74W!##6Dl>-Kwng6}z? zP)iFifP%sMT$7wq5!5}iLx?=17kCV_CqfpjuDDmDD*i>p8)fL7fgI{Z#}ObfVnm43 z)jBkM+G5mfYz7*5O6slb_HG%DFwu|PFI;n)E7i%t84s#;Uu;x^j-L+P4vHo{_8jhF z6}B6e-VJ9;@KCA%)0oS&!QX%&2Gc~menAYV0&O}qF_7FW>_np2KCb@zkX_j%;2c^a zs*O)tgn@|tXGO26sDXLljAk^$(?ca4tO}!$VYq-#D3ce!J+BS%;=}@k1RLZr!2wfi z`hEkEO=r>YR!`k>eEH;lm+T{4XT1uOVwO9f)|Ji_kXfkV_P6+ic?&@3v%AzMZhhh8BJgR<2L;M4YFpq3oECIB;0nSZW2-vZP+uubM5i(s4$fJ8>=qro7TT$o zOvhZ*!|v$WS6}-;8I!Dr7t+}87u?D0^z_-YhcDiL`qKGybUaB-)jz*jou7)CVSGrs zxq+;$-CZ0mNNDYFPHVDvdWx^m#r479@dvNgCpVXqpoJ<6U6yV4i1Z@YOKNzBtHH26 zn~q;S1HN%xbSJ1h;diXPkTx#Y$n3~uk#k=*Dm=Nx{H}h zP|m_h1BfDLUC7HgT(cONIcdz1zkc@qg*WCNEiz}TBua{fNx7z2opm3-lLG3CEW}I! z3K9+HcjAskEOp036~y30j2xee*)}15)>|j{F;#5U_MozqIAk-We8VC=y$*8-n%{;+ zEP_nY#gn1~K?H*{_WWwIisH2em|BN$Df#Q5>Be4k$o{W4>J1a4J9DrT#7)ia%m;M~ z;t3Afes477+{ST!VG-;g?1L(#YZhQ~6ZDZIMm)&^t`VmR&nzqa`YXoc<=rf z4FDgM>Bfmz)T}5#QNr&Xu>iF+u%aK>(U*(mVh%-{6q&@AcDERD#nHM`M#zJ|jN@6e z*$;o^I+}doV{cuF$i5&h!P?ldmS<;YoUGRmAHR5cbpHqOezuLl3?y}or^R&G2B@*H zyY_6D);_N|idDURer|OqSIfzZU;Zbbd@@N_m&bh%p1z$N9nI=qq{XASW%L(gf?a2a z|L$*p{Xt+0H?2-&xUU63yl1> zfTtmxLO6uYN@pOzR=V{@yBh~ldhY|5L7KG4obDqCAa7gG!XcJjn^*Xz;MuwH``BUl)45e4C0 zINag_P0EJCufwPt7+$0dnRLxi9P=`?h(4KY#$l4PK1hj0BulUL{1;xF_lQwK~Q+LEthooE&^1cmuDj8 zp}ARk?aLDrI4FWS*Bc}X6bLl9c_@>hR69j7sHju%w`_RtxVm$2?rcBLs$f%~oSl^E z_lx!W-`NzYn6WlXTbeCAG{oG+5A8I2xXI5T6@uHf6Te0?Ci(yxjCyw*SV3?7!9V(= z|N7rQH^SO#5?MCdhp4iT-iDa3v$OGVHaULrrK^LZCku~&%=Q53)PSdJF!G=RivSoH zW)_p|U^cWRf4N?dPY$jY(|7*GuYB#tKL6Uu;`HVyMRzv7zD{JahN9_uHT1)@H(jK? zkN)1@|GO(11xvH*Il`T116>L_NQzVvF@5B1B)OxqLn>LSs}zaaQF9_ekz+Cse&4`B z4QkpB(jSl-N)IeRRBHurGeJkbdiIiw^PCwEIxZ3!p~+-h-y9z;r(pcx2%HI^gsfn5 zb!3MUD{WqPnN(p&-FW!!;xLuY|KwqYA**Nkc)3!@?Rqlpdd7 z_meTeq+V+#IOUT?P5pBdLBRkny}gx_*jJ;*0!jr4Cc|+y^=bf5g}fBVb7 z{I%a$V>G4XtRLA<;8%8O3YE#tg9n#*PhMV}93NjkII^lv?_@Y1#DhK&r|p)>{OClG zi0r68LP0cgwZnTC7uV~yKNVn z32$)msh_w)yka?NDaS9F7(_UQ9RpS+dv=1fEv4n*ehdU=RB)ZG5gv`(Gsi#u+itzx zU|#3S#x4k?KwL&bTn-)p6{PF)8C~{jA#1oG?GIoaHJHiJJJ;g{N#887u*12vS7i%T z5ZT6*17SFlSq1JX^SGmBtpoAixeY}vIC*$F1c?M#C|9lSaybfNIEvK^pq04(0mTF- z6M0?HAN9$C*u+#68{J{M*G)zbKiO&(i%#E;WHvH`H!r*W$#C3iUtmS$VGTp3Ev8+a z7|&GNvW`}>MlP#YA1FI%19EG!jooOV)^HJP(C~37RAB4UzrY9K1>vs+VWU&P>>P7i zdVHo%`bYxONsh&qUu-_;kpz|`rclDvG$Uj}sUh1^p@id!B^B6LMbLm7*ebBK#L6#@ zAJ2Wz99(fTijCs1$sGebnB$YF>G`eQLKXYi&G|s5Do(}>S2_ejX87+PsMPDG8KAhu zQ7g~`Do+epV!GY*1MiioV77_I78-TK>_S$CqX@^oD%uK)8UPDCqx;cc|J2)WACX*v zO>4uOAI-wRCzvmnG0#5q=}&+5qaS_eXTJ8S55M)PPoC>V0vBaB)XlM?gaZT0CaxYW zKeWQ-%5PaokiK;H{{6@E&>tK;d;jZS{>^Xw^3VPFCodPrcc0!r0)ixyy*D{ntO?0Fv3^sfc-Vo+~wF|WD;F05|mgJ=~{+7@z3IFeE#h9-bJ-*KqOH%=HPR`a9 zRoRCPSngeP)kfstd{#B5)40rwo@p#@9$n6lXAOQgDeVEl%u0(B48oAu6;iL9uVU$d z4v{VfH$E<$N}UwZbbNk!GEFC6`lexIYVE`d@tMtgsAw5_xSCpF5@0Xqb@0Q)(pJw` z%*DZ^MS!js0~$7cm%Ora(dhyNwD~1K+o+V;#^1u4P$~eZ7jTON;3QzQgqbPD!@*ju zLg&da@1So4nde2LqZJZA)|=ESM07kb6wN0@4GMsXv{j8_jho79#O)faC7cymy=xUW z7)_lT(jM%+t4-2CWV#5R6;Z03t2>0P?BjYtTT!B26RX!8#3??Y--4|QbZT?1ZVp&c ztpXTeXyQesR3QS0I^EPNzfxcXVxR&t+!e4t{<)pB?Kg#Gq(El2A#}qsUERC4BBZRy z-{~IBY);pLFvc*iKKtb_fAI@n`q3Zz(igw@+0TCb#H?7K|HU78@Yc`$3_thrkIbh80}da^71^R&#T=foTfgOiY_ETK1E^~Oi&dV5b_BBM=?$uF)k5LOp)tzZmS5o-j431`@k zCvBLHzNE#S#Wa#Ar?SdEzfPd6f}8}twd#c$98pXc3mix6-`O~4Zf7wXX4ST{m1E8; zLm+FiyetU8ID-jb0RI=Gm&gTS`$t2+;Zf3AA%G|CGMks#Xp2N{g>7qNzgiFAy2#bO z7fc*SsN-1&nb2-w7D`GiG4dn25~a#Nzz}&{6sUYMS_@oLI3ZWn5+Vx0{}pH|)yW$~ zWpeS;54`u?4GEURmY?ApaoBPei&GaSfH1wHj=3)RfkK368;YpRaIxtZkTuVaqN9_O zE?#k{nDyb%GPG_4!yF~ky$|2NfBK=%e(>#2f8@nSci*||>p%A0e|YzAzx(%p_t^+| zmC#-gsL`O)4O~2(9q)}F8rjVC^RpLUy?XM&SMQ%4U48l+zxJ7%yEin6tkDOHDgVsp zN9U(Ow%$EJ1KaI&2P6=Z2{l;HPezrZFthhsitdhMpD2Y!tJ3Ht>@npc7El$T2dH*& zFM;69>m!CF_IwqVx%G|Tw?JRH?L^78aylG%FFZ01ZDRW&jlVeB*t4mOL3#0#V|wBn8% z+Z^#G_Lg=U%4HTnXzrk8)m7iq>alBukS7~8IkX`;h;s==9(EOwaRKqf4UvI0&iDWr zP^5hoFAMiFXaNnmz(ZN6cu>EXh4>-pK3r0u1zKjm)M(&*R3r<7M@-Vp*zlo!PCM=C z2%~cneL{?kmLOkjccSW^=vBorDGo^F0QDx3ff!xf%CR~G9Doaie5w8y_zov45CY$V#_n3Mbkn|YfDnXM9?_kmd)6a{ zR?Lz_f)wPYJq+4WexI4wzJ81w%k0I~zyDht1^?gw=UadHhu`_B zljX(X^6>EN_@G+}22jGMspnxt+8@pqv-?Ns>hY`hZl1ikoLoM^2F->G_vVl3{B8^vIPcO2|zD~_tN6i)9Rk{9d8lauw3e0Ihtpt21RwqXnb z-oow%8Nh`B``3b0QiJ(*7mbSU_Xj?v|J_7qyt4{mVVcAzS}s?U6JTpB^qZ^!VgtY= z>5WEroYWhX_67ft;mS#fK12>=0=wa^i(NV<*qfDi6T8nd$&pH<&5AEAfj(QGUNz zMZHqI0*u-mp5oNyblvse3&fV$qoPj?S;n4lW-*KE64=I=lPe@BovGphZr^`s`$Wa&_E3I-Q3i^S49S z=4!^tA^H|fyx8i&7Sdv2M+i1coKUNh>l)QekyvxdY4Vz6G?jKt*iUA%A^?v~ESfHc zA2B?LGl?BF9!Lf{qG(u?S{;+4N*q>2)wG>%4+)cVczM_$0zA*E!eSYWr-NDFt)IR% z9O@mjS#&{?(Htha!m>yotdEC>{l(F+GwN89kPQi^C)xnkyFxq8SSO@iv;l(2%}>a~ z)CefvriC+-sf3mdl3suqR>89}MyxAo4X5qte72++w-P^LO>sJdFiA3vz@r*4{1p+4 z#0J&Gm$74Ny~L>M2!lwNVpoCZB-H|WCJ*XRX;#WLmeHsVP}Ec_8?p^+HJ(q}6fa^p ze)8n$s}DyN{4_P>ZuA4S7QP^u2w7GH!GLYBt9gUaio!SsB+yiohQ?O>QF}6Mcj4W+ z>2To#=fvWIXZ*LRJvP%V>J(e=rp*wslW&BoJq zSH}bMGjql(mWhM;>HV|m^5W*j7vFgC{O;g#NN8J!V8*lSlc7WM;Mw8S4M|B!QPCUC z&dIpnZD8eNLnbNg6k4u_*8pI7P4nxxVS&4YqZTTSnudTGWpNHo0Q?(_(y8rok??>G zokBc*Wbx%o4iK=dg0*Bywkx(Od}JD?+0yVC&enVD2)AD@Q{mKt!#<%!oE0f|#!;2uPV5#T!1Z5N&asHv&vw zq?jN9X)&o)pxR=wfd7=EV4NBQYv@q~nbKr|Ys4{3-P9egPdahX^$@)B6i7PiSE6d0 zZmUvqW1f(b*)i+B*6=&hhO@xHvB%}YmJGQVb7aGShyrek1qH-BK18odr&6&-&hbkx zz4+owFF$NUUJJ&Y)V$47g2*+&i4#i*+rzB6ANnnYHJKl%mQp2g3<$pIOuc?@&>yxZ za|Yo?PBfqJCYVzjHB8d^4$FS*6ma^5#l_QG*LOs_3jdEfWmU?#N?D4t^F31%QLKV+ z#Se(nk`q+mSK^oO9ez?&H`5erZUI+i%rUaqR3d*15h3sGdlMM_4ckY=pArrSVUWwf z4p%U%IAC+{nhes(Q&v&N;NGXd{_{Wb)qnBrfBH{9_R9L~;%o&$5&@;`r^}JwUd-PA z<4>NP!6IOZI$AES-+X#;_xS3it5yF}XjI0`cl{+_xNc3476S_}?36#=l+Eb`o84Tk zp(R+h@|`;NKJ;0T;+jo6!0CWI1Q;FAr|@qTOgs>86i9Y}r(==2frYsXW+Ik*JK2)O zbVEoKF(}3SUPcQln_Au5tr&10#9O(q_fb;Qiz{AU(wXwiv zpvwaTh-%ub`gclIP&1Z+s@kY(d!qRiBb8XCikjpvIqwkB1_5N+sAT5!CH?o+JPcS z21eqMnd9n^hI*@KpLyer^=yG4`!IG6u8xL3`>${p>#XMwzVJ_e_=kV`jiW{CwA#I- zx4wV5j>GxEWSDT9B|S#0?ts7&wRdzdO@pMJ;FE^|FR>85xmOP2mIjO6u<#0$odI4~ ztPEND)X;;#SmBmodSN^f$_jA=mEF0qlc`xCXw~8_oL)d>h=8rJS8Byd9lB*f%4C{B zQ*;enEQOYgZ6p5x5E|r^a(xMu92pyz>YeAe6n5)Plrp>b+c_1t)b(!^vn5PmU9vC9jgldzDB?2 zcMaKVt8%u{F&unBiN&K27@nO>W)q7{Orx>0XZn#FMeB1EdWPN9+T`gGzgRX)^=5h3kPK=TOc#(7a$vy&5S&p~yn{f(Qlla#i>p^2#4!}WLP;M??;Wp~4&Vv? zA1%j#k%__Ya10sKBzb@Y7soN!xVP|@p-ri!QGoYxXh~&3pcYI(_!RIG5XEyElFudz zZ!5}^g)EFe0G@0T#i1Djw19Ers_{2u-aZIC0E zTD`UB4lr>*=)F0BIg8n7i7uGR1?!-7u15|&WP96nn?Oj9oFT`;B^qN^wHX*HE&|aF zaQ)$Oc1jx9?8UEraLMza$kTld3a{(gw zd>vPqutH}>u~mQ+n+|4|Btxhe=P@PI-~*6JBJs>^M+(nwrn!qer^Ssgij{#1mI?y18yIdF zl=4~{pMkWh{bkL5EV)0;8o-WW8sW^5>TPIFQh+M0;8S)yfNcGR&n54 zf^5wZDymXk`Qiu`odCs(3P&8DRNH$$LJ!RM#hHr-5l1KQ6Y3UmvI=DDPRVNuF$`oE zKuWp>ej^1hx^_57+qtadnZz#blhKUZQ-YZe2P>?gL4;*^=-YPi^e_MZFaF{WKfO3S zJzaIi7q7hf`ft7a?XNo1!?%C_<3IJC?|kEZ$0aeXxQVpeevYM zDnbt2>R%sPWqhYNSPi_bCnvF^=k1$W*J;;k?kvH1k5q;LPFqn{%EhjX$c0OeEMW^@ zG42~xj+&eeqz~sw@#SqRkpI9}j5Bdh$~3~ngUO2Z>NfLgIr5>hiC39CbwNeqWFRsO zII_@R!E=HmB<>{|FxLGb4E0*B77J6gyfCe95_Qvm`r>Jd4rx=YGy*iqdG1&h1CY%k zi!=5;w=%c^=%X=8w`MKf#K|g3hpqH_jaj7|Sawq;K31>j3bC9mrK-5aU0U8!qvLj` zrjmBp6JP>|jSdEM*j^ki`vz8T3JV4`8g+uiYT)p_l{HOLo5KoWlW-^CY1w_E*}*oL z{YsJwxKAsx1ILp-MT~tsNT?26vZlSXT$I|EFW=0JhMQoah#y}?hqQ>E7(b9nr)sD3 zernVZ_-k5|&|f1p@T3I9fK4q}iA*|o*aJ4v%JB+7M5I%?B?fc0uq8!lnP+}m#hywp zQfQPMho$%s*SaWKwjHEg;*UuoiY9@N&2+`D6B+`Rupq;XQ}hLFKKOmG-}nzqiONM> z$C*>a2OX?PW5mxVHnHW%Wy_fzzrNg$y}DYC7_Uk1T`upR zjRVZ9^!}Kv;f59AEm`xtVbAxfds?JvQCv6cI#>?LByy~2#VVmv$-D`gS75teDLZ&? zVTOU{AP+wNU>RXHcV`zC)aIe%!IUJY;|IBt31wAu<-0|T;@_OC`@}{vXuD;usPT6ig+k2K*Y%BB{}=I*-2c@d?S`P1Zzssc*V~d=U`@AI2cblD30_bCeL2khWxGgtJUezA~5iOf<9O&R$4xhwYj~V z%n6TVl_JGqfd_K40@tEA2uV3 zMeLF)c7lxEV7wxt9payO*{G1M=P`Av)Ef*5pk=UTGh5hO0Zy>lMYd;42O8^B6LTscKWKv=O3E#r#jna>VXe3~lcg zF0lM50#ZPo01dKzxlXmn<>cAhX(-q|VBa4*bT;jz?=}>7GKh!M`TZB)|Nf6$W4e>9 zzxE%#^Jo9z$)Emz?|yv|ch5fYt-tu?U;gm#eG)^)ZX3sGoi%fc#(&zuA-x`*j(cgy zMjT;4+cOlxqfvZT@j&wX)*ez&nBQ#m5Ew@Njxrz&Lrx4VIccSo(k?2(I^H6Cdy)&D zTPKpWD9jLWMxpH&mH|Q&%oCX{>SMORo`GzI?H{j7B~S#*f~&DaZY1{*w%=^g={0Nm z9l^Tfu3}SIsu5_+0w}Ae2sXI+;D>bTMcwb*ePx2JNoWGWS8$)CTFYP{L|n3~5=a*F zRud8vbs>smhivVZSQ*JpawVNMhVKq8+U>SlL75X_WEaVKr)#xd{H0InY%5f}Ka5D$ zr|j(_mzWsf(G&7a49nI>RgKYF~>^u*?*;?BgBOT)4Vt8fn=8`2y}wBV|mjZd($IGw?|T7B*R z_>cekkN@M{@4WlHZ_Im%b@%uF*FMz#&DGnQ-7fYuK0KMQd=Pk$S^EnJMUEbs2hkckx~ zgR#7tg&2?(&-+eAn9k7g1M4vUW9ZWgJ-x{`Yo8mw0PkJwSI}9i7W7MIHFh@@<`Y3% z=k?-C-@c74RAHC&9Y2noLYbS7BY$$kcg+FWlz`@FU&NJ4l=}v1MIgwwN+dyWurdO| zBrN3ru~`4HSpTOfR-p?lN_GWbH~hRXXTq`2?6?tL#K>RD3K>rId{gyjGp!u|%m49P z2^G$!(@8o!Ta6IHGfC#CyEzrH&xG+hfi&MsT@MvCJoZ5GA_ zbdk_ls`xSTU<-U+43y}TH#A$(U~{sTTIYQXkRVGVXh_BclG0h|iGx5BJ5xC#v_peM zN$`t<)&>IU-qwCGoAU?teWoa2L2e-KU@#;IGt827Vf^``J=g=Q+Lkc8b)1IUstEbK zuGBaj1!yWLf$z;&^qPh6=FBQo?DgGyhhYV*QEUwa#DxRV#(qd(u5<%}SH^e6H}ne6 z-_Ag=G{_Nxt10eI#B)q{8AV{zMrh~u3cFbn-(@*$_uROR=pyO3xQ@C|gyOWjI61-B z_?v(5EC1@h{LNqfZ=apN_P_qK*W!B*r>}nN&%g7XzxvfrJY0@C?UOJ5&eva=uDepR z6}f5;4wKuN%@cQgbo}fPj-~Kij$1D7SfSJ0Zw@*n;z70mxz+(7=R=jlvm9)wEbIlEW*ke(^s9Z3KA}?fgbBv2V96R^+l5`lUMsl>`h78?bwzy)EQr zhon+oU}V>Vt|T@sygqv%g}1f{xo2Rjub)PRCP_}&#$xg0t`27E1|-@^W~cAa0nh-5 zqf`j;uqduI2(I9~Wr2m%Hk0@L;Vki-PU=<~hOSoN?%|J)FPUX|%4}$avNfEJ}?#6E|CV=8Pb00BsV6gIU$1J;i@b zDNBtq(G5_Ad@Zm{^bbYGGeOn?$ZYm}_9(*Onh$PtT6?|@I)Iv4%;E-EMgm0rlzgQD z#k68Z#5mD27fZO4(TzUOpbs)2x>Hot#?e_o5pS2>lb0SYY-DPpbrst!fdl}hf&>8R zh|8ZhQ^2V(K%aYlw_$5ge&E=>#}VM!z?WpdJ~~+tA&Quk#B`Z(N|9?yy(WvWgC0%M z!})BE>|n;qvUm1x{`~*^`(Jwdr@r->Zb}n0{>;~Z%3juOHGL>7fFjDRAX0uXlVT^GMQwZ*A}bqZnG zt&W=A?Y}hu%P7Sk`s5`6^ycK+xtd#~e097qR`POSVpLIQ8tajDH|UwFt?%6`*t3D~ z7W0M|<8i;!?a!wvh_r=#l0Z4E46?%i4DV~`@Hz3nMaKeGiN~Lgl%nQn9+0u=M zw!c*i^da9Dha;;v{1vw0&Ps%0qqdvcV2zN8m8KSawaAOX&j-SYe74h1DV)0i*|P7S3EmgC1xaKOS>8HAqFf6 ze917H#1yL}tKHM4PJ z^+(+&pZ(R}{PIhS#USn+&4(%BsSkVayh0#C+wUO`Z{tPa=yo_7`2NB!l#SlZ%4$AS zraNH%P)ZPu8N=Y?716#sB=@p+E;*W1&tzqgYX&bwLpbFS0Kr#GlTO`%d%$~aU@;#X zvSs7nfcm;wfFek#!hgsWF?dHT%sY|IGO9i=5IaJ)3pGWBT3wI{f!WV0VW)vmpW`S> zfq2QfQ7qTS28I)onS~^7L{(HRGck>{a3KWI6g7)CQg=9Q$DP3l8}wg^?iy+OGjAdK(azdo1})9DPNiie|QStg4N$3qKX+`>EJTS;7@)=gJlQ&2JWCt4i#k{Z}7o-oUqZ;GlX5iv*H&MvPvv{ z7CUC!s%BO4kYQq0G%yJ4>1{VLV91Z1`u6kNWvHlBqL|(}l+nz2H%ro{L?J?hsdcX& zKR6=52zvOo$P}TRx!(DlDOpk8GzgTgz-y&6GT=BfT;E~z61BZWG?5xF&R1Qt9pH(A zeX^=kti-ps(KaM;FK9~E^6LJpuP&WF-tfKgVtW17aXI|rpPWo@W}WoWZ+!QE{LvTB z&)wn4<%`Sd$A9g2zW%w-ec=lqzBo8Q*+b2blZCCNXF{`muueVK4{Y`)3BnGUs9WfI zf;vRnbcN}un1vqa`xQu@0!#9g~t19*le$o5zk} zsuI~nyRETSkqi$j==U1FOPtyd0(WK3gD0@6&%@tCR^1VSZIYp zfJY$60i(ZeNx2&9NZ!zz2svY!MGLTTDn=BD9}6W5We=z^Hq)WQOJ`Yfodn@tB~vLG zL@Bcv#;UE?ZIsHnM(1QW=#9Pf^1}C3Bv>e+Tj+Ufa>qfI<0g7ZM=oi!yCyb{3b{z} z^e9n~cNxiaP3j2?P)zV0JGOryh9s!myS*VzpY0JavJq zCiIxN&5}neWLax8S}h&=EEbf8&x6VbuMV6ENuoVzTk`xWw(%lyaZ*6k4?;k9fSfj$ z3psNXY{6GNZSd7hvNmB}5YJ4!Vl_)|%WErD&{qotmAV7cug=d@Kq+y@i-JW_JUqO< zzFPEqpv&(atNbp}YlvDEzmG+LfE4mxH?S?o#%fa_J{zE*+%%%q!@E7V?Lz)#a%R~? z7v4kZ*cm0!fDAl$czxQvcZ5z$)sv{*S-yEuh<@bT7vpnQQ&0ZjKmY#ke_}d?>bf{M z|I*L?+i(5khkoQ&fAMoa^o&^2P8>ymFc@c?AFPj72aC`NJZEsSia;6Nnz2wNqpF%! zBq<;_IFK1~w#KQ>dB@s_Vy3|*ZbMb7k}1s4Fn2c18XQ#KAqN@9HhH)2eU*sU_lT#c z@ub(wDlQ1UR?!OZ+@TX-&Y;KL2nzOK(Gyrnr?j&VcCI!GRn$>L$pWla6lt@tEXcYr zlNUFfYHQ6#BU~l*n%2K2f)$Lh)<7--P5|Cjl_*v2T+l8J@CV`+N~lVWgd`#nvp7ye zWWhY#*C-yYEKe~HkStZZt(z_$!3(RI>@9#>(S=ZI#A=h+@(^#n>lR2^& z+qG>hn8R?RRvz?5Az&xSII!&YZru`TJfw(~ckXboibfEg1VzD9yq{AickixJP3?Lu zi)Csn?LxIE8m>PW_WLma34=nJGZ}se_WZLV)k~a%o1T=?-H(sV4db7KQA|%DQQ5Mp z_OI}zb}=I5mkNvvWL6xWGy%d21KJ={S|v&Y*S2g0mpFcc^Y<1+(f;|#IQH5mJ8|63 zgNU9r>Tx=BW?|GNBH50XSIhf1FFhvGD~jKE_2Qk!%J3_{eXoNJ_Vnk!^VW+WS*PR* zgx2UYfBdJv|Er&U@gu+bTR-;AZ=8m%+Wp8!-n<;32EO>EUprf_dcGZb{`A4p3_P!t z55`R$D+vdCe~k-xpJ{^esa6XHoyaK_S{=XMbV3;$N2gCn10*pB+8VmHjfBN+iV!7U z&&?N1E3ms$G!aK?{@gCNY`MZ>UQq9#yTUU7w{OS}4bWb37kHHlCW^OOgj}B$w!&IGaE&{WHy5e(XSj&Os z$JClTyofNEX8qi1RTH%~eB{<}D&z!KWo>xAXb-x$*P2?l9YVdZ@m&b4?6%Zf%m+Ts z|B)GuEFA4YTq7dw>pLYTHD?5U{b-PkQYIO(TOu5!;D+oo03+o*Y*KDrF=%rFL44ZY zD|ePlVvK7QFKiil$$~WLWp-Q zaVk=#0IKiJ`~N?C@A+$4zUFuRGtBL-s*`q(Yp=9d&TFr|*UstWP@$`ldCG&wy+|78VBHAVx+;GC~50B*Y6qSTM4XjfCLy>{ETszkoEmyLO#i z=bZJd=l6tfkQ%HRQB1RmrqLIzHyI#E)gTosa+mx7MDOtceoGuPfn?3VJNR-{JDHAV zh&GQsa2;gnJVNkjJW0mOY~$yAKe{`4{l&}Y58r!}=gDk+i>~F=y!+|zJ}fVn)9?R} z|JzTo-HYSdcD)#%|H^;HIXBY^_Ve4 zK7tmaa@K3HW>BTC;vubvv>K9dPS5ltUA*|@)hA!QcyWC(2|%BG>wLP+wgWz0q^zPY)aRj#0|EN?>k_rJF1Se6yS)x8VnBPe7^?WFa-jug z^6bgaiN3$GdVRCKz7Bg@NPQDb3d@9*jv1_IeoM2|X2nHIb@T)^ke;tkFCR8xG+)r* z0&JDiLbtoLR~ojo9c@tWCQxyG7<*{hw(2yx@LHtUM)KU6ivj|5Ft5jV@9p|hIAcaf7YzE>SjV6RRKzQW5`oQyt9ko$W zSPN=K=tyRiXnpdOa}g!mAT#mtLd{6a!&WzoNFIkzZ0mPF{MFz2H-GcId3G#(RKi^_ zSj+=B4k$doxK`gy;`scFufF;E;bDhx5R(aZuV7gE*sisa z7^KL6LmOd>Xkx0cp4o#LT*Q1aj>nh#J!nU^v$Km?ZfGZU6K9mzphgj?q|8tE^itu4 zWiDoP+u;2$=!5X$w0kj%WZRH+OxQU+=@M21-cM2MpuW@?Zd;3;z8{5k$!Wd!#5EJ|9 zs7yVbZ=?h-Q=y$~Fmlk4aAd?oJ4p9PLWdALad5lBtxZGLaQ0Eubk2>-kY|g#*zZea@^-CNvfByG=#NoIcFRspK<5@n6z>oUL zpi)uK?RK?k4w+b5o?_%aQ{KLEQb*fH*Je9f45Tg$h;6FY$FQ2=Ws8;vbSFT8XtBj_ zk~rc!7bhjTBhlrpXyK-Sb##2($(>p=K>1Oo0*M4F2cAVC@3a$6?4Z2*;)mb7!F|RUAPdP{Kzcn?u4+9{APfae zbH1Ghv@=ycwjqI0+y% zjPFrz0P9wx!U&cn#~2-)(mkm-h8KlnOq({V**sB^uctWz%ZT0wY*%)=O)j=vc|kxw zd5^9J^a|}6_mvO78Q~2bNQS%gnGi4|kRKja3do+5O7xq*oOUd%;@FI%D8M8FO*`mW z;*9GXRNxq2a2vOW93e$YWa5CAg)&ZR1u2C*=G&mMh%^~obJ)L6*IUc3rY+)*H#|i) z)B|(G9#~*+9Ak2lky|Ac55X$C0A8XDkUoMu3;OB+hb5k$RQxh_@brULcqjva3L1&q zMGrl95dEq&-4SVWI>UHpTwo`P3TVq1BG<|xfR5g(=m$+VZ)NR78&{=x5la$bD= z>%acXpWmI|{lUNZ-~X$>|Eu5s-k<%if4Q;z{D*)3)t6uX{lELtO-E$&5L4cnWfwQQ zB(Px)=VK9svloUka{NeXftyCG38n^xsbWoMb^^M|u-RiMRuqKjan_nDLMNbY8Xz~G zH9SYLLwwo=3P50KcKf()jTbSU7uGwiqo$qc7;GG51(eNi{Pu7C+K4KEWC^M!&M&a2D5#@zfmHle@cVq_sMFk*Kg+6%6K_puE^k zNywR^CNo=SybfUy4bWgZ4qdBx)JY4@**e{phH z8Ay!3uOzLi+II`Yz&ivB1Hi|%f{pTl}`bll#|tV5vpO~ zZ(jZQH-5Y;@9uu|>T>&&|MLI*=l}Ab{|8^pW?z0UNW%Re{rg}1$)EhwUqXwl90f`f z8eD1D>>1FkUM)!`1_DuRY>Za49%sp**|Cj=mPM+nYBsB=(s9dx!!>Z|jKSKaee`i1 zrHQ{Qw1U%dy6v;CI?2Y{}8w#3^ZvmqdMy(9r`+Z~f`eEk4sVEW2Kv@#6L$q5M6ZF{9p$Yu* z&4(XgE);6!XuAni3{-~8(vC+_k&O&QSHVZtKok2eetp}E7Y}1|XtcSzK;`glV*EKU zdcA||uVh#0uSiba(e>3dAD3t&Ang_=sX6Gt$l<JgrL*3jB@xLu^Dyq=#TV90u|obLVl0$=ZNm6}}f8qD*P|b1WPdYBp{_ zY7EKUsC(j0YNj5X{L`A1f*BgkH!G&dmvdyWTYYl`f(lNs%ef{OtX7ii3x7#oO;s5Z@{_0=+*UFZq9-gr*e8xBhK?d>Kb`qVMzED^u(+9S?^neCIKV9r?6Yqe z%Yuy~T7L)Qx7O(~m1xU$L~yo?tJ@Jw z7u2qsK*X>U*X8BiO)2tJR=SsE4(RdY%1C6_4WOy zWj6Nvs5`7nt&epUhIEkjLmM|)I4h>Y=->83f)!1t^(eR)L*fGKOtHerz#y&Pmy?A* z@4qJ(m6d=xd9}Yq+r;w{{2Nu6xd3@tmaS(+-?EdCOx#AlN|(RptS_Pu9FmOnmq(QZR$B z0oo@OvrG}MJ*f^oP!0uj*kYQVFY+m(^ww;9h4A&|_07#KCKKBUE?EJ}vcY_dnR%A& zUVrrR+yhT}e%eRNl-C^_Qzxn~sG!(#+{6ObYBhph(a zxs%g2>rXluYOu3suq%(A)kf=a*lLG3L*B@&dh`^snwyx4D7o*7Q}Juw5|qOHgX3@%b?Z#5TGxE4;F?Wn!R|lS-mOp zxrdf=q{hae#KL{PVdxe1@eS6vX>syA7`?;!#JO*=_;3q+MQ~ow(Lh40@LYw!L^qAJ z55pqyQyi8f-yA?40x;15r7LwRDOJu{{(l0MYuE`bTJ1@Q5QwGV1s9a4)}*@~!s2Ia zsuEZYI?WYuK<3vpN3~iTyK|4(2hweWdM}A$Oc^mt#9mPFs~p{j%t}<9=-Y>@q{f7* zF?0`#^V}g)01&qFF~lW*5tNUAFoYF5Sn2~#e+g9}G8Dmw7f)rz2-cg=Ld;caUFN>k zmQ_TwT1RK%h3!&ZmcW2FvwZ6Iop5?{Io)mMB~iS3xEgYwvMTTEqtrrU65?^hcIw6b z{p|eW_QT)#wTtrRdBR%5&sT5%L}?3!fDxWMT5XGV54u3J+NJ(YHYo_q zt_z;k?ORr@UqVY``d6*T!RYF|2m=n<`mh;xSg&nDy9v(3_p2>>_hrxTXKd*PO(n2b5BrDLP)Y6DU=#pd(gS#% zDb$~Gh8;aaWvj>N!-$G zz+D3U!!$h#8 z)59X`F;-$ zlPfq}j=TQ+?oMDaK;ZIM3re#v^~X1xu$$#zDNqJ8mH5W3cRMil&=K$gI$@^sL~0Ft zJXP_TpNG*d-a4y0CRIZ#T|=Z_t@r1< z7Z0nF!U@X+`A)I$?CJITF{2~NMO;wS(h*zYCj^m&u7T`Qkui~DSeh7-qBff@}g9BWCSr^*G5NA|TGG8GqbN`3n?;<@N24GbUo0@QcBn+O)%j+&!n~WJ z(f2D2172vYJ6ieazxLjH&)6m~Vd-`Cbc)3p>IKmRHgRt@nGX9R zDTyeKZBEJw79I<9xq(26(?x?>xNp?jD3B+GW9t^eM@9t;c5E9YK-t!csXGl6Gppm{ z*8Fy^Fuf7Hlmw^58S%+FR-WZ$lCYGfkJ*%SL4JUD!7BG1@y~yJRT5W&+fRNv!u4rI zCz%>S7IUpmYC7(_DF^p_RK}}pgj7d)d-3q`Ctv*J_kM)q>|(kU1u1f?lB_e`P4n5z z3SVDdx>31XEZpAk@_HQapYMwGDo2z&Nqkc^=U%eQV-JK;IJ(`oYw0<2d&SL+;VcDe zsi2+)I%WIWunXDRFvyr_hT9zFy4xL&fCwihUL~?T8W*R~^W7Hr6?qZNG8N)!V>q-1 zZWEv+6A&{+U?kxla(hZc*XIGkdkpSz7GT1I5*8&e%odN*-1cECwv^S2jc0YMwWr67 zFbRLT0pwA`z5raq(i!iPcoO5NrbiGaW^1w{Nj{n4_`F8q&jiiDWPAYa8L+FGFSnaz z=`&KExE{b8qNb(WNx4JwBnl^~We+sUlfZFNL~kqMpj8$enQdH>EZoCzML_`G9;J#2 z)ry&Om-cfyzdWDMKmI#c%iWvLUf;%D(2ip02ERoyYT%QBNT7pWVe>0h0IX9MR8r1R z-HOkI2!20f1Pd(dR2gUByj{{Lf`!1CFdwm~C2&GhyZr0yEWGl?P2q>@@hTaUP_b>N zydob!UhdTy#U^IFybQ0VrV|-M&X+UUtxDqKNkWktDBa_JgDVG}S8dU(NXd%X&mFV3UnhaW5_%kzuX zcr+f5@-WzLZ_g8>-o?`R;x29uFE+?n``du)dnooi4B;ITCqqLj;nZtj)tsAw*EX}H z?~dmMKSBPQ0T)sco3@cb3c9B)~bC*WT;Cq6*0|}ZjD3@ zKDH(eCTOH&iS@5(_88VNUaWVb00>|Y8G$;xBN398aFwT8%gooTqhg53`NR^zxES2i zDpN&{(p9bb?Rfx!u=mrS&L-LnQF^!M=H+(IHomyLLJk3g3^l??O!pmxPncZ{M>boK zE~$;xEU1<~q&*Xx8rtpA)bwyZ0-g@F5cNbX{YVSLQ0-3^c>-81nO&^T_uED8)74OD zL&HVPK%u+jx|7e~DS%QSRuQm20C)~F11YDO1T-2a0uh1ut7ju{zQAYD3&gk)!d2mc z4(nQp?|Z6h*jI0F#K=$c^9iin83RUWvn0`u-em{i#e$EGM_qRi_-;#EtyUV*NGQpC z^za`e*W>Pi&PuwJ_}d-|12@_z26OeSZbNeg{z$2n%E>oNqwxo~*U#@>{oo_0N2I{q&Yq{sHKkH2lK;*0l`PEEB!&0=^eAa!N)(`AWYEh=2P1NS-`pv3cR?E zA_7Iu;UQ^NK1)Rw({h6KRXDJg@D)9zwQ*cRuv8n--CMJlcNoH}{XhG&?RlgU+x_(U zE_2YZ^v5r+eJp3JPE#-a5V3I0k3zGD9`XS03i|w@B1Gyan9aej_9`Cp6Gs0Tq^<;B zF^L)?V6WN;oo18J8HyLW9gXrB4V4-{i=2+|Tzjn^5*yNpKLf-zA zfSejBIKb@7mBeJ0N^Xyxj$C!6yhW z3yK8|{9?yl4-QBaXQ}hR8MUqbH4b?lD^5z}MaHSWxP7sH@!{<1)1Q7eDrURqg-a0+ z>oCbKx9Rlq3h#?}duLazbu80CEA}x|ZFDgGYxr*M2@#_}!bX81@hM*d{XP7cFGuB+#eXh z0QSW)YWX`~%u|8WZpr}a5^;`#2ZQppif#@P)Gd1?!v=gw=B!wJ zK>$}+`^ZL$j{$x|naa;A@Kbyaq?CDAu0!r&4^RA}&0uEucbXQKToJnb)lRU;MltP> z7e~PBJ6d0~wYyNq)+It;j0-yLU_PH0W0{3at}hDM$&}L8c$D_)@y*SK<-H{L$JG<8 zEoRoT!IH<}nTVBOJ%sDwt?~|e$R`~__1joIG4a#v;?psrO{?>Z(nCk0IZ0qWp`_tvaR&#ApsiTzh<>20 zAy3r?CU3f&&+)a!VW*Jq;>hl`(>>y$nbB9ANvqL6s~BC#_q1IsishxcQe}MAX3j$0 zL@kaw4M=*t{}@L~up+~9^n^vq(?=>SE@&eU;WVYh$u-mwz(RA1`WrQ_$xqlhJ8GC@103p}*l7&r=h1r*sBS`DE|**Z5F zwON0ClkmnbS?(>!6F2dj^~3TGSi*|9!CkJ5X1_y=)b%tc$)?5DvTOCMUc@C5%_HD$f7g5&35}5!(%8=O=qc=ANW!XpG zfYE~$;HX@LmsdjPX5&)tn_Vrn+AOtAm^zJ~DUj)b$I-K&Pm-yF+p+?a$!rfzh>c*- z5kADP+8K}VuM?m?DUt7sh!o@jt9q7KV)@Y*;6E%^m>-0tocD74(|w8JGG;GQu7X_< zjtd$dED@U3lNQF8s01l>M6_`qJ+nYP+6#ZaaiS(gHlx92)v{eTO+?!n#ud{6!=UL$ z*I^a6&C=!Oi*@Ah6i;bm@wt4t(Mfu;)|WE${bzN6hwq|IB2Fe1{Ph^5@_Z->_(;je z@{ss^e1Vq*yUO?#g9752^AX_!#5Ta*2oju3R5z@CcbG)254rBi_-giR1vhw____-PesKt>v@YL07EV--7K0xHsa^|K0I z&a70#K)}oFhWhsHAI}C%3(?eTp<6!ely>dS0^>+JPs*CodYE{om4e6rn~kJYxfy8%)ucKpQcqt4@~ z5nu$-iNrF^RB0eHCq_{YTP^D0Otm4?A-lzN!$2+98Be@=m!Tc`4>TowIk}bKpCC9* zBqGD!YN*^^BpEQ}Oag?NN>Y_y2lpyfz3hJ^Qy$di0rw(4G(dX;`FMV3^pwD+C{H^| z9J8zJc4xk?(h;`$r|0$NekMY&d|&J|$q~lc-urtw^2| zsr)NP$bodZ&8w)N*SXh3dZ=YopPhxfEke-CuYT!!pI^k}6z2Q0bi7|<8A^|D?{4-t z%aJi0-;No$*ukjqw81bc(%mon>=j~j_3_JxhpW{J_8YX&biwo?DN6x`G#p<9jy%Q%{s2lzmrCH8io!9Nc=rcL zbU}-fjC$NqkjUiH$yV|Gx>=vJ4FAyq($h=6vlp?e#@zhaS2^tvFs9My(FzwpuqeEy)~?WTvWZA5;Ss zDYK$t8@Ba)vPRq{vGEI1EGpbVx2|%0gkgu7UBmCU_*hb?fI-082`9N(gW1|{QoBQP zq`d#cnkb#vA!Dz(rwhKI{ z<&=|Xxs1at0*H*_4kf_Po(27M5S_sl7Qd{tePu@Fgoz&ft z!C>RK2`Y)k<>**p)HqBuEpzhM-~8~)b7RQT5GDK+8qjh#4SgrT>Ix{63yml*SQfeS zX`mXxcrm&9zKh7xs{H7iw;z4<(aWpN;)~zD4$DbCE`04KZu>O5z|w+#y*)@Gwu!R= zHdR3{)hfqYxmtl#_Q3$s`+E-o5P~6jof?_~vot-0(MoTuy z_%*S&qcrE7bW_>dvzTO}%pdIfguQI18Noow$n=o4HchqW^y-7eS1LoPf7mn-Ou;Oe z?Uv`0QMp+^9~J9Z#{qCNon&?hyLG%<730loRK6F_KmY0*4o}%%qlZ6Q6tFgx@x_ug z^pI(QK19h%sRx7MF;*+Xw-^+d1s>g~ek)$kL(zR`8c053@(maZW^cDO zIO#XR#~TnMm|yzd07u>Y?kWPNDIv(<35mo*nEot2AK&q_V0~8xNGwZ*D`oEC@i-db z#RFsjnhtANfxpNEnIEPhAWo`__l_FJ6(=2XkRH`lrph4gPeIe14D3oH(Y$1Na})O| zwJj?yLzikU&u6*oUA?@&qDLrP*Y$nZ4!4P+I{9=wyWFrhP0Q`o2L$WO`)2p}Q8Q`T=NIs|n4@(@vthhoq@A&o(A?yW>8jw8K88ks(GuC2R z)j{RL&w;^VOkeR#2#1!7!&w{{DnlXC8{@YV@%6wn5HK$D9>YZSj7|jJh{eXsw0fYe zV0WwVh>QvDhKkLsRwGVMIxSy=PRp*cHyoEyaq;5r{5rRdPO$y8iSd9DxJA>@bQ0%V3+)_R=@@0KrhWe2~ms29(w%ipZ*OEgTGfaWHWE zpthADfF3w4^{!v6F3)$fp-mM6A`;;lwU=ij2u{%fppf+RB(XcvHC4rZf=NGMm0qjX zq_*V&RE6eWz-Mw}${6472|C*t%x-Sy??3>I0ID5S zG2Z17!Pd zIknSvHXmAZaIDda{j_@#RFNb{6BWB&Uu!5RN4q@@+SZ9!+x2_T>MB;{Cw2?{)0#t^9G7h8;oC)dSIJQg$%C$7AUWnz$aEzh2jL>+^AjvhMK?>%oafZMJ1IHt_swjYh7Z(f= z*_4kGm?aZ0x~GB0uYp~cjtJMV-Uuc`GHv5TDinC>*6r3wi!lwdc5jRXOWMD9#$)>HXg38z3ceY&TRHWD!=9XeCmm ziI-rd_d2|Mh}lE1N*a~gf&Zk%dN&*3Bbf+;yOA9(g02E4L*=1D?6M1Ewfla>NZpe< z_SmW*du6kQOOlTvWqx_{$uIuyA6{PF-rn5a?k6QEU<_6!?ENRBJo3hqa+(*jS>)yk zgn4Xfm-nm1!pZPcFG45FZr;B6@JGK<>Wyapz(J}!04}T0FGW$m4skfe zG6yROG$P0u9h&&#(}w1Hs_nPEiApnVjT8kDgZ7{=rCWvLp=!4EI?#%`X!D}e&e$?a z;F!Yb*Lo266)=9Hu8Pcl@AL?uQr~UN)0)F3pY>W$yu4md1826LZKhj#xJKXB&HQ}3 zox>mPCRT|{%j(r`wAp3ZdW<*G9*RVWq1Y&-nw-A!&HF?Db~?qUqvNJUqNy2PcCMk!%h|;0XFBGX z#sKJ8<|-OAs9x%_Y1K)~ss`wZq{+Mtek-JZueAvAd*4T23ps)bsn) zh>`Vd4e%}56>TN)T#$rAP-U72-=JMjZtrq*TPQQ1JUMB#2vUjD!xL|ncs=|%1naj^ zeE1kbRs!`s;kQ0M4k;JRpx_>PNFl%`OXgUFGQlo2!qYQMD8%clt6^(`u`&l~br86^ zS=@g3$y-FeMap)wS#1#yE%61yIA@-5>cK69^E#c)0CcF@#YLK+bpfH*W?;o&G*8p3 zoAdAf<`=W?|NalcRBcA4QJBh1G}HQ^ISN>EZNPrcc%ZRDG^bHN7!JG4ftk=W(-@DP zPTSAI6zew7{S%f7Hok*R1+E1+PZ0pt8Z{kQ0aczqi&PF#a4KBQQ+DC3x1hpw?ZEG2 z=famyyH}(7WY!$6STIia?ttZ$ZHzAO3V>(AZne_o)zwltt824>?jl&-Z?_jybRDQx zXR~xQ_xAy0{HD%CZ+Cukxt}evCX>#V5~dgxpTYljlVHIHgBPA~K2w%w?75}(2* zn&3%o4$TmLz;3r;u{DzMn2X^Jt9oF7i`g_oQ2@2%ZoOM9s*%Q*T8Ey`JmRp#d;)q_e0i#GZnW+j@c4MAU`(u&~WKpYkLodW>s zoA$|j0AqU-AF#VErg#urJOfS(usvo)l=8{t%`{3GjrZJ9G%MzPoL>Rc8$uUqfsioG zs(JNd+e2A{hx&bd`)@rU8G7=#sl0UJ=NpOhaCI#tQpSh zhmt@>=EDGz_I_a}%Q5Jy*{2T=Ki=Efo3|hR@bi5dwHj!xaIa5& z4zdQ0QK-;j`T>eL>tqP63`0YUK|8A*RDw~TQmak9PBRt6x)xbXzZJkD`63_Bx;oC| zG`1*&$?CDn{^d-YaleVE&p@}-Di)><5C}L5xk)}?ABk8_WM7TV)uI|-Fc`kPQqCCZ ztAltRqVjfhT=n{>jf7#IB%$TvxM7_yFz~qec#IQ>j(63116|3?#c^PAy(;I=pL6eG z9SPj=#JrerRCRH+1T5%P_;Q`y&3wMzxTu-~*m4Fz8RE{zOc$;*9F|x!gPNuTodB10|o$oaSzfIWV zcjAvc)DDj+>tyC3+Yq3OF=vMK;FPg|Zn3;uA?Dy<0LGy-q!x($Feg~2bX*zBV^LVf z4D0^o*eNDsG=lcuy}bODYol)zci+FCBo+wh&RGL~{Sb)-YNa-^!d9GV)t(I<{H*B@ z^eO_K5L7XtU-^!?-7X)W-It1_RaZn<>b1FWbjdT$Q8uPoMrAa#bc=EIX%)8oSsTR1&I6VQ@+TQH zN!O=9#c?NVvY2LQVxt5JgFL*wo7QNBgs33xmBi-ZA-xjG@LjA*xE|Kwj}a`vN@Rko zYKyp|%)K7V)+Y?+x;=d;y%X5(r}&mZX;N7#OJ)4@q#G0-=gIph6^RBp03N*ZOp7!D zWH61qAW0GkgZo8B%HhX{HAyEs$`;68&OkZLX}^M2zgEG*^5T+QmMwQ_{`}Q)`QZ*d zkkJ^02s|ZOgL5dZ=LyDPAg>V}QT=pe0ntE72Gv}}(sKp9q7Y#`mOOf>GDWO=Q*m<# zGM$+E#AQwh@Cf(8*bIAa;&)lzv@1o#a2@grcg!M>ca2l94Rf_1zp zH&`A;Fg~*K`Q3F<&Nj=%1}z07%kklhY=$LJOlG)$hgJuE^yMlYzjoZTT*d(qOcLHSA^OMT{OOGDO`ZA1youOP2u?v(^xPhq-2PNugC$q34MF znrPlqkq}{o9e+J$(8o9M+99{nZ5`fB#y!L;m{mNL+ETP0=Bx5vej1#aTP%(FtS3j^ z)McHfzat~S7VvWqro@vvLu*0q04r*DY`y8ggi5ekqioAZo)^zh!F0on$p=~0^WX|? zcgxG`1qOzx?v^oR;|Q0!Sv0#?$Llv2t5xaRQF(DbnbATIk{+{8h}Dyk*#4Cz+!)dCf^;M{}HLPDR9!y-tsQEHD?045bE^416r zMZNy4&sKZ8yO^MzY4%MR3=qF%(x~YOMUp&Gyyn=iv0FZA_7J;fXU8m=!=)nG1BOCoZ4aDQ{Ym`;p}5*tm96JVZjuq<+SgGp{pCxvi) zj*-mqHrSFB*>paDuYodawNGP_q=ZP{?{v_0%&sro)1!)_cj^+FhyOXkiB9RTq)_FL zRIP_VmS8?q2NJGA2JH5kcoVJ?;(R`Bn#{=sH-2DlwGlf;Ru~}@3RcQu9}XTj=Cd~Z z9x)F@Tbd)?Xacj{K0Iuu(*>HE^f6ctIchPEN8^~Q)9zcN>1Oe;T`X2>(7-cXBOMGbddbkUad@pG z65)Y7BP9;gLhE=A4xaI`i4sWMTy03ciBA+;GWMgz4Y2o6{p zodR1&{Is4?FyhrG1epn9OHw1T5GwQtw7M9`xI+{-_22MGJ>8?{LxFd ziO-uGr`Kz;NJS3&Hy z>L@FSthwSr5$)p>4d24_T}GFIzaR*qN6ZC29~&viIHAxjCoIYmmcC+OG=VQJS^Z9}zd82q?>Kr1~3wcxyn zL0siUxEM#>3Ii+#xR_F7P^)>2s@JdXz^&0(05N0uCIzV2vx3N%9Lh5ahtLCAU@;Iq zkON=?5UFT+izvH1XwT#i;o3#Q4S_GfZdHG#!ImoqY$L?M_;W~j?tWu$$G8Yex2I@hN1*?SV z;r~Ot9y08^C*FRj1P)_W5Vr4jSR%f5Kwlk_v8Y864t2m^O^RH};gXA3QLwWVZ8MmttM z)RZ6+kEr8jxSL0i*AW1t3LYpx@cT75fCwyT&=?S|J0af!IO$Ht3Jn{>GyP2IS_tg4s@P?hvAE;89Z*g$s+pFhoN-T}4c^ zL#+>suv_nRgVl1faZE3cErIz5%N$Q1y;xtqon&_(ee(7F^E73T<{^)1!3L-u;~i1a zIz2xE5QS`@d;5B9MJjTz9X)l}aSn!bUh_#z6l;AHkW#;K${denK*$!_;&At8i5g7s zV1@-LJ17KvkP2Xa1FD+lgOC)-1nNpf2Y1W^y#s1g83S~Xk0pr;j`a|*ECvvf6;2l2 ztzJLTSCdZ=bTqO>GQtwgp6+M)c090+h@zKh7>>OL{E6ddO%Q4IS{RJCEcHrG-nh?< z0mY(WvYo=8OP4z+6Sc$o9%`G|xW3y4&``-kaw(yEIR6iIsw7)Uv;2{F%86b@tyn76 z!(KoN0RaU{F?+%?4v-Z-kU)@V|6Q(X1v@TD!OvPj;!*t^we3n3WH9>S$SFovGa6$t z6eYmqH{bo{n{Qs`G>~?(4aNnCY@pc+wB0`QmoS2TjJ4Z(cX_!9w^u8nwq9%(H#e_V z-pwz5RODr~eGvjpqy+Q)>`KUf$CZ9jQpJJ?C6)JZRoeN2_d7X;`2khHk`1c}-y3?^ zXs|$I9n{t)V={WBWg$$3{2yxp8;MRE5w}5@uqz*m0!d%39ksS2E-Tlp4x_D(D~S(! zwp(7{>lFyhVRCf=$Cq@3S{4|>kU5=hg@Ei%3jW;K# zdKQ#kJiVEf=bwK16_PDJ9^2JUvb0euJv-B2wIhqH1IVoa8foK8*G^eK7z5W=63ehq zPzszF>U$$h7_kE46}S~(wlhO-Rismw zfRuPUL?y8*4_=d$2&+*F*vGPz4}{z)u}XYC4zZ-g63rlqR#qI$Wa%`Bg{MFFof`B` zUq3nmGbrzFd8rA8`KU95`Ws9=FEDG(*jA&&kJ2qc3wu$R|md(%RyorzPk z?ZiV{-f~*87mL!i3uYHc6v4moRMgVyb#>%$k}CM!g9tT(WU{^c-7kgdVuho5GP&AN z^m$WMl`^(gCJ=w*{>=ei?)~<_1>qYjLPBA%u$=s75L^oC$dO|%!65K^=!LV z5zkGLb`YlksyfhTd>3?XK#vY)Dln^$`FT0k`!F1ttddb_M5zG!qRP#@P4lB14IBz>$` zUR~jtnA%G;g#m;km=AG_S9@YWa#Cqd7%UNIhn#r`P6=X3tde4XmSE-8L-g`Dm1?CT zIrWfN4}mH&;!pv#ia1cpR-*I`^oI=XC!uXxl6MmoT=G}0^eqD4K&#@$H4kihk?^X+JYS*6cON>X_)ow4O2}lP3HAo-^EeW#vr)LTWT+dK7 zy?4^0{n87&P+OKpB$-Mg=&w14C*sS{dDXb zs+#y$aqHru9q;$c+3r3P!d%Bt&RE;^k}S2RO9l;thB;kKJb$_vJMc_RhuJwGFO2*G zjqhB=M+MU%XE6=KtqH|LbVMi1v=yljQBTs%z5b{qW2hhQDiC1JYh5TDX z>7mcnN6T1RDyl0f1n}pCxy2EM5)0AGJ0xJq#Eb-K7RR&2`F$CF*3v^8I5E10uv z_oxZIqD7&4a$?Pf6dU23=C0kZn|Zdd)nPZ^B?+!Xg%bhV;!f#zoxtoVZq$}wrQ2Kf zi6b75&-`@=-9yA4o(|Ih`GCh@l^2c>S9v`750NVSfy1kZVgR^`eC%=k^vTha_gLqE zWTNws5(445gnI*mPu~M0(c`E2rA|JIA`n=iij;uYpX6Tc{Pl+;G! zyhxoSFv}8x;b^+u-fcek;NdP?Ufphzc(z_nu7Cc;i}MM9A|%R;b_ac;e!oW57{y>N z6t{8gj&r92QmU=GSr^5W`VrhApmyOP@*rvqH7qV_hFTV#Q-uiWsa9aGiT~Cg%p>nst{g?Oi9qVszzMk0OVzopt&&wTjAvm9@+8DQ4K0p<|5i{K^kga4P zHO&Fkqp^qti?v5-W&l*LdwvlNGayRX#GkepP7dnK;tYE_1E&Kl08#5@%uLBFCO}MW zMyif)QPRVF>4U)2@CK63NtpPwh}?24Q5p#7HQN-eK>YcE6!7Ad0c>PtLdDPob}L3Q z9Ux}NW1t^E5DQX((*^5pmIHWt&8NC*MynN;2G!%!Y+r81Ss5r%s=|vzrHQeE2g!z( z4bC8gx5^-Km;w*2>vN!mkjSyFZFAqA)lY}brfuM<2KEw=Z8KC42~+}1lIOcuBs33i zkQkO4fLA4J%Euu8Om>yDdZr_AuPmnC*h6dFTrGw~ z!pmi!(g15rzJZzr4@+B7Y8RcphrTOec=PZui}ue|f|Xg((QzLhq@6@IQt5!Js_t?> zvoa8-3&H!1hQJFbn*3x)GlYODgQuZguI78Jxq{$w=lft%V)XVDBm=`702s7jYq*{( zNWvf2K!=RXVC}Vg&SZkiJ1Z629&gM(M}n@ibMr&3X=(;8szZa*A8~kw^0dJ;{oJc; z;9wK7hyp+N62w)py9Mb?6oh9kKRqX~i;y zv>M&qjK@8zp-;Bu*gzY4e801d3_X4yl!G%jQ9uK3f&5uudW+EKr*}s~hFZgZ+hH1` zm@0!ZO0N~7?;TLV%mNy=_85W^oA2`H;V-E>rIwYF;7|@ou=0?CmC{tIfkUlI-6}F| z@;GExDFgTnDut&{zVm*KQq)J6P=HtbS_WBeQ@Wq2X%zv8kiBBQ+FtG#7b_a4#s1bbd-+Lk}=lg%Rm1Dh+KJbG0O3z zaLjoz^U-*BK)R9XC|Q*xyNxD-iP$n7);_eph+mG;5l09Mz(MC2nKlNGq!!x7rxi7wgBE}BlLyyVrPFX2irEm#zDWk` zdwRKr@{5Og9V3e5_OmsBk|g; zYplk=Q}u_VX{v%pPYSfIDM62c$Z>2!E`s@Z41cwaLI9eRfVCN6K`5+|S$hh+pAK#q zkE-h!AxW(O5_dp@B>)LFkTg~lvbtqpiPS>II9pCLqz&gQ#~BpC)x~_Ox^ZZgs}YVE zEmSv6A;$s8Io8v`@w0AJY%Y_*P{qBSy*3-}Hu0>Hb3js5J1uQOO$R%RRc6t3UkRNgS8ww`<6P=u8@JYhaE0x!E~sARLI7)dZuW+DVOp z=?H1G^ORa&Y%I^ceiYMnMb#rnfl%dp&5BVlL5Uf4qGIL@YIPMkKU@ZBE&#@e-7m)< zt9_gyJ7}(U0n8(O#Q}<50OilA6=9*YxcvAInGvr9ep8O-*Dofj)X{V&+CBva7#i$u zS$g&S`C@Elb7odS2guA2ot>uQc_!5(s05~bC~@SwiDgZe`%Q`Ifa^OX{vLj3&SY-+ zu~OwX8rnsH394q7w?Qvb?QVl_4y0|Xg_ay)ZJ_rW7$D6@1QncXSeq=t7V3Er_?*x{iuzB+m_rV8x*Zj`Ss~RvK~{ByPPT* ze3_k|6VL#ja{t#MCk}laG8w6n>l$fGaw?BQbp9+>-$ks17}=Fz;MCan^8Et=;YW7IAR8%HVUFs?6cDMWV9E_Et zV^IlvS7+%YW)y{i~YvO{%Vv^Ne?FqRB_fv^pyu~ zJ3SaJ?x(1HqjHhml>QVz3$jwc!{{MoO~INNCTqKMP>Yq}lXwDxZJ`fl&&sC1#$Fzh zwTK?;Lok3~j;I0X{uyI22%s-(oWi(p=F7_XWYS#n&I|{uhL%_P66uZstle?{h4$i>N7rWc5 zNs&*M__VJUs0}Y7T^|z|oBiy?AOBvOZZ^+fZ6_rLq-fINYmZYZ>P$2XNwQD#X`v|0 zx0{;l2kvx=eNep@U0=`b=~#!CGI)nH zW~>7=#IQ34fPsl`pHU@89Jh<*a-0qLB~{$@__h=Q{&rtwM9yF+e)!~Hf3w#7266&5 zR8aiII;KPcpV>C)cH-GMML*c;I2ts376gF~vs#pBs0*`;DGViS0-5MDL1pXEfUOfG zCcC3HAW;`{;!Yd0pfQ^(Ad9HQpvsO0rCI@vX|~~HfRNNNi(et0%yK%N^qX$d!2?Pj zoEHauAeg%7dLCx|Qpyv4q*lhzV17`cXn-}rzDo)q+<*X8v8)s60FHi{R{_56^$2^Q z0$^Amwt#5y)>H5Jcz~+YN9Pf2q@^+$`mHQ>Uu&@*JRW+pb@_91Z+O^1*={2&sW@;Fqik8hDk<VdbC~c zZasiPAgVUY>3Fh6gzJm9`)vH?rnJEEblHI~Z!hLZS|WJAnvSR2{q+9t{jFE4Svg&9 z{*Ax=fj7Ch`0%4;w#XY=%<<_D9WcP8KA+Uq?faHzP{sC!4#U)5a9 z=T^ggx9;R9Mi@A3ww5rx!I-vYuRi|y&vx2Y2ewQVsJaU@|I-}?o?Xpjk~7CWmz`F9 zsIx6=V5UYP+~KOj&d1au*G}t+-|OSM0z=6ux~RM{L#LZj5RdH!F56X5Wr#&#fY7t& zW&2s3Swx|W{=X2!lShwo;E7oR_z$L_>Y&)>|hpMQY*vN2$($ND?{ zi}-BDWLA-W!yArYUOz32Gf<8F$aoDj;fJXXk>l#^0}f9RSr)WQ`^9pz+5X1o*J^Jx z8rm*OVFSZkTp}TmBO+#J)7f-d?*HKb`fq=Hvt|jq{N!WYU2bk(e^|zxrd|N*MQ>Wj zMJAZ>Vjl`#8XboI0L#+>8YT3fh&cfF1I9y&>Lt(d2$PNhDPfdV8R{oVy{eXD%osR~ zeLzj@r?iOc&XrOJ@c*>fZNP6Dk_S&Y`n5s4TJ5Lp_l}P0(Hi;A;0ggsCj!YtICwYT z|H+p-Bhb%I8+Bbz7W-XhuP!Fjse`n@gxY2{gIL>CdqhV?9gP@H3WN#8K~7ZBKcS`R z>oSeAtYK5@dM+)ux99_YZs3sCX^-x+Y_w&pnU3b8<}>^?N)-3ny)*28K!#V^IJ+b0 z;cTu}H*4U2zQdeL)+U0`MLq>CYggfi1mh@)6kmP=ruoiiCq-0?Tj*f!*I{>`F28?aEYA14-G`sSg3%Dx(`FlR%}x8<)l!x4h^B}pwZYNXDjgG& zQh(U#cWQdbdL&TJ&ib7S(7VE8C#mB|2#!@%`A3$iq9R1vOK^Lm0M;!Q=Aao=6YC~0 z`u(ou0~En?`RKSsVQp9@l!0g6-Dh9Doun5KJh2jDuzq$HfAH0hfB0g1h5lc9aex2% z?T0&>tOyY<{4-`VSf?;{EH+CzLo^8go`{}voN%Pb(6gm;(6b#wzlO0eYQietD;Pu@ zlo%)&Rl zPQK!MtTSz8HAV2V3^)WWC`!5;wgDh_jw)22+&@gIIQXea#o&v%GH$$q7xrDST+|vk zcJ`qP0PJQ8p$EI==Jg%ABkQe*MydtE;wrd>VH+}j1b-*?hH86&WeJvGD19t1v$)uv zU);U^@WVA24Nu1hPZ_o_qU!aAwi51l=jXFFlMYFqkAZlI)^Cr0-pY%Q5i6ONcRry8 z!17X3sHD@!fIV0Y^7)51J=)Mpv?34%?F!9Z$Ei}!GRAsx^5nQ1jkFpyqwRK@%rn&i zsOuyzKbkeuo6F~SyWQ@^-~3w_ZA^XQRfxGB_Ivqug}fP4dA@;OzS{lczxu1+ z+0I}8$v^!EKfg<|`To_bFF(#FUN5k^<{~~xc8Zbp>Q?(q2UtDCxiUwY2l2KJ z7WBOIwusv?$VY@fSlBG6jL0i7Wwj94Z~K9lqJQk?FjniW;lg6VQ|toTBKWC~8Yu^|%71x#urLF;I}nm$68?Agt>oKw;pi=&UF}=>C>x zK0;Kw&jro}%jk+JvLFpI+@<6$m31cO(^j8-5Wd#raIrza48}B~XEKPM0{Y6}%YYkg z56zEg&g;*e?qIsH*t&4-+PGSfX;orq(UpXSE=RC7INW23p4UV6Tv;Zl zmoV*(C{ETxJRkQ82a$&E(S8G;(eCKh)2B}t{pob?{f`%A7Hq}wz_%T*GXkUxD4=h! zl1wGEjVJ%dfBa{+2Hg+-;OGD94}W@|#JRV3^=xZM9?CG>PNs$ZQIr`$%3?1%xIPeU#^&wXH|ju zVRBh312Hk0r~;s;j;i4Zb@u$# zTX$|>*glIsVy{vJ=Bo^6BiAOq`c~K*4{AYMrHfx%D-#$3f1l3UgGw1vgcz4X#D>)C zl%(Kb*!3v0GvF(V$p4gdhe52bv_^`c@*$kqvAUIXJ#Zb&p4;WMxE^Xnm42Mje2w~u z$ChTyE3_(>M}1WbLae6H_r`gX(G|K0D2=lHPcRI?B_v;FgTeVPJTH);2cjmyw5~d6 z{&0m*t^g*0C(iMLV*-V?uy(2H*l#M#Ao;#X^(Tn-R1SC2e64BbWX5x-FlaTcJ@8e_ z^E%`C^ulCkM`a8kX6Fw!H(TIf2*agDyEy8(9ajOOu@V)) zvJ@ar#ZAO&oL5uCqln1k+b`Oyuf8D40sb)ztkWk~GLENdln5fk@gG`cl2sMjG_s%T zY;1rIs$wKQ9N)fT*@hc5?mm0-9&RD?oo{`3&Wx>}PBdv)@NZg7=ab=ZNX^P=Embc3 z-e3LYvz@{GH~;j{e*S0w`jaW|c=zCNciYTW!MvrTk&-a@gZrDu9jGP;uYUN(-Lc!3 zn{7%7vyv|<)qbB-A9dfnQcN+S;n;3Ef;d!DX}WRKurR|dBr-J}9&2KyrS~a~p5NOAX7Z>Mm?@q@^&ox`TC4+Gf z+HMfY<-tJD^`{djm@USQI;hpRZa2#e%GZ%oq8+4PVTS4Uby=YR;O$4N1kQyi0sMym zWFZb&tYH4eRK8kmwf4Pi*ioSQF@TbM%+@24T&NOxtY%h9Emw0w3%^2Ed9veZE~`!~ zJXi+ML**0~>FIoi#-F;LGI`0af*hQ~ioKAEW?-=stfJ-PqTzS3%tjWA&6Z z*B3L6M7m6rW=l+N^GGCAs&27&X@6_0FPZo&vc4=`Mbxq_5K&A#3z+~At~3R*%qQzWTh~$E#hF&68IM+-Y=gJU#gx9g(Vrge zW0UNxU#cdcMeAfm*$h*$F~l)w}&&t0s8@xPmDUDmBCA?J5|m_8NLAihc*sr zL1Sn8?gy7@%ogHh*R`@~yUOT2mDbsx;f=aHVDtGt_|#Cv%))?@or+B6-b192%pA}I~X$%^;*|HQ7 z&DD~%iXb;#6*lyOPlXc~j&xiI;{AHcS$Xz{}Nn?5!%pbunSD?{SV#j>ha@+ai1R%mIEz<30j-A?CBl(FTS zTryft#yr^F*%?Vjg_#wRxD3mep(#Flc_UUul3XU%Rk1-8t&+Hj&R^VKM(XlojxdpS ziB{oWi~`1qQw3%LMMeP;CRhBRm;}cZ97|L)=&-9ANE`R;x#{fTVSvYoGroT3#dx38XH;QkqS6^)Ro-iaIp`2bB-Jl|=eOV59bf;!zx?^1{ZIe;FaPWh&TS0_ z(EL;DiYl7eXcRL;UgX4j&gCQwJt>K^|f>%yIyg5YNH z$T$DU=EvZc?liG(g`t&Ibr!~o0wEvwDX5eX2+OkR*$5Ca`sW%EgMpNki^2EDxRl_d zSS_JeEk+b1eEtb&z%slsi76NH2?DIj+0Wt?oGV)aqLt5h&`(U6OUrdV;N-+w30>F{xX3c z2kckbbQ!M8#ClxJQY;9YAROmkMy3c@BKE5Ud;C@IMI0};SOhPsJ(&#Qj+l^$?s$=6 zFp|VzP|G?U91&C{*gHEJ-#>IgUfNqXZ(KVZ!3P{}Zf{I&r2)4(#Mokl_%%B?6~Vvy z+ zAtESymD=3NGdNK(fI~z)r{vZ$sIWAc&LB%%SMo(fZweJaE3EJHH5o1dPvQVEou$Dm#hy}CP&&bEn)faz*I+sn zrPg9JXaxuqC!;0U7KjvSn7c9Fr@*Yj+gUkN>vTIdR%19&x7?~0cD7ohX)|AMmlKkK zGy`r~psAriDURnBOLn&b;Z@YD0+qrO1!xtIM_1!BI;4i!j{Sm5!@MX5lv@^JXN ztnxI)z7RbY9+@Zy1X+=AM4|=Wlqe5aa|s+l8A+Jojt4}L61ZSh3ScXRJZ`=eZg=Xa z8F`v$<50?CBa)ZX1ymObZr7=1xR^jJYgwH)my9T?Qxfa4xjGJ0@!2to<+x;JcNJd- z0k{JQ{RlD1%HR-e8Ac%~wT7LMPkWe_+?{HDb92yc z8%0iaf>p!sJCZj89yVL(&2SPJ7zp>bn*Cu1+DkE3wPmM)Xmf?LBAqwu{aPXDf@x$a z#hmqc8i0!zrq~2)vcN`{S%Ju`;>c&lx|F&Wi!Pe3qEyvXDpYD}6>b|>C$UNaAc|Ok z9Yi>PNoyv+vN>6HF5KMFvAcqin5!k%RuCMGL=u&7G{evi4@TXBx&xdIM{k8*xKs-Y zZ48v`hDoqaSczl_Qo@sP{oA)?VC}2~v z;?(Zua!|JEwgg)st~BcMDgxzYGhV=Ns-{xyw+8#S_bj1rF?jXqgCm42`hyWgw=i%4 zZ_Tb}06~Pwu$*f&p8fHE{`WsS+J65BN3T9OcjMFF{}2D;pWoY^Hhq7ym8%M)iAIB? zRCQC4B1KnOKF${=+wTXo&uuvdN7-I>R_QA_^64TAE1Fzq>9m$f@V>N0+Loi z;EI}1q_k2_tu~QR$yggZBL~SE=0U#hbvjq~$3=<;!H`nT3Q}lhk@QtvEanWa)Iq4Z zz}DM(IvDDyqMX$snl*e69f=ZcJF2zf1RGc>6@^aV%end2vQKdB@@>sZgkS|J<#pAZZ&Q8+j^RboEfkeGL`9!(Z1=? zW*2gxH{h$T#?uvDFF^n58OV=T>z$|X-Ps&~zhL1bNwubd-yA-KR*BOWY^P+UsY#c- z&wLIjP?P!vc~f>+f)`4ZrkZ{V^?Py(%9Hkn+Y3|Bd)JvClxLIvqv!i)zy8MJ{AjmZ zQDlp+{ZY6S$JF7QWXW^lmq zx^AW2wiE?rBGv5o_d^rUYt*Gki6**TRvidxT1GpF5t7t$bbRFpJzZ)H4R#?&4>cNw z7D&kiqKe=WVO5hV2}9~f=1f?&W1qCfAcVi6&mp5iWdRGf3|8<1EUd)dqDXzOh^mx~ zTBTa0fJOd`Mv|$NFjAsqr8eL?qXwWm!*{kv8YXwqdmxSF32LutQPxXrV3kCowmsti zLz|;)$raT#Ta%U>Fm^Mj<`#>I&#nyCT|`W!WqM3EFyphZr{(pm$+-6Q~gEDma5mq-VJBh>MJCvi6? zjgEuA`gAeqblTJL;LZ0B&VKVXsE)fGIoR8Gv#5JhT~tl3K%+aUtydRjCV`b*A?5a( z&4z(ls8wclmnvpT5VPs8xaQLM_7(|PsTOD`p9FKPfaN;Ze6!o7CSB~=l9tG*An-(? zf(I4-3M+z|3e(M-wOgI0RqjnHOaP=R6Z~RDw#spicjk%SC_)Rxu2a;X-NxkA@gbjRuR}P>^6LAJ`?x-Hni1 zmo7XKk*o9uzz=eY&Y0Rn&J+b#CVxCtHi%#-`2>!STPflUMRj1!X7ezUGeKI4SwABz zf@+yQmcd1(xrF*1&jJY0$Z^TK3{-LV|BcwMs@c;gPf!u8C88Dl8PkZwh>L+lyPnbN zbvc?|i^{gjWY}zM?PK;Z8r{7%pKa~#U4HHU(XE{!l2!;dHC*slold9M*_cS#O1W4Y zP3mwv?V{Dw(~&ejD`1>O(~ak2Rppq4 z(T)s7G@m`Ql9wV08`%q(vaMP!?*tp~pm~B5WWD~{8<#IzX%N6 z(|(9~cmfcx&ur7Abs+PBOIoto(45a8j8-ZJgAJl8udqj*@9lxQ9l!O__TpQ&CmS1! zmVz!oEr(wq`5XOe_P44dMVy6#fl=Nvk=$mGPXVndEU9Ryb(0N0Oi~I*ctC&wnD`WQ zye|`y7g(xJf^kJcENPf`qB(M%!(CvNKoSscV1BZOST87cr)P#G`iWec zmz^~TZlSpG8m78 zmHc}AH-9_FihqHFH=q?tLarMf%@BxTVmt;lJ&^~SQeI~YkMLf)SgbTQ_r2<9XL0LF zdxV?N-lK2dy}i}%c003SsLBC_RWl$XxaoLStJbU0L|u4bGM zL31)O3ea6_O{t@lAZ4rFp(9&PW>rw+!1|+9#BwIZ%Y@3xYNixhi+f%l8|Zlt12IoK zc(l0jHkq(KeDL-spB!n1D{~n79hoH#Y?MqPB17B)RYy{cl9+3#@7e_pEKpC06@(PQ zGOw*=4c*Giy>2Uw?VxNnnoPKSB-o#Ryfu7wb}}1pf;u8nq1k02^;p7!B8EzIsy725 zSYfP(e+_=@2JJ7UV#%s8SU>`XtAZ;9&R$wZ^jwUKD!`i%T@Mr{T3E2FRn#NQw%46Z zr`rpkc8ob_b(H}kCIR7MWGRks;F*@|Ol*z<wbECR$)vC4}^l+$4S}0Zbc;jvxb57ctwS z3Sg0ylWfNt-@n2NlbRz|k`2_fQPR#SitP~?U9*UsUS4ZbU&K-E?Ttc=?;*Ru07@6f zE(DVle7AaVmjMz-2yyx{acS*$SuwJ;nR!T+u^X&$*W;SHYFK(=em)} z+rE~kqa|;kIhd%FNvaIBPOTJ6@l_c7tLtgc+Zaw36C-8Wet2)@A3d1wpWVCo=H`V9 zx2seXCPG6NmoPFqG!yGmrJyGgt7+0-ciT?vgVr~Tts0bQYqXuB#N^r5JlJR4~z}d7Q{#)EB6*0XMiIqn$5^Ju2M)z!3O9;)L ze8tA+nl%-w?%)<|ufKaC6m3{eX@b;DCd(o05G0gbRmvbfmS>#V725uSKm&_HulT)5 z-$)$?tBBa;AmFR)N`EB6a~Y)~ufB{`Ca)q~U*7mw{DSOqDgq$1Sk7=nVnKtDFk{+i z&TrJS5gKvb&N-9GeBch83+EXAciwz1eSf#HfTzemP7*nh+Q_ zSF!@*dS~vOzcp(P+TrB#5B}}1?ex6~0wdl=2SpV%o%j6;%8dn<19=JTYbA0fsS8NI z*cYd&In3jVa(pf8d371h+L8uG*sGVzSP=yE-qDl!)vJg2R5hFVs+wI{ORnMU#hF8T zW9@S?1=_%os(vAot-}1LR*kF(cIa9zjoxJjK@~0BJ-2yzdr*cMms!thJUD#g>b>zOXm6tD*1*dRH|?px zg@uB$kOG1d4KG%3!$fK&V~T1N>?jE|4fTkCDPh=#Hj*$;L`Nq9#Ckbq&A>y%@!QfB zx+;-bg?BljN;_3^*hM1HsPkS`SPM|V(0;M@68%{3+};+_R&0ukl~xZ$fX?Q0Z`040 zS~ag4_6)c(c_5&bWS*4~nmi%7)DCr&gyejuv(qg`^3fIMUh#bA!qv;S?_Hm2D9A2r zS8B|!0+kqL*G?3QV0{^|#~&_J>&wLYRm2jkgzWNrfYcVP8$0h6-tJtf(X2zxTwAj> zoOTTS*gN%6r@MV`f@N;2eg5$qkFTG%LIdv3C)>l3mT64%49EbU62Jq0Fz9NrT0@Vmh(4I5`(UV5vPDBm0pZ{MDPYBst}M@pPY8{m#sVLm32Xon=Rjx7ro zD*ZC1(16H!5l$_o=ourQT8Si8w~}`+A9TBRfysKcjncsF{d52FzrBTlH6|P^kQ&pO zrPW$CM{Nm3QjF(24ZE11yj|e@0Ro#5ZnJ8w0%%&JmCGj4nGzQ*Ef2}K(Jbe1m-B$M z;^kRTgt8~l9q7%-U#YW+SyB3JD-qQkq}KBxs*7W$yo;WN=dFPdLUn8~jV11=(cl9{ zQ@RlTSylm@??e=VC*~h1fTKwTSQn{QTnV^A3B4t1%_Urs!yWtzXY_KnO28tth&zo^ zQP3{enA_+o7^b+T~1w zrKQgGUd?K#dI@v`D0d{CnJV;pyRE`{Iw_(lky~6ndidnY(S>0xD@L`;s+CaW1Q+*c zv5MLEafBWxRbo?o;qOK&U#7bPe$9Ci6?_)11-`{9%6oaXtpR}i^$7A-FmNbG{l<9O z-MTaJ8_iaGa_7xw7y57u23zOOjtZm`BYtm=5bS$+k@v%&`2aI9{!W&FMx^jHH{cY`JKN7pp1hzTjtz4ckN&Nn~QDRVV2`Js^-qFQB-Zt+GN(HIH+Sj zY&XO6H-z*eCeZ>E0yhvAfTmZd7PHtweKq~Wj0d@0+HROz=)70TJjYBa?0X(gT|*#4 zeyizB`s#YI=~U8*49WxDLBH9Vcij$l>NKd*xPdINV60HP@FvAMQ$>wIQqAysF`c5d zB8_t$M&LasnRFyjt7dF2ZYvxkAp4-UBFcnjG&C330t~1G=8B;(`WZY;1-Sx>07XNZ z2Fy#bB4n2s2EYvT3rtnYY7N*w$_Zuf+Sk7O?H6|s7PG}301D7;C|lMv3JT1(+|hs* zHV4bMEMvht80_|>wM338cRlOfc=Gzwr>{M_eYP(Y9!s19$BfjM!3yg77r`nbPz32$ z_rFM~#~+Yw7_y3|CES%cc6cY5(lSS?)*EIbnu$bAH`~Qe*D|&C&Q5>(-X1)`PNQ-2 z#lxG6`FuX3ukxw=Nhv^>(XCJA{lG^m6!(aX0tG)UHyQ_9r zD^`v6a52Hbb<`Sx*vP_9tkqKbaC6aD{H@so zI@q_9Cr>PIubf=R6d?heK=8z{eS^ip8lb{fb;-ji8w$Wdt-|ByHDi>4CjbR^nVy56 z0NkKi*Hc^s0*4q&R_nStzVYDoXRnT1zU_L0ZC`H&G-o;j9I2w(K+%S83`@~2GVS(# zdSMbf3&U8hbML{UM~@#rdwTb93=?MTq5mYR*5gV*%yE|)b{VFB^X~5i>hY(78bC5# z5`LG>8pDLNT9d7MLyt$%8rGbo21`0XF>ilwaQNWXl?#X0Zd`l%{%wK068@)89LbIRPi{pMY8-KC43n#UR);{APVJ9-N&@ z<@Ghx0qnM2u>0ff0fd06)eJSz8%EHFT-mY}WTAUu87S2847^7bz(E~q8JydkIcVsZ1zIhrzPpZ&d~gB%8n3=sY+zO-rHuh%i?vP<$g?9C z`xAxfjJQ^ojFw1(aYhccIPx_tUQ#$U0<{;VPok<&ho$1DUOD+yv|`DdDS!tMpj8fb za;jLTG6E3m0MvvO6{w(EUd zrHy)6+k9|yt1os#eN#YefX|3czV`n6M;GtC z`R2XLJPd&v0M30NXEB<#- zzyh2^!tKrW#-m5~-+J$(7jM0I`)I#A+1opqb$VT9(9~*_e$1&QzX!WdXweTY;?NET z(#{mz_RSx?-kD4~Bh11b4+W5 zGDNw=Tc2Dzb9x<=a=F5;)|<`iOlW;p+GZ%B?9!O^>XUh|*%{Q@_bwSAdn5C?pGZKA zVHM!^+Ey)-PnTq%|L~JQ0|*u#(=UY1$gJQLcoop(%HqT!n>u3ysXIrG3X_$*g}EiE zt%<44bg|pwJ?@(xaXQ_YwA&glLE7%0UFcv9kee-J!kNL-6x|b-Lmc;N7wvY^S5?Rr zh#x|Hva&->xTK5OZgTaN6DM9~R?_Rqgp`PjNz^j6vSsBLVr(Q>0lKa7Hu#zWEZd~r z<1?(W2xO+T`u5X1=aKVp8y64f*Dv&X__!f-?16Ah6}+KT_oVsbH(%}GK1Um4>y+g- z(IH$I3t2%MEQjGn3p7KTZ9t^9_3EQ14<9~!^Zggk9=!Pc^ABG?TGUdU-^a5np$RIaiEHO5w**&eHFILuLxxf-cMGJB0cj?W=i?AgQ5za^(zspTIoUnM0f)lbq`&M z9^$|octdq8quFdCAI!o~?5VSuO|et4+HK5Jxk%0Z3q~5m_Iw|mj|9q(gI0)XRY(Pj zKs%aJ;4g@uLfG(K2K)I)BxlQppN>VUtnj3wqAPw=PUa*IRS9wPpu5@8ICgU;4Ng`O zm<^D5HHQUmvxf|fF}6>iT&;FXS?19!-a`zKT+0a4te}wsU8VC7^*lAcu*Ieo$!H!! zwMCGQmWLNEcJSG3_cpIAy5Sr{#C`|E--Q;-Hn+alfT4Zp$m2zG(cwd6!V4iv(f!Xd!5 zfBM9US5EvQwVqsIwkZZtPy)CKFd(*ubW!wCXb(}$J8Z=*+r)#Hxs~X!Xs^^h*0F8F z>JB`wb>1_?0JhEy&%#iu;nbW)uAE4ygT=WzgA$YFmuhzcMUu(}xeAJpb&6Km7cITf1iw&msUxr*!nk!7B3Q@$IXST}J3Hnk-Ss z@*h9~qLjq|^5-IIF*fI0tYz(bs1U5HaZHkW4vLFZi0#Et(L6R&*oO*RMbh2`f$%s_6 zS}X%Ha*O51x*jsJ%@6@v=vUZ)$71PNk-B7Js^bGRqxF>(@YK`je#Ci$H4q{pdK5uB z`O29Ly1)f#WrZw2rYM;#_p_7%>j+*(IRBZwGo6dG`CuzqM3A=C?iN|-`u$!Q=Cy;- z`07R{04!7Qw@QeVXff&TuYU5$D3L?hu-0f*aV2ZFF@#13fUi)KYD`yYge;s^aHo)% zjtPtjuvM*U_JubBN;1?0gJv+W8@|P6(>FrZXl_gg!-m^!1^o`fMhPN+Rce}rve(wx z5QnIRqS>C{DH4)dlBwa>hY4~Dsw;9fCH1sKSjit(>az!@4n{c;FPI2Q`ffA64u>FyTdo2olHs|Z=6 zQqv(dum^MMejQ~t%!?Cf4Z(#Dbl)}F8_gWh1e!QDc?Gu#dQBq@A$^x3B^Za-kM2Hr z`0&ny*N^Ug=LbLd4MMm_M0+i^A(k^0p*;5eU(FMwS=&47XM zj4&#v24Ew==PPG&NZ*x#l3*cgays<~PRYVw5NBCIDyWlEwB`M@z(YX3P5dzfIPSFIf3riSL^s_-BXtP*lkgjdqGN%^~(fDU(?(7cwhr__` zqgFK-%GP3m%H{y`KaSaK-Ugf(EpiStY-aCrL5#OiO2IReIep2h8ofHf!#;;UkO@gLLO$`zNn&(a2%J3e$}gQ* zq4iqsqXadK2t_?(xflStOMQxzu;a1+t)OR(*enAs&eQDmU-pdc=U26L{MnE|V7D31 z!xSWQ<6~H6ZS3e=w@Ix(aru7C6a5}7Mk2=q*Xogq>J6Xx27*E4;Q5&Fu0MKw|LD=J zSD(J|_}O5p}1t3Mv?I+8xppB6iImtRV1WSpo@v=B6&5H zk?X_lEs`*-DX-f{S*$bM+Mbd>Y~&9ruA3SE{f&(Pfsa}>XuE!=-)_x^602vGt&<+= z2^=UH7Ub1ZObG1ZB&hmc9wC5oy~%zsi7%@c;15hC0I)F1=|L@6tf0G6Vl8kA9!t<| zm67c(mlF{<_NH#)&J2b%MQ@dW_<}PH=m(xK_``Ivq@aPRj1VP9Q35B2{Z4xeS797y zLu;foHn+S=vK;jLV-vsX(8?q#@Lbvx${J>vON}Wcc_b|k2MW-vR%4pPFo4OwkHAtG zgtnb!1Xe}sFkdzNUb{w4&YM=HqAD=Isur@I;DyR+*JTit0rkkV6lrWYBM@KoVJi#U zn{)_EmYEPTm7bKg`jh$jYokuXhd@#DI(m$4Kt2bvbA=*6)T$&_5wQHpB!Pa3A4z%? zb1OUr>H4T$5qd&Y#ITSlm9Z-ndhr5^9XpMz)oLVHrn3Xb3hj$w3ivcot9C^X&05zR zjLiZypFUbNkkx~*+c>u~s>IPHaC%#lcAY*0Rt*rM_{thmMlt`+J8wRC^z`w=*Pg%i z<_DjC`r(^z-@bY8$-R5eKe~lSV>$E+xUY!RdK|6ds28Dn9Ir29SA0&0@^uOak&$EM z9#OI`m9UUyYXEOwiKHS41il=AMX?oO5dxe*Ri z64nu51x#$GOSYNKIiXUlZEcPNAYGX}4uvx($W)v|n7(qr&p!Xocfa?=m%sAn#ch1QLt&OFB2|b9iafeZrpE=U_)y%I!72ujBBVtvmyDif zyFlC$tyB^k?&BF@jgc~|1=n$03O0+w0-$*SXqiU5CJqkPbE3_tj5asC&ZJR6WTr7& zOu8N_+V!wL==V3y9&XM0IDpj9MJmOegH|h+F~(y~_&R&z&Ss~Co>tgyw-Db06)D9N zW_#>e1`I*DW+HW)z*gC5H&v<1egZ!i3MMWDr$znv?HSCS;gZUS~S7jm!7H2J3$f z*8gIHH3%@kXn=tY?OcShXe9&1E%b^^1JWgv?G^1{%d}x6qQu7BUZT3M_o3rA2WPLp z{rO{DCNrgtnVd2^$X_&F1=R+V#;sOKRkW@7&b;X~0aMg1MR>WAI!}Y2L0C5u^ zal`CO)Bp@yfw+)RkFfzPpMZc>Cu*j!pUrFxEOZ3LD>ZHmSgjgpUXeQvA;~R$JthV z!fm;375LRCT{1PR5ETL+KzG|Pz%eo3tExqhuDScue|E>>F!9D+%5wO3syJO3;|Vyh zGUyowjbN$fOG*#Y;Dp1AGY*3JVso2MM?IhZQca-!j6{A^J-F0zWY-UrTbIMsI-`g7 zcv7pSEkp;kq*U+JBn_lw1_vucjwZ1&?HhQ&YVdzc6@-3uIKUQvVVV|OnksAf=$R9z zapF-WIN?fXZ_aqT+eLG&K^+fU7jp#0No?8K(s5&ofL}y83!G*$zIJgK+H@|RuG!ex zd9X3t@08TP_un1W=64R7d38EPuMVTZb}*n!a~Y9i!iU%ehbq_-*-`U0lJQAa!zu_d zI&-EXDS%*_TF{Am?TFjh)Sl-ke$dR<$^wl!lmrDBNeZNv2%UHnSy>^eUUbFMQh%R+S-tIKJC zs9Ik+xf)?DEP@pt1$~tmV!;#?uI+%X43ia>R)f?KgD-M|U}bxG=7czv#c|8pESbcO z%dgiOY=cYq=M-|yp$W(#uS2s!;tKvQGMz0b4JyTI!*hK%3&oz+f-PaBstMh%%J9jv z_db5_gAYFY;*)pYdGoz*e){71x4-w}&tAK9`PExD4mvLQHOkNBZ5gb`r~b?MJdR!w zsWe)Et{8ENmV*rs@e6M06!&1R!Ya!Xz_U8zIMmGS@BPQ$f%ld-<|E8nn}J`;76iIC z%dwX#RS~JewL~haa;%0=>u}QV*W7liIorh;bGGO)A3?h+svwM*r8m-bzk@|kXwKSf zM{T?8PIi4uXP2#z9Y65IIEXshH(=lv_Mj9T751-q1k&bFAg~pJDO<=Ui-s0M zrXz_6VF^81TVjhqr(+Lzt!=*`CUL852`E|tgow?@T0FM4l5^EeQ7N}(gW2uHsNG|w zY)s~xH#Ua-Rx$2uZ}$&olU^lV8KAMOs`w@@Pz?552jrC+`1DT*Z|5phvT2yosWRx< zGZERN*v7|U*jCRh>(%8bVA)-X z4(k=fL=*x_X6;s>!P0(#vF#jVh#7>wTM*rY2I4fuRVYK z`m;CR|MZJr{_L~2Zd|)@_56){PhY>GblfnCWzA^qYymtfBf2h0m0|zz z8i+v_M42+~GefkDatR^8?$(-H*KY3)y1wUoNWs(78!{G_z@uP8WpKHa3ah8m3e_vB zFfq^^z^#0)ct+^)tWDdkHv-|@1iaO!t+t94wA^*nFCg;i__kLp%O31Z8?{8*p#Wy$ zl1P|~nO)4N?KUEmaFqvv|P^OLg0m&iSLK_s?ED zdh+&X-~Z9)pTBl_Xf*xl;njEEzIXfn8*jY2eQTcMhadlV5r86Km*M&H50O>59rFZ4 zIG;WRGD*ZYUj)svzD{@UXLB@IEX;hfd-?Jw-*|Ta=;;2vdoMoP98Je?;Z=0J*!Y14 z#^g8b4^T(J%a3de7iu-abEtT2&no1~pgrn7h$vIZqhcw*gxL3iIj-7h0jo8q-3}~E z7wF5zP9WuK-LQg(HJk5(#R4s>cWAwG=#Pr2HYgTVsFR>7?gi~87qrx#+NI3O$#te& zY6@=*&fPL(C{#;;C{@wNLS`HVUD4kXtbi!!CMg3L(26pKkj9RH5`k5zHoeh3dw;h> z+JmXu3LW38*LX298P}~k+Yg`Iy?FqK*J2WuD|iMnK1BmZ%qj*5EZg&Ic~h5)aUfZM zYE;8#e(B)VBD<#6Xa{!PN7Sa$?anN}?l%pMO*H1O!1!7IXmGP*NwZzk(1y+BI6c{I z#*__a$~g?au^)9zW?+D3()?cxY*8-+d?hs8b70m%m2)H#sxPa6SHK7?Yt~mzt}wM& z1}nQO-DP^i6stnAW)>mL{eF;>9AdQW|Dzm;T+q``Mv zSJ$B3pY`(b95gbtgK3Cys?$(9@SG|O^fWJVB&PZ@FPWIyM~Z{3^H=x#mmc04UViJ{ z7axB6Q$|FiS9iMb>Bb%WN+?(; z)j7^my8-H#7zbpk2=QQ@CDrB=HF9!I zu)2|zuNC4eIZYU}lrs1;WjSy~3AVPBU+A$APUSYomwvuRc6FH|f~Pw1#kyQA}X}VX-X%Y9?$KT+A%1 zG)62zSuWw(>2|m0_{O<50s&zy2)j*WFC@;EaX$=Ew>2dS%2cJQrSQ4LMK@X&%F3Kp z2{<7XJMv_&Sw%t$qtDJLv^zCEP9t39`!ab9eiIvxWH!olDz^rgPNY-L^RGTQ&ar3U zwGfU%IS|;TEI`|^WFfNDEb3;q!3E4#Pn}v8jg*97Ck1YX9Vp`9(MYD&{n3y9$?Kb* z>uTY+8+1l>B_1t|upemIWD3P>4m$Nl-Bk&@&D^bp9b{t;SrhI-E{-9$nnH`t;$QqwAMu(+LaIZXGjLoYI*< zd6X@zhA9KM-tn}>Y&#Yy79C)3gK;09q-3Jhf*KN2w+Wrt z0j*Vb8{OqN32kdCSRv`qV1YE=k0&S5ArJU&QC}Kwz0; z#oZ|ydKe2J+4CjCL=}XUIKc{>6@de!Sy&aHIRP<^(hrK0*nl$KqY>CBBnh*wysnG30QH#B&cV6sS8qPpY|TyG ze)7qUo9}<{)~BC-=hGkm=>3NueE89iKDqbg#TUQwcyWHe>!UFsS~}4?EpI%WZvQ#CRihp|Ql~*_q01CvjZcvMJB199bQO!gGXEB)DCKGbC-5+70*zFB) z*^#kDHS=nfCehL1miH|opjbpq9LG6YLPx0`-n_BT)D<7zvaUsgn{->lA#T_JLIJcV zlG$t}Urs{SQHJ~dekDemxz~jugjXI%u+<-5yW$IKnuL;56w6z{cZss4WJ$dA_jv3^ zus%>?D{0THR@kmqW5`)yL!W`ppN4saWg*Xu3JmbPz|TY65w#h^WbuTN5z4k30!okT z208EY&F!nN9n_(sHV60(dRvE0J=odD^K+zS-2whc+x`CR&eQFX5w6>qbvmVTDuQAf zpyI3>f@y{;Lobs^F>}pP!25Nap>;!*N-dZcF6&Oi7>rnj%zQ0_qj0`TR|c9MxCnFm z?${I4VYc}NIJJ!L{ar7Law6b2wOQdgbIakDl|dDb;W4yiDvp&kXjTals~A{`(|sqkCqUt{(m3J-)igc=7zEPN#$IklXuui}J8mm`oOWGw{x7z|Lq#xONe zE0$*}-HnlGF^XJ@N@vn@g7MhIgA_t6x^J$WVOyUl)$CG=piL{|%QtS`zH{@zgGG1V zYfN8!{oaFzuibt3-S2(vi(mWr`h#b0efP6>-h1!kcdt%w9PA$s(ipGshJ1As!76UY z305pz1$v(2m3bOf0FUkrEg{1ILHfwMm|yUDBq6W?va`9l+3RkN;YJ|B-et%G%B@>R zuhcYg%cDZ9VxS1%UPF$>g$Y^IWtcO#T!~=iDutFJsDn^&!a)t@eiPX> z6W+k=?9rZ;&(PLYLqB6o{k*($aXiKyThi_NWYp?yY|pwiPZHF{ZV)Jicm&NOtPv70 z=bIr{84YF{@^}$|AV4Ik$}SjyZC!IlZ~;*b8@3Fz1TEFgWw z+G+eQM5IyxP>Bl&z;cNNqy<4Xxhfae>13Cg3+)X1*uD7l!tD>< z|Mc50o;-ehbo-4TzIFB5&1YYJ_x-QEc=+V#`nzvkzIwUSiId0wI$T9YJ$_UowE~(a zF1dJ4ube!+9;LmapJe`X5;38ZQEYt+RI~sMpn*a*8w@sD6z!%iD(hJRzEFIl!PX{VdmJi&k+R(+`qfGHVXKV0-t%l@YX1J6~zmG76ZMkn&8x^r^VyBHP;T(96X@Fx5K_#<)4bM$7xG zJEIvxub47Ov2X|RtJq4Sm}XjB>330pSJO~K*H#Y!+~WDToW37m2Gui1acM5Ol62 zV-s&Q;8_%vaJ*>s#wv~x>@qmtsGXM(aLlR`wU+Eo(eKWtsvu#{U)i73t4eX};yW)M zzxCexPp=q&9v4rtu zA`>`_P+52Cext9MNTwl}n^w?fEoWo-VCVMU9s{gl&}($Z7Ic|DVtas&s3p*d3c~an zqgG9jL%>ia6L^Q_q~yv<&e<3@EQWxzPlDznR?h+r!Hw%Q7Drlv3C&8ip%mO!%ZECz zGR3T4-E+3D-||z%Ae^6@+q{MdA}VLU`_9~~l~S_Bw`AU^dBCzD_c&HHTPjqg6ocPv z%%az;HRuAx>NSs+3c{9U*&)kHDz8IJ5jGYy9p7uB%sWNkN>NyWl!O4br~**%5MGI=IT{!a!ApQU$k0Rt<}Zn(fBAcPcj`FV z;!8{cESBP|vV@HbnHV@Lm{vg_C`i~1@%?CtL7%3jR0--MBG&Y?^x6CjR?3k`K^wG& zfm_XI?TvFgw&hA`(v3K#Vl0K?pdkPVCDqZ~o1JqR0HfUJwR!=Ay|R?|HlKWa@6O(M zcIn}VAAbJn*S`P7qX*AFe){6G7kBpd4!|7jz46Z0)^Q#1RYHAP5iEykB3^}H0BfJs zl_;jz3OLJk{bD~0@Pn-gDAHmGPytP9`4tf@SI!tbr)A3%6|Y`Ti^NO{>7b3 z?|%C?{_#Kl=fC^y?|lD*55E7SFTVHV_wPP>@2!g)XRm$y`fP^iAPGfGZp8GId+`Ak z0B@MM6A$PF$t4Aip8jvy5<f)dko_k z0`0p=V_1ZAs574~Kq_@v^%&7?(@wW$!+}PpE>Y+ih(6huZ!8W+M0*zaR8dCJh0C7{ zquFhGx%GHsZ{o19F2*Bfm;bB4ypXj3Tq%s+U6)xyo(wy1)+^@R#a_FO`a1$V z4TUDB1U0ITTK5PnIf_Lc2WLqgf;Jj_bPqYck#+T!7Wc&#)XqmSCBnW74#-7h3o zS4r@W2v#a0YqS_QVM^Ec&Y!<1^k6G_VileCN*+Q+QfPNVI%ma{i6#o=4DFVP&gImK z4~Wp?x^?-{8Gf8tiK8+scv1!M0fOjCPDN6fU@ZaWL+zZ`MKot;IAJ+&@sT40!HbIc zp~PP+c91+Wb4F!nzu&5bT&z%J6f|AS0^&yvk#uI)Z*27E^Ptpf-MQHukgM|R>BXjoKsfEbg)c!A~Q`YFU(Q^3F3cW@1s zN$T~pZ~g4=FG9#H3}U5p(Zsc~H#={Y5NY;7p~0OuC8V<>y!c|=mVf%uMLnk#%dHL| zdj!8wov5;wS^gaQgLK8pYLi(hRnQciCJ|r!wJgr z6%?GHj8LfKYY7Cevl!WSJuuz*jq6Xp_~QMqeQ`wndSlN`OW7!U(R#?`geJ9Y*=ju3 z=`Xx;tA*4+G>0CA1%w{9XpIsilW$^xt(56OnjYQO8cqUGoyUDYQ!2BAj4^gVIwf5j zcj_B;O{%3%ofOVatMs}`#YRGUnOXJT)@C2Yf%fj?`X5q6UFdJD1 zq{5}ZvP7o$TsByuLKOwTFM@Shz@A2}4zMwz?I7mhstdJidMv>UpzH*b4I}C}EV!hX zxOBn%7DFLk!Iw+WwTKp?iJ)xlLRz7}ZPHaVf&fn!RJ}=R3@oahi+Asw#p%OoH`A3g$t8sFPOiPwAXCwz!@Va zBQa+DLXJxlW**2>gqJQKOxP&l^W;07uYGdunv42FqsmZ*%@tDQn4WNUti}@r0;7hM zHQPpSEGxHssersp1r2p3=E8P7S)!d!AtRirXgOA>kS=R-t)$8p&YAs|>1{wT!Ddh@ zV-zga7oM^6>b+}W*72DZvEYo?nv{UqL?o&7S-G-4?FM=@Uo#WD&_Z113_S_9x_NZO zMLV~SY&=$25M9LvWDU;J5-pe+Z#4#ewg_Oq7q4E~xOe^j{d*4|-rA@-lS_LLhu79s z6_a78Mqc3g*l!oTRxsHKx)X^y&7>NVa&`~Mah{p=dI^d$bz!-z8c<2uqQ|2pyJBEa zmlQ`_A_&T9h@|1x&S<*bS4z>9OidP#g}PL-Eh<*T`+(xWdUs8|IX~E+BPv=eB9#h} zg;J4qTM8L$Xm<2I@M@DqxkzSYP9=7&$FV8`b{V%K!=7GaiY&S?2Cj_gD*VPpK!{($ zZxMv7>?;3ABrj}x)`X-2;~-ud##iJzj@l?dfn-fDmYjpvuhttF^MXxBdK&u?%Qg@; z5;*O0XZPma+gIyYBPl^}mr{|c$$oAR0Pw#B{&e`w%_OJc$hd=(wr%&H{{@~X0 zum9i&zwzxSm#@D2<6nOJ@ttOq^{#kxibbilPWYy0YIUOpRr*Hh2Hv&wu=5@XZFDx?c~QVaLHO zC(W7xi6r>o7&j!P_5hK&oIB8wD#Os6T{**~^&Gz9rFfjzVlA34LDu0Z6UAk8Z3`6# z#8=?XP^8AZLMrPm;B%qt!<0L`HMU# zUDGWWua(r9n67tw9o_0$jjoePnN%!_H|o_g(PA+iaX2PX6KKmQkg&Hibre~V#}=zS zTZNAmS3ySzMsp=iQ?5`s#8s!@HzuKiY+$)i^v8`{M#pSGM_!JQ$4f%d8?()62xw;e z%H^%??VX^C2TORggy`0$7}WL*6t<$=F!2qH$MN>PoF>k z=!>`RJ-L15?$Z|^e(>GD_tE3~@4ol-r?bOGgE6hBRk`uxlCsvH?QCovv|ZONr^F(d z!#|oUvL)ww0wBgiBaoSVat6C8WW*y3d{~?T#utt>N&y8?+#PfW&Yx*GL3r!``oDkr z)2ys%YPQyHb=pWcKqbqIWfKJtuO;8E*wFLnEY+cD6``qOCjn6K%$c;Tn~48maLfba z7%N(W#>J|I);3)Ypm6r4o10@(#A;mtH_Q3<&cN#LxYz?mVy&L6S=n_Qs%#}%Y$J;s z*UerPAvdJ@WLHf}LBLx*7~lawvmn}kA>NoWw1`+pvI~hrYN41&rg4KAE!wqG2|z}B zF`itwc>dDnBA6dGRC|CHX)T>plzLsjN_}WA1-FC7S+?N!Y#ONUbkgZ**>YX=gu8VH zL(V)y=MqZ+Ni*zRGLcQ`{i!7f9_S{N-q^}&u(}gDvm55CsAgaoGH4a@R%bAt6`fE_P8A}(oHkC$|c0sgxhic5-lik%F#>VxC~YVLj5`E zy)!*Hw{?9_PG)InGSm@Bzw!UF^OYKV7cbwsb>l)ycRRw+_ZAjYoqm5f2V1we{p7vp z&)@#!2jBhrH^2Gp{(L+S3>eajEAM>ki}%hy`Rv=z2M*+VF;x^38#dz!_V2guJbm=| z-i6)W%>YG7x;?S96cb6x0-hF=0I=_|^*oXR78O!1iSZj3aM6Ux4+9kJZa#$wZK(u# zw_Np1|Jw757ZK>={w|8u{A3fQ#&1g_*xDc z1rr^pU0I}RlPFWO>J}xG1jvQ%xVzZujXMoPLR}IWlTyB1M?iJ5i%Ls6mTT{B_j*c! z5qsOomcu&DXt>p_;M|+1WiFeQH0<>rfZz=}YbYluU6MH>$y|o=Ogyw)N{q!wg&Atj z_K4=T=yPCn!r8(3-GhUT!PP6^7BCtf^g4oCTy^H1aD4vm&0$YQ$x==!;iPWi=ZYLq zRcVf^827H144DBYwCF-nw1njBG8Lvi+?aYuVnJbJgUz&vNP(<|K(aG-B%Yk60Wk>s zeGT}oT7ce$l&VfI;99b||LV2F!^1^;b9>0rgLhNJDKjQ030&uE=|~I_Lb_v71#lG- zn#TdVTn-Skd<9)Eh}#L|%gC@oKA!i5Jt^K*A}O+^%;DM~z`mS5yxXGF62U5};*)$u z^x`X(;U>1y6Svd#Cv&U7@{tNlh|dV|kTdJ$`l54TbG$Wc(vI5rhmG&tzBp1WySbrc zYnNWTxjES0zWKfHeEh)&k9J|#6w+0gis9kG_LX~I|JHlg0y+t5R`L9BUXh*lbpOW9 z8+UKqzOuc$dpH&bW-LHbU@=9Nz$qdS%H&mE29{B-1o9@Gq=-EoTSto$0m&G`%nfg$^B>Gwhs_9?}l!xP;eOLAHEk%Uc~pwtSG22tV}pcfESIkjy1gcB?+b zz-EY2rO?{-M@3e**hwX-g~;g$QbeZ8fDBuvMThOInr4?SDjcZE$RpCHu>395EiHTI z{jhb=Hzr$NxqGl5=;p@8{yvN2-gtWTog4f69ZOX}o0k2> z02veNX}Q)08eIUW;uaFXnL*DKk+2!6sIv%B^)euP4fqP%)-0US7;9Fjvg)AYH9J8e zRNz`C@+f2i+LKL%*d7F)g<>k|X;S^t+5eZl_iC~0W{ErYl2Q}fCiwSAPGs-g<=??3Aw8YDPnY?8|h!@f_mP>NdI9XSZG(M zsx;rX-~H~r_S$R3Itr333985xJ%BsRL%D?3o_z3am_JnSyPFJ~9xna=uVno#h()A6 zOiYPDaC=yXcnc6=yDMC&0MrO8fB4}V)2H=4jEYWJ=Ohm3)L=~r4%TB{-nae@KZEG{ z@uP-Oulj{kueoW`OWgf+*sY}s>M|Py`^t8?5!5ZEru2IIhg)lGz%#?avl^sAWs2!O zdwJcz|Kvx%`t|RA_0+mr%S z>Ifv%vHU>M4_&WnojHImSE>kf@aB%>7Q;pKDVXQ&Y(N3vPi#>n9IPNxw!gVs#r~c7 ztsUwIt;=N>8Iw({nV7HQW<|+Qp}f_8@O47#9Ws0v!)|5jVnzPq*@eV7o0(D7ma46i zkCmLF?4Lkh8^%XsO%M0>t;dg!E4=(OlJO=pcWP7$nKK|`K`#T`1z6{r5jb?HU{rvHJc* zsP$}7k?tdBw@*f-3SzsJ25cXe>e2BoV-Xx4xAArG5I9IYRmUEBmH$g$zhe(6DD=gH&EHA!N9nePVy9)x=F$9x33^X(_Q zFv%#;p1^xxzjcLsXYFjKYBSp1!}+^?x-WZS{j|uok65hM#Q z@+g=JGFO|l6uaabc9MS^ts=Jy@c{nGO3MS+d=+JS;RwdpfnJWFz>0W>%O&_BymR!F7*)RU=_ujtsao+$wqrnrq(oJbTv`zsx1P+0~ z?vdm=-st-7<#c*+|K|Mkq84ktnH+IP6iFuhcIwf z_SoZS;;4T3=&(^&1PQXt#m$HsN`g%@8hHFE|Gj^5M zXs;P9FIB|+Fv6+U+lMQ-?$kLErHt&*?F|dJynSljRg(>sr}X6 zRVJ&9=sw<6w}gm2l@Tr1>fSzh$r@JxE*Ki){B~>mz)0ijN$Bpuds0wQX|-)liQ~*r z=pU2O)xxQ|XRBKn$*w%zHnD%++b^GNK^Chypr&fy*g1legQ_L-ya>tNV7S6I>)F~P8$M=XCu{J`qu{DkO&m?+_{C%?%p; zrvj)Z(oReynj3)^dTP6^u%ft+ex}HbVwi=+A9iX2-`iw_UPF~^`>iFjJeB>Pp zIuJA8%`K>}-=cjLNuN)~pXG<>?8N|zYC>dJct~>p&DVeaXJ3DP)!0MeTxg_&((OV) z+CglUu`S8uNzG;#dU^c{g4W&j%lqruXn6kO#rLjHKK_s>+gZi)N_-x^GGH9h67nK6 zqp=ANu)6c)Lk7TDrqMYHu7*%ir#07W?ZYaUZw2&;T_LvaN-+FZ4hUnpxpf2;m2}Gr z3a5DIDMnOo>gV<@CGY0bU0OCNP0K6$cnPhYHFo!qie?Zfd_NDQMnje1BOl`(wU73B zPiWYfjt+b&bn>BooM4f52K8?5xJ6fkBLybUTdN2*v&?X+RIsSrS}nDXpYEWASF2$u ziK}Q(Oe-tLaHGVx`1m+(@mQ#k=sh1nLlp}ZAZm@aVPas+y|Kfjs&!<Qj|Ih0bgg7mF@h4vplJ0(DI!Mt42A^)dZ=H1{p&ye<9A_+u2%4A zur#FE6MT4H27mf-b$S2x9ZIfm-@JSO*~?K;OuzW)=kMP6r(!<>DmsTJN7aT<{{-g~s;owKj3N@Y zAvC=}&qxd$ogS?~ZPyBK5SI>)(9vU-yqEpqAAWs(qwQ|2s|MO=Skvt8%MQ(23uP*{ zjda&IMJFGyOSfw$avH+egT_)l1kXvtgZ5C93P)r zDx8`MW`xRy405M8WgnW?ogylVhQ>(pDHV83#=88;85~CX7LLJa88mJCNHj+{(V6 zM_&2FYNDu*l6ks3Plgl6>zQRSYuH+Q^ub5mzoPCYWfP^}`WE5J7b9jAa85ygi7!HN zWwYLU|MQ=J{Wjd(-K)zD*~iZT&O7A-UmtP4s=s>k-7kOm{^i?u2)bS_o_+uKK3$}a zW9|xOz(-G5Cu7t{%f}}q!bO8c$FAzk-Z={>sIRYlu!dcZ>ADt0w0v4>qZGG>>M4a( z^#uHCcbDPFJ`%dj4N%VEi|5a793Spb8SEZ64YPLC9weFL$gQKYf+o`LX`bKz=;z7m z>ao^XIo`s)eB;E4Z5AVTceQ1wU2y}oy!m9WEm!L$&P0y+_w!X|S%OQ*e-KHG4T=$=?i+K{`QO3&U1c z{`eIXXP%QZQgsK6`=haO=~Q3nd{ zjhNg(Yooh)`k0y#TommfR0612AGOY}x-t#SHkOgtz>0|-cq~O9qItrSZF_&4PKMc6 zrDW(*-NqHN#wd$?P^pWeeG9urOb)0pIM=$PAjVS)Fdsstw9MC8Z+Sk-=WIM4G2>iC z%1Jb8+~b04`at#;MWsMOMRCAwMnOP=rAm16c>O>gkH7mzZ{1o&57QLp=>7&+1>X^0 zAbL*b-J9=x@v4)*c=qny+h^bT(T`uGgJ++AzTDw=h`R&631pUUe+$}-Xyo87?w64} z#sw3TQ{+9@9)F0u*&%Kg46u)D2Q@`4tv@KGoANFd7(4vXCD8;q*RTs6Y2|SDF+Ldw2&%Kg zy5ELf+uq&Tz*d^N;iL7^E^rTj!4^=}RAkYk)3voNKmjh7vm;(RdR=?9#?i)B-72-; zC_8Q2v?u2s?3F&+ZlO)e{Hl)2YjA=_*5+2Nc?#{bVp(nr?c(&9?-p_y@4d- z7An%kbk=M^aC-SHCGhC+UVQ)ZW}Z}Aix+R+ynXrk_ddG}=Wn}RG4tRf zvNHViBf-9=>k~9qv5?$k%vXH`?fc1^@UMOJ5iI9p*q$i1R*p{Dax3A-!n!1SB&X=s zfTID8f=q9$GRfNC-8$N59ko?w*`)E9iBzd!4?rhMRZT*GpKZ=fL3gKGfFO;g<<5x$ zZYl*qW5pzcSQx!=ZY9a8GMZf#>ErQ^(kWDx0(E<{Ze!uf=VmIlx7+Hw$JCkhUVHo1 zjqU30(|tpdpf|5>t{*k&oXk7E+o(5-qK%fWit6lfb>ri0{j99Jd$3Sx@~U+O&BMcE z$*u1_-YcU|1COstfr4B5F0(tSe8OPzu-1Z0rn1fguddRjjsZzW9Ie$rTn*)Dt%hF8 z{;A=%FmSJxFzyrsBIZOppwtAb#5hdsk<)32&{)B4xr%~=Sct_i;qfCO{~$W?r_At& zQw4luh!xcmI_#sq#s#(O4ka_7uq(za~<@>Zkejv45X@7Jv?i-Lx*8Ml&+mq z(JJn5qb%#7# z`vjW4&@G1yAgs~ESrxkr0$~MKfwycJDsnc!32QrRkJcZ5uy(Z9#KaMA$mW@1;C4u7 zy~+fiM9M@2gNa@65FGChg*+aSN4O(Dvd;lr-GWbd7#8OpcpMV)7P?*EBe`LtvO!LK z%EzMn<~^|KTv}@#HJg4SAEK_2Ij0pa$qjTUpR6gJc^516ic~#mphgYPW^JEsyaR7h zK?l7q3t`{gjnn;=Cnvh03F)@d!7*dqm70X%116|I&(I-ZX_0+g)N-Eign+*V zEe-#+3M$8J8Hc`SHclQqe_DpF$VQq(9NooID9WOfu(5r*kNEK>N2wiD*3J$=%@6|# z^bIys4D*QSC(&%TF%M!w+q5*+l_k5u;Ay1{>}uD!L0Z+SYvJ!g`%|i``eCUicb#Hc zg%q)Sa9VHazFj%Sp9%g5AMB%5kbF!S2qJnE5Kn=>0Y~DkffG3Ii?Ju0QzGy1-B2K` z;iDEcn4>byKOctKpoNIC2p5vyBh-G_W@BlUXj-YW6t4iNq5DI&WcOcfD!WH)i|rAr zXtglDX~?R4w10YP*0c=1_~9|a?s&DHQLUK1*4hz~DSE5l0ss%281(CWCVmjVG(+N` zh>#_uNr_@JgTP!ri|@Yr>AS08&tU@gu!jfu_GnGMeUDSs)$Q+o|9hXke)amryYCEk z_z(gS1J;7b3N{XS1-2lXD`5tDiv3m{N`^oKwisWne7s&du4pJ<^Z1)BmXIn3&{2*y zS5DCS7j!c$Wws8R#|*>ht$>}68?3{g=vou#N7qyOd$2>2zqKK zYwYZmT8CS>n=?wl!A+1MD}pwE29|QVe}*bn$u>JZIEecw)mQ6Udv|?TxJ~WW+~(7# z$VKlp7^$}^d+ZOLVd{p^Z&{O20sr`8{3CY{4pHVYR-cq>hpSBP_cfJ$#nu6175Hy} z0z7H{DOOPrDw-BViBW1XE36p4A<^n9k=LvTUA`>6wX=G_FMYgn(rQ_11?hamHum?M zCDV%bKHjK1Q47{SzA0clyGXNFffbZgIntV&lqLX0eBE`(b(@@^fnwz6YaAXc53W` zYd23?sBawdf%mW=mQNZOo>m<_5FQ|PQ)`~UD%d?JMXd*xg;2W@n-@ZS=;09X=^koT zKB@SxC-515i@u8VO3fu08jNTCi+A7u$`YT zHUb7~C|NK;Y1OEGuw;Oa0@rT8w2R9duAofXacbDxU0*#!az<4QRo67kTsuJtZXaLR z&NAmyxffGehoZvqY!Vj#5B*f~{MYd*v-bp^RJ2v0#^x9ICxlxkxradxn= zebzpG^7IgGFch?_JGcmbyj416C#!COb?EJnVd$=}lprecvGmOqe*4A&D}jy>wmjPt zH!4qvGsy-N)e@%LwPq0Hae!~pB0+E}f`#s20VI#9~t(?>g4_sYu7DNHm=t(h6mOJ_A7s>Bv}JEm@XXs)YK6ZnjH z++^|g#A3?Aq7GoLY9l~>P;a1tCQOk8m`b6ve~N4jn=bp?Pl;9z;YS~=oawlRcmTSn zQB#6~6$ua-v~vBhT>&rDwC?5AtRIIdi^N=^!22RSJ%zCSklol0LE>RYm-kN zl`{-4m+>NJi1rMx6(+K%Au$>8YhZ9yEVkB8)#^U|0%#>)j966QS`xx&qKkU?3<786 zI4~>_cRqweDik4HAx8TY3!>SgMS8@YaN^J3{_qE%e)s(~dPxkEHa8{pq_+6}=kH$r z_=jKq?9KD%m#jANheSQj(BR1<@hRB3;?;>M8JBaZL|D}^RiK20D#+w{bqo8`L!EZz z5N!L57B@Ixfc!Dz&dr0ZGOMcf4Qht%LyA>KTBTF$z;v|94j30y5B81IgQ}!OF?%qs z7Zsk7+FaX&^a{RktREZ$xALm0M{od93)wx}r!G_}^R1oT2HOe;k{*Pv;rk)5&{2~h zVXjQ6+-MzbK0PS0;j*^2hqS$}SAd-!?H#v0R#OydpS2q+H+HZDIN91b!KwXluX2X| z8fNlh$CVT#W7>gD+SBd&uuxL9bXZbO_e;1jBC57`TJb#FLF~_N)%6q13LdYja`gy3 zV3wc`^rS@*M79MRe7t&4u2gIIg0&z6p$K%WD3Fp^XeIbiUKbZ0Z7-XC5GW4B-WVw3 z4qIJVb26|53j7#EUc`skSz-t2fOmP|``yc%SucsOe+3L6Mv)g1N0Y`!P^=%X!1FlV zJktSJG4?9M=q(DneY(lcK! zO8r;wKYjm$-~HZ?KE1yk;7lZ>H$~j@u^xIfQL7S~fRK=pP#`m$@|w_F6GWCZaPt+K z85W~-sRRXbW4+n4w;{O_>FAqjPup=r8k zua%COTIywpTCG+YmIL$>tabD%S2gsGiq+Vw9t)Y4jiZKK3#SS^IoZUumVKwfLoD$4 z7>?axiz*9$_foC=c&A<6U_ES;BMd}f$IihctU?e8E0^m~N^nl5Kzj;g!%oxYDgI=q zrPG>Xun@3wwEAd+Ln^w~hi>D^5koT?WC|L7?4J?+_%kpy*3MwpK4x^w4y};>CU2JI zY8ye1)7|~XA^Bpb+3hD@x2w00PPX8|pvJNa`JQoB`}9;66vE@proO*Xbq?$5$x#I} z1}lkGB*E5?r4u3&>_CJ9SR5*dW9s$BZyW^??{`+rZ39| z9o_D6TWjIaV%wN(R1fzn=oqo;E!Zy`rLa}9HBB|!XD9TRCwr&Lv7D-m+!0-PK%7J= z`jFUJj^@0uPezp~?tT7G(&z_J7avZND7pk=fU_cg&hLOFS9bki`C{IJE5SXtx@$z; z>)VUx-~HbEFFt#5;XZ-SCHgaJ1fVdHl8IHJ1xa#cAL@`4VwpR5!)+6+s3?6z@;|}D zhkJ9IX)eZ9$K|!PM=$_Z*n(U+DjlKAg@OX6RlBPUYiSBFu;R(1Gdd-qtp&B~cQ%veVDpN7NkWx_Olrl{qH5cQ)_AhAxx0fI)#}!h4=B|S zcLf#nDW-kIQ@bu!jR3QutAU^#!NL^Jkl#!)5YCYR!~jl5trA<4z^?my^kL|#l&dGn zFi~4YuMNALN{naCBFiSTq8xJuJ2J<`Ijr@Igy^mE+w8n+FG{r5afWDccfp z#z0n;kk;Y#fE}^e!k|sCCw8m&yPV?q3-^awl45lmObZ$-b8h(u-`$rH#=?C-G25sc z!oq~X@)(f>${>0s5OKVDK6=Ot;L7Eymjaf#k&9LqGcAC8&gS;9p|%ZsG%w`l=@Syv zqm{!jJntsECj%eBU-NjYgmU4Y@HpApfiDSwfi3Idq3hRAnzbV>Q?|BHrL~=E4UH_0 z!4ayeJlkViJCRI5x)5EL!1%WS_~S*mCf-J z5^;FN&~*Lw0w;9EoIn&@qFoVbmzO7gP>rx1EZ!0!yjl+4{qO(RzyIr>94Vc^*jXie zkW;x<$kBv7%sVow5PR9$Db*$PflYdo!$<27bK$eD!@A-hCAv|LJT3lNwRFN9;NU6K z^mWnZF-bW(+D6_IazE=N5CULxv%x7N~L;6W<6wR zQ=?^|-DNKURbo`aAdKaU{1sI<3y77PU~k`zEe`l$IJ2e_GR8uUGK_aCE#2ucw@k&)aJ-`=jw^_y7iKGj#2F3d^B|GYQ zTg}p0*gnM`4)XO0$}%uhYJC`AM|O9hZ10w~SAmT84$DY;n2OGnBlOB_Tk(8XE51L! zwbu9TR@>Kp&CN94(FhzHNFaMA!l8F&z<E*?ihhlib}V;fdTwLjLGcHEXqaKpcquWB$VUK?{)zZZ}Se@U7BWTer#w z`)s<9y`Jp1kbrA9!|<}pG+Zl7J6o&xE?2PJc#KXS!B37C&yfD^w_p`tmatMG-J+Mm z@t~yT^NK)y_;v9O(Q*;3V&3%-$>RFQXqd$R?Z<~ow;!L+)g#&3g=$1)%X_DuAVc#2 zScsy`-!7r_gwR@`VH~2P$oGULdh{q^3qdYe+Y`!j1P~n7{pQKa$;K8!C@XLnxCuA+ zwo0X=ts@u8+ZijFM`)6jPPij>OLCn^UVB1gym5r|GHF4W?ZD^S z+~Jvn2%MB2xJbBLZ6j49A(XMU4I%+^U6f-?YFK;S+^u>2#TjN?rFGbT^?kY#<9Lh7 z8j2?B8Q0|=qIfU}1RTNb03J};W7fZidgduw^5wHu2&hCgeZ<0m(9GcjH#$X7-YH8h z&x?z+JI1a9!uQ!$DT>P6noKcZO6{FVAVuiIu?BF284eEcYmZi0o74s>IzhFg#y+KV zrNs!6dLQD1>-M^F13k>Et$l3~`~bIGQ?BWfl8_8AeI3J*tuqP zFX!i%@$;|VJpc65=jZ1aH@!UT^l$F3v&2^Y0;VGtLS*FX6B$G`JCKmN%NfAe>refB4R@khV-izb)-hqvwS67qR6WAeuU>BiH*b0)Se&to#&2B@M?(vbVt%2~tT$yv(tF*``Q6pU z9P`gkoHHI*`Mz65Hd&l6C;eU#h}})w?>df#Z%x?m=DzG@o@XUd*3FCg>*xO(tp6IU z|HTAr5G*GB-1qD-^Mej{Ach^uZhZZ+*Na?#vhw}Nnv9G80Ovb78)(Tnof4&1;p zm6qM{0JhtjC32<6td4E*KNA_ST3a=d+z<**PBtXmu<{=db#X7CfW$x>_yUs(=1^zVtBsQA2}vNZzt;vhLhQR zKA4dk$WV#UPd$>&wow(bQ8VNmZ13!%a*i$*VOa=TDJdKNDOC10qDJDtmsGbh?9Q zFJD~G2J_c%r`^lv&!@}#@n`?*zyJEx!U+5Q!Eibn4bs@RqNwO(D8feK_8h(Z!Pj5C zx&QG`fBFyq%gxOn{_ zG3m^PLp-~v)7<&A=SofFnTMlT4adW7H&451XlaVtodvzi$zWou{quf+SzrT^N^Znp zvKS4!!^?|tk6q65d7dXYf_7bJ-QPUpHfy*2ZWI)qX*ZeO+zcp4h7(Q% zS_~p$H8(Krz-hNVZeLdHF_ME)Y=(ob{0DQv+LO;nPb8qj7K0EnJN2bKmiKN`9m;+Dri6`}3Tu z+wmz#G<~u}*gg)5n^89jhl^RB3eWH`%6oHuHk#Z#ySf6B1N${1{50*rH+|dHoFE)@ z%qDL1wU(VG99x~^tXo=DD<<>XWnc%>IPD{OJMwSoXyt$orW^Zrim(Qkg+d*hT|L*N#8 zm~_2ldHd|@;^H1{MzfOy5eGArjGo=pQDDEgy&d{~8d$2E7CnSJ!<%{Ew9apq%jNm< z^5%9q8*!7H=CqdRWkgL#rUk(r1~n^W)zlCA6i=pO z2Vtno_>pJS(oB|p0xj^VepC&kNm42KOEtXMYoj-OhKPBo+)O5uz9BVWb<0*fm<-0_ zZjr=pFb#|#-~c<_VMu1y!`!#bMbBs`KDUR9A;{=F4D7g*`c|O2o<{9X(jWKCq~Dt@ z7PAgT*!=o#o){7g5?O{xVR;M_WqzB|VCfWxiiQ>!MQXHLZ3(K39t@VxE>kzYJRgik zlSz^5{lzJ_CSC2TouH6UGXi+==s`ZCUeq$4H0s zSo2LSosK6Lm&2qTWSz-qlo-Y3^`tu<_oJjUb{%AsxxoyR0BZv|V!y)2h$1dtUTRCW zf=*{LhuburF2et zT>eQ|vzALru$=6Eo@7?D)i%4si)HlUzxw9Wv_Bj&DoF8C)@{e|p*XS#khyitMorBP zeQ^@nW|9-ANuPK&W!gIOyAySt)QK$L;}1~W$fEm@W$sc$uho$4Y|8x#GnbYe4$p6I zmtDD~k`}xD(TIkXQ)Ifc@7{#?qG5@~8BPK|Hxu{lGO9Fe5tkkvR@h-bkmINrf!C^4 z8%W@CL=7#@^Wk_t9rVa1FYZutwp0|~nr)Srf}`mf4HXniF#of9tBIjXWGjNqX4q^r zEblJ|{ppL_&S*NF4n`DVv5MWZ1O?7A{gBra+M2i=v^F;3s)j_OPfiH3hzH8i^l=-4 zw4nyQ;qArZ`r`JyAcQ(^-@dw8TWXSQm+<^RNhe%Y2|~j;+*D@~$yJ;8W`cmpo$%(yL`FwCHeU+k8y|6W1Cl z&sJ%R?CS>Xt&wNZi;`4jT{N1CNdzO{U#m!5_r1yO zv&+l#36FC*7Nw5vnu<6}?&ymz?*kkZV>fjDkmT*VVZ4|-jizh2NW!+xd5Mf_0>t-5wPz*e*Au(dq25qi4 z>(4G1gFFbkG{MDSkXc9yI*{`;Bt&XFMPi;ZN@+G*Y<-j)T9bO;2@F&1Js+7+>GX$e z!35tl=d<&hw_m>;Wy2z!Q2$;oCf&?6N0)E!UfqT!Dw9D}z$xe2OjF`EDvI+@p3SG! z+oNLo`t#R!clV1S@mqwt-yJQ-%lRPG23#5Qi;GM2A-L@Z)2`w5?^WOLoiFEC%TCA4 z-oBo<-9(!Ss`ngfICpT5QH|^rVUPx+ZZwV%TD7v}WsLb81&gBSbr?}Z*lAygZCSmacPCp+*KU$9LM042@0;PfCnI5h0>Y z=?8&E-7<6rX&mR*APuGa#3UV3&rk9p6s`VFWanQjEJ+R2N&*X_^WJbV7K>xU#QG_-Ut%eti3{-8S=T|RquIqKzkck;>m zyNku5-wC_V?kB@68Z4%x#bP=zr_`R8H#g6Q9mlf_4~b(xFxn)YY&N|7lqZ>=FA~!? zoN0fQ=EI>aT%W-NO%<@&0<5EW)<)bG>9k-5KpAB_l-RN)`jpXfIf_CXC(mZ9W}4?e zyMAvd)a9+F9A1vxJccPv8)jLak-1i{L;2-~N$jPIagG+wsMDD(hI!=sT3c#Maz&UF zq1b}KwcKi_QRq2b`I3Muo1_koz7APP9B%>^ooz~08dnjWrbbyy`T(P?H#iQYMCw)% z(sr9Z9W5Jv1P=J05~hPr$`v|^_jZ&k$W76;LxElfQ^&2>U2=$(%u1o_)Gr#G_NlHrdC;+(Fm8};%o4h~_+F-*I5 zIKP}sGb$ZnahrtH>0AabNUd0}1Pd);B!dlRouXS+t!U&x%r@=i>j~Lcw;Y{%j5`u+ zg9BE<{X+Fz*|Y_$V#-xyU8q}IEod5T%}uTXoN*U1^f&R`Mc-i3CXUa$?`QMC@r!PM zm?cR8_PdyNi;D~V>Blag&&Hr~Fdg!GJtG2F?)I01ptzv1xxT-?x;{VehWYaCtJjx9 zW;P_$*|g(KE*F=JySvxtfsut+`nK@(~={GnrVll zQGXN}rf2CEPiPhnlysD)B%{!E^Tjmx?BT?l{qvuG^@iNVeav2~@8A9I%dZSoXkj$l z)|Z!dR`}%9Y{o6ACTf!hAj*8c<6zO})+1^~FU_btWZn3RDHiC86;t$Egb2Z( z`+bn({(RtrCNNe2_7`Y7Hvuo70>U-*2P}bgaQ+1SSC-Iy0l=i4%a@;i`sLTZ|EGWU zy=UjM{`hj{Q9r9}|AGzhO;f41Y8ZNASLhC3e)qfYmZQw%jOiE#xt7svn^YV4x;J&c zGJ{WRkfuCabsSX>iqy-;aj4eYtmmhp7;Y%>s2@8PQsX8aUQaD3n0(F5x}1B^^S!73A8lm zO|CwD_30H`WdlaspjTmN67rVRGQFTnMYwqOZ298Fvx~*~`7M?puU_9>_ovs>+4=I~ zJV`FEmN(ZoH>2LLa}!(Bp-t`}zXgdKj;~WXZE6-S;LtmtXbcd>_kyS7RoGi!sx6wP=j?zZMpwbYdL6f4x3Hk(YB)A2YB zCikDceDz{bbf*xAeUHw{!mZGzLZTezT=q z7Iv1JvEjOMe`cHg#d!GYZ~u?~=YJX%qYHqEfL82_Klsb%l;^6UVBg|te!|!y;zdxU z8XZTbfakJD*M;$z44hAY#OWun>kXK8T-VGgD;O#Gw6D!tm9>#Nf!(NAs%_E0kz0vT zt|IZ*Lyi>?07*@5djVGl6Gc(8;$28gx}R$`Qrkk*KQi_FUZ-JJv)Uv7+99OZ^W zpfZgWoo*1Nc^7>^T4Yi%l@RrBtxoC-LyRQCtDpV)H^2Gozy8a=|EGWYufKUUTF#9) z0UKai2+UgmvPo@{bT$lGbLkACLQ$j1)kMJCvpc2;G~|4V5^W9>k1NIt!U917YHXt^+j-6i!7CKA7?}V~vjusQD~un^g9Ti|zgjgg z{3_8$%LhimBvPKu#&Q4r{4xorJx~rE{fMT_zK{S-#qWe??)$0+n9z$O0~CX;o-*A4 z?*dB;G5AGV45P0WJ&6De4VfFk%~040yX4N{U`C)#Cd-TIIHM)GxPE!}?BxhLkfAC; z7!!&n2o_#3RfH>=Egel$wg?@n%ed=zUR^mY6__jQlUs{)G@sA!dp({I6V)I!v@mkO z_r#qt^n+f{1t+J;cKyE6Ec#|Ep(>_O>vRTL(knbZYNQUbTwi`poyG*0|=2^MbuJ$(`ayC(}EC{es2O6pA3c_<|~W>6f2>Mqm|*f`G9Q9T9~%b zq(+2d(H@okro$RvnjPBN2SlEZ#JnWMWYr(I3ffF7pRfQz>;JK^t{;; zq)4IXK*E_sQ6|%hzLZdur3dtiDCLBU3@b_kfoAEInw&XpzC)lRJY$h@6!+{yqymNV zhL8!P86%AeMaV#=+&Tb-(wQ z|L~80_jkYk)nEPUkAJxAMVv`~3q>*%`bK(_B)3u9`OdHIJTpc-F6w6n2T9?6j!6~3VAPZ>XXYM6>_C$+59l@y*2B{$#=W8IKZg9Ikr z?WzrBJX%hMpeGfK{|M4n0|TKtUrANcFD=?D4la;PwPxYL0M^LGFzW)c|Ra znU`-^PyCO;S?DFvdTenOmaA4}LXL};up?+0!qibB^#>^Nj^ZHcEfb5uCuxI5pSkcTVI+XB zDZ%=H01@b%B__x8MB>`h0OF8!RN{Ak{8xYb7k}}~pMURVm!zF1dZmC+Mly6eVi-XT-Sq8xM z9jV^nU=gg$ZDJs*(Wp1*j~9#OVm=uSxCA)a;%ym8fAadxBC!q9cIYy2O=B-{z33M{qW}Ey2wl}2zXw+TqKKmJE6diB`LcM>t#%G<9zbAkJu`> zmt*U3(X52S@i>PLKb|dtpTT~;cC**Z`h(1m)5u8+Cx`%fbW(t7rVvj2*=0}E6!p%; zvS)eTzwB~miWuA{9o+UkG5Hq3D%>B;;YFY*k|A-TvAN^6buIMv?SyM`oOzDRaW`Dv zVgn}yu0wJTd1B&+INy9<|2bq;soqY&?L9+fmffa00v#e41fI#? zn#Kx`)W5%d@sIu*yR!$D~sArik%gF%rN&tbD;UvuK8U1npkLTCR;Q-EuO;ll1 zp2maG^77r=PhKqgkU4TcawD=~>PDc9nC>wWYqjd_*`K5>@Ip8_F;t7Z3q3LLnEgUU zp!$|u6laQ`lFVqB8%|Eo3Y{i*^5p;`pQ(T|cgJ1b98ShBzL?;ysWClTUiEV3n3>?q z#9}IJ_c~N|3XZxrMZ$Q6otmIO@MX(2nKk&?TL4Mq{}f(3;Ix{JM~Ds+s?-7)6tunk zA_h1iz0-#>o+p!`_7==;t~6Uw){Ju3u#`aDd>Rc!!0Z5A7Bm8gH6Hd0TgjHQiO2o!{H)@TR8OJXGl~(1B#&x)=a!;;4XdhfB)IL zn;!fbrgkYbC7`PDY})VnQMbn{HpP44j?l7E1cU4S%lnrvFQOOd$6O^jdCMzoSZw0E zr50;6rS4CE!LVA)mW;?s`Gj4A3Y!*;QWJ0;!)mZzMBS0e6`i9DssR$wMLq*8Bs65O zlVa4*JB(#tO(_m6wS}mE(x0YI(zR4G1Bxd3cO5l>I2OlqLt&ODLdg zi-OfpZbT}xCP$(_;ZchMFbFCYx#bM*B7rNZ8mK1(Cy=2gc;?03EiprBnRb9O#{Jx> z0#l+rhq?j;WJY~rZlzKSh`RM5UPUSJ+hSFOst8z(Tb6!*@b;6j)q;fk00Zz35wf;c ztB*PPYg2-((&rCJ+xlEL#j<$mz6XKpz|s#_Ax2 zM6AxZ0g^{XDQLZtG-6?#k@`K_^d{)M0HwG`D^06230bOCdwme2 z2qQnwqAGwLCP}q=O@{exO0)&k%L4e-ux1qXU*6*-LRp7uDOqSBayL8xZgg_RMM6%H zpnDjRG{5Q8pcORQlt7@rj%j}i^-02csupM=%>A6lmCJE;eb%~c0)AOqv`mTHdR7GR1_>=QRhohgnoKmef zw9`cSj0*woScpDm-dq^3a09z}viQ^H+g^NtOwk&dl~C=UqaMw9`H>UNlCk5U4V zD}nq)dg4V}m-m-BHRsM14JpZJvo*6nC0aW#fAbrNgDHoL z282F{d*HXFE@>We023$Eqi08WloSIC0l!C?kqRf5w64KhgzhnYXJUgdi_l=Mo|B zf9`Q!D9xu6D$(=vf_)20A0r+09jH&!F3lN?2mnsW!bob+jl2lQZ3=`&!=b&rrDclVzUI!XV05XU}4!NJ%dM>05w!;`ukXWDw8;aybW^Z9TT~~wuEGD7CZqs$Amlqv@z`IG(oy?}gzQg$B zAy^v{7zvdC9UZm)1FMPjD*k$as66_PC_hQ=bCe%X)FF;0$ zkW9giH-9(fSUE1WiWSEF<*@tqpa1zk{?+pkPP5_waf^pWTO|eu5JswmC0`>&At0>L zUy5>o4on;X@!k!%Rx*yg$ibvNRJq{aq!&|o(>&%@G1nR#Ex+fBcG6d{wt?XUS{oOg zBo1+Ut2fwE0mc)hgvLRdj^^jHh#njoDqRM}x84d8gWir_3BSfuj8!U48UQn%;0!9b zf1|D* zve$zIJsTJO>G`WG{(o7E3WsCwz<28T3M*Z86UWcrxtW;2g-%iY{GPDt%m*=?DXL9+ z869C>$bB}8y#^DBKo_)$bT%DR%K;FI?cXqeIT$3&i>+cjj%_aNPGe?gl}nJ{52 z(VgZ=(G4E%CvHLyX(PA=TqRHy487YK(bszbHmYO{JLvz~lG=xr%_$^iU?x#mNQvKe z`#}URSgrGZ1W6i*z@J@RbSPOpR+b&!z&maf?yl_ln-QH+lKh zSKs{fl3IbXr`8kUW-)qLUAy0(&y6m!a|H&!&7m z4Te+%IQ&m)dBNtTLq)nE40RB3Bre^M;LPjfg=5x;}Mn8|pB z7h?roe9f6!P~?tgooq6irTzZzK+ALUad$K(qMc3yz8ERp;)+gkx^&Zw3~mXHVs@VP zkOv|&Nlm5u-AlNF!=mjEZ^RfwaUxD_K`yjGtboT%@g{9f8VMG8! zt{=TwX08ULdOHn@P{mcx&^z<_D4AYf6)>QvTvdh*vN{N1EDrz#Y=`AKlMd3JUR*%Z z1_lHMACj1Rj+qO*kdZ8;6HqGBE2B&z5g>^AQQ!jnTm0jp`(k@QlmnDDtjyKqcy`V- zo8OLi4jC1su|&>8Rs`eZNl)a9?)`Z%eS0|>b|&ZDZvSd-pf18(g&+mz(hQ1hs(mO= z{M2R(fZENo-h7jTU27pH%$Dft}zPRf!Z0FP0#7)cH zpNV;^uQlLhMLF0C zl$LcZhiwgTC5}47RLUL6wn^w^))-Oy!9|y)o;pp7=z4u|53{4v??JZ-sHJf!R&Cjc zfSz2ra~`CF{$xru5*ke{o6UNQo5+#v>?&8C7}|~Kqk=9>^&x-@bBJmSK;O@v-+Nk7 z3}PR|99oe(7!O9nPQv7!txY3}DEduiiG?jYF7D$zcQ=M#+3)uf6KX`(x&36~B@~FD z2C#=&M?mD?cGK%I?EzP}m(im^j-?@lFJJ|9xXmk{JQ(Kb=-C49Hk+%%0gDW7(Rm#- zW3hZWeDVHz5R=VZO(M0ZmnaYf_#g@5f5ggL!;D>%wfi8dDk56b=P)#f~c+ReA=pju^PYH>UDsWPsXxK6E4s0QysE zlNPo3bnZ4<+$S6f=j!dd+03H5y+4mZeQC?Mb!9FIc%!|Z?TL$;Rw|0~@zs@RtZj3+ z7zl(|XY)slmPY_(Zy|OJ9ZLKz5@dAxi&3;zpKr=Exu+1&({;0oPjOTZ^li0Mo#3MP@ zWjYdD%ztG7cy0@3_n?f!+a8i-j(>UA&2q~}=r|Y-+-y89{IKKaL)JFP{C2NkxrgCm zi}R!36q)CbI{xhTU1->;8Fnu|{SJKc{+LY|R2Wok(Y4&s zpME;zHYFE|Efgbz8%nTxemWc!Sp?4Iz#v92j&P-qakDYT zdB!Oh7z% z*D{}{Hf0Ba@rCVYsVyj4-Uyloi!&)j-fS{U($Fh>#f%&t4TN3>`rxc>d6Fj#>pK=_ zR2*MbYq;b%YS31bi83jGBTbrg%qFxdfH*NpL3kfNFqpC+jKE9F@`xp$A)hrq=|Jg?CD0?c=5VF;MF^3k$1p`jX{SmaQWs}|1^yx8*UeLW%3^IN2N*4 zZ?IOxqL^%R*+*hwhq~q(cI$+-?a?shlN&{GQE+W@&Z%yw9A18}b5HD^xU<9Eon4X3)pAWz5(OHD*1^ppxLBp1KA#DTCzA?W>A}i8 zc70c?yh(HW;mw<8dlL#8>5~YGL{mh|J^=L-Eg|hILR>gyMkTvz%pu}&|Ai=CBY_!&95Ox{f!XVy|LGSO zRX+mBMaL)-3oZ=Bat%9bk`TDIDGCc~)>t#^y524}ON=c=Zn9NnIGg?PpZyo#x+D*< zrLekM+%(Goca=|JGBu>E%c@>^usyDG_5jsgOdq$eP~&wwjz6{Va3TpMk4t^B z>2PGYb(yzNgtw00f6_tC_2hlR<7g{}X6Z&VKfJtJH0kVmzu7#0&L0tBhbRgUJqKA< zee`R*KO?FUzbLNPVBAxH)*(s-T^*t~#a(BfllTzxnx}aQmz!}Hc^5C91;W_lT|Vll zparlxMd=`zCW%=Ax#SKo3AN}U<6-v-P>iFqbctw>vr{t-sCdVu@iN21n|47h2-fH^ zMaW_8cF#Kr`gJvl9NG#k-mmJY*E4A5;H}VEGeGe(j|?Z`l?eT=>`p$AONaN6BvIo zcBkyB@rN1d~80eli zfnY2*qR1`&;;{b3Vg2{!umb4eK<{Qp8 z1~Ja76C57&P(rK%AjyRTBv;&xvMI!d#NeyndlfBkjSh8(VH~petTAnnPZMA%lk1G@fE*253G%3t&J# zYIigzbPpN~_MTHzaTk|pT?^s~sF3`H&;*+S@lA$9k_fNkh$&9y4?d8RaFJ3&o2h5G z5dMh!qZA5Mxc|)e$T+f)IvaKw4swDRJ)1VQqgY{sL+6aI?Z$2cZiLSsP;DL&OTt(k ze|WiHrTl~tA`lTRh5@8r$>j|)DOoicXIS3gA;)1^CCde_{Pl~cYvO}2PDRiy>;Xms z*iIQbbCQ|>U1!%5?BXXUBg`(4jkLE(Ugjb0Dq4E8;(el7>T4k0IMUif&FDP5*d*|E zO!B4=(cLlBBEYIlGefFEng(ULD5lr>{R-#3V+Vyh=vXC09quo3Ao%t=THYUk5=438 zd;6dK$VDPxXp59C~%&9~M6dAe-MtyY8qY1!XYK{nxfV4%BE!`$Pwx8SR(ov4V_(4Z= zd3D=JRYqg*q5(dbb6#TSdz2Ikmc}qEalayivY`Hps;sI4x*jQKl@ktu>LJT{hGJ<% z8bUD`+!N3r-}d4V=M-+qFafemFesyDg2p%C&BG+4i6j7`Vuu83jd~g__uoCOnKrO1 znkuJGBFDU0EV*RrB;*2(d8NCE?mPrjX5>cY{dTtsj1a#7;wp?eNV|-QU(ZW?!k$fb zh1vr~?%CzMa*FvP@n#p7*O%)UD@02Aa34@VCe@)N7tPfb&$4%yf(Q>-J%Ww|*f$>I zQ~}CQ{O(!L44EVbj<_HR`{CU~+i}ihR)w2QUHj+{HDp0!4+#R%3Lr0W2@~O@({hD7 z8$*0FbmJ~I;0_~MQ8HGOZPsrqVW-zbI2}EA`tzT^d;602Y`%T=;-ZNx3rsQ$-8?2# zfp?XrPLfunvPxOe@Ycb;%OU0`m-&ZR4Ak@>|EHL8SjRa1r66)n|J|?BSu>aPr2_=C z?VPcK=5Yt!e|5cKEVv4T6*w>{Xw+!ZeMen8&B|C_W`Ggij_BuLcJZODRYu#VDp3EkH1Nw7$>5L8atl6vxxGtb9?5 zqu7_ziZ&gdy$ToWr{Dhcr(fQzbHi7QqM1_sfZUCw4t0(o%{^lk_l}C>W}HQ)9s6NJ zXdB{L>b))R5sR1*MnYsJU|meg!;XQWkUKCaQ)}oEmxfMtp3V6q>=r3`y8FC^RfwM*Cg@IRlYMQeY5mCn($RCIWkhXvgqcPz^Ota?nKl<_O z7klEro%KgQ{N~G7H)}jgl(xKvsgU}KhmBLpt;Lt-JwxL`X+?{9P`yYKz=R48!i53w zb*Q8Vxix227&eGfIlq)#vQ5Ov!J2z9$0KQJS{8Avt+3~zU_VDass`VkP3A^r$IL{DFD1BWRYjK%^W!i+6zZLl@M zuK}tLh8)&#=!s+ty0klpD$j;F+_#6Hv?CrqjmeZ zzz`{OK8U3-CsP|ljYET8pFLG*+34iP39mHEVh%EEs8W(g*yIZHKxHG1C=DHZpheRd zhO7ne$m&eULqO3k>PT~Bi-TATKY9M}azB~S5~eqw{pg#|Ue38P5atPGF4uqGbR~IB z=v4ksa04)L4wf87K~i`V`EP&{-2c+B@@xD$g@mIE5G-eqpNkUAn=MYlvld(6TSvfI zBm?Qm`eNPeuCBH|8baWeUJu}+J^+XxRJUs#F=&;|Vml~1G?Pma+XW3wTZgekUlu5$KK@^V7ytI+%*^OeIY zNEc1RNC~&V;^GP5UXLx%3EZ5h89KyT@&IU)sw}azk>&&<%3$9|m?SrO7>Ss@n9ow4 zUR>SeXw;Ws*M8-qo1hEfwGgqlfN==PjFo zOcfoqUeFYI>-!Hs{L!SVAUV|ZF6JYbXQ*gU!9%y^Y=Lq7#!$l8Qe6T#mpJpe42fHDRL(1 z&?O<9!ok``o2eqcp?e|ZLXTsi)&1C}t457g^WB%B)BHUg zXLGq#VT;1;%eT*S(vf)8#O6a0=J%&yu^d{CB!?Z^P6Te>pH)r;Ad*yFAbXw=8W|Iy zQh*Aej0qAjPBW)gnpt`L#bE&Z1u=lq1C<5|Ry}ulv0p4ae&2|mnU@!Bk)`9VK=uhv z201`7lFreqck5XQBF{;*sOMVe=!BHimWY~&%7uPSVk!rOD$bPGx$rx-q@ML_kmP$&9f>cao zrOVsf-Bfr4?6#vps0>11LreQ0sT$JArdLH3-{RLg27D&fGy@uD;2x9dcjbcnq?xOV7Crd4DBH3+4PR7j_(;hX0LB_+b4 z_2B{4x1W6S2mkAD{+~bp-JgB=<q)ais^?G_wfx)21 zU@*^;s3;L%BaJ{AZebqo^G0$PPx@F{^=#b3&qbQiJod%hZrO7Rql$*7GYHidzmEti z)EWJW&5h1smD|K9Y7uI2j(8n;>iy*$1)7H;g5HoZiUyc?GMs#HjlSz;3}IAOsg`10 zlG6&yDo0hY1Zswq+5!I~#*B-YThmM^XotpCq;Q97-DeX54&?VAw@=_x^3BFab479? z-WP%q={f*ebZ~MSz`*yIV>Qi4uJ*Br2BvwG8E7ZsdcT+u^~JY|AHbNW#G)d01&2bd zqM}zq>w<*!cN_&g5V}Sw?OMu-B*2IY%86mt*~ z$gwhac^zx$_(py-k^76!>VuQ(s7oCtcIG2zqS{E7pe46;fNcx6-lHeDSRhdqFS@w> zvU=)t$5b$VfX*FXCjLkAQ;M>vBnt6xXTdk|9D+LF&O7|{I(3`W1T~!B|Ly;iREU4{ zxBuGj{`g1V{puI@yHB6qESEu91;a^QGLE~JMj?#$*Ux_Y>)Tt$>7Oq@`}{g3o5>E; zv;MqU3jKi-8&M6RNJGu0>1@FteDuMmrkA>|z*=-2BQIHIG}X8%3LmVe%ibrrq zfh5$*CzRcdGh|-KVX%b83AI{c%jl>yCjD^ArOh)!o#ul-?;q5shbfBUAl-t%2lRIw za3~+c;VqWa${WZrruiVAQ2r6u5|?;a9uY1uGIx435ooL=UP`n8026NDW5a@#Cy;#Q z@@yz-k}!PZ((v+SN}>UJyWWtn{e_L3S1LDFu`{w`&hfksj_B{P-VriMLk*&0O*$PD zn?LRczGsnUK-sfH2Wc2_U5uab$o5Zer-*_Qa2uxc04fEgnW5wBrc;sWFPY%tBhP(; z%^rsUZrw4`pJ<$}0;C@#212!-PaGU&ePepF{V?<}Usbj({&o&4VlNZpNh(F2N17Lr z#suL*Pam8jA?GY0(dvL7@RFfUChG5R{_nr}SO5B-|M9QB`Qm54{PkBKf3#h%>(B)H z^f->nxt2#0d-rRIy>lzr99bT3d zdBj99ht$cI!m}8`py{2Cn-9lm33+iS$H485Z>C7x$DJXb)Q)(3VakwK<2+~oCH|Yo z`qb#sUtz{*kGT9>d=as*Yv-MDh*eCeKVKVn2klW?Vw)$r3w+V(vq*~mSMBS$-v>&; z`i7u9PFse4qF}^f`#INRcZ>;CE^rR1oHt4&hgBki#b1ho1b@)?KI_B$#DAp);1*Fv z<9cIe3t;!dLFJD!#&ACZHp|!#Gm7U?Dl6{-z}1L;lT;+s%M^ZuKZYnMq*cZ%CoL(T zv5Wacp~L16lFo(DiY@?ngr*Y#fwTd10h|%EOhth>kTwRbTkL=bt6D(JJr@OdQ^yfW zq``A9|Bl-74D}v0oO`{?HgJlWgq^zF=VWdpg;4Nc>FVProGdT^BmlU5F_N;ey2n`L z;LM{F&F70nRjk=Jz!8<4OHyryn#Hp#uG?uS>R%{*s)fRS0r2fqWA!ti5eN(hgP*lG zv`TWP3bQ|oyItIaZ3PKckx;!j$v}S-1^}Y>2p}iCn4gXB0%aotLhc6IWPXE1Le2hH z|KtDlo8SDK|NhtC{LU}`<3G6DUN4u^!qnW*A<|b@5^La%oLP$Ae>QWv!%2~xo5(I0 z(oQ>OzP?z-GWg+`X%9i(M**SDQHsHof$`C-sf6nJ=$Bgx8$SI$);l!Yh^I6H#X@JOpLP66ZM#J;bwgJ%%vbrdiD_kTc@rAsy`i$0TO~u9zMmP6uZve1Jb00LtqcvRTF> zoeNy1;jT_dJiVsvOH(`;hgNr(hLbj698&XURY}f1VLTcxKQ}M~?+oy5tmD(hBM}J0 zfnfB5-Q0Dny7cOc%bZvh(nlieq!V&x2KeGAX!zaRZbHBspKH*82e4$QM~P5(-7h`KrjW~S=6{?Kx(t5&5L9L?5ANVovxg1uROuz3jsk0KN!;sa*#}S~` zCTEF(b~3>JfZ;-FAK^h<=scoaYaDN+3Ou)Pwgj9b9Hj=KMA#pKxMXVcFL)z0i~j z{fLhd*nS$I71~^YL_!P3zKur=#UTYhml+YCVwMCDAHa_TC~De=xK7b((VUMxi|nBxun_7Ybc4L^tuqwSjxolO z-vn;;!~gEz{^mFTJSM|P)2X$;$a|NTM~z`LW#DU zN50Aptiwe@b?7O@ zc*c^0vy;9RM`PYvMrCKJ_UL3PVss|ZQpMeR(qY#P#TKC>umjzQBU%D@ zx4=abce#dHXX#5f)HD`ch)HXk2>?xbHpbupr(EGNQO*ktHN4BHzOkROYy!UsTt5yhL}M-d zV+x0YKhqDq(|!WuNB>BBh=Ugd7UQWhv3#4x{9V)QKi-K87qT8 zpQO3RYs9TX23rvM$ni+MAegVHE~glj1V_UG19aPmA>-!5B!S3i>?8!2!4vRGQ}9|; zKTHb1OKDx$)JC;Ciukbru+X*94ajjlXCHz}9yrCdsUyoSzxlKO_V0c3@bMr1qp$1w z;`Ij~K5LBojl))f8dn*8`=o;3L@P%?d>eY&3v6#*kIdpS$#7JmS=@^bPUghNmx#{zb&oQA#qN~98MP;0O63MWY9vM9tG@DwFv?r>Sffzu*ElL z_0Ym~&0WEe!YjjE0fHQ=hz=tnw0ZWs#sZB*4cv;gcb(s?E!BV>Y$>7Q)X;tIfQ+TF z#j*#z8h_^~0VQ0{bZGi_A3yBp&tCt*Uwig!_0d;fy?MBA0xvTuVyGg!9cTcA?=)a)YvAyt zr%rjfLnCxqlZeH;t!i#%jXb@jVxW{Z%&#&?k~Z9GiU@&XcBV})=d5uUoHFo*C48|J zv(jNmuHQJiCP7EbsHU32lYYS^^Z7AJs_c*$L` zB!v681jf21Tc@$W+tu)eA^8fRt_JO)x)V} z?1Gu1B&*@n1wx_Y5Q2-Ud6>OKx_XAig_USWC{m~$;G`##=8mpOHi|(aaRFl7Ab^Bb zB9vpONzIcf1jrW1Oa?4u=0@C9MXl3yhP%tfK38SII1K_#g;S|SIh_#mhnH5q9pbnc z1P5)X4gMy|o&ljY0xAHVk&Yz+Rh@j<;E1!#US~8Gt*BU~j_^p6dB~kC?wVnjec@yP z^8&Te0_oWLun&+m`2NWW=?P?1OKPWt;X2kMT?k+hL7VQ^z1)VbkL%F;p zbqr!m5Ztb8N@A~t1M;X_S-GCOyi?*XfWBpF%n81CBiF!z>7jLHj^fmJht(v0c>Cdn z59Y}8jN%|C^%F=gPM{Sz_h8cGmv)dPS z{_w0KeSuhLqRTBUGQk#oC^qiVi4{|*lM;i{=3-rD0S^WhDO^m9)3ZE5Kt>jknNP<6 zcI{D2@L)MZ;N-dMg6`#9^GT`=0*k(_!A{{PzB9#ci)#0!caEbUUXo^KseMaf8{;tre!W`OOdcxn+lxmb1?{ir|mtK84hu~X>n1UilHr`-nOBhf5- z{p$JFVX}n?V*M3W^^g+@si&SWI&pO93_3@rPtF7!V>&)2e1%K^iJqeoAe)v;i`RE> z#?8qgu_Jrz?^dy2x^co0h&WHU7GPZY9tdugJqY{+47=*tNsF^)y2yoT#^Yqx*toWY z3&*&2di6Zpi$zC`H;Nhy$tAY{i0B9>MH zQ2;s!LqV&~WE$oXV3{-h`ft7b=!ZXimHH&H%wD~oIX%rLDKXB&33&)4ebUtNC9TN- z_M`$XXPwLZV$JoB%*w?BaH`MIR^yI9sFk1;w4pVuGc3>SAQ|))7r=Xc9b#b0QY}_z zn9j0j~FbmDz`)vvcS=y+m$n`pN-hQ?q>oxQg!{jpHapiIzN+cmJ%+8SMx))cY zfRZoU%M6#j0A=B`-$^%EF_IP7@5t#~0YaGg)m*z5O+d@(?+tDz*drA=3FMh{0WxeK zczgy=Li7a08U$0D23_o{0tg%?d#SV>)|RYwctlSB@ss!7`%8c6x5&YK#HEMLN-7HO zM@T4vT=h0o2gyVuc1g))pt22yo6`3)dU^w4|krhEs8o1 zRXQBd{{T5x6?rl zxQEhT!u`a&NJD+jwasr~G^8JD(*lruCfw#IyeJ9|E6}!@h0`#uFPFpO;^ybL=sYQ9uA9;9hzD@KB%*?xQ3UTD0dNVuIzzK!KqmP67bkiAz3mv$?x_ zR$=C}REHRX)M>X|ntqx6BpR3;N`;H|?3kh=Lp1`#fUQ0UVziHnKmPrkeM7RdP5O|dM;suOD~vp#_2);AaZm%XLx5rcgFZMv!?i}F z-x*BrDKT%NYbAVZJLxDcmLQh;`FQ84B?QJJ!+*3EXim!Dil^Jwj?5eajNUS!3lAey>Q+GlDZ!Ux z@BV{Yvj%A6UtV1;+42QjYgwRYh|{q-YXG^}TJY9{2x*>v_V&d<3BGEEqcrZd3}CQr zNsQ~zh#4tP$;O71!KY07gC|uxq}!vWP&-PtVBMEa(#v9T9Yd6jJN`WLfw@{|M{O&c z41iSV|4Ac4TP~|X7@FYzhTfWxw78m;vYi1b9DuJNpL7WfN&JG$_Iz+{vJK_veN0re zsiLOi#6E$jB%t~IC&%yw0+I`_FZvM4%H}SXtUg@B0Hah8inu%OTimP@pjWT>wpI4hA*U6DC0#(>@r3#HLD<2ZN7zLY^T4fD&C#Jz|fjh(P$F*jeVmdn+4Z36`J10!xBMTwO6 zR6A$z;J!mJLTu?GCh_Td;f;gLu!ktTr&Th|bPdr%S6*{CJB14n5QG$jo{k$<3y08! zWw+Fb>LJ%C5jYO!zzgEjXBGc;o{V{MBA#!aG{VW5mF z*DQ@8`?3039D9QR)%0-O0y4#ZAR2%EKSvU1UrG`Igk**H`xyVQ=t5-jgaNEdzk)~+ zWVMahm9jRH%wXsQ6~(zAer)RrYODGpFonE95j3=dV6|r+VdoIAC+x4N(}NJxDY8J1 z{aaKLqT3CW3^tGl1(k4g-XJ<6yL;U8fCWb7I*wW71*A|^Mb*?c`VGndpU>*W0#G;e zCPM>H0IN({l%$drlM-*hgTinJEFfu}lqkR?KLwy5zmjXnoi69){N;033A(zsDc!Uo zC_#_Fo4U@DVczmpEP6CQD#mtWYdLfgN%<>myG8(2(ye{D&m_xu?TFCRP{y1&aahgx*y}YpSaJ-00 z4wx5VovaU|;{=jJ%6U5IKk2$IaUYY$fx#xl2?C9MA>^)&eFwmTNTIwkTTf0$WXN;J z_J(9O9Ffx`6BY--o2_u)PNy@5>hHBHbU~bA4yznhiW|27CoO<0Y)MaOQqfJ5AC6S% zjDTg3&NBvAV)f`K#rO|Kc+{asgu^63f%?y80}%|6#7_C*mINuM1D%+OW~KUYnT&CU z;B3MHsi7heU=GL>icIJ*<~#n2@WROZoE5gFK%e#x^$mKGfj zYE?GrFRD-zA+TiG53J-AFSZeQ@Xj8AOWa2~04}Xx1U__5mJzXBfa4Cj z2}Eo(v;04du+^ejJ$!IQoeYbMqMH`XRrs?aPCK)H#6GFQL>;@{ujy^JQx|n(99C&c z>ZVtj&^rl>FRO@|ENIdKM*^^jd->xV**g`N+wCeuLlLJi17Sp5g-Y}mBN4LhfqUVx zTOK|i-!<>BECG&5q(UfcLU^GJVDrL6MdQFb=abtYcMqvq$OwiZ>y-J%fI9|5hsbyG z6Ac1BCVW%MFlTYp`0SXbI0I7?<>`QdgGpWj(?J7x@G8PSszTBmhznt?76w3afauA< zUujq0KVbvelhdO!kbjN@$~u{|r32=yf(La_gR-uO9D$)6Y~h7)18`yqZy+ljh@|~d6Pb4;_#q*%Tr%PeQ>zj-U@LO3-35Ovm00LgHj-sVpH(1uRAYoG1 zyzTae7zQ^ECuyA{iGwHPP@1fisvVZ$!CkSs3q0S85l*pKG9-%(*g! zNBcwYFDdX$nzXDU6KCc{X`cjPvq@8YLbR&HU-Ltaod$@3%&rbaM~~QCG#&w|#-d>7 zq)KpZ!o<#R2lA3w1i3~BW88)^IU!9Tp$m+mna#IP-`p+yc(YCrSYT~n{lsiNb-;8H zHhLL}aYlBzEm`OrkCm_{*eA+OJ;y5T6yqLPY-ua$Y>}XK>ofHx(dI{AF0m##3^KR~ zl7XEOY-@y&;B0xEpg@7xgUlm_jKE=n)Ld4MsS&G6J#sZEHE;+R7G%>c(I1ejF{x@~ za<~(bEDhQgsq;b_1*?J*Mm?OE(d z0K9&VJBZ3kG&T1>iMp!$K*9p>`7QmW8+Sx%iV-wEo9^Dz^ zzSh%aYaFqnQ}UT|Qrm|R!#v%5*F^S%z_8$tSCrPAbJgmP4h%Wp3;|k5V;5P5A`}Fy zd+x^UvU3|v*5QCmiKrp)kzLwEnG6vgk##(_ec)TczL@B z1yc~8Y*!UCkX^-n`0V+DW22uP37f6F?BL zHRYV8oMbJC5ylv1nb9$Pd}p$(ib_nd8)QBZ`K+3G>Q(2kS^)K_W(Ut4>1Owtc zUAV+=@(5~2$35Hc8~*7j91sa zuCP^^v<`G6_89VsLVm0zK7SlS$s+Mb zz+o<3X@e(yDkk3;lQ?&$NXM}(_{*yr1RMqgfcBINf*=&w7&Z|i5y|7wh&Ukw4ZM;q z8z%DDdXalI>6Io0349k2x2~IV_ArZQHTeAyg##QJONohwu*TeieDhFsB7)$4&!rue zyMV+lHnbcf8!!g}OAMXNoUo@rY5)@9Vb~D9=}ld+v(T)I9@!%%2zvn$9y}?~i)eZA zAxPII^a!ODc0-oS@w0P8*?bt1w#JLZt+<>wS1&&K!7rW@SxIxLW%Y8^ZjIvLoOLAQ ziyWjv1J(lWCZb*fV#X-lIxOSh4K@Rn;mu-r()HLL_}_d!XB~~X|8h&}V#=Cjh1W;p zvg5?EzR;mSn#vU54%MF(`!xMn))~e&HTrWBn`J#%mXHTyk)_n?wNA!CgoxdbV)n5Q zhv&wkU=#ZYF)jDi1-yccD+ejW;GBpS6Ohd6oRXX;J;Yxe*1tHc|K1!{@+NUhbMRBf z1=>zhl19UE!BkGJca5}9xHNAEo$APQ7|&?79%p@t$NdGDB=>=1{nsgq_4m!foCeG+)=9v*Ypa(raaUgCHF zb2P_xLKDXf!9Y(y9gFde(Z(l;yj!!;_v1Cl+H7 z?p%VN-T8&f{lV|Ev<~hS7OY56B-!^&qeVh~o5?mT*dcPTru)s)msgdS*5nAn?2IN5 zP`Cvv7DN_Nov}xZ{hd&(bj8ejFjYt?h$#ozmzXv)aY9OK8s z;-@!BFU{Ah)$P*{zJBxi{;CXT%f<4=)yOUJ_6`;U?V$y^bY$7-d5+>*mGVAH2OF z)Pz+4Gp~1QM=V7w1Iyz;(LM)L;M7ielcT&%gH}JElQO`H*s~sK&w=X%bSUQTa&v5!3q#5r$%)9XxwBQPX4+llejp-JoZ?WK|U=dp7C5Ok%uS_L4`> zoW#%#YzzrdD@gRhaL&7{ST*lQTV++S;VeEc;}sr)4$7z9iW`kx*I2PU%v@nsVH zs}cY$FC(Xh)en4tt)k|!tb`|oObU7z@`TyZ!MbY||G5NoaTHCWRcy_eUE*%v|H)t8 zPx+5Jic>-;WV^cf>4^JfJ)p_B&%-)PV3rkGxjkVe-nm2ubkRthF*^0e&=1Gm0VTd= zP=^uy;o#NedB7jTa&j5WPgs`9r{$v16_y^NZ^ul>8;xnoi06yzo0p$`_QAWCSC?~= zVlS7A)#hhk`0SLgpYLZgGM1Nwp*dJSGoROmBSq_Y(Dy*+ht$T+YJYQoc`iudJqf+B-5i1j+t7tnU@ZDk& zd4feBiLykxb=hF5$^^*@16{5dKD~N-LY2?GDKh zKKGR-scRKe&Sp~)Kb?gVNsc>XT6Kr)rs#AupB>bO0-(B#DQBTw7e9Ohi-!oBt?|q_ zcwJOGWB`xjag?%TG(x$71+A>61sgg&XO-sXHEA{U+o*fwTiu$z{)hVVHthgfb!2)cxT<{ky+-#aJ}Lrv^=lGFt(8CkcXU z1dNM8vZqbg(E+1#+<1Z|MeBag>~q2Mv{C2}RuCfDq3=fABHWf;ojhnQSk34(lyTQ{ z6XfAc%7kS*Ncsq_AT&!Sk@jNu>g~s0yt==?UMzETOn?1<`%m|qyJ@~)=~a3E?&WGV zYYy{zFf7)8}99Bdls@w|Sv@19p21qrx`)o?7`mfEwI^ zfJ@{au-8_LselunP1%!)!{=&FsuZ0KYVsZ{UFnLjB>+y^lkT{L(gm=Khe$1u0J;byPsq@__`Z<-2^)Zp6;cf?6Vm-Y6)jq?C6(CZ4#z0Q#$paD z;uYe>F$5d3|Bbdp?OT3BGS1)sAO7?|yFpG)>qi#=g+NM}5nur@GJKm7B}@O1vJ{+7 z%AKVOV~HaD3<}Gxt+yzx$}UBxNZ?0 zfR0$O?xt0(Z(qIo^2Mv$^|~O*dHs9;`G5I;|Jfh^{NnaqQ!Nt+%GJjo@Apm3j(C)o zXo%1c9@G!AQ!b8|%hhs!v1ar1?bXfQ{^l~ar%ghT7Bnv*#$dkKsBrz*sfTT0QU>(? z>C{g=lq#qKv~jxM?%3&1ScjSjCEhPArs_bZk^mG#hRnw!Jq* z)(8)W5+4wf4;B?o5|)XrR&U6FMYG;p;c|h;6|j=#IIbzJ=y|4z;d*v9k*ynYVIg8=nmV9VoKyj z%nCFShn?7(JHo)kh`|it+A{Nqng!bt@>h1OTNk---44bhT;w_&;-r22qywmoQAZ3z zE*b%G13~mTt{G+D{hfdK4>B-JI%mEQjyC?gAyA<`f{zopXvnQtCkCr>c(LuajqwA; zl=z(Z07*oa3bpp+5qbA4p@<^lXa(m~ppUW=h0!D}VjtKAMx73jb{k31P)O0q@}t+U z?>1LpQ{@kS@HhU+zx|(o{mXltptH^Mhjm$U!mA~J&ms#!F(F1CHe)djfQ>;8Etj_! z`|G>g>nk$5_qY4Y-8Qq6nj0DHZPG({#Vd<{QXiTAfH%X;K!&+*!{y7B<1ObrJYl&& z(Cde=_N3y)gZPS&vF#;E?3f6Zu1}ywpCzbl9cI%q?*ufnm<}*#Avi~kc?cFm*2q2~ z)vd~+sGq+5>cxv_q&u3lMWf8`wypWx8;laynev!Ni#ZN%7V}JvMMe3{FW1Q8@N*#A zoRW&TEz~=VEvU^k=jO}H?P?VnvS^VYY}>)@fUKJ7P8AB+&+1P-rrx1B>f$HxkPM$q z%C+Q%n*=kla!5U8SsNG`8dV1go5nsqq(|6Z$KbR2=oraB{4(#1$Ro#IS4`tsWmFe5 zF5G$u!q_*18G~SvyfnkgyP6`*Xa3;yiY`xhRX*gP9?mH*4|SL$j9@_NLtH(6e8!2i z7|+Ev4A(@21w9ow2 z>NvZ6^W_^{bA5Mte|dFr zd3$|%d$%Fl(#)D7t}(vRs}U%~(oiEUsSNEdpe^UbUJ!H>sYbsh8YZE?Wme0;`u%Q4kQkKsZ1?pb-`9@0ctv zU+!fK0cgcIdi#b;qSr@78#uY5p0 z<#dw?e+OIUnc>wU(NX+CFUi)P|NpRle_o}oN_jo_uZD1}qO8In%Dy`ks=VPO+=vQJ zV!lA>aSqEv5G<_rh}8ut%RONtA=;R16q*fm{BVmPL_}5r@zX$mW{uuuGRDmy>$A>i-#LB^{I0vbxmv8&H{1Qy_2uQdk!#$onuNoO z6PeCQ(!J7G|HTK5nXwa4OrMuuG)Nuf zEDM&x`oaqRDR|&O@yLlS7I{)^eUgU;7@J7VzS>pgd`c9N1lA+7>`vB=3FC&`=|u4a zY$MZBF=$R0H@jVfj)+|TM#48Xd>7tFmpfiXHU@Fc#(7jYxN|3ly8*SZgNyYLPYN5N zp%tOuzXw$hrSt%E6r}mCTm=V zMUEs-7fL(?_{tS+GQ!v2p&J1xmmgR;otvf|L;Hlogb{sqG{^Q?bD~v?k~6V^*ppAniYgC z{153DYkJSI!dUcjZB%8nkF3Y^yb^h1Rb8$&RdcamQ#nCSMls8?Btd%3USJL@Z44tm zwWUXVsw+Re!;7=p@CWBPK<*ss(Dqr>b3KoOes(?2X+4(Nhp*PPCoT<4Jr)1~2`Mf; z6eEgAz1fOKRF&uN zv9q-mbD27MQ#Q0r!Ey?9>-4?yCyOFs;otQZFpkqiwp$dS-^gpl zItreFVujg=b)@IRY+eR_dOu4nXSrm_T9DZ8ymZ;A4R8VAtCs5kpL2-Of~DhACl`@{ z$;M_1)<_qQo7VtRyK+Ehhs&N4A==Y@q%*R%+Ti7 z%bW*&K3`rH4IZrRDoQ#ETLFvtB#4*2S z+%B-^l}LvNIU%%mnw9|@*dV@#ohQ(`Cv;^JP9ao)a8?I!RT@_@Xz^=UH#nz9opaVZ zx1oy!L;+>R+>V`wg&(;mgRP3!9VVNO1~<==Wib)^3wdP`p_Y*eZI6hMKqFpNr1fA3 zA`$=$ktN%tgz&Rd!8D{ASX|j8icVW=b_Ndwl*VL2ZR(B|E6+*UAx$jz(vMkVNO=hh z0SQS6e1e^Feu+z;+4!I-AYt!B-(25ZZB{#fNL1G}^RzJm5Wr3Abb_)uE~_`Mu2L)6 zz4_t?KmF)~58k|9l%6R>2j2@%6d?jYm{{FC@I+*!Nor9QOl88{yb9c*Vr_K(`L6EkKp%eOL%JpUrCO z`qMX`e*9t^65g(`Qo|k(&3YB|Mpl-wbcoa*gVZw1nExlA+w4ap!-emIa2VVsqzGvP zs|ocC3S^>r^`|di+T96DijB@ur>O8H8f;3NbPW8s+f|Sdx)#M(%Vrlc2blcqBRp_t z?tIkhpzO=1Sji-0CajSSBLYTi?wUitar;9cGxwu)7265>G_XvZ+Uq&FHM4nY*1#ok zMjkq=U}_6(1l>BWVB&?rn1v1DvMh=Sl!(Y)~=G#hmAPO4Qqj1xu;2FIp`>kk#rFe z$fLkaL)IrpcGPKwxA*rq>&vI5sElj_Ul8huIIDLT(a3ka88&{1f%4nG`iFo0moIN_ z66vl*dyaxc+6f2>HUf3Ys~1AbOkzj|pnA#xi$r4!?cDv_ANnp3f>lcf1 zwgVkTjF`r{(-Q&%B)g@8fbgjyrM2?351kko#~?#oBx+><}gi2)be>e$-T~yoxT6iz9I+4jU!;Y!S9#1;dEQrPcpU)|CMBkA)NHq?i=f$(l}_8~x!J4FKYm!rk|r!xIzC6$R6UZAsrAV7 z&RX0%aG;@`*b1RiWTcf5nf#lZhj;IO=j&(N{hIA!Pp_}8raU~zZp~)HLi)TTNo#2A zU^z4e&+Z9;9B~-DU>sw2d9w+WQ4$aIXnT9(dgX4nz)R3Rk6wKD%cs|13(J5#(4L#S z&~zd~WJ*)8hsgs3qJjV)1g;0ZOyhcbDq;fJyDLKDJD^5-xtY<8xYgv--xCu`5#PBFfO=l}^~Aro6xctQ7P<|2g{ zVwXZZc1todta{Ivwin5u8_GkQB6((CIm33eDP$`)R4R81iMzCWXKYCW4B+KBq^JmJ z1+)s*szUQZ4oO)(1>Ex`jZ|k28kqw&PZD=-QNMYzxSP5W0}nuUKdG_M_N? zfP=G8NRU9#W>)EZ&Fqiyj;jfvfGR4AQlxVP131EV>jRTlNN=+jTlQa!px<52uo4i; zylmcm^YF>tY<9s8%*E>V`o;e8dRL;jz#C~MOI(IimR0vw*EA0Jwf)U*IRS>kx(D2W zn#1;2E0(2(WEDF#Mp>vbu2b9X^{4mGKUx>7>#O~8mV0?Qt$ZKTt2x^Eu-#Z{pEVF^F|YJfN=f~44+1NhXf$ZD!PK1w1;9C&*_tHK zpq!kd9)ydjRA_eBMVdLEvq2sPl{Nr$d(^>+!Ve>nHGuSz5lCePNdyJpx1n`@Ow7tL zJu8H`!-_IMQcYeOmUEIGgH$Es?3pHUCzz+$#zLq!ED3Ohpzq|S8C<^o5yu>89w)dQ zvUABPgJL48g>i&SvfX`jCde6!xlcN7v%KD2ef9G%*|l)e(oTBJz@R6x6SF-`@#eG4 z*@Zh4_F&vJ1%ZI*yN^1&o19dB2HrvO*bq6RMC-C{NXBFUx3QnVr`hZnj2y@XSyZMQ zr2g`~K)VqxCzu1cbXD%x5s9DD78xFT%A+Uppd*`NQvgTJ$o$3C7k}l}C+D2`uAT$u zU%UWq*j_e_byVX?T+Pd}@|e!Tgbn391$T-0x?&M6z9?=GxsI%CT~6mU_z&tB1kK23 z@^lh+%$twabLN)n`sp=Om=!dunhm8r#%YQ^_S%E+MiME-M+t|8zlf_5I+3^=YOBGr zf_OHYk?;#rh`_p+Kix;t&g$%8ML;%>@IK^NF%-xz%<8O6hZ6wh1vo4<%G_DLG zNg4i`+zL>LHzngC^IBf7C?^F;g}7vJ(f4i9!eZ(T`W4C)At{tbiq>0u#Fm8B?yB{ z{8U1zBwuQ9IxM#r+ttHYA5T^7{D{rkX~ss!fkXZ7w(N-222e3P_puok^=h>uK#;SE z-Ioy!ju^cj1(wuIL=5NJ^7)Ia<@NndHD5O{H+2+;kQK=4f9E?yyZYuur8%o|kv0!6=Ss&mp8n|7sssoM40_QpclL`kD>6b5JsKyPvj}H+ z+cc}44LSsR$jfbpEIPnppxff%BKGfG&8Bq%vJ@(6M$~K%UtGK+xiOns8i42_cFll# z5c`Y#@ZeHibpD9l5NG^5b6^*E9hM5l6a6GyENmtc4)j>;fFLfRsO4U0}#r`S{D9{p{Tr-#!bII`9LVszJUg(bGf&bFq-ssNuTfCi92@iUV&< z#71IrpGl=<9?Q1R>fj{v6$_?e(~`Jo!{6h^DO5MA$WChceCGbm(60gA+nYF z>`ppd>P1Ogv-;qIXG5F4TMt5q#dlZ{1$yOw_H?$ryn7xID8Xi_ANCqG7A^LFSe)H|k z&CRY!(%Wx8pV?86PA8}RG!5~ug%T){yBaIuhXg0M`ItgMXgxM+&L37QZ5S`EtgF?2 zM&_25eEP}FoSC^uR}b4c3kmcWvhX)!lkC`GT$utwCxwFQHe}3xip03g7&>t#6QOIUnZ?|Y-mf?CMcZAP{bSk5iG)m#6 z96ZnZfE2VNLZNZbw*;r^wXs(btHO8yP4egwWwqa@=)gTO9s^=foyfuKvTF!ECYAVn zFd=gOkcrLO0K&ov^UB!>rOF<^fDU$e%4Rcl4A;#K-9hbuv-B7lSFeBizU=Rnc(*n# zDsV&Yv!RvT-aky)3Uk0A`gL%a%fg07nN)${u`h^05(l05Nzx4T>A2+LMCdCIzS zVkEuU{bp9o7tFC)h~N$4ibsrblI%4kTax1-E_y(iR{NB{u|@*n7Q>gwGfW7AX1QKH z-Q8c@e{#Vh=jGGY(BihwOe-J~Z%pXlh$R&aO5+LHJnnp**)g&yZd=j>i4Pi zMcKlMQn0N#M*4IUoYoj?)bjX~Y-D0IlmS_9+%w z%$r2=n$ps7*{Q5gqoac5VmzJ@T8@j=np!O8VG_>Pi`pZ$P|++PDVTIxqZx5aQDl&Y-zNJeoa1Nr@uU-PjmGowxr~H@ zI?qPd9GtZf>@-sz{QoA;N)jUKRnlY<`|&35_0hWj(w4{%^XI!H8}?=& zUsQRLPMiI5_wsuE!Nq>FacOKP&_p0K;I@yBh$ZISqO_!Oqk{v#Iw8#(dHV+Ah>eGIZ(+6XzTik~LQ3RqOC+_1U>9foVS7L* zB27(3oH4M$IZ)&lC2on zw%BbouHSyVDb{1DpN|=~Vc1bHowWMr$L$_771mWEu^4XI8OJkBOFK?dMO^ei`+*Gv z?6TU`wgV&?L>@aM)_{s=o<5b(8=*4|pYR~NCXwg#R4MPtN+dFr{78H7?0tjKNw+$;_~)Ph}OI;$@3p5%SSCfCUt##em2xdIId%m(u{st6ue42d+w z^vslN?(Mfe`TX;5e(&2~`{sAvq}HUzpoO$H;dwwjjq(}LEhs7at~kkImarkBTZ1?t z5c{B}Qy1M^fBN|Ryq@A4NrQ+Ih-Mrl3loN*m{rxttS>j^@uTm3|0|*FN8Hd|CI8wP zNiSqPB60NV5*ic}N?CLUnlnEfD#VjuJY{{oUST}e!};ay&E?_Ale<-zNt5Mvv#jg= z`C@Z+cUdhq=ku~$kz|R}k10n-MBhFbs*D~*2P}3tG#tnV(b17sL9fKiN{R~&p>C(! zo7??ry*2$Ohr7GSFTQGlp)wtJi<9jUu6$o0uWx1SA=kcg;>VfjVhReAScY*b*pLt`JT$yoZx+pA-y% z@uZ(6?4T=`bGLzV>@hgOTW$i3LAQxD-}0%@VQExpnFR^}ckzdm*Pnj= z{K*<&1{598s-p7aem>>UO?5w7?_Sn$qN?+#*V*z9QM3iFLIZ#_#2>jmP*;iQ~wBgq8MRd zY~_0r(k?6tci;Z%C!c-(```K6w|?+m%%LMxcDxc04ur;pM#t<;a?^NvJ4+)tw=&8Q zm~IdI4%{!CR76Msxvj3yvsSBly)ID(O&v(9w3jxN(-P^Ul|6nO*e}2J=~FhnLQ6J` zF8_GbljWqKSRjz#`E!`=*ptT{>L{l=JDb-rlKrcXkMrZKfTNV3-#vSBJlxzoS%e<& zuGMnAJU(A-&aYl>X3JuI_4x6;oYTUaY@)@d_BIlCF|!d9My^8PmW8q)E@i1hd=!Qc z+Fr7NWYw8Hdwr~zrCnWK+}^&pqmdu68sHddE2YJ^ggcfKM4NCkPNT4_BHNSb*K9 zF1D@JGH}9SV>mLaj4cX_6+0zdXF@&}jB@B_#U|~XvXxwvAloOirNx=ZH#p(o;g80i zf}Ve%Z9n|rmZb^TFJLu_KK^k+

4xM4(n%W8x2Km&Xi_c~}|LFhp`8`H4CS_q-YA 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

n+;Q&ALUTj2+)5yjYrt0Fg9GBEV0ZLKK3_Jfy4 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

#Y?F{rp+g5|8 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�p%>^w5F+%e_J_O^Wxfx`j+ub{-;<%AgGeq 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

(!8aM0hLV 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 M`CtrTt}tK!7ciOBkN^Mx diff --git a/data/10m.tif b/data/10m.tif new file mode 120000 index 0000000..ca03e94 --- /dev/null +++ b/data/10m.tif @@ -0,0 +1 @@ +/home/DMZ/satellite/strasbg/1-Nord/tif/10m.tif \ No newline at end of file diff --git a/data/areaThresholds.txt b/data/areaThresholds.txt old mode 100755 new mode 100644 diff --git a/data/moiThresholds.txt b/data/moiThresholds.txt old mode 100755 new mode 100644 diff --git a/data/sdThresholds.txt b/data/sdThresholds.txt old mode 100755 new mode 100644 From 6d141cee51c3ed4ea30a164261db7148b963e9cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Mon, 2 Jul 2018 08:51:33 +0200 Subject: [PATCH 15/31] clean data --- data/10m.tif | 1 - 1 file changed, 1 deletion(-) delete mode 120000 data/10m.tif diff --git a/data/10m.tif b/data/10m.tif deleted file mode 120000 index ca03e94..0000000 --- a/data/10m.tif +++ /dev/null @@ -1 +0,0 @@ -/home/DMZ/satellite/strasbg/1-Nord/tif/10m.tif \ No newline at end of file From 12b520707f0b5be50c9eb5a9f0c66c5ac83cf245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Mon, 2 Jul 2018 08:52:52 +0200 Subject: [PATCH 16/31] clean data --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 96cbc51..50a04cf 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ build data/result.tif +tmp +result From 33b3f6166e3b21c77a33a109547e0cc790d8efde Mon Sep 17 00:00:00 2001 From: Karamaz0V1 Date: Tue, 3 Jul 2018 17:42:39 +0200 Subject: [PATCH 17/31] Raise IOError when parent dir not found --- python/triskele/CreaTIFF.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/python/triskele/CreaTIFF.py b/python/triskele/CreaTIFF.py index 49649cb..0f3bce1 100644 --- a/python/triskele/CreaTIFF.py +++ b/python/triskele/CreaTIFF.py @@ -24,6 +24,10 @@ np_to_gdt = { def write(fname, X): """X.shape = (length, width) or X.shape = (length, width, samples)""" + + fname = Path(fname) + if not fname.parent.exists(): + raise IOError('Directory not found: {}'.format(fname.parent)) width = X.shape[1] length = X.shape[0] @@ -38,7 +42,7 @@ def write(fname, X): dst_ds = driver.Create(str(fname), width, length, samples, np_to_gdt[X.dtype.type]) for i in range(samples): - dst_ds.GetRasterBand(i + 1).WriteArray(X[:,:,i].astype(np.uint8)) + dst_ds.GetRasterBand(i + 1).WriteArray(X[:,:,i]) dst_ds.FlushCache() def read(fname): From 366f71dfc6d6491a2c555c8f33268acf156ca0a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Tue, 10 Jul 2018 10:29:04 +0200 Subject: [PATCH 18/31] Correction de bug sur Weigth --- CMakeLists.txt | 5 ++- MakefileNoOTB | 6 ++- documentation/GitInfos.org | 20 +++++++++ include/ArrayTree/Weight.hpp | 24 +++++------ include/ArrayTree/Weight.tpp | 82 ++++++++++++++++++------------------ src/PerfArrayTreeBuilder.cpp | 2 +- src/Tree.cpp | 2 +- 7 files changed, 82 insertions(+), 59 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 80bdaf0..49fd89e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,7 +11,7 @@ find_package(Boost REQUIRED system chrono thread program_options date_time seria find_package(GDAL REQUIRED) find_package(TBB REQUIRED) find_package(Threads REQUIRED) -find_package(TinyXML QUIET) +find_package(TinyXML) ############################################## # Create triskele and set properties @@ -40,7 +40,8 @@ target_include_directories(triskele $ ${GDAL_INCLUDE_DIR}) -target_link_libraries(triskele ${BOOST_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${GDAL_LIBRARY} ${TBB_LIBRARIES} ${TinyXML_LIBRARY}) +target_link_libraries(triskele ${BOOST_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${GDAL_LIBRARY} ${TBB_LIBRARIES}) + # ${TinyXML_LIBRARY}) target_compile_definitions(triskele PUBLIC -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD) # -DBOOST_DISABLE_ASSERTS) diff --git a/MakefileNoOTB b/MakefileNoOTB index 4cde640..b2a0771 100644 --- a/MakefileNoOTB +++ b/MakefileNoOTB @@ -21,7 +21,8 @@ PRF_SRC = $(patsubst %, $(CPP_DIR)/%.cpp, $(PRF_PRG)) PRF_OUT = $(patsubst %, $(OUT_DIR)/%, $(PRF_PRG)) ## FLAGS ############################### -DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD # -DBOOST_DISABLE_ASSERTS +DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD -DBOOST_DISABLE_ASSERTS +#DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD #DFLAGS = -g -DENABLE_LOG -DNO_OTB # -DTHREAD_DISABLE -DENABLE_SMART_LOG IFLAGS = $(DFLAGS) -MMD -I$(HPP_DIR) -I/usr/include/gdal LFLAGS = -L$(LIB_DIR) -ltriskele -lstdc++ -lpthread -lboost_system -lboost_chrono -lboost_thread -lboost_program_options -lboost_date_time -lboost_serialization -lboost_filesystem -lboost_unit_test_framework -lgdal -ltbb @@ -57,8 +58,9 @@ clean: wipe: clean rm -rf $(OBJ_DIR) - rm -f $(APG_OUT) $(TST_OUT) $(LIB_DIR)/libtriskele.a + rm -f $(APG_OUT) $(TST_OUT) $(PRF_OUT) $(LIB_DIR)/libtriskele.a rm -f $(OUT_DIR)/*.d + -rmdir $(OUT_DIR) $(OBJ_DIR) $(LIB_DIR) $(BLD_DIR) libtriskele: $(LIB_DIR)/libtriskele.a diff --git a/documentation/GitInfos.org b/documentation/GitInfos.org index 2997d3b..579975d 100644 --- a/documentation/GitInfos.org +++ b/documentation/GitInfos.org @@ -1,4 +1,13 @@ * Git de Triskele + Note aux développeurs + +** La TODO list + - vérifier min et max + - vérifier coupure + - vérifier alpha-tree + - faire un omega-tree + - vérifier production windows + ** Infos concernant le pattern de git de Triskele @@ -31,3 +40,14 @@ Triskele suit partiellement le [[https://nvie.com/posts/a-successful-git-branchi # Pour une branche distante $ git push origin --delete nomDeBranch +- Fusionner les modifications + # Il faut synchroniser la branche développement + $ git pull + $ git commit -a + $ git push + # Il faut sélectionner la branche master + $ git checkout master + # Il faut fusionner + $ git merge develop + # Il est possible d'annuler le traitement en cas de conflit + $ git merge --abort diff --git a/include/ArrayTree/Weight.hpp b/include/ArrayTree/Weight.hpp index 30ca7c6..a3c4cf5 100644 --- a/include/ArrayTree/Weight.hpp +++ b/include/ArrayTree/Weight.hpp @@ -44,17 +44,19 @@ namespace otb { const DimImg &minVal, const DimImg &maxVal) const; }; + // ======================================== /*! Structure intégrant la façon dont est géré un poids pour un MinTree */ - template struct MaxWeight : public WeightBase { + template struct MinWeight : public WeightBase { typedef WeightBase WB; - - static inline bool isWeightInf (const WeightT &a, const WeightT &b); + + inline bool getDecr () const; + static inline bool isWeightInf (const WeightT &a, const WeightT &b); static inline bool isEdgeInf (const Edge &a, const Edge &b); static inline void sort (Edge *edges, DimEdge count); - inline MaxWeight(); - inline MaxWeight (const PixelT *pixels, const Size &size); - inline MaxWeight (const MaxWeight &model, const PixelT *pixels, const Size &size); + inline MinWeight (); + inline MinWeight (const PixelT *pixels, const Size &size); + inline MinWeight (const MinWeight &model, const PixelT *pixels, const Size &size); inline WeightT getWeight (const DimImg &idx) const; inline WeightT getWeight (const Point &a, const Point &b) const; @@ -62,14 +64,12 @@ namespace otb { // ======================================== /*! Structure intégrant la façon dont est géré un poids pour un MaxTree */ - template struct MinWeight : public WeightBase { + template struct MaxWeight : public WeightBase { typedef WeightBase WB; - inline bool getDecr () const; - - inline MinWeight (); - inline MinWeight (const PixelT *pixels, const Size &size); - inline MinWeight (const MinWeight &model, const PixelT *pixels, const Size &size); + inline MaxWeight(); + inline MaxWeight (const PixelT *pixels, const Size &size); + inline MaxWeight (const MaxWeight &model, const PixelT *pixels, const Size &size); inline WeightT getWeight (const DimImg &idx) const; inline WeightT getWeight (const Point &a, const Point &b) const; diff --git a/include/ArrayTree/Weight.tpp b/include/ArrayTree/Weight.tpp index c3769be..013f1ec 100644 --- a/include/ArrayTree/Weight.tpp +++ b/include/ArrayTree/Weight.tpp @@ -101,60 +101,28 @@ WeightBase::weight2valueBound (PixelT *compAPTree, const Weight // ======================================== template inline bool -MaxWeight::isWeightInf (const WeightT &a, const WeightT &b) { +MinWeight::getDecr () const { + return true; +} + +template +inline bool +MinWeight::isWeightInf (const WeightT &a, const WeightT &b) { return a > b; } template inline bool -MaxWeight::isEdgeInf (const Edge &a, const Edge &b) { +MinWeight::isEdgeInf (const Edge &a, const Edge &b) { return isWeightInf (a.weight, b.weight); } template inline void -MaxWeight::sort (Edge *edges, DimEdge count) { +MinWeight::sort (Edge *edges, DimEdge count) { std::sort (edges, edges+count, isEdgeInf); } -template -inline -MaxWeight::MaxWeight () - : WB (nullptr, NullSize) { -} - -template -inline -MaxWeight::MaxWeight (const PixelT *pixels, const Size &size) - : WB (pixels, size) { -} - -template -inline -MaxWeight::MaxWeight (const MaxWeight &model, const PixelT *pixels, const Size &size) - : WB (pixels, size) { -} - -template -inline WeightT -MaxWeight::getWeight (const DimImg &idx) const { - return WB::getValue (idx); -} - -template -inline WeightT -MaxWeight::getWeight (const Point &a, const Point &b) const { - return std::max (getWeight (WB::pointIdx (a)), - getWeight (WB::pointIdx (b))); -} - -// ======================================== -template -inline bool -MinWeight::getDecr () const { - return true; -} - template inline MinWeight::MinWeight () @@ -186,6 +154,38 @@ MinWeight::getWeight (const Point &a, const Point &b) const { getWeight (WB::pointIdx (b))); } +// ======================================== +template +inline +MaxWeight::MaxWeight () + : WB (nullptr, NullSize) { +} + +template +inline +MaxWeight::MaxWeight (const PixelT *pixels, const Size &size) + : WB (pixels, size) { +} + +template +inline +MaxWeight::MaxWeight (const MaxWeight &model, const PixelT *pixels, const Size &size) + : WB (pixels, size) { +} + +template +inline WeightT +MaxWeight::getWeight (const DimImg &idx) const { + return WB::getValue (idx); +} + +template +inline WeightT +MaxWeight::getWeight (const Point &a, const Point &b) const { + return std::max (getWeight (WB::pointIdx (a)), + getWeight (WB::pointIdx (b))); +} + // ======================================== template inline diff --git a/src/PerfArrayTreeBuilder.cpp b/src/PerfArrayTreeBuilder.cpp index f86fd13..50ab63d 100644 --- a/src/PerfArrayTreeBuilder.cpp +++ b/src/PerfArrayTreeBuilder.cpp @@ -40,7 +40,7 @@ perf (const Raster &raster, const GraphWalker &graphWalker, const TreeTy int main (int argc, char **argv, char **envp) { if (argc != 5) { - cerr << "Usage: " << argv[0] << ": treeType coreCount nbTest imageSize" << endl; + cerr << "Usage: " << argv[0] << ": {MIN|MAX|TOS|ALPHA} coreCount nbTest imageSize" << endl; exit (1); } string argType (argv[1]); diff --git a/src/Tree.cpp b/src/Tree.cpp index c738cd7..761c5b1 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -203,7 +203,7 @@ Tree::checkSpare () const { BOOST_ASSERT (compParents[compId] != compId); BOOST_ASSERT (compParents[compId] < maxParent); if (compParents[compId] < compId) - BOOST_ASSERT (*(childrenStart + 2 + compParents[compId]) > *(childrenStart + 2 + compId)); + BOOST_ASSERT (childrenStart[2 + compParents[compId]] > childrenStart[2 + compId]); //BOOST_ASSERT (childCount[compParents[compId]] > childCount[compId]); // Edited line to prevent the "Unused variable" warning } BOOST_ASSERT (compParents[maxParent] == DimImg_MAX); From 42934b5e601476727f77c4e94c4636cbd157907b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Tue, 10 Jul 2018 10:37:04 +0200 Subject: [PATCH 19/31] Correction documentation --- documentation/GitInfos.org | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/documentation/GitInfos.org b/documentation/GitInfos.org index 14fe475..0b787cf 100644 --- a/documentation/GitInfos.org +++ b/documentation/GitInfos.org @@ -40,12 +40,8 @@ Triskele suit partiellement le [[https://nvie.com/posts/a-successful-git-branchi - Supprimer une branche sur un dépot local / sur un dépot distant # Pour une branche locale $ git branch -d nomDeBranche -<<<<<<< HEAD:GitInfos.org - # Pour la supprimer sur le dépot distant - $ git push -d origin nomDeBranche -======= - # Pour une branche distante + # Pour la supprimer sur le dépot distant $ git push origin --delete nomDeBranch - Fusionner les modifications @@ -57,6 +53,8 @@ Triskele suit partiellement le [[https://nvie.com/posts/a-successful-git-branchi $ git checkout master # Il faut fusionner $ git merge develop + # editer les fichier en confli + $ git commit -a + $ git push # Il est possible d'annuler le traitement en cas de conflit $ git merge --abort ->>>>>>> develop:documentation/GitInfos.org From 8f504b9db4713742cf4bf231202922b5bbef4682 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Tue, 10 Jul 2018 10:41:48 +0200 Subject: [PATCH 20/31] =?UTF-8?q?Mise=20=C3=A0=20jour=20commande=20git=20d?= =?UTF-8?q?ans=20documentation?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- documentation/GitInfos.org | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/documentation/GitInfos.org b/documentation/GitInfos.org index 0b787cf..f48e6f1 100644 --- a/documentation/GitInfos.org +++ b/documentation/GitInfos.org @@ -53,8 +53,11 @@ Triskele suit partiellement le [[https://nvie.com/posts/a-successful-git-branchi $ git checkout master # Il faut fusionner $ git merge develop - # editer les fichier en confli + # editer les fichiers en confli $ git commit -a $ git push + # Puis mettre à jour la branch si conflit + $ git checkout develop + $ git merge master # Il est possible d'annuler le traitement en cas de conflit $ git merge --abort From 7499b5b8273824db426afae1153c2883494b263b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Mon, 16 Jul 2018 14:10:48 +0200 Subject: [PATCH 21/31] =?UTF-8?q?Gestion=20des=20pixels=20isol=C3=A9=20en?= =?UTF-8?q?=20cas=20de=20pixels=20"nodata"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MakefileNoOTB | 7 ++- documentation/GitInfos.org | 19 ++++-- include/ArrayTree/ArrayTreeBuilder.tpp | 80 ++++++++++++++++++++----- include/ArrayTree/Border.hpp | 81 -------------------------- include/Border.hpp | 80 +++++++++++++++++++++++++ include/{ArrayTree => }/Border.tpp | 5 ++ include/Tree.hpp | 5 +- src/PerfArrayTreeBuilder.cpp | 4 +- src/TestArrayTreeBuilder.cpp | 30 ++++++---- src/Tree.cpp | 14 ++--- src/apGenerator.cpp | 2 +- 11 files changed, 201 insertions(+), 126 deletions(-) delete mode 100644 include/ArrayTree/Border.hpp create mode 100644 include/Border.hpp rename include/{ArrayTree => }/Border.tpp (97%) diff --git a/MakefileNoOTB b/MakefileNoOTB index b2a0771..715c5e3 100644 --- a/MakefileNoOTB +++ b/MakefileNoOTB @@ -21,9 +21,14 @@ PRF_SRC = $(patsubst %, $(CPP_DIR)/%.cpp, $(PRF_PRG)) PRF_OUT = $(patsubst %, $(OUT_DIR)/%, $(PRF_PRG)) ## FLAGS ############################### +# fast and no control DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD -DBOOST_DISABLE_ASSERTS +# fast but control #DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD -#DFLAGS = -g -DENABLE_LOG -DNO_OTB # -DTHREAD_DISABLE -DENABLE_SMART_LOG +# debut multi-threaded +#DFLAGS = -g -DENABLE_LOG -DNO_OTB +# debut one thread +#DFLAGS = -g -DENABLE_LOG -DNO_OTB -DTHREAD_DISABLE -DENABLE_SMART_LOG IFLAGS = $(DFLAGS) -MMD -I$(HPP_DIR) -I/usr/include/gdal LFLAGS = -L$(LIB_DIR) -ltriskele -lstdc++ -lpthread -lboost_system -lboost_chrono -lboost_thread -lboost_program_options -lboost_date_time -lboost_serialization -lboost_filesystem -lboost_unit_test_framework -lgdal -ltbb CC = g++ diff --git a/documentation/GitInfos.org b/documentation/GitInfos.org index f48e6f1..6f9d50c 100644 --- a/documentation/GitInfos.org +++ b/documentation/GitInfos.org @@ -2,12 +2,13 @@ Note aux développeurs ** La TODO list - - vérifier min et max - - vérifier coupure - - vérifier alpha-tree + - refaire le tableau des exemples de traces + - vérifier min et max apla tos + - vérifier coupure (avec sens de la monotonie) - faire un omega-tree + - faire les features-profiles (L, mean, SD, A, MOI) - vérifier production windows - + - faire des tests de perf pour algo parallèle ** Infos concernant le pattern de git de Triskele @@ -56,8 +57,16 @@ Triskele suit partiellement le [[https://nvie.com/posts/a-successful-git-branchi # editer les fichiers en confli $ git commit -a $ git push - # Puis mettre à jour la branch si conflit + # Puis mettre à jour la branch develop si conflit $ git checkout develop $ git merge master # Il est possible d'annuler le traitement en cas de conflit $ git merge --abort + +- Etiquetage de version + # Choisir la branch master + git checkout master + # Donner un nom majeru.mineur.AAMMJJ + git tag 1.0.180610 + # valider sur le serveur + git push --tags diff --git a/include/ArrayTree/ArrayTreeBuilder.tpp b/include/ArrayTree/ArrayTreeBuilder.tpp index 99e8403..ad318c2 100644 --- a/include/ArrayTree/ArrayTreeBuilder.tpp +++ b/include/ArrayTree/ArrayTreeBuilder.tpp @@ -143,7 +143,6 @@ ArrayTreeBuilder::buildTree (Tree &tree, const WeightFunct &wei << tree.printTree (2*leafCount-1)); // merge sub-tree auto startMerge = high_resolution_clock::now (); - DimImg compCount = compTops [0]; DimImg *topC = NULL; DimImg compBase = vertexMaxBounds[tileCount]; if (boundCount) { @@ -186,6 +185,52 @@ ArrayTreeBuilder::buildTree (Tree &tree, const WeightFunct &wei }); } + // SMART_LOG ("compWeights:" << endl + // << printMap (compWeights, size, 0) << endl << endl + // << tree.printTree (2*leafCount-1)); + if (graphWalker.border.exists ()) { + // merge comp forest + DimImg rootId = 0; + for (unsigned int tileId = 0; tileId < tileCount; tileId++) + if (compTops [tileId] != compBases [tileId]) { + rootId = findRoot (compTops [tileId] - 1); + break; + } + + LOG ("merge forest: " << printComp (rootId)); + for (unsigned int tileId = 0; tileId < tileCount; ++tileId) + for (DimImg compId = compBases [tileId]; compId < compTops [tileId]; ++compId) + if (compParents [compId] == DimImg_MAX) { + connectComp (compId, rootId, weightFunct); + rootId = findRoot (rootId); + LOG ("merge top: compId:" << printComp (compId) << " nr:" << printComp (rootId)); + } + + // merge pixels forest + vector lonelyPixelsCount (tileCount, 0); + vector topsWeight (tileCount, compWeights [rootId]); + dealThreadRange (tileCount, coreCount, [this, &tiles, &rootId, &weightFunct, &lonelyPixelsCount, &topsWeight] (const DimImg &tileId) { + WeightT &topWeight (topsWeight [tileId]); + DimImg &lonelyPixelCount (lonelyPixelsCount [tileId]); + graphWalker.forEachVertexIdx (tiles [tileId], [this, &rootId, &lonelyPixelCount, &topWeight, &weightFunct] (const DimImg &leafId) { + if (leafParents [leafId] == DimImg_MAX) { + WeightT pixelWeight (weightFunct.getWeight (leafId)); + leafParents [leafId] = rootId; + lonelyPixelCount++; + if (weightFunct.isWeightInf (topWeight, pixelWeight)) + topWeight = pixelWeight; + } + }); + }); + for (unsigned int tileId = 0; tileId < tileCount; ++tileId) { + childCount [rootId] += lonelyPixelsCount [tileId]; + if (weightFunct.isWeightInf (compWeights [rootId], topsWeight [tileId])) + compWeights [rootId] = topsWeight [tileId]; + // XXX on ne reprend pas la fraterie inférieur car plus d'appel à findMultiChildrenTop + LOG ("merge pixels: tileId:" << tileId << " lonely:" << lonelyPixelsCount [tileId] << " root:" << printComp (rootId)); + } + } + SMART_LOG ("compWeights:" << endl << printMap (compWeights, size, 0) << endl << endl << tree.printTree (2*leafCount-1)); @@ -196,7 +241,7 @@ ArrayTreeBuilder::buildTree (Tree &tree, const WeightFunct &wei SMART_LOG ("reuse leaders:" << endl << printMap (newCompId, size, 0) << endl << endl); - compCount = updateNewId (compBases, compTops, weightFunct); + DimImg maxTop = updateNewId (compBases, compTops, weightFunct); SMART_LOG ("updateNewId:" << endl << printMap (newCompId, size, 0) << endl << endl); @@ -207,15 +252,15 @@ ArrayTreeBuilder::buildTree (Tree &tree, const WeightFunct &wei << printMap (newCompId, size, 0) << endl << endl); leaders.free (); - while (compCount > 1 && childCount[compCount-1] == 1) { - --compCount; - compParents [compCount-1] = DimImg_MAX; - SMART_LOG ("reduce lonely root:" << printComp (compCount) << endl); + while (maxTop > 1 && childCount[maxTop-1] == 1) { + --maxTop; + compParents [maxTop-1] = DimImg_MAX; + SMART_LOG ("reduce lonely root:" << printComp (maxTop) << endl); } - setNodeCount (tree, leafCount+compCount); + setNodeCount (tree, leafCount+maxTop); LOG ("nodeCount:" << tree.getNodeCount()); - // DimEdge root = compCount-1; - // compParents[root] = root; + // DimEdge rootId = maxTop-1; + // compParents[rootId] = rootId; SMART_LOG ("compWeights:" << endl << printMap (compWeights, size, 0) << endl << endl); @@ -275,8 +320,12 @@ ArrayTreeBuilder::buildParents (Edge *edges, const Wei SMART_LOG ("pa:" << pa << " pb:" << pb << " la:" << la << " lb:" << lb); SMART_LOG ("ra:" << printComp (ra) << " rb:" << printComp (rb)); - if (la == lb) + if (la == lb) { + leaders.link (pa, la); + leaders.link (pb, la); + SMART_LOG ("la=lb"); continue; + } if (ra == DimImg_MAX) { swap (la, lb); swap (ra, rb); @@ -299,9 +348,9 @@ ArrayTreeBuilder::buildParents (Edge *edges, const Wei leader = lb; } } else if (ra == rb) { - // XXX + SMART_LOG ("ra=rb **** XXXX ****"); BOOST_ASSERT (false); - continue; + leader = la; } else if (compWeights[ra] == compWeights [rb]) { // ra.weight = rb.weight // XXX ?= curEdge.weight if (childCount [ra] < childCount [rb]) { @@ -327,7 +376,7 @@ ArrayTreeBuilder::buildParents (Edge *edges, const Wei leaders.link (pa, leader); leaders.link (pb, leader); - SMART_LOG (" leader:" << leader << " ra:" << printComp (ra) << " rb:" << printComp (rb)); + SMART_LOG (" leader:" << leader << " ra:" << printComp (ra) << " rb:" << printComp (rb) << " nr:" << printComp (findRoot (leafParents [la]))); } SMART_LOG ("topParent:" << topParent); @@ -431,7 +480,7 @@ ArrayTreeBuilder::connectLeaf (DimImg a, DimImg b, const Weight unlinkParent (parA); ++childCount[parB]; leafParents[a] = parB; - SMART_LOG ("parA: " << printComp (parA) << " parB: " << printComp (parB)); + SMART_LOG ("link a: " << a << " parB: " << printComp (parB)); } // eqW0 | eqW1 | eqW2 SMART_LOG ("eqW0 | eqW1 | eqW2: connect"); @@ -455,8 +504,7 @@ ArrayTreeBuilder::connect3Comp (DimImg newComp, DimImg topA, Di swap (topA, topB); BOOST_ASSERT (findTopComp (topB, weightFunct) == topB); BOOST_ASSERT (weightFunct.isWeightInf (compWeights[newComp], compWeights[topB])); - compParents[newComp] = topB; - ++childCount[topB]; + addChild (topB, compParents[newComp]); SMART_LOG ("topB: " << printComp (topB)); connectComp (topA, topB, weightFunct); } diff --git a/include/ArrayTree/Border.hpp b/include/ArrayTree/Border.hpp deleted file mode 100644 index c164d36..0000000 --- a/include/ArrayTree/Border.hpp +++ /dev/null @@ -1,81 +0,0 @@ -#ifndef _OTB_TRISKELE_ARRAY_TREE_BORDER_HPP -#define _OTB_TRISKELE_ARRAY_TREE_BORDER_HPP - -#include - -#include "triskeleBase.hpp" -#include "triskeleArrayTreeBase.hpp" - -namespace otb { - namespace triskele { - namespace arrayTree { - - /** Border */ - class Border { - public: - /*! Retourne le nombre de pixels à l'aide de la taille */ - static inline DimImg getPixelsCount (const Size &size); - - /*! Retourne la taille que doit faire le tableau simplifié */ - static inline DimImg getMapLength (DimImg pixelsCount); - - /*! Vérifie si un index est sur la map ou une bordure, en se basant sur le bit de l'index idx de la map */ - inline bool isBorder (DimImg idx) const; - - /*! Vérifie si un point est sur la map ou une bordure en appelant la méthode précédente après avoir converti le point en index */ - inline bool isBorder (const Point &p) const; - - /*! Supprime toutes les occurences de bordure à l'index idx */ - inline void clearBorder (DimImg idx); - - /*! Supprime toutes les occurences de bordure en appelant la méthode précédente après avoir converti le point en index */ - inline void clearBorder (const Point &p); - - /*! Rajoute une occurence de bordure à l'index indiqué */ - inline void setBorder (DimImg idx); - - /*! Rajoute une occurence de bordure en appelant la méthode précédente après avoir converti le point en index */ - inline void setBorder (const Point &p); - - /*! Construit par défault sans aucune bordure */ - inline Border (); - - /*! Construit Border, les valeurs de map dépendent de defaultVal */ - inline Border (const Size &size, bool defaultVal); - inline Border (const Border &border, const Rect &tile); - inline ~Border (); - - inline void reset (bool defaultVal); - - inline const Size &getSize () const; - - /*! Compte le nombre de pixels considérés comme de la bordure */ - inline DimImg borderCount (); - - private: - /*! Nombre de pixels dans l'image */ - DimImg pixelsCount; - - /*! Taille du tableau "simplifié" des pixels */ - DimImg mapLength; - - /*! Dimensions de l'image */ - Size size; - - /*! Tableau "simplifié" des pixels */ - vector map; - - bool defaultVal; - - inline void createMap (); - - friend inline ostream &operator << (ostream &out, const Border &border); - }; - -#include "Border.tpp" - - } //arrayTree - } // triskele -} // otb - -#endif // _OTB_TRISKELE_ARRAY_TREE_BORDER_HPP diff --git a/include/Border.hpp b/include/Border.hpp new file mode 100644 index 0000000..41af2ab --- /dev/null +++ b/include/Border.hpp @@ -0,0 +1,80 @@ +#ifndef _OTB_TRISKELE_BORDER_HPP +#define _OTB_TRISKELE_BORDER_HPP + +#include + +#include "triskeleBase.hpp" +//#include "triskeleArrayTreeBase.hpp" + +namespace triskele { + + /** Border */ + class Border { + public: + /*! Retourne le nombre de pixels à l'aide de la taille */ + static inline DimImg getPixelsCount (const Size &size); + + /*! Retourne la taille que doit faire le tableau simplifié */ + static inline DimImg getMapLength (DimImg pixelsCount); + + /*! Indique qu'une carte de borfure est présente (donc potentiellement des pixels de bordures). */ + inline bool exists () const; + + /*! Vérifie si un index est sur la map ou une bordure, en se basant sur le bit de l'index idx de la map */ + inline bool isBorder (DimImg idx) const; + + /*! Vérifie si un point est sur la map ou une bordure en appelant la méthode précédente après avoir converti le point en index */ + inline bool isBorder (const Point &p) const; + + /*! Supprime toutes les occurences de bordure à l'index idx */ + inline void clearBorder (DimImg idx); + + /*! Supprime toutes les occurences de bordure en appelant la méthode précédente après avoir converti le point en index */ + inline void clearBorder (const Point &p); + + /*! Rajoute une occurence de bordure à l'index indiqué */ + inline void setBorder (DimImg idx); + + /*! Rajoute une occurence de bordure en appelant la méthode précédente après avoir converti le point en index */ + inline void setBorder (const Point &p); + + /*! Construit par défault sans aucune bordure */ + inline Border (); + + /*! Construit Border, les valeurs de map dépendent de defaultVal */ + inline Border (const Size &size, bool defaultVal); + inline Border (const Border &border, const Rect &tile); + inline ~Border (); + + inline void reset (bool defaultVal); + + inline const Size &getSize () const; + + /*! Compte le nombre de pixels considérés comme de la bordure */ + inline DimImg borderCount (); + + private: + /*! Nombre de pixels dans l'image */ + DimImg pixelsCount; + + /*! Taille du tableau "simplifié" des pixels */ + DimImg mapLength; + + /*! Dimensions de l'image */ + Size size; + + /*! Tableau "simplifié" des pixels */ + vector map; + + bool defaultVal; + + inline void createMap (); + + friend inline ostream &operator << (ostream &out, const Border &border); + }; + +#include "Border.tpp" + +} // triskele + +#endif // _OTB_TRISKELE_BORDER_HPP diff --git a/include/ArrayTree/Border.tpp b/include/Border.tpp similarity index 97% rename from include/ArrayTree/Border.tpp rename to include/Border.tpp index e095146..7c5bb74 100644 --- a/include/ArrayTree/Border.tpp +++ b/include/Border.tpp @@ -10,6 +10,11 @@ Border::getMapLength (DimImg pixelsCount) { return (pixelsCount+7)/8; } +inline bool +Border::exists () const { + return map.size (); +} + inline bool Border::isBorder (DimImg idx) const { BOOST_ASSERT (idx < pixelsCount); diff --git a/include/Tree.hpp b/include/Tree.hpp index 344fd0d..51f2ca9 100644 --- a/include/Tree.hpp +++ b/include/Tree.hpp @@ -9,6 +9,7 @@ #include "triskeleBase.hpp" #include "triskeleDebug.hpp" +#include "Border.hpp" namespace otb { namespace triskele { @@ -121,8 +122,8 @@ namespace otb { bool compareTo (const Tree &tree, bool testChildren = false) const; - void checkSpare () const; - void check () const; + void checkSpare (const Border& border) const; + void check (const Border& border) const; // XXX void checkWeightCurve (bool incr) const; // nice ostream diff --git a/src/PerfArrayTreeBuilder.cpp b/src/PerfArrayTreeBuilder.cpp index 50ab63d..597cac3 100644 --- a/src/PerfArrayTreeBuilder.cpp +++ b/src/PerfArrayTreeBuilder.cpp @@ -5,6 +5,7 @@ #include "triskeleDebug.hpp" #include "triskeleBase.hpp" +#include "Border.hpp" #include "Tree.hpp" #include "TreeStats.hpp" #include "TreeBuilder.hpp" @@ -12,7 +13,6 @@ #include "AttributeProfiles.hpp" #include "ArrayTree/triskeleArrayTreeBase.hpp" #include "ArrayTree/triskeleSort.hpp" -#include "ArrayTree/Border.hpp" #include "ArrayTree/GraphWalker.hpp" #include "ArrayTree/Leader.hpp" #include "ArrayTree/Weight.hpp" @@ -33,7 +33,7 @@ perf (const Raster &raster, const GraphWalker &graphWalker, const TreeTy Tree tree (coreCount); WeightAttributes weightAttributes (tree); atb.buildTree (tree, weightAttributes); - tree.check (); + tree.check (graphWalker.border); } // ======================================== diff --git a/src/TestArrayTreeBuilder.cpp b/src/TestArrayTreeBuilder.cpp index 9813d60..6d745b7 100644 --- a/src/TestArrayTreeBuilder.cpp +++ b/src/TestArrayTreeBuilder.cpp @@ -5,6 +5,7 @@ #include "triskeleDebug.hpp" #include "triskeleBase.hpp" +#include "Border.hpp" #include "Tree.hpp" #include "TreeStats.hpp" #include "TreeBuilder.hpp" @@ -12,7 +13,6 @@ #include "AttributeProfiles.hpp" #include "ArrayTree/triskeleArrayTreeBase.hpp" #include "ArrayTree/triskeleSort.hpp" -#include "ArrayTree/Border.hpp" #include "ArrayTree/GraphWalker.hpp" #include "ArrayTree/Leader.hpp" #include "ArrayTree/Weight.hpp" @@ -23,9 +23,9 @@ using namespace otb::triskele; using namespace otb::triskele::arrayTree; -const unsigned int nbTest = 1000; -const TreeType treeType = ALPHA; // TOS; // MIN; // MAX; -const unsigned int coreCount = 4; +const unsigned int nbTest = 1; // 1000; +const TreeType treeType = MIN; // ALPHA; // TOS; // MIN; // MAX; +const unsigned int coreCount = 2; typedef uint16_t PixelT; typedef uint16_t WeightT; @@ -92,7 +92,7 @@ PixelT pixelsB3 [] = { //) parents[0]:0 parentId:6 level child:0 parent:0 parent 5, 1, 7, 2, 4, 1, 6, 6, 4, 6, 1, 5 }; -PixelT pixelsC1 [] = { //A) childIdx:26 parentId:1 parentIdx:25 rootId:9 +PixelT pixelsC1_6x4 [] = { //A) childIdx:26 parentId:1 parentIdx:25 rootId:9 6, 1, 7, 7, 3, 3, 0, 3, 0, 0, 6, 4, 3, 3, 4, 6, 7, 4, @@ -208,23 +208,31 @@ PixelT pixelsT7_12x8 [] = { // ======================================== void test () { //Size size (6, 4); - //Size size (18, 12); + // Size size (18, 12); Size size (12, 8); Border border (size, false); + border.setBorder (1); + //border.setBorder (12); + border.setBorder (13); + border.setBorder (24); + border.setBorder (25); + GraphWalker graphWalker (border); int leafCount = graphWalker.vertexMaxCount (); // ==================== + // PixelT *pixels = pixelsC1_6x4; + // PixelT *pixels = pixelsT1_18x12; // PixelT *pixels = pixelsT2_12x8; // PixelT *pixels = pixelsT3_12x8; // PixelT *pixels = pixelsT4_12x8; - // PixelT *pixels = pixelsT5_12x8; + PixelT *pixels = pixelsT5_12x8; // PixelT *pixels = pixelsT6_12x8; // PixelT *pixels = pixelsT7_12x8; - PixelT *pixels = new PixelT [leafCount]; - for (int i = 0; i < leafCount; ++i) - pixels[i] = std::rand() % 8; + // PixelT *pixels = new PixelT [leafCount]; + // for (int i = 0; i < leafCount; ++i) + // pixels[i] = std::rand() % 8; // ==================== Raster raster (size); @@ -246,7 +254,7 @@ void test () { Tree tree (coreCount); WeightAttributes weightAttributes (tree); atb.buildTree (tree, weightAttributes); - tree.check (); + tree.check (border); AttributeProfiles attributeProfiles (tree); atb.setAttributProfiles (attributeProfiles); diff --git a/src/Tree.cpp b/src/Tree.cpp index 761c5b1..88d648f 100644 --- a/src/Tree.cpp +++ b/src/Tree.cpp @@ -1,5 +1,5 @@ #include "Tree.hpp" -#include "ArrayTree/Border.hpp" +#include "Border.hpp" #include "ArrayTree/GraphWalker.hpp" using namespace otb::triskele; @@ -170,8 +170,7 @@ Tree::compareTo (const Tree &tree, bool testChildren) const { // ======================================== void -Tree::checkSpare () const { - Border border; // default = no border +Tree::checkSpare (const Border &border) const { GraphWalker graphWalker (border); vector tiles; vector boundaries; @@ -229,11 +228,12 @@ Tree::checkSpare () const { } void -Tree::check () const { +Tree::check (const Border& border) const { + GraphWalker graphWalker (border); DimImg compCount = getCompCount (); BOOST_ASSERT (compCount < leafCount); // check parents - forEachLeaf ([this, &compCount] (const DimImg &leafId) { + graphWalker.forEachVertexIdx ([this, &compCount] (const DimImg &leafId) { // XXX si border => leafParents [leafId] == DimImg_MAX BOOST_ASSERT (leafParents[leafId] < compCount); }); @@ -297,8 +297,8 @@ Tree::check () const { BOOST_ASSERT (children[childId-1] < children[childId]); } }); - for (DimImg child = 0; child < nodeCount-1; ++child) - BOOST_ASSERT (childrenMap [child] != DimImg_MAX); + for (DimNodeId child = 0; child < nodeCount-1; ++child) + BOOST_ASSERT (childrenMap [child] != DimImg_MAX || (child < leafCount && border.isBorder (child))); } } diff --git a/src/apGenerator.cpp b/src/apGenerator.cpp index c2de193..094620a 100644 --- a/src/apGenerator.cpp +++ b/src/apGenerator.cpp @@ -3,6 +3,7 @@ #include "triskeleDebug.hpp" #include "triskeleBase.hpp" +#include "Border.hpp" #include "Appli/Option.hpp" #include "Tree.hpp" #include "TreeStats.hpp" @@ -13,7 +14,6 @@ #include "ArrayTree/triskeleArrayTreeBase.hpp" #include "ArrayTree/triskeleSort.hpp" -#include "ArrayTree/Border.hpp" #include "ArrayTree/GraphWalker.hpp" #include "ArrayTree/Leader.hpp" #include "ArrayTree/Weight.hpp" From 29b94432064767915eeb71666c0059b448a78aa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Wed, 18 Jul 2018 10:01:51 +0200 Subject: [PATCH 22/31] =?UTF-8?q?Gestion=20de=20no-data=20(bordure=20et=20?= =?UTF-8?q?connectivit=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MakefileNoOTB | 7 +++--- documentation/GitInfos.org | 3 +++ include/Appli/Option.hpp | 5 ++++- include/Attributes/AreaAttributes.hpp | 1 + include/Attributes/AverageAttributes.hpp | 1 + include/Attributes/MoIAttributes.hpp | 1 + include/Attributes/SDAttributes.hpp | 1 + include/Attributes/WeightAttributes.hpp | 2 +- include/Attributes/XYAttributes.hpp | 1 + include/triskeleDebug.hpp | 12 +++++------ src/Appli/Option.cpp | 27 +++++++++++++++++++++++- src/apGenerator.cpp | 12 ++++++++++- 12 files changed, 60 insertions(+), 13 deletions(-) diff --git a/MakefileNoOTB b/MakefileNoOTB index 715c5e3..ac33389 100644 --- a/MakefileNoOTB +++ b/MakefileNoOTB @@ -25,10 +25,11 @@ PRF_OUT = $(patsubst %, $(OUT_DIR)/%, $(PRF_PRG)) DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD -DBOOST_DISABLE_ASSERTS # fast but control #DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD -# debut multi-threaded +# debug multi-threaded #DFLAGS = -g -DENABLE_LOG -DNO_OTB -# debut one thread +# debug one thread #DFLAGS = -g -DENABLE_LOG -DNO_OTB -DTHREAD_DISABLE -DENABLE_SMART_LOG + IFLAGS = $(DFLAGS) -MMD -I$(HPP_DIR) -I/usr/include/gdal LFLAGS = -L$(LIB_DIR) -ltriskele -lstdc++ -lpthread -lboost_system -lboost_chrono -lboost_thread -lboost_program_options -lboost_date_time -lboost_serialization -lboost_filesystem -lboost_unit_test_framework -lgdal -ltbb CC = g++ @@ -54,7 +55,7 @@ testB: all $(APG_OUT) data/10m.tif data/result.tif --min-tree --max-tree --tos-tree --alpha-tree -A data/areaThresholds.txt -S data/sdThresholds.txt -M data/moiThresholds.txt # --debug perfA: all - $(PRF_OUT) MIN 4 20 1000000 + $(PRF_OUT) MIN 32 20 1000000 init: mkdir -p $(OUT_DIR) $(OBJ_DIR) $(LIB_DIR) diff --git a/documentation/GitInfos.org b/documentation/GitInfos.org index 6f9d50c..a4f60de 100644 --- a/documentation/GitInfos.org +++ b/documentation/GitInfos.org @@ -19,6 +19,9 @@ Triskele suit partiellement le [[https://nvie.com/posts/a-successful-git-branchi ** Commandes utiles +- récupération du git + $ git clone git://git.renater.fr/triskele.git + - Se déplacer sur une branche $ git checkout nomDeBranche diff --git a/include/Appli/Option.hpp b/include/Appli/Option.hpp index 2e073b2..0d7a394 100644 --- a/include/Appli/Option.hpp +++ b/include/Appli/Option.hpp @@ -6,12 +6,14 @@ #include #include "triskeleBase.hpp" +#include "ArrayTree/GraphWalker.hpp" #include "IImage.hpp" #include "Appli/Selected.hpp" namespace otb { namespace triskele { using namespace ::triskele; + using namespace otb::triskele::arrayTree; // ======================================== @@ -29,7 +31,8 @@ namespace otb { unsigned int coreCount = boost::thread::hardware_concurrency (); bool maxTreeFlag = false, minTreeFlag = false, tosTreeFlag = false, alphaTreeFlag = false; bool averageFlag = false; - bool oneBand = false; + bool border = false, oneBand = false; + Connectivity connectivity = Connectivity::C4; Option (); Option (int argc, char** argv); diff --git a/include/Attributes/AreaAttributes.hpp b/include/Attributes/AreaAttributes.hpp index 71bf19b..eaed0a4 100644 --- a/include/Attributes/AreaAttributes.hpp +++ b/include/Attributes/AreaAttributes.hpp @@ -9,6 +9,7 @@ namespace otb { namespace triskele { + /*! Fonction monotonne strictement croissante. */ class AreaAttributes : public CompAttribute { public: inline AreaAttributes (const Tree &tree); diff --git a/include/Attributes/AverageAttributes.hpp b/include/Attributes/AverageAttributes.hpp index 26da188..e316eea 100644 --- a/include/Attributes/AverageAttributes.hpp +++ b/include/Attributes/AverageAttributes.hpp @@ -11,6 +11,7 @@ namespace otb { namespace triskele { + /*! Fonction non monotonne. */ class AverageAttributes : public CompAttribute { public: template diff --git a/include/Attributes/MoIAttributes.hpp b/include/Attributes/MoIAttributes.hpp index 4834d5a..9fa9603 100644 --- a/include/Attributes/MoIAttributes.hpp +++ b/include/Attributes/MoIAttributes.hpp @@ -9,6 +9,7 @@ namespace otb { namespace triskele { + /*! Fonction monotonne strictement croissante. */ class MoIAttributes : public CompAttribute { public: inline MoIAttributes (const Tree &tree, const AreaAttributes &areaAttributes, const XYAttributes &xyAttributes); diff --git a/include/Attributes/SDAttributes.hpp b/include/Attributes/SDAttributes.hpp index 8c19336..696bb35 100644 --- a/include/Attributes/SDAttributes.hpp +++ b/include/Attributes/SDAttributes.hpp @@ -11,6 +11,7 @@ namespace otb { namespace triskele { + /*! Fonction non monotonne, globalement croissante. */ class SDAttributes : public CompAttribute { public: inline SDAttributes (const Tree &tree, const AreaAttributes &areaAttributes); diff --git a/include/Attributes/WeightAttributes.hpp b/include/Attributes/WeightAttributes.hpp index f7614c9..98fc57c 100644 --- a/include/Attributes/WeightAttributes.hpp +++ b/include/Attributes/WeightAttributes.hpp @@ -9,7 +9,7 @@ namespace otb { namespace triskele { - /** Attribute */ + /*! Fonction monotonne strict croissante ou décroissante en fonction de la fonction de poid. */ template class WeightAttributes : public CompAttribute { public: diff --git a/include/Attributes/XYAttributes.hpp b/include/Attributes/XYAttributes.hpp index d69bf3e..d4bc0ea 100644 --- a/include/Attributes/XYAttributes.hpp +++ b/include/Attributes/XYAttributes.hpp @@ -11,6 +11,7 @@ namespace otb { namespace triskele { using namespace ::triskele; + /*! Fonction non monotonne. */ struct AverageXY { double x, y; inline AverageXY () : x(0), y(0) {} diff --git a/include/triskeleDebug.hpp b/include/triskeleDebug.hpp index 9d33a34..78f6105 100644 --- a/include/triskeleDebug.hpp +++ b/include/triskeleDebug.hpp @@ -18,7 +18,7 @@ #endif #ifndef SMART_LOG_EXPR -#define SMART_LOG_EXPR(expr) {if (triskele::debug) {expr;} } +#define SMART_LOG_EXPR(expr) {if (::triskele::debug) {expr;} } #endif #else @@ -52,15 +52,15 @@ #else #ifndef DEF_LOG -#define DEF_LOG(name, expr) ::triskele::Log log (name); { if (triskele::debug) cerr << expr << endl << flush; } +#define DEF_LOG(name, expr) ::triskele::Log log (name); { if (::triskele::debug) cerr << expr << endl << flush; } #endif #ifndef LOG -#define LOG(expr) { if (triskele::debug) cerr << log << "| " << expr << endl << flush; } +#define LOG(expr) { if (::triskele::debug) cerr << log << "| " << expr << endl << flush; } #endif #ifndef DEBUG -#define DEBUG(expr) { if (triskele::debug) cerr << expr << endl << flush; } +#define DEBUG(expr) { if (::triskele::debug) cerr << expr << endl << flush; } #endif #endif @@ -94,8 +94,8 @@ namespace triskele { static unsigned int indent; string functName; public: - Log (const string &functName) : functName (functName) { ++indent; if (triskele::debug) cerr << *this << "> "; } - ~Log () { if (triskele::debug) cerr << *this << "<" << endl << flush; --indent; } + Log (const string &functName) : functName (functName) { ++indent; if (::triskele::debug) cerr << *this << "> "; } + ~Log () { if (::triskele::debug) cerr << *this << "<" << endl << flush; --indent; } friend inline ostream &operator << (ostream &out, const Log &log) { return out << getLocalTimeStr () << setw (3) << setw ((log.indent % 20)*2) << "" << log.functName; } diff --git a/src/Appli/Option.cpp b/src/Appli/Option.cpp index 9c1420e..18ee32e 100644 --- a/src/Appli/Option.cpp +++ b/src/Appli/Option.cpp @@ -98,25 +98,38 @@ Option::parse (int argc, char** argv) { string inputFileName, outputFileName, bandsRange; long left = -1, top = -1, width = -1, height = -1; string areaThresholdsName, levelThresholdsName, sdThresholdsName, moiThresholdsName; + bool c4 = false, c6p = false, c6n = false, c8 = false; try { desc.add_options () ("help", po::bool_switch (&helpFlag), "produce this help message") ("version", po::bool_switch (&versionFlag), "display version information") ("debug", po::bool_switch (&debugFlag), "debug mode") + ("band,b", po::value (&bandsRange), "select input band (first band is 0) (default all bands : 0-*)") ("left,x", po::value (&left), "left crop (default center)") ("top,y", po::value (&top), "top crop (default middle)") ("width,w", po::value (&width), "width crop (default input width)") ("height,h", po::value (&height), "height crop (default input height)") + + ("border", po::bool_switch (&border), "build tree without border pixels (no-data)") + ("C4", po::bool_switch (&c4), (string ("4-connected pixels")+ + (connectivity == Connectivity::C4 ? " (default)" : "")).c_str ()) + ("C6P", po::bool_switch (&c6p), (string ("6-connected pixels (positive")+ + (connectivity == Connectivity::C6P ? " (default)" : "")+")").c_str ()) + ("C6N", po::bool_switch (&c6n), (string ("6-connected pixels (negative")+ + (connectivity == Connectivity::C6N ? " (default)" : "")+")").c_str ()) + ("C8", po::bool_switch (&c8), (string ("8-connected pixels")+ + (connectivity == Connectivity::C8 ? " (default)" : "")).c_str ()) + ("input,i", po::value (&inputFileName), "input file name image") ("output,o", po::value (&outputFileName), "output file name hyperbands image (contains attributs profiles)") - ("average", po::bool_switch (&averageFlag), "produce average profiles") ("max-tree", po::bool_switch (&maxTreeFlag), "build max-tree") ("min-tree", po::bool_switch (&minTreeFlag), "build min-tree") ("tos-tree", po::bool_switch (&tosTreeFlag), "build tree-of-shape") ("alpha-tree", po::bool_switch (&alphaTreeFlag), "build alpha-tree") + ("average", po::bool_switch (&averageFlag), "produce average profiles") ("level,L", po::value (&levelThresholdsName), "produce level attributs") ("area,A", po::value (&areaThresholdsName), "produce area attributs") ("standard-deviation,S", po::value (&sdThresholdsName), "produce standard deviation attributs") @@ -222,6 +235,18 @@ Option::parse (int argc, char** argv) { topLeft = Point ((DimSideImg) left, (DimSideImg) top); size = Size ((DimSideImg) width, (DimSideImg) height); + int connectivityCount = c4 + c6n + c6p + c8; + if (connectivityCount > 1) + usage ("You must choose only one connectivity model"); + if (c6p) + connectivity = Connectivity::C6P; + else if (c6n) + connectivity = Connectivity::C6N; + else if (c8) + connectivity = Connectivity::C8; + else + connectivity = Connectivity::C4; + cout << "Input:" << inputFileName << " " << orgSize << " (" << bandInputCount << " chanels of " << GDALGetDataTypeName (inputType) << ")" << endl << "Crop topLeft:" << topLeft << " size:" << size << " band:" << selectedBand << endl diff --git a/src/apGenerator.cpp b/src/apGenerator.cpp index 094620a..974984e 100644 --- a/src/apGenerator.cpp +++ b/src/apGenerator.cpp @@ -66,7 +66,7 @@ void apGenerator (Option &option) { if (!treeTypesCard) cerr << "*** no tree type ! => copy mode" << endl; - Border border (option.size, false); // default = no border + Border border (option.size, option.border); GraphWalker graphWalker (border); DimImg leafCount = graphWalker.vertexMaxCount (); DimChanel maxThresholds = max (max (max (option.areaThresholds.size (), option.levelThresholds.size ()), option.sdThresholds.size ()), option.moiThresholds.size ()); @@ -77,6 +77,16 @@ void apGenerator (Option &option) { option.outputImage.createImage (option.size, option.inputImage.getDataType (), outputBandsCard); Raster raster; + if (option.border) { + DimChanel bandCount (option.inputImage.getBandCount ()); + for (DimChanel band = 0; band < bandCount; ++band) { + option.inputImage.readBand (raster, band, option.topLeft, option.size); + for (DimImg idx = 0; idx < leafCount; ++idx) + if (raster.getValue (idx)) + border.clearBorder (idx); + } + } + DimChanel chanel = 0; for (DimChanel band : option.selectedBand.getSet ()) { option.inputImage.readBand (raster, band, option.topLeft, option.size); From 6aafd77873f0a6e4fe24e31bb978cfa63eb09f61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Wed, 18 Jul 2018 14:42:21 +0200 Subject: [PATCH 23/31] Correction bug sur no-data + stats "forest managment" --- MakefileNoOTB | 4 ++-- include/ArrayTree/ArrayTreeBuilder.tpp | 8 ++++++-- include/TreeStats.hpp | 1 + src/ArrayTree/triskeleArrayTreeBase.cpp | 2 +- src/TreeStats.cpp | 1 + src/apGenerator.cpp | 3 ++- 6 files changed, 13 insertions(+), 6 deletions(-) diff --git a/MakefileNoOTB b/MakefileNoOTB index ac33389..37e696d 100644 --- a/MakefileNoOTB +++ b/MakefileNoOTB @@ -22,13 +22,13 @@ PRF_OUT = $(patsubst %, $(OUT_DIR)/%, $(PRF_PRG)) ## FLAGS ############################### # fast and no control -DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD -DBOOST_DISABLE_ASSERTS +#DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD -DBOOST_DISABLE_ASSERTS # fast but control #DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD # debug multi-threaded #DFLAGS = -g -DENABLE_LOG -DNO_OTB # debug one thread -#DFLAGS = -g -DENABLE_LOG -DNO_OTB -DTHREAD_DISABLE -DENABLE_SMART_LOG +DFLAGS = -g -DENABLE_LOG -DNO_OTB -DTHREAD_DISABLE -DENABLE_SMART_LOG IFLAGS = $(DFLAGS) -MMD -I$(HPP_DIR) -I/usr/include/gdal LFLAGS = -L$(LIB_DIR) -ltriskele -lstdc++ -lpthread -lboost_system -lboost_chrono -lboost_thread -lboost_program_options -lboost_date_time -lboost_serialization -lboost_filesystem -lboost_unit_test_framework -lgdal -ltbb diff --git a/include/ArrayTree/ArrayTreeBuilder.tpp b/include/ArrayTree/ArrayTreeBuilder.tpp index ad318c2..4067e5a 100644 --- a/include/ArrayTree/ArrayTreeBuilder.tpp +++ b/include/ArrayTree/ArrayTreeBuilder.tpp @@ -188,6 +188,7 @@ ArrayTreeBuilder::buildTree (Tree &tree, const WeightFunct &wei // SMART_LOG ("compWeights:" << endl // << printMap (compWeights, size, 0) << endl << endl // << tree.printTree (2*leafCount-1)); + auto startForest = high_resolution_clock::now (); if (graphWalker.border.exists ()) { // merge comp forest DimImg rootId = 0; @@ -267,7 +268,8 @@ ArrayTreeBuilder::buildTree (Tree &tree, const WeightFunct &wei auto end = high_resolution_clock::now (); globalTreeStats.addTime (buildSetupStats, duration_cast > (startParent-start).count ()); globalTreeStats.addTime (buildParentsStats, duration_cast > (startMerge-startParent).count ()); - globalTreeStats.addTime (buildMergeStats, duration_cast > (startIndex-startMerge).count ()); + globalTreeStats.addTime (buildMergeStats, duration_cast > (startForest-startMerge).count ()); + globalTreeStats.addTime (buildForestStats, duration_cast > (startIndex-startForest).count ()); globalTreeStats.addTime (buildIndexStats, duration_cast > (startCompress-startIndex).count ()); globalTreeStats.addTime (buildCompressStats, duration_cast > (end-startCompress).count ()); } @@ -417,11 +419,13 @@ ArrayTreeBuilder::connectLeaf (DimImg a, DimImg b, const Weight SMART_LOG ("same parents for: " << a << ", " << b); return; } - if (parA == DimImg_MAX) { + if (parB == DimImg_MAX) { + // XXX 20180776 bug fixed parA => parB swap (a, b); swap (parA, parB); SMART_LOG ("swap: " << printComp (parA) << " " << printComp (parB)); } + // XXX parB =? DimImg_MAX if ((parA == DimImg_MAX || weightFunct.isWeightInf (weight, compWeights[parA])) && weightFunct.isWeightInf (weight, compWeights[parB])) { // upW1 & upW2 : upper diff --git a/include/TreeStats.hpp b/include/TreeStats.hpp index 738e3b3..96aae65 100644 --- a/include/TreeStats.hpp +++ b/include/TreeStats.hpp @@ -37,6 +37,7 @@ namespace otb { buildParentsStats, buildFromTilesStats, buildMergeStats, + buildForestStats, buildIndexStats, buildCompressStats, buildChildrenStats, diff --git a/src/ArrayTree/triskeleArrayTreeBase.cpp b/src/ArrayTree/triskeleArrayTreeBase.cpp index c37d733..e7b9524 100644 --- a/src/ArrayTree/triskeleArrayTreeBase.cpp +++ b/src/ArrayTree/triskeleArrayTreeBase.cpp @@ -14,5 +14,5 @@ otb::triskele::arrayTree::tileItemName[] = { std::string otb::triskele::arrayTree::treeTypeLabels[] = { - "min", "max", "tos" + "min", "max", "tos", "alpha" }; diff --git a/src/TreeStats.cpp b/src/TreeStats.cpp index d87397f..d73abe5 100644 --- a/src/TreeStats.cpp +++ b/src/TreeStats.cpp @@ -16,6 +16,7 @@ static string timeTypeLabels [TimeTypeCard] = { " parents ", " from tiles ", " merge ", + " forest mgt. ", " index ", " compress ", " children ", diff --git a/src/apGenerator.cpp b/src/apGenerator.cpp index 974984e..d53bad7 100644 --- a/src/apGenerator.cpp +++ b/src/apGenerator.cpp @@ -78,13 +78,14 @@ void apGenerator (Option &option) { Raster raster; if (option.border) { - DimChanel bandCount (option.inputImage.getBandCount ()); + DimChanel bandCount (option.inputImage.getBandCount ()); // -1); // XXX sans NDVI for (DimChanel band = 0; band < bandCount; ++band) { option.inputImage.readBand (raster, band, option.topLeft, option.size); for (DimImg idx = 0; idx < leafCount; ++idx) if (raster.getValue (idx)) border.clearBorder (idx); } + //cerr << "XXX border: " << border.borderCount () << endl; } DimChanel chanel = 0; From d0af1d31622d633ca9fff5b30eeeca3a8cd62856 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Fri, 27 Jul 2018 14:17:19 +0200 Subject: [PATCH 24/31] =?UTF-8?q?Travail=20sur=20=C3=A9valuation=20thread?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MakefileNoOTB | 52 +++++--- documentation/GitInfos.org | 3 +- include/triskeleDealThreads.hpp | 2 + test/TestThread.cpp | 209 ++++++++++++++++++++++++++++++++ test/thread_test.cpp | 6 - 5 files changed, 247 insertions(+), 25 deletions(-) create mode 100644 test/TestThread.cpp delete mode 100644 test/thread_test.cpp diff --git a/MakefileNoOTB b/MakefileNoOTB index 37e696d..ceac906 100644 --- a/MakefileNoOTB +++ b/MakefileNoOTB @@ -1,5 +1,6 @@ ## DIR ################################# SRC_DIR = . +TST_DIR = $(SRC_DIR)/test CPP_DIR = $(SRC_DIR)/src HPP_DIR = $(SRC_DIR)/include BLD_DIR = build @@ -8,6 +9,11 @@ LIB_DIR = $(BLD_DIR)/lib OBJ_DIR = $(BLD_DIR)/obj ## PRG ################################# + +TRSK_MOD = IImage triskeleArrayTreeBase Tree triskeleDebug TreeStats triskeleBase QuadTreeBuilder Option Selected +TRSK_OBJ = $(patsubst %, $(OBJ_DIR)/%.o, $(TRSK_MOD)) +TRSK_OBJ_XML = $(TRSK_OBJ) $(OBJ_DIR)/XMLTreeBuilder.o + APG_PRG = apGenerator APG_SRC = $(patsubst %, $(CPP_DIR)/%.cpp, $(APG_PRG)) APG_OUT = $(patsubst %, $(OUT_DIR)/%, $(APG_PRG)) @@ -20,45 +26,57 @@ PRF_PRG = PerfArrayTreeBuilder PRF_SRC = $(patsubst %, $(CPP_DIR)/%.cpp, $(PRF_PRG)) PRF_OUT = $(patsubst %, $(OUT_DIR)/%, $(PRF_PRG)) +TTH_MOD = TestDeal +TTH_PRG = TestThread +TTH_SRC = $(patsubst %, $(TST_DIR)/%.cpp, $(TTH_PRG)) +TTH_OBJ = $(patsubst %, $(OBJ_DIR)/%.o, $(TTH_MOD)) +TTH_OUT = $(patsubst %, $(OUT_DIR)/%, $(TTH_PRG)) + ## FLAGS ############################### # fast and no control -#DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD -DBOOST_DISABLE_ASSERTS +DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD -DBOOST_DISABLE_ASSERTS # fast but control #DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD # debug multi-threaded #DFLAGS = -g -DENABLE_LOG -DNO_OTB # debug one thread -DFLAGS = -g -DENABLE_LOG -DNO_OTB -DTHREAD_DISABLE -DENABLE_SMART_LOG +#DFLAGS = -g -DENABLE_LOG -DNO_OTB -DTHREAD_DISABLE -DENABLE_SMART_LOG IFLAGS = $(DFLAGS) -MMD -I$(HPP_DIR) -I/usr/include/gdal LFLAGS = -L$(LIB_DIR) -ltriskele -lstdc++ -lpthread -lboost_system -lboost_chrono -lboost_thread -lboost_program_options -lboost_date_time -lboost_serialization -lboost_filesystem -lboost_unit_test_framework -lgdal -ltbb CC = g++ ## RULES ############################### -$(OBJ_DIR)/%.o: $(CPP_DIR)/%.cpp +$(OBJ_DIR)/%.o: $(SRC_DIR)/*/%.cpp $(CC) $< $(IFLAGS) -cpp -c -o $@ -$(OBJ_DIR)/%.o: $(CPP_DIR)/*/%.cpp +$(OBJ_DIR)/%.o: $(SRC_DIR)/*/*/%.cpp $(CC) $< $(IFLAGS) -cpp -c -o $@ -$(OUT_DIR)/%: $(CPP_DIR)/%.cpp - $(CC) $(IFLAGS) $< -L$(LIB_DIR) $(LFLAGS) -cpp -o $@ -$(OUT_DIR)/%: $(CPP_DIR)/*/%.cpp +$(OUT_DIR)/%: $(SRC_DIR)/*/%.cpp $(CC) $(IFLAGS) $< -L$(LIB_DIR) $(LFLAGS) -cpp -o $@ ## ENTRIES ############################# -all: init libtriskele apGenerator test pref +all: init libtriskele apGenerator test perf -testA: all +test: testA testB testThread + +testThread: init $(TTH_OUT) + $(TTH_OUT) + +testA: init $(TST_OUT) $(TST_OUT) -testB: all +testB: init $(APG_OUT) $(APG_OUT) data/10m.tif data/result.tif --min-tree --max-tree --tos-tree --alpha-tree -A data/areaThresholds.txt -S data/sdThresholds.txt -M data/moiThresholds.txt # --debug -perfA: all +perf: perfA + +perfA: init $(PRF_OUT) $(PRF_OUT) MIN 32 20 1000000 init: mkdir -p $(OUT_DIR) $(OBJ_DIR) $(LIB_DIR) + clean: find . -type f '(' -name '#*' -o -name '*~' ')' -print -exec rm -f '{}' \; @@ -73,19 +91,17 @@ libtriskele: $(LIB_DIR)/libtriskele.a $(APG_OUT): $(APG_SRC) $(LIB_DIR)/libtriskele.a $(TST_OUT): $(TST_SRC) $(LIB_DIR)/libtriskele.a $(PRF_OUT): $(PRF_SRC) $(LIB_DIR)/libtriskele.a +$(TTH_OUT): $(TTH_SRC) $(TTH_OBJ) $(LIB_DIR)/libtriskele.a + $(CC) $(IFLAGS) $< $(TTH_OBJ) -L$(LIB_DIR) $(LFLAGS) -cpp -o $@ -apGenerator: $(APG_OUT) -test: init $(TST_OUT) -pref: init $(PRF_OUT) +apGenerator: init $(APG_OUT) ## DEPENDS ############################# ALL_OUT = $(APG_OUT) -ALL_OBJ = $(OBJ_DIR)/IImage.o $(OBJ_DIR)/triskeleArrayTreeBase.o $(OBJ_DIR)/Tree.o $(OBJ_DIR)/triskeleDebug.o $(OBJ_DIR)/TreeStats.o $(OBJ_DIR)/triskeleBase.o $(OBJ_DIR)/QuadTreeBuilder.o $(OBJ_DIR)/Option.o $(OBJ_DIR)/Selected.o +ALL_OBJ = $(TRSK_OBJ) -ALL_OBJ_XML = $(OBJ_DIR)/IImage.o $(OBJ_DIR)/triskeleArrayTreeBase.o $(OBJ_DIR)/Tree.o $(OBJ_DIR)/triskeleDebug.o $(OBJ_DIR)/TreeStats.o $(OBJ_DIR)/triskeleBase.o $(OBJ_DIR)/QuadTreeBuilder.o $(OBJ_DIR)/XMLTreeBuilder.o $(OBJ_DIR)/Option.o $(OBJ_DIR)/Selected.o - -DEPENDS = ${ALL_OUT:=.d} ${ALL_OBJ:.o=.d} +DEPENDS = ${ALL_OUT:=.d} ${ALL_OBJ:.o=.d} ${TTH_OBJ:.o=.d} -include ${DEPENDS} $(LIB_DIR)/libtriskele.a: $(ALL_OBJ) diff --git a/documentation/GitInfos.org b/documentation/GitInfos.org index a4f60de..a65f8fe 100644 --- a/documentation/GitInfos.org +++ b/documentation/GitInfos.org @@ -2,8 +2,9 @@ Note aux développeurs ** La TODO list - - refaire le tableau des exemples de traces + - refaire le tableau des exemples de traces (./result/BuildSteps.ods) - vérifier min et max apla tos + - copier les valeurs de géolocalisation (de input vers output) - vérifier coupure (avec sens de la monotonie) - faire un omega-tree - faire les features-profiles (L, mean, SD, A, MOI) diff --git a/include/triskeleDealThreads.hpp b/include/triskeleDealThreads.hpp index 23e3a70..4ed24d5 100644 --- a/include/triskeleDealThreads.hpp +++ b/include/triskeleDealThreads.hpp @@ -6,6 +6,8 @@ #endif #include +#include "triskeleDebug.hpp" + namespace triskele { template diff --git a/test/TestThread.cpp b/test/TestThread.cpp new file mode 100644 index 0000000..136a39f --- /dev/null +++ b/test/TestThread.cpp @@ -0,0 +1,209 @@ +#include +#include +#include + +#include "triskeleDealThreads.hpp" +#include "TestThread.hpp" + +using namespace std; +using namespace boost::chrono; +using namespace triskele; +using namespace otb; +using namespace otb::triskele; + +static string timeTypeLabels [TimeTypeCard] = { + "initStats", + "seqReadStats", + "parReadStats", + "seqWriteStats", + "parWriteStats", + "seqRWStats", + "parRWStats" +}; + +// ======================================== +inline string +TestThread::ns2string (double delta) { + ostringstream oss; + duration ns (delta); + oss.fill ('0'); + // typedef duration > days; + // auto d = duration_cast(ns); + // ns -= d; + auto h = duration_cast (ns); + ns -= h; + auto m = duration_cast (ns); + ns -= m; + oss << setw (2) << h.count () << ":" + << setw (2) << m.count () << ":" + << setw (9) << fixed << setprecision (6) << ns.count (); + return oss.str (); +} + +// ======================================== +template +inline void +nodealThreadRange (const DimImg &maxId, const unsigned int &coreCount, const FunctId &functId/* functId (id) */) { + nodealThread (maxId, coreCount, [&functId] (const unsigned int &threadId, const DimImg &minVal, const DimImg &maxVal) { + for (DimImg id = minVal; id < maxVal; ++id) + functId (id); + }); +} + +// ---------------------------------------- +template +inline void +nodealThreadThreadRange (const DimImg &maxId, const unsigned int &coreCount, const FunctThreadId &functThreadId/* functThreadId (threadId, id) */) { + nodealThread (maxId, coreCount, [&functThreadId] (const unsigned int &threadId, const DimImg &minVal, const DimImg &maxVal) { + for (DimImg id = minVal; id < maxVal; ++id) + functThreadId (threadId, id); + }); +} + +// ---------------------------------------- +template +inline void +nodealThread (const DimImg &maxId, unsigned int coreCount, const FunctThreadMinMax &functThreadMinMax/* functThreadMinMax (threadId, minVal, maxVal) */) { + //DEF_LOG ("dealThreadBound", "coreCount:" << coreCount << " maxId:" << maxId); + if (!maxId || !coreCount) + return; + if (DimImg (coreCount) > maxId) + coreCount = (unsigned int) maxId; + if (coreCount == 1) { + functThreadMinMax (0, 0, maxId); + return; + } + + std::vector maxIds = getDealThreadBounds (maxId, coreCount); + for (unsigned int idCopyValInThread = 0; idCopyValInThread < coreCount; ++idCopyValInThread) { + functThreadMinMax (idCopyValInThread, maxIds[idCopyValInThread], maxIds[idCopyValInThread+1]); + } +} + +// ======================================== +TestThread::TestThread () + : global (nbItem*coreCount, 0) +{ +} + +ostream & +TestThread::print (ostream &out, const AlgoStat stats[]) { + out << endl + << setw (16) << left << "Time" << "\t" + << setw (15) << left << "Sum" << "\t" + << setw (3) << left << "Count" << "\t" + << setw (15) << left << "Mean" << "\t" + << setw (15) << left << "Min" << "\t" + << setw (15) << left << "Max" << endl; + for (unsigned int i = 0; i < TimeTypeCard; ++i) { + if (!ba::count (stats[i])) + continue; + out << setw (16) << right << timeTypeLabels[i] << "\t" + << ns2string (ba::sum (stats[i])) << "\t" << setw (3) << ba::count (stats[i]) << "\t" + << ns2string (ba::mean (stats[i])) << "\t" + << ns2string (ba::min (stats[i])) << "\t" + << ns2string (ba::max (stats[i])) + << endl << flush; + } + return out; +} + +template +void +TestThread::fillVector (vector &vect) { + for (size_t i = 0; i < vect.size (); ++i) + vect[i] = (T) std::rand (); +} + +// show algin + + +void +TestThread::multiTest () { + for (unsigned int nbCore = 1; nbCore <= coreCount; ++nbCore) { + for (int i = 0; i < 100; ++i) { + vector sumSeq (nbCore, 0); + vector sumPar (nbCore, 0); + + auto start = high_resolution_clock::now (); + fillVector (global); + + // lecture seq => faire somme + auto startSeqRead = high_resolution_clock::now (); + nodealThreadThreadRange (nbItem, nbCore, [this, &sumSeq] (const unsigned int &threadId, const DimImg &item) { + sumSeq[threadId] += global[item]; + }); + + // lecture // => faire somme + auto startParRead = high_resolution_clock::now (); + dealThreadThreadRange (nbItem, nbCore, [this, &sumPar] (const unsigned int &threadId, const DimImg &item) { + sumPar[threadId] += global[item]; + }); + // XXX vérifier égalité de sumSeq sumPar + + // écriture seq => écrire idx + // écriture // => écrire idx + + // lecture/écriture seq => écrire x/2 + // lecture/écriture // => écrire x/2 + + auto end = high_resolution_clock::now (); + addTime (initStats, duration_cast > (startSeqRead-start).count ()); + addTime (seqReadStats, duration_cast > (startParRead-startSeqRead).count ()); + addTime (parReadStats, duration_cast > (end-startParRead).count ()); + } + print (cout, timeStats); + } +} + +// ======================================== +int +main (int argc, char** argv) { + cout << "start test" << endl; + srand (time (NULL)); + TestThread tt; + tt.multiTest (); + return 0; +} + +// namespace utils { + +// inline size_t alignSize(size_t size, size_t alignment) { +// return (size+alignment-1)&~(alignment-1); +// } + +// template +// inline T * alignPtr(T * ptr, uintptr_t alignment) { +// union { +// T *p; +// uintptr_t u; +// } u; +// u.p = ptr; +// u.u = (u.u+alignment-1)&~(alignment-1); +// return u.p; +// } + +// }//namespace utils +// void init (Index c, Data const &d) { +// if (count != c) { +// kill (); +// count = c; +// size_t const alignment = 64; +// size_t size = alignment-1 +// + utils::alignSize (count*sizeof (Index), alignment) +// + utils::alignSize (count*sizeof (Rank ), alignment) +// + utils::alignSize (count*sizeof (Data ), alignment); +// //memory.reset (new char[size]); +// delete [] memory; +// memory = nullptr; +// memory = new char[size]; + +// char *ptr = utils::alignPtr (memory, alignment); +// parents = reinterpret_cast (ptr); +// ptr += utils::alignSize (count*sizeof (Index), alignment); +// ranks = reinterpret_cast (ptr); +// ptr += utils::alignSize (count*sizeof (Rank ), alignment); +// datas = reinterpret_cast (ptr); +// } +// reset (d); +// } diff --git a/test/thread_test.cpp b/test/thread_test.cpp deleted file mode 100644 index e9b95e9..0000000 --- a/test/thread_test.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include - -int main(int argc, char** argv) { - - return 0; -} From 6c7abb074486db95bdfd3411877b619106b1a7a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Sat, 4 Aug 2018 11:12:26 +0200 Subject: [PATCH 25/31] =?UTF-8?q?Ajout=20de=20geolocalisation=20dans=20le?= =?UTF-8?q?=20r=C3=A9sultat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MakefileNoOTB | 3 +- include/IImage.hpp | 5 +++ include/IImage.tpp | 31 +++++++++++++ include/TreeStats.hpp | 1 + include/triskeleDebug.hpp | 6 +++ src/IImage.cpp | 12 +++++- src/TreeStats.cpp | 22 ---------- src/apGenerator.cpp | 14 +++++- test/TestDeal.cpp | 91 +++++++++++++++++++++++++++++++++++++++ test/TestThread.cpp | 73 ++++++++++++++++++------------- 10 files changed, 202 insertions(+), 56 deletions(-) create mode 100644 test/TestDeal.cpp diff --git a/MakefileNoOTB b/MakefileNoOTB index ceac906..30f3351 100644 --- a/MakefileNoOTB +++ b/MakefileNoOTB @@ -34,7 +34,8 @@ TTH_OUT = $(patsubst %, $(OUT_DIR)/%, $(TTH_PRG)) ## FLAGS ############################### # fast and no control -DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD -DBOOST_DISABLE_ASSERTS +#DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD -DBOOST_DISABLE_ASSERTS +DFLAGS = -O2 -DNDEBUG -DNO_OTB -DBOOST_DISABLE_ASSERTS # fast but control #DFLAGS = -O2 -DNDEBUG -DNO_OTB -DINTEL_TBB_THREAD # debug multi-threaded diff --git a/include/IImage.hpp b/include/IImage.hpp index ff1c553..e7fe74b 100644 --- a/include/IImage.hpp +++ b/include/IImage.hpp @@ -19,6 +19,7 @@ namespace triskele { private: Size size; vector pixels; + public: inline void setSize (const Size &size); inline const Size &getSize () const; @@ -39,6 +40,8 @@ namespace triskele { class IImage { public: void setFileName (string fileName); + inline void getGeo (string& projectionRef, vector &geoTransform) const; + inline void setGeo (const string& projectionRef, vector geoTransform, const Point &topLeft); inline const string &getFileName () const; inline const Size &getSize () const; inline const DimChanel &getBandCount () const; @@ -66,6 +69,8 @@ namespace triskele { private: static size_t gdalCount; + string projectionRef; + vector geoTransform; string fileName; Size size; DimChanel bandCount; diff --git a/include/IImage.tpp b/include/IImage.tpp index aad6f02..fb6d697 100644 --- a/include/IImage.tpp +++ b/include/IImage.tpp @@ -86,6 +86,37 @@ IImage::setFileName (string fileName) { close (); } +inline void +IImage::getGeo (string& projectionRef, vector &geoTransform) const { + projectionRef = this->projectionRef; + geoTransform = this->geoTransform; +} + +inline void +IImage::setGeo (const string& projectionRef, vector geoTransform, const Point &topLeft) { + DEF_LOG ("IImage::setGeo", "projectionRef:" << projectionRef); + // move TopLeft cf WordFile + double + x (geoTransform[0]), + xScale (geoTransform[1]), + xSkew (geoTransform[2]), + y (geoTransform[3]), + ySkew (geoTransform[4]), + yScale (geoTransform[5]); + double + xTrans = x + topLeft.x*xScale + topLeft.y*xSkew, + yTrans = y + topLeft.x*ySkew + topLeft.y*yScale; + geoTransform[0] = xTrans; + geoTransform[3] = yTrans; + CPLErr err = gdalOutputDataset->SetGeoTransform (&geoTransform[0]); + if (err != CE_None) + cerr << "IImage::setGeo: can't set geoTransform for " << fileName << endl; + err = gdalOutputDataset->SetProjection (projectionRef.c_str ()); + if (err != CE_None) + cerr << "IImage::setGeo: can't set projection for " << fileName << endl; +} + + inline const string & IImage::getFileName () const { return fileName; diff --git a/include/TreeStats.hpp b/include/TreeStats.hpp index 96aae65..f227d58 100644 --- a/include/TreeStats.hpp +++ b/include/TreeStats.hpp @@ -11,6 +11,7 @@ #include #include +#include "triskeleDebug.hpp" #include "ArrayTree/triskeleArrayTreeBase.hpp" namespace otb { diff --git a/include/triskeleDebug.hpp b/include/triskeleDebug.hpp index 78f6105..9feffbd 100644 --- a/include/triskeleDebug.hpp +++ b/include/triskeleDebug.hpp @@ -6,6 +6,8 @@ #include #include #include +#include + #ifdef ENABLE_SMART_LOG @@ -101,7 +103,11 @@ namespace triskele { } }; + inline string ns2string (double delta); + // ======================================== +#include "triskeleDebug.tpp" + }//namespace triskele #endif //_TRISKELE_DEBUG_HPP diff --git a/src/IImage.cpp b/src/IImage.cpp index 70d61cf..ebcee45 100644 --- a/src/IImage.cpp +++ b/src/IImage.cpp @@ -11,7 +11,8 @@ size_t IImage::gdalCount = 0; IImage::IImage (const string &imageFileName) - : fileName (imageFileName), + : geoTransform (6, 0), + fileName (imageFileName), gdalInputDataset (nullptr), gdalOutputDataset (nullptr), read (false) @@ -36,11 +37,18 @@ IImage::readImage () { cerr << "GDALError: can't define dataset" << endl; return; } + size = Size (gdalInputDataset->GetRasterXSize (), gdalInputDataset->GetRasterYSize ()); bandCount = gdalInputDataset->GetRasterCount (); LOG ("size: " << size << " x " << bandCount); read = true; + projectionRef = gdalInputDataset->GetProjectionRef (); + CPLErr err = gdalInputDataset->GetGeoTransform (&geoTransform[0]); + if (err != CE_None) + cerr << "IImage::readImage: can't read geoTransform from " << fileName << endl; + else + LOG ("geoTransform: " << geoTransform [0] << " " << geoTransform [1] << " " << geoTransform [2] << " " << geoTransform [3] << " " << geoTransform [4] << " " << geoTransform [5]); for (DimChanel band = 0; band < bandCount; ++band) { GDALRasterBand &poBand = *gdalInputDataset->GetRasterBand (band+1); @@ -81,6 +89,7 @@ IImage::createImage (const Size &size, const GDALDataType &dataType, const DimCh GDALDriver *driverTiff = GetGDALDriverManager ()->GetDriverByName ("GTiff"); remove (fileName.c_str ()); gdalOutputDataset = driverTiff->Create (fileName.c_str (), size.width, size.height, nbBands, dataType, NULL); + LOG("gdalCount: " << gdalCount); } @@ -88,7 +97,6 @@ void IImage::close () { DEF_LOG ("IImage::close", "fileName: " << fileName); if (gdalOutputDataset) { - // XXX pour écriture gdalOutputDataset->SetProjection ("WGS84"); GDALClose (gdalOutputDataset); gdalOutputDataset = nullptr; if (!--gdalCount) diff --git a/src/TreeStats.cpp b/src/TreeStats.cpp index d73abe5..1c577fc 100644 --- a/src/TreeStats.cpp +++ b/src/TreeStats.cpp @@ -1,7 +1,5 @@ #include -#include - #include "TreeStats.hpp" using namespace otb::triskele; @@ -47,26 +45,6 @@ TreeStats::reset () { } // ======================================== -using namespace boost::chrono; -inline string -ns2string (double delta) { - ostringstream oss; - duration ns (delta); - oss.fill ('0'); - // typedef duration > days; - // auto d = duration_cast(ns); - // ns -= d; - auto h = duration_cast (ns); - ns -= h; - auto m = duration_cast (ns); - ns -= m; - oss << setw (2) << h.count () << ":" - << setw (2) << m.count () << ":" - << setw (9) << fixed << setprecision (6) << ns.count (); - return oss.str (); -} - -// ---------------------------------------- TreeStats::CPrintDim::CPrintDim (const TreeStats &treeStats) : treeStats (treeStats) { } diff --git a/src/apGenerator.cpp b/src/apGenerator.cpp index d53bad7..e0873e5 100644 --- a/src/apGenerator.cpp +++ b/src/apGenerator.cpp @@ -45,6 +45,12 @@ writeBand (Option &option, PixelT *pixels, DimChanel band) { fileNameStream << outputBaseName << "-" << std::setfill ('0') << std::setw (3) << (band) << outputExtension; IImage outputImage (fileNameStream.str ()); outputImage.createImage (option.size, option.inputImage.getDataType (), 1); + // XXX en double + string projectionRef; + vector geoTransform; + option.inputImage.getGeo (projectionRef, geoTransform); + outputImage.setGeo (projectionRef, geoTransform, option.topLeft); + outputImage.writeBand (pixels, 0); } @@ -73,8 +79,14 @@ void apGenerator (Option &option) { vector > allBands (maxThresholds, vector (leafCount, 0)); DimChanel outputBandsCard = option.selectedBand.getSet ().size ()*(1+treeTypesCard*(option.areaThresholds.size ()+option.levelThresholds.size ()+option.sdThresholds.size ()+option.moiThresholds.size ())); - if (!option.oneBand) + if (!option.oneBand) { option.outputImage.createImage (option.size, option.inputImage.getDataType (), outputBandsCard); + // XXX en double + string projectionRef; + vector geoTransform; + option.inputImage.getGeo (projectionRef, geoTransform); + option.outputImage.setGeo (projectionRef, geoTransform, option.topLeft); + } Raster raster; if (option.border) { diff --git a/test/TestDeal.cpp b/test/TestDeal.cpp new file mode 100644 index 0000000..36496a6 --- /dev/null +++ b/test/TestDeal.cpp @@ -0,0 +1,91 @@ +// faire test 10000 + lamba + 1...coreCount +#include +#include + +#include "triskeleDealThreads.hpp" +#include "TestThread.hpp" + +using namespace std; +using namespace boost::chrono; +using namespace triskele; +using namespace otb; +using namespace otb::triskele; + +inline void +fDirect (const DimImg &nbItem, const vector &global) { + DimImg sum = 0; + for (DimImg x = 0; x < nbItem; ++x) + sum += global[x]; +} + +template +inline void +fLambda (DimImg &nbItem, const FunctId &functId/* functId (id) */) { + for (DimImg x = 0; x < nbItem; ++x) + functId (x); +} + +template +inline void +fThread (double &inDuration, const DimImg &nbItem, const FunctId &functId/* functId (id) */) { +#if INTEL_TBB_THREAD + using namespace tbb; +#pragma warning(disable: 588) + parallel_for (size_t (0), size_t (1), [&nbItem, &functId] (size_t idCopyValInThread) { + auto start = high_resolution_clock::now (); + for (DimImg x = 0; x < nbItem; ++x) + functId (x); + auto end = high_resolution_clock::now (); + inDuration = duration_cast > (end-start).count (); + }); +#else /* BOOST thread */ + std::vector tasks; + for (unsigned int idCopyValInThread = 0; idCopyValInThread < 1; ++idCopyValInThread) { + tasks.push_back (boost::thread ([/*no ref!!!*/idCopyValInThread, &nbItem, &functId, &inDuration] () { + auto start = high_resolution_clock::now (); + for (DimImg x = 0; x < nbItem; ++x) + functId (x); + auto end = high_resolution_clock::now (); + inDuration += duration_cast > (end-start).count (); + })); + } + for (unsigned int i = 0; i < 1; ++i) + tasks[i].join (); +#endif +} + +void +TestThread::testDeal () { + + DimImg nbItem = global.size (); + double inDuration = 0; + // XXX direct + auto startDirect = high_resolution_clock::now (); + fDirect (nbItem, global); + + // XXX lambda + auto startLamba = high_resolution_clock::now (); + DimImg sum = 0; + fLambda (nbItem, [this, &sum] (const DimImg &x) { + sum += global [x]; + }); + + // XXX thread + auto startThread = high_resolution_clock::now (); + sum = 0; + fThread (inDuration, nbItem, [this, &sum] (const DimImg &x) { + sum += global [x]; + }); + + // XXX n direct + + // XXX n lambda + + // XXX n thread + + auto end = high_resolution_clock::now (); + addTime (directDealStats, duration_cast > (startLamba-startDirect).count ()); + addTime (lambdaDealStats, duration_cast > (startThread-startLamba).count ()); + addTime (threadDealStats, duration_cast > (end-startThread).count ()); + addTime (inThreadDealStats, inDuration); +} diff --git a/test/TestThread.cpp b/test/TestThread.cpp index 136a39f..af481de 100644 --- a/test/TestThread.cpp +++ b/test/TestThread.cpp @@ -12,6 +12,12 @@ using namespace otb; using namespace otb::triskele; static string timeTypeLabels [TimeTypeCard] = { + "directDeal", + "lambdaDeal", + "threadDeal", + "inThreadDeal", + + "initStats", "seqReadStats", "parReadStats", @@ -21,6 +27,9 @@ static string timeTypeLabels [TimeTypeCard] = { "parRWStats" }; +const unsigned int +TestThread::maxCoreCount = boost::thread::hardware_concurrency (); + // ======================================== inline string TestThread::ns2string (double delta) { @@ -81,8 +90,9 @@ nodealThread (const DimImg &maxId, unsigned int coreCount, const FunctThreadMinM } // ======================================== -TestThread::TestThread () - : global (nbItem*coreCount, 0) +TestThread::TestThread (const unsigned int &coreCount) + : coreCount (coreCount), + global (nbItem*coreCount, 0) { } @@ -120,40 +130,38 @@ TestThread::fillVector (vector &vect) { void TestThread::multiTest () { - for (unsigned int nbCore = 1; nbCore <= coreCount; ++nbCore) { - for (int i = 0; i < 100; ++i) { - vector sumSeq (nbCore, 0); - vector sumPar (nbCore, 0); + for (int i = 0; i < 100; ++i) { + vector sumSeq (coreCount, 0); + vector sumPar (coreCount, 0); - auto start = high_resolution_clock::now (); - fillVector (global); + auto start = high_resolution_clock::now (); + fillVector (global); - // lecture seq => faire somme - auto startSeqRead = high_resolution_clock::now (); - nodealThreadThreadRange (nbItem, nbCore, [this, &sumSeq] (const unsigned int &threadId, const DimImg &item) { - sumSeq[threadId] += global[item]; - }); + // lecture seq => faire somme + auto startSeqRead = high_resolution_clock::now (); + nodealThreadThreadRange (nbItem, coreCount, [this, &sumSeq] (const unsigned int &threadId, const DimImg &item) { + sumSeq[threadId] += global[item]; + }); - // lecture // => faire somme - auto startParRead = high_resolution_clock::now (); - dealThreadThreadRange (nbItem, nbCore, [this, &sumPar] (const unsigned int &threadId, const DimImg &item) { - sumPar[threadId] += global[item]; - }); - // XXX vérifier égalité de sumSeq sumPar + // lecture // => faire somme + auto startParRead = high_resolution_clock::now (); + dealThreadThreadRange (nbItem, coreCount, [this, &sumPar] (const unsigned int &threadId, const DimImg &item) { + sumPar[threadId] += global[item]; + }); + // XXX vérifier égalité de sumSeq sumPar - // écriture seq => écrire idx - // écriture // => écrire idx + // écriture seq => écrire idx + // écriture // => écrire idx - // lecture/écriture seq => écrire x/2 - // lecture/écriture // => écrire x/2 + // lecture/écriture seq => écrire x/2 + // lecture/écriture // => écrire x/2 - auto end = high_resolution_clock::now (); - addTime (initStats, duration_cast > (startSeqRead-start).count ()); - addTime (seqReadStats, duration_cast > (startParRead-startSeqRead).count ()); - addTime (parReadStats, duration_cast > (end-startParRead).count ()); - } - print (cout, timeStats); + auto end = high_resolution_clock::now (); + addTime (initStats, duration_cast > (startSeqRead-start).count ()); + addTime (seqReadStats, duration_cast > (startParRead-startSeqRead).count ()); + addTime (parReadStats, duration_cast > (end-startParRead).count ()); } + print (cout, timeStats); } // ======================================== @@ -161,8 +169,13 @@ int main (int argc, char** argv) { cout << "start test" << endl; srand (time (NULL)); + TestThread tt; - tt.multiTest (); + //tt.multiTest (); + for (int i = 0; i < 100; ++i) + tt.testDeal (); + tt.print (cout, tt.timeStats); + return 0; } From ebdc90f26f82a8482a59f55403ebefa7f4f5be3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Sat, 4 Aug 2018 11:14:02 +0200 Subject: [PATCH 26/31] Le test continue --- include/triskeleDebug.tpp | 24 ++++++++++++ test/TestThread.hpp | 80 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 include/triskeleDebug.tpp create mode 100644 test/TestThread.hpp diff --git a/include/triskeleDebug.tpp b/include/triskeleDebug.tpp new file mode 100644 index 0000000..7fbadc0 --- /dev/null +++ b/include/triskeleDebug.tpp @@ -0,0 +1,24 @@ +#ifndef _OTB_TRISKELE_DEBUG_TPP +#define _OTB_TRISKELE_DEBUG_TPP + +string +ns2string (double delta) { + using namespace boost::chrono; + + ostringstream oss; + duration ns (delta); + oss.fill ('0'); + // typedef duration > days; + // auto d = duration_cast(ns); + // ns -= d; + auto h = duration_cast (ns); + ns -= h; + auto m = duration_cast (ns); + ns -= m; + oss << setw (2) << h.count () << ":" + << setw (2) << m.count () << ":" + << setw (9) << fixed << setprecision (6) << ns.count (); + return oss.str (); +} + +#endif // _OTB_TRISKELE_DEBUG_TPP diff --git a/test/TestThread.hpp b/test/TestThread.hpp new file mode 100644 index 0000000..8634636 --- /dev/null +++ b/test/TestThread.hpp @@ -0,0 +1,80 @@ +// OK faire une classe +// OK changer coreCount en maxCoreCount +// faire test 10000 + lamba + 1...coreCount +// découpe fichier TestThread.cpp +// calcul alignement +// lecture seq => faire somme +// lecture // => faire somme + +// écriture seq => écrire idx +// écriture // => écrire idx + +// lecture/écriture seq => écrire x/2 +// lecture/écriture // => écrire x/2 + +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +namespace otb { + namespace triskele { + using namespace std; + namespace ba = boost::accumulators; + typedef ba::accumulator_set > AlgoStat; + enum TimeType { + directDealStats, + lambdaDealStats, + threadDealStats, + inThreadDealStats, + + initStats, + seqReadStats, + parReadStats, + seqWriteStats, + parWriteStats, + seqRWStats, + parRWStats, + + TimeTypeCard + }; + typedef uint32_t DimImg; + + class TestThread { + public: + + static const unsigned int maxCoreCount; + unsigned int coreCount; + AlgoStat timeStats[TimeTypeCard]; + size_t nbItem = 1000000; + // XXX vérifier l'alignement vector + vector global; + + TestThread (const unsigned int &coreCount = maxCoreCount); + // XXX en commun + static inline string ns2string (double delta); + inline void addTime (const TimeType &timeType, const double &duration) { + timeStats[timeType] (duration); + } + ostream &print (ostream &out, const AlgoStat stats[]); + // XXX déclarer nodealThread + + template + void fillVector (vector &vect); + void multiTest (); + + void testDeal (); + }; + } +} From c4adb1e2251c87745fe49b495181b21abbd4a2d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Mon, 6 Aug 2018 10:53:08 +0200 Subject: [PATCH 27/31] Production de feature-profiles --- documentation/GitInfos.org | 13 ++- include/Appli/Option.hpp | 4 +- include/ArrayTree/ArrayTreeBuilder.tpp | 4 +- include/ArrayTree/triskeleArrayTreeBase.hpp | 2 + include/ArrayTree/triskeleArrayTreeBase.tpp | 8 ++ include/AttributeProfiles.hpp | 3 + include/AttributeProfiles.tpp | 13 +++ include/Attributes/WeightAttributes.hpp | 2 +- include/Attributes/WeightAttributes.tpp | 9 +- include/CompAttribute.hpp | 4 +- include/CompAttribute.tpp | 17 ++- include/IImage.hpp | 6 +- src/Appli/Option.cpp | 31 +++++- src/IImage.cpp | 11 ++ src/apGenerator.cpp | 116 ++++++++++++-------- 15 files changed, 175 insertions(+), 68 deletions(-) diff --git a/documentation/GitInfos.org b/documentation/GitInfos.org index a65f8fe..c730b26 100644 --- a/documentation/GitInfos.org +++ b/documentation/GitInfos.org @@ -2,15 +2,20 @@ Note aux développeurs ** La TODO list - - refaire le tableau des exemples de traces (./result/BuildSteps.ods) - - vérifier min et max apla tos - - copier les valeurs de géolocalisation (de input vers output) - vérifier coupure (avec sens de la monotonie) - - faire un omega-tree + - faire coupures suivant (A>, W<>, SD>, MOI>) + - sort W thresholds - faire les features-profiles (L, mean, SD, A, MOI) - vérifier production windows + - refaire le tableau des exemples de traces (./result/BuildSteps.ods) + - vérifier min et max apla tos + - faire un omega-tree - faire des tests de perf pour algo parallèle +** Fonctions intégré depuis la dernière version + - copier les valeurs de géolocalisation (de input vers output) + + ** Infos concernant le pattern de git de Triskele Triskele suit partiellement le [[https://nvie.com/posts/a-successful-git-branching-model/][modèle gitflow]] pour son développement en conservant certaines branches : diff --git a/include/Appli/Option.hpp b/include/Appli/Option.hpp index 0d7a394..5ba1697 100644 --- a/include/Appli/Option.hpp +++ b/include/Appli/Option.hpp @@ -16,6 +16,7 @@ namespace otb { using namespace otb::triskele::arrayTree; // ======================================== + enum FeatureType { AP, MEAN, SD, AREA, MOI }; class Option { public: @@ -30,10 +31,9 @@ namespace otb { vector levelThresholds, sdThresholds, moiThresholds; unsigned int coreCount = boost::thread::hardware_concurrency (); bool maxTreeFlag = false, minTreeFlag = false, tosTreeFlag = false, alphaTreeFlag = false; - bool averageFlag = false; bool border = false, oneBand = false; Connectivity connectivity = Connectivity::C4; - + FeatureType featureType = FeatureType::AP; Option (); Option (int argc, char** argv); diff --git a/include/ArrayTree/ArrayTreeBuilder.tpp b/include/ArrayTree/ArrayTreeBuilder.tpp index 4067e5a..17d72a9 100644 --- a/include/ArrayTree/ArrayTreeBuilder.tpp +++ b/include/ArrayTree/ArrayTreeBuilder.tpp @@ -220,8 +220,8 @@ ArrayTreeBuilder::buildTree (Tree &tree, const WeightFunct &wei lonelyPixelCount++; if (weightFunct.isWeightInf (topWeight, pixelWeight)) topWeight = pixelWeight; - } - }); + } + }); }); for (unsigned int tileId = 0; tileId < tileCount; ++tileId) { childCount [rootId] += lonelyPixelsCount [tileId]; diff --git a/include/ArrayTree/triskeleArrayTreeBase.hpp b/include/ArrayTree/triskeleArrayTreeBase.hpp index 4a69c9e..21cbcf6 100644 --- a/include/ArrayTree/triskeleArrayTreeBase.hpp +++ b/include/ArrayTree/triskeleArrayTreeBase.hpp @@ -29,6 +29,8 @@ namespace otb { /* Définit le type d'arbre à construire */ enum TreeType { MIN, MAX, TOS, ALPHA, TreeTypeCard}; + inline bool getDecrFromTreetype (TreeType treeType); + /*! Définit les noms des connectivités (utile pour le debug) */ extern string connectivityName[]; diff --git a/include/ArrayTree/triskeleArrayTreeBase.tpp b/include/ArrayTree/triskeleArrayTreeBase.tpp index a0fe25e..518fd82 100644 --- a/include/ArrayTree/triskeleArrayTreeBase.tpp +++ b/include/ArrayTree/triskeleArrayTreeBase.tpp @@ -1,6 +1,14 @@ #ifndef _OTB_TRISKELE_ARRAY_TREE_BASE_TPP #define _OTB_TRISKELE_ARRAY_TREE_BASE_TPP +inline bool +getDecrFromTreetype (TreeType treeType) { + switch (treeType) { + case MIN: return true; + } + return false; +} + inline ostream & operator << (ostream &out, const Connectivity &c) { BOOST_ASSERT (c >= 0 && c < 4); diff --git a/include/AttributeProfiles.hpp b/include/AttributeProfiles.hpp index 6627b67..86dbf30 100644 --- a/include/AttributeProfiles.hpp +++ b/include/AttributeProfiles.hpp @@ -16,6 +16,9 @@ namespace otb { inline PixelT *getValues (); inline const PixelT *getValues () const; + template + inline void setValues (const PixelT defaultValue, const WeightT *weights); + template inline void setValues (const PixelT *pixels, const WeightT *weights); diff --git a/include/AttributeProfiles.tpp b/include/AttributeProfiles.tpp index cbfb391..aa0143d 100644 --- a/include/AttributeProfiles.tpp +++ b/include/AttributeProfiles.tpp @@ -36,6 +36,19 @@ AttributeProfiles::getValues () const { } // ======================================== +template +template +inline void +AttributeProfiles::setValues (const PixelT defaultValue, const WeightT *weights) { + updateTranscient (); + fill_n (&values[0], tree.getLeafCount (), defaultValue); + PixelT *compAP = &values[tree.getLeafCount ()]; + dealThreadBound (tree.getCompCount (), tree.getCoreCount (), [&compAP, &weights] (const DimImg &minVal, const DimImg &maxVal) { + for (DimImg compIdx = minVal; compIdx < maxVal; ++compIdx) + compAP[compIdx] = weights[compIdx]; + }); +} + template template inline void diff --git a/include/Attributes/WeightAttributes.hpp b/include/Attributes/WeightAttributes.hpp index 98fc57c..3c184ec 100644 --- a/include/Attributes/WeightAttributes.hpp +++ b/include/Attributes/WeightAttributes.hpp @@ -13,7 +13,7 @@ namespace otb { template class WeightAttributes : public CompAttribute { public: - inline WeightAttributes (const Tree &tree); + inline WeightAttributes (const Tree &tree, const bool &decr); inline ~WeightAttributes (); inline void setWeightBounds (Tree &tree); diff --git a/include/Attributes/WeightAttributes.tpp b/include/Attributes/WeightAttributes.tpp index 76406a4..c36a1fb 100644 --- a/include/Attributes/WeightAttributes.tpp +++ b/include/Attributes/WeightAttributes.tpp @@ -5,8 +5,8 @@ using namespace boost::chrono; template inline -WeightAttributes::WeightAttributes (const Tree &tree) - : CompAttribute (tree) { +WeightAttributes::WeightAttributes (const Tree &tree, const bool &decr) + : CompAttribute (tree, decr) { } template @@ -48,7 +48,10 @@ inline void WeightAttributes::cut (vector > &allBands, const AttributeProfiles &attributeProfiles, const vector &thresholds) const { auto start = high_resolution_clock::now (); - CompAttribute::cut (allBands, attributeProfiles, 0., thresholds); + vector orderedThresholds (thresholds); + if (CompAttribute::decr) + reverse (orderedThresholds.begin (), orderedThresholds.end ()); + CompAttribute::cut (allBands, attributeProfiles, 0., orderedThresholds); globalTreeStats.addTime (filteringStats, duration_cast > (high_resolution_clock::now ()-start).count ()); } diff --git a/include/CompAttribute.hpp b/include/CompAttribute.hpp index b98fee6..2ce312d 100644 --- a/include/CompAttribute.hpp +++ b/include/CompAttribute.hpp @@ -17,13 +17,14 @@ namespace otb { static inline vector getScaledThresholds (const vector &thresholds, const AttrT &maxValue); static inline vector getConvertedThresholds (const vector &thresholds); - inline CompAttribute (const Tree &tree); + inline CompAttribute (const Tree &tree, const bool &decr = false); inline ~CompAttribute (); inline void updateTranscient (); inline const AttrT *getValues () const; inline AttrT *getValues (); inline AttrT getMaxValue () const; + inline bool getDecr () const; template inline void cut (vector > &allBands, const AttributeProfiles &attributeProfiles, @@ -39,6 +40,7 @@ namespace otb { const Tree &tree; DimNodeId leafCount; vector values; + bool decr; inline void free (); inline void book (const DimImg &leafCount); diff --git a/include/CompAttribute.tpp b/include/CompAttribute.tpp index cf44c5c..a528597 100644 --- a/include/CompAttribute.tpp +++ b/include/CompAttribute.tpp @@ -23,10 +23,12 @@ CompAttribute::getConvertedThresholds (const vector &thresholds) // ======================================== template inline -CompAttribute::CompAttribute (const Tree &tree) +CompAttribute::CompAttribute (const Tree &tree, const bool &decr) : tree (tree), leafCount (0), - values () { + values (), + decr (decr) +{ updateTranscient (); } @@ -88,6 +90,7 @@ CompAttribute::cutOnPos (vector > &allBands, const Attribu DimImg parentId = CompAttribute::tree.getLeafParent (leafId); DimChanel thresholdsSize = thresholds.size (); if (parentId == DimImg_MAX) { + // border case for (DimChanel chanel = 0; chanel < thresholdsSize; ++chanel) allBands[chanel][leafId] = 0; return; @@ -105,9 +108,17 @@ CompAttribute::cutOnPos (vector > &allBands, const Attribu DimImg rootId = CompAttribute::tree.getCompRoot (); for (DimChanel chanel = 0; chanel < thresholdsSize; ++chanel) { AttrT ceil = thresholds[chanel]; - for ( ; curValue < ceil && curId < rootId; ) { + for ( ; curId < rootId; ) { + if (decr) { + if (curValue < ceil) + break; + } else { + if (curValue > ceil) + break; + } if (parentId == DimImg_MAX || curId >= parentId) { // cerr << "CompAttribute::cutOnPos find sub-root:" << rootId << " rootId:" << rootId << endl; + // find root for (; chanel < thresholdsSize; ++chanel) allBands[chanel][leafId] = curValue; return; diff --git a/include/IImage.hpp b/include/IImage.hpp index e7fe74b..17bf5a0 100644 --- a/include/IImage.hpp +++ b/include/IImage.hpp @@ -49,11 +49,13 @@ namespace triskele { inline const bool isRead () const; inline const bool isEmpty () const; - IImage (const std::string &imageFileName = ""); - ~IImage (); + IImage (const std::string &imageFileName = ""); + ~IImage (); void readImage (); void createImage (const Size &size, const GDALDataType &dataType, const DimChanel &nbOutputBands); + void createImage (const Size &size, const GDALDataType &dataType, const DimChanel &nbOutputBands, + const IImage &inputImage, const Point &topLeft); void close (); template diff --git a/src/Appli/Option.cpp b/src/Appli/Option.cpp index 18ee32e..073967e 100644 --- a/src/Appli/Option.cpp +++ b/src/Appli/Option.cpp @@ -99,6 +99,7 @@ Option::parse (int argc, char** argv) { long left = -1, top = -1, width = -1, height = -1; string areaThresholdsName, levelThresholdsName, sdThresholdsName, moiThresholdsName; bool c4 = false, c6p = false, c6n = false, c8 = false; + bool weightFlag = false, meanFlag = false, sdFlag = false, areaFlag = false, moiFlag; try { desc.add_options () ("help", po::bool_switch (&helpFlag), "produce this help message") @@ -129,11 +130,17 @@ Option::parse (int argc, char** argv) { ("tos-tree", po::bool_switch (&tosTreeFlag), "build tree-of-shape") ("alpha-tree", po::bool_switch (&alphaTreeFlag), "build alpha-tree") - ("average", po::bool_switch (&averageFlag), "produce average profiles") - ("level,L", po::value (&levelThresholdsName), "produce level attributs") - ("area,A", po::value (&areaThresholdsName), "produce area attributs") - ("standard-deviation,S", po::value (&sdThresholdsName), "produce standard deviation attributs") - ("moment-of-inertia,M", po::value (&moiThresholdsName), "produce moment of inertia attributs") + ("f-weight", po::bool_switch (&weightFlag), "produce attribut profiles (default)") + // ("f-level,FPL", po::bool_switch (&weightFlag), "produce feature profiles level") + ("f-mean", po::bool_switch (&meanFlag), "produce feature profiles mean") + ("f-SD", po::bool_switch (&sdFlag), "produce feature profiles SD") + ("f-area", po::bool_switch (&areaFlag), "produce feature profiles area") + ("f-MOI", po::bool_switch (&moiFlag), "produce feature profiles area") + + ("area,A", po::value (&areaThresholdsName), "cut according area attributs") + ("weight,W", po::value (&levelThresholdsName), "cut according level attributs") + ("standard-deviation,S", po::value (&sdThresholdsName), "cut according standard deviation attributs") + ("moment-of-inertia,M", po::value (&moiThresholdsName), "cut according moment of inertia attributs") ; hide.add_options () ("use-the-force-luke", po::bool_switch (&useTheForceLuke), "display hidded options") @@ -247,6 +254,20 @@ Option::parse (int argc, char** argv) { else connectivity = Connectivity::C4; + int featureCount = weightFlag + meanFlag + sdFlag + areaFlag + moiFlag; + if (featureCount > 1) + usage ("You must choose only one feature attribut profile"); + if (meanFlag) + featureType = FeatureType::MEAN; + if (sdFlag) + featureType = FeatureType::SD; + if (areaFlag) + featureType = FeatureType::AREA; + if (moiFlag) + featureType = FeatureType::MOI; + else + featureType = FeatureType::AP; + cout << "Input:" << inputFileName << " " << orgSize << " (" << bandInputCount << " chanels of " << GDALGetDataTypeName (inputType) << ")" << endl << "Crop topLeft:" << topLeft << " size:" << size << " band:" << selectedBand << endl diff --git a/src/IImage.cpp b/src/IImage.cpp index ebcee45..d744a97 100644 --- a/src/IImage.cpp +++ b/src/IImage.cpp @@ -93,6 +93,17 @@ IImage::createImage (const Size &size, const GDALDataType &dataType, const DimCh LOG("gdalCount: " << gdalCount); } +void +IImage::createImage (const Size &size, const GDALDataType &dataType, const DimChanel &nbBands, + const IImage &inputImage, const Point &topLeft) +{ + createImage (size, dataType, nbBands); + string projectionRef; + vector geoTransform; + inputImage.getGeo (projectionRef, geoTransform); + setGeo (projectionRef, geoTransform, topLeft); +} + void IImage::close () { DEF_LOG ("IImage::close", "fileName: " << fileName); diff --git a/src/apGenerator.cpp b/src/apGenerator.cpp index e0873e5..6bfdcbe 100644 --- a/src/apGenerator.cpp +++ b/src/apGenerator.cpp @@ -31,9 +31,9 @@ using namespace otb::triskele; using namespace otb::triskele::arrayTree; -template +template inline void -writeBand (Option &option, PixelT *pixels, DimChanel band) { +writeBand (Option &option, const GDALDataType &outDataType, OutPixelT *pixels, DimChanel band) { if (!option.oneBand) { option.outputImage.writeBand (pixels, band); return; @@ -44,20 +44,15 @@ writeBand (Option &option, PixelT *pixels, DimChanel band) { ostringstream fileNameStream; fileNameStream << outputBaseName << "-" << std::setfill ('0') << std::setw (3) << (band) << outputExtension; IImage outputImage (fileNameStream.str ()); - outputImage.createImage (option.size, option.inputImage.getDataType (), 1); - // XXX en double - string projectionRef; - vector geoTransform; - option.inputImage.getGeo (projectionRef, geoTransform); - outputImage.setGeo (projectionRef, geoTransform, option.topLeft); + outputImage.createImage (option.size, outDataType, 1, option.inputImage, option.topLeft); outputImage.writeBand (pixels, 0); } -template +template inline -void apGenerator (Option &option) { +void apGenerator (Option &option, const GDALDataType &outDataType, const APFunct &setAP) { vector treeTypes; if (option.minTreeFlag) @@ -76,19 +71,15 @@ void apGenerator (Option &option) { GraphWalker graphWalker (border); DimImg leafCount = graphWalker.vertexMaxCount (); DimChanel maxThresholds = max (max (max (option.areaThresholds.size (), option.levelThresholds.size ()), option.sdThresholds.size ()), option.moiThresholds.size ()); - vector > allBands (maxThresholds, vector (leafCount, 0)); + vector > allBands (maxThresholds, vector (leafCount, 0)); DimChanel outputBandsCard = option.selectedBand.getSet ().size ()*(1+treeTypesCard*(option.areaThresholds.size ()+option.levelThresholds.size ()+option.sdThresholds.size ()+option.moiThresholds.size ())); if (!option.oneBand) { - option.outputImage.createImage (option.size, option.inputImage.getDataType (), outputBandsCard); - // XXX en double - string projectionRef; - vector geoTransform; - option.inputImage.getGeo (projectionRef, geoTransform); - option.outputImage.setGeo (projectionRef, geoTransform, option.topLeft); + option.outputImage.createImage (option.size, outDataType, outputBandsCard, + option.inputImage, option.topLeft); } - Raster raster; + Raster raster; if (option.border) { DimChanel bandCount (option.inputImage.getBandCount ()); // -1); // XXX sans NDVI for (DimChanel band = 0; band < bandCount; ++band) { @@ -103,46 +94,43 @@ void apGenerator (Option &option) { DimChanel chanel = 0; for (DimChanel band : option.selectedBand.getSet ()) { option.inputImage.readBand (raster, band, option.topLeft, option.size); - writeBand (option, raster.getPixels (), chanel++); + writeBand (option, outDataType, raster.getPixels (), chanel++); for (TreeType treeType : treeTypes) { - ArrayTreeBuilder atb (raster, graphWalker, treeType, option.countingSortCeil); + ArrayTreeBuilder atb (raster, graphWalker, treeType, option.countingSortCeil); Tree tree (option.coreCount); - WeightAttributes weightAttributes (tree); + WeightAttributes weightAttributes (tree, getDecrFromTreetype (treeType)); atb.buildTree (tree, weightAttributes); - AttributeProfiles attributeProfiles (tree); + AttributeProfiles attributeProfiles (tree); AreaAttributes areaAttributes (tree); AverageAttributes averageAttributes (tree, raster, areaAttributes); - if (option.averageFlag) - attributeProfiles.setValues (raster.getPixels (), averageAttributes.getValues ()); - else - atb.setAttributProfiles (attributeProfiles); + setAP (tree, atb, attributeProfiles, raster, averageAttributes, areaAttributes); if (option.levelThresholds.size ()) { - vector thresholds (weightAttributes.getConvertedThresholds (option.levelThresholds)); + vector thresholds (weightAttributes.getConvertedThresholds (option.levelThresholds)); weightAttributes.cut (allBands, attributeProfiles, thresholds); for (DimChanel c = 0; c < option.levelThresholds.size (); ++c, ++chanel) - writeBand (option, &allBands[c][0], chanel); + writeBand (option, outDataType, &allBands[c][0], chanel); } if (option.areaThresholds.size ()) { areaAttributes.cut (allBands, attributeProfiles, option.areaThresholds); for (DimChanel c = 0; c < option.areaThresholds.size (); ++c, ++chanel) - writeBand (option, &allBands[c][0], chanel); + writeBand (option, outDataType, &allBands[c][0], chanel); } if (option.sdThresholds.size ()) { SDAttributes sdAttributes (tree, areaAttributes); sdAttributes.cut (allBands, attributeProfiles, option.sdThresholds); for (DimChanel c = 0; c < option.sdThresholds.size (); ++c, ++chanel) - writeBand (option, &allBands[c][0], chanel); + writeBand (option, outDataType, &allBands[c][0], chanel); } if (option.moiThresholds.size ()) { XYAttributes xyAttributes (tree, areaAttributes); MoIAttributes moiAttributes (tree, areaAttributes, xyAttributes); moiAttributes.cut (allBands, attributeProfiles, option.moiThresholds); for (DimChanel c = 0; c < option.moiThresholds.size (); ++c, ++chanel) - writeBand (option, &allBands[c][0], chanel); + writeBand (option, outDataType, &allBands[c][0], chanel); } } } @@ -152,6 +140,45 @@ void apGenerator (Option &option) { << globalTreeStats.printTime (); } +template +inline +void outTypeSelection (Option &option) { + switch (option.featureType) { + case MEAN: + apGenerator (option, option.inputImage.getDataType (), + [] (Tree &tree, ArrayTreeBuilder &atb, AttributeProfiles &attributeProfiles, Raster &raster, AverageAttributes &averageAttributes, AreaAttributes &areaAttributes) { + attributeProfiles.setValues (raster.getPixels (), averageAttributes.getValues ()); + }); + break; + case AREA: + apGenerator (option, GDT_UInt32, + [] (Tree &tree, ArrayTreeBuilder &atb, AttributeProfiles &attributeProfiles, Raster &raster, AverageAttributes &averageAttributes, AreaAttributes &areaAttributes) { + attributeProfiles.setValues (1, areaAttributes.getValues ()); + }); + break; + case SD: + apGenerator (option, GDT_Float64, + [] (Tree &tree, ArrayTreeBuilder &atb, AttributeProfiles &attributeProfiles, Raster &raster, AverageAttributes &averageAttributes, AreaAttributes &areaAttributes) { + SDAttributes sdAttributes (tree, areaAttributes); + attributeProfiles.setValues (0., sdAttributes.getValues ()); + }); + break; + case MOI: + apGenerator (option, GDT_Float64, + [] (Tree &tree, ArrayTreeBuilder &atb, AttributeProfiles &attributeProfiles, Raster &raster, AverageAttributes &averageAttributes, AreaAttributes &areaAttributes) { + XYAttributes xyAttributes (tree, areaAttributes); + MoIAttributes moiAttributes (tree, areaAttributes, xyAttributes); + attributeProfiles.setValues (0., moiAttributes.getValues ()); + }); + break; + default: + apGenerator (option, option.inputImage.getDataType (), + [] (Tree &tree, ArrayTreeBuilder &atb, AttributeProfiles &attributeProfiles, Raster &raster, AverageAttributes &averageAttributes, AreaAttributes &areaAttributes) { + atb.setAttributProfiles (attributeProfiles); + }); + } +} + int main (int argc, char** argv, char** envp) { Option option (argc, argv); @@ -159,20 +186,19 @@ main (int argc, char** argv, char** envp) { switch (option.inputImage.getDataType ()) { case GDT_Byte: - apGenerator (option); break; - - case GDT_UInt16: - apGenerator (option); break; - case GDT_Int16: - apGenerator (option); break; - case GDT_UInt32: - apGenerator (option); break; - case GDT_Int32: - apGenerator (option); break; - case GDT_Float32: - apGenerator (option); break; - case GDT_Float64: - apGenerator (option); break; + outTypeSelection (option); break; + case GDT_UInt16: + outTypeSelection (option); break; + case GDT_Int16: + outTypeSelection (option); break; + case GDT_UInt32: + outTypeSelection (option); break; + case GDT_Int32: + outTypeSelection (option); break; + case GDT_Float32: + outTypeSelection (option); break; + case GDT_Float64: + outTypeSelection (option); break; default : cerr << "unknown type!" << endl; break; From 6acb2742557931a033f230a25c5823574b042a8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fran=C3=A7ois=20Merciol?= Date: Mon, 6 Aug 2018 10:57:48 +0200 Subject: [PATCH 28/31] Version 1.1 --- src/Appli/Option.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Appli/Option.cpp b/src/Appli/Option.cpp index 073967e..c9ab7bc 100644 --- a/src/Appli/Option.cpp +++ b/src/Appli/Option.cpp @@ -1,5 +1,4 @@ -#define LAST_VERSION "2018-03-29 (Debian Stretch)" - +#define LAST_VERSION "1.1 2018-08-06 (Debian Stretch)" #include #include From 5e9be93fa9e5749eed76260c2ed8b90984e49da0 Mon Sep 17 00:00:00 2001 From: Karamaz0V1 Date: Thu, 23 Aug 2018 15:14:46 +0200 Subject: [PATCH 29/31] Add triskele LFAPs in python wrapper --- python/triskele/Triskele.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/python/triskele/Triskele.py b/python/triskele/Triskele.py index 5c81555..8647f3b 100644 --- a/python/triskele/Triskele.py +++ b/python/triskele/Triskele.py @@ -37,8 +37,8 @@ class Triskele: self._write_infile(raster, dtype) - def filter(self, tree='max-tree', area=None, standard_deviation=None, moment_of_inertia=None): - self._setup(tree, area, standard_deviation, moment_of_inertia) + def filter(self, tree='max-tree', area=None, standard_deviation=None, moment_of_inertia=None, feature='weight'): + self._setup(tree, area, standard_deviation, moment_of_inertia, feature) self._run() return self._read_outfile() @@ -63,11 +63,12 @@ class Triskele: rasters = rasters.astype(dtype) write(self.infile, rasters) - def _setup(self, tree, area, standard_deviation, moment_of_inertia): + def _setup(self, tree, area, standard_deviation, moment_of_inertia, feature): self.process = [self.triskele_bin, '-i', '{}'.format(self.infile), '-o', '{}'.format(self.outfile), - '--{}'.format(tree)] + '--{}'.format(tree), + '--f-{}'.format(feature)] if area is not None: np.savetxt(self.areafile, area, fmt='%d') From 39dcc1e61550067b8612cfb0f93b5cad4ff08d6e Mon Sep 17 00:00:00 2001 From: Karamaz0V1 Date: Tue, 11 Sep 2018 11:03:20 +0200 Subject: [PATCH 30/31] Create setup.py --- .gitignore | 1 + python/setup.py | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 python/setup.py diff --git a/.gitignore b/.gitignore index 97aee11..a303274 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ __pycache__ data/result.tif tmp result +*.egg-info/ diff --git a/python/setup.py b/python/setup.py new file mode 100644 index 0000000..6e5c739 --- /dev/null +++ b/python/setup.py @@ -0,0 +1,20 @@ +#!/usr/bin/python +# -*- coding: utf-8 -*- +# \file setup.py +# \brief TODO +# \author Florent Guiotte +# \version 0.1 +# \date 11 sept. 2018 +# +# TODO details + +from distutils.core import setup + +setup(name='triskele', + version='1.0', + description='Python wrapper for Triskele', + author='Florent Guiotte', + author_email='florent.guiotte@uhb.fr', + url='https://git.guiotte.fr/Florent/Triskele', + packages=['triskele'], + ) From 4d307df97642d66268f013891598cdbeb1ae97cf Mon Sep 17 00:00:00 2001 From: Karamaz0V1 Date: Wed, 12 Sep 2018 20:28:08 +0200 Subject: [PATCH 31/31] Change cast from float 64 --- python/triskele/Triskele.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/python/triskele/Triskele.py b/python/triskele/Triskele.py index 8647f3b..c3560cd 100644 --- a/python/triskele/Triskele.py +++ b/python/triskele/Triskele.py @@ -46,14 +46,14 @@ class Triskele: return read(self.outfile) def _write_infile(self, rasters, dtype): - ## Scale to new dtype - rep = np.iinfo(dtype) - ## Expand if rasters is 2D if len(rasters.shape) < 3: rasters = np.expand_dims(rasters, 2) - rasters = rasters.astype(np.float32) + ## Scale to new dtype + rep = np.iinfo(dtype) + + rasters = rasters.astype(np.float64) ## Channel independant scale for i in range(rasters.shape[2]):

YFP0y*GI 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%0DQYp+I?|uYiKScRtCMDRS6X-A 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 @D!r*5 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�B*M12ogXwlOX>`Fe6TluN952b)xNfxP? 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