From fae744cba595bfd5a5b8295fbb6fa72a453e1423 Mon Sep 17 00:00:00 2001
From: "andrey.daragan" <daragan.andrey@demlabs.net>
Date: Thu, 4 Oct 2018 17:45:40 +0300
Subject: [PATCH] [*] The draft has been amended.

---
 .gitmodules                                   |   4 +
 KelvinDashboardGUI/DapScreenDialog.cpp        |  15 +-
 KelvinDashboardGUI/DapScreenDialog.h          |  14 +-
 .../DapScreenDialogChangeWidget.cpp           |  15 +-
 .../DapScreenDialogChangeWidget.h             |  13 +-
 KelvinDashboardGUI/DapSettings.cpp            |   6 -
 KelvinDashboardGUI/DapSettings.h              |  17 --
 .../DapUiQmlScreenChangeWidget.qml            | 160 +++++++++++++++++-
 KelvinDashboardGUI/DapUiQmlScreenDialog.qml   |  57 +++----
 KelvinDashboardGUI/DapUiQmlWidget.cpp         |  47 ++++-
 KelvinDashboardGUI/DapUiQmlWidget.h           |  34 +++-
 .../DapUiQmlWidgetChainBallance.cpp           |   2 +-
 .../DapUiQmlWidgetChainBallance.h             |   3 +-
 .../DapUiQmlWidgetChainBlockExplorer.cpp      |   2 +-
 .../DapUiQmlWidgetChainBlockExplorer.h        |   2 +-
 .../DapUiQmlWidgetChainNodeLogs.cpp           |   2 +-
 .../DapUiQmlWidgetChainNodeLogs.h             |   2 +-
 .../DapUiQmlWidgetChainOperations.cpp         |   2 +-
 .../DapUiQmlWidgetChainOperations.h           |   2 +-
 .../DapUiQmlWidgetChainTransctions.cpp        |   2 +-
 .../DapUiQmlWidgetChainTransctions.h          |   2 +-
 .../DapUiQmlWidgetDelegateForm.ui.qml         |  38 ++++-
 KelvinDashboardGUI/DapUiQmlWidgetModel.cpp    |  94 +++++++++-
 KelvinDashboardGUI/DapUiQmlWidgetModel.h      |  48 +++++-
 KelvinDashboardGUI/KelvinDashboardGUI.pro     |  22 ++-
 KelvinDashboardGUI/Resources/Settings.json    |  12 ++
 .../Resources/modelWidgets.json               |   0
 KelvinDashboardGUI/main.cpp                   |  16 ++
 KelvinDashboardGUI/main.qml                   |  10 +-
 KelvinDashboardGUI/qml.qrc                    |   4 +-
 .../KelvinDashboardService.pro                |   3 +-
 Resources/Icons/add.png                       | Bin 68310 -> 0 bytes
 Resources/Icons/icon.ico                      | Bin 2462 -> 0 bytes
 Resources/Icons/icon.png                      | Bin 2671 -> 0 bytes
 libKelvinDashboardCommon/DapSettings.cpp      |  15 +-
 libKelvinDashboardCommon/DapSettings.h        |   9 +-
 .../DapSettingsCipher.cpp                     |  21 ++-
 libKelvinDashboardCommon/DapSettingsCipher.h  |  24 ++-
 .../libKelvinDashboardCommon.pri              |  10 +-
 39 files changed, 623 insertions(+), 106 deletions(-)
 delete mode 100644 KelvinDashboardGUI/DapSettings.cpp
 delete mode 100644 KelvinDashboardGUI/DapSettings.h
 create mode 100755 KelvinDashboardGUI/Resources/Settings.json
 delete mode 100755 KelvinDashboardGUI/Resources/modelWidgets.json
 delete mode 100644 Resources/Icons/add.png
 delete mode 100644 Resources/Icons/icon.ico
 delete mode 100644 Resources/Icons/icon.png

diff --git a/.gitmodules b/.gitmodules
index 963a78d..849c3bc 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,7 @@
+[submodule "libdap"]
+	path = libdap
+	url = https://github.com/kelvinblockchain/libdap.git
+	branch = master
 [submodule "libdap-qt-ui-qml"]
 	path = libdap-qt-ui-qml
 	url = git://github.com/kelvinblockchain/libdap-qt-ui-qml.git
diff --git a/KelvinDashboardGUI/DapScreenDialog.cpp b/KelvinDashboardGUI/DapScreenDialog.cpp
index 331417f..f044c66 100644
--- a/KelvinDashboardGUI/DapScreenDialog.cpp
+++ b/KelvinDashboardGUI/DapScreenDialog.cpp
@@ -2,5 +2,18 @@
 
 DapScreenDialog::DapScreenDialog(QObject *parent) : QObject(parent)
 {
-    
+    m_proxyModel = new QSortFilterProxyModel;
+    m_proxyModel->setSourceModel(&DapUiQmlWidgetModel::getInstance());
+    m_proxyModel->setFilterRegExp(QRegExp("true"));
+    m_proxyModel->setFilterRole(VisibleRole);
+}
+
+QSortFilterProxyModel *DapScreenDialog::proxyModel() const
+{
+    return m_proxyModel;
+}
+
+void DapScreenDialog::setProxyModel(QSortFilterProxyModel *proxyModel)
+{
+    m_proxyModel = proxyModel;
 }
diff --git a/KelvinDashboardGUI/DapScreenDialog.h b/KelvinDashboardGUI/DapScreenDialog.h
index 8735f73..0397948 100644
--- a/KelvinDashboardGUI/DapScreenDialog.h
+++ b/KelvinDashboardGUI/DapScreenDialog.h
@@ -2,16 +2,26 @@
 #define DAPSCREENDIALOG_H
 
 #include <QObject>
+#include <QSortFilterProxyModel>
+
+#include "DapUiQmlWidgetModel.h"
 
 class DapScreenDialog : public QObject
 {
     Q_OBJECT
+    
+    QSortFilterProxyModel   *m_proxyModel;
 public:
     explicit DapScreenDialog(QObject *parent = nullptr);
     
-signals:
+    Q_PROPERTY(QSortFilterProxyModel* ProxyModel MEMBER m_proxyModel READ proxyModel WRITE setProxyModel NOTIFY proxyModelChanged)
     
+    QSortFilterProxyModel *proxyModel() const;
+    void setProxyModel(QSortFilterProxyModel *proxyModel);
+    
+signals:
+    void proxyModelChanged(QSortFilterProxyModel *proxyModel);
 public slots:
 };
 
-#endif // DAPSCREENDIALOG_H
\ No newline at end of file
+#endif // DAPSCREENDIALOG_H
diff --git a/KelvinDashboardGUI/DapScreenDialogChangeWidget.cpp b/KelvinDashboardGUI/DapScreenDialogChangeWidget.cpp
index 5fbf402..ea0f064 100644
--- a/KelvinDashboardGUI/DapScreenDialogChangeWidget.cpp
+++ b/KelvinDashboardGUI/DapScreenDialogChangeWidget.cpp
@@ -2,5 +2,18 @@
 
 DapScreenDialogChangeWidget::DapScreenDialogChangeWidget(QObject *parent) : QObject(parent)
 {
-    
+    m_proxyModel = new QSortFilterProxyModel;
+    m_proxyModel->setSourceModel(&DapUiQmlWidgetModel::getInstance());
+    m_proxyModel->setFilterRegExp(QRegExp("false"));
+    m_proxyModel->setFilterRole(VisibleRole);
+}
+
+QSortFilterProxyModel *DapScreenDialogChangeWidget::proxyModel() const
+{
+    return m_proxyModel;
+}
+
+void DapScreenDialogChangeWidget::setProxyModel(QSortFilterProxyModel *proxyModel)
+{
+    m_proxyModel = proxyModel;
 }
diff --git a/KelvinDashboardGUI/DapScreenDialogChangeWidget.h b/KelvinDashboardGUI/DapScreenDialogChangeWidget.h
index fa0b39d..ed0d1da 100644
--- a/KelvinDashboardGUI/DapScreenDialogChangeWidget.h
+++ b/KelvinDashboardGUI/DapScreenDialogChangeWidget.h
@@ -2,16 +2,25 @@
 #define DAPSCREENDIALOGCHANGEWIDGET_H
 
 #include <QObject>
+#include <QSortFilterProxyModel>
+
+#include "DapUiQmlWidgetModel.h"
 
 class DapScreenDialogChangeWidget : public QObject
 {
     Q_OBJECT
+    
+    QSortFilterProxyModel   *m_proxyModel;
 public:
     explicit DapScreenDialogChangeWidget(QObject *parent = nullptr);
     
-signals:
+    Q_PROPERTY(QSortFilterProxyModel* ProxyModel MEMBER m_proxyModel READ proxyModel WRITE setProxyModel NOTIFY proxyModelChanged)
     
+    QSortFilterProxyModel *proxyModel() const;
+    void setProxyModel(QSortFilterProxyModel *proxyModel);
+signals:
+    void proxyModelChanged(QSortFilterProxyModel *proxyModel);
 public slots:
 };
 
-#endif // DAPSCREENDIALOGCHANGEWIDGET_H
\ No newline at end of file
+#endif // DAPSCREENDIALOGCHANGEWIDGET_H
diff --git a/KelvinDashboardGUI/DapSettings.cpp b/KelvinDashboardGUI/DapSettings.cpp
deleted file mode 100644
index 41fd5f3..0000000
--- a/KelvinDashboardGUI/DapSettings.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "DapSettings.h"
-
-DapSettings::DapSettings(QObject *parent) : QObject(parent)
-{
-    
-}
diff --git a/KelvinDashboardGUI/DapSettings.h b/KelvinDashboardGUI/DapSettings.h
deleted file mode 100644
index ee2b6a1..0000000
--- a/KelvinDashboardGUI/DapSettings.h
+++ /dev/null
@@ -1,17 +0,0 @@
-#ifndef DAPSETTINGS_H
-#define DAPSETTINGS_H
-
-#include <QObject>
-
-class DapSettings : public QObject
-{
-    Q_OBJECT
-public:
-    explicit DapSettings(QObject *parent = nullptr);
-    
-signals:
-    
-public slots:
-};
-
-#endif // DAPSETTINGS_H
\ No newline at end of file
diff --git a/KelvinDashboardGUI/DapUiQmlScreenChangeWidget.qml b/KelvinDashboardGUI/DapUiQmlScreenChangeWidget.qml
index 50cddec..26ffd16 100644
--- a/KelvinDashboardGUI/DapUiQmlScreenChangeWidget.qml
+++ b/KelvinDashboardGUI/DapUiQmlScreenChangeWidget.qml
@@ -1,4 +1,160 @@
-import QtQuick 2.4
+import QtQuick 2.9
+import QtQml 2.11
+import QtQuick.Controls 1.4
+import QtQuick.Controls 2.4
+import QtQuick.Layouts 1.2
+import QtQml.Models 2.2 
+import KelvinDashboard 1.0
 
