From c42f74b4ee1c1ae68abb826fbe501a03e61a90b1 Mon Sep 17 00:00:00 2001 From: catborise Date: Thu, 5 Nov 2026 17:28:13 +0300 Subject: [PATCH] fix(accounts): an OTP mail links to the QR code instead of holding its secret The Lost OTP? page, open without a login, and the admin's Email OTP QR code mailed the QR code itself: the TOTP secret then stayed in the mailbox and on every server the mail passed. The mail now carries a signed link, good for an hour, to a page that shows the QR code (not cached); the page shows nothing for an old or altered link or a user without a device. tr and zh too. --- README.md | 2 + accounts/templates/accounts/email/otp.html | 8 - accounts/templates/accounts/otp_qr.html | 15 ++ accounts/tests/test_utils.py | 54 ++--- accounts/urls.py | 1 + accounts/utils.py | 35 +-- accounts/views.py | 28 ++- locale/tr/LC_MESSAGES/django.mo | Bin 192619 -> 192584 bytes locale/tr/LC_MESSAGES/django.po | 224 +++++++++--------- locale/zh/LC_MESSAGES/django.mo | Bin 180119 -> 180069 bytes locale/zh/LC_MESSAGES/django.po | 224 +++++++++--------- .../tests/test_authorization_matrix.py | 2 + 12 files changed, 314 insertions(+), 279 deletions(-) delete mode 100644 accounts/templates/accounts/email/otp.html create mode 100644 accounts/templates/accounts/otp_qr.html diff --git a/README.md b/README.md index 09aecc88..6dde2ca3 100644 --- a/README.md +++ b/README.md @@ -454,6 +454,8 @@ An LDAP user is authenticated by LDAP and authorized through the WebVirtCloud pe Set `OTP_ENABLED = True` in `settings.py` to ask for a one-time code at login. It is per user: a user without a confirmed device signs in with the password alone. +The QR code is mailed as a link to a page that shows it, good for one hour: the mail does not hold the code's secret. Email OTP QR code on a user's page (Users) sends it; Lost OTP? on the login page sends it to an enrolled user who gives their address. + ### Serial console A VM without graphics (no `` device, a ``) opens a serial console (xterm.js) instead of VNC. It is off by default. To turn it on, set `WEBVIRTCLOUD_SERIAL_CONSOLE=1` (Docker: in `docker-compose.override.yml`, then `docker compose up -d`) or `SERIAL_CONSOLE_ENABLED = True` in `settings.py` and `systemctl restart webvirt-cloud webvirt-socketiod`. diff --git a/accounts/templates/accounts/email/otp.html b/accounts/templates/accounts/email/otp.html deleted file mode 100644 index c41a01b4..00000000 --- a/accounts/templates/accounts/email/otp.html +++ /dev/null @@ -1,8 +0,0 @@ -{% load i18n %} -{% blocktrans %} -Scan this QR code to get OTP for account '{{ user }}' -{% endblocktrans %} -
-{{ qr_svg }} -

{% trans 'Some e-mail clients does not render SVG, also generating PNG.' %}

-{{ totp_url }} diff --git a/accounts/templates/accounts/otp_qr.html b/accounts/templates/accounts/otp_qr.html new file mode 100644 index 00000000..82697f70 --- /dev/null +++ b/accounts/templates/accounts/otp_qr.html @@ -0,0 +1,15 @@ +{% extends "base.html" %} +{% load i18n %} + +{% block title %}{% trans "OTP QR Code" %}{% endblock %} + +{% block page_heading %}{% trans "OTP QR Code" %}{% endblock page_heading %} + +{% block content %} +
+
+

{% blocktrans %}Scan this QR code to get OTP for account '{{ user }}'{% endblocktrans %}

