From 37de6cccbcf263fdac174b98071ccd5b38bef83a Mon Sep 17 00:00:00 2001
From: Fred Bonilla <46603342+TurtleSquad007@users.noreply.github.com>
Date: Tue, 19 Apr 2022 15:23:51 -0600
Subject: [PATCH 1/4] init
---
CMPUT-401-withouthistory/init.init | 1 +
1 file changed, 1 insertion(+)
create mode 100644 CMPUT-401-withouthistory/init.init
diff --git a/CMPUT-401-withouthistory/init.init b/CMPUT-401-withouthistory/init.init
new file mode 100644
index 000000000..0e1b500af
--- /dev/null
+++ b/CMPUT-401-withouthistory/init.init
@@ -0,0 +1 @@
+init setting data
\ No newline at end of file
From e38c7f370525b943fd87224f522fad81915208dc Mon Sep 17 00:00:00 2001
From: jamessch16 <66089010+jamessch16@users.noreply.github.com>
Date: Tue, 19 Apr 2022 15:36:56 -0600
Subject: [PATCH 2/4] Add files via upload
frontend
---
CMPUT-401-withouthistory/docs/README.md | 1 +
.../docs/deploymentManuel.md | 117 +
.../docs/docs/client-documentation.md | 160 +
CMPUT-401-withouthistory/docs/docs/design.md | 37 +
.../docs/docs/images/ArchitectureDiagram.png | Bin 0 -> 39262 bytes
.../docs/docs/images/DictionaryToolTip.png | Bin 0 -> 10973 bytes
.../docs/docs/images/HomeScreen.png | Bin 0 -> 105893 bytes
.../docs/docs/images/SearchScreen.png | Bin 0 -> 47190 bytes
.../docs/docs/images/SettingsFont.png | Bin 0 -> 20971 bytes
.../docs/docs/images/SettingsScreen.png | Bin 0 -> 95105 bytes
.../docs/docs/images/StoryMap.png | Bin 0 -> 39966 bytes
.../docs/docs/images/SyllabicsExample.png | Bin 0 -> 25651 bytes
.../docs/docs/images/UML.png | Bin 0 -> 152779 bytes
.../docs/docs/images/WordInfo.png | Bin 0 -> 8051 bytes
.../docs/docs/images/WordScreen.png | Bin 0 -> 52404 bytes
.../docs/docs/images/morphodict_UML.drawio | 1 +
.../docs/docs/images/sequence.png | Bin 0 -> 36979 bytes
.../docs/docs/images/storymap.drawio | 1 +
.../docs/docs/images/wireframe.png | Bin 0 -> 2128264 bytes
CMPUT-401-withouthistory/docs/docs/index.md | 421 +
.../docs/docs/project-management.md | 138 +
.../docs/docs/test-documentation.md | 3 +
CMPUT-401-withouthistory/docs/mkdocs.yml | 2 +
.../docs/user_manual_itwewina.pdf | Bin 0 -> 659740 bytes
.../frontend-react/README.md | 80 +
.../frontend-react/cypress.json | 1 +
.../cypress/fixtures/example.json | 5 +
.../selection_results_tests.js | 24 +
.../cypress/integration/crkeng/about.spec.js | 60 +
.../integration/crkeng/click-in-text.spec.js | 33 +
.../integration/crkeng/general.spec.js | 38 +
.../cypress/integration/crkeng/legend.spec.js | 27 +
.../integration/crkeng/orthography.spec.js | 87 +
.../cypress/integration/crkeng/search.spec.js | 277 +
.../integration/crkeng/settings.spec.js | 132 +
.../search_section_tests.js | 18 +
.../settings_section_test.js | 32 +
.../frontend-react/cypress/plugins/index.js | 22 +
.../cypress/support/commands.js | 25 +
.../frontend-react/cypress/support/index.js | 20 +
.../frontend-react/package-lock.json | 31911 ++++++++++++++++
.../frontend-react/package.json | 55 +
.../frontend-react/public/favicon.ico | Bin 0 -> 1429 bytes
.../frontend-react/public/index.html | 43 +
.../frontend-react/public/logo192.png | Bin 0 -> 8321 bytes
.../frontend-react/public/manifest.json | 20 +
.../frontend-react/public/robots.txt | 3 +
.../frontend-react/src/App.css | 38 +
.../frontend-react/src/App.js | 52 +
.../frontend-react/src/App.test.js | 12 +
.../src/HelperClasses/SettingClass.js | 52 +
.../src/components/AbbreviationsLegend.js | 67 +
.../frontend-react/src/components/About.js | 169 +
.../src/components/ContactUs.js | 27 +
.../src/components/CreeDictionarySettings.js | 313 +
.../frontend-react/src/components/Footer.js | 108 +
.../frontend-react/src/components/Header.js | 217 +
.../frontend-react/src/components/Layout.js | 17 +
.../frontend-react/src/components/LikeWord.js | 65 +
.../src/components/Paradigm/Pane.js | 47 +
.../src/components/Paradigm/Paradigm.js | 140 +
.../src/components/Paradigm/Row.js | 28 +
.../components/Paradigm/SingleColumnPane.js | 94 +
.../components/Paradigm/SingleColumnRow.js | 54 +
.../src/components/Paradigm/labels.json | 42 +
.../src/components/SearchResult.js | 134 +
.../src/components/SearchSection.js | 186 +
.../frontend-react/src/components/Welcome.js | 59 +
.../src/components/WordEntry.js | 165 +
.../components/componentsTests/about.test.js | 25 +
.../componentsTests/contactUs.test.js | 25 +
.../components/componentsTests/footer.test.js | 24 +
.../componentsTests/welcome.test.js | 25 +
.../frontend-react/src/components/style.css | 1485 +
.../src/components/variables.css | 109 +
.../frontend-react/src/index.css | 12 +
.../frontend-react/src/index.js | 22 +
.../frontend-react/src/layouts/NA.tsv | 27 +
.../frontend-react/src/layouts/VAI.tsv | 119 +
.../src/layouts/crk.altlabel.json | 4437 +++
.../src/layouts/crk.altlabel.tsv | 555 +
.../frontend-react/src/reportWebVitals.js | 13 +
.../frontend-react/src/setupTests.js | 5 +
.../src/static/chevron-circle-down.svg | 1 +
.../frontend-react/src/static/fnu-logo.png | Bin 0 -> 89300 bytes
.../src/static/footer-1366w.jpg | Bin 0 -> 86999 bytes
.../src/static/itwewina-social.png | Bin 0 -> 45678 bytes
.../frontend-react/src/static/mesc-logo.svg | 22 +
.../static/morphodict-default-logo-192.png | Bin 0 -> 8321 bytes
.../src/static/morphodict-default-logo-32.png | Bin 0 -> 1429 bytes
.../src/static/nrc-cnrc-logo.svg | 1 +
.../src/static/sshrc-crsh-logo.svg | 1 +
.../frontend-react/src/static/uofa-logo.svg | 23 +
93 files changed, 42811 insertions(+)
create mode 100644 CMPUT-401-withouthistory/docs/README.md
create mode 100644 CMPUT-401-withouthistory/docs/deploymentManuel.md
create mode 100644 CMPUT-401-withouthistory/docs/docs/client-documentation.md
create mode 100644 CMPUT-401-withouthistory/docs/docs/design.md
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/ArchitectureDiagram.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/DictionaryToolTip.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/HomeScreen.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/SearchScreen.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/SettingsFont.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/SettingsScreen.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/StoryMap.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/SyllabicsExample.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/UML.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/WordInfo.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/WordScreen.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/morphodict_UML.drawio
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/sequence.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/storymap.drawio
create mode 100644 CMPUT-401-withouthistory/docs/docs/images/wireframe.png
create mode 100644 CMPUT-401-withouthistory/docs/docs/index.md
create mode 100644 CMPUT-401-withouthistory/docs/docs/project-management.md
create mode 100644 CMPUT-401-withouthistory/docs/docs/test-documentation.md
create mode 100644 CMPUT-401-withouthistory/docs/mkdocs.yml
create mode 100644 CMPUT-401-withouthistory/docs/user_manual_itwewina.pdf
create mode 100644 CMPUT-401-withouthistory/frontend-react/README.md
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress.json
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/fixtures/example.json
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/integration/SelectionCompTests/selection_results_tests.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/integration/crkeng/about.spec.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/integration/crkeng/click-in-text.spec.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/integration/crkeng/general.spec.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/integration/crkeng/legend.spec.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/integration/crkeng/orthography.spec.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/integration/crkeng/search.spec.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/integration/crkeng/settings.spec.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/integration/search_section_tests/search_section_tests.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/integration/settings_section_tests/settings_section_test.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/plugins/index.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/support/commands.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/cypress/support/index.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/package-lock.json
create mode 100644 CMPUT-401-withouthistory/frontend-react/package.json
create mode 100644 CMPUT-401-withouthistory/frontend-react/public/favicon.ico
create mode 100644 CMPUT-401-withouthistory/frontend-react/public/index.html
create mode 100644 CMPUT-401-withouthistory/frontend-react/public/logo192.png
create mode 100644 CMPUT-401-withouthistory/frontend-react/public/manifest.json
create mode 100644 CMPUT-401-withouthistory/frontend-react/public/robots.txt
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/App.css
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/App.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/App.test.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/HelperClasses/SettingClass.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/AbbreviationsLegend.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/About.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/ContactUs.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/CreeDictionarySettings.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/Footer.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/Header.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/Layout.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/LikeWord.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/Paradigm/Pane.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/Paradigm/Paradigm.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/Paradigm/Row.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/Paradigm/SingleColumnPane.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/Paradigm/SingleColumnRow.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/Paradigm/labels.json
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/SearchResult.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/SearchSection.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/Welcome.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/WordEntry.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/componentsTests/about.test.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/componentsTests/contactUs.test.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/componentsTests/footer.test.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/componentsTests/welcome.test.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/style.css
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/components/variables.css
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/index.css
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/index.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/layouts/NA.tsv
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/layouts/VAI.tsv
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/layouts/crk.altlabel.json
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/layouts/crk.altlabel.tsv
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/reportWebVitals.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/setupTests.js
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/static/chevron-circle-down.svg
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/static/fnu-logo.png
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/static/footer-1366w.jpg
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/static/itwewina-social.png
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/static/mesc-logo.svg
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/static/morphodict-default-logo-192.png
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/static/morphodict-default-logo-32.png
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/static/nrc-cnrc-logo.svg
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/static/sshrc-crsh-logo.svg
create mode 100644 CMPUT-401-withouthistory/frontend-react/src/static/uofa-logo.svg
diff --git a/CMPUT-401-withouthistory/docs/README.md b/CMPUT-401-withouthistory/docs/README.md
new file mode 100644
index 000000000..d3f5a12fa
--- /dev/null
+++ b/CMPUT-401-withouthistory/docs/README.md
@@ -0,0 +1 @@
+
diff --git a/CMPUT-401-withouthistory/docs/deploymentManuel.md b/CMPUT-401-withouthistory/docs/deploymentManuel.md
new file mode 100644
index 000000000..7afb84e1b
--- /dev/null
+++ b/CMPUT-401-withouthistory/docs/deploymentManuel.md
@@ -0,0 +1,117 @@
+# Deployment Manuel (Paradigm Layout)
+
+## Prerequisites
+
+1. Install python3 (for your us) (make sure version > 3.8.2)
+2. ```pip install pip install "fastapi[all]" ```
+3. Install ```nvm``` use [this tutorial](https://github.com/nvm-sh/nvm)
+4. Install node using nvm. Same Tutorial as 3
+5. `git clone {our repo}`
+
+### Note:
+All version for ```npm``` should be the latest.
+
+
+## Test Webserver Security Curtin
+
+First we need to set `screen` so cybera doesn't kill the process when we exit the server.
+
+`screen -S internet_facing`
+
+Second things second we use fast api to run the test development server. This means that we need to install it:
+
+`pip install "uvicorn[standard]"`
+
+Next things next we need to make a run file that will talk to the `localhost` i.e the backend that should **never** be exposed to the internet without filtering. This means to do the following:
+
+`mkdir internet_facing`
+
+`cp -r main.py .../internet_facing`
+
+Assuming fast api and uvicorn are installed together run the following command.
+
+`uvicorn main:app --port 8081`
+
+Assuming everything ran without issues do the following:
+
+`ctrl-a d`
+
+## Frontend Deployment
+
+Follow these steps exactly as failure to this will cause the system to not render properly.
+
+### Website
+1. `cd morphodict` From the current repo page.
+2. `rm package-lock.json`
+3. `npm i`
+4. `npm run build`
+5. `cd build`
+6. `pwd`
+7. Copy the results from 7
+
+After runnin this the website should build correctly.
+### Server
+1. `sudo apt-get install nginx`
+2. `cd /etc/nginx/sites-available/`
+3. `sudo nano morph_deploy.nginx`
+4. Paste the following:
+
+{
+
+ server
+ {
+
+ listen 80;
+
+ root {#8 pasted from above};
+ index index.html;
+
+ location / {
+ try_files $uri /index.html;
+ }
+
+ location /local/ {
+ proxy_set_header Host $http_host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_redirect off;
+ proxy_buffering off;
+ proxy_pass http://127.0.0.1:8081;
+ }
+ }
+
+ server {
+
+ listen [::]:80;
+
+ root {#8 pasted from above};;
+ index index.html;
+
+ location / {
+ try_files $uri /index.html;
+ }
+
+ location /local/ {
+ proxy_set_header Host $http_host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_redirect off;
+ proxy_buffering off;
+ proxy_pass http://[::1]:8081;
+ }
+
+ }
+}
+
+5. `sudo ln -s /etc/nginx/sites-available/morph_deploy.nginx /etc/nginx/sites-enabled/morph_deploy.nginx`
+
+6. `sudo nginx -T` Confirm no erros are encountered
+7. `sudo systemctl reload nginx`
+
+From here you should be done, now time to launch the database!
+
+## Backend REST API
+
+Please follow along from here: https://morphodict.readthedocs.io/en/latest/developers-guide.html#installing-for-the-first-time
diff --git a/CMPUT-401-withouthistory/docs/docs/client-documentation.md b/CMPUT-401-withouthistory/docs/docs/client-documentation.md
new file mode 100644
index 000000000..636ab1684
--- /dev/null
+++ b/CMPUT-401-withouthistory/docs/docs/client-documentation.md
@@ -0,0 +1,160 @@
+## End-user documentation
+
+### Home screen
+
+Home screen provides a welcome information to the user, and a quick guide on how to operate the website.
+
+![Home Screen](images/HomeScreen.png)
+
+Tools like logo, search, and settings are always available in the top bar. Logo provides a unique design element that connects as a reference to the Cree roots of the project, and serves as a home button that brings users back to the home screen whenever clicked. Search allows users to initiate a search for a desired word and choose the best option. Settings takes the user to a different screen that allows customizing search results and visual representation
+
+### Search screen
+
+Search screen main function is to provide functionality to search for different words and meanings, and to provide concise information related to choosing the best translation.
+
+![Search Screen](images/SearchScreen.png)
+
+To search for a word, simply enter the word or parts of it into the search bar. The search allows searching by a word's lemma, derived wordforms, and translations. In the example above, amisk is the translation from the searched word beaver. Search results also provide linguistic information about a word.
+The lower most part of a result card shows different possible translation of the word, as well as a dictionary that served for this translation.
+
+![Dictionary Tooltip](images/DictionaryToolTip.png)
+
+When hovering over a definition, a tooltip will appear to describe the dictionary.
+
+![Word Info](images/WordInfo.png)
+
+Information icon provides more details about the word, and copies the details to the user's buffer for easier reuse functionality.
+
+### Word Screen
+
+This page provides the paradigm for the word.
+
+![Word Screen](images/WordScreen.png)
+
+The cards below provide different wordforms based on their connections to time. The cards can be expanded and closed to arrange the wordforms as the user pleases. It furthermore provides partially implemented speaker function that produces word audio spoken by a original language speaker.
+
+### Settings Fonts
+
+The dropdown under the settings button allows user to choose translation representation between using circumflex, macron, and syllabics. An example of using syllabics is shown below.
+
+![Syllabics example](images/SyllabicsExample.png)
+
+### Full-size Settings
+
+To navigate to more website settings click on "View all settings" under font settings.
+
+![Settings Screen](images/SettingsScreen.png)
+
+Here the user is able to choose label types that are displayed on the paradigm, select an emoji to accompany noun verbs, choose dictionary to use in a search, and a optional audio exhibition. Settings related to audio are currently being developed by ALTLab and not implemented in this project.
+
+## Deployment Manual
+
+### Test Webserver Security Curtin
+
+First we need to set `screen` so cybera doesn't kill the process when we exit the server.
+
+`screen -S internet_facing`
+
+Second things second we use fast api to run the test development server. This means that we need to install it:
+
+`pip install "uvicorn[standard]"`
+
+Next things next we need to make a run file that will talk to the `localhost` i.e the backend that should **never** be exposed to the internet without filtering. This means to do the following:
+
+`mkdir internet_facing`
+
+`cp -r main.py .../internet_facing`
+
+Assuming fast api and uvicorn are installed together run the following command.
+
+`uvicorn main:app --port 8081`
+
+Assuming everything ran without issues do the following:
+
+`ctrl-a d`
+
+### Deployment
+
+Follow these steps exactly as failure to this will cause the system to not render properly.
+
+#### Website
+
+1. `git clone {our repo}`
+2. `cd morphodict`
+3. `rm package-lock.json`
+4. `npm i`
+5. `npm run build`
+6. `cd build`
+7. `pwd`
+8. Copy the results from 7
+
+After running this the website should build correctly.
+
+#### Server
+
+1. `sudo apt-get install nginx`
+2. `cd etc/nginx/sites-available/`
+3. `sudo nano morph_deploy.nginx`
+4. Paste the following:
+
+```json
+{
+
+ server {
+
+ listen 80;
+
+ root {#8 pasted from above};
+ index index.html;
+
+ location / {
+ try_files $uri /index.html;
+ }
+
+ location /local/ {
+ proxy_set_header Host $http_host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_redirect off;
+ proxy_buffering off;
+ proxy_pass http://127.0.0.1:8081;
+ }
+ }
+
+ server {
+
+ listen [::]:80;
+
+ root {#8 pasted from above};;
+ index index.html;
+
+ location / {
+ try_files $uri /index.html;
+ }
+
+ location /local/ {
+ proxy_set_header Host $http_host;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+ proxy_set_header X-Forwarded-Proto $scheme;
+ proxy_set_header Upgrade $http_upgrade;
+ proxy_redirect off;
+ proxy_buffering off;
+ proxy_pass http://[::1]:8081;
+ }
+
+ }
+
+}
+```
+
+5. `sudo ln -s /etc/nginx/sites-available/morph_deploy.nginx /etc/nginx/sites-enabled/morph_deploy.nginx`
+
+6. `sudo nginx -T` Confirm no errors are encountered
+7. `sudo systemctl reload nginx`
+
+From here you should be done, now time to launch the database!
+
+### Backend REST API
+
+Please follow along from here: [https://morphodict.readthedocs.io/en/latest/](https://morphodict.readthedocs.io/en/latest/)
diff --git a/CMPUT-401-withouthistory/docs/docs/design.md b/CMPUT-401-withouthistory/docs/docs/design.md
new file mode 100644
index 000000000..a586cb7b7
--- /dev/null
+++ b/CMPUT-401-withouthistory/docs/docs/design.md
@@ -0,0 +1,37 @@
+# Software Design
+
+Below are some diagrams referring to the overall structure and functional design of the system and rework tasks.
+
+
+
+## Architecture Diagram
+
+The architecture diagram provides an overview of the revised system, with the interconnections and requests between different parts, as well as displaying extracted panes package and its relation.
+
+![Architecture](images/ArchitectureDiagram.png)
+
+
+
+## UML Diagram
+
+UML diagram shows basic components and structures that are related to our refactoring tasks. Paradigm pane is the main structure that may contain multiple rows, that are to be embedded on screen.
+
+![UML](images/UML.png)
+
+
+
+## Sequence Diagram
+
+Sequence diagram describes basic interaction between the user and paradigm panes, as it's the only interactive element in the rework.
+
+![Sequence](images/sequence.png)
+
+
+
+## Low-Fidelity User Interface
+
+User Interface diagram shows low-fidelity design of the paradigm layout page on desktop and mobile and some actions of collapsing, viewing, and setting wordforms.
+
+![Low-Fidelity User interface](images/wireframe.png)
+
+
diff --git a/CMPUT-401-withouthistory/docs/docs/images/ArchitectureDiagram.png b/CMPUT-401-withouthistory/docs/docs/images/ArchitectureDiagram.png
new file mode 100644
index 0000000000000000000000000000000000000000..1f1f65e2fd8ca39cff1567a41c4fdf74553fdcff
GIT binary patch
literal 39262
zcmb@ucRba9{5O2GRHP+TR@wVR#Id5H5QWGlD?59ShP04PR_Kt7Q{>pA6i!4L9ULQ>
z$KHF~ug~fG{f+y&@9Vy<>v4bjBhLAZ_vih7jpyt6dcHlqp{{)B;HiTs6zb5mtCuxV
zsJ&t+)NcFzyWo@kZ*qd*zkPR9l`o@qkbkc$v!YNacGR`Y3ff*tlf4cv1c*kfb7Fmo
z=UXn6b2>OhZSVeS{4^B%AbtMMi?=U-2Ty70oXy?yq)+i%$yFN}2iHV=DVP6y6>?tp
z$vy9WUHtLx*lX;4Axqg4WE$;Gg+1BW$gZ=#cVBZFK5Fgld*jeLWZbgzb!G%T*XFbJ
zzW#83%X5q6rUci3LFtL5meHn@0%7KRVT>pg?X?6t$`3)oN>-Ggg05MNP(F#j{P%+?
zzy4yuMmPG~^nbso%h2Z6V{s|%=`5FYq>Z&)tCFun2hCwDF_g;|YVlK*m9lL&d07>L
zyFSNDQ9k94NZ1WO#FrQf>+;7uV1HRUtjW9L@?10fjX+~K!JDjU%pdcvC=~z`jl%d;rll~B^Qcs%3Fz++WAeH*D1j@TFSiFB#Uj8Azp@|Ba
z0iH{L?Ck6^cT>@_i&4V|_gXFbN}A3vez(%%D=I6qMCGfM63|NaO6+Jo5d+1Vd%`)hg%{zyu&AVv_B{mZr}Ha1pGnW{;sjxsB>
zw%*=da8iYojEqGSGn`a&)S^iyM#ZSq<*S=ujbZ6}qa}tG86Aq@)ZckU{bN%o(|;!V
zfBr#`f?n(`{uu7|l9`QI%j<8Q;Z~-vz`R@q;u`gE(T&4u)QC^KW=W7jx7d@yOn%u*
z)S@}1kVVQolpytHP|}R)72O{As73(Hisqd*KNn9~aqmUeJqoFnD%rfxEOhCw
zI4nig&b!zb;4C;?oJu?U`%^nhkcYUEaDtUKDyc3E=Ia+w{S$B
z?PG9Pl-AQG=6Gu}rf~(bV%l#>^-{xFqcuM{y*6iNLTCoBixF`_#^_A4x|5^h_$!Q1
zoT8C@vbt(;US1xW_96QZp$YX15)u{|fBGx);`ilj&CSh4afq#=ry82>d&hz&?5m4f
zAVg{X$mw`D)Kp$xu9AJ{Lubx+3;q1)$fHXZ{@3uQLzQq0>AaW%M!3+_8JU~Q1$X;b
zVl+jc9D=EqkDB<3c(_B1*^g7gPf@jD?no%7-$l?pr7|kB5Ug^%$Uz`
z@{kIje|br!^?Sr(#=>FV*hQ_X@OW-{E762zjA*T)RpJW8bE8iTz6luRcizg&&!=;y
zN5&lowjcR2XzkvY_)-VbT;tH1k}_WM%b81Tl!#xGD_v*5Y*m;YJ?|e_a%p*ac}U?~
z)IS%Ubbrw#ldLX)U0zv{9>vC~VDq(pES-5bW4|n?9HW9Ay1arv-SCiotWcNl#FdE2
zXX$SPwW?-#Jh`Z+qAJmCtjMF$#H5O7K3iM_kPKD<8Uq*3Y
zWMs~>z`9C)o}VuuA3-%Ga)>SriINGIS9(faAsTak3^6MyDsmq>Q|rzdT%>L4H*?oz
zP^h-2T@EPjA*RAElD)lsNxmIv`O&X{wlX?B#^+av?w+2W8)`AQ4%=YGG;Mxz#6tdc
zaH@B#Ezzk^Yi@wT9L|c`MzsG(T|?dxMvgFn>)WX+dmU-1QL3U1gK?_4LlM>_+R!oH_!Z)SQ>*+A+Uz)b%Of8RUe_{*I>2-@j|@
znQJ(2$68`2W0Bk?P=kc+|HXueocTXbnSakn7G;53vWJ9(Tw*J)s8Fk3l)kmK3l+qv
zy3JVsp-VF8+IvCO@6E%#l%%ei-5w*Lt5*LYnggt?N`D0{>MxW+p&{?V3j7!t7~pNO+KnfTB!W
zH?2n$jx=1#ON%ZL6xhEDOt@wiLjRIVsbPMhKF$S#C*OHLtCYs!Zn@KIRsGcgI|m=G
zNXL4hP=x~OH&j^GEeJv!H7
z6_-8eQ}q!+99M1v#Q2PMGtyNe#%O8^%a0$5NODYOP5{eKp1P`){BU`_MltP&xHkE1
zUYl{m)xk2EXXzHw4wXFC`X1^mGu=+YaRMY6Tr_dH8Sp|=`Rb}YX;}tW*yGGh
z!VgM1N+haeTNQQ{1r(SV@q`WP=VgW$IFOu~jg;}yr0fn`2NGd7_EWQD6xEoz@0IlE
z$f#$7oeMIRy8O_~`sq
zh$ohqBWf8Bkz;q;O|`xC&Sl%izA15jTCIUE{zy9dW@)OBS1x$R{g~;%J4|G};qX?C
zF23IDc|e1622j_2M5
zzljSJch?OpZQtKrQ0|5i8ivR?6;RE=HL9(8E#v2y+BWI@sZccS(tRjlYIaLo7ItlI
zZRJNW=d9fMz#F_f|3L0WZ)ay`UtjEJfbwiqAz`I0&u<`LUwylcHo%LhwJ(SqS8?L4
ze%@oV&MX)DEB^wp(qdO#?x>q8;-^B-Q3EDmsMD4a7ux?ojXNrdL$(BeCgS_|?@=$_
z6t1{oSn5BFdPjbu3*hl6HKeOW?|;Di>@%8qQ#Ew3&JZbp+V6)3eA``j0Ck+}=?6}N
zgJ2^+{XxRO;+%(&iCUvB7Ci4#{8cMqwxDRu-6L3OY3Z=Rp@lVzf$?$MopYha?mD`<
z;m0R$E&2HS`&Zg=){h%SH(C-}me5{10hT1^q~zq}-rim+dGY0^r8_x1QKu|E6gwx2
zqT;z`ihY)2xdWft7Ig|v|380jP&uB}kr_qJd7v8wJN07ID
zDuqdygqG0-yaNwoMF**jWi1}tn87>mFQ3}d_`8r^hd+kHeA!=~w$@LsUp&&dY*YYgE9$d
z$C(ke{41$St)cuif0DbMo>hD@I+BztPHNJx^x>PjXbnYPQHM
zydd9Z`1-(5-@ifNeTg{`Ex-2&iim`JahydZF==U)Qy~>Mn$NFpFUs`D;2NFu{#}g)
zf{lRH1rLQqe35u+ZmC#`o|L_3%Qa?;q^fqE
zx1Qv+*@C?2)|jYZhpEMP8HmqlzD@OxN(#(h`S#dR?{T2}%QF3f;WznILoTI&V{=C~
zs;0{pzD6hw(a^=j2c-VZcf}LWe@zHR8jYDv;kDZQm)`a4oN%NOT>I>iVzkpo0W9VX
zO~rUT0#&v4sS7pE%ZNbW4g+?^>Mo$>Z_=mv=nod;=;WL@xc6G$pExcWQa4$jC$7=5
zP|v9Em#)jq+QMj5Ilj0U+k`QDJjS86v&3AvmzQ6XKt81a1^47{Y{e{Hum@tkh
zz}8FiZ?+_icK^tF?HgUWWs+o0c4tsH(uo&};Kef6cXf5yNEhAt!1UOR{)#{UN?>sL
zOPv`Wm#ht6=|lr;Km?xjGUkSlOKZ^X?Amr}u~TCoH*rpJJ_
zc^D!cNDnPe>_5CyM4D;sM+K~o7pkDp%aq5jr
z>T!D-`^7*XRFuSer!>R$oDO|`eNh(h$>z`iVjnZp&RQdX|Gb|d(Vg0_)g9_W>C49|
zj1SWuuN*(0c)izj^u5DQWqm78gB!+yga`a|rQN4e(!ju=Or|t`^Vct(BK@iE09@gd
z!P{)WAFlU*39uM8=IIoFKd?us8}kl
zC>F~`*-xsE2qJ+26@`D2Q0n9DgSXV{vd0r0IyoTYM>WT4{Ql>Ai4%og_Yas!NVAue
zp_%iU*=;@raxiQz-Y4kwbWH;C4ztu#I6^51dE
z2V}R@ief`ywuzBwi}1<<$Cd>*@dM&(Q{WI(EUd`!Dr^@`2owQm1yS4v)YxSfuC7`s
z1_NdJqu%Q$8P@!&baG1bNdgz>9v6*R#QM!g??;p=C=O5-C~iG;CW
zV2I17b2EG=1!r=Z_b3$U$9#sca`*f`spPKD)`rkNP(Y^UHB`-#>R?~x{pCOJcH(>W
zs_o3!kid~g-N%B&jR*%>wO)G(YQK*bnB>?_i%Y2w#+Qc`Q!&6U#F6lo<>jOzm-#Ee
zg}~dlkfFGdLWutO-0$D7pXAjMX=!5}tn3L@;-I}GyHyTkq!HOoUn!*}MOM0D+|eO&
zp+z}6iV|_kb%Yt7AFH6l{pVdI53KnaYwW7NH}DxyAknv)y7Wv%D3lJLfepaHjiao#=d6>Y}n
zUq2a4#0>Dbt6!cO{v1prn&9_0WaL!jD2(%B$CuXE*L_mI6^vAjdXq?`he^=Ah?j>J
zMbLqR4_*T;8%SGw&)?sOZ`j+|CAg4%zeP5FNT{o_Ve{US%VS*mlk|p_Exfuw%(FpB
zWeEeM`!N3NSFEP3gF~J%PSu-4q%NC~bGHz>z<0P7o!a7=H@Q*8O6c$JZ?P&g(inZq
zh}3w`nc|fT-MvjpU9JF&hgG9~AZ4*UZoBck&0b!uC3)r{IDp|1byg-~MB`&F8HRl@-a1sVz$Hm2kNc*kh@-?%yam1*@
zXX?*0ZGB7FwmZz!gA`6K>ohK};`w!Pm^L#MD(wA!jYq~NCT#a2B>r6kvJ(kJQ>)3bDN5-s(&!)PYz_uF+_{*d?rpKVe*n;ZV$!1r1j7+J)9%-O-XV
zGSR137`ph{C|Mn~FGf9U38NBgDW3Sfc{Citamxk(YyG?wwhF|`?vpuuCxelZ$90yF)K3zhM{mo
zGOSIC$fEURgVIVc_2HV~WJ61dFg(wn;Ku^u<6$~k7Xpj}9Pt8Vw{GVos2(P2%+`_K
zQW(P?1>ra`i0vq*b}*^By2oT*G_O@5!Z_C4YHV!GZkKss0!TD}_XvOyr->}wCrJuQ
zQ*d24$yjstDpr%4nmRMXD;Pgix)W}s8X5fNkJj_*XjIVP&&JyIDx9iczlQMX#KvI@
z>HQC=CNAH!;2PTvc+mQcRj^;3KPAlXLe*#^ug(0>Qm;r~2*E!_#E$Iwm{v?tkJsY>O1rj$FBUWDnFD2NS3yTpN{8LytzI6QCB0#sAY9we~cQaIw)
ztgT^t{uFc-Fi^NwP;v5nRK51$b~LNrNuYU~&QVSS_iy2u5r-t_k@UW_R4TvkA$x;`
zsL#6!`ph<)ggN0gZ{iFM49W_+Dk#$%IXO9IOzLmvl9QpSRVLSuH5672r~>LF4S`#<
zNSldPrFBFzn^Rut=J`5>$$v_{GCiOa9mXjL$iuJ~&Q&`M1Bj=B^?@TZJJ#CpEz9kIYDt!)V>Pn{
zbo1lG_AWfmp{X7CMit4hdEw3{4YsIStozal^uGkuR5U~@|m*
zliAwiz{k1Kj|i<_IF5XTibs+g9REW@_3sC}AF#g{6exAji=ElvVXnEC3<0unnEU7n
z6zaBG?sqyAI`;-|yDbpi@+-+uZn%8~CadNR@3Uyl1U0K^>AgTO)gs5GwwtB{NQ*NJ
zu3wCv0q5tBu^_GZ%Vv{Qeo*Vjp15+e03Fvz2!~ohr8z|w%3ll7vS#+{1i?iM@m`lB
zdobEY3XEZ`HoEJ)TgMI^BSpBoRT~Ya3jM#Ny`u$PliS->_QZ)L+ai7vtO_7I6~4v-
znU?2Zx8^Mik>2*)Q4ua!ZD^@l70#POr}iMAAB1M&bKhsL!dC<(u>3!E9m{-HDv)Bv
z{O1$DD`iB;WTZ(unCs~vSLIKPZ|#8H
zb%j^Vm2bA&O8{nt!^6`vM$?Q50tJO*NX$)THYY}AyNK+T5PyO|`!q{EW#M#X#q0Y2
zY60ZjvO<+El^yZn|5O6*6<%x!q0j*dxGH=xEu%||Wc<+)1VMTfcJ*|1@i9FAddC^C
zz0!;8SA5?984y*=<(=|lp%c25$Jbl-OUAPA2f87JUq0W83RUBVxD&Hb;&+Ktp+1!<
z>RFcQ?ioK{ri}n1hu?DzaYPt;xBhJ-BiVvDs>D-<&^X-m19(4~oS&cn*i6#RersxS
zQZlUeQZHEL5hS^0k>YKgOqGaf9Up%;-G~SbD&=BArnTwXJ>$cjBk+GY
z70-CzlnZ}fy{zml?aF&IVM0i^UTK9v-mlhHP5ziNm*HpR+i3S8=N}L?YFU~)f(Kp%
z4BwmjzvWpLNK5Fcp{GCmR1inj?XmvHlU*Yds1@!F9k-(-xVDkm*&B{M1{UUt-+?Y(
z)RzMYo02USYX$w(#|H68D-`wkM=UR0WxJ}iR(-+#Exdjn$+0}Ne7P<*VPs^IhUZRan+=&0)~jp<9}zq!Q|dkX~nSMuV>A>Y7}_uLnbqb4ccjLzja
z(cU;Xn?IpqS*a>dSFB4^lt
zg<*qNm5c-#Vl*-Dx7{PJmAL&Jg`ih+&tg52%o_&PKUohviRozlT)q7ET>n~f|2dZZ
zk1f0$mhC0VtE=Vnf1L_dVtVZJ*}F)eMYr*+RGNQ<&~DV_QbX2_22f_W&OA5S{G(gF
z-XY>oR^3_D*s;Jc(3-2Kyvpptv+&qEI)>#8BMzkoaVWOFLlD*UOpYelE&tP*oRBfB
zl22Y+n(iVm{Xxx0zk`{50;kJ{IpXMS+Qfq>8kfipzkZ?-&jioulNQ&YE3JMzr(^v$
zwLCA0ZT&|`)4qoTOwCP@mf$GSH!w2l&~Q9mPRWZt*WXYFU12YNQ11-PEQGu_+3Srz
zEYdXjqX=U-(eht}VV5p@ow(wqn4X*&iDLzVSDEYa4hFGEKNF#OF_kmz|1cl#!gTnC
z%kteU^kPT7HTxGTw%345OmQHUZGSMf|iV)*j|jWs*p}
zV&2%~TADOb=91`1JglS-rpXrw!G8d%2qD=MXepP1qM}=QI@GCWnd(2}rxGlN9(Lbu
z$U4t0uq)o2Kp0mZN%u*6sqpLf*#9FRf(M{K>aCLfH#p09RH&v4p3-}>l3<+zW`kbG@*_qC?#iwfOrI`qu95?w_exj|ROQwVR%v
z1|EqEV(oe#*G)>;RzG_KAUvOUh<7Wj+xC~^8cBXKOo%k*cjuzwnTNTbeio_Ar5>)m
zfjbR|ATk8HPjbHDIT|lVo0EY`%b!S*_7pxDpU-Wr4?)G`*j`jn6!?;|+Y$Syr8gSb?d~nUgQ~{;AtZYT<)waKLH`HQekAmc;fP_W5KOsX-`o@dly@i^Xd5yAOXm(e}Z#>_vdX
zi{bG|xAunO93-N|9O$KXoUO=Yn^C>k`d~*%aFwi)CK)zUI?76Daw;Qp*E`E?kv01L
z7QQ?Al1STQ;oD=>@~ihX-`(IH>oShlhhB_Y2y_z}OAXbXKx}q2I2Q_$yRu`Ci
zD4Ex~iB%qhp%-8RrU^W$(eA$m8`rn`cebnw*P1=67P{?lmYsf&0aDe_-frSioES}l
zrp*D_qZv1N)p$p#QKl|`B)8kM8O$JN|o^cb&b*#e42%l7>?M@m7hdal)0Wf1Vfj2b2qYFLzmMq{{g>3Kbic
zx$)^O81%3If?0&YR4#up|MGe$&d$E&Z!bA1s4YvQIHuvY_Ne}wotd4j>f_H2WB^Zt
zWRd^g(*6BruL8Sj`C63|h5^1?K)?mhmlglgojeMhu6)_<$({-OT)m+?|)z@
z?72Ltht&q?#{h&6@!L&$y#uWvtD~v?;cjH~_OOPIx)RsmxMCIkn2#;wr;h_x>1I9%
zb}ifg;I)2UoilU2b77bL`BR#pc6;-l!uS&0g&HHf$j;2=`8kDS(7iGEA>`!Xz=wVH
z-O8n;+-`W)vJ3|$1PL$O66NAwVyRd5W1(VbG;(Un!ARKT;37sGMz7V-6vCOIl$pV_
zk4A)w>2k);_YMa5HnJOFo~i$uk=XZBRCb!vlFiM{>i?j|afU^Yto#_Ddh^*sdD=EO
z`&S%DzmCQ>g6wd~pa+4I8Mg%=n=xIviPM5A18v#fRN;V6OX2NQc9}~#18qE)J3~Vw
z0_u0R((nz`-nYWPd{#w;U75e#Sg`0er`~1n5g1tg^X}E_H}iBl1deZTEWJzGJl-}s
zO9@z{lecl}50g$oeRk~>pV*4OJfwn?FQ8D2BB*s-%}wdy6+6QdkreK~bp~!2-7Fc#
zQco6Fa}yM-*z@}~2-liWah&)a-*O;l6jKN0KJ8U_xp`d7=VA8;^+OrbGRScrDT1{e
z-ZViMt7T!4w$4w^1kqlEreEEMSv19^Z1m#2!pA?P{P-Qxn9rd#?I$O4T(Df2kJD_-
zsB--6m%AQmH-3C@7dGL9TsX9TiC~*-rb;Mv9d#ps9iYBJVgX91T
z${?xwgZBy@SDOqAitwa`A&&OxX-8Z}nQ&j5yKLI0!)!0Ndw!L^c^Pdjda~D^h#~BK
zwwN5N?}Dq!yE(QLVo$;g0uEJ`qZ?nWx{gzrm%8nBpe7dpYqhM0I%C{H1kHPUk3xf9
zll4l(%!UhNnXsD9SbNcYclWD+e#g_l922usT1IQpYJGOcADg9?*N4l1u>~EM@U!Zh
zz}I|o5^Tp1kDuD?1cY2a7x9q4pyCHYTX6+1DiJXbH1zHc)kNdux7LMv_0Dg$?tFL~
zZM$(wv2K|rSdp|^82>Oh&L^14v>W)dZ=0tY3&xkq0^)u+-GIa>LjEI}ualz*_3qG?
zgOd}^7&q}$Y>WDXv_Ru&)zQQOAhV`b8Nca9CEsV6Xa^Tild{AFc@)@(`@K7zJW&QI
z3F?aIM`F*;mi{aYZ^mrtieY}~D{nbKndIoWPl25+@YdOR&dREY9-iz*mim*#KB*
zD&wo*K=CK$E3K`)p|!Pcd6)PNYKG+R+yWD4R`O$_xYkc!ELE+@`(#YTNwaj{K?t7B
zbYU~z8|S;9y86THo-w^&0Qp>`8zL2>3_R}Mn@_my1014a>Z`({S&E|Z_4nC?Qd+H#
zy&F6iq{2o22u&O~`bf6)@|ESwvP%XlZZV1q
z?4{VH#{SoZxa5B$DX_eU-9g(78-(&{fWA
z7PzG9X1fkxL3z1RwW)f|G+9fNO6}=UHe>gD_s~8Z@n`aM8r?uKA{gm)+kxgGd9B5v
z+=5)tJl~wqS}$wp!L`v5N%OQgrg0!;lx*J7C=k1n9W|-{jSH2a(dUl)m|N=#Q88)g
zDW`PDQj}Y;+>V9O1P?U{-cK?rdAvbd;PCuG&cidOZqI-5O`d$?UZvAE`7K631$cn}
zlw3SaI~?>qxvtc_&ZB}t7>b?NdT*(qXW#Pd6Wr6Se84kE5{lyRqtb-OF2PF
z$a8coEyFb8HlnHZzlZ$=|CKC8Tu%EwMpVk__;bIN33{tOz+*j@j`fuI+w$F9%C@q@ABRE3cJ*1<$+OjlTE!9@lh8=SoWN=G1CFp7q(TXSrsXmefIpOTI?CM0tv^Dt
zG_xVWrTP)GwV{PDJUndRRJrtMgN3*j*4pmJF2=@F`R4(MnW^Mq@ljTvzdmQ2saR-E
zJ6t^&CY|Clo*gx#zs@pku=;a@Wx5j|plo9+7vIukZJ9Y2!Cg7o)l&i32{cuweKtL!
zZ}w~R7gbcq^n4KOoq4iAKk|6(ugoa3K0(Y{Jzx`r^I}SlvSNKRZ5r~j-(-SI&uuPH
zs76%H7?Kk~$C(|Mbz5Xr(*pef`XXpCy2FPzCRx_GKX4dKhX;_0HL79K#%ig44<)?n
zK7;@Z`@2Q@0s;b+%VDb@7vzLil>gB{-98T)7`;1;xmXRWR3>dR=KQmiteX;;#ungx
zXN&IcuML(DAjcX(bd$a
zp20O^m?wIKXh|;=M3kyw=G-44zi}XE{MG^P>#z8_#}@8IQHcj3L~9dpqEKMN8cMJ{
zG0Rc|DO`{@JQT&`Jkpdv(f`C#gjr39N{*uAu0eEKe+69#rS|u>{|jI9VzqNRKzLc<
zMvf$3e18uam?u60z5o1F=z0!^8^6S(Of{_*j3Q>;#eF%l%r3lH8vr&IHJN*Co
zwbHRG5iv*h+>hp=0Rc;Xf6nIZvSqK_+6>-Pjx$Uk5(4TD0ATV(leQPg2oNEBEzJY=
zC<2gvtCle;&`@X`jtpM%F&batpP|2UQ#fv-&AqVe#b61gg*2Da{UcSkk=(Bd?+y;9;@M%@X0ea7@x%$V>e__01Q;b#FgObv}yvMx>wMn3`!aXS_p
zeeeOh)Z>1z5$>BrU7Zz&p%zWNd)|RZ6G2x?04jB;Qw5Y+&>N
zGS7(4PbpG8OPYqOdW!ke^sRjInQ1ldXs;y5lvJtA$feaFt;^QA6F`lckd0OY>v9uPmVq#
z>o+{s?>$+JoF;bd{=0{w$sAVTBGO(0fhbZVdlYF4irH$hZp`-2^<@oZatgkYnsMB*jd
zZTYRmHqSoqQ5Mghxppm$>u2ASJ)xd(gHBO=y*(%8aLF)V)U65uLHoEM;`Xr@KjH2wPp@g}M$UCcHxOM?e*TOrQsV>GHXAf|IHxi+U?DjolW_j1$oO2
zk)3&wlfY6TFNf5tRxzw-M%u&{Uc@XB6N|ri%!%z8)j?2`0_9fnFPcTO}V*d&>DXn7ZO|%9vmGB($$P)<+7z;211RP
zf^KqKmR5E~by3A|tie9=%1EM9Y&5R=v{S_#a09Xh-G?sp%)ZmD9B;5CngnjSgPm9u
zP2`tPuTS9Q3%YZRm)@OrEE#}rjeVy=FZ6j?6xrpMj$|e}!o6EtTZM{yTr7%!k6B+N
zbL8m7x=-X4(`ix~kkqB>FrI0c*~+>);Ls7eN`9kIUV7jq`aHaNVP1#rq1y}6{cFwa
z9e{b1_fw0_z}ZAY*HAJq?1OkEQ!Ar)wqLXnwwWx4$StP9PQBx41D!C%O?bc@1hzD2
z>IA+;ZV|R^&`}TGw2!cy>c8BjFnuimAkDr6_N~ep|Cz6hCNc%xE7dz&Y@5HSm34f#
z*G5ge27)}7pYoBE^DwAsa$OJtlsG5$T6z&TPqz+
zkuK2xi!&oS{z$S8`JOCQgq;yIK4feh
zkd#8O{8oK1X~T_iIK$G`z`j-Xg@hOc>zF^I5kn?*y>F$e{_H(ePy+kz5tv%lQp13i
z^8T%@nZTVkxGP-DwmrZW@OwAgTWx;CX5hYOVC#eF2*F|Cp@toG*`1@3sG8gozqNvy
zjl=Srvr!syYd^ySJ~|i<9CGri1vgj^b@Cf@0Q&1+h6w@;dcmvjMBM|L11PjW3QS-<
zTcDq%B~~NZ4YS1)IL`w&83JYgK0{%~ePDX=-kjP@G{T(lq_NZ}o~?%P&4$YypGwe)
zEHy~NsY8(LU+gCqo~Hg{FC!FY=-?)1__m4J98ssB)WE*c3s>Kw87Kih6C5KR;;Xsf
z>N5yW@i3>RBM~>u1WR55{^LXDj@5jGiG~8bfRCYSl6j0d$6$E%Kc4gG;3d!p4r7^6{o-r5|Kzm
z);s>`vBKXVBmzoxRb%su#wH~MY!Ax6`x3mk*rw4RxU-d@Hu6)M&A-LB&-J@FF`f>H
zwI(TW2eFZdV4S1!J8Sk5zB8380ZTb1x1OF`*jWwVDVeF-2$-x7u(z|DfG8b#nPzN!
zndB7s`#v>riHX%~r%Cw05$k{v!0xwH{71x6uVu9b&Qb@?LWrtbF2Zev_OBjli-3I>
zYXIC$>w3V^XT0jAAq$y@%X&au1OXhQv6lkh(!k+BFL(DP7-Oa1nhPd*d)Q>#vMu6H
zx9sZghsAw9Irclf{aZ$r#=0v0+Y7020xEnjXTfN_O??^J*_}g*UTc&ec6)w2RIVE#%;~mCJp=$;|kTN^6LMJmCF%WO-AF
zmDBG2nwjO(WfO?CUaNc9wN$hFa8JO-l#wT(+eF7Q@*^k#QO{u~2LwrQ-asH`J$jd_
zRw~1}%F(Zpa%LceZCVhrBVSx258Gj+J&ug8HOFLYe5GPkHhI{y*PZCJJ>rz&Clhak
zjKO4QomhOLYQkuyY;7bl^b2G#1^^;KddPcvf>-3texhcxs9~<3hsgQPp>q?WY5=T-
z+SmU$6^VyP;2=aIZ-Gp;+E*C<1oTSad2!o6os*hH{Gs^c4k>z0)%4!8a>6Ket;rg8
zNDb8kU<$G}G~18FTxI$7pM};f{8)&>k5?cnWpeC7#s9P|5;iJ3zc}zWpYrs(1HVA2
znl3HM-KieL^xu5-3dyBbosao+x`Qh~Z1=%~u$ng8&C~7KT7q|}Q4jx?%O)omS*JS_raixS
zA9Q_)?8{tOuUpB7*N;lw9KvmNZjZO!IjJlmE@;9
zDQF-Xn_h?kCfi({f+G9z>BW?#fYg9>^34&xrbDpT^8O1+1-oyR5bw||pI0lF@|?Cl
zGgg^mo~1nAe#XKx0!aoeJ_$)OHAi8yXK?MV(_#bIIOFwc&uTl&vjC7IN8mc01$Pkt
zjgnuB%FKX}44QV^nkUHl<`xea!X|J#>$t!H#(+<5(4Z4!K=jus|F(Kz>X9S<3j$+<
z6uwVf5+3PvlN;KF>P7$niq^J@&E;HN=H?kj6gz?$P+=hmg
zb{#H7p)XN@3fzuTal-$UB6KrkI`&^J0P?K=_9gsos>C0oZ)`krpApf6z=0kFE`lO9
zLWlnqH2oiJ%?8k=lLK4MyvVIwZTJ65N8k-LRg5aUoGmSfA#_Tx>}Q}ufIA!%*b4vu
z*Im};UJ6H$ZD-F0BjQ1>?cWc@0UWRC6V|k!rZ=cGfK(hB;<>u;)%Y3M#gyn!zfS@E
zw1F$-+D92-%xB7OXJlt5%Y_j`;jD!a7t?AzuboZ^39<#N8sK@
z7s^19Ew(l|M%e-n8&@12E?{)y&Unf$_u0KS3a^F2i0{CI*RGFDB-|Pa&f6A6`Tg|J
z)5hmpX4uIPviBq_=p%c_IX_eU7#{WUhr5myfE6=y2QMy#?3KYISz7pXk#>zx;3U{1GoKLh#>Nc2AS}G
zh`h*)#xzJjL}i#F3Vl;?gV(LjTrW1|?(eev=5%)^&>0k06cu5kp$sDoOy|c)xA;3b
zwLpbSrNHK>7c0CdqY=4aoP`VrmE6#j^%?X!4kUm6u{3?z*Rq#I6plPHE2*kVNtzQj
zp&omo?c|onAp|Y&Wt;zjkCskW%1AQ_g^ifPah3*wM_;y#I*|H$dk-N!wXM*{P5bZC
za3rg*9LyH8%I+CmvKd5ry_nBPs~11BQK^nFWGGBTf=2R?_PFs%f@hyvUr6&fP~1R2
zYm0R?vPWFKCORxNi?D&(&WNQR1Ulc0=^GTY3XE+G9n@Ru-~AVdVN$Y^
zJ7J-@@-*)_zOWGXm+g?c%YW$^871GlyQ9n?zar!0>s#*X1WF`0ps(M5_wL`W#!I3y
zY=NFISaCOnaXw7i<#Q(OGZVIrte-bhmanOTJDaVWJ+^tOK}AqETcjF)>&)=1#lWIp
z2^Gq1sjDSm8QOub$h?nvQo|y1PJNGpP@kWh+vC5|o4NbkizYw*H*Ge0G*cFl3jni|
zHI`2`PwDfdwuG3yeVD7wPq+lUYii}g1%H#krl}-h;S-s4t?6p3T~GX1X51?Sq|
z-QDU>R@6IQCG_4nE65z?{SCR8F6Q>LdBA$(!?(~Gypir_Nxz(Q3
z18JqtcSg5rJ_f;a%7Kf@@=#v-ZIJpUSlZFTh9$ox!|Y)T{#sJh=H>P!b7-8pGAjq3
zg-s?}Ea3tVyw9os;0TvVkMFE-47o!(fxkl{1;x;`srd6t*lB)#>mEi6S3r=>Wh4*Z6InZ6FQOPc@TFT4ZP5!ed
zzvJj3mowR4M47il-V7P&5fw@JtYt-?KTmn0HJyCg64j_hAO4ouV(G^I;C4}
zEvEX-6DDxg#(@DP+v^iE0G0#S;sR}QB!a643E{HqEuk_}SBclQxokJ$ImM#_83x1T
zqphwF*advf-*yRo*}i)!QZ)ja>uDk1oeec)<{tTNmF~~|A~v)^oGhCSD7Yu6al9s4
zHO#5_1l{W8+I&@AP8wuGf#I25yG~Iu6{d58V6?5EH@9e5rr(
ztK}TepDMe|HS%_%`f@T`)En;SOKS3>t}hY-9yVAN%G7Usu_)|9)?_qbdKAj3?N4rk
z=9d(Me_pw%%}X!SVke-{Y&s)3!Y=Hsem+Sa5FoKU*Z;0c?T^}_i#1DB`en)2SM|6VN>
z6B4>%tiLB$i2Wrk#_GxyuURFkn}$(*Q}2T#PP}>Yipu2G6N8H|;jEviI7>Pfvei
zgmD}qY3S1F&(FSozv8W1yBdGlEx3E{B+WTUfo<*r+$lnBTJuq3Bfi($74h9be-;hg%zs}*Z@6MS=Hm~LbZ7oHj
zEUvFrqxFR2f{!f*h#wbqeSKxJYGb;9WLUL$H$Yu6_#~I~5pL3z*JX@?jiT41Sogu!
z@hMVqj_`z#0p7l=;A?N5&;^T8ywBQr4o*ESO?IWn67$Jni+Xv$vwVXdMn!Dgc^KF`wmsJ$G%??083kkP
z&^4K2&EQ&aZ96YgHkJ<6zMi>#8zdx~0zp*|x`wqi9@V^<1_u_DgX$JaZlOu+xW}EG
zdA>y}Pd7I~!;*U|y`HHsWt$h?X^y3MRz|W&dqihuWF@(LyQOR7-f0$cT|)hJRYQ|_
z$d^NT*^TQ?K3XvqWgjbInSE^?
ztGAZrL8LQ2ya5H*<+ILR$5e-uaC~fE3Lpax3!kH{bxsNk3xhg!<
zm^h|7zM{NUR2~@7V?uR{_333$A0JU%eo0IjigOTP4R7@NGv}qN8@EZ;>YcoD;@Nti
z>ZO=|El*QyXj!1C^MB`P3q9kT$d-JM{^NYUVptzhb0#I&ZzXl{X5{Pn
z`#*pFRM87LkHK^UjYK3~z+m+8iW(X%4Gj(FTNtOz;c??OnWkvoo!Oy_Zbe=pencZC
z+I<~t4uOGz+))XWhqb%#kB-33&9K3S&sRCq@f{}Rx$JG^loVFa=h!rcy*k}@({Ah!
zseSj^EtZdO9+;?9k8T@?QV}`UjXRG0RsIJ<5UCj6v6ugmymuW{KXX}Gxt@O6e>g^W87PG|b?GT$^|pJAt&2j@mFEoC#p|ve
zQH1^LrO7R$*W29s;-Q6Rb4x4liB7iq%~GIZ8%7r_`$Ovo3piQBbGTvd|F8DmJQ~aP
z{TIGbQJE^KWQa;O)Qnt1gvI
zS^l;A?@Q7SzdG-q;v0R#^z+5RF>qMh6*+xon;tt9>9s8cP
z33?+G3V99327Lb!LofP9<6m*pHMaGA(eyySD
zr*_L4I?MLC3%)yYFv*5J?AblpOYso!J~rRt>T_Wj_@o35iP*O8`ST?=W=5SHNhv$9
zH@8a;z5H!46FMrR-7c%h5OzI`ER^0{EdKVXMnQfJ*~o8c$Ju>brNqb&5EU&C)Wr@rM^q1sxwv&Z;Pc`{ek|nav{&CJY6!N%bi*~K6
zHj?Nip(vy18+Gnr0H@O@o8(vLBTmvh-^j(qh4tADNA5x&XBa>wk#dEOBsIMXPtW-~
zY+f)^N7A5F*T(&`d5ut=7|b+wVD?5cPj+j;=~1)q@3%N`x^Zv1Yg@yb6yCWnRK?v`
zP>DWCd2T1N$65mBQI>omPaO7d-S}=i@|RA;&A%>xn_`_ilh^Tl%1Y;8=hpb!jO&Y_oIm+cwOe?%?YWBE*{_ajCL0dG`nPoaC9K2n)}$`^D9B}OV)+n97)++zGtrXKH%vr`u!wtG283~x-dDf
zt`0P#c1u0NQ_MilDdQ+N$@&JPG`-)_WyxcH=VQ28EIFZfAsr8pcP2$2u-chcwiEi8
z3V#5BqX3`Nb)sX;>+FdFWBmBDUaq{yw3%H9RPguMW30JcMD7niYjrmGTj9X}xnKBk
z12?=l>fpOL5aCK6*DgfVyx|htLJH$N+nbtl8swMN7qxW0$aE%9n08B*^l?oZ+%xQtGUIx7*eH&qVeStO={4i;GMB>l5WE
zj^K9K^ALniO=TTS{@88|L<61{?G;dWd03jcbjU@DET+YxniP
z@(Y`A>~@mryBjl>6yA%p#`)LUh~{a}cftp|;SH#yM0KNd-X%cn7U0eL&FsTOC$yOD
zU|;R6@Fw=@K2L)1c8oc86`wY{F|eKYPnb5#&$g+*Pf!sw6rIHQZMm&s^nRnVaLMAa
zkbrasaUBDQIqEfUN6Bez#}`}zw3OitlQdqqoIbp_Yzp#q1o+W%Uik27&g=eEN6dRM
z(nlSi5Pleo$I6Z*gmQaNz4t{)fje;LT!$1t(*PklzW(gwY_V{&Lq3
zTGIF20C4X1XBC$EwbRJO&F#DASY|b+b3Jl`%lp;B?YhfM+)v@zgz;=sC9jUTZ{n3b
zcFdLj_W3u}++GRVsdrf9f1)tq#8}2#Jge(zXtj-aOw>uogXNuDzu~ro>o#q;L*zm3
z?l3K|{LDew5Kj#iP3u2gt6G&*8y0+;NrWi5z4Sc%r
z4QT6_vVte;d!W>M4*2HyfygYUp7jxA59D%b`~y3%g=)zCU{jiD?~=gH2|B(h#s4)
zA-;i=$$2z2+4OqV_Mkp*B<^ZZTv>@-A&dx*xZU^=k%FGv4L($7&;@2NW8u)-uMI#$
z46s+?^qu`%9{?_0>nb?Rwuz_+So=OEgPC}1O&8HQ=_u+Qioefg!BM&`P7e?xxe%+M
z>f-XL
zO}6uKiIz=g3%zB~FQ+CeX33DX?fBjcHOFKN)OtaAmrXTjOftQ>G6z((nfE^%ub1@P
zkc;a$)20|mrfyl{wsUM+_$lW+8op*46QT8unZX|;f5Zoh6b&QJmt^cioFof<#@fUm
zzvtzP2OsHfWXu8?An`@|%GlS;UdNx_YHn|Ma1)NuC8(*;n2HkT67zh0Xr57F}a_wAeMbAH0DRg{6=W(
z?dz2c!XEfp5vxQ>+*vZLlKI#;)D}^Qz>z~OP0ubfBGysGZel6!j+BY|yo~G}&+1eF
zu+EMPj_;x4NjwIR(nIs_B{YU}TQqlba&q$U5PJuO1#3&y?Lr;x+9i?+o{5k+K>ky1
z*Dl_fx8hq)y-$jf2Sbu^Y+Xzu-sxsMvgrYd8HB@>Tcj!?5*&*5qJr-L&yH%NPe}1)
zALAoE&-!o1)cOzN2JBG}bX(q8G7;qt#!!&b@%*eHE{GWU#8d?xLft5_J0n+n_2)+TUMuKSHdBQ@X)+qQFEP#Bk|2CIu?Xx?~ynmno=M}Na!K}1#sl7T(
z$4PR)9triTGyV>_-~z}o@T7gsYNEuBjuFlMzh=~lmj5COhKTnlEb>Yd#R0s37P*dbd-TvydRspeY;~q_
z{wCh6vZYak2`cW=t|+M|hUwkNvod_zp`dpI@2P!TZ4v|b!6Pp%eJjt(`#op&Tkpy~
z*IdvR1hab00hLjNtmV7MXb|>jen@2HA);_8+vpt;%O^vpob5Yzh|&v75;`gtVU*PQ
z3#CMaU2LuUIwo~Mg1*Pzd~oW?q3n|BKAzt{@%L8d08pkk*1q$&Pdeg)lghbEo9msX
zArfGBeTqv8hnyLHXvP2U>h!pOY3EUjOQ=oM*tcvm@DEs>X;=gbYB@qwX|)KiE(4vHW*
z2a^pNTXxvVJWYW(u
z80O((Kl6C^QDoQOg?*=xE!65V>@|sZwDU7_Fd-xO4aeLlhFb9xzp)FNaQ%wTF0R4T
zT&}HzpldU){OXTjIH<|+yWA5}`doweE(w{H{Q_&VRWaj2p;PaNyJW>WmlvV`Y;zBN
zpy+`JGkJM=-;cYjeu4TSo~feJJmM!|mI(_2KsvL$qIiFAkTkgW=mOk0gi-FBSlnKK
zP542mD;Tf9FrI~-0qqB4<+X`7T-0opppuDduUquoe~D8D|FsIyZjg+<2F3uJ*wLJ*
zhAuM1ijAHHi~G7W-+`DIg2spA;J6q2U7WG+nU3a-rIBPp3J-vDVz%)lN8if~2cI!x
zg6Kk(V60eWo
zyIIec{`4+0N}Is!65O7p?DNQfH)9j+zb+4;HrqI#3i&}opY)n_XF}_RwQbMAE^Oq2
zck|`N(Me#2V%UW>7sB!IpDh`00RhS6u3ft#5zJden9O6@XsyA3>xB7!QD2XAu`4}o
z>mLGaMaYzJRWHJkte9c9ulZ;uxRID^LUm~t^C3$eh0e))Bu;OJ2t?i)`n1Wva<0Hv
zBaOW_BB4_l)DvK1i~tc-cjtY~59J4^KBOqrZK@HE{&>!r;{6{jK<<7CXXUr?VHt*R
z2Vbv_yf#G?K#0JA?Hai>w}HhZ3sKPARO_bsphBqXzOBCHXy|>ccpWW`s|rVOHCKeS
zWLnjXXVrVYNkGOZIRYh#S5!|
zM{*cY0$reT41`{31}O6CNlQxh`^p?4SF4!l)#;WG)0zzYo+cZc+>FTFd*R!UUPps)
zgK$01Fwvu}A(U@RRNK%AR#pC#Ur`bu8K0ALxJ5Eu_kPu79d50(=^=tP7#to>DgLHr
z8igKji`w?jGLd_??>u?(q{Z&E)hyLku-^N&hEz|EjBHUt
zU_v3nG%001c5-1Ajdb`!r-O_U_76BIGE|D`Hh2rMhu-iI&Zng;%(b$FI8s^ztNRX}
z&q$esd?02s!k_W36}7OBQJOatZ1%A3+`apdZDRNta}|+@bSL`QrQ$g>WBxjiY|upy
zkH5qoiTeHs1ZZ+F36jADyUcF9ZrJfySr{n|9SSYDG_*VpH@>B`Fy}4*y5s!OIlyka
z&ZJIGQX>a}zFH|1`_86cVo5%sS^*(YWQWQXOo<>INa^XP+%m7p9Y{yKif%
zeC|6tqN&6#X2;8TWAt!cHSpx6KFdUFOVsZNw;bp9ehK3Zgg%}qP@N%=ga_Gz{zDu2M0&JsH>KDtmX>aTX$gYa9PwYDdKfQnd$AU6kSsYU5z!wR-JCJytfn-R?Smw
z+5pY?LQ)3K$Gm*4Juxhga8dYyDSyljaR20!a%i>}Rx0@UZWfzxn69UKr2l5#heo2t
zr-RId1zGMYk~c0CJBg$;?=7Yiku?(Tmu;AhjOQ8$<2&NA1nUc|anln)62+xOLq}d$
zl4D|Y)Jas^z-1Dxky7(PO)b^xH?_45EG!S?A!W7$FdwcMof(E^h@Ix;jpRdf6Vxsj
zj%ZYgrEXhCsxU4HUoUp&_WPLHA;^%d;yPb8jawfARa1loNN6UBh&BMxACWUZ$dg80
zSQX@Yllz94;Jw$sMSggE9BYIwc4PJnCK|rCmZry_H
z&v4CXGUI|BYIlmCr@5E4t&f!H(30j{MUl2MVsGD3o!3U-JOJkYAW(^)O>Dy&(2AFv
zTUe;RoI@x=37mzrl`(;t{A~VpZ`Q{8W4e*r$N1)=Ihmm&gfc8(4Y
z7eH?v1l0loMr)q#hs*uOwFUeHk6_kw6myLEG=pgOI2}m=Xuo1NIz#kcHVkLw+sTN2{l)3vIomD`
zWKGJSK?#m1il!ab-}$364@Ro&QQyQrd|=D{cKp
zmh=g*?ki8#MA}j4yUXh359B7kmBp7_8Y(-Sd~Gz-mO;*CM0;{_au5Jsm^cPT)Ah<1u}A2JWA^d#VWL?o3@&*eSXQUP(bI>D+K;w_
zJF`BC?^_kn=ca!sD=P~L*-|JcExj|i`Yw@lxusB1>ab>LubSsF!7B*dyW~CT)xAvA
zRlwaJ*`$eB~F=7lwynFyE9?Bi4O^zwS!o>8nR^cMU!+{g&OZZ2Pd2?WT5-hL9hX)6=l2fIJ?M7=JB@;Cvn*enp6F(}Pod
zA!kx-{u+>EZ*!PQjdF^2SxAjW$Sxds)i9?0t|IS^%$Mloc&TZoKhM6n#V&Px$;!#V
z#^zO=6H5qTsFSG*en~AYEzZc3`usru6QY&F*ZeX)jmq<{`lLrUI`f`dW9fa%&B`P-
zbXM7!P|vxtY9Pe#|3pouh=s2^j2`mrM7$l+Q9Rzv!$Iw9M`t7H^srk9sV*V=1!U*B
z(Z3~(w>a#3*df7#UPD>q_VTU=a+)<10Nn^1*swXE5`;rhe4`~1gx7PXj7MF~8kv}&
z6kNX|z(y1utPw@EJx1(PB~p`*;u<(pvf|_Wz8X8oA%%Vu>TOX(EeIT*OIQU_V+h)z
z(TcgE(v8|RBCUx>9pcZTN2H&}z)5fet*d{9t6u@9x7WqZ_&wxtuq70lg!
zPG&G3GixZDh=?A^J73(ySXuDn;S+N9oVr@kh|l^
zyXBWo*b^lLC|fyvBNSceh6&QA5}CXtyZ5)(!%ISouAbcT8buhy(<&IF0bkE0^T7%i
zPS4?3M6X2bh}2DX;UEX$KN=yTpz#1dEvA9m5-+qlnuoh0lv6~JDG^vGyg=R2+7PqC
zhU9*5SO1ba#8OxrVvV815L!FTmYO37wz&jh3<^Po*)|am8#6(80WtU(Q&j0hS=5EE
zEH>OUMPW3^v$acj5l#$usZjdgG0B8JA3zEfKx<5L?iOO|`Ts))WnP5*4km=)dkI-T
zge%8_;z0zEI^a`DEFdvcvO)AGwTu9_FQ72Ntkm-z;TWuUVDgXK{kuHV(TE0n-YTEs
zwu~k!Qpb;H5KLAF5!p2Wr!FHl<#AU@ly~Nj*pSrczfBX8_uZV;L_{bB6q&-Iw25U3Y`okuoqvEB|!`3uT^O0HBBdJQQ0%SAG$p#Jzx
zNW8r-!q5`OQ$^=svnla~5EV~vDw&IWZf_=p8O0JagsKEu6G@Gkk>uCJ@3M~>RLqFL
zlAnd(3#3XdwrJag*Z=~ozSBsj~j#P8GqYw%}!cj>=>SMvi$cdAWa{v
zQXy(M2zCus1)uW!_wIurJc`&24TM6A%+&{0Kf|86-k&Ja^YAE$kKfB4Xo3PQ%t4fp
zS^l+G-z%`1n24=xh3p<-g3k34%m<_g8fwQCj!A=k)z3DSlb2s5YJbui^CpPZd_@;`
zNo1p%PB)%pK`HC?
z$Bc|bc!+w{?4sFbwPUiYt9$2>A-Kcr98(6m$K7Z6B##l~@^iN8wDhEkS;7jY5z-g(
z>t6(cidr{bZ1>Ehw{M++9SKvigwhdIE^;DqWRXtP8fKR*+1|NAtPHUzu9TX!?d>Oy
zl)L2^jDt8S0TY3yfaS}$?Ky(S0o{~x2*}z9
z1@2;ptFN;Q89?Nv>oQ$)V2qi@V&}bc1HI-RD1mkUBHi~0gn1wF){x$DM7tqy;u>Xh
zcyc@hNsJ5TZ(kz~L+kx>jBSsDg9+eM6#qPq$Ur?jl=ZV#zsw2hE5Q8j-&jt|FrhDR
zt}Yh!DUOW|4-;V71?K}v5Y8;@(#{uB_RU=DduW3CQfd~pzTRWn&HvKy^GO7(W@2v`
znBG`7#X$sW>drl9u$2DAQC3hE;0D-CSN-n#+`|Uq@0s+`&pB
ze*Sk-kN@-ZWiAp
z30HUbqsL`QBo1U3tWPJ|$QGlovt8eDn%v{%-J<@eok-h=zcC3
z_S7NlJOcT!%VLasw?0TYd`K>Yf@U7|qhiD+B4b$eumTs4ooqhJmffhU0?Z!6RDI71dTx3K#
zw=3$FU&wNy($Uf7*{91Ny^)K6lYE$D|AlfAMJwi8xpALN@8V2nA&CpF*86=!_7&9V
za!C-K-Me?M-_2$KAq1J`6UAa%b7Lb;YFQ)9>V5nn^l7^wz~;oWZ|j4Cn^q6`LaNUd
zBgUD#hF>Vh3o5#X(vljZLAtmd$UZW_srJt7`uWrgeHPcx9RX((Tph@qB4WJ8+ojFn
z8gY_k!l4<>v{Cs`i7yX~b7p03b
z`h0szW)Hh2<~r@4-qY*&m(Nj+XI^C{s|hKCU39HjGKmRA^Jfy`#7HE26mwd;<1>;P
zVS!&gstgmI9`A?`Ew#*4dR(31B4e6r*`EGel?U|Ax!^A-Yr~RMiC)*JtlsiW4$!*J
zA**{bg6=FLpk>|}K5DgN66y&OTWs1>eu>l_7N0(py(y5}4s4~I!mCMXQj7@k;QNNI
zMDT^&kJ@36b@jdUcqT4XEI3pK{}ieJDW?FzN1F4j!sd`Zv;N_&N4!5uentmeaq&2A
zaZ$bO^=+VemQ&dgD!Du#jorB)Tn!Fjki2pU?i-|U?%sto8{7Lo6SAaBeQy{IIC(3!
zHJA);N7`o>7guI;AH4ztD3AUA07KMHEYv+=s;L3>Rav*hMrF3-T&*bVDjh#ean963
zVC~iO=+|M+-Md3S>&e{a)R2g6enUe_@kgcN?$&>%E28S1ncTOmk5|qYaf)UdT6lPe
zv8cMy1wDEswy<04RY~c7tAqM?5nws-ZJZOHS@aG$vk!5PLzXvV@;K$N%=_h@o)~Wk
zz=YV-+5EaE^|z^{>=H0{R$?jnRCVy-(}`1j=iI&o#=X(o21=-TJnY}4KFRO8_PVeq
z+qOP96_!54(dMgUI`34H67*7EX6pmCIj^%n|ELL=x9^-E_M?pnQEy>$7+(oD%ZcMX
z03H*uyxgt7eHoL{tLx_+!#aS`Ft;b({zNg5$
zD5Q=GxiRtcH=ms5K7FKjVLAB(Ef1+Nij%Z$7Z1-4#hpm;Jy{adXpxJeXvq5rEAef)
zQI$IHBr0*fl-wsx&F{Ck-u^XR_mELreQ89oWvWq>NRhTa%d^^j?|uBquZ`!NBWQN`
zT(D29Dnpl$#i7?b6org(&$#dLJ319c!#@U&VT&S>?sMPc>INEPBQG*Z$+)Hj=Qlke
zKQbDt4-bnmo*dl$oEKfwaHfIk2?M%ycit=P=`rQJwh4Sm_asOf`{gGxW|13-5aM5*
z(c%Wb(Vw-XP*+4;z7to?jDddDn~Xmayc;LUutjX*korX`GZB(qLa}U&waj>hb5L
z&{+)nA_i2LupD7V_<(TEw%9^8lGtWLMl>Ltw1IbWcX4n;4I%-QUT5GLy%j=+iUfH4
z{~{;$|Ku6{e8Vkvp-~++b0e49;axAN0{BW}EwCIDK`3oy+;Erm!Kt{zyDo0yujqA@
zMq(jo+hb+dYVC8CtG9^HUc)|CRwJ?wX8dv5dsxxNn&Yu7;t5$|1lA9e3uDaYwD!v^
z&?op2*&0b*9H>-vdBjDQZByz8EGuyAhUdk0KD&}^K^DZ_7>0LlJpK<32rM
z5V(;=#Ghfq9j8t%?KxQ`x^=22jdCtS3pu%v&TZrF+f%<+g
z7*Mhp#KS`FoA{3x*hJmC#K^)@cTcy>NR8`=>>lJmDlaYg(DVK|HT8y-4{dR|Z7RjU
zoXYNX=cXFlaC)i
zj!ZHv)kGrk)2I7gnrnm(10LNbN-!~)VChw_rT4!{PDU%&NMmfc>g#D;w2tWmJ+M++
zAHa>YKl$s(CZ7+o(~0|DKzr$UfqX~~}|R*%iK0=hx3P+D{-3IKn0H_(37{!|$thH{^PL
z&dJHawh`I5jur%2sIBINwpwwbD;WQ<;sb5n>t~y#ixccRR&>rU*=d?YX%%#$=ygBw
zoKT*pXLREBxL!=mEULHUqKLsF-Pfc=k}E=$lBXl#OpoKF<@%5xF^+I^t=drU|25i#
zJUoutmF`K0JPUqstm24&WBV%xHxALE=_y*}BZmQB9`54mn)N1+5Q?=P*mnGA4vG!5TMqvVxdgR+)ob62{h|uLHbmo>`dDg_phzbF^v@NGE
zf759k-9*+B(47>DYHgb_XOTa+Mx#Yfz4>p%*s>rFE?D6>wo6fSxYlPjU88HsJ{NRCZVeeyCcD8)8(A!%hx|IahKdL
zd7d@E>#Sm`P`8w0kn!p^PX|VMKCNVx%!`+mLSaA|`z(={O~M~rMl9&J4EDJ60H+@!?
z5+qV9@@gdYC{NZstPGA^!Im*TZYm4$M=k0G*na%*@HRI$CqJ(36;#@${3$eZdRSv3
z^V2OVC{BqcR~C|jFcIp0H-GK|g%yPxf~G(0cO8C2Z|C3etyt%ir`J8c~-+S2rZ+}Q&&jozhsf_A89jYgys
zvmGr-p`&)cCS(=iV$~%6V7tTk-)@}MVvj%xn}xr+lgU1<9OjvIZ0mzhPYJ)hbCeoFh#=U4saa
zAEA-=;pq_+BnXkQLIU9#NflSHez+o(Qsf_Ull(TsG=Lex&;R*2?f>(G*4)waL{F$b
zl~aG{V&M_9_`f2s{hvpX3u7FvQU@p(=(?8-~#5J9>tu(VRd{__4;3bM1L@Vq!2sx|aml
zwxaL^CJ~2w@`oOzKwxjE!NBW9K@FHj%d`DB_>1GQR6iq0^4JnFH-6$Uc%07M%mFit
zCG|NJx(^kLROi3TigXbf&RJ^u0!fl+)q*@b;}N=-ebVIoF0xR0
zclL&qvmWaR7Zn@Ji*$#y=5g+b#X`@YoC+`gIgG{@xgNwV95JRQs4}wewCF}QSo{RY
z^3XDMd|=1O6aOH?N~*
z+RUvW@$dM22ke|rn2QX|EJ6@bx4g8ZTi7QJZxfEp1B@hgJhrwPPToMs8Q(yopmX^e
z8dH#B3`Q=DB@WnHx-QNZbcO4X(`A){hLK@-TYX?QS{%%_nw2tl)>|==tT#lee=L=Z0tf8D0&3%Lg4+07
zQ+(TlKh+b+9XEcI+s~Vk&?gtNl|+)#jukCkZJWV=E2M)F
z?@;3pMcxL0vEZW(4zEksbS>me?-CGv2EbUn&9n^3)HcsdZN3lzu63sKZ!A~@+$euM
zxf?dh@GZs<^P$$&*U(n%bdt+(K0V#SLHEc)2qnq!D|Lx_C&j|9ZEE?Vn02R{5WBPf
z23&HP5Nm%)(@Xbf67nPNj%?tlUi9p352RzMewXN)T-s4DP
z4X#cf>cp%`YUq`#qI&@N>94qtpoXDsis<-&7g!h@ZZfy%Z7XXSHVlB*B6<4sX$zmi
zVox=OkcJ^WuEJvV<$+=)RhF^nit}7rdDtqH!#mn)h*M7WjU2v`GXy8oPRX${KOSh3;0xUw=KXufNL*AQTkf4!E^@*RGI};hvt0$GKm>vAOY=D!q`l
zQMJ$6Slv1IYCEl7Q%`eImJkqusyc@H>Ma<%GbBD+FAC5P=49Vi@e@SK
zSpO2<0w*&{$l6^qKH8j)Z!!?FGz{;a%x*R`S*AH)Y^B_`l0kD(88T5{ve8GVR=rS}
zHX1}b^^_3R7M)bcM9`7<77rsLWN`zw4a4z<3#>!kUo>KI4sxyPIN@;ZwiOt_Vi8q+WdUz5Z8
z#2NPz=iT&0H)N!z*8%pq2i&{&&)QZhJxe~BG`?giJ|n5|)@8$y#Mw7`%+iDRvKeYv;DaH+i4fkcr7jUXxszR#Mf_{ASw*%a81y6^hC%s5xK%sc}&ZJTZ6Q}=qAT|ZnDd=+y{N=85N
zc)?30vOqK{EosBU^a>woaHr)`$jOuEOn=vsQXiwm7UrRvpl9-obyB<$XP$N1
zKKOIvom8jW??T6puy4BSE#Hk;hC&gZ+)`jgq9J*3IlrY7sElm(R@_EC@~%?T@XA-Q
zt5Yg88kaw8XTQsuWE1YoL@|p5SCyx^J=A3Q`lec`b8Zj*G`bx*zA^l9HNoJ$R!!_z
z4~58Wcyu&sik*&BaT0l0kapi7Kr%J7C%b;=edGPGc)azxlj5|;@vNnsv8>#UGVDGs
zF1gmdS%U9dr+HiXSQ*xO=Rj82U$B5dHW@=iaVR@p0lUq4Fv<9YRnvV2k
z&OV@dj&scW#>FKib(e#1lJoE;(nUfXZhy+;5%Sak1yx0EnL+h>FoMToc^pZ?~3ZdVjuZJpUkBwO)xP
zrBv5Ln?QqnVe*_Ul6w7V3EK4*FWdqI-LqGJg!^7@+ufYCzg&E7zf}%2ZXr|!l0(lS
zI)$g(%2Au3>Aq*~^lO<$<*qyF7LbL829gTHgk4124y~uX)%?!6j(RNi;JBXJao}DM
z^}RpBg7z+;{SP^5Uj$c_u5OrMgzun^Ji$Tc3Ie{FK=rw>tT&lXb>w(IG$RwV_uC;6
zPtOwFa}je1(ejxIOedT#+V=ZzrrPW%IrHUG(@(d+qtbnnZNJu;rqxo0#FTuJ%$~h9gj(m%mU`I{3q`m!gY7j;+c`!Y9%vJtM+td
z7K^?XT%TI786nt6)Mls7(!twZRiz?V+6R$T>q6cvGa;-@oRoB@u$|_jWnr=p2PbDn
z>02%Zon1S3KH2Sb-M@L&xQ?veqB|oBsg|ywo+oD=8EqY21?JRJw@FQW?d&|Hk1%i3
z8n5|j2|Rsz`k|0B&y!N41&}7g29rr<(9`0gT=kX_pwVuU}gF?ocn93tmd0rxwifiBmV4`_Qu@@mX=N*bp
z>5~mftUG#M_U^_VhA%tF&q$=R&l7QQ4pf@z{4LM#aYlDJACLws#3YC`)k_Q
z4OUT>U~m$(k()wwh(S&q4wa;)W?v{fj7YeeGEni8{8~Yp6Y?o?Wr?;EZcPtjFp}TL
z$W~8(*KUgNf9JL?PG1l?P+U7!rkUWi`0=19*`V5)o+P=Oh|I+Ly41KIK2_SJHl}Z+
zp7W7XCuNe5pMMl7BST@@TX1A!6BFByh?*PJtvyA!++D#yp`sV*J_k>e{PJNO8*9iy
z8|-PnBc4LY?QL6Bn{g#kjXPXK+aRs^^1~xk(>$A_iz$Vp3*j<_LTq!!2gu{oj}w!%
zY(lE|LXB#-ka~DG1Ye-t=ERvCA73fPSjet>b@PThP^mG!@Y9ets$n@7Xp^2@-}>KG
zX
zQ1fK5SDFp|BeYX*2-m{L)3AXQqn8sc(`ZVp?Kea*|2swWJ5Wi~Zrd@Q>LOrs@uI>t
z=y|}vBJtQTr1pYU@vpqkm2t3~eqhscQ}H&Fb!60cX-8Io3(&6MAf*jO~aZ
zgqP}!?Dh)Vh%bBt+hU)#W+gu!jSXi;tV-HL{7zMVmD1fUN@VYkxGy0d>zZ2h{wHr9
z5&G(Msol0UR#|5IOQO?+qfs)!33>2fCd&|I@rODo@s)RXx3ui_M`gtMyVHqAr|dV)
zq(s;wWq}Na;V0TEe1RlUL1Ulb!kgQ?6%>bvkY{RMpj(DTgz9#Kc*3vQ2cZm}`1!9W
zX#X!9^p}~Jdq(S@90Auo`V6cGtgT*ai51@N-^5TFL9!UOdw$MJKtM%BHOny83uOFV
zugBecY4)HTZ3RVpaH=>e=>|?8^W4-^-d7pG@?8%bG_umcb7|Jbb6wUHN|OTv1FM61
zPI%4=$Zb9`I_EjEW%U9J_wlJL+M{#*HKDT%BzL9A%50pCiccja_iV~WhInT1b6tce
z#y}-6k_0@Z9P~A|8HIa-LRD3ACiSyw$YHL%46zj%8tp(+D0YWL_ru`W6t-5
zhEzab%h^Mm+KUpn0|yS^fM~1TBNT40k?7Bs6SY)oR;CAucLC?bX81Jy
z%A}kz6NykdhvA_t$wJ3{_nU2FbDC$*cFvWSmO`CRe%UZIp=$Ciu!_$a=lA?dBU(N9iUeECQ?I0w?tFXIdKdZ?GS1RrB+1#nRlt
zlQTHg#$X4Yu9&*6AjzhKGEEkuM;9u;CDGrN82vm%y8vx#2Dn3hQr;WZK-hxW@l|MO
zC~EPkG;?G2c6PdYt^?UP<+^jop}TBFpMD+b;>1B`zcF-CbvymuwUdI=;&AC_bKnc+
zm3B`7g-it34LC`m@88?`#)3G3@8vg7a57KYV-COG7N;-J^t#wN8c=WSY65=AZ3T6W
z6wek((Ap+Ej2nQLabOb26%!e}5PA8sNiVpWhCw?wKL?T5?|g5R9y2Umne|vMl6zWO
zJQxrhpKXf6u_D?f=nEdV-TBJG%zQroGfwSMekM~P?Aje9#mVfW2HTcDXyfMB`LjKK
zl0BXm2%><1q|)6XsWb?Z3Q9?Lcc&moDBUR~Al)TMr-YQ0bV^G|e0$FM
z@tyaqbzDmsoM)cc_ug0C6RP||1_$dQ77`K?j-0HdD*W7szrmR3@b5Ak#tZmy%TZiT
z9TWa|VH&-M-$|ULG@aCJO`Kfy9gLAoZEUTLSse`>jE!v^&1{|aP+LXeAXdad5)Q`t
zPUf~YRO;r|#z^XB&Q#o-REqizR9qZfTvVJ~f;@bJ@Zy;wm6W8qK&aRR5)u`Xoa8fg
zx76Jci#JvArs|)
zDOEvq!9tUJWws$6<}LR3;^W^?p8b?6$wo!|8i`l-RQcUKln0n!IK<%%LTOA*s)BY*
zWb9ini66c7&%~m>#e%19N%
z*9@A)~DE`y3IFNnkwp;?wuD(QoMOL*6reCzJR-2Ggszw
zgD1i%gF*Zba`q^i37b
z;UBw>Rch&h>7JwkzB?5eL#dlLt2#N_Y~;6Te6U2(Zxr;r4zD?6sLnMFc|SMt?d
zdr=SZ`MCSqqwfma?kl0{EnTzYCMHF-bJtLv?2*c7ZgB*C-JQ{&7>wk+sm<7Ey_voq
zsaN#kv?the+EXB{bg9~2{+36oX7q3?d}OO3B%Bis;9rZA$NBOkKhxkJO6FbxHF}ls5nVl@i9K>aYDj<%jH4OR}(z?
zQ~7jAMj@?koac=EvKC^gjCy?H@|Y%je>%gXhD{do4$ycNBJb~+3&B
z%EQdDr@@{A(wPPcD_b_OmHq-x6z#bc_guH$JK_2f^IXr0XrX%%m-
z(qnI0OGX2UWJMG`Wh*Z!iL{PmxSxMcw-%Hi^HEBmVbl_=J=WsgVBf5N5-F&OD@_WcPc|HHk?&72A9yc
zr#&Wm)K)L%>)d(cBFD9!e0qCnl9VS#d7NU#o=WY(Y
zs}?=(qg9OthB_%b#Vi#S6$R5Z_|}#tc!Wvc#+K*L&(F=06ZN&J6UN88SJd$Pk*~~B
z-6Q?V0{HBQs;L5Qz9_Z23T1vGecm%Irc&vZa2;H4WNiE?E>7t~LQ>#?eerK}dV#NqN+2UZDjdF(cRnh@Npe{V;N#B?lzmjB6Mov+|I
zp9s32u(~yxN36epzHfW4B+VhaAXiDmI`n-=;Yy6mRu0c0CFS?}U*-8V>N(~Xg6B_d
zE;(QMG^SG%Ey=zZlq%A-?m_FnImfi9@=b6}*;)DMOB}VZ8+z!5V?Rk>yoFX=@b^@nJ?yM
z3Vv3vSq?K+d2Z$X+CS29D*ML;qdhshT|j
zQ`K$zp&Q%?D~yqs_&p^Ob2AoZJdQ@+i6%A(MEt~Yt{(9IMq3XnBz4WIyq3njv=68&
z>>^HZAlj(f3zCXh)^5TZ3hhyL5E@>a3%1BCP`dHgdCj#zw17#@*2Tm@IT87Wo#4}=
zRAD^IkWzDJwP!;W=a(qy`oBF(7wLMp`>lJ-iY5wjBHa`Ij$iO5Pwl)?*iij9-DURX
z&g2s9%s^uAv3?1*Mg6hl!-6(L_nhP^@YW##nS`I?zpRc>FBiGS?WxJU_j`0^=S)Vz}sSIwm
z=W`JYBT=f~zkSbo%<)*A6*z3O7FULHy^4;I<8i8#`|A`OM8_E&QXfhOl1%%Ee5fTC
zpL2NdeGqGTq|2g$dZIgF@$i6$?M`La=N9xQg>p2T)10nV?)9z0j3>lL!Gm2ghBPTk
zET0oh6lVnMxc{{i#9whdXpG^zQ^nP#%$*<;`Y9-gfwmU@dZQ<~Z1)T&Que!X6`
zJDBp{<*ASk3cyHj6$iXE8G*N9H8RoiwH~C2zTQ5>}gyW;;&C^vbyuB#6>?wLaeD^~C?4RgiiH8B>MQbVf
zfeAW7+BC5IABu+|ZnZz5((C*%3|B%K<>#I$&9nN~EnZKUUlo588%`H#M9H~F5K`ce
z)_GXvrctc<$YM$UJzm)&N%{lZN8%lEcR@N~(T3LIJzDCM%1sL;q@Wo3^0EjM3u~!2
zhMtf-@~N`EnWg1eqpPjSP-YEC4(*A|I{V58B=}~
zy(+oCM2MM=_;B%?YI)ic)roJ4DSRaxc((%NLu+dI_-$rCiWMPb-cmNBe^b-CdrZJn
zW$&Jzp3DLhDIAb+oYB$ID>ux>l$um{v55OaNW04br_Isa@!NL;*4I;PTlDuA+e$A5
z9z1w3kj%RsN4f4y1&1UiCyzF|?uFqlM`Y`@`VbQnHytiJ?asuFLU(s}Ng0`#=xCI01u8jbtvCN#!*I5qxGkflCMC&vc?qwrtubw46S1xQvTc1S
zS6Nm@#m5(4TwFX!Vi4ES*5(g4$EDwX%VMH<#wB(vPx1T0LTmPSw@34C$f%Oi(qAw&
z)zo65#I6%na-_40ikS0LQc@guXL!$#GM@zsIByZy+uM@~I$^4*jT!XY&Nn@glaq7W
zo7Z{4&C5&6$QT;Ws)fQ~(1H0PU0BY^i3cthKbG~@|EZZ7gM9A&T-DH!5R7We$@rt6
zp|V)`m<@PQJ6Vqki~2Oh!p5iq~=?
zQ=RGd-MglLcc#Y+R4za0ys5QOR97d!r&D0yroh3$(bm=$@VyrP{rfkIUW@jsr}gOP
z+l?-}kD+Woekcdyl7FeVnXWWFUx`stk4%e=l~h%|-yhG4ij_Q5X*#^t7st#HCqGgA
zIxsz5H);LyOW^~Q7Kc?V=!=3v!c?15-DX)ixkqelFLGNA_4V6eR**LqTE(^}N|t|Q
zNhl<7y<1r^!le+Fg$GDyyqPG`g7Xm~yKYZJ)YSR~t`P7`u6T8rs@MiD$jN
zx;SAVK%?lNn3zZvbjI@Z^lZ7Ctv+tHZ&P6uj)-9LqoW`!~;ixyzwR3T?LBP$oM&
z+iidGS<Zvxt7njib{!j%<%NQPY5eb2D43v(+5)c?;<%nJHw(t+0wmc
zE8g6xwOz>by}3T#ThL2y*jQR>?+C>||I@f<=i-tF<7>6hqH~S=L1=yQS+(6to!2>+
zpr9ZzDXHVtg)=O;fXfbXeSQ5MGJ%g0A-D$)Sl3~sKkyiVs_k#3=*
z-zOs*h-Fl>bM?J2HeB4>Q(9>8US)5BQFN%>IT{u-h3Z=Us=@JNZ@rBE_z^EWA|f<2
z6dCKy?R=#S^h}tFa8iC;4Gj$^XXhjy^ZOqjutwXOh=??sTI2-<-3kZ{Tph-Kz_JL9
z$?~QO)32xXgUPP}u3A!3Quhc5B%u~h?3X0V*DnPN_;{i6d})Ht*(QU@Q!_ITD?RtTyu64x
z-Xc|7{LF?b3%egm+K8tlCEa`YkSXC)LV}E@<`lR0rugO6)#i^Z)RV2B5?WfMmX?OWFd!fxeLIzvg=J&5zS3)8
zYDzPi$NVwn*up}_-`!t^W@hh`lOLuDxzf?ld>(M{Jl^p4_eYkAqCle(6in_kke&czm{V9-=pfe7-3@)8c7HEqQmVSZKSS7ETvL-6Zene|
z+4FN=UZ3JBV4Q)eX~?^GXjxfVMy95yXuN|*16(4mf5`4qiUPU?!##dVO6mm|@eiPH
z00eBkxo+$eg}dyGk4s7lZSZK*P@78doIn5lzN!^e6L;4(y7T3U}E
zKmPIa=juQbw{iSGc+Tviq9U#=3M?NV#E|q1vtLJqzEd2mfK(<^DMOUybwyATw`qL6
z_wQ3)^HG}n_wT3o_V@QQmuKjZb$YMAE7xd$-ThPI8xsAC)Nk|i6o8w!WCB$Almd2s
z_o$_np(KC*%rWQ7$jFQ}d%C*p&EpW&)Ps!#t*43r>ce-b~@gqyvZQlD+Jcw}TAj9-=6hGyW`4$0nLa9D)>`{JY_H=H8RCZzmv(n?2*zj8(b1bu=RMEP
z&ymYq_jDu4g`{DSz6ayP^dIi;e;XT%iH#+IR{t?RE~%xJa`o>tfy7l_9t-0xMaSS^
z#O0;e=;&yl)mId&sWN}S#-+FsP=@gU8JWed0%)uEi
zPPY4F$gzMbq_ULDOou7BxVc{*e$}pTe}9i!p1|(yTdI5a?iK5`rc?TyA$xm!uMKAm
z1FXs_D!!clJ6rEqS6~18&!3?}wS3IGciB1fLhe#l7*$P(jy@I?e29vQ3gvp@
zxONAIPP@e`2`W=z(21q0s%rMD#yWJ8_3>jA2?+_&t7En7oSc#IahRMC0B%m-Yp?S}
z$F+e+j~{1Gg`g7%kApVo1&PrUj6*6fJl~o-gDF5q7YuCvXQ8$9up=rWVinMi$Lt4E
zt}0{xzw>iW!>&7PLuvh{8Q#*8lD7bR;!>KCk&!PCx+&`#8v0No!^2lbbDx`8Slp+e
zU`ue``0)tf6)xH~Kc5cI;s9dJ;Wjar^iv`hO~1xQA>axc8k*QCbyk{3kNoe7o*}uq
zx&n(!n3&LwjEq>#)~VP;-kh&zoLyWP7#e>6{XJyW8yKq|D2m${my|C&hF(dOS{DiU
zRrKEucihNPwrq3K+|6C-dMfMZaJR&BfhxpQ|U`PB6E0rU`;*^kWohA4?*zM=?Z
z7#X<-@C_9_yZ*QLGID!utqbH3lx_uvo;H$EyTK_G^v&|(qF-Jf9iTyHcQ*#yC!D-}
zQqMO6wCwfubzNOu?72vjMTbK>Q_p9)m_#n)u)g6}?0vAT=F=6qeFZzPtY`2nt13r*
zPmRM1vl#@b@^zi+nktm1TnPv`tfm0^xXwTgm`zvEs^z~}U2F?v_e#5S=MKzf$G|{%
zxnVaKh`M?fXakF%Uphf;GYy_9lNf%H4YPRF+>{d-5SC*(`4xCVwbn-G`tnE#xIJgo
z)LR#{r)IMUFOaC$_4ztT%s%(iy@h;`2XTFbxm;c9p9p>yKc=J08|BUNJlT3V@(A-*
zTzod_yKHm_T8X82i*yCVK!>a2z?Bezs{tIZT#86yc_EMOEI3v)<1BmSp2TOJ-1Ie%Z`m7`qHIT!4H>Gd!28S+*(q`@wnik{
znq*HLf?$zb{|Z2(F{j|hO3BJ%>iL|nGDmKlZ_GCf!TiwB(%vH?l7TlCd~ZYsQ}}(&
zyX)MK^7L|HmKIUKG-_(i;Lgj=G@oQ
zTvr?~_%Dygl-M7Q_I)rD7sDudQ@zyB-fFZvQ>~CLoCKa|d40Xxb-|lnsn}OntzKNd
zf1%R!?)GG9+-bM^qyYhD=jPI`^IFfu?*6L9$H$idQT;rDjrG*I
z+3q)rzP|qD#dhh`uU~4Vx+3$Qdm>L-dGMd|R*x!Pzbbh{t0x2?1l1)P$`Dfmo&fnR
zAS6^2Ug_rUevgo_6To`9+LDO%O%=nbyZS9A56}t1#+L|;dp)>FR
zi9F`fVbg6#AJfw#Y2+NHjgye#jSn>lbaZr}(-G@=d3FG&<2D^4i^G`uGuN0T?9K(6
zdt-A`#E@Tmn&C^F{B+P)g~xm#H$Y}wUY#z`cI7HF$SNqTj2Ego%mkoezkmP!Bdax_
zemA(Tvhs3$a2yJ0g4N@fz<|BRL{iZ-Uv-=1!KWxQ5b#*f5O8yI10QsNiici)R;X@Z
zZr%%41FEKw%o7UGflywDhlc|8OSb@&jiKpM1?s?A8T!YWctrWv3jt|=WGn-XJtKuj!Xg?1n|6thL)wwkjQKKKv!26v^hD$#%V}U
z&|3q8c4&=6VfTu#-i(%(7MA1uD3vp!hY#h!41$90>g&TIB_)j{dxDZVy7Xgow0&%>
zQgtp+Nlm@dfX#`7fgp_N4Vv1x`d2*gX6_}9ug`PsuP@!F;|u}9Z((4>q^2s^*>Ok&
z-vJTilL=I?^Q-nQgV_tvUxlfN+1zWr@hRlDfE>UGBYJ87@X%l|nU}|Qo{XKH-OJm%
zf0y)Sl`RD&IFLPyPV7pc~^{HnaP*%^od|*1I3k?X~=4gU@sds>DjZ&T}wcO^^n*9U2;fWr@v_
z2>;;w%(N%1mY
zd^5H?-cSJ{m0pO`Ck~xpV$uZ@T5rD`e5qlEt@g^t9AW0h$JOZ+68%1X`ZRlbd~%Ze
zED&8GLo^LK#eTJqF!L?4+vHcBmlxx&UcKt*=!j+7+1S|N(p!vAOzZ&&ND{Dr?Be3G
zN`Vv>8A->*6%AMic+d%N`3HnZtKfgj_Kl(xd&PO~Nm6C~D;@%gGT$2?kXP#S11hgo
zHc>VB+SK_#)FNaQ@N|~@(Hc-KNQ}Vpa!wGzv=8IsjF~iEU8jq9f=cOZYx|v4addbH
zv5>*mcp;gnS7Lbh9VFnb{iCDrVEloIr%TPDLjiM^fB$ZS$=e(+#HW@HXQ-^vuC^f5
zsrtvlKlBI4Ve*!$dzP0rrpfs_FN7W@BV<@Py
z#jUNd+FE|kzdOHorYm!kky;9R_2i%`2;vOBL-JTmAk1NNl$OtS{<8EAfi7S6?WBy+yDO~Aga7es3&iNZnico?x62Qw$zCc;ijHnC
z)BmnnV?~m}Z%ao@`wj-$ac8PrH44zlcfXfDV-cJ&G;VKC&(lKnzKJj17spwkNzBa5
z?2gtHO$HJlxgw{pw;UcEJmTQ^SlW7>3|C1oM>%^;=Sy2|{fiF_?dv8tP7e={&$+qx
z5Nb&SU?k!2*KxmO=O=1#vZGHNgs%t)Fy)txlP?K#L4tx9PZ#yRX!@9cT9m!-EKFtb
z_8H-dc}y$f_Fyg(d{S!{d{WBF%H(Nv-M-w`@wbQl(vE(P+WW+yvIU!x`@
zKr2FqqSF5TI|48O1=r?W7vhe@F83v-SM9+j@60u77~cTrLE|F(L1!Y;p_yvS)F+PU
zKtk?A7IJy^fB*hX74eKeJ97hH%fZWwrmi@Rb#Q!41F0J{v7pP2EJRZx9>*V#N=i!P
z6cj$|HhT=G=BKAqSWXlJCxA2_f(Cv$fj(KHm4Jr*pdeO{%$Q^(&UncbBrfEop;1xm
zpgn@6o4u)DvPVob;QWR2jvpWMNl{TMn*w7
zIn=Prb%&Jij;*aNP_wkWd{|!%sM})g`umECik$d_nMg=jOo;CS!2TGpo)ZLQ@C=!G
zd0jyBb-p*EK(bX<)6o$6IR5)<4HWY@rHfU&?&JQx9l#+}taEOToS&bcO}9z*Xl?L$
z3C;s{T?GJZWsbNPh3cbVDa9oukT<5vsZ~@|z|=l97JDb&27VPhQ2X>W2}l-%AsQJ`
zu}3|Jfm}sH=C_?^Ihql%meepCt%d1oIbS1%IBFlFG{9sUdit?aJuyD3DZhjSA}}mG
z7US=soe&bx-Q7T?xTNGZ#N6NfQ4wTuezd;4v=jgd4ibD8p%w=Q6htpJs3*SafU?qY
zyF9Z`DhK$7sD)n03ilz;dsv*c!4w(LCZHZzPQ1WNXx7@0`}p{PE6B{xr}uT0in#7`
z;BhBWw?syTaH1c7LPA^|Bt;fvsl&x5BJPJYz-fqTW@b{cu(FO!PSOK%AfuwcH8Sb|
z`v{ligr3cVTew3ZtjYHR6)-qjaT#v@6Afa#AzP?(+EgvHr=zFu|0mvtnhU2c)+|Ty
zdyyt6GUoa&AR!l=ayqnQulK-z##z^!dkIp&&&JdZsi|b{bLD}7s2ZiZ#-PBEg5JI3
zv|D_N5RWxh(*ZFt_~7K?)A++I8HE*%j6Qq4hVvLAq^j2&D7q~OXXcO
z?bzaC7Kq%z`gqZ?LtKD}@a_;lRaVA>RBaJlm9WP#h+=GrjOsj2zBDyAGm4$$!-tgq~)D#E{@_|F}Y$NrKrY?VG&j(x}sE76_x`X#FC@3>4
z%m33SmHLH4BwEsuXVY}vCMG7AhyCoUq7!2v$wxAup`IT>n$-n=X_5ns;n@v-_S
zcE-g!JvV#UAue>IBIzMbNI*ar
zBF4P4g{QcV6j6)W{~b>aTb*)EdL|f4YDCLrKwbx7;e`fUR8mrsgX1_vaFAh?Tl{1K
zB{uT&XWX2iyaD9$hy)43q=bIgVwSOIU~wU7grQy87|CJLuES$zFZDG(K7HKuDNxhg
z+%5?$9LW(ZMYm`X#?py2ELPy!nu7C|jYETaXd{|0m_1@w;z
zsC_V@T)+nZp!iM`Z_)(<;`gL#=ziU@8F
zsFt_*`*+ro&fjclU-ow31k~c!mBBFYF&P<35GTTFd%+r7%{9E_^Y_%H5O(uxZ54xP
z`7unQ=jk70w83dGaFzDU(yvN&2Z40J*wey>2z&W!Dh9
z#4gkA+qa=85P2&=zV!cNqu9Dk5jgSt_n7s)`H&4?o*zwDnd3v=$?ip-&X>*H|9Njc
z!`B4V5~vn@3JTq&6oS4$)j~-L2~<;4Q`p1O>)m#f7s`0ZYr)}uXjFe=X=B57mm=Qi
zc(TFS62dKFJ}b?73W3$t2*NUezSpl`E2Qw@z*YrtVK-zy3^zMR*$CetBn0<0^(cRJ
zbrrGmH9I$F@9LTlYcbp89s`2nKH4lae`;Eq`*umKtdbJFfIuQ7<%Es9Kvb{G4bVVU
zUqZG4nGBZUVt6O*J?d37?&03j<=u%PoMz
zDg-3R@H)H=PViI80{f^K*z%5_KM7$bfSaTs50cM~hQ_%ra%7S>UsnTD3}USvS|8RO
zky9aJji?nZvsm5a`2)EdqYdp=3k}YcOdt}pA)YjJ*23-&XdL5QhcXJ+Dn+%Yn
z1A;?Pw}%@e)Sx2lTwO~y%5+IT5V5oUwT@vIR~f|8GxN_3%UZ%_wSa9;3l;Us|N5$%
z#D9I&tpKwQwk8RQ=Eob7!Hx-B2BwR+A2L}fgA|DrjKF(8pg%2BY@1vp+`!Epo
zq5xkb!jgD)J=||ZdR}c%heU2uTtJm2*x_7-pv-E%sb2dWQdbBNxP30qG;FA;&oJzB
zi*7G>M`@IIg92m*Pl}FZF?q1uT?yFZ{xSw)50DFpj}CbGL1O@DfD=X~<+t%_rq_tL
zr?_F!J~lrArH&rlhNUdjY2*U|>fi(36M~=aZ{ITEgW&xlVPm&Q;RwIUBgn7l5w%QY
z$M|?GYsyq