-DapUiQmlScreenChangeWidgetForm {
+Dialog {
+    id: dialogChangeWidget
+    
+    function addWidget() {
+            dialogChangeWidget.open();
+        }
+    
+    width: parent.width/1.5
+    height: parent.width/1.5 
+    
+    x: parent.width / 2 - width / 2
+    y: parent.height / 2 - height / 2
+        
+    focus: true
+    modal: true
+    title: qsTr("Change widget...")
+    
+    contentItem: 
+        
+        Rectangle {
+        id: b
+        width: dialogChangeWidget.width
+        height: dialogChangeWidget.height
+        border.color: "gray"
+        clip: true
+        
+        DapScreenDialogChangeWidget {
+        id: widgetModel
+    }
+        
+//            DelegateModel {
+//                id: delegateModel
+                
+//                model: widgetModel.ProxyModel
+                
+//                groups: [
+//                            DelegateModelGroup { 
+//                        id: group
+//                        name: "selected" 
+//                    }
+//                        ]
+                
+//                delegate: 
+//        Rectangle {
+//                    id: item
+//                    height: text.height+10
+//                    width: listViewDapWidgets.width
+//                    RowLayout {
+//                        anchors.fill: parent
+                        
+//                        Text {
+//                            id: text
+//                            text: name
+//                            Layout.alignment: Qt.AlignVCenter
+//                            Layout.leftMargin: 10
+//                        }
+//                    }
+//                    MouseArea {
+//                        anchors.fill: parent
+//                        onClicked: 
+//                        {
+//                            item.DelegateModel.inSelected = !item.DelegateModel.inSelected
+                            
+//                            if (item.DelegateModel.inSelected)
+//                            {
+//                                item.color = "aliceblue"
+//                            }
+//                            else
+//                            {
+//                                item.color = "transparent"
+//                            }
+//                        }
+//                    }
+//                }
+//            }
+        
+//        ListView {
+            
+//            id: listViewDapWidgets
+            
+//            anchors.fill: parent
+            
+//            anchors.margins: 1
+            
+//            model: delegateModel
+            
+//            ScrollBar.vertical: ScrollBar { }
+//        }
+        ListView {
+            
+            id: listViewDapWidgets
+            
+            anchors.fill: parent
+            
+            anchors.margins: 1
+            
+            model: DapUiQmlWidgetModel
+            
+            clip: true
+            
+            delegate:         
+                Rectangle {
+                id: itemWidget
+                height: checkBoxWidget.height+10
+                width: listViewDapWidgets.width
+                Row {
+                    anchors.fill: parent
+                        
+                        CheckBox {
+                            id: checkBoxWidget
+                            checkable: true
+                            anchors.verticalCenter: parent.verticalCenter
+                            anchors.leftMargin: 10
+                        }
+
+                        Text 
+                        { 
+                            id: textWidget
+                            text: qsTr(name)
+                            anchors.verticalCenter: parent.verticalCenter
+                        }
+                    }
+                    
+                    MouseArea {
+                           anchors.fill: parent
+                           onClicked: 
+                           {
+                               listViewDapWidgets.currentIndex = index
+                               var item = DapUiQmlWidgetModel.get(index)
+                               DapUiQmlWidgetModel.set(index, DapUiQmlWidgetModel.get(index).name, DapUiQmlWidgetModel.get(index).URLpage, DapUiQmlWidgetModel.get(index).image, !item.visible)
+                               console.log("I: " +index + " : " + DapUiQmlWidgetModel.get(index) + " value = " + !item.visible)
+                               
+                               if(checkBoxWidget.checked)
+                               {
+                                    checkBoxWidget.checkState = Qt.Unchecked
+                               }
+                               else
+                               {
+                                   checkBoxWidget.checkState = Qt.Checked
+                               }
+                           }
+                       }
+                }
+                
+            ScrollBar.vertical: ScrollBar { }
+            
+            highlight: Rectangle { color: "aliceblue"; radius: 5 }
+            
+            focus: true
+        }
+    }
 }
diff --git a/KelvinDashboardGUI/DapUiQmlScreenDialog.qml b/KelvinDashboardGUI/DapUiQmlScreenDialog.qml
index a6d2226..b463f1a 100644
--- a/KelvinDashboardGUI/DapUiQmlScreenDialog.qml
+++ b/KelvinDashboardGUI/DapUiQmlScreenDialog.qml
@@ -1,63 +1,60 @@
 import QtQuick 2.9
 import QtQuick.Controls 2.4
+import KelvinDashboard 1.0
 
 Page {
     id: dapUiQmlScreenDialog
     title: qsTr("Dashboard")
     anchors.fill: parent
     
+    DapUiQmlScreenChangeWidget {
+            id: listViewDapWidgets
+        }
+    
+    DapScreenDialog {
+                    id: widgetModel
+                }
+    
     Rectangle {
         color: "white"
         anchors.fill: parent
         
         GridView {
             id: gridViewDashboard
+            
+            signal pressAndHold(int index) 
+            
             anchors.fill: parent
             cellWidth: width/3; cellHeight: height/2
             focus: true
-            model: DapUiQmlListModelWidgets {}
+            model: widgetModel.ProxyModel
     
             highlight: Rectangle { width: gridViewDashboard.cellWidth; height: gridViewDashboard.cellHeight; radius: width/50; color: "aliceblue" }
     
-            delegate: Item {
+            delegate: DapUiQmlWidgetDelegateForm {
                 width: gridViewDashboard.cellWidth
                 height: gridViewDashboard.cellHeight
-    Rectangle {
-        anchors.fill: parent
-        border.color: "grey"
-        color: "transparent"
-        radius: width/50
-        anchors.margins: 5
-        clip: true
-        
-        Column {
-            width: parent.width
-            anchors.centerIn: parent
-            spacing: width / 10
-            anchors.margins: width / 10
-                Image {
-                    id: iconWidget
-                    source: "qrc:/Resources/Icons/add.png"
-                    width: parent.width * 2/3
-                    height: width
-                    anchors.horizontalCenter: parent.horizontalCenter
-                }
-                Text {
-                    text: name
-                    color: "darkgrey"
-                    anchors.horizontalCenter: parent.horizontalCenter
-                }
-        }
-    }
+    
                 MouseArea {
                     anchors.fill: parent
                     onClicked: 
                     {
                         parent.GridView.view.currentIndex = index;
-                        stackView.push(Qt.resolvedUrl(page), StackView.Immediate);
+                        stackView.push(Qt.resolvedUrl(URLpage), StackView.Immediate);
                     }
                 }
             }
         }
     }
+    
+    RoundButton {
+           text: qsTr("+")
+           highlighted: true
+           anchors.margins: 10
+           anchors.right: parent.right
+           anchors.bottom: parent.bottom
+           onClicked: {
+                       listViewDapWidgets.addWidget()
+                   }
+       }
 }
diff --git a/KelvinDashboardGUI/DapUiQmlWidget.cpp b/KelvinDashboardGUI/DapUiQmlWidget.cpp
index c4c090c..5502b82 100644
--- a/KelvinDashboardGUI/DapUiQmlWidget.cpp
+++ b/KelvinDashboardGUI/DapUiQmlWidget.cpp
@@ -1,6 +1,49 @@
 #include "DapUiQmlWidget.h"
 
-DapUiQmlWidget::DapUiQmlWidget(QObject *parent) : QObject(parent)
+bool DapUiQmlWidget::getVisible() const
 {
-    
+    return m_visible;
+}
+
+void DapUiQmlWidget::setVisible(bool visible)
+{
+    m_visible = visible;
+}
+
+DapUiQmlWidget::DapUiQmlWidget(const QString &name, const QString &URLpage, const QString &image, const bool &visible, QObject *parent) : QObject(parent)
+{
+    setName(name);
+    setURLpage(URLpage);
+    setImage(image);
+    setVisible(visible);
+}
+
+QString DapUiQmlWidget::getName() const
+{
+    return m_name;
+}
+
+void DapUiQmlWidget::setName(const QString &name)
+{
+    m_name = name;
+}
+
+QString DapUiQmlWidget::getURLpage() const
+{
+    return m_URLpage;
+}
+
+void DapUiQmlWidget::setURLpage(const QString &URLpage)
+{
+    m_URLpage = URLpage;
+}
+
+QString DapUiQmlWidget::getImage() const
+{
+    return m_image;
+}
+
+void DapUiQmlWidget::setImage(const QString &image)
+{
+    m_image = image;
 }
diff --git a/KelvinDashboardGUI/DapUiQmlWidget.h b/KelvinDashboardGUI/DapUiQmlWidget.h
index 9c6df7e..d321690 100644
--- a/KelvinDashboardGUI/DapUiQmlWidget.h
+++ b/KelvinDashboardGUI/DapUiQmlWidget.h
@@ -6,12 +6,44 @@
 class DapUiQmlWidget : public QObject
 {
     Q_OBJECT
+    
+protected:
+    QString     m_name;
+    QString     m_URLpage;
+    QString     m_image;
+    bool        m_visible{false};
 public:
     explicit DapUiQmlWidget(QObject *parent = nullptr);
+    explicit DapUiQmlWidget(const QString &name, const QString &URLpage, const QString &image, const bool &visible  = false, QObject *parent = nullptr);
+    
+    /// 
+    Q_PROPERTY(QString Name MEMBER m_nameService READ getName WRITE setName NOTIFY nameChanged)
+    /// 
+    Q_PROPERTY(QString URLpage MEMBER m_nameService READ getURLpage WRITE setURLpage NOTIFY URLpageChanged)
+    /// 
+    Q_PROPERTY(QString Image MEMBER m_nameService READ getImage WRITE setImage NOTIFY imageChanged)
+    /// 
+    Q_PROPERTY(bool Visible MEMBER m_nameService READ getVisible WRITE setVisible NOTIFY visibleChanged)
+    
+    QString getName() const;
+    void setName(const QString &name);
+    
+    QString getURLpage() const;
+    void setURLpage(const QString &URLpage);
+    
+    QString getImage() const;
+    void setImage(const QString &image);
+    
+    bool getVisible() const;
+    void setVisible(bool visible);
     
 signals:
+    void nameChanged(const QString &name);
+    void URLpageChanged(const QString &URLpage);
+    void imageChanged(const QString &image);
+    void visibleChanged(const bool &visible);
     
 public slots:
 };
 
-#endif // DAPUIQMLWIDGET_H
\ No newline at end of file
+#endif // DAPUIQMLWIDGET_H
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetChainBallance.cpp b/KelvinDashboardGUI/DapUiQmlWidgetChainBallance.cpp
index 68da317..4a7b823 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetChainBallance.cpp
+++ b/KelvinDashboardGUI/DapUiQmlWidgetChainBallance.cpp
@@ -1,6 +1,6 @@
 #include "DapUiQmlWidgetChainBallance.h"
 
-DapUiQmlWidgetChainBallance::DapUiQmlWidgetChainBallance()
+DapUiQmlWidgetChainBallance::DapUiQmlWidgetChainBallance(const QString &name, const QString &URLpage, const QString &image) : DapUiQmlWidget(name, URLpage, image)
 {
     
 }
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetChainBallance.h b/KelvinDashboardGUI/DapUiQmlWidgetChainBallance.h
index be72395..aea12f5 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetChainBallance.h
+++ b/KelvinDashboardGUI/DapUiQmlWidgetChainBallance.h
@@ -6,7 +6,8 @@
 class DapUiQmlWidgetChainBallance : public DapUiQmlWidget
 {
 public:
-    DapUiQmlWidgetChainBallance();
+    explicit DapUiQmlWidgetChainBallance(const QString &name, const QString &URLpage, const QString &image); 
+        
 };
 
 #endif // DAPUIQMLWIDGETCHAINBALLANCE_H
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetChainBlockExplorer.cpp b/KelvinDashboardGUI/DapUiQmlWidgetChainBlockExplorer.cpp
index 28ce99b..c125c66 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetChainBlockExplorer.cpp
+++ b/KelvinDashboardGUI/DapUiQmlWidgetChainBlockExplorer.cpp
@@ -1,6 +1,6 @@
 #include "DapUiQmlWidgetChainBlockExplorer.h"
 
-DapUiQmlWidgetChainBlockExplorer::DapUiQmlWidgetChainBlockExplorer()
+DapUiQmlWidgetChainBlockExplorer::DapUiQmlWidgetChainBlockExplorer(const QString &name, const QString &URLpage, const QString &image) : DapUiQmlWidget(name, URLpage, image)
 {
     
 }
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetChainBlockExplorer.h b/KelvinDashboardGUI/DapUiQmlWidgetChainBlockExplorer.h
index dfcb588..135d4ff 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetChainBlockExplorer.h
+++ b/KelvinDashboardGUI/DapUiQmlWidgetChainBlockExplorer.h
@@ -6,7 +6,7 @@
 class DapUiQmlWidgetChainBlockExplorer : public DapUiQmlWidget
 {
 public:
-    DapUiQmlWidgetChainBlockExplorer();
+    DapUiQmlWidgetChainBlockExplorer(const QString &name, const QString &URLpage, const QString &image);
 };
 
 #endif // DAPUIQMLWIDGETCHAINBLOCKEXPLORER_H
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetChainNodeLogs.cpp b/KelvinDashboardGUI/DapUiQmlWidgetChainNodeLogs.cpp
index 36ef984..0dae383 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetChainNodeLogs.cpp
+++ b/KelvinDashboardGUI/DapUiQmlWidgetChainNodeLogs.cpp
@@ -1,6 +1,6 @@
 #include "DapUiQmlWidgetChainNodeLogs.h"
 
-DapUiQmlWidgetChainNodeLogs::DapUiQmlWidgetChainNodeLogs()
+DapUiQmlWidgetChainNodeLogs::DapUiQmlWidgetChainNodeLogs(const QString &name, const QString &URLpage, const QString &image) : DapUiQmlWidget(name, URLpage, image)
 {
     
 }
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetChainNodeLogs.h b/KelvinDashboardGUI/DapUiQmlWidgetChainNodeLogs.h
index 07123eb..debcc44 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetChainNodeLogs.h
+++ b/KelvinDashboardGUI/DapUiQmlWidgetChainNodeLogs.h
@@ -6,7 +6,7 @@
 class DapUiQmlWidgetChainNodeLogs : public DapUiQmlWidget
 {
 public:
-    DapUiQmlWidgetChainNodeLogs();
+    explicit DapUiQmlWidgetChainNodeLogs(const QString &name, const QString &URLpage, const QString &image);
 };
 
 #endif // DAPUIQMLWIDGETCHAINNODELOGS_H
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetChainOperations.cpp b/KelvinDashboardGUI/DapUiQmlWidgetChainOperations.cpp
index 2aff613..1c22b73 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetChainOperations.cpp
+++ b/KelvinDashboardGUI/DapUiQmlWidgetChainOperations.cpp
@@ -1,6 +1,6 @@
 #include "DapUiQmlWidgetChainOperations.h"
 
-DapUiQmlWidgeChainOperations::DapUiQmlWidgeChainOperations()
+DapUiQmlWidgeChainOperations::DapUiQmlWidgeChainOperations(const QString &name, const QString &URLpage, const QString &image) : DapUiQmlWidget(name, URLpage, image)
 {
     
 }
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetChainOperations.h b/KelvinDashboardGUI/DapUiQmlWidgetChainOperations.h
index 4587783..25d25fe 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetChainOperations.h
+++ b/KelvinDashboardGUI/DapUiQmlWidgetChainOperations.h
@@ -6,7 +6,7 @@
 class DapUiQmlWidgeChainOperations : public DapUiQmlWidget
 {
 public:
-    DapUiQmlWidgeChainOperations();
+    explicit DapUiQmlWidgeChainOperations(const QString &name, const QString &URLpage, const QString &image);
 };
 
 #endif // DAPUIQMLWIDGECHAINOPERATIONS_H
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetChainTransctions.cpp b/KelvinDashboardGUI/DapUiQmlWidgetChainTransctions.cpp
index 654f78d..df9441b 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetChainTransctions.cpp
+++ b/KelvinDashboardGUI/DapUiQmlWidgetChainTransctions.cpp
@@ -1,6 +1,6 @@
 #include "DapUiQmlWidgetChainTransctions.h"
 
-DapUiQmlWidgetChainTransctions::DapUiQmlWidgetChainTransctions()
+DapUiQmlWidgetChainTransctions::DapUiQmlWidgetChainTransctions(const QString &name, const QString &URLpage, const QString &image) : DapUiQmlWidget(name, URLpage, image)
 {
     
 }
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetChainTransctions.h b/KelvinDashboardGUI/DapUiQmlWidgetChainTransctions.h
index 2595d04..3fe4c1a 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetChainTransctions.h
+++ b/KelvinDashboardGUI/DapUiQmlWidgetChainTransctions.h
@@ -6,7 +6,7 @@
 class DapUiQmlWidgetChainTransctions : public DapUiQmlWidget
 {
 public:
-    DapUiQmlWidgetChainTransctions();
+    explicit DapUiQmlWidgetChainTransctions(const QString &name, const QString &URLpage, const QString &image);
 };
 
 #endif // DAPUIQMLWIDGETCHAINTRANSCTIONS_H
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetDelegateForm.ui.qml b/KelvinDashboardGUI/DapUiQmlWidgetDelegateForm.ui.qml
index 96a8ae4..638d3db 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetDelegateForm.ui.qml
+++ b/KelvinDashboardGUI/DapUiQmlWidgetDelegateForm.ui.qml
@@ -1,6 +1,36 @@
-import QtQuick 2.4
+import QtQuick 2.7
+import QtQuick.Controls 2.1
 
-Item {
-    width: 400
-    height: 400
+ItemDelegate {
+    id: itemDelegateDapWidget
+    
+    checkable: true
+    
+    contentItem: Rectangle {
+        anchors.fill: parent
+        border.color: "grey"
+        color: "transparent"
+        radius: width/50
+        anchors.margins: 5
+        clip: true
+        
+        Column {
+            width: parent.width
+            anchors.centerIn: parent
+            spacing: width / 10
+            anchors.margins: width / 10
+                Image {
+                    id: iconWidget
+                    source: image
+                    width: parent.width * 2/3
+                    height: width
+                    anchors.horizontalCenter: parent.horizontalCenter
+                }
+                Text {
+                    text: name
+                    color: "darkgrey"
+                    anchors.horizontalCenter: parent.horizontalCenter
+                }
+        }
+    }
 }
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetModel.cpp b/KelvinDashboardGUI/DapUiQmlWidgetModel.cpp
index 4061299..2f8cef3 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetModel.cpp
+++ b/KelvinDashboardGUI/DapUiQmlWidgetModel.cpp
@@ -1,6 +1,98 @@
 #include "DapUiQmlWidgetModel.h"
 
-DapUiQmlWidgetModel::DapUiQmlWidgetModel()
+DapUiQmlWidgetModel::DapUiQmlWidgetModel(QObject *parent) : QAbstractListModel(parent)
 {
+    m_dapUiQmlWidgets.append(new DapUiQmlWidget("Blockchain explorer", "DapUiQmlWidgetChainBlockExplorer.ui.qml", "qrc:/Resources/Icons/add.png"));
+    m_dapUiQmlWidgets.append(new DapUiQmlWidget( "Exchanges", "DapUiQmlWidgetChainExchanges.ui.qml", "qrc:/Resources/Icons/add.png"));
+    m_dapUiQmlWidgets.append(new DapUiQmlWidget( "Services client", "DapUiQmlWidgetChainServicesClient.ui.qml", "qrc:/Resources/Icons/add.png"));
+    m_dapUiQmlWidgets.append(new DapUiQmlWidget( "Services share control", "DapUiQmlWidgetChainServicesShareControl.ui.qml", "qrc:/Resources/Icons/add.png"));
+    m_dapUiQmlWidgets.append(new DapUiQmlWidget( "Settings", "DapUiQmlWidgetChainSettings.ui.qml", "qrc:/Resources/Icons/add.png"));
+    m_dapUiQmlWidgets.append(new DapUiQmlWidget( "Wallet", "DapUiQmlWidgetChainWallet.ui.qml", "qrc:/Resources/Icons/add.png"));
+}
+
+DapUiQmlWidgetModel &DapUiQmlWidgetModel::getInstance()
+{
+    static DapUiQmlWidgetModel instance;
+    return instance;
+}
+
+int DapUiQmlWidgetModel::rowCount(const QModelIndex &) const
+{
+    return m_dapUiQmlWidgets.count();
+}
+
+QVariant DapUiQmlWidgetModel::data(const QModelIndex &index, int role) const
+{
+    if (index.row() < rowCount())
+            switch (role) {
+            case NameRole: return m_dapUiQmlWidgets.at(index.row())->getName();
+            case URLPageRole: return m_dapUiQmlWidgets.at(index.row())->getURLpage();
+            case ImageRole: return m_dapUiQmlWidgets.at(index.row())->getImage();
+            case VisibleRole: return m_dapUiQmlWidgets.at(index.row())->getVisible();
+            default: 
+                return QVariant();
+        }
+    return QVariant();
+}
+
+QHash<int, QByteArray> DapUiQmlWidgetModel::roleNames() const
+{
+    static const QHash<int, QByteArray> roles {
+            { NameRole, "name" },
+            { URLPageRole, "URLpage" },
+            { ImageRole, "image" },
+            { VisibleRole, "visible" }
+        };
+    
+    return roles;
+}
+
+QVariantMap DapUiQmlWidgetModel::get(int row) const
+{
+    const DapUiQmlWidget *widget = m_dapUiQmlWidgets.value(row);
+    return { {"name", widget->getName()}, {"URLpage", widget->getURLpage()}, {"image", widget->getImage()}, {"visible", widget->getVisible()} };
+}
+
+void DapUiQmlWidgetModel::append(const QString &name, const QString &URLpage, const QString &image, const bool &visible)
+{
+    int row = 0;
+    while (row < m_dapUiQmlWidgets.count() && name > m_dapUiQmlWidgets.at(row)->getName())
+        ++row;
+    beginInsertRows(QModelIndex(), row, row);
+    m_dapUiQmlWidgets.insert(row, new DapUiQmlWidget(name, URLpage, image, visible));
+    endInsertRows();
+}
+
+void DapUiQmlWidgetModel::set(int row, const QString &name, const QString &URLpage, const QString &image, const bool &visible)
+{
+    if (row < 0 || row >= m_dapUiQmlWidgets.count())
+            return;
+    
+        DapUiQmlWidget *widget = m_dapUiQmlWidgets.value(row);
+        widget->setName(name);
+        widget->setURLpage(URLpage);
+        widget->setImage(image);
+        widget->setVisible(visible);
+        dataChanged(index(row, 0), index(row, 0), { NameRole, URLPageRole, ImageRole, VisibleRole });
+}
+
+void DapUiQmlWidgetModel::remove(int row)
+{
+    if (row < 0 || row >= m_dapUiQmlWidgets.count())
+            return;
+    
+        beginRemoveRows(QModelIndex(), row, row);
+        m_dapUiQmlWidgets.removeAt(row);
+        endRemoveRows();
+}
+
+/// Method that implements the singleton pattern for the qml layer.
+/// @param engine QML application.
+/// @param scriptEngine The QJSEngine class provides an environment for evaluating JavaScript code.
+QObject *DapUiQmlWidgetModel::singletonProvider(QQmlEngine *engine, QJSEngine *scriptEngine)
+{
+    Q_UNUSED(engine)
+    Q_UNUSED(scriptEngine)
     
+    return &getInstance();
 }
diff --git a/KelvinDashboardGUI/DapUiQmlWidgetModel.h b/KelvinDashboardGUI/DapUiQmlWidgetModel.h
index 41d5b30..9613864 100644
--- a/KelvinDashboardGUI/DapUiQmlWidgetModel.h
+++ b/KelvinDashboardGUI/DapUiQmlWidgetModel.h
@@ -2,11 +2,53 @@
 #define DAPUIQMLWIDGETMODEL_H
 
 #include <QObject>
+#include <QAbstractListModel>
+#include <QList>
+#include <QQmlEngine>
+#include <QJSEngine>
+#include <QXmlStreamWriter>
+#include <QXmlStreamReader>
+#include <QXmlStreamAttribute>
 
-class DapUiQmlWidgetModel : public QAbstractItemModel
+#include "DapUiQmlWidget.h"
+
+enum DapUiQmlWidgetRole {
+        NameRole = Qt::DisplayRole,
+        URLPageRole = Qt::UserRole,
+        ImageRole,
+        VisibleRole
+    };
+
+class DapUiQmlWidgetModel : public QAbstractListModel
 {
+    Q_OBJECT
+    
+    QList<DapUiQmlWidget*>    m_dapUiQmlWidgets;
+    
+    DapUiQmlWidgetModel(QObject *parent = nullptr);
 public:
-    DapUiQmlWidgetModel();
+    
+    /// Get an instance of a class.
+    /// @return Instance of a class.
+    Q_INVOKABLE static DapUiQmlWidgetModel &getInstance();
+    
+    
+    Q_ENUM(DapUiQmlWidgetRole)
+    
+    int rowCount(const QModelIndex & = QModelIndex()) const;
+    QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
+    QHash<int, QByteArray> roleNames() const;
+        
+    Q_INVOKABLE QVariantMap get(int row) const;
+    Q_INVOKABLE void append(const QString &name, const QString &URLpage, const QString  &image, const bool &visible);
+    Q_INVOKABLE void set(int row, const QString &name, const QString &URLpage, const QString  &image, const bool &visible);
+    Q_INVOKABLE void remove(int row);
+    
+public slots:
+    /// Method that implements the singleton pattern for the qml layer.
+    /// @param engine QML application.
+    /// @param scriptEngine The QJSEngine class provides an environment for evaluating JavaScript code.
+    static QObject *singletonProvider(QQmlEngine *engine, QJSEngine *scriptEngine);
 };
 
-#endif // DAPUIQMLWIDGETMODEL_H
\ No newline at end of file
+#endif // DAPUIQMLWIDGETMODEL_H
diff --git a/KelvinDashboardGUI/KelvinDashboardGUI.pro b/KelvinDashboardGUI/KelvinDashboardGUI.pro
index df8eb7c..592c6e8 100644
--- a/KelvinDashboardGUI/KelvinDashboardGUI.pro
+++ b/KelvinDashboardGUI/KelvinDashboardGUI.pro
@@ -38,15 +38,17 @@ ICON = icon.ico
 
 SOURCES += \
         main.cpp \
-    DapUiQmlWidget.cpp \
     DapUiQmlWidgetChainBallance.cpp \
-    DapUiQmlScreenDialog.cpp \
     DapUiQmlWidgetChainBlockExplorer.cpp \
     DapUiQmlWidgetChainNodeLogs.cpp \
     DapUiQmlWidgetChainTransctions.cpp \
     DapUiQmlWidgetChainOperations.cpp \
     DapScreenLogin.cpp \
-    DapClient.cpp
+    DapClient.cpp \
+    DapUiQmlWidgetModel.cpp \
+    DapUiQmlWidget.cpp \
+    DapScreenDialog.cpp \
+    DapScreenDialogChangeWidget.cpp
 
 RESOURCES += qml.qrc
 
@@ -62,16 +64,22 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin
 !isEmpty(target.path): INSTALLS += target
 
 HEADERS += \
-    DapUiQmlWidget.h \
     DapUiQmlWidgetChainBallance.h \
     DapUiQmlWidgetChainBlockExplorer.h \
     DapUiQmlWidgetChainNodeLogs.h \
     DapUiQmlWidgetChainTransctions.h \
     DapUiQmlScreenDashboard.h \
     DapUiQmlWidgetChainOperations.h \
-    DapScreenDialog.h \
     DapScreenLogin.h \
-    DapClient.h
+    DapClient.h \
+    DapUiQmlWidgetModel.h \
+    DapUiQmlWidget.h \
+    DapScreenDialog.h \
+    DapScreenDialogChangeWidget.h
+
 
 include (../libKelvinDashboardCommon/libKelvinDashboardCommon.pri)
-INCLUDEPATH += $$_PRO_FILE_PWD_/../libKelvinDashboardCommon/
+INCLUDEPATH += $$_PRO_FILE_PWD_/../libKelvinDashboardCommon/;
+	       $$_PRO_FILE_PWD_/../libdap/
+
+DISTFILES +=
diff --git a/KelvinDashboardGUI/Resources/Settings.json b/KelvinDashboardGUI/Resources/Settings.json
new file mode 100755
index 0000000..e3729e3
--- /dev/null
+++ b/KelvinDashboardGUI/Resources/Settings.json
@@ -0,0 +1,12 @@
+    {
+      "user": "Andrey",
+      "widgets":
+	[
+		{"name": "Blockchain explorer", "URLpage": "DapUiQmlWidgetChainBlockExplorer.ui.qml", "image": "qrc:/Resources/Icons/add.png", "visible": "false"},
+		{"name": "Exchanges", "URLpage": "DapUiQmlWidgetChainExchanges.ui.qml", "image": "qrc:/Resources/Icons/add.png", "visible": "false"},
+		{"name": "Services client", "URLpage": "DapUiQmlWidgetChainServicesClient.ui.qml", "image": "qrc:/Resources/Icons/add.png", "visible": "false"},
+		{"name": "Services share control", "URLpage": "DapUiQmlWidgetChainServicesShareControl.ui.qml", "image": "qrc:/Resources/Icons/add.png", "visible": "false"},
+		{"name": "Settings", "URLpage": "DapUiQmlWidgetChainSettings.ui.qml", "image": "qrc:/Resources/Icons/add.png", "visible": "false"},
+		{"name": "Wallet", "URLpage": "DapUiQmlWidgetChainWallet.ui.qml", "image": "qrc:/Resources/Icons/add.png", "visible": "false"}
+        ]
+    }
diff --git a/KelvinDashboardGUI/Resources/modelWidgets.json b/KelvinDashboardGUI/Resources/modelWidgets.json
deleted file mode 100755
index e69de29..0000000
diff --git a/KelvinDashboardGUI/main.cpp b/KelvinDashboardGUI/main.cpp
index e60dff5..ac42f11 100644
--- a/KelvinDashboardGUI/main.cpp
+++ b/KelvinDashboardGUI/main.cpp
@@ -10,6 +10,11 @@
 #include "DapHalper.h"
 #include "DapClient.h"
 #include "DapScreenLogin.h"
+#include "DapScreenDialog.h"
+#include "DapScreenDialogChangeWidget.h"
+#include "DapUiQmlWidgetModel.h"
+#include "DapSettings.h"
+#include "DapSettingsCipher.h"
 
 int main(int argc, char *argv[])
 {
@@ -41,12 +46,23 @@ int main(int argc, char *argv[])
     DapClient::getInstance().connectToService("Kelvin Client");
     
     qmlRegisterType<DapScreenLogin>("KelvinDashboard", 1, 0, "DapScreenLogin");
+    qmlRegisterType<DapScreenDialog>("KelvinDashboard", 1, 0, "DapScreenDialog");
+    qmlRegisterType<DapScreenDialogChangeWidget>("KelvinDashboard", 1, 0, "DapScreenDialogChangeWidget");
     qmlRegisterSingletonType<DapClient>("KelvinDashboard", 1, 0, "DapClient", DapClient::singletonProvider);
+    qmlRegisterSingletonType<DapUiQmlWidgetModel>("KelvinDashboard", 1, 0, "DapUiQmlWidgetModel", DapUiQmlWidgetModel::singletonProvider);
     
     QQmlApplicationEngine engine;
     engine.rootContext()->setContextProperty("dapClient", &DapClient::getInstance());
     engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
     
+    DapSettings &settings = DapSettings::getInstance("Settings.json");
+    DapSettingsCipher &set = DapSettingsCipher::getInstance(settings);
+    qDebug() << "Settings file name: " << set.getFileName();
+    set.setKeyValue("user", "Vasy");
+    bool f = false;
+    set.setGroupPropertyValue("widgets", "name", "Services client", "visible", f);
+    qDebug() << set.getGroupPropertyValue("widgets", "name", "Services client", "visible").toBool();
+    qDebug() << set.getKeyValue("user");
     
     if (engine.rootObjects().isEmpty())
         return -1;
diff --git a/KelvinDashboardGUI/main.qml b/KelvinDashboardGUI/main.qml
index d4cb179..f80a6ed 100644
--- a/KelvinDashboardGUI/main.qml
+++ b/KelvinDashboardGUI/main.qml
@@ -4,6 +4,7 @@ import QtQuick.Controls 2.4
 import QtQuick.Window 2.0
 import QtQuick.Controls.Styles 1.4
 import Qt.labs.platform 1.0
+import KelvinDashboard 1.0
 
 ApplicationWindow {
     id: window
@@ -102,11 +103,7 @@ ApplicationWindow {
         ListView {
             id: listViewMenu
             anchors.fill: parent
-            model: listModelMenu
-            
-            DapUiQmlListModelWidgets {
-                id: listModelMenu
-            }
+            model: DapUiQmlWidgetModel
 
             delegate: 
                 Component {
@@ -133,12 +130,13 @@ ApplicationWindow {
                                onClicked: 
                                {
                                    listViewMenu.currentIndex = index
-                                   stackView.push(Qt.resolvedUrl(page), StackView.Immediate)
+                                   stackView.push(Qt.resolvedUrl(URLpage), StackView.Immediate)
                                    drawerMenu.close()
                                }
                            }
                         }
                     }
+            
             highlight: Rectangle { color: "aliceblue"; radius: 5 }
             focus: true
         }
diff --git a/KelvinDashboardGUI/qml.qrc b/KelvinDashboardGUI/qml.qrc
index 175c215..259fa38 100644
--- a/KelvinDashboardGUI/qml.qrc
+++ b/KelvinDashboardGUI/qml.qrc
@@ -14,12 +14,14 @@
         <file>DapUiQmlScreenDialog.qml</file>
         <file>Resources/Icons/icon.png</file>
         <file>Resources/Icons/icon.ico</file>
-        <file>DapUiQmlListModelWidgets.qml</file>
         <file>Resources/Icons/add.png</file>
         <file>DapQmlScreenLogin.qml</file>
         <file>DapUiQmlScreenAbout.ui.qml</file>
         <file>DapQmlScreenAbout.qml</file>
         <file>Resources/Icons/iconErrorNetwork.png</file>
         <file>Resources/Icons/iconNetwork.png</file>
+        <file>DapUiQmlWidgetDelegate.qml</file>
+        <file>DapUiQmlWidgetDelegateForm.ui.qml</file>
+        <file>DapUiQmlScreenChangeWidget.qml</file>
     </qresource>
 </RCC>
diff --git a/KelvinDashboardService/KelvinDashboardService.pro b/KelvinDashboardService/KelvinDashboardService.pro
index 8f5f5c1..3448c2f 100644
--- a/KelvinDashboardService/KelvinDashboardService.pro
+++ b/KelvinDashboardService/KelvinDashboardService.pro
@@ -49,7 +49,8 @@ HEADERS += \
     DapChainNodeCache.h
 
 include (../libKelvinDashboardCommon/libKelvinDashboardCommon.pri)
-INCLUDEPATH += $$_PRO_FILE_PWD_/../libKelvinDashboardCommon/
+INCLUDEPATH += $$_PRO_FILE_PWD_/../libKelvinDashboardCommon/;
+	       $$_PRO_FILE_PWD_/../libdap/
 
 RESOURCES += \
     KelvinDashboardService.qrc
diff --git a/Resources/Icons/add.png b/Resources/Icons/add.png
deleted file mode 100644
index f3c75ff7cc06fe9833492a80f6bd7ddcfefe3072..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 68310
zcmcFqWm6nXv&G%rLVyI_CAbAAxH}63SzLn?0t9#04G<)_EwDgvU)&+MySqEw=lv0P
zK2CMbRCS;3In#3{Qe9OJ7mErD0RaJ5L0(!D0RaVufPl1*f&AZ$$>p;V0s>-yy0W&6
zoU^hHSG2~`p2FbTZw7}_j)b?jH<)0h`pk~z=th!2vD)W2Wrs42wF8ab6}9x928D(^
zR-gTcC(W=X#qmw0uesOHug+Yl5ZbQ`HxI$w*-v**`oO3Ja<!!GQyZm>XxHk3owM4q
ziRk4+&BBrI3;UX|f5TUI1|o^QjSKT5+YKjI3Uk}z3FA(X?y{rHzSG-Qs}8M}dFzEe
zm_}+M?BCPnBh<crfA+|Hd~+zKDM`KTYWu=#^Z4t`c2)NZ{CkDS<YvEXe_~p1gISK@
z(%$~?UVPu`cF&Uh$KYb|fW_j4h0W82`ekR>WYx@`=fqY|?$}(xK>yr+!}j^&@y)=<
z=9kumwu{@7rE`bw6_@wPLIyeFVNF9@XWPx&LOfBMEsL2lkky)r{P*!D>xYt5z85RU
zSF2acEgSmOVKN27vao-`MI)M9N54q}Av7kJ7k3q@eJ+N1w@0^1@~N)hpkqC&M~Bzx
zVJ)|}Ps);s1Lf0un`cXN2hT5WD!!M9|Ahq6T~k#HL1K5_3IP!lML}9p+spWPqyaa8
z69EC%nyDB*mk3G#4JLGnb><TPXaD~^HWM%NcYKY(AOxSKL;G~^Oayx%qo<hGi_O&;
z@w(OCsR6ZKJud>s8U;nDd4!8p18$+wJMJX39)k1LKr|7$G?-++Sgd*X0dCXsoo3<3
z)aj(xNA1*i{qK`H@;DEyL|y1s*qIN0|I!<-bKvRb24+aO(R6)>(X67;hlE(#0D-xz
zgnKH?WKtM~a4+z}1VPu2t;kRUsZdKOjD(8Ns+Gzotd>4R-2xh!i;21A;UGvYg~4Tx
z8_c9`9No1*AQeGb5rzy{_X#=w=8GE_P5=)heeFP*^~Y;jWC=7Om5QLiZnk+r#5MKB
zcf~(rXg~SXg!!CDAO#-wN^SKqbwOX1nKq(?b70YvfT|)H6>TJX?pW7FpJxv$8^!)-
z7-tDgL|PSvd84+5gTIfG_(@^p@@klhhf`o-y4~|34XbQ02NMiA*3B$)1E<Eo9Bc(*
zyqyq=wY@B4C8dqMAOb9X`_Kr4RVDF+e-qO+z^$ir$&8|%7PQ%tkQ_{@0m2Ggve3ST
z`gi?Y`tdBJpzv#Nk&ON;!7fTj5J63aq&;>h+BF|IqljQvR?xC1bBTW={dqpTWI)qv
z8&i$MQvY^i^!XGZ5Rii*wI4p2l%Wh{)^%WT$!=ROvMMfZhJ$0SMq;>)$MdwMTN`#a
zgGTnIejqwsR-F!E_%UJ7b5s2Fd<ozwkgBy1p<GDHMSD<0<Y>oCa>?crMkDZjPsYU0
zC>jcCi(VzV6LGTXZmR4Pw=|{?@guL0EDzG@bitCVj)b()C7Sg`UVr`em6kBuQiFtv
z6=B=B?`Ynt=RszByQ$QhOkfX{^czXrY(>Om-Z`?M&OytTs<jBzdv_$~=l2!#HI9v7
zNem%&eOOtVvjjm|QxYtOFCC0oMxxGoeLWrZ@0U~8Q92?*szR>{^*TBucP#@Ia)655
zhanF$+f#MLb?Mr-AgrnI-(&xrxr5_T=(TH_J8NEXTTZbD!9?^uUXq|5kTfx_-A9?+
ze%-{T<|5NfIS;vN(EEZ;e#$d0p1@84orb6pnf#&TkLhxWN5(+6a%zwK(z7R_Opg22
zA0BR7W0mX3k{J5Pl%U{XQUHEx>}SitaEwAHAsUNt<=6_0I<Sm|2sWZCyxcdqP`ZJ2
zT%)_HS0q}~OGo|l<tJk<{SH~K%nvTY_TLIzFyEs|u}lW)unv)i+a7r+<~E`A%ey99
zQd%o-W42;w*G9Pp9QF+D%No=e$G03V{AfScr`D+)DV&IHUWsPZ%Zo(m$Nu(tDRAaN
z;=hdHMo-06s*RbA$~{U+>a=BHOeYBwcG^*ezbesPuutO8YkSpL5oQEPvl`w)jc(PO
zz38v(1*u|>wVqNv^WED`y3hj&i0T3h2}eKub(<|6l@B8YFR78mSo4OH{=T^f>=wZC
zIdy6;lO!0IU9)#~5w%%-*BU-Fw6J_#sXR0^7f<+OeBjByV$;BLuTB8(EF+8L47d_X
zu_PiSsqbOfA`HcC;{4Ia$i$)zkjm2Jw-IkGVMaf7U*lePXYrUDVZLfIadWg@isgSr
zdH-ID0>q!mjvHcYiAG=KhHvPas%-V%Q!r^A>F{PxSx$EXjWq`=-IP4>s2J8i!r{B-
z(E`}27VuM^x-M%swH3f7zCR~`8%nw2TSqxU6r>6m9RQAfJQ@<QdB1vLa<)E)tt}CH
z{xQ?lVH+Z$ZHt!r|8l1fD&1wL4z4lDm~?&=;%eO!5J=_K?SZ-}7hkmZ?_%j)a7Z76
z+*EV32j9(e6nhKxhlg66a#8A63Y>HkW?RU|&T84;bJC~|)qIBWz86CYQEwKUolrMj
z>1W!o`=MU&atPhX{LOky=wbjzwA~*xl>DCEE%li^I-3u7okh<!LyY}N*E)BpR0XPb
z&P5j@Z)B>^m045}RFY+FC9GayYPZ!C^3yCk)p>q;s*17*M$+@QxWT=MG1HVkRol)(
z_$KfM^?%#a&aMy{FlPR7zFzn@pd2Koee^ri+7s*PMyMm){9}=KqB95uMnVGDDW(XM
zL1I=Y)b}v9{eDhMAjOMgE@(`dq-)fTr6g#;f-{)MKV7Sm9Z7+Afc*{bl9`B8Vk`|V
zbkZu~vBzV^x<!Ft$9};OeY?21y1BX0n+)4hXK2wGy>&zBSHQ|`PVLnl=DztJj1))U
zhS;xITnW`*`GE(BbUMu5dBDu1Tj1$_B<IDYPw{<uez>Y*Sf>b0aIst@sAr?#qUpwq
zq$jlN7JEsspj26>;I~Gl8K*5>NF{fAUCFbK&A^1JO^AeWR;Ab<xM8606!F;*8uh_v
z*JC1ER&62RUQnWVcZP_-LeRU`XW$2Oej4W3M%-d~n}WU*zorM_MmyGiQO~D`%gR@X
zGaBv}jL7lDI=Jh66-I2=AJW}Fq1M*`MfNXPU*?Gn7qIdltu50T*KL@{e+nungqK-P
z(#%e3OsD4ZQFU=Ktu*&EJ2r#qLmvHs$V$S_;kya50TD>XAq91++pzI7g#qmb290Vr
zFoC6Peb@r(plZwD@DH-iQeQP$U0!8VBQfe0?%J;cnCl7si-z!UeqL;P5)+QALub>4
z#Ed#-7!yJHKuwRpJaf@Vg8YspCXa=wqtJ!4-rx_+;^8)ITbny@w=~BV&17v~T|-Dd
zB`+4e#ZhOo7zOBM-T@b_$1hCf&C`rwK^5^PNFt35Du2AKP7l_%0*dQOBNo#yV+SFq
z>XKBJ>GOu-{(22w^!4noeG&eb8dw<H@l`UIK<dt94*4iY{X-=52oZa@8Fk}Dc(f-W
zWWOOdqiLXA<zqmyU<iOWd`hJ)o5pa|e16)Grn%W#MXQ9bR2h14Ea~SWkS^&)AZ7Lf
z;j9!k?nFZ###`66eEVJcA4oR6Or|Z85*-PhqtZC4tp&e`9F`&aYQT$zi^Jm%^}lpf
zvKz&<v;^|CqntB)r_6jEmcp2<Yh^&ymUpmsc1*|1EQ?T4DomxkRVtYym$jl0ZU~_q
z-0;FP$#sUfk_<w2#=wRTfA{tA`Go)JZT*gF)%;ie{P;x7i%Ng(K?=$_%at0ateTOW
zBu>qR8L)So)gwPKhNTSl*Av8fs@-GRcK--!65Ay}gPpjR`RI<uxj!~ig5IU-EzWG6
zjGl~k`+wp2k18}BgWfJWVC4jtCd$Pj$s~Bmwlmx}s#o+y-}El4RSKM;oLf~=f`**h
z*03<K<3@vP=-33lY4{tAO`p4RR_ny>^5ynF?ue5SNbp#6#RlEiYifi@2}ZJq-~igb
zyO9(jmn#~#&3+&gQS<js8n~yzU;Xpvk-diHxH%(^Ow=AvIGd@#NT>1}bMlF`=<49W
z<3IKPd?hN*Jg%VA!VrweMJ#A+oL0cd#e=ynpIDu65^<m>%iD)xxS45vnJe}Kx6ejn
z+qtOc`;6z9NTAWL*ZGruO5Yk{>#m(0%LHB26${{pBd&n&!2~syO*L?&IJqyHa}{{#
zy7l+-eLM>2+VwsAl}<5EM?ZL<5tp9n3weRyj;7+>vzfQpTj@LKm<^H~;Jw8#)f?Iw
z61_H=GH#XY#Nv{~(yEc}jN%z@&d0LfV9S{Fhqyy0j{C3}nO0^Q4U*yFzmf`BEY16@
z8t#7rQU?c4JUROOFiAgImsxu(UjPHQQgW_YjxLC(!U<|rDD^&~R2U)h3xZ3+j&<cF
zZCPM3G;t7v=TK|cu@82diayw1CnjkeY8%{L=-r~>i23qlr57Y+gV{3&`zu)=M9UyI
zFAYRgp#(!JN`0g%f7-}xB#F3Fb-jxpXrQN%gl*@)m*`vA^eL#8nRg>7LCeL!C~w7S
z9}oH)+3<|@T5)Zj+i(;%#@cFwk2LYg+XIk7S$%vJ2rxwb4gH6$-U%|9@F-gaN~qgp
za~LU{RZ(>RvOVx09_5*fQ%Z1>&zD8R@3~y)c$n9C*AwAX`QdTXS<34yYBd%sFSnTg
zVFPP_?x-Vz@-P08uvA-Mw^{LnuOv@ks&o6R&vx9t0t1G`0v>QQxZCP4;0JH0U8H#H
zq^LbvCpf2ld1%1Sf|ZK?`bpffg(^hm36@qP{`NeTmlx82nRjR?MbyoT5^t)-fO2+|
zmW3qPhD)y0Ef~;U)LqG2*5Q7+UPhdsY>SC*<k!^FX8*^MJ_L!+-rD6U;V<W?_!}*V
z;gh0QZQ~^k1Po`zf}78C>2Z+B^2V|uDY=PqC{O*x_fhG$OWPS$DoGT<75?Y7Uo7_*
z>c71D^Gy>@O&1cSp5^s@=+-atok2y%8^22N+U&X`4cLM-d_^CLnML#)1Xdo?R?@I#
zX2_d!Rv~xdx;@)rRgyZDyBb6*TIk%l^L?Ra6$XwVz<Le;`gSuH|8#52$Tzs=-w@HJ
z(Y+2^95y!tLF}}h1_AP3yApMsmH1HFtnvK0njKP0Oul~yu^Am_!*&1F9qKye`*Uqt
zd1$}?^2*B3^e%k@ski>scP}3+9l;1|?NEz}P8CdoPMkW<xC$ZBzJg#hH<eEU4fNr;
z1kl0BF1a(I<>Go0gMw?54tsLS(t1+&%x#)G4lV;@8<Te57SEFm*48;=bY!B57c+wf
z!&ciA`jC&o%u+{PLtpcLTeUG&VK`lVgxK`+Ln(883t2f_vGx33UPm*f2h|RqYoYa+
zq(2uPs8esD8Q$gzA0OHPG0;=%8hV7wQ?3~4;!G8MBCnzrpQXheRLpET1v)gzI3L(M
z<+rq|VF0UuDn^9Da}wvAc7n8;OlzxlP4x7lMoN(!!+sYiPO4nvICPKW@6XKO(~_6%
zfjoAA(F(98fZ>d)d*scC?dzNz!El0=?#AuxrVM&sf?z^KyYHq19ip4V8hh*m?v<T^
z!gBrD<%181;!EpR-P2EWVrZnCpb`t<#Ir>nE~qtzSHo9<&pGpSQa>h>74J8*&_AN-
z&RlKj5g#v3v!icX5f5hima8p)(=L%2X^R`)f~pk&;ur$#>o2v+Lq3AJ3O-<1Xo<E+
zP4wYnXMNb&-~{C4J6yFkCF5G8T=nDgUZ+ZW(%JvY>I!(ZR{x;kd#uk_VDwQ&m)ubI
zdpz_cYmc-$rbn}MA}y9K!)=q_GrR?N&W&!cNM8mMy}~6O%HlIXPt5}~^tCl59LoLr
z131i$%bsBfss;jV4CEog8I{x_NCn?haKd!0=ud^zKke&3WmS&##vhql6sqA1k%8<@
z(~Oa?%Friqx_~(0U)lu_uY-|?T@33b{4ly`g||bM;H;QO8~{Cj34e~sOApD*fag;F
z0pQFxd8jCEv5Q?lrs&Z*aV%6cDF#gOrNCt-Vdy-?pML|;4KAD%X6?SpUN#N1mY=QQ
zy9<0qkp1@#xaLN~B?g0S%Ge$`8aWNIP(!+EJhr`ls191SCl`ODE&d){VcASWK3AhU
zb>N=*0h1!^f~rs|Fek<oHL$a_pWHJXbq?5Vpvz!)K^|z4d;(GExbG){VnuSFU<R!(
z3XxEQuJ)_})y`Rf1$5-cd@J3Dj|-?L`cD_4N1U;@W*?%#X^GJ{WuG9JAt_xH>9KI<
z2DlRQIT1?sP4CJo5uJpw<KsOZB>0}I<|H%rfR~n;7w9HEJ6WVnX-QU^s_#MAoY0f4
zvu)Pr@$W!uwuXY~F}q?8kg6D4bxj~;RjUXVbZF%95{{cGQ#L)gK^^8EXp3Ztg1=au
z3Hd0mX>F|cfBR~>VFKAtP}$az(a;h4t)C0^ct<`{Zt9bcEzUM6Ry5hI&fCp79D=Y|
zsdzJ)FLo_cb``pzJCq`O9>$bPcGih}$@XD5`yq^r&uew(MB<aRUdZrkw=NE|OJHHM
z&|(e0I3{DQqONxA)jPWJ^|&&3$N37fD;M^1jO{ElipIPB^YPDpGaa(lu%V|zh%+PT
zJKy`&l$JV2DT*IL<9`8p9@glm4&;$y4D`Mhra$e2&L#&Gmo4ZopT~H>$ju!w|2htm
zt?%V@KBpwFMthm22#cx~ukB%XQJ|@7oBpsW(^ia({(=-(qh5tmrG%>yB(QtYkSZi1
z%dabo1YsL)|K6!4t-&xk<ST8u)A!+VG+Fg_Nmc7kp`ei%r+CKC<Y?NCvY;&L^UaI3
z51AOJ!OOAuyC~Ti1~3H~Na9CFf#O_jmF1-<%-8lGixIw-hudMd)c`gmxWOFVm=xsI
z{_EH1P>t3CS>G%PV;G7EE_8W}kxt52ZuOx)|5^YOXj3H;Ubq=wgj~$}jx_#F4jt2J
z@pI%alWQpcdvUk;evf?~yd1IQyAUu!9<u#xCoP{aa?SN`{f_oeDa#9I0jq*AU$=5b
ziu23PjF!sb_sf%+c|J)|c|U$#4SZ&DJ?&zs8vC{O-=&GS<{Fm@Qe{z_9?JhWb>vUc
zZlH4R+8N-9Pq|{Gy{xRaV8c506K>1<czKNP_ZvU!fMJni$mfOrrY(n*!)mX9nQB8L
zfx|pR@!;+TJZUdU<I%z<-coJXCc5JNCA5boupk<J>q%u>uL%pxb!)Ku7Y9T1>ac;&
z>ipb+fivfTr@KU^LHEGFpAvq42FGlNez+c=jf~>4b6QsmMUVa(Y{S{HKSblnyk&8X
z{4^Ad#suyOcvr3P24FSoV8v6568aJ0{|dfRxx!MOa`^O_G;AgifDzQtJT;RgIjc=p
zVQD<+m^^612UGvueoFblUi7QAvtPcg!TVFv13Pt(bz#-1X{t*6gO)bllMmzqAF}Xd
z-SE1%KBs|l{1_(#0@Pj?DbOYs-upj4D7_q=y+z8SlqNQ-&ZyDRWlaZ{(ya2VTXW$X
zRN@ony%JlG5IW@wTbLKuD5EDP9L)3otl{t0*sc~C+xcoRmi@{8$^BaYcHr~h80eRQ
z8p{gfUuSzQdU{XO7c)9K9I`3wmGdW?44l)omvTA#a&ibCQJ$YCt9**zmI1Cm==}9@
zuKaJu>I57u;=6+rn6M=Y7N!RRIMawaHQaI)F&LQ-Z1pxkj!89`j>+y*v=u2+j?Ek}
zWK$v@lb4Y+#${i`Vkl%rq$~)NGcM8V@wd2JAi?Y2LR3fpzu|l?qZM73Og6u;5Ko<G
z**pz@9TbGF4lI?iNY7MQ?tB4DRK`)&esNS(68i36Dm(HK<#o)Ov=a=~24n|`%%V~C
zebXA$cGqB~^O1Xx8Gh&aL;Z4R*QByQ%rQ;L7$-sN3QJ#*zB9C)^wzsgEJh%6UfL9#
zJK<jUWQY0NZZO`Ts9r2Tu<F)0<;BlD$xYc`3%FIIqyO&?0qs@B{r6lM-igF#Szc~Z
z$xd{IcW&5F4Qi@1%4r;lqnA6<nm;kKXm~UsaYFfS{CzXMY^wSr7UASve6K4Py=;^d
z&XQJAJf<jNg9({8pRUdkez8Baviki2e*3U>gIhfw+#4e05gHd!j`1qS;Y5!Z;F-Go
z^FlZzTt~C-5}<>ES?Rko<g!@<U6FD#Yk(z_%dp?=S(yws%|+$)1n@k_enTI@A<1zc
zxk{BZ>gmIZ=p?feb)OZ_KBm|-Aal~lT~bbj>adtP6{?N#%cj;QViAqa(jw{fJ<<1e
zzQ%<auTj{-)YVyFa>u=z@86IO+ja=9Ys3xwJSe83W!^0ReqDY!R24h@IWxJvBf^^-
zSFRaV#;^16=-otL60~?|)|tXft%G8PmhD%z^erYgdLDFC{LXX~wPiFN&+CZQ{wBUS
z)w}-?5Nc2XVKpMbAU|6z4DTlEwpRQigq@c%essbbJ$}!m5YQVe^>ZfuniRYPK<Vh{
zL7zF)m^_O&mNlViYKT8l_pBTWLg`O%E>Xl1)EqQvA1EubjS|};&@AA~_{QYleV0?O
zQi+T+Sqf`>e5D1s4As1g=CFNYJz{cKNA@J|Vg8r;J=B!o4ZCP=w&u^cLEdz^HRUK*
zDV;8v^(kOYE!rH2g?cMwz)cGAw`_>;mwn+F((v_hZ^Sm*TGcyqo6A`3ATFOfVrO4)
z@U9%Z4GT(``l#T_N7|fa@4nJ%0s<XbRnjiehBFHL(NB3qPICDKIH(~$MF0L>+!Ng=
zu4Gqt+@e`Zz^kbfwjqdTn&!~_tJW)QL!Cb`_Lggd2lN~xlM7!of~Qdd4w(}!aC*n|
z?rpwmADCzK=SxTl=ZpjFPQNXD7`}AXn)*v7MbO1%wGcJ2@-*W?LY7<W$Ws1RHW}bC
zBK*n>*K1!}*0viXN2SLzJfK6wW~pnk{o7_GIQ;uD0%84b(0n(A0tQkqff?&#4gdN2
z{8Ip}6aQicI@%M{b<&)q%!K;2B<Yu%kfeQ`fl+v^;1nrUQj19Q+}H0SCv=uZGyU&(
zXZ3qGfPG!NgNLJbg*+>KmI4A(?SCX$vsB#*vQybM)-3+%ccuVCca#D{gQP+|Y>vt|
zqbV{9dG>6G1Vxir28M$Y3?WsP`kntY53^Kp7I{2S0g=m?*zHzFs?6^SpeDcd%+*R@
zOTux6=(odX0_DtgujN^v;<hM`%al1BPMGf<AZiv7Ww0iwJ~ZM#*Lj;WL)l<Qqv<br
z^cDa@K~xq9^Hhpx&2g8<%~#ElJ;M{qzx&Ehr>aQbLT?VR0uEG{#5#w(SCGE6S}ru;
z?NMgNiR-_Z*TK6aZ(Vn{m?(LpE>MX}mDxg_g5M~>8vDMPsf^U-S;2#j3{cSztd@c5
zx&_TM;gpNHN=YBf1ho@i-z(^3gbW{JsE%HfLU$ABtcYiCi-Qlwm*{Kr^jd6e(!(4r
z{PPlPxk#bV<YNcD2*J2<3vQ53JCTB(B(<ewCz50?{IS`B8ES+8<oVa=I~JWNcH#BI
zb;iSI$%9m7%9Z;frT+uVU54E0xX0^7ds2w(_j|itW?;Z&KakpM#a}iH*V6hk_4ZV`
zKq%JMCY!+A>_1V%7p)MP++pLB*hjk&kobq+sw)FoX+&)?I1zGxDR^P{x>?^Ep2S!&
zkSI&&u*)(?mQHT*TFEUK`8iB_|H^Xj!g^@`{vBW?o9&z*>)TR|ALK7{+`3N_<+Gnt
z1O=z)Y#3F51~^BoO!T5TfLJ=S)<*#{_m-Di;ARq5ps}p%gRVQp2+Ukr3*zII6vZM2
zgoY;7$c0>8lG?2CeI(|IG0L+%$0Puc{(XBI{H#I7t!rDN#(Ve?m{cR*4?Fp$VnfRe
z^^btDXoJQf$FVw}-kvX?pUEU+JT^pSefhvZlu?_b$ECTlGAwS&mq`4-m6b;}_mqcq
zW#i*|H{0F1A-kgz=-}!b$}GgsXSkLdQBR04LdeZNei%zRyir59zN);JoGetc{$^$f
zAfA3kb3<N!=QP0%BOud^sLG6GjLgg1u?TMb!x}XonjAqZq@R;qi7_Kvi;LqBzO@A8
zBu1`vgN>QR1>)w5o(!hkyu)`*d)^uw)3m0hrf#i+9Y>vxcl{UL;{_~x?Ci5sh~ALp
z8>2o>)7O;S+i&z}y<wq+a>@@y_*Se+7NTv98YM(1d}}AC27;KZHFA>9x>k!(>L@5S
z0HA#ZED+CGa*qT6a93{_(NnGEO?TgjpF!byo}(B0Vnu>>;^{Z`=zvibh#DldQ2hoW
zcpdc57S$S>q#b(E&_So;zjt8#P}GwQ%j)Q;DogZwrq)emF11w@+igtzg|hJ#8G?W@
z%f8TnjvUDEjJ#-t$^6b5d~=%SiG$6$yTQlu?xUf`wZa7%=CCa2w`t%X^+Qj1)G3^P
zF+4nc+<88V!WN+4S~2&XPBKasD37(qNhnD`qLAdiACc0cTK`|qeul7J9zkloossJg
zvcT8sW5diEseb0n=n%er3NoVQ9L*2ySY$!?DI+nxg^p#XU=%V8EX!gWV%U(6b5dMM
zD^NB+QAu;9S^RU7=?%A;st7F?#7`2#;LjfJx2Kh^M(Bu!9?FjDiAZH>L*Pf}?$0f_
z2p_d@a<Vy@;7GS{DtDX?a!nDrOC7}E&>d4~$an?{N;FF7<!_bFGAY0-pw2+yYeGL5
zpb3<Np0@^iE;FGnNKDAfl*hFMvkRJl>t<Sl<@jfCp}`A*)(!&`Dei=3Uye2<G)>XK
zgkDf+G){LRwrJ3og07FP<3t?zWLQ|Jj{4L`<V%CW5yyA0HJ}&}@tFj5PbSSBg{h^-
zVEdRI`j|dw)9A9A-2+*LQ`k46?T`=OK9#_}o{=JxjOhhjw+<kXhf`UNZnOP^=s<sB
zkYQu()E2_x2r`jU8VGeq#`Llq_Yj4Oe^^xTSQ{ZuHy(-Amo`*})Q#fp)Rdp7M^sEB
zIs+;IG*!x>I#S8Mx<L@wEg=ZVLbBbEmQhQD>`Zm*5K{O>$sn6>(^WO-6k#ggm+<|{
zzaLXFzhHeee4GKtYVWaP3xR^jEKeJf`rW?r%Ep9WYuTE@iD^JAEGgE0R{=V&Scqv>
zD(P1xg;fl*@Urq6YZM{Oy-z?RQUg48mC5C!&eZ4t9ZAy=tvu*ZM6cDxh!n`S_O5Rl
zv@z1ZhiwJK3O$ynHZz0PtUf(|#<u6M%YvauR(Q6wyh{#X^yy1zaU+L#Gc&Y!7TG&L
zMGE@#W~Fvglz56{)T{%)UVHF;f?i<%<<=E^rr{oM!$bpOkzm0|p%wXUn<22Fy$NGb
zaCaJ6HN&sy{tF3cV;RdPXkK%R7_Pa?4t-wXb~Wx;&<6#khmxADAtNWJc)(i@h#(`O
zq`-@bX^?T1Q_6J*9CN?|Zc7`~8z3dr(;kKRC-&)Z?@h=*;xXPJzWcH0uZNMw@D4_H
zax(Gsc3|aQ8>2D?Ap6VJ&5UXdSm?l-3~Z~0S9DE6qrIH?z#~6oP{FzF%%r{%xQ?+3
zeR%3Fl>J8vA=SfjlK4c3=kzJ8nkA*mP{~jj;n<PA?b*`a6uOycDS(>hJA|LF3onDy
z8fj>tEOdU^6`30i<=cz$IZ~YoO!h0b?H2;a*3TMSSCktU)AL_n7t98pPZ~+V!&S=f
z2N+w8ozgzCJ6U~b9q&>(6GPsR6>P1?=*v?d^J)L52Z_Qs&g=lO{u%~Ud48Xa30=47
z$xPG_y!qBpUK&(g7W1bpyU{u`bM@P}TRK`@?t;<8^$}z3D8IAW{h6?7gHWwpAfibZ
z>(K#eP;EdE#7Ihs5;?5%SL=JBwAb%g@RU0txtJXz9CMA5D&yXB_Da*8EM2C$&U!Tp
z^1uZcyUY}<ZqsEP#lpivg{1dsRwN|VY1!j^6yK(lvINmb)?md#9|amBW6GxXC3g!T
zDEizo6V%%fQm>>gq1-pTj^_J>Bh<4PWG{9`h2-z_p9_2R2s+nvbypEMLFaS5>avVx
zSTzfdQk)7P70H2}$7n`@<P3Ko!>WG26j%l>>I)0_fCnSm;ReSsL}q<FuDZq!LlyNG
zn=gJdA*2hfTARb{LOfIf-_=b#bF*`e0t=PakzF*HAPLpVShXnVJsnVz`$xr9LrAmy
z?Y*X`#TP7Kb!OT2)m_Eu2a)_eOoJ~cw!0UX=GH{BKAvs=byfyM-D_U$ZJtOzcW05d
z|C+6NKhhGS-*41F=@e%1_goDp#J&+Cb1H)WmK83b&SD`BXJc5}6)`ke;4@jJQH^$`
zWS8xG5ck=8%B)Z9yXegpoA0d_h0oxIqho?4OsP1tn_Z}i<+$046{rS!KVfDu{dDQy
zL38DiNBc-J(cuR`hE7(I&bNDger$yyTg0p#_pkl*y4B}$dcd3(1IlQD!??!q(U4U(
zq`4Tt-(?;}#_e-jx;Hpg=ahX*F7yVz@J<W1%^e+htMN>nP(&9i_aGsqk>0V@Y&bVL
zG(ftt3OEAc;I^q!uFfKARk$Lu5y+>QGa4k@oP>bmR{!18DVCJLv=!s59fA0`oVi}d
z%Kw;8ZvDc^f3(X!y6V2QfjVqf_3me!edOi5cQG4NG5F<L29r2)pP_i8m3JT~jiX!@
z5{WOUku$MnQ7I5UJYM<Qk`C)L6pE_Ai1^+bIdO4@WGH(7@`nl;{}ZfIb1z`<o3JCM
z`Fe~IsJg8fC#@o1rjx=t)g5O=2?=S_3W}6Gyi(;aiLlNNyoCO)Lb!as@nY2aVj%X{
z6sVvrS2K@g8{e6JVHzOQ`#W)X`BNB4_M8{HQ_O#`#&9uaP8%FD1OARZfM5DQQvxZf
zv-Xvw3CScY-W_|fL@RiFzQImQu$d>;g(C<|e2u;tofk2aoV_LsQ#r|6F*HX-X@8_t
zR*idoNYgCnrMnbyy_^x|q>OzSw1B?9_nni&R3;!V;)_8vWpS$@$U(;sGm3GL{j@V=
zm}xV{^X~cah^~quc`ox?uH3{`!v|=InhBz7)8WDm2ZEu84q5VuZ`rSah<-NcB`da=
zysDIrgIh4yd!4w2NQAqwQ!uuzgv9d#(1bF+!<(!aBl?o)cE+ZCaZ4z<aXjxOt%V=o
zo(ifRnEcTXK`dhL!UxkpI$oLqq(qoFr7XSj2`IIu1R7x8a(aCA4NaixMI0ua8}Qb!
z|2=wU+9eMWcVuQaudZ~$9QGn{#qw2$k_1Wv<$td!CsC*71)c&B1FP1%=Qh5Zq6aeD
zbm^H8n+PFGv;z~cBNc7dS}&C*n>n|n)jui>2CF65!SA@DPL<C-PaRIhh7`&^y>60v
zUve7Asitjyzxjbv3>^`wEvdF*PBvr56JBG2+hvl~{*Eo+05b+^SJT<kjx}wbOetQz
zQUd7CXQnmd;T!nnSz+|;kKn&Ot_@_>uFUi@1R<F-7Om5psOATKlbLi8ykN{Yy=l<z
z<<cvvOLs7R48hN_=4Z8W1aA$;29p_6)%wK)!4qQhrCQMqt0Y90bY{1bRwFf}NYJji
z)>o$L9JV{VRb`3J!P@glxkfXu>ly6$XKC?n?&;Ud?v}!TgPZ*!R2Z6gnG}FrvR_A^
z)(%uj$*kL?Q>AI&Fbvl;LPI%MZ2pGXFn-6k%&IkoYxA5~;T*$CWiwa{HA{)Qm5rvo
zuzAy_w9w>9he`Czm^zD7Q=H5L!4v_fX#wl^>%;;2a@~c=u`CIt8bwu`O7)S%CUy7p
z=M{*8JnM`Kgw0A=N`Jm#-Xz|@*03<vF#LQ&{XV)S+A@9@F0^V{5kcp)+fmzbbMBNE
z_y=Va<(sXQ_|PU$XJVIBm$s!(iTyU!P@QH5u1N6mv5o}NA-rAypB<P=-_i`f=z%9G
zH(qav|9<4`T{j%UlrW(QrZ%T72I?Crf_}cirAWZ+qJ+b*_SKX7)Y}*f`aYdzmL7*Q
zdMB<)F4sC`8rEHKu(|M&8mJ)3@|GXQV_pb&U8JtD##f#_Et3(WTfba#zF*R}X%eX+
zhwYbRbkUqNoT(w`l0blwzYyZ3X+<dP^GFiqUPJkGPYpm8O7i4nPi$pBsNdPNcCnTl
zSp^;fq-v@acyzr*(TIssx38Z>%Bmxy;&0J9+cR7}ng2t|`ZfzqHhIP7?&RK1sK<)l
zcJ@qRXzCjN4g%fWrY)<gLu5wtbzFjRH@Ch%$nLF4lD#osU^4uR`v)-BjB?S!Ag>bI
zyvr>qMP#3C%xnbT<g|rN_uolTOsyERT!}0JbCTC5Q(3|ZBLaeyrO2vvnfn1}<G0t#
zncB4xZ(%SiIQB~tf*w365D5UNNDx62fRI8=Z9@%W_XRjgQGq0}n#{@GM`iU_rTRez
zS6amn*^nv>hbSwc6^CfUDzq1zFX6fX&Xr1@SV9kh8)5tp`=_5SX2x4KI$GHM#oN7=
zFJ~^_6UQ||_*pGNn<WZ=ZxvwVbi4x}M8l;3L@VA0`I~;7t8^ySb;`n8+)P`Pi|Nh1
zl9-zSfJ3u}b!(^x4h+;A)IFpXMq!^X!8N;q45teImJ`sa2X;-qYFRnQzS}tin8bDl
zIf1iSrm{@+t_Av5?xCiZxG_ufM2B#Ul}s^FaPRwXLg>KGiBON%vaHh46pQJhEaexZ
zU5Xw(JkI{uzr`^AI7FZh@ZXZDCY-$hC<6*1YBoYb`V>z_5-JY79s&$+1A<JzgY2qV
z7=Qwb^=L2EhcBA0Xgll&aPQS4)<Z{(;WE)Br$U+cpUViJF#x(NwtD6ew~+M12_6%|
zH17|nr?CFtIG{36=d(5|JoDIvvFn~x7iWbH5%KcVm>x#a^HL^jZ6=H$ZyWFiCn`{<
zt)x&wK9A;F{{qrC8W-TRal}Rb7$ItD`iDBtafb!&O&ME8YmLs@Y}ZguUax@L_^!M!
z;W3qbL`%(_bPm5O<l1ah_Hh(E##TE2s|1XS((^w2d-qxrV^9k<?GLgLnw;WoK!*=J
z^RM^}i7oX_e?a_Sk`1(<pynS!>j7s6RL%5<kj+oPkZKiMnBCeJP+f5SR=^#I?W#1>
z0#P%|F>G;kRXzX^p89dV41{*z$jLR<N>ww@qX}<b0RWMZ{QBCxRdg}FISF1?nojxN
z5bBabF1&Lx`!otffW2wthRb_OcLJ#^p@l~;h}>Mfh5eZOvM~-<R1S#cISsAHYM^d`
z`*pW}&cDM`4;*rssYfXgRzM2)V8%}4-XNYUTdBNtF!Xp)8PwqO$Vs=3Sqa)1(2U#)
zzbFhv<$0C8oWX)0o+?o(AGi)-0tbbK7+fv~PE@wWtT8Ws?FC7==U-p%<x^wYm!CC#
z;BAk7J-q&`11i)LM&~2_8d*4$r7DE&Znku!aJMzyqg)V$S{)k;?FH#ejCC%-Q)^~l
zwcGzwUSEekM4*Op79iUT;C*Uz!eo7t%z;N;C2@zaHbKya^X<MW%^mYFG;eXeX1I|+
zipruFM-D{4IV?+qG{yrM<=!*kgMVasRcijzD%1KTFi!a=$f=m4dGPo;4H0&2rteK%
zL|pTg0|B`{4P*#_;E)ht9MwC$|EPpYdlDwDj?UHij#FEq?I$U?_lZbuGk78iOsXxJ
zBF*mqqN1aJ8r{r<ZS!ZT^P7||nr~G<vO(&njvZ3ir{i#ppCdh{Wx~RvL|$&jpK^++
zvUYQG2J?=>|4xPcR};@1J83FOMVKroaj^H*q!E-QP2%MA+8LCj8BcKW1jh*J;8Z`=
zE>n@OEoqaCyJ>!i<Co`ReFebd<y_3``=j@XQ+(s{pRmkrzN!)GzW%=4nzhFVzt{+;
zAZt^IjJ?cILw3u@JTd8JfdZ=d`pwnLcv3k!HS5~FX4$%ATKdPuQm{SjkQ-EA%d^hB
zh<-^B+wBa7E;)o?an5wCaG(n-p{c<CT*y7N$RzlT<502TAxgW(o7)eU6M%6fd{>?=
z?j+-X(O5cBsBwK4OocF`w?mZHS|vbrb0<Mx-A;+jtO)|C>Hr7G_|s(KUyt6bpaBw~
zH}f-x%#6NfG(W>ItppZ|MRzG-74aTFO$lHSk`b8n2kN9uzzn>(Wxu)kNn{G*S5P?G
z@ybM!!F0FEi`h9=yS=wB&#VH?dfr`5b{kLp$yazWV-GFHL1Tw&`rd4#9AlTWH};^p
zm!hLKqVyJUa%-xf5@;?q3+TuaNlDG<q#G|7tLdgF&!%FRYxLSLKk=R~q@s&g)lS5(
zbkG*%BL6Z@New-~SaNP0_}3u5MGv{0vsBRI_qUJPK{$_RQ(E8>L~YBA`(eCzL3(&^
zcZ(9kb*rO(Eb3yHkMe6%8fSPYDoUjSmI2morjVhxYi3K}(Jw70)6J%j^De4Qr+zp3
zPSV8l{ZRWMgN)emS^uV~yn}z71@M~}Q9xSnrh6SO!m))_I=XwgbIc9Ciqg!3qNd3o
zsa2}EL6fY2pI~;3PkQeHqZ%i}h65}#XA%=bj6qUZxt@nO)A$-C+DbAO=^u?ivA|p<
z<dOu}6DQBEzg61vchOJrX1+NT_HoEKsw=NhA9ajpm>#p_C&*xrQ)D&Gs}NX0i*}s#
znkemZWbF3@!iEgUoBsleXSxQmoQp8Pv8r=O@heSn=HD&9I-=nUP}btm%b4V^!P2gk
zQ5<XQ(`LMaZ`RA<%dG`7nv^;x_P+S^4MmkYrsy>0l44?4!xqt?Um(FBphr27vde!w
z_6)KN?Tt4MNIo2d-td*w>D9&{XIE6X)W&Xva_z6g&v33W3&a}v*#@~;jaaa1qCQw*
z$q7&H%EPVw5ulP;={*k8UuNh6Ee}P7go7Rz(Nf)++<q@!3&9`Ji+_~*zPoae6eqao
zo%_y|oi>d<sux*s+gITj;Vc8!3<BV4gC}|Pam(Rmi`!rcAtvkQhZ&7qXZI{*Ks$Ux
z$~A>F4-jp#9Ix=_!}d&e?0d}|yc!M*;R8YEB>_lq_h3~=`=bY9%+DKAUJ`3jE&iW3
zPg#-G#El^^RijGSX?v_+6E~R81+4!Cs$F(=jDbBjiO17!uL+91nd}yjGySKx)*u;5
zVp*+ij*B1iu`OVl1q;9WeuQARgL1))rY0~L`T6z!-pkq9*#lD}t$z#Pb<(7TZ20WG
zH|B(ma2uPd*cigN;%LZl3#s-?J&%a71aG866>Yl~*E3b}Vr#<lgp5uq#RYw9nFCq9
zX7r>R=g(i;FjVv}HUj0v!53cu!0YM%9^w>sx$Duk1qGk|MCQTAfE7Ix$zhJ{YCXhh
zMBv5KMb_FY!WCVNGi>>vQ6q?K-7X}QdF40r0NagCAwxmJ52_f99)#gJ?hinP!8#`;
z(<wbcUkCrURo;Yj%2}s>=^Fo~P#wt2F&L>M6Z2w#4G*tMB$ynEG^w{@Tgv9oVu<0G
z_#e)e-eW8XKuGY+t{}N}8tu@keI>YaODI&cT$gPl??*RROvsb`5Vr#7M)?P!x%O2A
z>h`>DwblI7IRzh&+K&5FA-ocO;Q9(B?X~l?ACEf?O+j(6QJe__jv)QLqNdLfh$j2-
za-nDbJy|z*TUC%k2sXgi)?`EBd#WahexY`$cK$D7-E95fSNP({JK9}N`s3}ZC2kRV
z|C>AhG<q>s@{VHG3TpQm9WJM3x}KneJr3=kwvVH9N`ivGclc$>h`B~N+$;Lg7DY(W
z$K`8G*+8S^kop+L=C5YREpGYLr2qn5Ivw2%Bimmg9}1oIZTN?0bju^46G_2P%_AbX
zT?`L90w)>SZ))+8Z;F2cM>{BW?q6TJe%~dDnjp%%{D|II#*yQlb*5QTDG3~h!rC6A
z5EnoJ$D8XI!^9E>>%a8J?U3CEh@KW=5aip5qRG+cqXG=1IF%bchN&xtu>q{s%fw)P
zjYY*f)DWt|x-nHaRgFac_J7>h9lRksMC$s-ln$u-gSQd+^Qt(7=vEi<1IL<p50^<g
z(~GD7x?_d|(D(zCk}eEn=ZJg&B&236z>9-vyTgOn<M;S>%Nd)BW2XBNdI*kYoQTV_
z1QtnkmCmDyHfBkQZj>I`{u~bz_CT~}c42Ie?y|x<knSo)9jIYM?V?m+jrFcqX%ESb
z;-W<#wW$s8+g{*TmZ1&GdpFuluEnW_z?bv8&!E8H`ZV+Y!XF3?1g^*QVoPkjHiM-i
zzS~p7@bqbF!v8BRIS4mMRp^)}l~m=~tgvpS@t#AGOfXMm9UaO`fqH%_0SCEhU4Bg^
zyzsMB^XRx#%N(1Tlr1N*3PWvybaHU#<w(Y=g1s`WHpbB6AZ=0xH#FWe)T0u5wp3PC
z-^F$yBs7%KrSu-n+du%;olJyKNTzhM6hPcC?bO$0%gy#8q0-!K??Kg8Upyi*zn;1`
zHuVF@<unLl^xsTb2eABP?P3(f%(;O`a&JZ?V0{neV{l-=J<--yM^g{U??vF2Dg9as
zfnsB$UMiFE?)&xvnr@9c=V^69J-Y6)uIhPaeG6~1DJjxo%!zZ+r)P1O&#}<Afn>%@
z=VvDgJI=_$E)d%PRxNMB1luM2eb^<B-z%)RKOD;{Cdv#xW=v0c7h(a<3UcJ{4WTib
znP{q7#7LFSEmbF7Lg}9Cg>gqRWGd71jQq+-trI<h4?QMH2<VD(>@D6Q?AiPcuY|3#
z9Ga4vESP)at(gss;VQcxev`t(sRea5^SE4^9*oqO1LZ)w3!mH1XCg68x}a@XP`&R=
ziiohm&?+Jgvr8cYvMAGJv(imXS<lk;q*6>X6<H|~I|WI~Y~oLRA1wwRGHr#Db>zaN
ze|`ps_IF=j(8Ol8QY~X61PY|VK1WM=h}vL(s;LpD*}U$<@(AS{33MUDF5+4F-`PSI
zt-QHTfo=TiRRk@*`fQRoLIS!OS-cqIsHrL#F6>n!ekEeSD&JuX7Byf5=j*E|P?@m$
zM>3cr$#8wG&}Q2)s0g*WmY<wsPEIY0V$R4(zhGdW6i9w=jW@?gS6zOQI`m~-jAgb4
zpPF*@eH?7jd$O`xYLybffJ{lnT*DJdXa_eA1|<;uapQd;?Uvp*eK8N9V}d~(9@!>}
zZLsOh!I*v<)-|w2lOg`!F+<I4CnOw;z_0gMsj`YC;;|M7(0NH^#h2Uhg0fUQyiVt*
zD_Tv&#KBVL8KHx&4X;~_0qA?XkisP6w|2Z=!LftAXBjNfMosg&6wH<-UT4^3ymh$f
zDd(dvPHaxjF`?fw3m3Mke+9U4?><arR}~fb8Pz6$Ll`6da%D86Tt8sW+D3mc38^Cv
za5G_SZf6S%Ww(ejGmNXvAf?Z=qx_YRu9!Ns_z7Vmv@TfNGwnj<a)EzGYI3;<#iC$&
zgQXX=R-HCdRO6iwe1(H-&s;^uYQyw_X<c^IB`;P8>3v-rN5>a-(c9(v<0+yhj`~N6
zQSb8}qqO-A(98cy&xH{<dc2|fm$gfkT9KxsspjW#cNoV|Io&I9rNU{`qG1KV4@BdA
zyM5JC8jja|iiERw4K!a7FL*3n+A64vB%?xf!`isra{p?OVKa>XvfVr3BLjIrg0}$b
zT}9sdcQdT><YY<d<S%}S&HF@ObwlfjX&*Gj*vs_h4=+gV1cnEQZY=7)mZl6BdM3W=
zN7<9EdA0e6pdx56`AFTD#GbfVEyGy531{@)3pP^S&$l5m4rwZ_n!6z*cfV_0B}XR`
zjqX(u!&i{7*p>M{zy|B)5cBsVOwYDr++LsX&zM^;lje=LhN40quEw$|UgHsB@k<_F
zz~1&((t-%OC7}ZRLmK;e`uJr+-<76?U38nYc^bbJc5aurvD`MlFB2U5i}{`}$Fk4O
z1Hlk(5Dxf2OHBb%R$5{Be&&q78mOSUwqg`IH_dPQMOXi0_dAPIw#JoH<%m55%8m7N
z*O<-nU$nxcxE&?!HLO618}329k|jr8tle}q9V6-;i~PIC!QBYhpKN|EO=*6cnW3E_
z`C6J4AX0iEp9%dhsgECvs2cCpAEe^CU$ywTj3z@0&49qC^W<*i=rf^&jlD1*N-Ek*
zRo7`CnX>h?ot9ZRFoL7yEPF$DpmC}MA1|&dAR@D~W~ba_Jqd1y`N}zQgeDDuM?nPm
z%M?y-?5*2138B1{y^0&+KOePYcabGN>ag=(6`-@qgxS)iM}NY_pg-|W0@wWhkC>xF
zJ^-IIX15U$Is`ePU%1G!do^*3>O+{_2cpyf&4*l&rN+&!u8Y+0O9>~%^dxif_8JZ#
z>+#)OLLe-Nb?Pc>n7Y!H{ZE@OckYdj27zjVk%S#{dAnN9&`jHB0vqUquf0rXCaT!(
z=7$|DpFf3Z@2zWm5ckzi&#giVLv(9u{v}hH;Cj5Chrxhkvkigr11IfEy+84OM&$-~
zmsd+FQq(ctDYS>(W5E!u{_L&voBr$6tB|HtCXB$Mrrt<-y&NR0s7jcRVel!@Gr0O`
zr`uzL?R=YtmHdwy`(xNaD^iPceThdVwERLO%`6Mjv$-*(P(J9HO20ElpoU+)IYgsF
zm2<WUceMsd|0jP~q`G?kh?oF?)gSljk%h?M)V*G#=Oeg_PmiR=lI6pHp;Q7G+oS3y
zQZcZ-OB$5ghl&;X3>*UD9t{eU>}^s}HRBLbrztqL5p9dUb8Q`YaLQ#dKn0v}ou@2J
zaDB`{5tc>ui2uGN!ItSUHv|RcwfcjrBvF4KdZ;`AwjLSZ`n9^hXi;nI4}asWP9)ev
zyqk%5O*Cy|D@b@Jq2^QJy$f{67&WfbT$y_Cj$b&2zNVGctEYfx7fmxfT*qESzp~n?
zAdgKXv~tJXiBL>C(p&6hhX-IhJ$%vtr6Y%ItP^;7AL}D<Yh}-L&h+asp@Dw>yj2Oo
zOEK?#wajPdx?t3>BdpAJFk{52vzo80a`sHp$@zE7F*EUK^5g6L1WDeB`(yOCxTn<{
z8s;N59~82A#?zn1d+VPuG(z~cMgNGipxmNbYEX=u!t+8wczA&`=5<$G#*;8-#|KZ+
zPE3CQd2A>nirV8zm&;E=Mcn62FW<rhJIDz(w%n$x*@ISZLw!Rj7o}Fow_D#&^FXM_
zBSSP%W_R|^A|tGazYB!_qY>|3W?A>0`48s8YyzcUy+H>f)@05FO)Vr~ORw$qKRIGv
z%A;j(KmnQd*Ly6Cly*$JXK4`w#T4qWW~|{!((D&mUK524tI_PLec;UOb_j%nn!W7K
zMO4o;FX=IU!JGs<lkRXgbv)Q~OM_0<C4B$WpA&gbYFUYBHeuu(JJ<l2FmNJQNUja;
zO+-Tve|Ue;9>hAH;$d=A#Vunn&~AWW4xYi$0+l)^5E#)*-;iQ`%s^af&YMagHW)3c
z%2>nf6dJUnUqTB-TTDFZ+4l6D#cINywAvvD!2;WhpSs^Q(rzMq8+rT+;oz;1Gl9+L
zIfrGt_J{7wp2m1O3#Py0J)c>h|L5@-We}}{{b(;iN~X)NxEh=c-2A2UGxS4D<~$jM
z%jdx^SF_a9ZC|E(eK=UzFIMB6bbC!k-Da?Ao4<=z?ufik)2|;Ca1;%54jaR`K%*z4
zu~-(_kDLfi-IzG(MMP3k^Y?nZJ}3`x-ze`-ONNyi>&_pZ0ieNnrkNOPiW6#}jaaG#
zg;Y`_RM;K$Q`rh|+$0%>Ky_m?qj&KzyU3o9css_euOZvpfQ)b>qBU?D_|tQ4jfJ>f
z_PsA?4Yko2ykUupwVG>*=c8W2tpXwmqXGZ-&+qZzKaMV${?sqtuAPFaBu+b3KCfma
zdRFNnD&KZq>jW;%fvFDdASB3#bvT41U!&T@9s@|eF(v+|BdU1Ls8T<#*rB#g)DG0Y
zdZ0+XP#K6P@4F)U8g+N+UUhOp*{JHpQ3UAK+q>qq!mwnR$G~o_r%!ST3Edz_^Y-<J
zMFZJFjA`-z4~sx_zpl;$g~00Is$@UDqSNnYZ-l>TyD$(PQ6mniujhr0V7LWzUnLW`
zuk4qNS{$rVPi3ox0#mJR0wkG&kLhK6yujp&pkgzRbp+Q9`*wi3CRAYQSu9}Px-=Go
z^j)g3+!DH-I4u2me^A5YU$-6~|1b|UUJs51Y{yr|7zZa}@MEC=GsW5$5m#MQ__86U
zK!dsX3jJIzw~=MQIy+I>S%tNHyXs?ftnI?h`pSMC7HvtW{FzDjWU;0JTNKW*T4BLw
z>Qll4K(`WyufN?N#Ca`&K?3U)SV5ZdSn(AC3bl{^WB~Q8F+IhG)YnVG7nc%U*@>@E
zawLpw0hTFl=BrGB@iBUK{zrTTGn6{44w*?X$YM#c=gXS!$0=*TaG3u;lCNgzzFM+c
zfhCo&_{vs<mGXZ~0-%0-cqGBq(9OX~d~u0wP@(19$<%BL3+%C(tK!1S-LS9hGf4`u
zF38LQ(6d+|&AF#J&36-`3G0@QT6KV@O12$m3+NRMvsdOTL{t_KX-|B72Pz2XY=3dG
z?h>Gfy0QmHTmU`9_^L;ms&dLB;!O$*ii8L&Tl^pK6~w)i%25UH99D~^A)R@_YrY%a
zO%c{Kx|KNm{9m%L)GQS~)$3=gzItULn4;b2^=BVT#=b%|(G?5^T|ptG*@KfP6~Wk7
zOVLhzMfOLt61Y)eZTfr+#^#Ot%6=A$8ek1)=D?^H3(%z7i+bVbFk#*1{xS~m!+o-_
z27dw~ZHrq7r722$W%Z^OKbDJz!deKsHi8`z=W45m)j2o@;Z?nC;426unhjgJvM(&=
zYK0ZQNnZgwi3eC%4vU<{LWo~+M^G;;vAs-Y2GDK9VgA1~Va)=G`Pt(su)sVm->$o@
zQNPJKrH{{AJqIJ4vMbnSLorrO49atGq<*?WOC4VU1v!NkxFKPk`;#QBU9ip3gPZad
z8=sk(Tp7Zf_;rPq1~ABCDIwKoT_c7VspDwmmio%!r~5Qv5d$e{_1IERnZPP7e}&F5
z`M@yxabm%6ISA22um@L7DQXvz{dI-v&(!#eMD<hc<`#qq07$}GlfW)J<2T?dNn#_h
z*y4cVs=4<ED_*j&R#-6FQHW$h?jaWSAoUpQ!dJI8<L>Z(RAC*zzI+AN{OTRzv}n-Z
z*lOTJ7FNygPZ{U0QXOA)qpU<w-GgKJ#(LS6h#DCtywSeV6(LCZ0;4AnropG?Y{PZJ
z^6_|VaaeKHWGuvUoCLs!h6cR&l29$ZB4@FX47co_WKl1n&$<~D2NE)YgCnekvB9k?
z@D<Xbd7UJzqBh|UBw@LNTB<bwQ@$EWoEj-+zFcm=jS35L1uVwO+6|KUhu7&VHWE_8
zs{MhXxk!432NgaYTUlArX5GDNT_`b&h0frI^mDw}x$c-R#aTQugM%Y1X>9N{m?vP)
zSD*o19MMzZF#qh^6Uo>-QaPw)L$u^8x?*Y@YjBmqG9fcAs~48iS7z6iQQjP0i?2AI
zpNTCl-rJYMs>x8C<2b;OUyKZNE8S(5S<n&7M6fSNinu?=kp?ck{MqeRgf+B0M}I)5
z`Ia3VVZA<{1@oM&dd$XGIH>35ZiGKRnTI~Y5`x+#VXzE(XudL5O!A9p&sX+^1$kXz
zL$$b*Ein0j4PT9JUq@IKT9l)zfq}R0(+4aVF|#u4?KB+qW-{v5XL1$`oilxRWf$pS
z(;c|!46PFuIKpy-rAuHffNADuiN2!W+=y~_OXA08fxagZf;!4(d?l#9qKPE>X&bK4
zS763hvZFNJ8g@E^y|SDCtgkqhpP5v`s{MO!Cu1`#%bBVp^~wyd%pJtkZVcosR##3d
zcSDE*NS|pTR_}=%9ATY!Jb!{|PKdrTisWhGNYd~Bv+qf2iGIRDIIZ$XIN8TDMM1dQ
z3|4<%C4J0ZJKN1;6|$}Fu$*k$;(9P9!PUS|M<Q=!Rqfwfj7+C_FiXgrPESwIc|!o)
zTqX`+ki|k5@SoigL;*sXX+#G8^~!R1Y`Ux=uzGBvr%Z9yLkh<b5u=3?YTxlk4NuZ)
zotDckmwriD0xiV&DlGN$Ok+fl?D)#QuyO@v6F^FipNCg!X~u4rVb+UQe3iS3u!`M{
zy*&%778hePJj+>n_sWWLJnNm~0C?{TYZPLkE|c!h93lg(JH*{qV>v9`H(59;O&!n9
zgIP|fzM@0Col(j^Q9|^yB%>w2E9gpuMORP**0F&YUrBvM6CDw6_7P!J@zoid`7D#u
ze2joH@Oc}|A<4c9z@^~Ra#%GWhgAcMk;pU))|q}jt<FxBf0~r&SuCW&P5x(@VkKo>
z#Q~t(xhiy67&N&xXF=VPW7}6YTHY1?6B8#0kxo;um#WYF3BMqS?Y7iPXnhs#SA$g-
zT;YI;nPRT?b=wM$uhbuQKucX+7hb2YIF{un-@fgHRg-C+XKkKmZiNR0zEje$-0>H&
z+#U78eZD)1$Uxkv+b96~H~Y%r>3vh1pTA-i4Yqwn2lo|}{E3v-0u7{)JQWi`zsnUC
zOQ=Iq6JojAed8-v*o13Pb);rjSN46S{<H^rcGVJx>+uzP@ILbP(f(ii`-`zqgon#;
z@H_?`VrQ!2hrBbiEEdubalhaZ5rE}P8r@PH{&-9jmQGIrbqk?wU)j0c-+dJ7`s&hR
zQ4ELue!n1;QfD&5jkV!QnToG4uy-YeaPek+)$5{lg0Mi^QHB#rV9cAtHx00c#BpqF
z{e$ePM~@!8or&`-T$V{M-);7OmduK4`ZcI3!@r`?e_pVN1OR_~_vSdj(jY-t$4~VY
zSYt~Td^Otw92>X$>yHzup0~CDYI0=dml4INBw?LFgXah-&_VDOqS5;v%PB0l3~QSB
z3LszDqt!iRcMRQQ)mQA%(e~R%5C8i6uSe_a5gsJC3i$JJ&uSJ6BG2^?F5~AR7Sa-5
zxjRkEVlCg=exnWmTez`~e<(sPuLeCYZTrf;uwG91PrL681l~P)^2{IfCxmyk8X}Pr
z6AHmZ%R+pGqrSniu)q+6`o&k{yI@9G(8@7NKAy_Dd0$BqA6s94^!ML?J$&@x=xBz8
zt0VM$MwM5mVLLa8rLmSX5z?15^Z72NL=+A(Aqm||8~{L`I5DW@X#;wxj~)Mh?Y_cq
z`1xla#m+ecwOZ-Ugx~+I{Nzb85I|G{jaH*5xFmb=6;4A;oL-%;j1MSgE7dw+!lJO5
z)eo&dIy&0f1O@KRVb+YVc4ubZe|RW|Reyh2U+-*NCSyOq0?<#LV3pB18seP?g-B2O
z?hsGSV)5v9;&3LJ!5;pfz4LKOVr%30f#LyC2Uu(!q4Bp@1yC6kOi+syyb|zQ(ZnsZ
zxtHFXZ}Z*;Kw-J!`Pc6O)Lr(RWtWX`Zt$6!$)aqq{ml1#d(Js|>d5wJJ{kmVL?~bB
z7M45oA%ub85kiv<gh~}_`4i@Uy-_)@Ps~>;)JJEuZ&!oPsJx^+`*E!b?NpS71-LQ#
zp1!x;b}C13ZXfW?{;B{fY{cX7#jjt#E-wD|_Uw#@AHm$jx>R45W{U;hR@4%~dyUm1
zqTtAE1F+xdW#crUfn*2}+=q^QKJOs1%A2<QLH!e0Bwt1K`zq+Uh&8C)`)bEi43lW(
z3e6S^1%x&HIjn2G=zN8dHmWjVb(+^#LFGkN;w#EBH&5PyGPP~z-6;-loJ3X)a=Eov
z+qqN+0aY`Zv)@v`eEt8|Ur4UX@HGs*gdQ3NS&Kz#tZAyn0>pqbD(xG@mO+kKLtzEU
z*j3{7bNk`zM3QpTj@h)MJzqsZ5v0O($m(hmYB=-M<r0L+50jJO)6*MqL50)+@W?Jw
zrRNzi(nxW%$g)!Jg_XJb_|gq>@Yp-(#H-X;Zo2@m?Uazqr8r<Sm2So=8*x=S{g#6t
z%X&*tvKEW5NhUwr*lS&uL+`>dex6d?p95$R8PZzwZ2=+ZW=Y7N_iN8regJ*O3Lb~8
z4O~sEr+!jdeXxc?v1;K?R9dIG@azl+67=RPLTR*)+W0}jx*5A<4Jy=BgatTFs;q;9
zoU@HHki%s%=~QabX8XFBO2s*j!|=o5mqw;Q3chWzV9H{dlC@Yb-nPH5fSSyWvroSQ
zZu13)29;rlwe>9lN<{O1-T6wpu!4uyCN8V%j?n3KnJ%o6DgeTNSCu|(o${56ux|Px
zEYFk6c>r}`v8$|{Q^q3K9;*)GL{)@TI-TaAUo1ab00N`MB7)kJ-CN;Xm%gv!kB`Qe
zlp@v~8c>G9`s14^3koDn=7>gL+080yQ}q?Wbx(zQ*0l?3p8aV-=+0M#(##HO<A-!u
zZ=QTS0DZzDWNc0uw`cYhxXf89m9ph>wzbsut4xN6ezGvJ3^GW&eqU!{kg(x9;^oI=
zBLZw39jzl4oNsR+Bi0ZAci`J|P#|V9#q|10yRgb3D=n;Woqcq&Iy+Bi+1p?RgXk+g
z6&B$K2<zRG%LC9aEZ#|B<ImFR0~=9Q&XzhjNORDC$nHUq!`-!5WJR|uo5k`{(`vU@
zKU=Uu#PR|fJca=5<W0xG1|R1AdVQr`SndleLs*jnb07d|VC7c~_q6-UjnvURHY#7n
z=$adSBl?OK)=N+&?W9?2#j5yOCR2llVOng~=@tv7e4k|(=zQjx|6aJwarOkm)RB)z
z1IQ3Kd~60bI7&}6==T+{(^c|1WEF9VOeR^6I#LI(JjFG(uK;yHVRojX;;XKNrLrE>
zDXdh^NwFA@A56hR!tFm3jYPLtF!y3lYA8&06te%laC_rROfyaU-lM@|2vi*3{s1<K
zyuGa1R~XchC97a06bf4jY+;4<PIS#11cbgjU!j}PlB%ynVd<hEt_K<LV{2HCuyS$e
zJM5VTy2V<*4_jW4u&flZ(7M7sIn%}kK!e5*fY;wng23d9*_70muhfm@PF^JKRzi5U
z7-kBKpm&dt$Ivhh)nA2>h>kh;-U|yA=084J1x0HAT4CY+5ey=9iv|3?Z$sW<QQV%}
zu*otO-XFk-HKZ}qpdg#FIDw_xS2PG=cTfnmmVx18PZmX#gf&^zE3B0gMuc`>32xLK
z!sx1ch1I375J)JOE}vAOldzoX!rEpm3DfYvY)njp2&=_{4c|WB-eO^eMWJPU4l$TB
z4&D~%A#nUnX^=gdKkU7);Qaj7RiRMbjS=D4swAwCPGMoea4r7{!z}8SnbEqsu(~vs
z^o6*1dF6r5!s0=VGuHnSLf@ee!eX*4URS^VVj8QoSbzxNHU8yAG~DLk?avtkfyZ_Q
zvzW}W9{Vbo@HcH`PF`G8#XO`UEFH!Y4D*PfzrUi#M%4jT+FyxZUS4J4yM<MAQmkQk
zSe7T2cpxaZSoBFVq{ZSC-m&-N#tlR>Z5g;N&_n(_`Nr1Lj@fh$8YpY?l{*%T+RgdA
zJ-S=11rgy#3Tt&mXwO$OH-NgOK2wTxvXf3>!7T+<UjeU0Sa6V|Dl8rz6g>UtJt)B4
z&WIAY&z7k+mAzN^TJxK&a~p<Rpoi=_whF)^kl*cDzKZz$0g|iC(PT10Kk2;}R=v1l
zm=%P|eZHEhqwWz#=aCYiS6HI2W<NRW&>8G>)<Bi&n#@?XTq*+(2}cc$GFvRzc(KX1
zwOC4DYwq*-0-{;=%>f!DhD1&t`<Wv`erlpYU%o15V*!$^tbu?(QpQZ@9QRmQ^D`@k
zrv~zErBp=-Vaiwf=iEDvuy)m86|O!BJg9)jv<M3_ZQBWnt>QV`HV+TS^dm1Qvh3UE
zM0qVpTPz=Y7K^Z8q_0*5;0JFD^e|wZL|DQ~=FNY8f4++O{dTj}Y~M|sV`b|^LM}yN
z=`hwcaTTHAEW=DucfLZA(#%aSh1GVAS@r6ZhN7u9HdX@-WF#4@dALk^F_(JtfJ37#
zC8@SpfR}vBom(u_0v7(F_72`&dx!>zAt#P4)~1p2@A<@c`3gtAoHmk`IS{yxlsgvC
z*$c%vtcVU_&EMSt-9pgrD|$AfbFtp}7dr{7R=@i65`!w(sZCf=OF5e<D|Z*I_-)c;
zaquvB*+Zkim}i(WN@^^u++rcv8-GT>-TY_Y5*i$a9Ge~&8IM=+P}8;aUle>*P9&mc
zLcpK+qOw5Bo<^-Mr6pk)Gz*Kq?8|Tq%UAm6+(AO;@YQKe=()OF1L&c!;8kvIo0M1a
zgN%6Sd(QS2X!>~&mU_g3_rAThYoHas+Fs-M2K|0d`!><QFvR`baZ+OlYd3$$_LaL_
zF1tJV%3aR-NwPBA1JP_Y2%W*@T@tRs;ZudJIji0Ks<QG_Cajez(nn=f{ianUL)!-E
zLW$(7-U=&~%Rn_#1qp>TDc=jwf2OE|u&9V7In{ky8prmOTP(CbZuA0uMWNA)28AIp
zlf#ebg9OgmXUYVVi9ka|iF0UhLHR11ATJ<9{fQu`lMFQk<<BB??P8tQ5Ds=Pta$?^
ztP0Y{%xJZ1VNq`;OIX#hzXgDv3X5|tVxY*Ra<&8LJ4=r^=m?fZEbhqnUdt>Nn%bvM
zngQUJjC(v942Iy4V=F>GixD%cz;cuR++=PM@CV_-EcI2e9E(O9$;$5E$zo8YmW>9;
znlHLjX@2JCE?QXDNcRV8RZCCh!ZKXx7FJzdSS&!*S1+N*!itZjfdOuWth0UxtPyc&
zR6~meobib7++vBd4YIvB0KC^?Sw>QLZfR+b|0yLl#N;?+JZ8K35D#*W4^3tXfrKPq
z#m>n`L{=nOVbH>t>o74>C?T#!cU_dQlF+@d>IPa^vpOrRm8*g-VX3SL-;_QTp~u21
ztT{8lq%q;p=ki@VhJk`QdXze8X4$CRVxbMA(MwJ5?pvfS7UvxqnV6Uu`45MFI)=P9
zIV$vX_L?<;l_cp(M$=br_jxpGZY~sKS<nRe9pSt+d>Ru=ou;u|ZNjo9^&GBMU<hl*
zgHW%=M!N}Ei1~LGKK?xqy%yG+v29Qyz1H85#f^yRNn4A>FZkv(wOIUuafy?!zu#N-
zMT_yzES8BT&we^%4JmIqw%q6r$)U(Q3}4a2YO(WZBUuHa{)iicHeyM;HE)jYxaDW_
zCBh$Eu6tpHB6@s<DwMDY^L-YUG6)HOU(Q3Xg@w0s??4e8x7p%V=oj8cqJ1>AScD_r
zGSy-+XB+m7o1E<YM1IpE9`LteA;M}wUifn{<k;c(gL=ryTX{dG_Z2b-1e(jh^Yb8R
zrIv_V^VYz5mbF=>oCx3Q${O+j1Kh?=NDzcsf-oy$cuEVaR7E=2DV6Go<~xLi2*Ty%
zDrg6<X%be=xdxp$Bjx)W=o8N-c%WgoSmH-V9HYgeXLRR`#&wyn5NWYC?tC?3xi{9x
zI{K*?0%XeFBYVi$7gD&RCNqnuKNtkfxMO}2t^y=nwLis@5Ao@4C>-{CVmmR9Cl>SE
zaZ03A3O67+o4n<JPbVi0D+a?#6EfajBJ`}os*JMBdfmc82w~!@dFZ{c4#re;#HVex
z)Ks4W)-({bwpijxGm;hyE9YtN(b0zNzhv>A<r&=i?A}*|X&(Jd3~@Ug&#9*@kvG!?
zR*dZ{dknNwZ*G5%O5<47ll1Qvi@W~fu80s0|L$^qXlL>k7hz_mG%K856FlVm>MHrx
zqJjuQuY~2H#zwVftWNprNfkpkXcN|&^A)IY7SAoF`!X~-u?$*RmbO^HlO>|s(W5Ok
z$2VodLQ9q-jGC-Vg*C#Ve=9>`TaJ^HlNfH_M(Bv3JMPt#KL-jDu$V*@#z7;IFWKyl
zlvuz{bY-{O1NIibiw%3rNiIT|5RxDW#o~3PETK>c7HT!I|5Ba9B2<wMV1Bg7R*^1Y
zAwr|SDgg9eSaju1)7oB``G>tTa7tob!}!Y{_uchk*WI=D&JGQTgd&PUkg0>{Aw@^B
z%FNO^9Xv&II+N8!NKw=8U%#>n9}DctE(_h5{Y_IkI!;r=Z{B@)zW3`vX*7r`CQ~eB
zZCWw9KnLLl<s;+O`U(`D_cu&fD!;6-999NY#MLdRars_cAq}sxLL$G7O%P58;h)Rg
zRyLcBXh;i!z-hUX)zz;mf)IOrb**#u$JMVYTe*#Jrhw*vW-fh=!a5~j0TObb*(xl=
zCkMq#g64Qag=G}Ew>3MJ*FO(Gm%F~FA&M&IQY`f{Xt}1cDH>w6im|*}VUYkIm-=VI
za_}q;R1w2a<%1~x)%Yq~{1zkFM3QS8;ffd~onDMxAJo}OUQ?<tH|HT}2S!b-YSI1D
zrk;D-e+NDHoZq`Zvy4$;8EqWJ_Skta+~pxl8jKTclN&G5`c{BcQ>>4&zOdvVvnFeV
z1rsTLR{dzIURZttza$Qsfg0i}fosT$nAmH0nQedLK4CKvmeV1Utz+w-jm#Np$wh=p
z$#fnK09%bkMm5HAPl6@3LZjLV3p)~)I$vF&X?EKX*6zFIwtccb{JE<&Qa{}^+D?ik
zBSo$WjHXyX|9~3u5)+g(!h!(L6Q~fU!un<3C3Hv(P{gXF_C#?J>Os7u4J^Y5i()7u
zPcjnY@<KY}v7#&M#ya&;U->4%8lw%SL$quxxbamPyCbZbcP6H$Kc5Xh=w8D?T1d68
zL((u}DGZ}DrdZJGU-&J<M5(YeDVCC|2`ebWuZe>=P{%4<^H>xKXvnO7TSPQ9VP#O4
zl6nq0mi1s)X?+8Q%cbt`bGuH#Mqyc>vE<W(<1$)c_ukp93VQblO&~x2{CWNLPwX^M
zqS_G)r_|4>%JhT<vkWr<pjq$7FGy8mUC&oR0)2!dEYGU=-UIa%R`anrn}p@bq+@wb
zh|Hg1&wb@Na)rW|;nT_R<x$9IF~RbTHY|BSBXqxwt`{9GV3&lo{B9Xd@p^xFd<VNi
z{H}y1Xe==JfA?!sEP7e3206u~q<Ue2!r!D=pe)2wsfC3J8TtZ8SP4+s7R7%+!wSpl
zv_Ny5IbqG`D#KMehdrRx=^SdQqALuRm~@YV1z}-Jo?iK?gqC=9>m#8wGK^+<KK^-K
z>E0qNt0@*ran)c{WdN=Jo0T=js}UA>`N4ivlp`!L0~I_8adi&r+1O+kJ=hvf2VuU|
z(yX+Q=Y%c#rQQmwRCJxz$?F(w>bV=|ZbnkOEFPR%oitzF3!^b7L+fZ7>BaDaE;Jkh
zzfGVSNaKj5Fl!RM23oVYweh+fW=BSZI$`k=^b1Z4iz0fU!j>p*Lp@=ZT?K3niLqQu
zBG^bKTPZO_HVF2J=9?qxZ%i$?t&LdZsQKhG8lwO8u<ziB2Q9Mu#|awqZ0IRkU}yZZ
z?F|Qo-kxeP#ll&&jist=)<{_Bon9hPhdjtHL4V+|S2toUdZ0o=+yo7)EPDc|!<LS)
zvZ$dHNmnXYxg_?E=B9h`3~G2ztsTrMxX($Wt}F`c<om%GTISUs%eUQA|HRt#Car&d
zuui&jxtE1E3Td~&UtQWDBY>W<P+pqWz76Q-*A(ar9B{j;t7?-WnGhdC9b{45+yKzO
ze6XdlVw&&CsFkb81;Jj@w9?%*rY*i7m#y{O3#NCqw`BMG`7(A<SnETUe|+@W@V=el
zI~hz7L^PXX5v{S}(@HJH(!W#<QCVXGP=^%fy#)FLhi&n{^}d3LD9%G2C6-+=dRgvq
zt;k`Gxkx2vkL1p<w=~_%<vIclqpnFX&rA0y=}1`AR|k{Wk+6(A3x$!90$N3WK5l1?
zboRGdq*zO_=%yKkVWRpImRf@Nr~ve5isew6Uri()m*AQU^%x;#F2N=W1}{qzVOfI*
z!ep*;{3e|(Vb1|Ar%lDHBbV>YN(<`*G@v=Cuf8v1C+t#T>7RSHj<Wyd!Jh<eL0%Z7
z^0V?rA&s%{3KC!fa!X<1HBx{Xlr>!kJ_vn@!{6GLyJuBQl#E`Mk-QM$SRG$wB5KZ_
z!=FKeotjS$61UruuqN#g)(L$c?2@o%hRR5>G-Q2wp`aa1z40Q&YKlcG4HFDAVI(Yw
z^31F@#Y!pAk2tJ~n+5G<UoWA8zORy)5!e>K`jm|cc_E!E;s1fJezaKM?kQSmyBCg|
zeh}VZMqbP3biV4&BVl1=<_swo!}oDJ8V)4*8x^0m6pL<}iK;5AZoWd5MqjB%bm|W{
zOKbg^VmV|s#fZjN>>{Wb_zE!@;V5afX0;VjPv0cFEhVG4s7^CQ8emaQEWA%R=DtO8
z*bckr=O@@*VLh@MxoaB^U-n<yya>yB-JLqj&#Xloe5L(V3No75%HOvsmUG>65^9v*
z*A|cJ`KnaCoGTU+Dx2J6Nkp=ju6&f<D`0PF@)vE49v7gAGkVCzO3&T8ug1>5pJ3<0
zdV>0tXGSFK9BKV<JkaT+7I+gyN=GRcdVlv4M3VX%kfE{cjw*C-gRBu&5c&>>d2NEV
zD2f{fFT`{{kwgs{fy<S$X|9s9V{b9Kx#oyAur!Ri9(zn0{q%gYQ(uwO178?BX4g<y
zPlsmE7NYxKo<%#89=$!a^At-~FQR}QZHlG+kZx(9EbwvYN1V%YUP2Y}l3twyEqx`F
zTAVFZbM`&Y&j_t_f~>Glr@(OG3Ym=E%b`%GzVcMoiz0S;!g}=XDcXY+7(eW&;oyHW
zYuT1fDHbZsM+HF&ehq5#!^Rju_A+q=YD5S5Dd;yG5@Mph1urHFa1G+zhYugJ+3bf5
zK^1c4t7NOwH=OW;U=IO<x|2==%X$^-%pD?a`wFlHbE9-!U-yJn9+{D`V`#%+e21V#
z<P_a^Y(t8Lv(sw|z|I}Di)Hj?OPonjW643j@3vq${9x-=BNMgJaKp=VB7Y6Hn)S4t
zujVpoF3-ibVqD~`*Uy60-y6BM(tX{WJnSlZzzj$3F>FIvfO-^0>G~@>g=K%_u5CCR
z?n`Km9l8k1mJ|!U(_R2feGL+0VMTey3pJ*AeggUp=O{G2ET`~T6#uS9TZ>{|WNQc+
zBn|nMCl}$kyb#GC?!~zD9QKae?twVEufMzf(&zdCW;k|-!HC=14W;9QQ$(ADrJqur
z(c8W3L0SLu(2tgg(@ujeDHiVBy)y+c#V}E0VL^0_-+?L^@3$1oA-O58)CP{fL~+qm
zTQAeV_KN0t(6b$5^IUqPgcZtH#wuX1sA)pyi!WUv1IHY>#;o+*t>#$eD_@Zw2<z3*
z6SNny^YF`y2{cdiw*W!wM4Lw}S-HbZRZ^^Y>(r7GWKvM$EuZSI6w6_IU~>a*nBT0u
zUzicuW~i^q8!>^+$0Af<<un&7^;lR4*a|2V4V6TEp#rqeMX@+<T~}Bx()p^Z!g?~a
zi*_Rg4i5tbGzp=Luxv}Qz|SlZm}RCFV_$(3<O2k5kmLQ8VmT0YAOZA9p?Fs9lCsU@
zvv|#?h>&Nw#T;sg^wd~rK=FRD3<mgIM`mlI*5|9C0~-gQKlO_XWMo7}`-$!!?(bMD
zjoO-GffWB5Ku9r5y1t^pRiN&Z!G21y9FAyc1&boPg;2rsFSZrxtvJaKLM3O<(#Xo#
zSiKk4=>1{=j5u)>p?!Y1N39F1e2@C7yTV$gk-M$Pfj5T%3C$3omwVZjVgZ1(#Q5PY
z(=>cR1EhXWLo~%NAoLSX<X(bnvh*g^ZINwB40Dy?N{GxOMPsZa_LgR2kc-f5UG~e6
zZx`C7FnS)g9ARDDv+z7<sTxXVhF)QJh`u=d_mrv9=z@$CTT(1FkYeJJ9Guq55L)2n
z7iz`|@+pLV!C{^iBLu2z-QOdq6cTJ}ID!2p#4;t+A;JmCpIvqjyZ&?J0Yk{CiD$x#
zkPoa1>%w<%gm&_JXhvUU1iOU%{NbAy61L0i8$X&snefKrO94fZbyKXHTIijW6uqNf
zpd)!@U0=b(AU_K?D1&$X&?h*Mm4U?Hw1JhZ7O+HCkJ$Dcs^}W))6X5TE{e2)rAs(;
zT!1zyyM1sgy6cdSut&mrL<g)cpac%vZaBzsQ;V>oUVi$9B~?;%C352!Mff`b*{iBd
z`d!f%7QE$a6?YQ28<(I@aG)2du86dbwXG{GZVwIVy|Lh$>ZIiv3xzJ=R(!4#Xp=CF
zuuMv8^89=Z?WL?IEO}&v&YRu9|M0NQhC}pC0Ndt&?499L+ISkrA7gw>#)WILxv)8I
zf-#dp3Klw0OKhQTD~?CEcec|l_Ga%EZJFJD)uD1$x@!LQ3lK`kFOh@*yL9rIadd_k
zkQaV@^7WhN$E!?^8Dc7ncUwIQ7MP`|tkhSTNNJ+Cus|O*M$@d2NBAm;c*k*8hw_&?
zw+|M(57#_-i+?g>ITP}~`&!2E(SPiIzHtM-AlEbep1~P&d2!Dxa(`g8J>~^}+=weY
zPUbj3X;dl-Ob=?PtXg3##Ue(h7$xR=fxJZ3^7*U?1fz}a2m>^MMfe(sNFLB<2K0Dq
z`U*!2NY^|m<Dbh|M8ztR@%KD)svWZDPU7&@#_WBCouRPE$o;<v060$ydPA3dltwlG
zzN+RJI~0{;vR_gxw+2-)revv>TxrE(RF0}>Ue4l2-3Ccu75Ey6_>H6A4IhABvz6aN
z2y3y%B2Sbj8dx5D^c%b1q|UEl3S)h2&S3o&A)wuR_dHtee-Xh1=ZYvd8WS51a^nPj
z!WV_1scgpLhbdM~avPl}wHTwQSRab2c?DD|GkgU#LFZxliTM18D|LpqhVN!3EPTFx
z=j|UOtcMAozJjgo)V0qip97Rk?Y>G~&trSevwL25gkXa6MmlaxXgEl#$0GVf5twl(
zlUxP+7;;WVAP`%Ytt?~p7tgq0RK6H1&9bi%mY#^@Fmk`*xP1sAEYeu(FL2%f$#o*(
zdm2iu+=TAAdkd@E{OcvoQCMW;ZU6wzA47@XK4dA4Ec%3JOq>%ILk){o=@{cSVzpu;
zs6MI)E@W9og8{0*im>!V?9ki|^f=>6*LIQZap8o8FXnA5aHE_`bU%YnGX8eEU!JF~
zgA40f^P5Xtps?Qj=VJKwix{$4#an1BYfL?0F;tJ7i~}l^3QnX}j1U$jfg9OcEsH~8
z@v!VfT%HXEEMuRmTV<@twFaN*)Qdao&*#<;1rHu2x&f|!B?UgX*+@Z9VHumV@f8g4
zA*_DO9RL?YHs0_&3hZ@&(r8U!T#Z$eun$iW=X6Q6Sd285M~)>kmZwBkP+{4Lctz7k
zVAAEdm(HDj9=v~Qpg%s%)>!0$10<P5kR=SCyW1I<%=Hw)>Nd}B@fA!dtig{D?zy+z
z#RUord9@LjMRY+tj!XW9#Sl>a+`WK(M1~l#)R>#FC>h+4s?6X8RD`8JqA()4PoLfN
z6Dw{%>3FHM=D{iY<?fyJ9b*pb`oIHxnb^)C_-AXyPuo4?6=AuKeAaOj7ngIp>SyLG
z<?-AznBaoQ>J2@OB<WQZ{gP$e1}vMfP;rh}1#-Z$W-@nUG0Y&};&ox!k0^|I%+Y(j
zZzcM`00*aD59XkMI_BDBoC)9uBaz5J5Z<Qz6s%Gk*FG|K+d4shvw6|MTY(Ul{p^2t
z(aGm;zip3((8a(jjfN_^>}im2x(JK1g;*!n^-IN=IxZ|?z`8ZX5>>{^?d7i_#ftVc
z?Dhk9?l)3qYuq%EJ83LqQN}X5iIf3>=&o#q>bavE*B8yrHWC1YzH09Y>j!Jq=t7N!
zh2w^vMGHyRO^RBOMOcbQghl1@!^@G!PeujZOISs41!b$-ATmpyVny7o(|d!Z$j`w+
za<9(08q4p*wD=hdHxuXA5RCT9Hca9uwb>5jtMlgOE)u{L{sIqSJpmvh_a6vhEvn%l
z4GN|4A(|9QSc4{38W9aJF{-u{E2}7!m#}K!4$oSJ_pc$viXwOG5LE}sgEemFafvk6
zo`J#GH5a`b^AQ%=z`BHhw0$fd?QU!Z8L)27o86?3@ydr-;1*#4+L6A!*Tz4>SSV?Y
zxFVvYug1T?o}f<(t{K))SfV8HyrfXo<6^O5(rTHn!~#xOVB~An0+{gCWlyo9#|TT0
z0ru&78OFIf;JAIn$EEkgd=;3^jEpsT?K;tD@K?nO(Q`+VyQ$_!gIqihh{26TzMCbi
ze>va%$xlz*dl2)-$j2L6R*&0RJqcKAAcZC8^ZAO98_iD?#V~mj&k3sqUT6$kSpF0%
z;*h3aL2{qwoW9!QxKcUUlg-|mojYZ;Sp1AN(Y|H_%YeYN&$n+TC1cxH;Dy`zs|T)!
zCx*Icv|&wHCS#|2waL2LA{!14SPA{1=2%D5ow8E*?{l?QtJo?Qi#k;+NIm+tsRb97
zR24KZQCLBOr6uBwt^>T_xOWbZnI-p92e8lKsDE{TXBRCNKVty_*}#Hn*j$<5xtoo1
z@GY!2zc(}PpW8jin&1}KH-QJ1uz*<eP6%s35XM@S4V-{f$eJjEYlfB6^4UQ&1^|Y=
zizQMMZwX1Hq97vx=t2>em55}WegvI5eb5FwM|F-n?Eqk(oew)txr00RpB`C9)lWNP
zg>ltnU*T0Eu?5p`v$B1=u&x6LD?|8dg0QBVy&n8@gX8>j?Ei)f7nZ2U2}B&j5C=$#
ztX3+TrWIM?dlP|iyC=-mMBBxnLe+i*3$Z$dus{`7MF7aM><KI>5qmUOzAVuP2sS$J
z*0{AJFtJqg;q?CdUoa%QPuHI&=UKt(SPiV;BqtqLv9<Bhudp&3D;d09SSF$C4$ppi
zgJWEpB`iXN3q*`NVXd+|pFT0kW))4ZRvBhh5LQh|34*SvvWb!}oH!qTwv`&t*2OZw
z;$(6Ui$v4}O&oq(N+LR??+)M<#~qIM+c|EpJo*hQzc1~UEMbK;mVto*zjPDlFdfFn
z39)->qwP~zTPwe3&{J66#tJ1YD{?0#xIhXn!qQb$(~jBI)z$CKFP5!V%`{5Qru#@d
ze&HlX^hR@|8%nZ^RiHeY?r8*X(yVZd0C{0qQ>=(9nman;xK{`xPD}QR10ufqu!p6!
zUvU=3x_><{VeNJk0rn}7+xafT_1rDCnj4?IKmH5@rUwpTeKuE({-MH><0L&xX_{&x
zE3YM^54xh{92r(lc3zBV>tbPr5SB$H4W3|LVABAo3py+%5p}v$=IArWe+Lgv$9~7w
zxXZ(}{UnAbxiiH|Kk!F6gs%WLZ*9A0wr^WkGv=%9PcDJF$0LWKh2?!v;o|QJl{iT;
zElKE)6DBtnVW}c<HA<}bBUnh3o3L6kLs7B>o+tt<0b~WX082>3FLiovyn$8jwHcBy
z0`WOlGGq5wh%++Q;aq%mNi?tm@p5Im9k4b^3M;wQOx<;rhP$v}hQfM43|Na57O%S8
z5~}DQsUi%OmCMy+0OD$RTZ)A$<svK<c(r!hlqFRK89*#9ZHg5=Mz~MYHeVf?Y5P?N
zY#{D`IGvfW&<JWQ@JHuS;-LW{*j@=LEYerqX6lB#DZ52j5JFgv$jTA9FZLN|Ns;x2
zi?Ci}5DH3lkYH6#B)94r$T3D7n%GctHeU^l)z_IMGZZ6}%CaA)+P^hiIwHy(&2jWY
z7}7cAxcVWCfrszUel>;l9A|^^a{bQFvrpVJ#3Ro$Y`eENQ!ge9OYAn!9ln|<EC@AW
zk&*l2g(XUos>d4*UDM+PJO)D?V7PvI0I^1?qrU^P-B>+TgdWzEC4nm%%Vwd#3Od5F
z5pnn(P16UT!J^Yk+a11w<iij5ardD97-z-d`ufqVh4qPOU<KvVMyl-S9@t*HfQiED
zY&Oq-@V$bMG!}#rR`S_5Hy-`?c_QYO<A#Z@yyh`W%veNmG-SIUlvwRY9Acc*D4Vca
zSp$YhiZx|<bsLU_Dl8olCHgzMo&<}xJzs$n<hb9k{QdxE$Ik&4z55N^|8@o8NLsNw
zS_JL6w=e$TwXV-=&!5weA#MrD$Q@wL%Hkze|97JiKh_Goh$cKSVoBkAMGA{Aj+L``
zxkcqnVpOi8@nDBns|;0<cpwm2;n=z}TnZu%_bhg3lb0|$qW<8@?M&#BK?p1SjOFjH
z(0>DK6T<Rodo$@SEc6j!U0yW1;^b@a9I&9r^ul`b%^MtNuD%ja6gA#3ZKWy&{6d;_
zbQ)AXl&wf%fs(6;XeXP`=jB{Q0Rl;37=~5;&)(TMrH!?H_~z><K&=Th5;6lIOF^lq
z6$Mn$Dypm6R&CeqzP7t+J8fsTI}b<|sG5KMO#%|gmkA^^&ojB&GDQ!_P`LU#H}^RQ
zm;9s<#RGFVm>&!HT*92eptA*b1WmqXomhziF{O`t2<4e+q0YuS&`(%Yeav$QeUsw0
z=#%*IbjsTRWn(R0{#uvb{Yo?zn)Fd{5*Mv#zpsHr7$YnkfAgA2RwsWH-jD(z{qA;j
z_$nPgDa`0BEIRxwjYO<$CP4&O%NiaohH>!{og$fZ2hw1AEVkByEY5p&Z<>-i!<@T|
zl$77HAI}il`*?x$HrAeQ!nz(?%0vIuZI?1pDCMmw3+q<eSCSYZtXIBy8V$l&GjC!e
zC;u?>z*rhdK*rm;a{rF#m}BJkzI+9ujyC++Cqkm@bOt0LV{Rs8P2-}5_W~pWZZJC*
zJ6N!ZvrUNxsFs{gS6=!=2dtDwX!K(h{RCsF?r5lk4&2!;8<N5*ry^BQ0NqCZs;hnY
zk_9X1PgwMZ?*lR#f=yP>|M};6Axx6AY`eR=z%us+=lte&r0G6<1){)8tcW8Pgde35
zNJGX8!^3l7qT5(S_cZBt#A1mi(>M(##9}Ad!r4Iys#(mrmY0?R<~jm|vaV&MyRkfb
zy7=mr>A<2u2W~IBy4?}tyRdFR0aT0pT37kr<7-xu12qeaFS#2F`6l+1k<~x1w_}8o
z)ZC6RLO4GpS#Tt9qzPqVp_ylMgm5susc@h(8D=-znkJ!xn0tgQ2Hb&wqebF(FdY^<
zPAOqIv%7pLOUN>Yfic2DTcbm|80%(ii2_}y*ebO4K6kj2_m%Q?IjEnutm`MMg44YW
zf+ooL>*wG8dHOv5;Vpp_nI3Tn^n@oIbA1>~{A|%o#1ae3PJ=vTxHvpq=sd?BPXu1O
z0}PIP0*NG;3yUphu#K~el5Bz~xn^lV%dS}p{RCsFD`17jK_BQyss>_eSCL7OXaBqG
zd{E`t^8h_4>s^Pi{Qd?q2K>W^Kb}AR_Rk;NVS+{vK_pHRqETT-k?gbV-nv8_$!DKv
z!9aS&J_AbNakqQe9ph8hOrVK_$7H?l7APB(6V?{UKxeTX0Itv70P>@ry?%u?844YO
zUR>Jhl1HdUL7sZVTc<$tc{sqL!B=AVRP`HMa@QZ4+}?iv?c39*f4rGd7m|{a`?$v(
zj#!@=3jlRStZCuEq&)%3ka5OX#ru>s<K~5BQe#=1$@<E94l-O|=Xn5h#H=PX##lq^
zjsApHAFG3IOxhw+UsdRHr*c2qCqj2-C(v-@K6E3f*~nd`d11}_j*UoGPoIAK_I!Ig
zNvO7A_@p3Zwwa<MO!OzLuDi1bW(31#_%rI2QdS^PjFBDrD&Xj1#6-rjSjfr?3%dYG
z$|cugbH|x8WC+W%9(iMd3My;|mTr`z5*v?FQSUX#fTBNsw1p{5SK1O5kNhp9h4t2#
zY3O{;;P%VEzx~1_t2d;k+ZANarzaDR6-^mXQCRefJuZ0G@Rd0d9)t|D$_mpnZfRjT
z+;71wSWv;Bys_3mlB#RB!MbkEH3i5JzA(mGK+>oyxaUDfDz<0?1T<1!8h8XQOVxX9
zDHjWiN9KtTCoFMCR-e%1+wG@M|Ni#$kCz_^Li>(bxLk3|QAp|~EQCMWB%qtHJq;?r
z<HbOrFcJvJL@e{1SZJ}RB&_UbkYWluZ|*sh&4WS4s^vb;R(thTIXYGWJ-JJX&-<cN
za@!-*ysxwhi_cgfg<zbbuxP&z*U46IwzvOgc>3xU+1s%>uW7lv4zr!4>QPiUJ^Uyx
z5|+xo1TyA!2Y4LajNo7rEOrIHQZXm2o?~ZCVU>Wz7-Ow_W|w<wXsBI=a%Iq!sBJ>x
zz?_C$zUn*`zt@g#?ZSelur}yc6V^-AKTNWE$;<=)e)-2Myhs0$BPVGj%Z%GGP3zJ?
z%5B;}LKnoRA_3~a3nE|fB)}wCWP?2a5ee%IBsgpxPO;_68oBI$>Z8b5po&T;*8qLF
z6_?%RN?0`Gs~Yg=y^pHI7)fDePWvvoAHUlE`|;zy|Ji;ugL)@+@>)rCWKq*%Xb{tJ
zfX=_dh_z`aKqZBMys=(`39*DFj#yH{q870=3K%YUVHsqs(JwvtYI1380(9m!5~+!V
zH6i1x&Y?&v&<mXveSd~R47YxN74;5Yd-d|=<M)qWzT75p)EC8*I1(W0Atn2Hf;zVz
z-Nd02l(3Vaj+k3PSR-jLA(pV5LM}keXIJxVLfYlJ0TwhEV}Uv*$3lmoJLAGutaq1}
zcMs+(q#fuLfv{Fj=le)juYP&V@N)GP>YL=qND?VR#2jw2|A++ugs6%|+7qCTu!OI8
zVqjh@VJS}ucU<SdLhrgLV}*sLJiM_$CG}7R^yelOxf2|i6BW$UM7}~o`knZw@fGd!
z6RZR>zH*OCnb~CZ{+D02-@YY~4kS(r=pm*Z?wB6JLa~1ZRjj0aMGs+({PzmWni6JP
z`;Q_QRy9gk;*13<sf0q4U;vl4JNZ8M`$tIW;wz;_ceTR0>t)^Z+hZnKF}BKVzrvAD
zknWQ==s{-Os(VO5g7!DqDi$s5#L_OTz<;T*EMZ-MhzS?=8CVuvE?!s$W~_G_bOncF
zo=Gr*>+ZuS7A{kFqBl&rzxklb&5R!uR)aqPS~UdmcAHIBkAHdj;X@he$D0#XJ0g>b
z7YU+&VL|wj9fwY0_UZp6VOdNm`RY6mA{Mc14OrG(xdj-6vGSmr@>1vq456H|<$<S~
zN{QYuhpA3q0qPsMdr}k@cdi%CUaF>ce4KggXKb~-U89k%5QUStx`FCT?;wKzDp7nC
z7q*W6FV(OtC?#R7No_TX9YIT22hao=Yb^C$>kH9Pv<8Mi)w{~>4R4BqZpJxZ87(Xx
z;X+0JAVMuAcN*WG&%A%{fBf>*hqp*S_>%h!QUx6j45yJQ<b@@!Vv(Qb@c$uUSu7}2
z-7$%@lE<=iOIX;Es1e8@W4%*daL+A(K}<%jYMm#1MQMSrynW{@&AZV6665!k*^>Ld
znpAUqyv-&n|NQoh%u;6KOYS`B;lOm?pQPe*|8_5=`82FuSON12%i^n3R#@jCW(_OB
zeZm@yuqeh@6<TEn)-@Q$RcE*Rm3LC)t0i6YRj&sV`g{%aRz=C3US*OM8?9E4_mNSM
zg_CIwql+)XM1Q^#SFz^!tBR0C1z{CPFbNjaqMWaGw?M?L3(Et?nd^KKS|CG#HIFCP
zP?Lc|6&eg<!xo_=`rP?^RRv>&1xN!`9}}+TPw$Wt`}^}uvhuypygY7*4Ke7FI}bVc
z;^9Kp1MUCBW_J}UskRfVs1UFUU>YnCCM_&%5yWs^?i?4`8o)q|1+d5%i-L!UhAM`d
z-J7CB^F!WO<2C36{S4^UjVqtezv1(hm6Fvwo2>lXtH;P-h{Q>pMjF85FN&mAVF|t(
z`}Y&s)jGPOq1D~|jqVoc%qeNC>;j0O_`=nhs|0NfO%uQwYnFPj18eLK3}oTbTjvE;
z@Ag${0^p|$Yv1oX^)=aOAPL^?k7qK>cQcvoav2#9IimSIuj#<>bT2zL$X2m%rt04B
z>gNIhCc=U@)&stREi9Yog{A)+RJQS`!W(PA9auaQwx~c@e7?GdpD(QWCr^BBG9n>;
zSe^I#eD8gk)!%3|7~&@dq?NQg5GMK&7R0)%Skv|xsDgCM?Jn~MOohe4xzJab<P?lv
z!m`kW%DO7hi7uH+zPr2fz^ss33LSv4l%uJZ66s2+(&eiOVKD^_o>gBbUE7V8YsZ-k
zV=I4VzP8^$gMuiW#E@pl#ETU|tFWL0V)Ng4FRh~xml0N+0Fz;{#)T|Fy<Lo}-RZD^
zxjOuzSE2%WV;$y{G8PpLE!DtaqP8dnEH!ULGGFnX2!m(e=aV+p-Ri2JyS}=LOH8{B
zWcp+TN7|uRUL;6uZKKddcQ01*Q$nS1h=ioE5(rF(Mg9VFwv4q~+PVcvrd+$!y|7%^
zLchXNe%%SjEhrf)$L`r@H1BL)s@3+M>dIG$g%=k32~hPXJ^{ywC{JcGzSC2`f8%bS
z;4|%DAYOANckK}2fIF>uLdb(}c2%)fhDp$9tgd`TgBh_{bOuXK=i1sHNFeGJrTZ2Z
zJb-9qRo+;4OQAd%Pt-dhC}HI*UfVco@>7LX6ZndYR2d(Ge|~-+aSYg4_{qq0uh~qt
zhg81FT~Ni+(22!Ego^@S6=DcXiN#_N+i~uK0{LCnL3_08ydiBDoqPr2vDGEdEG_A)
zh^Nv3<GJ=;a>l&$-T_BG;`L5Sw0RDm)h9kNet+h}ei?BL-dN$20)e!`_mIXU)0sj6
ziwE!8dUVDf2i1@TN2jq0IG7eoSc_B;qd^wBf|cN&66Y>mw=P$XSnOpvC*4816k3Eq
za2HA4@WNuRdw)zIQ;?AmR^~0@8Mswx@w#ViJ){X-W5t~(+*!rK?Q@`>nLr`j64vW*
z8qA7C?VJ&oQ%P6|!*aZ^unRf6=qxNAZdRD1LCB3~tO^66?j5g0qtTT2YMkPHm6`zb
zGofjkXs}#K2x}FgpJ=S~h=WAEgNI)fld8H#K@48}H;g)jMT1&UA`pgTvf!SHn|cAE
zMLrl@q!op=<-&L`thp{^`~qN*u(*sh%VaEZ2i7%$!4OG#TSO+V8DD*Ey=VBcyYbZa
zKOFyd{2R;0mEZ5<Q7<gxA1WO`c}?_ZycfeWs2j1MWR~i59-xERPAs(~9c}^u3JyB$
zaFbwKEItQ!-z_K#tAs7mZF!x$zRDR!FJS>v$XMuWWqo~pt)2%6g}%ao7-xND^WGD=
zHoRMuZgD-n!BMYguAZEpe&>FlKJhWlqJIBXX4Nl|us$dzEHJvu{p3x*8EyDkn3hV0
zAVj%}r9oII5r`p9Sj4m=U}9leOaymfSxH#cY{wSwN7$OgNS%cRq8SVTEHD|1f~_S_
zi?zj2mKv0=7+cwRVO=g8;j4w)yW`_YE<shISH34rzW?~^$M+vUemuFly2?Z|jJhhT
zWVyjXPza5Sh2^Io{3kHB<c=eb{t8)ySXlhC4YGtgBG$~N>ekO0caemqux8v26AQ~?
zml0OgxhpTM3oN_LUvaI0;Ry>Qk8iJLJ-M9co{-10R2{Id+C(Y6e04Xzai5^BzB6L_
zi-l3t_wS6XF0aN{TU_tc>f0I~7M6j|VoUCQgRi`plhB?DVG+as#<h21(QE~)DJ&ck
z<`$MEtXZfA<%Lx~@7%uOOhH%(bQc!7r`18q6AFbq<1i4)m+W+~Q&_1<?ZTpOZ|_=+
zN13>EdHE#5DC(~!-!Ct(SfZKwc#WmZLZb(1WF#6#m4PNkmE2EAU4q(+&9r=92Jk3V
zu~yWcPMCDNi4I|<!Ngd?`m89d1q_2W)T}E9A~ZDmfGXN!g)5<XLJVVvFbF1WHd`}e
z@smQ8!n&InAFot4SgyW%Svzrfy=;bxTvf(7R#zwTs8=RM0gF)cZ(!iMX9DR#>{%d&
z1U&4k?qi_S_Asa-5r{!sSaXgdm=%jdXE3iQtTn8oR8+-WHBd5^UdM$>e4+)PJspHt
zWi6G#corh;bdc8-%N6iYh^0}xZE;trN3SkfA`$OjzcRlVLq(okHZxSca>tFTF;GYk
zHcowA%xl_yS?9Dxx=&(y-PLAmA5vk22W8^?G0=p)sJ4QIw}chIA#UP*`z+RiPGw=0
zupQ_S)-F;mI`uCsx$siWc{&NP3?gDRSXFV#;%T0)iVoTQRA(<Lmywk1uMTXf$Ys64
z0LMT$zc9|ksEJ7$8OOZuiGs0u%)C8sHCn)tPT+GdR`9MD74WF4V&TJ|R4ye911~Jx
z)WWj*+}9{rkQde&c0LJhD3^-@#fSxl32RF%ETgtYE-x?F+T5kuzT$~+2`a^W<5!kc
zB*J~=Dq6q3<H+CE%4k3w``bHWZT#lvjn$X6dM&vpkZ$0K7sVN6VJTO!=$NX;2GZ@u
zyM;x7IkBjgf{Oq*|2d~Y5^4=w1D*?)hX&|9V}TlEPP*C(iG>xaf&%YuZf?eVAu=|W
z;)?6srOn1&dIh8+^^H11<#2qWjD9NA>IR##{OoGyyDP?6#7`0y$)4_|AN2IIKvILS
z_$pRw=<lkESaV#!;)UgQ#KBN35DWCcj`Kf@086sMTEKQc15eg<gB}tV^dl^VhM}sI
zuyP#HXf)R(%CL0LSd)}(Y|O@xVz4QbY7yy#6Bb)|=Sfv2Cnq^s(#RAXpU(ew{FZw#
zwT#dAvVUXsT5_k6p8P&+Pv9Db1@T9Ayj^vt;URu+1uQ;cIl^Ed7U-THgcW2<R5@8;
zU0^OjK}$Ip^(idr;nlMPhADxt+C<n3MojmA+6t>{pi-$&AW4~@5;B*9qB}ANgx|;i
zUx72m%G~y!v7nbO_cYQIfVA5_htt|#-o)^uc)JrTsiJ}vgHB-)uMJCB7UBiST7{Jb
z1!2)y>`1M!RCM@g&=pNFd^uWY<g=b@>d7M^teZ)eot>TQ>+7BC->!F<YoIT5#m3>~
zFsHEQPv>bqkkX8?{QGF|%1WP%B$0jqOETOx7N`Wp?3<+OPAt-0#JhwAX-6D^aai<G
z*gg;La>5Ep3+oWWwt#0j>)HVo^zeyPyFVbm_4Us`|D2i~9UAhq$gQvE>Qe_xVqq;c
z2C}(~sOo-eE??n(f4S=;kBuIT1rq4Du}mNO3=a>-2~DqTa_&)UDj2iJkopQ1K(Q$-
zcM?pAH8I3m3F}b$R#RBl4#Y>UToqKH?QFRPMAP(_h4u9*W?A#>kmsX^VQ6S{bp0z!
zzS<gi7!nEV1_nXBH5+U@t8Ok|q1Dq>)Fmv6HP*4=!V;I<)4JJ;hmNy_EKM)$u)TFq
zJ#8PRAL_w!;{st#I|2g~mSrq$eeUl7pyb>FDVAN`Gr}Wm4fGRMb!UrXeRgzobg0Sb
zEGw<qWr{^mem@WiD>5;twK=w~)j5$#Q~3(_`DtNO$-Gu$fg~DB?rs|CfY?8uo`pdR
zMA05^wT^B+T){#DVI|!Ta|+A)v~a>1T;_ze15$j(cA=9!SAW8407rgtie+@D&FJXV
z-oc*-dwZOvXo>q^ujfJnVdY>jl&?DHgsHkWb!{eL&7ZD{RvOUr+^Ry=fDBr^$)E0}
zU3SVl$l!DKl{9GJzKTVM?aH@Hx&zZ75Z0iVKU*P7OP~8^1z}~eE+tTl>V$<P`0_5F
z&mWwR&W<t+agl0vmWfkSe^wb5sAh^%{;+XNAgrZj7!cHzw@vgKD$V83$Q<1I{AG!y
zQQC|Ja%kytA0c~PUfmuI(%?n=uoh$C_f@Rq0~@=)4ipFpVWkn65X)F=!P0_QSoC6x
zU93w9%h>LuR$=A$_NExt`7AZ$*<(1^I|E8%^Wu8Q6Y3P!0St`0`wr5}abT!$84H<%
z@piyMfO<6+^lz-!%`W#|T-P~T&REZ0Bynw3EETPzGwwi_2MaA>xoI#TmarP7;1LLg
zwS2UTIhkJ^X98it!z|=?zI^%e`CxsPVRXp#k=0Z)O?_GZQe9qNmg^E#ezUw=3(bCA
zYIQfTm!TyJ2E~LeddtxOXd4Tef|}3YkX{)z;rIDg)f%I3W8ovu)4dDp!G}U5H#g^S
z4OOgWFBY+~Iipy?DiBh_Dw<JPmaul5!9`%m^1`APF((JsWU2~nsxC!gEg$Yp9UV>0
zx`u{aLoOGWr>6E;c4*~8>18+UMm!U_|C_C%^5Ig5#S=O_<Ub@do>Zy~EqG(m$P8?p
zuF7pD`hhhTrOPg5YD(@SqI*&wuvApjlAF&o80&sTVc0&S_z__m#KKBD+z8BvC9Ja`
zcF`>?s^n~ewa6~OJzFASEpzNF&6XJMCw&aF>t8=JF>ASsL<k<MoX7-2s6$U^eE~64
z-@Uszc(+^y*cqI$YN<#~)a&r$8cb2ax>}GuWa2Hm6q?e(SD@;=XYoC$j(2LB_3)Kv
zo2re47n@bAusw|wDp;=x31QJAZX5=Jg{GSORxk@)!fKS9LSbRqDqn-IK#PODqoci}
zDUa)(A(v;0gLMd{eFHi9)z93YYj*Q1;SH9TLWcu8<_iQ&M!cy!g?={l#_5FcX%rZ1
zqoISa;NdR!6CA{76_)bP58FSzL7<LUvx-IA-Gpqw8XkTFE%*)m0EodYf3`rN8oDGD
zR?aCF7S<d?SF2fUr@C0mmKa=3vJB_vXL%0b>96-j{31T`cq+?C#KHe9(f8xPK&WVH
z0)$Ma7-N|sU{OffSno3pUG}Y3gpNN?AP}Q@N~rw9<In7Iq&8yN<IPR{knB$G!$tbP
zM_3lLQy{E7CM7KF=;-3&sKorm)dX{87uOaSrxri=Q}a+?a_4+SBQe!nC`S)KSl9gG
zK|#ivL_ZlmV9Cx3-}^E(!-a*PJP(5eT8mi!&)&IsrH!q9_!VS>wu2_xNMuA20R^u>
z5fLp?v=&=$wLR9(bXuKGPrGJ)YoVxUi}}~T9mEF6b(@5E*2*)NRtP|pJpS_TckigY
zI34gf0*Is+i(7Hb%T};FagY$!L!JI?)9t$zRqFOnl<yXx+9|oPvGSXB%Ak&M!on@?
z%N&xzzx-iQcn;H;dNc+S#3o;kA!~VsD_AO5@v6>ZW0gs5Mf&p$CYET@hlz8c`inEs
zFOHQ1tr3fNThtK-Nl@4mrX__1^AAy2HaFeAbhEHFC>dcD^Z7lF%TlTLAkZ;k;aShi
z6(mh%dHAR4!t#%HU4yi-x=yXGVC|qbKy0kX*jVNYi(X1B>G>dNe{sI+-E*L|ipBDU
zs*p+rODwFoQ=~HMu_^kxE6u{%?3NMMLSrUj7KkupUI=&6+q+x?QHE&T68o?`<u_Sa
zW!%*8>t$QGnS5!fv1(6dIrS^0mS_L`Q}(RTn4f0wKi&g<9|O(8;*I5qYixH90njV!
zQJIT9iygZ(*bvs>Av`>6VU=1E*0G$hsQP9z3c@n$!;0W_Z|`e=)6=yNFyx1aE1bC*
z>*~=IC;eWzn=?y|_56=FNDPRK^&Drcw@8dpKT0N)Sfcg*-qI>8;G*k}IU3Xn)T>wl
zPh7bNODwGDl5-xc#%3d*-)I%q2{a3fGG17q_oK@DN<}Bbqh)i2HTLLIMpy{dMlCef
zD;%&i^^K&T{`q*|qdsAQ;=(eCpm{-C+@>|}aICVR3gdBvcx@d@U+g(d%LxlYRtwAK
zeU|c#jQC1|bYhfmzeQLjMPYq)xqgB`XKGnL-Pl(uEDtZ6dQx~fImXGh<f9wwjK$%A
zrM1!R8D4JYoi1Mik|&(-#ycr2nD_AENevX_y~eDsGI!6?a<S(FP!LuSfrZ$_sF7QI
zzl?R_BNJAmA<JB6k>)GR)X?xZKs=_+BLs|$un=FzvOZv`8|%+M2c97T1AmMh>?W4f
z9|k&%CE6q!&|)mMUd3AXFyf}_UC$CI39E+z3$e+M{37fBwVu15NLVF+&MIq5$X6=H
znyMj;Syz5OZQ2L%PQ|P;*7HAJDfKmpj5RRu0yQx7hX}z$BC7T<05D{co2D_qFCj+D
zq75kQU`4{3U+sxY39B(DCv2^-Y)(f6x^uweU-T7$Kv+2}EL~{*+zR>1-TMu+a5?;8
z&op6OKbqu#M|Se|&7+s&sPnv)3RntpX6Mg=Kc5;eEC6~pk)YKkUl=Yd2zVS}PD>Sw
zb%fi6#qd2?QiXW$?XB@aOBa~2DUAsD7J(;?``lZFbs{UQ3IG(TMbK+3O&?s*`Jg&K
zhlgWk3G1qB*)J(9^o!V!uFf0FU$0=180+1@ov{qe$pFB56Cn;Xpi5Zd4e1p}fYxvU
z9oDnb9<ZW4o*;+`IUB-)9w!Z!Vhc;41U&w`5|+?7DkrQ(KmQc2uV55N3Bgz2KqIx~
zp)0e5HP&?rbtD3okg>X^P=~qsV-^werfw|27-}rs<<5e+!UD++>F{r!IrR(ZFySQI
z_WLI6Sp_9wF+I*OJSc2o<$OK_&^(vWUz8D6{oWLn>7cN%uiUReGu7pxQ_d7&U5-x1
zgoG%!7qLf=I&G{gT)`rQd#2M^(m$;p<&wKu2@As{9S#*^g&ZCx=$UI3*8Hj`t|qJy
zJSc2oE&96Ct-^xO(vzQyAPB1i%DT%}e*uOdV_hOJA!UtsU4ab9N@LwTnMK6F&cMLH
zQ!v(8%1v0N3Jd7K|2gK=s#t-bBMvQ|3wgq{qOiD-rNXjFjR^QY15Z&bEJ#TSt5g@&
ziR<`17>Am#`0+s^YK?9zFcviaNLg5du_iAqZ*o`n!A{@6z;@iwA6qEV!)RNd4XHzF
zEQmV(FT^TWv6AuRD%boV)*~|;G2jevji<F#ST-5)C}GjJ=x-NRt|TF>Tfb$g888$i
zjpF%Wqn0dr*Xf7lP2+`Cot)&f?ZLB8qc;z^f(5t49}f)l9b6+GLw;y%A~C0RK}j9L
zk~fy;H^r`ZHt7f?J#_P9lAa|bBdoh!nRo8eU>P?4yb!SRbx*}ge9{tx)ov`I;+}2@
zD+|UW{fYg{?fy$`W6^#7u@B2R!-ZAr8r6Cbjd#*mvt$)4xC24$DQ?JmW?b_qoAAaJ
zw>P5fuCyf^{Ot>i6nn8e4jM2*1?vD*h2@Nch1leMjeM1dI{QA~iC9>Iv4jd1XQ;5$
zvwjWti>mrcq5xjI`mhK_bJ2CF`K_OR8hwR2!z;}JODqfy8*BEXQ4xz>O6)4sp3D~(
zX3pUVGfJ0%?x}ZT2|ZZ5%!3z}%}L3JN!?lM#Mk{zLRgU7r>I+D@y<%+v9Y%Jn^V*t
zm;`DDYRhi-3ACda8X9+VLqk(wFlSvc&4;i5>eI#bLkn0^?-v`Z@1sEpYd(_LmET%M
zSc(M!a$!M0(O5x;!?S{zP$(4O5CH4xIRG_b(P68nKil{#7(d*?Wk-sfSXexjZ1GlE
zMT+_fxf11?`3f6U$`73|mZYzgKHE**^OuGjYkcyGBRG7oUS5<@2YB<xb7EbgCZ6KK
z!gq!QVkV@}<&I1emU!df%5N*O#^M*yTK}@@!K|-_*d@;rCo8N2VZboR!Gpo3((NmP
zw6HL-eavTArjBnTS1G$mr2xz~7MH`mdabEEFL7rzHZ(b9LQ?}l#(LR_jK$49Aq!aT
zHwwnm>#XQeB*c*m3q#!2008n^GuT)MN)fAxo;YX`)<f!bx2gC<!V(jsN;v@doWjcL
zjIb)l?%orEF4ML<;dE#?1IAGs9W4_j4o+k&tA_|d(hHnX8SCKR#DU7Tatb5PSD>^x
z6aLK+lnGeto)!k#|2bjVq<!6&04-B<#H5RjO8Y)mRtn5FR=Ob3e}yyykQp7iGIorR
z@EqxS3>(XW3KkL2FxDI0#^Mr*BbHQHpnh#ia$#X(Nq4>TYrwa$%Bl-%-s^op!m_#Y
zb%Uy~V4ph908hGvjkRgEu>6JI<0-CfJRE7~ZdReu^9YH~3bC>L$W-3_@to5uEZ|<?
z7SbJBr?F_h35!rz!fj-}LZD)-==%R9qf!MdkJwnM!h#+z0|Im%unL=$uiLLKtXPTK
zfI210MN#`{Q-xJ2{9UNF{wgJ3N$Wi}7H8ZT;SF&eI&F5wVrHM*AYA|t+Qk{`h}I{p
z(7#>;N+=2oNPMM1ajZlSX~==`w9~_?j1mIZ)7)Mb^78Zq8L$dlSjU{Yupm#R?u50O
z#UU$aqOfucf6wSY5cx7z)vz(b(F}Q6=lbH)nBUYMtSh7oxP^N=J1`Kb>Jb*V`)>%T
zZYwV=(7a9qXv$>K<ZrE)$U*UShm^4fL!7FxoJnZF?s}bdykTpMWm79*M`;jNj-q0K
z*>JgXu$OYVvS1eP`~NN=y#N3=HnePzu}-^A?^B2_pS?8GShMFfBYcIa&h`z=>M_>G
zfBzFjNQbaM>vHa(%~&w!_$}Tf6{hFbR}OK+QWsWOD8S$04S*Hc?D>43wFt|frSi8)
zE9>Wr@Ge*Jv)?3NxeLeu0Q^@&XE|fW2)p*+UdFn3d1Yn~mfs*@L3N_9PcRm_uy+65
zWe9X5PE=~T5^td*EC{yrkkSqrVR^zT!h(Ze!U}o?VJ*>M0XF--ZcW01{oB*PJhcxz
zn<W>Os(|tQx8FUJLk0kt#i2!G#t6^u*-v?W_VUW4jCE~D1xv_S_c4|*M)+?~O*jO?
zA`zba1A`ui&_f!Q71pYnu-IR63Okz!Lg%qTdn3iNCSm1L)N269HiQM48EmYqDZWCW
z)Idbk+%PnJY0Tot_Y@W?pM5eZW8IuT*Xt{zj0J&+msV2_LCuQ5cS_F^U2&}3X=O!L
zSWBFWu%f@@6mmAvgP`Ns<S1VrGzkl<>evsJqA-(?KQGL0fT85DuK<IL0050o4jEvq
z(XI@!u!M~D$()RJ@kb5m0t_=2ee`cg-9P$-1?0j44(F<XAS@n_n1H&l8ei->n^?6#
zST<jMnuX=3C_ijcshV)h=aS3y85#L@u&=~*SUrd2_|T+oV{xOCwR;N-m7jcij*RD>
z{tA}JSObEwh&V|6CrT_V0W%Vo&_f#3D=a$fJdj9OOBM*rrsC`V37{}FM<AV|@>p0!
zXd<)Va;0)c=BupKS%jXW@^omZtbdG<)3J=f+tE+sW>m2BHn~e1>n%qv^gzPPYLHK>
zuz<)|%^Q-;m1fr+LALpn&_OIL{6$=xu)Oood2CL76lfF{oKUH+nf8e}Ti94x<LXyg
z$t&3*9n>a2oFcs?tZ`inuf#?l8E&k1`YTvs-X8V!^@V^GI`QugA`}*e#8^l?Sz4p=
zu(3Q*L0CNG!U{8uSvrERyl<iN*pvu_<u6j3pWB56m4eH4{Mw9sC4lr$8^y-Lz<s%y
zJi7)WM8-OQ^bQ%z#gnS>!UDQ(EDp%njU<Aag>}!<Lezj*Sir7298q3aa>_bT6P7Uj
zc}XyqMQhI3!aCM0ELgl<7^@BLXUgTCsTq;43IHY;D>L-_r5<C&L`@CE%6j+c#|<))
zXT}CBfj5196QtMwI!bs&Z3(1>EKmlC=V)n;Xe@sX)sSq$N`jiOqIZ{p271@q$X7wI
z0Go2j_gcHKY7{07A}U)rWMw%0=Yz-;VPRv9mUUd0ou5aj*H}{`W9izl@`b?_EP)-I
zv7T~3z+oaW4`j6{9_<keNkKB!7<a6%3IU6>4~q|04BW!Z?=Cr=yI~qE!tQh5&@L><
zH!fB$;-uhm70k+47^IKW@5`0@XROJts{ZAo#y>R~OZT2lnGvvrjMYbyu^4<tDAaRI
z5SH5F^q|h1$01jA?+I!UR&$pq6O4mJ*kpaaO;BrV5ZJ`R%7GMI!R;z;>FgIZO<3IG
z_c2sQ#~7hLVO38boyYvBj_y74n^3_Lct@78=tLsKfL4&Iv9x@L#Lo%JumRbCMQagO
z5*`9Jdn2hTfw11EsKslLCdXH@zQVoWelEDPAP>@uf9(5DR7d|9A-S^};(PR?1|lp8
zSfI=sB4f=(ywUr4TwYiR1k`M$Nm#(G$aJ~~L0woq4?|csx#N*65C{wM3Rj@Wow!`7
z3<7ev#eR1lnJFxk8y&j5pRjI5&#FL*<iYp+$7IZqeJkq?SfIkYfxf;M2()n&IWpu@
z-;Mj)g{AWDweAuyAqia#dXlsTVa1)h@BpyM_(t-C!lI@?mT!5ttMCm-@$<d{MUZYT
ze;>NJm#|`87hn*lKhAF?cMbq74_IPjai9hEC=xR2O5X@W*wU_jpHNsLVI^tB6-R~X
z&n!F$?1?$2B*NnIDl58YU2gXlY15KQzQP~_*!wVAyN9s2i>??L#q%Gda!*E9!K#?*
zE6h%$uWvgJ>Yz|0K^v5?gzhR~Q{#jMOvvMD6IPM|ZNhQ}!Fp_dj+8hc7$y8nsjW4d
z!y)VVJ=wMM`}?z|>k4z)D7+Jo5ncnBoUt%O0c+f3Ut!|dSQ7`J3Y&=R012v>^-<nb
zwtZep^JyR{>T*Y#g!M2Mld&m{lz>cF#k|^epEq6Z{wxQYDfIVWp-u>^y!`zh9q)Tx
zlVvcD=jWp_o%@--cv3UlSD5)1eSHyiW4(<;f@TN{0T5ro9#o;{*4vGxMOaMef3#85
z7FIq>9p^xi^o+}0*Z^(#d0&Ad$S7)~-^YoKHP-bLjO6rOE@MGQn%qG<*jRnfK!xqd
z5oeUJL??rqP6?Z~2UWOGdl3sX6x|`{J%ERREv%oU2`l5GzJdxT3vTy5XktOtSAY!T
zX6W}Ap|CQeT~mPRM8-mzxPGjof(0ZX-dH;-IV>TJ5$cwfCaWo32pUvjJv`*Xa_-Xb
z0I>Vqzmf>cU!qQ-NEJbi^rG9H+DvPyUoD)Pt}B7q@5^bjqxQ0E%nwEz>-<K?o{sCN
zU;!c6SQE;|3PmC;5To|~)OMonF9gEcb=*@}UKXszCO_iK5DAN-{E(qaF;HdW*zI0W
zGZrei7jpW1MLtL88i98FV_jolG^6LEnS1YQ_3`7f*}4*VI?>nn2IQf4BO#{K!a@SX
z!de$Ky3ha52+JlrQmPRN%SEN3c1&eKo$5@#yMG3h;0pZ<73iq2xUuh7Y0yr2axw=-
zbJ=DrAuVVMSWi*sgoU2=O(<oogGl563>Ow6fKXUTPdfoE!eW-Jzg)ddB{h--5@B)m
zwHmTiF%23><4V@dhO)16YU4Y|VA9LqX9$j6f7c^F7*0$u7OAkVpFCzd=PQh|v2X>8
zg?nJ6u$mtMDmxlo^^i`@5vD&|jLnA6M<%Q+b$ks_DN&oCh4f~>+r61q%vUPHLWWZt
znv5YHt@8*G7|-ST`Dmq8SXu+tr*|Fo6>u*mCi-@0xp~h*m%EV}i`Z9kHv<nt*9nBf
zE9;(n3M=Vcg8wyaVHK&*4R2|Eg&DWI<*aXiYil3spc(8d)mCL>JX609)ifW&V~;Mu
z4BnlekKbo*PWj12xud?qgeLkX60BUwomW{0GnVKs#m(8dIA+D;S-)GW!ExV&WxcR$
zGQLukP*^8`$x*2^Xk<^QWTE#93vNuI@L$1K%ECfsu=o9}s_{U+oE$5IDO@&;C7`i_
z^~`)-i6`Im^(9#8X@rSR3rjJPF^H){&jnU^9Me22U)I-GS3@k1C}K??a!7-)<{yNx
z?3z0e2`hgqtV)r}f>!)@m8{ExyG}o5=5^gy)(8t-eIL_!EKl)cgk~A*$2jr6R?i>n
z&sXHo+Y=L!w~}4%2XIf6-zHhW0vaKD{&4Q_a4wm2V5WH-D}g{D7?_JA5Lj)GSZi|#
zqbe-gdSTgg6AEjy<hlf&ed@Rd810p;MgOJyj(&`r_mx$`V$Qyww*1Zp8OmpqH-PC(
z#zN|x{^(@D5-4M1^@)td?M9C7A3)XGtki|YF+9O=Xa%!Az2?AtS^x4S9Ef6AmXY`#
z#P2CA*6WRf)!2RRr$oZqr}7ARP|B47?PRjJl2s6NRVUZ71Y1Xig>Htvk83%k%UzQI
zW*Y01Y-g+YtY85~f5sADV>J@lg-!~KYuv|T9~~YBlk4m2j_Ep%045ZUa~!AqZJ?8F
z#u|)s2r0}Z6sA81z*1~D%2y#0)(Mq|TZ*nCkg!=0@>N4wGaRUcOd>Wkd4nVnFOH1N
zG}ezF<3xLV`pJTTC1kAax9v-fMxt<k5D{2KG#v_IFRiS2rq|Y{@rfTUO@*R7aaQ9<
zD{rh8U3r#RKs+kKVnSB;HQ40w#2g}Fef}k^uaxUO;gaowu^Q}IC@ggOeL1auY@Z2B
zVVPCOIt2msfc2Q`xUK|aMcRx-A4PT%kVDkY&azR=T)3X5a5$Qt_N=V%#i;{^p;?Au
z+D{c#o|p+a+86Lc4HSh1b5;w>CO^_$BN3LrNG;y|HSfv;2{R&J_0L!-EDjgmIkm(4
z-RMOXOy%-NOC8IUfCUCYw`Z)6iO5ILhrCzVP=F`AI=F@zoc1`@R|AKK@xv&q*0cpk
zfx~HsXVrtB@0K{-{CFi{1)WPYSc@&JEJq@&O4B92_Fcs^XeXU_yG6>%SZORjo}=Se
zIl{-gu7Ia=bu6Sr<;mk~%Y20?&*HH{7BFvjx3`auwj)QZk-}nV784DGlgZ?2&mhlg
z7{{qlAj;I?066i!ArhkNj^s4Mh697xRz2avwkJ>&mXiewvH4mW*#|;lanK-hOl^X8
zHrx`zdT*VtFx9i~<I0D4`9ip6M5o3I4G&mgAoLN=SV8#sBGTX}h(H$%ix5rI@n8_A
zsU$Bc=i1<4&tOkaoM)ca(A0nkpdHikm1!CwjvWlFdN|QHUT&1o`svR$pMAcpny|!c
zHQbSRrMP<utN$1Owa{0Xo35@K#iP9XXcWLgV~K|d%?ns6TMAXHiOA7J<QIt-+&x8A
zC$yAYT3T9Nayr+XJ;@}FQ-Kgm*OB~gfHq@+tgpUI&!M`o5HrYzJR!;NyR@*FC2NIc
zv*|0{5D9Ca>J@~QcDX>Ou(B~rg@wjnPG*#j^Sv&Su*{#O1C|6Vt=rN&*jOzP8jB6q
zS@QOHd+Im`d&0rs++3WMf6LNmfa043^UC>ZEr^))RbE)!G|Nt}+&#YrVZpAoeGN7z
zBPk#fR*L$G;EwXKD+`*rId)4aYoW04K9|c`BrJ6L&siDC0;64*&<UnA8LM*sn6p|~
znBYXDl^2Yf<m$}h!qo2WuD5O~?-KrNG8v@n2#H8RSRh?uC;8yeN$e{W$N$4H(@}OU
zAiT5|VfBD@*l^vF!cr(r6<h8*p;9?rqlAU6!tEFCnXRp#ehY+!uKu|~vXmz$Z=e%Y
z#?H_8RCoIMrzsOFSX#H`aKdV12c(J4%^l1g1cTl>4O0c{#GwU(_e>@%X!BJ7|1o#l
z+CIO=(rZcif#Q%zSeCEXU<+%JR9K%upuz_(J;K@of9C!Bt%ZdJe488pF;l5j(j65R
zclL5z;f(Rh4;`U=_G41bSg)R3q!BS-H1vd6Sg0*b9fZTX7;l3mOmZp8*3p!Q^a@L|
zn#F{%uLNNotVOw%wRySuKXgzetf<#gVcB&1Dn!D1pQ66C`ir^-&Gd^-35D~my_uOA
zd~5yR*RNj-uY%0xX7Z(MZaIB<3LT=deBNX%`G94;utH*CMXmwj@dHfA>rHs^e+e&7
zC=|fVYmIkO#dJbpi7QybBbb$2U!lNS9AScMQU0%T6?|4KEZS0G+3fp#IU-^0Q^hhg
zk>T62H1oP$SbsqanT?H&0=^mF-&-gwWYXz0fFGI7<?oX<BuRC2v<97`a&|t-DG955
zet|HS8|wuYR-3XCN4rOfJC2r?cB6G@(2iuog3S9@_7z4ftcI^RgrQfH%$=};^1@=`
zB4IIJXB@1+=7gs-((RWL)`r5=XK115%9DhM)_jHKCkCPS+3ZZAx4xZw=G$LeRb(<#
z|D0VTDQYiA0Xk`{i@Urk9kAY6F05B?K7QPmNLW}?FJ6Q&jINhNDzt8?R=9$eR(K}V
z$X5st4Wc_?MLi)-ZXqsl!iqbc;raRbLk2pDO>Hsd^NsNMiYFYj!lkH~W?_A%j$@#i
z+;X$97IPra=EmkX_ifnfFBG=?eiM@xH}=n%%o*Vnbdc)V`Ivmh!WFEtRl;I8jyrhz
z;>C-JIuQ}^c`yc~jDoNbQVM8@3#_d))Wog{!b0mFMik}HErI_;5i~)EyiTXr>-0Kz
zL-PnagbkPP9ue@BJ|k%6XSb}d{MmM4-5gUVBrpA!u!5gkRR-8ndxb)wzZc`~FKljZ
z<d7+p&;GgMkeJbzRp=yTY%IBq#XbKqg)9(O`QyirI}?5QA4~*0E0hqQ5{ef|Hala9
z^OmBpu$`t?Xmm?-Ep#g+URcRNB=;r)Ylls*5)JiWT{#<gJ9SZ28&n)=r8}=xSUF16
zXPS2v{Xjta)>aFDZS^mLHom_8_Ij`1-P`+j?{XnKlR?H)9hDj?jQ!5*qr(~Nf`dAG
zD_8>e76<(T!@H^v|9A8Tn~T1yVYNepaj0L-OAwaE-9{)roupBNz;sj)R(Oz+c^5)K
zzHv6#g10mCplvdxk#>A}q*+)Z0l8c;AYh??BaQJxWugBk!DrZ?PG<^>i@ksU-Fw`>
zu)neKo<jx_>*}gWG?k7c0E;q~Yz51FVZD0w>f<(^<;<t5zU}Q7Pj{}buQ|9QDDJ~D
z_TWWE0L{>c(@7THk({OlVMY1MmN>Hs35y3{&MBhj0L;gxDE1XLmNsEksFG+<=Gc`Y
z5|%pyx8N1s)5M?Q+F!4?7V#P4@Nn;9c4p6S<Q$!v=tOa{iU2yFvHTK8?W^;PvO&T^
zAkPjiR6XsxWng<}=gk`svn>*q@rSOl!U{~Uvq&VY&|0)!(2^CF(4%$el)(J6LYs1a
zM2yepn`stS-Vf4jP%Z>*ymqB3pqVXUmC<y6|Hi#O!2U|5vbDIlJpAE9@A7hCBa^8j
z{alHL3UB^7LkPg4jD=d@gdQwnG|a%EUtwlvw`co!wzp@Gs^xN-0ck$A3+sph6O095
zl(6Q%Ovi<LxG$@}5|%Jz2<?yK@1H}ruue&mW*f`q(kCsfQm$E8@-qofp`BdOwND@{
zx1h$o{{EPr-?*DU_hy!dd6u(#dmH+Vb=n@f>Su%&Wh~S}^~VLeH;Tgg_zW{Kz|%L-
z_iSh9*)^y@??zgQgL%~7tiF@qsKYTQ>^qvD4si8tR|e-1Vv?)0%s}MaTD;-0fKw80
z2u#JsUy}3{Mv%_FlCUx$BI`P?f<|h~{b~5cOn=s|^Aw>{`)_7(dAaw)hvDVr<(b<1
z+BLc-*X?t3M!T*7V@byHLwf})hKw^-8Gw6RtyZ7T&dv_-;6JzD;2UVr1k-A)H()w?
ze08|)h&Me;qgNCFLW6Yu%Q@7b&E`R86xE@<PHB2rFcTZ(8<8<qH_{}mO%PLZRX`&-
zcRvVh^t&_0d}OOzd#8)T!&qCxV|#l))Aw8)>*Xa9s7+oVu!QObpRw91Sl33KA64m{
z@n_Gr2O4bSfb|gsh}Ua)F%O-C-xryMut0`+$8@}H@UPKc6&hrPiG@-tjt<V<zCg$+
zjoIt@*<?p#g;h}(R$5wEMOOhdvgrN`nke)y823w-%VaWJIA#siOIwQ@)m#~oG4*ot
zrnzf$94w;DcQ=TJ2=y9^E?28>W-)(0u7|3Dr>|bUeaiqjOl0EVXgh*A5*6G#nzlfF
zB=penTO69f!fM<Q@XSN2u=u<GpS|<(NgEC0_`@78c#>JViR0j)fFdwO9ilfKvWd6J
z#NUohXD(B7dNIi*R0<S?{_95(tnJ&DB4WFwpF~3m(S)R*eEYu7`#iX?T$75znnW-_
zOxERn#k1aBSToLrI^cY=o@otAgzaBR;OaMG;gsnax|y|pjF0>2o0~G~f#3zj-P<FK
zfnHR^#>&;=s2>XDbdyns!|}37DVa<s^ZgCa+2sJf`g{R648L{3lY=D4ex#kRp3RBh
zCld*>BdqTLXztaj3;R2QumI51kRrna7nUh39Ie7yb}q|Lm$1%&CT=8)R-Qd#r9OzA
z?)s-#j9vNd_p2Y{D@#jsrBL9I20X1ZI$SYGQPg#o0{y7?8S1ian|h|i1PkaPxT=Lh
zG82zCP335<ROOn~vGRr<IT*dSE%+`>f(}R?4F$v&`)+?WB_5KB+<cw;UBYUTctuLO
zFN+fvxQ7&ZVPIjI32R?oSg>sUu&A*k);?B8x;MbmoZ=qMQsb?(McqWB6%7^d7j*gB
zV##K+UW-2p`a#!5C>KH~&oWGnVVE&Ck9s1P&*w8Qo1yBY`IAg0GX?DUFlYp?Y6u8d
zbK%dR516j-#_VtG|G6cfK~o=75@Fe0(r)o0VIlV~nXpV@q4r5aj7zJwsr7Yy=)?v=
zR0mv37>ku}uE)o{S66;&iH%l09#vymEM7|oN=IeUBefvnSl(7GY7EP13su#8GLwlr
zPEH(rs!AUm?34kZDl^9q9>n%U2n1Z8-@3s-pnJ@{nob~0SXjbp52C<@HFPViH@~E?
z%tyjYr!xw&e9%_yeq<v+f@hvseuC;}&f|%(OO*fW>WW|5DwktO0V->`M?^nkA(~;*
z)K5mB)@7%#dT@}B#`#RubX7c)N$&7X7O?F!ES>ZQm!1$CDijWJ#uOHrdN%3C`qBiZ
z-?Xnox59GU-{ECyzrL`{gmvju($ahD0)p;*ux){qEu!yrckNWlTT!+Zw!9R}(sho*
zPw03p_wjT3-FIbXq{fKI$lI9Xis@#kdU<lvN>#~xKA)3WlYSgwRYxbpiOL-glg5l#
zsgEI<wls-pSNl5E5mo~3z~&OFKN7yvOIT*YTGk+}FG|8Xvu<kIBP@axZiZNS+GDYc
zi~OSc3U94(KNXF|>gbNT#cL50)bXyPYm9^j5|cYPI7pTpj<Hs#ipP_UYPG6ZhJ~;m
z2M^mJ1TmB0T|@fHH=V+_|5^>O+Ha&@b%Z4{E;dNjJ*<<kOqP`Eu%HiN!M;_)_?#_b
zZ4odyqL;1>k4HIr6ZDUJvsYIUmSv-;1)G%$>$<MrZAW3kqR<`XOfnN6W0;eZF-Iw#
zPUkDy+urrj$zf*{J2?0?{Mm@Y@_n2n<vNxAbz8+CtYNuAcAu)SU{WVxnN(gY1*`?G
ztFYFcOQ3*f!Fr@&k5Dd#p-p1GsDrV1s>NcAy}piITx28uYdY45c)b=04c%_LJcBXT
zDC8QsG@q%OS0|-XoQ)O=g=#OA?tKX>$L|nI;68`{HiD-l`RZdr##ex*rc+!;Shooa
zX6>`;!U`x>HO#?4G5MgBur|6UtS`<>P-3BbDOP=+kd@l|dE#6TVF?s&f<e}jZDPTN
z#nPJDgGYmpOX(Ve5ihmPl?evZd4w@&VQo+N0AnY->oP*D66LE-!#=zP!}rcxzTsQn
z1ndEIVWDBALU$4dipihP<%PBG!GxuH^ck;qw-vknYuh}?Lie!ljs`}hUJv>OU#T!6
zM})^O;rgNYODxNlaAA#&l}aVLUawU8I{hrr^A4fh0=w&Nc*+o~R>JGq>3>M1A}k(A
ztxmOtwdz(E*6ffxvoK&xPXCZ=;P-q3`V*FCzT4D#v~1f1d1i<uJ%okBW^rRh=m(O?
zP>~ijo)Mn*?-nDq4h)azs`C;jjoRoUtiq_gnF8TsV+aei2?)MY5mq7uE!?YibzuSd
zPBvf#VBnan$R(^(=q{{%=h+b`vS~eQfGRfIBFJ+@5M@Ici<S|VA0Ez8^E~!ZqgQf`
zO1+WG<>=aD2}@<NOfOWE6T2V>`Qq4RghEj)U*TVXD`j`zm1(8mmdRm7VW}Bwn1q32
zQo)TS_zDvic9Kwu*qQYcs1XzP2r<@(H4hj-Sy2oANXY7T6GneNwy;ot!b*=GlOW4Z
zc*j7(niVxfMj%;pM{V4Ku<WFgu#}DUVt5Lk0F&amWUKJYDfA;OVSEm#v1Z!>CEgRZ
zBO?gQ6TyYm(CsEHGZ<s#K77^hfQql%6NexVxqVC;Mp$#x&qyRjbdpdIR_IPxlYqm8
zh7N@*G9l{X_iZTPhNr>gbX`!^Ye7%_39G0+KBqFT*1?@6h$8^~okba=4hyy5@KyJC
zU-_!ffEAzcffC2zL(l^RNDALj2B`?khYO3euL9203tm_PbHjqJzU>C!=`h(if6nvz
zkLTwbpiNls7o2;l!a7r(TEAgi17)~1Vh<U>SUImDD%}xJmBp9cqyMva?@wtfe*?!q
z2yEmy10m8JGE}amfMCJ9QnYB%T3dV6+Uxh3UhK3!Uw?YI3Lx&k{%DUi+>&gP4e^J(
zr*me`)HyTZu&-IO*^M5r^nr!{5myL@OFv$~_v8MRu#-unq3+&lk==^i{bXDOYmopf
z5E6%OyW8z@xg$9q$va9ptH4bqzkdY?!P@mMVUX+6Df0j*K4OkRrmrkp0~5qj-b-i}
zSk1<_aCkth7S`YuC9vLk9_K(Z{`2F=z3__rnaLul0O7?69^H0gzXQv)DG-1Kz`574
zxT9Pm@h>T7wdNoPYt6d^vK30s1CR<a3<kMaHgCe~HWg26xCAr$*Q*w8H<V6mAomLN
zd4*p*Is}>03qfQ)SBU?aiO8wW@AQHd1ORb!4gpv}`?}J`aq%zdXXWtkk%D!m1QyIY
zp9UmpWak4Q*Dk{r?txgfkj*BNW!4dX2&Eo;dyWv|!{V=noiNs<6`du*XOEt6vY>r-
z3+98xFJ^*BIzV`5hZj%Fx>G7W85spu97BJLc9#NJ$Uv~Huw!P46s)56Dad!>WF%2q
zW%iWb@XF4C>0-4Tzgic6CRtOqDwtEV)u~6(P57d5dxT##6+r4z{<QS35Q-f>j+qV?
zzmW-IIj@i~5x@HZVe<~G?8q6GJw9}i_N<9uS)md+So_{JP-w}Sm*PlfjZi$b;lOmU
zD!;-Qb(^V1qtR+MTeeC7ObE5UJxJXdT5fe3Pb$qeLbSmG@}78J@F1JuUf@gyi{ID^
zBKaa)AJLx@qEa6>T>=4E+`5|s0O=18Aw$8k+V!gds{jgpbuLMucED^Cyv3dcFqf>0
zmm%EqZJSLdyI?}Cdi?^4z5ezbX$S_>0oL0`k9ozLTnjO?y~=E0BwuhVF$ye*PbLV!
zirDRf+-)kOwX)jtJAS}GdA|f$XP{7^==?6VMmPsbt+4E|xnNy9w9WQ?;lj2CjJ;H~
z9_r#=ur$4<9w>tK+T%GvpipjM;T?>xk@G8z6v4`k2FoRog9T=RWwqz<=V74ZkznmP
zmBE6da~qGe=r0z5VwcQ(%}lXsp_i%tFI+d7oE^JY^?K;4@4Cv3Dg~|p2!8~Id-3Q6
zD0leyota+6wl);K!W$VuVulq&Bw*d1Cu0&=R)LcLm<+6<H;+N7g46j);_VXwP^`So
zel-)U@UQ5=7cNk-g~#tzwL5TK(fSn)uQY?T?0Le0a>Bx)d0ydIM%gPQ^!`x7mql=!
zFzFfr*1+}PpgSV>K^YI0RdJ@YLI~C|D7Wn_jb0<%1%he}J8K?TtzY55(D$ustBlvH
zPCYtwVawkt8oeS13tcBM4x4WteF1{_g@v41&tKtSW)Ug(vG=ZgZYy|qx%|YYGFXD$
zE`miQKK(4P9A`xLu<}G;?Kw+<QHN!*L}1}Lb~|7eSkYgh=I}_quqDedwz}bZCpvs#
z7o8|l7s&@jdI%{NR|w@pk%c%m&?&k9-Pz0{rwT0bU&P&ndciV2s{@DsjAWItR`MQ!
za-Wt)J?(zU%mGnrEVFA8ShFvaS0e^&yJ2gM&#P*^9vyXI4_X1E@3@O6;Eh-z1hRzB
z#!a!1nACwX1f{nkBlH3Q&NZ1(01F}Bz78gXWwq~LBLQpAyVL}N=A28l;nz%%f(1o(
z-W;&Xp_i$V136_2b;svbC_3`Ws`V~XmsYTb`{MDO0AaC(v?*TYGCK)G5ROl9qrt*K
zUrgbqJ3_G!>i`Iu36_<2W{D6iAPF<hA+TzvEC#Yx=Gk2{z$#aNwIqI3s@N)H^D2x-
zUs<^Gnl@Mxubt7dLMX;Rb|VwON@R9&h$Mbu2aN^`(yrhTSiS+U)<3xKJ|>gEvO1mF
zCjo1h5G*(yetk}XVS%(=mR&OetnjaJKw>DjleSA3Llx1hp-X%F?TR{Bge`kK0+5Cm
z9!JKfmFU%E4v~U|M}UQH!1BeAGFWlm<YhpsT|W_6#|}cU_L!xD>NP?!JkR9u*ui@C
zvWg`~a@1CBg3;ktryiEPv}QeQ5?JL&kG=qT=>;QB9#!%xlS5>26N^X!tlYXQp$ry>
zOb5#X%kf<qEadg3fT)#i=P~p*&#VD)dkj+s714UaU3wgML$=g7cH^|L3|I}yU;$Ze
zafOg5?(@RQxV@Ulq!D3}Ou7%ONYAGc^C^MF-GF7fSQc3Ryz*lWXy3a6WX(DAfx$IG
z4CJjc+hYdnD*5tK?u%Hlg$$ox)vGNeeQAO418fRdZ#|DOs3}W-iiO0a4j3hEV@ntW
z>o$N5MX*jj*g1s2RI#jTrI|dzgQNS70+2O(%A7%Oq-%uY!47Lc9+eyJQG^g6kg8?y
zLCL9bz1o$%v}otO8DPEjcp{)K*8&f8qu`YYRzd<S1aV&s%Yp?bA7a?_;~1>+{$fB8
ztb*5D0K&GN^Uzb_lwAQey<$$=;{>bqtHC3X>&n<Ih0$a^)Rn)s=(p!o!2+Vh6+-fI
z)X!|7=M~z>2$EoNJ{K<!R^&qjnGTj!(eGbVyoXhEtP&&gzs%{ZhBZPlmN_0HSe2Ky
zSp@QhZDDNe?m>lXyQ-@L3#fp#?0F=B%HAz}7RCmau(+khD`8@TmjsJ<x#VY9T>L{0
z-2`TGWp(8DpDBao{Q;zP#U~rYvqsf)z_2Uh0xM8?Nicir8u)s`Xs2E+C|+BmQKq;v
z2Z(Avdh{C9#>d<dG$yY&@jzsv(py2)2UfNhET4;$1xv8ov)KIEmDT>t5y1@W7>Jv5
z&X;@VOJ|_2<|^}QTwq<jB)UJ<vNa6b?c7NLD1%kMqPX`NNGiYaXn6sBg7(RyNGd*_
z31VGfoggtB_r>JF`uA1O=7VK{wXXzLpy*WrR*iM;^{x>HKxH+ST^kQr?drpD4V1%;
z<Rvy}w{wc*+Maia!2*fY-*JD#gNEV@!dSe*;sK+?U`6`DN+U5y_=2)v<;0yj_dE-%
z@7~iZAaBX}RGe-xbD+98rZg6?%GL8m8%RnSa%w|2B<B?%v1aF)cC9q+*!?1|5URb4
zbvPEVf?FFrQWM^o5c<K&p`LOIGpzOd0hZOl%zi)ttUX5wRP<lx-Fbc8CAI*nE3oYM
zae!5QStVttYHJzcRVW2yVAUIlhFCz{vgZY8ihtqGjlrwPR-8ks;wFBg-qOBazxZpg
zusm4na1XLN^ZP53k2Ms2+?4mK0&Aso_xhYOh6N4fne7$h!J2(&I|9OHZJ{o8uR1ME
zcyZ+i4+z1c6M81D5UTB;g&02uuNFC^E-o_w)+FxxYnLx44^|NFMHW~yMTr?!pt$dF
zIJ{o3W4}}Y@?JTYZbx^K`3f59mPohr=zGHbIXS{%+NU<Os`VBkzPji2ae4)9&-821
zn6Tg$j0P(!dZhxaMLDog(Ed>dEWGaK;T~j#^8Wltu+EOXjz4)F-r_Ehc5(X08<r`6
zmOe4;CxgLiRv%t~ibBa0&?^w`bXqE|F7+)+2Q1<hLIhfi(YuQ!IltQBklNCjh&))b
zGpwN9&cS`iDnE1D9Rb$azC+A=EtZOBvF4rIa8pYB)lOZ3Z6<FpSgrF40u@E6ZYd1c
z>n$}`_w3vAF@p7v=Lrv*<J{{&DWU^L$)9tV1uN%^^Zj5Q-bb*k@_zqbKUhOvIlMQK
zi*<JU`kXoD6=>@_%X~5vtjc*cplX0OL$)Zz`Bk;6>hj(_7$aD(A9*5rl!>^rKqqOh
z^n>+r04(hC@zO^m2gL_s&CP0U-@n@rmgrSKSl;hIRv_;z!rEG`#1=qftIV8{V5QFg
z?y4N%N7N3+x(wH=O_c+-QEiUPD|q8s20caGhn#U@r85%(q5xKKVgRg7Ij~~xG~AD@
z_WhTGV0HH$qrfVX?_g%wn?Lhsps`OZQ!~!1?%#jUsvY1fVOxsYZk(pt0sG|J`!RWi
zpLre&peKHv-sm3oYEqk5+)n>}dK@1HOOOOhaJf(5zGQ*5KM2;Ue<WDmJdm`OXPnG!
zbGx9e1Ey3k3as|i^OX7#-n1oWsd&|?HdPPU=-9w2PfvdVeVrJ07b`cJNgyqyx3Z`o
ztepX{g1)%qODGa{dlv3TRz<&e0IWUl|BVLATO;v`x%NtI4>Ywh&%81SEF3;>X&B+S
zWeW#rc$F%vAF<7PWjtQBm#062&iM6p4k#smpbUB0t%w3x2^p{i_aP7WBdfv?Sl|5)
z39yQw*wv}?I!0_3H1&#M3<9fi{<N%RfM11lpW1L$sdp~44A}OADjtVd@ND{ter&St
zpdnsyJDDufR(4>9#V-zmm6HYw1@F(s9IG?G<ES63B^_YlJoB3?vF!k837;}^hJbbT
zFtnm=fQM}jonD1H$rNY;tEzBJGMK+YD8?VIa|VFLZ)`=7ws0_$lLrfNK37fxEbO{J
zU|AI${$f8^4u=$2r6$264Fg~?YoMt$cD`l+SXX~PoYgqQ+l{GNy<S~t9I?;pg)w*q
zPo|fFLWk}MP-(!cAkr8&`4cICB?NtGDX`r42P~^Vz89>#ELh$>P-yixSbb#8Bhb_w
z^Au4Bs~bA6XddFJWO7Z9S5vJkP#e*sqd+J8kH^CSg%WOBJ6Za@5{=QhF$eLRgJ9v9
z>!So%;BqJ6zGQXmU#gLUmH+W?2M3>EWbE(^i$$QR6^8jv9jsLyUI8?06|Fe5Q}wBq
z_7QtA4zQZy3ZcGm+#Lfd^?DUUn&UDXN?`FZSBxJGmeA|3`B`8&zLS9^=Jf6tOT}Wb
zbo*y}dwX@exH=bLoi|Yd3(Ya}m@-&L=V3iV{K7WX22Ejc_n@W`TW*96_X>+EgnG-l
zV~8qPe0*yIBhBS9K}E2*Nf$R7tk`|pm}9lK?<WSURJ_gWyy;r5{+Qc;(f|v(PnoZD
z!MZ#Tb@dE!T(yOpprLlSlWgf4vaR}SgS~=ho+lj83B}zBnqcu8qE|GYb4UE-AXo@o
z(qP4TxHnlX`S(b{+J)O@|9kM`;Nbd~!|y-7-~9RA>R-2PF;u{UHD<m{6Rg?mC*1Xo
z@p5(QQVVpAPO<{}!20&yV6Wc2@tgpyV(vIauy9N~V3ZPA6T@I_y7-Y`p_n}f_bCgk
zQ%tr>Si~R~URhb92^MTKs}#X%SO0UMcZ^4;LKxIG8=k5*^?8L-9SN|2;tC-KT5)c-
zKn*PZ+AD<gfyF7!umHJyiIHICT=q1WnpGfQEZ)6TzT|fVdcn%;cn)jH`8!HrtugE_
zNT>b@cdUDiC#RyIvZJK98%Hx(_`!2*s8?^NJv>kgQJP|j2e|8r|GA?K7DRlDqrtM9
z3zpSc-a9ih<M-z89v$s}(p_qXwZ8&N?GDedR&}^qWaa{tz{0Kba6tbMzf4x!psLDL
zr&<QRV6`7SXdCI(>*?te1oRTt-8o8NMKVeUjFO+;CxW#&^hpZ7xCB_P9GI8Yu5;$!
zZVwx+`5gznV0BL=Hb0+&VxNZZy3c|3X5|kpRkuL+v_@f!H>*?XwiHIEI!~MWZ#&~g
zy=|aZusr<+^hf<fmfzZJ3P@kst*ioAzm1XvD+cCeRo<WZlRqE00n6bp^@0Vp(KD?5
z3s5X@%v^ibU+Dle_m!EiQ330dc*9*^<z(^-h$}=p$%_>l3uUQ#*Ep_VnS2i+`N^Z0
z23U#AW&%+Mi<{ix_<_$-Sa+pIfW@zy3YOK;jF`W0gG_M%EGUiyD^K`d!alK1k64Cz
zRRE3E=KngP0aiD39;GzQTT@jvyKy=fbXNA?cb*%@6*QlCz5v~jo5mCi36s7Y(p#|q
zkOw}UjZaQaE@rbr--j9TWk-Q!?oL9h{h6Lt;kqCGQlJkkG*YYzkTkp0H^+Jfg`4yI
z@><C{X4sm3u*%i*3axS8O%m^5o)x{)4c6QLd14e-fUj2wd7#`0jWbyiG`!+=e)2tB
zMHVw#nQO3oTU(nkuIJ+n`qHDp65uwD<G{=;u=d4g-Fv_SD2|w6l~xFi`Aa;ifnnDG
z0FXd$zYew;=JWux^^|#~AFRrGi{3zQk>16+N_Il;ff87W>1r1Y>ix6_1MRp&{l|0)
zlfE=kOzGPo^lr>aEM_v3fAVEEv%O%&_+hY++lApKl#bYa_E-W;&I0Se;r}rJ7AkuC
z#X8ts@|FTX)Y{$>dlTba$up;20KCgy<Mm0C78fjw^@4TzpHPz?ScU3Ti*SDRe2v=L
zK7L-0f-!v&R|shq(f#Iz#HKHc=z^7=$V~R-3*P-FxJ@573|7SM=5L=Lb=z+`<iOM{
zu%P50oM8bJM6$fz;vT@tk~qgAi)8}4r?(TNuQ&6p|AL0*{#q^T^XlT^-?Q|*0=SwA
zDMM6F)u$>zv2Z;F#<V>B0*pxS+eZ^Fd9O&n6NyYrd|6KB|Jgg+r?k~>4=;h{CSjKo
zB1Y2e0RqGDUS#l*cON%fJ&tZ?w6o7M_V~eRosRAKv<Vcz3irQ$03iuU00Kn#z%|pU
zQ!9QDulZ%&>t4&QLb0SiPwEIOWF2(C<Dhkj^G%Jl<xt_Pp{P!!BGxBc0Y-dr*<5{W
zhp(ckpSlitFhCkr-~tVel`HhC?>rc$L{k?_39IAVZ?1Okx!=*oFde?}Yqh?D_FjN6
z$yXmalZ546E??OV`w9phg3=&(d?xuyX)G9W?B=w>3R(qX@R!7!?)=)4^C$w=(Wuw`
zNGq(8?UL_temNY2WjJHy5DjoHbz+q&G)+GkS5^Vh%Lt3l{@?A23)Rhtqcg*44M#+T
zmBR1&>R<xZ{t2Negq?Y2seC066ERXH$Rrr)xX`Y{F*kCP`$i)y=4Nn{kRz=!Bm-~8
z7XC!?)jwA-Am;JtB&;XT<*)!h3RXwPGS+8=t_Q|?fma^B(x~zR2B}ii^%BDBb+}gv
zSS_^~5$n0}tI>qjg7@}XuzH?9?*2Cmroe`r!czH)o#HD4#`-oA7H6?r>^gXfp`6H!
zMp$v{V2QogX;tv1!rF4;k^4pmV2|xwE38vn7W(k=4prVz#v+m^34n_zJ+j<$GEJka
z&tM4R2c6Z`<h&j3t(ErybZU`Xm`tqktM&{l2K)C``kL|`LIO<U&go<p&R6yz5EB6d
z#=_r@nbFp0i;l9~c9I+IAH2~Kmi2B>dRO3lTVZW^y!7<=DrKD`o99$3tV`Py3@Eq`
z0i>tG!}*Ps9Bdb?pDH#{)UOat7oNcoSt`4zue$ri(&`(RATVwIf*5f$s<3jpKSeWq
zwJU&W<el82z9Pvm=viv`fdOINC5E$=*)#h<SXxHHa%&UTf%S%2x3IPx)qBX+;ES@b
zL>N-K9L27uOV=YTlCgLiJ-sd&Ov~TwB8_PJ7L4#jq0fs6t5p2GNtht4XW!(h4Wh%*
zFe3~7=V!x=iu=F7Ji^Y<;=WS<j2GP&E&LHD2H?K1w7zoN?Qs~u<lQNiun6JxVouz-
zLBiVdWhkubsVuC5?X)g^C`+ntBx9wK_<F$xDIe;t(lnhsH&k|`Dhmm#Rg^p2R~@k;
z6MYp4RKWzAKN}|aYPSpK!8sS3Jena#Piclb`-#cIVl0xdl(ura?d0(F1-GCQ7E4-#
z!>}m(D#*fG+4AUlEmL(|N?{cwNlE*13}&ozM2{9qv_XbHrxBetP|Au?bZ(J=)xK}z
z6$?v_SZ%!+)e#*(V_*t=d*u(B&*u6HaB!htZb3e{1EW7ZLW6fCtW?6TU&FE=PZO3f
z42zPltYKI$Tdr-MPtc<z3#)!A2}`PC8SZW<Av!i{O&If2E{SOL3FhV+RTdCd^u9<8
zfmM_9MRddzi#Q@NFo~7-x>rB$wvWI}xJ9a1f|Rcofl$F@zA<CM(i%%4tPrCX7CAcd
zw2p|wn%VMv>UkUrt33)ww#&LKo?#VBHWm-_z$ZsdSV@(!;Hg5>>4zhjlOiP=7S@mb
z{jOQQ(x2MUG}Bkm{uy0$#r-1><`Q%s828ojQW0k2#T?esM=h&98A2*zapS@YT1h-I
z7HRF1Pr=&Ra_TwZUxn2i3B`5^G6gAA8OvCoP_`u*E2rM=Or!J*%*PLkeljSmj_>{l
zVV<z64o6d)ui7y%jp$zcXvKF3Z^2|3XWqE4xK(br=SBnJ@ttKDu++#6?l+`LSRqMR
z0G!YVHiE6NZ1sV#Buiy&rvS=`bpc9ay_+v%)zi|d`U)!6VT{rhO`~KT=HVzyT@l8F
zmA!u<OcWLt9gSA274vsnEet*QUcM5+Od3Bsn|(s41$&+GwfRcENyst><!_0EUH_1f
z49k~u!fIjVF>D-LUThwfur57vqLHguN@E?(cTRW<uQU<5(mpb#={d*yMJc3G<a!G3
zGP#-~5^?m2_@jf{I41iFYJ07XKOxkP#R{=+>nqSq@4HK#B@%y>z2$^{A6ABeA%Z)v
z7FHNGkS#XP)0nXMOIr>U)LpK}F=L&+o9mX&g?th4i;l72dyz)z0?ffJC1L}@67OqO
zNmu6JcSuA6)tclh6NS~;@DoBUOx}55^n7rI#$wrwrTj<YEOZxU3C^C-6_x-a7?rRN
z$c+@%7HspJjtQ$^JFEk!t60V}R$WoLdZ6h~pawryXf#h(R;Nh4%rC5q{bI*tU$q@d
zB96!{m`wMlf0ZYMehhDb;LH=I=PRwT0Dxt}sc#mGrR<Gk`SP<?SjU7cEOJ~}DXV)E
zg|!8L^&F~%rE<%YRK+rsvG^pafNU%j1r7KijZoz~%%VW4>Sj|rM)zX`m<bjg<J6j9
zHh=BaRybw!V-?;4mdvxJ_cLh02f^~UKN6OZMX{5RIZIe9np46!NHBIXt`yea8@r``
z+v|SWQV8oPYb(GwCsGwl&RBEwyk8-C{@!zuuIM@L`w30cCwP|ozETf!`|4gK%oSGD
zp(4@+vx)s|tZ)zEExZkJr+02&g;pf1u=mW8NR+*I?13eS2?<VTAeI+oh?Lu_6jt2o
zh0SCuEZgm11QraquwAMf(T`lNYZ&9gHAlw!o<?#qYn{>+(BnLbP~~xE6)QcTuyFQ1
z%bP2#YQv$%&x6TS{d+%Fx0oK@OjvnlPG8-yusoc%Y`46(xKrWRi#c}$F~wNNDGn5*
z+=4<_Y-mG;wdLI9`J`yR%GnM<1);8D0WZ4dsAHwki>!`1EoCef-)ThC=lqO^LXn?G
zSl9Pif-qTF4lNkWCa@>MD!~8VZRFsMz&CS^=w$Qc@{eC!`1sp<i{)E6&azm#n4^RX
zB`m6ZHCb4UdsBB3ZaEnfR$CU9wu&VqzMGw~9?(|;BuZ(N#-K;(3el*7VG22lQsllV
z9qu1;W(!MnXbFJXh<kz6=vHw;Xg&u{C!X!A(9*t230}+l_m)gN&dBc%?=WFWu&J{|
zkD;!P?F=Xp+!;n8EGHR;4P`5=uPs?vuHk4IO%+RPtn`eG#Ur|-^b$>rpie1DBl=Tm
z>R_z&Y+*G&e7H8-S5R|kX@J>O_x|Kzd8&Wz`r+*$@=mYGzG68pG&m3p2@I=zgRtc@
zPP3-|tX$57Lgi41BZBtOn6cQ5J1h$;Y|X=FvgM@TiS=Z2jfVG0-cVJs3>&LXp%ak7
zCn)_LCQ#2J^ffnaFxJ=enZhdGUlVH))*DEmvG*4&&%aeCgyu)ApsBt(NM-E3Xmy;5
zYq}f4i87%gmGBY-BlR)Z1yB-lbF#298!N0Wb(g0u2}_i2J}bcmolDQ6>s^|MDd1aF
zc?KCGNl!Lb^+y`fm5CvXzoiPZgeBe=v6;Fmbvk0L7Fmz5e3G!1J0T3fTf&C&VUv7?
znRuq$i&mKor?Zt=zDX#<o+UW>?STdR_*LtS`#=^}$V$S7vc=`Om4tO7bz!NiSYN<!
z#=1u62PjF>^k<mJRT`mWZjPx96MfY(Enjs40daU6XDyF}AntWG|AbIW&>6%g_zI^|
zeOcMdsYz9RBCbhT@ju4DSKgi<FJc`N3SoI+W7!JpawIHX5|*}#Md%ufhsjja=$Zfp
zM1?LsPrK(#qlxE*7Zi0gO;|7clqntVxYcSmYQCPQd_JGp?KT~bH8f&D>!*JeCxjh%
zTezv)DDWb_VwiBbZ>w*aJC1;fgc3nw3`p5i>h(MV9_w?JgvH)iIoMdXRrgCMy$b8X
zX1fIy@&X;h87qsZ@lQ7q{Qy%qFCdhD1U>jHm7F51&IdC_U_}D~zhh@-$Kh+Y+pi|A
zN3_BM^Z9G9v9$AccmD%#P0)EWC0`luzq-2{Ogjz<2QU@Zo*?>2?-t+^XJHs4C2h@-
zF6Rt|m9lQGu(sqpm;6vzU*wB~+FmRkjApDHLKw!lo?$FFPa~AQ03EI=`ujv-Rg3qx
ztDGpqSF26GztMA5#ODjdVjcN2ZLP3GFrCg`gNLPHr4z!pgd;<EMfr+ly@P0#DRbP+
zuft~+c6hUp7yw~Q2F77R?vPSgWNIWV!Afqdu(q6gY_~_Fgmnt~JYBxK1}({V(>h2o
zh1BkOpy{jWswmJ1UF&F*xTS6<3G3N^-(H!oa5NgNMRs~b{B03q3}bYCYF{}VZP?(}
zQTc?h1#eG~yqlP>3@lP+?(Q;Y7Q5Z+O%X5;X9-Nm!UBL}yBAb2q|!@&yMrTP{k_2@
ztSvd0r|>E)d}zzU1WxpKKNot&;-{Pwra@yY6eVC9pOZ9|PHJEDnHo-Q&?~rS`4#Aj
z=lK`Ezcz4H#NTW-K@Y#mS51G!;cuERtUqBH{^#Rv6xM*(ssGr=-jJk#VIEi<_nz79
zmg7`7409s9w~tH(M4x!V&T5AYx)nnr;sarE)(|jxs{otI7NX$!#1DkUd!#Nb{VJBx
zjCFz1>KCjQY1Ek|jtW9wA3)6um96UvEB2wdbiArJn^9k65Ul)ue~#w~(1jNrK4r%8
zb%BWW{vm2|d=Y;JmOUZFum&*cJkU>G<Xlo<!zr?7t8d;QgJFKk@9$u239FFMiDsO#
z87nndL?KvjfOBtl!rE5d56@qP<+9a5gFJeam}D#-^l4?$HK^#&bP{I3U(*OB)vhZQ
zsUOfo>#P0dGQz^R({9&x`b65%==8AEiR_47F(Q?(y3ivhIvh1~jrF<F=qxo<rcs5p
zAUJOby{$TP_=;eI-cWzKvG;%hV|XoLAP6~QF&TRtw1nN{-!O#fcVZFFp0F5lvlG@<
zShmN3uug2nBY??OtVb}Ku_`EuK}D%&EDSR^x=JIukb^Nqiq;WUrzp>G2cyJdF~85(
zS5?FBZ&j->gKBNC-MQ{>_<fFATl)Wjnj_LSd9HhGnU>N2YGPOmOkQWWJ2yLDaopW;
zFIw5l0?UG7yq3E$VTBWA3|fdAcSd^kP+wU2zObx$7B-n}5$j@bm+;i~1ypE8j~c6E
z#b~7cno^psz)bK7g{TKmf?umxnw=B3i|w3<wcG8Us(#<u5d(oPNX+onNK)Nj0g%D{
zN>+43FXs^d`mGJ?LU5*ZeC36y2m;x!TE*iWECQFY!~qn-DknnvI?cF4gj!g_W?#(N
za_PD43+w36_Gwz^dFQ$SqZtdKbKQwDBFqHmvJ{ohVUQrMi&PAB3hqXQ)$Mj)bJb3*
z)_7^PU{30_9YuFR&DQ}L+%>n7)!vIPv3BBP2i66fSLYS(cv`+<xL_t@w`W2@hJ^)*
zTgohe@>-64g82lubW-Sb=W$P1LC9N=VWZg!%heaw<3C?Ng9hya9W8}P#v%$Rt=9xf
zr%NygKPnVexdxdNDytIK)qSx;7!g)f6#cJF3$;Mt#prCANJn`OT8?E>C97lJzy=>I
zNbBQoO;{iQ>lEhp6(<PCBxxs8DFT+@&f*=5;zGiUK_9QwjKz{9CP*s_n}0~ST~62+
z)|Y=yVHzd5ilsFc((fS6A-!IBT$$5YM1iI#MORjdqCR6nLGA;Uo7Y#ZPOMg|?MM2#
zsut^Xj=&&IpF`xe!jcKpe)-xMOrf>+8!X7~?w?1nJ`Tt{J5T+JVNxNIBr~BqhJob>
zzaJA8E+_6lMy<~jAqy*SW#FdwXM@@D<nh>Cz@JEMqeiM&va$3&*U6$Q&>>0FC76d&
zlA`EOk_6gR8bI0MzTccnSJgn^HnOw-`%c6!icwgIm}*~Y&7qA`=2fz){@)fpA^Z))
z8ev0D;UFalse>uLVp3kRM@SG>APXFPA5;p9OJq2hM9@9#&|=*r5XV-Q%Ww9@oGm$<
z$8!lsHd_v~sMkPGHkNMXJ&CR`Xu)Z^h+!^1_mow9k!Ft;qjJRJv-gErzG}5v?OL%{
zu-f<eYTa%Z1FXhZ(A1eLgS)<8jzHC%h4q0&hss1TtP{bRcaqK?Aun*GQ_x1MP$)x^
znY_TUt5Kx=J);zskO;v<n9TpPcdtKbWPcpTKcb#-Q0Yi<5GDa|N>Nx^Xf5|zqm;V3
zw&J?|t!>h#Z8mKma+8~O{`KFPsth7?!=ciIS9Z7A4KW)ZymRI|=Wtvi4~oyYg4mpv
zg3~S!#@-}Y(#nhkV7Mt3kR5yy`a8$uF~GWVs!&&{V7JFku8tIX^W;iaXW*We*Hvq7
zw|mXqYDI86{;4XiIiL6Art?at<3ES>R_i+$#<PVT+;OkESTWPzt9bM=OJ#ylScbQ~
zBmn7pX*-5G56d1y7I%pk!8&weoK0-W!HTVX7N9LZt4y(s?rz|i6AZF%qFA+qoISTy
zhHS&T)pKcToAg3gxm-&H0&Xhj_m`B@%fq7s_eg)Rsu*P5Kksiz;}R@-G5rbd(y`;3
zo_UtU^FDcMwfQvcu{05q?WNQctf+01Kpii-o_el=m6_&)<2`eq`1+-=va<ALZ)F$2
z&{HfR#>}S5=(oirFwhr{Ie<|lX1Ci*po-pH^5o!ql8~a^{)1cxS!8{^vgVfMTCIxG
zF^hYJAM<_;L|UEB2u>HCo;G1x^ZvqH+@;5k9;|~E2`+e|A(j$-J_3uy7w39+HTeFB
zL(`_~5LDC^k}udF=Y8%I!ck$5J`vLQgex-}Spiy<3v^WXW2FT2IZ?YU2M5YIXajZ&
zcKdcwLVL@e%6YxHY&!RTpY%z$*IOw!<@Nj58;vF`A`R#jPS*Sq29g?d<NK-rYXz3g
zr>Fhs{!STpNMaqm=)d^@@L^G8WzjfBAhh_H0Lqnwb8%>jvTPgxA9BT?I>N584c0{R
zU~lEZ%uh>SYS6Sby8(4EhPkoEIxjH$Y9Ht9H5evE=prlC5Vq`IuU-DzTOz$8-@gak
zUN2o&rCO_kAizS6skJloBbBuZR5V*1dM?`Pz3%3J;M;{$+$o>qI@Xbi$9*hyD262o
zBk|l8h7zpkA0mM^pG%bFV6nbUHaI=5!I}^XD_3SNZPawGteE|xQ>-?wi>U@H&2cf9
zkgmwdvS0G%$R$bI&9(yW_wT*l>cK%nfYsX7sX%kkW8w}}t#_>6lhs%bNHFJb`PzxQ
z<jM30>q00V=P@$R7sF7B_0;Ck|KD`^!eYopO;b<BD8bm7NETMQX0GgM7K>zO3rTZp
ztTT@LhQUr~u?S44ZRPA;UU@#1E=E#0JB?K?m5L<W=cBoveyZBWpkP&?uH2gM1R}6b
zd$}%|ena>ScPh^I<%<4&C?4|!BjkK;iz~qj|M3#Kd@h!C{WN_c6P7SuCWMU@#f-sX
zechYgh29!V=RKj~TY}5NluA#qa<NLvE3d0^rGrM9$S?v)+N&~52MbuQcGgz!a<4mm
zLzu>$ir-vcIYK-}>#^;5?-kI01PSy6S=XiMD<a0uWHW<eMzNRIn_}q|D~Vp)Oaf}s
z98-cB*`8o|f3B<6Yqd7Hf)NNzt+fXSX|2`P*`40$R3orRvTE|Kuk!tcA283#-(#4)
z`AF#SV6>t(AG*QfpU;J%$H%&^Om~SA#>hl*X<)FZEHosSW)EO$jg@COsA;FTL=7fv
z_pY$c4g_)yMj)~_Rl#7@HN6_WUF-NOZR>_uFrobDek%#{to&7m9XEqD@)g#<i@x6F
zR>*0%SJbpZ<S{lTntLm1!CGoSouo{$49>Cg9CrjY(l%qNShbuItQ6_@YkP(2d;~h0
zmHE!8Ma6ny?t9(;Ubrt{2v+_wqy4#}|2W2Ik>H|;E6z>ZW9Z;nmtwj{7-M51zoHT>
z>a)%i>l5^fRYH$_E(VQaaa<n8^#m(B`ds0M(yO6@1yt5Lr>n5SnW<oXxPQNdyA9Uk
zpyLi^SkAfs;=QMIpu-t*sRS!XFfJwv8o}Bt>rJurip8a`1&d2Vm5^X^FesUi^^CCW
zmE@>{)$~sVpeiu`1Nzd{PN&ku?Ue(|4H&jF>>EOBew$8D=+NQF+?Zj}XoZ{@CFjfk
z&?VYJ&=F_*f;Emytcg99VChe>gr(U}=8BbI(olECa77q$mb;1-%~h_Fd!Jh$aj+^=
zT4So_d<6!SEA>u2g4=s!B3RGvpQZua%?v9V4LT@a5b+zu%7j=)5F^Cf{v){LF|Y}1
z)1?}$5W#qu_%fpvtS!C0Sc0iyCAb7Ml#HB%u6;|T?DpK}-Sj~&M~hXdk$lDbJ{1{d
zuU4nlR1=|mUxU6#wO$XDaa%3phjZEs3qLS4LNGL*7eh2m?+!g4P?`P(R#?75H5A6k
zcott0W#qo87c5>iSd<gvVIsSt9W31`mYHJZISyL(8Aj&^ek<9jTvmWAdGNkMWcifW
zo63)Jebs;!!2(w4By0WlTSs>!!*2)!0`5RG%3iLmlv{IpWx@c$@+m?dBNAE^2`=!W
z&8NR-R6SV#i{f`S36?U&5)2fp*t4<WNV`}Z^PNBiY44{vyZ!T4_e)|(<b8}>_?~-j
zFA0RQetLX1HPwJc!9wJ;Uaz!o8?5EF(KCdP%J|iIrx=o(bQtzP;oNj6*f3<CAj>{=
zVl<vBPk~O`e@=73nx=l^vHK)g=BHRnv6!^ZdqTxFXHR0F^!JpVN*zd0l)N!=Ns7@?
z*1^Ckk*;A+5LN|fDOde4OlbK#^~SFW)?fD*O8CX%#}3C6M@9@vr2i&Wk#$@U!?+}W
zeY<Z|CkZ{uWfV_My(6Tif5&ISNw6en%Fb>On0PAOXSfq+NpsAgq)ExFJZJyB-@rA^
zT$XgzQgoD+Cg^k9alAxN<TRmeb$%Vj{qWc8ttN&i?JSpJ#G_w)hEQ^fujKVpDDD|>
z{P`I1C`-lTP{@-kF%IjI=eDaX68U;U9dVatu;Ta)OoFwvm)hOkh5j|rdZVdyce7Oy
zri&H%{y9f$wVh9*4@sp2q9~@`ds7khU||UDfP8{bH&`v0&|Y1uSKnfIZ<kxpC%w>k
zLufrdeEjao6Nl*Id4d}<4xa>or*IANY_e?B39B93x;IV)ZF5fO2y6C=#&#@Bl(d5-
z|FyJ5)zqd~1py}3SP5>MK+_4wWYKGP`{GeBf&o&wZ=}~*?!CKYWw0dLt0pWC7SIUL
zMb>Q&=j@n!LpXXK-{F%dPcp}G)vfM4RE%bl_1G3fH&`MM9r0<+U_HiIm=N|f9|^M?
zg#u01($e1E-shuYF)j3813kM7efzXn%6md>MaF)HOSN>CW9(caR#VAh%3dVblq+6$
zZZ|n7SQy5Ssi_LA4;G}Bzg}I(kRr>0vVk{*3jzER{6E1At<|B=$*VQVk%<zGxP;h@
z57vrygXMYo@?YqYM9n4E?+~oX#?hq+sN&JlQDN!AY$2OH>YHK##@AQ^!^JKXp`x7X
zUTt_(U>LhSmWHa7w@CUFTW)Xa3_S?J(7p0cwG4f%HN=mucPi%?&QARddS3jZH-zyw
z@{{1<aTw}EM+jOZ>nB;!?$KwD?K$-Mw1SoKU_49|HG-wINXX~&M;jX(OEUUrA)QX2
zC{rw>#S&5s$1n^hOO({l=+I)Fqzm+;i9$LLm<kqYmU3=ye+tO3CkTy|=yWXtvzn`&
zx_`*~5qFkf7<faticxEO#CH!LK0FLMd1&xCGEQicJWs8iWH~n%ALByECPJU6wZIBt
zOiTy`^<bsZuawQkF4tO1v$1UUE0iy7&@I-<!FD%SGPP9}*=7<)cKMSf0&NBF3AsTi
zS8{H5sf=49X`{Wu>3jp`tp_@5tsyU>X#BD_goHrFhc~YuK74W*^gx?4!^WY<6P#md
z)~rIeUg1LgrOgR_@i~`^RVkKZT!S?^oO5l0C18;A^w+Niy2_fR_BQrrXFuihZ9~Ok
ze&Q6n7(mF!<WD8CUu)2_<!zFifJlyxvhuhcQu)(=KAK=DldMkl4CdvRt7V-xgbSzV
zu)^T^pX59~d`D~b?%2aa2gx`@9{Qpg_NhoL50=jslwd$eeTn7pU~Eims03>%qEotT
zc5C)hVSj&r7upJ!z3MGi5&hEp2}Tx!5jF1#834d)!0o-|Ezhfe`qKu7UxE1uhH^gS
zBx^xuCsuP|;VniMEYI<)ht#W}$KdxP6Bt26mi5J93FqR|?l-$fVT4EhkuW4-Y)t%^
z9UQD(=pyN2`jfoQx~NtnaZ;<*FxWbCfx9M+UbWgbCx2r1$ly0O)a)rirC9BT+wBgN
zZ*$`L&jz7jKx953K{4`4mQ>f?>)zg32w*h9lG<;6){3sJ2n--mhvS&Q5XrMS$NtO1
z0^(w*J92lz2wqfOV8t;;CenKYg0=Js2E}F*wJbGzfr))NI4GlEa+|rr^@tI49qh|b
zjh|yl07nc{G!!f^$Up$jTW)vm3_~hSO-0HEdxdgmO~R1Y1NFMu+)1tFb)7eaO<1M(
zm+;Tu?;bv&YpXX-7{ogqA`El-*f~okSx>JH<^*ja7!zb&iZR~PFp>UzGgt)}mEV{x
zf+`k^TO7y8&0-3P?d|W$q=2p>GcZ_84HuFh<)U$kVj7fOEN<6Gu<Rgefb+_GcVJz>
z5Qu-O3ZuP3bKWmuSW>HAKQ$TFAIqoOZwSv|Il8ub_JG#v^@o38nB;Sq+Y=DoWHU};
z+0kd-W{blRPe$dLFo-cTAsub>221{9FAt+)%3dr<zRYxct8kU3j~_o?W``S;D{325
zem5rn_w2ret`uXJ3<N7jKr~dUZg=$@rU`+mY959)=hq|*@4Q;?teQNW^9bthFFccA
zvA_O){ouia*RNjj5=@91@0BviniD0ff+gCXOE7?sZ@O6Dpk5tg{7eX+_GY@lDimhS
z6e~H~zZWa{@e>_GUE1E>-bxDU!IFd+M}6M^hF%edDH#hEK-4u#v{)?xCMhR!45_Ut
zSAY#W$qM{{am~|H2`b2oh2<KoBuV0{d$d+>KJYNddFTkjBofceJ&)p6;x8|PMSQk@
zVE`X;x!5@VW&4Ze3Sulx2*Ot3r;<Rhq--12N9YtQIp_xpSsJU$N-+wq7ZXd!+1fr4
z(5J}RW5$A|l`No5M_Jx8m{B&_E8uLtg<Dx)tNR-!qPMf~0xJGmxZfbK&W8_=9z3}B
z`qe)?OgnT8vsiM9bL?X$ZXviBB%nODmtkY$D>ldjAffBQIy}a2U?Mw1eS$&XHZ)EY
z7QcV|m|%Kw{Zb!^>NhuNYkG6IL<RySt^3{X);Wx8Oii7c?9F@tw-ag6MV4T}UUy>M
z8$wEYCa<mTz4@CAc}4wj-3hborsq~ipC5yg#Kq^(7j(HoQOLrZE*HyQ28+!^CHxL1
z@_X`&!n~O&mKGryQ_WQ(mTY6NkBt2Qnn=lh4z*+{d$il@bd(i{7~dQ<)e_7GtA*RD
zRO|i<3|dtU*0Y62d06A05BDD2yZ8EavyGuRl^qRc#pTn5{P4lLJeV`L7=#`VonDE2
z_iDlr&&NYD56|PbF<D|QEzNA1m}2RaMLk#_p{kZ*Qb}k!@NTID3)i*WZuhG3UcsbQ
z3xb7awO%*8*>&NxJUB9^%j>X0`^BpV^4jVRhURl*Ff@^!3q>&;XXqkSQJYPIHr}^6
z$A*=qmdk_R&qQ)>=JVdnRvU(pBRa*>36{ceupkudI>kD(XVIk<Eb{;M&h9C3Y<=4g
zc_oA|h1g)lOz|o5wM7&a6vh6jsMTt>cH5SE&{OS{HM>uy3J@T)kbnJMVZ;C=AtV8|
zm}~d0>2}winWL-j+-t4pY4{cvyfGREa;LyoQ1$w@Ks8&{a=Cm{2RT$+HL(-II;e&E
zexKm7)h1a0<*d%$Q=l9&WhN9hSrqo@2872R#|O3T1o67NCysm-WZ?~>^Dy%%Ju`Ex
zyv0(Vun=2o7HJbcTZ({?HU28fU44I+aX_f#ih?hqNv?@;cd}#&$0aPR8=H#;m3-M>
znnUo}N@>hdxp<I7UATfKi=QY%J`TEs72hKWf7el=2i_t&)tQ;}(agq^MlIHgXy-01
zI(p5NE`T@}mZHerYylb!YTvJFgBEdFqqqWL@nhXpH(8}33?}OG37-%~Syhtwe*YQC
zDsl3?04ljuzl}b5Y0fKYvdEUO@KyVsTiS>Ou}60L>Vw%0ZxNls#*Fh+evL&N2Q1KW
zhzRQdq}jDtiju<Gfgz|BBMTA9!7~AaAqp@-VL_o%E+58V5a+In;B5y6l*4}6pPNTt
zg8SE?o-lVps2Y!1$(<~J>*=$bum`384GD9HQ~liepda2QI?w3&^VQ6!pR!vl>FMrk
zA`xqlZ|D_M_83I@ii9;3)skVsCmOQYXRE?bJH}cCjVQ=!vSQ_m&<WxE9Vn!5{+Y{G
zpHI$7&;V+7*3W`^s6B#M9X9sl?BQ0<!YHZsDo+qeH?ObU2jYX7gtv>{VsVFsRhcc8
zLpow*UUk(atOptfv0^c0K#W-S0EQ$``Xj=`#BQt`7*Isr%CNwpS(8-&Np>s!D{*QS
z*9|BFjbNB>+3E*qgh#8XcWzG}8@9<xVPtD!Ls0T=JK>=^<JO1ZTMk${7c<VUV4OLU
z-C`ZFAkNl~;1}Tv4FkC{nPMPDIz6-}3ckpK*T?&y;cLMZ02qU}0g5O@A_dTnqIY1E
z6>t@M9X4+}EGV(nx5EVYC3t>Lf>!uv%@k-vI7bZGWIg6d0CvwF1~L38BJb}Wk(>*C
z$dT|?(b?KSo%`{pnH_mXpiMGcEJqh>f5Jf0maN48_ESlMG5k@A^1p9khy-|FO;A{T
zlf}fO@45$|8=uVuLsR><Igi-f$3a8fq1iZS2EK~Q@g&HGdc?@qzGq5Ifu0XUcOUQn
zkn?YU@W9(e=gc|t6FxefPap?;K*WORL!Yp+D-MV0;B=4?s}{?dxUhbK0;&~*!B=g)
z;rpYF!C>&#6br_xt+1dFEtexVEQnHc1-cxA-wZ!g#(lGyK(_k)?K@~oXf{NGhJ^Pp
zLVhLYv3uOenRYS%Bng7(KEb>;|37N=|2~lLcF|!sP>WUPa+cf{>taBE-s7ta8n#xr
zlywTyoIY5tM1^$<N}!pD!4Q3_8vb|%{Z_fK=!%sEZHf6%lU0-0q3`O7gHJBop@M8R
zxB115gT_$Y-c(ItgQ&?0gFO6L9Kek|vLFO`OAt8<?<urG=)ae5T39-Np%$z4Wk}0y
zv1pKF$I-bq=L|URvRuj<5R;CPu{0GHqFFQ;N|A118A^(cRka2{YXW7dCaYUmI65KB
zfNa?Pf4>C3)j)fw?ODI}63h{V$1U?EVZ42{p&v3u5UW&g0l!UB|7X62w~P+GF>~|;
zU!BfVxh>WyNQ35zuC;`9aImx0{@EG#qd%o%+=azb)l67?`_4Iv7nTA2dIp6=trgIm
z0=Lq>DZ1;cQ#Q{oR}<t>Xr6PnN*sQxgU0YDgxcd?C9n`BYdX8#4<KB*<DMKw#QUBt
zn*D&J#ll-hk61qecAUmzwb$Kwp3eTfa5%QQOox78T3Z1LcGH$L4Fas84ofi&&Q^vl
zVR@Ac%Lm$14|vOwDhN_@9d`U7VPgs)hgcxd%2qc87!j+pvtbwo$vqUZU?5@Qkpk+G
zpoCmXV8LYnxCRg0n$2-|^XL(41EBHA`4Qx>>oENVa#(Yu;T1k*o$X4USqdAgXo-Ph
zqJMN^;PBQ|2}^sLm2z45L-pKN={zB<uyQVko^ZBGB)%13WVr7oP6*XES*fI)mxQe6
zAAx7gw<#<iWcz&;YJC;D;q9YGtP6l+r*jA7z>gl4=C1!m4t~Zh_*%gwX3bdE1dK&n
zR9x8f_6y6vD4xsC>qGk{>q>AD#XPk6W|Og)zPg|Iw`H%x2yutjM_67{+Zf>|2Mdct
zDNEq#AeJJbmrKH&gz$$CZ$Dt^;Gbr=P4qvVPFdZ~6W?M<k`a1B_;j)6FgebiL^D>}
zk``DWX0g!fgk{i1SinT8Fd7;RYO?xOP9NF|ueNk;f+V#Xm#u6G-#H1R<@@?b9}tsq
zGnSHGiJ1H+1!4Ombc0hV4C}va!LAayBtYszYH9+O9<d4=&W$Y%S}a~zYaj%-_1SSH
zCZLSPa;3Sj5LyY#8h{bOa@~6rdI`K*YSUK9fCM-Dwt1wh%>WCdhPt2iz(|P)G0X$v
z;5mC7LVcq~gIIstjv&qEAVAVQEdfiv?*71X^ZcAg8n#%+4v|mCr$0?5)7q7A%A$8H
z*-XE%vJ)2;Kd)g_u+5UI9PQ1Qo9(;q0h`1LVWGB}upwXh&KocWg6l!x8CjDhF^m*{
z{149V{fF$?(26Wa3H`l@6v;JMW)`LZov%(VVnGp|6l&LE?XEelK$u@2k+QNGv3Jnf
zJ1rAdvHz1Waxp1kNz*8nUA+qyt2SRt?S+KRM~h~wd1R~2%^Hk{)%9^Kb|-Tfwn~b>
zBxG0Z-5-B(0!#S?Z$J=xWGi5W+%OI3eERp^=#JBQEGuHkYO&57XCOu<jjF7JCt<@_
z92w1oRk-pQ`h^8b$wW$9FhT+)m+KIRPAax@K=^F)br7IlJ8WgEn{yZ!_%`y@7$7+V
zi7beAKVnqM9tR#WgbB6n2+B-c1K{xw<}geJI;e1u0%F7Ypk0f#f`lc`DYwjUMKEP$
zd*4A9lnN^vjUYdDeG+ocVn8uvYi+bLV9GA03LPX`cio#d+m&!{g*e=-<1jYZ;5vUf
zVDwE^5C;K*_C2a=yBC?lFb^qm>)itYEDBgK9q7cIGg<myaec+*92A=VQkt-MPS;Gr
zDXVI+JVPgJ(Nch+VXMA~Arh%Fh8|%>8lV)`J7Qr0TSXyjp9T)R$s`gsSLN_9R<Ugg
zXDi$M%{Le;!S(Sy$HP&R)jN#T&Ec`fJ@yU(c^<L+EeJtw6Tz2RqZCXBI&6Bz`3n$N
z=%Y|xi&c=3uy(dU3jA0kW&P?sD*R>nIJASSCBq*P-xCeMaGv5Z6md`r8$rSvF%8D`
zZ<AH`xnAi#A!OUxie_QFkh8NSj1Mx^-DHusxjX{16BzdT<1lxo$bulN1QBj|Yl;Gv
zPSg4C*80YV^N7``#mYELcQ62MU$o`mNx)cNyI&a|4Cj>^6EQ3-6q~?-`?`+_i!kwo
zB~8@Z8p^=9Iyi(^*m|**trFwRR(xPt54vHDka3J3MvD9QFngQ!`x`ut<P`*A;vb0Q
z%XY6YObt3|=cipjJRxH}Y1Cq^IsQA?09?v?*va%7D{Hx8I|Y^o`P8CbZrN9i4}pxq
z@aijHM9s3Us?`Uhr*Mc2b?EBk^^$w+ri5hWN^I8aFacKA?_ta&_u6l5Zu9moh}+hy
z8@_E9D%@8A;m%FfGD4k<b7rUAzsu;SwoIlAb;9EL6DiA5-0dCEV4;->E6R8c2JdsV
z=k%?mEJMUsg{ajKRUxbjjDu*x#lst`P&{-YTUGXBFd5>r>$fm=JQ%ij4Ui=4y?976
zZ^z;!h|s!$h47nm(-g3D*!I*>ddK-Gqizi}FRWde|Lm;A;^=OccDZ-Z!wZX!mC)|z
zN}$kZ*jmGvW@<H@lfl3NGm{q<#Cm;YtDILWHUtwW)L}xfp>;p-jJ3&%Co#Jnvv-5#
z@^&IAK7)oJ$d~5b4AX?pv9bO5+37q|vp|Q(;V6PU?yfAT%KEd*SXs*fJ7kB|EczBu
zbJYN8IAcZs*M-Hn`i#Z>V)mObL4xb|BuoNw6~iz)FDxF+BOaZS1QBFkns*Nl(}d2E
z^V1U`@C&2yD-2}Cv@!T`jsxVfd*HB`(is+BdCKzdpigBatlFIqRaaT20fPxBHdfPH
zD!>@n^7RSJWvc{gG)xk5eVv2}5hv_|5R^nNd(jl@Cvp@_6*_nA`7-k6Hqe7xtp7UJ
zKt6x3SS*%<3wR~gaUCl?NLckESG4n2E=QKJn8+23f#-66!m_DXrTP;>93}*X5|$vM
z(TPeCW*j(3GvR^hLWlmy9Tc`ea~s&fEtYAG)=*f8JFd$*dQDmN9ZR+$Ye;f^x0qd6
zC`B{CqkYEW=QWIheV0JOs=;LOFJI!5YtKYJ3GI0h!A}rz{H1!IzHQGsr=OfF?Z(@A
zL=Q|v4%1Ifg@xGVQdaskW$nDagFdiG#JOj#xhnA<QJ=9UFRbYQps?cW>v5PEc_b`h
zl49SG#4WU-^3xHpblA+%#?k2$w1btA29SN>eZ}O!2Pn<)3`3IHK`E=<W#K!Phr0m@
ztC2>!@)nx~;2CAcDo#vTwn+=?a`_8P3_m6+tRM)IBDUK*DTt}q_N?>sXa>=~fdv_U
zN;3L9{98tg^>ff`!W9^rr}S&e;@?3tmK7m`?naq~#RaCgrN{{eMYCcezWQWN30;Xg
zOc0hoA)Ew3kyAp1V0uE9N>R{mu>A1m(P5uw+U&Gjtc_i0!5%puo(8vAN35df&(b_y
zWRbG2>VSw^EEiB;Npn9*r!Q#eWQ#$~)uJy3JY&dMUTXu!fUiGc?ZYG?mzPPH9G)SC
z<stH9=jG8ikIvl;&khZUQ={`MKXB&j;Ja9+pV}uZ1bc;2R`#Os@2<it3u3WFmUjjF
z>v<8qzj@}Bsb$8Rys)18FOJ40>Z|+pAWU9ZcA3H=ABiCUZJ2_$kIu&#9w+^B7t6@<
zQ%HXfZn31h`L7Cv#igtV6sfLQE@QP=>^2troaX)%WkD4I1;&buMOd-J|1n{GS-xc7
zj<CoSKfU2LN5tXnqvM?6dFj~yb~=mjFNFu^5v#Jrx^S2>pb+{cWu<vxab$P7B<Rbc
z-!XL>R8lAnZ!Dj+0HdZ*b-7A?hlH+gFfo$L{0ZS3=&&yNQ03kurfeCZE-b{xYm3#+
z4~-4yM;Q@oz-z)gP|Q{<Wo3C`wa8|Q4EhTb-31M3cnu3f8mnn7j@(xjSNSm0EW0{L
zL`ybX@d+lx{qibIlyH8CQ^Ihb4^<RFtirUR3+w3hL+}cRf5{k)#lbDsUz!Vxr*M|G
zys-ER`fb|B+e*E$hMYDNvzB1Aps&G75ddO7K419?P}q0bDg~GX?k~&tBuo}jVPXFM
zCxrPpbTn8~8?ba?Wghqzi$64!idd3E8xD}LRI%GDEJT_YjP}Nwys&N<m#ckqBD(Kt
zvDtjtQD{p9U;<F<pDCCqq=yg_RvvoEVIf{#)6!t+Y|M1f7E6(Dv4GteIHqsQVLFwZ
z*YFEeA(XK005mpMg;gOe?b|DFjD|Kf#JMZc{!_wc+nmG+;c{@IwxT>JUp)#73yb&n
z^C^nosXr|NOXqlo=e1w2cMg|%HX8p@HMHTYBMYj?3M8zLpt-SpAfH-kgu<$!_Nv(I
zm6**1FVuZD+hGjGOmO*xg^3YgMYc+<hCPD9`e%>q^Hqn#!o;)$EFF5M_mB|5UO7J<
z^TIJYFK`uWptl@r+6!w3v^N%mgKUbC0E`I6=Bfk)&N5xEsh4irY_=O1E6MfsBuoa9
z+}p#jeCpN>;7-YEu-pX351nU2L~d$?rPDT6=TPLk2j@o?+8h~;tcn(E*ReL~gr$AP
zDvs)yu*$f~K3ec$Ap@_Rmu$8`4aUgqq)rIq+;$1V<0pZG$_ZR+z&yQ*3t@XKypktE
zFg55LZ+t?0%m4@9V)4%iGoOqfX^`RxwOHd7))kDxSj?n_Rfv|$<robDe6ukfKX2^Y
zZ1V*e7p#AI-93qH6++qSF%@ptQQ@3D|JXln6o+n77?JGU@ipzs2zBVL5y=+=YpfNM
zLtI!UM^jw}6e!)J1sF-jn(Tm?TB*#nSHdJ*Rp8-H3+JOSCc^9Y)cAE3H)9y)@whw6
zD0_}_?{z1vJwNmi#)#F<xJ86mm}+$J73U{DGZoUtjVHxxplP&B71Z!wURXTY;ubx@
zjMea#YM?btsq7W^pwITL=i$!SP7B?aV?QBu-v%EEEENs|PdJAWR8NnU50TIVMPUB!
zkyv4va&-RQaCUqK;z!1f#-J9fApSUK1=O&+(I+g1dqr5fm|*i>vNknuugYZ~3!(&E
zhb(k4uG2#Da`|$+dsD+f0wYqMI1U|z39PlIi+sdFo;-%gdxBwH;KgC*>~=gy?BOu&
z=<KvxtoDWXt3lV@Pc@#`z;o3rtTfbr6}i8rcj*abtdhphpIOvixvDgX!@68`=z_kP
zAIoXs_3{``2yr&<$rH#$NfLPYd<D4QjtoR45ft=;`>{OLzonjKr`lRNw9$FgwSv(2
zQ(=pxURbcvEv$toAhwwF!s4R$c~@&=u@ewhqlDsB1EeUpT+qw+ip>_Sjl95G_Tw-f
zsBkF9Wve8g=sNnVFd)c$UP_-y3`=$|%?Sa7liNA2x}RQjcDTD(JP*bVrE8$i9BX%=
zhF=fe!V16()r;1|hUf$`R>_(H?Kmuz2VU%A4+W<8H3I0gaKy&CAKO%9w<kvsgy)tN
zux8Hw@}cLkr$8K3$%n|^2J6=Rf#C3vFs<nP{i(CXg61dV&Y%T4TObI%<~RlwR4tZl
zI{WG?rqJohXCIn4noS>%J7dMHKG2G$uUuvdFo<uq1oXq*Z)mckz0p9y7@%%*NLPDd
zHy}jw6_9z10v_obSm4ePIr5f3eBl1GO~JIH^U-PCg{~T_sIbL4a2%`jRR(s?KK>iB
z`fSp8PNT7-#Uee{jMdQYHDRD!mbLDu>N*ts@geHoM>-Yx`#9b;2h9Xwj>kceaPGB8
z_t^K`Aj)d1=i+e_L@>$4s~2YlVOr67GCJ3wgEix)f`S%HwXo8bhYWD+BCZy*1p#}s
zVpcY`1zONF$jDetYe~EIs!{_P(2VUH2*7S4V>MtjxKEZYVYIMRJjG?JAW4F_ufhO>
z8?5jn=4YXUAVIi2ZC{~Z<}kby^cHJt4c*34um)PCu!@|oc#0yI+yhx|FJUnT>Y;te
zSYr|vTlAL8QIN->tqOt!Mt53xy?pP6Q9}8-Y?WKRmCz8@?ymqm|AYV`Dz;VVgvt|s
zGDWnFg-F7*qO;rGVnGz06e?N+ec(v5ppcbrU%_s6@fn2JY7|Q?XEoGYgh9r_2i_bl
zfNC0Cd({A$)NEq^%-Z~j_UTZcNBV}4B!k;#BIO}T={cijir-8~NzHuk-aUx>i5wXw
z+I%3UU0C{EtVWkSjK*Un3v{*|4pwo#%4T{DwwM+*MT}WMTm@7cD{Y7{V|Yy%h;Z$d
zY*?4AF6J^6vi2Kq?1V7Bnlqct!2u2lV_5F{Yo~4xi3h&!8(0XEAUu%dbv4}yO9ySM
zPj?&4_|TA^?v8^1Pl|=L(%w_g^ORjY1yP#Sk{87+-yN><tI!%@=n)I6>EqigS<oe0
zL*fk4Hm`L%&Y~-$B#Z<%84Q`tx$Pu1aE`m({QXsNm_&nhjbWkQ#6^&h%<&!8bPG%8
z!TG5P9UPmCD+(6qAYm!<#}1#bI$NylfDbzF0=KMCUEV;(ijGuR_2+WAT!o>yarr<L
zbXqvS&w`ea>&wXz&5SW4JbpKb!@tMjJ)E<Lq;6pKq%SJh8axy1h*&8KrWc(HXKOAN
z&#}??b@&zw32RHCukN6aCp27!1t}UaA99wLDb!VEEa~UX0d>MERLbSUCJZaA1W2%H
zn?KajSnkc`OVA!NgtFE4;B3Xe$7$owV_^`%9l}y>=xMN8|6i&jVfkT-(J5>=om~-!
z&Ki%lBwMTt=x1xq@ln}WnP0*evlcUhpXT`%kh7vyP>jz|k_u^f$yWfy6eH!z@WN|W
zDh)}ACTxe_Kr=?MCWlOVxNPNd<A9KpuPA_y28)$gvf5)K%8aE*=!#fD9HtqaXQ%VD
zTVY2=sTDaZ!V&9F$BL4^-I9I+A<~O!7)<p!!hIUXXyqBpTa$d869a|B`1WczHeCUb
zqL4tRg&Lj^UW2Bv@!&RBvxh+*;oQIHgKk8t!NQUt0+s6Z6;K%A2M%}JSV0!15*_iK
zIa@~KN9h(zBVj#dEn=4;{$5;c%2H0vw_x}qQmht~W-M<_+W|BDSkW666mU4`x>bRh
zpWpwk*$E-8X|@XH(5GPV+6@T#`6?Oq<PfW2H*yjVJi=SOctTi;ZM!ST;eqK#Z?SrY
zjp8dtscWF9#lkfaRv~R!tBZ+<S!6&Sv1lpsN2F9_757-03#(B2{rga%>oT@P9i;g-
zKR<u2(NGyTXa#=lF(ZOW5?}~lty1wl0()W4o&z!B{}8?5E1AdQ@XpYoH~LDeHKUQ1
zTA*_wG_T>HFl4?$zGB5Sw78f7nb3t|$zX_-VhS9=N_`bF$_C67z2#C7lwz|LU;sCV
z^Yh>88thG7`hkNcP*i9eWvftfC;?JPIAjXzBp-GQ>(GxqhM^mGkSpQe8#-sko)!zL
zM&sF#3v~WoGyNLYS7{o=sd8_iWm5<g4aiwcLy56OoA;WPQ8HHacUjG<`F-0J3}kbD
z{xb{eU{97#w3-=XHqV+paS~u?U*)kLgiCifW)BJsN?wKch#s-B(9P*5;}t8l23qxN
z!onKYUrE507KckIHHM2>-awPpEMqmSUZqQMlyh#Yz+g@i^PkT_6(>udNl*`!+}<|N
zhC(C^NjQ(Kk~ypop}&)R@1IoPk3;V>VCnqTzcOdXXnc|y+MrfgPsmp^ND^Jh{td$s
z4R}$`@<o+qEcL>w@$HpTVy=WNGbT{?4l1a9Uj6}UA^kx!Vl@shyswB=<QxIw&<h)~
zw>LlQ4VDi5U_7FGg<?F|l3D|;PFPzT1APT`AAfsPHnryxa#qRLP?xcIVU4T3;-L>+
zvW#25N5-mwQt-smiMo8klGm5pv*ybnNrFOO#q$K#hy9U)9w-d+3th{4w*gC!SU;hg
z47%_>REw2%?66w&S3J?h1saB@QS_mh#RTfZWvrUuU3KrUOK~bRNTU8G7Ee>nY2o$U
zG7c)BR)eUw+V<aqBB(sJ3T}eH1n7I5Lp}cE5t=+2dY{75DfHdN0(!^j$PBXvI^!_W
z^6y_+<TUhw#bO<l(Bxv4w^XgGHCDhH7_z;pgK7e<O_}Qd@!2;2qYg?4FE3r=s%FN_
z&Te}s5)exB6$CLsVf79ib?59J=;Id4CE<OdBeXGR#rTjJqQ#;e4!Oc&ES4*fK_j~u
z1%(tD6thZ!m|SB;1dSE2GQ+f2OcS)AVyl5n_UGplN{of8IU$V4&9k$!K^6NRsFtrF
zB$%-5c5Joh1{RhSzDN3A(dlooVAm+Vlj5nr#oCfBtmCX@1!S?aSfW8G%_7&pSBeE$
z!g}V6r9xOmex>s`g$04ie4+qD6I{9{mClU0oaNs&tI1cu?qP!1?Q!72<Cy(caI||E
z-YYs6&i;t?r^)nHG?F>i3Vp)D<@w5F`3mx27Z)!;Ie4sf(;*-$raeat*<Gc=it#I*
zHGmoBv0xpY7H-0j6h1G7m1Qdwt<1roTV4HywR{DBLc~{gkGpe3pFQOkY_M2(ujo8&
z^hYd68;w!XgF?q?kFXvbS0IB^ljREJ^1PU3K@Ih)H-ci8oKr)gjI~=TWndt5G*b3f
zY0!#>Z64%P|BOxx>o5#tVkzi`VIhMdq^s>DuR7)Vs=cvUL|C1Baf1Cfu=rQf?*UB+
zviBIh#j5s?BQ>tkAk2!x0p0v^9Kc{=7RwpPhgp0Eb+9z!MKQ})Z45M)wf{a=#abQg
z7t~%MBWg!2QMm*8;OFSH@COXR<<h!>cg<#GtDu_&m4pf8s~2Gj*s5hLg5;my*o8*C
z<2h^(hj)yQ(RhRlT)0Y$UUzp~Ko@_?5!NZ+x62~4=z9XSG@?Efv%JhR3z7t^)?%Nq
zVlvvRasV`C-xh#jIA0pdSjpwNYZwMR9^B??cD}e$ov)-n3C&c;xObs2=zr%8mJTcU
z{kLN@?TU>absTIBEv!>MU&+L`m<A0fL@Ng5tZHn4v3^J8CM>?a`ppzTTMma57P!%A
z;pc+vy{Sw4ARjW^y25Z7cjKTMcZkbZ{8e?4Z^G9ZGw%F99uOdi5iGoCbYe!Mz-7(@
zqvKBI8fYXe&H5{z#^T})XhJlAVwRO*3ep*?+gQE<2`d`;U5c`xF-_ahv;X$zWS<sp
z&fSA-u06AeApfpewXgi}%AQ!nYC8@0|A%l3&+_xUZ(-@sC}PEgG?tawV#OSeUxPN%
zo3gtw9PHHsLxVQd8m&*mVzVG_te(Xbch(Xs*<O_^4bYy7>l}uJOw7-nfDHUg2@2#v
zg;2J-5AhSOw9Hosk4WpDkGHG!M=XvD&YH<n@b1wg)&}%(A-e3DHubbv2aZ2Mir9lG
z+k~OXE^4TRSfDjID<GAzs=)JPjj&QHo%v75Nec_=pXcT`Wt|Xyk^8QhyTh>R2GGt|
zW`FnAE<&($54C;uANwr`;3lvjymxfcf_v)EOr{tJfuA|nwuTYbfys2N#4!uLC(w?1
zgPZo}Ej1f*z6xtrFDtsz8C`8}z(|PMDljzcIV!Tg!2s^(WW0IC$>jF^`s`(hBtbLW
zml)CMD{_?(PFU?@L441i!$le_65cyH8DncD;oa5MF7W*AFo|?ifA_3`UXd2oip6mZ
z3Mlv%i=ZiVk%^$3RcuHYix-xHmCmZE@xmJRv~Ym2zAw#@gR|Ai?E3obmpEt%dD+!p
zxmWWTv6>P}Sna2To_`)m5NWXB9izj)cmBDyv4K7fkJdiEN^93-`dF9KVjVcnaF80J
zbqtD#E_yW&GR;`YVD**)4OZG%1+Vu>cpKO6-<2ASirvzDU6B;fY2keV#G#g#zOaL4
z#;mWe-v=oYG{xQRD>8&(sW4Ci5i7;Mj*lS$#2PFeofTsTrmyYsd1<j4i*`6VBi6IS
zRM6g6i0ncUv?t1Vt=5PyDs8N&(BqtX!2A1m6-G$F#@A6=o)+%UeFh1r_z7pL-fX3P
z-|i={J?@We2<wHoh8E<bJqRKVmIrinjvtI&I9^slvj-+eL#)N3fyd$4lJHdqloGRe
zX&3>u7!$EtE52Gm;69ebYr>~W#Cq6-QL=ASy5RZy=6vEr{De?quClw1Y_+_8e@%ks
zxKkaza)<Y@e8~Os`$wz`4+SmA)ITCO7lIh3Z+F&t`pekM>&jG<$c6X+u64Fpw79T#
zRQL*U#rN(S(_nm7tJV8l=+9W9!YZP>S49{x30Dl1!HS<2x<4;ng9z8x>&wgQCqWWM
zfIDP1uXcv5j%Ckbtb@F#-719ac@Sm~%fY)x=cmyqYOFJp<3gmxTBD^WVyVwph~4Z$
z6-Gt1gko07SFH=)$Erq{-j&XLdo@BTwsXaH_%Szk|4rnCkQA92bAqzf?2j;v1b52(
zdY{4VPZ7CQs&kb@(38ufob{N`t&;FU@)3)R?yiV~j($Wa$W=Qb3D0eK?rgDWlcOq<
zuS^%9isC{RMh43k85FZ3OiUnSMN6e<G}`2!_(XpHzF}eH6m0=e%=fuDq0_?ixg|IB
zlYGfm0`Ho&zkij?5k$xh&>67Yz_M&I$g(W7i4%5@*h(=hMZ!Br=kCEMh+`KxG7lyP
z2$6O0YoOUH#~KK5Wih3nKo#`DLI6fdvlv0nVv1~6#$u~JtMxbf_1jl`S?L_%mg0<o
zg3YDEAJmt*xszJk$0sKzo0}|4Ezk8YrYBEMmY0`5|472faHn2<MS2J<*R^aF-@`mO
z^pUdXDCmae0HE{+O9$AZQG~M>p*c)Db?E0;=g@{@!PkUaYo;R_R8sY3pJ1faW4;oK
zS%K<{Cw9H4+xl%q{6@n1-Kw&RUaq|w3pJMw)PRhYAY0#uiKRJ?rO*9Sk;xyNt=3Pj
zI}|d?^TF^QVUD|@lQ5Q|pcmX@@A;`ayqe><4X3a?3-25q+G!NQghPw3CR0Xm{|#!f
zB!z{1wYCMS@hx1ysG*}sQdZx~_4SO`%JHhK!x)3ws{)LNI%E3+YWT4^m-qts<{Zz`
zcj)B$WEpYtg8~?-uiE`pGDu*-o+QVjfCYVcdQw!_v&Rjc;nx=G=na-ICSws=&<Ccq
zC*c<BR9INNuV_$DZNZy?kyEHK74C9YjB{40Z7WV#i1Kf5jD~S>V><*@aIV@snd@Nb
zgoPK#@0&}A&)-NK#^Wn8P7tXe-ajo_VEl33-Z=xyoy6>jS7Yr_IJ|Fkj>Lu4cF^vF
zX`?3GV)4^s9L-)|rTKiN3YJ;)!C0trm$SUZ=uPBBSid=8ad?|BKBBHoPzQdUnCoE^
z2afA6%S%hkCtpZFjK^1g?jjZmJy1D;fQ4>g?Xg{V;(1@SAcCNy3rmEZ*Ge6o^$E9F
ze?dEiInFfBS3J!{?+uIvyb&#VxmeYvEvyoZk-BgG98_{L*TYf`pmzTm>FVSM2{1Na
yQ9(0tDX@XwBlO7T)=nflD|>qztWA&QbpAgzdZdAMlhF780000<MNUMnLSTY}rA8V6

diff --git a/Resources/Icons/icon.ico b/Resources/Icons/icon.ico
deleted file mode 100644
index 41230db92cb8101b8f24cf6f861082c6dfb827e1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2462
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

diff --git a/Resources/Icons/icon.png b/Resources/Icons/icon.png
deleted file mode 100644
index 52525ef9e99b9d42242dcddc0f5f5a25eaeee901..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 2671
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

diff --git a/libKelvinDashboardCommon/DapSettings.cpp b/libKelvinDashboardCommon/DapSettings.cpp
index a117ff2..9cbf5b9 100644
--- a/libKelvinDashboardCommon/DapSettings.cpp
+++ b/libKelvinDashboardCommon/DapSettings.cpp
@@ -30,11 +30,12 @@ void DapSettings::init()
 }
 
 /// Read settings file.
+/// @return Virtual json file.
 QJsonDocument DapSettings::readFile()
 {
     qDebug() << "File name " << m_file.fileName();
     m_file.open(QIODevice::ReadOnly | QIODevice::Text);
-    QString textFile = m_file.readAll();
+    QString textFile = decrypt(m_file.readAll());
     m_file.close();
     return QJsonDocument::fromJson(textFile.toUtf8());
 }
@@ -52,12 +53,22 @@ bool DapSettings::writeFile(const QJsonDocument &json)
     else
     {
         m_file.open(QIODevice::WriteOnly);
-        m_file.write(json.toJson());
+        m_file.write(encrypt(json.toJson()));
         m_file.close();
         return true;
     }
 }
 
+QByteArray DapSettings::encrypt(const QByteArray &byteArray) const
+{
+    return byteArray;
+}
+
+QByteArray DapSettings::decrypt(const QByteArray &byteArray) const
+{
+    return byteArray;
+}
+
 /// Get an instance of a class.
 /// @return Instance of a class.
 DapSettings &DapSettings::getInstance()
diff --git a/libKelvinDashboardCommon/DapSettings.h b/libKelvinDashboardCommon/DapSettings.h
index 26a4cc7..d4c2343 100644
--- a/libKelvinDashboardCommon/DapSettings.h
+++ b/libKelvinDashboardCommon/DapSettings.h
@@ -26,6 +26,7 @@ class DapSettings : public QObject
 {
     Q_OBJECT
     
+protected:
     /// Standart constructor.
     explicit DapSettings(QObject *parent = nullptr);
     /// Overloaded constructor.
@@ -33,7 +34,6 @@ class DapSettings : public QObject
     /// @param parent Parent.
     explicit DapSettings(const QString &fileName, QObject *parent = nullptr);
     
-protected:
     /// Settings file.
     QFile       m_file;
     /// Settings file name.
@@ -42,13 +42,20 @@ protected:
     /// Initialize the components.
     virtual void init();
     /// Read settings file.
+    /// @return Virtual json file.
     virtual QJsonDocument readFile();
     /// Write settings to file.
     /// @param json Virtual json file.
     /// @return Returns true if the recording was successful, false if the recording failed.
     virtual bool writeFile(const QJsonDocument& json);
     
+    
+    
 public:
+    virtual QByteArray encrypt(const QByteArray &byteArray) const;
+    
+    virtual QByteArray decrypt(const QByteArray &byteArray) const;
+    
     /// Removed as part of the implementation of the pattern sington.
     DapSettings(const DapSettings&) = delete;
     DapSettings& operator= (const DapSettings &) = delete;
diff --git a/libKelvinDashboardCommon/DapSettingsCipher.cpp b/libKelvinDashboardCommon/DapSettingsCipher.cpp
index e0e84c4..c0129be 100644
--- a/libKelvinDashboardCommon/DapSettingsCipher.cpp
+++ b/libKelvinDashboardCommon/DapSettingsCipher.cpp
@@ -1,6 +1,23 @@
 #include "DapSettingsCipher.h"
 
-DapSettingsCipher::DapSettingsCipher()
+DapSettingsCipher::DapSettingsCipher(const DapSettings& settings) 
+    : DapSettings(), m_settings(settings)
 {
-    
+    setFileName(settings.getFileName());
+}
+
+QByteArray DapSettingsCipher::encrypt(const QByteArray &byteArray) const
+{
+    return m_settings.encrypt(byteArray);
+}
+
+QByteArray DapSettingsCipher::decrypt(const QByteArray &byteArray) const
+{
+    return m_settings.decrypt(byteArray);
+}
+
+DapSettingsCipher &DapSettingsCipher::getInstance(const DapSettings& settings)
+{
+    static DapSettingsCipher instance(settings);
+    return instance;
 }
diff --git a/libKelvinDashboardCommon/DapSettingsCipher.h b/libKelvinDashboardCommon/DapSettingsCipher.h
index bb3faa9..b0d9beb 100644
--- a/libKelvinDashboardCommon/DapSettingsCipher.h
+++ b/libKelvinDashboardCommon/DapSettingsCipher.h
@@ -3,10 +3,30 @@
 
 #include <QObject>
 
+#include "DapSettings.h"
+
 class DapSettingsCipher : public DapSettings
 {
+    Q_OBJECT
+    
+protected:
+    
+    const DapSettings   &m_settings;
+    
+    DapSettingsCipher(const DapSettings& settings);
+     
 public:
-    DapSettingsCipher();
+    virtual QByteArray encrypt(const QByteArray &byteArray) const override;
+    
+    virtual QByteArray decrypt(const QByteArray &byteArray) const override;
+    
+    /// Removed as part of the implementation of the pattern sington.
+    DapSettingsCipher(const DapSettingsCipher&) = delete;
+    DapSettingsCipher& operator= (const DapSettingsCipher &) = delete;
+    
+    /// Get an instance of a class.
+    /// @return Instance of a class.
+    Q_INVOKABLE static DapSettingsCipher &getInstance(const DapSettings& settings);
 };
 
-#endif // DAPSETTINGSCIPHER_H
\ No newline at end of file
+#endif // DAPSETTINGSCIPHER_H
diff --git a/libKelvinDashboardCommon/libKelvinDashboardCommon.pri b/libKelvinDashboardCommon/libKelvinDashboardCommon.pri
index babffc9..7c81a62 100644
--- a/libKelvinDashboardCommon/libKelvinDashboardCommon.pri
+++ b/libKelvinDashboardCommon/libKelvinDashboardCommon.pri
@@ -9,14 +9,20 @@
 # You can also select to disable deprecated APIs only up to a certain version of Qt.
 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0
 
+QT += quick quickwidgets
+
 SOURCES +=\
     $$PWD/DapCommand.cpp \
     $$PWD/DapLocalServer.cpp \
     $$PWD/DapLocalClient.cpp \
-    $$PWD/DapHalper.cpp
+    $$PWD/DapHalper.cpp \
+    $$PWD/DapSettings.cpp \
+    $$PWD/DapSettingsCipher.cpp
 
 HEADERS +=\
     $$PWD/DapCommand.h \
     $$PWD/DapLocalServer.h \
     $$PWD/DapLocalClient.h \
-    $$PWD/DapHalper.h
+    $$PWD/DapHalper.h \
+    $$PWD/DapSettings.h \
+    $$PWD/DapSettingsCipher.h
-- 
GitLab