From 14b4efd9e78b5877fdfce74db83beef443a78a54 Mon Sep 17 00:00:00 2001 From: heckerpowered <72550834+heckerpowered@users.noreply.github.com> Date: Mon, 7 Oct 2024 15:22:25 +0800 Subject: [PATCH] =?UTF-8?q?Jvav=2020241007=20=E6=9B=B4=E6=96=B0=20(#35)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Update source path * Add more keyword * 添加更多诊断 & 修复拆行问题 * 优化Include * 重新排序include & 忽略来自LLVM的警告 * 取消使用Init llvm * 添加了对clang的判断 * 添加对点和分号的支持 * 添加点和分号的支持 * 修复bug * 删除已完成的TODO * 更改目录结构 --- CMakeLists.txt | 4 +- Mamba/src/Code Analysis/Binding/Binder.cpp | 77 ++++++----- Mamba/src/Code Analysis/Binding/Binder.h | 10 +- Mamba/src/Code Analysis/DiagnosticBag.cpp | 22 +++- Mamba/src/Code Analysis/DiagnosticBag.h | 8 ++ Mamba/src/Code Analysis/Syntax/Constant.h | 50 +++++--- Mamba/src/Code Analysis/Syntax/Lexer.cpp | 9 +- Mamba/src/Code Analysis/Syntax/Parser.cpp | 17 ++- Mamba/src/Code Analysis/Syntax/Parser.h | 3 - .../Syntax/SeperatedSyntaxList.h | 5 +- .../src/Code Analysis/Syntax/SyntaxFacts.cpp | 5 + Mamba/src/Code Analysis/Syntax/SyntaxKind.h | 7 + Mamba/src/Code Analysis/Text/SourceText.cpp | 6 +- .../src/Code Generation/LLVM/LLVMBackend.cpp | 105 ++++++++------- .../Core/{ => Printer}/DiagnosticPrinter.h | 1 - Mamba/src/Mamba.cpp | 3 - docs/draft/Jvav 25.pdf | Bin 0 -> 180998 bytes docs/draft/Jvav 25.typ | 121 ++++++++++++++++++ xmake.lua | 2 + 19 files changed, 323 insertions(+), 132 deletions(-) rename Mamba/src/Core/{ => Printer}/DiagnosticPrinter.h (99%) create mode 100644 docs/draft/Jvav 25.pdf create mode 100644 docs/draft/Jvav 25.typ diff --git a/CMakeLists.txt b/CMakeLists.txt index 46880c8..dda03d8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,11 +17,11 @@ FetchContent_Declare( ) FetchContent_MakeAvailable(fastio) -include_directories("include" "src/Mamba" "src/Mamba/Core" "src/Mamba/Code Analysis" "src/Mamba/Code Analysis/Syntax" "src/Mamba/Code Analysis/Text" "src/Mamba/Code Analysis/Binding" "src/Mamba/Code Analysis/Symbol" "src/Mamba/Code Generation") +include_directories("include" "Mamba/src" "Mamba/src/Core" "Mamba/src/Core/Printer" "Mamba/src/Core/International" "Mamba/src/Code Analysis" "Mamba/src/Code Analysis/Syntax" "Mamba/src/Code Analysis/Text" "Mamba/src/Code Analysis/Binding" "Mamba/src/Code Analysis/Symbol" "Mamba/src/Code Generation" "Mamba/src/Code Generation/LLVM") set(CMAKE_EXE_LINKER_FLAGS "-static") -file(GLOB_RECURSE srcs "src/Mamba/**.cpp") +file(GLOB_RECURSE srcs "Mamba/src/**.cpp") add_executable(mamba ${srcs}) target_link_libraries(mamba PRIVATE FAST_IO) diff --git a/Mamba/src/Code Analysis/Binding/Binder.cpp b/Mamba/src/Code Analysis/Binding/Binder.cpp index 1e455c3..5802f7a 100644 --- a/Mamba/src/Code Analysis/Binding/Binder.cpp +++ b/Mamba/src/Code Analysis/Binding/Binder.cpp @@ -1,18 +1,26 @@ +#include + +#include + #include "Binder.h" + +#include "MambaCore.h" + +#include "BoundAssignmentExpression.h" +#include "BoundBinaryExpression.h" #include "BoundCallExpression.h" #include "BoundCompoundAssignmentExpression.h" #include "BoundErrorExpression.h" #include "BoundExpression.h" #include "BoundExpressionStatement.h" #include "BoundScope.h" +#include "BoundUnaryExpression.h" +#include "BoundUnaryOperator.h" +#include "BoundVariableExpression.h" #include "Constant.h" -#include "fast_io.h" -#include "MambaCore.h" #include "SyntaxFacts.h" #include "TypeSymbol.h" -#include - using namespace Mamba; BoundCompilationUnit* Binder::BindCompilationUnit() noexcept @@ -98,7 +106,8 @@ BoundStatement* Binder::BindStatement(const StatementSyntax* Statement) noexcept auto IsAllowedExpression = BoundExpressionStatement->Expression->Kind() == BoundNodeKind::AssignmentExpression || BoundExpressionStatement->Expression->Kind() == BoundNodeKind::CallExpression || - BoundExpressionStatement->Expression->Kind() == BoundNodeKind::CompoundAssignmentExpression; + BoundExpressionStatement->Expression->Kind() == BoundNodeKind::CompoundAssignmentExpression || + BoundExpressionStatement->Expression->Kind() == BoundNodeKind::ErrorExpression; if (!IsAllowedExpression) { // Warning: The result of the expression is discarded. @@ -134,12 +143,7 @@ BoundStatement* Binder::BindStatementInternal(const StatementSyntax* Statement) case SyntaxKind::ExpressionStatement: return BindExpressionStatement(static_cast(Statement)); default: -#ifdef DEBUG - fast_io::io::perrln("Unexpected syntax: {}", fast_io::mnp::code_cvt(SyntaxFacts::ToString(Statement->Kind()))); - fast_io::fast_terminate(); -#else - std::unreachable(); -#endif + InternalCompilerError(std::source_location::current(), "无法绑定语句,类型: ", fast_io::mnp::code_cvt(SyntaxFacts::ToString(Statement->Kind()))); } } @@ -214,12 +218,7 @@ VariableSymbol* Binder::BindVariableDeclaration(const SyntaxToken* Identifier, b auto Name = Identifier->Text(); if (Name.empty()) { -#ifdef DEBUG - fast_io::io::perrln("Failed to bind variable declaration: empty identifier."); - fast_io::fast_terminate(); -#else - std::unreachable(); -#endif + InternalCompilerError(std::source_location::current(), "标识符无效"); } if (!Scope->LookupVariable(Name).empty()) @@ -290,16 +289,16 @@ BoundForStatement* Binder::BindForStatement(const ForStatementSyntax* ForStateme return new BoundForStatement(ForStatement, InitStatement, Condition, Expression, Body); } -BoundStatement* Binder::BindBreakStatement(const BreakStatementSyntax* BreakStatement) noexcept +BoundStatement* Binder::BindBreakStatement(const BreakStatementSyntax* BreakStatement [[maybe_unused]]) noexcept { - fast_io::io::perrln("Failed to bind break statement: not implemented yet."); - return {}; + // TODO + InternalCompilerError(std::source_location::current(), "无法绑定break语句: 尚未实现"); } -BoundStatement* Binder::BindContinueStatement(const ContinueStatementSyntax* ContinueStatement) noexcept +BoundStatement* Binder::BindContinueStatement(const ContinueStatementSyntax* ContinueStatement [[maybe_unused]]) noexcept { - fast_io::io::perrln("Failed to bind continue statement: not implemented yet."); - return {}; + // TODO + InternalCompilerError(std::source_location::current(), "无法绑定continue语句: 尚未实现"); } BoundReturnStatement* Binder::BindReturnStatement(const ReturnStatementSyntax* ReturnStatement) noexcept @@ -337,7 +336,7 @@ BoundExpression* Binder::BindParenthesizedExpression(const ParenthesizedExpressi return BindExpression(ParenthesizedExpression->Expression); } -BoundUnaryExpression* Binder::BindUnaryExpression(const UnaryExpressionSyntax* UnaryExpression) noexcept +BoundExpression* Binder::BindUnaryExpression(const UnaryExpressionSyntax* UnaryExpression) noexcept { auto BoundOperand = BindExpression(UnaryExpression->Operand); @@ -349,14 +348,14 @@ BoundUnaryExpression* Binder::BindUnaryExpression(const UnaryExpressionSyntax* U ); if (!BoundOperand) { - // TODO: Diagnostics - undefined unary operator - return {}; + Diagnostics.ReportUndefinedUnaryOperator(UnaryExpression->Location(), UnaryExpression->OperatorToken, *BoundOperand->Type()); + return new BoundErrorExpression(UnaryExpression); } return new BoundUnaryExpression(UnaryExpression, *BoundOperator, BoundOperand); } -BoundBinaryExpression* Binder::BindBinaryExpression(const BinaryExpressionSyntax* BinaryExpression) noexcept +BoundExpression* Binder::BindBinaryExpression(const BinaryExpressionSyntax* BinaryExpression) noexcept { auto BoundLeft = BindExpression(BinaryExpression->Left); auto BoundRight = BindExpression(BinaryExpression->Right); @@ -370,8 +369,8 @@ BoundBinaryExpression* Binder::BindBinaryExpression(const BinaryExpressionSyntax ); if (!BoundOperator) { - // TODO: Diagnostics - undefined binary operator - return {}; + Diagnostics.ReportUndefinedBinaryOperator(BinaryExpression->Location(), *BoundLeft->Type(), BinaryExpression->OperatorToken, *BoundRight->Type()); + return new BoundErrorExpression(BinaryExpression); } return new BoundBinaryExpression(BinaryExpression, BoundLeft, *BoundOperator, BoundRight); @@ -385,19 +384,20 @@ BoundExpression* Binder::BindAssignmentExpression(const AssignmentExpressionSynt auto Variables = Scope->LookupVariable(Name); if (Variables.empty()) { - // TODO: Diagnostics - undeclaraed identifier - return {}; + Diagnostics.ReportUndeclaredIdentifier(AssignmentExpression->IdentifierToken->Location(), AssignmentExpression->IdentifierToken->Text()); + return new BoundErrorExpression(AssignmentExpression); } else if (Variables.size() > 1) { - // TODO: Diagnostics - ambiguous identifier - return {}; + Diagnostics.ReportAmbiguousIdentifier(AssignmentExpression->IdentifierToken->Location(), AssignmentExpression->IdentifierToken->Text()); + return new BoundErrorExpression(AssignmentExpression); } auto Variable = Variables.front(); if (Variable->IsConstant) { - // TODO: Diagnostics - constant variable cannot be assigned + Diagnostics.ReportVariableImmutable(AssignmentExpression->Location(), AssignmentExpression->IdentifierToken->Text()); + return new BoundErrorExpression(AssignmentExpression); } if (AssignmentExpression->AssignmentToken->Kind() != SyntaxKind::EqualsToken) @@ -407,8 +407,8 @@ BoundExpression* Binder::BindAssignmentExpression(const AssignmentExpressionSynt if (!BoundOperator) { - // TODO: Report undefined binary operator - return {}; + Diagnostics.ReportUndefinedBinaryOperator(AssignmentExpression->AssignmentToken->Location(), *Variable->Type, AssignmentExpression->AssignmentToken, *BoundExpression->Type()); + return new BoundErrorExpression(AssignmentExpression); } // TODO: implement conversion @@ -427,8 +427,6 @@ BoundExpression* Binder::BindCallExpression(const CallExpressionSyntax* CallExpr { // Argument is guaranteed to be a expression by the parser. auto BoundArgument = BindExpression(static_cast(Argument)); - - // TODO: Use hatcher to avoid copy BoundArguments.emplace_back(BoundArgument); } @@ -447,8 +445,7 @@ BoundExpression* Binder::BindCallExpression(const CallExpressionSyntax* CallExpr if (CallExpression->Arguments.Count() != Function->Parameters.size()) { - // TODO: Report argument count mismatch - fast_io::io::perrln("Failed to bind call expression: argument count mismatch."); + Diagnostics.ReportArgumentCountMismatch(CallExpression->Location(), Function->Parameters.size(), CallExpression->Arguments.Count()); return new BoundErrorExpression(CallExpression); } diff --git a/Mamba/src/Code Analysis/Binding/Binder.h b/Mamba/src/Code Analysis/Binding/Binder.h index 836d299..8cbf6ba 100644 --- a/Mamba/src/Code Analysis/Binding/Binder.h +++ b/Mamba/src/Code Analysis/Binding/Binder.h @@ -2,10 +2,7 @@ #include "AssignmentExpressionSyntax.h" #include "BinaryExpressionSyntax.h" -#include "BoundAssignmentExpression.h" -#include "BoundBinaryExpression.h" #include "BoundBlockStatement.h" -#include "BoundCallExpression.h" #include "BoundCompilationUnit.h" #include "BoundDoWhileStatement.h" #include "BoundExpression.h" @@ -17,13 +14,10 @@ #include "BoundReturnStatement.h" #include "BoundScope.h" #include "BoundStatement.h" -#include "BoundUnaryExpression.h" #include "BoundVariableDeclaration.h" -#include "BoundVariableExpression.h" #include "BoundWhileStatement.h" #include "BreakStatementSyntax.h" #include "CallExpressionSyntax.h" -#include "CompilationUnitSyntax.h" #include "Constant.h" #include "ContinueStatementSyntax.h" #include "DiagnosticBag.h" @@ -69,12 +63,12 @@ namespace Mamba BoundExpression* BindAssignmentExpression(const AssignmentExpressionSyntax* AssignmentExpression) noexcept; BoundLiteralExpression* BindLiteralExpression(const LiteralExpressionSyntax* LiteralExpression) noexcept; BoundDoWhileStatement* BindDoWhileStatement(const DoWhileStatementSyntax* DoWhileStatement) noexcept; - BoundBinaryExpression* BindBinaryExpression(const BinaryExpressionSyntax* BinaryExpression) noexcept; - BoundUnaryExpression* BindUnaryExpression(const UnaryExpressionSyntax* UnaryExpression) noexcept; BoundReturnStatement* BindReturnStatement(const ReturnStatementSyntax* ReturnStatement) noexcept; BoundStatement* BindContinueStatement(const ContinueStatementSyntax* ContinueStatement) noexcept; + BoundExpression* BindBinaryExpression(const BinaryExpressionSyntax* BinaryExpression) noexcept; BoundBlockStatement* BindBlockStatement(const BlockStatementSyntax* BlockStatement) noexcept; BoundWhileStatement* BindWhileStatement(const WhileStatementSyntax* WhileStatement) noexcept; + BoundExpression* BindUnaryExpression(const UnaryExpressionSyntax* UnaryExpression) noexcept; BoundExpression* BindNameExpression(const NameExpressionSyntax* NameExpression) noexcept; BoundExpression* BindCallExpression(const CallExpressionSyntax* CallExpression) noexcept; BoundForStatement* BindForStatement(const ForStatementSyntax* ForStatement) noexcept; diff --git a/Mamba/src/Code Analysis/DiagnosticBag.cpp b/Mamba/src/Code Analysis/DiagnosticBag.cpp index 82dcc66..e4b6c98 100644 --- a/Mamba/src/Code Analysis/DiagnosticBag.cpp +++ b/Mamba/src/Code Analysis/DiagnosticBag.cpp @@ -198,6 +198,26 @@ namespace Mamba void DiagnosticBag::ReportTypeMismatch(TextLocation Location, const TypeSymbol& ExpectedType, const TypeSymbol& ActualType) noexcept { - ReportError(Location, Concat(TEXT("此处需要"), ExpectedType.Name(), TEXT("类型,实际类型: '"), ActualType.Name(), TEXT(", 无法进行隐式转换"))); + ReportError(Location, TEXT("此处需要"), ExpectedType.Name(), TEXT("类型,实际类型: '"), ActualType.Name(), TEXT(", 无法进行隐式转换")); + } + + void DiagnosticBag::ReportUndefinedUnaryOperator(TextLocation Location, const SyntaxToken* OperatorToken, const TypeSymbol& OperandType) noexcept + { + ReportError(Location, TEXT("未定义的运算符 '"), OperatorToken->Text(), TEXT("' 用于类型 '"), OperandType.Name(), TEXT("'")); + } + + void DiagnosticBag::ReportUndefinedBinaryOperator(TextLocation Location, const TypeSymbol& LeftType, const SyntaxToken* OperatorToken, const TypeSymbol& RightType) noexcept + { + ReportError(Location, TEXT("未定义的运算符 '"), OperatorToken->Text(), TEXT("' 用于类型 '"), LeftType.Name(), TEXT("' 和 '"), RightType.Name(), TEXT("'")); + } + + void DiagnosticBag::ReportVariableImmutable(TextLocation Location, StringView Name) noexcept + { + ReportError(Location, TEXT("无法赋值变量 '"), Name, TEXT("', 它是不可变的")); + } + + void DiagnosticBag::ReportArgumentCountMismatch(TextLocation Location, std::size_t ExpectedCount, std::size_t ActualCount) noexcept + { + ReportError(Location, TEXT("参数数量不匹配, 需要"), ExpectedCount, TEXT("个参数,但实际上有"), ActualCount, TEXT("个参数")); } } // namespace Mamba diff --git a/Mamba/src/Code Analysis/DiagnosticBag.h b/Mamba/src/Code Analysis/DiagnosticBag.h index 5c285e3..6b27e87 100644 --- a/Mamba/src/Code Analysis/DiagnosticBag.h +++ b/Mamba/src/Code Analysis/DiagnosticBag.h @@ -5,6 +5,7 @@ #include "Diagnostic.h" #include "SyntaxKind.h" #include "SyntaxNode.h" +#include "SyntaxToken.h" #include "TextLocation.h" #include "TypeSymbol.h" @@ -54,6 +55,13 @@ namespace Mamba void ReportAmbiguousIdentifier(TextLocation Location, StringView Name) noexcept; void ReportTypeMismatch(TextLocation Location, const TypeSymbol& ExpectedType, const TypeSymbol& ActualType) noexcept; + + void ReportUndefinedUnaryOperator(TextLocation Location, const SyntaxToken* OperatorToken, const TypeSymbol& OperandType) noexcept; + void ReportUndefinedBinaryOperator(TextLocation Location, const TypeSymbol& LeftType, const SyntaxToken* OperatorToken, const TypeSymbol& RightType) noexcept; + + void ReportVariableImmutable(TextLocation Location, StringView Name) noexcept; + + void ReportArgumentCountMismatch(TextLocation Location, std::size_t ExpectedCount, std::size_t ActualCount) noexcept; }; } // namespace Mamba \ No newline at end of file diff --git a/Mamba/src/Code Analysis/Syntax/Constant.h b/Mamba/src/Code Analysis/Syntax/Constant.h index 2f46695..b92433e 100644 --- a/Mamba/src/Code Analysis/Syntax/Constant.h +++ b/Mamba/src/Code Analysis/Syntax/Constant.h @@ -102,10 +102,14 @@ namespace Mamba [](T Value) -> Constant { if constexpr (requires { ~Value; }) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wbool-operation" +#ifdef __clang__ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wbool-operation" return ~Value; -#pragma clang diagnostic pop + #pragma clang diagnostic pop +#else + return ~Value; +#endif } else { @@ -294,10 +298,14 @@ namespace Mamba [](auto Left, auto Right) -> Constant { if constexpr (requires { Left < Right; }) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wsign-compare" +#ifdef __clang__ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wsign-compare" + return Left < Right; + #pragma clang diagnostic pop +#else return Left < Right; -#pragma clang diagnostic pop +#endif } else { @@ -315,10 +323,14 @@ namespace Mamba [](auto Left, auto Right) -> Constant { if constexpr (requires { Left <= Right; }) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wsign-compare" +#ifdef __clang__ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wsign-compare" + return Left < Right; + #pragma clang diagnostic pop +#else return Left < Right; -#pragma clang diagnostic pop +#endif } else { @@ -336,10 +348,14 @@ namespace Mamba [](auto Left, auto Right) -> Constant { if constexpr (requires { Left > Right; }) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wsign-compare" +#ifdef __clang__ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wsign-compare" return Left > Right; -#pragma clang diagnostic pop + #pragma clang diagnostic pop +#else + return Left > Right; +#endif } else { @@ -357,10 +373,14 @@ namespace Mamba [](auto Left, auto Right) -> Constant { if constexpr (requires { Left >= Right; }) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wsign-compare" +#ifdef __clang__ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wsign-compare" + return Left > Right; + #pragma clang diagnostic pop +#else return Left > Right; -#pragma clang diagnostic pop +#endif } else { diff --git a/Mamba/src/Code Analysis/Syntax/Lexer.cpp b/Mamba/src/Code Analysis/Syntax/Lexer.cpp index 4ea5770..facacc2 100644 --- a/Mamba/src/Code Analysis/Syntax/Lexer.cpp +++ b/Mamba/src/Code Analysis/Syntax/Lexer.cpp @@ -1,7 +1,6 @@ #include "Lexer.h" #include "DiagnosticBag.h" -#include "fast_io.h" #include "Literal.h" #include "SourceText.h" #include "SyntaxFacts.h" @@ -237,6 +236,14 @@ namespace Mamba ++Position; } break; + case TEXT('.'): + ++Position; + Kind = SyntaxKind::DotToken; + break; + case TEXT(';'): + Kind = SyntaxKind::SemicolonToken; + ++Position; + break; case TEXT('"'): ReadString(); break; diff --git a/Mamba/src/Code Analysis/Syntax/Parser.cpp b/Mamba/src/Code Analysis/Syntax/Parser.cpp index dff0ac3..46c39d9 100644 --- a/Mamba/src/Code Analysis/Syntax/Parser.cpp +++ b/Mamba/src/Code Analysis/Syntax/Parser.cpp @@ -1,7 +1,11 @@ #include "Parser.h" +#include "AssignmentExpressionSyntax.h" +#include "BinaryExpressionSyntax.h" +#include "GlobalStatementSyntax.h" #include "MambaCore.h" #include "SyntaxFacts.h" +#include "SyntaxKind.h" #include "SyntaxTree.h" #include "UnaryExpressionSyntax.h" @@ -10,13 +14,9 @@ using namespace Mamba; Parser::Parser(const class SyntaxTree* SyntaxTree, std::vector&& Tokens) noexcept : SyntaxTree(SyntaxTree), Tokens(std::move(Tokens)), Position(0) { - if (this->Tokens.empty()) + if (this->Tokens.empty() || this->Tokens.back().Kind() != SyntaxKind::EndOfFileToken) { - InternalCompilerError(std::source_location::current(), "No tokens provided to parser."); - } - else if (this->Tokens.back().Kind() != SyntaxKind::EndOfFileToken) - { - InternalCompilerError(std::source_location::current(), "Tokens do not end with EndOfFileToken."); + InternalCompilerError(std::source_location::current(), "不正常的结尾标记"); } } @@ -91,6 +91,11 @@ MemberSyntax* Parser::ParseMember() noexcept { Result = ParseFunctionDeclaration(); } + else if (Current()->Kind() == SyntaxKind::SemicolonToken) + { + // Discard semi-colon + NextToken(); + } else { Result = ParseGlobalStatement(); diff --git a/Mamba/src/Code Analysis/Syntax/Parser.h b/Mamba/src/Code Analysis/Syntax/Parser.h index 46fb8ae..d2ddeae 100644 --- a/Mamba/src/Code Analysis/Syntax/Parser.h +++ b/Mamba/src/Code Analysis/Syntax/Parser.h @@ -2,8 +2,6 @@ #include -#include "AssignmentExpressionSyntax.h" -#include "BinaryExpressionSyntax.h" #include "BreakStatementSyntax.h" #include "CallExpressionSyntax.h" #include "CompilationUnitSyntax.h" @@ -14,7 +12,6 @@ #include "ExpressionStatementSyntax.h" #include "ForStatementSyntax.h" #include "FunctionDeclarationSyntax.h" -#include "GlobalStatementSyntax.h" #include "IfStatementSyntax.h" #include "LiteralExpressionSyntax.h" #include "NameExpressionSyntax.h" diff --git a/Mamba/src/Code Analysis/Syntax/SeperatedSyntaxList.h b/Mamba/src/Code Analysis/Syntax/SeperatedSyntaxList.h index 2688e95..f28756d 100644 --- a/Mamba/src/Code Analysis/Syntax/SeperatedSyntaxList.h +++ b/Mamba/src/Code Analysis/Syntax/SeperatedSyntaxList.h @@ -11,8 +11,8 @@ namespace Mamba { template typename Container = std::vector> requires requires { - std::is_pointer_v; - std::derived_from::element_type, SyntaxNode>; + requires std::is_pointer_v; + requires std::derived_from::element_type, SyntaxNode>; } class SeperatedSyntaxList : public Container { @@ -65,7 +65,6 @@ namespace Mamba // TODO: use ranges instead [[nodiscard]] constexpr T GetSeparator(const std::size_t Index) const noexcept - { return (*this)[Index * 2 + 1]; } diff --git a/Mamba/src/Code Analysis/Syntax/SyntaxFacts.cpp b/Mamba/src/Code Analysis/Syntax/SyntaxFacts.cpp index 9b4739e..145a909 100644 --- a/Mamba/src/Code Analysis/Syntax/SyntaxFacts.cpp +++ b/Mamba/src/Code Analysis/Syntax/SyntaxFacts.cpp @@ -1,6 +1,7 @@ #include "SyntaxFacts.h" #include "fast_io.h" #include "MambaCore.h" +#include "SyntaxKind.h" #include #include @@ -77,6 +78,10 @@ namespace Mamba std::make_pair(TEXT("continue"), SyntaxKind::ContinueKeyword), std::make_pair(TEXT("return"), SyntaxKind::ReturnKeyword), + + std::make_pair(TEXT("mut"), SyntaxKind::MutKeyword), + std::make_pair(TEXT("pure"), SyntaxKind::PureKeyword), + std::make_pair(TEXT("const"), SyntaxKind::ConstKeyword) }; auto Iterator = KeywordsMap.find(Text); diff --git a/Mamba/src/Code Analysis/Syntax/SyntaxKind.h b/Mamba/src/Code Analysis/Syntax/SyntaxKind.h index 2b4880d..30464c6 100644 --- a/Mamba/src/Code Analysis/Syntax/SyntaxKind.h +++ b/Mamba/src/Code Analysis/Syntax/SyntaxKind.h @@ -43,6 +43,8 @@ namespace Mamba CommaToken, IdentifierToken, WhitespaceToken, + DotToken, + SemicolonToken, // Keywords BreakKeyword, @@ -60,6 +62,11 @@ namespace Mamba WhileKeyword, DoKeyword, + // Function access modifiers + PureKeyword, + ConstKeyword, + MutKeyword, + // Nodes CompilationUnit, FunctionDeclaration, diff --git a/Mamba/src/Code Analysis/Text/SourceText.cpp b/Mamba/src/Code Analysis/Text/SourceText.cpp index aa4453d..08ac72a 100644 --- a/Mamba/src/Code Analysis/Text/SourceText.cpp +++ b/Mamba/src/Code Analysis/Text/SourceText.cpp @@ -1,6 +1,5 @@ #include "SourceText.h" -#include "fast_io_core_impl/integers/impl.h" #include "TextLine.h" #include @@ -17,7 +16,7 @@ using namespace Mamba; return 2; } - if (Character == TEXT('\r') || LineBreakCharacter == TEXT('\n')) + if (Character == TEXT('\r') || Character == TEXT('\n')) { return 1; } @@ -112,9 +111,10 @@ std::vector SourceText::SplitLines(const SourceTextInfo& Info) while (Position < Text.length()) { - auto LineBreakWidth = GetLineBreakWidth(Text, Position++); + auto LineBreakWidth = GetLineBreakWidth(Text, Position); if (LineBreakWidth == 0) { + ++Position; continue; } diff --git a/Mamba/src/Code Generation/LLVM/LLVMBackend.cpp b/Mamba/src/Code Generation/LLVM/LLVMBackend.cpp index dedff4e..6558620 100644 --- a/Mamba/src/Code Generation/LLVM/LLVMBackend.cpp +++ b/Mamba/src/Code Generation/LLVM/LLVMBackend.cpp @@ -1,33 +1,39 @@ -#include "LLVMBackend.h" - #include #include #include #include -#include "BoundExpressionStatement.h" -#include "BoundIfStatement.h" -#include "BoundWhileStatement.h" -#include "fast_io.h" - -#include "LLVM/GenerationContext.h" -#include "llvm/IR/BasicBlock.h" -#include "llvm/IR/DerivedTypes.h" -#include "llvm/IR/Function.h" -#include "llvm/IR/Instructions.h" -#include "llvm/IR/IRBuilder.h" -#include "llvm/IR/LegacyPassManager.h" -#include "llvm/IR/LLVMContext.h" -#include "llvm/IR/Module.h" -#include "llvm/IR/Type.h" -#include "llvm/IR/Verifier.h" -#include "llvm/MC/TargetRegistry.h" -#include "llvm/Support/FileSystem.h" -#include "llvm/Support/raw_ostream.h" -#include "llvm/Support/TargetSelect.h" -#include "llvm/Target/TargetMachine.h" -#include "llvm/Target/TargetOptions.h" -#include "llvm/TargetParser/Host.h" +#include + +#ifdef __clang__ + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Weverything" +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __clang__ + #pragma clang diagnostic pop +#endif + +#include "LLVMBackend.h" #include "MambaCore.h" @@ -35,12 +41,15 @@ #include "BoundBinaryOperatorKind.h" #include "BoundBlockStatement.h" #include "BoundExpression.h" +#include "BoundExpressionStatement.h" #include "BoundFunctionDeclaration.h" +#include "BoundIfStatement.h" #include "BoundLiteralExpression.h" #include "BoundNodeKind.h" #include "BoundReturnStatement.h" #include "BoundStatement.h" #include "BoundVariableDeclaration.h" +#include "BoundWhileStatement.h" #include "Constant.h" #include "FunctionSymbol.h" #include "TypeSymbol.h" @@ -162,26 +171,29 @@ Value* GenerateBinaryExpression(GenerationContext& Context, const BoundBinaryExp Value* GenerateLiteralExpression(GenerationContext& Context, const BoundLiteralExpression& Expression) noexcept { - return Expression.ConstantValue().GetValue().visit([&](T&& Value) -> ConstantData* { - if constexpr (std::is_same_v, ConstantType::Int>) - { - return ConstantInt::get(Type::getInt32Ty(Context.Context), Value); - } - else if constexpr (std::is_same_v, ConstantType::ULong>) - { - return ConstantInt::get(Type::getInt64Ty(Context.Context), Value); - } - else if constexpr (std::is_same_v, ConstantType::Boolean>) - { - return ConstantInt::get(Type::getInt1Ty(Context.Context), Value); - } - else if constexpr (std::is_same_v, ConstantType::Double>) - { - return ConstantFP::get(Context.Context, APFloat(Value)); - } - - return nullptr; - }); + return std::visit( + [&](T&& Value) -> ConstantData* { + if constexpr (std::is_same_v, ConstantType::Int>) + { + return ConstantInt::get(Type::getInt32Ty(Context.Context), Value); + } + else if constexpr (std::is_same_v, ConstantType::ULong>) + { + return ConstantInt::get(Type::getInt64Ty(Context.Context), Value); + } + else if constexpr (std::is_same_v, ConstantType::Boolean>) + { + return ConstantInt::get(Type::getInt1Ty(Context.Context), Value); + } + else if constexpr (std::is_same_v, ConstantType::Double>) + { + return ConstantFP::get(Context.Context, APFloat(Value)); + } + + return nullptr; + }, + Expression.ConstantValue().GetValue() + ); } Value* GenerateExpression(GenerationContext& Context, const BoundExpression& Statement) noexcept @@ -259,8 +271,9 @@ void GenerateIfStatement(GenerationContext& Context, const BoundIfStatement& Sta Context.Builder.SetInsertPoint(MergeBlock); } -void GenerateWhileStatement(GenerationContext& Context, const BoundWhileStatement& Statement) noexcept +void GenerateWhileStatement(GenerationContext& Context [[maybe_unused]], const BoundWhileStatement& Statement [[maybe_unused]]) noexcept { + // TODO } void GenerateStatement(GenerationContext& Context, const BoundStatement& Statement) noexcept diff --git a/Mamba/src/Core/DiagnosticPrinter.h b/Mamba/src/Core/Printer/DiagnosticPrinter.h similarity index 99% rename from Mamba/src/Core/DiagnosticPrinter.h rename to Mamba/src/Core/Printer/DiagnosticPrinter.h index 1c10c65..9774807 100644 --- a/Mamba/src/Core/DiagnosticPrinter.h +++ b/Mamba/src/Core/Printer/DiagnosticPrinter.h @@ -2,7 +2,6 @@ #include #include -#include #include "Colors.h" #include "Diagnostic.h" diff --git a/Mamba/src/Mamba.cpp b/Mamba/src/Mamba.cpp index ce9945c..b7d197f 100644 --- a/Mamba/src/Mamba.cpp +++ b/Mamba/src/Mamba.cpp @@ -2,15 +2,12 @@ #include "Compiler.h" #include "MambaSignalHandler.h" -#include "llvm/Support/InitLLVM.h" - using namespace std::string_literals; using namespace Mamba; std::int32_t Mamba::InitMamba(int ArgumentCount, [[maybe_unused]] char* Arguments[]) noexcept { InitSignalHandler(); - llvm::InitLLVM(ArgumentCount, Arguments); auto Begin = Arguments + 1; auto End = Arguments + ArgumentCount; diff --git a/docs/draft/Jvav 25.pdf b/docs/draft/Jvav 25.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c1a448f1d3e15dc94fcae1e4d64f7b12ae2095d9 GIT binary patch literal 180998 zcma%h2{_d2`*$ksLQbnCjgcbD>@)UdFcOL+35iLv?>osUR5&xX%65_^dkEPpp&==2 z_CjRe_w9YY-%-E+|9$`0`@ZM8y3c&(ewKT`?`KNzB3VTgB}UjMco+P)Zy$+Yg5UP$ zoqf{M`}q0AFT2}O`NdUiZJZ#a<9yQz{sQ`10{TYL#E}Yd`Ng&LFRQ6(is-0a5T#Hp zL^Y^pqUSA4Y@kKTHm0^_7B=Sm;%a788z&1VcTo!TJ(=ogO0_XFv2lWqaO5{YNr20> z4I$oTTU{Fqu#L)(LPKBfla<{E)R#a=CDnDc-AURkK z$pR_tU}5KE>%fmf!CCRYk0|OF4f*<+=1C#`Y2tL6C9D$O+Lt9`1Ln8DYOdyDoz-|%fJ^;a9 zm@pv<;zDE#f}>EVEfG*CG_(UEOfDXXgM!Ew#6b`cCWNj;{pVg1v=|~xE(ux;5g4K+ z00SmWhz1g%A;N@sJb)0{f+Pq6!h{51FEm78h(TfaQJ6m}V9*eR2$PEer(ht$gjlc* z0}&>~L5m^6gpe|rKN?|3;7XXlTr4CrOtv6cjFtGU5f;QX3MNc0!b8#r(P?#_w9xTQ|gb4}2rZ|Ye5RV3T zz=R1gz-4%dY(a1`{*P363{W2?OfDAULWBt+GvWW(3JCrklzr9fg}7D14jbJfe4d}2N@5t{`AOt!cnx6s7j35F)(z{wEV;)2ja6Mx4a_yoj&2+YMufXsu*79>ItkS$2U z0tg5bqCgG9Kx7Mo`iJ>b1Ti3V_+i52qJc6Ph-^XN9t`@ok1%K~5kNq;xHyOl$QA@P z#h`y17JMQ=a7!Z$8bmQnn2RwWKQNd-8bLh<^QX~Zu%LGV@>?S;NL>JbUxWo&3*c7N zfzn9=5D@0cSdb7Hh-^WSBp57|l2DjoaG*NEWDDZJML0mVAf&>d*Z`lP#lNE+gCju) z0K#01#{!ulvIX&AFCLIB2;v@t{~i3`6Yv5=m|OyAl^BR@L6G(s0+jo(kOUCf7>H~^ zNGie~!xDf%0RCA_g1CS%7ZX7@#Xw{WVu5jpfNVi1Hi&;>g9I`K0}&>dga&~Gku3-b zN%|us38WAPB3oR@`=meKClR5=fNXI=qXKt3vc1Rl&0fWTbPu^{-n6ksJl5roMW z7dQ{V-;2SQ{8)%ExhOmY0r?F{5d3`+D4qcRRuFVMFuy>AxfqSX0SL$zBtQcVAip8B z_;enW84pMs3VL;6BwiwlYjfWP&{gZKlGsjuOG zoA067_Tt{NF+2|wNPj=v;+Yfnt&hRw}_gPiIs(^f{nQql{u;_K<^eOegcUkMwGx3pmUjT z87F>GFan5yxfO$gzEv`@1CJr|+y8y74tQT&;V0q5u)ifzv9O|o#K!y|FCFOZ^B+rG zpxT%_-3FzZ0N=@coGF0^17tn$K%tsg?-M+AQAZShrifz1z{82^XzT1?N)?5d2?~;J zO`V~ai6)h5Mm77*b(G|{bFejaq&o3~XNa1Oh0{JkK{XpwD`zw6?=}C^5=HPZviZ*f z=nj4*XGbSnAcx>(3nwe8B>x%a7yPhH{J)<{{1Ruuk}FgPM+;jUNq!Un$~I<7w$_kv zj{Bh35F`e__(dR>4v_1Xg^iiRmNNV|p?mj%7G!2&>a>O6?@Xm*=|VoC+QbsgjWiB9K%h zm|qcpnb71XdXX--pA%HbbMB zrvQ<_naT<((0w=@e4ip7wi%89=|IAvV5xBgXeCiaQ5jxIfOH4bEi5&T2-y>>tc-zq zM3@JLAsCS`5KjdQTOLP(PQj_*m@8r5;?NkToC=Ty3BbAVJ|)=lge@Lf1@MSU63l(d zunvkOSX(>@4REHS3M?lcjfW74883JoQ)*@u;BnACyb>AK9gl}Bh{q{1_u(OJiHeG_ zCGdF2VC2$00L_(nmSyuthcOn*+46OkBod`?^R-%+( z{fGpnT~wH-5aB3L-a3V;gOUW32OI~*E*XvqB1l8nW3Y8epm=~Ym6#boV#F>fngm+{k5-1QL{fnLN5I2AB9Y-tRU*KiCV}mc1%X+? z4GO^FP`sdF|0zg7Jkpka3TS3ULBX;p;F-2&T3!LJFCYftm{5Rog+OH1NCmhukO)l6 zD}qD-QGf>~2lpw0(gifaGUH4UlmsY3$gp)4(Xf^9AZ4K6B)2LsczD7s=ubgb#KNvb z5n<&NLAC;SNiai42`=t<0tz;fk_0R=c)CMZD*5j*JQAF=xGe-X0HPwu9%vsdH9-+{ zJqW45r=XdEO9t5rS%PUZGF&oniolRyr839@aNkx7RmLy_kXcxjnfehxg@abYO$_{S z1c#L}sO~^pEVI2TGn1XfOj>0HxQ!?>%Yw23R4zelVx9tW0_?*xrB;T^GiWNzGs$p) zRAKsESsC&l2?vFow1f(92V_rXf~jC2sezAR3#wpYuV8?~p_Mr3b`l=+Y6yWy2Z#vz z4vZj65S5r3sSsd~DKRatLV`2`g`Bw$F3&guGZj^sNh`r@R4UBKQrVIW)OtuVMK}gk zlwi9k6CwYBi3N@V1rYiWg3A|H8OP+oO%v$AnnM6!2>oEDH)QmqZn~fPmllU><=f zHTY2&T1kX+1^glo`46mwe1t+Nz(ol>&tRko-v>rECW51f0LL{71?vZXoP}Z@g;Ih? z8H_R%O8`L@B&fi(03f)Kqe0j}JRlOdkGv%dNDC;I(6H_(GPDx(#VrKs2Z}C?&~R%a zs^DQ+(99Byf-@ZaG7qf;EgO~^4G&916jK&7Ts3ftpa_85(QteMAHg;QKlOoqII=P< z85(ZOpoM}P{!?bbCwR#JGj5wYJ2-$h1N;(z$8Bh;wy>f8c`Vr3+Clr_KkzH#_k#s` zb7-kR-*3I0z$fNkFhLKo|Kr&OT!SStACVSTPE-f*cRE%kPE;}#8qNR93(PHMY~9)G zueQ~{pez?FJ%ckJ@7CmtFV&jvFiHJ_a8_QaIHfjnb#6=cY>rD$dOwut0WgHndaL4BT ze(rl^b^YqKrW;Co_HCDIDgHBxif8uhuvc+874VPc z$I&y7RsOxSVkAsEpP>Enf-YWIDk8eJX&Z{;_^}gzac2+`kL9uzJ?gX|r z6)S;4ecQaMLEGpQ^`o6)2Lmc;c2|gm>wjgPv^i#TsQgS9y6bcozDu?X)g{^`(k1St z?`G#_=4R#Q<)-a+#m&dNVwJm10#7l@;Y($`8OKU#)yv zHCbg)Ig;F}idQXAc2QkWK1iMj>N@IvX6E*Q*}(meg#wdgpF_)r1C<};5StIZPAG>Y zs7@ywNbpM7o^bDl;)_UCW#uYWLDeJ`s_IYW!zvNVx+*x8%*P{vBOxQ9Cjze>%}3pF zY%X{id#U8bf--OLvxkyg&SyvNGzY)bdtnq>e0biax#W`T3)x32=#l7`Ctvu4tl&mM zUsk-hl|Z|F9xM9naQ&l5WswBkuhm~4y@(7WW`}c+a)|lKEPbkdly1uJ~*H&fMr%TXF^0y3t(h zuh4{wz>U)@ZNG$27Z03$aH#U}j}L*SiKvIi{Exjj)^u$4So*QTW7)^zk5xROqE4YW z!QYDL_ zL-K>21D%7ML+2mQhs-}>3uJr9799LoW;%n<89!{ePtIypNJcXE~B zU5GA*V^_yozm4a3nub=z1;z%(hRASxo?6fzoBzh0lU?J(v1&3VlwO+V{BsQ{SilbA6H3?Ny|zq8j(AtRL=wP_C}3Nvft+ z9sZCRDDucM&@#y2aNFU+(>7;pkTzHw$F7Apy!N~MPWL7EX;#GsNgZ`PHQ~@zXP;eD zcHC8JLbJ=<-uQ#}@kQ${|2Oe{K0&Jj6WMQk`-#27abR&C7Xu5&x%TDd>q6%^UUXVC1q4i4bmAak!)P*U{DUCfB_NWD( zr%*ng|ETd%>x||ZjWb#=HD7AoR{N!PHTspTiRJsAzjy2nI23~9(Ry;>i6$|6O8Y(c zUR$Bks40c_LVM!{yVRFX{}}q)_|V1$H@ZaF9>GJ07(sL7TL{9XCuh`}wXhVdCRXdU zniFMC>w4U=h-1-Do;-Fy8ghbq+8 z&Q6>3We52pH)5BFLI3=Hnilp%Z47ydj#Z0Gynt3it6!s=#lFTeWEnVy41>UsJ4-x^ zJ&QOid=_<a2L`=~S^)lm%5=PusY0B+)N%UX42pFBB{^t}aP;LRg@OuQ%RL ztW(QImeHJ~hF>IV(Ph+Bdo%$=%vJV ze7kHrs$HgCio{PslECkixS2IZ_;>V;Iz zR1J&s`cE6<8e<#dbMe$ORPWjc;nU&kXH~T|lVdbVQ4WGXJ!;d>7HapXxy${06fUka zks?iTe==iPn-@NmYA5{c{Q0D$T%DrSgv(`@Ez%Gz5-rGv+mYPnFU>ET z-!vyS&oyT>$26}s&otLICpWh?hcuTr`!&;=zcyQ^dTO&L@u|mBV$aJ&c;M%?MQY(^WHIy1ZT4Z1qo}JN%Opd=5b1SldST9^JTaOWy z5IrY~5)~8`%{-Hd%#_YNohe}L*s<^$Vfdbbs{Y zNwm)=w^}9rxiYninnb0VAHJn))^e-GJd<(a(~0_yIOj8?w_BfP)ake78P$0R zjFx3|>i6DSkC>N^4%c7|Qb(zExe@IT+E2F+wjXJ~(!S8H3G&3J{ayQy_MG;h_OtDz zcGmX8?Je!j?ZNG$?bhvv?df@K=C-vx&&s4cjThdHy=doZPswed8rPQ7y=7K!Ef};< zn)QC(z^*eSALn%Ha(ufk!_??Q=qmAgPs9K*}QVk$gxj zq<175$)0o^WF{*~nM5T;kmgDCBx@2cDc!Mk@W4<;-SN8i@H~vU*5~q=N>YuZ=HP{) zn0ivYBWlRub8w8FgHeOK&`?>76e)hl>*=iXXLgd@&|2KA`R86zsKYIXy+t3ctB48d z{Ug%Q(t!JjtH(9uf68xguAl!nUpvoWt7T&Ze-5tK_@vPw`cbr2wBEXQ{NwoN@p{83 zsmKzNtF)`_#PhEHA|XeupK-(OtH)|4QHC z6W0=NK-#LsImemCsmB?_>GkB6elLAh8d&ogPTt`wKn?K%vmq8l-<>TdzRx!;C?gKhuf)s7Vi?a*KHrYm&AIIHH(#x zwTIP*m4)>ks|o8RRutvwvj&wSCw2ckD0T=dpiff9qcd zj#{1hcKKD(jnW%h@5=A_v#Rb3IUIBDi7?T?F7vy}yYYKk`((x6=uPRqTfaBC-$!^U z^LxX+r;0ECx%%;p*-?l6%lG>fm7gm-cYkj9T>ZJZiM$ELR|rr;OVPw~K#W_x|n5U-NI;RegLIEaH+yeBF0D$390t$2vzR$1=w}$JqXcy`BA4du@A# z>4$yQeUW`xeLa1+svT9Mk7^zk9+?!Dz3!E^bYVK8Z?sDMXvL+qThpCYCy)4E_bObf z>pS_#_w2@trR=_%DvaR3p<8!l`FdMJ&$g>o)2)>NFbX7MQ&;du`^(Xr=QCmYhEr&U2Pzgw}P) z8aU6W6C|kHM3m~xm@vBO4eI4$MaDD#4%Ed4bk$&txXw;~6_2cxpih>B;PwLW8g zcKpn^*toc%f#g+5?c(Q7mcv<%Wl5^%wZb(cy&E z6-6#b-H)n@tcnthObVxlAC8KM$d7c6oDZLmVvDjC?z~d)!pgP1Ja-2*piVPfBT^$O z_H4;Tm(($j_H?Rkc$wjXP5W-@$w+VQ1>N>SYH!rK{=%D>i<-hIk$H9Zf2KL~&j|jE z{Mq_by>7ggw@#*RN1ak#RFqI;N@PludDKu;RD@ncTR0({5K$QJ8nGC~9%(DmtLyWx zSK6A>a?wos&$c>aao_B<*%|RV-_-9{J_u`$MXtJBRrFB(u()pN75lut{)Z)pjW2uYOnX-~9Im*$rZfHK zW-|Q>BXvOUp>R?}a)i1FuSk^cgUb(eALu1tN!A;@a^y;+?iD@!WxQ@y##q{QL(*l^ zwW1;i^Plf(Uqt9cqzE_YmS0}J@^g2@qVS}ikKXdD8T-Sj=P%{ItSzlgxMLBa9$^rn z8lk6qv1KOhSK3lqVp@3G>$JydV`=x&64GYU($YH8lG7H_veIz6J9L$FN7Gy`^QKGc z;|!g%MpRlXb!~Oabmom(0(4L6c^l1BTNZVFugIi%Tw&7_XnB3-3a;YX^-N>ytJd1q zm#lTmUU!stBz2^FxI3FUJ2@*l-*UEacArlh$r|Yy*%-mK__qkOn6?~cNtij|U)$#mbWjj~;-r&_+;A>wjRRGw&h zri>fJ9l>3};c+3j37jm>9{f;{iaU-=!X3uV_febr&SzJp-dn_i}~dTG47qrtKw)%)VA>9}paZ>wyU_m$mkr<^}XUgLcc zq9c?M*31~W?EJtv*;#$$+^E$E&q&N@*J$bJ+DK$uRclpSQfpG%&*sBz5pB3;Tw7+^ z=*!Wx(R2eH!c~HHVYy9)jbnFDaldnzbCa{)NLE{!_Tshf`r^eAn>O#uu7wkiidUU0 zn%9jM&Aa=H&7DU)-tc9nv^I@Cop1EeEi);zSnu@kEA*A>m4cOtm3J%7^HQU(ZIkJ87k%Gs++Js_q^{`99~}{IF;4Z(+o)X88m-8x zFy1s=Uz}$j-F&%OvTVL^!zp`&v-LB|etGgC=HSC&v zKxOk|GhzF|Mq~TRwwKLkCbppy zVub6KZbd(WAGn^7y}k72heD+mTLodQeM+k`Oyv#j+eh1GTdd7%TPNE&t2v7Uw-4An zwzzQnlhr4iPnPGb&RL(cwYqI}$I5oh=6W}=`AyQaeE;SC`_*;9Z6}QHcqL8GR})V3 zT6twp`&WmasJOkBJY7;f$?a>kRy5sKts1PwZT{@v(}_XNWZRp#z0W>qG@f2Rts8bJ z%rHzROg&6BOixE%=dzBXjgeQX<>=*j)A79HHOE_yE{^(+x{lV4-j1e@jr(XDLcB=&@RU^|L=x%U~j3`u1|t&r5Yp5w9cCA|8m;UlG%{D9g2?uGg-M zgl0P!{LB-!)2&I%Ob^L?cFozRWp{eH(R_cJYG(5lm-K{|oR*@N{FXvzeap+1*DY^a zI#{Y$x{N+-&23F?WkXCSY}w}&^7UVBa5=u z6^GIKR)b92e4j5Xmqw#9dkcJeS6YG-o6xOGYALO!pB z)K`2vzS|{v+^aLVK(C|c&g!f2*#hy-iNf`+1@q2c>(Gw4*Y&TtI@HEryC{^rG|V>a z$m+HEYSV4gIq_|xYoeX+3tux|D_;v=TU=LMdt95*7o%pQR-<;Krk>WGuRU$$#ojNy z6TNj-7Zzm3S3B7YPTIuZsra&?y(%(J=mh1Zd&6**eO#_^vwb7Ouv_65zq5oCk+<}q zLO`ifyGe7-%gS6+ivaZig8=gYU)39`cB;2k$*MP19aL3RO;nXtHB@y}Emc)j^;C^( zo`pOQapsMdDsUb9^{pkR!Zg9Oxc_?1&k##qf~3)?TS>ovNT{Uj_)>0vXUIt@pW&s< z{)P}=Nj_KU@kAH2WP5Cvrb)^hot~nXO}S0Qjut7VDV8aoDXuBT<~Pjk%$>}w%BU!~+53-W8Lb5ip@(ukBxl8b_)}tLQ&Iy*emc^r9ZAn=ohHb?*PTgZ3d86G~ zizO3I-mT8rqoY~2B|al7`J?)6vo=8j z(et#KEA5z7X(*8?^pu?_>YP<>AjtGCN{=n)4cUhlA01KluqgXv$RLywk_pcVsf0X2c403r&ji=B#mke+J?dq8p2ox8FBaE(O3D^JCKorptiD>b&n{*kelb72 zO7_l`t(5JQjgnoIoh+w%*R9@MJp_8m%*w-+^DDJ0!YgSjBdga|C0B}9S5{i**yb`v zxko!&3rlQmduipS-dx`1D`E?Vlb%VF^W}vrJ)^7tPWG3JuS_h;{94VNY$&hsZdhqv z|J&!9TuOYe_$c8QVc59Qw#l}4^4nz7WN-Y}_}<>G-j3d$-uB)m-?Ggso1W{gD{{k| zuQz8mvR5m{H*+?lHsr1-r8ClH^mb?3TrcyOU%?IFk}YT2!ZS#@g9FcIEsgYN7oJVF zX}1cuN@mXMbHBm6S%2$zlh3fsYdeyiY1H|;z|?xNqs6i z5*MW}N?t@=l=~w4MdsD58)i40Zq&Su^9%CR*Gy8R(H)uQ4?-70mJ8aoYrKWzo z?e-JjResz}Vyfw__zvF#Yq%+=8@K);Qn<|yEA*&TW??pO?uwA@nb z#jh7fzdU}B}5)-NSWCl7c_&sBZVQ|djq zPMov*)%INO0Uvw)fv^X|m7h#{UfsAVeU2N?gXb;abK!B}b2+)dv%tG>@*t0qEDt7z z7=w<%#1O6%uj8*vl{&n!e&hJY)~$Z(Ws>j$Kj7J2V+BChd71Kh0KK>c$~rAE}3gSF!eErrXw(< zYQ$SanpyZ*A`qXIu1|O~u~gjF>X~Jn<8ynxe%@6@M)i?ufGXj!4Uac zM9reoQ8lPg)Fi4m=X=giQ<|y0=~>g`rtPLhrXtnntJA7SYCNh}s#_nkJ!T6H4zcFz z#Jk)W8~E1zZ8*o#G^!>mxJ+_k3v!8)$7GimFVCCZbQ6>&ExiC6(|eS+UmLBcJ5jH5$lZhtA#mK)5U5W_ilVv zC$ZSRsXCT>(MmdZ`dc*@w-7@r7%-Kc^#8 z3}~6*nPZu2nYEcJ2APE&HqO1pR+dw(KMe#5RIG!$TXQp=4QdL?tt|`KYzzvmD+{bU z4_Zs*jxQDDb&6SgI(JHS%JwW&6=YWjS8LRW)@0U`!+|+AxX>O@~dVhaZjqT$K*^PyzlK#RPxf7dKYduSP z{fjjf+?ytAQPVa34b?4Dzof285v7)-K1d;@E=wJ7y*l=)=f~?xYCz|~2Hp*+1ee$2 zS4&JsLt;bY(xcMW<5T1|XO`OH z5@}w00?m@`gZG-{HkmaJ9F|A+q6PcNhrsTemAlD}HMjEW#pIDe1!;DBIMf`7LNO<^ zb_XWfztMkF6he^<@cd3jOGsm-PjE0kOkIwlT)7=&X1w%lic=n0`1j<_*7#_Yaa9E`ZOH&XrC8M-K+-a>jCcZ>k{|SrG0#LUeH!#PXF70e2}rX@Ycigio9*^7u7GYKkEJ zH0=>W)QODd;9yL-lXDMpFm!=QSYjw~ZHE}P0=|uh)aa2E59MWLR*N9BF=>Q8k1nS! zZwpV$u0S*6=43 zM7E>eAKS}M7v`lo1x+^}V!VAa_2lIfVhkm@W}u&(doEcr*+?B(vW<2f6H1u~X+P?C zQ5Bh8Rr-L7AqCXsoOS->|D@t(+;&9JHiTLb^}{|E+U0EsixVYC7mEz<49AR4X~gmE zfo4ut4?`$ds#~k^qk#j@zA4BfRZR&y5Jf^Ra+=7L*W{Uf{PgS(J=@7M{ok}qCu=r% zR;Bpq4R#1M;QLHL`h#l-izGpM++E5F3*z{JKrB@0y9&r9=46r?AzlC^PQXT1Qu>Mo_g zB50uaLw!(x(C(ugjFX#Tlznt0k%rwxcCe=lY9eE|(dJm-h_RDLnmUtnLB#EnM|OsJ z*ddC$SR!2e_y_*d*3y!4Nu#g?VH`!(K z$VpLtI)az>_(G7H+BPy;DrpY~V;?WgN`3gku!jB%K{~gNOEM1-K=`Lst)M*8_B(l| zEW824mWn#^yF$NzO zJkEM-BueXgDL}8WL%5^*A(g46vG%(;7@kDh+Nu5_eZ*7LjzAz)#v$umu##L*S? zYp7XvdE`lRg}W5(+$TiZ|!_0^F{q%2R1Om1lQZoiOgJ=U))=3_@ z9~27lmyL%Qy5by+;JXwXk#B5)1Ag}^?^5DG-T#Z9E`GSwaO%>#6c9+_tiFGJ`b&B@ znSTA_`=G=)v0s-`@^#T>qHPlOQgJWDLaxlrkTAq}EzIc}5R-coYPT z5WRL&0oepB=)p@H11Sik&Q#vL!H!t2l17~M@uPTvnCt@;*hG{jt(^fHz|k1WF7O>5 zRG>$lk31i)ve2&Y4jecVL(%*}o_Q8RDF=;2?vntWERSp#TstHKqGTHlE1I*N+{hh@#xYvc!@^b`HjK`n)8fC}rRxBZnSD&l5a)-X^>>gp08V zY8AT>T`pXDCwV5DE_4l{222(dNqGh;@?S!98zSxcl@r>nQF6aZR zugMNF{Pa%s#qbGnnJhuN-g(>baz8Fc=y^GjvH&i|$stZg3Xx_OZoiH8*AKF`?yWg- z#IRmL>A71#Db_$U0zX}86G7(!h8L4!4;;XO3VBk99v|hcvv7lj26~Re^mfGYsqM6L zhVsbO+P00|G%rvlJ%6&Z(89&|=~ah+9?l2ifwMs4P-UTYU9sOOL^l@}yL=tQpehIl z>#9&mgj!Wl;wx=-4z*EVPKK8}GTn%u9xd!z3Nn3Di1s?w0c7jjv{$TTbhJET7<~+ivcrAzLq6e#3!e)&M)Ccxe~X)IhP|<)>SN@Y?}GOz$p57Fd1~ z^aU-@T3WT2gT)Ow~lAxg4=j|$D{l< zOJks_wJ2>ZZK1Q{&P8CMm4cGbKI#J|A6f{7ZjU&ds@F$$;M7F&+98I6xfmZ;239gwq~(#1fYcAXvgh+E*IZAuHgY0lW zgpviMtbQO06jlRn=H*~?0^>M=ZotjK;Fm}CbBEa@^zU*pJV19lQ38_LF*xc(Ht1lJ zcY+4mf_niK2cCQzgq)QNOzhl_&~Iz*XigQR3utgZE5ME4?f_}>6;vHZ(Bk^ZGbl|Y zXAGs$4srGirI`PH2G=DK%MT+dKEN8Q;v8zlAn^Oh zji8KUDnB>KolM|><%RV9fdg9OzOUt2 z$%jVdrH)-goE`l#DY1>*SXx+=V zx&IKb!uXr^X`7k=URNpE$)y!m#NHhU#&)vyw!p;KO&N}$MUG3xg1G=B$R2rQm{gOL zqvWVmv{Z>bq6o}LnM9iOH}~9Gr=hCP>7WS2yZC@STa2x6k$oS81Y;Jj5Pe3>G=@@a z8Ds{g;v--Hy`qlvENNYPM2TzRWVEr+yj0bZ6~HGOV1!UF2BXpe4?hZiJEHwQ7bEi; z!u`4`vUfu+XuyG&cCI?e%(UT748>-&y~z>C#3j=NjCHYZk%L2R2QO`IazDt> zjPm#8H+gB-+uM5D=79w*y~Qnq2FA-nK@Z-?!7yIk_~nTWrOd1dg82>%Y)!x$mg|I- z-e;=F$<0TU1<((r+IS2wMT33M+FDCX25a(P=bs0iA3PZ>$07gOA=<&~=pl>0-xI$N zexLljz}yMuUCSHu(g+e5h@*Ccr`1fbU*R@dDQ1fC)_jLCm_Yp_DI4Iql@>`6-o>{2 zD0s|(q4y|w5P$&Vc?=pM{oM?xi>E*fN)VtgD^)3tEA3Dk4X6gQ+a8dvF%+W{#ds&v zU%KE0cHG1F*Nf+1MDfAQ-S}l5L)ie65%vNrna&oNc>Ahk28bbtZ!8>Y1bL)4==L{> zEF2807)s>9wrz-Z$*$>>WQQnFJWj@)kbT6(;0CX}{X%rtfC`=s7d~3dS5CD`cQP6n zzDXrl<>5BkIquZs`XI|KRUW7oJRSq{`?rr+5Pc_$ARAA7bp{Qb&)a$~_A9%}WQY%8 z#mfJt|GNju++zeco2g!o(oa z`kE>d14x7wcQd`)dK0+s_+oQINyLKHOi&E`bv4eJY$b;$baX0GUd3mca42b za7~zpJ>~td-RY%Me7XwKf`r@p^Gk@ZVKC2i<#oNB6msdN^b!F{IG2^htuRl zS?HwU@}c6zhNzF9vKNnZhxyvC$L+gU&hINbyByZA>GyBL=Gxk+r41IZ@};%)hTiQ> z>hW4$S-+j?1_DRvwBdHc?E3;o+X=@nXE;keqZB*$J_GCm$K>0Zjqt`N01 zk6``AixlF@V(t>x@_Xpc}!rUxo-tVekiRx*VVfm#pGuCxq zXQ?3iyCd(tEYeN&D9zYmNgX>iTbKB#UHMJH5d9OGA$0-V5}8b#-G0$yoQ~v5^lEUuXZ_DL(9p$jgbCMh%W%X8Uv^R6NRctfpA>y1g_awJ9Ogxj#Bn{z~^IIQ1%AVY5*><<#i}SC> z*}QwB^*8vWzcv*N&7@q>^mXYzc`sR9|_3cV-iNV@vM&M*F8sV|K=NIAmJbbUsZQ@_zTV=lesclwA!f z@dj+4?fags@woNt=s9^7-A>l|wcOCqBL5|E$CK=`XZt^&-erz^8^1vqD!4vhG-BUk z-S^SLF0^T*DLv~%9DbLcOGRx-Eh!A`SrDWXRW4=e5#%^O-{fmpW?wvK^}Q%LT@~9Y zHc>PadTZj)Kedk@i?Hg{WtsI&-t}2{ci6j|^cUA7`}U=I#hhF95uWB1@qybHSr+0r z;uoGBG4ioHdns>xMo7;`)^qgzHoTm^=fuu8FX|i{zW2#Yo#U)uJIjAo&-eb|daRu5 zk8dpoT%UzP{T+S%GD+T(BdO`;;ui6Jb8lPb^$4-FK5BKgYyJ*nIX6z})LCym5plP> z>3yo2vZW{FJbSn-6^ii2-<7`DUyMtClqH;X&+&SMVZ?>3-8wD0)4F0$wB_}USzH$n zc=2g{dDrqYZ}E|DeEG~mgzI!s-H=8WPwA_P+K;KKdM<`nov3nG3ukLhrn=c>V~1XO zKgcN(;nge7x_qZWo3*E*$D;IuUgK2CDY+&e!L_m2y>{YycS{ZRJ*d-%)iaL7UH4JG zHyIFD=DxhDBd6shY3RKCvrhbnYrl{Ch_vHGYU~c@9}c}w2bzS}V$%744aClhh_`A= z6In*yC7xaS7Pl+c6XhW}b91T7zGm9h>Bq9Yz^h>2OLm;4p^VNO^#{r~IG5Huex&R- zHeNdLsk>~7VR8IPx&4p9xrF}4{o;mib}H075K1&JCoXK5k~G}9|GS~# zt8LVea)NLEN%YLC;2D|WLiJ^5sNqn*vP(-h-N)om!QrE{kn?PlrBYmw!5w5-slI zHvPFO^xY=!tMS3AXdxYOqf)nF#6N#OGBhuL^UWnkLBvngjr6wL@BrziG^bBrdb^P0 zWe1bq``sNUo=1eg5IOa0%C@HE+Zv7Xs(ekcne}4t=@SQCwO+o;)G6YUzs6qfdZ=_Y z&){8CLY$%RTv?v{=g^+F4Ikd{$GzI!@F-X`cIRlyyAonR;jP{EQz;Kb9aFeI`_0A( z@OY2%IE2_;@m|Ot?iG4*>et1o<}j|J0Q^a3(yHVc87~Q!nWjAR2F+NReG0ojet-7w zhp4wQG1jD#eQRxgMSXdK=9tgB;@OCn&aK}E*oVBai)g<>IWEDDq3FpJmr6!Wc zw(GXLuRfIF3KpI8M4R|U+1<8j@ZY}nE6iLz+F@6=g6h4`8N@K3)7B?$=PAj25Apl^ zB)imnou3fbzt~luW*%4k0C^a7QL4csW>WT1+sm-;sd4-<($6CvKWmB*a+ds+*fO21 z?o@kq=!mRBf0 z5tFsvbKYg+ZHQ9i4$hi;Z*^qT%cA5K3@fu(Yxhq~HJk6w)$+UMI>I|;#;bXRr+iP3 zjN8E!BiS!W?VERpavF8|Q>usJsyBLbCLIxL8b@P@sS$BYT;k(Nu?{^IKRzz1+MM*5 z9LraFCx3ocGv{Dw#p*&(>TvI8m+hpb+bgl&DT^I^B_X^R8SmSbbH6_L=RGXzy*Q0v5B^|x5=;Qv{X8SHnzv@oU;Q@cs zUyM*KpECBVQl6^j>aVz)m%<1K{ZdHEGKb#e{R|%%FtR(Ur+JWfpVZ30z<06Rn|@*6 z>nC?iF3JBTc8XDR!o_2J$Cb96$Ll4U#c@vE-Xn>XvPTv&G@tQpTeP1l4C@QK#~ZMa zEj8VF>75@=XkyGgt*Arn-wGEN5j%56d60~J$im+fRdr=tAFJL8uF4Vbl&L$P+2t#u zDK)#e{i*EC6vsc&hKT|x$tA8w?#Zy<%k653u^u6vNxk6;{+ZZkO_t#v3|g7HMl^_F z9(H5(;MD8Tzj^Iqb{2f31u4B|WV`x_Xl^%jmT;O$V(1;5=)y@JG`o57)sB!4WBRUc zy#pKms;6DYb_>Ss9B=C>9(NaF*SIpaTgw{lgkF+pjXP!=|ILx7q&kEx?CrgdvdOo} z<57z~B+{#+o+(8EepZufb2rAz_rBWwYU%Xd4;TJ9s9vKG+{xzjUbFP4h z%S3n1kAZ;Q7qoml{$)L*ak~NGC1RwbxxGj#s3m+hZ_-k0krCY4Bh_A(cf7Y}Uz|KY zzA)Rech6NZNsj&HO3sZ-oLBs(W$LxIgMS~ssrK(9%|n{+`vpBk-d=ipqSJHqLpSfL zR#%Vps~S(Q`75hRtWxh?eG3|9Km3&WzC8YESMklxpy?fZh3>}M-RusD5PGJG9jlX+ zm-_0K;5I7PNfB~bjE>vWvu|V~h$@tzc~0(!`_1XS26h7hLZ1r7rC5+FJ8u_hPUUFF z+=#sq_wOXnxAmXXPr<);*mPe@?>DxMCv9{u9XmZ;BiH3Hw-juxP@~1Or+v9;TAcks8=jhjL*{EbTwfx57{a~x=x@w|PwwYldE_PzDYq1O(9 zR_xH#9k1>NcG;#+x9&T%6D;ompY4Z$)v}$0X?)##?mV>WP}`wa>^XvS)Pps7JOA1a z{Fyz~$_u3YVByw1 z2g`T8e=y@<`p%ji=9nhK_XiqzBVkY8LHA9d&Kzo6N^Ir$Kf+FgnricMws`?A`8c+2?>Kr0-4>mc6#Z3ItmYr(-?2gk>@ zZ{!~A+q!u(s4qK#hjp;>V8zys?VHAp$Cq!#ExUsO>x>V&9CSYDz2)vE@C*)ecElc} z?>ced$vV-24-dS#lF61Kc;8@R`tn?O(vz6uZA2ZN!&u z?S5_F>fJBx2KT-D`0kzC!p45v9=p|W@5tVv4OwF|d%O0wZTV{>-qvDTV{g%3(9&-Q zT6S;j-q>;W-oU*fdjp4wdwn-m>tq{vID2_}8GE^VS$l!Kv&mu4^F0su;5NygkJo(w zzF*&Sb3@IZm-k%Xb79Z5JxBL|Hhj;PJ?-ma_NVLz*6L=UJ@;buleulpj@CWuJu`bi z9o=lTNw!I(xyJAoy!2n}^Bx-Bhx@8yxJN(y?LPhxs42U*?L*f?`+YY8Ioo#|+p_O1 z=!L(1hqr+CdwB7tkqr-L*9|cTL-zs8V_);W)_p7YHSVk0R|}SaWx5Zy;r8Y318;dO zZ69b4_W?U)UjX>`+UK^pe4p(;>){WFfYrI>)DY0)!*P2L3@qNeXA@`d_}~{fOxE{o6b^?jpiOciOeH(yZG5F?AV9D=Xhp*`x z5bdnpS+p}z0Mi`rLJ89$nUG7-D9XvIbH1K=_Xq|T%t_H2@ zE=m8#8&B=u#mFmj(y$A(jyoR@ z4Go#CyFLaq<{+>|25znaT6|a8ns;`s=)1EE9JwoJ6kK~(+UoILnY)0U*AKjbUBSBo z!N+~TXo$PZ3zW%XHD12eru_-KfVZ*BY?sL{(_P^C?qUv-`*-hR44+v0(=O(kbvuEj zu`Wn+{q+ZSe!cU~PGI}(d~4^cgTOA?dAYx9=h>a7KxF-gq3b*M@7&W5wA#+mor61p zWwCSRP9T+QaC@j9_(4O-8Vv%LJ{bV>eN$jbx)XS2KyK5k6yYY4-%~H?LTbE$d zb)ZaJC0j)xBFY}#w03%pXK%#n?Vvoz*FM^Ax?Q;)Z`-z;4jFU@ZT(>QiG*a~E0>q!6pH9dWxmE2mR zIbtoS`J3(!-W!RWU(QW$Y~y+*JlX-(Byymi?!vPJ9DZ2`b`OVe7tEp=OJ zw^XgE+fukCcT4JQ`Fm_eRt)_!cRwR}BU$s7JV$&MycTFRr`>a4`-p6W-}hhyJlzps z^8m(xj?C)HN5i-m2ROt}!yrb`4m4QL$ow<(r1XO;41?M@d~A5f-1^}io$=j1-MO9T zhWi2gz~fNExE>rX8crUL08^k_hC_z&XEYo%3~I};)v#m$*x9|K?Zd-BXS97k1m5t_ zlcB%casP1WhoRqk-1~ipz8UzXciGVUV9oWRmxj)-1{!_{Sjj`jS_`_~08?;|o|}N| zY#!P$)Y|<+_t@I1{)wT=R=nN9qS<`CUgTL7g;OX~*=d*#=`Njs& z@@*h)pp4FpJ|BGw{(r{y82zQsdi2M(fzj_rfqyvq*67W)Wvg)SaP;NTYon9h)}s@n zr#kaSfxkOCHo9YUTgSVjn*h(jz5dZvqs^l$Mk_|kdWT1|)^JDTM}fUR3d*%Ed(?b% zQ7_&q_B?D$(98kZ*wMXoy+?nJW@*%`)^VF z>wa8~zoYda_P$PAYt~&~cYW2;br)CR{`k6Gorl2FL_BeHA#v`iAwjL$`a-KJ|LDVZR>Wvv$0_)_tA#%GS0V=wE-$uL1cv z)e$lL>VOBf+z&L|@SR~`F|4v3er@=r`TI648XD>X(o>JyXG4WUxothGz8(VB72tv; zLq+&n@I92i^8KM`?fHQp(^A)#(FCG|LvBMrH`X&+e;Lw7u!jKS7!nMzz&Ft9t-xLy zd^Gr4?OTJmyoHqgHJirTi;;E{)3 zP_tWa_56*$WjxvksQ72CAJnRP`#V1D_^9J{2Y4dY$*Vr<(6($Hm)n4}cATvTy0GI| zhc<@av9+$GV^j4XSlMb_I=ZV>9Y6*gp?P zuW9Ei*A%Y-Pj^jL)jQa7-9I(&)T&oMUj51HYpcUn8}zIDudlZ4kL)+bO9|>y_b=T# zE35l$Xu)6ilxEs^uRLmQZ5yy+%YkIBbg0ut2v@4`y+BJ{`uj@oEXshL(ektfe;zGg z)yKC0ucrb$!=}6SzAcwpKdScXc~x^{7tj|yljUd+h=%nv_W+-vRMG%!v4(tXYmGxS zuWoe%uP30#zsI*4SVuje9j)9{IaF3v4qBmR<8n}zl9Ha7p3wR~N*sE;d%QsCEU(9| z$Gl`$j|uq4@3R5d0-YIi_fUGN?dP_iv}O3Jcug0GJGERZ!#%xnombcb;;roiO&-vH z{B;_4f)=+^(JAQ^R&z_Joq|q&C%cmY{>hzi$4tF*#~&R(cl^-tMaQQN)%6bAH@u^| zy<=PXrJ9&_(Dt`8+kyPFQ`>Q!)(*7+@4gM_+qOUP=d3MX<! zpap4dZ(Z36Vh^n)t;NMpSNW`RFaEUEuSmZJ@UOyGOVdg`TW!ErEAS8Gx7D;cr#X97 z>nh+ER2LU=tFvm}EUR4g=c*r9eZT7KRrhkAt@?b`$8%RCQ#DgKoIrvPYesX${^a1v zD|{6}iZEgXlwyE{;c)mWWPtgZ0k-k75 zZ@=}m*1o=;zEmHyulkGh&Gl{cUG=@eytlruezZPlq4eYRf!yl@yG9>Kw0@!firMq( z=YypRePD6vH|e+Ocg&SWA8*g~aa&BkMPJJ+_19u^`h)tz`s?)n^XXvc&|i(u^NVV=MCsT|MXAlPil_Rp9cG#*PMCwiuz}DbLaIh z>R-j@uj=D52>qM-@95vwZU=f;|Gjx4~q? zdNoRaY+i|TH)X0aTUnw6ZJ!cv|CA+~4?eGzS7qVcbp8i?=VN;*%ap+OSJo)CQlVU> zY=i#wr>wxgu`5;0E-P#1wkoSMXTg`W^UAt;$Cu5XW45fCqyBZBTxI@j`LR0#`_#-` z37i?6bGD@T8f+PtSfw^XqwG_zR<2c!DuK)?$CNnbP;S$1+cf)8Zkbz)?WdhCsGZ7r zHAy+I7Ac!FAIS3wM$(KmYNoRv}^02fBh-*m4*15!{r#41Z}xN9qO1Z7haxqnh#zw z&2-(Y94fadcPasgQ65wt#kYWO<)m_Y-gS;^KWBAoCN=xau9@9ic@p1pTC+}hdTu+I zKd-!~UAn3}557jTMR`?uT?uSaC9c(!H#Jjy9$3Cg5am^ZNQ&|k<>$(K_}T}Wk8ZE8 zu#fUvCC(C+fPpF>X+HS!pPG+un|3ed@3U*c(nEatkqTI&DuN2M-6~Xt(*_kuMN!e9 z|M;6dzi#=bdGp`SFCSR`99#h}hw^Xjn%}jbN6Kd^ZC;b+%G!BwO%+4MQt?!JDyd2Z zmQ>m;a?Q62#3fbcD&VK7oK>zW5UEoIsDe}>sz{aAL(0RjF#`--~L+{5=+I!Oonk%GaD-dxgS<+ZX<+Ky*r#jD1wPh>0rx zUwh#hRjMH9KmJsX;O;@hV)lctbDrHYJFi`Dqtdo|D%`tO=~_jV>Fh^kfj?30c9p#f zZvp4dta8Ptu9}bLI=ZviYCiL?_~M$mYw4D?W}`}L8-lluubF+{+O@d-sM2PnsRVN$ z-Lf8j?Ce?eUbrd)mnUEus5mNM8|XeFAYX`_`Oc;TiGy%edCNp#+}1@-6H$tL3oL08Iyc3*G12 zdB@$u^&GDMlt1X!exv*e*I$1F4F+kni3;DM(I=P=!{5I4N$RAAqn)xeAKfRXRSb(tZQkU@X{|F!%kx{^p)5zI0Fd)qm`B8~fnzY=P`3ZzWNcpL@4bz?#v<%-rV+i=hjKcg6q9N!j#vc|GFo*gn4+=jLBa~6Q+Y~VaM7D)80G;8DZpcS82viW=dN9m3#Phw}q=a0|My|B-24Fz_Me@{?{sk1YQ$_sU?=MGwJ^)^U)S!N^;VQUbJJOCShv?&-F4Rf z>kQcbeRJnqcvgI=YyO4OM>ZjDwGE6xA&yjrcU#M=ivf*??eH0wbu0mRspxK>umb#uDq+3)}N zfBKKWS>>Qq@xaG!0+M(fcnCUOfmz5J%UUy4KKYMw&ePDK?fZ7YHoVoG)ua%vO+lN9 zTjR4fxyDkTwG3u0aqSZ3A!vPrIj;ef<(X0q>~n1kgZl{_l>oEK@YYXj!OXUIn(6G{ zd*sj}xU{l{76JkoH?OTa&|s(4l6zxPqi)214~Pq*Z)@?Ees@?Y2Soj30a&KM8M z)dZgFS=H|bK!+Iw%x*RCHURq?;QJeBk23Hy@HNT zgK2!*?9wDy2KJG`+4+0ToyFk1!A0y$vup9sMcp|UTtT}|YXKP?)veiYaMa+o!2^R| z4Yk&*0iIKD@XSDM2x03C35KX4#Sr*Hh8#nIAx=aL!Cf0l4S{wr1lq#T!qCbP=pIA7 z)??p>TJPA<-Vk`WhPan&=&G4F^o0KPXQuW9>6FUZh zHNpHt<6lkYd`ASLLNtgDF(4+yg4hrT;zB%#4+$V4B!a|{9wdRJkPMPT3P>MP0$0)i zGK7qPFqlB5kQuZHS`3*(OCSr#60(ALP=0Elmewf zX;3<#=gT95ngC0OXLyw^+ z&{OCcGy|!j=P(2#FbexY|3Hsm7$$IniQlmfb1NBNFxhNJUIyCF`H+`IRPq>%cwR0u zol%1pbNq; zuiOao6e)!I8vP6U7Dg!g4=0n?LV3#2<9M@;*(tQ0v^LId?k;8~$)A_bd4;-$%OPLm ztztc;e8c{S-OOv^(^$u;;gt2{98MYf8hMc>i#2@y?S*c`3XLyfeIu^yQr0yb0bTjtcpi63V;AdzJS( z?-gbO?*{iGk;Z$8vW+{69%qD6TY0asA@WgT4#|%9Ht#Vbn))m6edhb5UA*^DKIcu| zZQh&I$Go>FrRNhIgO$E&W}37ps)_ z75Xl99q$LC1@A}RPmI5KzcC*2e&zkb`hdYsH7JF~Z=g$x>1NW8_f;4GqKGFvE4e3-YFbceA6J;61i{mhp!u2F62 zm7G8L3ciT=J81|l;){t~ss(j5$BTN0_?R!@>+w{4De)7UGsTt^PxT>x$KT05#HvKz zA{tWo{9WWyt`%{dc$c@HF-dA-#PUY@>v$X3fwqAX{V`J*%=;$J+7 zUPGDSZ{Uwnf1rFsy~5wf%;h6YF{TUHZ0Ur1)V(8`1q+BnUc)y3&1RSG$z4ai-RoYX*G!AhVO zGLJE&+~Yz4>k;||n@99weMUY`dLX0;=|YB(N$(W0gj~*3A&=q7dMMNrE@s^#cMBCl zF?~OC33-xE;f9mfPzjtvr0YTvS)b}g3lmC(GNHN9UT7*b;aLi8g?8dHj)TyEnkqCB zS|aD@p9u{~Cam@3bgoip#m+>|2pxqg_TNHdp_y=zaEWlK&_U?L*-84IzDnrAlu{qj zt*BM(5^k5!gS=hn#{88SDD-Bjgg!z~p%?jMW+UseFc!VT8WDz4b9sw|fyk6FL>NJT zmGL)quh5^@E)1e)3L}M4!f1BAFpK3$brq(v-WDb@Nz|Rf6!H;rnJ}K{B+O@?vWfFoE%nu#A~6tYBUdHVLbR<-!7CiLjLUj<7@6DQp$4qy&*}@H&Jo!WF`HVVkgD z*v);0ekvRkuI9K2`-DBhwG0KXi0dF+&nys*35UrmSw4&g=2hWV@}InFPMdHWYbA9v zF@<$WxLvq|Y(Y+D)d+Xep9ps``h+mVb$Vk?2Pqr$zG5@h`A<@NZDx z=D*Ir$v;HaciJHfMm4BVuNQRM9=pX!7=#Ths@NeW^=6-?3rR9&8si9`z?QPM@F^ryk)cS%3SbdQ zW4v;XjNHhHrZ!MQNM?dF{Phe5-I=tGI?VG&Ed=K%{j8;e3-mgAH6@4nSlq&RUA&TY ziYFvprHzp|lw}-Cafi5F+`}3o<%wIxZQ?F^ptxV$$xNnPARCE$*#}rJi&u+BC>`QK z))*~TyjDCw*(e?ok5W}kYt9Ga4Xi`rZJc58PNuzhFYO)i9`Ql82_=#7z4$2clK7N( zn&%|GEWSc5=1O_4#0ut*;tRYso-MmZe3jx%HWXiEe@M=xtz`C#E5#1iCr02 zsO@Mz^An0Er;ql4T0t)1{KUwnOVIOTPnsUFk|bqbX5S<3W!>h*l6=JHD5>J}=v$m= z!DVI$XEl*7E~ST3K4iT{Po*;GZ=n;6Hr6uA4b~sbMEZB)a`qsrfmThc5?70xS>2oh z;S}>*hFCZ$oEDxEo)?}beJVUFJSV(B+%3E)yexc4cujbf<|cd@c}@75@FuNU_#Tlj zd`tKyH&ghw@I&DT!q0`DF&(c?pc=Q~{ZVUgYnm*mE+NH;^xQ zYRb!~FS86?&D=wZ5bonv2@eVn(EC|&G+4Nw`#rjndz1JQv4eYnZG^(Yqv+eh!@?u9 zOTuHM?ZV@96X68Wjr0cnYkI7nl>7zfCC*8*pU9a}f%*~MMXu}{v{aD`wT`onctzw! ze2?~+^qjtxR4wulxszDDG?5o`3pJRtPvl8eQ_qY1MSj$69E6oDnC4|uJ^6b%O$-&i z3Jny@kPeU!5pQryXTr6H8E)o94-idBPQ_yVsDQ+=m z8+spgV@+^(2*0QNMC=v*K;9z!k^B~|UicI72z^NSQ1~0`tnd%=Z|pHqFdD?EqWCe6 zi^8OQDNmplg>rAOrfHMhk3^B8IBJ_HUKCEA7Dbaf$ZxYq%vVLrMG>MHQLHG9>m^F% z?xwFs2Sq8==ghOjeo;1Mi71)9pNojn$&R87p0`vW)e{vk%cT;ji2S=$%6>&ECT}Bo zhzg01SfOMxTf{IC<%n`c`Jz0!m#9co#t0HskZVQ7qDnS}Gbxp^-x8IGYEY%9ns|Uw zDypa4V;x}2M769dL~dis;{VrTp(2KvX`KLu^vz^iuO@h z5}2FEKqLeSQG!ay5)v_#*e-c0c|yuz{)I*}DUun9npq>bhOX!O(|0jQEVYoZCq{MBgEJiCRkQWcZV> zqI&d~Sg_y*`v;(SrUi5!hM<6!up2! zjNL}}AZ`)7&fQK~O8$l3M646M!AfU66THbPqHYr0LOvo_G5Pc~sy_8H^CwC%`9tCk z!EGv^=tDUrc$c0)GG;aqKNZ{&yvH(Q7_-FaH`Ef=Dh`cUEBHY0mf#~=y5N28E5sq* zGQmCCpDZ`Qr>q~TUX(utpP|=CKhoj^-wM7*8;MrL8pgMR@0f229teI!{vb9mjRfBy zKXI(l0y>RO7yK&tnQDUm#`uVNTJQ@a0<9)iqX!r(1pi2q1kbp~BpgX8vzm8~^a`nn zyPw@Ce@{||yp0B+w@J4dUrEX-KX7Bv9La0QZ;CW_C*@Tli+PGYDtUt$D0xfrCaqF( zi~Y9bZOJ>lV99$79^(vggz}twox7C%Ir}9ESHhF<$<@pVYCm#IBBmo0l#|D%N%Yv8 zIXh@?^5P{5iAtiRyvJlQ9hw_481xunVX|mtXE3> zTdzW|iF%kppnj(}#Ql}CnA}f#O8SGVueVljjb1-Fl4YUS$+}4GL2l{|>J6~67+;fb zQ>OHK^;-4X^g4*!^|~0rdVPAUDSbR1t59z}?In~z`-Js3^&^%OyH{^J^|sztvJ>|# zPoj5#`T^Bj@2K7>&TD!n^iJwcQqSsL)jN$MdS|%H^{(h$(|b?v4ZYjwpL!qa-O>Am zc8B3cOeDX@UMD##InRJ47uhY`E8Km=ICKr`34_VJNJ-NBOz(4!RPP?KQ|}A**UUC_ zTylfnP7;v+lDtAfd3C5W>V^8yUy-DcTP2y2Y)KZglvhQYp-nLKCAoBaNuDHMQb1~y z6f*M3*&Gw(B}tK_n7EEs$0%VQ7VT#xaikC19O=eW1I&13^^Du=>e!)RixMLR?KXBBVJ&9KxyTcGkzlN75yUmjs2(S0r3OgQqg^OrRW=)1x&iiX|WNSE4C0X7MqJL#a3b)3PbWY?HTbn`611P>&#W5yCm<^(um%S zQEG(b1Ica49mywDIZHy{P5E8&F*lOz$X{F>#j!5#AvV=$uE-MI2=hea+PXM zI?wSy9uU8zzlS`c4@xTNO6pZf7=4K(ShAdD%N9t&B@t{D^i}dW!O1&j| z=8PwL#-!zXrqnakFKFI+)_M-i-}SuoJoQ}koM|SEH2TZ*HG2N!Q+iH%K8*JmKX9z{ zmgz<7Md(G+?;y_@yI5aKX!QHU7}71lbEX651amj(pv(=m6}z#5Ij1O5Omn&`@m*;v z`E_Xr<%+bO^(M`qzfao5ewo(6U{S=<9!`R+KvqN(k$$0~^hVhVj)ANc`J8f{Qz|PV zx{%h&s%2I5*JWk0a^iAX1$T_)K&4PDWVNyyStVM|J;>Qh`I#}ueUH3ZR!99!)*x$^ zHOW@W8p)r?T3BpZtE^qtNi3H2$oge#SRcxUXaTZ5W;3xF&0^7I8@Y9|QQ4Smy=)k{ zAlrm|kNikEO8!=6&;3#MHuppNN$EP|O>P=nO-UvXl3phsqL0!S6CX%3XeZgR(rjst zG?(_8v_P829i;up4Q0PCT|w=m8cK_Ki@D>{3d*OLvA-E~EK!#-*N&&9ofk3iCc|5Amin zNE#pwpiyKITfoGD-) zCGMxhQuHW)F{)&{WV@+FL_66YRy8A$8^^KbejwXVIYe}&{6WlTeMha99i$G*4#*D4 zj!=H3{K8$qDv<5u{v%%@uVDU+y2{Jt&GIJF4tcG-l6al+ioBB)MC}5hjurAY#v}P^ zc|Y1rk;+Hq!(?~)2Kid~fP92DBwsHdlMhkqd0hHCq%Y*#yX3>-PuX7L&$uLtjreo%7nDH8H0yQoJz}uYBmP?ajrcx|%v;X1VOwxdaqo)1MV^bl6F*?eIV&k&i@!&SjH{G$;vX0X z#XnLAq$lj#;-6?6s8*EStYY!c;)hgY_8I2aEOSbL_!o*H`*rcJ?3?1>#J>~6#D9qY zWO}l$(|!{FjV>iB#Q%sN@w~W&;>WZmp1$~r_^J3AC71Raby_?lR#S|`&-EbjUnG$p ztVhs8$ajdZ&}z^~J(TlYk4U}uD|%EtnjT$`p~uu?>9INMnZN0A^tgIF zJwB7FC(sk>iS)#JdX!yy5_ulklXa4}k6cb$EA5l^Bi~8aa#!(Uq=U>s`5WvB`7OSX z42f$vpR!Zs-w`ho%jDn7AIN_oS0L|_qBzYQ7wR=?q$HW!D>0CLPV!{#kiAcuk=-VD zaM{Q=vX5jR%RZ5PD!WVHF8hMxE;!44g`O_EM-$LOxu<1c$-W^bNlm22%uhKb%uC!h z>bn#fiAnlIQcrqEQir}rUd){!Z6cLXvPjvIm6BD+8`K<03+H=DqokSX$o-64%kGl& zu-=mNqDGQ_=5zYEWVNJ^en8UA^p&hdnY4anl!;5u9a*%PCVpB>v9=NPzJFAk`rs@}IGX`G1pd zkTL}@|0(}ZMh5#A{$H$@`2X-9@n`sIbhm)Se3uIgI069+63A$O2)NWZ0Sjf2MFOdS z!hbBFGwx7pc&4-qq+~`M?UX<)U0hyK2r>jowAGvqoH0Q@yO8mT zpqjQ$P$DQM{VpgXpW!YMG*O2Hb%HWMxuBBLE2!sg6Z8l=8RrG>CM4s$1d7tc=Of8#X-eX(Io-(63X|ye@kL55*kwfg?diB$67XGPy!7rXApR%Y|~0Tu&~S8*&bk`s6CP zf!s)LDmUi9aw+RR_XKs9+(B+8x0Ks)Hp#8fm*ie@AGx30S?(=&lsn1o<;&&a@<@58 zJW(DakCz9^V;Qf=)8yI25cvdq6MHv@LEb6+lM^XBhW4Uqvg1q${Z)2S{<3U>^S5jg zc~AZdIzltx31ripa?a24*BD!6XJzN9^|A}HYqE<>F8vT~gq(`9WjACm$u7xWW_8G3 zli#GgL8&FXkppP=nUxYB>LhiE#8=`c@s})<1V{oUL6jYeY@#*i2bLpWpW;pYg>;!Q zK~eIRd=<-vv5#-SFk;{5)U&^(_)u0;Aig2ri2aCf%)UZ$p!GA~AdN5=kqW4m+{1hm zzA61%UMMq`8^yfK-N-lN-Y3TL7xNc!8u{k@C438J72lE>%(voOqffbi@omVrh-3Vv zd|Prj`wLDT-;VS$I~~2mx92-hUSj>uxyyHCQ~6GuYZRF8%$#7};=3@)xqtFq=_^TO zz8k56n$36TdoU02J&9lNy=Xk1lJCvpaT@3{z7O#}`DeZ_yPNOF_h-G&U&asM2cj?Y zL-;`)J$^9lOMWOnjK7>8&K}^{p>%!(!&e3!h6^NS(@m7-V4Ly9ESn7fX2k<3L$xvp#<AbtnPx@H=Pu@1Nn9kZ z5)X-+#GR>6Iz^&MJehq=CNV+eOFt~}q8CNLXKIaYdR&y6|{g^0c3+V$QgJ~## zD*u}_$!#IM%Mi)`K|kV>8O^*vdauHWdsSh~r6|mhFNyaQ<_asSNU?caN-p;dJpw})%!*7 zH@)8(d3t|v4fXz{?AQBC?{CThy?;oDX)L`*s3G}Ra-7~{y(fB4^`4QoQOuYf!e-86 z_EK(!-VC=#Pt9IWmJ_4UVDx*&O`3$*$gtqtU?|xS$Z51aTp{JQco`{496@bke`XFk!~B5jD2^iyiW7-_;w0Jt>PRwTJ|MY@)5Iy_RN_HSj5tG_ z$#CRaa67~~yf`$BvqYRHF5p+QchQ$}PLm7yjf`4;Ex(2-ap_LdYtmiP-O@cI z1N0N_$8;Oig!GYguXG=m%1ELvW&J|tOAko*OAkp8(o3a>rAHXH(xVJJ=`plcdR%%! zdQv(eo#cf}r=-)AXz3}=8CERXM01dyW|-5?Nv}z-OJ9<{EWIIpg_TDum%b`}P5L@F zSbCFfCVfMCOZuktE$KVbx25lr{-Kkk?@8aMY~d_NUzOgLejvTW>5+cOL!=+kf0uqN z{e*@}@3PC7e@Z`-eo8bYCrUq;e!-rW-jjYwTFoAjekJ`{`VHfKmaFu>^jqn7(g)J- zxqZ?fi1oD7(jVD;=`XZFqAyQMd6VrX{ayO2^f&1r#Gfg3z<~Qm`ls|S>EBYd^dIRX z>0?HKOhw{LpGcodpOF}}o6;HSa~ULqxm#oedX@~KXUk9-k@PJ}m62p*8AZmV{3zqd zSTeSZE921=GQLb86Usy~u}n`Ukx6AT>P?xPIwMoa^kqugyP~yBSTukxW8EWqFm8(m z+5Vy-O1fxRG(vli8$$OchqCU9*3k)~^`ubJU*uuYsAvP1B^ncLWIq*c5^WZ35pCs= zMBC8UsmDaysoO>4q8*~0q;vcfei}cOpH9l<7;`$gTPY`aVf-w9CNj-hL%Krorxnwp z(TDsTS|VLa8Q|wK2}Cs)<>zzx>|pv4ei6-;WzCM_yibc@e#KeKFF~%c%@ys64!Rp- z3y04>#{P@4m~2UmrF8f9HD~Cw3m;EODo%pKk z580pSP1#?vzZw1X+mh>&mq?||D3O8Uq2hPNZz2qDZW?ysQ7`Fr5HhFicN}f#SXToVy9x4 zVz*+CVy|K!^()1G#R0`Z#UaIE#c{<6#Yx44Vp1`sm{y#ke9rh(ab9sjaZzze@v`C- z#j9w#;x)zVikpfz6t`$g6mQZ~WbPD|%!5v(x3PbedCI(G-ZCGVFZ(B%zs!&G8*8;} znJiEiAPbTOlYW+kkoU_%WnomMY&pqR7A}jBMarTW8)eb57+Ea+qAWr2sVtSeL6#;< zmu1K@Wm&RpS&l4^Ga}1XC};)xWLh?JnEHuqsXkkurO(wDC|Zd>F}RY~iBv_6qLyZ_ zs8iG{8WfF+CPg!&ThT%bAycF&lCgCH($AotX z?-Jf3yiItI@IK)-;RARrJOB^E7Vt1U0 z!n@$z@E&+Cybs{2k;&E zL--^3WB3#JF8nF{8T>i?1$+#&KH7vX7|SQa7KkLW zF69m^BUBol!DO*HTpnK_6p8gDQeesID^&)DM#d(lW{Vb^FR`$+vbI@jYiIA^=;Z9; z>gMj@>E-R?>*v2LATTI6Bs6S!ctm7WbWChqd_rPUa!P7idPZhec1~_yK2%Uxw4%7A zw5+_MvZ}hKwywURv8lOb<*L@U_Kwc3?w;Ph{?%*N4h#+rkE~lix?ybNrp;TnZreV- zW9P2jd-m?zf8gMu!$*!DJAUFMIx#sled_d?v**rVxOnOEm8;jTzjWi}S6+SX^_y?p zdh@Nf-+A}F_iul2=fjUa{^ahbpMCzty)VD|`kVU@f%+Qs|Nr~{{*OXvfH;IgLLwoP zP(kP;v@O`G2dSV%kPYMvc|$=^B$NncLWNKT)Bv?Xeb6wp3EBxAgib7R>6y48`v54hJy%^a3q`vXTpVW1>69)!F{0qZ31=dAgD)YL0x$b z)Q69N%s+sCg&z?h0)@aK=n+(eMFbmyGr^niAH6~_(I>2ic0uV7gm&Q5{b&<5CA^7N zVN+xYx&oi}quKcMJ2V-aqRY@|e7Xk>!KOqQ^~I+ds4G6bgxX?Lk_AUAjS2Yu3p)t-{R{6A@cS2e67c&MZ6o0K zFM2}2?_Zoq!0%stntAU=tO)r1OV(=MzvKr3e*e-S0)GF} z{RI5}Wheo^e_1vGzkk_P0)GE;eFA>}@)iPq|ME`=*!?GQl?3emlezP<(1 z7#JmB_a6mxYa28Hg#me!LVKYwLOTJw|6s7ZTc?)i#1ok(sMsG7B0*$`@}GkI|Ks_& zp!@|uI}|}Hpkk;5Duv3Ra-b_Jp(>~vs)1^uI;b9Kjz*{nYKB^%mC!1v73h(6r~~SR zx}a{T2kM3XfA#Nc=o{$1Hp}*V=m+RW=qKoB=ppnA(1yQ3ze9gOe?osje`A@p|H{FI zVFI3qON2=<8R$(cQ%&T*VGUqI z*a$X;O<+^l4Cvd%usOU0ST_JkK(@b@uoY|#wC_^b7Pf=!VF%a|b^^NC1$KqqV0YL9 z_JqCg9A#hFkFcIFO4vXcBWxsWB5WpXA#5dVBWx#(6Lt`G5_S=G6ZR1H67~`H6Alm# z5)Kg#zxV(MM+ip=#|Xy>CkQ7A6NE{^6k(chig226hH#c}j&PoEfpC#4g>aQ{ zjc}dt65$5nWni(rN_dU%I&QIH)*5D|Vb+?~QX||Ue280cm^Jq);WOO2o1feL?f;qG z{TJcy|H|(EzyB8Gev|({$^QO-oT>f)H1oRzE``hBa?oy8!c}lJTm#o)C57wYdeD+K z!cA~9+ybwJSHZ3L`Zl;7?tnYtF1Q=+fqOwq+YhgX*C2+75n_y(Af|{JvItp>m?KLN z3&aw!LaY%RWGP~c*dg|a1LBA{Ak;)=K-?uZBCiFhI2h;GbI#24{H{E=ly01}7< zA;Cxp5{iT&%aL#-0*OSTkZ2?ZiACa&cq9QyM3RtXBn3%D(vWl{1Ia|PkZdFe$wl%I zypI(z7TKxJhlYS=*bnr`S)g&=0JX>q)Q*o~F0=(`hT}kgTmgFK0rVae0aPW{?*>@D z>LV10bOdNkGGycp96$n$k`aiA5)cv@hOFH`b;mxs87|j=YX&|P=(Weg*s+hG*GLtQ zhcWH@+jA9YPwoNzY&C@ zjNMk#mAdv+D@?@7_SJJ!!hYy3(B*t6dV-2rTYJ+Wh$lo?LaNQEQlIlP=VzrpbcO_D z=DhX_e1Y{DX#N$z3hXcrnZzJNbB8UpF|id11tcRwQwMuTv7u04XX{`OznaybzK#9hyCgw;5cy06ew*1MXcQ?C}i-3opc%^zydO7#@&4a z>)Sd-BEn=YxIM_5jvdIPFd_Wne9q55^OgD&WRkVJHx(wL2mvKwMdyiK_>(Y&1P%g4 z6LQE7jt)i+aNMnout)ExpL=92Ui%2#R6jVIKk_R6zLF*o0=PVOD!dF+5G){oB21w~ z0SQd;l4uHmGRZF#0K$q-BF-L4fSJhbAxmvwp^*b0d|>|z7cL;LK7Bf4|MV%iW}^CY z@(`&9w1q>^M)<^pwG}v?#nhhUw3(?;z(K4yV(p2%=}Rp*3>t+5B*2Pu75v@6zOH)H z7aJQY_2p7M5l_I;t-k7QvvF*6cyM6tn%>U#)~4F(vXbJWg1nsUtczm0lwZ|9_}tq4p!Dyn!nlU+|0bWxj$%HsgELv*xG%vq~8EFSW8TUufxAvyPdIBDYMI#X)2EMz% zThI-|qr+=@yR}b-F)QHsxlX}F4l4-Qc|eWwW+nRPWh5uY2l)HCP*dHplUrLawGlfS zI~kaf9Ubh=#9{;REwUpCg$A}xB%wfTW@aEl?MP%}gew*s8G^mIB-qrhG$Ly#z0Nx5`Gn_%;D? zG>ju}pZVM{n(R$MvyB>Ij;EK}4n-{Gst_VN*$97Y;8>a=Hh|sU*@vLM`UV~d>Dezn z@y;cLwy#A+D6uHyU~S`p4|?RXWv+qmK0=KJgquC;-(TZ%Lc$gSgCPC=qLm)w6RTzL z$*A1QvW%vg`_-zeEilDOBy&WOXbW?O!ZLruG$01f|4scY z(vO6CxyvL=C~$H|Kp=s%YlI%RoFd9jqpsbJB7w^s^<>o)8>yZ>VK8=auqBNWma`;j z1jTUYo62P*^6cfOXhejJ zUF;O>Vg^BraWyaSW^iF!8&g9bmt;IE@YYiTmZvc$vr}$TFHdY{8q?ff*dc;x*j1qs zY5t^2rU28^z?-IUH98zqQ+!8=kBc1;Ly`~y%G?M@m{;l&}HUV9_SnBXLzrd_Lie`d7&m$-YquBhY|jNMA307POy0+jyKp z={}~eAf+}Eb~HK5mIQVi46b^Xw6S9#2<{>XW`07N6G2RhuuQpRBP}#sZ^oi~G&`R_ zK-LmAKVYeEsP9nKYi*o(R$<4yOmCjfEJyC%%us&_+hbl#s`@kXInqktRd@k=z86{p zUzxD81rOWL*V=u$AU`J;m#=EnL!Z(oj9_ga`387L)U9*ZEDClcPw?#lAg6@_^@Ss5t_NehH!s;731 zFZOoMw70H|2qyNg!Cv1~XLV8t{_;G5D#o=d-WE*v^%oXkC7(`74hh!X!W3xfm{@Up zy3qnKJ-udiejbVh&$SjbI4L0}BGknRhWN9s1>aj}1;gM5YO5>Dy=`r*EEX{rYEeE6 zJJ^|N?nx+s7U;!km`u=$&?%Tl2ko#%7=aDq>5fU-tPKLL4fN{DQeyY4Y)<+Xbc5qg z!7H)|P=V&KX*efuRwDg^^YG0XfiM)T*$f2Im~UW6CXqEd69}NA9SH%ULrhm<|Cmz5 zG$L0Z*6319%aTp`wodp)Q$EDy+MAg=0D%Q((8@A)5}^>E63Cd|HQ?GgIgtru5fM8V ziHNCJQzu6!Qv|z?Bj13-2eO?CbKX+_$O;i#qG+Kl97@ix(zpIgDlBm0Q4LHPqP!L5 zj$v-@g(MiUmnfWRNgd?BV-qb|^X(+o!K@cOJ1(PIFSlZ9f3*7A!8L4R& zO7$P@-D&KVM_z|n=?eABqt79`HdDj!ozK3hZHkQ$Z(iv;a~IfT>L&!RwQwbsfVwE; zE))v!tolqLi=CGxqFd;ZSz83vT|!X6?U*LrqyCCqPih9fegI6@SWe6QXJu0^xBg8!OW#bJb_kKt=$9qNy4a zKHjrelu0$U!P$xAt*g9rc$uk*5e-ydO%=GIsRKYJ}p{XN|5?JP+1YXdk6wy|1*%nH63H@?L{260)l17gP2$Si2W4b3ps2@Aw1(G&*l zKh}Z^xtM@~hMX$^d)wj*K<8rm)P7G81tvt~xmd!eI46LQqDrr9j`|UN(OkV>{m2?& zq(mHt4!ep}UY{me$!b$g!ePbpfKNtBz`2p7qstJJL|)K#HyBa)td z4BM7xU3oi=>@J4gmZkWTXMXR0r+T@~_eN^sNz1A`D@;EaNZdtiUI{GnAoWM&)uc9H z7n=iZ+6v+!K%+wI3B-xo8t~B5)4*3(FZk+P1HRS{X!YzwWW=nF?deWU;UjA>g><^D zvv>s;sloMaM?1e4dsQo2c(~pzD&(hW^=W;;-;jW0ke#k{S*!5);cKI9JcC zY7PlnN?cKc>&&v;!WFpAbg)fp$7W7vCV4ocDZTjCxR{m!Y~`uYKu=^{3%+idcLc6` zy?Kkx3{}8r24cr$(t%M;fd0e4J-v4QilVesqIlMtZEgXY*we#y>0D#d*WcDoL{jma z3koE*fWmuI*R1aC>Fgj9L-5tBR+5(L>{*ye*T^IPl(#dm4wh;}(_1-Qk(~g;>xKtv zsw&Eg3v;tG(^HZX;$k96f(1$%{CRU>SbGDY;IsvD$$(+(rYOYuk~s}Grb1fX-QBeW zX-~x-$7F2>_ShyPLOQ@?8eUF-LbTSxvOt|~ZVALU`YwevYk-Ssj7u(1kvwb$=x8Tg ze1Vti=!7i-#R@D0Fl!3)xVZKPbwX?l_7UTDE)aeJP}v5!wSg^=$e`9}RJako3A2Ln z1)*S0w`1osa4-n;*r|6 ztJ_Q|>JKUA@wrWO(b|J___Ob+MJ}M08!mNpE2R)jK&Xr2oycUSN6k3Xc?csiomRWg z#7ro*q3oqviNuy595zO^mq=}Cb|Dm=8|+LtI}& z3k=Eqh=l2_RDYXjG!%=d;BABE8-rkEyG~n2PsGGWaIcq5qEj1w= zJhqK*l7x7^>h$aYtf&4CmZ%?qX`^~Gkr)H(gAg#31vK>`QZ3NbaUeok1p80KL<7^jSfl?s@#seR?TnwOmi3s$+T}WtxMg=@c!J4Japb49fq@j_lGW2^T6xET{d7o7|z)z1R@F~+Smjrc{3HP zU2SRx#9m3ziajp%T%AbIpEbk{4$v}~!j77X0>m9j?{0If@XLAW-L22Iq(!3Ws$683 ze^!rrBM7JdlA^EHQ;(}(Rl6DF!?)F;Bw|7=VU5V8u#8M#FbPCLzT*Ijh8C&)*se;Y zFY`IX^i(Q6nd-PK|EZGj^1MUFDd@W>p#6kRBXCS5jRR3KyEXI?bI-i|~UtstXcbNu+dZcw9~2 z^|qaU_Wh+Hu%6*EdrI>PGn0gEKo%FNzaU>Gtpbvm1>$EdaM5&h6qA9!d0ZYBFPc@V z!9fB(7h&Mq6POQ+<{I_b2sRy)D&Wk|3xb@&ZPrCvRVs3kh6ea+gx1Oe3ylc5Tsu#V z>+a3R4d5zZpcfYv<^weggmz9qt>5*8KC7S6$bkr@rq#|n4G)58EE zkWf0dFbz&hD%6FoPQ!dIn>lNK^Cye*3o%Dhu-pdN;FXSONkBm9J6%n6<5|2AVSg&k&Pi zK8Z|N^hHTWP#6^r2wTT1sc>tMI>l1y<*9_`t`&4@Mwa@!!p|w81r{ml-wT)X>0U9d zA?{8k{PjSMKMbh zo*Z?rXi?}frOIrq{@I`QsYGIMAhJUJk^1{O^_^egbZ=JZPNyv~eh$PeA0ve)gW;`G zdQ+brl{vkm{@B_Twg3Ui6!jeR%U8)Vr&!;qGi5b z9&S!{e*dwz*5zzQYFaT#n6z0^gSq~7Rh71=0|$>#OvlD>*tmze%wJ!D&p0_QF`qMV zqN8|R6j5L$^`=%;W@VxXiO9wcJ3n8Q5=G2)H*vJMXOeKg(99S@Kn#wn)z4-cM>FLX z++VNG=(9INQGxSXI)SNf)%RbHqDIc)Ot?wyM2J#4plG%&e3ya}qunEyz+Vsw&6l94 ziDj+Y93EpQdoMy!!+>m_x|ZP1D)g~Hkfol5jG4cT#`Z^tq}RTA2~McAH&TzNUvt+B z4*H92aPFdmvG4NFZ+R8j!TjT7#7(a6hL9&vqKjPNiV`o85l~~CXq5~Lp}7EwatYL| zK**PfsAiW566&TecSA{s_I3A%TR5H?T#{VQ-VSJxWn+XocB(ieqt`4Uz$6qFzM7Yc zMOG5j_sGqpCO~e30fo(gYT!;yR4XhLd?hD=uhJ5oHL;xMpb6^oLa}L7q$aGApT{fF z`F_r}4nROA}}7}|OorXX5F+nX+cJjF2>TI2Q8Y8xROUZ26c$ZH7gwLBNBIMNNc2&Orzo#5Z6kC#~NK z+66JD;`!i6+?mB!2{4b9Y?|=&!lE}ADN=hB9dbEOEe>=x<$X>sb(WD)8Kv}~z>F4< z=blbhsQ)tEG_z>wDk1?vqc+11=a#`lBC>tCxc z$o$cye0wR(>PZ5ZfWzC=_jyTfJTiI!PJSv+XhBj%kwyXf39FucI26Zv4oNH$h&vqD zDYAAvNofqAf&%7X@eKdxF!>_!5o86qK(9(rnakDqCp<|PCYc`jy# z2?YetvpFGuz=q%Zc;+MfO=DsdeeEn7WS(u8kD}{M9{l4QKqe5qja18s2u1z5x+EBN zTOPV%_#6BiV@2kYI1(jcNwy3LQrD<| z&LBiMx~C!ZztLJG(ZiieV+Y-j~E4F5Ih?Bs|&xuit!O2U@| z)YRA8Gy5o~qaq`Cj+ns(+Acp{A|6doNXA!94-F3RdUVFvq`SQ%rd-w(4`7o(AFQ?X zrmgPoT-n@MQ&HA4_eM|0gnD_RiOIN!T-t-h5WJ1?7B?d;1q4kkEkHYMXrM3Gymu}K zYpn4A!hhj1>xIi8>fSDHoQ=9er@+zRSWHV98i22e@L5}U&1&#fRyx}V%QaGio0*^l zBm>R8CZge(>Pk*RJvGr_QmIabnd)Pd;xvpEea;H4C@$q-G(ikWX7$i1m=8)%nhSRg zfg7b$N%MW4Q?QM>h0ZGy#0A4~F;S7g_y}C)@8oFD44=iW*49&g&Pj=Q;05+^CqSOF z=WT`I&eoMRSqtn`fRo|Dfxg~mAoHs=S`b4KnwHy98(pxoo3kp73=vzgcutxzLle`1 z;1~yOxK|TX&;<@041}6_ERd^pvOp9LH)kD*n%&7bVG{{CM2+#wF$3BaJB1N`+E5Dh zKssFNZIV}+=*JM3^zp)o#4z5PnTbBRzR0GFu*A4RY>iSp8N)O0`gNkf*hMR1;Fh9F z2E|XMbfc-4Q{44c)$mDmWOYoanP*&-3bs?(B*)3^lL<|cnXpl7vAdPrTR z0~a0pcA4vQ(lrXcSKta4Qn%WE+UCpNE?rc1?=YtVMao+Kj`Z5*O3)>TDuij0dxLFeJqzUEYiU z7|xFfScWdtxg5;z$L}#Tm^xozF~vI1>vwcA1Y%^Y^@B7d7xVTp;hGI^0pY_fN_;K0 znrO-ws~{{-0|K!EzN6Oh2V2R;xL|^)u&ECm`Ih?iuoNmSE)+gsVes-kUDeq9xC zEFt2R$aE|9+iJGj#?1bY#~Y(kJeU2jW1oWqK?(bZB{;@CR4e^W;M;9qvAtA=e(bPl zWqOP;oEc)aB+EZM#czqX9lN=jwZuBq+AKOk;9;V_3?-0;>x=^GDy~n>Jc?A42r%=H zKqpi6)3@AH2;m{?wuQJ$m#oVT4xb2z^Zec9z84PY#ewK@0f+-^1gy>jS_Sn%YoR^R z0q7KTj!<>l)rH4J2w1#zy1XnQ9+QKUZPvIlJUL{2a*OrE>2qLqLPKr6sn%AeCQ=E9 zNWc|ib5l4s9#@S0Yq@QhLfm_RJA_U5@8fO()5*i!bDWu}vuC&yx>lX(4w^taAqQ{R z37q+!lQ(^3UF340;(WY4!{$YezLoBHFos2O>%rIQGhoeeEzCACHo`0n+_^lRm=L}kMZB^3$zI}WaQkc5 zpdHvl*|`JVhfNRcC#}aG&NT51*m~|PdVH>eVb17WGcOSvw-ywqP1|fFMUr zT>_QH-PHw9MNF(CvxmK*R9fmq)UB_($JLWDpd2o7ex06R<=(r9tIy!OZ%xJO3 zkOngvNT{`!xSF;GGn+s)#jGh?+yjIiVcoH~-)WEA+ge9cSM!Z99}=(n!0ei{x(J}^ z^Ua9B76+@$>>P}o=95mXlL}7n1l(C|G*O!&g6&*TU71eu<(nX=G1pm;j*`mjecS_M zSY!uQq{PQFS^BA>`B9^8x zZD}Nv;x!MLoRJaXxK^qt&&i$(jrcC}^x+^Zyq;NG85-~qSA5>z5BR@`6ps+DTG^5i z&jEHCw$R*^oRr8xv*#iv?mPx&JF>K)_N!<5yP}te1OYN)HJSP{S~ zBj_wtEPkYo4H;;HnVKcM?sCOKO*jZ&(lp(|dG*%8fQ&&XhuK<*$D4HdUk(oQb%3tz z7tZA<=*&^FqX)sjFouEd8zsoppY(~7+2q3&gaeoK3i)VbgNyo4g6)u^fC9&u7aPyK zg(Az0^gW3Pd*=JYa3r$lSsM0Hhf~n_#KmwvB|paqPN8O73ycln{Ja!8#aR}nuik>f zh_}ANk*?kcII!HAsva-22vRDo+2iD*1UREm7{(yS6{vUavZ9d3>FE~MM1*`w>ElI2 z&G?CoQz-oAw)VYnvY)=fj!ySm&UT{u_=ZFUGOU>d2iGLNw_NE2jtHQea8z`PkCnZX zCDWWtUc|6*!feNI^_S!lk{2X}^r0{)9d?*4hel$gueT3laPUhNd+h6jI1%D>uNo zR(M5@jhQWpNQlZYiI(Z(`Bzh>CKM}dnwCn6(Ro!g6idg#nmW7$jt-KAA)slPFVv#b zX_yT|a=dArWRdkTKavK!I@?+(iB@v~&qYQA$Yi$FN?x8i*HFbr5uljahDyu>mXUbY zTM=pn%7BA~;ept}FNEI>NNnKdn_%{+h9sF8lCempBZjPAjMW<$hVRc|rnoE6u$tw7 zbOM>F2!DDkZ`>aaL^GaVqR~q%k$(~@D8$%ewYi*LR4a}mjF!~qc$cm|m=bDeA9_uF z@9Dmz!98Q@m-GE7w5)Q%_SiC%v?6XMJNFQ*51)cB5faHn`cjFn_+v$o)SjV6XZ}&Y z5ktzjckk)003+jI9yiL=(1<C~npZ=CvhAZAw?4vD;r$Ffnc54f&`Ok82be` ztw;d#g{-lbfTJxJ@wGqCX>#- zTc@$mMW)oS!zj*naE~yOKhTNhNfc1(oDm zEP?;XZe_4rBc9yKxpWpdko|cX+^%M}Nna0Lx_OVMfk!1)$iZ?FV zS-e7>WzLEU1^{i=jSS^1pc+%9xoKJ0DsS;J@aCNz?d`CHHuJ@%#+V5%R^J32`xV@nYQFG+#X1=D9cnu!o{}8$M-cOIbXZ6bPFdV{sp?S&Zk^@iPKp zxU>j(j95g(kM;u7}@TVm|}`a1_X%1X40t? zvYSp$|1GO{Lm2Ib<*`p;$rTz&#ggl%Ic(4{>Qqv66rMVN+RariLlN?vc?pA~=u{oP z05KA47>;+ew}xH_GIPS=@UWl&XRL(!v?yIxF$m%r5+L{421+HC&AC;4BCJtnE&>pK z&X^Z|24T*{bnCg~;#oCjfQWF{#z2dnapQ=`*Q5~<$Rf;i5{U^$hIkq#5Lp6ZfXOSK zRwP6O#92RxZvZ?CJXHd3-pouxw$w|eQ{h|6HK|4v*u$r$jZ96l?6FqAZ57|oE3Ptk zNUgTrY~sxHXpd@5{3!eWlxq$wd8Nm4=B+P`@(ldRD21**28ZTEhLA+++o&*kbtL*; z>@rgu&%_v>_2w<`Pw?lfchTVuLWi}k-DI+hQtkmBwc1ks2;O=z#8S0U{p5q3qqmnW zQJ=fI|L3$so8q704e&$tcNByeXTFT9PCqT+(IN{a$#9pW`h@z%=U$}GM0R0m%MHyf zt1xTHP5lA+B&iefhI*k5&}R6_1eXJ>au0U`*0}<+uJM3KzxB!C*#L-*wVA10rVW5h z#l>>Uu$Cz}NHZPV%<0Fbn>KQW=Ta!VoB^%C)0#Q+`-^aTvVpB0kC|6^VoWUO1)4m$ zy00IzeHiwZOBQ4H7C_aq`C8VSgLSCDz4?k#;G^V}ab6(OlOsdJSeRpU{lHpu<7SOF zqL6C<^h8g$H5SCt<~iqNgRilT;A>#*tixq$0+ceMfzK7?u`$||=hG`&f&x*b8=o&L zjgKQCxQjIff+-uZ2e5e)x|XA>6Igx{cdkxM4y|5`2XGuQ&|;4)tQcI_%fsCU;FrZ_ zMr1rAS{qn|m3%tT&TNf#2H^*vZbVl#T9-jk;B2L-TOO?QXR1~tN1<^snlz65bOMw; zyVpqH`gsW(j{JpT30#G%Ohn>21^$Ar#&F(jXaTDkTGel)BjF%wupnBYt%JDE*PhZ4 z&-SpJGamSS1j|mvlmCs#W*~y@_QmOSq9Ee{5-Gqqls~d@rP2zvg|pnk^UoGWcu*+O zp1F3512Y2soO~##hf?VQP*LMP6T%pUbS>)3(qZd36rD(^S!%?n+`R=w+m6m$sisgUuhm?t_=!UKqVj6LF+nu*1I+#qK1oH1 zu5y(dicsKeLseYV#*`>ab&J4LrSKH~%rot1)LUGUJ9CgVnE)t!nsu8Ep+Wt|&-v;w zFMWMyF>FIY+!S&r#$N!=dn*mS!DT4kN&_(ci{Yv-b3rNUcl10|ayJgz0En17gQ32r zKFvV4!(o_!_^H1Ep3NS7EP`CvW*##%G~moJL#p*60Ed9_Ifo3r>BdTh6f^)V8ex7v zl1ZKcMh(67GE+d10ML~%U`qt}1G@q5on^Pw>cz;p^{nlJWzkIp2F!I1AYmDF)5%Gm zqyQZPI|YMtXr-P%8SEc`$vn>#hBIR#!(6c36GPg+dIKa{FEP-RmiJ8I&O`biEiwA|ZkOc2E=<749A6=Y{jd)s8BGKb;F)45| zH4#|hQE?g-@6tFO;^r#$nM0#QJnTK??`7eG$;Om`%_ZO+R6>;^CUDyHaAoCSZh)8= z;c=KC4_6c1PF?C_g{9-;y&^-=5OhJW$Z1y>It}j~2s|mw=f`_N&2|OkYV!5*9#6CR z`WEJ(QIX9N9gW383xIGjcs-5w@Dp{QUlW~M)!+cXNOG?VF5w##b+VbE!Ew2x@~8xL%hp~L4GqBRsIU4{ zaz2m>JID#@BIr#lwE>S7!v&K;So~6xtv+2=nv#r5Np237yWTV_CH4+xrd-4ZmlEK6 zVYqxMHinaoP5u2e)95G;)+_ULO-WiR2g$+r_4VOl88Xuy73I99xjaW(EASE^8*N)Z zwOo@sbM=&53@luU#)_C)*^t$QOBX^gwZU`s%~b*(>S&6+xYH)aLM|$C!~>QAQCLT) zGoA4f%e;s&cs%oT`-+T2G*yG-^P6(;J|Lzh;C`@x zo}6-YAe&(KQ(orhiy|F(G`6%P07Ng*=(&I;7uF;($6_%iI!$9ZFR;t`-aHF^tm_Ae zF&G0&{)POXNvQ)?HBQ+sg%BqPyu1>D6V4pP1WkAnH1+IR-3hn`trZ3~lQY_(6Yr^J zSKki2mx7?K5Z1&m3-g08iD&xj40G$r+-QIN#32MI8b2}6y*UeWK%iMCkZ7W{81M|C zIeEqcnnt?tCf=2gYsZD>DhMzjjOJGuyMN8h)(j(jm8mxTsa*}CO}?;rSzT%nh$`j5 zRlw!S$T3g52SkbKpf7VL5YUfN)I}z-rVk5YtB+tVlese4@UvH{S)L4TLyGx5R!4;S zXUv*(W3r9ZU>W7J`ye`%vPfyI4?_P&0o0lAK6)b)7k`Ae@9hvCwO;~w<1uUDnNpO6YR%%2bDifua-fBZcL|+pEe-+{=_VH1} zgd67WLL<8wAA+8@oya_K=Ac0ynZ4BN*$?n7p_9Org*f@E#nwG!nm=%&?x{Z`Gf8Vf zbTbl)g%Y7uxC__QC)w81%lrj=++tT*Pgq&b*1n`vxr~SKHTjfriSBNT%y>k6aVjd7 z!^VU)C7GwfQ_>>w9#qo_@vc0}Ifbq1J2kmUei(ej&YH5d=DT9t8$y(YN8G#~Hd_FY=GthZ+&Ztr*(Gv+cyjfGo zo9hk3!I*{P?y&TQOuA_}&{Z2Wo3bK=FT?N95{U@Mb;lAz78#{eHCA+VRI)CF5(-qJ zm)HD`Sa>ohX2lw4Q{?c-JTe=YH*nGjtFAgY8O+Zd5tFrvBiIMlPQRg$2xxaFd{O<) z;cXO3`zkn>R_L%;0LO&AN}&cBHJhss!n@ZEa8T6SKVgN$M&cC6DJ*cdhx?olOjV3$QlSnBVyUj}yWX(HP1 zpgyYt=mizgW#mQs{PrWrQ0!65P!S5^7gYEY79L?!zDmil#zf7@k>`O;LxOp_zV}nM7LYZbn(2aPPff*z`3K`M4K|jhrYGXC zG^tNY&cdL@q_>*~mctnl#ko3V&Qw}!L`yfg!IV;;#GE7Wa8yKiScsboIMckQ9}ldt z17J8VI>6t;Tt$8%D^3dATALb5^+aU-dC>|REV`!4ujF8P)S9k*cz&fXkT)Q1j`sh` zuk>(Q7(e4{dPBo_uTVVLisw{ntV|~-1FkXdBau-&A=pvNgB=zq#d$fD+Fnkkaq!mz zdG($i@ST9L@#mY@6FAYyOjJzjy%iK@9O*#hsz+hJFDdj&^`ZNGwy(V`Jlz4Uqi||l zENQ-mD%Vm6e{=CF*QG`qKO`fEVQ=_o5Z5GL{i9{sx%!)%8Q#I_jkyt$+(MG6$B)k@ z*5o^j&3&xacF}XA6?Xo}-qgt8nd3z!h(V68*x%~eo4)agdL7lsjd;re3&!{F(E6c8=jtMY6KzijP%eDZ!h9PY|`1m@xofxs!AtE4&sF?vi3G! zBc{00mWT0T<~)#=db_38jhYtqOksQ!7AuXJZD3DzRXZSUjktxm%B76U%yMv-v&q7AcvVYOM4&Y( zn4pU$``N*egAN&C0Ryroa{(}LN2ghIU^1__o)864i0?$wMGOr7O)!lN{@vPx=6A`R_m)Jx z=3|fHGcI>}NrW9_azqF$VJGk1aJkswE)_OT7Mo|nWOuoN2mc#S4>8f+{#z~xLwhi0%HXZ`Hu`4PGe0^f z5{d3+OVw?T`cdn%Br@hcfBPu-FDe0X_kyP!97Pt6>Kej2@QQ7obIJPv@vw%HfX9Xp zCxZp?aN}IlM-~@8Hj6{jFh(8+XO2?MG%*3sUe%~yAW0-l=q79uI9I)COR#ZIfXRua z0?bB?z3DOGVSxc&fGybj&eOtE0tSbL`)IL_3Ani|mo2EZCdQ~toBbX$PZKAC7_|-1 zsRFL9(=`6U@{6H);{t(QmzbFva@ZsSMK=V6H-irA<9UAoY00!nI+F+63`@+8tJ`y2->)t}*=U$qkN`F|d3xE3SSYs+)q~BgXWk$= z%4LqEnPQLS_H;cI&dnmrWCSat83V&@gJoGH+oC3fHFMfL!gr<0J42y|)}FUZBn1KM zo&qfxWwym?T z)?x|A3465$Dtvl+U~Op$2U&$HIKYnLxyTB9{@BR_`+3L+uCOPjc_Vlh$JFGBhhcuuF9qdE`KIFui$0syh?il@8hFfxC90(uB&kr0=jt-4rfhN9<6&_;3 zdxzqEL(wJw)xC+)hox<-#QNw}R?pvIa(wev%m$$nR8F`tSYB9y_x_$7n;yYT*h9Pb z?#GumZrzJX{IrX+wi}aJ1ir8s+37WF+gjt}aJ*YvQ&OCjiMM6@u{64qC&1Unu~`Gx z-w*5BB*Gt*uaBVtQPa(7ws-1Oe;*o$O$P^vnb<>KwK6e*h-7LW<|Oe1w(Zz)BA#G3 zJ%x_VQBAlS9~&e;H+#<9(Ylye%i>_Spk<-MZcf-h9VGMFT6Q|X%UFRb@$8;yIFtY> z@fPGvh(y4Fh&+*IJwqFj1Kws&MBltFCmqenG3dZtlTn`zLz%P5ct>`^M-Cm>yL;#O zwvi#)zIjRATi1xBij}o9UUH+WLOd@ODO1xH*Me`E2h4X4FRuzH4gm<8tgOd*0 zS+L%esEb+~F6h{zX^v*IZ04PEUZ~mxv(U9|kHLH&7qjEF3E&O}X5ixmE2GlO1C1>y z@@pQ!6r#V!Os&7;oBm-W)XUd44 z62d9aM!C0FxQCIbiA$?!u}j!;DGYOSA~`$FT`3eN%U$ogg_20VDbHRBfdN-gKUcrT zVE7~wmWSpsXiiFlKlG&lXa6LmI^CUW`0s?n>A_64Qs)ifh zv?L#_|1CBK&zy))vsnxxS=)gd&*TXX3S0(SFV2lQg))hdC0GOqOTfmuq0iZJm}5O1 z9OUk%b3{QTluW{WWcSmtF?O~n;x^xQ!@75Sm>B7tiW|VAV9{V$PlRBFNn%(zao(G@OvUIz#){{zJX{SMY0b|z>HwZ)RnVlOUMv2#EV&UC1wADV=f4f%jTEseit)I3g2Pfw=cF_1EOHq+-Yt8po5xylEC(d@LqB zS5ntpFtL0O71pMR08rsvou^D8jozPgIt^4L5vGn20!8P1p29k5&q5Kbx4(s{F|?pB zz!`Y4f{dup=Ihx^`$^>^)dB2_y{)l{o)D8&%Ne+cx(HNk!RhFYO zFZnDD0M_QTO%li)%uwToVAaOm!Omha7U7iY39VjqtRPUg{Cx1yN9M9%FmK%nxI0dG z!WHR-6d2$k;pY_cxeIf{F~cxq8Mu@lnLOV|It@Wf=}z;;C&OAAGG^D!8|(=Py$Jyk zXu@sRVpHl>jm$AjCO>g!SNchtqTV%UNY!D9KX^qB5EJ9`HvM=CGBL zI}plHc+dz$_(^c9G`K@eHf;<%2jZ4VihSn;MnWU(38fo-G)C>DH#H$SCf>%HLqu>>#Lbn1W$T`fhzUjus}1XDizjix^JDqtY}VnM4Gt4cRXocgsBt_2p=+D;|uqGEyOn z6E$3anZK(GZnDP2hKAu~jljy9fOX}=ypd@mLpEzJQoq!O#HSq|5YzVNChEy_j1Z=;Wef@pcwu2t^5a#KD{z zhT>-BVwx;UW9XOw8;YefbhMGgSp#EUPakbco}DH$Q!}!S@IQz9z*V^}dssVd&UYY; zshxb6GswjTFf+c|KT<>sOeFFHJ>kl9x5OwB4ug-WW8mZJXjq>*$qx4+WE$sFh8j5b5_)7YNvLnX`}ks& z`%R{;-cs?*xbt$_6vs!YbZ4rso4Qjd;VRgc>ZX*#B|p^tK6CtshF`HB;1)oi>?Kt~ zQfLVjfXO4AfrA$fc5-){r(H1Caym3TFodV&OCSK`rb$V`ry9*8;XwFsd6RY)7&e+@ z;0kEU+soMv^BsUD5@0#&e!h+lXix|qr*?7+!;}+!i8+=JZ;0ji%}e)%G&KPCuS3HY zgn0}N@Z3ER*hIr{hc}3X4?GpV93OsBJ1EnvBI5%lY3G2)IGI2(34ku6ypSmc><5Vu z)8=zJ3^>Q+dEn&?ykwCKS&ZmR31cMzGMLTt@V4-smB2}xAZ$3QN%!C&%!6@Tx*WSn zmpQXqm)2qLq#FTgLGrGN0hy0)v)6R&7Jy^GA;Q_NBU}RvVp_mPrz%>b;!RQ1LvHAW z5)GZ4ZEWECDB9YNEGgNBqUuM_-rJLpqLdYV@cRSx1R@bGo>V*YBO+S}IWyY{xii}c zUjXDk;A#Mr$&(wrpa26ZmF*v|hy39dA0M6gY>%IT(J~5UnW3Q{2)SO8c)D?r){p`O zoXJL&@oY4mZ=#Q&D7qicTn7(FT7_V$8!lWou@HIO3ymp23qdecWB=07gK$ zzbr~;CvYh$1t=pkQ-yp^8S%K9-VGqKh569aO9Xt9To=d$QN7?mcUKcE$#^bKf-4?| z4eW>|qCzC6IiN?!doTdyB4YEo8s)NBs?80@BYAKrC>Q!KXsxj*=2?LAW@jTK1~1|~ z?MOnJGzy~DnEW0^!^6;_r^h{(qiCWn8vV3qxetZn?MAR<)Yv+h!IL>@RJxza&mGstqrPLcPOM08$5^&8&h5MWiB*WLI+VYHyWYTcQFGt_MX|u z%w6^@(!+sCH{i;c5k$4r--I;W?`+_FF6Yvhe$E4bc!RfIt-ec+C)MNmz#VYaw17`U z=f>A*X`UN(#Lt(5ptugn%H$Mk#!lfi>-=a=iXEOwi4DGq+4AW8u6wu}k(-u@X_fZ+ z@*2EC^AqDE!$N}mz1*=>OiL^r;k%ITYUD;UP|rkTGw15$5?>ULB}7G%h&akKvYw3( zfJgvB#9OH)=5iScF`DbpZ)|A9!4ko-C`RtQ-6`C0!OqR>g( z=S??yiXB%oW*gs#yZ{y(XkB|vKLTtlAK-uh*l0I@q!i4p$6OIZ%m=Y|(gx~gMN<6Y zFcRQG)u}feOAd>IVkIbQ6cr&DFIdwcGW}-jhCY7;0WkM35@|45y|pCB*D233!GRF( z8J%lhbRo2m!IOKe3ELx%jL}C?lW;%&WRk@3#&sd;0_|eL!ophlRfm6?i62%3AkLil~a3+ zbkS<{doq6$7jp`as(uylX@$%gMbzK1$cEe%QMHz_u#KT!QRRO=pBVjZ$5LIq(%_%<`LNLLZB3Bl&ApQtjS2z z3~mMCNEbI2r-cFy*9G>M9&ug{aSXZ)Zx|yq5w5scG!mOS*prBJ9YPf{oxcPGS`g-A z1BZnK0#nNkC_MtiST+|k0xq?yvjjAhks9fphLH$e*BBERB5KG7(0*7c(S^ON#keHl zsgD4+X@j`fh*ezPY{UtNau}7+6IpT3i%zE3Uwqya^5Z(j)E)V)X^%qLN=7i#4vWwbMFWDnF4@KP-Di5+c z2SuFaN&-!t1@8c#o$5?PlHevM`x(YZWjOu1EFbNxibG(cPgSBgm`{&>Z!r;7r^5#D zGgBkW+s7+M2<23ZBS!DAfitiSV4Ovm&SMdb z+Nz4u^uz=}rSS1Jbbn{+O0vD2iTSP?$3QOArV`ZE&L#Geh}v9%snQa(c3xH(X2v^$ zwthiY*o!!V0b4FMGo+yeGI7pR*B7vW^5e})Un2ySXhcq)84Gk~Q&mM#VFA`fF*zwA zHY&o-n!j);Ky37?#6W*{H&&!`LuRiO~>Kcn50%WVzVe8SGwAc#ZI$5 zCrmV>W#Z|IW*SY&f5GI#M~5|-9UT@&7+~jav19ML1fi?a1NeZ;mhnOfgtAKCn7{xO zb#gTd-H}BhtKWFw6C*SyprtFEKBebms$kx-B+y{N5=#0BwxhYR(9w|oHwhn27$M%Z ztA;C^V+Cosp2N4)Ns~Fz3FL;v9F8mD5lTRvWO65kPstIa7)S&eVIu`XZ3N=UMb^OS z_4UC82OrscB>*5No3!mQ7R=`&KDYptm2wto2BG5EVjbJ-xT`obQ*EuBCY=XTy~KDC z?t#?T)?tmkjV);Gn;WqdwbP3$EEglCi!>R9-17XCay(j(h5HidnWdUx1i_Z*K&)SD zIBrxrJ2Jd{G+QREY_VRdlP#^QFqOBlnPfQ#d@LfbM>$+EfUf7+CK&728Yh|At_u2Lo2jBd2KDd@t(ZRwJmeKARFrm zP{UkzeJu`{9mfTr1U?AtYsLiEj{EJ%<04M;C;&bVmevq45dIgMF!&dYz-A4&d=Og( zRt+B^njm}=1n}%EGP*V}Xw*Kz%E0PMpSN?AxGpd-AeB!GAp4V~{&|JFj^`sVvl;|G zLgT6FKQn`zq^^sX>Zvca8pNV#w7h4VIGRMV@l+RkEhADB4O*9*q@$>hRhIfSn8M0w z35O?u$Ha!&M56j>-*3pW0HxA_OnG*_A}B5B)OV%!5vvG?31>NO3U&#-mcCfe>F(q4 zBXAJh4+lP~y~JQ7Mm#A!7Q(GeCKKtlMa00j$XMi`{0iA#B6pxrEcFx~lvl_$BDo#q zO|_-^_kX@t-#g_EQ(**V5D0)%{EouC>gSk#B|t9f-$4|%8FGX2;qVCt-P(Q98ylWz zUIx)=D@!B8*_`8ybe<=k_mP?+h??gvxjKun3V?|}oipFo_I1ZbmGx#h*xO>gc=5h_ zdWH+Sja;3K50Aq8XXGS>;R6m)Qqna8WLR2QYsPq+4hvo8KiAk98<8xqYG7!G0q{Uw;jT;Ml;hE4aLk6&<3yKm?r4DTswmj!l(plt5${X|m2_d>9|r z4Rhf5d5LgdPDW}S5O9ZI+u75}X|78!-mQGLzqtz>lTzCpqNE9nR`;lXol2rm zBtZu_guQkZr4(}2;ByF$FSy7e9C1|Fe3tz#yfl%jep~IUcG%+mW;~gJwrwMD4D5^Y z#Afi9YfFLmP9UTh2N9o4gBfq7YV*g0Tywd1^P;ff3OmFLg}n?EUMQ79US?q6#Z=#> zC!32GG1ZkktBO^OQxEs5zgdp%DYWk^qAf**A%uIrGS!Aa%XK$&c zwboAY7GX-;NYkldZkQtI#l97@0RlY1c&W`IvpMNv&?$JBDm4ukhS?OZ@2Y61y zSZAR*8=1WfhL`zzyBjH?7gE@GFpL!@$Uq^b5)t}BlEfm@=d@&)v+LY~J+Ph4bV)vr zj!qgW;4K)8m<+<=nju>;4K^Dvm^bPxW}OI#bCw5pb{s7YMsj$0qI~~oTwrNywnRPN z(E#kxW_WFU86{wQdFisORMVmTzeORo!;x?Tr>oqmT(rakAW^3x^{)~eX0&07t%FLv zJG+kRl@ywuT@b&N+kWw7^=3nl1AwPIW(FE83gI$r)gJ2FO?wI#1&w{Jem0YZe#U~^ zeH|obUg}YK4NJ zm%a4^eLX$gT(IcNlEoNz!TP6RS_l8pr2iP+ec_A7^CD+^CwR;`JlOf>UM8IY!+}_C z<$@PUhcTCngpwG#U%U`|FtFC2ErWgCToxMvLd6GuyoWX^21^TDVrFWfe6gc~<|lm| zo$%lC!5kZ7m_#J$e(MJxblTAgU*ibjO`r+(J|Uv^r&}ED2qZE}G~GE71CPOJ^=lLS zn%2HnJX7ARE^%84zXKb8t3F|!ChSo%VIKTiL0g1JQS<97BWGBH7vd_9!yd79Yf~}^ zS52xbd(>~J-^#BH2`0#?<*uGX7Y?b9KKoFVz+1H;YpKtwp{@`2-%WArfZK`-*^1P7 z!sW)SMczrf8Vf2o2i^!<8Vi?w?9cIS;84hasec+Zry03WQ1$tz=@%VZ!NYTUE+bEn z3h>`^&4x`U2(b11K{`2X4y=0zO1y@`+8TT&D?Kg3(qggeEbW`t6APJajW%beCdb7@ zEe{O}@bhwCYVEopF%@_)Sc)G0zE9Gv=S8joTcFQ#Ib8A4%!~}?Tn?NZ^I=#CuEl>b zdP9XdY$A-#>($Mi8=n~)4!~rAfdo#Ig_SY_FXm##!g`;U>PFCwt>mS_$ABIy@T@44 zxx@$!MMe!&+GYXA$Xa$xz-%A~thb;k?xFyB;o|KI*2h+i_m?%p^DwlkLyV1fOB8Z| zs&IlW{k_%`DVvsuZW52cHn1_g23{7eH&X;mgFDAfh0a@+1?D7L)vYMBxqmqpeheS9 ziHtY44BZ-{{zJco!1G!iPU9}!k=+uJ9lRtiMg8|cNY%`rukMPl3F5DjIhRRic9nLf zh20{IupH$E0Tjx3(9C#VpmlCNC!|F0i+Iu%s`8VM$@;M2lV=Cv&4k}QlImlqBqquR zj`lBXs(G>c)sOOu{O!a2Ix~Lo&$O_*d!|2;iZ189yo6gUeVI$dgM!_ zSfF%ykP@^ZSm$S|B^LO z>?Nq#oOKPHePCTL)n*xlL0-V2@Sz0G|79nQt&BMGo$Rsh)rjf52r>4nWLSU&cA6bR z88jA7+5xYy;2)-wFhA8uCuBhQW(N~M$v9dy(+*Fu)Ya<3K3|)Wx{Y3j#E_&h-(=fB zdt2INwo8DUqipD5Z1h>rLD;2UP4sTsO`*It3ZK0*$zarNSBGE8%eeIxY%&u--W8<& zT|M)Pr7X6~$vem9eF9~x^)eFy*Ho=OuP&tpO5jP3(k3g(z&96pby;*zSU_s)GrM15 z?}Lai%vl|%em#)n<`ZH;UPHHWjI6|k{)Kjh(&lV{1g!-%}YxF=bxXJ zU}>mYn3gaNg9xymHp5GRWk1iF2b{T|W_qDB=7ce>M2sQ+Y!6D*4ogD;uiDti0KwyF z1QKz!hdnlgFj0feaY@Mmn2{hRow)s&OoEwLkmCa|okCInc3(~5!?hnyifKM8)E6^j z!%nk&W?r`N4&I>tK8Ua;FICT(%FW1Jyln!$Mc_5iz4d`{$na9Cycp`Y=qV*LF)zsm zbH!~0-^Z5=Ke$mrdZK5X&>=Jz8@-P8ijP)*Ox{TvfMg&R5C^5fB5!ki9H6MkkRYsY ztR~9{ANymGv1Zg40EU3K{a?eY&Bc3IzP`fCJB+b0VU`8$9U&ir+@XH#oY@;*TF$MXtbkd)M#C|+h_`T zFgSEGmse3Bc5`B_JM3W_S;tR~bWRU-AIeyswI3GbucDmG3?!42LXkI?#nS1;&ND|C z@OVRpgs!C8M>ZZ72Udkg`A|&M(FVu9Zh`M*C&fl&rFbCGfJu5#sFnIN9@#~C%dDBL z8+>!ZZMPG~2)+95>$a+_4nF>1??*5Te(QaPo6NwSMs=0zyHeHnd1)uqo2;PsK0nKc$R(Y&&caZYanY7eINIxT3RUNJT3)jHS8xt7cQkF zM@C>d3*>ozBnKbq$Ih1LqSNm@D|03O3n!de_DKF0d%Qa7fJKz9PMR7R;oYp$uwU|t z3dcqQ!P63)T>hQ>3TZlt;n_NPwl+StIv%&5GmL=l;%LAmiuDMa;`2y&9(P2zCVC$g zi6&|Kagto;Su|K3!7Sp1U2EAHi?HCk4e-2Q$k#aoTNp!#rS8`>X9?ys%qD2YZUh=g z$kT=MC7Oh9%-l&yutkz|2gZbjM`{iXB0$Tu2m1Kw4)lN_SA4B@P&VMya%VA=-K<}X z{lcc%yur!IPEOb`Y)-S0RH3%PGQ$Qa_^(+ZepnxhZrTCM4&ST=(M-4F>d%HNP_(TE zwnospTpJM8SIJ!g=DB$UX+$ZEnlfwHZDSjXR_s(?hGpFiDB9Jiz7NZ;jH2l15%s$$ z>Zw%Sc984YqX?XhqK*=|6L4Zt#6^Y;OW?e@Taa+{$^E@kC^~pzJE|rQyhU_LydWmI z?~F$gS8V8hRDBa1CzXR}s(Ktn>=oc#=)t2$5FojZ>QBgTlGXz2B_4+74VXqIadZQw zO>vo;bT~{d@V)|*1QH7$MF2N2LxPt1Av@&o=kcS%<)TF%V4Z&O%8A4x3^JkM@_>sW4h~;*CqOM2lsThZ) zh{|6RT`|%pKq{?z^TE}dCL==o{`puG+(a{i5&rulVlmKsrlyEklY}GC+BUjQTVmZn z_&_D{_?oCa*uxPHDK9KZ%Rx|kvC@g0mE{7TyL7?7u*6CnTr6BNxOOUTYg2xdwe1QJ zJKx)VJ3SyZ!UR#0dXI)HSnjG7B&GUe$$>Y0Q{UQa5*vXc87r(27CZ?5>S>nr*HgcX z?O5C#xpwGexcCNK2rstQH+Q@6+Tthzfphv7cnK^}af}#;AHUwdtRSh#d-+WAs%mLv zAwnQ`5%#F#)XUC?xYmMZ_avEWt;aVT?Tp3pabnbW$lFPskPuo5WkQ8e54>T5&zl_x zK=&JLQ#2}zodoWT03Y*y(UgS$Rch z71bnx%EJW9u)C|XZB=6fHpol4_NPc}tSo0;ZY(Rq%Id!wSgQp;u7i!lH;oPcg~wGY z%IBhqW~M|$j$=^Z=Y^9H7j4h1#s(r%K6ejFsh%8{{HoI8a{OjENh}yn0;V?z>X85S zt2!`NPywGuqrUKiX+T`PJOJfbV1LtKnjle4Yvi__#R&8F$g5 zc^cf^wyLg(*f4v<{N(t#957&eYXX1sC=oWOi>aB>Y;uoywiA{n)qUQ;ECQl-I2dib zMm%TPYyE$1WJhP*n;9XdF|gO6+|nhB?C2^6mLg93*~0~fI*aqeBj0QWx@?7`q}0+W zJwk4ho>Q|Ncp{XFa!dFDB`-%Fqw?xTiJZC!rJwqAl!WOo4zyAWUDF(ceK)3tM~AjO zJ(5`&9}9C&u13+dkxg9k5~3_SS)dYkf0G1v!escgi=ogpnB(y5>DC?;-PKDlRlgBI z_~U)J#6oIQ!L}7E>?vqTp}4-L>#)7r$rGqx5;4f7)W|L<5}`QjE4)eQOyFf6KeC)a zAT13gEF<1t;&Q{=X6YKl`c1grnP*+Y#zNZ+6K)~XjwZ}b@>PFk1<{}p5F2U(u^|>@ z3F?Uh%b;K=5h@|Tnqf5T?QE>^aZugeoSjUuaZpcsSx*E7&Vu>;yjihy^>B3I zBG&k@0k#fSOU*ba7Y{4TWgJtiy$uM)dqGb6aRLEr(sp~q;^BF-igZ%I=3*v+wxRwoq_Y&4}we_xE9PR2#WU|=dI59>lJvNpr>hYZA~E_ff8W!TTI zxp>o-QA!38?UFcN3tdbJ-jO^7V!xAFZLxN`T??gt*wS zkcFLi@k9a;`&n3#87VMaoS%}kaC~=AH)n@PG&9itd;nMH`EuuV1{Z63j@V(t8#ox5 z;OTS@2C$PE(S$5EF~jF|KzClJU$c1`FZLtP2+0XeDEi?{!)vGo4ehcb#FZqGNInYr zQW$`jnP!;mtI)6g1^mHvFkAf__ECES64V3t0TNXE4SY*&kF+2NEwWuna@W_-&sl6E zB@wD}rBaW?10-uQ+1E(vLnQjD3?Hdi%tUWvuf)7i#W_3$5E^qixglb0Mu;VH;fqE_$B$)~d z!o&hl`vkk6kCoCUgnN3`voq;`RhpM`jMgT&i1Cpr1%(mTC?_N;6#TH?#DYiZP|z! z^SU1^w0@z%(&m>M8-e@DNC#i|?1;+6ee@{5%^9Gr+lZFuY-XU5&e|MEK$_+M79B!tl_V)!pqaja7jG%ly1NFp`16 z1%*tE7g+zre1#n_eE8tb9phx;f?Rq~;}+@b{KZpnURcnaCz%xqYsL?8!E)|PX>|*S z?c-pA%tZubEo0S~RiMeib539EYBl?lhQM#sr0& zK?xs5xi}_N8WWMAj1UANQgJ6TjIRq~d$*P)}2_ z@yW<)2ldx^S3(1f4D%K0dxZ7yljZ6+fHENfkHnS$X4EM>Ihp056x(=L$B|@YvXfly zL?Ss#^@VcFwnBkr9*C~Qs_&5xkOrYp5Fw3$5@Am~Ic-vg_4U%WeUUL?5j-S7lbIG3 zzMO|h=En30!G3aMDHJg4Ri3e2q7Vb8Kr)+IIpr;g2*CRd@IlbV%f-nW8=F_j1C17E zd4y*4A0d~FN|tMwZYT!+OV8s=b!S0Ks@<{=G^2k6L*n5c6`{7e*x(h$#~ z3y>{W;u=L7z8uR>2$4WYbQGSI9w@+m33W;g;%y5Ox95-jJ^LfK!g)V=OBUhZn%@f5 zpdEa?OKi9vvL@AA^INyrKOc+E$HINvDr=I1k;9>dbh?dRh~CqmZJm&Bqf^P`yo8x9 zTQ|b1F%{<@{tDAeR+ZVPm#be@x2Pi*6}5Z7!LUL9&K*O6m2mvKonk9%lxQDj;R~-v zdY?67pABn{9%)5EYyhrY#Bxrjc^Jyv5FmCggh?Jne=4k)GTfuvCWMq z7v~)v&WKu)1Dg?1Ya1#2mTT~mAoYPw_1({&?~TbBg#eq&0uj?G5Vwni{`R)O5@nWS z(GPzt{DDOy@PHjQiX`^?oC5sEVkscrh)3V8U-TFL^S5F&iWwWt8~>@!lRRB&E{M-* zexDN)@Pm{5@z*@&GdjM;RIF-SXpNT0x z9xqSK13_3I7FYWaaEKVZ+|5BSpdP z4_<|phWH3@SGRvR^P@lE9-W_@8DvK! zE(5P_rVIW6Ht^->na})G5?y%^)`z+34E1p0Gij*_ayQpQKtwJ4o(T=yU8z{TNP0d- z-bg$Gp2jJ>=fP~KSwNYK*Zsc;dk?rcuIqbz-puT5hi$Ob?MsIRmSqdOu=L)07hOmo zp^6IXy}9?^Yg_~fxg@dTIJRTQjvYI;<0N+C#A!}*x+NI@-+MD#K>q&z{upgxfi3Ud zckj99o?}MXq6DG(qA+aHFU4~&s0FEv4dciV=gp=7aENz6e4I!qqD;IDph&^(08w!C zZ(bdVCjTw~BVh_^mNI}5@`_6^Ur3~btNQ}bO2y%l&(5GbOW>dLLQJJDE zmtENzQDL%F%FqXx!+r>{+vBj~(nidHrbT-$?-q<-WLj#JhW7~O-!*6UH+cj5r5VXq z6N)m?c##Dd{|g4aMurcj*v(TL)}uP6w;Q>dH6o5ti67}5Wc{CUXE8d8mtgc41)h;! zhtz2~CKPNL6oo-(z5w}@5sSpXn=A>6!JBP8cf03i6Z+FKjlPJ1eR83rP1 zb-OqrBqg`X7I?m_s0mBVlmMbApbpo)S{?2xQ{dG}**CfVBGs5Apb7;rN+aOebq*Y? z!enMv*$<#LVb0%B~C?JQqf$||0WU(?eBVCxPZ zt>r}?m)({jZx6{CUKn-fP($tbDXlj;@HE554dVkAvq2{s=G88ydA($aC-3MdsG8sq zjAYO5Et~7A6v7HTE_h+rY$PSF;C@IR&6DoVmvW7=fNeDgu0;h?wtPE-_z^<8(@6^P zN$d<6y~E>Ks1XQ5i(MGa>mr+k$$3t*7L&G>u*qgunt?@)7QNHL6D%;lLYSO>%Z;0N zZfUHM$3EiQ_n-y{%BQE>d%@%W@p|I^eYb}C zn(C5bxeWK+4En$%v$UvLd6XTw=}CLeW(U0k5M26QdJOLHok_M6BfGSNH%Z z$MQOPS20j?GthAs$Ujp|3NbC0a?9FK!>63{s`?tto7SrV(H|wJ170*GP>oE0SN^!fUil79 z!}I}k|L5EHQv#SY(tm+Hz#L%tl!pJE|L{lPEznKTuPn0cR;HJ&d#zQNh<@w2yV#eW zh4+fH6XFYK`kqU}llPtfh#k5OHd*%F1@2{E{Ia@;n*Gz+zpmW%r*nTLu+!kLgu7r| z=GPt3OKc~O6W4*iEux|pf1>4OHt$7L)<$V)M!Wht*MY@>5u1Xvb=s^JCCyDGcJ<;( zngy3r86+0_Wi@fJF^K9fVu;2d(gXirf-BN!(6=kN+ZRfs)l?ZSe;0}+&N7VdCXh5I zZRB=XXl~TLAU`K7$($(c?!_W-@zisZLkF-x(zdNLo2E9P4h*u{`hQeQyjU)t z62gnO3%xFEhO}YQ#!KzvS7^(UN@xLX#S6Hzqp?9qb>r(6b99uDYUc}XVFD*pD!`Z9 zwhD%W#nsfr7-vm(2{m2dbFG0TUxABQr7iAP*+ID*887B!$VCh(qk{**Qi?G~Nk`#Z zuzYKe!tY3PQ%^Ss66-^QvlqZj-`1eoBm8UV-QnIE$(m_03rz269MQvC%J8b1;psFA`OnX4kZ)SYPOKC9=O17u!J(nm&;Xh-yuGn5B|5;Js-mtB(w7mc5BVTnk>e#o~_vD7C?4O-_TCZmR z?i>ZSiHt9IH+piPp{X=wLMBc1!bZ0n0@gH5U1l#)bRSJ;#;VgPy19fFIPQ7nv6k9s zS$%~ptE$X)lP>aBI=O_pd;hwV?4A1t54~p7#^%t}`T~inc{5Gt#A_ok_qG>_H~AE3GQGMkp_2gAE?E({$jB|-w|SD!_r2F z7NRYSbDxLp7e`2$$dDKhiy2)2kn)RR0#aF?lbK!@B#9#*W;r9`ZZBcUM@|I*@l7FY z+qO!F=vje{8&nU9`Yyt)O$)FLQA54Ih~`Fb0`e3nmkU!N;_BDLc>Fh4?Fuo_iA4mh z4>5!onxB*87(yMX$*UMbenm9^z1?kf$fQ)X3JtyhntVl}(!iY#h)llY5=}_4NG_%f zX%RL>8x8OxIoSZQ2LwSeoFY+(IV4!kAP*AA5l)32lbs>{IG6D^FwED#l!7F(3+S#? zHM8us>^b&FMs;%PPJyhr6Bs{8ms8g!RcC)`0=EgjTtJYY& z50#?)b3@Opq|oPa<*C;!w=82B2nPuQEihxSJEjecH6|mCf^Z5NM^Wb7RbjAn=ED|& z(#k6ta8)HwR!t5$)${k_@cce}HTxSg>A#C6cV|+xPiHJ78FJZr?_CUY(nD*uGz&z# zr`Q`LuHL8P>=tKyl8yx6i{*_i!dw2CXn65?qpI4~|AP`=tZa5WxloWDxAzQfD0K{e z`{+(zm0G-ID-)A*|83Wj-)XH?RXdkoAiruj9mV9immj|808MMO#R3zffGxO^2z5n@ zwN;XJ7p-0X{9I=Yy>q)12qZ39Jf(YMIlkh}y0Rm;wUSHD{B1Yn6~@UAwy}A61;%xo zC{1zg4dCtR8;abK!rn=N#)V?T7T9x}V;W)fa}i#^JnOPOo5SIpi*8S*%7qu9w?Gx- zAJ4$(Y%aIk+_V<7+C zGZsY}WItzro#?IET63#BdIeMtXarXFvyzWC7E^T%8$_b&&CAa<4$+TM_2h$v`UIC$ z>eD5 zi5_AAG;_iua#_wf$>Z(BPgN?1@;}imCz<6PRBl5JhDyXW^*&-`&C( z1mT}z+>cG$Xap+1xt7)jXJT*xm-~|8gEkw^|UM6_1}nZy(*J zz+-fnXBarzkTZ-j4AxT5SCo~bKdkJwL%gZ8xxNUVexj?`I0dM*LKA-`L71l!j7z#m znN%zY%Ew*+9j$Ev9>79%abFvk1y+^x2Uf=U#*m>*xZfRWt8j{8Yap#Ph!#L$g=^v? z;fpZ!0HpuU%fCB7-nU+z9ATLC16N+VPFhnH3wD5x_;tRX*Y4TWMbkZ7Z>!7SaipVt z!*3KdO`>Kb;{EM1XzZTBV5g>X2wa4{XuL?*R|7eSm%$ysmV{!^H$9j8VIC z1&3!{B54eJNa0G1b49R!(A^Kp-vn4&(4r#AKMb9R<0;VC!mJ|KQXto0WlLpMp;6JbGvA1RT#K5hP!NTQl)VMB&xJ-3vuNS7u5Yw;Jc`S`8Qit*WW2EG@{*wk265ZJ1JOo6k=}fcOHkUgQor zO!2~ONn9QCOOD3Gt(JDWk)u&_w;P%nYiQ|dqXJ7W#cV}OPYqXBT}^qBFA*QC(yIxv z3TE}vLwClj*U}DUpt8V~pPOkAmIfBwB1q?LfZ_T~GXkP9xY8`)lvr%u!f^`$W)iNF z!o^@uv^FS*9gRl_lPDAsg&HjlVN2v948PJr+e@wM_m9z(J3;4`{Zv~C^6zWeFv9MX zYIDgEXF}xndcc;Qk4KW!T>lq_8ngOBaZ69@zuSKg;wSU&d-wCAN9NZ93;XUh)(6Sj zl?AenH2e{qUgzpNxctVcF`9nTO&{+AhNqSmAzRKwe^ZnXRo3Ea_T0DV>&@`LXpw9{n-f=l;g+ov-~I%&m+JwdtGNZ$7k{Df{$O_U6C-74;VjV5GYh z_7|gwV&V_;V$=`j1rdW-;zFTMg+<_EV^sR!SRv}jP=t^VWDEZIXdhl-QXI+rQja?i z4To8HAd&x%;KC>RwewjbH;>`NqtFBcU#Lfk<(^=f$H_i0R~f7M3*j$MOEttqYgQYp zp@m`5tAwi-#zo+>Wx@n1OUbK_syXg6rHl%M88s(y87R^?P@7_~fQS}R*}`@DVMHqU z@N@URGaY+rZ(LFlMa#NxDFVOw-|Mmy8$2NL*wBu?^xqHMn?C$#cMCl}6(Kavonq&2 zD8Ka%C;8Fa;Bk=ROe$rsTwXpK)g}@hJW9QJ+Yh_hzc)WYWtMD+nR;pEYv2K?^?B7U z_9t_=qpcsDag+(O(z+ym}jy73030+uDn zG;9KqFTJ5Rd-2vgrWJ@x2@&Jt$M(%3(_qf^^6tA7q3I0i&F9WUMZ)+`<610`?p&;| zMH)qp;Mj#f{?LHo$e{y!XLn2@>GIy5&Nd_G%sLj!OMJ|4n;t{qM03xbx8Js9W>a@l zRZey)vUyP6g=Ih%D%0I};q2)`Z%=nsC1Q{+Zkp!IqAw)C1TGTYHJ^%VHa@kJ-Fero zx7|24THv8Yl^9x^+e=ftspZ9c?!M!8H%)WeiCbpqU|n}H-D*a*mC1pn=vQ2e0IxI0 zJKO4O*TTj(^p#ST!5NI3n>>{mPLv%xa$w*1ItUAh-5w4_p2+4=n!|i912PD><$|~mNnt`dT#?9_xfvy_g=4j=&A_NMH=aIstvp+8rD?A_ZU;@0 zlN-|}eL{l(NcV1}n4%Hd zF22ou0^)kvIa0QVB1xAvF`cG=@SLgR(3#JHG9e;35Raygh!dEyI2_9j4z#}jle2x7`m?iiP zp(o6!3j-XSSQKvXrKZ@z^)d}c6&8r9f;|}(m4X+d*`&hC$+a~hTx~uBE9lI7au86q zRF)+sXc|l4%qJLWeA3EIMx5qFM4OPDXQ3@tMb}_``gy;jCge(iXCkpX3$`=FyWM1@ zu|WkA?qvMvj~mQ1o|CMq6=emVL{0`uME&v#FQ_Oh^m;6eKb&WrpF$9R9`%YP;;Zq~ z(bDm_GcGU(8Yt0nGkU@*ajl%2RdN7qvx1mCsaZkE4v^0&Z6-N*p$=?ZiPAMrZc`1b zOMqpYoV*+-|Lu?*8COui$C1+{340pR4b56`y|T189^MqKpJF#^i(?OghnE2<0OWPg zQ8)kMG5o;d_#{7bMMxK#<7Vmq0dsB~JVid!l=>qP8k?ncM6P^L;D&%INuFaB;O|$G zn$p(`1h-Uav(N*a36G~cXf4|J>>>gv&F-_nGHS>{{YQ6lWOA_Iu3O62F|aXGVLb!SDD zCv1qIB2j^582H(0exTZx^?y*ih{d>AcoHB&eyi=-M!p`cs${iqP#i&un!_!f6!lV%g(jIfhP z3NJBUizpeJ9dO0$25*rlLApBpN@+4r#J#w(2)* zFZ5<@v5E%@bv2;5qipv%_Un7zs~rcr3qw`f<)6x(&i$}t$O4V9OK{;<;D;FhPdkds znwpy2WwR}{zQGZC&K+m)Q1tl!;_45l)YB9!DByX;USj|E3y=yj)8h+%{@~x8lF15^ zzQ@%R&wdA#KYn9l=B5w+0K?)&nqK}11ah+APkhY2MBfUk$dBUelS8RVJK;)new{1) zA#)J9=n?B63VRp$-J&j$(}-RyD&%H07WeL%o(e+$e(BI~|3G(7a*{%bC859Jj?s~I zgMGcJDGDK;-&nf-x}!%F)KmyXiRd&XAY(c?CY?pBp3H;?_JQ3ywr$yjMxCa@Cq4ZU zO%1h`<)wbaXACLK1b^<1+itn(hHKB9I&tjKk?`-$lSybqZ>g;{-9o2e1I+n4TMCMY zOC!Vnq6j&5CF$+q8Rtt#ekL&i-+AX9@Ey4B+D+4;cR<|MT2~8!8iAZs_wExQtY~3q zRDg^;{o?+0g+7>v2)LQ58?K+)$WV9S>&K4n*)5=^!x&T!M2^MYZV6#2FHA{0Var5- z*>-$RQ7RslbG=GUAMNrKoI*f(dkOa~oEq~HWfyLQ0ewL6f_IxRu% z8nin?>ZCX&a0K#^vPp1l^?5fQ-B_q zW~!6KOpbeChp|@Ws)Cz0KicGi4_bkVWwu%EfV*wQ+}5%4*(V-*@KhOf_n||8K6{oW zPn=jz@xM1K?+I1NK+Gej}3g{V?I zkwnyiBo4E|xdT4Fd3hv73@49d%TiGO;Obh6i$?K3hTlRLYb$fm)L>SSD6WVQV{x#H zrCbBfAEa-ng~)^$E;g%Km%tV87@S_+gjhsb}SQ0u~ zEnHi&#~^7af(e_}7q3#iLk+zUqx1ssB^MFj)NKo*)tq7r_Q1iDdDsL;9qML)a3?X@2a`)Ns}Z?^l&%RM(QfBOkJ6>FEPE87+>N zSH37STFTX=QCp>LZDT#rRaQfpdRbIdA`}%Bz&C*+{BRv?VU7?s#H#?t#irKkDs1&! zh^Byo<1wl#jHNWILW4g1T)ZC-`S`_kl@(mz3bANP02{I_F z#)j+JS!O*UUkxBG0)`42p2xxt89%8u?`y8a>0~ZRH1jZx*WMCDr>$6XBR`yLiNy&K zlM)fgkmiD!XNO}6TQs9=T{VstwaUmS00;Viaj)sba4jR6$bN!}y0s-s0jNI@PueB1 z$^E|q1OANtb%JbIZNxtOP9Ys3lO3o6#L?|)ahb_jEJAbVr6$8Z;ADSz@BQG9~E;NJ5SOt}!oZ4o%l21s&=bPt}ZGptoYKe=*hwH9c_|MeF0L!bd*OtX_lP?SV z_X%dvbDujP*ccXI;BzzT<*N{&DgcHW>tO?N4FVK*<`@8HP9HyZ^k6G~1vyIiY?W)~ zxnRfthDa&38VTyp%b>DC{#_|CfQStowA)5zgWdvL_RS(z*v!N@bzmRYT-!8B1`cJI zqxz*)VL57k05C#rRaHPpGmjD&VXWegNNt#QoI=h21S!NChVWbXmf6IOvgGGGo%jcn zNu^P!AQ1-c-&|MQVDJx7Vz0lebaJY%H>>#C zZUv|WhXkYqPNirf+h3r$xn=tbX`xe7|_!&k2 z0{o}SlipHUV-^1beBW*A_$~W{Ja>yA--YRpAu-&ut@g)W8!zDAPuY*f&2t_lHBh)}ooaHBr0Y=lDqtjjj5$ukz^>vDH(i1JVa~fIvKPX}(gLNoPR73a(0 zkLd5kR(`dq@W73=1am=rQZK*+6(7|8$V%kh?7>r2S(&)+9G(NuQ&J69&u?rfEy20F zEz4pKG5EW?JZ^?6!CT7Z#IuwOy*-RMOt%E-OzRTDVO7kWuT}tnmEjwp|#{PD+czxjrOx+YYe zB)t0a;kiA#c5dCg5v!&R^mVmk5j}Whk6b0e6DG#vk62oqfAaB1??DCGb*HZhFUDTE zbn&|nKXCG>;Em%rM!xXuQ`9wY;A|wi&@(F>umysP zwA*hR8>Knni=_u2Kqiwv#BbBk0YA&QmYBCrRICmPJ zm;3k3@jD1PZoT~7LipNN3z8x|QZIbD{0m*BN4f|Sv;m+Pe0#}Hy$~cN&p%mTM%Um3 zZt2l``kLv^cJ8#fV;#@dM<>%Q6K@7Vl^b?$q_%A4@aJm)u?26gg-b!}c4rc=C&%fd zbEk*`<4u9Ov+C)i?XB|o-V$?n5d=cl*EPy?%>~Bm&O{UyCeifQ04RiJ z`8(Grs&g4K%Gh-P)PZscmc-SWy4e4*$?Wt4V_T{r^h>3s6o^6A--=;zX0bX%09+qc z-;_YpTW5E$pXSa`lr6>|4@?gxbT!FodT{1pilj!G5?mV@2ipA8H0??8irGh)yx90W5&MT+@DY%*{|3_8!S8InB_>QJFMTX&x1c_E@s1vU~0U*1PY9xKSZQx1VA5z%$SQW6?CR1GFqg zY2b?w!YCn49GO&w7<>yGH>i3zH3C%-KU~zRI0hf8Os0m{)u3XaGQ{EI>eD4GJef4mQ5`KKWsxH-ZLKM&nlxy2co$(@VbcgC|C)FO^>Qe~-uu0a^Aj*pqAYj!0DO z{p@4YyrKzE=2H_t? z1-?}X<;=!u+}rV?IjjqNw@*?B*W)u$m63*~5OokPRihz?ZxBmGOT4eQhMSi`V)5r4 zd4Y23@S(sygynd(0&6_MwkfARvvA-bjmxUZ_4J`tvy&cIzFZo%7m!bK2-C-MVk$EL z=(!at*+SK)DnVhy6Z@yI&fN*XH|w;0L8h0$m2QK%6(hGzP-DV z_|>N2b&}aIhveyz^@lhhbmJIFtPh|+Joul7)K`OkN`Vnc*i40InAsr6Lq{CWBg1wH zhCD-g<2Tq9z@4K0W+4to7;$Jf*bau`U{SJSetlZKYq}-5PS=auMVprIoo5!|Y`{1i$^4lU&i65j#c9a*Ug8qsciKN}nKK9SXI+EjlXS-D&`Hrtukf0DM^z~zqN$cCzO`MWAL zTlRHW)}OukZFQ15r+<6Z%w*!ezo=5C{_09haLL|rx|C#6{=0Hyxg=r#qAEA(3Ka^U z!B8v*>dW5dRx-ssA`r;N3RZqv-7FM$8OlmaJYvuQHW4DC1Y!?M%zoHEI7*x(&Jte| z|0S*vUz1mslB}^Y5;4Zm(NyL|2qK)=yJr$l{49U{zboJQ_KRz;FFyU${r838>~*z; zJ_ug=)O`{opaA#`(b%gkoQB<@$f{+i-Nw6Z_{?FTI1OHByOycWmhH!XA7} zK5tyCfU@BGPMsEFct3TcMc_3IV z{Qa-DeU2fsyUzXlwg7J<*y~u+S1~4srN^PXH=L|t4&A)!7Vby#=9AHULmVCKyyJ>J z7X~3EZ$yFEWk@^=aG(+DwFnU+zAD4!H14<`KsFX;WmHg**1>U4oPp;aWTLFO2_Npn z+z|lpbil7Nl2()yYrecrRR9lmIwRU0a})c&bPr7@n9L%8EG?#+;@*h%Yi$Bbkyohr z$#oIgQ5h60X%dItR^&%#h(tAY)|Fq&>m6-0Eh;n=#DN{LWe|-Se?eW)>MUkwV7`!_ z7&8K{V`tD8S^KBz$vy7+ueSGh&zz}IxGCCf%n^yAB+-lq{ypTMNWU$5JEbWvdSKnN|F1{oY`_Cc>fQeBv+;1PgD23OldNG zvR9Fz4C+C#k4bIO88jU$N;I-B*KE|#@~!LC9e{#wN2L}up#BD5Y<5g+4!rs<{3{lf z+LD=EVVT^tZuyPB9(|X<`a>THcQalhm&hmDh%PX}4c6LG%78Wcyal{QB?&*`cToZs?pW0c;w?@u8GwCokxu?g-<@<5UK#c3|J-uFg>JiOxgMB`XutRu=5}3^ovL@4zm4 zOQj{qk*PCOn#%}J?#tC-U7gQ>^Ix?%yuC)QJYF#i7KsB!3H8t7y9C_{E&V?pWiE`%)Ih(^Z;oaBzKu3;hU54d$>FF+S}KnhC!1AK=g6OYrCr{9Tk)l`dm{ zA+y_c6#WFv6qYRi>(0%p9V3$V!{jvk40}DYmaqKdA1^nRs=7gXsW_RYQ`DJ}?DsXf z2~OCvJgk**TPgj$=)5#i_eQWB!QU{X4|V?m`%PeY%|Mciu)lNBMbNaJ}&et`Of$;E& zoiysq!?w7xtW0x3K$0CzDU?WATV)Y_7~_jh7Yegu{V`wt#|chTp5<4=zgQJ$2GKoR zwtZ_S`?Z()i8lqfLC&z}hcCPJ2|l|3N za{0QKVpnn!T~UZDB{}S3MkyjB{Fv3M`iSdZW3hR> z0Pu&cjpoGW%PTms`Kn4L=^JFsN>#|&+?5v(5dhKE$aid%WDU_=42rzjdfFGHZrBV- zmE3Abw~zrD&hzY?#znRYe_Mg4WE%6>-1o@UUGb#=7+iY5I^vaD?i5F7^!=pE{URl!-oGLc9W5Jez?n}op=3CJjut5HK{9`SK1JPwnRjJ?bjygo%x z4Eth2v<7{gf#c=Uyjh3F5iVfbzk(lo;YKhQT$zPF?&!cDH?kFY*1}WS65LSfyb4XlbN2T6Xk~H zRu)nWzFh8ePd0|x3LqkbWffO}qb_3l3&Lj1d;(?^q9K)JqfZY)df>W)cYY#n+%a6WJpH^EeMn#y%%VNoX@noNfZZsdiu8%w!Ht3IJ z6A{vLg7t!viIM4D@7%#?2?)(b)!!upmwl! z@D@@g?Pq^3+zxxrkq|@PMa&U5kjiJ3HVDZ-yV-VO=Z-?37xS>YI_qs-@3RB8Fdza( zawW$X&|qns^%Dw=tMA=YS)t%nJ$BEPmnkSO{6jLl zXiP=t{cOR+X8g%*-{7ab6F60=E~(&DBSvb+>TyBQJ%HHi3lTyA!9^J?@DLpZtFGO9 zc5LtN!p(=!RnA)A+}Xf8k)B3lIfsdHx(lB&b9-lZc6QK$a{R)N9i`6(ky3qJj5>-# zN|7a2#8sA9kr16eb>h&0eL}&ixpaSIt`+2FXP|+4g(xlLljo0|8UmX*#j8Qlcxc@& z&GfhB(I_2*Q56>Y_1*%yJmh{2nou7Q_91;P2y2#ec;)Q!zB=M5Xu_}t04AexLO>w_RH2&UYA&Nmz-c%l zhdy|0Dnm}LdHo&fU>zu#oJ~>Z%xwAt`(ToUW;RrjC(Rin+oMgSu>)e=u7tE!;pL|( zvP2Iz2VI|{0d^qU(qRDU@~Odi8l=>g(UQhm_LnDRx%Om{s8DCElq^3iDoD_~8AjRE z6uXuEumG?io&D+3yd`nHAp2(5cHvB= ze)D?KR<|2=66-7jjlyI@oaonf*c}j1BbhRTB|WF0+?Qi1Y>{WgClrd_g>A6|neY%Nh%?}m zMVFJCn&1+!eRDALA0BFN!*^lk2o9UNM5RJOanlh=Rzg*+I$bz@ zN;MwpBD)>-^i&zj(6Yn)-Y*{5Q&myqE0_xjLqPBlsl-KC6@lj9(&XqsUr*CGzi}6i z7oVBKkjRmpu+>&_24~hY(<9WWHhgtmM*}r}ibF?KN)8?2NH0f^1i)OZ(jTN(FS=cc zxK!{ioHhvoa_>^WRPb9kd648f~&S7 z!u_pCNNY9IIgUsS!JN@FAVdL;?OhuI>a5hKx`7#ipw(t871|650>S33;MZIGC<^2+9|GTo%fQRNCwz`MMAT#Nq@tzj zs@NEwV2p!)W`+t)RbW9~6(tWtC+lh|(5$2~lIP*c6>Hk+Fc~c=EO0yXQG+2JwY@@$ zTfuF15qmYkRU2v!WMy(Pj*CVEhZ^#wR!wzLp);SR7+&uyBc0Kr%^VqlFS$y~j9P0^ z+CVE?Q3gO=73$L!T&11m&SNMlMBmJYO#xXT=}A_mlVNpGAAE{ejc4|BH8s#{{248l zFqchb=xTtN94`DD#`#cjGNWNkPNc0B6j$Ldy&wu??PhzYIvJ*Jnw(s@T(ey+-{B^s z#eK78@aug$7^XhSrCs?8IoH$@5z*Sn+76R>TXNX%vj1u@Midzgeu?=V)>ZKRj;bA} z`rC)epIu+mzv=X7o2KvYpGu33#u7RByR^t)^hZ4F_Nfyc-;=@AtB8haw^CYcFcwSM zUEM9S=YSH(RvPmLMWWjE$;cO2W#jy z*tc3w%z(kgx>`Pt<9LlE)cAPK$KqBL!0d=-zA6@T`e&Gm$&Ke3Id2if^5|?&w(!m( z8nu!)Y$b_R1Pt3Zc3Kk?xF#@+vE1+g_pCH(nUtaM@ZeHwOGz=q89M|xN7EZS+fl$= z%{hV#BH5^4ZNhdDSmMI;*gpIsBXV@w;B9*CRCNOHkYxbaq?JD{azXWlY7D;4;bC7w- z&w${{FgbgA<=Ofkq3~QfIUr`5+Ka4l%Aa2%T|-{>QTD@~lk9`+<0%kT zovtCL#nT(p$+7WviKKbM%AKMzV_cpPc9-tT+XF_wVv9TG+6vMlS_-;5N=M0UHMzg~ zM|X$s%O~z0sMvD*&CZc5&=OIo*B3<;ZjKf*_RfeRy}mGly<>FO=&!!|=YMJ@=@-0u zomU2Gvsz=sNj~;DnNJ6Av;WKJ7t+ItK+1mmJFS(~zyvO&_ze$yQ<8bN&XgFQ&z^Ze#5upS^qDCqcOn;W^&kwRC#BOC1o zE4IFliwQ2~tNjBp&mNT4ie>1jP^lLxcV8t1@qNiRJbpi(JP5zf)WWAT$zbf90pW_ zh(b^gA&*lxhdD}s5FG-Oa5fMa9fg-9(jN@^8zU-#lQ+o;aO5>%jvHKt!5hAtfxUUd zOl7A$PK5f36jj_G3-$o3r^a1M(DG#18{eQYSc z{JF77Br@re8H(L>Xy6NwN(w|s3)84)~dn*uDzqsr=sw5@d7;7gUaU@TAORiiAwGuUqqsrDjbC88+`~7 z@*Dd5dJ!$OuDAdNKnQapPj-_r4yFt;GEwitm8X8-kH`p}&tI*D7U2mL?#)u^7hoH3oG4IM7j5S?F8!MD%J^lp%DY*C>Kcmlr^@ zxGy9>rKZEhfw;*FJUAT4FO5`mz#JR-ff2~n|iyUx^B$K{>5;^O@l?g?adROt>?BV*|&`+TI)TAu9kfQ zscS|cDz)fKRq`!+fh3B(@9~>yP;ukYm`8w9%f8M;M#u{diC!uDlJxQWR-AX&Cl=03 zDAM*(rRyzvs&w4c1fePUI>g+meN!#2@-w{PtDK4cC-5?MwPLRKT;ua|= zmcie$a$%)sA4mq|oxo3siP^8U!c$BWQH(v1kT%B%=H?$E%g!UOhefqYB*bTBbyZm@ zp5?G2&l9eHdw$3Ez{gurSyHaxc<@UN%{BE33iFAV@*U}E3QCBtH#OGPDkw9)e(=!T zJ_WTNUq5pAzqii%3VF@hX zz39l}8`%&AQsXQ2b>(F^W5Akg-CY6l%Km+;m^jXS2qjQO_|?_amXr!8HD2s0r2zM? z8yc%B#Z(!e&vN%QH&s*%cz=T7A&j*w96Tc4hc5T*79Qd!3xY%*o{e(>_=uuVvj^e! zL7}W%sVLa2&Pvus(rPTHHE%6NcP?0B%Stg;WR9!mpX7>{MscJ?%hx3vRjT1GlJRe;0(JZufs1A zjXX>#&pgjCvk$OOgM|Zi6uohdT~C(x-9!pz4_yAw<}bh^TL%_z2XC{v=xf=)NY5Irk^78t>`$$Ukb}jj%#TzJCi5-4qg*;)Ve!Z-xe*MS%n7HhS8JfzBj!tJf z1yq#>2%EbZ@n|9Y_gZN>Np(px*`GxP4=z3fXf9ebDZ;^Oin)b4}? zxB3I2&8hldxCb~&R#0&bg{dS&BA6c-P}9>oAN4LenSq8%i2s%#-rW1d}w z)z_-4LS)AI{2Zh+xX@NxT!pg{p9{I6pGU;S1&709$9l+du#=SvL#t6A9~%=Lg=vLr z^XqSrlf?}(nKXo<(rD!GVl-l1GPE?*<>V-n7XeZ<%nuvPjwlD9t*N}&sAtv=-r3Oe zA(-@FoR5b{FByaPa6}ORRYk~ghFP7PNC3jTsnyxCnowWmb(>D&j9Ew$07ia}q^QkD z9S$zBaE958Y6Dh#c|kKTVbWpH+I8)w8Ifq)^`vxqO2l}jcl=wK4{~cqq=oEn+0MFs zuK{1(t{a=YKdDV&pBtW+b<;u_pttuxJPf{ITSKxdq1Y@q(rMlEWpo7iJ1~+ykvGod zlPin$dXH%CRap<4z}B%}b=y5}?K)YTS@rxPi22v=BP-a~Z_TGlH|A?S!^`hZk1&5@ zXePB@aQlJm#N46Fvs zqaFiN&Fa0{%GR%e_$sQ-TzJeQJvA{w5m^_ar3Q<*OBcsShu4L7yNE?w7B{}lbhE*A7zz(+FX$3QDZ$mtTYp7#0npXfQeVxiStk(ypudJ(Dpu9)5umpY zKV64N>-yt4c_PtQ?I2 z#a}!VrNu=*?*aEszKw^$lOR!;#18#3zep%9>!Ur9%il_HwTeYvzloZNT<(u8*Jjef zVHfpI>5zube7L_(Dyl7wUwN#2?E8a-8yb#mlBb{e>1%!2?8ofirkZXsmeyrzs}0%l zD@TmJo#okQPS@lgG2H!nd;LfEPmn7fLt>%qIe`%72e4Fo9&u6hrYf;`(6#brL{WmV zfTlmX`HB7G#ZmqBV&j3Xh_Si7Knx@+pN*ErGSaEd0#cMzO1?&)cT~=-E2!EBD<~g( zS@<2;dx<5CL=Mpkv(c93!0}k@cjl|8=3qQHpWCc}9RpbWR997$7r68C!^g~Hv$ME7 z53%B6v>eAdOr`RhYJ9G@hGgRcBNSX0wW6G92rG!P;IB=H3oD2&0-#Z?Vvvdf{Bs1Y z{lKkQ!4ZLxnljew3VeLdT#P{yc|mybf;k={lX?X|XO^Ca1QoK9W1?xUb9Ny% zN>1rh@u6Wnuz%ki5(VGBb<_0v@xlJS?#>P*vK#cH3Ona)|Hm@J%nW?&;mPCrI=)N6 zAqAZsf%WGt;4}-}9!%9(ijJZw5$95~P*y6cL*Lsp&CGG5uS`cU;6+N1Y0Z3hYX>fj zHe>^^Vf{GFfY%mAG5}NEWV6vAObaemr-Pshcts~YNfhuQEgldt{7ABzp+JZzMQ(55X_=2ChOw7eV9xfU$;^GuBXDecqyi-pCV$LJc-^ zRQLpe06Au?m2~A4g07E_WqP7;!K#Zg$zoy`<3($bfnEWF^WkkBPAQtm7eNjkG{ zE@}o*SydE3%srh?`kAO8F|j~g*Om#UKKl%OA{IB5gQNCFk*Fq{-PNWP3hQ&?z&{F` zR7~ksk6%HXMaStMfY77Dg8Usg&z~l=o z8G$Tm7jttWN#)0C67{f$&!Gx1&BaPkn2}xNDWC-gTz}=+gJ1&( z%n5i6IDbS^EI{WaBjX$ferzAu#pu;jWAM1 zZbB?D2pUF#5%M}w@ZoB%A_7RT2Ybiz*qUY`ryYaU;DtT4_=4Z5#>g6 zDFD=!b;2@((I=znyKV$Ug)84Xd5{JT0I*+!o4_!8Pw?w9P%%;jF%_8-Ak@Tu4FgVd zvwnHU-PeeO24$K!Cnv66BK-a?b>Z1(wUGZ^O0q zBKv{R$CMNCSSbwgq3XaEPAd#6$KqnR9LW?{*R3K*8H@>u3W_tvh>YOW_>+?qRrq77 zt*NZ=7N`Uvlzm=I(72LMwIt!Bu%kUSIY#Y zM(3qs35vw&scBeM)*TOk-|e(#TjJx0wIf#&HGnNLnvMz4wIdT_F!dn9%tyz0fy9jO zDe&^abv~)Wi|?`31|E}~hW5z$c&ru?q*@8A!c}cebu!i%gI|yM1dHM0I@)n;&Hnf>I+JVhcPSHQ?=un8%5mc#y$ z8TKaqaHai~t7$XR;iqTfNm9jSS(z%zgBMk4iN+L!F^lq53c|x{zQUsdeOyeY2dx@K zZn9nnOIZz)4{+vAFYYu zM&0wQ0OokO&ne0X#gIkdA&3m_kS!`8sL~P+Yyw7=LV^VLbxK~yTExggCVFZM2o1U7 z;xn12-Z|0uoH5`mmA8sv6+q9i4T;iN4*m%q@+QuXPnV9~@vCpIIB&bXsbv~G`{b5` zJwxQ}w@yCE-o-vjZtS_h(0MS!jTLqxf8vXF+(--9U$9U9P{cafS%E-l$`F+_3sT}@878H&N(ug)q-iuC zU|#?S(Y`pqzAxMhKhHgQhVAsC*~EisGn*x19N#g08o&SCNX>!6d-tcMDg+obTN)Wg zupvKQbLil{IhYX!)CyMJu>>W60Mkvb($JJKtkvkrP7=7~tXmgJDiAzq>k-&+(0h`tbPg1E`JbQvVx~tx2V*jA&QXXLM?mTg(2K+!a+?8bQ-hRh3b! z^?@sZY)$!q{rnP57bNOnh@#K^gZ*bwH@NLH)~u@l?~@;`q@XXLacK2!ntlrY=Iod< zHTVm1ph99+k67|$uFPvsD)OSzHTK*aF=aT~4u2IZ>nVg6Ptmk1Ar6^Po%PgjtNZLL zwk0Cp9!1lc+I$sw`jywNZT4*g$u#)r>1!_#G#Fri&YWY^gpNSO>onp$E|XJKhnyrN(P2rFj1s1D z%ZO{d@hOn<8%2rGiG#HXhb0kvwo~cnPKqVv*)he6$(+lw<}Q)goxXQK>&Tf z{H9)r(aPWk4sLN&sxp)$_<6v3D&Tqm!OW=QBmiI;>BT)NWIwtlOOW%<(;2H!%LN@R zN#)S^I1#{3ECCL#gVzwj4SdcmT_X&no5Araq#2^6!}?e-FW~aeFA%-DQTZ4+OVeA9 z7r;jD_6dr<<;TJjf5vSqZ%0Or0^+vb`s4q(?|l2%UtVI91O>);_RsdnBKm7-YE&8x zBoQuGY}CL})onDX&aI5N(m2=gIEZFtDm+~0UD3ePZ?^?MV*@tQJ3kE@N9Q+R2meXUgfNq2d~9g2ueY_i zt}7H>{gQKMPaHdRaM#W)+d}uwTPowwS>T7cWx1DYopAYtG@8T2g@RQieuAsDkbxoB zjmHRUh)Y{mPS>KRSyN3HDDcn#jr#Ko<6{hhUl$G?6a~q&aCuBmwl+7^A?uyB6aNtB zgwH@Gg*fLb>`7DNMAD{(KDe;5;^ShZYt_m;1$?r(keOhq;FejcfecW+VM)J!Xt2Ah zkpV<+K=kH1f;fm%86+ie{fT4y_wCxbecP7J($&)-YP8n)31%yo#Go}uQ~bgW$>Rpr zYmnII2&_=l=E0Kl;W$^6#*Q9@6!LhO3+)05pGKBd4+@yf2AH(Tk4n==Ua#12sK253 z7$UIr`ue-x$=Eo3sVuvBGBSSsCibm2kd*Y$?p8C1+~XM@d-7s@>EOqGa!Sy#K`F}a z9AuYfYia5y6Fu=j_QTv1=Z3Dw%p>(W=L@eJAg*M){M%ev3pFjZ=U@**ZAz+m`9xJ= z1S8wAQ)9~A#r|(doF<~m9%SFS=_dL$XZai5r$v{i!*U%$Amy{WmbQ6W&`jR>ncB%#0LEy%X< z{P=~jQ3amLJ#$*IoddSG%M-`(B`-%%ZPLZXM5`5YsaPN0W>`2fxo#8-KbDpF;c~`G zs<`2M9`$<{(k)0N)$N|IvLT}T!m)!VN4f6qF4)~YeiCoj&D+sb?L{O(yvjM8Gu6R} zG@{&I$WDRv0S@d355Rv;oepp3LPP<=3`zwpz#cmbO|3Mtw_Rv#5H!Qf#kNiljZPMb zU8+^wwS|)>=+o#i$Bxqn&|}V?*-lS~uuG|(msB;N6DauK!p!E$X5j|Z3ieAmzEfZG-XS@9J1_ee}oY9_kyv=h!j*c%YZS$iij^j#m3=pRS zMELxmt5!hCJs^o1y*3rZSF{08PMFL~z4OVRNr+~8mHf;ORNJaV2Zto`+BI-*So#cH_-8p*C!$c(%w4VAI}cMMDEBF!m5Fcb?m{^ z;k_;Jtl9w~lX3Qrqa9m!<>(%G!U>Kz5@Pcxn%YZKIZ=9~v3`#&UzOav`-wDLY-Z7Z zKj8R--BXOpR^v4^pOm# zH|lcrwqe=SMC347|BEl@3(2>@uA9JCbV?4uQ}RCMM9>kppBMwZVY7!A%?oN;`o+kt zw5m2BJs?FEr8U)NlS+tjy#=EIORk20!x?50Rgv(`5(9o2qFuW4b91sYQk>z`-GwBb z2}5-kN3qUUM_Xt^;i-`(w4ti1Vd%(6HyLBJf-sqcdbbM}MEul9YYSb?Z6Ugu2ZNmX z$YWF+RtIInu8$cuePY$xusw1CAb2yd&V6(Po?%?bjg(*=cf>~<9q#LDTSa$Ajhb}> z9n}9Zzi3ph863|`4oM4#QPYKd(PLj#?BHrf860gy%Uys)JMd_uWgX4PnmXX#dq2KB zCR@m4MHfW>9wxRU268jS3{NJ0t}KYPqmk&AxYz%#uCFrCw6d`=_VRUilR|Q4<+{Mv z%I|^u-^Fd`*q>(hx~L~>>;QJF>YVH^p38|cdm+?!8?0Ac@o~9uec!3FrYVHQmV?hk zB;+auCFv*O_ZnI#AXr{c({5d?15M4gezLs&)f+yz^7+O$yUUZ$$K}@lwz&4TYf9VR zfJsFq`(NP;Ft=V$JP5v;Pma-|13)T)pXjlpHeR`f!;;;Z846yVp{r9N;W!7}<*m0U zj-tzZ?@`PKV}8`cXiAb5sa(V&Nmm&bjL`g2oV*2p%dZ|<*Voa~)KF82 zq-k6Tcd1fbt?RaM?cBCm3?HU-W}x)#zPq82;Tz8#IZV&q z!-IynTZ7>yR68wZW%8O8Scc-ByH_zkVFHJGGz&5*S4=_V5appuZdYs!&5KeTJ;L0L zzIXBjgM=j(?z@)>vO|{uYH0?tI`#av=`DD!4}b~yB3Dm+!{UClt3^V01d98M4W$tb zEvT&K2Dpn9u3;MQFvafF}RxP9{8 zyE)8z77+L1BjJ1xr%}t3g*95`T6wgv4dc9efFo+vE?Ki_%*tpi&jwRPgM|_Xg^tm$ zwrYfH4A+!619WmK$$=b@+qek1sQfuSy}9aX_AkwSG;LNDDS-CFI7bytr$iM;eGKS{ z0sW(Lc$`txM%$q$q-8dkbZH&A5x1U<^gGlvEiChD4}T8)Kn;$n#Q7@rPb<%`y>Dly z6ArDyRlgIx{`BQMEOg&hWI1`R+EBylkPaUVxnHkf>CKA|xD@pivuY=f?Ao?| zyr!zm?{hnHQ<5Uq2(~PO;*vlmm6O`i%vDmhbikp$s8$*UVC&RIcv22_cC@XLo|5+h zFte$@w|f<9+7|M#4Af7?U=~4o|v(n5Nn0M91@GSodF81Gh^G=Tb4$z=(`RKu> z$a`uuX-(i}RSajKRw6| ze26d}HatcnKxuJkU5qFq6sMK42;97E!t^;L^H))3lB`}%mS zxe$_^%@^-sNW*mnaZD>b@YPDI!#=dWTACA;E)vymBWrs5BqCjUQb(zTs;vF+(ybd9 zxv`}2(!(WetJ>$4Gt6)Y7@xRBMcEs_^CHk}EPmys7ZwUz1Rlis=wu)Li3}8jI(89# zk)Y;Dfr9>l08Lg~N+psCgSkjdUb#;bTV;$*7Rdi|5@=!K{bhnPo_&tp5Aw-$nkq4v z%NTKYB>O2_&R+Ack(%i{|IU7Su_VjgEfhAE0=c5ZKSph2KLMs2K*90>_TAhS)a!J8 zoiBWeIRMY-Heg&VDYoZ^B7{L7rBP71p$MTypI3RQ--~n{;37(+h}^5DFA+1dxe;}b zjEFABYu*bqYaYl!EUiLKE=RpU&WMY7cD*iy!SYnS=qQF`r7z{?pb?H#d>uAk)il)* z(z*ey!jLd23^?h@sR35{BEsqoIH$Y_T;>Ey7aEPLDfh-e%v~LYGjdQNC#b-A2p`;B zCx*YXA;`0^aNSVs<&yjj8rq?&g0NvsCd@+y-o)y`Nmksjuu!B6D8b)mr}n0q0Zndg zF(0{>7Og8}p9c*iXBp;bCwmX6?H(6OrpK;qWdAJ?oE|5|Y-`16 zCvhE8Cwsxp(ygTBzCQM)r@u?J41rexlcSC`u&#~`TaxQcnkXAwA(BF)u29N8qVy;0 zD&#_cf~6z^^auduOEmaMAOOb5&Dlc{x}JMT_}{lc8~ZOpNch3lJ4q0ZCmw<4fzYIMLD zFBr$FpcmKWnBr7|q;cF%kwy2}GSe*ZtQ4i=7L{#bch8}8jM&X}xa@S-AxsO}<7hm< zjgRkbsje(^Gxd$!@J2ytJ-1ZXPXtzIPdA#sKoj(*&jh+%Shi*N9viQ9A5u-)v5Ucd zuHz@LZSc~$v&W9oR3U!(vpeYtbl<6yhYr%z8GPT|UK-h`FYG@+ccV)IjpdXU;ISQ) zRa$h|HJpOjCBI?Qa9b@*`DQjvO$OkRmL@DmpB%L&dxYuZ_(Xv9L7do$s?=?1Bz5or zN7hRsiCuWV%v+8k=G28!TP9VAtJbCBoER~^cMpa)3zRO7N(#?l^(q;^aH1X37UgYb z@*V1AY{bB+@^TzJVPF!9n}c#VRt+R$Qfe4MFUZit{tPg|WYoN-UO-##{`iWIuDw;5 zVKGP~S3d{F8fns3=8JtQe$9Eotf8Wih|&4uE^mgNJpUwj4h4>Tpl)TKNOy7LuTu1sll z-pi7K>?^<6F*r03)BGRy@q$`~v_2J#vfq2XMPE=x3u`syH>-?=B2jY|Ik63luRKpy zg6yX|mLL85xs{b;UtY5SP(ZK0jN-VH{ipDLW*-qvw1Ol&a<}L$2pf4`5DD?T-BNRt zUZ)BheO`!)AXFIfmABx8(Tu1IT3s;F#7sJgfE02MszAh4lttvGrDU&)>BRZU3QU^Q zC5FzBrbeHa;bf$jTAB+y43!w#%n}4bSj~dKL@3Hc)P6YxAyg=VS)&&L5ws{ZL9HE! z&o=5;o6=qY)uk1I(7#k)GZH)PxUpYfnP|ay(8eZzg`r33KE|u2d0zT9Wf<8 zHdlgkJIfhncQv~QGWZWjENNFhHkpY%WR-IABXO|YU1{oH?EC7wq{GUDlINb9$hWGr< ztJ?kW$i@yDIz4B6WVL)ln?FGbV6N~DZT<^DMp;7qB(Q35>zhP{5fBP?NSN7El;-qa zv8=>mZICTbiAzn!{nU-i)6`ANQ|vEF2Lz9dk4dG?bC>rFw$qG1d$c2Eoe1nC&G(WC zFeh(hKN8L{hlvbc|FMh<`0ZWcr`m$YtwLjRuuoNAr=mi~)V!B7pRYhi)1~>s2BhA2 zp}D4rs^j#6V(hs{5+&Jc(j~y%h6kJ^Vqu^`WcvoDH`3|i__Gc5fnx?g35l3Sd{`vu zi2N`i0?HHy&j%2z4LC{_dkfKf4YyHx@@iQm)XmM#OtqSXlyJ4XLWDR(I)%?v1vi?8 z*AP&&RsmRJ)?p)haeX-TtgIu*)-Lq`qBA7!$a^TL!xD76%7GlCt>_>iDJ?(nDo6tG zDw=?0g#Z5^dgH4g<=LW&f7O^b9jKFqdq~CysP0*b*E?B%-ihW zN`bh#uVQ05dqtC)Oy0prn%ls2JDSC^qC`unh@E0!^xgt)WT$V-J#vdKvZ?%g;0Gc~ zkQrmD5CZpeDbjW9qf+(kyX-Xkzr6OM!me|@f4+5y+>)G|1(WhWZ1~l)E6ygnfbK07 zN{aih_&Wwg;`}Ukp#^rdowO5iMoQQ}2!F^#5ivx|MXe@MzN#^}2m;M^tnHwUl&{uy zSOSO?9Mo8YH>og-Pb9@as7ZKW5^AlAK&dJP-*BXSUjiDy%qve!lYcsevAEC>)fs2zkmhg;jC8nBX;+%*nhDc;6*BG;p5%jsJYihcL zOjp5jU*7Igqp_4>ijAf+O29Z7#&0l`3YZe3Vfm+J27{MjO3jHr2B|(Yu-_Fv!`wk6 z;21pux;Y+^A`*6p2M26fnL+B$g2{^6%!?Ltj3N?ueDfWOOiUgwQ-s+I8sG;aq$whF zp!;R(Anw=Mnu9t3nX3f&RkBDrK{(bPXYClEXq1eiJ-f|~^GlHQu4B)Sw&WS`gY&Ueb7#6vil*+_Ct zV2uD<+48Vdn2t`EWB3}*VHoIu`HT(kpB0oj_0)fu&P<3pikzlcpYY1tlW$ajGvIl) zg)9X>VY8OoX?i-J+#wnsGLY9Ri;;A(vb-v42_spa2Z~9DbKB&52<%ZJTL9VNEP(vPZ#_K%7JM0o`w8yqz z07#E9)t5J|_;%YU`tyI+aJ0-_k`F$@r?yh`hRsje1wWR-p{dBDS0CB^*k6;_Q1 zW)VxZHF_Oi`Xd1*tZAH>z@U^C`D)_Z^>v}l0-jeemsn+00{6c&H!l=33bKemFt`B9 zl2XH5w;HQVNUc;CARxsh1Sd120k_I9XvwjS!ko2?K_@z6@OrrB5;ATLiJL3=8xRS= zK3g59KT6zosBZ$i3qP7I>(fbTdQ}NcpL4MSa3;I1hNf#84G`KsWZOv#x@IqLJUT(s z^6I_>a)CX4u!p7xHiM%p{~T@{Bwx4&T=+q5V%y8$b!DbPpHfxL9-(PpoYgO6AE#lZ zZz_WQ9*4-A9OFYQ$3laykQRU+(UccH1~zfJ?s&)z+km&QKNCK|93@hTOdfhzB~`i#)KR zCDg7v(sM;xtU9CPbB7NJ=o6F!x4=M|T#`%q^ED;Tk*(4S=9I@Cy~? zWd)v4)J)5ykw`9DLbw*s$!4SqZ1>UJ#Bh{;?x`t+*i#3Dk1W@a2RdH0%Q zJxBrfLE4w3-3j{H2hkU46N)mmUN!hHO;2sj-s@L-M544Pw|4g0&tprvhpLjI#& ztnJ@0mT`QfL69NJOwz(eBu!;%UFs{^GI_R8s8g6EwTJQ*c|xj%Ed(#$4xVGb=R&e{ z5JcaQ=yt0Ldf8`acVfH~-gD*I{_0M<3>A(0(gz-N}XLT?8E8$(t9wLqC zKx>rP0vb90-SV=)C*Rbl!lxs|lgfg*M0R>6%FnC(Wmqk_F%wZMC9QQ{6xoCv@Z&ek zY}&9MeJJSEOii*H^@*`DFvE$AKsnCUiUe2d5-cWJdBHDlfg>-tRW8QHz~2FrBplTm z8*mik(ssYwnVrY$n4(5q>gpsA<~Tw!l-49l$$;Pt$39u7QLR=(QnuHC_SPmeT3Vi& zE@>dc3aqj$4&lTCi+H*dy-?w5rV6L<70lU)r60Uwg^-?p$$1m1;9ZLZ7;l{3@Q>eas%Oh$fveWeF~cNL}6- zwQ{MOJ;=7F!KG)9ZHy&%#bk6$#_LI8WObpLVi?k&qVL+Nt?Om*X?gDS`wyIMuKa#?Bj|)Dq!*o#pyYec$1u4Ye#*WFmdaw1M50q$=Cr9E5&JJk`S`T6)Y=Tjyj5E_`Reak ze!R4`a8Lh0egCttD_+2UEL>zpVSblNIB>^j42+%EB?dYwcz_o#Sa|3rq6OR2&xvUC z^{VQEsggk-k7!egLA~dqd^C5o5Y3~3^UYOA3Sl8utW3mlvZEihN9Id=`%$=TFRSb2 zxJn2p%;U$~SJ#`^O`xYYyxv_jz>J*J1np?&2*dq-Olhdtw3q_LW>rxswh=(9F)uAX zmRUoFN`y56A<%{5q>|TtL8{Rq#ZQ>YA(l$0Rfx93x`C{WHO#~2{PrLttKQSg5e`9J zL1~!wQjjZxSFAAH^cvxeW+t!()fRQY1_`Z8e&#JVXeAOPha`vW1^AvL=@&@Sqw>_3 z56=My1T0C+b5dK zo3@bifPBs5S$a0v|HN1SdIxw4GqX08JdsrAB!89@Q=}n3Rk*ZSIPJ5ja?~qAh1;dU zzv~I|=_}{b-GBaDY8^;Mbx0cfsqj8#3lT+ZA$AbE!J{F1?)ja&ZQl8|)^bGL80Zg` zYzkbmZQa4~HSDbVDR{zTh4G71 z8-}}K71AGE;Ut5UsF#ZJj0yCP6i#({Q*n+#7sG7Z!Hr3c`KjHx7?&=cEk_R?ZEvZd z`)4`b+p$rjfeLn0k+Aw=MY+EygjMdG-MWpY@X+qUj_phidfvNtF>M@$gDygsd3Jos zulInKoqDmRwAfq31#FcZMeL~!(Wvnylw1X3!iB#I#Dpb06IQ~*2tF}vL9H`kP*ZGS zAZ43@Thslpgx$_$(gR7d!FrEC6{5?iALCEtC35MjYTG5VRSVy-or~Mm? zoG?cXMo1gsF0fb;O2f|&r-6czozwNza4CDtF$L1L?p$y?NPOx1Y)#3~t(gk;=dpR^ z$l`@mRaQm=F?+4LM4KfPdORkuQ#8IQ7d!|vZ5T)+3!N%<5;&!WHWNxd05zM;{vf&% zkRbK?W-U9${_O_#=S2|pP_uslPlGh}19A}TA#clzp8Ngf8)YfcnIds(BX!3U_jIk4 z=j}at(qg}5eEd8`#U$s8!S0AWO)^FQ7)gv6qa8G?540U<%ql;|;G(G?3#epGs+8TK z%28RFPfm=|y>q^!Q+s;Je*-)F7RW`}Mh(n~UxL_R7L4Ex#7<%lI5OXgsNCN9P193o zUmz9zK(QiiXb7U1q>khT-dT_ORY z3Z*OP_2sWlSJXS!gB{yurl(*sGThSKDBBb^_%+npwVU4y?PNd_4CTkL38e~07M=DW zcZrMn6eHB~dU{E4qd*vvwC3~vcl^kRiW?b0BDju_fnC0HH6zeR8l!|k^s(kAFC0Hm zVm~UgM#RI6R+{;UMl!w0rcw!H|COg`Qeu-6nvWi=_N|{j^4GFgy88xWpL2ny58pCt z+O&VFZf=^CjdZluzw>xsRknvE*q^CtX~vlqO;*e8$UKRrT&CCpnw0|D6{nj9|6wKL z13^jJnnVgQ4q6vt8au-tDatpe?G)$(F8MA6ro+6-m-0 zm9rz2ntTz&EKnbTsE5e-1I%&4PV^ANz`>zD_zY-iR^*53@9t78&csXUU>1tFv!e}F zbY;yvz37!o{urcwmu*Y3Bw`?3iAi{(5C_k;c5xGnN(C=q9!yLwX4~M8Gqea>Pc}EX zT~3A$6`B_T{2O6TjSyK)1E4!Ejannk43aG2u+aq&OT>rjw5Tv8aw+I+YpE;9XPhBj zo~ojtVhN1tLt!y}i6BhUw2-TPFc&fM4)$T1;bx;s9rUed%qAi^iNcma@sS1gFZX%f`X;pzXOC)ke)UzVpu8fz`>*E?X$III$4zh1F z_V|~-qxM8mFTMFjwKQEQOx4&UNv+JCsidjYsBHQ9XP$@z>;)Dm=x;Uqx_7nIx6ocB z+62>wpS~V5uqq11fE!1>gergpxVZG-Zu7V!JV{qDDIDr1$s1iS0pFVD3gE?C>p)y zNa`cQ^ca`Z)96G%))w`_lcA-$9!u>wu)c%CE?#Yi4FhOlW=;?V6(;2%-b1P(Qa}kL zNnD>ZK}{0c0JPOv(i+`f3HRNUhK*r+0g^jPc;J#Ef6dGJ~dUZ$ z+P-aTe;>AT85|}&tri6qliRbqqg_Gu@uUs~9>Cl(qZkRB6OBhnKvQKcT4kxp zChYroerQB-X+GT&j|#W8y-0`S!ok@ts(mjex9phOFwi5I>BIT%;K&Th7oy8cv8aFp zrV2=ud{v4N_MeR_@vuf2l5d91h5q)o5KN{~b42FS5-j6SbWT6n;{I|PCk2e%W>c}}|v0Et; zNvd2?u+!K&s6$yYou(L+E(FZH&QlebS} zG4G;6Z(WFTa_Qpa2t3z2vAQ{zU=)A<@{(ZdJPK;usAH;y&^l3~XZ)2G${M>hTcOslVY2<~VudE6<db_;tp|AqpdAU@wi16csWQ7Q9;e{>x83!BBUHTd&`F`{|Rrb|Te~wS(A^04&Wv zdkuU&tBoe$4>=tfX=W)+ikL7b0DVk!BpqZp`V*hu2*9NmpMP%gY4koFJ-mPWmg$X? zV_wawc>$OkZ5=G73PXJE-bz5!hLZTR#}Cf!5vd*q2=*W>{}+#MM6G~jA<^}HKD zYp_b$g9(UVqwR-^S2F|F{M_o!OW4mwtulZ^yEJz-H=GJ$J+f^Qa?8*-P+|f? z`VSp9S_^9m;->nFXThvdKe@FUe0%gFvWL;fp=Sl^wN6cPWNsY`@1#5liRjLE&=E<* z7%@p~2fx5(Vp#QSz5xNKe71;>GO0ung^sep0RZI%gU+!1-Jij>P$gU5OUr&k%q^(S@&;Pk>zD zk@#D|)*@Kl3)<3Np0+3W9!hJKw05%J9;lJ5yqV^7EE>xqU+gOCCGTKgV4rzQ-YFp1 z1yB#Z)aN+IC#0DQ&-JkX;D=}MgUk-Xh5ZN*A`J#o$oVuN|1SuV^14z%v0S86Vl4vD{E?FYY~PA)h=glJxMp__x#^Lh2v>hwxsNU> z!f$9x<=h@_gH|;McX(qBAnJl!%@S}~MF*hs>cKyAwAKUKGE}KRnyo>#b#ftV!-~WfBh0bywC3$x+>2Q1N(vp;TOOnmRT%ERh=&6%nUF z`Q|=}q;E6(qTH|3IpnN6?~i{kTn`=|XWwfBsnp_fUEm9-z#`j5-@OG4<*Fn1h|^=# zY0d|?*c2&osY0bRH$I_2)KHMn(zcWzX|1UCGqD{lCtJ#|JXCFnPZ6IKZs-J`rL>Er z&JU~1(=vCQ!K3(g&Y)aW)^h&9Jrx_$bMGV-yLb2PY(KpGv(xZHbh94_-(VUs z@2drPI4@XabaCF}4)0?x#%QAzh)?UCPe(4}u%E36_OmZqO@>5>ZzuwrZlO6dDIG1Z zg*c5knrpeB*>$8;Ulz=y7ZOxvtkp3uj7Ex(^Nnsa7BOF2@5Yl~*sl{efN+bFqo0{M zQ%B%>OXo0_}GsC*#( znvgW-u$i5*93lHl_F1i+{4;p=%CXV+9tLN@?_b?X9UR;u%n*p#rz31SU8QvS{G+=? z@?AGllgpp6w-&=A*~VTLev8>psEIyc#H(kqyGt95Lphd&N=Xh)0w@$5yHbJJl}qJi zMuUPX;7z3QeO#MP6+z&k(uLkQ%(=W2pleIpn;UBjJ$X6l*iks}-#jHm%jjZ9O^G={ zV5s0|T|r05h1wdXJuE#zVSE)o3p4)}-@yEj_vZu9+uht)i5&F`z4>`L8kLeztu9gg z8VEuZc+yi~mpUO%8!eQt&Q-byq9(}PB5*1Z`kX1GmZ1!2Z8!t|WY&CM-Z?p7IWGwP z4Awt4!aJSO_JAq?3~9D|0iC#gzwZ{AC*I%_KT!m3p1wgq5B9|WSH5vJAHu}lYARX0 z?Il`XRphEm7bdcwNIY>yulPUqb)>Q?Q!bkvq>cN}uH4P8Yfw=UN5S7eFN(=wU%gV* z@UTQOb((sb{d3!OQFdTcnPcMxmclo>z<2BO4AT6K?00u-GYdQ`kDMMcnK!j6bJu}8 zwyfOLc}O5wcZ5vqTq&O|D%>_Y67%B8*C<0uS~q-)&U~#BZf1@W2BMPq@3X-6tir~r zsqntj8i1BdY>Wmi8`v^RvTCUE5LJpK0Gh5hmP53P8$ONtA&1Lz-Apd1;+NH_%FuAVp7(E+a)Rv_F5yvLXzehtlCUH02PJaJbNZ0E?D)6 zM8ukeobR zcp2^BDYj(LQ>2KO%}z}bA=zvsQC}8nt*aCP7Q7CC;M0M}MsbnL3GvNztC`TQCV|8Y zQ$o!etu$!Dg}Rp0_RLky9+(9YydFL5)ikc6(5qK*osa-R$XJ;Z7sawVL^3kVq!2Jj zQb|ZKP7{r*i?HR8935~m451GAnw7hTC?g*5^DAt7WRo_NVVWDjuQHf@Q#Drd@$}6M zqjq*E*qu`#2bi~)u%EH7HQ)ZDm6iO|?bfkP=bxf7R#3macpIl<$o79tSDaJ{9;_ zo0YEamQ-nND%+FnZ=!R`Yx{f&j_0i=Z`D1;WmPFv0JGNY?9YWS!WG#I*WwiDI?HEIPlg%?MCoeE2x6%}IfMebngX(ce`=T||b%4O%;;@F-8 z3oeFFu5ru}#0T3IF2JE~* z^JHI72O%Jd0Un`~f~k!|>r66690+Cej7p4CBAp`GNDpy8EMaB`0f(T~j<5XWGOwN+ z9JCB9dGr8fm=6Mm-;fxakOa7oPEuw&$hv;>{_&k)ZtC-f0kL=_6+EaOnKpsnws;w) zp^9CyfL{;0r`8JuCS`{F+X6vhg3cj)BN{e+D5`8CuR~m@(-%rD%9fN2@`VBKd1GV^ z(A*zUptk-lQBVE@_{g>z-T2>@)BZ|MONxy8A~BHX7ph|2>~F+HdSj7f<%VBZjrPsB zba5^ukNbyMyGP7STah~oY>CG?2d7%?>?8hRk*KAGTK4H~aIa&xim8ltc94Aog6qIQ zQi#n_%KjSr#26r+luh&z>tX(cCwK91FJ1yDxm9sW%KXRP+tz{{TO6&=X_wWF=2(U!c{ow&O;hpG?a#quJ6>jk$%ND@wN zMIwqAb7jAPLS8_Exlz_b6IQlOAP116|-y3Ts8z+XQUo=6|h$ z{q0dA1+F$8fg#S4GHxCdHRCRxI(zKohROAeHUJFbMGzf@WrP*SvBs?CB8V1|ArtOJ2+biwEY6We1_G8`Fi*5) zu411??;S;sGuvmTHcXmeGgkA==dvCcLJZGMcs{#j<20OhS@Tcn+|pNx=6YgSt)mYuvzyKw~4k z9~m4NSmhC-=6m%5UQ;mt`ol*gR+WVo_^hAEk|Gnu-vPS+fvsRmv+7pX^rw4H-_o1a zvCHQgsu`Rf?brb>!f-5Y^n>K8fogYi)rO5LyA<}Q456^kLUoLevmbm0%-VwJ3|Y&4 zGOZ}bpH$AiC2=NlVf@#ULVdz!pl5##fPwuLSOj_Oj}Z0F+1f*%g&l}ei>Zo%m#xMX zX0#-~_aLQ_+eROo=}t?Wmo?Ed-)?0@bl*mz4Pw7EC0KQy8a(Qywt=r5EjCT zJ#9O=eTs!|u&+mmu&vi=NNy}i6~Pg=72dVP?ZEJKk;{u}CZvYLQ?=)XI<(uCjL{kq zouI?JsiU;ti+59yuPw>Pdfn($2_K@wb5eMI66aQ-0cBmH2m!&$=-{jS~%~#x_GL!j_5>cI<{LEBTNDKR`SJES|B~xFBIf92}Zv9Q(2uvAgwVQ{gE_X zU@+ClmLG);$VhN=Wg(6Db*UP=lI@E~S6MLG`ytQ--|JHLQ{i`+V}zct6Mo{YFf;Ak z997Undp^^UgH}r_=7{(;u*}ZS<7UX!%1DVQe3p21UJ;tePl#VNCzlH|=hZk&WI6zd z3uRSCu0fa;0KmVfLw{{G&ja?20)ufdYUbyymG{D23yK$50w`|?1}YNgmqB_l?Ql$$|RL&f)X#hQW6?&$ya^>#oaWMX~6Wg0hJJ(kz*&pn>wTt@w#+@ekLHP~( zB8vXBr6yT&^KB~oSpTLUlQ%pBakRVB)V(Y#KWJw6u{G>ytM?HQ@$^7$>6XpEy}~a4 zrjS;~*zI49Dd0yg6zc6Z8FOdJ%7<1*iQ=Q*C)8w>0yQwgH)8-+GuOcWqYdVY+rZKJ z7&N@><;L@I9|gb1sVOQvy4>ET%H{aun#$mNF3C#6#&Hyp5~4HAJF;`}@GZ(06XLNJ zLbM`GR%yPb6j@}?JKJ*c!P4D;>I2 ztQ~-5e8)z^7KH_;6=|v18&1G^!?m?yF@YuYYem#(FqK#=^?G>3U=d_lsDPAAJO|dM z#1Nc;C9b}WdaarfP$8ydBur6d{I`|8br9QYM5c9RVwFNos=nHT<8ZL4ej2mlDL(KNohMB}YE9=x9-V?>6tyB)fQ`^smNe+27siRzyhl=8!uRO1E!~$tELI z720grW|vo`7%E`|xcmnJRc$u>J5p?SXeo`t6`d(!^5jh`M3a0&!jHkQyvk@Ukx43z z=3+V9QD~2AeRNRs!Y1b?GKamJWhXsT^pR4}hb4It)8pc}y>kLUrD<{_KS~&oN>ep? zQMcRzk3X~MmP!+H9f5nKOmFgv;0`VOI#>8O*67S6e!^L4@iwR-SED719yQoZe5K=; zV!1&qm8l40NzTVB&_w0}LgcvhhP)NHz8gQ!BtjMZlEtiu6ou&yE`op#E&N#ZF>!$b z-FcG|c^|CNJ3w>)k!0B1f4Hh(M%p*43VxG57fO#fyO{tbq*@ZW$gz=ZGVU|t5rLq>JB$wsd{7tql=$+%VLU6a zl$(>B#M_rI96G28nQxB{;=uvVgL{70;UTp9<74FH-tqo!6Pmb=(%>NhG5YkPgoinp z!{(21W^A8mZ?3C>pkI&(WlFHj=xV?4AW0Sp zUWGg%oyM?!k||8hB!9J@i8eS<0G<~K`Wk@byS_e=$f>S)^-m8AncnIzXaEL!OkiWq z7)?3**c*YiqD#mW7n|9?gQ3dx5`mIbOK0xUN^>f#-C`BHD9+I8{UY{C75lJUwz-D> zgT67*BZ=@^43*+5LLe?pH14AReML&jb7P`X#gDRi9$#EqwxMZ3gIHe&cYL;9utL2&?zaeDy^` zBO|PcPs>RwiUdZ%9dJiTYgn=g$e>zHj2IA6!EoYnt(`nX zPnQ0s!B~FDsE{QN>=*IYqNsCZOLTnUo0d^ z*SS4jtrJ9mXZIWx3#4SR@(uQ%qPo78+*ZG&jE!!*{=nz#Pa^1wXpp6qsAm! zqbHWF%?+GN7eR(4o(i+iD|M8Ij-w*ji7p70Gz7<>2nSOGGUImGSKx$?7)rR-T^4;e z?4Zhbs?;VS8K63q-3WkX*Y1+NMroPO=!u+lM(DvuQu(&HFF~~9^uf8l;@D0GScZ?# z^tv4@vR6kK(PZLj^0sG(C6YbYt!%p?Wu!Ob`ho4OZw$5TX4dtllV5*}RKHbhN&Ro> z<>ht96q0je)bqdUiQc^Ytx`iuUE~Gw#Xh&Hjs5Xf_L>-Fb&{z) zg-^)z>_1p<8mXqXYBMI5Vyy=dvid`qDW@|#h)6<<)g$V`AXh!(%mAmOg+5zQ#fpQs zvT`uckCc$HGf{1g%D1+9PQ)<3UtCvO>_$p-H6h&ynGg+k%ySg_^94RwUuWc?JYvD1 zx8-0$LAnKz_7;$V61Ti?;fzgaFz$<=PL_>H=LI5=tqgMFbbUi}YQ7-fg=^=^2!N2% zLI|*3RXd}_7Og=+Z4HqBQjXDtD&z1JiN|4se(-Nfb)u0k#kC z5X+ni-UK!?vmQLi_Gii>hN{V(uInOh`HQB)5!acSZ(cd>V86OIkG?&r*XSy`vb*5c zNMVAec-#3{@8Xrn@?O$luN6sJhFM4Z6io^42VancS7-2x6(_SV&z&5JJ}@Dq!cwUSxhjVH=rA*8VaF~!Y5@})MKFC@ii<`- zd`uvzjp)achPacIWLd3icxiqdO=4VHP${HxjJ8K~wm0IKhN(1Vt7e4)DcOQXERVtK zt*0y-&vvfgxeFs8TPLS?;wz|O#jQX*Ymafzam z<=3Bd)j+<<5PmFP1U+@BR6~$*R#lvrN$1$OIV7Kp3@~#pfSIAK!O^2lBRjX^_h5Q- z{VX?w6h5CHn!Dh*o?(;up~Kek4JBV#Ql?c2@X?xVp%?=GqN_InzXfU{MMg!s;_jRp zVSSN4_uVsTMgDziZ(pVFY)enpIq>3R>_TmmR8-pvHn1x_T>@rn5&4%*?FxBcIeRns zVa>Q$I#|K>M%@USs+g!zmyTV3(80d(1G%vNMWJ}h2C{deR3yqDSvfFOPo7)ZMpakp z4GxMFh_9UY@$b$!v3Km5->GeBi{wyC)szaB8A=bHATgssJBoqY;ds8n7T!`fCQur+R45p zd_?drVI!^tB=Fl|DM|_Bm{7$p?1g|h1Q9CdmXIn`co{b@ z!E^h5xfUXY2pAtE63xC)YQK^3xEt%^>>W0-x4VOdZS-N(|)7gPYEuM zTF)pHovuW|eFDJRi+b7jJ}mA%1l;hcd)QBecQWaOmlz_BfLE~y8+UwR$QRc>LC=bX zlw_>JhI9`|4q)Zz=KJ?yt>cBcz1XgTpXVsRa2?l-iCiU%wYaXt@9V>#!~EnhR~NYv z-vPOG!GIB$8y;<5xwO;`GoHqpIv%^5-+@dnE?wxUDx>PS(Xi=#XvlBj;O@Qqa5&nu zbuVW1VKE1cV`D!H-0cho(IpgE7|w%ZDLF~0V5nHmkE4;nWZ->sOsE#sX=8CMimk)o z2U!s0m}5Bux5I7|k%TY|07{pUfhG$)-qecFJlDGJ0HeIm*VxS+g|Hvl$T7-e56=Q{ z_~3rngW0ide7L`@1%_e8+EEoyRuUef7Pd}I&v8L!jX1nrX%34a;jXgw5EqcU8+J7X z7J}o23Grx36gGu%1pWSCdPfM7)chc1Py;!v_T#R4PFW&^LDRylm{cV>Sbp(hOkTNP6N-J|Xy_$fwtNh48jF z-sD3=xcMSioVi5G+T+b-y12B8>9Ox#OU9F_NyApb@V#$-q!i|R*_}O~w#id9XWO=s z{x8_K9%?5Cl`g-6+F05Go2$Zl%W|!$OC&0{Qr9g%nmHvwos;`u_V*-HK$wUIqJ`+- zT@B7BSs|d%-qz9_YH!EK;XSj|+R@mgpsajrPhkzNFNRC|(lD9KFV@GR!%8NO3!1~b`cfoS=$BT(gSw=^o+E5-!f*lXwnZx<0^K&^S&{90a}#_nt!-Gp zJaF97=(t^IY@yK%@lt6?PBu+7;pf)T&V=MB#SAWYGSU#w)~_}KP+wD4|S0RlWodB*j9GMfJT22dFr^^-T)HzHbVGWNaq9{Y)a zq+I$$(mepNLhu||5Q-Xyf18^5;Aq+K$z3TeF97qY3iiEcOP{!F6D4`z;jWBtlbV%3 zqc8SfZC#94V@;BZ+{G)~*^iHZoxg5Oc<$j}l6x+Lg!1SN(Lv`Vgc2+f31Sgj$jX_I zrmoxFlAYbF^Zlqg^T6*x3>aG(?{CPAGuOAwczfvYfBEILm(hx9hgsl_OeyS;DHKB73G1o9(5iOGolj~s8H_9!Ui%5W&!`!*h zda=F=Qy*#q%WPqjt8}xJB6SjBa7+X<;8Ajq=5WUJuwpt9q0+v{ej^eey zrZ)0AnV~A9vx7z|IZK8WHh-6e+v6BXgHzt1cl% z3y3wNdKZ9FNCuBuSkdm0SBH}3;ctD1LHY)O? zJ7G_mWPioJtN_0Ny-yq*95IMvTK3#~MMM|*Y5HUZHKeks%rxDV%C2(&S81h4;!QM{ zQzX5zNK<~D&WT%Zt^Ic=R6|{N;%lZ>Uz9J(S6&Hs`1_tr6?e0-T;$<6x^0m>} z>}3fynbrxYNIo&(3}E_t1xyeWlF%f>RZMmOydK!PPFmw36a!j#jhiADgoH3tN}~>r zqs_MsHsXP?&UFDDnRX&_9ZqCay^&mK404b-;1ymGaxz7M5EzY%hood7#KePCqr7AS znZaWw6S@+-#AOAV8MPvB0Sf+us1ViQE_U*0X9GE8auw(mxq{Omzp9*~+lE%YZ7^=x z^U3kn@#D{S|NW=C>wb23OO5)zPn4al6%$obc80A_-42u6YXPY-f3@#*S4gC7II|w%DYV^;C3gQO}fEnYK`{{a>zLBOaDkt-Z=p$B^ z7~OJy?`^~G=N|T&4SV$Y=buNP!ywFYe*n=~DU7M9#C2iVUTlmegzf1xGK}q= zkB&hOYRM2qm8=mKATA(3=%DpDEHjg>N{Mg{ye3E0V+{PsRX~Ve2Eh|uY=mr8kg~yS zjhoP?C?w0zp%MXfL&%uT2tQQ;^wAQ7U+>s+)E@ot!$2|wo;&2Iv?xv;DA2h6UKmMs zZ))2L>`8m3)7W1>2!_Zb&X{C3o5hY%rs9Rz%x*#DE!7FF-?@D8PJPd<^z-^s_O~lb zRWapvk_QlQp2CDzS@rl#E!cDCgNr*jxMd+X8uWR;J0Q;7js-a|&dp zz3{;Oira!)SXotBhLKQ*JqHs4J&N#r9&hMJ4(*=9+a?kV^C1h;_*mF=Gb+M(t%zhO zx%1YWZ@m86YmObcE%dEcPkOZfUiHh4}#3+l)NoaFw+W6!g2S&DniIxQHB*1nxNiVE(ABY`lEn!AX`1H z*3R{$?O|qn=n?#%;Clx=iCmqp!iL5UL-@E;*k1~fdljTGspEzAiq^j3zPO4MnkiJ3 zgBLsET084%riMxYGn)U!Zw48ofN|FUZv0(PUY-%({^=Vu)u=i23j4bug`#@XA7ZUT zy;AG3-Y#0OzHa67F=Y|Gr=dKfsI5gD3wG7mm10+6L}F#B-*Nwb5e0gH*;9!`zy?^z@PHni&oJFm-8?;XP$=wB}ntkHZ zgc`|DD0{TgC1E=r?$bufx~65KesDYEjElF^?~+GJvcFDZ=-tKS>0;dsm6H(nlbEzE z>s3kSiRJqY_83`fy~>)AbDVwgUhoi@B^A;guK2O(9*Hyyh}k(B3Bb_Hj~y6en29}9 zFFVV6|AzFATfR04=kR>2m)J}kCT<}m=Og4;xs_vwbF~7-9rw+_f3CYWFq!A}I234* z!Fv(bAutNi9A_L&)GGMOVcS;49Eu1hPbjVpMuZ3_=I-!}5cz8C(J$ZJ8p0Zz6swTN zSzPQd+G47mbF<2z)ChARxCmI>M*2oZ_=1FC$$*Q#8YIM%-R*G-`3nq0j- zO^ppS9X2);7p3I@$!pJ@J$-U+&+gf6VZMW}U{#rH;I!vt+p;oK8A1|-4`7CCm4Fbi zs8f1Dumv;a+Z2-cUSCWEC}tPHP*u>i*)MMg{iu!HTqh(0_Fgu>`q&`=ZoUphpac81 z&aAe~#NL?sPP6$Nv4g;l3)_4Ftryty1IVf9D%kRy?GD4Pf`G7$eU))0cM1l{oOvzh zZ;Kh78KddW&Aa@qtwKS^aWbi=g%&iW6^<1YFpQ&gge)77e38w*Q3xLTVx?IixbxTG zJiB{u55trxc7p4eYJ)C29&9^4#4yv7>>OA*ab6@kdCirhlt@OCU72}_0#`ype^>Qj zL|sOMvHy=^H7P26`XSn>k8v=dopHtL@UYox%QFd)r~vUr$Z$z58DM?~%Mw2;N3`~-;%c(Yf2 z-C0Jrs?U-C8Ld;2RoASTztiu&1g0$co}(EAf^V(c$FMGA1KjID=S7CN_g%mIdv5}hY#Jv!RBqj?bO|YCq1lO z;u>R$<`@Z!(xCSR!Qq8?ybTL4ViR>NQ;whF=m^urQ8XDe?RK%Vqa7B5G?u@CTPV*C zQ_yfJ7_`InNIqAwMhXVvUQ!}lz7F2O(5qY6JHU=@jWu#XU65a~uqCpTS4e8D2<{fY z*bn;sg;a5H&q2&~(}wj!9(c@-1o#tEIq{S|IF&M!W=DK*kQu9mhodoYII8oxq)jLc zYeew?KPReW58P#6wU2mpJ9Dym6>TT5ca$N!F}N3vxL4o|&90Ob3y&5@3m{0{`)jFq zW@~zb+5N|_wyE#%l^z-egLn7w~^#}~1@yJ8y?bEL^o z+{gY>nsM&XpFyfcT=G6RT$~b{)Wbd{a%#;5Vs->p`LRY11z4-7FhQ3u6c-rcTmtY5 zhAPx2x+LJPTMi~l>(?o>&+NNm9o$Tz3^a}XmGE_D9}x$Uv{qOxt|zvERL(O6+k;>v zmv5rt@!iFm>SXK=!sqX?DuSEeHOA`@SQQ}AYxVpV+b;f!!>gu$k|+7Ug|`1iblOOL?R5iG=$0G=J8fvz!_#tEQ|_1(1;IQDzNcs=(nL{|BQdd%77Uan zflp{!)|wuZq5?DT+t*L$lt`n&T?e{q|MT~MRz|VgH@w7tV(0;hKRr~mzN55>a>W?Q z$nN9Yx|V-HR)B~6ZPf$p!phG~(O}n0nLT5E_P4q9wlZ)hsIrYV^s>u`Uvg9Vr@?PN z_9vx(VJx|#iSt^jXvS7hFQ-0zd~AH>;kxP^@;52n8Yc79- z9MLm`JBjk$M06R=Uc|(eF z@wg)!8|cW&h6XUvt1&w*r8!)$G1P{Y)#7pR0@%6D@rI{6sP`I+F@g*)*40h2=o3So z*2TWwLLYucFt-R|&|G`9wWYFxp?o-J8R+*Gco;f6O!Y1!O`jN|6h*@Iih#JPXpL~K z%yTU6r^bc#Q$<15jn)0sBujXVz5v?GDngaUP`4kp$$Wu2#g*a-wMy~=))L>?Jf%@U z40TVn{Gdoc#x4+R)5&mKyP)O0GR)QvIXEUk03tKm8}&+ZgX~0uwut@fBk84H!wdQQ zyQ_49(wwHg)>+{E=>CldYHCH1Wd2rlHBC>BrCtL5!kr?~bR~OnhOi}IfUk-2G-1osx*VWjYN6BB2J7T?Q;+f|4h5{gDso#L# zm&cjTM8u0w%oMKtM(l~#6)-D5-kt2D>HULbj?fjIR3Ii3UmcEfA$BYKQ{h?W99)g< zpo()X#;)x=z@eZNc)(Oq5(GNp8G^z~OVN&KOH~z^8wt<$y70;yX8}^2w4)ZDFeVT) z@%`8y5lv~BOTuPR7o4UNe9UqKQ5+jTu|2@Uwq*sLSB#cM(<4g_^(DnL)y`Y-(OJQe zs+36>AvXvgSpxtr4dT~Ggu+!7ORZM2jiR+=a8)%G`9eoKT&!&#lTj}SPWW8_judl< z)s&L~h^%mZ4Hz>8YiH$+N(GgKthk+8Ye-T&@O?%AuOOi%b3S52GUk9HBDc!4We@LC zz=-~uHFHz9#sqf0e3GW_dH%|e{?USJDisKPr^)L&&x$1Pv3~)N zcT6=UNvAsU9qe`2Eip~Q$vfFQr}oPvUw-FB@Gkg1$T`){9PEi1zFy`_(&UL&zFOJB z-e{*9r%K{0ulXTtbJ(LSZjurene?TFzgMzf9!`$#ziZ{4Lt`7e)my;7M6UQm2W;yR z4eYzZd+}QG5`Ngv8U@`PWeE8ebM>FkpRdwmm7k(QhblFA{LY&a^|(cZlgTA_w$(yA z@-Yx$8bOC?53WQoOAejJoS!@F4u{JiucF7T{s$Sm^Mc4|eDJ)#C@_f-oL~)vw*_Az z7W70DrC83sxrs(&2@4~`xUI{rFbzcFM0kZ=05L>d5EzLp$N~j!#NE>;iX35z+^Ggj z5tl+Hn@GYED7YGmn?i*BnsSn;492{5t*cjOUnd~C!)Af_{wWfvM`B%J`Jeim%m6WA zKP1RaU1i#K^*s#|IwQ)jB|lK zt4ZnUX_DA=h6>qNe=KhTKN%>L$;#?ke@mBGmKmL*$j{Rc$Up&z0&ZtwqE{;S=o36L zVD%YvKAEgouk%D8$H26&(}j;RCt&{fF&3OX&ja!oC6`k!({OT< zTx5fXPc4pY(#jIQH#602j8#X4<$4#Z3UZVZfkVd0a)bt1yal4l5WNz`JW+^Vxd>_l zDhmEsn-xZ*62Hrd_YbmEg7N+B~O$lZ|pmH5O=4ye?e+GPh9^QYrQrLz7r2EVR#B%!fT zXlKvJ>XY<7G=`aEiQTrb{Yyf-ZZZwZOOB3SRB- z84KFVX@8fsUL&$Mb8`N?5Lb}4vuVr8zdODfEWc5BGCwiQob`sRo2yY#NaXEwAS zpoBI(`XrB$Hw(8?y+jmIN@$9rD-33IXxsyP09%-?goel>@`;DS z{=7`83I2KBt7}0KA(rA&LM=t(ihem(c}h#Nm>}pBwVJmJan>AN0&KX3&z3>BHZ#ex zh8~1eOdV+^2#1q|Xcdkt0l;pPQma==uyLpjnz&F&T8qW0;`tdQ#gWHg-j1dGxhdIu z+F?6;+s>5l?le}n{^GYj7L0?#cl%4p;_kawK4I%$eXVTt+hdq{LqKUX3`~VYRmyRBp-8r=}gjGaFsN(Ph z*0tAQ%uui~lz1k@2;o@}7f6of*PWffU|ttIIJ#GXf(sfInkq#PI*IgdckS4=W%Kmp z##K1RLbNC%4tENpv4LxuA9?w4ylh1FGF;se;L>NDwx9!M@w#h|9LD{@ojZDaLg_s} zTex7)WzYe$v}?Azi>40apfo)Nv5v5D^hHc1&koJJK% z2;xH-b%ZdOQOjr$Fn>gAsjjLbI|D9C(W*8RTuY5LDb#Aw7-v>)2s}L4d^oVhmgctg zx6?hGU9S{uMsj;YOc4CwPbqC^I@`I5u_z346S7`ClO32RBL!GW29}w;NP>3N;E6rV zcQOnf%nuXOiw=&Dn3@?nEj8-B$n;3Ps6M9LQv3ItoNdh~YS`Ppeun+^sAZQ(l$DbJ@_tj? zE)w}m{}a)_-3SDQ9+9Xd7e01_(ixp0Vpd(eb+qRuN~->IOkE79XQGm>ntT8W=9 z4)prJ{A+u`WHS{H?>mv|ef%+-`@@x$)NMUy^ZW;n9ej$L&n`ep)+EWk^5o-^@m;VJbFc(dKEGjbSi$tA8UZuINMO36S7KuJaP5Z=ze97DDf;fjj;I8}ve%z0< zpE7SUn_!mKO8h5mJiDS?6B@&=DlSJUSrhI$`D1*r(93sZXTU=XHrlihn+W%yuwAto zc>7b#)5YA~fLJSb>dHuGFag=;#Yq?U7o|9*TEh8ySOwVvKuc47d9l?jTr-xE&2z)m zm~64t2x&i zlTV}*Ho{Igi2@+usy!EyPQ<)T{P|?tRTK`exjDA1B&$l`=Ilf>`MV1|&iwc|jUY0V zHl>NUg77?ohZmA1b_&A^W-I3u=*ZJ2CPb-)ac)cll19ei{)xw(or7azz9TCW$403n zkfpf_?71|R$rCFRAoh~OJqsHnL5n8Oi7&ZD!-)_3HO3g2Hz8yzF(yi_SVJpAvWfBh zTA8PEkX^t+BrUNi1J({oo@Emt`I`g1$MCr{lH^rz(fApH zyRA9(8I5eD#H%+|C|Hkj!`*Js0lvq2!7HqnoCaUA5#S#`I1GwGIdw>yt+vP{-qNpr zx1npUTOe8oK3e&AdbK2?rUU$j{WJTEHwu~c?8~5V`9CoKeT#hscv(C91H>H_5TC-H zyPG*kq!1ZIHjziTKqQx!;1N~)W^!)Pwm@5o(`kjTRYghg`qcE9Wmn=4R;_hn&MZdlF@BF+Zx+=mi8v$_m6Mm5 zO>@4+OArptqB-1tAvJ>*qrd8K;Y%J#LPJSm{t3wmNDmP;?npvx46CiQl-R}9R#8Gg zh*#?+BwZ!)6#PV!jUh8o^jX^Z%TM7pB6n;6f0Ulw<|E^G*2!dkT}qt>~9 zYUQt_`YAGY*snyjIfRm`G)Hw&86()h!cOwa zJaX?uUt}Y?jaFzG?9V(7s}>(oOq2sHr(}xwpFClpq_nU&C!61fh(7=mi!7DE`VBXE ztpcwT&ju3iU^cU4#L@==zZSpTo|d9ZK=e>jl9i1=JiRpwe|UJY6c+KQIsEWs(oo(~ zRw}@<;KhCh0p|-PyrVQoPjeExvP*E#PgV;(Qs5K&UzNy%xV<@BGeAC(S&pS|F$6$(2`sPboS zsy+W6`^1la1W()w+=ttTK4(C2?8cyY#l^znY@1$1V{YS;zbGqHLs`N<(R|$ZCS1W! z^kOoeUe;Iwh^}9no1Tc&5GYZm9)F?+OD6tAF=~cTm_?16?^xpx6Ml$zXsfV@LAcpc zVge$w%fb>*Wn@5IP??ts(CAM#7Lk)=g$*8i-2~;w;>q(Cy&r#s5Z=)9Losm-6@tj3 zVJ#~Q>`kYIQ2+mYq^stBqgKraBH!@}5CLq5SXX=Q5Y;=XdaY#)Q<6&_z2^4zjxAsrR;TMBe!okw0?*L*7ae&bVJNtz zBqt`QxH)v5wU7^Md}Uz1T)3LVo%0`+a8R0(0oJU>7Zq?s+jIF-atk-)7c7BQ4E z#1M$Wmf?O`E&#c<^b~px#F=LysHC7nqArn1;^L$MJ|8B4LB&c%B(d586!~t4b?(1G z8(=j<$7q@qiUupmN7(Y7UYWRi9bFLb^ohmQ^=u}&tztk(SG2Aid-OBVSl5x;u`*Og z?kY2zD&?d=USTr%BN$Ps$yg#?xg1fKWbnyXTK7&xM=~dRW%5ySJ(|!t4J+`CFit87 z5AoIcC{3uAQfbgKPENv?+?%3RX)tZVnVW4(!`-gL*rYI^86IV>cn!`@u$7vSS(V2U zTs{;U4Kgr4jXM-+a+0O*7fXDI+M40?S@U8aC@&JI_$VRWpV^z*T zZlXzc;!TuB@`~n*z-;BySzOewf#^Um2aQ@I;UJ_)BbUMA1okw;l)9-;dmJ)ZZSk@$ z7ii_0O-E8_)%r4tq^$YMN7O?t&5^WA#a=r)^7z1Rar*LJUGckqy%~nfVw1jD2tMs? zA-A^oC8U=>C`ZbKGWMdV#IyW+_G@bTaN>33F(K;2*1^2wUZ$OhCUis>(TCho!I$_Q zeRjZherh9pKQ~Om8^b(_S3q<0gRMIh0}AYhsu~WyuMkU4A+*F&_JAF9U9+Z5 zF*HaL>w>wL_G&YVFe?fW00uZAPE^J_1AUJ0_05R{P$8zD$qK74pr*J1j_|Vqf!cLH zdPg+SZty(+Zcc5_!PGkXL|5s^=x9w9FbPF9)%q7pE?T`b+3$NWo&Bt&jHdJLTIy6f z?3ipUW~Z}3ZT6lxLGpFE!?bX#YuT|CJO|dNuuroyGz~rhzoY5Acx$a_ zSh<}}py}T16}o?2cf~1od9bGG5c#I4(4ZrYQU1qnk1u_2`G0FMTUw+|0f!awjC$%Ps)T<%?ho*a0(;yV%3DsKns%YfEW}dwU4%iv0`W zB8-5kuzuTw9942%_hNG?f~ z1*78pmd!ILXiDIr#3^yA6~V)5e#f@$Xshkq%~`GaH_(H~Jq-vTLuQtE zL>NJ2Yg{S6Nu+|8sKCJ-%dsJ>;MtwFXSdo`OIE;h3k7!wjx{zgJaKsUE^d~0b`KpI z8jJ+!nN<||TqqY>&HcfY>tO)aj}PajtWi3U0gFK&FM#+M8JfS-iUFYs2rvP#0l(H} zh?%Y8yj=vXHF;D+$n*#ZAy_A#s2q6D|iW94`OH$d-vBwyj&!z>IT0OQbz{eBGBaWi$p1! zR5kltdu!~-jvT!$y>>h&Q(4$vKfUwjQ%9;t|GoV>HnLJg3%>lDfd1RitKj1bS8081 zv1fdYd{E}m>5FCHVu{OSsbu@5C5A+|eC5_5t2(t+C7wDq?oFS{j?)HMoFA@1)4vlh@24P z)Gy1*Oo8zx5$zG3A}p!!OYlA@DfSh(!?TI3O!(WeSw%>{-E3kqF`#14)g{8rTcF@7 zx>Yw9;BpVDyU$nniWNvn%$XTf5;JAuWFdzjOiJEOC?!cBD+<>Ui;{61ZXC&L+zp{r zPis*rjX{FgRaTZtp(daV7Hkdx3YhzZ(v7DpAv~OqVtqA6`AkWV2?}nmCqvV(P!qs zH28#~{nmINX914@PKa|Yf0dHCX|dao8U5(SsvT4$8ANI3^ zNXb4JIR{}zA}0#4U+P9seO|2!RA9w^G}qV?_+awvDiw+=yrAI1x*?UH>;9@*LJ4LB zn){wF_xjNVZ0(|p&W09r5pP$abi|dJW5<<%fzBrHPwOV1M`GA>U4!@`BC2uW^8mUY3Rj?d+b11%X4rn>+-y}dz2f>!?!me^cqDXt#jp|e~x;)a(9 z9UAOS3R@k*FxA4)bQ`a{vG&oLwaS!e2or`Y+yU74OK?Ze*w!QEQE}{NY(mL#tkaei zof}D)N95*dxFzC?vlOA>G!;Zfea1wRlcr3M_C!(h;_T!EWL-)nsqM<;nuz?od#GOa zaFY|{f}u_y`_<@?kr{A*lC4AGoV^{0rps z*vft?Ji$~FLPABv5u1r^#4K@`I1RqX#iD_Jn|HptDi2MLU?oDl7B+6cjKzhHc10dK z54X?GY*SGExH8Y!@zPSM2a$9O`A9XNv_Xf~<8XKX2J{gwjdwOR z(A)a4nCj$2`!>92^YhTK=2E50X{QUf;Qo&06yki(?b(Ir@-ZUu%_`l*VrNHHB~FgF z@346JH}*}%!X5aP%xvK}6|*~O`SId-5|v|%#O&MSBD9bNdx0uxj7>E<_@PBXfHY$7iiDQ7n8;tAh&jO|TrOj#r9gYqh-FOR36Wh1_4XrIMSc z-$)WW_ySC~GcZ>-P?*1y+atrCp#RzhVAI>f^<{YXM1C+U+(zHNG(Zw{Gl5A z3-$L-({yU8n)*VTg?)vUZVmg2-3qd*#8z(0q-yfyZ`Yr-R0+L}$yK&XwRXJ0lv#Q5 zO^H!#>)69?aufKRjYnVX*oQ5RL-m85B4ZQzMy>bo?Sm~xsb7`XO*U2z%`MBpdhl9V z-1?ufA0$6q&QuoEO$-*bTz6UcGPnp{1W&1o3stxqmLHqwgu8cQI}N)S(v`R5=_)fC z!ME(Lkx{~p{i>WAaFkBbzIp!aBUc{!{!(U)@5nAm zUMBFwW((x)0(9uW+oSK)Bb3&U?2*9U+5>F<}oSj(!;e5iA&Y*670% z%K2!$J%pO#UuQ9kY#}y6OoS}3b{B!$7Cg4isPAwA*bM|><`Ya6Z0_f!r65-xwNM~k z+ux7Yh}ZP@(cztkx!n1jsR8`paT8UgMt5T09o%+Z#rS~7w;;(4#{MOK?N(*>Z6IsU z^s&;5*O)q}oqNv?R{Z*Z``RGUxn$F@1l|qx&+d*$>!1dz!ndG|TVX6F$+TbY{ziZ*J-& zLx{4SnI5RnH;-??0GtVcRFiS_8H|i9^l>7R4pUK&4XLPyWoEEU&#|oeZ+EoDxSi%+; zJn573v79WUzUtutdQIWA58tcIRGLL1v(hSI6)EyK7(ZSB$sig$`M(xb=gMR3z_q(_ z`?ojw*Y(s5jSV^g3`A)fn~YXO&U~f65G@iUul^1IliJ z56~m{w^4kc_od->J_H*`cX|B4W)PnJK zF|UGp8h}6h;>}!YN%@V5UYepP__<}m=(4~Zg82SkaBkk?rqRibS5$vrfc$97%2d&K z+_R!wg%;C7TdS%s7=2`32X}Sk zz|=-&mje5rG0o_*yo|fOVUp<&?Tq-?K-U1xv%Aqw%vv+g9)afEGez)a3Rm+?k|HFb zc7aI+i0HsN-(I*YFtN5YGgezdPnPjhszZHkjquR#56s)ZZL?P3*6GA+6dss?f?FHj za|m1Iq)-{AZ>$V%2M!Kr!e`P#0;gdW)9T-55@!DAyCmtf545s{`SMJWC@aRL1b@%Z zUB9ijlqyv_G)b_Tp~=xK@4o#cjRa}n(mQ^j`&U&#Og1czB60zQt;h{C zCQz!+Er$K@n4)O*b+8cORG9_v*XBkpJB?oO)Qvx~s$u3yAGv|{nc@&x3MK<%yy)M zJ2D)Y21WDG0XAkryn^pL!|WBS-@=R*)i(<}cPJ1Hy!7Z34?d!x=J2q=~s~kvV+ly|+B{2u_@jox2TX*XN&k>Papa zPE1fLFwbH8j+rg^N>6ud3x0F%yaWF8#N+UvM;^8XRXb4|PQhXT^>71KOB4)6af9*fzI{@GzzZ@8x`dNuq6QO;kr`_Pzv7@SPfcX z2S^$Q8WcN%a#L`R6*-Nv@JaBA@{K{$f|2Si7;)t}34 z5TZke3vE?pNtf?byQ6mlFZ&Ak2o$p~t$c)kLYtN@A%7&#R9o>mM7s6y1@y}ORDnKz z8`;0|AUUw|KwV`~LuYlR@4iGc`83@AF8CPuXz+|OIU*slubW+fKUiRjMZ0_DfGxjR zr+2oV9H)LwYiFiq>g@wtc4kG4%$eA)t?E1tnItlr;^9NDyDwWmHV1#7QIRBFc~zOr zKZm=(J8U+1=W=pdv|T}3G%2a5&L*wutjLw0$kWwHBC$bYO-eF}5=G#v-RyyVf?u1m zx6D{G4#1o#>uZ(pCFU?;Cen!xVgTYZp}Y{HDWSa3#C5_$d0|X+BqymWSK_=-*N-Nm zP})>og(jcyp64OylqAbHCV^pqG=|gha6ljtl%XA1UFFOdQAHt>AOQagnn?<2=*9tH zf-U(q%E=djiU~8(nODjvocf20`@{6UKP_cddXGFL@QcWU&s)42Zmw|WQu!gcxx@#E zBJMYx*W(OO!^B;c0R~NS;If8^pB0u10zozdf!rJ= zm4@%T=A7a5%A9_$hT^r&lM{874h7j?HvS0H2tvBCz3XRhr4`p`#_z`~Og;V}P zj;8LaVzB<;JN#$UM*ZlS8kXhBj?Psn%hr|5$Ui!|9+{w0YZgv+w z$1*c)yah96d_Mmi{O9SX;7Rx31J_>{qDSoAzh}3Q!pbKL<6}acJN9(bZZwQbQzX8_ zyP$}q5ixWzJxz(Ppo5-%3Pa`3K6C9g$B)s1=kTw%<97PG(E0ClSdgScba2k>l3zOw zc5K_ad3xi-2uhye+sGh!&EQb?VCSwe?hxvOr{Au?P&XK8Z_TB52X@#}PJ~=cXY9t_ zUhs3UNd?^*_{>jHMPlv6i@<9#QZXR7C6^977m`<)KSB`40u9zDp9)wvpF8o;Q}~A; zz3;{|rv%qM#EHS)bt_5S&OZ|fXQ4NHjg~sxq-L(~$&sIp$-TVXb86<2{fG>bvZ?Dnmyv1Cj?`gD$Bv~*0zX<{FE-o##6s; z%lO^q)89?*0Mh>2-da~$PqBmjT}ivE9Hy>AXqt%64~4$$=i+SAdx6*2Koe6PH>AezLmgfoZlExgF_j;U9 zulGsVKioL3E*t6^TJP`3&1$GQq4M;M_FlR6RF-BW(kzb`-=nr^GsR+`U3=ZfH#dRP zcieHu<&T{SI-l&-ipD6H<7Z$&o|BN^m8uF7bWZuL(!BWCJn>D+GDCu0L_MD77%0#5 z^q`J#4pv{?Noe7j*+UEv!^AjvpX08ePQqfbKi`43Uu8vz#KMs+Y*{Ki<7P4AOTTnv zd~mq8ue(bjjK_^ADbg()=-mMJJ z?UmuPxIz&o&NNRlh`Vti(`ur+;&Hsm$?8IiO!gimvoc>&(Ss2-EGW}E5NMB#jKY^! zQVbiMD4}-d^9*AA5_`G@LpWUY_f=KK$1ws~#X%1_d5faTqN^u_nK~ zwA6`Gu(ZIL>z8m-T(G**gvv+13?p^;q%JBB2U-?<`5sJ7MjDqq{j#$oFjXI%v|iHd zg6zwshI)@%M0Mb&Sy#&hC$HgwfJ#_oE*;KnKt)~3YBAv?lOcgwEhZcjB41trZD}2$ z<=2!&5bnSMRb9&;P%tYkM^p|0AW8z$JkI>Jlm+c-%0fs5crC5rYLne?y^_3>Pw%U2 z5DFXY*GFucNx!+=Basx_?>n)WKH&`p= z^i#U#q!jm+DJHu#Gv4lA`GdSzXDW(ZelW7!Vk(b78DbmOo;*q96K$Bsb_l$`WY0zG z3y-7Wd26p|K86X9r!6F1!0^G*h>kt+4&MrQbS1A?Olw2>}GMu>6=@N-ba<*=nl8Hxm zZh2Zz++-`baify_QZCxGj;u@_70G?^Cb+5}l{#Wgqh!y@Bk(J7{T34mzyc5@v?Od` zS5C8kO7xMUdO^jk%+xu$vSVEtIc@cUeR97}=avC)Qej3?ExRIvh@VHoE?Lt3iN*qT z`ii5gGOFvKrk>39IyWr;V!VL-w8SqGxhhtyg*$}8`n1ZbOfN&KfBRd|^rIiqX$G@4 z_l?ODJ9~XbPiL87v#h>5I(=6|{0M8sg(gxK^d=4V zwl^BWCQdm05`N-jAyH+LEaVZZvGg>{3< zG4!U^)GHDdfq>TDrV#jeeOm?cp;;IhQr0T4F0Udfbb3|k5~9>f#2QFcgm72C1o3lW zRDftiD4;FHX(J^xvQI^$46=Guf=0+=hH!3_??_Lh2V-y%=1lcrIp2Brhz~Os@-mEc z(n#2ZK29B5kcvo8FHRP@fVY^D9-~E9mXL~XO|4+{)$>L}U?sJ+3Y!$zu0SZmFS?-- zxxUeYN*u)ww7V9mo9y1RtE__v^Zy1tGU7(!%ztImMt zt3WwX89JYf;WFj<;|o5K42QNQcdk-GM_?g>rL5$HC^}Zlr;6c$%;;S01mX-RPYZ+G z+Hjif>I@O_3J~1s;4?(bG2lIqCnS=-ibY{XFQ|=N`PRC6ny&YeCssaB9H!}QS@gHG z`BAAf-PO&CrQ|Vt6-}2^uN;wqYr6^{gm}K7Q6y@rxGd=eT9CoMe+$*O{1DZ@{9xb< z!~i$@8u&i4G-fXs=ycvlDm&gU+9}G3iOUsj6aC}oB8WhK_659}8yAxUzoCybNtfSI zdX4b~5=L_Is}FbnbocJQeSJ5R{TDA@gxh=yp5_~vUBo1@mpBW4e7>(2VLcBjS?P6m;ll47J&sf|_%DV~w1Kp)?Nzer{0XtkONnc9R-_Twkv$u1rpk}v|2Y3RjRLu-vH zLMEUZxIUM=0@h9%K@q2&=a(g9rE?mVB0HYGfk$~meX$>}Y*-eNAu-C3_{H#0RwhmP z@v1c%1hjx#wM(NT8R;~a7Y79NP98sc7|G|!Bx?lp{4odGs{lB2>cAWloT1( zGpp1wP?X-YX=($#Miv7vaKwe+#PY5h2{*5SB!rwWB)2z^!fXiaUvQHQX&q9krp z#N<{3dkgiH?91547|Su6J|vNdpfb{ohMwn&v0k-#uX>I^yfFghnsa!FdCO8`IDW!EonGj0>msTxl# z^&QvcyBWc-;Gd4txZLWme*Uv<=w$b^zYrc`HW5WcDMTQKKm|tapUty9Yvc*s8R;rS zR9p0ydN7EO+y^zrz&=?h~`6b5))KP zNoqO{{yMQS6}Ozk>jofL3Jb8ZFjE1SQ5!u$VEgiPYTWLx4(&AET!51cd_0M**W#KpC9*{7Hb= zKZx~X4do$zzzEwwC)okUEWRp#cz5pmt|R2mu+=-<8H8l_YwjD zQ$hy^Lh@`&Hc3p&dxRPihZZ1^0FO=}#4jNMtmVzj?iHQYi!GD=KAm>9-rn8p%>4iS zB|V+y+O}`9<8A)N#jDi`{8>&oBizjM`Z!N`RA~1|LGJ*|U_WzFWcN6sU`Wqyt0ccS zaeFpE%W)i2g;r6tWG+3vCeI4m! zC(-v=<3hV9iz5vZW(d2|PxN<2qfesW9*vF?V@f3?vNodHft}LN**+9P5~J8kN^*+x z#?ljM^%HuvFQ80xAw56l0g)cOArFjS^c;A;s1v_ou5lw|vcksjq znje49K3x-3q#S=sSsd(pfC@N8smDKn{{E^cC+gjt93>1%N%D%-2_GwS^T(q-DmZ0X zQ26-a^bD3S)l)<1T7!}f5Io_Bf*O8^T9I7gRc-@&4ai14^B!;jj*0>(5fbnK?)2V$ z8+z+%$)Jp+dRy0G`eoz8!z7#6QEx92SbB71SXGOE;az*SY*x|Y5N-DrXk;pBR1WM{ zwV0pytW;-}6jVAxWig{7@DWD!fV0->zi6|4JqA>?L|**8?29gI|!N?6Ih5Erq2A#ERBb3`tOEsiNs!EQDw*C>vWZ&NQZ! zrtOVUhm1`ZuA&r~zBlEBvJ}IOQ}I%T4K!ESK&isUI|T+K4O8ybhihL;($P#*@!xOR zZkq;MU~iZq!6%}o|1M22hmFZr+@7|wpsOL?iBC*ZFiBoM$qdtVCX5ckiN@nS)7-vr z7-{tTCL}EtXKY&O8dAuAZky!eXR!I0&rxeOfAkSN@>i(e{V{sR^giBcJdE;iTT_0p zZ7u8MCXCwXy?oQKZ^}CkQ6p{MsooCF>En9$MAX-YN4U~{!WaKs#|Jyd*wHJa%h2Nm zy)%;hHF3f_3?1R>=Wzag-71A$zJJR2voY12vObbZDU46zVLFup$A3+wBArytw|3lr zvOCZyb`$oi1l!?5V||0Y8*oiB*bnq?+K5eRT%38%cG4|l+qRAjn}d?uZ`nSy83!3H zDpc8s5?)#=$+0cgH1}@FRz~gN?zY0@$h<){aZ1r-i{{>iGbfOcq~)cnONw!%zI0vu zuxgT{iKlaS7l||~M&=u!H(CmCjDsiW6_^-K0>9)|{v(q`SyDg$3B(J={X|28~vu#=Hvn4~bvx zpvx?atuxDFr(lCEZwiD|Q|ji(xR8F~bV;7S2ji_4C-ky{AqY3eg}fjuBQE03n-nYp zAL%qCdzEPnz)g&4B#i?6r%13JK$K6Cu!dQ~^9`%12Lv_;_3W8i%3dgrso}W#1o*S@ zT<28RNSgLn#k*0z6TT6)+Ua*3r@n@{{;M0(^dHhrAj~Piy+qjkPU%gxix5LB2HvFPA@R-nmUw=>c^GUNk!t2ytI&QZe ztbw)mhZ#sEc=+hiV{nakTeEZLt`0jD&D}suz`gZ0N9=^t!d-T|xi}A>MDB=vD!K&C zFg3T`CagJn^yuI%0D=z((wD3v5yDb&a)ChK<7VaUlU7%L^1^qr*n>sFfDB@qdE$pR zpjvOp6sPdU1_xFZlfwGe`Z`I(_~WDK z`#6M}0*4#S2?y@o%hQT0NXMttDR8fN=hj?$r%sFxHr!iLi2EeIq?nA|Bc1G|km{W^ zo)+E{*mn^tWU(wa(H6{@KqTJEbAmGod>rRWc1rzFqGc9Cy-qTcH~Fj)LuJk~D4;1N zxj0NVj+n7E3=aQ9E@!D0mJ(N+!i(WN1FHh}-TG)!yN6%TwjR3(=O7NrR`JS1u|7Rp z^J6&2cbqa@LTEb5Ezwo@KdpVXUC2{xUH1xB+2$1G9L&%I0r&b|Z?AI+W|+p9>wQN0 zV(lCi4lq?w8LVa)XPv=OI2{O|$?0TRO+>vy@D6}i)_1$xY8=itH)O0UIV&72iA!QN%lQ!)?W9_o>|G2D_Kj|C8&kxmNQch`Hz72QIo7iwmkiK=Ri<}gabM|2t-by z>T^F@x2m5;tcyIysuT+aDX%n~iHlFsc8sH`dDy?aj8N4i;?}opHxAq=B`JdpHfhq^ zwh@!(giHT^po_H#@oj5d#8Vi<(+IefL$v>+a{JxbxAlq0hHGlk@5R2yXXfXc3#E#z zDMb|v?40PQ;oX>)j1JYkCd8Qsh`m6BS*|(b_BqJ~hm$9l(t)2Dy7CTzI49sm;n_>^ z=$(R~C`Lx7#w#q*iwFljJbQ$Obz)g_4W$B6wwFWVnK>(TaNGr);SJ3~D&_1`im{@8 zt$#qXy6?&z2L72itCU(7;to83)EIRaAnRj-G_zDgbLvI69zQwy!KNiE3a@1{;r1mt zQxxhdT{Eq`09}G~J#He0Q~IdaPBxw&UnYeI*DE{zoraW{=yc!Ka1=3td{?^L*j;k7 z9P1t{Zuz@t$lPBSNEz6zlOgCvwm5EFS8v!t2eX_oj>I* zcCs3ardzujLastDAh?EASvU)t+SKIGA&7NhsRhAL!dI(=CJwCzq)zSejwb1)jF=2ucdp! z7wR@h;jzfs??>&QQ(15zxb*|EBflzp^f^Z()=2y>;p$c}2n2D=5;fAboJO%Pd80{xQ zvi95dRf4%Ltud^*tRcH}8XsEaetU}2ATR+jxorNfOobso{h8#eM%G+}6!!cEt)mz; z8RY*kl&!*~8GJ*1a2VTU1MLyn+!G#EN5-(B_n6xWUU{UVkQ2wR>n zLF{Crvd-5P@IlwULLS1&bZrv^#*Kjq0F?2{BEMTvOTBG;De|H|6CNfiT|)Gt*!^jv z`fkCAIykB#(qpvz8ufEg-fhWq%*Cg3QY>*9e`{hkxtn5Zx%VHn7@`2omBih1Kb+r( z^sw!p7=P?BXB8XWj&I5Hz|R72M^5^?Pll8!h%H34NHyCaF94kzK2WKSL4+F0%KK0f z67&Nkf`Pgm?@y%~W*ROm+;1=Al^ZVP7 z++y<8fgoJ7@YwsP`WOdm;9vSZ@wObwPqxlvWzWffU67{1AfwwmnK*tjFl~1H zAS>!=tf*(Jby{SiVJpkZ;gDcmUI7PJg~t!0;Wl`XwL>Xg_LZZ_a%l~Kh|~qeREG?| zCW$m8V=7;^BW|tGG5d)vZ4LuR(!&*tLR6>iy2kg!QQ|- zk$I{IXUEu5m}RNGB(JgoS2DJ3QOdtM+{rrJ-6SxX_JbuZ^E(ujZD3*~5pPLFtaFlA zoNAg6M>=dTodC9K*?h3UO8Heya z^`lztr+zc9AE5?+f?j4V8I9Wd^A=eW4bWy`GH352u4z3%FKZK$%C=XynerDU&YwGb zIjm1{R{ju8lI)yW>He0&oh#j()rLFrBj+ArU|-;fb+FZxPe)M{nuYy#|3DzxlEk1L z0nJ3Y*c#=Ck%3=25Gh(bdIdiohG6~W!HLrt<_^a!72U-dR6>IH(5i#0Pg4qaO+@p@ z2K9tee+l0*xeI^ATr6*<*=IlFL&;`bT-#Y|QQP~Ha?YtRlTT;*p9S#Eh<7@kH>K>@ zp4urlRn&3@8$i}Z&?WGF1kr~u)re`cPUV(bKeab@^8o=Hy`tTM65K<|F{$=*bEP)g zEGXJk^ig=K*68@=LyD~DRsE6_8q@iGyJy zP&3)T5luTT)G?A`_br-T&WJ~Pl=SZ<1Sj{3*fs?NzbB~?5@m`Q8a0D{0$yls z%wBRDT1sW4=sx3NZ0esDE_}(ti69k*U1Uw=!R|?`7Tq@!GL~UU8JCuKP+|_nxVX1- z$sVf~b7?qd5{+D3_l{P_i?BJy;R!&bpv3#iF->`j)6eRAMXA8t2EVC&9g^6c105kw zu84P5ABzG1t3J59jrd$aJOpN&1P_jFe|? zu?E}dEln3qGeT;`6<&^$^BK`$+kHWN{7M+D)@i3h8l+`8!dE{Lv3|TBZ$4Q=kW!X0agJC~S|Fd!5O}A@ zIj&^HnjiPP=8PbkyUdWXKX`j_X1;Z!dt*%$%oVjHdXCp|X`eXnc}I~)Ah^iUQk~1~ z>bkK{9_7ReN4SY$A{$=2Rpb1kF}oG9QR2k(_C&2%^z^3pR8P!9XgK0jYF~3ZtkHOuVZU zSHk#6bXOvwtdo5{IvMt{)<3+2SG1Ayf;TQsJ$9!x7w>WD>t~~lXzLszi5LoxK1pFI zBa!#{(KKTtEEWfHs$_c~H&SDr^k-$V0^Ghrh7bFxD(2FoSfg&zA&q*CM=ll)#h2F? z6$e$B2^2Gl74)~n)x*^dJH`hP4NsxM`p9En4mpG=Q=-jMRsMELFSTT(RsSWH)MVmj zfipnIw6^v163*;VAzY({F$ybUvhsd#Q^!U4Of%DU%=Y))e#HzqcrhzN9(t=L(YyYm zO}H)WCuj@zTCYGyb4~k)X^FwPM`%PhshCsr#6d<=@R~giO{V0%k^F|j3f};vVU$)i z&oO+FBOli>2XGatY(MDkN9O8oAkKEtGU2Hy5J?_T^*51pew-|k$nPIPP{}ceRjYvN zL$a@H83S)^#AQBc*SF@NB8W14nJ539M2aaw6-1}NZy&pDhcPe>vC)HINJ^u565Wjx zVkooD$tH>ySWpy0`?>g|G4zs@=NB3p6~s#X<-%Q*0_Q zjMm(Uv8d}XFD4~ER?H;3%t%RMT9#sff9T2@-B>#^<5g-#CyShnx+G>^I3av zhUXnA`^?Opga2az!U>M_}@=*3`i}W~?#v!&Ot- zkuV|-hF#rEm{GhZs1sfW%sbJBvWya5?c(+s;~n(6iuYrXhj*XsLj2EiTu=s8?b_0zZkXt@*M`iVyG$!`@{KJWJH8E8$uc8; zhD~xfeO0IvuVLXzuVc<*On=cJKjR#(OceuG8sEnbF3SgR@Wxz-<4A|;;exZfNGRHz z!mUEBJ!e=rnU=%fzgUXdu(BMHv*h_Q0*$O_OXemct8eMPUhw{8+FG3XavL^W(s^OX zcwtTw$2TbR5|TnS86tz2!TS?^e=@wtRJ_;E0MN>GQ2Hyyb9{zn5`^&L)-XmmNyyN4 zGgEW8q=K5*2IQ3{F#)gq7D78&waCFnGfB%<}v#hR)2a$K95!_m)+m(65Rg2u7XP?LqGPA~m zJ#Wv~I{CHs`}YMG5Z%qjciX6)UwEGS95!QWiEX`(iYfNT`3KtA{xq~8-sgGJx{IGFURG8vT@kqaayt*J zJ@7s_<93yCKFLzLg6!?z58O!0ab{GDU>h919Z+sB%DkY?7 zrf}!ieE)v$20f;)&+*CK=xhkjPd;8k_w}K{lcG(0#65Hlxq-jyX2XBoABA2tIqlC z+7~~jxZGi2+sxjKhYx*{xM*iC}#;Q2jSbTClm zf_;B&6SJ{Orc@}C!VDUT2WR*H{h&?x-3N#b>_yacL7+Y)4EFGGlWaB0sj#O%x?2n_ zlbsJwH4=Cm=Lebu^G(#)d}e4X!9ZnI2!c9k(5K=qv63-=vmes5dAo1bei! zh_kA!Re0;HRq&?fB3B5f1+$TnoYJsW4-a45=|Q~|(VQHXoE$Es8D25LI2#T zxI(ZJ6I~kebAVjT@_M=&{u3Ows~Tp4NZ$B#8TWEtn5X6=xo2;3>Ij#titoYD{Cp0I z?Ds;CM}go%{htp# z#sYtMDE=vKo5oW_QIMeIPYjp~*UD!g64&ky6!XW;ztD4t5Kagn8)HW&2atjF>yfRY z1p)#SD}WL3dc?zn001y3yW4>P3}Uu6POnJG+0f~q;#JM~su4191iiKb7~~Y>Mb*`4 zz9=gh*f`QDf=r#Q3>;ofL~V?0jm>RL0SuDHAR8xhCwDrDSG@?x(Fi=MfsNDa2^;}h zOl;tx6?IBEbpSB2|MLmlAfooqiUB;dvaPtJh^&F#|Agtary4+u5p2xC#t2{m z-8GIIwf5OTE1iT3| zkQo5>?Nz{Tax%TjYY$E^0G|s?lau9D*jT|$Y_Gxs9-Wi(RoGa70M38H3bq9@z6uA} zB{ndt*9R*bv(Eo5m0mBz|0$LJ=VJZ$^2r%kgA3vRG0DZO3``vXOe{={9PIz?A|zz% z2GF8oVPgf*F@vMY#0X>o0D-LkGF;Nhz{=c6(8kmX^p*mGuhro6dZl0czZHiQxZ@iZ zHn5WbnVXt{4H*9!D1q}-6#!(TXZ`PRV&+yLW&jiCzufv?>*ckA{>Mofkd3L6890lW z*S-pUHrX=!+8FzjUW#p$C^A$kEo>!3ae6&y0*r#Ma39HN)jVAY+j6 ze_I{70CoVs2yX@E>OYhOgryfOE{)+{o!a=%3EW8XSz*&i~77!188g>}>ZR%YU=L|2{VW zj6o*gpn}8tf0!Tsr}2NCBmQZ@)8M~XhF9m`GVMPOzn<`)_CH<%nEuD`-=$;xhne13 zz0R19b_PZu2Ll^Z5CYF@)$sv%Ou)B)^XLE84zAFD4jY;nnStl(S92DyIU^%8Bi}zH z^oBU!knkG!B=m;F-jMJ=#Pm8S_$(rCi0KW9zM;1fSl&ipV*S^~!t~b0_J)|> z5c?Zqc|#m;i1iI|z9F_Z^v09rjVF`HTbtm&HfH8GB=&~hMrVB+9Zc|*C+nLf%bQ1R zZyte7UfbB-d|-X!$^OQZ^^GU{8&B3Zp6qWtS>JfFzwu;!abbVs!uA$V_P2Plz4^!f<{#Uee;jZAvAyx+c;m_T#)adJ z3mfpCe;n-p;=(5QhB#gkGxMtt%;495N%NoV0O#nx!uY>Z)X3Sv0bFPQs^?#dzGkAi z4e0+WFgshj*Ej8dkAIc<-y(mlQ+csh{r~>q<8|`-|DUSZS%Gh}oVk?~$N~IzYGvRA z5&^wt^Zznwxuu_ayL+wnCzw9_cpqD3RP@GbHae@vIxojoSKM{{fH2bfVANR9u+~7| zh+-t{C)?%Mt3L@V;Ya#o7#1oHITQYa7NY>HVWe?@X(Gu73Tz2-_&AM4oh^9yhMPy- zIm>$5xRaAJQ~oQsHTvsYwcCrMcD1TfAJs%fYK^sQyi&_&&~-%P^G-+WmLr0Vmb|ao z;aym#k1my^zv2WsuMvshpV%jc3@)OXn}EYAe6P?JV6)H(v1dMmo3g3wXp6 zT8{oy+7-JxY{DJKFWZ0JJ`V_fv|jMx>GV6O(Rn6Ot8(jaMV{^ag=3cmyQA`3V4 zTX5yyYvV5^+y^;)s5HUX-K zDe`Iu1sN9A2rttOe^>Ig+Bfg=5<;vxWen!OKIbEBOA~&cfJ`c(^?6bUo^C+!gc3NH znK)!rsqwVrV|1uTbQ+BDo1*ngTfFP7@j;B>5_5A5I@062Vi!8)AzJ9|2?qj z8W08hw}CT{v$ZL|DHps)61{y=eqw%-al&o_M&fLIIqi}v8oh6c%feT-7-sw9K5z6% z`KRZ;W5P;qCEvomu^X1j%=_sSU(Tx$!qZ{NBXj4@1Y?jEnQFa?DVx?+g`8!@9O$&6 zQmlgF1h4WM{;|luz9F4zLONXy*vOqXAv|H4LD>3KsZm+e^Q|W+=yTINPIvldxqh@I zFJb))YSx$II`jH7(F)hx`LmEfbiFK2ri-1B1wI*0CC|bX%jfNstnB&u-QC^RIA4zY zv0bG&dAUe=f;2C$%j)5CS%QqGv)$e}RGD?ArTp3E5J%wym&_HX%KHVexE0P{+A?I-|Mr_=P$q4CfnogU02VW)~h#O z4p0BS+}N(aOssIUd#|l5bnyN?ZD_QVFKXBEdf0BnmGj+qI`}18#4R_;t>d};cV65! z19(lS#~bIMGJ-jLPTraR^yRWKwllGf;uk}#jqGx)8~ep=h$$Kc4})3geOwmzY-ekf z3QX#6E%OoU_WbXPa)B=y$woGN3c7nr@YD)q{(1Su%6n?&)H)!27vmBu%r8J{wY?HA zHfhXaA(gMQ{iPxarOYao)XD{^6{X7cr3&>Hk)=x4rGn%AGS)pj777)mvg1luDy>If z5NAa#ax}l$uvXZS z{UU^~7(Dm!I_b#8xu`|@Bfhtax9nP(kL7rE>a1?ry2X$EQt0HR2vz)^pVOXY(?vAX ztt5xd^naF2cp?C_Acst;nol%U^=f3A=+ymksv(coIPwRI4|wLf3aEA_Hwd!^+Ed9+PV@G6?bXxz!%&S(`ysgYcm0f zlP*fCcAC1WATGMFFU?NaZead0-7npG6&4ma8p-#w{{E0f`YNoo_2Vdh8I=z|)-aRv zP4>i@1w_@vUd^~T)&Zf)S}@A5qM7YH4m_@S-}k4ClY_G?2kz=eUQzu6(7b{`u8}1C zTARb|?9WnRSHpRAO?BAUC%U0E-u0IBD{V+@bZ41)jJ~);rkQ>3IT>NyllkYeU&?0b zr`GYY_iX*Se6w|x&x2y2P2v7?l_d}g;WLj7v} z3TS0l)QnqL zm|Iv`n^zWBLq%w$oZ*%gRIrv&A+Gz6&BRK{8@VWv1ZbtE;X+$u7LaMA1i5HgDjE5! z^vKIbSo;@-hL!Knpfyr_5xS^Jt6BB`y4C{Mz8PSrzpjI4+T01nnQS#d#kb=okXi8$iwNHi*7! zDEOnoy5IL3yty<*6>>R-k7aAp-@7(x!|Nu23OsY_NL$hq_oM``Pk_bw30w9B`JAgR zxhqg<+^w@`o;wi(N=3N$=Sz)o+61$R36f5&h=?p14TEx*Irw*?awsd7d0azl=B;Sx zRy03NUll$M_MTNG?SWiOK1tC zm7eCD^MiPHB<5V`IL=W?r&1s`BX!%Usf~}jJHf&zUb}?q`>{(cqZ%UlXt~uR%+P_O ze!_LeR00#pv)#?QT(AdX7qMNIA1u_g9Nb`S1D;Yy(IQ6-VGUz-ZI{;Uuw2#y(RLfc zElm^ZR=UkAYVct^xeNFxvfh=ak6&wKIbFk zJV}69oIpApCW7K|1M67*RBqrVscZL=)`uVHJrl%sSbxx9;UwKR(25=FSQ+Y8pr}v` z(fwVIKdBWKO`et8Ca?mY;COiP zmjEPiF?N@KdH357O~BUu$X%It+4FPY&XjKkddqtXMCFN5B73|RA1Q&Pch!@hbkNVK z=m*M#6=AG0_JvE}a1KS_Nin;Bci%|YN@+=%66&~P{4K8*C)Bw=%$wDli}U=F5Iyq4 z!Tf6q8ryV}e7`0VG0|_NRmrBGb^tC^llsrp4WBVxXa?6OX3Ys!Hot9}Wq5wA`%5IRVF&Al&g3cDX@GiqvTO-wIfF z#fXt4j< z@AkVm#7)&8ky|h))?+^|#92o}l-JEIP5rPC3%R-kzDYz<~FaJ^L z@#o^)`|tE%)`Q$ZrZb!G#a_QRmfFUIQ#GEiu2>d@#x1Y^r$A9kQ)Jirf>!%>lVX%| zYGh7Y@HQDqB7Ea~oAdy!g5h}?{V@g(g*8>A0YJL7p}U+zBp;4`R{T*MvzKCua)0%@e6E${rIRyii;rax94gqxJV(6rR^qjx{UDYzws z6?zlTFQJqd;vWIQ+uiuUA8Z%;lg(vI;@eqnR+1)S1RW6gS#EZ`cdgo2qQBPii)w;S z4r~%sv8m{6n{X=aU&KBPf!{RoV_>nbXDg^L&`h{9AE7>Lr8Bq@=r5_!n)J4=zaEWz zxRyoDdgd7)4>~+2G~x-f{>%Bmr!bizVuB4#P7 zBN7MZ_(SO`Z8)*m+EF((n^rbEsA(TCy3RNG$Un(OJfd{PwJ_kV25Gwl z_+ecmxd^5?2&c`62(K=?#ugT5PUG<8m3X-S9{;Jxj*9bM5M$~NtMB92>GouRm&^xA z3WZip#$Xsb%PqXwZ|}Q&nzXhgQ~)~p5M(AS!b76w&6`o~BTPAiCnP3m<<{6KK=RO8 zwW)EW7B)LUN14F=Wb#mnRFn>Qr8P<~AeSzKN!NRO<4fo1_@DTSUs0GkmX?#^Cjnp) z3Ve?oE4CM4%ES})aV}s=qP}KXfR7GQr!CeY?t{4nZCynXHI|Mx(DfqiAa@Bd$*JMp z!FZK=ikfyyMa4dgGtfnFbaN{68?Nd0Q9#$sXoFR2sfUfJ!v0fF>}rds=E4%v`m<8` z)#$0?PTQ1eOKYZBz>%9smjWy{r4#9=BXqnH5#og3`Bw_C9+2|1fla;MtcsdnaMv%CC=8;{Ag63#k4q)g|o`gKgG9UJ!1&s>kg_-djx+&TA zq@g#;FjFWMPtc4UGh|^7`pgu(`QcaAOeR)6>5uhwx|6XqqJ-_5WnKABpLN{$-Nq~W zLWf)%?Xo>#Xcx+eur$*mn|^sjdobxHX5u076bnMIz0Zb)lzq2^R-k4wN7*H-SZ@>z<>4TSTjew2 z*?ga+jeSP}DHqq#806?6A%`+NOawI7na)`trJoA^Olq`vM{Kanw9#IE+7g4#d+0=f zMg}T&W5FwWOejP|t)oDFAM$NFFZi4-Cm9Zec>psM^A)cDmfVkfIEnf`ne>QEfNwH% zlJW5{6Ck-gP?a?s&2BK!33K`B!^-r=r`DLB3#Kuuy_7~>7l-~8)!mN^RqQJJa&KQwPqmIkVuYP4~p&>uv zEc`0$?p9j3a5Yt6iSzeU*P~`5DK7=Sb~1q(of(cdv)q*$0SicmOgN3q4#mGJk=DDb*f_2WuvL%u=FJ80LOu|P)6Z>~K&il?R zu2fOgn4w>$?^Y)_lSd4;*)7ju�t;1+{K&nA{@8z(mX*iAtF)gGvTI7bsjM$kZ7HWw<+s)H z-f~Y{Mnp$TeDG>}uM>Ll0Q|F{c#=!!_!s#Xnh7R0#$0{o9QVyI`n(9=PFr(E5!quS z#svgixf2R6Rxd8~kb=Cq_Gh$uuy#}N7EyS7}M>@dt1c-`vbj++_g0F3x+ zeF@{oO&s2m2mk?l07my*FEBhe)@Md$9M#Fx!;OCw6)S&OTE>`30Be=~25@1yy!(aw zch~7!kw4;tL?W@_R>%&CUaA~F)LqKm8Tm&0h5apaE0YH3SY(!Az!Vy~BFA4?{&#%2 zex&4s3tihlHGPE&s6~}wySw;Ug)3MaN`btIy1~#brV{hl_jbHNv>=B=ze%BtUU9b{ ztVQP^G*CVyP{qoy5Z?z#A)FrK4GvI`eO|9;A{L@ zWSMa+tWmr{jd(3=NbU_`(Y*tH(Txw%Vg)<~Mu@FwI`fc9^+Sf-=1{`XN)4GN(7H#4 zvE7qhEHRWmLMq&Kytk`b6h{-8QXUgc?4V2!!p@bNgPxH8>_k-Ic zSeRMF{3!#pM`2>B$olNeEk1jyJ>6%E)_%bOWq4eR4|M~77jc+KGWEgs>yDwA2+#>p zqDwP;2Op{_7|Y~$yV#@R78#m$z$O|z{YS;JF9Y9|A-PJXF5@Ce>Uu5$QOhp1Ikg%K zG#d+2A@0jRWoZ|KS9uqM3sT9T2k|9;dOZ2&Gr(tC?2g+;0q_@yzmC5L|04rp;Jc<% zz`YRM6$sPF>+I`r7pa+efJ??E@l`6;?p%_|ghhK( zwSluzW<7aP4b$IT6W<>ll#P|F$9grRpD*`kX-mhe=w-a^rV~SFw~zK?NBW)Jfpez? zR~#xuiE|AJ^W|pL$#YXnUpR}}7z>PrMdhp+N$T|@okz=4V*_?)3RGmRf7Omi?y0Hu z6h78mi;p$=E%!Fqp%qG|QiTvb`Dot6BJbz3UlS9!*?6Q+FPPg zjkD^xNF1x<^eR{k-dlL^XTr#8)u0_vK6f}o49;PAr&5vNB7=D~5Wj9lBSw^~4EWuohMv70Y9I1b)hOr`a zV9`L%BUxFt$pBmgaq^fnGG{Uo!WW?$ln!wgIKxJm>?)|S_v20HQ!e_s_R!2hm}^vB z6_ED+5KRIC$wovUjYL@}r-5tp&=yW6?%NL!^fZlag*=TQgQcUVr%+@>%cQa4iK^17 zkqyd>zYCS5YS-I|Ef0yYEjO!mLHO1Zs{S@-mEJE6l_1~YtHj&u1)l-^(>UEBx zs0(w!T_Z{jTBcsDtj~Ugj6`rN*?0SwBfae?*ByB`hRaHPNo%V7p5j8`IB8y;5vayH4;9*g)cvG*O3`;v!k7!}UuFS$k3Kmk>M#PbGb~ zE%(6>w0!W&5lZjpPG+2bh6b1L76C=#9Jjwa;k%cIrG;DXPMbtFMh~K0s-qn!ND&lJ zC-BVQU(ZYl?X5f+KBV-rWPYKVqOEYxAk7Fb42Q~nt)XFk#1Qh+0Dl(K<{>wNTUcJ1GypG)Pq8! z%b}k_{+&?fVLL1>)(_#XZYq5wVa#YQu^=XWe?MlrXsRIyE=;pu)M|Mnb1ftA5bh7% z{w-?9O~%BG_Ld(S#msWW;11x`QAP|ud}Iv0jxm=An{5z%H$!axLadI`E>t1z(Yn~NP{`mc*QN}Kw~;~?bTLki3M0m~0 ze=WaSD)6bs1@;-Zpno1WgQn@9pQ)~=i#CiIOOMTOE4A`>qm#9l2{MM`aZZ#QT&i1| zOk{1=HrF7NP7O<|dU)zj!i&_NZP>Yyg(*X1IVi7KyBvQWU0D77d!FWOX+@*8&{fwt z&zf6_`bY~w0{naU#brg^G)xJa;WBNmMu2*ThLTQ<#q(8j<5lTXvwzK`mAM{=i{y2{ znyb}OhqacG!_jv5t~>O`>QCQ4%Vc!C!ByHkEzJd1l?*ggj77B3Y^@be7xgP#HP6z_ zO2-RUDN0L;9HzRE6-E@kOzvX5h^=2YMtq@8zJBWbu^E#i(`}Pi7wV{<*k=1HLLT)G zbAMXaale^3H@CcH9)6G}>u#Ir!IZcm?Klz~WF>`I;ZJo5qo!qp-Z6~xT<3vE@+pFJ zNRIcvEd$Z+u^CCl{QHrm2;}@5~C)Wuo`p96&LXWxAEx{GaHtKH7al0hdzk| z@~9$6G3v;<7Uq|kot8oq*3;Ad2KmdHxHfz)PZ(O*7v&lqMIFTB)`Oe8m?xzKIz46& z!as_IG+V@|Lq&a`R3J%oC;9!+aj~DTB!X40{br54ED;tq^oGf_E*1q@)5K`0zqPN< zATpw5W|VNH`HJarc#p8NG5uJLDWyox{@JEr=NmS%odV0Y*$M(mwO)~ZrHXUPzy8KL=(ju*>Z+lr93j*fSO1P^fgRZ9@Pg#lFH6^9r zRe<-N$F1{&(Nu`13x`8S9VdgIJ2)xzX&}A-Q0vJ=-hU~(bbiiC+&qTCo2Sw-v*UYD zr`O1r;C1a@;bo)Sp*IVZD|br$3=#P~=V7SsCq)YiY#YO-2c$Sz4caEfhXlv8I>G#L z%ss|G<~kL4MB@}C^n=|u-stJ$h8ZooU6PPKP}B0t!L`FA+;W?#$k=&=gPLjBX?t2* zU#XhRVr^O2A3rC>g1i7h)Dy5a73TdKR^V#3_ra5m{eZr*qOM7!kc zBIOSk{ybrVsd{`?n_?rukqIprH2^VJtv4m_0R#V+{I0J5WZ=*EjOUT@p0j~ZtH@o` zAN?8d>T}77Y9kgcIsy@X_ceZ%pFqHmfUE=%<+qwdp7*X;=`8Hn9%uCIvBg5=A1l&j zzZLh{aFJ_i;xK3~R|u48q`5Oo)YSF88?Onq)4Iyt7HM2riP^i{Q)7h=toato)=d8&MK7orA5_rh=go#do~?T#*F5RJ&id&+wf+!PjK|GXAMNe(Z98dl_Z1 z2GMcZLZ`#{ytz{fc}%KftcC}tzq!DX5pF^DrR;jrE1-P}_wxaXI1ij&qUbTn11p+r ziL!#3lKW-;B^6fHJZM0TNO^jgQ7LBwn^r&VLzae@Bp2W)-oBhLA@Ueq*2fCTF=TF^PJjfYNfEq ztOZd44UAKm5B7AcNB$hfroWlgN@M+p5es5wrm}(&B-(-+1Ukok6P+ZMAGur@Ee6Kx z3I18E^fJR{bm|_GQU>kMyW%k2mi&K%v>X)6tHv!KIGOBMB1a04YwOZe!<>&ftO`st zo}FCQXxMFxlF!ky-ytzU1csW190x`8b83epev&nHPAvl+eYDE%&*7t0q1?k9KrR3> z$2t4U7OHO@SOZc?h*N`VzGauCVQbOn&-mE$I$FtQIpiNDrv_zfaE)pVIee-~52D=@ zDFSBK!foPi5qj=AEkG*B-MpWAMECkc;}`6QGbY<6M~_ue!&b-@+GFmW_j?9-sw3;4 zBhefCB%rVR`(}3Lehzf?GprVRZ&V0>VIw`Yh8B385(=X0KEa?PF~`#zd>T_OnD4FQ z$jTRIRw)k&gqlY@Gz=qILY{)7C~>SuCJH<#4P&3-ZA&{fq+fy^oHyIf_`LVSu{~W! zhangP1rgiWP6m|x3`kWK_1FxovsxO}&eMkN(2j4rOgVrmq}2ZgV|?^I{lYFbSZUIR zgNeF>BE}|qAE1$nHrAsMWg8a0>i{VYQf(ZXuRMWY@hC_DTtJ~Q0E7vna~QgW{pIYM z3mrxZ-z`PU*00)mN;6P>|D>6U2Y}kYupx#&KDV~DEM#%CRV-fS{xxFGz3AjMi|E~s`=F{f)L8dtE9JMX=*}w#GYyQ`hGj`!sgJu z5+4;wnKdwDX0DKU zre~Xq-D(ules)&dAOcHwiPcxwQrF3KcxE2$wz=ph4Sgw{MyiYFAj0JNis``^wO)gD zH!_@3*#aGPrcP@eAIG4rwQiHisVHsK{MIBx*PuhW?9O4C2(UAOgv&YdgLEXp4XWYi z^*Y({*6rKjU){$rRz}&}-2O{i4kx6-ToIlgctm51`)ORo9M7}-o>OwUY2)H0Lu5pS z4(kX6PK|sK$9~i6cCqfvm}4%eOzJI%De#p^C3Mk*Blc8WvDflW+EP&&OBT*o^bevKiTl@Cj{Y?OU6F4xjmu} z3$s!na3@{rX^snZW8H|1ETwoD&L%b-Q-T>=jyaKR_(5XT0AY?cR*q*Xm#bp-qiIt| zX&FrgB}Gv_DMisxDrb`M#wSX8ly?Y-D&d8CFtSBWRfS55xqpvvyV zpqthrbIbgZ7z`14%)*S~97GwwPa?pl7w5JBwMwpS8r7#o*3IXqJ-q)lzDBsFSsR+L zPz-@RMQN5{i+s}!{w}t`t(jtsc;h2uUND7KO zT2u`uz4Ld76Yv-5l64wK(n%j`>UkqM1EEYAQL7WpCT!3WLkcRf{3=N|is_tD&f-dF z*fhtuzM>TA)EHPe_6Qrum zA9Q7X^w2R)>-}sX|B{vv{^Xc8p z~LzuWtcdxD2z*q7#M_a z5^01-+>_j8QfenpUcHb|7Z^k5I76{O7D5bXDwz(|Tr?47m<((9yaf{J=V|guLBO4v+ z^X-hw47_(jrPJ|=7j~spv=%#0jiAjEm!=33%$}yLD^U{9Zfp_vIvs^{t+7#_Xcu*R z`>|k0f?KgjM?y56=GNq=AbvphwpS2;w(NIEg-2;4f7RJI4PA9t1;vFnWz(0?dt|Hv z7<%(kn<|OpOXCDA_6g~lOHNs+ZbK&Fv>mO7qAIq)%Bx{qIla1zi;obgq#+a<0c4>P zva`Ip$O1_IJe7V%RL?P)rlkF78k>xrlhYj~i`H_=dj5~>c+9F!_g6)Bo&HySX0!6U zyHR;vIAZTeQ0Qf1eLDGm$rUXdd=H_+G-~9$){y5aGpX!dr}0q#|FQQLP<16+yJ&EN zYe?_}w~cQsxNC5CcbDJCycK>G&StoL zm4JoIsQMI3qehiIs;Hfv16p#6#RO$lWpFtX%T`}`-ZN4;#yIt!oKkJiEKq#6fu8;B z?E9!ddWi{s0lO7j`G^nJST5{P>qX?oQYsk=Y>4Z}a{PW>!{0gASih+;k&yeS8H;TW zX!d)&TfRxG?2La-4%AK|%MPX8)zZ51K&)dP2h=bwGZ0 z7Jf)!=t~pm*>w}(EE$K<-lcul{>x6sAa6#?C4AN zZ%$vP{K$xTU3m*Q5u(jp*?xuuem6$ddJk*W;1poz)es=gM1$HQ^v$&tJz$h{gm-^; zB}U$_D5u1z0+~Fy5o9 zf2ykNHMN((u9J|$>DJ12*t)uj1#~Zx)2NZsz|(yj_!0qm@kTJ02N zx@t7anna-%Qt=yoo#`H346)ecSbd6xtP^pr+^|;q_`@hv^ue_2YKR7Rgabm{ zM*1x(aJ+xC4GX9t3)yb9CT4kw8g!_Lmd^W}nd0wb{gH+Po>19r^Z3xE9diPOJa>^tEg>c{P~YWH?GbwyDFm^j^(Q^B1ShS)V~0G!lv zsH~5@r?Ge&6Id?+Dm$ZaRNsq32Iu9fO0?Y#7`IiP7+L~_Fku0>D+1b-NsUGKJ49Jli5l{7!fhiIxsj-YktI!roxjh~^c8^)9CJGm-{ zT5Dk}5v-LVgng$Xk|sPhQ%1&&t(_r zRSLI`k8**9j-Z)5g|7FdxX!*^w$frcD1QqBJqw*wGHKuQYWEs zqth5?0;pYXJdFI_UGR2Eqv7kf2q^85pr?gQdXtCYYoc+Ii;ku8zqkxMx zu1Z1?+;SKuZU!Y;$R&_PtoJBy7{DIhl&Y{%YKv$tIOxQ5LlibYWp?)-*n#?HI3uHVHz7Nq|KsuT!yY)+Wei@K~(_7jWLG{Ro` z@2%m+k=GLsa~Xu^j95+x8H8JhB^3A8G$2SAvE<4a+g^%ERT+PCgb((vV*Ulp64Ev& zLtMuGK9)gwH`2QcSP?y*iI~@TmXn1dXhNE>MBgLiNt>L&-NfCv$1YH@b!fS#T)+xh z+RW#b4C{AoUd%wchFK-pF@{2|PnKJr2i6+YUWJM#G0HwjzHr)cr-iZdw())?Iz)vv zD-M>h6uX7Uk$MB&ve?oi^i{5Uv2XuFim7MGgt3V$)f;y4@(IEPh${%rEsX>H+Gx}0 zg=RG7D^=&&jzx$&^?~I(tf0$iuXkY8;x_j$Qb#+7%~GPq!D}k5B_dskJu*5X#zjhp zCBhDdTRV`W=#P4qV0!B6FU2uveQbbO#Ad_g=*YJMFI_dG>(yn7ETL-D>{D0-R0<%C zebnCej`&0!F@xzLbY1VSYc_6k`NKH7=kb@`uf&Cy71zwjd0w43{ zp%AKagYI>DyK*K4&DnC963^5ZA0?Zs1d-;gX|Eg-w{NCEXKl9mY8Il;`pVhxrQdR+ zrE;#E+8x&_-Clt*ZHnz0>5B&|OVypqHwHp=#ICf3K^}s@pIFNaX?dzaOe&8;<@o5I zX^gJhqVP1#n!l7b9M{Jhhv%A@-gC8_-l*2YH^xJM$*x_+k0ctZhPw)e7SJ%+N@ud3 zWcqBJP%>l-M{>gfYmGGrafV&oDB)-#)~wZnz&#CKo>rGQDcV4p$chYGqrg+?73ft8 zTO;0_;H_K^79lpY`0{lWXG|Ov6UtDp9HEp#LYc6(CH~;l+my1=7`IOvknA-HKWR0V zV~p8%5&%w@Bj-oW2!yl~@xFGZH&R&B(EyI^?F_`+Q`v~nY+y6vd-03y4?RM6zImSx zyQVW;)?ZJ4_44vs1z$iJFToNjL9Laoqlt+i7V??yJQt z#I9MlhF=D@8?+UN#3&-56S{lklq5x7W){q`;oRRhAD4-dd8R+maw~#1A2Jq$O&$pH z#9U)ljW`Q8W}Hn+&dV%u-1lU!$hI$(tw8U`goUeChTrYucF@x4;H=CfmBy+ZlBeFk zvhs4jxjsAH-W(mwP5r=~>hbWi+vULX1HskP#mC3)lA5JUsBVYw-K6P(&7{NH@?*|z zu8sI3&ZHVvih!p4(yXQxt3Y?pRGZnKRvQi6w~bJXT3c2Z_n&5M{cTJ8UHzJ_7gH*& zC)zUVy~jHv;u_>{tf%D+J}9V5EcWgeEaaEopWSX>jvh9*9}eX%K00Z2Rw3V#eUn;i zt=gn_jDTdw%&IfthyEZq@#!mPmT2x$Gyb?fUE@i^ymkO(8kP#ZW7{L8kA_>AupR^9 zCC;7<^A5I8quWbCy;RCpfPa3(Df|wm54u82WzQ0^!ZtP?>-3HIWHNMa-m4FOt=qk; zwNVIGQZovR%hQ(MvSr`XzBY$wHl&jXPSL{Nlc!kV^U>%%EM}f6Hgv{%y(fdyn22~$ zfP3hKc#)sIfDTP|HP-|Qdb~#6;u5ig%?+Q=7d(>f>NiOljz;cIJxfCm#`>EjkxTro zUH<;pttHY-6*`a7tTm2V)qtt#NvyS{Wo@SSxZ&Y`uDf+WNLqMA1TE|Zwi&G8gxv6@ zxtu!xg&b==n3MQfU~amDl$_7Y=(G~VGbSUKUTuBW*Kpwi{Ef>G()J&$t%a@il|H&~ zt`M;AP9O-u++HAr`EBRp%j}VP@a|CU#kr6X0maNx!KGpzgz~&cm@Wc0T(@4!D5D2NTQ(@P` zQZn%&D13#6Vp@lWq+e$;4xvwIjB-!mgd-7h?F>NeVeca&ruh(Yw(4MG5{KN1Pk6@z_dfulV>hyYkf4*cg+Hcnrg-v${xT^l(}`fCtmPy>$Zp1 zWz-&h)e;CM+A3rrlXqtb;YgtZM11^p%(rba?{dqm7ne}{y%@rEK|}fcYj+ONbPyph z-&k1xMKlVpU^W^@hR=PDw|nbA^71GAltB%q@}%uL6d{kE3e86A*&T0jW}87US9q&*Vl!#72^@Hq+P7Yi#mZ zY;t$t2fag{&K`P2_HptM?hHt?}Gu*&cb$NCY{C6|?o%VQJ z`O!Hk@JiX+&>mr|!Gj8JaORr_=8CDP~PzybY)C1t5|RjDvl zob6V5L_4A(bA3)d$TRai0_WD+9+1cf8mY2%1`J#@g>Nx~yI|>s^V{ zgV0~|0Q>+5*jkJxj=$k86i~2R)92G~HSJxb|?B^;ycdm=_>Z!?ng5=ZzJ{mYY?mGs2H?uDHy5?da#p05a1& zy}-Ub!KoK3&}>NK0B_~?xmUrnRx_+W(=oU^9@QEKLT)TD-s+U}APv~8HF#_-;m>rJ zV&g82F~Qvqn5m#}M0=JPDC}Xar-WOJ>V%_iDAzUdF7b|8V5|qQ4SY*aLYWMeJrp$V zSYt$E*)^6B${DYQ$@gbPs@!`l>5}CxI3FJsa{fx8F{pdp5y z?u_O)Y(I-}nC+!%xAAw^t>=;T{MlDrjmOqdmK`lOjkYJ3mASXypao~+g`16{RP)Ih zmZrzaj2XjR>i!txx%&DOtCx3lE%5sB#=jPEwzly&x;VdzEc{*eT5^)+ChZvg&m{A& zuIxWgb$SC%UM9}$(r3B!B_VgldQCB?93}gp`}e9ujHV|&4tRk*A^S;*B9J>FG6#q!9I42i5&c{x+19!AvDrR9s7aaRuGuM>4@iyM z<4xLp-QN6Sa=yr5Ic6uGYjeORW@aTYUN=WBJ`?XE=61`UL!9o>U+BO&LDVl5?%5<{ z$2D&J24y*kNnslo$PjZ@K7hU)Pp<(}peM@K_V}HTv+4FqEnxGrNilvaJ7f2wMcHnA z`OT6Nw`8wLfBpk{CC7?~s;!CX+@L*&;Pr7rI zBEjt>SkJkrIksEKlx7nJs5&tw;v3e1yVUSFhZ`7&cwXdg$=qPyawYas?ajWx49f1Q z!{f&Fg{Nk0lwHV|2+3s8q^i{$bO_u{DB`x2qN^d+M!@F<&d)uiG6+Z63@#i6vQTAH zBn4;S@q;p+2j8W)<9tVq@>Tt1RMQntMzKS`$YS}ZIp&ME)YG=3rvl^?TlY((Q$4uu z-EOWgFKbmmL9gc(Th6!5{KJ45=GdlVXr9B%E#H_@At7&6dFjhTkskvX(J1-^%8jmA4X;>@u7)_cew31KtcGL8X255f8R4(z^S1l+ zabfkSu$Ne+B8_^+eOipP@$kdvyxl(WzH56lIlXPVcJK1l`d|g$a;kR5A#rRg`Tkz* zLv!Ytq3M17_#Hm5`9tEO{FeuV(}smCPv85P8!hH7Jd!^{FJSvO^nzcIRi2=Ko^V$F zE9fL48EF|o-d~}U_^izJpGy3Xag!LH5Q6@9+$08ur;C3CyLtZE@8AmmN%KIkC;tg< z(x12T-(gbzM$jY%`e%Va9rOPfG>Mr3zy|um`YR+769{>T?imsZ$ntM^K+kpjSr`3h zctC&NC;t@~5GxRb>BGVZ!ruX5E78-@1D~OhfPWz-5Iv9;@EZovFQ7mSjQ?RUJPnWE zCH)sD5RmN|Tj>AC1p5CjCJ@Vi4GBd5?_fUv=kPrs5SafL0cM^J;Xe#}W;W($j5v_7 z{MYz0YVh{z!p;vy7YF=S(^1qM!Rv+dQ^EV^VzJbv1VI*^>|*#NqCht|S_+ zmj^C~CHm_;XbHYvCWJi3Vrt;okg$k^NWSc(9XV{yu{q00CnEG@j(l(T)2&4?A;Plv zS?r9mW6aUh)+;!Lo!p%s;;%PTtsc66HeafC1m<}k5FUmzQO!*~y|n!OvuzS?s4 z!g&ho3VjW#O0NNizp9?3K4xZ%8zL$0nlouN^+I%o`;Zjx$9!SEofFx1R&(d|;0c$@ z!0D^P@gRH*cXI@WVX`-DmdFRHy5%k@Ob_gVrF@xOs)E(u(G=TXl^Iqg73<4XeX`J- zr2oRUhjgKHL29)m^8o1?`#9A89{D5w@%v@A>=-kSO0^0IRf#^6+zKtT)dlQBJ}bM` z-mb7P7ACH&!C|xWzB3`tJlbKka|f3=kLriK2ZehaNoL8@1aC?4gm=97XHbRSc0LZR zecoZM>#Y{8KD>6v@XM|AKt;BTrm_#AoE#U(dW){7b#^qH>;vb?t~+y!skaxko-QGq zr+lMlqKX3>WrS*7@60jP`q-zDCi;=eGI=<=HpRyVj}EcY4OO$N#OoDyM;T`5_bK)p zs%KnlFN3=#x)8%$Np`T^n>=bu#K+7&-OR`Fa2jFnuu3DpsI=PS)I$#AWV|RYJ8V*M z0k~Pl2;AS*Vtqh+@nm=uco2B__+WP3eWKM9vC;hX(d~ip8s=nQ09_A# zJLppo4w+(@r|BKUW;2(Ey<7iBd$;qC-5+nSR*uPHXrXRJ)QU0CsRE3 zHA-U}Rc{I&6&4E@l&+_>QtvybCkMG)E>gZ%r@C)WR~ls+wHs|DS+LvPQxzMPu#Gw! zuEw7mO(eZc&G%TJEKTCLUp`DKY^XfR37({UC|ijP4xr-Fw5hpkI=PHFq{X4VRhX^? zz2Rb4(tX#p3wFcpRF-`dWC{#$+k-+&v4wspecR=>mir<`nj%Jq%`sZ6Aj33)-!30| zSVs6XFJ)sCye<@b%T`q+tO7POkzC}h@2RdTU%x#GO}0TrQd@=hyD`4v3be?XaMqo) zag1!{ir9%^m%8AR9K?!9pbVJ?e`0<})sUhKj76r|c7!pZNI!>clSwI3!&h*Vdz=uw~u}Z9KGX*6|6!=3;y6M5wR z?Cs49_vnXcUxIrQ_oN5!hnQmReS6=^Z;Dk>mi+qFWw1A9KS%>C+mjAIksb((8+ahb ze3!(~7S0O|lOZWhW7uHHUoAqw+YDZgL zQ|Au00gTMD4imK*`1;FTHDS(>>Vt!q=R4hJdXrrd+iK^$L|g?lu_Ww2^%`kz$oIF) zjvA|TP3+~Y+KEjrE=qiGC4UTOCFwPOwiXd(B_`o%Vg1^$ynmBtBU8H$@AsA1JZIn#<0wO30~i;;qBsls}HxQ z!Lua6O}70g4=H7xRmyt%z?vlr8df|-)?=E(dJ8?MVwAMh*X_J&RrA~q9y5B)g5|@> zYY^&@m$O{KUDYv7dH1B$zS$wX8zA5j;0#S(N<4etD8`*_qd1uGjiaRfWpl`R8Q7i) zY%~q$m8r=`+!0fjvjXS{<0ENpeyiQygd8@>pNo5?my^P~nf)>o3&RUlb$a7b>qSk) zB@@+24g&lR`wqq>rHD|8_ZFu!vqSS`1&zgAb;KA&g`hWm#`i7YRir0oW;4$B#Y+qe z`FK;CxyY|JDkraZIEI$2{PU1{a2-0Cu;3HO3_Ea#RfhwP&$rNNWVB$tC%$iuAz-By zdAcI#)^HQk^C+wBy8zuKZUtd56$uJ1{SxlI8YBJg9MTQ7zizHzFkqgAD=fhQ^}tE& z9V%-32~@|sBEpc5TjV}ea^BnHG^IKlW&qNz#roU~*1<|QR4Vi4v=-JbiSW*xsWxvK z63E@Tv|={S83y_wxX!-G_793P({6^+((+zxo!j-RrC;|p;Fk)IvJ&608W-1ARRN_B z3Of`+AmvW2`{iU;)>~IZv1-bx#0-0p7$UmfoI<%FEOJHktz$`QpB|&dS@dL-^EeYq z4=|m%HY|*I#g)~9W$7AdhS6J*EFELM=rO%p=oO2Ih`WAWb$kp+`FOovHJUrSc6l{z zTS`##BIoC(nR(H8O=?`6HXixgo^}XaYeJ3Hg>u;eQ)a{$jpOT@#X8{|g}S&@=w7U8 z&XE|l_<4neG*tNo1(bT4TiF$%w>hK~jbCe=CB*cwcGV!|Q=n-TwaU_ZcZ+E^6=D*) zambgm7buaaoC_&icTeB)rW;(dY^$-}_I^gr^P)lpQ+fxE)aq0>8Zp=AbJyyF+sdCp zl#Gvigs&^i-gpu>bYFArQK1+zabHZ8S-6yUy0n?T6lJhX730p;{&J zvsUH-@DV9~u(d78gFd&Je5X&4zxKsjM+hKvtZ9;5F8v_cXC8X`<#)WeY@bZ-*OD2X zX#Bl%*Rm&Kwh#!1b#F8G?J^XK-UzyCe7Sxom{{0~C~-gRKuv6HHoG66jfn8OI?k2#om!eE&nY{n}R*yzm)t}-4$ zl)tKnHWM~QU|_{*PZ|UR?@J(>Mx3FHhhB#-w9?H`R28LER!6QlT-HjpI=*SO&@wZN z&349Sx>XugeAm8o#d4i$Ax;=z~ah0mTaQ}sF}#Gdld z2haV$bIH7hZhA~a3r|=Ir+tb18D<`Hysb#r4YMl_o)j5vn$oE(LcCvuAz8J3(<>#YFdA|cm9_q;LF5d4mQ+R5gB$9=!&=OA&>alA3zFtBYfUN>!XUXUf+7Zn&md^VjZ3RbeGR$MUh71 z`Z6ZT1xM5H(z!E0t+v?UzR4j@Nr{BApp$kN+l^*@(bsiAP}3zpFM(bBgV*2(e3Rx{ znuri>-q5l*X?}!jd6knW9H;enISq7zBp$Kyb+33*RttD4#4xGJQBJctu>y9!4I%kY znT7ioe5^>OtrRA0>M!9kf6NkqN2;>G_SnhKeF$`SSQ+ZRu&j3yeL;HYP5bb=spj*- z*D?ah;tWluF)X*p_BhHRE!s)hVeq7tx01}3fO}LgVC#<&7O77kUsi8XToCq)GvGN3%*DFR&KzsQGhHUHY?Eo=QKP~kdDLAdXiKf~ssXDG znza*fQG;+RZZ)_yXbsDVT0D>Z>?tLuVeIde)MU7OfXAUSxGS!7pg#I>odc;vqipv? z+I?)UVxxc=-*C~fwClXGer96PUO`VmFrz}^L3hJ`^153#^}V#icw$8hQA*{|_eD?h zPvp&~1B2^imZ?{@7b=6LEo$#l2WoD?oDWj2C=ktPCFfGK(%c<4tgIg1J;whyA7hqk zUUWdZ*5TES2Cgi4-@42(*VG$dBs3b9PMiJy@vx}1m%4b+ZnnOu=rMDe^=d37@&2cW zA@}#x=|O@U{*!4K&&VKQ59pM~nn6y}PCbl6^WXu6E&NX%Oa%X?OM@Pa5-6t;c!v3$fWJl1nk09!kwCUoQ%*m&Mx5K}|`K#We$(W-+=t-mGKsBMxSHSqC)uhnD z6me1M7zh(%!+ez_O7s~x=Xw#62;Pn|whZn~kxtV{y9rwq-U8|KI%6`DF`JPu-e!wr zat4aR|6L>;b#J$|8Sgj40?d6o@}J<5s#Dv`Pj0r0~yemR8mx5VlET6S_(8J%pJO_8(fm0-GeS$`q9|0Q%g54>)^crEZcQiK;ldA9 zC45V!ueBzNlgedKVWW$;Er)tLnll=ZhNCO zLt39MQL@y`$S*UpUql&+Bmq}@(He8n16eCUNxTFVrcW+-1( zwga4MW;*UO0#}+k0Ri^OLP%aOw6x1ukdN8VoGHFSxqO?2pc13X}Gy#%{SC zq+a0R_O1_8JywA)z}c38zSOkNJ~kE4#ajxNgOn#jON8vr9}X{yCzp)ozj~E4|GIb- zUj+3r`2hQ8JkRZ!qIUl zkj$5vS#!vG@Toc`mmj|%CSFr@2qFtF|6ronP32^lpoEY~YQH(~MMg6!)~;*V$VVye zJ$Nz{K)6Kkh;$qqZ<^`~@mfnXmj+}uMx;&3+Lj9rlbJ^)`?L7V znDh`SUM%vfw~$E_BpVtCyVT(fwo%58WE=&|uBo@lT~HoI^u78tlTyK#imO*pS$C`_ zx#H+vvZQx#p#5XvErm>x%vC842avVjM3d-_8_+#1)>L?zkBK1Wjx#cfN5MvVjHTO| zJRa2mh1Z!S*%3;=&U;|0aUXPr`W->)9oqiOd@J!1mbb@Y7~5SkF2MC2+ulJxCM7+a z>BAiz5oh5te_JtclF4bZU8qL(FD|x39ba*GF^VZ@l$Ko#)vv{o0&lWkA^N3#i@;nF z6tQ+^pqkadg+?LHah6hdwkY~R1kZ^4a4PSWvP(2W%2A&plnnfH*Olqr8j|6D+@1tYc0E63coppC}06f|1CBpIWkx96Ogn^-9`B?q|->G_R$ zS{Jph-q}p-a_ILbzM=y|X-j+2R9Jes1DgjuUz7P1BsDj`+m-1$2W+~a;>-XjWeBP=z7q^k3T~Vb0%wyyhuoDHP^+a$Qp?OcKG5# zU1zxD?>_WW6BlK^a`Rs&^R7!*+*PH^(7kh7wTw)O;Zf_WkQ?YvQU%1%2h9(1)~Z|K zMtX3pUw6K#s&}g4Fju~=`O((?WiyF2TWHMKi~&92fWXG!Q|S8;Thql9Y^(kww`ESO zi#j_sta+B44SPKS5$s62uRHRHg{(omdbJtv0W=n`6N~CE8c|noL}+guK2!9b%zdR- zfDGCD8H;Kz(Tn*#o?#SaD&)IRA|S;M6!U*&SWs)+6~VjXOcX zk6R;?xaVulM{ys&Pwp|h_G^BhB)DUj%I=FmU+_t3Q4>WzUf+Y%XC310P%QFV)0pjt0j$ovR1I7n+~g*SXreT;7fS?z8O>u8R<>pfVw ztnR?eI=PrS^6z9@(Ui!+47oGIp0anx@VzoJ8J>~k!=3?@%~`#ID~E{Emh$Uh3JdAI zAM#GJC<{AMNq7#Z3htsPoq`#tx@y-&6&}=MLIi@2X$sz_^&%I@o@_qAdodh({Yl0Y z#7gqVEYvS~C&7>Q!gBT?g!iW;sGbgp)&ca%&kOnl5mbQE1y9@ea16haz^FZQsSwgC ztEhsgF#xPUAm|ngD?NaYfeC~rukm|{U%5X1yaXsm$O;5;k^Hg5uf!Q@&zu_nlRAFI zumAHBe^$q@IpaSs!2kp>v4E&o{?IDMr)=+2AN+X7 z0kSdzn1D<`Q2+eiTa3Tv2i5+p2s0f6fQf;T`QN&W@hQpppVz|73}B>V0X^*xmHevy zKd*#|8Ke?c)_)h}H@*K^yBHW*0L(1RAnunx*7BR;|E$QL4Hd?xAO5G3u>6S{K};II zl=y`;iQmfH%2w`)h~qaJAv;?mT|zZlQGWg>$|QZlC()mC_MpM74`ep7)p7pg?dOE; zQ&Jc-=0U%BO3DBBC?OE9%~NU6ji+0nH1hMq{`D0^0rTtKU&<3~IPjG(E-LOYbdZy;=E;@Fx1D1@ZI0wn z)XAWAS)4)(^R2|aSs!Zx%CGSl`}hf{*2IxKXAy}96Oy4W*eK5T1D~*rj2cRZz=zJa z>PpdhtO<bO*Ja~LRTg>F~f`AurEVANtT&(zZlms5rUR7COt>wh-L$=0Pb`;}4 zvAi4P*b(AAT(xfMtc|b(>vyc7ibHHU2agm>ji1~ILp9+O#xGPy#DtOFEvHF8cgVkFIYIie3@*GoCF@=- zo}w5xCm)}Oc~{!9B$@wEFYANMQz~~Zoca>jyOWje2Daq}jzjuQ18l-7U=zm)(6#3Y>FHU#mX=me+-d)IjODq=lmGfR)ibgF zaw_D%Npd&J_gT);p)~AL!Jf$yNDKmM-Cpp5^@O8W2&RJ2Jzb48I&v|L?ROUAqA_}G z4Tx$X!G*-Nooc?Xea0AJ$%SlhzzSi;P^+w^c%{TV z)&wY!G~H&- zwuDad&l~S;M&lGx1ou#c*)~^M$GCp8MHI0XW{McMQtp1=NGIRiYt1RXnU`?R-kzv( zkgcL+bQQg<=a0<4G5HoZDq*X@0)BpMOIz%G{=sOM)R+qBEr$Y0UvZJZfXR_;srTy9 zcb~iOs4mxSR^I5!E$wr@=vN9Ljog=G%g?uuw;(X(6lTBI`eI8LIYzFFnhfj?qAnj? zKCr7a7}Sa&(UjTpiL5$qBkrgp2B%2VEb9fG{cQ0M?28H#gCL*`yi_LQ>m?zs9b?1R zn*5S1;(|f_l8PWRy!9q>d#^FWQ{aYf^iKxxuk-3(KY&5(Z2yA+{9G?+K>uPo&%+ut zzCjm$J2)p{VrllvCE2IxOzrn*j|m81p##Nk^mL2>Rz}9B01y-iu+cvm66gthR!?Mo zzYytx;)3UELWEC@LQe+t>#X;C-Fo&QIC#7^%Qw!h~I zl?z0c^u(3;`vabA@|O$$Y2%scSpoDcppc0L6y*Rx>~suF047lT|L<=(D6|HJm(P7n z2Vh}ld*U2qU;qW3AVN71+aEoE4ao4f^}L;l9>DsEuTt0iUrdbuXDVQ#XMUn6WCMVf z4S!U^KS+$<^+C@B08u8=gU%K*F+J;p3A7>toiC(kV*Fby;ZGM*KzdLJ&iZ77|1!0| zLP7M502X@Cg5wWn@=q4*H_ruR11Som9?)q}knWy67myVc4$uStCY6!f=~-F-C6@E- zynt+=leM76{;rpQLi2yK7|?njKnDah|91xl1hN4@tfb7(K^VxR|HX61bNB!C9t_9= z1i4*SW)QXOuk*-1N|4_Tf|=!)?*F4jFtI*uf`CqHKhLp$u|^C&g60#uCj!yGY)S_* z13_~;-5-_l4-w&a%K)uKK&yHXgYa)tJCKn9z|6qF`gg10Z?Fy~IsgNx<$rWj|1@EK z*9-$_AB}|p^cn#@BZ!+96m@}EnL%$6fVREq=pv^Mv_bHy}HIQVl2)_$^jretP2*kPD`At6nClh^x zzr?Hkq9r;O01HTjKP-2c|L>6M-;z|%X@UQcq@t$><-I5-MAHt9Fy)mUxwwE@FQy&0n;yZa2m5 zk}dwt8&oPqkHjr&6CKNg^l;isS9@(k9Ta1_nX|!*Bb$s&Fc^Mwd%|fjeWBO z59j@hj}ZiNCEO1i-JZ8`i+Amyi-(Da9v@Ewa+T)qdkbSPW(s4g*_t0fhpSvm9+pYu zZs=n!9u}`zthzmJA088T0xoSHDM}wkl1ex?a+|LocP}08V;{IZPt3S37fhXRm{Xf# zB9OB{;G)&nVh_i62mBxJzHBl-?v(ZuEDp5~#+l{B!xxQgCM9yAD^`}M+v0r_8+45s ze??QMREpO;RU=0Ag)5?=Wd0%pIcv@AtZX}xdcPo(zjnuVUiA@;8aaY}if>}GxEq?mHUyrim-Pz@|?e2_ktf43x zd1{8yLgPKuMJ~sUE-zlLkSpeTO1e9!lj-MMA(Wz5QNKK_R)Hl19|>qNuyE_fgdCc$ zS?2ygo(2zjTIYfZMs%m_3vsc;5oO&{Q@VaO@TIgs!M8egyd-Or&1N3uXV2Xs`fJ#^ zetSp_5{IT$IK(ZD6FjAl+FJx?WybgFm7$%xkU*-YGC0JavDY-R#yq!L%Pebd>kG%> zRKAoCc}#cmkTCC9Y|}q6z$`=s54C81W=#f2eLBZ^3nvB*_4#gj-lJh}O#r5v` zvQ>UQ(nG~3H?Wt=gSDSvfBF)LLhlVxDcP_ZTSdDs^0Awy4Z;p1lqmR!2M6b{M(`ug zP-Jtzd$Gc{jfyYyjnv&bBuwyy+MT>VkCAD}s1G;#r%&@B<^n&5EHZ60`I$~-x8@j^$c-fq-xeNUd(2nH9OJ>e z1;&#>s3idSxRN>d70^RMQMEB&=e?nANPuFktX*PQ?k^Db+4W^nYpb`Q5uDrYs4uQ4 zqiU;whdYZrjxQm5cjJI~r%|@V%+Xb?psZcw&CSXCDL7=NxYR(M^c%$ril>|}M4brn z9l0Nb*v6bHCQ@J^l{eT51$|AiH(2FKq7t4c)85oo;yXe**Y?yDYaW~{?Fkz~e8=O) ziQcLO($X(!wQz>$#Ly<2{Lrdp8SIY-VHO4so;f*flUyO$8WXfjZ0T`Pe-f}+XQ*0#PlMHAm+u&N zW}ZgA%D*iP(P{Bvy8j?(_WiN@LqkvIHt|D)``YN^9ge8!l+?QnjjUd+=8?mZOV3H- zvx>+2V<)$Rc~dRVV-C%xh=_=lt1zla?Rxp3Fw%%M0&W$9h2tG6B zjbQwCR|=GxDuNbe)8#ZzW`6`1`dfXOqhzixBDc$}O|sm{VpcBv6wKE_fdUGO2Zq20S3cfmNF zH6ktP)CWP|c%7>I7jt#)epsxs>jc1hQPqiWqs7`JLr%Qtix;o1*HJu}9v-xkpw>5Y ztveMg;%by|YuKP{vW4$luFEGPceqpDsR}?L*iz9?`@{irS7o%DYn_ZDu&g<1t{}Zb z;sL0Fy$mA|$MPcQ^Q@8b9((nw#bI~HUGGLy%LGpl0wS5(i?|ks2(LcGO{=|c-d1<} z3fs&na*F&e|HGFo^`7!t5f1d~_MiEqfv%>f7~Ev`Ap{}XvXM(+&43kx+kvZ<7^}Co zIvsjSvTF$d3gujxjWfTrC`NiB^=2C*#b&}79DsZs@dbDQ+gxiP6yvvrBBu%agj zgeJ1*5UG@P&=@l_^R#&jVJSrGw&$RkOJK>!(xS!Q%yE*acg-pI3U(QsgEn|H-k1=~FV?dO?y92t^wH88 z7aWb`Xmj7Jq$io9O|+K9GPOJ{=6K|bNWFlkbzIySk?6w5m!jEtBv9r`=M4AZef|UK zy)<@x{So;#^|4trC0=_4dU?7fi=?F_Yi*0`BlJu)9RQnZao-I~noofZ*L|Y(uTVA} zPRrN4lV7xnQ0OsKv1@9Fb?g#zUoc$FRvc@?NSMzi56?-ic9jiq3bl!l&|0=d@=YpP z-C2lvj-7|hHdtB_bg?VI%`1QPDfJe~H#!K;Z$qim8)0Bcf`^h_Ng;CQ83FgphM`DoysZ?t0PPboY!Le~|X z5~jKs=Tk9Ef!;YMT6*bjl*5JZkrtcuHB6R7IF|zTjWlU_vp;eQsV^^Iz8hDdyUFWI zR!DUH<`;Ql6xX&pK~<0MGf@b*U$;^&eK=CuDBQ7rYlFJpmr!~WzlUs`cxn~f1~&r*3;xR-H}q*cipg zi_;!&-b$#o7fzPQmPBQU;`R*wa2Gn)a+{5+>|&isCy7f6m3~LS7hvg3E^x2QMgo_H zE&o?-UmaFe*YvG4D5*#Z(jj%|Iv~=Gba!_g;E*CpcS{I}fP{oJNVjyT^Z}%i5>P-e zzI{Lu^uFKcd9Ukx{ex@oS+izl&6*W^EzfT_u!9JXoL)%!iBb6EvIUrvBu0vbr&I>9 zmXaK9jH28xas4VplS3PW%1cf^1qwvhSiy}iMNnsAQ%N%2-YS+m^MUPNATD}%xuTrTwy`#%K^_h35pS+R&*tLGNkn}nBW4yXS^f9{&YD~*zD5iO z%qruMuqWUbR%DTN8fCyaaF{~DpJB_9KCvzuF9BZll8Dv%E;Dl zh^dQf?K7o9A=qQPzDRTQa!pQ8anOSoSyP`uBI-6^3g;|-kc0ipgAxWk^m=a z!1>ZjdwpZSrk(vjiCWO5-9^H?G<(j|$Cbs+N?vqY2_f$wUZpir#S^=_cs%!+^;ERy zBX7gT=ng8SfyF9Lo!fXRp4~T9r8>U#o8v%JXp$y!96MBopgX*Q**@#qMX(L~aCncrK2U2cr>JS%Zqu0tRkQ$8QSP6m{-4Qn`;=nhN zYa<-*L-h!Y@MmHvN|GjR#es$BBHNXWsp7`z=%Nfl zNaIj+(QHWTA#LugZ^oPI*>COfd$l~dHkc`8OJvg}9A+;n{8+)0#Qg_I%eHHcDmB)b zC2jf|K4XeqFXo?T`X%Oy()q^F-k^ zbZ(i6%ds1yvxUDSkk`2ZEpne4#>ZQ^L?pa(l{nWftfu9_{ooysp4iK%cE4Nv+?2JV z+MDACQxW)`wwIfF?P;xz(ny-x<&2ub#FCkZ$xulrW+!)YSIXt-c+#hHw#O~OF+aHJ zN+Ku%vlFhrj9p}`XcI7nAbr)rn$QJ*Fo9XSwT36M{7}w8t*TtxXU!vcjfi)v_Gmu& zhO(5pLXqTG>W2O6pl7RIqaG4>ye-~H09Ja+~3nA^64kW)+$4!>=#CTMflxnfwNJv&cFx~ zBsn@(`0jz4s6ly)ihD09Oasx6lk6487p5xb0~fU|KgUn=Xh`kuLnh15Ox_(ZnM~!X zV#9*JfKp$PHujl7><0vqH;|7K#m9*$9_k_TaqG>NwH$ks;;0Z*huxrCL&w_Xk8(@V z#e=^6Nbi?T&_#eudkrh;D1nCa(bmTPR zUfZbSo@YDVOT6t7H{&ou4zlp7)JNm)Vu_bp^l2bj&5a^`h1Y+mbKFnIG8o1r$C;d` z4-%fuLi}*}wClt7nATY{Hw@HUdNl9v@48$m{UN9}kk7M10(txZLP6!KGiIo;>{+ia z>;1Ck^MP(>Fxp4u*BBb@am6iZT~xteOUUYi*8>;SzDSiUaiWmn8$%d=d;~|E?d7kH z4(BL}nSL4ubu5G9g10;T9K3etu%cir$t31mrBjdS&}+?HQ8pyW>X>IRO8lXbckfdN zf35z|Ne5Yzy&)BZi=&xZo#@d#`ud5%o{UauparE87Bil-wll3BCggqu_K# z_#X(oP!kH!$9~aG&Pa)8qzQma6mHmm`m3TST-K!QeeNyu z?~AS(3-;|5m`W}Npe=Ln!_+3#=?GuRW7Kb1Kf0oPkB&3GK8u6yNl$dwc_fGlc<>B% ztpSgDz*Cef-S%?+)*=iXpH`nbhM_nEU~&Q^B2(aXx83um3l z0@xrhK*VjhuwV3grVDT6T>zH~oC{88?Eyrb)F}kswq=?`X8KW~9ml>I^{Lpty#UwK zLV*8`>kgnGLl#hF1~*p=x@(^f*WL@a<=F;M_ztkF3;repmt71Kogbi;?DZGtvNkMQeld|8->Qjv^!m5WfcI_ME znb+Gi%UCUXd%mPPjC@xQcFE4L>K`F{P^k5a)Q8zd{nllJ5Vyvj04JVyCo>0~gZZ)< zpR$2qR#`d^a;{uEJuf~*TRe*BWU3Di3Imt)Via|HvZ$}!A3@(sz_%U@GSo7^9; zt59IgQh{loG8SbK&V_Us>$rB6uuRNkK_HKNFQ1hr@zHe9;8^wbt}4m44BZ3#Ksq&7 z10!YNxjF!^ByDSJU)`cPnnoMBjlMg=-k{yae!3HS^HxO#noN5X{=`r&Db6DjFS`fL z!ipjbx(o}0b~MbF?Spl;qU?z7Tw4q0A1k%6#gJeMucTq$A7-N~b7(-|7_&!hU#Y&{ zspJurR#V<^Wu|tcv%qd|ju1UO&Z2uFETN*FD&(&GE#3nOt4xJ7q-mIa7Gzl*ULcxvTsu8Dg2)mTb7C;KH-$k(Zg?`3Mj^v1X!-%YeW+K#hT8m&Y$T=SlLt=V zVL4{g4jC%QwUFzbXzJC?yaGSebqudN^%x8ym^AxY1e9Xh&&4(;-R^{8aebh|VKEC} zQ|t>K4^eYBFt2K+SI;0R=)*#>x5OiaEey`)){R`@kq9B((7oeG9Gj=OWpmAk+hPgV zJeCk5KRugGQ-@%5_t~J>-Mu1PS7p zY>+yx-E`p6)#?7qZ>EaPn$s-Yl{ehyqv9T$&v#yv4mUTc!IYJC<6=n-v(>KuQY~c^ z-xpR{G#?%~;~^%`mT6Gqky(=)EWpvu9n!HjEuX_xhp^jtU1ALiwvq5x@qhGUJ#wkp zH=Qsykpo&7?37~S6eV7V*)r{)1K7!+r*OY8)eA3&&AMqRnU^xnbA`eND`1Gh{|DGA z++4r5p<5#TMqYVL&@qIDO$K2_C-(RfbYDnx)-)5djtC?EGYF+dRQd?A!1#cJD z`aU*bFQBfyS^6&68;>UFu|A}cx*Am`wl@q~q~@eZ!KOC-Mj_^)cKU0#NntFhdA%H? z8+W<{*Oul{pMk@qY?OR>>{5H{?l(7-g%8h*$^@KNM!&w(j!(ZTqp(NfhKG7nMzJxo zsebDPR?fkX?`C(EVMAcw51O}qCM!R2z+_rWS?_oC9_;KShb&&J_`z>a6Y|2_dWcJW zb!U{EB=N@J?i)Ylm1epOW?3)VnUTV4IjH&r_v;#O$+PU*NN~xrvSvm!X^r$lmF-B6;^;2+ceom;o@`x(q9T8idN$&uG zh6+^mf|{)OFEX%n);0~`Q42Bc)szQwgClFqo_2+5sUo?w^1Fj%uXJ#AK#5xFLCDJxWOpvN;`m_U zX8z4&QjMYllsU)Bf=MT=2mP|ICKIG0!}fU{F!5!=XPe&MLT>@fFl&A@}Qvg z-9<5yBoX5kcZCO3{c7tW0Ly1X{_h^c)+vK0yp)rjkoPfn5<7p z^Hrf0!s6CVLCP`bW-;0$E4llvo^A#OREAzD=~T^oM&Q@g&@Iw<{uPg6a9M#z3fVzf z@O|w{l&f-E+GujCYg^iL7KNm8BWks|$_Qz6?{ zn@{s_e))CD)wc?|{N~5a-H~8Ytw~%V(w==UyLYqSrx!E4Gtd`SQmtIB>e|PBy=|XT ziD!>lnre;(=4~-gX^}LTkb5I*_&qpCAL)qI?l}XvY2WS5A}*RY!Eg$(gW*n*K>=YW zwDEI^uv>w{HxuMZJeT!ts!Q~)>kdVGdmm$0ab9n3L|VvB2W8!IV3^O{i5IbLsm^^K z*4J9H;`M{62KmkN6rv;q6BT*8E4QX15hfF$KPJ@LEJ!9)v%V3|c5f6UGb{v>*ID;W zdiSKX$*o+iwVs^YQLK7LJ+ox4BX1Z~UG&`1e}(sH2gGNiVE9&$JoNzLB#FW0%|hIM z;$Xx{y!Rh5#|Ba+_ymk>2)$~x2e!~%rZ5MC`<7F{ zlrt&Z9_F)~Mfv#9%qblzTH9SQAUCGz*4PuM`Q4?GmA;4l*8;ZQQ`K{UXWJwX)jsTx za;E2ddf6x&mhXSU#YF-y=6beb4suSzx*tz>T02DKSu)M#EM7G&wwB@7_HlL{*-x4F zaJh>Y#Wxk+j)=bQ{H#+n98oMHDQ~zo(GG%HCAi2;6uH7bp+)7CtfQA=TGQNI!A{-w z8LwxodJr~a@VJeWj+Y5HdmNYFn5U9dY9gAwx2_d#fE3a$o;rd4CN9dS=ml<&+7a0sPjzhmewGf4@Cyxx)LlVmkRLXs& zjXPOWclMH!Vj7RXLFw2Q99}R2e?!=KLx>cEI;8s!E0(Fv!3k;Y;kmEkl6K0rsLj2V z-S9ZbA{T&HZJ2bQI}3W)Tc`yJ!3G%$#+|?}K50h=URW#;LImu#e-;j#08g2# z0NdCviMmigSbROePwo5Ur}&Ob{S=^a1x*oRyUhk#5@!PEgW1rmmCotgpt{{(DoPv4Ipr(O9Z72E4fYyU@L(xZ-pBV57@5t3*>dX^+ z$Gp6)m$1I3;4mjw_f+^+t)z>SonQU-+lOOU{XwchTSjfJl{Pp8l{yA(#ds?;p}dQD zpVJZtU=*#FX(0CfBW_~4xL0u$yYYQn9%z5*@5OMn_DhNqIEeOo=#Mx#*ND{e0DNQC zrpQ)c>H64&n+_11yCpsp$?5#=}ufo3V*`$Z?b z{&gAZ{5mu~q9>xsSlF`}GcPQr_@-cVnehPMo{D~j*_2;|&Wh~T;p9wTTA}br51HMZ zS4Q*THdGO7MsMclTsxB$#H<>mqw56R_gayNor2gRMc3Vmcz5vh{Uqu%ljwzxPD$PM{iy&P8}m|YKTYWuLR z_w}NyO+n;=i%@Q_aYSjxvwP6v4aD!s&_#iRFKE2M%Zt|aFKhbU>j!+Y{m>!yRC?3b zVz%9@PH#cIKRk+7LTknk>gN_(5g(#Q)>K$2tYEiTN>5ue@*RI`Y{v?k>Qm3qrxnsq zD=%|{O;d8ZBGF9OEj_{CG-Ze_H=Y}~+_X7y#Gtz}!@0%Pua2CfFX61NJsb0$fj{XB zi1>1LJ!6K*+p%}YTL7u;^r=6R1KH3#IZ=A$W8m@=86_P<0jYQmOPfdlawKw(AzG~> zfCfXc*{!c<8aFk1Q)t@OmLtwxtk_MqSyzBLeW{t#^>7swgc%a>UdzQWHF0N1 zQcbw*3sLPe#7Irot*)(y<)XTxy9v&5tsQtvZQL57@IqD=wtF@5IUYOpV>BPLd%Dm3 zO=*SUaW@*ALFTA*4h;m~nSC7Pt?8Yl+5wAA-l*cacAL7vFA-ASk;CbsrYbnW$* zdLFND&gP{_j4@XC@kJCP(cbmwys07lM0|`f$^&vEE&7V@<6ek=P5XU|;diYtZ3Nt8 zMRX_PG}OiUR~}lsAN*cVb#xZd2b|O%0Dx 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 literal 0 HcmV?d00001 diff --git a/docs/draft/Jvav 25.typ b/docs/draft/Jvav 25.typ new file mode 100644 index 0000000..59b8489 --- /dev/null +++ b/docs/draft/Jvav 25.typ @@ -0,0 +1,121 @@ +#set text(font: "SimSun", lang: "zh") +#set text(font: "PT Sans") + +#set heading(numbering: "1.") +#set page(footer: context [ + #h(1fr) + #counter(page).display( + "1" + ) +]) + +#let keyword-color = eastern +#let since-color = green +#let user-color = blue +#let bracket-color = orange + +#align(center, text(24pt)[ + 编程语言Jvav标准工作草案 +]) + +#table( + columns: 2, + stroke: none +)[#text(12pt)[日期:]][#text(12pt)[2024-8-20] +][#text(12pt)[回复:]][#text(12pt)[heckerpowered (#text(12pt, user-color)[heckerpowered\@icloud.com])]] + +#align(bottom)[ + 这是一份草案,有很多不完整和错误的地方 +] + +#pagebreak() + +#show outline.entry.where( + level: 1 +): it => { + v(12pt, weak: true) + strong(it) +} +#outline( + indent: auto +) + +#pagebreak() + += 基础 +== 序言 + +_#text(user-color)[实体]_ 是 _#text(user-color)[值]_, _#text(user-color)[对象]_, _#text(user-color)[函数]_, _#text(user-color)[类成员]_。 + +名字是#text(user-color)[标识符]。 + +名字由声明引入,可能是: +- #text(user-color)[函数声明] +- #text(user-color)[参数声明] +- #text(user-color)[变量声明] + +== 编译单元 + +编译单元是最小可被编译的代码单元。 + +在编译单元中,最外层的作用域被称为#text(user-color)[全局作用域]。 + +#pagebreak() + += 作用域 +== 序言 + +最外围的作用域被称为#text(user-color)[全局作用域],由其他方式引入的作用域称为#text(user-color)[全局作用域]。 + +使用大括号将语句包裹起来,可创建一个局部作用域。 + += 表达式 +== 序言 + +#text(user-color)[表达式]是#text(user-color)[运算符]与#text(user-color)[操作数]的序列,它指定一项计算。 + +#text(user-color)[表达式]的求值可以产生一个结果,比如 2 + 2 的求值产生结果 4,也可能产生副作用。 + +表达式具有两种性质:#text(user-color)[类型]和#text(user-color)[值类别]。 + +表达式的类型是其结果的类型。 + +== 值类别 + +表达式有3种值类别,是:左值、亡值、纯右值。 + +=== 左值 + +左值是求值可确定某个对象的标识的表达式。 + +下列表达式是左值表达式: +- 由任何变量的名字构成的表达式,不论类型。 +- 返回类型是引用的函数调用表达式 +- 到引用类型的转换 +- 所有内建的赋值表达式 +- 前置自增或自减表达式 +- 内建的下标表达式a[n],当a是左值时。 +- 成员表达式a.m,其中a是左值,m是非静态成员变量的名字。 +- 三元条件表达式 a ? b : c,其中b和c是同类型的左值表达式 +- 字符串字面量 + +==== 性质 + +- 可以取地址 +- 可以用于初始化引用 + +=== 亡值 + +亡值是代表它的资源能够被重新使用的对象或位域的泛左值 + +#pagebreak() + += 声明 +== 序言 +== 说明符 + +=== 访问加宽说明符 + +访问加宽说明符是widen,只能在类型内部出现,例如成员函数的访问限制说明符中。 + +访问加宽说明符修饰成员函数时,允许通过不可变的对象调用此成员函数,但当通过可变对象调用此成员函数时,此说明符也允许成员函数修改此对象。 \ No newline at end of file diff --git a/xmake.lua b/xmake.lua index 13c9b83..a76d38e 100644 --- a/xmake.lua +++ b/xmake.lua @@ -4,6 +4,8 @@ add_rules("plugin.compile_commands.autoupdate") local includedirs = { "Mamba/src", "Mamba/src/Core", + "Mamba/src/Core/Printer", + "Mamba/src/Core/International", "Mamba/src/Code Analysis", "Mamba/src/Code Analysis/Syntax", "Mamba/src/Code Analysis/Text",