From 801e3646795bd6421be8761a6a88d4b7a331b565 Mon Sep 17 00:00:00 2001 From: "alextselegidis@gmail.com" Date: Sun, 3 Nov 2013 17:46:23 +0000 Subject: [PATCH] * Synctactic corrections in thesis. --- doc/thesis/includes/external-tools.tex | 20 ++++----- doc/thesis/includes/google-calendar-api.tex | 16 +++---- doc/thesis/includes/implementation.tex | 40 +++++++++--------- doc/thesis/includes/introduction.tex | 18 ++++---- doc/thesis/includes/usage-scenarios.tex | 8 ++-- doc/thesis/includes/use-cases.tex | 29 ++++++------- doc/thesis/snippets/google_sync_algorithm.php | 3 +- doc/thesis/thesis.pdf | Bin 1198424 -> 1198188 bytes 8 files changed, 65 insertions(+), 69 deletions(-) diff --git a/doc/thesis/includes/external-tools.tex b/doc/thesis/includes/external-tools.tex index e1ef8486..7c981da6 100644 --- a/doc/thesis/includes/external-tools.tex +++ b/doc/thesis/includes/external-tools.tex @@ -4,16 +4,16 @@ %% κρατήσεων ραντεβού. \chapter{Εξωτερικά Εργαλεία} -Εκτός του Calendar API και των βιβλιοθηκών που παρέχει η Google, έχουν χρησιμοποιηθεί και κάποια άλλα εργαλεία ανάπτυξης λογισμικού, τα οποία βοήθησαν στην άρτια και ποιοτικότερη παραγωγή του συστήματος κρατήσεων ραντεβού. Τα εργαλεία αυτά είναι όλα ανοιχτού κώδικα (open source) και έχουν στόχο να βοηθήσουν τον προγραμματιστή να επικεντρωθεί περισσότερο σε αυτό που έχει να κάνει και όχι τόσο στα τετριμμένα πράγματα τα οποία αποσπούν μεγάλο χρονικό διάστημα άσκοπα. Εν ολίγοις πρόκειται για ένα σύνολο από διάφορα framework τα οποία είναι πολύ χρήσιμα για οποιαδήποτε ανάπτυξη λογισμικού. +Εκτός του Calendar API και των βιβλιοθηκών που παρέχει η Google, έχουν χρησιμοποιηθεί και κάποια άλλα εργαλεία ανάπτυξης λογισμικού τα οποία βοήθησαν στην άρτια και ποιοτικότερη παραγωγή του συστήματος κρατήσεων ραντεβού. Τα εργαλεία αυτά είναι όλα ανοιχτού κώδικα (open source) και έχουν στόχο να βοηθήσουν τον προγραμματιστή να επικεντρωθεί περισσότερο σε αυτό που έχει να κάνει και όχι τόσο στα τετριμμένα πράγματα τα οποία αποσπούν μεγάλο χρονικό διάστημα άσκοπα. Εν ολίγοις πρόκειται για ένα σύνολο από διάφορα framework τα οποία είναι πολύ χρήσιμα για οποιαδήποτε ανάπτυξη λογισμικού. \section{CodeIgniter} -Το CodeIgniter είναι ένα PHP framework το οποίο έχει ως στόχο την αποδοτικότητα και την ταχύτητα, μιας και καταναλώνει πολύ λίγους υπολογιστικούς πόρους σε αντίθεση με άλλα βοηθητικά συστήματα του είδους του. Θετικό στοιχείο είναι ότι είναι πολύ απλό στην χρήση, δίνει την δυνατότητα στον προγραμματιστή να παραμετροποιήσει τον πυρήνα του καταπώς τον βολεύει και βασίζεται στην αρχιτεκτονική MVC (Model - View - Controller). Όντας έργο ανοιχτού λογισμικού, κατέχει μια μεγάλη κοινότητα που το υποστηρίζει και επίσης προσφέρει μια καλά ενημερωμένη γνωσιακή βάση, η οποία μπορεί να καθοδηγήσει τον προγραμματιστή στο πως θα χρησιμοποιήσει το framework. +Το CodeIgniter είναι ένα PHP framework το οποίο έχει ως στόχο την αποδοτικότητα και την ταχύτητα μιας και καταναλώνει πολύ λίγους υπολογιστικούς πόρους σε αντίθεση με άλλα βοηθητικά συστήματα του είδους του. Θετικό στοιχείο είναι ότι είναι πολύ απλό στην χρήση, δίνει την δυνατότητα στον προγραμματιστή να παραμετροποιήσει τον πυρήνα του καταπώς τον βολεύει και βασίζεται στην αρχιτεκτονική MVC (Model - View - Controller). Όντας έργο ανοιχτού λογισμικού κατέχει μια μεγάλη κοινότητα που το υποστηρίζει και επίσης προσφέρει μια καλά ενημερωμένη γνωσιακή βάση, η οποία μπορεί να καθοδηγήσει τον προγραμματιστή στο πως θα χρησιμοποιήσει το framework. Η αρχιτεκτονική MVC είναι η πλέον διαδεδομένη κυρίως στις διαδικτυακές εφαρμογές αφού αποσκοπεί στην καλύτερη οργάνωση και συντήρηση του κώδικα. Ουσιαστικά πρόκειται για τον διαχωρισμό της εφαρμογής σε τρία μέρη: \begin{enumerate} -\item Models: Περιέχουν συναρτήσεις και μεθόδους που αλληλεπιδρούν με την βάση δεδομένων. Χρησιμοποιούνται σε διάφορες περιπτώσεις από τους Controllers. Με αυτόν τον τρόπο επιτυγχάνεται η επαναχρησιμοποίηση ενός μέρος του κώδικα, κάτι το οποίο είναι πολύ σημαντικό στην αρχιτεκτονική ενός συστήματος. +\item Models: Περιέχουν συναρτήσεις και μεθόδους που αλληλεπιδρούν με την βάση δεδομένων. Χρησιμοποιούνται σε διάφορες περιπτώσεις από τους Controllers. Με αυτόν τον τρόπο επιτυγχάνεται η επαναχρησιμοποίηση ενός μέρους του κώδικα, κάτι το οποίο είναι πολύ σημαντικό στην αρχιτεκτονική ενός συστήματος. \item Views: Τα views είναι τα κομμάτια κώδικα τα οποία παράγουν το αποτέλεσμα το οποίο βλέπει ο χρήστης κάθε φορά. Στόχος τους είναι απλώς να δείξουν και όχι να υπολογίσουν ή να φέρουν κάποια δεδομένα (αυτό είναι δουλειά των άλλων δυο τμημάτων της αρχιτεκτονικής). Κάθε φορά που χρειάζεται να αλλάξει κάτι στην εμφάνιση του συστήματος μπορεί να γίνει αλλαγή στο αντίστοιχο view χωρίς να επηρεαστούν τα άλλα συστήματα. -\item Controllers: Το μέρος αυτό του συστήματος αναλαμβάνει να οργανώσει τα άλλα δυο. Κάθε φορά που πρέπει να παραχθεί μια σελίδα, η διαδικασία θα ξεκινήσει από τον αντίστοιχο controller. Αυτός στην συνέχεια θα καλέσει τις απαραίτητες συναρτήσεις και θα παρέχει τα δεδομένα που απαιτεί το view για να εμφανιστεί σωστά η σελίδα. +\item Controllers: Το μέρος αυτό του συστήματος αναλαμβάνει να οργανώσει τα άλλα δυο. Κάθε φορά που πρέπει να παραχθεί μια σελίδα η διαδικασία θα ξεκινήσει από τον αντίστοιχο controller. Αυτός στην συνέχεια θα καλέσει τις απαραίτητες συναρτήσεις και θα παρέχει τα δεδομένα που απαιτεί το view για να εμφανιστεί σωστά η σελίδα. \end{enumerate} \begin{figure} @@ -26,15 +26,15 @@ Το σύστημα που υλοποιήθηκε χρησιμοποιεί το CodeIgniter για την κάλυψη των βασικών εργασιών έτσι ώστε να υπάρχει η δομή MVC στον κώδικα. Επίσης γίνεται χρήση της ενσωματωμένης βιβλιοθήκης επικοινωνίας με την βάση δεδομένων. Εκτός αυτών των δύο, ο υπόλοιπος κώδικας έχει γραφεί κανονικά και τηρεί τις προϋποθέσεις της πτυχιακής εργασίας. \section {jQuery \& jQuery UI} -Ένα μεγάλο μέρος των σύγχρονων διαδικτυακών εφαρμογών βασίζει την λειτουργία του σε κώδικα Javascript έτσι ώστε να κάνει το λογισμικό πιο φιλικό προς τον χρήστη. Διάφορες βιβλιοθήκες έχουν δημιουργηθεί τα τελευταία χρόνια που στόχο έχουν την εξέλιξη και την αποδοτικότερη χρήση της γλώσσας javscript. Η πιο δημοφιλής από όλες αυτές τις βιβλιοθήκες είναι η βιβλιοθήκη jQuery η οποία συνοδεύεται απο το jQuery UI, ένα framework για την παραγωγή ελεκτηρίων (controls) στα οποία μπορεί ο κάθε χρήστης να εκτελέσει διάφορες ενέργειες. Το jQuery έχει καταφέρει να απλοποιήσει την συγγραφή Javascript κώδικα και επιπλέον παρέχει στην διάθεση του προγραμματιστή έτοιμες ρουτίνες animation και διαφόρων άλλων ενεργειών, οι οποίες διαφορετικά θα καταλάμβαναν αρκετό χρόνο για την υλοποίηση τους. Πρόκειται για μια βιβλιοθήκη ανοιχτού λογισμικού η οποία υποστηρίζεται από μια πολύ μεγάλη κοινότητα προγραμματιστών, οι οποίοι δημιουργούν μάλιστα πολλά πρόσθετα (plugins) με λειτουργίες οι οποίες δεν είναι διαθέσιμες στην βασική βιβλιοθήκη. +Ένα μεγάλο μέρος των σύγχρονων διαδικτυακών εφαρμογών βασίζει την λειτουργία του σε κώδικα JavaScript έτσι ώστε να κάνει το λογισμικό πιο φιλικό προς τον χρήστη. Διάφορες βιβλιοθήκες έχουν δημιουργηθεί τα τελευταία χρόνια που στόχο έχουν την εξέλιξη και την αποδοτικότερη χρήση της γλώσσας JavaScript. Η πιο δημοφιλής από όλες αυτές τις βιβλιοθήκες είναι η jQuery η οποία συνοδεύεται από το jQuery UI, ένα framework για την παραγωγή ελεκτηρίων (controls) στα οποία μπορεί ο κάθε χρήστης να εκτελέσει διάφορες ενέργειες. Το jQuery έχει καταφέρει να απλοποιήσει την συγγραφή JavaScript κώδικα και επιπλέον παρέχει στην διάθεση του προγραμματιστή έτοιμες ρουτίνες animation και διαφόρων άλλων ενεργειών, οι οποίες διαφορετικά θα καταλάμβαναν αρκετό χρόνο για την υλοποίηση τους. Πρόκειται για μια βιβλιοθήκη ανοιχτού λογισμικού η οποία υποστηρίζεται από μια πολύ μεγάλη κοινότητα προγραμματιστών. Υπάρχει επίσης πληθώρα πρόσθετων (plugins) με λειτουργίες οι οποίες δεν είναι διαθέσιμες στην βασική βιβλιοθήκη. -Η βιβλιοθήκη jQuery ουσιαστικά λειτουργεί σαν ένα επίπεδο πάνω από την Javascript, βοηθώντας τον προγραμματιστή να γράψει διάφορες δομές κώδικα πιο γρήγορα και οργανωμένα. Ο κώδικας που γράφεται είναι πάλι Javascript οπότε είναι πολύ εύκολο στον καθένα να χρησιμοποιήσει την βιβλιοθήκη. Στόχος της είναι η πιο εύκολη περιήγηση στα αντικείμενα μιας σελίδας (DOM elements), η εύκολη δημιουργία εφέ κινήσεων τα οποία προσδίδουν πολύ αισθητικά σε μια ιστοσελίδα, η ευκολότερη χρήση της τεχνολογίας AJAX, μιας τεχνολογίας η οποία χρησιμοποιείται όλο και περισσότερο από τα σύγχρονα συστήματα. +Η jQuery ουσιαστικά λειτουργεί σαν ένα επίπεδο πάνω από την JavaScript βοηθώντας τον προγραμματιστή να γράψει διάφορες δομές κώδικα πιο γρήγορα και οργανωμένα. Ο κώδικας που γράφεται είναι πάλι JavaScript οπότε είναι πολύ εύκολο στον καθένα να χρησιμοποιήσει την βιβλιοθήκη. Στόχος της είναι η πιο εύκολη περιήγηση στα αντικείμενα μιας σελίδας (DOM elements), η εύκολη δημιουργία εφέ κινήσεων τα οποία προσδίδουν πολύ αισθητικά σε μια ιστοσελίδα, η ευκολότερη χρήση της τεχνολογίας AJAX, μιας τεχνολογίας η οποία χρησιμοποιείται όλο και περισσότερο από τα σύγχρονα συστήματα. -Το σύστημα που παράχθηκε χρησιμοποιεί αυτήν την βιβλιοθήκη για τον προγραμματισμό του client-side μέρους της εφαρμογής. Ανάλογα με την κάθε περίσταση, μερικές φορές είναι αποδοτικότερο και χρησιμότερο να χρησιμοποιηθεί Javascript έναντι της PHP και για αυτόν τον λόγο το jQuery Framework βοηθάει στην απόδοση που έχει ο κώδικας της εφαρμογής. +Το σύστημα που παράχθηκε χρησιμοποιεί αυτήν την βιβλιοθήκη για τον προγραμματισμό του client-side μέρους της εφαρμογής. Ανάλογα με την κάθε περίσταση, μερικές φορές είναι αποδοτικότερο και χρησιμότερο να χρησιμοποιηθεί JavaScript έναντι της PHP και για αυτόν τον λόγο επιλέγχθηκε το jQuery Framework ως εργαλείο κατά την υλοποίηση του συστήματος. \section {Bootstrap} -Το Bootstrap είναι ένα ολοκληρωμένο CSS Framework, με την προσθήκη κάποιων βιβλιοθηκών Javascript έτσι ώστε να προσφέρει μερικές επιπλέον δυνατότητές. Έχει κατασκευαστεί από την εταιρεία πίσω από την σελίδα κοινωνικής δικτύωσης Twitter και χρησιμοποιείται από αυτό ως βάση για την υλοποίηση του. Η εταιρεία έχει διάθεση το framework ως ανοιχτό λογισμικό και οι προγραμματιστές μπορούν να το χρησιμοποιήσουν ελεύθερα στις σελίδες τους. Η ίδια η εταιρεία επωφελείται μέσω της συμμετοχής της κοινότητας για να ανάπτυξη περαιτέρω αυτό το framework. +Το Bootstrap είναι ένα ολοκληρωμένο CSS Framework με την προσθήκη κάποιων βιβλιοθηκών JavaScript έτσι ώστε να προσφέρει μερικές επιπλέον δυνατότητες. Έχει κατασκευαστεί από την εταιρεία πίσω από την σελίδα κοινωνικής δικτύωσης Twitter και χρησιμοποιείται από αυτό ως βάση για την υλοποίηση του. Η εταιρεία έχει διαθέσει το framework ως ανοιχτό λογισμικό και οι προγραμματιστές μπορούν να το χρησιμοποιήσουν ελεύθερα στις σελίδες τους. Η ίδια η εταιρεία επωφελείται μέσω της συμμετοχής της κοινότητας για να αναπτύξει περαιτέρω το framework. -Το framework αυτό περιέχει έτοιμο κώδικα CSS ο οποίος ακολουθεί την μεθοδολογία παραγωγής responsive ιστοσελίδων. Με την έννοια αυτή εννοείται ότι η μορφοποίηση των σελίδων στοχεύει στο να είναι συμβατή με οποιαδήποτε συσκευή, λειτουργικό σύστημα και περιηγητή ιστού. Είναι πολύ σημαντικό για την ανάπτυξη μιας εφαρμογής, το να είναι διαθέσιμη σε οποιοδήποτε μηχάνημα υποστηρίζει τα τελευταία standards του ιστού. Απαρτίζεται από κανονικό CSS και Javascript το οποίο μάλιστα χρησιμοποιεί την βιβλιοθήκη jQuery για την υλοποίηση διαφόρων τεχνικών (πχ εμφάνιση παραθύρου διαλόγου κτλ). +Το Bootstrap περιέχει έτοιμο κώδικα CSS ο οποίος ακολουθεί την μεθοδολογία παραγωγής responsive ιστοσελίδων. Με την έννοια αυτή εννοείται ότι η μορφοποίηση των σελίδων στοχεύει στο να είναι συμβατή με οποιαδήποτε συσκευή, λειτουργικό σύστημα και περιηγητή ιστού. Είναι πολύ σημαντικό για την αναγνωρισιμότητα και ευχρηστία μιας εφαρμογής το να είναι διαθέσιμη σε οποιοδήποτε μηχάνημα υποστηρίζει τα τελευταία standards του ιστού. Το JavaScript μέρος του framework χρησιμοποιεί το jQuery για την υλοποίηση διαφόρων τεχνικών (πχ εμφάνιση παραθύρου διαλόγου). -Στην παραγωγή του συστήματος κρατήσεων ραντεβού χρησιμοποιήθηκε ως η βάση για τη μορφοποίηση και κάποιες μέθοδοι Javascript φάνηκαν αρκετά χρήσιμα σε κάποια σημεία. Στην συνέχεια με βάση αυτά γράφτηκαν ξεχωριστά αρχεία CSS και Javascript τα οποία αποτελούν το τελικό αποτέλεσμα που έπρεπε να επιτευχθεί. \ No newline at end of file +Στην παραγωγή του συστήματος κρατήσεων ραντεβού χρησιμοποιήθηκε ως η βάση για τη μορφοποίηση και κάποιες μέθοδοι JavaScript φάνηκαν αρκετά χρήσιμα σε κάποια σημεία. Στην συνέχεια με βάση αυτά γράφτηκαν ξεχωριστά αρχεία CSS και JavaScript τα οποία αποτελούν το τελικό αποτέλεσμα που έπρεπε να επιτευχθεί. \ No newline at end of file diff --git a/doc/thesis/includes/google-calendar-api.tex b/doc/thesis/includes/google-calendar-api.tex index 96a2fdb0..1cdb1b8d 100644 --- a/doc/thesis/includes/google-calendar-api.tex +++ b/doc/thesis/includes/google-calendar-api.tex @@ -13,14 +13,14 @@ \begin{figure}[h] \centering \includegraphics[width=150mm]{images/google-calendar-api.png} -\caption{Ιστότοπος περιγραφής του Google Calendar API} +\caption{Ιστότοπος περιγραφής του Google Calendar API.} \label{google-calendar-api} \end{figure} Το Google Calendar API (Application Programming Interface) είναι μια πλατφόρμα διαχείρισης συμβάντων ενός ημερολογίου από την Google. Επιτρέπει στον προγραμματιστή να πραγματοποιήσει λειτουργίες προσθήκης, επεξεργασίας, διαγραφής και αναζήτησης συμβάντων μέσω ενός RESTful στυλ κλήσεων προς τον server. -Με την έννοια RESTful (Representional State Transfer) εννοείται ένας από τους πιο δημοφιλής τρόπους επικοινωνίας στον παγκόσμιο ιστό. Η επικοινωνία γίνεται με την χρήση ειδικών αιτήσεων προς τους servers, οι οποίοι με την σειρά τους είναι σε θέση να τις επεξεργαστούν και να επιστρέψουν δεδομένα πίσω στους clients. Οι μέθοδοι αιτήσεων που είναι διαθέσιμες είναι: +Με την έννοια RESTful (Representional State Transfer) εννοείται ένας από τους πιο δημοφιλής τρόπους επικοινωνίας στον παγκόσμιο ιστό. Η επικοινωνία γίνεται με την χρήση ειδικών αιτήσεων προς τους servers οι οποίοι με την σειρά τους είναι σε θέση να τις επεξεργαστούν και να επιστρέψουν δεδομένα πίσω στους clients. Οι μέθοδοι αιτήσεων που είναι διαθέσιμες είναι: \begin{enumerate} \item GET \item POST @@ -28,12 +28,12 @@ \item DELETE \end{enumerate} -Πρακτικά η μέθοδος επικοινωνίας RESTFul μπορεί να χρησιμοποιηθεί από οποιοδήποτε σύστημα υποστηρίζει το πρωτόκολλο HTTP. Για να διευκολύνει όμως η Google τους προγραμματιστές, έχει αναπτύξει βιβλιοθήκες κώδικα σε διάφορες γλώσσες προγραμματισμού (PHP, Java, .NET, Ruby κτλ) οι οποίες περιέχουν έτοιμες μεθόδους επικοινωνίας με τις υπηρεσίες της. Έτσι διευκολύνεται πολύ η διαδικασία ανάπτυξης μιας εφαρμογής που βασίζεται πάνω στα δεδομένα των χρηστών της Google. +Πρακτικά η μέθοδος επικοινωνίας RESTFul μπορεί να χρησιμοποιηθεί από οποιοδήποτε σύστημα υποστηρίζει το πρωτόκολλο HTTP. Για να διευκολύνει όμως η Google τους προγραμματιστές έχει αναπτύξει βιβλιοθήκες κώδικα σε διάφορες γλώσσες προγραμματισμού (PHP, Java, .NET, Ruby κτλ) οι οποίες περιέχουν έτοιμες μεθόδους επικοινωνίας με τις υπηρεσίες της. Έτσι διευκολύνεται πολύ η διαδικασία ανάπτυξης μιας εφαρμογής που βασίζεται πάνω στα δεδομένα των χρηστών της Google. Για να αποτραπεί η υπερβολική χρήση της υπηρεσίας Calendar, η εταιρεία έχει θέσει ένα υπέρτατο όριο 10.000 request την ημέρα. Αν κάποια εταιρεία ξεπεράσει αυτό το όριο τότε θα χρειαστεί να πληρώσει κάποιο αντίτιμο για να μπορέσει να συνεχίσει κανονικά την χρήση. Για αυτό τον λόγο είναι και απαραίτητο οποιοσδήποτε client χρησιμοποιεί το Calendar API, να έχει πρώτα δημιουργήσει ένα API Key μέσω της σελίδας API Console που προσφέρει η Google. \section {Περιγραφή του Calendar API} -Το Ημερολόγιο της Google είναι ένα πολύ δυνατό και ευέλικτο εργαλείο. Οι χρήστες μπορούν να βλέπουν το ίδιο ημερολόγιο σε οποιαδήποτε συσκευή βρίσκονται έχοντας απλώς σύνδεση με το διαδίκτυο, για να μπορέσουν να ληφθούν τα δεδομένα από την υπηρεσία. Όλες οι εφαρμογές αυτές χρησιμοποιούν το API για να υλοποιήσουν τις βασικές λειτουργίες ενός ημερολογίου, δηλαδή την διαχείριση και την εύκολη εύρεση συμβάντων που είναι καταχωρημένα στο Google Calendar. Αφού γίνουν οι αλλαγές αυτές θα χρειαστεί να εκτελεστεί η διαδικασία του συγχρονισμού έτσι ώστε τα νέα δεδομένα να είναι και στις υπόλοιπες εφαρμογές που έχουν πρόσβαση στο ημερολόγιο. +Το Ημερολόγιο της Google είναι ένα πολύ δυνατό και ευέλικτο εργαλείο. Οι χρήστες μπορούν να βλέπουν το ίδιο ημερολόγιο σε οποιαδήποτε συσκευή βρίσκονται έχοντας απλώς σύνδεση με το διαδίκτυο (για να είναι εφικτή η λήψη των δεδομένων από την υπηρεσία). Όλες οι εφαρμογές αυτές χρησιμοποιούν το API για να υλοποιήσουν τις βασικές λειτουργίες ενός ημερολογίου, δηλαδή την διαχείριση και την εύκολη εύρεση συμβάντων που είναι καταχωρημένα στο Google Calendar. Αφού γίνουν οι αλλαγές αυτές θα χρειαστεί να εκτελεστεί η διαδικασία του συγχρονισμού έτσι ώστε τα νέα δεδομένα να είναι και στις υπόλοιπες εφαρμογές που έχουν πρόσβαση στο ημερολόγιο. Στην ευρεία χρήση της υπηρεσίας συντελεί το ότι η πλατφόρμα του ημερολογίου είναι συμβατή με διάφορες γλώσσες προγραμματισμού και έτσι μπορούν να υλοποιηθούν εφαρμογές για όλες τις συσκευές με εξελιγμένο λειτουργικό σύστημα (Windows, Linux, Mac OS, Android, iOS, Windows Phone κτλ). @@ -63,7 +63,7 @@ \section {Πως χρησιμοποιείται} Η χρήση του API μπορεί να γίνει απευθείας με κλήσεις RESTful προς τον server της Google, είτε με χρήση κάποιων από τις έτοιμες βιβλιοθήκες που παρέχει η εταιρεία. Επίσης είναι απαραίτητη η ύπαρξη ενός λογαριασμού στην Google καθώς και η καταχώρηση του project στο Google API Console έτσι ώστε να πάρει ο προγραμματιστής ένα API Key, ένα κλειδί το οποίο είναι απαραίτητο για την χρήση της υπηρεσίας. -Αν ο προγραμματιστής επιλέξει την χρήση της RESTful μεθόδου επικοινωνίας, θα χρειαστεί αν στέλνει request σε διάφορα URL και έτσι να παίρνει απαντήσεις με τα δεδομένα που χρειάζεται. Όλες οι απαντήσεις είναι σε JSON μορφή οπότε είναι πιθανόν να χρειαστεί να τις αναλύσει (parse) πριν τις χρησιμοποιήσει στην εφαρμογή του. +Αν ο προγραμματιστής επιλέξει την χρήση της RESTful μεθόδου επικοινωνίας θα χρειαστεί να στέλνει request σε διάφορα URL και έτσι να παίρνει απαντήσεις με τα δεδομένα που χρειάζεται. Όλες οι απαντήσεις είναι σε JSON μορφή οπότε θα χρειαστεί να τις αναλύσει (parse) πριν τις χρησιμοποιήσει στην εφαρμογή του. Δείγματα από URL για την κλήση διαφόρων μεθόδων: @@ -137,9 +137,9 @@ if (isset($_SESSION['oauth_access_token'])) { Με αυτόν τον τρόπο εκτελούνται οι διαδικασίες ανταλλαγής δεδομένων μεταξύ του Google Calendar και του συστήματος του προγραμματιστή. \section{Συγχρονισμός ραντεβού} -Ο συγχρονισμός δεδομένων μεταξύ δυο συστημάτων είναι μια περίπλοκη και πολλές φορές υποτιμημένη διαδικασία, διότι ο προγραμματιστής έχει να κάνει αρκετή δουλειά έτσι ώστε να καταφέρει να γεφυρώσει και τις δυο πηγές δεδομένων με τον καλύτερο τρόπο. Το αποτέλεσμα δεν μπορεί ποτέ να είναι 100\% επιτυχές διότι μερικές φορές τα δεδομένα και οι αλλαγές μπορεί να έρχονται σε σύγκρουση (conflict) και έτσι θα χρειαστεί να παρθούν αποφάσεις είτε με βάση κάποιους κανόνες, είτε από τον ίδιο τον χρήστη για το ποια αλλαγή θα υπερισχύσει. Το πράγμα μάλιστα δυσκολεύει περισσότερο όταν δεν υπάρχει πρόσβαση στον κώδικα του ενός από τα δύο συστήματα (πχ Google Calendar) και όλη η διαδικασία θα πρέπει να τρέξει από την μια πλευρά. +Ο συγχρονισμός δεδομένων μεταξύ δυο συστημάτων είναι μια περίπλοκη και πολλές φορές υποτιμημένη διαδικασία, διότι ο προγραμματιστής έχει να κάνει αρκετή δουλειά έτσι ώστε να καταφέρει να γεφυρώσει και τις δυο πηγές δεδομένων με τον καλύτερο δυνατό τρόπο. Το αποτέλεσμα δεν μπορεί ποτέ να είναι 100\% επιτυχές διότι μερικές φορές τα δεδομένα και οι αλλαγές μπορεί να έρχονται σε σύγκρουση (conflict) και έτσι θα χρειαστεί να παρθούν αποφάσεις είτε με βάση κάποιους κανόνες προτεραιότητας, είτε από τον ίδιο τον χρήστη για το ποια αλλαγή θα υπερισχύσει εν τέλη. Το πράγμα μάλιστα δυσκολεύει περισσότερο όταν δεν υπάρχει πρόσβαση στον κώδικα του ενός από τα δύο συστήματα (πχ Google Calendar) και όλη η διαδικασία θα πρέπει να τρέξει από την μια πλευρά. -Στην περίπτωση του Easy!Appointments θα πρέπει να υλοποιηθεί μια διαδικασία η οποία θα συγχρονίζει τα ραντεβού και τα συμβάντα του συστήματος με αυτά του Google Calendar. Η διαδικασία αυτή θα εκτελείται όταν δημιουργούνται συγκεκριμένα συμβάντα (πχ. προσθήκη ραντεβού) και θα φέρνει και τα δύο πλάνα στην ίδια κατάσταση. Ο συγχρονισμός θα εκτελείται κάθε φορά για το πλάνο ενός πάροχου υπηρεσιών και εφόσον έχει ήδη δοθεί η άδεια στην εφαρμογή να έχει πρόσβαση στα δεδομένα του Google Calendar του συγκεκριμένου χρήστη. +Στην περίπτωση του Easy!Appointments έχει υλοποιηθεί μια διαδικασία η οποία συγχρονίζει τα ραντεβού και τα συμβάντα του συστήματος με αυτά του Google Calendar. Η διαδικασία αυτή εκτελείται όταν δημιουργούνται συγκεκριμένα συμβάντα (πχ. προσθήκη ραντεβού) και φέρνει και τα δύο ημερολόγια στην ίδια κατάσταση. Ο συγχρονισμός εκτελείται κάθε φορά για το πλάνο ενός πάροχου υπηρεσιών και εφόσον έχει ήδη δοθεί η άδεια στην εφαρμογή να έχει πρόσβαση στα δεδομένα του Google Calendar, για τον συγκεκριμένου χρήστη. Με αυτόν τον τρόπο τα ραντεβού και οι αλλαγές που θα γίνονται από τα δυο συστήματα θα συγχωνεύονται και ο χρήστης θα μπορεί να τα διαχειρίζεται και από τις δύο πλευρές. Το μόνο πρόβλημα είναι ότι από την πλευρά του Google Calendar δεν είναι δυνατό να εκκινηθεί η διαδικασία του συγχρονισμού και έτσι αυτό θα πρέπει να γίνεται πάντοτε από την πλευρά του Easy!Appointments. @@ -149,5 +149,5 @@ if (isset($_SESSION['oauth_access_token'])) { \begin{enumerate} \item Η διαδικασία χωρίζεται σε δύο μέρη. Το πρώτο μέρος έχει να κάνει με τον συχρονισμό μιας ενέργειας που μόλις έχει γίνει στο Easy!Appointments (πχ ένας πελάτης πραγματοποίησε μια κράτηση στο πλάνο ενός πάροχου υπηρεσιών). Το καινούργιο αυτό ραντεβού που μόλις καταχωρήθηκε στο σύστημα θα χρειαστεί να ενσωματωθεί και στο Google Calendar. Έτσι τρέχει μια διαδικασία η οποία προσθέτει αυτό το ραντεβού στην υπηρεσία της Google. -\item Εκτός όμως του ραντεβού που δημιουργήθηκε στο Easy!Appointments, θα χρειαστεί να ληφθούν και οι αλλαγές που έχουν γίνει στο Google Calendar. Για αυτόν τον λόγο είναι απαραίτητο να ανιχνευθούν όλα τα καταχωρημένα ραντεβού και να ελεγχθούν για τυχόν αλλαγές. Επειδή αυτό όμως μπορεί να γίνει αρκετά χρονοβόρο υπάρχει μια παράμετρος στο σύστημα του Easy!Appointments η οποία καθορίζει το χρονικό διάστημα στο παρελθόν και το μέλλον, για το οποίο θέλει ο χρήστης να εκτελείται ο συγχρονισμός. Επίσης τα ραντεβού που έχουν συγχρονιστεί με το Google Calendar έχουν κρατημένο το id της εγγραφής στο σύστημα της Google, έτσι ώστε να είναι δυνατό να ανιχνευθούν οι αλλαγές που έχουν γίνει από τον χρήστη. Έτσι αν για παράδειγμα ένας χρήστης διαγράψει ένα ραντεβού από το Google Calendar το οποίο ήταν συγχρονισμένο και στο Easy!Appointments, η διαδικασία του συγχρονισμού θα καταλάβει ότι το ραντεβού λείπει και έτσι θα το διαγράψει και από το σύστημα του Easy!Appointments. +\item Εκτός όμως του ραντεβού που δημιουργήθηκε στο Easy!Appointments, θα χρειαστεί να ληφθούν και οι αλλαγές που έχουν γίνει στο Google Calendar. Για αυτόν τον λόγο είναι απαραίτητο να ανιχνευθούν όλα τα καταχωρημένα ραντεβού και να ελεγχθούν για τυχόν αλλαγές. Επειδή αυτό όμως μπορεί να γίνει αρκετά χρονοβόρο υπάρχει μια παράμετρος στο σύστημα του Easy!Appointments η οποία καθορίζει το χρονικό διάστημα στο παρελθόν και το μέλλον για το οποίο θέλει ο χρήστης να εκτελείται ο συγχρονισμός. Επίσης τα ραντεβού που έχουν συγχρονιστεί με το Google Calendar έχουν κρατημένο το id της εγγραφής στο σύστημα της Google, έτσι ώστε να είναι δυνατό να ανιχνευθούν οι αλλαγές που έχουν γίνει από τον χρήστη. Έτσι αν για παράδειγμα ένας χρήστης διαγράψει ένα ραντεβού από το Google Calendar το οποίο ήταν συγχρονισμένο και στο Easy!Appointments, η διαδικασία του συγχρονισμού θα καταλάβει ότι το ραντεβού λείπει και έτσι θα το διαγράψει και από το σύστημα του Easy!Appointments. \end{enumerate} \ No newline at end of file diff --git a/doc/thesis/includes/implementation.tex b/doc/thesis/includes/implementation.tex index 44dbc75d..81f100d8 100644 --- a/doc/thesis/includes/implementation.tex +++ b/doc/thesis/includes/implementation.tex @@ -5,19 +5,19 @@ %% του κώδικα. \chapter{Σχεδίαση \& Υλοποίηση} -Σε αυτό το κεφάλαιο γίνεται ανάλυση του συστήματος στα επιμέρους μέρη που το απαρτίζουν και περιγράφεται η διαδικασία της υλοποίησης τους. Επεξηγούνται επίσης τα σημαντικότερα σημεία στον κώδικα και οι αλγόριθμοι που χρησιμοποιούνται για την επίλυση των κυριότερων λειτουργιών. Έχουν συμπεριληφθεί τμήματα κώδικα αλλά και διαγράμματα τα οποία βοηθούν στην κατανόηση των λύσεων που έχουν χρησιμοποιηθεί. +Σε αυτό το κεφάλαιο γίνεται ανάλυση του συστήματος στα επιμέρους μέρη που το απαρτίζουν και περιγράφεται η διαδικασία της υλοποίησης τους. Επεξηγούνται τα σημαντικότερα σημεία στον κώδικα και οι αλγόριθμοι που χρησιμοποιούνται για την επίλυση των κυριότερων λειτουργιών. Έχουν συμπεριληφθεί τμήματα κώδικα αλλά και διαγράμματα τα οποία βοηθούν στην κατανόηση των λύσεων που επιλέχθηκαν για την ολοκλήρωση της εφαρμογής. \begin{figure}[ht!] \centering \includegraphics[width=130mm]{images/backend-calendar.jpg} -\caption{Σελίδα διαχείρισης ραντεβού} +\caption{Σελίδα διαχείρισης ραντεβού.} \label{backend-calendar} \end{figure} \begin{figure}[ht!] \centering \includegraphics[width=130mm]{images/book-appointment.jpg} -\caption{Σελίδα κράτησης ραντεβού} +\caption{Σελίδα κράτησης ραντεβού.} \label{book-appointment} \end{figure} @@ -30,11 +30,11 @@ \begin{figure}[ht!] \centering \includegraphics[width=160mm]{images/domain-model.png} -\caption{Domain model του συστήματος} +\caption{Domain model του συστήματος.} \label{domain-model} \end{figure} -Με βάση αυτό το σχεδιάγραμμα μπορεί πολύ εύκολα να προκύψει και το σχεδιακό μοντέλο της βάσης δεδομένων, δεδομένου ότι έχουμε και τις οντότητες, αλλά και τις σχέσεις μεταξύ τους. Όλοι οι χρήστες κληρονομούν την συμπεριφορά τους από μια οντότητα (User) και επιπρόσθετα κατέχουν διάφορες ιδιότητες που είναι αναγκαίες για τον ρόλο τους μέσα στην εφαρμογή. Για παράδειγμα ο χρήστης γραμματέας (Secretary) περιέχει έναν πίνακα από πάροχους (Providers) τους οποίους μπορεί να διαχειριστεί, ή ένα ραντεβού είναι ξεκάθαρο ότι περιέχει στην πληροφορία του έναν πελάτη, έναν πάροχο και μια υπηρεσία. +Με βάση αυτό το σχεδιάγραμμα μπορεί πολύ εύκολα να προκύψει και το σχεδιακό μοντέλο της βάσης δεδομένων, δεδομένου ότι έχουμε τις οντότητες αλλά και τις σχέσεις μεταξύ τους. Όλοι οι χρήστες κληρονομούν την συμπεριφορά τους από μια οντότητα (User) και επιπρόσθετα κατέχουν διάφορες ιδιότητες που είναι αναγκαίες για τον ρόλο τους μέσα στην εφαρμογή. Για παράδειγμα ο χρήστης γραμματέας (Secretary) περιέχει έναν πίνακα από πάροχους (Providers) τους οποίους μπορεί να διαχειριστεί όπως και ένα ραντεβού είναι ξεκάθαρο ότι περιέχει στην πληροφορία του έναν πελάτη, έναν πάροχο και μια υπηρεσία. \begin{figure}[ht!] \centering @@ -43,7 +43,7 @@ \label{er} \end{figure} -Για την διαχείριση των δεδομένων της βάσης δημιουργήθηκαν ειδικές κλάσεις (models) οι οποίες περιέχουν μεθόδους που χρησιμοποιούνται από τους controllers του συστήματος. Το CodeIgniter δίνει στον προγραμματιστή ένα δικό του μέσο επικοινωνίας με την βάση δεδομένων, το οποίο είναι ένα πολύ ισχυρό και ευέλικτο εργαλείο. Η επονομαζόμενη Database Class του CodeIgniter επιτρέπει στον προγραμματιστεί να εκτελεί ερωτήματα προς την βάση, να παράγει αποτελέσματα και να τα αναλύει σε ξεχωριστές εγγραφές, να κρατάει στην μνήμη ερωτήματα για γρηγορότερη ανταπόκριση (query caching) και κυριότερο την κλάση Active Record. Η κλάση αυτή έχει έναν δικό της τρόπο για την εκτέλεση των ερωτημάτων προς την βάση. Όλα τα τμήματα ενός τυπικού ερωτήματος είναι μέθοδοι, οι οποίες χρησιμοποιούνται από τον προγραμματιστή ως το μέσο επικοινωνίας με την βάση δεδομένων. Το θετικό είναι ότι ανεξαρτήτως τον τύπο της βάσης η κλάση αυτή λειτουργεί με τον ίδιο τρόπο (MySQL, PostGre, MSSQL κτλ). Η τεχνική αυτή λέγεται Active Record Database Pattern και έχει να κάνει με την αλλαγή adapter στην κλάση ανάλογα με τον τύπο της βάσης. Σε κάθε περίπτωση όμως ο τρόπος λειτουργίας της είναι ο ίδιος. Στο παρακάτω τμήμα κώδικα αναφέρεται ένα παράδειγμα για το πως μπορεί να βρεθεί το αναγνωριστικό μιας εγγραφής χρησιμοποιώντας ως κλειδί την διεύθυνση email. +Για την διαχείριση των δεδομένων της βάσης δημιουργήθηκαν ειδικές κλάσεις (models) οι οποίες περιέχουν μεθόδους που χρησιμοποιούνται από τους controllers του συστήματος. Το CodeIgniter δίνει στον προγραμματιστή ένα δικό του μέσο επικοινωνίας με την βάση δεδομένων, το οποίο είναι ένα πολύ ισχυρό και ευέλικτο εργαλείο. Η επονομαζόμενη Database Class του CodeIgniter επιτρέπει στον προγραμματιστή να εκτελεί ερωτήματα προς την βάση, να παράγει αποτελέσματα και να τα αναλύει σε ξεχωριστές εγγραφές, να κρατάει στην μνήμη ερωτήματα για γρηγορότερη ανταπόκριση (query caching) και κυριότερο την κλάση Active Record. Η κλάση αυτή έχει έναν δικό της τρόπο για την εκτέλεση των ερωτημάτων προς την βάση. Όλα τα τμήματα ενός τυπικού ερωτήματος είναι μέθοδοι οι οποίες χρησιμοποιούνται από τον προγραμματιστή ως το μέσο επικοινωνίας με την βάση δεδομένων. Το θετικό είναι ότι ανεξαρτήτως τον τύπο της βάσης η κλάση αυτή λειτουργεί με τον ίδιο τρόπο (MySQL, PostgreSQL, MSSQL κτλ). Η τεχνική αυτή λέγεται Active Record Database Pattern και έχει να κάνει με την αλλαγή adapter στην κλάση ανάλογα με τον τύπο της βάσης. Σε κάθε περίπτωση όμως ο τρόπος χρήσης της Active Record Class είναι ο ίδιος. Στο παρακάτω τμήμα κώδικα αναφέρεται ένα παράδειγμα για το πως μπορεί να βρεθεί το αναγνωριστικό μιας εγγραφής χρησιμοποιώντας ως κλειδί την διεύθυνση email. \lstinputlisting{snippets/find_record_id.php} @@ -51,7 +51,7 @@ %% ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΚΩΔΙΚΑ %% ================================================== \section{Αρχιτεκτονική κώδικα} -Η εφαρμογή είναι γραμμένη χρησιμοποιώντας τις εξής τεχνολογίες: PHP, Javascript, HTML, CSS, MySQL. Εκτός αυτών έχουν χρησιμοποιηθεί και κάποια βοηθητικά εργαλεία τα οποία διευκολύνουν τον προγραμματιστή στο να πετύχει καλύτερο αποτέλεσμα σε μικρότερο χρόνο. Αυτά τα εργαλεία (frameworks) όπως έχουν αναφερθεί και σε προηγούμενο κεφάλαιο είναι τα CodeIgniter (PHP), jQuery (Javascript), Bootstrap (CSS + Javascript). +Η εφαρμογή είναι γραμμένη χρησιμοποιώντας τις εξής τεχνολογίες: PHP, Javascript, HTML, CSS, MySQL. Εκτός αυτών έχουν χρησιμοποιηθεί και κάποια βοηθητικά εργαλεία τα οποία διευκολύνουν τον προγραμματιστή στο να πετύχει καλύτερο αποτέλεσμα σε μικρότερο χρόνο. Αυτά τα εργαλεία (frameworks) όπως έχουν αναφερθεί και σε προηγούμενο κεφάλαιο είναι τα CodeIgniter (PHP), jQuery (JavaScript), Bootstrap (CSS + JavaScript). Όσον αφορά την αρχιτεκτονική του κώδικα έχει επιλεχθεί το μοντέλο MVC (Model - View - Controller) το οποίο υλοποιείται με άριστη απόδοση και οργάνωση χάρη στο framework CodeIgniter. Ο κώδικας PHP έχει χωριστεί σε τρία μέρη (models, views, controllers) και με αυτόν τον τρόπο παραμένει σε όλο τον κώδικα της εφαρμογής. Ο διαχωρισμός αυτός βελτιώνει τις συνθήκες συντήρησης γιατί είναι ξεκάθαρο σε ποιο από τα τρία ξεχωριστά σημεία ανήκει μια λειτουργία, όταν αυτή αναζητείται από τον προγραμματιστή. Έχουν συγγραφεί και δοκιμαστεί κλάσεις models για κάθε οντότητα οι οποίες αναλαμβάνουν την διαχείριση των δεδομένων με την βάση και παρέχουν μεθόδους που επαναχρησιμοποιούνται σε διάφορες περιπτώσεις. Επίσης έχουν δημιουργηθεί views για κάθε σελίδα που μπορεί να δει ο χρήστης τα οποία συνδέονται με ένα κομμάτι CSS κώδικα, υπεύθυνο για την μορφοποίησή τους. Τέλος τον συντονισμό αυτών των τμημάτων αναλαμβάνουν οι κλάσεις controllers οι οποίες είτε είναι υπεύθυνες για την σωστή φόρτωση μιας σελίδας της εφαρμογής, είτε απαντούν σε κλήσεις της JavaScript που γίνονται μέσω της τεχνολογίας AJAX. @@ -79,45 +79,45 @@ Η κύρια ροή εργασιών ως προς την υλοποίηση μιας περίπτωσης χρήσης αποτελείται από τα παρακάτω βήματα: \begin{enumerate} \item Συγγραφή της κλάσης model για την συγκεκριμένη οντότητα. Μερικές φορές αυτή η διαδικασία μπορεί να συμπεριλάμβανε και την δημιουργία model και για άλλες οντότητες που εμπλέκονταν στην περίπτωση χρήσης, έτσι ώστε να μπορέσει να λειτουργήσει σωστά ο κώδικας συνολικά. Οι περισσότερες κλάσεις ακολουθούν το ίδιο πρότυπο σχεδίασης και μεθόδων με μικρές διαφοροποιήσεις ανάλογα με την οντότητα που διαχειρίζονται. -\item Έλεγχος των model με δημιουργία unit tests. Μετά την ολοκλήρωση των model αυτά θα έπρεπε να δοκιμαστούν έτσι ώστε να διασφαλιστεί η σωστή λειτουργία τους. Εκτός αυτού όμως η συγγραφή unit test είναι και μια καλή ευκαιρία ως παράδειγμα της χρήσης των model από το υπόλοιπο σύστημα. Αν εντοπιζόταν κάποιο πρόβλημα κατά την εκτέλεση των test αυτό διορθωνόταν και τα test εκτελόντουσαν πάλι έως ότου να ολοκληρωθούν όλα με επιτυχία. +\item Έλεγχος των model με δημιουργία unit tests. Μετά την ολοκλήρωση των model αυτά θα έπρεπε να δοκιμαστούν έτσι ώστε να διασφαλιστεί η σωστή λειτουργία τους. Εκτός αυτού όμως η συγγραφή unit test είναι και μια καλή ευκαιρία ως παράδειγμα της χρήσης των model από το υπόλοιπο σύστημα. Αν εντοπιζόταν κάποιο πρόβλημα κατά την εκτέλεση των test αυτό διορθωνόταν και τα test εκτελούνταν πάλι έως ότου να ολοκληρωθούν όλα με επιτυχία. \item Εφόσον τα model ήταν ολοκληρωμένα στην συνέχεια δημιουργήθηκαν οι controllers και οι αντίστοιχες συναρτήσεις που θα ήταν υπεύθυνες για την λειτουργία του view που αντιστοιχούσε στην εκάστοτε περίπτωση χρήσης. Έτσι εκτός από τις συναρτήσεις που αναλάμβαναν να φορτώσουν μια σελίδα της εφαρμογής συγκεντρώνοντας τα δεδομένα που ήταν απαραίτητα, υλοποιήθηκαν και οι κλήσεις AJAX που ήταν απαραίτητες από την JavaScript. Αυτές οι κλήσεις συνήθως αναλάμβαναν την διεκπεραίωση κάποιας ενέργειας προς την βάση δεδομένων και επέστρεφαν πάντα κάποιο αποτέλεσμα για να μπορέσει να συνεχίσει την λειτουργία της το τμήμα της JavaScript. -\item Στην συνέχεια υλοποιούνταν το αντίστοιχο view που θα έβλεπε ο χρήστης. Σε αυτό τοποθετούνταν ο κώδικας PHP, HTML και η μορφοποίηση της σελίδας (CSS) γραφόταν στο αντίστοιχο αρχείο css έτσι ώστε να παραχθεί ένα καλαίσθητο και φιλικό αποτέλεσμα. +\item Στην συνέχεια υλοποιούνταν το αντίστοιχο view που θα έβλεπε ο χρήστης. Σε αυτό τοποθετούνταν ο κώδικας PHP, HTML και η μορφοποίηση της σελίδας (CSS) γραφόταν στο αντίστοιχο αρχείο έτσι ώστε να παραχθεί ένα καλαίσθητο και φιλικό αποτέλεσμα. \item Όταν το view ήταν έτοιμο θα έπρεπε να του προστεθεί και κάποια λειτουργικότητα έτσι ώστε να μπορεί να ανταποκριθεί στις ενέργειες του χρήστη. Για κάθε σελίδα χρησιμοποιούνται μια πληθώρα από βιβλιοθήκες, namespaces, κλάσεις και πρόσθετα JavaScript. Στα αντίστοιχα αρχεία τοποθετήθηκε ο κώδικας που θα ρύθμιζε την λειτουργία της σελίδας και τις ασύγχρονες κλήσεις προς τον server (AJAX). \item Τέλος εφόσον όλα ήταν έτοιμα και η περίπτωση χρήσης είχε υλοποιηθεί χωρίς προβλήματα, όλος ο κώδικας που είχε γραφεί έπρεπε να εξεταστεί (review) για τυχόν προβλήματα λογικής και για την βελτίωση της απόδοσης του, μικραίνοντας όσο είναι δυνατόν την σύζευξη και αυξάνοντας την συνοχή. \end{enumerate} -Εδώ θα χρειαστεί να αναφερθεί ότι όλες οι κλήσεις AJAX που αφορούν το backend έχουν μεταφερθεί σε μια κλάση controller, ξεχωριστά από τον κύριο controller του backend για να είναι καλύτερα οργανωμένες. Αν μελλοντικά ο αριθμός τους και η πολυπλοκότητα τους αυξηθεί τότε θα χρειαστεί να διαιρεθούν ξανά για να μπορέσουν να συντηρούνται πιο εύκολα. +Εδώ θα χρειαστεί να αναφερθεί ότι όλες οι κλήσεις AJAX που αφορούν το backend έχουν μεταφερθεί σε μια κλάση controller ξεχωριστά από τον κύριο controller του backend για να είναι καλύτερα οργανωμένες. Αν μελλοντικά ο αριθμός τους και η πολυπλοκότητα τους αυξηθεί τότε θα χρειαστεί να διαιρεθούν ξανά για να μπορέσουν να συντηρούνται πιο εύκολα. %% ================================================== %% ΠΕΡΙΓΡΑΦΗ ΒΑΣΙΚΩΝ ΑΛΓΟΡΙΘΜΩΝ %% ================================================== \section{Περιγραφή βασικών αλγορίθμων} -Σε αυτήν την ενότητα θα γίνει ανάλυση κάποιων βασικών αλγορίθμων που αποτελούν κρίσιμα τμήματα για την λειτουργία του συστήματος. Η περιγραφή θα γίνει σχολιάζοντας τα τμήματα κώδικα που απαρτίζουν αυτούς τους αλγορίθμους αναφέροντας και τις συγκεκριμένες γραμμές στον οποίο αναφέρεται. Στην επόμενη ενότητα παρέχονται κάποια σχεδιαγράμματα τα οποία μπορούν να βοηθήσουν στην κατανόηση αυτών των αλγορίθμων. +Σε αυτήν την ενότητα θα γίνει ανάλυση κάποιων βασικών αλγορίθμων που αποτελούν κρίσιμα τμήματα για την λειτουργία του συστήματος. Η περιγραφή θα γίνει σχολιάζοντας τα τμήματα κώδικα που απαρτίζουν αυτούς τους αλγορίθμους αναφέροντας και τις συγκεκριμένες γραμμές στα οποία αναφέρονται. Στην επόμενη ενότητα παρέχονται κάποια σχεδιαγράμματα τα οποία μπορούν να βοηθήσουν στην κατανόηση αυτών των αλγορίθμων. \subsection{Πλήρης συγχρονισμός με το Google Calendar} -Η διαδικασία του πλήρη συγχρονισμού των ραντεβού με το Google Calendar αποτελεί ένας από τους κυριότερους αλγορίθμους του Easy!Appointments. Η πολυπλοκότητα της διαδικασίας συγχρονισμού δεδομένων κατέστησαν την υλοποίηση αυτού του τμήματος κώδικα αρκετά ενδιαφέρον και το αποτέλεσμα κατάφερε να καλύψει τις αρχικές απαιτήσεις. Μπορεί μελλοντικά να υπάρξουν βελτιώσεις στον κώδικα, αλλά την συγκεκριμένη στιγμή ο αλγόριθμος λειτουργεί επιτυχώς και συγχρονίζει τα ραντεβού του συστήματος με τα συμβάντα που έχει περάσει ο χρήστης στο Google Calendar. +Η διαδικασία του πλήρη συγχρονισμού των ραντεβού με το Google Calendar αποτελεί ένας από τους κυριότερους αλγορίθμους του Easy!Appointments. Η πολυπλοκότητα της διαδικασίας συγχρονισμού δεδομένων κατέστησαν την υλοποίηση αυτού του τμήματος κώδικα αρκετά ενδιαφέρον και το αποτέλεσμα κατάφερε να καλύψει τις αρχικές απαιτήσεις. Μπορεί μελλοντικά να υπάρξουν βελτιώσεις στον κώδικα αλλά την συγκεκριμένη στιγμή ο αλγόριθμος λειτουργεί επιτυχώς και συγχρονίζει τα ραντεβού του συστήματος με τα συμβάντα που έχει περάσει ο χρήστης στο Google Calendar. \lstinputlisting{snippets/google_sync_algorithm.php} -Η μέθοδος αυτή καλείται κάθε φορά που πρέπει να τρέξει ο αλγόριθμος συγχρονισμού για έναν πάροχο υπηρεσιών. Στο πρώτο μέρος του κώδικα ελέγχεται αν ο χρήστης έχει τα δικαιώματα να τρέξει αυτήν την μέθοδο και αν έχει δοθεί το αναγνωριστικό της εγγραφής του πάροχου. Έπειτα φορτώνονται τα απαραίτητα models και γίνεται η λήψη των πληροφοριών του πάροχου από την βάση (γραμμές 18 - 31). +Η μέθοδος αυτή καλείται κάθε φορά που πρέπει να τρέξει ο αλγόριθμος συγχρονισμού για έναν πάροχο υπηρεσιών. Στο πρώτο μέρος του κώδικα ελέγχεται αν ο χρήστης έχει τα δικαιώματα να τρέξει αυτήν την μέθοδο και αν έχει δοθεί το αναγνωριστικό της εγγραφής του πάροχου. Έπειτα φορτώνονται τα απαραίτητα models και γίνεται η λήψη των πληροφοριών του πάροχου από την βάση (γραμμές 17 - 30). -Για να συνεχιστεί η διαδικασία θα πρέπει να ελεγχθεί αν ο πάροχος έχει ενεργό τον συγχρονισμό με το Google Calendar. Αν η επιλογή αυτή είναι ενεργή τότε ο αλγόριθμος χρησιμοποιεί το token του πάροχου για να πιστοποιήσει την χρήση των δεδομένων του στο Google Calendar, διαφορετικά η διαδικασία τερματίζεται (γραμμές 34 - 44). +Για να συνεχιστεί η διαδικασία θα πρέπει να ελεγχθεί αν ο πάροχος έχει ενεργό τον συγχρονισμό με το Google Calendar. Αν η επιλογή αυτή είναι ενεργή τότε ο αλγόριθμος χρησιμοποιεί το token του πάροχου για να πιστοποιήσει την χρήση των δεδομένων του στο Google Calendar, διαφορετικά η διαδικασία τερματίζεται (γραμμές 33 - 43). -Για να γίνει εξοικονόμηση κλήσεων προς την υπηρεσία της Google αλλά και να μειωθεί ο χρόνος διεκπεραίωσης του αλγορίθμου συγχρονισμού, το χρονικό διάστημα μέσα στο οποίο θα συγχρονισθούν τα δεδομένα περιορίζεται στο εύρος ημερών που έχει τεθεί ως ρύθμιση για τον κάθε πάροχο (προεπιλεγμένη τιμή 5 ημέρες στο παρελθόν και 5 στο μέλλον). Αυτό είναι το χρονικό διάστημα στο οποίο θα ελεγχθούν όλα τα δεδομένα και από τα δύο συστήματα και θα συντονιστούν έτσι ώστε να είναι τα ίδια (γραμμές 48 - 55). +Για να γίνει εξοικονόμηση κλήσεων προς την υπηρεσία της Google αλλά και να μειωθεί ο χρόνος διεκπεραίωσης του αλγορίθμου συγχρονισμού, το χρονικό διάστημα μέσα στο οποίο θα συγχρονισθούν τα δεδομένα περιορίζεται στο εύρος ημερών που έχει τεθεί ως ρύθμιση για τον κάθε πάροχο (προεπιλεγμένη τιμή 5 ημέρες στο παρελθόν και 5 στο μέλλον). Αυτό είναι το χρονικό διάστημα στο οποίο θα ελεγχθούν όλα τα δεδομένα και από τα δύο συστήματα και θα συντονιστούν έτσι ώστε να είναι τα ίδια (γραμμές 47 - 54). Το επόμενο κομμάτι κώδικα αφού πρώτα λάβει τα ραντεβού από την βάση δεδομένων του Easy!Appointments, εξετάζει τις εγγραφές μια προς μια για το αν έχουν συγχρονιστεί με το Google Calendar. Εδώ υπάρχουν οι εξής περιπτώσεις: \begin{enumerate} -\item Το ραντεβού δεν έχει ακόμα συγχρονιστεί οπότε θα πρέπει να προστεθεί στο Google Calendar (γραμμές 89 - 94). -\item Το ραντεβού είναι συγχρονισμένο και πρέπει να ελεγχθεί αν υπάρχουν διαφορές με το συμβάν που είναι καταχωρημένο στο Google Calendar. Αν ναι τότε αυτό σημαίνει ότι ο χρήστης έχει αλλάξει τα στοιχεία του συμβάντος στο Google Calendar και η εγγραφή του ραντεβού στο Easy!Appointments θα πρέπει να ενημερωθεί (γραμμές 98 - 127). -\item Το ραντεβού είναι συγχρονισμένο αλλά δεν έχει βρεθεί στο Google Calendar. Εφόσον δεν έχει βρεθεί η εγγραφή σημαίνει ότι ο χρήστης την έχει διαγράψει από το Google Calendar και έτσι θα πρέπει να διαγραφεί και από το Easy!Appointments (γραμμές 131 - 132). +\item Το ραντεβού δεν έχει ακόμα συγχρονιστεί οπότε θα πρέπει να προστεθεί στο Google Calendar (γραμμές 88 - 93). +\item Το ραντεβού είναι συγχρονισμένο και πρέπει να ελεγχθεί αν υπάρχουν διαφορές με το συμβάν που είναι καταχωρημένο στο Google Calendar. Αν ναι τότε αυτό σημαίνει ότι ο χρήστης έχει αλλάξει τα στοιχεία του συμβάντος στο Google Calendar και η εγγραφή του ραντεβού στο Easy!Appointments θα πρέπει να ενημερωθεί (γραμμές 97 - 126). +\item Το ραντεβού είναι συγχρονισμένο αλλά δεν έχει βρεθεί στο Google Calendar. Εφόσον δεν έχει βρεθεί η εγγραφή σημαίνει ότι ο χρήστης την έχει διαγράψει από το Google Calendar και έτσι θα πρέπει να διαγραφεί και από το Easy!Appointments (γραμμές 130 - 131). \end{enumerate} Με το πέρας αυτού του τμήματος κώδικα όλα τα ραντεβού του Easy!Appointments θα πρέπει να έχουν συγχρονιστεί με το Google Calendar. -Τα μη διαθέσιμα διαστήματα χρησιμοποιούνται ως ραντεβού στον συγκεκριμένο αλγόριθμο με την διαφορά ότι δεν υπάρχουν σε αυτά πληοροφίες για κάποιο πελάτη ή υπηρεσία (γραμμές 84 - 85). +Τα μη διαθέσιμα διαστήματα χρησιμοποιούνται ως ραντεβού στον συγκεκριμένο αλγόριθμο με την διαφορά ότι δεν υπάρχουν σε αυτά πληοροφίες για κάποιο πελάτη ή υπηρεσία (γραμμές 83 - 84). Υπάρχουν όμως συμβάντα στην υπηρεσία της Google τα οποία μπορεί να έχουν προστεθεί απευθείας στο Google Calendar και να μην υπάρχουν στο Easy!Appointments. Σε αυτήν την περίπτωση θα πρέπει να ανιχνευθούν και να εξεταστούν όλα τα συμβάντα που αντιστοιχούν στην χρονική περίοδο συγχρονισμού (5 ημέρες πριν και 5 ημέρες μετά την τρέχουσα ημερομηνία) και να ελεγχθεί αν υπάρχει κάποιο συμβάν που δεν είναι συγχρονισμένο. -Αυτήν την εργασία αναλαμβάνει το επόμενο κομμάτι κώδικα το οποίο χρησιμοποιώντας την βιβλιοθήκη Google API μπορεί να διαβάσει τα συμβάντα τα οποία βρίσκονται στο Google Calendar. Η διαδικασία ξεκινάει με την λήψη αυτών των συμβάντων τα οποία στην συνέχεια εξετάζονται ένα προς ένα για το αν υπάρχουν στο Easy!Appointments. Αν όχι τότε προστίθενται και συγχρονίζονται και στα δύο συστήματα και έτσι διασφαλίζεται η ακεραιότητα των δεδομένων και στα δύο συστήματα (γραμμές 138 - 160). +Αυτήν την εργασία αναλαμβάνει το επόμενο κομμάτι κώδικα το οποίο χρησιμοποιώντας την βιβλιοθήκη Google API μπορεί να διαβάσει τα συμβάντα τα οποία βρίσκονται στο Google Calendar. Η διαδικασία ξεκινάει με την λήψη αυτών των συμβάντων τα οποία στην συνέχεια εξετάζονται ένα προς ένα για το αν υπάρχουν στο Easy!Appointments. Αν όχι τότε προστίθενται και συγχρονίζονται και στα δύο συστήματα και έτσι διασφαλίζεται η ακεραιότητα των δεδομένων και στα δύο συστήματα (γραμμές 137 - 159). Τέλος η συνάρτηση επιστρέφει την σταθερά AJAX\_SUCCESS την οποία θα διαβάσει η JavaScript και έτσι να γνωρίζει ότι η διαδικασία έχει ολοκληρωθεί με επιτυχία. Διαφορετικά αν προκύψουν σφάλματα αυτά επιστρέφονται σε JSON μορφή και εμφανίζονται με ένα φιλικό μήνυμα προς τον χρήστη. diff --git a/doc/thesis/includes/introduction.tex b/doc/thesis/includes/introduction.tex index cc65dcf8..d51d5f5d 100644 --- a/doc/thesis/includes/introduction.tex +++ b/doc/thesis/includes/introduction.tex @@ -52,13 +52,13 @@ Η ίδια η διαδικασία της κράτησης ενός ραντεβού με τον συγκεκριμένο τρόπο απαιτεί από μόνη της την ύπαρξη ενός υπαλλήλου, ο οποίος θα αφιερώνει αρκετό, αν όχι τον περισσότερο από τον χρόνο του για να κάνει αυτήν την εργασία. Αυτό πρακτικά σημαίνει δέσμευση ανθρώπινων πόρων της επιχείρησης και συνεπάγεται στην αύξηση των εξόδων λειτουργίας. -Επιπλέον, η ίδια η διαδικασία μπορεί να είναι χρονοβόρα και κουραστική για τους πελάτες, ειδικά στις περιπτώσεις όπου υπάρχει λίγο προσωπικό για να καλύψει μεγάλο κοινό (πχ νοσοκομεία). Στις περιπτώσεις αυτές οι πελάτες περιμένουν στην αναμονή για μεγάλο χρονικό διάστημα και μάλιστα πολλές φορές δεν πιάνουν γραμμή για να μπορέσουν να κρατήσουν κάποιο ραντεβού. Επίσης πρέπει να σημειωθεί ότι όταν ο πελάτης καταφέρει να κλείσει το ραντεβού του συνήθως δεν έχει επιλογή για το πότε θα γίνει και απλώς ενημερώνεται για την ημερομηνία την οποία έχει ορίσει το προσωπικό, ανάλογα με τις εκάστοτε συνθήκες. +Επιπλέον η ίδια η διαδικασία μπορεί να είναι χρονοβόρα και κουραστική για τους πελάτες, ειδικά στις περιπτώσεις όπου υπάρχει λίγο προσωπικό για να καλύψει μεγάλο κοινό (πχ νοσοκομεία). Στις περιπτώσεις αυτές οι πελάτες περιμένουν στην αναμονή για μεγάλο χρονικό διάστημα και μάλιστα πολλές φορές δεν πιάνουν γραμμή για να μπορέσουν να κρατήσουν κάποιο ραντεβού. Επίσης πρέπει να σημειωθεί ότι όταν ο πελάτης καταφέρει να κλείσει το ραντεβού του συνήθως δεν έχει επιλογή για το πότε θα γίνει και απλώς ενημερώνεται για την ημερομηνία την οποία έχει ορίσει το προσωπικό, ανάλογα με τις εκάστοτε συνθήκες. Εκτός αυτών η εκτέλεση αυτής της διαδικασίας είναι αρκετά επιρρεπής στο να έχει ασαφές αποτελέσματα με την έννοια του ότι δεν υπάρχει κάποιο κοινό σημείο αναφοράς για την συμφωνία που πραγματοποιείται μεταξύ της επιχείρησης και του πελάτη, έτσι ώστε να μπορεί να γίνει εξακρίβωση και επαλήθευση των ιδιοτήτων μιας κράτησης και από τις δύο πλευρές. Αυτό μπορεί να οδηγήσει σε προβλήματα με τους πελάτες, κάτι το οποίο δεν είναι επιθυμητό σε καμία περίπτωση. -Μικρό είναι το μέρος των πληροφοριών που καταγράφεται με το πέρας της κράτησης, καθώς τα μέσα που χρησιμοποιούνται δεν επιτρέπουν ή κάνουν δύσκολη και χρονοβόρα την αποθήκευση όλων των δεδομένων. Αυτό συντελεί στην επιπλέον μείωση της ποιότητας εξυπηρέτησης και της απόδοσης της επιχείρησης. +Μικρό είναι το μέρος των πληροφοριών που καταγράφεται με το πέρας της κράτησης, καθώς τα μέσα που χρησιμοποιούνται δεν επιτρέπουν ή κάνουν δύσκολη και χρονοβόρα την αποθήκευση όλων των δεδομένων. Αυτό συντελεί στην πρόσθετη μείωση της ποιότητας εξυπηρέτησης και της απόδοσης της επιχείρησης. -Τα δεδομένα αυτά διαχειρίζονται συνήθως δύσκολα. Ακόμα και στην περίπτωση που χρησιμοποιούνται ηλεκτρονικά μέσα για την αποθήκευση των κρατήσεων, η τροποποίηση ή ο έλεγχος μπορούν να είναι δύσκολες και χρονοβόρες διαδικασίες, οι οποίες εξαρτώνται κάθε φορά από το επίπεδο της οργάνωσης της επιχείρησης και τις τεχνολογίες που χρησιμοποιούνται. +Τα δεδομένα αυτά διαχειρίζονται συνήθως δύσκολα. Ακόμα και στην περίπτωση που χρησιμοποιούνται ηλεκτρονικά μέσα για την αποθήκευση των κρατήσεων η τροποποίηση ή ο έλεγχος μπορούν να είναι δύσκολες και χρονοβόρες διαδικασίες, οι οποίες εξαρτώνται κάθε φορά από το επίπεδο της οργάνωσης της επιχείρησης και τις τεχνολογίες που χρησιμοποιούνται. Επίσης τα δεδομένα αυτά δεν είναι προσβάσιμα από οποιονδήποτε ανά πάσα στιγμή, αλλά μόνο στον χώρο της επιχείρησης και μόνο από το άτομο το οποίο διαχειρίζεται τα ραντεβού. @@ -130,17 +130,15 @@ \end{enumerate} \section{Σε τι διαφέρει από τις υπόλοιπες η προτεινόμενη λύση} -Το Easy!Appointments έχει ως σκοπό να αυτοματοποιήσει την διαδικασία της κράτησης και διαχείρισης ραντεβού για οποιαδήποτε επιχείρηση. Χρησιμοποιώντας τις δυνατότητες που μας παρέχει το διαδίκτυο, μπορεί να υλοποιηθεί ένα σύστημα το οποίο να έχει την δυνατότητα να οργανώσει τα επαγγελματικά πλάνα πολλών υπαλλήλων ταυτόχρονα, επιφέροντας έτσι όχι μόνο την μείωση του χρόνου που απαιτούσαν οι παλιές μέθοδοι διαχείρισης ραντεβού, αλλά και την αύξηση της παραγωγικότητας της επιχείρησης. Οι πελάτες δεν θα χρειάζεται πλέον να τηλεφωνούν ή να πηγαίνουν στο κατάστημα, αλλά θα μπορούν να βλέπουν τις διαθέσιμες ώρες της επιχείρησης και να κλείνουν το ραντεβού τους την επιθυμητή ημερομηνία και ώρα, μέσω του υπολογιστή και του internet. Αυτό έχει ως αποτέλεσμα την ποιοτικότερη αλλά και αποδοτικότερη εξυπηρέτηση τους. Επιπρόσθετα βελτιώνεται η επικοινωνία και η οργάνωση των συντελεστών της επιχείρησης, παρέχοντας δυνατότητες αρχειοθέτησης και διαχείρισης των δεδομένων που αποθηκεύονται στο σύστημα ανά πάσα στιγμή και σε οποιοδήποτε μέρος. Σε αντίθεση με τα άλλα συστήματα, προσφέρει επιπλέον τα εξής: +Το Easy!Appointments έχει ως σκοπό να αυτοματοποιήσει την διαδικασία της κράτησης και διαχείρισης ραντεβού για οποιαδήποτε επιχείρηση. Χρησιμοποιώντας τις δυνατότητες που μας παρέχει το διαδίκτυο μπορεί να υλοποιηθεί ένα σύστημα το οποίο να έχει την δυνατότητα να οργανώσει τα επαγγελματικά πλάνα πολλών υπαλλήλων ταυτόχρονα, επιφέροντας έτσι όχι μόνο την μείωση του χρόνου που απαιτούσαν οι παλιές μέθοδοι διαχείρισης ραντεβού, αλλά και την αύξηση της παραγωγικότητας της επιχείρησης. Οι πελάτες δεν θα χρειάζεται πλέον να τηλεφωνούν ή να πηγαίνουν στο κατάστημα, αλλά θα μπορούν να βλέπουν τις διαθέσιμες ώρες της επιχείρησης και να κλείνουν το ραντεβού τους την επιθυμητή ημερομηνία και ώρα, μέσω του υπολογιστή και του internet. Αυτό έχει ως αποτέλεσμα την ποιοτικότερη αλλά και αποδοτικότερη εξυπηρέτηση τους. Επιπρόσθετα βελτιώνεται η επικοινωνία και η οργάνωση των συντελεστών της επιχείρησης, παρέχοντας δυνατότητες αρχειοθέτησης και διαχείρισης των δεδομένων που αποθηκεύονται στο σύστημα ανά πάσα στιγμή και σε οποιοδήποτε μέρος. Σε αντίθεση με τα άλλα συστήματα, προσφέρει επιπλέον τα εξής: \begin{enumerate} -\item {\bf Αυτόνομη Εγκατάσταση :} Η επιχείρηση που θέλει να χρησιμοποιήσει την εφαρμογή θα μπορεί να την εγκαταστήσει στον server της και να την τρέξει μαζί με κάποιο άλλο site, έχοντας έτσι πλήρη πρόσβαση στα δεδομένα και τον κώδικα. Η διαδικασία της εγκατάστασης και παραμετροποίησης θα είναι παρόμοια με άλλα συστήματα (Joomla, WordPress κτλ) και όσο πιο αυτοματοποιημένη γίνεται. +\item {\bf Αυτόνομη Εγκατάσταση:} Η επιχείρηση που θέλει να χρησιμοποιήσει την εφαρμογή θα μπορεί να την εγκαταστήσει στον server της και να την τρέξει μαζί με κάποιο άλλο site, έχοντας έτσι πλήρη πρόσβαση στα δεδομένα και τον κώδικα. Η διαδικασία της εγκατάστασης και παραμετροποίησης είναι παρόμοια με άλλα συστήματα (Joomla, WordPress κτλ) και όσο πιο αυτοματοποιημένη γίνεται. -\item {\bf Διαμόρφωση Πρότυπου Πλάνου :} Το σύστημα θα έχει ενσωματωμένη δυνατότητα δημιουργίας πρότυπου πλάνου για τον κάθε πάροχο υπηρεσιών, το οποίο θα αποτελεί την βάση της κάθε εβδομάδας και από εκεί και πέρα ο διαχειριστής θα μπορεί να κάνει αλλαγές. Η επανάληψη του πλάνου καθώς και το από ποιά προτυπα πλάνα θα αποτελείται ένας μήνας θα συμπεριλαμβάνονται στην ρύθμιση της εφαρμογής. +\item {\bf Διαμόρφωση Πλάνου Πάροχου:} Το σύστημα θα έχει ενσωματωμένη δυνατότητα δημιουργίας ημερολογιακού πλάνου εργασίας για τον κάθε πάροχο υπηρεσιών. Το πλάνο αυτό θα αποτελεί την βάση της κάθε εβδομάδας και από εκεί και πέρα ο διαχειριστής θα μπορεί να πραγματοποιήσει αλλαγές ανάλογα με τις εκάστοτε ανάγκες. -\item {\bf Ρύθμιση Δικαιωμάτων Πάροχων :} Ο διαχειριστής θα έχει την δυνατότητα να ορίζει τα δικαιώματα αλλαγών και ρυθμίσεων που θα έχει στην διάθεσή του ο κάθε πάροχος υπηρεσιών. Έτσι μπορεί να διασφαλιστεί η ασφάλεια των δεδομένων όπου κρίνεται αυτό χρήσιμο, είτε να διευκολυνθεί η διαχείριση των ραντεβού έτσι ώστε να μπορεί ο κάθε πάροχος να διαχειρίζεται τα δικά του. +\item {\bf Υποστήριξη Γραμματείας:} Αν παρόλα αυτά η εταιρεία ορίσει κάποια γραμματέα ως υπεύθυνη των ραντεβού, τότε είναι απαραίτητο να μπορεί να διαχειρίζεται μόνο τις εγγραφές που αντιστοιχούν στους πάροχους που βρίσκονται στην αρμοδιότητα της καθώς και τους πελάτες που είναι καταχωρημένοι στο σύστημα. Το Easy!Appointments υποστηρίζει την δημιουργία χρηστών που αντιπροσωπεύουν αυτόν τον σκοπό. -\item {\bf Υποστήριξη Γραμματείας :} Αν παρόλα αυτά η εταιρεία ορίσει κάποια γραμματέα ως υπεύθυνση των ραντεβού, τότε είναι απαραίτητο να μπορεί να διαχειρίζεται μόνο αυτά και τους πελάτες που είναι καταχωρημένοι στο σύστημα. Το Easy!Appointments υποστηρίζει την δημιουργία χρηστών που αντιπροσωπεύουν αυτόν τον σκοπό. - -\item {\bf Αμφίδρομος Συγχρονισμός με το Google Calendar :} Το σύστημα θα υποστηρίζει τον αμφίδρομο συγχρονισμό ραντεβού με το Google Calendar, κάνοντας χρήση του Google Calendar API. Με αυτόν τον τρόπο η διαχείριση των ραντεβού μπορεί να γίνει ακόμα πιο εύκολη, λαμβάνοντας υπόψιν το πόσο δημοφιλής είναι η συγκεκριμένη υπηρεσία της Google. +\item {\bf Αμφίδρομος Συγχρονισμός με το Google Calendar:} Το σύστημα υποστηρίζει τον αμφίδρομο συγχρονισμό ραντεβού με το Google Calendar, κάνοντας χρήση του Google Calendar API. Με αυτόν τον τρόπο η διαχείριση των ραντεβού μπορεί να γίνει ακόμα πιο εύκολη, λαμβάνοντας υπόψιν το πόσο δημοφιλής είναι η συγκεκριμένη υπηρεσία της Google. \end{enumerate} diff --git a/doc/thesis/includes/usage-scenarios.tex b/doc/thesis/includes/usage-scenarios.tex index fba709c6..103a8141 100644 --- a/doc/thesis/includes/usage-scenarios.tex +++ b/doc/thesis/includes/usage-scenarios.tex @@ -3,19 +3,19 @@ %% για κάθε έναν από τους ρόλους των χρηστών της εφαρμογής. \chapter{Σενάρια Χρήσης} -Το κεφάλαιο αυτό έχει ως στόχο να δώσει μια τυπική περιγραφή της χρήσης της εφαρμογής, για όλους τους διαθέσιμους ρόλους των χρηστών της, έτσι ώστε να γίνει περισσότερο κατανοητός ο τρόπος με τον οποίον θα λειτουργεί το σύστημα κρατήσεων ραντεβού. +Το κεφάλαιο αυτό έχει ως στόχο να δώσει μια τυπική περιγραφή της χρήσης της εφαρμογής για όλους τους διαθέσιμους ρόλους των χρηστών της, έτσι ώστε να γίνει περισσότερο κατανοητός ο τρόπος με τον οποίον λειτουργεί το σύστημα κρατήσεων ραντεβού. %% ΣΕΝΑΡΙΟ ΧΡΗΣΗΣ ΔΙΑΧΕΙΡΙΣΤΗ \section{Σενάριο χρήσης διαχειριστή} -Μετά από αρκετό καιρό χρήσης του Easy!Appointments η εταιρεία προσθέτει μια νέα υπηρεσία στο ενεργητικό της και για τον σκοπό αυτό ανοίγει ένα νέο τμήμα υπαλλήλων. Ο διαχειριστής του συστήματος πρέπει να ενημερώσει την εφαρμογή και να προσθέσει την νέα υπηρεσία, καθώς και τους νέους πάροχους υπηρεσιών, έτσι ώστε να μπορούν οι πελάτες να κλείνουν ραντεβού μαζί τους από εδώ και πέρα. Εφόσον γίνει αυτό, οι πελάτες θα μπορούν να επιλέξουν τις αντίστοιχες εγγραφές από την φόρμα κράτησης ραντεβού. +Μετά από αρκετό καιρό χρήσης του Easy!Appointments η εταιρεία προσθέτει μια νέα υπηρεσία στο ενεργητικό της και για τον σκοπό αυτό ανοίγει ένα νέο τμήμα υπαλλήλων. Ο διαχειριστής του συστήματος πρέπει να ενημερώσει την εφαρμογή και να προσθέσει την νέα υπηρεσία καθώς και τους νέους πάροχους υπηρεσιών, έτσι ώστε να μπορούν οι πελάτες να κλείνουν ραντεβού μαζί τους από εδώ και πέρα. Εφόσον γίνει αυτό οι πελάτες θα μπορούν να επιλέξουν τις αντίστοιχες εγγραφές από την φόρμα κράτησης ραντεβού. %% ΣΕΝΑΡΙΟ ΧΡΗΣΗ ΠΑΡΟΧΟΥ ΥΠΗΡΕΣΙΩΝ \section{Σενάριο χρήσης πάροχου υπηρεσιών} -Ο πάροχος υπηρεσιών της εφαρμογής λαμβάνει μια ειδοποίηση από την εφαρμογή (email) ότι έχει γίνει μια κράτηση για ραντεβού. Βλέποντας τα στοιχεία της κράτησης και την ημερομηνία αποφασίζει ότι δεν θα μπορέσει να είναι εκείνη την στιγμή διαθέσιμος, οπότε συνδέεται στην εφαρμογή και αλλάζει την ημερομηνία του ραντεβού. Αμέσως μετά πηγαίνει στο πρόγραμμά του και ενημερώνει την χρονική στιγμή στην οποία δεν θα είναι διαθέσιμος, έτσι ώστε να μην μπορούν πλέον οι πελάτες να κάνουν κρατήσεις σε εκείνη την χρονική περίοδο. Στην συνέχεια αποστέλλεται ειδοποίηση στον πελάτη και αυτός μπορεί να κρίνει αν τον βολεύει η νέα ημερομηνία. Αν όχι θα πρέπει να ακυρώσει το ραντεβού και να το ξανά-προσθέσει σε κάποια άλλη χρονική στιγμή. +Ο πάροχος υπηρεσιών της εφαρμογής λαμβάνει μια ειδοποίηση από την εφαρμογή (email) ότι έχει γίνει μια κράτηση για ραντεβού. Βλέποντας τα στοιχεία της κράτησης και την ημερομηνία αποφασίζει ότι δεν θα μπορέσει να είναι εκείνη την στιγμή διαθέσιμος, οπότε συνδέεται στην εφαρμογή και αλλάζει την ημερομηνία του ραντεβού. Αμέσως μετά πηγαίνει στο πρόγραμμά του και ενημερώνει την χρονική στιγμή στην οποία δεν θα είναι διαθέσιμος έτσι ώστε να μην μπορούν πλέον οι πελάτες να κάνουν κρατήσεις σε εκείνη την χρονική περίοδο. Στην συνέχεια αποστέλλεται ειδοποίηση στον πελάτη και αυτός μπορεί να κρίνει αν τον βολεύει η νέα ημερομηνία. Αν όχι θα πρέπει να ακυρώσει το ραντεβού και να το ξανά-προσθέσει σε κάποια άλλη χρονική στιγμή. %% ΣΕΝΑΡΙΟ ΧΡΗΣΗΣ ΠΕΛΑΤΗ \section{Σενάριο χρήσης πελάτη} -Ο πελάτης ενδιαφέρεται να κλείσει ραντεβού στην επιχείρηση για μια συγκεκριμένη υπηρεσία. Πηγαίνει στην σελίδα της επιχείρησης και βλέπει το πλάνο, αφού έχει επιλέξει ποια υπηρεσία και ποιόν υπάλληλο προτιμάει. Στην συνέχεια επιλέγει μια χρονική στιγμή που τον βολεύει και την κατοχυρώνει. Η διαδικασία ολοκληρώνεται με την αποστολή ενός email προς τον πελάτη, το οποίο περιέχει όλες τις πληροφορίες του ραντεβού, έτσι ώστε να είναι πάντα προσβάσιμες. Σε αυτό το email περιέχεται και ένας σύνδεσμος ο οποίος επιτρέπει στον πελάτη να πραγματοποιήσει αλλαγές στο ραντεβού. Από την στιγμή αυτήν και μετά το ραντεβού έχει κατοχυρωθεί και ο πελάτης θα ενημερώνεται για οποιαδήποτε αλλαγή μπορεί να γίνει στο ραντεβού του με email. +Ο πελάτης ενδιαφέρεται να κλείσει ραντεβού στην επιχείρηση για μια συγκεκριμένη υπηρεσία. Πηγαίνει στην σελίδα της επιχείρησης και βλέπει το πλάνο, αφού έχει επιλέξει ποια υπηρεσία και ποιόν υπάλληλο προτιμάει. Στην συνέχεια επιλέγει μια χρονική στιγμή που τον βολεύει και την κατοχυρώνει. Η διαδικασία ολοκληρώνεται με την αποστολή ενός email προς τον πελάτη το οποίο περιέχει όλες τις πληροφορίες του ραντεβού, έτσι ώστε να είναι πάντα προσβάσιμες. Σε αυτό το email περιέχεται και ένας σύνδεσμος ο οποίος επιτρέπει στον πελάτη να πραγματοποιήσει αλλαγές στο ραντεβού. Από την στιγμή αυτήν και μετά το ραντεβού έχει κατοχυρωθεί και ο πελάτης θα ενημερώνεται για οποιαδήποτε αλλαγή μπορεί να γίνει στο ραντεβού του με email. %% ΣΕΝΑΡΙΟ ΧΡΗΣΗΣ ΓΡΑΜΜΑΤΕΑ \section{Σενάριο χρήσης γραμματέα} diff --git a/doc/thesis/includes/use-cases.tex b/doc/thesis/includes/use-cases.tex index c8ecd521..bcb0954c 100644 --- a/doc/thesis/includes/use-cases.tex +++ b/doc/thesis/includes/use-cases.tex @@ -16,7 +16,7 @@ \textbf{ΕΝΑΛΛΑΚΤΙΚΕΣ ΡΟΕΣ} \begin{itemize} -\item Αν ο πελάτης αργήσει να επιλέξει ημερομηνία και στο ενδιάμεσο τον προλάβει ένας άλλος, θα πρέπει να επιστραφεί μήνυμα το οποίο θα τον προτρέψει να βρει άλλη ημερομηνία και ώρα για το ραντεβού του. +\item Αν ο πελάτης αργήσει να επιλέξει ημερομηνία και στο ενδιάμεσο τον προλάβει ένας άλλος θα πρέπει να επιστραφεί μήνυμα το οποίο θα τον προτρέψει να βρει άλλη ημερομηνία και ώρα για το ραντεβού του. \item Όταν ο πελάτης συμπληρώσει τα στοιχεία του και αφήσει κενό ένα πεδίο το οποίο είναι υποχρεωτικό για να ολοκληρωθεί η διαδικασία, θα εμφανιστεί μήνυμα το οποίο θα τον προτρέψει να συμπληρώσει όλα τα υποχρεωτικά πεδία. \end{itemize} @@ -25,7 +25,7 @@ \textbf{ΒΑΣΙΚΗ ΡΟΗ} -Ο χρήστης ολοκληρώνει την διαδικασία κράτησης ραντεβού. Σε αυτήν την διαδικασία έχει ήδη δώσει το email του, οπότε του έρχεται ένα email το οποίο περιέχει τις πληροφορίες του ραντεβού στο οποίο έχει κάνει την κράτηση και μαζί έναν σύνδεσμο, ο οποίος επιτρέπει στον χρήστη να πραγματοποιήσει αλλαγές στο συγκεκριμένο ραντεβού ή και να το ακυρώσει. Αφού ο χρήστης ακολουθήσει τον σύνδεσμο θα βρεθεί σε μια σελίδα η οποία θα περιέχει τις πληροφορίες του ραντεβού και θα του επιτρέπει να κάνει διάφορες αλλαγές. Όταν ολοκληρώσει την διαδικασία θα πατάει ένα κουμπί το οποίο θα αποθηκεύει τις αλλαγές και ένα νέο email θα έρχεται πάλι στον χρήστη αλλά και στον συγκεκριμένο πάροχο ότι έχουν πραγματοποιηθεί αλλαγές στο πλάνο του. +Ο χρήστης ολοκληρώνει την διαδικασία κράτησης ραντεβού. Σε αυτήν την διαδικασία έχει ήδη δώσει το email του στο οποίο στέλνεται ένα email με τις πληροφορίες του ραντεβού που έχει κάνει κράτηση και μαζί έναν σύνδεσμο ο οποίος επιτρέπει στον χρήστη να πραγματοποιήσει αλλαγές στο συγκεκριμένο ραντεβού ή και να το ακυρώσει. Αφού ο χρήστης ακολουθήσει τον σύνδεσμο θα βρεθεί σε μια σελίδα η οποία θα περιέχει τις πληροφορίες του ραντεβού και θα του επιτρέπει να πραγματοποιήσει αλλαγές. Όταν ολοκληρώσει την διαδικασία θα πατάει ένα κουμπί το οποίο θα αποθηκεύει τις αλλαγές και ένα νέο email θα έρχεται πάλι στον χρήστη αλλά και στον συγκεκριμένο πάροχο ότι έχουν πραγματοποιηθεί αλλαγές στο πλάνο του. \textbf{ΕΝΑΛΛΑΚΤΙΚΕΣ ΡΟΕΣ} @@ -36,7 +36,7 @@ \section {Πάροχος Υπηρεσιών} \subsection {Συγχρονισμός πλάνου με το Google Calendar} -Βασικό στοιχείο για την χρησιμότητα και την απόδοση του συστήματος είναι η διαχείριση των δεδομένων να γίνεται από πολλά συστήματα. Κάτι τέτοιο μπορεί να επιτεφθχεί με τον συγρονισμό των ραντεβού με το Google Calendar API. Σε αυτό ο χρήστης θα μπορεί να πραγματοποιεί αλλαγές στο πλάνο του μέσω του Google Calendar και αυτές να εφαρμόζονται και στο σύστημα κρατήσεων ραντεβού, κάνοντας έτσι την εργασία του πολύ εύκολη. +Βασικό στοιχείο για την χρησιμότητα και την απόδοση του συστήματος είναι η διαχείριση των δεδομένων να γίνεται από πολλά συστήματα. Κάτι τέτοιο μπορεί να επιτευχθεί με τον συγχρονισμό των ραντεβού με το Google Calendar API. Σε αυτό ο χρήστης θα μπορεί να πραγματοποιεί αλλαγές στο πλάνο του μέσω του Google Calendar και αυτές να εφαρμόζονται και στο σύστημα κρατήσεων ραντεβού κάνοντας έτσι την εργασία του πολύ εύκολη. \textbf{ΒΑΣΙΚΗ ΡΟΗ} @@ -45,12 +45,11 @@ \textbf{ΕΝΑΛΛΑΚΤΙΚΕΣ ΡΟΕΣ} \begin{itemize} -\item Υπάρχει η περίπτωση στην οποία ο πάροχος έχει πραγματοποιήσει αλλαγές στο Google Calendar και στο Easy!Appointments ταυτόχρονα, χωρίς να έχει τρέξει η διαδικασία του συγχρονισμού. Σε αυτήν την περίπτωση υπάρχει μεγάλη πιθανότητα να δημιουργηθεί κάποια σύγκρουση (conflict) και να υπάρχουν δυο συμβάντα τα οποία να ανταποκρίνονται στην ίδια χρονική περίοδο. Σε αυτήν την κατάσταση ο χρήστης είναι υπεύθυνος να λύσει την σύγκρουση μεταξύ των δύο συμβάντων και να φέρει το πλάνο του στην σωστή του μορφή. -\item Πιθανό είναι επίσης να γίνει μια αλλαγή σε ένα συγχρονισμένο συμβάν στο Google Calendar το οποίο όμως να έχει αλλαχθεί και στο Easy!Appointments. Σε αυτήν την περίπτωση θεωρείται ότι υπερισχύει η αλλαγή που έχει γίνει στο Easy!Appointmets διότι δεν υπάρχει η δυνατότητα να ελεγχθεί και στα δύο συστήματα το πότε (χρονική στιγμή) έχει γίνει η τροποποίηση. +\item Πιθανό είναι να γίνει μια αλλαγή σε ένα συγχρονισμένο συμβάν στο Google Calendar το οποίο όμως να έχει αλλαχθεί και στο Easy!Appointments. Σε αυτήν την περίπτωση θεωρείται ότι υπερισχύει η αλλαγή που έχει γίνει στο Easy!Appointments διότι δεν υπάρχει η δυνατότητα να ελεγχθεί και στα δύο συστήματα το ποια χρονική στιγμή έχει γίνει η τροποποίηση. \end{itemize} \subsection {Διαχείριση ραντεβού} -Όπως και ο πελάτης, έτσι και ο πάροχος υπηρεσιών θα πρέπει να έχει την δυνατότητα να διαχειρίζεται τα ραντεβού του (εφόσον του έχει δοθεί το δικαίωμα από τον διαχειριστή). Με αυτόν τον τρόπο θα έχει την δυνατότητα να πραγματοποιεί αλλαγές στο ημερολόγιο του, να αλλάζει την ημερομηνία των ραντεβού του και να καθορίζει το πλάνο του καταπώς τον βολεύει. Το Easy!Appointments εμφανίζει όλα τα ραντεβού σε ημερολόγιο, στο οποίο ο χρήστης μπορεί να περιηγηθεί χρονικά. +Όπως και ο πελάτης, έτσι και ο πάροχος υπηρεσιών θα πρέπει να έχει την δυνατότητα να διαχειρίζεται τα ραντεβού του. Με αυτόν τον τρόπο θα έχει την δυνατότητα να πραγματοποιεί αλλαγές στο ημερολόγιο του, να αλλάζει την ημερομηνία των ραντεβού του και να καθορίζει το πλάνο του καταπώς τον βολεύει. Το Easy!Appointments εμφανίζει όλα τα ραντεβού σε ημερολόγιο, στο οποίο ο χρήστης μπορεί να περιηγηθεί χρονικά. \textbf{ΒΑΣΙΚΗ ΡΟΗ} @@ -59,12 +58,12 @@ \textbf{ΕΝΑΛΛΑΚΤΙΚΕΣ ΡΟΕΣ} \begin{itemize} -\item Καθώς ο πάροχος υπηρεσιών επεξεργάζεται ένα ραντεβού μπορεί να αποφασίσει ότι δεν θέλει να αποθηκεύσει κάποιο ραντεβού και έτσι να πατήσει το κουμπί ακύρωσης και να μην επιρρεάσει το ραντεβού. -\item Σε αντίθεση με τον πελάτη, ένας πάροχος υπηρεσιών μπορεί να αλλάξει την διάρκεια ενός ραντεβού, ανεξάρτητα από το πόση ώρα διαρκεί το ραντεβού του. Οπότε στην φόρμα επεξεργασίας ενός ραντεβού υπάρχει η δυνατότητα επιλογής ημερομηνίας και ώρας έναρξης και τερματισμού του ραντεβού. +\item Καθώς ο πάροχος υπηρεσιών επεξεργάζεται ένα ραντεβού μπορεί να αποφασίσει ότι δεν θέλει να αποθηκεύσει τις αλλαγές που έχει κάνει και έτσι πατάει το κουμπί ακύρωσης αποτρέποντας την ενημέρωση των δεδομένων στην βάση. +\item Σε αντίθεση με τον πελάτη, ένας πάροχος υπηρεσιών μπορεί να αλλάξει την διάρκεια ενός ραντεβού ανεξάρτητα από το πόση ώρα διαρκεί η υπηρεσία που θα παρέχει. Οπότε στην φόρμα επεξεργασίας ενός ραντεβού υπάρχει η δυνατότητα επιλογής ημερομηνίας και ώρας έναρξης και τερματισμού του ραντεβού. \end{itemize} \subsection{Λήψη ειδοποιήσεων από το σύστημα} -Κάθε φορά που πραγματοποιείται μια ενέργεια που αφορά κάποιο ραντεβού στο σύστημα ο πάροχος υπηρεσίας θα ενημερώνεται με email (εκτός και αν απενεργοποιήσει αυτήν την ρύθμιση). Έτσι θα είναι πάντα ενήμερος σχετικά με την κατάσταση των ραντεβού του. Σε αυτά τα μηνύματα θα περιέχεται και ένα μοναδικό link το οποίο θα δίνει την δυνατότητα στον πάροχο να πραγματοποίηση αλλαγές γρήγορα στο ραντεβού που τον ενδιαφέρει. +Κάθε φορά που πραγματοποιείται μια ενέργεια που αφορά κάποιο ραντεβού στο σύστημα ο πάροχος υπηρεσίας θα ενημερώνεται με email (εκτός και αν απενεργοποιήσει αυτήν την ρύθμιση). Έτσι θα είναι πάντα ενήμερος σχετικά με την κατάσταση των ραντεβού του. Σε αυτά τα μηνύματα θα περιέχεται και ένα μοναδικό link το οποίο θα δίνει την δυνατότητα στον πάροχο να πραγματοποιήσει αλλαγές γρήγορα στο ραντεβού που τον ενδιαφέρει. \textbf{ΒΑΣΙΚΗ ΡΟΗ} @@ -90,11 +89,11 @@ Ο χρήστης γραμματέας δέχεται τηλεφώνημα από κάποιον πελάτη ο οποίος επιθυμεί να αλλάξει την ώρα του ραντεβού του αλλά δεν έχει σύνδεση με το διαδίκτυο στο σημείο που βρίσκεται. Έτσι ο γραμματέας πραγματοποιεί την αλλαγή του ραντεβού καταπώς μπορεί να βολεύει τόσο τον πάροχο υπηρεσίας όσο και τον πελάτη. Όταν τελειώσει μπορεί να αποθηκεύσει τις αλλαγές στο σύστημα. \subsection{Διαχείριση πελατών} -Εκτός των ραντεβού, ο χρήστης γραμματέας είναι σε θέση να πραγματοποιήσει αλλαγές και στα στοιχεία των πελατών, οργανώνοντας και κρατώντας πλήρη πελατολόγιο για την επιχείριση. Μελλοντικά θα είναι σε θέση να βρίσκει πολύ εύκολα οποιονδήποτε πελάτη της επιχείρισης και να βλέπει τα στοιχεία του. +Εκτός των ραντεβού, ο χρήστης γραμματέας είναι σε θέση να πραγματοποιήσει αλλαγές και στα στοιχεία των πελατών οργανώνοντας και κρατώντας πλήρη πελατολόγιο για την επιχείριση. Μελλοντικά θα είναι σε θέση να βρίσκει πολύ εύκολα οποιονδήποτε πελάτη της επιχείρισης και να βλέπει τα στοιχεία του. \textbf{ΒΑΣΙΚΗ ΡΟΗ} -Ο γραμματέας πηγαίνει στο backend στην σελίδα τον πελατών και φιλτράρει τον πελάτη που τον ενδιαφέρει και αμέσως βλέπει τα στοιχεία του. Πολύ εύκολα μπορεί να πραγματοποιήσει αλλαγές, αλλά και να τον διαγράψει από το σύστημα. +Ο γραμματέας πηγαίνει στο backend στην σελίδα τον πελατών και φιλτράρει τον πελάτη που τον ενδιαφέρει και αμέσως βλέπει τα στοιχεία του. Πολύ εύκολα μπορεί να πραγματοποιήσει αλλαγές αλλά και να τον διαγράψει από το σύστημα. \textbf{ΕΝΑΛΛΑΚΤΙΚΕΣ ΡΟΕΣ} @@ -111,11 +110,11 @@ Ο διαχειριστής τοποθετεί τα αρχεία της εφαρμογής στον server του και πηγαίνει με τον περιηγητή στην διεύθυνση που δείχνει τον κύριο κατάλογο. Η εφαρμογή καταλαβαίνει ότι δεν έχει ακόμα πραγματοποιηθεί εγκατάσταση και μεταφέρει τον χρήστη στην διαδικασία εγκατάστασης. Σε αυτήν την διαδικασία ο διαχειριστής θα πρέπει να ορίσει σημαντικά στοιχεία που αφορούν την λειτουργία του συστήματος και τα στοιχεία του λογαριασμού του. Όλα αυτά τα στοιχεία βέβαια θα είναι διαθέσιμα προς επεξεργασία από την αντίστοιχη σελίδα στο backend. \subsection{Παραμετροποίηση της εφαρμογής} -Για να μπορέσει να λειτουργήσει η εφαρμογή σύμφωνα με την μορφή της επιχείρησης θα χρειαστεί να παραμετροποίηση από τον διαχειριστή. Η παραμετροποίηση περιλαμβάνει τα ωράρια λειτουργίας της επιχείρησης, την διαχείριση των υπηρεσιών που θα είναι διαθέσιμες προς το κοινό, καθώς και την διαχείριση των πάροχων υπηρεσιών. +Για να μπορέσει να λειτουργήσει η εφαρμογή σύμφωνα με την μορφή της επιχείρησης θα χρειαστεί να παραμετροποιηθεί από τον διαχειριστή. Η παραμετροποίηση περιλαμβάνει τα ωράρια λειτουργίας της επιχείρησης, την διαχείριση των υπηρεσιών που θα είναι διαθέσιμες προς το κοινό καθώς και την διαχείριση των πάροχων υπηρεσιών. \textbf{ΒΑΣΙΚΗ ΡΟΗ} -Ο διαχειριστής εισέρχεται στο backend μέρος της εφαρμογής και επιλέγει την σελίδα των ρυθμίσεων. Εκεί έχει την δυνατότητα να θέσει τις τιμές σε διάφορες παραμέτρους, οι οποίες καθορίζουν τον τρόπο με τον οποίο λειτουργεί το σύστημα. Στόχος είναι αυτός να συμβαδίζει με τον τρόπο λειτουργίας της επιχείρισης έτσι ώστε να μπορεί η εταιρεία να επωφεληθεί από το Easy!Appointments. +Ο διαχειριστής εισέρχεται στο backend μέρος της εφαρμογής και επιλέγει την σελίδα των ρυθμίσεων. Εκεί έχει την δυνατότητα να θέσει τις τιμές σε διάφορες παραμέτρους οι οποίες καθορίζουν τον τρόπο με τον οποίο λειτουργεί το σύστημα. Στόχος είναι αυτός να συμβαδίζει με τον τρόπο λειτουργίας της επιχείρισης έτσι ώστε να μπορεί η εταιρεία να επωφεληθεί από το Easy!Appointments. \subsection{Διαχείριση ραντεβού} Ο διαχειριστής ως χρήστης έχει πρόσβαση σε όλες τις πληροφορίες του συστήματος. Έτσι μπορεί να μεταβάλει και να προσθέσει ραντεβού στο σύστημα σαν να ήταν ένας πάροχος υπηρεσιών ή ένας χρήστης γραμματέας. @@ -125,11 +124,11 @@ Ο διαχειριστής συνδέεται στο backend μέρος της εφαρμογής και πηγαίνει στην σελίδα του ημερολογίου. Εκεί μπορεί να δει τα ραντεβού όλων των πάροχων υπηρεσιών και να πραγματοποιήσει αλλαγές σε αυτά. Με το που αποθηκευτούν οι αλλαγές σε ένα ραντεβού ο πελάτης και ο πάροχος θα ενημερωθούν με email, όπως θα γινόταν δηλαδή αν την επεξεργασία την έκανε ένας πάροχος. \subsection {Διαχείριση χρηστών} -Τις υπηρεσίες που προσφέρει η εταιρεία τις αναλαμβάνουν κάποιοι υπάλληλοι (ή ομάδες υπαλλήλων), οι οποίοι αναφέρονται στο σύστημα ως πάροχοι υπηρεσιών. Τα στοιχεία τους, τις αρμοδιότητές τους και τα δικαιώματα μέσα στο σύστημα τα ορίζει μόνο ο διαχειριστής του συστήματος, από το backend μέρος της εφαρμογής. Επίσης είναι δυνατή η διαχείριση των διαχειριστών, γραμματειών και πελατών του συστήματος. +Τις υπηρεσίες που προσφέρει η εταιρεία τις αναλαμβάνουν κάποιοι υπάλληλοι (ή ομάδες υπαλλήλων), οι οποίοι αναφέρονται στο σύστημα ως πάροχοι υπηρεσιών. Τα στοιχεία τους και τις αρμοδιότητές τους μέσα στο σύστημα τα ορίζει μόνο ο διαχειριστής του συστήματος, από το backend μέρος της εφαρμογής. Επίσης είναι δυνατή η διαχείριση των διαχειριστών, γραμματειών και πελατών του συστήματος. \textbf{ΒΑΣΙΚΗ ΡΟΗ} -Ο διαχειριστής της εφαρμογής συνδέεται στο backend μέρος του συστήματος και πηγαίνει στην σελίδα των πάροχων υπηρεσίας. Εκεί βλέπει μια λίστα με τους ήδη καταχωρημένους πάροχους υπηρεσιών. Αν θέλει μπορεί να προσθέσει έναν καινούργιο πάροχο, ή να επεξεργαστεί και να διαγράψει κάποιον πάροχο που υπάρχει ήδη στην βάση δεδομένων. +Ο διαχειριστής της εφαρμογής συνδέεται στο backend μέρος της εφαρμογής και πηγαίνει στην σελίδα των πάροχων υπηρεσίας. Εκεί βλέπει μια λίστα με τους ήδη καταχωρημένους πάροχους. Αν θέλει μπορεί να προσθέσει έναν καινούργιο χρήστη, ή να επεξεργαστεί και να διαγράψει κάποια εγγραφή που υπάρχει ήδη στην βάση δεδομένων. \subsection {Διαχείριση υπηρεσιών} Οι πελάτες που θα επισκέπτονται τον ιστότοπο του Easy!Appointments της επιχείρησης θα κλείνουν ραντεβού για συγκεκριμένες υπηρεσίες. Το ποιες υπηρεσίες θα είναι διαθέσιμες και ποιοι πάροχοι υπηρεσιών μπορούν να εξυπηρετήσουν τι, το διαχειρίζεται ο διαχειριστής του συστήματος. Αποτελεί υποπερίπτωση χρήσης της παραμετροποίησης της εφαρμογής. \ No newline at end of file diff --git a/doc/thesis/snippets/google_sync_algorithm.php b/doc/thesis/snippets/google_sync_algorithm.php index 71fc6200..1e67e1f1 100644 --- a/doc/thesis/snippets/google_sync_algorithm.php +++ b/doc/thesis/snippets/google_sync_algorithm.php @@ -1,6 +1,6 @@ ndTG&F|h*dWPTGQhIMS!B6f%avoWhN=7I_?t)Imq-)GN*dEeQc zGv6lAj+tQvd_o;PL`qht#{49%CmXF46x0{b_i5KV_l5v0@1@cKdjooQX#G1#pPD9% zyqahic`%;<+9#BEp7zo<`M?jkXBBDaNP7P33#nZHZRZq-MEW1MiaU=2D;|6S8bZ}( z#RQ8Q*_^2d28j}FfA}k=;e=kZX7o3IF0pC!DqvYjt&&H|mxk^R!;{LyAL#yT=XK&HHg{6B-^I4O%-)jjBxb$|Qb@OJG<|nO6oy zaYM;C|MdE&Ou9Z*ayg&LGKMsrVNwy=4ZnI?1D^@}tl~(*zIE+;Bb;aL?83yRU{6a` zmQ2hxEmMvf&gl$cMW(TR-A@rZraNIV#&25HDuj{-AFnNY{u1dO^MLbxY>_R4x$#SG zHc|eJAeC;<+=jtm-kEP2XyZmjKZ$Jfte^j5Vr8YWSq!RUs7X3Jbg_nN?n~!y&@9+c z%b^Ugmee|?_G?T;j*U*Yh*mcnI8X}x7{^A26?;>b?Rc0FIgVg3D>Ev@`otsNtY`|C zp1SlFS*28P_(0)|5WdS zEInh9CUh(tvvhKf;tXs!jLgt_z$K8x-H0BZlv?(Tgdz8lG0!_Y0B|M_O+r1ILP!famv6{I`gl`az&#i1ym#- z_sfE<;dRxt8x6=aDM6}!J%JVb`4n`?2R6lmU{Vr*N5Jxxg7f&Ny5^+G2PP%N=VHF! zX)Z2QQev>P!lwXdGE#@C5VAE?V(blYaB%IEEzoMed_0E)>|) zl%=9*=S|H$Dimd&7@nBzg|dNEuM3&%AOFyaE%Y8+M3$u+#*+Posc1(v{4cn%`jZu< zUeF(=OC@P2i|}YkgRrzo6qv|KpRl+9d9I9>LDP3{d2WjtpQ$Cki<5&TGxOyts>D5h zBB{WZ5P|#dcOBaz&Q-9R!FOx#zab(3;UsT*E3Q{Lj2hp?qsL7a2XwOlC3x%gERGB$ zb0P1!B**v?5w$8_9d4ko)_Dvi z@sly(G$JhE&)oPw8UHRJ$eHlP-;qqAiFd)&rJ2YkKh)!DZyJckNO^tKUzhS`@ySLC z$M#p{5_ow-;hoJBWjHRMr*!eeXptk!mirb0z<(vt9c{uXaT!)ysr%;w2W(__LH`1w;q;uV8?0)0&#wIB|%0fy#%m;XxR(Bs7`x`VTaR18a~bP|9tplw!HlpzdB$r ziNk58$)Bncz!wyzrs(YsENK>3-)@AARr*EVa!zZed9#Og@{UE{|VLt_DH^G(TraN(Hg{Hn!Sp!fN%2!O8#*~W`7GD9r z7tN*<Pb)OG*PKAh7w25d5?>U!hzV6MQ*hFdk}1=S?S zV%NN`o3G5koq9de)h%22We;wQ2xG7}+ww0?bv^J>b*+PX3tEid<>kzpx~AXcG2V=} zRwav%27i`Pu{r)gT#1Shy{cOetWwx^mMvAuP_&mECtU^sRXLgGHe^E3;{yI4qWAG7 znA6d|>zn-16syYa2F@LfPvEe7Mk$><5m~NrUf3n`*RgL?Q^T4B&Gj@Le}5sR5yB72 zO$~Qk<+`Cot5b$ek?ga! zl-lmJlq;tKW|(5z=ZK?cvp;Rz-bNWBr>fEe%byYkM*MkSru33Hxqdv3Leq{Ff1MxT z9vd&DD#GvKi*u^;mIoL8an4i!^@ll3@kTCKw_*0+r2m*~odEzVk(q8Qt!+9O3Dw(< zF}}7k6@m)qzZ2ewSo$md-B}%SNIz|!#SpQe{xze4mzu-jvFZ(=zTks5WA$zLicME$k zbkTLxCAC#Du74XPJ2+9dr!r8rN5lvx6iV+qPVaSb4+??9Z+`a~J2J1cT!fzVe#SU_ zy;SA`>j*+$f#4u6vIw0A#3d&B2*%h0bv~~L5iWHbLLR+{LcmRC>nD=h;LXnYQ7_w$ zYAg*l=a-&tnu8S}%{P={G)%;s_vuUXsq-+X1O-Ne-DXd|YX5=Nvzp?1 zT|L5GW=j*`v_Z4ci!g&V3$cy_re?89ZG1ZZET1nG57T}`%rCdQMD%qDkX-WYUbr9p zLCfVn>^#kb2P`kXhu6INCizF(0&)>{7z^4(jw=M^OWWz$g*cGJ4UYqy-3iZn{YO}D zUd-N>{T9OjaEQ>>8PagD42_(>Mo#VYC9EpqQUNyfxk>U-xv=M&>ca2*Jz;zFtuRWj zx-Vt>)YNxLoPs!#@;k6(1Oulh5rqu**Fn=KzE!jD0II+IEffUEY&FY;?=}N={I-(3 zG~7<^NK&QngJRbV#3^4VcOezQ)hn+d4BG+u9rJWFHNqapUy2GH%a@q_=`BOGI6C>GbULTu)W{qa2& zlE6>`87BXroa-$N(UjKbO+HJc4c#X4oMIQ&0Fe&LYd9CRx)%ViOMhbf?dSO0>pG0CNT;*!9s016T4911O!~B?{8GURESNjSeoJUzt zto#dR;m<~|JNYU%t(h3MGS|T6$1iwhf#q0?)MBor*RXXzfd-*gk+)3Mmps~ut9~ZN z=LM_oa>Q#t->K`Vt!qnflMds)5|#do6acwi4zU!qDJ>Z3N~HirIvJOmKy?d&cNN+s zQvuLokqK(|q}gGYr?tJe!fc2RHzOQ95P0YQ>dsPlu;mKZMxSOfMA`^|VqE5emSw`s zUaok7(HIY-EyjdsVi9w37YMN z)G2%iX0@#4wmMz8C+54ww7liup<}WI!aN!Om61di$ar*PsD6!xW=VP)oY!7spA1!R zYKE`)m-oJ`T5K?WXkqB003JAv9w5)0*0^R~GaNS>eNpm#*`y;6#%j~Z3OSEy@jE2L zJ^K_}2tppz#*fXN1S84OL~cBcD`)l<(BG9iV!jVx68L@^1iW=drW#K%JRt#2&i`Lc zH~D{Qdc%L3PSE*(HQiMjktQ(_k4M(tA%R$#d?A^8Kf{Ha?cresBB@v?9ba)8YH!f> zD+#w}_Meo%_bt2cH<}^{DK?vc0abNQyagB)a%tJg4q-{~!QL}amRClU_tt4F%8>1G z#)v$ufCNH~z7wiS*e4|07X=Z5Dl+es8vf7r9_Qb!Kkr{dEo*_&?N`0s3rj&WKiGK> z#|(r*A(K+0-o=StEyHmL6aPsUSx=4a@mZ9-3M3@rB!m^Z7*Kx2T{fMwnV4ot!BR|R zRvnybdj_bIQ#MYZ`@%)pDe7-gGSq#+nXb{2BaprzhcAj$E;pNBq@#| z3(>gx*avEVn%Xa+Omirp89y?A5)mebM$J`3_#8Yv|_-hxQo;En=J z9-xzR|4|JuNT^fnyY4wvsvNSkmsQXrH-q=L@~UWD&cCFZaB$ma!l_et;V6918qQ4x zN5Ks$)-oG%^LdA?9b?E~B|_iALVk4%6tF#u`G|6%F{*gwQF+od;R^I)D#f3AZl!jK z<{g~tF9)vznVPO?D|Wu!IH2T6A{--lEI;$P%OvG^wpWj_Bw?{6558|MCM<|fx7R85 zukS!nT|tZB+BD%KUo11z@*iD=!^M&C=S%BSz{BBLl0n+sq6{eu$^G?F;>mfPCfi_2 z$^`Gxm^i2{xRT4T8&y3~Kb=e+VPt1DzOQ!#pK{s(Miw`shw@+-vM0Y`L3~?9E7|qJ z_=MB54SFOFukyvXZB(>ybV>BLk>Y-WWMBGjoH<_E$IM_mSxD+!j+1h69vtRKB>DmI zFw^?GDa+0&Dt45K=p<+G4z7gEsX7l#iOoU9&1Rj1Pv){8REnU7*3RqsIf*}b$o`V|#5YbXSKAN4Y0uJJ)g_kOgK5^DufbW1kuZEn`NDSN(tWeD9!CKZ|0dau1#c z$BIC}=#@8D%9=cI9`-|$Fn}KUGO-bH@@-Q9F?#1$9<3$Gc)~2 zE3>jg3`a_%6J*=)DJ=^XG;Ds|X4TR^g@D=s*NDDp((qD#RLo4z9wgOPI8|t};%koh zb!GP1(%2d%F08EMEMJdc$aFhfyqwxTLiI1Dwz}K1%1h;$zNuBA(2&!*wv1&f zxoM@`Z~8&;8(oD3Zw+HvwwbmFQa{Id#6zJX@%|mKy0XP}c)?nctPPQY`w?3(&e1)m z%RLTn#ON2oyF;fX!-^d-Hj`7;dTBKRdF}g$wjzxVV@g-us+jE z>RQKU>}`sxJG;*=7U?-U%W0MTJ;sZesTw26(^$OH9%I#Sj>MqX%7ZtRG|9^(T~FbQH6{3T#E)QIc6-+-_8Bk8yBis>fO9zQe!^d+8gf4OpQ}6kewBxroeF$DI zJYd48q}fWYmBLb1)Y-z~SaX|75szns%R<&_Z2NaP^CK%4%;U7cx)7cOlrAD#pH)<)GI{-5x^5HO;OVgns?MNzWbK));#MK zaTd@+Xna}-Q*w3XA!4knI;)yKVI=bYVTHj;p_C_1@W6J(+(lN7q1D9soAJ)taBeSm znkG?pBPuk7eEeothi8*;Ner*)WF8>Uswe>W!HTCq3es@{+Epx-P=X5FM7rs4f#Fbk2Q?Cy@bXbMxx2vu3iaUY&p7Pd>g?a1H& zWJKdWwLAr0YnLYg_|PrEKPozv$@gb2O1knpZho8}GR1bf9%s|`GI?DT;g&*Xblrru z>2@=mV~U#W`LB$>!l`QGEh1M0w4s&d|91KX-%c`ZM4V=(h|Sb3sXOo_YOAS-_nCDz z^NAo>Ka87aY%SA)5_H=$^n?@YZbruF8&F2M?LZ^^>VlX9+6q>8oFeiqCRzekVn_)- z*BZVJ`O?XpINlEQ?t?N6F1^TCC%v5+0%x4%%6^}Gx(THN1?s&G^>3IkE|EjDufvIUE;jI*5C3?xkLFb4!XXg!Mvc9^qXr8M66#_F zkMVK!9739s0BNPs%HwHeFOAVN55$z^5`$)?Zr9B&lVFwj*m5m%O{TN$^iZ?%$UOJw#>quodCu3+)!E~@s`?$GMoCq~N%^0= z@seDCt%+aUK7<$KoFv?OvXPv1T;mU4e%Cd)iu{ru8^V(*no|?yzguDXr+mtjO3jKi z{Xr+A+T>|iZYLTLq;r7?-I}izs+}ubkDRJ*zk5+Z(NVg855-I5=+*hTqNwTfIb!+y zlVsx1wwdeL>l)@;!fGNOAiAV4AqzbX$viCp=0?PKV^nl}nj|7GkBxT(m^kmGMo;uN z6WKTZQEuLvr2%r_mPXjemK;cY17#jIgLc{V)ek)%RKmqdxsWV0Zqj+NiUAN=twK`luYO*)NIt z{HwN8Rj*TZ-Dfcc^)slgw2`7lW<1HDBftL2QXxBNJ9wFI$Gr%1>1^wPu9gts?*2vU zjzCwPosEYK9dWbeh_|+NRrWKMcj_Al}yq zeyP{qc*+N2*$HaHMINUoV}yHkIwdE2JoS~AR{nmY#;Q0)M1Tx$Hgpxe$N@xQG@mw1 zL2s5EX9Rc0P91DHbTMS@QfdkT4He;FC>thkIOLxJ_uu9(7*(|<7JEJ*MnZS5r?rP= zg7#c-BZSZ@;gC8bEcc^C!Ir3q%^oe&wWd$vl_DStuA=3fg@uS$8ssHPnKl&KQ#q`f z5z+6X!XcCl$m zkx)eT_4`EW8(btv4I4J8mzo#gVBz^+9vGuOQM1SlzjcrC8bH&M)D*#<35iNvFLsVt zpMEBpyYz{z36O``gzhu%Os+570X(Z*?^AzXiqq5l+k0Vepb7 z@UXAOj&$3RRi^W&$!99E3$^HlfDeqQ^(V<<_>{KysYcMQ9CNO|JAFfAcfrAuieKw1 zxlXgdQ?ch?*{`%cTL;L4)w@Uc#O4C(8g1Ns&Bnr6YfL0Ig8CKNmt=mB%2}j6QSRuZ zxeMvQ4Ire^h(nG{sX^jdn$e4_yW}I96F=U-rdLk!MpH_R(3C5+h3cZHNZ5x(@x#zG z>BFq+>2(zTAQiG%^N(o7W5v@F@p_jdTF~j7*B&{+`?`8Q0p_1u2hE`i{3pembtH-# zt>iRmow;1htUN2}zl`BEcce(XQy6D40 z>O8W*y6#SNX(Y48FQV`M(>$ii%T*dFx7^=+S!>rn`D4NwD(iFnEuk}9Dg2b^YUjJj z@)GrMhN_EY?0BAEpsQ6PsC47>G_#0LHwkTe$mie(eN9Y~$fj?9lKJ(>BnFtMC?$R9fZ-ktW384og7)693P zYeL{8#OVG$tp|8J_xph4y?OV-?x@wmD!SQPe65Gx@fG;i&c0_6+Iu@$0UWkwj2KF8 zh@TGFNlR|R>N`D=e2rBdLmK$|13X^6xRGr9cJTc>4UHYCK{7h86Ioluo4y|Vd<8vA zWilw|Ho#SzDuQlE%n5ankYDdP6yPSDS-vy1gQ^hwvU#eHK-BbEX*yL~Qd$kt%RbRniaXepHJ$DhdGA^iKM-HLP~Gh$S;zNl8?NC&Xd0J(VDTxscC`?`JL5P4a| zf4BJ59FE+pF`L9nPTUy>_Tz!Qt__k3Y+SJ+jcBp`U|K3Pi>3xnKtO@_CDU0U^7`zl zVxD%TwIQ-5cX2h4-*S^{H0fhtocTvJA^vW^AU@)1OMN1`V;Rwq1IQzX zkyI=q&08WKP>h2~_-OZ9x%78NZV3#5Tt&o)b66Q_Rpmve6DrUYIc@=qImPJNuP9an zR+dz5Bb3ok#298@%U~-RS`kNvt0JZ8-Vb4wZ?kI7*6p6-lnZfG)f$W{VDy5bO=XIT zA%V1-T+;Cj$VX}9gxOU@_J3sqBi<^&$v9ZJT%be&nvsK3DZ$RUvb-6N2w@vAjA#|y z`Ktuvn{Z8SI#cOFjVkJQ&cICVdd1TkDnvqdl#E61wjd}LtVf+I#jOJL6}HHDugP4R zOY7)6vpZer#g`;qqNTIX;!1H<%9*Rf18%aTn&nIbR(|fyzyFMl+xLLKP5V98!H+2F zy@Ngi%p^o-6^o9qs<2#A=BVgbU}k5-5H3flzlH@(gLz4uol^j>tLbRli3eg(KqNWNx%VvK9;ojpB>D$ve za}c5gTw60UIRBWlr_@r4>(CrRL7$3AH5Q!!MQ6-^%Jb{`4`W)}?K@v0%bG9oaX!jP zZb@Sp?sxByBd2RM{LXeM(=p(;8(P|2(iYIbQ-eJly}+CK^V37QVRmf>QD}`DNeno6 z=_Vq|hQZ#C_#mMj=q~r@p56KT_b!lSZD&rhQX_N$9=8fH&P}cZkn2qjQU*3=NFiz9 z#=M6162@LFg4#w5oWc9FspzyF)u^h?95LV9jAH8r+hrohq~E2i96w8NhDd+-#ZIjQ zw~1*4zxEtu10*}Rw>GJVP#$-APoT(Oez-=$(3zk}b?P?3QPMt!-u9A8^5-Y+Ox_tHZ`o$XryWXZc< zqy0KZYgaqFO)amuh0hULDVnsI9-20J_mJ1J3?vhEUfA>P)02gCchGfW=xUs)i_2qz ztLrDao~ommJ7nKCWYxTeF!vSBRV;79)qM&_ybS#G_0RMq2v%DMMBH&C(LP_Q5fKxJdw+C9Bvcb{a48T11?OtjM8B zL|Ez^Cqg;#CWk%BqG#om`f!`XYkh#;y%C7_rXGU3Iz${_6T-^O4)B8I zp)vs^MY9M1Jk0;g+fsBpV+T7>{;#*WjTVSU`0wt6ae>Z5t};sRSyrIGep4QHaTinj zU`2)4MdBl#cv+M$d@Ft(-sK4~IO_i7tvz%7b|8H5`TCCY`}*hmcCoX2_{lSMfA;Q{ zNeSfM_c=oWZ+;&(F4IbBb+acxZ|}F$+xPeB$J@;n<{ieukGPd5ldV zm`=3#~+lZuOA@4@Uc=&w?RDyOu=s08-?!@Oa>NMj^xSWiet{wl2Q`Z613y# zvVBZtxt6C=9u5SqleJiL>Rky%@stca%uUb+2eRvGE6i0^&5`C;{oU|Ql1OBKWb_}v zYz$R-F4a@xv83Kq5TXF0$~N;nu8~a|C3~*#e*5f~_CKas!aIj{+Ol-c zjLsVJo3W-py6RykT6gHSM`C`rQs&GlD&^c%L~FFX6fZdJ zmCn`XLN+7K#7aE@`b_%&>^rWlR!CY4VhBDC3t}I(1LL`xh--l-s&}+r;+D9^#AtR- zbxFan9#*Hl)j_%J-+au%@Tp!}KCanu^@CZa3#ZJ|cMaxvx1}RItYCYwq#Cn1^9hb& z$0FC?;v@;DsCfvc>r{gUO$CaNkZ14{XLK*iE&~>Y2$9J_d{*k>x-j7HNv3&;qa5!s zYLaW5x|ALTZ971Lb#JspsRdG*Oe2&wFO{Ux$)=oiWl;HVYPE-|LJRsVY%umT1Gfiv zomhIY{X)u!fk=-cc8hMw7zWE;W;>2v7+U4lE}2~QyL}7KedM20Ij<{SbKd6cqiAk+ z><3XysLUDZmI|EOtVk7^zdYH-Kt1f#<@F1^Crpg8Q@H{9#n*kT$*n6eTTz7ynl9p7 z5}7RxRa24Hi>^@K{j&2nmCs@9itOk00$hig+1a!EPh@X(NNDyBTr#}xax=XAmWeBY z35mb|nXgi}&Qha-Xe6|kzAvGDx&049opEG6lioY;-a;1Wi(1}}RELRrCMG_kR7g!~ zZdJ7wy#Jt{*284I19FzT9}=vc_$29xGV1(yaKxYt1hR=$+Fk<%aZ^$ZZ#Kkdlts0F zW~v4RC5-!7Y|g7~w$`X3PS*dLx$EZaM4(Fz?T33M;q;@^2aw%Y@MQIJu*gQ?kyfGT z$DWDp{-VJCSQf!bp=1TrVDz*t5EBQm1cdj&&ffsW*xe8Gn5eoI8d;oMHM-!2pVu16 z`|%Y6lj>KYnj6?ME?Kl;lDSj0kw0<&QL}-OD$6K!CajC07LWJ4q*=SL@9NZ=nfy>g zlb0Uo;n0ag{gdL3Zq+K|ilk_gN=ynPW!+#*a$+`7tzIor$O{S&nm1lE*`&lv&hyDB zMEnQ{3iZ9C`y}udRQJ}!Apb6-Nsn8&Ob{6VKe%`H>^yW~Id5b;hZH(HEQiT7eiL28rY!2`o}kAToIvIg6)&aM>f~t~$=T zcXc%r$~eb0VX7T;Bx2%FIVGtPXl$rq70wvY>t2^kg*`o6Jn@SN>Wr%Z@|ypV&U*jA z`1m~(>tQy_dYP}1)LA?EQv%^oX0EL@aFmtrf%TGh?~j_s@K7RrV-U7QV2I-!r*o+C z4z;c+V(7?xoGX5eF)i6eX-l!WMq>|{l<23&kG`SlP49n^DdLAOhg!0-HhF|y{4(AE z;@;D0%NvfVI(dQ8(^g2cnXbjdE3*PNw(KS~k2IcXF@qnk{gwK{55Mhbqqf)ysYbPn zivZh8wLeEE)pl{#@(`5K`Ow*gUiW|9Q^S8W1Fcvtv$1g&M^bibi)A?=c~S^#jOo^* z_D{h}p1S#*lhqg0eR~}yV^iHnM`W1*6;i)~&G`>Icf@AC!F`R+9@@e2uXPgi$K3KO z?MbR8MYxvAOVf4J-|}~r37$KTjUV$*={7SAbusC~sYX?ZFDp}r55{7kXeaPwdcO2o zlem#rZE+IZ!5nIKEwi{bgTJd7p_%Q#+cRw-X4!By2yy~I3GZt=uht#spppmyzm9cS zRjuc-RFl!on1lTLQrq<{;!VW$%cckgZSfIFsT073YH!o=vs~(L=W~Si$vvcqDQk*g zspScfor@BN&y_x+MNyhE-=tX685+JU(vnh)sr>G4T@-Qkpcydl!%vqIv-sB}^G)(9 zCdW5%1158U{i*BC)Gq#t8e0N|Z2f6P2#)g@|MM)*AtJqcXl>4S9l(*|4P#B#%)3y6`)jUwq$bzfe{hPIcd5olmFxI*;(7sU56PQ8mgnwwQYNUl5Uh;`- zuW!yNyr*t_0SgbGgQQ`Kc5afhi7a9aF?Py-r$(p0BG-&ztsa2{6xG=@e|e*@%&v^< z20{W;o$6nhXJ>2;wRU&BO25r?mWUs(^;ObiZdYLCjdkAe&dmvyu~Y>TNe4kX7^9jC z`gxXps+Aw0Y;@i^D>Z4lHp1unT-990 zwkd6|$DXuGc6|UdkRA^GZuhKNF4e^&VS$HX`2$)B-oSaW-`{|5|DqUU4(|G-k!x)ZU3Er|aY6i>=b zJc2ehQ^{wTH3(S4Fd)x3thp}y?)@|LU!9`JYR7`joj?(}e;+UVtOae*`zgW|Vvn1) z(B<0t?Ev0u|NXsiqLlX^Ga8Jz+f=;hE7)P;uO{TdoCD^XX9QIFA`L#}O#^`6*YfAb zs~JW1{GzWd-AICFDDx9?0TOebkm&i!mEP!13s->D!0(No$Bk2SA4Xm>A(G80`Eajg zQ@n^K*fXKb;99CSrhV{;E;2Qi?8!mw_Otwu!2Q_U*qSzaPEW=hi2Yx-oJY zCl`kCsRC$}j`sPBzCP%87#} zG4(SDl*dpt_(>|DhpjX;_Guc4(-)~_4^XH;u`O+i1^z&2xS0R>yKiIetBIQ|P%~;+ zDz*qd(Xli2px*bRbZ0t|VyiVInvzp1xA%%7Pqfz5_;1>j4RvU6X=)C}Q3)(WWuiRQ zj8+-76X`hh1_sY7T2Tz(HzT>IoP~0=&z7J8%}nmf_9Xh6J*G%Ekyn+DWhd%;%GtfQ zhF3i8Fq(Hj*1_2>=%dosvdLdP%s!XR3AW$Jg6X8Dk7E#>j6z;}!+|O3rWtGG-ZMO- z^Aq`+m6gcjV%Fl=?~3bZ?PW{Uf55d-MYZ&F5bayvu?RaG@0B{x&JaeheB2Amr=$wQ zZ%_N%!x8&P99^fBD-mv{A`wnyzZsvd6dWj$4x<7~l1HOm%guhSoQhg*Ee6|H6xpfo zq2Iy&9dcr~{baS&J(Zhj#aK1SRGi&iKTQE|9sUvX-Du7v08KM#@6qyH!gUA^7kzA< z-WloX+SB~6Y+-b}ZBZohvBa(FA48x@%=tI3ShG3C(lJPdAD; zqiV7u0D@)4F@uUVV&GD>Pee0drz#Y`iPM2@4Ey&_et%8C4jcmk?{@*p6LQLizH+wq z{G-;7NRrh<&ve?)jiNh|$=W~+Up-vNuJE;ZYfL8=v^T4(>OKa|UhGp%c@q>!b-OiE zYdQHc^SVbYV}z%A0mqvQp5f+QIQE3{r702+Zxch2OSww&19u;)Uq1c`iZX<+T|N3{ zYLWk%%6%w-7R4+?^2aNXN^Eufh3$M#$Ckg@BQb%VOMkP8jqNmwL|2a8a8-&>qbqXz z@WWX!5Rs!`0nAFWq1MkxErRy41+iU(dF2!={+}Pv1xoQ;2nKa21gc~x;5WRuH@R-1 zg(it=kzkS%n(iIPsEjSP0@Cb-H{6$68M}qp!P)ab9s3IXS|bNBapn)pf7}R^JoBx$ zv$`GPfgxNu)*Ib9pll&14X}2ROrUH@^q>r>=U{99MDirBuQ!scqt@K+6`&;G&#c?1 zFZR8WJ@+Iu#Hgfot=WWdR)WXnZht^7k)G!ky%7Rz5^~hW(Z%29PdZ&tu0sK$ZcKOr z@E=9MIoOkhQV@swv^@hf8+m&zDmOH|jS3~&%9rxPK8Ylw0%S8uTA`*rgt|my&^hDu z?5XXY3k`Y?I7WD=G$me|#nOC0duM9I8mPVgBEM{_9DL&Ij~dV-!%-PI<1a6koZQ`U z!Z1zyOfQ5bu5&#yU#skvtkmz~?=#j3x?lUia{B4N;&b*u%~QA9&epMjh(*c81@B<0 zPy?DAdD)Tngdikl%&czsjrVCv76~oLGz&}FFn`*sXh{{iB&GsTD!TkOd`?;p)uo8A zq5RJv<98dUmCV>p1Gu#_IT@4gCxh?Y{&> zGuvs$kg-XZ#q+hZXoujOqG7Ww;>=+ON+Vqr8W@-a5G81woZ>Kn?j7nwxAnSe=Pocq z3vtxA>pG$RhpX`*VXiAF>f5D#5vo+&6|J1 z05riQjkv~Oy1snDs3e7l`evgidS{E`GBVQ=%N5%0rQLc^4cjyG9Cnx&R+jBDJxL|( zuWSqLw(hdw=+0(+gk)VGW^TX~wSS`#0&BZETRwXY2YhCZnQvn^S5R*}Eu%9)S2LiW zx_qai);#=gvyT*%zD1@H1tIXGSyRV$f?+1STJLX{J#CMs>5HiL(bAB;xAhXJ|Jd;+W?I3e+o5ee2;UvNz(* z!S6EvIpeT%j#IV@*?mv7uw|3A8U9sRg5KX}sii6zfSOvxqC!C&+baOBJze9NJM@A` zX_#4?ub$#B4faaRWG`cbE4brd*#Ku{rHSdN4}LM4u56fN;u>usjXF)SWj=K{lTV8Do4vw$jD`_9b9(CKEjo;eDCaa;v3xWCF@01f2i#eFD=}ho3+L?yXuH@XMr2+#4!NOrTA-e#q zm%GDid18eTFX$KvyjKW9b4I^=M#m|>wG%YCq;A4uRXd}9^qa{m2EaUNk0eqdkMgAG z`63AT163|U32XIzzqz`~ z(I+O=*{Bl!K{yww(NpuM+VoJ>Y?h`SbS!6gmOpRaP;+bRz%P0aDqcbJEhIj)#Ae8% zcoz8j3A9m;Rg7aeayTEtf*T3|gCW*#w^RS8`hLzOM19#`E1=w|VlIa5xLQhJJ!n&K z8*Wld+uR}Gny&h>4_j1vcHhz6aC=Y=CQae@OL!GiJtTJazJwsSC=>5qpUK6H3MhI+ z1j=O%*>SYUfIf=2GN=+g$1g2Lx?A^ekcHsHT*tHpQ#j&B_dyh9?mszB)2Z96MDxIcR5Cfha}RB^2j_X)E}1+iMk zZGkjRKWEi!T@-w`ZhWu2b58Yki4*dWnt1z{z$#7tvM&xQHBLMgVZGtWISXtGl`=DL z{PG3HacDvHpXZuyH5iZ({%OC)y8+@6swt8(PpEFTZUA{qlocEh%j3|9GHqeRW-@$1e)HPhK49(nu`o><)el=x(`zAQelVNtP*kluw;xNpNBPmd*` zwfd;q0EwRWy9Spo=~V;|`DYPDXVb|x{Mh^OnoPDY zTLS&!F<{V-rBWxp&Y3sE7)LplG!pTRqC4La``#a#&gUW?7?D7Va-deL8&;FT6@_qb znI5^$?nAUCNbZp}SpAOr3&(l#Z$B2V&5IG6imR9Pg8h2Ifx;OO&LL6Oiwr}UxG$6|6i+*}4?gQZ=R}f zS%10Q;4>vp2@Wnx3lf?pTk0_!#mM3i!^`Mi)Re{Wpv#3;Skg2dLyQ@^+l*E$OE>+B z)qp4)CQf`zy_nM6oLR!PnwZnjx$uU);)v+;jU8KZ(xoSu2j>{aqD`EeMd>RyB%ttn z3CNlwd~%_L*`Tn)f3@$V+)rNfdlCPc`;R?iU!cm&U+P!$iCXW!Z#ud2i;2v%z=S!~ zQWU?1sRv35eCx{EW_VK27t4pkUyij?Jzy&sbSBEpzxyEC^I4AAu&HarGyHYph0Y*n zwI!v~GN!u)=mhB=`AA%tTif=VoFj}YgaC`S>(bDl*3~0DA=_`6!kTK#T{e3L{oe6d zHlmd>R)TEZROX(8-{YETXa|M^)FzBBc5Kk)Z^#v1K0-Kd$fj8v)E}nOQH{ssp|r<$3n!ppB}h2g$^4s~?rs z&FyT(zFDP9pl^aLnQiqcAu$l0Q2=tw)@>DET)7halD}2h{uO6{dU5OlzPX8u>H~Fi zG3RK;)6ZWV?wXOb! z2PxTXTq8X5BAecpYKRE%CLXJYL-bFPk7w78n0>UpvBYh*L3z3Rh7hS>2l`Y8azu0D zzGs@N7HvCk6@f@LTU5y8!g+T4b-yl>Y zi%rf^XYc`a<#7OhYe-CR1rX;z)zTGfk5%B+l_eSv52gROV{Pb5f7XhWm|SXsFK_usDnsVnHX5VvNuUZB^>RB1IZj6G3^ z+lAe69_*RnS~sR?qcXmY#P{WrD=yusg5U1 zZpHh(YUSg}WEi5862B1t2@c{^hc<}5jaP=!S9D_0*ZgYY(!0(t0ynJ!=q@^gR&Y2| zZ^DabRlg$T(SC6dES{>!K6+tI!3YdE5c=QS~36NM_352ksGZBr8G?BTMBbYNn}47G4(@aABu6>QjEsoA z^Ia=Gi0$_Gv3heO*0N<-v)^%{b8w}1e`8)AoQU}Jt6PTfg>;qqXe2EsP5e#&fOYGh zNVo*Zl{%KTs$IQPoAcjJqhPtGln(Md1RtZInON{@%eJlFxKcj;8cD16#=S-3-p8{K zJu)T=S$?-z;!=%0D>%p(sqP?}YCNDwWf|`|aCu!p{CEKHLX#ahMvw;>3P4QpFNg`A zWLq(SeCr{mvj9%Dp4uY7)5mXAL#U8hr;Y$YpHBQG&5zabW4Mne)4Sj+SgW~kdhp4n z8XbxJLD@7tv{K0)lxM6`3mZb9HvGqG|1ReD1CcBXkC^f~?BX{hi+)KtAnyI;GONkc8v-sRuvbl#Rk|fdvf`EQF5EZ9x`8RO zaAg-ztrYp()xSpWg$@6FN@<+1P+Q()~xDd5$J8Y`d<9L>J5w8gI23tfJ3hrQoQX*>$>5lGF|y4YBEeHm>*3c;lCcBTI*i)2z42uE{jICZPm077o7 zji#Zsm>*ZJ)Y3=bM&v|)u7;lL(6Sp+FRy;N|DSiAIyHgyRrZrXd2mP!*%e1|O5VJw zdz}G8UO0q~ugLMDl9JIiz(B8K^^ZJrkv%)k8x`)YVGlU%9o7)k}u-p&Z%jqZF;yTR9z8 za#Fo26YUT=gKO&cB$nY{qryo{A`sCUj$1)dtzjIqIe{i?N)g&@oB%Gn7Wbz>O&h8H zejD8`dJ!KlR;K|`_n+C{J3KjwcF$c}Z;}JLBt$kOw80DCnx=qG62A7VB+A`u4kzI~ z0SzvpIrsq=`%5;lt) z+^?^uHc9=~?qxV(+5sK0FiicHc+Rhy@!nBf2-3x~M39i?6RSon`Eyto2l8 zc&+QvZXD}s2o+i^FvE~;kDZ)s>26!8&tc)44y>6vn{K68HN96+$6vtu^6m=n1Gn2! zn0Cm0t&X-b5dc_#V}`3dx?NNH(rvDmLV$}|@qp`>79qbyl=w#xl~yS5zt*rx0_s{ApnnMlmLKys-e9Z6UNKuy#>D4 z4ca@%^B&guTD14ucC-$4yH%X0g_lA9vs_y4O@(FA$72pr=O@bWX@|U1Qn6O%>UwZk z%1t3Z!QRz*<5Px+231c({8lvpD{eEpLSF zjNxOgD*&oO3Gc#akVET8+7(Zl9^p-H7}7q4Kx-uhjt|A}v4&dyEM!djIg7Jl|MAck zeJVr}WNej%>dKb-z2k-Nx|5P!X9MdCYnttOEXEA0`&cNc>IoPsHL>#4d+Im(i(f3y zY~h=+U29Z+pcSy8^!qn2kLGS)*s=?o@@f__380D*0XPB@5ms2l7Bz zYpXNA6q8rsBurzZvj-A!_Za|3knz#|I=uvM= z0xyZtD~&%V4{>`ffSHeEq+x0V!W0yL z>LAdQfuWGyvuhKFK7~iYSH+)|r_=L?f|?MTqt2i3UH49&ob#-3S|iFI`47vMIw-}w znNb+dHkc*+%6!@$=yAN-sQSBK`!smS=zM`~Oo}_|BHDdqr~M%>xra_M3)tj1y<~Z< z`GFIxPGpCT6yqH#fUcU~$8ozOKrTTf&2R~}{$^JG{r%ep*oLF>Rbmvvz$N;uv=OSm zn_;03wiwjr{u;|koH&t>Ety%e@UF(M_=2es1S8hHiDbH;D;#N~o7g=`KXL16=;{r& zxRPV~ZMYezA_7F?8b*V{9o4YYtQ08>L#f@1=@l>RCkG6602>E0A4ae^S8w?%1SsM? z2EoMYjp+MR9+1F}XhdSqx~6&NQxT9*k}Vlhez%s<&{U9L=`vGf8XA#u{o|!L**8l| zPvYumtV9*(l&Og?-TCI+_TDM%?Z?PwQ;VL6>Dqne2`z0X65B!%Dhr}4nxx=*rp_sW zCdL}6(EeD%HDAT;;T%CM)fs-z|ObBmkW?~yAQ^(}n zM73<&>5dL+y0eKh9MPB{oP3y!vY7V01}erUiaKH|G^mgs!AdR;0)K z)lVf24w;x#+hmn!`h>th@E|gfnq)oN3*DHl((BSk0B3L|R>qS-$l&;-9D5DBh4o5C z#(03Zoiw|g*($aeUQlA9tl1&{N|eBu_qkTPdj!j~&f(~tGsUJc{z?_O(D*tu7_`x& zkd9tp#02Zj_&V--O(WuB+U_u-XbFW0A5{Pyg8Dp-5?DJMeE^m!eO&-k)-10Df#!zH z2xZ9_K%-Qo0PO7BF9-Z&jku1x^>TN*(OU=7t4coshnRR~5u&>Or~<5cu34kg^d zN$Q9X;rvQIX*#caPv4Volx$N6&;i+{CSgf5t^`paB~F1&!qONpI$1kU)-?Pe>AH$( zvs0~yNpMwWkv6|U!>Pc4s zs2Vox9t4%WqO_>?XBok~x*^_q=GFGGy88$Nqf4GQ)$Yue3)2W1d48T3n`b$6-UcOC z66B;8OB&%%U47^C9Nck0FdH7V^Hr@=3)R~U=Fa?1RgyOwa=RXNy6kXXw@`vJR^bks z{jKj&Jw1-BC+-_zzSD7n!dL2h<&Uffz+Na45$6DPzlON3B_J|(Gs(EdCo<#z1?KMY z50s7Lx4dG+XK(c&bj?m$hOWN#7iFxr;3dMIn;d#TF~wJNtlSn$5jLkBGdUJ?y)w33 zhL6i>*SZgURMONYa7$KQbh|cqP0cd#woltI0jKLKE0?hG98C6$h-|InQO1J@OkOXF zFR1Cvm4CR^I>PikT^Y{D6j7|%nlBxw12TD>?k@tY&Xg%xSw@kxvW6NEm9fP!L*vj& zk>BY&q_sD>O3l7f{7SLsDQ$LqjM1J;68`~n`A~||OmJ>sb$JH&5Zq?8h z*vu5sZZTkFaMY`#Y*6&Y628~~rCLhK?ustOcXQ^MQsZ4Kp&u;ms$!yIoLwQ)iQB8A zK3s+FY_Q$Y6|%=gbDtPAGV8wIz?LDX>=T#?{*{+#qkH&7sVEI_^aVL}Z#PF&fm|`f z)bR&8zv#}?=|~fQeS2ZU%NE%$ojzjV$h3<)ivm(ks5VdImvpsUcU}%KbR_9KeV&og z*2~h-y}N$iCVtEV#p{z4A<&YrwW$DXZ2zrgOTn421LeHluDwMZT=Hh~-xCSA2I)c{ ztv>CGJ;?Q1{pqP1Op~0F-6vw&pNmHu;-t>|cE6`w`Tn$oE-R@zY0nk-wuSw%%>x|% z*x!^H{3F=6^H#DIZe~=Zzc0_n7*BQ;ZsK|vrr#C?E}m`xFM{$tJvy>+{^4gcp4?qc zAZl@F;p;t5( zBoKW;7KFu(`3_n>z!n=_N~TQ<}q!Wi^I#=75rk0l1?k)_uiq}*j^Oy zbmYuviA!I0Vs<;tOIdY_fUMGP!sc$v zDSF_5ArxkVe&0oqN@M0iuZAaIk?53o{bdl4z>)z2#4|Nt7(I##hEvakw=@jo7(#~x z)e3aG92rI^nxL4*U=Ej>>pWB1uv=|^ZbLD<-T+i2lCR-We*)BAmg6v#R3a??PKFEZ zH&16QJsj!4GA#k4-w8h;kSAgBu)*X_shBS-d#9{KHX$B`bS|G4c^hjiK2hi}k2?ma zKDn6Ghxu+a<^#Jhm6>=8yW=^2wCxnn0V!s|Wf|^1$mT#=FEcSZz6)M7jXyE9Hk=9844WU2dM-wioj5@)M|u#j(Vf679O?Eoel!-im>5LQEip+ zD{x&D5J~8{_O~g%5<@pE!#R~7qyNF^mKt#m9-w|p(Qy#@Tz2h>R3d)FqzaE0@}YQ? zUl5a}uFt`@x8;Qm4HVZxYd`ndJ-uJJU_-}nCe z^GJoAxA!6Zx5S0ftA=L`<-2*2R>_qqoI0j}G_>p9w-%;~WyHMLY}~*+5)t2AOeS7h zX4P5k&{Ki!-#n;SYvY2{{^blfMd%!oK{ryC{bOpKcd3_vL(;YlgfMPDy0i#)@e=YbizVP|YFPL*V` zfj)CE#XiXHG5IvI3qc{h=H!z8rLu-q1o-QpRv__P0eZM7{JY)!pN$fraz04tHu{m$ z^oNW>jUjsdnwUR1P*z1wx;1Y+LBr{e7kalDoz#s=XpA&{LI z0h_A&k@7)f904_mHcvXh$qQtV=*k*Vb2)Mgo;1=GUoS@77IzuJ_K}m@-Xq4!Q6~lK zDIZP(%=!K_yVfH0P7DwD1Ay?agFnQ8<(|_TBk4$b)i^iZ$yMWtCa!fOD_pKV<1o}Z z7k-W6Cf3uk-1hAzQf_PCr`>B~2KF+~3|z*I9U|V$?^6lLri4#G!FZ-Vt7_TA*?A8R z@ZN?3xb;QYIK1GQq}qEG28XLNlcBH}0mX{C(Isuk{P@nvRl%pw^YQ1Y{vLO<>_J{8 zbM3HwHRgiTuQ)+Eh`uY^x^sHvCg1>d4S}-}Dulkbw5NMt5VDGg&EHxja>;kGsy0#B z&&~-+O+QG<_jLMzHxhREKQT0^UKwnYhKnp`5iec^W8pg!sR|aL_jkQMYuM?efy~%v zip?0_XsS@mH%&yI_WF16%8K_f1jcsjoqY>`%v7U_Xi3}Sm5Q9sVz~&7K!3B&>c8FD za#%GgbE>%84-$CXfaLk@+z;~NjA<}z*H|n9>v6Id#U^wEG}@=AMODP-x_54TB)8Gn z_wRs{<=DA$aE5xwOnZEoRcuX5l)bQN>Y6@{Qa7aH*G`-fvWXrPP>RK$W;!wjXAfCD zuur0yaW*^Jj3EY!c<}5?#)h#?;utT)c#47+wZ=X7CM~be3xDkL<8+)$3(7pXZXU#H zFw6Dw7B!mxWj(Ydo_)3I7b(V8Q(&e6M82g5r(aO*f*(~lwZIhT(5h)nIn z1;rtpB=WB@RDZGJ{n2TRAICFS!FF8ctucZJ^>U#o4<#-=Zf9*Wu$SQ%kz-O_VlG|N zHeToV03?}1>RY<5#`dnB>npTljZfw!NT<%mE~730O6{jOq8eJE7L^JY#}JbWtfXEj z_L-+JUz9Gt7_xhq^vCB-JmuMZ+5gTv@tjN8mlCEZ#yyC!CJvVsDKljWIm;KNW3^}r zwjv-tboJ-&qq|ouuo0MXmx|M^abM3}N-kEx&dxEGx^6fBQRn$2Lr=z<(f5;A_Dh6e zvvS}Bn7(O8Y|8M}dfcgTWBvI{m03A{scIR2M(`|qi;H-cu}r(g=HRfVN>0dwWeEr! zGt`CysCcQB4y$7DZ$u{DP3}#7d-(@p>EhXjoLm8*$Sh-ov#I%wLMogB}_k0J+ra~RlvZyrFp^2x4F z`<8iTABo_or!Ac(M*al-p8T5KzQGb^$igju(>5)EP5HIE!I%8P5O{yT22 zc5kkwNAKN`i7^5>;=u5Ukgj$`b4B+}$azM!0)A}pF;~27?s!jdbUaXb+<6jq&!uPv z!6p*;mVQ$54w#(g&w25sW}dGW|0LX^{YJcYT7mz_99g$zY{QsRCHa%aw2#U zwmsbWWlZffH8B$L8LB!?a&G(1ou~DLfU?`&5}rymuv4Uq(04Q=IjsvrXJR6XkoSTReF|1OR2SPUJRl zo0BF1nEz|UR%?#Ml5)azozR{`wu={AB>)YC5y2*I0Qtf?)ondzL-c+AkZ+dIY;3Vg z&Qi5Xql`&JS|jd2V4-~V)$P|YxYD_{`jmw1oV}s+2=*Z4`3(RYRz2`_ZiiY1GN%A9 zBO7`6eq6+($UbJr0eZfc`e!f6 zNDFu1C;y~#M!BJBA+7Wj7z)%=e`Z8)7GiSu*;;2;4l7+ER~0I2rkt}28547ENl=! z$X7JVK6$9F((^l_*l*_iQP_w}3vwdqrVlJY<-#pkgUN(I9qd z)AW_wrIO01CkU(|BJFKt%fGUxL2Y?R@S0mP%jUVOObl~`BLUZeqZqitO}|b*AU zj0c&LOcSzwB;d;+qilWB>7oH)jY-&?~y!i!-B@}aD=EsmDQWx zQEB)bVy`4JLVzce;khHmxT1~Dj+>@!NGE+606DpThnZ;TJ+tcem9`**PB%xlM>>Qf2;|6FH;XVaz zU5B?Ef;+fUB-0DGI-Av*r;CxPC-6s@rU7qH>L)jq`(hRn-YKa2Yj){Pf-RamNcQBcq}=xZ?s zNJ_FIzmO&8SWjjyu|yZcp<%Iub09*WZ%^<{B6sj|wu@@!lG#lBHb3#^r|K6G_P$n~ z01fnYB0yWyeHwpxN%YC!J=W5GPSUEH-+}t(H9mERKKI|7;Qcy+N*v#Mb59qgwP$3D z5;Bjtg0Hl_&JucNSLoSFzq6G*Xp|QV#r7u8O0)DBTO2=`RFT7Vvw_N>jjgmvX^)Oi z$zBh0l$#(UYU|N^k-XE1$b%`HIjDCwbn(WcTr{2lk>^(nqg-; zYVzWiZm+YUe6B={#2-f6>pAOXL6cI3j@|GyLWqnoTyE7oMKP0n)tW39(faUMGjOHK zV&qt!>k!Hsw$a@z{jK+d{B$*|z zX}Rf5ANE0ckhFW8NF`{2_m#;G)iuwvU>}q37(?oB-oXB|GG0bLhIJnoTu9Du#_ zI($__9xdLV6(GL$v6ck)L}u;teP-a62*R2a`XlgvaEP3LL@F)k|JW8>A5$TibirDo z;~9G0gkZco>uxtN`5)HOIOeb~^n6p_8*g2vnZcxqTod1 zDe7sh@hye1hEOm8tkQ<4v=53I!!)wGuQ$$cQ`Zi z?G-dxXSJbA3}w>IF8|FKq;j`gLDO5+nd()n(SbvK99QswXXCl$K)pMrTCG=;k-?Zh znbq>P!EN-el&m|FXmPCVj7U3!x^(S$w>Nkf(ZZR`NnY~V{A2nB%@J%b+GWLCiTvde zE6c)BWKG+`BWI;4Qk0KSTIRq8r0h2aKMKNH+@+2;IUTSs@(d!mFejBV~JCTnNSfTv3;uJ_&EW=G_;{Q9pL{QQg( z0Q?qOi4jxgR;9&j=z&Uj6g7b$F-*~ag=%Iu$+=EhOIsTXnVO6Sk`9&IY4V5v%3s(->l_0 zn31A!s@o)c!LgQGh?lvwBBDx)k9rz56guIw{^YI}4^2frjz~m0ivy=;*0WcsYYNk? zg_zWKxtwH2|M)#Uc6dpb(7GNGhhjCYcnwb`{U76MC_ZlQ%rG%$dW_dIq?NQxWLI%T zjoA&D=&~DjG&(-xon$A!{Z3tGXg7JBSDm;QTp)B<>%}bFl{sOM2qpcKR*QymD~BSB9Xp2A z!ibiZW?2oaKkJ36=Zj-a&En3;+{U`~*20qSa=HRkb?daRy0X z$KMAkPFqX^gY9+0+KxpBNX|KAbri1coy@qVAy@31U(^8IfI0PBw0K6)hSz2 zfb;5u3CG{=iSBRB^7fMcg1+rYq>2Y3s_tyF0YIG&`Qo+lr|O1JC=C$+7HA@k#8O zMTa3kqFZ++&m>qvP*)Kk|E>F?|gYo7iSfQ$q^d&OevHoC-43-&cvC~3e@f=BKJF2lRHaiEI2$Bd| z+S#y34iVA>aV5EKvn%60u1aICXY?Z&I=OHA$(p$1#MaMlI8Hj(zKVVa<@TPe&Bco> zTg1q0(w&Kk?W#-heT0BwoNoa<5xi>>;B`tbj|gXTU;@k~i_CU%W+Y zKn9DShq%+hiSK6fzb39R6J2+h8-1@#oLe% zW}Om={nR~D%GKMoz_J3a;bGt&Dz>f{_q~r`(=U~BKvWUm$-F%dr<`QCZSi9Noz3#g zQ=JH?&6q1h>4?XXQgi>$uXSsMY^pFjU{)$fQ8V%sg=?OXIV}$CHxfPdg3KD0P6d;F z&*RO-6RQaQM8r~)p$u{5n>~s5tnt#Yc+mjA!!tE`CY;38dkQ4L>s>@OY?Ow=yEyf+ zL!;a2Q=^Nrb$5HiY97{KcSbJ7`l+udi~IRB4t4ALSa^)_l5IlFwmhwA=q%tX0jT=9 zG~u`Am1Un!a*a@~fvDT!x}n++VqzO7kF1Wkl(sOM0M+{UewVBcKD&P2^-pMtr(P0z zy(L1s@u*crUTrhL;FYTCuc4K+)1fDtLGz9z`A{<#4jzKv)ZNfKr#iS3tX^dOZ`~^> zR*ju4D~%*6M^tee{z)T$HBOl`G?%c5YHzf;H+XkMe4p6SP`uF(RmZGgI+N;Q;#C^_ zyIZ#hgk^TnnHWSjDyN62VGlM+tschPIy2XBAV53)=dM2hL`T=$LN)KgaUH<&>eTmX z?Uzx~5r4If=Lprb_#XN~{B<=``AlLH4OVc5t6XyZzX?7pgKVkAI60;L)bgAFm50zB za0c7g#pfcc?7=Z~p7Kg{_jT1`q`h{C9oLUGThSmYh?pii!;>w#Of1XWx`gXS!|O^f zvnq{F=Ht7JJC?pBnHJR3+ih5QgC* z@jq`=%YSOXKTfVw)M5W>Korb~du15~CZ4AF% zf>(aQor|9yA2`7uh@hr2wEkO1!p;^-R(LnQ0DJ*Ez|`<+JR!jS`{N*PZzT>g^BHY; zPiHwgfvuVqVmFa63ZP>Szk2owPdE7pt4q*!M0rRlvoXVm;K`TT6IGlAFDpYp?c7$O z^BaF`!2J8C-@aFWW+6Jrl*9-68}3Lg18o*ee{mdaoJ@QBHhkwib1W>c%~@`lNh z)!yRzdgJ7Opqs`}vlsG77d9Z7Uji=nH&a3Wqqy8LHVfdylR*@!<;G|SQ?q{94$^P2 zvX{q(x_&~jj%3$q15vFxP$l`)^ZfU6SgRutvZ&wU4n3DtUQ5^CC~@{98W*pK39Lz1 zh}cM&yG#UrdMyMW+m1T(va_EiGwL40mS_aRHCjc_U<7MQ`cBeq{tlls+YQU}2jZYo z(u_I0s}Ybf?e=?i7iVamh=H+LqY8Gk&{8QLRB=szdog2Hf^5QXL`lwhe~$z^5#s!W zLY|7_9Oe`|lYdO>fo=*z+tpGwY%=jYqxtJmXrRG{Z(DJ|XAozoWv6+1OTso>M;{Zk zfj0_l|9$uleOL>;Tj|jP-9`j0Q&%AcbedUu_2dV)Yo9XB{06FQ(C2&;}o@Oq(_veq>{mu|z(9 z@hMM8a)yR`9eCbA4;Szeg%6F=%#5pXX}~7zsqyz1WIt2&#eR-72AneFnZ#&v3Co?k zBO2g*kd~Un9F=C1>)hOC9p~I;yt~aNJa(*+JV}{eH2PbIdS!$s(cDF8!e8S8yaos3 zeXDqURQ=`el-77!%iCp4&pqx$ljL05XVg=G7QwwS5?N8MndM^}k7eR+LlO+Q!X#A$ z`an8?2;QeJl5p(|H11nv^#_m4nJ16(xF4XEpI)zsTW(DZNq&wQqx7zPIlalJHdSR> zUruKdG?W6(utc396eOlZ((rG1m8MMBux94gXqyuGOH?q5^$WX%L)cQY*M>6Ul*8dC z!Jga~iGAvE&v%7Or{V#MNJZXS0 z!L8+0FD@&yjWtQm&RyeW&N?R-Z zojp~`4PT6^p#e1kaJ}P)X}E8)vj^yWg`Jp{p_h2N58e-%+nuYhp!q~bie`c$#sJ({fR$0Ae z<5ulEi0Sp=gsH-&zYCX8b)>4QH68SuTlZ%|Yg%S<5oJZk4$0kpeOzrZSsBpkX-vLl z=%|=W_-~+Nb%;#~pj!Ap$9q=yv0cazc(A^Cu;%XC##7TXk-pHBktLLKirI}Z$6QT(cmEiQjoYTYB zs;(VrNi+paBKB5iQ&itn)&P9{f$AOjc)Kl%>aEW`zSlF|s-Cxvr1E}XZ$LFIQ;w^d zaFb1%q*@Vl1pFw>8s=jI_FxSyhXU>1uSxbm*pvEGpqzYyh#((GiCW4l%MJ^BU0!xm zg4gxjy}WcNbG|9813mKyUf$V_f^FSKxH40{Mu=Mmsym_}yNb({qX1TpwCH`sRJny> z%oEogD_MCsYgv^{+6UX+9IAo_?I{&odgRE293nof{SlX4T+j^JpRaED7VJzKZWC$- z-ToB_R1jPof%)5Ni$6$BA}fx8rKj5@Eo~4%>s!PEi*k6dt2Nli3%8Xz#;c8!K;Eu@ z*kGa}gSP5l>!|)j?*RTj{tHc<(oT1&W2m-#NZUVm*0V2ZPiVSQy>$%L2M zE4ORTkajwR$=fGT-GsVA6u= zyS+xouH`R|ziB50wyl7w(qD6@Nw*tL4xDxonnmq%u>|>jspync7+5?1z_j+??_-5&R7j8=XLJC%ts@M67TKq08j>yv&^ks5VyyaCBoT{ zpeRXsQ^n_{)4YXhTAp;VWaNIuKpv!P{8=842bTw?Sa{gP&q8nQ*;`Tf&y(lt+m3^x zw5T;=-b)a(^r(ZPzCVwT{?7+-N&Ok~$Pd8x`{Z`wgrgV~`EgGt&?S~gXt)UW4F3LA z&RVjySF+sI%iuozEnYeZ41FGNl$2+NTgozkAjvPw+Y4j{(p8GdGLZ+_CKD`wp=dsx zm*%B!hrJg1JW~SZ+4Q&45q)N4FgQ?0zmX|%4hup84oJd6s z;ZV+|g36*xR4OsoQZG5sYj7Jt;+~zLNRwM~J^MF7qC4I(fR+t?+}q35j~A~9T|tZq zJJY>60_Bc4+Kf2Q^SccukqAa21O~7lRqmgjno4EdMzZybr4T(K6c~0sE^Be791o2~ zwP%V?rVn4@KFfhk`{T*$NvPE+P&FyA7=LT>k{pe3hUMtOdWM&dKFXzR8 z_JHEh_d$+k<+-fX)s$ zB!n_F+$L(8KluXBT%EdqAp{K8e4;T}o-3#D1!lxdwK~M&1r~sd&d)7;#R)hbF^}B7O%}Iq@V#rRTTB zzr#Rc#x!E^Vf6s8d0`H)_6kKy^~7Wq8uq}rE+MPvh)T&XrhIhfv6hF!6z5JZ)Dfbz zpcFMi4dk|3Y!K4zgK6|$sabOkn>?~;1poC3o3siq91iVJK?ctqy?cbSd{&-$^ z=~iCfol=u4Fb7AKxa}QzcSvImOGY|FyWZUY5`6e)#k~UvPFGv=xda5;^5SZhJWPbw zo?k_ph`z+?!2V^PSG{TeV|zPUQU6v;Y&l9mmpZ*+Mmg;Rj;TZI<*9Gf8b(gCHI?tk@#{Y7rjQRO0>m54P7;OO-rI{ zlcv#=dLj>i&$^6)6xP0BrojXkuJ{!CS73_NNVkDGxXgxZI?2J*S0U<5c!nfSRne1H zo!)H@vu}_D{VTh@X6<65KQkv3?t9rWIXMF~LLS1Vql7Q1hb`2X0voinr(HAQR*R6R_> zR5z|-751DmN87Tor!@G|?axh54V<4n_}dBbHyw7_9W&;IoHR(x1hnO1*iFm8*X;&E zm5QfeDVws1{+Z}|!t#9E_{^H^3R--B$q%dg_gjwRX=u^>#vYS7&B0!hh)B!2#c7?# zZ|6claZ>A)!`TnIBx7_2@n05!+BYbfaN!Z?DE^cabXjSy0!(2w#sWoc3-$>Y(kHg# zKU^Rq73JQRC5?e_H^^CNYSTIzRvqfy!8AO`2gZyBLJ3uY;eH{RHnvftP7p>ue|s4V zT9jWosT<{AGx~L-6&bJaT8a2NB_cSDi7UJTN~8i^jL0P=$j|(DWDQ-$3IujUJdr*S zUj4*h5I^(db5M2m$a$m4`7f3`55t|LhH)kl`cxg)nr=n}`MF4mGA_SaR0SZ&NIay* z8MHo`j7~vmd}J`1M?i$m^lHi<5FL)y*KEuH;jAqzFb1?s9X_6M#x1mjryfH|i2mLH ze9yQ;enElwhKU%&{ZGoSSKQ)yR6e+%oz~%NGv!#7Q$%1P8%DD+ zitva;h`0f*)S-a*g3unJaX9+=THL67_ogzbCat|L?pYLIS0#mlHClk&(qK0QYvbaV z(W@*~B_~jWZ0v1gbKfRKs!jQrf(t>j+NRRpx)fk-+vs@F7r&vW8v}ndwE+QGEO2Y8 z5bt>_?R9bXw|6J69@|0ny+P zOxSL_YE17yV`HzKe#`ljuvt65i@_nLk*CRZ^OZPe!4M1i!RchKoF zq|L8;wrLaNs+Z`K&TpgpxXako3uD;UbYoP1&*!SFsM)et(6BdNi9T_%beyU z16#Q00UHcm8TBk5kjd`aRx=c%h^W2k^A(hB$y$NP5YjY3Q&#ZF=i&m$tGR|`&}6*R zTbuh6_Vj#L2)8odBK9~Sv&T?^HvOG`xi-|O_1&fX>TfdF-PyF!Fin!< z_X<0KT;IMAc5akuWL8>!e11-jZg$MUkYkL006$L?!&7-Z_*8cv;N^AS_Ym4#LH|IM zSc}N_`-g{n*SDsi==npc!i7a+2aul5a-v>2`dl5_kbxgC?e1?nB(G4a#bzXo3^Ncv zoX*>Y&0}wfTV6ew9^Uqr-*(r$RcwH@Kg#7)M7KP($3O_0AiGlFfx%v?pioMgR|U0iAYD_+eF+^EXVEdw1uBvBKYDubLZUR3O3jGI`zsa5w1S{g zk`cJI)X}=%uUOoyQ1!zta8kiZjFo!Dg;Fq~9CiB_Ie#$WG$w)qeZxJ!hU!=$AQGj~ zN;_j`-?X_kA=fbPH=0H3FNM-?u=MSvwqqC0mGp_zei$;Tuk_*h@Care308Kk&FoYDz8irV|Gw@yMcFpSWq$g#B!!PQIktIIE}Ei3ZWrIxsrT zIl*zSdA8WJ)Yx`(u~U_Vs7KMvLzNP$n z%RrESSL&Zy9?c3D<)l)FdG`BkLegpmIgcdnS8jj@2%l=`9k=5~H#Zt^XeOy?q>fw4 z8gx`f2(_xE{iQi3SAEw@lQ#R#VfSRD<_WG!*8p8)mk+4ZTY|E^h*t|ru3iA4;5EUS zyHMM?xah0!&^f#SRtQp<0-SKAmapx%dH%t4_s}Ik?W8H?@0yMx=5B>+n;Ak6ZxUWZ zO=myT9j=b^!UuX(8YS0=^}toF6V3!zM5(#hv>(&{;8_N=_M;PL|Dw*{!c`|lh?M5) z9gs4*!PPR%x%E?$^^0MD4McTY#371fibdb_P9I!DXfE<5qEmg8(Q#A}xHZ-9R?i#EthDlE~K=`*dz^^Mz z(?+hBcA@rGkn>@ekWwg-j_GjxMgd1F;=+bqnU+c}%HfV+IeZxG8R(=@ zNb1+P+i%pzAN}BW*&sx~^_b7@IH;m;_O2$#3BLnVS2u|RKGSJ#V!xNhBuFId)xhA$ z{}>hFe_+}Y=pC?=w(<$U8N`jU2dRi>ZHlQo%;LF2d3IBSgVqCIr*2lp4BCl z;Y`&pAz{HnTrM*+xA`T9i#e^@MA>Xj%Ar z(l1)H9el4*+IH~bHV?VM(uu8{p}uO9_YAF}tkQ%~0Z^nY%64jC7`pO8(g=L<Atxq~TN5s{N~qiIXZ*ErNpGobYiE3W?`$@fXyY8Xwjgms}Zixc4(A)I+Nj44PRy zR5BkKfTxiXkMmGSt8!f?X z4*M7B0PZ0nplzrgn_qOus)HnJSF6e5s~)w;Uv_I%%h>OP2Q@-Q=w95yGp;K{>HZ~X zKY4A|jZ*DC(Z-y=I>2L$Unp_1;JOA@e{;>a+G){mFD2IEagW6gP{Oxj_V-3!xy_>~ zC~!VdgzSLW)&Toztqxr#Lwic4>n|KB`TkS80t9*&&wba%7I9pMB4e6q9e;%>xs@c5 z@x@4*u@63_mky9RdA3W(9KmSo`Xz&(gW6)T>tf@Y8Wp1uKs2Gt(PTqrH9w1MI}EB+ zUtwqgCR0_Mmi0ac!kvM5Dk0<%+d5AsOqQO*3{}m6%`+>NCY&XGn;m9gqD+^L9HOhM z0Z~PLaGmxwo^vS-zUoY%wIp&z=HRRj$Et`8<$r1RNe7*dZFOwhw(WFmn@>8nZQHh!j`hU0ZRcd4bH2R$H>@%4 zIakf9x~5m+*ePCYXA-Rx=>E#KEumEX3Enh-V9qS+KvN@ra>u+u@xKZ}YA_TZ2<=Ey zwYg?(8FMI)asoZ|p(eU^Il7VyM$3T&P_r)QvM!ss#-5n6u%r=8prT*L3v#cQvT`6^ z5DHIgNd7gHm4oGNuELMv;4ZDAgF0DjPM0f4CeF5)XEHAR$!dr)?PXOp-WgXk6|QF3 zM6R#GGa4}wr$2ROKR=*{=u-?~nYtpHUAOCofx8%5~6s zv_cv4MM7UtsUc{4dW6H}GM5Ok!CLdC3QVLkcaruJ#QVTc%A`V|umPMg=h zni+XO+!7w60_m23TZ!sG9B5TkHdwDo4!}%)!Kf0!^E9a42}FS3$-mGYP#|ije>4z0 zm`M!Xs@0&A4_Mb$?#j%HdNTYcc$uCZh2lYKzHEtF*))JuUZL(< zG~PTQt_LzNN7FWQe>cuN7@W<|U}iGlXf<`(ca;{P!UnQc8SOM*=g}JP0jhGgUu>2e zGABm_QcCJ#CU4UR(^mKhNQ%|U5<1dk^uW2?Y=k#ER3zh}GvHy~`Cxu3?u;7NO4_BFNhrj_XW=zp&Poi!P@h(Il~wk{SCUNr}T+1T4HyJWx*svap>n zuT8`y`a4iPjViDq^OFs}pJ`R67cx&s5ceg^&qps+^$Z$DY#aG73VTpr>_d_OOS;Z8y)D1td6{s z+cB!-+vH>iK4gjjhKa~Eq()A1Kg&xhODPpC`kl&13!X%9p2v3Fh&TsBt$;@i5lY91T>Oq^P=h~%{{`9mU)<^H#3`HL53Y-(l6Cr%~j&U!WiMgMnS=HCAkLKCg>Ny@3EGxw7@J$hL-ri>FRH}+xcZI z=aMUiGvR6+;)O4E{7;snY+)z&{phWiQ)!l~Y97(@;G4!*00^V~9U8sxh$2h+0 z3{37HmTCO%{=!`Hy>JVfv|&_c?-|~7+K8)?qZUT8x3$tqUSt380GGIhmfN;~Y$vMz z>N-(xp#UHKY$#DJ_raN;0;tD zp0d2g^ctl>1ElvVlmX8v@7jY6jw5NJ_XtWQx-b0im@E(ZogG-rkynmJb{3s!l;UP& zbzO*@N`NIFnCT+K!Flo#y_!eC`ZmbVfE5->H-$+ytRn5nWcVZ|4-^?fmfF0`t=2%rZJaV~5c#U-e@1^#{{dI0Tdy^QHLInS`G4{Y+-L zC*d(}c*dkunmeZCgG-0)#EX;v&eRr?ziJ3R{x~wTst+<+E!}PH@I|(@ylY`tI=UIQ zEb+#c{0ba#knG#ibM}LV(00Pl(prd9g?iM`tc!ce5S=_Ipw#}GE`#zgBzOOU%E#Ue zL3>}{c%VD~{sf@TnS}47#!z?tm)uC&D86$-_ubTva&#CyB2oehK_pWs-`S(2*HoJ( z+@;PC-$eV4Z&%Cx!_L4hWMh`{qG=B$HavOkc`971J*I4FaSi>Jx0GmgzzwZu(T3nN8!4LqAUohIv%ssO6Ytnt(c>F6(Yu>{ zn~c!KB~;(d>h=y~+Zw!&!t!MnIa^Vvi8E{9Ab_P^c%^)1_>IngHOdD@z&f%2%6mNf zqlS5O;99U)gK)(6xt7roru+A@p{C5>qVE8iGAzyV078PF1(UKK`F$`2c+Ac`4SXW?kwvWw@x$|;f9xa;*qBp3Jm* zbzIBi-FcU+$p9hWljc~;ij!T<)aQAhL-x?jrUb zintW+mSKMbTO#&Yf9KWrLuIOmVjM@wTsclgGtSB+tpiev8T+vDV!g%d>R`yUU1xwm zz|%c2wD5lH*j@5SOT<_*(N)<5r3>DH@&ag?Fg_<`C)jKrTeByiD&zc~8jrl>OEAUH ze|sbPz#of>(d+AHG%~4muR>`I1E`A>90o!&fz@*M4ptq%F@{#s!I=Turq&p`wm1F{cX_iI)~%EzW!asU)&RGeP!?NSe`36yu>`dGfvOxl#J-fJTb9#pc8 z79AWt;?zW^$v? zSaUk&``9I8`+B+BanMoDCO%zL`M}xtc?<<9`rp~qtm9s;pg$(J(NYz@S^?eRF^0Ro zrGD5glb+3&OUl&+3&j&R(7oF{pLyYQcn97rGeJd7;1vrBQ9wqbCDboEkh6Y5)f2yN zFxvOQTGZMd%)3g_?gdFyN*VL2;aHq4bk`=F!9#6Xq3qZ7;_io(a8%A0LAWUC|8 zLH|lFM)UN@|R7bJapvE+ltmCL!LYveAERg0_fhf^q6vhg$6D(aDgt)7XBHGO;aXA6 z2`jX9izw0lkfp)=$R<7Ia;#=Y+E6Ww_@hr>-XMjN&U{}M983ADu=M>wQed14h6;lG z=`uWL5Z6mlZU{c0umE7LIG2b^56#5XGVi8gm6T}_jH24zP{0iAEH`)$#;%r&q-J}~ z^{^2X&A&Ju*>J5=*z^`{e-DpvPNv1l#KNf#q^^UX%WBgH%0;9%)5;2^uIL)L=5xO^ zlI64^?Ymt6*6BY}{IKCm)@@nL2}d`wCC!LfLl6XFGoTtu4 z(xJ^}#ziSB>Aa+E%p%ktC=k#OTv^XQ-Maw7FTeXfs8xCAYJ%7=ses^8u_ALZ45yUo zW~-@UM2j7^(rfwF4=TIjRW?{Trfq~WM1zEZ7h)NUH0eW#VnWQsSF{)5T;kT76C=b3 z+17|1tX)7Y4?rn|r%%jvz{tNB?VqfhSy%gL&%MZ6{1(;;VvBXA!4G#$)$pkmPF=~k zrfP{EB{e5pn=|=-ccMP(h$Gd$w(c1{$9EHrRJEzZV0Npo7!S#9i zXi5%{DIXHk>7;31g0T7b%MpYUuyYIQOIJV_vw2H@eU}9Qi|Qlh*B?JU(NWVge4&I< z(i}nI3xs8f5#k(Vw7-^K(eXQWP+0uc>i!Sx*QT&3YL$2hP1TX|b>qp8&xz^0O6UXH z>#fMliKqJfCt)KWFoBd=m6BDC<5`B>Jv?Ix8B=`Q!o}=MZ3YJ1L z+UB88S#J8$QAwDF)*_>hsb>1|W~@yR?qI<=Dh-lbY=+B(qe3YHm_-!#u7XAotchns zAX@1?E;kLVUZhRYWrSR*8Dy7zcXs`B-$EPKG55jINm@_b61T=JV2z}}L)CP`Ils=M zJ1}vn^~i6$s&;ZJ^WrR&{HC{wJ;`@>yD2ZvP}dc`dzQ-FcF-fH)mY?@#f?KRbUjHj zBUGfaVWxd?Uw!mU)XW73v+#WqJF0EsM#$_|8e`8`In6#f^}e)m)Qx&XCb@3mQBV*B zI82n~IYB#`uv1K*Dr8&j+UxlK&jZ?WMHyVMXA1Ge>L@iEC@C|5K)PcM{Zz zf)f@TSSu*x#OjF)8Yr9LiZ-XrdN?@H8=8xlmwZi?LPz5VFd@mVkVpQhkQWAzn)c{+ z%cDq_))LWRsP{{<6kjrQJ1$y6k(IHM+nA$6?;b>)Z4ztxGK0BK8urU*@DwSi*1dq9 zXJEK!!k_i?Kvovdw`S0`aGk5@M^Yr;B_k8rw3z3JFgWMn(_*$5woOGfPE1dFsff*@ zz&IwotKj}PAn9k6fhx%8Om)A?Ame5f7)k3O`M}Fidtz>JUX%GTx?z-FpgY^pt|N9v ziLGRoM-WqN+hSB1^B9hXf4%eM(>dZDbK+C)7Ey#-d^4x?+Iji?&RhLn>pM!;liL;l zLyDlHgcH{NVmeQ^2V069aY4umP_N$VoTnRxN2C@5V9A-3Ck%k#*ut`n_CDA0Lr2f{ z7ZW4O^%lgD8MC`E?C4#KpkYeS1W*2yl7$P;WEku*ujb;QW*nB7TZ>B{J&G$AXT%4gmK8F?E!{sXJm8tKe$Ow$s`6makwra8>=KD%Xb2+`bWg&j`m}UInu`JFv?&tk=aM$z zbBaaY$&HP+>nH?zN^=GH2zr8SnUQYGB*AVqGe_3HZTL&(sBxNlxExc%Qk(efPZl6U z((c!NEEBKO<3pTiMWFVAs+FdNh53>K+`&-vASGcc!G2+OyOA_KR8$| z;WeFIiW=TC&26W0ge4pDbW&=BlLJR>2a#a^O=KhJij;gXjLgj~t7kQKb4gDIKyO}y z%TF)nJ3RzZPm z(8)L1bh4SPk^G@It0mO8crAT%D!?$Mc9n9ev;GJADJ;{4jrzf+%z!r5$mS6DX%<*#fQC7R)=-WoV`ryQIaElOR`|RVfMP%&i{DVCHg!< z)2IegWegob zSnpkb-K{)pE}J{oC|_5fzy-9YoM=^f>R(3@U6x`DE6LAsr!8I`8#?fFa_ni!9KGtY zWBmMz>xF%6ItpTk-W1a-p{q#Fp9ybfcmQPPcJ*S@GLZu`pbXUgNlnw1`4;qWwBce` zl3c`PJjaKgZSDah9*as{c`%;&OFcgJO)BAy&2R)@V*;NnSJBAtiC* zq?ij04;r(TzCQEHX4cOfGxdgq98S4IZc6ffi^-WL*m-->)?5AGb(H&+bKIbGh+<|NN}^ z0)79PYmxG8mf!}kGyGRgt5R!=USmM~#(cj2bukStB>CYV0V3(=47v_M*{R2^8vYJQ zXp>OX`sILx891_oYbVF`{tMF&fGGyOry!^Nt7S{(dF)L6&9^-;MxTN(TWV_O7K(D` zSFzt-7=zBH?*vGyhwM>KirvoLfreus0GQYhBMl!QiQM->iabJhBSc8j8`>HAgaRye z+{XKEChmul@lfSk+j_@|5_8+s55n={&d;E@-KbqAQMj0}dwL#jBx+uvcgA~e1(juQ z@xyVpZSV+)-roE@VH$=_HCvpx?2XEDa-ND;Wqf7UE`zJWsG3dBQ?i;ro2nITTG+Q+ zbZ95wS!0Ft(Y=~CuYz4&bPsQ^ih!YNqGq?0W=)Z*!+o6lsXW-OVS?Wn<|{=@Mh&YT zlcq%Wr0Nndyf(}Eq&jcz5eSb=wR`D~!%a4Rul-^xBrcBA-IeAp6?8Kp zvw*(-hB(^Pm1SVJHT$QPqYwn)9`YSmnG5}O@d`KEg=pM)nR$h!2b#33o| z>$FwEJZoK&m=!C^L7w@6yoU|qY3pFX4{rC^*ZKjXfkLm+rmAuin!UF{gO!ZbsngGs zGSEgKN>(FgrW$03tkrqh(~;qm!SM@inA8jX!;q2n9eIUs58xSw!~<0}#hT|^qG0~- zzF(v%9YaD6+kK=yPml_qN<~qqMxeGTGDbVMo{#&QrVRh`mExz5nVy{{+gM&@GqyZD zJ$-&Vy^Ep#`ApguZ^(D<(e|l}?n^tZ|N8mZ{r(O^vq^BRrlXm0HEKnUs8?n}zb{eBF!1;KH~@dEyQSe-oS1)Rtq-KWpa3Lojr8zS zJcA7q)tSSo?LriR?%xXRT<*rHm%l5hE6uiPYUe7!0@Y^tm?#zUlatkr{z@58^@*eu9thMRlWID zbNuLKe;RHfpJcRMT+jT1((2L(r>&LBspb5m!LA({WSuoSmD~Ogd9SO(SlV*8Xv=Mo zV?gVw0M;1Jtds$k5ifSj)+@vA`F?KMcRYa`#8o{>NX_I)64Mi&K|AM^t{kySFb?%A zlgd1SDhW)jaCPP{O}fhv?g0Krrt&`q@>HIqW?M?f&>E0!3|21H(Uhv zX1rvv8@K|#*MeL1q7pHY3VWL>ZP=66i!w2|=qy=(`%~xo4i&Nj2E^SYmXa*gU5gR- zwea@^fnoI_%#7?(#}vfbBHR)CgLoBTs|a$ z=#zRMm>e@tRu;tzl<=y$Xl$Na-Hp8(SQlO3b7uus0jzBx7kA+`0qI#O{nYn4Q+c&t z$3y?@Hv|p=>846cK`Nu<>v9iDS9q0;2>I`P(+hqA6Y$!t`F?-9GsxzL5bkG(6%WY- z!!eS$^dV_QGhwRf;YdhIBg77erKWeQ=Vj9+BGDGshq)bPE8{fiC{3z2iSO>v{n+0jsA$1~Vj`Q&%b^TBLZU=mi)5bYWu#LHd%`w$}>UpXk>uY{M!nNBIF(_TUnR zFfFKnviSN{UDL=EC|d40*qcEIx*1J(M;jcVBCvWvJ>&H)@?b?morgrC3C3w9lk4 z{N}McPMNvW9r14ga(sQa0E*9U zj(5A#Vz%$!4Q5%Jepa_pRv5!2F0Kq{O6g0>hyC^2I+4G=435X`0BNl?rr zzJ;^>$j+3DP1q1G?1#RR=MAF!_9tZE$Dg$FTet#gd(>RNUCICuEJG@@=$fDW)G=sq zE3?4@NnMCAcM$M{RrTz<^^;e8{pNy?C{&AItyE0Gj<{a`7F}?x0b!Vt6^?{lEc8g( zde??5cVMiMkz?Nx7)X@hSc1mk*qDezd8aI}Z60{3fNELOBYe1>+fjk)T>A`)vCtmZ zv6)CJ17tnQ`-heWJO5x9W)o(KmAPJY%3oULQoHP4MK~qXLjsL3v?hNb+M1*M9(1bL9&E_??$itV|I)K$ z5Uh{(E^mm1?U?+S3D)Apvcy@dG;FF?eC4SEGQk_&Zl4AGwf z8peF&%{;~!d=8wl^4WB)9V#zGB)$uhHvIK z{f#Pd%uePku_iMu2o_~bIF2wmrs^#{Wwo8WJ{|r~s#CfxNs^BQ#Td}0+L(YdR`iaI zNd80*yp}MO~sUMDFhBxWo;m3CmEY7^NTCTF8T%3j*{nY5yYGuUVRb{W1)4|w+@h*MIQKBw$tU{Stl zv})?DY02Z(Pd_?+$ka^#dz;>0vN4_;sfasS0xmyW>TEoivxwyp!~<){6W&EFY~b<4 zls46$0Np-w2grm>s0+`q;g&r9`RUCH^WyK_kHAVxa;t|KYH_gLu@`Bt%i`mC-#{Zc zVzl4sQI7AW7M;DdRpD5*d+JZaH?70DvRSYEg#B(hKu$VP;W;W~#M=SQqzw z@s%rRNg4b@dh|J59mHLqh@;k&wI7|4L0CN#q)C0)y7CFMl#fefFGtW7UMC>CQ(Peo zI)~G%&!QM#m97!`nW8s-ljaZ+hSa4$IM3ALvWBYS{T<9dDrq@>IJ5@YJ7!&_%h1># zP!_*;FyhAEv9)(Q3SiJl8&0xwHy8IjS(M=Q>zD_7E;JNk>qY`N{o~PyzU42?1uN zJk@8~el243EPVm)U&jBP9BuWFzCDo^0snol$bN1lCFE=c@cVdwHgO#(fAj#dzdoP$ z?$7>#NquD>0=0`K(kO(B?svvtj?a#yKYFsIeekLu_Lg2~gKHNB)wg;B*X3;+h-ePZ zBw`iaxo4%WgT*qZKKzsRwL|F=wSC6D`$c#x&@%Pic?m9EaEJNM0NW1gW*x2bOKDqB z^66`jrMo*qvWBta9`wjtcAbENk=sNmROh5fVhYiN$a+=JWqRDd++7e~*=A}ENx_Ze z?Pc|WD^-pBnrT}cdT5QYic)j#GgrB0sX*m^!FZ1A&a5u|m&iXu5N+y;aH@K#1Y?rn zPy#`y7`uOYdL$4C^OSa{wt2iH1%Rgfwu!A&c&v+A`B&~clrz>G5CDM53C4c+0{sQ` zElu+X;+$n;v0W^^#ZVh}=OhJVOa{Eek`d5rcd1LlX6=Pt7}a#z2l2`2=8fZn{T5hMj<@L8Fs zW=a?NR)3WZk2xECPSM_;+;nPe1>#&5#gwTcCB11!UPT=5;cNN9(3LgVZ`&JcF{CdY zf_p;$754;lwK(XtHvmh=mUSY`GpP`%VuM+5+POQ<=WVbzPH+c+XE$TG-)&6rc?j@i zMrBoiU}JL{P3HM;X_T;qI*yoR(N&OE+jSIpVB}$>(bj37 z?ChIYkAezdusH*|+BB1PE%GqQ+(u6#r>-6nDILus*VPYYnnk=hVin*$ew#(9U@B@? zL&v#gqBFkDIh&qGIBVHoprbP%(Q{Rwt8RK8?u)zF!Zx$wY z&*nfLo{ymJwEjvk9HjUijDXA$n{RNiXDsF&p#W}%+^zArPdY0CLFm6u_!61AB(ceY zYHj@HE1wDYgOqgf$9y=nkzeE;*iQyR&82sv^aa+Fl7=mr)XeUl3Fa4chbNiDnPpne zlsYvCE?ETIa4mwpm25jmI6H-CD$byr+w=k6cd6S>N z!cmwN)PO?juinp~*)05Im*n+pmXXZnIV)WTV&YNKOAcpg%pay4k%tdUjhZM#vp` zM_o%gwFQ>fnu4**gBn6q_ykEb*yfg1Q@8l@S}bUN1^R+>fFMcVoI&o#RtB z(HjQf3kmR>+ny@=?d*?rOsto{Pz8kkWQ&OIYgokt;xIsS$!_EdGV@?$um43Vp>lx-|{!x@-k^`H{W?(fVSBA zws==+`cRx4LvB--&6rjFXur#*ua(s-T=QTDWppqFv$6C=KK>xS1OJ2uruoJ}>jEc0 zWFzlknJ710{1HUPJc5Bz6BJ#~kkL0m7Evtn$I6czsKN=D5IVc-UnWQ=Pm0|f)w@k9 zOB(+7*lvctsBR>z_Qq?IabC~tZG3twj|*(Q)QVp2f;2hcEE1J9l&I!etI(vkD+rlorK>ZY zl0opmn1mvf;;HK5vqzx2@J6xDU#~lJ3cWaJ2%e?28(U=QI$j&Ubsu06;wHPS;g!VQ z@+K==G#--x^f(nLW$G$m3X^<%&|@azMZ*p zq4i~|*oQvYk|zu-BvyH+jT2`c3|Z~HO{vjaD4pzK(iZ*h4@6x%EH*WD`1w>}9+N~z z9(X+#C+h9X&pr=KDU-a@@17#YRO$+7y7V%{_?s37lOGzKN=z38*O{B2NtP9d4gKky zHP|Z>oGFJikWlzbqvuk2pbRL0!pUZS9Ak3mEkQhohg$3dW^}*8<;mWCJj*IYPR^cOCO;f1IHz^jE20JNT~2=<;KQ70#f%Wf!52x~Zv4yk z8J|cRZu&QnbC_N!|4)es&{VDy?PRc8(G~1LUFZ%lN z@N9+19>ddihbSx}$Yyn2`^OK^#=l5!i{e(Ty}_YTS9v8W?ok&}4#qKx-*g$@*F&k4 zY9033p0Cv94e*d=R-yqsa9o0Hs^^OD(+eAzs$YbDGZz~gBq?Nh?Ys>_|4Qs2f=^9!Gr-s#_>Zp$Pmg#tdF!c&>6SwmU ziK)M{V)OwD?Ur5gq6X+{kcgftkT34EeBHwqJ6hRdaEQ<%Iwm7aOENk8$N%m(dp*I6 zk_6c%UF&l*FLh^*;*Ow>@HcAhJy<>)@OjVQznLJP0u%S`WMSj{Uv<}-9nt4(|E~gb zB{ZH^yZ2A{|Gm~U!zfKK|Ie`o<%UvfZ-qMoMnB3VeD^MPPVP&VA?OvMm{rb-jzBxD z`fD+4>+CKjs>fT7{|lYmFQ%Rbcx04r_6)TKekLAxa`(8z2(EGJ#QX8_0{C}-c7#E_ zW29LkteeJM6NoAtSjG1Q{7tumX(;n>q4f`OmyDPs-yfU^lg!^qtg=1nx>r>!gO)C zyotn2qLRxr4RERWx}i;5((Mhl)IrUK*yB6XNopa16Bz>e$SgTs6-Bl zzuEOG3dh0;G#ny%;v|M7F25rUHVj8ij?5R%iBc3O%&6~&=v#C`i`u6PdP_KN=nA1a zMM_xxBI+cNV9k&*zhX#zbtHP6h!-bhOw+CBT>HTgD!r|09iGpun~D18A(8nFk>+_N zS7Iofyw9(5n&9!fo`Zi!0glugtO8?a`A5tx@tyf)=q~)`oq_)H2yV5%UNlo-(p=7M zh`-fAh@<7p>N4(cn7n^9vw4UfhtAPHQ>nA*jB&zPlg7-97KtM?lybX398&e`TA7A4 zH)0gz8vOn7H9~!^*p$-374f}~g6%(Pxe6YKTkJo`=^`7w^_(eW1sLmK2#lfuNFP--N%dG?kmM|i z<-kN`9xJg){L^gNgMf#oI{hF9Q*1ML1qN=sIm3f%s#GVk5Gw0<8X<^cJd1tPpWuHe zM4*ocWYDc|a=}y_FrZAc0=Mcl;((VVaDH3eQ0;gG~fiJ(&lBk3dSS95OSJ#DD(p&)*B*}L;*{`$JTHp zEwl2@C?2(%61OMSqA0ost*bzzmBOpi%-On5Y-eM0JOL4Ef8<~n$l}fx-H)1m16NCL zqV!jyH%ru0jEYn*u;ajTBb?_72_p?X6&jErpLaO`3-x(%6vp#an$R|`JD4d2nC>V6 zrtjb20?!U83~oXSxPs7P$$OvSajD3JT1(a}n42-E!lxr0rk2o%HIG;3Co0 z{qr5-3&4A#eBkDk+n6`#g=GH@*dUH~N;Lk&I|XCm2K@sD`l1l$n5| z>o*hj@B|%wT-GaR#k8(4DHP#p;|Bq|j$L03JhE4Gb2;|%V@$-oun;f`3IU$8v7#Ef zzX0$`AgL8yE*B~PSRO=re-x3%j~SskEpEYl>DBM8(76dc6Wxb7sb}XUUS;m5y-l)y zd%nW%8c42O-Uc7M$Qx4Jqq60kr%Jg<*Ij_ZhCbD|O?Gv2Jd3pX9%uVWN(4PRX5k$) zx7@YUW&n~!HBqRWO$r_3ft6%P(8qnDM*vUg%{n?Nr(%H9I0Zw6Mqya&o>8ms%9c%F zWY#DlJ-@X~tR-H*i0Ni~l!&F&Zp20IyjuFg{$R_fgIigPxf14rSKdFRl_<;sXz4<6 z)x!|{IQ@^huLHEqnBgYfu8}pjS4>^TOxvZISHtB|im{yqvnORQPxQ^Jf+4Ap3II!P zCAFH{N+VjbG`GH>g2@Db-CYcON^%gZt7o^sNjLGWV5v(k9vc?t%H-SM93OpGf*6{1 zVb`t|Tl-K{U4Cm&$W>GcQnp{2IkYejxTT`D#}uB6rd}wVoCVHDB$M5jdQoIsQDHvw zu0J<^*M|t(=>s=r&(1$-<_JviY0BrxubD+^t{jFSo zdk$VfsrMBUDFp26ddURZL0Vvxmb+ccQD45u20UVg$J!r%L?dw+`yoJVHwfp=R3 z008V3zm^>TH!<7dw;cbl35N%Q5u%!X8Z*Ej?CRRd3IFoh#{uNh+yA)UKPa$chozuV z(*xzkzlWLrGvy^#|G8K905z5gK>iL#QsDyq4#g}b4kK7pbHr(5C>s8p($ihbI*F4b zAVAf7r7G7~;F>zP8Ij#D^SE7OLJSiGpay35wX9z4Vp(}?H&k4+FnyGS{g{oHY2@5k zR=Woy&cAn;LMHLtHhblM>&x~}B1TeqD=E3z03LRDN<*_|;<8K+2N)6a)Yfhr zB%nA%$UCMoK#1gQP&b}mU$TTml5RgqQ5qD`tJ)0+qIb>2R}n?{!-+GEc2YqASbq2Q z15me8)ha1hYeb=k%VsuhU@55n$``>FDmo@&P#(|?(Iokxoa|CtIH;T+nIvF?{94gf zN{~r9{L|{fT=_2ZBZb8tm1TN?a*88?0v>V6>tHN;p~QGmcH=xg6E9=hcXQvvoHbE@ zrCM56PENELD%=;qx`0qr&nc1#I41{1hnEWgpBJyY@@Kt7!-YWo#ajS6gt&K{uzM1( zdCi<9|9lW#S8cfOKz~>wd!vqfD&_yqEA|g@Se4h6a5BTA9xiuTd}X}#=eQ~Mo7Tz8 z$%IKV8(6*`!Eg;OQ6K9E5iBb=yX=%`rr1re!9dUNFZf%*+h5bf!}NxM03$NV!zY~y zDbWaKxL$OrzrT9@1xoK@G}_a%)$D`eGrc6{N0frQLJ`2J!#Bz>doBI*%Ki4n!YX=u z@sv7Jj{GK4ac@C*`x7q7goPIWFb0-c?HkIeZp&!K=5NH3WJ8(?EzPNRun)vWb&mU0 zRR;`WTL!TA8S84mX>`hC16H@{*Cu>{Qzd+S5Z|%5gBpTknm)nZ`U9L&H>eCD>FHt| z%L97SlnuES?EGGnVqt$5N?Vd4eaa+*<-+Mpfv?>zS@EJAa4i*uz}?+j2N{MOvuy@ z_t(e)_b#)QDc%Q59(P6bg5>4C0u|j$)eS-+d@dvcewry?_`(D#Dw;mTB<_Jy1t!Lc zYvU+DE~9S1Sx$Z5QafXF$fDhwG3+%1g2%S=V=jCjuC=a~eu+-k)+-ifHkd=?iD*zJ zCTXk-_ag!oI_QxPF!`}Pu}Q!A`j2x$I|Dl}c~qfsO+=A-fs!~;*^J(cnZHfky~t5_ zEO2@kJ_me-$p`etOti|4N8R}RDJQ2kZzr6Au5N2)cY1Y(>zLz?E%Lg~)^s*)u_bqJ z5|0k2r&zrfBJGrS1bNIfh7it9_kKCqvEp+d)??{DO({(qU_0AO9`iw)zZj^r_KM=G z47ghMZtUfBOX`}t;Y)X$I{C|Q%lY?C?NS$31PELL^KK8p@-d`;@pfE>jA{%%iYopi z^~G?l_``}WL}fTZW}`cNrnVx+nKdL z0ZL8C&Q&7;fHGUT^(wL|=XfhchP-3_j5X7c!;c>%-vfH5ZeYP(J6mV%CId(>pP|8# zfa`NM0Mk&X`?Oj>`f^Mf-ns5a$~NAkse;~cQ%{Z%x1iGsYtjKpcXeJg*wN94SYiFe z<(gp}el51~4pyZ60%J{o_eNX_R}ZMn7u{N!cwL2%89Ph#gga7(uz&@(I%fzhO^5l$ z&|dCaF?VZzmCVlQ=`Y7uf2E#3AKpw5YUh!tkdu|--aXd47^)9k09A_fJp`+^0H3$~ zj^|L<8B%l>}WS^g^8c(h)XuekA1C*Q-UslMrhit?D;Cf_iT=}UKw5*R7>*hgCh z9iDJYNHg*#<%f)$c6#IX%NUt?Srqiqn58)qWdvo_lh78iz*KLXhu3{!ogj@ z4RcH*17<}JFPZ>; z_|mR5N+8V@e>-v!uQAO>zmpTnirXs-Kb%V;`fF3LpBUFmJHK33Dh_Y2B%*0aH4^I3 zDF;p5SvyaW9Ir9C0O`^Q2GB7vB{|Pn|v1}x>lGi58su^6*+#cNybQ#XMlmnMB;8b-5~IqdKm0) z@2YI*!*qzjENa$hne|q`Js+lv=!PsndTD6;1|y`vtd}wZpJ;@5_=rv#}yFn;(>UcWgT})B975 zl~7j>!<1kcd*=Ue^^M(OhTYPQ-8hZW*tV0#wrx9Uc*nM##dY;4=M-aO~5^Wk|v z?0;~rHT#;`Gh@}6q}mJN%UQP2`oy!FkTuglrn$Y!CAl@YpX2{yscWr*Tc+1*lat?o z*v_*ox;N}t++EIoyETQQ1oQ7no$x}u3{&f{0e0~EAcL8MHURe*g9cuU!Jjtmwgv{i zru6DYm`3c9g>`-$wv_g#6OD;QrP$s^69fHRD9Y^Ok}+r|b!|Dieynn`3pHmVG$++W z%Og!EOKl04eufZEQtq3cog1udh?t>^vKgxJ;y2_6V#J!IxdTwG2z=NG8U2~oLL0rH zV6S+b4u1$7A3#27yZ^ImoQuiQWO!LT85dfu$T}&h2sSqZm1#)b! zpq}O4srPwmuB%@`yK^QA&%I&ctM*ptjO3Jsj7&3rqgx~K(duXbk6@>O((Gi-xpc_^ zb$;D1toNQc&LrF28oZp0RF%@>u>~xy0AsGrW7}Z9pTN`~CZiARUwPHe=HJ&@Te^g` zKAOMNj^tiFF1K+YB6rPHZjZ6#GKfx?9wcZx*cA5LmrtUS2DNAORtCUtdne@CUwDP7 zx}>-*w#taIm!FW2O(s;d>)UZknQdr|a5;|slhK&cY|6EH9c<#Ia!&KC4}drqHc{~` z=7;yke*x?@hkBf{W+dDMCh(vRBVEkMd1co1pXQjbDO6-KA3rn=^S=vHJ@+JJ)74_x zJ zoxL6!U`$`5R5Y!&V>jjpJ6;+=ENk|e=}+8tSOVqxA6jnx#!J57Yf9+R5mnzku296EHke(SUWhJygY7GyP`fNMF7VYE(!4S9VC5dA3Y^Ij6t~)|;~sGC)dBE|05ILX!lG_PMkS5+&f#o%URZqW z16Pvpc**|`=jQgU;(t)78MY9_9ui>r?~K<*&9Ug)HiV7;sF?}jbtGc~u_As>u+D1w zt|C8LvsHe0f69<<{2FnM=j0FfGZ@044FAcm%M$X5zqK_=fNKh*&N_~dZ9nAP>|E}@ z2wwuPd~f$|z&DPs=9sRW5Tvc68<2zikiU=bdgOfpRAa?~5eyUH_Dt19H-zfK$6zfFm`P|iMZ6!C6ntxn=-HRAIUF$X<-rk&Of z6%tbc=bp-yMvVD6tPOEp#V6=K$_}N3j2$j651#GSddSpw3w;%HQ%+M$F(#~W1TO7R zO3ZUpnGYCyy(d#Q!#Pzp$Vn+3Ryy@$ZKz&sY}iB1 zg)fh*wH}da@0FJ|eAH3dltX4>6@^)l7k2K7<^tI7zpxoPei?BrFq>)L8+SX;JiMIj zJ<9I)HaI)kt)g#{)-$QTK~XVtcCVB5?*k8CB?xLX-(c4El&2Kno*6q=^#wSu=@nY1| zd5*$_zkJjinAUdmLjFen4t`_aO)alGw`T73frNI7?QukvaiJ9F!&y{VD1UV569;UK zzn<=tva1EN6HMak&|NFuY(e}o|Kq#SA#%lKxjGQ1i*V-}Y)SnKRW=We(Jjm1{EkF} zJPGrUn`KAmK7wTpJuPvg&p7+YSl6%h!Fgjkoe2}Q08GOu@c0GwnI^5?(VC+Y%dzo3 z+QUTBQ<5~0N+~cgrM$=zYEjt;9dbbA<%KM*CO}HUUud`K`PeDrMMZ06)U=9B?G`r> zU1vr$4~4cT@J`ToUxBRWh2c{4GrC-f@q&zO+HJ@~MyE|9F5C6TvGxphuTDb8IU#DR zdpJS`xHolDukb$7-VnMzhW<@P0voDz*sRrQ)I{86~A0p4V9O? z_aw$LIbGE#JuoX7<{pzv;#$0NI$XVBqin#j3NXnAY8oLrKLi9RxFx|?cN{a{y1 zZw2i)R`>>7^zf|Kf)iJM&z#K>w~LaZ-mL6*QpL2+b^di552lZ0s0bKHI&aSzS`f&< z`|7may{trPY;Q9KHr6`JBQ2Z-p8Eu$lXrm`@ zt5E+9U)Z1AG|<-PslIM53xjT@h4f2r+mLc}ZO$p3T_=)rU1VD*sr@NUPG`2%25Bkn z#=?A?gZL^cO4TF*Qwu1~EWmSfB`EdPkrHt}71kA7r7cO$GwCf0Gp-&DHmQ)$wc7pn z=ypsUE!6D4uan~t!2ehN@2#g)uBt`FX6mbm@;}ywRw$CdXC16Sr4kS%?#3FttE1aP z{#E^%wx;q}33W)gSzZD1MoK=FMMyeLnabe%a5PG$J@uke`B~S9og|sfjb2M>j*ReUt>pnf+sV4Y zp^mal2dM7+eEG&yqnzJwVe37TfF~C5G8t_RCbK$Zb&1CrO{{ux{zBECN)~f z0r{Jyyp4e=eTgV$RF_>V*=$$0Wjv_{6*yVyY8#=yufu`jo0B@8UvO?|Xkdl} zXuUSq=noin^AzaJ^N>0ESuVrtr%s9>z4Q25)^SB^8mEkRIpJ|x8_0uC*puFGnP*`I zuE%sbIw+749;vsTQ=P6nq0fX%ZI$|~E4Gu6b6J4GQl;;~=WaLW$a@a(OmOUs`S70r zqZE-<5X2PFhX3%M|Lseu)NHN#KlP4#+LZSH#5>y`1*z@Q|3iDCuq)K@!d+eIuhmLR zq7CfFdW-=PI@0fEDSOFiW0WcTx0_s7p57mE-Q6AZ{GSIHR&pjfDUYit{=8`&OU{n2 z?w>EG){#;75-HuAz^A&8H^3vzQryuo4`WyWa}(_TH<3ySvn5l5-fr^wWi04LeYb*n zVfCfug?o{42<>645fI)8lSc>%BnNAw0&^^p*_&Cpvl^6{Z;tC)`O-O*m_Ktt`n2;5^BOgoiijqo zX1L{YNU4i~Z`7}YysB{aP2SW|RM~=L4ct;_^Z4sxfSc(Qi9Y%GbTnsGUjD;^sck#B z(kmI5m19LiOgZBLnV0KdtHhAs_Yl%zYv`?E7?YE6+N!RQRuLnA&kX-PVK_t;5zox` z*Yn*pv&AqTVX8Dg&5I6HKBzbA_#SDMfuVB#ZZPy<-G^0F(M(JTGlbtj70^NDn;)*-bavd~_$j=mS(VJ@5 zzp08R?{F@u@!#v7DZP5jA&_4A;94xyhs-Y0IcdaHGzAKRdIvYf)Wn#^N4aje!aody zV3&E>9_g<-k-s z2>|Ch!;+|3{h3nmVBXf+x#FVam*Pr`pD#p%>k&cfICNE+o_qob zY1Hnv81D+O2TD06FysVz$)p7d_c$6yc1KKrN!?mY2CDr$eFMhyp`h}1wRwL2_v49% zr7kWnp?5sn`;nVQ!vUn<4T|#+LVdL^LA)`o9oShBF3tOBaJCB@RmS|TR=Wu z(E1<}ewJ6nmp9-#`UOLS6$`H`5i{eAxil!|sT>wa>PYb%Y`zsi$iv&Z{`i^VVkeh2EsmnxDzM2PH)|YI?{AQ3!afP}gV3}MV4`=#RKnWnYxwKe%iD`XwVt9d zN&{G9&i393uJXm4N|=PP2g>nvFzYTqD#)E0&PoKwJ{?)tfzLlWH?YDt1C2y;p?=aH)wfI6o@ zP=hcn?^%*6kIgsxcX_rqs%w41GO?7Z95B>Pyft*@t{dSmP?O1bf_6=x3Ml7eQ6bdh zKgZ<}yQH~H#ROJWBci;3IUmjgg6tA8ypufWv2t2cTh zN@~5yc~0X$EYg^erU7l})jx`wWi-qmyl1RWW6gWoY7-BHg)oo94H zBL-AW*k5db8W(Y~3v_E9bi?W_XFGL@?F)Qf8m^yc7o{f_Hm5Vfb6L9fBV6H4u9!Avr)v>#bq^#q(J*8K9?#Qn-GAL7=-!w}C zky}$0x{cJiT9H@0hZs+L!W0qBo^P9u3Eq<(uGeA}UQWm3D98+8-Z3$q?M=&J%-VXC zM~`enTz^B=Y`ssV^ZXvWIGEz)#WjV*YB@G^ixvgX^=Dp&qgbu=!jL^$9WY3EyfR+fpA*cJ51E$VK*zvx>OIVC}*9o7f9(k91vuy zyk8pIUo`G#I}5O)s9;0GUZWpckipPGtjC^tn^?5T+VA7amQod5 z@&>t%NxLdqwCUe{p?v0r(#&|+Y%><(BAK&9E6?HX+7=wdn9s;A^Swa-^MCZxhlFD0 z|0UK*JHGY?MvnjQ9$TuKnjC)PQEi-ngAy{>pg;j5X+?5fg{!?RVvl52<;VMHhChKm z<_(9MT5AHs;L>0WqEpc)S*r94)U07KX+?31tlnpl-{$OL&duAt)5|kEH%R7!dp6(W zh$lxHN3UZYgZIYAN~B*b-}P7I+#$hibxw>K-2vMBU7TsK0CVrfVBdgxJGMO=zz?XW z9wTrhh+eppSceT_;dIZ4W6OMMoTlykM3aDg3HD;xusVsUK}H*2q+ zVi2ShK{Y>^w~=RGS;%7dG`>9EAeBsbvw|s_sar9RJ(0)qRFSZA@mL;NxbPZ_#HJ{O z=sD&vb9xHJ)8>(MHj;dxN(6JsOqKdoj4dO;PmV*I?($E4L%@#qa@YVCt?h__{iNZSv;D` zwA4J|@(w$Qj9hcZ4)D5*;MJ8dg)TvG5jiPZ>Ne#@i#F-y-sdEM%l9abJJaN0Lhrbv z$!l3yN1@sJcI2<72JE0B&Tlqqt)b`H;tr@( zcVxOm;b?+W1i$|Q`S6wRRFhG%?#9ZtOd2lUFD|_FLUlK93#aa7i;bj`Hk3`RV;O4k ziG+RU-Ht^TMS@ATbT|@Zorzlo{{#5&R7Qe>Bv!DLj?&A&v`q1_D0}nmF(}@^d_y;bY z!8td{C?dBsLnxx*avEi(`-35Y z;D%SNH1M{LXGuT@wEj3sP3dyhv zcCpf^VoehPewk7lBD?gK-b!lm=GN|e<|O#oUoT#f@@O%CMy6gWd9ER*?yZD{9l~GA zhOw|eE+%8+k~sd}L8%J;w@L|TG9^i9C=mtJ{izWaRtJKEWe5&_+aF@f$~bLU5-Z@j6MO$E)QlJv>o2X`L|g2zlvy zZi%QsWPI((O~4iO!f$Y4jwiHTWD%nR7w|V?`G#85tpM_J@7e_R7o#+MUo~J3-2Nla${SP6Qj1QAbhE{^Vi--KRF^>Yyr_>Gy-*3Pa5|)f+f{{r8*$ zEcr*6U|}gpPcZ_jFq>GkwvPUQ2WRhl*e;777wDV+zk)F8-lOJ?EjJ&gUzRYqJh%zR7U@Mo%pMwo3s;nFtqgzVf$* z;ewPFZFFCVN|B~2$^YP&^QQ*|1aJ493Y{YMdPEhZgp&16xR=gUu$YzjaT67ldx;av z(jvY_wZ04dQvjs$i~9sd&JBK3Nb^h{(5>WAvnC=Xpu*LXDEqc@S!pwgJB5;Zp*}6{ zxf1VHscOSDAvk4{^QS7sLf=_zdFvy6BTz58xIEkQ2VzRhKuZ! z#wry;$`M4@f4Wb9pW1zz4{MoX{#6RkIDd$#i;EVcgpw?;7`FK<^~^?UfJ1@H^p8(T3wS zG^7!T*KL&iV*?ivQIVPj>7-;>;+2J&*$fc`Jkl8X1-VSM*e9fnU2{Yh;LH*@sw-;$ zF5Gow0D7TTF2yWMU#2CEex(%R*p8;omOdFt7 z`PExt&2rS;RpNAUf646pQV5qQk~x|}n=skimj%`(7MF!X(a!SRw&N!64cFUA*U-}Z zH|^%_KidXRUcue}ZW~?wAd~<*Gvj})8v`0&0n7hm|9S&WNTSe6_9F}dT?g$%Pt}?h zW=c3K4e9zUMEU&nWj|i$MFS%?3d^JT_}_Y3M7qysgJ6T`F-qFML;UVrk8fVHn|hle z^m+zY9}Uv8S09*z(>dDMZ(gAM9l(c+>*UZIK=Vaad}8`|ZfYFM&GK~YCo#@Qe!JvZ z!+UDK1-aS1`BcK6>bCFfc;1`j5GHnC@x+Hnf%SI3HQR|lj9cKYXPO#@{Y=XVY&W@h z(p|V$j_5Gyisch88%OifNB|7_8FkeLUCz(rCr#~jCmRZIYnW*L6TzmY2; zM7U~~U1ENMNg2M+4XvQzq97%V1P;iw>j{NXsu3Z_df;M=;5Mx&*N3{X+tJW zn=UIQ`lL&iL>ARCGP|Ip3+mon#`tFCAZKoKXp=P4js=26$#_5ZV|WvaeM{Afe+x$d zGQkfP^`HBYjQcb7|K^l#$bkmka~5D1|q2CK5hmA6ZVdY0HVDyG7`c17ws1GAO-? zXy}XOx_04AHYPt?ojC_YPH+WN@**H!8k&}FeE6yKYTldz z8(DL9<1}?GN-q8S&h5_PKOFZq|GCln!j%$Cd-QsTw+#*-2?PR{;8OAX932puImhIx zE{(+~7a~)z$tG~-u3E<&l~y`iCQB$&dZg1&%OZm`#6lq9DNjU{&qnGev7DCiil>Up zWYbAUT|SYQZpS!fp~SCSMAE!x3+*(rZGrY18im$=#m7hWl_f=jzk=IIhhhE3I0=XmnUS@?fzY0BXuP4Ed`_;Y4yAy@erLOs0lr;RXw%pgbRQ%9Sr z!pUU)P%L+#iohR~T)!W2(@wr)wG#K#NU2iVqfr2E!+8^uUd+;m@pt#SOcw8%%Sk_sO*a&vj(eYCHSYIoijcfm-=B8+KSV&X z2S2k^VXqB$?;^6bK=J+Puymx%(|7j(AKQ|1>gAx_ zz01`J#9lL9Y?a4*sSrKlyPO_Gf&a7lWo(pccl#!}|Ip=Y{@!DOoFlD+24lSi* z{0rwenEv|=c|fDH>XZ$B;}y-vFM)a_o(7~B3-%7j(u=6~jS9PDfA66f)y0L3`juJ`h#f*4* zGFjA(jVvFZJ`62m;%v78ULVi*t9N6Is4||gV|O6wjPXVFSaeor+H_#u^f?5R;JMs-$w|t<`r$kMkY>uC;MfhvFBJv2PC_>sEqU|L3dz@O@ zrRIen`&q3dHr7v3|29QDRIZ(7Sfzm?IBZ+Qs%KefPJe5Q{QDvYm~m51VaTJjG;3WGd;( zZbcEa=-9`MeH2Htq;b23Fq_W7?sziHFd)h|WC zdv7`rPbh>G?%Mk=M-^L;+PRf3iwAN{e&KoEtDfKAkT9SUZkR1}Msp0j4=)fz6I-Ua zU;qmbo9j3%Y#zijwJEN=nbgt0lhb#8Y*y>kA2xXLU*bhV7eLt_wM;PS&>x;yuEqWd7!I=WaYjnrR+-f~D$@;57$r2^!=`|-cXc1Rd zB8$l;tDcF;U5A4m0;Bo;h164=@@KO?8Vi}URSLp?!@ihj zd37J*Hbt$e7L5CfWqc<=o?>sD3An6sUJ#^k%hS}2Y2q6 zBmFdws1omnxNt4@B=?C;V<E0h9O?Pb(gXce!HhAGM#48miU3g{V3`Zl|p7lJ!q*W=D+ z0B43j)KBXa3rwX36gTR1oGUmtt9(j<`ZP!4!~|U4h{r7H2ScJ=iumg;IY~`EuB;#` z$5&%Po@JzI4DN_@_o61CpQ5!k7~lgQFJ&=5CMabH_Bll+D9QQ4Z?DXX7W6oS1h2;@RZme6?hNd27IXr;E9?8yRyeiS~s!GvppAF6mg`ILd48(^8E&Ap$71}|QlW< zgqr~R+F&zJ{lsljd3ToMNgm~yMy7(HKO#hfIvKl*4mPE^iTNDm(fSOqTHn-}qY|tn zhBfKNMu#md{i%5IpY$o5idfG7d==4BT4ui>l=HtMs0K9Kt4PR^Cf?EC!Q7JlA+ar3 z{79=w&5~_RIaAfR9k)K^;O~9?FWlE$^eaW3LW(w2ieWvz@H18V14^ku3I4dI;P}N& z_lXtwDBI)*WH-B3VYXsBa`+Z4vbXh$c)OR zwO#)}kWM!4D4fdt1hN<3G)`u5gWQwnJK%2I3Ro{0xlCVb?4jd!lTC2cwCyLZ!Pc(N zxl2O#C)k`>YD_&BaAE8BF3(sKBo?is?g#G44q}GTcZzm5rKVn)R2+v+yzg`uB=YKD zSkYqCb5TCU3mh}yNCyQSM~gHDvJ2P4oRaqTjw^l^?4e~>0n@!v`$18nRHT9&*aRH- zd_epguciTBb>y*B#DKVTW{(^$IbIuV)_ZM~>NKm}i1fiT#}S*SVFb<6?9V)}`XOrC zyJe|z6i#v%`EX_BUF)j&^eiFjk0C1g1Eh&Rm*Xy0TBdu&=V62pr4}_kR(}}ea;@oP z^~yn}0;orufmrdRj7YTAa3Sg5tEY7a6W821FGErXQcJxx6T~BUbjcleP7OjjOg$}& ze?vX({ygiYXkpHZN&atHsT)|@9h5KvR;&#MCxPT zG4vPA+4VR#TvZoQWfepbGSeA449B-K6ZdC^alG6Kk^z`JwIvcLs~*}$TJ&HC7>4Vf zUpz(;z^ew1B)(lC!U2cFYwQbGV?p$$eU^t|RSvmwD7gQwo}&ond7BS`Cu?}HmKQ$X z3e0i2a?7o29VWsAxQ4s;i%crn6)sH9`SY|3{pwnm?)BWTON9>ZH>tj@jKYt)JO|n)8qzX@{i_B4O$}vfJJe z<)A8VtZ34JMdG!_l75Fyz<%zZNB((YVQCt5TGc`jmKzkzmRA1sX7>n};kR9BkOqmH z&jYodCFr)u{9T~qrhu~^yv%h8Pr;dX^xw@3hJQ=+5F>LUlk5*@F!GX+u3HN17hrjk z=NxsnXD1S;j)wgEBkGs8+xn{u$^Mr3PUPi2octsBVemXNGJ{4TLsfFlrrd6ZY(5KJ zCawIAbWTa-Jv)=xtjdO zpMAZQNF7?vRwLqeX9Nb!v50SS0Wk7Jk{2?Ghb{*_K|^IvG$_Yc>f&oCeRJv5Rl$%^ ze;4VE(t-QANkd+eP72EJSs~Kuc3rc`V~r~-H9U5cz_z?xh(}(y-z@d*uB}Wm4;^tO z3hG>Vb9KKwz&DEc>ECF*;MQ79NJTX~K&XnQb0!iKq}AQ;qX{_wRHa8K0ccASM4=`< zs<|Xs!*q>|APEE2x%{SO1`d*GczK>0jnZ_U7I=xfyG^-G+pHd=`S(9QB-eWmZcW|L3{CA zL|+hvc|OW_tQii|KP}+Gd4Xo*&o{=4ysE0X_)JcxDcpW4mW> zK@kx5IoNxzk2xO@lVIv7zy5>9JOC>*+kbJkSsLwCUy)t^`OglWwtb+EL3y*Q^Le*vOs@1%KMOyLdrP!$@!U-Frkf4yJ*M2= z-P$o|cn%XuAG+LZ;7g~Ud41!~vIFp2J>!GOObr!OI4 zthfowVSXhU0JQ;Ah108YOx(vI5G=F??JsHP#YBcy@2;0!$YbTMA<`->8b;%XLt_5+ zvvs!f+)kdznufT7gdiPa(*Wv5_Q#S5wvHYnEO5|hrDZI@UJY=^+vY%F>xj%`ZC$xv zK`U~kHV0eq$!)LoEy*qrWX5ns%5Vtmz{gTaxSM|Pde8r(M5$baB+I^(P!N;U74PkL zOu~C2jWb)sY-KYk=P?qZ31 z1;CIxqWN)6HDr}QwA#C+N32i>J6jJ&aOqTtDa3TMM=D4e_|4QlXOT=d36cv-kPw68 zPD&wYyY4vDGpacp(nD$#BMTd*9X#XpWxhyIx#a#9ARj0SVT21Z$#z)~#?VA>elAm( zS?JMmi{eoVCC6%1ObGSbHlD2rVER=#2bBNrbvjV)A}>8kZR&2wk?-!F99nz*?)&0kswPf_^pL-MuY= zStef>0n5qPXzC0fDNBr9#XWNPb7V+8KQ{*FsC-NnAqyd3!-cet&UUTaM(*UZ49Flx zw1BC*B6MDH+Xb7ioKbk@p0C?+^C^0dbaLw#G4doWWEq7(L>_WIw2_UQznQr9hrZi~75U?z73tuv&lQXA|NphO~kuE=O za>nkP^v_&5;B2J-Im@0f zKNd4nt6rjqLY@Y<^2J^`xxG}w{dJy%J{ zztb9Ydie&TQznL^odha<1ixGyfpjF6s8EeNE5yxt&UJXg9f-a!al01RSAxtgP4)7e z;>5HDjjNc@HZz+y>DX1r#5yS(u#@ZTwCt3;(N?|$*4}i6%+Ie!I4#*<=OW8qsQ-yyt+TD z0jASBNootADk2*EBYFyEJ6WUa!rBD{s(YHjpwAjntu9)1{MbjUsUd+(+EQgnQ-f0z z{5V&aIsEU4a+SRP|0C>$tnPq(4d~Z^eGT~6Ks2xJKt8nrjQ{P9@>U(IS|fyCf24l$ z+cp#i6`!UlUW!XsyJS z(#&+-8OeYC{A{e-l?zhio<4qTEA;I&-p?F){P@Mn;kzN$$J6WGtQT*TI0L4&G*J7q zS9Tir+dmJ#JYo`rOC)WqA5g!kr{;;;c0tI+Kpb5z#trB;Ob3b#Q88m4{jbsC@JBrr zE5>euZ7V+_^g<-E1ss(A$|u%pgGV@pX*mwj+WO%k;vWRn51=d?xtpeEVLTVJK_4Ef zgwNAFuk~Zkm&HJ^-#Y}hh+CH~2?OS}79tJ}bgnMw=GsBDjf0b#hRs+8kvFs);5Sg% zBDJ$jRgR*{X?0OF@d2@#`1LIH$ibB2xf0?+GU+8@VshVE8P=e;sRxD{ti7&DTK}wB zu~9Q?Z?^s*P_OFM;0`oXsT@z}Q2Nv2EOaZ4246g*`%?7W!2S2*2fTyG0_+s%Sw zw0JcmLohr@2pAwtyU?s_Rt5YjxG4q4QlE;`%NnR)FO0DY_SXmFGX+em5FciPRtA(` zRzMYm_2hX`2EmGFiXixuAUrK-i?_Lqi<6)--P)TspELi_rNzI_ybCvbE!C~VN;74s zyJe`RlVhUgwz!Jh#JAN(w#Udj)cy$QQQ;^Dx6gtw5N$;@ph?$~L$WAJ-nUtC~b4r&k(&1FP(yjUOV zf9Df}bIxC;;$O%JkL=AD&{mzu85YNa;Rke8b-e>hY~#Hfh5ZAat8G zRzjKh65blE(v5604)_B79gB1QN1;u$n={0m@WFIA*X)mD@n5JeCYA|ZT2bcnMcGcC z3QJRRlb39`<&_si^blJc+IG+e z)#8O69L3Ea?QkGrsYvFoUaJVT3UF|Z(*?2ZaFXP^=B@UA-fhqEd3JkA2STv_g4@c{ z#SJ2{B_HS{cZE(~wQvRU>e1;<8+?HMp8D**PWsf7#YE9axk(z)A6aB?isw~)t~StR zh%g;IVuQ*~-MHCj&JQsNwl`5A!QeUIRsh>XW>liRuug1cPP)>%@#xx>1x`8~T^Y0U zh`0USHR{iOGLWS@!bP?nN7=XMru0{A8ea}Z;{$<@8g!rBHi$5OZ z!D0tu5nC`8H$GA7?1-YQ?eD44bX}k1;9^TpcxYNBuF9yzKapCsXAgvty7~kOiLdfj z{%)TSGkDg}&YGJ@iqE9a1fD3l1C5OzXZdp1RlbKP&fS`AYaQFqMNq0M#wl>rW>z{4 z5h*YAlHXf&4eThj=r+}FL(6l3N*)c@zTpec3gPL3P0SJa%C|B@ys{*D!-wirnzS|~ zm~)iS?=w{-g^(!Bzg7v5&=U$v7ph%iXy8tPV#fDQ4gbSEhm#EQ24Kt3^_|z3cdMLS z%~Yb34|h?#F_2J0&gME_8`vSD<+s=(evVA zMM3QJ!y$@-v0vX+E(ql|o*2KqCJ;y9codXX7FuIq{N8h;M`TIh%!&3I^GULvT+HhzbvMASLvY}3?wcCeZ0s=ea6=$y zuCtOqIgvZy87`}IvQx<)t!?5Z0?BD$XDX@lxQ8-VcESH+4E%w5EO{OBT5n`qr2>-L z=1C5ou=vI9osPNYxih~v&KZr<#B<{$N!H}bd#4x5gII)RM_A z($sfzNv{aS5l5Ych7*~muslME1aWL!;Zb@}k!w>8=;K#%nkhQcQiqfoz-D%Q83m8YT^zv57B!>CpE!Y8t$9x0;+1zgxiV>8!K{t)~K|RM(mFUw2esdq42s&rl zkJc)T!CIdRF1a@*ejB8?R?|GnEh@j9Ldhf&3R{fmH=@@z;zzETZN!~#tzm(fuCVk; zlxl=8Lk~GG^#3CrAVe##j2TQJZ!BK*jKAmJ3c&CLb(1YHZt3BJ2@K*eY59nb z6(V-q$^EnWy7h*Tus)DuQsDY2Lf~NCJxg_meDcK|<#$qD2LY_+Dejm^$+z@Z_J|7) za$s;O^M?bcIG1ixNwXdQeS0+RdDqgjGqfoNF{o!@!M^IW2R6r&oA29VtTh4H>(+4I zInDp$>YJiFiI%UEOl;eBGBGB$olI=o&M&rY+qP}n=EU}wd+*c#d+A=Q&+4`6p-h<%{`RxHh7RWK&-osm(sP|tp)H0U7hxhx* zA#UZv;C)XGKn~E;bH(A6vDq1j`Zv8>F!g||3+M$)5M8s0=*fM8WZH64Q%bTEjqSCl zNDkl)w_y7%lXG@0ub6_)K~PmZquHwVx)3M zpXny1%I}>C2W1+VkS1<)6O0-1@743$J2u@-mIz|+GTouZZSxM$0fRD-0K|D5I`gr%-?cVh_ zs*yS|Hbgi^8!c;oP!N)AvO~h-yi{F~a<8@Rt6-qb?=nny5Xc1(~lnkpHKziF}KKjTmc z`2i@r5)J!*_L{Ok`z7Xl`?WV^hbfy)q@&(&@_iUM=TyK`z)}jY>?DHmhJy*{^QJ*u zn9JF7{qa*0<)g{aHfIu*eU&8qN%-x_bnbMBg-q=&4aC?81fmnoi~l(pK@PH@hRi+= z5mD7}Kl|k*;{6@q8E~-p2-1WZs&2^l?FH0T3ki}`XSu0#;v-5{)GG2+F;#%gpb;rv z%f%KwG#5Q|VskNKfHS+Dfgo(-Bylpjpx>-C<%v0a%(1hLss2KR6S^i_RFrJ>a%EzS z5urU-YrG%txRqqJgCwV8<8Aq(!E0GnVT_Rd_ep~yNq<~**5J-GrgJhqsTT{VVFTDn zVBLTC%g!5FFM!6kEv*O`v-obn_tQTM%s9BPO$ne1ssz`O&?KN{)e}#P;ni8?hWhhv zo~kb&7-A{PbPGWIR@Cc}fICeWEBIERvC-F(n_h$_!&CP-3IKf__5{R`s#9m3%-ZuYnn!QsnB|H(`O9Ncf5o- zaR^!^{^Q0rb>Lpn?0pZ?_|3JSfCNI4nT|vT)t@|fly92B;AT6RvXz6^t-fLN5`Bp| z>W&St1LX-m>5k|(;g1RjG47A++FGSzA&AN907hwRTJ;^<^u+aZV$_4)dIrFzMq*AD zbYO=r7CHw({9?D7VG`*~_?M}!yUU&9p4ml2wLBqJ*6-@DwI9B%N{=RVUcLuc6Un-M zWp#9kNbyM|%jBK56nudX+W<8qyDExwJBl6lKH$*ZVBagby_cK}5ib7Or$lkH$b8xf z50vIFFZ>qZ93Sx%Ztc3CYYZ^imR6xWYwt3jL9yL*@JyuL$GhUbQ}xiBt?Vw1nWGf# zp}x*AF@Mxod#ts-eh@ppE#zCj5@QEC+M`j)+CBPaJPxw4FdA~XRFZH;wnP|5)nu3x zTalT<6!$6hRG-^OaKXCFF6}VLSUZ3B40Q;MvvgC0it6mJ@S$;|E(VYRO6!i?8s?R) zY_SaH^wsLpjcJFhqY|gH#@OsW2;x_47ujB{6dNlH!Q3$5(6u>eN290HvEl6w_9125 zk6v?AjCo{?cs!jX&^X07qal z1q}CA^CL>tZ6K5YzAmbW%a9>;xzk~}zgn=O*DzWnjVkvw@&20f4P5*OCgOkTWwZg> zsu;k`{C~Q^Lw_ftH@IN8c4}r3emWzH2zrbW5xlck9&uYk+S2h7YC}U0-xx)-Ylagx zalO?Lek3C?LU-bS3Jr8%u`38z{G@N7446)?J@yjtcY<%P3*4XMV2MeQ96Pa1Kyl!} z30X!adJvWkW(WAbTt5tW0l21+48ww?*Ibs5%DUu^p}I3CG{_=E^@d$V< z-%Gikz8?4u9up?u{|)GJ>T?-{een|zmvQYiD)6rpDUsv;7m2#N03gZRE-CEI#1E$$ zKhAlSnE%b^J-t$X=D>QO&?QKjH38=C1#zZfb^ceL0ZqX=VaAXkmgnr!tO|vP?_}49 zHQ=6A-gJyxuUxu)d^c3YNfxlMYF|XUGbQ`n2n#ys=&W8dXHHmHU>&$iA)LuoAO2W^ z%+{XVN_6V*UG_(A4d60Ar=ppq%fnN-Xk?Q5DDUyYl?RD@aQL1h2ZI6VjCXs-VffV( zMtGRXub0D2&v}2arZrOWX~TDJL@u5l!j*C;AP1j6cB+*#tF_YN=?$+Q_jXhjmH=gi zAsxcwA%-g+K_|(RbH|}+<7s!!s?T#hP}Tx+=sA4od@1hplip7vA9ZB67Yl1sI5m4j z%R1%clM$bGGYs&b_cCzx&eiXwymtEWA>`9C@;|e`Gmc69^a3Qy%pyvY9sgPqk=vEk z5#|};j5M8w!fW9Gg%HOoiY32o@a+$ft9tt`mx?QxF1zrTe(6kQt6I_7T6>+yK%8kN7B6aP|5AdmBIv13k&J!a@Z-i30q*H_h`)G3Rub5sD()U39Mxl z)0|+MVm8#cx{fz~xL@pD(rMq+W-GN}F3&==%W$UvsBI!kDY50*H#c>{Fp1{61*GU} z!(hS7-ZrtYTwoZ*Pd+V5rlf>w!w^Aea!qV-d1|NBYQx~zG!`~*b#Rtc8EE|#?+MB7 zGwYdVE^^Q43XuKPnia_UoAi9ZTZ5+3u<+eSWfQq@w*Nbg&-AT_bKPCt*Jii|@CgbTTgd(2O`amH149GM z(c-29(+-6YZI}ans22Zm7tqT$){31XUq)Ekh z(L&Zf3+<5(yKC~>japN0omj1J4bI%n(kwe0B)&mE(!A?*VFLZ6X5S6PSW)ONs0^fR5xgrzU1`H;k z^;0z~PY%g%7GgS@!!@WQPbbfWslnO_0HzG9(rx!yCE`rnQY@JJ{yxcqA`}Dl^ibSK zcYthJOObRn`9(>mzj?c@3SCBBL34ecMUpdI5H-Iwcr#TJ0Uwnz;cbS1i3~rMtJu1Z z;5^oCMbRy7exh1qQG=rP-lnP_P4`v!4sSj+(<i!g-#)p-jf`Qd(_A69Ug^-txxK?9{y7_23|r)+VMWlivDjvEef0nhJsz+8Ai7`Jdq26YPK-+aRDslb z*WbaMPQ&(xE4+oFNdyy>*QJ&Fr^Hy-cI{}Vjd0f~;^?!>%2+c+CyS~!QN_HJ@cZU| zvG|(x=1Hd@{5y3l1rPB>`06p%i=al2@j$58uOA}sFF=@0w1>^o-dBpoSJH`i)&}b$WUX+7i?eF238I!ji z&;$tpBb|$e;GZh{_RkFPuMD5>#1q?{g_`d=lwK+iK5xDf_uvF|iodex#n1;0g`rlmCnQc1HRsc-$YSs4>q?r90^}Nh4!9b4)|<_ zE1Dk6Y1A>RQKy0U^J=3k&ky%oEg?6#NO`W&oOkO_;|^GHRkK?P*fKOs$IjYscZoH% zx3a2n_$N48a!=v7_gsi}GalsT!@dGt>1PxDRJ4Wc>42jq0$TRmf3I0?fO(Fpq!*0_ zD<)!F_3ch^4`i8bB4xO}O3@P*{}aOsohtQL()mq?_?IO#9>}2Ia(e-9##i-{yw{a5 zp@m&W>KDZ+&^Yk)Om1-k`SeUC+M7(5qnS^VtS+)W+&o*4A7GZYb}aL@_^R*6$MCPN<^JPLuN@BUXmCpm5mI*K9yPj1T=tZgtn4b&)G{(!v7e08)-hi}ImGXl4wA zP#_Lr+?8tz9wt#ttka6ukv83kpf%IAXZ7dUftMXuX>~v)y_!dWWfCxNW=)@pv#WU^ z_MK=bIN2l=aYJ0W0Ps7U-IH}NTgw@O1v@vS)=R-}`BZ$jdpU}w2o#1&(2rCh(_HWU z8*6HD#iicCO)EtI0JsG5-{ahOwC}`T1vU)U(8SxhEE2ZJ@bcg#u$pdDrZ5@uM&9}O z3ERi4p8$PcI>z2O)XKlAUca7ZHSG%@Xt|NxXXj_ht&)PK6Y^=Nm}nG#Jev(6Ms{%5 zv_r@D!;^_U6TI`Pq$T3_0J!T+ynCyuA^XMqD&i&PTHD*K0KOSt=!sW!^;x_66qbS2 z5`)fiqi`)se>#&2LNKAIi>Ez~4v9&auIHOkL`pnkgM>lpIwT&l?@7AXc?*tZI}k#3 z0|;SKYZZVtUlUUYYL>->YyXTD?f~uedw&I_)1j8`F?4Ew3qFaSQAB;PodrLpy+VkS z(hUf-Vmw_8z`@S5ANK$kXYMkRw--E!lR=Yy%7X#J3%RQ@N6sbbw8;m#i-qcsx9bz{ zIR~C-9f;WT&C-ZRFX|{4=2PB z+plOxydRTpE3YIn8mk$fJ<;TzNs@_@wtR@pg+1SPfYMv}i3MN@J(M5O)&8upiR0)Q z#2{=1@)9iQ2{dVA=&3}+6UP*E5}fw(@!zpbR=PIf3;NiusP#zoZmcQyV`Zw#wKXe{j%n4#DqttiCR6py%D+ zVL>KQ0BZ9h1(-rl^_B;pABQD-1evVl{E)REY)LQ}IXC+vr$pciSBM&I7 z^|w^5XrqQBzG!5IU6AoD^j2YsJeypT#HW7CowT!l`fEc7GS0wH)JRabkZ#ldy?acq zPRMv`Tz=6|ETdm}Tx#aYsmW&*Pkp?xmSIPW00J_&urSYN=8td0HqzUOtm?*)%JCq*T~nR#3#O zy$R zK%Vc?5uGkYcyU5Y;M{STE=+?;I$TXJf;U}QXQOg9*Og1GSZn@~;iR_b>M$68T%_Zg zg8ua>N98FU1q%wVLKkA_IE~2aEcFtcaAyG=I z?Dv`Eh<&mmb(MR~#;i8W6(+&s^&9UU0GIvpx#(6OnjI}1&h<_?B}dB8Z@YK~yPJhj z(nbG`g1d=50Nt)k)$DvNsEVa`819x6pFw*`5G|d~{=t$5OT3P$Y*d2G;XvlN`gfjs zH99|u_?GS_CopY03^*M0vW;0@6kn%cVq}S^)dU5Fy_Nk=-fnEQY-_RxtrgGG_I%M>s zb0p_5kp?=uFON*0nQ^c%d;5gqo3ah&q{NA_1J+()DR6Yo;A+WPFJCeljm9|^?HqwL zV?)vuNLU9qhC^@G*;MJd8y+$WaIswrmd37JBhKGsV7bA88j?HQ)?N|s|4WKV>jP^> z%O9G64S{P>69t)6Ur|LHgC6+boN|`3zX-7ZtZQP``bqU=J~8I|>|Pg?D%PmO5>pEL zRIaeA329^iISV|0Bu$a6vPkEGwX%mNMdI%)%wKoO8@Tg9`$!w&eT}HyfC=}5ywq*K!512AV^#J*s+@(9;i}&s*`lyl6foCW z!?!IGFi6rEr5XkqfcqEka+xbS<7hquV;PQQ-145QvrVzoRp+NxyS@rBo6Zp7nYQt; zm_!=aS8iyfaVrJkx^+u#%4omty|GX7_@(^3lrE`;F>ybm`-SlFi#Om0djH4apmYp| z8o>1bjnHaML|<^gZ_TJ3LP!=o|DrVd&F}iF;i7K~&Lpmox*=U;<(ok?pHe;XG90f1 zSL=}6zEUWh7@;iW;$cN1)9r&oRyI2mZZc%y5^&p3aQnFP_7$UB((_F(Cs?aDdA9Od z*rd0a6KJTI>Er$Jo&|8++rM!6nyCR~`@BEONcBZ>cMT;kA14b!(HHSb-Qw?XrXY!o zzNl;M(|Eg@9*x`P-1>|KeMIgYy~>z>>r@Zg2A|j}dJU@i$UV<<7q(`5gLDo@xS~4o zgt&H!jmXXK)C-s0K#xYMHCXvMC@;@+r*tGlTSvHoT?OhglmeWW8XCvEsjP()>1e;G z7P98d{0GEu7BWyL+pWxd)9dp=KO0n-Ho+Kple?e*^Q|=kICg`o?#XHYV$P06P49U8B)(0q1&y1rOX77 zCArVE`xjcBZUSl+x799hBs&Wl8P;VnJM5DxH81vsdqQW9c9Zij@4z}H!BS5?z!9+% zsirgZX~XxIS_kh1gzsghurPciAXz~Mcf0l*sNW^7*hBZ{l*qUwQBdqmvG)63iY~6Y zR9ZE-G}U`KBCDi@{)NX1xvf2o56t>^^l8Qp`*sgXm;s6#t>`lKB=1iz)d$Gq_hXy4VFsYPzD89`t7h3H7$(^9Lqc)Vbh&(%pI`1C)o^-# z`W4$~O^fup%;0a*V_eu8>t@%zR{Wkj39KU6qr$lXGaH?^ZryAMl( zk55I*z)VPL=zb9nGe{7Y*RbL? zBP4xkS{Aq7^@hhjNz4`-M~30Q$8HGHygH!9-bf2ZiQug6+Aqo=Lq2caaOb-pnyIwK zx>jw3XK^X+^m6~5X*hn?4BoCM6^in~+5yN{;(-VOZ#vptuRe~HN&!=(@kDP5Q~~Qr z>}(3M7+9eWJ7`y<_-(rijVF->wjyw$ z;#fFE?KWL`t-?r29@cs|qyA6To+{QeC3DP#A5;P%gy6K8bJGc^XA!HZJ)rdVtipMH!w;okH^~6sJQ8Pmpwx zQdk19h`TmHPw_dQzK!G^RRs`K7aFQ8A#i@gk=4fDb#MAJ5biw_6>&=8k@)NlAtBSE z9#}WorXy?**`t;xeA$v()0e!Vt%$|9m(YP)Fs@#FSQ?O_-(~8+a#voq{j0rA$TMwa zwmed4DnOEt?hgtply38#MMN_}O>=2bxC6)KP(@YX=id(0cu=1+Tth$+rD5u+*ske> z(U|wT*HvVRy`t8sS8f(7S^nPS;{h?7+-qUdlCfzsxVv@q{^wq zU#nFeNM#?2{6R*rm5#|bm09U0Ll6lmo1kSurr+T<_w`iXTvf#g=~iaOSTzYz7pgk8 zb5944=u5kT2zDwR4(I@v>hC}nyG=jImcL|YWFl9zugJ`o@)QG&nYqc2j8Tj59~Q3q zHH}zvp3_hH70DZ*Ptj|A)(lO*m15^MO(hmRj*TF)l0}r)`8RkGpd4_^+NV~ZwO?2n z92MW~DjgX(95=IR=QW};9+oauI*hu~EU@cSUui}Ch7G=+u>AosgD%QjHY^9uJcrFm zJDQE3FI^&Awx5eM#l|5vn=y-*!h_wGgc?Wdfvb=gPI|tVG@PLe9W2wOxw~?UsZK$@MN7v9xT$po<=U3#jk05 zzQ*a<=gYF@F?s;+lT<}MnRoxSLq=H^h;C=D*@mPy&B4#o9+9mY6Y9mC{1xcGhJkM? zMV@&c2CFMpqGyPv&MrrFg%wHTLNfvACZ{_*XCEIk378S{RjRJWvfHf9p+7`HXA z3?`T6s$P-*X}J}O+N^{;?ChR6*FA(H@l@zQjgh=ZO-J=8X(O&ySFC!!*Z7L_J6@(V z@9ZI$zy!-E8M(<|G4JZ!YpH?&f+GGFKVj5092zCq#4{S=SZc^?GC1(MC1~)CB2?!wVazD8gIVG-lJxwZV-MY$Ypc_(ocgMb9JZ3f0T zi(65l8ZO@aO>9w>b}b^_Ej#59?(17>MvnFvcUJlGnTJoNA6vaWZA%_#^gbgLvyJ1a zJSf6YS4e+lM4*4CvT|#@uAj4WwC|J9B*jO8v zGx!14KvYH+q#WEi5!axHomp6< zd}(34N2GgL*){+0qRR)|ddiqqFdF2QhH$W9X^#D<>r~-(tEMKNq~CN^S9mdcLBYS6 zx*1td))pSEkK@K1C`2wD5()b{W-nsS2-5q_6#o9Zy(GgZ8z?9o!bvT$ww;`c%=^AdNhH ze_y5+VrAE#jpd4^Cs}vvG&r~KLcv=+J)Lp0d>ZmG;J7Z%ARKR=MqlMZ#i~$Od9wow zJ-M4}z;WMFyRqY1oBsI7uo0?}rJ|c^`X6QiQ=?%6Yqo&| zmb{t8=r(~EWtouU9+t7O0MO=Rx28mvM~rd(m2#S>yB*ves8Cz7s5r7MJh4$zAR)~> zY8SOK3LMI5kB?7$lU3-4kTegS9isq$LT^D#Gx77 zNfgGpO6R0)ky5#th(())gg`gaeMDY=wUt+(Q<2gRG4s2}T>H^XEwc{>=`vzP8W(bw zGv3l?N!e1)Mt*}wsZLhBv77ySAqDFGer@^wC4TJT@gJpMM<)kkee3^f{>p6tgQc`D z{ZstAj>0eKZ5p1N%kbQ@3w0HM;56_PGMM9RPf#0=_OU?^XbzFeg@v zZ+B1b3gHcX+O5X^y4ya0ulE-H-RYk(j_=OT`@82BZV()_5WerngT9oWuTr=DnTQm@ zjR|(5G=(o+4khwYmhp+2n2D34XYk+g<0Lpyu-Guuk=|wF;vaXuT-pFrepb}jG8K!&4?{umV#sECz0zD!7w&C} znBr<29C%JoHTnTi^n%sjA3!5Vw;)y+bZo!(c$4*wo|M_c^tCe-C$Wkl7U_@GRD%^Ds@lw>GOrN}aD)k2g_CH(3VI!d1)IpKEof#~-evmTWiaJJ4ul z@b2ud=gQcbgYMoZ5Ehkv!oKLI%?kE{MCpy6};{<$mt!Wf*_PYa0Y)+`E#KpEvwj<2Z(i#A9Xq zAULk>p%9z6+8>(+04Kh8jVJuXMDY_-_Rs5o+J0gh`-v&xC#FAXKQWCl)@)lgMd0(; zpC2~sW~Ag;)+eRtf4zA!pTv*JvT(QdLjHNzIGXWQx}2qy2@v}wpC#2Y5$}cVd!B`D z+6w5e0L~q%Qpn4Ux=$}r)aU}J2X8AFk)ZB=boEvgXg}UsgC<*z0vzkid))UK1{kMrgj}OEU$g7Kc=}Hb0$|l_1RHH2pLN3wcKHBJSxjX zhCbR~cypx4`8~%4eL{jF1@`dnoyuvz8@W9+P!tMXFh#;r5R(Z<XWXX4m9XbxEjlzf ze{_$(q`YcofGszrpG4YUJU{>VYRNVR(KoEqY5!A@+Ojxz#_b0_e69{754c&NW}uPc z<);c+OttzDni7Rf4iQLe!iC|=oC2x|<*~xNh6&$S%Wifae=GGlLmCcB7dRGBX_zF5 znVV~oExL<0o+Y9;caoPqeJ+ht&Kfs9R!yTbitOk|vFJHkd&>5~~K zi6(;ARYq!oWhe^oi-Ygc#$$&o(#ABngiS~;ku7)fAA`%WX~;fcqNFb_w-~{A13fgi zEtmVlMv@>e-dO_!H4}Z=6}<}vOb(&UC5a{=7xf1SIb@xUP84Z@n6*YCyjQ)rN0Ry@YIQC91pj{3rO=>tIVquH9+(JW!@;8kvOSqygj%(y3P+M|FXh1?91kGqNTX z>=VGIEqan8U5jGTxbJ|dnX?Zdc%{u3X(BxS#TnFPk#N1nG&2*)>~tbene;(i#81||HM2_RW*Pd4(=6(=(#)w2WTJrN<9EJ<(U2=rj?E)keh zRyqwJGxNFXhd=1L`3Pz^A)5|c3VIP4dxL1M76+Udpys@Ri5-ASAkF3CtoDj2%k&C$ ztp!aSLt3rUNd$%9#bR&Zy$qKqnG(b!iK|ny(0OO~oc+ZfYMA-PP8umcYTab(WU?N* zjznW7+pK7-vcut)g7->}1(B-mRT@y=a*j-o;L=q!ne@G$ZCWK#mdNk zuUK370&^#Mc?;@-WDq8taN&lQ@}PrC0mLHN-0A~VBNq!gWbi~|Fl;TG!#}#=W#&2nN^!yk7^Et4u#i>*@ljKc?0Mtt6Du(Mhp{m zM6BaS%FBnVjT;F3CEcIfC-5VEE}laCo<5EMp0K&NB0`Q^ZKS8y_){99u(-pUrc z&T$EdI2Speq%cwOjw609`z+v(T7WAVa1nwE6M57_VQ{eeC8pAl1nuEm{0W8LTuEz- z1ObIya&WNe#r|BqGfhn82H`M)Jr8!qQl^k}EL6-17_3FJv~!isXn%W38*MdhxRt#Z z84PVW0>S6tQ;p}AexT_=pwq4#CzOf8fa&uuS0vnA>oY9`SS4vHl;>ZuZ2-K~9mF;~ zW7*QXrkXHuta(oY6r|+Ntb^0FeDt^2YIKl?bffs`a^UIq6)Dc+52oHu)~2+Hj28ui z7s9k%vz8+5<*c)H4*;a`Uz=;R8w8;80|Fq00lst@@_Pgzi#>u*v2W#Pu-JHF2HvsaCi$*!91Ev9D|j4GNpE3U8D^w|84zf|4W>%j%W_u zCd2edDPp086uoUR@gkhjc|3sCG#>?zRk8u;^z?D^LuyX*j$x>+1sbC(i}P%o!3Mkg z9Gfb$WoEoHBjM%Vd|i6wp{~3$gUgDe%h;VgD-9$xzca%|%$zML4FD{k`?Hh=M0-2i z3rZ=kvOOi8tDZjzYS$+x(@E77V6AhZ2~+AQ^Ya|YshgG2&m@cq1*n4&PCA#?XVRU( ztC{8c_z;dzgq!nK8eOoHa3}qDW6=AdCW%lY@#~X|Nq5mH-D~pxB*Z1Cb@|~!&2tY> z_3iQE6z#KC$yB~{A}=}ib}Ml1Q$VOAoQS>@Jn=EmM*E_puXc^IkQJ?FB`2~!tTzKO z%XDy58t?YCoA}|_`^d;h(XGa?2)9>v4cFJlC&TwI=wDJu|2yEQ-Tx_TIR3BK=aTkB z^-o!|bwcy-YwG3`2)qk27B+SZ)D^=>-*dfT+~DmSgGfZNI{&AtF~$}cSm{Q{B93@8 zP>JLD!M{yk!8N5ILA6vSnu%yb@!OO(@KP4QCh6 zfNw!6K*JYV&-cki&caR)KIEW8aQD~63I*TCtJnYvK-LF!TzaRKP~*)OGma~AEbQzg z=8X4q`FA9Xu~;U${%|HzRk7_Pa`k;AUixil+HeaIGg>+$glRdxrBv9H?k~Hy7v{cD zh)7jo4Ok(#B1Oe=VGsN7~f@4FtQFS$Z6z|MtYrX;a6S3hiV|Jf{=LNq0ti9{l) zbT8SQvy=fI68u0Q8B}HRN+aq!t!cEKChYJpdsTK!a?CyC16-8o>whV<1Ycr*zAU~R zQND$@pUL}z$W))?{Anbm`xMK%Y%mzIY%KdWhw7~O-`k=hz(*9ZomhK z2=p?%fCBR*V3e0N<3Q<4U+K;oe9UGmS;t^Or?~WTBO&Xc@}a#1v2Af*K5o%-;4 zejh887qaf%Td#~WVyQyRd~+%P#Y7Q?1vtn>PT%lrX=PhRGV$1a0M#z{P_<#Q;uPqr zDb~gqg2i?At|bXS)rLN#v2IdKBoa$sMgtyG*#gnzZqeB@NU?yIJU?m2-J&%Akgp7` zgPb`DDYMxlS7i#(&zGyP14oq><>>@`8EH9bQW0h$AVuPZa4cLO) zQv}&YLI?ld9IA>`qzA45h>j(ZL!^ef4)42B<8o+>TX0jI5@O?59UHxqkTvfK5H+Z%0Ts}7MiU-i z-J5&FIY^zOk(XnAmJM+@V$(EzpCC{;Z}65Y8j`d|4JGYbuH_yAvmBlTvGbRC>_}3S zATf(#=4g!O*RF;@U0V+kqdS6orCXW9U6U%&I0OZRXt zJ9B82zjeJhlQaIulA%3gKbl-8UW3GE)TNixY+t)!ZOiId96YYo`@1+32Ab6+BT1ut z*hyCrY@LBYYU{c7p+uRiKTQeDCg!ZJ2a->n?sO5t@`z&I z=LS~g)^!L?S4!A%)4llX1W2`*ywB6pp3}s^g}gp)tgir2ywme4aI$G*yrO)iDIB{g zm->!%=ee13_ZclnWO%`doE>A%)3VJTqu_Dn+DBR3!^ZkTjBCL!s7VIgN!DWej8l0q zj4MFg#$f=bNZE<6rhQ_+%sg0Jj4kXG1ZkEb#u_zjD6D8f3=yPHocX}7znZXKXV@p> zTJ+Hd4M787Y*QKMv*o9Uc*jT7XhN8P2lvaw*(oeUBvv>WxEqE7ZhWcj^zQ%YAyYW< zJXesDx5H<;@FdaYL$9>|E&Uc(*)bar$s-Q)DLT7WsjK#PrurTh(bRlM7M=e30s~7m zBxZ+y)#5sqdcLAg#Un&ne4x^T3TniI8r);5WL^j`cyl!%+wZ_ME{2Kc;?K`@r0ESx zx^hiIsL>F^Pk4Qc6f2w%;|rwC3vx^F2C4Z1l{JGt^s%DP?bz#GIJr7qs2T&7(UsnB z`Vm4Q^+E~ftP_g5I7{JdMNs6)Ifh+M!wy&*;Fp~Hz~hlfmP02F?d#wfqty?{Y&Xip zJX{29Ogj>1IyQSk);o8E@CUNH^bfND^$=Xn^wDC|LJOjBmCgu5+ZJG?NP)eKW%q zTpG8_0!qCoYO2hk2Ex2etoJELBsBVJY@P+ITLk7};1uHrbvVBHpf3cDcEN5DM6I4U z;TL@wviM`A=YZr0y1>S)gDEC1%Z>G0Fo51e>r(%^ykZh>D_Am^*}z!X zDH#mYngY1AZOsNFE0o`L-fE|}m#<`W>~mv;ra0!W+z6kMxOJb%n~hO#S(+m% z#pqqaRACtuR9Ld;(9jDt@fUaTTK0LP@lYi^^oc-3;#-<=5(%d({pE1n`}E;f3WH;% zADd|`huhqrtoD$?Jd5n7*DSAkO@E zn(d&R1)8%6h50wi=1Aw>(F$6%2TPxuUJ9bGK&nyUqLHMNf>dhObC83a?n1F-`0=Idh=as59^K}Au}$D0UE2s&*5LVz zPgfB0?!H-J)~qZC=ChmYf4eY7Q~p$w>apWjIqgr-#fY2W?8hiSdNs#-8bS^cs*b;# zz3;-t6%Y#(~Gv28y?+j9Zvy+j7i+HTQ6qI&L{T(KvzYK~a4Pmo&Ln{LY&g9qwd zJ)7!J)V~%DHDW1o@4m*!CNGuB5%OGx5@AuX8&_O&p5m25BBmn9cr)#Igo(A(wG~@= zu|& zEcH?CN`8O&fD&M@q1T|68=|)0J zjq@@5=qN*OWQu~SkT75_jlRiAq$Ky1-;O=K^|@z2tQ@V3acyt zHVN}jGCaPNvSAp8_BuBlJipYPUou11(^gd{V6unXuX|nqH9nB<6W>7by9JZ~gTx7! zKaiO7|3cy^t%+(}3dA2s{01TI##cBRAs$xr4|z*FaVV>fqJnn+TNgAvKO{eA);n#~ zV&>)TsSKnXUPOWMgS*!6jn9hFi}42#2fy=uLFj(mKR>+QZ`>TzcZyA2;tiaJC=ZZgh!Qy!HZ(58ryi z=eY?e1JAYthA*Fi*t14Ia5!)12M!0z{lHqc;5ArVKc|aFG^!!MT)O;IsK+x~V zlrPz`{adJ=qXE8c53-n?@ji-F<(sf7Oem2=9rUrK%fT{Fc2hO6^P zs;8V95j=k8!l`wLoy*W1aT?8aFXwk9*9`uf^gqj>&XPwi2+*r^U&ZS{%uhK&PB>QGJz4s z6kUIjpNS8%iCl>k4MP*XLl^A?oh1r?gVPfuNqX%{FVxf@z{a&QVl4F|N>lZt4oiSz zZkn<1J5PF37jnsD4k#8)m_T|^X#?S$%!9y0J0Y#R+3Kl^gi&em8^g%Lj>p;{AL9b| zo$~y4CItjVwynvHv^o!SZ^j!eVp+!2G*{Wtbqji9pv!oZ(3FIpHk#Gbr+NxNddNbm z2G?@j`W0)x{}ODW$Ll|Z)O`p&+tBHQyk;Q@WG%^(fto2><~~Tdz3vp5$*H2t{Y{H7 z<7HD77>vf|e;g5UZ(*hnc>?y(Iv>0$!z&vx8w{vb?6>LFq#>)itVovrkICGpNFeD~cg8o$R}|Wc0qzpGL2>z@S}x91PE>m}q7V0*s|dOr7>qPh${9 zP7`=hr6*}2E^kLs&Ah=h(hA6=AW~VH7UFno5=0CP{SSe%S^YXUmc5XU+G`K+w}O~5 zOtA;r>@L=HNqAA2-;U{KOlC7ec=ZV4m&AYjo*=C@$lFV|YzydC2VYIkVFP>IY__<$36_B3y0AvUm?93-FzMj| zlUW_^sI+R0;WEDkj7W?Wk!;Gm{9sG9n*$ zP19yd*f1E%(yJ+NMM+N3={9sq?MLS-x|e8bO}=(io{}(7>4wUa%~SzQ^idlYek>hh zLiuUQsxAzM40c+mVzo>;5zs(!dk!b7&b$4C@}skDGt#7O>Zmhk#+E2sbC4L~hx~tB zePeVcLAP~m+qO9q+qP}ndSctQZQD*J&cwEjNxr<_y?@^Oqq2!6Cy7fkkZSk;s)gmfuUF_W>>GTST3gvz%?4K`Y= zthwu;3XgU0$Xe$=WRGD16ZBwY*YpC8bx{1M|V;>7aoJgA_ z$e%0yPzsRYxc^#!sTejKvb19%2l&1`Lx?=a+#L6*PGfJXm$3}fYILg0gypaf9lj0? zc!^Y?42l0W!B6!)!>^3pL$KWJdlr~nO z&R4`AHH%F&-FW~c#uKAB&>Qo`@}M*ovVLxsp-U0NHb$`$Pqp4uhtiFkY71k4IZ1-> zFRK`zVuI1Qb*}=d5OcJ#Ya6IfH-ACUaB5&BojI)h8|Rg2_ETV>>%f)MX6|3|pL$U=~}CR7?RKLAhhV;Gt?kpHlcyk6wqBXTg#RrW1X9;S!Y% zo0MyxkGSt{MD3paH+PM%po6?fUH$k=WSFkn=Vn81j=vLtdPBn>5{Z4oa2bS6kV*-Q zq0k~3I4t{{1^d-+!}QpL6g0GAn<*flFrZrh3|-UXPOUEJp6GN~s!YN#xdU)+47bNL z$Xj#orO$Dq&XeiRB2Q@g2Fy79;PslB(Rj}6zFYj6~uJ)(u?6?*~r1Be)S`zHfpp(I^a&%1TN#-jS`n?XzT1DS4LM-9Mgoo zO`_w>OEMIm3sA>Pe)%nWE{IT<-`v=`hs(L!+F7#$WW%_ZVDa^w68tDQvI$Kv&{EmTxp?tGv4TB5(5*sJzw{;aPv0GG4-)4H1u3c?)$VfS=Bg=?5uP z|B$xYd)GkYBK!We)~tUj?3sCawPYtC7z322nb=fAO=}VXbpI~c$g&cj-u2esQJq+N zl)sMN`t2Wc=}Nn4fnDktBJb^11j$2`$vnPItIEWYC<15h7+DX$HKSbW%#D&}C+s~} zR-@Yqo)Y;*JUf2C7ey8Obow*EPn>1L4~uH(SU_>-IYzE}VT!4yLy&b|Q}1cI4FIkUmdR4t8Dazo-GNQ}8p>l-MR5I~&VEsQ;rT%zE!uj2`96$S_ad~)|7S-}4Q)sz(2c5T6+ z=L_xw3k3oIov$aIQ7APT^C{sxNa12u)5A2OOY5jWXV7`e^bwLF?!AzY>=81yD9|YB z>|+sNCF#BbrkCAk$fjqy`jpZYsWi@(MH(~&)5hx)5Y*3qt6g8aC1*_1gJI5ABx0UY zR-=i=t&?EL{h`%~JuIW@I*y@slD^>Xco)DzX?L8-u_tTXWTKcitww^YJ9;p*Fj8nO zH9y<0Ev2cB=2I+Oh+$$L8q*LyVDSKv1SCEu-cXa7Z5Q5R{H4RtRN9^X!edH-{I%RU=)Xz{^6Tt8evFq zb8;5*m|H7O0cBM(1mqfqKk)#FtIGb;9$7{j#5DbGJ5iBPGZ&&-)YCVD+pej+aHz{7r4uXA;1JVg z<(KZeY4D{xD~v>7IAa0+YMO~`Rly{64M~v#r-z129stb|gsO*9zx~K4nHkN@Xc)NC zB6D(7J4Xe246u|J1iz-To4Qd~j6um#>m>7OxYg(Z&sYiJ*KW-JQ1NHu<&F0RE^U%^Aq9xWUWjmJHv(TS? z6M`nI!x!MRCW4vv_GfY@`nwFuM*XWNFhARM{%ae;$^ztsx57$~%VNe7&hWhnpK2~& zsg(Os2qu>AkxCT6A*3^~5REme<4 z?UWq8ey|u{pQ)8xKjX~mi6$lRo_fecgp}|!U2$A+MCy38L(bf_KlGRnN$)tGOatx3 zXUF!m-%TI)^&M6IV5lYEXZdDj@i zZ*IWO`tuoRQH8Q6m$#Uj4Pgi2P>}T7i3g~j`&2mK?--BwJLocNqn5w&{ z7iPOIAOI{A(;g%Wvw0;6u7L_<0M8~->24^cb&w0QMQAgYl!|c9L{~P>M9ztl(QXcK zk?X_pNMHb=FqL)~!L(koIR74o3DWu=Ndj=r#6!gde2IIg`LCI>bx6W8P+iKB1539y z8C6I>dp}I0N<0%CC6*HFgU()-K2lk{i5n;dJzC|FKu;C0Flmz2VyNGrl@G0{ zUlrZ(Vk@Qh5-p(0o?w*GMuSe(&2bnzD~Yrq%vyjdWiEEHsurj!#1OR&C&FXt=1!aa zc(pWv2O-txFW&z4Jma9j7E=!;`1dwx)a+S{RQhlib9pRi+*<2|WJ8gCjI?&#WXuPw z4QYPM_W&p97bnDqT8UAt0~UsC`-*5<`W|&0J7K>`OxiMdE}hnvu}Q68QiZ+z_C^(3 zBsKucAFf*~l6J&Q|Hr=)nPB;kk84n387SrnmV0*D?Z6VoNU5R=aB*(w)iHTgFKIUu zEeoek(R&(oOP#;){w-n>Wkx0eO<&~A3-n|Wy{pc1~yb(Q#lZ@*bP?xVxW~RC& zeC-T2x%Z?9M62C4gSteAhS73hOsq)1lqXOiSb9K-f5ifFtxdi8eKgw?|mLl!4vx z(UlTeX9|92h>#e1%|G%Y_uYw7B8lA$U=G%=!6Gz4oqVbO!`@eUK|v6hBCiDq6?oje zTx0khZk|GYZO#`L%8IHmt(4AUb(sT8c{|fZxZs350K_QvDg!toPrypGFp9OfZFrr% zgttkaw!d9Ux+Q~OkTOnhZBaXK`26c(xR2#m1EX%Q`k7fm_?$bRDel)kAvd*hZ?p5o zt<|WSN;P8^6r=zG@&PE0FDre+`45Y{M9imUfm#d(wVP^MEZt%;1L~bc`cURxlIq z-RF%c0ITal^n-ythz0JdNupz%X>ChOXGVfz6GiwxU#uvwKn!&&&6U4$gb*em%V z2MrbWKbu#wk8?Aap!Ab+fIH~cBaH;4e0 zp|9ra{Z27qs<%DKz4k2t?U-GE%~y zH=kI>m=g%0F$%%3O4fWz5skN0f1eSF_WE;p=r5tcUZ;-!&fOOPgkVpQfS6K*fEt~t zaYes_)gmisS~#{_wju3iulRFOy2rYd&7RU%A6k3PCe)FTmEuHqPO3@9NPU4rR_ceAQwF7*ZR4N%FC^OLyQf1x4dFKE$>!nMT7l;yPs!lrM9bH+g zqrgvc(o(&sC?#=^RA+&>E$aH}?2ghJUJbbjNveAlcaw7S#9-0{EIm{-={4-#OgyVy z;W0u2Nj#++(W`l$DU_UKk<35z;!&GZP_iP8jOhVqsub+#E6Qg=2q)NoK8(83di1!~3TRH3H-H8Q^6Q1#c|rmD+~TfmY$_$d}FA3H7}% zLrb(m-l7TpfkeygO<6jTov%8q7$u@G)gHy1G^9^8x2NeRxjni7v#DJ^Sv?f(yXcZD z^hB;*exk#{|KRyd$)b5R&>~t9I_(BLR5WS|vBE6M?v{ahy6WX9=5I>G^4k>|l-ZrFw@45$H28uM}!ilj7LBxRg zP%S{^0A%flDV!A&b8!r0rQvK20ie1ADFO-3-N8!H1={j{m|@X>6cc|?^>GtuIICDi z?h&aQgOLc2wQ|GbtNOK7JFs4I9CrIW$>rRx0pet`5t|`<53|xgCXeT zjuX`j#&owe!`Tq59zok)0!|@|Mb)^T#F^U!sxiRFe+{Q2TB$iRKo!I~2z{I$)_B0m zHCG^LdF61{tbJ|;mr?vmO9`gj>)Hw)%kYW)Aw#-cW)49?=QBY9uW1~H|0Ag+x<7QP zBHJnfqp6nWpqJhUw5YlcM~+&*E?IKse4->kiQ!EplMBJwV?1m4V;3v#lX0W7ZgbMP z3%9(>6*i5({zD6W1oevim0Xa<<4QASHrZ5VE8mxyyv39i_K;+`&f82%fjvyvsF*T> z3!M#Rn53?OVAv27m2)vb(y#%X5==k#pjldq>%!G+DeVv?jUZw>_OLA`<3Y)LX2n=9 zTg>7wo?*{pENKcf2jH2*?U+g-myVoG@Zyx_vf?b773{9{j|2gYa)JIUCx}70!M?ep zztU6c!FGMCxbiQZHElYOXkvSQ9Z&f*%#G=w$lEyT{d7Z27!YpwBka-{hR{NjuBNH~ z43~U}g9Ni1)QsU^yhh!LOi$V3$kF?x^gyIb2}E09xX4=72k5?^uFEN_dul_`vx|Co zrz&0a+n(SUYzjU`=df`5k`o-ku*^d0O2sHa%HU5Q zECHLH=H{LUd+Jj)$eRH=hfvjk%c)$Ddqg4?J6suMsXi;OR6?~Pf{QCxY@BQ>zhd~) z&_0Lux@{WME#NAvJZ96C7t<^CJkE8cnevj7CChL;(bPHvVW*GSXia-~p^G&1Qd3K$wZ<#VRkSWAHP#Tj z%)xUafjHc|6>_~#hAGbPRJ)jesciBTBa}HbmZ;9*&wv68@~SZ9K+PJ5)5&p-f*_^` zGoTLJYF_>VJnUFH=V8y#8z(2(0Y-bv5Y z@!D3{n5XZ1w}EYdqFCHwe>Hc7v3%3eCvW(>{yC$6puaJC$S1_8=w}_%_0UmKmb8?1 zuxBVK19eC7TtRHzQ%5RHhY0%heY&Q@nxiqB9e`J(;mUsNkPFnjNFH?^ikxLSzQ>Z zNW`qc*oBPQyS4#+`j8lyi%VSY8i_fX!Wo3=hNj6_+9lr{0DBb^6OEph6AI3oY>f2Q zh#C2_it)MuRf>2@lURehI!m~(c+_bw{mZsFtmt@{7fZ{)1kmj1BE(jwTuQm z|CKi1VNcb$4t|tD+Hkz2OmTIY1U&Py^7Mx!eJOo8skNzrK)ch+&CsjKDx-&s?k_c6h16oJqSww7Q(#9DiH z#CK$U%!qkj(p+Dn6BODJ3<;b%EvyBPaQwg%c+$Z%Y2DGjh60Z0U1;3=R4p;}`6?i$ zF*C|f&xj?4BY7{0iW#HMo%GJj9p%ZF7<3h;;6$WNzA(k>FhvamC9QD>QApo5jreis zK5hFP5K{p!S~Ae=ikk{yrO1F&Q;2QaSuXj{ZtJE3`j0N#jjk;xtB%!wG1LmbmukR3>Ra0XYlQr3(0 zwZ&M*7YHp}7i)Q+9hPDdtKknuZ1pwt{d-wQz;?;nQKFkZrGUk(5UD=CAa0j%#2eL= zt29D>tM_y&PE>1!LsU4bm?id~p2@0Gr`ehYBik)aM&rGVj+Yj3GzzA3)ktlarCh41PbWc^UiZKEp6KE^p^ngU zL~R$G%JFzsQko_E;j!jfb-+5D#@DO!8s`(_&Y6I`oyd4sfbM*j~H-k zclQ+&dvvZ71xV;%YX%cbmt;AYpUFfUWXIcwyZ>?Q>hmbzSYFhfn>*jWKk9-e_}d8m zef-7m*M%VQKSJMC$0tYuv!gKr+;+mpH>+uXOu9C6`X5|L^apm2i1q$tKk(Xg z)HI~2H*MNRh|h2=Z=Aq=7FOsTF+QDNjMZz6;kqBFo- z=5y4t#u@oTm+4xYru0M88(dVf5Gfcq&xN9n2j`aGVuINVx$7TODjJ9mA{w64i^itbN31hH(X3x^mTc&}w z%~#!eXv_OTTxte^{)v!I3ucBx4nxC&`$_OW384)Q3$d>O@Qd@mHQBFpwC#=Cko{ij zIN~lqq!U=XF$Dd|qR^rsZ0ozgVd(C6ThQxpv{A@9EWdpF;u3AvOS6fXRqa>(P47kg2;fTEs^};uo%JfgWzC9sKW&D{kzzxLN(&7`&}pC1!$DQG2#P+0*Jx5sRTyQ zAi)jS-v?01{JjF3EpJcHnby4hqw~{uRYfTCfMGm%6b=(1{GTy~AwLg6 zYQc$|u|Yb$<}ra1Uzy1Xn-F$m<^cX-wY@+R<3PZj{p2#NhywU%n-K`Y#yEur;Vr_$ z^TCp0al{7NV3UEKjc5JAf6@C%zRW&tH+awnIV}-9lfdc4}kc%*#28EzuWaY>b40t#FQ9=Wp7aqW098+;a zQ06Iw=Wrs?@;y^K!U1}kekknYC)yF05uU5Ia3Xb1JI zjIIa&iAr-^i7MidMH`S$13fJX1fBh0^Anr22BONu*F29&|A?Ug+q;lvcHhZ0ujE@` z9K~U=BE&f$w+0dmHxdQ_jg`?=)Fv0Klj(t+uuyDb)vZaiUKhq-6B)0V?{N}o{EWF} z8C8`HbsAJwLX8SxaE7=YyWN)3L%&y^r~(l!fi#7^SG$Li3IjA8qRZgX-&f8{QhBPP z_%eB_vY3dOgU!^t>@Q&b+o4_XGOHzzT~YybBe=Oet&J)9R3lbi6) zucs5=m)XCkr}v8|#7l43zZj$No8O$x?tRl^MRlc%>*p4a&*wvtX*;r|{P;1wx%9K6 zQ7;(rSBT<8_S;>u7qqe7-0xGDTbCA(=ObrhNpDu&uSo#Mu@wK`2aC(z9Qvpz!uhNL zjWZMii$Zr4BLw3mA)Ay#^N4r2VkGUv2hFhW^FlY>$XpvpG66IYk`Q{2cYl6!-ZZf% z2$EJcFbV4~9cB|Ef1sRFG*vjZ-O-ZG^3adV)$XgEpjefkR$_jP^^8Y59;grt`YCG!U-{B5Ni-Sdsu=Ao7=diKnue{vEG#hIPlrXQB zfse5`3+y^dR>bjtVGsG;YPN6Si#T8{d`m{62*lK*b>Q(zvLk%^7mcUVR3rQcX;66N&BvQm(|_wc+@@p&~* zE^O7kiD;z6F6rI&=g2f3Ly?NNwoM50mK=#o-~j13g+T`e(%}QH0=e1-KMmlTh$Dc`%;Nss%{5&y#c0E zp(OYn_nmd^TN!{DF%|hW66HgqF5v7Wa$?-HU@X+=# zTA{;Dr-xX}B*Ii4h_3P8zH{)q_eA6Uay0G9D?u;Mm{(z8Jv!E&Z`>QX`%l z?Qs>@ceE`m@;-Ec7Y~Zs7msqZAo$+VLeoe+3a;7^Rie+FyAegQ0WiX&{=IP3JL0k3 zMAb+?8nQF;L_hkFtD0cTe60$HxaazFwN?p8;{*Loc`5*qovlwldW@D(R?0`e6W6)$(C!it zo!~|MqoV#;M9dyk$GZN}iIuHr0A^Qbwi6e=Ndm&04k_(fNi?itT#vXA7rqcZoDrt& zG23+A0wHp^l!Q9l3IdeakS)Z{nHy$C<;I&b$d2eg@bCb5tXo*~h$LuO`&dheG-Eov zgE{&``O0I+6dJ&D?ikgj!j@KA0Erz@ARixIE!@~tLW=G;2hwqC32}Pr<-7SIoZx_; zunH*%{-hY3LZTeZp(9SCmC_{y?X=`Y#T@1;On>0hB4(?oV~LI%aH1QcJ@QAD3cF4 zkYe2vKb~ZCq@be1m^LIf=(U`EA-$bhi%`WjS2-YbA2YQ-OQ3UBP`>66NLeoIix(@G zg(%!F;>D#mpfGB#Uc~7@FOJ#tFtJo`drWu| zLoE)lQ@NF_1X54DM|%7BksI}f{>*5u9<_KE*92~n5vyMGX7tRc&{#bj=O%Fw%S7n7 znOKTkyi#WFogg;DkuhhUbaw8`3?_Ip&zT7!rt=9!kSA79=sgFt%>L?tcS@f z4Z4B8$^(201R2Gxruob+`(ZGfKGMtIbcqLVB5p4p98i`lMUOwTHeZ@s%+2Q(u;YR3 z02?9(NL*w&BKU_Rf**s5OlV77SiAEj`M&_&Xo63en5X8#4ZO^jkL|<){#dzL@zpXg zy1CnWydpW0qcQu$=p*&2k1Q*PKfeI3U|xumamVD|%+#z|^5$YD(31OzA9OJq#-2CV zUw00o)_uA)G9T72KaF};8|->{GUn2X7L%gx9xqKCtqH3|guCE+v3ltor~V+lEkr%K zK=mA#-+J~wC1~w60D7&ak9X9{mmUn__TqZ8eo(?wFN}IKa{9fxIdp1cjCz2&(KH@{ zh>Y*6Lnoh$(qpNC(m7`RA#Z2PxVLPQ+8aUr9e3@uPEc=eY3Frd^07|6u3mxxO48?` zXYKhr0*knUPEeZNzc)JKI$@9kW%Q>`h%Q{mQO@=PN5;LFug9Icoos?T#_r%>s}t+@ zygS6n|e^t?k7Z`-q6b%L5frSx2S!u zFnp|m1KG={JMk|R$1As5)Y>E9c~8*y+|s>RckcbPzzh7GQ9PYbSH6pu z_Sf^J7LUpIjkDtqU}c4_5K?#OVfq_489`#AbwhBmTlmfo!3zwRc1U!bq$K=xS}-#1 z?tUo7-=(+u1(FAIY3gf;dVt^mwMUtwBO8au>C`ha3`Nyoy174301K5k@A|IupSGG7{vxSe=dv*J6| zvfpGE^4VpV@~OWb4wvU@e0S3fy~o#VNv(arAcuV)UE*cYJ5W@2K|6V)tc8D9;>vZJvQ#x;y#vdZ=&D` zf>JXB5JqiEPi*a9m%F`(`OSiB6J^Y@GCEkUnImSe%F~A?d z9afOHi)SP2)-$m599I^-h zYdE3FE>QQ+)X(GKpaa-*NzShDfI@p<5%{8HSGzG_ zH>tTxQ^{YYJb*7c5g|CLOlI;LxShU4>EGlL-Wf=>0Gu(*0u}i;gG6DnO3%z97==9u zz#uc+zn_=d{Ds+g6OOF2%~5pXAHqz=o=-rO5(bfSKDFtHyC95rs~}-_vXoHt2oET4 zao~EH(k2ZD4f-5rNRZN=5y3B=2u~n@ZWKruOaz$1JNh9F&w=8I>S#5)w-hEKr9jBx zFZ-c(1DN~#gGt}&Yg)37Hbb3amcN_oOacz7|0Zu-^%Vmkeh%b)POY~p3NPp=P^q1D zKq9V>yOWzs~W;u0e^F87bAl7~S@(G`5qo;Cjt*`)Tz^pok zVvRw1Xq*{fO&f4apiUyq)4m}N-ngTp0s#UqDIAkCz9HR^JX`Af3BO)ayiDkZFnAw3 z>UNoQI_jD^JUi>+Gl3dEqu|D zP9=|lE1(MVy6(*uRY+kfPOLK%O$FiLHJV2E;t^WaZ*jkL9DoQ}ktRrnH4NYOo5t|> zmA#ffffuX(82Hh0c+NrYT^;>)ORGFDKlSrcpYOlN2SA_C=Q9e;#-gXQm6Q}H`ZA%H zNWtaX(V64->YRR`-`CaIP+43bukYK@K^x-FQ{uHlm6shqJ+#W}13bOHKEd^SeP5p+ zFBaR%81r%o06vzTD3LB7Zk)}R-A5m*`ublt2W@4D^7?%IKjq(_KaU>581?mYd-*^2 zR!`=>f9k$MQ}6=*-KQ_K6#TY#A9UXEqUZKfS_8dx#M{$ji5p#}JrKK_WXD6%FoW?1 zQaUC#wqO(UGk~j~#X*3cZVKV;@4ajT!oYDXOuYn%P^UdppOh7sV8>2Ad<9{HbSn*d z`uC8-fjz1gpc^~kM85^J5yvc0;vmnaGQnM2Yd3)DyFN&j#r=(|`*TLna5gnfOoA@PUxZol25Q*wR(Ugs9rj`~b~M z!)gJ7`|J3HRJI?Q`S^~lXw9V4shBbz+`k1)7M37H)~)zccR*ZlMe(7U?&xWWEW*(B zzwSQ1iBhz;Lmhmm_{bnGD1_MzXX85m1#_ zaEOUxfe4CgHVAuj-*3YC-im_^ScD=VaP9Vy!KxXko@!4n!9f-I#EF4+-xIj@$Kt&q z7AefS4;-`I3Ka9Nav-H!eek?Qe<9tDD)B9!A=b*hH;3BUaa~06U*u<=e1VxcWAOs| z8N_eHSSCA-!rpBJ$(>m;Nyr+=7pG2wu?*#f>eDnajdvhDpqU#&E1!cnYLjA9{*(Y#%=_ z)#+OHx^>VkBmX_q=&BUM_Y14hNPq;eo^Qf2q5cfFKi+8x*g`?GAqaxo#17J56b&BI z1X&zEoMhr7AffgGy)tIGoSBLpf?PMF;JNa_ClCnp<`0iQLoA8^xPxAOp?=rGhPgx# zlVi-!jBvpC*Xd5fx+QPJWoiN2I0ickMA2J7a+v5d1$d*nSb-RjBXA>Y1?5eR?c35!^*GPs+zuVC}IL zycXo$cp@z9hI9nwy(buk&-9psrFh)V(N-vEfFS(?dIP++1=MRRz|S`~`m*PWH!6?>@z$=*kyPwnh-UFOZs#HCTS%-tE(J2&_b} z-Gou+gIzuNoWH6_(PNe^g8+&dA;quYT!{^%=+)&)JkegwS4QlkaRW;6b~)@=AE;1%B(~Zs>mjLj(A)zknInh>zv^gO+BRq-ao#X>et$+;}6^8?Kp%=h_5<=*xdEw8eG4HsPYU1f*N*))XPQE$kqftT}NIu$oX@flS*j zgfR~X5OOwvt7FIu-GOY46Fg`RHdKv*qiFjrwE^cf^iOpvX00p(f=_VHW%bc1r8_~- zR6z6O-kMCLB?Hkc><3s3LY%*Z8pVPAS=LQQV!74^oVjV5#hAwI#1{x$nYb1r@mbak zow>oZNYjm{NU4pWsggESP2l3DEQLAq!0{k^;^tcAq_qk%H?3zaxrB$=MMZ+}Q;MlT z<^klMAr|)*VmVpB+)lyHHdSQe$o?!7v?7Z&RNExZ-2QcVdw3f#6UcuAGB#^zbrrn1 zC$kZW=*R~-e_<+-6#C~$9SXpalxzlNE_S2Fod^dX%t6i0IrmYO^mS?=11!8A-UoC85M%uU1&X{&ls(^>Bx3 z$A=Jx70BzD{&ixKK&DFS<9-g}Ijr&Cq$HUzyGqF*^W@3bLgGEyj|p!1>VE_DEFrx@ z?kB;*Y$}|cg6b8THB@$^3ZVot=3$msiQCSzH;L%b_PRmz(MExg_Rt&aKs#oBrvT#7 zV-56x8DrZC+#X<-7wgAL-w1FA2azYCU-!c)^JO${gdlYZ$e`In4@N6CIa1WqLqo5) zXL#Wa6T&T_UK6Rn6et=8+1PA$EPH*!>Lr4mL3+ueftg5XWrT-*MV?gA1dEbn5Ans6 zLv)I$mxn@D?!5_t8UBGff%6Y(p#&sHEa=|uPBk!EhBP$~YBpcdq`_zqNaUPY;{}t` z8DIm!!fH?@m4Kv%vD?jh#HZBzneNh7>;DTyuRMFRn`Pxw0&_HAuG9er*4|CuRMySi zhcE1eJROzOE6POmc8sx-i_VuOKk-klDhgY$vb1bzZYBhAt$V3HUCpexA_Hs~lUOcy zUBgBsK_->0g_d6{?w$(10Nu|Qe}J@{5UhH3x(1b(QaMFFQ#pk`hm1cRDwcNr5+DW- zj*aOl1-euywhWk+?sG^ztA#1VK`&oxvPPIkkj-4gm!L{B-}pPbZ^a!|bwyWu9KvgS z)@Efosg1OZR}ESY$|i0HNdUM92}{duIo<|ObOJI{0m=le8|p9(=(e8Ia-GaVS}xBY z!O)ZL-<&Tt4G^|Myyx2D7gUkdkmVpw#kI~6{kl6jJ~;siS@Kg> zEAwUvw^9i<8mm);hmq}63S9By7hAl-5@E08-y11^4<^y2=Bv;rwE%Ro2&okPMeTBp zk&?GqNSRFXLMS-10#Pghnq3RGR$&!NLfHZa@5Jl-j|I8MlhMnXBC=^T#D4 zuw3kk;@1mKO4fWa?Xnp^doF{rgPMw^k#?P80kmkRl7&;B%w4hsaiwBPgl&hICfr26keQ*K#7cnWz$Fc*Yk)06$XYM@-#oA(7frP=y^T3&;{D7(P=4bC9CP z-Bd~oY58OaYyST{*;YoRw&&uKMS3O?dK#gW zKLiTD+190?D}3=vp@ND<`8_KOcnyH;S6&WwVf3!-5D z<^9h#N;uCf;3=#;rq6ai7819rPdLHU>o=MnJqMFnjZ=$Shn9Cu%oYQoDaR1W11nuw zeGGXqp1FoiHL<*@TUTWA9$eJ)Tz&T7FN{Q|Y(qc;N(bTOr5iQ%5H?0eo*`$5Z8gOa z$B>aRrzcI*##1qzIrNVl7IO<|d6hR4-XM!wuoE780}khHd(mb{Ruz9oo7$OHmCIGN zOB`lMk9&t-mF5QFgSNMgaZPLM`&Uu8J-f8GVO%SJ_R4b^vzq!s`A3Cr>;prSgW#G~ zvKRomy;c!NFyoIDPRV~vPf$rgViU4AXe zLLPs%xf%a@$7B&~&H+UX!Hg|FNW4N)eLo&HtBD1OCEMm_0~=JiA93k!pR~xUpOY z*Jm~Ui8e)TgR<8RWPpM!>Iizp;E_BvM>}deHouK;SeINztFnk6pYR5pp}fXcml3r!TwXIbnwnk`e9hLN7&D7GvY`P;(qp1 zOnhM4_Bf^8?tNmJr+)?=TsZ)b?(1bm_wLK5Zi}pm1JOG7>SOi4G1|nQnsUSQI_py=x21aaz!c|ZW`6OXu6gdgyy zA*iM|(<*hDs<;|7M%ejya!$0b8>K$J z7JGoFyU|L(?#^Y`0K;-R9b2u|M4~#VTQVsv4bvp4)-{5f9=->kfv!JDO&^Q3zxiS+ zN$NX4wfvV{Tup@-IpD`+Q4+6DsaR>BQK5CO$d6Wp{6|@sbY%J;rQX2>iwr_-g^>H7 zqW2VhLfU8QSFqtF^Kg6}y!~u^9cBAT0+CZ*BWL%Sd#^KZ(RJGH*7Qd_N8Wz^(Yy)o zuChi^+A4*OLUi@=D`c%og-*jIum4rb|0vM`Gi9{E2wl4=uC7D(; zU}nTPNzG`MLUpc;%|cf;wjt5{XugEo9?#QyCxc~|zNZmvor#hg+D=PPi*>iQ#Toi; zSMLZ0apF5MU=(Qxt<^}4<3L}BGm(P*D2d86g;TkeDG@L#<6<7;mb_W=q6h;H+)Pw< zN~pY}@)(~%4;lg7I4e6FHbPHLVwSkB;-IoXfBju*RBS;yS@yyxF}j#uuwhcVU6Ka0 z^VOVFjj}uIyp%)Ks%0&_JApR^EM11uhL@;L(`1fP)00B48)0YGI7Mx8!j3C}??|<(vP)?b31wQWb%NlSZ6$#r!uFF10@yXu*eFHX z1yX4j{5DaC*`I=QlCWY93(las z31LwwGBGxwvWjBEuwg7G7KoVAdJD_dATVL(sZ{$}PY{JgE(2v7iQt+fqAOb$gz(nd zumMCxgS{JZ8i^A$@0*B{G}^E@YQ(^lWn>vvN#JFJ?x0B~qnxBglQpPpD;b<9g-6mj z;9OzxIx7AmdTlkdLG4?IEX}Tjylqz1c<6*IuQ!x%m=yHY4%3tw9VEe0sVI+)=Zc>3!RJ3&}S@d+UXW(21T-*sj4QI?rfb4=; zlQphDNzJ0j=z^v;IyYH*fhwbB$V{%gA(rdx;v6PXFp*%Cr11_GsZc=3nwSAup#id7 z0^zL~!Wx3iD8+QqvSh9CjEXnC(4*UYS}o^Q?BTJY)M$Hag{M)V=&?yfRcK8|B`79( zbcp1mdZD{TB+617F2^LJ?$EFrW0|tnw>2I7Gz+rn6UaqL&yj2!z(&ICXV7FFftS(e z=K{hxYS>wnU~3`^$I~1Sf0j>dL4eTi{k){D3B6gM*wcBvVL7A5>#3~S;217yB+C_u za2;f%HW~Xrqz&2P0uKEjJDP_7?mr0o|DBvU{(2n#-T(RYC;s2t4WNGSRC85vDfr=H ztG@4hX%Fx@muVBCc13l6CY?ZB5m(>`;wXG~t=a$YOVgI|@>m>NmXXHoVFjSoOg{H` zSJ`+Ru8_jTJ4j1uS9LKH#~d^enRvk>?7ts6V{pC*`_~Lt$SsB(Y66)G?30N2(&s+> z_TTd(r?a5qx3{2j8*p2{DG_2?hUJNS=LlT*ines%z_d_kf#20ATqlmEf{-bkrYgJ8 z{>Yx%hO5s$=&ZuTB6N@frMFprx~njdx5W z8BK8!uTl}OFq*RI1#IBx92@K*gAcl3{BtDL&6&JjANZZi8vHLin5rQ1B zTp7o^()c9o-83KVqf?KHm9k$0L5;zPDU~!2D(K}wO1~rIGYZPrL~DSPK)3*DaDFAO z?Grc?74AugghwZ81mOfCqTHYWOeMU8O1ry%-`?{#kB#`u6aEy$4oU;MSEI5NU8`KM;C1 zCggDosXXt(sX~i30iE+HyTJnvsoll~E!M=80tnXK1fo{nSry=ryq-Bh9nX(7LA?hK zi0}k>{Bgz>CCvaxXLOKLL>Vs%bHA9cz$>yDRdye?;HTq%3Kyi3hA_r}(VNl0&TZ*h zHx~L_xj&#m$eF2sTp}YZ-Jv9aYA?xw-YO8GBp$BB^?iV?)FJmltkfAn2PFN4m|54# zPBd&_%k~EVyx>rHLCoqDUP4UP6d5hs9zWlo+g&aeNI0HcI`ji(fywJ(fL=ed>W?G{ z{Pem&IXlTqLpnc4l2d`|fir_5K$6RPZ6Uw0FROIh&!quV0LgMid=o$8mrwW20?}R& zZvQC`Fv0oGf&0&A7`xy?L9~zebpz>KI)oDe!nb3UP>ad5XW$GxEzT8&rIm)IktT%a zm{(`TE}sydOw{gvYjvN4_A_yLoSUMrTs_DhH2NRGEQ^_}?vt5OMMmW@X!9>OqcB#F z!7N$16S8x50$f59LT#SJb3z<~QYLxBIq5l>%4k<9$`DN()WvXS)4?oLtO}1wt1M9f zksKBg->ea8(w1`RV_2oca0nphdW@SDl3tx-Vd~RN)^tiyw^`{NeVkgyhq|HbP{?ez zOzvhnZd83&8HBEdcZyqzm{rbF$gTfT$6uajsk+?7u5yxFW=s6Z&f8X=_ETe=4k@rz z*u_WRv3|IzI9FIo=DkEmHxJOe1XzYF|Aum;D@S}Qop}xD>Vf=ENB(wxPn3XN&I{0> z%18bJhFf5(>}1d1;jP#G}h=+*|1QvYw%UjL3T6Q}^Z7 z_cD>Vg5E(yzk&^DZ607V{oBq~cEQRDQXoE=U;E-&J^Q7oK&#JLx(j+GICZ}dw#G4+ z-;*YTdmeynyLJ_9yQ}pX%Ukgmt5Mkl+AhzE&9*IN&$<>nZ?3_#A1xgZEq4|j4L3O- z7pdFQ;&(WjzHj&beeKu+BCV_C5fp}K@@};R(boU@L+qUt>f&&oGYq}51lN_(!6QN; zK1uL;USAaD-aBBYKocw<1R4jKb}ZEC`*vDs_Q(b|#X$1$34s;+NzjCSB@HL4BS1zv z$M`2W@YRL0z+lEFc78QE%MJbue=GR?yRj}+^=isnBQ75#1463+fIY`H0x9oA(YL^$ z-)+!B>dLkcBJZ%v=;3%PW}r9r0^Mm_k9j?T2j3y|nicP>0vIP4p)@9ZAuKB<$}B-d zATa8y%s{Y?Yc7W(MtlxJ;Cw{FbZg6WybP_RO^lv11*sM`NPsi33s!ySwzT}Wu0I1I(9q4NI*~w7`;url*I_Zz3EkkmuljPnV zi+G)Lx#CoTU7IL~s?AfJx~Y;soL+?9%}bxM6#(bzD2Qs!7oPlR7oimyLc%E+%7Nj} z2bvJngXU=e$fruxC%Fl8WHr}-;_O!@|P6 zHS^shuGM#>yZ1b_9GTL6=*wUW7M4!P z7+kU)gR*^y81!N}sLui=<_S*tfFQ@F;G?Y+a|~dht`!+Xdkd~7%?IE&bM=0L*WKSH z<6Hs1^=`xseHPNQuQhzxFH3P2NKaUlkbH{u!UhT`r%uA8TQrLes*vqf>p%(Sw~lxu zAiOI$<%)W79#1L)+6dQx5#|31ky))e_Yx;<$HV+}Q4keB#EjZ;)nFY z_X#%Eim89iZV-=?-VJJVa~9_}$ddJog+K|g(3pH55T%g2jj!Y?=y^Qd2|CM%jaYG> zHt8iKo-TKTP|*uB9ja7l!uOOHp>{v8LHw_m;%dRC`jQv0Gg%Cl1IO=oTNn{ z)(fXw_cZ(;8Tol@p(aw_f4c$S4_|;^KBH@)Y)B(VR__9^)q-*5N7XO$jG3>}fKP`Q zg|%|$s0-<27qMfmrnuW9*KgfuGl$-ch^OY3A7OeH?ko4#B*wfZ8`O6_hncp|F&hzaVI`#} zLn&JUg>?xtvvJn(dwmgzl!yi#YRS>JkR(5xN@Njma6YXT6%F2h6ME2H-gt9UukFP0 z@Q2_=-)`(uPIix8NvLO^MN*s)owo9Rq7nCYpW!NL zZdhER7k&{C60~9E7HhwlFY88^YJWZxf+BXdZuLE(^6z`*A+pNkmGlCd_s1UP`n;G4 z;uw;P@y6e!gV3sdP>#Kwwel@4CsWz35z;4>Nh~#uzW^3v)o%;l-i!}<)D6be<@NwsypYqAnWQqr#@TU;Jt0U4?y_ zR(@CKmv%i7#h@9FboLXW)tqwnsCl+&NOgc2OhzKRH`SbQ7S{ySwR9;4@&|)NdL@BL zKajyh{t}4V&EXT;bo5+w^rTiIJcj)E)N#F}9NdLZ_*E)*aFEVrd#z@B3%&BIr$+yy zvttw1$B$3% z&>qDV@0PVl6=OBv6BiyEfb3l^d{{lk3vY=U2XUxL?};-i?^@AKd@HwUb>oc!SV_*JFO1MSuau%%iEqb;ay0h;xSC4+K9Yf6EU=?Ho{Xl`> zj*^KJRRx~Wr`hS#c%3>qMp58rWX>U13j1lZKZ@(qCD6`1=5l);5n6-!x`sH*fnm^SkyznMCyA*i+ zUU?eAPcS~^#8b58p73i@WuL%bIW!+{nfE2aQ?$#T@PGT7;`32{<1AKhQ@=Gl{0^N| z(9eWz7l;Ft-fCsgWSYQBc8O9cE(rKhfn} zOg17t(C%V$b)IW;-EXY~;O80MbI4F)^21t&xyc=KF_l=FJS{Xjm1+GJX_|h|4U&6( zFdMJeO(I11dO$?Sa+f}9`v+P#?Je>mqAkS(HnZ92nBy8Qa4r-quq!sRu*iAbj zMGZW}I4A4tQ2)79nw1IPvS&5w&xIV;g!768_%jQ295S9HYFp1(%}b%5BnqpRhOk?0 zX0Su2#gr!qL&h~AY-PE*O^o5l@St6C?MhILcR|RU#+2I${Zr_%6G^5>rf6$k#hS$g zp`iO_&+N3bhT;E{+Kxr4$uj!F(YHYsbp1C-DAUc3rQBRqqjA0Iq4Xe51L|m11C0m+ zfJ}R&ZsXM)RdFm+U6wO&sS$oRzCuT9+)$ngP53WEOAao}e$bO!immPe!re}@6J5oj zV$kJpqUF_os`Dm+vL)E3*9j?tJ!smrroB*3py*b}elVV7LX4&v1sUPyT$Kx}EG!A) zwXtwS+(X$iE>}DC5lU&daqgLfZRM6`cC0xGzG$JY^-664LA%))TQu{P2(kK()!a zOAw?Yjic5@+y;;S1;-5eiRCR5h6&SxcZZa%hO5jMMbK&>K8+Ar0j^5g8jr~s$&bu2 zTR3De5<)X9Hp4KHb^^OJVL%1*t;ET+k!?t2BieAQn81u>!4uR|{y9QPQ|B7ico$r1 z59|XGikvdz3$;)Hj0VI}fM|#_Ffd(~muv7vX5@)d#Fr=`E|Tvf^bRTDC9>o%H50)W z9yac&Fpx#LkH~p*S-m^WjsK2>%{AD(Zj-l&m!&D#K06ptTpe=I(jC|xz%34_C+ugE z{epH{LIU!df`n2K1=`0Z1oDCh4zm1I4KP*Qqy)?6KT*}bgGwBb3=vTM%i_W(0}A;n zmd-`A?m>MocFvobi)16+nv0|(JuYu1>#;4?x~!005Ko~?8M3V^Xb%$BW1hND=m?Sw z8E&0V(n9g=hX7th){=9y){@D8q0>ri4Ux%59Gl~~A$Tma}Ulo;rzjv^C0Qach%$H;#Tgs+nY<3P*0prgdq zyNLnFh#o#~eC*v=r_p`RJIs-KAf=5Tf|G>|(U?5;^#{BRV%1RO*g2t0J% zgHP0>*#R|x-yZxbnEAF4v=!LL*ZcGxt9SP6*VgmvM;y`P7d0!=o#lwo0O5WfNc)mH zkrVIxl_lVG>;C9kBLp;HcQ4v0VE^YZ`qK*q3Dq|S0mV+(kLZZb1~l=EM`I{l2@ew-G)gU0;o6&?1~f=00t&3D6ZEWDdgAfpJbbeq6B^hdf%x;CbVu#f4F(6cy+EP$ zs_7LN@NXFrY}Gk0>k?oz;*#HVx!Rb& z$EKS8N(uBY5NBsiWZl%@J+AMa+4>v!P1BVk`A!ubnDzfp=#wunR^oXqJF5J&`o zw`20pVCcP1faPKyiuz%LPPjuM8Imms81=^CM7Y`SaO`}S<)L!?g}+ata&e2#2{v9q z)HHb~O7MJt3e^!Ezvijlb`X~0Eb%nJZ|~s*WsZki@ptd*EI!9r;rgGcV7vn@1AE@$ z>uT}Trw>Yp39t@FQ3j zL6-0YaVJlz<34ng;(rrw_euN4h)GD%N}}+_UWbG-j8b7@1M`c%{d*tEBftOs=6##N zUK=ux#ek;5Jm7`7BX*3y@k3I7*bj~!g(R#TqhlsvSH(4n>>=8p(XgK|7|RX=BrM0U z&*DI3%g-WRhklvNUxDlBMV{sb?iQdF!)ipl>7@i}D@gC}6mU@$DO=EOf>vq~+8#b7*nNT9~U5y|LeqD9XkcD|OQ>uxF z!}cARm_LUI@FNh6bPB}2EFnrN z(wE#Qa_o$4x-Q8e=GvD4Xk^?lh=RR+_3PXgNQ5PzFp`QkAlipVn!S=F2s?jOSQpIG zvL0W#refpZ*G*cnzHM584PDj}+r?#wf_@WY?rPs&{o2L-li&gF8@ps+0fzP#v;)K^ zIe7(fPFIlOO@^Xoni|we)F#=`7}YFQ*jey)52H7w030lgEo$%vs3X>+Q+$!}6Waoh zdrQ0p+7^;WvlI;QQ5vft0fvG)8Z|IfdI`LwGG~J=C`m3rkSjtllOlRS52EW(B|=;1NQG;^r(YieGV|bznz#zH z!ziW)iE2TeB*k0>s8I*QcE=KZ1v;s#ySU%*7bi6+ZP143FRjzgqX{u1MUe9_8iP$& zqeh-X7Qpc05~*gYk09}4&A(6vX2u%={{Bqa1J;qa+KC~ffPatITZV%4*fT0y{^>~p z`Gl-Qi&}L7d4InE@&T#575tU;SgRE4v$9W3XkFFSG}MlS4`v_G)xc_{K0CMyOE(lOzTyg{_GQ_ zUQJ7rHu3ZgS=*j)i%S|p1W_FJ!#Y*nFOkZ8t@=lR1&7L8GO9o3w7~x6-LXat7CrsN z>}$MPY}PwWMji@hp1M~g?5(Kv&ZZSAa*G7?i6_;=O`bayfl?`l31bm1z!)c{)ECrcaFY}@7%(} z!ot%$8tndYrDV|3s+>rZ(^xvf%ZDkh$u~r5W#S7w5J8xJ;JXhyCr$k*8Fl zO~@N4$&c;gjc_DeNv|fA;{7=BMLkzv+O{~aV?#MiSyHFwH${Frv0T2eLCEV2JS-DD zy}cx`GA%O-PEU(&L;Y^U^{)z5vxScBm`7SGSEG|V2ZQf6%h76aT>lZC4mQlT3KK3J zAa_4?(FVHdw%NM*V!7}))mBbF1B>k&9jlK*_DT}5l7rWV$5y(1b)9eB1MmKB7Q3Hp% z{KOIPcC#Gsm(0+!#y!KJlTPx9{%V&40E33%H3=3zpoH$WE6u%C$*Ff;&+3jNfAq>b z*!Pd2C+_Zz0wxF0(~`xr@wrx}leH5q>gm=-Dmd4oLUv~Qxac77wizI?wLy3|Dc%0D z!Q1K6EwQEH9)7;5A4WG5h)dpz`hibDb7cCP;o2b(NDft_4C3z!QIC4amE)2I0|k)W z(zWPCe6Uk(L}*mn!pNUFhyrVz*eX8w;ZhO|7@PV@cgw&nZk{h#5L@qbVR{s_bdGOC z8W48oWMNza05=E6e=obPubQ+Fw;2b^fAN;{1Hth?#ThFh zU}!f$(VCCB;v}$PdJE3Z4McRXj}o%XZFt=>@l{5r@CM=WY(eY`D_iQ;gJSIm5U^-S zkQkVRcs7Ex!X7dE)RGii>No`!%t2#NWhvaq;Lsl<$u9*{WI-xZjGroa(Ezeg55gEs z_(A9HV}-s(sCvBAWLV&X&a(3m!6cv9Mgo((xX+|pPr-18nUL5XkbL}wd2qZF1q)K- z*nJkov1+zBKNM(`@v<>RwcI8vcSdZWc&*Cd8G3421a)dyFf>5I72V{o2;qaMRT4A> z;)QvnT~%)NBTES#(;xiKCS)9XCvl&v16i!DMl?Y|1N@eqvoY05IL&CV9I%9 zzTF0~C$A$IVMtD@g`U&f+Q>qalP9CI<5NDo(L|9}5EAr$5RyYj9DwbK?~S|YI;y}!Xgl>@t&SuQU%<_j?=Lf0Eh&q_EQCzdKavnA z$@vW38>SEsFToCx{J5m~P(+~ts~V*l-!cA#SA3|KfQ4Wl%0&UATFRzhN@pSQ2v+cS z=Rg67M#Yb!0mQp$nnTrK$ zIo%vn0Ek56bULF}x#RaC6T_`+N1U53Z;ONMl*VD=Bm{B>iCKIwQ2VU0mJH{4N7ihJ zcW19%@FGZky_i#k{|&EJ{$(aP|EQOb0mfnbgc-<(TCd)U51E?Pb(Emf4wtp!cY(zi z)Ss>HW+m6#YVR)Q-nbo+;2hT`@eA3Dm*!X(8W2(Xp&)WheT!!AFwTx9*k>nqDty$q>Gdz+Do;M|GZ%;xvw!^EgAD-wT5TwCmKL|(U~9r z7ca(#eQSTABp-JpIr!NbrxpV*h57^+AxbIFXCw#|?!&hIl`^eu5!85Q)_Ig`!GmDH zzAws=tD!9~p=m$hu(uVlRozn@ShHX$0?tjL*& z4%}$P3u5MR^Agw+lNz<>_U^YU_P`euuVuWF##6`pr7BVs`wKebcP8C?=K>>^9%JhD zEE&-ww~tP>>)F{>Y178IM4lzQt>b%3tA9LOBPX00A;c0V|2*3ZTpqQr_+!+55a1Mj z5Pa7E>g)qOn0EW4C~|IztYP0N^dl%(e*4-}LT}$MZ=#PUV>Oc(0+Xx$5@GwUtGQ0B z#k=dKR!ncd2PNW@=zLV)rCTeA5F7Jd5#_ouwKeniK<{ouaN4^#_- zm+pCm74iiyGA4Q+N}ZRUG!RzU6@X07)r9yEZao#u$T%i8M0bvkYe!C6*2cXNy5T;vb z>@XJ$1k`#HLO6Rh7WL`y*x2EZUH1mNheh=J-YYK|c_NDVEKl~SF+WZu&+B9E@bo&= zAkP^3ZAQur)Teb>r{(TpwuPRD9Bd5J(=yY|y_OS2$gt;h$iW*!#vMvNAWZtxdOLmd zV2SyH+jX0X9Brwfv}M$DI_2?g4wN3!LxY+%hQ@FNSm{63d;8ov+M z!ae-fYh2o|Jup1DM`6LW=Z_F(lUE$G(j2YNO+nhY=bYC#xPzA-6%MhpF+Bs?5#AAf z_>JB{+c{WWO=0!j%95ZLfF`AY*2n0Awj`hxukKDDJt|rIKCC6`Wy!HVyl}QVsPt;8zLecv*tWOUO*)I4vU#+k2P^o5OK$-J-Do}UN|hD3%(sf zwhQDd4^|p)@K)5W=Pq;CY%keCL=q=VJ5kW98QkvzSIp7SGO@vZz|ipb9sKd@6Wqc8 zd<``+0vci3VIateFrqNB39_b$*L>L^%DwRcFEM-$6fI2TdE*_191Q2+rHJ)gASE#Z()2<^nJBoR#S0%f+DL>eI93g<_AXNm%j&LdIfA2{ zI6=b*hR)0a6xA$vBAJEH%(oSj#vnt zJ;;_I+Vn0xsf-lq_Zj_N~fP$ek(wRfg+k$VD_XPAV;3kn9%sezqwg#qakaE=vN7BPB ztt8xDPtv&rP z0Cy2I@6{lgV1U~Q5ixy#S6O491t^j9Z~}V0wzwVcAjNeg=k0+(C7^;hYA{Mj#;3~` zszZ*6a3gw)Da{4{VL=NuAri6+?Q=1tJB5*F0;?blu!x+Vf+`>-ag#(6A&Qa0;uXA` zDl8zsPHEpj78>9trmqVkdOM^)#48mjt0F#$#2QB=3C`LH6fBGf!+a8H)*`OD#JJnw~KBlzsbu z{e1;|CU18DTVHp>^Z9-_xjue1x1&JZKvu-%@zQcop6PX8# z%oYCdUBD+*3m5Dw6%Xu4v_sXnXpzo?n=&8*geV+l288!rSb)}BFLXRKB<$^?1DJ4k zeGD^W?NQFR!{R}a3gctI$hXH@-RMM1#|oXyVnrB4VucPSZ~~J=Lq%>b{-+i~hGB;R z59bbCQOb0xP||`uW|Dkkb(_u9fSdM>kV1PB>6 zAIM`YT2d3U%Kjobfgo=e`;7xW$Y~;mVVZrXOFBOpi}%RW{8UO(0KZdEk4-f(9z_&0 zyMWBzNi7184P&SQk1p_W;#Ze_~On*(my%4FB2|z9zEt2boiDs!jr6U{Fg%zO`(a=iq)-F_|}=_kLC_#akWL0!9a%*zg&f&>R*tDNpftlEfke5WHCww z5s-ro=vc$uG6_s`G}Wb>r+3s#4n5RfcNOq=Nc`-X6b1?i1J>iu6S9nw0QATUdF=QB z;ThX7>6Zc-Xa6pok3z7qAP<}aOI|qv#>*Y2GPMWN!rH(QBHEOSl%7+A0ur@{1*YUy zEd+{iqt7rQJe{hgDm|3_T!Und?yfY~1Zzv+)7dSBO9r+&d-uO{kHjYMMgbqwZBu9+;}0^a_Q zPCDk)np#;&rPU4Ff_nLaW}Ed7YP5W^N~o?%zTc-_-x~V;@BvE6mybnKrUF3w`=eL#5Trvvw`vxrLXGnBSFY5QGUwiO?QVXtb0Ye22 zZi#}_;+6m1zXW`KEy&d>O~~8RvWvx9AQo(P+iYSUJJ@7t)B=_0)Ijr8Px7S^+6bpj zDOJt#De#Y$0{ic1ckf7j$x(Q zZ6=8wY%Nplw=-p?g>S0iQE3(1J1aCzKIhojiO=l1odU${7{IfmzUmxCg5M_ZnYkSK5|--rVfWCi?gFa_12XaDj^@~6g*OeXZgp5|o1jC$s+8u>?_4;7*}b(1#x+^I}swALI6do;Cr zQ5A|{__?<#63WghZg?(!wJoBjuMHLged9z2fA^E|p$H8E{nGsSj;pSQ@Bc@u}|KA??mBziZ3c{6hK(8TS1t z&;+o?)5%hOIheql6CxUUIqBoi6`@z>(pK}C%ptH-G2T#?cE{-cS@qwBz*-|6^EjqOgO|v#)D<@sOJ0OL4 zD}NsR-1=h|QgZ6utW^j3ytz-Z7{#vjeH7JL0D1mIrI#E+nGTAiv^_s`5V zgck{7j?rGXe-NOJn=-M{0HNrndE^YWxk~!?ir%cD5+~jFd*gYFKDF=k!W|j5>#0z+u087p^Y@tdnE-lc4A~=Fs#_D1o3qQ@)>C9h zSxu1yUt|X%=t=3i&ky$7kC#=^U^s2Erzn0jgnm+mzwO-IZsBsVbjqKztF7(udp$ET zuVtuAOw#va#;QriD9sm1K;h3&Rttau)O4*}*QOhaxy?GAyG>^rfthum^+cw0fxa;e zKhlnwTFyspqbEGHv_%XrkFdEl-QHKl&cbUodOh4;yEE4Mn(#RrTwcmxOSH>IvNLmV zL+#K-#cVUVwQuP(`6MwugXt@uQoKw>OI}+m){wu;Io1AtBFq6>VqqcRx)7kZ_uCTx zBSasWa}8rz!yOHl=jFyj&|Q~YO(pN5nckcb!^%7E>`QlwA>Bm& zjNLSJO{!wq9EUCr&FP{wd@W8XoU`y}bg>kN0kM`4rM)t&eK7e;RA;R=J}H|} z-W$yA*Y>)hIxNEJyrw+X`8V2ZgHHxbUzim6|YBt#ZW{kNYsV(xcnx{p&c^T%kN`uU0S4tR~d1@YNwX|9D8wZ)c zntD1Yf8c&G+%E8SG~g^(%Z7TbMC*OM7y_z3^Hf zyZR=z_ZD_6&se-UTD5>r`ZAr9EymK5rba6-N;0W^xAX8AExX#*r%rnazn|~X=Hm0U zO#aP=ze+avc+LQ@-V6D*^D3+TaU=W%%Lh+LBb*w=M)|^`2r7DFd79r~5ik$~o4m&2 zMw?6M@*aLrsA;0ZL$&$B=MEQ~Fn-%Ndl6)ff{xJT@tfa2VMIfIYw<}=9C{04#D_F^ zvBXT86|1!Va&D>0%BjFWO!bck>gw%<6@+>SuHG9H6{G{?X)&m$j?}Uz8<3}&8R#w*dg;dsLWL8~~`jC_hfQyk=e0%wGmF~f^ zj7Fd5piTfN3-c_&iqH=o+qFLb9um34EO9v+I}?l^wuFwtnIl7J+0AR&L2FwFASud8$=ToM97P(qFy1zj1cJv~ z{UjaV#upfxK{33|ponUJ5?aLGBK}{vpt1dbTK|*N$ic>xKIn){*)C0qga(p6xClqt z9zu--_tR8Dplt{mcU0mIWm{~Yj(*x;I2!AMZ|7#DWRY%u# ziv#1w)3UFde8B}WH|Sozl&P1+VZUgR?6y={1-W9PKg*LOsj+#wck3yXkR}$0v2z_v zj{+o^v*qa|B!a40wRlXU_!gPUQMRa18P!tV5?fa^kZMu2uKl?=)sT*?rX6~KM^jzQ zmN8Wc2so>B$zh^ny03sv<ImCj=^{CZ{Q3(<^CcQb^k`h(kxsk3hqyV1rTxeU1$=9M4-CW8Nn_n_!*+ zXphWe#*Ol4K=9>|9C?bS#LngNkVQ>kZk>od?vWSBJfNW%lb8oJ(vr2M>PD*L@LiMSNrlmu;9#T^~NZGc4%&~;+K~syxzi1sOkO4*rn0tV4wwVPYUKUy%^pK{&zv_M$bNzqDt8&3m4M5@m{o#26AfB9Y-M z_>YO-ZyDziOwckAgOb7~`3La@xaKD4P*Y4-NFxhYFh=##F=E*ZlU7(3LJ)v?1T2mL zV0EWA;6c$tbT%ktp|U7EaoG|~uwR!^MuNvE53XojR*`&2AstZM;8tu=d|mg6$I!=A z&^FSDY2XlH^EhLbcd{^T;+Ul=hlS+QF%9EFNf}><(an?D?-pOquF89ANj7TFr*;oF zOYZ#M{QWh*?*OXxZStqG{)&LLYI+@qvY+pGVIq9MnLUTkpmudD+k!rY*%~Gp-dOItb-Wx;CCFE`Yd6Khatg36XTGvfNf(p6~uB+h$Gt%}2wgSx^end~g6h~>G%EnihRT-C=1CJVGn)4M^PEn^RR;a2BWC_Ho zv44k(a^oVAxx~R8*6UK;tx5AkQju@B;PEK$snq3Sz-f^WXe%I?ga27ZJ7iNy0GSfQ z*$XbNjATwpqnRI1cOUZ{1lzlH$5@t+ei<)U~F z@yiE69Q9#{GFNfZ^$m%Fcf7D#j1_@74ntO0I0^HUQ&b&`4VpqvyERvK*w@ALtT35M z`^}r(={m<}>^p#>K3)Ixifg&jY1si3ItSqoG|Q+Qcgr+SkZQ_!l`_|;oOSpUPmSyZ z#&gpzv^ZR3&6Ym`HXgwj{QEzT;&wE35{bf+XX$2tDsvJ(Gu!79efIk2E@&C#=3%2D=-N9At=woV!~ER%5>Fc; zetE^XS26?OnE>h;BE?@MIbp`*m|u5E2w26VaOtC*W2{Z60~>H;h{D~WY4t}Mi=Aft z<%eet7y8!x$kAP*%h^p71K_2R_%c^BUP5|Di$X4rcP0e zXkJ!l?qKC&`elJ~lRvhSY5rdT;}jh0;@D9*W8#W;-N(7sWg4@Ar??lIE{A55*;u!) z1&iAYrU4o=_0%iUn0X8iQxV6H!YPLJ(03F*tV`Gw-9J=+{vW{^^Ztf+>l@Br6WH9} z{rO88bIwrQvcLENi-&e4Y zKNr6T@zBP9rf(WwOt3>c2=3J-J39#6&=6g^LO=sPt~8x?eEp^n0B+Nf2*$N7yrfV z524Fuz4&-hZyvl_eur`Ae=Yu4UN3(8@K^QA1NF#1ioZO3n6Z}Y)wB7we(>yHq%?{u z#X1_R{pX54Q|hya?ZiJ^*Q>`DGJKj`HF>_=&d!p$uhxrt^5aeY!^iE_awXb-KmU-v zIk%O6Slc5_nS;qrJJwFddph6Fuhy3-b`2IZp2cavf34+4N`#rVQ+a_UxA>h=OvBhs zy&PVW^FTyZzMdJHdhDC!k6}dPr!pd9MNXs8EZ?Ql5ZqfN@r*FDVXBo^4}{o`g1m8miny6!8!`=WytU1VLn8;gj2t-A6>9F8 ziDBwvoLOZ%&7{^Bt*lnltWqPp?sP(*?^G7u9G1f!tIRCfX;2!!VJdT{d7YdAQ!~pD z8~4TqT)U~XTRew8$Z0Dh=hEaXoRL2_vj$d>Ba~u0(E-`r1v%RVd~2rCCfCl=)S57V zo87YHIg-fPg+1pPy+xo+c)o<%2!(A?Kwwq569xv9v3O|0> zEb7g2b@|}M0-RrNKRpy-uCK4^50V3almy`9+55^WbvAk59Q-;=Z2QwA3Eo`Dv(9@w zS~oZ6q>-=QLX`i=aRrDrzy79PUjClPJ^thJ{c-^g!wro>PlW#G;+b>VDG_3@(uy3Y z_5$2kUOZl1Ue%Cr^89LkDR1FOTP1URx~fIC*Ynl-rv5@{Wfdto1qvKo%N_QAtY0S8 zWG3P0DJFitysG68opHC;ttI>B!ta)=LAWZBx5rn+ft<#?<*YD8cq>0UyltaYqE`6S z@;CuWr02enuUp2p&nNZ@n{!{w2p5EeGq0K-nsyv^B0`eJCux%C;A}gi^h6~B&LXF$ zqm>V}GtE{i(3!?_f+k%$P%?sl5ZpEi1tdq{%W*-UPM}s6>!XpQ#@;7_yJ$dgoo3i0 zIyM1Nr6GDYL8F#!)o+NtV+I>&SN(?IGPlf2a;!Br1jqVgutSg|kJ4^XBFL*;t1vbl zPeqnP-PaOa4n%T9TeKCrWMbiEfHP%(AE%L+0jIQ`t?_DzIuFr7=_0<9{xFw z$CEi8`8dae-=nw;yQR3&dlYy36j#1PaW}wj2TsFt1$GbHwIz1@IjAFc-iaL=;!Zcd zeD&|2zkc~SN}tWL-eAIl58ESr|34o(rB3pj-u0Uf;ke(dho^qZH->hdC==~CQG;yf zayVVy|07N7k`Mh6A2vCE*~4!!`BLso&xZp>?HtI54!k{18K)^9dnuYE+e%vDFl~z? zBns0cZ>v+E<@B?kEmMk2*)nI!lqFG61>a=xl;h#j_tJTGN0q0Cw=bV4jT68go9BbL%=6&?! z-TKGX660%GBh*MOLCPukBpKW>8T3dQ3Mu3y0d)JZbYBD-DZ-uZKS>yFziRFa!>us? z1G(`NU6&i<5h0hRIua`jFbXeMTQMLrATnK-q4*0Pe>O2T3O+sxb98cLVQmU{+BMo| zP*v$2$MN$ZMY$I)pxCe%Ktu&WQNap|T~Wk}4I2t}v5R0sv0?8Gv4Ir@dlxsGyxN^) zUu-gy-6S)+*<_M;+3ZYabMN=}@a8lB`5o>#_n!Nlr*R#}aen>P&j}prY{pG~PQXvj z3+k=7e+PHqUgJ0($MJKVV8=0@FTV2C-oJlo9KY{uZb)7kCvc%n{7BwVH$i_4z(5Sb zrq~RF(S>dd!BF&I7=~j6Hpdnii7l~}ae}Yf_tTp9^NzX=w#6uHhwZTgcEnED8M|Ot z?1tSj8e=dPdte;)#CYt5y|E7_U?TR#BuvJBf7stRo=B$ZzfYnZWz`Og#}N;bhFhDL56gaT?~}bew@R zaTdkpvnib%;&!Nz`JO8z=o2o39{O>n*@STxp!~1MT0e;&0TdSK}JvWdCZ9uH~r5 zII~CEWF1MEaTZ6}WIai^ahCq-`*gqj)#e+>n|nXr1e+9*v@oVws!cYMMB+}|XH3|i z?9ojmZH$TPVH5QXZHZG9e`gc*743`}wA?1!NZK1Sc$H1IlXNmBquBeN zO-a4Y)wgsurYy}S#Ux#fsrau=^gg>9bEff=mXLHa=F;~zDJ6+9rs|?ic9FyyQ~ej4 z>?Y}9%;R#KsDFzy=H=gPvX`W%F`qWrWFJXyV}4g^lQNP%#(e#QP4<%{81wB}f14a2 z>1)h)-m9CS3y*AGPM&0fuEcor;7(OGKS-Wzf@A!Bc}?TB4v`Nq!L@Ns-TjcXhX#4HHd~)N} zZ#m3_~VUxQgON^)0*S^;l z-Ld&S@}-%(G+e{9s4_?~(?&P0ua zAE#rd|zv^1$i^-eZ0d9 zc!@li`U+md>*Ox#e;arU?~uDOgyb$h;EFEtQ0fq_r7P<1J=CEX#^>!vuDU;Jwl;t~ z93%J^hTsSsMc$lxJZC$GC&*iH^#r_&_sJvqn_6DA4Y!lGM77c#xD!jsTT}1Gy||ye z4fR1h!kO#I+w%VP%?4l)Hsfd%w!`-1!RSKWr4H1gs5{e~f4n1Cc|nqd$>g2L-{1%Q zOx_vweEDGjs)cl=KEeH&j|<4VQ7^JW739$vL$VUraOTtGu_U_6DLg~o zgTFb47x4;t9CamD;Vtr>7*BGC&o~^@$$OEjr3Ij#h2GRb*c5}w`%t@3tyC>j?JWTl zu`jt=pqo00e>{mg8T(;>awRD^fLDc)_oHrsYEfzldQ}QZ2keYp$#sTmR4@0Dd?0lL zZ9wZvKk`A;{uqc&$x|_nSKYg=s^<%8Z=j3|g)Q7+2Y-%Ax`5uqpQLG>zhQmpY z;c+}kK7#r*p2c(I>D1>rzgk@_c?R`ke1dhTr)(sue;>%i(Hwn>&rqLY4D}0q#Z~gi z$MPLDCs~9`$j4DH!xgxad^}E|uPfnf(cGCF@`==ku>y~iPoh4B8qqG0Po}<%*HHa! z7EU3#ff_X;$fr_AVk>Mzo=qKv>Qy?DPowUPT~O^x?^z?J#-kxPoLpDTz)?7wd?xi+ z9FG&pe|3gQsL!PlZ8=A0;~dN-FT~Z{$z9}gsrR79CiSrzwaf7!9wML5RrIPFR1dHA zxsc=$KEbEtdDJiPHNGQXMEwCja%PRf8h;~DV~R!!wG)lYt+6etS6AQI0Xw1k;e2ZK z#tW!3$d^;A^^QZ`RrRhK>$7kg&Ll6S&c%70e{&)EO6ojZ#L-ytRV4fH03O1l99@lT za4q>UJc;VD*HNFxOL&!hJy(h2I}Je(`3CB6Y=OFaMYxef`%4-zb@#NZrV&tgFP?le z$v{lS!Q@-0hhaLZXV{9{NHTE@jw9brJ%RK0rd~|GgL*0EV*z;V?92{R~+4gdr{BGTh5<^y60uoVHl2@Iqav7 z#8#+&;{bIOwnz0F<#>>!9}YqF@Q0|?Z)f6I^25}+tCKOCTqDH{oP!$m)b=V!Hse;@ zL9P)*J?$>k9nhGv7xj77S7?r*PgIF1f8-i{PSM+s#7xwCK25DT88tIWBfmvG97p09fAZU$ zKNZtZ&+Hv)%_1~g&@)?&H6&H2zOj&8Gx^oH4%d_4qb|ZtxP|;a^)@WVo2d291JrZ( zi2O2MLEY6_>T7r%bssb*xrO>HHRPJ5=u_+2d{177^&}s$0X0j1%6H+QLCxi!Q8z)Y z2X%j*lXSq&s4@Koz9fmkI8^`ne~Mc3;RMwD_BC~1&VP?uqmNb-S(uH}$=~8Tl3AFG z8ZqBfFT_05+TjD|e?U@%o5?>?Z^L3NMLp@CumL}l@5ge~e89W<{zsj?d+L|e+O<~I z{j5PiZE%5~h#`Qm5iD%peb<9*yHrf3wG?*o;K; z!^vDRjXaq89M{sEc@(*eTC>^lIEma%Jq2@c7P;2uT8Yo)oaa%ieyw-Z3#o6>u0fV@${m5HVYeh4d^A91{dVDc1!KLJ_ zQLFD|n2#&SwacVg&}v*qe;!4>f%6Zg)`;AW`Zm^}K5u)}itGXEdsqAENc|LFpyrcW ziEB2}4ZD+T1|E$u7)#y-yOQ+4p4f|AXXt~8oOuL!cakief>X(Leys&G^UuNQ9F0L; zw+Cv@rdj=L%q8#1wbX_W;}MLw5OpR4BdzR)IG2#>Qkgp_d#7TnS1~awQP1pP)Kj3g8jjk(T1-BSx;3`NcI4U>(N0kp zR0|wI9gF&Y^?B1Ve}hE3B1>=#x#mmbZ~{&yA4NSCb8sfPW>#}>9xfmsjblib;%d~h zsg<~%%}uzKT-V)!C8!y)W@}}50GE-gcb!Ob6*bS%ldjoaHQq>)2Q_greh{~4)s{nyIoGMfA#osEW|bBGf+F*>#+zo zlFy>vgqv{-`E2T~oPPziTI?L^I(&v|v3mCBlDt9fw`*OjHKxYI&-4{)$@4jX0g3t( z^%4uHwYEyYzT{e)Yi>}8Z7_;_5p{c1U#i|_F?9tV=RFjVYh2LUb}d)Y4wyz#jTdSg zTFnhbjjI0Sf0|(iqV~+S6TX6aJMKiS`?Mb4jr({%k>rJ_wLnX3h3Y?7Q6J%bhN4DH zjZhi^HKOS$)(&b%uA=chlzc5}_FIlxqa7mGO8hX_ibnPGda_QU)}$w z8>n4rF0B=Z`aQMk&D5IJPeqL{Tc~H_OVpUCHQgJ0e}|e4s^{N^+i?dL<4)uGpYMNy zVF3j`Lk{?ithBqGYw$VhdtZm^QLAwO61WfL*u~ORyC8 z;cnc6d+{Ka;eI@T<#-8?;2}JWC-5j%;4wUor|~47!i#tY&*C}M-suIrjhFEXUd8Kp z4J+{$e^%iQyoq=54pw6gKEsE25AWjxe2R~-79ZmitiyW##2Xy@kxzQ@=2mZRFi z{)i1GBL0o7?TVVvY#1!m^9WWZZV=s)y{+NjUFb9X=U>u1VI3CC0 zG@OjtsNa+1;vCd(Z1PaQep!zCEsB2YqTj2mN;P58`+aRb_LI-JpMAy`+xwtjjBGJs zy^DPLvpk#Y*C5-yiSNJ9;j3b8UgE7U`;zZdY@%OxlzNjh-aH~c$LGL@j`M%s?WF6M SE=dv~3N$e{3MC~)Peuw4NI&%e delta 121955 zcmZ7dY<}lP2%bJWYxQauQ+FLe z+LAC!FRfsRbhNVwb&yIf4`+ut(^h+Hc1!J6y8&p@m~@onDFIT_i;zINT@m?{2=^yQ zIZa$2BAzoM^|uGy_7%3NAbD$8LO1mwzgAw7+dT#JLB^6pVHHA1Uw2wd^=|1o^MH$Hz*Sl)QT31@h&XMM)Yk9-1k;1aXMj!bM3ryrPz*rW9EDj1P!=}*4uyhbqpvXh} zF=Ul;)8zN1v|ax70_6ZV$$F&1Gj~Ma zyQL?wa^CyN1B}JFxO^7%!9rxR?666Zh(jWTvB!En=4^M4R)OX&jJ{hn;_fR11t4dE z-6 za($YXva#bM)32UbO3*^Kp+QS2dw|fghmww0NvacKGgex(*Hu}4qaAAk@#iPaarz&v zX%D-jAXfV*cHp=1Y`z5C!1?|p^jV6_It|h-pA|$<%d=tLjMGGPQ=XK{3r-J__1W%M zX-olEJq45?ZW$l(PP%Q=#8eVV@BW9Pk`f7PP_=X#f<*n)uk1bfS3X^?qM7EDhhd}TXcW>~ zy(*~cdkrLyIqqH0M_rWv?iUO1Alvly*|fR0ms!NQ{8k4s9@$;G|5)9@zVRv297wHE zayt`yO+_izv#An`jka@wAz%*E2-{6;^EqJM2=K{;x26&ZH|(X;IqWky!RUP^Oxv+i z&bZBbaWcH+7+R8H|`sD?G|Gc_f*qVv?^ z$-gF_Vth7g;!YcxUQ)ju6#5xz%fR)HeF5nsxdVyHpDDPBE0HNALle9mt>W$JOw2zF zkk_Qh6<_*303dohiivbQO1%PZHU@jmZNBd}0ZI%%X{kg2IMl=f7%E`q#Az5xfH6;E zO^5j}K!MjrLUu%!$;rXajDg{54MpS;H{mbuAU`O=-mg6a3+8o@%ivpU@BJ_VK;|?z zW-zvQ&W{53(VhoU5(}6o4>@S?{yml#C}S{pR4+6)_L>G)9NI`GD>z`fPKbo)kp%>v z0yqo_O72|~Z|uYD=&SqG8Bq@iaBiYI@C%La`^%*B!%eGRo{rIUr9uIl<9C&Y@vwS^ zL4<`t*c6J#c=fGl_8a-d_)+>#Bub9HcYlCxI>OI8cSDyopNxCGszxm_;KDmmu$e}{ zr&N#ze5?RTEzbaqiYmmhQ!$yRuarBvLDO6(sB91c7$o4-VPP6|RPQqEzxxy0%prrX z1-k>r;5}D*24oo!xS>_WE5Hrr)!L7s#(hi0pN0nemduaeNCf!s1I&ai`9?8>Bs>Js zlw`u{z$!*p-PU7`k+XR#zOWI^U*e7CjUBGa#k28*AljM6i?ClVO{=4c(4mIAS?}r& zfi&HUv%HSaM=DvPVdkU&-hYI9knJ4@+VSn_{D^t+iZ(F%h-09$-&hP(wuyOjDd|X_!%JfCa%f# zCf;pfKp92mFYz8xc+DzMXU38?Am1 znT-a(IX#K+zMxHsqA-*g%4JNzBH+Azc{D(un-iB)NeIsk6&%>)0OSfae{wx`MZ!ARzMf) z9_&KLrT^G2I5XvIM|BhOMK71$0o-q@O{qxfVnC_B{AD%3w%C23w}o!eSZDX5{9ABd zg-hgD$S>gXi2XJD*e9+r3!F3HRisClmb9s~^6`9u<9(_`jp8r_yVI>$a4M>y zl`1Ol)tQrF_>`3~sjJ%o38LL-Elr9SA2mysshG+CsaM-ZIW8(>J=j57Rq)qia7I$A$3JgCA zQIrE#@Wpwr<+UnPzle#`8UeYqoz-NtMI^X^q!APFpz0MXj89&I>{*Rql>sud#n}+*l&~Rx;U6jP^MsFLe(?Yb*SGrLrG(%d zend8c`I&cA3Kz~pN}u9vezvSfTQDa%oKa2z?e%lriGXN2T(@mE(tp#UbH*gwGv7HBb^#kKM@^% zZ7T>AVE0A zorz@rV(w%3Ai#t}2+69mb^qDieLIQmy?8Gz-5=Gn2SSp)+_&JTFc~U?WB@U6_k2He z!0osF@%{j~yuFuuZ2m&=e*IMI{%}9iUI&Hj_X8r!yd%GW_q#m&6gUB}&m5Lhq4$u- zjlH!={FA>>p62YQ{av8&{p&=i0$~Fe@_RLHI;rw0 zw0VU+l*rR0!gZy8dXX^ZxuvfRS<4XnjCxYP%DCVrz6&GdgJI`d21PoU-z*AaFt>bf z-aCL%m~MLDHLzL%ARxhN6yr#t{o zL2a15>^kaswfdPqr(J(sd*u3J3LF>u)YIQ~U5(}hY!P$#&UrY2U6#W`AWVqbPH6xe zRGk%>1Y%$lt{2gK9*<;z6AM9Z1&jlHklvqbm|^Iy{EOA|Q9d$eLa(x$-};-rc)_US zGWP+LB5^YQqll{5QP6<@{W8&xu?Qd?(;VkHNPUJ`5RJS$y;Mn3sireeaT@U_@j69~ zQ3KxE=L{;yHwFejZ$LS}bG5KhpQuAdbc9eYk3MA&K zzvaq8s>RFGBLGeFb@2l%jmZPF%oe_EBGmN)v+QKRWvj@o`L3>MO?`y{^$Jje!MHet z-RI;^77q3=)`M0Ge> zEe2H0)ha6RIohkXon(nD-_?J=xh?4nMa)$pzj{XoE zn|SOw0r0D>6-A%9YUv#v%lORb{hYL^0A3sv3Qdz0!OGg0$ZYb#4#KTw^v=R(#+ou~ zz*-j*U>XA?MSwHmuy4De$t*LMZsW{*hHbrAHy7w@p{VDDaCP)H3kNuE({F|2SRJzL zE4Jc7@$9=U_S4IEnUY&Iq~BXT&(eWo&*az1mst_dul#hg$+iB+_8c)mcM!piQ&^eY zVY9*gPB7Zt7MK!lOlOzBypw74>{nxl@87+N`OeWS=AjcH<9+>CYD+F7jM*z3y{bt{ z*vy8=G5k);aEoVB+XS^TWB=Z}94E2zeb^T;E`k248M&h2?z6-&$QP-kCH$-6eYh0XBi=FU^qJxNcH2 z5=#+vS^Rs|q#+H$X4S}aOA5=}Gl1)wB_BlqQsT$jo8A!@A;Hl|dOVmZ`}W08cX#ZV z_THD83;5jU--;L`Y8*#*2M4e-{{J=g&Y1t2`t>9F2QV{k4>XN7m^fV=oqs1`Fzsf! zBFV3wu{Z){LV|%sbLQ5T4oy>n1)nGnvl;%=-6|01C_iQuX4U=FyTKPKPS4)6So^O% zcF(T_9MF^%Z`MtqVu}N=p9x6F;&Us;%)a;6_Y>gp?ywvWJWzg$3r7ri(Uk)Tip(Ny z?+fZCIIztjE&z7VJz6`=p8cF|=$8H(yIh`xG{kv1ho zioo9U!*vh-u?GX0*^jp$yAp%wA3vAV z2*3Ijgq`R)F#zPx4%U`I3=_CbwY@L|c3S#LSfnreY6vioHg_F>2(42hZZcYV!p>i{ z5IzbD(25J8I^9KV^J7xdNaI zT0NbzdDyrB&VCDXpg2Wvh;;iXN{1xTYv}iTmmhOQrbN^~lu+R-&eV_! z3n7Lt|Fi@zkOIT3KZtbd#4L0j?F5^u6r0ElaT0-|OrJ5;DT;wL7f6{X_f5jfw4c|j z7NLVfia%vMfVMN`r!CiT!a;6)$!{d-<$H1yf?!F3ycub$=VHpiZWVhu$N=}kcJFm) znkT1yl%#GD5quGfaoEMjJmq`AOp5KoLq`>Ug5mwx?G1lql^wE?anL7ULk^-gU3 zc7lJ#eSz1PG>LJvu#J@_A&k-Klj2jPc4g202wT)6%(MJRG^LLU5~b7)4ltnyKW@4u>3Yid->@{&&cW4=nb{sQn6TA<#(gH26b zpi(~v46Eeuo-7AJjNC9)v301~FdMh)%;iyN@l3}4Dv$FysR~7cn9!1;FG|g7sbF`r zk=B}Y4is-BjA!DeR>6x2_OC<2K4Y>+#9HN7UYD(t6X1>0aWCv~4N8N1TIea}>vA_P zq%Z_-8%QaB)L3F@6#x=ayDGWHwdEZX^0?}YG%}rJ31B(f(~?F`cc?;$L#ECZWqD6a z9tk^P6F_pO6ey^aifJ5@7nzU`ISmvSxQ`E|2yiE zw3E1(?%VP(vYO?O(xt#oX!(P-`cXX@9_r_;xAF9+~c|L6H5D`)G> zh+N$a)Z*zX0fy0@@Au;)p!J+T_nIbcZu+w2M1$ee1Qbd=*T9DRz>0d$7-17eHgmxgKs(`L;Ylk5u(6=h=5SOr<~ zp&^8ySf0k(LZ9VUEsjPsTn>om(=kuj}0u^kNUh{W({Id^`3$7*IRv z;@Zq%Wzj;#+qY9YQmRB#BDOfi?u|L?3G^<}BllIyK~7bknNTp=V!Kl#I!fY|$Vt?K zf8^6pximp{X|L;Z*>JGFeyn~=ak_Jr)U|Gabx%=Q_qp{BnBn$17fzN13keZuMUK!| zEcwIQ%^9+VTCE@DH1bC3OK=Y}@|(7i((BL``OT+`**ju~-BA8AkUHIdM5aC+As-`? z1W1|Qh>WsmiuRHmVTs0r?iDal(3SFYOl*ciu;zC(Z-OwI#y7L*@M)Cq0e6V-7&mN? z_&qTf$0#KRKsFNwnjH=v(K7}3^Khyob{~8{-z7_=8ZPXR{Hv5bO9I;&7kT`J%neY@ zWr(8>QP-KH?d*IqcDW=iL7t1%x5wJb>Aw#l7H-gy-gWKMq7&8N$hE3B=c7i*W_cjL zvqm;+ML*MSD%2t3)^KjIFRv4NVQ+PddBN}MPDl0v!2fj@>T{EgwLr^qbWdRqGSP%? zc|f$flFm`o*37H5RE?7u_r)_0MAvfft~~%NCohDjTDNGbi)5X0wIV7B*CmWd(bwg* ztuM_B{l^%~2R2*`JiPRmnD6p<{PC<#yjCPWDzhVu1eVJq`6Nwn=_ve4G&AN^%@$}o zOtse$5I3B~s}5jgFKK%jNumc0F{~M?VS#L9rIXL3qt-iwaB?pv^1T|Dcvx)ykQ+R7 zq{iV6OUV2Bpu9wo7|EHp2>8f3`GV3O;0mnXQ|w=7$vVYT21`@B`cJ~1BWFbVLSF7Z z3nFVTc`1Ds_W#KS`c4p2)uy4p8C``+gbYT-mC`;;2bv@rXhE%2@tBq$|o>EN-h!3p-?_k#6hiJMr zlWV;SS}_OCmkG;t^SJ^jA&06bG;^wyj0Sb0c1T1~4UMsC?RB6DO!OvYM}dEwy~`8< z;SmE}u@tKtpexz)^IX|gnr>-Ms8yO?Bibv^90uF_K2{@;)oq*TNNbVe(|w`V!E}6( z>=p{^)x1ED5i>z1vPeyJ%#Oo-g%sQjNh(EC{oTF+wsdRj?+F6i$^Uva_rN&hBKk;9 zHpfb$R%lbnBz|p^IXrnMgtr&K;jn%IKB^Za)W!8;8kFPwZL2J;TUHAX#wj(%Pw!Rm zk0IO%Pu+H(3K16$Y8T?&kg~N2VLAhnyyTYR+Ay-{SNCZBJ(QILKKXRgv{mqqof+sKCa=GznjkrU@|y$nsjD>E1c0< zKi`vsd2T)dS%(jfF_8>U% za!*R|)?EGS-GQzeE*XPkevIsl5$!qoCSRBVOmOeiU0j7}j7XB7U0$ z(F?3QtZYBkp%U&7h`A&LQPnfRLO{j%Th0BBD4INqV()ZIr7L?HlF6FLa=4?FbQHk^ zk*(r=3X)CrZDqa2%F9}APxGb7z3i$sZ^Peng};c+DOS~MzR@RdH~>=yfLsPo1ke4;Mdjo@f}yzW&$fCI$I3 z5TEz&Z@pho4)0$0|D&xq1qFbGf#ZK@Tdl+^Hz)wN{f_<$>A2Q2E3N`bB48*q5rVlv zVq&=WOTX3=TT~DR-n=q=>&^H1p8d{b?gubONkrNU5xa|^5swNGqr=@LpS0Ch_nG6V}<#_1LM`6#ekY5Y@^4m zT;vPII7Er+c8^?g#{A_u=i~Z_H$pBtCFE4%%|jK)GtBAz4yJwG9?P+#5F@HB*C%@V zx>il10&|I4@X(v3|2EHtw<#r+#iHC!?((np$%V1n3ciCkC2V43<(nP#UMqeydS*Eu z6ZZ=QkP&AsH^CLO5Q9n4obbgtR$Ilx?M*8j>Jpj@F@ef?R~4Q#C3BUqPW2%e9dueU z1+~xNrkw!cTwjdxgNN{G0bHnKJK_2aaC)6XtVBBeoOO~acj%kTe#^RdLX9S=nUE>j zp(z%drfZa|b~G;?zw_^UUxRd324>?D;O`|V(T|U<>5Js+lxZV`TiDND1p6Xdbe8cg zP)SEMCVPm&T6%VTKqc_6!~U;iX;hQ|Hcrm}DOt99d(7bfZw03A5|;Ga`zwG#sN;7X zfYw4&DjEN4Cpa@qM7y4;Pc$awfG~4!8ZyWqh$sEiDC8&x*E|17Qj zPtn}cziyLWynDtKtSd~1%oH^XtsNz(WMn%U)%*SWumQZiR~9z~!Ww0u%5OMG4i0Ow zd;WDPkxv=LF_ZCSGuqDCWk1Yn*WEG}0AgStBsH}~wzzf*^jXm=2u~+F*yPGHS8;Q7 zW_%p;AgdPjN0@cPZGOjlh4=9$>!dt}Clu3=kfwWdfi z?xuF80S1`c#5=mU4%4U0t@ytNR^gch1_|C)qMeE>?O*XY%z%vqU6oLtm`$qA_UgRv zE+)2ycJY~%JM_q%LOYjzf@d(YV}WjhwEaVyB8opX}ibq!A;l*yNv z8zJzZrX;5?{<+MdfkB7()Kc7HEL>sk>+nWojUp0vOUTzYP~Qh)F*e?RFn{5cEY?wF zKnDy97~+Zp?9qu(h>!(VisHt+*k=+U7-7|&#%l}w!=u}uJ=Sed`}%O0E4S_WTq%R0 z27q(i?6wkxHjKm*hnsSTBnhhQ5dwB%r3{g>!d|^IVAv0Cn%L051yqh;wTTF>8MW^n z@p=5O4k?g*kx*qNK#aw?s*`4xT^qGj3<2es-V${UjUxqo9y0RtqK5a;BVZpR85k_a zLPBL}5puzi9)C&$HWY%fYp$jNh{@J1CDNIO^v<;x5S=R@%Bua_jhI>Shf$y38Q4d4 z)RaObmd%`fQKP9>7Hci{C}0fKM+PnJhei@TZhmjtHQ|4QBH2zMEmN?6OXjQ;RRO}V z3`k-SzUTTZ%RrRBGK$a0vUnKHqH&tlU7`Uc;Z{>&xCEBD zES`Db#H{QfHNI90wfQ{3U`Zp~Yyca?;!viJChc~|wPx(kYB~ib4ZGqzS;l4 zPrG2G^KJ4gRJpz;%H-R|4{rf0SXWk>BW)K zTcJu<#MT%4>~V);J^w`6L!YbZlad}GjzG_KcBpK_M}+j2-Ff-;a}4FJ$+4}&rgx7ZIR6cG`t6ckOg@%>D&ocxV)_K?S`&fP!8*Y{iMFM5bvp0U z{bsSy3bX~;mpbPX*_J9NPx;TX>ae-9br8(K@{^PQJttj1;p50M64p-L6RB7u*)h+UlEQrkwk{U3MzvZZ)s#k1t~;DH;Mt6|>hE~v{Cu7l-B;t; zA0u|+&ABxs@58sjCZd6YlQrjR-W)|wCHV@9V5bFVnWATgCOy7)-y_AAbL zq?iraJc2?E#rgG2fLjf=RDRNoS3|~BD>Cx&voh`N$gLaod<^)0UI>kysS|A(FplkT z*vA5|!5|22J^T1EjVN>&B$YLgE^qJr5YL$62u)!@L|sps`PS=m2;Rtj3HB7r9@c$~ zX34{Xdm)(79|{MZe}094KMp0*Y-{G_WB@NJU8$Tw(q7Bz*x<;8tvb(`dO}u?wIj%Q z6kza-$ZE$qHR0=;Z^XYo`YSs4`EOqgd|T&0b(i6+ld>JfLe+Ao4Az_TrW%5qf@$$O z%ocmr4*5g%fpFvf`xEgOB$%uh>i;;F%SZ*_VE7-5C2RhNu`cABM>Jo57kBX@Fep0T zJvl#T;1*cLH|gZRx4S`Ek<4f&w}$m~GVz1^TaOB*zu8~o$^3wc{iH=t-Ic}fUX#7s z<6r)V_tDq$S^zBh?d&B_ZjWB6#lvYk+>z5=>FsDQ+v%5cI2Qje;QKpvF?Tn&eCqsa z;Ji{^BD{R+c=r{}mAa9eK2ZZ}%lkco$aW^Q6t=%}kKovewpZ`?v)SA2n14w_DV?AI zcCwp?varW@hh7Tn1@^}}(I}heaEKv!w)C-{t^E9p=lcftQXK0p1qS&R*b5ysfRkzcVOnLOPEnb=u#wzht9^!p1Z; z#rRpEi4v^)A`lI)9*WF_Rn!E+Y>#W&nSox-^`{uw=$q~WU_c~XPnI57s@__{qTVl9 z%_1LX-Z3>Smld*Q1AmIPzP(_#B~$%W`<&3fL2c%{BOd&`d5eC#7}7%u16Y{C!KR%u zH}xjnK=kD*oUt!0opO^I`K#r=aNg=@^h9k2d>v{wO8m}WWmaR(uJO8b>9=Wa1j*|W zM%>*>xCc)I7>oSA{~5E>-wf5Dj>W{OAkG!i%TA+wnL`=fMSw#JFj-e2z&jDTy1Q88 z;DSqNqOk+rIpPo#?b|XaifCB$B-zUM$ou5~Cr;6kJOjaaow%>RfmHedbIEzMsP?qt zbWl_+ zamYh?v_8Ez#8{HTJz489_&i{KM1HWLKZ2o0n#aUAo#9+Zf-lS}abJ=EdS$5`rS0!| zX`uI?MnOT-^nQggw0(^-79?F!-X*Xfn9vbfG!oEq*%icfRC@j~|0Rk=mHWD(!m69w zKX?B4UH4=T6Ql1;D~kPVZY-1EGI`BAsWOBjv@X}Jx!f2nC<*DI?aj9(u#L+TktEbG z;G6vH3v3j#p=aV;zWY#5f0|AI2ttd7X+gOOh>nHOQk<}HK*4%f7D4GmBMM89RAzaI z6#T2sl|~{_{}m)ikRGf4v?{PbR!HA7TP3wtgktRiH^sbSA}a7%$D}PIO;(!xo-J;W zM2nEFmd;ofLaJyy0$$_8%qW?G<4uL!)d0bycSH8ltUVjA2?jE?TNG4H!;UZpax_N` zV3l8Wa{xOzEz%BZidK+B=dTdz<8``OPFjp{Tq!=;upXTW{s2D7kcE6p_<+c5l^jua z^SFV5mPey+WQ%XtEC%Y3Y9;+U*Rfh5g-Tj+;>e!(&X8^yPM*>xQ}hYKI)y9VHnHDB zbJ5_mK)WiL(A_*1BLabu$J{u{{G3<=$jI`|B=+;nB_8->@!Hqzf6)gb72dU=ni?&C z87oV)h#&%J6M{2y5HZ)W+fcp=Ir?N$-pE+rd6WjgUZdebaL27&I&+Hf%k`Ec2JZ=} z9R1itI&W27V-NPV8=DkjL?rB)zZbz~lZkD&y7-)Ib#}>Z)^Ko%V;Al~eUsJ!`qm5l zzpT`97QlwF(pa+!VME_=Dj@{(KG11_6$Ku7@6bO`aAyJJDkLz`UHp~6-ISCVsfG)YW?_k*S0;e?!T86&E@HPm}|Xi7GSwTlkx*{6^Y%4sVA(ZuvGUb6CE7Xqc!W zC~A^1aAr|WB66cha?IIhr!w!smu=o@+15$1DE2!o+P*t9(o_zNNCpIjU{yEaqG@r^ z^?+6kC$u9mrpLm5^lJ<9zEfm|O>iZN3Dem+3b{zA(Jd}xBHS9BmYpB~<7uo4uP2oC z#)4cE78hGm$Pl%w4|+)OcX6fSkXJ%qL!6v_HjAy=j#$63v-DGCy!-Bfrq1npU8^|T zfg8h!QvcsHy&KvhVdh<_ko|Xpf9}nq$=`om0gBV@FK==GB!RQA1Q|=7nABkYt(;Tr za_PW+h_~}m2x>hdKO)Nlupw{o!5;SxN>sD#htgDFn>%IN@C0t^-NXtCiAfsX7C)g! zB08RlyTT}5CF9P%XT(9JtzluN zQLS{w4ehF}J@xh-YX`F(vr6!Ly5le9yv6*T;I>YOxpAyp3Y9qlgS;Q2!6!eMyu~8- zc^AX*qT8&5X^S<~ioj4K0j8DVxr1@zi-!F+zJaVxxnOZl+0BO!`5+}ayIcDsUnMIfL2a`d_k@>co|Av@y}x;0 zhn=%Zb>*FwVx9;AlH()9MMayydB*vH#>yr}%PPh6(PFa|l6G>sX=P#T*EElIot_){ zm9HoI&%cjJvi>m-_#2gGJXn4enLW#i?OF4scQwt|Cm)4XY~Ya)46ci|A*TqPIUzu8 zb_++glKTBFK&#T+JlL~Ntn`vilJiqfUKD_}ux`j0p@~31V$o8eo5iXTX-EsG2XR6H zwjW}pq}#>D0uq-HTMSyboJM@OBO{E(zF^tp_!wh1!h(AumqE)1qe8s!oMI(zuMqwg z{Xa;RF1F;fNmLd0o45mq`Lh_LOrQNWN$mq_^dvrv%IX*fvimc=XNGGVuxx6f(UC|b8NHTOsYbefoDKe`xb6_)v8s+G6W)GpHOD`abpcinELYqu zxq`okd2!Pkn{#`(liklWj;+b5_}-)t#;u5{q}ho|5uv!{%^fX*c=#-J_+g;!xgOQXcx_;LSsNyG0s^^7+ZT$~KVhTR z1|O^atmir8h^MGV={BzNZTX@rhS!oHZz+Br>3<1O@@Z|LIZrcTxEgGB&TYfk=W znj`M~zl3;3f*nWz4NMbw2Q|ZgK`8RXuS&rD>+aHlOc4!vdJ6}~oq7sI#A>W^M=#ge z$2Ebo)7c4ScFNNBPcQse$MH4_lwjSsFWpU`?L@Tg5y~V@{v;D_5FFY{nlXZ zCpMLzA8_gW#*0yy{-H+li)*O)Xqv!cguIil1NV}B59a75` z6VuFm&#xU=oZzwP>h}&`Oh4a=EK}fX^E%;*#Ck9<$(B!dw%sPK^6t4L^_%M?s`ggR zc^5Yo9Y{=ax>+LLtStM7kU1PB7H_oYWv`kt{5c<2i>VQ|4sw8XeBjcQ5GACSZXA2M zHEAJmgTcip`8ILo2arrDJAjtpZDXxOkqZyVo0mu$8R`am$TBSAEeBI^GAS26wCdoa zhM&M!Gp1i8y6`vIo}B8rB{;TksO41c%_f#=w}Vx0k6ihpCt#RPHyi`RpPyr5BAcS( zL@r*>?vL?TUWT_wQWn+A!LnWA9qqPYIt*N80Pu-5TmhvFUGXaXuo;Jk zQbdZs{3U2DPpz_USOpywceZl`ycF5nw0m+Mvmwe@5)=C37$LI{r;HCvVEude&^a_v z4n4*+J+*?tapz+Cjs(05l&)(=CeHM#Y=uyg*)0PP}7x|#Us+w3v_k)kZH zMR~@)l6s5-T6fnqz4^m+xnn9f%|?BB2TN&YSM>-Dit`t6_`BYqH2V*Rc`N&x_c_E{ z-+x{k-boEPcBYjr=i_$6-O@jYlyyCDBR|<+9$^{h1<-3Lnmj}Ik?K*q52aBME>k@= zvNFjBR$=t43^#bhY$sT~23r%SPPsr~KryS?g_j7wOJNJaxIgeWVcESl-yeil?11bo z;@g|4sy_DG-%F1k*?-$oKxc`n6gf!)VpfI*tuMp1rqwN| z1q1Uu2`pjua#ED76jM$@$JrRRneyMlE<#&`0$})$`Cgdv9u5g8(c#wg*X8jUO- z%m7w>0xYOAM-KSX0Y$BMa~U1N0YjNH&DT40e(M8J8o_L%sd?!VDSm&VsZR3|zE~XH z?BuBEOjoDbHP9T2Dh~^)B2NSRVCkuFxcbXT*&h?@Wy-q1a^>S_|K5^T+}>wWY6}7z zlYG-R$~|Dup+mwfcUwO(AjMI^t!-k$uK?^hJDYK*;*NeK_i!1qWFGy(ta2$l?~#bD zl>XVQ6_25h4OR}U_q$-+S~xo#Uwt9&fy^U~8y_xIbxf=(w$Lmi*dGp@D0Ju=#!bmF zSn2rSOAhSvFr~-D+OcvBIWA6FmGvkbVxLQaHg9)*k^9K+!g~VCY+Q zSFt70TAy6Ls-6R{d_ashwwARIlbC*5w%odiwF|{9Ha*@U!6LUS-P2THJA?8UI0u1= zi}_WAG>Jv6UL}CV5r~y^;ZM#%a0USe8YJcMzbUY9Br* z5O`d#TNCk18;7nMvqER zkQ%;olXI)pIc-|T7%lm{gDN&izL>X%m4>a&en^b$Q-Zz}O*h~5O#dZBv=^-1(A&|# z0hpt+ZZKHedW|+UFmk0HvcUAZ# z)Z@not2}X40YvA6pheT#khQ=47NGs!@gZbn>9S6J?FsJ!7Ndr0rfPF`o1sMS`-bGX zeQ+^}4#0Wd{W|l%No=G5I7l%mXlNb`CTfOI$_Cw~qR;VE-Ep_)ry)no;pB$Vbz43D&RajH>hQ zog6E5_?A0(ZU|TPOzd@oPo0sQXUErUM)wf}z;2?z^QVm>1o zfRTgce=Ut_jmelN7S!!WG!K91o?(X~Rr)xfa6EI@Grgx|bXfOa@S02=*Q^`6w|R;S z+tHfL$_retl3p_I^e?m0Wf`ljlO~x~{>Q%A_xD2YpF2*U-^9$S>{gR>zFZ|JS2l}= z%d4v=kKb?ODERmAQ^2p!57YPCyJ2y5s>{b1wNX*>%H|ixAq|h4(RQFOcOrq?<Vz zNHI>VJ61i;RIna?5oShWFNYWR<};X+0j}v9>cr8zNRCK)-uybG)e8yijtRU6Wp`zz zPv^!uIBUt`47jfT{xmvST*>54;7CEV;Xw`q2LC#&wiEfMHNe>7;4)bG&nD_kaQZ_B zXAO!~6k*0;A5BwkK}d?b*>eoZ9iAv&ZL^$aY`kn$`AkT19%tA~(D`s0Nw`G)n8O!m;#qV9d2Axh?r49y;jhqv@?Xd4f+@lk zG~yXpgyhZ!d4Q0`UZF`Lg9=et9u-$|%^U2JvX~5>O#{rZ3XW0zJ<)&zWU}X~*LqF7 zc0^ZaOd-9(rhYKzvbDcwH4_7fM-MED#<F&5J`HMi#M@A`W zr-SI)M~xVt_;WoyU6u~YF3&P`b#siD_ysRaBVzseh%bUy>>G2K8AJsOiBZZIH_iLv zJSu)!{`HfGmtzv&7Tahv^?>!Mc#A2{Hcq&Q==g93=n^mECt=MR0RfL-<-Y}He)gXn zb;aFQ0RYo=mm1SX*ebG?Cj=qbNrh7IRLh1Yaa-t;h-k9?zO-{-w%g0ni(bNxN}zK# zB6JfS_UW2Ha+zqqYNP zIh?W8@a(zEa&F7pju))ShEhd-T@trYpw&e12XHAMB^(D~k4(_?sZ5YM=BE!AdekrftZoD~&SQ8b=H5+}Ln zb3xHQ&q`+lfhK|mQHSqA2CSuA?Li5)U(kQ6!fk8d2pM1`-^bp;m)3K+jU&-=QKn#B zU1T7x(JF`rvHjYv!WW7*UOEGN+nR{v1&{^7q-3O&KSY}zxlj!UQyle(X^4A@z?W>{ zzV&w|&KDH?!QpOifiW53>a?^nQC6Vz<$h{S;BNRYsdkK>^$ZmiA(^eyQKDOyu$UK+ zu3~e(U|Y3mKp(PKgR%u3+h-bk3b#XNkTp$tx8mYMLgAMu4s9pM$+Bpc@z6lr2)GE4 z>v}!()sqOP98pW)rTQ$Y7+T>G$TS+yft#m)&?6SH;XY5hTf_8s+u7gTz&-Xb9^?8; z-c;BUD`>2zG+pb%Z->Z~mL|IL`@5G{^?ov7)M{1gJ9^zgw$ps+2$}eMV)Ai)`tW?) zA1&?d^sp#ax0wZ!3!D zO(;oct(v5p}rx^7K z3o9efnK<0i_XXkHvH2BCdeDo-<)&w$B}})qgz%Z&Bg}QkbX=}s!#jZ7Nnrs8O2d&5#U7FC1REPz-TJ` zHUXwVV<5Iy`LyleUEWGh?eRaI*IGsrbOG3uOP~b^v*I-A;*M95c%|gPM~$7YdD_B$ z@v}Osf|qOK21sf529e>HwAsa;J#y(!FWwOaap`8r*+??kg0o4tKXrVj?*1oPL#x|c z4M~mI`JwWyr(-YhxT;UX7j+EwAXDg5K;eL$ykAyyIEm>_0Vci^<59S`LDW|>!$9lr zP?N!+Y@GZ52$en)(BiTbbYYOSfO3eE~~}|A$y$ zmQ)8`U~&KxBO~ko*e%7H(=o*D@I9xL7vLN5WeJktn0z#GG;vx1J>Z;cH!nGkV?Dn_ zD8Itx71pzG*!XU#6cI&ZvHYxyzhwOF4~M1TC8X7*U9zvgDUiLXvjiXCo2O5!y@N;J z7SRqL-qMd(a&&UOoc_6dy+1y#fSK9jM(v-+_tTUdDmB)>X|s*kM=7$yI!@?P!j z?U9kD_bx!St9N{Op5L(8N{mtsYPI}})mmW0RBT}Ae=95&zLLq&0O$=?+*%wMO zenv`aH$bu1U0z&nMsm~!MtJE6fF{$u9qE3!#U3P{mM>a)RSe~7a`4j&9y;Pj)ow?! zT~@cRNT>nj?5bu01jWk*7!udxe0&Spo`=@MW!vVj|hkxL!-3K6dKuiVHd&Fr{Q7|Dd!L^klC8jX8!QKE{l-B`Quew z-}=9*?wT0anD@XqReK2l+S?yLN;Yug?nV+m{ON~9a@I_|DUV`>NJIH@2AuJCLa}UY`r0d*+hMJP3Y+3Izr3(~#zYViHKqiIi6CNbyHp%8fud5Y#Gu zrXUA^J&Ha+11*HxuNMXK;Jq5LM83w>=XRq0RMGCF4grhZZEvfop7(?6{EQ=K*PpwU zyOQSY!yV(9uLZ`-e7{}UfR5*^2y+rKdi`><@+Yo#X3bA(b;d6`ofx}dJM3pZ+xUxB zBC1m4tqGuN!Og5Tcym~VmM|LD_I7cr`d+Uhh_RlN)5kzYJ7S^&3Lr2)0za9IrIVw} zAxTvxO|=VEv$@y~1i5+FuNf+(Ea*aoWQhQiI*#qFmUEA_g=#NjKOT^)obII`WYK1;Cjm~85mj{z!LyuZ z_Z>IkMB><=V#zXzRly!%2@VA%3s(0-8mw_Kv>XcgeDku=u=Y?q*p%S}u6L=`u_(Ao z>b4K^>`{HwwGBMM9k9~sZ<%LMW*yqv6t4f+JZNOF1CaX{5&0Y6Akjl^rUNBx9_Spd zQVSGkuY!2agJ9MO&o9^d6EiNLBseh0?KH9BWbTQO)qT;Zqvgv|^{y=q=NmSyg&=>c zH7Gt-n?E=4b5XSbx4e94e{+wp)XHaF=VHno9io&fH8g%oz8$AiwW@+S^&jtbe>B!c zo0R^jY1OlQ{8rQhF$6kqn!Em*#7l)JmpQ*OC54b+T-aM_rB%ROB!i2;SysJCnz=` z_$PR~jX>=szVo-2kH0zkP#JdaqDl{oMVn7 z+EFw+ilKYAuq-FQs}wpFxO2S*@%s=V%Q8xddoji3ehH ztN74~Sseb}0)b<-o5&2i#d{+SNvbVNTx3FhV!58JwX2@NbxZx7zK9e%kw zPkGtm9d!nT>=vL`gSuVq{AlI(0`CiYC3fXI&(+&GodyUxOj2U$u?enY1{7SIINjDG zDx~kCe<*?{HiE*Hb_!OY{3#xY(671wx?MguKJlr_j4#0=*dADkOSx1snBwV)L4MX# zDWmKznNx{2%X+$^B{jn6&Z*|Z*R*q-{ zaqe?j;mx0TRHA7iZ$A+xJzANXmCB(h`H&))Hzx~ChMK`iujrFV=OuXh`RVJB_wxf!W@$mdq61!89I{W}ll4 z6`@MU!9=kBqb>QKGrA-ZpLHvv1nHnmUfkQm7W>tv|3JXi3N64io4 zSQQwN#!Vb>aG@tkqP>GF6lXW_0O}fDx{{qFUSVrPg}<{lz;@K+`?K)u2dTb+4YM$_ zxNguHBU>T4OET1VX$>N7zeYc^@^e4w7r0$#-`ZhWA)ecs0OJvKVF9P+2^>arnr=gQ zxeaJfvi?=W^k!Fjz55>zCSHqI(s7Q`PjH}H0CGBY09Dc8sJh>IWK>CQ^(mR&${@+s z{1^%Mm9D@pkf2bJ2_OvhQvD;(m_}r6odMQ<@eC2}vYgz*@CR2KZX$2+*`?6Gf6z4Q zbHn*d7Pk^;cP>^O!v!&(+6_snfCByTz~TM-^{%9D`&OXsr>Nf!x;ZhLjO1!Qgfh^6 zJsmSYPzD@BSO)(1KmcQqYC)qksXdBX2oSoTsUd+tr_`^H zrLV7N1Jf`jvk+GJDTyigfSN_Ks7$CPQAq;hnN_}Y$JOFrJAiw8nYx6>k)LJEu$7B0 zd$17{$y9b16$?VtF3pU1z)D{E48CyyjXtSY+CE8T#Q3Y&o`@-FXeGK>n6X|dqQ3_x z^|@MO-Z?03nh3{!nPM^Z=qXTG02%Rb^EE|GxWeuR`6rDi0Fh5etyKE=swD>M$-)pA zZG5yVvs)p_lkLL7?>du{L?o$jY=xrrzdY*9tF2^uu%MlNSHTiBW7H< zUY--1wKQP`~rMx!lOvAi# z*UliucCCb^V&8Js{N*n(#%Xs-Zu-SHbSP4=s9TCy2PyH)B`XG;BJ=QYL{?e{>?eyr z?w1U0%GY;dHLJ;QI~F;6$muj5XIfDXJ5?MzUD&_j^9eTV^ONRV5rWiL@J`PNO;JeC z#uX~ZUAkFH*tyaDJvhjRVt#iK_fKfE%C9D=z!fPAgSY0xLf7Ea7&*-&zz&g4yL7j= z-dLdOW$AJWk~lKPv2_%k^et7t)*;LsC)|EEdEV)w?>GFg5_h&i^AbEdg)}rQVt|5} z#>Zr9yB-@V58e&2e$oo|1@ z?sQb1pWeG@VRE*6`#V3`zj=S0@8Q!O*6aSm_+I~Ed^vVZyB$UI61|aeOnkfqFL$t8 z9^JDX#vj2uW9i+#FN;_sAF95KNk3_C1UCqS)pB|1iMmlRT2x_LZup~jd%MqA_dvdp z51q_P{=9QNv%CWs{!nw+-jLmu8-e%3$*q=VPxd$U2Z0g^AASXIllOVYvtZ zW)`q-oc8x~70InF$J7jr>j}54xr($5DD~ZU%qHcnUG~=9p-8eSG&&tSopznFDD;}; zPx@=~tH(als4wx|Dja%t+qyWZ!&X=`z?{%Yk7A=Si5i9=<7qmyF$?QBkze3&lHBMu zO$eZ&z^b0^op!SHJ{{y`q0%!!EQR<1)xxuxX&^kHYGl0{09#>df9M;l@*A?Q%-Ez; zRl|koC|EYFcNh0#tFk35#^P!;Es9enC2i=j5l0RG^c~7Gb)r`@X zddwt%Yq2Dn)f#JUPkP%I0ySA%qHw}at+CDZkCw*%s?+}5V!wW~TSvMKTV`nj3AZ2` zoY=&k9t9a)>C~WW>2IRwe_Smn&IlH8L&CZqSBM)VUrkhG#9aj?Rn~-8Zad6O;Mf2L)`kfNoRT7C6?UiZ2a_Y7b~&rL6O0 z4q}J6&RCnrP4SrvcHtk4#~P0gN0t7{lDgTNp-EZ+cHYCzXBJEl0y`SJ#Sa}b;#D@h zy=K4M;a#-8bydV}VkC(Hdkju*lVD68z#oH!k=PM84?!ui6Csp=H{DerC0?Iubh3)w zz$a)RS+SUG<_iHp53XH&!oh55K;~f|s@6SDyDL*WVzRpQBWL_ss{8hPpq5;X(bI-~ zl;x{yqrB#1vIKPCz&S7v4hL%g-2kqFbI2^;6rQWFHm1IeT&B={E2|uBnsru#g3ImG zxFBE#vAT%o0ds~XUz!=nKb*B&H{;Y8x~$HsdVrJ)KjW!J%Q;YDODxnq7|GKSC7m+os^nV8KLA@@vLA?BtgTPG4%b z#UWNJhIAxKk!&>Ti~@TwhydLVIsOkb;cgG~`EApq-%M_WayQ+;@|L5d#xgRxA|3O_ zO%X3D@Kyu>^*(UzZ~9B_p9e5Pp}{o;8_YIL@rKY zxpTne7t4dMtD|bJ`7R|YCQ?Ztbn#%b81BWy(w5ss6&b7@d^>p2`GOi)A_nDI^=vtUzG znIc(QkEGWC9E^Bm9P&!Z#kN$cK`C3Tf$Xovp;RJtoAri(xCdlOUz%n%Z$0!RD%w^k zOObACTfeb4z>pkQ8rw|D7GomQ!vM}#6pyM_oi@F59ad=Yw`>T?$Ro3n0WHDXj_99f z^>YT6`yZ88hY(#%a7NvBWQ zxrUOPwv03gc@e&o(BdR21>JG6{iCjH*IF@EDpnb2ODEIYR8suC<}Quwn;Wt#$1qGtdvF@pDvM1 zodko4hTMicQe$P~+()Jzr#*35m2D{wS{Et66*FDbpyI852c!DY@ObrhpoS^IQ=LW^ z2NbFQv)?^mo!ap|0E zw=ibcQy7`oVVjLVy!@)TFks#G{m8^zVPVHNRew2lTJPTKL)N#kWUH`WIq42)fwRK? z_n@^_EY)|V=~wh(jf|T&fXyxi^o|O+jY*i2Y^T0^wCq4ut-Ibl8-*Ogh? z1RsuU+8v?6-GtzID8_zV*9mYtq9}6nm{JpQ8G}inDpHo_XjRD*WAr6mL$1_ce9ai& z|Cn5TFWqTc<$-Z7n@xC|Z#7&vNYldNNKMpNokw9>vvoAr=p(dl68oZ1b*x)*cGb;H_ijS|ZD|Io=odfjvmXUiaDq{qBlEbOk$2&JIZ$A8Vwlk!qzKKw)n>>m)tWt)0>a7bE430*{@C}^ z1I_1IlMPFv1&+9s)CBT3H3a3Z$keCDbm^zSS9E1-|9Cs_Gs=@I<({>!6yp z8cqjo^tJoIJJgvoEOgDiiF4&x^mP*uu^H0p=-bPkw?4wzZ*u*vP&5l)Fr5^*dQ9$U z@r_?puEU}q)4R|vY`~P#ETbt1j}!a;R6{NNqFc5R7 z<&!(99muw=2V zgLNYUbz(ZO7`jwcRgJem`y0DI5&;+YT5gIc!!@qMoPo0k#&w?d`|thA*9&8gvaF=H z*yWve>`H*j7{tuVmUyo(m(IJetg~Q7Rc!<-ev+p zFiG#TK-`BBnE*`&CC;=35*P*6@~7-?7Yp=P7t;gDA@D=U8D(Jm8v;2%@Z;l+DiXu8 z(NT?js!(tAfYYeVgxmJvWClh@%pH?S>lH?~`1^r(k&iw)=Lu0z$8Uf&OFq@rn1~A5 zgq$*cRo4Mp>6Nl@rX3v ztBB(w6N(C|AhkiKtF7h%yJmbUr%S38=fEOa9MpyLKSUCBx2AKE?P$sn5&ZN($ry;G z!M=_X4kdhS=buq3>FN1&YIZu* z$KGh58lJIL?Oi)ukGd(7E~eB#z?_Lc(ROQCr|?BECs(wM{ywrfbvWE&=ZuEy*4*<0 z?>iJQ;}eO&*mie9ujV>}eicCmIS7n_l}PEPi(ayD+m`k~IB59CFFIcIX~DRHlJCM^ zxi?Xwd+g6N)SLHgxp{MpCY|OTegrXFyE){*1xsNHk|3NUseu(d$FAp6`EQIq!!6Avl#NS-sfljhzs9aHBvN=@FFD*jk z;SQ963<+v>OoRRlV#~==Iq&g=Q`*DVPTb^_Ymj1IT+YG>EX}NVUKwCz%v}cNtLdnL z%E0e*Tujg7c}2papZ_}D;bPheMp`k&iTVmLkw>=XTBr=o*l8)KZqK3!z?c4l#_4fH zF|#Qcq<&#;gN1Adh@j;4G?^A^)N@sH!XnYxv8d7ZG_@JMGzo2|Ga9v+un6m@1bC%m zh)tUjtdE;v(Ux1;_PSH9yb*iQYUbj}F+HDc#%nSgM(YIMRy13dn=)~WP4m5cb&{-9 zCjCnejOJMDwAm7BSma|K!2?AfuAlho`)b6+1BsRQ*QtIZ6{zKZ&nHHb0w^^obCM@0 zE>Kh|9onD;#{S3u2@3Yr%g|rHDfUFr0jzpn0TI0wfc#&I-uOz-H`ky@c^?7&p&<^b zG4tLnU&>IvwA0)FwgC4x_towooKsvx{6ry%JJ?0wkrILZ$CuN}FtKA!eBY0+@4Lgt zSc&!%`@01SNC65YI#cu1AY0=(v>49wGB#WzhJIxak@Jm_u_(Q@iG%(>I1l=GF^XDY5{}=VxhUs&YNk-5Iq~_&tgwNq)qXF* zbwinQMVy*R;=dp}47b>BwSR3s0J_&WXG84cH0fl~PhYNSY`FYn5|{79U$f%%{g#e! zB)1cMs3qj=^jJ@|0)8n1P=BpDIZG7t#BIktZ%l-{syFs{Uip2`rrPFJ1EuZ&3T_B zZfQCq97v>!#++FkTD^iDEkqEGEB!{?8;qmmPG>r>ZO) zWk*d%jkUa>4J<-RYEcH&Kv!z4r)g`=3Y2A@9b6ea>i;oFIzew6AC9{E_u8|@Jf7Y% z^aMealV7F2he9xuM`TbeN>!~ZQz8f3exuH6X&Dpj_8yJLX1|F_6HFUl6Qca(s6g0c z(n>sq#9r?;@s)ZKISdK-L0mgE%+GEAgquGcdoEX$u+MuR4(eLDd7xwI>uypN|3{1W z6m8>d#AQ$->Z@EtuWZ-l)uLW5?(>P|{&*L=#`sG|33!(asuv%<%UOtF!Hh8~zrUVY z{2KcEFtdAbH6b~cF#HO@+BM#ZKjcs~5pvD+oH+5W-98jKj86;PztxW9qmItMHli(a z^OQEtj0Qy_ufY$|s2%R{rFwF(FcjKn6r+q~5}4KJxiScr4~D+~5J(_)TK$9LY*6ID zky2XAwx*7VbT>XXxzH*})Qc50b8lIRWPRdE%Z-KLDj4EUiwk=!Cxys#2p6Esrou$B zH;)jlBYtjrn>+%n9!{6CmPJ?j`H&0)Edu3@pFCG}2LqYM*%7+-8fKP@Fkl!b0Ir99 zfdg_lTjYe97hIwN-X`#Uj-wG10Sbq~pQX}~p#iN8VdsBoi^~?v#7i%)#TF?){YL`p z?YGV@*o`T$Je=d+?yTsQN<&a>H*UfBc(w{|4?nzZeAp6Lq{17~6~Vt_+(br9u!w3! z72|$qZypp&hB22J4qYbdl5V7Z%_vKWa9ver50R4p)Xi0EL2t{m?}t8)2 z)6ZbNv%?Jh{mgvtdkhOs~dC2k8XP!vZIsCWSFk~-Xh zkU~aYpn_JdKaGlIdM3`RX8y??DOx|Q3?N;&nQnTyw05@=Gp66b!>;+)07ai6aQ1l1pinrXGQE&lW)Y-sC9=8I!d6_lfX>aU z=5B*lA_&+le{`Q@m70KR)05XEuN4+&c~6$JuLGWZ(SCa|wNa2!mS(~DeY4ew{Q?)& z&{q#ciSmgF5{K%RRCrnu=5oVJjmERv@k9}&B^OS7q4UaNb6mv7ZDt5+(gYra33XP7tPP80& zwer$>Mbf0*6OEO|4*u%4d2W0NonB=}Bi{o(3FQ&Fw92Y&A~^XMv!uAV1N(>3b@S}+ zc@Es0-C;dF)J{4vYvfW9WzVr_jmUIw6t6h4KBx~{EVY-B&NlD*D^%r5^OnR%7S^%z z#8db6=*C+b;j`A8BQ)#E^S6WusE3OWfg7jw*!64lY}lB(;DnodUgQYn7n+rQD)PWK z3NQDA$@p;`o2w17ZlqinH6;*_MK#@ttkZ)m1L^`O3r2c}aQrT69U(4KmKv2VmSq=w z-EmV=x6Sdz615aOW+b1z*Rhs=(y6em_?W-HhczXFmlmhrnv><^iNnA@`&ipDcf54s zyS6~V1o#VmKpk-ouT$?*qd|1LL*{^zrSD^-QZf0%Ta`N~qwE|kO$jMY4YRnTYaE(v zDMRj=mqVuf$a5&UcqCKeZXtJhi_43h^y)<&!C0pedum-*A%P8}yKHVmw8fU2D{2)6A*RvIo z`9tFyVV2&vEUwnkqK|~qz!LD+Rz;Hz$L*l1CfD@xV=(3>IzC~mN5(>h$nwTW^_jB0 zGlA=ASI4I8Z9Hw2E%l8?nhGyjd&gNT zO_v|NRiYVPKdwHjAvBLQOJFW7RhQNF#gRp-_yteWJ1cKOyD?c>e$bN}a#Id;3KFqL zEFtdJoi0rPP9x~JOY3JWeC!mrfgcY<9>|tI|KFZ3g%9>WZj$N$H@5gMJ9*EJy!kD^ zi-kn^L-X4H2_xd^AZr$Ge zC$Po7C;Up&*sYZA_MuzE8*}r;!-dDRjlV5pUf*B)y*POAQx^8>oGp8)pC{|G4{vFG z^i(jbjvb1IDnj*)I7z1}*rNQI#&UDv!nI;|vr3%Y9jYXJh2IFTPI1Q9Q+*+AWR)xs z4R@Nl1fGfUU{v0Hq}G6)bcZCBFtv1Im=-D7+GBg}rSNgK0#N*0=)rOYglIIWc*`G`m^EdDskJq>8vicqms`Xz2UfPkM-bI zge*i7@IlSyz-RqnwTl53ANED8ateZGOUpEWIfRvx4yukd>J%XAOnT^pzpi(>yIwAM zv(;Psgc&63#b(D_V}wZ@t;W%i0dsn#IFD5RD)s@z57Iyf5gRtaxC4Saf27|O0pzn5 zn{pHo7qU#v8ii@KyfgSK1D&fgwUKt-G7WVCcf2m7F7%3OXCn!9r3qQg>__4p*+T45 zjd2bV%(mGkz0E){+O}|S2)6pjDRUAlQ7c2sAb;oC64wkm&TjUu-Y*65pLjJ-l5VOE z3#~UL(uZt&v85M!y7K2#`G-ACRV*>`y7$=VKB^ zQ5I#bP)1A)RjNHyzflLbzJ$gm16m--g#R$LzB$icUs5>c@P@SKzagZ- zoBPz}@eHvKZu);lh?P{(V1AjYrH#G$(J8&!vYAh#P3dOcr_{@Hx*3+vrtG;yuTyik zzef)eY*_(g_=hiPC0U4CWzNwTe_Kf6`ZTa$Pq=p;K*N7mDYcrcKi_5s$?C3oVO8Bh zah}iA{KS;}+^idpQ1qy^>kB*lUH6)P>vGM8l}BJz09|F|KN!miJP&M%=CAOv9P-I3 zL<%si>%X+X#oe@!p>VuP1pdGr+O?=AeuT4WM*o*Xty|{hLpL{qT2lGZ&oAx-$H-A?x9kuhX@uKRR7Hq)*_sjMcQzIv9(L>9~v z?&*LbT`jSddKPA186A{usg)UI!!WzyH$yLi)I{dW2NxwqJ7 z=j#!;<|`B#J`iF8SAe$nv*fSuwmA8zg#tDGK3+Wo)qa;3)jkKFb%lb&n&q}wHk1$J zLcuDo%E&H+2XqY@a@-2Ux^bN>G37=P8i4rk*I!ko$eLY$d(01Du<7DsmdYs;y z80<+QSw7upMP0&F&4Nd!bk#&|DJ&6}VHhp&;J_ojp=D(VQaOT`*smYvQQWy!)aWch zT2^;9?IogIc1!d)1*do49?U%h-MX0#hnX(*4A4V5R09>NHP$O#krz*%6i(3xxd0=v z59H~Cd`yquf=Y!9@S?3OrFmRnYtb?y*Y$IVO(*hFg2ilyo#e;T2yM#ssBCdQ7a;(8 zv);TIazEbsq^8-PK$WT#wE+rU8Fof-82wCliVxaS=tXb7k>i4!a7zlJS8gEsO>%n3 zF@z3DlWj!iwnhqwUq2B34gN}zxt-Gc=nYb9?`G>gEy2@?KyO0Z z1Fu^nRf@>|%;SM^wh@7H%EmKRVsYvD8#YPHD^594l z_11tIO$!aIefIwAb_;Rc9(EagMPu5!_8W_>74-eji+FX(GvuRy==sV*y7_5qR@^rJ zAH&jf7@{KtIfz{9027YBGjD8;L6$u|!m^+~qYncPdVU#LxOEPM&zBG6^+>1c(7~hV zT@Rakl7_ci9-P2SsOP~pX;-UGfp>pmhx%xoP#chfFM9|CKo;yWI77v81c{3t$-_eNMHNfP`;&xcBWRpX~A zt-D-swi){$MjtV^2R~Ku>}iC|xrZH=-rW-+7;+-_bD8RIB4_gHMqyoG->j}Qi_sCUKIfTHucE2xS-cx3VM0#iq9_TVZtRB()0Rn zja&{Rd%*2h3*!mhg$0v|74lu%EGLe+tY%|{l~l5a>x86|)Xxx}Z||S`nlB(#wv&T! zF;2*<90wu;lYV5K9){lw&F09^x11V~U{!L88XSvBwd4(|VEH+~k81(c^<};PHXlDy zwopK+fo$ymd$pibt3CRH9pT^Af_w1tP)|H;Yt)~xu?)SgLg5}oQgQF!Vq|d(<4+fn zKJ_iBR@HP$=wbv)f04ckcYf{*aJswP*rFM7>wJYFb`NcDAHL2H|I;=ufC|bi5%OO_ z{}vpv2Vq3V=dS`17DC_wk3NCbG22K2K;B#k!_QrMCGLl);@rtT4fEC0+itJIG;N^*Rq26dcXk!|g2ZYUu|jCO(eOZo5WAjL9Ec?S&{ zQC9*X;KfiaOlr67j~pvcg34d!7G{hpwq`QPosVo4EXp3bR_ZD4r&>e|D}j5dyT6PL z;S-F}lV}nI$z8@-t@4^cP-~MjI-=MCNo01Q$z}IsQn zvNl-r$!|a{uk&Gwi(=uxki*dmZfa5yf#{fuU^~sXZYB9CNMpR0$}AS-gy*OZcx3|_ zEL=)5k}BHiU+!67d3SpwUMi*gG4#=pq%>{*D^|W%Mq;tI$-q#z&Z2kk`~$hPUaY#A3?1t@RMoE{BcTE2ydKEr zx_ntlagASpnVh=a#M!k!SR`cS*r~SLC&@yXqjCuC#Kd1=9Ip`7ME2y;ulq( zD0cf|!cEU24`GI70u819Cv;jIWx#{jxI5!_!qT~}!ftCQb zfb8_9oMBu_es8{GQ0&Ug<+$2!xLs9-@=V$xG3iQF4h{EN{Vy#;0tnl^CZsSfc?Ptc zu`p3MNlPmpwwbEHJsJWtxP;{xicvN+gmi^Jz5{vVuW}1z^4e+}x)e`A)=m6Ulk~;X zqAxxr!-#!gDhh{V7=dP0+Vr?Ht6fYbbbm~p*)`u|37+E`0qC)^Ty_*c)c?X z;6i_{Uw(a+XQGi2u#+*;IW3G*)*4+O!Z3->(VB(MWMK;LLyV_YX7rsz?xoS+n->K(#c_hl0gcvuQa;CuXe$Q{|%P+){lxd%_C775tlGGACh{ohZbEKtY zVZ<`?`8`|>AGK}ScI6Qcd_}ivz#tyz7Q{|LYQ6pSe(Bmmz^c`P(0C%r;B-@wKN%6@%EzXF>8I9wjE~n9ePOaUCoTN|CjPa~ zVMVY%_-VyIqwaonGTHG;GJTmjQ+3eR+$`H={nWC(+bv+*UJbjBjqP+dvs~YNL6RJaaq|z%Gp(D9v%@NLzmrh1 zxtSj#KiDQuQ|+5@J?!eCq+*5xKBoVkCx!vo?hI$suX_hawpQfmqBuwelG#Ukl1(^P z0_J1KB{RR>GM6*gJnt?(D)0HC2JtN>&D)!L1AT*g{O{>xz;8fp7!J~X*X%%n)O}x z4L_3yrcQAR<5VE$$0o0UIqqlHjDa@CT8yH&+bVrEz_y`0KTFzdtz)+lI+GDb*}RnD zO#SZL@qEoP-4&e~ZBkcc+hSD7Po)&lZqE1^+H9utS;S@~y%Dk^y=hC!b;KGzh8BR! zKPs(LtCe3^Un*RcS{e(g16Lut4GF3&nVFXj8;KAzcDmm_rTm|yS~m!eH7~bYTi8EI zNV}NHL2J8Tfpb~~8SdD*bl{v&g-8cbu5KWw3)WWtLm=xMIk7JLzCFIcF9hfL>kZLl zep&V5aMa%HzV=KydSUA2=xwFR+I{%98cOE^djZYWVZ9tSI8O%>zQkaPowV5$HFW%D zu35cbT-~aS7a|Doa{($?96nXtg)_Zty=TVn&nm7>+=K@xc+SPm30?M8^$n=sbk4LD*Jp3aPK>L)`8x<;tMnU0T+Uc&(F-i^a`O0b-Oq{0^fNkn5bZmR zs~3Bp;w1y=pp3C>0g|6Fiy<_7(jdYAj8`?+E29fkLfg@?r;=snwqsmdlJf3kz%M)) zC<@KmMF@ehbkGsaC_;Hinys# zAVt`9SV*dR{@Zu;HoNUt>g&TJ8Za9S+RDq5H5vy-074n+b#;6`=KR$4?Gxn0|CH}u zoMbw{aCbZ-4nZXj6Ce#|M)4s5ocVZ^2##eHwV?M?(BExyr~;o=LE$gFc~%0^4{(d8 zF4=9Bjr}JJZ3`skD5W82(emhcCN`pF7t1z)Cr`VHxY7?ns$-SOU=Fx|_+hIQCgMfi zVl)clJarztPC4c! z3TJ$GCmcrvp_&(I5rS~%A8pEdFRj&ik@sTR)>fJ{FWNvuEQZjqXv`YX>{cC_BkP(Q z@v3TsA|^{PQWP`RH^$y746pcgPD3Xp#o7RCX~h+b3+p`P|FWnPgiNs?FBtcgkHM`G z+uNZd2n|o)h<{XicZ*#CG)OYCUEQl+h0NosFDGW5BtTMY&~??w=L?xQVv*0uD8KFH z)I!u$g`8u%_4tUgTsv^PyZ$?*ok5ZnVd*iMOL1{PY zv>_fo^%TBWQ=qljgZeIgK4*VrCCpOs#4HGNt=4tl6%HX%8w6#rERC<=`0WjEe?`7T&hv# zmMq^SJkHxLU}9+Y0x=vp`my-bQA5_8i-yx7Gle9s^Rbq71`9)&>4FTk7`^6(&k)wU z$(vc@(su*;lE;|^dy`I#Ivds}dJdr4#!Q`X4xfk>a#Iz6+RlAvgjU(hfX6(g`-)wR zbeoKNaW5~u*#$!+L2@iLmL-0}dC+<)m>&8};(DqZ1A-)r>kZB@H3Pn51-K3QkqG7Z z{Of1gjw2!|x#6-R$&82CdzJz<0E&9$)b{nG8HBd<)XUF(6#q5W1TMGJ7L@8(Jj^`| zIsCLF%~VX_fdhYw2{O{-iQw8{@A}gS8V9bce4A6sqR3*k=w{MpmOwA;7R zAnS7cQ)IGOlTf5|3y6rsTuh79^}^UStvH0aj05D)!MsVUgvVK~nqT8?WW< z%=5Dl=!XcnC@h2+cGfj-2n}8g4-j%HbCIFuE{={ekJH)VKThp}qK-@YG|<8-!!TM- zq7h5}OesUxJG9}stmhslHgkBVJga-!3269LVwt5A*#0phCZLws-4w!L3@K&E!yR8Q zSMjzzJ)2R0eKv%ZeY%GUQl6^o+H;&rO@?X*bTx4tZ0KGNbCs}OIz#_Felhp2VQD>> z>5@wa88Vb&gZ1UXNy{fV8V&rk-#L%1{q=`zP2BHg?6}xBcq; z1F2=%tWELmss*dA!Z*08bHCaVdp`=hKZnNDMR8wncLw<87o6F%S(TVUGZ2$TWTz|y zHmn3P$5Vj;zx@M~VGmozORl>raDXbM%W-X&1_1oXI z5s;q`c41+pZ14)umY!vFvyH)&Q#@+GJR#KZn6{FzvO%t=s`3jrDiWobR=gkmdx`NT zWhD)YrOksb(T`E)z*P)T>oBf14=M`=a@sw@sg+PEcZ`%-Kc?7x%k@Gw)bZz?40>0_ z>W52c=CC@9j^uIgEn7E9Guqz+Bcl;{C(1RSHs*Hu35St7!p27XE6P&3TBnRq%=}({f zb%r79wQzK6IKQcW@bmE@Fbun@TJT2l7nRTLgCum7iSsmxUs#N&jVMeRxTBSM<*}Qr zm7{eU#g(lU%#XS`Vl9uDK1G?!UzjY9x9O^?Z!psk+2xt#^Wfh&PB1_-y2_Y@#Gadu zz-AwWr~$+Xb=o=k?x&vqAFj?RIctF6}N8nchyzwR+Q*$-%HI=9Pe3?3tnTVG*3EL8{XxVPIX%~dfb0^9z&%T+0& zZYb6OM*uhOVCl<5vyqp+z02dY#orI5Q{LfUhpHZM5BL=#KZ|O`j#F2JEHW7`0~2~T z)sVmBsArP|TRhMn;Ll3MNjCW@zP}Uxm(v-K)wyd2Ar-xVLb--jM+%@NXQJirNMO(J zGNYK-7Y3d9j1kWgY}_T(!o91$5MY`WbId{U@K@@b`D$m0Z3s5iK3Y-L*yuh&=n43_WkgA%GN^`~2!V!Sx9q&wBGdMAhfvk(V zpR#KsO&!qPVhHmG7SAyRQE-&U(eiFW&Ej{{F<4rVhWg@CAQrYCRNwkDUuhkt`3n(j zF`Nm@j7xJXzXX&zgO-7U=wvS$Jtv7t#$?ZCrgNOpKw%gGeZij6l}4V`fqi7?=?c3p z@o{m6BgZ(os3~9)Tm1&VZQDUpk!6ycxdf%yLgfNZMTf!I0EC9zulR2n9rvYrAQ>}6 z>y*;yzc#m6I7bVFF`ieyUGi&o-oq84sntUAu#!S1@ic0~vRoAx6A=e_Ujg$p1_y(; z=|JT}e(9MO2diPyN4LS`*!%s{ER2;zkRdVrV}*K{X=cDm*NL~3b~(hOBBk(>LLqa_ zXlA|VIQf|QBq!Fb)Wz6I7XotNI^6g}*{`2I!lh$_xuB!|M*cw4_?@-JLgEF<3$yjS zM=C&=>ljAVC$6C40OpCa$y5qjnxZFUaJ2%#Y-+lf+{h$5Ouj>dENsZdukv#KsoGSW z;e)267j}S&S>=FmKLz$lsE-C754iI}2r77GgVvSAjwF3?K!*EXsZ12mu81R@q{gnO z#;H1POi?MhTyx`Y>p~fcDEq`Z0-1aZ0$h$-ja_n@`O2{aJbs|2+{4T6N_xC&Nzh7{ zlx*se4o_aYpeyX&zwbLB0Y5z!D(32IMq&Qr->^U5+IeZlL{2tjjz3y2}pr;72^YF~k zGyz!hI`s0od2> zn$^3;M~IR{@$J2eHrtW;{pWq;{iSuZ0RiP(n3rU4>i z1FejC7RO_i=|IQ+rk`FY!$2HI}-iU;54*M zlU|t9q$U-PSk*EL#*xd~iJH4{vvme?Klr=)^^$Ce?z*Af6b4;^X2{S<#!+{dtw3`W zk+B7!?B%0*=6GEqv_1!728qhBE z$5q;^FmW_xOzK*;Mi}Q^5+-(a{ySP@-0!mS7#W^ysCMMu z3m&pII5&8}VJw*5^+4930D#MR+*hH$RJm5E1k45!NusgPBDpqgRC})Hf3KdlOW;rW z?*B*9A9}+VFB8g!@Hm4*WA8OA+*4!SW0V+ltazEHuf%e7a4+i7n^|~6UG6xpO1Km6 z_tfSa@mno@nLdRJwD%%Y!u@ltsAMM%5$ytakijs)`{_WD&~aG~Hh?7~xvPFbP4$bd zomxPECzweBk(>^xkUu;9V&+$0x~OnhRlKT39OW+Fy}Y6;HOm;eEh$no$sJ1K6ZnwP zD1``SfghD^1qGQ(_V!-$+<4CZOmRQg8#@Ln&cB zOL-g)tJHWe^m_&~1F)oWSb&wl)oY@-!+tr?ka!OZ>o!z`(oqIfqaB4(TLDxP^Q$QL z6PK;;7Mgf*y;MPi*~;fYKkxCX#9dqSx~fxOP-&nR;pvjeq@hT302c{<`loZ2i)gnJ z@}^UkNNZbeG3J$>PhkxA09JK9grLh_`(DJ;#^#7LM%Kp$5kQUcFwkF|S%?z8G>rPf z$(h+y=W1O=={oM6AsN;_zeR)!$Qk^Djr7_W?r(L);a_1*x2&Pdxf+ld5{Va% zuW|17?j^-htcmE9Bm|A3jKC7juSzO+?YDi&KUdRf#{TSmCBsAiCZi2Nf~tdH+{MOO zJLrdjlIf$f0Xz@{gS(_k5?>YqS!1e*!JT-@Y;s zdZ}`b8cWdBSJupnz`e^<7>^y$wLwrUG6ZSAaBAbN0Pdxba+y{RSY6Nca7^c@M7yJ= zVpxYeXR#t#JOw4lk}Eizo?&uNvIM#-W^u{AqSo#roZa6@j`9OZ$JsZ8~7mH(~5no zRXG#*02l$q?r`Foe!vSndF2R_0=C#1TTwh7wxM+&?|54a(!#iVPb!DLn}idV3c(Ho zH&AXX-K>XUU*=ZIbBw1j$0oF0oXyh^N!r=6QRv7sm7Ruq*mYLCE#R2jR%CoF{|;f(i7txvWe`wmuiUAC|%kxfZww^qGx{=Q5+a19udRpy`b-%x(A(- z_xUYSfQy3~72rKEj#WYC5aJ<7mM5)l?H@OE95Nhh7(z%<{P$nvQM#PUIeOh-`jV=g zg)*5@q!-kunWIFp+8G{aH$h8j<3g6MwB{glK92K_<*Pwh$qTE@1l490(Ep(OTsfrj z0<>r8a6X389V@7`83&Ir1dQH=q7;e1l`ZzheIrB9cWJc0#%E3KwfcIJd_!QSfV3s$ zlM;>SWBi%ZqM-B$Q^q7XliWuPBCCXBr+eK`NyKO-u3|+W)^=J?qA2Z=5kwYQC<;(5 zH111giDC!DO5y@E#XF+CBqXK0oolk}0oHtF-LcCN?UBs~EHX|Dl@Z8k`RKQ_$Gv5(=1{@4{BW1QU!RiVw#D*%IF`1;{cf z`V`wY&6Ohwh4B5=IF4J3Ch$m8B3=>Okl`@Igu1B229BI!fst43+!of9ZkOy7p~hrs z7VxU#p*zQpv8Rbe8GC}x{+ibb8@oL937dZsAG0a&|N#Oo$1^9q;SVAg4n?QfMlOI&cm(6SABtL^YkIeOk{^b;7 z7qjF#9`xlK@*7#t#&hfc!_iIkEt3BQr}JF0{HMO~NcZhwvWKg=Ij5A@b)YoO$fc1X zrYP(fN_Q^{mCURD_*8DM)7V$OWX*gbW^8Za_+74*7vkJJxaxlDt-7_E9bn$xb^6;m z+^Z3aLIaK7G|)G*#RH})&n#*&muE~buy9prL(fBL@p z21xo+sfEfUvg&q1)KGh2wx1u=ML|Ohj3NQcX2fTR&LkVRDNh|qyR%1&#a&oN9R!&gn)bw5FhSj2U$`7C}f^WBcGzKK#v z-7s@M#vZGb{BlMzl2d-0A7Ury$dc&Ul-<3;gsY{pPGiN>yY*M6`exuOsyFgJN?w_g z@o>VX(Nst=mOOjh%-CnW7cs`E8Oj#BsH)VwbGPhQ*l4{m0rw;=x2Sb53(5tl^vLeR z)j02~*I|3E!+clPR7@U;;#8CmR}-*M)p&?qGFG4QQ@)Nj*{?n`EJ%y7bz+$~1d0gNosU%g zxwiPQd&y)6Nj>!j(q4DtE$DYLt;=x;EMjIt1uKYre9Ill=Vav-u{0D4C=l*HwFXN0 zkwGciG}>wapa}^hv{>PX*+H;ynfG^4R#8L-eA8&inm{6^7$Tt?3DLq-tbVVH_}vSi zIuI@UG)Nn;H>ub6hsm5$+msKcF^lcP`)}l`sfN8rBM!X3Dlue%L)f0XtQT72nsn;{ zvcC_9b13Vu$z_$#5iE3)7)3@7I_B^i3%!zQZ*e^VZbfx0$z}WJH8A@VZHeTIm?+XI@ZRLbewa^XH;@40c>CO1&{8n2F}xbm?v6W zHB!`+ufHtimaAW{?gVuxXZ(1D(XR`w9haNelrIO4L8a^Exa>-2{8c?vzsk^q!NC-R z_+_gA6NY0A9aKW3=WiH@ltwEr?p|nap?Woo4wQl+I=^4K9XE}BPwDugp>6xifKA2z zZbU5HR3c(-C>fnb*i%yJQBx7-lhtXOOKr@pWcU|RU#1vP>a&i$U8{Oz*zf7#G32@a zNM~9OoRR_Z?qnMY;R>28(8djQw{64%q2ARFP^|Ich!JSH5i}?i;V^ssb7U6jx@Moz zHHxdiihr6zQF7t}yWcpHid;*}|D+us*wJy3GxL{` z$nPK67`*oJ1`4w397wJx8AsYd2VoP$NJt=LfC!#qlhS>eK%49W2lCKR()W|O&0hl@ zfI7=yn5QRxq#IHq0YwDN!U6UIVj$ESbG>V|Pev{pIG?B7H&;dn;}KlA_3_i0g`rhu zn*MKpXQADVtIP+gLXQIM=J@(yW%&p9JNB515+hY7s!-{!a4?>JN*&j4tjAv2UGe>xt@6&p~y@Qk83q;8Ry{{8mi7hU7n_=d9fl}Vk zi%Afg{6q16(+UOQO%qM1_6)cI13Az+H<;As#)G?=@a2OFE>2gS98um5fK?l8s>Q+^ zsYOu+)EdG}qso3(*Gu$mRWKdw5wdz&kLE(1M(2Lj#P#HIbf%d)*&2;{-y*k05?aIh z9raNfSqJee=0FW%qYZnXSN&q}7>03aJ*X`sUWH+0r@VbptwZ?^eBU9WFu>L*pOW>o zB2|tc$ma$(<|GoWzPgzd@W(gKCJtfuLYg=~oJ*NEbPKx>2KYKsL(H-^-#5B(^_Xq zzw6w@K(#81iL}`6kQo>%{uES?`3#ZkHqW7mS-NSssLI=4?Men8)n~t9yXkR z3mYpYOrFKrtV2yTGIy2}NncnRfMM1~kxUf@w92|R(Ob`)-fW=Dm?D*cm=&~0rp}Pe z_YaqP7N{zZY}1{1rL`?tyn)&_+KVpGEqlywkHG*${fF)WD0@;?^bP0NVC}8dB<8;# zIiC7;COlDF`WKg$=Fv3f(2A@7O_=&oYdFdH)Fbp)gGnwk)B(yDSe~#5Y*oK-=})=Q z_gmL z@qNwcnVy>gI3=oUa+z;y`X6PTIj3PT_re#tVD1*>*7k~iSo=2f-SU4_GGNNERTaZ~ zk_f63#)reqqAJfe!Rp1Yp7J16VSLYf-a#mWO+l3=@b`Llb`RH8I8*5@~I zRph^AurwAOozkTnv;V?)BtK?fKYt{=l0!Ukukp?TV7mvZn*lqVX?Xg~C%ra<(qGIY zCf~=6|A5RKgAUSx91}{4w^B2@=lW1zG%#3+`;6=2Yuc3D& zRrgv+G+)kqp|{G)KB>G;grjQpJ7d?(dM)ko(M+4N@-+hd^KZ*me!hm5aFdyk{kiZZ zYb&&V%9|iBGuBV`GQ5emi3IB zcz0A+1vqT%-9vud`Fx*WWX2q>(E%}76f??EuBUA)N@+jov3Z5agxS7xp-s}cGcgly)M-p5z)@3 z<{#;+{ZS@~-{aS%J-TEs$b|-VZm`RH;2I#S6ClDJlBRfNPlC8(L&tkbnk#@iu89VA z^ohG=DMR{lrB`YtR-4K)4;`Fi0;e-YO!rc?gP`T-%e_x^f0gYa=AOLrdIw*4PWukn z>}5ozkU4VM+b}{$Wy6d&PwH(D?(?RqX>MgSX02QfA(zU>{EQ2$A+XCNN>8PN?_nU? znn6vNFByqJbFJH8%7dx>OKw1*^_CNYpE1+oB^r=F&VWpAK3}?E(9wKKh(!rE)bFvg zzy1MU$Qxl7`~BCjrC8;Z;7E_EVimI9DE^-ch`t56oVwIM?j#afJc9?kcp2tpbpz=N z67n!4tAteno@Y&9nUW^ZOFW=w? zYJ*SK$SUpF^=_GFL&P&pvXu*d<`ln0;(@!=M^SY0T{p?Jqh^VNYRO*77(Ogmof8_l z>k*->Bfd!->=JeX76#x~mI`!Y-e6oMN($onnALk%2%;%jK(S3@%Qn!Bi!vpO@-~lO zp6QSONZC|A$xJ%D^2M-RPpVuQtWvFM)=!)39ExL|9p!c(%F0}5#B+{*mp!k}>pb*= z_&Q>E*zz*HH)o|Rt{-Ci^>%o|o0;>p$fMcYLgA?8rCcFjOB({@CGg+_A3!#$ zPcjXIQ|7@0)2Z-64e2iHEaAR9q3Ow{k5)u2?vVL#)`@pf;#dKi3c4bX>8PmSrs{R?VJe!^>C*fIvm#U98wiWq z=P)u$h9RC{9p<;t^5yD1!@1ZLoW>~_Tk0{-ZC|qRD$#wrh1MX2`SrQcHbejT=sCZg z-ve6$-vcMIqev&+_p^%*l71>>0Z}~lMf36sVMck22 zwEJ*s<$5Z`ug@^}*PVuwd{}YRZ6o?)YPR^6Pf28}5@>V{?O2Z-{;#2fAwwAzQw_E{ z7GvVkyWc2_#W8kdPgZ?<^v&y9+4(kdU7m9nAv)j)MOhVpk3;STfjP>5Si$@BkP^*) zFcGc_30pM;YAh{n=_s7;{CsC!?M(oNDN4$Hd#19EF8=&CaVtj`^&bu^nJD~aac;bw z>|7qzLakLxkW3-;8AIj%=HaGXTBA--$H$WO>7SF`xv*Kn!niBadatQy*+pXm=gd2u zvkb5fZJYS7bdA@L6I{|>)O+!!6GaE_^NuQ9qvsu%sPNM_OmM`w%I9&B zE-z8GQ`HZj%9Cv&nR}VJ=LWdT>gXNGzpRCoYj!%pp}T*Nn(645>inBNmI9sBmO7xg z+Vm(b$z?;(v=PjewxM7BJM+(6dfg+JmhE3MVe$EV^vSI3NEdXB{UJXc)*>!LHuKKO zrTgoHa+bpe63vPtmfe=L@rt_Y57AU}aGSL4e-Bte`&+~txfO^`Gs4C__3}tI_aS8N z->(bbwA4de|9?06KTjz+s0g4fzCu8T+<^b4U1h0FRPVFEY(4+1Cszteh(Y+#ggFCT zSbMinwTaqTwPC|wzop5$h1RB}Y!ET(9&<|t?_%d4yzdeMa&jb6$Lpt^vuyt5?m}~Y zpM2NUER@XX-}&e`X6sxlO8B@q-x@OHnRwg5_MZa9@N4qDwo*>h`k z=P!W80+)91m7ks~pud1)0!;0JbiCX`o>{$iK4B;-tsSAc=q5?sw(SxiLdR*%r-719 z`Y55G|Lg+ufVlzI301w|^SXNO_oTxJp!>+sRZn#A{Ecd?bLX8Y-os-lZ{IH<{@h=;RZNSCTagPFf)yqG{%Lu(Ew)6v2NL7jDJ< zU6zAxZxRcL!XrEj_tt!2k`4GaDNVsJ5PT|6CQVDZlC5VRlwii?<_$Lb$;O4pBxJ`O zGhD&4WiAxLvkYAy<*jrjsa~9!`EaAD1|695YNc#fsijK z@?v_jyrF;mrNWrN;_7FM`NVVM<>@cd1SHPk@TQdxzug%MmsFw4b-}s0hU%nd$dA}j zG_3$!(lY~#t=Z^eC^TDaPBg*U+Ge}Je@7duKxZA@x1w#iZ{xbsQCvLY)-HBrg8R2C zQ&O8EK{Qk~WkuFSo`y48NwYol^y$Ro43Q(n{=yH^77@=)Q|?M~TvLv2g3Pnu+3Uu~ zenk;MTeEC>jgex8*b0E?Kdc`aQ;82$6)^)2*e+_hwmj$sW93xoy%ImMbRk12+(rgB zJ@l*+%X6EogDNKZMchbR#ehv2;~jWMj1z7znqbKu5 zdx-ej8H?dpIJ zp~}Y8sMyAr-lVbH?L;GHJ7tko<>t9hS_NVSC)PW)MBsl1q{|b6rJS@Ww}Ox%)Hq^b zf8ECUZEW68n&-G7OxUisL6Qsc54nJiCYeNgIcN|I&|p4SXX8B}Hi)8%797`tL<`1H zQ2hQ_)L5l-CtumMOH;34KzQh~SqK3NrVG3~jrPn$?f#U4@?JY87z-6_)k&N=7glkD zt69axmtUpd(0iEG(TFm7#yYt496>z&J*dO+;3+u<4r3RW(dCI>2r0v-h||n|ZaQ|a z_oa=267I={I~iN4GF6yp$UZ$cr}9{;*?v%C^2o#YUsy?i{1P^{hQkq2%x(c(S-JaluX;QL$3`1}dknv!@S^FB~1EH3fiiNr*gUN@Oj zPGX0hSLS2mAQP+D6uIdV?hynKriY>x;jlcyEO{4%MQ?gdh{B$h12wIph zA?f`mQrPRl54B-gA`$m(OL&V^gz0%15)x!BUP!h*!ujFa3z7(MQyb8adgVSGIQ*e* zd%nJp@Bm)9K0Y+r2)d7r*}b;m?jx^b;aa=Fxx9QnoqzWhePr=|eE~l9Z_bZF#JqHu z2Q>X6+o(DBSae`k4tbPyboM1D#`1wLAGnEnhqifsi7%N{vGX5J=JMlvD!mu&!x$;ixA$XUQ8AzOPNJQ;Qm|?-XbPp`; zYVC$bcpPepkYgJ2Q~&@$1ryK1b>(kL*;3vlZBqcVb%J`uRMfV12Dg=TlG{R3;-v8m zQBe}8QKA!e#k1pGxE?xkF9@pe-#MNgAA;PHF_dF4Zs}y7=kX&MD`$U7Qk39w({;DfWw9-bBX)F%L3y=H0L|RJNda1HUniWT9VD0-0uN7G zO(>mc9YJ?gRR4CVJxL>#!F@xmz~qKKbT8vhN(38p zR(vxVZbtg79RVQ6CJ%69zB3uMskt{<_`u8O=vU(}7yNLe#6JW}?FqL`1xi-xPU$In z89yX^1~K}4df8M`=?^kH^|sI#YWuWK-)^|uM@tWYu1&2A-T$Rr)s7uA1tA5+@8SU( zd`K3(O9aKlnrgxaMX4dKWsPOwfavbDtyBGLSsV$7!5zRKdM)$RSMWBlblS$<`vE+l zC6zVFn~<(l21NfN?RJ(`+NuSIH5ZxTYYj>~IQWVUlEjD*K6y-WPn9F=eKcC1LwndD z*Iwxlz~0%j@!fAw6|K0#>@yG%B!I6gNEx=?ixbPepH-(-{bzln?BKOLFC9c-NgT_v3Qn1#pP<3fu1tktY{xLMUEROkQtihuHZGd?Ou#rJ_DRTu z)WiOJ^{3)ppcBk20$utMs{r^-@@YP^zv&OpEEFK(V9yF%b2W3)vcmXEvxp3D%dUgs zXqrGzDGKYU&d_TSV|g-|YRP}`3{$X=5SN;l4%hma3HgsW82i5v?f#o`)Ij3$PEu#u zJ#$Q555xw(!H~R~5uDy4a0A3U9wlw&NBwbGS));zTZ--rFTzg`KHcV7s#h%~U45Wb zdLw{*PB`fAiLwt+^_7GpSJ>tlefb6Ku;`C+vOZP^X+pc{6tkVA!bl^t-E^|R1~T^| z2=%_xtixw7!@s@}yFV=$saLpb7q2O_$2ndOY^GBI$BX`?{_Rukb=&a3mHB~#7`)iX z(^-zV^%C6X{BJTh1pSSC^X}!?L|~3td}Fdqq*EOHYm_L~KAR)mmEhJVDAaw3s)B0cD3edsd&- z>p7~2TloSc?7ym9r)Yow%jouZrjfevh2N?glKDgb$lqnC|5*aRIjln%(V6L|>uUlO z`DEg{r>y1&U1I-Le2_S{V1uIxVj;ORL{gz^w%fK9StMT?{ZsTcVK|>dbvCW;7y}5@ z!})$6az}94$aaWIWI(Q>z*P7W{Q;IhsxTCq`Xu6kCTV#Z#3hR?xE1TH+=q z`ylVLDTkC{qdsoSpYHT7<|SkL10o^~zv3#_$(of*{-xG8Gw(+HL}7p@%j_r8NK>>{ z(M2C2VMI&EE_^BlOP|=j$mWRz2uU8lpkzJ9S`_w}rKt7clZ@$eoc6h7qdDa=4)inu{RCK7}_3WDF!g;9qkhk?nr#{FG=iJIC zT!E8rDiEaJu}V8QT!4$cS!W5|Y_>cjYLy>QHVjpYyPKGOwt3I~Zv+uAI;?WJ?rI-y zv+n#?D&Vvj(`ZXwcXSyuhP`=nJ$h!7TSUYoY5COqSE5B`DYmJ(r-NOXB_7nxPxoMo za$MPc!M_wC%XOHH<&~}yKK^*2)utn+uRA?zn_#C?olHHB_{`IX9)9b!$%Ra!lrmYv zqs;WWRw+l@U;6{D5Yz(z$E&rt&m{}s;9i=P`CU0Sj-v^xMzE=?-=J@Dod#`?WKIhf zumsExiUe~$5iZPRALk#`YDmG)X^RX^CFxxWra_U6z++i8oGm~lE43^XFjefGD-i#z z17I7N;7nN!HCLvK*4=s4i&%79+Y>o8i`&R^(RiQq3bkdVgq+6!B%4X(6NdE6&3DemliBBVbE$0#|Nso7o~eDmi5$O0}j4diiSLha=IK387ZOHYT` z^(ybHk0QoJdK^c%jN#OW#RBef-R&>;QOL`n zXNUfffqCop(V42f5qmeR+GqjGW`4Z)dCzkW;S#ID>Xl+;B%F=9M{pHMOvUS2Z&3n7f8{1iEf~hIA97s&c&AApj_Ho%~Ott;q5QojB zTZ))@R8$#`C)C5Ch9Bv}ZGmtuX%LqZg$5`LJRB#+b|8bT!_L4I&|NMjD7l%@M4s!^ z0C@tgoy5=r=&K7@hZ?gyVZKx3c)veR0ZJ(Kp8pxp-r|0|BCJgRtpFsccSN7FApGwV z#F?#7NZz+j*q4Z}{nrL4d1w89mLSJtc~aMJd;O|t+(gIrN0YIfpR9c-XS}J)Y*p@@ zN!IJ%RUkbpGrUh9hlX#jEo?xU%|D&iR|{MNFeLpMN#Wa+=1`>vf{Q(w258g#7n>BmQv5W}R5Tk4@V!8pWB$TFMk z_)-4P$MExI)9Reic;#P8obym>-Zje3e3KTk!S*4qF^zh5FHK z3=farX$TmIg-=mjpCr>&F`eO#lyI1A(3miG$>#h|?$RPwymcusu z4Cz{Rr=cU_n|uu%6oA>R2qezL!quBW&k-&i{NeL+k9q;;#7asll-*5VQTF&(^WD&X zfzFb+WVW>3aUF6QhQcH=Ux(1%rn`_ki`VtF$XGGA3{YI*xYg2`!$|fjc4SpDaMq@{ zR1{)1iMDu9*E+L!^E))`sZMNtZal>tV~CJ<{(%E3G9Mcw3;;ca`GXH~R5xhI$#2~7 zB@tL9V`>ONSKIo46BI?JtOM%FfARTZ>CXldSOXb`jXw~!!>FdA0&$6SC81zq@qxcg zZggPYlH8}W`6pEIJq%N1)T1WRNK!?X(5clZwDHnZf0$V9lEBYacXj*F8zLJx$>Nsy zXl||6CcGT$Y5`&1B%mg^0j*JZ^*KlJzaJ2+4#XU<+ncAYdXMM!m_D$IO~BPN+hT5A zxQVXvZ*vKWDoM{9r%%FS#sI36G*iQCb!$i>+RLek?*j9#7P!QtSgg+`Wdy?6P5iLe z@h(gy7d++u^Jc~g>i?GS50loL2i> zAQt6BpaG4qm1@cLnb^L_3Iv=zVysz21O!=IG+8=x&fJgcw#y3v$p8}I{I%RH9gb#< z`f{d~Xu$Ol8rv`6{K;MIjZAt-x-rW;ZL6OA9`ZPaJUm64w|2OZ$`I<)Hs^yfQ;skZ zDv24`d2n(}^MlwHQd8WFwNNYjL&|jthu^y`hP;7yiKKJGRi@W2Y%Gmz0dO4k5eg57 zWij56Kz|3j!;ecj-|jRUnF@rk7GJrHVhA%(t^x565O$l9zEVB?-uUbr9wEIYwfyu8mnC}cUM z1^_YJ&F4_%zRGRtJ+vR*ec_5nG`L0w>=YCJrJEl8q@L-xxWspGTWvLyA&v4s4vE;| z2IQ-Vg8`>?;?G`VzZMNEtVNBDGm1LvXEYZNJdZDMcwgt7R=j(fBUKye%}bam2**c0 zfr*H0jdRl!+&3-J*MaQw2vPp!6=N*)D!|m1-YYIfgCqLR($>SE8VEvvi4|LhpubWi z69=-zIXJ5;)_M9uHU8Sc4m{kMBpcH3w29pFUeU!}u0&vMjD|d{51G*DC#a@Q_hp=% z1vgPaWMet$PysKVg(d`hLvee6gr;q7UY>IX9;+yQ1WBiO7nsTNc=g>uc^uQcBY>qw zR5k3Qs;9^F8_O{iy5!(Y>*6f2cT%JB|3lr1?5+gMqh~|9mZX>nzw* zxJZ*SCFjx(f`6*zWsrtvTU+Dg0a*3I%VBK3#RxA@V{KhLtpYg29p>W#dtl=hr-;)C zz{?FBVm8-w1V-1!ssDPwM37ByYvq9EuR|ub7QMFKn5^I4_`0nmGfn=P2+z6n)`N}vP4jdt`wj9CHj%9sD*8wF?tUi! z0NxKzv>x+~8vxz_?m``{I{7n3#Qiw?+>=O19u}V^g{DSTk2mpw{u(!b^Y2$c0f6o| zPJey0J+967eE;>sdkI%hR){WO07y^k*qx0x*xY|^2&g}lE|d3rJu@K4=j-A5H3qQz z-gX!WR6;-4n@KmV|MIJMj*_x{FwJNC58K-o&Q4Y~ddP_kK3hj2L9HFD7Zs89SZAC& z;#I%oH!;tiDvy(@ws5}GjM(*Py+#Rwh?W?KdZ_xFhsIv9%3#`;|2cZ|uyF$FgHX_e zmNTkf<9^|j&K(7f6?|7v6tz;dkS9REtm)qpsHD*^t|JO(WaDTeH6Fp^KM z7zD=t;6Z_&u*v*J_h=tf<{VYixAjB;;bI#8)qlrsr=P7RF}N1&q}fIwCQJuiQevU{ zj72_G4|mSy@zofA@sCyE>UP>cDI%FTS*53^7ITiUgQC8MAFdun50C*>GblZ2gj}TY zX4@$SDpVSo^%DW>; zsH*w`6ot$6PGFZDV5c`u~U=Jb8rgDJqj%rZ|)U1 z!vx#YAt%ACSIKeWmi?;WQOR_3Hzn2KsGlhILQ@9WVsvCg^0)8?4abHQBI8o*KAf`_ z<1#_2N5H&&qplnDP+su5SdzsN=sgJ7$ zySPrd)W6Ybxi;sKWTgd9M|>`^uWj803O049Q(I1I4+|YACS!7ti^&g&ja~+<4vr5E z`2koH!6mk2fB-l>Azn3A^a(mibZdj13A3OC!>;#X?iF z?waUO|Ah9U12>H|J3);Nkw@vJeajIf;P+S%ICIRWYIH%GpF`I$H%k}Xma}%0!`$G^ z=Ku_b2%O-|STNJr4N7Dy<2?4l>;r1RwGs0C0AGjQJ!lI1(yuel7VR`QEO3T@yRrR3?=sMYc#6C;{)iSGvt%wU2LQa?2)l z2U(XFl^p)#3f_~DRq^dweL4xvWnG6qZ){P%#HG!H|yo6;t zkz%Fs#Lc3}p9Pb<^!u2ZbYlZKS_ zu+84{L&xp&`)<$ndPw=WJiQap8A2VctzG-%BfaxcpPI>FPy6TQJb^zt>uZU}b6R~j z!~Oc3-_0*x88CvnZZ9#Ek_UX-N1-$xZg=39!wN0$@>98v^l$u6_ZAF}y}Dl3ti0Ju zhla-0%AUfoc5E&~B^GFO*bQxCNT)o*+A$ zm{h{9!ma7fD0b?RwE!VV>;%{*I*7_!RKafMsRYcc9jb-ONs+0Gwu9H=YeIdF9W;Rz zmASMwMiLSYLIHl}1ya6?6~MF<&JA(U-H6Ao3!V(bcnxLvY!TYvAY$=tR z!pIx;7o4DWJHrs$UYlmZ{|-mYn<2vo_Rc{()dgt-OpbH+bcTKkLLk4g*668chs9jX zS%4FDD(5x?kw*gSm864Ic`hYt{M}$CxqE^)EcGFUJqs`$_7M#B(tyzL@cK{ zpg-CMPe{;(G3NGUp%^qGmGHwKi7;5SSr&#L%{!A}+6Xa7e8h(vu}U?<86v+m@D{nI zizGS$N*fAQ3q{h~*dAs2LS%lXMZa0drLA&(VYkagrd=Wz@HL)Sq<+Eb{9Yj+F!-(nC3k&?3cbb=nXSi; zgz%PgOUQ*hQubH5r0R0v_|rrjy6vyE^kAk1kUr3n;|3K*27UDma4}_*V&lG!B6f0R zkymQ+WskXHfr0hXQv#Vkbke`ohiA@R@t80@psAjoQg5O^n)wR|SM>OoPB!ptApj#< z7Pz^QiP-5qCeE2hn{M0ji{O~m5D8XWVUMyoYcVT~v9dlK490Va1`^h^bowd9;ys`f zFf>_XvlzU4Rt@`CZ7Tc!arKSenT1QRlVoB|>|`=ACbn%`Z*1Gi8{4*R+qN~aZ96yT zo)34O`=S59UTb$fU0q#uS%RgtF&L0STZ`X5zo5)WRoE0ZQJYZINE++0wyRZ&M3U58 z`>*1%5xL#H7an=M4!{(ROelJQ^_0D;h!UQ?s4WO>qZD@Aym<+i0UtYXTCzksQU(3z zTvS@lr-%n*MdMk{)Y310lGX~AifLQi8hDEe%k=I;F&O&gRqAB8FcdQ@h7K2mqu4Ym zp%^+d#y?XGuu$7R$RJ4dohKjJp3*)&xbXT2k!$Ch18~T|hQ88Y@L{+JnH3%x0i>Jp z8(kZzjy1>qwfH~y6qgmgYAmAIOx)rrh%YBDM=~1r*epknNR5@vU+0{hGx-@ZzX>4L zcAh`eQ--3RI6`?>j%G-^ZjoNeP46}UjadKNr+;m1h{#>@wY~GKxpbnF#+Qm(b{2&L zw&{~7X+wL9<6<&|%MV`p`nH#zp(<9zF7>U_L#*j16i!F{OO-2{Q)8)5Ds_?TaRW-l zmDQ_FxmLwPO(>X-Bb{5l9A|=UK=V#UJc!=?SKG7((3GG_^0Nk7%8;{o>AH)uQ~4=amNq&-yh(_a)#1EJWhd z8Wx$AIN`-JqTGG-*tjqsqi`=*6|vIK|DI<0srB~?VVA6JjMov+DZ8T4fQA;}*)BL! z_hpqFUt1i+q!#;7O#N$c>$QGqJNYiPE`+MZJ*0!Rl1^$Wtrx=EOY}>w0u~9PjsXnr zaE%7DIs&eZZf5{xmmn)X+osSdfD9Jmb;i;%U0Gc7SOX(8V?$Z8d%QvF&&-n`xT z{4USmQ;6i3uG)Le#2H0Z|3~-9VE5buLFdLvP+v7zLluE_N^JJJZ3B7MS-PBWBbl{ zznQjJCGko;TEZgQZtBUU<3Z~!@G`Nx>g8-qe}`6`ak>DY;gfme9bzWfsig<{aR!S)m@(@AGV!(75em~F`v_g*Au)6@6A!k>tZ7bQ60MS z2b~tWWMKH@WMr6MOMD_ALTX`3qHEC_k#P+OW)3%!-=ijW%gq}mJyxP2+NV`7%*2fI z0Ab@Z%LmwaQzrA%H%?st3E68Z)U3+XXy;QY9!7V1Ybr;-r?ZqXLsq-k@G;TWm6yVE zm-RwYHg>FEBjeZoGvwNP?Q&G=v(#HQUW60_PDq&&zpTn`*vtYmE5wr-cV+?64}%2= zgyl6pvHi);l)N=-LEt?E<4ySl>a-TU9gO>~KH1Rtc+j(o#jLU(l}6}KNPrCz2$kAU zE4LmAiWe6WQA{_L(${0AQTNzKAvCI|Pb$7V@rL>p|1aY|lK+uQqFRNkSP9o?`d;yXTf1MfaoS zT;$7KrPz{7N-FOv>VZS`#8||A6;R+%zXW~BGQI}GV8zkNkQ^?^;N#OTR4q^;K z+WoIAB4WVQ8-3EktS)1`YR3y$bTSc8Z`qlhXzm>p=1KRZ zROx`%tQQs*&vZKLDz08F~BV zdhbNVb6LzPt}48Kp(zE`Ir|6HbWr)*LNotJllf~2$#wevqKYG>v8;l|KtHal*9Li9 zz%p2Ty4oXLTFUGVU>xiHhckG!csI5=LZ#xHxx!nDrd;DLZD1@}RABeL zMwZ#<0|C=md#4`;e=j$Xy{Hwi2H|wmqz3*Kuia`8Of4tkTt-?99Y^4;I`AOdsV(Ni zy?e!;4=6|vb$%Oi!YtqtTi>)n<@<4m0MltR?fqV5i|@X6rPrO-6Wz#td(AyvLPnh~ zOj}6RKzHvBJm#+sZuSX-ShUJ65&-D~>DgU=eII$6&U7VS7^I!pZWw2$YQ3*MsiNYvaMdqtbz6sfFq+Vl*I+ z@~o7u>kg<-Jz+~rX>`8x`z*Dd|ANXEdM}iCJ(>6i#DA!S4D}W-Al-7#BXxQql`N|M zok*y_Vl8J(#~$?c^G@R7FIM-=2h}DeS_$$9;5Vq094#}K%%nxSt_J)$q3SKE6vGc{xu&2zdi#lsidMfG63JzVE%*_J+ zYO`-YYw(gZS-QnZV*5?C8HBZyuzW>>F19rs!;1`7Iuu=gZ}Zngwxaal>y^elt`R#^ zp#(xbh%YcifAs4Ayhu=zBO1P0Q9AbjVMROD zTcf~O5ijph??BIvvGII%{_r9HHxX|Wz^NS80YnK+F2Rbt82lolgUIqvAP*ZBHGeUw z4KL+wCvGlKlWC>S1}aX%91EURe>J1g(mTzu2o`fipwLkE;v ziJkHqI$xDGI{m3x)*C zVSpKQAAwpyxyG*u`6J)fZJynAv0knkEm{T725>?*4ETpdQY)J^mXw1@b^1^mPjb2t zjhrp0wFv$O#IRmgsk>0FO9TZ>3mv9JWLfWzrb==eI`r-$MyX9lX!DXF!M=D9Kq3f` zeSy^8%<7eSFYk0-OvfrOa;-G=YvzX@wLJZ-#$T-YUq>=0nZ?m@iHbgn8@7>)pcz(M z68T{!G0+!N$ij`HPqW#Xv!t6r5htXX}DCCdm08Kfamk5 zWpc!uQ`nTK7Akv`zvr1mtrZn;hv@OZ;Mu{P8;V_AY0-jm`03Y)tyQ+690R3|T~!Qq zV-12^w3xD>#Z+y*?y!~^+g@t3qeZjA&L5*vI{p@lo__v>%8@(C0kI(>0-1eKi2Y=8 zJzY*~d#22%&=lR|1!{A4ad?L>w!&FU3IRiAsoFJ?ld3C2#u`=}km_Max;h`g1&>l&mOB3TClD z%<-%xCFbo93JwVM*4l;gqNGFoFsfT;n}lXN!_WvnzWZHvt=cdvAAE19VX1?sox2(A(OKtNIl}bQ zTeI}^C*e-JQy_D6YX^2_xKrZ+Dy+c*)xYRWL*`@%i{FtDAk@Dpk`sGq@Lh^7tX1E44_%S|u z1sh!{+AtAK1NFE=Jr}RQ^$>-_)@%c%amkbmzp%1$ypAbrgO@Uu$Sm*U12CYW_nX21 zSDYWQ>-O7Y>lLH2*R7TL5G`H#C|7wpAymTF2tbrcbaitFxA@M{U5%+Iw+L*?X1~QQ zW4INbJZPP?K5|yw6w>opR46EgsTFJEW^-rx$j&3Yjb+hTEIkq!FC4_Al=?y)<#SKT z|1Y451N@Y2%5s(8|Gj8=wTg%q2?PePDj!AYCpBQ>b6Y4ucE3(XtlSB+AhND{P?4A= zY)m?7%U*VWjP?tMwNsE0Di>p|0n&Q&2MjBbyS*?apNo3U+={Hi3vrni{6~I;yJ$0D z>zHNq9mm7ZIob`VQJuo~0P`$b4JIFHT*5TrzAqUTwP3WAN(&9hCLq3tJf13#w2s5~ z0N@QHf=CXsF?;`V&e(EA)k8!+EEf_rFE7! zhzLS_g4+zNJ(w}QKKybf;nSvk27>fX1A;rS@KqH)7Ruedm^KY2g zK-f!{Nx(717jRHT|N7)iGG{+YQ>wj)+Gv90Z>b`e^- zR0HqQLcTZ?at(yo-LYHD zBDrt3tlQ(m4yw-De@8(R`-`(fHJ^feDn=TYZKvo7BFBA&N-9=HZ>3`&6%_93$=R9C zh3^ux8F4ge^EAB0?~`5*#`U+Mi6b2virlb{Cm!0khMeT7-DE^fdfB*wdX2d=+a1K3 zF6x%t6Z%qb6L(qY^e5fCsL>Qz0?&`~#l~mA&I7Cr=<*8h14RANs?-L+h77GJ|kQH~{9g7o6TG=RHP(KQd^$4S){bDzKIP~ONUP@8mw z@A}in3ds`>0=?!5P^4(S{LLQbvFD8>=l7ntZm!-xihy4?%pV^*-k>c7zly4t8>nsV z)_$H1_TN8zj4!f>ysYs6fgi8a_tVvTndR-4m>n-BD~JEuL}x5r6eJP*ym zZ%59BrC7JNG~Gu1=b2A5!1{035~G%sFPaxHKOeGO5!|hgvm|kd&6ABJRRESSNA-3u zN{;7bYR#xr(8F5(c|rXxA~wd@pKLO?KSplMU<^jE7Xj(pV-2%XKw@%N)JLpA`-6)> z+u%Cq`QTtlE#ah4G1~Ljf`O!NY8ID4Wqe;TFQQu1(0IPo%n^&w(KNK-OehB-1T&hiMtyW1wUSY!yTFUWxmru*c014_+a4 z!`uoU<$P+wVEiuK8o7`hv&}Bj&VuJ2sRvFmta7E?hV@YMj5v+~htf9(JT5XFBa(cK zC_Neu+O0U-?XKgh`V!HysMVAxA=Myo&*gS#r6Kl<9B1(C8##F(Qt_`m(vWsM7k<{O zT5Qgj0h#eM_Z$R6269aGXV{pTX|nXQSwm5WYXG)-Lt>*~M`1ScsWdBM#GggB@^xYe zq@5{d&IJq&bQA!l*!)de9GR;N|ZDO_DR#Ut_^c9eYXxl&4V zS?JEk)*NIwk42QuH-vqc_WQMHw2^4jR*9A)bjtm!BuT78^Liir;-^`sR^w9i{C&KP zz)ABkfgS5WJM{A_f=$bS6=D=3=~;!B1Ie9@eSxlhaHF=_=$~Y1f*!tq|$`-*k9W+BwD&ql{eqB@Ywng_9>IG+iEv~ zqQ@10YPw5`T8yyoBKBgChSyrwf8ESHknXm$G!z?6J*0nvc>1jSk=!%3Xn#?z`Uv6l zE~`g8E{zk!fNi)+>}ct@qVyfjw@T%rIZgDC<>n$fHz)P+}dbI}{Fq%tx8rIzd!IS^kfffx%PFQQR96^PJ8 zUr<6hIaht{zh{s!bv#i{FPBckJY^$G#wKWRVB|P2N~?7ENoe(E2t~GK?C^6IilVT& zS@HL(RD`hq+pB%T$nDeW1284Cua1M^#0s&S(rpf7NJ3{X(DaLkGv9Q^UW~ESiz&|9 zKC!>@Nm)>pQ3aL314`*>4<=1L6|3=DOhtGq*F&YBNg^K|^B|!>ZkIoCiTXQ3e1@xH zR)hAemq^%QlZ{^<`6E;?9TaJxnA7krGMT>AN6-E}>*#|Ar2=O45NJZA!#j3VgY`() zsd3z=YRfx#z3|NM<-assq~~$rc$ysBmO9Vd6YbruK$hZI(__`15c7==Zv$?v0r$mQ zUf;280p*p0m%H5P4>aSc$1#WTc$5QA%UUcCla1X- z^>ANuNXH)llDH;vmQy3b@ds1VNoUm?^KQEVXVx(CD;K;HATT|p6@%0M!vuM4;lx~P zM+XlFYfq@|Z(SsijW0*d9i#}H8nWIlhcqf)GqJ3fj;HV|4g3qd>>pcX0UA&)fIvD| z3UAu^SJGS^oaH7p`&Hht^z!~WkX&$Y^8Sbx8R`2NL z=J%IzlczhI6%egHHs@?fRybQb2grHw+_(4Fvs2t>*FfOfRyNSF+dE70`jWwgK;Gx+ zk8alLXt}sz29r|#%p`)l%iFO@2S-n`pz9zfChwbT;60P}ukL9xC4!@#0b}fWj2b__4I-L<2W`?s@_(0wYe0f>y zP@3q7_AwyG%qv5Z%jX0K5jDf7^;7Cn#BF>g;5)(g24xM&Ru5hY=z8p_4Q|&qmf3LB z!zqwaU6EeP6^$)?#km$Kk|bZSQ~9*qk#{PJJQijK@$YvD++%Xp<^F<8Cw9dzmR~-mriSlB9HJjBs#3mAq}}&p6BC&$h#mBH^fWyX00SEr$fzEdJyLp zP9lL6&>=)ISynf9PW=Ts*A-Ke^8%!<>w3j!y0gx4AodbqZk z^wil$qQs0p<;Jlyc(0{!kE-j)y*T&kOL~#A|3whHjmEoW>W{M26QmNEN7umZSO=u6 zTZio66K%i?c4XaX7-l$xT}4L-tHhIL&Wj9mm1PCAl$q@~Q_1T)tFPP+u7fjp3<8PH z2cOBQ9`70n{k6r&*{QH-g8!fZ*0+hI2IW_XjQ}2+a zah^#W=1#o`A;I~4b)s&%Zr6v5i(#r?a>w~Kj;+x3&K0^9Co)XN_m}oRe0fs*;)azr z?Tty-OzoG`f<`pK&Ckgnz$^1&1Az+9{8qiY*=FHhVnT#}%c0u(dRvP;#5N&Paqa@{ zj3QLDQAkedMS96@$*c?RdqsP5iKwmtx0M_a-FE7&=Xkr0IrNq zCBl*g$crGcb*GlpKYlJP&rL6xlXh8p?kMx6^we7MU5 z@Sv7D-PS5>>1ZGOiSi4^T4}zr__I|5&&%xavqZ~0=;7WWa++7Ea26BY-mD?#EJdH zPkpiWz5_>-b_w}i>XPwo5Mx2WN&X) zDN{p)cx8|TEfqyqnhff^K>4d5(|WLlWS=>*0(W7wYGI6+H~VECQ^3eS&PJxfh8k^0 zoKx={6J{#4Ja7@%q}ougMrG66Pv*>CCQNYILhh2f%S}%^lTmoR zJkq<}9LKk){|=?y7V>X*ERBni8yxw4Y22J=YSeFnKg?Gve;5qc#2Ze=3n<**ADpY2 zbq#M^Aq|_8`CU}~)C68h#qa)xD}+=Px%gqK%-yhKLI}_#3FBWnYgl*N(!ah$4(jas z&h&s)!!L4Btr3?r5&R=0&a>xUdq$K$p?>6Rp0WN9YGqEtX@Zo%EmyvR15uea?*cv9 zF1XmDiroK%XT`v8pLMk@(>t|{SCF4};#C>iqcJiv{!w4tw+qNH<<(dTSK&^*NvUbL z=OkIc${%@$*p%U<#Df2|nh)*$T6eJvW?>5|gJZ&+G~a+{SBD#6LvMZZ*MhyE^RjcL zX~Q6$OA7^C6UBz49JvA$>(*Nr%;!_r^R6)WFrq>VPirSUYkz^a+pCPU2ftH~(E zcWnG`xdcFq-W<%BEaU-*S41ymGaJgw{wF@;RSdbPJ_%@-(o{BOwugr(*38u{+HrJ3 zOLPtyV#;xr^Y*0EV2PBNE^LwR>Hp23O5L!F#D#3ZdtI%yJ-iX})Mg>!b)UhooZ@(D ziE>TLm!Gv);Bs(0MQSu~8>&LepnFO=;{?Z~Jr@b?qA>LRoE|qVsqi-1$U_wm6sdo2 zLlEBOALNz`wED=?@W87-aazaO%eAp6rZ#xO4V^!fG?+7-_^@{)p@M9fApS{jjY4OI zIAW51`HnZ7&HDk#Zz+HDUmW+J_|H`lBjf+@2c1}>QRn}a-WA#Xi@Ff2WTLv>9*E%{+o=-L$FhZT>@$Bqwcpxv3M%Ir5>ztx>hbSA)SEkRC zb*aTO`}RMohWKg<-sxv4+ml;8QHLp6dL08V&0`ujrvBhS#SkHq{=;~hgW?2PzM;&o z`lj`d!M@aNE8nmeTGw9%Bx1HN2r{-k^FCg;IxiI6t#``X#zEaM0rl9MAYJ_HwtsP< zynVw=fZp-+YvRxPmnX2Z0$efs7KtP=o>)rb1+AnfKCOu4c5YP}q4$A;H51I@$_;=9 zi++Jo4J7!#bg+Y#%8sa-n{nco7z>tVNgzjMpYp6S)ceH_d-ELpiiLy}A#1U@Rf&O% z>Q|AKodpJWfjfYAQqqFrblk40?m)DN)lJd*SBH)Kct zMGSqT)gjj#s`_{E|Huj^GsT=#7dTr-Im0v{<5%1{0>vQ{GG|UwqLd${cU?=iuahV- zx2%t6mrn-{-!f9JJ0I1HJ(Eh}21KJoj$VI|eqLxlFRZAD2==QhDht=jt5Hu7zfoo@ z1Id|M4Mvm_C1iGlK927q=5yrUF}z$V7Q}1(!V1UWJ3;)24q#=N-V+zaYD7@SYas#n z)J%^XzBN3|BJ>hnM+|;pm#06Z_U&Os>Go1d;)#{CUmfm@P-}d|^Vp)80z{lb2&G(y zU5;^UKw=v8pDD>Z=_OteRT#Zm0p`+ez&cD^P|({l&?UwYLObPtEn}+CF$ts+x@eG} zV=@TB+GpM1bF4<^l?r}&n9#c$ z1IHam%l@a%l+Kts4$GW^Y;}NHh%R8vBeVv!W%1Z_A|=u%=~6 zm%jX+c`sRRV=RLqcd#J#>zVKCW!^-|9SL%C z4~FV>LgRDly^1=gvLpP2-x{WvML47YiClA`E%hq4o{t`m!mb9 z%<_$vx)mV>G{$>5G8BKY0VW!BjPY(648S*;VX6{5TQkXipk0SFpn9)Jz_#+3qBoVf zdw4*kPLEe$=t$me#d^|Cf+S_m8i2?b-;D;QT)E(%%QXgdEf6~D(h!q^Q092>!JT+@ivAP9(k zbbu|C5KvR+z=P@k#gcXga{2#FJlzG4;jXo^(jdob_(8UG(Kao-6pj~G`{3{Q|ew78=$ol2o;tYQMtwT-V9gM zPGq6Z_SgR0V@M9R+^7KhLn~6gm-Z^)@o;*r`OA559wA-^&ecl+-y>~|D)7x5$ZZKET5~%ub1V`n*1&C zWZFQ7@w4x?3unf%fv z{Oqf2=ptc_6IKicKI2DPm8|9*_R)m0h3oXe28Uio;uSN?hu#J=tsff+!Y15l0q9p- z8bWpd_^lJJ8`!zmT?%W>h&<}Jw+PE`T@8tSlr_C-tL^O0CW=CE${N}-zkP!d>VmVS z-n!Znn-GKKV{IS^g>$OP`;(B${cA9w?L*a|wM;|iRz>~bklQHa&2g0fvis|rHcv6n z;lEIKGXI}TBIf@^I`vWOJCtN%SD;(Ty(f&>``YibZx@LBLjmrE;M(w+Aliutf zq(+&*fSo^kvr#qpeK@^#@dRAfDI(CBmYq7Rdp;q_j);}Yx0*T^;#G}#;G@{+mGpFX7)SZ~ zNzppG(~)0qLk}{m-y?JF*w)CS+{46Yexh=xpOT)~JUMsG0o=Sb@{@03q>aI&uVZMa zm#$=qOqW@a^^AVFC(4%)eiRVnRem&tvmU`L8LtB<8w`d8|0xqh(;G3Atji*@fzvrv zlW!QjE#_IBWNuGRwu6SkaQj z`F|D+WR5(JJ?|SfgE!v_18d3h{U~o^RRqXY(PC#|@F$q*kVMXRd3IAxX#a`0FOy2N zdFwcXiqt!@?J@kx6wYKQHyxhDb%!odsK8<&Uj0(PA3&Kzn3U-_)g}{bT*Aco_+oD% z>)ktc`*E3rxZkMLvlZ>&f7I2nHj>flN0QKY!B^4Vv-s3wnQbW4M|B|od9n$-1YR|k zzzLe@@wsTBjkC|oZHAdL69o}wovP3Bitr~(d#;S0v0Gc+!BL7mhyD&MFo6&M$zOPV zCw!vW*#jINLfd(2JcQ0#q{c#+Oc)(h$-Wt@aJq@%&f!*)L7vnK{c+T*ucJAg6P2s% zdVl|0VPH;tIsRs>d)IXbF)Y({yM{+;T2T~t3wnt2K_%-cWyIS>4Jle1D_CnO2CxC8 zG$ZglHF?)a5t=Ehkl%)D{I9L`ACS9ezpi{Zsx_$9BJcQ5&(wH{RYBgJ*RmsmvI^(c z9W_RMmFfkiUWxfG%TMswnp2IvgK3EZc@lh)8!j&OpHWOdamG*4e-0TII+*>`D!&qF z;9&$3k7BkEBUVNz$SR7?GCf<)fEo}0ha4q98B1+L*S6t#2|%|3^v+jo={mHxWIka2iun3Yl4+)XzR6IGmcvd zMUx%v?M|3lQ)r2kIRZq=+JEk~$y3-RxdSM#AeSx+nE%xtQv^rUY}m_*wE&#av8x|$dX4nu2o?S|mBlkh}~dS#^j zm0^2Fqkmye@11{08~xft;Mg0I94JcEcUsfWC=hot5mqXqbb~%niUkgs97q9IDwQmn z$oNLvM+F&&s$5D#1nl8jjYFzd4mpUk$N26+BkckY;oQ?0j7x(I+evwxxU&LZ4i7C1 z6oy6Ld=*ei5KgH4Il@+1KkR7nv*EIf7!UfZlFM)ND9Z`ZJL=u}TT%`n?i$;mL328n zdbs>r@`?42at#DDlCm345p=9c*`b4(Oj<5u|NXDfJ73@ZTp@_~W(W7kJVg9czD52A6UypiCJRDOe`6F&+&%PCFe z9AD?S`rf#7p4}}p_jmpI_H+5_6QVJAg!aF{o3{2nW3n;-?~FO9(OGrI0=M~w>g^jJ zmOvuO7n94UnWO1jkA@eQu`h%7`YA~g7e~HUn^}*FArfU3w#&;q=JM>~(^~+flVX$N z$r8Z5{3?L#E$bH^S*lp%$w%Rva2tpm)A1j(*?I{;oy^9Jeg zz9rK2xYp$tC)(Q2U&pGr>!<`d^0$$`JS0co8%#lDvHIIG`yl$WVb_putlhI-JEQ~q z55NF*MpbM?fb`VNp?gCNFV;UDI22q6&Ha z;UwMKfw#J#j)-XYC*iA5*g?Kq&J<&$Ly3gu3Qm++K{dMaL)JeE#6Z!|UgrAD7?g*w z$e9px%T5adR7>v8AogxK%)~mxy5D)n!f%pXCeQ(7F$zB(Jn8n>I`mE7cvdXzaEiCra$ZS@0Y zMHzedI%+6J*hBpvcEEQL`fcSnBFn_$ff$52iz3H*sN6nnjQUalcUWv^PT(NU+>VLT+;-Voq4X1Y{J- z*hfWhclOw-*`YTW|cJC(EZOT09s#OOAw}3ni#OhUPPr^-)-rX>C z%BW_Y`?B*2yl$DfiDUTVGmU9r6Fn46wI~4bY1*|Jr=#!;yP;+)gz%+k=R^ zF||3&;(-??uF&st#0};Ym6J4#s`ur8`*ejP)9gO?Wdr^M5%Z`SR@Ze9wo|&Vu7g@V zf`OGdm{|XI8v-)nf_l{wukQDhI{co%vQ%}+lO56v_U9fCicUPgwH%r<^lAJz=3XTw zQnttqn0CCY7!$UW01+WJiT_auCdbD8^ET(yi)qzW! z1Y_Krg3ufm50NxARlic{Lkn6occ_s`D6!O+btJ8falb3ZIox+&;3`|!#UJB`Ptcef z@`mF_3<`j=AUu(ln|sMZY5r*^YdKLFbf*C%-le61F2smMrfk%{y66Z+$H@DyF1P!W2{l;Go-M~a42~lA49lxoNXa8MeSRIev48%pK))Y_JR0q zv{3Tq(zS-C5;k!m6CIlZqcpn8%yvssbKLu;jtQJTt!~z924@9}nlLd?yC9uAm;TqP z8>;4}8#{5)v}1SdKpM|ec8g>f zb5o=&2fD%3ElGEz`u}U2MnX)oEcCqPG|<~q5RpfuV&BzAEKO^-(HO9vx`v!)nK-N+ z`U27wGpM+|%}@#^9Y}ebYNL*UF;<=D!AfekrwaKssKk|wuKW12XY40BU{F_cTy1WL zTU%WVA5ELnrO7r=O)8S`{>y#~F^APCjYs}xME{12=*Q~PWH|$AsBYc#qCBd>{EPb` zodLRL=x%9{N$uLhOCdOA`GlBoUFtV^V-PT4$XH9<#m+gG=?4B>_iiKs`QcBntq~bJ z>bVT&-=3jazlwOXbhBt&W*AjwRXzZ(#p5FRGRGnm3&5fqXDCjEZ4^5D0s)3Pz#v|U zYN_e=IK0799&1<~$$$4{V%;n~0FPLEe|@ITvO4&ecK$5qRMfFBBHE&UbQerTFCLK0 zpcB6rChsW8(ir5@;`e1luyvZuvMl?lm_aWMuHR{o&!xmM zbEr*O%Fe5yes9*p+L(HN3>)uJ8K-j!1A&L`_ThoToxNL=1kj+X*`AOfct7Znl>HC% z>88adJmRW$ccsI8AebN|6t8XCy*hAwfFfTa34mo6YW~$ev@m6b{S*Yzamv|@{q3%@ zhRP`&90fN9NyI!hih%~ayw$No5Je@xb%bIXoKvGBZ`)w^FTgE$*PGbkR{J<-wPwTs*dbgJ#h@Qh=6K>4?Kb9gP;)Lmr&aOt;#hBjT zkKX4!xv!Xew{_=JfI=viVuwF{mdYtPmiBk>{POMWd|1=Iy)q6_Achg@FkKE&M>Q(i zh(_Ur2~_89@?i0gJu2F0&M?}9&*K5X`BOdK!_vW>=kvlfn4`3VQIoW#lVpf?l(T=_ z9>p9E7wJyADgCcsxg- zT52I+1{~6`wT)t>ZO@S>6@DdMDTH$-47%;eKpUWO_lkG_n`Ltnx&tSN5v}*B{h<&c zo**l}Ebdac2UHG2C_8wVoAYfv7U!VuBsYsHZRoQrs$xOf%c8slz-f^$*^5%Jv6%POWRtAhIWWRahsUTirBpcbs#{l-YT zEbs_Ag~_BI)0Z|dbJrwH4hC-tZo7ZVbA+zVhiyny0oEXL;`TeY4U{F1K`V;o$Kp%O ziNg*gijDi)*9eb3JIDn3A+L?a^+(uR_WWAKBEsBw*btVWlyj%>tOD(%=&M6|(Tm*a zGUeX7C0wyvh*(mM+_Y*SPh2sb%_7S{iS!+6WaR$C@@BTZ?7!AYkdUVRyc}_{Qc{h> z4&RXcm>kq$(bQvIc|>(*%P#O?`uT9eOG`?Io&5bbp$1drKztN> zwb5_)nO~hpRQF&@HDMZJeAk2{e)}wZ-&*f|YtCYRx-THK1)+Mu{^QS}-{F)?ujaWy zS72~7AG&IGYRPOtY#l&J*zad+w*A+O)$=V5!ViOtqn!(SDU=8rxSA-a{t+f*Oj+P2Py z04dc!l9srhHHqi3eZb5itawx72pYEQfqQNM54}4O(-?{sU0A=@pbdrj8V`w4S^jWJ zsn15{>?G=qQPiZLf&rNl^N9K1MSn<&L1JZURkEYQewZuZV`y#w?@BdA95&lY(p}mP zMKg}Z(FCxf{+rV-*TYE`1g1>DV|OsJW-Mjyl~H5Rbx;c~8IL$0W!gwOS8M_F8?%8LM)@Ff*i&~8mzw7y(E1vms{TN| zl5xgf?yI8|&77@ZJAE;$Bzss4_`h#@SR3wNofjxvFO8{IZBG<|%O zmI$hiKNwC4(!t)@vD8~d7gAN2th z9Yj&XNkwbUyPl1djo1ms;^jN@N$!)%K(H>t=>8D|hV5EB9+(r#V!LQ9Ao(uKw8#T? zs5crRGtoMY{!xlB3xQjN@!Bz&qa)e4#+VdQ2|W55GaSvQ+Wf1In> zRib;-d{!ND&$qALmxcX`RKNf-9LWGxCLV07mGehxoA6?MATJ`}$||%!K(LiF!O5|X zd%4Fxd30PVC!5B$3aphwDZGcK!(Z85GI#N0f)!5f#HsVvA|%*XV(v1@XAX@5Ox&=n zZcKFD=Cz&S2`ei}Weq55+Bu|E2H*=q%>q*MOdCv(|J;Mv7p~$`tWlDzdshG@GJR4@ zI?7{$gPCZusv`>GSO)eA$~hKtBo5LfSEQX9|AuMoh);S##Pv|NsT7Aa0eXLGI*vS*~Wb5zx?)z6HhJ)ZlxNNjC?ZfS zK}^V!?c!pju4ZAhahAOlHvv2-1MQ)4O3^ru=25w5r=%TaO{AY>Z2E!fyOkSI=2Jp( zu(KjkE|@GNy-+QtzUiTBG)HU5#Qu6K3zz?gtal93ELg&Io70@OZQHhO+qU)fv~AnQ zv~AnAZTrkV``#b>-d`(L#EOiHSXGr-nU(J&?rg$6X-Kr0GwgA5#wlUCGj%?{e&anX zb36G(8fJn~WyowUUQOHS1=&1ng==6!X*+eW5`1LLnQ1Z`y!ch;vRAWwW*&2RDg-g zI@_2*I1fY=stc8|i7eJRBzK`pm~yVgG+Ft6_JotjITmGEjVZo1qB%0}B@s4w5Vxev zW4nI;yshElMzxc<;Fz7oyYiD5j`VjCz<}g&v?QsgJ*Y_sJpwxb$n-IDRMKTqs&i>8 zVZL8Z)qpf#Q+Zye=RT^8u3qHZzWSBw&M5x@icR_ z0$727+hKQxk~#kF|&tox6mI>|UkS8^*Y~Yu{(405se;Re2TNL)CKET>e6JLQC$wT3(`8*glo3 zG*E4dS?7CrH{Kkq9mB8xHLasYwa2|~RZ|uwC@O)F_0i&zTr0|}2CBX%LH!9n*fRtP zsCQ6#xW#@)V`>kaq+C2Twr0+7vsam1z{zBB`hBr0DrCeSU(_Pm(r`&-eaRGa3(#~a zW-plTZ-Ega-+3h<9HLp3_He&j)vY1f=_kgAj$PBE!4XQ@{LnFwUMB1@nA1y?Cya-f zK&P-o8!pq7VFsAtQXUnYlk$wV><*%1DQYS5j#{%POXdK-wO1j`eQ#kqV z1(x0WA*TNpxmbwL6&+WcR$wJ{FuLy%Hjiz$xtaVE%ZQFKqr5reJ!>3J8+Zb%b0A$; zLPvtBfhWJ4NM1NfisAJ}l@W!SoW)z}>$*=yqQFcWX)2FCPjb;E`RF3?2V4z|SgK`@ zbncH`C86L_Y_47{2kct)E$CkRrM@U2>6$2LDoBn)Cl|RoC#bH=r^aO?#k~Q4$O^_v zjnhe2oZb?XlH#FtXFyUbFtVC``dqz~(D_-sK)bc7z#Qd~_vK9~|6$nDAjo>IcglQq zJp048i5z5n)37*Dhgnr70QkG?DrIGTK%j?WkDaDeS*4~>E3*icK^0{E4b{H*jb^oD z9R_(WRQoHG@O3v!sT}mB55%j(#}--SNr+7$R?wh{dwV#_XSo$Z9vxYI__YE zRJ+=C@j(EX6Sw0JDf9BO;PE8TpbFO`a!aXj&+PY%V^%BdLF?+Qt3t|Spzs-VV<3q0 z%NbO0iaydYJ%?9jn!Nh@uY0r zU+XZ`{)wEAu`~7!IL0QV$|GMeb>_$;9|fFz;XQv&CmEcJ#)-~-+I&p|(ud4CrPGT^ zHrx+`40#=Oc9fx#qqIzvmkzUc0rox8Y6Wd-;h`AbenWPLRd$D-MT7j_Ie+gU7i8}g zzxZEN#2?hLM*u_##TTvh0+X27b^A^eGWF(E8NNvUY9*dWT>My9sf#Z*ycS=NT6#1* z`S*evKaMYE_?5Et$C{s>!J)>}fePDq!;nYY$-}cIeu0nt?k|;{$gI@FL>Kh4j0jR|WibhqpYyd18#qw8h-)oYJRM`Orb+W5r z?hn7yy;kOfy(xGx<&%~S&>Ux&nruOXgte$8 z7Z>ABM(92op^glRDvf@{aCj>G%9Igji0?L$z3Znb44N`86JDt$wjC0>rr(0 z!L|qG4ktLojPB*DO+B1^QFq3jSql9sE0>6KLA4|s4a~t2NlkG6aysPV-n!y65j`g_ zmHUt}$h?O0evILWL(@+3;yZF=(|q1tyl{HxgfHEOj=RB3+}Mo&%<-GSyy(j6ERXEh zJGS}4D82{q32F+h2HHn>Zid=B`Innd(ck&Pd*cX*T17lNf8UHtg7p1LR+>XoBt8DS zEF`n5WGpD8X^XQ`K+NS}3xpFPAcd=WZvPV{pQ-T#tW`)PnynexrtsC3!CT#;m9_pl zohfkf8C4f8#Cy_+m4UfWL(K`=inVV26c2uy^;iR7%3)_rBzo11aK3wLf}9|pKM8X} zUa|o0j(x71vG&8iQqJU9y!os4F>G<8%E@y==Z*iYl6|FMf1vd|Y_Xvl!&vcLRh+nA z0q|_BTvB6~t@)kD&X~qo%XTn+Z9A^~ih3T9&pa2mf)0nHTB8**REx$Uj-Z{mv1Et@ zPe{XjXko2c@;089@)2r+`Q>A|YelbnO^2=0g1ICI*{bVF{-dyoB(2Pr@7Ubr1IZ+o z=MkD(rvrltSMsWbmGOkkBx&YtRji%5sslp^;mtMi!R4Kuq6>p<$5Pz9)xlX>ZKRVX z!5^B_XVEjwTLxbD`^C3cmuqn9bPMLSMbZ`c8#Dm@Na zcIevX1l#|$O)FL(UiLC|v$`1qvx!tR+y9fnZ~orHx!y@5ze6R27GvuM z*bTiH{%G>{V%t)KXQVzE$0s(wim+~FqtDI4<%EN3^$^NZ_2UcD`r-wqc44R3Xp&v= zXVp&1sSx$4C6j;V&~CZSAInG`aC79@rH(=L^QLc(qI1$>VdotoDB8_XWloQC_7^38x+A1t0ECkc3hh z(=w0xI<$e+h{>7#4c2!1*1lbmE5Qp}hsk~@OjiOk?nI^2C_W@=9dge`N9AfKhRwyg zUydKuT*A3TAo=iFxQ^G*?!sL{Qzm8`r_f~pj0&H^Y-}7OV1~Ka$eT% zf46HZOBg0uV2+mTW*8et0MXM~`>Vfu&809KZ$H`$3Y^CQ6d2I`u_?0nhWA<}p281+ z&^SOP~G4R=bt6 z;V1m^I@O~|3fv?)iR&rqs!LxO*>;FWG=+EpmRdQN<6e4UR>V1cATZhZ1EQ}Tj`6XC(yOXF= zBy%LS(Yq~--*d+0Y|FdkA0%YD;=Z!>h+;|0CAvt6 z0rkYTIF>}e$v*uI7n=96q2O`03|A-7W*NrPH5m%|{_BMP2SQ27{`S9%fw>ok8t}iO zCI0~!3^v340~mb&$qq{*)%Ir;_1}akg88c(XN1RHuC)1MUo#jgVtKiSOY=)_f=E>H za8G#Qhb&F!JJ7PvGW@Kul-F!S5fg!xi{uqCv&8@63pjZ$t*{KihH>(K=f160jk(@0Le`~B6b986WkAnj(XG& zqAfOD1@@xb^%8zevTKAazvrstPI!b)0%dDY)i}d>T5?EypH$(c_BMsz;{1X;YLuos zPC<~Y>9v>J*NXSW0wdw{T;j?rqeRhLggVUSW~5v>PIj_$zrDWwU0FErFxla$za1V- zznoBT0pLbR(@O?a>Ivr4_d$d5_z%oKLZdUS{Ia*-nu(B*axhq#=SZSb-IC1d*I; zNMYE+%rx4n0{oe86a;w@FC-3YI+`u$r^%7=0IJ`<<_j|!BzF-EKu&rTWu^+jb5vog zvwQx2hOt<#Nx7!|Hna<@+yR+1gMUreL}4QHL01X>YIZ?Jy&A=Gv*;S+3Fi)FinV{^ zq%BnE9Cl0A?}Kf>eS&wxbWd9P+rie%ud;JV+N?9^(;RX0ednl=M^PAi(Tov^iqUMPw_ccqidC z>zcCu{vq;tAM_Vv(g?45{I#FoaxU?v>0WRjR~#>EkQh9ZsF-5jmR#m;6Zu#8wuPW0 zc1%NONeRimAAOxFi3anFd{*rqxo?;$3BVSp&X`;BVCubc&jU(XHK=XWH?XF64;uCknuTG04Pe}{ zl;#2EslZ(E%hY*YvKZs16JzyC=9_R>?C!4y>&&}mmIuVzKL)1`>e{k<+*Cq8F)Wmo z1lqs>Ud-&NvlX@y_f|^Y_V3aNmiu3<=BIID-G1q9WJqUHWE%`A3)(>r=UZxEThUiY zxk~uBF9&&9ES|z%sDj#3xt{cXBLE18bax+t;|e^B={VxX?0a?YmG}B40VyO)^i)CZ zNcOZmD7uIB39!O3FjnIc@R5c6t}Ahv2o$2Lr^}P6to{JsjPU|3(#&&@p7udH1zg&=?*>7~&Cf`=8aUN&uUZ&dj5#^&aME^`O_eJ}Yc_I7A)u`ws){c?Jq8s~36a zdy=uq>}|$2RBZ~1E|+rxWHnG8Z%MIhTZR47S4nbU#341;J&MzU;Aj)eKwF8ZlNuS@ z6v+7IDegzepRfgD59Ys(c4QBkLviWHWwuRl@u4Q=ZKgK&m&D1en1DXTx!4jVUwB(6 z+1x8wv?o`c6#O?XWf$FU(reqCw#KIdFSC`J+ zdGMokyK|ZLIjCtT3BVESjV*Tb0NK`I;r8~baY;nMo3Cv|>-dyFT_Rm>8*p5`rm{V| zShPYWGHW~Jmv9zWYhi{M)dSDd9kp~7Eq?(`u0I0a<5UP*lE4NMF=GC_b9X^aSmpAerfsTa z@AG$(5unRwHVG@FnUhpE=`5B#kVid}tz$WRcHKCjS}g$;yw#w0+Ko$}i8R35Q6DW@ z!5jMWF?Dn1iM->K=^o5?Ko!xD9F0x9<0Zb-aNsW3a2wJ$lKE2(zQvy^+Yad1ceqRUwr1W+gRr-SmwC&D(ZOfw)v^L31*wWIBU&H`EgwVviR?8CseXykflRgjP%F#cb~Dl6yftd&4&t2}+@2&YOM6VJ zg2}WNB%SJ_u@+vzLL|t$m3spHCobdz*JhMvRafIJY&b(GTF3f!u3d1^SzKwZ2~w;y znEWahUlFp<9EyobzX7@*s_P>)xO!vmjn7kcH5i$#QcIETujotk2hzN4#RXfuYPpjy z0iJx@K>f>f1rKT%u>~gVbPqlVg5BwDhGX>L`QrW=o$9`>rah})aEe4;6=LFqjKJ>C zgxACNy6`tDdv<45rr-w*Ellur$U<^^M`y_$`QYw>Edfqc&O(;>@z8{AO2v;PPZvZ}ulIPgv9RznmKbCojgaE1Is zO`9P~Z_v(L_yJb94pSwl*sc=9*^aX<1QA=acJ=2$^W9s`R$ouvm2B3&PySYipUacd zn{Ct{!!JhE2ixRQS6RAF(_opm-I{8DKBxpU!;9kksRS$Qg0<5^E9h)|V8qmZPsPa| zPPd)BHPG$+?v4%}Ar`f9*Hi5s&v}=c3F0d+et(J`up#$h*!a&Vy>!?aG#vf0l;Oq=S78hwScH)s~KQ08%Q z+!@r!{skKeax(!%3c9cmQe{dRz<;vb9zB04rwFJayfm~g71sQa(ciBgKJXY=y(;Ghk3>I)2@t8 zsiOggJx3vvtIU6R9pMnz5Pc|VqQbBYmM(<0!;*8a%B@^o+Rs9BJCOv zPXz#mS;-$4Ce{*#R;VXC;(gj*-5i*D6Unwz};O{Xn&%HL{@KLIG^GbZ#WGfVrI~lx|`T>~B|OnIjdu z6$S|US=uwyu$R$6vUk!cSf~1~*cQG`g7HSc5>oVFY?INf(6+8kmEWC$rmk7m{tm;e zkz20|dqHLD2JCad8etWE6QlCqxlJ?KMRCMOAl(#EnKeaiet1bQyz&&Y z%L%g2ib4!sWS+06qY=wUL;t2Mhb8qD^((C?vvbQ)oF&*FY3w7GT!=%e1qD?cLm{;qMY2I(p(?ak~c7 zj9g4OjS|dqyR#%Wc)&8eAjZQ&V{H&U95MWYonT9P>#KOg@hY1+0;5P9vpX7PQiGIv8`e>%l^BwMi#o?@3g3m2xy zA`8}*6e!c+R6%^c)h3BW6I18J66zn7{wQ33DT0JA2%S8w9spd44H8wo`Mlm}AQv`NaThd38pSH_e#l?%@bO zdgS-d=>(emaKNX$hrn=bk9`h=8Alu$(fst0nVJ_QexyCli<}+wv~!edxqHe<6{;gj{t*-F1|jS(qxy82W%1O8m(&ig zMxTjxuWt`$O4JR&)jLIC`Qma+^-EK8 zs+LGkVw3W=PdK1I@R|(S&3!?#%>>J$n9@oj#j(zJ0v)ZE>enDm9HEQ+!puzk8 z#|Xqp2LM5rU&jz*0SUy1qYk!a4wz2bB_kcC!VC9@1e-m%)XGJGHyN{TUWJ1R=RrQn zf>4BZd#u_Qv#4g_``*iyF2XN|jNenl0(wPt#&(+|ca16*1A zY>z#(@dZlyy)#EnnR`6Q=4P2Of{7giN^d#S1alwH=JOmg+d`K`n{+ylUm=;$KM zSvDP0kC3YiJ09c&9<=qA3Oa`S|49*d-m(eDVPmo7ZQ+xA(m0yOi6^4ZwAsb^1Hz+< zD?zJ-;h%D)JsnJg5Ia#X^H~@?3c~nAvogtDlgp(?N-4T$9&=hc!c=Ad8Fh2lR#Ayg zNkg;5EZ~~@7(=~PWuFG~u(o@v?(_3j`UCn>5ytS}upe^iU)ay`zl^yhUD?>pR>ZCo z^+$XL_0JOjV0hsAUrrmnEd-%w&yzV$8b3e667ec4iCVPri+>w58qImEdC|t+JydBN z=>U4Krnf(Lk*Mg_V#mW1SO2n-JD(@9Zx=f~`hIV+IvnPO%c(c`=*1k^o59*-uSXw% zSilb#?B-kS=X>tWPv_^s2kxKfh=JUn_vhVE{+}|B{h7#Ap^XW2!gR%N`YcLh6Re}7 zlaHf=d+$ID%W-1tXjo>nEKJ|Geq3a-8I6zFbhFP1`}=SCWD_~BxYycAhFZzkrZD~X zs$iC=SQlEGmGtv?%Wd-#Ek?RCnJrzw420QdE-;7h2Xh}nG(!euC_^CbuPgrZbAI-p zF3pT-B$Gv%^ zNyoefrVb+AH7h^rR%R-(--84+cYWXP!^)BwPOoFe??_dsi*nQVu*NwayG}en_r3lB z$q7E@kGrD@;`0zZCr6* zBc)unCA)NjOy>S#CL4`iu;s#uwhXozvW(UU<{6`%OHTT7qGhhtv>Iavd*YJtwEe8p z*Sog!;x*m!b{%4H!pRp=TGvoRrB_Rt_rqm(_Slzw#g?3MXI-C4-&}rYw2Ac?F z`!xdDNK@rJsR_FjQf)SHtG_lHdsq`CK(Z;nk;mgXZ#<I%*^bd7@i*+lmlmYS~KS zkfrz1=+rtXtUlLr()hL+2~&kTd!L4S=SJ{7NLfSPLAP9Mj1X)tkB-GBSX$pY=x-~Y zY~K^7kG~se=^?|2e3nbYOh@IINYO_7Nq&x$tbVq+pihVa$P-YfEguXG6F#Tik)hIb zsA8Go7Gn6E*lM?A-cuj#XP1(;7jZ(A$7;f8!M*#03va(*Icf8}P?n_j%<+HU+FP;_ zwf)30KTBhwE~Fm$oyml3m@`w6rI6*$RF({iAuoAUz*SNpPRFE{%;+!h5PZ(OzsmKw zD!}h^+oIY7z_Jj!@hdfqFyvj0sQ&~JMsOA_M_oWTp*f8veeBgQ#f{Dd)&IlY#gCf9 z)+@(G!swFvKB~OGmY3(WyQW6Qim6TM(zymBPait9q6%(LKEam|`0J?+goz>ml~ouP z;h3?`a3%68G)nw&6~A9H_JYLxG#cWAZonf>)3rMXJfIM#7`ZQKkNsYdHhJ^&5q5U5 z+n!Al-Sgv{jDa&KC&X|$(~~q!OOVD4NiEV6!ZzbB#uxI=1wMngT1i`EIzM^5N<@%y zEa}32N#P+yy*+gJ4FPS6mT*2D=4^)`p93$}>ie}X7*OoG98-?6F3veQN^)D-fAF*F z9>kFjXs}VYf)nfTaBBxTp=@6YD6zuzj{x!@g;-?@oj$c3AbG8UEA~N%i|jWi(?!V} z-Y7Z$1u`}@=>A)SA&FtK?FbK*v`==RG=dOLKMA1)mcBTmJ07kl8;AXOv95!xwQ-u6 z=Xrq?dD`aRGqx*Ey1;!RGu0W}{8;{&=zL!sKz&1gfB??DYqo@ko6U_U82v57TH(B6 z1*8|%A#farO0(r$gaXlt6C;h-yXfiO9S!m44gMI7v()2kIXh?J==t(I?!<70jGIC} zO^`4?Jr6G7Ryc2<-#s(|ZQ8nepX`e`zBjOQs?X_5^Jw1K1(DhH`|FRVD_M!FFPg9f zVA#CGsslfT9Q2fV<+diR#JQTA79wjah?3Q({N=l#0vU+Yb@I5Q(`kBPA z3lkN-pqO~H6u>MTErh#E1m={LR13%gKsi@)>^a#Zf?cx<-*(u}{O2Dv9!6cKJUW^V za(**7sj>=4TdgF!qH@YRV?lFsK^xncX0vP(UNJFYKqw*J@&UVmoaJR?YIzEa@Hy zww-`l=Sb~KPuiJ3X3qY+?P~WCM`F2|wNr>~uAa_}B?g`ior=hCky-6I4u*QWtgXhK z$~j0>J81VPEABOZW1(_ax>8O3gG5fw76rsmBV32rxcvyrkCrI3sHxHcRwXA^p5R}4FzSqmW*gS zwvenGUcItsJY9MCVhzf*2fQsjIYnwVmx5@iw%cTmp%%4L$gol_(Fh)OKz)ev`o)4K zDIDP#Hd~9%FpZOOxka?~eTJBoX&ZWFq8jD^%WOpZ1Tc{KU-%e((RDIcK)g@QPUWLL zJd4SYF)&8Ws|{gjRq~{%=*Oa5ptOc^;|Uc>59A~IMTMGO`~Bb8X)aW{Dq=40kI4jH zSa+{6yjg3hXP{Z7dWgIOz%jPvN(neVJ?@o^2{rdH_-C1S6N=!v^uLO@;%dRXua%kI z_GZ>*A=1k7wQ_)dtMc1#>ZCnZ+GVf5Tif5Wd;*(0-x{0eT233JLu(P$%D$xBMB?Xk zM~rMcppv1qF?DZ9BgvPhjBG(-Z93x_7@2Y(z^98VJ0E4Wvy*NGfDk{`G#3@$CG!wX zjO#~+f78+s4M?k>1_-z1@Qo?uWZ37`t2q1323$&KWZojPRtY@r*&@>jrx#6hL#4}N z`v8YPG1a=T`iY>zqtvMy%+y1%Q8gi5PV-L+9m=n;j(OL)l>N!ML@R3BW*>?kq+QHah+Nh_AqFX5T*!b+J!xAunG`B{(Dc01*1+@@hO$poA8zyw#?# zVV1>IJ%@|X_l>W0QmM;-*Wp0OAC{N`k*0%S%FxE0yfriPpZnBa#$P_?okw5J-xL1L zi^E`I??-lLg&?Etq%m}G&OhwMi4a-3Q1(*c6u#Ybu`*zAV4n6861mciW6c7(QkKfc zdeXX_yoA?}0Bjc;<*s|2ToLC{=gm?E3a&|VMhdP$OW54) z1$gw1C_&zoLVv;J^F^}20s&cA=&15w!M^1dhBC8oq`>|!I|BvNU#!d&3Mng$6a%gn zl4tuFzww1c16z;lZgh%ayE|rdf=O?t+Rk?nKsk^>0eLTe^TITVSlLToEr>XIw&k@D zA(SOa;UB=GI&hPfX&t;SOBFu-2243b?|{tY!x zN->;0unhRJw!`;ien}X75@a0bwwB4R=55V-1VWf8Bi`Vjp#JBt5CV(0v1Z9*|6a6S zAu=QYpg#h%cDwjjNTT0$t2fT}?hz=Ut`Ay2mAH=6{8s+^wxb+p&|RbG%`DPMbR?Qy z|9+E)rb+(KC_R1Q6j~1Y2^$qyIak6&XgQ=SXnOmgK6405ll&(u)2l2Jz}|dVKVlmR zKsnu|(pq*kDfr^&xNxhvBC*%*t1`TWGno4i?QYgu60172rD8a6L>t*rZVpWlv2WLo zTdb*S_DkST#lD>x$loDhP~1lVftpD>3!-+O1 zvPB97Gw>|TLND0(=LpVApPBT59o#mMl1oCOcRj*B_}%iFLdF%cJuZAnR+4$qSGSV+ zp!UBJ+EY$%T98{PlDhY71Aui7mdY~~uivuR5|!T5EIbZ=`LAOmp5R3Er?3#2L2R@y zH3aJ3xCYwOY*eiw2fz-zdmX<%z4Uy+2Qo>&{`YY6y7!-&#{V|oFX>Fw9Fieyolt** z4&3@l6n2CqiHzG7bVSylx|KAH6FvMy`UA5EZ$tyLv(KGQ`@W-~sJcQ|+&<2TklFmi zOU_A31~#T2_gumI)!_rGa{)fNd_OYeLUD*jUOlo|$U#pcC_o$b7yAX<_jSf72GhVO z6T9Ig0?HD35n`%?s41?48UBWkT&ED027>R}TbrNrjfzyn_uJf%(?CfPnF@GDmy&)0 z!Qn|22N4Y}WzQDZsG_eO;86M=07Tj#Rgr*>Fh&)_F^+LxKSa}xwlm_O-|7z32e}UU z&ctSy6JZdx2uhOB-7Kjh^qt^z8AX3Drs`ILMPS+=20O{DiZ@moQO%=4f{KPd4Fak2 zU&0uINy1si!*^ocA|HSG3%=DSa;bmFKh-k8OtCDt`Jt#7l+vZ%NMTjp0CSFrWXIj^ z#N8=kBMjn1`eoKzqZobLJP$+NK|^lDD1!PdQJ2kSZkSbY=SxFoTs8l4o}4*5SbDk_3^@vsI83_|h*2KT zvr@3_1v41&KORkp153dK0X%=zM=67?IO@*~DG0ZE^CY z{)sSGuQBdzXrO5Z%wYtk4$5*ezP`yINzQpokPJ~`%FEOgHuzi+#Gf4O5XV23(;-Rz z;gSHWa)b{r68K?80^CvI9w@WDjwd%(b3uBOh8NB22@{nEks(O}w@ZLcHeo=#2lPr2 z&4~9%6A4%!NCp{2OqMl{QMkt>Xz=hSiYh(gp-DRCXwP8Pq`(Gw3$KUNfTmarlNkl2z5`>%Ji3Qgb3sr%j^fPE)0w?0{oiFjKZ`PiQ@9gwZqYo zpyHm9h=7r_!oYwY5umcH!zJXxK;u!NnOAvAIF#D$l8k7WeC@JT{u((%-fJS6gu?7VirDHyVy_dgp<^CP8vIiW(B(_FUn9k#bset3s zAM1>uLh9A~0a!80h%h^MUG-{BkQYLOheU8Ik={cizLW?(NfXCusVrKD3&%nM93YBzKpdC-nTYbA#3oJVZF1`CNKSsQ1i&#;6t^BOaMG?F|# zQ-GtwWkZNKBhnj%P#6-=e#-&fE$$`})q481P7qP?N67<5ntlQXU6`LPcx*!Z)rRA~Dyvc;rEXqLfuUduIaiF%S4H&&p zf=hPlPUL&#M32ppmRDbCD_sQytchBI__LAH3}c~St+QH8B|C7DMSIr?YKgI`cfuN= z9Pu2>fNylaMrQI~*g)zV84X2BoMP_Qn{$EaH_Hn6owyET85S!x5gk);;{u2e8{~#j z&SiBQG-6Fp^NhptwnDJYcq?27@Z`xr=A2Xvq}d;CRIesY*~T4`lckO|mV=;@1OdL4 z9Q{z{0zi3ZkmOn5wk}?s zASVLe?VDy-?#Dn#7{l=n2ugcbt>^Etg@wSZtV;wSs3ig)Tosn=c*cnd#AFa_MY4j? zfSB=az8YNYeT(*s$y{jnEwG4oYfM;&=i!Pm!YW6pjq@Pfk0g;fSJ zr3V!Hqc9a6e(@rUDI8z{y#d7XFtQj4;C2p>Q~o2!?7N^S_NdRdl|2Dxf4=@P4MU~O z5uM}4bdc}7j!LX}K}{TT6w0_E-ZJA2nyq!oM+MEc4;U0slDAj)M?TF?eMo{|0Q(n? zL`eAalD$bTGD-B}D>d?7PV){30__%WprAE_kw$)qyq3b>TneIrvVsml5R4Qj>%MX_ zf-UJn5zcx65C+=FJU~j8aE2%FODwB6D0KsvCU8nb!2M0-kSoHC`Kjy{QF9^3*IN+b zY;?x@UH(gdLzoTS@o~TctgSWq0ZBjv`;?|%3PeDokA{xGFzzQT--EMY zL%gzEH_@vnjd;P|#tZ@A895;MN^X$w>)=8u%k<-`t6B70^K}*09rPG=d-U$VHn&U> zreoM5yKMAT0EG#`Ta$qNO*@NV#0g!`wbvS5UDflZO#Jq6R{RA;g3BB|z;7ef3#Bk% zwd~A@3ZT-8GUyx|+6tk#R20=eVJQVvK&O-ycCNTP)%9oDoja$6<>okN?mQ09d)gmT z$Q!>S46r^_mx*iLp%h_h6jj-}#Hb7;oN*R+aa;as%W+a9qR4bS5{dYG(wZ&VH2_WT z2f%ZCCT?JrjQv(-T-vBP1qi-rY+PRoExB&4feXw$s-0Wm7-q8ZC%MGguB$}fFS5N+ z!_WO`^+rRHX(k8XZpu?JqJ0bg@IyG*bbiLz`xB;Z>HtT}km(rkt(mB>mhYVAvEIer zOxSHut{XMJh$1dh+D))tg8-8ERXArbcNC$xN(Zv2tvzPJ+}K^%4q)wkj-u_xxw%_q zV@L8;JxO|T8^R`0xPL8(VqhD=PmW#<6Bb}2+Nh65IXV0-*!Zd`|;xA5#u=WPA9$OTc64U>PLh&4M(1#GO|t({_|!NWZ@@ zm?pY!30%_dCh#DT1kkT*iG_q;q^k?d)ZhG0&}#{}qQ;RM@zw{Py+!YFlP7*wwkf%L z#c{0F#jcUE<+{vlVW;-iJB0V0Ne_#Pn_y4PYnCtPYaOOZp^h6X>goPyMjx5)y5`m1 zAAqO{6={75KS4SkftVxS$1=WlaFo$0q_U*USuuKfo1zd<0%$Ws`(ya9kOluv3rtWP z17{+@wC$G1Nrp#|cl`2zf)`jYn$%|QMy3kc^T&?bWsGg!?f{>quUHbL11p&J-4iV0 z%qvUnyd^N}Q&4$;fp;s1U40lynkZ^iv{ZSgOlM9YA<|h7aENH&DCW3-zVrwJ#mC3- zZ*t1EFn-@i+66^7IEZ4Q z@2aOdBaO0lQu_~hM7xb_^WP|z{OUg``u}ajpVIxOXYv1tH=4fwfTD1sSb#jH7}<-$ zTa!9<9vH`5F?OdzQ3=W z1lxaqZr={Z_F3mo-cqBBNdMrA6~S?FGJbxtZHCZ8ECMCsI%5*WFv8D9+l#4nex=`So^tM=miz7-X**Gc@M@b01w51vt4~3x0{6 z{L!epEdH30?`xfvz{OCp`hrLmad^?41U|!_M&R9 zT4D6ln2p1hg!TI@kk02esImvuehgrjD#7!J4f!YGZ$CGBXYO^GJWF=A(dU-FF1b`m zT(vS_m(J=vF4+$=^8~Gc)#+}vK<9|HlY?CD&OifxiY zB9pQZHv3+EVg6$fg;5Y}f7qZ`-W$1~G2ZbhR@jsE z4>`r<(1d%#C2PlQ21{fU6)1~Y=%zKIh*Y4P*=Hf~k7b+L+wcpM&`pXqF@PyYFa$d$ zfQB$&;VN9gsKO&5cs;hYhzde|DMiH1|sNgwLrUsBsUDu@ziL_v?lY`fYuvz{A(_@oHo?)b@<|nFy z4?WaE3{VW?T4aqiI6>edk-;$HyW|Vn%_>WW86Oz#lhEkB#vDB$u+vLG8L>DM_Rk0o zehvWIfk!3?;7tW`KK=N#umsN20xP=F0IOmhwXwW$^tnVzZZ>pMbTwqZ>IWPm{Cgsj z&F?#`7B4Ao#&jIh!y6KIj7$&dAs472u2WMo$DC>^sdaSc5HUj(T7Jn41iTL*+6E(; zCm1alNM@$OQk>Cn^_`dYhhXGNb77Wzu>N71T`JW49?>L$~n0V6| zwK$aXSCDyqP|OO#*&+n|tx+85eOHTq@z*me_Npm^-ok)z{=qV!0Q8ZqD1q7#^4hhC zT9uXEA*%eU9agGX1ttrI%nQc_kxz~Zl`>Sb%+E$vN}mjQwsvLGSV4Cb!U!FFknH;j zNF@zZVOC1p-UuUvC^oZfD&++@7;ZpE?)t8n7zXCSTT-LB5u;0Jt0EDr02B1O8u>8L z)zaJ$?w*6>iEKa~0zRP$(nR*vY$<`~voKVFjz}{K)*Hyzhpr%D7xRp@ezcb2(HE)7 z&ZCDSGkJ5_s?k;bz#U_f;e7X%xQWmbDYr(`Id_Stt0c>e430;;%9&DvAJ34i`w_Zl zNlW6XoO_kanIP;+q`>ZZDnzQif~cGcM1(tVGq|y(E+(G20Rr(1h)(Z=}l-do>~ z`=h6-pQ$=?YNn^U`}8@_bBp(f0q@n3W`r{G8VEp}dSpGSu>mKSPg64ien?ge z6wE{ijv-dkdspbHpUlkhvm|kDv_!Oj7F*VmE&=9F+BDOeGD5tq!6IWPoxfD1ivrS^ zU^h=PS0#&m)XZSlTN~gLzEIs{6qj$LQN+|lA?kU{YVosC?%Q`88V%;_^WWtaPt@3I z9kZkUWjq>zKkkLS41R1i3qf84wLbH8{5&ecM#m*w_34wViIVUP?y5LNI&Sult>BfZ z8t1-Le{8fp2#dHfb6Ra={oT}Z(}V|BDHlImSPhE?#hYC=pBD}cb=rz2h@zkKdH=j_ zRMPa3Iq0K?_}#gacv-u6HC!@fO;K#wL#Y8y8dwqn&Qe2~*M7PB;GdTKZm-P>$cL{Z zyrmb74e>K;$xy;xiodC@JC_RY?YAew zhNQVd-NPzD6s855+(?$dl11O@Bxwg-fLtFAXf!>FU?V&nP&m-~IV1eQ{ba>&r>&I8@DaO(WP z>0lV{#{hS}i}n+$q9%tQ9=2`#$c{?F!VM2k-^@Fmx57EjZWAvnFHGwPOxWkE6^k(o z>Gw^5S(0INBE3WwT_og7&w`v-$t)K_9zWN*z{f`luaY(C zgo+|`biL2)YL#d?|C-kl54SR08mvOF3&<;B2>^LlvOW5n?$k*^GieHzvE0hW>F0>( z(l4l^FU5ulq1b=_Rdf_#&}XxSsvJKg#Ic4Bz^rggTy#DbyuAtkBclk~XY%^F9U9S2FF2eTUyyO(cpuoW zRV7XcK``3ibd!1aF^)^-ODVQJhD*QJazlazW|y8^oKJkV$VMyI*g;_Z$zkdsi4|AA z`H1wpR$D}Co7<}Hf1$E8>r}ts!=KvB!7GI3n__8R>T2t z=#bzb)L);q{YXawZt`aLIK#y`)x^JN)>%sq6u9=uRKz5qthP;OrXD0jR9rG>he?4b z;Dgs8#03(4-hlA9rF{hSwgCbp#ftc0)%6%$W;T_T=dFlW#8CelTCUf-%h)WHSM@0Q z!*fvjl3srhaeLcv{>Z7(razr08>fcLMx$WFbZLaJ+1plB7_jWC)D`cj+np2w?a(l^yYD+etLEbPQgA7pvq?m zCncpB8Ku1*J%XE)OvLh%gOBvH9Q;B{4H_e;?5*$lW?7SgRQn3Z1rR-wmH7qYO(j!%*+d-Q$B}Xf;+<5M)drN zEsT)?DWP|Zu#XrRjfBosD_`&|lYue>ZtGAx`3hyM2E>b0s1nIbCNh?RLQL7J6|H@HG zz53_TkZfDd7NeWyKU|Q6sQRZ_=i=HsDN}8X1r~F@D*^9fYd8}X!rMVLAL54=ZE)J} zC!Zn-aKE_k@=>haQuI{jm%ff-ZP`>MP{p0-EQ+dzwS=Nrx>zanHac&uS2l7qN3$u` z?xb)rckOBPFYp9F7!jG@i7yOzez2{20o=pdsl}Wg`uHL{-1mJG*EYrv1*Gbg`AD{z zY)|NEVBX9>enB2-9H@dXj2frY(5t1Q7R@sy5siul9V;Q}SwJc>Rwm^-5tbcxZpf=( zgw8Zi&&xACua~aGt>uY~WWE6_qIr#s@7nOZ(QHSa6y*WF#ro7-{c67qd{zq2h}UN| z_=*@OBufsLbUA9Hg@Yz>)8FhG7U2+_F$tp zqn7whpioQ^ArGvTsmc}_MVH>ATOdPSjsqy-v$O1&CA6-5^21XJ~;_!QdDI#}$8E;A#gS%xCx3T_;WpZ2Rbzr(Ze5-8w16#EQjvBx8hg@RuvMz2fvtatn zxXJqCV?ZoiG5M_J-od$oCfUqXxdtcezDXLZbXx-+AigdnCn+ms&^t^Z3`+G5w2lNl zxG4^!0M^xEbn)Qc(HYU}OOFSybOrQP<9Vpl(M zsk4d$YG-#}#zp`2C=6%*s_#A5By)AvCT4`&hn&a@L))jk;I;W?D<929wkm;HXs@T5 zK(6+4s8o>rVXI9kGoPF>9yeCdMmrXrQu>tyrPV@lWfO@gu+)oFQmk`zk_^=IB4j&E z#a=Obf~q}ifH#OXC>5Tc=WXiIdGwc+nd2P?pz8ao$il>ht5bo-q7~)E`nHw74${p{ zp9TGE#!L50SrUa&4d1QAxrzD2FCQYY1t~9!69w{EP&l0*q8L zppG?YR6zu^Lim0z9pX^61&u)}l7Q0m;mJW-dx}wZ^|&oV0FIKxf5Ht1C1TX)SmSQ? zHly`HOMbHEiAC^KM2>*1R5sYK;%#Fm%1sCNQi5-VZ@u4C35k^jg|9V#ytl^6(x>Pr zc?J=v4}<9{~Z2w|SaUY@WFKRr$R&x`OCogw>IP}s+5Y71bBZH;3ER)gw&ni2d zc3g*A17RW8gNrXd%S^S9kRUjCYeIxoTDHWUFvQVch6t3Od5pZSONI!NH}OyfNFbEH zg_->jU0j1DE+Kza6dh?<+mh5b!e!MUd|H2FlE`5lE|y3yV~n0ip_-;Zpn8r5SR0m(PxnCMOz?8i=<9`2*NOl~9DQd9mTQ61o)6*) z%Dx6sMbTtm)B&a@G|VNeztaNd|9~H*rg|W=)+AHL)iYgS%C9V^&_U2+wvehEN2M%4 zQ8I0;n^`jcODwzI;jUMALj9eku4>(kTJ@8Pq)Rfm5#&b>5qTet+CBptz*sf>6H*v2 zq>drc(o55%fiIA3)5s{%ZV$(PQc|X-GCR?{@B`Q6Cx;6K18QDFq_!1i-6@$FQfed^ z=Hp@Tp%FF>fs4C|J1i+ zSybhDIbT^FYzUpV|N8Ue4^L`y1_v0c?m&#`Ji@&5rSIf2UVv>3fM>HGAC@L8J|K5F zoe}1}SoW{!r&t`~{>pLL*U+qp4)Fn7EF0&o`}%?!yqdUibBAL;)}mySgi;SKVf$}M zfUQ1cZ5BaEx@l_4D46e;6{=L)g#1~da?qYAi9RLM&ivS*>sqYYl0+j9JSQY>$uXTT zjm8JhT%pYtj_dTmN=-$c#7vGBkki6GOJ!*6-p|HLQx*npSt6m_#b}VQX97vzK{hZV zD~>k|jVVog#*0}jzS$Wd$(^*y66TX4-el?*Z>E`}R%rLLto}{0UyU=u$SnOgXHWZu zI#FR+3?iB_0$rwO;?2RAUc)M4Z@He z8Ee(tAi>;jXgIoTBX^w&o6&B$gTRtUw5Bd5(q2W=e6%3+B(jqvCajH6l`?!SJL7v@ z9OAOT-2mfvS>1^R|JNBikxB}hDa()$WiT*rau*_Q$C{}>&2#3b$@}H2ZJoX#GNgtc z0?ANQB_g0eKYY%ZL|~nNq?Tzm4hhZG8E9}XcWz1o7zAbgdmhoISC8a4O0`;Ih6t$e zYaTT==x*{evjAUc(=7XYsFWExLGxvwxK*3OHxiqWt7de_F*`vEeedI#+l~4)9)&#A z^y59&X)CpOs_+~+aoWMv2JFlCs2~xjVukdqa)fih%&zFM;4c0CFr5fgitTp4=5c!!QSo8m7~0$>4N zq#KSr-#2)WJ=lxfQ07ksSJEzS)MuurZxce1dIHI?;yyH6uj%*^$ichyh@S`_Bwr%z zq8Gq3(<=UUN?Wm)6a}4wu~;D#7RYkb<{@CrI&cNviA8I;UVcMM9Kk)ax4M zP}iw?@H>O}q~DjL89Ha4vb&Y73H&Nu>guuwRc*P@nb_tdDW`i<52u;{%y{}u%Md_u z7`rMtep*h|3Xwymt#7jACjNV(#=IEz_OTQGd;B`*>IqmVU6OP`hKu1@a@teN3-J&h zCx4f3_&hI$L25j44OO$N#782kTJ4ZTIk~_DZ{Eli##2>RTS>K`j^a-lnp<^Gb1zC* zDKgehDw=O5R)Ko1WkJYRD&#-EEnE&oHsv!{Q0IvV#;+WFqj|0y~y}F}+ zgPslwvcMj5MWy|j%rx(z64^MDMknzBpr>Plzt#~Npk`}Yt(riE?fruGeVG}{)qlP# z#Z`10KcURM`eY&m7-xF!KXbn+0dMeGokAxzeEuIIIaa{hvVFv{J^TYvd)iD?T;@U{<%glE<+g z#*z2Q)e+3c^qCMCZ#>;FMQ4?D%BQQ0W&fwJ;1P-4l;Y}FarAL`LBLeiurB5+r%G6P z36H77UK5V+qkyiXDyoX`4-c{Vt9C-vj!F@(mR82lwm5pbzZQ1==)fi^Jss{o zj~A_M>~BREwOpnNDgK;l0Nr=vrdUSqsj8ds)8c*oK^lz8vACOI45O|IuhZs$2X2zV3pq6?WYd-xJ8O~+^ZApsSw6FjA5UHobUR*U3Ece2Vq#d=LQn#kn^2* zO!iNJec+GjFCv#st84{NTWb%wMlnC%B;KfwRmejR^F|18d%%F8dDmN>09%7E(Ne$K z)(O?;VzO>zSYlFwR0m=_${*074Xj@j9>e)%t!(|CqFD3%!|5kCSP4Gg^AJg6FHTuv zXG|}d6X)332=iW6JE~P}e=~Qd|V;Zp3;~{6>+GT4WUi zA+=D?9yn07@@bVZ{VrYX2yZTUG3y>a-Olwz)GRX=RQ{g+_wwn7R)12>L%#<_4MG#& z0`rl!E^c1d$;tFFnN)M=>3;c2<)J!!)>w$S5h^Aol;$4V?>^yFh>fK!K!_1e@$Ap; zJ*w$9-)d?}iNwPEMtFa(}MB1hhN#G%VUvhWI9r?mGhP}FB`!_-&1R@OP zwTiA=D=iVmR=Q^JI!BRH*P?)Q3utec-D>lsE%OY+U67 z)rI?5!L|G@L6Lx=oPI;bn4Qk_N!nC?qP9qh5Pmi|JTl2SDi7tKlysp(*K}UjtsX8? zZ@^MK^SB>sXCe1)L^aex{RC9cl3d~xTOI7;>MJ% z0N9Z2?uhllt!1}*E5Y~r>2^#3p_is$*^9o7Ucf-@me(k`@zUj`vR3^25kY}A_U>Ip zbfHRce!O#}9+kW#F`5Ve#*rBI%xNnkI>4G-m)a}n+tC^tIx{={93$VyTW-R~1LqTn zd%r|x{>(A%&XVew{h7j|giV>Dn9>x*EC0&Ugtugty33_zuZN3E?|y1&=uYyO{YKFM z{p7RqQ$Bz$Rg7yQ1Xyf)4^|@E|6s4`&QO*;l=UdRz#_{ z?{kBRLx_xI+~R1}#8P?bnaKyCJYXOtK7)$nf|7tBM7S!_CN6EId~x%k!i|%;;lOk2z;Ux67mFQj>CPCC zA6Daj#M%{U9A-DHcmK+=x1O#p?0oxd-e*aEQT=<>DxX@!)#zL)l&@183lz=I91Pd0 zBiS|Gy}hh}mB8?CexPA@3-2v2fEnQ(Xl8e9aRPSO;l{_71ozugG&4fEW!#=oTh}Zv zQ6ErltpTMS4=g@3goWM7Hiop+p%RN^ov(3<_lmA>+Y|qG{GMkWJ-iYgE~4u0SJd9Q z;Dd;|JIaZf*}!|=&&HB`u`gTX@bz-xHZ@b+&~?W@dp`Gigd-f2{<}iqMMR(jW94nJ zKtynX01PjpZMP+E;}8|o6t{YU2D%=K4~mv z-Lq03jjpcYeyot{&0>A7$zUY}+_SNT=4Zpbt* zX}UY!9U5&Ph6GNP3E7VKTl~l!Sn}RDRpY_7t^$tmeQ5m5Y&8Yr$P%v5a5dY|2XA(ONKVt4$!Uxpw zBV|KuF1Q#F7Yp<`bS2ow-Bpraw%T{p&#Ex2-@gWGATHQG8S=P_xz#n5;d`y zqUs_~3b6+LVLVoODvJ+8ZS+IY*~yCOIFj%sMmfjzA-j=v;q=d~<*k+*>q`lZt`M8J zPM33@x-F!CE=D{WvDMVk4<7y6{}ODdpP;<#Rt%iY3YF~U3+DPBj&`S#dXY*X?C_Y* z$cg2kwugmE9X-!h;G3eQaFnHIHe#Qqpe`I-M`rMR-)X!$?qY>ZkZWz|wTG^L8Pinl z?ARe)Hx-(6dcd$$MCaB9N_U0w;<&)nRiJ3dgD6)ds(ATVdri8$clGXm^AynIG3d3g z*4=>~JFE|1#Y_8|aa!jf=locI#=i9SAuI_5%Yz)$l*Bos&GD$#7{M9PIMQ=XQ(iGK znl9{UPi(X|8V>ifyZyC`qmegWti))+C=*mkeLe~{_xsy)bVnD_T=nIr!ldN!YioUE{$oUtLv=ZPU3= z=OdxPtmu!;JjYy1F5X5jJtx}5s#lXMrY(Xk zvH2L?ax~;HJAFiBEm_QcUdm{*=ZcVMMN>gF@R@zDkH$bP4H!tkjKHU>J zjl;i@V`KXsNz9>XQM;h>hucDwFktOT{`yPRJx!0VHqamy_dB4g_IIkMAEwgpBgJN9 zA}wb5oRa@Bwnqnie5`I1BNya%0`KEkx36fIdW$awBU#_(87w zs;T~j6x~aCUObxALSa=84lFTm^8n6*v(BfWEatzeZhB;c%|CWrZJiYwXzRk2?I%t` z@5Cl9pc`-&j^=4gm7vJsde{hG4e_fXwdi3Z_tpd4ENuUCR&}Yr;YdD$>c3N)KB5um z@Lfw|2W%ja*|{zv0ml#;rtUgKv!FSeQWd3~=i@btoq|%p+17e7bBr6 zAl^#^QUoB3sm_6R)`NLj1GbpLrl2shkW41&79i(kyNYn9nYZx}2A#xc?Uo2^xb1-s zur&0;V-p}$(F&jpdrEy5KcrY!m9Ty=h|t$|z-`oGjG^uuyz;a$$HuhvOfhon^zTqX$^Ky4QVH@5)jIeo(5f$-_&dZJKedJ8;R^!0v1&_aHPm)*c& z6;W}9%z-qELJf!fO*y5!lE;Au2h+vFWmc=|HH4MZBe5Nmg|h*-$R=zwm#c}hHa$8t zSPC@;?K*9m-*$I4ifFA_Cl8mW7Rb~IMp2n8VPb^m6IcR(kek#41iaG;vFF5expdx> zsN$hHFqDX9dBm)$P0W^;7TB8*Q8SL$}-bk@H-L)`-U_|ei(CdOME3A^_A`1jLUVU3dY z@li^;4r73UbU~j2o)_C2vZ8^uR#+nz2Rk`PE90Bpq1`^F^C7~S455GibtF&438u?p zKm9HZkzlf}CXG`u2E0`Dp@)ifiE5*Wz#BoECRwY37y@OVVR9!O?=^Qny?dLp80a`` zoQy&hkAm29ir>AMY0$O$snl*3yZC_sAkjXJ{q+#&*gsf>;Y> ztCV3bmmg|WCU{CbbT@v-ru5A6tX@32VQ7zAYVgL=DY#oSnZPcGUJ{ys^B`*nVY&UYoxx zyjBV2u67 ztLeu3Pne1EFqKeDs58k74pq%rIgaSm4BnrG+Wj|cI~-(mq5;C~)9J6QmVE=$K$>%b z$=Ql_)p2rDBd{&|FLeg0fY8B=(xH7i2UWraw2A%QgO0p3ET1XGGekAl!k&ojApoa+ zcLnPMg>Zp)>F|^_!7lhcj`r>7D4Y<@ahyc+1T`3wtu~{Ng-3{Q6oJ%Qh^$Bgf?~!C z%IObIr>y&26*1y^0qDF^6$_j^8ZM&g5Bj+C2uD;CMzTDxh#V3!-a}j4I+)zoITSq( zWpKKr(*1bOV5;=c)By1!C{!>^VIW?USl`mRmL+C!gj0KfBjHp8i2=Nlo`{-}mz-jSW8g3-IDksK5tj8~DXKCqAE2k2cnpILV9^dPBc5A7MMw=SRa@y(xy@YXP`BUMz)Y-_CsD4?nW}O!ZJyJp!}>8N_1vkJM{5aW)C! zV0S1}X;^dJ%iwOzF0{cZGQg0o;MXpZ4Mas1()dc1jjek|XcK8#G)@qQEOF7n);pD*KU>r?5Rno3wU#x@n%PS4^8t)#`+&07BGPSjj_Wbtxdi`Dec$*{nn7i`L`9Ec+1m?BFgys*7O#&d5SF z{Y%sRR)HD>!=vDll$*L}#W| z%U_Tc3S6$mwj_D6GZV)HdBG8GJTY&Lh$=b!Pm$Tg^jFlm%omi?Kv&My!mIt4=z0() zLbTGwijRu+Nez}mBx#)1bx^vh5S^0m|H9puq-yG|wAvg)fhwJL3WRcl2Pq0Uv$Nc6 zmm#ilxx}wAmHMF?&n$8-O@h8M#6V(1XK>xJX)2s@*oF@_gqB7zNN#kFfio{?h)Q;n z_zSW`fvcCC!n+;wY3inl;7Cr(>ZOT|@t~qTz8vAL3 z{l@r6gg#H~NEt$q{xpDOT|gMBdEjV60&sNVg?8J~9qZ2quwj znCd?ni0znmZnD!iFb*pWxu6@aeDw@py40cvprZcK4A;_FGxwO&C1bIEyk|uqWS4RJzGn?7`HA)hbFRrq=;Rc|Rx*kJ z*}fR1_hE(8PGlBG5j34EkCfH-7Baw=_gbkjX(FneU-S@HEjRVAl!47AQ%t_gJR>Rb zBRKnD~2O^Xirl%7`@~G@kL7-rp+z38bq%v zJSpjEL0(ipdN2}v`ivziQ_cpJ;r&@ajaJkR8b@EK<&&;DX5$n!dP-G_E^{val|I=w zclZ9s91hfN*(;-?+FaJJFd_`|uvC@I2|g-lBYstr$H{p3ICf#F74$>PSF$}iidxTL zIJlx86p-a)gQ$F}b97snvdXPWJW=#6gvlX)Pw7S5ttzstz9#IKqOVB66-jjs+ z6k{j0YE)fCMOHq$u1f1G{c;N)Lz(lLSN`>D$(ZzL-NMBNxyIc{-JYk9anVHpS*mnu z0i`ZJCnNOf__*04vH3{iG~0X&C^DUZFB91VJ6 z`7c>XUx40v=FBgWxF4nF-x={vkN*%*D^#O-0_4aCJRf0uvSkC>3<2Mzq8jmaEe<4& zIcpSB=8lTTyEt?Bxrl$IQvT%CXWDumvJc=e5E&~SNlS8z_T}X@$eKI`Vpp!-4!lF8 zEBKV;B=9S?j~8{z&@OJe;lO`1Z%2Fg68} zcPeYh+CMu3gFX3Xzl4Z2k;tXGoD^;h(&RBjE7{K#zMcM(XZfbq7f4;p!>r(4=3LXS$eaeU@k8vO5Z%O^wMBZLFIA~P0&5?g#rrm^Z!nS5siA56e zN_8ZTaQBm#CPKM!H(nD^zNwp5*=^?ktrcDtk>A-6xNJFPNJ z4@CwHRS~+kZJ22#37>LG{gdqic0uR-jraL$9}>y0vo-J@f`9(~v#z8w^=|S{t(Nl1 zk+pKB|DT{o>8I++w*!fWv$HdMZ=WZVtT-WE0wpWzyER)M);4`b=It!~>DbbwrTtNV z{p{>3CQuh_vVGYqV4vZRhsUT6ZFno95S;bL&egeb=q9T0lq{FLCjC5 zo>8UnS^8KwY^4=nyU^Fq=V?}>0Hb`iD|lZ7;QsQD{cqiF0C@kme>&B%v^R9V`)_0E zK6-|%r81Nt`>--(Fg|yPJ)2INy-sU)LZMEhK)cocg(_@N6Dza}&iH3I52A_I~Ct@?vY7B_)%2+|>RHuRN_!KN@eFZ8{@K_bQ_ zUr(XgUj1B?{Xh*8yh6fR1V`rq>q{hYRejZ2LN28mPEv}|X$h^}I)Zjj=r+sTQyNFr zWCki2sNBZ(#(U7i;qoMZ0y+G4ccXjs$n^expl3`ZJ1fSg8>OI(Fnl54P2%v?-RCECOeYqhsy z`H*y1liV*0lv9a<-D#W%YPcj=m#0V_pA5rqb8&#-mj!VWn9eJR23O@bf{9<8yWy|q_-$jl37l>mw7m9$V&hLcEISSTq&06f8#vCnjF>&H^OL;|-pf@K zJ;B);yW7IyxWnxWu3VCYQ(w{ZSoyoE46UK~J^Qd|+*@U|x)@xD3I)h6{(ZTMa|e=* zLvzPououx9mOkgBbZ#|$Qg!{HKGwYlofCpsokk^L{TKbQQ_!>}F_{QLiofadYly1@ zO1(N`uWvFSx*`D&axI)j@@QC0y)1-DIB7%dsUW{qE09Mj!zI6mgyFye)ZEsuvJErl zq6iXe?_{3EC0ig}2lJqTdwUIDLum8RFD|E)etC=Eaq{5hiMfT-PFq@`l}sQ0CHY-9}jyE>?PiC^xsU#}7PqY~MU~?B(BA2WE&r9^Zw!1^u7XMqFcOQ3hDA{&L|e_-v`q zV#Iwe73sS#FtxWeU2FUucaczQa}+(-^Y37O*c9@C&+=f=Jh z8ssrzyx;C`?oNQX9-*$+>yO7$rJnB3+pBk>9O8hF%jW~39s$7sVX2v1A;DvJ+}Ss` zm<0;~BcacS%g=4V+voBA?BK4nw3K-!_gnYt{qx3xmNro+0lzH)_Pu?^2+f5=a-sJD z)_2%bwouPNnd4&PbsU5qRD`@Kyzj6PjiH_(9x^Q~m{5QVNXj1&s+AAAk;=njRH*68 z7*w!o)d3ffW;ATDL)s=Zc^NSlCv*H|1&Z@}5Dc{Cz9a|w{Ae3*a(d~=usSKlCUNd~ zv>2VU$J(6$;Nu06{k&e_BY4bt%b6E*x^lfjv zcp-*l^P1+a6!^FiO26tcuNp8x2)AKJs6$2w~0So^U*>Kbntx3MQ#yF~P)}`1RtBhau3r8 zl#O)Ei=`YV=F3;T3Z6pUiIoOUTgX{jK78yk-hb}I4Edce99{P1EYD4CS?P^g66!Aq zWCOkSKO?n3I?(!vr^`-d2?Pf7?|1^&@KTZMDovh2I@(pcO;31iGe}Tl{<)k)9+aE_}U+pH~bHYt$>|#_~tV4y1 zzhu@h+N)<@%cs4&z1kR?QMX?C);MgXGJp*S#~E;)!)LrkeDtF-erNQQQz&O?56W1s z!M-m~=nKmDL85rtgUAx!c$jXBE%TSXWB9^VPn73VP{()IkI5lgc_hHU7zr3aN%}2F zV_lI74{dO0=v(sGjk>ZA1A?OY`_F)}Y#D%O3ChP+I1cXZ&YXbJErlw#{!sACGYwA5Kkv>k1f zXCPk@G;7$*Ai*vf+JBSw91%g8u0C4*9?%CAUP5; z;MY}eECPn2{LU*HtR5Qj>yHtd0N^*({op5nwB2(j7{7_Tv@XguLz-sum4h604ki98 z`jV#c>=NXScgACY11#MYZX7D$5F;5ehbJWzWqK_8GR0F(k@2)5Ul4>}z-51fG>beP zYWMwOHO`Y5gs|(x9U6v->&HmQkN1xEgMWDn)6c(+zO^l_mEpK7v-)}O0t6I#bMh^| zJ=<`uZPeA*gKr%V4p%CsAY8^Pf)z@z(~|- zPT_FyhW4(0M!nHMtsgDN#Zg1Os>B~O|I;$S$;={{NrK0TX=n(_YlY&KvUQRhfAE_A z!%;taK|}RRX$r3hU#F{@0@yh4zUI2v8X+>qQL|o*zY24bllJL^;^OrixY|nG2sBzR zou&EwF15LijQvR&46b3&?wVHPC%y7MID46p(s;l{h-bXDLmk?Cw=lS(DGOCR-)9LbT{p;3VSQ$ypc>hDrjO$$8x?v1A}9R|0PGwnS;#qalDXenR=ONe_`w&D5IMYd_Q;+#cuIZ$;UpV5w zAr>it8>AbpGzJov%E3pLIv@}?<7v_aQQD$FB_xdYUVp; z0n6WPy?y`ikCvfvElPG+HY4ET=M1q6a8%MJI1q5;B2l_Mv5$zSDaK?8JR(AlT^6Bb zP{-@%60!>Lf8cvlA`$J+dJ`bjeqkF4D&L5v4}S+n&)xXcDaW3Gyp~_RH`mT3YI#v@ zta-@Xk%9rnyry^knxKO>;NY?ir;@s8X`@&(r7?Ge1fm7}T{n~`$LlFX}L7?gQ$&5qrGn0)>UI{3Fr zFY6%GnQ6p(e9(9O0gVXVTg-2mA?C6Bo9~1RM-GUA(+2Irn*!lUYVW`Q|7aB57l@^a zGHXXqSq0v*#M{!RtvmP+bJcDRBaq#OUf&3srkNM?3l!&&hL%tR>HcwRaBW>n?O&9; zpArzM^+Icy->}<`xVe0sggY!cXF3PM5-AH}B}%Wp6V|qLytyn;h&qc8A_L0}HF^_(;7AEOeO>gCt@`Qph5pdmbf5I+@dopP8WEsE`oUfpoaU`qNsDIhx4O}J zDjs20W(U(4LH`l}zdiIEd`!$#6inhEprR-y2R>>6R41sZFUI;asX5L0rP8&|8US zU)dR#^BQ~5piY6VC;aLZJ`?jl@%2f!EmEm3TtN#Y%xOC0k5@L*QGfN;zdUhi&K+55 zsB0(9r&BD0-1W{uI%_K!>61RaSIR^_zzBR5vGOkFd zkU+B)-f=GS2oeuNT=#oKQmY2dtoK}zR_ssG>;i|o)WEbmYx1CZe@C8-TY*HvrRdW~ z?NukIg%iw6KntZdKrINtOOFEma!iyIk^?ROx`-a{UcSf;Alx-W>_x!LOL+T1ZlIDo zplRQ&6ke_xX!&QJb3W#}NZgZT4`we=JFRQoqL!$^^HVT*!wkQH-=O5nt>eLIBl0m= zrS<}zaQ{z?!@5Oj2h)YxgjI24dR4d8+ZoR{mL+K$)1KOd*&oyfa~T6fQKd40<+5Mq zM>tg@R$~D>3Y58!n$rPL(l;LtsgCOmFxx3!OC<%@Y{&aUB@pkP6tq5|O1{X^(tcSH&86UicC`e{4FCOepPe z>LtkSRCZ@`S;j9{C5yq*Xs z?4`*3-sr99{G~i2S20$)ZV@q}*XS2EcH8f2V`W=U+uXZI25QqQ1{;B$V=wW!=HY+j zVhBY-n+SxxMBmO3u0_5ymVFW$rW)i9>17xvT*J7Wzug{Tc!`R9i+9MPvg~(b#9O406%umOP$x9 zC%r3iAAy5a!0(S#&t&%lgP`Umpj3T}_Bu|$mwlG@jx$-M>w87U)1&Nzymc#7Q)H6QrYKOcfw#t8ql_PFh=FAr`3~Z-yPZafHK_ zKuEd4bpLsP-9{nAp6RNt^ejZ;xk?JvDlx&8;whcl7dy13=*5=83}o+Mw6YK~b#u&E z_&RMT%fjB3>&F8jQ`H3aajf0GA)DBt^>u<6qA@N?CtZtTco>hYgtvnJq-v&|Md+!0t}EhkjKd4q5~_9h#thlx~>S)NAL93S_ zp3OS#G~W;*pZBND^hVCim)zZZyx?InSTOB25d~3=vssYQc*fX7vY|0t?*HTJEr2R# zqHSU1;O_43?hNkk?l#Eat_OG5!3KACXK;6SIl#c+J~%($ef8I?`>MLqsg-nhC6#2S zSMR+xca=BOcDpD~fAWzc2>o#6M!(+65n@T!Aa2`IO%v@m$&A)(`k(?lll zI&ByuxH)4YFUz1+7(GYzm5TUv{Q8)(Lg*7mqXE6Ez~N!tv9FjBl+Xv`M&LHkuicpO z2iYdxls$h!ws;kEmAI?5q*yzj&?!V$8%IeCT?yChcLcB^WaozhO|>jrY!?ej@-#x-B%lmc#Avik3E8aru-LB?nZjfWhUD_YYn`NWH*7}rtrSQG zwerKhXv|8OHgc8cDHcIPkF}&>@XqxltSI?M_{OcE=$N~NSCl*wumcV&2)!Lj7$1KqaG?Ked#3x{RYfl_=DVEyd3pA5E zcfz2d#_|ejHCN=oNtF_kA~PXfGa=W=Xh&zTE~J5|4Cd1yjfxEeRgJ8bzlt$;;)G}Q zvG&YsP{I56Pk}z;lSh#L+9%ABVk2or5*8{31S?;LBNQri#_l-^1(5fD$ByUfPtP#& zIBdVt+2XM*q(9NX;Z7k?j+tr6BC=SqOPTa}K%2k54;In;=gCohdEXcroH10&L<=yXlB-YmW1wAtIONbHZscSpGxr{jSA9 z@0~)sBo-I-Rj`ITl)L3L$SXkYp%14VDv2^qNX#k`EM^SRyE+!}%BMQEYRQ75Mr|^? z4DzZ|Rvvzum|+qx>zfvxhE2SF^ccP6HagtS!xHsOqEB_Ql#IMbEGg&^Tpmw|f|m~H zYvO+hOHb@U!WT;JGL+OB>+~|_7s~5f+ByZL#`B8`yrfuPD`d$$ZJP8!D`}l55)WW4A0|Lx(L>p(=+W!r_5YDqp{@p?xu=W|4DjsQaj4jygW&@|aIp^bP=) z(9k*gz^K?4RO@?kZbZBFp9P4d(Gb}K<#bhb&P=4m z+P2>;y2;AtbjTH!rdBQC;S)w8c`-lXu}|7Vb^t(DE6OUV zz7!M^6=-BsMAu<3Ybh5+S0uQvWJkos=i|YRYIi{|Rpbdg=CI0;10^zD675CqbYM9s z1*&HLdhaOiuxF>^4fu?%jFu`1UU5HUuazLe-HpSwBleCC879DDEKvNDJE2i5TK(aS zXh<38lo;_)(?Pv7BC^qtECoQfE&nxIT(Zug2eL$IoeE!LI8qH^G@c4(fp(D(WIG>je6x&l3WsWe1Y zZs>){Jt*_KQ$RBT?9j0LNecajLQV&|lUeW{x`-XfFR|aWbWIE#Z*d|CkHdeSd1TCR z6BU6(mMMbYO;t)(#|4;39lA|l4{K>MzRnLWn=XE26blx2+N;@CUfUYl1I^~9^Zr+P z*YDpK6?waO_1piG<%?~5tpmQ@wvl{3zpUQNy-kVq_K2KYf*sn;M}7` zssj4K6_`Jj9K;AG>=Y^`Z1ET7mVuuw{C+EPY7~taiE)_I{l)P9*P}425B%PP!3T zJ2#m>#LEvgNWgswOwMcwMz;lt1dk$ac+e(i1(+0ciXRlc2MzL=u6Pz#sbZW>ijdCU zm|gcF7j)x-MblpAqwE{rwG4{&uhB{nRUKPm8j$A6ij-lN9n9+xhH#dmu0|Z(h`vO>cWcMb?jh43Sy6Ew zq12iO{Qf;poHe>1($Kbv4-T^u zBZXcrkXv}n4F4b}y*N_^OR%B{U_DtJkDkwja!MN~q9|`94=jhzTta(Uq)g!#17=D5 zhQO|{14nIh+1FxTn2;o1GQ*eUV3Nh~cTFCbio4{QW*$5VND*2qA1yL9N~Tu$3)ry^ zSUjhX{loJ&#GgN*I5PuA<9=F}=1J-<+pST#=vh&jxx!np>i9^P$lo=~P;EZ1be#(8 z-Nwg7wkO~09}pCn(<&a^Dn0-+y$%^XZr+*^DZZIw_0QnGcbpooe3s-|9*+gW(i=_W z3tjy}=@dZ;J3J*YZ)zjry1JK(*4c~ag)v_U-0%E<|BYsOn9;c9F~?o@HO__2e?$H% zrO8-gpm%}cvpY=3?`X-*xrGd%JN{OaZwlwqwDl1u8W;(m@U<8;i}hbXqI=It`o>!^dL0DszmIsm@Lpx_^$94(Qy)>L zy3$1#?x_@EQ1|xTHCkVf0`QAx@@4F;7>+>I<0fR!6AAf!ozF!5xtb8lyScr45oj5AYx&F#J z$EW5cJOS)JKmo;h*l#RKc7Y5pQ}Kvp{((8izRVFMb5j&(N`Ax#`FBBn|P z&l4)7&j|;&xii!8G)$k3Jz-)V>HFn%paX|I4z63KuES|qiA`IKN3jCGNIo!TYGE0n zbF{nt>>NX{z^TJpdZHK-urbI;v@wruMW;Mq)JfQifYFA4G3i`t(nFVq4b!1QJdkf# zkRLX+F$`5>zLG7LB<1Z=An2B%D z?t|?)fBc7TPOJcfda|ytBQELnee$3#gh&rPNcO+V<1>w1?{@tCzzp;j6D&ZwFI0O$+LaXF0y zAgRv~InB`?`H54;)m*3vUo&_f1xwK$BXe5^x~#weRogDb1(ldwD>VHau<{%q_3ehO zGt4AbQ(dJ+Ptsj3LBY&)83gzZTCpB**w&Bv&i^?b(I=b}A+UTb+ zL?*WW3TXw3NWv(;K+^Mjx_F8xB2D~txfXH#56JqyK%z3wnbHMmYn!drdrkLZ`vp|h z)~d`QrFf~+c3{c%&SBtNp?}@=O{(|5=!VQuN1|)4|Hx9B7i+)DkooVlt|A+c+SiNG z&*%5D&({YmW1Iz%?}{%6bY`wOO0TQHxBYG-AsSW3^1A1M=(7ed6~pIPuHbsOZniS?F}K)y0P-? zt#`W+vt{iP_$ zs$UE!6Z_#4*QjsRFMAW-5A4S%NS~OlQ02GZ_drgn=YVk&SVe2Gq8V}@v%bB|0!RnBZ zTv1*BSAJl|CQ~VzD~p;o>~8wgJ3cy&;DUF3`A?=O>A!Y0gQfjrU*mWz0`9G)z>H0y z*9LRu-cfGaBGI1OTSsYYgs+tVM>|QYWbP_ z&)P#DVnN}8G=|s1ax$P1(#pcJ2nU?#z?ES^6ho^^n1{BTl?rJ?rUaQRN0eytZ$e2D zC1O&hQ7Tb!Ye<_AnuzumD|-{=xTsCXG0yPsBq!A^uC5vC)-Z9cf%_ZU#`XTcx8wxk zQGp7dlzmqTjdusHQjILo*esxr{jP> z+P1fl5Oz>aa95ZTvnAUK^})L)JBl(#nwN)voO@eHZ{gdp$Le4`Zv*oNw-n~kjqXkN zpG?>3Qev;10u+F2jy=Z;FG?9#)PS-blzKwpBfe+Ua)kSvl9rV4VwSSw7HDCy-U%9= z$81oB4XQAVALHHA&NN*zUvKIaC$B-Qkhp)Q$&b1mM@}apaAqSi<$HLKGSPQno>%0m zjIEEjaM^^AP^_R$;v4*tx_D>Z`2pl;6SV)40F)!crvdP%Uo_YJq>pFgjL7r z;?%(SXl4`!&k5BG{gU(G(7^g=W*A48f<-Zq2Abr}So6D@zJdJaTw_H>5H zt=^JLavG|*j;GqQm}Z`qwGO5rvJCxW<>Oe33_AfBcc(S3Vs*%?K-bo)y6E3Ny6SH& zlT&s32aS9;=NUZxcM=9fvj;9yaY1~#UPi0+;osk~b!gHN1tBL{!_{AK2WzRqj{|Ci zZqC<8RvUiPM@I#T(y)7|-R$-?MsCUWr?O($J0WNH$z11+5yds{@C{dkeb=h4V6}t1 z+jxkVb(_OXlBrwE0@8C(0Y9MeMDNG4b%=6;QO>Z&_c1*Wa-rHo`cfHEB1i#ZaZOvg0NNm|mP^q59C_DveB5gv>g&x6Z`yQ`r{Ohl_p`XF4Y zlyDFrt6e+#x!8jrsEZYj!1##EzuU#}9bwu)RfVGoR!0W~1Np0U)YYUDV@qMpO)+Xh z1Rxcxw;kMc9wglmtI>!=@lHaxX#SxZ4fplugG&Ww&2SAJd!^1O#!9&bDwx#MBPcNaH50poLm>4R;L!)*IqOoc-__8r5p~ts zI%1i~*6Q{}fk}*rCb9mefxAt?;e8q<#^-FB%~<-PSP~WqHZaN^c1JJU=I1mPxFXQ> z_>I*o>$-&Xomh10(#2n53>3XepGxRjiLx+{wkP&PYo_02eh^jn-&FHJq?(e;<~ArS z^tv1~LJR0*G)|awF{?O}jTkYI_4OG!(hoE?Myy#I0_m|J(98sW$o-Ja+0559KVu!* z8Pjl6bey>qiSN_`QK0we!=#01tyLaPDF6{vIu{RP8Q+jQhCtI=9zR9;rin*BHqJo@ct7q4u^eZ zpTH?`05&MdctdFtWj98v5PeoFZ3N=n(%>;jQ5wMXD3r5PW*79Z4y4y4xnPYzuebmN zRAMRS5M%p{z{^O9O83CMt!`vS0zv{!awk;7Dj9fS%?2r@`jS%0lQqziM{` z%=>fw^@_w)}vvZ<+2prafte3|-7|%WbejPyi~x{b`@?v7%Ycy| zVTA6Hfk(zF{}0L@z|+@KR*eyi%ofJVmg6m3#8MkBLZ3@&}x#DoDbETHlL=u19? z&J{NYh@Gg#XP4{Uw?~zhfk@r z!U1G5eh{c(WZ6JK{BP#J42BFT znS+}xm`RoHevZ>RM#Yc{0W%TGSNW;wPj@fLE7ku%ygau1Q^mz7fRcS9$>glj#h2PB z!%s^B913`IcOfD%w3U|qqMXph6Ge9Z^5C3#Cv2Oa^k5032{>@XkVRT!LrN?u^K@(9 zT|zfBEw#p6iq!~ZwmwrKMTthTaRkmKEOwF(8509oqDReWU~kGrfCL|e``+o--=3%1 zBtQdp`XEw5sm7JrZ$mi0ha?4O9zC<_n2qY1%tmFc>j|1K z?zC5-DP##Dq~cE=z&|4x9P>J4RLa`bUZhsg`^}(;!lH1iT?PEhC=$TmF7TZkp$x-y zVd|&5WqP(f_pUhcju3_KXQHJTA**5E*kExUExuV>e94CO=8^*76i|(DZUOrhPIw~i z2{gYyu|cb_Mmzz}YJVFZGlYEuP-Xdrjl?lRyrL8kK}e1~Krh4J=pn1y))%>TqitOo zury#+%4kZcg|IZR{CVU#q}>k20uV1Rsihgg)L<>S@>p0JewOTYWf@zvN_Y@!bIMoq zb^5kusKr#epVUlsSE*5=Z^)Urp|i2$K5xM6LCXhqNqtA zn}v3#k}1CN1RTi6v&&o`5bOq|^1-evSwzCP1m~9@@w+dd4ejjOK;JqclJ)jmk+_Mj znHvi!-+zK{sJmMJXUV@ou(JM-5r^dCVbADfLJfQ zMu2HW5<-k`*US-igB%}rBTdA_;otqLux4>_PKq3QV>~pNr0pNdOA;LEd$C5v)sIQz zweW$^KW$kl($D6xKKTClR`@N(BP(B*5*G~cI7{pwJ5ld(k`MZ61+YjIB0|Lyk%7>z zB>2DIbYMOkOLUS*!C~Q}cdM20z-lzB(oFxP1@e-oBI;MG`tDP>XE_1-ZsOrL=3tVN zBM7C14)dFv$s$yzr!YvW$ay+5EFp<9*C@~h`d$`Ezn>$T0Y!}CXHX>M#)A| zsL7Q5%7iwltY)E1`7lXIpkTr9sDubbzk{<^ zY82O3!>>Xno1ke}2eF$g^>I&8K-bLK?nVAIb16n8)TAb^3rg!nROcf%kC%(qq8^e97QF z&^m;SC4w@hgh)Q%^plaoD#oPfJzVi)KVwtLckdxDvy$aHoFzsq=Di$Sw(eJW#L5~8f6Y;_uTL<3ww(8Yjw)tWv5Kfw-0|#|`DRG+3 zLowOp>_nomtZR^gWXp*KBDy--kMQ>xsl&7+@hXkrCQMS{u!^yW1;~5j(o8;DT44lI z)zMpgX5rU|>=W4W9rgJx$B}r!#H&eUdx!k&OMC;$^_H>Z>>}sf6WD)pL;yh8!+1nK z2#I|ptVEKMY*7Lh5-5ZQcJ`rCO)15uG|d$^tEQ@=(tek^sYFNx$Em~+oSmO!UO}oM z82!wn*asrJ0)vvw-Ay~Ws*+Yj?0^LTg&(TD8xrTzl*3+RLA`DfIiJ~|f-71R80m6$ zQRrYIyp~z*ld^KP?%>o$^+cc>)DVsOb-aaH91i3W8(hoEPlJ3z!Uw|gClOo-9ljYBQ2=g;-8B<55-ir+EWhP%QwN2~7`47D7(?pood^ZDs!^9uL|2QCj*wk&fE$^!yF-d;0GM3Mj|+z?h37k^5MTbophN_v}A^oyTz za7drnjk_sRKcqzTA%I6b5PZoO3SKg|ivX7w^1x6^${$4q`;NyU8OalW#eZj7*A#az zn=mb7*!0*q*~o4xg-F;MQ)9Z{twk_aTqH_-%D=lUIIeSNJ&B?Ff23EJ$|`{yv$B`f ztLN{^UcuEotAp8eNY11CjD5$%Nd6ssvBvEFlsGB3r!Ee4)C=_MV}GXF%e-TOKgR}a zSgRSsRU6jpr&@c^xoK-_sx763mm~xrsEMf$%>?^?sdHbxl4{{Mm)1$F2_-c}RKaT8 zZHv0K8UCy6py87*UCV~Oq^{?aqbI;vqoMvLO7BiGBnA%nv7FtD;6nH79I7PaTGj5P^D`n4n+BLlg*OvV!g~a4|tVZ3><8H zw@ZBnB-#!B`34r}Ey<{wYs7o8kjEuYR$kjuMb#xwO>ZC%na+qs*kC8UBYfrf#%AtG12;Qg7aUY!3&bJ+;)bv9@!SOMhfol&dxR?@Cukd96i-C>~m}yx{_v*2z zL3=%W5>sZiN5U>5NG?4L$}i>Iz;2Kj=0+^tt9#CHydJ&1*oDezd`M`qzIoT>`Qxtj zbIbDexeI6;$J52t;_18c(ws;8*xY;2;WM@QCvx}g@-SqucOvjfs=ZRH?? zUyDy_wg?#LmPUduz==D%iWu#W3Z@nyu=QK_uBcQgz2-bjo*sf+1 z-gx;NXS^7nvh7lDRiRs(;zOPZjQ@ zT_Mn>0_X|Z#O~aY5qlKnA{W-P{>X%Az`||rO__^q{@C5$b6?km!s1zmK+;!c)8Nze zSEs|t#)$#v&*pj>4DX^+OlHPtcCdEm_y@V&en`0DYTM)=)4P%R*G2nbh5}0S0)}=e^s^zV5k0HeW19^Fj!5a>mxB9IQUeAv(?UySEl;69 z#l@BK33Xg%tOiyUU&W6O+z%L{DIc)^nUI5XXE;Hj(m-(iA8QWe zh5i!?V>ZbG^!>K;vh+1`VBOEXx?-{X?NBjfrN~6Dhb~GAPAO7v_mq^Nb}P7*V8#)@ z5|8gZHGZrX4=TNSpsi`_+vU42Ao>%A@?MV}f%0)%gDkLB3V7L%%Luaa(Dn#xSajtp z1QzhDVXxg~CfL4PdlR-;%Ho2UqdYk6WKxTkgN6h*FpJNn+Y%*&eTLCNMBi!-&DT2I z35#s)2q9r>p4gC-3y;lLe9W=}9iX_@8@1+gs+yL(ao3nN*>L^9y(;o)8Pmw-Zg2bs zUUo0MnGd_xIPi`*~Bk&(1n>*L#aj?O@S;JlhH{> zvGHPujJ`BBVG*?o?m8-sd+6{CwLg)Gvx;M3!p4KXQ{$(xd)p>2gwToxOd0ME0L5Ly ziW8As$2cu%hp1_ovEj)?kE0I%eg`4t&D{w9LBv)*O+@puiDn0|H_-IiASDBKbRwvd zbWaaiB4gcIp$MD7m9w^RuPGzTk#;&;m8)U!@`*tww^BDz5VIU;CrgRn+fnN$IG#_t z+trF<1)2rqn9~D~O2wn8s8~KDmRFVo^7nvvqlV%{Lr2G3&zdz^07_lQMfE}GF|eca!V9<6y$xbJ_P?hS9dr8m8NFxzxS1h%_D%VIrmU26$zanty7u- zg;#@2n8}v7@~3sBuX7QS{jogDMr}mpg~$cqvUtVh40Q?Zo&f^Qyj(u|uag<lx1e_@+R^gZ&MO1S1?oaXYIpXQt8WmNixs ziA)nNDVFS9hdI=Q(4AraJU!;!P-szrn}ZjN>0U=YzJo*2g^Hw~r@`af6uJ$H@LRx; zbxHdWV30Ys{Q00tiXE%ctJ??G(ppYY=Sc^U3)>9;rl_f{Nm z-|{^CNsco@UN!b77OnVt5so zs6*YXJDpel24G_pX}#i!%8~@I0UYz2qoQ7xn~>s&T{+Kx8lfb)+3NA5net zW*%YsW;5o76k)aDuy@{szGBV#nxFY@Uk;9! z(!WI5^wf}kI4uZsI@R?m?G@Gh{39QGmhxd!Fgtn3mq)dI`jBr-+ipyMmn|!Tb0v+N zS?B2-(4k@Vxi)@Qz5hJTci|0`^10!GpAbR+s2&h-XDn~=|@JCK(03R z$!ESLasD>zZ@hVJPj|89qy(obgAE!Yl~>tMDkxQ@PZ zpq+a{ZWKXiS(t#SHnzzmtpLKmLfxP3>^_#@jj;_4*J>IF2rQr2ep!J`t~jN>%S?>j zZ`#-E`r&2W2#fN%%nDn2Zvzm=Iy-D1GplLgC#Oroc3wSG53`DE3R>Lwm(*JLaVJlj|zd946;BBy#XdXCR1YRXG+$fAu zJBrZ_6o2cLlRd>8`x|0r5HD5n{>Ylzfb2-}58v~n3 z!hZ_hb7}Xr7RdK4D^GC^$g`rmd%x_tIP^fhW+OIV8u~5~ui?7WH~JiBPIXjS(7$iW z1Ot5k|Mk=Y?;^u}z zvH?x+WfEBuyuAk_|L@uqF@S#U*Cuv&3a%BEE}EkrWXhn$Rtq7H*P)37)Pc+QAN4|> z#MJ$Um*a@hCqCj*WGt_w)Nfnxjqrrq1B=*3z#upo>~fTv$l$@SpkZ2gk(ghyL()#r zQ1Ima@SPzlPWM@qzxy-9Z0Ab*7clGx0bx-g;(+0(k|%Q2+yRPcOa#-=6$!kAW=P91 zW<(u*KniOlIRXy+!59W*4VHy?v`*DH24xhL0Bmxg7>c&Z395BYD0ci5Rb)^qX0w7tc6_$@3rkg~{h8m48wwh+&MCwnX6M*?TQmlW@x;*kkDqMun z3RN7vZXd$4I2emFS(f}V7K%rbEG{u)Xe=;Y!z;uh9skB^pR}TXjyHBb-AG#@D}8F; zDG24@1etuIUuJ-w;~e%g#X_CyT^ zlEUt%Jl>#fgS9&i!ijQ;l3O5dm6uoSJqK15_{{UjDm&^(;zlCisAQ4@k?Mox$|*jX}6G(a^HnD731mrTY}%Lvz;#E%#op?<-s?PN^cZFn#rLiCFN@ zf#^_UDpZL=EIoCa6!vjI5$=2m(JW{>4ZJ?XBD>j5lj#TW$nB9>LI5+5U{A4$hPfSp zT^eUcyR<LdyCw=m{2`MG-T%8v^w7GHa6Avl)+Xix2b9Fa~n%Za; zvGA#kFz^l*KK}TyD%6EecCfq3A*J%hJ8(`SU0}4g`hg_V_k|p>u4VE*lE2jDv6BmHpz}G%5EyT(8CAwCX;sD+S|!N7 ztL7(`*hh)Y6pD~dZlZ_f3@3~IYNLYZi-8DZbe4xqb#zM$K8*9=`Y}d_3H?K@FQcL# zh{(U9lneVAUc1 zl0#jc&KAstBiou%1@!{%4j#Y>{YNRyZNPMJbqPdB^<<-TXE0&G#O;y5zw@c*gGIV= z{oGNi6a-~3!jjn`-lpoY|Fn!ALjeTU_EBnwDlU4)5CC zGTQOT18%wT@YHOXE(BQXca&XG^b++t_mtUfwg&&Ai#@yU8RbY2mYp>UxCf~hKAsLA zmpLl!J)B>Eg=Cg=eJT#-VN~H5UtD%|$>(%nyy5^aKYXL)wd@wgjNo4euR=EWD7AR~ z-FM$wW`ZGq2bcwu1Uqfc;h!tjIl%dzsNWn(gX(|9gLREKiN{8kJyxzj|1_oqWIB`R(<7yKC`c`$*d7@A7`c<s!-wDB0E^vkuajMu@jd+Cwn#d!emTOEX@%l0wR9*1(5aKpj$Z8u# z(``ab4h~)%`4_%ZE4TD>z;JZ{TE5qHP69K^UL8_WYF(50qGcPP{zQn!o`Y-nh~PF+ zOSGI*_@ceDv<-0)fNtsM9sO+xlJnJ|bzb&*JxQd0cQlFGh zlu)WNRz5^*zTQ#69SC2{L@gWpdH4h_kYvkso^2U6YF#|?gVPBwZ=%5l^>>-0=mF`J z?&g>OzNTc_79?hEVB1D!O%aQ@J1uv!$ZTtH)og&tH0fcusik-`3NHm$rxo;aqww;* zs2%mDX0m9OgvV@URN`;=*pdh53*MM!JlVkSYMHK>BxXS)v$lU{ohkR4jSfJpN%US$Dy4oQLn7LYaq#VWr30#?*#Bzi%5Ja%87T@jkne!uHx)N5W2^pyZk6Q{ z{Zn{c`RwxBSKFN8><7G0apK|wU4fNuZgW~dyRgWjkd5XuKj-wsRKDZY zt!u1)*lz3!j8? zc5vcJ>lW|%g@z$ayMW4|Q#G)HQcDAWfMHg;1jvju*!B9c9fvK=lx)WQz*syri>@YX zxkYmO$JNuoMnoEEDI7Y1$88tqDw@2mtYKo&%jqd`X~wT~VZ#^HS-p`FF%) zoy?PMO4sKDjj*!idPN}DQFxa3`@##IV2agB;8Rr^H;%S_q<(G&R#%{qxQB27!ra}X zKWseN*@G<_ZexH*5#Cysu^?JH26!$Dm+e1F_5f=c#$z;o!meLZL3`IOA8o@qu=(Qgkc zPJJrYvv06@rS3peMZM#o29kvu$1Yelk9TI*A1y0HX4rk-Z`0(=?abl?(8tZxe%_aN zd!r!8zoR>Q?NHgVbiEX>F<$>bb%x#Sb|KK-6vpR9s7&l`iEvX-aA^u`>KJ-19$TWZ z6EBx06Jf?tvUG$S%TEFU-Ty2k>LArv*=xs`EL%G~*?j(!WA&D4$UZ38( z#p!u+Nx=_bZ!cZr7V7i3!X=5Js1?`dpQ=o)ItRI_qD}3Lx^s=lSE~Nz+U5a;lv^Jn zy(^)qY9MS}GgH$|qO}G1)!|SYW zJ2aasq}G4JdzDPTrDh<8p?a^&PwC`Py_V7O-_max@gsPKPiA8VH}3*h?b&ZA0p3#0 zYsMENuF>d@f3hI*&KeX?x`$`LR1uAQb7{s>je5kl70JFXavfN~WA-%^hqn+3?=$O|v*QD>LFytA$ zERUDqEDrbqaeW)aeILXmnF}joPI#36gqm#s6YQcfqWcBN1vlK0@#*y;bOY<`Kim}P zj5su)RxZUR$QR_~aG<7}CDW}_Qv5!xuyYXqrPG#KJK5UEM-mR)&K-Qd;Wxce{! z!e}{mh8B=a4sM5aZmg0`_8Kpoe3~BdlN(g4vLzH0O4HYQC&oy=)?0&Pf98b@Qxq`% zYB#^Jpo{q)per~w0h%|(RxWAsQpp)s-(vg~Z*{}V7DJ<|D>yj}x)H`!#%lC>Nf_Ue z>acx(ZfUgjDb*7+fBXh}8vvn^V$aUkd&Pzgcc8{FbTIz1 zH@Q)OjPccBbntI%cbozRFvbw%GcrpywJVN*9&uyN`WR~+o7#c>pkA<;vvWpfkES*A zCf*ctXPd-fOHAzJY{uG=`gV8@p0u$f z8Ll`*g#`m*9{z@eMEC9Au<9XhnX}o98K{vr#?)DB7(^L9>}QFFsq6om2M*5L z=EID79u3ZyQou%?5!Zn#3(nrQ+JUOkk^yQ$pvh2kL{kChYAbR?%W%nXX+@yRFbARW zg7dZIfY7>SA-Gxpr(GZ;x(FmUE8Bm(2R;fL2Om6(l#Pq48z~z*FIUD56bdnrotO82 z@gObwcCMSP=&I2e50ycS>a(vVI(ji-Ha*tsO<-2PQ3eOpw=bExETEnfuzrf_8Rw-ig(Ze8^ zUgBNh-56m=CkB?@>=cr5irUyXDMos&{G_fVMe2=03mH3r$FUX#V&&$5iwV3nJSFuj z##pVWh7ZXqMDlVhRGiV?xomGW4>BDieT=#F$X?)bTK~nrp`pZ^r-04~rLrsuv6Vs4 z2t1)wX;)klEr`NMEe(%VqUA*+1C!N~8onRLQ(yt5X8@(a#DsLbr?@ezWhxcLlVTA! z>IbG^g|%$lw(DEHp#6UqCp_}X+9q*$6bd56;L;Mf{#X-Z0q8e`8Og*RCF{*i3Aqo* zCVI2-L&1t87XP#W4^-thh0bxuSgvoeef($Q#R^jkwfBkcgm zYZMq-Z{Uj8Nf==#OrI!UTvQ>>u`{_pYoewslLY~TQaDEl$9&20Nb<>W*GS{ZuylLQ z2^2Eyu501q$VM^tZJfK5Ah=#Vv5_P=@u?)s(>hp>3c$l62}7LE`CBmDeuC7G`99t` zQo%XZWGJ;F^8rMsTZh6<=MmJ-j*+M{ww(E>Ga#FUE64}YobN^ux52p}WS~a^g2pdO z3-L?@_e3)FjEmR`+LcoReZ)Ii2zSg?EoN?#l3$jk9G7SQD~2oFvin3a6_93bqBG+A z7n0#AaS5VJ9B%-1r0+|5U5A?XB+N9E6kw%8tzt$gog+)LMjLrGn1}yUHMGAtB#0Gp z5(tnVKt)6grS?K?_9TmoblA}?AmSnmoa2?)=K_gNiaZdBeAYQ*5aG zLVf8@w6m^ZjOd$3P(Fte7j!+P(6K4>L{QNCMNUE~`V~Z-PZU5bF7_t47ii2!)CzH%N$U6%rjDup}Mue9c^h8hC*55Dr$dU5CauV`k)ouk4hXiu;{N8u)@IOFC z;rhep!J0~fcqD{kiPAKxHjU~rM*MsFmnzGqb=e(z%3sIJ3(MqiD%cs@!@1W?rss$j zid$qE`ztgRa~;EYWVQWB0@#Tq~Da+jtvRIK?a z_bX_)u(POUfUZ&?oIXd5my|2{TH_R3#>1t5+le7DZZ3^Mn~fgGN&-Wt$F~C>yM{?YmvcD;^RLq;Ul>i z7fVThAk~pu5*6pj$Gc>X436{28VL+uZ!g6Ft1W4QJY!@$LCSe$4d0=T{AJmtiF z^7y&|x|cLfP2OP{o6*CKS@|*SqsCtNQOzeTpnY~ir!8v_`ZuA0`FP_@#3Te$cK=`U zk~dpFJEuju3pPYc*6|^=2zYA(z;kfJ zxHGo<{=Wde6+!CtVStKi@*@iq4e|+JT$p^Q!YMAeLD%4fVpfAeRyGv^4!eHbWKg*;Z3up5Y1RJYYNIJT(nv8v<%PSLH$ zsuK2p1Dv88H0i2rGWxTV9=hUBz--CFpuo-v|C`MWs#{vD9{J1G%wIIxL@eM-c4 zc~3B(zl?3Zul3WU&3yZh)GynM#r(|6%lpkY&BP_;}u~AG}<=K)=&JFMeNKU;O&v&*tX`>XCnc z6n}pBFk>xN%d`1y`{3+fq%>=VY+6~*_De-yDD}m|e&E;F?eg)tbe|?kCeIePvy&w5 z%hg3Y`QfI0{qgo{u@vcF%|E1X&i!k>{*E+d4kkTqX*((J>HKznwYp5cYp|g4EKURd zYAqL%BFwa%$_p&H#BoM3bz?X6vX2XYWRzn*pBb8Z)Xnl^DAD+-^oUrIQ!g}&IZ_u~ zTLkfpFtcH*l~OYor_yZjNPm>^yiLtgl*>%|^U$5o0#DPyPSXRZ>T)m4H%{R|Gn66I zfXvAvT8mDMY>h)-120DMJu@*(eT*}!>_#%FGDRw@)ijIL&0TL~!actcS!9!ctyf!G znOU;apfrwQDr2W{We=KGGs~DZu8j*gcT;J%BzxxIjk1kUw&=;WKqEglvj$o~Vjvr} zk_=9E(qU`{zBN;6lXGWjYE78UKC|Q*g2>6_?Z;nkli8o2NrT)$gm^N)Y2|YA=DYW= zo}PXAZUJX{)&BAQ>cf2b=I!Z!lhxJ5%XcRUgVQ58QrW+Z`T3@a9~eb>8FAw!1hbjd=AIQ~6Q0D`0B#>u=h{R_U z>ZbilX=TA=QUQ$iIF~EbtY0V5WF+C}F)DtxxN2oXV!yXXwA-cyA#OJ7bX*O>Rq?zX zzQPZjX|^~kOcCD7VT-qay_bsD3ZHr&Cm`|kd@tnlp0WM&iM_(+e6MGO3qrz~SKWc8 z8xA{}LYj?Fvq@72XZsQ5PE<0%S>*I|wDO^LrrAmcI@5Sg(Bzg5l$0O@w_QL1$>I2@ z=Zu$qx*!o&CfS^8y-x&p(SYDOjj%&>6af&WBYIXrCzkES?})yCr3M>lTl|jTGPaDH zHj2lN;Hd0mYpl^GwHqJPt6ZzlS9a=Rbu-BOdV-sX;1$spZHj*KLO?cg$}?z7M3;ML z>xiywJ<-2;|KB&??t9@uj`!a#{sE3#eKf}-ALe-QI~130pDC{N4#nLr#g#8n+>Nl? zfzz;DiQS`m?TOug@2J}lyQ_%?in!B^XU~3o_2T`PNPX6ec8vi`HZ=cl8#<+qvYXzv zn-1Zy-K>YD-scNL+eVauwu~ryc~4~@wS4|TnARm5`U5uXVzP(bVzQ-NnSl*Ql)5pX z-8bOpZIp4E;<1;cNusTU6%NxrIYOW?UGTO#-LsqyyU{X#g~${wbEHgB5(!oCT@+7o z&f*BHDF1;#{<8y;2n{ra7)NRf#dO2J7^!<@8KSI82H&I;BzuS~Ze1$^T`+ zRII^$B{50jIg%BN*eKT$e^52MSf610=i4VQUOyeIew_smyRQG|!cRCp{FvjykJ$-7 zwC%ZAe!B2~qh)b{>++uKo@)1q8LJstyYb?&M8j@EQ9KZej#Bl;q2r!IJ9S4yk|uS0 z>iF;F`RW43ne@gv{ifIG#T@fkNqw8^=*hd)56cDmx03Tv?L>+p_^3I!Lv!HDITS+3 zQ4`Sp$I{&?n93>KY5t=o!~Ivy-O1Q~GJgR?Yf$5tQMnKl0yZ(1wK)Vma%Ev{3V7Nz+DBAWSsusncTs{=K>;cv0*WG-5Ku87DyWz+pdum)X2l39 zm=#b_G3T5UX3UB?bNX~I=Jd>*Nvm;YHQl|KS@oI4^i+L+m(Az=&+k#MUcI{SCdzRf z=eOVdoPca+6K?c#{C{!YP;bFqSdF`XjpKM6$Io$s9mjaS+vBUffB)7vet);QA$ez< zfO$6YBl$qx0$ZX#24EltVJi$q7rHS7L(zj_7>*Ix8rxu7jKp@v3I1rWCyML&MBN^v zu>;0nEXH9+?1b^y8M|NtcEv$;9$(eAvhF=VHRfNa2$anF$YKCXdHuMaUAC2c;mEfzMcuR5JNo?Ct)5= z#wj=z^Klv$;B+j+8CZlfaTXS13C_kjI2Y&PeB*RTw^y}*tMW5W{7{=LBxzxsZojk1 zB9fNI>G9Aei%9~FlXk%-r6fUr#u?ntCQC@vN|)j?TyC5Z|FM6wg1=GgU5RDJ$*r_U z%Q>p{yvlGxs8^GR8>gt9P1cY^7-vC=O)5xQ8)tE@_epgAn`-k)^0vnL?UYT{l0+I4 zRBMxUB<*k;))^D_lRdhgq=PZhKiXsiNsKXxRW{j35^GFaxJ}f1#2J%+G2JGcNje&n zxz#4>PdXbj;-dGOP4%B_zLmU-F}sRwQbm$r%;8v@sQ>9|%&9>(sUb-;=0c85^jW$a zbG?;Kwv+TQ=FTLW>>%lB%oAgiT9RJIyiTymPLgC}KEJVv`oL6UeyF#}Zjv-(e*erS zbtHX^`P)>R>>=rA%(uUPdOvUA`CB&MOP+25FGqOu;P^u}-$&lx1SkE)m)~o?ll#dt zOz`6-Z|*8;{&WY(2OC#Ou1yY-WE$7f=9Y7aWQcK9H2Plq$~PpeT-y;as9E;CdWxe8rQc5o17rYF|J>Z*yJRC$r$7M^|(z=k&HEN z|K2t^O)}27L;h`(GbFjj9Tj1dvn1n?X$Z1p4{MQu?ea9)t7%CY4dvWIVR+XHQqcl=Bmwa zlFv1vap}H1ule0?kUt&C4Hrk|tWU2AgW!dBb$ui@AIWf~F4@p)U&$(|lc|=lX zJXbE;zUq~C zB>l-Zg15}^wM_q??F{5KwHw1w^NKgrQP=@BPk2imk6lo+f_M0y^PeW4f*J=uQ0L<` z)M)sTx)6(hP$S?c>Jps8InR)P#xLa6xD9uZf2H1ub-0hbiTV)dIg8#W$TaxA(X@JZ&HjBG=Ifk__(uFdRYNntC)&;A}_9+fX0p-Ba;Cd0XlS9DTy8wvb0+ zJCdzfg*D`Az1y)CcagWJ-h=z`FnKiRf5A2TV<5KTXa|hJSaKJ-F@!vhIuvzhBFH;Z z>$`h@O`T5OiMl`ed;ClukDa+T2V0=piJrS4Ji(n&+e@HU+nbLI$h%T6#KpLTJQ0&f zmSY*NChx}iPm|~yIZ57~TF>}7yhz@I`U+mhdh(vwi{v)m<&zF4Po^G89!#yz*qb^K zgHYc>3bhN}7>Z#WO~o|qLmq)@Z~BhrfFuSx zVrTM!)CqVG_00~V{>t~Rb)_G92DN&R01P4@jF}|CytV-!k`JMNjL)!a0_ILP^ zd>H3Z+c<=3`B|7vas-d!G4kQmYH6qN4EYG^vv`g(tG$gRd4f;z89wJ|4vxanIEJHt zFR&3`l8>c+g|G1~`8eKdA>UCO>P6(a)TOu-SCEg#2_)t8bv2w#?SCToXF484^+l7Y zkE2G+v*dZy7w|G(BcF^K^={xzoIyU7ch}XnL$#uO>JF%0r6c(?>Uive3FHMhoun)0 zpGmE6u#kELj>0kIGpKdn#^XeCjc9p)I2m>Q#T=c98t;lZx*W?;y+jH3b34|e`qKF8LCH}h?8*|xkmpPSd6pDS5nV^;r#Pa zPg5DSdT;f~yKyf^%W)O1CO?2jP|xog>XUc|HUFugzJymfe-H9XzF!Z9V{7uYxQ-+e zwacWtx1Kr%H4f_TZJ_SV`Fl~TPtz{k5LCaU5n&TMvi5LhjVWs9^>_>Kkn6Sg@gY7z^?0?YGw&jQ ziEr>d`EK5&FM3cTS{-#bw#K&Px~g{A9yLEvtJp^piycw(js4U^F$*;xJ3u`e$KeF> zgVcGLkA5m(6Gr7i*D%^%U$ThO;#9dfNevDe5YcHx_J&qcGeKb0cLiKDX zsdG^?$vpB?)Kjql)eoPho`thHr^fm+j%r*}Kd;&Kd5)IjYOEx`K&|=tCfrJXk-7$V zp!&m0yw@NSz4j9MWxPUi6>s2eawYfi5voO9qt=@49cRuU*SxDc_Qc-gH?W>04K=IL z3`gUX<`TnEqw_6lwTHofm`Q${dI%1~Y;rvdcS&;a2C6^2N3C9N6;_bnr>?|xxPiQZ zdJ}HJYSb!5s};?H9+6)}-Dlm^$JAF){o8eN%}na?7V641SJ8FqGkzd{hR;bp;TLQo zf5Erlph3;(8mU`gOY|py$!j$S?ueQ(zQWfe3D^xae||%)*|O$;!0M6SQfscO-lKv1 z9myn|f*O6)+k7A?#Fb z@8?~E|59o1-hNbHq|smZ^A_Gi^{#%@&+sL_C2xVc+xjfp6ENid)Gax`=FI)b1E@7) z&%|u>QShftG*)LMyWGh5L8(L6i}yJ2_o&Zzl$5A2D_qISa$qptP{9>rtW z8&mK&p1_lTn9BJ_Q-8s)n1)TXSO@j=^`Z8|7U)l|d(w|25Vg}amOP!L3u=EudzhMU zXzxNh5NU;%gj??@;|o6SaB?KUA-xzCwF$Lr_nF z+J7iUU?h1KXIq5ru>*NFbu4zmF66_h6R|t$+Z=&^BT2MpqVGk|S`PI%9FG&pHG`Ur z`8b_?G<6XcqtVZHsW+kS;d1g>Bv0`LYDKJPUwh`-rPr>z z+WBm1?VLB!Kj^8{4z^|~E2!13=2B}tm5O?fv_hXxqUUHOMw2g~j=?yLC)ZxhVLXEB zVKgqRz;ax}nKL=6He8BJ$cLhOW_=f0gKJEG4?vC1%cz4t;(nm;vufnL#}Jq?xJ>~bstty$6_bmMWcKuM_1z-60OvkaEL9O>nLXE$b z)F)7@o>Sy{;(TXDj)u(Ns&gAG+R1csP+)R9f>iskie~%yWGpf&j z-;7&uD^_8(@%+#CpS!St44WlwI5!A+Id)uHK^SN?Ja06ul)q=9&AGG z6=-K*D^_DIZo}=k1M6@n?!w)80QcZt+=u(|5+25bcnDA65j={=@Hn2vlXwa*;u$=P z+B-du7w`^V#w&OgZ{Ri5|DJBBTiAei@gCmCSNIqo;6r?bFYyUJ#b@{&^`DVO z{^zLQOGJ}=!O!>}KXO$2*k7p~6Oo+n``*2^KZao|^q>nvusycHC>(_G*a^E~5~g5p z9Eg2!02X2v4#Uwn3MZm|+cO=fU;*m4BD1js^;;VK#zwz>S&sV6$tu(@QYuV&SW=v? z&37;I*>k_oWN%_>3UhQ}a&&ldWo8O7 QF*!6gG&c$*B}Gq03R)lLd;kCd