From 1d6887cd6eec4aa42268da02d598249685d86ea2 Mon Sep 17 00:00:00 2001 From: Diego <2248356998@qq.com> Date: Tue, 13 Jan 2026 11:20:41 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E7=BC=96=E8=BE=91=E5=99=A8=E6=8F=92=E5=85=A5=E6=96=87?= =?UTF-8?q?=E6=9C=AC=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/CodeEditor/CodeEditor.razor.cs | 9 ++++++- .../Components/CodeEditor/CodeEditor.razor.js | 25 ++++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.cs b/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.cs index 17691c82..81787892 100644 --- a/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.cs +++ b/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.cs @@ -1,4 +1,4 @@ -// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. +// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. // Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. // Website: https://www.blazor.zone or https://argozhang.github.io/ @@ -117,6 +117,13 @@ protected override async Task InvokeInitAsync() /// public async Task Resize() => await InvokeVoidAsync("resize"); + /// + /// + /// + /// + /// + public async Task InsertText(string data) => await InvokeVoidAsync("insertText",Id,data); + /// /// /// diff --git a/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.js b/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.js index 91a6761e..fdc105f9 100644 --- a/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.js +++ b/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.js @@ -1,4 +1,4 @@ -import { addLink, addScript } from '../../../BootstrapBlazor/modules/utility.js' +import { addLink, addScript } from '../../../BootstrapBlazor/modules/utility.js' import Data from '../../../BootstrapBlazor/modules/data.js' import EventHandler from "../../../BootstrapBlazor/modules/event-handler.js" @@ -76,6 +76,29 @@ export async function init(id, interop, options) { }); } +export function insertText(id, insertData) { + + const wrapper = Data.get(id); + if (!wrapper) return; + + const editor = wrapper.editor; + + const selection = editor.getSelection(); + + editor.executeEdits('insert-custom-text', [ + { + range: selection, + text: insertData, + forceMoveMarkers: true + } + ]); + //bug: 插入文本后,虽然光标显示正常,但是再次插入文本,实际位置是第一行第一列 + + editor.focus(); +} + + + // Update the editor options export function monacoSetOptions(id, options) { var editor = Data.get(id); From 39ad96c4b709203f4228d2d71d118b1b95111124 Mon Sep 17 00:00:00 2001 From: zhangpeihang <948869991@qq.com> Date: Wed, 14 Jan 2026 16:23:28 +0800 Subject: [PATCH 2/5] =?UTF-8?q?refactor:=20=E4=BF=AE=E6=94=B9=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E7=AD=BE=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/CodeEditor/CodeEditor.razor.cs | 2 +- .../Components/CodeEditor/CodeEditor.razor.js | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.cs b/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.cs index 81787892..43cb45bf 100644 --- a/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.cs +++ b/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.cs @@ -122,7 +122,7 @@ protected override async Task InvokeInitAsync() /// /// /// - public async Task InsertText(string data) => await InvokeVoidAsync("insertText",Id,data); + public async Task InsertTextAsync(string data) => await InvokeVoidAsync("insertText", Id, data); /// /// diff --git a/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.js b/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.js index fdc105f9..3921d1bf 100644 --- a/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.js +++ b/src/components/BootstrapBlazor.CodeEditor/Components/CodeEditor/CodeEditor.razor.js @@ -92,7 +92,6 @@ export function insertText(id, insertData) { forceMoveMarkers: true } ]); - //bug: 插入文本后,虽然光标显示正常,但是再次插入文本,实际位置是第一行第一列 editor.focus(); } From 3ad5529132810095e37446d9c95b2b6988a7a371 Mon Sep 17 00:00:00 2001 From: Diego <2248356998@qq.com> Date: Thu, 15 Jan 2026 09:01:54 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=A4=8D=E7=8E=B0demo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- BootstrapBlazor.Extensions.slnx | 3 + BootstrapBlazorApp1/.editorconfig | 149 ++++++++++++++++++ .../BootstrapBlazorApp1.Server.sln | 25 +++ .../BootstrapBlazorApp1.Server.csproj | 30 ++++ .../Components/App.razor | 39 +++++ .../Components/Layout/LayoutPreview.razor | 23 +++ .../Components/Layout/LayoutPreview.razor.css | 37 +++++ .../Components/Layout/LayoutThumbnail.razor | 44 ++++++ .../Components/Layout/MainLayout.razor | 116 ++++++++++++++ .../Components/Layout/MainLayout.razor.cs | 63 ++++++++ .../Components/Layout/MainLayout.razor.css | 36 +++++ .../Components/Layout/SurveyPrompt.razor | 16 ++ .../Components/Layout/Widget.razor | 75 +++++++++ .../Components/Pages/Counter.razor | 19 +++ .../Components/Pages/Error.razor | 15 ++ .../Components/Pages/Index.razor | 10 ++ .../Components/Pages/Index.razor.cs | 53 +++++++ .../Components/Pages/ScriptCheck.razor | 38 +++++ .../Components/Pages/ScriptCheck.razor.cs | 54 +++++++ .../Components/Pages/ScriptCheck.razor.css | 24 +++ .../Components/Pages/TableDemo.razor | 15 ++ .../Components/Pages/TableDemo.razor.cs | 112 +++++++++++++ .../Components/Pages/Users.razor | 45 ++++++ .../Components/Pages/Users.razor.cs | 68 ++++++++ .../Components/Pages/Users.razor.css | 27 ++++ .../Components/Pages/Weather.razor | 64 ++++++++ .../Components/Routes.razor | 5 + .../Components/_Imports.razor | 18 +++ .../BootstrapBlazorApp1.Server/Data/Foo.cs | 136 ++++++++++++++++ .../Locales/en.json | 26 +++ .../Locales/zh.json | 26 +++ .../BootstrapBlazorApp1.Server/Program.cs | 35 ++++ .../Properties/launchSettings.json | 14 ++ .../appsettings.Development.json | 9 ++ .../appsettings.json | 33 ++++ .../wwwroot/css/app.css | 6 + .../wwwroot/favicon.ico | Bin 0 -> 16958 bytes .../wwwroot/favicon.png | Bin 0 -> 44810 bytes .../wwwroot/images/Argo-C.png | Bin 0 -> 535934 bytes .../wwwroot/images/Argo.png | Bin 0 -> 118863 bytes .../wwwroot/images/avatars/150-1.jpg | Bin 0 -> 6912 bytes .../wwwroot/images/avatars/150-10.jpg | Bin 0 -> 28074 bytes .../wwwroot/images/avatars/150-11.jpg | Bin 0 -> 29324 bytes .../wwwroot/images/avatars/150-12.jpg | Bin 0 -> 20678 bytes .../wwwroot/images/avatars/150-13.jpg | Bin 0 -> 30777 bytes .../wwwroot/images/avatars/150-14.jpg | Bin 0 -> 28796 bytes .../wwwroot/images/avatars/150-15.jpg | Bin 0 -> 21001 bytes .../wwwroot/images/avatars/150-16.jpg | Bin 0 -> 5966 bytes .../wwwroot/images/avatars/150-17.jpg | Bin 0 -> 30535 bytes .../wwwroot/images/avatars/150-18.jpg | Bin 0 -> 24191 bytes .../wwwroot/images/avatars/150-19.jpg | Bin 0 -> 24590 bytes .../wwwroot/images/avatars/150-2.jpg | Bin 0 -> 28003 bytes .../wwwroot/images/avatars/150-20.jpg | Bin 0 -> 12550 bytes .../wwwroot/images/avatars/150-21.jpg | Bin 0 -> 25016 bytes .../wwwroot/images/avatars/150-22.jpg | Bin 0 -> 68122 bytes .../wwwroot/images/avatars/150-23.jpg | Bin 0 -> 61584 bytes .../wwwroot/images/avatars/150-24.jpg | Bin 0 -> 26901 bytes .../wwwroot/images/avatars/150-3.jpg | Bin 0 -> 6829 bytes .../wwwroot/images/avatars/150-4.jpg | Bin 0 -> 6899 bytes .../wwwroot/images/avatars/150-5.jpg | Bin 0 -> 7816 bytes .../wwwroot/images/avatars/150-6.jpg | Bin 0 -> 17986 bytes .../wwwroot/images/avatars/150-7.jpg | Bin 0 -> 20701 bytes .../wwwroot/images/avatars/150-8.jpg | Bin 0 -> 6771 bytes .../wwwroot/images/avatars/150-9.jpg | Bin 0 -> 7447 bytes .../wwwroot/images/logo.png | Bin 0 -> 63389 bytes 65 files changed, 1508 insertions(+) create mode 100644 BootstrapBlazorApp1/.editorconfig create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server.sln create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/BootstrapBlazorApp1.Server.csproj create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/App.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/LayoutPreview.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/LayoutPreview.razor.css create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/LayoutThumbnail.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/MainLayout.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/MainLayout.razor.cs create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/MainLayout.razor.css create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/SurveyPrompt.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/Widget.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Counter.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Error.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Index.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Index.razor.cs create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/ScriptCheck.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/ScriptCheck.razor.cs create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/ScriptCheck.razor.css create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/TableDemo.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/TableDemo.razor.cs create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Users.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Users.razor.cs create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Users.razor.css create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Weather.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Routes.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/_Imports.razor create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Data/Foo.cs create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Locales/en.json create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Locales/zh.json create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Program.cs create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Properties/launchSettings.json create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/appsettings.Development.json create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/appsettings.json create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/css/app.css create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/favicon.ico create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/favicon.png create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/Argo-C.png create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/Argo.png create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-1.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-10.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-11.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-12.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-13.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-14.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-15.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-16.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-17.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-18.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-19.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-2.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-20.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-21.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-22.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-23.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-24.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-3.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-4.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-5.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-6.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-7.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-8.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/avatars/150-9.jpg create mode 100644 BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/images/logo.png diff --git a/BootstrapBlazor.Extensions.slnx b/BootstrapBlazor.Extensions.slnx index 21620bd9..0830dc40 100644 --- a/BootstrapBlazor.Extensions.slnx +++ b/BootstrapBlazor.Extensions.slnx @@ -93,6 +93,9 @@ + + + diff --git a/BootstrapBlazorApp1/.editorconfig b/BootstrapBlazorApp1/.editorconfig new file mode 100644 index 00000000..7ddb907d --- /dev/null +++ b/BootstrapBlazorApp1/.editorconfig @@ -0,0 +1,149 @@ +# To learn more about .editorconfig see https://aka.ms/editorconfigdocs +############################### +# Core EditorConfig Options # +############################### +root = true + +# All files +[*] +indent_style = space +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +# Code files +[*.{cs,csx,vb,vbx}] +indent_size = 4 + +[*.{cs,css,js,json,*html,razor,txt,log}] +charset = utf-8-bom + +[*.{xml,config,*proj,nuspec,props,resx,targets,yml,tasks}] +indent_size = 2 + +# Xml config files +[*.{props,targets,ruleset,config,nuspec,resx,vsixmanifest,vsct}] +indent_size = 2 + +[*.json] +indent_size = 2 + +[*.{ps1,psm1}] +indent_size = 4 + +[*.sh] +indent_size = 4 +end_of_line = lf + +############################### +# .NET Coding Conventions # +############################### +[*.{cs,vb}] +# Organize usings +dotnet_sort_system_directives_first = false +# this. preferences +dotnet_style_qualification_for_field = false:silent +dotnet_style_qualification_for_property = false:silent +dotnet_style_qualification_for_method = false:silent +dotnet_style_qualification_for_event = false:silent +# Language keywords vs BCL types preferences +dotnet_style_predefined_type_for_locals_parameters_members = true:silent +dotnet_style_predefined_type_for_member_access = true:silent +# Parentheses preferences +dotnet_style_parentheses_in_arithmetic_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:silent +dotnet_style_parentheses_in_other_operators = never_if_unnecessary:silent +# Modifier preferences +dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent +dotnet_style_readonly_field = true:suggestion +# Expression-level preferences +dotnet_style_object_initializer = true:suggestion +dotnet_style_collection_initializer = true:suggestion +dotnet_style_explicit_tuple_names = true:suggestion +dotnet_style_null_propagation = true:suggestion +dotnet_style_coalesce_expression = true:suggestion +dotnet_style_prefer_is_null_check_over_reference_equality_method = true:silent +dotnet_prefer_inferred_tuple_names = true:suggestion +dotnet_prefer_inferred_anonymous_type_member_names = true:suggestion +dotnet_style_prefer_auto_properties = true:silent +dotnet_style_prefer_conditional_expression_over_assignment = true:silent +dotnet_style_prefer_conditional_expression_over_return = true:silent +############################### +# Naming Conventions # +############################### +# Style Definitions +dotnet_naming_style.pascal_case_style.capitalization = pascal_case +# Use PascalCase for constant fields +dotnet_naming_rule.constant_fields_should_be_pascal_case.severity = suggestion +dotnet_naming_rule.constant_fields_should_be_pascal_case.symbols = constant_fields +dotnet_naming_rule.constant_fields_should_be_pascal_case.style = pascal_case_style +dotnet_naming_symbols.constant_fields.applicable_kinds = field +dotnet_naming_symbols.constant_fields.applicable_accessibilities = * +dotnet_naming_symbols.constant_fields.required_modifiers = const +############################### +# C# Coding Conventions # +############################### +[*.cs] +# var preferences +csharp_style_var_for_built_in_types = true:silent +csharp_style_var_when_type_is_apparent = true:silent +csharp_style_var_elsewhere = true:silent +# Expression-bodied members +csharp_style_expression_bodied_methods = false:silent +csharp_style_expression_bodied_constructors = false:silent +csharp_style_expression_bodied_operators = false:silent +csharp_style_expression_bodied_properties = true:silent +csharp_style_expression_bodied_indexers = true:silent +csharp_style_expression_bodied_accessors = true:silent +# Pattern matching preferences +csharp_style_pattern_matching_over_is_with_cast_check = true:suggestion +csharp_style_pattern_matching_over_as_with_null_check = true:suggestion +# Null-checking preferences +csharp_style_throw_expression = true:suggestion +csharp_style_conditional_delegate_call = true:suggestion +# Modifier preferences +csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async:suggestion +# Expression-level preferences +csharp_prefer_braces = true:silent +csharp_style_deconstructed_variable_declaration = true:suggestion +csharp_prefer_simple_default_expression = true:suggestion +csharp_style_pattern_local_over_anonymous_function = true:suggestion +csharp_style_inlined_variable_declaration = true:suggestion +############################### +# C# Formatting Rules # +############################### +# New line preferences +csharp_new_line_before_open_brace = all +csharp_new_line_before_else = true +csharp_new_line_before_catch = true +csharp_new_line_before_finally = true +csharp_new_line_before_members_in_object_initializers = true +csharp_new_line_before_members_in_anonymous_types = true +csharp_new_line_between_query_expression_clauses = true +# Indentation preferences +csharp_indent_case_contents = true +csharp_indent_switch_labels = true +csharp_indent_labels = flush_left +# Space preferences +csharp_space_after_cast = false +csharp_space_after_keywords_in_control_flow_statements = true +csharp_space_between_method_call_parameter_list_parentheses = false +csharp_space_between_method_declaration_parameter_list_parentheses = false +csharp_space_between_parentheses = false +csharp_space_before_colon_in_inheritance_clause = true +csharp_space_after_colon_in_inheritance_clause = true +csharp_space_around_binary_operators = before_and_after +csharp_space_between_method_declaration_empty_parameter_list_parentheses = false +csharp_space_between_method_call_name_and_opening_parenthesis = false +csharp_space_between_method_call_empty_parameter_list_parentheses = false +# Wrapping preferences +csharp_preserve_single_line_statements = true +csharp_preserve_single_line_blocks = true +############################### +# VB Coding Conventions # +############################### +[*.vb] +# Modifier preferences +visual_basic_preferred_modifier_order = Partial,Default,Private,Protected,Public,Friend,NotOverridable,Overridable,MustOverride,Overloads,Overrides,MustInherit,NotInheritable,Static,Shared,Shadows,ReadOnly,WriteOnly,Dim,Const,WithEvents,Widening,Narrowing,Custom,Async:suggestion +[*.cs] diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server.sln b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server.sln new file mode 100644 index 00000000..899507fe --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.13.35507.96 d17.13 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BootstrapBlazorApp1.Server", "BootstrapBlazorApp1.Server\BootstrapBlazorApp1.Server.csproj", "{DDEF701E-5B57-223F-89FC-B3C7019FA8CC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {DDEF701E-5B57-223F-89FC-B3C7019FA8CC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDEF701E-5B57-223F-89FC-B3C7019FA8CC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDEF701E-5B57-223F-89FC-B3C7019FA8CC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDEF701E-5B57-223F-89FC-B3C7019FA8CC}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {F4C4EDBB-8F4A-445D-8316-BD89AABB2B13} + EndGlobalSection +EndGlobal diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/BootstrapBlazorApp1.Server.csproj b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/BootstrapBlazorApp1.Server.csproj new file mode 100644 index 00000000..a45faccc --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/BootstrapBlazorApp1.Server.csproj @@ -0,0 +1,30 @@ + + + + net10.0 + enable + enable + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/App.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/App.razor new file mode 100644 index 00000000..e702c8ff --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/App.razor @@ -0,0 +1,39 @@ +@inject IHostEnvironment Env +@inject IStringLocalizer Localizer + + + + + + + + + + + + + + + + + + + + + + + + Bootstrap Blazor Server App + + + + + + + + + + + + + diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/LayoutPreview.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/LayoutPreview.razor new file mode 100644 index 00000000..bfaa54cb --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/LayoutPreview.razor @@ -0,0 +1,23 @@ + + + + +@code { + [Parameter] + public bool IsFullSide { get; set; } + + [Parameter] + public bool IsActive { get; set; } + + [Parameter, NotNull, EditorRequired] + public Func? OnClick { get; set; } + + private string? ClassString => CssBuilder.Default("layout-preview") + .AddClass("active", IsActive) + .Build(); + + private async Task TriggerClick() + { + await OnClick(IsFullSide); + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/LayoutPreview.razor.css b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/LayoutPreview.razor.css new file mode 100644 index 00000000..794b378e --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/LayoutPreview.razor.css @@ -0,0 +1,37 @@ +.layout-preview { + font-size: 9px; + border-radius: 4px; + padding: 4px; + cursor: pointer; + border: 2px solid #c0c4cc; + transition: border .3s linear; +} + + .layout-preview:hover { + border: 2px solid #28a745; + } + + .layout-preview.active { + border: 2px solid #28a745; + } + +::deep .layout { + --bb-layout-height: 80px; + --bb-layout-header-height: 16px; + --bb-layout-footer-height: 12px; + --bb-layout-sidebar-width: 30%; + --bb-layout-banner-font-size: 9px; + --bb-layout-title-color: #fff; + border: 1px solid var(--bb-layout-header-background); +} + + ::deep .layout .layout-footer, + ::deep .layout .layout-header { + justify-content: center; + } + + ::deep .layout .layout-menu { + display: flex; + align-items: center; + justify-content: center; + } diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/LayoutThumbnail.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/LayoutThumbnail.razor new file mode 100644 index 00000000..dd985815 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/LayoutThumbnail.razor @@ -0,0 +1,44 @@ +@if (IsFullSide) +{ + + + + + Header + + Main + + + +} +else +{ + + + Header + + + + + Main + + + +} + +@code { + [Parameter] + public bool IsFullSide { get; set; } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/MainLayout.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/MainLayout.razor new file mode 100644 index 00000000..0c702f66 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/MainLayout.razor @@ -0,0 +1,116 @@ +@inherits LayoutComponentBase + + + + + @if (ShowTabInHeader == false) + { + Bootstrap of Blazor + + + } + + + 个人中心 + 设置 + 通知 + + + + IsOpen = !IsOpen)"> + + + + + + 后台管理 + + + + + + @Body + + + + + + + + IsOpen = false)">点击关闭 + + + + + + + + + + + + + + + + + + 固定页头 + + + + + + 固定页脚 + + + + + + 显示页脚 + + + + + + + + + + + @(UseTabSet ? "多标签" : "单页") + + + + + + 固定标签页 + + + + + + @(ShowTabInHeader ? "顶栏标签" : "正常标签") + + + + + + + + + An unhandled error has occurred. + Reload + 🗙 + diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/MainLayout.razor.cs b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/MainLayout.razor.cs new file mode 100644 index 00000000..0e676596 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/MainLayout.razor.cs @@ -0,0 +1,63 @@ +using BootstrapBlazor.Components; +using Microsoft.AspNetCore.Components.Routing; + +namespace BootstrapBlazorApp1.Server.Components.Layout +{ + /// + /// + /// + public sealed partial class MainLayout + { + private bool UseTabSet { get; set; } = true; + + private string Theme { get; set; } = ""; + + private bool IsOpen { get; set; } + + private bool IsFixedHeader { get; set; } = true; + + private bool IsFixedTabHeader { get; set; } = true; + + private bool IsFixedFooter { get; set; } = true; + + private bool IsFullSide { get; set; } = true; + + private bool ShowFooter { get; set; } = true; + + private bool ShowTabInHeader { get; set; } = true; + + private List? Menus { get; set; } + + /// + /// OnInitialized 方法 + /// + protected override void OnInitialized() + { + base.OnInitialized(); + + Menus = GetIconSideMenuItems(); + } + + private static List GetIconSideMenuItems() + { + var menus = new List + { + new() { Text = "返回组件库", Icon = "fa-solid fa-fw fa-home", Url = "https://www.blazor.zone/components" }, + new() { Text = "Index", Icon = "fa-solid fa-fw fa-flag", Url = "/" , Match = NavLinkMatch.All}, + new() { Text = "Counter", Icon = "fa-solid fa-fw fa-check-square", Url = "/counter" }, + new() { Text = "Weather", Icon = "fa-solid fa-fw fa-database", Url = "/weather" }, + new() { Text = "Table", Icon = "fa-solid fa-fw fa-table", Url = "/table" }, + new() { Text = "花名册", Icon = "fa-solid fa-fw fa-users", Url = "/users" } + }; + + return menus; + } + + private Task OnSideChanged(bool v) + { + IsFullSide = v; + StateHasChanged(); + return Task.CompletedTask; + } + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/MainLayout.razor.css b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/MainLayout.razor.css new file mode 100644 index 00000000..0703abd5 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/MainLayout.razor.css @@ -0,0 +1,36 @@ +.layout-drawer { + margin-inline-start: .5rem; + height: 100%; + display: flex; + align-items: center; + cursor: pointer; +} + +.layout-drawer-body ::deep .groupbox { + margin-top: 1rem; +} + +.layout-drawer-body ::deep .btn-info { + --bs-info: #0078d4; + --bs-btn-hover-bg: #1260b0; + margin-bottom: 1rem; +} + +#blazor-error-ui { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + + #blazor-error-ui .dismiss { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; + } diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/SurveyPrompt.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/SurveyPrompt.razor new file mode 100644 index 00000000..8d8c559b --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/SurveyPrompt.razor @@ -0,0 +1,16 @@ + + + @Title + + + Please take our + brief survey + + and tell us what you think. + + +@code { + // Demonstrates how a parent component can supply parameters + [Parameter] + public string? Title { get; set; } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/Widget.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/Widget.razor new file mode 100644 index 00000000..373e7081 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Layout/Widget.razor @@ -0,0 +1,75 @@ + + + + 您有 4 个未读消息 + + + @for (var index = 0; index < 4; index++) + { + + + + + + + Argo Zhang + @(4 + index) mins + + Why not buy a new awesome theme? + + + } + + + 查看所有消息 + + + + + 您有 10 个未读通知 + + + @for (var index = 0; index < 10; index++) + { + + + 5 new members joined + + } + + + 查看所有通知 + + + + + 您有 3 个任务 + + + + + Design some buttons + 20% + + + + + + Create a nice theme + 40% + + + + + + Some task I need to do + 60% + + + + + + 查看所有任务 + + + diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Counter.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Counter.razor new file mode 100644 index 00000000..44a98cec --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Counter.razor @@ -0,0 +1,19 @@ +@page "/counter" +@attribute [TabItemOption(Text = "Counter")] + +Counter + +Counter + +Current count: @currentCount + +Click me + +@code { + private int currentCount = 0; + + private void IncrementCount() + { + currentCount++; + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Error.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Error.razor new file mode 100644 index 00000000..591fd58f --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Error.razor @@ -0,0 +1,15 @@ +@page "/error" + +Error. +An error occurred while processing your request. + +Development Mode + + Swapping to Development environment will display more detailed information about the error that occurred. + + + The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. + diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Index.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Index.razor new file mode 100644 index 00000000..07d2a454 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Index.razor @@ -0,0 +1,10 @@ +@page "/" +@attribute [TabItemOption(Text = "Index", Closable = false)] + +Index + + + +ShowInsert + + diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Index.razor.cs b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Index.razor.cs new file mode 100644 index 00000000..d2bc7b59 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Index.razor.cs @@ -0,0 +1,53 @@ +using BootstrapBlazor; +using BootstrapBlazor.Components; +using Microsoft.AspNetCore.Components; + +namespace BootstrapBlazorApp1.Server.Components.Pages +{ + public partial class Index + { + + private async Task OnShowInsertClick() + { + + + var op = new DialogOption() + { + IsScrolling = false, + ShowMaximizeButton = true, + Size = Size.ExtraLarge, + Title = "test", + ShowFooter = false, + ShowCloseButton = false, + Component = BootstrapDynamicComponent.CreateComponent(new Dictionary + { + {nameof(ScriptCheck.Script),"script" }, + {nameof(ScriptCheck.GetResult), async (string input,string script)=> + { + return "script"; + }}, + + {nameof(ScriptCheck.OnGetDemo),()=> + { + return """ + Tag("dev1","var1").Value.ToInt() + 100 + """; + + } + }, + + {nameof(ScriptCheck.ScriptChanged),EventCallback.Factory.Create(this, a => + { + + }) } + + }), + }; + //op.BodyTemplate = renderFragment; + await DialogService.Show(op); + + } + [Inject] + DialogService DialogService { get; set; } + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/ScriptCheck.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/ScriptCheck.razor new file mode 100644 index 00000000..42985d85 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/ScriptCheck.razor @@ -0,0 +1,38 @@ +@namespace BootstrapBlazor + + + + + + + + + + + + @(new MarkupString("注意 raw 参数 为 object 类型,需要转换为实际类型操作")) + @(new MarkupString("获取设备类实体,可用 GlobalData.ReadOnlyDevices 字典对象,键为设备名称,值为设备对象")) + @(new MarkupString("获取变量类实体,可用方法 GlobalData.GetVariable(\"设备名称1\",\"变量名称1\") ")) + @(new MarkupString("下个节点获取的raw数据是当前节点的值,比如当前节点是变量触发器,那么下个节点传入的raw是VariableData类型")) + @(new MarkupString("详细说明查看文档对应内容页面")) + + + + + + + + + + + + + + + + + + + Check + + diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/ScriptCheck.razor.cs b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/ScriptCheck.razor.cs new file mode 100644 index 00000000..7f501595 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/ScriptCheck.razor.cs @@ -0,0 +1,54 @@ + +using BootstrapBlazor.Components; +using Microsoft.AspNetCore.Components; + +namespace BootstrapBlazor; + +public partial class ScriptCheck +{ + [Parameter, EditorRequired] + public string Input { get; set; } = string.Empty; + private string Output { get; set; } + + [Parameter, EditorRequired] + public string Script { get; set; } + [Parameter, EditorRequired] + public EventCallback ScriptChanged { get; set; } + private async Task Change(string script) + { + Script = script; + if (ScriptChanged.HasDelegate) + await ScriptChanged.InvokeAsync(script); + } + + [Parameter] + public Func> GetResult { get; set; } + + private async Task CheckScript() + { + try + { + if (GetResult != null) + { + Output = await GetResult(Input, Script).ConfigureAwait(false); + } + } + catch (Exception ex) + { + Output = ex.ToString(); + } + } + + private async Task GetDemo(Microsoft.AspNetCore.Components.Web.MouseEventArgs args) + { + Script = OnGetDemo?.Invoke(); + await Change(Script); + } + CodeEditor CodeEditor; + private async Task Insert() + { + await CodeEditor.InsertTextAsync("test1"); + } + [Parameter, EditorRequired] + public Func OnGetDemo { get; set; } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/ScriptCheck.razor.css b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/ScriptCheck.razor.css new file mode 100644 index 00000000..cc8f2591 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/ScriptCheck.razor.css @@ -0,0 +1,24 @@ +.text-h6 { + /* Headline 6 */ + font-family: Roboto !important; + font-style: normal !important; + font-weight: bold !important; + font-size: 1rem !important; + line-height: 1.875rem !important; + /* identical to box height */ + letter-spacing: 0.01em !important; +} + +.text-caption { + /* Caption-说明 */ + font-family: Roboto !important; + font-style: normal !important; + font-weight: 500 !important; + font-size: 0.75rem !important; + line-height: 1.125rem !important; +} + + +.scriptcheck ::deep .alert { + padding: 4px; +} \ No newline at end of file diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/TableDemo.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/TableDemo.razor new file mode 100644 index 00000000..4de43078 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/TableDemo.razor @@ -0,0 +1,15 @@ +@page "/table" +@attribute [TabItemOption(Text = "Table")] + +Table + + + + + + diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/TableDemo.razor.cs b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/TableDemo.razor.cs new file mode 100644 index 00000000..c76b3696 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/TableDemo.razor.cs @@ -0,0 +1,112 @@ +using BootstrapBlazor.Components; +using BootstrapBlazorApp1.Server.Data; +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; +using System.Collections.Concurrent; +using System.Diagnostics.CodeAnalysis; + +namespace BootstrapBlazorApp1.Server.Components.Pages +{ + /// + /// 表格编辑示例 + /// + public partial class TableDemo : ComponentBase + { + [Inject] + [NotNull] + private IStringLocalizer? Localizer { get; set; } + + private readonly ConcurrentDictionary> _cache = new(); + + private IEnumerable GetHobbies(Foo item) => _cache.GetOrAdd(item, f => Foo.GenerateHobbies(Localizer)); + + private static IEnumerable PageItemsSource => new int[] { 20, 40 }; + + [NotNull] + private List? Items { get; set; } + + /// + /// 查询操作方法 + /// + /// + /// + private Task> OnQueryAsync(QueryPageOptions options) + { + // 此处代码实战中不可用,仅仅为演示而写防止数据全部被删除 + if (Items == null || Items.Count == 0) + { + Items = Foo.GenerateFoo(Localizer); + } + + var items = Items.Where(options.ToFilterFunc()); + // 排序 + var isSorted = false; + if (!string.IsNullOrEmpty(options.SortName)) + { + items = items.Sort(options.SortName, options.SortOrder); + isSorted = true; + } + + var total = items.Count(); + return Task.FromResult(new QueryData() + { + Items = items.Skip((options.PageIndex - 1) * options.PageItems).Take(options.PageItems).ToList(), + TotalCount = total, + IsFiltered = true, + IsSorted = isSorted, + IsSearch = true + }); + } + + private Task OnSaveAsync(Foo foo, ItemChangedType changedType) + { + var ret = false; + if (changedType == ItemChangedType.Add) + { + var id = Items.Count + 1; + while (Items.Find(item => item.Id == id) != null) + { + id++; + } + var item = new Foo() + { + Id = id, + Name = foo.Name, + Address = foo.Address, + Complete = foo.Complete, + Count = foo.Count, + DateTime = foo.DateTime, + Education = foo.Education, + Hobby = foo.Hobby + }; + Items.Add(item); + } + else + { + var f = Items.Find(i => i.Id == foo.Id); + if (f != null) + { + f.Name = foo.Name; + f.Address = foo.Address; + f.Complete = foo.Complete; + f.Count = foo.Count; + f.DateTime = foo.DateTime; + f.Education = foo.Education; + f.Hobby = foo.Hobby; + } + } + ret = true; + return Task.FromResult(ret); + } + + private Task OnDeleteAsync(IEnumerable foos) + { + foreach (var foo in foos) + { + Items.Remove(foo); + } + + return Task.FromResult(true); + } + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Users.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Users.razor new file mode 100644 index 00000000..213e9736 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Users.razor @@ -0,0 +1,45 @@ +@page "/users" +@attribute [TabItemOption(Text = "花名册")] +花名册 + + + 花名册 + + 只读数据 - 更改每页显示数量体验固定表头功能 + + + + + + + @{ + var row = (Foo)value.Row; + } + + + + + @value.Value + @row.Address + + + + + + + + + + @value.Value % + + + + + + + + + + diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Users.razor.cs b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Users.razor.cs new file mode 100644 index 00000000..644691e1 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Users.razor.cs @@ -0,0 +1,68 @@ +using BootstrapBlazor.Components; +using BootstrapBlazorApp1.Server.Data; +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; +using System.Diagnostics.CodeAnalysis; + +namespace BootstrapBlazorApp1.Server.Components.Pages +{ + /// + /// + /// + public partial class Users + { + [Inject] + [NotNull] + private IStringLocalizer? Localizer { get; set; } + + /// + /// 获得/设置 分页配置数据源 + /// + private static IEnumerable PageItemsSource => new int[] { 10, 20, 40 }; + + private static string GetAvatarUrl(int id) => $"images/avatars/150-{id}.jpg"; + + private static Color GetProgressColor(int count) => count switch + { + >= 0 and < 10 => Color.Secondary, + >= 10 and < 20 => Color.Danger, + >= 20 and < 40 => Color.Warning, + >= 40 and < 50 => Color.Info, + >= 50 and < 70 => Color.Primary, + _ => Color.Success + }; + + [NotNull] + private List? Items { get; set; } + + private Task> OnQueryAsync(QueryPageOptions options) + { + // 此处代码实战中不可用,仅仅为演示而写防止数据全部被删除 + if (Items == null || Items.Count == 0) + { + Items = Foo.GenerateFoo(Localizer, 23); + } + + var items = Items.Where(options.ToFilterFunc()); + + // 排序 + var isSorted = false; + if (!string.IsNullOrEmpty(options.SortName)) + { + items = items.Sort(options.SortName, options.SortOrder); + isSorted = true; + } + + var total = items.Count(); + + return Task.FromResult(new QueryData() + { + Items = items.Skip((options.PageIndex - 1) * options.PageItems).Take(options.PageItems).ToList(), + TotalCount = total, + IsFiltered = true, + IsSorted = isSorted, + IsSearch = true + }); + } + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Users.razor.css b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Users.razor.css new file mode 100644 index 00000000..4d92c651 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Users.razor.css @@ -0,0 +1,27 @@ +.page-user { + height: calc(100vh - 2rem - var(--bb-layout-footer-height) - var(--bb-layout-header-height) - var(--bb-tabs-item-height, 0)); + display: flex; + flex-direction: column; +} + +.user-demo-address { + margin-top: .25rem; + font-size: 86%; + color: #c0c4cc; +} + +::deep .table-users { + flex: 1; + height: 1%; + min-height: 0; +} + +::deep .table-cell img { + width: 46px; + border-radius: var(--bs-border-radius); +} + +::deep .table-cell .progress { + height: 6px; + margin-top: .5rem; +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Weather.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Weather.razor new file mode 100644 index 00000000..8daa979a --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Pages/Weather.razor @@ -0,0 +1,64 @@ +@page "/weather" +@attribute [TabItemOption(Text = "Weather")] + +Weather + +Weather + +This component demonstrates showing data. + +@if (forecasts == null) +{ + Loading... +} +else +{ + + + + Date + Temp. (C) + Temp. (F) + Summary + + + + @foreach (var forecast in forecasts) + { + + @forecast.Date.ToShortDateString() + @forecast.TemperatureC + @forecast.TemperatureF + @forecast.Summary + + } + + +} + +@code { + private WeatherForecast[]? forecasts; + + protected override async Task OnInitializedAsync() + { + // Simulate asynchronous loading to demonstrate a loading indicator + await Task.Delay(500); + + var startDate = DateOnly.FromDateTime(DateTime.Now); + var summaries = new[] { "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" }; + forecasts = Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = startDate.AddDays(index), + TemperatureC = Random.Shared.Next(-20, 55), + Summary = summaries[Random.Shared.Next(summaries.Length)] + }).ToArray(); + } + + private class WeatherForecast + { + public DateOnly Date { get; set; } + public int TemperatureC { get; set; } + public string? Summary { get; set; } + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Routes.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Routes.razor new file mode 100644 index 00000000..f90a06ec --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/Routes.razor @@ -0,0 +1,5 @@ + + + + + diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/_Imports.razor b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/_Imports.razor new file mode 100644 index 00000000..aca0b692 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Components/_Imports.razor @@ -0,0 +1,18 @@ +@using BootstrapBlazor.Components +@using BootstrapBlazorApp1.Server +@using BootstrapBlazorApp1.Server.Data +@using BootstrapBlazorApp1.Server.Components.Layout +@using BootstrapBlazorApp1.Server.Components.Pages + +@using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Components.Authorization +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.Extensions.Localization +@using Microsoft.JSInterop + +@using System.ComponentModel +@using System.ComponentModel.DataAnnotations +@using System.Diagnostics.CodeAnalysis +@using System.Net.Http diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Data/Foo.cs b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Data/Foo.cs new file mode 100644 index 00000000..e3420ab2 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Data/Foo.cs @@ -0,0 +1,136 @@ +// Copyright (c) Argo Zhang (argo@163.com). All rights reserved. +// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. +// Website: https://www.blazor.zone or https://argozhang.github.io/ + +using BootstrapBlazor.Components; +using Microsoft.Extensions.Localization; +using System.ComponentModel.DataAnnotations; + +namespace BootstrapBlazorApp1.Server.Data +{ + /// + /// + /// + public class Foo + { + // 列头信息支持 Display DisplayName 两种标签 + + /// + /// + /// + [Display(Name = "主键")] + [AutoGenerateColumn(Ignore = true)] + public int Id { get; set; } + + /// + /// + /// + [Required(ErrorMessage = "{0}不能为空")] + [AutoGenerateColumn(Order = 10, Filterable = true, Searchable = true)] + [Display(Name = "姓名")] + public string? Name { get; set; } + + /// + /// + /// + [AutoGenerateColumn(Order = 1, FormatString = "yyyy-MM-dd", Width = 180)] + [Display(Name = "日期")] + public DateTime DateTime { get; set; } + + /// + /// + /// + [Display(Name = "地址")] + [Required(ErrorMessage = "{0}不能为空")] + [AutoGenerateColumn(Order = 20, Filterable = true, Searchable = true)] + public string? Address { get; set; } + + /// + /// + /// + [Display(Name = "数量")] + [Required] + [AutoGenerateColumn(Order = 40, Sortable = true)] + public int Count { get; set; } + + /// + /// + /// + [Display(Name = "是/否")] + [AutoGenerateColumn(Order = 50, ComponentType = typeof(Switch))] + public bool Complete { get; set; } + + /// + /// + /// + [Required(ErrorMessage = "请选择学历")] + [Display(Name = "学历")] + [AutoGenerateColumn(Order = 60)] + public EnumEducation? Education { get; set; } + + /// + /// + /// + [Required(ErrorMessage = "请选择一种{0}")] + [Display(Name = "爱好")] + [AutoGenerateColumn(Order = 70)] + public IEnumerable Hobby { get; set; } = []; + + private static readonly Random random = new(); + + /// + /// + /// + /// + /// + public static Foo Generate(IStringLocalizer localizer) => new() + { + Id = 1, + Name = localizer["Foo.Name", "1000"], + DateTime = DateTime.Now, + Address = localizer["Foo.Address", $"{random.Next(1000, 2000)}"], + Count = random.Next(1, 100), + Complete = random.Next(1, 100) > 50, + Education = random.Next(1, 100) > 50 ? EnumEducation.Primary : EnumEducation.Middle + }; + + /// + /// + /// + /// + public static List GenerateFoo(IStringLocalizer localizer, int count = 80) => Enumerable.Range(1, count).Select(i => new Foo() + { + Id = i, + Name = localizer["Foo.Name", $"{i:d4}"], + DateTime = DateTime.Now.AddDays(i - 1), + Address = localizer["Foo.Address", $"{random.Next(1000, 2000)}"], + Count = random.Next(1, 100), + Complete = random.Next(1, 100) > 50, + Education = random.Next(1, 100) > 50 ? EnumEducation.Primary : EnumEducation.Middle + }).ToList(); + + /// + /// + /// + /// + public static IEnumerable GenerateHobbies(IStringLocalizer localizer) => localizer["Hobbies"].Value.Split(",").Select(i => new SelectedItem(i, i)).ToList(); + } + + /// + /// + /// + public enum EnumEducation + { + /// + /// + /// + [Display(Name = "小学")] + Primary, + + /// + /// + /// + [Display(Name = "中学")] + Middle + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Locales/en.json b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Locales/en.json new file mode 100644 index 00000000..ba65e97e --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Locales/en.json @@ -0,0 +1,26 @@ +{ + "BootstrapBlazorApp1.Server.Data.Foo": { + "Name": "Name", + "DateTime": "DateTime", + "Address": "Address", + "Count": "Count", + "Complete": "Complete", + "Education": "Education", + "Hobby": "Hobby", + "Name.Required": "{0} is required.", + "Address.Required": "{0} is required.", + "Education.Required": "{0} is required.", + "Hobby.Required": "{0} is required.", + "Name.PlaceHolder": "required", + "Hobbies": "Swimming,Climb,Shoot,Chess", + "Foo.Name": "Zhangsan {0}", + "Foo.Address": "Lane {0} of Jinshajiang Road, Putuo District, Shanghai", + "Foo.Address2": "Earth, China, Lane {0} of Jinshajiang Road, Putuo District, Shanghai. Here is an example of super long cell", + "Foo.BindValue": "BindValue" + }, + "BootstrapBlazorApp1.Server.Data.EnumEducation": { + "PlaceHolder": "Click to select ...", + "Primary": "Primary", + "Middle": "Middle" + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Locales/zh.json b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Locales/zh.json new file mode 100644 index 00000000..7ffdec69 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Locales/zh.json @@ -0,0 +1,26 @@ +{ + "BootstrapBlazorApp1.Server.Data.Foo": { + "Name": "姓名", + "DateTime": "日期", + "Address": "地址", + "Count": "数量", + "Complete": "是/否", + "Education": "学历", + "Hobby": "爱好", + "Name.Required": "{0}是必填项", + "Address.Required": "{0}是必填项", + "Education.Required": "{0}是必选项", + "Hobby.Required": "请选择一种{0}", + "Name.PlaceHolder": "不可为空", + "Hobbies": "游泳,登山,打球,下棋", + "Foo.Name": "张三 {0}", + "Foo.Address": "上海市普陀区金沙江路 {0} 弄", + "Foo.Address2": "地球、中国、上海市普陀区金沙江路 {0} 弄 这里是超长单元格示例", + "Foo.BindValue": "绑定值" + }, + "BootstrapBlazorApp1.Server.Data.EnumEducation": { + "PlaceHolder": "请选择 ...", + "Primary": "小学", + "Middle": "中学" + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Program.cs b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Program.cs new file mode 100644 index 00000000..62702bad --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Program.cs @@ -0,0 +1,35 @@ +using BootstrapBlazorApp1.Server.Components; +using Microsoft.AspNetCore.SignalR; +using System.Text; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); + +builder.Services.AddRazorComponents().AddInteractiveServerComponents(); + +builder.Services.AddBootstrapBlazor(); + +// 增加 Pdf 导出服务 +builder.Services.AddBootstrapBlazorTableExportService(); + +// 增加 Html2Pdf 服务 +builder.Services.AddBootstrapBlazorHtml2PdfService(); + +// 增加 SignalR 服务数据传输大小限制配置 +builder.Services.Configure(option => option.MaximumReceiveMessageSize = null); + +var app = builder.Build(); + +if (!app.Environment.IsDevelopment()) +{ + app.UseExceptionHandler("/Error"); +} + +app.UseAntiforgery(); + +app.MapStaticAssets(); +app.MapRazorComponents().AddInteractiveServerRenderMode(); + +app.Run(); diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Properties/launchSettings.json b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Properties/launchSettings.json new file mode 100644 index 00000000..6e6042a5 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/Properties/launchSettings.json @@ -0,0 +1,14 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:5220", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/appsettings.Development.json b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/appsettings.Development.json new file mode 100644 index 00000000..0e03596f --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "DetailedErrors": true, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/appsettings.json b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/appsettings.json new file mode 100644 index 00000000..c04d32b4 --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/appsettings.json @@ -0,0 +1,33 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*", + "BootstrapBlazorOptions": { + "ToastDelay": 4000, + "MessageDelay": 4000, + "SwalDelay": 4000, + "EnableErrorLogger": false, + "FallbackCulture": "en", + "SupportedCultures": [ + "zh-CN", + "en-US" + ], + "TableSettings": { + "CheckboxColumnWidth": 36 + }, + "IgnoreLocalizerMissing": true, + "StepSettings": { + "Short": "1", + "Int": "1", + "Long": "1", + "Float": "0.1", + "Double": "0.01", + "Decimal": "0.01" + }, + "DefaultCultureInfo": "zh-CN" + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/css/app.css b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/css/app.css new file mode 100644 index 00000000..c84cb0ba --- /dev/null +++ b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/css/app.css @@ -0,0 +1,6 @@ +@supports not selector(::-webkit-scrollbar) { + .scroll { + scrollbar-color: rgba(0,0,0,0.3) rgba(0,0,0,0); + scrollbar-width: thin; + } +} diff --git a/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/favicon.ico b/BootstrapBlazorApp1/BootstrapBlazorApp1.Server/wwwroot/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..35480a03399b8741c242df7bffcc536cb773c186 GIT binary patch literal 16958 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
Current count: @currentCount
+ Swapping to Development environment will display more detailed information about the error that occurred. +
+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +
raw
object
GlobalData.ReadOnlyDevices
GlobalData.GetVariable(\"设备名称1\",\"变量名称1\")
只读数据 - 更改每页显示数量体验固定表头功能
This component demonstrates showing data.
Loading...
AQZUrSF z6gA?4hxKu10C&EX<$*xvPP=qfAK}0w#}PhJ?ZlMjrG^3+IB;b}-6wFF%@2lF>vuJx zSfH#AuO68n45C*!ottg=i4ty4wdS_555I^qyXLXWZC!4gm)dl9>W2538*WHAg9%`}}rYUdP!h;_eIL_+zN}IY{h=ohzfluW# zN_V3uuTvbeO^MJQrs%1IxaE)Z*@&oTFRYv|GktUo~1pjs0u9C};)PEe62xi%MG7>v0xNM43(mG%K ziU-_`Uc#R8XFB_;yNL#;M*9fSDG(gd-G&+ENSL;$y;@uda>1EFUymfZxpZYs```2t(rdi*nGxi2| z9$|@XvOzF?9(8!8Lw{C4hN;t>)hj3*w4vUFQgbz(USf=umw&9C8ij26dkg6|AYe_L`SauRZzLP5w?tbs_-4enn5&p!lkJ#sl&5Y8 zMF*nR+ihEN8Iamv(API8g~?K(h> z=;S2^(|KoE^?qRb@HE^Q{yJuYFjwFrRc%QW!osT?2CT^U@SSw|Hns#PXNeue6p zfo7R_Kehe=T;o+H?(3@G{`7pFCc7^%A!VahYw<+2ymz$Z7pHb14nIsmgOPBtZz(rz zR5A(chZX${2mhdXmcTZ#vK&DnYcOFc7SUiCoae8Q$T@wMvQl*-9NV<`@$7GR4DK~j z6965B7>*=a|BOocmpm2w&$XP*jAo$sGR!+3TjChJhp+yhs?&Lwh{&%TC z#Ld9G;%UiXQ_U|EWMLM@I!DZCZBH=Zfkf0ere<*P2TiZ$EN*!H)H|JbP1T~h&FO%^ zrUE8GJbuXM@rx^)#P=TBEgYbcoseQY$qSWD>KMNnEn zYG_zFO4AKPNK1{ug+&*MC06BbBIG-)XiTc3~#vZv4HFEH>#ALQ_C#yuPzn zQZ0L7@RrA2u$3x;hx$hsy^wcMa;T#nkqT%@>!V9%`2Sz0SW`q;fvi{@{P}lSyJ7=P z1l~PEBxTsE&Dr}u5+b9GCjd4-^M7GRhPIw--BvBjz_A{eeVhGPAzd zDP*HAy&FbyvT<4k_uy@GZt`!v>9mp|gHBhAnh=6GNjesdzvW8d2gQT{wXk&zfs2Qs zESuBk!mRBM<3S`<`Y&AEN8vCVHz@?02yWbW^!v7D4-dgp0F6K%$i1z$M2-7lAE$ z!h5S`|7HF^DOK9QaLSA;-J+xiNgOQ|6fz$Q;3FT>&2f*G+imw&0^iu`oId{-2euR| zoB9D%nc>jA))ZZ{`&!55BlgdzFn_ze?2|0j9UqYo*B*|xdzkP>5=8(t8+>#ZWMS@U z*zTC6pi)R51$QEf1U(|e+nuUi^}>c-&C0P65#Vxfu~rrkZ6||da`nZ`&D)?6QxyQ8 zu&y;PyrS}uC$5rlC=uFtC-iqUBs!xZ4m5beDJdfC2@j|c$H3cPBkvT z<%vt&NRRj!3}qmF7OML2h;Exe3>r?U@rV;%pe=8_;{u+3Y4dN=|<@# zzYab@1&Ow|LC)l~Q5m6PUN1zPHj{z zXLkE|R(>#KFb%*7WY77*GH@wDYrB)QD-aMS;wJ#U=$D~_gsGw6_OU$KW?V2a{Go9m zNCzM6DG5V_WymHtQzLTXP=Yc+I4yLDk6{2RAe_K*E(tNARLnh3*LgtnX0yX-xmnL+ zyBt?eJoh(XD7uO`(tSFCG(U7wHb37|iZ9r35*&$9injts2vv%V$L>&e(x)7m#74D> zpLiNPl37j6qY(~>g~ga%g%j(|kl>D1-fD}84uBtvqq8yR;2y#$KW=ZF(Xo3Wg}ipI zdlLiehtl03-~kQiHY1Dw1=Irxs)wer=ZT1BY7x+{+OL!8AFQJKmee~AoFw%+!`?EK z^b5tj*$eK%q^}dR3d}({YRr#Fr1C?Ay_qI`%>ToJX#D6(5SEtSwC?$D);hZ{k|6KS z!6E8{70q&kATqmStX$Xauo5Dg-%#sx{OfIJUy|M5G@vzsUUfT2MXg(JnVEjUldQ^S zcQ&5+EgRaGAITJdi|9zp0~y{s{beOH?Ed#CrhyP3PS->Od|D`=778GyBS?bR(D`{n!!ta-1<;xh}y(?zwNlu4>B3^c|8 zBs_rom7@(~y8|nyDDQi<_ru`be6H~IuwBW@)y9u#Pv+#IU%*E9l9P8?aFKzSbAu^O8Ju&G7Rll{yT@nsujq87GpI7I;l`XE41^z2x zPt3HlA8%wwwi4urP_%Mm9Ii&@Pn4fV=bfc7ncSDZZICN@ibVBR`E zox6hCs6!;VHZSxM59aX+CsNbbkR4s;w!ACGqFe8osXQi zZHusB^LIhZW8mhaUin-rmsxSQJPJLD^l~Db))iEc14pK>$TvL7+HYO_+y5|===n?^ zw!-!6H&a>YD{bVGIl<%V1iQ;$5^A}H1sL*Nzi#9GO3dYbi!);Na@kF}0J zOcvu^=0}%g5g)bFUvl<~wL!;(&d$%Q{y$&W7YBcdG#o4T>ryBxuQ{i-it}MhI={oy zMF%E9XMdYFL*iZdDJXB!vwJmhxvuS&UlLW_71X<0jlL4VL-1%<-5`>(v6pLu0O}Mt z4P`&PlqubW0(SFi_`0ko(_@oPd%TfH*+J}e`NUaoBqjxd?ul{^X`E6pFFHyYO=3 zclMiVIWuKr)~=VmzkC`0S>wmfz+{UA)?)j{yz_x#dseSva?_N_n!yHQA=RMtf6mDt z2Bj_PC(w8uSR208m4*JTr7ri7jV&3WpE@y(CJ9!$KZ=NS1*u>elpC&gkHZ8;)H`b5 zJn$iUBEnjPtRCxA3wTuK=(9AR&tQkMp^*YDA9{LW;X@&5i$>a#SvxO`y`;^!{x2j7 zSbT|J)_-9Y1Ft!lV_siezJ+e9mTn7>D>QG=#Yn|pg+yxE2ydcSVu=+Gs|MrW;1xTI zlRIk4&B?9ikOA196wlNd-UPq{sS+CcNy+YZYCREQ0ZB@3%hEYQ!j1FoVcfF!vPduc z+2+@3gl`wio$qWfy{*;|fxmqjjt-5q8RVHZH{`l2T`gNyf}5jR>+}1SEWS*P*JlNU zC}}^>C|Qs$jQyK8oa7>mZTmA2Tn~of-cqo4Sdca$P^^d=31bcqXh34mu@-hC-LTO=#>ZXTp>^(G;^V z>cYm&jhEWP087`eC$!dcuaFEOe&b#X5jb`OleZJXe_#y-{X~(HBi=R$@$A!B?8<5+?5We0ma~~>L$+gi=OhF1Y>vnA$QxjMc>_hli3%yx! zMC7C;LV}U~)R5bplsZgW_1@ajtzMe?brOJ`q{+4u=J!D2e7@pYyWOZTR?r%1sDNq1 z_uhDwF(u?+;vdt(dN@T!=*^(B|FcJ~-b>_)?-5#dTeA^1;VfHzC3oz%*6naF!m4GQ zW!LQum&LzZ{n#YJ$V(H!EuM-b!Uk&(xIp9j2Iy(~G8*vODL8}!LH32-0^5J9zsDM1 zwT+2U?Y@{kkmNHpKiPilVY-=PbCs!F&(W+zvRf+ZC;aJjuVYCjzpIjYrO;6PG49fJ z$6(RCJm@2)$Q~x-v`iZ zP>?)XK7{|@cgWRpu;4*)SzK2aPs0$nyjeqaG8{u%QS05yY+qKB!3aE*Xmzw~%#`p7 z-eU<*(JxY3TI_H~D94ZPj$Vm5t>IWjI$3DSlyu5UA24hZRa(n(uPY7iO#Cg~UoK@k zg`An=Nom$)Lr;BrUECQeWi7Wz&u8x$NH)Iz-6WmV8~r)nGHZZDaEIw$X3IX)f$pR6 zIwm<>VX1%ML^3u)H&PNoH9Wvo@h>h4iExI(2DO%kmUTJ*PE4S?ED_*X`Vz{7E^iL} z-CV=F?Fg@VlQ%v??EAMj$TUaya^=$jrHYN~#ag)F*}dT?+HVX|!DqN%)B)~Jk3$C? zIV^GGK^>i~Orp4E_OdTWmW|^+h^4%?uj$T;e6yVCR@EUCoYv0-`im?+4+RyF8x0Rx z5iT+Zi#ga6M(kd#>t5zU!qSNc8gu8Th7$-1H=V?MRziN)-x9iaqP<5MNlE!Yg)T&a8O1W={J}y(_ ze*xTHc<~vs&!j!NEftdj<<+t)byVHuZjf;@abcix@xVlPq5J+A@^8=9`hjWLFK{Mg z7{8#bA@aQA`#&0+eZ$==8O9NVg42g;ReYXP-EZq{ejif zdxdCwPsnKj*8FyLCDat>+Ahz+I^U}1I+BgEt+&%Zu?hDh6cC3d41m{5L!0!rm5IrN zz8N*$v;a7P2g~LWjOm@fFbUjO1_P49iwip11(5|G3WVB!SuYXY{&<}$s}j->F5k3| zE7xd4p!oHb%-*Y3ue4&7$F|GHwJt&$j7t4eH<0xy;quupO-b5Y3IjBz@p+seEGiOu zapiCdVF4?wl+~%T51M4QJ$4h^KsZd1!q?|qD)d)pyG0JS8mu?ytc7;1?y*K3cl@~&)eH01Kj9@FUZ1p7}Rgi@a~rHOblx3_1U zMkUpThR2~2)W308Nc&EdhyamE>2`Y@D|UzWD+jmACA)K@04mE(*lMe- zm#~0ik>IR7?XcO+W78r26cerXyliAzJWEiVP3nC(__TT9gl)$*q)%%fSrRB*h}X4M zDJm&A-vR&q?c|6K*jPQ~N!3-7Yp9Y-lE>rTx?$j?Gk7IlW$Av?l;HqQ z7DQo2lmzrT3=BIM+bxXmHv4y3Np+D|o7ox`l{h17itu*r%DU9N)KO8qzUYjKlXveY zYYS}4ps+t4ze#JzzCF>-M1-x%oK8w5s-?0^=NTQ+)td7OweY}K5ZmVr1rX(=>vkJ4 zo-4}p@V*kL5qWdPTd~aMF2QFV_x1Vp(>tI{+_U+jH?mpX;xRE`?{0Sn1%3B!7fzv$ zNq6Z|>6L0Tbt>tUL^Rt}xbgwd(S`+uQl=+1SOOeTGueMfG|I~Zww2<>y z)j1h@Lz7_e;^?3(GBi?lUg+2)*2U{`IZ=udUw%ojz3RBToqzQSsQ=B0F>bqtI?%;- zj=#igEQRw#_Ro>G;E_Y-Fhv2ARuYloh5zRS&(E7&FCT9mV@bqM8I!EuO35vF8Hg}7 z85xn?^R}p#ZN#4P?NPg?$<*@9C*Nh3m5F$tz%=YnXvEKpk#Gw}&is`#cU{EdhSaOz zrtx0eh2Z?(rT_ABp#;Y}`iUAI_3Lr;cjWEE3D?DXzD3FwRS_Xk z&z-RADXC1yZf6&C?@bF#a|4n-BFB;Yw{S}fD#nCYy^!#NBBI>D?r+;p}ljkHA73qj{ zUu_jagC~;1_}cJZ;Q=z@7?0$2c8FLHj!4DM-+|d?V{J3iAIDeuYTNjhQ3PCLJ+7aQ zi~^mqU+Gqyv+~v>Z3vaeKlR>ywH{Y9a@x~O`l57xHm-HMmITVyyGEyLa2~ym(DK<9 zr5|ca`^Or<;YB^hUnMRp*z2-m_VU{AMM$up*!~B4s+W`Y!94r3(&7#SXV?^LMuov< zd297s57iq|yQA}~w8|C%h1F2C2_)jl)yC)sk(A8v=*gKko^Jn3DxCG_&fngKg4?0{ z#~#j%K_oWf*o^{jILCUpu2GM|gls$qR(Bgq4ZG$C+zu#qjO~(xQ@*D+FF*0$+vz`tR z2jSYm1+$59uh*;uK58|Dzp`mPN?hZ;SLvc%84k2G-@}mianiP=O3r>;fb0FEsd=O5@L-OO~H*0xKp_KH?m{Kh(>orrhs4ooRjj5 z1I?;g?=qSFIr%hq-R_lcU58%vm}MkD?_v0UbKmtKRCkFTEq^#R&T5Ym;imt=qwu&^ zwDXIf*k>fl^o_6_0wwnUaE+h4uj<25$|mqlK-SM54s5O=7$9LCS^KE<8n6R@3!Doz z-oT8t^j0ZXE%kEKnjG8wNw1;VP$^9I<{u^HoTuC5rTDu9Vbu(4iaZ*}1Dy*7=$-r> zi5gggr&}+IZ=8Vzv!ifgcrTxQc|-m#Jj3heL(ejIe&Kt=(#F2i)E14INM?gR>w!=9 zb-i#Jf!pt_p{T9v2z%h2b;4Kw#F*c&trOm$`46}ye^LESQ}Td2>Y=0_=yo+BJJw&0 zh^N`wOZ9;zW&Nb)EnQhiB1>_u0ER^Ii2r;QmByXytP$Mj9 z2hbIKcO(wG_(z;@S7&-oEGo`QwPpx+)o$ypgSkYZ=y1EN0hw?UZSVUJBeYq^GxLKH z!7;*Woa`GvSmb{g;btf8ECj^-A4W(eeu@gB_zxrO^Or5g1#A3=5sC(_;Dd!EVSG|p z6OK$2uh=RiAzPx97*zWsTDW^;a2)scl{ed`Gnm%`_2_@_@hdRutKv(nzoXoK%9L;< z7e-b7Aqx@1A3jhGQ|DSY91<1?|G#K>)^tbo8!*t2;-omF3(EZ>IKqgl0KozOge*O3*h#vL zIk&gfZ=KDaBOsiI!(sIQAlVcMo5ExXd`B72Z>5Z{z*)b!Ou4@tYVX;qJuM;xbV{kH zLY!1@@>6U!LhB1)tvc{6h+0HVwEYR<*OkRV#A?+j7OK1qhS7IlA!vUVR_yYcii69v zzcj8RB?^~i z4H?_}?}JjsDX-Q?%D9d#xll9_VKG5>Rhn(|J)2I98Bpv-i__PeS@tT5?{yQ3$YBj{kI`S~6n6^@MoQs_h=%g({oRufq)8aCULsnlA?zc^|IC^n?|(U{>>Sw zIpIJz+l!HgO)xYj7bgWTb?Ade|4Gs12<5gE#2FJ*OTVjo)P5strJ-~aF;&e^2kcNx z+tMCRusS7!WHNBhxWH83w3U@zuP|lJgzbD3G?CiN+GyfR4^5vEudjZkQN~ZwAcDi8 z43AYQYMjq2@)+j0fYYP+yXWsl=*bvUETa6ffs=0$Rd68wov+@jPtsfpT@@hp_#nZL-l;7gN&c}? zp9-J6*UAooCkX%tF#4{HM8k#=A+UEI=)ucB*LM~1-#`n8-Y6bgv!H!NYDb`## zfJExZoF@3mEdc?bwd`MBb6qhLf zGbLZB+yC7ig=*0u!CvlYvEY*!3Wbpg*>XK&Y`S=K+BL%Gtv5i~e&yNsHf5bG&;c1{ zWDpIPFBamrGxk>qN`L)MKWo(w_JUi;*T{&M-+TJvLkDk%3(+GSq1+!LG}K_4}1WBNU_g99q+$(5uubJNr^Ow({PKP8G$Ycx3b;< zTnYjXxD}$u)9;|Q z$4CXQ{ZG)u|4)K4pdlu7f0sx6b124UQ)iG^?S}in6aeQM6_Vf&+=Xki^4Iq2ZT3xU ztx7qQd9PsYl*Wka;6N(uI#G|Cq1yAGdq0P^w@Sr#!sD%Wzc)Spw7t+1!DE|Sy*r%$ z@=C>C!lrAoA%9Td(z_~Nd`lI?X7parWewC8Qrlo3ypHA4HwyUbG()v+4l(#PRYxJGd&%0E;*1)7D@e2 zW}UOC621n^U*$k#2E)!LYWa{Om;a)lwtY1BdC>C`1-JWd3qKqhox!&Z&=MEvTs$;x zlsh;O4E_;ivn+TE@ekwr&~i6VR^}l~@VBm8e|Y+B;h(8lbtm)C4vNuZ__jww$6p&m z@JP}*^IPcrr{^u%KMSO-pI_B1&Pin@jHJ<@s$)dIwc@nb4m%F=%Lx$5XGpDk;zrB`LIl=EJ3 z(Z@MyDDKOn)&5rb2_PVP30uMzY#@ygZhE)baGPl)Mi78P^SVv;gk15Fj^QSwg$slK zxS;gW{kt^wdoO1;2F1M%c(BZpm>RC4L*`@mqJ@IFS;@3gomRaFUN-~ z6&lxK3^GR1NW+~~i}5+>qSYXNRDj+zW0cdT;pB?Mw5nIP)Qk*-8@< zfpvcqed}UkqR)ty)3Y7ha%A)eLg;3C+jf?7&(XM^9|;(_pTAlSA&Z&V+b>^+-wiDJ zH;hBtJ4D|I(t_bE;Id={OIMpoI*K@LljXUo=;}(bx0OHpzM@{;bzM_LwA0jrLQqm& zwOv(6Ufv|a1J=Nh`w%Z~sGQgiU37ch$S=0A_RYRW_lRd1QWzjH4;P$QKR_)|V0r zq34^Rm0YsO1Y#B|L~Sho@x$?9G1+zWzJxsHzFQHOZxt42&vp%8SdrphoI;CBf#UAP3#GWb4(>7(cZcFu zthif|qQ%|a-Q9+7dOy$ozW>I*@$G(FbIeSV>&%(tOs-_Dm1aD0a+w30r;_i>4^E~H zQSaL)T|Mk2SvtXqtsP!U(dv>bVo}6gYGRo`+O4myq1BJ+~$LYNDC&Y^^ zIxDrcv!(AQ78>>4S;AIt`l8FcHTvw5PX`Xgem)~% z9p9ajtPv@L*pg@@%>6I@^44F)+Zuaj2Re#5#SZq6+19b|^^`RDi4@%hO&&x-S&Kj4 zJU?AFv{qgTK3Y!}9#g%}gR;h1?bYrZ@Z3Hy*|t}n_})BjS}x)SGqlHPM+@zD(sQ5P zUEnrx%Xe0KlWL9YXZjzZ|2j8n*8Ve}5xh9TUY=u5jOd<=c)OdYEWZ>P+{@p%C?{(W z?C6E+Wjpw(SJ$-vb^)et#D&vG&iA3s!Jpi)yzL03ab~pZz_m0|*^PI;9AjlHtz)M( zd7@Bw?(Xwn>iiWr^MW{h;?nkTdaxr2+^4TMG<5B->EeV{3FnL-bgKJX0guW1`SAsRk#sgdL{k0^nmkI-mC_zd?CV6$b32`SigC?u zmj2C~$8vxLV#u)Mig*8G5Vmf;uOWQ}dAU=&Rc3C*in|Kz3tb@O!^$m{A^AKo&G!EROQ=Pk*rfO5}NO6#%`!jias9Ij;vpq(k=ccg2@}i#nfHFH) zmlR;9nT_h(T21WZDOq@7uj?ZffX7DSclU7#dJH`*)zrD6mU+Ar4i5&?a;66={u!ZE z(yA~K_ICjWEPmtl)pu%*{$SBTp6B*qC7mjO(PCZ`D@wq-~!Rzii!v?iW6`z zuP+3Uft)M+*0{E*LMcjW`X1I|*(ghj%Fd~dX$={Xg2En_}zt%gc4WaIaHr4yq`f{J3??$eLyA#d?9|I+?=G%$Wf zRvX>oTXXs8+6j~mPi&xcN|C#e&4vnvw^RxJFfkF%=0yT7&8mGo=`12ILM>!)`2D_TWCyL`|?V}P>vYw4pGvjj==la~yYy2(8^tQ>&Rc;P(S!(iA159JEYf`e76RgD+Q)JAWNFw~2 zkG(2e`9-zedr~Wy<{B&&(jlIBLzomNAmLLv9}GV{;GK2yzAa*ZOY2#Oynu){2(tN& zSs+V^Bp6HD{hi@`$RsZNe3(ZR!ATX!v;K|d#kssb0+{;>v`FIro>a;zycG@~{b9pV zOPE2D>`1%h)HdEz<0|L00DMElzo*f>4Mhy^Ij00i>pJS)J1iVEzfuN{I7_I9qxH&F z+$FLLkC{%ZT&+%7m|?>BcEtsUmh!mB$d*j)sBRvhs7ZdKf8UC%(Ou4I9&mvx~H9B!Di z`^||A{yhOEGl9j8!LEViZ4(;E5R=+xU@AI3xaRAAiA6$5*dlz#2;!g2gfi=2*rW~o z9*z~NfB4T^wSQ((%<{(WU8Ep7A(U~2oHW1qlzBGXB&qdFXd2}a=zNy?rt7_oE1n~0 zSv%B@Mbxt#kZTYd%khhFmPAu`D`A}9nZ>;*gfRr)QBvK(zo`PtSEOoj>&VZ>2InOqW2B1fSyI8`q3MC>M1nC!(=7|b4Z5R;% zQq6v)`D%shNpv;{B1d*XFEGXXnKq%o2VS8?hI2=mdGbJBqV)A%K94jdE9}}7!&cKv zFDW|THNMlQl%>I^TZ>zIpeItue8yT0Q%!iul%5ZYH-H@*a#{N==H4LQVud;`Ghd*t+O1nNC%%g1C<4hY_FYFHv%GRGa ztdHCc4imDknKIFnaTOTZyuYWPwI+8gPNyMSrqWxc=$iWd^wjb(L>3$umc~}&6fSFJ z8a!`$IdZ*RW%e~+7lc({Q5?);JEkxF}_W7~S-9h4m zIwDKYd-%lQNl?r#M%rVuiy!GNrlEha!4bHgvb@@Kk!ey&!$ zX~cJY{WtN$r2~2Zur{<&S1bB;FLcy#IUMhm8qPQT?xs37PW>Fa#v6_KU^s<-qTYU3 znec*j7&;sBKkuYoHJnp@Z6g5UZxa}TH4sxswYJ?~8Z)-8YUznv8_4~_$>naBX`?)9 z9lCTPa=T(yGsj_UG0iod`0iJ3Vb{juO<+f4JED>L z)XUPYFrLq;O~>VkTpi2Z6<==Wi!W}7S6>6?A!gg|-X7u1)I&r!ymFbI2hW1!=iP}Y z{Fy_b^*wUc4oKghW)khr$-Lb)m)E&{YwbGA$1-~8fwb(<>{wseFMXeUCQhn1l$PAz z7wGJHj=$1h)N~&(Oe{Y>+}52?K%|n~>%4~K`6#747$2sZFJS8)1a7>NLdt#Q^zw#o z0iW%toP69-u3WoQOdUG_t6x=@PtLL0uZ)I@F1AlQymQKsN45;0hXxg-d#jr#U! zuUbbt@lP*J6lS-xPlW67>|(Ze_=}{}JnPuy(kyJYcsUn1&8@o?@aX8rFH9<{3isKo z?it*@+<*L&m+XZ56| zCS@?Sx8zm!NMSKRlX{!m-gjS9bZ%DSSnW29-_VK;XW5v# z4$Cc;Or9KO>>!d>$AgFrQMyQ=+yxLDYy zn>qk<_NWZ~B{9-+7cNYMKe-$**==DQg>=z={}s%iDDsNSn=P*9{IbbMBJ$T4|H;uf%Cn?4a-9q*BgY@g>8)t6z4w5p7(oaR6nOUd{kb=-E&A6ji4-o{W>-wK zK~)_3_9=%6&1EcTnyZb?o5ok~L0Vuc@>A9#=*bNp%B?be-;%WnNp3mAJa$pPVM?-^>nT4`wZw*>|kY9Yk z!d$M3Zu|b`6Mk|)b{vz~h5_lvp=i&5+M&F5+bS33l#_=tFY}pNVCr#<*noxS&@i) zqI*SCVLf?1aap6Baizjiyf^i)KmbNm+zH9HTz4v3NzZG0qh*ROG0rQ*khLYS)Rb#u zx~OKWa?}=TMZ?^qGcrj6iy~2=U`)KV)h@2OkW{JK@l?TZISBUfo975aAbV7qnRw6$gPR^@^RBvE=X&*}j6TcM_E+T9cngN0_! z)E!Zj_Qze2=X%m4-}U=-bN+EPzq~h1)b?%SjrS@|);t!Cj4fxOuORW|yqITAKun^9 z^LzBjZi8LIK;`2HP<_|L;}ZL6I-5#nkBuJ9Wl7$V0BN8njATXxq1`F0CfpNn5YzZtedhIKp^G2uIFm^-{t=?-={D0htj93*hKGTItAyZcW=BbDR^6-PAC2CR#gS~Jt!(Rc8K|T5QA^MT=lk#FuzphP1q-l z%_c6PeQ#uow`$|7ba#Mnv-fchx@X=P%J3|bZ%BtHwn6OXAJ<1Bjas?NK&Pp>7GHqY zbwGK~He7^w@<4H!&s*K2k0;}-pZNYXC*kVNy?{$|=~b8a)j(OT?6hv0Ck_#?(=JVOViJx5S#=FD~1W=kmETuv1%&7Gpx6il$!(<7@ zA1R^DbESb^UnpBM)9UF@GBmzr>V=#xVU9UJEQFbMRu~Cfc#?nsF8bKFY|6b#o-_@gN$>i3zW3^~yukau%OANE^lZOV z+2XE@wRlZ)x@Z@Ng$rABwY`oQZaME_3}JACmI2g73X``Aq9&8<+mJhKAaz6(*Hky> z!6Zx?JU@;HP&6KHl-HIvt|v}k5>H?cU%(}{HL9irAL=DU6Yq|Gb3h9KIy!OlA+2go zUF19YYQik|+zlY%1$VgW&b}m72bLozG3_QNZc3yT?+?%Eg4*A3>u$c@^7GBkr$5hMZrTH1ZlgA0}h{H5S5EvxuF5#-s^ODw3k4zUsqFJRi{XL$;wC;uvWX`<3jLsGvp-ndJhlj)|?w}EFcAu z0~;k(GzK1E@s8Fx?ENDV+=g+Clsk!g1*aZTxwDK_kS@RK9!dk-U>o!C)@35_l}wsY z;$)_)+Cx)-%g%Oh?Uv@2P#HW=8W^Fuf*}~WToR?Sm`^tjFo)S{XfXGt+yw#++)DKemZV80F&q8vxWH_65 z*O~BODOr3)njIK<+h-yro{+-l3$RvZhB_r?;b*CrvCgm33Pn=okTM=JI-tfl%;hB# zrxdi089aN>HatDZmwChRs!fzau*PGxyMRyxl^Xb_en8J34uSuSwObE{yy;#G*k{cQ z`~#PHPZ$6_vOvl&^_LpYqF9h?Wa`#f{Iza8AB(6d7)JAPQ3T{#!U#0tyy2U0b|j(( z{*u9dpv`u;s~>k_0TVOTg0Cu;SU^WItEfH2T)x|6K_3FoTi}gkpvTl+-gI-x7P8>9 zE!{yBktG}ag7LO_vKCl|E91wTDy>JTlu$^L*L+*f?mYBhB!-lDwr$=f=@ znx?5LQp+Ba2A%o{KkhnA0qzhbv`i9Pgl9`v5kMafNi${+*v@YsQ1P=aL{0lGLGn3* z%|10Dh5z-v{F$X9<#;_EXdFatn}ufRw&Ch+VZB%vsIHA{j?%&Nni`n+`I*%>1kr}~ z7_mbkfV@@1h21onqMIGl4O7v7XY|SC9n4w-_Q&7Rjpw^vco#|9IG?t!<4rKo3NFMp zDaH+1uRGTw-D(Mu0spnnPPyBbtqC5yuYOexUtEad`{FgfCL0P1Yr$1H;T}VobRNp17bpaPu-_}@Zdff z!VIG`Rt3W5OEbv|op1Lgq>ko!_lsEM7_8elH9e_10p?guzqb*)95TzaKLP3@qll|v zBjUQAQ(Bk4=RZ9>Tn^j8VH;e_WgG~s-$;9$3H`!|+}-GT2P)&3$Wn&8ps?xQ zk54HC<)^D>qN zKQ(j_mvhTOw$M(GAcL=-p>NGPy>~jsEkV}jiK7yFup4o?Y?zJvly(GUDte>p{?}H|F3vjGdK*m#Bbdk%Q=qgJ0Qp zPx_v*+cT8;8EfNRPYqfrUs;>kc16Np1$?1G>b6oy7$s$mi%Q;%1MKYgb)J;G!+1%4 zDy*oG{VdSk`=#-G!n(Ge%FoC<{g~KV&8f4_)k7h;>5_Er^?VK^Y?dbi9j@A%8&K#i z0tb?;bM7K@9(9Gm<0~j9!D>Ly*Bab3!8xNvG|WzZUU6q8MxQ31MOYI_c%TS6##mW9 z&L6|Yd<8X}5T22I{Pw#FtlmRt>HW)5nE_@)F;R}eVJfX$2HmYw(Yeo=!*8iZ+m(@u$4K|L*j0ZPt=!q3&Lz zNQ>L}5<&D+^Y)bjsa`Xm43_^UpW1+>I{~{x+=~%`x-q?qJY?p8+UM#Jno~QUDp8 zezxV~ev%~xV>`~2gg4$KH0I{n$&+ZeFzwJIsmS#)vU)~$^K$CY`IIKOYvX+iR~Avg zYR3L^Z?xP>V=Y||gU9)_r{r4dZO~)@-GXrGSrJYGE`Sdbg(7^&N}Vyn!RMnD-sLde z%kED+=qzgdY|sUtfU$J3)4b4u!Izq)x$(^k%?JK0Yc=fw?8)D5?T;EXjpyB~*8Ikv zWQNPr8zv5$eQrf0Xn|YB!u6opa*`lA_U%|)<`*U?Bwp*PgP#UQKewpDw+c&Upq7DD zktjH0&-M^1>~N$n3*m4llWlK-ZLiTRpe>$}ug`(ZfB=Q)^))q=}i zp*Z6kiC9^(+Sji<^$(<}uS$;5gyq}G6TJUiL*doJ?iU!m>}As*1Vm@|bBkFGefndk z?%ZwS2!if$noTA2#~C6mQg@xL8-+BKXxD?erx@wce#4V;?hjDQgZD17P@N8*Szv1YEZ6(;ZcnXP~yKAV3?u?{C9GprvN;;N-r66Vt z+vQ@iGN$SI(*;2zH{tYo5>GeV0F{>RwPO^bLcu`F85J9$oO|gtGThm4?W(W2OHVCB zX^4D2SIJ@Yw!Soz-Hqa`TpbO%GeO06_PM5t=x>zTzY%#=k=(g%;Ei&1WBG?*qzXL# zzWBT~8ReM@yC-blALi79Q=!i*IQ+(B@PL*>G3-YqeYH1Oz_V|L8!B3Z7ihRN3;6&X z3WdN<)CWF?p0stl+5XCE)WRaUt&y3t@YVQ4GZ6~qdr7+|-gx;EJ36s>$au87>^5bb zowrB6K?%Koyoat#B=_lwU+U|qO24I~U0NCEKM?Jfa;G8MhzdgTw|QvmsT|yu0Tj8hUElpQiHP(GIcKreR}K#zwG-#GpB-{&(zgv~ zDG-~#tA9v`7e05v zw-A<2&BU%}TXA=A_f>O41g3)?zfX5=YT~$=8_QO_fu2L)P6JQ@3Kqqz%R?OpW$NwbtUXld z>zkPMH2_BzpaGSqM5!-9e?~p{P*l~4JF?wS8V2h@P4tl$HF7gDx_}jJOJs?*$3pX= z!RKxl^l+!xd;o=jfB|fe#isq~tKQW`tOgSZld)LCdravAIO+n7KVRT;b*aoVz2t<8 z9zyN0N>d|l$#cJ1jt}lfk|&zF(60W9R#@lm$QRNU?BQv1$Xtc8I=M0@PF~CQiBihJ zf+?fZ+-=?HTF>)tmXGk4MDYsrE=b?R=`S{$cYc>yYU;c1VjA|DoBnf8xApN17Ep|D zy=m&LW$QpGs-2Jx7ZxHB0jG%&m{tAgUiK7mHMHb9^TP++mTsmM3%Pta$a_$vf4jrm zg-v%p-Px;|4Ghak!<^i-oc<(pJABi_OuyUzS{xmEL{TKCN!ysvIU&ieHSWcM`H^B& zZlm5<8>YkY&Mxeu`>0$#SzJIti*M79#j&IV{+f;OBUn1%pf_M0%KZ0r_(k0Who*gb z+Cfz~Z>eG9_??Ld0sB3A`2L|Vh=jB1`nlf|w@^}b@}|FbX7kNjW(Z>Wso(LTSEX+X z`}T#^S`y57+)3x-~NMc7qm?^C_Q7jAmpQ|KYwpk{nbwmXqJ7;uDARK$qw(vvC)qbfI_Go`i3(43eDhi4ZiP|Uk5YiJY zg-a=rYo@}FpatEholGbF)?w-{mgX@9-PT0 z$|9h0%WPU+8;+xvAI>CTp&sc!7~`#jeW<$0I&`J?p&-2*Y+E&^UmW7zE%94*2pwHC z--H@lhQIGKQYw6&j#z{ZSPU*T)*$q{QhCEQK|suk_X@ka;=3*#jvRNK$hvW%#F}r` z8##`HiBSl|7$2j#rQdpEV zNe=(24B8d#3vvzhzO_Dmrg{0W6O$W};i%V@L~q}OT><4X2WU9(ct)L$@w{s9LlY>@ zX&=A^3SmNp>XDH$;&K^2Kv32A7r6RzB6;3QnElvu>b7VHI6GuM%>_U)PHEs;zBf}v z7&pDcdMcnkuvSOp|?31|&e;rF3n z+OEG~TDx_u{r?A&<{<@8aLB=S`g8SUy{gh~@{C@-yFr!Hbh_c6if<1Xet__1Mrz_<_Mz# z&<7KNRw`&C5WL0wmh-OSqnY`0V!{qCKxs9_;c2xtrlUUV5z!JM9L@h(;q3YmzVhF;Slm_TizcK!yc z!4Uv<{8yaAScBXw91!Ll<&*gtaa-?$68EF&W{-q1fsJwv1pi$u`ZB51T+@&sxgHr% z80&0O{yb_oI4CE?8ZMOgw7@utQNO~9y56L zzWMioqR|1Ju`R7$>)vv&a01l5041h5{M={H(s&*0pO(J_-1nkd#_WcHwWoQe zV2RB$KEQ&@RYZL19|MG;w!2VZK2*}8n$1^*j^bM$Nq5T;VWd+_Kx&G&OB->UQ=K0^ znoeYcpoo1iv?n9MfZk#rpa=gL6clRPcU|>j#btoUaGwPj|Ki>G$y$QTw&SU)L=(8T z{|1M@j-iMDek^RoO~NxArpLmLx@`j3L6+)~$8+XZ-}u!GV}4rwA6sBV^m!axeA&qQ zcRAXl(1AF_kPf3C8?McSbl(4cyf0-(64F~c*vzg?T)ik%U?gq%LWK^!;S)uQplt_T z5S`9{6N+{)Agz7K%3*y%joztCGu1)_=Fa;zCyrfkKJ7z6;D5b}2`eH+L4uxPuq)h= z1S2duO`e?j3R%WqSGZf~pTGawPY6p%Xb9(LbfivH$pHv&w#_LWq3u+fMHme!cmB5+ z=toQtaQLf1Qidw4#*oq6Bhm*7ALn8ngrH5`7bYS<|8?CzmXSySkGe*Z(eO%tMTE)MN*lG6(MS!$ zbdU>Ae{?~=sh%iSjRTzD3{90bB zXdV9<$%kff)bb-Yl>dO#|J!D+RG27%GpflPC$)AKv_F4*QH2|0U%Fs(hR77{{SChV z=}}DZl`MUNI*|tv(2G6%HOq~)P)v&@3e5huG1j0-6#LqAJ~=O7cRcYNJN{6=QvGje z|8J@lNeWy#Ubp`02b1*hgje8VWKqm;h<|(b-_Y`3XWSvd%=FPbJdiTxzXG7FjZ9hm z7eRV+!@z$=0@P?s%nm`aM-K>X6?|paL3>6d>d*VvegS*8mFmDNI^Arc5HTH$*%l$L|FG&KUporte#@x9@iw2;W@R5tiEj z7MUFcg?$**qv@wF$a+ZrTURJ3UmSRZusULK&;0+SmxIH63%xUl_n(RGpGQEYi{@^F z-^Ivy4Ukv;Hwyms96gf$YL){+=|v{l|EI4&C7ofwim#LA-u`Q#1Enw=SbJ}b@4x1X zb`&Cw0Ud=1vey5TuL(07Mwr>@A4bxD+Fk|T9DqtgzpMYZnts~QToeSn|Ij1;HH-r| zv-pjz^>3YpnW4F2UXwzJ692X=E({THSF0cTS9a;2u?eL(aR7e;(f^rq|M}4?3_t_C zG%LID|LqYmuc5iNM1%i#5C}?uUjc$l>W1O}w#c7AXfB5wvD1GIgvoj<3-AZ}K9 zz3m68@@bfiD5jxGv^4zOM|iCFfoHDV*x&3n!fv5`i~=7ar0+~|!G5&jh}08*^_=W9 zuM6;RwI@7^SN0WqeiFR*l6IS2#0rMk_ERR%YWyWYLEGlpL>w0zww?k^>f9B8#1UoY zd$iC|e#d3$L}*FWSxSXI9~Z3?8ZbuzAj0-5sV~@3j8{_*Kn%yKefn0TJW1@7{#l2j z0l(BO#n~x4FpJ0uf~qFN^pCFILd8-#Az|6>4&BbAP2?ygwQu2}mu=BNuFi16Wh$Y% zF`Qn6f!E|~t4P*b#Ioieue=nYq#Q2_%v9Gg7oxTuIEw*)%&|~ms6Z0*b6OPjVdsZ2K&2I#*7}qnr52aEY$hsMZ)?% zyNFP)dR1;YS{C3QRMUc${t1bf1-_f5Ga*Yi;>I*q@7hBmmf7j>iA|j%sFPn~+iUQn zrY9k38Fp;H9wJYsheEG$W{pdqUZjo$A5U4modH@L{g#dP1ek_G*=jT`>O+XLxq>#*cUD5nb%I&{Er*~)PN zz=&nxu?lJn=@;0RVS2xDl_NcyE_70}$Y%lWcdvv$UKi~keVMK*{uub}?btlF|A>vf z>33QYjdwMz`t|tRsxyNon|)MJw2#;sG(^E1W7A^7e*IfI-qqe>2Nk%+{b=o0@E5L2 zmJW*fy{**VVHgeSNF|(ztS84pmj(@jF9leZ2#T-4k)`9-7h8;E)k6P3WQTbNRqm<0 zYV$E)tTh_$GJlIJRQY!(S4t>G5KH`({kmJKGO1ksoFA$%zjtfs_2t}F3rDszW0tcD z-RIXc5$p${=38{wMsa_Cf3^as0GB{#lI0Z!s$J8@Uma<^hHFs}q6N|~m4m>XgjYb| z?+gd$53sZ#`>!v76$$UkO=oxQGrSpU;G?6Y$5@#=XTq0_{_Gmwh1N16SwkYG-*Ikc z{fQ8}Mn~cFB?=5CxP@N3G-LpaAS&z!9pbp)vC%b3u+|=wV@z@*1ZB*olJa@rju7@9 ze=(+yT+2})(UQn6`S_}Ah~RgCPPj9ZfOE~AtKI^d)k@xPuSwEYk&vuWquj3CMc?@$RIiQ0pL7?VrA+NtHD4D3QRz zck3ta)Va{O!A4A1?5F*2%sbKGdLsPhA(U7lGyuhqcYB`@c25n`fiv)z1C8cAqa#;j<3QA$N#)15O?zEj z-l4u8&yjO?zQAqM=ED*6v?6p_h~}Zq7Dh4_0T#Q|O)FFF21~IKS6_AtGeU6)Rdpw+ zvMBz>W!xXD^TJ&PIJ;`U6HZC;_jPorL?;mq`6$^aa?N}`0XmEX8R%EH>tY`Nom%>$jRU6Q%Y8v$FZtc zF<*<=w?~mGbNK8Y!TAX>?|s8as&P!ByTkrF3012<|Hge7c$txyM&|mdNwQ9~(;FQ} zs>gX<@RjK63Y2Fg@|dKa>qsupL)K7Xy8mV`a&g0D#u_r;CU)(hk^ez#$l5}~JF4x? znYtbcx4yTC5SnD9c-h2S!Ragn1Yb}IS2Wf6vmtoBzNUFfcbq+%3R>@Ig6!2leb-O% z%tbPHwX+*Gj~+XOf$|D=r{031u3D(|72)rG0fsbLvS^^hOqiWj^3lvbo8VA}6;POn z;^Iq#E2(}Q-gI*_&F(KAmdZFRB@s43i6LkV6UIgOEc}~BxxT7!8sGhuzIgX?8PDTp@hg^}8;rio4~D&$G6^%R09!&4rMICg+1Go|lw4BCy0( zL|U4m?IiQ}+I-9v!bzndhWauzNvb&R_^Abm63ExlN5wbfNB%aK zSM65Ze{{XQ2qxbYqLk;);z24Fl-KBH(BXGZG=E0DNVaylw)vACZ2F#Z15ejQq8 zR%U)E`b>a)MI;Xn|9ef>+zJrgXSaM!eag8?ZHMmgd|3C5*}+|dPbFzGBDs`0`*;XB zHkl{VK8I_gtTsNSsEVuXKTaBd3Ec>P`zU?7I7Y8=Z!C*I7k|FOSmJJXDE3MAW2A$U zGU6!qWMc!^(sdJsHWMot+*ccX(mH~%YQ{*Pm@rbUT4%9T6(T+uVf>We-*W zlWFp-Z){dcTy$mLoiwd*Hi!?e=1rZ`rLYu$Dn)w3lU+X`Ae^SZi?8YfnGc5>{glAw z{1}G4u?yQ%=x(Y+Df5c5Y8(NAtM_OW{;(s(Tl26O)kY&^MgU_AV@#k|PZkJp-$X-1 zBRysdOY$tQ$v^CmCL!7sR3A3E?qk+-l*X+`B%w56?0w04c?|J50Z~~lGlVK~pFFc) z`^@{7DLm+bJfC$87~D}GS|ph52QHI96E#%M{FT~`Cm^cixF6im*FKk>Z> zqbSPj38TCjKHij@7r%GE=4}`R7CYanm44YzeKFD+vPDbi zNG2n7);-BcHA9&8R4D!YNUEBnFL;Y@&Cr;Ry5=;;80AtQP~c&5?Gx+^M*_FY7^(^g zy7-i7-b@v3CLFXztv>q;KPYOyTqVZs0Dc1tVBYfqkGi|Ea~hqPX~us zCbbtwg$(ZSUWL@{4Xq6Y2!lzuRgQYTlZ?Oocm3DEK-KN(o3P=WtRm&xXZ?=%_H?pw zNJ=o$*sPi5Qh+IBRBsk@_OMyYa66WlU|nBDe&V6!s7RvpaVIhE$oSNuPqE_>ykNi6 zT}bfqA(!lK9BhrKZajF4lCtI+4?AYOen75cnVQoeb2khd^XE)X9f>zX<(4;Bo7B_3 zb>^zwEejc89-}leq+QMO2HyqqbHj%Jwbhr{wut zg~Et1C!KsUmqg9E$7CQn&pjfY^B1NBD&r;_&ZK=5T%64 zXRUsGW~DhNlYYJ;V9)McmJ|`CxOpH)4|E4Q=d7kX&g(k*c(U!prBp54|K&&S!*@UIOo5 zzPx5coFned^x;R?IByA>B5$7ssk-U@^j6s6jYkkRGgT~Dw$6Bc*-(zV0ckJKYHqG$ z37oo@aw)2KD(w&b8Y+lr>bxb_5k{OsZbKI%t0qj;y`cwR1l+kEIlSdjKJ__AjO@h} zFxw!QVcjBBq?sh1n-VUCD-enoBi~r^J)b5Ewr8QqXgGS$RO4TrMba{g;Tyb@QgwZg zPhK+5IWKgBuO52wDR(Q8hJ5w6{#}Nmb1@EciJB*=?uSqCmCCSu;tj^BNLCY(ad)s` zCOTE;u7&aO&K~erc|V1c>m-6YKJ3oWvyP-}T>hRx+$_CYK0V=^gPZ+DSVGd+=Xj4E9#G!#@Yjci$BvNW*Y6Z@ zV3aa4U5xVV->p|w9S7;a7@C#i?aOtZ)t*t;zjzgCW7 zjKG5Y;%SOfHQrO5RVyiVh0Y91?~?_NA~Kr1H<=e;Sv-Ajl0K7eO_jBLW0ci7-%764 zfa!&wk&zP6+LI%O=o6!f%r`K-dD%{XoS-FB!@Kp$$3pWgYIdxcGTAVz1j5l zA*TUq{#^+qHwZNSx^c4mIr&sz}%Bxz_vuv=fP~f}qyPGQ!^NBJ1 z7J{b(_Pm3gm%~rhJsbR_xYg3xTTId{eBOROvOS)*%TS3q4^_AC0_Bai?Uo%xHJEf8aj#7G`Jr7SGqT*@F?jAj?!ZWMiQ-3i0&iIiF=lBk_@Y45b1(aZM&XQ7@?yct3QUH zoWJ$``(fJDpe}O5T6T*YSBY09#UruEC7suUM_1~uCJooi#xO-}-SfLGvoQ4nZGfjdK!x&FDo6U&d&-x6}3URjNUgesSuUl4PSQPjRP+6Bl42jS3DKk+8PKM zg=>L5sUIdTO3$Yf&I`$&SSbL&Z1PE5h#gP+Gn+C^3iB^y@*$^%@|rk85Yrv2gmyU@*vgq`{V+pT6!8Y+@mHC2#wt!0a+YhSnf zPF`Vul!}idM$KFmD3-PHkiWpK!R3H1f>6xeRv%7Kn8q@eI->z%&0LFFhz(6>Q}O$1 zb0!mP_CfXnslzbO5m>C|HI}Q5f6`%dl>pI5=NsYy-BlpnPbzFNkgJA+=@qGiejm1! zfI+^WAtNGebSes=CW?_oS()-KLM*mDXBjBMFcA)+>bLUq&klIZL6xFM@}5Q^pQ97% zycaEyrFRNV9RL!{B+fe4lq3g7+d}meCoN&^XNJ%@TKn{8r#7A_s+AJcg=Hs6i~>mS zzDQmZInS%M+a}xTwoDXFUhcclci@z)7G| zeKNTjwJ=*_8VMl#5k0fNHm%ID>s4y7VL@b|q0hlBah>}IR`j(#^GwyaacXUI0tO%I z4Yt6rAW5nN8nfG?*-X-|eMX5001pgH_$2nyAhQ@AM-p8giU@pCC<4rb|EL$|1@`n$ z?)0S2M@DX)3452UWSDPX_VDz3t%ZM-EFlRpxt{p^8TCpbvlyMY9!sBx?fATl@^+@; zwwQqIEsNAoLV^Wnp3Ju>Xl+loX2}hSJnQ_rpB4h=2d^m3GSiArBW)f&>96L|Pm{Mx z(XWZyXEt~iCxw&dXxTU(KgRb6wkt4GGitts{pN_FB^2a4{iCQ_e4F*twO2xICM5aU z>&>d1JVdFPE4?GCuF6#NJ=@R zet6JEPs_yN+s63&Qp555`VV{DLiXEOkzw~W7BA%M2{w+yv)hM%>YX=5HE~Lw$~1Vt za#$FNw3ZpII`#c95|dV)Mr2Q#Lk#PdJ7+2?;%q>MEl3+Z`kbb>OV-YZ?v)kMu|;#e zW%RTI2YM(z8CY1acChej~Fcdqwr4Ca@E#d3B1ThZnB=ajY6_hwh@4HJaQ`r^otjLq^I(RgT!an|zhzR%ij_;_4OVjnDmPdNItzm8`+X5l&c#<_b1GDn z>8KJK3^YT3U8zMyicgWMU47WDCnK97!u&JJXn+|s-A~DCMe}^-3_`QQ^WV}`e72qp zJL}Rbw=V^}Gk&~b&k3K-h@wO{RyZSUDAUg(H?Up#c2@s?y8Ft%HlO9~5G-i%(qh4( zK#{gMBv@&2m*Q3&iaUe?EmEXFA+)%=ySrPVNO6k06D;tgzjMCloWJ48t9kVNf|CJ6
FO4AKPNK1{ug+&*MC06BbBIG-)XiTc3~#vZv4HFEH>#ALQ_C#yuPzn zQZ0L7@RrA2u$3x;hx$hsy^wcMa;T#nkqT%@>!V9%`2Sz0SW`q;fvi{@{P}lSyJ7=P z1l~PEBxTsE&Dr}u5+b9GCjd4-^M7GRhPIw--BvBjz_A{eeVhGPAzd zDP*HAy&FbyvT<4k_uy@GZt`!v>9mp|gHBhAnh=6GNjesdzvW8d2gQT{wXk&zfs2Qs zESuBk!mRBM<3S`<`Y&AEN8vCVHz@?02yWbW^!v7D4-dgp0F6K%$i1z$M2-7lAE$ z!h5S`|7HF^DOK9QaLSA;-J+xiNgOQ|6fz$Q;3FT>&2f*G+imw&0^iu`oId{-2euR| zoB9D%nc>jA))ZZ{`&!55BlgdzFn_ze?2|0j9UqYo*B*|xdzkP>5=8(t8+>#ZWMS@U z*zTC6pi)R51$QEf1U(|e+nuUi^}>c-&C0P65#Vxfu~rrkZ6||da`nZ`&D)?6QxyQ8 zu&y;PyrS}uC$5rlC=uFtC-iqUBs!xZ4m5beDJdfC2@j|c$H3cPBkvT z<%vt&NRRj!3}qmF7OML2h;Exe3>r?U@rV;%pe=8_;{u+3Y4dN=|<@# zzYab@1&Ow|LC)l~Q5m6PUN1zPHj{z zXLkE|R(>#KFb%*7WY77*GH@wDYrB)QD-aMS;wJ#U=$D~_gsGw6_OU$KW?V2a{Go9m zNCzM6DG5V_WymHtQzLTXP=Yc+I4yLDk6{2RAe_K*E(tNARLnh3*LgtnX0yX-xmnL+ zyBt?eJoh(XD7uO`(tSFCG(U7wHb37|iZ9r35*&$9injts2vv%V$L>&e(x)7m#74D> zpLiNPl37j6qY(~>g~ga%g%j(|kl>D1-fD}84uBtvqq8yR;2y#$KW=ZF(Xo3Wg}ipI zdlLiehtl03-~kQiHY1Dw1=Irxs)wer=ZT1BY7x+{+OL!8AFQJKmee~AoFw%+!`?EK z^b5tj*$eK%q^}dR3d}({YRr#Fr1C?Ay_qI`%>ToJX#D6(5SEtSwC?$D);hZ{k|6KS z!6E8{70q&kATqmStX$Xauo5Dg-%#sx{OfIJUy|M5G@vzsUUfT2MXg(JnVEjUldQ^S zcQ&5+EgRaGAITJdi|9zp0~y{s{beOH?Ed#CrhyP3PS->Od|D`=778GyBS?bR(D`{n!!ta-1<;xh}y(?zwNlu4>B3^c|8 zBs_rom7@(~y8|nyDDQi<_ru`be6H~IuwBW@)y9u#Pv+#IU%*E9l9P8?aFKzSbAu^O8Ju&G7Rll{yT@nsujq87GpI7I;l`XE41^z2x zPt3HlA8%wwwi4urP_%Mm9Ii&@Pn4fV=bfc7ncSDZZICN@ibVBR`E zox6hCs6!;VHZSxM59aX+CsNbbkR4s;w!ACGqFe8osXQi zZHusB^LIhZW8mhaUin-rmsxSQJPJLD^l~Db))iEc14pK>$TvL7+HYO_+y5|===n?^ zw!-!6H&a>YD{bVGIl<%V1iQ;$5^A}H1sL*Nzi#9GO3dYbi!);Na@kF}0J zOcvu^=0}%g5g)bFUvl<~wL!;(&d$%Q{y$&W7YBcdG#o4T>ryBxuQ{i-it}MhI={oy zMF%E9XMdYFL*iZdDJXB!vwJmhxvuS&UlLW_71X<0jlL4VL-1%<-5`>(v6pLu0O}Mt z4P`&PlqubW0(SFi_`0ko(_@oPd%TfH*+J}e`NUaoBqjxd?ul{^X`E6pFFHyYO=3 zclMiVIWuKr)~=VmzkC`0S>wmfz+{UA)?)j{yz_x#dseSva?_N_n!yHQA=RMtf6mDt z2Bj_PC(w8uSR208m4*JTr7ri7jV&3WpE@y(CJ9!$KZ=NS1*u>elpC&gkHZ8;)H`b5 zJn$iUBEnjPtRCxA3wTuK=(9AR&tQkMp^*YDA9{LW;X@&5i$>a#SvxO`y`;^!{x2j7 zSbT|J)_-9Y1Ft!lV_siezJ+e9mTn7>D>QG=#Yn|pg+yxE2ydcSVu=+Gs|MrW;1xTI zlRIk4&B?9ikOA196wlNd-UPq{sS+CcNy+YZYCREQ0ZB@3%hEYQ!j1FoVcfF!vPduc z+2+@3gl`wio$qWfy{*;|fxmqjjt-5q8RVHZH{`l2T`gNyf}5jR>+}1SEWS*P*JlNU zC}}^>C|Qs$jQyK8oa7>mZTmA2Tn~of-cqo4Sdca$P^^d=31bcqXh34mu@-hC-LTO=#>ZXTp>^(G;^V z>cYm&jhEWP087`eC$!dcuaFEOe&b#X5jb`OleZJXe_#y-{X~(HBi=R$@$A!B?8<5+?5We0ma~~>L$+gi=OhF1Y>vnA$QxjMc>_hli3%yx! zMC7C;LV}U~)R5bplsZgW_1@ajtzMe?brOJ`q{+4u=J!D2e7@pYyWOZTR?r%1sDNq1 z_uhDwF(u?+;vdt(dN@T!=*^(B|FcJ~-b>_)?-5#dTeA^1;VfHzC3oz%*6naF!m4GQ zW!LQum&LzZ{n#YJ$V(H!EuM-b!Uk&(xIp9j2Iy(~G8*vODL8}!LH32-0^5J9zsDM1 zwT+2U?Y@{kkmNHpKiPilVY-=PbCs!F&(W+zvRf+ZC;aJjuVYCjzpIjYrO;6PG49fJ z$6(RCJm@2)$Q~x-v`iZ zP>?)XK7{|@cgWRpu;4*)SzK2aPs0$nyjeqaG8{u%QS05yY+qKB!3aE*Xmzw~%#`p7 z-eU<*(JxY3TI_H~D94ZPj$Vm5t>IWjI$3DSlyu5UA24hZRa(n(uPY7iO#Cg~UoK@k zg`An=Nom$)Lr;BrUECQeWi7Wz&u8x$NH)Iz-6WmV8~r)nGHZZDaEIw$X3IX)f$pR6 zIwm<>VX1%ML^3u)H&PNoH9Wvo@h>h4iExI(2DO%kmUTJ*PE4S?ED_*X`Vz{7E^iL} z-CV=F?Fg@VlQ%v??EAMj$TUaya^=$jrHYN~#ag)F*}dT?+HVX|!DqN%)B)~Jk3$C? zIV^GGK^>i~Orp4E_OdTWmW|^+h^4%?uj$T;e6yVCR@EUCoYv0-`im?+4+RyF8x0Rx z5iT+Zi#ga6M(kd#>t5zU!qSNc8gu8Th7$-1H=V?MRziN)-x9iaqP<5MNlE!Yg)T&a8O1W={J}y(_ ze*xTHc<~vs&!j!NEftdj<<+t)byVHuZjf;@abcix@xVlPq5J+A@^8=9`hjWLFK{Mg z7{8#bA@aQA`#&0+eZ$==8O9NVg42g;ReYXP-EZq{ejif zdxdCwPsnKj*8FyLCDat>+Ahz+I^U}1I+BgEt+&%Zu?hDh6cC3d41m{5L!0!rm5IrN zz8N*$v;a7P2g~LWjOm@fFbUjO1_P49iwip11(5|G3WVB!SuYXY{&<}$s}j->F5k3| zE7xd4p!oHb%-*Y3ue4&7$F|GHwJt&$j7t4eH<0xy;quupO-b5Y3IjBz@p+seEGiOu zapiCdVF4?wl+~%T51M4QJ$4h^KsZd1!q?|qD)d)pyG0JS8mu?ytc7;1?y*K3cl@~&)eH01Kj9@FUZ1p7}Rgi@a~rHOblx3_1U zMkUpThR2~2)W308Nc&EdhyamE>2`Y@D|UzWD+jmACA)K@04mE(*lMe- zm#~0ik>IR7?XcO+W78r26cerXyliAzJWEiVP3nC(__TT9gl)$*q)%%fSrRB*h}X4M zDJm&A-vR&q?c|6K*jPQ~N!3-7Yp9Y-lE>rTx?$j?Gk7IlW$Av?l;HqQ z7DQo2lmzrT3=BIM+bxXmHv4y3Np+D|o7ox`l{h17itu*r%DU9N)KO8qzUYjKlXveY zYYS}4ps+t4ze#JzzCF>-M1-x%oK8w5s-?0^=NTQ+)td7OweY}K5ZmVr1rX(=>vkJ4 zo-4}p@V*kL5qWdPTd~aMF2QFV_x1Vp(>tI{+_U+jH?mpX;xRE`?{0Sn1%3B!7fzv$ zNq6Z|>6L0Tbt>tUL^Rt}xbgwd(S`+uQl=+1SOOeTGueMfG|I~Zww2<>y z)j1h@Lz7_e;^?3(GBi?lUg+2)*2U{`IZ=udUw%ojz3RBToqzQSsQ=B0F>bqtI?%;- zj=#igEQRw#_Ro>G;E_Y-Fhv2ARuYloh5zRS&(E7&FCT9mV@bqM8I!EuO35vF8Hg}7 z85xn?^R}p#ZN#4P?NPg?$<*@9C*Nh3m5F$tz%=YnXvEKpk#Gw}&is`#cU{EdhSaOz zrtx0eh2Z?(rT_ABp#;Y}`iUAI_3Lr;cjWEE3D?DXzD3FwRS_Xk z&z-RADXC1yZf6&C?@bF#a|4n-BFB;Yw{S}fD#nCYy^!#NBBI>D?r+;p}ljkHA73qj{ zUu_jagC~;1_}cJZ;Q=z@7?0$2c8FLHj!4DM-+|d?V{J3iAIDeuYTNjhQ3PCLJ+7aQ zi~^mqU+Gqyv+~v>Z3vaeKlR>ywH{Y9a@x~O`l57xHm-HMmITVyyGEyLa2~ym(DK<9 zr5|ca`^Or<;YB^hUnMRp*z2-m_VU{AMM$up*!~B4s+W`Y!94r3(&7#SXV?^LMuov< zd297s57iq|yQA}~w8|C%h1F2C2_)jl)yC)sk(A8v=*gKko^Jn3DxCG_&fngKg4?0{ z#~#j%K_oWf*o^{jILCUpu2GM|gls$qR(Bgq4ZG$C+zu#qjO~(xQ@*D+FF*0$+vz`tR z2jSYm1+$59uh*;uK58|Dzp`mPN?hZ;SLvc%84k2G-@}mianiP=O3r>;fb0FEsd=O5@L-OO~H*0xKp_KH?m{Kh(>orrhs4ooRjj5 z1I?;g?=qSFIr%hq-R_lcU58%vm}MkD?_v0UbKmtKRCkFTEq^#R&T5Ym;imt=qwu&^ zwDXIf*k>fl^o_6_0wwnUaE+h4uj<25$|mqlK-SM54s5O=7$9LCS^KE<8n6R@3!Doz z-oT8t^j0ZXE%kEKnjG8wNw1;VP$^9I<{u^HoTuC5rTDu9Vbu(4iaZ*}1Dy*7=$-r> zi5gggr&}+IZ=8Vzv!ifgcrTxQc|-m#Jj3heL(ejIe&Kt=(#F2i)E14INM?gR>w!=9 zb-i#Jf!pt_p{T9v2z%h2b;4Kw#F*c&trOm$`46}ye^LESQ}Td2>Y=0_=yo+BJJw&0 zh^N`wOZ9;zW&Nb)EnQhiB1>_u0ER^Ii2r;QmByXytP$Mj9 z2hbIKcO(wG_(z;@S7&-oEGo`QwPpx+)o$ypgSkYZ=y1EN0hw?UZSVUJBeYq^GxLKH z!7;*Woa`GvSmb{g;btf8ECj^-A4W(eeu@gB_zxrO^Or5g1#A3=5sC(_;Dd!EVSG|p z6OK$2uh=RiAzPx97*zWsTDW^;a2)scl{ed`Gnm%`_2_@_@hdRutKv(nzoXoK%9L;< z7e-b7Aqx@1A3jhGQ|DSY91<1?|G#K>)^tbo8!*t2;-omF3(EZ>IKqgl0KozOge*O3*h#vL zIk&gfZ=KDaBOsiI!(sIQAlVcMo5ExXd`B72Z>5Z{z*)b!Ou4@tYVX;qJuM;xbV{kH zLY!1@@>6U!LhB1)tvc{6h+0HVwEYR<*OkRV#A?+j7OK1qhS7IlA!vUVR_yYcii69v zzcj8RB?^~i z4H?_}?}JjsDX-Q?%D9d#xll9_VKG5>Rhn(|J)2I98Bpv-i__PeS@tT5?{yQ3$YBj{kI`S~6n6^@MoQs_h=%g({oRufq)8aCULsnlA?zc^|IC^n?|(U{>>Sw zIpIJz+l!HgO)xYj7bgWTb?Ade|4Gs12<5gE#2FJ*OTVjo)P5strJ-~aF;&e^2kcNx z+tMCRusS7!WHNBhxWH83w3U@zuP|lJgzbD3G?CiN+GyfR4^5vEudjZkQN~ZwAcDi8 z43AYQYMjq2@)+j0fYYP+yXWsl=*bvUETa6ffs=0$Rd68wov+@jPtsfpT@@hp_#nZL-l;7gN&c}? zp9-J6*UAooCkX%tF#4{HM8k#=A+UEI=)ucB*LM~1-#`n8-Y6bgv!H!NYDb`## zfJExZoF@3mEdc?bwd`MBb6qhLf zGbLZB+yC7ig=*0u!CvlYvEY*!3Wbpg*>XK&Y`S=K+BL%Gtv5i~e&yNsHf5bG&;c1{ zWDpIPFBamrGxk>qN`L)MKWo(w_JUi;*T{&M-+TJvLkDk%3(+GSq1+!LG}K_4}1WBNU_g99q+$(5uubJNr^Ow({PKP8G$Ycx3b;< zTnYjXxD}$u)9;|Q z$4CXQ{ZG)u|4)K4pdlu7f0sx6b124UQ)iG^?S}in6aeQM6_Vf&+=Xki^4Iq2ZT3xU ztx7qQd9PsYl*Wka;6N(uI#G|Cq1yAGdq0P^w@Sr#!sD%Wzc)Spw7t+1!DE|Sy*r%$ z@=C>C!lrAoA%9Td(z_~Nd`lI?X7parWewC8Qrlo3ypHA4HwyUbG()v+4l(#PRYxJGd&%0E;*1)7D@e2 zW}UOC621n^U*$k#2E)!LYWa{Om;a)lwtY1BdC>C`1-JWd3qKqhox!&Z&=MEvTs$;x zlsh;O4E_;ivn+TE@ekwr&~i6VR^}l~@VBm8e|Y+B;h(8lbtm)C4vNuZ__jww$6p&m z@JP}*^IPcrr{^u%KMSO-pI_B1&Pin@jHJ<@s$)dIwc@nb4m%F=%Lx$5XGpDk;zrB`LIl=EJ3 z(Z@MyDDKOn)&5rb2_PVP30uMzY#@ygZhE)baGPl)Mi78P^SVv;gk15Fj^QSwg$slK zxS;gW{kt^wdoO1;2F1M%c(BZpm>RC4L*`@mqJ@IFS;@3gomRaFUN-~ z6&lxK3^GR1NW+~~i}5+>qSYXNRDj+zW0cdT;pB?Mw5nIP)Qk*-8@< zfpvcqed}UkqR)ty)3Y7ha%A)eLg;3C+jf?7&(XM^9|;(_pTAlSA&Z&V+b>^+-wiDJ zH;hBtJ4D|I(t_bE;Id={OIMpoI*K@LljXUo=;}(bx0OHpzM@{;bzM_LwA0jrLQqm& zwOv(6Ufv|a1J=Nh`w%Z~sGQgiU37ch$S=0A_RYRW_lRd1QWzjH4;P$QKR_)|V0r zq34^Rm0YsO1Y#B|L~Sho@x$?9G1+zWzJxsHzFQHOZxt42&vp%8SdrphoI;CBf#UAP3#GWb4(>7(cZcFu zthif|qQ%|a-Q9+7dOy$ozW>I*@$G(FbIeSV>&%(tOs-_Dm1aD0a+w30r;_i>4^E~H zQSaL)T|Mk2SvtXqtsP!U(dv>bVo}6gYGRo`+O4myq1BJ+~$LYNDC&Y^^ zIxDrcv!(AQ78>>4S;AIt`l8FcHTvw5PX`Xgem)~% z9p9ajtPv@L*pg@@%>6I@^44F)+Zuaj2Re#5#SZq6+19b|^^`RDi4@%hO&&x-S&Kj4 zJU?AFv{qgTK3Y!}9#g%}gR;h1?bYrZ@Z3Hy*|t}n_})BjS}x)SGqlHPM+@zD(sQ5P zUEnrx%Xe0KlWL9YXZjzZ|2j8n*8Ve}5xh9TUY=u5jOd<=c)OdYEWZ>P+{@p%C?{(W z?C6E+Wjpw(SJ$-vb^)et#D&vG&iA3s!Jpi)yzL03ab~pZz_m0|*^PI;9AjlHtz)M( zd7@Bw?(Xwn>iiWr^MW{h;?nkTdaxr2+^4TMG<5B->EeV{3FnL-bgKJX0guW1`SAsRk#sgdL{k0^nmkI-mC_zd?CV6$b32`SigC?u zmj2C~$8vxLV#u)Mig*8G5Vmf;uOWQ}dAU=&Rc3C*in|Kz3tb@O!^$m{A^AKo&G!EROQ=Pk*rfO5}NO6#%`!jias9Ij;vpq(k=ccg2@}i#nfHFH) zmlR;9nT_h(T21WZDOq@7uj?ZffX7DSclU7#dJH`*)zrD6mU+Ar4i5&?a;66={u!ZE z(yA~K_ICjWEPmtl)pu%*{$SBTp6B*qC7mjO(PCZ`D@wq-~!Rzii!v?iW6`z zuP+3Uft)M+*0{E*LMcjW`X1I|*(ghj%Fd~dX$={Xg2En_}zt%gc4WaIaHr4yq`f{J3??$eLyA#d?9|I+?=G%$Wf zRvX>oTXXs8+6j~mPi&xcN|C#e&4vnvw^RxJFfkF%=0yT7&8mGo=`12ILM>!)`2D_TWCyL`|?V}P>vYw4pGvjj==la~yYy2(8^tQ>&Rc;P(S!(iA159JEYf`e76RgD+Q)JAWNFw~2 zkG(2e`9-zedr~Wy<{B&&(jlIBLzomNAmLLv9}GV{;GK2yzAa*ZOY2#Oynu){2(tN& zSs+V^Bp6HD{hi@`$RsZNe3(ZR!ATX!v;K|d#kssb0+{;>v`FIro>a;zycG@~{b9pV zOPE2D>`1%h)HdEz<0|L00DMElzo*f>4Mhy^Ij00i>pJS)J1iVEzfuN{I7_I9qxH&F z+$FLLkC{%ZT&+%7m|?>BcEtsUmh!mB$d*j)sBRvhs7ZdKf8UC%(Ou4I9&mvx~H9B!Di z`^||A{yhOEGl9j8!LEViZ4(;E5R=+xU@AI3xaRAAiA6$5*dlz#2;!g2gfi=2*rW~o z9*z~NfB4T^wSQ((%<{(WU8Ep7A(U~2oHW1qlzBGXB&qdFXd2}a=zNy?rt7_oE1n~0 zSv%B@Mbxt#kZTYd%khhFmPAu`D`A}9nZ>;*gfRr)QBvK(zo`PtSEOoj>&VZ>2InOqW2B1fSyI8`q3MC>M1nC!(=7|b4Z5R;% zQq6v)`D%shNpv;{B1d*XFEGXXnKq%o2VS8?hI2=mdGbJBqV)A%K94jdE9}}7!&cKv zFDW|THNMlQl%>I^TZ>zIpeItue8yT0Q%!iul%5ZYH-H@*a#{N==H4LQVud;`Ghd*t+O1nNC%%g1C<4hY_FYFHv%GRGa ztdHCc4imDknKIFnaTOTZyuYWPwI+8gPNyMSrqWxc=$iWd^wjb(L>3$umc~}&6fSFJ z8a!`$IdZ*RW%e~+7lc({Q5?);JEkxF}_W7~S-9h4m zIwDKYd-%lQNl?r#M%rVuiy!GNrlEha!4bHgvb@@Kk!ey&!$ zX~cJY{WtN$r2~2Zur{<&S1bB;FLcy#IUMhm8qPQT?xs37PW>Fa#v6_KU^s<-qTYU3 znec*j7&;sBKkuYoHJnp@Z6g5UZxa}TH4sxswYJ?~8Z)-8YUznv8_4~_$>naBX`?)9 z9lCTPa=T(yGsj_UG0iod`0iJ3Vb{juO<+f4JED>L z)XUPYFrLq;O~>VkTpi2Z6<==Wi!W}7S6>6?A!gg|-X7u1)I&r!ymFbI2hW1!=iP}Y z{Fy_b^*wUc4oKghW)khr$-Lb)m)E&{YwbGA$1-~8fwb(<>{wseFMXeUCQhn1l$PAz z7wGJHj=$1h)N~&(Oe{Y>+}52?K%|n~>%4~K`6#747$2sZFJS8)1a7>NLdt#Q^zw#o z0iW%toP69-u3WoQOdUG_t6x=@PtLL0uZ)I@F1AlQymQKsN45;0hXxg-d#jr#U! zuUbbt@lP*J6lS-xPlW67>|(Ze_=}{}JnPuy(kyJYcsUn1&8@o?@aX8rFH9<{3isKo z?it*@+<*L&m+XZ56| zCS@?Sx8zm!NMSKRlX{!m-gjS9bZ%DSSnW29-_VK;XW5v# z4$Cc;Or9KO>>!d>$AgFrQMyQ=+yxLDYy zn>qk<_NWZ~B{9-+7cNYMKe-$**==DQg>=z={}s%iDDsNSn=P*9{IbbMBJ$T4|H;uf%Cn?4a-9q*BgY@g>8)t6z4w5p7(oaR6nOUd{kb=-E&A6ji4-o{W>-wK zK~)_3_9=%6&1EcTnyZb?o5ok~L0Vuc@>A9#=*bNp%B?be-;%WnNp3mAJa$pPVM?-^>nT4`wZw*>|kY9Yk z!d$M3Zu|b`6Mk|)b{vz~h5_lvp=i&5+M&F5+bS33l#_=tFY}pNVCr#<*noxS&@i) zqI*SCVLf?1aap6Baizjiyf^i)KmbNm+zH9HTz4v3NzZG0qh*ROG0rQ*khLYS)Rb#u zx~OKWa?}=TMZ?^qGcrj6iy~2=U`)KV)h@2OkW{JK@l?TZISBUfo975aAbV7qnRw6$gPR^@^RBvE=X&*}j6TcM_E+T9cngN0_! z)E!Zj_Qze2=X%m4-}U=-bN+EPzq~h1)b?%SjrS@|);t!Cj4fxOuORW|yqITAKun^9 z^LzBjZi8LIK;`2HP<_|L;}ZL6I-5#nkBuJ9Wl7$V0BN8njATXxq1`F0CfpNn5YzZtedhIKp^G2uIFm^-{t=?-={D0htj93*hKGTItAyZcW=BbDR^6-PAC2CR#gS~Jt!(Rc8K|T5QA^MT=lk#FuzphP1q-l z%_c6PeQ#uow`$|7ba#Mnv-fchx@X=P%J3|bZ%BtHwn6OXAJ<1Bjas?NK&Pp>7GHqY zbwGK~He7^w@<4H!&s*K2k0;}-pZNYXC*kVNy?{$|=~b8a)j(OT?6hv0Ck_#?(=JVOViJx5S#=FD~1W=kmETuv1%&7Gpx6il$!(<7@ zA1R^DbESb^UnpBM)9UF@GBmzr>V=#xVU9UJEQFbMRu~Cfc#?nsF8bKFY|6b#o-_@gN$>i3zW3^~yukau%OANE^lZOV z+2XE@wRlZ)x@Z@Ng$rABwY`oQZaME_3}JACmI2g73X``Aq9&8<+mJhKAaz6(*Hky> z!6Zx?JU@;HP&6KHl-HIvt|v}k5>H?cU%(}{HL9irAL=DU6Yq|Gb3h9KIy!OlA+2go zUF19YYQik|+zlY%1$VgW&b}m72bLozG3_QNZc3yT?+?%Eg4*A3>u$c@^7GBkr$5hMZrTH1ZlgA0}h{H5S5EvxuF5#-s^ODw3k4zUsqFJRi{XL$;wC;uvWX`<3jLsGvp-ndJhlj)|?w}EFcAu z0~;k(GzK1E@s8Fx?ENDV+=g+Clsk!g1*aZTxwDK_kS@RK9!dk-U>o!C)@35_l}wsY z;$)_)+Cx)-%g%Oh?Uv@2P#HW=8W^Fuf*}~WToR?Sm`^tjFo)S{XfXGt+yw#++)DKemZV80F&q8vxWH_65 z*O~BODOr3)njIK<+h-yro{+-l3$RvZhB_r?;b*CrvCgm33Pn=okTM=JI-tfl%;hB# zrxdi089aN>HatDZmwChRs!fzau*PGxyMRyxl^Xb_en8J34uSuSwObE{yy;#G*k{cQ z`~#PHPZ$6_vOvl&^_LpYqF9h?Wa`#f{Iza8AB(6d7)JAPQ3T{#!U#0tyy2U0b|j(( z{*u9dpv`u;s~>k_0TVOTg0Cu;SU^WItEfH2T)x|6K_3FoTi}gkpvTl+-gI-x7P8>9 zE!{yBktG}ag7LO_vKCl|E91wTDy>JTlu$^L*L+*f?mYBhB!-lDwr$=f=@ znx?5LQp+Ba2A%o{KkhnA0qzhbv`i9Pgl9`v5kMafNi${+*v@YsQ1P=aL{0lGLGn3* z%|10Dh5z-v{F$X9<#;_EXdFatn}ufRw&Ch+VZB%vsIHA{j?%&Nni`n+`I*%>1kr}~ z7_mbkfV@@1h21onqMIGl4O7v7XY|SC9n4w-_Q&7Rjpw^vco#|9IG?t!<4rKo3NFMp zDaH+1uRGTw-D(Mu0spnnPPyBbtqC5yuYOexUtEad`{FgfCL0P1Yr$1H;T}VobRNp17bpaPu-_}@Zdff z!VIG`Rt3W5OEbv|op1Lgq>ko!_lsEM7_8elH9e_10p?guzqb*)95TzaKLP3@qll|v zBjUQAQ(Bk4=RZ9>Tn^j8VH;e_WgG~s-$;9$3H`!|+}-GT2P)&3$Wn&8ps?xQ zk54HC<)^D>qN zKQ(j_mvhTOw$M(GAcL=-p>NGPy>~jsEkV}jiK7yFup4o?Y?zJvly(GUDte>p{?}H|F3vjGdK*m#Bbdk%Q=qgJ0Qp zPx_v*+cT8;8EfNRPYqfrUs;>kc16Np1$?1G>b6oy7$s$mi%Q;%1MKYgb)J;G!+1%4 zDy*oG{VdSk`=#-G!n(Ge%FoC<{g~KV&8f4_)k7h;>5_Er^?VK^Y?dbi9j@A%8&K#i z0tb?;bM7K@9(9Gm<0~j9!D>Ly*Bab3!8xNvG|WzZUU6q8MxQ31MOYI_c%TS6##mW9 z&L6|Yd<8X}5T22I{Pw#FtlmRt>HW)5nE_@)F;R}eVJfX$2HmYw(Yeo=!*8iZ+m(@u$4K|L*j0ZPt=!q3&Lz zNQ>L}5<&D+^Y)bjsa`Xm43_^UpW1+>I{~{x+=~%`x-q?qJY?p8+UM#Jno~QUDp8 zezxV~ev%~xV>`~2gg4$KH0I{n$&+ZeFzwJIsmS#)vU)~$^K$CY`IIKOYvX+iR~Avg zYR3L^Z?xP>V=Y||gU9)_r{r4dZO~)@-GXrGSrJYGE`Sdbg(7^&N}Vyn!RMnD-sLde z%kED+=qzgdY|sUtfU$J3)4b4u!Izq)x$(^k%?JK0Yc=fw?8)D5?T;EXjpyB~*8Ikv zWQNPr8zv5$eQrf0Xn|YB!u6opa*`lA_U%|)<`*U?Bwp*PgP#UQKewpDw+c&Upq7DD zktjH0&-M^1>~N$n3*m4llWlK-ZLiTRpe>$}ug`(ZfB=Q)^))q=}i zp*Z6kiC9^(+Sji<^$(<}uS$;5gyq}G6TJUiL*doJ?iU!m>}As*1Vm@|bBkFGefndk z?%ZwS2!if$noTA2#~C6mQg@xL8-+BKXxD?erx@wce#4V;?hjDQgZD17P@N8*Szv1YEZ6(;ZcnXP~yKAV3?u?{C9GprvN;;N-r66Vt z+vQ@iGN$SI(*;2zH{tYo5>GeV0F{>RwPO^bLcu`F85J9$oO|gtGThm4?W(W2OHVCB zX^4D2SIJ@Yw!Soz-Hqa`TpbO%GeO06_PM5t=x>zTzY%#=k=(g%;Ei&1WBG?*qzXL# zzWBT~8ReM@yC-blALi79Q=!i*IQ+(B@PL*>G3-YqeYH1Oz_V|L8!B3Z7ihRN3;6&X z3WdN<)CWF?p0stl+5XCE)WRaUt&y3t@YVQ4GZ6~qdr7+|-gx;EJ36s>$au87>^5bb zowrB6K?%Koyoat#B=_lwU+U|qO24I~U0NCEKM?Jfa;G8MhzdgTw|QvmsT|yu0Tj8hUElpQiHP(GIcKreR}K#zwG-#GpB-{&(zgv~ zDG-~#tA9v`7e05v zw-A<2&BU%}TXA=A_f>O41g3)?zfX5=YT~$=8_QO_fu2L)P6JQ@3Kqqz%R?OpW$NwbtUXld z>zkPMH2_BzpaGSqM5!-9e?~p{P*l~4JF?wS8V2h@P4tl$HF7gDx_}jJOJs?*$3pX= z!RKxl^l+!xd;o=jfB|fe#isq~tKQW`tOgSZld)LCdravAIO+n7KVRT;b*aoVz2t<8 z9zyN0N>d|l$#cJ1jt}lfk|&zF(60W9R#@lm$QRNU?BQv1$Xtc8I=M0@PF~CQiBihJ zf+?fZ+-=?HTF>)tmXGk4MDYsrE=b?R=`S{$cYc>yYU;c1VjA|DoBnf8xApN17Ep|D zy=m&LW$QpGs-2Jx7ZxHB0jG%&m{tAgUiK7mHMHb9^TP++mTsmM3%Pta$a_$vf4jrm zg-v%p-Px;|4Ghak!<^i-oc<(pJABi_OuyUzS{xmEL{TKCN!ysvIU&ieHSWcM`H^B& zZlm5<8>YkY&Mxeu`>0$#SzJIti*M79#j&IV{+f;OBUn1%pf_M0%KZ0r_(k0Who*gb z+Cfz~Z>eG9_??Ld0sB3A`2L|Vh=jB1`nlf|w@^}b@}|FbX7kNjW(Z>Wso(LTSEX+X z`}T#^S`y57+)3x-~NMc7qm?^C_Q7jAmpQ|KYwpk{nbwmXqJ7;uDARK$qw(vvC)qbfI_Go`i3(43eDhi4ZiP|Uk5YiJY zg-a=rYo@}FpatEholGbF)?w-{mgX@9-PT0 z$|9h0%WPU+8;+xvAI>CTp&sc!7~`#jeW<$0I&`J?p&-2*Y+E&^UmW7zE%94*2pwHC z--H@lhQIGKQYw6&j#z{ZSPU*T)*$q{QhCEQK|suk_X@ka;=3*#jvRNK$hvW%#F}r` z8##`HiBSl|7$2j#rQdpEV zNe=(24B8d#3vvzhzO_Dmrg{0W6O$W};i%V@L~q}OT><4X2WU9(ct)L$@w{s9LlY>@ zX&=A^3SmNp>XDH$;&K^2Kv32A7r6RzB6;3QnElvu>b7VHI6GuM%>_U)PHEs;zBf}v z7&pDcdMcnkuvSOp|?31|&e;rF3n z+OEG~TDx_u{r?A&<{<@8aLB=S`g8SUy{gh~@{C@-yFr!Hbh_c6if<1Xet__1Mrz_<_Mz# z&<7KNRw`&C5WL0wmh-OSqnY`0V!{qCKxs9_;c2xtrlUUV5z!JM9L@h(;q3YmzVhF;Slm_TizcK!yc z!4Uv<{8yaAScBXw91!Ll<&*gtaa-?$68EF&W{-q1fsJwv1pi$u`ZB51T+@&sxgHr% z80&0O{yb_oI4CE?8ZMOgw7@utQNO~9y56L zzWMioqR|1Ju`R7$>)vv&a01l5041h5{M={H(s&*0pO(J_-1nkd#_WcHwWoQe zV2RB$KEQ&@RYZL19|MG;w!2VZK2*}8n$1^*j^bM$Nq5T;VWd+_Kx&G&OB->UQ=K0^ znoeYcpoo1iv?n9MfZk#rpa=gL6clRPcU|>j#btoUaGwPj|Ki>G$y$QTw&SU)L=(8T z{|1M@j-iMDek^RoO~NxArpLmLx@`j3L6+)~$8+XZ-}u!GV}4rwA6sBV^m!axeA&qQ zcRAXl(1AF_kPf3C8?McSbl(4cyf0-(64F~c*vzg?T)ik%U?gq%LWK^!;S)uQplt_T z5S`9{6N+{)Agz7K%3*y%joztCGu1)_=Fa;zCyrfkKJ7z6;D5b}2`eH+L4uxPuq)h= z1S2duO`e?j3R%WqSGZf~pTGawPY6p%Xb9(LbfivH$pHv&w#_LWq3u+fMHme!cmB5+ z=toQtaQLf1Qidw4#*oq6Bhm*7ALn8ngrH5`7bYS<|8?CzmXSySkGe*Z(eO%tMTE)MN*lG6(MS!$ zbdU>Ae{?~=sh%iSjRTzD3{90bB zXdV9<$%kff)bb-Yl>dO#|J!D+RG27%GpflPC$)AKv_F4*QH2|0U%Fs(hR77{{SChV z=}}DZl`MUNI*|tv(2G6%HOq~)P)v&@3e5huG1j0-6#LqAJ~=O7cRcYNJN{6=QvGje z|8J@lNeWy#Ubp`02b1*hgje8VWKqm;h<|(b-_Y`3XWSvd%=FPbJdiTxzXG7FjZ9hm z7eRV+!@z$=0@P?s%nm`aM-K>X6?|paL3>6d>d*VvegS*8mFmDNI^Arc5HTH$*%l$L|FG&KUporte#@x9@iw2;W@R5tiEj z7MUFcg?$**qv@wF$a+ZrTURJ3UmSRZusULK&;0+SmxIH63%xUl_n(RGpGQEYi{@^F z-^Ivy4Ukv;Hwyms96gf$YL){+=|v{l|EI4&C7ofwim#LA-u`Q#1Enw=SbJ}b@4x1X zb`&Cw0Ud=1vey5TuL(07Mwr>@A4bxD+Fk|T9DqtgzpMYZnts~QToeSn|Ij1;HH-r| zv-pjz^>3YpnW4F2UXwzJ692X=E({THSF0cTS9a;2u?eL(aR7e;(f^rq|M}4?3_t_C zG%LID|LqYmuc5iNM1%i#5C}?uUjc$l>W1O}w#c7AXfB5wvD1GIgvoj<3-AZ}K9 zz3m68@@bfiD5jxGv^4zOM|iCFfoHDV*x&3n!fv5`i~=7ar0+~|!G5&jh}08*^_=W9 zuM6;RwI@7^SN0WqeiFR*l6IS2#0rMk_ERR%YWyWYLEGlpL>w0zww?k^>f9B8#1UoY zd$iC|e#d3$L}*FWSxSXI9~Z3?8ZbuzAj0-5sV~@3j8{_*Kn%yKefn0TJW1@7{#l2j z0l(BO#n~x4FpJ0uf~qFN^pCFILd8-#Az|6>4&BbAP2?ygwQu2}mu=BNuFi16Wh$Y% zF`Qn6f!E|~t4P*b#Ioieue=nYq#Q2_%v9Gg7oxTuIEw*)%&|~ms6Z0*b6OPjVdsZ2K&2I#*7}qnr52aEY$hsMZ)?% zyNFP)dR1;YS{C3QRMUc${t1bf1-_f5Ga*Yi;>I*q@7hBmmf7j>iA|j%sFPn~+iUQn zrY9k38Fp;H9wJYsheEG$W{pdqUZjo$A5U4modH@L{g#dP1ek_G*=jT`>O+XLxq>#*cUD5nb%I&{Er*~)PN zz=&nxu?lJn=@;0RVS2xDl_NcyE_70}$Y%lWcdvv$UKi~keVMK*{uub}?btlF|A>vf z>33QYjdwMz`t|tRsxyNon|)MJw2#;sG(^E1W7A^7e*IfI-qqe>2Nk%+{b=o0@E5L2 zmJW*fy{**VVHgeSNF|(ztS84pmj(@jF9leZ2#T-4k)`9-7h8;E)k6P3WQTbNRqm<0 zYV$E)tTh_$GJlIJRQY!(S4t>G5KH`({kmJKGO1ksoFA$%zjtfs_2t}F3rDszW0tcD z-RIXc5$p${=38{wMsa_Cf3^as0GB{#lI0Z!s$J8@Uma<^hHFs}q6N|~m4m>XgjYb| z?+gd$53sZ#`>!v76$$UkO=oxQGrSpU;G?6Y$5@#=XTq0_{_Gmwh1N16SwkYG-*Ikc z{fQ8}Mn~cFB?=5CxP@N3G-LpaAS&z!9pbp)vC%b3u+|=wV@z@*1ZB*olJa@rju7@9 ze=(+yT+2})(UQn6`S_}Ah~RgCPPj9ZfOE~AtKI^d)k@xPuSwEYk&vuWquj3CMc?@$RIiQ0pL7?VrA+NtHD4D3QRz zck3ta)Va{O!A4A1?5F*2%sbKGdLsPhA(U7lGyuhqcYB`@c25n`fiv)z1C8cAqa#;j<3QA$N#)15O?zEj z-l4u8&yjO?zQAqM=ED*6v?6p_h~}Zq7Dh4_0T#Q|O)FFF21~IKS6_AtGeU6)Rdpw+ zvMBz>W!xXD^TJ&PIJ;`U6HZC;_jPorL?;mq`6$^aa?N}`0XmEX8R%EH>tY`Nom%>$jRU6Q%Y8v$FZtc zF<*<=w?~mGbNK8Y!TAX>?|s8as&P!ByTkrF3012<|Hge7c$txyM&|mdNwQ9~(;FQ} zs>gX<@RjK63Y2Fg@|dKa>qsupL)K7Xy8mV`a&g0D#u_r;CU)(hk^ez#$l5}~JF4x? znYtbcx4yTC5SnD9c-h2S!Ragn1Yb}IS2Wf6vmtoBzNUFfcbq+%3R>@Ig6!2leb-O% z%tbPHwX+*Gj~+XOf$|D=r{031u3D(|72)rG0fsbLvS^^hOqiWj^3lvbo8VA}6;POn z;^Iq#E2(}Q-gI*_&F(KAmdZFRB@s43i6LkV6UIgOEc}~BxxT7!8sGhuzIgX?8PDTp@hg^}8;rio4~D&$G6^%R09!&4rMICg+1Go|lw4BCy0( zL|U4m?IiQ}+I-9v!bzndhWauzNvb&R_^Abm63ExlN5wbfNB%aK zSM65Ze{{XQ2qxbYqLk;);z24Fl-KBH(BXGZG=E0DNVaylw)vACZ2F#Z15ejQq8 zR%U)E`b>a)MI;Xn|9ef>+zJrgXSaM!eag8?ZHMmgd|3C5*}+|dPbFzGBDs`0`*;XB zHkl{VK8I_gtTsNSsEVuXKTaBd3Ec>P`zU?7I7Y8=Z!C*I7k|FOSmJJXDE3MAW2A$U zGU6!qWMc!^(sdJsHWMot+*ccX(mH~%YQ{*Pm@rbUT4%9T6(T+uVf>We-*W zlWFp-Z){dcTy$mLoiwd*Hi!?e=1rZ`rLYu$Dn)w3lU+X`Ae^SZi?8YfnGc5>{glAw z{1}G4u?yQ%=x(Y+Df5c5Y8(NAtM_OW{;(s(Tl26O)kY&^MgU_AV@#k|PZkJp-$X-1 zBRysdOY$tQ$v^CmCL!7sR3A3E?qk+-l*X+`B%w56?0w04c?|J50Z~~lGlVK~pFFc) z`^@{7DLm+bJfC$87~D}GS|ph52QHI96E#%M{FT~`Cm^cixF6im*FKk>Z> zqbSPj38TCjKHij@7r%GE=4}`R7CYanm44YzeKFD+vPDbi zNG2n7);-BcHA9&8R4D!YNUEBnFL;Y@&Cr;Ry5=;;80AtQP~c&5?Gx+^M*_FY7^(^g zy7-i7-b@v3CLFXztv>q;KPYOyTqVZs0Dc1tVBYfqkGi|Ea~hqPX~us zCbbtwg$(ZSUWL@{4Xq6Y2!lzuRgQYTlZ?Oocm3DEK-KN(o3P=WtRm&xXZ?=%_H?pw zNJ=o$*sPi5Qh+IBRBsk@_OMyYa66WlU|nBDe&V6!s7RvpaVIhE$oSNuPqE_>ykNi6 zT}bfqA(!lK9BhrKZajF4lCtI+4?AYOen75cnVQoeb2khd^XE)X9f>zX<(4;Bo7B_3 zb>^zwEejc89-}leq+QMO2HyqqbHj%Jwbhr{wut zg~Et1C!KsUmqg9E$7CQn&pjfY^B1NBD&r;_&ZK=5T%64 zXRUsGW~DhNlYYJ;V9)McmJ|`CxOpH)4|E4Q=d7kX&g(k*c(U!prBp54|K&&S!*@UIOo5 zzPx5coFned^x;R?IByA>B5$7ssk-U@^j6s6jYkkRGgT~Dw$6Bc*-(zV0ckJKYHqG$ z37oo@aw)2KD(w&b8Y+lr>bxb_5k{OsZbKI%t0qj;y`cwR1l+kEIlSdjKJ__AjO@h} zFxw!QVcjBBq?sh1n-VUCD-enoBi~r^J)b5Ewr8QqXgGS$RO4TrMba{g;Tyb@QgwZg zPhK+5IWKgBuO52wDR(Q8hJ5w6{#}Nmb1@EciJB*=?uSqCmCCSu;tj^BNLCY(ad)s` zCOTE;u7&aO&K~erc|V1c>m-6YKJ3oWvyP-}T>hRx+$_CYK0V=^gPZ+DSVGd+=Xj4E9#G!#@Yjci$BvNW*Y6Z@ zV3aa4U5xVV->p|w9S7;a7@C#i?aOtZ)t*t;zjzgCW7 zjKG5Y;%SOfHQrO5RVyiVh0Y91?~?_NA~Kr1H<=e;Sv-Ajl0K7eO_jBLW0ci7-%764 zfa!&wk&zP6+LI%O=o6!f%r`K-dD%{XoS-FB!@Kp$$3pWgYIdxcGTAVz1j5l zA*TUq{#^+qHwZNSx^c4mIr&sz}%Bxz_vuv=fP~f}qyPGQ!^NBJ1 z7J{b(_Pm3gm%~rhJsbR_xYg3xTTId{eBOROvOS)*%TS3q4^_AC0_Bai?Uo%xHJEf8aj#7G`Jr7SGqT*@F?jAj?!ZWMiQ-3i0&iIiF=lBk_@Y45b1(aZM&XQ7@?yct3QUH zoWJ$``(fJDpe}O5T6T*YSBY09#UruEC7suUM_1~uCJooi#xO-}-SfLGvoQ4nZGfjdK!x&FDo6U&d&-x6}3URjNUgesSuUl4PSQPjRP+6Bl42jS3DKk+8PKM zg=>L5sUIdTO3$Yf&I`$&SSbL&Z1PE5h#gP+Gn+C^3iB^y@*$^%@|rk85Yrv2gmyU@*vgq`{V+pT6!8Y+@mHC2#wt!0a+YhSnf zPF`Vul!}idM$KFmD3-PHkiWpK!R3H1f>6xeRv%7Kn8q@eI->z%&0LFFhz(6>Q}O$1 zb0!mP_CfXnslzbO5m>C|HI}Q5f6`%dl>pI5=NsYy-BlpnPbzFNkgJA+=@qGiejm1! zfI+^WAtNGebSes=CW?_oS()-KLM*mDXBjBMFcA)+>bLUq&klIZL6xFM@}5Q^pQ97% zycaEyrFRNV9RL!{B+fe4lq3g7+d}meCoN&^XNJ%@TKn{8r#7A_s+AJcg=Hs6i~>mS zzDQmZInS%M+a}xTwoDXFUhcclci@z)7G| zeKNTjwJ=*_8VMl#5k0fNHm%ID>s4y7VL@b|q0hlBah>}IR`j(#^GwyaacXUI0tO%I z4Yt6rAW5nN8nfG?*-X-|eMX5001pgH_$2nyAhQ@AM-p8giU@pCC<4rb|EL$|1@`n$ z?)0S2M@DX)3452UWSDPX_VDz3t%ZM-EFlRpxt{p^8TCpbvlyMY9!sBx?fATl@^+@; zwwQqIEsNAoLV^Wnp3Ju>Xl+loX2}hSJnQ_rpB4h=2d^m3GSiArBW)f&>96L|Pm{Mx z(XWZyXEt~iCxw&dXxTU(KgRb6wkt4GGitts{pN_FB^2a4{iCQ_e4F*twO2xICM5aU z>&>d1JVdFPE4?GCuF6#NJ=@R zet6JEPs_yN+s63&Qp555`VV{DLiXEOkzw~W7BA%M2{w+yv)hM%>YX=5HE~Lw$~1Vt za#$FNw3ZpII`#c95|dV)Mr2Q#Lk#PdJ7+2?;%q>MEl3+Z`kbb>OV-YZ?v)kMu|;#e zW%RTI2YM(z8CY1acChej~Fcdqwr4Ca@E#d3B1ThZnB=ajY6_hwh@4HJaQ`r^otjLq^I(RgT!an|zhzR%ij_;_4OVjnDmPdNItzm8`+X5l&c#<_b1GDn z>8KJK3^YT3U8zMyicgWMU47WDCnK97!u&JJXn+|s-A~DCMe}^-3_`QQ^WV}`e72qp zJL}Rbw=V^}Gk&~b&k3K-h@wO{RyZSUDAUg(H?Up#c2@s?y8Ft%HlO9~5G-i%(qh4( zK#{gMBv@&2m*Q3&iaUe?EmEXFA+)%=ySrPVNO6k06D;tgzjMCloWJ48t9kVNf|CJ6
7$-1H=V?MRziN)-x9iaqP<5MNlE!Yg)T&a8O1W={J}y(_ ze*xTHc<~vs&!j!NEftdj<<+t)byVHuZjf;@abcix@xVlPq5J+A@^8=9`hjWLFK{Mg z7{8#bA@aQA`#&0+eZ$==8O9NVg42g;ReYXP-EZq{ejif zdxdCwPsnKj*8FyLCDat>+Ahz+I^U}1I+BgEt+&%Zu?hDh6cC3d41m{5L!0!rm5IrN zz8N*$v;a7P2g~LWjOm@fFbUjO1_P49iwip11(5|G3WVB!SuYXY{&<}$s}j->F5k3| zE7xd4p!oHb%-*Y3ue4&7$F|GHwJt&$j7t4eH<0xy;quupO-b5Y3IjBz@p+seEGiOu zapiCdVF4?wl+~%T51M4QJ$4h^KsZd1!q?|qD)d)pyG0JS8mu?ytc7;1?y*K3cl@~&)eH01Kj9@FUZ1p7}Rgi@a~rHOblx3_1U zMkUpThR2~2)W308Nc&EdhyamE>2`Y@D|UzWD+jmACA)K@04mE(*lMe- zm#~0ik>IR7?XcO+W78r26cerXyliAzJWEiVP3nC(__TT9gl)$*q)%%fSrRB*h}X4M zDJm&A-vR&q?c|6K*jPQ~N!3-7Yp9Y-lE>rTx?$j?Gk7IlW$Av?l;HqQ z7DQo2lmzrT3=BIM+bxXmHv4y3Np+D|o7ox`l{h17itu*r%DU9N)KO8qzUYjKlXveY zYYS}4ps+t4ze#JzzCF>-M1-x%oK8w5s-?0^=NTQ+)td7OweY}K5ZmVr1rX(=>vkJ4 zo-4}p@V*kL5qWdPTd~aMF2QFV_x1Vp(>tI{+_U+jH?mpX;xRE`?{0Sn1%3B!7fzv$ zNq6Z|>6L0Tbt>tUL^Rt}xbgwd(S`+uQl=+1SOOeTGueMfG|I~Zww2<>y z)j1h@Lz7_e;^?3(GBi?lUg+2)*2U{`IZ=udUw%ojz3RBToqzQSsQ=B0F>bqtI?%;- zj=#igEQRw#_Ro>G;E_Y-Fhv2ARuYloh5zRS&(E7&FCT9mV@bqM8I!EuO35vF8Hg}7 z85xn?^R}p#ZN#4P?NPg?$<*@9C*Nh3m5F$tz%=YnXvEKpk#Gw}&is`#cU{EdhSaOz zrtx0eh2Z?(rT_ABp#;Y}`iUAI_3Lr;cjWEE3D?DXzD3FwRS_Xk z&z-RADXC1yZf6&C?@bF#a|4n-BFB;Yw{S}fD#nCYy^!#NBBI>D?r+;p}ljkHA73qj{ zUu_jagC~;1_}cJZ;Q=z@7?0$2c8FLHj!4DM-+|d?V{J3iAIDeuYTNjhQ3PCLJ+7aQ zi~^mqU+Gqyv+~v>Z3vaeKlR>ywH{Y9a@x~O`l57xHm-HMmITVyyGEyLa2~ym(DK<9 zr5|ca`^Or<;YB^hUnMRp*z2-m_VU{AMM$up*!~B4s+W`Y!94r3(&7#SXV?^LMuov< zd297s57iq|yQA}~w8|C%h1F2C2_)jl)yC)sk(A8v=*gKko^Jn3DxCG_&fngKg4?0{ z#~#j%K_oWf*o^{jILCUpu2GM|gls$qR(Bgq4ZG$C+zu#qjO~(xQ@*D+FF*0$+vz`tR z2jSYm1+$59uh*;uK58|Dzp`mPN?hZ;SLvc%84k2G-@}mianiP=O3r>;fb0FEsd=O5@L-OO~H*0xKp_KH?m{Kh(>orrhs4ooRjj5 z1I?;g?=qSFIr%hq-R_lcU58%vm}MkD?_v0UbKmtKRCkFTEq^#R&T5Ym;imt=qwu&^ zwDXIf*k>fl^o_6_0wwnUaE+h4uj<25$|mqlK-SM54s5O=7$9LCS^KE<8n6R@3!Doz z-oT8t^j0ZXE%kEKnjG8wNw1;VP$^9I<{u^HoTuC5rTDu9Vbu(4iaZ*}1Dy*7=$-r> zi5gggr&}+IZ=8Vzv!ifgcrTxQc|-m#Jj3heL(ejIe&Kt=(#F2i)E14INM?gR>w!=9 zb-i#Jf!pt_p{T9v2z%h2b;4Kw#F*c&trOm$`46}ye^LESQ}Td2>Y=0_=yo+BJJw&0 zh^N`wOZ9;zW&Nb)EnQhiB1>_u0ER^Ii2r;QmByXytP$Mj9 z2hbIKcO(wG_(z;@S7&-oEGo`QwPpx+)o$ypgSkYZ=y1EN0hw?UZSVUJBeYq^GxLKH z!7;*Woa`GvSmb{g;btf8ECj^-A4W(eeu@gB_zxrO^Or5g1#A3=5sC(_;Dd!EVSG|p z6OK$2uh=RiAzPx97*zWsTDW^;a2)scl{ed`Gnm%`_2_@_@hdRutKv(nzoXoK%9L;< z7e-b7Aqx@1A3jhGQ|DSY91<1?|G#K>)^tbo8!*t2;-omF3(EZ>IKqgl0KozOge*O3*h#vL zIk&gfZ=KDaBOsiI!(sIQAlVcMo5ExXd`B72Z>5Z{z*)b!Ou4@tYVX;qJuM;xbV{kH zLY!1@@>6U!LhB1)tvc{6h+0HVwEYR<*OkRV#A?+j7OK1qhS7IlA!vUVR_yYcii69v zzcj8RB?^~i z4H?_}?}JjsDX-Q?%D9d#xll9_VKG5>Rhn(|J)2I98Bpv-i__PeS@tT5?{yQ3$YBj{kI`S~6n6^@MoQs_h=%g({oRufq)8aCULsnlA?zc^|IC^n?|(U{>>Sw zIpIJz+l!HgO)xYj7bgWTb?Ade|4Gs12<5gE#2FJ*OTVjo)P5strJ-~aF;&e^2kcNx z+tMCRusS7!WHNBhxWH83w3U@zuP|lJgzbD3G?CiN+GyfR4^5vEudjZkQN~ZwAcDi8 z43AYQYMjq2@)+j0fYYP+yXWsl=*bvUETa6ffs=0$Rd68wov+@jPtsfpT@@hp_#nZL-l;7gN&c}? zp9-J6*UAooCkX%tF#4{HM8k#=A+UEI=)ucB*LM~1-#`n8-Y6bgv!H!NYDb`## zfJExZoF@3mEdc?bwd`MBb6qhLf zGbLZB+yC7ig=*0u!CvlYvEY*!3Wbpg*>XK&Y`S=K+BL%Gtv5i~e&yNsHf5bG&;c1{ zWDpIPFBamrGxk>qN`L)MKWo(w_JUi;*T{&M-+TJvLkDk%3(+GSq1+!LG}K_4}1WBNU_g99q+$(5uubJNr^Ow({PKP8G$Ycx3b;< zTnYjXxD}$u)9;|Q z$4CXQ{ZG)u|4)K4pdlu7f0sx6b124UQ)iG^?S}in6aeQM6_Vf&+=Xki^4Iq2ZT3xU ztx7qQd9PsYl*Wka;6N(uI#G|Cq1yAGdq0P^w@Sr#!sD%Wzc)Spw7t+1!DE|Sy*r%$ z@=C>C!lrAoA%9Td(z_~Nd`lI?X7parWewC8Qrlo3ypHA4HwyUbG()v+4l(#PRYxJGd&%0E;*1)7D@e2 zW}UOC621n^U*$k#2E)!LYWa{Om;a)lwtY1BdC>C`1-JWd3qKqhox!&Z&=MEvTs$;x zlsh;O4E_;ivn+TE@ekwr&~i6VR^}l~@VBm8e|Y+B;h(8lbtm)C4vNuZ__jww$6p&m z@JP}*^IPcrr{^u%KMSO-pI_B1&Pin@jHJ<@s$)dIwc@nb4m%F=%Lx$5XGpDk;zrB`LIl=EJ3 z(Z@MyDDKOn)&5rb2_PVP30uMzY#@ygZhE)baGPl)Mi78P^SVv;gk15Fj^QSwg$slK zxS;gW{kt^wdoO1;2F1M%c(BZpm>RC4L*`@mqJ@IFS;@3gomRaFUN-~ z6&lxK3^GR1NW+~~i}5+>qSYXNRDj+zW0cdT;pB?Mw5nIP)Qk*-8@< zfpvcqed}UkqR)ty)3Y7ha%A)eLg;3C+jf?7&(XM^9|;(_pTAlSA&Z&V+b>^+-wiDJ zH;hBtJ4D|I(t_bE;Id={OIMpoI*K@LljXUo=;}(bx0OHpzM@{;bzM_LwA0jrLQqm& zwOv(6Ufv|a1J=Nh`w%Z~sGQgiU37ch$S=0A_RYRW_lRd1QWzjH4;P$QKR_)|V0r zq34^Rm0YsO1Y#B|L~Sho@x$?9G1+zWzJxsHzFQHOZxt42&vp%8SdrphoI;CBf#UAP3#GWb4(>7(cZcFu zthif|qQ%|a-Q9+7dOy$ozW>I*@$G(FbIeSV>&%(tOs-_Dm1aD0a+w30r;_i>4^E~H zQSaL)T|Mk2SvtXqtsP!U(dv>bVo}6gYGRo`+O4myq1BJ+~$LYNDC&Y^^ zIxDrcv!(AQ78>>4S;AIt`l8FcHTvw5PX`Xgem)~% z9p9ajtPv@L*pg@@%>6I@^44F)+Zuaj2Re#5#SZq6+19b|^^`RDi4@%hO&&x-S&Kj4 zJU?AFv{qgTK3Y!}9#g%}gR;h1?bYrZ@Z3Hy*|t}n_})BjS}x)SGqlHPM+@zD(sQ5P zUEnrx%Xe0KlWL9YXZjzZ|2j8n*8Ve}5xh9TUY=u5jOd<=c)OdYEWZ>P+{@p%C?{(W z?C6E+Wjpw(SJ$-vb^)et#D&vG&iA3s!Jpi)yzL03ab~pZz_m0|*^PI;9AjlHtz)M( zd7@Bw?(Xwn>iiWr^MW{h;?nkTdaxr2+^4TMG<5B->EeV{3FnL-bgKJX0guW1`SAsRk#sgdL{k0^nmkI-mC_zd?CV6$b32`SigC?u zmj2C~$8vxLV#u)Mig*8G5Vmf;uOWQ}dAU=&Rc3C*in|Kz3tb@O!^$m{A^AKo&G!EROQ=Pk*rfO5}NO6#%`!jias9Ij;vpq(k=ccg2@}i#nfHFH) zmlR;9nT_h(T21WZDOq@7uj?ZffX7DSclU7#dJH`*)zrD6mU+Ar4i5&?a;66={u!ZE z(yA~K_ICjWEPmtl)pu%*{$SBTp6B*qC7mjO(PCZ`D@wq-~!Rzii!v?iW6`z zuP+3Uft)M+*0{E*LMcjW`X1I|*(ghj%Fd~dX$={Xg2En_}zt%gc4WaIaHr4yq`f{J3??$eLyA#d?9|I+?=G%$Wf zRvX>oTXXs8+6j~mPi&xcN|C#e&4vnvw^RxJFfkF%=0yT7&8mGo=`12ILM>!)`2D_TWCyL`|?V}P>vYw4pGvjj==la~yYy2(8^tQ>&Rc;P(S!(iA159JEYf`e76RgD+Q)JAWNFw~2 zkG(2e`9-zedr~Wy<{B&&(jlIBLzomNAmLLv9}GV{;GK2yzAa*ZOY2#Oynu){2(tN& zSs+V^Bp6HD{hi@`$RsZNe3(ZR!ATX!v;K|d#kssb0+{;>v`FIro>a;zycG@~{b9pV zOPE2D>`1%h)HdEz<0|L00DMElzo*f>4Mhy^Ij00i>pJS)J1iVEzfuN{I7_I9qxH&F z+$FLLkC{%ZT&+%7m|?>BcEtsUmh!mB$d*j)sBRvhs7ZdKf8UC%(Ou4I9&mvx~H9B!Di z`^||A{yhOEGl9j8!LEViZ4(;E5R=+xU@AI3xaRAAiA6$5*dlz#2;!g2gfi=2*rW~o z9*z~NfB4T^wSQ((%<{(WU8Ep7A(U~2oHW1qlzBGXB&qdFXd2}a=zNy?rt7_oE1n~0 zSv%B@Mbxt#kZTYd%khhFmPAu`D`A}9nZ>;*gfRr)QBvK(zo`PtSEOoj>&VZ>2InOqW2B1fSyI8`q3MC>M1nC!(=7|b4Z5R;% zQq6v)`D%shNpv;{B1d*XFEGXXnKq%o2VS8?hI2=mdGbJBqV)A%K94jdE9}}7!&cKv zFDW|THNMlQl%>I^TZ>zIpeItue8yT0Q%!iul%5ZYH-H@*a#{N==H4LQVud;`Ghd*t+O1nNC%%g1C<4hY_FYFHv%GRGa ztdHCc4imDknKIFnaTOTZyuYWPwI+8gPNyMSrqWxc=$iWd^wjb(L>3$umc~}&6fSFJ z8a!`$IdZ*RW%e~+7lc({Q5?);JEkxF}_W7~S-9h4m zIwDKYd-%lQNl?r#M%rVuiy!GNrlEha!4bHgvb@@Kk!ey&!$ zX~cJY{WtN$r2~2Zur{<&S1bB;FLcy#IUMhm8qPQT?xs37PW>Fa#v6_KU^s<-qTYU3 znec*j7&;sBKkuYoHJnp@Z6g5UZxa}TH4sxswYJ?~8Z)-8YUznv8_4~_$>naBX`?)9 z9lCTPa=T(yGsj_UG0iod`0iJ3Vb{juO<+f4JED>L z)XUPYFrLq;O~>VkTpi2Z6<==Wi!W}7S6>6?A!gg|-X7u1)I&r!ymFbI2hW1!=iP}Y z{Fy_b^*wUc4oKghW)khr$-Lb)m)E&{YwbGA$1-~8fwb(<>{wseFMXeUCQhn1l$PAz z7wGJHj=$1h)N~&(Oe{Y>+}52?K%|n~>%4~K`6#747$2sZFJS8)1a7>NLdt#Q^zw#o z0iW%toP69-u3WoQOdUG_t6x=@PtLL0uZ)I@F1AlQymQKsN45;0hXxg-d#jr#U! zuUbbt@lP*J6lS-xPlW67>|(Ze_=}{}JnPuy(kyJYcsUn1&8@o?@aX8rFH9<{3isKo z?it*@+<*L&m+XZ56| zCS@?Sx8zm!NMSKRlX{!m-gjS9bZ%DSSnW29-_VK;XW5v# z4$Cc;Or9KO>>!d>$AgFrQMyQ=+yxLDYy zn>qk<_NWZ~B{9-+7cNYMKe-$**==DQg>=z={}s%iDDsNSn=P*9{IbbMBJ$T4|H;uf%Cn?4a-9q*BgY@g>8)t6z4w5p7(oaR6nOUd{kb=-E&A6ji4-o{W>-wK zK~)_3_9=%6&1EcTnyZb?o5ok~L0Vuc@>A9#=*bNp%B?be-;%WnNp3mAJa$pPVM?-^>nT4`wZw*>|kY9Yk z!d$M3Zu|b`6Mk|)b{vz~h5_lvp=i&5+M&F5+bS33l#_=tFY}pNVCr#<*noxS&@i) zqI*SCVLf?1aap6Baizjiyf^i)KmbNm+zH9HTz4v3NzZG0qh*ROG0rQ*khLYS)Rb#u zx~OKWa?}=TMZ?^qGcrj6iy~2=U`)KV)h@2OkW{JK@l?TZISBUfo975aAbV7qnRw6$gPR^@^RBvE=X&*}j6TcM_E+T9cngN0_! z)E!Zj_Qze2=X%m4-}U=-bN+EPzq~h1)b?%SjrS@|);t!Cj4fxOuORW|yqITAKun^9 z^LzBjZi8LIK;`2HP<_|L;}ZL6I-5#nkBuJ9Wl7$V0BN8njATXxq1`F0CfpNn5YzZtedhIKp^G2uIFm^-{t=?-={D0htj93*hKGTItAyZcW=BbDR^6-PAC2CR#gS~Jt!(Rc8K|T5QA^MT=lk#FuzphP1q-l z%_c6PeQ#uow`$|7ba#Mnv-fchx@X=P%J3|bZ%BtHwn6OXAJ<1Bjas?NK&Pp>7GHqY zbwGK~He7^w@<4H!&s*K2k0;}-pZNYXC*kVNy?{$|=~b8a)j(OT?6hv0Ck_#?(=JVOViJx5S#=FD~1W=kmETuv1%&7Gpx6il$!(<7@ zA1R^DbESb^UnpBM)9UF@GBmzr>V=#xVU9UJEQFbMRu~Cfc#?nsF8bKFY|6b#o-_@gN$>i3zW3^~yukau%OANE^lZOV z+2XE@wRlZ)x@Z@Ng$rABwY`oQZaME_3}JACmI2g73X``Aq9&8<+mJhKAaz6(*Hky> z!6Zx?JU@;HP&6KHl-HIvt|v}k5>H?cU%(}{HL9irAL=DU6Yq|Gb3h9KIy!OlA+2go zUF19YYQik|+zlY%1$VgW&b}m72bLozG3_QNZc3yT?+?%Eg4*A3>u$c@^7GBkr$5hMZrTH1ZlgA0}h{H5S5EvxuF5#-s^ODw3k4zUsqFJRi{XL$;wC;uvWX`<3jLsGvp-ndJhlj)|?w}EFcAu z0~;k(GzK1E@s8Fx?ENDV+=g+Clsk!g1*aZTxwDK_kS@RK9!dk-U>o!C)@35_l}wsY z;$)_)+Cx)-%g%Oh?Uv@2P#HW=8W^Fuf*}~WToR?Sm`^tjFo)S{XfXGt+yw#++)DKemZV80F&q8vxWH_65 z*O~BODOr3)njIK<+h-yro{+-l3$RvZhB_r?;b*CrvCgm33Pn=okTM=JI-tfl%;hB# zrxdi089aN>HatDZmwChRs!fzau*PGxyMRyxl^Xb_en8J34uSuSwObE{yy;#G*k{cQ z`~#PHPZ$6_vOvl&^_LpYqF9h?Wa`#f{Iza8AB(6d7)JAPQ3T{#!U#0tyy2U0b|j(( z{*u9dpv`u;s~>k_0TVOTg0Cu;SU^WItEfH2T)x|6K_3FoTi}gkpvTl+-gI-x7P8>9 zE!{yBktG}ag7LO_vKCl|E91wTDy>JTlu$^L*L+*f?mYBhB!-lDwr$=f=@ znx?5LQp+Ba2A%o{KkhnA0qzhbv`i9Pgl9`v5kMafNi${+*v@YsQ1P=aL{0lGLGn3* z%|10Dh5z-v{F$X9<#;_EXdFatn}ufRw&Ch+VZB%vsIHA{j?%&Nni`n+`I*%>1kr}~ z7_mbkfV@@1h21onqMIGl4O7v7XY|SC9n4w-_Q&7Rjpw^vco#|9IG?t!<4rKo3NFMp zDaH+1uRGTw-D(Mu0spnnPPyBbtqC5yuYOexUtEad`{FgfCL0P1Yr$1H;T}VobRNp17bpaPu-_}@Zdff z!VIG`Rt3W5OEbv|op1Lgq>ko!_lsEM7_8elH9e_10p?guzqb*)95TzaKLP3@qll|v zBjUQAQ(Bk4=RZ9>Tn^j8VH;e_WgG~s-$;9$3H`!|+}-GT2P)&3$Wn&8ps?xQ zk54HC<)^D>qN zKQ(j_mvhTOw$M(GAcL=-p>NGPy>~jsEkV}jiK7yFup4o?Y?zJvly(GUDte>p{?}H|F3vjGdK*m#Bbdk%Q=qgJ0Qp zPx_v*+cT8;8EfNRPYqfrUs;>kc16Np1$?1G>b6oy7$s$mi%Q;%1MKYgb)J;G!+1%4 zDy*oG{VdSk`=#-G!n(Ge%FoC<{g~KV&8f4_)k7h;>5_Er^?VK^Y?dbi9j@A%8&K#i z0tb?;bM7K@9(9Gm<0~j9!D>Ly*Bab3!8xNvG|WzZUU6q8MxQ31MOYI_c%TS6##mW9 z&L6|Yd<8X}5T22I{Pw#FtlmRt>HW)5nE_@)F;R}eVJfX$2HmYw(Yeo=!*8iZ+m(@u$4K|L*j0ZPt=!q3&Lz zNQ>L}5<&D+^Y)bjsa`Xm43_^UpW1+>I{~{x+=~%`x-q?qJY?p8+UM#Jno~QUDp8 zezxV~ev%~xV>`~2gg4$KH0I{n$&+ZeFzwJIsmS#)vU)~$^K$CY`IIKOYvX+iR~Avg zYR3L^Z?xP>V=Y||gU9)_r{r4dZO~)@-GXrGSrJYGE`Sdbg(7^&N}Vyn!RMnD-sLde z%kED+=qzgdY|sUtfU$J3)4b4u!Izq)x$(^k%?JK0Yc=fw?8)D5?T;EXjpyB~*8Ikv zWQNPr8zv5$eQrf0Xn|YB!u6opa*`lA_U%|)<`*U?Bwp*PgP#UQKewpDw+c&Upq7DD zktjH0&-M^1>~N$n3*m4llWlK-ZLiTRpe>$}ug`(ZfB=Q)^))q=}i zp*Z6kiC9^(+Sji<^$(<}uS$;5gyq}G6TJUiL*doJ?iU!m>}As*1Vm@|bBkFGefndk z?%ZwS2!if$noTA2#~C6mQg@xL8-+BKXxD?erx@wce#4V;?hjDQgZD17P@N8*Szv1YEZ6(;ZcnXP~yKAV3?u?{C9GprvN;;N-r66Vt z+vQ@iGN$SI(*;2zH{tYo5>GeV0F{>RwPO^bLcu`F85J9$oO|gtGThm4?W(W2OHVCB zX^4D2SIJ@Yw!Soz-Hqa`TpbO%GeO06_PM5t=x>zTzY%#=k=(g%;Ei&1WBG?*qzXL# zzWBT~8ReM@yC-blALi79Q=!i*IQ+(B@PL*>G3-YqeYH1Oz_V|L8!B3Z7ihRN3;6&X z3WdN<)CWF?p0stl+5XCE)WRaUt&y3t@YVQ4GZ6~qdr7+|-gx;EJ36s>$au87>^5bb zowrB6K?%Koyoat#B=_lwU+U|qO24I~U0NCEKM?Jfa;G8MhzdgTw|QvmsT|yu0Tj8hUElpQiHP(GIcKreR}K#zwG-#GpB-{&(zgv~ zDG-~#tA9v`7e05v zw-A<2&BU%}TXA=A_f>O41g3)?zfX5=YT~$=8_QO_fu2L)P6JQ@3Kqqz%R?OpW$NwbtUXld z>zkPMH2_BzpaGSqM5!-9e?~p{P*l~4JF?wS8V2h@P4tl$HF7gDx_}jJOJs?*$3pX= z!RKxl^l+!xd;o=jfB|fe#isq~tKQW`tOgSZld)LCdravAIO+n7KVRT;b*aoVz2t<8 z9zyN0N>d|l$#cJ1jt}lfk|&zF(60W9R#@lm$QRNU?BQv1$Xtc8I=M0@PF~CQiBihJ zf+?fZ+-=?HTF>)tmXGk4MDYsrE=b?R=`S{$cYc>yYU;c1VjA|DoBnf8xApN17Ep|D zy=m&LW$QpGs-2Jx7ZxHB0jG%&m{tAgUiK7mHMHb9^TP++mTsmM3%Pta$a_$vf4jrm zg-v%p-Px;|4Ghak!<^i-oc<(pJABi_OuyUzS{xmEL{TKCN!ysvIU&ieHSWcM`H^B& zZlm5<8>YkY&Mxeu`>0$#SzJIti*M79#j&IV{+f;OBUn1%pf_M0%KZ0r_(k0Who*gb z+Cfz~Z>eG9_??Ld0sB3A`2L|Vh=jB1`nlf|w@^}b@}|FbX7kNjW(Z>Wso(LTSEX+X z`}T#^S`y57+)3x-~NMc7qm?^C_Q7jAmpQ|KYwpk{nbwmXqJ7;uDARK$qw(vvC)qbfI_Go`i3(43eDhi4ZiP|Uk5YiJY zg-a=rYo@}FpatEholGbF)?w-{mgX@9-PT0 z$|9h0%WPU+8;+xvAI>CTp&sc!7~`#jeW<$0I&`J?p&-2*Y+E&^UmW7zE%94*2pwHC z--H@lhQIGKQYw6&j#z{ZSPU*T)*$q{QhCEQK|suk_X@ka;=3*#jvRNK$hvW%#F}r` z8##`HiBSl|7$2j#rQdpEV zNe=(24B8d#3vvzhzO_Dmrg{0W6O$W};i%V@L~q}OT><4X2WU9(ct)L$@w{s9LlY>@ zX&=A^3SmNp>XDH$;&K^2Kv32A7r6RzB6;3QnElvu>b7VHI6GuM%>_U)PHEs;zBf}v z7&pDcdMcnkuvSOp|?31|&e;rF3n z+OEG~TDx_u{r?A&<{<@8aLB=S`g8SUy{gh~@{C@-yFr!Hbh_c6if<1Xet__1Mrz_<_Mz# z&<7KNRw`&C5WL0wmh-OSqnY`0V!{qCKxs9_;c2xtrlUUV5z!JM9L@h(;q3YmzVhF;Slm_TizcK!yc z!4Uv<{8yaAScBXw91!Ll<&*gtaa-?$68EF&W{-q1fsJwv1pi$u`ZB51T+@&sxgHr% z80&0O{yb_oI4CE?8ZMOgw7@utQNO~9y56L zzWMioqR|1Ju`R7$>)vv&a01l5041h5{M={H(s&*0pO(J_-1nkd#_WcHwWoQe zV2RB$KEQ&@RYZL19|MG;w!2VZK2*}8n$1^*j^bM$Nq5T;VWd+_Kx&G&OB->UQ=K0^ znoeYcpoo1iv?n9MfZk#rpa=gL6clRPcU|>j#btoUaGwPj|Ki>G$y$QTw&SU)L=(8T z{|1M@j-iMDek^RoO~NxArpLmLx@`j3L6+)~$8+XZ-}u!GV}4rwA6sBV^m!axeA&qQ zcRAXl(1AF_kPf3C8?McSbl(4cyf0-(64F~c*vzg?T)ik%U?gq%LWK^!;S)uQplt_T z5S`9{6N+{)Agz7K%3*y%joztCGu1)_=Fa;zCyrfkKJ7z6;D5b}2`eH+L4uxPuq)h= z1S2duO`e?j3R%WqSGZf~pTGawPY6p%Xb9(LbfivH$pHv&w#_LWq3u+fMHme!cmB5+ z=toQtaQLf1Qidw4#*oq6Bhm*7ALn8ngrH5`7bYS<|8?CzmXSySkGe*Z(eO%tMTE)MN*lG6(MS!$ zbdU>Ae{?~=sh%iSjRTzD3{90bB zXdV9<$%kff)bb-Yl>dO#|J!D+RG27%GpflPC$)AKv_F4*QH2|0U%Fs(hR77{{SChV z=}}DZl`MUNI*|tv(2G6%HOq~)P)v&@3e5huG1j0-6#LqAJ~=O7cRcYNJN{6=QvGje z|8J@lNeWy#Ubp`02b1*hgje8VWKqm;h<|(b-_Y`3XWSvd%=FPbJdiTxzXG7FjZ9hm z7eRV+!@z$=0@P?s%nm`aM-K>X6?|paL3>6d>d*VvegS*8mFmDNI^Arc5HTH$*%l$L|FG&KUporte#@x9@iw2;W@R5tiEj z7MUFcg?$**qv@wF$a+ZrTURJ3UmSRZusULK&;0+SmxIH63%xUl_n(RGpGQEYi{@^F z-^Ivy4Ukv;Hwyms96gf$YL){+=|v{l|EI4&C7ofwim#LA-u`Q#1Enw=SbJ}b@4x1X zb`&Cw0Ud=1vey5TuL(07Mwr>@A4bxD+Fk|T9DqtgzpMYZnts~QToeSn|Ij1;HH-r| zv-pjz^>3YpnW4F2UXwzJ692X=E({THSF0cTS9a;2u?eL(aR7e;(f^rq|M}4?3_t_C zG%LID|LqYmuc5iNM1%i#5C}?uUjc$l>W1O}w#c7AXfB5wvD1GIgvoj<3-AZ}K9 zz3m68@@bfiD5jxGv^4zOM|iCFfoHDV*x&3n!fv5`i~=7ar0+~|!G5&jh}08*^_=W9 zuM6;RwI@7^SN0WqeiFR*l6IS2#0rMk_ERR%YWyWYLEGlpL>w0zww?k^>f9B8#1UoY zd$iC|e#d3$L}*FWSxSXI9~Z3?8ZbuzAj0-5sV~@3j8{_*Kn%yKefn0TJW1@7{#l2j z0l(BO#n~x4FpJ0uf~qFN^pCFILd8-#Az|6>4&BbAP2?ygwQu2}mu=BNuFi16Wh$Y% zF`Qn6f!E|~t4P*b#Ioieue=nYq#Q2_%v9Gg7oxTuIEw*)%&|~ms6Z0*b6OPjVdsZ2K&2I#*7}qnr52aEY$hsMZ)?% zyNFP)dR1;YS{C3QRMUc${t1bf1-_f5Ga*Yi;>I*q@7hBmmf7j>iA|j%sFPn~+iUQn zrY9k38Fp;H9wJYsheEG$W{pdqUZjo$A5U4modH@L{g#dP1ek_G*=jT`>O+XLxq>#*cUD5nb%I&{Er*~)PN zz=&nxu?lJn=@;0RVS2xDl_NcyE_70}$Y%lWcdvv$UKi~keVMK*{uub}?btlF|A>vf z>33QYjdwMz`t|tRsxyNon|)MJw2#;sG(^E1W7A^7e*IfI-qqe>2Nk%+{b=o0@E5L2 zmJW*fy{**VVHgeSNF|(ztS84pmj(@jF9leZ2#T-4k)`9-7h8;E)k6P3WQTbNRqm<0 zYV$E)tTh_$GJlIJRQY!(S4t>G5KH`({kmJKGO1ksoFA$%zjtfs_2t}F3rDszW0tcD z-RIXc5$p${=38{wMsa_Cf3^as0GB{#lI0Z!s$J8@Uma<^hHFs}q6N|~m4m>XgjYb| z?+gd$53sZ#`>!v76$$UkO=oxQGrSpU;G?6Y$5@#=XTq0_{_Gmwh1N16SwkYG-*Ikc z{fQ8}Mn~cFB?=5CxP@N3G-LpaAS&z!9pbp)vC%b3u+|=wV@z@*1ZB*olJa@rju7@9 ze=(+yT+2})(UQn6`S_}Ah~RgCPPj9ZfOE~AtKI^d)k@xPuSwEYk&vuWquj3CMc?@$RIiQ0pL7?VrA+NtHD4D3QRz zck3ta)Va{O!A4A1?5F*2%sbKGdLsPhA(U7lGyuhqcYB`@c25n`fiv)z1C8cAqa#;j<3QA$N#)15O?zEj z-l4u8&yjO?zQAqM=ED*6v?6p_h~}Zq7Dh4_0T#Q|O)FFF21~IKS6_AtGeU6)Rdpw+ zvMBz>W!xXD^TJ&PIJ;`U6HZC;_jPorL?;mq`6$^aa?N}`0XmEX8R%EH>tY`Nom%>$jRU6Q%Y8v$FZtc zF<*<=w?~mGbNK8Y!TAX>?|s8as&P!ByTkrF3012<|Hge7c$txyM&|mdNwQ9~(;FQ} zs>gX<@RjK63Y2Fg@|dKa>qsupL)K7Xy8mV`a&g0D#u_r;CU)(hk^ez#$l5}~JF4x? znYtbcx4yTC5SnD9c-h2S!Ragn1Yb}IS2Wf6vmtoBzNUFfcbq+%3R>@Ig6!2leb-O% z%tbPHwX+*Gj~+XOf$|D=r{031u3D(|72)rG0fsbLvS^^hOqiWj^3lvbo8VA}6;POn z;^Iq#E2(}Q-gI*_&F(KAmdZFRB@s43i6LkV6UIgOEc}~BxxT7!8sGhuzIgX?8PDTp@hg^}8;rio4~D&$G6^%R09!&4rMICg+1Go|lw4BCy0( zL|U4m?IiQ}+I-9v!bzndhWauzNvb&R_^Abm63ExlN5wbfNB%aK zSM65Ze{{XQ2qxbYqLk;);z24Fl-KBH(BXGZG=E0DNVaylw)vACZ2F#Z15ejQq8 zR%U)E`b>a)MI;Xn|9ef>+zJrgXSaM!eag8?ZHMmgd|3C5*}+|dPbFzGBDs`0`*;XB zHkl{VK8I_gtTsNSsEVuXKTaBd3Ec>P`zU?7I7Y8=Z!C*I7k|FOSmJJXDE3MAW2A$U zGU6!qWMc!^(sdJsHWMot+*ccX(mH~%YQ{*Pm@rbUT4%9T6(T+uVf>We-*W zlWFp-Z){dcTy$mLoiwd*Hi!?e=1rZ`rLYu$Dn)w3lU+X`Ae^SZi?8YfnGc5>{glAw z{1}G4u?yQ%=x(Y+Df5c5Y8(NAtM_OW{;(s(Tl26O)kY&^MgU_AV@#k|PZkJp-$X-1 zBRysdOY$tQ$v^CmCL!7sR3A3E?qk+-l*X+`B%w56?0w04c?|J50Z~~lGlVK~pFFc) z`^@{7DLm+bJfC$87~D}GS|ph52QHI96E#%M{FT~`Cm^cixF6im*FKk>Z> zqbSPj38TCjKHij@7r%GE=4}`R7CYanm44YzeKFD+vPDbi zNG2n7);-BcHA9&8R4D!YNUEBnFL;Y@&Cr;Ry5=;;80AtQP~c&5?Gx+^M*_FY7^(^g zy7-i7-b@v3CLFXztv>q;KPYOyTqVZs0Dc1tVBYfqkGi|Ea~hqPX~us zCbbtwg$(ZSUWL@{4Xq6Y2!lzuRgQYTlZ?Oocm3DEK-KN(o3P=WtRm&xXZ?=%_H?pw zNJ=o$*sPi5Qh+IBRBsk@_OMyYa66WlU|nBDe&V6!s7RvpaVIhE$oSNuPqE_>ykNi6 zT}bfqA(!lK9BhrKZajF4lCtI+4?AYOen75cnVQoeb2khd^XE)X9f>zX<(4;Bo7B_3 zb>^zwEejc89-}leq+QMO2HyqqbHj%Jwbhr{wut zg~Et1C!KsUmqg9E$7CQn&pjfY^B1NBD&r;_&ZK=5T%64 zXRUsGW~DhNlYYJ;V9)McmJ|`CxOpH)4|E4Q=d7kX&g(k*c(U!prBp54|K&&S!*@UIOo5 zzPx5coFned^x;R?IByA>B5$7ssk-U@^j6s6jYkkRGgT~Dw$6Bc*-(zV0ckJKYHqG$ z37oo@aw)2KD(w&b8Y+lr>bxb_5k{OsZbKI%t0qj;y`cwR1l+kEIlSdjKJ__AjO@h} zFxw!QVcjBBq?sh1n-VUCD-enoBi~r^J)b5Ewr8QqXgGS$RO4TrMba{g;Tyb@QgwZg zPhK+5IWKgBuO52wDR(Q8hJ5w6{#}Nmb1@EciJB*=?uSqCmCCSu;tj^BNLCY(ad)s` zCOTE;u7&aO&K~erc|V1c>m-6YKJ3oWvyP-}T>hRx+$_CYK0V=^gPZ+DSVGd+=Xj4E9#G!#@Yjci$BvNW*Y6Z@ zV3aa4U5xVV->p|w9S7;a7@C#i?aOtZ)t*t;zjzgCW7 zjKG5Y;%SOfHQrO5RVyiVh0Y91?~?_NA~Kr1H<=e;Sv-Ajl0K7eO_jBLW0ci7-%764 zfa!&wk&zP6+LI%O=o6!f%r`K-dD%{XoS-FB!@Kp$$3pWgYIdxcGTAVz1j5l zA*TUq{#^+qHwZNSx^c4mIr&sz}%Bxz_vuv=fP~f}qyPGQ!^NBJ1 z7J{b(_Pm3gm%~rhJsbR_xYg3xTTId{eBOROvOS)*%TS3q4^_AC0_Bai?Uo%xHJEf8aj#7G`Jr7SGqT*@F?jAj?!ZWMiQ-3i0&iIiF=lBk_@Y45b1(aZM&XQ7@?yct3QUH zoWJ$``(fJDpe}O5T6T*YSBY09#UruEC7suUM_1~uCJooi#xO-}-SfLGvoQ4nZGfjdK!x&FDo6U&d&-x6}3URjNUgesSuUl4PSQPjRP+6Bl42jS3DKk+8PKM zg=>L5sUIdTO3$Yf&I`$&SSbL&Z1PE5h#gP+Gn+C^3iB^y@*$^%@|rk85Yrv2gmyU@*vgq`{V+pT6!8Y+@mHC2#wt!0a+YhSnf zPF`Vul!}idM$KFmD3-PHkiWpK!R3H1f>6xeRv%7Kn8q@eI->z%&0LFFhz(6>Q}O$1 zb0!mP_CfXnslzbO5m>C|HI}Q5f6`%dl>pI5=NsYy-BlpnPbzFNkgJA+=@qGiejm1! zfI+^WAtNGebSes=CW?_oS()-KLM*mDXBjBMFcA)+>bLUq&klIZL6xFM@}5Q^pQ97% zycaEyrFRNV9RL!{B+fe4lq3g7+d}meCoN&^XNJ%@TKn{8r#7A_s+AJcg=Hs6i~>mS zzDQmZInS%M+a}xTwoDXFUhcclci@z)7G| zeKNTjwJ=*_8VMl#5k0fNHm%ID>s4y7VL@b|q0hlBah>}IR`j(#^GwyaacXUI0tO%I z4Yt6rAW5nN8nfG?*-X-|eMX5001pgH_$2nyAhQ@AM-p8giU@pCC<4rb|EL$|1@`n$ z?)0S2M@DX)3452UWSDPX_VDz3t%ZM-EFlRpxt{p^8TCpbvlyMY9!sBx?fATl@^+@; zwwQqIEsNAoLV^Wnp3Ju>Xl+loX2}hSJnQ_rpB4h=2d^m3GSiArBW)f&>96L|Pm{Mx z(XWZyXEt~iCxw&dXxTU(KgRb6wkt4GGitts{pN_FB^2a4{iCQ_e4F*twO2xICM5aU z>&>d1JVdFPE4?GCuF6#NJ=@R zet6JEPs_yN+s63&Qp555`VV{DLiXEOkzw~W7BA%M2{w+yv)hM%>YX=5HE~Lw$~1Vt za#$FNw3ZpII`#c95|dV)Mr2Q#Lk#PdJ7+2?;%q>MEl3+Z`kbb>OV-YZ?v)kMu|;#e zW%RTI2YM(z8CY1acChej~Fcdqwr4Ca@E#d3B1ThZnB=ajY6_hwh@4HJaQ`r^otjLq^I(RgT!an|zhzR%ij_;_4OVjnDmPdNItzm8`+X5l&c#<_b1GDn z>8KJK3^YT3U8zMyicgWMU47WDCnK97!u&JJXn+|s-A~DCMe}^-3_`QQ^WV}`e72qp zJL}Rbw=V^}Gk&~b&k3K-h@wO{RyZSUDAUg(H?Up#c2@s?y8Ft%HlO9~5G-i%(qh4( zK#{gMBv@&2m*Q3&iaUe?EmEXFA+)%=ySrPVNO6k06D;tgzjMCloWJ48t9kVNf|CJ6
yBbtqC5yuYOexUtEad`{FgfCL0P1Yr$1H;T}VobRNp17bpaPu-_}@Zdff z!VIG`Rt3W5OEbv|op1Lgq>ko!_lsEM7_8elH9e_10p?guzqb*)95TzaKLP3@qll|v zBjUQAQ(Bk4=RZ9>Tn^j8VH;e_WgG~s-$;9$3H`!|+}-GT2P)&3$Wn&8ps?xQ zk54HC<)^D>qN zKQ(j_mvhTOw$M(GAcL=-p>NGPy>~jsEkV}jiK7yFup4o?Y?zJvly(GUDte>p{?}H|F3vjGdK*m#Bbdk%Q=qgJ0Qp zPx_v*+cT8;8EfNRPYqfrUs;>kc16Np1$?1G>b6oy7$s$mi%Q;%1MKYgb)J;G!+1%4 zDy*oG{VdSk`=#-G!n(Ge%FoC<{g~KV&8f4_)k7h;>5_Er^?VK^Y?dbi9j@A%8&K#i z0tb?;bM7K@9(9Gm<0~j9!D>Ly*Bab3!8xNvG|WzZUU6q8MxQ31MOYI_c%TS6##mW9 z&L6|Yd<8X}5T22I{Pw#FtlmRt>HW)5nE_@)F;R}eVJfX$2HmYw(Yeo=!*8iZ+m(@u$4K|L*j0ZPt=!q3&Lz zNQ>L}5<&D+^Y)bjsa`Xm43_^UpW1+>I{~{x+=~%`x-q?qJY?p8+UM#Jno~QUDp8 zezxV~ev%~xV>`~2gg4$KH0I{n$&+ZeFzwJIsmS#)vU)~$^K$CY`IIKOYvX+iR~Avg zYR3L^Z?xP>V=Y||gU9)_r{r4dZO~)@-GXrGSrJYGE`Sdbg(7^&N}Vyn!RMnD-sLde z%kED+=qzgdY|sUtfU$J3)4b4u!Izq)x$(^k%?JK0Yc=fw?8)D5?T;EXjpyB~*8Ikv zWQNPr8zv5$eQrf0Xn|YB!u6opa*`lA_U%|)<`*U?Bwp*PgP#UQKewpDw+c&Upq7DD zktjH0&-M^1>~N$n3*m4llWlK-ZLiTRpe>$}ug`(ZfB=Q)^))q=}i zp*Z6kiC9^(+Sji<^$(<}uS$;5gyq}G6TJUiL*doJ?iU!m>}As*1Vm@|bBkFGefndk z?%ZwS2!if$noTA2#~C6mQg@xL8-+BKXxD?erx@wce#4V;?hjDQgZD17P@N8*Szv1YEZ6(;ZcnXP~yKAV3?u?{C9GprvN;;N-r66Vt z+vQ@iGN$SI(*;2zH{tYo5>GeV0F{>RwPO^bLcu`F85J9$oO|gtGThm4?W(W2OHVCB zX^4D2SIJ@Yw!Soz-Hqa`TpbO%GeO06_PM5t=x>zTzY%#=k=(g%;Ei&1WBG?*qzXL# zzWBT~8ReM@yC-blALi79Q=!i*IQ+(B@PL*>G3-YqeYH1Oz_V|L8!B3Z7ihRN3;6&X z3WdN<)CWF?p0stl+5XCE)WRaUt&y3t@YVQ4GZ6~qdr7+|-gx;EJ36s>$au87>^5bb zowrB6K?%Koyoat#B=_lwU+U|qO24I~U0NCEKM?Jfa;G8MhzdgTw|QvmsT|yu0Tj8hUElpQiHP(GIcKreR}K#zwG-#GpB-{&(zgv~ zDG-~#tA9v`7e05v zw-A<2&BU%}TXA=A_f>O41g3)?zfX5=YT~$=8_QO_fu2L)P6JQ@3Kqqz%R?OpW$NwbtUXld z>zkPMH2_BzpaGSqM5!-9e?~p{P*l~4JF?wS8V2h@P4tl$HF7gDx_}jJOJs?*$3pX= z!RKxl^l+!xd;o=jfB|fe#isq~tKQW`tOgSZld)LCdravAIO+n7KVRT;b*aoVz2t<8 z9zyN0N>d|l$#cJ1jt}lfk|&zF(60W9R#@lm$QRNU?BQv1$Xtc8I=M0@PF~CQiBihJ zf+?fZ+-=?HTF>)tmXGk4MDYsrE=b?R=`S{$cYc>yYU;c1VjA|DoBnf8xApN17Ep|D zy=m&LW$QpGs-2Jx7ZxHB0jG%&m{tAgUiK7mHMHb9^TP++mTsmM3%Pta$a_$vf4jrm zg-v%p-Px;|4Ghak!<^i-oc<(pJABi_OuyUzS{xmEL{TKCN!ysvIU&ieHSWcM`H^B& zZlm5<8>YkY&Mxeu`>0$#SzJIti*M79#j&IV{+f;OBUn1%pf_M0%KZ0r_(k0Who*gb z+Cfz~Z>eG9_??Ld0sB3A`2L|Vh=jB1`nlf|w@^}b@}|FbX7kNjW(Z>Wso(LTSEX+X z`}T#^S`y57+)3x-~NMc7qm?^C_Q7jAmpQ|KYwpk{nbwmXqJ7;uDARK$qw(vvC)qbfI_Go`i3(43eDhi4ZiP|Uk5YiJY zg-a=rYo@}FpatEholGbF)?w-{mgX@9-PT0 z$|9h0%WPU+8;+xvAI>CTp&sc!7~`#jeW<$0I&`J?p&-2*Y+E&^UmW7zE%94*2pwHC z--H@lhQIGKQYw6&j#z{ZSPU*T)*$q{QhCEQK|suk_X@ka;=3*#jvRNK$hvW%#F}r` z8##`HiBSl|7$2j#rQdpEV zNe=(24B8d#3vvzhzO_Dmrg{0W6O$W};i%V@L~q}OT><4X2WU9(ct)L$@w{s9LlY>@ zX&=A^3SmNp>XDH$;&K^2Kv32A7r6RzB6;3QnElvu>b7VHI6GuM%>_U)PHEs;zBf}v z7&pDcdMcnkuvSOp|?31|&e;rF3n z+OEG~TDx_u{r?A&<{<@8aLB=S`g8SUy{gh~@{C@-yFr!Hbh_c6if<1Xet__1Mrz_<_Mz# z&<7KNRw`&C5WL0wmh-OSqnY`0V!{qCKxs9_;c2xtrlUUV5z!JM9L@h(;q3YmzVhF;Slm_TizcK!yc z!4Uv<{8yaAScBXw91!Ll<&*gtaa-?$68EF&W{-q1fsJwv1pi$u`ZB51T+@&sxgHr% z80&0O{yb_oI4CE?8ZMOgw7@utQNO~9y56L zzWMioqR|1Ju`R7$>)vv&a01l5041h5{M={H(s&*0pO(J_-1nkd#_WcHwWoQe zV2RB$KEQ&@RYZL19|MG;w!2VZK2*}8n$1^*j^bM$Nq5T;VWd+_Kx&G&OB->UQ=K0^ znoeYcpoo1iv?n9MfZk#rpa=gL6clRPcU|>j#btoUaGwPj|Ki>G$y$QTw&SU)L=(8T z{|1M@j-iMDek^RoO~NxArpLmLx@`j3L6+)~$8+XZ-}u!GV}4rwA6sBV^m!axeA&qQ zcRAXl(1AF_kPf3C8?McSbl(4cyf0-(64F~c*vzg?T)ik%U?gq%LWK^!;S)uQplt_T z5S`9{6N+{)Agz7K%3*y%joztCGu1)_=Fa;zCyrfkKJ7z6;D5b}2`eH+L4uxPuq)h= z1S2duO`e?j3R%WqSGZf~pTGawPY6p%Xb9(LbfivH$pHv&w#_LWq3u+fMHme!cmB5+ z=toQtaQLf1Qidw4#*oq6Bhm*7ALn8ngrH5`7bYS<|8?CzmXSySkGe*Z(eO%tMTE)MN*lG6(MS!$ zbdU>Ae{?~=sh%iSjRTzD3{90bB zXdV9<$%kff)bb-Yl>dO#|J!D+RG27%GpflPC$)AKv_F4*QH2|0U%Fs(hR77{{SChV z=}}DZl`MUNI*|tv(2G6%HOq~)P)v&@3e5huG1j0-6#LqAJ~=O7cRcYNJN{6=QvGje z|8J@lNeWy#Ubp`02b1*hgje8VWKqm;h<|(b-_Y`3XWSvd%=FPbJdiTxzXG7FjZ9hm z7eRV+!@z$=0@P?s%nm`aM-K>X6?|paL3>6d>d*VvegS*8mFmDNI^Arc5HTH$*%l$L|FG&KUporte#@x9@iw2;W@R5tiEj z7MUFcg?$**qv@wF$a+ZrTURJ3UmSRZusULK&;0+SmxIH63%xUl_n(RGpGQEYi{@^F z-^Ivy4Ukv;Hwyms96gf$YL){+=|v{l|EI4&C7ofwim#LA-u`Q#1Enw=SbJ}b@4x1X zb`&Cw0Ud=1vey5TuL(07Mwr>@A4bxD+Fk|T9DqtgzpMYZnts~QToeSn|Ij1;HH-r| zv-pjz^>3YpnW4F2UXwzJ692X=E({THSF0cTS9a;2u?eL(aR7e;(f^rq|M}4?3_t_C zG%LID|LqYmuc5iNM1%i#5C}?uUjc$l>W1O}w#c7AXfB5wvD1GIgvoj<3-AZ}K9 zz3m68@@bfiD5jxGv^4zOM|iCFfoHDV*x&3n!fv5`i~=7ar0+~|!G5&jh}08*^_=W9 zuM6;RwI@7^SN0WqeiFR*l6IS2#0rMk_ERR%YWyWYLEGlpL>w0zww?k^>f9B8#1UoY zd$iC|e#d3$L}*FWSxSXI9~Z3?8ZbuzAj0-5sV~@3j8{_*Kn%yKefn0TJW1@7{#l2j z0l(BO#n~x4FpJ0uf~qFN^pCFILd8-#Az|6>4&BbAP2?ygwQu2}mu=BNuFi16Wh$Y% zF`Qn6f!E|~t4P*b#Ioieue=nYq#Q2_%v9Gg7oxTuIEw*)%&|~ms6Z0*b6OPjVdsZ2K&2I#*7}qnr52aEY$hsMZ)?% zyNFP)dR1;YS{C3QRMUc${t1bf1-_f5Ga*Yi;>I*q@7hBmmf7j>iA|j%sFPn~+iUQn zrY9k38Fp;H9wJYsheEG$W{pdqUZjo$A5U4modH@L{g#dP1ek_G*=jT`>O+XLxq>#*cUD5nb%I&{Er*~)PN zz=&nxu?lJn=@;0RVS2xDl_NcyE_70}$Y%lWcdvv$UKi~keVMK*{uub}?btlF|A>vf z>33QYjdwMz`t|tRsxyNon|)MJw2#;sG(^E1W7A^7e*IfI-qqe>2Nk%+{b=o0@E5L2 zmJW*fy{**VVHgeSNF|(ztS84pmj(@jF9leZ2#T-4k)`9-7h8;E)k6P3WQTbNRqm<0 zYV$E)tTh_$GJlIJRQY!(S4t>G5KH`({kmJKGO1ksoFA$%zjtfs_2t}F3rDszW0tcD z-RIXc5$p${=38{wMsa_Cf3^as0GB{#lI0Z!s$J8@Uma<^hHFs}q6N|~m4m>XgjYb| z?+gd$53sZ#`>!v76$$UkO=oxQGrSpU;G?6Y$5@#=XTq0_{_Gmwh1N16SwkYG-*Ikc z{fQ8}Mn~cFB?=5CxP@N3G-LpaAS&z!9pbp)vC%b3u+|=wV@z@*1ZB*olJa@rju7@9 ze=(+yT+2})(UQn6`S_}Ah~RgCPPj9ZfOE~AtKI^d)k@xPuSwEYk&vuWquj3CMc?@$RIiQ0pL7?VrA+NtHD4D3QRz zck3ta)Va{O!A4A1?5F*2%sbKGdLsPhA(U7lGyuhqcYB`@c25n`fiv)z1C8cAqa#;j<3QA$N#)15O?zEj z-l4u8&yjO?zQAqM=ED*6v?6p_h~}Zq7Dh4_0T#Q|O)FFF21~IKS6_AtGeU6)Rdpw+ zvMBz>W!xXD^TJ&PIJ;`U6HZC;_jPorL?;mq`6$^aa?N}`0XmEX8R%EH>tY`Nom%>$jRU6Q%Y8v$FZtc zF<*<=w?~mGbNK8Y!TAX>?|s8as&P!ByTkrF3012<|Hge7c$txyM&|mdNwQ9~(;FQ} zs>gX<@RjK63Y2Fg@|dKa>qsupL)K7Xy8mV`a&g0D#u_r;CU)(hk^ez#$l5}~JF4x? znYtbcx4yTC5SnD9c-h2S!Ragn1Yb}IS2Wf6vmtoBzNUFfcbq+%3R>@Ig6!2leb-O% z%tbPHwX+*Gj~+XOf$|D=r{031u3D(|72)rG0fsbLvS^^hOqiWj^3lvbo8VA}6;POn z;^Iq#E2(}Q-gI*_&F(KAmdZFRB@s43i6LkV6UIgOEc}~BxxT7!8sGhuzIgX?8PDTp@hg^}8;rio4~D&$G6^%R09!&4rMICg+1Go|lw4BCy0( zL|U4m?IiQ}+I-9v!bzndhWauzNvb&R_^Abm63ExlN5wbfNB%aK zSM65Ze{{XQ2qxbYqLk;);z24Fl-KBH(BXGZG=E0DNVaylw)vACZ2F#Z15ejQq8 zR%U)E`b>a)MI;Xn|9ef>+zJrgXSaM!eag8?ZHMmgd|3C5*}+|dPbFzGBDs`0`*;XB zHkl{VK8I_gtTsNSsEVuXKTaBd3Ec>P`zU?7I7Y8=Z!C*I7k|FOSmJJXDE3MAW2A$U zGU6!qWMc!^(sdJsHWMot+*ccX(mH~%YQ{*Pm@rbUT4%9T6(T+uVf>We-*W zlWFp-Z){dcTy$mLoiwd*Hi!?e=1rZ`rLYu$Dn)w3lU+X`Ae^SZi?8YfnGc5>{glAw z{1}G4u?yQ%=x(Y+Df5c5Y8(NAtM_OW{;(s(Tl26O)kY&^MgU_AV@#k|PZkJp-$X-1 zBRysdOY$tQ$v^CmCL!7sR3A3E?qk+-l*X+`B%w56?0w04c?|J50Z~~lGlVK~pFFc) z`^@{7DLm+bJfC$87~D}GS|ph52QHI96E#%M{FT~`Cm^cixF6im*FKk>Z> zqbSPj38TCjKHij@7r%GE=4}`R7CYanm44YzeKFD+vPDbi zNG2n7);-BcHA9&8R4D!YNUEBnFL;Y@&Cr;Ry5=;;80AtQP~c&5?Gx+^M*_FY7^(^g zy7-i7-b@v3CLFXztv>q;KPYOyTqVZs0Dc1tVBYfqkGi|Ea~hqPX~us zCbbtwg$(ZSUWL@{4Xq6Y2!lzuRgQYTlZ?Oocm3DEK-KN(o3P=WtRm&xXZ?=%_H?pw zNJ=o$*sPi5Qh+IBRBsk@_OMyYa66WlU|nBDe&V6!s7RvpaVIhE$oSNuPqE_>ykNi6 zT}bfqA(!lK9BhrKZajF4lCtI+4?AYOen75cnVQoeb2khd^XE)X9f>zX<(4;Bo7B_3 zb>^zwEejc89-}leq+QMO2HyqqbHj%Jwbhr{wut zg~Et1C!KsUmqg9E$7CQn&pjfY^B1NBD&r;_&ZK=5T%64 zXRUsGW~DhNlYYJ;V9)McmJ|`CxOpH)4|E4Q=d7kX&g(k*c(U!prBp54|K&&S!*@UIOo5 zzPx5coFned^x;R?IByA>B5$7ssk-U@^j6s6jYkkRGgT~Dw$6Bc*-(zV0ckJKYHqG$ z37oo@aw)2KD(w&b8Y+lr>bxb_5k{OsZbKI%t0qj;y`cwR1l+kEIlSdjKJ__AjO@h} zFxw!QVcjBBq?sh1n-VUCD-enoBi~r^J)b5Ewr8QqXgGS$RO4TrMba{g;Tyb@QgwZg zPhK+5IWKgBuO52wDR(Q8hJ5w6{#}Nmb1@EciJB*=?uSqCmCCSu;tj^BNLCY(ad)s` zCOTE;u7&aO&K~erc|V1c>m-6YKJ3oWvyP-}T>hRx+$_CYK0V=^gPZ+DSVGd+=Xj4E9#G!#@Yjci$BvNW*Y6Z@ zV3aa4U5xVV->p|w9S7;a7@C#i?aOtZ)t*t;zjzgCW7 zjKG5Y;%SOfHQrO5RVyiVh0Y91?~?_NA~Kr1H<=e;Sv-Ajl0K7eO_jBLW0ci7-%764 zfa!&wk&zP6+LI%O=o6!f%r`K-dD%{XoS-FB!@Kp$$3pWgYIdxcGTAVz1j5l zA*TUq{#^+qHwZNSx^c4mIr&sz}%Bxz_vuv=fP~f}qyPGQ!^NBJ1 z7J{b(_Pm3gm%~rhJsbR_xYg3xTTId{eBOROvOS)*%TS3q4^_AC0_Bai?Uo%xHJEf8aj#7G`Jr7SGqT*@F?jAj?!ZWMiQ-3i0&iIiF=lBk_@Y45b1(aZM&XQ7@?yct3QUH zoWJ$``(fJDpe}O5T6T*YSBY09#UruEC7suUM_1~uCJooi#xO-}-SfLGvoQ4nZGfjdK!x&FDo6U&d&-x6}3URjNUgesSuUl4PSQPjRP+6Bl42jS3DKk+8PKM zg=>L5sUIdTO3$Yf&I`$&SSbL&Z1PE5h#gP+Gn+C^3iB^y@*$^%@|rk85Yrv2gmyU@*vgq`{V+pT6!8Y+@mHC2#wt!0a+YhSnf zPF`Vul!}idM$KFmD3-PHkiWpK!R3H1f>6xeRv%7Kn8q@eI->z%&0LFFhz(6>Q}O$1 zb0!mP_CfXnslzbO5m>C|HI}Q5f6`%dl>pI5=NsYy-BlpnPbzFNkgJA+=@qGiejm1! zfI+^WAtNGebSes=CW?_oS()-KLM*mDXBjBMFcA)+>bLUq&klIZL6xFM@}5Q^pQ97% zycaEyrFRNV9RL!{B+fe4lq3g7+d}meCoN&^XNJ%@TKn{8r#7A_s+AJcg=Hs6i~>mS zzDQmZInS%M+a}xTwoDXFUhcclci@z)7G| zeKNTjwJ=*_8VMl#5k0fNHm%ID>s4y7VL@b|q0hlBah>}IR`j(#^GwyaacXUI0tO%I z4Yt6rAW5nN8nfG?*-X-|eMX5001pgH_$2nyAhQ@AM-p8giU@pCC<4rb|EL$|1@`n$ z?)0S2M@DX)3452UWSDPX_VDz3t%ZM-EFlRpxt{p^8TCpbvlyMY9!sBx?fATl@^+@; zwwQqIEsNAoLV^Wnp3Ju>Xl+loX2}hSJnQ_rpB4h=2d^m3GSiArBW)f&>96L|Pm{Mx z(XWZyXEt~iCxw&dXxTU(KgRb6wkt4GGitts{pN_FB^2a4{iCQ_e4F*twO2xICM5aU z>&>d1JVdFPE4?GCuF6#NJ=@R zet6JEPs_yN+s63&Qp555`VV{DLiXEOkzw~W7BA%M2{w+yv)hM%>YX=5HE~Lw$~1Vt za#$FNw3ZpII`#c95|dV)Mr2Q#Lk#PdJ7+2?;%q>MEl3+Z`kbb>OV-YZ?v)kMu|;#e zW%RTI2YM(z8CY1acChej~Fcdqwr4Ca@E#d3B1ThZnB=ajY6_hwh@4HJaQ`r^otjLq^I(RgT!an|zhzR%ij_;_4OVjnDmPdNItzm8`+X5l&c#<_b1GDn z>8KJK3^YT3U8zMyicgWMU47WDCnK97!u&JJXn+|s-A~DCMe}^-3_`QQ^WV}`e72qp zJL}Rbw=V^}Gk&~b&k3K-h@wO{RyZSUDAUg(H?Up#c2@s?y8Ft%HlO9~5G-i%(qh4( zK#{gMBv@&2m*Q3&iaUe?EmEXFA+)%=ySrPVNO6k06D;tgzjMCloWJ48t9kVNf|CJ6
NO~9y56L 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