From 6c6697d1af3388fb7a9867c869763ee3e681b7c3 Mon Sep 17 00:00:00 2001 From: nabilmuafa Date: Wed, 13 Nov 2024 09:59:30 +0700 Subject: [PATCH] add tutorial 8 & assignment 9 --- assignments/individual/assignment-9.md | 48 + docs/tutorial-8.md | 1188 +++++++++++++++++ .../current/individual/assignment-9.md | 45 + .../current/tutorial-8.md | 1185 ++++++++++++++++ static/img/8-quicktype-example.png | Bin 0 -> 236131 bytes 5 files changed, 2466 insertions(+) create mode 100644 assignments/individual/assignment-9.md create mode 100644 docs/tutorial-8.md create mode 100644 i18n/en/docusaurus-plugin-content-docs-assignments/current/individual/assignment-9.md create mode 100644 i18n/en/docusaurus-plugin-content-docs/current/tutorial-8.md create mode 100644 static/img/8-quicktype-example.png diff --git a/assignments/individual/assignment-9.md b/assignments/individual/assignment-9.md new file mode 100644 index 0000000..abbd56a --- /dev/null +++ b/assignments/individual/assignment-9.md @@ -0,0 +1,48 @@ +--- +sidebar_label: Tugas 9 +sidebar_position: 9 +Path: assignment/individual/assignment-9 +--- + +# Tugas 9: Integrasi Layanan Web Django dengan Aplikasi Flutter + +Pemrograman Berbasis Platform (CSGE602022) — diselenggarakan oleh Fakultas Ilmu Komputer Universitas Indonesia, Semester Ganjil 2024/2025 + +--- + +## Deskripsi Tugas + +Pada tugas ini, kamu akan mengintegrasikan layanan Django yang sudah kamu buat pada tugas-tugas sebelumnya dengan aplikasi Flutter yang sudah kamu buat sebelumnya. + +*Checklist* untuk tugas ini adalah sebagai berikut: + +- [ ] Memastikan *deployment* proyek tugas Django kamu telah berjalan dengan baik. +:::note +Untuk masalah terkait PWS yang belum bisa diintegrasikan dengan Flutter, Tim Asdos akan menginformasikan secara menyusul. Untuk sementara, kalian diperbolehkan untuk melakukan integrasi pada _local host_ saja. +::: +- [ ] Mengimplementasikan fitur registrasi akun pada proyek tugas Flutter. +- [ ] Membuat halaman login pada proyek tugas Flutter. +- [ ] Mengintegrasikan sistem autentikasi Django dengan proyek tugas Flutter. +- [ ] Membuat model kustom sesuai dengan proyek aplikasi Django. +- [ ] Membuat halaman yang berisi daftar semua item yang terdapat pada *endpoint* `JSON` di Django yang telah kamu *deploy*. + - [ ] Tampilkan *name*, *price*, dan *description* dari masing-masing item pada halaman ini. +- [ ] Membuat halaman detail untuk setiap item yang terdapat pada halaman daftar Item. + - [ ] Halaman ini dapat diakses dengan menekan salah satu item pada halaman daftar Item. + - [ ] Tampilkan seluruh atribut pada model item kamu pada halaman ini. + - [ ] Tambahkan tombol untuk kembali ke halaman daftar item. +- [ ] Melakukan filter pada halaman daftar item dengan hanya menampilkan item yang terasosiasi dengan pengguna yang login. +- [ ] Menjawab beberapa pertanyaan berikut pada `README.md` pada *root folder* (silakan modifikasi `README.md` yang telah kamu buat sebelumnya; tambahkan subjudul untuk setiap tugas). + - [ ] Jelaskan mengapa kita perlu membuat model untuk melakukan pengambilan ataupun pengiriman data JSON? Apakah akan terjadi error jika kita tidak membuat model terlebih dahulu? + - [ ] Jelaskan fungsi dari library _http_ yang sudah kamu implementasikan pada tugas ini + - [ ] Jelaskan fungsi dari CookieRequest dan jelaskan mengapa *instance* CookieRequest perlu untuk dibagikan ke semua komponen di aplikasi Flutter. + - [ ] Jelaskan mekanisme pengiriman data mulai dari input hingga dapat ditampilkan pada Flutter. + - [ ] Jelaskan mekanisme autentikasi dari login, register, hingga logout. Mulai dari input data akun pada Flutter ke Django hingga selesainya proses autentikasi oleh Django dan tampilnya menu pada Flutter. + - [ ] Jelaskan bagaimana cara kamu mengimplementasikan *checklist* di atas secara *step-by-step*! (bukan hanya sekadar mengikuti tutorial). +- [ ] Melakukan `add`-`commit`-`push` ke GitHub. + +## Tenggat Waktu Pengerjaan + +Tenggat waktu pengerjaan Tugas 9 adalah **Rabu, 20 November 2024, pukul 12.00 siang**. + +Asisten dosen akan mengecek *last commit* dari repositori tugas lab, sehingga kamu tidak perlu mengumpulkan tautan repositori ke dalam slot submisi. + diff --git a/docs/tutorial-8.md b/docs/tutorial-8.md new file mode 100644 index 0000000..3001d4e --- /dev/null +++ b/docs/tutorial-8.md @@ -0,0 +1,1188 @@ +--- +sidebar_label: Tutorial 8 +sidebar_position: 10 +Path: docs/tutorial-8 +--- + +# Tutorial 8: Flutter Networking, Authentication, and Integration + +Pemrograman Berbasis Platform (CSGE602022) — diselenggarakan oleh Fakultas Ilmu Komputer Universitas Indonesia, Semester Ganjil 2024/2025 + +--- + +## Tujuan Pembelajaran + +Setelah menyelesaikan tutorial ini, mahasiswa diharapkan untuk dapat: + +- Memahami struktur dan pembuatan model pada Flutter. +- Memahami cara mengambil, mengolah, dan menampilkan data dari web service. +- Memahami _state management_ dasar menggunakan Provider pada Flutter. +- Dapat melakukan autentikasi dengan web service Django dengan aplikasi Flutter. + +## Model pada Flutter + +Pada tutorial kali ini, kita akan memanggil _web service_ dan menampilkan hasil yang didapatkan ke halaman Flutter yang kita buat. Akan tetapi, sebelum melakukan pemanggilan _web service_, kita perlu mendefinisikan model yang akan kita gunakan ketika melakukan pemanggilan _web service_. Model pada Flutter menggunakan prinsip _class_ seperti layaknya yang sudah dipelajari pada DDP2 bagian OOP. + +:::tip +Kode di bawah ini adalah contoh dan tidak wajib diikuti. Akan tetapi, contoh ini sangat disarankan untuk dibaca karena konsepnya akan digunakan pada bagian-bagian selanjutnya. +::: + +Berikut merupakan contoh _class_ pada Flutter. + +```dart +class Lagu { + Lagu({ + this.id, + this.judul, + this.penyanyi, + this.tanggalRilis + }); + + int id; + String judul; + String penyanyi; + DateTime tanggalRilis; +} +``` + +:::warning +Jika kamu mengalami _error_ saat membuat _class_, tambahkan _keyword_ `required` pada setiap parameter _class_ pada bagian _constructor_. +::: + +Sampai saat ini, kita telah berhasil membuat _class_. Selanjutnya, beberapa kode lain dapat ditambahkan sehingga terbentuk sebuah model `Lagu`. `Lagu` ini merupakan suatu model yang merepresentasikan respons dari pemanggilan _web service_. + +Untuk mewujudkan hal tersebut, diperlukan _library_ `dart:convert` yang dapat diimpor pada bagian paling atas berkas. + +```dart +import 'dart:convert'; +... +``` + +Pada _class_ `Lagu`, tambahkan kode berikut. + +```dart +factory Lagu.fromJson(Map json) => Lagu( + id: json["id"], + judul: json["judul"], + penyanyi: json["penyanyi"], + tanggalRilis: json["tanggalRilis"], +); + +Map toJson() => { + "id": id, + "judul": judul, + "penyanyi": penyanyi, + "tanggalRilis": tanggalRilis, +}; +``` + +Tambahkan kode berikut di luar _class_ `Lagu`. + +```dart +Lagu laguFromJson(String str) => Lagu.fromJson(json.decode(str)); +String laguToJson(Lagu data) => json.encode(data.toJson()); +``` + +Pada akhirnya, kode akan terbentuk seperti berikut untuk menampilkan satu objek `Lagu` dari _web service_. + +```dart +import 'dart:convert'; + +Lagu laguFromJson(String str) => Lagu.fromJson(json.decode(str)); +String laguToJson(Lagu data) => json.encode(data.toJson()); + +class Lagu { + Lagu({ + this.id, + this.judul, + this.penyanyi, + this.tanggalRilis, + }); + + int id; + String judul; + String penyanyi; + String tanggalRilis; + + factory Lagu.fromJson(Map json) => Lagu( + id: json["id"], + judul: json["judul"], + penyanyi: json["penyanyi"], + tanggalRilis: json["tanggalRilis"], + ); + + Map toJson() => { + "id": id, + "brand": brand, + "penyanyi": penyanyi, + "tanggalRilis": tanggalRilis, + }; +} +``` + +### Penjelasan + +Terdapat beberapa kode-kode tambahan seperti _method_ `toJson` dan `fromJson` di dalam _class_ `Lagu`. Hal tersebut akan diperlukan karena ketika kita melakukan _request_ ke suatu _web service_/API dengan _method_ **GET**, umumnya kita mendapatkan hasil pemanggilan berupa JSON. Tentunya, hal ini tergantung pada implementasi _web service_ tersebut, tetapi pada contoh ini kita akan menggunakan JSON. Oleh karena itu, kita perlu melakukan konversi data dengan _method_ `fromJson` agar Flutter kemudian dapat mengenali JSON tersebut sebagai objek dari _class_ `Lagu`. Selain itu, terdapat juga _method_ `toJson` yang dapat digunakan ketika kita ingin melakukan pengiriman data ke _web service_ dalam bentuk JSON (seperti **POST** atau **PUT**). + +Berikut adalah contoh respons dari _web service_ dengan _method_ **GET** yang dapat dikonversi ke _class_ model `Lagu`. + +```json +{ + "id": 1, + "judul": "APT.", + "penyanyi": "Rosé & Bruno Mars", + "tanggalRilis": "2024-10-18T00:00:00+0000" +} +``` + +Lalu, bagaimana jika respons dari _web service_ berupa kumpulan (_list_) berisi objek JSON? Sebenarnya sama saja dengan kode di atas, hanya saja terdapat sedikit perubahan pada _method_ `laguFromJson` dan `laguToJson`. + +Kodenya adalah sebagai berikut. + +```dart +List laguFromJson(String str) => List.from(json.decode(str).map((lagu) => Lagu.fromJson(lagu))); + +String laguToJson(List data) => json.encode(List.from(data.map((lagu) => lagu.toJson()))); +``` + +Berikut adalah contoh respons dari _web service_ dengan _method_ **GET** yang dapat dikonversi ke model `Lagu`. + +```json +[ + { + "id": 1, + "judul": "APT.", + "penyanyi": "Rosé & Bruno Mars", + "tanggalRilis": "2024-10-18T21:39:14+0200" + }, + { + "id": 2, + "judul": "Espresso", + "penyanyi": "Sabrina Carpenter", + "tanggalRilis": "2024-10-18T00:00:00+0000" + } + { + "id": 3, + "judul": "Supernatural", + "penyanyi": "NewJeans", + "tanggalRilis": "2024-10-18T00:00:00+0000" + } +] +``` + +## _Fetch_ Data dari _Web Service_ pada Flutter + +Pada saat pengembangan aplikasi, ada kalanya kita perlu mengambil data eksternal dari luar aplikasi kita (Internet) untuk ditampilkan di aplikasi kita. Tutorial ini bertujuan untuk memahami cara melakukan _fetching data_ dari sebuah _web service_ pada Flutter. + +Secara umum terdapat beberapa langkah ketika ingin menampilkan data dari _web service_ lain ke aplikasi Flutter, yaitu: + +1. Menambahkan dependensi `http` ke proyek; dependensi ini digunakan untuk bertukar HTTP _request_. + +2. Membuat model sesuai dengan respons dari data yang berasal dari _web service_ tersebut. + +3. Membuat _http request_ ke _web service_ menggunakan dependensi `http`. + +4. Mengkonversikan objek yang didapatkan dari _web service_ ke model yang telah kita buat di langkah kedua. + +5. Menampilkan data yang telah dikonversi ke aplikasi dengan `FutureBuilder`. + +Penjelasan lebih lanjut dapat dibaca pada [tautan ini](http://docs.flutter.dev/cookbook/networking/fetch-data#5-display-the-data). + +## State Management Dasar menggunakan Provider + +`Provider` adalah sebuah pembungkus di sekitar `InheritedWidget` agar `InheritedWidget` lebih mudah digunakan dan lebih dapat digunakan kembali. `InheritedWidget` sendiri adalah kelas dasar untuk widget Flutter yang secara efisien menyebarkan informasi ke widget lainnya yang berada pada satu _tree_. + +Manfaat menggunakan `Provider` adalah sebagai berikut. + +- Mengalokasikan _resource_ menjadi lebih sederhana. +- _Lazy-loading_. +- Mengurangi _boilerplate_ tiap kali membuat _class_ baru. +- Didukung oleh Flutter Devtool sehingga `provider` dapat dilacak dari Devtool. +- Peningkatan skalabilitas untuk _class_ yang memanfaatkan mekanisme _listen_ yang dibangun secara kompleks. + +Untuk mengetahui `provider` secara lebih lanjut, silakan buka [halaman _package_ Provider](http://pub.dev/packages/provider). + +## Tutorial: Integrasi Autentikasi Django-Flutter + +### CATATAN + +Untuk saat ini, apabila kamu mengikuti langkah-langkah berikutnya sampai selesai, integrasi antara Flutter **dengan PWS belum bisa dilakukan**. Hal ini terkait dengan PWS yang masih belum bersifat _secure_ (masih `http://`, belum `https://`). Oleh karena itu, untuk tutorial ini, kalian dipersilakan untuk bereksperimen menggunakan _local host_ saja atau platform _deployment_ lain yang sudah _secure_. + +### Setup Autentikasi pada Django untuk Flutter + +Ikuti langkah-langkah berikut untuk melakukan integrasi sistem autentikasi pada **Django**. + +1. Buatlah `django-app` bernama `authentication` pada project Django yang telah kamu buat sebelumnya. + +2. Tambahkan `authentication` ke `INSTALLED_APPS` pada _main project_ `settings.py` aplikasi Django kamu. + + :::tip + Apabila kamu lupa cara untuk langkah 1 dan 2, coba baca lagi Tutorial 1. + ::: + +3. Jalankan perintah `pip install django-cors-headers` untuk menginstal _library_ yang dibutuhkan. Jangan lupa untuk **menyalakan _virtual environment_ Python** terlebih dahulu. **Jangan lupa juga untuk menambahkan `django-cors-headers` ke `requirements.txt`**. + +4. Tambahkan `corsheaders` ke `INSTALLED_APPS` pada _main project_ `settings.py` aplikasi Django kamu. + +5. Tambahkan `corsheaders.middleware.CorsMiddleware` ke `MIDDLEWARE` pada _main project_ `settings.py` aplikasi Django kamu. + +6. Tambahkan beberapa variabel berikut ini pada _main project_ `settings.py` aplikasi Django kamu. + + ```python + ... + CORS_ALLOW_ALL_ORIGINS = True + CORS_ALLOW_CREDENTIALS = True + CSRF_COOKIE_SECURE = True + SESSION_COOKIE_SECURE = True + CSRF_COOKIE_SAMESITE = 'None' + SESSION_COOKIE_SAMESITE = 'None' + ... + ``` + +7. Buatlah sebuah metode _view_ untuk login pada `authentication/views.py`. + + ```python + from django.contrib.auth import authenticate, login as auth_login + from django.http import JsonResponse + from django.views.decorators.csrf import csrf_exempt + + @csrf_exempt + def login(request): + username = request.POST['username'] + password = request.POST['password'] + user = authenticate(username=username, password=password) + if user is not None: + if user.is_active: + auth_login(request, user) + # Status login sukses. + return JsonResponse({ + "username": user.username, + "status": True, + "message": "Login sukses!" + # Tambahkan data lainnya jika ingin mengirim data ke Flutter. + }, status=200) + else: + return JsonResponse({ + "status": False, + "message": "Login gagal, akun dinonaktifkan." + }, status=401) + + else: + return JsonResponse({ + "status": False, + "message": "Login gagal, periksa kembali email atau kata sandi." + }, status=401) + ``` + +8. Buat _file_ `urls.py` pada folder `authentication` dan tambahkan URL _routing_ terhadap fungsi yang sudah dibuat dengan _endpoint_ `login/`. + + ```python + from django.urls import path + from authentication.views import login + + app_name = 'authentication' + + urlpatterns = [ + path('login/', login, name='login'), + ] + ``` + +9. Terakhir, tambahkan `path('auth/', include('authentication.urls')),` pada file `mental_health_tracker/urls.py`. + +### Integrasi Sistem Autentikasi pada Flutter + +Untuk memudahkan pembuatan sistem autentikasi, tim asisten dosen telah membuatkan _package_ Flutter yang dapat dipakai untuk melakukan kontak dengan _web service_ Django (termasuk operasi `GET` dan `POST`). + +_Package_ dapat diakses melalui tautan berikut: [pbp_django_auth](http://pub.dev/packages/pbp_django_auth) + +Ikuti langkah-langkah berikut untuk melakukan integrasi sistem autentikasi pada **Flutter**. + +1. Instal _package_ yang telah disediakan oleh tim asisten dosen dengan menjalankan perintah berikut di Terminal. Jalankan pada direktori _root_ dari proyek Flutter kamu. + + ```bash + flutter pub add provider + flutter pub add pbp_django_auth + ``` + +2. Untuk menggunakan _package_ tersebut, kamu perlu memodifikasi _root widget_ untuk menyediakan `CookieRequest` _library_ ke semua _child widgets_ dengan menggunakan `Provider`. + + Sebagai contoh, jika aplikasimu pada berkas `main.dart` sebelumnya seperti ini: + + ```dart + class MyApp extends StatelessWidget { + const MyApp({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Mental Health Tracker', + theme: ThemeData( + useMaterial3: true, + colorScheme: ColorScheme.fromSwatch( + primarySwatch: Colors.deepPurple, + ).copyWith(secondary: Colors.deepPurple[400]), + ), + home: MyHomePage(), + ); + } + } + ``` + + Ubahlah menjadi: + + ```dart + class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + return Provider( + create: (_) { + CookieRequest request = CookieRequest(); + return request; + }, + child: MaterialApp( + title: 'Mental Health Tracker', + theme: ThemeData( + useMaterial3: true, + colorScheme: ColorScheme.fromSwatch( + primarySwatch: Colors.deepPurple, + ).copyWith(secondary: Colors.deepPurple[400]), + ), + home: MyHomePage(), + ), + ); + } + } + ``` + + Hal ini akan membuat objek `Provider` baru yang akan membagikan _instance_ `CookieRequest` dengan semua komponen yang ada di aplikasi. + + :::note + Jangan lupa untuk menambahkan `import 'package:pbp_django_auth/pbp_django_auth.dart';` pada bagian atas berkas + ::: + +3. Buatlah berkas baru pada folder `screens` dengan nama `login.dart`. + +4. Isilah berkas `login.dart` dengan kode berikut. + + ```dart + import 'package:mental_health_tracker/screens/menu.dart'; + import 'package:flutter/material.dart'; + import 'package:pbp_django_auth/pbp_django_auth.dart'; + import 'package:provider/provider.dart'; + // TODO: Import halaman RegisterPage jika sudah dibuat + + void main() { + runApp(const LoginApp()); + } + + class LoginApp extends StatelessWidget { + const LoginApp({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Login', + theme: ThemeData( + useMaterial3: true, + colorScheme: ColorScheme.fromSwatch( + primarySwatch: Colors.deepPurple, + ).copyWith(secondary: Colors.deepPurple[400]), + ), + home: const LoginPage(), + ); + } + } + + class LoginPage extends StatefulWidget { + const LoginPage({super.key}); + + @override + State createState() => _LoginPageState(); + } + + class _LoginPageState extends State { + final TextEditingController _usernameController = TextEditingController(); + final TextEditingController _passwordController = TextEditingController(); + + @override + Widget build(BuildContext context) { + final request = context.watch(); + + return Scaffold( + appBar: AppBar( + title: const Text('Login'), + ), + body: Center( + child: SingleChildScrollView( + padding: const EdgeInsets.all(16.0), + child: Card( + elevation: 8, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12.0), + ), + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Text( + 'Login', + style: TextStyle( + fontSize: 24.0, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 30.0), + TextField( + controller: _usernameController, + decoration: const InputDecoration( + labelText: 'Username', + hintText: 'Enter your username', + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(12.0)), + ), + contentPadding: + EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), + ), + ), + const SizedBox(height: 12.0), + TextField( + controller: _passwordController, + decoration: const InputDecoration( + labelText: 'Password', + hintText: 'Enter your password', + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(12.0)), + ), + contentPadding: + EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), + ), + obscureText: true, + ), + const SizedBox(height: 24.0), + ElevatedButton( + onPressed: () async { + String username = _usernameController.text; + String password = _passwordController.text; + + // Cek kredensial + // TODO: Ganti URL dan jangan lupa tambahkan trailing slash (/) di akhir URL! + // Untuk menyambungkan Android emulator dengan Django pada localhost, + // gunakan URL http://10.0.2.2/ + final response = await request + .login("http://[APP_URL_KAMU]/auth/login/", { + 'username': username, + 'password': password, + }); + + if (request.loggedIn) { + String message = response['message']; + String uname = response['username']; + if (context.mounted) { + Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (context) => MyHomePage()), + ); + ScaffoldMessenger.of(context) + ..hideCurrentSnackBar() + ..showSnackBar( + SnackBar( + content: + Text("$message Selamat datang, $uname.")), + ); + } + } else { + if (context.mounted) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('Login Gagal'), + content: Text(response['message']), + actions: [ + TextButton( + child: const Text('OK'), + onPressed: () { + Navigator.pop(context); + }, + ), + ], + ), + ); + } + } + }, + style: ElevatedButton.styleFrom( + foregroundColor: Colors.white, + minimumSize: Size(double.infinity, 50), + backgroundColor: Theme.of(context).colorScheme.primary, + padding: const EdgeInsets.symmetric(vertical: 16.0), + ), + child: const Text('Login'), + ), + const SizedBox(height: 36.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const RegisterPage()), + ); + }, + child: Text( + 'Don\'t have an account? Register', + style: TextStyle( + color: Theme.of(context).colorScheme.primary, + fontSize: 16.0, + ), + ), + ), + ], + ), + ), + ), + ), + ), + ); + } + } + ``` + +5. Pada _file_ `main.dart`, pada Widget `MaterialApp(...)`, ubah `home: MyHomePage()` menjadi `home: const LoginPage()` + +6. Pada langkah ini, kamu akan menambahkan fungsi register pada proyek kamu. Sebelum itu, kamu harus memodifikasi modul `authentication` pada proyek Django yang kamu kerjakan sebelumnya. Tambahkan metode view berikut pada `authentication/views.py` yang sudah kamu buat. + +```python +from django.contrib.auth.models import User +import json + +... + +@csrf_exempt +def register(request): + if request.method == 'POST': + data = json.loads(request.body) + username = data['username'] + password1 = data['password1'] + password2 = data['password2'] + + # Check if the passwords match + if password1 != password2: + return JsonResponse({ + "status": False, + "message": "Passwords do not match." + }, status=400) + + # Check if the username is already taken + if User.objects.filter(username=username).exists(): + return JsonResponse({ + "status": False, + "message": "Username already exists." + }, status=400) + + # Create the new user + user = User.objects.create_user(username=username, password=password1) + user.save() + + return JsonResponse({ + "username": user.username, + "status": 'success', + "message": "User created successfully!" + }, status=200) + + else: + return JsonResponse({ + "status": False, + "message": "Invalid request method." + }, status=400) + +``` + +7. Tambahkan _path_ baru pada `authentication/urls.py` dengan kode berikut + +```python +from authentication.views import login, register # Tambahkan register di baris ini +... +path('register/', register, name='register'), +``` + +8. Pada proyek Flutter, buatlah berkas baru pada folder `screens` dengan nama `register.dart`. + +9. Isilah berkas `register.dart` dengan kode berikut. + + ```dart + import 'dart:convert'; + import 'package:flutter/material.dart'; + import 'package:mental_health_tracker/screens/login.dart'; + import 'package:pbp_django_auth/pbp_django_auth.dart'; + import 'package:provider/provider.dart'; + + class RegisterPage extends StatefulWidget { + const RegisterPage({super.key}); + + @override + State createState() => _RegisterPageState(); + } + + class _RegisterPageState extends State { + final _usernameController = TextEditingController(); + final _passwordController = TextEditingController(); + final _confirmPasswordController = TextEditingController(); + + @override + Widget build(BuildContext context) { + final request = context.watch(); + return Scaffold( + appBar: AppBar( + title: const Text('Register'), + leading: IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: () { + Navigator.pop(context); + }, + ), + ), + body: Center( + child: SingleChildScrollView( + padding: const EdgeInsets.all(16.0), + child: Card( + elevation: 8, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12.0), + ), + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Text( + 'Register', + style: TextStyle( + fontSize: 24.0, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 30.0), + TextFormField( + controller: _usernameController, + decoration: const InputDecoration( + labelText: 'Username', + hintText: 'Enter your username', + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(12.0)), + ), + contentPadding: + EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter your username'; + } + return null; + }, + ), + const SizedBox(height: 12.0), + TextFormField( + controller: _passwordController, + decoration: const InputDecoration( + labelText: 'Password', + hintText: 'Enter your password', + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(12.0)), + ), + contentPadding: + EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), + ), + obscureText: true, + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter your password'; + } + return null; + }, + ), + const SizedBox(height: 12.0), + TextFormField( + controller: _confirmPasswordController, + decoration: const InputDecoration( + labelText: 'Confirm Password', + hintText: 'Confirm your password', + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(12.0)), + ), + contentPadding: + EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), + ), + obscureText: true, + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please confirm your password'; + } + return null; + }, + ), + const SizedBox(height: 24.0), + ElevatedButton( + onPressed: () async { + String username = _usernameController.text; + String password1 = _passwordController.text; + String password2 = _confirmPasswordController.text; + + // Cek kredensial + // TODO: Ganti URL dan jangan lupa tambahkan trailing slash (/) di akhir URL! + // Untuk menyambungkan Android emulator dengan Django pada localhost, + // gunakan URL http://10.0.2.2/ + final response = await request.postJson( + "http://[APP_URL_KAMU]/auth/register/", + jsonEncode({ + "username": username, + "password1": password1, + "password2": password2, + })); + if (context.mounted) { + if (response['status'] == 'success') { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Successfully registered!'), + ), + ); + Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (context) => const LoginPage()), + ); + } else { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Failed to register!'), + ), + ); + } + } + }, + style: ElevatedButton.styleFrom( + foregroundColor: Colors.white, + minimumSize: Size(double.infinity, 50), + backgroundColor: Theme.of(context).colorScheme.primary, + padding: const EdgeInsets.symmetric(vertical: 16.0), + ), + child: const Text('Register'), + ), + ], + ), + ), + ), + ), + ), + ); + } + } + ``` + +8. Jalankan aplikasi Flutter kamu dan cobalah untuk login. + +## Pembuatan Model Kustom + +Dalam membuat model yang menyesuaikan dengan data JSON, kita dapat memanfaatkan website [Quicktype](http://app.quicktype.io/) dengan tahapan sebagai berikut. + +1. Bukalah _endpoint_ `JSON` yang sudah kamu buat sebelumnya pada tutorial 2. + +2. Salinlah data `JSON` dan buka situs web [Quicktype](http://app.quicktype.io/). + +3. Pada situs web Quicktype, ubahlah _setup name_ menjadi `MoodEntry`, _source type_ menjadi `JSON`, dan _language_ menjadi `Dart`. + +4. Tempel data JSON yang telah disalin sebelumnya ke dalam _textbox_ yang tersedia pada Quicktype. + +5. Klik pilihan `Copy Code` pada Quicktype. + + Berikut adalah contoh hasilnya. + + ![Contoh Quicktype](/img/8-quicktype-example.png) + +Setelah mendapatkan kode model melalui Quicktype, buka kembali proyek Flutter dan buatlah folder baru `models/` pada subdirektori `lib/`. Buatlah file baru pada folder tersebut dengan nama `mood_entry.dart`, dan tempel kode yang sudah disalin dari Quicktype. + +## Penerapan Fetch Data dari Django Untuk Ditampilkan ke Flutter + +### Menambahkan Dependensi HTTP + +Untuk melakukan perintah _HTTP request_, kita membutuhkan _package_ tambahan yakni _package_ [http](http://pub.dev/packages/http). + +1. Lakukan `flutter pub add http` pada terminal proyek Flutter untuk menambahkan _package_ `http`. + +2. Pada file `android/app/src/main/AndroidManifest.xml`, tambahkan kode berikut untuk memperbolehkan akses Internet pada aplikasi Flutter yang sedang dibuat. + + ```xml + ... + + ... + + + + ... + ``` + +### Melakukan Fetch Data dari Django + +1. Buatlah berkas baru pada direktori `lib/screens` dengan nama `list_moodentry.dart`. + +2. Pada berkas `list_moodentry.dart`, impor _library_ yang dibutuhkan. Ubahlah [APP_NAME] sesuai dengan nama proyek Flutter yang kalian buat. + + ```dart + import 'package:flutter/material.dart'; + import 'package:[APP_NAME]/models/moodentry.dart'; + ... + ``` + +3. Salinlah potongan kode berikut dan _paste_ pada `list_moodentry.dart`. Jangan lupa untuk mengimpor file atau modul yang diperlukan. + + ```dart + ... + import 'package:[APP_NAME]/widgets/left_drawer.dart'; + + class MoodEntryPage extends StatefulWidget { + const MoodEntryPage({super.key}); + + @override + State createState() => _MoodEntryPageState(); + } + + class _MoodEntryPageState extends State { + Future> fetchMood(CookieRequest request) async { + // TODO: Ganti URL dan jangan lupa tambahkan trailing slash (/) di akhir URL! + final response = await request.get('http://[URL_APP_KAMU]/json/'); + + // Melakukan decode response menjadi bentuk json + var data = response; + + // Melakukan konversi data json menjadi object MoodEntry + List listMood = []; + for (var d in data) { + if (d != null) { + listMood.add(MoodEntry.fromJson(d)); + } + } + return listMood; + } + } + + @override + Widget build(BuildContext context) { + final request = context.watch(); + return Scaffold( + appBar: AppBar( + title: const Text('Mood Entry List'), + ), + drawer: const LeftDrawer(), + body: FutureBuilder( + future: fetchMood(request), + builder: (context, AsyncSnapshot snapshot) { + if (snapshot.data == null) { + return const Center(child: CircularProgressIndicator()); + } else { + if (!snapshot.hasData) { + return const Column( + children: [ + Text( + 'Belum ada data mood pada mental health tracker.', + style: TextStyle(fontSize: 20, color: Color(0xff59A5D8)), + ), + SizedBox(height: 8), + ], + ); + } else { + return ListView.builder( + itemCount: snapshot.data!.length, + itemBuilder: (_, index) => Container( + margin: + const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + padding: const EdgeInsets.all(20.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "${snapshot.data![index].fields.mood}", + style: const TextStyle( + fontSize: 18.0, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 10), + Text("${snapshot.data![index].fields.feelings}"), + const SizedBox(height: 10), + Text("${snapshot.data![index].fields.moodIntensity}"), + const SizedBox(height: 10), + Text("${snapshot.data![index].fields.time}") + ], + ), + ), + ); + } + } + }, + ), + ); + } + } + ``` + +4. Tambahkan halaman `list_moodentry.dart` ke `widgets/left_drawer.dart` dengan menambahkan kode berikut. + + ```dart + // Kode ListTile Menu + ... + ListTile( + leading: const Icon(Icons.add_reaction_rounded), + title: const Text('Daftar Mood'), + onTap: () { + // Route menu ke halaman mood + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const MoodEntryPage()), + ); + }, + ), + ... + ``` + +5. Ubah fungsi tombol `Lihat Mood` pada halaman utama agar mengarahkan ke halaman `MoodPage`. Kamu dapat melakukan _redirection_ dengan menambahkan `else if` setelah kode `if(...){...}` di bagian akhir `onTap: () { }` yang ada pada file `widgets/mood_card.dart` + + ```dart + ... + else if (item.name == "Lihat Mood") { + Navigator.push(context, + MaterialPageRoute( + builder: (context) => const MoodEntryPage() + ), + ); + } + ... + ``` + +6. Impor _file_ yang dibutuhkan saat menambahkan `MoodEntryPage` ke `left_drawer.dart` dan `tracker_card.dart`. + +7. Jalankan aplikasi dan cobalah untuk menambahkan beberapa `MoodEntry` di situs web kamu. Kemudian, coba lihat hasilnya melalui halaman `Daftar Mood` yang baru saja kamu buat di aplikasi Flutter + +## Integrasi Form Flutter Dengan Layanan Django + +Langkah-langkah berikut akan dilakukan pada kode proyek **Django**. + +1. Buatlah sebuah fungsi _view_ baru pada `main/views.py` aplikasi Django kamu dengan potongan kode berikut. Jangan lupa juga untuk menambahkan import-import yang diperlukan pada bagian atas kode. + + ```python + from django.views.decorators.csrf import csrf_exempt + import json + from django.http import JsonResponse + ... + @csrf_exempt + def create_mood_flutter(request): + if request.method == 'POST': + + data = json.loads(request.body) + new_mood = MoodEntry.objects.create( + user=request.user, + mood=data["mood"], + mood_intensity=int(data["mood_intensity"]), + feelings=data["feelings"] + ) + + new_mood.save() + + return JsonResponse({"status": "success"}, status=200) + else: + return JsonResponse({"status": "error"}, status=401) + ``` + +2. Tambahkan _path_ baru pada `main/urls.py` dengan kode berikut. + + ```python + path('create-flutter/', create_mood_flutter, name='create_mood_flutter'), + ``` + +3. Jalankan ulang (dan _deploy_ ulang) aplikasi kamu. Apabila kamu telah men-_deploy_ aplikasimu, maka data akun dan mood akan hilang setelah di-_redeploy_. + +Langkah-langkah berikut akan dilakukan pada kode proyek **Flutter**. + +1. Hubungkan halaman `moodentry_form.dart` dengan `CookieRequest` dengan menambahkan baris kode berikut. + + ```dart + ... + @override + Widget build(BuildContext context) { + final request = context.watch(); + + return Scaffold( + ... + ``` + +2. Ubahlah perintah pada `onPressed: ()` _button_ tambah menjadi kode berikut. + + ```dart + ... + onPressed: () async { + if (_formKey.currentState!.validate()) { + // Kirim ke Django dan tunggu respons + // TODO: Ganti URL dan jangan lupa tambahkan trailing slash (/) di akhir URL! + final response = await request.postJson( + "http://[URL_APP_KAMU]/create-flutter/", + jsonEncode({ + 'mood': _mood, + 'mood_intensity': _moodIntensity.toString(), + 'feelings': _feelings, + // TODO: Sesuaikan field data sesuai dengan aplikasimu + }), + ); + if (context.mounted) { + if (response['status'] == 'success') { + ScaffoldMessenger.of(context) + .showSnackBar(const SnackBar( + content: Text("Mood baru berhasil disimpan!"), + )); + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => MyHomePage()), + ); + } else { + ScaffoldMessenger.of(context) + .showSnackBar(const SnackBar( + content: + Text("Terdapat kesalahan, silakan coba lagi."), + )); + } + } + } + }, + ... + ``` + +3. Lakukan _quick fix_ pada baris-baris yang bermasalah untuk mengimpor _file_ yang dibutuhkan. + +4. Jalankan ulang aplikasi dan coba untuk menambahkan transaksi baru dari aplikasi Flutter kamu. + +## Implementasi Fitur Logout + +Langkah-langkah berikut akan dilakukan pada kode proyek Django. + +1. Buatlah sebuah metode _view_ untuk logout pada `authentication/views.py`. + + ```python + from django.contrib.auth import logout as auth_logout + ... + @csrf_exempt + def logout(request): + username = request.user.username + + try: + auth_logout(request) + return JsonResponse({ + "username": username, + "status": True, + "message": "Logout berhasil!" + }, status=200) + except: + return JsonResponse({ + "status": False, + "message": "Logout gagal." + }, status=401) + ``` + +2. Tambahkan _path_ baru pada `authentication/urls.py` dengan kode berikut. + + ```python + from authentication.views import logout + ... + path('logout/', logout, name='logout'), + ``` + +Langkah-langkah berikut akan dilakukan pada kode proyek Flutter. + +1. Buka _file_ `lib/widgets/mood_card.dart` dan tambahkan potongan kode berikut. Selesaikan masalah impor _library_ setelah menambahkan potongan kode ke dalam _file_ tersebut. + + ```dart + ... + @override + Widget build(BuildContext context) { + final request = context.watch(); + return Material( + ... + ``` + +2. Ubahlah perintah `onTap: () {...}` pada widget `Inkwell` menjadi `onTap: () async {...}` agar widget `Inkwell` dapat melakukan proses logout secara asinkronus. + +3. Tambahkan kode berikut ke dalam `async {...}` di bagian akhir: + + ```dart + ... + // statement if sebelumnya + // tambahkan else if baru seperti di bawah ini + else if (item.name == "Logout") { + final response = await request.logout( + // TODO: Ganti URL dan jangan lupa tambahkan trailing slash (/) di akhir URL! + "http://[APP_URL_KAMU]/auth/logout/"); + String message = response["message"]; + if (context.mounted) { + if (response['status']) { + String uname = response["username"]; + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text("$message Sampai jumpa, $uname."), + )); + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const LoginPage()), + ); + } else { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(message), + ), + ); + } + } + } + ... + ``` + +4. Jalankan ulang aplikasi dan coba untuk lakukan logout. + +## Akhir Kata + +Selamat! Kamu telah menyelesaikan Tutorial 8! Semoga dengan tutorial ini, kalian dapat memahami mengenai _model_, _fetch_ data, _state management_ dasar, dan integrasi Django-Flutter dengan baik. 😄 + +1. Pelajari dan pahami kembali kode yang sudah kamu tuliskan di atas dengan baik. **Jangan lupa untuk menyelesaikan semua TODO yang ada!** + +:::tip +Jangan lupa juga untuk menjalankan `flutter analyze` untuk melihat apakah ada bagian kode kamu yang dapat dioptimisasi. +::: + +2. Lakukan `add`, `commit` dan `push` untuk memperbarui repositori GitHub. + + ```shell + git add . + git commit -m "" + git push -u origin + ``` + + - Ubah `` sesuai dengan keinginan. Contoh: `git commit -m "tutorial 8 selesai"`. + - Ubah `` sesuai dengan nama branch utamamu. Contoh: `git push -u origin main` atau `git push -u origin master`. + +## Referensi Tambahan + +- [Fetch Data From the Internet](http://docs.flutter.dev/cookbook/networking/fetch-data) +- [How to create models in Flutter Dart](http://thegrowingdeveloper.org/coding-blog/how-to-create-models-in-flutter-dart) +- [Simple app state management | Flutter](http://docs.flutter.dev/development/data-and-backend/state-mgmt/simple) +- [Flutter State Management with Provider](http://blog.devgenius.io/flutter-state-management-with-provider-5a57eca108f1) +- [Pengenalan State Management Flutter dan Jenis-jenisnya](http://caraguna.com/pengenalan-state-management-flutter/) + +## Kontributor + +- Abbilhaidar Farras Zulfikar +- Clarence Grady +- Fernando Valentino Sitinjak +- Reyhan Zada Virgiwibowo + +## Credits + +Tutorial ini dikembangkan berdasarkan [PBP Genap 2024](http://github.com/pbp-fasilkom-ui/genap-2024) yang ditulis oleh Tim Pengajar Pemrograman Berbasis Platform 2024. Segala tutorial serta instruksi yang dicantumkan pada repositori ini dirancang sedemikian rupa sehingga mahasiswa yang sedang mengambil mata kuliah Pemrograman Berbasis Platform dapat menyelesaikan tutorial saat sesi lab berlangsung. +utorial ini dikembangkan berdasarkan [PBP Genap 2024](http://github.com/pbp-fasilkom-ui/genap-2024) yang ditulis oleh Tim Pengajar Pemrograman Berbasis Platform 2024. Segala tutorial serta instruksi yang dicantumkan pada repositori ini dirancang sedemikian rupa sehingga mahasiswa yang sedang mengambil mata kuliah Pemrograman Berbasis Platform dapat menyelesaikan tutorial saat sesi lab berlangsung. diff --git a/i18n/en/docusaurus-plugin-content-docs-assignments/current/individual/assignment-9.md b/i18n/en/docusaurus-plugin-content-docs-assignments/current/individual/assignment-9.md new file mode 100644 index 0000000..fd6aba3 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs-assignments/current/individual/assignment-9.md @@ -0,0 +1,45 @@ +--- +sidebar_label: Assignment 9 +sidebar_position: 9 +Path: assignment/individual/assignment-9 +--- + +# Assignment 9: Integrating Django Web Service with Flutter Application + +Platform-Based Programming (CSGE602022) — organized by the Faculty of Computer Science, University of Indonesia, Odd Semester 2024/2025 + +--- + +## Assignment Description + +In this assignment, you will integrate the Django services you have created in previous assignments with the Flutter application you created earlier. + +The checklist for this assignment is as follows: + +- [ ] Ensure the deployment of your Django project is running smoothly. +For issues related to PWS, which cannot yet be integrated with Flutter, the Teaching Assistant Team will provide further information later. In the meantime, you are allowed to perform integration on localhost only. +- [ ] Implement the registration feature in the Flutter project. +- [ ] Create a login page in the Flutter project. +- [ ] Integrate the Django authentication system with the Flutter project. +- [ ] Create a custom model according to your Django application project. +- [ ] Create a page containing a list of all items available at the `JSON` endpoint in Django that you have deployed. + - [ ] Display the `name`, `price`, and `description` of each item on this page. +- [ ] Create a detail page for each item listed on the Product list page. + - [ ] This page can be accessed by tapping on any item on the Product list page. + - [ ] Display all attributes of your item model on this page. + - [ ] Add a button to return to the item list page. +- [ ] Filter the item list page to display only items associated with the currently logged-in user. +- [ ] Answer the following questions in the `README.md` in the root folder (please modify the `README.md` you previously created; add subheadings for each assignment): + - [ ] Explain why we need to create a model to retrieve or send JSON data. Will an error occur if we don't create a model first? + - [ ] Explain the function of the http library that you implemented for this task. + - [ ] Explain the function of `CookieRequest` and why it’s necessary to share the `CookieRequest` instance with all components in the Flutter app. + - [ ] Explain the mechanism of data transmission, from input to display in Flutter. + - [ ] Explain the authentication mechanism from login, register, to logout. Start from inputting account data in Flutter to Django’s completion of the authentication process and display of the menu in Flutter. + - [ ] Explain how you implement the checklist above step by step! (not just following the tutorial). +- [ ] Perform `add`-`commit`-`push` to GitHub. + +## Deadline + +The deadline for Assignment 9 is **Wednesday, 20th November 2024, at 12:00 PM**. + +The teaching assistants will check the last commit of the lab assignment repository, so you do not need to submit the repository link separately. diff --git a/i18n/en/docusaurus-plugin-content-docs/current/tutorial-8.md b/i18n/en/docusaurus-plugin-content-docs/current/tutorial-8.md new file mode 100644 index 0000000..5744f45 --- /dev/null +++ b/i18n/en/docusaurus-plugin-content-docs/current/tutorial-8.md @@ -0,0 +1,1185 @@ +--- +sidebar_label: Tutorial 8 +sidebar_position: 10 +Path: docs/tutorial-8 +--- + +# Tutorial 8: Flutter Networking, Authentication, and Integration + +Platform-Based Programming (CSGE602022) — organized by the Faculty of Computer Science, University of Indonesia, Odd Semester 2024/2025 + +--- + +## Learning Objectives + +After completing this tutorial, students are expected to: + +- Understand the structure and creation of models in Flutter. +- Understand how to fetch, process, and display data from web services. +- Understand basic state management using Provider in Flutter. +- Able to authenticate with the Django web service with the Flutter application. + +## Model in Flutter + +In this tutorial, we will call a web service and display the results on the Flutter page we created. However, before making the web service call, we need to define the model we use for the web service call. In Flutter, models are defined using a class, similar to what has been learned in the OOP section of Programming Foundations 2. + +:::tip +The code below is just an example. However, we highly recommend you to read it because the concepts will be used in the following sections. +::: + +Here is an example of class in Flutter. + +```dart +class Song { + Song({ + this.id, + this.title, + this.artist, + this.releaseDate, + }); + + int id; + String title; + String artist; + DateTime releaseDate; +} +``` + +:::warning +If you encounter errors while creating the class, add the `required` keyword to each class parameter in the constructor section. +::: + +So far, we have successfully created the class. Next, we will add some codes to form a `Song` model. This `Song` model represents the response from the web service call. + +Import `dart:convert` at the top of the file. + +```dart +import 'dart:convert'; +... +``` + +In the `Song` class, add the following code. + +```dart +factory Song.fromJson(Map json) => Song( + id: json["id"], + title: json["title"], + artist: json["artist"], + releaseDate: json["releaseDate"], +); + +Map toJson() => { + "id": id, + "title": title, + "artist": artist, + "releaseDate": releaseDate, +}; +``` + +Add the following code outside the `Song` class. + +```dart +Song songFromJson(String str) => Song.fromJson(json.decode(str)); +String songToJson(Song data) => json.encode(data.toJson()); +``` + +The final code will look like this. It will display a single `Song` object from the web service. + +```dart +import 'dart:convert'; + +Song songFromJson(String str) => Song.fromJson(json.decode(str)); +String songToJson(Song data) => json.encode(data.toJson()); + +class Song { + Song({ + this.id, + this.title, + this.artist, + this.releaseDate, + }); + + int id; + String title; + String artist; + String releaseDate; + + factory Song.fromJson(Map json) => Song( + id: json["id"], + title: json["title"], + artist: json["artist"], + releaseDate: json["releaseDate"], + ); + + Map toJson() => { + "id": id, + "title": title, + "artist": artist, + "releaseDate": releaseDate, + }; +} +``` +### Explanation + +There are additional codes such as the `toJson` and `fromJson` methods inside the `Song` class. This is because when we make a request to a web service with the **GET** method, we usually receive the result in the form of JSON. Therefore, we need to convert the data with the `fromJson` method so that Flutter recognizes this JSON as an object of the `Song` class. Additionally, there is also the `toJson` method, which will be used when sending data to the web service (such as **POST** or **PUT**). + +Here is an example response from a web service with the **GET** method that can be converted into the `Song` model. + +```json +{ + "id": 1, + "title": "APT.", + "artist": "Rosé & Bruno Mars", + "releaseDate": "2024-10-18T00:00:00+0000" +} +``` + +Now, what if the response from the web service consists of a collection of JSON objects? It is actually the same as the code above, but with some modifications to the `songFromJson` and `songToJson` methods. + +The code is as follows. + +```dart +List songsFromJson(String str) => List.from(json.decode(str).map((song) => Song.fromJson(song))); + +String songsToJson(List data) => json.encode(List.from(data.map((song) => song.toJson()))); +``` + +Here is an example response from a web service with the **GET** method that can be converted into the `Song` model. + +```json +[ + { + "id": 1, + "title": "APT.", + "artist": "Rosé & Bruno Mars", + "releaseDate": "2024-10-18T21:39:14+0200" + }, + { + "id": 2, + "title": "Espresso", + "artist": "Sabrina Carpenter", + "releaseDate": "2024-10-18T00:00:00+0000" + } + { + "id": 3, + "title": "Supernatural", + "artist": "NewJeans", + "releaseDate": "2024-10-18T00:00:00+0000" + } +] +``` + +## Fetching Data from Web Service in Flutter + +During application development, there are times when we need to fetch external data from outside our application (the Internet) to display in our application. This tutorial aims to understand how to fetch data from a web service in Flutter. + +In general, there are several steps when you want to display data from another web service to a Flutter application, namely: + +1. Add the `http` dependency to the project; this dependency is used for exchanging HTTP requests. + +2. Create a model according to the response from the data originating from that web service. + +3. Make an HTTP request to the web service using the `http` dependency. + +4. Convert the object obtained from the web service to the model we created in step two. + +5. Display the converted data to the application using `FutureBuilder`. + +For further explanation, you can read the details [here](http://docs.flutter.dev/cookbook/networking/fetch-data#5-display-the-data). + +## Basic State Management using Provider + +`Provider` is a wrapper around `InheritedWidget` to make `InheritedWidget` easier to use and more reusable. `InheritedWidget` itself is the basic class for Flutter widgets that efficiently spread information to other widgets in one tree. + +The benefits of using `provider` are as follows: + +- Allocating resources becomes simpler. +- Lazy-loading. +- Reducing boilerplate every time a new class is created. +- Supported by Flutter Devtools so that `provider` can be tracked from Devtool. +- Scalability improvement for classes that utilize complex built-in listening mechanisms. + +For more information about `provider`, please visit the [Provider package page](http://pub.dev/packages/provider). + +## Tutorial: Django-Flutter Authentication Integration + +### NOTES + +For now, if you follow the steps to completion, integration between Flutter and PWS cannot be achieved yet. This is due to PWS still being insecure (using `http://`, not `https://`). Therefore, for this tutorial, you are welcome to experiment using only localhost or another deployment platform that is already secure. + +### Set Up Authentication in Django for Flutter + +Follow the steps below to integrate the authentication system in **Django**. + +1. Create a `django-app` named `authentication` in your Django project you created earlier. + +2. Add `authentication` to `INSTALLED_APPS` in the main project `settings.py` file of your Django application. + + :::tip + If you forgot how to perform steps 1 and 2, you can read Tutorial 1 again. + ::: + +3. Run the command `pip install django-cors-headers` to install the required library. Don't forget to **enable the Python virtual environment** prior. **Don't forget to add `django-cors-headers` to `requirements.txt` as well.** + +4. Add `corsheaders` to `INSTALLED_APPS` in the main project `settings.py` file of your Django application. + +5. Add `corsheaders.middleware.CorsMiddleware` to `MIDDLEWARE` in the main project `settings.py` file of your Django application. + +6. Add the following variables to the main project `settings.py` file of your Django application. + + ```python + CORS_ALLOW_ALL_ORIGINS = True + CORS_ALLOW_CREDENTIALS = True + CSRF_COOKIE_SECURE = True + SESSION_COOKIE_SECURE = True + CSRF_COOKIE_SAMESITE = 'None' + SESSION_COOKIE_SAMESITE = 'None' + ``` + +7. Create a view method for login in `authentication/views.py`. + + ```python + from django.contrib.auth import authenticate, login as auth_login + from django.http import JsonResponse + from django.views.decorators.csrf import csrf_exempt + + @csrf_exempt + def login(request): + username = request.POST['username'] + password = request.POST['password'] + user = authenticate(username=username, password=password) + if user is not None: + if user.is_active: + auth_login(request, user) + # Successful login status. + return JsonResponse({ + "username": user.username, + "status": True, + "message": "Login successful!" + # Add other data if you want to send data to Flutter. + }, status=200) + else: + return JsonResponse({ + "status": False, + "message": "Login failed, account disabled." + }, status=401) + + else: + return JsonResponse({ + "status": False, + "message": "Login failed, check email or password again." + }, status=401) + ``` + +8. Create a `urls.py` file in the `authentication` folder and add URL routing to the function created with the `login/` endpoint. + + ```python + from django.urls import path + from authentication.views import login + + app_name = 'authentication' + + urlpatterns = [ + path('login/', login, name='login'), + ] + ``` + +9. Finally, add `path('auth/', include('authentication.urls'))`, to the `shopping_list/urls.py` file. + +### Integrate Authentication System in Flutter + +To facilitate the creation of the authentication system, the teaching assistant team has created a Flutter package that can be used to contact the Django web service (including `GET` and `POST` operations). + +The package can be accessed via the following link: [pbp_django_auth](http://pub.dev/packages/pbp_django_auth) + +Follow the steps below to integrate the authentication system into **Flutter**. + +1. Install the package provided by the teaching assistant team by running the following commands in the Terminal. + + ```bash + flutter pub add provider + flutter pub add pbp_django_auth + ``` + +2. To use the package, you need to modify the root widget to provide the `CookieRequest` library to all child widgets using `Provider`. + + For example, if your application was like this before: + + ```dart + class MyApp extends StatelessWidget { + const MyApp({Key? key}) : super(key: key); + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Mental Health Tracker', + theme: ThemeData( + useMaterial3: true, + colorScheme: ColorScheme.fromSwatch( + primarySwatch: Colors.deepPurple, + ).copyWith(secondary: Colors.deepPurple[400]), + ), + home: MyHomePage(), + ); + } + } + ``` + + Change it to: + + ```dart + class MyApp extends StatelessWidget { + const MyApp({super.key}); + + @override + Widget build(BuildContext context) { + return Provider( + create: (_) { + CookieRequest request = CookieRequest(); + return request; + }, + child: MaterialApp( + title: 'Mental Health Tracker', + theme: ThemeData( + useMaterial3: true, + colorScheme: ColorScheme.fromSwatch( + primarySwatch: Colors.deepPurple, + ).copyWith(secondary: Colors.deepPurple[400]), + ), + home: MyHomePage(), + ), + ); + } + } + ``` + + This will create a new `Provider` object that will share an instance of `CookieRequest` with all components in the application. + + :::note + Don't forget to add `import 'package:pbp_django_auth/pbp_django_auth.dart';` to the top of the file. + ::: + ` +3. Create a new file in the `screens` folder named `login.dart`. + +4. Fill the `login.dart` file with the following code. + + ```dart + import 'package:mental_health_tracker/screens/menu.dart'; + import 'package:flutter/material.dart'; + import 'package:pbp_django_auth/pbp_django_auth.dart'; + import 'package:provider/provider.dart'; + // TODO: Import RegisterPage later + + void main() { + runApp(const LoginApp()); + } + + class LoginApp extends StatelessWidget { + const LoginApp({super.key}); + + @override + Widget build(BuildContext context) { + return MaterialApp( + title: 'Login', + theme: ThemeData( + useMaterial3: true, + colorScheme: ColorScheme.fromSwatch( + primarySwatch: Colors.deepPurple, + ).copyWith(secondary: Colors.deepPurple[400]), + ), + home: const LoginPage(), + ); + } + } + + class LoginPage extends StatefulWidget { + const LoginPage({super.key}); + + @override + State createState() => _LoginPageState(); + } + + class _LoginPageState extends State { + final TextEditingController _usernameController = TextEditingController(); + final TextEditingController _passwordController = TextEditingController(); + + @override + Widget build(BuildContext context) { + final request = context.watch(); + + return Scaffold( + appBar: AppBar( + title: const Text('Login'), + ), + body: Center( + child: SingleChildScrollView( + padding: const EdgeInsets.all(16.0), + child: Card( + elevation: 8, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12.0), + ), + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Text( + 'Login', + style: TextStyle( + fontSize: 24.0, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 30.0), + TextField( + controller: _usernameController, + decoration: const InputDecoration( + labelText: 'Username', + hintText: 'Enter your username', + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(12.0)), + ), + contentPadding: + EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), + ), + ), + const SizedBox(height: 12.0), + TextField( + controller: _passwordController, + decoration: const InputDecoration( + labelText: 'Password', + hintText: 'Enter your password', + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(12.0)), + ), + contentPadding: + EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), + ), + obscureText: true, + ), + const SizedBox(height: 24.0), + ElevatedButton( + onPressed: () async { + String username = _usernameController.text; + String password = _passwordController.text; + + // Check credentials + // TODO: Change the URL and don't forget to add a trailing slash (/) at the end of the URL! + // To connect the Android emulator to Django on localhost, + // use the URL http://10.0.2.2/ + final response = await request + .login("http://[YOUR_APP_URL]/auth/login/", { + 'username': username, + 'password': password, + }); + + if (request.loggedIn) { + String message = response['message']; + String uname = response['username']; + if (context.mounted) { + Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (context) => MyHomePage()), + ); + ScaffoldMessenger.of(context) + ..hideCurrentSnackBar() + ..showSnackBar( + SnackBar( + content: + Text("$message Welcome, $uname.")), + ); + } + } else { + if (context.mounted) { + showDialog( + context: context, + builder: (context) => AlertDialog( + title: const Text('Login Failed'), + content: Text(response['message']), + actions: [ + TextButton( + child: const Text('OK'), + onPressed: () { + Navigator.pop(context); + }, + ), + ], + ), + ); + } + } + }, + style: ElevatedButton.styleFrom( + foregroundColor: Colors.white, + minimumSize: Size(double.infinity, 50), + backgroundColor: Theme.of(context).colorScheme.primary, + padding: const EdgeInsets.symmetric(vertical: 16.0), + ), + child: const Text('Login'), + ), + const SizedBox(height: 36.0), + GestureDetector( + onTap: () { + Navigator.push( + context, + MaterialPageRoute( + builder: (context) => const RegisterPage()), + ); + }, + child: Text( + 'Don\'t have an account? Register', + style: TextStyle( + color: Theme.of(context).colorScheme.primary, + fontSize: 16.0, + ), + ), + ), + ], + ), + ), + ), + ), + ), + ); + } + } + ``` + +5. In the `main.dart` file, in the `MaterialApp(...)` widget, change `home: MyHomePage()` to `home: LoginPage()`. + +6. In this step, you will implement a register function in your project. Before that, modify the `authentication` module on your Django project that you have made. Add another method in your views in `authentication/views.py` that you have already made. + +```python +from django.contrib.auth.models import User +import json + +... + +@csrf_exempt +def register(request): + if request.method == 'POST': + data = json.loads(request.body) + username = data['username'] + password1 = data['password1'] + password2 = data['password2'] + + # Check if the passwords match + if password1 != password2: + return JsonResponse({ + "status": False, + "message": "Passwords do not match." + }, status=400) + + # Check if the username is already taken + if User.objects.filter(username=username).exists(): + return JsonResponse({ + "status": False, + "message": "Username already exists." + }, status=400) + + # Create the new user + user = User.objects.create_user(username=username, password=password1) + user.save() + + return JsonResponse({ + "username": user.username, + "status": 'success', + "message": "User created successfully!" + }, status=200) + + else: + return JsonResponse({ + "status": False, + "message": "Invalid request method." + }, status=400) + +``` + +7. Add another _path_ in `authentication/urls.py`, modify it as follows + +```python +from authentication.views import login, register # add "register" to this line +... +path('register/', register, name='register'), +``` + +8. In your Flutter project, create another file in `screens` folder with the name `register.dart`. + +9. Fill the file `register.dart` as follows. + + ```dart + import 'dart:convert'; + import 'package:flutter/material.dart'; + import 'package:mental_health_tracker/screens/login.dart'; + import 'package:pbp_django_auth/pbp_django_auth.dart'; + import 'package:provider/provider.dart'; + + class RegisterPage extends StatefulWidget { + const RegisterPage({super.key}); + + @override + State createState() => _RegisterPageState(); + } + + class _RegisterPageState extends State { + final _usernameController = TextEditingController(); + final _passwordController = TextEditingController(); + final _confirmPasswordController = TextEditingController(); + + @override + Widget build(BuildContext context) { + final request = context.watch(); + return Scaffold( + appBar: AppBar( + title: const Text('Register'), + leading: IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: () { + Navigator.pop(context); + }, + ), + ), + body: Center( + child: SingleChildScrollView( + padding: const EdgeInsets.all(16.0), + child: Card( + elevation: 8, + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(12.0), + ), + child: Padding( + padding: const EdgeInsets.all(20.0), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + const Text( + 'Register', + style: TextStyle( + fontSize: 24.0, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 30.0), + TextFormField( + controller: _usernameController, + decoration: const InputDecoration( + labelText: 'Username', + hintText: 'Enter your username', + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(12.0)), + ), + contentPadding: + EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), + ), + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter your username'; + } + return null; + }, + ), + const SizedBox(height: 12.0), + TextFormField( + controller: _passwordController, + decoration: const InputDecoration( + labelText: 'Password', + hintText: 'Enter your password', + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(12.0)), + ), + contentPadding: + EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), + ), + obscureText: true, + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please enter your password'; + } + return null; + }, + ), + const SizedBox(height: 12.0), + TextFormField( + controller: _confirmPasswordController, + decoration: const InputDecoration( + labelText: 'Confirm Password', + hintText: 'Confirm your password', + border: OutlineInputBorder( + borderRadius: BorderRadius.all(Radius.circular(12.0)), + ), + contentPadding: + EdgeInsets.symmetric(horizontal: 12.0, vertical: 8.0), + ), + obscureText: true, + validator: (value) { + if (value == null || value.isEmpty) { + return 'Please confirm your password'; + } + return null; + }, + ), + const SizedBox(height: 24.0), + ElevatedButton( + onPressed: () async { + String username = _usernameController.text; + String password1 = _passwordController.text; + String password2 = _confirmPasswordController.text; + + // Check credentials + // TODO: Change the url, don't forget to add a slash (/) inthe end of the URL! + // To connect Android emulator with Django on localhost, + // use the URL http://10.0.2.2/ + final response = await request.postJson( + "http://[YOUR_APP_URL]/auth/register/", + jsonEncode({ + "username": username, + "password1": password1, + "password2": password2, + })); + if (context.mounted) { + if (response['status'] == 'success') { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Successfully registered!'), + ), + ); + Navigator.pushReplacement( + context, + MaterialPageRoute( + builder: (context) => const LoginPage()), + ); + } else { + ScaffoldMessenger.of(context).showSnackBar( + const SnackBar( + content: Text('Failed to register!'), + ), + ); + } + } + }, + style: ElevatedButton.styleFrom( + foregroundColor: Colors.white, + minimumSize: Size(double.infinity, 50), + backgroundColor: Theme.of(context).colorScheme.primary, + padding: const EdgeInsets.symmetric(vertical: 16.0), + ), + child: const Text('Register'), + ), + ], + ), + ), + ), + ), + ), + ); + } + } + ``` + +8. Run your Flutter application and try to login. + +## Custom Model Creation + +In creating a model that adapts to JSON data, we can use the [Quicktype](http://app.quicktype.io/) website with the following steps. + +1. Open the `JSON` endpoint you created earlier in tutorial 2. + +2. Copy the `JSON` data and open the [Quicktype](http://app.quicktype.io/) website. + +3. On the Quicktype website, change the _setup name_ to `MoodEntry`, _source type_ to `JSON`, and _language_ to `Dart`. + +4. Paste the previously copied `JSON` data into the textbox _textbox_ provided on Quicktype. + +5. Click the `Copy Code` on Quicktype. + + Here is an example result. + + ![Contoh Quicktype](/img/8-quicktype-example.png) + +After obtaining the model code through Quicktype, open the Flutter project again, create a new file under the `models/` folder in the subdirectory `lib/` with the name `mood_entry.dart`, and paste the copied code from Quicktype. + +## Fetch Data from Django and Show Data in the Flutter App + +### Add HTTP Dependency + +To create HTTP requests, we need the [http](http://pub.dev/packages/http) package. + +1. Run `flutter pub add http` in your Flutter project terminal to add the `http` package. + +2. In the file `android/app/src/main/AndroidManifest.xml`, add this code to allow your Flutter app to access the internet. + + ```xml + ... + + ... + + + + ... + ``` + +### Fetch Data from Django + +1. Create a new file in the `lib/screens` directory with name `list_moodentry.dart`. + +2. In the file `list_moodentry.dart`, import the necessary libraries. Change the [APP_NAME] to your Flutter project app name. + + ```dart + import 'package:flutter/material.dart'; + import 'package:[APP_NAME]/models/moodentry.dart'; + ... + ``` + +3. Copy and paste these lines of code `list_moodentry.dart`. Do not forget to import the necessary files. + + ```dart + ... + import 'package:[APP_NAME]/widgets/left_drawer.dart'; + + class MoodEntryPage extends StatefulWidget { + const MoodEntryPage({super.key}); + + @override + State createState() => _MoodEntryPageState(); + } + + class _MoodEntryPageState extends State { + Future> fetchMood(CookieRequest request) async { + // TODO: Don't forget to add the trailing slash (/) at the end of the URL! + final response = await request.get('http://[YOUR_APP_URL]/json/'); + + // Decoding the response into JSON + var data = response; + + // Convert json data to a MoodEntry object + List listMood = []; + for (var d in data) { + if (d != null) { + listMood.add(MoodEntry.fromJson(d)); + } + } + return listMood; + } + } + + @override + Widget build(BuildContext context) { + final request = context.watch(); + return Scaffold( + appBar: AppBar( + title: const Text('Mood Entry List'), + ), + drawer: const LeftDrawer(), + body: FutureBuilder( + future: fetchMood(request), + builder: (context, AsyncSnapshot snapshot) { + if (snapshot.data == null) { + return const Center(child: CircularProgressIndicator()); + } else { + if (!snapshot.hasData) { + return const Column( + children: [ + Text( + 'There is no mood data in mental health tracker.', + style: TextStyle(fontSize: 20, color: Color(0xff59A5D8)), + ), + SizedBox(height: 8), + ], + ); + } else { + return ListView.builder( + itemCount: snapshot.data!.length, + itemBuilder: (_, index) => Container( + margin: + const EdgeInsets.symmetric(horizontal: 16, vertical: 12), + padding: const EdgeInsets.all(20.0), + child: Column( + mainAxisAlignment: MainAxisAlignment.start, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "${snapshot.data![index].fields.mood}", + style: const TextStyle( + fontSize: 18.0, + fontWeight: FontWeight.bold, + ), + ), + const SizedBox(height: 10), + Text("${snapshot.data![index].fields.feelings}"), + const SizedBox(height: 10), + Text("${snapshot.data![index].fields.moodIntensity}"), + const SizedBox(height: 10), + Text("${snapshot.data![index].fields.time}") + ], + ), + ), + ); + } + } + }, + ), + ); + } + } + ``` + +4. Add the page `list_moodentry.dart` to `widgets/left_drawer.dart` with this code. + + ```dart + // ListTile Menu code + ... + ListTile( + leading: const Icon(Icons.add_reaction_rounded), + title: const Text('Mood List'), + onTap: () { + // Route to the mood page + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const MoodEntryPage()), + ); + }, + ), + ... + ``` + +5. Change the function of the `Lihat Mood` button in the main page to redirect the page to `MoodPage`. You can add the redirection by adding `else if` after the `if(...){...}` code at the end of the `onTap: () { }` code in the `widgets/mood_card.dart` file. + + ```dart + ... + else if (item.name == "View Mood") { + Navigator.push(context, + MaterialPageRoute( + builder: (context) => const MoodEntryPage() + ), + ); + } + ... + ``` + +6. Import the necessary files while adding the `MoodEntryPage` to the `left_drawer.dart` and `tracker_card.dart`. + +7. Run the app and try to add some `MoodEntry` in your website. Check the result in the new `Daftar Mood` page in Flutter. + +## Integrate Flutter Form with the Django Service + +Do these steps in your **Django** project. + +1. Create a new views function in the `main/views.py` in your Django project with this code. Don;t forget to add the necessary imports. + + ```python + from django.views.decorators.csrf import csrf_exempt + import json + from django.http import JsonResponse + ... + @csrf_exempt + def create_mood_flutter(request): + if request.method == 'POST': + + data = json.loads(request.body) + new_mood = MoodEntry.objects.create( + user=request.user, + mood=data["mood"], + mood_intensity=int(data["mood_intensity"]), + feelings=data["feelings"] + ) + + new_mood.save() + + return JsonResponse({"status": "success"}, status=200) + else: + return JsonResponse({"status": "error"}, status=401) + ``` + +2. Add new path in the `main/urls.py` file with this code. + + ```python + path('create-flutter/', create_mood_flutter, name='create_mood_flutter'), + ``` + +3. Rerun (and redeploy) your app. If you have deployed your app before, any data and transactions will be lost after the redeployment. + +Do these steps in your **Flutter** project. + +1. Connect the page `moodentry_form.dart` to `CookieRequest` by adding this code. + + ```dart + ... + @override + Widget build(BuildContext context) { + final request = context.watch(); + + return Scaffold( + ... + ``` + +2. change the `onPressed: ()` _button_ instructions as follows. + + ```dart + ... + onPressed: () async { + if (_formKey.currentState!.validate()) { + // Send request to Django and wait for the response + // TODO: Change the URL to your Django app's URL. Don't forget to add the trailing slash (/) if needed. + final response = await request.postJson( + "http://[YOUR_APP_URL]/create-flutter/", + jsonEncode({ + 'mood': _mood, + 'mood_intensity': _moodIntensity.toString(), + 'feelings': _feelings, + // TODO: Adjust the fields with your project + }), + ); + if (context.mounted) { + if (response['status'] == 'success') { + ScaffoldMessenger.of(context) + .showSnackBar(const SnackBar( + content: Text("New mood has saved successfully!"), + )); + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => MyHomePage()), + ); + } else { + ScaffoldMessenger.of(context) + .showSnackBar(const SnackBar( + content: + Text("Something went wrong, please try again."), + )); + } + } + } + }, + ... + ``` + +3. Do some quick fixes by importing the necessary files. + +4. Rerun your app and try add new transactions from your Flutter app. + +## Logout Feature Implementation + +Do these steps in your **Django** project. + +1. Add a new views method for logout in the `authentication/views.py`. + + ```python + from django.contrib.auth import logout as auth_logout + ... + @csrf_exempt + def logout(request): + username = request.user.username + + try: + auth_logout(request) + return JsonResponse({ + "username": username, + "status": True, + "message": "Logged out successfully!" + }, status=200) + except: + return JsonResponse({ + "status": False, + "message": "Logout failed." + }, status=401) + ``` + +2. Add a new path in the `authentication/urls.py` file. + + ```python + from authentication.views import logout + ... + path('logout/', logout, name='logout'), + ``` + +Do these steps in the **Flutter** project. + +1. Add this code to the `lib/widgets/mood_card.dart` file. Do not forget to resolve the import issues. after you add the follong lines of code. + + ```dart + ... + @override + Widget build(BuildContext context) { + final request = context.watch(); + return Material( + ... + ``` + +2. Change the `onTap: () {...}` for the widget `Inkwell` to `onTap: () async {...}` This allows the widget `Inkwell` do the logout process asynchronously. + +3. Add the following code into the `async {...}` in the last part: + + ```dart + ... + // previous if statement + // add the else if statement below + else if (item.name == "Logout") { + final response = await request.logout( + // TODO: Change the URL to your Django app's URL. Don't forget to add the trailing slash (/) if needed. + "http://[YOUR_APP_URL]/auth/logout/"); + String message = response["message"]; + if (context.mounted) { + if (response['status']) { + String uname = response["username"]; + ScaffoldMessenger.of(context).showSnackBar(SnackBar( + content: Text("$message Goodbye, $uname."), + )); + Navigator.pushReplacement( + context, + MaterialPageRoute(builder: (context) => const LoginPage()), + ); + } else { + ScaffoldMessenger.of(context).showSnackBar( + SnackBar( + content: Text(message), + ), + ); + } + } + } + ... + ``` + +4. Rerun the app and try to logout. + +## Closing + +Congratulations! You have completed the Tutorial 8! Hopefully with this tutorial, you can understand more about models, data fetching, basic state management, and Django-Flutter integration.😄 + +1. Read and understand the codes we listed above again. **Don't forget to complete the TODO!** + +:::tip +Don't forget to run `flutter analyze` to see if there are any optimizations that can be done. +::: + +2. Run the following commands to `add`, `commit`, and `push`: + + ```shell + git add . + git commit -m "" + git push -u origin + ``` + + - Replace `` with your desired message. For example: `git commit -m "tutorial 8 selesai"`. + - Replace `` with your main branch name. For example: `git push -u origin main` or `git push -u origin master`. + +## Additional References + +- [Fetch Data From the Internet](http://docs.flutter.dev/cookbook/networking/fetch-data) +- [How to create models in Flutter Dart](http://thegrowingdeveloper.org/coding-blog/how-to-create-models-in-flutter-dart) +- [Simple app state management | Flutter](http://docs.flutter.dev/development/data-and-backend/state-mgmt/simple) +- [Flutter State Management with Provider](http://blog.devgenius.io/flutter-state-management-with-provider-5a57eca108f1) +- [Pengenalan State Management Flutter dan Jenis-jenisnya](http://caraguna.com/pengenalan-state-management-flutter/) + +## Contributors + +- Abbilhaidar Farras Zulfikar +- Clarence Grady +- Fernando Valentino Sitinjak +- Reyhan Zada Virgiwibowo +- Muhammad Nabil Mu'afa & Alden Luthfi (EN Translation) + +## Credits + +This tutorial was developed based on [PBP Genap 2024](http://github.com/pbp-fasilkom-ui/genap-2024) written by the 2023 Platform-Based Programming Teaching Team. All tutorials and instructions included in this repository are designed so that students who are taking Platform-Based Programming courses can complete the tutorials during lab sessions. diff --git a/static/img/8-quicktype-example.png b/static/img/8-quicktype-example.png new file mode 100644 index 0000000000000000000000000000000000000000..b5693a96fe689434577ebaa42ab4fff0695f311d GIT binary patch literal 236131 zcmeGD_ghm<8#av65fCX-q<4@eHT2#)NGG8wH30;vMw)_vh|-IMj&uk;LAqGzMM?sM zs`Re(7WjDde!hJ_@4J84f54vONOG*nthHvYx#lY8oD*weq)krBNQ#4lL$0f%VTyx8 zEQ^Cfzvw!kcRn9~~P%9Gp8} z{`0}@@h)@5!MQHh)lfBmX1_g0qGI7Pul!3SpR;f=`b`AWgIIk|+Q;B2&W<$6lpiw@ zmLhV7n5=JyQkxU6CEm$l^-FoZ^fIL?7{CmDjH6<@hT`hBlzv^b>fZ>TsybgNclwRI z3>G>0-0m}dcu~I8d?LG+8=StD?FS88gR)AWMyEx-{&y+M^qK6@_@6QqVVUA*K4pRx zruuhzINlA*{-1^uRpt}Rv*HDLx&KqGG2w4RAUgmGhT#AEeyWFN%Yntc;=MNLdEyla zJLkU(rr`nW%YtcF*uj(-Gxb04>boA19md@`GA33H)8tQv# zBQ+GAm6mz```FcjQ4e1|A5*-PYANr92VeJQ$~#+?zEa$ao{cKTGkJGn&FxmjSOOs&$lB_}WLOsEoRwYh2HE7FiXeUN76e*^<9?J=dNQ81Jc+5u>@u zoHVJSG2z3AxOqW3%I$?&@BT_~b+ZXF9TbH;Nj_Jg%IpQ$voaGK)wwKD35({2;zYICSw^op$=_Fx%W$euer-kU_ zA_8i4R>fA+y53u*KT;HV=yc27t|_E9#K2s)`Zux{%6WnV;SY8ynd%!uo}ksukiV6=k}Y;G|&0%7a>#gd&g|Gsa+q{s&tksSX_ zcxFPmfI!iMGirgN#JkMG!Rw*j^TqIB@~?@=4)@7Io>_CCE>zaYp*;ds>L+%+_=LIB z)E$<|sCi!Y`(xJ(v9g_j%K9qmIpj;qrF>r}gkAG|ES0f0ei^mt?{Lw4)&Eox82qDo zUV72Kb9a4rnn-wd)}(q&BrV;s2IJt(GM8ZNoABP%@@A-sep~;0&EG<%0M9OCYk_ zsdcPTlB4I!80-C&KLGyx(O#e;;!Hw09vMY1yi4M{Yp{vFTf>YodwPd)&D`)L zp+?PHTcf9%ZY{TA*&a1nDNM(5MG`(ZJYkl_wxo&&E?{4Kvk{c`)E<=q3Xy;GeB=tF zSYf7b{H!e4ruFkX#v^;r2V zplV1W)dD{+v&Z|d3z-xE;c^BSCC-fIC$%q{8HTY*5`?qKQGdV$p(B(s^!0sI$xUm~ zL*rx#C+l%F>OGHb-NLbV{S{LfyR|wb*%;#p!jzem7(4H5C*;E05g~$SR{M2L+GMZJ z{U=CIGYA%n!XvVIC=_f3_|eCeVmdfBczs%;(;=8|$<(Q-eKeCc-@`u!zLjr+6qmkl zD~|W_Z_0Jw8Z|X;mZ}mZYtzryB;s0sT$|g&uKKY2i2vp2keeXB`2HCt`M~qY&`B)( z)4O|P)$RRvU4Wm2wthlwg#}S#&X{x1?!+ojkKx8VF_U*QsCDxAmuKVwk5v*>%weWU zv$*(U0XzZeoud7AGy;oC`h<$W{UY|FCm+3xi(gJFOhMkOPUst+Qg>TR8W#yMm`qbB zJJ9TP-+7L%E9Ntzu^Zj*8WqeyoFrd~q!Dx9v!@^A3K(}(H6nQ+oM{4s(M*k^fvv_o@l!$3L^pCV{43cbrZl^xC)bXj}HuH%e(ZsPmX zxzf{}`JLWY;H!KoFR>lQ-P{;vx0=|M?tSx-t9!G<^n^U$PSpcT(!F`E^^`im2awCP zK@zysAl44AQSGs>{aEaWTbN(PNQZZiR&)JrQ(u%YE+ftw6Nj$5gU%2&JCceXf^C!4 zwPm`zJtmO%pp-+8Bugg)3KKn_v0K&ei3Nr{cCtF}R5>ktM03|3Z<2F-gh#Rs(>tIb z(6gFrwMwdIen8UaMOS2<3!Qh};^G>E`-9cB3mvio&r8eYd<~OvTMVX+1MQ6=b%?SG`(lg3%ZQthv?JerKlmS$_SHB^+(?0Rhb88f@bHfim zjNbf0rL7d+zNJ7V?&;+xc|4G1Ig_uifGrO}y6__xb? zmg8gf096mrLDt?~&^UQ_%RqccY^V`ro- z&xCpR_;#jVk*^tbjnCmHoSwKUxpR}F`AP|%Wpeg+I0 zs-hR3RWITk%EEK82MQ3YLv$P?N9T|Gf(G_){st0H-#N1l=rYqjzn!*{b&>>0IQnP3 z6?Q+eW9msOQZa(@`=?4K@B;9Ppt|LXM*;IA=c$_v*kE1dN4ZaSKQ`%8z@t?k+GJW< z3r5wWqYyy>o6&0*x5r=4l5_&2zApHCIs7?oqyNs?L(6;4C!7+nC9Onj2qj_B=B*WU$H!3 z+^So-WI$A}d_=V8A%{T|a*E9t#LNO!zF^bh{7yND13RO8 zHz2%!-m8wHldKg)Hijy$k+e#LJwWO>z*e!h(CH1KzKj_2a;X!dAtXnX6#{&LiavL+T1y5UiGvOT+ObC9W^ek-JSIR_G_l` z>S3qpWQy*L^hWu2NY&7~tjY|%>A{|N&z*HMgPw=SDOF9Kr5WFvA0KLaJn4z@!#rKD zUIm<7{Z_{y40-|D)!tt)h)GE0%#1RCrKX$v~*@N4Vtq(^d3SwW5gP4@=(Zv(D5Iw#wCVOq!bMN@0RWxRw(NwF7t8*KN={+9`hF`E{^Z}oCQ~;Ku6L%w+6vIq zi-UW4C52t*%l_QfV1iEWUhYu6err5k>aXGymwg_Y#w8ZgI_v|iZXRiRpQ>7LN)x?O zUs&2f-bm3*(`n;nt0A|JjqDDC;*(%;$9UPko)C2ukr^Dw@5-P=@)6l z=PXU8XU~&@gy?JqK!dB_zi z@ASAS7pS6gPSIM}%@rc|csdc(7$Fu(z+O!9Wt8R8B-$6Ae^d*!I-4&ICjX@Tqz%!3 zqPL|_{VGijp$M5Cqba1ZH>TLGq1|Noc|ndM{Sw^x0?I;|geS1=K}$fM}s`#AZVaP%}Z7nqRVA>9i^DNhp)UGjoAF@3^+S zD38K)w?p!J&uKC;zyQf23SIswspX9K5Fb5UE{kOL#_g1g7XKbT0k(I$i_fM_nSv-T zI~FK!gJZ+uXx1QcMuQZ+uv@?+YWOsA6&NEYG7`Lydes6_2vBQqX`^pB3Oeyh+YJe6= zoiNCblpd~s==fj@q9C~(*sHS%C0>eUEqRvC9PSo&Ey+VpyQ&Ha9!1lxM$L>2C{{ zy-czEcs%gr<*DHwQ{x#qbs}_Y9e4J0ZW735Q)dC<~D42U8yZt$B zN>It8)1Yf~eBCl3mkJ*)D~BQeeARx^GU|FJt6)g*tjcXuPdHDvpk8tfY>4;VbX+SQ zeh5Chz;6|RU8S-Qj@u|hplF$0-!KB?ardA-{vpqlfXgi_LYzq`>k_V$l4H816JLyo2?~h`a5GS4Z|>;r$Y{J6>qO0yWj@$Apx8xs zXhT>LW|I$WaK#SB{VIY-Z1Z(Ct-QULaYtJ* z1SdsW9s%db-)Kn9N(B~X?}JXYCQd$akZmNknmEZ5?0B=VJy(*$wK|ZF4c^$*4J0oA zwn6Iqpt)T2IB%PNTG@9eH5A(5t$m3!u2phdDtqvWe=P|*J}ka>zhSEtUgDwYg`cB% zh*|HBGywEjPU?;hRnWC&<8Q2uK-SWp-q9fkl>>xNMElm_m#Ngf_9T3B2Lj4Yngj)h z{YXmAD;6ZLi^FPSF;`b$Qbz7x8#|MS5lYmTV)usL>UpVfnG_NB9;%d5O;kKdbTPMz zGg^I`+Ky9N6<5_tuv_F>-sZjO9FD0>f_Ns3W>+Th?%l*~sQG<(2G`zD=Ro%F_HIXl zs* z0z5WIg@mw9Xu#;0uwQ_1A4`aV?mKa?mcjYf;BR1FqEEEkE+JpE(sM6J(8r z=Q!BDeYa+`v1hA|wn2hOe*`0|g+Pf|F2c`OTb;G;;zp3_hZerfY_lCCDM3%VTO{}z zL%0whiULa}AZJqB54JxZu_`!QnhmnQ%rZ7+Md67=dk^PM;Q5=jYCxh$NN)H3?!PZn zx$?+wOvtUSKSg{F6I&=~?T4xFYZqg=Y=m~oWPZpACX(IVx5v|nM78Mun$N|ox%3Q| zwvbV%dYN$D%Y}tKQ9rB5`E@cp-cJCNT~&ro5^UF& zW%ORQ2B`eUpBQmdHpooXJ9J@=zkm~QVu@!PL->b)XpLPqmvaw~_*oH1@b+eMlSgnu z@{4v``9b^xWHlQgi4l%2a@~rRXRT#;o$9LUpwHJk7PaF}d)HszuJ`6K zWYtM>^<+vpf<7L;%uaGGR^nKju1Tg< zM1fZRaEK`ELUMk&N{_?%&pIT zQ<+}%^hGI)xo5u1*8L~FJ{s7M^?@IMJ^tp;@OFd|`Uw_rw+jiYNL%S$V|hft1wV-a z^r@p4ygb-?*WjHqXk_m`q`&E(;3?el($i+9o7NLxwtjzuO`jC5CUp%WyRFpXByp7# ztRYyH411e$89eP-Z49xuIbpj`=-^gO2R0lhKRh0V0S^36KE+m+bPQGLvSp056?hM% z(;;??x?|v-EAYM({Y-}&6a}bad5+&;5m^)C#sm+Hg$K|n(`BPbDc~O3*@6$oASKNh zOGMtC%77%iizxgUF20}i)z?3-CUhg=Xsk}Cf3#2 zUw<~tvhoO3>VNt`NLaH|$_sJT&Akpbf)p-q4CMe*FoI*3d9N?POma0Bx3Alm0B;REf>|+|*i6MjtB(v38g5bHKY05Bz1b-!92FSDwa4)O3V8j+L|%RBdEKNm{Khl;l{R&Ua`E zUIJtq`@_;14b}FeWVe=3G=yab2IqvAlKzco>Jr&Oi;wWS0Fz0P5Zk zE9#Tn2%0=+oufgmzLa!pB^QO|XOtwda7>1QJXah@K3!LZE$9wGHoV6f5Z6Qgh;CRP z;tV@(E~%3^ZojA%VM7#*%X*MM+T>PA^zkhwmD<@KK!U_@stS5gH`b@kr%r8^j?Ev- z++9pvtcQQ96Pn3fnb3%D0&KN839?Q1%Ol?tTMYGGC4$jaP19(lM9DsVbY#Gy+0+dH z{-*$LTTQN}x}ZwvN)@l=(mntNV~kbRNj%n=?W-&6etQ3#vh%6C(d7m zw7SnXoIx{Fb;dQ|Q$(T+#@oxu#s_x62%L-2IdI0191vox`&dV`YEX-#zA6h!PGptz zdDZQ>$O${0g1Jg7q0mO|z0J6wP+x_gK!ykhkoUMhLJ@5SWXu3f>RTC%qGJx31hYHj z$NTLBGFxL+C9>t@`>_5dr*P|-;Bm9Mi=R-qXn<)`?m08BsftGpi4oT|DT$n(mn%tO zxc}09c(??ZQM$}f-Zm-ZL)6QP`iuvvZ4rd^`Pwy*(a6k)9cAnSso#Kdz?8mK+};w_7t(w^3ks}GiISPF3WKB8xdVDl z!6Kv+2k%99!RWOVDBQ@eeo&J*d~88h>-;B;Rs#Z%wCWh;FX1?BZ=dSw!xJruD5J1c0v(@EiGngK&cX~DypqFaelOI}my}XVNHg%MeRodaIcsXcDmPqWM zjgVddtHHuzy-KN2rIb|E+`G$G)~}bi(wqDi!V0Oy07ZVlObb#Rr6xfz_3Y;r`Z&ye zZIrtB{v?be6|ZI!lCSft{6Ul!^^1_J(%W#N1$+jk-#4j0Fi{^ynTAmkAtdh-?#S^u zha3@lQ?sY7jx#1t#3x?WJ`ZiB9@*9Hv4Sdl7^>;v{$ja-(?W|Fxj*s)l$`UVG*h@w z$AS_qDTQ!@f+O2Q9I}A<)Se2^9{efjmZC)j0nv1i!wSnJghF?x3v(Kdul~!iDOW%{ zV`*XYp02XrT?_kzGvj2mkV9-rlG}#WFKK13$P)~$RLq?%B{;IYqvU-C94?y@_rdCc z$6C|GYO3#jDCHwimks;{=y+OXFYuQ4f{h2-3_{opI~;ZQxMqwz#19fqI?!X~zBSVb z+>-uI`*!JmR}ct03?wt_F@w11?bHoHuCx4>!ydW!I$158+z$@48=R~rv{M9Gf%hAl zC2B~#jjG3UAuxj8BEr~i&b2q~!AS}#>=bwJE!&DK=Q+dRVbU%(2NigY@RuEcTYVro>2Yzg|kR)3d>Ju?dztG*Kf?tnxvQEdKo-2pUfr7zN z_3??9!e_Sot;@k4H)&eTY+dKXe#5d?Fr&E0Wcu<33;i&d@Q3N{M(MD6Ig}e40J$hA zvThC3Avewps(iOf>7l&K}ha%*{0njU9Ae1b8c_1Cq^BfWV=N&0Wo>p~PT{9qaM)b{1QNvawBc zb~vJ35nGcY+nZhj0wF)AvW9M>ebNryo|Au%NT+7M+BbJ`7*ngRL$AGU%kU==(6{%~ z3Y~Y$#$v})B@GhCjZ{Vz*m)2Ko`mlQ@qx#XV01KBmktQ`6D%UI`j$V69t2=#0gvVL z){E=_xC8-oc0=gE-k`pYJdY)C#3sZISh;&To#ndB6MSY{A}>Mt$9Fwk5{Ic(dKEMh z$at8QxhC?h74!Cydxiem{hnk&`m9*jXk)>Yw6ypabT0GmIn7-X)+?m3i)ud2D_zwl z8q99T`-B?Q{x#Q%XjDccojLT_CtDko6No!OdeOw!Zw)t(pP%2LT|EONP&{o29 zE8+!e5xIjXsU6y5iXLTYaaXk~->|wX%jRsi@`LBVukb2kUfYA~xvhY?1kQHmb_!xaZ5EbIrsGK5-0+}v@O1nyE%0c210%F0)RL5 zP=rU>zwM2XLp#YUJrq7(0M|2C5JJKW#f+d=XzFo4M$>`D2PeOvPjrBJ-d8KXzE4~P z{N3+@5uTu`M z93D}`3G$*ApkN9*aSL9^r#7O&VB-~N4)n7DFC&Ze4sbXw(-R;OOF0ZZk<=y?i`x>dH;I15eIm}=cJPsEe8$9EhstX2 zv4s*z+%Sco^cbZyRr~9LYf*T2v@|tN@Lg1*G{fzIOgTN z5=K#4d!flUN7g?$HE<|n@iAF|y*~N$N&Jkrt_fa=ZyUGCA%>j8x>$*+VmPzKXSKsM zQNWYl?bV)@GZXJfn&lcJ^^JXB&+dFu{}^S*Q3q1)N_=V9PUmF9$L>ooa?995JF-P;l5_ZRbEC!q+k_3mqw;PApB8JvHX%~n)u6+KiKqH z|FEQ2p5CK2gA_l5h+8)(`>e+{){Le68<^ER$?xl>LK0ZqSUu@euZTtNbNd`J>eMI2 zd)^Go0VR4_4c^4vSGB{th}qHqcMUAFZDOdeu#7v5NC&%`BIvVe*Jid}#T|pER7z%N z4(B4Ns_0SH@~2tZ8Ife0AzRZJrY|!AWqw<4_CtqfCtn>lUz{vWW16QYE4>aX0yeC>p~NyS-7a&JPE3Oj=r@(5Zb(VkyXo8} z9YSk33g%a7mri@RKMh#RM=lKfF0ov*i%gbE0-pDg2J12P$4d9DA}e)$+(S?8&RZ+E zMY$1DaD0v9)P<9>tA6toBRqTRdzHKLgPD_*@K^#IFTz6ZGQKSj0-s7UpME*mcB>_J`MB+Z3%6! zkWW)+y)cdVybtx*Z-(I|PzyB`w>YsoXRXM)gilp)KoY&g9i*qFkrCb9$GyHTHq?#M z>4JF~;P_SDzq~rgv%KhdkxGQ%O{zWd zq>eYLQ!q@au(MJRR)lo}jK}tBz9zj+l1iN+NcoBoVyRf!w?g^J86o-IWg29J51M<53s)EfxI^9)wE5E4 z-&?)4#a`;et>TtY73>v}{n?&!nDy*Ic>#F41{RTBe@8q4?$v-`W1j9jju<<}Dn5B|T&;Y5x@{f0yV0)f~XQ7?1U}#M;9n5-g zeYJD&ax050t9U{~*XK>-kmYrDe03aR6Kxoghak!AZ<(MWNMACwd#7(BQjXnp7q!W9 zSjoW<1^-Rf%YNwKA`jd7agB%)%J`jLr1T=*5)*HiKVhVzLM0G+R9jAM)zlT}h?YMX zddUbd^xm67ahmYGl;V2rQOSUT!3=X|!mYp6yD+G&X5?oS={kPTM#olJ2&+vup>sz2 zpIgw&NGz}}Arb=;9pREpo>)awCbLy(H;+(f=-6Hn{En{&%)wrtty1jvGz6dhA!$IAbwi^;1QBLy*nbySxAJ=zu`Q19wRz*bNOG+Z6 zH`E`^j*y-<-$rz;hnv9&(mU+D0Kr1IUg)X6ap7P6Zb1U{63uk-%_0(xrb9{zOp6mV zTf%DT{!OnQMbwN&WUE2uP*ykXvOEiqF=ID0q^o`@+109Vx_`6qKi~d49uw@PiTURL zi9zcfODE?2K}S@Pc9Z$`_7+*Cv|6k`#r{nJZc+N!C0!MALo)Zw{7&Jr6KYZ&-OY`C zphWlGsuJN=Iid;TmJz_MhF%1rJr0`U6OWo)tJqNQmWdBS9%f(#241gEScF^YLg?@Q zO9&6gSJEB6A4X)aa^K>KoLH2=vyCAWu_O@hR17vH^92Mt{ts#SHKSGv#s3n_sWMa8 z-9DW3{d;U08q2qdWdA)gugh#6CI0WDV6-Qy*p>nhH}C%+So0t0ZQCLQHF?fKf9K+# z@4}KHtlmR0J-zvJ%HnOm$Z<*MBO_+lTrD53Mvb{Dq-wIYEu8mz!3dV?=*O4FS&1 z&I&|k&m4POdjACssoWaIj{dYh8_&BcBL5lGd6DzCs}IMWsQwXG4-M-qyp!{W$=ufl zJ)mS`t7%XFJ=^SunEY=?ww(SgSI$D$mwzech0*@c#JY#K6R6mVHb?+{p9`C@qkBt+uv?0>PpNw3;;H*&|B zmz}3cWhM5U=0)!e=VIv<@bEAzzHdliiY%|IkcmoWdYZ z)G&VwsPa|3NO(SBPDCk&Qbe(iieR>BOgtR&<@q4e50AEZsCyy@x+yZ}_|?efomb6z zo=tYFSEo(%w0gv1`AB7-p^Cv{>ivEND)CkPqK$*S+zVXS6H5ov^mkt=ekMU!2)6G< zP>$T@uJZm0ss5u_8k4gB7!*b|8^-ji0UQM<%Db*qu62T5sK?Hqh{c?`ZHQc7_m(sc z0x&Y}+nj@U$RiS-{`?sHxzvr|ajCG{+s@pQBDmd~DslGH;WQoCy*tXGVI%QBUgw-~ zxCU8xzv=jzOb#s}AxgM4tNfL?2gzMmWBW&!3$^|^L-P>-J|_9~S5Cfjv?L7a#TKdi z96q4+Fg>Qx;_2&LfW{tiowC+o=BtmXw`nG1Kc+;!%0P)b0N)DHaPWDt7OuU5b*wd; zXtcKy$!Z-GxW0)m<@_m1M!AeuC zG-oU9pRc-5Z_eE(yQ*|YV)xG2-Jy@f98v;AN}DcPt^z_|vU6YGyBqn5Gr-=v4mD6p z=6+$B6YL7DT_8Jg>SG9Pp^X_KJ6LM-DUdr!ZHsy>I`+0eud`6IcP8(ZrniyWDOq>O zCNr#bIIfX7D>O&yc5|RmV{hbGDI|L$qKV7f4euu%Z0P#)eGL))SI)$Lt(DS0OS~co zs)PBcg+0I1<4=6?pE)3ByBn#sMg7}UV6{z#G-Wa@_U-3>O0BNq+uY%bBtL4n*;|KS z8WppX4P?C2{Hjcy^i(%NJe8K+|2YufBS4D8Y|Z#{1U7BUBC(T*EZs;e!eSwH*zD~5=;7-t zITElNnLvcCX4Iy2RZjEz8fG^LVrwv-YQN>ox^!9f`=gU=wY$d1Rg4d`Q%#QPzx zl<7kI%j~)KW3^y*mk$A~0WbBzuk+|Dj^T1AgZu1nNVh%Bc1Flz%Kdnbhh(i=l<}do z4h6#n4V!JJJ=PjE{pfK<6C0^yx&Z`N7bk^YUIi_-^2UIGv^f+WaU}Z`f~k$Px@V2x`+mj6vTy?`}VmYhZ~N8tgr zpS+b<-0Jk1!rlypht92ccpq;(LM&W9{{2J0JIr(j+k>)Ja%IM|UC$Y07Zs#1hLI>?I%NH?*i__^nu1Ud96R*5Rq1n>K?@79sA98&9O%U?T z+SoUivncFRlKKF3{C>^KYa#4~bvY0c`DHEY>}f7w;E*zEL8yok-2LluRe$KJ0@aiR z9a*k@f>+JvK^rVSHFl{Hn}K*xa1QJ|Vqe>m8C0sOR-H$$%|HKof_4)(n|7<5mgP9; zti4@#wW&hy=Gdhj>t5tW{n!8N{&Ol2)zC;DD-(_L_3h~9E0mCgE}4(aY@=6bud!C4 zIgkIL?Zc)3rw@7oMzQ*vqhy9*~*&?Dr!UPLQJbno$s`=4F#oW+Rr;Qxy zF#bq%I@{&ylLhknm6}8LICn<&+gl3<=a@_YZQ=E1> zOY6c!6q1$D3y1z#a|wy%3uz(ZI*(0z%~s8~QI8hU1lr&{cFN!ge9fkC7hBy;FAaQSeFFW5*EARj%+KdxoCgCn|Y5^tl6uT03XVpggK=<&>H8d_?OS3Tp{81GJ_6y)eV$$$~a0| zIIYDL5#58`=CQu%J6gyg;@g}0MCsm%9_pg5*EL7Y^eKo4 zFVw3;s-Lscx11PvdrV2HXkC_6I*wmP(_S){oFL!4Ib!y#Xt%P$cM?^HM6C*IEqj)W zWxj6w;A;3niZf4D%vzF1Qi?*|%x8LxV7+!9|hyxL` zUQ@i8a1RJmGBzfJ<9@#+!P4 zcA8r#gE1AqRBo!#3)|ZVII5xlK0gmUQ8(ekx`b{pn)BSVY7AxNq#Lf?r2qb{jjMLO z7*$dNj%!G43nVJMk|Ds_e`I@lYk{+RM*$$uiLO+%LjnAjt!nfFzk9-(;Ri;?femIPpBp0{zs#%eec zozQP9i}8DvK6F-zXa{9QJfsarEOUSjIrsZQAat6zJCGVr_@B7RLlHi@4r zLHYZd+IB4UDS{arhjgKQ91bAk*q2kL1&>uh_NcxyCJx&tNXi2!EeE-bh_%IBX*9Rh(3D1^ZhRKQ4zcG4lc1j z`71i92fcOj*Dq756(atK!hGSsfd!u?Sig26vjadj>DX7ooF96dw^`iLiYe@6VlF9J zAn(j=99mD^Ziwz4!yU5^_0^UyQg;?0HJ^i-7HXMh8cVbyMbED85o}?DU^MJ|g;!%~ zMGjxCmMG=Dc#uO`3AfTx`7XXnT9ABtJ#We;N>&-vg5-5T=p8;y`9Z>#M*o=g3}=hJ z>c+Pvr}XKRdnhL&X)Rn)xn%-lay>)J6m(^*Q-?L|%{;Nw-T)R?Lb;eJ0s(+*sje7Q;>K0AZxN zE4q|)iy$*x(}vZk*|8yKbp_vnp)x?;G2op*Z*~kJ`nTQ*4nc3cuwJ)bJBb5X2AbUl zGRnn_`_4Kp_mAyi?)iJD{9${q`j{3;qRf0#$!McjZ`r-c!%S=X&<|8xh=w=RVn=D; zbR^D;gap+BG0Ym*OZqgQh#yitj0b!H!SS5emdzz!+W7M`@sr&6>PnnnZ?v}WFENGu z_&{h?Uni$Xrb#_zvX#=LO!8YK;q&$varmz30!soz9uLQs^UDqSS0N*#p6>0DElud; z+Z+WYp^3kbuZdOo(TUFR;L-((z$T__9inx2wrHvhdj2_u{dMDLjtN#G;>6HPt*y@v=I5( z=f&KHE|`THZEcNFj0PEf$9rS5#p|?LA-T)|{pHU{*Y2xKr>j!8LGvjy* z{ThcCN>by2z6SE?uH~)nBGKmhilxJOZlQkjnSv2Bf7_J=D_3?KulFN~*Ig$^wwVl#60D5Wb2VtAhZ43y10y=mx(SqS#&>C#v5#`B~QYHgtK3)9MEy7 zk$s-Xn{dI30q(wr)w9K^9cg&<+@(C)RCBfwfQEJ;u2EgYOe&jXEK#mXca z@I09#?ie-SqkT&z1a3fAP>uF}=$#{G>vr1!1N*vA10kfm;vKBgDYePj-i!WlI%ftl zlz3H%Mduvv>OxY(W|&45Vxg^c;g^d}=;x$1@4UHyebco*{Y{16H-`sJZ^8w}en4Obl{PHQahRywmB&J?>l4zi*q=$(YmBL-8H1Uu26%OFdYMnPJ`laPfH z^SP$5_BAKpELrPRm(08zWs%#OI)?Y+%8?Kbkf%Cs^1^M+*|42=JVDB*&{d9_?^m+v zN14D*^7C_OH~U6fb4f|$R+;++vqoE%IpEif64CFj8Ol!C0pHf*z}?Tkt=WfYX9|^0 zevtXqt)if>6A~tqofU$1ZFc~FVNBtwzu=oW#h4WL&wF^3eoc|8xr5x?5W^WG_z6zw zm*-zOq4T6)DM()C)luy#{W{2daq3XYRcwSi40(3W;oNJ>Jp=+%Ez)$|wc^~^eVR7p zf;?0;8L<}1Oo=ag_}~_&0F{}g)7jiz%AZSS(Cx!Ln_si8l{lrpRG$q(ioOl2rFOD~ zY#!7IU0ZVx0VAezReyoYO99C*dRKIE@5TL!cb%zPOPDr8Ps)Dc=e(K`xGrDHUwJ2s z#x8kN;t~&H6LrxF(!9N&mM$*A_+#E;qy>{lpZogRV?grm!?U?=U%@l> z&AuaRafKrB1&i#`th!GVQ8jj54+p5+%zGbTqP-qKx~Ke3Ly9h+({UPF*q{Q5*%drV zOdYc0dWTC|O6g`JDdqKd?pE#`{kH4@?JRittyN$v`Tk(k4^!6aVc9_y%Io3NO#q*# z%1ZXXs60i4Nky)}1TA*5ul^sp{xYh~?fU|Si&NZ+yVF8(w-#-S7I$}d4^DAwaWC#t z+^x7naCdit1OhjlbAJE#y&rBqWn_#zw)b9Zues)&59{;2$lPHGG~LwC!0@g*WA=yM zd~W1nk^O2)$Jp$I;myfo&^O=e(4XKnhKigWHV}%xz3X0D(J3bJQN>nnyoWo5-5gQr zX`lKugb*psnMG`PnkuD+7yi;&opP_`5Oe%ND@g(1LN5hWfa%K*`6}dV?dM{Rj+Zsk8~)3RPan4Kws%9D z!Dz1Ptm_Tn%vu|dywjesrG9E1=X)L}crJ>R>{P=q(fn7nPZcp{M#RA}eb-lsd4$7O zPFsw^DqillCjHxvpLD`z==1?H4`W zz~pts-ZIq76X|rv1CEVZYdrF%qM&CO>f9gO1kJEWQ1ppz^BuaGT9q-{Pv8?$VQiW6 zHPkvqF63r;=^Tp6J=45hH1#ifVWt(?idci5crbBzWQ5;gqbmR|Q~*7?Z};1X#oGvDjMdqMnsxix{AAJ2bX|GnjAY%(N8tV0~Pc|msm zb$jfLtPOBdyDge)c15k5eA!@XcEV=xUGg{mDyni*bbC;HiELja(z-`&*U>Ht>oc3o zNSAzF4H2c-ZqN9gf-j5`Bv{YGB3*F4aKWBrD^xUQz7@+p^_|c!NYqD`VqT<^7l6K| zW!nM8#()V#cbS3Zv26P^B=hI;xa_QUi~^bKvG1yUg3-M=>HP`w zK55rbVa{-;`5{*uN#Et16U(qS5PN|d)BCRYM#GGt)D02`iot+wW z3Gvy~{22-mCHwpPiK9MC7khz$kY;J$s5dJjk&Zf-{zUOHfN*}EK+m@u`FKCn?M&Ta zZ{Nov+53AFQptM$*73R9W>{7*N$$l~Z{FktQj^CKvadi~5U1(sWI?(pc$E#l{oCEf zK%UdYTZx6!&j-Q7kE$VAz3i2KNE?j*c6=E`yR~tA$#H3^z)QBygvrr6QWtHqtF#$QdxH{dZCj?VK4yOZ|ZJO zRqMZBziZC3_NTF*%=Q;t;J@?=m(e+h`JoFQP6nn_AQN=lZF!@`hlDXClV7trj|3Kq)(Xog5%SK}s_{Dd9T zbP2^~&b@jD^m%+mB|o23@)(Bqw|=PG#rYhHw%_0!YGy@HhVjM7W8h>--&dRaV;p9M z<)Bkd?+arvzRfjh*i^gE)LQMkj?PTIxY! z>5<+Sw;#^8t-r3f5V0Vw6wY-MR17QCSav2HOKop{?r;#TMYV@K0Lq6|)*ETaj@@)6 zJL8@YW;wBRW9+)!k|uDlxdEY=c}??JXh#dgwoC4kog_buPZpNhZufo@0^7-iDtERQ z_-Dj9=m8h^2`@eV4Rn0*&kCb}a}t}GbAr?gL?e@I`GdI%+$-MGo|+|ie(mP%{qtl4 z-)SD3k%b7B$Eutez*LIRBmrCNxy^{;9p4>g)Y)<9+3B*u2xbxc^Y6EWd&iaa{%rf_ ziO2QzO$1UH2LU25nGT;;X)3gLXLrbz?#4d_k3c{^JbNz?{RO}ct-K3SSWN)bPo{^g z%&&YUP~Lql;L*E5yt`Yat??Q!2Z?`mwaQ3;c=_J%1&qDS$r;x&LKYG9y4IB7|0Cd`Qf!}2ZedKHKHNh@uqc2=iC7~JN$d~u`yvmURaS*sI= zRO^L9?=dzhpS|O8^md+|x8%=Zr~DKryS)bzAXA`tVnQXmGZ3K9`j=$=kn<2xNCs|b0DCstl}}|kP|QxW4OA0 zrJ0?*6XKow~2F2Z!KsrJ;TY~uU}E7wdVatsJ(gl zr!mRJ$$H1s9tYuFe_*yqZw98b2L;`qo;|DAc1|&WHDlD=a|v@!lH=5D8KauGW@>yP z#M-L@Ql`>INu7HfL!MWTrrOdSrrpxo`rEWj?Ls98dlcAjRh*%(P=*8|*ijK!y{6S` znWbRKSE%O2z1Su4{ydIB$d)gPc#A5*uzrhtFbUH^w$xJ=lBPm8s9EnYd$ZcrG5a2n zm&JG!s68V<6f#NRXz}>FwBAqvexp#2%m)7o2m8D8Mr`+H5Sz~@3N+*k=^`E{T$pe2 zcD>WQKWokjj|%*E|ZsjpBD zESXolIaCC}P{=d{W^@JXcZLmqQt@q=5l#V}upsj_qS`ZqNAV8oo7BGr5*e=oMSQ@~ zGi|Xr|7$#_1x5H59!B5l{Tv=1aS#!uP_M+Zgc)}Nbr_KYY>IuLrb_c9kr(;cZNLFL zyECnvT32g@`v!YVchDN%Ht@OR-li7K=^J{2bhannrmnU{$S^9dz&2AErFl_xxQEq> zqKmaHIJj^JWt_CrKdJp`L;3YNRX0%&TI$yR&D~IAeKW_fXsY^2RzhM-xocs7?YdIr zqDS)N`9`&EcEClUxRKI4(UT0#>FBOBZ2?V8t(t7-?}EnDZsn&>m_lw!>)Z;htR0m} z1&uyA0Ke8!Oq91YgC#5k|Nl2B5UG`+!T9% z=MM*-UPrJD!N(jq5>}Uk$r`Vb$DgTZURKjv58rYfm44iY#C{s2M|i zNn26s4wjH`Ct zI$=C(wwtRBWN^?Xy2=Nqm$=8U6@{G+>N|p&UarE!en?RV@MZP5XrkJv2(PfA-=7__ zY5k4+?Qzf>OSy|t^0v!o-UX-}>q+;#A?bQf^CLv~uGIM&MTRa}z%>K}8kGqdqQu^c~(#$yB@#UU9s7vIq}s9$>ODh>Iy_Z;ZRZ zVnsVA`gxkItBOSyeRIwPb6h9RQP8E-Y5mZDV0-IwuZ_r~ZS0-S+|MV+BA&5~n<1v_ zvA=ccAlf3EPfMGTpFa4Z5mLl-$-h6`p(-z)o@3rvHcWUfo%Z*?y-?cbG`}tL^Q542 zO6`qgcQf;gx~G&=DE^9%KXw}H%Q`BaRz|+?3LNKJXSsI&Q9EFMDXF>X)l|}n;;~&m zQietkD}^%#C;j-x$OlM&2FP38B2L=HjR6o%hO=)oqxFHg!l52sNh%tjg*mYJ5fvH6lBj!@_8 z%d+g{Al+!We)9Lks-IzuI=6=C-e&Y3!QrsmMtAT^8&)$-?fh^&pt<|~;b9^93hvgj zu}FjvR~T=vvB>}N2Grt2+}fBnUAntAy>)HmZ1xcaNLIfL&BS|pf#RYSQ$-qAM?`_r z_LJ*j>?3S%(pZiFOdNQaf;yzjP?L#e;S< z2}|ItTw@rUrLoD}@D9{v8zj)Jyq2`HU4$;^aF9cQxI!E(Zwp~F@nF5dI0&7*5WLuE z+C;W-#SWpXnEcZx`NVu(8jDUs6!7VMWbnc4gWHgkOW`@<_{n-O%U(MB0shL&YO7J^ z_{orTs9`tq$w}-cRnSzGv;rCmSI8{FYplJkjoi%|5!;JK-TTToufbc}Zt0PZkBEQ-tWRal;1esw*xi zt#XZ<8r%L@ae>8lYi&s`nXtIy(d5_N?0`M(m>H=;66-=9ZZfBKw8}-?=aM>A1yj8 zl|HgjG83)>+BbYbd_3*x0X8#uxDdU!?)LB)JPoR6(cKr;nt`~>KWlbcYnRGjqo|kT z9vUPO7iHdHQ(B+0_0id5d(BYMTpv9m?&`4WvM&|uudoPNFLM^*Kh&Q;V`>3^@(Dx6 z)FUDsHhUzYWxyg=JTxK4$Y+lSxog{dczLCP*SU_9YdgSuHcis5)1o~saB~QC>6cQ| zW+#H~2zr^|js8t>N8<^%CLagRHScZClh%AQ%T@9Kh^+Jcs;|#YGJN^M$9kHP0Y(k*c zcKv>B$ztwhM`6h0;n&zgrg|WcZ{g#(!OI-u_;Rf4*S8+MHfw-vKbsc)gnG%YH?Exr z`>{Oxvm7r;A=h9bZq747Pe!}b*lwrn<6|V9!M@lbdv)LJ@_9l1?SX9qDzY%E&yjsw=L%;$fElMuf#Lpp_|!!IvJq>pknSp(5eVMfVTZ#XpSfYQ?S~ z+@(ps{fFZf0E;iPz??3AjC9M6_m1M3D@v96xR1DAef8Z?yvFv$O!#$wR7uAx=Sv>D z{^sQQNwqDpl7W~!C4g5P;y^7-&gxfLgdH!A0=1OT=PzbPzpO2!#Ad&D*whJ4%aVJf z#QQbtNy5oOb}4=%@w)PJi3wq3E4nl(hVwTx(F?5j{GNs6GlzTqNf0fsq1QM&+mU^n zBSRp14+i)2uIgI%s39INWsKF*ztRM`+vM}uO5L?LMybkcF&uEd2fhCvp@dl{=x-G4 zYvX|(3aUUqA9F%PqPxsB0kdUP&@Ej2ih5nB%?^29(Jb#j4V=o)y?NxlkrSg`ZHL=z zIj(P=e8Gs1HLoQEg9p}|4m*HeQ9Fj0UwiNmbhZpOS$xHM&b}{TQK}i>*J)!BG zZzc$3DUKD-GhZ)M0=ngNnA4wk?&ieC*42L>n9jjLXK@G$2mH$voDJjzIHiH-Zn|&w z=V&S$votbCJqc@=u{(^_j35$o|I+C8q0g0QL~)A3+_HpcXFq#jNVy10$fTHu0&3Q( zYifEXHvds~vZI|9@Lp>Tv-nH8D zU!vioO+7y2*TlX_=xw?(+`ZFwPXgQ2C;dlh^HN@HG?Ps!%2I1D2fZEi$297X3i|Ic zJ4LCDk1o(dPs-q$ZCR|1{vX2+l+S4UHfawoz;FuLeJ9y{lbCri0j@5#JD9D7e0)8wA3?$ z^)#uO23$7dDDigp{}FF>8~=}Rf4W}&FT<6;jP#7I?`Xi3-wW~fbCJBS#qOe3dlfBJ zU%#(k{Q=5&#!&B+aVXH6H=*95L}_f_NoTWr75rg&S_HXo$Av=H&rW#D>o|ONC?gbm z1ZPvwjBZZBMED=W+0yo_E2q=DsyZVjwL-n*o zb%IA)4?A0h+q8VQfhV`wUY=Z@U0zgPRqo!-`0uilW~LX!*^t0i;-Ss$3jc5NyoL_* ze`m?})h`qoyQau!2SIM9KJ_12cS|k{g_1xCphVCdj?UyITiK?d}GGo}pf`@Qm&V^CL@ft}BTy=*PaER{87(8b$}U$f*xV zh1v=kfnc2GgLSB0o-%AEy;R(FlD1U3FXlHbPNJ8tf7^??LH`}zCMZJ-U7pvq)@F*> z!VnLu*^Vwe?7%DM`RQk8S3c3w&$27`6urEesBbrn?Gau6A_r?UlU$vnJ?sOdybJgH z+XD{F`&i$EwMyxcAwm*s8N>7ID(xz1Q+TH7S8xG`(-3D+oL^C7 zB#apJqctiPm@k|u0H1(-IYjRoo%QG5mIuHEz#LJdb}9i*QZW_PGAlM?uqs z*$~}l`7bA`S-y>`)N-$c=;maggTm#_jmnD^HVPEy;JPpncsXGoU*6;SzkluZbAOg+ zqA((YF6HJ3H~r1%km6=`?l8I+o+5VWZ?Ad)VGpBI6pt$1P(0y~N|^mygFcc8>i5*7 zpLx;P(HkWwkNnoVB7_NUQf>Ge;YJ92V~oMt@nG!-AFd>dS=_L&jGbIchCFDcwDWCt zT{)^6et^_@#lu)TinFmf`ZZ`0D|aXHr(~r3fQ1O_PN2jk@gX=ju< zjOu|YPCj0V-?w8LOy?tEO%)-x&UXYYcA^ao7Ksc5C_&)f@fh9O#u~v~^I$ipM5dKN zdGuBqF^EQddnv~Av8PilEjDK2d3-tg`ye6~3u;y(FD&bo6R8$)I{tUBXsH+7=S zxhR>FuV3aA8Gh{CHNFsRQL zNVHGNYkt9t#sW0a<&0-ky)yhwQ1QOs+^w(_kz_~+SL7!wfk<%niw;9I*l zF}Vbb?AJ5cisyoZMBlI*_ka?JP3WoEDUi`3rTF~XwFT0HOZ-xT??=&g_;G4R<+?+W zu7Q!%Cic%*F+WmEE_cdXI<43ijKYFs#CreX8KY3^8^?i`k|OxhABvsAw06@-<9;<@ zapM1=?qGt~j1EOU!MLOOT>~e`J^Z<6q+w2%BJCIs=V;+Ct#7zc)mx3{*56x-? zWeyxvpj;I*=7;A@pie_9AEqUfGn=O#BjWLZ?M3-z%99=S^!QS9_`YvAg1vlCnEUY^ zRZg9pOuTNn9+XNMdKld%-A>K+;%82^AdEQ_{wuw^`RjaiVAaLSjQ;N~V=ObjOYAMN z~R1Sd49lEe{-2 z*`ktR2d0aOLwyig8{M`MRhkgPi4Z=;YRH~d6seXWGm+qY_s9AhgFZJi7zb^>Dn-I{ zuGL;_uE>&l0Q~x@8C9}}GW=-i??B3|LfBkZ9HeNR^O0eeiN{_B!|=k1#B$F(<)h!k z8))i_!$=({IboQZ5o~-DO5=lq-3h46MlrunU4~uE{jzov$20N~f^ip>1y@{fvyZuFzP@DgJ!$IP2M?^xN8m25M05jgo%cKXx zqzyZAquXkYgyfp_4RtBzKe??|xe|eXM?Z#tugS6hmXDZ{yMGqSoe-;vmGqRZwKD6tcRk&k?Kj0K{M=Vsma}B;`0R6u4=u=buv{;cm}G7;bqu)m0pHU7(#kw(E!~? zs@+f%G?9cz;LoHmoAtM`_2>S`u}UZH8IjTr72S`j)X4;F_Sa^zoeuA)PJvIh+Ig;r zbme>WM^Y(y9k2&Vd$g;WvA)&aSc@(63?s3+GpTPV0gU>Gs5cgqXNdYbE1vrs5|Yycb7G>%=(q)Jxy`j# zDYI*yMZC8WRg-?u9dkg-lfS|IYAMMLR_y=M+6d#yw%)kOjMO53dIQ%54Kd{=h7U{J zR-}PV;n?%{!XoHQS6%plSa%D|5;r#iMc;`J4})?hHJH=zXN0Wsc^D}qR(W+%Q3}fC z6#4fA9G#H1#${Z)vle)GP_oy37?Rd}csqy%vC|>>EvIyCna;ypRhvir<^H2DGCuDL z_b_97Qa6R!73G$^tymjU_F%{DdzBd~-;ifsINq~X^XrU}xUpiyv=DI$f3pRGUB=fS zqJ|+_Ad=ST{#5quS+C=fPGefVIMvRKAipf`vE!ST9lL%w4!_8c_h7YpRuf;_&Xq{} zCoQ;;(2I*Ru+8#4-yhn3rp{Kf2yBd=jZKcVpw-2zTNvj1-tD7^qMIgy+LsF?<`j{o zliw4lgCCkvWq1py9;%>2rXTm`k~Qq-KHr>g%O~D41J$wA|HG|>*)HBNi20w4C#p{z=MoZ6m zh>{kM*JaM{Y}b@b^4<_Jy-F?q-lXn}V?)k}cNV>rIv7bx%9tOCkMI7K4UqOD7Tk3* z08sHwK1%FdTj^$zgf!I&Z73n)x8s*qtcT6x#M!p9B>#!Oxx|y`$g%Gor6OdvN5RkE zRpDZ__|1%ISvGnb&+I-<`?tU(r%Nw7Fc6LQV|wsK#JOU&C!oX{#bIWJ~hNd6_JnKQ0>{lwtl+N!rFr0{$~I}Dj-jIjI>JR@2JTGc4L8Z0FW<7#*bxlF0~ zX4@+A0fV()g9Si74F&1yFl7g51SBJuc)u1pGh&pOzV~Yr`KG8T0Jn)ajRkzUCqk+#&?kqc5V# z)W2%$ou#i%kr&kxc|7K5|Jt*Qnk50G6f0|i(!!sV-s zrCVOyI4bT9Xgt%j()zLb~%MS9?c5y=AB8Zue4R4`m&IrZRUM=VM zf)tN%4{JKbs2w6H>E@{wP!F`t%5cW)FKVr^2CuEVjj?d6tjCtGikL(?$6YO=NldVx z$`DD7sty>5C#_o7_AZ|SJq;_7_bXsA8#HeEp1P9@|BhNFTJ{^bQt*ltW$OQdoU5&w z+f*iZkl~M%SNbh!*)?W}E^*6cHy$a>KObtVLi{>HNijuoe}7-K+$OjQ*nDbh^fgHe$rN1x%S1rO|l zCv=bU3>pNjUELrUA2|cdx<-BP^+J3mho8pfA z2M)-!4wIg6^e_=){DDs9zsw*MCg?q^e}^ssn-hZp8k=)pA|{q4|H)JNy|bg2eYN|a zb=5oYmutE3US}+K!+DQOxf9BlQ)WRyoi!j!D2=XV(x~ScoUh=zMAAe=V=Wrw^W#C(;gBH zrp5kN@qS1U&hkHK-e&ifA^!7$7Z$;MChj7(CQNbJ_Pfn{KzaMCU?=UArU1Gye|BaC zU#OQNGNJ&V!!iWlUZxTaaxRA>gjBM`jV*AY$NQxP1m`WjLjWT@SXXb14c($vXBISw z`sy*}&R2eJsDVI*H=2TP*`+qR8FM~G!%Hr7WBv`OEz(jXEQ~FB}2si#Y5aAqmuTTQ8WBg>*!x+rKEa6lceZ7VGE6zbjVa8OZ!_zjV&+*sw z$H(H~5!3-SmZs#KW1~dgmv{ruvyutCg|`N?Qn%wFDPU>k4(=pvm6U+Lu>&+8SD9(% zzmhBA4jBJk$EWUFNaCnJeI%gvs&SONmdI~m_`>ejKWCCY-wcI~me?Kc1Ja01D$;+1 zJ#faQq!&@(y2=g8{f$xwx{kGBYMWP4^ekE@%mCZ(K;Mr9>{c=JTcj#p)k1ULlMg~= zj#s`^91RTCk2FpTrj66wRu`mi67ry0ua8)H@f1o z{{m4Z4I`F0TlRJSI(il?j=v%2B1byU2zGx=*nA3cUP!M+{ZPwe?6stRkOh#+9?`O1 zIVkI_J0|VuWJLPSO)ap1Y<_zX%m^_(b?N?rVaW1V>(Pu)A@w_2M?h)x%)M z+@mYks<8I>XCw=OY{2SyY>^Ro&NWHg3*&Ye)RF&YxvT+r#8FYNablVA2NV~HE-4Qx zSjGrgJ<&zKqg+17aGA%?AG*Kst3J5v9Iz=fJT#lZ_%d?;l|-G8e6+JDtkUp52t|Va zwH&>!!QY5Nli2NT*E=Avgcl&wk1^hEc~}-4Id-*hdR03G|NqoZ8Na!01p&;D(IsVJ zmR{@n9I~l7MRT;MC85_F^WOL(8R;b=>EU&u^cG`Q@1S*EUz>xz2LjD2c`@F1`sREI zGL4k7rYiU02`93{_I|6s{6-@GVN7gzYc}kck2?=cX%fU$hah{n3a%} z`Z?xL-%}#)F>&H`_rh~FW#TwGuQ->DjO8F)i}Cet<))O&geSm3VK=UKi^x6sp=#-1 zUvE>otsRZxQ`wdLc_MUO702@TU{LL>`DSDdPx|-KB_Ygk1mCcxN4WfU>T5G)#j!R`bEY_v)f)Nc>KytH-x8a}jld}%$j;y^@(cG+A1&?HC?Lw0L zFocW*VwHH9rPS0D2lR9UG!`#%Z5IlW;v=WcjF049pH|0Wf|jyd^)-HI_$lP@!J$IC zzLFUHZG_6o96*ujyONt&hU*F4@OuN-y|3L6Q37qC{OE%KM(wQUdjQ^eRzvfZ;9ixq zk3E1s-A0J?H@cgZ<8A?U{iIDh(6h!Q%#Hh#Q<|d=%VU&Iu_`JOZp}@#mUQPr1fcYE zUbM3RihUc4aZEbRQD8#N;mY^-E!2Af=KxjuZ(N#K2DV0iRpUdPS0iK#oI5rWpHn#| z0@+vBGoKZ(O|Qj4{ejdwP(Gbf40026(L+{{5V;LtS}%R<3hWFqx{xWRh2~PWF}K*!q2oQudRk<5EA56MFBW;}X~so;wc}li$eoDYiUAuJC;-T-Y>4a$}*x*_l7Rh3lrHp z<$;k^%wNwRT8MaGyx(fORY8t~To1 zR}DRvHUBz=P!`Ih1$3#P%iSyg3eTVIC5XT<-N}jmk`}pq}9p> zNtj(Y4E70@^!jF+Mica~pE2+JG;@E``ygi^iiOQhE4`fKV&pSnU%mBf_ulHk{=y%0 z(~)-xw14scyKBE$rjS(fd90{kpV<%H{x1X;d)0=y%4h}mPR^U$Py0%s;|mu+UgV|k zO8v5tfMNikh5A8N^sXziD!l{xT7Y9?o~(y7OHV)V>6^9S?PJH2DbDHlU6yRHnf(-Q zF)USkj;dY?$ruoK<%2LUveC}6mKWl0OFtw?mHpZVqT-7#$#Qs&_e<0G=20R8C+3q6 z6`B>gt|GVq)wl^xN$XHTzvoB%O|spm%V7O`G}*a8ApaoelE{qY-}1k?kJMN@%9>$Y zi~OXH@rAHUX_q3S48lSR`Hmeb9QhbOV zXVN+W29tV{5RQX+T}gGz24R%_C8@6{wJF(cWgUte9u=J~c*l8bX>tKPA=Nf4dcdzy zh5h^X8uxu{iO+Na$MFZxFKf)pdqKsaYAWPN|EIX)c)6sdJ^tJmCFhi>BGYy)J|i+a z@<$k|)7l$)SNJAaGI{}xd7bjNNj=6(D_V{C)BDa|!8b6ra#gy$nBSGv)GL#h)&{+e z>bl@md`pRMO3~{_55~Uyx~{6VH1~3gmU8j)Obp6!*7}JPb=kXvk{ra^sKtHd!-k+Q z0E92y4z$+}s3X{?Rsw%dfX~K~CASj*4_tv*+;73(yTh$jZ1LV5K$aeIBJE8PK{x+X zG5Quch)kq8@A-aTEOIfwUqo>Le*YY=msnQ7`qUP6sy4q^*&XI4_u^ma4*<4+|)=Elw6nQG1Nue~p~#xg()Elh<~qH@9PP0KD-L0K1x5zKl7nsz>U@ ze97R3VQ&~#N7^;2AA*k{0~6NF*@IVH{qtA5+%7+*kPz`_p6739O`5EfBB{10T4qI- zV<8V{=}})I0|jv>CK;oWcXv)J8533kiq-~b+x89Z7_)CXyxafXH|%`Aa4s}68dHVe z)1hS~{;rCG8?B{o#_inJPem``G)?T&)LqW^XoDlNQq}Lvp0YDp-%Y;E-Cl}zdz*-x zYsZ67_2DKvg0QS|K-P`swD>=brkG_FvV`TBx|!kK1V?50B9CWO$&X(JZzN*a$lBqW zy%vPrNg9SIW_0tgES(cih#sTl0$r z4cE{&F}8AliWk!gks|VX`WHn8{+F`5n_e2Q%8qjch{13SLwBhnyEmZTjlbNbYKZ*? zKY$zK+EIgxuM%#FMAor1<~xa)#+UHFH{97;qBlKc`suLtghi(zcd?QBZgrGBWhDdNQsS&24Byy@+7 zBimRWR>AVQH_}~tKKI|ex)Z9T1Z6}6JWul1(8W|A3RKHT&)HlRH4ksF+ZYBG$}l_L zl7xSSfjL+jN2;i|Hu`w0CA711(&EzniG}suhCV;fUgsaw*mB)~vl5caiYyh1r?VIC zT$MRit;_dGBo(L&N?uqa`d-ql6d?m5TT90}la#ieo@Mh(XkZEtW1&F1@J}ZwNXtOF zTx&7t`%kS@Cm@b9a1Bd#*v}sCP5edlogJ{#*GMDv^2$iEx@-V;P#RTS-n+33GLrYx zg2rAq78OioWeg35hv$V`SxgF>1PaB5!zxb`Bl?ENnjoZDcZI0PEci&2%+-Fw?y3Pp z#mC`^=PmWxiyc(f&7t)t#3|?t2B)K&n|7uUKW`UppIY)R=u(^;-WhfaABBKi${tSS z_wSd;@7hpf)krqDJbwF`a8Y|5*^}vZwAZlUK;O(_Xl*0X-Z6Uv>2Jy+0$5AM#LT5t zmQDSm33mEe9xe`&O*5>YdeO|gzNmXI1PZ9ir2me&a}-_H(D+NH6;TsUX?MrWdi#y{ zby;(ez#%IOJk1wto?9?A;P{(!87bdS45I@Pu0f>VfL> zBnkxp_C)Uv?8=SFKd)2E@@e;T`cq)q#Iti^%v8$zfTCQJe8NQjk?FXfC6%IC>|sgB z7I04gWrYf;Plwx_nGd7f3^kIa_MYLD^>4zbHh7_V$^jv}O_wa&p8rp=vRXYoiD|3w z=Da9zt^PvP>crS|8t=dmw5||XydpIOG|H1y}j|{-)e##W2WT*{ z0-hXOlhhQJqWarJ*HN>lg*7flq-z*grI2#=-3%U-UxE;(g&yMeu|=n@EZHjbCjw!C zEyt5tcT{TcrO7;z9M4JXd@Oc1yu-W&rB8oSO2m{jzORq~!gH5U?mxgi*3kpJ5EbfH zO>8%Mo4)!Il|Afy=A@=>kxxZ>uftFHe)_C0T5Bv~W}(f2N$sm=<>C_qM`zbcux{L3 zua+xnPg8_tCc7z^)zMfGw7)n(a#>_v=8L~8U1K#Q<3Y!*4tYC|6OhMXSc(TGo^eh7 zsH67M&>h|BL5`WC(3qxREF9hI%6@Y)zZ&qSs9R=?!o-n@ z{a6ayK-TPpR<=LdJ*8PxW*Q%G2WsFGAyJ~U!HsdLV9x{6Hb=v_gIQ{V1-((qntIBw z|CKbhgK(d^H&MgenI`xc^*k+x5d+2M9OZP*36;mDx8L3?9!s+$4QbETcLPWZV@j;C z-NivehryKrg*j@UV^#|ZF*BeqVJd#84;7GKwpf~>m4;4Clq;RdCllxG@IiL=Bl++C zf6=`t{E5DPQDG&{OLc~V7NDLrp4LYypDmnnKW^M*-)oqy-X4(uKAOanXl=)r%<wFB0`I(Q=aWbL428W9?9LM{pX~rNnTgZ zy+jX-k%q};QL|wRt-fZ$dJ!VbVpq?tR@O<&V?CQY4unr1T+TuUb_tVrwlDx|huZ4K zz!p}vEeUq7#)N~lcP4~W!shdI2DHzslG&nT3%u5j=isV~t_P*AJlwVR?!9f=kGq_= z6Zf~7q1YOK;AF_rr4{eU7hA7RgI>$~Xb7Cr^8+7Pv#x(Z{k>7?y4bk^ zxC&^VWLMq?Y2~DcJg|nHpq=R9g=`FJ2r;a`bWR~>UA%Wo_M+Z-@eTdDdb1dQ&@x$P z<)rsz;NydM)8iW!JdKZ4!lT7|+qUZxcxSMyK;;kkHCUWQwu62M?!HAu!@?>Fyce(GV@u zs+ml>?wsSe$n;G5Jpi`ujDIP_sB*OE?t9At=fkM91~^BnUkaeBEZUcrZ*p4C+*zu~ z3`rhMkBXJeB!N;KP#jhLzWga@zZ$qH@VNP1(zJhxaQ{g`tkK)i+Ru~rLCB4^Gq$2o zCB5O<7NKF7^)X49{XG~_IXAWTu&i4A8OsW~m&)S7c&d<}i#Zeh;p|3ETbX+gi*eSd z{N)6;5Yd*5WWF)2W1VomF}IFRBkf$`xAXsthQ;mK8k;8Y7LE8_Xv(uMe)nOZOuesK z`)33fE(E6O=?~V#X(MYt(U|sb4~2VFtjAdu%ThI}ITv%AWyJ&1{Oa@X(5ftYCgx?* z?mj3!jvSE;Lt728@U{=pm34#T>uIjLp$AjjKt3e>!ZH@&j9`g+5+5-mti$0nYq=2b zH?TVn1a!s)z`bfWOZ1-w{Q^DMm8Qbnowr4<#A-G*@o=i-U)KtEKSd!=AKR8b(bj7@ zaG)ZUUm1Mf6JoZ&A^OHNHBiYzOU$lx?E3O8A0MB}G?FWNm2WIV5CC!boqJ+iXe~XT zW_9D$Bdr_zf8GN-6HxB~c5teTz{Fe#HgH1f_AATp=O&qoA;+-H2At)+vH7&A@n6Rc zmR4}~?&v-(3stikW~%6w{Bi3p>9h7NBwN)_hwr|4OZwd(&brXb{pxTBJy;nD(QcR* zNx5)3b>tH=oT7!w$ohHQk^3-o98SIE^-3@r=;QPdeL?GRw~s}DP&+t`q8C0dux1A( zv1INA1c;yab$2|6S-{L(p;qRkD~Q^VtiZLKB&q3{`8m7y7#m{WH`VfbZKEgwTgn-& zLW;BU;<&q7gcc|!R$MsoAG~@SSGdj}_gPCix4pNnvA-{@jsRu5F%hH~*B4zaqe<-B z2t<+Yx@keJhE)yr<5czKbkqWvJ!kCh)YF#?`p19GN6+J0xQS$n){vKRP#!Q#@6nJrS# z(7PRYD=d9IJ8^k?rF(gQ^Bs`2Ee)*WEEMgMVcjZDv-i85D1HL0kll@|j4+OI+o~T< z+=GRcV+F*aha)s%)(-7E&`}u&ts(T&CxZyD=~z`^RVfr7PqglKyEmHSPw~* zGN5j5Gg!6qJ;>cDjzw!2X6qJzzgW6_r!MUHLue`GXKyMwD4!m5;O7$#dr$eEx-@rE zz{Dfr8w`h>y;X`ChRdWQlJqjEP9wICCj6 zsag6o$#gB{ew|B4(`$H6GS31SOaq|n-hx1O&jbOAkvW5*(t^TIDm2{AXE&fcHKm$^ z#E>sb_DRW5qpSY+%@eTk-KrA>8C6AwSFLZq2&bvXX9J7=wa=g`VSMMzGchNL6jAWfQLQ&cNTY% zDYJ!0Aw5XZ7w&-MvqgW7a z1Ap>0gm!X;;2~xh-3#u@v)H!p5jR&`88(&BdmDaBg$}MEqjun?pBHD`Ufa5FrHbfI zF6rv4{bg*&FA&XY*4=ByjbHM1zAg03v7WT>dB^@;|5?JO!xSEocs>xng2noK!$IJq z_*vhXpxm+3VT|`BR1aTwCWNyLd>jU;E!}kgYFvrTKA+ximq`-FiOB(7u3( zWQk2Wb5{2I&Ery%Dkok9EBp?_L`U|2vCST+^+j1~(c{O?;-X~js)u^YDQ_7M_ zt;6>n#W^s&BHD`-vs!?GTXh%bjcSniHrNaTxa|iWI8fun$aHVGApH|R7!0H`)2s5o zsmXczQr2fCyf&mcw}CqK44*A4ux@vZBn|;~=+E1bly+h5Rne!quIK`=K0}eGB;|7_ zg9Xe`TRDGN1`R@im2ehC$dI*id{Lo<1dEuBq^8~*qwJIr0}z4f_cJBgq~|r0=lvg) zR}^2h{Fx5+c(Ez0)J%kF@j3GkL4TN;y;iwiHq^}wBs-WN`IS%61pmy%%-%(UHgX|5 z+!#~6Cda684R$C!*}RW2$zy4C<*0WKvM8vEf+sS}a_TZCP`gpB+WYxJe{X!l2Ga8_ zG-h2Ml%QYezoh@2nh7DD*w-v@G-F^96F2aq9zXj!}nsI(wV79K_9@-2$=T(`O+f(ro`MU=k<>+l|Zixz~p(&{gTlS@gfG1Y=?RSu; z$6`Y_)*^(X4ZBQ%#si*Q8djT2%9_& zZ72T^Yi}79N7uBC27+q{?(Xgm!QF!dx8UwhfZ(2B!QI{6Ex0=j?rwu~CfxEq&-vc( z{5rj6!K|5{?%q|k%l59T(5C7cduQgwRktZ&-$lAvBPoZ?>;(x1W7P=wr;XM)qcE?` z#JLZR+3M(dwvype=ekfqWaWpCz2WlKA8oQ+QL9#3xrihn3<}6@2c;@_0tBWIdSIUN_ zyXs{6!&&yxNZs~!dc}I%DJx&~d@=uXHFznXlXeNdhc9#)($_Xi=_6s$nHBaXBFcKN zARWPyD%GEL4bKl0*8{4@4=?!qeN&|^!4`6}sY?$8hJx%%xG0b3iIjrL2Xm{M&M2dkq{Ri42&GQLIeXjKQsW6Ei=FbEW_uPmzd#Y@QS-HgW z8S~{O>Pk+FFLt_!s&S`10}4Kd^()$~bp{m=UkcsoXO;2n*^XFCr}a{Dx3*TRZ8Z({ ztvguA%};xJyV7dUbby>MaG>qYpQ07a0xH?dN1X!huTiP*o~IcN=Ol2ewievAY1Gsw zUD8n8dYEM0%qZ5L_HEsOc~Xswcd1iZb!@8e+B^k-=!l(^=t!Y`xlJ{uDa6C)y{kwQ zOX!VQ^Vofp7x#dRwIq|5HII>lRNcgbTP{ueDUh=+t{V-)Cd^OPbmi4xO8WI(w9I_D zD5Mc1rJ^MmyaZ<#YN7)QbNc-p8T*u zh|oN~b&BlU9oV>sD~|oI{p&e<4@bZefN&;;>hTYe2(A?`~94d>AfQ3rq)KkjLl%rXWF^(DK4*C z6Nb}cWwL!qE_X6cDUFH>wQI-}Q;(jET^6pka_xzV=qt!e6jb#HUzgy->+gn511RjBAsz4STuGG>AZm#ofS_BVIp zt$4unx!2wAfM@jS;G*ju>bnX+`9!`tt+Y2VCjs!>dG;D+9O0#b=c?;_Th% z24idbbz>ZpVIx;Jyxv*HmT%FU%4fNP(hIkmM^Qx+lY|6wvCWaP+2zRpw!Qt_Y!aN{ zl;Hf_E;uEHcV%@oQ`c;V*~a3SM()y~>EKEyL2fQ+wcrNxORX*I3&~jt);j>sLm!`> zv93`ysaMHK1ULTPs7XhIr8B%5+19QE9vP1>A>z80c0AK+r1F8CzR9Q|@k zm^!7LUG126b1~nYZk?~VL2;$vc2qf{6!?TXOuM&p+ND2vm)vof=838U;+n$J)>EI#Lt3TI{46D3 zy$X5H5{B);qkc*+w1$iEYp+XS_q^3@MRBB|=GZdc$RmZy(G{pAWRFFMKu`-*A!1`C zydFKL93_dxLqvhM1#?td_;zo{)-+(%z@vh>A8Ps$mXWUi(3fJpZ7)KY^yq%oZnMQT zrdq*PZ_$%Mr0`vtM z@2y(g@4>$8Yt^Cj;X4jqZ4uGOkJz&>rB!xcMk~<0siNosFAEr+Sz?}B4|8ru8-HPG zoh_&Uv;PLt;#3B4<8wzCC^2>G)_bB}(U#2&6oAStWC)8%Y{Ht9Nwg4(TW>KX9a0@F zRPM1y?sh7(-Qv3e{x&Wnw6)|0?ZVYd2|AYX7*FeSmy}5kbNe;V3K#oc?)Qw-&R05# z%@;g0v?ExLPY#m+3?i|$TdZK1Bh6G0IN;Aa^2?P0gUJd@H+=?9FeOdBn&}ujr{3U>vmA$#{DvplTD;VrO5T86`?xthVant`Teg0cXCEH}{~qmXM+=_dHIobbb( zMu~Ajx42;iCQ;oJ9GyjJmNdyNSP zE>;C=M)Gm#_Mkb|^Aub*Q$1!~&b=F(HjxdF?z!4+`X%PqduAo@VVrdPUuJ15UkYdU zEZOS^Cf^m|!Z9>9Q%6Y054$*dgRs*i#)=;&ZB2ZyJq`FwOm~VpIs=#=efMerI>mXP zd!>Amxgj=&6G(Ef&T*>|LV;|F>Apo_AlD}1*Sii-{BU=Kmy2A zY6DbYQPS0X;2@340GEkh4>FS^VR5Wc0@02F?FY+QUuF>N>PmmV;4Q_Ka(=o*MMc6%aW_cKl~V=-{N?uB{!;xsyV2QnxsdSHcl zN#vzMyo%q4R~3l^h58@b&oG z{l{fSN!I$Diz!@IrmPBTot#Kd!|rL{Zd=l)Ss=#NzH5fjFFtqLhD>9f8f+k z`8<^M=<9x6di2(jiMEHaGoqio$~VW8*b*fA@vJJuw-}Uk%eGyr4_PqZs02rwTem>~ z{Z;cmujfcebcRUtfvC`wF5$_B96sYWIawx(^Eh0tY`9%9qlATrmoO$VGYvROjvGqR)=GnJHu@VbxTmDc9!5Exu61;G=kpWWWo|^08WKiQMnrqR- zwU_hw%$-1QHy}_!{}yU`#mz~;MZlZ4SrXRGhv7DZdMeQyT})l8t7g`~3-5tyv-THZ ze?gJL7RSNRRdKRzHu+NB*-=%ar=Q2gKJEf8CLEwgFMGK+Fh3M3Wtw7h+S$IbtZiv6 zWA-+EDX^~!-hSB>uo1h4S!J$7Mlj>w%(3!FJbrxlm3F!m33NPOQ6dCnTFPV?$mshBE zj+E10nB&`NLb+?%BJ3P9pk1mE6UeC}q9JehZGhCfK#Km!jK!7zX ztJk^eeNEh6xwq}yzZYKG`s%rI&Or^@(EpU6Dov9hUz>NF%r=(F5}ebDm>1#9*aD}1 zeB90ujQ&X}Z*X2|u=Mn&V7|_CPu}Td4)Vm?dt)*il5d57ePaWOlhYN{u12VBVklu{ zWsc`<9gKD;477RYiA$rR_EHVI%`R!{+BXoRO$V z7Ldci)+^`nv8H1wSS1k*aLUpl=q1Bw`0ARW|6pA6uHeoL=`;lhJBQyMlI`-6|1~ka ztGr^ZS6%SvYGJAvop1TGVC~$JL}}#sxtaroyw2>r@BSx**@Bt<5`{`Biz1qqcF$li zc@m5Ih;I=$3yRJU=B+jRI$rgUYzzs>;PJ{oFAdiSyl!`CF~HF{<*j@V8W?PzCj}H{n|I4(!M@2;C>yKiSej+L}2>9vf6nX~loL z&jrD`Izh1KvlQlS8eS}0al}R1Q+=CbZ-ZnT#LnID7fc0;PQV*$}Ql{Od4pJq3`p#7Q+TPYA(DZ`-x7ZDp4AsZi?`$r~QdfAJZJqW`nO8e|IC z3#cKu+vdwB^pr%JoPcB?`BCaIa;*D2PS7u*S1}M9c~s>x^v+F}KVp2%0E7pZOn7f3 z_oBF!WE6#KZY9xY``LTNYVEDh&mY07=^@&4{z^Ee$A0rZY`94SICmAYoUH(=wG}Vj zM8k6&u_ukNp4`eDwRl6i0F};X?}iGE9ZB=#ziz5I!K?P{LtpGeH+k@&C|!}fl_jyQ z{Y%1`g|{|O?A+`(zq!5cBtdXbI6b!~faTMljtlgMkqIP z)aLVwr*`k-#hl3*wa-ge)h{R3HZ1k#KlEVyTh6BMvpqljH%i|kKYf!J%%2JJpLv5)z<&2{l|ns#B~7s zH%gsrbD*US^!x&AgXa=nv>X4K`i+NPtwwvuRF1ZO4z9@0$82#uI%yp?J6|6j^JOgT zlEG6gQY?!8L$72zPwRX5RkIvaXCdU}St$CdCnm%Zy*|08^4Y@$1S3xGf;yrVm#p%- zW?MEen4KNLM`O^hZ=8Z5BfB;>HTA5n%F(L-P{!h<)^k8foY|&J?33&Q^?Zw^HS>*F z>=4tTZ@2I;Soy%co3sUmtDfr1AvHRfKy_o52Pu?tm|2#gsqjS)G_beBB3&DGJMNw7 zmrxw(8#It8Y5wpG#i{iSM=v|$+gWLvUUIS~@E!qrjRO&{bjJh@QlmMVn#}9?QVtbS z8vkh=mu)gkK04bRpO_;igIveN`3+J61Y)7}Q8e~l!9zu^Mx^zM!ir3IT|QHQKUCLp zOIo_LDB{Lc9(;Z~U0uFz9>w-e&1Q#GGQ>r1HV$V=K;SA}p{U%4 zBaR|p;5lw+{=#y|&JTO5S~nXN_|xfShG}R+S2KHdpDa7bsJLrUxXtjJ%HRDG!k!6?!XghY{b({<2Im^Ban7xYA7(O<|4IDg}wj6(eNX6Ex-CmF;tX8+XF zhopZ5`t5(=7ybXEN!(vo`}ef}t&iOQKd1a(G0@-itDKCxJNJ+rqvHPuJc(WggI@c0 zN7J$O?m+m%v=kiU(LV(yAe4wg`(>B4{h1=x)+M(R;EgG8ENy?O41VeHp*u$m-mTHI zv!@3i1UhKvs(!S!n_m{6g3|)`H{t632E$-il_MW?KfN|j<#UERS#FRxnoIWpVHLCI z(yE8WWMo8_>ojMI?2UO8AN}2{XGZoPhN-H+fRGEva)P5X)z8w+&X#rau-L<8Uz6u1 zu7?~zS=O;Xuk!SC-}ZMBwU!PQ9-vKcSVHoDV0iyM7@TiMu*;wds5_}?;Op`h+AiB} zlBT(J?3!TZi%isphv?50|{??ak%Jek7DBE@hJs>0kxE%?1bbhD!&xIJ6wG z3swHS+rPo7lZ*2ee_j=ou7U_c+w6Q&TmaH*Mm+YHxy`p3y@*`_H)!(~bL`v|^|w?0 zsdHdsu_Dk0W*q`%%l$G6%(1{94AXB&KREtRYVm;5%jLR_?e)if!L8BTt8*aWOgJ`O z+FAX&qGAH1D=qH8ZSf{h)9l??Nw%+CZTgk?LkF>)#{xiuoM$VeN&&%rfRH(wHkLMi z5EY=I#W#8GpV1&5qkoeLRIfbhB-U=#E-XkM^pr|GU;zOWfo7#hETH@nw_XTuCDhxp z!iyXatAxGvqsOcq4MQjV_I3gVb^}OH->As7TLV!oH>{vWfR^lK|&O8=#V5-W3aK zWmVJj{&lehwXv}H7I|He1KU{LSV_AR9UXBfQW?NR&rEMmO+2bi)1yvX`(pd+OzTTq z-b{&9LRd0X0(>$>GWqVuM#!RlD!9f>qHKi6%GdEGAkqi|Yw3F$0X@Na&$A}e)0Lf( zue$=k)M<}&Ob-|pdhJbevJ=(J(xQ?wH33s|xRkl6?SSoDYpb4%HU0=I35fH z*DR7S#NR&%!w@4g1we4$+;o{6*yw_Uhoe1pkM!+}TyAzf!OL>2)*GD>)hAq5flCPQ zD|RAR87E8%V><^l3K(fG0XIW!a2 z>cPc-@&<*M1hEuZnS z;QJQZSr2HNd_M^AX>=@d;no8#j7VgU(4XlR`=ABb9;tC}2)9(`jmgOO%U|Rw$IeHO zV93of1dJ zGYHJJt>03Vq=BnmWch`j3b+aY@FAb8@l31J4b=C+ZG2^)azsd8StYZ&JLgL{8xskd zi70Q1gbj08P}-lxu7dWOkdieCi?x5ioAZqiBSco;X*e(mq=tvyTs2Lrwb)MYSwS+b z6ww$bT1exHS`RD=X&#BLgyo5J=^JA7J}*Q}c|PHEN=m10Ef$}xFB+=LxLt2*aE#el zMfW|%3OQxJh5Qm>IazSt$5PKRSmjNtKvYL}rYP_SZu!Ia?@!34+^OjX<6`X2SXJjzsub?zi+9@?EL z;}+|OAnK6>oV4TleE*i4tvSUEGG0YR<;{`qhex(FlMklQlTjUv`afeK4;u2teE38}Iu4 z8+Oc!==%qUvphg^pqAD7{;GsDb16uhcm7^PajCCoVrCBvt%8-6jW94aMldoWt%N=2 zsEa^Ys8+k0+m0h6T>FNsCe>38uT1l|f<$pH|x03S?A6|iw2yX!w_FCoYq;)UvlN z-_SeEcgLGjgU@us`x{j`^U$oxLtgYL`TF(Z{VlYy%TLXj}@xQ?-?tU$niErsvF026j-f_T16n)zl%mxMzKkeID_0 zv2v2Vtdg2hb!%*-!Q|x!1hj6uuFYHD4;vn@c%M1V_GW3mgkFy~mz2T4P^DQ&@W)f3 zby{OWtzljC%!A&zz;vH&S0?kWB>ZB?@u?kN>FgpoA>RxbD+oT_XPx56{7!d#Sc3;S z`&2laMzNT}RE+M&kFT3YHs|wg(U=Lm0l}pX!V2p&xV+;jdfvY7Wpb*?7G|fKsrP&5 zYcdVrGu42d0(T+;V4OCxU6CbQ#DHUn)m5tG>=p%2y70?DzF#{#_df?VqZv=SXx~xL zaR-|*=j6k4Uc59Lay_{8C#Y-%&Xd0`;*+}F48WT&cqKbR6$XJ9wOT3uo_9Do^$71Nu2oCpSK+CuQ zdFc*fqi$(7;l{k#;}F2|8MEqkf=OuGqonwwqv_*{0S(1fTw+%w$p!BAblL97m;>4Q z$+n?XgHmt&9(*>uW{TJxoxF8H@i+g5&)4&`PFEv-#33x~TwjjmMS*3M;Tp&tZ9Rmy zUgv=Jo$25=8rjYjERlWB7qrT%(apq*Za#&Dt40c=%^Cb?TbS&WOj%sez;;nVCY$jgt3{61-meIOBh9!HeUHr< zJA_>;*ht!!a-k61Z&z*qMOd(v8e;v@PD=f&Xi_Jm6WJ!`{klEo#k&+&cZBJI%OXQ< z%wjzb-2%*hqI770%lyP=>jOx-SH=qT6}YSH^nq$qUbWNkrbyI>_Vw_1)}?URl~9?x zs56y{v4y?{fD(`V?(IJB3HDQK$e98*$5U<&dHPG*#Xwf<`BDE>QfKQp(THz4C$3&c;NZ}D!T!`78}a%5eo0%eK53#a5}=&+y_Y9wNbKWjInl@*-u;5)?jd32 z2s5fXat0smDnvgWog+-cwc#~1g-2MONjW$7f+7oK9f}T(olb+T~^LT?O+BVsn zmE9KDz~lP752&6pvqf-8%)h~2MUF1&D~8C&H#qB~j2rCe8z_?G9Vs#6$&|>{koo+R z)fwtC{iXmrF8%7f& z&(=%-r3>D~(Dz<=-e3grdzlt?$RB%-3K;ee)vpA2FhOG;6e$)i=IXWla3Q5Cn8l`W z_2*S#D}Y%r=Nn|3tLF!&XNd@}tEYJ}`Hw75>n=m~`8lyJBd?Df15~j&IrnSO!u2!I1=b}z z@ma%|z3uw=_&0F@Q3*uY(F3PA3>eRkL>UfXdks8Uh*KG8J|JCF9ShETh)8IoOtoe$AV$9Ds zT^)l#iQcf4D@AN~2%bXVl}bB%TzcwKT}~mW74}iP#PTXPFY$c!W7VxG0Q>n|V$-

