From 7467e75bda34246c91c4e4989b1c32a81314d53c Mon Sep 17 00:00:00 2001
From: Soren Stoutner
Date: Mon, 7 Mar 2022 13:26:58 -0700
Subject: [PATCH] Add a higher level warning for antiquated protocols.
https://redmine.stoutner.com/issues/795
---
app/src/main/assets/css/theme.css | 2 +-
app/src/main/assets/de/licenses.html | 20 ++-
.../en/explanations/antiquated_network.html | 35 ++++++
app/src/main/assets/en/licenses.html | 17 ++-
app/src/main/assets/es/licenses.html | 19 ++-
app/src/main/assets/fr/licenses.html | 19 ++-
.../images/{not_secure.svg => antiquated.svg} | 2 +-
app/src/main/assets/images/antiquated_3g.svg | 33 +++++
.../assets/images/antiquated_notification.svg | 31 +++++
app/src/main/assets/images/insecure.svg | 45 +++++++
.../assets/images/insecure_notification.svg | 16 +--
.../images/{privacy_cell.svg => secure.svg} | 2 +-
.../assets/images/secure_notification.svg | 2 +-
.../images/settings_input_antenna_rounded.svg | 30 +++++
app/src/main/assets/it/licenses.html | 19 ++-
app/src/main/assets/ru/licenses.html | 17 ++-
.../activities/PrivacyCellActivity.kt | 53 ++++++--
.../privacycell/dialogs/WebViewDialog.kt | 116 ++++++++++--------
.../privacycell/fragments/SettingsFragment.kt | 110 ++++++++++++-----
.../services/RealtimeMonitoringService.kt | 67 ++++++++--
.../{not_secure.xml => antiquated.xml} | 9 +-
.../res/drawable/antiquated_3g_disabled.xml | 31 +++++
.../res/drawable/antiquated_3g_enabled.xml | 31 +++++
.../antiquated_notification_disabled.xml | 31 +++++
...ml => antiquated_notification_enabled.xml} | 2 +-
.../antiquated_notification_ghosted.xml | 31 +++++
app/src/main/res/drawable/insecure.xml | 42 +++++++
.../insecure_notification_disabled.xml | 31 +++++
.../insecure_notification_enabled.xml | 31 +++++
.../insecure_notification_ghosted.xml | 31 +++++
.../drawable/realtime_monitoring_enabled.xml | 31 -----
.../{secure_5g_nr_sa.xml => secure.xml} | 12 +-
...d.xml => secure_notification_disabled.xml} | 0
...on.xml => secure_notification_enabled.xml} | 2 +-
...ed.xml => secure_notification_ghosted.xml} | 0
.../res/layout/privacy_cell_bottom_appbar.xml | 2 +-
.../res/layout/privacy_cell_top_appbar.xml | 2 +-
app/src/main/res/values-de/strings.xml | 15 ++-
app/src/main/res/values-es/strings.xml | 13 +-
app/src/main/res/values-fr/strings.xml | 13 +-
app/src/main/res/values-it/strings.xml | 13 +-
app/src/main/res/values-night/colors.xml | 9 ++
app/src/main/res/values-ru/strings.xml | 11 +-
app/src/main/res/values/colors.xml | 21 ++++
app/src/main/res/values/strings.xml | 16 ++-
app/src/main/res/xml/preferences.xml | 10 ++
build.gradle | 2 +-
.../android/en-US/full_description.txt | 4 +-
.../phoneScreenshots/01-SecureNetwork-en.png | Bin 0 -> 136929 bytes
.../phoneScreenshots/01-Standalone5G-en.png | Bin 131905 -> 0 bytes
.../images/phoneScreenshots/02-Danger-en.png | Bin 153709 -> 0 bytes
.../02-InsecureNetwork-en.png | Bin 0 -> 157233 bytes
.../03-AntiquatedNetwork-en.png | Bin 0 -> 163387 bytes
.../phoneScreenshots/03-Stingrays-en.png | Bin 379574 -> 0 bytes
.../phoneScreenshots/04-NavigationMenu-en.png | Bin 115859 -> 119463 bytes
.../phoneScreenshots/05-DarkTheme-en.png | Bin 151773 -> 157588 bytes
56 files changed, 887 insertions(+), 214 deletions(-)
create mode 100644 app/src/main/assets/en/explanations/antiquated_network.html
rename app/src/main/assets/images/{not_secure.svg => antiquated.svg} (94%)
create mode 100644 app/src/main/assets/images/antiquated_3g.svg
create mode 100644 app/src/main/assets/images/antiquated_notification.svg
create mode 100644 app/src/main/assets/images/insecure.svg
rename app/src/main/assets/images/{privacy_cell.svg => secure.svg} (95%)
create mode 100644 app/src/main/assets/images/settings_input_antenna_rounded.svg
rename app/src/main/res/drawable/{not_secure.xml => antiquated.xml} (91%)
create mode 100644 app/src/main/res/drawable/antiquated_3g_disabled.xml
create mode 100644 app/src/main/res/drawable/antiquated_3g_enabled.xml
create mode 100644 app/src/main/res/drawable/antiquated_notification_disabled.xml
rename app/src/main/res/drawable/{insecure_notification.xml => antiquated_notification_enabled.xml} (97%)
create mode 100644 app/src/main/res/drawable/antiquated_notification_ghosted.xml
create mode 100644 app/src/main/res/drawable/insecure.xml
create mode 100644 app/src/main/res/drawable/insecure_notification_disabled.xml
create mode 100644 app/src/main/res/drawable/insecure_notification_enabled.xml
create mode 100644 app/src/main/res/drawable/insecure_notification_ghosted.xml
delete mode 100644 app/src/main/res/drawable/realtime_monitoring_enabled.xml
rename app/src/main/res/drawable/{secure_5g_nr_sa.xml => secure.xml} (91%)
rename app/src/main/res/drawable/{realtime_monitoring_disabled.xml => secure_notification_disabled.xml} (100%)
rename app/src/main/res/drawable/{secure_notification.xml => secure_notification_enabled.xml} (97%)
rename app/src/main/res/drawable/{realtime_monitoring_ghosted.xml => secure_notification_ghosted.xml} (100%)
create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/01-SecureNetwork-en.png
delete mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/01-Standalone5G-en.png
delete mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/02-Danger-en.png
create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/02-InsecureNetwork-en.png
create mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/03-AntiquatedNetwork-en.png
delete mode 100644 fastlane/metadata/android/en-US/images/phoneScreenshots/03-Stingrays-en.png
diff --git a/app/src/main/assets/css/theme.css b/app/src/main/assets/css/theme.css
index a78eb75..4ba9d88 100644
--- a/app/src/main/assets/css/theme.css
+++ b/app/src/main/assets/css/theme.css
@@ -34,7 +34,7 @@ a {
@media (prefers-color-scheme: dark) {
a {
- color: #5785C5; /* Violet 700 */
+ color: #8AB4F8; /* Violet 500 */
}
}
diff --git a/app/src/main/assets/de/licenses.html b/app/src/main/assets/de/licenses.html
index fff3db3..bb23459 100644
--- a/app/src/main/assets/de/licenses.html
+++ b/app/src/main/assets/de/licenses.html
@@ -1,7 +1,7 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ You are connected to a cell phone network using antiquated protocols, which have multiple known vulnerabilities.
+
+ 2G networks have been decommissioned in most of the world .
+ 3G networks are currently being decommissioned. Unless you know that the carrier in your area is running antiquated protocols, you should consider your device under active attack.
+
+
\ No newline at end of file
diff --git a/app/src/main/assets/en/licenses.html b/app/src/main/assets/en/licenses.html
index 9ab6459..a7f1743 100644
--- a/app/src/main/assets/en/licenses.html
+++ b/app/src/main/assets/en/licenses.html
@@ -41,14 +41,22 @@
which are released under the Apache License 2.0 . The full text of the license is below.
Icons
- are derived from security
and 5g
,
+
are derived from security
and 5g
,
which are part of the Android Material icon set and are released under the Apache License 2.0 .
- The full text of the license is below. Modifications copyright © 2016,2021 Soren Stoutner .
+ The full text of the license is below. Modifications copyright © 2016, 2021-2022 Soren Stoutner .
The resulting images are released under the GPLv3+ license .
- are derived from security
and do_not_disturb
,
+
are derived from security
and warning_amber_rounded
,
which are part of the Android Material icon set and are released under the Apache License 2.0 .
- Modifications copyright © 2016,2021 Soren Stoutner .
+ Modifications copyright © 2016, 2022 Soren Stoutner .
The resulting images are released under the GPLv3+ license .
+ are derived from security
and do_not_disturb
,
+ which are part of the Android Material icon set and are released under the Apache License 2.0 .
+ Modifications copyright © 2016, 2021-2022 Soren Stoutner .
+ The resulting images are released under the GPLv3+ license .
+ is derived from security
and 3g_mobiledata_rounded
,
+ which are part of the Android Material icon set and are released under the Apache License 2.0 .
+ Modifications copyright © 2016, 2022 Soren Stoutner .
+ The resulting image is released under the GPLv3+ license .
The following icons come from the Android Material icon set ,
which is released under the Apache License 2.0 .
They are unchanged except for layout information like color and size. Some of them have been renamed to match their use in the code. The original icons and names are shown below.
@@ -67,6 +75,7 @@
phone_android_outlined.
policy_filled.
save_outlined.
+ settings_input_antenna_rounded.
settings_rounded.
text_snippet_outlined.
diff --git a/app/src/main/assets/es/licenses.html b/app/src/main/assets/es/licenses.html
index fbf47ee..dcd9838 100644
--- a/app/src/main/assets/es/licenses.html
+++ b/app/src/main/assets/es/licenses.html
@@ -1,7 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/assets/images/antiquated_notification.svg b/app/src/main/assets/images/antiquated_notification.svg
new file mode 100644
index 0000000..074e9e0
--- /dev/null
+++ b/app/src/main/assets/images/antiquated_notification.svg
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
diff --git a/app/src/main/assets/images/insecure.svg b/app/src/main/assets/images/insecure.svg
new file mode 100644
index 0000000..d4820a2
--- /dev/null
+++ b/app/src/main/assets/images/insecure.svg
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/assets/images/insecure_notification.svg b/app/src/main/assets/images/insecure_notification.svg
index 3c62866..4408b7b 100644
--- a/app/src/main/assets/images/insecure_notification.svg
+++ b/app/src/main/assets/images/insecure_notification.svg
@@ -1,9 +1,9 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/assets/it/licenses.html b/app/src/main/assets/it/licenses.html
index 2792a83..3894559 100644
--- a/app/src/main/assets/it/licenses.html
+++ b/app/src/main/assets/it/licenses.html
@@ -1,7 +1,7 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/antiquated_3g_disabled.xml b/app/src/main/res/drawable/antiquated_3g_disabled.xml
new file mode 100644
index 0000000..8750d1c
--- /dev/null
+++ b/app/src/main/res/drawable/antiquated_3g_disabled.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/antiquated_3g_enabled.xml b/app/src/main/res/drawable/antiquated_3g_enabled.xml
new file mode 100644
index 0000000..1d1e63a
--- /dev/null
+++ b/app/src/main/res/drawable/antiquated_3g_enabled.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/antiquated_notification_disabled.xml b/app/src/main/res/drawable/antiquated_notification_disabled.xml
new file mode 100644
index 0000000..3d58136
--- /dev/null
+++ b/app/src/main/res/drawable/antiquated_notification_disabled.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/insecure_notification.xml b/app/src/main/res/drawable/antiquated_notification_enabled.xml
similarity index 97%
rename from app/src/main/res/drawable/insecure_notification.xml
rename to app/src/main/res/drawable/antiquated_notification_enabled.xml
index 4253f2f..b92bd73 100644
--- a/app/src/main/res/drawable/insecure_notification.xml
+++ b/app/src/main/res/drawable/antiquated_notification_enabled.xml
@@ -26,6 +26,6 @@
android:viewportWidth="256" >
\ No newline at end of file
diff --git a/app/src/main/res/drawable/antiquated_notification_ghosted.xml b/app/src/main/res/drawable/antiquated_notification_ghosted.xml
new file mode 100644
index 0000000..5f7496a
--- /dev/null
+++ b/app/src/main/res/drawable/antiquated_notification_ghosted.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/insecure.xml b/app/src/main/res/drawable/insecure.xml
new file mode 100644
index 0000000..ce16bf4
--- /dev/null
+++ b/app/src/main/res/drawable/insecure.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/insecure_notification_disabled.xml b/app/src/main/res/drawable/insecure_notification_disabled.xml
new file mode 100644
index 0000000..0bd2267
--- /dev/null
+++ b/app/src/main/res/drawable/insecure_notification_disabled.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/insecure_notification_enabled.xml b/app/src/main/res/drawable/insecure_notification_enabled.xml
new file mode 100644
index 0000000..550868f
--- /dev/null
+++ b/app/src/main/res/drawable/insecure_notification_enabled.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/insecure_notification_ghosted.xml b/app/src/main/res/drawable/insecure_notification_ghosted.xml
new file mode 100644
index 0000000..b2c70e3
--- /dev/null
+++ b/app/src/main/res/drawable/insecure_notification_ghosted.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/realtime_monitoring_enabled.xml b/app/src/main/res/drawable/realtime_monitoring_enabled.xml
deleted file mode 100644
index 367ef0d..0000000
--- a/app/src/main/res/drawable/realtime_monitoring_enabled.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/drawable/secure_5g_nr_sa.xml b/app/src/main/res/drawable/secure.xml
similarity index 91%
rename from app/src/main/res/drawable/secure_5g_nr_sa.xml
rename to app/src/main/res/drawable/secure.xml
index 9775270..14972a5 100644
--- a/app/src/main/res/drawable/secure_5g_nr_sa.xml
+++ b/app/src/main/res/drawable/secure.xml
@@ -24,19 +24,23 @@
android:viewportHeight="256"
android:viewportWidth="256" >
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/drawable/realtime_monitoring_disabled.xml b/app/src/main/res/drawable/secure_notification_disabled.xml
similarity index 100%
rename from app/src/main/res/drawable/realtime_monitoring_disabled.xml
rename to app/src/main/res/drawable/secure_notification_disabled.xml
diff --git a/app/src/main/res/drawable/secure_notification.xml b/app/src/main/res/drawable/secure_notification_enabled.xml
similarity index 97%
rename from app/src/main/res/drawable/secure_notification.xml
rename to app/src/main/res/drawable/secure_notification_enabled.xml
index a1f3727..83bd9c1 100644
--- a/app/src/main/res/drawable/secure_notification.xml
+++ b/app/src/main/res/drawable/secure_notification_enabled.xml
@@ -26,6 +26,6 @@
android:viewportWidth="256" >
\ No newline at end of file
diff --git a/app/src/main/res/drawable/realtime_monitoring_ghosted.xml b/app/src/main/res/drawable/secure_notification_ghosted.xml
similarity index 100%
rename from app/src/main/res/drawable/realtime_monitoring_ghosted.xml
rename to app/src/main/res/drawable/secure_notification_ghosted.xml
diff --git a/app/src/main/res/layout/privacy_cell_bottom_appbar.xml b/app/src/main/res/layout/privacy_cell_bottom_appbar.xml
index af8fd57..cdc2850 100644
--- a/app/src/main/res/layout/privacy_cell_bottom_appbar.xml
+++ b/app/src/main/res/layout/privacy_cell_bottom_appbar.xml
@@ -67,7 +67,7 @@
.
- Translation 2021 Bernhard G. Keller. Copyright assigned to Soren Stoutner .
+ Translation 2021-2022 Bernhard G. Keller. Copyright assigned to Soren Stoutner .
This file is part of Privacy Cell .
@@ -32,16 +32,13 @@
- Ihr Gerät ist mit einem 5G-Standalone-(SA)-Netzwerk verbunden.\n\nEs ist gegen gefälschte Basisstationen
- (Man-In-The-Middle-Angriffe, Stingray, IMSI-Catcher) gesichert.
- Ihr Gerät ist nicht mit einem 5G-Standalone-(SA)-Netzwerk verbunden.\n\nEs ist nicht gegen gefälschte Basisstationen
- (Man-In-The-Middle-Angriffe, Stingray, IMSI-Catcher) gesichert.
Sprach-Netzwerk: \u0020 %1$s
Daten-Netzwerk: \u0020 %1$s
Zusätzliche Netzwerk-Information: \u0020 %1$s
Einstellungen
+ Protokolle
Logcat
Berechtigungen
Datenschutz-Regeln
@@ -54,6 +51,13 @@
Forum
Spenden
+
+ 2G
+ 3G
+ 4G
+ 5G
+ Andere
+
Unbekannt
GPRS â 2.5G/3G
@@ -142,7 +146,6 @@
Sicher
Unsicher
Sie sind mit einem sicheren Netzwerk verbunden.
- Sie sind nicht mit einem sicheren Netzwerk verbunden.
Der Sicherheits-Status des Netzwerks ist unbekannt.
Sicheres Netzwerk
Unsicheres Netzwerk
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 4651b8e..1028db8 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -3,7 +3,7 @@
- Su dispositivo está conectado a una red 5G independiente.\n\n Está protegido de los ataques \"stingray IMSI man-in-the-middle\".
- Su dispositivo no está conectado a una red 5G independiente.\n\n No está protegido de los ataques \"stingray IMSI man-in-the-middle\".
Red de voz: \u0020 %1$s
Red de datos: \u0020 %1$s
Información adicional sobre la red: \u0020 %1$s
Ajustes
+ Protocolos
Logcat
Permisos
PolÃtica de privacidad
@@ -52,6 +51,13 @@
Foro
Donaciones
+
+ 2G
+ 3G
+ 4G
+ 5G
+ Otro
+
Desconocido
GPRS â 2.5G/3G
@@ -140,7 +146,6 @@
Seguro
Inseguro
Estás conectado a una red segura.
- No estás conectado a una red segura.
La seguridad de la red es desconocida.
Red segura
Red insegura
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index ffea456..0dfa7c2 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -3,7 +3,7 @@
- Votre appareil est connecté à un réseau 5G standalone.\n\nIl est protégé contre les attaques du type man-in-the-middle par des IMSI catcher.
- Votre appareil n\'est pas connecté à un réseau 5G standalone.\n\nIl n\'est pas protégé contre les attaques du type man-in-the-middle par des IMSI catcher.
Réseau voix : \u0020 %1$s
Réseau de données : \u0020 %1$s
Informations réseau additionnelles : \u0020 %1$s
Réglages
+ Protocoles
Logcat
Autorisations
Politique de confidentialité
@@ -52,6 +51,13 @@
Forum
Dons
+
+ 2G
+ 3G
+ 4G
+ 5G
+ Autres
+
Inconnu
GPRS â 2.5G/3G
@@ -140,7 +146,6 @@
Sécurisé
Non-sécurisé
Vous êtes connecté à un réseau sécurisé.
- You are not connected to a secure network.
La sécurité du réseau est inconnue.
Réseau sécurisé
Réseau non-sécurisé
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 235dabd..ee7e1eb 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -3,7 +3,7 @@
- Il tuo dispositivo è connesso a una rete 5G autonoma.\n\nLa rete è sicura da attacchi del tipo stingray IMSI man-in-the-middle.
- Il tuo dispositivo non è connesso a una rete 5G autonoma.\n\nLa rete non è sicura da attacchi del tipo stingray IMSI man-in-the-middle.
Rete voce: \u0020 %1$s
Rete dati: \u0020 %1$s
Informazioni aggiuntive sulla rete: \u0020 %1$s
Impostazioni
+ Protocolli
Logcat
Autorizzazioni
Privacy Policy
@@ -52,6 +51,13 @@
Forum
Donazioni
+
+ 2G
+ 3G
+ 4G
+ 5G
+ Altri
+
Sconosciuta
GPRS â 2.5G/3G
@@ -140,7 +146,6 @@
Sicura
Insicura
Sei connesso ad una rete sicura.
- Non sei connesso ad una rete sicura.
Il livello di sicurezza della rete è sconosciuto.
Rete sicura
Rete insicura
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
index 194ddaf..16f3a88 100644
--- a/app/src/main/res/values-night/colors.xml
+++ b/app/src/main/res/values-night/colors.xml
@@ -20,12 +20,16 @@
+ @color/violet_500
@color/violet_500
@color/gray_500
@color/violet_500
@color/gray_700
@color/white
+ @color/salmon
+ @color/red_900
@color/salmon
+ @color/yellow_700
#FF000000
@@ -42,12 +46,17 @@
#FFE53935
#FFD32F2F
+ #FFB71C1C
#FFFC684E
#FFC73625
+ #FFFBC02D
+ #FFF57F17
+
#FF8AB4F8
+ #FF5785C5
#FFFFFFFF
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index ddad096..47dcbb1 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -30,14 +30,13 @@
- ÐаÑе ÑÑÑÑойÑÑво подклÑÑено к авÑономной ÑеÑи 5G.\n\nÐно заÑиÑено Ð¾Ñ Ð°Ñак Ñипа StingRay IMSI (Ñеловек поÑеÑедине).
- ÐаÑе ÑÑÑÑойÑÑво не подклÑÑено к авÑономной ÑеÑи 5G.\n\nÐно не заÑиÑено Ð¾Ñ Ð°Ñак Ñипа StingRay IMSI (Ñеловек поÑеÑедине).
СеÑÑ Ð³Ð¾Ð»Ð¾Ñовой ÑвÑзи: \u0020 %1$s
СеÑÑ Ð¿ÐµÑедаÑи даннÑÑ
: \u0020 %1$s
ÐополниÑелÑÐ½Ð°Ñ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ ÑеÑи: \u0020 %1$s
ÐаÑÑÑойки
+ ÐÑоÑоколÑ
Logcat
РазÑеÑениÑ
ÐолиÑика конÑиденÑиалÑноÑÑи
@@ -50,6 +49,13 @@
ФоÑÑм
ÐожеÑÑвованиÑ
+
+ 2G
+ 3G
+ 4G
+ 5G
+ ÐÑÑгой
+
ÐеизвеÑÑно
GPRS â 2.5G/3G
@@ -138,7 +144,6 @@
ÐезопаÑна
ÐебезопаÑна
ÐÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ñ Ðº безопаÑной ÑеÑи.
- ÐÑ Ð¿Ð¾Ð´ÐºÐ»ÑÑÐµÐ½Ñ Ðº небезопаÑной ÑеÑи.
ÐезопаÑноÑÑÑ ÑеÑи не опÑеделена.
ÐезопаÑÐ½Ð°Ñ ÑеÑÑ
ÐебезопаÑÐ½Ð°Ñ ÑеÑÑ
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index 2b2a8fc..87a0154 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -20,14 +20,21 @@
+ @color/blue_700
@color/blue_700
@color/gray_600
@color/blue_700
@color/gray_425
@color/gray_925
+ @color/red_700
+ @color/red_700
@color/red_700
+ @color/yellow_700
+ #FFFFD54F
+ #FFFFC107
+
#FF000000
#FF2196F3
@@ -40,14 +47,28 @@
#FF616161
#FF202020
+ #FFEEFF41
+
#FFE53935
#FFD32F2F
+ #FFB71C1C
#FFFC684E
#FFC73625
+ #FFFFFDE7
+ #FFFFF9C4
+ #FFFFF176
+ #FFFFEB3B
+ #FFFBC02D
+ #FFF57F17
+
+ #FFFFFF00
+ #FFFFEA00
+
#FF8AB4F8
+ #FF5785C5
#FFFFFFFF
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9fa5e3e..17356f3 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -34,8 +34,9 @@
- Your device is connected to a standalone 5G network.\n\nIt is secure from stingray IMSI man-in-the-middle attacks.
- Your device is not connected to a standalone 5G network.\n\nIt is not secure from stingray IMSI man-in-the-middle attacks.
+ Your device is connected to a network using secure protocols.\n\nIt is secure from stingray IMSI man-in-the-middle attacks.
+ Your device is connected to a network using insecure protocols.\n\nIt is not secure from stingray IMSI man-in-the-middle attacks.
+ Your device is connected to a network using antiquated protocols.\n\nIt is exposed to numerous security vulnerabilities.
Voice network: \u0020 %1$s
Data network: \u0020 %1$s
Additional network info: \u0020 %1$s
@@ -124,6 +125,7 @@
Stingrays
+ Antiquated Network
Close
@@ -132,6 +134,9 @@
Place an icon in the status bar that monitors the cell network.
Secure network notification
Insecure network notification
+ Antiquated network notification
+ Consider 3G antiquated
+ Consider the 3G protocols to be antiquated. At a future point this will become the default. Changing this setting will restart Privacy Cell.
Interface
Bottom app bar
Move the app bar to the bottom of the screen. Changing this setting will restart Privacy Cell.
@@ -149,11 +154,14 @@
Secure
Insecure
+ Antiquated
You are connected to a secure network.
- You are not connected to a secure network.
+ You are connected to an insecure network.
+ You are connected to an antiquated network.
The security of the network is unknown.
Secure network
Insecure network
+ Antiquated network
Unknown network
@@ -164,6 +172,8 @@
realtime_monitoring
secure_network_notification
insecure_network_notification
+ antiquated_network_notification
+ consider_3g_antiquated
interface
bottom_app_bar
\ No newline at end of file
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index d41c3ca..20dc853 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -38,6 +38,16 @@
+
+
+
+
7t}6iL~`B
ziL~p~&ds=Emvv>4MB4PvjVqUo6%ZIi4{qA@@AqA&@SU4PyhMwC
zWxdQuTZw1z@3l?)|NA>GNhAqNBWo)&qvL8S+!7o-JX}0nd>mX{JS5V#z%74Upu$71
zf}Z~UzLlGgi}dRF-|vjLUl_RW@An<}-V?O*e{C6U@d$C9!9T~j`Goicg}8W0JZH}E
z@pJR=vKtC;8L{*7@$;}>eqG=?H$OKQ&lw{DK@vNcfDjiK=JmhK?Z4-AlI5s9
z6!){{3MH8Bf0+O1RDw{+GDCOd5vj(!A18MzE+6~wj<4LzYpbj?MX%r&$EAh=;T^J1
zE+%N1+W%_gVU
zNd?%usi2r#Mo
zv6{I(@rCqZCn57BBd=KE2XVXqx%_`}H9i&P36pY_grYL?^YdT79{rlGlcW?=ZZp&n
zE8+Qw;@J0e9RYiL`w-c-&LglsJePHJ#zsdwJIhR6e2R;UzfNvx%rMQ<&ePUYQMofW
z+E!Or$Euk@ySJ#QNJ?6I?;)O7R=wqularQ~mg(P=Achx&qAYug?{aW(JbwH*O6cy*
ziOJl5JY>Dp3=G_srU%By$8`!UsSh61)YQD^=(x19vM}1l%FD~k##T3ZY+h4cJ-KZ(
zQ9nVQrNnNcbJ(n{txYpizrLoXrnZ)qojpA@b>`2Xk&Yab+qZwey}xD4=FPW8v;BDK
z{It_KSXqVd&EGOM9*h#UKc%FWqJHAUi3?tP{k*-0TT_A~A|lSmnbx>&CS5)FDc~3<
zJA24EUYF%rnqlz^7cN}7^!Uz`)YQ~~fPgvsH+`Ox7cRX2_~am`Ua@Uom0xx?4+TX)
zY;5eNE!+1T5z4)!_qn=y@z)d1trEW%77Pk+|8(E9C9NVq>O`{baiOTm)ukEClAVKt
z-(E44LoZP=itfOHzVTZHX7?imtVC^xmDMswdrB63s9D(}m34GhX1<6WJLm8wJG;4C
zu&Jr3B~f9l>7|TXZ`mbVAw3L*vtreHV}0$6NkgQteMWqId{gQ(*@TJ;H+lKG3lt*#
z6B84YlNstPM>>^A?t1E)ng?lUo`;5NYG`O+ogEw;oSdBQ-P^HsE57F1O|jK{`9eWP
zmfc6bvA$3-)Zc&csCJoC-jUww$g+D2lbw0Bg*WQLxC2C&llj^^7bH%KiMe4@w{6>&
z=%uTxJ6InfU|dIQE*k3m`^UR`Q)MO&f!^NUSMqPY2v*yX&XOdZ@G?0)eQmzWs->lc
zJw`)SHQVt0qnV*EV)Ngw>+9>=IhyY-sy0S@V_(y2zkDfh?i^`J`VuW7Y(Lrkr|*;S
zwbsf)%7NAtwNOrjjP&%pX>C7gwJTQ&A-Aoqt!Rs!p1-cQH)fie6qwXiU^Oxz%N`+{nDzFyHjD1UKl2k^yAN{Y9u~9}>VdY9Z+I4!lrS+d*?)U>l2TpByR)!a)0;7IkJsl~;**n|
zZ8!ey=g`nWdU|2&{)^_uJi?vJb7KL=#J=;iWNAxVSWHy;(OZ;!EvMLDVA-QxVrSvv
zQZ}&iDk0(SNb`-)&rZ`c)KpiWby?2+IS?smv%0pHK4NrFN_m754I8@1Hr3YG_mn!$
z1To5mFMXYxo0F1~sxN(MbZJhrfByWL-|G7<
z2SJD5KfI2)7G8?F<+hV$!azggtCHB-shfudEOq7O<*{Df-QBNKQ(?l^T9m|~>otp!
zv$L~MJ+DWPWWVz>F%A9x`TpUckbNTw{Kri(&N{BtE;Og85q(>^80yvmzS3z
zi>uSMoK=3XgD@8KLbk~?IyIbPWt-Mf6Th_Eq3qPHPW6L!#8Cq0j2h%
z7xci_MQ9np+$tO+|kuDZzXgMoycwU}p?8HZZ#^azZID7m*_NzakH;`!m>?t^5z
zcawAW{rVLY984Z_X8R7}B1)?H_Mp9eiBJA*zg?pNnjUzNTrt+*qFMDLKfY>wxAMZ7Pz*
z+1c3G1O+?tr=)sgy1RAzo(Bd7GDSPYLna>4Xlk}+=#@xINhQ2`HQrOwzS!SWV$W$%
zUi#uAi+1|_JI@{d7f)}e^Ghr(T@5vGJ&{Zj-(7O2uL|GIEE!V=3!Rs&RaBa=TRp1*
zb!jG_o}Jw3VR1TPsojUyq&c+b*eMSEQq#rG+FElAF1~|uc@xchnJV}^{Wn+dk8GV%
zOH#aHWJIgq5FwBW>B@HrnAjze5Y=MJ%OLHWoRPs_ryMSFFaM4#_ibzIaQH8HHVuvE
zaolIl*fhmU#f$egHom!0OVc!MLPl@#*)xzAU&gIguiHF_)DDwJYGv+$-mWc
zE$sfUpFiKd;@kot@uR<=>L~HizkGRMboAy=`4;lW@?ux4@7#G>s*$Znr4IF^o60y8
zAE2~(^XAI;@7WFFRa2ms3u_C#^x7P{g;#s|lp>>|L_|aw-QqCB*RNUDu014scs@bZ
z(ZL}sHK2XO79toQU)i)Fy_qEW`t@tk3rs*K*I^z5LO=X2K5&*1Lexu*;=4N<~L%FNw8J=m&q&WpEgjul{PD+^Or
zUHJ;UT6;-9Ora8HHP7NhgM()}Okz5+%Dcs%sY?4F)>2iywy>m`ev*;#sHTE2Oz@}e%Wjd+H!S`~CIzLmg_q=MZwV135KlJTpUgw~wHvow*
zE%!+_wlw>x@0u7?n+)ad8WpHFrbDDj^8
z1ySIL2Sf%Q4)hw9LaMQT2*b%{TeS27D3J_DdCe(2WI;~r(;
zN6+4l?ce@TJN@foaDclzsn39!kB{$Wo_10BP0VBOhAitI_7?7wGOJ|CDJlEN
zxeo~x7Zs5oKHJ#Vb~#;xJ|?kc#8-1~3LL|ozDGSP+evTOn3;zkGer|%QhQqAAgBJV
z1%+Q-cVtswilW^ZcUHnE0Of|;9)R9UN=w^~G=JpM2o4HT)z?3I@ZiwUP?AO}0TU)V
zZYACM>9a{=7#~z-EiD{%StQcf#d!uMeL&cg}hITb4rEV}_%r
z;BAk>>rjZTHa1!V`q*qc|L4!2N3Us{US-Bz@X~e|9(}Wu<%l|LjBC?l0IlZc=DIrh
zrmeCPlt=H4bDM7$VxzQ(|JB!LgErZ9^1~F%S>SEh*t&B}lyr5weGi>E^+GxzQV|
z*|D+5VdUPrZ=w-uY-~JE$1vJe!0Gv#L{dXw0^}KA7I5SQ&;&PkQ~AQJ-qQoq1GQdz
zkMNY*-nnBo`ifIzhsZ@B3eGEUew0j==d4abJzsENf3$9%u2JGRWBmSACRFZAgh0U1
z0ky3mdvC(ARn<~HDJ(2Jx6~i(xt;vxV2Sr=W%|;q(V-Z(hK2^$$)X{7FOB8dk-muu
z3+FEi5&UJ#qp9%}7kwvsN;Gr#dxwmb3xu4HqpY|3dNYrloP0S`;o!6?GnH(D>MU!`
z;(jy}7uecp5f5eh(My%ux}iZ?{=LiCpxh
z7ij41bz57Wi~p!do(OAx<1^KTLRlrkc9;Gf2KEb^WqcgFISb1qbIheR-(b_pL04UN
zRu&fRyqj&TnWZPSrRzF694jB}0@N1BrJ|v6T^a}t5L+)C39tu{xxZzHB>iVHkH*zm
z#+v$ii*IiXAB7_1gxyR|9)?e+^OK&X2s$5k+s0-$jN5vBa?1z{3rmJUh2=R|rp6$c
zEyPL1)&sIlPT6*)8@oA6e;}y*bkB9JO%srar}UP|X(`GF$6OcRIT%Jucy9MQbfzj_
zM{ri++K;#Qt;&~-rKP1|qZAeW*9~UgzI}^cWn^T=Oe)3@Y|<+&)A8S;4KA-cku088
zSh$GgD=#mv&m4F|sSc#;G&}rrd|X#sJ3J&Lq4(B@#Y%Xla$;{peUAw9Bkn9L{MKlV
z_!qjQ7+5QqN_mQ*0Hn&mhjch-LXO!Q>lp0Ud#R+;%0ZR>UtZ?Nl!
z>*#ISV9M^*v8<=MpL>n1D%SGMwZ!0>|a@bdAd6tyJC
zUSZ+cbPXL%%_Maeg@xHx*tb)LYp*z0{NLm;o!ccbj&%pJpm`j%~)pzVJ>0wB=RetY9
zK|xMVy)_QojOZOe9w@bnsef?L6*!d$r)`dg_Vn~XpniV)_AMZ0p?8
z)8n$b_y=frefVX-EaSQp{OBsl9@xG
zQc4fc$F+=Ly#ZAcLKu*RuXLr&4cHHr1V)>Zj(@Ert-fM
zwTE=o@9_bq@947nDZ_m6&u>}RnG_>UGfQ@*N2$tt(S^Gurs$Q}9iniNl$7*6D$+Sv
zawzwg=ZCeG1wSSia>SA!y!Sl{h0%a`l-iCoV9{+XWbp_?X=9&AimZKUX)F+hK$3|m%DA0{}K1Oc=2Mj
z$F|+Rnp5c+8RgakJ|mm`vBnGY^ZF%r>84M#YK`l{3^U^{uem>VRmfRhc4}GkEwLR@
z)zmc6Hnf6ixk`Hj5N%(AM1tz+qRB&~*pGEFVjGZ*D%O#%G=mCP&;wTME_=Q^4joaE
zb^P_1Y20B$dZ54mtW)X=Xs6s<-uH6$_6z;}M)%U6w6Rd^U%q7U=%Er&92Q_;Xb5n=
z!Qpg&csSi!aT*L&jDXemFz)L@KlX5cmGC^i(<3-o4XhE&Jm?>*?&ydJbKUrMc^Xw8
zeOudH)1BwVC_bxKxURV_l=Rj|i*(uQXobk$Se6FLrP#CQ)-|_!>$`U+T9N|FCXGLT
z{Fs2K(Z58D6sv-@LLgcn^Sp0t3{!3%e0JHp6y!%$@bT??4;MQ8`DHi1Q%6PR1cVoI
zjabso`N?y)z_UQ)h|TtJ!kat0xXc;Eh}@e8Mm=cp?V7TtW&y$;Y+`4brR+Mb%Das_
zh(|Cb;A!6l88MiwWR;iNiCbh7c<>Pu>ut0i`^s*^1h(hYsZ-Fk6P%ox$;rt;u^`df
z+Xc>^UF@=|D8qjKtaEpFzZCpWM^+4YI&fe`4u9gy`^&(t#D8%pEh_{50+C{RMJq);
zJcAYJdA5(~QM2>f+Qc_Qk~=w+cC`{FdSiVhp4uQSNj2p;yN>ZE3G1dSaQteC@>%Wm
zH_j)uSoD^c!3Z?+7*$isob$=;_xu3)hD9-UI7CfNedI{`#xj5eOrM2q{g>R_T)2ST
ziVDlxoh*wKn3t%iYkfH1BbqhIOBaR(5;Ltvz~dcBJuMj%O1lvq^h!15{Dlj1bNo&_
z_8#V1|8So20hTj7)hx$P^y09<`Ca7XQ9L(%hLyw($P5e&GB<1`Q`<((t+3WHF7sMV
zJyc{5U9T&ES<=!%Kt
ze@5{%D1^RG0ShxTsVON%kd<)y-MRDPoMZMMe(6LOR#xy9@&`xGFcx33u&_{D=0H4%y^E@1-?eKO41!g&
z0v(vv?w2wYZf+YsK4dl(Jm3+*ak^^O!&8CZ`cPHngiy!QC^ZqwJ1(8}IIdgntkv4wYSn$Vn3vB`=$FK=;ii{x
z-8`kd(X)4dR&MJHQ3223+itM;?`M6nFMyosRbt|P^~Ue5U^&X2mtfj<)35~|rsp=M
zWAfGf)hrBV0ip1$0VueM?`0(!8I~~e@h!R96Hov}u*knYJibx;oSc>`wkczjwUsW*)429VZrMI;4KfbUAfxpc+y&0*=z_z-WeVq|HFduy<^t_KI5$&Yvd%^
z;~f;j3FzKbP(bm<@JjET-Xx!jUpF9SqJV~-ib
z+Ibyy8iqqaNL^s85C*a-EsbrB^kf^{E!YbX+;*e?klya4BKrukW~RMjJuf-AI(%lX
zM7lHeZCRghLatDW*u`NcmqVhz`J!hN>}LiQ-nTz}`gA$v$4Lm|quBT+Q(0Nr@j}tS
zx~x%6VUS|Q;L>RAPMy2`!`-yHvNh}aCrm&h402SHT{%5%-4_aRu6p@mWMm{>>s2DS
zC4fqc?rUp{gK#Fk0-4lX4FPiBy?dvj|6QHzVI_gP^RW)TDeDeEId<&~aULFDWUB
zvz4cOK!8PLA_iUenwy(T(KnKLaNYhPK4LX47V_+w^U6d)6+1}9C}Qv-0T?9RkJki#+eCI#Qiu`YPneDM4L;67KW#N+(Yq>g?i}JFDL({N
zZ%lvoKv@*RxZV{e#K!(G*jNtz!}Ubs(xn=Z6TSrzR9jC733cj@6mh3(tiaJA+d`}T
zOm-k%>PekNz9}c!!+6+YFl2eP^dnRJX3ekm&h6ew>LeIExZT}Mrs!97blPp>oG9Kg3(0!2oXTyLI`H
zO(7xxF|iG3VUX9aU%$quIgaorqGKI}E*7m<9pP(uNI~f%GL7nBYs;Vl8
zbTEoZNl8Vwdok*yXs6Nl6k@!4Ptf`O!^d}-m%LTo+B%!>{b|gws_(VO@du9{`AAzI
zM#{jvGuI4EUPnhqetI_NPLGHP9k7HWXQ@fzk7(GgC||k4ti6`-FW4%mUAuIey$0+E
zDE}%}7eW$`2&qrkRaaNT5z~q`D_pvCnv*l&$&;Cx8MV|lEiEl1<#=4Z>A;`c2z?!-
zRPPjfc>d|LXRVEmw-L{eWvZsA%Y|~}l}^M41Sq|%-Qo4%LFwBbTb~A4oaR7hDbCnczBG+R4p5~qkGZi#KNl|fqJm(9ry2%9%FzzG06&vuNFJ`xq
zEP&rykSE*tesAg!OPq^~3)~Ki_LZ;v3JRwYD_G{S
zBDVTd_a0sWfr3xR+*XN&%snjT+TFcH2kY$MP*{J&{0T@057`8#@vKiy^W(5#icNc1
zFD?5yOz_>iiSV)l>6{8sLDHIQ`?toy(*mjn`1|J%Hn4=S@bl-tdDHlt^&f8TEHEkc
zqn0hFsmS1W;elK?))v467P#&Wb3L$($N?nnQ&mzd`AB!s3;@(`j1oRCMg8?beFvi9
z`igY&l?3om0vj&rr?eT8QrbHU&e;6~4M!N>X#)M$tbN@BRuf+5caMFqR`~?7DgfV2
zk^Xs7w$qGF|5Xd{x!}7~YTkC|B0awve>lk%NRsL6U8yKUhh-NIKyLJ69j;U(Tj(
zu$G>V&f41gR*4<*RQ1RSX6TpQJV%}hbArete_9(lR#;LJK+9d((IJR_`T2<_{b**9
z=MezP6&CL5ZhjAd9wX-FDyK;Mbl1cFN3^EBH_gqhzL&m0=P*$!Dsk#8a58IaYb&!O
z2dJp}hj*;O!01=Fmc4q_k01x`45=Fg^t(WF?b?;)sFVOt3m_#UB{etP^uD~zVtg@ut&l#-G8^y$-?=bK3u?MRHK_fFS(`1<-n<~tt!<)YTE
zN`d~5ctL}?X6NKYI9v4M0UHHv2J1lNPk}Ph(_??Ft-=z5S;FeTZI2@lt(_W-x{K&sZ3{iUDDcGY
z7no0OrGC5qZ`P4uFMweY8UhGDdbAyRc|7J^L_u`*ekIOSMKBg`Tc(`|7SJ+e<2KK
z3+zxlw=srT2Rg=OaZJp06@Vn%1{HV~kn%-?goFeGx3#&S@4aTGr@^=&N4){+$PTD4
zZ)IBvLOI}nqz>xq>pQgkE7m4^D=J)8>{{m6*H#2(j7X%;!-DH-e)A^;1QyWC*O*Lo
z7DRcVZ;-JE|6goBm7&ahxLxEa(x@VHt!jdTg3F<(jzBy$4ea+D`9onYt~VcxHr${yh_uo?Vha{!V>C6BNFXaQ
zb8-@l1k6%s1%?nNFQLEBNPnv+*h-)i0tex6I5^>g@?G00GtYHRU}d(rwD6ugPfy
z7ykNkde81%wSSl0(R?AEp)ZVtSu&mYXgt
zcz8yN+_NJhj_se)+8Y~xqgKGGyD;m<=u6njQ%l>a-?oAiiGTT$sC#f70(p%PWe_ia
zE4ycp;b7-b2@~Tu_yVc8Z);^gb^=CJfPG+p^$d4F^}OrttpIF?_dsI9%*+hHFo+3U
z2M~Zcf+0l3d&eNEZyv;YJRckzi-?Z4?96B~g%beM3JnU%2Gs<7QB%9I++Lv=&WrM(
zFOx^cI&y||tjgxR#8#0CE-5PF?n|}MLY+`iYg2{WMlWiI7-am_SwgBN===shJU%d0
zzA_2oTt2h-_RmUyTN-xl{=mu2B=@S{%-f5USwcWy9^o}@1o$flfCpl(X#r?0xYhBi
z&=RpB1qFqwY!^YZBaJ9`l#cIaD;O}DfTQfPpdOe*K104B4DBza{env8AtgwX<=YrQ
zhVMGic^;k{X&FM~JUu)6>|C)$7r&o$OQoJiB+?NQ*<}b(5rNE3PiNmw&&-?>o+@Qn
z5(6pM1Q{J~ks^^AC8wj7sSg}r_!2%B78dq(^1K%%E$t#UOU^Ri0f9N(bYr9P--Sxo
zU=?Zs1&B3Y&P2W3Y*%n-NJvp(;Vg>TPMmnBd|z2j?WIPlLT@c%x!a1UlC-c$9}z?n
zXpkpFLQCs~QHhtA7wXL(?#AoZHa0fa*0OSPsQ59zc@rIhqS~@$%lr55iPT?_gdxTW
zk`^#rPEHO_fH*%VBI4=c0shO=)04ehcbY=i^n1*sKQZ}ppdjkWvymM`fmB74@a#mF
zJpwEP=RXfe;(%$CUhsSjw`^@|1GS0><>i|z4M0^d=C$je5rOI%!9LPNkKn(st5<3+;H3!^$e5KVCY3;j
zzz#z=R4-q?G1-8cFQEMINb!X)A5LpB-Fx)hBJeK^?+aljHnv+R&Or3{dw!l@WEshf
zOqi`)k&`E{fp?=>=LJcD+y;~5a9@B}G(vmoo(&2pN)X@drcIkrZkIFt4^ojq5(Cg-
zR0P@Fxs!F9#_lTul&TJW-fp*5q-62+VVGB=akvV}OV3x(Ih2YvxhIb}8{0JVm?yJ@(V5N1#mw
z5AjYVY8y9xdx_OW3g%o|aW%SeLj*Z#n4E$@)vXfM$RZ9!+3!Da00`K`$+r2`r65hB
zZb?_ANDaWpU>
zVp7?oLigs=9`06(K6ko9^m^5vmMYMH@|IE)%wxx#l
zpJ!BXAUZ9uP
zzV%T;8OjET)Oe>WGRBDPWc9&!?L8uN%Fz@Bj`7ct^#QTik$>YSlDu6oUT~Z`XHDQd
zf^ypF=4zN?kWpJ5)vVyjMa~8jOxG{#obAVJOEW`q-;;`qmq9oLdDW3OU3nf8lgYW0
zyRFqx1N9TnbYDqi(^Mb<`thIvZ!eGSOkEFLk`ul2)YtsRo)Tl*S0ZM
zv5o+&y1OYdG7?+$&3T4^1dD(As@MnPKf>A9lhc9TP~>sOTHHmVh=2BVZ0y_aIOGBT
z>G|B-D<
z>6uL28oIh{9UOiLbnE
z<*ZhRne1ngcN&z9p>G2#4qFE%2MR&&0U8U6kJ`L57GJ8X!F%&q2xz|H(B6?2A5Ykh
zAQRW=8m6jRBh*EF`0xQGEzU@{Co)0J=QJypLq=K)QDPb?bocYDvx&(Nlqev_xSogY
z7AmO;AhxkSwZSj4^y}jj_%S})s+yY9+}w8n$`VarZd+|jrBd4xU%k5M8bH{e2|pH2
z&d^&6fBs}mJo01V;8_3RNpXq-vDx%QLGRvOySQ_^K{|rP0Og-EQiHWEu=s;0LujY8
z`f(Xx%&Cfvb!<3e0GPl$a4`zSKY^j3@6TSmSOR@Ag(?UJhCXm_{Ld_Rdr%_sN20xx
zqoWH|P&J)@zJ0sW6swFhdjD?~SdWowvK3>avobtdi8?0+uw9X}8Dk
zA+ZfX=(fX>9t!)Up3tm~D7gilGf*!QHLToP(*iOJ1*4LF;G=@h`~iHVK6L1`V~q5R
zh&w}tKc4{(T(T@WaOhBx)7;HI7{Bw-yN%f-F@isvUB$ZUme|!xL~SL-9toWCmUVI}
z9?0|5mXnv?LtlFKqJjblsv1}$e#>rC!z1iA4?73bU~^iNRpO;1jv1AemZIFja`})W
z%9KDZA?CO2c0i7zrb8of<`Y05Fqgs?-zQIk$EBf>O!8rG!2PsbKoRo3%N0m<2#SdG
z%+?JL4}bU|S+l~#$cO@AZdO*gRt~!3WaQ*W_-}=c7=Wkx0~Q#$2;*+kNhUBz9U2+_
zS6`Qx>u2ln$nzT@3@>VH`|doWP_yiipt=OmESvEz@cDD&nQzBQq={%}&(A2@8PKvS
zMs=fytPM)|E{Qs~fBmYRb88G`V@OgPj`dCwc0}QHJ+E2wshXN|LtkQ)keRW38fn3J
zF@1sWU-&JMLQkZdZ)KuY!4|dEhTs)_TwlYWmFr0OP7=w
z0AzjUoQdzU`8pSpS~{H5$w5;vYO)>$0Bel9P_GB$?_jj``8iH<;;QvZw-3p+o*hP8N=?FVsd(Qimr)>(8koni@*&F-;n
z2q}ssvVyx83ak&%+jP}U^;Yzrm4a+*W(SF)W(cesP4NlVL5<~`wiW|GiiCsVZK+@*
zkz$#8_fd;W8i-n2(!M(^Bfn`BWExmLg;Y@j6O{C>HE>Da0nb%4q+P2M71nIZ3xcy^
zb^3{RdIpLL(@N&xH?$ph*w|!Xv&??Je(+#xO+uYyOD^gV7`=AS>a-Gd#2eGIBP~Hw
zL1AI0?;r6G3SDoEyd2HWb#UpFjdvCb7Q^{bU5~0V{y8@@LIFL38ve$99UuapfvNN;{U53&<{yZ#&9L1@w
zh#7(1uz1qS_q$=O2(Kk8FV9=RD3$8{`0=0FSzf)QF)Y-h*pq_(+(`o0skE^7V>uT5{6WzCW#SP22kA0vz#(rYNdnzoQOxWEVJbD`UQ*qO^fn(pAeY
z8VO3I4GrIuyP+D$*meiWeO|s?;szoez!j?r{n$2?&{ci>r~tqPXZu`i(TWFAe8LtB4WF@M2j=wYUONkJh!Ee(a=rA~9N`}t>R23?Q}V$;bV2ls3@nS2O=
zyTARt{--kXp70l_u6n_17F0w&QqNv~OT^91t!5sjPC-HYZDcH7HkqEXS2pvf(a+mM
za_9d~#I-WpqEukVIer}Zm-cqe+$&lr+{gJ689%zagLQ{me00qD_x+-0
zJl8&WLp0{6dV7%>3+!EA9TGbxX#J|mHJm3
z?5MOK9ix`6rQvr?7|cY4h*K103*Ya7ZsgW`=2#tg;_FuG8oiy{B$(OQT1RXZw8uI&
z|C+~mctR@m&9OH%}zLcmnR{v8D=XB~cDWt~#PQI}5h%u5;6^8jeH
zzXB^NHc%9$@WpYaUce%CX`e;?E)r=EhBomJieKo|aYmvP#YQh>0>Y!M3{yYDC0xwU
zypnYd6lVPh3II?m+fZLmotN5%LQIQK%Q1_K4lS{&y1J|Hb{xAH-P=meQGZCxwbV$N
zyLGn~f}O^0AHo+1I3J;-V>zS_B3;J+u-U-9O(c@}o1Y9wU@v
z8gzej;Ahlpq?JA{VhN8HxkvX!iJsRqu-|OZ?ln5(XGkXHBle2`JThB}S)XNUsXDEe
z7*-OXo&H=`@wMB=Itcc`44#5Bk5Aj2iLJ9RNVW$oWK^w7PbS><8jF6wxoPhZ6aJe3
zb%Tj|h;`qE3nRF5LFOUI3rvnt>9GOWa7Lw-!3e9miDxH)f71j3nJLxXjbEI-6CYxt
z9ky`8GBvokSZKFE?%^}OIL{!T?Si0)#_qNf3e7B_8M%Q`NHeC71R!q*Q=TT+LWj~3
zCDEl<{c+gm@CY@NaafBo+mWFD6Dp;LxvxFwPgXHA8zCwRhv{(^regXtYtRLGP}2`$
zH}lrMF?^qhf6}
zJ7eto@Wx9o_*uh49G*}Q9BC483ZDa^WMQe@gTquP=GtMCN@{Oybw-s}sz!RyIXYze
zafYEA1>}FaZN6NJ#*vIp@H};u*6-ox9sB$Qpk*5<#moD4vXw;2)thEdG|0OdQk3NN
z^`qi5u0bRSp#q%ci_hSeWUbfB1#+xg4jBYMFRL0s_8Rxz0o&
zW80qSg#r(POC-EL4i6v`GCx1Bk)n=iAO>PmiiS~2D$1ggpwxF=y3xYUfD*X{)N`Y3
zKRmj^df+p%Q^dKo##o7}gM)*EM}=%niCV(A92hCUY%_2fadC0{uJ1`CTM}Y?aUE{g
z)kSGf*_UUc5H5+X&8oG`Bb*}=4G{vIXU`TUCJv&;7a@h`z)6Q1KT)uoV#p37pVl`G+H9H7c6}cKICd=
zvN}tz^GrRGM{;g8J+gVt~u&fdl*$C)@BiT*N?j+%S`>?fS@_!iC`%tD0*hlVhi
z;w5`}Fct_jZcYwkGFb0fL_ZP2D7wPu%d`%TqoGcAKk_16UUby4MWAemgxk*t_()r!
zl)d!YN3xRHq}W*TY!TFeAKO@zL80rdk_mkK1OiH037k-N>3sXEOTo9s#9yMCWdqP6
zT<1xL6O26JCkA-uKC@=BU3v3%umGhA`bE|^P^(gpbGWf6f+X1?FxqP46&V$kuKRNo
zMdl8JFHF*$WlT&=Y>q9(oV`=2dx;>M#XvA5(qxwu7q1U+x@kdlLxyz1j($Zkkd0hm
zhZG`D)Vj0)CUy@Bvtg#-P%LKys@vM;qU^sfp$f|U{a+uAVl6CZL5e2?i|W7Gw7ce_
z>e4bm`CvA_fC30R>I6@E>R>Kkf->`Whdw{#7vW~UbbEYs0wi*V5&@T^P*xeCo{$rY
z;1K0Ru(ta9_;i9-fI-Q{`5SX5fYaoSg^l%?BEP+i4<9|kp(32l2s;YQgA(qnbq)UC
zzke@gZY*b_)Gb{*Zxqnys{!r7g9})+ur8abXGkdLd=W)S{0!p!i!>V-Wfc{P%4R?N
z643oY{q*YBu3wK3d$`5)&~jUb=u-cImJ1q|?D43r1yu{bQG}E(ici41K34oaHwQ-S
z4{9l9f11EO;jjgF*%y?xv!yXpgGdamSY?FcMx+Tdpo*YxsIa)W>eDCS=6i6MiL3^E
zH}U@;(Z?p2kVc#1PtO4oRxTA0zbd$G}{#Oj@Ue$2_;ULL5*QYkh%T-{X32ep-Me_%3D%F
zp&pDY=tUGGBX@e4B?PI{t5>g@nkJ(Rp}rtQSN|L@uPp?D|3kF#O;giC6u_fO4$BN^
zbTbcUqySyXcJ3U;9wUaMCVQy&9k7u@KtMoDtRgp89gJy+>|fo;#CD@L|6bW{&>veR
zwz;o~K)65^#8(MG8lXj1A?qN<`Ms_=k?dfs`C15C3=ToN{0t=9?_@IRO%9l}2!6o*
zvp6_1AdJ7Q(8=sUM!JX4Jf?hgTCQat#!LAXd~6z1@8t?o?k?mou}uh&5es1FI>3DP
zoB4MQ?Ssje+e%HUCr+pmeqmZLKxF=kxVU)jEQBDJLVj)Yk1I$ID~Zghn=jx@doDK~
z_s_fb(FfJK0Cn(a^cR#j{SZe1RvogXIwc1&%!xSZZSEIv?za3-6+IFWMp=09>J|?&
zcViSaxFG`!xE;qRBqW3?M^tSfYBT-l575f5pn_Ps(}mPHco_kPre;ZDA({~qp4qh%
zW{v~X#HS-J>?r>Cf6A_T$Sn!~S1rK*`N{wJ^?#GG_O~%Kj8jZ%8L{;^KD+^e#eo;4
zIOXAuRApwE)hKcasV~3t*3S_?+}>I<{O6cNLWmIZUHB6o8~fDjK2ld*CN92(4$Q_8
zuS7<&Mas%TEJ;6hKHpNkv7I_fQRW}wy75}wHcFS09K%})Qo=+Qoiw=C>+RETxEUEJ
z5=rJwqy(+X-v`OqOejrG{*{6voR7pO@QBI7^Ah)oTkg+IPCP!ld+UDUe)_xf`wd4S
zjgXf+Hz$bHJ<0u>n{VJoHyCG7iWDC?r
z=_U1EJ*VFmoh}lTH2x#}BPWhANtrL~A~jZ>1_`BILP2uR9}T6epKoD|2%rfKX{V=K
zb5@@@Iw@o?d5}W$1}hSbjVO;Nk@A_@Qa1*_mANFznVaVYF%=dIDLkIP=j`idZ*_V1
z0v_8-R5&OEJEo3~F)Xy?e7;*;rKG|9;G4wvC!dyNwmP0IH%Bz=8M~SE#wU()pmX9T
zJqN|afW#6R@&+&;;tZ#DtK7OkT*~6oUCWOq{@Wv*W*2`+{Jo4_3M`UYG8a)n~
z$G(T*6yMQ2`j9z4&Kb`gCw|_Ujh_5cQ(G7qR*%vvU_iDzF(A_+Bc1=e=6M{it+YNO
z`**y#R>aR%ou(&zESL>8xzGDxk`pq*|LL=F9V-(nVrufAUOEq;mt4b%a>|eVab@Rd
z{3iIhJupwx_n2qnKX;S=GcgM~481dK?|=15Sb6aXi4#8cL?`@&Kw8V3@HwJ_MX=b0
zXZxR=r`kcxqd$Q7P4a~7?pWf=7gy8garKh8Lb{lgEq+2amAEo`h^utp^Hf^Idqy6_
z)uZ!N9r3u*K7uy2H$7yw*o=_*F6Mq^5zfQ`1I*;b3d
zB*d=4{+Uu>n+&zn^YcqfUoYyHXAaq0zD1YyA@Zujz8VCi^clw
zBs$-L&hvfH`B!C4H9cKjJ?+;m;q?!;QZGT0#C3>8s8aTBo|b&bOhc(|lst*Aim0|#ux1d~jlm@MfM`KR?
z9vF0@nW=KAE}Vttz5Af|B_!dO1yIA
zf}Ta&+O@k{k9+>kH1|5O>V^V-Mg;HMpes2p(22V^p3ha)!
zt#)zqsec~s-@NJkj+T;53&oT3^Bn0KsS6Ybd^$o3F4{Esmd8}=XEQ%KC3|Kj!Y0}V
ztIp#tO|`b`mgFVR*q}aBgH3@F80_`)3_cC0dbKjwQJUFw-;ddhQa!e@eDm=OctiTJ
zG*whhi+9j=iEYQ?UADcY#l(GS{g{Qurk>azGaa`ufBI@4BX(=A#0r_a3UrH>gHC0Z
z$%H|cZY%Ykhx61V23Y*t4!rTh^3&4Kcz3c~48YCzkj=ooXh&{-VS!g*fmg2QZzu16
z+P-FLAZtSZA`pRhP2TZ2l5AgFT8+H_zDz6HsY!Z;mw)dgAy~v3-!Z)=f@?Tn@L)vl-O2nhMR2rp3LzI
z%;o34QXQ;=@)$k%7+)7dRTwx=eY{|wy1T9)-LckXj)N#OWS!%eZ|~CMbI?
z$jd9q$`Z4T{yV(t?VXzL-HT!lw|d&*R@NsB|^?+fCX?mrMdUq1*y)8GDiVqLaz!G2s-N7ug6
z&we6BdK8aIV{LuCuB6ed@=Vuonz)bJE$v
zW2sW1fvl#IhmLrVom%K-Z;=coT`lBo+D3AhG?m;$65o#vP^OZ)G|%J|9&s-`!i>1N
z9XE?O_Ki)LS;p@JWK4lx_GdVlnAodbFAbKa!e4~Lr~_^Ow&03~1s@PMec@w{Go89t
z)}x@1r9r0xhGIL6Q}9co4ProCOn-0k;$}`9aq|Go6Botbn~+t~nONdxFt&v2&EJ(Z
zx4(YCkC{XY+XIVrg7LuPXqvwdv*TgUOCOvt;CnjS#4z3xe;sU(Cov4`9e8-0xOsdB
z)S{a8#l_kDd|Ls&y|W8Xkai{w16hbmZ`_nLQ%q2eHwX6Jj0sjVe(&gLYyBp}0JvM^
zheycph+yNffWI$!V*`#u!vL^b(A9%Wv-5TW0w1+?h>l2Jm{UwTKdPQ3Ae%PM%gn(Oa_-!Nh$d7h`kU^vYZiRJL6
zme?k~z0n&1BF~f9%~#XH3oH_dAB>(~w%tV96Yz}q#UBoxL=qRmX5iC|CB!H2KXtOU
z=n@}d)9}CJkOks$1Y^SI;(svt|C?V`z(lR(n1^RqA~(gn&-fE-#2d6F#XrO0o=Is+
zk&G?7Q%+a9e!<|~l%q+Y>m@^jS+{Rj)hnxM_->?gFJ@Sq)K3HRla|W7`>1f{_@X0q
z&ObEC-3G=D#TNA&&P6|KH0?5azJtKu^=Y4j?O&zG+>D7&fa4zI2A?WUdM$ku=eoV~&kW1d{XSY_5L8U=ku~
zw{qwe)rsl%lU^G`vpJz{k2#DAWyy3a3Y{vIIMW#uXw@69m-M~f#Y%I~n`5i{F7Eiv
z$Ac5)z1Qax`wrVRu%BG}5x%W{A}dM%7Ny=rp>X4(*$2Pm4jz2WvGvgHiJBWCf9|`L
zvX#q`xxe7TtJlePpR;!v+N$ca$94Uf+~_AMNloromEL^~=1f7Vb^T(BoSB)^J{g*r>pLcPj&N&&a
zR{!gd>aOI!a#H1UIlaGzqJ&fMdiF5O-novxCsv|KvbNOKWHD+bKf=y8U51f@`0RP3
z&2F$V&enAKhqA#H?vH)>k28K5uzha-lDfRwe68v3@h1(!JiSvll(&f+6Qg>&Yj-M(
z&uV+ql)EpO%sosq{YXD9?}o_3V&u(ThmEoah{H>bE2#cyaOVk9C;Qvyq^>XQtRy%GgJ`@-awl_{KEoc4$^ezyH-Y45BVG3
z&(u{3A7X1TQ6VQC5?9{DrIC|JReZRa_xukvnmQJ0hgqL%3ks~Xw`#TC$Iqkdf`hL|f6QxLxuG|05_
z)-pcXeOHvZ{|*YsjvpX~?dy2dx~nKtZHR#*<`}tS7-d+AT>-J?B&<+-Mh<
zqz0MNu%FMm=RYsoH8GO7z><-|Iyx=tSLVlr=2FW)*N)~Ejf=||ypPr=c9~$&xUY|f
zemJU?r-!B^4t-tn4*Yz5D%YE1llvvK?|VqC!l>=YSjpHsKA~f?iz!<}BIk#ODE{mB
zx4D)ZwfCa*iu3sbSQi#`!=q&$s88zWW#&aGI+0!gDRUXiuLY^9=}cKoxhV~KHXNF2
zM;|gKX&V_#3y&etj{oVV|G?B(#bT8kk~Cw^-CBJ5Q2{$0o#!&xdqkYv`bl9#h%P@o
zIwh84sTREcDV_cHn45C-4|=!G`N@CE?8i4b<+Xi1eu#ajRCcDr4IPM6KZtM8mpJ}G#+PozsD
z-I7{wC+PsZIPDo}_5L@m_iE?{X4Ra@#
z2gT|w)uck*$2)TihC1>rIMXb8b8{k?s7TrH%~$JYoqS!Vg6Zk!2bZ(YyF9*sWJM@{
zV)E9vHkv0jc~og_uUlk(w$)EqSzIrEs<<5dIr{lxM&e?||Ha)`e^nWD;T}K)0YPab
z1yLHL8x#)wCh-s|$0bC`GDnLT^<
ze)hBX%t2{Aya?EKf~8EV_H@dV{qDGzYIaChmFn2AL~$-ml&NM1HSZse+vo>Ea>!p6bMZSsmsZ|$!;6CSILNU$o`e{2A#
zu?{It*@5rbNvY*&j7@<|^L5R}3kP+>0t?f&*1pcLyYyxOadl3k>BZ(pOsr1iLi7!V
z!fcI0shIM6^_1JbX0{8(TrkpSO-c_12>?hl2Cns8wpLjfJ5>{giG*rsdvTZlP};7-nt#0(XEO%qeG=ZB{jt`3Z8A(CxMy58^oq=J{Ck=l&kB-rFm|;wbG3z%XF)F-4+TVMwh8
zLzxj4*!$8v!solgJ64O;e?r3$9)(_UGtf0I2w=+#+>=?v2*SEivoT2sN$rSEF
z0bear;+Hj9ZoM8|r;9ZDjb+*k<+V(*HYL7E_7*q&PzG<_QsY~{!47i+2%vX(2v4_r
z1tHs&KuqG$Tp9*5|0tGJzBmlZ>u!<)N>=#qu*-OYCcEaEX{!S|Zf>4*UHW@6Hqtk!
zZ1{X|F9??0cu8rz#JAKz!|Q(6aK9tUaB}QWLJhXV$%;%Jt-UJglbpmDtJ+03&9WJq
zQ)(g336!3x7oBJuaY3*C%reDgOoWk%N6Q#*k3|
z8kIW=Ui9%hGVvpIO){gNz?=3ZH!a?ET-^}MIh#brXhvM!FNSIECT+`%@b6*&Yil1Z
zThG5x%FNy4ISC@8ks|$9qmd8uNUCEq5lBD^O3>jkjY5nGW`kQ0sd+>!t{QqDy{y0K
zfbJJ-J5Z$GEB82@<)=ZS+@nwyLn%4ZdLZDxk*E<}d+|pC);$Z#o!^v5FS{dq!GLW9
z?QGxWNxBd`R7PNeB$pDBig0uAfRyJ1iUGPXUqzK!+FxVw-XZ#SpKkn*sLAlpY$YT1
zl~1}PZS2w`u5akVR-L6iF;LkMf$$3*)2~o}9e!`0$R9-?Hk)%saek+>Kcn@GWr^K%
zcEUi70JRsyq3RDjwibk-elE<(5vu|K3hTR=k;=GSAie-wE1UaQ}KPOhQ^yx1jkf~^^_&wx;*O3g$OYOWC8a}b12Q1T~z@h
zi$}y=rawNFB-D#@2d1?D&4sgZz$q>%pFf;N=i$vs|+Na{$_RPmHbo4}0Ck
z)xUc7d+4`RO9!KL3nWY}@aL<(Z}QEmQ9>#5a8K&Yv6d5NlC9?D(xkx;_}S+%fkO4T
zKsmB|{aG7b3jgg!I?AgdB3(4$jYZQqN)P$=&dUMUd24p){9=`DwQ#T3y5?w2@!S>J
zAm>Be&^q$RsHbt_L`RS8_>$bw*f{h3kRGljIXPc#snyrHair?=n?5!7{3`82(BlRd
z;pw{4xVG-%Y<5YV;DBSYkpYch^F$(XR|-FWe6v~93eYH(S@dxz%g`y?h2_97MPeX<&(?{{BUkl{xY*1iX_ihe%_z#8B9I>A`kXc=;~_mCJW3
z)KwXRNLYYRCyuDWL5=I5oKd&K(?!MRs@5tGGNai&c<*y~J(`=V>#Y7EMY-uaHLM@6
zLje#WKcxh+0ccKPPG7#j)0AM5OMUiePD0(#qeO4v^z(B2^Ck=$McZ-TT@28846N~I
zdUPrG%lifZg4%9Fm%tQW#f#_d5wd0L-&vjxNX~#Ev2g~w&@f!$ifsIg7Yx|gqYKGg
z&ey!#otMv$j$ul68XJl`b|jB?gBJ8I#?m87us(MieYKyE?9V)cTmYiOfDLsVjX*+?
z!ZU9tW!ZLj-&9eZe%sAI5mT0|UE^{j>Hc~S%9{yuc_Bj|mMwnEB#%W5$PTt-pU*PY
ze$KwVmh~eTDvoxbRLAo&7UaJf7!A`6p~FspWgoj_di}$``>MX
zdv+~PDaJPXB-_5@vj5WH3=kt;b3^Os-9WX0r3ZP&FDxwF{|=ADX`QvG*WMctdJ{bi
zSM#--%KzZbn8T53b-DPuo1ctseN!cqfVr&I9eRJ4e%=m0oGqA?5c8A#y@l>Up3;>G
z+ha*7>NQ-)WO%yii}bMToRBReWVB9ohd{SG=0s!H3b9~$j
z_;(Htyf>JQncUomFF9QL6mjKljp`*kLXxjgiRJxb7+D~p?~|0{k=^i+u|k06$U7#3
z?;=DW0Xc$PlmYP9b={DFr*zRjVDtupKuR7A4XelbT(wHR|Y&LglhcPBVb`6eZ)W<6p|`lWY}$!5GR#4U0?srRkX)J
z9wm98=2?>z(t4q0Z5jkg8Nko{UpF=oK5JoLuYg8iCYAY|$d0R#)~Qu%hsY%}DGV5Z
zZm3{$l
z<%F_;>q3T$zg}6vj;#P+=Ul|iJVP1J%bA{ElzYM#k)3
z<@$vW-Jc07OkFQZ0#U?$0M(9Gi6pLf_1rEYEbBB9mm@i^9umr8$(8&qR(tt%k2!<*
z_m-%y7x{Jz-rk5nrCg@5A-<89FRrl5y7=@{BpF~Ll7FxES3O9On!P)%X4tGG{HCyU
zm@AC7yECyP8l&T`1OHxS5<5xL4|xa3(d6IRR~_<9%_o_@jv=GWjEy#rj-9*q!gk^*
zyGYR@bvOO@nF7ep_DVcB%4
z?sdCvOj6e7Ieu?UH$5^VAMYT=t@9o5KTW+jSukU0w12578FRF=3&)qxq9y@W+t<)Z+G2+!*oGjm4fkJb(R;aSn
zxp(Tho4T`^%FRK0Ekt{U<8;)g!NR>&8u2CaOw(H$#9!4w
z+Z8x7J!S|f0vgAWs*-$r3pYBk}p?(o9*
zx@d^ykYoUZpS(yfX(Ci8j-p9f^ONo$u)@AwxL$_uPPy7U_5B$!Kc~e-xgwLEV3IB{
zxm|xK$^^Ey6Rn}7t)`p$W9$YJxvwK1quTu2o*O`C-YhMJ3Q%e>?ruNH&Z)ouNOZCw
zvDNn;sUXsuxMTey7G=}@ZQ?7b2ZAzqNh70_OX=e~V`qQ-ZfDM$yz!_R1KRv9yE5+X
z;_ZS3=&y~tA%P%^xaq!H6T_9d?3!xTzuIiP4qX^K?IOK81y?n-(%b=<#Zvch+ss^f
z|0mHYsobGg&E?wc)>AeSFibzcB<>QHaH7*hIf}Hw4Ky67%D8^Y`!>6U1Gh0%QJm#A
z_v?Tt8V_mn2h4&LNKSyr>wENS7~LE`oXUR+EkdzeJYKykYtGdm_b{Mxg+*r)>7rI0
zWbu$LFOTPKJ(W+%=*D{n0qj{o+K(T?e+K4*P$FTa@E76C*Isu19!c8_!c|_wciQ)V
z6So;+B$`v#>Y?q*qcnu?$Xq2@grd`00}f(Hat>P!OE+HthFp_AdH
z77|aGpdt>#_B?R=sBo5bg`#+;IoW7?Xx6fDz;8)^_S326dd_{=)Mdk<`R0y~I3yd4
zU&m2A@6~p_>CSMbcBgHj)ZyL7693l2*5PyzUFz-<0lAQkNvZ2d{_0d0LCFiTtg~
zc)Gl{MMr?|;9H+;oO`C?Y3FKf&13B!`c(Qw`$ej(b^Y%Au%HqQc355Rz1_+HL@
zneWEPuzflF_kBabh#4`AD*G|=@>>E!N
z`LWyKmv}!ubJhbL^lQ_*fB8{y4+d-hdoOeZG8z&@pA_dOaNGB{NV#F#gia^Qn_pDz
zv;%a0@lff;{eCK{NLEHZ%
z>EWCjHAUMs#e&CfyGVnbb~Tt6)6(HO^EuC=$JVs4uR8Tz!#BJe)Q>jIXvm^+yZ*N`
z{-Nba0p++wlc}jyQy#6Z^7fguT+J`Fz3cu|RFGZl!s~3H^kxUchOV$>o+0(Rnr^i_
zV=-k(o3mWxVA)|SRpM~}mMI??c`B5sRjV^ej)ftbw|g2QYM$68ycv(um?w}Scq(8W
z+s`B%A!6!xvX@!Z2fg0PH=nM79nn!Ut{Vn?9v%OpGckAijd1^ut`249)xP(*YC
zuz%p;w0s3yC5p$qvc9g^Mj`w-=*d0T1*r_0$8^V
z$k_GlbN4eH-|KuE%I=*>HKqu?n(rNZFUli&4iYbx_3W>D_l9kIH05k3-)v9?iwT&%
zKfQbkVccwMbSpjYf`cNbFxw}}{`MvwvnUGg0
zbj``KcNm?y6o*W;_aS;`m7n{0we^C&)(nd+NUNud3B6T`9X
z{IJEXz1Of(gWd1D&J(zFjq6#hTUW}wu{Xc+FbY%`&1=oENW@9x)(3Wi5e?*q4q%{@
z3e)Q!H;G)a%ilX3s-CLE&|aR#sif|czsW-#5z$kA)r0{tV#~l@rz;rt8dwBG1>{L5
z-f)sg9$lEz0W!De11BP|qPj#Zef1955T|Gf)z-_08sdZSiA32gPmGx6hWAKL>a#iI
z96~QZUtY(A_*$wcoT2HyE-D+ssC|ZMkbpF|Lu$g0s7~Ql)t*OKY?%WqKQj1&SMaF{
zK#4_~8j0&j;c+;~O8DK-<^^eRz~UP{?Sheld?6+{;N7l7ED>QKH6mwYS3g1d1kiVy
zr2`U}#Bfw6Q1{m7%2CpyO3Q-KJ+be(DlU&YorX>n`a0E4M9YCUQDDhdM(slyF__(S
z3NJU(V9~S*km!e)06h(G+Fv)|v;ihQfT>EO>@J&nOciTz=+WKLKiJuYcp6`V@7e;T
z6#0R{WDBZ9(Cmt$Vmu}hdk>~4qDT-`K5d!{{Bafm}-GN+|J~p}1+N^*>Gwk_)8&
zoi5BsnVB)lY!JC4?IzDONF!E5F@7*AO8~V44LmRGaHpu46sL;`0Ovz7>}Yitf=(s1
zZ568k
zqsJZiQ0BRUmR&r>)#1hgP4BgYI+7?0Nb6+&snHzO7B2vSPKH$5@CL4KH-K63EBKIL
z5aaPqY943%WxnPPLSdtuGCL=HwmI$pHqTrx5->0S@)-_v1!jDiZwNa2kT*8eN(@;J
z_4$i5K-2&ZI#d%wgwnZqetpL
z{>m+Ck0e&<
z?OU!O1%zq_B>t~(L5%-0M8Pu)FaVIC?(E{9RZe575goBRSt-aPZ2w~Em=Pj569rVZ
zAOp`YRvbevva;1WzQ~>Q{|X+Yw)zh5`niHMh0*&o%N;T%%yZM1pCPFz(5Vv;3yd_9@sI?;v6e>E@
zi|ic(aR8!JDfm1OFFdlkpDRY&N1~fM>8sksV>H{Xp;4fx5R^aDC><*sXf_2DBu|0f
zip>d8$afidSL=Dc{o1pH7GU^C1yBjX^|>88CdCh_o`x4c1V24S7!K0@->YU_$2r&b
zPmo0sby9|h%{9k_B>O*^4eWj%eLyLb^!cqW$NUs%RwwZA#O2b21Q)(cuP~&3;tjiB
z`DB+6e*+@GP3mX>b;pqjtycp7>Ssgq5te@P*wOR>#@?7K32L7Qq;*Z9!(B|%+
zJ{dGp6-#(%EeqCfzx$HbFnF5*LJZ>Ujy|8;2qjgnS#n&1mp{WkOqmhscK1EFts6|j
zN95dp0tJnbc|YsOt$P|kl_53hPzKm5A6Nvg01huC0#tBygy`1gvf;ANqUd%!;4GL>
zH)-LH<~zO1*+mA6fgoWZG-m3|`kHnv&9oiAnTiREOWAd-L8MZyuLpA8|CXEWndB7e
z<|IPt*JBh+^UQekIIbjm3Gp9b)y-i-{^euGPY0!KxjzdnqGAoG>#Y7Iw*T4sDP-*z
zDk|bVD&RdiDo=jsI$+gPiB9vOys__!VboZ3F#FaM`7mH?^#;k{ghfk1f%r942fss<
zvw%@Sjio7U47iCt;S)#?h`S9=I7^PECM@GntGbKleyL8Wl^n86V+Wt6m@+jY8OTJq
zAD~brXih=#HUq&(la&jrlxj(;@NQE!@}6csXGEhy6c1Eh9lh^vqL?kR^-EDo7fuOMWrxUpbKju^0anP{WGVIHL2B`u;WnVyJ?cJK$
z5rm)*tGRcNmD}ob?^FSPuuuwEHAKE#)J(_U>U~G=(jzvt;w8f_@@{_sYuMj?%s2q}6XH|})y^qU{Ys$QXEAG&XkT9V1nBTF(5}8@@Sbj$-^j*K%1fvB
z-z}wX7b}MyYpSD&f{QsJCgbYz%!lkkxX5_lpkhrCB4^&umeJe>iC8Qmbz87
zM(W_fUEkXf{**Cn)zNyHFB&wcLX@I0nyGoJGerS~jY-*b2`VWrQ$x`YZ+EoQ>>Iu!
zfmHqKcqIvmz5eCcO&}o$HcqS(EXu*P>`lE4-*)_^=dsl-LWMwR3Yp8+N`UJsSXPs`
z%3;O`6%Qw>E0sbrC0Q)dSw#
zB?L6V-)I0zIEr*0ykSA90QGUA;IA%Dr-$8ZgMjOXJosV7?VKCWLG(^DnmE7?@u>6Q
zr7Fc)kXY1f$@7+Mx?0l%)^r6Xuod}0Zbwu^vEA+Xk^qA-h1$H3Tiaxj7cUpTLh^d7
zTa~b_1>%CJbt?gzAUui@DAISdDZ9}U@`^cf5V0_ZOI$)F5)5%Vvmh>@>hyd4C^LPU
z)*gW_YK(5mM1r~ibi0|K!sRklLU~XKF%?8r?1P4ln*oImEFOoB?>2Vwda`B3-we@>
z-lgAXqh2B!fy-4P5B~B^QTo;m43MCknVet!n&LuewA4fKw`bZT#&|CvMh>YE(Fn&c
z<*Y2Mz$nKUju^1%sM>N#VARhsiL~VonDU6NA{&UC@x~#u6>@Be6UyQMh3O-9fANf=
zq9)nYwsdclsUqT;Un@JL2MnHSJkmUo=-uP?m$+bcDhhcOY%<>b0$X1`ZNT{fgc>Ms
zh>1G$y{}`!VE-a6vG(_xMN%&LUQgR^*Lwv?V7LE+K2J)SMh`osElPtGHJK6}R3in*
z2z8};0zcPf>L}3yp@WSW(=q8ZI-~ZZ>PbXzcJWGzBX*{|%X5-72MvEW&&Xxdpf3qX
z#K3U{;LD{DYE|+AvuW@^C6$@ou4M^^=uLxZ;GCtLVKB!QD*%v|5EHQa;af5%0M8K<
zrVgg73+Pp+?q=K#n#YfnB8sUX!T=aieYMZj*3?|Z)kSq69ucL|Q7)Oc$;Rx@orsP~
z6J|sp2n2qCgaZ6xo1}(zo8JU}%1{G1#H=s|XPcdiEZ~Z)lfIeTnnE@WijSEfc<7C_
znR;rr)!$481(QR&i@{zTuE9D);9Rh+=)rV(@xeS?00Xq#_(SP=vFOW`&Zi{$=J}{?
z*hk)ohhdW!ZJ;z6w2Ih_JicG(?*=*`{O2#)k<}h&vo4T}S+%C0kELr@uZi?OkP}gT9qzHAmgA1`Tu`K
zl%iH@;YT^)#U;|;(vgKUeZEMn>}sh_h^xmEY%%qVSlfvM$vF^%{;HfU5;Jwxl%Kqw
zBK#ARs5$|*cb1Qg{w07)
zfG4#tr$e9)ERZh_crET*m#MG0=9uctfE`$^!F0D83v{aZ8#higqx-UxFsT4C0v13z
z=^hK%nNE0_eB5-|j4U}8&o)ax$fNt<*tTY#q_&`Pe20mYj1cly89KKmC&z>@$^cNW
zh7yYROwFaqjU|{UzA(AJB&f9uW@vf>N;JyPAXsK{k#KDyl~`3aH#LN1Tw`UZO7?gm
zq4*YQ;ojFzXSTEEJ>+3$9!0<*Q!!4AD%-nq1-+W`k%QNlEJ9fUuo-<~%F{R{2r&{;bNJJMNo`77ftW-ej)5vMlU)Mp8)wubjhRpbz5!30Jg}&B
zFE6aV=HTEoC{eD!tHtwEUBN=tc@ITFclT;obzcal!^UY(1)GXUhWY&F=D1eRZr&+$
zX>G8C95_vNTRxs#w#FXsYl2$gg3B45hcVVn;Ckz9aD;4VVIrkrS3Om00S|0#X76QR
z$t{|B9Tt7VN*Xk72eQcs{`+W_;&G2%^o|JLdL*`j)fj|OSVTZfhF&G%%=?KT!L!zt
zFI9<<@@dnlkrD=E!bltpy!P}&|8|eL`K%Yv6O1P$ij`K}`i5DI_;u@jP`b~2o_f%k
z#3Y2VsRB%V$9j`d|K7oTou7C8_FJd7b)Umjt39(7?KwqCB)=|y=_Sx{l*!s=fKW9f
zq*uZE?P_;v0XjEJ-}K~oP)`ALZvUo@F*(Va(aU$9%RJu4%nh;6VqC#KYg{GuxAZtj
z=LY2kI^3VaK!}ThA!ukf3=*<-ycMe#^o_L=SOICktjCDi`8&ZgGe99N2FIX{f+Eb#
z-Y<)TxJJv_7nGFZ7bxGtrArFp8zqR4A^e7!NPuR;>?KGD+!txHPuhO#K%COK5&CXv
z<;V70lcy&OeqNfcrfteD&mrF_f!ANG@-fr%>u_6JTEGj9-_~M74<3bwiaWb?ue?bh
zxC$=P;0+>)6tI&+izt|@!x>>3BYpl5oOytn|KooY4b1kyg5w4
z?%_x=i1KwOb#*4s+a*x@WE`FlL87Qod3{qZ8l!iarQ>F_VopRD0@f!G0Xi*jQ3mSo
z=KtPUB{GjhtUMq{U0B0-nEsJUj805Zbue;E?VkyJ0(pWs5;wq_IbVNN1b`FUXU;c3
zOVYA_FcMGhV+%>MlL4qQ@+E5~KnNw|J1nuip
zd@=jGqUooyo)Y(g^O+mSuK_w2LblqBv+r|rN(c%PrrOTc{C`tZ{?#rm-gd(3T=@ZY
zaJ$U*N>PIRp#kc`J1GLSYd!s#etWx*&S!+upQ}on3BsI@$7n=qi5p{0D3DCx9|PXl
zh&;I-fY)=^(~1)z$7!>1d8}z}$VJXMLL3l>#j(m?WwacQ3P5$1L4`+hT(MR;f8IrD
z<5N%;`7c0@8ChZ_Ygnsnr6)uYd-nyo4z91ll{HHXENTp3bRgJkOXN#Dw?$cBEDic%
z=Kk6GbAHQBqyUgpgE)A!`u5u|H6L%BF92;cuAXC3&(w12DHTNYj|9}gpn<}#YMT~X-)Dx?$a
zhJdd-lnQ=_7a7+X_V~K!5kI%4>@*a){nLOxLJZh|tcW8)p``EL=;L(V+ic8_lljwL
z_QLhl>(f9YkRCwX1t?mk%;a{zPa4!(HCl}
zZx;bAq;lzY8!i{a4kc{jkRdt1`2|$YFQhcAWY}uEjTz!}8!4(Wh3R?PJoP<>u)PCg
z=nME5?{r>#>n>a=^3BA8)?K3WEOoRbSp!rwqyMLZnBC0Vc)!Q{ncG1)Fw#xcbc4|m
zI=*i!m5r%TA?%1#kl!XnzAqjQwTTE-`v=%QcYeof(R|r5KyQkb3lV(@&>Yn<_W`W+
zFeB(z)^Y3$)t+1$UfbC^Zox3Z0kV;T^)`{vXFnZ$bq+oEF%HWohHjNgXLlR)rxd
zW|Q&2f>v$crVA}M`)`%sx|AgkALUSIiq!qyQ$ZM$e1yFBLB9za_)ZqBeInw
zg4KQ5!A#S164*Hi8y|Sfb{0os%k5!nbj$pZ4BHyUm94&pn$POw_wBb3DgoBaGgaGPqVJn_Qze)jmP3483z9|gDO
z)5Y$~BvzJxU9=i#ZT!z#0K{zq=x1_b=h2jlwZ@dv#L_>FROM3A-8aU6#c1OJR&5<|
z3@9Y&1ATP4-R+dfd0pKr@tN2O5bodmYC39Cz~~@Uh-1elV@Wb)J}VtUqg*{k@5gG_
z(*|&7K+ykRTYLfXM3D9I`HB0zSLZ@kTE`s$+e%JiFHG8x0<-aE$x$IM5XW9fU^Y?r
z`(r{CWqG5*;W{j^PqbssTavcL5-!Y;05P!6qI&kW@VhBI?-|=YLfw!#5EM^DMd&mY
zc7S!7L53iT5+Ek^X6mE%nb7+luXpO~9c$AgyzKC_%ct$(60HzXE1;BYL1ov*?cQ$p
z#pm-%C*=_ze%lLpzgZvRdy3E)LP!T9*6)xytEKh3U%Yz-wb_B2OJA=rMDUL2;|pDe
z2u22i4FuBokTuJlgZnj1GzzagJ_>UW+H^4Q?(n1NZ}>I8nQ_J
z%H`^I8eT5JA7|YHIN1@(E#RjA6@fquY(hUkDDj(UjaY671AG;EX
zYgjodgzY6_;GweDUiU{z6C5Slc%eEr`t)J^BgskiK4!C~=G}(>EuR0N&UE=Fb=cp#
z@lsS;E)B}8W@_jAXUNmj*~$lTl*$AbNJ)k+K}iof=?G^Wwzu0>kl}AzJ+~U%3>-}%
z4ZX7Y*9@_;LpJ)_s}&X8!e{TS)$2W<9qg3|77X_bSZYZDg$rN;HX`7X7A;=G84PTz_BgA&g5tG
zanThu?R^K1ydvxcAIJ*#OqaK}kKK%?xP5bPVC}1BO(hU^ea9Qkf)D8vLNwA%uUx0G
zuNS=W8jSLNJyz?}WmZkbNAGa8-$J6QH&zSz=NBRIV43ABY`yPp&w^Ti;f8k_rVByq
zJ)Hh-^HX|*k{Dp91ETk>r3GvAPcOO1_eh&gHD_k`#x`fJiR6z)%T5Eu25Ya^N;ure;9F}s?zw!G
z*uX4vfc%fv1FB*xbPIkj&C6DKD>YSsnQ(Cbu+4ML$Jx5IbP?2SV}e0~e>)ly|89r)
z$3}zC|KFTM`|tFCxds3JuR1yx^%9iNYaYf)y4}ORh=~jLn+`H$LQuGTrUE}R9S7&Zmgellk*F|@=&kq35u8Y2tX0J7~
zK2IrI8ZEWFKI0=uNm$r@x>f*wmFwYwxarAxz1H28jd2PQU^?1$)a{ieJz@H_ZMUTE
z_VUNbs+%?aV%bNxmJT?{4sjmb;TFF(hkXCY3{r0D%Mxz=S&B^2+j-a6lleyH~v
z`j`oV32Af&b_`D&M#6U!?VC8GLOFe^XO;(*4k(By}>(i58E#NY_
zo^R~!?=un`>`s$WL{uT7iEO9RN?Rk*i|0np;4ccS7PAZ2^NCS_IQ`moOsUU1LwSX
zzQr?3g}E_&Z&TYQK4ZW!-{fF(B%=_kbX7DiX~~bqTrS(y6MiA{O8h5@%Wm9$ZTND+
zCh990Oe-}tf?${AE7}SI=i?iw%lo7B$aK>4v#4z$xM$`2_tzH3`(MVsr(R$KL1^X4>bHUb;5dI&Vq_-3JA%
z=u{ONTzM>i_vZwW%3+4udJHuJi+=VTYc>&?&;{}``S$t_9c&j
z%kUiGSDo~19KmLnhux~`%&aUU_ZI9*ij#+5l*8
z=M=#yls_Cr(lrrt`Sw=fYdT1AwQ(-xj~uprM4NESpbLwY%D=nuX(FEkyoP1;chFZ@7cGOGi`)M(>u%Dh68n`VZEVqcM~pok;CE(@8-F=Nq4|>5^NRq==BjUx;UfAxsRxTmspMi(MEF#>`
zUS7x1M^9+QZWXdR4i}#_Rf~ACCMdaa_d=JanydNR>hmh^IcroW%icHO0{@z=lxt^=%ob%lEBf1YiMm?yKJhWCX;+^gW+?Limj!0V==={E2kI82%kMi?y?
z`OqfMu(#o@x$H;f1OtEmTmRGSktR3T?@V`wJR5;0-pyGhS@h7!j1XESieRqosSn5d
z6N9a_UpjA5L-`L3A6+Jz?&7)j)w55#C+n(vUt!-8M4Y6S97juEOg*`xDkSb)4gDz)
zj$^aTv0hH^@6+Zu_tf)qMwu0adpyxL+jJ%nRY*#z3=z#W!
zv-k5aY(a9iMaCd^_f+(
zq>{E-yzz5UIj0M*t>-#CuTP=$uFj*qed|nUYE^bV`OQ=MCF;0Od4~4P9V|i2%pOo3
z?OuyrxaSTS&HF^8?g!zIPYaxPZ$+94cRTN|7tGHqe5`;8)8poW->0kbr+ucthl4xG
z{1!UxIVi
z{kQ_bbtOFpwRGw%%okVbV$cRS-xGgJX*ai=fT2p^l#diW6gSO#RlY4ci|
zi}sdeb=$G#?r-B)B~Cy4yd;p|b7~nitA2?qCj8FVS9;6g(+6WoYS|AU>)K%X?MBfD
zz-0>ErK=Ku>{u1Fsp+o`@XMZSHLeU!0r;^r=G%-h9pUQ3@R;6_&5JS|xTkfegFI7f
z>#cmt*ijcL^V-0YK5y1`r}vx<-cd=?O6kJf^-qOkYi<5E|K)>|iBJNGoo$($)hr=@
zy{VJVa7JrP-FJNDcgyV0GYe(LE_-Qjtk7@Aa*T*UwzWq+x7l91(JChEGbo)|o}2x)
zY43Z`@M~pRqd;k3fCxwDsyec>UC*zuzW#os_uTi)pSx^fiDSH-G5YLaUGzia4(nsF
zJV2STU!OG9vm!_)|LfVdldX+tz2yb}z<_r`zz_r@5(!iZmxE%BE$OrT(GS(F?*Z6561?=N}!;BVaW{xx?ygAP;l+i{;uAS3Y4O1(eTg4n+rPNQ0@_!NjLO
zOHHiLX5cnmf_lcQabhqW`{I44UN+*jwr$j@T`k>@>Sx?{-tx{h?c0YB?@#Pxt!u~~
zN7|FFwR)tDe-TE>6T#iZI*8C!R{L`WPYZn(Pl958waTeRZ|%@Zu;bUiI$6;UD{WWUG1!~PKFt&>tMH!>%w!%G*DO1B
zPc8QS_!}ohScN%ZocqmBs#9Orz;+?2EIiW&QPVq%M9QmrEnghFLYrzf^65M=#qGJW
z+GU*{i54Lv-6uEme^rm`DlCa&B{pkkFw3TVz3q>uE3Pz^Sd#8D
zGsg~em;&J&ZHb5D$v?haPjthVp8Q2ePT;Nf61J015Zfwq-K0z+wi6ovFs6Q=H8()A
zGF=l`>t{c)a$H*b8UM>&Q(hhXm~y3h&iA8~Y;kg)=!V7@Tl-vcC!?*@!D)Zr`L5{#
z-Ez0mg$d##vBto(u=HEkQtDsvLE|qA()|SGnan()NvxtmS9)CFZcz{XFBwoZO2>wz
z&!7G%zR%f9_pK@Ud%dC(YJ2?L?NwR0!^L664l
z*-fOr6@=(*XR6Bq!AHZt!cbzj#_2l_M_Ic50961fEig}4vG{S@k&GBY*{Dnjq|^sGqE)$z3(M09VUkCEV1d+Ilu
zLd!Lq?6znJ$Hs}O&arr^vC&bft(@PkpS;aEnuwf@y!%6`7zG2h+STx3J+F;OWwe?in>e!U$xttoyJyv>@4UI{K@0Bp=Ob
z&E*UnPY_?R$
zqG=sg->Hr8l%*K&w!XDg%D6I*!&->0tyq`~@U;7}mh9OT%hsyOg87MP*>G*>x?KKo
zs8Ulu?K+&uyhg(}*|he0#HEV3&_Vy?t(|LJTy8Y;;O^}ddKL-#68BQWmQ62*w$*EY
z`|!C5vttsj+sj>IUshIxus@XGTYKy380JJl$8l+&PG}rEHF>mA05!SY`6`G5}B1&YA1Ex@3Jfgj!b=>
zKcN7YOKslbDFO+jt4BThuSMG`*!0W7~*Wl47D+2X~j%Q(iTi9sZ6~sD`zFK9Lg5U
z4%?rYUpU^a`$T>c{`~jc)UD~7#qT`8NNvm4*Ap7{C`{%diQkQ1zqptoHtcu6;6{bT
zqgFg;{U?hY3ldS{d|Zcbh}#Gkm9jCWgfFkc*}}=J!_?H7n_-9=iiB;
zG`ai!5AU?E9|gXB?su8d!r98{rterqHiMeUsly>So(Q{5)%p13s;(=jG4y3&H;MV`|0A-ubI$4&gwPuZ@m>;@E`O>oJ6CxK>sYD(a6Ya3BKN$-g(z_AMrKz^Xs3!
zV>qAGc$lB^gseTAt;^W=LzvT~o@;~yUkgLyq@F>47
zh^g>T2^DXmyvU;m&ucvW2PY_}Dl;s28GwI?(O$yB%kd7zy=EFDx{a^?KQxUO_*gRO
z=?{eR@>hRT-Gbmmp&_cyIemf3&`;W@$?3%gcLvY*cbh1tWbO0=V#P^Z4!?A)zcvs<
zb+fN3Rgplx4U0mu+C4Gie~+G(E%VMDRY}|e??pN%F
zl?(4oD!l5yy_Ra&&P$bfX$1XdoL&4liNx6=HxzA2{K3`!D9w%@t%L{($10eT+o{Fv
z%PS^P^eomW?X%3?Wd64t1yVf1lBNc0&)=&69R8-hX$Ts={FnPlgrBX9&Ht`rWC}fp
zFtD9P_>2x;dndP9C{de9hqa~r&>XFf%eg2VdO=V9B)d@z65}#
zvus}2m{mt2@7rz4O!g($!Hs-fgWqlO2cq`ADteC>0D?_I|El
z7_Z`mV@hb
zF7!HxAPenW0;i0{+@r{JQD4z!Wy9srgXh67q>mqbI9^EEWmtN^2hp`9p9f0CUUcX)Y$$ojs6>R;zZ8
zo*O6sy;~dGm{WT!xg(j&I5*osCwLG}p`|DQq*!prj2X7*k2$#BZl>WR6NTbN$$iqOpQ!zMV!`6v-$rGF%Q$NaN`{?~p
z{<6YGpQ$%o+^u(K28j`W^}U#e9?#CvD#It8Uw(`O#%~;kVyHY1%60PCckeWVr_NV+
zVCNOA%^P2&Q`;;f$4Ee+k~Ot~1-$P6VnBHVwHYB|T6q_Vnl%DBu5nW0jOMFnl9+>^
z(-reWs@``m8?D(fCd}^qI#XFcA<;#Ps_SZ4-jQ9IEFho7v
zabEdo<#a_ZJP=kP=0o(L_njG?extk82Y++Nnv_;jHy&p1w)M|Buv^XhfNtM0v64ZO
z{~}orK3zfR2rFF?oU1X`SdWJ!CJMd=9*RY
zpT9Y4l}q&|bX1w5z*KBT?#bC*EM-tfvh7{pQWWjzV=yIpe(0+2ns&Ox%S}173aVII
zPetJ1w)g$!_dpKi`H!iiPKIa`nIyl}$?HK60um;>HaHD2*4H~HBY
z9PVThPM+_y3d$+XKAcoH>DR)%6N0P?poHimJ~}FYwW7BzS`c);RiNyO`M##`>juF{
zN5~(MeBPw(Tm!K=QmT)wn@R&8tJTAbIi{gR*Hg#L`|BsNkV@$P!E~WBbE7xu5uWH6
zhaM}7H)5F+EgnG8Zj`#JO?RFp9-4_4p5;bV=9=oL`Bg-@Pt8XtEoq}QX@1__vm7Nr
zo_=V@$Pu-B^__|!z&qbc@m#=ksZ`q~;I6)P@n@47WoJHqN{^=PcsL1@&MO
zw0lnTN2WgJZJCE_=D{iLpm!TQ>UxOmeT}cArf$XnYctT(Q^|5t$zm7J8bF`j$L>us
z>)n?Wn}f+IM@g`RpjR_SFxEvT{2#j|E__&1Eo8Z#S~#cMFUdW~#t
z2reGeY9b+c7-rY*k&F~+60TMpiOD(iX4AU!RM)K}n?{*}ZPG$GQ{_kR?l1mR7^2wh
zPG$cY*&FNlW(^?d9C7x~p`GUq_&$C~Sv$j&joI>87i_XU-V8D#PTiuwt
zo*QrLEmHX}W9da(mVMXk5rcbaX6RQui1%3^g2yejY`>#9IVEq8TOZ;z5v#3-z6?$x
z+-8AzV!;1jEWmQBK&aE>fKD};5IHmB|ImLbJ%PM`Kt_V@A
zpNzQj%w9+HLdvoTH>eghxm!XZBD9bR7TCX1qt7=C2VdFzpS(|d6&Ei6bq!g9d$5v?hdCYz|zPdP|A0L%J
z7~P7A4Lh`bOz`p?1ldkP)ngK@8>yK-vaEZAjrw(P?>7}Drvp1-Frvmacy}mb%KM5c
zB-o{X8=O-i9tElREP+&M66zHs(dwp!wR{f?URb0udgibVf)M?fy<0cklKo#@C;B9)
z`p=+59@tqh3w~s;EpFkKZu^a2aF^fvKTUah7yLfio?6*AjHa_)l|a84*iQT+yp_BD
zJ&KRBeJ_GbH5^ASmjxwd<+jUku^W70>bEY?#DE7%uK-k}%ian6PrSp=qB-ahqd$~;
zrO3$vDoZn)x3zf;>-^KfFn(kB2O;rUV==Q87~(vScV_DgmkzHjcdq(fa+KooL%3nw
zA}SBNbVI<3?y0s>75lHM^$BU0%Er6#t_A14&o_Y&Yp9d?AtI1zbcbAOXbmrI4Q(GL
z-%rrdiFe7$Uc2~`$snaiH+lMeOe119q%6z77@i+FsD<48bp4#x%$?yi+im4NuW)$9
z>?w-|sW9rP`MQRKW^9H#6rp<(RFDxigr7sApTui_BfiA^d>lB8;?no~wmpIcxJ2^GP}7_p>G%;`D#7Izdtk
zKVajrOZ9J_&erNGo*!`;z8pNl58;m
zqPI5UdTykY%AFOh<2SVpy>(6HPzan4sc2Zf+)*7))M=Yqd)m`jkT8eLLh>Z1g32P)
zGZSV%MyVKNgC~cWH)*FUoGqT4--rk7r*gVw;;;QQiqM`1$3w=2|Ksk#z^FmQXo*#Z
znDkb@Rz0e;sXNuO4+V)6inn-HY`a=i3q*Ha6t45@P?P^suo?A0$f#>QH?*JAodgfr
zU6)Z_O%Hp5)k&tW>Z9`Fzz-5o{`Dc+7Laa2jMW|b@T$k~m
z!b3Q<9@7s8t$7ubNC*iFUTuZRR>^EaCP!ob6;%_i3_*#>VL#}ou9kYQ;SsD%YTqP8
z+G7HGWTg2y<-s>2an&Z%_Y;11N
z-oeIjtzU3w)&y~d)ajY4-pCxpi!1A%7K)BV^6bvlR$q#Q%8{kI{g;o+>s;hiIm5M1
z>>55nOj|gu`dKTN=%iVPRx6aL#9Jb$FZsk10>S_B6bW+6Sb#R73
z)^UlElWLSyPU%NlxdmeYWzbv_x6tJ;1?hx_;-5YD#c*f{
ztBFj^BtvIs0dBhsx8{t7Ok6s{jBMyAz*G=XdJ^~j&!%jeuA4ANVoJ{A1zUKSmGdb2V^#Vk1_>Z&W#H>_Bqfehc8!({MTyT@
z69oT?mFDUN^9k-{Qg_Op6c_DwSy7FMV~G*lsl3;MZn*PKFhIP@9Riv?HPQbaDJps^
zewquYCgA$w_fT`H#NSlow3)sWBtH-;uRb&R(@y8gqXsblzw1gNlY!6ZC;5Ljpx>Mk
zfzmxQsQH>~$u+j-z5?Fr>B9yIe#)28=X9rp>^xcx9`J*_aRsfmyoD`Dj5W?t@E
zdv~~Lu0!cDs1eiMUJJ7bUBnwdw&(LmozVG%gu7npM*BjqOq(%;kAg(HQ0k0uD%>l@
zq{`!-yllZk2eFr3`4Am{5Y)qc1Qr^Ky0M+vo`TJ7J@KXtR^I*k1kpW1FU7v1K(9rWdbd#4>
zYPrq{$?pL%$QfEmogOSl9jv)bOm-MfBapJUysV_++L~;nbgr4pFwvy=ZM=`vMxd`x
z=)%%iD5T{}DH$CT9k-}{N7K_ExD2K9SndCI9y#DUZdGG7h04@_kMKtQTjodm9qUgz
zvy$rg8fFTLB__c(psf}|F#UWHo|N|i#gE~#^G_+nx77~;HHNvKCBLNRaS-9Ge=pDU3^^YS2>sPF-k9%Z+6
z@7~O@TzY91n9K^uVqhmLajyM;(~9igIh=cOfO+_IUlDQ*=3^VfPB;I`-#_DAc=FSw
zLfz0X#9J&WDDH(KLuJw$#$UL_dLd&kVOXgUKy
z*lcgi_VfLXXDdjTcRtWT>Y~|4NsD$x!OKmpbw~WmSWJ&%UU_!oF3Z{D4`3p%<#pSW
zq4r{XE3ajiv+`BFpHiloXp~zm8rK(We=K*hP-96%gLR&X_E{yHByvhWwliIhknGTl
z-GQqUVXQLBct3`2r57?3y6tnu!+-5zJO(80)8eL^)Ds?;m4nQF>O~R~5kBwGlkew0
z93-BTFyr$Wu?*;rs~@55V@^Xx0FQUHzEIAf&d)t<+eizP01rjI&pv-R?A?c`Mpt`sYVf|x_7`bBlYN`8a8>LDP)Z#kG}s7&_exR%DAJ4Zwnby$MP@0*wdF&7AD?J
zMi1TRRG;EnaI1z($z;t+LV_!YY)*DRE+g86p1Bcqfq^O*-)NdSuzlevP2LE4#8-Eb;)=yCp
zGgO0cd3I{W+^}J;ckOnrpcn^Q)0QVa@a4l;Hm-hpNDBQDIV#bXkrC3W$qq-oP=57<
zjm54qP5HIUlk?lou70f`x$z-W(9D9eMp#<`rol>SN|2W$u2gQ}z*YbYklhApiiS_P
z6*mh^Z0poK>8(Et69y>7{*2nf-WEw3sNO@-vT<$nx8VT81(v37C?Bv_`B?Giq|gm30l<8LrT{fIf!l(Tp(Am~NOd%?e=n3^p7TWk
zt_8R$;FsUN8KdlBc*%%2xj?LLx|=*a0%+$39&k<|@aq@gWOeU07U##x8$7Y0uu}e#
z6gjp5K%}pB2o@CT*hB>Z3HrzExVwn;?v*w#3Pl4c)@&f+n4{F;VE{NZGvlv?e#wiD
zqQ>$E4x?ZstPuUT`TvJ`=6RiWVr0H=|2oRQyaKuSjkBdaG9!{0=`uIThfsNbqjhSp
zq|QZytJ#WR`&tp2Dk_t35;=EX)K&ibL?q#l1G%8Ilbn{ZHItJoz;UF|tX+X^D+rO1
zC|*ZP`!!R3O3F*Hb7E{2*y}$fLW?2dCQv{vGIR9SnN*%UF|B)8;*%sp*`L}7CEcH+
zb@U46xx#n|$^M)+@7cPdY<$D2)=Y0bc9_4VAe4`qPcC^GZ3u)<)X8$7M>eMSZa(aJ
zg%AoO*;j%4#x7!9-FaW!L;nyb3S$iTo*mgM_c%=~L>fj;XCZwEvxE9WLjE+3)$`rK
zmxg2M(yFrM&1-omXl6F~#!T@9V7RI()nSZ+VRCG)OTppw|tOpM>bOvsum9*zodC3Bpg^7gsMx3W|t6(@O7a&S{|uL^Fl%48{KEdr!RH+w!L-7L#u6D`yoX9|0oVf-j&t;
z*Zow3FQ?piSBsI3gHo!r$(e0Nq1riXyG4*-g*n@`X%t+taSObjjU7bMF+X8?56cM>
zVzWamJsgV`&YL)B_Ow0MSBOyTrk7t&&lS1lYOVP#tjsRQT6AIv)i`@yHvPMTc&$V8
z;8#Z!cShyZY18RZR-0|UtsBZF>$Io&!b-u)F)6Aa-BHhWY*mgWk
zgnw`4e;qxAW)-d3(@JoT#dKbh9p!G1Ls+#2xJ)6r>M@;OZZD0h311|xktB(wkW
zIy&mmeB-JZ$W|S+jqKYkuzi}r=3z%EG|s~B?f@URfWN3Db9*pmv5jL6P3+ZI?4D9f
zV3Fe^g6EM0$sYp7uUIJc$qao4$M)~d9f$Jlt#<*22t8fy04#Y5pF+WKfeP@frskyjGiltI;3
zAm^8jPq58F$TSk9g30j=b|VgpP*CZ3tF=_gp)=dYs$y*ZOIxlQ?$F};?|2f+KP^{W
z)Brf9EDq}Q*Xs7oh_Zu9-zw3a$y08xhE`g=*on?vn6lORyE?f84GScE!>;##`)U1*
zx4Q5EfSF)(VhQ9;Zka9zyyNl9Lr+9W5J4?qH#eN1Fnt9KE6zU@)GV55zgGA2e{(mp
zZ`$>l9lT9DH8}s>L2d3->RNMTG5<|{0>1b(3ofpg`oX>zo3NPXY+$9w`_wf227`BH
zEn}tB)X?K}9^lNzWu}pK*}r;tHeUL`#W^`!G@rDS0b5bG#XN5YJ?5iXxMQ4M*tD&MXPOv*>LnWOo?}}U(XP--c5{<+;^Va6FBW`0JgV>Js
zd1&Zq)v*zCAaeLlfiS1CSihl{g}FQCBo&!oIMnpv=>-*kI=KXux}7;csD
zjR;Z+Jnq^(1wO;LlsB95YL>1B<3OJoVrVlTe^vc3wAz3(7~u+R)@~&bvyYKSXm5R@r#-YZJlDIA
zr1}8}ff2)-hCrYf)HnO^H){lBh!V#Ir#I11C=(YM
zOw0wBzQ)t$+cviep#X1fL(jgUcWq}ILiJc_<4KlG1sPF91T^Y?%>
z*|Mw0rxm7^kzV^%+p_8rz~n|xI8N?rdGn;)dbY>F!SPgdQh1++e@!10cWNW7YGr$_
z_^L@TAR{@zC~XwCULnRjTUUb$9-Lb`qRs89gZbdM(G@ew%%55##R4Q^enm^#lk|4W
zY#yJh@rZq~9YG75`95t9xx&W2%%jF0y}oV-2Xndiyk1xaf8gVLpcatV;UT*8OpO
z()3>K-h1bT3uOwsdF}+2hzToqvpHVGnFnk|d0(r!p4&WfVJ~085a45^ycH;>FEXAc
zk70NS=*!K6fJcPs*;8;tjtjM@ave-wCLmzjoV-cmZn5^7?_j*9_{5&@>St}^DO@A@
zl!7xE65`MzCe4N0n!s&*#k-p%Mjl4K|G;fVsRp-Z
zxG|+dVA(jCbmn$go!2TQj4SEF(%P6RBI&)Ks$OO69}
zw-zWVy#ug^VbW?#}?)^@+%^{n+jLoQ&9AP%r
z*XX11s8Js`jft1n&`z=@X>gSXhL8fwGr&(3KPryaJfyx
zE0Pd5e9bEJbl*le*=qdUe!L9HTR?ts)c&zH-z{!yRI2Lf9duPeX35O_)cU5&jHF%k
zRi&X?jyIPbKWG*ZAHPjKb}^EoGlHz>J~FMk4^6Ikww`TgsfQ58uDSbxHos}-m1@TJ
zUtzb&e_%IP{wLxl)f`bG{OGbwoLUBRCmDjG{m08wOj=A{71JhN4~5kXU^L|VbJnG;An*)5xPjFuLn?De|UD;(O$w6|e^Z)MOq0l90Qv
zsUk}ll*Yh7q`+5i81t5N^6JC3Uo7oX(^v^62PI?eY#9aFE#n4NW60Lzt!M>$-_&+Pt4B7?O~(!=X-j(ZX%)~<
z%GsfW{OGR}Q
z(aSo4koZduGbZ3a*D0`GZB0ezv{fSjF>*4*Chc*Vg6qrDr%a^BpN<~%^xdUQf(oo)
zvj$4lj6k(IG+<8tH0!hHbjX^6nX*~Kxir=~f5IJ_mRt3Z99uDL6|q<@IU=3q*_j1X
zJGcF#*P_COYH278=6WP3;s{A-HG%VC=WC&5zSf&l&0+4u{qg%yN;X+<()v5Eht@-)
zg|fKQR|R45oKXzT=>zSi2Kcs&-vu7mIa16J^;&gfiI&y5sReOsEDR9?O6wTiNu1J-
zXgQ)gYh+C@Dc>Bsc~HFYGi9k>1}|ubaOS#geJ&;-y#e6PHC2zf?=0dXUYZqkq8!abBu^bOud6-nTmYrg6b{p6n}DW}KX?imsKxPWTOEni0E;$T&Mrahd3=ABm7&
zTacscO(iD=2?7bUF7JJf&C_B6{WGxG1ahjTz8
zn!IMqHmx4Rd^KW326MBqZ4B}HUL+Zw5;9nZ$;P~@*>Qc03Vj}o6}9^go=M~*JG!lA
zW;1ICMCIZLeOkOfK@p%dyVxNc%`3Q8(P%3eGFroKJ~%-U`wEbqeDIyBR9LD`GMo%c
zRCV7XAMAyf`KTqiXvm||uAYhPl$yeshCC~>X9s73QSn7wDpv0SvCIYm3|^~exeSPl
zZqCv=rtm3UGH0iO+qBZF(3Pvp?#P0oDE^BDFs9y*Z@JNu^Zw~CpXrOprLKzrr6jq>
zF#+G?7ySEhkVI-iEmXl5wZ_RDSONmc(^^glEKv$+o{BZj3D8%+1f5z(PYYH07Yy
zMKAG#yzg{`=#ImOGGa}Bk%)P!I1F42%Gd*XQ^1#?G~?
z>SS;Vp$3d7Z`vu!_Q-l2>P|>9<`;#whVa|OK%123Mn3NY19f5J9^s#sKki%}Cw1js
zb*0TQ|7q>oka^SEcw?F&dGzZn!Jt9*?&$zrij*Z{Uw+1*58^^|+xC9Mfq#a{N6|3p
zl;yzH0$cLUEo%iTF+3=GnAil-`l4ySd3FkUigr1P#@c4@mRmP7*@L|B|oL7OHp
zmkw-(ch8>z2Cwgp!Q&Iasnws&Y3x6Sv1x<{+%{L5S2@ET%;$D(P~Y4RQ|81p*e85X
zPmV&1gR70Y4qCk%@nBS>1uzMU;jR<6s=)rhtI;`&ZKLD_p=gJ+0*9+%Zc=0<1UiY=
zMTjhk^I{yW7US>_zDiib59-mR!OWe~l1MI|M3~wNLmp1C>|``T;-tjs&Ai+j)!BEB
zZ&=!$W8|<;HlFGA4azfu2o?BdR&_sdHBkW1KyB%?3h>^5
z0}2*Z)k^6dS+`RbH2ob<^_R}0pA~7-%U{OsoaCmKB11;f#jpuHlJjO=ihS+knO=%&
z#NadAZ8q!l)eEK}
z!mrWK;4vT_e6)HT=KeF3A1y}w@X32jZ>t2^s(qb*19
zb8OrOMyZT?s=#1tkLcj^k@o$4S=S6o!B>@u2m)j;R7=Duj9Seidj(YI&h=)OfABqc
z(FC{R`KDfrdHW?_#0hgUdolCfh=~YsRrmo#gZ&O=f7%>@P1X@;zzF9;pC^RT9OgPO
z-v$AL1L55}ynLKGCrzr5vLI#XCGpV7PA{QSK%Jol__ouL)*AfYe4gYpBBg06shA6HM&8U8L%CL_Wp1L5210|)h+ToW<8u{vxJ
zsl}%5d>s2Tw+h&RR64@?k|D1!&v*eu-#V*1sdIULUDGp0C!Jo>0!Q0gd^=Jet0jxYn{J7V;Ipn$)!+ZO#i{-A){YeC9q=G)72oZ>==
zhi{vro+FbVh#dy>tQgUAFaEgoQ?oSlaIBm^xexd?*BTMox9B$AjkUJ;Nr@
zl)38iWYJlj+Ue)#ktIw#B4gCKVL9BnT+I%oraz6x2<{~y2s_1K53|;IBh-K9jcUFuV3Q0Q`JW91SN{Q;tGX`R-VQ_tF(%f
zhg-_IX@(zICMN)|idcu`A)l^^&?y8`PL&dKQXdL3|K~m7+)X?EyARYrsMH1gxEm$n
znrsF@(Sh}~_kB8%YTwvTY3U*AsS)Zaa4Mzw4KA(CkBY}1wf4W(e>nlTFCVFy`Oc)1
zKuVx)FRv&z?RmAiFzwsxjk(I@$T;Zel#9h$CnW#@m`OtTu(x{1vcO;X5c~~3?Ckh3
zX?C4P*D3Sh=AhOShnq|2uTaSy(6r0-5KVp?HK>b%@=7|H
z;7>{pH|gPC%d%xDHh2Wb%54+YC$GDs*{$V?Rqso?&3`iBX(45~stIUEs!o>N3$-2x
zYZ>Anw*q8Xixg$1PQCgEX6SEI
zTh?#`rg+5cJk8WSTJe-H>PcPYE=8|Yg9Z0_*X{z8QlQ}P#
ztFbhl@NQsK>1DHQ2`u35HiU(A?wZs3$f_)4_+;>|N&rfKgI6#U$W73yl0JQ{J&PEu
zI)k!dP~uwR6WmP?r-Vsi8{CA7XJs13U>K@F0i^{T#X7D