From 9614a9ab4fdb674b4221dc007b34d1291d22247c Mon Sep 17 00:00:00 2001
From: Maxime DUPIERREUX Design Pattern Model–view–Controller Design Pattern Model–view–Intent Design Pattern Model–view–presenter Design Pattern Model–view–viewModel Language de developpement Ancien language de developpement Apple
- Development language Old Apple development language
+ Language de developpement Language de developpement Apple principal
- Development language Core Apple Development Language
+ framework d'appels réseaux Lien vers git Network calls framework Link to Github framework de récupération d'image en ligne Lien vers git Online image recovery framework Link to Github Apple Map outil d' analyse des trames réseaux
-lien de l'outil
- Permet via proxy de voir et analyser les trames réseaux d'un appareil. Tool for network frame analysis
+link to the tool
+ Allows via proxy to view and analyze a device's network frames. framework d'animation Lien vers git Database Github link Firebase Crashlytics RGPD Compliant Utilisé pour collecter les crashs dans une application. Used to collect crashes in an application. Firebase Crashlytics RGPD Compliant Utiliser pour collecter les crashs dans une application
- Used to collect crashes in an application. Firebase Crashlytics RGPD Compliant Utiliser pour collecter les crashs dans une application
+ Use to collect crashes in an application
Firebase Remote Config RGPD Compliant Permet l'envoi de variable simple ou de json complet à une application en fonction de paramètres comme la version, le build variant / scheme ou même encore des données d'analytics. Allows sending a simple variable or complete json to an application based on parameters such as version, build variant / scheme or even analytics data. Firebase Remote Config RGPD Compliant Permet l'envoie de variable simple ou de json complet à une application en fonction de parametre comme la version, le build variant / scheme ou meme encore des données d'analytics. GDPR Compliant Allows the sending of a simple variable or complete json to an application depending on parameters such as version, build variant / scheme or even analytics data. Firebase Remote Config RGPD Compliant Permet l'envoie de variable simple ou de json complet à une application en fonction de parametre comme la version, le build variant / scheme ou meme encore des données d'analytics. GDPR Compliant Allows the sending of a simple variable or complete json to an application depending on parameters such as version, build variant / scheme or even analytics data. Google Map Il est préférable d'utiliser les outils natifs des OS. Donc google maps sera le plus recommandé sur Android mais sur iOS on lui préferera Apple Map Google Map Il est préférable d'utiliser les outils natif des OS. Donc google map sera le plus recommandé sur Android mais sur iOS on lui préferera Apple Map
- It is preferable to use the native OS tools. So Google Map will be the most recommended on Android but on iOS we will prefer Apple Map Google Map Il est préférable d'utiliser les outils natif des OS. Donc google map sera le plus recommandé sur Android mais sur iOS on lui préferera Apple Map
- framework de gestionlogin Problèmes de la lib : Login management framework Library problems: outil d' analyse de code
+ Code analysis tool Permet d'analyser le code sur base d'un linter et de referencer des codes smell, des problèmes de duplication de code ou encore des vulnérabilités
- Allows you to analyze the code based on a linter and reference smell codes, code duplication problems or even vulnerabilities
+ Language de developpement Nouveau language de developpement Apple. Pour le moment le language commence à être stable en iOS 15 minimum.
-en iOS14 beaucoup de point sont à contourner pour un bon fonctionnement et des liens sont a faire avec uikit. iOS 16 apporte également des nouveautés non rétro compatible.
- Development language New Apple development language. For the moment the language is starting to be stable in iOS 15 minimum.
+in iOS14 many points must be bypassed for proper functioning and links must be made with uikit. iOS 16 also brings new non-retro compatible features.
+ framework d'animation Lien vers la page Github Android Animation framework Link to Github Android page framework d'animation Lien vers git iOS Animation framework Link to the iOS Github repo framework d'animation Lien vers git react Animation framework Link to the React Github repo outil d' analyse des trames réseaux
-lien de l'outil
- Permet via proxy de voir et analyser les trames réseaux d'un appareil. Tool for network frame analysis
+Tool link
+ Allows via proxy to see and analyze the network frames of a device. Dagger est un framework d'injection de dépendances pour Java et Kotlin. Il est conçu pour simplifier le développement d'applications en centralisant la gestion des dépendances. Dagger is a dependency injection framework for Java and Kotlin. It is designed to simplify application development by centralizing dependency management. Dagger fonctionne en créant des instances de classes en fonction de leurs dépendances. Les dépendances peuvent être des classes, des interfaces ou des fonctions. Elles peuvent également être injectées dans des propriétés, des méthodes ou des constructeurs. Dagger works by creating instances of classes based on their dependencies. Dependencies can be classes, interfaces or functions. They can also be injected into properties, methods or constructors. L'utilisation d'un framework plus récent tel que Hilt ou Koin est préconisée. Using a more recent framework such as Hilt or Koin is recommended. Jetpack Glance est un framework construit sur le runtime Jetpack Compose qui vous permet de développer et de concevoir des widgets d'application à l'aide d'API Kotlin. Les widgets d'application sont des vues d'application miniatures qui peuvent être intégrées à d'autres applications et recevoir des mises à jour périodiques. Jetpack Glance is a framework built on the Jetpack Compose runtime that allows you to develop and design application widgets using Kotlin APIs. App widgets are thumbnail app views that can be integrated with other apps and receive periodic updates. Glance fournit un ensemble de composables pour vous aider à créer rapidement des widgets réactifs pour l'écran d'accueil avec moins de code. Glance provides a set of composables to help you quickly create responsive home screen widgets with less code. Gradle KTS est une version de Gradle écrite en Kotlin. Il offre un certain nombre d'avantages par rapport à la version Groovy de Gradle, notamment : Gradle KTS is a version of Gradle written in Kotlin. It offers a number of advantages over the Groovy version of Gradle, including: Gradle KTS est le choix recommandé pour le développement d'applications Android. Il est inclus par défaut dans Android Studio depuis la version 4.2. Gradle KTS is the recommended choice for Android application development. It is included by default in Android Studio since version 4.2. Hilt est une bibliothèque d'injection de dépendances pour Android qui permet de réduire le code récurrent de l'injection de dépendances manuelle dans votre projet. Hilt est basé sur Dagger, une bibliothèque d'injection de dépendances populaire. Hilt is a dependency injection library for Android that helps reduce the recurring code of manual dependency injection in your project. Hilt is based on Dagger, a popular dependency injection library. Jetpack Compose est un kit d'outils de création d'interface utilisateur (UI) déclarative pour Android. Il est conçu pour simplifier et accélérer le développement d'applications Android. Jetpack Compose is a declarative user interface (UI) creation toolkit for Android. It is designed to simplify and accelerate Android application development. Jetpack Compose est basé sur le concept de composition. Cela signifie que les vues sont créées en combinant des composants plus petits. Cette approche est plus simple et plus efficace que la création d'interfaces utilisateur à l'aide de code XML. Jetpack Compose is based on the concept of composition. This means that views are created by combining smaller components. This approach is simpler and more efficient than creating user interfaces using XML code. Jetpack Compose prend en charge une large gamme de composants d'interface utilisateur, notamment : Jetpack Compose supports a wide range of user interface components, including: Koin est un framework d'injection de dépendances léger et flexible pour Kotlin. Il est conçu pour être utilisé dans les applications Android, mais peut également être utilisé dans d'autres contextes. Koin is a lightweight and flexible dependency injection framework for Kotlin. It is designed for use in Android applications, but can also be used in other contexts. Les dépendances peuvent être de différents types, tels que des classes, des interfaces ou des fonctions. Elles peuvent également être injectées dans des propriétés, des méthodes ou des constructeurs. Dependencies can be of different types, such as classes, interfaces or functions. They can also be injected into properties, methods or constructors.
-Les coroutines peuvent être utilisées pour implémenter une variété de tâches asynchrones, telles que :
+Coroutines can be used to implement a variety of asynchronous tasks, such as:
-- Opérations de réseau
-- Requêtes de base de données
-- E/S de fichiers
-- Calculs de longue durée
+- Network Operations
+- Database queries
+- File I/O
+- Long-term calculations
-Les coroutines sont également utiles pour implémenter des modèles de concurrence, tels que producteur-consommateur et acteurs.
+Coroutines are also useful for implementing concurrency models, such as producer-consumer and actors.
Les flows en Kotlin sont des flux de données asynchrones qui émettent des valeurs séquentiellement. Ils sont construits sur les coroutines et peuvent être utilisés pour représenter des données provenant de sources diverses, telles que des appels réseau, des bases de données ou des événements. Flows in Kotlin are asynchronous data streams that emit values sequentially. They are built on top of coroutines and can be used to represent data from various sources, such as network calls, databases, or events. Les flows sont créés à l'aide de la fonction flow(). Cette fonction prend en entrée un bloc de code suspendable qui émet les valeurs du flow. Flows are created using the flow() function. This function takes as input a block of suspendable code which emits the flow values. Kotlin Multiplatform (KMP) est un framework qui permet de développer des applications multiplateformes en Kotlin. Il permet aux développeurs de partager du code Kotlin entre des applications Android, iOS, macOS, Linux, Windows et Web. Kotlin Multiplatform (KMP) is a framework that allows you to develop cross-platform applications in Kotlin. It allows developers to share Kotlin code between Android, iOS, macOS, Linux, Windows and web applications. KMP fonctionne en générant du code natif pour chaque plateforme cible. Cela permet aux applications KMP d'offrir des performances et une expérience utilisateur comparables aux applications natives. KMP works by generating native code for each target platform. This allows KMP apps to deliver performance and user experience comparable to native apps. Ktor client Ktor est un outil qui permet de créer des applications client et serveur asynchrones.
-La librairie est Open Source.
+ Ktor customer Ktor is a tool for creating asynchronous client and server applications.
+The library is Open Source.
LiveData est une classe Android qui représente des données observables. Elle est conçue pour être utilisée dans les applications Android pour simplifier la gestion des données et la mise à jour des vues. LiveData is an Android class that represents observable data. It is designed for use in Android applications to simplify data management and view updating. LiveData est un observable, ce qui signifie qu'elle peut être observée par d'autres objets dans l'application. Lorsque les données de LiveData sont mises à jour, les objets qui l'observent sont automatiquement notifiés. Cela permet aux développeurs d'éviter d'avoir à s'occuper de la mise à jour manuelle des vues. LiveData is an observable, which means it can be observed by other objects in the application. When LiveData data is updated, objects observing it are automatically notified. This allows developers to avoid having to deal with manually updating views. LiveData est également sensible au cycle de vie. Cela signifie qu'elle est automatiquement supprimée lorsque son activité ou son fragment est détruit. Cela permet d'éviter les fuites de mémoire. LiveData is also lifecycle sensitive. This means that it is automatically deleted when its activity or fragment is destroyed. This helps prevent memory leaks. Paparazzi Paparazzi est une bibliothèque Android qui permet de rendre des captures d'écran de vos applications sans avoir à les déployer sur un appareil physique. Cela peut être utile pour le débogage, le développement et le test. Paparazzi is an Android library that allows you to render screenshots of your apps without having to deploy them to a physical device. This can be useful for debugging, development and testing. Paparazzi fonctionne en capturant l'écran de votre appareil Android à l'aide de l'API View.captureViewScreenshot(). Cette API prend en charge la capture d'écran de vues individuelles ou de l'intégralité de l'écran. Paparazzi works by capturing the screen of your Android device using the View.captureViewScreenshot() API. This API supports screenshot of individual views or the entire screen. Retrofit est une bibliothèque de réseaux pour Android qui permet aux développeurs de créer des API REST de manière simple et efficace. Elle fournit une abstraction sur HTTP, ce qui signifie que les développeurs n'ont pas besoin de connaître les détails de la manipulation d'HTTP pour créer et gérer des API REST. Retrofit is a networking library for Android that allows developers to create REST APIs simply and efficiently. It provides abstraction over HTTP, meaning developers do not need to know the details of manipulating HTTP to create and manage REST APIs. Retrofit offre une variété de fonctionnalités pour faciliter la création et la gestion d'API REST, notamment : Retrofit offers a variety of features to make creating and managing REST APIs easier, including: Pour utiliser Retrofit, les développeurs doivent créer une interface de service. L'interface de service définit les méthodes qui seront utilisées pour accéder aux ressources de l'API REST. To use Retrofit, developers must create a service interface. The service interface defines the methods that will be used to access REST API resources. RXJava est une bibliothèque de programmation réactive pour Java et Kotlin. Elle permet aux développeurs d'écrire des applications qui réagissent aux changements de données de manière asynchrone et non bloquante. RXJava is a reactive programming library for Java and Kotlin. It allows developers to write applications that respond to data changes in an asynchronous, non-blocking manner. RXJava est une bibliothèque puissante qui peut être utilisée pour une variété de tâches, notamment : RXJava is a powerful library that can be used for a variety of tasks, including: Nous déconseillons l'utilisation de RXJava. Les coroutines et les flow sont à privilégier. We do not recommend the use of RXJava. Coroutines and flows are preferred. Scrcpy est une application open-source qui permet de contrôler et de visualiser l'écran d'un appareil Android depuis un ordinateur. Elle est basée sur l'API Android Debug Bridge (ADB) et fonctionne sur Windows, macOS et Linux. Scrcpy is an open-source application that allows you to control and view the screen of an Android device from a computer. It is based on the Android Debug Bridge (ADB) API and works on Windows, macOS and Linux. Scrcpy utilise l'USB ou le Wi-Fi pour se connecter à l'appareil Android. Une fois connecté, vous pouvez contrôler l'appareil à l'aide de la souris et du clavier de votre ordinateur. Vous pouvez également utiliser votre ordinateur pour saisir du texte sur l'appareil Android. Scrcpy uses USB or Wi-Fi to connect to the Android device. Once connected, you can control the device using your computer's mouse and keyboard. You can also use your computer to enter text on the Android device. Scrcpy prend en charge la diffusion de l'écran en haute définition, ainsi que la capture d'écran et l'enregistrement vidéo. Elle prend également en charge le son, si l'appareil Android est connecté à un casque ou à des haut-parleurs externes. Scrcpy supports high definition screen casting, as well as screen capture and video recording. It also supports sound, if the Android device is connected to headphones or external speakers. SQLDelight est un framework Kotlin qui permet de générer des APIs type-safe pour les bases de données SQLite. Il est conçu pour être utilisé dans les applications Android, mais peut également être utilisé dans d'autres contextes. SQLDelight is a Kotlin framework that allows you to generate type-safe APIs for SQLite databases. It is designed for use in Android applications, but can also be used in other contexts. SQLDelight fonctionne en générant des classes Kotlin à partir des schémas de base de données SQLite. Ces classes fournissent des méthodes pour effectuer des opérations de base de données, telles que l'insertion, la mise à jour, la suppression et la sélection de données. SQLDelight works by generating Kotlin classes from SQLite database schemas. These classes provide methods for performing database operations, such as inserting, updating, deleting, and selecting data. Avantages de SQLDelight pour Android Benefits of SQLDelight for Android Network calls framework Link to Github
-Peut toujours être utilisé dans les projets repris en tma ou d'ancien projet.
-Il serait mieux cependant d'utiliser le language natif pour faire des appels réseaux : doc Apple
+Can still be used in old projects.
+However, it would be better to use the native language to make network calls: Apple doc
-Peut toujours être utilisé dans les projets repris en tma ou d'ancien projet.
-Il serait mieux cependant d'utiliser le language natif pour faire des appels réseaux : doc Apple
+Can still be used in old projects.
+However, it would be better to use the native language to make network calls: Apple doc
-Documentation neopixl
-Possibilité de l'utiliser via un vpn sur le mobile grâce à un outil comme openVPN.
-Documentation neopixl
-
diff --git a/radar/2023-08-31/CoreStore.md b/radar/2023-08-31/CoreStore.md
index a8fb582..854a32c 100644
--- a/radar/2023-08-31/CoreStore.md
+++ b/radar/2023-08-31/CoreStore.md
@@ -1,12 +1,12 @@
---
-title: "CoreStore"
-ring: hold
-quadrant: iOS
-tags: [Database, iOS]
+title: "CoreStore"
+ring: hold
+quadrant: iOS
+tags: [Database, iOS]
---
-
-Permet de gerer la base de donner et va servir de surcouche à CoreData
-Il vaut cepandant mieux utiliser nativement CoreData
-
+Allows you to manage the database and will serve as an overlay for CoreData
+However, it is better to use CoreData natively.
+
-- implémente des librairies tierce (par exemple pour le réseau, peux provoquer des conflit si on utilise la même lib)
-- mise à jour peu fréquente (la dernière fois, il avaient déprécier une api, et on a du les contacter pour qu’ils mettent à jour leur lib...)
-- ne fait pas vraiment de sens (les différentes authentification possible sont listée par l’api, mais elle doivent quand même être déclarée du coté mobile pour raison de sécurité, donc même s'ils change une config, une maj des apps est nécéssaire)
-- documentation insuffisante ou imprécise, ce qui complique les montées de version majeures
-
+- implements third-party libraries (for example for the network, can cause conflicts if we use the same lib)
+- infrequent update (last time, they deprecated an API, and we had to contact them to update their lib...)
+- doesn't really make sense (the different possible authentications are listed by the API, but they must still be declared on the mobile side for security reasons, so even if they change a config, an update of the apps is necessary)
+- insufficient or imprecise documentation, which complicates major version upgrades
+
-Permet de jouer des animations JSON
-exemple d'animation ici
-avec un compte cela permet également de tester les animations fournit par les designers pour verifier le rendu.
+
+Allows you to play JSON animations
+animation example here
+with an account this also allows you to test the animations provided by the designers to check the rendering.
-Permet de jouer des animations JSON
-exemple d'animation ici
-avec un compte cela permet également de tester les animations fournit par les designers pour verifier le rendu
+
+Allows you to play JSON animations
+animation example here
+with an account this also allows you to test the animations provided by the designers to check the rendering.
-Permet de jouer des animations JSON
-exemple d'animation ici
-avec un compte cela permet également de tester les animations fournit par les designers pour verifier le rendu
+
+Allows you to play JSON animations
+animation example here
+with an account this also allows you to test the animations provided by the designers to check the rendering.
-A l'étude pour un potentiel remplaçant à Charles
-l'outil est plus graphique et agréable à l'utilisation
-Possibilité de l'utiliser via un vpn sur le mobile grâce à un outil comme openVPN.
-Documentation neopixl
-
+Under consideration for a potential replacement for Charles
+the tool is more graphic and pleasant to use
+Possibility of using it via a VPN on the mobile using a tool like openVPN.
diff --git a/radar/2023-10-03/dagger-for-android.md b/radar/2023-10-03/dagger-for-android.md
index a67d46f..bf8037c 100644
--- a/radar/2023-10-03/dagger-for-android.md
+++ b/radar/2023-10-03/dagger-for-android.md
@@ -5,8 +5,8 @@ quadrant: Android
tags: [DI, Android]
---
-
-
diff --git a/radar/2023-10-03/jetpack-compose-for-android.md b/radar/2023-10-03/jetpack-compose-for-android.md
index b07733c..fb0d1e6 100644
--- a/radar/2023-10-03/jetpack-compose-for-android.md
+++ b/radar/2023-10-03/jetpack-compose-for-android.md
@@ -5,11 +5,11 @@ quadrant: Android
tags: [UI, Android]
---
-Avantages des coroutines Kotlin
+Advantages of Kotlin coroutines
-
diff --git a/radar/2023-10-03/kotlin-flow.md b/radar/2023-10-03/kotlin-flow.md
index 8737287..c57b003 100644
--- a/radar/2023-10-03/kotlin-flow.md
+++ b/radar/2023-10-03/kotlin-flow.md
@@ -5,8 +5,8 @@ quadrant: Android
tags: [Android, Kotlin]
---
-Création de flows
+Creating flows
-
-
diff --git a/radar/2023-10-03/livedata-for-android.md b/radar/2023-10-03/livedata-for-android.md
index 4258bc9..9c1a089 100644
--- a/radar/2023-10-03/livedata-for-android.md
+++ b/radar/2023-10-03/livedata-for-android.md
@@ -5,8 +5,8 @@ quadrant: Android
tags: [Android]
---
-
-
-RXJava pour Android
+RXJava for Android
-
-
-
-
From 3391e6c4ed54fd58dac21d38e08b85037ba7a4cf Mon Sep 17 00:00:00 2001
From: NeopixlAnthony <54896419+NeopixlAnthony@users.noreply.github.com>
Date: Thu, 11 Jan 2024 15:25:43 +0100
Subject: [PATCH 02/10] Update radar/2023-06-10/Alamofire.md
Co-authored-by: Nicolas Nunge
-Can still be used in old projects.
-However, it would be better to use the native language to make network calls: Apple doc
+However, we strongly recommend to use the native language to make network calls: Apple doc
Google Map
Official documentation -It is preferable to use the native OS tools. So Google Map will be the most recommended on Android but on iOS we will prefer Apple Map
+It is preferable to use the native OS tools. So Google Map will be the most recommended on Android but on iOS we will prefer the official MapKit SDK.
From 159e2861e8e3cfedbd4e2a65768ebac311dd99dd Mon Sep 17 00:00:00 2001 From: NeopixlAnthony <54896419+NeopixlAnthony@users.noreply.github.com> Date: Thu, 11 Jan 2024 15:26:26 +0100 Subject: [PATCH 04/10] Update radar/2023-08-31/SonarQube.md Co-authored-by: Nicolas NungeCode analysis tool
-lien de l'outilAllows you to analyze the code based on a linter and reference smell codes, code duplication problems or even vulnerabilities
From 36242f898b3910aebb1ce68e3b29e34868c77d7a Mon Sep 17 00:00:00 2001 From: NeopixlAnthony <54896419+NeopixlAnthony@users.noreply.github.com> Date: Thu, 11 Jan 2024 15:27:02 +0100 Subject: [PATCH 05/10] Update radar/2023-08-31/SwiftUI.md Co-authored-by: Nicolas NungeDevelopment language
Apple Documentation -New Apple development language. For the moment the language is starting to be stable in iOS 15 minimum. -in iOS14 many points must be bypassed for proper functioning and links must be made with uikit. iOS 16 also brings new non-retro compatible features. +
Apple's officiel development language. We consider this language to be usable and stable from iOS 15 onwards. +On iOS 14, many aspects must be bypassed or worked around for proper functioning and links must be made with UIKit. +iOS 16 also brings new non-retro compatible features.
From e7e45fb6a35c3aab55a6a2771b140fac851a08fc Mon Sep 17 00:00:00 2001 From: Maxime DUPIERREUXCode analysis tool
Allows you to analyze the code based on a linter and reference smell codes, code duplication problems or even vulnerabilities
+Here's a repo to a step we created for our iOS projets
From 6daeafb8705e5f67a062934743859e671d3933ca Mon Sep 17 00:00:00 2001 From: Maxime DUPIERREUXCode analysis tool
Allows you to analyze the code based on a linter and reference smell codes, code duplication problems or even vulnerabilities
-Here's a repo to a step we created for our iOS projets
+Here's a link to a step we created for our iOS projets
From 2d8b9ee8d0f40a608f0233ffa359718450616f8a Mon Sep 17 00:00:00 2001 From: Maxime DUPIERREUXCode analysis tool
Allows you to analyze the code based on a linter and reference smell codes, code duplication problems or even vulnerabilities
-Here's a link to a step we created for our iOS projets
+Here's a link to a step we created for our iOS projects
From 2cd1945f382f16dc57bc786c4261f4e7ec26e58b Mon Sep 17 00:00:00 2001 From: Maxime DUPIERREUX6_kbRJ5JtV{f+{0TeG*hKmLuqQVpdTTL zTr~9;i)*;qY&GqfxZJZ~NrQiFb#W>Gi_J8-uZZ^Q(<}>vQO@eHDOcjPY7Jx{$jS{J zeBFb#{7Z+2-&xJw?tGuWH}b3~f&@&SZJR;80~tg~&^Zk))Qfu&`v;MPQI0R2s-w+N z&BeA!!=#W$<`Ji$z4n80f=Z^qv8z)fCuAK#)0z9V7y)nZ(eA}@%aU8PGy-b*gJ}Jz zZ6bdXadx6>w3y0*t~s(D$FL(v 0*_E$#3zo~D(?&?~lF zV9n*PNL=WLrzKD3sXY0~&J)0CK2_kiV `|*~j%nvQ@ zn*SK!N*kKSz#qVyj81yU3RLhML0obl@oThPwhjALAa8bYvvAo)DRsg(wmi e{YPIRv9{g2X2HM=f?;ELG)N0qPPeHQ=K(~(7tYntxQdFZvF}nEr zuI-JD+q)KTZ)n)QxTU$d1&3$l#<^F_yQs4AqIp-$-B{T_Z^5bs^W=%zL7ML=$=6Pm zuir|(DsWm2DDcDBeL{Saa5;MuJO#5d;8G`iD`)RQ@bM|BW0dq`v?~YcW6P6H8C(7U z-f^bcSHVxS_t^Biu#3i-PP6ye^dsy~&UD$oluonvw<_JBOU?)iT+(H)PiiFv4mzCe zlv+uFqkb27fP*jh@ORmb4m`Aqr2HvD!WF)#{3O2E%Q@4}O@}l6-1Iop$I?aeIJSQ9 z#f9!S9dsYUUIRyeN-e9j^C;xo0oRh%q2QBnwVxN-+bgY(vFX&0WOWpdJ_>%1I_i6b z9e|d$%bT4}J@(nT(B~po60X)qR-qyns~q&$)6u{7e%A(wXE7JbcHn)A_t6hhe~Aw0 z8jMF;AxT@_U~#eK4K+M@^@SI%zItgzX-VZ)n#=o^=65aYEgBzDQj|Dyr7M Ad;)rsgQ%prxNN3fsaS=@!tTac|*H+_=J`bnZab4&;4@ohe~`_D15 zTMGK>etmE&E14nLcC2uIrS%+6k{VtxxMJnNEd%8xCFNJbz>64Od9ygNq|4ON)oUpT zEy_ cQ#~u`tBbo(4g9Cmq-q2?Rhn{eS zA7h_7^sOuW0d`RKW76mkVgopbuc5f;)x2ysEInOTp24whP>X!Zl~?=h)7O<2mSxt@ zm|35B!{wJ< nR$O{}}sB%@4REKdr3*SL#=K z3$wv{s9%RYbR_qB^frAf)dMp%IWfrgwTMXD4~@f N7cNbeHY4N zz1#Vf9V+F5ptRm?kTvPCdIV-Qw;rp (rpPgVW4Jvq%ip6f5=zq5^RsNTV!wv|=1mBoQ( zSz7k`O_Jt=*nLbguE1%vp}_CJn|1pfaGEO>_+jkda>8k~p}=ni9tB=Z)H&eCu& 8jYqWqXE2oBym+fnRN&YA8)2h#0y zIMZF|K|0OhWATrri*)?h^dlH0Dt%}V%|%Lk4q?}u6Hcoz1%4FoUpwI176(2FM|;3e zIoDK-W{=_LarXYG&B4#N9r*5KA35>KwSrR57`o&fq|hzl3g7UZ3uQDMgjAuo;9JJO zCSJeyF7461FWYReSZ{+*8H*2@PxBP=!H!q*$-L5P*6;1mZ9K3+-?8_SzpfN3-$Svl zg`Yes`AOS2Pz~%F#UeYVNFVQ%(x<>l$`trvUMgFoz)8v!_^rrKTvOoGiwgVz!R0!J z;VTu66-~358#G}W0}nEDzkB&x_r7!S$%EYMuZL_S(hA>JXuA`8cPHD{sQ&d{$pOW` zPCPKAU`?RE?J~{fhd#MhTz@_6*F*3y1y|U aK-2X~nNZ+IurqQW z`V!VFcACny%1RF97azjOlN-WsX|g2=f7{$C{GTI#St!b;_b(jz-E^r5Wf|FK^2*V; zyHmDVfzzy@z;DO*!>A1koZ76w_p5p(1Z_jz4)`(Bg`kOSp-V6q!h(Qy`xWo2MS5An zXq7u>?nPDA8|PlQJ$ScQc|lceb#--B?xWajUcJ?G;;QM7wyc=gy~w}7G^ydy$&)5c zo>AI1Fk@{gaZ%PJ{VUJPmfXP}mlTtK1r&fX1%5B~w>$GwOBDEie8YuWsNkWIt-z16 zM
Y@QTxsQHYtOU@w6F-?ZfVxHxMim&XC&fNqlvSoOgqnQx+WtdDK)X6v>*|P%PTaA zNwJaPk^X*B#x(1M2@`ek@lg>Gc#h0TD=bBge!P@7gIYNo8suzfu<+)aGiPV)6Q@g( zY%BO>NhRbp$UzTPiDbEI%VMm9obU =?UPfnXWRC3XZ@)Z|}e~di5 zr>nlqQeHo;Hl(fv<1!C*U4YRR^Y8Sbj7CkHwV|r&qM4g+^0>~kvbdzauC%Di^E!`V z&*Hwu@`k?g{jFY>qWX!|C3Qs>uZ8EMB@(wBM<1)>;axe76nHrJrND2;Zhzue9_(7s z;(*_$`imsofrp|cZ=a1%%87z+KfZ28nuO}PLh><2<)f-N&b3ywl6#sb46I#0G-Xvq z5tKEz|3ZDk}cGr`=OBuVe^}TwZp5OI=9qwEA*OS-n+Mk3^%MEY$ND-e!%$3JV&` zbzTV#OUV`~)>v^4j}yf=`K) !|!3a#Bbzr3-rysW7S?=RX0 ziNWcOz2lRsvJ$Pmeb(4%2lh`*Z|o~xQ8OWFd`->xr17;PcwW_fg@@m3W=cONVrY=5 z+wiuo3KyS<)8MTFe-Q8eBuJhY6OSD5WBAsblD}yT`~hhRDe|%g@}kNmF_hMjAt9LF z^@^%SQ^`*(g{EQV`ts^cb1uKuR?O={CzY1f*OpkTJa&cM;91nyRE|bmxhbnDHg0@X z^~6~dDl$_%TV|`0vqtv#w`xzn;E 6Ze!Hs4@?gcTks6lZBq1-2+R*wth-wEu z(qu}x!+6KU0hbz3DJS7l1HQmW1Llq5ive<#prq59kMNEyPnu 9B|E-4tgbA<=5kmdcHm@o$7l+rlX%+=sS-2iB=nuPf~*_^-=p_ zJd$ r#tDL@GR9j0PdaSLCEcwF4beeZT<2!(na=xc+eJcmzqe FRD>)fK z=|*EZPQQ#_>H$8 !zB*KL{d?c+8j(#RJ4#n_X;rFvAB~9eja)lqGcdS8cDN27vvX1vo z$v3heK`-f>L}ZV&uRXFCJ%VTC_e63$=?*pjK~GX09|BrUBUyzWK25k~^v(tMt)2vx z7_=DGGH 3fSQ6$>z1_d;fb}b!!Y`w?Xs~Tq6TA(>P36dKFHHC z{tT}6aj($h8265P6>8+TFHna)RX%pyN8e)GqHt1dl%o%#Bu9<1qlo%)BhB1+8=K&_ zlZL1K==+V5A_aag-t3lesXa)R75ILRm7~&vG5L>?tta74W8e?4hh6ZH+$(sFU?-xK zEsQhN3mK2YoIp04Bi?An6reei_X-bwFU3E~*O)attCIAf3qS0`AdF#yL;sHvGSeta$QK;oCY&sTZ> zCdRlOPP$KlABI22k)Ny|38#1@;Ihx&RIQ(4ai!FmRF2kvunmzuwmfMtCEZ^B0A?S% zb#o DZody9HiJ`vx2`G(z8l_qQlWn zvT{^7)$f3d^BwSe_!px;JNQL2h(ecyD|}J;N%h;y!N*JGkbZ7DoayJL$C*BsE|S@? z^%GwlbZaaQx({LZkpnJg1*QE*)iI#R1*|p|pM J!R$-eqDxz+eoo^#@P}(2Po3%(sCDxm2kBsioH$}@V28R z_H>dQRid={az!pVgq8ORNHndu8?fRgZE)@tH)-QBb|1fU%BphCE7nZKg3*@JUO4 KK zWvQ2XPMf9AN{^3?jP~;mGK@D(ZcePt*C(eYjEjo)^9eLe$ZeWRw9A@hJ7-IcdXOEJ z>mUXGKH5a^6d~b|@BR1+;^&TXVQRWg+&<*Q_NfX@Ca7BG2U#YYTB)W|wD2yaF2qG$ z;rFsHois?TtI$SuE437k$$yN!qUI+!&D09b60X)yT&_W!^?UIPzH2g;%kVW%)F>VU z9Tpb>iX#E*FJDbaa4b2Vg?4b6=OtQGZl*cCqP`+MJTWocoSm5$He9l?y|lL?A~7jE zbz;rL)QjBb%yr95kBg6r2?!cjoSTpp7h?#INr=u*ANh)pPCkD^bV+_fPJB#!SX5ka zSaOAR%6X7hpV9C6ZTJeS+;I*Iz!G4^);7g=flw!wm)!TfDOu+mGW-(!gF?(!NZdx- zde8Ib@CDb}Qgc#ux^@p=cahvn{P9+>fe#&0b|3V<8&Im_Uz!3H3V#egpM^-ck?MBj zzE9%tK@CnQ_Pwd=Zb_+Tp(FRLne_IB5B8|J=01j9!bFJ=EKw&Maou_vn <&5|aQm#P;Gx-F z$#0)c6*$fA3fw-60 @MMQc30p>@%so){$fwKiciAP9^xnYTuR_o z-QmK| PE2p-axa1W!@sWQA{d%Rq_nE`)qx#p8(Z4qvIc z>ZV(5Ux;X%iN8E@n)HDd6YdFRb$MolS9@cRcGaf{{zY}mbaBHURJ08s4ZGWKlkCx#3-q94{nqk#zWRRQR zI>Ybuo~yN&4% L-dv%TTieevE8GInT)bH~))yhX2yD%xjI-XiUvbnNU3;CCrczX3osc z4ID1KaB<1fim>>Eu*AaB!o<~{GiSObr$og>#RdgM=cdG@;@3BWqvOUEq}WpV+jUEd zql(ROnekDv!I9%aLKBLO4O5_bDK1q6t0)G)(?N5f8ifcO6WNq8i8G>^0ZUdbZOd Q&mQ8?9&f?ipi}+=Dn57^uJZuSqnwE~5*{j!1&rC!tGcCn4 zDGgkK9me~`PqYKJ8GHBi*+N;?JB=HJD9j<)N4#k2RrrNb-|0;exjA8hAxVCbQ4!$_ z9y@=SAL*MAW6lX1U+3no?{w2eghrSQ*?qQV8ZWfA*!)|qOC`n<)w}wF^QWvVuUr*t zkFi|$t1%V>-!Wph>^Do Ffg8n5F8Gi0KREMC`%1}w zrz?Iriz#rTUy;`uxf%+9e!&cZ(dcmeNb65W9)ER+oMUavyE7KeO$f OYpeQ7`&JeAOiHQm8^5fvGNinra)Nn$rP3zQB4rS5 z1TXKv&JHJ>y!i_JZoFyZfJ@#h@csC;A}5@@!3x~I?hhFKUaJ#7!IupG0A{w2@LfU5 z51pWS!~svixBdXf_tOK#tCEiWu-5JQ?mH_Veq(_0sdzqhr0cnl3;u^(;PFm4z9VO+ z2ldH%$*X;h9Us0rXHTc!<{-K>*sapauM#iAa*f6NEv(E{Z-#{Y`wby+DfzJ#v3_9_ z%VQ2szqF*buB@_Ya!OKKN>XCHfqy)6T#~PUwWq(w#edW1=lB^dW~09`KR+hSBP=p9 z+#@`SEaz<0|0wFG_z~@wQRRcgW30mdZr+lmbLTBxGCw0XHzVC-;;k)p=DHSnYRX77 zC#B<*m_fWFJL3)PPtxHVc=TK ;J<+OL`!QcD_#OltgCQZ7kv-8SHldkNXItBkzr+U(> z59%8bxb)ASyJ_AmoaWA^IoB5_lX#3;(~AAA`V^~~n}&_I`@CB#y7I!7T9F4ckLUso z@awMRSn=6=PmLR6la=0$wuO!3MF|<<9u*~pwcfh}uespz>mnvtZSNWR>5&I#aS@vt zA0OnNkzHKi*Rf>LEZ@wUnw)=5=_e|3(aNh)L)MrTCe`EItxh|L95w3kCKL4@pMS~D z!0Wv$D<@Yq)U8-iQ(av#vBrB>;Li2icF&nEW-S`_>}~feDmLZ#nauNyMxV^A2?hQg zJ@d} KQp_vI)RrAE_L545tggI=1A)krGi_3>7Xp3mHJP0((inzDkj=%xnS z=Y0pNm(*qk58HZ#zlUv(G3;8;CGCC%<0G=h1z9X@A<5>6@gZ&9;@R_O*q$`dI3j7d z6@2nnbRXiW6uNi3cx-TkGPEeszH{x6D6GF?!NofQcY9Zq)=b&M^A}!GKlRd;v(}f_ zUcP8*bzM_^V*`I=`pObeVVyW>@}IveTGphS+hJN%=~dNgUOc|gYkW~&zIPdRc`17X zlO@MknPNT~_@O#%3k K0y7vuFGEn`*W$tS+mpsHm#&Y+vA4GTUgJ zUE;T(z0Z{EhhVVTFW2;OMoW?JdGqF-=Udd0(U_g>m7bNA?v Z2{4mFx-ZUP>aQ$TqH*Lpj-j!hOu ba%8amiu(F1+S};d*4Wh4IJvPA zV}5SBGUn6g(wLuPm@`|RoMV3WImf)lWz5e84cJw*GHIgtH)GzMo)s{@sIbO+cfigI zw(N)~HrqZ*$5Qc`DR0K6Cx*HwCT3^*&0a8bidSmc1jF<7-EzF|#CJT~=of;}zA>Zb ze;V+umtGTey?1q$xhTB0W^k~iwshje8n0b}yDr>v^{f^#bK$OK%Q`UPBQm4?a?SIz zOuiY};|u*dmW>_q81bXS;vzBYTqFL5-3L2G-pE0|3M2knjQ9vMjd&k9;& TSZ6PV<3F?SH z&-P@3eZ +EAbzr;S~=XK__R?(R6i8dL$3MQEIy-Oz0m>-1&hhJgAY;le;KVi(6-zUfX zIM`?t&pGB@sSG{GsCP~0ORwEqe_3nmW%YZmGZ#lzR#sF;jW^BTTz%t}SKd&)X}+;A z9B=Pbl#UtsJ ^$!HEo0yQ znFl%ex7Tf5pfb6tVUO+AGnic22qq6JgWpnW=keSwJCCEx#N#{*cnrHC3HowB-sRHq zCqJW^iKeGzn4$5TEZFlx7K5Cplgwh7Er{3b$@tKV$5i*@Pb^4{Tw*2LV*<)-k~p4@ zrDr2>VtxhAXGZB6dl8`RPT=`je|n}h%Qf=(IS>2u9-067pXqrH^7qK}7pmzw4f*%V z^cTM+DW!RE*Z+g|+%@U4g%|I@xRw)>?Zwv1CShWd+OutH&7?+}n0~AFj2Qh9-`DPd ztrsD8Kald2``gIY!-M*Xj_0P%n>Tgp+__Wp@}eUm^^Fw`6^-&Vy||$`Hl`t#egUlw z>M{+uT&<(D)rqshw-xf>@W|P;K8KeB-}vre(a@Au^^+rGY!#hek3B~5@dqOPLxV!X zG|Szm*ECKKG(=qE`DfdMMZLih{`!ERkYF*swAi8#Pc;N|O_)M@Iub1z1ZG&w*u`Nn zlgC#oV!U+Vj4l}*%`;e(SM#2qJ8gA%bY5gc1+NH=2oH-09hyA7v1L+u&6HXCqVZv& zsrulMyx;(RU|?`yfyI>Lo|YM7%+Z< wp zyXS$FX{)dJ;} bJ7_55z3k@yqecFhK z(6F$O>+2U)Hl6n-57YfV!EdR)xY#o?G&so3Kd>}E$K5iXcTAbECls8B0{#JT0g zgwmr9vnSZj4VpVbLo67-&rh8@uc^M-ZHR}3Muz7_goj2|^p7u#pQLZ9sIP1^8@>Gl zqN5iU1czvX0t<6 R#_+F+wtw;bZR>b-!IWa#dt}kr`^5*} zPDy28nv*7FMIk#$u@9^ca?f6DJl{NLc1z2QS<}ps5mAwmQBzu`Pi|~!o=klf79Ot8 zH)+k7_t7tP)MFvR`rzO>x!LYHCUjYLZm#UXz(9Rq5J`&*kD3*RyBaWdvB&;53KxW6 z9(l&jBM}x78Ic#M@+e^v?*Nl3np~L_7*uG==1KWdn?&Gy_(S4xot}SyiYe;XhTmCF zlaP}tBp#3@5^_p~MB>+)2PNchDr6k;^ooao=d`2LblxK&AF7Zj)HNVWeWXG%QEHLQ z^RWtXVy2+r9O8viisa@0kr(3e#>)DNMw5%cIC+7cR_pQ0hd)5`X;2eFFi%-*k66UB zBSzAaZHQkigO*I;k}FuB|C4XST2RkV3FKFEoPW+7r_~&hz@g-jTyw!;&q1}UI46!z zTyQ8k&ctEQ5%0hu`R-DSJx8V^hvfP>azu>og5KqL pf00c8SUx-PeS$aW zXgtXL{{ u7 z>D73v<3TBPi1$bc^$S6wP-;MyqVYhGOq5zA^H9$a#EF^4!%;aNWU2oGFEl~_h8L&_ zD|kc=chY!R8Dg+JwteT$ogjjxj;?^0e<$|x0uC>O!Sax4YG~rl&AWZpQB+8l
dN8Z<0&25Dma$T5x7 ?V3 z{KUNE(EQ6E%+HH~SvnrRknY8cZ0lCTX(U+8=y~|fg=nRgm58pJ^&m&JSTOs`E%~Is zg8+^R&Zu)#l2cJlm2A0u=V#kX&Z?t*$>K%)V$?yL=E30TZ90X=!LrXz;rCPCkva?> zpnEoN-o)QoyLK&Eb~X5wldm*B_(cZ#MQT=N4b!9dQmkRfm}1t48MxQMl4lN1eER8$ z2cIdqf86?U 1+WKRKTgkz&B_*5u(AT&NtZXr5>LlFynvSxwpFlCsCP z*_k5FcczH*M~?mb6z~`IP#O4bQ>Bhq>&0_2WRmu*9OrxSeIC$JMRe@7Z3-wVqLl2> z>-YtlB-*)Ml|W%0yfGA#;4841LYVml^EWgm#5HVaHCLtv1f*7)yR( +rsjs77iLP?SlE!_=hLZo&q`aFT9n}C7FUqDGA&E*-sMBCN%ZF~ zey>6cW^%G4v4=k-K}YMau`U`|G*&Rp>73j*eo9(EYEn{aK-!e?X)WVI0@8xB68$q$ z43d=8fROlRO-gb@(Z&=LXvs}Io0h^1S6XT? mQlh zuc5c31Cggr$uq+On;D<_3cUV$Zf)-u`}==c3;9qrA^gJ7Xv#CcQED )LCtwf5TO>=TN( zF~Fsm?*r|y6O_q39eE$2?;5es2LH`=f|?__)5@#zQ2_Z7@7J{Ndf8=NpH7}AKTn<3 zX7!lWZJz1+toI9MlB=z$v8tn8(Hvdh)3|n`&HJO@uXqL%+DI8_VkyHq*UP!zAvvmS zy>9+)e+_=jDS%%e)%qgauUl{EzI97<{TrE=W%3%s7pBazS)aa@ISWs7*Nsg$1
{e??SU?n6%j_$~sTR#dhB@Qm4Vz-_2S(SKfV@CNiiU1;WJG06sREJtuVT z)TU*}{QNG>D>`(V@b|{!PHfk)XS24gT6XKwZqiuvW@m?2%Iz}iCSF+XY8clKRIVon zx&hZMZ<$ig8kqcd!)0(pLG|1&zzj_5|1(UYGYMSpp^&39z5f&d1Pm-a7Xm39MdIuI zD-zAhy{zgN0qmktbqF#Zl0L#-73x<9xLyebz;#&E!>F)8aMb^9xNda{{Yr&ISGWp7 zNYSmZET5BWx>lNhW#p!(<)@|Rr)A`2N8*u0UMwp+EhCZ^%Zo-$EK(dQNKY>)iiS-% zQWTA*Mq{OE@vQ8Wj7TCUGqoT!Ek8A$nUx;Nh~}hcr01umhGJ g1k{toLaGuGE#j@ Mi zi>1Y*nek9G9M6oUCStM7Xe_Hsn}Mxc4{XzBQ0vx%E`GS 4`K>=Mu_f#iK>hRAw& X@0D7RiakQd1(?;Rp?oYiCnOlShRkkwhdVoDxZ-#L^*0C_OJd8jlIF zveSe*@s!l8STq!g O~t_0mA&u0Q^xOuofks#R%u(S zr*)(?((7%tyOjkSly;?dm(ulW-|O04b?eH~_Z+%zSk+Y~NX+}^{&{S(vg7W$aQ3Z} zy5+robjg5=rW}7x|B~Xqr;QtQPGzFor6(MJ+}O#-oq9^APTjkAYTLg3k_J;I59)OM z#UsxddGYa`n)Mkw>xksOkuUU|*socW>JxgO)BA+JO$&0z7Z$%TVZzV}C!TQBv7;tW z>fWhEr|z9Qc4=QZcG%yO)5UV^;oKMsq2)U8%{u9|Wsan(Fjz{d>#++eQF6iBMK@-Z zQc`kd4RZF9zn*lgeavxxzUJZ^bC$#h_vtry@E~(*a@LUH1BZ9&Uv}NV%hvokZR!cx zgC^y+NQ|$^7(4NlY1ut`wQHNvvE#(b&RHEgH|o*q$dh}RGm>r0I @@ zSFu~cs?ywZ=ZK?fj~OW&uzna&)3Rm|__uJbvM&sEVMe8k;_uHOVYZZ)S4C(R@C>zQ zyQ%0Jzd9I37@}s>wby022Obr->(Thb5|dgnerUTRub5wP?C|z~S-9w?w7*6A_p9n# z((Z^RFBG3Q`|On79DY<%R*)U-a6zxs; 7|Z+t%$nwd>TTeag7h ziDPb9vg8K2=bd%t#TTD-w&^)`)bx>K2iL?}w(Q*bgic*swTbl~HucQ29z5st)6aSE ztTQ_td*Xv99;=S>vxi-Vt{BmoPCEpLP-S6Rv~Io-R6~$Zu&cMaDhE24Q$0kknlSwM zqdjC=yf}Es&_UCNw5}-YbZp*)b#+*n_|hZl5HVl%>C?DZuilNDCmOXZNG_l^ 3 zDbibWN*=v6UwS-AEgNq&o{{~_f#vd$XSuj`$wQq-=jYe6OR#OQyu=n7rv3gfzGx}^ z>$T2GYnx~7!^7Jqc>@8vUI_NY(S!+)Z<{oU7|GS9V=^u-IQBqzvY6Q}w`V%P@)kyv z^Et26yiaD|ue*k!@|39ZHx`3;ljA4c*|t+ggUm?d{%Mn^*mhbnt*TQvG$U2s@jNuo z+gV$7^NdOv&UCo_T4#4?BD+>gy%lfmqi7UbrD-!-#_iCmDiKYY@uj!aUXhSW^Yfgg z =ks#FrE= zNtT-LlZA4p_P^w~TPMuxKXr0;Rn^#W_Z>T~M~|$jGfe-1YX(WVJ)pu>9u+DMp@J&Z z`U=sde7)0e`au6-4gdWSI4%K>{~r#*q29>IWz3~ya-vuPEuV0gA9U+^(?p0v5W31i z2%+Xz4ygX~ygwyB?Ps1y9wj$tC@pT@vu|0+(AlRk?Q+A(gJyj^Yv9R3OY-#3VPehT zXj&BujVXaY)J$dPbB!}C&!1QCs6sPn(1bzu@rR#R80I^w7At5kVRaXxv02Zk@iL`B zJUz&`o7n+rqg-jDQ_eX1oYT<=(Vj gtw|jNJ zJNs0hXf_?ZIMw{fx#SNYJFoxgv$OghF}gN6YE*XCX=c_iW?ax*a=H_x$lJ408$H)t zW`tUBQ-k0Hs%o<>nY(0(8F$Mq$+>l>QGGFRBgY+?tLvXh)gL)t7%E_la!i(tS-Qbp zH-vidJT@WErEvLU_B%X}`&FL%624f&$EV11SFl z62A%0|Ijhf@dxA?IhK|u{X|~dv8`(B47-4@QoA#C(jr(=)n;9?&GXZynH#2?hDqWX ztJ+l91?C3gahhX(Q;k6|IZS4B^b4~sZVo1DS`?b{f0z+RCZ96HaE`QF;h5or1twOt zRZEG}G`_B>x|%F1oG|Nx3odw63STpCp1J9wi`ME+=4$I@%H}*zdnRAhO~JiU^NEtr z(|$gJmHcr?vWvfDW6r5euBbH5wDYE!eFw)#J*+E9)m2*eT;!%j*GPV~nV+0*)?In> z 3-UUWyk^wpCH~ffl#zq~nOgfZslBvE5j441tUNh^s;iE{R2SuI zca`#w;_gL7Jqs(wjc-%jqp(mRQ mYSER?f+-5U7^S{n7f70@WtcA zh)lNm^Xk?6rc+vL(}Qp2`lrv8g*bWb*Qu*deXz}gr=nOcG6Rz@603)G1*eWzS)HLR zHqfEABAU61QK{HIx{oI?F|~7LoOxi rq~g4}3A$>cAe8 z#mH`%>@b_=&+2(IbBrNmkSyivgh1338Z))m%#jrpBWL#NHRGs?ilb)q>NKiDhod^H z`ODhZxxc4$7}cpWu|`R(aduU!gYUva&Wp}*%-Vb}8t|}rk9u8( zPJE >vYvB%Vouk4&Wc=h?ogXV_wuTCDkE?#r$kXB>Q?c4X uX|_7k!tQ+`D@%h&}ooOE$lALr(adaue2y=<;K z`0?7ccGKjaN}qZvZH{?@j&ROV$?KBWk;-B}=x3q+a)LokSrxNXbU?XH?a!X*{{1I+ z-?pG^qp|EyI~*8b_9e%K9*{b >qhn)7Y#=T^s5+95eY{J9(pX% z+-{AIzVDvVZAPBf(><1`$q}tMmk2z(ovie6$a)R)WHOQ~FLYl(OEl$W*MxoP^iwXn z()1WIuvb-*ja8+|<$pT!?{^FweZooohMKbE70CzLa*Qr1W*zZdU9H>zDUYkSj<~^F ztt3XI;tyh!8;zls>T~EP_kATf=QNeQtGUr~^lr2~*O zH6xy6^OmNNFJ)gKDb6i7OwRItYu9t GyilI~fW&0J z6ZKhM#Tne+j(GCmb~{Hh%^Ued_|EW?Ba&;Fh80}ua%P&T$}ssGJ?%j94)UB+UURCM zI5+v%-;&3aABMN7Dnyr6A@^Mc&B$GmCr2jNfc%qYcQQk=m)r-F`=vhKSitCs%KSOy z0=7b49RrllXl|Zjwkb6@;nLt%Fp$3pJuSI z5t}l@HqLua)r_asm?^)Rhsya_j^F}i!popc0?N4gyR?Byb>)}~%!N>?L-GSizaV*e zU70S)l4~HJTe^&vR?>>(H@QVsVR==wyhUXsT3#5fDvSu;T~>s{E4rBWRi?cQCfBS! z@#Z(*y!ph{{;%NG#o7v4R?9A_K=-5Q@9R@p*{4sJE?X=6_N|m#Bm2*i?Q`L2Q}T z(OFt_m8O(56=h`=+(8aaTC{7|LT*ZJVSQ#QSkV@%go*73F1ze9vuVMC1yV{~7~1J* zrsS*2qlGPq!N%-S<^*CbV1Ks6Y>4v%G|>6=8Wcl$S+uOOu(FD7E@bk)+WW|J;b$Lt z +wFCE^}{aneVY*hh=!PLApH3tV7m6_I?%<8Y%QX#9Leu!Xz%~;j7EPwE( zO|RZTj53)Gb8FC+8ra0hZTi3h%->DPeQv&=nUQWtO(bDP5^}-<6FW3bO( $E8* zcdEVXCN61_Jo`lJRgI%DUVTV{@VD%NrXbW&`G!SZQ&7I6pS_^(f*F4lw!PI_``rb7 zAEr#p9&X+bb@j?5CDK~;^YRW4m~tHZ>)Sd#H=0{>X^TZx=Hf;qK7DgV@2av^6GLSe zpO^j830G?zD8#%1_>ZotM20G(iw7<4@aVCR+2`JMSJ$g0P9B(^9V(JIHBrV?g=JOd z>}$PPoA11{>s40~%WWIh;Gl%eO0Z#$^S+R1nd2<`YwN)kBMO@5rIxoIQ9iJPJ-T$n z;AYL^ y8AAwz2V4H?p}sJNuCpt#uX-@98TN2XR~cI#bT zlwZQewt|xUBB4C*O_-7P7U?%fyGD^WOGpo@R%bzFlcLt;c{$A!&GIXo7PW4fpG#+Y zPqVTtu3pW`va_ j zxjFZazCy}i2hWZ6IkK`iTB%u9Q8s`Vl3R3LA~|qw)~n7c!EGG8_v%BPU9Ph@dFdwn zX|r)Mt4G`4q&auK;Izbjqc0cwMEIJ`R^$TuV4-%ca!raZ*fy0>UBEf7`w{)~a}s$C z8fVp{wJ5J%-KBFhw;(T(D2{b)p4qlRc}H?F h|qgROd&EIuzv=#A>3V&1|QkVN~p;{||h#xuLL4Ml0B+nbv-!VLd@= zudDfklkW|pVF YBtHy9X%ah54z05hbbKuobjaXKmCSY8BkIu4sQqS|f`s_(N z&-Wene82asQcd{Zy=Rq6p3z*YnUn{4e)JF1dooJ+gNKE?<$2OcIGR@TQ+eZ=`9*zJ zS>gE+@A=U3JYFIEDGm2po#&_Z`A9hV^UzS9AMYah{o$Ok>u)jJ%=-H<=nY-%{?sc*Wu7wmtU1iVg$a}T$uGQ1 zy6}{_XU?@c&z^S19INfAlh2rKH9vLssk8OVeuN?!NUro1QU+;+&*Y9?a808t>`%;c z=H+`~-KTIH%CvDy`7_LE#c{*jqgclwO~WLvVHo7c<;ld2#CnFf`PRLhoO~Pe1J_tr zSo5v(t+SXhm`NRux5iqdIJI#AZv%8^eBPE66GL)-?JRpM?)_*tgC>%)7lv|h@3Ez< zw?eW*=?V4U6dDe^D3qpdF77P*pu!>CCqmz;yGGr8>TbuqC$w4JRqF0h_eaq<4bM94 zW>DC${>@xU!;`q>_jqn5W;C45*_w7JzXQ1Ya7#S-2CL0k{KyY8UXQb*!KaeYdpLiF z-NJF&qdEJei_kZ5d>(a13QmsfH$T=9Eifc0HJ^oE#cnCRf_pyq`P^VvI+L)7{iOX* z`zdClpOrZHh#uPxy=}fg5~rPq!#OdYN@>Gv+SKs&Bk}B2;r7Jbp=ovi*NYKip1?Ap z#uCFYN)`987!?|$LSrB=#K;oZ3Yn+PbLM&BxY9<4-E@Sd^>4IvDI@1n`Gqe_$wtB( z?B|!X4fb$v=ib6I@fvKhOaoRE8?5GD!Tk#NbKo7WPig4!l$EdaDDor&iZr;T_-iXt za=jHd4;Qbotm2i$%W+=|pceuNo#KUx-=iAufxvHR0NoKlw*=7j0VIBI+J%ANf&iKq zK<5RJVCAMbBk-g9@Nk(PKy}zp3jFFYn1Ej`gtUrB2GEf}{nU^7a1ZJhKoZLSE?fz9 zp*BHibD)*njf(3a+UR$F68dNmFGnHTtT?5ZoQr5t528&yh?XtdqM@4tzx4rxU(q@Z zT^;zX2%u#F^hy9d=R?Jm>!p3t_bYlhfbI{Vy94NUACj~lesx&gOn!@nLPb{vkoaAy zeisIQ=LFDPpp&_$799$m5crK(XbkS~qCt|6TmltU`+h||1E@;?wGW_H0VKIJ)3l|5 zUqJw62T)L2y`0ks4NKXDN$!0Cv`e9_h2Iu#!2h$twE B2)K5|r)TQX=$0NUvL4H0Yetrtiub`VBuV7>VwefQ)XdXa~e5el7 zf+F9Kv>x^aIRS(oDo9aU;kZ!#{s7t&K-&Xo3xg+g7Vi20S{Fd8187A6Ns48f;+4Sf zxd5t5`y_r3YrOjd= ypB0>8NdbTZJ?{1b4;2hf-R z8XiF6H%Q}E2Yx*R2tDcL(msG%1(5i;X`2Opr2$kBK-mE#Sh*?E0>7{i j3&PfIbPJH376Tfa=l;q&;!&@*wmz9}>KQ2T|S&zF)m^>&keF7>`Qa+y??^DbOA2 zC(tbcq<%$Xa<4B!MsgPxRR>U=A5iWB4Hds;K9oDphupNe=ka`o<}A=D3QY%^q|k%_ zstq6s9jT#59^%(8NZU)HZij?UQooM5ZSo$^ZJygGw BS8~=AIoo}|oGm_-+c9U8Uv2=2pO?b-%h}>Xxj8 Glg`Rnj=X9Z7 zMLv|%-iM&L7n-xjhcv~#k|Jlj??)T?xpd5F73Akb;^(LE{7B)4=J-%fGe4J{bpcfB zLv@(u6a;<&ez|eqFDDz!(v)gpA4((xXkP&B@}az!EGw~9QY5|&pbY`^Spco|Ax*JL zQ@rE*CEf_2AZ_mT_>nvAGXeB?06pkK8t-0>cPD p!P70vo14#Vbv||ImQ2{hGfCdDRVCAOh6Zmxxpw0nQhke_?FTfzTBYrKVmO1Tx zDA6Q MWk@UwGQ2ep`Gf`zKQT zAb#0jbAPGOCqSgfC5P Rl^*Kp>W~k4ZnyR_$YUm`HMKhCRHqOj)n58mfwZyS9CuhdW z{2V^ax8X9=hRaMFE;DVo%(UTdSC`p4VCLI!SE 2I`# B=Dm3fR(zzrCTZO#Y27Djdri{znxySDN!x3Z(qxj- zWRl>|No8rI-R9*Z^f^Q0%#^yDnM(6Bv@SEH?t}{dXJ`&+0f7ZiyS>D;kvnm inXNKl8LqhFrfkT;+o1Lv`vo%$Xa(Io_qDE^`qqSh!oP25&{~E== zM)9vv%xe_$8kOZ5mF1ey9^!MhvZfMQuF)FRNV)bvrCwikYqZ=cp^Jz!CG=O^$=b?O zLU#(Rai*x|>7=<;X`HIiQ-oH9{(;*`<5X#!o}p{-=^6T`xEjBw#_t)rNBx(oE2(;F zD*0ZiF*`N>PK~oOByo0X&O0^EPK`4+ycqwvp(n)+i_V;@IA0S&f^ e#?#n$Z+F4t7AYRp$Pw^!Atk>=1y{TnG&Z Zf+_^a}@tMivJwNe~w~4M=_tH zn9otn=P1r|6z4hN%gA|7c#gU^i>vjT6J8{+)@6>CxK{DU_7s20mGvuQ74clcPMjj^ z2rQlM)^uyWbrR=p-(+1xTRm H8+^HPoAsHs!=zXn*`qYd z`jzu(rkH+anz@A66)!Van$yhH<`&L0x!pWvF13%ck1~JdD_5h e}=3dNw z75AmY{nVU@yI5O$p19US>OM+-tU{{$oVv=z))0l2TUpf es%w@?m~6nQul3j z7uiSytFsb+k-AT)D{lkVUn6~yHPTdBryTl;=nldxd8*z5w$`AP{a&CokH*iEXStk% z@St}&pDL^&4)kFqG-hS<6|Ya7FT5xb`E_=3+JfcmwPMazXS1`KGZJ `Ga=+rnb3S)t;N#+y!`C$SIs4fOokIS!nuBf3x7b!& zsXQNawmEM)+j&DXi!+1LooAhQC`m3^mCu3_F;aZXi3blk4?0V&=FV%JtED3j{2zCO zBP@rtW&M@*mHM)+Ri7VF_cYmUL#&s%Z&BzmHyzKL+_;JtUu<-CJ3l-7!D}B_?{}VZ zwgX`|<38@}a`sXu8+vVYzLga2#oKG&Iva_Tv_j5G=T+xn>i31S-ub`_Uro)poHxAZ zmw2a6XhzNCa^6;V0WE+WJB)+KLHw6H|B_#zecF f99)BdxblkT|^3j z@lV8P;8FUZ^C4}aZLJ&xM@T$p52Xu7S@2k<)l6`4FZudj-9;&xXpR)zdKY!j6ZiNo zlqKIDlnWZVzuFdn5!Tj2>|zqGOaY@XPhn>(zZvjP4367QYbS|ULe0J=AD534qzyY? zDF@k{8L^wcE$j!dq3?TM83(+!-0eMYC&xn4i>~8RN?6X_?5IW`C||y>{(GHwHG;+W zOg!$ F83%KlK)GrFCOaVQOtjhOA zZD{ MtCQ}-`Pu~jn0f1S{WUym}*G9GNoii 2v>%Quw$h|bz0%wk_nxFpvw7b*Ec?>*QeJjmgkPl9sJ+LRnXX(B z2fd>)Q=ya4GDop I NkpX7x??BwM7$)qCvWAVhbr3Knuf&KHpdhi8%U zWzZ-EJcK8{2wGfpT-a;z{e*q&yyvj{2whdz;_JN@_oZnim`MNP$+)X;ocUHlwYuoE z$F%&_L5riY#fSFUfvmiY9$!uwU(mZeO u25Zn}^j^?wC)n+z4Z_IFK}!CCy6z(HQmFKWFMY~!5$Esd5%eWrGm}1OxAO@) z?OR`qgSk-L@@Yq$G}>Eu$h}m%I}f7iMB4H7dd7q+>-ZIWakE6n@t01kW|NO_LMGUW z1()L0TlPhTtXyjFp7WJQ8Fp*I4Q@YvfUtw;r9GU)m4#k#wTEXO5zmzXk)AxO4Blzr zBI$CNa}Vdj$()>Ux#~-3^{E?!TDsa9JqV7_4g7>VLp+6?*J!I4uxP~< s&(}zvW3R4%M{q z{(3hCoTl7B`Pqu2l$}c15uPGwL7{9WKB-tedEgP%7MH$9G$oUp+%e}H#enZKquG82 zt9;^bcRtn_LOX47k2~QA@M}nVpO$Vfe=mK{=U^xrL@fZ?Xr-G2U$AoZLjtZqds~IL zZjYEGFFEZefyJJpx~& y zw2&f%*Pw@7!XfVE>ZPXcgNqORvcn4%T*YG5OKqx_fGM67K}`?BkJfW2Elr|A;{xS{ z1hVoee69M!!^QG#b>i(KW|Y6Mn~tRDHO;~AEq r?D}Q^T*$(7~UR?SD+C77I z-9;~W(0Kv9^qZziA>=pbN7W%)#KIttoz&5QId+&_UYUZ2`}{LJl_0%mEx1zV{FQQq zyA3Jcmxz?_+n3V9a)r@0qQ%hC{7QPXCw5~}TUPq<@8Q})(Me$N3DW15A(Ac}EbRn$ zpnta0PZpuy(tHaY&FQxIHsW%jsZw~GR`>er^Hz0lMPL3*D7AN9SD#&hjLV~5 X#QV}& 4HK%_rgduMs;{|I(^ zOD~%4+~ZuL_(@99E~(17Zvz*=AwsiC=4^bu-O%F>&r*YiO_|xzGt?xxTVHfhLZx2# za*z6#1bT^`?czhdjp!YyiC*{a14xP3m-`75c&}PiVfw(&=@VV)5$;5$7`sUxG5X#Q z&?!-812MEW#{V--XR)7OFStfZ;meKQv-&$%Q&*%%c+s0RSnXS0#Q#y^BDb56m2KET zd*RBhjLN>}zRtM|S>1@-u634D+cd(zBKD1N@K4V5{C&m!8@|8s`zUc2$scm}cd0${ z6G6vYa5-}w{C-S%*SWZ9sT;sn!e4hD(dRunK6?i^r2d-)J92(Qe7N(J+G1nSgCNIg z)D`_r3+BOTX;>P&XeW95uLU^$Ko99sLUckYIBp|1Y$Egk;~qFBow(i@ksQ>{CCt6# zJ%Wb3E6~(?Mw^lPRi3i}(DmNjO`az+@Sy4*;aM4HA7H$ @Z>jOE0^fHEVvVGNBSn(KkY%srxRzrMBvi1 zO!)Prg*wSeEd_xlQj5TOoHyXVAQt(0Bi$V5ElJK*?r9V(b*Lb^pI!vYgrHrBR%Xno znk9-p6B|O_3XC&1@G3Ny3(X3j$~=-q@012Df0iCgZFirRQQC&fm2~};78423%cJE| zS^_Iod_60pZcLKl(Nf17#K-|lw}+G*=ncVB_(s~d8FUpnN+Pp|kH>!{Zyk@*PQOqS zq|V2Ry17`oHiYyn*-$6dqmPusrQ>n=B^DHstNwUgJ#d67qWknMGlktgKu0=I*G7t@ z7nc#(r^u0(46kz03OjK35-OBnT+W}Hp9Fh7p{HS8yQMjCU7k@+B-M)&m0#M@>%XIc z Xmc((zshnR zAm(DU+x5g^)yr*3{LgYVigT*QwVc`Hyq_Mx?H4TPbn$okb4!cd#yw4a&Q@uXun**! z-}PX*iP`37omDam1hqEl?7-)YYCqGkMffg7zw9KA_ _Km|jC~2;i-jmS30C~V14+0? z_{!+0M?&MY*ZZ2EycZ?s|?lKcH>VgFNk_S1TePdPKEd1O-<%ecpF{L{Fn->tD2t zaHUAPUd%Zk)Y83p^wr-m(*KSYTSLokz&861mll8nJ|*;1EXq%qJNlk@PpDO}-kHn% z(Km#DjQzQszg?tVMl0Pw?yqQzGm6tT{FFG-|9=Ay{L{k#-AHNMSVv%l=h|q_t=f;D zg3k{^apzuUuKq-sVuh%^;i3Ou{WxzZ*PQDtB=t4WQs!N*qA!nn(o>g 3qfw;tnRz<3Jiw>hzZCZF6T)LCInRybr!x^bOWe_71ZvThZ zTGAF`od}OG^Fq1 SS!x3R#c1tcbzYzl3Er=Kw+ZQL#Au#%6tKSrZKJ%Rv(lb!L|1Kvmw%zGbb7#M zny)w!v6#Ta<2OpkW9G0 TI;y#btvhMcUK&?6TVQvFS-Q~PXkDP#F2l$m1&Y{JN(7$5)R6yb17;7Cs zyRL?!AL@uBPAgxJ<(m(`WI;oj`#g;i(tgd?!XEV{-1YD|)u&}sFCIUBKcGI%dA?7f zRA}#Bb#og^clD$tppQ4V;l+!IZH&bGa~tX%^pK)GWp3lJOQ~Gn?+@lS2-dlc`q6?O z(x2P#b(!?zhhBa^?)o0ykE?HhrQeSqn#1p(GO*g}`f)$pr?UU-+eX6KE>5V{66Ehq`SJv^JAJ$ z%F)YPgE|{~Of1LexUZD}dSXvU1~V}-77?n+dT<8(#hM ^iy|MvF-kNTL z9B;syj!{}Jsdy)sF~m;X{mkhnk@4?kZbPMCY;wUSot#Be%DkRmJFx|2Ef`(FNc9b# z#737f9XcFN%mrFc-)EymMOVsr=zynLzD0&)HJ2Gu%6<-c+R5)hN_~j(KSnP~AH5C# zz1SGr$YU3=ABBS37-{UMZ+Vt+XOiCPamfM6!WJf_&cg!jQ0xUGDPbo)ELIhk$_IGK z?1)hFHbBvMVugH!ee#=fx=5QlW38Ht7EOnyGGqNSuFP1wtEKtWEW(J wmgSX(A zH1K9ck9s2K{B5D$A;rd@b8+qc`u)0;C^JlYX`c_|N{hex&-1^aj#w%gZanJr3%&5i ztigXnOH*U0AEJ$=oia6D39~CQBFT`xSJo1#e-RW-g4cCuq6B?D^D}5vX`eFX-k%wL z%P13Fq2ue1d3N=)cyjS9S|-CEr7KS8Xr7C3mog)ir2e8it|OjJS<6|2e}MizO5d|t z?JMCD=^bU9#rMx>(NAc@uc+f}@LNgii)FV#u%um{rgtfVK0+bp5lFkoxj|_r+;aoZ zE3ibwR^rkY-;b|gohEgVOZ!BT#2XZ|yRcUFlao;&;optUef%v2*Pr2r_np7OwQ>Bn zgV!_kEu5Q43U)WZd-pjfgVhSsZszw@#d5E6yGomUgFtpkh*WGr--|7_o3;@wU*H)& zl}offts;B3r1x^MjA*|slylSF0R?`dMB#0TAsRIb{`t6BaH6c9W>Z2c<6If_%4%*y zLgP@&7F&)ua!Gqdz?43k7$quaJL$s{)NqT&5Ds*EYQ_t4F>WZpB1ri2%rcI^_d%<% z^s{QW=y)6oe 3Vqd&J9-h!k*@o zS;`dTW-AnFs&fSq=2i3Xl@kJU(9`LhIO^cjjh^}!>^Qiat0i|1mM^0m%54mlWX<;{ zzLt>;Mjgf8thkR=HnLSo`f|yDt3VuP2-@nn0on6$3RW^JRO^b4$O21t3z0zdhV<() z0~4WTr60oXAx0{#j?7~De zE5GjsNt>|}&{! zn;9v719rR7m|uZ^D`=U;^N-M_sZ~v!t;o?X# %bJtQUVm!0~Dm0^JnP{m4 z^aIRJL33s`z m+CS4?VF&}2K41>o@54h5A^++zGf>FlbM%g zw8MLv@(XeQ_;QAm=F7S;?2q4F!A`kDLZIj$T)wtI3w;1?>!9IR;PDaqb}hIcU qf4<>R-~aTadkyGGkX>1I zX7>bCXSAy`U9#7}zl!M9-FBC;sA%Vi$8&CsxHoPz-VT!=#9Lz&ie7-fBjo9hO-cyr z#~O^ppbufagjHH}V{f2B_6ZInMO!#&EE+C~F35x@KIQB}xhlA2=gSA0doH^q2V0|Q z;SuE5RAX=$mbYR(%zN%hzGM03MPKiEy#7Xz&fY*`K{r&NacFw?YNi@b`h~iABDa^& zo&vs1f^S`~aritDxe%lNJkd&j_QEScVz?4o=W)n9QQ)ofM8T7!gX`pi+my;kvPhur zCsKcS5bVTG;6lnhorfNjzU50e)g6gQ z!~RPbnPz5`oTWczr4-y2A^Flj3BInK=I2$1r|WY#o?@?fm-b}-19&=j%0nO%e#n3M zi}ZX=>f7iM^R(>`f+;>&^J^JBJs)J_+iJeYVHo=o=-WQ7#pYWnl)%}VXw3i1i}_ZW zTYgRL2U&N#o}E>3dfRj;DKkv 1g4)OYF>h F2-LUGuGaM|C99RJMcM!dEjs8J3k=RoAgJ&K*{U9x!{*& zeuCP3uk*3&I1{Zx>^1({qOJ<8K+~?q{}JJEewXN6@Eo8mx-VcUBl2@8@pF8BBtp6J zm~X|14J_-o&Cx`Su(JGpr!sGdtx1~oSUvtFJ4trnw->s!#&VKAr;`50=eQ1@E!o6N z(3sx=_0p@&&YVt1&AS;nxw^P*AU$G#`xmR<;1gr~kgYmU+Dh)m^pj1zNTpywo6!f> z@mRKtB|Wu_JJgQFji7bis|0&et~$9936}kw?xj3|1>D?w_Vr{zFgj}hPXFr*+ld~_ zS->cO8G7woWyYD^9ax^SH>>UnO7`e^xI8s-qe@GYmsk<*rRjo^llaL9>wk5@vCGNx zBTXr5rJ{+7u;X*VMd#n@Wmku%>-lf+l)!q{l mUPb$@6(>Q|#T} zaOF*gU5suIAVWdlb9n!Kc>afnyEb|~nf7g>!xR2j&&+VV4Q6wkTX7%Kb%QUMf%}S? z8)@+y>M{v>Vp-$o^439v2)@>G=cfJDKjNvS?d~#hBOlgR1UdYBfSJH2$mu>w367tO zzGU3=J|p0rU`p>jUs!>b{xB8GZ6_S+a(h_ihaQ4- z@`i}?IlMQ-?;H5|{7}jB2Kq3W6W;6Gp@bZ!eI(WzIq$*!iE{VTKdqEF#7NNhWTB~L z|5pybnfxV?xeT;#AsQx|{-6mxKr!0KwfX#>MYBK5$)Jw{%iuc9u2g@u&4L&{;O6Z= z`M-r8Aafh*py9L3ez3<6{67R^8TqF&PTWka62?vuI9b-CpLZUTH2~%>Sk2@47UxFB zdg~bNHKKNL=G43Ctc}~#$*Ppv7>A6(1s~t?pjWJS1$AOB?>Frm>({tm#QzzjotXz< zO_&~oHv9=IV>P#ocn`CJy&jqDTul s+b6aP hn$KJNEpWIymf{$hiE2bP!W4%WXx zQCT7V8?DD$!(rBjXHAf$T0Zq{UM efdRu=~=X9cV9PqWVOB=eBV zSa iPV}C~V5!T@ zlz&Z9Ad~V=2dd!irasdHY4R=gV%FVdy-)T=%1*I3Jd%SxOJJ!tM7PTu9~D*;ux`ef z_H!)jOj^AREuVtkH}HQBc7^l|vbveZJgV4{1zMW?{=N^8aG%#0A p9}+lF;IN89cYTm4YY ze@G^O{D37XSiT2c;SeyCk!}t>kL=y_=fM4>vU*Ve`Zst=6kj80bnx`vKaTpz;qyt( zG*%aP!OxS~Kexh}$~~BI=4?3l99Hxuu -c{y6y1=qB;0%llCDukdArexe9Y$-}1*TU++ +3skmG!Cw_QmsPA+;p5_mES?xxk9nB>ngF z=d57*Gis_ev bV!NfQjzM iy(8?Qaik~#%{Pf>mO(yZ(Mtb^ppoV{g(jJ^EP;`)0M umOSO=hRnpR6g?g`9vf&6;m5 zvSwJ<@^>a*x4qFii``sHh;b`tMEuFR!+MBVk8m=^wd~V+%etNuGS*o4an{5qoSCuS z`hl>moR;wt=f>~gw27Vky=v{Yezsn-_L`9OriqvwYqiNUdDfSFgQ>{+$}}(yI9H>g zX=rUSjZI@~vuSFYTVI=&rrg?M+L#LK2h+~TcbK}F8f%X^(hTLLnc-%H37Ju5JULD< z$C*qsk-uznqB+SV%v8?i$Tu_0EXtT|E;J=(o|(_LhAuVNnhxeVbE`RmvpViD1I$wX z2Ac=?JJLMJ-w^Y#d7KiSHm{hY%p2xk=2)|qzbR&e*-gH`nBUBKcA;Hl=GhJG24=q9 z%x-2bv76h?Ir*cd-O5~MSJ>^%6?P}PlUZn2+I`F-do1UF+-lFTXPVpWGwn0Y?MTxj zv}ggcSj?Zi10-*=H0IBy*K2}LGydFJHp9q9MiOmkaYK7^0+9F4Of_w9cpGgH?oj2C z(X? Kis(cWI51wFNPfktAwVvg#4JVAeh;DhAHji7c!zFpva_e1kUS)lV zT(9FSl@xg88{BXCOXqx*@6c3RtnZQeANWgyhqmHw<1Y*!?Zg!x3UO*0Z+lw~e`)Xl zJA7$ j9MKzn}t1CCc|)|g2^)3xCz6%qb3KQOEtMB*XpjE*8{F7#$ULtC*0PI zm}RDnIL+a_bmhEsIIoR$gsFi4QsKXjxLx4FRJgDkrB|6gl-t+z1+F&Lz%`~HaDUSu zcz_uMJlG5Y9&UyMk1!*EM{#;gni*|Ilg}74hO&+}M_XaelNpQ8crzXsZnm<8n{nZ0 z+-YW-l@M;moo!CRJ=I)j#e}DEFEy81qvRACtH4}kuChjR7R@zQhFNTGz`fDjVim&c zcTvhxb3g6_=5gGo&5L|>`xWzw6)~@w*C_XO^SU( MN0l<^)hSB8vHky4b~X5kuL$&n6J&( zR#)?l`NryOzBS)kL(CSl#cIbly1%!2n;*;%R;l^X{Ae{WTg_JMD6`FMvl^N0X1mqR z>@Yj5X67gJlQq=rGP|ty$lq?OkNMgBLj1jEFERI-eZaq(UxD|V{Z=zOYDcYpcAA}L zRoUrwx>ae%?YK3}&agAABkfE(lkaS1*;!U!WSD)dc9C6VHL;8B605PuGd_*%M%Eya zXKT2~vsH{dSKzj@+gbfNqprO*!0v2!wknYAO44@a3#~2fZgw}T+^*t_qAl(2c6Z<& zb`Pt}?rHb5n%hU%M*#P-dja>h`&cbR7g$B;g0pbv+m~R!+LoLeC0|-9#M%g{Ug)ZN zAy4%}9$JAnrc@V%v 2Yn!hIW3H`AL2JqK}y}JXk2L|yM z(_SK`y+jOcF&h6dtO~bAXB>mhnZRE&w8n9yn#f-h>jX4NOf^VMHAoB%ayl|8eMngQ zkg)b4Vbv*N)hQu#$|Y76dgW5E6V1{c&2lyNj%b#+YL>Wambhw`0@W-9XqJ1x=U!-$ zO^@;ru=F;rmg%Wlrckxa5onp$&=I0vinJFJ&GLzAmd&_dqhD;*FU`>|*lem(idCmH z)!wO%_D)Szv)I}@*{V%!)h2yan>0Y1u#&2JBu90}5bd>cwAaefUMolSNDg|0ogPLs zNK-UOORJ43H|4;hM}`J^#MK}*NFDtcF8vs;=mi_SFve<*E*Otgh!)6DEs&vFAcMYV zDl#Ctpdq?ohIO2oiAHFs8lj;%+njIZsxFwMx}cHjg30KDYtb^-p$pPg7c{2tyOn&N zHcunr&zNVB-e=9T$mDb8IVARZzRl9lykK6y|3!2}JM)rx3H|c2c^S sn$3_wMK<%jlrrl2CCLL*6cJpt+A>*DpYq2 zr}y4V{`<^tRzmu4t3+kKMEY>6m&*JEmHCz`^GDikIi>AHmHaU(`A18yZuLg;yO35S zzfvW?i%Nc_N`4oW{0=Jl9aZu>sN{E4$?q(-fYnFkzf5ca# ^OIbA9GI{ac-RXXfzCZkgE`zhtb> zSeLOZ -dWJviK|Ur{cHAXU0#84~X~SuY0^rya-qR zGUMU&U(&axf0q7K`h)5Brr() yU`>u>Y)oU}b@o6??2 zyEE wj9nNzIW|5vGS(~B zCRPNL65SWw9^De%6kQ)($M0&O716t+w@0s!&WoNBogSS8JRw>e9mxxBn^K-ixj*H$ zl*K8hq>M=!p3*O+RZ64CzQ`+)2O>)&H%G>V4}?DpuMIB`zZ8Bje0TW9@PhEX@Ok0s z;o9)X@R8v@;U?jNa6FvC%X|AnTSMQ5HiSM4y%u^h^l)ft=#G$BTC23hWKJ3@0{z$$ z&3gnIw+2l+n0Ky6sXnb$`|CI~=yWXVOVEG|(0$i(&YHX*@fS4R6X>&N(POV$Z(<>> zvOdK!`rO)xj@oYhWbH-|#Y`F+D1q%FA95`=rD&YSVzHoST8N#3UTMdtRlA8j!ijYK zu{;KvL0BH6u`IAE&?D2#bnJzB=!VPC30Iqi*tgFh^L&K~Ie*c-O8@^lGW{m9{1!6& zHnRIJGW##H(!6I@nfJ|V^8tPPhsf?nNbW`?b~BRt4HEhtlKDLn`6H6J4GG+V Gs+7MfQBY?G$xJ z+cD={JJmVUPIFGS(}Cm8JUhdgX=geY*;&q?==&|?KV&y@mfFpn(>aHBuie!-%kBnT z<=kL*cdoa4I~Uu1oa^kPn5{SFbvXrqxQ`I`FFe1=e(n$_K`sYcgCFyyX0-DjPp_C| z&im#q=N+@rS!jNA<`MfncAJX(j-;fA4`ExC5dHw+4{|bMduDP8hqDBJijoSQMRpN8 zxCOcu=vI0`-dQ%woli+O)ogOk@#0)>w`9C1@vb4>4dkFMxV?uyDde4}!Ppn0oyCm0 z TGQ366{*$$~E;y=N4=v#w&J5ERUF(j=faq`~+sZ?P4nvdn?;+?tFnwRgQ&J zip?^Jwe!J9(on0&E589_!q$?fdDZy|8`Xk-@0stMPwb}7Vp`%ey9}5f)gEMJ&`M9) z JVK^b<7_nSyfeAZdeeaW zD(AjKV)916#3uhY;JXX$&V2s53vH1~{oXPwoo9&sDfzxazW*?*ojYmcKby_YU#RoV zP =1$C8{zE;RNu{L!GQHkV0{lQ&6``)as#z|-F)C2gcdK*>)X`sOK5UE z_6zUNnwOkK=4I}cQ1Crsd _cW$O%rG%H3xzg4h;JF` z-+V|3Ysu>)<;%Os;~v`NQTTd=UC!O!`3BA2lu}lb*Za;+@(htO)lJ1Wl?&lu(V^*D z#wzlB9}27{Ul+%y#6;_(8~Gk!OJ_OxF8A_#&)G`M0yyn`V#Nvll-e(~=kqoI`Js1K zk ?hW4FtErg2A+ZbWW!cBSlcuLiSr+!Mg`4SwI`UdH_v_j2xcoP$Cq zDBq5ebZ2K3dGEDnv9cUx)*(zSKB5+%QHy2N;v>6)yFDwo67nq}Tk+k1&nK#j#Ag>i z>$D$AVnwCWQ^e6^Db#0)vkVy(4Z9IN@U%UIH%~&;&@!dWgfwCWQqI3E5FcpMm=$-v zhslh-Ew0_xk&}g&S$x~na1s%x(4s@7ZW^~G{8Ne!l)0=F`m|C?W _pq!BY53td_RU6k^7(SmR)CNe)UCX*X8s z%&FXubH9uZ
7TFUUIoN3No&a6p$ zsGp`G)A+p%`F$Gxe1`j3?&r9l=YE0vMPiCg#5sqgjuSTz?pcqNy7^|}n`+vS!==Qy z(K$d)S>%*OPFduXMNV1dlqGX!aO4ijOL72*e2=%J{iKAj@}5sS;XSEw4)xp)l!=Yh zka~=!4$G(mmJlJEkm*uu0J2qy t>a2-P2wwzNAU zMMGHejnLZJa8h&TG@C%zT)3|-W0P;8?rtYZ9c}EXII-f;FasLKl?tbV&!wb(ntDIO z{Vex$+|P5r!2P0CKwZC}R-35nSCSjtAu`lL^bYl9-3mO>e%x3 >HI_)2I(!8FJHh{P@c#gQmGcROI-QZ)3Cv^wQU4++)0(+O pSjuUQ zO|4c~ysZe~?SC}a3f$qWym7(|dS7(gDzMz`JZr|n5zC#mq|L>eIScG3z?X))wWRC; z+_l^bDRl|GIemrJN;Jm=+M4epgMqYnF1j$o9!p%-5&3J%3U?VbDTOPRp>GGkrDH`# z@a+m76R0zM0EYR5m!M6f)V2Y0t!4Bv-N2&>ny9JONy-7=V(Qg|TYSp6djeN;kKwN6 zmRQH}JCXYm?giW_#4Klo8c_)^h5B#8Bg?=d68L&PU@!7&sAsNHc$ews>@b&N1GRKc zQi>FlXCo+)%IG%3oJx;I2-AFZL(bAqeM>pbsk^*8R<3oKKx(OvXhk{0K 2 z?kBiKo587~(aZ$ytGK;d(h58vsTtIC6|03tQ`=ClG3nU(3>LBfBK*l$xTU{lwVe66SFIKQ2TD+g9RL6T literal 0 HcmV?d00001 diff --git a/styles-neopixl/fonts/PathwayExtreme_14pt-Regular.ttf b/styles-neopixl/fonts/PathwayExtreme_14pt-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..2868252ee35bb132ff71fdfc451292e8d2b25d03 GIT binary patch literal 78572 zcmce92Vm4i_W#W6W;ea}vf1 JKK5Up{JhxPS2Lj|MTYi-3EAn@AtpopYUyOX5PGc^XAQ)_vZUu#u;Ow zIB6McsI%4E;%zG!6FB(nhNgwBr?q|cSH>PlWbCw88d~i&9Ram_7>mWT|AK|B1*XUE zx;+YcuK|`7t&6G`y*zRM19<)p&;31XyVrfUJ$oi906zW01Knfm01riaB(A;#L!0_j zAD#S&vD)()8@qB UGj{K~26#%{qG;iQ}7M{~rtsOt*gP9jrFqS&RSU}^@ zNKf~~4Oc8;OmhcgK6k9`K4qQwfa9KnK4u*5UfcI-SWGu#eod%9c-_d@c 6Ya zAY)OltQ+lHw@P>MImjP~{Q3v^)H(NPFTo?@Q&TJiS0-NN6->ugF+Dwb{L@k{ur1&5 zKF%LZZJ8|B-h5mhl$H?AYBF}@g)9%5^$pW#&|b#=68_AObbYVj_FqqJnTpZgtUVWx zIwlB;e_9dGf5m)2!G)q7&-0WkU&c)M^Z0iQV_!6}6{k5t3l=W0vB#P5N1@Vo6F012 z> ocU6(vq(HKR>H){y0KGv5MvvA$5(N|_{M=% dR+)Fsb_2PEm z*dy*?L4f**1LB}KB<>dvproGFfW{Iwou#ux{DD4xAAbZGI9kDZihA9lUXLM%Kd9wm zF;b_g(9Z!i;64^dJhS3F6LfOc&$i-x7P!RORqP&|53u`jevmzn^GobAoWJ0}#(jAc z&Wm^t&VBq$oX_It;d}w#j`MZ=5Y9xG5DUdZ)ZQ$bac&i@INOO9(T@J)qDyq)yi_d5 zxm$GO+$%td=okGs6DKs_#3MMrEM7tF^e-M w0spAjB5n|OfU`%$E8;!zB|0=zW7JI7 zlxgZTO`0W|Rhm;Y=WDLi+@g6{^Np5kgS2tl3~jA;p|(pqpdHt4)n2T R q47CSA-6Q zZVtUT^oG#8LJx;N8~R%4d!e6(eix< sZ^VZYUq{A7rbQM+&Wvn`Y>iwVxh8T~ Ot>N8?Zkk@s>H^`_QX|*rzD=AcunFRiH8!8 zB)*n-Eb*U7+N98=#H8$`lBBAn#-#S7-lV-r_a{A>^itAWNgpQtVDL9Y8&VA>Lxo|B z;SR$+h6fFg8{SS1NKQkbG(K-sGdkEaOb$rN-A%v? 1mqamXy zqa$Nw#+r=rj6E3-WIUVkX2vHOKV}AICS~SlmS$FD)@LrrT%5Tqvp;h xQhCvw60Ec5L>n?C$J!*{5e; zn0 4xodJa z<=&n9K<*pUw@v>vuQYFd-t~E( 9T${)xd&p$u^s{8}_zb)`72rEb`Xe+p> z;H|>A!kWU7!X1UbFZ`)UTNGFnS(I3mUNpU^q-a)AT~S+6Z_(zWtBP(ZdZg&3qW6nF zH~E?(P06NO(_+(V(*e_0#c9QT#b*>>UwnV@OC=E{){?m;%S$$vTvD>D aOdC+`@d8he+`5E&^=5I>%r4gmcrPE8xO6Qbzm98z_QhH(O_R`x*_m@6g`gG|Z zO5ZL0qVz|LpC!gJ-BMv`w)9%gvh1_`-tw-+Q5IU3TsEz&ylh3;*0P(*?ksz-?5VOp zl)Yc}N!izBKUjs;-x_X>x29TittRUXYmIfTwZ+