5&cAa7TS`C7Jbjf$M1kNz1yZf_uqw5cl3Rw@C{JXC$$jw^C>^GX4AzH3^<|2jzzt`C@9+$W51=ig0c@HPd zEefIxeG`3O++b(7y1q8nUO|0ah-*^dg%K<6l0Cm0K3U`$s&t1Id{D32D=_SAA=RBk zA}YBx0Mb7#YJV-F9)tX2B5}Ij!}~5ocOVrb57?gw^WFMzA#fZ&o~$)IU35`Xd!j0? zK?BTTiRr%(yl7T@2~bH<%yE3CMw7hCg@fe&<7|UOCPt?za)#GXC5K9tWi?!E2cD^Wql+GHU6z$eYgF=ThNwl$ z*;S6FG-0P3ky#QFyfDj`^UxBNn|Oc&7Bn4!0LUI>gDwO7Iy|ig{~V^+fI{ythMgr; z$cfp}hD+a2@5;;Bg^#k+0p^@ge_?W6!z&c}h&!W}=k zlX$(5+rygz@n#>cSYyvs*mlcXsL9{$lD6pc2`bu4xjodmX%B698?%UgxpSNqhf&0xJqsK(Od%fx|3F-gE2D{Nt`{f=C}%Pe<4<6pjETsX6U*#2xcg5 zUMcZTWc6S)A`1qOs)M8qGmTkyFgKrtOCt!s;v|3;Becdp$>L z@?5d3W5Cw!;Y3SP5qbN|ZC3$+`_tgdFyvE@QA^UiHz5V%Zy}@#zxzI-);Y0}H7=xc zTwBOBW9#$fUsig@7enw!Q!LI%Nta(-`NlX8r71A(o}qwaQv#onI*2t#R=5y(FcIyj zF_aFxghLk^D2cYKW2FDEM{0LDc zlGgrs4J&RlGGgabNJp$negfkIzQO&|^RI;_ySSK&>74P+8-=~<>-h`Tak5u%h4X8B z+!&fx>64o`?yjucgGZ6iJWGxFe}_ml*lMoO12&Rp{p+)aNFhTzt)AoPJ{wRS2flEr zmagBQw73}rKp%S+(pT2`KjY?{clXURX_VfYzbnUT2eR|M1ijZ>mX-p_dbZa0U|NEI zH9S%7Z;gI0uy}z`4^babMpN|zz2A4>N~=rUIcY?0!qrgyn1>gPI474aAf^i#Zd!R{ z1byxN*%G5c{Dk>I6}M_G$5nmAS6OmqG#^>*v6!mm$B-jjfMZIz)98a_}=2h)Cd48iqR>EaLDdJnEB1V$e8=p+e8}-Ur<&atI|4g z8h>j_4oVG&!fHcUE(m$f0C(tB`uaz->9H!9XOe`{%6Gc;Szr_%s$p+kZ^moHR1bdR zGA&WQBRn?twc^j{gJ+cOgwNsoHqudb1pqt0zqXCMvGest`R4AawIP)N{5`h2zx*n7 z+bpy{h`Hppj@=$ruo`$4cUX}JN(z{n-A!OBAXNKfrhi9C47<@ca36Q>M4@@mAS&5Zpcr557N~E7Owf z=qrErevqUNay}iw=Hlk<9-G6U$j@hD=I{#*WsZo5FtDmozWfT0nbrBXix;-8^`CThLjKuR?Ce zgs4p3Yr=G2Ug2N-X?djU*xBa>ekG}n${5X($dh&~Ip`Q^$`6}!)6dJRN3thk3b&v5 zx_NJW94YOoG}8i?uAM93FCTtvAd|z{Zgqb|T3MQZvZB!&yF&Tr@#v=(>^6dg6Q179 zy-Z_{u~4Uhth4##XVuW+=swTmI(qe@jhn9nD2_=A$o|oZwXN$gYrmKX1<8|o9^=I{ z2%88gjiR;;H{G>Y8t|rhLKdCM)Y<1&1kk;QEj{_^=Lx1AKmpj!(pIqLJvSbAdhkc{ zat`x>*M4k+;_{>UhSnXkDWbi;lA_Amn68?X6!A!TpuzOT1)hBpUu8{9^qbT7K^b{m zwnw|KgBiFCrVRd9oDM{tExQhiQoY`5X?=mW8Zr18kP%oB5a(mX>C=pu1nuQF=nJ|2 zyB&XGtP5xN$@%MV$wo4h67#lXqxk0C0+7j+-D-|{)VI@9F>iJ$d%X24U{amGIl^tg zlUt+QtEzE8ON`V1bVhJ~RJ`U`L&m6+3`*VnLpP9MvFuk!eQu}ouk5b^xZbmwU3vhqwX{M@mKtHiO5r=Nwucks8#QL&Z}&U8{gTlwPx zc>472X5?BOG>;b02kJF#7n0SW97GyU8}9!lyZ9I5F4zB2A71jwByUf({X%lxK_Q>n znhNYw`@bj$Vq#*jG5IJv2ZxWl_qT-r-3oUB^pXruoQxqbM^p8MB+1{}UpQ6}dA%fd`7inz0vI$7N<3UP!M_5r%No0n#q{>hs{3onYHEVCb zat{G~2(uki7YNMCay~1#031Yvc5nkGfGy5P7*n=iGi?Fw!p&J}ypB-vV^Nhgb%CKp z)UpwB`i6!Gq@+ezxHa@lEFbH8LLw3Kep@>HSCZDf(Ht;Ue&nU(L1P0@#GP_9I6X$n zP#5SbDAd8YcO_?Yug2lIWi6|Jn}W)g#-T z7tzk3)zx^y@j4#0e`eAef9Pps$es6oR5jB@9ktAMmqP}DnYI={ACyiO;jeGwJo?bX z&i)<4BGVWD{wwdGnf;hYQSkHg&z}H&%zBBxiIBcqvdeDiR1BVq(Vbeze6+{TZL1{r zx7YS&E?Jc*E$qj? zGPxWP>G-qC`HI4;(&GJG1}f&in&;0g%n8J&Gy?w~(%Y|9jP|sCV4!b1*;g99CT=`k z^l;@+p`!j3HT?ZpY$b3TgrMnbgfo5jf*md*GnMV1YKU4FI5>)8@?U4JpcXfayg5*^ zTaQL7mx|-@|1~m%5@A(6$?>Fwa3jrfPubx;tKSovDxn8Pw*1T5Y^(hgBm@hNu$yy^HY#^m8j_A$b*ESH8*La8!(+)av8@S)+Kn zZ|-7zTmnq2{6-KDuGydGPwEGHAjDl-I>KMBLvugAEjA2v6d;J4&AD^=o)f)%mLC2u zZm{vPqN-4Z$2}ZkPlEIZ$n#He*X}L2u0o0r-rxS`4M!te(Low|Ur`ki|U0+a|{VW_GPn6B4f|;D(jd`hzZ6;^Gs8 zW78tF4zTy9D>7m_ipVGn);$iLxwyDGh37P-$w4YK6)qlfaAZVOVm`{w)%B+`;@QeC zRyzlm?`dW9va)gphF0LHs76@W*gXpiFs&7ex+OD()#DTWmLMvZZ-F|Z)gjyQIpF#< zk(2*5@3W!*jxZ%%l^lQ$Z;50+qK{7BH8|$ z@BhI%b9>FtF;^Zz{?E4lYXL!78EK(O|0Nr5^Fc{dO>V5$IF-@B$kJ6dnFXD2{8yCv zLrD04T32P8cMtdG3F{j=>1?PpzY-jir!Q1nnPG&l*Af zsF>=lmg)u*pBTOsw#jz;YL8YDC54n>E1ox%l$OdOFs4|U;i63}T@H&nO81^S(NU=@ zUs|Q2vWy6bx@hL>65a3%QLHcP|VcR?X523%Vb2TilJ&x}h-yX*6U= ze7k8Zg&j9U+r9lQf>2nTs3bWJ;WikF-eJJnnHaH!&UJvg?$x;AYbSEm)T!eWS~?B+ zkAB5|aiS+PED9%N(KumgG7su#hEKMvE^V&Z0hPnbB!2{f00wQlbaYh~rbxo%CeCCre&MOUdDXvQA;gU%aQE9i1aU-^pW-kEk=uT;eFyEa1W zkH;W$E#9PtA10^qmT+iNKWA5RSU^s8Zs;-6_t;nz55}^ylU+1XAM8LU0e4~uTF?Se z&`-?pm~SX{gckdqa%kZ0pF$8ZY(-_vRpU}9VTL0jv@7@H;@mQ%zbt7jsdt%Untn) zNiQU2w^5~6blvmK0Y?I{)$U;Z2$ch+tIGa6@)?xoKA2)YCb#utc1~tj5O#DGUW`P1^XjN2_gQe&IzHL z%U)iHc~hNVDP>nL$))VX8D@@UagHhN_e2gh8tw5T`} zo2RYzS%f`*zQL&vH4NaBiACRHaJIz^Y(8N{-nG@I5-RZnz@KM`LNnB2 zKkHw%tC(<>3kJWbz%y;odc@^Zv{y)H;F}6UM9)7bed=NFse95OyEPNz-XiU$320Nd znZRTO2|GO|NEyTjkrYu&DJ6dvseIRW2vG2#7mq%m)jwlHs~<1__)u_s`U<6q?HahF zLOYQ*uAuqu*Mxnpv?Z3S`+J6$lJ7g+mf-4{&+E)gbIv9aooRe2I{3m0SB)A zH7;aCh7E%Lu;)6I3AjH5EaY>UzNvcnO$s(Us;s zr53Rpx3}-(T~}9XyN#x(Ot>5BC8_f6t3K1HAu+m34%dddyT68u>pXPd*A?FYy+$$B zkd*78Dm_BWC__%v8zd$Vt+DISHjCQe^FctFBSo;V(l{ zED6r2?oFpv_X^`)!#eMD9hQwt7^wlodpLK8{^7iIgA-MAIx0VEvAQv*5$h0hK z{Zwr&;z&ZVkNgsNaqm9((ZZ#eHDG65%Ff|K54ku;x*4Yj2Tx-?1~`#;LfiU;)=fzc zyC&ib*6Pa!q9tz4(7VvsFP0iNIMFsQSCi7u$5_aL&sXphMHTRLGs(+r#S!&pEDn#D zJdgaao{w|!U@D}nS__Cthz$i4oGcSxzO}X`4`gmH@MSeE*TQdlIiD~UR*)K7X&I+I zY=&|uI~eH*gyk~MZ9E}6Pzy!jdI_+p4MbwQSY_Zv-6Cy*u~nad6(ox1s1&G8-5SmX)GP0;U#%zsCNoQUP0j_c-5gS zRJ6Ej{iyW`eeo@z7M+f#%8133t@JpL%@48^JU{bMf7A#DR6^x^8l62Y({5*Di-@Ya z$XWL-GMLe0Y|dG>bkbzRxZY>J*qW2WFYpm{f8>2jqzU-qzSRCjEwmL~ZX3G|xmEO$ zB()i~E5?_nNv(nM$|4L@m+#h`>5T7P4QG7iOo&+H;wKqzg=ZHW){wn?XixV+ofbh} zOVfCqc6k3(%yYAS1p=;C)DA0x?2cz^8(~mqOuaYoPNaH@?Wyv(OBm7yrUY8FnN20l_UpeV(M}zS( zFcLG!mlrX*MaDe$YZZKFHL}}cNOv})Dp2m!Z?oj?MDpVl>aEe_<+Egdx#nT{HO+0g zW;o$TG|9Uwh#$0`p~^(zf>f(%-e(>kL)KagihnPuETbd{Ky+n5ADXxS8HqVJ)u6ee ziJ3J3$Ngg1?tse{t{WlY1W(av!&5s<{-e#iI-6;Q!BCf)jj3S_s`36+5y1MCH~||% z|Bkmr%mAyVd$!JN@c@%tTZRNLZYIedxU%odCm1TY``1RrwsFNRX0yF%^s<=9Qmosx z?&iIXsr2V{9gXB>0l#|T$ogF;+ych6z-l~2U760w7G;MT7QeiFCeacbm^*hdMTr>jNXb8EnLSqR}>% zEAcg5Q5?FhuI;!k*0pUumcN__G(Hb=k{)~xn&8hJF@ib%{AhjxW=e>elpTTJ)7IFi z%|juGw~21yr^a9=D6Gl6$B%}utyM+Hirv^Ga)MQEG@v-7+=t{s>ZYGi_IT|>Ry@~c zFF3_I^d0DelaCP?pY%l|lY|#VozrLh(l@#n6jAsT?Rh$ef8nsjGhDUV;sM=#xPE#A!dYki<|cH) z1@1j!C;W6!bRVO|jHCuQ?VwZSBYVO1Tr~>UavmYRzTKX z_rQZz(nxGP&!V>iudta%#a0rdYChz>cwwmnF1vDHG5kBhZsYGG>9iO2NYJVtG{+kC zhJwX2Vox<}fQIRK`Iyn_Hm=yY``RxjS>{$Wm?y&H2ut+BRoFkCL!eA*^F{o3ctSJ|8E@>}Hy} z&1MVE1zZDLRud)2IW4bsjCi45I0~G)gbF=4sIW`{=llH854^xgtNUig#Y-#h7cXyj zRX}!Hq7jhMLtw?Vx79M09Z&#jt0oc&!itjL5h;5W<%n1$%NLI*kyb(U!+CZp)}{0z zRMd^?Ed^tU&p>_ztNBp07gOZciW5O>m0BIA^S&>4cfOdFVk9FHvn3^)j2}rxa5YTu z?B>k)pr*k6sjj??=iITJ!Y6@*hORKTq+SRG9CZuiz5d?~5MTU99mkSs(Nmx~^80yZ!rxfsn#0bdWK0hO}sBGr8-&HH6zwq0<*b5;vIxDi%^TN#OxP4+nG*=o{jLEZ* z$=DfZL`gAKoo^zv8d=cF0DM~xJ#Gth#?0Kj#aM~jIkG_(`a;VE%pU&A-NlDXTj`C%BLWuUP8QQl0ZTWTdU*lfBdlmWi|+T#4f`oR;Tp&f}6& z?o0Aey^3tPq(a~7i7)(7y}c@YrnK}~syJw~=yt)?R{!l8auXI6$6$OJ!o4YQbE;Xx z{F!dY?1zSnR%o4X(^QhE!6RMs^#qr7wSbO36eP={<)3gV|3|wI#BuPL*n*JzY~+kG zwMe87mJCPHRCvWX>QC2YU4A2*_RTd(C>%|9M2yuYj0+H%*oDSsoa>4RDh zWYp=}(S8_=ap2sG`=iqQCT>nH(~iz)*!elv_c*3kUPa6rkA_L31KALqwT=tSTYJqG zAtkcs>BxXC?6^WKKs`(Fxv$w@sFj~SPwnljo1(XCuc(W~|1!LF*$v<2_8ltv_Fa5Y zz~f;}FK`s`7hzZmG2-rkQ0`-h zLv$DRetD*dUn?$>0{yRBXsx=M+HxZ~#IFLplty|}@n3e{&5su>Y~hji=Y4L>!KAT(e0DZVw6y-P`gv(g%Zp5G}yaI@4cyFt;U zv?aYodWD=L^d&XnTcqJvNR};HGN79G(TTWIwEou)Sc;00ET$UF&`keXdztPw{Fb3> z?N?9;@z2~)(sxibTBlDQk^U!ccNC$u>i5TB{h3ux>r~C3Xpvl4^+&N?JYzyq(;*`V z$=X7Wvo5vbTwG}WzvP#PDSYEFx>bkO?j0)q(;FYj%Pcfwbvv<7Duja+z;VhUNPvz@v;`uF#?9;G6ucW32-IeZ&aEV3(;Obrn(bZ&r+|1k~O zxeoqDca7zOs?665gbo&9Aa-7xa{?VSM_oOV{)#5Er*I z9=D@nop14=UStwT!KIzm%?~*@-Ix9x+9Vf36!VQ$gbCzh&+UwlQiL77p`0Gx>hKzt z<#KvXYcway&fSxU$8H*nSNDetbK^+mJxQ#2rVp>bCz41vFr#vjg1}1|?iLfOo20Sj zz*l3*rr`lrbL-Qh=zBarhmD>zRBc?D_)DMVgOGiC+fk>d5O~l%Wbc-UH#^@C6Nux( zjrBd%3pH>L-@%3bnL2TYL*WI;z0S*conX^o;IWv@K4F!UtV$^B#IGsX?9wlLqt3z% z{iKh2X|)rHqMgtc-j3eIi*1juC@1v3C#6Z(hIutV9x<2x)lFObP^K zS(r?E`@b(uL;1+(`zGK$9YI8Cid9h)h&A)`%7jhT zS1B%s*?RL|uJ--Z?GSk+`!0{?{ML1R5m`65GkW zItV+O-c7(f3C-zMXD2*}-m6zX&w5JKnBaLCU2x*xP}2+G^Re?rBMC?(T~#Ua4^Z)4 z)k}Ih^)E7S+{sWx=`D-7in$uPO?Z*sB=Nj?%S_mdv#e;jJQ_gmvl#j^6(OiPv>2$b zZdF0lEO42pC3P`$+Wvtc6zTWmrdOCgh1Ylgbpm((R(ipjs{7U(6Rz(JWI&q)q7eE z`~=gra)Gmi7LVH|O0{b3_&yw14w!#6PVG0dhh4BXu(qvD9BP;58QUK<#a zS*Lp-ao6u;b8#cmKnPO%4ppP94n(VCEVka!=6wus2=biz0b8yE-^PR+vb?o<=9p78 zdvIqYx553nCa3DU-o|m6dv0~>4ztRO9^reqt{M6;&bbbk-^ z2L~a!B^u?Dsl|v3X>@R38Il zerv7tnmT{loEJxL-@yO+Hk4KQ`c0TNEvDsB)ub@&>QncfdB1r3N7c05yxh$(SQUu` zmmLdJ+rf|}i2KgR@OFK?4*4u0rgs$A(@JTQ8yuuMxNdvDcO%)L5eL?^l$~%LFH*zR zoM{*yo-)JGBbfo^K1VVuRwysw!PmC;>8w#%VQC<65>l5NYmI??&Iv;^0LwZMd?*3X zR{~=w?z}zdUGTyNR<;m`y_4TFX=knkw;-Oq(-Our?Y^>mbjCxP9F2@aSI zcE0<(s_R4PXhpTJdhd$@?zt-#J_@+~ddA65{8+jyUDWIvmn!rma~wvq#AR#=I|-Yadk%ABg63nm zTF$zo^L>5(Fji+C7@2YXX^@u{HsZ{&!uCtQ+kdS1_QhJ#>?P>XB6wCN1PpVnD41{@r58jQ#)Kx=0p_E&u!>ai+O zfmf7<2r!2$eeWf;{UP+m8H=s6^KYp-pItW+;IGqE&&{r8o*n;?a>^(FZ;6udy2zZB zD*g2c$qoWTzi21K_Zq@YuM0U;Z0JdW84=uJOLY!?l5c7>dDl#UP+9sO!_wvI z%h;9_D$wj)DTR}#pODXHPc5+EIRo$+M7`?aBECvEg|5z}dL)%~skd6hfKK5?3|sg7 z_P|m{z)zqM?v>pJ!DNJeoirP2lYpPluQw8x^YUHnQl6yMRU#sg)@aS(tZO@)djUkm z=hkS1o1;coMB5=dQ{2G19;lsw{%7|b67#g9A<@UMDd4-UO7nGt9)iTNn3pbaVZll) zApNFu-n#?EB{8!}J=qu9i>X7qB_MBLp@yx|Av5#0*^qBQ^_;s_K>CVna`QIUXp%)8 zDH`$IF=V>38baT{a{{Bm&I9gcAX>+<#ERsbN!NqWOm&)BsJgHzT;?mxu7K zutc=$*v`$>9tn3mAsYr7SCfD?*;hWES*5jMjg5cJzN@QNO~`#dvyxF}5ggNg zCa}{N;D8jN#~mEz+TuF{i4EVLBW>3Iy_`Q3msp~*vK@3U>(4&r@9!i0Onhr?^c#{g zV}xrjCIsPOVh#fevUGolB@UHDeVH$HRejliUTx=AIW5zUgrptP64m0_(ci2_X+X72 zsG$OWl`;{|G!11fJLB5s?^WE(PfC`cgx`AwCx>lr3z#UWBspb=MuyC2i*)Y(aEiRF z9D)q0!<75K;jb?(At(_YKKm2vE(OpmT-&JKeQ`RA9}z2@?fY6b3o2VOnHYy3l|pUz+H;UPBb{PqV%`0vkKE-k@v*g3WICdAzLK^w=+ ze!oSm&o?ylS1#_R1BuS5-13Yew^wjX=|E&$8%pwBeD9_kQJt*5S|f4?QHWwOO^EYD zK)_8!=eE|fX}_n?UV?}qs&|pzt1h00lN-kH<9czh9+P~csqH4Yt6(Q0SC2#3k%KPM zmut5hw_CTn$K5MQFzkE!X5+^+ZH8AR+{TwrcG8v91Z{On4MbWkn7Zbk^&`0Y`t|eW zfM8$8Ig`9#L8#Eax` zbBw@tFepvD4G;_hn)Hq~!}9e|!6^C6oJ{>~HWU6Dogc{?3|0y?WYIdRPWNCn2Va;L z&bf5AI*?$(25YXCjiw$P2UW1%k7GuOt#P>dVr_XDSas2?m5&k3mp>)g8|@vIB|=lBdF-%Mi5c_nz~qR;ZlJuZXqY zjSeAexajS!g8nND6=7c#LB~0;sYPme6p}z%MO<$B-ISb~!T>&nLV7NeL$q^_V!f5* z+@n;)APhTt>AAxZ}2_b2HQO}=H;AO>*3RrjT%u=b-%DXXSGDA^6) z7Gqv0?YsQetX;cg~_?)fe1T~2TNjX%%r=x(pXQg9I}#PsCA>w+L3S$*Wz z$&hVu05R??S#^*!&nw{G>mlj{b#}79AHDP2Nl0G}t3zfp8g`pie^l&;c~V%}oPRk*sAxAcsY+7By^nMt8pxX44!!Wq;dYEP7lvs zr{OhI&%>FnrBNxRD%;KR&X5r9TEwfqotPe4 zXnuGwSw;IDiuBDF<5VR#I}AFEE*>kZ(vAV^u+t*xXO9DZ4RukzQgy<>ZNJ=)-+Cb_ zJ1uaWf{evXBfo@`SJTX$nhU515y*F-r+kx=R7uHB6L=1fQ}XmQ!_7VZ-E<|{#oX#Z z#@}X^KQ`*|+Fw2+uC1B<@?%KFW^g=NG@$z3EhS$@^${0qGt~c(VopOjgC;D}c-VU5 z$1(44e0%wo+Kg_zJ$R8h%jquNJg>&`QG;q&Pt@Ok$*G)fTJqu4k}7vWNr2`ZBbnqpX`BSjHGsrn zIcdx{+2PAor1Eb)@OngL`uN~_urvk~*yXptN6}-InA8;r#7?Lq=G=T?QD43ouB<2S zG)NB#D;(^`ZwYu~_Lr+LXe46>khH9+E`*Y$=;GG182@dr$P7O_%o+&I^lG5>8`Oy) z9wP7_=iF20oB?O#P|9pYfm1{Wa_Bl-z9|(77K3wQnIkwK(t>ak}M+2brdY>;Ocb35q zPS%X1?HmjF>Vi~CHuw(C&#kTJy1wA2!44Ss<8%Efu1|}1z($3w{{S%&pu@8Px1o2i zR&xi~EZOm7%J_#Iw z!Z2_^@f60p0&G+OXPsG8GQh(OHSEz~GN~@wWJ+X#6J)Eo%tElh5qu*Z((!-&_-x%6hV zg7{o*qAhqcU*<>4u+{~rxRTZvFY^vaa^Bpvvc4*&sF8BnQb$O9JV5P#psE4Me$AsB z0|oUME}a8bO4p|eM+Ut_m$5hBj2SU{)a+(7Q^@N^H+Mndtqk#8vAgCxNYr;b=2uuBTVBo?0PlnpJ#Po=7v> zV~>4tfeTapx;|2G&onz8zS2A?c^pN>J{EX8O-(7E+5P($vpl$Zc$Mj+^rh!FqBUs7 zy8_~Qenn$t_b|Oj&f4Rs?E)!aLRpylHfIVF4NCuH(r-$YS>w<-THZ6fUab;aX+v#l zz;U1dFbzTL4R|BULaZG#{#p4To)Q12m~!`yuV?~p>RE$8^7 zx0qn7f)>0AA+6p1Ii?$49KmOVz~=PGa4=zFWp^Y-CY{&Ebk8UGx;6fNBTKw%0=ARw z&dwjoFlts=NXwP2>o&Z>aT-=miTUv%oJ#}9M3CR6{zPAKF{nE&u;Mu!GSt2ML zb>Ipxu;xRcWs0tHV&HRcHa_gH3AF_S3GS^OVzr6FpBRCh6*~gJ%w&HJ^$-Ccb~2$f-kB`5z9AM{-`Y|?)}+m*;YTPYNUF*@x&36$HsaSySn@>Htxf&R z_+TT?^^x`uPEmAQzKqd5_LM=aY~G~!Y+VE_j=qPLO5ZXkCu~`f!HuBE&e=s+ji}X- zS8@o8CuGiEaY*EgWYzmmQ@IE!*RYoFS8lN#u&A>fdRU+hHkg>@5lU*+i|nIf%FCp` zd1=#IR;z%`s$^Cin1ta^x@2#wD4jiAFd4{xWO^Ax-CgVn-ND>Gch5_B+}`je^O-HY zqT9B>&AUnY~+LCdDa* z##*~8ge(s@zr2`$;7ztY^{xP>toeCshSd?+Fv_zUp1NR%5CS)*;-1heT$;xX2L-R`#B-kjp!8k&jTd%^5C^kz4m{I(i6o)+YP!5Ix4w32ujJs=bSSafPVY4rM z>)k80?wa;eB6pfTnF?GOlM_iHw#Fi23)vVL0{bxZbCHXQlu2iTTL^vP)N-CUM~1j1 z%0zj841vVr1eL*f9P%;D$CyA_ZhWLZ=S~%?tX$vPDf(0S`H4wSim&4n5n%*yME!kZ z2n@XS++k-`t6T7X$_aX