+ {{ qr_svg }} +
+
+{% endblock content %} diff --git a/accounts/tests/test_utils.py b/accounts/tests/test_utils.py index ec85580d..1c436aa5 100644 --- a/accounts/tests/test_utils.py +++ b/accounts/tests/test_utils.py @@ -2,17 +2,19 @@ import base64 import hashlib import re import struct -import zlib +import time from types import SimpleNamespace from unittest.mock import patch from django.contrib.auth import get_user_model from django.core import mail -from django.test import TestCase +from django.test import RequestFactory, TestCase, override_settings +from django.urls import reverse from django_otp.plugins.otp_totp.models import TOTPDevice from lxml import html -from accounts.utils import (get_existing_totp_device, get_user_totp_device, send_email_with_otp, validate_ssh_key) +from accounts.utils import (OTP_LINK, OTP_LINK_MAX_AGE, get_existing_totp_device, get_user_totp_device, otp_qr_svg, + send_email_with_otp, validate_ssh_key) class AccountsUtilsTestCase(TestCase): @@ -80,32 +82,30 @@ class AccountsUtilsTestCase(TestCase): device = TOTPDevice.objects.create(user=self.user, confirmed=True) self.assertEqual(get_existing_totp_device(self.user).id, device.id) - def test_send_email_with_otp(self): + @override_settings(OTP_ENABLED=True) + def test_the_mail_links_to_the_qr_code_and_holds_no_secret(self): device = get_user_totp_device(self.user) - send_email_with_otp(self.user, device) + send_email_with_otp(RequestFactory().get("/"), self.user) self.assertEqual(len(mail.outbox), 1) - self.assertIn("OTP QR Code", mail.outbox[0].subject) - self.assertEqual(mail.outbox[0].to, ["user@example.com"]) - # the QR code as inline SVG and, for clients without SVG, as a PNG data URI - doc = html.fromstring(mail.outbox[0].alternatives[0][0]) - self.assertEqual(len(doc.xpath("//svg")), 1) - (img,) = doc.xpath("//img") - self.assertEqual(img.get("alt"), device.config_url) - self.assertTrue(base64.b64decode(img.get("src").removeprefix("data:image/png;base64,")).startswith(b"\x89PNG")) + message = mail.outbox[0] + self.assertEqual((message.subject, message.to, message.alternatives), ("OTP QR Code", ["user@example.com"], [])) + self.assertNotIn(device.bin_key.hex(), message.body) + self.assertNotIn("otpauth", message.body) + link = re.search(r"http://testserver(/\S+)", message.body).group(1) + page = self.client.get(link) + self.assertEqual(page["Cache-Control"], "no-store") + self.assertEqual(len(html.fromstring(page.content).xpath("//svg")), 1) - def test_otp_email_qr_codes_are_what_django_qr_code_drew(self): - # sha256 of the SVG and the PNG django-qr-code 4.2.0 made for this URL + @override_settings(OTP_ENABLED=True) + def test_a_link_that_is_old_or_not_signed_shows_nothing(self): + get_user_totp_device(self.user) + token = OTP_LINK.sign(str(self.user.pk)) + with patch("django.core.signing.time.time", return_value=time.time() + OTP_LINK_MAX_AGE + 1): + self.assertEqual(self.client.get(reverse("accounts:otp_qr", args=[token])).status_code, 404) + self.assertEqual(self.client.get(reverse("accounts:otp_qr", args=[f"{self.user.pk}:x:y"])).status_code, 404) + + def test_the_qr_code_is_what_django_qr_code_drew(self): + # sha256 of the SVG django-qr-code 4.2.0 made for this URL url = "otpauth://totp/WebVirtCloud:alice?secret=JBSWY3DPEHPK3PXP&issuer=WebVirtCloud" - with patch("accounts.utils.send_mail") as send: - send_email_with_otp(self.user, SimpleNamespace(config_url=url)) - page = send.call_args.kwargs["html_message"] - svg = re.search(r"", page, re.S).group(0) - png = base64.b64decode(re.search(r'I4s", png[pos:pos + 8]) - chunks[kind] = chunks.get(kind, b"") + png[pos + 8:pos + 8 + size] - pos += 12 + size - self.assertEqual(hashlib.sha256(chunks[b"IHDR"] + zlib.decompress(chunks[b"IDAT"])).hexdigest(), "cca16de611c73468827f70001f69dc2e48633e6aae2b570a9391eb40a1f8ae88") diff --git a/accounts/urls.py b/accounts/urls.py index 2056dd9a..1179d066 100644 --- a/accounts/urls.py +++ b/accounts/urls.py @@ -38,6 +38,7 @@ urlpatterns = [ path("api_token/created/", views.api_token_created, name="api_token_created"), path("api_token//delete/", views.api_token_delete, name="api_token_delete"), path("email_otp/", views.email_otp, name="email_otp"), + path("otp_qr//", views.otp_qr, name="otp_qr"), path( "admin_email_otp//", views.admin_email_otp, diff --git a/accounts/utils.py b/accounts/utils.py index a2c1605c..80bdd9e2 100644 --- a/accounts/utils.py +++ b/accounts/utils.py @@ -5,7 +5,8 @@ from decimal import Decimal import segno from django.core.mail import send_mail -from django.template.loader import render_to_string +from django.core.signing import TimestampSigner +from django.urls import reverse from django.utils.safestring import mark_safe from django.utils.translation import gettext as _ from django_otp import devices_for_user @@ -56,24 +57,26 @@ def validate_ssh_key(key): return True -def send_email_with_otp(user, device): - # An inline SVG (1.8 mm modules) and, for mail clients that show no SVG, - # a PNG (12 px modules); error correction M, 4-module border. - qr = segno.make(device.config_url, error="m", mode="byte", encoding="utf-8", micro=False) - style = {"border": 4, "dark": "black", "light": "white"} +# the link a mail carries to its user's OTP QR code: the mail holds no secret +OTP_LINK = TimestampSigner(salt="accounts.otp_qr") +OTP_LINK_MAX_AGE = 3600 + + +def send_email_with_otp(request, user): + """Mail the user a link to the page of their OTP QR code, good for + OTP_LINK_MAX_AGE: the QR code's secret is never in a mailbox.""" + url = request.build_absolute_uri(reverse("accounts:otp_qr", args=[OTP_LINK.sign(str(user.pk))])) send_mail( _("OTP QR Code"), - _("Please view HTML version of this message."), + _("Open this link within an hour to see the OTP QR code of account '%(user)s':\n\n%(url)s") + % {"user": user, "url": url}, None, [user.email], - html_message=render_to_string( - "accounts/email/otp.html", - { - "totp_url": device.config_url, - "user": user, - "qr_svg": mark_safe(qr.svg_inline(scale=Decimal("1.8"), unit="mm", **style)), - "qr_png": qr.png_data_uri(scale=12, **style), - }, - ), fail_silently=False, ) + + +def otp_qr_svg(device): + """The device's QR code as inline SVG: 1.8 mm modules, error correction M, a 4-module border.""" + qr = segno.make(device.config_url, error="m", mode="byte", encoding="utf-8", micro=False) + return mark_safe(qr.svg_inline(scale=Decimal("1.8"), unit="mm", border=4, dark="black", light="white")) diff --git a/accounts/views.py b/accounts/views.py index f85b1b52..02be62b7 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -9,6 +9,7 @@ from django.contrib.auth import get_user_model, update_session_auth_hash from django.contrib.auth.decorators import login_not_required, login_required from django.contrib.auth.forms import PasswordChangeForm from django.core.exceptions import PermissionDenied +from django.core.signing import BadSignature from django.db import transaction from django.shortcuts import get_object_or_404, redirect, render from django.urls import reverse @@ -28,7 +29,7 @@ from accounts.forms import ApiTokenForm, EmailOTPForm, ProfileForm, UserSSHKeyFo from accounts.models import ApiToken, User, UserAttributes, UserInstance, UserSSHKey from . import forms -from .utils import get_existing_totp_device, get_user_totp_device, send_email_with_otp +from .utils import OTP_LINK, OTP_LINK_MAX_AGE, get_existing_totp_device, get_user_totp_device, otp_qr_svg, send_email_with_otp def profile(request): @@ -301,7 +302,7 @@ EMAIL_OTP_INTERVAL = 300 @login_not_required def email_otp(request): """ - "Lost OTP?": mail the OTP QR code to the user with this address. Open to + "Lost OTP?": mail a link to the OTP QR code to the user with this address. Open to anyone, so it mails only one exact, active match, at most once per EMAIL_OTP_INTERVAL, and answers the same in every case. """ @@ -318,7 +319,7 @@ def email_otp(request): device = get_existing_totp_device(user) if device is not None: try: - send_email_with_otp(user, device) + send_email_with_otp(request, user) except Exception: logging.getLogger(__name__).exception("Could not mail the OTP QR code to user %s", user.pk) @@ -337,6 +338,24 @@ def email_otp(request): ) +@login_not_required +def otp_qr(request, token): + """The OTP QR code of the user a mailed link (send_email_with_otp) names.""" + if not settings.OTP_ENABLED: + raise Http404 + try: + user_id = OTP_LINK.unsign(token, max_age=OTP_LINK_MAX_AGE) + except BadSignature: + raise Http404 + user = get_object_or_404(get_user_model(), pk=user_id, is_active=True) + device = get_existing_totp_device(user) + if device is None: + raise Http404 + response = render(request, "accounts/otp_qr.html", {"user": user, "qr_svg": otp_qr_svg(device)}) + response["Cache-Control"] = "no-store" + return response + + @require_POST @superuser_only def admin_email_otp(request, user_id): @@ -345,7 +364,8 @@ def admin_email_otp(request, user_id): if user.email != "": try: with audit(request, None, subject, "mail OTP QR code"): - send_email_with_otp(user, get_user_totp_device(user)) + get_user_totp_device(user) + send_email_with_otp(request, user) except OSError as err: # the SMTP server refused it, or did not answer within EMAIL_TIMEOUT messages.error(request, _("The OTP QR code could not be mailed to %(user)s: %(error)s") % { "user": user, "error": err}) diff --git a/locale/tr/LC_MESSAGES/django.mo b/locale/tr/LC_MESSAGES/django.mo index 729d6c960095d6d4fb1c80d96dc472f7c828caf4..1a43720d3243740e51145f09ec7399523d1e3836 100644 GIT binary patch delta 43133 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 z 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 diff --git a/locale/tr/LC_MESSAGES/django.po b/locale/tr/LC_MESSAGES/django.po index 74b8d35e..a23e7b7d 100644 --- a/locale/tr/LC_MESSAGES/django.po +++ b/locale/tr/LC_MESSAGES/django.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-11-05 13:37+0000\n" +"POT-Creation-Date: 2026-11-05 14:27+0000\n" "PO-Revision-Date: 2020-11-04 12:00+0000\n" "Last-Translator: catborise , 2020\n" "Language-Team: Turkish (https://www.transifex.com/catborise/teams/110663/tr/)\n" @@ -314,19 +314,6 @@ msgstr "İptal" msgid "Change password" msgstr "Parolayı değiştir" -#: accounts/templates/accounts/email/otp.html:2 -#, python-format -msgid "" -"\n" -"Scan this QR code to get OTP for account '%(user)s'\n" -msgstr "" -"\n" -"'%(user)s' hesabı için bu OTP QR kodunu tarayın\n" - -#: accounts/templates/accounts/email/otp.html:7 -msgid "Some e-mail clients does not render SVG, also generating PNG." -msgstr "Bazı e-posta istemcileri SVG göstermez, PNG de oluşturuluyor." - #: accounts/templates/accounts/email_otp_form.html:12 msgid "" "\n" @@ -408,6 +395,16 @@ msgstr "Doğrula ve oturum aç" msgid "2FA Protection Active" msgstr "2FA Koruması Etkin" +#: accounts/templates/accounts/otp_qr.html:4 +#: accounts/templates/accounts/otp_qr.html:6 accounts/utils.py:70 +msgid "OTP QR Code" +msgstr "OTP QR Kodu" + +#: accounts/templates/accounts/otp_qr.html:11 +#, python-format +msgid "Scan this QR code to get OTP for account '%(user)s'" +msgstr "'%(user)s' hesabının OTP kodlarını almak için bu QR kodunu tarayın" + #: accounts/templates/api_token_created.html:4 #: accounts/templates/api_token_created.html:5 msgid "API token created" @@ -526,7 +523,7 @@ msgid "Add" msgstr "Ekle" #: accounts/templates/profile.html:64 accounts/templates/profile.html:70 -#: accounts/views.py:69 accounts/views.py:73 +#: accounts/views.py:70 accounts/views.py:74 msgid "Create an API token" msgstr "API anahtarı oluştur" @@ -556,97 +553,100 @@ msgstr "%(name)s SSH anahtarı için işlemler" msgid "No SSH keys." msgstr "SSH anahtarı yok." -#: accounts/utils.py:65 -msgid "OTP QR Code" -msgstr "OTP QR Kodu" +#: accounts/utils.py:71 +#, python-format +msgid "" +"Open this link within an hour to see the OTP QR code of account '%(user)s':\n" +"\n" +"%(url)s" +msgstr "" +"'%(user)s' hesabının OTP QR kodunu görmek için bu bağlantıyı bir saat içinde açın:\n" +"\n" +"%(url)s" -#: accounts/utils.py:66 -msgid "Please view HTML version of this message." -msgstr "Lütfen bu mesajın HTML sürümünü görüntüleyin." - -#: accounts/views.py:46 +#: accounts/views.py:47 msgid "Profile updated" msgstr "Profil güncellendi" -#: accounts/views.py:72 +#: accounts/views.py:73 #, python-format msgid "A user has at most %(limit)s API tokens: delete one first." msgstr "" "Bir kullanıcının en fazla %(limit)s API anahtarı olabilir: önce birini silin." -#: accounts/views.py:107 +#: accounts/views.py:108 msgid "API token deleted" msgstr "API anahtarı silindi" -#: accounts/views.py:115 +#: accounts/views.py:116 msgid "Delete API token" msgstr "API anahtarını sil" -#: accounts/views.py:116 +#: accounts/views.py:117 msgid "Scripts and tools that use it can no longer reach the API." msgstr "Onu kullanan betikler ve araçlar artık API'ye erişemez." -#: accounts/views.py:126 +#: accounts/views.py:127 msgid "SSH key added" msgstr "SSH anahtarı eklendi" -#: accounts/views.py:134 +#: accounts/views.py:135 msgid "Add SSH key" msgstr "SSH Anahtarı Ekle" -#: accounts/views.py:155 +#: accounts/views.py:156 msgid "SSH key deleted" msgstr "SSH anahtarı silindi" -#: accounts/views.py:163 +#: accounts/views.py:164 msgid "Delete SSH key" msgstr "SSH anahtarı sil" -#: accounts/views.py:164 +#: accounts/views.py:165 msgid "" "VMs that already have it keep it; VMs created from now on do not get it." msgstr "" "Ona zaten sahip olan sanal makinelerde kalır; bundan sonra oluşturulan sanal " "makinelere eklenmez." -#: accounts/views.py:212 +#: accounts/views.py:213 msgid "Password Changed" msgstr "Parola Değişti" -#: accounts/views.py:241 +#: accounts/views.py:242 msgid "Create User Instance" msgstr "Yeni Kullanıcı Sanal Makinesi Oluştur" -#: accounts/views.py:275 +#: accounts/views.py:276 msgid "Update User Instance" msgstr "Kullanıcı Sanal Makinesini Güncelle" -#: accounts/views.py:293 +#: accounts/views.py:294 msgid "The user loses access to this VM; the VM itself is not changed." msgstr "" "Kullanıcı bu sanal makineye erişimini kaybeder; sanal makinenin kendisi " "değişmez." -#: accounts/views.py:326 +#: accounts/views.py:327 #, python-format msgid "OTP Sent to %(email)s" msgstr "OTP %(email)s ye gönderildi" -#: accounts/views.py:335 +#: accounts/views.py:336 msgid "Email OTP" msgstr "OTP E-Postası" -#: accounts/views.py:350 +#: accounts/views.py:370 #, python-format msgid "The OTP QR code could not be mailed to %(user)s: %(error)s" msgstr "OTP QR kodu %(user)s kullanıcısına e-postayla gönderilemedi: %(error)s" -#: accounts/views.py:354 +#: accounts/views.py:374 #, python-format msgid "OTP QR code was emailed to user %(user)s" msgstr "OTP QR kodu %(user)s kullanıcısına gönderildi" -#: accounts/views.py:358 +#: accounts/views.py:378 msgid "User email not set, failed to send QR code" msgstr "Kullanıcı e-postası girilmemiş, QR kod gönderimi başarısız" @@ -2699,57 +2699,57 @@ msgstr "" msgid "The name of the virtual machine must not contain any special characters" msgstr "Sanal makine adı özel karakterler içeremez" -#: instances/jobs.py:68 +#: instances/jobs.py:69 msgid "The VM moved to another compute after the job was queued" msgstr "İş kuyruğa alındıktan sonra sanal makine başka bir sunucuya taşındı" -#: instances/jobs.py:136 +#: instances/jobs.py:137 msgid "Enter a whole number of vCPUs for the clone" msgstr "Klon için vCPU sayısını tam sayı olarak girin" -#: instances/jobs.py:138 +#: instances/jobs.py:139 msgid "Enter a whole number of memory (MiB) for the clone" msgstr "Klon için belleği (MiB) tam sayı olarak girin" -#: instances/jobs.py:165 +#: instances/jobs.py:166 msgid "Choose the clone's name from the list of free names" msgstr "Klonun adını boş adlar listesinden seçin" -#: instances/jobs.py:193 +#: instances/jobs.py:194 #, python-format msgid "%(quota)s: cannot create '%(clone_name)s'." msgstr "%(quota)s: '%(clone_name)s' oluşturulamıyor." -#: instances/jobs.py:196 instances/jobs.py:545 +#: instances/jobs.py:197 instances/jobs.py:546 #, python-format msgid "Instance '%(clone_name)s' already exists!" msgstr "'%(clone_name)s' sanal makinesi zaten mevcut!" -#: instances/jobs.py:198 +#: instances/jobs.py:199 #, python-format msgid "Instance name '%(clone_name)s' contains invalid characters!" msgstr "Sanal makine adı '%(clone_name)s' geçersiz karakterler içermektedir!" -#: instances/jobs.py:201 +#: instances/jobs.py:202 #, python-format msgid "Instance MAC '%(clone_mac)s' invalid format!" msgstr "Sanal makine MAC adresi '%(clone_mac)s' geçersiz biçemde belirtilmiş!" -#: instances/jobs.py:203 +#: instances/jobs.py:204 #, python-format msgid "Disk name '%(disk_name)s' contains invalid characters!" msgstr "Disk adı '%(disk_name)s' geçersiz karakterler içeriyor!" -#: instances/jobs.py:223 +#: instances/jobs.py:224 #, python-format msgid "The clone is made, but not as asked: %(error)s" msgstr "Klon oluşturuldu, ama istendiği gibi değil: %(error)s" -#: instances/jobs.py:279 +#: instances/jobs.py:280 msgid "The VM was not defined and no volume of it was left." msgstr "Sanal makine tanımlanmadı ve ondan geriye birim kalmadı." -#: instances/jobs.py:281 +#: instances/jobs.py:282 #, python-format msgid "" "The VM was not defined; check these volumes, then resolve this job: " @@ -2758,28 +2758,28 @@ msgstr "" "Sanal makine tanımlanmadı; şu birimleri kontrol edin, sonra bu işi çözün: " "%(volumes)s" -#: instances/jobs.py:302 +#: instances/jobs.py:303 msgid "Delete snapshot" msgstr "Anlık görüntüyü sil" -#: instances/jobs.py:312 vrtManager/instance.py:2286 +#: instances/jobs.py:313 vrtManager/instance.py:2286 #, python-format msgid "The VM has no external snapshot named %(name)s" msgstr "Sanal makinede %(name)s adında harici anlık görüntü yok" -#: instances/jobs.py:325 +#: instances/jobs.py:326 msgid "Merging the snapshot" msgstr "Anlık görüntü birleştiriliyor" -#: instances/jobs.py:344 +#: instances/jobs.py:345 msgid "The VM is no longer on its compute" msgstr "Sanal makine artık kendi sunucusunda değil" -#: instances/jobs.py:347 +#: instances/jobs.py:348 msgid "libvirt is still merging the snapshot" msgstr "libvirt anlık görüntüyü hâlâ birleştiriyor" -#: instances/jobs.py:355 +#: instances/jobs.py:356 msgid "" "The snapshot is still listed and no merge runs. It cannot be told whether the" " disks changed; check the VM before deleting the snapshot again or reverting " @@ -2789,44 +2789,44 @@ msgstr "" "değişmediği bilinemiyor; anlık görüntüyü yeniden silmeden ya da ona dönmeden " "önce sanal makineyi kontrol edin." -#: instances/jobs.py:362 +#: instances/jobs.py:363 msgid "The VM is no longer on the compute the job ran on" msgstr "Sanal makine artık işin çalıştığı sunucuda değil" -#: instances/jobs.py:368 +#: instances/jobs.py:369 msgid "Take snapshot" msgstr "Anlık görüntü al" -#: instances/jobs.py:380 vrtManager/instance.py:1882 +#: instances/jobs.py:381 vrtManager/instance.py:1882 #, python-format msgid "A snapshot named %(name)s already exists" msgstr "%(name)s adında bir anlık görüntü zaten var" -#: instances/jobs.py:392 +#: instances/jobs.py:393 msgid "Taking the snapshot" msgstr "Anlık görüntü alınıyor" -#: instances/jobs.py:405 +#: instances/jobs.py:406 msgid "libvirt is still taking the snapshot" msgstr "libvirt anlık görüntüyü hâlâ alıyor" -#: instances/jobs.py:408 +#: instances/jobs.py:409 msgid "The snapshot was not taken" msgstr "Anlık görüntü alınmadı" -#: instances/jobs.py:431 +#: instances/jobs.py:432 msgid "Revert snapshot" msgstr "Snapshota dön" -#: instances/jobs.py:462 +#: instances/jobs.py:463 msgid "Reverting the VM" msgstr "Sanal makine geri döndürülüyor" -#: instances/jobs.py:473 +#: instances/jobs.py:474 msgid "libvirt is still reverting the VM" msgstr "libvirt sanal makineyi hâlâ geri döndürüyor" -#: instances/jobs.py:477 +#: instances/jobs.py:478 msgid "" "It cannot be told whether the VM was reverted; check it, then revert again or" " resolve this job." @@ -2834,12 +2834,12 @@ msgstr "" "Sanal makinenin geri döndürülüp döndürülmediği bilinemiyor; kontrol edin, " "sonra yeniden geri döndürün ya da bu işi çözün." -#: instances/jobs.py:494 +#: instances/jobs.py:495 msgid "The VM must be running, paused or shut off to be cloned" msgstr "" "Klonlanmak için sanal makine çalışıyor, duraklatılmış ya da kapalı olmalı" -#: instances/jobs.py:495 +#: instances/jobs.py:496 #, python-format msgid "" "The guest's file systems could not be thawed (%(error)s); thaw them with: " @@ -2848,19 +2848,19 @@ msgstr "" "Konuğun dosya sistemleri çözülemedi (%(error)s); şununla çözün: virsh " "domfsthaw %(vm)s" -#: instances/jobs.py:514 +#: instances/jobs.py:515 msgid "Clone VM" msgstr "Sanal makineyi klonla" -#: instances/jobs.py:555 instances/jobs.py:562 instances/jobs.py:830 +#: instances/jobs.py:556 instances/jobs.py:563 instances/jobs.py:831 msgid "Copying disks" msgstr "Diskler kopyalanıyor" -#: instances/jobs.py:614 +#: instances/jobs.py:615 msgid "libvirt has no result of the copy" msgstr "libvirt'te kopyanın sonucu yok" -#: instances/jobs.py:625 +#: instances/jobs.py:626 #, python-format msgid "" "The copy failed: %(error)s. The guest's file systems could not be thawed " @@ -2869,11 +2869,11 @@ msgstr "" "Kopyalama başarısız oldu: %(error)s. Konuğun dosya sistemleri çözülemedi " "(%(thaw)s); şununla çözün: virsh domfsthaw %(vm)s" -#: instances/jobs.py:628 instances/jobs.py:712 +#: instances/jobs.py:629 instances/jobs.py:713 msgid "The copy failed" msgstr "Kopyalama başarısız oldu" -#: instances/jobs.py:653 +#: instances/jobs.py:654 #, python-format msgid "" "The VM is no longer on the compute the job ran on; check these volumes, then " @@ -2882,7 +2882,7 @@ msgstr "" "Sanal makine artık işin çalıştığı sunucuda değil; şu birimleri kontrol edin, " "sonra bu işi çözün: %(volumes)s" -#: instances/jobs.py:688 +#: instances/jobs.py:689 #, python-format msgid "" "A volume of the clone was being created; check these volumes, then resolve " @@ -2891,15 +2891,15 @@ msgstr "" "Klonun bir birimi oluşturuluyordu; şu birimleri kontrol edin, sonra bu işi " "çözün: %(volumes)s" -#: instances/jobs.py:692 +#: instances/jobs.py:693 msgid "The job stopped before the copy started" msgstr "İş, kopyalama başlamadan durdu" -#: instances/jobs.py:699 +#: instances/jobs.py:700 msgid "libvirt is still copying the disks" msgstr "libvirt diskleri hâlâ kopyalıyor" -#: instances/jobs.py:702 +#: instances/jobs.py:703 #, python-format msgid "" "Another backup runs on the VM; check these volumes, then resolve this job: " @@ -2908,7 +2908,7 @@ msgstr "" "Sanal makinede başka bir yedekleme çalışıyor; şu birimleri kontrol edin, " "sonra bu işi çözün: %(volumes)s" -#: instances/jobs.py:707 +#: instances/jobs.py:708 #, python-format msgid "" "libvirt has no result of the copy; check these volumes, then resolve this " @@ -2917,140 +2917,140 @@ msgstr "" "libvirt'te kopyanın sonucu yok; şu birimleri kontrol edin, sonra bu işi " "çözün: %(volumes)s" -#: instances/jobs.py:735 instances/templates/create_instance_w1.html:60 +#: instances/jobs.py:736 instances/templates/create_instance_w1.html:60 #: instances/templates/create_instance_w2.html:356 msgid "Create VM" msgstr "Sanal makine oluştur" -#: instances/jobs.py:759 instances/jobs.py:804 instances/views.py:2491 +#: instances/jobs.py:760 instances/jobs.py:805 instances/views.py:2491 msgid "A virtual machine with this name already exists" msgstr "Bu isimde bir sanal makine mevcut" -#: instances/jobs.py:761 instances/jobs.py:801 +#: instances/jobs.py:762 instances/jobs.py:802 msgid "There is an instance with same name. Remove it and try again!" msgstr "Aynı isimde başka bir sanal makine var. Onu silip yeniden deneyin!" -#: instances/jobs.py:764 +#: instances/jobs.py:765 msgid "First you need to create or select an image" msgstr "Öncelikle bir imaj oluşturun ya da mevcut bir imajı seçin" -#: instances/jobs.py:766 +#: instances/jobs.py:767 msgid "Choose one disk source: a new disk, existing volumes or a template" msgstr "" "Tek bir disk kaynağı seçin: yeni bir disk, mevcut birimler ya da bir şablon" -#: instances/jobs.py:768 +#: instances/jobs.py:769 msgid "Image has already exist. Please check volumes or change instance name" msgstr "" "İmaj zaten mevcut. Lütfen ya makine adını değişin ya da disk alanlarını " "kontrol edin" -#: instances/jobs.py:770 +#: instances/jobs.py:771 msgid "Invalid cache mode" msgstr "Geçersiz önbellek modu" -#: instances/jobs.py:772 +#: instances/jobs.py:773 #, python-format msgid "This host offers no CPU mode or model %(mode)s" msgstr "Bu sunucu %(mode)s CPU modunu veya modelini sunmuyor" -#: instances/jobs.py:774 +#: instances/jobs.py:775 #, python-format msgid "A CD-ROM cannot use the %(bus)s bus" msgstr "CD-ROM %(bus)s veri yolunu kullanamaz" -#: instances/jobs.py:777 +#: instances/jobs.py:778 msgid "The cloud-init seed is read from a CD-ROM: choose its bus" msgstr "cloud-init tohumu bir CD-ROM'dan okunur: veri yolunu seçin" -#: instances/jobs.py:780 +#: instances/jobs.py:781 msgid "The cloud-init seed needs a directory storage pool for the disk" msgstr "cloud-init tohumu, disk için bir dizin depolama havuzu gerektirir" -#: instances/jobs.py:786 +#: instances/jobs.py:787 #, python-format msgid "This host offers no firmware %(firmware)s" msgstr "Bu sunucu %(firmware)s firmware'ini sunmuyor" -#: instances/jobs.py:788 vrtManager/instance.py:3010 +#: instances/jobs.py:789 vrtManager/instance.py:3010 msgid "This host offers no TPM 2.0: install swtpm on it" msgstr "Bu sunucu TPM 2.0 sunmuyor: üzerine swtpm kurun" -#: instances/jobs.py:849 +#: instances/jobs.py:850 msgid "Writing the cloud-init seed" msgstr "cloud-init tohumu yazılıyor" -#: instances/jobs.py:856 +#: instances/jobs.py:857 msgid "Defining the VM" msgstr "Sanal makine tanımlanıyor" -#: instances/jobs.py:889 +#: instances/jobs.py:890 #, python-format msgid "%(error)s. Remove these volumes by hand: %(volumes)s" msgstr "%(error)s. Şu birimleri elle silin: %(volumes)s" -#: instances/jobs.py:914 +#: instances/jobs.py:915 #, python-format msgid "The instance is already on %(compute)s" msgstr "Sanal makine zaten %(compute)s üzerinde" -#: instances/jobs.py:916 +#: instances/jobs.py:917 #, python-format msgid "%(compute)s is not reachable" msgstr "%(compute)s sunucusuna ulaşılamıyor" -#: instances/jobs.py:918 +#: instances/jobs.py:919 #, python-format msgid "%(compute)s is the VM's own host under another name" msgstr "%(compute)s, sanal makinenin kendi sunucusunun başka bir adı" -#: instances/jobs.py:936 +#: instances/jobs.py:937 msgid "Migrate VM" msgstr "Sanal makineyi taşı" -#: instances/jobs.py:980 +#: instances/jobs.py:981 msgid "Migrating the VM" msgstr "Sanal makine taşınıyor" -#: instances/jobs.py:1027 +#: instances/jobs.py:1028 msgid "libvirt is still migrating the VM" msgstr "libvirt sanal makineyi hâlâ taşıyor" -#: instances/jobs.py:1034 +#: instances/jobs.py:1035 msgid "The VM stayed on the source host" msgstr "Sanal makine kaynak sunucuda kaldı" -#: instances/jobs.py:1036 +#: instances/jobs.py:1037 msgid "" "The VM is on both computes or on neither; check them, then resolve this job." msgstr "" "Sanal makine ya iki sunucuda da var ya da hiçbirinde yok; kontrol edin, sonra" " bu işi çözün." -#: instances/jobs.py:1068 +#: instances/jobs.py:1085 msgid "Move disk" msgstr "Diski taşı" -#: instances/jobs.py:1075 +#: instances/jobs.py:1092 msgid "Choose a disk of the VM" msgstr "Sanal makinenin bir diskini seçin" -#: instances/jobs.py:1099 +#: instances/jobs.py:1116 msgid "Copying the disk" msgstr "Disk kopyalanıyor" -#: instances/jobs.py:1142 +#: instances/jobs.py:1159 #, python-format msgid "Another block job runs on %(dev)s; check the VM" msgstr "" "%(dev)s üzerinde başka bir blok işi çalışıyor; sanal makineyi kontrol edin" -#: instances/jobs.py:1148 +#: instances/jobs.py:1165 #, python-format msgid "The disk stayed in %(path)s; remove %(dest)s if it is there" msgstr "Disk %(path)s içinde kaldı; varsa %(dest)s dosyasını silin" -#: instances/jobs.py:1150 +#: instances/jobs.py:1167 #, python-format msgid "The definitions of %(dev)s name %(paths)s; check the VM" msgstr "%(dev)s tanımları %(paths)s gösteriyor; sanal makineyi kontrol edin" diff --git a/locale/zh/LC_MESSAGES/django.mo b/locale/zh/LC_MESSAGES/django.mo index d624f42e7ff6db5e13301f887033b3aba9474e6a..4c3b25c28ce071a1478ff3aeef913b38b5ace09e 100644 GIT binary patch delta 43017 zcmZ791#}h1|M&4taCf%=!QCOaySpa1yX(cRxD+og#oY_VDHMl7fkJUDR;2jz{@nTU zJN%zLXL-%cj?3Pgw6wFnM!okXs_#bJ@H0KG-y?ZmavW65^V&xByz7IM>UsTEcwPwh z$2_7cQ6IE_IYH1E* z9DIVY@Uz8ZY;!Y|3YEY3Hs)UqS0y1jPC%{I9BhJHQ6rDD-OW%>tU`P|D*ZC1#zH$h zFDEv}%s2rH;to{DU!aya%T8t!+hQ^r{|ldtn-8Cw>U?;wy`1 zIO@{tVL6@uQT_mLKvcu=j?p`;f^qRa7RL8j9`hadyb3rNH8V$1<-+~uMpy(xh>yl* zc);R8Cpam@8>3FoORPxyUfPpx7k9>%#3y4Z{1-D~{@>M8&kMy2xB_(wPNOzovQw_Y zj`)%I0#pa)oOVll5w(eqV7DjcnIL5+C z7!w_#=T&%BH({{mJ1E9(6a<)UjR6{aAb8Iz)~0)b2fT4Gw9i1Bd~D#KCKn%%rGSBkzF~h%Z6C8K0oqNq5=bai3R_fTq3$YU(n;;m6L-4$c${P!i$mV_~=3ZG*< ze2rS;$bY&`7auis!5AA$q23F%Q5~C%s(7Zw7oh4}idk_LszaAh1HOqtwC_D8kPD+- zbyHdtwM&~}H5`X3cm>noZPad#aLsi*I;x|+P#qtN>c|XK$L8DfC8#~K9yQaO(WjB@ zC!h|TMNL)Ub=N?A)LJJ)?c!>v(=r5A(FD{;reHFhhuWk&P#yghwN!U7F}_E2DDGdb zT;ji&|3oCDB|)2_Flq#$s1f%>jdU;u;Yd_RmZRPSmoPcr!z>th!*w9LSpYTC5~%vB zqGqZ-YTzwzF#meciv;y-2&&?dsFBV?WU@t8HzfFy-^L0H`k#WK8tGTZ_I%Ip*kFN%gtbREJeH& zro&N~6xU!LJc_B%_knv)v8N)qv9nFp^R~Z{(BlHCk*h)YRTtZcN2ernpQ4L0VA zunjc>&oLTCeeRB9LR1IZVGQ))cASW@u*?fL6LnA>UyVBNPf__ZzjT|eAZ8#w4fS5w z?b3bTX98-l{wvo|OVlwLfFU>+wT724HvWZLnrEmPdyhI^-oGwi8uT}el}Rp$$~O{Y z;t!}7*<6go{_{2x(A4h4$#@+#;!dyKt{s8th)+ayV2h<6#yG@JV-Nfrt77dpt|N<4 zQ~fiR$L*+&f3fr^Z`nIK{|O0{!DLt#!>|~xFz;bL;=%7cuK+f}!Z;1J%THrYe2N7y z#eeSOye_K2F{nK@&EoSgF7XxUQxA6$&=MR)#m}Rr>ZbV&;}idkTJyN?-SJF=`H2@s zmG6NGaR^4hnV1OYp_Xt9s^LATj-7tb{OkDqNrI;G1_t8`)W{NiaBG(bwYfqtFAhSL z+l1=ycGQ|5LUr(*c?+Wue~Iz%BPPLEA6ZPW<*pq>vxb#OFl z1hY|7x(2l;wxT+81hpAYSo%}cX8w%1F~ui0uo{?!co!dmA_V4QIlPQzFy&{Lu_Y!Y zJ`5A%eALox!^U_RHN`<+TzWywOuRg*<2_Iv9E8d@5mjzEY5=}~ubgcHQ85I2Vqsj5 znt{itDSd&eh@SxbYZ=E(g4*4wQOB%3YCzpkdtx2d!d_m0+IF`}*KW_<% z;<~9xjpfOZ6}1GtP(7Z78o?S=hxVa9Ozxl>`iz?DLh)R_#;7Ihf*QyG48;+sJ#`0D z>im20-IS%mN<@3(Li`og^RNW&T>DVRa|f2d3z!|_Cv=;xG^&H;QKz91YNkR_r)2_a zAk$Irk(KCE#$5z*;Xc&ycwv4;?dF(?+|PFQ_SvoXl;q=%^`8kD9SusOLpd z9Vm%vup(+?^(=iPrYAlDRelSqgZnT$`c4s0!B41)q9k|5L3Jnz>OGJF)o@eP612DH zOHk!DqV~j2RDJtVFQDHo9+1M-7ZbIqlOrATd4&mRDq5hW zQTZOAI`kTqKXxj&WSLPN%!?XOMKct&RJ~E3mi;Zh6(j5X?Ti}wFFmj zDLzDva6(Xk|J(5bRD*j^BRh*hcm*}Z?=dGPPVHu(BDN#m8SCI5=qpbkOB%PfJyEYz zAC|*eSOIUKc6WxfZizxrQ(F_2-W;{5dRh7i)Dld$=gUzuw-YtMBd8@fotE>j2Ny|D zg||?f=%vN~LluY|>}Dtq>U1PWl}nFWf;_01s*2jAjqQ0`RQX=086Ir$v8b7x8tii! zmRN>0sE%yMVt5p_6cN(73ZkMu?Gm6yoESCr8E_xwK&|~V48ri~-Mc;=s>7vFo4PvY zz;-?YsR_)+47eLr;cd)_k5Nk!FM~VRSx_Tsh^nX+>iJ+){+XBp_o3bc*HIrfQ8T*q z3>ZwjENV0QIuOu^m!mRnLsfX*;*T+ic%)43(=a2dgOyQJTN{gG6VzUqZ|NH_6Y-rG zgtt*|zHph{5+y?7J})f+^|%0L!Mdm!8HSqTr5J>pQRnyqD*roFM-pTSa6ek1I#dI7 zJR73&^+qk>bWDn~QF~MGc@VYRT%LHfJbmsXAf;o&OmGRKaT0rdyBs@gG!0!P(uW%ZjQX2P(a= zSsFFP1o&wb`1XW@Hei#9Ua~>O!!(` zhC!&!I2KiLq86wTwL`6KFVxHoM4f`6SPQ448orNOnim$2S;)Px z5@QSvxd8z+*ap>5chs8p$EG+Q^}=|F>iJt7gAqeq2PUC*`%F~1m8cHv#4wCj*!@V? z3ALH8o3AjHraW>Hcg!-P*0vv(!b7MIMJ(#xXfaVE&y1Rh{HVQC1odjIjGB>9^bZKt z@$MLmK1*MQs&@nW|M}kz0$Ri4sEW>6hI^R4;kh`XRh)(f>seHNdO8tF>Z zH==E*dQPCqpF@rKDk|S?REJ*__qhyS3Ac%&pel%oI^sREJBTUhP#;&ud~yihH31v`H4D_P}P;n(al6_y}r> zFWK`)s0RNBq=@BdN!>-PMd;&V3 z4N<3I2x^m!z-BlJL-8L=uUgT~Py^IVG&lRA8k~r=a31Q5%`??Sa{-wcU@J!lS5TcNJ6N->8mxm0d&8Q2COe@?|sgpc*cOD%Tj(;y_fx3sD_f zS()>%26vO7U48(y>CU32>N=|8e^B}UwfG10cch9-kA@mZT+|F^#w?fvCt_pNj6A|@ zSfr|Zg?FgR`PbCHB0)V%RLz+R)x!*^-5Y{GVtL$zH!OWhb+;4?P+vM%pgMXGwWoeF zFQDrG%i{M?`JVgi!CTaB|AN}3F>AOf&WJk4`B5Y6iJI~sP{(N@>a;9Hm0ye61A8rg z0`;c6iki`Ps2Pe})BR?}7lVKrEQq6#cv1(j(P!Q_hC7_gOu}mnd`V;D0IfkJXnDh@s-7k)O8~oi)!#kER5$c z55}nH8Z3!gfED*yXdKKJ2~r?s2f#;A-lP{-*J4pc_WiM`vnSMCbbY1xaKspqJ@P^qo^ z&Nm3PM1P@PI0@RhcxhAz2AcbQ1WJ$)uD$!lQwEO^Z;6`vOdZ@;sn(dE_-)i?O42dF zTZYw9$M-d=!I+&~xpFvx_;9R%u{yi+-T*bTBT!4=TS`D*wN9Zbeu`R>G+kW5a+s0$ zWYmavqK@4Y)RLv@>h?q#R6V0n^(;q?^ct$ZRNdV3(x~@E3-syyFDDR2Lb~qmO*a~K zj1HmJ{5fh<!tt5}ZXX!Bbp>iAK9`$2(C2xqvzqQN{%L|7Eu9sHq-`@o@|46?`0Z3U2ubXexup zx~VUP+5^K;n`gaw95wRWsPi0WoZB;vPz?-6_OiDPwf6bOyKhc|Q7^I)7=+U?DQ-n| z#COIL9-=l&xF6iwltj%$Tda@gP{%FP1UJ=9F(L8ExE)tuB5XR*%|LHVO?_C2#@nnFOo&53XYj)FctC3s5N_M>9J?J zFOi8cHtDHQ$1W$TgH2K21*ciBN8=U1>Q@eddQE6j2;SqQ$mv}~0fx@T}*T9$2{#uzQA_X;_3D0& z>Tv8uu3Tb_uk)Xq06p=_qcXHX^|%WL;Xu@Rosar-+kzSKENVvHqZ*F7IKcm}TqZ^3 z?~a=Kv8WClLv7+am<3}l3Gf=yz86A3Yd!;2(E`-@U5EN|c?Y!#i!F5(*F;s=4wXI< z^%*h?wG`Vh2=}1!T}K_;|1cb;S>~1^J^GZ8kAU9og-``LV-6gLs(2Ts!^`Gp)SEKx za`&n(hM~l}p~{~{&CpZSNE58EHy~<{R6*^Ho+~*2n(DzM=oE}c?aKM6wY`U0lCP)& zkybk6pwg3}Hd|U$JsDAJp3k0_MD3-DsC+fdx~Q3Iw9@A)3L`;F&<@p+?&#lysD{R) zDwu|PQ_e!YIX9xt^HF<#4ugpQfvWEvs$uA;6HzlT54BWlQ8Ty&HR3&}nL349x<65;>jtXcXZ|?n?==C9 zIQ%+SK}=MS6Qa^fpem?@)v!A1)cl0{Fj<1?&~j9RTkQFM)Y>0H~+5O~G5Hphg17^dmsCV~m)JS7&ac|7bs7>1p^W*e z&B)JWf=Mjm~eJ2k0M&x@iuSRb_n z!%?3hYq2EWw)Eib?s+wALb|UX0d1m7m<1o88i=>UjVvRoBPCF47lvBfQCJBVVHiHa zURY(P{j*}MK|ISI~r!@B&xxneQtAiM}6E6!_@lxUqm2;goD@`Kcjx6YPsJ{ z@sFreu^BTcAL{e{F>3b*{OV>bE^3A{pgxwXpg#XYQSX7DP)oH2o8b{`O8Z{$0ry}y z)+Ih4o8l`}g*6Vk4)w+y#8+V?jdJ2)Mg!z>gZ0?p84C--=YQ@eAv|!iauqW zOh5&9pyKz;7)RWc=R@t@K3D|jVlBLkn&Qky-A}td)ZRFUdGRS~s#70xGgtx@uYua^ zU5|18b#BL!AUB{s3;r-)S;m;h-Eqo*X?UIw%V7gNhzqd{w)oARf|aN>Kac8g+7s?4 zqcGGdnTTz0=Lw(7km{uS^lE~QcrXN2@K4n4Px!m*aefRUULCc@-7I|sRv*{}7~&(Kwfq6~;c^5urSZ==+vD%V_n|-ES@(;BBdE2Ee9nCZ zD~(#Z-l&h^1*pxp-~56qU-Z2DskkqyL%tLj-0{hYn!*8CUInofM!M+IE1}NsWYin; z42EIEOD;?3#PkrZ+<{BI(uqa{lTP(D`m+4?3AW z%>k%mGz>LmvrylRR-4B$Ir00b-5>6{JI*Ol=><{gby4kfLv>)N)cGGnAO=pt_&6W+ zO5TKO@DOSwe^~l0^ItQbm(9DV zPq&w-ilW?b6(>iX<4l+pE1-^5Z`24Ep*pY;_3`@)YQ)D-13hi=>o++6dT_@Q9;4oT zFD+jErt4`vvj?i;N#;CDUuE&b7C(pD3;&q0{&w+PsHLopNwEFjKKF_pVHsATj>!qs zrV4+{{q`#bY7_Rx7PuC5ykgyU9j=DjtZPxP>^G=}lHPG6&uJDw%~UZA!uCD_YG}M= zSc)3qYK!l%_&)O_YU;1p^LMDd^2MIVzUvxHfl3d?L73mtx1g4CH)^STrwFLQzfimM zvBe|YbLT!TYKiKj*0Pz!+nHTaBkqH$XP&tV)zNLJnY)Pk42gE%eF4dVHTC)5kboLk zgIcrA7Qcv^>T9Tqi#>2Xu8hjx*lc0x?JeHl;zLm*oq|PiDe7DBEmZk87_86#PXx3k zsUNy8hgC2f@dl{f+5~luJD`r?7}Qs+X{Z_7YtJvEDt?XX@JH0rMt>DN#VM11UiE{K8pl}bW09qQX{Uewx`uy`%hfSRE? z)&f<3SM>k>Z#V%>{cLkLD&uwYk@*%Ak{<4fo64l951s6&{Pj?4+!A#f#-Kjb&Z163 zs;AC;sCp_t<^1ba+JXc*6jjkrs1B_$PobvnIjW+sSOgRN<7TWDYN`jL-he-%${$13 z_sD#Un)-0hTzZUWoPTzqmy`rm+zHjta8$-=s41UsF16>YQJ<2#QJ<25&t18)W?fXn zt<4^&Pdy*1-Xo}b&nQ7X{lgOeL#^Fc)QIA|aGNJHsz5nZ#Z@id$ZU?aNpENIy{LSL zPz|27^s5%Xh58KeJt3f;MS5u!qZ(?2>OgbUui*w@Rosl~u=mP+GfIQn1Eo;u9Z(fd zu=py}jGjPs;Pg?tCXl^)v%&CUT*svLLEpS&P?2HQd6|`65Z{5$uPP)AhyIn;~j3hLOs!fcr1KR2~aQ8UpE zb^JzKdV^C{12Q~F;QA@QK!|)1fh6;TM z@P=VIRQ$Mk33WVgquNRL(bZE7^)0*FN6x>#;VdOV1^3`FJZ|wRpWNsF0xVAY8!UnO zKD&zgpeh=T+Wps1Z@$mi63cyYGq4&pkWHwWI*gjZt3JyR`KzlimYE7QbvZCS=C^oL zR7YE(I@I0LH(B~lR0BsW{Tk})_-$N+3Hi;EX5t{Ke&00$+Dx}mQydWB9>hWQI5GCY zELazpU?ltx_2J_M2Krw-u}~driK?d?s)3=X<2nX4GZ#>MD0#R*kEP-BpMa)fK59fK zP%oUQ;RF4j38gTEco>$zd6)~YqZ*1C!8M%H%z{cUXz>bWU5rh73)J_3o_;xhV+d%< z=AnO$FctB`m>ch+MwTd|%NL9qSqN$>OIo}Us^R9S8R~B7{ZX5GD5k+_sJ*gH&uQPg zOh6x#H!weDi{u(;g_`1ys16J;$Dk^lVeu8HO}quwp_7(=*L-Q|Ur-GvitOqyg#Lg3 zw*-M89@Iq5Ko8U#aFoR-qei?0wNyW&MtT|5-~-eb7cYwINEQqtS{k*Kt*|uCN7mf? z8}&UQZPY-Yf2zwzb!*)gHPTU7AE%*~<}s>4FPdvGHmXCJQ2BFOdQsFStA`rELL7-d zqh3teqq_lwVg%w7qx)RO=_IJY0&^v54L6}Silg6i>YRKxLNxfw``8Hi^_m8)gxp{RUa zF)Q{#?ee9V9(SPD{syX?7u)6c#UP-B_-1OZT|_2M~*dO;P6=Vqh)zOKl z4lTerxXj|k;=AW%QRVBJy-+hT9qZ}ye;WaJ-ul0x8`S52f`dv48@(OS8w8EZbl1ZA>vJwasD-Rvq;b$ScW=w*HAMMJ-OR# z@lYd6gtalX#e1Xj`A{=7+FXeGqOucJ|3$2Vw=g|sPvPpT>m#67XDI4ik4KGcGwL+_ zjoK`4Q58l^>C)4nI$RJn16@%|I0@C!#i$q08dL|vrE*3^y&>bE_Li>^0ex8imZg(8x>r6ZlPsWoTycj;I$-4~zG)=Y!4hs3n_)8u1a-65KMMpz42vl`vYmK>shV z>tRmX_ZAS)Z@o@q3Cx<_txadtHdB8uj^hK=$X}r<4$A0GK?YR55~%cgsE#+a z=bceAIy$3${*Na?6|Oe7S%zOx6&yx&)TEwdr2!Z1|6ZWiBY{)#$|XHm!cIciTN&Em|D zdZX5|_-G#i6sB&e@%BVM9EmZ#As29|5 zdp-}fNqtK!VJ+&*<`(2!dI!y$s0u!zIuIqB>u4%eJU41BD_|L{g6harRJqxxSNn3* zKsMR)11|3KjuSY?gDa>4tFyZXcAyHJKvj4Z^*f?ls29;!)aFZ@!_8n#3?tqR^&&cl zdU0jS>GoD9Ohmjds-u&!vd;fS0%|BImm5(|R7c98mZUc7c^k8jJs)jOHy5Egy3X8+ zDz^tUvnMTn75(22(Es26376YtjA5oQvtbYgi=sNz%ihn3R7Y;3I`{=O zqR0hp22c%EL_Kea8fi;Z2m7G%PeyIp-KhE=`s_jYLheBhREL_PD)OO5KF;F1?fGHU zd*eQ8$s&Zf3ZtOPr9;h74orpZQ3D)@NpK)%BnHwlMOJ${QdFiK(fMWGRDCYGW` zxEhsjH)>?3EPfwj5Py$(F;WpX)kRR{>!Ut&nxVdcY;@^9?>zyHz$@w+2#@Mnd^07g z!HlSLT^MKLbkr1PD&}6{Wl^uzL8$K$8_i3o`aYocM)=~c16loY{(BS9X4!{&r-v`$ zGL}L0yc6mRL{Ie30BX1I#>RLCwYFJGy1i2mRjwr}Uk8i(Py-!p@$s0L_PwbJ;A+(7 zJ7gKoTKqEBCH<}$Qp&x-rl3Z438UgoOo)$B4F{BV=?O6x@zki9tc@B-8}xtv_aUGj zk1)rZQ&AabqdpT>S^5#wRQ_)9*BFQRM~lZONMRjNjs>6#=4Xm{IR&x)kfrIw^3JxTG5A_++yqr4) zzH&a-qd6oL8(*q)f;sT zhx#nTTyrt1qE!~(hT1fHQEU4vR>jNqJY5AhfUKx;l~JF14J7i{2lgrJqTzs`A}=N64mf8E`xU%)q!&szl)l}mlpqoDj%h)n}J-Y^2Jc)%38dE z#X~LL!!PHrzaPgUQ@aNBS+Em_;Tu%GzSZ3GiKqtWqNaEqsw4YRZ^ok* zzlb{S*D$Ki|7&~j6;)xx>h6V-9QAQp9`zNf9%_nPpepW*nu#IiIMh$UGt5<%z897M z7^?o$r~%zY|3CkGNkBc1RKq<;YGy$7G%u=xs;D<%9gF{fd5KT6_%T$)r%`+A8mitW z7XM<;W7c$gBUw$(zX}u}L6$LVqK;QH)GN6isspPmeFLf^yUZ76hFb2sVKdZB4M**b zS*Q-}N7Zu%)!rYqIRDzEcSz93bsBChNz{Oi2AfVg&JAB z2Cji1)UMBfn(9KRuh|t*AIFnWBi~}rcOyUa`n(ea+VLP`LpOy}Q5olG9BcSe=pZ|O%-9r(l2KcZ$Ru(9%S{*n^V)TKr>5Q19E@~GWg z6IEd=vm*GJ_GMa@Jfi~GVj|JvOXNYI)bwG1~< zpL#D*9e9K4@h3BSbJtLE)DomeHBbbVzar+q8mRZcP|SieQJeGt>iflo=A3`6 z;x&B)w6;HB30#I1@t$SK(Z+qAx5xCPuQe~AI`jcmapJb__|`%l=K+`MqQ&1@ zJY752F<*HCI$k4D6)r+;ntiB|-N7!HsJ&}oH0ss69`)PodloOz!Hu{t>KOil#V}UK zKyMpX!}b`ylWVvOGV?xf4FT=mKT#to(Am9cx})Ayn@}A&i+VAI@8Z5dR}t= zr%@x$*USB5v^J(zn{o*1cr8aQ;W^aqkJjH!bxqXNFTsbn z4@=|90i6FH1fC3V3C#w&A4ZqpR?;t_Mmm0w>(C-BLHr<&!El4!h<-qI_$n&@C)AY3 z9pXBk3pFG4EIuB!CpHY>{Hx%9B z)Edvm?syH`V%1@;o^7a(y+&=$c)sC*{(rlrw%H$5@j}dvf1vh2lo4)^grJscw7D9! zwx?0YF4{;}aZ}X57N9z|AJyh`q#Y>NI&)cD1Ok=PXZbsVU|Nk}CHJl8!M!7H_w#MN&57ltW zajt_d|A4WhUIE!8Jxy3^# zxTzb0+7ojveh4+vo2ZV2pXkhudI5!@^7ltg^%7JEPN0?~V3M1;v=~PFUVZ{9I19B2 zH=-)IY4OODUAzElPlTZwo{oA?96+7xj8ohQ`(mvCevg1hNKZJ8B_w_wmH*Rp_u;umHyU(al_C)W>rNa{y|@<5Bq!pf=}K z)E>w>%e_(S&*JpKLa`3sKvkUQCl{}Us%RyK;UQFqgBJ$+|I0>w zP_NqXi`)`aLd{Ggv$>_W!+50kv-An58Szagps!Ac?ZG*Fa0SCikFwa-7FF>8a~QrS zJ{F_m@Fnh8O+8DVe z^QIZF+$~93)RGlPb!3LQ7}eqRr~&LlHGJGWgUbI0hUom?A)tm+u5i1#3aVfzs$hH6 zT6IHpWHIVg970X)JM$B&T);{<1JO{g=+vlh*LhJ(Qw6mY&C#dLHI#syk6MDAs3|;W zJ}^I<@m9I#natv-@^w)o?~ZDC7^>kJmcABa5Z{aH=!sRFf9=YPB=p3GSR0%C>_)f| zixa<#dM^a8b{%Yvny~?>=c}+GK17|4Qfu7rif3RC;!ja)9=g`q0mBjRy_WN@9``3f zjx*<=rv7JhBW5PP!{WD5BY1>b%YRWL^VYcrVqy@{B&eAQLCtJERKr~{2ln(4&>L+j zY9#MbBP+DtO<`M9#|EGp7>`<-*{BYzNB@$cDn4iNOQ?=LL#_2k)PRz1aOtU09rI-; zpbVAF_NZ6nSX2e;Pz~+I`gj<%w#hfTuTVKq<@=#VGz)X%F>H+=Pz{G|a`m-EeS_+S ze3$fj>j`LtQ8v2~CP9rbgIN?c^|etW9D-_axVad0Tz|Fa4^eCV)Z*_@r{^Q8T-Gfv ze`QRm^WW1S;I~-jCi5(+r_ZqhX4>jzrU$CQS>}G!2p?Gd8EWPdZgc5rQSr>E%~=5T zlh!yrr+sfF0smT>J5dD=Dg&NDP5B=de`LNe-i{j;A-Xp$3!}H6LeeD&v0ClwUzL z_zu<3M>Fsj7mtE^`Nu|$G}zK}nFUeXxj06^GN=YCnT=5O`#KO%kGr5c(ht><1*nF% zo4=TcQTb0={1QeZejT+m4^aaMzt5Q#mA@1g#446P3aQ`cEpq{Hjky`s^IhgX)YKlb z_<4(8Mor~?Ghn}4vgD|dl}FW688wg^mR=v#p~mR`V<<$js03FYa@MERP#nO*&I@$u z`cwO1JaNnFr6!y{62Etwo@;PCUvq5(u8ow=r}pe>M6S`?<4BK39{ygF|2m>o`R=Mu z{4VjAlwC-k{MJl)%IYdcd0pqpw}kNN|6AVus{mCp0(WDxOFwQyb;Zov1PVQ-yXK&!AkC%WEx4s z6ByCYn3ebqMp%uEe5`nFtz0CYtt6~Z^iDQQ!$_-V6&ApMc%Fqiec`DRcq54Wz| zq;Irv28>2s7busWG7pKjCjSAo--wJ?N&Jsq9k$BqS_28px1<-Qz_*LHn75TmrgOit zJT)o*k$js;n@`^V$lQ)bKVc=SSLMr+ZzyGM;*@ZVzY>9GRH!RH;V!s}g1SPuhmh7D zi(oSDSLEHzbA4Ez=GN7N^o!QP@K%@7?+}j9J&N#V@_f5461YYF6j}paJ&Dw%(&_YU z#q@JSG3}nrq0ob5c(N zo>ipWDbfyEH|~)yyoH;RMxQT-V8I*iBCK$L-=3HwW2P)-oL-bQLc0(|HgF5{5_ukU5P1F zhda7eUK07MT>rcH`(R!Y8W~B0*~!<9I}Hs6kZ(L4Po(<#-VO{(sN3T84TDz!M+tPR8aLYSe z-;syYcvBMQ(&!Z`U5BeEthV=JTvg6p!8#RWg&Xs{v@&s}q+CqG;mNn2a7Oa%r|cEX zL;8BkHYNR6(mG>H(vI=$U!OAb@Ckl@Jtsbq%!$b~RZ~gDx*l>DC#{6d*i*{>$Gwv0 zZ77q4y9n_x@)V+cCOk}9B5dcc!TpinI{v@?UxEy}f~+BhSCE#Nh9258rDdkFcjW0r zBRL7{n!~-1e4~i(qS5r+@p)c|dj$6*8vDvUfUvHe+&8()@plBhCKTLCfi`6LoeW)Q zY%C4@!o8n(4xaZQ^FC{=FV9Dje=_;ETF0*QTvtl+Z{yxe8C{2Y-p9g;NDrc%u8Q3J zg-CC61RH-5D$~`5MuRAj4S%z=9qy5LkII^m-oQGtm+-f12G71)r0;j>7s;E1cxUe3 zgxAyPXX?Gg-BtP2es2=T^N`;G`L7F9_J#O%Vr|K!9~3W>XDcJn)rqvx8X0MsEbTVw z{CMvz()N;;p1OV@{K7r#XXIYVtzQsCvpUw&IbFW8^rkZRb`n}}PottAdC-Ug6D@OR!i~sNh4ky> ziAh*jRqm$#5N|^AG_Xo7$y-e4__dz@n$Gios4oY1ZNl%VqqY7Y$;+&fPh_k_)_oKz zV-+>F8EI^JW>GMsrR^o3uC&BITmJpTn^EyA>tHF;dr>9}byp-jh36qWJ4byNi9gmC zvl~PflW7wVOHt`eGXFtb*GIw)tg=Oxrti{4XtX`)@vJlaWbd`3>=T}~USgwDXi;P?mu~W1fP%=&ML2N1+J48mrmTEqSEAfO?(O7MqLl6 zYY+Evp0~D6d?o(|!p*F%HiU=Svt>N<6{7N3R8WnZUq0N5zgVT; z8tG2vL}X||;mhB3WI5@tsX+g%?KysbEui5sq&1_Qt__s?=z?Cw?*=f1wqld-i~kwx z-;zLf67tilN>p-%a4rf@;od=71Jb5ir9H{ZFPOYE%I;EmWP9G%Oi7uacovTG zv$?;&22=Jdb&OLT`eGi{Mt_ou=JVje^yU-d`3{iEe?P%%N>u???G!Ve)z{Rz@vZv7 zl-9L{CLd#L?z*G}l5abA80G8Z3GP|cyNP@SN&7%s%T-^QYKXwq$YZZP=jzTATa1SEkG!5^;RaAVK^1BqK;eWUf@N5S^JZ459($f5xTX9`aqj^5iHL=Mt|J@3uEjb|xr-lh?5N7>@U=hAosj6)-hDRYGQ3c|tMp4Bmk=Y#ak zcQ|QfZM2KY!0)g9S9sDo(4i#UO{hGC_zwI9qfq!L6@8__P1fO9ANX&fwcR|$Te2qe4dgq8+S1>WFm1VmFpToJRj);DHIO(U>q8`gj-z}|DPwQ zBcU~(#~P1jbtJ>Ll$}A&(md-xM~ZT{q>L`#LlR?&gjy;Q{c@6mV{UH#d;90X#Mp)M8nu*QDJ zL{vDG3KwA&)OUoc(-%xj=IcoDs+71yb)&g|qvR)UU6Ir*_cTiBYD=kQlrBj;0ePAb z*0qs%13Z|1Y!>I7We0RG5oQbqL4BI~2Z7SXV?k zIG40=bRe8nl$G>2+%>Hev#rxPiPxpvH99hv{NJwAgyT~->UU|+v}F%k!e6+7`yds~ zqk@@a{(;Kk5FbGY*5XJiO--J@sOv7zs}P^*o};97rF;l?F2b?7*I1|f6TWKU zK9rxP&xB$W)-`|!8ORWkTi0|NT|tEtNIzx`x+hF4mFt@9@Jf*HjaB?R^~K=%Wa8Bc zPq4h*srMmwLei3xHiWYJ=Ve|X37Ki^%k%>?68QpYYNS=$f^3f|qTeZ8!`-CM=Z;VA z^fVcZ=aspWSogM5(@dV7BTqrn{v>{#vRTRd?TSD>x;F7VDS3Nyf4gSs>)Smt1dzCt z40SB?8!C84uGOUXBCR>`e8j`ZQ-ZjLo{h$u6Ier@fjF3sjUw$Q@_f4<6Mk!*c}*Vw z_<2~EI{xSk# zmBKpUV(!lwJP)9r=H#75zJuIdDEo~2+jZVL+mmOv$hU_!?rQy)6X-=^cuYj51B7=| z*(Tg;9cf1VcPg7e+FYyXXPiT44p}4Rh`%R1(4MQ|lr*%O_;u9P##DF?;RX7Z_?kcj zDmtN5t`#(T-!lHGIQKLv{)6=Ys4OY>ZEN%gTw>u0Dr{Fh>f1o4vrwiColZ%a2;}>R z=OanWVEHm?{h#n4DTxKRTafuY@vDS4s2~})SZ5xQHzF0MrLtB$`-k)t_G}sXYLfo# zn$L4xlkps7bmis#l|0Ev>q=e4xqVIeLswi9gEbNw?m(vM7@hc5(z9@$~T0UQbiJ)*Hz2mU9)n@um-o!;)^KPop3JlcO-8ax_O!SAlmXB z;g85x(J{h@tunEccy%&fz>YYCd>v@G9u;(?Bfn7bVbnDoQv z8}F%WCh3*PcPJcZppZQXrGn!mo*{EzGUUN@_UtVUJ>tGZnyxbBolV}8*oRx!ed0&4 zC3!|$x!k0cAT1y2ib48m@<(Pc6}j{1pDo@cp$?If+{4ItnjTKz{+9;h@vJ9l(Rfy$ z3JwvDLwYRk_x>u~AL)qqBF`NfpF}t$rCjNrDW@7=;no!^WxwQVj(W~TS-pj*W zWYSfQ0ykXH>tLg~L`7Ff|4Ku;b`#gt(Bc=Y@*3nnLOqwMQ&&wZuW&BPZ{z;a%Bp>@ z7MVlHoY*QVf?;~VHIMrp&vsFHL<;KaN8#O+c}Y06KZVbJYkV{D{M^fUo}63P7u-pm z<0zkncwF+1rH(ND3hNz#A=aAf@6f|6P`n7>JXkw zp&S&BO2Jt?pGABr&(d0_?~wL}@O?cY5w?WbE(HPN&Gffp8V_6`)*W>`K{MR$((5Do^;hHKd>0 zQd{^>%621u19erUtZyxW9#o_&oK=#XO48Br1k&aau1A5NdDad;TAm@48O<|YLrDKh zcmd%7+`kYXVRh>Hw`&J={>8KPJj;y*wf@y8_>rEJA~7cFI?BWEua`9Xg0vsV)0awC zV?xw*ihDfqk(6yo+Hk^`sk7~Ob-cB_W2q-P&vm^cTu|q~g(XzB#@7)~#gq-Af?{Oq zKzy)Gp$hgUevxNQc(%^UC_Orj1n?{aX)jP$4Z>xuBS}fSLdPNy&-txBoxduU`IA*v z*?L=nOow>>E9vzK4<`J9TUQH*x78|7Lua}Yo=3i{+{FkV!k;NS6kAx`Z8U1DUsdQw zW&ah(16^6^VQcG2(6Q$P1|`QKXJQ4)4>|IPiF%!M(K zTh~P5Untm^3VIP=L<1)&To`N7NEvL7tGUziJSINk-bQ$g)j`lJKpmZ^Ya!46q^>ih z<63@~(&8BGlpjk7t=Bg}+?~Y2Y9gUM68Q=@WUrk#I`#E~MNf zt79>FbPXlXKiuO9ZzGR?{0pe$i)F}21!uVT5&w(ylgh-EfO|c6LGC8px^7a@LOjcT zjgi%~(blBQBc2T=?F8!D&a?HzlhdK;IDxxAcdm-+B@JF9LuKo&3e@9aWjayMI(D3R z1}Ymez2uU3zBiO8Pl~RzH1~s*d`|ApgzIq^u%>I1HyU|Q;d$~Wqop5tc9=XdxyO*M zYaMAhUC?_>I6L7679WdI$a}<12Y;oF3iHv}S3HjC|6fz*7Sd!G#_=`@Q=@~OC<#6b z(Mbu(3>5Oz0h3BIA;=4pZRJol*)%nX=7pJP?qb!bOs$-U4kTKAnujuoFf6N!1%b54 zZAnFuH&Gbg_^>iu1M-aWzXaM6VZg>G~IeDM6 z4Nf6*y)^L(7ov{y7w{_hne?4-KcFcjw@YpcOV)uej8$MFV#L48J85(Xmd!!DLWH3h zir7nSLF{3^lsXBPNNytYIUi>3B}bVjp-ZM8XO_o>r>P}eZh&Q8=0~Y3!GD0Cg(t!x z{%U+>SPPIwUWc$kzKJ*TmJ?v-W&fC^A}(=$%EEW@DL>+oA!k13JD5kK(@RWfPQs~^ zK1O+gxzGPQ#Mcx!Z zLk{(5N68-ayQQWYezFO(L{bl^NOIQv?KmF*U(Y-N(=jrWa|8G}S8YdH->;6yhFqn* z*lbry&6X0S(oAnriY!X8wZf*9TNS&>#N4Fh?WJe9-9&#PH!vK+11cQO+kp-n52n{a6RkTrnaYRd|~R7Y>nZ#TF|SRXo~-ISM@h{ zP4zqcJKdABlJ`s*XbaiFA)wY?DMsX;PXB0t5lzF#4?{RKaRv) zcnEXgC#;B>m-~Fd*ca2{T+E0^Ed4d+Bpz#p&leZVqS|SK)Z_X36G%?NMof#BFadr; z`r?bf(mk((>52EjB)AMy<6%^TPca?F|J~&)j;gmKY5)^a^`64`_z*MFzAs>v8&PH~ zz=Ni!isqp@bPVg_D~yEYSG(tRFb?rS7!zlrI<^Lr;wemwPq73>SmWxcj2(%u#EP`< zi?`P2tA#C574E?zcoA!3>~(IcJ75#yyHM$g*E_qTmf|$F#Dp7szT!9tHT6fZAb!Tm zn0KSgKLWjmBwQv?9dm7RQ$7+S6F-KUs>`S~dx@IL$eVq>##jck;Ytj~>!@;HP)ieG zi_aGwvtd*$Zt?1<8EUbG`B#CVBxtQCVw06(EdUVE#Xp&eL(_*qnX;%z=( zGW0MjF2wYB9`oW?RL65~cT3y_(-2>?o%v5m;1UTj@e^w8qwMhcLNG6CBt0<;&PNqI zgDUqP)lj0HZfZ-THr;g0hdZ$jzQKA}ahJ=t0^<_@;1S3`Alhy>g#}SF@(aetc9;l< zq8eU=YWM_dbG7-Sv}th)W90-b@h332vi~A5aze}X#bmL}c@%iuxO%tSiw%9TZpa1iFlQ`iuL zPPlkWoJxElW}|&yo|CRX8%#!g6E?$3SPb)>a!b+|)zPJx2A^UDjCI;=swSx8xB)-o zJyZv7{pprA!5O!StDwpcK(8@@6$Bz+__OZ3#xhf5Skm*FAsCr>DGb6ImfpbP%}{II z4rAe9)SA!0M7RyLv==cczC6qN>p`@0ZntMb#Y>}hb8}P&dSfUYi0bH2jEWO53NA3$ zp*pq~BjOSBygk2(s_z-5$2aGg|8NA7o_8Zli)tV@D!nM`7?wj-+#EHs_81-qq8b`) z>C-U=@zod!_hCFdg<0?cX2RGPT>0W20X0++)o?9TLrqX4YlCX2r^N@M@=wGTI14p1 zzKgD*&}L#(`P``TB~de48P!e;OpIP<0tpC=!*sY3Q{V-Rh3`?%BVBT9mIk#+OJjCy zgTXiltKuFr>Sgz#)&w>3?N|mMq27$y{_?lu`PvcC6pcsqYz1oSHle0!Kc>XzsJ#*M ziq97Yvtn$_jiIpuYI9aK8=*Sd0W|~TF*?q)_$mz2=l>Q0+Dv<}6`n>_nCq(hOvsN~ z<4UM}^-xpS7Ng+^)EjUns$-W>OL*Pl_fYlyiy84bszV8{F<_nlR0M)CD`vy079Wi1 zi7&xQcm`E4$#wT3lNPm`%cDA84b{<|7!!}6I&uxwvAg#C5o*u8K~Gctfq+I5=5N=5 zIH;*AgKD52YOR}~)^ZAJst=(mI*(eq%a{=Fpf>4OOpal1xTQ*m@rZ|@I#lNd^RI#p zNr;PWP@8WcY6MGBBi@1P$UzLo6R3_nK`lwbn{IDpzzoF8pgPda?1viYFjRe$Q8P97 zCiAb6ue1j{Q9V0^s`vzIq}Na#e1yU1yX8if43)2hS;K6O%HIt&;xVWWFGY3a5^8Dh zdISm)hhb1M)G^$Jn#!~0YgEH=?zo0hV;bUxQ5|lHn!#?U&yW$A3QuAJ ze1$pCi*(nW>msPBX>7Jdy+FF5_QGH+hEq`;yn-?CIjUU1JvVa^&FH8lh>I#0j2dV& z)C?>{I_UY<63|*4K<$M;u_|6gWz2Bjt$kihMmz+yL`_gL&t$d{u@{nA7MnD|MU-BhTNzOA*f?h4mGlBsI_c>S+N@`-%@iuCL+EIL+}dLz|L0%o@Ke5jGu zz*<-zYvM*!`EXC&NF!qo;>j^R)yK&h3i4iH{{M3iiep3` z%tbY{5_L@WV}87iTEm2|-AGcPmL?}^#zIh=vlJ>{Yg9)&V|nb4%69@a;By#T?cXM# z0`E{$`whoq@;9y{8&SLVIO>>QKuzUGOONo@O?@ovN_uLnh%-_3K15CR3oMOaP#rJv zj&$1hRVJX#(*R3g6D*0#urNL~GrV`-yn@>0u|BvLRCd(!W|$3UqZ&Mo z+GAHNeh0l6Bs?Xc9)3qHL8Ol^9uGBDsmz=hi+FL=n%BX2*cx-=Kvend7zYnw7`%>g z@eXQ6KBC$U_{99HXR$uH8AyuJiKoPrm>V^+`lz+*h1y&LFee^B&D?v`0KTBsJp5%|td9}C zxhZamO7D;9aV%=&+ff}kfLe+RsB+#D0vbW-@2n$M!Th)b3*Z~n3}p2M_}4r)s-jY; zwXAJ6LhbHWsHIwm8qikM48O)|_#HKK)dB*vxjkPC0xGZs)uUCY-5V4b;6H95s6EmG zRZ(Zu8umqXU;<{s8K|j0g4zQoF%4ct4KN^7fParfK*i%?I-UPu0-Dltm=T+ymSh5I zt#_kl;7?S=7g4+aF6uP=hnn)B(9Sq!DpUt^Vm~Zs={qqi@#9#8_I;lSXpIVlahAk( z#4BS$+=ZH2*=(zcH%89;g`{WbqNG zrJNi-!1I4B&L=_VaSLi{&tL_-g<9*35nO>HsI{wrYM>^n!S<+K{VQt3qsQV*q2j2i_E7m2qLyqkY9RZu5gx}xwC_t7%k``jYRXz* zIoyTwF>Gx2d>QIoA4VO|uUG`*#|iNNMzbDj(~U$mJQlTQ7NBNoDeAPGM-AjEdU}yO zBcP1mF&l=C>yAfmvm~nG8mOtQgBnRERE0fJS50ZqdG7g)!=y4z~)%` z2~17=JgWRhR0qA#iQMLii7HqORZ(TLHmXC7Q15{bsD>A#mSCMde}pRc4z(w~q3R2h z*u8*apyH)b_0>R*qvvZ%Ks_6Xnu!&tO|}=a;3d=>D@+o%>yx0)b$;}B)U1sfStHbY zpe<^1_d%`wSWJO)QRV)?FgpLo2?UdH2GzrtsHy(y&%hUjq^{z`s3l5^%9jas4D+M% z*Fr5>XH*A!qXsnIT#8!CU8qmXeTwV+eM^P;a~t)Q3|;)C`Qr*0>418Uzw0cW=5bsI}dJ`Zzs|rSJxp!IUZ7 z?(TqEq5-I>oo?yN(f_e(>Bmt^aMhkaLCxGZ)PN(Vgh!U)6{;g&urNkS z<(8s6s)8!0PrLf45jR9_st&jpyQ9`VXX*g|Qk26)#M_}dJOZ_;r+Ngk5Lk=J@Fu1~ zUm90oT1-ncD{4vVVkYc@>d1UlMZeqggQ)!1QF|kFT9-dLssmL}=^Zd7dZP(wH?BvG z_z5cGXHsGtyEk81WQjcA zFP6{-)w6z>0cWFTlb3UrxU8vJ^6%*i1 zjI8tjk$`$0l+iU<8nt$9P*dxn8km8(Z~F_?|>SB*MornU2Yksqc-JYRK+RsxZ_d;)v@}h z_eCGnQfxK%qAEOM@iVAn_7`gE|3kg9zuNPly#A&0d{GIgU{W(J>eyvN6)cBpxF)K> z?x+#1zmZk4Q|Ihy?2&l*B zQA=?TRnb#a!@k0c~REx(&O?48BXG0ywyjT#+U|$@Hsy{Hqbu=cbT=Eb*|G7xe z+LcGGO%>D#>YOdEJ-WN4vBT)^^MK!z>by`+i{2^+oo||7i z0y=(?in<=9Ky9LIs3|IrDo_j6a0^t2x?B1n3?V)d)$lpg$gZN6;34M1l*QclfO@F+ z!wB?$xNRelnuN2cP4yl%1EGq$csSHKj)hq;3u0Q6pZBn%dp={4A=$Yp5l9iD@uQN%vut36;MJ zro-l_=i^Y{5x1g$Z(v-V{|5xr@K;QML8V+p888*`N~rX17>qM8C+@)P_#AU!veNFS z=bEUG@8PJC9ziY5Mbtq5w)AIMLg)W8fs|OJjGOuvsLjU!J*bS@UAWVjrPJ2oypOwHNlF*7!bZDxaW^-FHliVamG> zrb0EC6_u|rDql6T4ypqUQRN1pW^w^)Mh=zd{HtfDNKk{fP`mvf)Mk8(nzDcjuHqP| zeDN%v6g5++EIlh~KzUG`xH4wI8aNgQpk^jYMRyvSROI{*Ct*AZT7tNhT+a%cB~Tr# zfZD~4a2mG94H&AjOW%Upvs0M$* z?AQbKjpldM3*#7S*T1*)jMdx}mP5VadZIq8HeqUfhsvM0x|{N9s6Dn6HPiR7l+J&+ z8m?ev%*%sGSRPMeS&UoL#hai;v zYij_Uze)r&!oH}2t1NyLH3RQZBZ*bVO?_EZdK1*QUk|h4B5aEnQJXHLt}E9LD-d6R zdKEvz5}2Z1fUh>~`&tvw)a=J8_zmmhJ{RtbocmI0y^ol%AAOv5ddX}S++Y3Fh9`Q-2seXnUdAi2_cek%J zY7>q`ZK}Db=W9_NK7}RmKTFTs#GU_IX747Pe|2DZ zqO=U~^}!^V6=$Jdy(dwp%K~j!ra7z+PTeC7?%+5hC06S+q(vGpvtwwF}NJdV9pNixc9@P z#Jv>+v;@acU$y>2?b7HS-CC7K6>NuTaWiVfH&DkeS|_(;C9o**HmG`5q3St-8mX_d ztFHv=d28f-;rWIW@RSi7W4SKwO}7elj2@xZJXTk?sp^^@YATnaI&uSbilYDOJ~b<2 zF!8nK8PxNasP{_dZt55<_avaru^Y8(Z>e~ zN~nC@Q61cjTAHVr2E+DnX2vEOc`X8(lI`~3FVx7tV;#)U(;cfJn2`7))GK>0`a6KF zi3j&`n|UN^lODv<_y#rdg1z0(6}^#HukSE=TFXd%T)`03rs;(txCN`>Tdag-`no+Z z9Y+%1k2>$=`q`SI-lW4(uiUMe5iejC^!0a3n-z6>I`rrKYsv?cpv|%pb^LB&3XI3` z)GM|iw!=oKO?VR3&>K|6DF(O^S4X{yhoIhoTTwIg1lwcsfo>q6bq5FdzF^Rh0ACvnJ=FcxYDd&5If+_=x2PqEJ}khu01ILQyn!0X2TX~XhX?ro z*E7{oGrbgJ;T4RB&pZMg17Fw?ZYs;7roI(w4=hJ*o(twP)X0NIx?`CewW&N*1Itl+ z>Kbb8>y2{XoED*8WGgTjx1&1jT_vENys?DHqupjni&~nNsF@gpwecP5xK$eCrg{*@ zA-);6;z^8)gT}fUn1woB`^-D2hC_|>56tr=A&``Wyr_}YLG9k*sI}aVn)=5$4r7gX zAE%2^`Cg*dGT8(-Q(dq*@zK~+&v7YMpXg@xBSt5lZ<1z)xhhW}kc6rj9&4a_*wCMW z(||h19;)CrRKDY=wZ4FjF#KdU#ceP&@m?5&{qYtK!wA@Nid)()7>D+Ka|uMm&8UL= zQD31Bqbhi6zQLr#zo3>Z(Ny<57ltKX2%}*M)Um6H>fj*MH>d3w36G%KyMUf{<1GTQ z@eQit2-94JDNsF5kE%GASqilzwNYz35Vg4$qxQ@u)bYJ)&%a_t;z_5w&Da4olfO>q z{3|e&1dVh$hQs-&nOK49@fs|LJ5k3j%nUc8tf>5jF$|W*l2{Sdk;#|^ccAL~7nSch zYRTWs;QVU_-jkpyiZs)WGy!UgGN5KA55~ZXsQislBkqn-a42eqrdaw?a|^1T!>Ibt zp?}6vGyBFPpbEaDW+KWgx4D8*BTJ8=FbArFJlG0LVtrhLdc%dE?cN7PQ1OwduV(u( z4PHcjD1E^aSYVEuQEvc&G9;YD9vEw`>(Cg~)Xzpu*$UK%*P=$c*Pfq2E#2R!eD_hC z_c3b9qt9~#ii4^z7&YKb$P9SCf&}#GR~oguTcS4AFx0MIfjWNcuslArc#iq*i$y!s z8*&|L#K%z`y@9Il8EOe4FL1B!_^1x&!uUG>g$QU(YNI;R-ZG3v^>{J{;{w#1?hn+b z+Z9ZUZ&5RnWT9&~3)UhYg33P)HT7#ypB+z8n>gGe-UGDn%R!(nHbSlW4%7$^pw91k ztcT$iyG_^(Rq=1A3ddUdO4P^kZq!m-!(hCP$``Q29oxjHJyjY#twniDsE2yDH$)Yf zgjsMcs^XiN3cr}im%2A)8O%m{Gi-!YQRUyFW+?hH_r}YQ+Vw3_d!)-U&c9xzGf2=> zFG8Jyb*N4G2Wo92EO%>`5|uxrncLEfpf+0>R6P|@YhKTuw?yrwj;MUy&ECsBH&vcx z9Ew_kv8awrL;ohU=j%`vY(u>%ccb19mrx^nV$a`UF!9f*`Vy^h9ZQAkSawwY!kz`n zqDEE&wL2T4I?xhTK~L2AA87IMsETHwHs2D|?%#si%*QSLruhO@pKqnh7sK>Y6VPVJ zk7}qeYV(vvb*Lh0?Q7#a?2bB~v3_@(GB+kCJ`uGyHlvg~BWecrqn7F%Y6h>MMtmDJQ~#ls z?i=cKg<7L}Ie#$;C?P&-#OY8KKi5htya|o&pB1a2G+ZZvZLbp%@DH$s)Dkpj?_j?@h_;|-Uf9H`=h3I z3M$_&RDFM-mi7p$!)MXIMC&>K;RE>8A|W>qo^Nok+*BLghfaOePe79~E&hX1)qtppMx_)Kc6)eU=1mbw8#TLZy421y*7M5-y-NQ`T+nom~vo zKu6Tb2BSJM8?}bJP-}b}%i(8ijHR{*_`2b8EQ^VDxL?(@L=9{khUomCwFl95x|wK# z>c~3Or(&dC&X%Z;)%_NayW9Q7qzmdNpN&`&AD|k{u*dxb)E!$B--9(U^f^X1>J&6U%~%K23=Kkk zcU+G89ug{x2b|KaQ71&2(SX49-5v`B%a!60|8!pw90-Gr}=9<=M=NsC;cu$7v8I z#|c;pH{k*Nge7p#ad!#=Pq;PDgz9jA%!s>AcrL>u5?YcF^Q6nr8?_g-X8RY;hMdSU#7`j81e z6)KZ>B4derA^CdX%tcz;Ln?YbHf%B*y^}OJY z&uG*XUc%Ct;G%1&DJp#_a(;b}QE$%lm)yB;g6hx#+<{>(yEo%LRQ}hf4(0eOz&AkW zza{~l+sml6OmxM4&ksRO@o3b!U4oj@kEjNVT@CO(#a^hjZ+Xql^%#}*eJ2U11J}*FsNMZ9>P7M%^-7L(!!?)$_4%F+m0r-SWHv?(pets@ zL8uqbCRB&_Tl@n0|NZZ60(!GOvj^dCx_BH^!R%%T>NB7Ms-otW-UD@vhhRorjQa37 zi|WW{R6P-IxsTy^r~xOx#rfAr(^*0uv#?nb^+v2<@!wG$-C&+ZRs65{&eB8OcIin` z`7@&SLK(BIIp((K)^aTgTBAdl5^q|DP z%^Gyi)mH_zXS$ATMh7mb7?d)Vc3~8o@>kk2@@W&^&>f!E>m3 z-kG8PaUG3@nz<~;;%iU?+JXM_zlVStIDy)wH&DmrwHf<~8$lkkgjp5ikgp-? zmD(Nkp)=B+Z$N!d*o!(1cTpc|8J@a!dOzj-tHB8*sG?=4SLq(}I%?`ZqB<1znKLbF z?aQIc*TaI?88tI&P*Z&c^#*)}DxdthtFMGv^*QHXQ{T`MTB9~$cT~kkQ4QTd<$H#j z^7rO9dmiS6`;?50`tDo&5;X*P>jN3C5w)QH-n zHqTIdz7SRM3X5+scVl(Z4_Z9#E0-?`s=W-Tfq1zrp&+W_QmCFaMSsPpj9XA0*o}Gc z5>~{>|G5s=$E3vjq4vOBOFxXN_o2l@y>>H`3h9XF%SAv_9fHbO(=v212bvSjg_w$b z8!Y}8mRAFq8gsm{J%QTPov}R*Ms@6^rN?`#=bZlx1hiI#Q6sK|>PUUm`R;+5vO%bs z7=y|;8U1T)@%5;I?6LF<<~@7<8nu+ZcdlFvsn7r91oYy_j;gq#Sx*^=w=#QJ`fziK zr7uK%25hkOv#5^Vu;=$t-y_~&Xbk_}wHF0Fy&%#NkhxIDuqdj6I@l5$VGBHB=@~z` z7f}w>v8#xga1?6Fx1(m_B7y_;=@Tu!9o4aYs1BX7^ho^XNa-PDkk9zU6MRi~=s-Bam4qQha*SpAP zg6GQ|D$u`)dZ5;3GioN@qehe}bfEu*(*pI`FcKpWAQDhk?%&$ z&?!s5h}zWGF*)t~o)OSyi5BE4%8vS&%!j#ggr)C8eZC(-b>NbD7gga4iwA@Y^l#!Q zs1Bt@!VK7Fbu|dsLzglSRCJn5A^(NULZoC|BFI@Ov-~rsI@+T>iKQdv3rJ^@{$oA%H;|&JrJd;!(C$5pkufl;8$mQw1&L7==Rmzm z3!xhBh}vA;QJ-oMTK3M!r!)zK^#uWHsob)XTdL+vf@nPV({CTbw7EqyEczyBY!gtHh-h8yS~8LB|^ zc&-BpQ6C=3Q6s8_dfo}ufnKQh!7$X4ZMNru@!jT&gn^_7qspa-&-w2~AQK6}xE%Ej znvvov`pet6#z7{`=TB>WP8MlTkBp0=0zyqU!yEdV_{d z>N?oa^jZ+mE3!RmCbpoyEdGT$eorwa1_rx$8q~*hAxwb-EPV;8V>?kZa01ofISj^h z$y|raVO8QSvA)j#b^^;th?P9h|6}zo)GPK1s^NGk0{vg93ZdeYPz`KDjc~8U&tYcb zS5QkBl+rzqg^H&!bE0OdDEfc@-_st9Kvg^yHS#$Y-)PTwSo{cT51h96IeUJ^e1KZA z|4>U5oXRahL9-O9{wi2b=f5R^Qn&%N**@Sem@ajo{~OM5)Y2ToX!sb_(a)$U4@~1m z7y~sUNiCk;3_y(qp~JSdaS%9^ zk3}ujVl08nQ5|`TD)$=oYWHRK55)6DBA^V3T!JqJo+F+ERUk|j*FX%^$Wx*6=R$o) zEQl$v9%}RTN6p}BY>X#SFQSZD-HU4oYHuAy|G)n^Pe46=jQYtWOE%X~AJhm(qdKw> zHPW^A{15Y-J-=fH)SkdzvFKnDiN_ z4(%|Hpvql9mAhf-&n*3urH9Vp%EdzEPlo=_{|p3lJo4IuuBZn3qSkUG>N8<1hQmd; z16QGDs6|dUGks9;aj5)DP$S)eS@0NYbACXbh6K4d|C-X0x!erYK^>1SsB=6P)zdAg zg8S_G9n`u1YU!DCy8%=|&EzQ5XT@SvJ;zXA%U_~qD0d$Byi^{}zkc=7js$ILCwTB)Cj{AbopYVMwZs%MKLn*8kiHCqGozJs{BUe zGspAoAfSpP7IF`2phi$1)j%Uu$2yt4P#qhLI@i;1Dn3Vzct~OQ3SWSFv;KwJ3lT${ zSyA=X#5DT(zYzg-V7Pe}wOQg9aqsj-s7*8<)$^mM&xk+KKLbVGZjX&xy7Z_$QxlcH zsXcFF@&2d*4pm&|e1XXY#BUR>i*Bf5wY@FvE=e^JNK zSKOt?#%x4`Q8QQ#J&m9R0X5hi)!-m=q&WeVZ#wF;V7a9qLe0!ci@(O`#6MX)QVCaI zOjP{|P)n2swONao;QVVBHYGv3x+iL_R-#7qCu+o3FfC>-8R-9C#n(pVAB^hQW>m)y zp&B}A@hj#nR6GCJ^Do$kc=%GD`w$sg%AJD6sGjY?y!bb&;@G8KhZ32oQR!JxQ<=xo z%b7J$9chT_U^`U)KIR}xAL$X$n$1KV!zGqsuXz|%(J6~xMQxtjs5QQi74fq@FI&b9 zpbDy7C)C&Vz82qy>c}b6yFfr|b`6{0Q&f*Dm3216*~B}d3PvdBMjRcLFD2^zkP|!L zP;7^{xE@bKZK}nnH9LuF_>Mh)gqrfV77tg^ zb~kFo!Km_?EM5~;zA36)8;ke#$2ot4En%8D*IZ(*LUm-L#gCyHI)nNw_!|de{7Nq0 zY}E4&s0R0a~5{C^;z^Zy;S7vfcR8B?GdPLF!A6hVEQwnKe|>W!M> zVW^5{qslKb*Pwn1-fo_<^xLTXPta2X{}E7+!&Pw&#zyr#11i0+SsvBVI;aY|m_1SN zc+cXSQRQ}__Q)|*eOE00#GZey!ui*x2v^k=NNHv>3!~lx2px8;$`Ly zGgdYCov=J=hB~44#1K@6R-@|KU5)dvo*pDY9XX5on0$(AICXWm##vD_)d6)%2BV%o zFkhf5{%G;=HC#LZ`7ycPSgN=bzB3HQM)}BYDQ9{zFp@=z1sVrM!vv3_k7C<=%?Ln*cxNkbyL(I zm2m{>8_;;v5^X>=cp7WsHPo9kYdzOsIjl;&9;*CmOW%a*$U#&`!qwMv&R-@1nyQ@s z1b$3LO<{FZL+w#()(f?Z2cs&UX3j;;&=S-Vo<}wC2vt6E1DBov70-&Qrx5zje-(RB zTM0a9ZniVK+Vfr(ABO7SSc@;ibi~)-1pEs%qpg2&OLhcj690ti*p!BDKs(U?^Z!8t zTB{TG;2Mr2ejiukuZ>*KgB!aJWq()bnUf+^1d&)C{FTbvUzG7}ZcE)DqM|HP8{2zYk`?L8$k^M$CXm zn{fWMTVIo)FBoB(y0y%VN^gMr64?=p;v&@XyN~+eGjX#(|NpGE0M;Ph1(pAZ`3ZIY zGdFjqr61}u;~;9FKCgxQ@|ho%Fc`JAd$0&z#xDXITTvrCkJ>aZQ6r1pCeZ)?UR4&=z;@It z_%_zVxNTj$E9(8Q5_KG3U|}rUF3`6H2Vfh<@5|lZHM{_IjBcQIZ^RC6ByCVHoW-a& z);&~50z0}FRBo(DycMea7M!nqsF@tx$<;FlRnKMA*Znx1HBiofBLeyc(+Bkzi>FXu zt%AA)`u~SQNiZhy2B?qM&Zte)2b1Ci%!TVM{U6k?T0WyXoTRJkSRvF*w?n0m#bUJY zTTMW__62Gx!~E*LA{E3Q#7AID^mTJ1ZiRV>&OlA+SycI`-JPkhGVuba5syaA*h$oq zeMc>In%_A8+MUe_=(udcfw&*_AyKS{J7z6WJ^u|G;|$cE_=sBbBt2cnd!aVvdergy z3$+TZm5Nf6eqxRUvUV)zP5rLN^6vwN*1O5LA^~8N#d;(@yM%;`+eccFmqdIgR zi{Kj^j=B1|Phb~}JTTDz&-Xl3Jr5O7&r%O^YgH0c5g%%< zLREYYH51_myFE|<^)NZ72)bXi- zDliB&!UL!ox`JBUub3254s%OX0=32?P_OC(sERM4%Dut*7=O5ncSk*+g}j*f`JX^F z67HiK%rnAS5w%9mFc(h8L3kRqSE`J36;45QdjtK$n*5RnrunE<}z%haT{{(X~RD2?8>ei$7#3_rvMU6E2Sl5xdFXc8*_ zD%A12i0Z%>Oh)^@9OK;7)x^fcTcZjdM{UBps0yNwck%qFcpKE7n1q^v!>ISfYt%sM zO>lc;B~}aICnh{hdYMTqA@L}aIsYnmgj z#ynp%0%|Y|s=|U8jKxt?*xb_lp}yk{L3LmpYH8-7HrFXsJ)xGk=h0B{VAR@Y!Z=tQ zRc}4?fB*lLfO^&&qvKF>I;w${sB`<5rGH1QarC9m9H=F!iCUsAsD_W27f>C(jT*p9 z)IdK;o&SJku0S}{ri+bgxC-i(+8sr-P5Bl>W4h(e%&2lXP%}^n zRbO?~x9gVZ|M&m>3266DMvY{n`6p_s9-}GziFr^$bUid@-uwO{j*C zSo+Nsod3uqJSRat{es$+VOIwFe#Hb>9mktcdc z?sRm++Qg4wS4^_nE&0UNoPVwT91=p|a#W93nY+xBsHwkh-o^C9|Fw9mHEsY2QEQ(H zHL&cc`io#NmPgG@dsN3qcm&k&Ld=3ou_j(ZjU>ZbH?nr9DV&Mw;A&I@yHQJX0yTrT z(Z6JFkfWAO1Lw%XNjT&Krjc$bHQ6sEtc0x`4P}B(5 zqZ-_7UO*k!|Ll2!O>PO2pz^0fot{jXM4$f+38+9ne*#Nj9y0Hlfty`NlVKV1*GJ9F z5>)x)<}1|H#^2)7gHbbA29;jZ;tjAW?fcpg(2rWXEW=gwuci4IRlys39P)A#J8h5d==Hv zd*(|^|7r$pbNQm9zvJ5iQ~TFCxjo2^QK+DxWhjr@3)Lnc@0HL~69X*gD07NA&s>2T z>qb;pwxXIkXz>%M-SQXC!gr{-pSV5H|KD0#hY5&>+u=-sdR}-3uPOx^*n{4fk@!^9 z$Ik)Om$i?mFK20Yy1A)}s<11z$FZn^d_oO1^e%VqVxs0c3u?O;Lv_54*=QH9DvhWm z37V5%?ZIGFMWZY})1EItHMHK`i8?ojEdByDQy)~HDYPz_u*ZHLv?5@YVCAo)KqZgBx7v~4a7b?oD=BM^{0O9;inycor)(XoF<6hi%m|}FQ(Vj zs@g#5+-lCQ`s5nUJ&N>LP^7{a*uDB(WY9oFv0g!Z|4r(JJUpdOf=P;|fna6M5EfZ{^n2!14x}&B=3%dy_Su z8p{&@ah;>wG~$y&^J>munSMNM!Gjgtx5+e=hQ~6Z-!UWcTa2(W8TqvEwX$;Ic(#IY zEz&#KEDa(}ADp_hd7kk+BXyo2%n|g(Cq4+Lc?7yD*H704GPbah{bB0y89KuEU*CzJ z(v;qw_gSX;H2M|GS-mP> zihKhpa~mgyV*KR^yr4o|u?cs=l@!!ffLp&kZ;OR65%+8I?&7)sZKF(Fzmk5*IvB?4 zQu=+uvAKs4-b9`s*ChgX$)7|&HRnd7bCYiR)TNP1k9zF5}KdJ#lzej&gsJcF4N%5Bb7axFLDM5#LAo zAeYAPYzUmEU>qI>Qc+#P{B(_?T!|q6#&oItGoAlk@hMc3JF-GL#0h zkgp4O3K|R~-)K6>mlXdsfqegw9))`Xc~kK0E>FUct}#^7e>0^giBBomnM`-B;3^*S z?|yt8tpgXy7n$b={nau%xS4WO$upnu1D_|LWB@ntPZvT+cf4%qsXqJT`@QlP4x= z1CSqXe1DJ@%La0murB_wBL8rRH-L-!YFPSC9Bg@K>SyM`G~SSe*))2UO4s5_3ajls zYDkrHm$6PIv%(E{UP76;l29%x;V|S|M>rjM_EYvM<|KU`WgC+I2WcI#Icdju_Qq3Y z9zMmNub0HfkvTq@CTS|ESl7SYMMx`ZGxn6SAGlZWycK0Ka2F!pggp5vpB@jB77yF_ zYjA($v5x<5{}&~Lu4LAb!pljEPecFOGo_`cvJd3xKqFZR>zc*Ak9@<3@1)T*+_8C{ zpL+=RV>L#ZK7@7c;J(dWntwCs`-OsADA0;br^(QX#zvBPFZX`pS$VFX-}hN#J$XKi z{1eE(#X5F_=em-Te=GMM%IG@G^BxwCM|v{K=_<#~KVbB23S;9hWYf`#Mw3w>GoG-t z?fxR{a4P$S^t#rOJ%oQ;Q`Hfxyys8pm&ludct`Hv2(Kg0H|o92-C6n6{%<6X<{`hs z@n09I>^t#o#9EUnKVBiv7Dk|}18KuGGSbpp+C9?wG2OR-J1gnYxph6~c?EDd`N|UK850`ScwM@aJC8wg+ zWR6c^{o=S4w=Vs_pP6S%$a|A#8LaWJ#0wKX&$DFQ|8Q6Fm*DkFzKGnq{v*#b7xV@A z|35Q`pyLnxQh8qtr~x^fUt$Gw8P z8u5r$#~M1P%PU21DsXQjp(*!dDw@uN`V<&vnL84$Po9dT-yly^!n!JPH}r>i6OyNn zRccATMRbne!uhW$JbzAoS-5Ku{zM%ugINEi*2q^fmM7~z3YD;m8rY09usky;n9kDn zkWW`i;$JQQe&UU&__cMg80p<9laad15}wHO0z5lUeV2$o(HFB@L>7^0BM*yH=`=F` zMO@bx!gZ~(g_bsef`w?bE$OkWGyI_LYeU&5JZr}N{EJR(TaGaD%j%bmA5jl_1Ys;*0T~m48HCySb0^yv2`B@N7NdMpjo# z!h`JDQtI;ZQ+YHpRp#cGO};*4yhkPF3IDiy5&v;Dv(E6(w|!NpNZ%~C6V5@SrHL1( zd^f^7$QP4%AL`jid?$5OCmxP)5sX2ZQTlJ@wV;B%R_TvMx{^5_8Jbb}%1<3xM*3SS zs6fV-`13W7hDVUrh;q8tQ|^lk`pVe=LecO<+KNuT@BU}3e{%v^NXWy(@>Ft_aCQn$ z5Vc4PMZRs^ zO(gE>(mcFL#>iNohx)BuF5=N#M&Dq<7pPEI zLMzjhMjsH~LK$5r7@DpRr2l1UQOv^TH}bsVu1LK@{C}B2fqqoHn}oIg;_i>_#B*7N zKawNRiC?+(9j zhlW~l7o$)(GNd9rkqn_w*ImN#NPkLrm31f+mFy>c2z7OK_&$@C-qNaK56Z=*-eGEt z>on#eP1i=!z47*-F^O#~oZNhD*5{dieH@d@t5azW>sTo&&{dqY(s+`5jR+^<{&97) z@GAyUm-4^kk{=KG94Ih8eA(H=D^b^N^3LNvN;su;Qdt8@o6ddgr?kG*lZ1YxwmvQ= zyl8T^@iD!=l%7az@K3pk`u?=us>ZAO!>;Sp@S56m^`VD9t|7G8jxsYXp#znSBJIUb zdCpq67j4bt8CL}VpSwvIH~IAVxLzE!{r_FP$@;6MPjbclIo1)*MRx-5Ax+;SoQkex zvq7#m50KWE^3iCeHg{(7hUVEo$`!V@{w3T&-+boN$0C;akb-F_@Z-u(;M`B+Szrz5 z`ET4?d6vZHZ8G6Dlr2JhHjUTC7&Ov=GDnCnC!C5q!0PD7^M3l~JD7?}*=QG$f!|mA zuP~&wqeBU}f1&aM#JA&Kj6mU|s)+bT>u@yk>1u89wAAyK_!#ocZ(w_CbS-t<<(@!% zAkR*bHvxB5!Y?Va)*2(~3ntEgSH^eA)t}jyl|Xbd)S|*)t+CS>mkI|`;XhKq#vy6X`Ly zt6C>!TBoxSuSL1P>BwyI|G3T&jz!ssKc&6UmOW?*H*r1pK`NR<1=GkphRR|PA3_J# z;7}?}PM)5q>pssb5}rd^1dK?Yqoj4Fd;#w4grjq>wodmZeBHu5C_h=B2_Y2L)rSXZ z$q>Y?YYL4nr^2zMAF~GC6Q-5Qbxm;iijwc0ReYNIqVRkI@hXJJTHdbI`-nR(X^BZw z+xq17g(4vXjeVcIVM<&t6ip4aYMYVmF+~PY)!(>_^ts%z$(@EKqw%}~cLM9)Hfoy2 zv-9N1N7^;wHz=Elyg#n6)T3)7&l8gOH|`(T41IljK!!jPmyn@`WqwBmFUYlu^zNiJ zC9c2MYC@i(#A(NunLnD+*lP0h#r||`7-{p#^W%C#_`P-JEqV0!9J&fp#~pt@%?j5` z?!~H=D?Jre<6h7G^Hq@NVW~vdAJ$P9<3(tBbI_TZnW>v}>R(+PJV+=a5s zxU&$SLHWx(TftqJvV%xVOkLh25_Gk5`2Xx_qiapZJY-BwL$jzzR}$-hi@86i@;rcg znv!=i`3`b-qU;OqAJ+xzY&V|WCEsq^c%b!PMxZ;1VK5$<4iMf&WgBsib)*sT(^NK= zwAohC?>LLj9I{4A6aPfGuRT}8Noi;m@f)bCm8tM7!t?Yk@hyR{RCH3QT+3s63Uo2@gC$s0t)DXFXl&z_T>#GWlBUp3NyTyuG@YXY99jILbV ze~>2;X`QL72)FkOf9Q%yVk#OApy768s*I6|Zy`M+cM5CB<>nV2l#4-nYwlw-FoXxI z$bXP~meu(u>7S|Vcb?U^@^eW$Mcx0nJd<;ekD@c!mwPdfMqxM}-zKc9rWMPCimA@Di#>K=ZovKg`kfx0OqTRk;UPd?Dq!63$Nk_T(!`H?I)yM_b+z{s?as9V2|$ zUzPh~3Gpgqyol{l-#XgSaBV7RPe=Ar@nO_881=tp9OK63PrJ^a+bENf^y${dN9vkJ zdU^643dI@7Zx0$%!EqALlDQ`ta$;(G_MV0wb6+M+S4r~DB=0Hg!L92d@uS$BJj1PA zcG8NHmK$|NA^i;b!!ww2+&T4kiw{VsNu(I}ATpkzhhw?l&|oZ{bt5ej&+1UYA;K|8 zkH-DUU#0saHSzA`xliNc38&-^B5!iyFR5!L<|XYH>+JuEYW+{pt3+hp!^7-k(p8xP zw_MQI&PH>YimsCGLtVSfdNi!-qE%j%{70zg3U%tLX5|&mPWi3e)2*!9_f;oz0W!z8 ziV9&9J>Z(d{efpYsXR!HbM>O|F3S8zIJrNC&wgus6Y)IUOL?A{Ti18oL7k&0pOJV> z@{XjACi)fDdjk3!R$Uj#@PdqeDNvbS_adB(%u8`JX$fpZ=LwIdOhFr2Nzy;54EIU$ zS0z4`y9sv|@{FMFVDhJ;p3=nA5x>W?ar!H);%b?zB?$$n;27b#glEy2nuKRlC@X~{ zQg8;(XAob)vy|59`=q@kJeNB^&k|6k7k6Un$Vr(snmnS?uW>)J+|t{EP^%}t@q zJh)GRI8^o@F5>RZotpb^GWPaor&Hu#Pq-ra@=~q=cBX7~tFR#rl_7lG8j48XOj zevPtSh~Gk8l_=}2A@C~|=?ZO?Bqnnz8Xim99Ky9J@H@}i;1|oIzk3_bGhG_Qcf#`s z_u<}4e2CSl=epX_*mml?$+LAl%Ypf{{*@^Bg@?sSjEcIB^6=;DKN@{S+8FZmq>@z_ z2X+0)J(~DX$~Gr$FySlI+4`qC-do<0)DxNKx;_xjr}N*;5-M2ZYl#OlW&NligiP&- z_qXX(!QY5q;@K}eTWe*M9*IT*d6t&6SE#Eh;ZoL-grr@iV_}JB`%$0HUq#FO)herC zy)8?oLp=Y3^g4w56aLJttC_>M#VSuhXF3y}L%vMhA%qX%@01;g&8+TL8nxB0DzaHU zzEC{Sm5Cmnw&&zGxwLDn#f0OS*-SY zR%SNw!qia_vr+pTYcV|aM6j-w#G*V8wjp+>&H=6$nl*L_2|Ky(a6ch)K@8;9HIDdq z3O1mE?!*_;z$pqB#A-BB5}V*E?vy-_ivMzNB|O6FAgKSmgs%g2E#TQT>N-nWR{i2z zS7GZ}4=T$|En35fpAjtE}-0at78#) zbPXiWbMDcEw~~ib!(pS6Z$*)v3-BEG-;Asp z`E^yJ%wwMQC+#Ha+QzeW#1qq@DL9t9H+Qyj>Lm^SO@<2ATNS9y!}4^ZmUZkn@w8Ot zP0qF`ruU8#Wk}JLlIF%($rt4ANVqn4UTeArc_WecPrN|>gtRoBXNSoXm3su~y4I5R zV-r6ioQ1UiYvSBPnhL`(?lB0PMTrE_jUz^P4U$yw3#Kr|dbu3PBkPIq*P_iNr|IRe z&y$=4IIWT={6ZOe6*w|m<56>Pa0#3Dh>{VdU~)q+Wwdcs;fR{aVz@>0H~nWQXyK&z zI_@#tQF@obzhEqyXfzMd%ttJ}FwQ9#9^zTkAw6HMlOm?b{g7QkAfp>o z5m9hOyh2+Ke&V1LU;y>|@JI2OV1HeDvGiLECj;yUOLGwpKpd7vUW`{W;Z$O<{^oQh9y)I_WoKbN<&*o8Wl zFaSdlNnjJ=Hu_7z5o!@+D0zhaQToH=Q~HtUqFBGAm&U+fK?lQmIc%7I1{g&BH}y(* zBFe<8#t)hm6k^Dm5Q5~Lcq^wIqIN~DpU5j|U_Z!#ALLbz;Snc$qZsd@AA-&*YvQmo zaNN>IlLO2?{=Xo;!RR%a$NDzpUe^6!4k%&^n1v`6!-Wj^2VM(?jo^ID!1+e)EQfS} z)AZtG(~9;f*@J$s)Re&Am4#UZX{8t<$@?MB$06z~>2JgIIT_Esnr6+V({0g;#d9%6 ziBK%Py=}o&#;WZ~`htxP&8BN=p! zRap~g48$lO7wy!-a&2~pdeULnoCUg?>C$x7=_*k3HD{)lucoCZZdGj#-KA!0PA%V7 zV0UJ#sRt9o4NsC{&knYjm7Qj7t=Zi==B@TUyyt5!^Vn1ULllcK)1wU47+YffOBbx0 zxNDeAw|tFN5GTv;j6Ll0HC&jR(pTv=8@s-oD>wLmmCit;D%C&Pk}!F`ecW9!M;*V@ zV!91q=Uvm&Z1!F;>-&AJUNPCvN7duknz0