QZfpg_N5>PkfwFE}%ZkxM(IvsJ5(LEgZLLB&2~LisxD z<5>_7!!p8mf8k*c5*Eg3AtW@c(tIx4=QIt{QmBzI3XXWO=y=(A`8E+V z=-#cc_BnQLLCQUuu{-)=>i&~_KV)kqv7+Aymzk9V!0b|sjDwnaB=}PO*@t!MRaVcF z93gk|I^2gJ;9@@YPQz?wvEd4*(Or6O%e}8-zeW0WJA>kL2qG)-Fs$K)WP^^4Bfv!z zH;$H}-N=8?;?D@JB8&L$PlIc(O)0JUMbC@x+qPBtct=MAPZ~6x7sP0S{s``|H&RA3 zLXM5~A?5Y;Y}Zyf!)Z4H0;~bZ0n9r%6?0%dzx-~$wZO&*vb(#xL2je~6Lt~O;XkDty`B|^Bu_$@bGUqMHuH*&Oy+c})mq(b3eA0;st z!La&eo4shHP#aF4qIa+M1#ZaX8X|-tP}F%`=jqfoP7$VOi9S*r{S)gw?sB45qY+jo z5&tf!c*V=?{MJf74kP~_O)g(Y{hoA3lm03yzq-iOA_@sOz(K_vMCsK_O$N0_gIn=^ zG50K_B_we1Qx)!VVKYO~U{qDJU$Zc9 zbLJ?-ZsHF>nzsQ1B7s-aJ~zMI8icUW2({-k1G(XTy^$V%$lP~*QS6@Nsk-T4C*`~j zF^TnZVf&fna9O9PDvLF^g^JQV|I%FGt(!MN(6H|Iu%cOB1z(SFW_(>3&|h=k{f#qw zBZX|QamvP8>ePeKM>^T0W=#cGqLa9au6)n4FqE{O7aUru1zKxUat{OU*)@2!o{ zHv3Y$&yozkUG5@&xu0WW<>5O1f8pR3d?a9g&Yu>F%Mokm^Wei)v=!JfEHWc)g zsc?X%Eu841qa4d6e98#-u)DYGPx2wpd@h&8WaVY&yqPrgCumz(FU(!!bF*Oh!4&D?Xq10t zA}Yi3BwTX{gD;F1#idGYidw+cs6a|04uc|oweJFDr@`5)^+&ni2+Zo?tjqJ)7~JNp4M z{Pp0N_9Z4{C*FCz;^m2MbCm@VlXhc9H$Deu#L&V#x`{DjkyGyBO_%(tvm=Rp{_w#S zzrUZ*ql8BBeL~Rq-5h#Sq<@i<1x&L%dtutCIBRZYjs z>Kz=!`}S>^jf)F1>l4V(a;{gYj0UXZ;ZQO&tTMD8Ua|{Eb#xx__(%Ced40r!;P{V9 zs)!sb(lZ2>2cji_xqxu9DD!Ek5p6sRNYo(#R7?_33irjL`K!+uz=}qWTO<)&urqzY zm5X;82SETLpcX>`&F=s<6-hd}e-7XtP2ny@BvJR7zl z6ykfrds1sdYGWL-jICW{ZXfppgtrx^c2jppzme=V4bBF<1y1FY8oy_gO=jG2y%V=X z+w2e^O}v_Fb-#MJ4_QX)O7qTqBhDF^q#s}#Efs|FN?Zsr0MuTiP+!SQnh5QS1zQ}!B=2r>Q08i~F z(+<~4RZPIk^~$Z=wVM;n#y5WMR&7Z9jh_AoLX~wv4;ZJBwXy{&Is9HOg_y0`6}B*8 zxTNc^D5X(W_sJ2y+nd$j8Ks%&F~y`C|F68NiHu&>2XX2HPy2DWs``{^2yw#X{(eq| zgs%f?==PsRhxCrG+Z}EdJI+YZZ!8f+dey;ojL0g29>h*5-aD|2%6~TpHK$!xUM@0U z6t}v%CtlTr8Nt~_>ByALt;s5Wf_yN05CkM`Fdy$~+`Ur}U?hTAZA>IFB72mHFAGp zfM?SGamxX#t~1vA4#tdZdq^U{WPbwkUq2lEnLaU^s-g*{ijkr6C4|lKT+fiFKX1#m zez!v9lx2+-d?WA`b`FvEnW8I+O2!86To2uSzcK-SWxhK_T|*0ax<}~ENpXCd8_C)f zKe=ltriY?qL4P^?>*VwcgFrzGRu|W>l)Pome%8j*1#I@u3^`F)0n3_YDC~)9LOC?! zc{Qa3l$FM|F{p6*ea+cy_Xe@>A`5SZTYm#ssdx4GqJs)I_zHbxviEw5H-{|E+XQpv z$HHZ2BfP85q<2jeiqm%yZh|xOI9^zHa>u<2ntBzk5=;q0@o&`bZeg1$#h$)=Cu)4Z zvS9yY`$1>Uk{*};N>J?m)~LV7BEX!b<9kh%eG04bPve6OfyC8zp-!f1H6hgt zc^h!DNZxKNooj02FG@tMlqK8z=6HM_=-;kw`r>x#-EV|%ZV?Y|ZhmXlydv96rKIPP{JOEb9)rPQt*ENH%JbsOVxf7tkbTq>ng+x3>}s;qIYW9JAZ^vC5QES+~W zAlsdX7z>PhouS3w2n{gOI|8pIABGi;@$ShL;FQJx$0g^V^(^@JJ+>fN*}{eErSVM| zdzzxuT6yABrp5qBuIMME*e#||wfG)+J=@dazdw7ZptZOm3;Etr%VpfKyO*!$nN7lc zHoj2gzqSIDQZenVr3v$DLM|?1IjoZd6^st{7TEJc(u+)Z|9HikR!%)#C?U&NZWv#~ z`M>Tv9v11qJt!cd&_c$~fT93W@Z=I=qSNb5Sqak%D+MEe)g94TCX@FlCTk^6`Z~J< z#F2yFB)W5kfQk}ZT0)fF4ha^9V8tUhVW(Jj?Fb*z02J|dM$opc;~VUi#yYxP$l&uf zt5>A9^n`^qY*y6!pO+HX%i{b2BP%ai;~i)_gUnD8hsvuHuz)fx6>~m&Gotr*TAz8x zvJ6<)PmUIVAgEPkkR;Uj^(7{Ndqg2gXrNGZYyQ8YZs`T;|?j>*rt zP!*=X@i$Mjjhv9n8<3e*u`YSnfT8XLr8HrWRK;pZSbt*0orFO@-9UqwIa5bkvJa*j zTm5(wcHOUkf*!5}$X)ev{XB{7i7*|gJgiZ%#sWm=?YD^CvpoMs3}AK{+t@*%ge{c?S*|QW;|TbVryMcn@%X^uM_m2!8?8_{KbEUDX5WYB@hMw23@@lUZ|&kH z;C*>l;BW1{Bo&`sULrWIe!^uqHfNgtAj2&s6mjcxt!TE#Oh+bx8+jKrGPR-DEUTqs zkq|x8-rW2hh#}roVQde(b^tZ^j;=W>=i+3up|SZrHTCodMAoV5?it-wMY+Gid7HgD zzN1U19L*)`?NKY1P8aig_!qBzZPz=eA5y9MJz5#^%c|zaX9y#_g}X-NQ=0QVq<|V- z^&GynK0UfhGrFm1k>mQpRv$ji(Rn1=Qs9%-ODvGa!GOG8B|mh zx5v8F<0i{&QW7j590h=YSN`4I8roJ4m_d&^`s7M1lm^K4dGI3SBDw&1gcgUner{ZF z>?pZ2J%y`GgxZ@2tNe$pS|5fC4!_5^T2FF@!Sd32imy##>>t-?VVOs3OUyq@ya|WMJ5R0DZ-t#Y7hUn^1GXqCKe<;Q z1#qj6*j!uwB{}XNx1~rDOX&X@hmi=IR+TrbXdCyhY45)YB6QO*v}9}uJ|*qWeEc8D zJIn)r#sBNZV+>x?N$jx8?WBB@9AfKsLL`)WBF|GiXy)DD#Fyho3%f;8@NDpt0zQzi zFk40b)9Ay;yJp5aygw3wu$jMu@DW3}$cAj`aB6%A?R(xZ9c<->W&*Z?6HO=+_(z(PwKL$^j<+(zZ@KWg}aSQ%RD`4_tV1*N$3ket5njC-2zrj+z@oIV z`HmUO9~TTHMxO85t{IlwDXY7jPz1pe20uMQNDlbZNMC^!{?e1gMau^aK;N|S}cVC-? z*HP6NpOB4S7G3__xEg9`sDZs{bw2)#IX)yMwT9<_Kv7njJi?67Jm&?=cLVRAW_;nd zU_Hu_9Gz)ircqHfx_RIQLvkcbNd$W7i&yf>Yv|2^n;zKHeoH6AMZY-LuWe4Ws%=W$ zGY&}@*&n%Bo@YGu{~rrl59|{*|?!pkd+IW;{gZ2NBlCY?$CG3OLDuC9q&Tp zDQYfOk=lNq_~>ok;5t8%x44JNQ)bF@nvF;xO=D3i`V)AZtp|q}{zlUpPaC1QD!Cl_ zbk=205=gKGg~Jr!e`_fHt_ zSmt%->zo?zTrw+p<2Il9h2I1@YtT~_W|S}m)zJLNrvd8vHtI)3zYzHZw$hzfLswpHR@P7jPwyJ_^m2W( zT$yc;qMJkR7dgyR);tE`mv-c%{~bTU*;6{%XM3zpJ|u^$dpMqxSlzPal83ONgow z@i=S9%~A`4^K(TbCQ*K`p_qZDoY$SYr$3wTwu!xyBd9ZVkH_-MCBuynIe2@8TZ(k#p-Mj+QRbVhnM?Ascl;zFq5(DMCZri3 zVb$`Qqa+|aVyI#vj?x+tP+#GhdmS^)fTZUZgX=X319h}a17JOyl?DB3;n=JK8m|ej zWB<7v>}O?zc>@OZMi-@EWSSU8Qoh@j;Fx{qPEub-4RyiAB-4yPyn5K5uIJds2sWVZ zc@JLv9c3%1B2r$4COHQ`ddyu9aFAKC*@~|_Ur3E}NxYe0Rics&YI{YZ^XG}~c+Fn- z2vG$6Lk9MgYV(|EOT0NZ486-MwKur5@$DY$d^oEwIf24*X8hGwan2UJ$)rVibO-BfZ0} zw{QokbmN|W2avY3=j0Y_B}%_1{_1hH`u$2!|K`9RXmwSlY{MaZ!*^TzySKQOoAQl~ z|5&BnKCZ2#lSyCIy!XJ1m{Swv5rj;Lo%4o_?^NN!YCx-kTG~L*zj}YNB0P<*LF^g& z6`PwvK~vwxi#O^O`4qUC?s`_y(Id01##GzZF0z@L^WlqQCkR+~wja0gw}QE>N)!@S zQLd2|iX#k&3GiTYdu3xDo3}1#t4k+FrP0j)xT5*b5D|(N@@IRUfR)E1>6oCle_5x@ zuZ`_RGbMH9<5c~f;9aL1rJJSO&X+JNHj0tv)rA5?os*D4RZTed@W4c@l--r5J#qI9 z%l&s!3E|k}iI;%sm_Okah)A~3LH&bR&lwSR`5PI!Io``)AyXelb!Zlf*KB;(F>Td| zxpBv8LnZ+?@C9r5M%CXEs@ZVCcO;fBb=bXm6{PGbV-?)6f5uFo>1i?x_jPxX+%~oY zPT&D6TsbxwtpEz_!{GMWqh(sGK&L0;8T2G@m8&W25sJAn^IB<&xd*`n3De*1q`vJp{u1gzIQfeF!|v%i1f;=> znKRWR?Q7g*S}okhC$tbP@uz>d=h0q}q-arXQc8yROST_(-%vF!5>{c0IkRahE+|P2 zZqXVm7p=D1@z*+fFWaPyhC&Q!F^U(%r6re(^+cAT?Ok$14veJm>RB(22YmOq3J@ow z7k;`cRV#*i|0acEbCcAaX%=(5ST+#!%Uk~C7tmVw#WIs|#Le%myuxPidG2R!<#Pxb z3xQ@pm1$4weOJkKX6aYj?<-g&T{!p|8uFFtGPu8!D2RK$uxw$xyN|6`A;8xHxL7q0T5n6BIg?8gBt)~??3 zweZT?rMAO`6;U>y@UuJ`9_JB0`=Izm+sP8`?+1#C6Rw%zk{1mXkd^jj^lgqK4VA+> z9hDkU*~5Li9kUT*E?*YRf$3?fN*?;b6GsYdlZ^3$R5v`!Vs&W)Es13hsg^<`C*r`V zoe$ksr@{RdJ&T`?0aG8@X2fqp?)}XmUPeM5BlFK&xM@Qn?rXMvOHPc>sr$1HOacHKM6GsvggNuuNI*G zZ|5E1r=zs9-PQ0iUok2&+w@4H4i`GtByD(*&npW9zT>*8*xd!E&AkEUEcw&9xhrCH zt}iaqW)I3)dXEaFUzAyvWxQwIoF#1ByQ43$M7T7%xPVB1e~c8zx!cvhG+YKfPTFBEcVzxs9lLS zq0M=ni(cz+y|h(^VN_9{x+jH%-yLt=f}(0>>TwomVG-W4aB}#AUc*24Fx1cV$0YQZ za6pv{FX!W%LS_3TOATcvQFA9LrFoVpfTKOu6H=jBM3QUca@^mcXJp8*(m~v+M64BM zRp1MP`xf({4O{?T0cr;qj3>f|0X3A2L5#*S_QhLAzuL?1p^ys=VB<<(*DXD={1+Ro zCWg@cRRg_4`Jsk$-81?38h1NJ>|!a zNIFyVjMbW&MKT(p-1QZQG0!#ju79mxdEEYYO=t+aQ$kZcR9-S7>tHMa;3>uLJgFJ( zug_tVeZjX$^NR;4YyW985=>RV0RcE7QD*iQA{}nFoAMnS=|#uOcbs-xcAO+~pnVcb z+0K(mucw$4_i~^uxOVNTydUXX_bA+}--%???0V6U3bpXsp>wB6klrgl_RRnhf830( z+FS<$*lk(`?Io&>&z}$o6U_VUo@{+zE;g=f1aQDb!Wj()Fg0=$2khz=r231f6J@u< zlmBq66nmYIMoTWiO}UCvagBc%)hf%bqVh(sdv3dWnLm(K>2_`w9vli+l*30+?95W< z|6tn6^W)&5#^?vUVh2+2+u)j|g&Q)rKOf?Rlc|w~!Kb0ziNwUB%Bfpe%-Xk=@71Y_ zoZ6*{t;eiWC10MAucAnF>GsX=1OED+*+s zU5M={uAwULF6TnmwMN>$c!02<;>|!b3cBz5$pjC=>XX$09-h(l*-@dv^SNvm#mb$Da z?dj8Er;r< z)f==2>ltFyivQ)kJ*;XXvy`(IGUuaQN59v$V-tN(FxYN{t}3Tg zX~@jB_^95}11XBJUg?(*Ah8)8BUbbfuv?_M%~|cur2%O$6_7YAmQx{!B{hHawE1N@ zuRqbwm?DC2>cQRm|9ns+IJEIkwf4JR5(sWydiV+}G;#h)w~4f} zcGjh75D8p}aI}h3BjoybD1=LZU;n$JPT1^DqZlg^@jx@0@KHU-Ne$ri+^Ui*&jnT9 z^3!oPhY$Qgud^By52Xo_Dm-5xsr$k_xMeDQusPr*6qacwu{`d{a8)|mVC$Z_CtGokh zZ|0=evjTy@hVjg5Y%o-pN-F8yo|4y9D`_>lBoy9erF7fu=;oVj3690+Q{fy*3j-4S z;e7^Zp8r~V9(E6hL^Jvbo7a`tc-1vj#W0Sq^Y5KBou_xxVhD<-<=>B7!9(R9TlwP8 z4BQdu>LP52Kup7mzuyS*DD6i&%_xEWr3-T5f7E=O{y7V6>R2f*dST>T2yg)zo9y!u zJfMj56?Z9FyTzHWn-KxmQ!1HV!X&SxjMo^DGo03b0vtk??bgYKslQcfY==~<3$w23 zSnM8i_fSN@>V}rwGAcPe;y9cAo~;Q%mie-uSXuikB*`R2Up~0tSNclpK1>6~(6;h9 z!2T=ks=z)Ihqi8JM&zQQe_!=LIo+@6w*q@(`Oa3?#(G_i zPe@YJMz>Uk`MmiG4zzuth&o!S{I6JX~*d zB>;q9)or}p-w$$6@KHy$1@SJp3l2U@{m>an^egds5Z!PGMxODK#A$m_yI;y;uu|-l zqXIWp^9q#i(o<=3R=RS<)>KWmaEWOif}x!g>knvu4B{40up)-tocvs=4uNhURV_Rj#-rTdbbU6cmC} zxR^AyU6H)=Y;2%hlxe!8E9Nb{o|#|+H`f1$va=3q``y-kf#Pn(trT~6DDG0+-Cc^i zyA}6R+}+*16c6q$!Ch|X{_S)2xpU{t+gpV`E8j!JpT-?r!gb7xAXGP~w=nIhw}4&8k-en8(S|3S@rOmfNzqHCnnL6TI;x=5V;2}sr0YO_evLa zKXsPjsT_Y|im--q&~v*NCpQG#@#)tI($>Bp-VDb=g`EMs_h#D;(-2z^~px zI84>#Eq$Yj=@W%BKr$jyadmw+{AruMk}pw|`7v!r>Pn8HgYgZy2tiDLYZxcSbym#A z{;E|APzt6+Z>7^2UiE~VHem!nwuC*Xh$yG)q*UA?$;L&bEZ^J8XUEb0p@7?RH&OQ< zMomszxI~5FJ1z@Rh2|d(s*$~hiWB|ZZ7?eIE6X{}n^J|jYUMHujVfoe6_H$p3mPof zSI&rb8q0=s86AV=;Jb(7uRWMduxTwqU9J^bZDChOcn>hviw|QDJdF+woEh;W=y`u$ zxRBK`bb981cckJp*(=1LIKaq@BBFsWvy>f8zjLT~!tw;A^9XiE`ITJbyjyRnbIAik zyL*y#OsmN9Zar#cCh4np@sx&N8^ft&JtnYHHT%f*BmRikTqFq_&aBZL^br4ROog#H zbQ4HD=7rt{4vE803_dnG2h_EcZ?f?|90%!}StTw<`pc41Kyz~QY>$BSobs`+_fN0_ zn|v8%$a2%zro&y2JV^L0VO~x9=Rnt-0Kf+(lAr@IZ%5p?Qu*KI0x8?Sli(>C44?rn z7}nl{eN!U{yN6Hl^>&fisfxe^r#|svajSaVXQtNcTFA@aTT(lY750zQvleJX-- zV(rypC(RNc2R@QD8`qG}*CT_P+t8B-Dtn-T|Mc}o?Wb+ph)PVU;}X2Q+sf*fA%%L^ z2L0ufpdFRapR=yp*{6AuPchY=mN1$4nj`}JXllM?E$gkVB^`Q$Qi^W@ATvkw3VoIr zvS#jN5_umCjysCn`Y-}4Pb>gGhZLs(S-7WzMG+XhJ;9?%d563l-_g{5UVI0eraO}V z@mICfl%wOiS|n~n|EEa8xFqVh3vt%7%x^FzpORgwuWy3OLJ4HP--J>Y54EJ6I~j3# z5ii}D!z-=yM6(HywrL`+zS?KKP+D8k%tRM7fsTHiO@y8*@IuRdX9thIHhB=Djxo3E z4CGck>)cdrH2es=+;GQ^wB(H#Ctm(boTYT>uZad8QL zx>k3+k|%(d8$~XQR=+=E?RG-L!*`-SNfB+m1aDR{z}_a^V&H$Wq`(SrZP z2{*AWe8zRU-B|!TLv(FSU+v=Bzn8$xW z=5$jp^Azt`!P9od3C=_ToonriG6lB1&z3Em?Vw{wH2s2qOf z*>mBA|8IWz?QH`^0lNjH?LfYp@LB8t5HK@6O77HoZex>UsHym-q6n^Dq7FAAm$RLK zgY9v%Y_b(cx6FcFtE)1!v2+!%-;gerN5kXNN{xESzwyH-uFf@H{m$=doZ^p|-q-{# zSUB!&-93`+>t&soZ2Ra&IZ{D;iI{GJWO@~cioHbooTwRb9lhZ1$I3RmF<=#iZzaB@ z6~ZjVuTef&$5L=4o;z}D2kyGTS7ZU z|^?g?kr~kQZ|imn6yTECvbM;#G*9aBS{3yk@XDyIJ3&^GoqG0)g@~p7;*D^I;Ra zcwi|x+VWq_co5w8?>h@y5bFOug|MT`WE<|NWL<^dI?2 zQIFeG!-sLtQY`Ipzv*!nfCICZ=6_dwVjX5b80iBp#3vB{(I0n zf}?+(Hi);rSpHu|0@G;Ua^5Xh((!KoF(ddVyYcrI4gV&e|2uL0e$D@XsBa*2?T9^s zItb$}qz|0cl=>n&QLjTJg9y{z1tRH!OmzF}{rfYYCFIfB_?Z5X6v zb2+sQNvw0=4IsIT5wAfE+RBR!60@C5$k_F_YSYLF`tqJRqoDz>x%!ZjAurCm(~t1d zEG|FEK;v1nT_h{%VFNZFlq(v!m9E)p8lo;(lkO4N4EV|#3$jL2!6JA3EgO(lv60S9 z{HFnRlc+nGny+@quhAEqVRoFbERMa7Kgg%leb4Tkge{0&D?k2v30x}tKdd$szkTzE za{&Jj!&hMq3o4Ao#pa}JfBu(8*oSu}!XWqmCfGzVG!e75rc_R-V>c=NqYFD4@o-O_ zINedbbyBw#gf!^=2H7O2Go{JbT{4*juW;_1Vn#|K`o>M9jycUlODD)hv_2vh9~T$> zgQr)d4#YE}|HvtAH(+qnig>S&`CqH0e@7W1#{Xb^!`cMuFONZrQTlBGIGXDnKA~|) z1iH}4$+bY@pjs~u>Km_4H~oI3;$pA5&(JIoYM(PhztylV9rQsyDb&NkZVGWBm@!StQ#`_2qTVo+M}4ke6pX z?iPj#O)YQ^UdXYLC9rQ@A6g!_s{Vbs{~T+lQ&jM`W$M;MTL;- z+^q}&WJgEEQf%l83(3J?qu_WO96^o;P6ciL?on+mn^hk*`~W`~T>bPM&VTRQl}9Fu z{nxGibCX8@x9L+yZgr@5)xZH$a{_CgJeVyoEtED_tQdRe`*8u`&sptC3l!@i*-#}s z77JZjcXnGK;`|l&+|$nx=XaDf{GT3`q1Kl6I*G+b?Q-vt#or;vPJw?k#lzYUdU4;k zQPQn~{xybvzgjZzs;1D$WRDX(QRiPKLF_7j#DoI8n`;K~g2dK}X2*yMssG^%0}56W zRc8JF%{B`3)Fq7m7iEXPtl!I|*t2in&-BbY1@FfR)*C{G_i!89Jc`l3aNZnqU?V{+ z7;H4>U{s*QN1S$M)^_u&<3wz_^$wEmWuNFPuo3@x+?bEv?nQ!WT-^#AtZ8~IY;j^_y~0=&At*B_rbSg`ux|tc8#hx}sVd?@CO2WAo^I&r z^<_ixhrjUCTaZCt(Z8-SLK#2fn(G}J;2gQ=Dn*sV>c8sWt5hmB^DFTUdHEh*x=@jz#KMU;kg@7wib#GC@; z3t=QIp$(&+-x+DhLi7?AJN~NLiV-{!_}cPa(fL*!4oqa2SP6)%?_!VtMg*i$`3%r_ z7wNy`@SJbg6h0*h3jT%`5*W5#9L}fFR`J$XMI!1O@TX&G6fI*H+Vi*+p;=q9cPEFl zi=b*KkpTGNm5?#oY=_ICtNmPte+!=37%`t4Mez<~M`v+TANlS~{7!m9G2|2tuK@^{ zaLsf2QhvlxTk;NIllKXI;ZgdQf2A9V7QSvR((Fo!#I`%5K4KPkpK(u`r!UHj7ECqm zrHHacwWhzogH288!37RK=-&4_=Sg53E%dYUWtNTAa^1>32bvX7zQO~~5A27CrR#ej z6|_&7E-M~YCguUZ`Obw#;yDv6`7oUn_Nfq|xMcL_5g0fr{5T(Ffr{eiUOn!8`pE8> z74H*+cEWmAseT{KFw|9V6h{pyW=f8aZ;jAkE?=K{_){D1HoY)NOkA-IA1YG@4SR}| zLx_xdH&T-wu&5Sh;@vr*U4f?Czq4ppM%w!ZUE{K{5DRMKciRInlcpUpFfd^Mqr$vJ zdmzFA{oJULPB)4-5SX1Tc^D!Ndh|gKN;xGFXo->u4bnodKqvdd6oO$1DdG4M2y4%1 zp%g#N15Wee#Qj&NmveTInGU+@b9NLhsTMEyINsSb^WT0+So+PBYaU@Gw!Z@oLuIXq zO7xo-H(F7s0T8J8BSa?OMoLiC5q;gy0T@b1IzWU|vG1N6$|$P&<$*BhBqnrgvz=m% z`Cpa*80WpUvOVXFNz;f083F;~SFgMuVuPJFX=HE|5>f=odR_XZW`49w1Oej;XO#4R z4*C;%edja(Y!Rk`<$o{+XVD1@cp%|*f#n4x5!33^|H54>xQ7_CIgvrw)YFj()nD}V zG5qYlVZ6UbO2(#xedT8=<;YyA(-EO{c-WkfM)mJnMWEI!isL05^?C-VkD6%(bv^Aw zL!G@Jt-B-4PV;9A-@~?7h4KMQeHT)D&iqx?8%AtihspKDIIle@TE^O-5L1TZY!04n z&bfSe1!5o`*`Ckq6a9O)b4JC!sJwKu$<3%AX zJof*>fm9~kxFw(4MWk4!3nYEkv-SIo;3Uv7bdvz$vpg+WRUd1z%tst!Mx_efx>JT* z{IVjkuxwuhTrX=3PfqkDC1Q~LJUq~k?TNkZOO5Yid}t{G6@_2D7lm)SUtJ+!ELQnd zBYJ6pS~F{W=BoPrn#EUk9K2+Kz(Pa^#keal2Yg5i$Z~~iq0lM2?si!UY)NTcAb4V0 zd#o&UJ>CWL_&6XxjY1Rom7x{k?4u4ctQJ2GIMy0(MN(v9Zzt(ars$atA)O7Pk?;x` zi_5^3QqlJI0{PZrY17~NggbHmTQYbq)>U{Oql2kyeVvMT8MElI-0B6OND!M%Q3?e9 z@xJ_Ay;FyAtHlUIvtGI;VH2rV`Sn@8tonL`KwH2Y++k6XJ8vA_YC<-Z3H`7609;)Z zT6{(xaYh|NWPAP>MPU)OB^qzz4a46I!ohdR!1-Z0b+j8yUjmIGN`x;UpWE?96 z_t!n0wA8QmEGT@mTRI8B?79a=qF!LS{MwflI|t7X0>$0+K&Fb=JF?NE?@OE=u%rr% zz$`ZI@GKz^E)k|rgG*j%qr8b)mW_7ds7T3UHIDLp?bX5V!9RU z`>pfMjbz_3MM1$__`@Q561YZ}wP3UB#4%PPb=>u;nDt4?sFpXN`LoKXwg9NQrEj>H zLx`RR<%K;=UKJFjf0tK>{=&0io1q< zTQnS3?;0VPt3lS5K9C6MC9SUG-lc_uLs%Oa9BC*=k!hQd4&$QsIlw0x%LwEwkbQ~uHZ0C7Z=9v zsnn*{{z7bHp+>=c$TGi^6vF+gq@+DcIY~J341@)i@%1D2evuNXty%6RzQ=7&)2xxP zKy0{q86F$hVmf#EmL$-Le4Q@+N~#iK?Ejn5_Jy zOyB|o$B)J{m=3- z#RYY&SI4wOM=x)!MuOn-2}XjhD(RLRzI8!Z%8I&SLc?XGf7<95kZn}KVAA`fUB2|P zA9Jlubnn$r-5aagan^0)b=_!rH3O;djet;2AcG^en7lpW=d9_1n1y1go0eqh<=H2e zTLNL!$UhcqD!#ymS26bFdvBprp2%Pxv37!Rj8k|yx@A^RGsI=(@0h+`cjSe!o{CcD z-0ei;*Wdq?8kl#*Kzm0N8}5vs zeEhcb64x56V^?c*wKq8&2XYQWZocfQwzzR-XF{rybw-;>$A;u0!Wg9+2DCzPR2kO_ zbStLk8dvp1zc>slHM}UP`nALJ#MNJ^Q984F=J>MWH`O=hwR7UNz=A->mw0_%HL|Ti zEYF_O?{i*@l?l@KIbsWtEA~5t?>Iu2==RW0^%ZvIFJeW!Upnvtq9-#&JboRC$x^|+ zbKEAw!2S%5^ruOZ!1zj5&Z`x7-t2FltSFp#b3k%6;d;(UbR}YDvD%jWA-mF3|E1O$H0SBOD8yXeQr*1QI znEW{TZL%PPphzC_@^JCiBO8nhm@8M|4O^z3?Kyn}1EbwiMv+6#xzUPTm|cyb$pINP zrV2q^d-|i(1Mub=r@Il`hL_!;q@-94T|uEZ@xae;b=##dvB=xEv=@zS9?xJz#!Nq-!#Yq2 zq@4U9`$lXT02NGjQaPLpconCfrz_BrGHMOd@R)mCy9 zVC9d^C^0R0D;q5G75KGxAT+fgfV@H0CeiJ1>5~g}hhtWRlEKLm4&@Czm2kH}V342V z$&r250?ES>%I3-e+&s@ahEmt&m%awXZ_!!24yL^<#);?B%bq)pZDS4*3{#J&o&dI~ zIIH$xx0m8Ewh0dXLi_eS4j@za`h7^<0XNc{E+YaT9bo@#!?eAP3W;lXy4N$ebDnE2IBY{)G?oolX3nbNuBjW4^^( zGc{LCyTB{5TCelYf?L&NRomwmyp?B3%}xtKTf*hQ%ggQIrNO->x`pTXcvqA~&1DC! z&)614_g4A5(FHPt^Rjs7J+8~=@IZk&$@-9nrG)OkD=?^SCM2J+te&=2TA20NoJ@h9 z!G%0~{%;EtRbXzq2UQ8kESpsQ%qJT-MIdW~D<*9<2rNggt*)`ahhZ>mXWbJsC%F}c z`fb;*yJikz70dLKc60N0Mmiat%Ab$*2{+aVVslUy1fIgMf@}c|^RY(XI3JCu^p6oH zR|Qi^+ZUc-R`@=g1_5=pd}K2gQj1gYbM?ggjw7#%;~2mMv@feZkqCYAUDzk^I*c*u+cmW5ob@1L#&=dgBX`9K6?L3sgRRN#cr_iSiW zTdr8z+_yT~e%c*z&G0a`_$^trg|t*2-Qno!iltr6@ZpN~*IWd_H-tFL88#76BzM$! zKYk7((7<_Cm42dWhvsqp%O<{6+oHAJf= z#HDI~lXlUDmj+n{b-@$6#GR?3c3AoYZo;hb1n-WZ~ zm6C0CIMeY%%QqfmYaX~=PZZu%vMb^dnp{i&yvLND#42+Ac{{kq3m^4QS*kaL8YAjd z+Bw%Hz?-kXE1}^UPN_wfl0W25lI|8Nh)5-6;kxpLb$|A;IUX2&T%^Ug^lCCf8Gqt_ zCqHBIx--M{=m0oLFbssE#he|3?6z_zNnm_bT&s0?)Ef_qW}sk`*$%V;?j#$Le4M^o zDuWuY$I$2eZwSXofcpXoul-~2qZ9X)>RX3STEUY}<( z6;|q;P|GOW9?mKU`~ktalsbBlFGy$D4TNy39xjf&zlzE2D6zaXNLiFqbC!HB0w;*HI7ZzH*>n=3h zw`=P?SMNm z)J-b>YFknS`5C_~M2vWi*!6>o%w{_~OkLAsuDB;trt#KU&vTK4;!^B#UK9j)3Hyn*m5FJ-Nmysn14&Ql zkbkD6U~dE>fZ_FRfSgCLDkyf0)FRpN`S_!I{6SFYflBp{x>d8=k=Q4jz+4YQ6;o&qHJ^kj zzjt%P%Z76xnQh8R{9TPXT#l4@L@ptc*NJ!k3V&=v0FgsEZ zuXvN4=QD@Z>eq=#5l*}G25H6s+!;7sP&<90QlNwkJUP+sf7!in@w6tNAFK)zI|$_n z9=((O;Jt zWY=;+@eWbsD;8O!IIZB0pxO8}RuzIRp`n5-m9`_ud`JwT6Z-!GU~3Htp;ne^XaSkA zBjW~o=RS_c%tENs+dv_exosVtKPUge9b6MvUY2w)|sNeelDR70q} zXDh18QfS;{{3tlnzn!kAVatcYnY7*_FQ^`*+Wm_0G=6TRu2o@6qRx&4VeOyU+yMoX z%yy!EUlAsJFC^f`Sv<-)20V%+iyWA=YzGv2k=`4acyR`Z*Ma^yJIFR4PJxz>(m@|| zd3{|7Q}2VQdsu2Sa?imk(C{oe?fhjJu|n3r zwl3wo=x!g-A|FxCswsY*ss3VHQ98eOH7Nlbz42H{lv#jhLw)*q2(z|0(!W%e`{ZyS zQHXNB1GZL9`t6=25m-evj)-z~<;I4hd$hcb9|dWo!ofOMK)grXb$A%Lq1F$Q=B{iA z2qT2_>!H{g750n4gYm4pvux%zOlB_Ury1(A>C&&>D|duqnaY&{w;x(9UqFA1I#pz{ z-$2h?un9=H^X z%F}fxJb=6}*#o2hRKCIsc00cYqm3JWuS`{}|A9=+Wpf4*D;U@7x4hgyMxa#-D*eZ9 z?fkFt*v8U&m=TowX{p3>UYHOc9W%T7hf33H+CSCCB$(}ne%7?Y;MVYTqg%1q1PZSRb_fnJUU-EPiBR>t>Ofd;0Jx zlqsWsH`v(+xiJt5kPSBThFr!ED&r2ojZAic=EY>i%zJnlKZ#WDu*CWiIUqVwpu12! zs6F;X-}|FRlcCh>pp zddfkEr5@Y_HBqWS0iw?6X;7fHZ=q*lV8MbCR3Rg}H0hRbH}P<2KrrD*W3SJob=zy1 zX`=UYJNb&Ax2ykxXQA=TMXUxTyV#B{e)f_OP<9M?b+S$2r`F(=_O(z-~th@lIU6wo9G^>0hzRB!!t z*KUy-&rj3`@nEy22=b3Y-#T^^*z{)tAP44fK-SJUxL8xFE`l(^E;+U^-js#C1N;p4@JzH4_d1B=4Dy>zob|ma`GIz3t}N3AW7AHU(??1 z>z~B}Etg0?ZSp9)YR}a01uQV(1pK6mhM!=229f(#0rvTsyRtK*Kc9KP;mJMw29_jX z+(HQFPM&FZ1JtD_D)Kt<8mu#da8>EzK!^vW-|!Rsqlp(`Zf4-^Jeu9Zz3&EY?5$mr zb@bbyd{A~ZlWD=h201O?cVSJ%gwn~zp`8yT*eC2f3a-_;NNh%Y`RO^-i1dNhe0Re7 ztr{ii)v6&Rmtm(7z*4iCEhb+yJ*7Q}0ro22Z~YuGnjSnl6a z3-aW}g%!`T3i6OQKK*<~LaJB|>cFvHYNXK3VnI5q=og(RBwQ$dy3*8z8L+Xag{7(; z2r#pnKKBi-R)`>LmYvvjQ9`b4YwAT#vN@<`61 zsYR;j@vQO;8$-z?85#<#qquY5SO01)Z^4b#0}5X zs+>OvQ$i>1!i(mb+-vN|a^k71g3RdP`gP%th1gfhld`z_M*BSs-a)sJnM~1m$Yj1DluZmcI|@*jkcH43(EsTaw2gLN*W9oQaEI_ z!Xj2!`)xErK2U9NxfbJ@o>sJ?AI{4nTUMu91pg#BF-p1hT|)>tzzq;3n?t{^VObibDPn zm_~m*+aiY&U?{4VFSEs!-CzbqSBZtkdfx62l8qd}6JIi+t{9ZD-ZjRcTG*yw!SjlW zK|mJvv)v&Q{^$qmcJXZiC$CN0Fiq1NPOQV@lrV4Br3a(k5!M=H#W{sgA1kYrnCjTx zpwk+>E;NTye%*rH!dG%lopfVDUF&rkL`iOETM_4OFmV+IzB_jdkX1YSB`Ss}emHSPd|bH+72 zGyIs$S%gihcTNTJ2BHe`#xCi)JNN5dR}+)%y*@(LCD=TD7L539h5q(n>C(^ejILg= zV4RRw0Z&(OES0%eu;(G>lhL2UzncAM$R8up&2xkI%2M&@3lh_R6%?mRC#Sv4Tu*4j zC6)I_gO7PjUN`isQ4OdKa4>yCP!Q5c62xgVc*t=A5~La=n4lEwKRsxlWwGpMd!F?& zuIy(!C40p(yomL5bm4_`-r#_9$OZ&5VJm< zeKCBZX`jTkr`rXfl(At{iMLK3C|_^QXT3rs*&%{DrQpScUK_r7YL)#y<1Lrd{W(p9^W(9a@iGB8Fqc%EzgE|eZM z$G8hRqG%<5o3;UG$ch0~zZR{)hSnWrC42-iMm@Jhh)N+Tg5p5O1xwWN3Og@^o;6){ zY>e>C`mY8n?{=Xw{jM~s6IKfIgAkEeNC|_cyaC7%lO!E0FZ*A<%n@JGe568L-1oP? zY$Qo_)zV7d`VioH1&Qn?@!~jtk6RztmpwVD*K@UqxH5-!1ldypT^2K*okg-n7rOGN&P`Zf@WsqaO9Rm=x?Am z-1?e}W{yF`wUq5}3Q5eHW|~CiHnM*=PNeG7uOg2qHGgo)!|5%f5(xWB#Pz`L7bh5X z2B;$0HpD3%`_@XrJDi&@0%K(ps4seZ3nHwyL{$gq;vBCRz0$p2cITZ-uFyL0LVl{6 zmGHVy496N|KmlytsFGF1Z*UunQN1A8wlvpZCkq@B868jBEjnYo>xj=LR^~2|ba09T zuQF`?#bAHuo=`Gcg;?ZjlinXB?823Hf8_~mD^EMGhC9!40^k=i<*yD<23UahJDKsb zybb~libk8xEUR43F)gPQ`+?!yCHeLd&ueh`5e3zGG&Q6q!Cus9q>puz>2*veDABhV znjUCE*}Au<{R|Ww+h;IW6rgGH-;`3&f%50yQOMmFHs2&&xd^4qFQ7bUtjj&N1Fym{tUi5i z&&F;e#f3X0m$!Aqp7*>RV)n^vUM^C<|CMUX+>4cP4~OdX$ElZHB&E`?x*_n7FBLKe z*Y=Ei`^#su&`qOzM|$w~c89MAzKmESMGHo8+r%HAsf;Z-Zxt6Z+pu~(?XHb%yB9)Q zZ&Z2beLE4rw6^_S;5VOYuU!acpS2l%p}IXUJ%V(VBf7E+YX7x zLk{#%TOzY;z_|@7V{F`E%53|R&szK^O^3|zQ_+`bNJ)suqC&GS!oYNy{ipJ`W_FaY>^xbvfRXN~hi4!;p< zuUyec2K**nRy(d?7m21&QVR**CX=u-gS^9Z-+2jHIqn-iyDIR2pr&pG=;{3m67 zF}H4EiQQ@L}% z4PsW;5K80jJ-+WBhVBh~vsth%DMs2r#HalDLAvFqlcz;Z5JFblrS`Y5O+*GI^nv4L zUWkkR&-Q{=tx?LGB)OblE-Q_-5dENO>%ctpY3d z9|T-(#TB$B9zn(SDZ=(-a{I1xWyZ{(KRm7PG$AB7=xeH}ryap^;K-gr8%#~Yxlr?> zG`kvDNPmTw|9F!2WyM%#?KrSfwQx&TQppp+g8>2VHfE^lsirzGHLK3k3a9W26N3cX zYVsaz6 zH@dHc-Wc65p@hqDbIsWhek@D{yMM@Y`@y8}fZHIWnqa792!-+2iB89o zebB;3pDzihj`^)NT*8dn9mpnyl~x7o?t+x* zjYr2}r%fG09xh~cSDhEaxedx(4INO3%Z312qVex+(27;tV-4$@O)`fambI>bkSuvR z+lY?cbl`p)C53uR>d0gb8RGd8=LRyw*jyXu^#6EohN+#}2#S=Qc<`RD?s>n*M%UV# zOV^_YFWmL-=JDNX+^@S-YmSRbRae`kx2kHkHgt9l#ui($1JgPl;%Ac5b0U2b3c4Uu zl6xA$-Lz%2+Ir1s+ImmxwOlM&{1<2)v|5T%4C2mRzj|A@8G4WO(Z4Xh=v<_?*UqZ& zzCODa$09ebZe$d%?TcN@48g=wA1QYc>MrRB^c=PpPnpdoJky%VRfWd3I`2i_ zsNd?4(Xr`0V?6C&T8a2qC-s3^9xM6j<}jhYl?U=mqk32A$bd<=r^*)wd^baF(=<`60bG=g`D%!eu!D}Y2K=E%Oh zBKhFw_^vSisD|VD#0(elOAbs4@9zCZ?1x1pFWyChm=pOjW_Glvt{05RBH8Zd7O-Z8 z5ze##Au449g+L<{I~p%~Rgr@7&&{^e$Y&GH*?}bFDaEl-%w2~cse(=ko zO!N#P*7c5*{t%-Oe%mGaM=Xrkbj6GMeJ#t*kq%>G-@|S&z?TNL$TYEq%XTxoTWi1C zR>r~;nTG`EY)uHHbx8y0dJD-U1JXNM(aIM3FZ8e4H$LvaV8kz&k4##!u6!citMJr;iOnet&$+9 z6!hlu=wyeF)U%BN)%=IjbkQ&ruerICe==b=KZpw6*U;gpefa}JnFhG&&yU`ZL+!vJ zG*K-%WHV=`MY-5K-YDo)voWXenHRAc1jHadS)7aTBh!-ixF&zMmM!dSn^s*7v3K+( zT(w@>j=oz*)jU1YjGhz)%A<~4xl(qpgWT&TV>8c14L{VQZ8fqRDW=)ljvcjpM%(AV z3&`VE8fi!jbb>Ek3iv{Ukpm}4&mfai+%~zCZuuDd>XvJA>+k<4#!R{* z*Gy3`Psk9MGB7rasXIg=IbTHNh9GZUk{S^9_60mE#Ng{?0h&f%?- zKFs(naY40GV}Qf_U1bPLOs1z9FYsH&q2Gnpi->46vpVp7j)9O>lNs7^Uy{$mDiqn= zIe-X@hC*1o?JZ~9eLNzYtlp7*F%SUqGLmC+K_BrGQcyYjWMe+sDR#TxIBUQC{PmTN zL_Vc@u@JkS3@e66M|=gY)zq2lQBP;e+2VTr7C@MqA6nBUyMdP-IHAaKmG4NltzYZ@ z4ONStUdVtXBLeQ5y21xhQ*y;0N*CI9XF{)!aaGh`pY=v0>K|=uO9K_dJ?vW_$gQlam?QZrB?lZVtxOc3tNGzs1T86#f34(uS zzv;bb(K6t*g68)rU@a#+6o4w5}1<;?Ad66o%u)LV* zK73pCLTxs*PlNt2>+IOSQ^ld5AFWJCU92>1Fn+fh-tRwFJz0e%UHrw)00W$YZYZ1( zxHaY*Wa#q~)zn7MUr>IC1v4m)`q|-z+B)(raKtv!VcrQfX(6*brJ+-wDKWtHdNx0}gq+Va2_g6TvfE z=j{gA4YY?33f9zpg{8jiSU6kYcr~8CLh@adFhWsJrQscKP7L`cJ$-h2SU(4R3L=S$ zy^44}&}aa$ zih8hrmK7#L(I4=Hoh}rxz(lmeUYnXI`6a}eg}!_&*IC0EUJZ2pl>K!#@B9b~k_%5! z65SUQ?&{$g$+2MY<3pM=4&ot|678v(KV0uZ>QmbE&$=`PmAQ3KKJ#B@p&)*){m8S5 z$i>JBW+tO!soM$mU$Lno{77@>BODqKKJXwc@vs>kKR^l3Eu92kw?H*BTJ$X12K$&c zW|h*{iX|C#`vo=Yho|JWkZ#W}pA+?kI~{N#OES8`M|TU#u|wErHp4~IAX97)(Ew`ORU-5z^(6QR@ySRMMdf0 z@VIBKldQJZ(S9q1g$?feWxE$aCq09(S%t4UQ@btVujQ}j*t$Cf56N!IkEiFdDe!??~qC7RtO@!JtVg`MmLV?KA!DS2UU4OT)iNZYG=7VI8ZK{4eqpL z8;*^!=WVk5!7n{$BQw$Ebi#hUS|38aUF{t(1JD0PK}{U^lxbqkBNg;!g_LYN1wg7w z5Zs?WJqU|z!-k332_5dpsqX@Xs_4G^xwH*1oAXVKRbZp^`s@Yb*n3PBOxLt*+C*2TuyV28qj;FK@y}IPhz^NlWrr(WtXp z1gKVMk?y`iobY+!hr1@^<0oyqyXkf!>7}IP(zMGVPDLoq;slCCkO;cQf+c-CU#W3B zM!Oz;gY-Y1CuU?tRfRCqzgd9au%tKH9QW+8dsX#g58LCF#BUp@Gp!0w8X8d6HrnOCCPLRjMg@*ymc7aJJ26J_- z^h3KfzdVuxXhEcPJrM6EC!T5ywG}yA^>yZFi;Rc!`Hf)Id#w_D61DCMy!R0x@i?sp z8L$)X>Gd7;BJ>Lqok8(c_vT}ke+yc7621swbmMp*$6o2pW#n{dzAjBtTr3|^ei7aM zRsB_poylK=Nc_7V-^UJ}?+;NN7TCPQhe4tXfL|*(gm&H$8?(YW$z3PCtltp)y$NF=P42?C*}(b%%<1W{o(&o7*TU`4ck8~E0pA2$%b7`1eSe1J z(@t>6H+loZ(CqCL68%7i$3t7nK{22Oc7oE3_keJ|fLmB7GE02wITkY!Ur=BN9XEG_ zu(T&0YYhsJL11*Ww@0(gz{!&^A{D+`RU5~Uen z6H6h&aIa4bf4Z;hR@buzcJc$+*zrb}i{d?AiQz^Ye%1$_v@BMi&J&sz8cI#|ef*Mh zBd*%&A}uq~N*U2HW!N2AZA~3WNW%hLvsgidpQm4+M?MW{=`PNXQOv6Qh0--ibR_55 zaKNKqf2V)VJk}db`gA_CO>|b;KqdCp|2YjI_R?3_S0yCzy$~X<3$#)6x2P~~@W2Az z(J?JHQ9^D~f0;qV(h_cZdKy$TKsPJC8eGxY*=cXIGCqz#r&;e89ZiRTFe(COB`t5= zW3ebwM`aA5AlB`>gu8;@0jnoVE0D|w$+bw*S`Ef;Wox*TvaWB4M-`89IZK1JGs~f$ zv-$XEX2vWBc!R!^e`blN%t?51BN&CTv6Dz~e_ZQ7u4(`L;WVVRZ&V6IB=ulsQU8t~ z^J$k`y(x4=nr0JF#M(V_$YB$hT;&6`9CND}!QOW}wt4Wtyu;f)f(~$rBG47f@b3%0 zlg_{2zLjg#BNGJhNo-Zoz}q|ip3KFH%{tclSyh&hsyaCxK?wqW{++D7zesp*^oWW> z^QddE`)6hGwK_ZXI88bW55;6{?9A$>-ZRT@121@6;q2KP7||P7?p9ZERDC{Ndh^1Uo2f%xV&SzyVNlhCly zH`j*AuyhwStLI*^`cw0e=l+>yPjc*1sSFu#at1rWjK)O?zGf7-(`*ZalTJvRWi!&# zVIgB)l$rk4RKc4CrWG!46h%9UKl07UB)rnbRS zCWU6NsSGi<>|FLzBi1@g>Bh*fm9}&+IeIjlC%3XGGtzFZfdfbxrde^1S9h7B40h!S%-#D3(#`|(8%<^Blx`TfnO2^80A1=8yIVUX`htT;EMM~95^jCm1rU}wEkFnkrW2;85?`U zdd&v2Si;2PFGJYhS7no-ZhMNL?wP<`ea z>o+||7)rUE#OZXYO8YN*t)?&fU`-4LZ-J}P0IkXoTsyl{K#L#rRMT76y}x<=My*Sae}kHqarBg$)_*kX&z0E8zg?wPCmD%fO`6Ow zW?{29BUrYWzcGxBz+xZL2C1t9tF}n>Wsc*JpSsOgU~7MF*P@bU3qR9)^mYw=@*=uR z2gxX$9;vSWv)xf06pUJt;I^c0$^|0CTZ@G?->&di+54i(NpVEPME8Y_I8_ebD@joj zAkD=_oo6zP&S9INRvvPL!)O-hUIdgZoEwlb^{TwjmRo$7Fa+(EbIdjm`H0;hAa0bVdv@wcf6I`(`JnlC1{1TP7KvCZ~ z!)mvsP*EksrQ(?IurL~up=|AG-g2G98j}MvJt>QG`_{UZyeFzCU@(Y}@Ha{$A|pDs zs+)(3TCvn6BmS=VzotE3@0+BI;IG`9&UuEK63X*^@b*VO(AEH*cT<_?=_lDga%~p* z=PH&wO5Gm$vUZAHFe2I-b81S_HO-ki9rRyGg?}pmTqH2hpx8eL2kadc=oZk@sSS>r zuhZ8Rkv5(2zXy;D#D&KWPz(n%j`RQpNudP&n`hVgb2?md`U z|L)uJA5qPwe7AdPpC_HofqTR%=#esy9_Vq7d&Piaq%t2m$Y$tu{r*9n~+89vOxy19w@{KP@MSv5gZn4bA%Lsub zIv+Y`q**PEbM~YUf0XhstAp)BAhFw<>>#>27m|cv{^ADagQpduNht=MD$ud2xX|3( z`J-40bD&B!3C`%aBkpoCI(S$0(4{XFI5K z{iOyynSli{!Btl|hn7G5Tp)gzs@~g_ee{#a5IK^AK7!*%d~BlhMKd zFwGR=6SY<7+r!IWtYUFqP`08AL1kVxSjMqF-;Dzv@1}r(Su4zD_)3W3LKT4uEpir* zDv0!D7Qb8~SxR96W2$Kq@4kTbk%rz`i+MPj^kw8DCEAR69*iC!Ld{4#@| ze_6M^Ym+?5=S6vp^SXcHQGX_QaHgQKQ5Ewtl=l12P+AO(+{#$#uR#Uss(N^nVDH%;L(+h>Fvj%Mj4rXyE2Tihh#|i3ZJLj$zS8OGopC z(Gtzl7;NOYI1F!pJBdYZPkp@&S+*iua;idIr=X^WZa}yv(ZSoFbqPtDM+Ke-m<=2p`oH;Z+B4n%82>1 zyOGLgH$r`)JP-#1&Lm0zzMp=}h_wV8zTq9(N{D|rWyIS4hNsOUv*!rO5v5h0Kg6cbZZNCN|d)YMeS3a5hNAgpu^)&gDN4mFz>3~7(u*}M6s&b>f< z(4_;ESG2*%d@_0ZQivZ-Ld=6wMuW}O@Gi)>ix!fYX&F!;gZCxUle1M=Qi^Jg6E^jA zsc<2$R=TQ*VGt$_Bp1i*jXpcDOz~s7v-Px*QdUGlu=r#}FnuGBbb=+xOoT_^$T3eO zoWvjR-tGzT(VYE*yihP%9li)W(;ve?Oq_r|#4^TafO0lOZ&vu&h%D{A2znQ|5vZ~y z5b<9?R`>p}IFn;6<*pAZ(?h3w-ed2beSI}JF(f5!F@sQDWb<m6D=kUsXq*JqyVG(fVxdKK)t+SkKGi zpO8&%Zr_Y4^$aYix80DL2q@!HGso+*VjvLk3CTFIuq?|*hXrMv>lrR~Mn|Q1Jns>| zmSz_g7IHOVWv5j5Z^@w>27@y&7J4iKC6i!UUS3yEkB;Z(kBSNeFUrOt{(+#0OLs{7 z>D0`L_)?1e7jLk>g9F5^C{Fg+=XG1uJ;Mk)_5%S@0G$@FEwS3$6ZFAF+;Ieq?3l3J zCEd!?1YE9%>XourPy`ev=!moN7dfu@=rSSa;92@oDv*bcHy9U#nnfjjxGQJ*l3{fG z%Iz_<85xp`h5(8|jGX4J2N>#Om-=KNg5a(t>wX^x&sj-B$Zg7 zxwFJJ`wbjd#3jBt?>B1HwlAQOATCgF?TjI%$oJAGY=ajP2h+^c?Qj)pY~k@&szM`9 z|0N80f*hYL5wvo1TJSR%3mcW8BwJL1c7v7Yct5 z1vMo;7=V=S?2eRWd>vqy_N7Q*0KYPe5h)8pT4??*Uwr>kIYa6YL)ERq??=Ob9c4U3 zt)EOD140C0##&s?y1Q3U={xRuw2zO%>&rB%=ZytR@cAx`visNn70*#o32d(9I_NjL z_lW9h94=&E@790&);mj7{!1dfGr29LKqX4!Ft_QrajY+n+-+Gg$sa}oU3b{^B2!wk z5u^y&aVEV;;I@b@9^Qa&`R*Y^K0nZ%)XE~$=S6eoR}0cYn>&c7HuVc{X0+=g-Xrgw42@3Gct@@FE-L9M(BWPB|1+63xGu{DXL{%M)FM3=E5Zmc-V6zh` z(PP{4h+Ml8n)H^UXK7#x5~%YoftJf3N&asJ5+0*_%*>$!EI|vYHC`)f51dw}N&?H$ z3~^4XfvfZP5M%kcx+7DoOsjRX0a%I(xIygPHhfB4k zYXh@pTF$cT{C8|)}y7_q5cubsk+#D@pDwue6hIj3?2r8`QR%_a!TO!Per|{-s&a>2%FW# zF#%JojHf-U-j9|8HxmVBI<*V-%0hN@{2Sm5wKOwt9ZAeIeLeqWg$y#EdG`yUVxW<* zvZ5(p7P@XeWD7=&9RjgnT%KCm-~C!!`IXgm+o0Pm33lbP+rzzB1IrgXS?|q&CrtmfRX2 z$Jo*^8RREth(iq;2aVvqK^-}3srqAGtGo6%KckAZRUQVngNbx-qEWBohp148{+?rB z%8-+6r;k$H=Ls-LvQ3d7E^* z(_BI;CWZz&D*eXz@zNRGa_B>F`OBoS1bjEAR8@&Mak9MhZeWx%vLLyl;~c%rUVom^@b2l-sEV^p2n3bi&E z%*jSZEb zpM}a8ap|pfM{fpxMg30unx=d3>e&u*$Kqgr0 zjbpVj_>t)H;|v=&to*x>ET8pG^iFCS{@!_A!^KcEB*ic|D3De5F1?8ipz-UfAUTRu zFf4TvPW8Dk(FT0kI*lv&*BW2gKm=Y(D#b_I#LMvo-}7J1SxyI0?UscL9ay5L)j{3D zxQjh8jc||6OP9F66%n3DC^B3?jp^6JV2tj>(?S(ASo(8u-$V)wx~L2UH#_d(DAzSq zJ@$=vv>L0A0D(RSt_5h>E(h+n9i4}jyR?++pvN(^F4JFk`nRRJ;vTjv^q$q6Ru@=| z>^{(uD#=F&-&YE4jKygVL6szsAz@#eSA#RIlafx)ACdJ@ z3(UR-4K`s!1@d-m2{b`;qkj8{Cu;8=t>{d2Ih}{p;Xpsl?)>yi_HaDiRvCe2}7q>P;tdO(mIA)*}k$~mCGx{mC37eouY8u8X3Pe`|Pzo5Et^o5R`PnzKB;} zj0E|3ZuL<_(v4%s=w8+X!Xieb>*t%|J*_)N!qW#i(fQ838J%y)znVNSBTQ%pUM0Vn z(DUIFkIb)&4YGT@HiS|wwub+{vZ8^56*VuBJKtQs9UO?e!yr6wPAm|HyMv-!=&n%f#&0Y(6orVBmO+qmaB=zN0Igp%N zcU!9dgfk$Q>yi)stdVMGvU8lAK$7iT3S8aIJV!PMn6#5)jvWxT_9oCk_NaL=c>r=U zq&PDjWSNH}7~g0GWWWRZyfCM*suy%B=kDwPd4+_BKF?H+!VTj}HZ=(o@W)HFph6Fn z6=IvxAKS(%Za7kJF3=CF7Hp`%opgT#1{|ahZs>4F5EiROozNyoI@Xp9!v;*o)F^F7 z%cE$w>T(ZhvvD>(sq<_N$23&&v~M5D>T)4Q+WTIfnh7uGI4O&F?Z+G!Whse-O*DC` zF2CY@r$7n;7D6BH8N54%#7slz*#+fEnT`DUWO$nbCc#3D|Lwqa{$wG&|LDVs=Kb=B&}7LAR20ePyd{fMi-7%Q~MKda&wJAr$+U|>BrAL zQS_n~4d~mnoF))e4WMj#`3!+6im#nUF$6sfj~Y@B=Ny--DTL=*>{T}uDyg9_Fnjtg z{y5Kq$(>nV#k;heDmfsdYE3#-_L7&{Pv|Hq1Q0y@J=Qtng7UKsDCa{^onAxm_cye> zAs1aX1{bfeuv%3Re5=S+PgzY1IftP`8Em?S)RZWBuo_{M86!m{e8Efe zgkONNpT~z`bk$#dLTkK?(+t{T;w*5V4t3t43x9{u?x&LzulcR-IB@+bByMR8!;c!g z20)aR2kSz!*8YL4sM>JZS7?Z}xU+c2MsI`_LTaTJ%7ArZF9_~j4F$gBBIEqG@GU~7 zBQN=I@FpNO&9=CdtRS7sXNYx7!@fO$u-=x!@XurWCx9 zcrRsQ&l{ZkLs^&6wOZe-0m%Cpod8>B_`50xRY5oOk|Jvn%{R_-AD1r&O;#WOMkZ<| zOu>YNF!ymfJHHV8iA>A`USeQ+z~%~%E{ETPrr2a)sygw;`%UT>R zEC*Bq$prEzmHV@89(Y{YK7R zGC|)Ny3nVESIPdR;^knDMYg_PNExZ*}+(OG$D8{4D2t&Ga>6hb}% zq#k$#uQ2k9^`g-<3KPnCjP(t*G{p~mRR*g?9;{%QRHVUlAu(sl%JdK%mxP9Tq%vBr znkk)2hZa7>Zw{HiEB#wfAPh`#I`?0a%n`sKhe6-+Dzix;alM zE+oIk*kex^ipNk};cEpq0OP5@REz+CIitwC8xJ(|>l{G2QniPqnkh*6MOvKQoF_w77F z4Jkx8Dm!n7ZKpgoJ#MkP{`k%NQKXxOtnHGyGpxx`tRRq>DE#C|4R;aA_jkm)zYZcl zae*cTys-%rk|>|25N?U%h+d$MWS|5yr1>PwDgLo88E*e{vFGUW&Vv0u&5u)ah+Xm3 z_f&$&FG6}4yEpDAxb>|5-{cIzT<_5hF=Kkc|kZajwY;;^6Ee~%CN2xl+ht%MV_@|f2dk}Y5}Ws z-=JUH21SLyd{JF;=>12&jxds=IbEwoGjVf*lk}*Dz-Os-{*VwD*V?!XcHt&4a_Im@IcdgIWw&5N4`1Xc%d!N10 zkf=V%OO^gI#ZrHJQYa8C4$9-=&r}de4It*4k&DMS-b_R}&YcYaD+7*BQt9gyDguC@#l=cKwMj zjT;0|Sk{YFru;p>9*FM~%X0wZu0QT2U%t~Dc;FtKRI0#vkH-`zg~)Ak@agl`tNQql z*|Vut2u^a7BYEfyf5R9S)?CN*-`GEv$%B=~2wA(_e- z;38V}tkoLgxEGeI_P1F5D&e2cqo%Gn>R8aG94FDOrY<#{W-Ha)bf_d<8acQ7QgFAx z^32W1YG`Pd?taNf)lR+z2&{HYxe;WS57(JDD6L6KoJW<>KC)}yPTV8zm88jg`#ff4 zAqM-!r@j0DH}If5gyWB4t}i0Ogo%R#V^B#}R3KSgN1oUWm{bx*KPl+(<^bLMr;zLBDygyhFSEh z8!^^3WanH~CG}rhk38pkm6Zkx(Vvuq81InaF|^OerVt`F9+;rR&Tj%B_^-D31N^NN zWV70{-Byqq-Y{5<*m6ZHnpK|jgu+G=X68s9m8&sBvKY1kRoVi=f zYi-DK(_SNogbG4KZ6DR93Q@;2Ld|Oon$5&f9^^v+_i66Eu~|u@R&-QKz~B(!g;C{Q)B+_?2&G zCUjc}bb>z4rM)J#(hO$h^iM<4FAZJt>Gk_I^8lUlaC`yH za=2trFLx4;>%D4y;c&)%wd6FN2<5nY~J!9(+tuVO9JGO_T8ogf$se+5lBwOwb9UFa6zITtG>JPV@l*WIdxgKRi~#kl3VxWhqn zEH3FDJMw&rwzV8FKb%!FrBvJGjBhTY)uXNd71@kW-9CpLvO3eRJIu{Zeg9Ua#{r8K zBx8x+^oEE`4aY`pd%Fku6E&>Ty!T!&E-Ko?MqnU#q}|Yk7KT2 zfaEt~d>1gR?Gq2ZeGO{F`|Orj!08J_=Nb3r)h?#zk9HC1ZCl5i-fcAQN=HIju~~CC zN%N4u$>7<5;~ekaA-LxpETLM}%}-}71P0Om(k?Fy?l!WumBk+UgPrp5A!sCwT+U&t zY#GLycY;OP$77?enox6=NhuMMuTz77n~R)Cvmtq}c#N&O8GO?teSdpi8ZFKU3O?%} zHO#@9^9v%!hOVu9ADFXNQJDPZh3Sh&maZVz(qSgB)+oa4k_W#I)^0BJyOi`e9>40xR-$vMsHQ*uTDqye z_2*IA9eYx;qAhEAGF}lyFkmrd*T^)P6J8DlWoKb16-sI|PB_WonXwTXZ+SsBtaU|W zO-|Uti_pi!bU%D0RA(=op~Dx(rElu?esWs{Mcx=Dre-QPST)j@18OPI~uYW z-oI$~0}-<%d;65aHr@tmA+LKZt~3|;Ik&hOQhGL%;#{ph#R$(y&$D`C@>Y=Jrl*L6 zM`|?d4kA~1k*mK=YYL_EH(HEo6rZWINMsO3x2^71hTA>&ZjX=a*(A6HZ7~+9?X<$w`rw zzmE`y(Sg0$!^^2de4EB()VkkPzSG=!ZSqW6aDthL3jLxeagXW{= zFT$7)LUO^3zKkm0w{@V9kAL0hJxxmG_W`!MJWipdUN}!xxyS#Q9rk5*bvPianh)sI ze{sl_9H+cu-+&zP+3b~}@$%r5p;){tA97%*MGu+i^MG0zOM-lx$E8_C3WwPn-wJ)x zlzJeJ|LsC${Fb0H34+3(KHNUvM`HS_S-MshXTv-~P7v9*HjUx&B&XWj5*W2QbgNcs za-R#={hD$jm*0LH27$Y}M`Q5R*Zu-N*4G=R_` zXYg_=MV+UaF^$0zo-4{{KGX`7+?8S-!g#!cAqU{s^QxDR z?U;ONSC84$c#Zo&z!d>w0^gHE3z1||Sv;N*x_V_|o^`kANu%I!H+}VxxPLuoe1Ee8 z3>Gho!{l4U64ZRyY#m21HtF%kyp~mV*oR3a(nDhy<6_Rf12V3neI0p;jDWSSRLcTskiMfXPeju2z%_;}K(5+Tx6 zKmjU1^R{GzK(aRbi6o`6T6F%>jP*+UeEF3Xy+c1}7Dc1Vc@+baD+M71NfPmXk%HrA zOMn?Gv_%75m)Pyi=`IN6IvM0c`(r;wIktfgSLB*+Cs}EB)21NrO8^Pcm8ySC+sIs1 z_H7v83GEzMCC}AOL4;i74KJ!#4)!SX3fod&{kU{>m!fA%O+u)nUW9y8!++QspqGS7 zrAhuOfHdfWAJnJ8u1iX=t}xht_`tf3;OzZcgYx?9&J_n*;>TR+zHCzP&=~KK7;Lo91S+w0vN z`4JswPh|+2uJ6ujp&JA89H&^OV-40`)1lnA;~&t(Xm& z@atyc3J?A9d9QqoAIJN)ndxrmEx+)x!dDISxDGzF3ffot{7|*sH{^wV8^=1b z)(V;LDz|l~#~#la*nHfoX7}YN9<|_Ez=V|z?AEa15DeTP@zL_jTbsnel2 zP(EJ6p83M|>frc1uD*eR%M8qnT`&_Z-MMH4-z)8b_>uEvACkDNj0iTXrChZd<7sXu zllgAwWa;dB3OHcJ z=+g4YF@oH7AAPBH0%VyTeQ5!@Tvbi&Wa+=29^JbQt#N|94zC}HA$!=I)acr?n~{`h z18HO<`*3C^Z+O|HkBFX`hD0JUbUN5!QGeO2?5_Z$AZCc_w3JTNfF}oi--0AHEsxji3TG+1fG+>nZY-!@_k=<@CuB)?uo{Xw8g^y&=ww zd*tp}THI#QVPNTG^~UrF2BCY`<$V!puBBj1Yt(5ZDuTC7-dPX;9^`K-MjBBfwR5iV z(fdn56Azd&f`XhEKIYeHCApVYEXJQxS>{t-M!$9zBIf4OM%xH|(6H4!)@b-ZKCeeq zeuYyWQ%+(Vi8}=0#o+n1Zy@JgvZEjnKC81^P<^D#%3R9({vA^E6)%`%z(?SEj6d$- zJaL-&m3FO~yeYJ#eo zZ^K;eY;alY_`$}!>0)OodJ7*5-*CYP9^@HL+9*x=d%&crk6CkrjVu^k zFO(dU=j^b%M5E?F3^=8Df;-JX=v{cyxy28XCLInxW|-M@rp*K3R-GA@PpYFb@(wuY zYcUQ-3%@FC-1lEGlv!q$VrO~0$F-s})gx$e4XiiK(>CFp$S%S$iCC_l$hG&)#@e+K zhud>VXqCEFu&qQr^d0X*QjaH=)6qA^Uw^gJV|R}(exfhE?ThS%GPN0rFJI{%O+dgd*FdxzE!TQ`om>IKKK#; zCBL&WDQS|-;67z+MYy8Gv!3M%?v}72I z&fv@k+}G>dlGS7}#-&@W$2%_xV^8BeDfd4X?FnG;TNG zFMCmk<7@X$?R9hwZD@$KR7~kBq(yJ59@P2Wruc1FvO$7)qefK&q#&cD5& zRg{-K{UXBvR?^J@Ia8bf^k58wURd481rli6#O@Ucnr*H}LMT%1^BRZ53m>(ad+kUk zCXT|YxPRovDi2A+_qb2Is`dvYuk!VEWAr%!0gzleMEdYNZ%&_@cv4f*qQGV{C!LHj zQ3VTw4bBKp)doRra2s>&@SXax9MI3>I1x5xe&-P16KdcxL(Cj8tjGn?YpP%)qKkGXrN1FDJ zisusUDG=d3n0aP*o=rf8L-)Dm#V3*0r+VZg?!jTI4UZ+J$MOxA=hGDrihBjF1dfEl zECn6q*bLnG=Gf9F#R{4;ISKP(nB? z1i!&{ziq6YiOcJ+Vph9192kP7dGl5O@EP#B8JiEstQU>YYnv<$0|`$G6MH66auD%IgEyz zG`zON`Vpz6`h!LSG(k93q_{|=4WzeaM`8ZxSQ)6TeV+ddZ*tzAU={ZQ^6`jSe|ZGt z(O%4n^Pzib_pSG)n8CV6R1vJN1`eeSuN=gUaI|Wp3tphQNNM-?xx#K$e0L@V$E-?e zQ>1;4J4{fKL}wR^e>hDxYYlNz=g^c3Y4|k;X1x*7Uq){=PW?LDfaV>xyY8m>1&5~E zA+!S4$a+3?|7mE*bJ7=2E;-i{WFpM*BZaP6r!wm$>f6kEv6Z)FA|PJ(q=Utc0Ihm9 zZB@fzqi=WWO+DyaYNty%CdD5krk(?VG|IEf z8vwuDORsq#$$z~@LA9IKzIa}L3x{~lRIdvP5}By}P2ZAuQR!D{B_BFkGm!hU)XowP zO?Xwn*qvpo!6zm#&qrzXNKJqSpN!(1aErnEV`gv9ll-bvZlMuI{?_YUn;5*Lu;0QR zV>rNjVD&8wM9N|LQX0mXR2zac|C+k#UTmVth_9J zB=;1AvrK^zj$^gRQWHBH6%ei10-O-7$yFuVL zpRw=7M3Ej`-9~52sk`e6xDIV>)}nb_d5ptlrTJvyDM6u9+#zE&w}DziDW6dmZn6W% zHnBpN_lfEeX^28hz9Dbj(gccPM7eB_pS!y7Z^g^#H8WV7P!70ER6Wm3DQLBe%StV| z!e8XhZ0fCcZnne2*qzRK(|9goT|PF;nlM7O*W|yjq`{x1^nHEbb`Z5TK}6TAEG=5l z_b2PonmOu3Qf{|q7l(4K6Y{{88q6pY#~K8>q=B|n>$UD;L!*xlhVU8}IoWT`a;&rP zh*=E$O2=bjo+6#5KZXDFP;-eo(G&sig?FIZVeBTIlIa z|ESy_7kGAiOuhfn2V09hjj@Y%lb(S#baMlbHA@z2H`PX_L+Bs zp#&qH$^a4Pyo96vCl@WirPs1e6PtpiL0|?6OmDp~%vOQn>ezWD3UU3{x35MeyzGd0 zAq^qgTNRCH$N~Bddi%rCvewtKq1?Yp(399qPoJnP#|Vgw*0ooBR)|s#eLeQ2w}u-JZb%X&(1tDzu(=sZ$` zV1q$rgy3cwJ1)`c91)#F9vKjx2i(_w009Sc zQ%|9Ls4sjA?wbv#A#Lr`k9yZ#pH(yamFFm0+aMaEMWM>5r8O47hR84WVm3FTq;E1B zlGMYSJFEE-Y=6Z%Ss`rs_gSrQH9{1dm4c&}n@&kXNYfkGY*KaXsU`-&#L0^LCNS>* zhW9kJ|Gl~}O=t+id@jcV!;GfytAM#@kIMDX4h=!sNlDr;X*#Ut2R*Wz?kG5-vLsX( z*_Fl1xCQJx0;0g;v_)&~a842YFI-if^BJwr{kQB5yI{5^NC;zj5DNHCws%&UgpJDS{#u-$s5*jT#=#{ z5qARO(Vb8A^|iM9_0C+lFQ(X^&J(PIb4pv_UnXxKb~}N!i;CYUm1Kyd-Z)`T_M!zd zWX6J&E8U>pz8?FOAla7GS}LeU9zrxtk>o!=scb7P=9FUF#BsuDtyA;Y*(X%B`QY|(p6*zWcN%1oHcJjY#!}O#Pbwjq zn@bsE_Fx;l^r%C1Hi~~Mc(-lB{WFCVoxvntE9=$GN%51gy1(gKAgn=^dmn8Y^*IC?}#< z!Pcq%9&h)#gkpK4Pr&r|^oL<;e!y#vJTc|Kd4bB*ToV-ZY1RPVVPW$7eCG$d&Q}4; z=9q)p2B2jY)dE7_@Nq7Ln=5IMx_+fA4Yn^3<(4 z0~ltrG9kgWzslBLq9rQ0kdV&QDf@0@NOcPFUiv&Ds}v2TPCy*3q8f7qvUkL1UDElX zpQJwzaK-jz%dPhnQOln0kGzPD{fqhskzkwhBjHhkr!d17kgm8y(#t07k2nGIOa{UN zGV;uK%t5D?N>v^b17Nh=Cr=WhAf>@3=Ua%5xI3^jt;>xyN2K@?ev-7scd;b3?p}dU zZx3i{4XoXk!SI!qCd25cgYC4Ri_eM(3dH!?)r#`3Ijce1Gqo?E%47aBgNoDB;_bzQ;1oW zm;aN9NGo80oaTfok<)k74))js;T@ssE;R68=Oz`Kx@R}6?(>A4>H0bdc-j=OWfJUg zH7$oEDG}h7gv|zYc~fW-$ZaUa*5LOXB~Zy`w0EM-!X)V~SLVH_wyrV>9WQIrXUFZ3 z=YyrVg%YAzvTqB6pe-N=$QBJ@}f!pUaLlbdH)|5XCMt@{% zaOUeinSkaOIixej-2cDr`){okn8t^vA>-#F>u-|dCep3^$aKBL8pX&RKUsXYfN4Df zcWf-I#be3%#Ge*b4Yo<^4m88vL4)MD8>LbHiYx2hm|=F%+r=$XMmpFIr&>a-#=Z$W z3QTmb;UleabmTU{bJKr%<^A145e2c)>wv(nSgKn5du(H8)=&7Wohs|1UydnK-}M0q z%6&I%-ZkUT6_43$Jg`4C_Y)30FEa{fzZjAa~8bROp`vyGi`Xz6@780rAe{ zdTSeWl_?;f4pi*U^$V{*zdtY=-3z1&q(|?{+tKoFG+5o zA|Zx~r;r_a5bdpF@PHftsMs5(1FB{7QOK0XQ)ezj3)hXhs*(L!FKJa)Y=aF8DYUKSq8xv3&`;2r>-lYPC46g;_jQ&=hZILV=$u!VCz}q614i#< zOz&U%pz#-_NR$ssXZl2yvq$W_!p?yr*Wvfm|48q?>Wcl|Dh1T7NnXDY)Mf1+JVfRv ziaEW<8RPSU7ee{-_b<6zgsN%}Ks9#e4O=)boo;PbMhxeC@kFG8GskXwRw#W;foSbW zKt^uRJHEWyVk&|RlC^kep!}%9BJiPuq%buBykR9bmhn2F8W;S(+DZiPFs#kCwvHtpkWx}AoKbi;ppjh)fLUK3# zYc9Hw86cwLIvtLr`SQ<)X4`+>$Jz+G^(-A3H57)s8Q3ic;lTHV!9wfBJ=uK-12|nC zK!`G4I898m+*~^mT(mL8s|1oroB7pqlN+crjij80=v{3eXMvKQHiz;s;%sb(4Uz3g zheXsQzH&?riH)!bN1$n+@9vO4Z3WG{y|ow(hkzo%&~FiGFkRvM+qo22t!71Iw9*FR zg0GP<3Nd2Qb(g3w;rV`$>aL2^Kh7CMf!AHUG`)U)=CU8BM{Ncf=k=0-e%&E9T(Y$U zTui{vRPl2`^!4>oDE}+f--1*HIny8pB7Zt@gUQVtc@l-k!_Oa-FG|C&LrxB6r{gA( zR-2_WNf1E?5^Zxba1%LgMH*BV0Ktu>vX&9;D@^I2)y4w>({lcaTS|u)ZyHVLuZ}C? z1f^rk!|>N;VTZ~nG;}tj$)Req3kS>w0nH(L=aq zZlQYkSZkkv{A)W>x%IUDg)l*0Se`2bSDQ({!fJ9wW$BFlm&aZFyFPLm9r)|L-Skwl zMw^;6nv#t!08_PKrF8-*CVJ@LiMDNWignNFP7ufE zk0KL*PP?ct=31)PJ0uF`@Vq0oo#>k%tLtE1%m6drO<%?Vcpb!W@Whr|wWWT~ol zO>4Dmhij(=PEFK1I8Z)ULj7AVL(aq*A-km57jNSolIMMwrw`Fy%RQr-pFg%{qb*iJ zQBZ(}6Ri1Ow!bgT&ONtjG7Z45)9h5!=AN zQr8j`@lK8tKMzv(rq<-$a|^BO+}0Ez>E?hqxJEeID_2!=50(UUNwv;}^a&I@qfIwb z>LB6UwulZs2%=sSD`IfbBSYlEn0fe9H@cg$#;<@rhQO+{p-9g2UxfIkOx-wZo}23V zhzlRLfXPuC>*WNiymTwlHy8L^Pwy27g0Kp#dbNDZ*3We4d1k^nD)Pw;%ykLd;l$%iZ01Vw3d%dXm-*?NXU4)rmr-)k}4HuPI5mq&qx4=vfX%IWOh7A)5S!ID@{;CZaK1b!D_; zhd?_v6FF!JfW17Av@qB)&o#y8d?30HP)8$XB~y>N@G>PRF_Fs0cEopXW9SY8n)p3p+9S+E*82yc?y_v&ep_8{gVP!mnq6|H$OXV z=V`F;4Z>*HM>D+yjh32Ng9vT2gV`g~-dAnj>{u-x@fZeacf0durVBH*qN39%X;FVk z=pOijacq6gQ^nCfwPeC&NU5AeFNeku+6h=OoNiWx*l5NKl5qMCYtvH*QrZ_FQ74`l zOJd?~0yvzvC4XdFGlBwS*B?30iRn zZqGp0sUC1YhklM$i0zkSW%c8A#~<3*fV>PaTLNjVo&{kJf+`IX|WZQqrgbx48w%K)8yoX9MXD7MC=8xOnlM4ENOiXL>*GS$c4m30ouT_$QyV;)80$ALVyku=rk%`%NCst;;{49IVRRD@Z(*S;*MtK zW7slkjt-#7EwbiX8g2E^1is5s+=qO3#bac~54xz)Ahu=$6<{B>3>L=9V(k$pE-XBJ z1YU9NfT5yd`XgbaDq{%gl7(rF!<8d>If6$@SMIN$bx+Tf5R36vXfbs?4`8TGYl*uE zsI>(<<_%;Eh0U~_q^(_e)U;2&BUkCyc9scB2eRA1X&Lt!F{|V%MmhMlRG-$UvufZLQCCDYBo#A_C`Qs zz5rE^68DW)GoN~`*EK%+7E~P*--nSrI=yCrqSl^o!*7lI+-*|=eyYYw0f-C+^4a;+ zAr!PY(%d|C&g3-g_=SF1{pRo>{k3`M!( z+iuPQH$lOdkRSnTYq6Hg8PlTL$LIu7b!Y|)Z45YE@gEztD9jSW-t_d{lgc&}YCb^} zr!R_vi=7Yl)I00b2VgqUFO2>q;_G23dqk-o+75RBQm`cbk*1Z&sXQkPey_U50a4c| zHh8SdyT-RHttkFTKZMKQ(PC-q){?F%<4>&V9#v=ZjJ79sowXDCF}2Q2vz~_Jcn{%! z=|GuM?l@z6w=g*@q!*zL3GJ|2m`m`i3;QC%bYTGN@J}UpM*W{(&KdT+!ba>prNOC1 zw3#{CBb&qhQpxS-=-=eQ9sK900HGoL+&i7?<%U6sjCtrNw(B_2Tdq$Q)7=4$!O<3c zkSdeSDJ}Ggd{Cl3$9oChH+b^n={d8j9-@lvo|$ibjVLv3^$z!Ne{o+4tvhx{XQ20s z@qvn}5Osiu6z0&L%!Z{_3sVK98SEO62HX3#mD#dEs7=VAn*XXpg64ZZlq~rV`&xvSr5JgZX)19D{5J#sDm@-1Odx z_+gZiSeRbQsrDVC+N!p=$;p~6*F}p}$f^_O80GVg>w<a|5MQs$F9 z!AQM5Ha|9UKwJIJ9Il1SIukPD^dvri##{Z#rX%;gMfgB38P=nHUr+l90nQ8nDnGZP zV17oxB(w;*+9e|7knRQpOe~%SQTIu{A6@n(0@Xir@%*{uMlF!sgV=$M-lIBJ*bO(^ z3FQy2eK=`xdDM#!gW?xm5XUCaKj!;bugS7u*F%&ux@Js$tkNRASf3ESoazau%huPw zSKhnrrl9e;tt7f@%ezY$8WtLpnhHhb^0V#IU1pn8z~Sm2h^wDdRwZ&7h89~!%xHI~ zu#iRwl6F#_0BDr=$ghN3Yms-fXX>sF5b&#gV|5B2AOJ~ypWjgfO|*RmL7oXf(?DBO zA^ZyYWRD~el{rktGV_=}-BM-Y#JpeKdBPckhD;l=ni8>7$1Td~<@YAW;^%TQ69p6J zXrU7V?4$m;kt4Z7`v?k}#0yow(={VC13x2mR@yjz< zkL28(9z+1`|GqXzZc!A^oa~8V?tk6 z;R#5n5ldi>s&jqa_X7Gu%atR-#nm-Az6(yc!AQT+S>lHZ`Lqa$Xu&~II$w|HmV&@U z``zyH^4m}ac{!n={60*g{#@JcQLx%0X>qQ=XFN8=r{;krCwGmt6T9Nw^^aYw>niF- z!NFlTzgo1>uVNWG;J$5z*zr9SJD$41=o>@qCXyEH0x*`UqFNo`-FCF0G(1`Hw9tqt zj&Nz4r;x3&&&gdC58uq;Ci&Kc;kO6WAORK&8yrCn`h5)<>FcA=)gKF===X4_7t}IG+@GCSwE{|tqPZF>bKm|WD((ADu8WMa%gWYaFaM@yoN0G(}7AWhI zD~Es7`W2TgM`bKVv)veT*s`C<0}3&TbC(|)Uo^BZVW6xK1%l82{FfUJ1mK3J1l0XF z-UMB``K;XC^x;uRrIlT{vUBhrSjrQrf1r1CP<;Xs!v@oP#x~ufZ6#cDLYxXt7Qmv2 z+@rs7hiHE1IXHl+<3rhDQCCSU+Ib6Y*nI@%fH8-EO9wC|n~_JtzjY0v9?(e&l{Og4 z_Mh{+KZ;S*ie@Fuo-!{P^bXSu@6-Jz;#O#j9eP_*wU7MuqSU=cDhih}d9G!`K{mjdE3We|Ko^6TH25<1^Yr+<`)jnQHX?>=Immh&l? z(I#gwQ>4RrvnE3Vr|sq8y}R1dX9Lq8J!fjNQ6^lcisRqdfZa80i^$0s3qa9*mDprF zL8G+My;)Up6NVJIkW%4Z;5Vh9Ou)nmE&5jd%pl_7yIuE@j8FEsA-c#(qNC1E%3FLdP1ek3t8gok)|6 zJ2p>dhMc?vPvm~*j_N{+ta~kzh;v^0!TIHjIq+Iq?E`@C;I!4qZbN}6z7Z&B2$Gaz zrMrM_Sw&&Os;*W!U+dHR-rdv{73T9DM>{>gT?Wa(p8QK=5CNBx`4M5QQ+L%cG<|dB zz^wO-Cp+!3zvaghggPy`im*tNL!?k2%lN$kTry4-Br)<+hktL*p0gOm+lT>le^19ps?q-TM9ZmJK-qx<0VzXbR*bArY? ze*jhu<`z~*CmWud+vCs4$<=Qqe__RXm#qRu00Ew1rc~@VILq)$e8{HXuML%%I&QTH zHHt_n4wD9iEq_Yj;-or|bdBi<)Zo>2)R09>0tpJgVn1j#SnZHVtyM`81)>-`c55!5REplk>3(^ zu5z6io>0jMSaEzVD!VDp8o;pPgB8Hp2R#Ens35Jc?W@PgJ=i1<3?^^_lpb7Mta?9k z54>Mc$=gD*8#lXG@@(i&c40e(%so1bG3J1Sd23N67GHB~ujYQ;yv;hT6Iu^U5V%Ge2na~o3Vt>8-WSmU%;Z{ZMFRm5JC%#)A20=!NDHZaPk99 z&cKPqgiZ<2gU_~~d8zxdzpG1fKFbLlJl9l)6x9($fp01F2w;__Q=E6Ed7?y?xj=`( zC*Wfd+upn^#V(~K3^#nt@U`6zfU9t|)Lv@+o_g6pD68x?_oy=yxoGA6`oZpGtp(ryb4!3>AkTY0AzGGDFqeT_JP(K zndi;(GvLHoJP2EbQ=dc{Len62z!w0SjTR?#JWEBTi1?{G{jF|ikCs5&xGOp`AD?oF zObWGO$K06aJ>=jtO4WxE`RTaRRfux$w-Dj>B?mbb2B~~@i}$I-iSywDv<;Db*JRPwTH|cNsj3D-!;=nd8LLHO2 z{IPW&K(CX7F;TnhC_iCT02Zt6Q$Gp|NTXwcj2`0O7%jMV%;>dJj*Zc@t<3{ko>oS< zA5ewxL%KZ*o|p@*J$ToMs&Fl=vc-(_mN>1~cai3Tx8-tJyGuM??aZ0 zm!~Nrtd|o0CuBK@FCx%efkS^D1~AM@TvnLU0cEVYn!(d`71Qo2G{v@m2YJtW(%a)> zyFKFtA~x~>`}p1#p^74%E`fMsDn~^6NL51XXtqaJfxu`fh1rgMwBGIkQ+5y%2{{rG@VH?~Gw?AxVX0h^t-x zgLa+6!QtFjxKu%%c-gHvHcrH!f4oD|97PBDSAs~+qx;YMj=A;PktW}I?i2RaDdxpS z8Xc)uBd-~Wte}@m3de$82Gi)n$}f0QHLcocBw;OVY+BdDio+mB6$Rbe&coQ4| zR|jJ~Qb-9==PF9bczPK3S=ev}8+BBAPqSXFcj5*ldDX#ZgUMELXvN8=+LIMeYb~@d z@5GvF2+*)uYyFbUYgs}-cLc9)xG5^06lxt9KUIYt3 zBcE6r=@eD7+%F(MRygB(JvWS6X+3L~(<{+a3>{k%YCR`(HI1T!4d;@Ie)Im?da>l$}cpU9P z1{Z-}tz`N~QuHrP1Nnqp!|tZ!LPiPv-;OsT z>oIvr>PCDvXo#u&RYej_-V+$I4OCLn3(&O<7u_9`T%%w4#xq)bea02{)&3MmJO3f3 zUdM-T9%L-Lvza!PMR2)hkLSX;Z%K0$1OWjL#~ICwM}+89aj{lj7)1Bs#p^Sjv}N&? zV9ODnQeCuYH_~&&A6HB5eXF-QRmtBO5<3Gb5X7%0(GL0Z36l`G!Cn*s7#7QI? zCA;DqRajr4 z?$l(wUtXBc#O@j~4ldolRP!?B#4LR6`sOZ7Y@F$vw)j*0{LD6TV^e3-37fv5JzkcC ztttLUym@62kWl+;>(I4E4APHVU?%HNVee92q&6+!OqB-Rv#7k;P6g%)q?v}HppQ$j)RoO&Rdi$N-n;)U4TtPA`tYXr)8Cv<~KNsY!HG6N&Vvoon zy)ZTksPAEAtX$hL0hWzs#QCf?R8nRD5U?onWi|7>%kK$>`LA^L45*1^ znI}Ha*z?&)&xZ6)$6tRh4)(fqGuwMa$^4vpx+AQr)y;Z+5^H*~D~nHg%ZZXe>WE9W z$0FJ{av8ilHe8T3?n;*badi{Z|l6wK9+_L-`e9i8d6A7cg^yg)iugG%jpDRF zJJH!$v3v~?_%VhP`Us(+vu`3DGb}*bNAgNSt0453BT?>zCgKRHbGOsDg|46*VLF~; zc6jYqTz~Neo%QE>TX*Cy3T*5%O9lClHbT%B4Gsln;ZkIdhpiiIgq4S)`lHB+eKiGf z7ezK}KMVRRxJ{Ao(Ms=+noW5?AI~K^F3cbiwrOgCk4X9fcGPs@6rJUtjElI^U_m`v zPNg^S-WUrO+fmMB_IFrnE!=SA80siPAv_UFXwR@F1=xzDM{EIaxs7Ep&ZV*Xqc7EV zTADRJQYo7$$60CYYp)sY#`9kz6Edu3jAf&1W8^iTA*w$@`tpJ(QMm7Y@}XsM)PnrY z#DP<`W4;aDIW2k)I;kH>bKAf_Ynx%>eIG;+ z$zV*kERz-ZXW@81*~vl|?;m=iSn8=0)Wy(6xtiUnUerk0ojLSP(+CpCZ$w(gLaxXn zDyn9q(yjfD5uvwGmahr2LP4D>Z_D$I5pQ$^ZdMDdqAkzJ=44pK_-har?`C44(iPY;#`%@^NJxh z)jZWtzE~euL_=e`>)+>9Ii5gC;{AcJbBx@fI}_ac4ZZAw<@cmclwBl!vQmg<;Jd@p zq*YVn|5N^|gQH8%9J)a8;51z#%r`YXjhfuW05+W9USAZ8>Hn5_2}fYSDK{Q{nygQL6e2b)YrN(yFPy{2YhdJBwK zr3~VR;pgf!9)VASn;E^<&wCg+jh@j4WZ;bol}DYoS9XJv=7|2_<^0D^m%-BEq6CKi zWgI4OurF~St-7~Oh6N#8lCMj3_oZqZJX&1mKvJHC#G(U$5QdsL1h476%(c{c%_1;yAUBmFK zYp`ChH=?z8+y?oHCYvllL$u-5!k7Zso1e z3MkKj-AhcQr)T!}=>Ud-xy||g8{Wf%yXtEWxEMF$@iD=>0}K7xm$z7O zm$7W4Xks?h;7C36Zj;7bivKZ1xkdr#+|Ybu{tx@Tf>I!| z!IL60RuAxA;E>>^Sl=QlL`6r%(qJwsd*I`(b|9V#xB_5lVFx-mC==DN2%0@G^Mmi; z`W8S2f51*@F*8QcSh*gHLVF^hEMtp%l=apCY@)kK)Wk7z>+c#xh@=x)kc+HdO}($4JG~YmPXS3 zMqPJJwu+n0YWK^-G<4PdXt4kS9Se()^KU~_>-IWR8hf$Q;1;>}mNxvbrclcs-Z7*= zrdfp}2Tj;{UN-rpI;TAA+O>f>8UZnVetzle@KE7~DKc-&GO!6gaH~7#bnI!HHI%wK zCjG4BBhltIks&E8LUlH3XE&q+*z+%L_Ys8zZD+o08?M#xX0&|0Br9x_vX zkV&6m{l3drd(CQ5IFtFUQk|a~5jlP!02dhY0W#Ou#DwCSfKsyp7T*{I!3iYS{`vg2 z29Q>|E0TMyhG+#RBVU^ze_|Eoi~5T3ANYa6!*7d>%cNi@GBHeg9m#I7&loWbROs)i zmZmW{vLz+jtxtJMa8(o!9WaIm+dy%+g`xR-FLfLxSwNfuDA=pR=F91`aCv!5jad{~ z;x%5nF@{@RxNDJLkn8gNKj{hcRGana8aiQ?XA#-*@4ma}Bk9Q^ZFWixl?U}l7PVlD zVZ%V-*UU!fju4KTb7g)=F`Gf6-OBZbRXgKssB%p%+LDMUq&ts@S1lD0$645So52i2G)Xy6(i%M(V$aE!p}Ar9v^^80 z|LMTHTe>p(Ec$+~b^*JkaXR0ae*E8#d-Jacu>UpO!>-IbU+$@|gteymg028(eWL23 zqqH!He9p*cV@#5G4$&WAhsa*-Msgsd8Hs#7A;9;0vTdFpAMA!40t@ zM1Xp}`Ggja|K_mgV@g%yA6K}pM2WUYiN15|(mn4Ge5rsug@NPs*T;;0L@%Yq@fdG+ zdNj8rc;Nx?@qYJ@UWmo9RZmK^i0GEIdi(&PINShzjt`3?38y^Y!>a^r~ z@$o*T)a{oJgVj)h+=ZoLQve?z`9hG$aWacS6GX4w5L~!AqB-f*uXiZLnoXI|eLOwZ zjO29+Z0zHbo|BmN5;O0-rpeIMw%tDUkrr$ifI~=Xfy;q-wuV#6qCj@0X^ylcvhJ{l zkpb0b;gsPww|Y`kpkiTXJARYTd_wWWKktKlZ>`_;czmO3(>Rg8HvjA;b1bIi!@NR# zf7V5_JiFx&XMV%1L3rr#%gOaL#cqs;Fkh-c&T@A`X!Y{){z8%Rub~BuFBdKVbQPDDioPUiXjXC5EfP8Pn0%&dNj` zSvP`%KT2hqjbN>wirshXmDMk`DSt-ueoeE<^8cPW{=h1GyQklg(xkT?h650y9fHLcjDQ=cx684tc7__w*Bv+!GgqO*K<;(! zVAu$)oo*&a%oLE};&^*at-#mT-o7q8U;OwXcXzCkJ5OG=-U3RTp_&1Ax%=?dmll|o zIB~1g%6;3EcK@dt6KW}MTBs63_vN9>3%OQ0)qHz(2b8eBG2^H<2EuWPg<@%<*l(AP}A`P|M?IQ!kIJ)^3tfN|QB! zt-$SDE#`lKqz=tAe1O4^?(_rr{Zt<^{eSKwY-kQ?XMH*mq$m1(+7J+KvyMqhUiREn zSQ{%k{A}-Q6?;7Ej2W637fNG2n<`UfI?8CNHPih%N;(gv81o!$k8$JS^yP16Q-BtK zNBLFcpwo{)vR_#{5(#ALM-XlA=E+Zgc#S|0&-Q%gYp2`6`O>QTTA#HUB(T6h`YASV zA0M9E+uNMVO7MoREQaZI5Gt6@2Is#atU$|#%dqKB@c5(%paK6#U#SqO+7#={SC~l> zSaZS2`V&RtiC*CUj9AMAwcG|pF&z9P#wHW@Pgm*sPWO)!L#Y6Qg1DbzT(#617i&>e$Bozvd6eu234@7YJYE@*5h7;`Vr z%^+oDWK36Ra{l5P>+za+L*IOJhDd7!gGAOoFnI;oA0Jw*%*j(0MBW0B=54f}GbQ+c z%zP-L!>BrPn&NuU+&Fr7+wcwZy~4jkv990s{%QBvn(`CDz>cg=LodAIST|qOod0Wq z#|+kXm!Ic{TSlGMH8Fv=-qO6)eAtqsKPW9=CiQPK0T>u&F!3_KLNvpkhT^ZES5C`J zO6DSd7qDgqW=^dz^m@UOzZRS@^Re-(eKAjyO#+29v+qp%KKr@1?(a4g5i_ZgBJEBz z7XWz0xA;NpFG5Dq%pnb`dvkKtb&{EU;{XV)xvvq!pR}~-ROi%zy)w~`5}>H~Wk5&? zYH9I6sjT-wo#>RYHnimU@Pvo|0_11HfFuE980&tU3(y$MX&lV(onmM?TJ16C%o-g- zFaVr)Qs8+VvMP%MRBB1xg{@&ny6-E)CX>KH17f7+*d=)nxENc0-wNe-R>{A51mbTW z?RNq5O_;`nuPr27=M$*1P)9QIM=YtRPl)H57C+U)@6JpV)ZTs#8_m8k_ErR9rCL}@bCWD+ zvsRzrQGqC2k|-}sSrN!FY zwm1y3fHvHjQmiLC?iNQ4|8RJsm^zI}keh*?hgK@lgBSA|U-#2&cz-L;>=Yk#^Ug)zM>d##=D{RI=m=;Rn->swHq_u-IFsClHs#-e z-3ty$aK^lr!=COQg=eG?QVz{O$m@R+J3aimS6aCo^m-R(=tB`Wxm&kf8qE06rL5?g zo1$AdCN(ljCX>!|6j9Lf!u7W~9}~UKBVp1Gk@FloJ)}q&s1^>YB4~SXVsooeQ{Fpn zRAFlZdvj|F(m~+N;DS34zxAR!0Y4vzO!>bJ-Xj2?;h5J>hsy@1o~827gW7#9kkjei z%>wc=OeJ8tRVccaFK$knwB)?wLU^0-a@v}FZ&d0y6eR!ka03S1=KnN>ebv}IZ9PorZB;PhmC1a9(sk|Y`0$Q3BtaaZ*b z<)K?oypm8eHu&7>gCw9m_C1n}vD7RKl}3?*IVKz5H*JvvvaM?;1K&(wE#pab5kpd9 z(;{A0C)lp5E%l)yf&*i=Ng15VI2m418d#T7DTh?olKhvIJ=AT{pK94>6T``gW7h>Q zx=UPmHB@{%6=6fjwZPJu$r|z-_D$>(M^VTb;dPRKVQ^Mjo;7q@&KXYXN`>y^2-ULY z6s8Bw&J9GA2poCDI&Yqr7V&6Y|x(RF@WVXwzT(XGD zN`OuP7Q=fx5g<_C+XP~*EvsvlMrEWT_0f7}BWW=1ds_-J_5Pzyxem`$e~}5W-}`;# z@&zg%TUaPyCq4T2PgdKDFp00?#X`2#Ee5u4c1d@AC@H9^d;zUbjh8R_U}R^yOUPP* zr@IyGAmFy|5$_{eQ@k&1IOJPYsom>EOl$pRpOeA#um5&kj}RL_%pjg%`|1R-EHyG< z!8R^v+ zE0I~k=I7a3T;<^4BlI(6YSN~f5_@FHi}za%nLbLF?ryAtd` zCr?PW{p~!HTcsxJ_)4HO9yQ?6<9!Nd{z%oW_c@@Wst!e62(6Sc=Bblg^kvuAmD=7% z#gpS4?2Lc=W~1uF7@pWu1FAL#)dN8+N!o1x@L#sDSO&E>b}!8GllcA!Zd7s{aE2jJ zgPn6YwY2~v_ja`j;S+`m`tfETPTq=H<8}g*4`7a_M(}rzKwcT#c%*S126JMyl|-$) zdCai-eqJty+Dh1H4B!uaHrbcy$#1S1HcKjj`Ywx?7S*U7j2^(}&&v>#kiDn2z>_5# zRsk2|uDL;4XpsgV;1@~UpNbkRZor_BLPgu`a}n{d2Q5JyNf=G?U_8{4ojUu8N|E_i zJ>5Op?pi7R;3hSiMV)1E$@Gg?(+pvswZhKL#pfkG6f{y=yeX@YuMx#^QaIuMN+kTa zE8nyfJ9}eCF;y(tm+;`(XVrb0YU4DxmxreZ)WDk0@I9}!{F5GJ99~5Mkx>}5&FL*B z5{k$rAW4N8XSZWN^kCWh^aYOqw)eLss)Ow3dO5n26Dtm&oEnM~*0+5>^WW{(!tWCW zmX>z$?OcGcPK@qevuH!u+5_x?X7^WN8t?0nYM~rx>Z~iisWf1QuPNpBN>msVeP#d7 zoq|c-5{@`v!aT!u^L$=)t>(|VE)J5O-qFmh)>a2$u|85~Q=1X7prx;)uZ*>|=j?qm z%;dMGPlEIE`G?wIvyQ#f&rcol0%w1|dwMry()EhxttxY;knDK?(&S73*j=?y+{!CY z<5?jnYg@3>WT!MB&cwoigmp`D&T}<`+BV#vJR!0xhxSn}axJ66v+4YVWQ7r!1KibG z_+WGL+}uNn~Iv{I2^Ahqz>Wc^TEr93amOliqs`b)LD4qF&+U)Q>G=ly>Y%e z6BdMPoOG+P5H`p0jv8#A&;(BdkX?tvHN z-;3ny2mZ#pEKJ5^)fB>$5stN%=x=STR=N>w*sa!7)Jn!4#tV|J*CqWhOHS3Gp^R5s zV}Ne_K0kTrtHTiMUsvI1w8qnUby<|lH@p1{UaD--&X2@|I;hBPUm7dF`8@C$u9>h? zOPudC@oj9P7M_j_H#@-C5bAk{9m)jHceCfRDFyFeQ4sNqm!*!)0nGnY*WqbV?wM#A z#V{&omU7TJ#fcmUB4wQ7T%fE%$Sp*;O#p9p{7AI7)n15{A@;$@YHOIo?S<;Np`kA@ zxLQAM66H6L7%@^tWTTNHS6`bzJ^VQv9~okDLi`-Fmp)y6Ysw8?8w4=)6WAM2XgM@&)Q20gT-Op0%np;lAD4q49rRqQl=utuN6uWb~ALQ0PjERoeb6Y*<5 zH$(CL%;n2C_>ch^3EMW7rw0KEFNNzskJM0GF14dSJ5T0sPU*CE?~t0Ag?6}SrGKnS z@dmq=k%^U5p+}c_MQS_mBStgY89DqeJTxOw9p_r>ez z*=SY;63w;)wr)b8`S+&#^vhb(LXg2^^T?P8K01eFFR5P)di-W<1v z$r&g?j)dUj!E2iqUgKE3w=H81sX73hnr4~nj2X#`GuYRiqH6dW-SqzE85EVP$(u7s zWu1v>xl|HGBce-?P_}5Ay1sD5QRHWX>%?7#XqfJx3VYx(x%8@E-OVdTYIj?GX|&?c z_YD0e4|nwICmRZJ0WAd-^)L!MzY^~ZCN18ZhI9J(64i8MxP7Y&;?RKZtR(IKMU;FjRuSP*GdsBIJGxoa+!nuu&3CgO~B3;jrfM&{;oa>ya0UwZnq9CEZt+06SCfJvml(Es$4yPAKMF6P_GLBP=<@|3B= zI;M8#ozpWTEIfnm%@GV4a!d5hpupS_H09OqFEIX!S4e(b`F_gjaBC6p_?G^rpuq{0 z#REv~k@l=;{2T9qa@F>TzaV=2LV98K`Wlw5Sqf+W-V9J>-evzb3VqiOF8}fGN?x=P z?q6p%cat0rs2eJn0mVYud1qg3)S1#lWBva>f9FE7-H+u~uAF3$m z*8M+_S*8V$%TesaX5T}b^$rpbg3(xzex6@fbats z$e{^=>Hhkq@_xAH25uOri_iAlp6T4z!OVJ zE>RD9Cm=Zk>gpYJaOu5Ren_2;XMHMgky|EYsY7>ZgJP`e-C{xK;de-rMP!%J0UFGW zqfdDNhPV9{wjWKBs%xbaLNhByON?!4E(TuYAFrE{%>JDY!X>JK460TXKT+KgFjzgb z$Zjl8n16CWz_t`3z!F=yXpi>dVi_j#%z^vnw$7Z!Q&m2i@D55b&tHTsts%&xz)J3P zD!=)$Krx0=%Ndj^?ZGK-S%RC>ff{6cOOc^-J5Rb4sgsa0IPQR)r5WVkcDJg)P*^Mbe=dcDxOE3{HgJx>hUrN1p*LkpNO>Fmej+E2YG z8Kzjb+b(~Zycp~o;AhJGKCDOD?}2`FwPPi?7_)?+F@=SHa9Xh322P}j5N+mC{;fwB zB?btZghk^rX+eo_U(xeY8hNSxOHX0UE}o2^nDI>&q2~+mor!Lsp(@OlGqxZnxB9E> zVgUAXyh~rH1xFnn`NW{EV+$&+8E0&QP-$;G;l@`S4Iv$?jPbraRL4!P@sC|sA^UYX zTD#~mnwytEjA@A>y0P(eV2pEu_0*KO-_3xB>f-0PJQxwy&U>6Vfg7kE#?aY^M2BdX zumq#DIsO@oL?&McQEc|(452u!Fa{G!LST1Y=1)Tl_+qohTx z_HHizs$I=8s+~NZ!L2AXB=Z>q=ZGPe+$9`zf`i@*O>S4v8WG%(%vn*ay{|xdhf<7Q z0@u15tyQ?ELDa$$@UwyyXjEQ33B;UKh6HuE;FHsnJ<|&J@-)|;+7V@8El=EM1o%y0 z<*OJ52TwIOTc^`7Pt`d?MV8Xply^R(VN4~kiHVKCWc3pJyJGtUcqXmAFb52%&L1E= zAS+^avBwnjV{|9=U>2<$VS-Icw%}}V9f51uJ4~uwzc0^W{Fo8VRw>FXMk`^J-(0Rw z;sz?BXb(seHKn5Gi#Bp8E0Fc40{36DoppKE{F6(!n^`pMxOisdLa1}`nDUeT`B5PEB*WgAiO8;IYH&uw@^vG z{Zu247@mJn-sw_JX^W7=RtgjEpPUQHad1{t5CGJ*TDR&d+W)CQ)>K`l%KZ#zKe zYqK;{7Roa8sttwncZL^Z-dM3K#5B{!Iy~3$@e7AAjPAg z3nnB5m5rHmEtIE4e?lfrig+ipf?9*HQ6?s;Y8nC)3Q)_+sC9L9AtfZBt569y^t$oJ z16*xc#VKU*wIXhzG0ErBl4|QNNo{332tlV{gb%3KLc-fQV=_{L^fYCI4ai5Ny6=V> zZ@;9k;TlHX)Y0c>Np|DbH*iH8hu+_|iau%MTw9rq zPR?^l3*2>PSqpZyr^q|>-V=%h&FzgoU+Ukf1e07bX-?_kO(|py?mqQ79|?>uMw*+4Q2w?8%uH!nvQPj*~b!`x%t|;x`CkRrGRCZ6nIoZE~ca+kbb50kp+TfYtf{9P1m8z-lDp z-e5;mc$j?G=bOo7uZWDS_}d+sxfc;wV_3mqp$gR&IyXKDhxp{lvFF|19{&U)XZ9Z) ze}>x4Zg3{wEgNkzug?keX9aG}Y7VfVv;A0p>^&deH=dn_bN{oNhO+fpj2hZZ znXFBYXNCl>P3xXmxAp}oMT2r~=lw!QfsL@$mK7KTt!;fkir0VO^3MUEDb-Aqtc3T1N`pa&)1DYe@`7yN7VoEKNs<@FMfvJ-$P9K{`Iw?O|-jz zmChrkdpF{0Mb*RI?{L?q*M#I^(E7_P^#aDbzEm~T_(w#*I9`)l*ERY@jH#^vTDA7H zaz1bV|NJx-3EtY+P)9&rC!@{Hg2h@(LQs0T#@^bPZq#>xZMC0pUX1PHPfS@2jZjXf zbEv_s!JWaq!A~`C(|;fvdY)eyR8Gx+p`m49R#QnyQoHwA{`7dgnN-<#r;g6tw@fAM zH-Z_K>2e!KH<&SiJ+)wDDx==bytZIy{xWYpq&F{~bWz^t3*Np8AOVe;IcNz^|8|aV z%O_6oci6PFI~0FHE*&xl8n3w8L`uG|(Kh|`GzVN+ z1o+qQX4gx0Dm-RTiIeV_&?2|O=$sT8f3G@vVB!~_oL4bv)8nXXS@V!GBVx1T1qd7w z&zc^ZYp>B77EWtXtbB=+`7GAA>qv-{7?m5`dg{+X!1MfGvO3fj1MT1mT#;V@2`trU zNDJ|28MZg`D9VO73mL6rV)l_0u*;x`KIat*31V=%i(Cp)2@S}}2Yh_f>kUl4CM8Dc zzWxEKi;ev!3J4W3*wMo{ZcyPt>2P4J2&Z9I=mfrG>5Hq#SGSbLzZc0{cI8GfEr+rd zUP$ugC^=c0hiLz*S@+da1=Z#$j~AgwYu9N={2CafjMI8bKq@-?cW`05-DIwH^`B(x z7ArLU{Mu>2cUElN%2`aiXprSNJ4exbE8>yWm{_Ul^e!mPjVdO2 zJ=|ZXy}r-qZk3`AYL^~~@zDWq&?>m-r-BXf*AE3kj<;Z^A#s_uzZakuJ9FF5$!OwZ zs2E;Ij_`0=fjN60pSeyaqifcPZF+2$P6S=0gTKo~*CsNn9#(Uoqp8>W_~j)F|7(0; zV;rx_F8`cK`RIH;G|W8Tn;Yen)B;aW&6~*6FZYnS{qfT3`~RMI8_c^PXYD5&Jw+KM zwpNBJgWTt9h(s@G~+Fn($w=JfhvabxdPl<`FsB=xRNNpSvdIF^L_&sDIrusMhZS;@ipq8h2kb{ZagRO)FTvjXy+t z59w%-OdFV=XV@&_EHk|N)yeu~fyTIAjccPm?y|A1;*rN)8_IwU}9ijEXGe}0bSpxDQ>e!U>kzm{>?m$Ph6X^EnJb>)L zYw)-hj+m>T%bzRs-*kQm7wb^u>cUFs=k^8=qdOwyl37lAwyCf0r6n+e3#rFR&6g${ z@OGU%VUq1znZk-f`IYQoVeKCDhA!VGj?c22-C@iMpY$gPDRQ)k5Q#wV`}z-IuU?Th zFDYbZX$ZmnrS1wj5WY;p=~o>jF~?^Gkirh~;DO*zBK%-wmLIBEPc-7*X0n8h)SRO# zQ&DsvcwFqiG<0~r^nS0OA~;K8fjDCbs+U%b)NQw?`(>#aPQwD~^qF#AZ|#>}Ktwg( zTu=4neP2s$hMGL_yBHnaGDwN5h=e_0#_)3mUddw+O^k&x)euCcHg@* zYd%@*79FileqKuRW1xB-LLSIyGdU7goWjln<%gd1C0I^o2NO(G%*!m1b8s_^v7?7K zONzJq<3Z@F0kxMJ4(sF};3T!NG!w@&bV7d9#hMz0vUAD;WufM;`ogE);)wq9gN(96 zhnK%z&<;p-;IoJo>p}E4ct{N@vg)D+32u#0w-C+k!xhT#DGeC2yCc0S`APR6HsZb4 z1diOH>|$I^nF@K&iT0UDAncNYAL0h*=9$qcK5rI8Q(iN4gfQ`Km-&3p-0zB(ZGe%6 zbIL)_i7_7BpXF8fDZFk-mar8nmD| zm(5nw_#zud^W3V*SZ;Bp*hqzgbQ^gWIvrb!k=bd(?Y#v+2U5A-2fB7@D2Z-Nkp<#B zW!5MYip^QF) z-PDbz=5P^Z2}Q;5PwXK4KYYDqSR7rm1sdGl-GaM21Shz=yGsaeA-EIV2?2t;6C^mn zA-E6j3~mG5A+LPrJLlf}XMXfEy}NsN_1;yrR;^MKg%Par$w9<#BXBj23#%4q`K~_# zV0Xbl4Zt1E?K3&cS77fT<)E4~35QMS@}YFWjz|?%1|b`?b`R8e#JKN0Vq(hor#qU^N>o%si|=g}@b-u9@35Ea-G7aQC2H*nFc@AGE1#nF zQAh71(`2KlPo_=Sc4f86&7r?+<5}qW<$7OYf3^8Er^q`wY@V)0Od0p?cDb1deNn9P zxN?B-E)~cvCXEZ5MHz1-rWyI?Tcce@sws}}G+r#zV!H^n)VHROquRBH?--7K!c9c- zx?G>Jk?qh5NnRkGtA)&(N}=j*mht`1@Q4*JJa;MRJ!Jv-lN#NkP|Q|1PKvJ|?h&W@s9*M5evT6t)$QC*Bq z`4#ta^+rheoJ@zKEUBh)i!MOXI4DrFYtMWScyrZUbMM8X2TPPIv9JHguzNLXa=%;A z7f^&0b|HXpPu%ywiYTL(BG&JL-#x*t(th9f&>o3#j9V_ZG|tQZxD^c~yc8H2S^80c zY%5yNV_4;R;ug0doWEvw2Y+p~(|JJ&!ja2Ay=;jb-5Sw+3*2!`jpX)cY%UKC z6&2ZbHCLp>JR}nBB#t$2fA6C>xUY9xcJ(uTp7ve0@5eZ|Ajf$0ibZ$a47H6vo_wsl z>wEgB=;&?{?w++ZCAmt`KNV)SEbVbt1^c1JZIERJ>|q5tzz!CW^*#|Sw|BbeOoRKs@0-Fguei1X8o?*E1%Z~MI{8fjg~(5 zxrC6Yi{akUbm}#$Fu4t3SKOJA3^Z#|9U32DXpYI~JFZ}4Z)hSK#^cmWQzlHT^O?N0 z@^2xn_ex=r+>~reZ_aNx<_mf;8O$IY9T&u}pYspC?^swQSq@n}P@@ULJxm2REU|?z zS7xJ8JegQhi;UP=*3tJhpQb$m@;tV)Hmri&@1mLw2Pi7y*bp1ep-^?AYS4<|FV#>p zzy)UG7iIA#m!4`sjy?D$;2XmuguCtNcsAPzujfnM)l}%=geHG}O60=<57xu@m&cF^ z_g~ekvR8*gH|OqHO|6d?_J?q+NiPJdfc?GY1cS}c^P?uY6Y`wite}JOjAcbPoe*(8SzC?;hsp zCo93}$ObPFu1exeQ4f=IzCbSlJ$Q%-l&;Kj^uDxUN1^B zKL7_piRQFeLgmtA;RT6JHarDSItHLRtRtCI)&^HzaZBv*d?Q!^U!_5H=Z<3soo-Jz zZB%XI;ryhxLH;$O>oD)#fNHO z5)bv=B<7s|ihvp#sXkDo3Xf|-TunSxj8*$AVWRf&s1g6Sk{nyOQ32b`R}sXICu7zA zEHj~IQS-of;A~Y6Ja?{iZy8pb#~$PEk*lJt`|GL@wdU2mj`HD}+V5$0-pg~#31o5@ z&h@t|yyScT)f7#&pa}T8Q*GcuPD0Pnmx;kIG~X8K9`v;sOl=%d`+33ND1R50Z$a01-9Xr=O=_ahu6pS0KuZ4EwRPu7Y;mL2fZUTJ91 zV~~+Vmz*`5ZbgN{8`hwtz)4#wRSya-doPTT3O~AY!Y`bYr>jLoEJ~!{MkiGWJy9z? zY@}vBr?se&R1%h5c{Qyg9Iv-QFs3T>``H@FxSbzPzb7=)R{k*#G)G%1jIN+&Y-uGx zElu~o|Au~iY42>eqDl4<6VegyesC7C@<+aU5owB=(TS9S1)PS_&R)qICk>~rByG)& zCkjob_<*mf0GgYn3Qo%?msp%4-IREo97LS1mNE^Xm}UC|N*J%8-O7MAd+x-SR!ZXV zEuGx5t=VfDb4N!%Lx&J@C)~Q&z_b!oD#0D(a_6^{JXQU^mo(tD%a(}Z76OL<=$oZF zmo-{o&Lhe%Pn%tXzmf`sg`Vi2@3yLBiGRp+P#K0ql5s}}+G9sCD)prf(glP+rtlOTq^HQk8~fV%glHB*M#<*ZB%hRg-A?=oS=RONtu`}D`g zt3m-((tUOhjGhTxO3$Rpx&_R0m*zi_x!uHobQq0d<{Mnxp>|hw@LHXZtd*+rJp(9^ znPRUD-2hvsoQnbVk=h#FJ$sPvk>EyrrU2}%;rt#jy=d_Ea=w-eaa<2yK!&^W8(6;* zvE!ax&GX+>-`XF{Lf%b;PL{>;`9fnV%4nZ*j!AK2udzCcL#n7wb^o{n?{7;fj>lyF z=pS?Pg?*^$Bvh=UOd$H<{HDT+g|A>Er(xR2F{yW2A^zfiw2ZT&DLhIcdzE69y6%U*K3WOUdz8gT0K{7>O+#zunYL0IISsy6S5l*FHjMf-zn_PXFgGApQkYx` zjD5x(ifs{a4;x{dF+L5!*QE-av(hK+WiuuBopJa{zOLfHpMwya5uD?1oX#@ZPjIQn zCIXTG!OFV1vWolv0DJVmdkdsHr(t?i9lIA9%c35z?Gp&{=umJh89|S1M}kgmz#^Sd z`%e4@Cd^0%&f5fwd8dzWe8In?4IM+<{q`KL4zuK5aE_BiYVyW!?QczW+OCFp$pe|phdl+DuVX%9PU7z*!!JB$*jTBDvN50o% zQsv#Dern)6@7?wjKmLsLumz1R0ZrKZ85q`_V^gZC3@d6F;iC(~r&*@pwS0li+b5Qq zX7}(PE^z_r*F~yX2dsH96*M|}zD~KDeP{voO_?HbH5I+^fcemvax&>rV@71G$64Al z^XI~MUiDTg7xpw`tKMC2opYi!MHx-ktzosE_J|~p&D@_n7_~ZtQJ=4)?=jU_|K-l6 z55DHwf>owBFT)m;InGh?F1V1oxP2hl&=g+44J+?FMbetd8=7eyEO8#A<>4v8dPWVJ zYG37b{A$uCOoJtvPE~4^(=>f3nu4N%VyvAXaKRmH5SJbO2TevSVLtQte?kzap~{q$ zWI+qrq{Sjvo&M#pA~xOUL(~X5bb$;{$EK_0;b4PWDR)c|P@%i(>J= z4}4@hMpyGRNnaBIhuD%~hCeLL$ThF8@x7MnPMUJ@uLjslmL|F%sJ{nx8hWu~k||w= zE4y_(@YOwO)uuL{MqfK?&(;w{JWCyVmalv^tv*=Cd9_||eEy|ng!pkp7!HnlSLT9e zDg~gwH`q4Zre~+JS00eV@RB2hvqJCcYiCh4%cBG-Mql=E>d^C_jZ_x2ue4^2lr8hN z6rUSZQQUVAA>m3h6ptAT23Juev8>Y+9*$WL|&iOY#tT)s!Onv5}&zd_Ga34pjR zq%>PXN(UYCXk{@GKbtTNbhW=v=fyrAJ<)%paG4RWc(90K^R)N4dCJyiMW7AXl~92* zyV*4H`mrdXB|>{(tYVa^h0u!jKhh@x%7ar4&<+8@@SVF)<8qs^QmUm3oCV>N1xZPw zA`nLf(=H#S(G3(nLc>2ZLBPETLkPEDF<4Z7I{PWL;KzeEB@P6d7QdS;E*-kF<)*p1 zpcD0UOGI0ZX(*Y+AM4TtR0yMAJ&+a-R1c=3KCIImK%2{NikSweqdnPI0xcgMr46LH zb{o>B8BFKTkI+;|1%%6wH2=`B!c$^L36)SiT-@D5SG3}itjF`gIGDutIXD{#E)Py^ z1-6|FWae1E`K$-^t9IGtuB2%x-_Bj41{X+Sb6vW1uGzxZ;85f!pe2GY8c28iC06*z z<9)Xv0c0+M#R~(*`MOTYHI$E@)-H|K_c@a1XU#cyo*uYCNK*|1|3f5w4A;!+T1U^2 z!Z1P7xTl_kibPEAxPTu-3|^*^DmcQr?ta1SJ+V1T+k0V_Y=`E6g#xom_Cirm5tk}9 zB`Q9wmb-U{G?1Tlv3UHes`w-uLv~~7b3!Y%E*}V|T>m|Wy{L%24YQ`_NHb9k#<5ZN zx#L2T6Q78)$6I;xYle$61ksiPdqEyp7+V*S{IcX~1vfC;J?58>Fl_(y>AX%>yAqikzZr z($2;ow0|;W?^@gVx_hP}b90$hR8%5*W#Z=PCx88&Qx!oB(XBD_T0KSayt{RUV(Hr~ zoI`>TE_(*i9g)PmBl!9dz`wRe7@0Ix%ST*GjP#wU*Hns@VnOQ!l+mfq9{7fl+#jxo zvOm|aZjH0n;*)TLDkHmhx8AYn_@S#8(OT}WVU7BUl%!oV*_2u{!vu}cr;+uZn_h?Y zeObwh^zdIJsA5y9B^Y(ik*!25D9d=G5(~GqE*EzqAlOIl8s&`eUrw=a zGE|t%rJ$X=uolP$4%XF@D80;XE__LENa zV%FATH{{4fw|yTYe8W7Y-OkE|FZJPLqYiLf#6t>%{vb|EvHk=I7NffBKo5^~uE0KH zpOYq9&xo2-49qtd4A`AE_!hEa4z?re)<<*v^$vP{Mscyue-q!^Yrjh{G4A!?Q;oJK zu+uMxpGeuj()aKb*WJEyK3s0#BsrB{lU-;_MK@idXfd^-H>evzC0vY3TGgDNWmgwd)rimVQp?RmL=A>S;}CRf@ zQt)*C^5v#6eW7VOJ9LbgzUoUv5v(AA&<+BpY>yU*6M1(bVAK z&NTnwt(N~ejr3iez{$?ZEqhZQEGVoiazZ3e-P>tsPQ7NcfZis9IF2osw@r5F$9=&U zAOo3G%B=m2p5HY98M=+3pU1>KTFsk^?TX5er;FAepl8F2cp2_1k@_Km#GU~4t?a?T z9lygPd_I(c3$vO)xUm~R*aTJ!WNq5dzfkXM*(;MiGblFPjA;sRO%U$CaP%b$9-aTy zs_J9*>60p{>Ll7*iT#sKt0YVn;zy(6H;uiz3(LyT_rC3 z)@hH0{?vBBFZ%i&QesNWqid_^4a+FgNxetVmy=gfGeFifBCX@7Ki6q?5`Xq(mT@QI zbzU7fS@u@>{u0^_S_WQxl!41@vH={x%D|mJ?tnf+8cYlg6wNTISXp#0P9Ydo>UaP8 zrMuvSI+iKWt?63r`VYatxQtqCIOIapcxy)fNbDbukrkfF&OQRLC05dRZRNcw8t z-bC+eFAAcywT`ZS@9;FDmR4#_O-)Eq5zGSOnXGfC(LM6@b_Med1o`b!Uc`bt#9weK z7@Vly1_uftlH>PG;9>^wgI&OHib=)qvbcQkkft>@Zg5=2ZEZ#ZcI~g9UpKFtKjAHh zhE`v4b;g3tcMNx<;gbp+q6@g^!IqfVcqZtcYHhUzC?eRz3!k#4>qFX zHfjFra^Ul1seXI;d`QIwRCCGzyNDbNosjU@|K-K}bAQuATvY%&RcOU84X@qg|Ldl0 zlL>WSc_IIOe0qU%ey;z%8}KA;P05CrGegJ~%`z;0 zo2Wr}MZMPu<_J*L82--<0d9D6lYV1~Fgu2DdmpXguZiirMp^%LU7_vg0kLrn;)q|; zwKYyK6IOod`v3h8Fp;9S>I)3NBRQU+^_*OHUg=Q6ob&eX`@gZv{|uNAuDgZsL2v1+ z=53Hy8NdEKHl?;gWnyCvZ7%T=N#z~ZiDtGuZsPxb4-{zpNPM^SNArVdu4&(j3fq1! z@XOkxN#|jx1O4O=5R!-j(d`2}D1^&L$pdXEFas9jBeuoqgZ^9?WH@w&Eo<+to&HeV z@E3|Z)LT?hfo%Co-C6X}rI(XiP}BRIxM@~$agmUc5j)uCj&-r_EVX2|U4FI^x61+s z7wD|qu^1g-aX&StP&+tS)Fkl+6?Bj|Sj*%O}!%s5dgMNORN9dT+V$@>wdBz~__t{~PK4HJF))AE|e(#K{^8sLF><1GBy;h=QUHkps0 zmRSCKETi*0p0QB`4o2-zfK8@mXu*irDy~`AuQ1u3-LyhqGq=QKE7?}-+#2EIx4s|j zDr-779+_OJtiR=K^>}62W6%l*F4%IK)w<3T91x^|X$cGbObec8r({&|dRbo%|Mcnk z&%{J5?rg8&?rw~ZkB3F~ASjDW6)3sYg5`qAI$2qRC%El!U*&@9RR_%<+g;P2x_OAl zT!LQq33Tf26qzzaVI-DET+a7cfolz=UT4-t4HD*wVDELU=f>^!yJy8i56x&U8(O(X zKh%i~WpeY;CILPmC%VOuk==JmuTL18#0>{{P-qfwD=Uwsj$D{6U4fl2n=2SU?D-k- z{hn7DS(^u@I`ZnWN2locMm;~H>s8xTGCHS?pP14hk5|Bz{9RXudX3*4wt~OHpF+rg zpX`G%FgLLo>2zbRQh(B}(W~9QSOA94{eSWUrnBlLBcEOj!k*@jr>su{(a-zAnr$NZ z{tqx;Cq8{izq-+rbnwLry0PnXHim<}kkq6c_cFH%@6!L{)e}D> z;VqaSd-3sZm_im+0V@1C;UL)F6*OzbGc587}|ksYwOb+pJ-=c z`qH+l(u1@msuv-mq*h1zD00ab_{RP`*)bv_0DhqIWB~=@SS%$Ou^0b4;<>9F#V7t} zT~hei!Czhl4@Rv+Y7kP+qAij1Aqjdm2KhhZMD}}LqPC08wEJEY=R6Ki>MN4}z6S7G zwf+1*5p{|GiDRK8g*;*SMNGYkA={#&(JVS*TmW6`jheNlmv?mL#^R)98o1u>UlAqgjshd(M?rD#| ztP$lWUB-LwZCxRyfx1qY!tTs4AaB{u=R+)hJ%Vv~&Cpa_e|_bcK6V*$FxFf$*7K`! zgiSv)TCK!c=WR^6soF5c@!rl2AsDpiFC4Z2270hz-x#$dy`&`%l;#T!EWLL|RR(~t z6mvxLpwvT?h#0H7@AyY*a*7Tt0$ImXS}BJm$u-@f&(8gM`k}OPrWzULf4Gpof0(b{ z{x&JE4sYUdOb;!-wK*QW{I+c7Ed|@*ylPwg)!ueRX$}E%UbWlK=!HFZz_{EouZXew z$J?LWbFdHdhdZGQbPYkNjXO(GzNbatDhwm<8bf!pw>_x}*q88wybcoQd}QQN)nqU4 zhRoU4>D2r7j%FCmFA`DsGE`f~H1~RH?Q*ATzt!s~#wO$E{=So{5CW{x#75$58@)K} z?8L?BKR83Wt25PqnImPI7=PYBaS9D7f#UO7RoJTk!=Xx$9?{c(TRFQreeYJt{nzeH zYP89fYT4tL+M}k2IJWvj1+N6K8*moZ)9%fPc7G2;H#C74mep8myWlxAr==yU)QYID zuRpZ&fxgky%a_aDBRO|gVmSWp*aecSW5BHYCr?dcqW#H|NV~8vcYqR9dtM;HZ)xOr zzU6O0px+e7@%2(&VmW}mAM`kH0WRBQDwf&OeE^5M4lWW_;jM71W|qzEUj=+#wFJ2& z`%tx-ukbpOb7-DK(`8aRm!nYb$r|#!@=Hiw;2j2m$OOgLqL0i~gC={`?^}r7u;r?! z(g`l!uAD4=3+&>NT_=nRT^<)ZxyK$*B#yR*%6sSgm?bMf624EBwjtm}?w3tGIlYWj zgy1Th21ohv)C>9I48Hn%1`9)-iO3h^eH4*)KKPe@1dtY zQ=js&*>T}A9C2+zu{%KtRjmwR%-5`M-$ZD&TT0GkkBkTF>{!k$mN3MXqT;meG9H8x zshIck_er5se$Ra|)m}W+-8wZ9bV!Yd{}R&S@0Z?}xYJ(xA3R04?X2xam$%Mqh4YWr{hVHkBb06jk?P^T#&XLi9PZ9Mc_W{@RoCTkDg{KB zl=Ji5UQ%SUTntKjbmW~{L|!e}NRr%RH2;VV6D{E%^w~fA1 zcjd#w2`&#L8BFaZyg~yUjJa@9;93_b;U||10db8CFR`Xa{MgJeM{YIX$iFn+Qp|-Z z=JwR*==zSVPJK^ec9N#081#Ibsz4AbVz|`3T8jQYJn(00jC_Ou5UEb+Gy50EOHa#N zy<>Xf=ytj_dynbbPUDEhJn5~>B(i~+ypTQj!H07=$sN(K;-^)LH7(tRmtACsn6WVb zpV%RtSHx{Lf!z_zV8_G7G0#TJiFO++0UpKumu=oq9$VdMQ^|cC_lA zHKQmMt~Y;#Gr91L24P!MsINNJ8_qd|6&xEi_#Wz@efW9>7AkeD3LE5T%c30fG}Xp zJWT0iV`6W_VURW%I+03bKs5z9$T=Wbc{kp|63%33Ccegd7250En`=I=WaUyRo`YM_ z>*}IJpWKM3k(4p6+*H(rzDFeaaD3wBGM=p`b|ShBK_=GcvUJu7=R|-UjHB1Wny-9n zs9f%A`fw8d+@7OMCQ~7{T#D{XiI9LI9k>>pbbh!wcnX7)sLm+jQrr)&6S)rWA`7IE zC}uIL_;w!AMdM(Vh)y;_+IAC~S9<5qeZpimUp7B|aYVvrMI^za9 zE>ejojY<&0Ww!q5PzL5e(@82}29glIGL^$LzQ7-_!RiOB29vNi;_seVA%lf6!lM-& z=2^=7STp}@%7^0n!VHzX&|nk0X8YAi6Cm=TrWud)==l3EwJU(-kuD|!8JVe))F%E2TOdh`|1uqaLaC&m0G~|9nV+DmY9tT4o3+z zS`hjSpR@QI2(rv!6Om+nS1!YDRRu_B(Gu}e9U_W0R~5%6f(Z5s;TW$u`S8t^lE8%s z2bmNKNA~i=0BvE!#Fx-J^$O&UH{Y|2-!Q61A|a>&Ssp19b!v@P1-0$YmQ+oKE~WRD zHHmSxvmDLvwXv`zV0)EWcj@d|jjW+Xg5N!TUT%VNMyPCi=LKdWD5uMF{b3@saV!^1 zM0}~RTI3^4VJOlZB%=z0mtiX2pVBVrHC}8E+507WVqQegwmbVJY_P6w@M~J%#u1>v z58s&Ctf24FWR$I!!@ZjMwRzRwsQ|UbAasfvOHV*;2>eNnPjP)*;z97Z&diROvfC$a6BN_g`zeb zuMGQgWUB1d2DW0qz5MAqG7jW9ch$ygk(cKd3cm1WyWYPTppER7liDx=)>s>0pQX^N z

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 uu82JS?gVO6@c9qe9sKxj_