From a3211a7405d92d09d59d3e2fe9ef437051324bcb Mon Sep 17 00:00:00 2001 From: Chris Dodge <cdodge@edx.org> Date: Mon, 9 Dec 2013 22:42:45 -0500 Subject: [PATCH] Introduction of the Microsite feature which allows for limited multi-tenant branding on a subdomain basis, e.g. foo.edx.org and bar.edx.org fix errorenous logic when running a microsite that could reside in a hosting environment with a marketing site in front of it pep8/pylint fixes address PR feedback, remove underscore from test hostname more pep8/pylint cleanup. Skip test_microsites test, it works on localdev, not on Jenkins. Need to talk with QA team manually add Ned's single-to-double quote fix change aws.py runtimes so that the microsite_dir that is read from configuration is changed to a python path Conflicts: lms/templates/help_modal.html --- cms/djangoapps/contentstore/views/course.py | 14 +- cms/djangoapps/contentstore/views/public.py | 14 +- cms/envs/aws.py | 15 +- cms/envs/common.py | 2 +- cms/envs/microsite_test.py | 15 ++ common/djangoapps/edxmako/shortcuts.py | 10 + .../microsite_configuration/__init__.py | 0 .../microsite_configuration/middleware.py | 183 ++++++++++++++++++ common/djangoapps/student/views.py | 84 ++++++-- common/djangoapps/util/request.py | 3 +- lms/djangoapps/branding/__init__.py | 56 ++++-- lms/djangoapps/branding/views.py | 20 +- lms/djangoapps/courseware/courses.py | 2 +- .../courseware/tests/test_microsites.py | 145 ++++++++++++++ lms/djangoapps/instructor/enrollment.py | 50 ++++- lms/djangoapps/instructor/views/legacy.py | 47 ++++- lms/djangoapps/shoppingcart/models.py | 27 ++- lms/envs/aws.py | 10 + lms/envs/cms/microsite_test.py | 38 ++++ lms/envs/common.py | 62 +++++- lms/envs/dev.py | 2 + lms/envs/test.py | 30 +++ lms/templates/courseware/course_about.html | 33 +++- lms/templates/courseware/courses.html | 16 +- lms/templates/forgot_password_modal.html | 3 +- lms/templates/help_modal.html | 9 +- lms/templates/index.html | 35 +++- lms/templates/login-sidebar.html | 30 +++ lms/templates/login.html | 45 ++--- lms/templates/main.html | 63 ++++-- lms/templates/navigation.html | 4 +- lms/templates/register-sidebar.html | 53 +++++ lms/templates/register.html | 58 ++---- .../test_microsite/css/openedx.css | 15 ++ .../images/background-image.jpg | Bin 0 -> 160660 bytes .../test_microsite/images/header-logo.png | Bin 0 -> 1215 bytes .../images/login-and-register-banner.png | Bin 0 -> 18076 bytes .../templates/emails/activation_email.txt | 16 ++ .../emails/activation_email_subject.txt | 3 + .../templates/emails/confirm_email_change.txt | 15 ++ .../templates/emails/email_change.txt | 15 ++ .../templates/emails/email_change_subject.txt | 1 + .../emails/enroll_email_allowedmessage.txt | 30 +++ .../emails/enroll_email_allowedsubject.txt | 5 + .../emails/enroll_email_enrolledmessage.txt | 20 ++ .../emails/enroll_email_enrolledsubject.txt | 5 + .../emails/unenroll_email_allowedmessage.txt | 13 ++ .../emails/unenroll_email_enrolledmessage.txt | 17 ++ .../emails/unenroll_email_subject.txt | 5 + .../test_microsite/templates/footer.html | 17 ++ .../templates/login-sidebar.html | 18 ++ .../templates/register-sidebar.html | 37 ++++ .../templates/static_templates/about.html | 64 ++++++ .../templates/static_templates/contact.html | 62 ++++++ .../templates/static_templates/faq.html | 139 +++++++++++++ .../templates/static_templates/tos.html | 122 ++++++++++++ 56 files changed, 1598 insertions(+), 199 deletions(-) create mode 100644 cms/envs/microsite_test.py create mode 100644 common/djangoapps/microsite_configuration/__init__.py create mode 100644 common/djangoapps/microsite_configuration/middleware.py create mode 100644 lms/djangoapps/courseware/tests/test_microsites.py create mode 100644 lms/envs/cms/microsite_test.py create mode 100644 lms/templates/login-sidebar.html create mode 100644 lms/templates/register-sidebar.html create mode 100644 test_microsites/test_microsite/css/openedx.css create mode 100644 test_microsites/test_microsite/images/background-image.jpg create mode 100644 test_microsites/test_microsite/images/header-logo.png create mode 100644 test_microsites/test_microsite/images/login-and-register-banner.png create mode 100644 test_microsites/test_microsite/templates/emails/activation_email.txt create mode 100644 test_microsites/test_microsite/templates/emails/activation_email_subject.txt create mode 100644 test_microsites/test_microsite/templates/emails/confirm_email_change.txt create mode 100644 test_microsites/test_microsite/templates/emails/email_change.txt create mode 100644 test_microsites/test_microsite/templates/emails/email_change_subject.txt create mode 100644 test_microsites/test_microsite/templates/emails/enroll_email_allowedmessage.txt create mode 100644 test_microsites/test_microsite/templates/emails/enroll_email_allowedsubject.txt create mode 100644 test_microsites/test_microsite/templates/emails/enroll_email_enrolledmessage.txt create mode 100644 test_microsites/test_microsite/templates/emails/enroll_email_enrolledsubject.txt create mode 100644 test_microsites/test_microsite/templates/emails/unenroll_email_allowedmessage.txt create mode 100644 test_microsites/test_microsite/templates/emails/unenroll_email_enrolledmessage.txt create mode 100644 test_microsites/test_microsite/templates/emails/unenroll_email_subject.txt create mode 100644 test_microsites/test_microsite/templates/footer.html create mode 100644 test_microsites/test_microsite/templates/login-sidebar.html create mode 100644 test_microsites/test_microsite/templates/register-sidebar.html create mode 100644 test_microsites/test_microsite/templates/static_templates/about.html create mode 100644 test_microsites/test_microsite/templates/static_templates/contact.html create mode 100644 test_microsites/test_microsite/templates/static_templates/faq.html create mode 100644 test_microsites/test_microsite/templates/static_templates/tos.html diff --git a/cms/djangoapps/contentstore/views/course.py b/cms/djangoapps/contentstore/views/course.py index d0848595367..61a9a06d8e3 100644 --- a/cms/djangoapps/contentstore/views/course.py +++ b/cms/djangoapps/contentstore/views/course.py @@ -53,6 +53,8 @@ from xmodule.modulestore.locator import BlockUsageLocator from course_creators.views import get_course_creator_status, add_user_with_status_unrequested from contentstore import utils +from microsite_configuration.middleware import MicrositeConfiguration + __all__ = ['course_info_handler', 'course_handler', 'course_info_update_handler', 'settings_handler', 'grading_handler', @@ -413,15 +415,21 @@ def settings_handler(request, tag=None, package_id=None, branch=None, version_gu if 'text/html' in request.META.get('HTTP_ACCEPT', '') and request.method == 'GET': upload_asset_url = locator.url_reverse('assets/') + # see if the ORG of this course can be attributed to a 'Microsite'. In that case, the + # course about page should be editable in Studio + about_page_editable = not MicrositeConfiguration.get_microsite_configuration_value_for_org( + course_module.location.org, + 'ENABLE_MKTG_SITE', + settings.FEATURES.get('ENABLE_MKTG_SITE', False) + ) + return render_to_response('settings.html', { 'context_course': course_module, 'course_locator': locator, 'lms_link_for_about_page': utils.get_lms_link_for_about_page(course_module.location), 'course_image_url': utils.course_image_url(course_module), 'details_url': locator.url_reverse('/settings/details/'), - 'about_page_editable': not settings.FEATURES.get( - 'ENABLE_MKTG_SITE', False - ), + 'about_page_editable': about_page_editable, 'upload_asset_url': upload_asset_url }) elif 'application/json' in request.META.get('HTTP_ACCEPT', ''): diff --git a/cms/djangoapps/contentstore/views/public.py b/cms/djangoapps/contentstore/views/public.py index c7857af0c0a..79e1212e9dd 100644 --- a/cms/djangoapps/contentstore/views/public.py +++ b/cms/djangoapps/contentstore/views/public.py @@ -10,6 +10,8 @@ from edxmako.shortcuts import render_to_response from external_auth.views import ssl_login_shortcut +from microsite_configuration.middleware import MicrositeConfiguration + __all__ = ['signup', 'login_page', 'howitworks'] @@ -29,10 +31,14 @@ def login_page(request): Display the login form. """ csrf_token = csrf(request)['csrf_token'] - return render_to_response('login.html', { - 'csrf': csrf_token, - 'forgot_password_link': "//{base}/login#forgot-password-modal".format(base=settings.LMS_BASE), - }) + return render_to_response( + 'login.html', + { + 'csrf': csrf_token, + 'forgot_password_link': "//{base}/login#forgot-password-modal".format(base=settings.LMS_BASE), + 'platform_name': MicrositeConfiguration.get_microsite_configuration_value('platform_name', settings.PLATFORM_NAME), + } + ) def howitworks(request): diff --git a/cms/envs/aws.py b/cms/envs/aws.py index 1ee1c3be777..a24e25b74e0 100644 --- a/cms/envs/aws.py +++ b/cms/envs/aws.py @@ -9,6 +9,7 @@ This is the default template for our main set of AWS servers. import json from .common import * + from logsettings import get_logger_config import os @@ -145,7 +146,6 @@ COURSES_WITH_UNSAFE_CODE = ENV_TOKENS.get("COURSES_WITH_UNSAFE_CODE", []) #Timezone overrides TIME_ZONE = ENV_TOKENS.get('TIME_ZONE', TIME_ZONE) - ENV_FEATURES = ENV_TOKENS.get('FEATURES', ENV_TOKENS.get('MITX_FEATURES', {})) for feature, value in ENV_FEATURES.items(): FEATURES[feature] = value @@ -213,3 +213,16 @@ BROKER_URL = "{0}://{1}:{2}@{3}/{4}".format(CELERY_BROKER_TRANSPORT, # Event tracking TRACKING_BACKENDS.update(AUTH_TOKENS.get("TRACKING_BACKENDS", {})) + +SUBDOMAIN_BRANDING = ENV_TOKENS.get('SUBDOMAIN_BRANDING', {}) +VIRTUAL_UNIVERSITIES = ENV_TOKENS.get('VIRTUAL_UNIVERSITIES', []) + +MICROSITE_CONFIGURATION = ENV_TOKENS.get('MICROSITE_CONFIGURATION', {}) +MICROSITE_ROOT_DIR = ENV_TOKENS.get('MICROSITE_ROOT_DIR') +if len(MICROSITE_CONFIGURATION.keys()) > 0: + enable_microsites( + MICROSITE_CONFIGURATION, + SUBDOMAIN_BRANDING, + VIRTUAL_UNIVERSITIES, + microsites_root=path(MICROSITE_ROOT_DIR) + ) diff --git a/cms/envs/common.py b/cms/envs/common.py index eb7d600c209..aa82ae5eed5 100644 --- a/cms/envs/common.py +++ b/cms/envs/common.py @@ -25,7 +25,7 @@ Longer TODO: import sys import lms.envs.common -from lms.envs.common import USE_TZ, TECH_SUPPORT_EMAIL, PLATFORM_NAME, BUGS_EMAIL, DOC_STORE_CONFIG +from lms.envs.common import USE_TZ, TECH_SUPPORT_EMAIL, PLATFORM_NAME, BUGS_EMAIL, DOC_STORE_CONFIG, enable_microsites from path import path from lms.lib.xblock.mixin import LmsBlockMixin diff --git a/cms/envs/microsite_test.py b/cms/envs/microsite_test.py new file mode 100644 index 00000000000..5eb2079da8d --- /dev/null +++ b/cms/envs/microsite_test.py @@ -0,0 +1,15 @@ +""" +This is a localdev test for the Microsite processing pipeline +""" +# We intentionally define lots of variables that aren't used, and +# want to import all variables from base settings files +# pylint: disable=W0401, W0614 + +from .dev import * +from .dev import SUBDOMAIN_BRANDING, VIRTUAL_UNIVERSITIES + +MICROSITE_NAMES = ['openedx'] +MICROSITE_CONFIGURATION = {} + +if MICROSITE_NAMES and len(MICROSITE_NAMES) > 0: + enable_microsites(MICROSITE_NAMES, MICROSITE_CONFIGURATION, SUBDOMAIN_BRANDING, VIRTUAL_UNIVERSITIES) diff --git a/common/djangoapps/edxmako/shortcuts.py b/common/djangoapps/edxmako/shortcuts.py index 6cecb409e94..a52c852727b 100644 --- a/common/djangoapps/edxmako/shortcuts.py +++ b/common/djangoapps/edxmako/shortcuts.py @@ -16,6 +16,8 @@ from django.template import Context from django.http import HttpResponse import logging +from microsite_configuration.middleware import MicrositeConfiguration + import edxmako import edxmako.middleware from django.conf import settings @@ -71,6 +73,10 @@ def marketing_link_context_processor(request): def render_to_string(template_name, dictionary, context=None, namespace='main'): + + # see if there is an override template defined in the microsite + template_name = MicrositeConfiguration.get_microsite_template_path(template_name) + context_instance = Context(dictionary) # add dictionary to context_instance context_instance.update(dictionary or {}) @@ -98,5 +104,9 @@ def render_to_response(template_name, dictionary=None, context_instance=None, na Returns a HttpResponse whose content is filled with the result of calling lookup.get_template(args[0]).render with the passed arguments. """ + + # see if there is an override template defined in the microsite + template_name = MicrositeConfiguration.get_microsite_template_path(template_name) + dictionary = dictionary or {} return HttpResponse(render_to_string(template_name, dictionary, context_instance, namespace), **kwargs) diff --git a/common/djangoapps/microsite_configuration/__init__.py b/common/djangoapps/microsite_configuration/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/common/djangoapps/microsite_configuration/middleware.py b/common/djangoapps/microsite_configuration/middleware.py new file mode 100644 index 00000000000..61d2cd98839 --- /dev/null +++ b/common/djangoapps/microsite_configuration/middleware.py @@ -0,0 +1,183 @@ +""" +This file implements the initial Microsite support for the Open edX platform. +A microsite enables the following features: + +1) Mapping of sub-domain name to a 'brand', e.g. foo-university.edx.org +2) Present a landing page with a listing of courses that are specific to the 'brand' +3) Ability to swap out some branding elements in the website +""" +import threading +import os.path + +from django.conf import settings + +_microsite_configuration_threadlocal = threading.local() +_microsite_configuration_threadlocal.data = {} + + +def has_microsite_configuration_set(): + """ + Returns whether the MICROSITE_CONFIGURATION has been set in the configuration files + """ + return getattr(settings, "MICROSITE_CONFIGURATION", False) + + +class MicrositeConfiguration(object): + """ + Middleware class which will bind configuration information regarding 'microsites' on a per request basis. + The actual configuration information is taken from Django settings information + """ + + @classmethod + def is_request_in_microsite(cls): + """ + This will return if current request is a request within a microsite + """ + return cls.get_microsite_configuration() + + @classmethod + def get_microsite_configuration(cls): + """ + Returns the current request's microsite configuration + """ + if not hasattr(_microsite_configuration_threadlocal, 'data'): + return {} + + return _microsite_configuration_threadlocal.data + + @classmethod + def get_microsite_configuration_value(cls, val_name, default=None): + """ + Returns a value associated with the request's microsite, if present + """ + configuration = cls.get_microsite_configuration() + return configuration.get(val_name, default) + + @classmethod + def get_microsite_template_path(cls, relative_path): + """ + Returns a path to a Mako template, which can either be in + a microsite directory (as an override) or will just return what is passed in + """ + + if not cls.is_request_in_microsite(): + return relative_path + + microsite_template_path = cls.get_microsite_configuration_value('template_dir') + + if microsite_template_path: + search_path = microsite_template_path / relative_path + + if os.path.isfile(search_path): + path = '{0}/templates/{1}'.format( + cls.get_microsite_configuration_value('microsite_name'), + relative_path + ) + return path + + return relative_path + + @classmethod + def get_microsite_configuration_value_for_org(cls, org, val_name, default=None): + """ + This returns a configuration value for a microsite which has an org_filter that matches + what is passed in + """ + if not has_microsite_configuration_set(): + return default + + for key in settings.MICROSITE_CONFIGURATION.keys(): + org_filter = settings.MICROSITE_CONFIGURATION[key].get('course_org_filter', None) + if org_filter == org: + return settings.MICROSITE_CONFIGURATION[key].get(val_name, default) + return default + + @classmethod + def get_all_microsite_orgs(cls): + """ + This returns a set of orgs that are considered within a Microsite. This can be used, + for example, to do filtering + """ + org_filter_set = [] + if not has_microsite_configuration_set(): + return org_filter_set + + for key in settings.MICROSITE_CONFIGURATION: + org_filter = settings.MICROSITE_CONFIGURATION[key].get('course_org_filter') + if org_filter: + org_filter_set.append(org_filter) + + return org_filter_set + + def clear_microsite_configuration(self): + """ + Clears out any microsite configuration from the current request/thread + """ + _microsite_configuration_threadlocal.data = {} + + def process_request(self, request): + """ + Middleware entry point on every request processing. This will associate a request's domain name + with a 'University' and any corresponding microsite configuration information + """ + self.clear_microsite_configuration() + + domain = request.META.get('HTTP_HOST', None) + + if domain: + subdomain = MicrositeConfiguration.pick_subdomain(domain, settings.SUBDOMAIN_BRANDING.keys()) + university = MicrositeConfiguration.match_university(subdomain) + microsite_configuration = self.get_microsite_configuration_for_university(university) + if microsite_configuration: + microsite_configuration['university'] = university + microsite_configuration['subdomain'] = subdomain + microsite_configuration['site_domain'] = domain + _microsite_configuration_threadlocal.data = microsite_configuration + + # also put the configuration on the request itself to make it easier to dereference + request.microsite_configuration = _microsite_configuration_threadlocal.data + return None + + def process_response(self, request, response): + """ + Middleware entry point for request completion. + """ + self.clear_microsite_configuration() + return response + + def get_microsite_configuration_for_university(self, university): + """ + For a given university, return the microsite configuration which + is in the Django settings + """ + if not university: + return None + + if not has_microsite_configuration_set(): + return None + + configuration = settings.MICROSITE_CONFIGURATION.get(university, None) + return configuration + + @classmethod + def match_university(cls, domain): + """ + Return the university name specified for the domain, or None + if no university was specified + """ + if not settings.FEATURES['SUBDOMAIN_BRANDING'] or domain is None: + return None + + subdomain = cls.pick_subdomain(domain, settings.SUBDOMAIN_BRANDING.keys()) + return settings.SUBDOMAIN_BRANDING.get(subdomain) + + @classmethod + def pick_subdomain(cls, domain, options, default='default'): + """ + Attempt to match the incoming request's HOST domain with a configuration map + to see what subdomains are supported in Microsites. + """ + for option in options: + if domain.startswith(option): + return option + return default diff --git a/common/djangoapps/student/views.py b/common/djangoapps/student/views.py index aaf4ca82742..f5660935bf6 100644 --- a/common/djangoapps/student/views.py +++ b/common/djangoapps/student/views.py @@ -71,6 +71,7 @@ from pytz import UTC from util.json_request import JsonResponse +from microsite_configuration.middleware import MicrositeConfiguration log = logging.getLogger("edx.student") AUDIT_LOG = logging.getLogger("audit") @@ -250,7 +251,11 @@ def signin_user(request): context = { 'course_id': request.GET.get('course_id'), - 'enrollment_action': request.GET.get('enrollment_action') + 'enrollment_action': request.GET.get('enrollment_action'), + 'platform_name': MicrositeConfiguration.get_microsite_configuration_value( + 'platform_name', + settings.PLATFORM_NAME + ), } return render_to_response('login.html', context) @@ -269,7 +274,11 @@ def register_user(request, extra_context=None): context = { 'course_id': request.GET.get('course_id'), - 'enrollment_action': request.GET.get('enrollment_action') + 'enrollment_action': request.GET.get('enrollment_action'), + 'platform_name': MicrositeConfiguration.get_microsite_configuration_value( + 'platform_name', + settings.PLATFORM_NAME + ), } if extra_context is not None: context.update(extra_context) @@ -311,9 +320,33 @@ def dashboard(request): # longer exist (because the course IDs have changed). Still, we don't delete those # enrollments, because it could have been a data push snafu. course_enrollment_pairs = [] + + # for microsites, we want to filter and only show enrollments for courses within + # the microsites 'ORG' + course_org_filter = MicrositeConfiguration.get_microsite_configuration_value('course_org_filter') + + # Let's filter out any courses in an "org" that has been declared to be + # in a Microsite + org_filter_out_set = MicrositeConfiguration.get_all_microsite_orgs() + + # remove our current Microsite from the "filter out" list, if applicable + if course_org_filter: + org_filter_out_set.remove(course_org_filter) + for enrollment in CourseEnrollment.enrollments_for_user(user): try: - course_enrollment_pairs.append((course_from_id(enrollment.course_id), enrollment)) + course = course_from_id(enrollment.course_id) + + # if we are in a Microsite, then filter out anything that is not + # attributed (by ORG) to that Microsite + if course_org_filter and course_org_filter != course.location.org: + continue + # Conversely, if we are not in a Microsite, then let's filter out any enrollments + # with courses attributed (by ORG) to Microsites + elif course.location.org in org_filter_out_set: + continue + + course_enrollment_pairs.append((course, enrollment)) except ItemNotFoundError: log.error("User {0} enrolled in non-existent course {1}" .format(user.username, enrollment.course_id)) @@ -539,7 +572,11 @@ def accounts_login(request): course_id = _parse_course_id_from_string(redirect_to) if course_id and _get_course_enrollment_domain(course_id): return external_auth.views.course_specific_login(request, course_id) - return render_to_response('login.html') + + context = { + 'platform_name': settings.PLATFORM_NAME, + } + return render_to_response('login.html', context) # Need different levels of logging @@ -899,26 +936,31 @@ def create_account(request, post_override=None): return ret (user, profile, registration) = ret - d = {'name': post_vars['name'], - 'key': registration.activation_key, - } + context = { + 'name': post_vars['name'], + 'key': registration.activation_key, + } # composes activation email - subject = render_to_string('emails/activation_email_subject.txt', d) + subject = render_to_string('emails/activation_email_subject.txt', context) # Email subject *must not* contain newlines subject = ''.join(subject.splitlines()) - message = render_to_string('emails/activation_email.txt', d) + message = render_to_string('emails/activation_email.txt', context) # don't send email if we are doing load testing or random user generation for some reason if not (settings.FEATURES.get('AUTOMATIC_AUTH_FOR_TESTING')): + from_address = MicrositeConfiguration.get_microsite_configuration_value( + 'email_from_address', + settings.DEFAULT_FROM_EMAIL + ) try: if settings.FEATURES.get('REROUTE_ACTIVATION_EMAIL'): dest_addr = settings.FEATURES['REROUTE_ACTIVATION_EMAIL'] message = ("Activation for %s (%s): %s\n" % (user, user.email, profile.name) + '-' * 80 + '\n\n' + message) - send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [dest_addr], fail_silently=False) + send_mail(subject, message, from_address, [dest_addr], fail_silently=False) else: - _res = user.email_user(subject, message, settings.DEFAULT_FROM_EMAIL) + _res = user.email_user(subject, message, from_address) except: log.warning('Unable to send activation email to user', exc_info=True) js['value'] = _('Could not send activation e-mail.') @@ -1171,15 +1213,23 @@ def change_email_request(request): return HttpResponse(json.dumps({'success': False, 'error': _('Old email is the same as the new email.')})) - d = {'key': pec.activation_key, - 'old_email': user.email, - 'new_email': pec.new_email} + context = { + 'key': pec.activation_key, + 'old_email': user.email, + 'new_email': pec.new_email + } - subject = render_to_string('emails/email_change_subject.txt', d) + subject = render_to_string('emails/email_change_subject.txt', context) subject = ''.join(subject.splitlines()) - message = render_to_string('emails/email_change.txt', d) - _res = send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [pec.new_email]) + message = render_to_string('emails/email_change.txt', context) + + from_address = MicrositeConfiguration.get_microsite_configuration_value( + 'email_from_address', + settings.DEFAULT_FROM_EMAIL + ) + + _res = send_mail(subject, message, from_address, [pec.new_email]) return HttpResponse(json.dumps({'success': True})) diff --git a/common/djangoapps/util/request.py b/common/djangoapps/util/request.py index 0950fa3b424..fc9c8351949 100644 --- a/common/djangoapps/util/request.py +++ b/common/djangoapps/util/request.py @@ -1,5 +1,6 @@ """ Utility functions related to HTTP requests """ from django.conf import settings +from microsite_configuration.middleware import MicrositeConfiguration def safe_get_host(request): @@ -14,4 +15,4 @@ def safe_get_host(request): if isinstance(settings.ALLOWED_HOSTS, (list, tuple)) and '*' not in settings.ALLOWED_HOSTS: return request.get_host() else: - return settings.SITE_NAME + return MicrositeConfiguration.get_microsite_configuration_value('site_domain', settings.SITE_NAME) diff --git a/lms/djangoapps/branding/__init__.py b/lms/djangoapps/branding/__init__.py index d70ffb1cc99..c63154356fc 100644 --- a/lms/djangoapps/branding/__init__.py +++ b/lms/djangoapps/branding/__init__.py @@ -2,15 +2,10 @@ from xmodule.modulestore.django import modulestore from xmodule.course_module import CourseDescriptor from django.conf import settings +from microsite_configuration.middleware import MicrositeConfiguration -def pick_subdomain(domain, options, default='default'): - for option in options: - if domain.startswith(option): - return option - return default - -def get_visible_courses(domain=None): +def get_visible_courses(): """ Return the set of CourseDescriptors that should be visible in this branded instance """ @@ -20,31 +15,52 @@ def get_visible_courses(domain=None): if isinstance(c, CourseDescriptor)] courses = sorted(courses, key=lambda course: course.number) - if domain and settings.FEATURES.get('SUBDOMAIN_COURSE_LISTINGS'): - subdomain = pick_subdomain(domain, settings.COURSE_LISTINGS.keys()) - visible_ids = frozenset(settings.COURSE_LISTINGS[subdomain]) - return [course for course in courses if course.id in visible_ids] + subdomain = MicrositeConfiguration.get_microsite_configuration_value('subdomain') + + # See if we have filtered course listings in this domain + filtered_visible_ids = None + + # this is legacy format which is outside of the microsite feature + if hasattr(settings, 'COURSE_LISTINGS') and subdomain in settings.COURSE_LISTINGS: + filtered_visible_ids = frozenset(settings.COURSE_LISTINGS[subdomain]) + + filtered_by_org = MicrositeConfiguration.get_microsite_configuration_value('course_org_filter') + + if filtered_by_org: + return [course for course in courses if course.location.org == filtered_by_org] + if filtered_visible_ids: + return [course for course in courses if course.id in filtered_visible_ids] else: - return courses + # Let's filter out any courses in an "org" that has been declared to be + # in a Microsite + org_filter_out_set = MicrositeConfiguration.get_all_microsite_orgs() + return [course for course in courses if course.location.org not in org_filter_out_set] -def get_university(domain=None): +def get_university_for_request(): """ Return the university name specified for the domain, or None if no university was specified """ - if not settings.FEATURES['SUBDOMAIN_BRANDING'] or domain is None: - return None + return MicrositeConfiguration.get_microsite_configuration_value('university') - subdomain = pick_subdomain(domain, settings.SUBDOMAIN_BRANDING.keys()) - return settings.SUBDOMAIN_BRANDING.get(subdomain) - -def get_logo_url(domain=None): +def get_logo_url(): """ Return the url for the branded logo image to be used """ - university = get_university(domain) + + # if the MicrositeConfiguration has a value for the logo_image_url + # let's use that + image_url = MicrositeConfiguration.get_microsite_configuration_value('logo_image_url') + if image_url: + return '{static_url}{image_url}'.format( + static_url=settings.STATIC_URL, + image_url=image_url + ) + + # otherwise, use the legacy means to configure this + university = MicrositeConfiguration.get_microsite_configuration_value('university') if university is None: return '{static_url}images/header-logo.png'.format( diff --git a/lms/djangoapps/branding/views.py b/lms/djangoapps/branding/views.py index 0adf7338182..aa0f752e7d1 100644 --- a/lms/djangoapps/branding/views.py +++ b/lms/djangoapps/branding/views.py @@ -6,8 +6,9 @@ from django_future.csrf import ensure_csrf_cookie from edxmako.shortcuts import render_to_response import student.views -import branding import courseware.views + +from microsite_configuration.middleware import MicrositeConfiguration from edxmako.shortcuts import marketing_link from util.cache import cache_if_anonymous @@ -25,10 +26,19 @@ def index(request): if settings.FEATURES.get('AUTH_USE_MIT_CERTIFICATES'): from external_auth.views import ssl_login return ssl_login(request) - if settings.FEATURES.get('ENABLE_MKTG_SITE'): + + enable_mktg_site = MicrositeConfiguration.get_microsite_configuration_value( + 'ENABLE_MKTG_SITE', + settings.FEATURES.get('ENABLE_MKTG_SITE', False) + ) + + if enable_mktg_site: return redirect(settings.MKTG_URLS.get('ROOT')) - university = branding.get_university(request.META.get('HTTP_HOST')) + university = MicrositeConfiguration.match_university(request.META.get('HTTP_HOST')) + + # keep specialized logic for Edge until we can migrate over Edge to fully use + # microsite definitions if university == 'edge': context = { 'suppress_toplevel_navigation': True @@ -49,7 +59,9 @@ def courses(request): to that. Otherwise, if subdomain branding is on, this is the university profile page. Otherwise, it's the edX courseware.views.courses page """ - if settings.FEATURES.get('ENABLE_MKTG_SITE', False): + enable_mktg_site = settings.FEATURES.get('ENABLE_MKTG_SITE') or MicrositeConfiguration.get_microsite_configuration_value('ENABLE_MKTG_SITE', False) + + if enable_mktg_site: return redirect(marketing_link('COURSES'), permanent=True) if not settings.FEATURES.get('COURSES_ARE_BROWSABLE'): diff --git a/lms/djangoapps/courseware/courses.py b/lms/djangoapps/courseware/courses.py index c74b0f9e6f0..fd8adf998b6 100644 --- a/lms/djangoapps/courseware/courses.py +++ b/lms/djangoapps/courseware/courses.py @@ -294,7 +294,7 @@ def get_courses(user, domain=None): ''' Returns a list of courses available, sorted by course.number ''' - courses = branding.get_visible_courses(domain) + courses = branding.get_visible_courses() courses = [c for c in courses if has_access(user, c, 'see_exists')] courses = sorted(courses, key=lambda course: course.number) diff --git a/lms/djangoapps/courseware/tests/test_microsites.py b/lms/djangoapps/courseware/tests/test_microsites.py new file mode 100644 index 00000000000..0daffb611c5 --- /dev/null +++ b/lms/djangoapps/courseware/tests/test_microsites.py @@ -0,0 +1,145 @@ +""" +Tests related to the Microsites feature +""" +from django.core.urlresolvers import reverse +from django.test.utils import override_settings +from unittest import skip + +from xmodule.modulestore.tests.factories import CourseFactory, ItemFactory + +from xmodule.modulestore.tests.django_utils import ModuleStoreTestCase + +from helpers import LoginEnrollmentTestCase +from courseware.tests.modulestore_config import TEST_DATA_MIXED_MODULESTORE + +MICROSITE_TEST_HOSTNAME = 'testmicrosite.testserver' + + +@override_settings(MODULESTORE=TEST_DATA_MIXED_MODULESTORE) +class TestMicrosites(ModuleStoreTestCase, LoginEnrollmentTestCase): + """ + This is testing of the Microsite feature + """ + + STUDENT_INFO = [('view@test.com', 'foo'), ('view2@test.com', 'foo')] + + def setUp(self): + # use a different hostname to test Microsites since they are + # triggered on subdomain mappings + # + # NOTE: The Microsite Configuration is in lms/envs/test.py. The content for the Test Microsite is in + # test_microsites/test_microsite. + # + # IMPORTANT: For these tests to work, this domain must be defined via + # DNS configuration (either local or published) + + self.course = CourseFactory.create(display_name='Robot_Super_Course', org='TestMicrositeX') + self.chapter0 = ItemFactory.create(parent_location=self.course.location, + display_name='Overview') + self.chapter9 = ItemFactory.create(parent_location=self.course.location, + display_name='factory_chapter') + self.section0 = ItemFactory.create(parent_location=self.chapter0.location, + display_name='Welcome') + self.section9 = ItemFactory.create(parent_location=self.chapter9.location, + display_name='factory_section') + + self.course_outside_microsite = CourseFactory.create(display_name='Robot_Course_Outside_Microsite', org='FooX') + + def create_test_accounts(self): + """ + Build out the test accounts we'll use in these tests + """ + # Create student accounts and activate them. + for i in range(len(self.STUDENT_INFO)): + email, password = self.STUDENT_INFO[i] + username = 'u{0}'.format(i) + self.create_account(username, email, password) + self.activate_user(email) + + @skip # skipping - runs fine on localdev, not jenkins environment + def test_microsite_anonymous_homepage_content(self): + """ + Verify that the homepage, when accessed via a Microsite domain, returns + HTML that reflects the Microsite branding elements + """ + + resp = self.client.get('/', HTTP_HOST=MICROSITE_TEST_HOSTNAME) + self.assertEqual(resp.status_code, 200) + + # assert various branding definitions on this Microsite + # as per the configuration and Microsite overrides + + self.assertContains(resp, 'This is a Test Microsite Overlay') # Overlay test message + self.assertContains(resp, 'test_microsite/images/header-logo.png') # logo swap + self.assertContains(resp, 'test_microsite/css/test_microsite.css') # css override + self.assertContains(resp, '<title>Test Microsite</title>') # page title + + # assert that test course display name is visible + self.assertContains(resp, 'Robot_Super_Course') + + # assert that test course that is outside microsite is not visible + self.assertNotContains(resp, 'Robot_Course_Outside_Microsite') + + # assert that footer template has been properly overriden on homepage + self.assertContains(resp, 'This is a Test Microsite footer') + + # assert that the edX partners section is not in the HTML + self.assertNotContains(resp, '<section class="university-partners university-partners2x6">') + + # assert that the edX partners tag line is not in the HTML + self.assertNotContains(resp, 'Explore free courses from') + + @skip # skipping - runs fine on localdev, not jenkins environment + def test_not_microsite_anonymous_homepage_content(self): + """ + Make sure we see the right content on the homepage if we are not in a microsite + """ + + resp = self.client.get('/') + self.assertEqual(resp.status_code, 200) + + # assert various branding definitions on this Microsite ARE NOT VISIBLE + + self.assertNotContains(resp, 'This is a Test Microsite Overlay') # Overlay test message + self.assertNotContains(resp, 'test_microsite/images/header-logo.png') # logo swap + self.assertNotContains(resp, 'test_microsite/css/test_microsite.css') # css override + self.assertNotContains(resp, '<title>Test Microsite</title>') # page title + + # assert that test course display name IS NOT VISIBLE, since that is a Microsite only course + self.assertNotContains(resp, 'Robot_Super_Course') + + # assert that test course that is outside microsite IS VISIBLE + self.assertContains(resp, 'Robot_Course_Outside_Microsite') + + # assert that footer template has been properly overriden on homepage + self.assertNotContains(resp, 'This is a Test Microsite footer') + + # assert that the edX partners section is not in the HTML + self.assertContains(resp, '<section class="university-partners university-partners2x6">') + + # assert that the edX partners tag line is not in the HTML + self.assertContains(resp, 'Explore free courses from') + + @skip # skipping - runs fine on localdev, not jenkins environment + def test_microsite_course_enrollment(self): + """ + Enroll user in a course scoped in a Microsite and one course outside of a Microsite + and make sure that they are only visible in the right Dashboards + """ + + self.create_test_accounts() + + email, password = self.STUDENT_INFO[0] + self.login(email, password) + self.enroll(self.course, True) + self.enroll(self.course_outside_microsite, True) + + # Access the microsite dashboard and make sure the right courses appear + resp = self.client.get(reverse('dashboard'), HTTP_HOST=MICROSITE_TEST_HOSTNAME) + self.assertContains(resp, 'Robot_Super_Course') + self.assertNotContains(resp, 'Robot_Course_Outside_Microsite') + + # Now access the non-microsite dashboard and make sure the right courses appear + resp = self.client.get(reverse('dashboard')) + self.assertNotContains(resp, 'Robot_Super_Course') + self.assertContains(resp, 'Robot_Course_Outside_Microsite') diff --git a/lms/djangoapps/instructor/enrollment.py b/lms/djangoapps/instructor/enrollment.py index a7c4fe0b655..5042f6996da 100644 --- a/lms/djangoapps/instructor/enrollment.py +++ b/lms/djangoapps/instructor/enrollment.py @@ -14,6 +14,8 @@ from student.models import CourseEnrollment, CourseEnrollmentAllowed from courseware.models import StudentModule from edxmako.shortcuts import render_to_string +from microsite_configuration.middleware import MicrositeConfiguration + # For determining if a shibboleth course SHIBBOLETH_DOMAIN_PREFIX = 'shib:' @@ -223,22 +225,58 @@ def send_mail_to_student(student, param_dict): Returns a boolean indicating whether the email was sent successfully. """ - email_template_dict = {'allowed_enroll': ('emails/enroll_email_allowedsubject.txt', 'emails/enroll_email_allowedmessage.txt'), - 'enrolled_enroll': ('emails/enroll_email_enrolledsubject.txt', 'emails/enroll_email_enrolledmessage.txt'), - 'allowed_unenroll': ('emails/unenroll_email_subject.txt', 'emails/unenroll_email_allowedmessage.txt'), - 'enrolled_unenroll': ('emails/unenroll_email_subject.txt', 'emails/unenroll_email_enrolledmessage.txt')} + # add some helpers and microconfig subsitutions + if 'course' in param_dict: + param_dict['course_name'] = param_dict['course'].display_name_with_default + + param_dict['site_name'] = MicrositeConfiguration.get_microsite_configuration_value( + 'SITE_NAME', + param_dict['site_name'] + ) + + subject = None + message = None + + # see if we are running in a microsite and that there is an + # activation email template definition available as configuration, if so, then render that + message_type = param_dict['message'] + + email_template_dict = { + 'allowed_enroll': ( + 'emails/enroll_email_allowedsubject.txt', + 'emails/enroll_email_allowedmessage.txt' + ), + 'enrolled_enroll': ( + 'emails/enroll_email_enrolledsubject.txt', + 'emails/enroll_email_enrolledmessage.txt' + ), + 'allowed_unenroll': ( + 'emails/unenroll_email_subject.txt', + 'emails/unenroll_email_allowedmessage.txt' + ), + 'enrolled_unenroll': ( + 'emails/unenroll_email_subject.txt', + 'emails/unenroll_email_enrolledmessage.txt' + ) + } - subject_template, message_template = email_template_dict.get(param_dict['message'], (None, None)) + subject_template, message_template = email_template_dict.get(message_type, (None, None)) if subject_template is not None and message_template is not None: subject = render_to_string(subject_template, param_dict) message = render_to_string(message_template, param_dict) + if subject and message: # Remove leading and trailing whitespace from body message = message.strip() # Email subject *must not* contain newlines subject = ''.join(subject.splitlines()) - send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [student], fail_silently=False) + from_address = MicrositeConfiguration.get_microsite_configuration_value( + 'email_from_address', + settings.DEFAULT_FROM_EMAIL + ) + + send_mail(subject, message, from_address, [student], fail_silently=False) def uses_shib(course): diff --git a/lms/djangoapps/instructor/views/legacy.py b/lms/djangoapps/instructor/views/legacy.py index 7f1d6e182ff..4b54d037fc1 100644 --- a/lms/djangoapps/instructor/views/legacy.py +++ b/lms/djangoapps/instructor/views/legacy.py @@ -63,6 +63,8 @@ from xblock.fields import ScopeIds from django.utils.translation import ugettext as _u from lms.lib.xblock.runtime import handler_prefix +from microsite_configuration.middleware import MicrositeConfiguration + log = logging.getLogger(__name__) # internal commands for managing forum roles: @@ -1282,7 +1284,10 @@ def _do_enroll_students(course, course_id, students, overload=False, auto_enroll ceaset.delete() if email_students: - stripped_site_name = settings.SITE_NAME + stripped_site_name = MicrositeConfiguration.get_microsite_configuration_value( + 'SITE_NAME', + settings.SITE_NAME + ) registration_url = 'https://' + stripped_site_name + reverse('student.views.register_user') #Composition of email d = {'site_name': stripped_site_name, @@ -1291,7 +1296,7 @@ def _do_enroll_students(course, course_id, students, overload=False, auto_enroll 'auto_enroll': auto_enroll, 'course_url': 'https://' + stripped_site_name + '/courses/' + course_id, 'course_about_url': 'https://' + stripped_site_name + '/courses/' + course_id + '/about', - 'is_shib_course': is_shib_course, + 'is_shib_course': is_shib_course } for student in new_students: @@ -1373,7 +1378,10 @@ def _do_unenroll_students(course_id, students, email_students=False): old_students, _ = get_and_clean_student_list(students) status = dict([x, 'unprocessed'] for x in old_students) - stripped_site_name = settings.SITE_NAME + stripped_site_name = MicrositeConfiguration.get_microsite_configuration_value( + 'SITE_NAME', + settings.SITE_NAME + ) if email_students: course = course_from_id(course_id) #Composition of email @@ -1447,22 +1455,43 @@ def send_mail_to_student(student, param_dict): Returns a boolean indicating whether the email was sent successfully. """ - EMAIL_TEMPLATE_DICT = {'allowed_enroll': ('emails/enroll_email_allowedsubject.txt', 'emails/enroll_email_allowedmessage.txt'), - 'enrolled_enroll': ('emails/enroll_email_enrolledsubject.txt', 'emails/enroll_email_enrolledmessage.txt'), - 'allowed_unenroll': ('emails/unenroll_email_subject.txt', 'emails/unenroll_email_allowedmessage.txt'), - 'enrolled_unenroll': ('emails/unenroll_email_subject.txt', 'emails/unenroll_email_enrolledmessage.txt')} + # add some helpers and microconfig subsitutions + if 'course' in param_dict: + param_dict['course_name'] = param_dict['course'].display_name_with_default + param_dict['site_name'] = MicrositeConfiguration.get_microsite_configuration_value( + 'SITE_NAME', + param_dict.get('site_name', '') + ) + + subject = None + message = None + + message_type = param_dict['message'] - subject_template, message_template = EMAIL_TEMPLATE_DICT.get(param_dict['message'], (None, None)) + email_template_dict = { + 'allowed_enroll': ('emails/enroll_email_allowedsubject.txt', 'emails/enroll_email_allowedmessage.txt'), + 'enrolled_enroll': ('emails/enroll_email_enrolledsubject.txt', 'emails/enroll_email_enrolledmessage.txt'), + 'allowed_unenroll': ('emails/unenroll_email_subject.txt', 'emails/unenroll_email_allowedmessage.txt'), + 'enrolled_unenroll': ('emails/unenroll_email_subject.txt', 'emails/unenroll_email_enrolledmessage.txt'), + } + + subject_template, message_template = email_template_dict.get(message_type, (None, None)) if subject_template is not None and message_template is not None: subject = render_to_string(subject_template, param_dict) message = render_to_string(message_template, param_dict) + if subject and message: # Remove leading and trailing whitespace from body message = message.strip() # Email subject *must not* contain newlines subject = ''.join(subject.splitlines()) - send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, [student], fail_silently=False) + from_address = MicrositeConfiguration.get_microsite_configuration_value( + 'email_from_address', + settings.DEFAULT_FROM_EMAIL + ) + + send_mail(subject, message, from_address, [student], fail_silently=False) return True else: diff --git a/lms/djangoapps/shoppingcart/models.py b/lms/djangoapps/shoppingcart/models.py index 7647b2c4870..562ad08d82d 100644 --- a/lms/djangoapps/shoppingcart/models.py +++ b/lms/djangoapps/shoppingcart/models.py @@ -32,6 +32,8 @@ from verify_student.models import SoftwareSecurePhotoVerification from .exceptions import (InvalidCartItem, PurchasedCallbackException, ItemAlreadyInCartException, AlreadyEnrolledInCourseException, CourseDoesNotExistException) +from microsite_configuration.middleware import MicrositeConfiguration + log = logging.getLogger("shoppingcart") ORDER_STATUSES = ( @@ -161,14 +163,22 @@ class Order(models.Model): # send confirmation e-mail subject = _("Order Payment Confirmation") - message = render_to_string('emails/order_confirmation_email.txt', { - 'order': self, - 'order_items': orderitems, - 'has_billing_info': settings.FEATURES['STORE_BILLING_INFO'] - }) + message = render_to_string( + 'emails/order_confirmation_email.txt', + { + 'order': self, + 'order_items': orderitems, + 'has_billing_info': settings.FEATURES['STORE_BILLING_INFO'] + } + ) try: + from_address = MicrositeConfiguration.get_microsite_configuration_value( + 'email_from_address', + settings.DEFAULT_FROM_EMAIL + ) + send_mail(subject, message, - settings.DEFAULT_FROM_EMAIL, [self.user.email]) # pylint: disable=E1101 + from_address, [self.user.email]) # pylint: disable=E1101 except (smtplib.SMTPException, BotoServerError): # sadly need to handle diff. mail backends individually log.error('Failed sending confirmation e-mail for order %d', self.id) # pylint: disable=E1101 @@ -523,7 +533,10 @@ class CertificateItem(OrderItem): user_email=course_enrollment.user.email, order_number=order_number) to_email = [settings.PAYMENT_SUPPORT_EMAIL] - from_email = [settings.PAYMENT_SUPPORT_EMAIL] + from_email = [MicrositeConfiguration.get_microsite_configuration_value( + 'payment_support_email', + settings.PAYMENT_SUPPORT_EMAIL + )] try: send_mail(subject, message, from_email, to_email, fail_silently=False) except (smtplib.SMTPException, BotoServerError): diff --git a/lms/envs/aws.py b/lms/envs/aws.py index ad6f9463d8a..f598416cb7f 100644 --- a/lms/envs/aws.py +++ b/lms/envs/aws.py @@ -337,3 +337,13 @@ VERIFY_STUDENT = AUTH_TOKENS.get("VERIFY_STUDENT", VERIFY_STUDENT) GRADES_DOWNLOAD_ROUTING_KEY = HIGH_MEM_QUEUE GRADES_DOWNLOAD = ENV_TOKENS.get("GRADES_DOWNLOAD", GRADES_DOWNLOAD) + +MICROSITE_CONFIGURATION = ENV_TOKENS.get('MICROSITE_CONFIGURATION', {}) +MICROSITE_ROOT_DIR = ENV_TOKENS.get('MICROSITE_ROOT_DIR') +if MICROSITE_CONFIGURATION: + enable_microsites( + MICROSITE_CONFIGURATION, + SUBDOMAIN_BRANDING, + VIRTUAL_UNIVERSITIES, + microsites_root=path(MICROSITE_ROOT_DIR) + ) diff --git a/lms/envs/cms/microsite_test.py b/lms/envs/cms/microsite_test.py new file mode 100644 index 00000000000..511b97e66aa --- /dev/null +++ b/lms/envs/cms/microsite_test.py @@ -0,0 +1,38 @@ +""" +This is a localdev test for the Microsite processing pipeline +""" +# We intentionally define lots of variables that aren't used, and +# want to import all variables from base settings files +# pylint: disable=W0401, W0614 + +from .dev import * +from .dev import SUBDOMAIN_BRANDING, VIRTUAL_UNIVERSITIES + + +MICROSITE_CONFIGURATION = { + "openedx": { + "domain_prefix": "openedx", + "university": "openedx", + "platform_name": "Open edX", + "logo_image_url": "openedx/images/header-logo.png", + "email_from_address": "openedx@edx.org", + "payment_support_email": "openedx@edx.org", + "ENABLE_MKTG_SITE": False, + "SITE_NAME": "openedx.localhost", + "course_org_filter": "CDX", + "course_about_show_social_links": False, + "css_overrides_file": "openedx/css/openedx.css", + "show_partners": False, + "show_homepage_promo_video": False, + "course_index_overlay_text": "Explore free courses from leading universities.", + "course_index_overlay_logo_file": "openedx/images/header-logo.png", + "homepage_overlay_html": "<h1>Take an Open edX Course</h1>" + }, +} + +if len(MICROSITE_CONFIGURATION.keys()) > 0: + enable_microsites( + MICROSITE_CONFIGURATION, + SUBDOMAIN_BRANDING, + VIRTUAL_UNIVERSITIES + ) diff --git a/lms/envs/common.py b/lms/envs/common.py index 150b9ab8b84..716f11ae2e2 100644 --- a/lms/envs/common.py +++ b/lms/envs/common.py @@ -25,6 +25,7 @@ Longer TODO: import sys import os +import json from path import path @@ -377,7 +378,7 @@ TRACKING_ENABLED = True ######################## subdomain specific settings ########################### COURSE_LISTINGS = {} SUBDOMAIN_BRANDING = {} - +VIRTUAL_UNIVERSITIES = [] ############################### XModule Store ################################## MODULESTORE = { @@ -617,6 +618,7 @@ TEMPLATE_LOADERS = ( MIDDLEWARE_CLASSES = ( 'request_cache.middleware.RequestCache', + 'microsite_configuration.middleware.MicrositeConfiguration', 'django_comment_client.middleware.AjaxExceptionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', @@ -1048,6 +1050,64 @@ MKTG_URL_LINK_MAP = { } +############################### MICROSITES ################################ +def enable_microsites(microsite_config_dict, subdomain_branding, virtual_universities, microsites_root=ENV_ROOT / "microsites"): + """ + Enable the use of microsites, which are websites that allow + for subdomains for the edX platform, e.g. foo.edx.org + """ + + if not microsite_config_dict: + return + + FEATURES['USE_MICROSITES'] = True + + for microsite_name in microsite_config_dict.keys(): + # Calculate the location of the microsite's files + microsite_root = microsites_root / microsite_name + microsite_config = microsite_config_dict[microsite_name] + + # pull in configuration information from each + # microsite root + + if os.path.isdir(microsite_root): + # store the path on disk for later use + microsite_config['microsite_root'] = microsite_root + + # get the domain that this should reside + domain = microsite_config['domain_prefix'] + + # get the virtual university that this should use + university = microsite_config['university'] + + # add to the existing maps in our settings + subdomain_branding[domain] = university + virtual_universities.append(university) + + template_dir = microsite_root / 'templates' + microsite_config['template_dir'] = template_dir + + microsite_config['microsite_name'] = microsite_name + + else: + # not sure if we have application logging at this stage of + # startup + print '**** Error loading microsite {0}. Directory does not exist'.format(microsite_root) + # remove from our configuration as it is not valid + del microsite_config_dict[microsite_name] + + # if we have microsites, then let's turn on SUBDOMAIN_BRANDING + # Note check size of the dict because some microsites might not be found on disk and + # we could be left with none + if microsite_config_dict: + FEATURES['SUBDOMAIN_BRANDING'] = True + + TEMPLATE_DIRS.append(microsites_root) + MAKO_TEMPLATES['main'].append(microsites_root) + + STATICFILES_DIRS.append(microsites_root) + + ################# Student Verification ################# VERIFY_STUDENT = { "DAYS_GOOD_FOR": 365, # How many days is a verficiation good for? diff --git a/lms/envs/dev.py b/lms/envs/dev.py index 30053d3da3e..6b4446893bd 100644 --- a/lms/envs/dev.py +++ b/lms/envs/dev.py @@ -130,6 +130,8 @@ SUBDOMAIN_BRANDING = { 'mit': 'MITx', 'berkeley': 'BerkeleyX', 'harvard': 'HarvardX', + 'openedx': 'openedx', + 'edge': 'edge', } # List of `university` landing pages to display, even though they may not diff --git a/lms/envs/test.py b/lms/envs/test.py index dd52d2e76f6..9577fa571a4 100644 --- a/lms/envs/test.py +++ b/lms/envs/test.py @@ -277,3 +277,33 @@ PASSWORD_HASHERS = ( import openid.oidutil openid.oidutil.log = lambda message, level = 0: None + +# set up some testing for microsites +MICROSITE_CONFIGURATION = { + "test_microsite": { + "domain_prefix": "testmicrosite", + "university": "test_microsite", + "platform_name": "Test Microsite", + "logo_image_url": "test_microsite/images/header-logo.png", + "email_from_address": "test_microsite@edx.org", + "payment_support_email": "test_microsite@edx.org", + "ENABLE_MKTG_SITE": False, + "SITE_NAME": "test_microsite.localhost", + "course_org_filter": "TestMicrositeX", + "course_about_show_social_links": False, + "css_overrides_file": "test_microsite/css/test_microsite.css", + "show_partners": False, + "show_homepage_promo_video": False, + "course_index_overlay_text": "This is a Test Microsite Overlay Text.", + "course_index_overlay_logo_file": "test_microsite/images/header-logo.png", + "homepage_overlay_html": "<h1>This is a Test Microsite Overlay HTML</h1>" + } +} + +if len(MICROSITE_CONFIGURATION.keys()) > 0: + enable_microsites( + MICROSITE_CONFIGURATION, + SUBDOMAIN_BRANDING, + VIRTUAL_UNIVERSITIES, + microsites_root=ENV_ROOT / 'edx-platform' / 'test_microsites' + ) diff --git a/lms/templates/courseware/course_about.html b/lms/templates/courseware/course_about.html index 81e9e2507f2..c042ba31bd2 100644 --- a/lms/templates/courseware/course_about.html +++ b/lms/templates/courseware/course_about.html @@ -11,15 +11,20 @@ cart_link = "" %> <%namespace name='static' file='../static_content.html'/> +<%! from microsite_configuration.middleware import MicrositeConfiguration %> <%inherit file="../main.html" /> <%block name="headextra"> - % if self.theme_enabled(): - <%include file="../theme-google-analytics.html" /> - % else: - <%include file="../google_analytics.html" /> - % endif + + <% + if self.theme_enabled(): + google_analytics_file = u'../' + MicrositeConfiguration.get_microsite_configuration_value('google_analytics_file', 'theme-google-analytics.html') + else: + google_analytics_file = '../google_analytics.html' + %> + + <%include file="${google_analytics_file}" /> </%block> <%block name="js_extra"> @@ -196,6 +201,7 @@ <section class="course-sidebar"> <section class="course-summary"> <header> + % if MicrositeConfiguration.get_microsite_configuration_value('course_about_show_social_links', True): <div class="social-sharing"> <div class="sharing-message">${_("Share with friends and family!")}</div> ## TODO: this should probably be an overrideable block, @@ -209,17 +215,28 @@ <img src="${static.url('images/social/email-sharing.png')}" alt="Email someone to say you've registered for this course"> </a> % else: - <a href="http://twitter.com/intent/tweet?text=I+just+registered+for+${course.number}+${get_course_about_section(course, 'title')}+through+@edxonline:+http://www.edx.org${reverse('about_course', args=[course.id])}" class="share"> + <% + site_domain = MicrositeConfiguration.get_microsite_configuration_value('site_domain', 'www.edx.org') + platform_name = MicrositeConfiguration.get_microsite_configuration_value('platform_name', 'edX') + + tweet_action = "http://twitter.com/intent/tweet?text=I+just+registered+for+"+course.number+"+"+get_course_about_section(course, 'title')+"+through+"+MicrositeConfiguration.get_microsite_configuration_value('course_about_twitter_account', '@edxonline')+":+http://"+site_domain+reverse('about_course', args=[course.id]) + + facebook_link = MicrositeConfiguration.get_microsite_configuration_value('course_about_facebook_link', 'http://www.facebook.com/EdxOnline') + + email_subject = "mailto:?subject=Take%20a%20course%20with%20"+platform_name+"%20online&body=I%20just%20registered%20for%20"+course.number+"%20"+get_course_about_section(course, 'title')+"%20through%20"+platform_name+"%20http://"+site_domain+reverse('about_course', args=[course.id]) + %> + <a href="${tweet_action}" class="share"> <img src="${static.url('images/social/twitter-sharing.png')}" alt="Tweet that you've registered for this course"> </a> - <a href="http://www.facebook.com/EdxOnline" class="share"> + <a href="${facebook_link}" class="share"> <img src="${static.url('images/social/facebook-sharing.png')}" alt="Post a Facebook message to say you've registered for this course"> </a> - <a href="mailto:?subject=Take%20a%20course%20with%20edX%20online&body=I%20just%20registered%20for%20${course.number}%20${get_course_about_section(course, 'title')}%20through%20edX:+http://edx.org/${reverse('about_course', args=[course.id])}" class="share"> + <a href="${email_subject}" class="share"> <img src="${static.url('images/social/email-sharing.png')}" alt="Email someone to say you've registered for this course"> </a> % endif </div> + % endif </header> <ol class="important-dates"> diff --git a/lms/templates/courseware/courses.html b/lms/templates/courseware/courses.html index 1f1d96a0dff..9351980336a 100644 --- a/lms/templates/courseware/courses.html +++ b/lms/templates/courseware/courses.html @@ -4,8 +4,20 @@ <%namespace name='static' file='../static_content.html'/> <%block name="title"><title>${_("Courses")}</title></%block> +<%! from microsite_configuration.middleware import MicrositeConfiguration %> <section class="find-courses"> + +<% + course_index_overlay_text = MicrositeConfiguration.get_microsite_configuration_value('course_index_overlay_text', _("Explore free courses from leading universities.")) + + # not sure why this is, but if I use static.url('images/edx_bw.png') then the HTML rendering + # of this template goes wonky + + logo_file = MicrositeConfiguration.get_microsite_configuration_value( + 'course_index_overlay_logo_file', settings.STATIC_URL + 'images/edx_bw.png') +%> + <header class="search"> <div class="inner-wrapper main-search"> <hgroup> @@ -13,13 +25,13 @@ % if self.stanford_theme_enabled(): <img src="${static.url('themes/stanford/images/seal.png')}" alt="Stanford Seal Logo" /> % else: - <img src="${static.url('images/edx_bw.png')}" alt="Black and White edX Logo" /> + <img src='${logo_file}' alt="${MicrositeConfiguration.get_microsite_configuration_value('platform_name', settings.PLATFORM_NAME)} Logo" /> % endif </div> % if self.stanford_theme_enabled(): <h2>${_("Explore free courses from {university_name}.").format(university_name="Stanford University")}</h2> % else: - <h2>${_("Explore free courses from leading universities.")}</h2> + <h2>${course_index_overlay_text}</h2> % endif </hgroup> </div> diff --git a/lms/templates/forgot_password_modal.html b/lms/templates/forgot_password_modal.html index 71d7d7658b8..5c6fc8e9f0a 100644 --- a/lms/templates/forgot_password_modal.html +++ b/lms/templates/forgot_password_modal.html @@ -1,4 +1,5 @@ <%! from django.utils.translation import ugettext as _ %> +<%! from microsite_configuration.middleware import MicrositeConfiguration %> <%! from django.core.urlresolvers import reverse %> <section id="forgot-password-modal" class="modal" role="dialog" aria-label="${_('Password Reset')}"> @@ -22,7 +23,7 @@ <li class="field required text" id="forgot-password-modal-field-email"> <label for="pwd_reset_email">${_("Your E-mail Address")}</label> <input class="" id="pwd_reset_email" type="email" name="email" value="" placeholder="example: username@domain.com" aria-describedby="pwd_reset_email-tip" aria-required="true" /> - <span class="tip tip-input" id="pwd_reset_email-tip">${_("This is the e-mail address you used to register with {platform}").format(platform=settings.PLATFORM_NAME)}</span> + <span class="tip tip-input" id="pwd_reset_email-tip">${_("This is the e-mail address you used to register with {platform}").format(platform=MicrositeConfiguration.get_microsite_configuration_value('platform_name', settings.PLATFORM_NAME))}</span> </li> </ol> </fieldset> diff --git a/lms/templates/help_modal.html b/lms/templates/help_modal.html index 88f16d242a6..8dc7b6ef6c2 100644 --- a/lms/templates/help_modal.html +++ b/lms/templates/help_modal.html @@ -5,6 +5,7 @@ <%! import pytz %> <%! from django.conf import settings %> <%! from courseware.tabs import get_discussion_link %> +<%! from microsite_configuration.middleware import MicrositeConfiguration %> % if settings.FEATURES.get('ENABLE_FEEDBACK_SUBMISSION', False): @@ -12,13 +13,13 @@ <a href="#help-modal" rel="leanModal" role="button">${_("Help")}</a> </div> -<section id="help-modal" class="modal" aria-hidden="true" role="dialog" aria-label='${_("{platform_name} Help").format(platform_name=settings.PLATFORM_NAME)}'> +<section id="help-modal" class="modal" aria-hidden="true" role="dialog" aria-label="${_("{platform_name} Help").format(platform_name=MicrositeConfiguration.get_microsite_configuration_value("platform_name", settings.PLATFORM_NAME))}"> <div class="inner-wrapper" id="help_wrapper"> ## TODO: find a way to refactor this <button class="close-modal "tabindex="0">✕ <span class="sr">${_('Close Modal')}</span></button> <header> - <h2>${_('{span_start}{platform_name}{span_end} Help').format(span_start='<span class="edx">', span_end='</span>', platform_name=settings.PLATFORM_NAME)}</h2> + <h2>${_('{span_start}{platform_name}{span_end} Help').format(span_start='<span class="edx">', span_end='</span>', platform_name=MicrositeConfiguration.get_microsite_configuration_value('platform_name', settings.PLATFORM_NAME))}</h2> <hr> </header> @@ -39,10 +40,10 @@ discussion_link = get_discussion_link(course) if course else None url=marketing_link('FAQ') ), link_end='</a>', - platform_name=settings.PLATFORM_NAME)} + platform_name=MicrositeConfiguration.get_microsite_configuration_value('platform_name', settings.PLATFORM_NAME))} </p> - <p>${_('Have a <strong>question about something specific</strong>? You can contact the {platform_name} general support team directly:').format(platform_name=settings.PLATFORM_NAME)}</p> + <p>${_('Have a <strong>question about something specific</strong>? You can contact the {platform_name} general support team directly:').format(platform_name=MicrositeConfiguration.get_microsite_configuration_value('platform_name', settings.PLATFORM_NAME))}</p> <hr> <div class="help-buttons"> diff --git a/lms/templates/index.html b/lms/templates/index.html index 56d08ce1108..205734d6ccc 100644 --- a/lms/templates/index.html +++ b/lms/templates/index.html @@ -5,17 +5,33 @@ <%inherit file="main.html" /> <%namespace name='static' file='static_content.html'/> +<%! from microsite_configuration.middleware import MicrositeConfiguration %> + +<% + homepage_overlay_html = MicrositeConfiguration.get_microsite_configuration_value('homepage_overlay_html') + + show_homepage_promo_video = MicrositeConfiguration.get_microsite_configuration_value('show_homepage_promo_video', True) + homepage_promo_video_youtube_id = MicrositeConfiguration.get_microsite_configuration_value('homepage_promo_video_youtube_id', "XNaiOGxWeto") + + show_partners = MicrositeConfiguration.get_microsite_configuration_value('show_partners', True) + +%> + <section class="home"> <header> <div class="outer-wrapper"> <div class="title"> <hgroup> - % if self.stanford_theme_enabled(): - <h1>${_("Free courses from <strong>{university_name}</strong>").format(university_name="Stanford")}</h1> + % if homepage_overlay_html: + ${homepage_overlay_html} % else: - <h1>${_("The Future of Online Education")}</h1> + % if self.stanford_theme_enabled(): + <h1>${_("Free courses from <strong>{university_name}</strong>").format(university_name="Stanford")}</h1> + % else: + <h1>${_("The Future of Online Education")}</h1> + % endif + <h2>${_("For anyone, anywhere, anytime")}</h2> % endif - <h2>${_("For anyone, anywhere, anytime")}</h2> </hgroup> ## Disable social buttons for non-edX sites @@ -40,22 +56,22 @@ </div> </div> </section> - % endif + % endif </div> + % if show_homepage_promo_video: <a href="#video-modal" class="media" rel="leanModal"> <div class="hero"> <div class="play-intro"></div> </div> </a> - + % endif </div> </header> - <section class="container"> <section class="highlighted-courses"> ## Disable university partner logos and sites for non-edX sites - % if not self.theme_enabled(): + % if not self.theme_enabled() and show_partners: <h2>${_('Explore free courses from {span_start}{platform_name}{span_end} universities').format(platform_name="edX", span_start='<span class="edx">', span_end='</span>')}</h2> <section class="university-partners university-partners2x6"> @@ -183,10 +199,9 @@ <section id="video-modal" class="modal home-page-video-modal video-modal"> <div class="inner-wrapper"> <% + youtube_video_id = homepage_promo_video_youtube_id if self.stanford_theme_enabled(): youtube_video_id = "2gmreZObCY4" - else: - youtube_video_id = "XNaiOGxWeto" %> <iframe width="640" height="360" src="//www.youtube.com/embed/${youtube_video_id}?showinfo=0" frameborder="0" allowfullscreen></iframe> </div> diff --git a/lms/templates/login-sidebar.html b/lms/templates/login-sidebar.html new file mode 100644 index 00000000000..bb9a51e31d0 --- /dev/null +++ b/lms/templates/login-sidebar.html @@ -0,0 +1,30 @@ +<%! +from django.utils.translation import ugettext as _ +from django.core.urlresolvers import reverse +%> + +<header> + <h2 class="sr">${_("Helpful Information")}</h2> +</header> + +% if settings.FEATURES.get('AUTH_USE_OPENID'): +<!-- <div class="cta cta-login-options-openid"> + <h3>${_("Login via OpenID")}</h3> + <p>${_('You can now start learning with {platform_name} by logging in with your <a rel="external" href="http://openid.net/">OpenID account</a>.').format(platform_name=platform_name)}</p> + <a class="action action-login-openid" href="#">${_("Login via OpenID")}</a> +</div> --> +% endif + +<div class="cta cta-help"> + <h3>${_("Not Enrolled?")}</h3> + <p><a href="${reverse('register_user')}">${_("Sign up for {platform_name} today!").format(platform_name=platform_name)}</a></p> + + ## Disable help unless the FAQ marketing link is enabled + % if settings.MKTG_URL_LINK_MAP.get('FAQ'): + <h3>${_("Need Help?")}</h3> + <p>${_("Looking for help in logging in or with your {platform_name} account?").format(platform_name=platform_name)} + <a href="${marketing_link('FAQ')}"> + ${_("View our help section for answers to commonly asked questions.")} + </a></p> + % endif +</div> \ No newline at end of file diff --git a/lms/templates/login.html b/lms/templates/login.html index 4a379ab0c2f..17f3e6f2359 100644 --- a/lms/templates/login.html +++ b/lms/templates/login.html @@ -1,11 +1,11 @@ <%inherit file="main.html" /> - +<%! from microsite_configuration.middleware import MicrositeConfiguration %> <%namespace name='static' file='static_content.html'/> <%! from django.core.urlresolvers import reverse %> <%! from django.utils.translation import ugettext as _ %> -<%block name="title"><title>${_("Log into your {platform_name} Account").format(platform_name=settings.PLATFORM_NAME)}</title></%block> +<%block name="title"><title>${_("Log into your {platform_name} Account").format(platform_name=platform_name)}</title></%block> <%block name="js_extra"> <script type="text/javascript"> @@ -83,7 +83,7 @@ $submitButton. removeClass('is-disabled'). removeProp('disabled'). - html("${_('Log into My {platform_name} Account').format(platform_name=settings.PLATFORM_NAME)} <span class='orn-plus'>+</span> ${_('Access My Courses')}"); + html("${_('Log into My {platform_name} Account').format(platform_name=platform_name)} <span class='orn-plus'>+</span> ${_('Access My Courses')}"); } else { $submitButton. @@ -110,7 +110,7 @@ <!-- status messages --> <div role="alert" class="status message"> - <h3 class="message-title">${_("We're Sorry, {platform_name} accounts are unavailable currently").format(platform_name=settings.PLATFORM_NAME)}</h3> + <h3 class="message-title">${_("We're Sorry, {platform_name} accounts are unavailable currently").format(platform_name=platform_name)}</h3> </div> <div role="alert" class="status message submission-error" tabindex="-1"> @@ -121,7 +121,7 @@ </div> <p class="instructions sr"> - ${_('Please provide the following information to log into your {platform_name} account. Required fields are noted by <strong class="indicator">bold text and an asterisk (*)</strong>.').format(platform_name=settings.PLATFORM_NAME)} + ${_('Please provide the following information to log into your {platform_name} account. Required fields are noted by <strong class="indicator">bold text and an asterisk (*)</strong>.').format(platform_name=platform_name)} </p> <div class="group group-form group-form-requiredinformation"> @@ -131,7 +131,7 @@ <li class="field required text" id="field-email"> <label for="email">${_('E-mail')}</label> <input class="" id="email" type="email" name="email" value="" placeholder="example: username@domain.com" required aria-required="true" aria-described-by="email-tip" /> - <span class="tip tip-input" id="email-tip">${_("This is the e-mail address you used to register with {platform}").format(platform=settings.PLATFORM_NAME)}</span> + <span class="tip tip-input" id="email-tip">${_("This is the e-mail address you used to register with {platform}").format(platform=platform_name)}</span> </li> <li class="field required password" id="field-password"> <label for="password">${_('Password')}</label> @@ -166,31 +166,14 @@ </section> <aside role="complementary"> - <header> - <h2 class="sr">${_("Helpful Information")}</h2> - </header> - - % if settings.FEATURES.get('AUTH_USE_OPENID'): - <!-- <div class="cta cta-login-options-openid"> - <h3>${_("Login via OpenID")}</h3> - <p>${_('You can now start learning with {platform_name} by logging in with your <a rel="external" href="http://openid.net/">OpenID account</a>.').format(platform_name=settings.PLATFORM_NAME)}</p> - <a class="action action-login-openid" href="#">${_("Login via OpenID")}</a> - </div> --> - % endif - - <div class="cta cta-help"> - <h3>${_("Not Enrolled?")}</h3> - <p><a href="${reverse('register_user')}">${_("Sign up for {platform_name} today!").format(platform_name=settings.PLATFORM_NAME)}</a></p> - - ## Disable help unless the FAQ marketing link is enabled - % if settings.MKTG_URL_LINK_MAP.get('FAQ'): - <h3>${_("Need Help?")}</h3> - <p>${_("Looking for help in logging in or with your {platform_name} account?").format(platform_name=settings.PLATFORM_NAME)} - <a href="${marketing_link('FAQ')}"> - ${_("View our help section for answers to commonly asked questions.")} - </a></p> - % endif - </div> + +<% + # allow for microsite overrides on the registration sidebars, otherwise default to pre-existing ones + sidebar_file = MicrositeConfiguration.get_microsite_template_path('login-sidebar.html') +%> + + <%include file="${sidebar_file}" /> + </aside> </section> diff --git a/lms/templates/main.html b/lms/templates/main.html index 2988d274abc..f7aaafc797e 100644 --- a/lms/templates/main.html +++ b/lms/templates/main.html @@ -1,4 +1,5 @@ <%! from django.utils.translation import ugettext as _ %> +<%! from microsite_configuration.middleware import MicrositeConfiguration %> <%namespace name='static' file='static_content.html'/> <%! from django.utils import html %> @@ -12,7 +13,12 @@ </%def> <%def name="stanford_theme_enabled()"> - <% return theme_enabled() and getattr(settings, "THEME_NAME") == "stanford" %> + <% + if not theme_enabled(): + return False + + return getattr(settings, "THEME_NAME", None) == "stanford" + %> </%def> <!DOCTYPE html> @@ -26,10 +32,9 @@ <title>${_("Home")} | class.stanford.edu</title> % else: ## "edX" should not be translated - <title>edX</title> + <title>${MicrositeConfiguration.get_microsite_configuration_value('platform_name', settings.PLATFORM_NAME)}</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> - <meta name="viewport" content="width=device-width, initial-scale=1"> <script type="text/javascript"> /* immediately break out of an iframe if coming from the marketing website */ @@ -44,7 +49,7 @@ <script type="text/javascript" src="/jsi18n/"></script> - <link rel="icon" type="image/x-icon" href="${static.url(settings.FAVICON_PATH)}" /> + <link rel="icon" type="image/x-icon" href="${static.url(MicrositeConfiguration.get_microsite_configuration_value('favicon_path', settings.FAVICON_PATH))}" /> <%static:css group='style-vendor'/> <%static:css group='style-app'/> @@ -54,8 +59,27 @@ <%static:js group='main_vendor'/> <%block name="headextra"/> - % if theme_enabled(): - <%include file="theme-head-extra.html" /> + +<% + if theme_enabled(): + header_extra_file = 'theme-head-extra.html' + header_file = 'theme-header.html' + google_analytics_file = 'theme-google-analytics.html' + footer_file = 'theme-footer.html' + + style_overrides_file = None + + else: + header_extra_file = None + header_file = MicrositeConfiguration.get_microsite_template_path('navigation.html') + google_analytics_file = MicrositeConfiguration.get_microsite_template_path('google_analytics.html') + footer_file = MicrositeConfiguration.get_microsite_template_path('footer.html') + + style_overrides_file = MicrositeConfiguration.get_microsite_configuration_value('css_overrides_file') +%> + + % if header_extra_file: + <%include file="${header_extra_file}" /> % endif <!--[if lt IE 9]> @@ -66,15 +90,16 @@ <meta name="google-site-verification" content="_mipQ4AtZQDNmbtOkwehQDOgCxUUV2fb_C0b6wbiRHY" /> % if not course: - % if theme_enabled(): - <%include file="theme-google-analytics.html" /> - % else: - <%include file="google_analytics.html" /> - % endif + <%include file="${google_analytics_file}" /> % endif <%include file="widgets/segment-io.html" /> + +% if style_overrides_file: + <link rel="stylesheet" type="text/css" href="${static.url(style_overrides_file)}" /> +% endif + </head> <body class="<%block name='bodyclass'/>"> @@ -82,21 +107,17 @@ <%include file="mathjax_accessible.html" /> -% if theme_enabled(): - <%include file="theme-header.html" /> -% elif not suppress_toplevel_navigation: - <%include file="navigation.html" /> -% endif +% if not suppress_toplevel_navigation: + <%include file="${header_file}" /> +%endif <section class="content-wrapper" id="content"> ${self.body()} <%block name="bodyextra"/> </section> -% if theme_enabled(): - <%include file="theme-footer.html" /> -% elif not suppress_toplevel_navigation: - <%include file="footer.html" /> +% if not suppress_toplevel_navigation: + <%include file="${footer_file}" /> % endif <script>window.baseUrl = "${settings.STATIC_URL}";</script> @@ -113,3 +134,5 @@ html.escape(enrollment_action) ) if course_id and enrollment_action else "" }</%def> + + diff --git a/lms/templates/navigation.html b/lms/templates/navigation.html index bb847ed09a3..9f4f5f04eea 100644 --- a/lms/templates/navigation.html +++ b/lms/templates/navigation.html @@ -11,6 +11,8 @@ import branding from status.status import get_site_status_msg %> +<%! from microsite_configuration.middleware import MicrositeConfiguration %> + ## Provide a hook for themes to inject branding on top. <%block name="navigation_top" /> @@ -44,7 +46,7 @@ site_status_msg = get_site_status_msg(course_id) <h1 class="logo"> <a href="${marketing_link('ROOT')}"> <%block name="navigation_logo"> - <img src="${static.url(branding.get_logo_url(request.META.get('HTTP_HOST')))}" alt="${settings.PLATFORM_NAME} ${_('Home')}" /> + <img src="${static.url(branding.get_logo_url())}" alt="${MicrositeConfiguration.get_microsite_configuration_value('platform_name', settings.PLATFORM_NAME)} ${_('Home')}" /> </%block> </a> </h1> diff --git a/lms/templates/register-sidebar.html b/lms/templates/register-sidebar.html new file mode 100644 index 00000000000..96f9d5d592f --- /dev/null +++ b/lms/templates/register-sidebar.html @@ -0,0 +1,53 @@ +<%! +from django.utils.translation import ugettext as _ +from django.core.urlresolvers import reverse +%> +<%namespace file='main.html' import="login_query, stanford_theme_enabled"/> +<%namespace name='static' file='static_content.html'/> + + +<header> + <h3 class="sr">${_("Registration Help")}</h3> +</header> + +% if has_extauth_info is UNDEFINED: + +<div class="cta"> + <h3>${_("Already registered?")}</h3> + <p class="instructions"> + <a href="${reverse('signin_user')}${login_query()}"> + ${_("Click here to log in.")} + </a> + </p> +</div> + +% endif + +## TODO: Use a %block tag or something to allow themes to +## override in a more generalizable fashion. +% if not stanford_theme_enabled(): + <div class="cta cta-welcome"> + <h3>${_("Welcome to {platform_name}").format(platform_name=platform_name)}</h3> + <p>${_("Registering with {platform_name} gives you access to all of our current and future free courses. Not ready to take a course just yet? Registering puts you on our mailing list - we will update you as courses are added.").format(platform_name=platform_name)}</p> + </div> +% endif + +<div class="cta cta-nextsteps"> + <h3>${_("Next Steps")}</h3> + % if stanford_theme_enabled(): + <p>${_("You will receive an activation email. You must click on the activation link to complete the process. Don't see the email? Check your spam folder and mark emails from class.stanford.edu as 'not spam', since you'll want to be able to receive email from your courses.")}</p> + % else: + <p>${_("As part of joining {platform_name}, you will receive an activation email. You must click on the activation link to complete the process. Don't see the email? Check your spam folder and mark {platform_name} emails as 'not spam'. At {platform_name}, we communicate mostly through email.").format(platform_name=platform_name)}</p> + % endif +</div> + +% if settings.MKTG_URL_LINK_MAP.get('FAQ'): + <div class="cta cta-help"> + <h3>${_("Need Help?")}</h3> + <p>${_("Need help in registering with {platform_name}?").format(platform_name=platform_name)} + <a href="${marketing_link('FAQ')}"> + ${_("View our FAQs for answers to commonly asked questions.")} + </a> + ${_("Once registered, most questions can be answered in the course specific discussion forums or through the FAQs.")}</p> + </div> +% endif diff --git a/lms/templates/register.html b/lms/templates/register.html index ce054725f85..5253b7af616 100644 --- a/lms/templates/register.html +++ b/lms/templates/register.html @@ -1,4 +1,5 @@ <%! from django.utils.translation import ugettext as _ %> +<%! from microsite_configuration.middleware import MicrositeConfiguration %> <%inherit file="main.html" /> @@ -13,7 +14,7 @@ <%! from datetime import date %> <%! import calendar %> -<%block name="title"><title>${_("Register for {platform_name}").format(platform_name=settings.PLATFORM_NAME)}</title></%block> +<%block name="title"><title>${_("Register for {platform_name}").format(platform_name=platform_name)}</title></%block> <%block name="js_extra"> <script type="text/javascript"> @@ -76,7 +77,7 @@ $submitButton. removeClass('is-disabled'). removeProp('disabled'). - text("${_('Create My {platform_name} Account').format(platform_name=settings.PLATFORM_NAME)}"); + html("${_('Create My {platform_name} Account').format(platform_name=platform_name)}"); } else { $submitButton. @@ -92,7 +93,7 @@ <header> <h1 class="title"> <span class="title-super">${_("Welcome!")}</span> - <span class="title-sub">${_("Register below to create your {platform_name} account").format(platform_name=settings.PLATFORM_NAME)}</span> + <span class="title-sub">${_("Register below to create your {platform_name} account").format(platform_name=platform_name)}</span> </h1> </header> </section> @@ -104,7 +105,7 @@ <!-- status messages --> <div role="alert" class="status message"> - <h3 class="message-title">${_("We're sorry, {platform_name} enrollment is not available in your region").format(platform_name=settings.PLATFORM_NAME)}</h3> + <h3 class="message-title">${_("We're sorry, {platform_name} enrollment is not available in your region").format(platform_name=platform_name)}</h3> </div> <div role="alert" class="status message submission-error" tabindex="-1"> @@ -241,7 +242,7 @@ % if 'goals' in settings.REGISTRATION_OPTIONAL_FIELDS: <li class="field text" id="field-goals"> - <label for="goals">${_("Please share with us your reasons for registering with {platform_name}").format(platform_name=settings.PLATFORM_NAME)}</label> + <label for="goals">${_("Please share with us your reasons for registering with {platform_name}").format(platform_name=platform_name)}</label> <textarea id="goals" name="goals" value=""></textarea> </li> % endif @@ -294,50 +295,13 @@ </section> <aside role="complementary"> - <header> - <h3 class="sr">${_("Registration Help")}</h3> - </header> - % if has_extauth_info is UNDEFINED: +<% + # allow for microsite overrides on the registration sidebars, otherwise default to pre-existing ones + sidebar_file = MicrositeConfiguration.get_microsite_template_path('register-sidebar.html') +%> - <div class="cta"> - <h3>${_("Already registered?")}</h3> - <p class="instructions"> - <a href="${reverse('signin_user')}${login_query()}"> - ${_("Click here to log in.")} - </a> - </p> - </div> - - % endif + <%include file="${sidebar_file}" /> - ## TODO: Use a %block tag or something to allow themes to - ## override in a more generalizable fashion. - % if not self.stanford_theme_enabled(): - <div class="cta cta-welcome"> - <h3>${_("Welcome to {platform_name}").format(platform_name=settings.PLATFORM_NAME)}</h3> - <p>${_("Registering with {platform_name} gives you access to all of our current and future free courses. Not ready to take a course just yet? Registering puts you on our mailing list - we will update you as courses are added.").format(platform_name=settings.PLATFORM_NAME)}</p> - </div> - % endif - - <div class="cta cta-nextsteps"> - <h3>${_("Next Steps")}</h3> - % if self.stanford_theme_enabled(): - <p>${_("You will receive an activation email. You must click on the activation link to complete the process. Don't see the email? Check your spam folder and mark emails from class.stanford.edu as 'not spam', since you'll want to be able to receive email from your courses.")}</p> - % else: - <p>${_("As part of joining {platform_name}, you will receive an activation email. You must click on the activation link to complete the process. Don't see the email? Check your spam folder and mark {platform_name} emails as 'not spam'. At {platform_name}, we communicate mostly through email.").format(platform_name=settings.PLATFORM_NAME)}</p> - % endif - </div> - - % if settings.MKTG_URL_LINK_MAP.get('FAQ'): - <div class="cta cta-help"> - <h3>${_("Need Help?")}</h3> - <p>${_("Need help in registering with {platform_name}?").format(platform_name=settings.PLATFORM_NAME)} - <a href="${marketing_link('FAQ')}"> - ${_("View our FAQs for answers to commonly asked questions.")} - </a> - ${_("Once registered, most questions can be answered in the course specific discussion forums or through the FAQs.")}</p> - </div> - % endif </aside> </section> diff --git a/test_microsites/test_microsite/css/openedx.css b/test_microsites/test_microsite/css/openedx.css new file mode 100644 index 00000000000..0ad6d424770 --- /dev/null +++ b/test_microsites/test_microsite/css/openedx.css @@ -0,0 +1,15 @@ +.find-courses header.search, .university-profile header.search { + background-image: url("../images/background-image.jpg"); +} + +.course-info header.course-profile { + background: url("../images/background-image.jpg") repeat scroll 0 0 / cover #F5F5F5; +} + +.view-login .introduction header { + background-image: url("../images/login-and-register-banner.png"); +} + +.view-register .introduction header { + background-image: url("../images/login-and-register-banner.png"); +} \ No newline at end of file diff --git a/test_microsites/test_microsite/images/background-image.jpg b/test_microsites/test_microsite/images/background-image.jpg new file mode 100644 index 0000000000000000000000000000000000000000..61da5545c1e5eb65731ba0ef9b8627597e977d1c GIT binary patch literal 160660 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%0D(eoh)%6mY%P|xM zlT&B$4+wLZDQqM^g1~Qz7qz+CSg$3Y9@{OGAM<*waoakS9WMm)PB<IIqSP>xnCFTI z4sy9;q2_EC#FG0L$${pr_|+3Qc4)i(*I>{v((Xe#VIXgw))hPx8nqCUVV;KM*I<;^ zUN;XTosZOTX|<+kwbNEH?W>wIrTsXqN?uSYS)<;|H;m*%ZERlH`_3h}@mv;^wTm1x z*oT%*D(K&U0ph2|Esu{}G8VwSLs0nH4r|qoBf#<Z9J00>ss#1rzhnrB9X%0&%(m~k zP$?&2m41egr@A;Z#al_d>s9ERJ7mH26uU~eFghEG6e7cVa=-(spb^ZxN{=r}R%Ptn zy_s?=x_z%c!}0Xt_W~#A(5D6JGh3w*h2llth=(QG;5O8Wa;bn#-yT_`{I}Vt8Mt0s zC&k<ukkXtL_vCw{TFwam!N}3n!r@*q^RkzewxPJ6!xw2#tj>gunFf|_3B8C!^0UjS zb)HJ<hxUC7Vs_27@bV3t&GkSyzJKEML(@@$;lfMK$JSCXI%t#WE>W@OxQFxXpY@Dm zxMz+Rw<5no)P+1O{Bat-rQKOF;~~!;x<O$CQ`q~5N98k*Rr>Cm@m#kHI@qar@^2F7 zq!K$f@r;&I>Jmp)nr(?eT_We20-_v8aX)&}ct6nNipWIlcaF8t==GL#AH^o5dC!#h zsMp782D)p#k<)lVVd3PBF}5o#mb3iC#0fIzrsjOW&VcO5XlF=ymq*#;QM2|@iH>l@ zCW%l!W?Rt<N)2bivvs0H>Tt5pKnYT+Vee!V^s?sifVfqL|6fZk<@NPCC%N(z!@U19 zfk_%P)Bc@dr2b6k4JRGK=H}BruAF8ry?E0$j;HsW96TYRja~FTWa^ZoKju<*@jEQy zsBCvm$FF2@IjJ`pDPZbj2D_lI3*Vvo;)XBkoh2HXjjtuxj;9=BZ65!^E9PR^g^H%d z7tU$kkI#9uy!aWR`<vupGu8GG>T?v3P@znaaIL&kuZr2;8O?Fo_v|HFA-2LSxZ(`? z9zSV<Zw*{|ea_}nYr^4NWz|9g1c2H_rB!Bl%!xS0J9g(FS&qujITVs*uYni@qUMW( z@i9a3Wp&^LiQ+j`O=(c=N)s)cdc`VN7j-L_voCd>8M)cM@#Ck|enydWoMg_c60nE@ z_I>>N%BJdG+Xp?~LjNTDX=)uJhV{6X<)5SV5xpUe&^9ycsm{kw)FmwMKFn2j_LSOl z+zlP&e`LzMR>-isvgVHWcGs=hpc<bl+IQVmEPxRp<7?WMP%jZ~S2N28^sG9VCAIgw zMp~DSvHKS}-suxrWNtjS!Q}j<hu_06=5LNf7`xs-{k*$o%(adOrE&ks@w4sQ^hg#% z)Gzx2(|uk24RP0OrrCp?pl5m}A5tr;RGfYK0q4MdE+4D#*spw>I~J|Np5GejsHd(o z-l~bAYD9t?KQ*j!BZ~`X$Wp-CJU+=2j(TG=%&-keJu<LU{j1$DEesq;3loUs*U4iL zP?#vVVQ0M%QMl3sXq=g7A9j{iU@NlAE}?T$kYP)_;2#^_y6Q^2J;hen77;Ia8!nkM zkP~lIHy1NrXh0SlEI&N~gumD45DD=P2@Y-Fb=79tra+n~@y-Etr#LGxO`@6RwE|$W zrW|#zCDcBCkr_ynHhOopwl8Nj(nk`mxdu^Z4^h`v?vOraN$k6MDxlX_(ReN^$<FbU z6@Isoy#0A-@uuD|Kh6<)Q=4O;e63ytm+mTFE$Y#EQZnA^)jUZ~H_#V-W*g@F^+uWL zvNAxU&{!CgpZ!dp1LoovxYps)v&B($h~!n=7`k<V!rA3zG@h~alyG`i9r3he39QRA zb|C6HKV^EYY(@xPcqmzV;^5qdp}Hw=FAMQBsl593PyM08wUwJShRxy#g-40Dt(-7i z@dd53$&h0!(gy)V0B_xDT{4mgzE*da@Ay4}#qsE2s9=WH@dG1T!Ct9kZu_`C!5%lC z)+XYXu@Et=Y*UNNlgHN~nxUmbd@D8<9jVnx)%=@8|2IkWskjZs%)Qysrd^VEKcTo{ z->d(NXw4;?_EQmuzV1UC3kx&&wosYVoyT46IXt_mypg|2<j&iLB@I)sYhM-py`;L5 zVtem&nwmT72j(Tjl(28Pc6_LG+Co&~ZkE48pS!?OWJB#a)_7QXS7dzEuvHrf$!RRy zkon_)|0$?MD-}gwj)Y|v)_H_Lq~ylDo$qs{7k8+AZ*%IF9;p}3(u`6Jx@Uj@0y9qS zz|`YP2uJ+OmPJZBi?r(+ISkG0@=7OPtuXz}kDv9e$FOL78y~NqRhm&rdaxo!#}1-4 zn~s|7wD<@1KwUBO+sG_cnNY6zDeX6|X*Yrg+f|UPv=iD;&I`|rWt_lc<~KEaS!u(w z1f~f!i_Z9Z=7&vf)X}}OI<0QAou}e~)c#!bEhab_2#sB%Z&3cm8}l>vbLo`WOP0Ph zeP4UK|75WcGDvOo$P;Iz+!Vd4q+Bi*a#PC~>npw|^l7MXiQK$q&(rg21xVDOTgIL? zZ3wDi*Fr6SDn+__o;hx}dMJ3Xo-=2RZ!}uN|IHgXzfB%+?26c+)5HPk1M9_Grl&v_ zf$`$tZxSMKVO=jUm$G}UP|vzA@nL%>G~+7H-x|Tfb9gYwnp=E|cqkG=mHcYo&A%oz zCS!Me>N&@VFX%9h*rUfkaFPG?G%9?yA_kkOL~DwfEN}LJ>rLOURdQxV>X{e*z}&2_ z)#@o$EJa`HL^wqaRYBNvEI8r6dfnv*$dfgB6Kh0^cD&y7gN;VBX&dAMZJHJrt32B> z5PhWw5I)*wE?0cJzC*9Z&6<1d-Ht;O$j?rgiN@V+{R&zrpzAG!LU^I8LP6(GQ<rjj zOvXwx`~kbJN8OzK=VBKFfaU9_e32*{_^e5DruHXD(9hmas8D8mS5<gL=x%A$`^QxN z8kQl_1@#AoIaipQjf1o-ne;h3!K2Dk|J_bk9mSaF3AR|9%ln6W<55OCo>xV1YWLbl zsTHm@oCp@xwbs5iS~g1#FG%ANq@I4rjPWLxt9;k`fd>>Zw06*fzA|Vf=Z~5>bnnxa zzDOOgv0V1@kaZeS^YZ1IsgwlDeR1T@z%t!@7w6yjf#!YL$rN?BYx#4gq@VM*Sd18L z5K`tdTJs*c@oQ%1u-74kv#5XslQeqei*L77{45K(aZZg72m<K&-x$g5TTBy?U+QP? zpb~zSp=r+(rkpmEDlPJMw_VFt#PPbps}!nOa6~iwcr7rg*#Q>8ysw`x1KsIcJBg)< zc7cPdz7;y9i`V3_xw&52l-e2@-JeBYV@{OK<)78+b5g-$s^LJQj8^t4m&HW~TbxO& zYGgFVtaH9TstT8id$?bA3Qr@b>=n}LPSX<$O0B)4$P|pUTAN$aWHKy=G2iVRl$*Y2 zZheZT_D=SW;@6CB<#<m{ZWuI<pIRwIZk%FonG+N-oaV20ZaipZ8sHL=9x^PyQQ%G7 z549W{Zgp%=N8O%)55HTVGls3ho&?n;XWizM05FmNZsgeu8f$e}zM==*>>tyB7Tk9W zydCWGzXKUM$$-AI&i~+|p!CG_6nvRw?F}S{+@>x$EP6+t3OASzFAg(!vjS3HATZko z9@r<VA1H(BJs_4EM<k@!YH22&$kDH_(SJx4x5|3MSv2DB*$V*Qn&Pkn7`F92i<Tep zCKfTRNba<l)<6b+wN^jnW9F#eBrNVNZ9D>&f)=Np@^*sTE$NiMCa?RNT}^P@Hg2CX zmjGWpa>ER8R|1|2EKr!I9EPX54fy`@`IwkY!A>+9ptbJ3#xq;^8D$E%KI4q;T93(C zJLgRf89?FJriH%IADQ%VrAG+%nqZpG`x`mb5!Rs)B3rBVv;0||q8{}J<(v_lAv^S7 zerkM2#~i$0pF6cq7&AEe;9uOi+PthdD+NC}XgZR;%)r}HX248j892;iGiWO;+W4FE zzzE?)Cwj0na4?!Ct--)1vC!HF{NM8C;3LO;?~MKNk84Q-tNe@9;z$E6zw!MjQrw#B zRoocP6?3grv9l&yWshj3XKvz4=>glzihj+00}v;1(+V<^V)g1~PYX!riqfeE$9LNU z85=jF<@$x`{2Q2k(^I|^ogI7Ydd@k4x$8RX`b&rH8X(P#;2KgduprF8JJdBSP>1A7 zb_FY;jujmD?*Ce{;LU^M<BB3R9;6|LSCJbd`2Lfsf1@0Tk$!verFc9L9v6tFL0Ue3 z3Kod^{9b4LTCF`TwmaYaJ7J?;xI8W52Zfb|4$$M;0)B!=+7Raw<TWQx%<I-oaBlc+ zABz!te(N_DZV4Z7@Zh!=vJD-m<s+sYyy|$Q^UkSpT5x771L$j$00BY>ilc4nFsb-W zf>Cf_h?sbVl?>49FrP4Ih+8*_WV;RO$CrF4<ZKUxOb7sv9tJS@J&>(*X51~ea*BwH zJpO8>a<=HZ-e=Nu1<7(d0e;aBt3(Dh;TKv<kv>4^t5ux=NH&B_GbZPb2r$t%wGYP0 zl`B_#?Y{reJF+}SExqEZ{McW?jJ6AmgAYzJ+Ioxd53d|{qnl_px`kWC!NVfl0Hz`N z5^&8Th$0rgtYGw9)`i1%*274u)WP-~bFow5>w0b}AnOj%_5WBp>$oQ0@BbSh4P$f* zY;;JMAdC^CyF)spQ$avr#71tEG>p-ml1j@cNhPHf5D}3Q(D!eCzP~*lyC3^we{A<T z*SXJio#%NSTxaBDvDd@}{(>Vx0}=FUIgS&}m5wcZXvLq_*#rE-zklGELnMWg@C{)u zc(B7VL=uEY3-G~86rO~4wMkd}>;Fe9I_;bdo9bYeZ*PnLK)1t`>rZiwlpK^CrbeRI z#dnX|ud)^py=92?)6$C}H_cG?+b;6F&o;kL{~g_xzxjt5b>mUJlZ74;d?TB-grImt z#*#P_br!wan<oQ*$#TFKt|H@U(~s?W_TTP_*}xS?uYHBjcg?vX9_4>odzao7h{uou zqz@D+8X1x<LK1E%t}^X!j6L~m@F#p<G__}ZOBLVuykw^r!k-p4U7$Q^Bt??P@T&p; z`?<bSO0I>cTG&jQ=Head_b2$fK*isEUXSfg*Z%$8G!h4;PHm!?Qx29KQRGG!Ki=h1 z#siLw$>>JIv(~!taN<9{#CD=#?_U)zmqFAY+7L&Sc=5EZ6zDUutUG>e(NwMZ4Bnl+ z7M`tMm_l`8r^e;7oSQP)Bl?8{WvB9EDahr25S8O-+($as$lxv`zY6mqje|1YRdKxR zg%2!j5-V}uc=_bd-yLhxq6(<<jjMeJ{-XcyqIThI@3`5O6_HDgipb^s#}NJx*o2iY zWl#QN$0q(iNT#=%7qVtzoq-2inCaCm@SI_ikXxXDco~;C#2Jp?%w#q<93gzyGMqCc z7(`rMCUOS<C7AXB#sb5N3rY|s9qBCaRAD7twvJsig8}S7MHz4G%Hq3DF_-^=315+J z*lX^3`M=P2)Ppb7NZ~_Gwh$6z$xJ)CcWBciGGe>@M825whmga}JI){aSAG}k#k$w@ z>vpa&9C@mPt7FfD+$zO~m6lX{gzWbI-4ahzmp77l6itkL{j|Kg^+gcxwnYK8=BiJv z(Uqqz4N$Wnz-}n+P|F6%@Xr-@ehH=*AA^tdBO3PJIE=DG*bnC%<H>~BzYTisy)gJt zDsH@euv=sEb~}IvWn$6nia#bQlK$s~qd0RekLmDFYBL2hYj`{UGbO&7s)(3;OBdv_ z9Kz){n=i|Kfer^JR~YhbmA2M)0LGVQETljlX;%Zd9Q;@Cored4!Qk`cEbGrmB{)W4 z+&cKN+0E$%uK=m_t@>nBmznLB4!APUM5j$Lx#>cj$65WK?f#k4{+|`q9^yZLu^4+h znRN6=R&9Xf$?{-i0T)&vG9J&M;@9GlkuB;k)d^T{xWnNHyj5T6Y2=IH>2SLRwG1~P z@j}M`Fi1Kf1WeS6RW)g$<;aN9e4x_FQ?upB>i-a41FfrRpy!8>0OJeED1w6+OtobQ zKi5RF%hG%YgDCth-rP2(JNSj|Sc~W9L?$P@s;kY$>~?Z+Dg&&hqwG3LYp?xvR%ZP5 zjAS!$Rca(u9lMoMhgy7^4sl*XlzV>q4Tl_@$I}9;w>XeN&F{hV4lr}ZI&?jIx2g1d z4?cTqI(X@Wj~x>D$GqdO_x#Qt?|h{K8&MXGKB}MXuJFmuevs$HjYE4KsFCUYgYmF~ z<fbCA=g$NKtuqd~cdpbPp?mc-@pDVj*YW|JyC1?VhEm>?to>x&?nT4nsqT6;bR#Bw zTHSSxJ$n=%C1g<Xu;K7#GfJKB+(aIJ!Hz|A@hvTWA~_pPY^spXnv(IcIrP`x#Gd5W zLMPBCC0>S6iyEzSv{7Z7AO6g;+6gH!9}rr~RtxHM1y*~oi1GJNGgrnY8CmVHo^g3* z4VDu}ybE8&iAZAIj1FBPnXs&9U8TWmnd9>eK35h+I7gT+db!$h@N5vD1MrjhwtAY; z8ZR58|JI{V@Z<nY&l8TJ6~s49vI-kP(Ycv;Pn^`!DV6L@t}wGqy*D|2L+@NjUlu>| z9xVM~MdfO-g|FS^A9a~rH$GX{KwGLI{g0XvN28$APbl3EGEY{-TSm=vhaiK?#`vKX zz<<t7H`6USC`vJIXcneznc<EUt|T|mc7>$!UDde)3$U(($1aC96?9<1u$@voMPPnn zu|3o5#Tok(i{GC&{;eJ-j?y0btMQ#yf&aX5f;qwCZJTDE%NL_Ko1a}T1&lD?S`fw? z%)ZuHqLg1unWZ^iWgOykMV&lF__|w0$bJOJZAp1+(+fOr8ftiKq5A!1E<s<|aTL$k zspHq+Kh9dcZ-PbI0{=`NXK0X?zGZoKx3v|l1d7}k42Y2D=KjeR*Sa;%o|u8SE~`7K z*3_oUL~T`h$TUKJg^`>K_X*c<52uQNOS7zsuj5PORA;-RP|uY}H!XL<-s=7q?(x8N z92ew{R`hA+#q&SG<?9Q@(W6g|zs1Q&mvsGY`_i=ScAxfT^)r$KE`}&bq;XP~>L10T zVNBo}qV^9hR_z(mzPAc_JbxLvk)YXbtJ4tKA#G1{CKbEn`^;0e;V5$64e_mu$L(0( zTYss*@K02ri|@Rnnl!`T8`elrPUT;Wzn-|+u315DfP{8rK%>|T0rs9X?cL2(yFF$X z8$N?55!<H9ti0U?bn`)+-^xi#Muu#uY<gZ?<ln|){<o`VgF0J3Nw2C3yhmY?yT#(Y zqrLpvwX(g>&71YF;UCVOR#Spbec0P~uOs&wb{9<KAA7<Ih^PbT;*f)gDu$v`)0@8r ziy6qb#l6lAx04uSsbkN-FlB6S!GCu`&#eonE4sxewsIqJohE(b&x0<(H@s`xCzjXt zw@Ax}i|g+^SUD6Uqh6T(cc(`<<>koB5fStM?!3aYFT;2E@qHF|@j^!r{?}shuRj*w zAdA;I0vI~@qaH?=HqV|6Z2f$s{Qr9@?mpqfpL_Gf+CR#_IM{ghq{2~izfFA~dA*{U zfSFym`23l0Q~Pb)rd!Y4=o^u9x`{rhAz$}+$r3`PzO$M@@^uE*y1d6pZ=xw*Km!_h zE&OzsHFb~OcBK0_u&1D5=W&xZBW960GMjP`Sk<5aa8q+4a6i*k)J!)ofoHdYbswr~ zkup6@As?%&;dvU)jtS5Hs^2w#tc2GG>0C%@CqvZ-8n0#irm9Y5IDm1iDZd?!NH%nb z8`Dar<NWF*?K=ZP8KzQU{8fkA!E3<+OpbK7<S~!kj-Q2b8qA~1Va_c^QijPX7Goz# z@B#-`4W@qKj8_5LgL&G|G~ipn%BfW9j`r#m^|g6t+fN1xaD&I>azTedqe*Q%vZ`jo zH*EJypcYRxliBY2B?VK2QzeJ7Fw2<BBG%(*m2vX@^*u2d`d$L$5IxIE->VAgeL1^= zG>Pa(Kb)qwE3muhP0Irzk3n6}*LD1Is_HpHTAB@T{v+KS?lzmAZsJNu)za2dF#S?# z{6MKbV(hXh`v`0T>DIvSt+o;%WBG~$+`sjI97@~~rA*RD<pFWK&N3@fkBk-RguA!J zNLD0$um;ADVW*fL_lW5q5zkKv2o{y;+bFbb#souz1cu9e$WWmT8I=$7yn<zEvp5sS z1&JQ2SDd)4SR^=b+L*Jo;Rqj74Ybyc8Q(J$KjRl#$ZX{zZb(=D1~zu2JZqnUoK%M2 zLJSww#8-?p+)54Tpa>N?mW&e;ig-d(jWQ4`T`CzdEdk%dn5`7b6-njeCnW4VTG?ou zqTy_=AXE=Qi={BmIhk0*7O<C@QBU!n)@94Y17f_ORnA7R8qC-d^E{`rfdQsj8DMu* zIQcbH&URGIF_fkYed+whsiS5$I#IZV#mr@1bG1~fS_~a&srIZSP6ed;#*IIW?By3W z%~eOE+QMCCtuHQdeff>!(Bnru(e1~Hzu||KeEs<h&y_~-)j(qv-ea1##@AuR^BC1E zf2w}^L#4!4rGd-LpbM#p+KL~HfgIA#(#Or~95DJ^epk%E(x2k7KgIs1BE&N-zX{(K zsb+;R?G|itX9r9hT)Odge&hK?-TBMlOWveHy6z$j<{TPk^?5WvX6#+kh2BpQxC?C% z<OoFu7ZDlTJ+r@egPNefRhg}edj9oNj&17GLaW-f$ZR@usTe=a*b<1Bh8o4C>PRRd zT78TV&L%OW08`W4H{w!}=LShCySHPEKi!7bDOO%t9NL|1#`LF0N5M%?v>5uZ12Q_% zFRvVk86$~;)9jj=$#yz8ac*71!m-JoW1BpW%M#Q$?hLeW2GgOtO%sQ*mrIJ$6^LbV zDT2fuoB}#Dq66kvc37=3K(F*!V)0$j$3au?9*V%eWsi=EsZGC0A@tY_b{M~xc>&T_ z)FCKSY>21j(a#VgtYMZT#?<n6bRnJMd-kcsnp)t(?iMACGsV1GW{`>AulQSO`t<!+ zjf0UgeMY|+*u8*O5#>KWSb(t~#h$Zw20v#^D%6ezAV#1=aNRYWb<k5bHd0@UFZ?-N zPD1RpCW`d681CWSq!Ie)8e(UyGL!iy+dXgJ5}2uW&r$&Jqfi!;P2=5H1BiUN*9m@W z0FQ&h3q`&zoW&z0mC6#P`MKLJ0XMy{GezMl&KoV%w-hVZJTCE|2T;U;LC6nkcf$eJ zkUk;xAUiq%6s@(&Vxry8fZ6@H9dhz8MYi`?GWA((skh`p_I7}E>L&PDdo8C+7`OJ` z#kgeG`HlJ+DZsEpG%--62I~Vlvh)}$K&b<{esZ^MdQcPPYh`nmijmC96Mh6fCzY2R zt;1NCE-+(wyW|Kr56J1>@JP$<^{;<A^Qx6nXrb1W5Xh(GDI5nq)O+STg;J8@w!2Pv zec-l5!Imn*M)>kx%|dYnHPxf_Hr+7G0TwQ2W*IK%W94J4&H<OVD_A1(PSHfO5{ZYt z_UkWl2q4b61@_+^vOZM=pFmb1mb#V^9dlWfn5ngv)g>6g$?k0Kwv2l31p0m7rDy2u z?quP_jv_?Scz%T&l3(mdfb9Wji&%V33;e3-zSib-LoM7xa7whGnR9<%^-%K$O^saF z%jeYF%d;jsTZymY5&#>n>ZEH#ABG0I6uPPttH9I<6z%ZV2@7(Mi6f<?vS`Dr#~_5g zf`2yp8utj1{*`3xj3iu~b=V&kyn6lKn>}^M>iSc87#U0SqkN}CYYk#d#m=j(nVkFT z1hm;hul&F&DjmCyxw0`W?Xsq<O&Puri-#){>Z4F6ooA|iNu`)MNk0gU=>r>hmHTK0 zy(wew5a42}Ltvqg#>WC%n{%TwVopMq8S1;#s09*FT1$;pomf9X&{KSM>4}zt$%N;_ zc|QK|$9Tsq-)omXl&3OgU_~1Bh|Fa0c`SK1eT{Z|VCFLcD>SF-$or=e_YnTCIg|Ma zh~j1@bIzwrb^KfAvrDO_KHqE~eS=l{x`|w$j<V33!)H;>W!-;@LyvgOG(K@_$Ef_J z{Y$=igxDX{!OF4a4B*bL=HFF4SpniMpOlEMQoIRVurPbH{kF}p0)bR$ZXpYMP!?$Z zReO=WXXvSga{I~&+<YJ;-{6RwtMlx`RdLls*!hwhG(J&~TkVmXnfT|l!4C$#^1-nS z9$0h`&bK1bbFb<{s&+aXGBGT)`C-$UJOg4wqii<K-s<cl!8EUWz%|uNpZBs~-5!2@ zFs+*Y#f@_k*R`5Nm9_B7;Msleb=+Z^1?(Gn_d$xAO_E&-ed`WW0DYerriQfqeDkfv z?TmV1hp2c%wU=IEchgEof1V6YRai!+=oSFjA>*h63D)3dTQKB4di~6yI-E0Qp-b<P zxbp%9(Zky_xzq@O;eXz0DO7D#9xB*nd+RLjagS$f$uXP#)0MSiC}O|xJ557!z>{zt zv0TyfSpuH;BeOGzOHfDk!#Rt3k=Ip+e#5L=V|~gpn?^5VTe455pM;1Wy+lX@<vd_B zJ+x|c8O^&#vZDK`jwau#qU=UiyxHK+V`n&ahQ>vS1$QJZSt3x4#EQiW>NzSUkgVIv zGii`YW&FxosZ!t=gxAhS4Vms{Z;9xYdB*P?GuPdu>TTOMAy|-?>|=pA(G{LQJ64jw zSEgtnlnkMe&8<ZIQ<vD8I44~^K7m%0dZYi$>14A>a1P%9V$uXV@&jB@4+mQ8$eytZ zLH6}3A|>A}oX2$NCUG0da0YyYc8smi!x(1z`}<4hS7~P}mJB_gOQR31u_h@~Qgi~} zJZ4?;QDi|<WFnF_Lb&Fc9MTVV7Ki0daAymW`G|xU$a1C;2S%55K|j=&{2!@_nWv+o zMoG?t0#ro0I0a=12LQ~(9jKM)CCWnU3>bwC{C9_0&4E+KQB?3F@xy9Eenp>jMLy{_ zV4vi8HG)DE9rL&4LcK{W7&@gfGve|7xtNW6*mp&P<1=f?kGZ0r?HBB1gR_-?!Wlf8 zDF?*`)71Rm$9+4WJeQ{_^=Xon9IMx$t_XIbHxl4Hdd^>~7%)@P>vuG}VUl`{pT8u4 zkgJ;g{-=#T&O&!zzyEABO=Fv4i{LEL_CZ}i9<kZg%}Wv=xr9f%tQcFp=;QcL=8t%I ziNlTg1aO?954r2TU0TEJun$-%SEYB&AF23i#F4v{ErW{h|Ky)N{GH~%G~m|oTDYjd zUAV$LU)*_*bs^Zcppp-6P9*k#LlU#3l9m3w<MnFnD?L|KEUy@w589dvF{kYq4!i&- zl{CC0>o=t^IJarb_{H*P@kIR{*=Ch}%wPS!EBU?^1vrgB1f|y7+uQV8{avk~#(JFS z;juqCUJGaEdj_dIPtLq!<;Y7)mLAa<$`{@fGIv#fQ|(h-48<+3O=lkK%KD^|j|2=S z`WgXIn0r$b6jJ^^A6=Bnz0C*Cl-DpEQL{5Q89aTO)@=Bcn7teTf5G|l0?3we3J9XD zPLyXuJ%^=L+hS(^7YVe=mL%&7S##JMjV={EKS{$6HDi5YEET!Tv&rp1=ZlxZ`yXu5 zT$tv93Y{<7g;-{@llOZ)#UVrnMY{?R2fP3eRN%Q-nb>A1d&hOr)>A8C7_mv$nTw`N zP&{~QSe#B=ygk%Kz$TAuP?&+F+O=o{ao}DW_PqGFtC;(dwIcP)mreXnFDN<D%d+aS z6_n!973u>(T}o|Mx4U_%)SAUV0c|l)gTtPXx{?G4e&TIAb9?(!JzKljo=_)u{*xko za){fm&D;mWwfM>SJp(L;sDfV%l5!AWA$op-+2VFC$`mH7-uDuj^~5h<bH?NhOn~&$ zus-ceq0^KIc7pNUdYtM!chDnUysr`Ko~c@o=%pHxswfe>*YBD=cE$!XXQkG8-w+&B z9?~(3N|df8ybq9r1~7+TvTpgQfIDUPl$T|`cE<cHQp@P6-1RSHxKeI36e`Lk&z&`Y zt&TvDKrv>`y6kBKKakU9$|W#RLcdf>5z+f48^!hyZR7**of1|}_vGGp$5*}VW2EH2 zfMQpo7Xk`UrXq=k=4^U{ZWM1aNt}m{ppm5?<wD?y?riy(*s_v9;U4O~rEej;;mr$2 zs?~0))4|RCM*Di3MO&Fv87ynQW?~*OxC5dzSxk~}!l4`Aw@TheZ<r~~a?NRCU+>E4 zsnjNP?FWXj!l4K3a>P*gv#{(8L(+SYD!P(m1@<5BLF;^B*DXO=-TYk&iQv{FaoYUg zJh4br@n@3k9~9H`tc?yS1V~KR!MAvcxky-bfZ*eF$wRsHVBnO}wjexiXrUygKTDYZ zVRMArZai0u9-gUIUJm-K!QnvSHskRzl(_wW3twkH!HFQvzS?bPHfA6T!`3!7;w0ak zfjg69pf2Oqkw;b-k2Z88J!*vngD?cDBJ{aG`-`<HGGs;1Ai)rp-rHw3_}{*(Z>4xT zYFoJyCQ8^SzU5(r*@N=dDm<oiWYHU)+0U$z2d=L=n^JCfv~EG)NMP`t9%&W_n9j4v z2V`nLgB%2gR#-v{AWO0dZT@J!R4!{EXXXoaEJ_&u;-SZ3LIYWwFngNO$6EIiK48$A z?}s0ypN_9sP*u$`Vm;CEqU*#@+^^eTmY;Hy3Mm!;R=WJE^KMS-<53|y+M2{eOM5eF z>}n2#-;fnAa6Ah>oi+~%=t<GFXq7ue$xo+o!X#W;xq$8)_nk1|6b9`Ce1HOHt6qk4 zr`c~avj>rVje{2=)c-sfUmc!0w7i-~rl)9AU3@LE8Ahh{oC(z}@`C9j?Bjbw<`at} zQ}q=W2FX^;Nq?s1XN1TZ6GZqttR@LUxT6?g^RjG1*ij33&SFh~!~vH4DB*5k$8b)r zng=UvVi&Jl`>(>OL)?0(%cfKE>T)I?iz_myJz)xXa<67z$A2-|j8A+NJ^JEaDO$!& zYyx8)BV{2st@2}E?xW5E>%vK@%IaJ6;Dh<mL?hWx+#cMs8|q>;b7a$iHW@4+>}O9N zpGDPq#@cO)I7ST`>CNP)Q8T~DG%Fsx$3R?za8mVDBqHOF<?KMvv#KbMBevD#%NGzN zF3l{G6DNI1aI1fJ;8t|x-0@drHn$*D!2^XH4R)esc1?XcXx;oHg1qQVKh02>SSh-` zYOTqO*BtcD?_JXi>P56<i*H|XIH!J4z0slSW$`m+k%Wco<#P#gh=~3r#ea8R1Zv9* zo27%@JzAh7`;5eI7O#jauig<gsC_OUx_cNOuHV06E-;dx#ot-4tD!u=o&7|%T~46p zF;0gpTWDZFffwRES&CM%3L&Rd!O0O>C_4(tK|2eYOV~Z8cwc_Q6PL#ROD)YR#mq-b z;W`;~?8%NF2i%|s2aNG!+p;A4+?A?{o9wtjyICpK<SoYXrR|R&tBM~$c{I<$#A4L2 z$s1WHTSFryqtBOYkzxFbyK5QGFn|5VE=C35OGW|}2~v2`Jh(14w+hjkDZzrRhgaz( zy0u{LQ@-6hl6$dWhZT7a@D3;0GIOMTlE_yx?wb5J-A_i)OW{{S|87&?cSXPBGdr9g zKCKu$sT0%n+4neXi=g)Pb=;yaU4nF>l17j8itR*Y4jiRHsvWs(arjl5LYmK}lOyB8 zuFEEjiP`6rc&gWG(dgvp7Z+r;51Gp|HVycsf1mN#%1v!k%Ti2Ey`AZT@M&6b5|r!7 zNSaPjHG5Sv3J_$$|FMvgFUNr*CN6y+s4m5oJy&v2NI%@t&B?;R5>`a$i3NjXPg$~# zDcABtAhCD%2f)7ANQQD-eb$kZNWut<TY56i!BJPDUK7w)`k#{lS@(h-Q~B-AD-K-e zf)~EZsTVSz)IKYu6|Vj7&RtWhaagAw=<xRI57KADS$`ew(|I+HHHQ^*|Iz*ptmVbs zCdOT|Ad`f(Tlx5r>R*mTRbEYx?mQsBj}VRB*WSFD*erO5l~0k*t}x-d%DC3~J0xej z+!HDwa4e5KN!gDuqM5Sam6`^2u)Cc)dgmF1W1#Y3P@D0B$WbDZ-pFZtm0=?8cl(8n z|MzZSs8$sfCtj=AmA+2xS@=!O7_KkOp=o7XUUpC1O>HOa&-323r%m4fi;ceb8PQUO z^c~ld+NRk;fY)X?IzT;E90{D55=6C>bvA-}(+DzZy4)(G576`SqWAoGfD{kT&>PBG z(C{has$O3+MQ?fbw$3Dj3GR3Ba+*;aih)GQU?&Z{BGK-6l^Vo`bnf%8t8`~swoLzc z6%qi3<(?=CoihwOG7QxozTa%Kn0b_3+RDqoOWdI+Rz?IkC%eBaODXY6-5c1}sV=yG zE3nd&2y?RP6Tznq0?Q_8Ne_4%l=lR7KWyhM1Klh)44tY8L+M4l$AN0@rDTTW=ttrY z(rW0K!wCAHWgiDJoR}zF=SZ511~WxjxHJw#nbxmU5nkJCSugcys}nd+Cx&q|_eHjs z_h_3(AE1z*ABc<7_<JLz{Cx@6;R#O%J{qiGxk}U8{n7WS7kI$d23pVqF6sf&hY?;0 z$4V74lK<Vo3v<;)%^Cf7M@}W0f%_&ga!#IfC_lw=7|7(MNbznE#=^3oW(D~9m0XN$ z6d#9kuG#B)h2lDBZOX8l8W8&J*_1B>;sFgh+WWkml$)v6dpRy70}F}22oUNzEkSJ^ za^+xWLG_$tRd!w>pOXA&cl|DOa}@8=hw@@=VDqtmI8x<={lky+c*Xzjs9I-0xAqM| z-v^X&vta56L7Lt`Sb6pQ!xQ%8Fu{XoHhHUXHxeK10E_&<boINFa_=ARkz+e_O$&~) zcNB;^Wm2roBS>jap4@5A=z4J4fOv5f1KTu?H&LF<a3DZgYjlk8l(*q)ma9JS$Gpq= zAH?(_@GkQ*HuWu%g?01SYLU?4a*YX;$!ja-VSpfb+2rqYEV7Vlmx83@Z*1WNd!9S{ ziLr%S0cWTMLLaWq+DX0U)<5YXqar@FXk4QqQGWS{ylgE3i_LOjps^0in6q$c_6lzS zJYhOW8^Nde?)}Lbwtz|ZGgOPZ;xqMacSRCVe##75m1M>Xtv<RB<uA1zKNbg5tr$;= zWP=LmtWWqw`#4a@>rGc@fte=h+`e&2LPAnnwzxFW=tB|`N;47!S}(~eRXx54nOFz- zTr!N-L!20d^?`6vrH5qOb{I)9kEfyZa0!PgxR;vKWE@S2wuC1Sr9Hu8QCaHK?Yc~( z7EU7nf=ccp<rRqv(s#Fjx1>Q{`lB?>wX<o1VG?(6LDV7a*n0jFYd4Znzr-?k?^GJN zRedTo7q3PQmyYMLDBFrKNX?_Vtkiz_*f0DYnxBus9xWJA2s3%5Ogm_h@j9^$*CQKF z0)jO#?B2#G5i%LBlWj%~UeOk3y87%iGlUg}Ruu{9jA6>ZT2f1H<Vwml)$nU2w%IiN z=={*hS@w~{C%JccvyeLv^e&oH)BO~h1(svrJ0<$TUScI|#M0m7g6-N3bNY$jpBf3x zO7UP3XqaJ(It$3@W9v*R$X^<yw-W?Xf$z(BTbyCXhDRvsS<VWL-H|npU2n#&7{;jq zBZwuuz!mEGJU6D0F5V!nX4Z3@N=K_o?HJ>XNP>|d7SVd~Fe$-<dba5p$hoCtvv?J= zri~s7#!sCK*J(1Teflxjn2XODRoo~95h%bMRlS~y+iBKE^Fd^hHfWwejaMXhIjT3) z$ngrqD2x?9OyboxxOr(T^1&05{WHWHru5Y{H_*aY$IosOa)h0{Br;B~11JrrM?1mm z1;<|%n0l@Z5^CSZ|J)qwA43dF*p8I>#o6mpqw~UuYEQ0r7WUhnm_;5_>6?v|ePnv_ z0J-1sRcmWfjiilXw_7)_ZAPwAgz)nXCC1)&sq5|g{FzjBkNsdpB?3J1)mePT!?Q)o zcTTv$J(t~(gpV-f#AA(^=0X}4-ofjSVG-o?Q*D-Py$_!+CTmpJ-ivou9C(>ObF)I< z9`*bokM6{7VZ0z$-{PTzHIcJq2&TTXYfR@uDJA>BIVaIRf1ILY3M3Y{{-o~7a{4N9 z*VLNm`hLAQT-dBdb5y2Or`e)w!HUxpvA8jeJ79R5eW?mE!ia}Do`jwLFzPVAN1Iyu zTs|(qQWG1V`+B8C2(cy$Hfo6zb1{LSVt&sZd0QO;mZ-^$v;|e?E&IHyMhKmL?}#Yg zgV*>)0sh_{S@LTbVGWUwh#Oj3bt|1a3JPbfZMrmf47R^}Q0S|R(U$}*g%iY4-p8Mw zQBxAJO3O}*d9i{%j<I-c%f<n3jj`w_)HeF<v7bbJsgK9^H@#`sP;K&EsKwj;j$+q< z9*M%`^oxjG;r!Mo@ZpX;JtT?J{Y-OYzVd%}%%VV{a|PYRg%={o>QViD5AJH321DM5 z^)xlnHE<G=4EJz%s}CuPAGqhz^hT~No~rBY7ZOF-BhKs2wi$)fn1xbTlAA)Un$tQ1 zWk8{9_gNeJg)*~vCQP~!YDkLQHkK7d*-c1H91*iYj4hJgs^zywCZ}hwP}q5jXs|dK zb0Tbes}VRO8bLQ$GPwOtOh)O~u_LQAQb39tOwAR@q}ni8rul<|!2OVx(nf@o+<pX1 zBP=db8~PKN*mTfhV3);v_&G+CpSHUvQEM!d(uHbx0$fzY#E2;Oke{v#bF-dT6!$T} z<xu&r;p-2D)BfWk4%5?SfvJ9j)z0m<BfU2TvC@YF<Huq(UEt?f9BSW=Fz`@XF`?ze zNSp*16BNSr_Je<S%PBfV+uuR4hl41iMJfF)rLWqFs;}F?1N)Z=tuGKHJaa1Ik6W*Y z@R>#{$8j!U&t#Y47n!b0=d!lNxX92az5n(T3a!`4UqhWxrk4PB7g%6GYN<jl*U=uO zi-q)^IGdzS%$rsLlRp6gO5KI_4cNbByDm9Sm2>KbKuFVDIK<tj{3JjjwJKq)Z{cjO zFzI8qdvflqMd&P*&J~B%2R+W1rJtCw?{yR8^%iHgXL)RX_#xMjoc_gnbg6-IJm&%p zy%l|#iqzewql3mZfTA?Z=b(e2wpF#7ljehcZDyN8AzU(K&Y)fO9U|i}uu7zhEpGEX zZVzYrokKh8i_%AEw~<M@2e1sf?`70q@#al<u(M8@^Mi$GuxgJNjM_E$Rb?`f%HL8R z7-fps+>n&QSY5$AM{D3x_ORFtAGZ^HhkjKycW|0VIJ%Ou^6v2PEvx$V2}i=^3M?T; zH=(tZnoBh=uEU>|i193C*4fFO=EN`ArjF8@7?v){=^lqgBOY1k6q0Fv%0$P3ks56; zNS-R@I8+ou=hvw8%RUT`wy~FQxiS%7n#bjy&%&e>U5oS8zmqHr3!O-;Jg0w0wV_?v z83x<{*|oJoou`pQvy>}ts*u*jB*lA>!StbOVnd-;HO#=_nS$h$9v}u{Q-)C!#i&ai zb~u*TsF;umStrKQc(*#1kk~b8Tqpb?&i;%Q-Ip=$X49&Nj&uA>DK?^MNSeIKeM2?r zNV(tizkA!q(jg}Bx@mI3#Dh~=kNBs;m1d~YCwWY&48DjCJrvkhvt&~-@bPwD&st7e z`$Ji-TI=!>@%qyX%_=&U0lW9==FjQN{gSwBUo};TKmBr00S+o3I~8YpMwm;-fo|1i zhmLN)h6l-+JLS(L2{!$A=k?whSH1Ys7u!@{)%+Rj&k0NIxn22^HrG{`gQOz+yH4S~ zL={2Z;q~`Dy3$#E^qkUl(LBSenZY4)B;n{$1wXW7-4{0nR?`3&u*hO<#XaS3>Erl1 zpN-9JP~PR7dwh-jb?_Ct4tmMZ_QOSDaMgS?kVUmI-Fwhiy!T0TkZqzaPxlZ5YKs;y zy8kFC-ril!%}?8ioSqiVwoSh)Jo~6zpBn{iiyu0gc5{v5FYb2~f(f<Z;=Zg8a^9-` zeh;em+d@(TMFWE(hyyPuy3}1>=Ho;wc4Db`$1)~*p61}pQ8kyUH%`U|O6s#eNaPY+ zHF|JaG0x6Mb@c0;d{$ECYHRV+lQ+gnnX0NmhEDYt+^{$1M6>s53F90h9>Sh_?|&3Y zY%kB_<_R*JpU_Y%a{{vCH@|9HZ(f<Zr2TV&QBeY%pHbJjb1FqSlQ0d5Kr3^6K{j;< zW7{YE!9<J^p&Ce#f>@`w4QHL=u5pi=xt&sN3}Y`OJqyr4r0FX^_6X3-PL_5X{;{p_ z4e})!pAGa`cS82z#wEi|lcYLRM|_J*amIcSx>U7i)o3jvO^e;4!QJ1wzs=&LAB_2g z9_nI`>98cLp(mT)dC|dz%;!wJBW@be2X5-9O+~|~hPb;W_~gFjWumXzpw!cN5f<uN z2F)h4n9|S^hzh#t^;csK8^!rmfx_qF59;0O1=n~(+R_hcnfFJH7HD|o!e<|jqoISf zo3UoDkhnK~>G6i`<A>Z`WSra!x-qa9x$RwAvGE9;&cdf+|2KjM15^8N38@BNvi?xL zPPnA{7EgP8{BW)UT+nc|7wWVYv242$MUdfhq^)<9+og-x%nUmPpcPfnKeCZu8<^sS zIzlR|<__M#<Gx>sexrM<+5CTZpFOevR<u^+jPC6{iV61IIsD@D1)A{EHPtx+wiW?j zwk(PBvU41cdBKaV&#lauF$=j|KE#FeVPu3gGn@<~6^UL|APtM>zd^HY*4CIc^}V=U z5iKl0xwe4ZZ%F~;$f&3c=hDEO*lsIiPMq_u&ueA5YNjm3XQ))7lpObHlN={%HC3gP z>V%oBOV<Bz`=!Su3B;JZnPns%y)7syJW7)ne!bA0=&YFfz)!3{Hn$mEVBJDKZ8#;z ztkvu(0~ipb)s6NB>{V&^JDXdt2e%jWU*gvhZcTX94)g|JTm+*La{JRS=|m(JCV-Xv zYw@*}1nTFsH)tJn>Ew?u(q?RGJ0$$XjZ2Rp`9Lh?6a>O=%9r0Uejf-JK@Ow$`N|14 z33<FQJFz@*wuloWpKnj|_&d`lT%C*ZeugcCy*n9Lf8G~1YjLiw{nu^<4+*Hb&D0cY znhq3c>g92~u8d7&psHq3dPk()3YeJ-6XQ1x7i)v0<UYZrIC*<>H08|PqH|pK=bjMQ z-~*#_V|i@XJ=JDrR;Y<CMSuO=tLL+}sgo%H@Pm4cszaAZ393q&lN${c0_cHsuvWx) z&D9)T$EVe-)b0f}x((9L@)pH#W6^TRVq?fJ7}myqA+5Bu;%_|>LsiT0F`1ygL|`ZH zqs)hzC2KOqAutz&a5M`aPhz3?1qqdl|EQq2u0*L}x}rduVb!Cs0fF4mw?w(b-q3pP zeiQ+KlYm&|J|x1rSYH>Maeonv1(PmQs|3pr(hSz%c&QjbXlCSkur^Bzf8Q4sL|8Zd z^==H&+hJpR3Gkhve9g9Hi%iz}Jg%f_4Q}Wce6@bsEif0K83;}J`zqj(mW@!k_2I8( zW3ws5F=X;dXYfTKCGNpg?qq!Kr8(BoORJKS0TK(=MaC#nZ+aCi9*JZ>N)JIIHJL$; z`s-|;%y(f8T%{TQ!_~HuVRpP_gpiqeCT{HK_dglmS*U0%J!yDS@p064nrSIkt=nMl z`eoA1r?HE|VqT7?QDaJrGUo2<b(p{l!uH<}3K|kGQGYac|LR1TOa5Jyh3GY|7Ibm0 zZ_$l?#!(fcsMw_CDS_JS$@6b5Fkir6U`m|Y95kpFB;dQGVW|0?Vm8^Wsh7r)4ADvM zc_^<9F7*hQl_KWCk{BS<m1hYk0G!_@)=4O3c;FNOHH$^!nVCGz+~H4}%#7;=#T6;K z)bb`K*|ju4HaZ$>#7zpqYgN<1M5y3Bv18&d`}j1#h9wV`b$=u<POsL&7I3kft@Ytz zkc6A^`vO*2^5HeD`{pqh(+~Bh=kFn1w5s}v;Zys->cq}-{lMXK2r)Cm;o5b#M+>in zDA$hg(J)En4%fRN`CL=6vDtiwuR1Bm%toKxU9wHQLU2CA6*~?SNkK3)Y;FWN<G*VT z3B$O*cFqJb)tc5F90b{kMh(`@rVasj0oJA6vQ5(4J8P`TyWlR-0PCVx#$~h4<Iv{j zgK|xL9c%}x453d>>@R?N+!y(P&0xkz8v8xMqM##4(V3h=ISNlJ>o%mPW^&Aq>8_h# z5BT(W6x-q-seeFqEOAY~8|vg6x}Gs{Y?%I)+SDbz187aVR58q1-b^Ya8hattbUMdE zqAGGe=hPM0zZ6P?wMr}}u^Tdm@rQG%xm9+Kh_P4~tMc9ukD+l9r4gStxE9u^8vBv4 zA&GHD8S4&<6CmuG=kI%idv$RYK~~r^WrzLxPRL*`6JDQ;elR|EuXMjbfmluNN;O41 z&7n;YBo1IvxDYjUNWNUL5C#BA_2Y2{K0R7&<(ht+SNBgCQ6bqoc^Lt$oeQ?SpEkqt zr{1f4`w@+{5f$6buT_Un@uhEAa>jn52qR2SkBcdB2df4c;ya!f*Ur-hE`mN~9hGT0 zPsf$p&d~~`cOIV3G+UO-MH2f~=#5Qb!!g1<9X`X`=g!BPdC^$vdkT}XIIiPsA>~CE z8p~S|;xj{mEG^9PIezwa<=TFzyy~Vr_iyI|w)-#2Dhw?SP{|(#tQTyVy};!}gz#PS z=23rEt8x+%!d^LOwl_gMTz-n{C6#kdA2W166S<8EX9oMImvZ^D=)4^Y<mY>FXk+IE z&g-1FX_ZGtsz~vbG>Y}Ie7Mkj!AxC9v-o>fJje-z=q-9TB*hxclP<M<n`TL)=zpac zFa9+<aRGh=PZEpMyAXV-(?Mx;!}Cl?lk^JyBgC<gVgD;b+57mMb2f8w%T5TUe^ns) zl}nM@H$yU={kD=^5SmF`<DR8bL+tz4!cW^gnNUjuc}%)X%jC2P{o`A|SkQfo4<y#y z&t}^A-kH$IwAk}<OtmNkvo`DK9%WGz_8xG;Ur<}l0ACuchT6H9*uzTRl>%Ox)+oit zwe&nF_T$a^opuAuip=9AJlu#btziy*4kc_Rp(S|C*-l#z>fBZJC^t7`sLMcHiZz>* zha<EFndfX!5=I_FkHY5o7excc&7i;T8YhhXX5!ck<NRmLv!FSh++bja+|S|p19gp8 zu0<y8)L$qLSflr)(aDIE<)~=g8iY5e&5H!m!Qd+YU2PL4#cL8V-ZuB3Q6HL4>zZ70 zIR=v-U4OW5-aqLw&79s2v7OfN@B7f1pGJh0*tzsTC3mHd(ONGyREta-j>{1}v>u@6 z!ADt@vEx8u(w+=DJOefzy5?AMld9dkYK|rtrXd{cMj`=lMsl%!)z@^wuaU<5vE%%~ zU$x(3!_(L3d<iPVqm(_^+5|fG(}!y)o%&4d0s_MuGmd`~j^6lI;1={Ecveo+uCVB( zK=)C&@OR#8yvVCbwgS-F<*`l@kL)qW8tWXIZ`UK?_q*7GH&@)>q^^`|uVjlwUu7)3 zq}X{uA=1ceznH<p^DD}KOGQ>QM@%!jbu5|?dg-ib9m=)6jH%1upHVeeaeC85@u`OU z08=o>anHJ8A5L8{JEd37anH9ZWJilD<V_rz_Q&i*I|4<(xeF-y;_Z;eYvW`CX}Vmt zWXixX#c(Z{o)><Yug9?i$p$Fe#Sd%)35>>kkWNlYcJF*=@+&(1G0J-3oA*w(T2BRn zlvr(*ljOl0xItiaGiewbLTKSww;`P?2IQwzB0gB7SJOk$L(h2T$&+PkOEg`s{?W{? zsL7-^=MG2yZ{SIX%0gDhFZmNYiN$q5jl-%^Lmsu^!_P$o`4E7)M$==|m|c>>Xq6l( z_lp<2s+l=2cuq0=gt5_t3H0*m6X^vN!Vp=xPFzh0nIqoj_fNuOeqK}X4rhH#-BFDe zYr>|V=h1}U^E;uudsM)+%tWcy;SU5skgILNvHlFlGjdBY)yx`vD9uIT*FZ5ZHiT2j z*}VKlsmX)<&xs~&iYj+`hKbn-xTuLqPm9qk0A>IuV2<4`S%Go(<}3^;DQ-7+Ih$hy z^X)IA>3Z6(sP7M#dw&wRLfYCmKW}m_)rNw6wiKnI!+E!dpUSnRuGzJ<LFj9Z=7_4& zyuu0Vg&0f5juft`-9wTu`Bt-EPz&C#Z>QOn0*eQwjRV%WD23cI6KtP|B=_DM{NwZA z9mXFt8&G3?dkh<BoPv?=1sWKJz2WzmngjGFC-9c?iY=Buh)-k#l;rxxjhQ~$;wA=j zFVG|f@q1=D5btxty2W@^f|@{5Tgo311*0UIe}*5Xw4G&|*;+JH($Z%LS^}Y5-QZ7L z-0ftM79++J8<qEZ3Pb4l-oKn3wkV~cdRVj>*EvTgi30OTDU}oaMa1Cfvv+A!=>Qv@ z!iT@`nun#uPFy0yXxT-TA^L?fX@G%$dhuzxFJR@0EnXF<SEmVb016|kXRsy5ikov) zinHU>{*%+L@}~dxb!*u>)(NFnpU1Rw(c<LG_K~F4gPk}~vq5dcw&7jf_YQM6@*cS# zPh%co3eu<ojJ+p99gpO@IQssQ;)H|Td+jn&uNS+`<;5{E$I(XCJo?T;^&)k8OZyA_ zjul_*0P)Q{abo=8M>0gF<5B*Er1{9!*SgX9BjSEHfIZIMMwH9L3sl>}+?vN=WmP-5 ztET(1P|6GWQaQ%?+S26|&ccu%_0OqwmeSi3{E^#T2h>OO!xk3Y+-j6pw0D*f08oBE zM5f2(VTZL*r1wmr80iqGOPs}t&ZV1fe&G;AFdA6;JT+?Ml3Te@F`9UP^fWLOxY6l( z=%aoaWQi0Y843{e`<fS1=V)w4R32<&SN95IQ*%urM34+}*=Jk}ovoVf60z6d21|pR zyZz$h8uCnmz*!@wC~3}WfXES5&D*ry8X=?2sn)R+B?khrQer%(5Y%(e=8Uf9@f@LA z^T&%LDR%+$$@FaA+-%W02PU(GyVj%d=<F{?f5#4|T7C(<sa*@tRKiq%R2@4YCr%VP zW?Yy4{J=((Kxurvh)}b%5;m<9TnA7ttmofyjd&?AP+*HN-&`hpp}OV{o2)~U0u{?p z6-iGXGCwm!$#MvAk8BJudCF!sU)ch=CTN^Hvy4iHsh)1hrgFmr1P;G44f>%vJ&A?r zRMu<I@?ea2Rtw9r^N&TRIUCCLvjD>wz1$hofz~E%UlX+gp?P2RWszs)E39n>usMgB z<J71gw6*Gf!csBsOr@y%*Y6}>D&U1&6)aIUB$>9KPGnWezYAScX-3_Nl1lP$!U=cL zhDqE&i=s~fZ!m$4nT95F0);xf_T3_R@}G6qAJ1rG{H3^BOJXnUT6DTFN47PV{S$^u z(05?x!>-3g4@~94o!tW(2{2U!%@xC0na9bK$?l%)h%a?+#<jRp(HMUjE&9Wmv5^NB zI)iccqW5&@EEYT@$n)GlCXA95{GE9TdYV91p+FTu+@oGN5Y}->T`EsQN(ASH8Rhdg zI^ocbyWBmf7f>_ms&nRCFirFVd9gI1aI!}z7qt(UY$LH=(zE;mQ{xu)anH}tsrW?` z;N<dez~rkALrX5kcDQR0v%6q5{wy91`)K|Y4uW%~Z~~N%f-&p(o?Zoi%Ue$2370Pq zA#jrlSR+?O^<lzO&X6xMSO;pYiE5R4+8#e_X2gSw;1`bU(4$j`Cd4a~hTB8`MD4zZ zwGLDE5TL@iFl{We%0e(DcFYTi97{5fnI$!pPt{@xIEg<4>V1;?#G{P7%^FOq<vfl9 z(GBIzT#irMh^NHG6@hd~0pq}CI|Rg0Fq=YJ6P;{LoPYEOS!Tx7Si6@&9LnvgkW1FH zo(e&v_R2Z5WoE>@>fRQkVtV9k7(^2&LxJ)zVvE~8>lUStcnK5ZtOE5gxdJ;ZCaUA2 z?hEWj*OY4mCG&6L6|rx1oX10aMg-hHIRs%^PnfJi<U#cFfi7UJj=Jn!ty0#(4d?qg zfw={fU);DEi&QFcEMzU-1B6S(#Vj3O^Gv_^QusHMB#oIf;mnI@AP0%b=&E#Wu&*{e zy?S0OZP!zpao+J>=wE{DVPPcgEIMpx`MJBnYm2&vDg>U2_hy!U-&0jtep(N}M%+_t zmf;}@6O`Quc~2HFSbRSxWqiLYUD89resdV-Ek&lwAP~-(f8o-)7S6i$0#wECxl|76 zX<@v~G3LA{#3@#gPL2h1fZfIlUvLjn(-}<h>DXX))Z{n>XE{ws_Kp%XG`B3p$0q7@ z33P@fvpO}yIGp^`3zh+mNo3xCq@k3s^)AX4usE+x-Di8^SEYUHAy7#q2K90HfG<Wd zIE1UcStnI>zG-dAr7ET>d08z);Liv@^v7>Fb!t_%$zJwqG?FW*+?!u*ATsWOL?DJ> z(Ig2}p9d}-5G+riwguR12bW_Ht1fxr6W?>xS#2z3SR5+WR`Uw<h2yI;K#nU~P~WcZ z&(Y>R{yD%e(t>=Dm2J6tni*b3{m|^|G!2uUuBd4Br^E2M<Um5j(stl5F<P(4k%5Ji z4JnZ@&|EHE3FfJGk0hls%S${};)9xdHCZg=9n6??r_3%q%^WcC%x@icg23(}*d4fn z{Rwl%7QQ4hWgrZ~UXuMXOn1YqX+t_6f~AQk@dM#hp0q&f(&d+zUi${e#b9yYjL}kO zxU)p<P<OSV0j*k46`X^U?yUQyerTmYZ0qhN_cx6-r1+7|CsvyLqd5bKt_5l|Z+fof zB8>XQu6ZLUogeo(ZOvTEfke%{VbCM?hl73Ae3}0b5+;Eb)Q0+YdyY;|6rm1xv>(Y2 zfe9X?x_*=pXS2DeOwmxyg{sBIS9YA%FmfJUk3U5=n~WiQpo!<fvV7^|$`6^Bw^G5= z$s>zRQh-OW_c6n!FBuReh8{Xw9Q=j*PD&f1Ct+bZ-JI_2Xg<*GJN7d&)zMsL{EP>q z-{Z{rJi(8Xj~^qbRq_kJWk0^i-U(n$v3S9BreP+k(&HlKI3)I)P^*>q^i8!Xo^~o2 zKjrHCx#k{HE}(g!Rm<s_<effqI5+zhY!%>51-+t?5$$1hKdzPFcEdpgK>B)^x)mpO zNG)1KpJ1GR6=!HPZuv5Wl0GT;y5%ZF+i}8?#ii4T1y)^VWi>)1I*c~leY`<z-hV_o z;%EyUurU2LFuZy`fMR(a;U{j@`pDulR@QnoL*ATBl5?Rt9!4;Yep8gd0&_O1g=fpK z*&!@}(WDsU?QFB{0nYAGpIY5{wWr(QfcmeVD@KP?<jRYJFlD$(1J*ekioW<>(T^jj zJJwmVUZF^Mfl#jAYhhyjzK~oNPvQ@nF$$8&2k{#76<MPqo)~rPOpX2B-ajWyxRYQM z4*&0tgKTE@_MJgS$r>V&ky%bHGCr5Pt$t46r5c?kO6MPt&T`GAe5v6q)}A1Rma>7q zG4F&_D1K0O3tjSl1I@Z|kc;sQWU`(`MjiZuJgNL?)#Aj7;vI~PZhR=Mm`9pplWc(o zPHZRW-GFC098)$O#dAx=BhxBIR!8tPKO{ygb}g}5h^623MJ6VRbTHzD1ka+rYATdc zpHB}|3~nwcSy=N^g<*|m!x6x02q9^uP?e419yGW1V8NWVYc^i+HBncYnT9ewok{@- z@GM2_P?Sco&*JP%9@K^y^%*VF7^Do{7=yoH6HsN~PUFfWXDd`)(R)-Q#=ms?I>E`= z;0J0d!OX}=@brB<jk(z^dFg4E#hM)v9r#BNOC8JK@rN?+HiNO9#{mv$vV}R!6LrmX zF(%joVsly<sN>CQL?T=5o?wz|j&_RA+#n5&NS>)!HEAx?!zZTt-o3|UgfYZCCN78$ z_Wbe9K>|Yl4=w~s8v|60CmP>wIi8)UZ@8h-)1J)!NjL#<zxlM8Sa<xFp!n0~&3||9 zRbq6nm<J%jEM);nU7<UPW~?N&CTR=B8&@-d5osz4;U6|Fh+t9CzolP}FjSLfWoEwz z0gbIGhjG$wFH?hho`5o(m8^rHkFsfL(s;Q6CFf>coQGil-tpb`hG!E`m%BovH1(?Y zK?R$6nuCSStp;oHR&hMjJpdwObevt7sq~`~T?Zq}Ht)exJ~GiDB$w^DD4Xg&ccXKl zp1R3<G2bbiz%Pp=5o!yc6}fQotP!5W-Q7RmHv@bc2=JuqLT0z`N3Z<kUHeJZa<$#t zwbZ);$&XviPYRAEG`~;6y!``Q>Vr`aDvT;c(PggTo?jhgw*=M~GHWb(m0Xhe-7SNi zb(c&jP9?oue^ql~j&2h9KAeSeVKHYc!EVY7B4U-#8#{+p43`b}&UK)PupsGjmNByh zNP#P{91VycRK~BsbZ-XGW=4HT0$6zC*?;9{PuMM{=@d|srKt&>Q6oHbo;0#6i^=yY z{e;LKR*Tdj{v4>akD+OZ<&nzLxKEzDj6`p*X(e^GxHwPgg%u&61@rqL?$sSBUzK#Q zecLl1`=;w&Z60E)CyE?opK#z!i+&OuY<v-OlHt#w@T<SWnL?1SYv|rj0+{e6TXYdu zCN;rl!Wk7Yf1iy`fvKiVLc`|O6gtMG(g(c4!A*<OoCb*kG^WXi5HelKhLP*3Z22%j z2dPgB??QQ=bAD|0A2k*kLK~80D?YKme|fe1J$2_q)D7y5xndEoOGq6Q0Ncd?o%M24 zO4=w!zjKZo9gDIMcdOkn)K_JPC4V$BWujrV?OA)BovDSIRdMt_5^648><TAG<VYAH z-IkApo!4+A0hO#LmWA^@d+B`v!l-g_APJr5a>s?t>japXY8;x@5AK!FkdL7oB1CR! zyH3e_zKfxY!{|7$sP4a2^ORZC*v(Ay;v>?{;stqDE3&7~f%U5Vc}8o#@I>YbwjQCZ zEDDBB6uI%OGqh)JPEIOD!5QU>CQa6J&c>mf;eK2aGjG&X6S!I&>;E4`=i$xP|Nrq% zjglB8R?SKzMr^fLD<YDZA@-=fslBxou}39hj}m*<s!i=0t)jFjttyJDs;X+M{r>#U z{R8ef_ult8_xXH1UytY4;U(}Jjw2b$&l&YB;w~33VN<JyUJ6mzFvOJDf5Sb#cygu4 z<dk!^!U@~d?3cDlrbS4w%xEv^O9N7Dgr*jvQ(^$7aDn6wFaiUwBXut5z1qA7<19WE z4mAfdL==l#`SRwfVzfV+J;`HlH>Zv9eIM*RlQ4R#D#;|GeB%W?+|8`(8eQHjFq&ge zv#Pss2-WGeVbOPuGN79x`rYh<9@QD~Zo5K$HiW(FYtWaXG`yc>U_$$5S)|Y<zPhT+ z`RcC|Cv3g|0QxX~7D7d?GzVB!m`jUGFyu*xE!0D^nyUJQusP$^;ZT05gV}LWk~DX& zV8OUT_07`C_~ps~DSs-LUHg2g8oB898dMKGA$F74q0z-hX{d9gtOA`Bt?RlF5l&=* zy-Si+`_uAm^??;{j)Vg`)8c58+v0JV-<vNDqR&aK0T&tkK6jTNa*2KN0DdPpstL0a z@STJ7bUBG2o6PZl&aQ`0@z1w(KsY1Gz%vqh@y(Nbgj-vUvRxac@-(_do-%iB-9&uT z+a&k0O7+TmZ#q+tNOsJswmu_6c%k3*(j+BKN{;LGbVk+faMu%lV|0$GQG;k9PTf+H z9X4s!ZY|~Bc&M4WhR_nA6K~nY!f|%k7y*twU6z08E5F&*h8CJd-;FHS?n!kFJop*+ z;?of_XMQ&VCIOm!_Ik<}1q<93+3y5R-!s*XbW3Y%152l}2K>#asu~;s)E~k%OxLB< z91&i7-$08HXMpCUzeS|W%=ZH!J^api`+F(B?B+Ww*h0ewzX0EXjG)&qG8`vZW~J`J zdi*d}LFK-(>kqOCIcw8Pp4?NPa#5eO5r@w`uA<NNkF@^?xKmwciB++Q^mqTOUE1(E z4Zo&Cvu^af#W;oXxMzZTygtOw&(AH$y*P*#MhB!Dl1=<8+{|^R<(Ky4uE@P7xk-K& z0qs^_&!sv-D`n8U;Z!@;99E(0H$?Y9BQfz@bbDo76w_S0dW8KBmkBLQO}B(Yw`SWM z`WGZGMsJ!#=ngdcJW%9p=HX`)V7{?eG4z;z%%p0QAY0^Drzk+*A!J8THoL!_<qd5Z zh1t!&JpsvWEJwnnzTd!2h2Xql?hgEa7}YRA;j&SwaWUYUUVZ(&&=__A^^RriCYJN} zgZ0bx9fdxH8O2BRf?r`A>%Jo!4IKb>1AHHi%R;_%$uPPfZH0tZNR#1tTB94WfzZ9G z&t|R}mt8AfIZ4a6O!<Vf&m_o)I@KWi<Y8f5C#S-&4W^h*=`XGzj&*>-V+Fe4S~6q) z4+cxP2k+S7%a3Gm+q{83DL~zZ63tx0hwR+l^P5p$`t=Yw=Yj~FT|>Q+`jT8EYE10z zV06hf%9OfElhXccF6E(h7jqqNFh3rq`Q+{To($_P8dU4aOL~KLcL$o9%0W7<v9HqU zvohvPGCUC1WULD3nqfP2jBw&#%DIwY@l<i-E=)iC<IL!ciPJCmjyaPZr}Yl*b^|9o z4bdo66L|acT@hU}kH#G_f*O}Uv}|ghr-GF}VYtO=ktF%Kh)=2Wwsa!eP;}2JreVyg zUPt#2DOp{EenVz-Tb3x*XcZ*08vQb1(Q5$nQ&XCG0$*PkDcs`Iy7x)V<tD!Gc3Ri; z6DfTd=?=BiO?1g)G_mZX`pX=-OKl6`<&_e^TOPb#zh=e+|C-9_^i^*pr-r{hZGFfw zfsSZ3IWDWzb~xPzom3b?z1i@~s2VQsfzha5U7J>yNimkw<Wl2pd@S`*SC0E3QnC}( zfI?M@64WC-D_c`*Kdq!0oA04M-CcPtO&a{oq^F|t_iln`Cr>2Xt>j}B#UxeX_S#qR z^SO-O!yoc!(OiLFPr~|#jGw+S^Bd|Tzx{F`7w}l_y=8pIC%U3GkE>G>ejDRPD9(SV z>eHWMaesqlRm|w2z{V$1b6SJR{;#WK)<cC{d2IMOtoM}0=PZ&eSxrkg5>>$;$$Euf zz&?s<>mps>?O0Aq;R=?(80Ld5zgb;+g*#V4$DJt_7>Jxr3WZa+ej_^PB2e*AsotZZ z@wu{&JC!Cnb0&z(eB>(e!$QJFc3swQ2)(<a##S6_qJo|6sMOnH)0rqCMAsP!@dWKg z=p`wBuwk$MYXbg(^VS#~pP0Fv;^j^xztK#qJTS;`D%Iyz{lTq76>s^H)BVVpIPb4T z_vL`6bex!tR%pm%Oa$DK-OSshNXTI>65c)}`$sggQ8Lx88QS}LWs^TpF(1*cJYKfd z=J{K0gjw2|H_nYI&;QWYkmCCk8a91%lrJCV)8L}Ce=&g9whfN2Ik3`#X8m``od%U0 zMOKL}N|q5W#%SSP%aqnhiF(|F7EG7_-mR%Kj(l-w?G*>Q=(K%9Ym2*i(!);L>%QJc z)z501IO(p#)MjGOU1+CN6v?V)0voHQ4o^lC7gyg*B`#BJBowm8=gCiackg~+^)_$5 z)yN=T6s>a3`QVjMo<LnDMSkQ`%%RPyJTN%ORs&^~WlEP{mK4Kdq^hf&md<n`>GJJ& zg)E)tyxx%LG-qYQA;v5g@~V!`Sscf8eR1oD`}W@i|6=Mi&B{t&+T^|h)D-p_b&1p) zf8uWApN<3x2HdA5r1&8Cg6Om)T#!hE;NcpMhI~GIIVtljXBiX%T$v=|6(l2fNy)^w z%dz&dLWzjo8a+i68GfC74Ku%874^ZqIyBloiPJkm0w<W_{agE5b;o~Sdrouxlr|md zJuj2U`Q7neetJjKe}Kd$Ku-Bv4)VXM2+a%$@Uh}eD)mi{`q#iD10Rp8l%Jv0hk@DY ztn?cmMtGU~y3IJ|O<S|351!<W_TpddJ&3mNT({`3RwK-B38`z<fl<?U?1Dc6Xxi1~ zlInGq>p12ZOkS+?a=92Sq==`+^s}3q?ZaLLS*At#<ACQ{6N=BU4qUNmmG_*5yW*BY z(-J-Gj?wtxHFAI;4<aRmUk*CAFpocyG!ZpwPZ7!Agxkee3?-_F`#fwd*2MVrfkodG z%G>gOZ<ngCMoOYz6+okbs!M}5KnT*~_My9fPlf7q;OnET%R-%cj@z1jF5a-7hImzQ z;!c+hn2YK(RNrPbLO1w>d+0k)Vz9v@0{yXED!#-kflBc3v}DA~))xFkTK>phzA;Fb zF8)y;ei(-l$jM)SB=b?~wT}=EI&7h580LcMq9M23P^e5vQ6D?3fHh@hagmA_rPPyQ zs#fup&cP&cF=d+;6BUJ?(?)iSqJiAc&0^izjj#bH;nji<a@#UG8{<`d{2n*-&*iD# zM@w^&r^H`b6=~$o*oirJkpj>7t3(|qB9#T=b18WX5c6Tu=y&FEe6T>$W~=wZuqlOm z`gdBNV&lBXigs6oy`h_}cK<$U^v)i|G3U3d35|bbPstDfX&~DoNmvCmwmG#P{EL*g z(n7I>C|0Qy5cK|=BT2hA%G7fr$dv6Tv^T@m+@}B0+qTea(-={Ui(P&-m<=X%M}TG< z-|NGzLY!$DY_0)gsE~&u-75N!xY0(gFLyLXPq-0RgVlr*`^325EMh@a<RMHWmB%+m z-(SWSKF&7fcJabha>EyTFcBJKau?W2nl^oY%XuHlIHY-+ROvIRth|BL5_}%*s!mSG zvBS|6Y5xU+6PkmTu<DQZfq^``fM^=FNkuMxJ$l}!7Mo#yZ;o#_433iD2H)oObe6Pa zD|icwG}z?`k?eXCJeZF&se9*T4IzbLB@YzK%E<)t5ZNFu<K>{JG%je>oWC@)1L=$h z<`U3|E4C)_%Fkh05=X&3Rh^%v>`)(9h}UD=C1ARrMR?x!l<7O?x?=))Q6zU)D4Sl| z?1`Ee2ES^NCh9t4_N>)7rX)4Ru9suaFsZ{IcE|U2+AdJJ=81NVk*=On0afDchM~nq z79&L{T)2_1Zk+}b1qwJ+wL_*k?z<)j^R=;}F0!l_Tu!nE@{B*+LD_p4;|s2rVJsLQ zP2D>)ZMw`cyj}PJ>Q&S3(C&~a!#y%*0;7D%W2MzMtlu$ipb!lV(cFv@4T*~5mT|Wh zX%~zdF6rN5)t^@$q0qU#7Lrrh5(|b-dUVtp)0YJ+sK+i}9{Tg;%fJt_wzfWz%v`Rk z$zW!0w_`Xv0y~@b=3XmBNONCu^K=srZXla_#bGpsqO;Ha8CX>BM3V_{6R1T*G-|4} zA_rb4+LB~lC#ry0Ny~5+u@#P?TNSfhG~3HvdDbjeS=W4W>65@MIDLCw{(kB7GD+<A zk0E-G4rkP{euIG5)C;$tXNa(|>uvBHBuL_}gr7lW4e+N>Gs?yj=sv3!%l7&ri==1i zmK`r6c`8$6eE>7ORk3ZypeQrpUe#(<QzqO}yu%!doLp8z(t2tDD<XpxXUu~Lmv{Yd z-E^zGfjAECvfkH)K#*ZUlYz`D&-n!ot{DN9=X>TvHH8$z7d8N1u=p>TUFuql<YXpH z%8h$_=ZwI3126mkc7DdDzVdk4rS$OClEq=%cK+h~cj&*)&sx<q^d)Ym3bOyEQ}4$y zXu$I?SLIN@Zt2ES>?CAvh<(2SRsJ%Bvb|Xp!>&KX(o~gba66fUZcv}tVJ%~O`CdQ> z-6-%Nwc=C0XS@R{rkwgUmm%!&O@sA-*V-J9oM%GVUxRsmN_vv=%+fOKkn(&{a&X~> zdvtK8Ket>KET01j>Ogmk(YzEM7YuJ8PktfV)zG1sFYn%KXqw8ryYq6h=EY1F<8#ob zFAQGnttIL>jpOVsqTid%G3+<CUN=7n8yk8FUyfPPdE>M{Q61t-S<2$Vi#tyLNbkf- ze-cvZCRcL80v)cVm<7?#P75!@tivk7Mfeh)B2E|oZlb;^wIe2LEkOs~RILjy)ahp{ z#}@*}8~@}0@Ce}Z)X;IyYmp{(Ng&NQcGmv8*$7jjNo2R_myjqjad&=s_npg!u%I3b z-rQM+Bc`zsybx;H8S0J0|KuzYbAEiINcw89f;37}R=%~KtK<IuO|$Xe`oHAPs!P;( za(hFSKN2Dw!V1yq%ui!EQ}s3$Qq=`EBj+5@7o0KJ*=MxXK~b90IUA&6M$^<d0{zvA zm(%QqDWSYVg2c}e2hXG)>kF)(#&cRC@Vh4ss79lX!0H7yzN=HQL{%ef(U@;nDSdW| zFfzOJGqqkn{BXGs9HY;%#OzN#Oi$~~#FuGGSl0{5I;HK?DO{h>r%T1)r$^Yk_^y2K zq1@@&%&HFKONp2S`i5<+{`a({(v4g+fbq`@W7`)p^g^Px5*?;PmB)Rc5UEO-q7p?! z!O_ri4#bZzh{_rmxa3+7G4^Qf&w?Zsoskk4h8rCK-$eTVRCs+}k$Kw`gSef6Hg%Ks z>c|S~2zq4c>R#vN7tBpJz!m2?MrZs^?;q_m%Q?Cn+!Fj0!2h7?&iuQc5_DXNSg;vm zaBk6X%}j5A9%c?|?zwTK8=-ga>Ytw?D-j7V_G+v}Kf1H^2BS@WR^FYvuSb4AH2MB= z{nk_C2&N~)ZJ8J**!hP;)I{KS;rqsOsr2#gjWk|C2>-)qcKRSW)0L)4eaLJtw~#WY zrhMqTJ)E+!i$6Upl&{`IMe=rWuCpJCd)s^CszP@k$39LA!8Rym7IFfrcXTrfzkRT0 zH-bVl@cn{W(Uzh5GrP!%(qJcVhjb4_7*|=!KmeekBVHickLkldz0sq#Lo3Rk<s&8a zNZqESzQQoF)ux`4#y?SZ=J<K-RnMuIsn#y;zD4VpipV(ZYazvA(rc>kt`vQvw2a>= zXL57!r1fF`^yS>k%PF6flExhAxDyM|!W?Riz)LR_HD$deOb?+NSH|@pDL_0vllnc$ zZFv8k9J5HO>?`xkd-D?5?%t4jf1tz5rL^w><MGP&x2}G9a)(45pUB}2E<F>>iE<Hd zzk$U4a1%6L9ynA!Ei!+kKr5psRS?e&0FUPv#+EP!e1;VHB22LX%HA^hkt*_;jWZds z!*$%2cS!!-ce0yQG&XncLlmVR&*@wMv|q>h#V1CvF?#h5sOz6xZhI)>PxMXNruUS$ z)1F6`Pt!x!Zt}7%KX0ltv$)IGrqQ)<*b0dZvTI|*;Rh#0c4AYq4<371rr@&2*0X+q z`*1qu{m>+5(1&?D<wn2UiAYN+(Dg+T8=tzZtp&*Ut6z3VN#1VAK!jd25kxweiT^-& z9ek`<cSo1_;6Ze&%Cq@s9~EDHf58O=TnTDib<RWhUiX9$hT&1Pt@LAq#?TtARH^H_ zL*r<s^^olP<Bl&r83JweEJHpvA;jv{l+UNOy#4MIQKP3Y)c2{)oW?e`({FDwxorMh zBM0K)y=fmVTR~0{Ry2yimR{VCooDKu+cTmv>L$J)5vxqndJf*R-4b7{S?D1zt2D+K zb1b3R>glqpt`{zH-d@{vv#>p{kIwo|kR2W>;<Em8U8l9-y9ioYH-;flqc7V-w=1~w z`Lz3yLggIbr<<ZalHXM{%E)e_?E4MVPvJYi(_IoPQiTsx!-pOEG+|!xcXxz-ER*ir z-&q%ImQ+>UDEuKWQW$hrTY-Zai1kW_40Q@WvgNTrCmupS+`vNAUY2Bru6-WqO~T|> z&9N1>5&WwT?wkVVp1cdxBso(tV&n7Go1qfY9arAS(n-q+EWw6z$3lAfKE+RL1X60= znDaz2M)1kxtS9>HMxCJDT+GUo6@zb<W|y~?Fvi%p6Y+z3Ejo&gujak*)kf_0Y($U? z>}nH&B^W)eTVANmU<IFCLg)H+_<yqlXJ$0sVoo-F=AFk^cXYuLsr88C)%x+cZ_rTS zI)_Y!mc7=omD|Sqg(QcS)}u3<!^_|7{l=97JA2x`vFzcAtIFwhMbrmm4i7-VORBK0 zidyHX<l`?ue8ajWkcVmBCof&xcu}H05P{sXos->$7p8Vjl@xlq={cD%^QU-6f3E;a zEtTrq^gw-b!yrD{D48hAdgfsyuOS@p{;{b|oO$WG$@8t2_u+AO+IAAY{7wCHpM3Ap zc9rA%8ug<R=tW1=*+q(XqZ|1$3Uwnd^%x51WLEfkwg;Cv(WOkbm>&}#*6+nJ$~W^^ z+!%?yG0la3+dcgINze;oN2U6MvBCDjS^j{>&x8%Go95r_6_LTQd7lxkmm3{d3;41m zxl2ToZ13BpNT2<Xl7_iFMv6h%$c;T~TB8QlvQs^wph7nCJHn*zO`*jp;uGocalxI9 zFY_&*Lw-Xlu{K>RQ0Zz0pp%m1Ft}f)5;FBnd#d}ICyhmDi>R37>OJI+f9@Ec3VkD+ z819MSL>)TW1FeV_#*->crd$*a%%59HDN%5$g92IC-dS^p23+<bX{3d-Q(uXGl|RyW zD8KI5V~APFC${wuMdA@K(w-tKySfNMt%OS=CgsH7vM~OJm%B#3NL?|Z@mw;uQC^Ts zYJWs?hwCFFg1Up<1`j7$m=22@OxZG0Fp!%8FJ`_*#sq9x|AYmJY;G7uG5M~4{K>Ib zC1x{aR8bQ=W2DD{<1mr)$?Dr0<ZyYx5hk#OvCXJuiezUn`r6vd+)*6HSH9OuOkcq! zM?JA#4&_|T<;EWE4H*^ipz|q1=j_9kjTN~Sa4Q`K_NtK|S0@t!<LIT>CSmqu&(dS< zlKhL=uw|fBM%SpM;wEZVEg8RHhN>7~L#3QurEb~k(7MK_vS*a&%YF1@;)3N=kvXip zU|wb)9}rB2qi!r6+ze`CF?<3sve2%KONcGe@fp{haYXh98c(G?i#_b^+;UjYrmP`V z*r>Wa{;BV(Ee}g|<QE23ecdw_%wm~*ioH4Boen2yr10iaLdP(AS2-Iw*hM<ec^MMu ze58H;1lUj&ZqfU1qEIq`ic&7e3|kBY0P0xxap_FnB!`83oth{buY6$euF?&Ct~GaA zVAX2V@6KF`eCKDH#udG7(Aw5}1%Gb@q@;Q%KVf#=!q*lo4&!<<{RmQP>A9YNMIDr+ ztK`#)aXoF`vvNfIL&7ZxI7pD!r};1yntQN3r3G@>Pku>UyNzotPH+bx9!VZx^a{M) zsl<onZ!PqHp4LJbXHpg0wn&|EV@aq6vV1Ug)m3JlL5ke=Yk#KWH*GBkIegkSq)vI# zAzN3!skrPm7OI@6kxEf=7o*`Oy}!quD9?lBoQMHtNCY^UN9^8<MD8;|ho)MNPm{*7 zRwu<>YfRh}9NLwWh@F<*)~P6(zeM#GWy%U+RVoZvUH9ys1JKC<*b&MLak9SpV62!Z zY%3yUnndm1lrCwq9-MM;I1=-rwCIHA;n&@aAgd#+z;C0Rhf$!WFt>RzhyfGRiCbmn zv;<V5uV?%%_RB?<VlHo<f%|N`SR=owCXikAEfiV_9J}tJjT+_uPY>N9nu|)!0*T!6 zBJPXvg-Z*Y%6TF>L}kwq?;^Bo;tcJCc9Ql29rMrizp-kMRj=%a3kA$^j}?7xlh4Z$ zI*b|Grdd|g#WgnD{gxLhb1zB=;C!T8+#0Ku+$*T5B#u8>R3a#%s=Nrm?9)8r4DEFL z#}M*$=)@JyUTAmZ^>aS%A?iZGzZM(nYX*pVsJGdWBgZ;>6`S!4%J_&IU}?j(@{XS3 zS)dvA$6W^V;hc^<F@`Wd`h|DVH3w)aLvjwKCT7~iG6j(l!lJ7x8bHpBpA{6BEh!%I zPuE3N-ME1DOvSPj<d%(kC`XT#9W+s)q<!hKWV8OBVP;Lhk~Z*BYQAdULy1J$SKH=* z{wD!V5k_=xM5+9n1?{!!2)~@ceipqJQ>|<tf`tv}RT@YU;w@+YajNew9kmd4#aZBq z-!}936~F}}JZG=UdYgs!48GXuza^fEX?hX0lgYZ(*R@^2S`jM1CodU#Q>QI?R=h5K zsqC??dp8c)klFd%PR#{k3_e|TY4fP%U)nr#@kJOU=|-KpSfXAFk0Y}BGn`14*ckh$ zwA53s;ZuJ=5j#JX>Gh_b`xWMpoVts3srGxXD&O}i%u0{Uo@o+yw}aQQaKP=N3T2)y zuB1R>ZB#r41&}VCK7_vQ%ajdOv`$|VXMdG<`xB|AD~fG~%r|COS?(KV_T4kS%h9b} z9ahZdgLm!S8)T%kWYvQg^y)jsHV5BKsNb2tMXRNq@&XmCM+vK!yx;^84Gz$zdmNhu zJXfwIl-J~o;8|@UL`JX7LjD2Fm;goRehy#4JV`3==7S|cgT!C%e806(ldU_k59?1< zwKw#Ly_|_q*6QQ??8mYTL-c5$3CYcWcANJN&b7NY?>L|HjuzkW3VAveJk$paRr30` z;M4H;qw%l5x7b_W)ef)uXl?vsWHh%dn#?e|8cKYM61~7iKc4?(T*-eG_Gu0EmuZIo z=?4R09eMcCl*N_6B#Vn@rIQAmZ%ypF#=k3n=?r;|)@}50AfDKZ4G;cGC@7_ilE}@u zHF^W{4gaiAy!+2T!azflLeh+^wR^DU7YTzrj)<AZ1i?hEL#aBW<;gF_{*NjcNYH~c zv(0cDa4N}RG<2FdGuZW0p!<D#2j#aGW{Cs#?eZ*!<ZiG-o$^3hK)^o+;fe~p`K_`O zaH^qm`9A-^RD~`LEgb#h%2Qexac#2)!<TT$a&?pb8B|{@!(mG;ga>LKP31}x*pwLb zrLP6eM#vRDt$>9}<k8hP{i8D}xnMj0C9{(9^TM&y58pBorHa!5*AyHDAUH(W{0_BG zWrN&-#(L~B6$TPUe-p}mBkKNz^a{*lKdzy>C0^aAvdNzH8B``JF^~iGrC#ue`eijR zT6319Zc)*QSovH8hjct&bBGu`Q-0-c;Ex7RXp}b_0*6rC$j#?UX`m=)a)|C014`Mx zQ27RV2%pSClXQ>G#k^Ekx;KdHS>DPn42l*MDdATY0C`~DZOT+tEd%2g3*3$vNOu7B ziyv3ykSM+u`ROKuwaFMy5Xb<-IEJAUR(?$qC*e3QI|U(FwjBN2Jpz!jF_Jo<EFn7D zCo@p<*P6MtU|!zEMB^P@y~A71Z9?xdv;<Z;4Np~uiX2TF9G3qPx$ZpPHam#R#XY@C zlHm+_baDaym&meyJVE|_Xfv%$(6~uH{=u*|#>W=NP*<|UjDZIzcm^nve@Q&lguIvW z1#<A-6Dcoie{?%FYUdCS5ieZmLi*KoPd!$N0SJIrZ(_pIQ_yG>qh9yx>($-I1>qK= zDgJPP44U#*vfv+kBB#*7p@@}q{?x1GEEQghHyPJL-?}1r95PrdszEOLoYQg}nTvEv z-mniD0+dv5Sz5DZo99XgL5*&OVk?NR*laut#5$4k*iv>HXnuwr!*bUnX?C^9Z(ok_ zBroqx7An?xDD=9omogzMuF}1rn7FPpB}yTpE!<XunWtf(SfEeJZ_>~RYCKr{-YBUa zl6_fw_c7ioU)JRwb{1NPap)4pR=(yu;jGBNsyJV4$x)nz5%!0(TXDuOZhg;hi(P2& zSRC9AXkIF`Xc-%p1$SFY=Ae@mOH)q<0XW#a>U}szttRvbHI7~}oGrC9=_$D8rP$(} zY}^$VKar&A6Xl$3U8o6d&~JgVGRBS#fwpA6h|9FUen{^6uA5P?+#Duga=FGHy_VR~ z*aHws!t>E*T^lYKPt6y$Fbxe<cE#?Ms)Z%&>CZo`xM8MU6(|0ibYtrG0{>uE?cJ6A z%J9GWZH04LEcffe(p|-=rd60jNu0tE|2yjoHl<9h-TKRH9ZCJ6mS^jHL71}<eO6$K z?SWo5T}`TE;5xqrjg_<*|LM*BnL#2PJB2s69?rg))S#qr<h{nl;f&8$@-xf8lPko1 zYo3X>K^I=6Ou4INuZFnKTTGMP%2xyQymBY6H`U8>Qm<X<fvGcgEuK&m=86i$*fn%m z>YQ&0$5?k^dCG^b+glwfEtiPBgGSA&g$K4k6J;8}`7%RP54fLJL6~?JTj7mtGIaLI zxmxk_$$){B*U?!C{&N@arixkgR~Ll?NBdo5(xQ05I2woe<Nc`~YQKUrBX4An<oqLf z4G7F<#pBYM<BO}IuW{+)O~8aWv+K8I^kp-J+EOY|Hx}k`y0kg-_l8)ewdseYch(Jx z%OCG&_lv}On|UsC2sszO>%9;)r*U`bd#!hncgEhSK}GTc5s{1W!ir6Bup38O2BEc0 ztcb<1*ocT$W^eT8hZYpp>KLW*+If6+1wXR=lTt2Enz{Sonq)^wS;QJ<#Jt2ncd0V+ zdoRRDvJkdDK*{k?R(50bw&zmpggmInEBJdMM>MjXibAO3%8HQ9fh(d|wgJGFWB!Gb za2Ei=$@<&K_Gu+{-7VCeCUriBsCjBg%}9IA8=ae)-^q)AilFA{klo~d-$^+7cWwJ0 z%a4_F)qka|GH*sMct&KOo!=@v7t(&YY0!W1l;-`fe}vJ&_Y6}d=GL_U%2W8mCRi&9 z{S<d!g8rO!wXFlTU1ieG{o-ZM=djfRSobmM(B$*PooDkrOBbAeU!>0-ww~YWITtj` zDu4fH`ly9x7W?<%@V|SHz{yAVYTsRO5{mweI5PBf$Butm&oj64OX3(vsX+ccR(Nss z#Sy_ToZUH`x7ExFXEQKK9~0%KQ^|3_XKT=qH)4MQDs}5;HnW3@UeO1|xfQFs;_FU} zZ4qw8VRET7r`o`9w^fVo%~*z<R>gS=A`l$Rj``-6crl7+!Mm%S=%%+Ho<n=3=X}@> zRudHn{&O}nYPv5ivYhACzf*I{LS_b<LZU@-7MLwBDPKc%a}k&8j8S4ippU2Eqa(z= zl5SvKm5Sn7gPP#vKM!oh5@i?g44aRuwZM`qRJPNx6P#l=BLrk4edyGR^{620yl!=h zMC+y-vw>yALVGO+oUbfFA=EO)TOQ_={T>WY3X^Gcps&efP;DQzIT@FertwZGS5yfH z2`2|8aYoP=IZP^iP^6`Uc_YlkKlkw&G3lfcl@`DgwO0ZSkkHAprZ{O<k&KU?!o}dD z*?6e6_*6R05ELt}w5wjs#e@7snHER@>oTj0j`D*f(lV|o&F_Y@AwQ4wLm+%%KqvqB z)+*CNWi%I3_pX&P(yk7#Kq<|3V82FCO+A_K0H~_!KdI4R2W56rjYkAWYNm`w5Ajgq zWn?={nDpS@_vOz<7D#EKuE`@G<Az*NZ(<sDYTK1@mRBR2UeLilj{&!0*<cXPpb`Qz zl%BdJ_s6LY%}zF!X_wBnIZ|G8Ol4ZxMkc8vO+BJBI`l(fIuv#t@dgE{ma7f>)TiQv zYY3fPy}v1LiEmu}8?wm=J7VL(?a^Pfyf?IXhP@Gfiwn*HE1)z#8=a~TBkYfnlv7^b z-LmG>@Vx=9>T7|OWXtj9)Xf|zwkdRJr#SI;A~9-biigo{Oqp1(&6EyUIDFoL)iVr~ zh8>JbRcV2?iRdvkJuviy`&aKFE;TNz+j$HlTBL$oP(JiiU4S8FHdjdl#Ny&BYs33F zj5SOK#qrWRoE!pT`U?7Z3;l|kB)>tfY9*^qt`=CLN`7Jc;8at>N{U~xLHqsx0^hc7 zJET6fsQy&4xb#ECdI$8*#(vOr%Waf{BrTLvPR1<nwWCwHvr!pnU&w3Z5mb3qENI{v zbI#kPyhBH4A7Py^4i5FyyXCeL9x~8LhPr!OrB$^GhjUjI&s+_YsU}w-iIzDlRbpO- z+1a4(*R^cpNrwURwVpwT{b_@y<n5On&P4^2pL%w>y&T<ymg&8YQ1*(8s4Wq^9<E}5 zbLKTjD2H>6A7ILbu#VvQlKATZW?R%-%jv=1A3&Gqe*{zSaQ}|)`s?#6@u=;9aG_6a zLjFDi-}7#}OXFDbCFkSHJVn~HO0Xpb=uL-bDePQ({I%Ink-8OPDqbVYBEE=JvpHZF zM|iw-uCn+74yWg-vEBqqBbUN`S6SI3^yq#IYN;hd*hDutHu!heDVSa9@$cHZ_$O9T zd=$|_ft0oR3}BC7Al;veItiEU&vde0n-_VciQ>JAeIwf~(wFGOJU{9Aq#oqT>LOq~ z<Lrj1h10;aut5_SmB(2pV61k<f9BF=?e3T4;V9%#5)F3idAHLxHCGeN1($Txxm)!a zEQ#RutVw$zJso8xVwivi_U_G#YmMiaiCg=jH=Fx-=&1|7p63FF`M(k`F+v{EUY)j6 zMFCJkc^WSbW`4ni`zeAy{$-E^y+0c&`!-p`A4&j%QU!G+pj6bG4)1$(cRg=bS$BWO zq<wv!bwBXeAd1QT?zB@{-pVLWCC|*@7U((h7n|abd-bz#B*o#3+x|_1j8<**q3k^> z1S0o$ZQbAZAuNxZrvoM}w^-AsGF!%!qu9jTB?FQndUQYuGf~o$B^wq<POuDZdi+ei zI`+EhBK=a!r$Ww9E-YYuh3<{)rnPSC@>3|9eH%1=Iuavr1HsK01#oyt%6pgc+f3qh z>?q_8owC|ZdI1ZQC*ZMfh_w9^&hBtz^)wk4#8<98>y7ekbM#!V>hdz|pxRY}910rP z1`1po-nc2NcRjy(1nVhmp1ye^gfels6QBH!cTXJ7WsJ=|UXl7XnJVCFy}b8BnqKr( z`;ecQy<^^oYnYHe)9Iaeb5*k>LZ@!*fC?*SR_v{C0w=4*UNXpP$t%eqI#jhYT*ebw zE?rqu8STy^ld#@O*nA>Ns*_4^v8<3@Y0T;U-sCEr^Qe&SRst6#Cex9|%>bOTJ9b_t z>dfR`G7`WV*u_daEzU$Y{<fl;ye)bLKI$(?Lo3zqsI%Q8O8;dLJyhFy=q!*e?!V-F zh1Vo|c?QF1Xy7~#_7CRK<EQnjO9Sa)fEJRyv=MG(^)vR*OVxLVGdVc;Abpc0IxZ2M z7tbaFY9UA#Ba{N5X4|b2+E;y5`S_owVF{NIKlAvRbSXtW+iUs{CWck24g!y0&5xC` z_o|>GuPJmG)B_S70GNve*Y9Jf<vQp>`@)60IuI9Ea-VTo2EuK#B~92@p;O8ZZ`_2@ zW+fW9={nErx_HhkQ{-24$?)uJ7db7N=QXmnZdb$}kn@+N*8(MyDdP3UA6HVKR>Q*a z?1*k1fN8v-wq_AC;H?`Tjkl9$bW`6qPt4g_i5htlbo7V6S2FUv>a6%66&dlcV3ZH@ zLk}UNc2hqsZ`%0-&29#%^~Gtn%(jt|prIc&(gAHS-41F^v94V5QKW=~t156Q3R533 zlW;=%25qMa`Fc}ov|Zcb0zV_vcxB^+iHb1wppRi;V55l&=)QP(+a+<!R!n!Tyq6EU zvNd4|$_gbw6m^V5jMy~+n)6v5^8|J#3~V1^Cam~24wdSsYb}CJm0x&Ac&Ud+9;@L< zu(;0%KIt%7;FyxLM?F5+0J_XY;OirFX00hg)D&~r`8d7gAd$A3SJCQi>joB7GA8$G z6yOq=0}<^O<q=<9uR^@N)SP|X-{wS9ZC@$DO!Gyum0A&We+fb_+n8PLHTVT9b62u% zc!;i^sTQm{lisw^KXrL_kGLAHR+>B{>KL3JXsF93Ple-EXUrL{jEmLd!@z0qlPr}` z<A6p}t8?acYiBNHjxW>>7)?aG$2SGDCX9nQNffsp6Y$)!0XIDUsQ?$8<|*a0cQ;^l z-ZbcAaIXPGIi@1l;ELCj%)+bcAW-I`VAt3`rWJq~Ma}2BX9bC_uLQwC;ru>=%nK`` z(a&7gQbPr8FZm=bk^F}rD`q9;MSmr&-*X$BBnq&uayAMaeT+%2L}hHo&{s3*H=|%a z#&~~X!AWApQk8-|f=vqP%_U;+o8dl(H03;~l6~eC4euQRtQdZY;~pZ^&;Km(_lE!` z?~)JX^F?W<2b-#_w9ei=DMy(kZdP{Mj7`-n+Keq#RvJ5yQ#!3pPG(62q`NtmalG*d zUH#zw1;@G1o14+G9A=V5u^i3+?$GtiDXV#FxgMKdj0}$6uBH-((_dt_d_3R}7VrI; zJRtNX-H*=GT#{_xaKroJvS1=j$%Ohh%h-N{?lqrem{VMe3dr&V9#cC_YxY=rhYZ19 zvs4x#UpTDb#AvHIR9RiBwq2(XemXimIu4MaYP41WMywt7mo`|W^-lFG^S`uK5x*3- zXD00&QcT)&2HAl)r_8Ygh(Md;UAp|BuNvf?b*h*wRCqH-q$tGLrhV-1NLekeo29ER z_nK~*s&h|MNxec&wkp;2{ZHBEpB&X+dZ&&qOD4rn>0n2b8gymYH1Q&4Z@#q}Bp2#S zxB}pq?X=|={*RXdFY2eFsxZoznQ_k6!O-u^6B**vlLCNcU1!RVh<c!eka2Z8Wbq+( z-1N4g$CehThTU#EgZhqp%-5wV_%YuguLlddf``5W2=qq1A$SPe7W?QLfJLo5#CBG8 zKsM7Ie99C8HtWi_2=%y^M=UL0ul*UX=;jR83Ar(q`L*rM3ZjNijcHv0c->j;O^?Ja z`8l9+b{59(a!eP5X+#bt(;Vt{JEv3XM+|T)VqaENay9b`Y)yKCS(0Xdrb^%Rt@{GT z0ghbm24fbPTy6a>Pb+qx&YLbWXYp)NE6F4;Rk?g`nrhy&>ebgPuy(HkXOg{{^%yI! zNK`W5>WbmPm2xaFmH%SVf;_V>aztNM_EXmnx<Xg+&<{I~%u9r=AEc4^dO0Vn*c}jF z8R}q0$1VSq7`8LGO{%$Br5>kv=z0q-3_$jBdg{5z$9{4%irKc={Z(D_flipj{30hY z;r={)wJQ)fwH}fWtR7>5sm#ac{m%I!F0sR6F^^6kAa1s(4Zf&7a#9IO*@tE%jW>7d zx^UX~`?%(%ArgEZYb51@3L}4yXd#V6zc|NI3cZyjG|e1SobwF+(TBn}KzuX%?2{id ze7Y^I`M}lsMyZVYSH#3S^e>HjTNz{bURZW_Y1UoW?2t+B{(_sFX}&WhEKh(zVz+{r z8=r4LWt@HGnu!k<{iWu3CjuBu1FUNhRccYGbRg9qY>BIIRJ#Z|Oik-rvq*{FCsPBw z390AroK<jy_SV5osF$0q*$-QJ9*L@>OU@D0o|`;Fp0HGry4|60)Be&$_NmGmpZG_k zL|_y_vgx10;@Dn#r^|sm*ITU${LDox79A1~#@0!a5L0Q5J|+bR3%0Wbdt^b8eVq-P zrK8{7_QL?E*u>I7A4^XJ-$dyYFT!2L)z~0sVM^#8fN*jEvo6i_xrUzR(`C;zUm{&Y zY4ua+QW@8gu1<Y=^ClttVvEKdb(zvru?e9WV6Az0>y$0KAUTuSG$sLlCNRz;K;7U} z*ctsL*rYk6uf_?0GbVQ&>aT#xKbnm3g{)>-#}&^1;k+L&4JYgIgHqi{6>RZb*WZLH z;zhlke76xM-9ZMR{w&!k{csSMg=nylmf*E_N`GrlPbC2fA<hWJy@p49E-_`KMHg&B zVVyzFIpLFux`-Hs!wTABUm~^3n2}f%yGdYF>FzdySdjF~v)|GEk$Gm&dOBmwReq<5 zdtP>%`}*Nc)uazf`9FZ;rPKdhV!DGJx6P<N&-9L@8FE)_^A#(&nfibfpX&jmp)yTe zVDC_oTMX@YzBQ%_8F6PsLuxc>K2Uq$;giq&L2Z@JVhCgFV$Vb2>NOPyfh4UDbD~`j z3jbUyzSqWJS>|>_uA38Rjs32=F>@RR{8l-oE7>mQa(Q{yFJ>i_KRPsC3@1-t()Rzl z4W{jN&T>fSh`gApp*&K?;-tXsvbVCAa-#%(DVU)*blU;N#`8b}Pz&;w2!G)3V563h zUKC@t;yG>F%Ualt=@aeR6D~G==I(v7`^DRsU)p+FC5BI-_kFi3X8!c;b6T_)lp=3? z*x!31raVx40;Q|6hnz`RZlUuS?=$8+)XDT;iAAP)I$QNJiWEwd5EBa4(X?FX6LDKX z`uz6bD>KjLZ!G~nNWk|5YJlk)Oy`>kz5n|!TH=5IvA3;2{(=7Y->4o<xVi(09xn^k zs48Wh+BsGG%YN0$O$?fQCbaOXLMDzi$Ur1NxJT_!YnVD_2j~Duf*U1Z{UxvdB*I&N zCfZHVG=C9sDFq1H@BCDW|H?3Qq)C1&-Ja^<W)Rdu4Lzd!$)Mmi^-BLSXE~Z+7pdjU zO+8l94~{3#&bMXQ1f}D1Aen66p(4K}_k)FmQVM`RvN<3d9vYL|rs1$uV!x?>|312? zt(Wl8Cf#fPS>@t<k}hgz36m_|f|01BFe1#P)L0WqoW?rCK^PZ<eI>r?!1W}beA8Wl zk0m0VM8)GQj%2+-!D)C`ik~1}X9-^|P@>b#eyG%QM(SNz|H4804wME(HF5PE368%n z?EcI>+bh@yb2CzlP5rhaj+fY6@ok&kvpfeQBwjqFUw!9!nsz12YJEFyI;IUOrW3ZL zn?YG|d(F5^$KJ$-YPA~ULo9d?;3rWp%taQx`KqcvqA8t4KA(}8#|qd@pBaJNRPGXj z^mr;S`U%yAIa9s?WWJWVT>|A=l%EyYpI~db-s!qz(^}Qyq&fX{Rj0}A!GYYK-ji(T zVi%omP?(U*RKirpg4czVWtg5JibQo8(+}HKQmXf&b`P+IniB0mm5`<JEj!k<b3zoD z=(ZY7zSEQ+cWNhy8OD@se>V$f!`0t({)KSvKIZ+EbQv5W-@ZWT(%sIr3igX8n|0}Z zxJxD3XF^q3bfpVOq}Jt7%ptbMA<NU*<i5*q7vs2OSf`49&slyjOaH@&p1Vi9W%I_( z>M}!&UdZ--Izt^~p5r~@6iVXV1+l}=j`lQJJdYy}5*IRH?H*;+WKcKCApU`;!qyz8 zp7B|9V}RmSEAH~H<liURo}Z=v4_=wug4d|ca+5Z(^o_&B)-^EAzPPEm6k#ShV`G|N z5UmGoJLBYpM2MpjZ08;tDiLliGKySiKZ8aHmxB03ZyRm^&1dRdt`~f;_gN!7Ne9Af z(7|%K|5mKTd#Q_zE=9LPs!mLuvJPd-cyQA-B~~x8$U?8CQ=I0rPuneHvwXo)DPiDf z;;Sdhf<#zr=Ji5;mp->tb?fB34Bg})z(d=s`^aEW_u`o-EJRMn>rND8dZvuZ`NSO; ztn85VQQlsDnwC<DfX<ids}P**QzYu!Sl+hg76s}4(lZ%Xiq-u~%Qb2KnbrW)yZK0a z^!=GiN48qab@r;aBYeqqg@*lXaoY(jbqAh4><XWIpZ7mnf&Bq&<*egbc10cTMLTf5 zY5P%l$r<GFh)ao=2uZwZSR#-$c{48AFbbOaaSi^DCRE}ssj@Ddf4mW2!J-<<ZFx{b zMM!j4aG6u?Ti;pI8$GDn!p>QUbLl^f&w=(mh1N`!y4eA)v6fM5_-2HjU32Q<ajjeh ziq|@w%sv9+m83~IuWx*L@$TE-B$b_?uq<Mc37<ODRp6Rm^$o#nD%@`DWKzX(#epfT zUH!0)P)%irPKTBcYX3zYc{Juf1j}HqGqED`qzSp1o8+BL%S7ma6lOoe@wyZbvfzTb ztszxY0D6XO;lQA9>$e+-K_xJLuk@RT24v|MhX#D8QPwTOhyIihQx#Y-;k)=o3WN3L z{T*=%M%?&X<2S33t{whY<aM@miM&K<=dF9#jsw6y9d6;L?kCz$r|$IM7s(<>q99wz z%NJ=lp|9H}Q@=Q3pNbsaA|<IdJw8F)l3hb<bBnr<i~PJnJ0o2-GPa_sfpAF_>+5Ie z>DOjh7&%HPXl{}yH*#}Z7UmMUnRCyaG*Vl`csl=<FRbk@UbS+*ScJ-&gZvn;_z(QT zx##v*FuS0B9p=zCDE0%eb=UEuqrgSAlJT+Z>xY{r+Xn3?U}LuB8ZMgxVy#Z^3#6ex zMf3`MT7PH#h3CAEnV1ZK!+6T<#SJo8wUnmRT*b?bbzDbcl}YdFj!5W-;W)5aGxNQa z{C&3maK_+%+4$+>J6C^J$8uI0Omo+jF$RpapM(FJ=Kq$BS9-IUR9@5^o{{-p?h)W8 zy?J^h&k_BfQQu!I<hKK18ae4lszbX_yCA9D9m|h0uCe)r1<!{Zr^w6vZ4DdfbotA` zmmU?Si;DwYF`?UYPc(>A5wLxxK|>zXjT>hhasz=%>ix=Ya(Pw!mm`d+fuFz!k=5$T zhPvi~z0r=T+$!@3=JeE+X*-bUG+Z=rUpClAifki=`b}GUz53aB$1zeFO1Vubs_xIO z(}GBoI!}q?!B=@{xHJ3{44*$f#(ZqDS{k&j+jU8>X3wWlfdpxol4Md0Q)#gu+SKFa zMEw-KC?mVDc8BR89lxw=t}*k*k4?(E9g;&Nc!SF-u|3#+uQk7_q+A7G8q9E`ZMxIj ziW!-3Si%bqhbVw5Qu;|v&PQ^nX?L2?r@|LjmMY>V(-uu^3ycI!8MK=g$0O~6MWM9N zB2=R+b$n3~ouu^68*(-YX4(5u7rcFOE;3u0fw^ZQ%EgxTZ!?~fHGvGfdQ+0w7j&ot z<jhRb($L5XEgR=Xf*<=2u%(YZT2Y!|kvlGY5Y5(55nG{xBnQe}>PYJwtc;eFpk_7A zZzDQ`klhn?ay|A~pMdIItx8b4Ni!9gZKE}<kx4cX4J9tOj(H`uz&{Znzw_R`B%9a- z%P*mWZ1X{S+^9DUReJ@eqD2lto2A!h>39X3lt*l{OBe7ja3SSsFrRdZ5%6n!@C*1j ziB17IW@rgS!jZ~L_1a-o-`S@JC`vNlxu+)b$~u#1Oij^#Jsbu<Sd7I*>j{#S8k`cf zG(GwLf4{`ftc$nUj>nNriU#4VcO=px+`(cJX^&NT2Ffr@OMLZ<DezyOwA*)EM>~cC z=X--}kOxf$cNYL{I+Nqo_&>nSR@lQGW11!G8f0{YxhIkhR}O031aUu6B;BDal&q!G zQzG{)95<kTg9pVh-%OIY(?_%~%gli6HasLVM&V3AiXmZDJ#-ey{DgC=Kb`3h5AI)b zy+Pt<rig0YCOo3yoCGgS#+_(aWRBQv-G?0vWK>AhbgQw==mFK!zHuznI0!r!wp$E6 zV=Fhpk5|-u`>yK~J<(^;v+3}%H#_sWS5;zU3=7Zc5Q<YK0&%nQGP<5sTB|sl^!6q) z0uf@NO$b>CIW`t<1aT!~8?5uKdx=XXcv`pp*ZZnxUC*a+#qtCFA37x;2ga3GVJX3S z`fHv)Xzz^6g4aD-A@j&c%(h}V{YnGIR<|x!$!*DQAs|KJFc^i~(R{ee<affkB~$3b z=xf=}EM8}>7r1HNPumA*S_4;4HCw5~b00J>*c8RG9wb%cws8Y`;vmeWZ~DyKsbOJi zLCIpcvBwZ`IXN9@kDlWR3N?rdG_mySI>O~G^1e5RR_SSnae@Ryw=M&{;G3>6u{<Nd z*#gWCWc7%o>L;O~CRH}C+sxeVPZUkGrx!)O>TRjBGwI_#@@=~!3P@(qGJX_t<ngRd zYATFowVBxS0`wD7&62RDk8^{TRYzB;zu-;uF&vd#rd3|`SaTdToAhb^fY01M36M2| z8}>l0!xP}@!ByL*(9I|Bq>O$sg+=i56CB1sNf(48O=eQC0B2QM!0i+%Yz1s0LM*V0 z*lyW?0Wq*&Wgn@VCnlMPcFUKB(}v#FiNU93Wr`4XFPGN<1~kCt{@bS|Nl;Tv?m2U{ zzO0*uj*pe8xxzLEciZp-GgfgKA84ej+sEufEWLI~3RnH#f0~r3GyLPUr#srJ$0(N? z=nucBmvQbO<Idx0+%}92mPLqEXBj`dFMnecp+9bQL6?u}6Np@6zZi>Y4I*-yeGy&m zW<y5t3f?c4NL?}3BKFH#ow#Kj!ECHZ<ElKa@dD!MZBbk;_Y$7Rwlm1%o?dBrx->st zH!bruQVw7auzn0vO-riLrpueeIn*3Kn~~n#AHQaYW!IY_wgl`66PczVdD-pIdNl%D zUGq#Y%QxG~=Oh5GY75kO$M{26J7U59KzW$#Y}R~YyoOAx;8Otq+iMIL=)+*u`lKM) z4JSW&R7D~yFfh`zv9WWV^sCSGx8}1eUjvt28}lt;q;>L2%*)anL6zK$1X_cscaF$_ z+?zz=?M?U*$WN_?F|q<+O=!$Si{UKDCeSWHcC7fb^3&c(N67&W{yy^f;$Y_^nrHD6 z>}qu0d<u-=;CmusNzVfg9J7D{4jQcQA)s(QEV~<Mvsl)!hCO-N8?8f53Bwy$NHL}? zv{aeSNNFv&z2A;y;hwF=w;xEjBBvI7o^)w)UjEe?cl6Xtjd9_dZEat8CBOuIl6MJK zt<m7TB{L^m3~;6NEmcMhw8B*<y7%}##HFEr5d$)b{|v)^HWITuJ6_85NE!QwJ`Vb_ z!9EK~^tZzp1a`YZY%M?Ays0;GqhJ=Qy)$13xiwGQ?d4^oX!QdL+~nd&Sk$?+rKK2i zA+<X`Gf#V&n|)aXPI(ILFMG_Tx$Q%xFVH>_Q)tjbSaZ+V8Fka(=sl-L{-ECX`WGuY z897Ul$#&9%S1Ue+Dfe9>$c$c8=SM6N6bS%x1iqN;U9j2(%+*l1e`P#lH@zLiu45y~ zepv`f#+#kBK`K;O(R#qhCK)6K(f&$^`;eu=n@<NZ;RBir%@p1wTul-8`pvQ$Y;C9~ zURjS~6!zZdgH^g-Z?S}Ys;d_<;lo&7?e1mJUotceB;Ws-ZpQ5NDl?n7CeR3cqs%s8 zN}@6Ssg~Iiu$gyIYyis6?s~153D;RVFxz27Mwa_ULjo#A@XRl|@?<>K0hX#8=@ls} zF=dvUu9qi~7DU<Mpl_+mbJcYv?GoR@V9$ESFBRpBPJ*U+gReLi+xqH%|4C6`0a#&l z?k4%m!#mCpY{8EHP|k-;3C%&ioJc}mZBtG&I^_IPFzMls%_aX2{6GW0`4?79y7*cg zfN9x^EUm`fo~!nJAjJkniy>JMm;5yGM~a>nousZrlghjm@V#t_5-g+qBSwaDj^>3s zk}8kZ5RvKvOPIKnsC+96z!9xRUsog%qmaTB0v$w=2I)TsN(r_cm2Gq;DIAE|P{9a+ z5hRV*DU!E|E<Xz(Wp#o$);xU((5ooK+NXIML2%|6z8^#OD(`Hf^|;bYpr<NH2t@8W zgs%=sBta5(YuupQaPHTU7I(Y}5v+f;f5x6#WTBss2++UBl$1}3q!Fb=n7_#ccq&IC zL};+Igei@Mr8S=yq3s}ZbITth)YGqqKhg;C$NE^F+AS~OqA^mMRF4g{m*S~k5`sf$ z^l>Lu#N3L$A~lclf(S%VXiPIj2_wLyYZLPp&V^lx6c%5Dk{pc^^4LkPx-lT~Do}({ z3!EGfS4GB>rV9^&j~r<g8k>+Ji%6wKm2D5p>HMM`iG3<S&&Vh4P4*e0*Fr{eI9Mj% zAq=RUZrUKFc?pUTLStK7SR=t2*IQ{CM}dEflfPnEE2Q}A%vbyufoWgm>*Juj4mH5w zrnD$$TKo>`C_WI7mlXPL@KQ<?E90iLo^_}EiZD3IOez>1_$xFktxL|0ym;UFP^bLP zJPp+nC6yXbVsQ4sjVLRNJDpCVo``o-<WhM$mB7WKn68za=~E>K`e>|E7ykf9rAq5f zTFU~JK6+iF9ZP)_PdZShloV-9_<H{UwMyyGRIi2UT^}M?GP(Z%fB)J53<CiG0ssR5 z000o;0002bEWle@XAn8M)jx#HZG_R71-$zU00`}H9xr<*a#U1Q#3eCmsi7e}(>~U% zxU*l`o-oLxareUc-o3mTcbV8Vy)Mg8=gdnIRJ?f1u?h2yv!K1TFx-MfkT2j7!vJ#y zEC<={1rzOcRUIR=n9;Coj)179)<P6w?N#n3{*KK{k}wfH3X=g`f*m(JUbKaXAdxMv zyO=yZPwm`{o_D3xFv8M!z&sLD7H=oV#t2$P8c2@U)*+Y^E082}Pr8do3x{f1R&Yu{ zc<pk(I@y#vnXbRakDT(4>D0$*z-ChoGRrZWXkIpTx4$9TSH(3Q$Z_8~l8ZmWX7o8M zQ&|QpefEehP>LF46q>-%m(QldcpjB5a57V)gGdDM0T>at7Sm(zRohZYuaKe%t+d5= zD*_TX?F>fvf5Vqr(*FRzANu`pu{}fK^n;Ht_{wvgz4+dymNJle>%LZMXCY?}0qf8e z=#fal3B4k_aVX?4ufu_OWoyo$`SOdbikODIB2_}%MKYh#(9xOKukEaU<qLF;`h_=G znzA}v6<9Wc9yACb!n+FG(g-^*iU6N}zZO+sCp1A~juoDaR-4boAGqQ`CCGu1fB5>x zK#c<ox9h)cxQn*(obVi-_RfQ%M8O{Px~YTWO@-7VFDrIU<cFmyAc1?oqL_A#Y|S{| zdKxhyVcx?a{{XKm;Ph_VU0yXAiz;)`gTN`I3q6Pfh8~vFk+Rp$Dl>15KLhg%A>jS? zOD)TKgQ%kblf$p^LxXu`Pe5?<u_Y@mSTwshLLjP4gaG`Pjw5lfT?(qQ)&%KQ87gbH zSG}C0C|+L4TnW~3c=*S!+&%6sv0MP3;t(lZM+Q0xIYy9$Kk`$lByUmQ+qJF1ZxWy+ zkox#x3ILuB3!{LCwT@4ZC%rs9@R_3^6s$k~DdbRfK*UXPz;DtQvvQyxabbMZ5^l0# zSh{Mjv<;XaZ`#o}L;GBJY_PybV4+mg-fBH^w>UJ&=`8w6&Zq%XhA5AqI<AfK?9D>Y zJ+v)g%K%i(qVx8Y&jr|A1)fxnR2(HRw10X?X?HNL2e4dN<~2sbcFYTplrvOjO=@Jt zj+rA9r642aOP?l3U=HDpS95FF#u>q@L%*daNlNsii34Fl{h3|pQSb^lZz26C0w^$5 z#5WWHmKIc>7$G`PP{SjdW}lKgt<YLz29FREd!AvGL6zNS*R5i7!g1?st|HWs9VPN- z0&nlS^XuC4mmKC&e-K9oUh8=8(XKe_VDMu^xfzYE(Sag?UXs2We2CERVw_7Gh1GzC z9DQB*ut;X9Cfxl*)t1J{u7?TuA*hm-MVA<(KS4PWkbB*KfY2}}9MLj7Eyf;QNjzw9 znT03}hXuK)l?0Q>8Tbq-TGG%;#W3MzmBD<iLpH-1=XiEL&qn|vcTDv_F4q_&k#{6{ zwK7MdMEk6l84}td>zE-2B^Ne-LW69CT;eHuZVi^G3PC&S>Jg(lQ?i<4gP{i`R8uL< z(QP<Kc9<Bg?f(F-7rZ+hN+G~5v1$?T1cmKa_{nXnPrzKil?DiQSQKZQ@LfE0Zn4Td zk?#Q0V(9cqS0lg6Y^lu<6d;O%#3VaU!qSeQ!6cnAVlC$&=)S}QLKD6p{5)OE&9Z7B zQ<;U67EbUKx$ohxJ9BXhb&rro!wp@3Q9NfaW4q9I&z?PM%AKBi?Op0cYArM9e2q{x z9Y)c}-&T=ji8c<vN>J<?{{WL)oeo+){qhO8ikmP%eDoWt%vm6HJ@}`sKo!7B4>;#u z$;W%v<k=G;Ab3hv6VzY<lrE6VdNU8#ng{^>ongGHJC{HZO+%hC7IF6`^aywHqoe+Y z@Sgw}v7|*_$yZEWtF;IReWEc$$#hR`jgG?q0M8}ub_WvjyFJ+&ryhxI>p=iHX<PU} zMl#g3<S3Vs2f9MV%AJBC&mekVgdoUpN>-0B)A|?gb0e%23%z(+Lv*?pzYjB12zP>* z_Fq0PT{Ai+>n1_C#Dj&u3pC>bm-9w<WDQike4gUnIiVxpjEN-U=)hZ6d#u;Uw;3&B zj*XhNihcID2{4Bq{IFrze4m;xk%;rkx@UmBYHh>J=Ax$@R26xe*$i+xHd+PO+Z1;i zY%kXLsjd%VyM#FaUH6c0vok}t0JBEXnsY&o#zq<lXsx)x@2I!14ZJQ~e%F;C9lJW1 zL`s`HW8@{+ZAP~;1aUCLm;yr$1_`-pP10Y+)^x2TD+SL{$!`~_nGtaiGT%7e%622T z9?ZSR*xy8{<Aar8p`qnNjJD-adX~dX?Toufe7l_a1>z98QnDB4grJ&reEkTYb8TrW zNoTt}X`v<tshRv-)Xz2>`{Yg89R@sB{{Sz~hnN>WfDs{9ddWlKFEL_3$2;zgg_3Tx z9T54X_$^Fej=yaG0E|)w<;sB$Ge)j?rKdJ374m!HXIE)?Vk<qs{AP67`%2)ECL*-r zA<17!2cJ&zgq2_o;2bKP{OJ9KBoZ&%=LJ091PL)8hl0wTJZ&a;mIA{0g(Y-8zWFxp z^+s}^sJXQZT&~&N^+D{d0wPdMfM`<nR=+L!BOxJh2(HYROF0=&>V_}_&Pvn!ACpZ} zmZ$ZVH)J3A_h7$Lc==TniQ~vx9<b8#(}bb0HT4*->{9J8NE_bqrtdw(V5ox`w<D59 z=WlH=2p|kBeq}crd*_5%F#`A7C}aNshFEgP+e_tN5>kmp7!`%%l$%6EM;?!89qap5 z-#iZGULBaxm?g2|{XC7bK2e_{x%BGoN!FhLwul(e<u%8fEk|7V4#}XFl3G8RhSWE( z(NA}hBWtP%EUZ%vB`9_SEPN9C3UpSvNMw#kl{0!pWj1RlLGJfK_*Xcz*DnJLdnSj^ ztk0p8QKb(@l|QCgtDTfoX?G47;e#e4o}VoCw2VLZYe!U_eWEq^s^Hu}r@U%Ak~}Xm zxtouW3OGwHh&bVs!ryj=i{UJ-p8jM5k#W{QTZ$!D?u-=eTO{QMl(O|TNtVf9wx<0N z^d-WFL~@POH@1PgI^~#v0~l%!Bit0p0x&@dih0x(jYek>Mrhjcc1up#;a1IOtr!0Q zH7Ya9rYZDf?3T)>?tMJ`VO$jKtt7*t1&DY;NE@M({QNIjd5qU(so0)7t4bwU)0>ay zamB=lL1*4c?lPBOl><DI!+u3va%mwP18dSJNrlR|XraHQiY6p30yMV47B5qxePX7w z=(+aSuLVG3q1rsu)slIed>Scq{@ahgAj<nNAt#}Jya*2&zPx<~E1zVwA!){x<u#Ch z`qp-Fd}yAYl<CO-08?&TaE^b)%+X;>tgl!8N951Q{0Pa0PPJPNq-)KSF2r{wUkPuP zw6`pWzIst{IK*I3c$aWtn!&Utd<U2WGD47CodVckJetA5DRkL?xqF*0u*~m}Iemvm zpPA-tsGF)5=Gdk+r(U^I!X1UaZsBLL5cES52t9)s%}zbHcqNsc{+|L+^s9cw?E4o? z1^Su5-zoK7%q&pzZ6$yZ{v7HUzT0Q*YteLy0tPry{{X`(NFXcm@=beT8A5Rmp+GI~ zzum-41xLhT5OwNET0X4yn1=KRIeePQJM8KBB}23L=77%Q#|o}1wM1#?T7Bf8m8tY7 zylMJCv|l6$k1?>^apayGhwN_xNfbk0&Y>ihxYV*xZaO05PKqhqG;!T`d<m0lL08Gg z4hu2Obb;uO@H<mkfCD;5--y073YEp!F}CDB;R6kZa&g^DCnlyOP&)lqX`#Qm5kzjN z+<kCddszC1)9FeJ2vdK`iRD+!`JqmJJ=4wn4>cGg&A|^aDDoHV{{X5>jS;%+{lt)7 z{mg9cRuyg;1^3&#Ag@GlfAo`)K3m}tAitO09Be~P#P8kaKf~iHUl}ah%E7(9CRV_} z;z2oA{lqYJtW#J20Oh9EcCt4sx3^$v!J#55Wxc}$DS6uPcm3y%WcR7qOfrLI3k`Ab z9y1$Dxg@A93sO;-N)__PtzwtNc+bsiewUydfn0R7lC#evzGig<8EurGb$8WhxZtAr zwN;$bQGT88d~!!fWW`%!y(pDxzz?qBVA9AZx<!?kNhH&KxZ9kZE$@jC9kX*MP23L) zCxLs_fSqWt&H(iL%O3n!KF!T4@QoE&MP^@9hB3NpV77SUF6pS7r<5Xk>!wDNj<}?n zIV6$^A-3|6t0g3!YAlxf?p*^B5a&=_q@D;1pEB}JA3(t@Ax8*FO#r-l{Zp737oT<4 z3rWOF07Tld_D4#=ErvR&u32Ha>0*K?RbBr8YnHh`!S%<2bRS)YC*lj}zKAEI`Y*l= zC!z`<f_d-0`{$wvC!Pi8zIZ2s3MYbkC%$+no(w0R3LrcO$Y639K8xT2h$o#1;GTK! zVEQn=2q>O==$;Ap;|M4Ii`RYo@816a|HJ?)5di=K0RsdA0s;d80RaF20096IAu&Nw z5MgnVfuSI=!Qn8`@bN%U|Jncu0RsU6KM?-_4fiGYCnKNS{tVAg*!(p<KXT=q#na41 zIh$dUCQ8Id%+B54+yaS2qEe+0s+%LL@fgMFeHc!959UJX&cxMMJdab$>RRsNxq?Bt z<<n0v8>`w|ndJ%@-m?DyD~5#9dHferT-EV3ys$MYR4jtadrD$v8XhGrsH=eY0dG?P z&aF=5r<qON?NLx$(pMwY@**u~Nl$4|t@A5+Z-IkzG4Bm@n5Sfeu*+~lkUULsuEZO( z1)g|@=(R`qsX=Kj-^ca-OP<~T0CKWr)~A#1SHHPl{^Duz%urKOcBg7~hzoJNqlrpj zG2#Mf%XP0%t=eczO$4KfM+5@2lyvHTIvk?rT)A@K#ZS`~GUdyc)gJ*YvQkr--igcr zN=i#0nRb+bixuVRaeo~T6G7%*ONv~$GUNJ94?oOI%*-!6p>p2R-KAbxKyxSzOUnW- zOl)OkWg^4k28_gWDa@xZN;52v(8d{ISuEmZn;18YBtYBYD!WcdGqD5?h(xR~M<CVa zSP)y%IR}IhLlWl4_-<Ud*h|;<8^dfe+@-vw?iHl{qChJ{nS4It1)=U=1Kh~zmgA#L z#HYlzJWG_RdhmgQ0Ys#t0<DxlD@Y7iGxRzi&7Y)<e<FP{9V%#ee+NmS<D=2{U+@|p zCX>v1pO5Kgm!IZfl)*tvlQ6k-lGK#wyGjH2ws?OHUR`y(PprkC_Zl{}+72wnbcYxY zL*)cQVw|q>>6W2GH4)Uc(m6}<7K<>vyv=V(PO{7^JpTZN=;nU(dhGE2AF%z)C6P>d zh^NF*(20^@bF>N%5}?J(lyLxwHP6uKWBLA)G5m<NMuaR3W_cc`k?JXL^p^hs#1%D` z^B(W04>L9w6TI?+cXmIXhl!=<@IM_NnfssIP9?Ji#J3YGDd@bx!85IGGo~QUuu*p_ zyD8<GuGo!hEC$@qDEG6?l?-M#TV@KZini7*wP3L*qvB*W@e?f*WxV3$>sYB>VY%HL z1>_|S#&%NN>pXr}4v$868~){Ybq!^E`<4FynMlz1fkRtLaULReh#L)M91u{#GLG_{ zZd#J1VDSSN1EHZR0beZJKSQDa00a6T;UnT8Sv%9bPUL9TV3d@Bm9dGHfYZzQ4^0mf zOV8kbIy3h_xEg^o0fM*MXSAm?bG+JK4-%Zfy&|%y)_60)^((^{4jDix(s(|lczsIn z%k0bZINLoAhO>`}YL_jI>xpk^p3uE<Ey;<J=RV(=(df%)Ub47va^L!v;#*4AHWIe2 zV1O&`Ujy6$bbFV;_X=K_ZeM2*sNA+HW!hb96#Yx+7?esNN;ro}srcx1>3@^@5u5%e zO8f*XuA}gDnhuO7-jC;{;%RyO564bxc}Iv2S(rdYd6|~YL;)^Q$6MF=I^5IpMiBiO z^&W>qS+VgGDVdqlQ+G2hg3D*|{Hh%ujQ!8wMi;ETU8lQoimco>zR<m6So1u7<r|`` z$GJ>rcvR*hh-gPrXq5vJr9i<df3!Mzn!X(lzndS>kK{{@tFbLHa?r~X@tK>SsALiW zOSx`hxrcm2Ov>*FHRg}!r{ZaO{13-YX?&q-T+A%FnAsrKxTrh8rqevid4c9WS>(!h zl!&eUz#zOzN=iV)sB-ZB2Ge7~29nuq&a&I7nVihb=e+(u<R<R_0JxfKsl3wv0CB(# z>C7rCn2q>g6=+ovEIUsEICLwR47gx+fTzSJB@(oWwXk5!2xxQ&O6Ya?bUO4S_`jk4 z5Nhm;l4%4{Zjl=^Sbznxy(;q%q`7nNel^$YPuch%j-1f>MTt%Hxq9~?`V(Hwu7ABO z*_ZV%p3tZou@ur<l(#9UH$`fy3ISS6f9fdImf{y$OzBWI#?zm}W5G1amEI)Y`UdZ} zOv?KI0EO#)3)lA%tv490LhkBj!J{c^cGe4qWa(Lmg|#(kRmvPo9B~`1U}#7$X_;)j zqQM3MDh4G&>)%VSfi*<wT^_X`(lIkD@E}j3bT>MhLgX|Fr@Cl5UrilP!V~e+@jquu z=yYK!Y0Vx<q8*a^Oy&jOXuums61zZR-BOgeEqI2X5BCCr-G1R<dFuYp!$-_@=xF(k zQ{p<kO{UKT(lNQ7m6(vSTbWLK%liKSfi>@S60@pwXWn|;e`iZMnC2qi63$6ZNQ`H4 zBDIL4FiO^5Vks|Z<A;c84K<Z2AIzhpSAo#S^M6RkU&MrO!yebDfogi28ci2-L^?r6 zzf;TVS1+h8V|Hg*PczO0Io>@_!%xKh-5!R&j+D{lmQRV9a{EASYE&8lKB5w#D4O3# z%u5bG)W|$Vry5!@Gg{d+r>R~gCu$<JfT69WIF#a3f&#SNlyL?h5!M|zn>-OXJ50>W zZf9AUn_x`J`u_lda`OURj7u&sUzvzi_az(>jwKutjNs9LrZ#|aD3#g=vQ%ds4LUPj zh-i43=4KbqLw$9h%4+aB9<NiQ`o=o`Bp_r=6HSz;wl7F5Dqzp3lS#Q*-V2;OPUP=I zS()6G<{>rAb^OhNE-SnOSCjM5pRpbZa{EEch?HRSG2~_2SyiN>%_7dkF5A4u4pW(6 z4oZAOR9nF<;ELIUF=@0Y1~EPndndvJTT6RIY4IIj!)Jm9iJ45aMpOx#nasD=Gd#@m z^)p(`g|3ltNRHEYn3F=enJm4fHw#MTiW_P^r^0+C*fF2tQ`!Iv(pMwYK)XFpBh;qW z^>~R3?h(4z>H^kbdfcd;<_qEu2p7DmP&x%aGgpDo$D{cF00`|Je+}UX$+t5S6}b}y zX3-U~ZUn?gHV-pF)V2A91UkUjg%-0y&xnbKu9t}Ma_%l84SyXDiC}}44AyR!2Ad<0 z7SyjiM^?d@cMeV_Y=!X`$|tlG6>b+&SuBcbZz;^DB&Q?_)>D~hF-tr#(TkU_6K8@v zRM|5v#Leq7ExMJf6}ii|O76<c!B*-+U|nmhp{o2%ZL^ON(xw1yGh`zHX{$Sg?i095 zY8o@VPW10WaCnrJ<^p_@l>-{V+L*dAaN<$5BI>22xL-3S@dhnk(45C#1EGxCJ$C4R zk&LdDHz}7c4frBNff4~#DsL?7(gJAxOyfUOJitxm>z<2MiXvPauBTl;9RaIz6xK12 z{B-&v0@|JFN{0iq{yHmlwMtL;K!c1yen`4p-lGtiB90{-N;rU{5{@Nyl{WX$aQK_B z>$Ait3{<vLGj%EE1I*3TZJU+LZoB;S)@qf4{B(4T(I%GpXY4-$eGkJ&->K7RrTj%X z+8eH9D@)9&UE>7|)1qqj{L7cqL&Rp2UX(4xtV1vohEAGYD>2ulJWTO3#A1oBcr^-$ zvof5@MPtl*G&f=37PFm+K(R?SDVc+c4|*aK*$E(hR#84FG&N|b26<pWjCMT+)K zY_FItq!P%O621QbP>zq(DwnJa%WdK!OpBgGy9P5e+tj9l{-tvIjfS!Ao>N}26y?%7 zu<280iE2DVaWgYy&a*s{*_*y)xu3!vHBF|{^V30sIx*%3ZPpf))>x#a`j+SFTbPK2 z>jnP+h#;@hS}Y5CN_mA9ys@ym+?K6a9pFSbiHTCns6SGhLE+r#ErrHbF)uMkP4Ntc zrDeyS-{LepN3G0XbUhNUO_K1{Uem-nO$fqo({I3Cxa+6p3$J-X<%pCfpwk$FOJeT^ zz1^nW8U=0Az81BL#k*!uu6<sFb>@b!7fwiN8>~Z2%YahVXZV0Ea_B;Hjl^4Pv3MYJ zvy=1F2K;-U%#L5SP#vW?idyd}DJe22l<zFzmy--dI_Vp>x&r7z%$iM}CW2cj=2LSz zOvd42QyW1wYs}YPBYC_`^xCCnXGR^moeNhi?@sjZL@G8}PX48P`jp}H!ck6~GM)WI z_w@#`dYeGj{-EB3&k@qrss@Fz@dFW^U|?lA@e<Pfpm6uNt1bwjFuLO;K}Q*a*6KwV zST<tjlApr5S4E?=dW5dtw`8>2eae_zCL_Zu!H5$KH-@Y={BbWay9?K}r<s#@LN{Ow zRZAE&+9N0r2$sV8%Y%oY;u^|E6nEAf*LKHkA{NbH^^^Ah0I5vo4Rn+nl^j0cR+IM4 zD1zTQ%W(!8V2G|5T$bT<rjOhc<)DK_Ql^tY?{ib`04JP9M})8N15cNuqcG4Vbx2c# zXy-#HtnDpEd%;k|7c+@WrV&8C@s%=nVz?;UdwRct*7|<-YkYnNvqP;zpv@6wm9ts8 z@%xPkG}nNyJ*BcoXPDv64F3SQ$hXXHQ7u21=D!n1l$l})Nph@P<njGZ6LA3FRw@i> zp3xhm(-OFr1vlDMu4QIgdqu4|h<Yy)jU4j^`EOZDr3ZLv4dn=zd&1qAq!iW58VGM< zU=Qjo)TFb#c%|w>!kb00k5Y#|r+MYBFg3Sg970|3h-(lCrFoh`+nD4ED~WwQ%`1Ns zO*hs923e*(O{q)26AedMgEySFXQ~-y;M!9=eaeEG+YoSNjt+}(Z%p$Wu(vFymJ|S4 z<iSOYJfCxhU|?r4AnO*|OE7dZ;s&(hFD}*d2Cu}jrqol!%9`&jVGzqh4|$dlHW=>^ z2hk~)X?f_mn?;u%9-1ZQTuSq!6qLASqTHipWy@1MuqdIK<(3P!C1I4k-Ln--Y!@=_ z%En`_%tEj%#!caB)zA8rF1+fQUVn0e4KHB(oSV(oCUc~0Ma5130PTOIIwsNb)mZ+v ziVhtm-PhcxxHueJ7lLZt?+x6dlYiW<4Po9_XtFvSL=s@RS(q3wGef8vF|YTAdtTKA z*YIe3!*%8yqEzfnV2v>qTTL@83ju~BkX>tA5J3jq)$s&TwYx+8#cJ_4gcWg&Z)^_G z(|e5qkLFwMJl%PPR7bqiT*`UH%q3LKWraE<L^ZfdjcNX73_f9CuJHJUR*^BJMFX@t z_&As6)Le}^&juZgzRXoBon`iiWV{;E<BpM94fEP!`LdPm+7(pq%&oNNSnE)BXfI4F zhwkBK76;sLMaoqAgl5Z1$_qNyf2i>yt+bSQLtdJu(z<EsqCFKmy=8m)mErWy2h$bk zb>d%V)Hn~Q_CBJtQ>PFWqv}=V_?R3zaV_EX1x+Af=o&6ig=Y{bx1!iKaKNC-N;^dg z-N~Wq3R>?1f@>U!6Bcj#VYD1$;st}+ZbQsU$X@U@{Y-NP^(bInpY_6;p7x2%uJ`;# z5sI(e#JU+_XcF-GmaSA*8#ILZm(xlY%%_%VyvufZFjZyLm??1Vg39j`HO3*f;ro|R z)?3{2W&zdWv+~F2sH6qD+`t?xBCZZKlm~XG7|a3?oE@OXHq2~Rb1^l1z|*ty6Iz8c zdVey+W$LXlZ(FPGD`xvczL6XRZ)5WWS7}-0r{Sg39SuHSsY13{W(F<J7~PcRtY=1R zZX&VT1=+=YN^BC>h-;4%Hkg<?O0=5Q%}UngH#h03Z62Gv^wA!JKQK`L0Nef*l4*2$ zeIu^lF~|+(r)+wLtMdlwyva!G3bq?JpVUe+x$Oo+c9)8dTtiu^?3Ke&3^Mg8h2kcu zb9pC(ZG?uHA|=|}OQEI@nBCCgx0aZ6ai8vFqH9s$7lSggYPzz<Qsu-~Nd5(gJ*7Ro z$_cDTnaw_4rTO(QO=Ua!o)4)0<Qup37Xt4uXd7y;Np4?%i=}STz_p%#a0L>G>Ra4Y zxzx=^McGd~5CV<jR^XpgZP`QRBSwyE;s&+xEDV%c5Nz`aM*&Gr(1H~PhoA@snPp0K z!^Bz-GTvF57Ukwszqk(m<vaU<Qk+USlv#)e60+iItlToH*YrTf-{*NvGa5DXDOMQc z%teS`fFW=|)>)yH{J{Bux8#Xx;?OL~a-2tAh8ZAACby^ZjdT_ZOzj<(`j_SPJkV8T z%Tl|rCJUZVxR`SLfaUiwZ#U*>yI^an^DCICc(m^tzlas`k7=CPYj$EOJ498Bm1z@5 z(N!<d54mA(ul}eYp|1o`8p|IrLji`!@YYeh);4AbglV0sQzNFP&{(HeXjv=au>xhq zIUukZ{{Xj(YZ3qpRsw2*3jv|f;}t2h3*r#=>SHlroBjj$hPT@N%Ph9gnI0M%eokX* z>U0b~Adix)<^WfBd0c1p0%#eSbF52(BU{>~lrD6q5aoA&T?utg5h!9;N9-D|kpq`4 zemIH2Yx{r#p7Nd`HZ`Ly{{X3HA@?og?l$(8;ui5KyTmTymvzY+2+^G?G~61Pa|3F# zGZ8ahWq=QeL@!BFf~b_@;ZBENp0iJgbk_WIbYsy_seDB0kEjkGQ^EBWg$|>nx0Dso zWxS(k<p!Fx?F8c2@hnBYzudQ%)VGb}tRm=YjYs`3ud1+npMnIZCHsVg+?3LrPXpW* zttvEH(tj~$FRO+?9)*oFYv$mCO)&EU@Vx&3=^Sfw@0p$rtFIEsptvoWiCK-rr}>O@ zdXC{vPxUw}ri@s-b=&aME6lAmo=iNU?w2u>yrct8W-6iMrNgMUjTk;6rMP2_apq~{ zz`0$|^(zvcRt|BE<zu26xn_%Z&$vOEh1=5*aLg5aJj*W$`*<aV7&Jfa;{O10@0$I7 z4AAk@5l&(&US&BVHMnN$Z2Oxvf_wBkbG17YwJ*k!^77PkEiL#6!r(HP68gII`xEIy zPNSK-%O0k`2S-JV9vHDvJE;%D8h_%WuE6V47DNXP8JF5?aMoQK_?lAUK}LdBY~NXH zZ}%})hY$oGQX|V&37aZ~h7zM4S=liWa2Y@k+zlDLM67g8I@GO;^XguheM>v~o)4(4 z6&lIJ+z*#CEoLQJLhBi2bAkW|xMKz(Zt#OKS+v$NlMnoX=2uIB8(WUV2Qdz~mDzwA z_JLG%Akn&MIX4M#3w5Ms=mcMRLn$d{H=T(`1fzl>TS_=3M^nQoxpLBLJj!tlXnL0| znf#yfEP6W6eV!l#RUY!a{mOFtl~!F%<tu+|4}WZYy|Ka9PFQR%{mj~ZumqRwfPc#n zx6E~j?gEgO=tx2@Fk3OPU`x6Z^xLa<m_3kd0oWh~G@BdzMRe=TeUPh**qRo<L}uQ0 zYi{rgv@QaHtP+W432g@AYs?ZFEZ#TYp?a<(nP)IGd>}=U)#y7g2Iga->7z26Q_#}V z5bAFj!HmW(K7^&#T!+lnca74LX^EoxGy_~*RtGtS0P8iC%<Smyl=E{fA*DlIA8=fd zty=}4ZJmY`vR2Sz4I`*$kGbLZDY2~?d=GF}IG+fQY4C-+kyo$Oq~0293SuQY%uHQG zl^BMxpjc8D9a*_3;#}}&gFG4F&jxrh`!f12EBTSP)eJ7*P+nhB;|7TBFO%6kG>g4o zQAp*dXuvIw<h?r{BSKpzB)(r{8qPm(9k0x5A5im8_cB&u3CcLwm8rZ`d1!*C&0dh! z`ISJ+M*2(&+fNLuvM}1LVB>#MhS9@P{-ElL0#T>ZTaRFzi~+P=c6Odo&aN_^U@uqz z(vjp!T3W<+mF&dGfEhuT>QUvMhK#+h#K#CPFkWHhndP2O)UPZ6yJEKcl&wmHNlndl z@d&dk;t*ybW3<CeP2OYB)u^%aEzES)iL)$Lqikvx0uzkJaOgHePN?dNGc4v)l2eie zYr8v<6^Eh=xQ(yW@L={}=F%<+ZXt5AVm6gfP%)&o{LMt{OX*!7%B2h2Assv;^bkm= zORpjcE?G1@N=iY?P;z;Mcds5DqojAZ+$)XP@a+Z{;snbK0CUAfYIcM=xPNir&g4$> z0_I&cC6}oHxippzO(${&?Vy{oxP8D|k_9;@c2Qb!6s=|QCa~`b)iOD#LsFnt-7Xr- zKjL0ZWu4`n;aBxOKB8sBCWg>AgLv^%FrVuPX+INrZxYHO%vG`Od?1b@VDB5}>K0;V z{6^+U1Q{VUOOv#?yG;{7_mn0jIDo4OP6<Z`sfdKqWpqf<?hazi)HP+xjMVhLnDmxR zbJpem0DxXQjHeR)p~VGY+>aCOpYd_^K{oxsA!08Qkr!18G{ks=L$^zfx}X-!oX5?B zGg7-uMxd7k#hVb`=m}Vq;&>9f6XIIgU5W85{{V=J$Lpcud`j&JoJu7|>kAXDLJYle zG;~1*uhdDFo$SoEjC7hWre@DGCOmP7YI&Q!W{5>OnC4kbo5XTNa!R79jKoqg<bm1^ zVWBMZhaeL=)AKGEV?fVni!%#U;#-m{m{6gX-CWNx?w!jjt1PbUu2u)XxCLwOQ7Ocy z5e#{i+EFOt<r0;r`8A=fPan7|A@@99;6;tcUL~s}#Y)mG?Wq&F3ks;5HJNS?aBXx{ zOIcB-aWAOCO3ctXwp|x3TZQ{Zga%q|Ex{8;YE-_+a31CGJ;vJ}{{X3c4|63U?syS9 zAQ{GEULb(tUt~m9C2~DX8ftta;SzB?UZt-808=BxNuFj#uj*GXs2})CXZTO}ga!Rc zPbim*Wp`qu3hvk8Y}}^!+5lJ75Wq?y(h43QxxO02vjM>Xyc$4olyN9FjCEnrjMRrg z#MbwYnny#tW2$mgvzgo{c$OT_^zTZ%`kjYKeVDzNE*Pu2E6QId)F1sLZNBHj+^)&I zE8M5XB3KJc_a;TcTatNwe}biT((upjJQpnKq$(<oa#oXVc$JM|ynkpxo+G496I}BZ z(~L#6&EP}LOid3}V8;*4FYl&idrg--RJz#rE!*6^ZZHJ0Q_T1gWNsoU7Yp3?1gx;G zuUNt~xtPqaFg&pCear6qg>d?p+4V2asKG$zv?`VKW$Z%?<iSl<N1^cx;wK8yIs?qr zaMYCcmiCmqOYD~N9}!08drJQR!fv--)5=$NUzj&&>cBhufOq#Pc$ODvkh?s_eV7gp zP~`yN>vKm#PPH963!gI*&PkIfe9X>Baud8tc14z(l$6q+U*yn$;#Y}Vf(mR-VrTy1 z6^-X&15u*N;VHrDb{?if21jYydYy-;!ELH8@|U413LfIMn7t(%6Os_vCZKZzP)@<> zcHXCH>QvD6DZx8LLxa=;%oDImaVf;d5CkzP!4T|3IDw*35-MZ+nwT#9z{DYU(>)lP z5>s7~X0xW3&p=_DK4!DTAmn4b!*H(B#^ml1!AY#AGLcUHqWSd;aI|i=l%X2$3fXR7 zGdx1_)B=@@t#yZpLs2z_f!v0X1rvmaaT`j%sh)nJlb@-cWjw-#3oAOZyT0XczU6uM z4QahOlyNBHQ-UF84d5IRZHNOxq5$WjcDX=cj-=1|Hr&Io_b!)Ta?kdN30jb$r`*Xv z_bo#TZe_9V0MKP`FsvTuf$#dB2fyl7hZw#2_>YIT{X{DRd_U9+cdNhqnB)w6A$PRO zm9;_*I_oLB#2(3Ap66iq{Y!>Te~6?;t&V6ju4V8bHa*O7N5ATJ{lBSZfcGnSd;Xve zkAKwv0F1z;l=*+D{{SnU@3aj{6xNZd2+stklh^kt=jt5UE#&q6!A9Ptzwr#!ru7y% z^K<4`cpcbxGs*gajbEwc#CM-8)x3PN)+NOn3yB)W=mep|F5aaqs?*O)Xp}jlIh5e_ z5C;dS7~9m(X_=XMV+gh2HGDwnzRx|(XnNxZ^9w_6I-X{SG}YK8+g1<t9H>hCv5To= zF=4Y#W5$mf8Qb1>ey5w%?Y^dK%}*yuFgK>qg?Nu_wzZjlCAtc&wI_ae8Qh)8-0D{4 z{Y5q_{2EUX(!ZzyZs|MHomt%_FP(|rJ;ZW*mIa!}R(GAr-Y0O4OM6Y>z}kz}S&ceV z-XTpC&cuqtFAoziYE@FvX=gHoj+D;f?pV-|%usagymYNwCm*<kMdkOI*n5q7BgFSG z+Z^n|Htam&Uz&T3^+;8O?6kn|N69-6a-E*#$|QIm=Ww0EJmfi}%_`7uCCWy>2lG7L z0s(Zw)_MI)dG*k4)=}O(lQ1m8&UCl8AsN8={ty$!BBR+n8MJwn7nr@V6yjf(ik9P| z+<nXOth_0^OSHWidCV@L?$huw0&iV_KT|xi`?FjxHz}$g`)Qp$plV|aiouI?mIqco zC)GdvYB-qUVq#)Z*5%7~mgSba%Y_ewb6?a5ZbHKQF#^Te8v}$sVAMv)()}?g8tHUp z7UjIld6-v4uA!8Oj35TaWxUJpE?-JGJxw&JY!+X6Z#^%rIO%;-?4jQf6DI0k=W_Yd zTvd&`#O^P1Fbv(iKk5ya(PlabQ*RK36z;!Y=B(5Sgo`kp!)aBdRu;4W0Ae_Z%2Zb{ zfDF(dh5rEa-~Rv|!t;NHH>~qd5L}=B`ZxH0c3r>E_?P(B{{Y}3>?{8OfHg<q71FP9 zA}tR$l3us8(1;36zEccaQ2zkt$NvCM{{a4p_`m$055WHb<$pi_!~iN000RI41OfsA z0s{d70RaF2009vp5HUefVR0aVk)bfbvC;71K=Dxj+5iXv0s#R(5dJ;G`xw)g*05Wx zSNjpmL?$eMOXbo1MY8)4zk`t+eBSTa(lAs~jg+M+N`F_*qUS;`k5{JE?A*tzCX~3* zr-4Pg8YzLyl&0cIl^E4yV<KkqHj=HxhYJ&7O-ahPF`E1iC2u+D60TY`c{U+2Imkse zyb)ILV?{(%%ai`Uk@FtKD6Fi(m6es33s)^6k$X2W>@+`#Y`(-TVF*GT{fqb$@-g$I zBO@Bg86J;qf1~43d=TVXEg#2f_HGSn2C_mP#@HjJZ+1QgH;-t9(Qbs9J`{h<Z6z(+ zc>EFL{=qbfr0hdjd}om&>C74BG<^xa--9c225sG_p~d#h804!WACyI(kK<VtC#=V0 z@<rJ^k#;!Q7i3!zc`A#+MAaOQ25w%>%zqc9Y`(?(Kil|!agSd9FMSZUH+)Q}$sU5$ z{C0htnA|Adg!H;{Jzl&oe-0kKAG|V7-NLvs8kaApiYJ!sw|<6pllA?a4Ew;5tJD0A zj#6F>F<Zl@-;t@w_#Cj-w9a=Q#-cyMz6)pY+=xam=u0T%bE0`(&Clb1#<jBh7x4c8 zVGHL!VCJ_>Xo_$qSFyk8@@PzZ{pf`+%V*iSk0K3dnxr+IU&851R$U;!n1QFriSnmq zhDyKVFoZEYZYMvjEaUnTj52rRW|Fxw@Fm#BJbYN&fjt<s-_=DGjpdZDvb#85wBByg zi*@X5zn5N*>MfVIp??SV5WZ{q1S2CTgG3=kL3Sr1=j3RJ=kHA+3Gx2`A-Rp`;PLid zIA=OTW{`x^4G@flAM$Aa2Hb=o*THIfG3d6@=$RH(+3b4}c176IY>vd0E4dw*iF9CS z)I7CA-H+kcwX*iaFW~;d{tw<Bh<`Pw>U>zNr}ouKH}TkRX5#Ae38GZTyDQQB9?#nN zFX&o62K<^ofj1F!Z%9o`N2Az+(dkY75i)M*f1pLqGz~JY!eDt36LM$rZbvOv<K%x9 z_R_Xq*oFKb+ePz#%rQP7&Rq02;fT|X80e+&QkgT^ztiI9XRSGV{y6vgL+4AX_hZ<E z414?<DU$FlDOpZ*MIQb}+(aPP!f0AOAHnOof1-rawl?>oy!#=;T#=D?lZa;IZhE1z z#{PA;+YrBl`wRF#cw#c%;_w%89PC06np9LiUWM>zLNTXa{{W0V{)Nu4TcM+NR!7V? zg}DR>8z+(zNJK&tB{DC64VrQ;gy_kwFYT*(J&CK=7o|d-iwI%7%B4~aM3(Df?1;M- z+l>ozcB}gu-HmH>=-w^9*oFKb+xUNLN4K+azRpRo>3$DHaDJ!7vXpy``X&4m-|I{! zkNlUe#w9>a7lb=8*wG;{-EDS`b$h;r@_QSXzlO~laS&K3pNIDN@v3<m$uwWrRCn}e zOrNo=*yMYUMY{GPj~X7dx>nzBLec!cww!!kpR`0Oa#MZsJ^uhhvYY7<jcHlE>-aYf z+ASZ)czgXLeyzc~JPdoj46$gLCde{Lf7u=g+2;)$UnAWKvXontx>uwTRqx>T(Kr4C zU*A@=<5`jJLLcKt{*~!Q@NRzvvqW<AVn4_xU%e*197VU=7x4c8Z{bX*W1esljx#qY zHkmEpLxP@<GP~8ScfAYd_h#)E&v<+NBX*RDGmHG33jK~&w|WI?BHfqU>{yiScXMK5 zXI@+yi#wPwMWzgC7PVKulaX|#D4vM^{{R%O!u1j{8^++Huf(Q2m@$#GHk-OA+=dH; zpt9zVol%-z#LLp@b*;X|{4e~!g$a+M(Wlt9sYl49q7q1K$WM`|=U)Y}z3We7QQ`#C z+g;4v{5!+n=-e_74KA^xM7K{v8Z3B-sT=zfY?(2rk!Ea0LxyC@7`1P2Vrs8?Js#R1 zw3<y(e|>0}{wUky_HH1V#-HIM=&p#!<N6~bBN3*Fp)9Yx81zU^h@{D+LrU%JViw<G z5WX)*{$DD)*K6!dqbT0w#`H<=qt$cuqm~=7<(52N2FhD&xtopzR=FCh^4=c*075qK zj{_MP<qhS(BhqM>B*?!+HVYrlbw_^w2!`eF;j>N5OIA{gI#1tLv{)%#h*~e|Zulk{ zx#<Ki@_dO8VkResd2ECPi6_x?v#&&dy$D|xwEqAn$MbL{`y}Jki-Bm`Dk|(tCuABV z-5$H%g<ElXR?ESQD{U{x>1WAGZX<Bu+43p*e7A?X^fp@WN>gx;p-EYdenu_Lk1IEW z*b#y$dLeh#=%F=U&NbPl?~Vvbr}x#1SEAC7`Wvv1L(org;UL<1g<T1&v3v^zpq^5N z@Ld*+3Mw4f46xfSe31-FMl?$W7W@wOiSguJF?_1f+7zWTQ}W7_%j9!SH(;5eh-Vr- z{tvUihxp9Xpv3EhZtEIX20GCX-Vbx&#HYMM#q7G$p-pY<TGQ<oUy<%FBi!VMA%wSP zN&6EE=vdnGG}!!~&`692<cAOA38LM5DpI{0P1+o`XHCyaQ+*MTm-0-NUFXD^1|N+q zDNMeEWf6&Q=!Eo7EAl0kmAO5BMBYCmD!=4;4@8@BEyl9qIU%=^n*%ptFY+g_c*8?B zDk0-a$}2?NBpSV$e67ySSL|xttQalW{*n0*;%h8Ik9$QX+E1j7%c;o?Q>4Q0OTU6U z9fi!?U}8<aP1radIt-q}I2}vk*-NcqnBRh)VK>I)zhKnhs>V9D*leSACC@+XS1a_} z@=>fMjs;B?^}(g#;rJHtLR==Le2B2`1cu^xUW!{*3`_mZxlz576Ksyiu&J)aEJ3Sz z?8^ln!W%U1o7?dQH-hL&-ZQFW-TU}+ro-N5-;p6Sw+UH!Z;>?0Sp11tSVDFz6C_jM z(!*j%Yhwp{#{U2*@Pt3cZeItnyWz2-(2=|@Ct{>vqirtVym=o1HmVZRS#AhKmjWX9 zPYgkSW3m?DRcs=qdrQ9l#B$zu6j(eiJc+l_K{tV~ZzfWFY&L1E&7iXVJa#6aY*KB| z+Sz&-bBVVU;Wv0G?n^(Dy>3dU<G{|GWs@G`8?{r}7h_UQXC>@4HYv8&w0(~BN)6$? z=w@?kmN4BMF`*J~aniyXg3*FLnD>6iwr?@)nWp~$^llk@)-G@8SFvMm$EuUAjKgAP z9tJU`=@{1{Njno1*9WZ=q^U48)?ADqM-A!CFNAli*lmjP$XpY_ZxDU(RhC?dengx~ zn=2@jZv?EhUqhj<*p+llN{90yYKk9%!mf;TeHXyp;KxFZtSpgqjwCOGaYe9^2II~; z9Bhk@*z=UeN=HSaR-R8H+w4X8Av1b7{{XgM`g(%?1yE<dB9!^(1XDQw03vo=@Htms zvD*EXu3`(CC3g4|MAOURh?_M06m2yLQ^TUV4HL^q;K_~69Oz?7?u=jHHi_jW*#0|Z z=w~!YwjX8J&?wBUw1kM0WTN^h9hyZ+i8PXrX9lEVi|qEuA$I+Vgdoj6WF0Bg+XHs* z1-uqi=Yfx7aAvD_>~5RsxUhtWTXMuyx<ly`Lbr5hk3%itu=nIm-RO@LeZ9RnVqQkP zpJqGN<w6%^{b0g2wi;P`6@$(F4Bj4Sl~VMHB^Fs~xH6bH5eJ=y+Z+j0d*E%jtQR-= zc^<1tscN`-Aw3h&x!YoT(7ceMYbbK=h)*b<Q9r=87;<Eji|B6FLv~|#7lG-QXk*r; zDUpdp>5q5hYLN2uTc&e5{{RTxf9#O<XXr?x;8ASb?8R)pkdjqA{{YBJt>0pHw*260 z9PxRk*LXOM=fOhh{hOVcLzc*U%XN@nI~%4xfi6aG!8G0)(dy1LU1`AX3#sw3A*ZW5 z4*Wfm)zyssi4u)PvNC^l`bN|vO--RBdzUn9q9+~lQ?q~n01Q&yH^9_*dGbuOi?QwK z{mb|l4gUbpacGmO7*Qn>gYYkACcn@%Wtv?NSG)J3_%bor)rsuh<Y1j1>9u}@u0mW9 zN#wa5l3d3I$yBLr>~4^!FUXQ$q3kynbCtRFAIycW*RPY`;J?dX^eiUM{kkQB8l{!w zZmODMF{&0P{(mCikl1eFZS1ps6^%m1`46M=BWCAum&)nz#JPK!$C6ief>VK}%OYG@ zYi~njC*YK_{NSdX6wgz^YM4QiL=;Bp`iQM;N0GM1*RZ@sSq!@>?0W4GdywpQ9%IZa z?5{*^8dhYBai#P&a=!><W>}SqIoFE(6y0hRU-rXJPI)4U)m-d`ulg7pWJ*r$lCA7i zVn+FGuR}w}10^3iF;i#sHg5E%l(25_LE$&iSy-DBe+IBJnIi~`fi#MH8xE`FPYH~v zWJ(b;i`*S+fr9~Ize8ERisP2)2XwDS%ErVxWXZtvN1{CtoqKRn(u@AU-=pX!l)D&) zt1i<Z+h9Am%5J@tVmIlDXM@~fHcg~8%fN-ZY>6pg{6wwCv!S8ozau!ND&T0{d8=Wm zl(ERwHn)6vLw4=f+#k@BS28X{&9?G1NQ0{byx@jV>zjNL8-{F5HC<U_P~8-nJXAi> z@gcME>s!INTJmuZNd-i%IT}z%wYtYv`Tqb~y*MH+w>!63mB~;407Q+FEv$?p%ZAxx z*+Xu&r%rH;v-vI2xsBT^dhx+|ZZGI)+jOXHM!P4HA};iZdz7MCxf11nkt(mekoX!) z5W6A!2~|i!4)_{3X>G*54$F=Q@Om+PIFrgBp**28zXbAqqaC8I$4p0JNi^=y$&SS_ z=vx&gx7prNbULF&qu2=^H{A_1+Iy!M+?MB}`F;mDf6(Voh8{!-<I`|#M#Qb$HhI~N zxms(K_eSG;{)VGCo<^~}PCFnZ*lTnqF33r8jzNkW(445y?#;>h*PntAZTKrb^bsbf zzoIb+K?bm%j|1d_k=T!7q^<ZQFjVkn<8MV2DAjpHrqbgBgJS-HHnJsznNNQQ2Iv0( zWLnPeu{rMs9!v{Gquu--=0&*FLSkTUZsFuFaVwf$=R+-8J+Nv|ohT=-<IaNJdmj41 zHuNoj$*Rl|L!1NnQ*C(>w(}HCE->Gts?{?f^+m?sMptC|8*X#`2~2PyY<<k8aD*59 zhHXZv9R36lwncl<Vj#_#yFSG0Z$$U_RYI=D^v7nyHxkI&W&SWeXoqPOXiD%&v6n2B z*O5Wk*9O+U$hM<BPq|JZeGU4ed9mUc@GN9+Mm@fqX|h7w0`@k?`82F=46OSr(~Upb zI>3y7MSYDoxd@0t6Hl{0$hAt>q154j=r%QFWnyeim^=x%@-eii&4@x6_HOjo{)vu% zfaIDq(lO0=2clCYW%(r9kc8!K9JXD@srSd&lC8QBirPtLb~7@9lw4e|^gS-_4UN9W z$>fW91jJGhWQPmmZVNx^m!WOd@;6RFY>SbuRs?NA4hT#PYKb+6gY2)pAHgy!$<BtT zjoE>sY*U|5UiCd6Lkb;l=##c8h-C3FRCywlz6wFqXTbah?#RWa&mhUBmU1<w^kmv# zxcE|+;P58O%;`j#2y#0_G>Y|}Q9Pn~MDy^*lA3-5QIV|5HRMq}$h$qnvvNBTHuJd^ z5Sn+9{{Y1v#G`MILb=&xzZd@i!Q`EEcYxnzuq}7&ZvOx{_JYy8E8ty|(?7sNV#CYq zHZl&qhL0^a-({Z9@<TEGzx*P3t>0rrzu0~PwPF*|c#Po*s;M%?^pRc*?9v&y-r^pp z_|a}lP>;4jpM&sUMtls!xh$14dN+e*FM21ICYzzkW6tbNghdIklB8WBD`X^~mW61! zY-SA3^h}$?1+dKM_ahQ|J<N$ZWNgIV4`h1{V+>2SMcIM-KFnRrBsT=@@`NYBFfG@y zmF#JgM6mQiG7}7<hNk1$k9bp=$oIgJ`hw%=Og3&q802-}#Zj@hU7;@=74$~Zh{&+W z+LSUB<Ye2Ez{X9v8hFPgVW#*KCb7wqcDW<F6QImsk(<4Zq$KRCy<F^rGvLUF-|TEG zjaK;>;5X>T8NZ=$G>KEll6GUsk0LCwPQPXaIuPC)7<>$5-((u{U>fv<h4Ov;UizU} zHRMxRK@V*q2;q`Gzmd84E9|bv*g3i2ud<59+T?Bd6UKC{<G@TacbzNtA44!hFQC^( zBAF(Jo`tSh_?tnUE6z*g`!GcX2()1M9563u*xpKe7lJRr=-!zT$flPwj?BNI;6~!h zA2VKFv?Yt!^yQ7X6Le>yIkzNz6Twe{P4GR!HVuuOlJT}37gc=@O);U7TV!BQM-hA% z!1D8=f}Iz^ZwKI|375%Tl&9F+(z3qFQkPrt*hSdmliTzrj;2iD;7$>erXwhe$zo)y z$e^Et(>DAGR&Y7^30UTl3CUv|qf5#5J)hukk0f49c_3aNv8B^70P{c$zyAO;9e&H> z_BOhIku}j*k-;U`>|TqJYkUo^k3u?r%s=`sp)ogP60P0vqF-n<X(Us=M@b=u%SLh< zwcGq?W?<XwPaCnkZp)%M)p8+hho<4PU7;as_|Ta;WPJ%fi24!WqK35CPsxTU*^bD& zBJ9Uz3>YtFSKYKjYAhS*Y{y^8y`mBs5+t1D=VIq!@qst=L855+B*2)xi=$yNbmeN1 zvyY+i=*N>DOnDaX(fKE`JpKl;fzm#N-i$nxd<lgK{{Rv7`X(?YEZ9t<`Y37mGvoAE z%U`1TUz6<%+7{h!Zz4LE9(F^?(}Pt+e~U)QzQX0dp^uXuOmxQl2`-r*SM2)zm%{v& z+E?Jntt5kkJ(=ud&%`D@pP?VFF*ERk-$$J|D4vl~(Ni-7d$h)xA4h;hPXuOvk?_Xd ziM!C6q*j7$^TA(cVtx$veZR@}&hpCpf0Dk~uCF)}#;2dqOAAZnuYj9;-?MUJ!v*d8 zFK6U!_WuAQKG{n96JzA8uF5f#P6>}~7TPC~4eT<Ha|K2Og-c4|qiYeldeO3yi+9nM zU5yWsF<XK^Bz&e$gR?Y)_Ah8ncpBQSSAv3z@q&!Z=Nd7k7d(`T3PGQSHAcj$?J>@U z>-Is;i{QQs<KpyQ_4^YiXxZ{4-j$T)Wy=0tjA?ly+KqM;G&sfB$SvErG20>~oFb=p zD)Lq2tI1cAw{<%oAvlW~jm13avoEpQQww6LGCyPNC*(_bdkb=E;8SUl2{YZE&+v57 zE$)|v{0*zgk0+9A(cw=6923d4*_Pk2JbwQG@QeO`_(#|5^!<<|h*P)VOHUrw+GoL^ z1HKQzeHHi<6lbF-(2`ezU75coR?M!)+BV#)*wGaqwqJjdZnDKD#yTP*CfYTN^THZS zpd3&=WS`!&>{}T`vNlzX_(f?i;D)DVFAQA=fPH))^-n?MMXpg^3KNaS<sQQ^*#wvk z#x02W)4Vt;mR-{PlBR}Po;WL^^&TR>BfwWfc%0x(cHpAAE2DtH5cl>fWsb$=FYq-R zCK-ew<*QAw{>GWOEzbiXmYVt-V$U~ZVrv*I<VIRuFTv*-_Y1Tu<u#2imSphL6zm&C zS$SC-abMBq3#E*?Tpk0!Uq_4ff7Q~UZgv{3t0q}}p}%RLQM2g31^7IR@?UH6S7=VO zhSFnd#Pj1npC);?+JtsTV#|FEF3v*0k+;CTgpo*-^2i{9A`(K_{{VwXQM2^_0ByuQ zm*o5z8^Mbv$1SfzZB2<uCz!V(wIcrjC+<Jsgfc1oaD@3yAwCevlR7<%@IrPpy3wSu z;W=2p`Zl6!w!1mxn;Nepjkbq-5>2(;WAr63<hoAad$>Xh9arM)$G{0=I_3Ox*<Wn- zL8bA@_E*`GYP6%Ragn1=DN!}a2tpC;h$N7jTn)n>2U?pwp{U#-klP_25A%|G^pP}4 zkc1%#@TI_-d9Yeq&kQ=l70ECA*xX5xYP~XT_Q|9n2v3CmY5xGj391sYnbxA=bEF`r zLY^1c{1W>9Dg02H%_qeu+PoY4ByE00{$7(<LThvU3`zG%{Oy`?uS7V$ni8C~@Ynki zQdHM>BO=<LCc^B0{{TJg+i$<G{%8LH*8c$dc60v#@IU{=04NXv00II60RsgA0RaI4 z0000101+WEK~Z6GfsqiQvBA;s;qf3a|Jncu0RaF3KM?-_^&_ZD;@Z&!$=_xq$$FV? zzhnn7_eV&kt8L7nx^+3xP(5W;jf2p{rJfu{>Po1EW>`IlYpAE$KG4N|;@%>sF{y0C zp?mvD6&_e>I=NYkh?fV8?;M_EEN++SEniFXG($t>H$Zgc_+V0PTN#R!4N%9)6bvX? z-h4pHCNg`%_0qsvq4<CfTB^W>Lr4Bl421L#)L%Bf=>AS?Tz~H{H2mmB00N6vpqu-N z{{W!=%fGApDm5xyyvMQimirf{G1-08KXdU70pR>Y_R7RK!2)tRgFk3(dO=oU_)Tsg zQOylaVq-87%no~w{ol+FhQEjwzKO`E3+Vhn$nILaMl$V=vE1zjS-g0b41OZ7v*-as zm@|ktfzpFl4NO`05F9=c0~QNNXOl9<sCtQ)DfUgf_nDusbcddn;pqnSB4efq$v~G+ z-3GuPa#O!gXw;|836>wZ4%23spjrlVnV!V-FbWEIU)nc8eo<Vt>c|*gK%R(*9sq5F znRc+ljN%+$iAtpIQ>zdfJV1eoMdBPo2yGJ(F+E_FxHMF1xV&%0xM~;JMg!5Pj|pbW zgW7px*%GAXO(DeEBuFy{(OZM_gC~RWGk&b56@AK=yAV?CL^)w+NlxI1qzih%+!0!{ z>pB7SVmXE*(UJqU;@ON4aIC2Gf`dVg1X%V5?Hy;Bg}l3u2TS>vNRI()>`H7GLZyMZ zeo#Be)?%8J%bj||Ep6)*0k@gRp!JUf@`Yufir-Q57#4cwHgDw}oAAugLF(ru{9F_L zKpcF;aEHtQ?_-H>ukQ*%y|!Wo7&>pLjR(x7;BPkqN|z8i#>ptXvjY+)V8p=?2I`~C z3oGO}xbAVlH|qlenQhcv6b%+Hq#NA4k1u3mEL(eF+cwzhQC(MyWr{a=sQrA4jck1n zyl5%yKatHI$#SWL84T<H07P0RB*^>-Rg1#!JW8li5rBLVN|iWnQdl%Oy*h-%tH7b` zj4tdudINL+02}`R>_<|e+?5xJTMyed0qZnu{m|zhc2&Q*F>S2Z>o@M)?BH46XZ{Ee z(CZLUdx+5xBVuYgA5cnVrC%^h++3>LUhwFjBq^aBIr2;xq&Uu4;JY^#*5lcmTV8bk z03(bzEQP0tW^ljtsmLMO{3F0Zs><eS^@55RzCY%D^ZA){ej1iWU@}tQl2QN!Hc->% zJzbxff%!|DOAWE=U#t<GvFya46FMc1E%YFB8uVeH7ukx4(Ha=le_?}R8|E#Zkp1t( z3Qt4v2iYqS{7_{qgY1JZXfpJMpnbC_6qZ#>#vw6$F*%++$8W3oj1BAfm5|jFH_|1- z>^~4{^Z0|LRcf}`kWpDBH61*_(2CTv?Uc(_W^F{qVv~SwHzg0kOaLBF#G&F-sIig( zDC!ltM-ZC~*Yf~TqQ4S}QjOHZq80Q(bpzXeV=?nFg;6YFZOe9G=4XOgRff^jar#Oi z!XH352yJm;+_tOfD-{%YJBhOrqTxo#(+Fx=#s?d&SZ7zf!CLND*_%fQAZ8^(X%jk> zMg~wsm6m?!Z9E@|aY3a)$uea>?L(OS#H(tZyu)R`F|=C29J18f!B*JLR_o80a4*Xa z=jEP9%Qa>BXO;PlTUxj#_jW+x=kP^o7lP%;i@XOOVztb!aec65K1v**d?EEKe77<^ zWrLCl-*E^7s0GUA{ifMSQ8KqT6mSEK!xjtj$KCm2-q`ZT&U&-|0AZP0r>jP+e5tyM z9I&HrmRtQ8SNj=B`x%pz)wdWn7Qbl1g3|4H0&=3QDk(y$8=zGwuBDJ>@N)V>ioxrf zmYAWer!S79@Ec)?x?x3sV-1l53Keae#wT?I=MC@xgA{*h=>aAi>iom2PUivWP1*K& z>Ha1Mb<GEFRRahfTBxv>TNoF_s0<7)Vt5Pln5Pd)AWcJ*#Y{l)X?<t;FaH2{Uq!{s zS;XWE95w45hXelrc7N|M=o+bXdb%R5x1;{h^nzqXZ{}Dc4N9x#;v)yc{YtJ~^pC`) zS%ZcD03(fI^8Wyn9*_ItByO#$*DXISVOuK3Ps|J(C4}SNX$#*2=Klaz!p3m%pXLXE zdIS3_pa-Iy0B;BSm9~Gs#8g~ZqWwm%;rx#`&VMC^DtgcQ*fL%pDMBT+OXd}XtXogR z0&=X<zT~Uwq!5XWHcz@|5Ota(?8XXei?;`af@u0|zj#q{n`-`G!L)@1`jl^K5BWjl zNBZh@6VgO;_6O=ZC?2T&L1_F8Its$m%QIe2RDbNE+kbSsE*IK!Jk<Q3#OK@aC*hTe zc&;Mb5n_xwj$CSRTud071BmJBJDGy!JC_&Cv~|own}zaYfb#srReFBlq3Ha~5^0PD zVvocFZ+P~Xcz~sH{$>N@oumqcNV2FvE#fjw5hhbqL-4>V6+R97!$s-%gPG=C{aSvR ziOKxR{wJ~Yxy&DkGT5hckJIxKTa;yv<3s~dGRCZNQQ9AZaypc#F)J}K4N8e9m29!2 ze9DP5P67j7oZn&~UNZ`$KP<w6-Adj8Oa!gOR11lKlMF?~eE|z!O|6*UEX_SX5n+h5 zO&OJ0hsXtd!YV`(Vbym(*&s-yfW5aWf%uE!Se1A_BRmb3sF`9OG9@!m3n@f5-UJt3 ztXu$raT9o%l)BfLArE+gjI!Ox9*;jtV(|;t(T4L4vw|3zh5btNF;O65a=Da3lJVv) zH3f~zx?Qs>5h;U*t1y5co5@;&OJQ?+V;o7AGhIZ1=WSmvGV#eyY0=T#qBQbcgZqh{ zwZ5iO8vx56;5aykNrRpkd8V#q6E29GgC21%rFWt2@d03BSE#GsvG{={X7~}(W1G0i zeyfxW_ddi8q1zWB5q%XNspDYmzYgU|Mb?1jo_M)(<^KTjOsA<&Ql6)Qo;D}6drP#U zHwa8uHizZ{({E%3?d>7b_k*A2!~3uM2&b|l@!J~OHG-eAE?v!f#mrTW${fo)!!f5{ zx(pB~l>&77H*BoG;-ccB=A$=;*gj|Gee_Y8uv#_Dptk_%zRbthZEW~rD@VHf!bT~v zh2M!$_SxwID1`e@%r*X6f~Fy#p<Fk)lQim<h?|CCOZ>58=D!m^ckwa@!T2G=(ph&t z0vha?aVovDBirZ$1h29%j=qToaVi46=ifgt6uVE{BX!sA1u3oI{6qdcO6nX}mSMj$ zS!-qnp>;o4zfHb|lZA+4IMog|89n2XpoM9nhTH`WnuWKs##h39FtcAA7m?~<`h1#2 zMa-kA2M<behX%YLl(4*<R0=7Fx<Z_%bhD6G%)bTRU}_QZ6i4W;E?BO=EIE)35QGxK z^A2+Nj^Q}v8oPI1B|Yq22UY?lDEB_v0bc2bprDz!z{IIi%@G$jGhuS-Dyl1Haa{QR z33Bgf6#6AA))&;apu3yyGjlP@06ffynSvw`B@<>-*jbbMekH@K{h~p3QGyQOi=~Hq z=1|)n_sbo6?a!IdZ<cxAEXTLY9X9!6{{Uf^l31B>9uJv`geO+Syyog`7W6}oDK`^; zYb^@{pVU&qUi?hON80PwHNjR~y6UUJ9p={bLn5D4g7NyN_FMf=?07z7`z+)-v-=B4 zdMy6W{UiGjN;|@TVUi=F`1yfa`?AAV`Y>1zUSP^Tc&iQA;yqt}R%hgdniVbXQ<OtO zuZW_kePhPO)uZVg#<YJZO<C21#-V(R;NX>90cMz6F1@B9i$U7X_;0jTL>$(!9`HWq zz7kpjhDFih;F=Xz;p-U|T7s*9Bjw_yi^h730vM)OyR70?+5+i!<$*{TgGc>>`5F&{ zbp>{J%)V;3&$PWviRhiNG+B6-M!a(qqAWU=Lq}{D%s!PI=JaAZAH*DaCTIRacs>O5 zz6s>}6U#jF&YpDgzGb|>GtE5A@=JFG++4@#eQ_)P?UI@<V{9{m4j1hM-{=%atjb{2 z$|$*sl>Y$Q01zF7!L#O2T0ThizG6HjE=--%7zS)0EB1-te~u-W4gR`<Ft7OHZJYi$ zg|!ehcszE$F_`sjM=}rfbNz1qg8kpg69}v)!e)SC$4_X$mcef{0~8Hr%mCOatUuW4 z(`qm7P$(n(?mIr#Vz<2_FN|h>V7v;|e>qt|5BJ0gI`RJi2-Rsqpy%3og=(rXsMcw4 z4fU)~_Vk6N^nNC<NE?IV`U8l4nVAFxs1no##5j~h%m(Fno6NjFnthTAZPcPH4}wzn zCxlpiSlO7}u#}S(KS+$MO`#$uZC0)&!Mc_8iO`j75f>2OP!2qP=v6*H1Wy4fl~4~F zfX*cXqEu?C6HdffxyRxK5Z9QY#7ko2#XK;9^h?PwZ<&92h|$E+F%3s?*U;QhrZQ@B z5wD{Id)yV2%Cgo+>_U>X9KK(fX1u}dfeWddipNuC3_%r`B0xn1saasj+&>TS%00it zu|szI#c>zOXOZzZ@8Wqs675BRz1$a+DZ5m9GcI8;OtQ>G#sv>7LEh!jg7Ype?3h_% zv}YGHpb3`{cFOKV(ClXsK|pve2BAEt_?Wk>O-m_K%9!;t9LyHV5`+Vi5IiCdpez1D zjvySQ0;-^;1}6m-1h)ey>SCjYrCrBNY)R%ELF?L3Iyi|0Fe{fq=>kn==J@<Ya<;s( z#P7~e*nzCrT^=CCJnep^wO$V+*(o43xIQ=`Fgy*t&9rXS5Q5YeF#8Lx320TnUX$<| zjt-74%iokG<O6csuy0w9?^2)8h_EW(WL7Fyyh=sjFFBMDr+$+lx6BHK7Tjv&`%7Ej ziI`*5xm7O$RkIFz>@0_JwRwH#`lO_!q_5FQPo-H&SxHGrLB+-jwBjY(^AqK%O@V3% z<ivS)edWLau_&z?Zde|~9BED|5ut%YO<$x@$>d*xJbwE>5y)RI{19`SwPmn6UG?o6 z2TMnYC~1SXr)42d(*FRvlsNcb*}?(h378*9v|xQdj7pgR9j6sBIJ`xbJfVa-^lKsb zCBOS7hAyubVOtbgsI}k8me)s|aoAPcY`y|=ibVEdrGG>q#uOTH;g2<88ts-Zh6nul zC+Z^`eTa&uCT4YX{LDRP<_kECTuUR`eqt@V*R)j3!z^OHi<G=WUbOvl{QV)SJbnZi zdO-#HP-iIvKS@h^KvWDszhpO17?D1V3_~yet<FbDR{NSgW1u>yxJ10fb=+J_l9!^U z^>N%!B&xI4BQa3t>HBy*%iZw@67KF=GUiMwf9mHC$Kd)OL|#a5^DF3CI0VFu(qF+2 z(AyLL01<pmhe0f($%gYOf(81R4{8BlNl-B>F(I#@P9Z}wmA(0j@IB#1Id{xJs_j?o zj5cm4O*~uj!-KepFnmFmE)o|QnofR(Z8Z9G4qx?Cf64ofy@oy&hKa2(CNA-N`6Vye zFW<<*uiVcf{a{ojIKDzqxqQdF^2>MgFycqMIzDD*I6`MW^1v4wUcI1B0a_QIGbW46 z4FjrvW7XO?M5b~H-NO9BtEfkbsM(h(nWwC)%QsUmpu!#agL3zH8Em<kv_b0;4?vk` zFG#~8!J6(=ra(>`L*D@rLrv8XdRer0>F+F5T8@Vo<}{+dLFouc!iR`WN^n_zA{OqV zY#<etc!RbB7Te>&1Y!*kLc+%tpQy#2po>h{IZb+=V@AQW$TM0$ETCIDsAg7%oDo|a zxooNkg<n1;Kk!ZGT?m%G(kf=&#PfZKLR_-*(4L3T^gf05m)c)>aK6dvLi=HNx8_%` z%v{E*X4M5(-eQbx0az?s;uswt_TY28T92lqRS>(Fn}t*t&Rob2KS)kKk29RiF%yDS zPfy7Nh*+1EIf{`s{RKw%`N54@;fFBP^F1zKndSjN2H1+Ct#Z-(ODjmGz^`~Zi3!dl zFkt|>!CufQR;<hU4uadj3weqnuNMGf;g_l#J*WE4AGr&*8a6rp%cmC9{{XVXgRcoi zQnq01mNa}50ZQxs5ItAWKatc5`HI8m^*+z^%B1xC6HlbUntdkNA&*%DC@~ADTLRpq zDmV2LiEKq)56sN{9zCYdq~`g7PeR~mx|`w?5ym0JK)8fAsIgJVw}^#x3{B(20xcLr z64MFfAS4&!D$5RS58N#NQw@XUh}bK!7vc32LUC~6jg&4<r7leLO9GW}89)K^17v>K z5TZ&;2b^ORwd9C0#H{6AK}}%og`tUynVeQwt$MA%MO1l$MSu%>fFS1emCd^KizCm` z2}{hnh1BLz@hYb=mccp9Q(DgvT-0hxjmvMb7!ycT_<t;=T~1;2d4u%4eI&#}qrah> zOpm8C?%#=%c|UNiJ|&|P#s2`1jg1`9EaC?Wi{<eIHu#S^_+gP6&Ev$grk3O<mkM`+ zmui&n;)99>)vz=$5m=i{97Mj0^DT?CIL>r16{{W*TvXj%#bqPX0uJsg{zoy4m0%(b zXWl>LfAIeR$baL1lI;FJ@-5(U*Zhf|G7CQPt&_Ze$nXNZ2mG2Qi>l+|b$!3`a)vZu zTpkKXW(C0V1RsPt1la_2^?(|*-^4N;>SD2`T?x>PSOaA@*o}VNrR_WJSWf{pD;ziJ zD*LAG)N5_=qELrPs1U#yZ#={@E00->C~us(W8u1IgRc<{?c50!mzSwwZziLNGev43 z4VGNHkTrXKU|g)~QHQ+1lLd4^sM}<B{{V<0+FA!}=t#d=W35CKF;mR?5~Y9mpGR?n zm#oDRuyF%S^90r*D{I6|iEb`tZUW*lYdmo+cPiR}O-I(S<n#PWxq-9hQ?ulbIX-2F zD0`Dmnes-Qm$?#p>KQwo4Zb0~XPRQlBkBtaoj=B=%O3@QC<?Q!hTL&2!}$LIgrt&I zfAEQ5p172sQG$ocEc<jnGx?67+1)9V(VM!tNV3XjnU9b^5Qe3$cQXs0`KZR~W@kF3 z{=SfHA0L8g^k&n0#Mv~5<MbVnpoDX1sHs;L;vVv|Q3`K=NV}hP;yOR|Y+nQM5pFn{ z1Xeu=nI%9!FoOg{4Xu7AN2IVlqOIPesb4_EAS*%K3-9j|46aUm!I^lbJ)&k~6)3ui zYOP8yL_?xeqUJb1^qU5#3Lpnj6)^D#rsbQBEE3AbNC6I!)B%T9#;BC4g)VI3JRsrJ zSZZ_h3`)#(^|e6}RYgFy<pNGA@Rg!*xZ)n-{{S&Dz|=}xsbQ&cy%1W=S&T^M=w|WL z^wTr-ABg-3`Dba=zy-309`SGF{!D#62roZk7@_+U{{R&JOvb`=aqSdj_&<|?`x2~u z=-sp4Jij9|tiopVIKOHd7^^N{vfUV(O$38K@(vPOq)(Y-U78t<)h}*QWYXY(F&z@O zZOT{H1~W-|xzby3+;<C)h@xr?{UpTKNu?8LJj?1?ucvbpJj|LUzf3g^+w?Kq;()8- zw-sK!V0@o2-ea`c@hj?yZuz>Em<V0gi1MW5;yBRp@fFI~+Ea@MD0rNMneO-8c#9!m zyrz4hxTIicLrvM#yF61zQ2?^%MD&Xs#Me-|Aje45#e9VEz9)iLsZODH5&jHAe|ORw zUv$kL7tF(SMD#}WPj92M>G>toY|FSBxkVYQCzn365?@7^V!4&MUZ!>%1G=n0Rd$hn z0`+VvF7IE`Omq)<S)UzUUwMduH06gf)!LqY;L;y*;eZXIziWb)Awt&-6l{Kj_RkUS zer0t>>HJ~<s`&mB5Vu5tVNXMhJOx<J3Kow@FYQb&0vFnQrrYaU5iiFoEQTq?6EB%y zEm5QLK`NuZPoo=Sx-nm=3~26$IPn!JTHRmb9YGj)TZdLs2VnX?xGog!@A!p6@vEd& z?=j!}#2K%%1$8{5-JBgdv^zsRs{PFDL&UQ0M~I*sQAQBLh~XK7)D3{|)(+%QR<OFN ztb0Uo6k+>Mv;8sHJ`ceT9*o|7gxLllKNuuoA*peJb+<4<$yXI|EUqe5mK;M<_Mhzb zj}Q2%v*J@tN|fN3LmEsDIc0x%uP_3&nQHW$9+H$)qnTKh7~}Vefd+-+Bx`4+*7=0S zSfu2NM{r;GGciOdc7z1H$1KIfvvS6}njUEuk1z_iFx9%|T>UL?&>Da82BvN@re-VC zBv(r64aW4%eh_FJ{V4Q5W)Bc>zzQI>h&h5wJ<;5yMTc>Z(9&@)Ge7avGw8o8Cz{C3 zXDl}22`(KH!C*$;`l(t|3otMPsbA`4*#@UdGAvt<v=OB=6)zt0=FN3Ae-SM!3yyu^ zWOzuO8M&mR>JinQvqfTLFR6%cdWQ@2w&4hxxqZyK?1t0QUo)RD^9K{}^afzBb~^J5 zxJshCfZu{Kn?{2cAm=k@r2AMt9Lv_3AyjAH8B`HDw7-<;vWC;1^Bq_N>jK+>#+Tx3 zQ!`<FLP)A^$cBl_#JiuwN!tA&qf1N`DaHOKG)vXW{{Z7RS17%GNvH!bE&}QlVkXDw zvGnCF#lgJv#^7Typ<gjom9X;0Gcj8j@#`?^Z}^9D@rc{|gYhY>OGi@v#K+ctV7OVz zaVf<@8>1_3BMMihXE5U3azQ1%rd`^Wd4JTzJhJCsgxsC5U&JhQEQ${y5iU+nPHVW@ zMU0B`9s1-o>!ApB^w{+wLp**X;Vt9n2)r^)>I(Isf76Nff2n`B@h?wFgFeb^`VYc> zn6SlyT3CWJ3@tMfSIPxrmJK4eFBd}{*Q|f)<sEvki|B$TaR^%qCN>$5T3M%<`5@;p zOH7C*JtIL;V$HsVx1L1#fHHNlGbrs6ok7Kj8BK;~?J`7`C&@1?!<;652X%-RuVl*u zfHWhSl>2pw)TBTQh+c~T(jx8FpthWQg0J7Xv#ZupU0g*}a<y#C7h|ll)=1`-CP&6x zu^1_i*^v*`5H>-j(#V3%)kVeu<1BE8DKH6mP9~F|p<y|X)0vTcL22M(ZBRFN_+<*= z`U6kD$_Rs)JpE@+GVM-cTww3$X3_dPj}yWBO#CDA&v2+fWsDd3hN?aUXf~uh1YY6) z0Fa(?y$OS7!4NilA$x@`olAN95UXZ<5I#?WKlzDE{19dA9aTi@ZiUtDVRjvo#*U$R zSJDu`5z9~zBE01qtR2Zvv)TScMHc$MkSyw(FnEZ|UW^W3Dq+pOsB}M3fOMZ%@+2i} z0^`i4>gx~kSGh~b{{SXIp+Rg1wD3Of<SWbW{!7aHujIPs{{UC=UnXsaIo<kcmHz-M z9Gbisfv4I2L>%4I{FNe#UY=rF_@CsfOUT4`8N4`}O)=U(j$!69#fK1`0vUtY`$0SI zgcCQEY8GvMqEZ#g`$OXdIw!gGA#d_R&*Y!#6F0aH!e4OTNz!l8GWYZ%iQRikdy1?2 zuv>^*Hu_*ic!j8CnL`F)Hu|_rD6BvjMpCTS1?ABgu!oXffv9c^N_Y9FS+a40Q&1UU z<~Ei^24&mF+_|MsQ_Qak^DMU~%r*VO4K9><mt+s7W!#pY2l*Vok^Gem7DTJ|jpqLV zT|}^t`071N{{S6FAT~pO7d1?j7HoUCY&@~KmzYi8SLpjc;TrcteuEeiH^4uZZN($O zsd!kfto}=f*}sv>G28zDC#m;C#q!I-6=!euGv7Ak{lhlbsQ`fa2Pdq_f8p;03M>{> zAZ>v9Wniv@^o8yi_Mc<=V4yr7f@<_;^X#U`A^1v2!vh~j5mDS)MY?qrsPi4oz32N~ zvtL|p`bTN@kOs_3A>XVVqcEsId73>Vq<{Dt8UsbCYRO+Lwief`8|K&5fCr=l5$h1< z0a=_sFxYTb{UBRJ0MRJ8fy6;E6E!HzBX>{CBLiV_;Yy4JTQ)xsv1Z7*K}i4@#%J6! zTr~Ik6R)9?a|G)$mSde(W7a+;Fw6$*YJZ>9{1odmJ$^_#`U4G4ew6wz(C_GG<Yym7 zW5M_)XUFWzKB)#A6NIJjU#=!$l_`kS9~a>*X=<6*GOZHYf~D2V5^XY~)s>~YEMKe@ zDLq@2B>?o8qZDHg#06?Ss{kct<|_AaVFDF%MqI1RaU9CWV&bX`b1N8yF+rkign1gc z`Inf~(ip1lVP{#y)AemMhNb2^PqByG60fNk6iQsZDt1-rEy~M`50qX73b5ECc#>QA zh&DJgT)=F-`a<2NT`?yl4ozDubk}g-O!K}VsTC>IAc^(fCy3jY5X4YY*?5%ZBneQP zeHI>Kms^S(BgCqJy2owHrG`UKsm(;yv%AHiw7&lUL|jL7L+vV3tGVew7OeF@a8X6< zzi?cyRxJ52L(Z*szGZButN|<+vYU*><=!9JYJ&8GkyEJ_;?Ez-W8m@pCIUc(;fs1b zC_uY^7JnwQ0l9B{yKeV+YNM6d_l;Hl&seqE;oAPjAae73`GvrjgnpofiiB16l<h^C z54_43z=XHaiVPfNe<^36g6764NW`kX9K;DJy+1+B9Lx*R`$4ETFoBD*RsNhyve+>z zFyD{*Kvm|?#QQ(f4OjTWYV>CF?1{7J{eN(kh7Km&^%z8szKNO4-`)@Pa?0c7P2Q0* zpJ^8{=A(1#6_Vk(fWgDkI!EZoh+Mw$V;u7u<%8NfxbC8aSLrKug`SrcdOwHIH4ibS zqORDzJBw1-`3K%o*Mb#N&ZXwNl-0_p=A$?O3-cORGS3l-!0nnLq$MhI^fXRjtf4V} zA~WA|kw#j(^C^f=Gx%j5{MuK``ysfnuyvLq?k-W5R7^&KJB()JbvTR<_Vmov@%v9} zWXT!Avc;MEk(<huWcVh}!xhKJEn>?$<S{*0x{FXA!#Rs?kBM1W_?2YK(imAtc?4%a z1UkZ5qM*G&S`KBL8rz)xDxXwYdLM|k!71u~WxeTeMxgTs7cez4a7ODAl&zC61I$_> zk|rQx7BJ@GrH~}zX$IKJ?#0Ki(2UF57|n^!Ao7Q3gnEnNpKwKw$r6h<VJhx>IHoTw z=L$B0aq>a{>n=Af%b%hAo=?Fk(~G<l%l07iEGSVdbDMY}+X2(~kILK_C;9|zRmxz6 z7Hx!J509qNk4RC2GN57<C_u}6OtCnS`kSR0b1AzSOL?{ms1`%yu(NX4Id}AxWjCme zUgjxSq;D3UltmK?fzq3aVQ~YwPrT1DRVmk_e+jVw>LVH%aRuk*B{uK*m}VD!PrQFK zV*GspE@kMWwf4p}pp?_=9Ti*MTQ1x_59}CNHET#ZSIU1TB$kIK9@73tx%`y#^Zx)K zR4IMob=8|@E{%4v;RXN<=+rT!`<Ox&tgoMV2WP1N0AaC3MwE+6izxP=W%_1y{&1ST zKA*6get_G=CWyc&oX#$F^fA-oI=N0+x4hK<02a@}n;#L=KH5KWW*je=BBqql^qM^) zVec7~i!jSu6cEIx55+8{-pBSJyqt|<4v$+u)DdkCpXmTyPZXT~>TLYSYGN-2VnVP2 zyb{crdoXT=_Q5ni6x?sa`J{N=dZAt7>R006heJq@vRND;&QUML0Ci!+1LA{}$o<G? zO}!9R2dHe!7|YxSwsiu6#+N3hsl)1bIGRpk7kgvD!3ChiBC0k7Gp;*;SjFUni_g&T z{{Xv$=ja7g!YMO;K8$r8$5DqQPoubR!TaWZKi(?!U}+t*LN{@jxoMqWbJBR3j3&?? zVLF3rpGja5O2<suc`hJT+R`5Zc=cG63!oWyDAsvOKJYl4vL*R~EC?kRk(cf}xH=U} zcGJyNK--`Dxq-9c{{Uw~3w!*)6gR*9h4p`%KePV;bpFhry#C9l?Ee6<{tAVk*a4M& zPwZeUm1<G<mkRbuo-^EzpSVM+_ad+8M<yF&mFL_E%N{I%0s4ebzquY7`LZKw#xR;D z*>|jI<$W%QGZJqOCXh2xC}-HgUSS3NB9fZrP-uyBvYvD`K~1DC)LKI5TszXN-_}^) z;(5Oi0Z^wY;$aCb;vJG?+u|}BjQc>9GZehv)l)AvN|mVXF9F;#h<#x;K9%`ED{}@e z;Nr+Cgfph7D>Bmo6IW9)c#JAyoV#;y3Lv^5^yG>*I_LB;4yKJ&o^AyI7op0WvA06S z+bKkmqNoUxx)nzxjK?r^uX=_7+hBU3Em#1e0==G)l`V3RB#z~-dW5NZte(OdU1Nst z0yObe0Qf&>n8~{$I1Ejz>&_MRo~*>b5BwvmV4GR_mQ*OWZdeuxFLfK#hWM8D)9#<l zZe)Eg?<?*{@V_wEtokpHrNb%eN|%H296Fp_+_rLMPq|G#r{aI3!xfKD!8Q6nK=_HX z=+2%XNZinl{)VFBIVCib#U-kkv+qC5?tOta`c5adsJZn*6P~Z=DLH)shonp+IGan< zb>$2fgE8fcjIx|IcEEw0hke1!P^fR!;FU)9b&oGIY7=aALadOH<T>$_s2)g6L9;&a z88e6GXu$wDF#{|@mjpzS2!-Nm1D(JawrU9)%L?42Q)Jig4Iu<~IEJEN`Zlt_1}-p5 zR_AUdS>NxLyU)>)@hfD3%*Pzdb1l1+kkrM@OT>2_M^kyE;xO?40G!Of%X2RZO85Zf za@-RL794cMY;Z^LOaB1vFRn%)O&`ppy7st=hijv$>5v*F6KUcW9-PLy$ztWzdlzu9 zRRfTeXm|npxKiQaA7Z7bFJkovC;>+a6{pNh%M3I{8kZxy?g(xUCEE?fao*+w!Yaq8 zZ!`A>U9yn4vDD=ku>Sz?#1vy4zecdsHyttk7@+n|MMpqK6}Dx{io&kK{6V>Wr!6rK zS1IQy+4g}23OXQv<o-+c{s@2MC;mD7fs2ZE6E5Y^F#iC|S<CxGrOZSRsV$9uiiwmb zF%niH3%Pc}Y<)q+GMHWXn5btFiaT))E@k-|OIH`c5Xi{|`&Ut*NY)4Cv-1@0Mn<A) zpf_dndV}Ri*0(z)5U{ql(+WVq0Y5Fvet-beMrIXF5V~Ud1o8Z#U}*?Vs`1?LOser- zR^a@+P{UTQKtqx7q56m-tvuQ^5Epg$l{e{-Sb?c)YIgqs+7^GS=57A~cf97Q(wRj9 z+snCtprNGHIi9NhN}|E1U&9kqTq!jZbr(1N31DXn1A;VoU_LhSQuwmm(tnWKOAQ@; zVxsoC2QUUK_JrCl)*q?=0D_CnUdSvspsay^&Lvr0+W!DV3OE@ja2{V*`ifhqqrw+p zdq3DHPF;zaO<DM#<nYCQ)9_7xke_Hrf1tmNA=4HJxs0q4oI`VX)kU9q{_k=8WO@2U z$`{y<{ZNZ9tY1e+H!u;|82uVdW;5qwlRGCq@VTI&p0>kwVbZQ<{JhYruLZacW!-N@ zj)_em3O%D>j24QA3pEJ;03E_#P;8hHqH`A!XpauztTl~GE6lh#k1=Dk*Y6D=#UG)l zs}K%iLy2?5!$evt{bj4i6a22(aeU38wc-I#+_OoP=Hm<cGl{fgP-+NjJB!s{?!kZQ zx$i{OmZD}I-{J*c7%EdU^su#W>LGlmi-CgOZWLkjaa{+AXc)W_<S_!dfqv0Nc_a20 zq4||&s2G%_)9`w+_JMn-KMU)b_t6AV<cq0)uBcn;Qv|3~!Z@3!N%n=og7G{;{ih#B z`JNKhi5x<sxP)dVW4Gux4M1*I7&k%h!N;<1h53TW%Zaf7sLCkrA3(yiCJk$-hHp~1 ziW{kKdFDgC8h4md0f<d)X0R?L6md};fAB+JM;}GmC>q4ryPU#p^xFnx%ky1Bg2y?8 zF+f_~710f#Lsffxu@y3WScN&bFcnKZAVo?Fen_UWF#tgEGml7})P<dyikp3zL<B<9 zT(fpA4P{T<w}GOdR@9CvSaJ|AcMy(4Rv(zzM9!^|yK>P$8_2c=a2W<}Ax_R*3Zm=8 z#0LI>uyGb1m*#tHekDzQq+dE8q?Q@?kgD?^%r+3$9={MyWy@F7^*_n#TwG#ZlkAvo z-6YZH_+a}#0&DbP4$g@E1M!FB8m0z`w0?xzaXFgJMW1>8Cv!`|`Hw$Ic#GnTlh#}- zKCxn4KN-#}JtML#S+rP{k?v4Yn`#y+E1YKL8a?=q2}Z%V2E)({Z*d7++kRzkX}XDJ zziKKsS%!qduhw8)0(W%)1Wgu_Xq^fe9%$gKNZ;+1b=#9Li&uy(xYF`VtKswl>?(?Y zU@5jE%y$A_4_HF6mdosmRTY;kwu0|^nTqXJV&Qz)Ie~+Sx|TsIUSh+fa?jAExqLG? z_586=^8~y<#S+WD<tq&De!oqZHvp-0#g~b+<LSBd8jCUD@P6#i#=kJ^>Nuj-Ep9C; zH6EZI=b-?1M)EOWzr;$zPg1)8&B|~CyO`BSOky=#V?ejKd1GO1oWLg_Hx?%1EqO_B z1|MNkl}spgG4K_5wz0|p1?ns&6fa{o<VVCB>MaK{^DE&MNsTyUnU%l!;uh)aPvr3a zAIPWbe<gYQ59G5Sl7sCVznUBnlTd2c@BaWHS$`+|j_UpY0Oa8+_5T2n*NfNwL^_TQ z+*?Y#+x(e-U->NvhJ|Jyj@gSd!lb;xah3?s_D!R|sxe0sFQmgB$Psu%^@%F)jK`gP z%k;iyTKvw-<^<t<%WN#U+R)Xy5<m4InvCIRnqAAkw0mDM3RcHV1C{d;2JTxMuc;|G z`rJ*BSjG^eo4A=in-KaOKudvHd5;58^T$1Ig4>UwHZm|f>J>rQ%k?rdN2A2J3^pN& zmjP^W{Ba2ahq(=um{PWgCdjMdl{Nr2wflpe8n%}gh*@>{q|d~}L};T>_(5LDd08-V z7^$Yp-hnXs`dIavhS%UrTB4#6R@%Ra@ELW53uGQZm_1jCnY($;Duo+3PUGtj>=vTG z&CFccMfr~qRgm!kzk!7|%$zV33R<6doWkOmm*o49y)o&35K_rdUNu6gXg_k$=ivU# zJ#?d}c72c@-w;Jw`y)LXt@ieb*`M=?We9+!qf?i2t3`Eg&5y*PNBBI!C{m^tWYD7H zbNs_G5A%fA=)+N-!5!kn6CV&2^p_S0vO=Mwn6WM*^9rRQU%VgW<{I=*%&B@xK-ME3 zun-sOfoKQ_6<BnGV;D`t#2ZBs7H}-q?E0);&z36Z?<$v(DIjFlq_sZ9^&4a*TLuCs zGr%c+uy+v`o0bEWiDQONT4Qs>DqzvL3v^1R0vcQ!{{YEN0t=vAwYn}fRVb}b2(ty2 z&;3sfAfGtJzm{b_feM!%CFW&;NG+(9cb=ul*hVYU^2(KVPEwSAiX-M}0iq6}loJcA zv2!f$4I(ZnQDZR_fT*_u*P;2DpO@r;OzJq_Pud9{l9&<<#Kb<fe-m%7&@CO6^AW;m zx2y{xzGce;<P$dM3gQgjUI@ydHgjD>_R>DEk;E+SvoOUDCPAgkyK^fiH@!6;b9{$W zKwQC4SSgC-L0t7M<`UrLfw&j*uc1U4)RyifMVR_?mJ`x=n3hGTL|k0O83=9;CZBot zm@mx^^@|q_tq80T>y|pG10?09QYLF8TO5N(a(*$lc3}ctzR}1quhDkGsL_Gtjm^?H zqGEV`X?fJaiB(FkuIY-(?p0~Hx_*wxA5WO7USndQR)|V-lIeKmA~wF5A+z&EN-m+k z<@@HR^8u!wf|c!cC}YEi_GGOFndT2_bT+*LYLl90&4DI0QEv#(5D$<ItXce2{6a;C z`QlM6ohswlVWSI<A8~nxbc)QUm=P+NZD+1x;mJs``HSAbhLmfVr~%rs?qKeGkL+ew zh2G)G+&aIOGz-nO>kNAWfx`lU@jDyWFaw?M2lW%03Ia9eEN4D3Ps1MaRaDo!Jr#B( zADLIAj|T$$%;QqT%;b(PtML(8sA~~{*<#{f-<sZI{T{PZ{NXEKMh+$~q%zEiV|+s$ z&0x_JWXIB4EQzS4nHgA+Q$M`_02{fb;rWz%CXuMeFH|EZsx_es>EdL3OkYWoH!Y3S zbV^s%fIN}dsK#KJD`f`)1v4KC%2;{6CLdpw)eL;p-?<P3a;U+sA}e!^OG8MrFA*+B z37ty4w;d644rL9?lLi!@bj&^MKIBuEtbUIXb1if-vAKR@JBze*dd%zT`C*CVf_?Y! zO4crjku?UP!SoJN;I$TG^cJFqA44_Q<bwy6Fu(k{Obj<=<>n|h7*+aQ%S;G8VsKV9 zGWcZ~C4lv6uC5rs>8(tM8&suv)Xf1cxH^qxYgU<iiQ!fGx;u#Mzyhw&{>N~kD!MM_ z7{D*vGR}sQksA?$4-s(Jut~6lk)!em{V^~=RaoUjMi&W`s+9v~g^8GS&l5aQO~mG| zA)*9Vsb?s0i|oXWz8U3wFg{-lLXFW*qkfsI-SLRIi<skJ!OR%!`m=Y=X!w^>#Hh9N zDsA&J;)zYi{*x2^n19}5-1%jVzF2`Gnrb2aC;r4Kuel%lQRuxq%P`#YANq*d`<PK> zuKthLX@;V+=zRdYm?FYr6Jik^5yCL{N0g8NEr%frtBc{3X#&P28>p(!Q`&j@BSd3W z5-xosRa<GeD0iRY4-gemDqC|S%oJ3@Fwrwf`6o9WzliEurQ$pB2ik5$WkZM0^D+sy z)9{VYx*@J5v+o|D=nb*O5h#oGv{k%d1f8X^HLR@%&%6<u-f8`roaatsE`AsGWYPA( zDNY^;X@P4RV5z#s`iL6p6Ho9!WxqnnPKb?~A$9)%V$R6T+n9yU<NV$}k!zesjJ%@6 z<LMSNH69Ugi{>WoB1KeKrNy6l{#SDkF#ONL{%0uu^j!L&)OojY<p&c#Y*}K%(k%L= z;&(Tdscr~Gi!Z4AjPpnCY=|CD><rQJsQt_v`TqdYR4Ta=J$Ey(G1#24%+I9Fb*--Y z2%r)X5jz(|&lprf^b40XH#bSZehEX|;v8^_?t}$rC@8WT<Vu4zD;cORSnM@G!kEkF zIGu>gz|768?U0<DdCP>Ni)p9Qes&MZ6kCh*)^i0lE|n}tijPqcW3MOd!2n8>>V5a| zFjzX7Vp^rkV*@gasIYMqEL=sXxPyqsa~Y49^$*OH!itJ$m4m;``{q2$nT^Zn;RO$u z<{(uE10QH}E9SZ)b++hf>RYoxh*WnytY=mfqLSFSDAvGxeCiBgbI+hlXM&LEn4y-d zMPEc*0ElPG#0G_VN+}s0WBS0z_?HgDo6SVD!|w;6yweb9^clbQng0L=U?vO^#7AEu z2u3dp`x6jFs}KEDDbM+O#dyEZFl_$-m%LR0UPEuZqerLz08`m@!28T<rOSaIOA6-w zu&Gcd_#&W;?uug_v18~tg98>GtRFTD^rI<~!5XwV6qjV9xZ8&Z)12yilMU*_Vg-%R z8jsTiG;JPA`^E)9TNHz9S&CvEzmW=!7cN~NQ*cbYN@@dBW?_DQfovE}5HGL%5Lf## zic|xaJ|oA>4ttAIosE7Hs7gDOZ9Zps`6cvxkrlJ#mNtBoUtsetpht1O3AC@U#$A7- z#1}OG0FI!T{{SbXzaQZAno0EjQ9^{SzmzBuWDAk%2@@xgHnw;-8W$<#io})j24C@& z3$Q7HJGkTm^#k_|l%3U=GW*X7<~7}M+C&#H2F?#z?aw5pGL^|1D~Ud4D`@VbU{;Jf zvS+2Lte!bf;#D2Rv<cVveFotD3yPXOpUW?(kh<J*UoX&idI9!}A9=)hON}QVNI1o7 zaj6y%U^R0_I-JcIMW1>8mvihNnThmgDf#nnSJQt~-84_fH)fx#Ch_7uGAVIwW-D^9 zEB2SIzbsYO7p%3pm1X&2b0!gT`SCkAE8Hm#uQ3N*O~Cug`pP=zsJCldia^;xlaZCV z(!T`BKtLEt;oJ?eE1@djg>+8>Xe^mT)W*RmxYcT4&%K|WpOfg>^^XzydHS<hGdP?7 z0Onbt<`Y+^_$6g9TMHYD6E;l2X9-LUeP(P%8kq^JC*D7(tI}Z#)q!mT+@)ro;Auj0 zlN;3M&QRPwW?WI~#S7ZE13?8b3XsTUhS~GL7^>-Zd?sk4IjBf6&1|q6mf>Q9MsJ6^ zAtpWs)h^=E?oF<f(kF3lPN22y+|HS*B9+OAIrA~L-9++>t|q|{Z-Yo;CsHA_OAQld z5YN+?=5!-H!Y9E=_<~fj4Dgm_kw*gJ#?zms)fvpzC^=xkbMr7{huB8g6g<Ee?lEWW zMvvZuAF%`ejJuQFo~JJ?Ilg9O{mi@iGyecVi3S_xl=oxGQLnt5SNUdmVOCh3pK%AR zR~FpxMf#HHg^5m39KN>D6Ez1gnj*75(1Ycf6ut<tQFikS;#t8CNdaqW=Bjp|bNPi2 zEomCC9VJ1X2`n-mhZZj%?c!G92`SW#r5^x<oUf#CeKkJ>P15Z&n%k<1if8-J+~sWl z09?+G^?8oUkNV~r<a_@Bv|ocW{{XZHANcMh?%Nk%Bp1Q{w=3)G{*$jS`rHrwUwEE> z-Rl^(<+a?lK`T#)3oD;lK*;xIB*1WqXua5$HB#;BKlT{!HP|iama15~R_tO8rMN}- zCtr3)Z;B1w6$tW73BBrInSdQ>Ae0O~@OvKSRX_r?(K$sue~7RYT@}O*U=L0HCSY$g z<n)e+(k5dk>|bg5Q;Du|6yxZ_Sn3=z4j%JSVmlT(m2q6gZSOzY?tPMJ^k*sgpP9F) zgxl3O$5Ze{mT8aBCi7U(*KBAa;d_E)1?BMsYR~bhohw1mTnDJ9!Ze1a7#$25ZCSgE zHq3*<+Lu5b1g9}zEAyySOBkgR>5G^Pm@p4T5@!3Ej(@M9uU=o|%Fn77bCh`cX*v3{ zSR!JGGx`2w`G{r<GySPh()yMflovIemnbMV0a=5n%_gY*I7S+dk$edJh_duyzNtRa z^p@s0@dh2j`OynQDu4@I@DSps<<rC~1ol4}n9CwnA8B!btCm<EBDPbuQxaUzICr2U zA)$d-V6Br~W(G)1H=mL73AELb06Ac)YV_O;<!hms^W2vI0M>|!Q>L_f5`rgxSZ{7F z;v#fIz3|IAej&c!49mB}5i-6Q^*Qj(W!c2QWn3WIPqPm1!#`@Mf6iy2dPcnbQ<A+Z zF5$ivF6Hqs{-~xOymi|6fHuBk9nB_?+v_=mdHS&YaBMtF9I82l2G0-?z!y0ML#7t$ z1+tf9Nq2_T*Kv@L`=adi5ylm%jxy?0TTfOz?m?bq*Oz3g6kpILjQP~?{pECiW%?o` z03S#(EF`i9;tR||;s{X9sHp(~kT{1)EQA^+oXuf;LM*4TO8HB9Dh*s|YFzX`525ob zEmknzBc>lSdy4|j$$wtYv;jx>VN;=uS!g*Ph@-lOy=8vzDW0&)JxH-p`9Enw&dhrg zS!%vdp=PE?@%Tlv8-xcc{6bmThr==V#iYb@DlF8tef|iw8-qPXA=Jm%hwM!W6g;Qe zepKRXoJ}VmNNYHnrpM4tk<lrDs}lVsjdL*{IKw*rVPDaM6{IcQ{$(AwN+8f>FNg(d zSA|&~aV=aE1boUjbGciK5!kgBz-5lsu8r$)SRYG&GSa5kmn#t8+BIH8mRJP`W*~7K z@95^(HWHJlCB36G%3Z>W!)s9`u~r#-%aoDx{UTaOoLwGM0JaZ=c*m@*pGsMntp)<P zq-BconD<+$x5CU(eTddbvh`x;)d|WxeKef?4Sf?+L>ycb9q0Lh*@I3B=5~+CP#)10 zps3>qAUz>1HQ6mGfWl%3A4&RC5vfX)q^wWR{7t@$JGd=MtClhs!3ZsMHc=1^IJF?4 zQRd;aK4kBX3=PO?9q8X3JtGEl3uv%KzD-6YL@8_MF_^IkcY~%q02!MA^Df;U2ZHN$ z0Y?pk3?-lm+`S4{+ENYu;$2#(LckOUEU9%;@_q>Gn2=d}V*QKMvfVhoyh7|#cR}0& z;A2aDV%hr%)P4}q_XNUG@P|*~3@o&?Q4c-ogBL^1C50vSKo}>oDB3;|{{YB;C!g?t zCUP{!59Gbd_&<^D-?V6}S6Gj8?E{nTe<jL|jXP#r%=2+YEjn1ob6KS2m4pXyKI1Ly z!%s?CQu%@ze9r6UHEFV<j?tXUcEOe@2g~J`HMm^zA9<f|n5HfHiSICqRi0rBLh{N? ze9X!Fm}2gh{TeI)r<nXK-dN4?(jt|sL9L~%%>Z2o7YrTNQYWAyN-M^m>x%;eNXuw$ z^_|6L$--47Y`Jj-uK=RARQZ%OO4yhjmJ33N6be$g#?slu7S(tff;}8IFnAjKK^;Z0 zHG4-f2~;mGQH<<r3zwib1;0TzxJynJF`N7%jnchHpngI)WJ6TCwo{M2FE<Py@rGc> zfAE7~fA!Q@X}{M|@xSYde#TIP9+IzMN=p~gFJCBv>*qmt?@|q~xBZvpbCAZqV(M0T zPwYm<fy#&FhiwAr(MOw^X+!>bg1PWt<G3o6w!_a$0JlI$zZB#zGA7L(&8-Sr?)88g zI8yaf3*Zrd5ww59+7-(3pTQO@3^Xs)$`%s43hE$G;NnXt;+Cpn^<om$9%T~HUSIh) zLw>L7FHU0=zXY|#U*m~($F!B-!T$he5-ankJA&N*0Eetp0BoWAVP;x*KdFY4C1rVo zn_lV|_E2uRh<J-CED`=6QlBK^JZB$A2x~D>;S^I75NlH-nT@Q=iHbL3C37!(-Z7JZ zyt*^P18I7f-{v+asWRp#;EDF2wHuSvZMmjwdd??s=4&V`D@hCXo5*;vKJzAX#4uLt z5iXESKp?8NQ#E9~71=7#<|-rxli}<8ma{AJ^O$6)Pf}%rdMsLtj#!~IAb(&6a^Gxg zgFV6tfH*KpQT>``Qso^=yO(s0*D=FB%Z@DF#;?WAo~(E3gx!{ErJzd8ucHJF%7^Cu zW*pl%AfsQzT}y)0sg|C*jy{2f(K9MyBlOseH8ex=zcVBC{7gLu>2n!h6<yo;oFT+F z&4c~(5vLNth-IO2-~=0Z)K6u#y$<351@PEkZEjRr<#FYJ;1Hm+Gzl(xjaM3KSh2HU zFBgL0X?=2u`vzE6Ex8ZZ>{zh&RV}O9#rWR=<%}RqHV1*<n1E?E;C4*06`c8qIL{Xc zEWv#L06##IUOdB4Gxgnl5yWG1)fLy%>8XTcxu?;~9g)^JevmVI%$G#U^QmxR^8WxR z#f{OH<;`j#!3KlvMZg@A!;s2cGYg2i+!o4%28i1FM*~ZUt``LX28G1OP}Q=;NNV$B z_knA*-Q8_2+I`G4kgKe}vd-^(b}WU$42PIceic(|1Yr(PeCL4_oi(BNiWPsbm)ihG zWxGo9Kw*j?RJ(+W8;2A+Peq@ZU#N=ZdGRysWic-{>R+lCn0QO71Yr<Zuoq5i3BL3~ zgLN@BnTF^e#8-li&=1s87@=QZyn7Gv++iUWVBf6QS_25d<^`Ygdcv>se8y#e@!Vd2 zBl{OQUzQ8oUaZ!6_kspQ3&o_!7Ck8zGP>=!;jf8Hx<#Cav|>qRJv7422eheld`2F# z^9+Z{1q+;h1jJZDUaBrNKLZkvL_z-m)lE|IoI*E{r`mRYt9be{XDjn5;!`PS*#4p0 z$@Ir##J@5+X1T=BfrJcYVjB=5OJ(9hqFz~%DT0@{YE1tC-*5$;GaOAG{{Wb-3gnik zCHpfe?L#Ejx9P5Iddm85G?i;e_c$fZbdH>m4|5J5QZb*Ph*CqQSm+1K;W7ahuGQvH z*ue-8^9fxTl=(;@4Af!(dLGi=-k)f15N#j`q$*&#%m=gqgSdHN`WA8RoSv{^Guulo z7%Q$Cdv!C|Ud34V6i@-=N0ue*?ihnhsc5JhkuBg~Ngg(WE=`B5R6=l#_WuBhduEYh z;lgY`K@KItS{RUiV*?BrMp;&Wgv@<nmOL{k^Jv7v9XqIzHP}=}-c7iJ=ivrhdhkL* zfZx7Yw>V(tq6ti;G%y2zUfRsQDTge;`YS3>tH6iHGQNZHL4yjS64*55=26cP4k028 zqiA|sj7p80YedzBXR(Q}YEWs4W}k>}x5E^FQxEw}snIrrbp%}(!!(8VjcdupN`IVx z<iQD0Weg}TN<6bZ93M(Ge{%K{3Jd&@fxtQDa&bJtEr6;O8188V*;2AVip_!ZG0}LI z)&BrgKrO!6-h8s-E9I4P!-;&se`Z>(ZL4{LyL`@je9U`(W8TD$-I9a1eam}dVr`L> z%+KYBHm-S;#`%jRrVX>>+7!`ESiZd?Zj(m0zBr7$6bcQAcG=z{iX9PmOk)kkFchs> zU1AQCVF1})USMcZSwh?`n1Tvm(j@@>;MKD@qP}8W%vj(rq8($aR8?=Q`Zz@fU@DYg zk_sS>!i=b1rD+ku5N8tMy#?4>Z^gg@L<+(`NPIB8VRW@?eB!eboBBAzIhCAhHE|2X z%lsLbpZS7fpkgf%ySUz&rgZ~mhvXxcwG7K5(}=RR@cR@o+;Bd0G?w=N02D49JxOBR z!v*2GOv-4D;a<$eauG6V_>4;i?a?a1J&i%80+n%yU*-Ch@8gAX{{SC}SRK7zX|6|i z+z9F?o}7C>b1InbAG|HaUWlw+$3a$lz+Iq~d!KTTALE#%#Md~5scRS-#^#7Ho$g?P zi!e6aeT+<FcdQlbAA)N6eo2vdU?dBk-^@B4l9(6RhvI^wQ%^=JJ%8NHzNp5@aKx#o z>(fLp9nEG0cL9iETcq<0Ko4OWr7Bm5^%`asR{BcCLm=QZ?YPM-0B%%XGR)~-GkvWd z>_uB!i1!+*0CCLpFK_gf8HF@5d&*R2&;F1@AMNW0_%O^r_YiXEdWdqNY@T|UG#l1X z;ShBRMy%5)UaVD~zd?iv^=9x9Q9JFgDcjbKMtSHMUkChzu8%G~moU)Q9=ydEwRhYz zG!{l0PaMJ&(-~I1QTHVZ>Ka3SpYZ@!7ebc356n{JGzK8Ld20;0xEe=?=&~C9B;<<v zA0Dw#gtA@Y{Se>18$B8M$m{6_Sx|x6A@a@@qwy7ZuxW!aqFs{=2zF>AK~b_--ckkE z1`jh+qJ^d7(1FUimF4~i5q2MFV*da}0Zv8(3&rgWD>yP$odhi&*r`#c2Iu*N!^7DA zPV?Z0632u2DPeTS@;|_+8T;oWK~*pQr}7GAJ>}Vp&EJ%}`=kE=Z74r#6d+x#wrwx& zo*&&Pe%JOT{U6u_Q1GgK37By(Oe~bRI9i~5>;gQoh^UXeq6SwHe3JwtzoCLMq9!o4 zmbQtOo1O`7h(}5+xb8K}+Bd-lWR7XdR+PjLyk=rsEPjD<yp?U;N_hG#W?Ne4JE+5g z4CEy)qy_l)icr!-yC+ME*ex3`ox!98T`wzxG@Sh><G`t9rfhE#;`@lw3c4}{@fE<H zNjF}#qqZI!`1&B(_+T#=x+lMp4R{MztByrsV|eoh;ptKNig^cDHQIg#1vEW>-XYC; zn|3lM!W!j?gjyP51bdGHoUiL+u)C{2aY`x{s)6bRUJ5=-_LWunfAxqcCBRTT`k>ph z-}ab~*}b4`y4Ovf)hvN%qA<Fc3mKxhfIIJjqveY+1*$y6!Zok)B6x>Bh=Eh4v;CH> zny>vzO$SLZjEugZjuptSy!mJ|aA~l~1Q~*bcYUGEbqj<9Cmj!#G91><81FLG%OK9N z`yfH))A1jc3DzMdQlJvHK-MM=B55ns4QdTXIByc8HLdpzf0l{L?+$|jErL+A$A~_Q ze=u>5N$G)stI`-AkuU>{${@>rASgL$#04%}Ho(2YS1^ZNE#l})n4Yrj`bAQbXQN97 zKSh5`7Ni*x6OcHpR>Z`22y+2*lg?wvo?Danj$@AkkasQ^O$oTw+id&H5e}stN@6Zy z${aqkuV14Htz(b<WwAC}f7q4zG*dy;6%n|+9$0B`J<lG{n6BV<5dxeMu4`}1YUT)q zW?+{Pr=$6j;Y>Av{{Vg<JWIbK`h%#P(O|;hZY;$dg=eV2$U(*TD1dVgB|zLcl`3E& zAR$>kOZZHW)-YGV!3@@EiMS0#S=n(4y?LU)F{rh2H2X(Qdj9|j#S}ENW5l2bsZ+5- zJLH9v%497Gd4x6OfNqQVeF<D5gbHnH{bk(>ZT|pX;(!{vYOYzZ-*XRP{{XWO5;N-u zdbdA@6kKv19;WWCFsiJFLwHZ5ahYXI^)6r0kD(ZsV|+qXs?=^Qe8F=5l@HJvh6W(7 zs$#+h4>J{cW4n4{UYthmW+-1Q-qstofA28ve6z~=XPNUnua+dq!{#N-x3(qajhwQ8 zbA~!L@44iDVqV{v$+q(>>R+-dUKK4zGX<e|hcA_b?0p1Rx-#62k;{Wr=2aXS$x$Um zx>fzcv&9EwTouaAv|4TBCJAQKn1XmgzKf2}Bn7BIsri9!-+*?-e@6!mPdyw&hnM|s z8JU0AGO9=bMRv0=S1anjxTW9vyvO{P<^!MeddqwN0M~I(^hDTStRjqBhs8z+U+#gp z9<>12J|Yeu5Dy2~mO4FUmWRYIh}oKrWU)z6(8MnSy(S(fB{2s9SGZ4oJ}N&1J^c#& ze}Zu=fayNb8H(CDKyU)1dfO1x1(#<r<60D3@IYM2k*ayf#0H>4?)Z(cdY|}>{2s65 zCc>iEVF&E(g#lU{QCE#NIpZNVfE}I05pI#0P{R66lB?bE3^$eXhKHf~XWjiZKrlma zF!~mvWS#;zjxcT`mqavuDFv>GxRNFO6Uh3V1(}Ohp+c}rBMa{^#<ne<u%%ha^cj0W zlo<A$__5frNo_-w>(Wt}IYeVgr)!teur0uX%UKvckG}i~bDOB*fffP<#8pAe97Ty) ziKvs8C+LK4ny;CjVkb-j)Y0M#$1@*o_hsJanZ#UbR&VV$O<!0fQ2|f{$3S71qn6-+ zn&df|yMPcWviq)MDN`0J4hIpnx*ste`-hFbuA<_o!Qvxx1O>7yu=tM|Uf)QJX9z#v zsiO$`1gEwsXt{Vna1cSD-5tW&C=a|Tfeci*GiaYfh{Ktx5A$;$pBs+uCQ=|yNgY-v zk)C<oPq7NOkkdr$r`jMQhj@l)M~E)MP6HgW$-?tegqUz~7UTdkk@OP)T0ZC(j15Bq zMD!#NNogslvkLu|h;!{_cM4%s+(B?O_ZE)<>T`wDgo#RWCz*jb;$#h-%diKpiF%N6 ziC-&VC9H$#%FXSau`z9O^m|6L6Tqkk9#EH*9Lx(h=(sD-%2}JItf08&-Y5Amw|4c2 z7z53~E(hLKiR*(bNXD$vZ4Fror>YN?G(0m|-UzYUY7+?RK}nx>7jHb7ablUagrukj z3!-_*IxDu1RELg%yv!sOOv6*}AozTf6hix%j7i8vNP&8d0p=-hhyjN3`dv%%n8(Z! zrrFd;&D=5-!n36#g)RF=B0_gi_>CY-=%)PK<~p<#-tvduU`DP{5~>H8lLgg${-|JF zH~40R?69(leclB~(K{j%6;~<zm;_g}4;7Ego?*I|O-s10dWC^1&-_KHV<a`4pP-hx zcGuo<+bnxTvgaBw_I?ke6o!ZV!85284QASUj$t~)K;h^c%L?+sD-P&h!oKiySp^>P zQtjA}+*pMSlZ7kZFNH6Uwf90_A3_7vs|J8oO5Je_It%t7RB4OmR%knvYLbWsJh$l0 zALiNj{{TuxpGmlB^*3Y?Ofl~~VhaGtOsBORu>5lEoBgBqOHP}<(2_!=pr^K6TsWkT z#^7b`22&@pIE9bR+yO3iuE<naD+sZ<s^V>P9WG~YCtq6cRsNCOvG`|58k<WE#|-8q z2gVtF+SGX8)j*A9{{RBSqS~;Pcp-AV?#uTo{K5RNrH0iQi)f<g2p8CdtZAIa7|X58 zb@%@OXa$R>wRhY){(ts~IpD1uH9-_F)r@0P*{F@WdqHFC0^&c4FdNA0#h$KU7^sPZ z8jgL^F^{A`@KYADtN@h>uI06OV$Hpxu)ApY+Z$DZT+<8Dlo&J2d|aq>OS5Z<Zdo(! zI7_}W_=K5Qrq%rfRSk4zB9X1i;*yxlBTRLp-G~%8gyfXKn|(W)`^F8;6I1=%W`3|W z^@~{s@d+5P_m?hPFX?d8p=?{nPf%3>W2|;cH0wOFghlWpQ&UV^f-y?+cpb`(%W}l? zdU*Frex(c!utKp*Dw#0@^9c{nF6!OOaxb^_0+QSwTV+Br8kU_6A}x4~${KAfJ&1K= zAmNxC5L~;4&%B5I<ly_MTg6t_6wk{3#^2cf%2m6{ZkOem)xRt}=3*WVsO^qrQHYM< zAu3(3n}8Jn8X_?u;hI9=jm9OX+|RpBzKm|IdP@7<+Zt;Jt1W+IqhBPU{j9P37*Yzi zmI=R|KlB;L_tUfFV~-u2pbtx{O#cA2{g^*;Rn$|;DRy?u-Flms>LRa_BH*kLVe2p+ zYEgJIG@@%axknZ*Az_24btZtao3Ai6F)Q$l-!rP%rW4XR){(1)5zo=Yc$6UIfa0Qo zl~@#*L7F_B_R9nfT0mN<4aoQp><9S2vYi!KTFCBy*ccSh@Pwy+<Q9kA{*h5Npmro} zO9w}B<^Tj(2#2g!^&mg)51*W4W=2V6G8NCPKcZoxYzH3@alz*w*hIYkHwA(K@~+w? z^3$ylA&_|w%s^TvlT1Q;8I)Rsjgh%al|J<ri$DhhMRx*HQtE+Ucn4<|{)ostz`p4D zf{m?rQP}zG@el~|I*cNBVizjkFvb<hO1@#NA4q)MLF%i&u@6;_3O^Z+w91&{IR2xm zSC8!k;5~n&xLoL8=>coqk=13nIhKxX%x5GgMtBo0TgpUeFcAZyg(3BtFR$GD_<cPf zgyfa<V^uASA4SD(JCA4mQo!OnUjG0@%YTeZ{Ff~yo??u>i?UD*0@G$8S@0Q~e2=>^ zW5QMq1Sv8P2%JE*0xearS46l`lndll;w!ZG{{SYKjlLd9j#`d1`$0_GrXhl?^%h{e zNAz<npd|%|D040-?RNX72ZR3rqZ#HYw&LqnA44p=H}_yv0|Dk{y00+aX|%U2I*CUC zh?#Iz*O+eOcKx9OTFc4D-3Jt|U0}et4R<o#()Un7=c$61i@LL3(aQsq&T|l`$2_72 z$_?7xu(fdVGcY1X<hcNG8W2ZCW>>BV=$C5g_=slElvJ--aRJafAKFwP@;+8#F4cLv z@IV8?;Ex|cn?`pv_l!CEK%~Z;7G;G-2A)_`*qK_4-tc~=0@qN|G2fU<PcCV;DAkV) z04QiNt3}{(Ja@Fz^0z*YAtD$t8a=Ui3=xqyucaI604?TGb5^s&v1qS3g<8(>QMHNW z?p7SBF2Bs6x1g2g&0n{uTi!ZXtxn)u@tJs*>SoArO%kBEjy+)1JCzMWzP}M|ePx-w z!Kg|e{IeJBIFU|fcohU2%%Ij_3hH3fEpq^UWEp(s9>!pGPvois?TIp1a;|V(<J^Pi zFGG`2T;)ztGip5%81$D1Oe|}&DQbtzQH2GV#tbaDU`j)YikC7=D{3HpVprB8YtYNa zudH8i{KI=Ce8t)(trmTm#&I3}6KBL0^6?V52d%%i+F2Jl+$mlms<Hn769%VEZ19&F zG<-@M9}=~o&xyrfXf;D5CK9n@%oJ%1g&t=JB@T%36TnIbQ28bvV9+%z!4YS{8u>x) zAJ6R^@rhdWiyx-FBbY5-L>ydL&)9y%ss5Ky$^nrUya2`{bzUEYC5}fJ757JKU6l`r zsB~y{$GX@lr>bMEN6g@Meo@>UOEgmE$#R0(OD_A1DyO+bqTRCr#&iv8SiY62GNNu% z-}>5pYRNeII6@0CDb%|Fj2J2uaX!cJg5R!T?tUPwy`L<*UZ>_*W>7ktCPCW#PGr5L zF-jN}w=IG56T8~L3pIsYsj8PluYw#yXyHj8L1Fid$&&mbcNLHP)D}&>69y2oP*RUL zO34+bU)KKs`M@;f^~wgjgAk1nTh?FdSVb{(Z{IL97JQXfvdb;}LXpX_0DD67e@qDQ z5Fj-cjSL7D_9YhZe_*p4fNQn+<_2L$Ic5v)Swv*y6dAke8&O({_S${e$m;@nG1GWa z?H<E6U!+r|0^<2)m;(*LX>k=ha4-t7DoX7+8A^Q$n?!-9xsN@>qQ3I<EXiX*a6{2d zJHv&k+30w{%y8|OgbH`!SpZO(>L^wQPpS#xTg#`cxz)Kn#>EEYi2?9BJMc<#S+DGd z0_s?EUa^p?oVl+^;AM9D5|t^S>&&kdqQYD)&@tbBUOlQ%SDjq2n4-i|s9L_PvbVVK zW#h{@Wl`GEDm+cmi+Syd3_x=bTV69PbbQ1(J>pYrZvh5CU5(R}1W+9=)6O6TqHzx* z^kz@n7Heo1+^;IV6ObO!7D5_YgXnxf`};(;l*Sk*4fjH#CD2UaMF=r|V=WdXh$lc? z3<GMSHI96qBQH{iGQR+|;ueACT?_bxX?)N6=+M|0%ui>m$@`{n*u{3<@c#g<9Yk4p zVc7Yecg&|t<}1tQ3oUyvAL|`nT_-ZIRJr0303I&iv<nurTR+guDn+hHtTnzOhM!ru z38pTer{{wQvi@Tm;+(SI51CtJ$Cwa2B52Kg%EECS%1KJY4mD|#Hv^R7Wn3ybRt)6< z6}Y&=u3@{HsP@H(<%I;N6C_AK>oVxLsElI;sI@W=Y{{U+!0KJB^*pm1A$b`^rlyf9 zpe!ixN0rO50taP!3mgC_%2ys^J}fWo6I$91!n%s9xO81ydLorht~i*P;Q$s+oXgVU zqMOuWj$Dwuy~3Z-25)}f*Z>N2V;1_$8XwQ~DXk_DLh!z;d`A;NVGns$4=}SVS+}_L zkh-;5@tcai#p=SwS~I9vT)a~EzQ$gI5aJs84bDhrZ5mUG(-6uu>I5%Sd6#<3YhD7r z^3aVII#X-E!4P}0y1V>J=K0jvb8N#dYx6XfOSUCqBcy+bmK1>>M&;G99-$02s5@5z z{6hWgTm|d^m_Z^qS5TwU@er&a{o+VwhaO3xXh}1n9ZnKZ%miDLO^VzYxnX@G+_`e) z{{Zk&Sce|4ql-{hY3~S;W^P0vHoqP^H+ah2vbJiYP>TI}fxu5&jKvKdK9TwRx#}S4 z(!8u+U~SW8XB3ZPh6Swlfxi*p%IvNOtZWB{%*!eHscwT)Vgga#s%(S?^VG4-t3?9Z z!!+(clVdW`>)b?I4uC~d=tHtps~c;hN5poV@LmsSYgN7rgIQ@~p>bk0CZM^lk!*2M z>%`julS0;}PIi|U;3I@6y2b7y#7q230BL@M+y?@lTgA05tr4><^&D(m1GkuMH(odJ zHy0yoC<BF_V6W(gnjI!5-XWz34$ht?Lc8R2%a<?z0E+|JjG$9zZ%3pGh1KPBK%lcv zA#}bw^q1Y{vi|^c1r>wB8zQ&PS!wrrs0(WY%o_)9h=RZ!kkV4Vgh_^5SFQ<)#ya4S z7G;DAegWu8<_8&9txiu;mZeeDX_aCsrFzr_JrDzk9U-_ZGRn*qb*NX;@fKcYc52{p zrp98Gni#raZG$XO_=hINt$a$0T5+!;+_|Bh1E4qvFtq@BJ>{uAP9-yR2dFwjz;aeP z8qwUV<+KVf{zM);OHZUbDQLXcm_k*B7nm)x+7FRKyDBo^4)Ekqz~U6`3pRr^MNUDi zz>HMipn}p}GRL$Xc!iMQk(EOt{TSox#^6;Ho5K42D;`i|eQGA=*WwS7`=kQNPZ^bi z+ptlLA`g+AgJWL7Ku{^<>OVroW+154p}2KrcHj)VR|HD{tCY{X4Y@gh6@%qj@-mIn z)@OvzfBMJoTz{CB&)54(RAu#q%Lbvxpu-iD%YP7^vf{a*yq&E4L?8G2OUHx9@dmCB z@u=5-1OA|8^<*e`D{z}wHJjs-EKup&KTs9+r2*~&Yz|nn>zWWycGFdb77dAHAjo(Y z<C4sP8IEa<pfQ1_02@H`saO01mf?%cm_d`G7N|->k(<6{njXXixa~{ZwMUqPBk?K% ztdF-dTRCW2y$N&7CJgzNH4Rp$DXKNbWi<|b3<f~-;fX057)HaD02ZmB49d!KELwet z6e}HVW?WXty+LqUc<wuikya8O;R2UaqY3J$DLW3MK&C`Q_nCyVv3hkJsC4l9G5N!_ zf>U5!bh?*Z7&gaH3tl2l^=`qfMuyym7kS1a2xZ%X!HZJ`OJXn$Wj6~3h4!#sz)YUV zSyUd|4{4)%y{Jt_#ndPwDi>B=UxHo+Kv$VlVVaFB1+LoWSoSP;SFAvH&(Ww;g=<87 z7x5Q{T6@JuV-8a+fzc}u3B<*k%U{Y2X)%FaR9sB0z&QSxCx#3MY`8aqR9oB+asVMD z!Mn|{$4zgj;xl=G@=T)_99r+Glm+<Aw|I}C{{Z9zE*d&#-Nf)q8X<P!FX8~aN3J5K zkYPf_nL}KYm~ONO!d3l|vC)xG?G0a0yc)c(mLLEsz&`V_r8P_hc;)nrqLfcP&T#-! zLTvSlHgPeBIX)(amY(^IG2Bhc%}NgsTg<7NyQfX;<e~xsoe$ahlzR9>?JUhNG7sFT zVNVlW%)u|S^9_WWEP#&yZu0T*1_V7@e8RAzRbcPZ6!;7jUqnUhg~c^+PJrFS7)r{1 z4q{vuR>#W52wKr?TCYe*@vebS4~QrL6+2$OWj`Bs&=})vNU+A-6jnRTW$B6X9m9dz zme7XIpf{)0murHyQ|TCq*!5EU&DVk;rCr`5d?**PAeuAl0S{s80U9aE9LgCbV0C+3 zLE0tj4pW!|z$^`%x_BFv$_ngi`}y>SfQ|`<4T{YjO9{1^TO+=rXMB+6K|x%(>LBd_ zF)wH_w#ct3K%6chMVEM@+n5U{ip*rcA?o!N;wB@Ac=}Py-#Pmsealv0w+%{3Uuf=A zbdAC=n6Y)tU@jqEJGW~tQ^@S+(2Z;om&&smNT&eek!?y;Tb8;Zh@)yXj^5xG*1ON~ zEu!hCx{eN_b}g3I?dXjX01wLqV}@~O)AnWgQ~{&MmLLX$H4E(_O}i4ycQ138$1g9m zMZ@`JkKDoJO*YKGxsUzkTm6}C50QeAdMk(^uUApmQWCcdqGY-*5VE;uQI@9Fa*k?? z@H-^&z6cL+(G?;al}l?i0t9mn+*K}me)8YuB)%d@Xf27%YHg_6yJNYoQ@MSowmel7 zrh}e@2LXqT`IL0{jT${F0g9;=##mXW!7%CZ6RGh6gIV-|L<I7S;C^A<*Wo&-ZGm28 zi>c&Gwy_@RluaM`P@^I1Q4WiP^p*AXl~6wOHb2EgOqU$L<*7{QY4BqWXy@8+689aW zldMGHdyb(FysWCgxu=|ZJi*hAd(7Fchs+9Ashm-_eDI3!%4YATR^{11S#A5v{{S=q zqc1>2buhF&UW9dIrDx&|ZH5Q}mP|plV3n4B_k3z6nNM>lv!wNg2O~7&)?VnyJbAd) zt<_=GXmd%I#X4x*LYi?v{z}gUl^5n|LKI<7g*Fr@r;?7wX7(Hlzm_KkQiAHf8mL{! zj(Kxc;DST8+YWxkP9Q>Nob7ExX)P*h%En+<UI4)qtQ58fr}c)28beCxzgPkz8(N{x zd&Dx}9V(RKOKt&!N9cCT!DjFpuUSkoST@7XAx#SkYKqp0Nk*!f&KZRYya;32cL-7$ zzTks-A2$$&%}+LF;>DO#4ooTLJ(ZQ%^h|_9lg!qW)=s~SNp&j1{$OWASrfZPxa$7^ zP(n<GBkU_D(gthk=Q9^?GbU`&D>n`RE6UEE8C%;fV7S44E*t{Iy%~VCFSJNn3rfus z)DZ;i74gIaHqS?-!z2<b71m<1_?TTl)^>C0`G77Je@T>;4Ko*TX+!6TxNKTi-U6;j z9R3md7V!9#%AO=y;?@B@+ZHQ@bE^smFex+$;gQs_;1<HvbrNNI1leBU2+Bt)wetd? zLi6$^W+EE<%t2}Jl>EbVZezHR<0gF)1wIMpAW~T~xN+rp^_!4ord6(8LGH*MX)nz+ z(QaMsj$KYmv!y`-iVzrL+OiC<F!4@Tyz?sMT~}+-QKFKIs_))rXl0H1!NE;Yl=6Ts zvK||ZU%@e*z^|M^2htT?o~>Dwg!huq+798_<bBqOPH&Jc!-cuXC_b~_Ms16v0|Jo1 zKF2AF2Q+HmEF|$G_Hzrw?(KioGX3(ruB8E%utGtA;momBizsTwhgG%(QaA%~`EK;^ z?U!%?%C#(`S6s}UQx4?_4Xnp%+j*6Oj+{g_oGQ2=DWBLf$M-{{M@5z}$E58qXiNZA z)0hU&%2&T-ppF~w{!SO>{{SG3(6>q@KZOYE?3iemX0pSR?S*qsXpvBCq5|-qCYOP1 zp@A$`eS?{a%et^57+){QxPz3O18=u5IKgigcZi&_)#wQRtw7LnQ*_|7UIGO|hVGtV zZ0`L&kOu>50Pz0+a+4ETGG3}BfCBbcyyeSc^2Gsp3uWe-Oaxn=0&q}4S<)Gz&os@A zVnqSUbt)2iHE@@5n+^!%xqekyu_T5vu--i7wR$G{1&X1vg~oe<N&>Csdj9|u72KrE z8iAOMU_$c;a;&tM*0swh#y(|Te3PwxVG|MD7D%An0BoJm*b5O{2e|(LAp$DairW{r zabn?a^1%s+C0x6xnBBxp&MyFlx*x|ppwoTDzonH6Vk^OlG<K)jWycV+6{&rZ<}Xsk z-TFtXHq!B}DR>2gT0n}nswAfvA0#E|iRK%0wRxH*AYNL6!J%oKisy)uJWx*vMW zt;j`s$*z1w$Qr&be?XVZF>AMDwJMnTDG%g~_6mB&;KkCah2V?j5`%U0rlW?nY6Tu8 z8djj&IRV3-vFgguflxu%;ed(USqHF09O94KK3w8CO%mCv`SeXb8x4a=6O4i`)m8G2 zwNRx>bJeJe7GXhd+%4k~BPk6O@>~k(woAA@MNo<$8JZEn_l1mQ<hE=^$z)_*UlpQk z!bnrd#$nhws1?uy<|7Oh3vTI`pTuey8y2gjVCpHQ1P0lnLejVz&G!UX-d&t2v;?QD z9!2^(nU01^!I6BpD23gj;D)_r30T3Wx|mFs5LGc=69TXXt9$VPRAfbWr#hD400YFt z7P^{HMi>X*By6$|OJI!^z4t5{_nK~;2qnLl1@t3UU?qnubdw|>SPs2Naub?VuM~#k zfO3S;@Cm%cChQSfPh@T?hD@I^7vu@}BT-U<mWA9ZgBF@K;tAZy*AB4|a8i&ZW-I`5 z;vZ8{0v9{fD`6go+6Sb}mTLFE^D&{k{{ZGCX>badsQA+sBMdX@%le0nHsH;}A$HRK zAg}YpYaZeTwm!`SR*m8+A;J+vM}}ELkV}Z<J>#VyDWP7^{g>8Z)C*~gzN%sFB<L2{ z8RJ3O@;;FlRj{t<`Un+daX%-hQdkApzpE1Y3>BxCn5Ym&w0Rf&knah5E=o`?{UaG* zBkc~N6&ynB^)i_VHYvxR<>@J;(`Ep16<uUq>zZMTH1Qt2qhNPxux?XNO!3f`sugRM zegqJ0nOxA|qyu$q8Ghh|-AUgFEg%tgcKSefl1;v{yseeduQKvbDjMwekQD(m_Z=O( zMsK0iHEBR~=3NjBH<}e_i$T742VP7=Wn@<>rrj>0aU(}w@aE_=8jp~N$c0iS&QCJy z@)yCB^#%_tPk=_|ft_XHhFf}|NF{Z0^@6B6cNdm?o0UPY45HCuVr~&q;Qs)zpbm7M zR6PK4RxV`)Ys>DyE!V_ASVDs_&Mig}%p*~vYHi{iuAFhW!8EQro5Uq25Z%C2P8!@I zK(ELpu#JJIIcwH5+R$!SoVkQdO>lN$1;KcNQ}AhEn;oBTEG%jics2h3gw1T2rymfx zh(fP?Jw>nvjAhYoaTLURRq!5ROBBMQjYFc!sx9;4B5g-!CsELI61Y2pt~NuiR|FP4 z$X8S%l(N`ZfK=ob^Y0P8WWBLqva+hH4cegD(GC-6AUlnysH#=VY^_mXX42q0h5oSt zhj-M+LE^37QzZvN!x>7;R(byb1b@O_pIFVHOWXi~nZ8<jz#`|5>5(SvfgKZ>_)y_6 zJt0k9_?d?EFE!K|hw70w0yU}1YpCw0>Mw)gOZ%f@tk&U9M!OJZ(F_^G0D__y+TNse z9ZLoL!^v*|k$5`|Ul_z@g*YqHc|q?qtCPe-!5j*G#JNK~Pt*Y0nt*bm3vmskjO6nF z03^UUhArG7xd~l>dffX*8NW2~06HFP^20uPNGmlc<bG0_umYDJ3Xcs8jJM`A!5xEN zh!9q&P3ll^(!Wy!jM|6yF8V&B4x<hO-E|ohx1&!<dE-HCS5m+n6yqh`L7~0AjC5Y1 zim2J^9V~_Ad>%WG*4ozxL(rGMgg!EVFa&$0$~R2M*0F3`xnSer<HUZ|bb|EdQxeUx z)Wi%9P@0Ao)@V6GDE`M{JpF+delq)MDjWlh<jmr!(!kgZ;t~q)aA|3TY@(Vf;G<+! z{vp7n`Xn1^6f0!z;@D6a&TDXmZredE3w&-0H)NP>D%MViF;FADIa=p8#A#(@=vh}x z_>T?k3k8*2tt;FFrLVa#n$b>bZpybD>t?1@%!_LUO~l!wvV*6nfr5g7?FI{jky8*1 ze3(91OR`e)h68c9Ev5y!qFETp5Q|f*A|z4!Lr7}W^de8+kVEdqs?9yBu86^kxEAE~ z{{YOjqy}-qAkla@93Fhe29}OsaInyHI2<9V<mObbrUO>nekG%}49o%1^aAaQ8yNLo zLh^h^uOC6}QjjcCY_CaI83Odhl+LoSGM`+F^D`aZPjbByw_&6Cl)J>Nbj<{z5LL># zwl_41(7OY7=3WM1_qf<>l++@Qbe>?Unsz`aZ-zWEU)+7AP9EXx7$vVXT<?;P2OjLW z(va}UEhVU4G2@Ag3J~st&lzE8MYVumUSi#k!-xAUqMgB$Fn}t21<Z<)+%B)8u>h#r z4UyanVF5dzUoO$?wx+&+#5szq(q6ht_ryUG&Z--)iDm7uZLbx~#-P--SOPaSD0<5n zHcrI{3lh)<3za+SE**YKqbYu3l7<SGjd~^s;oU78iiO9LV07q-s=Jm6dEbMg7(5nK z65>4^0OUD%o1%dwKIvAQqjxh6%w*^DFC5pEe(1~KVdJZVPaXmMVi{9L!+`!0v$vIi zVt7QfE-G&)Lqa|dBBqHhTH+@f1l7eUqXinH!!SQ7KkOFFX~eGlkc@6&iBd<C56rED z(F2I~-XaAGK4JJ8X~jZ8PF#>ASO~qh;v2ZQfdUtgpgV(_yh1B_j&Mg&FQ+IuLG3TN z<{N+s%qJgsL~;_FxnDKt!4W9{xjd@z%|!CW`x?4~2B|hT!CZcF3lwix7Q*gQF3|by zie4qiRkZ@#&=42K<wWEY6mP)lVIeb5%r!u*4F@zvEzNMn2pMYRe_2mo0?U2HE*fvq zqX_aY;I>Xp$}|-sfzR14X|5^xyN7~NXf}|ytB<QVjsvUeQqr_kwUupj^hbsi0j0xU zB^fPfC>SbUsX>rTORd_}289f;oRNW`ADAHyQ^7Xgg`bb2QDENeFjNUn%l^b}G1RLN zEExP?OKZ(PvNkA>6{Z*<xtkydq=Gd5ivG&?hoV10lW;zcWioh$f(8s9dVy9elxy)Z zhoEl*?B;1J)DOcHF%HxB1PahuY5xE`z+NC9*bhp9%mu_H@u-O0S9+@-m{8ddqcYDi z3YG73H{$ssDj{kMS4TH3P4Ag^={dbi=Y>~n4m+DOKGXP%qzLanyB6wYaT^pNf^xv4 z<Xx{9#J!pOx?*&dg+=ba6Csf;3Y=xZ;xHZRH1mN1j8~w+&H0(oy+s@_fJzM=&8fC5 zF<k^4BZ3+<3KY@X<@Jtc)Oxl0j*EE*p|T1ZQ2Lxi0o#HHwLFm+0E<%o(><ykBr1Dh z9V#n4Qv8!OT6_+VX^QR()#jyG@U-ZRUWtqq=W%k;LaIj^8HYj{g00nNQR0F3Jz8#n zfg5475l+ZHQdV#)E_!rvDc5#@?M9{Gf})nq`3Y-}LgIUJyOt*qTKDQ<0!tL<6`}c; z+syJG_M_gPB{V+FWgFx)oHDAyS(1H$fB-j0UsXKENC@IuHU9uo^_e?@@bH_WKtdzi zTIH68BQ%|sXn=Mo4no(Ku^KB@d?yHvYL^(KeO~3i3?M4hh7q9YW6LnD14I3|xL~33 zR2;#{B^S{Y<f<Q5UL2VG!0au*5wv(^{-O!=tClk0^_a1kiooR)8C<jx2GjW<%I<KN z(N_X;={blyT*@J4tDkr|sfdeOmq-%t9Q?%IN{z3~K17Os4|L(RE4VO8&JE^cTA(kP zcn=b{h@-9XC}Rdu6^3pLO~Tuyq4bBxpWFrw<yLmQ0`y0xEseKAp2fu^NboDPfT_k> z0ss#t>zMZUFI^$)Kf=&96r|XBm+iVF5R1MfJl1~m3}M3d%KrfC`u(Mr#X;#Y&V)NH zOu^Zv1aF`=zFhprY?hzl)*}cr0&loG;uVOtA?OZbP;NnP&n#JVrPbVqOfqh3uQ*N( zM$q)&f5zBDfFVloh=@FiuUyo$z|J0+<pI2@kw;K;WESr+?@<Zah$(U{<>l-UgF5Wp zG!Ro&ikf_r$T2TTE>-7WPRD#j4do@RuGxbbT};K4@iTcaI6x|EIg5pZ&~6QFGTLlZ z<Z?pSXL^qc222+1?on1rULfHuiD_FVA9$eR14pRC8H|;D^(d@#GT)XN;HbRB)V#9d zl@AJmJU!DMJNuw@Z)OM<7Sxqx2Q_$*%!oUxSgt(FH%aI~=k^oSd_mZKzpxT&Rz|*M ztBbk&Ke1wW3!PAG4EKstMzZ2IYyNsnFss_!qM$OOy`#~f$%6S=YYob}KtXPn+g|9; z%oyBY(1EDSN<A5Qc|In?h_Fu!--rzL9D^r{m+he7L>@@HLf*VZl(7Mx0tdOm)w8Fl z`rCm(y}bA$<pBop<ENF2K@|5JR%q^1a;RJ!-}tbc5Tk&1QAh?|jQJiVg$k8h4-=yS z?=>gwOT*C+t;udzs~J!ug5HBOfa`!dnC^BQ+Uvm*VxgO5F2RRH?p0<~ex-JuwWG_# z66e+n`6%#D^?y?W$jXa4l<^osR}XQyL;xo-?4#A(P!vxDuV0ot1~PokS)^w4X;le< zgU^_inP)NcxKo;qqzDq#R|!kzJ}N$t2cHu?W4PQGuSkox5Y-B3{pCy^k=`S?xqgkC zhyvWGdNXQmCE7~|FlwB49Bc1V)4H4M0>5doFe0wz-)JvHKSWic>ns(DoQLHcqk+xy zm)dD+Hjl`I5|pBm@<(+AW_RdH;ul4hxZA-p&26P!On)5|3a^-_9Ir+xk**FR5;Pu% z5XqIhiyB9)_LthZ%N~-zQ@hGV)N-E>=@2%}{lF3O$5WbD;uj+~(H=ff8w&0iy9L*C z*f#-#iHJG3;#&Bz<_)s?YN_BOd6y3ay3s+U)o(uWnyh94G8`6!0f9mTR0b_QBE%-b z*mfPvDZmOq9O(cX@rD^jk>H9RO%YBs2Qu*wiF8{ucK{+VG+I;R;xCdLSps6ppr8-< zgIQUz6*tcjS%PY64JF}K9Rl|Y29smBx(G%f8lr(<K)2~uxrPrC;jI!C%Q$72iy$4t zctR<)J_c}V*f3Yu5{w*U7V$Hj?LaE#1f*qVK#KOS!)H&Jc*-7uKtQs{Aa<d*1wDhr z&9v-#VF!7k?3oiN4{V}Y>p@ZRF|5Z|7LFw=a<!NPEF)4L?9UqF6>}&VFu)gdM1|b6 zw=e{v*D}Zei&Qu34otp&maO7_i*S^KvuRxa05{SQ8W382F$^32f0B+t>;C`{1S_`1 z*HXsrkaj&s6b-<rD|nPs1kbdq;Xmcr%c+zD)B$&{J!L&(yvq#(Mh>9{DPKvOZ#nOF zeUTE+k*C^>TRBrp5FPSIiwyc&2Uwit8r>bm2&Hf{idv>wd4B-H&_6N^ZQ|no^NOxr zxnfYMEEiVP63|e)ayGojZ&Fq2mIGK8_$IC(G*<<?%L<)k#SK+dr#9d)j2!_m%85ic z>{7U`X#*qM*pIj{xweIBRb9fuc8--?A%RO8cO5h;E_aBU@&+?|z@TpM+)!w|_=)X@ zfRXJ$p4KMAb}~DI2+DgbBf{;6TVDst4<ZC9#D@15d>~QLL~ST;BfQLa5p;1jFbFRN zks7eDs1(_Iu^@&DmX^*X5Lbj`lnq<BP!ZD?E6R+T68xtK*Zn~FY?}W7Q)-=*m;j<Y zqO%OX4pkh5N86c#Tpr^Co0k`Irf57w&l0gYix#KEp)GtyT*S9U)8Y=6R4*=%JV36z zd0l%#0b#mv66*rCwbZl&lx@AahF2CW(z|Q8hDBRaai(??*$d6op~O+8TP>N{EfDnG z@GS?L<{|;GVP3X3FbxEOT(bL1_TI};&G(0Zi10O@VoQr`_Ce@^217u>P7g;cBBZ!S zFmWw*N|t`1ii&5*pTo8ZYOJ!_=&0os*?=z1mAt-V4hrYNDpv)UeOy;57vqBA(P-s| zcm2<Zy*GE0=+#+7Fls+S!W4W$HW}oLly9WeRM!}k^(>YX<owQAr_iaMB2iV?FhgG< zpP1L5g99=>K>RGLYv>Q$p{vrajNC&3Ic+~^>Q9#Z5lPb9Bkn;=G{^gA+Gfk2?}`5a zqyD9vS=DSC2W{6kdP2PWD=(@oXw~_eqXL_4X9(rC;6&r*e&uHus^Mh=%ltxPE&%KC z5}~}gp>@;nq6l2bz!`B+yeb;7zcQhd&R83|TZfIl61uP))BV9hS~vmmacCD6LBtjw zMBj4|L`djq@kwb)^4!L`OZSw4*4uxAS`uLs)DA9SOoe2wvjVEx1vp=rIQj=baVe`H zd!jn0Te9E>TDDc(t%CVgmVGCI1<4%^Gh6cjIDWLzig5F!OZSEdZ#N5b7(GC?EIFXP z7l>&#y-eACA)hLi<i-(s%mSPkyHuBF^_d%>d%uy<s~3<G{7QpZ+p=b&k-CFGof5H2 zD(uI+CbUDA6HWTVN@;-IWwz!~dgWlU!i}B8;X*MtH1QYEZNyP!V*JEJWTLZ-lI0bh zt-+X@N_>wfLF+P8{+Qrg-Uj)%a1awTa1GIfDHfIe2*@H{QKWK9R$Xj;reZW3RT>`m z0V`8hoPxgc-!HtZdD--ixF`}8v;xNzr-q$FpmA2%D+Nn)tHpa?1w*I+58M}An)QO0 z<-ekW=3*EG9rBCIF!y6_)V*CwtE4-`MA>$&jux$1wwc^aHF%hel-sd5D-5g<eTb3n zDU8c9Zd+n!pQWat@hcgDf_W2{-GW><P?yvSB1+VwezJ+tO2GAh5lB`8>i+<<DRY>; zGQYS&a<v{^4*5!!l-~yhOD>pSa|TtdZMSmvxNu%nba0QXHL%&F17#{%IzCt+G$&PC zw8YBTR10X&L=<c-`C*1JHCjpp0Y`+nMu5ABrXv@`rB&8Lh(ojyKdirz@6bvU;&yD& z?Fb!>7|7%E83|7-dW+R$p?=;DqZ4vdi+=1KU{jTM=`9#5p@qg+u2?Gh?Zi9cpfoDS zf>`KiASYK@h{GwoA7WD&X;a}5+j_)9gD=&{nYW<@xqA2qF|S#s9wH#C7qx4#bsp71 zXmnqV1S)O=p-w$~v0$$}a`=PX7nl~q1V2Io`5D1++!jQp==a0|@k+eZAS=8b_#!uV zPBCS5sp?Thyk;S^`pg<HHEA7vO^NX;vWElvDyFSDa}(b(r2r?Zm{bg35Hm{>wF`yZ zbv=PC&Y|Fz^Bdf5;~v<3Fiwa{WlEjUmI55xMnKd-ke6m?gYv@PA;s=IWr{=SXA_&W zjE9%F$ZICZt|5~a){Q)|;ipc5^c$&_zEa?0D-r_)EWw$eylc!;1tsthUI~NDqbM|6 z3v>|*PmPAM^SYLRY66_~(Ok=^*`Sw1I&Gr?d=W+C;IMeUW)y;pW4;9U7<X{DOYbf% zm0r_{>W+y~0&1aVu7`%D0%ZZ|HA!8ZtEekpS;nA>1)j8_vfxz;)O=uil-BraAm;PT zvBy2l1Me`@KJu6@hnZpj08-L895qpyK|sCrbCzrMP8zr)fz_bsRnni5A<KGG^p@<N zh55MkhLu9M=>}RcD+V(X6^b6|35;e57CmNTm)Z;?e@pq5r^n!j+Hm~=j;7D7+xm{P zpApy^L!MSBxA6-C)#h83FC@HOGRKz{E2^r7RIf<Cnak;CCd&KfDz>U7S-4&;jk_F< zA#9t@YtklZw69e?&InRVt*$}MK4l6_is(D7OuK)LD)nVZRl%=GdWtGmcWOgI{1EO8 z&^VW_=+Gy;Chk0tzp#5tqZC(=<eBg3T|On4+R=r88RlK2W0%i}-atZ#7lL&eUify2 z0)@-dGr$m)P~U<vC3|D%f>?$iSN<;JDNjs21NR7%THsvx--?JjNO10T{7lZ46$f2l zk5sc{4irqdx<i0G5PT6jzUWj&+FN<iE~wB7-zuBX>a`(^m{*y8!h~=Yh0H*N0BU?7 z7*<l8Jtq7#Ner~G#pTF3Unhu+S{_23LP2Xp5rU55D>-%wuMQf4$Oe%77{4-x+^O6V z5b3&CLMd!j4Z0rX3lW6gn?N41k9nOMK7Bzlu`jczRh`3Ly@zKcZ+uwJc~8>ln_^|= z2s<jw9A;LJ%M9}`9K-q?K@-7D%u@liiow4#n}RqIp<2EIFf4@t4>fGMdboaID+W$P z@jls180?Cn^c!xA?#|T+C%jO@24<R)?uRkE>^-4v<YLymc2l`TRpo_1a|9e>X=>98 zAR&C7ul;~1YtQ^a>L)8k<Ipz){{SMoA7}d%(0T~JUr*r|{S-xZzUb~Js*2+8tCe4} z1e2F^ISY)=kQxvAhK0)i0C|S9&Vo+0{-TuQ)+*%M^$sNmi0f{AK~V}yZR-F$1%(E& z<%@a98+EC0o5q!9m$>c>M%t!4P(GvT_fV#_#9&n79I#;)iHCB82n4vpJ`s5)k;?*r z8-srEV%RAA40Nb?mOV{HZI%pXSyLe%Vbo+TsS2nCXy6<pl<p5nYK|5Q9%6N<0C|ju zB+LaxaLU;EW08$$Z_F|w(bbGROQp(5!?+d%0QHN9MDqp<5H)ItZsiCMA4-WaO-eWe zs?_rbH-I<o$Xuk?wfaE8gH7%#==*<XzWG0~jslIJ*e-u$=#$KP$~>3M>I5#bmecS5 z0Lb-z{{Zq>h;3Joq*YEocm!nIWKI2XXxT~`4-gJ-hnU;Lh+ulmUT`{$ktR-|UhosJ zO{OQ%6Bhe!4TJ^Ti}r~mJqz4U(BBZpDYoJXBEfhFi*A(PQjI12lI+Qz1Hw=xz~xwQ zY$k*L5_@}M6|JJe@CegcITpPZ{0JGPI4cnQw`LzG9oefaUVUa*Il^}yxS_`~_kxyT z(W>#5IDDm@vDgejZCFnNap#<6x}LE=_L)k<lt_pUNDX$EQK|KVKUrMR-CdV0E51vQ zP9cFscr#Ny&v-fcKQQ0_02VDMg{C5&8SBiRVI|@Dl@BoG79n2Hb9?bF9uNTpa~k3! z{>)n#P5R75>YoTT0}!%SdLTtyB(pB1Sm_<5YlbbpQd5X!oJAw~g%XQkOSXsNU|K5Q ztS&Gz@e~FvLk<2X5{34K)<Xfil>1TwJUW47cMg5w8W%f%1Z~++S>Re|in5fb6g<;% ztn({VUZi~cLSLk+vzdi&tTXh4$yLz{1Gi<5U6mZU)sj(Wj^z=asr<^vs)28DlR_5& z>bKNVS+&MB0MY>3U6nC(`$QTm&XyBUxA~a*Ak!o@MK~eK6SJ5l%CNRP@Rw-$N3p1l z3aC0!?Pi14W+}EnorD3UwllCFh+WNPm7LP;7h+*ToTzv~Qa&=|^dJ=-kgQ|a)}dJd zIu|P-<I4cpf)@@mUhxT+b!A-U;spR2LARVlt+;6Z2rTum*v=pNgbs8d0N@C#T^kcI zHkc0X#JP2=C38PYiKvwgS7th+^2YR{M;VP<e%A<V1=-tz;9LqAKJ`#?gA7Yr@_b5? z2T%jDCg#DR_lpSkhHD_Q>6OD_sBe>k6X6)aLt$+##AEZNWdbd5;tcjKUs!PpV%v4; z0oHz{!Rq1T5k6IvFGnkaUY+uXd!WU;V8QXx5jU5jbOfyoLJD6@+)_;~P2u{*10Sr^ zmXQ@T)T=Mf{zBt7qW=ITW~s4tm;v^3{Y;>GwL%uEjaZqMh8|!yEgdOlA_$C^3i?eg zp`EQqsS<H41?Rv_3x#71@Jz)x+Dvl-iq+tT8!WHK{Y#fFT)A@om-Ho{CWrkR<(F7A zV3#gjxU9KxVl3NKIoKv0U(+e&W?^eY-FcO84Zlu~V}{q4M?EesIX7=e_7Umqiz44m z!mUP<5q8wrTO)7UaX|oI0FOX$zZ<xr);H@mmS@@^Sw{=DxhA<$xVfwEy6;<pS}$A5 z!E-`5X(r4addf31=*6LF?xnY$wrg<oq8mw=IaPYbu`gPdmD72+%qT7yc6ZcN=!YSR zaw$gD#IS%Mk4Uun!Wh+Z%=IaEH4!)qOaMkV4ua1vJ}zYi&N!>hH#0dqL)=!0cl7fw zIhi+zF$;#KW+8Vigtg@rVW?cV<g1K&Q&Zflq?j93+@20%@0?F>073bIm($EJHUVJa zV|FFa*cU7nYgN~))E7wmv}LsurSgiUt&D-%?TeV*jT!<lqEO3#A&qgn!H5IR!sE<l zRJJg<qdghF3yRrq0ae@Og<f@T*L`x#bLb2&O_)^F<Odx@3+9_1kqTa<?C8M+4l?Za zfZ@zI94=a;FhW|GT7#g2EWKIqC0K+h<Q?3iqF&}a;$;|lC1r_w5vC%#jhp;WJK|t1 zy%RicHh<V~Uf>jXsB$D&W%5ry<o?dm_P@h5MNb^V>mQn5QG^5TK^O_ukV}6GV_tvf zh%2E<$NZS_f1RHZQx^9B05}w_QkW!O$oLU}eT9%acg0ck?jf5g>HDIJfun8`IoyBl z2nv=O<xsY$;1z<ojZ5qg?qGkN?>I>zn>~y<imMt=dX%&>H2ub5<#<1Q5~wLtoLo0o zJE5HwE4ZFmPDkwtql2mWRd<Fg#zQP05m-_bEw8+HucHP$5TforVQy~#1V9pi>ecr= zrp3Zt*ddq~SNtQB3XDtTmD;c`ZF0dyDY39<5yhKX545GSc^Z3`D1VWZ!57Hu>y*3E z1Q+{^%e7~Fc3Hem6iguFJa;P{oD}=Sv_o8(=2BafhJRGy>$C;>qCHVNHa(d6c5rSW zKO<}7+8XUd{nH1$5unqTz(WdH&1am1bKnSg96;;tfULFLb_e2cQ8>GW9MHwSlI0mn z7S|LS2Ry`S3Y-Jt1=5kBQ$XJL2xHJ`Tk@2f*%OFoZlZfhQm8K^VFf}qZ=#IDH8x14 z7>0IMh&O1)s>P}tghrqsFGe%yB}GWF%g9$>`jrI&iUR-~5Flm3h-|^==gKsL4qCU# z!(73`J65e)-%$p^#W^5^IwnG*@HbNI8x#;<d;29qP=jq1m`n`J5LV?j`KTtrM&B^Q z%vRRe>WN~hbEv0&T%c{YOUn=%en^`D&FbfAeq0dC#}E7=fW`jhP=d4T0>i<o1=lvx z{{4t>aUZm7m~eX(N?>zlWeJ5wNIuAkMap$9J!;`h56oh5D{H&>-_S6_Ji%tqLjA~U zS??LFdT$GGZmu0vK$$>a#)2`ZVApdX$_)zM%HV{BmpwrkB^@__4BLf|beAq%xpL+G zFX#(Fw;wW;8xpdA(EkADm;V5UJGaJ4zYq_0ro7Aw3k@lZS&S64egXoIN^ZE+U4 z;nK%9SonanAnK=yOF`g{!%2)XfC<u?fC<&g{lM*g2wX^%I4}nQf(l0~)I`Vh%3H&N z0fUZbBWD>HbYNhhtM@PyVJOk&CR~d3k)9xc(oIoN`JIr*aaqC!H8s$;*n!MD?x<p6 zSlQDY=SZszX`)=UV@DGNTN>_Fh`-Igt|j4@En)cl6Wv3=6OmN_<bc&9Cs1Q<p>^lz z{_;|UQ^(OWm=GX0#3N5>SBNO_6CR(5kY32CRQxbZsU0|%j8OqpUb&Xy%OxRv#%iv> z51QLJWY{pHS-9lcl&tt-J1IcohgTIs+90;GkrWqnnJ9+MfpWgE9s+B82Sj2jU32?I zg4(3;d0Af5IkY>bR?WURi0ZG6zbvYt=B`*8F!nX9#CUR-9^Ff-D4?TMN)<f`yY+=` zd~)_8;pQs`tZi^32nnSOJ5%sWa?nL$?YLvWSvK)%H)CK(dIYql=RwC2uD1ZMhR7R1 z<SKX)<9-rYR2AG;nQt(H4?M>cPRYo&^A(Kfl%ttlxO)C#g+B7m?LQ~ceIImwU?qy? zy8Fhi<xO6*OVk?rHr%46x~xjZJ}1g{ApIbLpGfCWd}dU3L~7<K@IXx>i#e;9;|W>; zxD;X_y78#9@aqsFVh*g*K7N8|=qfDFV}Ce+Ha0={Avmz&BcxR$xrgXLnyg!<@X|Cg zh*7s+0F^2JUF&E2KzNVFpWuz`cWwKNc~$k86af+lP|PCBXD+7oUmwVvFab}ec)sO3 z%l&sY3;w%{Z9m6xP5j7ISRC)O<}VGobM?Y77recZn!Vv7)$6O=eu7i<bg#Tv8ANu( zqgJYp*w8dmEU@`Yjt5u^^TZ`pZtGW*k^~k+Rv2LWs}j^FLNS}*qFxks0IP*{9p+8~ zixrP7r0_fDvjb;Dw<rM1;1b<Y3eO+0?hC#0SPEWdb9BP)<-~bPciK_`+Fkry8F3Bo zNJ6zhR<Fgt_kzn>^n!W61U9U|>?6|<L?OB@hEcdER%I>R;tj<Vy_R5o{_xVd+=~0b zp3zMdnsQbOm0m*qm|55^kAg<ZM+N@?I2AxRK>I+eD!YW1@#bUW@6K#>YaX@9OqE^T z#`|Y>wV0HaUQ6l?s>D;#sDx-waEXg8=Fh*-9}>x^Jj}nvh!ERR@{v-OJhl6XDy0t# zYbEgq4=s8|rM}K|J%qZ&?;2T$RX|Jp8|ME2Xnk8!;Hpuf#liTVX%{VnzLL^hxpIo= zv(qRFg#qoX;Opyh^BhBe{4mty9fKq}orM6P^_^lA?7%=HG{y8od863^z9rFXLqXy^ z8}D{}j|pNT?I}}M=xBiPieAp|0-!RKZCg(VtnG&CFS}l_0jg}1eZt&fuv^?~W!SDh ze9QxU(xcR(;k!oj+WM+CA{JPTp4CIE9%E5|lzg)@aJ?qm*-AKYGREdGse$2!K2w2J zWC*OhbrLD>3mJ&NQ)2_K?71Orj(9%7GRtQv?#7zs<_v1Z*z%ygZJ$*S7}=_q3Nr5$ zi2ne=191;i`vPU3LHm{tP1x>K*q>Pp&>+`FwW&}SY3jgCviX0L$I_-Q!95tN(T>1> zvDaDQO7;Gpvi|@Jb%2**>BbPF0{svQZ|qL7>`LS@(ATu0+8cDYxTcpxIgV`*#3|#s zRv2tmD~7cnHeJpa;M`+LR@e^&4A2X~etDLYwf32c;<)*WUVs8<iH^nvj;+xMwhWvX zZ*jJIFMvHGNe_TA9m35}-5tW1*OyU(>kBFZUj+_m$n@$Lss@)ww0Iy_-dUm+R>Q!} z<R*o=8#!3q$TkKNW`nj>hHAR}O6M-1+pP)rcM}t2!#@NtK<5f)`>@p*-#LhdMh5)M zk5X3;Y#=-znPpU{KuU29{{U@}X350+$Pgw<8;ZC&jeX3Pc_77VJXHKnAVJ>K@e=VZ zzc9Ee%)?P~F=jsYGNqlT-W3hxK4n)n_?mJzjY^S$OI~@D8koOCLV~^{P};@gaj$3> z(I=x74!E{-f^W#TE0yo4pQ8y4Iip^G`=`L#N>WDhUnn_4QQ4Vhj_Zq;FaH3Gmk>>% zJ*5Fqz!g~sQszj|+fL#yPGH1$46BJ=(Ca864j4g3^qwPOPi338a<zBLI5yyd0kTV9 zA~d8Nw5<A0<*_kh0Bzc(F;uZ=6b2}P%tq`PPe^Y7v4WR@-`XoUNMDj>h?2U2O+Z?( zfqL^W86A?$JC5ZDHa7rZ1A+-q@-qC)fDGNY8?B`$anf*%t}Rws$iP|U;P+iZ!o5J# z?9^($qjl>xEMJHkSamQ|J*5i*GBXCfb2EwKOe+j-8s=D@`+Sm(@f3PHHw4=HuvQD` zm5YPaDqas62FZS2*uW#o=J$qZq1FCja*Z6t3{~*3w}fG)=aZ5N6-4MEzHSWQJk}xP zq~yERQ8@t|uZ9M5ExLUo36Sw2_g{JfRzb47a1qN#8obax_qt!W0=T4Hy)cOh4DwfJ ziK1SfFL8CH4r@ZFMVJ{x$5ChlLaSX-4+|^N#eEg-SGbNSt}0t|<r>f)@CmnU8+yb` zm5y%L!k~*K!Il8KzVf!o#oj)pCCisCTnE$@^fMeF=NhqbY;Qz1&8N^xY^63g>@uCf zg*19bMKYYPFAV1py3jwekdv!q_lYicKs|^FZwdov#1_&(-P<}kA=c%Em0psijraf{ za-3VJpiwQimSB|v(V3-9JSTV@8>e*za6$M3RyjLkL;}%54SkZ~I3WoQx|y+VW|F*m zM^}kLv3Lfs-N1BJ>57`Z@HJNs$z8gd;Wk3>nFIi{RRD6V1;u$Ebp6(58iHt`KQJjw z<mX@HR(n``-1{foKbR~?T;!OUj!KsS;|5r;GbtekW@kT?CZ`yP-ezSDEx>xk*jCpI ze7*Zj2#;FN5aVEFSht?xaI%$TI<!uO><jjUM7>>?o`k6tuJ3R1Rmm`uUE@&22mxpZ zFPIn``zYf3W|osH8SypOUCr`%pw-OG<n9J3t#)H{SfgLM%|a+ov2LT4yaz+kP$fz< zt$WsEV2=UOpiPjzs_F<8)hypEKni4CzSAg%D=_Na#Xf_PURV$}i$&L&V#;e=Tvu!~ zF+^2moY`Ie>{{dv<|PALMrEq$2YO14oiGLAnZca1%!lqIqUvH4#^oI)MB>^0h%wVH zZbS4TP7J&BmEmWqDs#*TELOp@^O@7{!&+ODKrR_+NZG$(YmV-2DJG1sj3Kd-t=-X^ z^@}KDgN}YriU!J?K(5yWu&Yuf{{Ra9<EAb=)&^vXGSETtj1V2}OUq8O54A<;04N-I zAesy23r!Bc@Pc|eFXyNqE%L-YSy%bg)*X2@)+U+i00uaX8DG<kxWTfY#yvZ#uDy%z z7*SU$wz2;J>acSj*(zKWElfp_IB1}r4hGBniE`jm@*H8hnup+{4&VN{Q4*Tqz}uvi zsukwwS*TP2d;b8K=n!$<)tPFzb%CaC=ZdtU`$2*SMB!u60+?=|p$1&!4-rljHVu)W z?H?VXjayA{fItRhTn>AbktHrzGe1(;&;W#Cs#VJI8fK8Riyp&>qADc}33MiEsKHHm zBHA2UhS#3wP-P$?SJL!CIw56Hicq<U%FnVc&Fj=SVOuQ008<j`7&QV$oT3v&m<j^a z5wgxxQfG!;oVXQlf?AfyZ2Ly^#|4MxC9u5Gqs^)6Tns99ts4qBoWGy_mjR!7OWbmT z(N-i*me)XL7Eq@z6K;?2R2LB(ZRtkT>ztdu^DRO!!37>}Gm|Qdh62;8!az-G%5{pB zgD?vqeWEJxDfeObhnz;D=MwV+V9*OIwqFvmhyY*WQ?Xf}LlEEyY?`;4myIU74nXW6 zFx7aR$CuwQj%O(@HS$b|0*i1FOrY&*2~(M}CM!@dQjmM*Ep`O(%F0I0&<roO;-D+b zs2!KGe+)v9b!7dZU76a5?VHGfpZF+^B=9!?6^Ua}?_fKvSvaUx-pY(z9*klN8gU6& zg9&noaOGPDogUJOs4e+CkC+$-OeyNY8>?8JSTRbsXMT|PiU|_jlJs~c5f$AfIq*Or z1%j9H3Z4THTK5QtaE)p<)bAuTTLaQAw$-=?hzFs@X;RwpEp&;~6>xGu28Z00a1$OF zh$LsI*#*cE*K@i6sS5?M0T^b=yPku&tqo{DP+E#|fZG}}9cn+oaV>I!0piszYU>b} z0{ojk(xKA+VYrIa1l&`pX`8`pz{wrsx<qxiQ8|FT%e7E*fGYT4y7-uJD^@AEb1#W+ z@RsZ1lyBmhDCVCR4^|PDien#UFrpAP<*#XHK5K`eEKDs$w0kLH0!Kkd#(y$^MYpeM zlqfd59)v8w<ri;ubhorrNSszB1@J8%ge;GRKtk%}_{_|x--)fU&LB;J?xO}7#cnep z6mUxN6WtN4(K$k3i0g=9MVh@63@F=`bV|#=lvpG=!7nXN1BeSp<#A%J_ji^A1);pL z^h-EBS(erJj0l`An1o;6dxBjYl{upG3i^eF6b17cs!eCNm@#oKag>Kr*f5t!x(L;I zBWZ{Md_zIyUNHo#*|^m`N>{9SbHq=iy~i8OTTW^xtEN2&_|x{Auigr4s23S{m<z`h z6(a1fGXj>}d_|tB2yRo7Y34HtM+~xrYZhw}Q1r${#D>6*EczBKzo;_h%ZHF>-!&V^ zc<-ho4DTJOUoxHGb@d9$%FRL|iqPec69TsM0|&j&nIdXc%p6RnZCOmy@?M8T4BcQ9 zz7}8`4Y#H`sZuc_@>q|iU^#Sw4VP6ZLjc$(Z8a>LRY6B8JtJm#ho-(GP(h@_11mOK zUocgq2}|802^F;dKfx))D4;w9ceqC30|`wz?ja8I@NjY*5|l;>GIkHNxpDz<I2zlS zi$P-OTpel=Yo0i{m_I<YHB!LTP(U!PF+~el)>qaqO@S)P$AEifamiw2Vn|AUd`bsn zhA_0t(x^^zcW_Kz(&CC6UIyU9LbxG74O=m2Z1`~p#IsAbY&4^~z55KpG}CF>+Q7H0 zBQkR|gJuUBl(aUb`^17wK_8e&c=!$orwh~!LqmVDfhyR>64JrbseQnv>jw7A;_7y5 z(}-cSq21yx>D3SwmHdpS%}k+rz+x0Ec5u<eL6p9S5tn!E9`^gOoDI5^MV^GE!1Bd) z>~b$tnQ|6w4L>N{qBshy4dw%@Oo8stTY-VZF;6FCR3I=I64ff=;Zu?}SZ~P(2i*+5 ztY(~dEGXInqZv(Mjg4k9P2hc{OUsB^XNNEkP!I>Wz7`FJ2*9N&{IIdWYZ~57yb^># zrkL!4ZWa>I^9KX9Hp6YU45>LrtQ=tGSq!sgS5}Bv1BB&%h~}%aVB(`81-~l6=|eAL z0HDE>2knL+X|Oc}qcA$Z(F528Uf1?S1Aqb0Vq<e6oXv8t(i_YbFk+-HN~xb{fEfiw z%V^zNW?Po_CgaFy^m{xo28Mxg%UHg$vkGc3f+^}MrS3G*Eizk5to0FX%bP?Fz1XU$ z`^6zauKxh$4<B><k4FnaVoe95FL&%zzcl-w+*8Z`b1cFKh<MKoB^-}rxUvXRq82LE z7_TeX57b<K2l80`lWy9EkS5w-hEvMND?%^}H0XWfz+$%3%cIbOt(psd=51V52TME& zO0R9uKM+TmPT}z_tV6;WX6|20irg9ACAU*OO!X~gn22?VuI^Pe?>r!e*_8D#uQJ`l z5PS>tgjRkb<gZAL55zi|rF_BYW5Ez1%y`UqEspM`8gCk^f^qgmR6`4DYY~iEgvKFT z03ZxPOPgddU1FlWM|O9o+A}xSCTX~xPd;OPKvnb9*@!T}s@n?jQ4z$X)ZgLp055Yl z7E<%LE#~6*gRf{G_C7xH?FTaErMkX}h7>IwL`;NF3=4!-^ZbM;TiXu{Fyhr);DA{g z0cwyMGGb&B-kXV)g_?^oze#Tr_JqApj5RHaLdsU)EI`R_wjIjNZi5RpmT0SE_&9bB zG(y^94aY<Y%ou4_0`ct|!~vSU;6*jsR)h<4U0XM2H7WtGpm_5I44K4Lw4`}KWmce& zI8;=yQzWF%jldf4hyxbd%Me#b2BXl4DMFS8THNTKpUPCxI&(j0FcsNQ9^HSHD3I0i z8~D^Hmq>TKMie5uZFCua2&QuRzfoC#SbYSJNgmoY&hX6>H@30>?R5}o*rgAuxt1+v z6iKD81ZJcLhX4irkP92zT7`oB05YXgg#Q2xu3=*^M0dqsNn`<o7iP06BQDvqb<uCc zc1UOj^Bk|*XDFSD7XZ)F2Dj1><-G{m>Ox-jT`Heq2Hh^N5eey-tQL?t*vgfH-Xi9& zc$m{~RE!#e3g!VsxHCCdZXr+(7I3V5hzuI<tM=>6v=D<umc^C>thxJ2XdlhB_=q_6 zzv2~b#nA12M6|xpJCg`HQC7xM$^H$%sXgfQ%Mqzc^>#ML#8j(ei(e7VFv=08-b2zD z;YOjTb8s^dd`clewSp!KJrS-4fPmdvIg~BKY{J$N4>Ftpq;yS>Y!FnSEhC-2ULxrw zAV3Ef(aSAkLsr6kIf!Z8Fb#q?U<Cxm7=T=rq6(<gs<VUK+^l$)rm<eJ=M-0?lHzl= z@MbMH{0fzNBF$F2%B!MP!0ej}xbYs%-waMwu40mQEx(zp)1*Ye?b_glNs4Cl%ed_B zU1<kZ6k9`a-PDVGE+UDgh+4lAu|32Vw@@0;7soQl2t$oTYp~1nn6^QRjG+|;PDgU$ zSuNl~{0lPhLvc+*hGt->KM`<L;wnR!x$6d8xWbSvJUf)TIfE-Rnq>?S8H?abg;r0f zLUUc)?8F*M!6>k0PDVR%gUmvRyAEBz*uO|+SAgV;3k#Ovg?v<1*qQDQSs<qn6)#vb zC~TC*+*Lpkc*gv|)^!0g&T%}^0S6B*IF|*4xk%904x?@^Loi_dE??D*;q;57@=Tka zXv~{P*maAe9Bhh~Me!v(KLk8Y7{logO!S466dTd~%Sw-D{mL_C_MgNQlUzJrSbI-X z{7H<gl<HIy8<rzkf%F97ygqr&jvnHJt(%Mp8gbEHvjLqqi5Y~ZP7kD`YcgqGn2db? z02A#6)CHu?7XV~f7H|vuBLhvw%9i9Y99Dc7J_$?u#hHAox%!e|3(NI`9$?paqimzL z1^)n37DNKQp@E>?A%OJwMcH_CI^d1@UDJOn3^3-MD%Fg!$OOk4ddj!0fKqG>s6&ch zBc6i4GQno*K6V*I*A26P$~$g{e$b#T$jkt#R_ktqY_qpqAo(w>W|RY!_*b6N_M>h) zzVSg0fu$iYJ6M9+AL3c7<v6|v5QI_MQ20bJxT|M<3xRvf6#mQiR{BUp*)6La+b%vV zg}V#Nnw4-oyL?<0&AvI8pg+bSF+-cgtc7|Y9Z@k;wPpuFG!<U^h$;(iS^i8bC@ogs zNQwrAf@8h0QAJhaaq9CFZL`bF8xiA*<$Oenij^pTq%WA!v~=7(rn~(xy`WOqCu%z7 zw9npZ1((!zN_#*cZoA=v9)JzD&!oO3MQ}sbFKO=n!RzNixJiYxtEr1ZepOTb;2A6c z3=)kmn`KU34;aEk3rf?v?ppvpPz{P;gkhm|#BAP@2qhnELOWQ?tIv|7k;}?hvoa>` z-!jRE_ZD1M8*YriuxVPtczK%<+<3nc@TlIRpS9n1;oX?=6T$&rA=F}ptaGjTTvQAT z+qb+Rrs^O@9*{}m(Dh@zXp7-N^1)cZ9=tq5Y+CO_!w9yuw5Q4)La;h?4uWH&^Dq^k z0E7S<g+yyg;7)6pBTy4G9k7M7oXwt^Bg9$uVTfllhEVjx<VUi9$c*FSJLlqvaqq;o zn&gPEQ#`30D+$vtr_+duM~PIR54>JoJ*Le>;AK1t{9#;6(=kyM=pn!g-NYx8CsWdA z)b3otuE}6d3vM?W?olPb0Rb9A#0?F=l!GrwIh#bI%(eE0WR%pV8dVKTa{5A;xEHMX zg;*tAKN6b2{4$=Oh68$U(U%}ZjX93bw8i7@qFB%3psnCG)YdX{4%DeJe$y#f@L~#G znUwHXtZrI?T%QuGSbEM-J>ft^ZQ>)a_m=bfl9?#Ayb-$}G;BcNV)L-xWqTgkf&kV{ z$~$`uPf7M*S7Mh&;YHOwCK`vdlp^wiftjng30|$N#g!k6l{fi~VP_F8Z@5jH*Q`iy zUgbJJGr;-(0N`az{SW>~M_)@IAn<RSq7{PUO~snL=e(=mJ&-*B(7Za7{0m%6v4%YQ z$|gjG3K<AedFpveOJ;o%&P$sc^Aym_;CBQP$C}#vLF!Vw!hRBh;9txtyvuJ9gAD*a zA(T62ajHo9LTet8+cf<eEb1h(EU7&aNh<+VG$RD{eNTZB$Wx@aC=L(c9L`^|vl)zd zCaV*Wy=`A$i!zTGKG1d;^&+srdHtp!9&%gp2r_n*s%Ya8pk)L7)Tnf5A+xVCyCLj2 z{J}+zgw>n4L(1v)mMX_M3jS>#i&`pQAz-AIFf?~(^oAu~BMIlIDg$6O(sPP|WTS7Z z5Kx_;OX3+o9>d-Q#*2zFr=ytTc7QIILwT-O1o*5hvZGIkR3V@$WDGS7u5*y}sp2J< z<sUINl-lgR;wrn-{-#HY;Ul$pl=z04hz&Cc*6o;l(~lAAZF#8pWP3<(KP5fD@`*H; z@I)%FbzFKwH38<G=!LHi7HLV+sQj?O0+nE;Re6|NNz$2X#JCe`lageIfpbt-DEE#; zgK706zYx^Q0!O;xlHd<bSuP6IgTqtA+{k_+g)5u%iNau=h1@*_+#@EBL9~Vz2V~C* z@nyg@L3edCRNmCT!3{%Dt0G)_T77<t#93@xntm}c1SVV9S%Faxv~M=v5-`po#B9^; z7R15KE4tQ>BNn%cuBK&!iF`05Sfy_bBersg^kt8^?bQve8Gn8O6E~p(d_&+U+C^K# z!MLet;OJ@yxt&Xgsc+(H!f=7Ys3}<FggO<#LVyDR01=q1Q3=-Dn>0=e8xko4(8@M@ z%rV?@#6rzIKoyYjFpDn?%R&Z{l7&dVMX0@E#hJ<KK&D~DaIv>dLFw9-f~YVq$ts^n zWr4wpC_d3u=;HB+$f3JgH4K!%z_<tWiLoh?^8l;u1WKEmaF(H-lGgN_M;;6Tx&(7W z0gRuVIP3L8QR-VMS&!CZKs^=!xKg5mK;YRzTY;}c0|q{i<lTQ^{EZzv1X;UdSS3H@ z4-M@bg7jM<8f)*RKiw7I&W|H|uu3cpIsC;V_GAA5S%<K?rM5OotLqU``6|{pm*QJ^ z3zkD=U3r!9I$?W?#4b`|D_ku3g0{FhL}h}#%*;aWE$@P9XS4_dZ_Em;R^^dZrYdD+ zrugb4sIAL~AU&Djd@$=iDW03%KiyCFP_CbKr~AL`^FDvraz9J|0A=~P;_vQxU+=8{ z07v^Mb4c8&tQf%7Z()dv$aNk?9+r3*bjOG8jx~9;xH$kEf5~3}4??x?5N{rn9}_#= z&T~-Tj^UCMu}{a*SSnWma<4=Z>rn^85VMPzHF<nXHDfToAVB3}2+0gtE}&V$QR!%l zs+Kun^RAO#>y#EDZTls1?D0~pw2)SlxZ9pit`)&+waYBl=TO<=mV&${U5H{+6|y*a zfgTO=yswrwy0IqE6uDsO8R{?wxPwM6Wq67d3M+Sci3N_l%ZycX2w3URyhz+lnd8pT zs|5%H8+yb*9RubGDR8RdgRb!tTQ17JJ$PbGSOx}+cz`!ST{QPuW*qLRb?pM6d7y%T z#^?d@vF1NU>4KHC;l!atTnMMk5T5Z_llzz86Sxx7^0c&=*V}_svy4*egP|ICwYSH% zD?+xa5V+a`tgT!lFY3i}v&?dZybz)DEk}z#cyfBh8ua>f?T*!rt`}YtxrDhgm;-AX z>EIV@3uyc>VzjmZBHRJR9QluO-)3S?YXRfcgY7&78wl++ogS=4;pPy(TnH04kjrMi z>@}~wRMchh2TEzOT|<W$F8KZ<tCZUJrDafYmK@>&xN3--#x<2i54@$Sz+%l0CLm}F zTsCyntmL}J5Q~i{_5?pjP%T}`&HRXtenes)VF;FrstwA6m%<ORIh73kHvFKH>p08& zpQ0dUsu~_TfZ7j22XcffzChN1`o++D3^I`AaSvF`H5_6UC{>Q&-8g||=r+v}%&-}* zW1GL)A&jWdM*_*!!zJR~QCn&3%N2sXtdOBp72$CN{Q!kZiO5*gA#p&iu_^`QFBU** ztt;X6hDA}b?od@>*|}MNGzOd0#BV^*zzg$Ax%|hiDq(cK>OF0^Fna|50NjfrSoLN0 z%j*<mUzv;$71GxjiC`7YrT1ZDZspe?wOHYH_{%ZujZ(~;pV|i2^8lBuKnJ>5_G6K( z?3v}uEH*(P7^5!Ui~*%)=U9x_Bn}&e8cDp^==ug_@bfNuo0e{1#y*6am0R4rLbW}B zg-#{SnVE^)yu#XdGQ~9%sdbor)TvwO7^t$cOWzfiT6;$U<;)X_dGiSG7$rv8OrUiX zEj1a%D@4sh+FcqjZe$h#sHYPx8I;AVm?l11SxIsOi0lQMgPTBdu&NP8(opD3+A|GG z7sBRnl2fuY6yFsXb?0@8cE@2L=O0Fj_#H`*J`%utv%!8~?_>pJQ@AKCCGIW_^z<L? zF4Di_h+aI)Z^Qw$<iYeR<)182FTvDsZRKCId(Xg@wg&YsP(3Qy&rfWn%i9NKbC>=j zj|8+;hz3U6pnYu;bON&-Y9uOcrGwJ{05bf0ltzd9Hw`Kcb4YM!_)WeGgYz_HUpI#9 zzv6{JXt(mYeN=h`nJ>4a;Ii6pdCU1M-$78W2Mr~kyj=zD%YM-B+s)#FVPdzM)KLwn zrmvk!YR(GZwxdxZmg0J2^8rZSZhTzQq|Ocf;T$BiiBCdcVmd$Sey0~v^=neIq2#Uh zRL^CVez56X%gFIBn~0z;y`sC7EwL1S<xZd{xhf#p%*UI`hy!%fzY_B`3TU_MXz+kg z0Jo%EG~%O@yNs69#8r~&j|jLPPy~U*4cBl1Yp|#D5RXJ(Ot1~2;4UyW?|Tl(b6&ur zn33)Wr6tH<rGOXf0v3LRb&pbhNP}0r<&D*EbVN*2x`2(LmS-=SS!wlWDYqMC+aXk2 zYk8F^sd=CK(0!<U_Xp_e<3|4gFzVcv9pg}9v~h?B^nqno%JDmo`0+0P08hkxy*N+| z5l(X4VD*=!X^QFjn7?{I^^gTnFD9^Aa7stIKL{aMF817H6%Ah4fGrv=my*q79LrQG zP6zE1HT$8t{{VNG$`YZg*_bYSozN*W3$E6bZ&>+*k(9&1<`vHuIC`nsD(b@HC<0Nu z0ey25%Wp53do1VP3sEqdOovcDW;)a=3vQM@;8N>S{{TZ4@C*+zuEbLDF+5OKI=I-v zJJak=AEYa1al4xMm#8%^PiT;|=}@#-MIA*=PkET)WPJkW1O`-Lx7eNtd*T4<3-u-{ zl~$Kx*|<kAPFX-(i-c0=OD(tsuh4Lrk2H?)6Cgutc4}gYN^WKsqvAWsGfYkL(Dj%o zOyx$enwH#E8#A|U;DcT9R4Lg349X51!~!n)l-{B##r*=(0J9dv)5Xg&;v>JI4h%~b zQMgJM)I*3;VY^qOF>UbA{H9%`JsG4wv?HHJrZ;D0L|J5ZVByANO7ixK%7e=d8;15= zw0xlbOKdUS)C5fEVx<djaeDjE$))D-OBwj?T35-;sR$YYXgsl6R{IF8EIeGX&6d$I zTVFy^hBi#18%)Bha{}{DC9@;W34Ta9xN(K^YaBJ#mTth)cMxnFRfY{9NFesJB6!Xw z*nZN~-Tskx2gZ0lEM7f;e<EDh+?1HL-eW)q;Fd6c(KVnwq0!GQ$y7k-l$ooS-GkOA zAP-UosPw6VtBxpw0lvgifc8t+-0PR#<{S{AiXhozf(`L8V$qz=Lmka3ypPNeK)x0p za!Sn7h>;r1T2esbTHCcX?FxMZB&6I)8>^Xx-LbfXaH{!&;#-X3DaCq2pGYitDYz7) z6Gr}HId2k)-;+`lqoDi72P&=7$3ff}FAxbmnWfR(3hQm!$3HK@D3qtTiSJS~d$aEv zasw)ail)onT|>Q0jIqA49$MVEwdi9eWR_hGC%n8Cz>03gMx}fqR(hyShH*CzVDJtg zo8}B{u!{DCN6+*E7Nu(Q4kjsehJlM7C2J-=&l04^F5fZMqa5a!E35a2IfM^({{Rq2 zHFBHe!6uZx3B$Q=0;62Zlp;Jntgf4Z%2xW~T?u>391XSlk0Kta3A=g_6bu5{cQ;c7 zj%Ca_qw>o;+*}aZy!+dZ1sbmzsc9E?LvMhuexeOf1^OR}lHhW~dftX+bvMp|nB^m` z;aphgG(u5+uk!|43>db?LE;KB`ViVpS~O)>MhNx(V_$z*ns6Yk20E6$@CUuIO%d3H zo{5tY0CN&21$)fv?-|clfcGXjPBb1N3)ck6@|=Asri>BRaoA<df668hxRfbvv4i&- z5n%^I*y3s%o2m0qLkj!{nApRz6kUELv@prQ90Va&eVK<O_d%Gk-7ksFr*@arw-{w1 zE`buKt+tJ|>e8dmn4U7utqe*I;^5G{LDUxTWtfhakVv+H?Imfe4Ay0>dqB`rEczx0 zC<oKcid-5hw!m*88QHy&w}X}@O~eY@XL8H7AG_#bR9~#&;e`TRoE}m->*iQp?=S)R z2||PJ#T0>So;_iL7e%HV11O+D2LPT7wcE$=mu-9>$kY5kkas^UrEpv^U4`>8QAevC z<i6Htv8`Ii%E~tp4TpC$AEYYO#95a-AR9O{4kTcUV!GmG5>|(ah6!-EV^I?oG{-Rm zJd+Y|@i_W-7t)@mnVy<2&A_&<jY_#(LK;H95zGkphy9kc-vke}<_hJn6J6i6M}pL6 zo9_xhn6+ScQ{0_Vve&gv6<;j33lVDeQ_iBArlo?Cs_zk=AKrm!C!v24z|()@5zyJy zHwM}o*v_j@hBRcaFdsF{wgPAwo(JLz&cI8CWlj<+vOJ$?acPdsnU-)AKsat$K?-0g zj!GN84M$#0Zw$*rAzQ{O1^RF7(BHr#nrbxph*rg8GhO1E^tqPDq<opVrOdvVysC%M zUjn6AZd;atQ_NKq1)3`RghPYz1px1HP8fy*i>XN2h^l5C5}k|Sl^s;+iq)t=jEOK` zQmHf=wo(VtxoJX|of4ya;r*5~@L}3u7Qr5Yo=KQg6nQ^Vfx)$ZBTe4SYQrB!Av%Q8 z@x&cVSH<~{9x@-zi$*u$x~2S_k4DfH1z@eUs5xo-PJgp60zk&t1|9T2vz+&7`<AFS z#<gB9W<ky}fqs2UaIoHaST2v({wBhX@clrQ#X_(LmR!SMOZ-AK`4~l}7bcv*cxmpV zbw03_okpG`xUsO@**4Y70-%MP4`?nis)T4L4#kn~Ab5I!JOj=nRzmKV?ij7Ts?|{6 z%&4pRLt>P3aKDYyPaB?@>Pt>cc_$<fSboCDqaOGs9bPWMVf7KcSq#(Uc&-=LOT<V0 zn9-X$%&KIb%<C_U8LpD0YxNLNxmDCJ{o^ZytPUZ~+r(K^a2bO>p)bjesI=lzZrKi( zR|tm?a2$0QE2(CK5T&i*sG1=Ap^Sgkf`n8?a}3Rzc6_;kMUwvE{2(+LbijBq_=|zX zIag4YyqXonFdq&YpJOk)hoDXn_DwdvfJ_6#7${lj>AZWw+PH0};}Ka$txG{)7Zo|X zwqGBbTxGAT6SMNq6)qwz)>yYT?f@+6+RKONyf6V_3IYOQYaEm}50Yc55R9c@V$beh zw9&7XQ46>meg6QF-;Ni$^qGSlMbsWxrq<R6k^x9W6Gfq_yJe$%A3$M(&Y@7*2sdPU zn#8guWfz%5P>;$TMVhQjCDuEDrtvGdjH)|j6C&}MRWBF2g4`{hBBH8e=2UBf0d)gX zu}~x&Ws7{qn@CQG>>%1hwo`^zxnp~jHFFs;vX;6F_c1voKJj@kv;o(o5y|<1JkLkG z54@tX#5o{R36#7dy}&$Nv%~=|K;l_^O5&MiweLAabR&)(9G;fTs9Rl9CdF`$-w|aG zdCaevE@*vc<{`9nxA_5i&MRQ`3o%DHMip7zLP|Dr1cMGaP=OS2z}KisrsFP$_Y#<2 zScOrr3D4rogeSG&y0|-ry#D~w1SlNW;)n#Jkw0b!7LH%k!N`Hz3~MU5TqC>+KJpU` zIU01UFu>}J>bJl@QE-&!PsB>7Ik)>O0fwg;V9W?UWPbQwvF<U+=U2g)z=Lqu+NoQk z2Q6R?%L9U_m+q=k&Sh*Rtj-6vJizQ@(zwRhNlo)8DT^-*A;btOw0xH`Nba?7AvK=8 z36FU5Ll>6g`j;&{U<2X=VQ;VESvM8NKNUDicmxVijZov(3WK)vUVO?<)nK5-0O^G_ zwcGeiAh2z-@iOPw0yHQtw>~ABC7L9)bn*x4U88n#uZRr?{BaGWO=SK<I=VT{Lt2jW zG%L|4`%I5yI=OHXbT#;h?CTNRF-y!kgnP!kFIYZoPS?yHzCdA9kgzWOA#f6b&z17a zqMfa<#7^B>rsD;5TYN{1xTc`u7^EE)ev+U5xXUhcxEJB)m>}A-n76xgo%0o$TJ?me zPJBv7j3~|KU#uLm!~sKJ*@a?U+dmSij;<y)tjt!iRs!#cAGEdatKCo(sa_fmyhH{R zP-{I%jOD4wbs0JweFRi!VY5IfxKwIc2(g6*D8(0S@gVtT2}vnyH-Cq6i}{MHj)#AO z6k;<G1U6h-mCoMaCH)O^7Y+9omm6rs;t7-It7m35nAFK_63^VQmY++qu4V4<2pjJ3 zOKHBKT)UM!K7hc{E{$Q#3V36ZZ8HD@A61)!jrXE3ACj+#N-Q^{+7QGYI7HovGZ_y> zv$7jpsbx9RHJ6x>Ohl}#&4N!zB&CXFB3qh`(|b-Iu@n5EL^STq-`qtkx2Y<OX_w3& z0(``uV&zGz^(E><(8RZm_K;&wtN_i9hUMutyQWmt4%c8zrnnrnq~OVz>~s(l6na5Q zPsC2FdqTPmuu8Nr)}hQNRD+;rmO91rIb-a?aZZ+Ng7cZb+|24dZdfXd>dFxXF+flr zlAdU(PY<-E!SNJe4<Q;i`iPZr6KGhwOLr2bw^%-5V8PZ;%M{q#wZTzf;2J*A2d{HH zN?TYi<$T1tfG`hOCo2x19IC(>Km+MI6)8(p2T-$#+n7d8h@CeR?=7iv?UbmBfZStU zS$-~2c{2DA<r>*-N{<;f%B&#Vq^Al-?*1UDRTSv{$IC^gR4))O1Dhrwn>WA2Q`Rcy z?-kk12rgOeK>p@7%7=rvg09<zUKz15-dL`&QzS#)5sa%>P$*ZCSASy?qbYfwuB;M@ z-h{ATxF(>eFp+3;Tb>V~`ck6;IDzNW1m1`!owDIL%}V0s#$w(va=a4o61qZ~^o3pR z_<%(wNkiq_RNb9R_dG?#ZYVTCz5=?IUA14pTu5Q46zyFrsd~1iTGS96XND!VW+K(z z2O;KQ7A@emY|F^t@B~%BQm?}X_3<buJ`hb_4k|pK1Pgz1BJPu*{II})8W92kaOd|j zIEcm?D>n!r%;;tuGh}W&!|EBDCsCDcvWbH^JwaJv&}b(yd5&UcX0z=ALx5O!Jj7(d z#Y4;64_mI`W!$LZ7ez=6{HHh4N_RB%P5cfX$5XL{shD;-q5~<1&=iqwWNw}PrIbLs zD<;$0<?hT<U5RmU{wZsEu`s}H7M`#VF=WYc1&!9~Q%CI)T7D)N2jP}y?K6bFi}^C4 z3XTewt3Otk=uT@9wG}oLr^KeJ8p<EI0<JIz^nnn6C-x%yq5YKUGPYD;5EQ77DYj`J zgaQ;*uX2E;z2Jg5PkFLg>I1{=E~?T|h-QhgiP{*5v(FHz_z0nKcAM-R7x!Q~TZC2S z4ueeP_a*vdVP8@Ei9|KQ_JEC+Y>V|zK`Z3=Mf`mUku6V9ZTyko`PjIsv1=|rB3M=4 zs|0G^a>e4`n2pN`OJpx4lQeDsWe_VaYlzn6b8!mU5gU~YS5b<A%PCrjh?Yi)OGlu@ zU72PHffgaH#dDbS$D{(QlI8+{bGBKt1Rebnqwg8*+DCSf2@K0l;>7Va-aaKC>nJ_? zN784SfbP8~uFF*lQoD&q3j0c3Q0h|Y%<&{Dz{CyWP&tBV#H(`vM`@0cbJQU%%LTDV zIQ5SjPQi}Sqr*HUBjN5>2!l;ZfT|q2F5td|Rr3M?g|694YQ^Fl1qza}GaX>Jej|XM z^QXf;@FzXf_L<~Ls(&HsIfkYXsL^b>2?+pKIN}JTT_t{HE-9=X_=c?D?owde0CDo+ zgtr%m8;i&bkNF1Mjo6?r(C|0<i0Fn5uyWqA)pi&@hx0`8V{u-GCLwNb%ub*^K=B4< z0;5p(f=?{m#yEhr$rwJ<xu=NJD~{myK4QzFdXphQ9$<>8?v*^S*az_v(D@)c`H5p! z-r|)-?whE$V$IpiTXBC8Yv02WWU2)@SZXJ;DBqI|7A=nxf&IdUvtAe)pjA76Aj4lG zI>En2T~SD3i@7hVP+DiIY~T1iMr5ys$Lb-J4<j)jVT%h-l4oh|{zQnXu12M;o{9~x znK>UD32SdfFsCc+QskI|_b}|-O5;={wcvY~^{&u~U{|RN{{W&6UcK2XQC!pe9H2Q? zZ_GD}FQxAaNc=<*7l$|?VS`bP<|rb4OnMV6B9&cxOv0AdsCME~rIXA2n?pTY{F_Dc zk#N@0ym^UtJF!vmE!90RHjd{Y`^%3V0697;v<(wJG-_h3HKFMkeb}q$#I(hlGHiU# z)lbW#<LFoenDXAMiI@TRn6%s;>9$5Y8GO!fQVNc~GY8@#7Q2Zzf58#}R@E?{5sDt& zTk#Cqw%#MvL~uwnH-b1`h71Km6i?I^F2Q1Cj{69;F$&p08TO2Y9-zNJECzr)F~w>d z+i`8GcB%cw{k~X>Ko>(+$0=CWSklrwBEWDDixT!z?!jbCM+<Q3;%bg3Cvx%A>uVHg z7>hI^rxSDG64blEkotc}j1h5WBhf+XG3YmbV`BbesZbNTf~C5|%X)z`!XU&<LRH*S z=a`kK6kOh7{T3#7_Csy+Iigiy-!Zrg7Hcu`O`#Dolb9@7-_cO4v@-=O%nU3VA%tq& zuX2|{`!Q>Oh92K+RRp7akasK5zo=|fc~ORbI2;J&mo=IkDV63aml`G+RK8E4-lj=d z$If?y#G^&^Q-k!Ef96=pJ4*JBYhQS-a+L6(TchSz%I8YClWfJDxtn$ZW%^X+zr=fg z5x~ARi0?m$tTiYjlHm|r<s<Wq4Z?uweF-yqg{qeC3<JaOB&}-ot5zqrCibsl8)Rja zrTWD~V-RYyvL|V5DEJ|)(dim4fyfBWcX5;z_Mf?usAkN6cv_lrkKu&^X#W5kgySP4 z%kvpK7Ej_GC!CMo3BojBKX4nWWUgzt*_(}B;7&h!M&bOV10uO^@oYAdbc+1NO*P(B zqU$Gr_)7RP&<jsVWWE|GhIj;Jspm8YiA9}Dn~5(WXR#=xJdOiUoSO))!1mh*udx_! z0r?`(aW1#Z9-gJ0!Q@gUtGRfGR;7!_!7Vn2#C;Emkh|2ak8w$P#7cyrZ^;Fgr@#5d zZ`?n~O3huEHdZ>NOZMZ!Qc(IcRKUS{36vMIS#S^f)CERqX0M5DXjB2Huz=Y?UujB) z2L*p17z5+^5Oi)g@ir3qWj*JrRIB`2R%V;HzP+V*iY|lm5N9`}>KpS46YjyXtJ=h{ z9|JVn*rBBi-d~ti3&EpTwxiKSD?#x9%}=-TBE~y0{D)DGZ`l;|BQLvm);7w0XZ>nW zl__PaISNtRl0Cn=WQ`pv#-GU)#$<&lfN)zA+w#hQxl79gwlj>wy8OWBcwQz#Tn73o zHHStBQq-+GAe1PLo+ZI|VZSpFWyJ9=!f2PpQFEWCFk<+NcN*phvF<>4!FWcAt$<M6 zQH-*d4P_RT;oa_|W-7;O=3{^+`Vhr=VvA@`tXPOwh;1I=2_7K<1I#Kc#6Fl^@c#f0 zS$M>`yne3!CUW@+QpHH|_@ypdmy0ZbBHKDZg{`}ZYziHCgi%_JZk{hux|?EaAuS;H zs8Huqa+lSX?E9ug>Se2PwgfG17kS)b#KbshkGM>SFhO6?oX<Q?MqdNwX7z>Cw7`YH zE%v#YH3;54SygtFXK!(E&0=F0lo>-y?7*fh>Y0`wtf9R#n-Xj!d`D6Z-qb5{@*ZAc z%U@K3HSQ3|Denoyj2KY7=8*>_1(X}Z8d1Fj6=8f(!tMQ{gD(Q`d<fe8AXswT`V!X{ zp%g0ht_(r9-4VGk;*c02<i%Xm31!gUKa}6{EZ5@K^(!kL4YL3M=!v-aWn3{r>bzkX z5lhklsXfR8PCJ9yXFvdYQ43ODR6me+FaX2irSeloE8;Gy_eamrDle!w1&ZIu#ce+9 z9c6x5Zr_$8>pYFXEk-oDuLP>&a5xBIZV8KFac_+MrQMeTxTY*p>U5|LR7=FS8v1-k z#6y{xn8WgpG}A1=X<pv5GFFM<ki@hrnNZ48VE0ni9C3mm!k3a{Habm2Y`yAaZfJbU z0B1<J2JgEpxP2iE17V!pTH$Y|Y!G;|1K3Ne1NS$A`GaE@NYo0YU*1`XLr-&y>*y}> zMR~VQr;Y5wdUr0+Uw#Qf3N4R#AUAxToxv}YF`V(Tbx9to{{T?}xPUJ8W~ewkOT2M+ zI}5MWX2%g#TvS^VmAGnDEKD9!6qVdbLwt~2^@wHO(5}q}P%2$Ur1KUfs}VzL^p$e> zmenW4Gg7CFMGO?YmlGwx)M~aW-z)PPX!b5xpa;PPVQ#XrqVdZ-J?1IrC%ccjAelht zJjZ$gYY}2O$p-$1d5A2<Z65H90_>(?4YUP1CG)mXv4$)_^B;CG;ef5d;u6~M75S7Y zVB*+}Y|^juEeoui0K{!W1T6{gD9zO0Ov2`9`oMEH&Yzi8G*Ow=wcH(j=A|Cl!m`M; z>=*6|fjL?;;uviU^;cS$M9tfG$HYK5i9?3w0WvI^%vDg&h!IF`TjdnFq|Jyh$!V|5 z3+fOYpitHOj8CH^rrO7+0E!8Y3CAk+OQ_$G7hT5VKv2{$#hFW(tS8(M&_V<^76!-- zs?b7usUC$(6KIE?BWG<+)wmQT!g4a{s8#d&p=-HKEkrG3#kLCNY6%*bHEo0?vzH5q zKX$d|8-wUECNK3%>Yn_e>pmrz`KXBG9;C`AjFOTAR8*o;8@SI#QDaMjh+UBO#Tdl2 zeH(-dTN&abc#bJxG%QWa1DLHwW4L{xvX{_7?YqP{k7fu#Vwga<=1*4}=A{=}g>)WE zcFdxpEIVS!b#Q84nc+5w%8Ot+CxA{OhmYYG{s;0QK_;C-fB@hFA82lRB}E}xW#3d= zD|)EAPrE6^3_L)u%4XwSBISlpSxO3^;%+fhG$!soqo`r2bYPuDkX<6JDvusvLvfgd zdN%~DA2ZnW`Vi(ein20e91#(Cm#m|<1xy^#&#YD#&(I6Z^p`xrsE-z_^bm`4M88C+ zgrXh_iF^7ppqbGvc>1J^+FtSWo*zZ*jdd@gX7y1>W;Nlt*mW*}uzVMYN1?Ml;sZ-q zYdMD%X?Cd8REditSm}+*M=IoiVP=7La|GI~5dJ}tdnG3p#CmfnLBaA<4HlG|8KF5= zCqo#mJj+>w0`ut(Oq$8|m=-sd#$m)g8kX=MNQvxrv0p5<4?>d50B*rJ)3*r`QL?Pp zv<GN!$%u3zOoj0l84-~EH5aSNq6>{P45xQ6F7$xIVSe7x#k1A`&dp180pcA@z7_VD z&^Vq-o(Paiuf?p1!un#`aA8?!puVtcT5{ucoywE+CoxyRL9+evSGT+?l#p4o?~V6& zyNO)2HP14*(1m?qpwP`7y}n}PeA3&V;4+KLd96l}C^FT=Zij>a03(#L?GtcFpl^%I z@eqScSSf;?!~g>7HS6p#HOtZdOQAj3hrJ<zQ1w^k9@h0n3DbnUGTfH{P_8{Cxop1Q z$e^@A^8QB3@#xL9-}vGN%)3wFEn$DxQCo%UFXX1xvhB(miJ_~8W$Vc-P`)M0S;H)G z6;!5KQjIm#ptK(hS-WWB8ma(tZVPMKU)Z~f?#NPX708sCK8Qfis;c`=HhMtLpNSIc z7ph$9E(%#*lFOP6u>SzUz{5#xyk-2AFf-wQk?|6gyFAJ^*;Ku=>mlw2Aq#TVOphd$ z)5us0PU0?8*(`4ERsm5nHiLxOm!ef7)}vgd+$iSfFc*W?cD3spA&@q3Ke(uHMPW}~ z87#4?k;@U6Tm`{mqwF)p4r%s6jeHV-G9?Cl!r;d$(bqx<zz(Z4P`;u0PzUNWK)xC- zZ#_$4W`0Cvpxq|f0iPvc+G8zVQRgpL_AklxS%!MO9L|0t++0&DJ1Vyy!em8)rfUby z24!L53^TQxp76{*DrR3fsginvUvU<g+d&&=X(JmHc!K&9Nra-1TZ0JG$_gJWB|h<= zxDOJWl%>U^yG~*`gjWznmWCw2JNkVQT+1*7P{M`b0>xKuW>`yg6u5CN+Taey;#hFe z;st4&r%+2zqLgq_g4WGI{8>_lfOClbT>@otm3>KmdFv$BUFQme2oj7KxpB%SRJos* z&bdH4mYARU30?jV_Im#5?|jby`@re<L!|r5;*Z4ru3zM!{gwKcVxBVoOt<oX$$J9% z&-{bTeE$H*bU)8X^nQQjdT*osl;|(kSmZupZBys|M~okb>RY;d&q02(A!vNfkx-5B zQ33(*q+v0n7{Yl+C**@}<IN0b!qXM-eMjg91JqB<rLesLJ=sYz4ZgKS#T2sfjQh%^ z2ZveEI6{>tV++tKAXiv2eda5{mi@qmYxFSyChFmm!ElMWfpGi?y+LCV2sZbbP>n4= zVnT2bQi6Ei8b90bEa3bD^K&@`&=8Gx+FG~wk1^Y%SLSVgj<3w7g>I&Vvc1<gKQWHD zt$V=XR1acSLC?s<_j0N&@{;rPM!sGM19W^sYYlFVAuCo*kthRKhfu!O_JsjmH7Vu# z+xI*atp5P02r-+-KQInc=l<mg*gHSiJ$UFr8*B=CL1<@jQC#XVZ4wRG?3Q8ne^V@% zD^@?)GY?&#)OHSaYW&I-CGl#QiglkjQw;s<>6o-Gn@=#Vs{a7%h$htLgYZNy_mGLS zBDxRMT^f6j<N?7tui+a2-TwgL8Z{tjbKW7CIs=&TpAY1@&AibNX8sU~EnansiB(>; zP(FPOVgawk{EOtdP9Iq6LW2cCs?J)+jYUB4*1wa4G2V9og5W3ui|Q%p)@9yLakOS& zus)CiLeYcbUR(8Mdi$ubx4$vp(Sh=LLIWEMZdxYhxNmH_h#CP&a5`d`rrA&W#e;5l z)IrWhH06Q`bg^w;q`FB>V5jFF6Bi`OH@cWDq1{AIH8`7R+c&9UZq$2)FGS)8Yg}eh z;?)i0)7gU&25LELkHp*Q<}Ue#H4?R6lIEOBr!eah^Gi#W3RU(cjRh55!9SGzeSCYE z;o>k({{V?n@FhGv^D`bB3fev;&gkgG1Db2NF1F|{KWSH%H&~ee0Alk;{fuhh9HeTF zFA;MD)W1XDGVu2-7}71-9P5af)y(DJ5WOl2DNAlW-02Y@7h}HmvD5+PHd(_m7*s20 z2bNw6EiJ|I0qKcui9qo!8h|2$nvSjQQR-;COp1W&H%?K4c~52t+3_&{0FcBDMOzsj zm9H>U?1A&XqFnw$RiIA91x@ZT(duR<RC`!ZR@J*l2L5W&3Ku*IGFGfu;kEYW-Jf9r zVc$R?H2(k+mf&c|-IxnK$dt6M-_Vv`Hrm`%0D86!yS-FjNAnTD9`UXR$w$4hoKWPk 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%0A;%c`;o$VfclmXaBtO^AQkE6ENQK}C9HY4=gS@A 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 literal 0 HcmV?d00001 diff --git a/test_microsites/test_microsite/images/header-logo.png b/test_microsites/test_microsite/images/header-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..df8cb13233664024ad199cc93566f7a8dc5c71fd GIT binary patch literal 1215 zcmeAS@N?(olHy`uVBq!ia0vp^u|TZP!3-p~xtdusFfb|y_=LE+RnG(>#){30R6>Ac zlT*NUwe+(7*<19ox_bH<vlatMh6Rs-f<Ok41R@|8A_yTNvJeG85x5kP0Z|V$1j2xb zKor1rK^Q<1h~QE{280c<4(R3zb>kk}kZJ|P&eqPBtb#hvpbndW$;xgW_05ybLm6|I z`*p8iY}zkWv$3*cQh5Dz<>Gm56}7E}<xR0E%_&){Rby(MeAcTbv@6+cR!g3)?A5R2 zT(4+Ssb|?37MIa7Ww~l(jkOyjD9ROdA#R4ap&|a+DxeE2N`m}?9U2<;JDd-=f4;vV zpub^#|M`G~f`aw;3)U;#H&A##-{8K3Lc)0gf%ysV=kIqgIN$JIz+pd72ZMq2iVqA7 z%)*{7jv*Dd-cG++cFRD(;j(EpM@nKm*Ng^30iJIq_rI%V&NAUP6#M^QR8(lwnu(lG zmsGy6-08nfZe82OjAJ?ne2wPceP{4)&6+iL-nKUw?zB5J_wqf(o`VGzdt_Q04Bv5F z+`skyEydhmj-M4}W#1evZmoNLXvVtN$G#tZ#TR=v@b?{oV~_Un7%q^^x!JqNH}$lZ z6HDZ6KkaXEH7Y9(x7cpnG@towT#u#Q;*>CjBUy@vd#^rSv&GrIU~5C5JZH>-vhG!? zy`{_&Tm9y>ytvsYTh@{@{pmu{6WbYX@*a1eq9az`reMZYy<NA&cR~I^$2W|d#HIJ0 zvpQgOk@L-j$%ih4<vM)plJAUExcoM&^ZL`yvWc-SeLp|uw#jaDlhO@%>lX3OLiJ-s z$)j4)O+M?}->l$BtyHS^TDIs!mfcBni*I}G$ISKEJWKyYS;p#5rVeG=9J_VGdL?RY zziZrIxkCAUi0Dn%l_wq@EEC+tDN}gP-nO50K7;4lt~Yzmq&`fpzWF?-sj2dX;l3R0 z(_3veZPwP(*WIRG>nADFV}9o!Lx|8U+q$W?t)CCA-23cXb;F4VXIg~rUo#4xrE)AV z(kk_nu)Kh5$*SFp1*~tp^FNp@lU)|Q)%>E(FYDiy+y8%BtNk`x+2zmuo2h#jOrD!+ z|L9xzKEtDZQC3;sjQzhpX!>-C@yNC<<;vCt#yRCXY}>Ra6<lgq;Z+?SmbAm@`j^{R z3>LlKwLrb?_Eg2*S$pqs26-qSo3!@dlB|UFkEiWx6<;BH#Kl)D_Dp0|k)x%;Pn{MG zfy91}(3$=_m}eVVdInBj-tr_o^@+60h86soCebrv+1^jry7Pa+`U_%zen@s-zGiQC zFVk5{bmE5T&Xdo3&g`qOt$AguKBs2=g~^j2Uw(e@!CTd*e{bB&`6QKdk^N%HjiR|X z7aG0Yw@+arPn)n_dOfrM_1RamZ!drCTi11cyYt4DyS*y=zt4CTQ+BY*nRgFQPl;pU zb8Ca?u|b}lyk^OF&i=ja_{&_#bjEEx&8TFD!*Y{F&vW;y-6_}nG@n<={jK?l`rQA_ ZMISb82)}Z!5}3spJYD@<);T3K0RWz2J7)j@ literal 0 HcmV?d00001 diff --git a/test_microsites/test_microsite/images/login-and-register-banner.png b/test_microsites/test_microsite/images/login-and-register-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..13aa7fd9a6e241272d898cd10b3c927baa7a48c0 GIT binary patch literal 18076 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�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 literal 0 HcmV?d00001 diff --git a/test_microsites/test_microsite/templates/emails/activation_email.txt b/test_microsites/test_microsite/templates/emails/activation_email.txt new file mode 100644 index 00000000000..97b3c4f5e06 --- /dev/null +++ b/test_microsites/test_microsite/templates/emails/activation_email.txt @@ -0,0 +1,16 @@ +<%! from django.utils.translation import ugettext as _ %> + +${_("Thank you for signing up for Open edX! To activate " +"your account, please copy and paste this address into your web " +"browser's address bar:")} + +% if is_secure: + https://${ site }/activate/${ key } +% else: + http://${ site }/activate/${ key } +% endif + +${_("If you didn't request this, you don't need to do anything; you won't " + "receive any more email from us. Please do not reply to this e-mail; " + "if you require assistance, check the help section of the " + "Open edX web site.")} diff --git a/test_microsites/test_microsite/templates/emails/activation_email_subject.txt b/test_microsites/test_microsite/templates/emails/activation_email_subject.txt new file mode 100644 index 00000000000..fc4ef4425c0 --- /dev/null +++ b/test_microsites/test_microsite/templates/emails/activation_email_subject.txt @@ -0,0 +1,3 @@ +<%! from django.utils.translation import ugettext as _ %> + +${_("Your account for Open edX")} diff --git a/test_microsites/test_microsite/templates/emails/confirm_email_change.txt b/test_microsites/test_microsite/templates/emails/confirm_email_change.txt new file mode 100644 index 00000000000..406175d1cd2 --- /dev/null +++ b/test_microsites/test_microsite/templates/emails/confirm_email_change.txt @@ -0,0 +1,15 @@ +<%! from django.core.urlresolvers import reverse %> + +This is to confirm that you changed the e-mail associated with +Open edX from ${old_email} to ${new_email}. If you +did not make this request, please contact us immediately. Contact +information is listed at: + +% if is_secure: + https://${ site }${reverse('contact')} +% else: + http://${ site }${reverse('contact')} +% endif + +We keep a log of old e-mails, so if this request was unintentional, we +can investigate. diff --git a/test_microsites/test_microsite/templates/emails/email_change.txt b/test_microsites/test_microsite/templates/emails/email_change.txt new file mode 100644 index 00000000000..e55dbde0397 --- /dev/null +++ b/test_microsites/test_microsite/templates/emails/email_change.txt @@ -0,0 +1,15 @@ +We received a request to change the e-mail associated with your +Open edX account from ${old_email} to ${new_email}. +If this is correct, please confirm your new e-mail address by +visiting: + +% if is_secure: + https://${ site }/email_confirm/${ key } +% else: + http://${ site }/email_confirm/${ key } +% endif + +If you didn't request this, you don't need to do anything; you won't +receive any more email from us. Please do not reply to this e-mail; +if you require assistance, check the help section of the +Open edX web site. diff --git a/test_microsites/test_microsite/templates/emails/email_change_subject.txt b/test_microsites/test_microsite/templates/emails/email_change_subject.txt new file mode 100644 index 00000000000..1d3e3c0aa90 --- /dev/null +++ b/test_microsites/test_microsite/templates/emails/email_change_subject.txt @@ -0,0 +1 @@ +Request to change Open edX account e-mail diff --git a/test_microsites/test_microsite/templates/emails/enroll_email_allowedmessage.txt b/test_microsites/test_microsite/templates/emails/enroll_email_allowedmessage.txt new file mode 100644 index 00000000000..f6a729cfc15 --- /dev/null +++ b/test_microsites/test_microsite/templates/emails/enroll_email_allowedmessage.txt @@ -0,0 +1,30 @@ +<%! from django.utils.translation import ugettext as _ %> + +${_("Dear student,")} + +${_("You have been invited to join {course_name} at {site_name} by a " + "member of the course staff.").format( + course_name=course.display_name_with_default, + site_name=site_name + )} + +${_("To finish your registration, please visit {registration_url} and fill " + "out the registration form making sure to use {email_address} in the E-mail field.").format( + registration_url=registration_url, + email_address=email_address + )} +% if auto_enroll: +${_("Once you have registered and activated your account, you will see " + "{course_name} listed on your dashboard.").format( + course_name=course.display_name_with_default + )} +% else: +${_("Once you have registered and activated your account, visit {course_about_url} " + "to join the course.").format(course_about_url=course_about_url)} +% endif + +---- +${_("This email was automatically sent from {site_name} to " + "{email_address}").format( + site_name=site_name, email_address=email_address + )} \ No newline at end of file diff --git a/test_microsites/test_microsite/templates/emails/enroll_email_allowedsubject.txt b/test_microsites/test_microsite/templates/emails/enroll_email_allowedsubject.txt new file mode 100644 index 00000000000..6ed7ce61b5b --- /dev/null +++ b/test_microsites/test_microsite/templates/emails/enroll_email_allowedsubject.txt @@ -0,0 +1,5 @@ +<%! from django.utils.translation import ugettext as _ %> + +${_("You have been invited to register for {course_name}").format( + course_name=course.display_name_with_default + )} \ No newline at end of file diff --git a/test_microsites/test_microsite/templates/emails/enroll_email_enrolledmessage.txt b/test_microsites/test_microsite/templates/emails/enroll_email_enrolledmessage.txt new file mode 100644 index 00000000000..a0a817473e0 --- /dev/null +++ b/test_microsites/test_microsite/templates/emails/enroll_email_enrolledmessage.txt @@ -0,0 +1,20 @@ +<%! from django.utils.translation import ugettext as _ %> + +${_("Dear {full_name}").format(full_name=full_name)} + +${_("You have been enrolled in {course_name} at {site_name} by a member " + "of the course staff. The course should now appear on your {site_name} " + "dashboard.").format( + course_name=course.display_name_with_default, + site_name=site_name + )} + +${_("To start accessing course materials, please visit {course_url}").format( + course_url=course_url + )} + +---- +${_("This email was automatically sent from {site_name} to " + "{full_name}").format( + site_name=site_name, full_name=full_name + )} \ No newline at end of file diff --git a/test_microsites/test_microsite/templates/emails/enroll_email_enrolledsubject.txt b/test_microsites/test_microsite/templates/emails/enroll_email_enrolledsubject.txt new file mode 100644 index 00000000000..f13675f99af --- /dev/null +++ b/test_microsites/test_microsite/templates/emails/enroll_email_enrolledsubject.txt @@ -0,0 +1,5 @@ +<%! from django.utils.translation import ugettext as _ %> + +${_("You have been enrolled in {course_name}").format( + course_name=course.display_name_with_default + )} \ No newline at end of file diff --git a/test_microsites/test_microsite/templates/emails/unenroll_email_allowedmessage.txt b/test_microsites/test_microsite/templates/emails/unenroll_email_allowedmessage.txt new file mode 100644 index 00000000000..6e3386738e2 --- /dev/null +++ b/test_microsites/test_microsite/templates/emails/unenroll_email_allowedmessage.txt @@ -0,0 +1,13 @@ +<%! from django.utils.translation import ugettext as _ %> + +${_("Dear Student,")} + +${_("You have been un-enrolled from course {course_name} by a member " + "of the course staff. Please disregard the invitation " + "previously sent.").format(course_name=course.display_name_with_default)} + +---- +${_("This email was automatically sent from {site_name} " + "to {email_address}").format( + site_name=site_name, email_address=email_address + )} \ No newline at end of file diff --git a/test_microsites/test_microsite/templates/emails/unenroll_email_enrolledmessage.txt b/test_microsites/test_microsite/templates/emails/unenroll_email_enrolledmessage.txt new file mode 100644 index 00000000000..9a6e5d91614 --- /dev/null +++ b/test_microsites/test_microsite/templates/emails/unenroll_email_enrolledmessage.txt @@ -0,0 +1,17 @@ +<%! from django.utils.translation import ugettext as _ %> + +${_("Dear {full_name}").format(full_name=full_name)} + +${_("You have been un-enrolled in {course_name} at {site_name} by a member " + "of the course staff. The course will no longer appear on your " + "{site_name} dashboard.").format( + course_name=course.display_name_with_default, site_name=site_name + )} + +${_("Your other courses have not been affected.")} + +---- +${_("This email was automatically sent from {site_name} to " + "{full_name}").format( + full_name=full_name, site_name=site_name + )} \ No newline at end of file diff --git a/test_microsites/test_microsite/templates/emails/unenroll_email_subject.txt b/test_microsites/test_microsite/templates/emails/unenroll_email_subject.txt new file mode 100644 index 00000000000..9dd348e2b6f --- /dev/null +++ b/test_microsites/test_microsite/templates/emails/unenroll_email_subject.txt @@ -0,0 +1,5 @@ +<%! from django.utils.translation import ugettext as _ %> + +${_("You have been un-enrolled from {course_name}").format( + course_name=course.display_name_with_default +)} \ No newline at end of file diff --git a/test_microsites/test_microsite/templates/footer.html b/test_microsites/test_microsite/templates/footer.html new file mode 100644 index 00000000000..bb7dd0de288 --- /dev/null +++ b/test_microsites/test_microsite/templates/footer.html @@ -0,0 +1,17 @@ +## mako +<%! from django.core.urlresolvers import reverse %> +<%! from django.utils.translation import ugettext as _ %> +<%! from microsite_configuration.middleware import MicrositeConfiguration %> + +<%namespace name='static' file='static_content.html'/> + +<div class="wrapper wrapper-footer"> + <footer> + <div class="colophon"> + <div class="colophon-about"> + <p>This is a Test Microsite footer</p> + </div> + </div> + + </footer> +</div> diff --git a/test_microsites/test_microsite/templates/login-sidebar.html b/test_microsites/test_microsite/templates/login-sidebar.html new file mode 100644 index 00000000000..79ebfa76a33 --- /dev/null +++ b/test_microsites/test_microsite/templates/login-sidebar.html @@ -0,0 +1,18 @@ +<%! +from django.utils.translation import ugettext as _ +from django.core.urlresolvers import reverse +%> + +<header> + <h2 class="sr">${_("Helpful Information")}</h2> +</header> + +<div class="cta cta-help"> + <h3>${_("Not Enrolled?")}</h3> + <p><a href="${reverse('register_user')}">${_("Sign up for {platform_name} today!").format(platform_name=platform_name)}</a></p> + + <h3>${_("Need Help?")}</h3> + <p> + Custom text + </p> +</div> \ No newline at end of file diff --git a/test_microsites/test_microsite/templates/register-sidebar.html b/test_microsites/test_microsite/templates/register-sidebar.html new file mode 100644 index 00000000000..cbfb28dc1a2 --- /dev/null +++ b/test_microsites/test_microsite/templates/register-sidebar.html @@ -0,0 +1,37 @@ +<%! +from django.utils.translation import ugettext as _ +from django.core.urlresolvers import reverse +%> +<%namespace file='../../main.html' import="login_query"/> +<%namespace name='static' file='../../static_content.html'/> + + +<header> + <h3 class="sr">${_("Registration Help")}</h3> +</header> + +<div class="cta"> + <h3>${_("Already registered?")}</h3> + <p class="instructions"> + <a href="${reverse('signin_user')}${login_query()}"> + ${_("Click here to log in.")} + </a> + </p> +</div> + + <div class="cta cta-welcome"> + <h3>${_("Welcome to {platform_name}").format(platform_name=platform_name)}</h3> + <p>${_("Registering with {platform_name} gives you access to all of our current and future free courses. Not ready to take a course just yet? Registering puts you on our mailing list - we will update you as courses are added.").format(platform_name=platform_name)}</p> + </div> + +<div class="cta cta-nextsteps"> + <h3>${_("Next Steps")}</h3> + <p>${_("As part of joining {platform_name}, you will receive an activation email. You must click on the activation link to complete the process. Don't see the email? Check your spam folder and mark {platform_name} emails as 'not spam'. At {platform_name}, we communicate mostly through email.").format(platform_name=platform_name)}</p> +</div> + +<div class="cta cta-help"> + <h3>${_("Need Help?")}</h3> + <p> + This is custom area + </p> +</div> diff --git a/test_microsites/test_microsite/templates/static_templates/about.html b/test_microsites/test_microsite/templates/static_templates/about.html new file mode 100644 index 00000000000..a326281b6d7 --- /dev/null +++ b/test_microsites/test_microsite/templates/static_templates/about.html @@ -0,0 +1,64 @@ +<%! from django.utils.translation import ugettext as _ %> +<%! from django.core.urlresolvers import reverse %> +<%namespace name='static' file='../../../static_content.html'/> + +<%inherit file="../../../main.html" /> + +<%block name="title"><title>${_("About {edX}").format(edX="edX")}</title></%block> + +<section class="container about"> + <nav> + <a href="${reverse('about_edx')}" class="active">${_("Vision")}</a> + <a href="${reverse('faq_edx')}">${_("Faq")}</a> + <a href="${reverse('press')}">${_("Press")}</a> + <a href="${reverse('contact')}">${_("Contact")}</a> + </nav> + + <section class="vision"> + ## <div class="our-mission"> + ## <div class="logo"> + ## <img src="${static.url('images/edx-logo-large-bw.png')}"> + ## </div> + ## <h2 class="mission-quote">“${_('The mission of <span class="edx">{edX}</span> is to enhance human fulfillment worldwide through online ## learning, transforming education in quality, efficiency and scale through technology and research, for the benefit of campus-based ## students and the worldwide community of online learners.').format(edX="edX")}”</h2> + ## </div> + + <section class="message left"> + <div class="photo"> + <img src="${static.url('images/about_1.jpg')}"> + </div> + <article> + <h2>${_('About {span_start}{edX}{span_end}'.format(span_start='<span class="edx">', span_end='</span>', edX="edX"))}</h2> + <p>${_("Open edX is a not-for-profit enterprise of its founding partners {harvard_university} and the {massachusetts_institute_of_technology} that features learning designed specifically for interactive study via the web. Based on a long history of collaboration and their shared educational missions, the founders are creating a new online-learning experience with online courses that reflect their disciplinary breadth. Along with offering online courses, the institutions will use {edX} to research how students learn and how technology can transform learning–both on-campus and worldwide. Anant Agarwal, former Director of {MIT}'s Computer Science and Artificial Intelligence Laboratory, serves as the first president of {edX}. {EdX}'s goals combine the desire to reach out to students of all ages, means, and nations, and to deliver these teachings from a faculty who reflect the diversity of its audience. {EdX} is based in Cambridge, Massachusetts and is governed by {MIT} and {Harvard}.").format(edX="edX", EdX="EdX", harvard_university="Harvard University", Harvard="Harvard", MIT="MIT", massachusetts_institute_of_technology="Massachusetts Institute of Technology")}</p> + </article> + <hr class="fade-right-hr-divider"> + </section> + + <section class="message left"> + <div class="photo"> + <img src="${static.url('images/university/harvard/about-harvard.jpg')}"> + </div> + <article> + <h2>${_("{harvard_university}").format(harvard_university="Harvard University")}</h2> + <p>${_("{harvard_university} is devoted to excellence in teaching, learning, and research, and to developing leaders in many disciplines who make a difference globally. {Harvard} faculty are engaged with teaching and research to push the boundaries of human knowledge. The University has twelve degree-granting Schools in addition to the {radcliffe_institute_for_advanced_study}.").format(harvard_university="Harvard University", Harvard="Harvard", radcliffe_institute_for_advanced_study="Radcliffe Institute for Advanced Study")}</p> + <p>${_("Established in 1636, {Harvard} is the oldest institution of higher education in the United States. The University, which is based in Cambridge and Boston, Massachusetts, has an enrollment of over 20,000 degree candidates, including undergraduate, graduate, and professional students. {Harvard} has more than 360,000 alumni around the world.").format(Harvard="Harvard")}</p> + </article> + <hr class="fade-left-hr-divider"> + </section> + + <section class="message left"> + <div class="photo"> + <img src="${static.url('images/university/mit/about-mit.jpg')}"> + </div> + <article> + <h2>${_("{massachusetts_institute_of_technology}").format(massachusetts_institute_of_technology="Massachusetts Institute of Technology")}</h2> + <p>${_("The {massachusetts_institute_of_technology} — a coeducational, privately endowed research university founded in 1861 — is dedicated to advancing knowledge and educating students in science, technology, and other areas of scholarship that will best serve the nation and the world in the 21st century. The Institute has close to 1,000 faculty and 10,000 undergraduate and graduate students. It is organized into five Schools: Architecture and Urban Planning; Engineering; Humanities, Arts, and Social Sciences; {Sloan} School of Management; and Science.").format(massachusetts_institute_of_technology="Massachusetts Institute of Technology", Sloan="Sloan")}</p> + <p>${_("{MIT}'s commitment to innovation has led to a host of scientific breakthroughs and technological advances. Achievements of the Institute's faculty and graduates have included the first chemical synthesis of penicillin and vitamin A, the development of inertial guidance systems, modern technologies for artificial limbs, and the magnetic core memory that made possible the development of digital computers. 78 alumni, faculty, researchers and staff have won Nobel Prizes.").format(MIT="MIT")}</p> + <p>${_("Current areas of research and education include neuroscience and the study of the brain and mind, bioengineering, cancer, energy, the environment and sustainable development, information sciences and technology, new media, financial technology, and entrepreneurship.")}</p> + </article> + </section> + + <section class="partners"> + </section> + </section> +</section> + diff --git a/test_microsites/test_microsite/templates/static_templates/contact.html b/test_microsites/test_microsite/templates/static_templates/contact.html new file mode 100644 index 00000000000..dcdc953f86c --- /dev/null +++ b/test_microsites/test_microsite/templates/static_templates/contact.html @@ -0,0 +1,62 @@ +<%! from django.utils.translation import ugettext as _ %> +<%! from django.core.urlresolvers import reverse %> +<%namespace name='static' file='../static_content.html'/> + +<%inherit file="../main.html" /> + +<%block name="title"><title>${_("Contact {platform_name}").format(platform_name=settings.PLATFORM_NAME)}</title></%block> + +<section class="container about"> + <nav> + <a href="${reverse('about_edx')}">${_("Vision")}</a> + <a href="${reverse('faq_edx')}">${_("Faq")}</a> + <a href="${reverse('press')}">${_("Press")}</a> + <a href="${reverse('contact')}" class="active">${_("Contact")}</a> + </nav> + + <section class="contact"> + <div class="photo"> + <img src="${static.url('images/contact-page.jpg')}"> + </div> + <div class="contacts"> + <h2>${_("Class Feedback")}</h2> + <p>${_("We are always seeking feedback to improve our courses. If you are an enrolled student and have any questions, feedback, suggestions, or any other issues specific to a particular class, please post on the discussion forums of that class.")}</p> + + <h2>${_("General Inquiries and Feedback")}</h2> + <p>${_('If you have a general question about {platform_name} please email {email}. To see if your question has already been answered, visit our {faq_link_start}FAQ page{faq_link_end}. You can also join the discussion on our {fb_link_start}facebook page{fb_link_end}. Though we may not have a chance to respond to every email, we take all feedback into consideration.').format( + platform_name=settings.PLATFORM_NAME, + email='<a href="mailto:{contact_email}">{contact_email}</a>'.format(contact_email=settings.CONTACT_EMAIL), + faq_link_start='<a href="{url}">'.format(url=reverse('faq_edx')), + faq_link_end='</a>', + fb_link_start='<a href="http://www.facebook.com/EdxOnline">', + fb_link_end='</a>' + )}</p> + + <h2>${_("Technical Inquiries and Feedback")}</h2> + <p>${_('If you have suggestions/feedback about the overall {platform_name} platform, or are facing general technical issues with the platform (e.g., issues with email addresses and passwords), you can reach us at {tech_email}. For technical questions, please make sure you are using a current version of Firefox or Chrome, and include browser and version in your e-mail, as well as screenshots or other pertinent details. If you find a bug or other issues, you can reach us at the following: {bug_email}.').format( + platform_name=settings.PLATFORM_NAME, + tech_email='<a href="mailto:{tech_support_email}">{tech_support_email}</a>'.format(tech_support_email=settings.TECH_SUPPORT_EMAIL), + bug_email='<a href="mailto:{bugs_email}">{bugs_email}</a>'.format(bugs_email=settings.BUGS_EMAIL) + )}</p> + + <h2>${_("Media")}</h2> + <p>${_('Please visit our {link_start}media/press page{link_end} for more information. For any media or press inquiries, please email {email}.').format( + link_start='<a href="{url}">'.format(url=reverse('faq_edx')), + link_end='</a>', + email='<a href="mailto:{email}">{email}</a>'.format(email="press@edx.org"), + )}</p> + + <h2>${_("Universities")}</h2> + <p>${_('If you are a university wishing to collaborate or you have questions about {platform_name}, please email {email}.'.format( + platform_name="edX", + email='<a href="mailto:{email}">{email}</a>'.format( + email="university@edx.org" + ) + ))}</p> + + <h2>${_("Accessibility")}</h2> + <p>${_('{platform_name} strives to create an innovative online-learning platform that promotes accessibility for everyone, including students with disabilities. We are dedicated to improving the accessibility of the platform and welcome your comments or questions at {email}.'.format(platform_name="EdX", email='<a href="mailto:{email}">{email}</a>'.format(email="accessibility@edx.org")))}</p> + </div> + </section> +</section> + diff --git a/test_microsites/test_microsite/templates/static_templates/faq.html b/test_microsites/test_microsite/templates/static_templates/faq.html new file mode 100644 index 00000000000..4621b30323c --- /dev/null +++ b/test_microsites/test_microsite/templates/static_templates/faq.html @@ -0,0 +1,139 @@ +<%! from django.utils.translation import ugettext as _ %> +<%! from django.core.urlresolvers import reverse %> +<%namespace name='static' file='../static_content.html'/> + +<%inherit file="../main.html" /> + +<%block name="title"><title>${_("FAQ")}</title></%block> + +<section class="container about"> + <nav> + <a href="${reverse('about_edx')}">${_("Vision")}</a> + <a href="${reverse('faq_edx')}" class="active">${_("Faq")}</a> + <a href="${reverse('press')}">${_("Press")}</a> + <a href="${reverse('contact')}">${_("Contact")}</a> + </nav> + + + <section class="faq"> + <section class="responses"> + <section id="the-organization" class="category"> + <h2>${_("Organization")}</h2> + <article class="response"> + <h3>${_("What is {edX}?").format(edX="edX")}</h3> + <p>${_('{EdX} is a not-for-profit enterprise of its founding partners, the {MIT_long} ({MIT}) and {harvard_u} that offers online learning to on-campus students and to millions of people around the world. To do so, {edX} is building an open-source online learning platform and hosts an online web portal at <a href=\"http://www.edx.org\">www.edx.org</a> for online education.').format(EdX="EdX", edX="edX", MIT_long="Massachusetts Institute of Technology", MIT="MIT", harvard_u="Harvard University")}</p> + <p>${_("{EdX} currently offers {HarvardX}, {MITx} and {BerkeleyX} classes online for free. Beginning in fall 2013, {edX} will offer {WellesleyX} , {GeorgetownX} and the {UTexas} classes online for free. The {UT} System includes nine universities and six health institutions. In 2014, {edX} will further expand its consortium, including several international schools, when it begins offering courses from {EPFL}, {McGill}, {Toronto}, {ANU}, {Delft}, and {Rice}. The {edX} institutions aim to extend their collective reach to build a global community of online students. Along with offering online courses, the three universities undertake research on how students learn and how technology can transform learning both on-campus and online throughout the world.").format( + EdX="EdX", + edX="edX", + HarvardX="HarvardX", + MITx="MITx", + BerkeleyX="BerkeleyX", + WellesleyX="WellesleyX", + GeorgetownX="GeorgetownX", + UTexas="University of Texas System", + UT="UT", + EPFL=u"École Polytechnique Fédérale de Lausanne", + McGill="McGill University", + Toronto="University of Toronto", + ANU="Australian National University", + Delft="Delft University of Technology", + Rice="Rice University", + )} + </p> + </article> + + <article class="response"> + <h3>${_("Will {edX} be adding additional X Universities?").format(edX="edX")}</h3> + <p>${_("More than 200 institutions from around the world have expressed interest in collaborating with {edX} since {Harvard} and {MIT} announced its creation in May. {EdX} is focused above all on quality and developing the best not-for-profit model for online education. In addition to providing online courses on the {edX} platform, the {x_consortium} will be a forum in which members can share experiences around online learning. {Harvard}, {MIT}, {Berkeley}, the {UTexas} and the other {consortium} members will work collaboratively to establish the {x_consortium}, whose membership will expand to include additional \"{X_Universities}.\" As noted above, {edX}'s newest {consortium} members include {Wellesley}, {Georgetown}, {EPFL}, {McGill}, {Toronto}, {ANU}, {Delft}, and {Rice}. Each member of the {consortium} will offer courses on the {edX} platform as an \"{X_University}\". The gathering of many universities' educational content together on one site will enable learners worldwide to access the offered course content of any participating university from a single website, and to use a set of online educational tools shared by all participating universities.").format( + EdX="EdX", + edX="edX", + Harvard="Harvard", + MIT="MIT", + x_consortium="\"X University\" Consortium", + consortium="consortium", + X_Universities="X Universities", + X_University="X University", + Berkeley="UC Berkeley", + Wellesley="Wellesley", + Georgetown="Georgetown", + UTexas="University of Texas System", + EPFL=u"École Polytechnique Fédérale de Lausanne", + McGill="McGill University", + Toronto="University of Toronto", + ANU="Australian National University", + Delft="Delft University of Technology", + Rice="Rice University", + )}</p> + <p>${_("{EdX} will actively explore the addition of other institutions from around the world to the {edX} platform, and looks forward to adding more \"{X_Universities}\".").format(EdX="EdX", edX="edX", X_Universities="X Universities")} + </p> + </article> + </section> + + <section id="students" class="category"> + <h2>${_("Students")}</h2> + <article class="response"> + <h3>${_("Who can take {edX} courses? Will there be an admissions process?").format(edX="edX")}</h3> + <p>${_("{EdX} will be available to anyone in the world with an internet connection, and in general, there will not be an admissions process.").format(EdX="EdX")}</p> + </article> + <article class="response"> + <h3>${_("Will certificates be awarded?")}</h3> + <p>${_("Yes. Online learners who demonstrate mastery of subjects can earn a certificate " + "of mastery. Certificates will be issued at the discretion of {edX} and the underlying " + "\"{X_University}\" that offered the course under the name of the underlying \"{X_University}\" from where the course originated, i.e. {HarvardX}, {MITx} or {BerkeleyX}. " + "For the courses in Fall 2012, those certificates will be free. There is a plan to " + "charge a modest fee for certificates in the future. Note: At this time, {edX} is " + "holding certificates for learners connected with Cuba, Iran, Syria and Sudan " + "pending confirmation that the issuance is in compliance with U.S. embargoes.").format(edX="edX", X_University="X University", HarvardX="HarvardX", MITx="MITx", BerkeleyX="BerkeleyX")}</p> + </article> + <article class="response"> + <h3>${_("What will the scope of the online courses be? How many? Which faculty?")}</h3> + <p>${_('Our goal is to offer a wide variety of courses across disciplines. There are currently {link_start}fifteen{link_end} offered on the {edX} platform.').format(link_start='<a href="/courses">', link_end='</a>', edX="edX")}</p> + </article> + <article class="response"> + <h3>${_("Who is the learner? Domestic or international? Age range?")}</h3> + <p>${_("Improving teaching and learning for students on our campuses is one of our primary goals. Beyond that, we don't have a target group of potential learners, as the goal is to make these courses available to anyone in the world - from any demographic - who has interest in advancing their own knowledge. The only requirement is to have a computer with an internet connection. More than 150,000 students from over 160 countries registered for {MITx}'s first course, 6.002x: Circuits and Electronics. The age range of students certified in this course was from 14 to 74 years-old.").format(MITx="MITx")}</p> + </article> + <article class="response"> + <h3>${_("Will participating universities' standards apply to all courses offered on the edX platform?")}</h3> + <p>${_("Yes: the reach changes exponentially, but the rigor remains the same.")}</p> + </article> + <article class="response"> + <h3>${_("How do you intend to test whether this approach is improving learning?")}</h3> + <p>${_("{EdX} institutions have assembled faculty members who will collect and analyze data to assess results and the impact {edX} is having on learning.").format(EdX="EdX", edX="edX")}</p> + </article> + <article class="response"> + <h3>${_("How may I apply to study with {edX}?").format(edX="edX")}</h3> + <p>${_('Simply complete the online {link_start}signup form{link_end}. Enrolling will create your unique student record in the {edX} database, allow you to register for classes, and to receive a certificate on successful completion.').format(link_start='<a href="#signup-modal" rel="leanModal">', link_end='</a>', edX="edX")}</p> + </article> + <article class="response"> + <h3>${_("How may another university participate in {edX}? ").format(edX="edX")}</h3> + <p>${_('If you are from a university interested in discussing {edX}, please email {email}').format(email='<a href="mailto:university@edx.org">university@edx.org</a>', edX="edX")}</p> + </article> + </section> + + <section id="technology-platform" class="category"> + <h2>${_("Technology Platform")}</h2> + <article class="response"> + <h3>${_("What technology will {edX} use?").format(edX="edX")}</h3> + <p>${_("The {edX} open-source online learning platform will feature interactive learning designed specifically for the web. Features will include: self-paced learning, online discussion groups, wiki-based collaborative learning, assessment of learning as a student progresses through a course, and online laboratories and other interactive learning tools. The platform will also serve as a laboratory from which data will be gathered to better understand how students learn. Because it is open source, the platform will be continuously improved by a worldwide community of collaborators, with new features added as needs arise.").format(edX="edX")}</p> + <p>${_("The first version of the technology was used in the first <em>{MITx}</em> course, 6.002x Circuits and Electronics, which launched in Spring, 2012.").format(MITx="MITx")}</p> + </article> + <article class="response"> + <h3>${_("How is this different from what other universities are doing online?")}</h3> + <p>${_("{EdX} is a not-for-profit enterprise built upon the shared educational missions of its founding partners, {Harvard_long} and {MIT}. The {edX} platform will be available as open source. Also, a primary goal of {edX} is to improve teaching and learning on campus by experimenting with blended models of learning and by supporting faculty in conducting significant research on how students learn.").format(edX="edX", EdX="EdX", Harvard_long="Harvard University", MIT="MIT")}</p> + </article> + </section> + + </section> + + <nav class="categories"> + <a href="#organization">${_("Organization")}</a> + <a href="${reverse('help_edx')}">${_("Students")}</a> + <a href="#technology-platform">${_("Technology Platform")}</a> + </nav> + </section> +</section> + +%if user.is_authenticated(): +<%include file="../signup_modal.html" /> +%endif diff --git a/test_microsites/test_microsite/templates/static_templates/tos.html b/test_microsites/test_microsite/templates/static_templates/tos.html new file mode 100644 index 00000000000..414754d82b2 --- /dev/null +++ b/test_microsites/test_microsite/templates/static_templates/tos.html @@ -0,0 +1,122 @@ +<%! from django.utils.translation import ugettext as _ %> +<%! from django.core.urlresolvers import reverse %> +<%inherit file="../main.html" /> + +<%namespace name='static' file='../static_content.html'/> + +<%block name="title"><title>Terms of Service</title></%block> + +<section class="static-container tos"> + <h1>edX Terms of Service</h1> + <hr class="horizontal-divider"/> + + <div class="inner-wrapper"> + <p><strong>NOTICE: on September 26, 2012 edX adopted amended Terms of Service, providing as follows:</strong></p> + + <p>Welcome to edX. Please read these Terms of Service ("TOS") and edX's <a href="${reverse('privacy_edx')}">Privacy Policy</a> and <a href="${reverse('honor')}">Honor Code</a> prior to registering for edX.org or using any portion of the edX website (the "Site," which consists of all content and pages located within the edX.org web domain), including accessing any course material, chat rooms, or other electronic services. These TOS, the Privacy Policy and the Honor Code are agreements (the "Agreements") between you and edX. By using the Site, you accept and agree to be legally bound by the Agreements, whether or not you are a registered user. If you do not understand or do not wish to be bound by the terms of the Agreements, you should not use the Site.")</p> + + <p>EdX reserves the right to modify these TOS at any time without advance notice. Any changes to these TOS will be effective immediately upon posting on this page, with an updated effective date. By accessing the Site after any changes have been made, you signify your agreement on a prospective basis to the modified TOS and all of the changes. Be sure to return to this page periodically to ensure familiarity with the most current version of these TOS.</p> + + <h2>Description of edX</h2> + <p>EdX offers online courses that include opportunities for professor-to-student and student-to-student interactivity, individual assessment of a student's work and for students who demonstrate their mastery of subjects, a certificate of mastery.</p> + + <h2>Rules for Online Conduct</h2> + <p>You agree that you are responsible for your own use of the Site and for your User Postings. "User Postings" include all content submitted, posted, published or distributed on the Site by you or other users of the Site, including but not limited to all forum posts, wiki edits, notes, questions, comments, videos and file uploads. You agree that you will use the Site in compliance with these TOS, the Honor Code and all applicable local, state, national and international laws, rules and regulations, including copyright laws, any laws regarding the transmission of technical data exported from your country of residence, and all United States export control laws.</p> + + <p>As a condition of your use of the edX services, you will not use the Site in any manner intended to damage, disable, overburden or impair any edX server or the network(s) connected to any edX server or to interfere with any other party's use and enjoyment of the Site. You may not attempt to gain unauthorized access to the Site, other accounts, computer systems or networks connected to any edX server through hacking, password mining or any other means. You may not obtain or attempt to obtain any materials or information stored on the Site, its servers or associated computers through any means not intentionally made available through the Site.</p> + + <h2>The following list of items is strictly prohibited on the Site:</h2> + <ol> + <li>Content that defames, harasses or threatens others;</li> + <li>Content that discusses illegal activities with the intent to commit them;</li> + <li>Content that infringes another's intellectual property, including, but not limited to, copyrights or trademarks;</li> + <li>Profane, pornographic, obscene, indecent or unlawful content;</li> + <li>Advertising or any form of commercial solicitation;</li> + <li>Content related to partisan political activities;</li> + <li>Viruses, trojan horses, worms, time bombs, corrupted files, malware, spyware or any other similar software that may damage the operation of another's computer or property; and</li> + <li>Content that contains intentionally inaccurate information or that is posted with the intent of misleading others.</li> + </ol> + + <p>Furthermore, you agree not to scrape, or otherwise download in bulk, any Site content, including but not limited to a list or directory of users on the system, on-line textbooks, User Postings or user information. You agree not to misrepresent or attempt to misrepresent your identity while using the Sites (although you are welcome and encouraged to use an anonymous username in the forums and to act in a manner that keeps your identity concealed).</p> + + <h2>User Accounts and Authority</h2> + <p>In order to participate fully in Site activities, you must provide your name, an email address and a user password in order to create a user account ("User Account"). You agree that you will never divulge or share access or access information to your User Account with any third party for any reason. In setting up your User Account, you may be prompted to enter additional optional information (e.g., your address). You represent that all information provided by you is accurate and current. You agree to maintain and update your information to keep it accurate and current.</p> + + <p>We care about the confidentiality and security of your personal information. Please see our <a href="${reverse('privacy_edx')}">Privacy Policy</a> for more information about what information about you edX collects and how edX uses that information."</p> + + <h2>Your Right to Use Content on the Site</h2> + <p>Unless indicated as being in the public domain, the content on the Site is protected by United States and foreign copyright laws. Unless otherwise expressly stated on the Site, the texts, exams, video, images and other instructional materials provided with the courses offered on this Site are for your personal use in connection with those courses only. MIT and Harvard aim to make much of the edX course content available under more open license terms that will help create a vibrant ecosystem of contributors and further edX's goal of making education accessible and affordable to the world.</p> + + <p>Certain reference documents, digital textbooks, articles and other information on the Site are used with the permission of third parties, and use of that information is subject to certain rules and conditions, which will be posted along with the information. By using this Site you agree to abide by all such rules and conditions.</p> + + <p>You agree to retain all copyright and other notices on any content you obtain from the Site. All rights in the Site and its content, if not expressly granted, are reserved.</p> + + <h2>User Postings</h2> + + <p><strong>User Postings Representations and Warranties.</strong> By submitting or distributing your User Postings, you affirm, represent and warrant (1) that you have the necessary rights, licenses, consents and/or permissions to reproduce and publish the User Postings and to authorize edX and its users to reproduce, modify, publish and otherwise use and distribute your User Postings in a manner consistent with the licenses granted by you below, and (2) that neither your submission of your User Postings nor the exercise of the licenses granted below will infringe or violate the rights of any third party. You, and not edX, are solely responsible for your User Postings and the consequences of posting or publishing them.</p> + + <p><strong>License Grant to edX.</strong> By submitting or distributing User Postings to the Site, you hereby grant to edX a worldwide, non-exclusive, transferable, assignable, sublicensable, fully paid-up, royalty-free, perpetual, irrevocable right and license to host, transfer, display, perform, reproduce, modify, distribute, re-distribute, relicense and otherwise use, make available and exploit your User Postings, in whole or in part, in any form and in any media formats and through any media channels (now known or hereafter developed).</p> + + <p><strong>License Grant to edX Users.</strong> By submitting or distributing User Postings to the Site, you hereby grant to each user of the Site a non-exclusive license to access and use your User Postings in connection with their use of the Site for their own personal purposes.</p> + + <h2>Certificates, etc.</h2> + + <p>EdX and/or the colleges and universities providing courses on the Site may offer a certificate of mastery or other acknowledgment (a "Certificate") for students who, in their judgment, have satisfactorily demonstrated mastery of the course material. Certificates will be issued by edX under the name of the underlying "X University" from where the course originated, i.e. HarvardX, MITx. etc. The decision whether a Certificate will be awarded to a given student will be solely within the discretion of the awarding entity, as will the name and form of any such Certificate. EdX and/or the institutions providing courses on the Site may choose not to offer a Certificate for some courses.</p> + + <p>When you take a course through edX, you will not be an applicant for admission to, or enrolled in, any degree program of the institution as a result of registering for or completing a course through edX. You will not be entitled to use any of the resources of the institution beyond the online courses provided on the Site, nor will you be eligible to receive student privileges or benefits provided to students enrolled in degree programs of the institution.</p> + + <h2>Trademarks</h2> + + <p><strong>Use of edX, MIT, Harvard University and X University Names, Trademarks and Service Marks.</strong> The "edX", "MIT", and "Harvard University" names, logos and seals are trademarks ("Trademarks") of the respective entities. Likewise, the names, logos, and seals of the other colleges and universities providing courses on the Site (the "X Universities") are Trademarks owned by the X Universities. You may not use any of these Trademarks, or any variations thereof, without the owner's prior written consent. You may not use any of these Trademarks, or any variations thereof, for promotional purposes, or in any way that deliberately or inadvertently claims, suggests or, in these institutions' sole judgment, gives the appearance or impression of a relationship with or endorsement by these institutions.</p> + + <p>All Trademarks not owned by these institutions that appear on the Site or on or through the services made available on or through the Site, if any, are the property of their respective owners.</p> + + <p>Nothing contained on the Site should be construed as granting, by implication, estoppel or otherwise, any license or right to use any Trademark displayed on the Site without the written permission of the owner of the applicable Trademark.</p> + + <h2>Digital Millennium Copyright Act</h2> + + <p>Copyright owners who believe their material has been infringed on the Site should contact edX's designated copyright agent at <a href="mailto:dcma-agent@mit.edu">dcma-agent@mit.edu</a> or at 77 Massachusetts Avenue, Cambridge, MA 02138-4307 Attention: MIT DCMA Agent, W92-263A.</p> + + <p>Notification must include:</p> + <ul> + <li>Identification of the copyrighted work, or, in the case of multiple works at the same location, a representative list of such works at that site.</li> + <li>Identification of the material that is claimed to be infringing or to be the subject of infringing activity. You must include sufficient information for us to locate the material (e.g., URL, IP address, computer name).</li> + <li>Information for us to be able to contact the complaining party (e.g., email address, phone number).</li> + <li>A statement that the complaining party believes that the use of the material has not been authorized by the copyright owner or an authorized agent.</li> + <li>A statement that the information in the notification is accurate and that the complaining party is authorized to act on behalf of the copyright owner.</li> + </ul> + + <h2>Disclaimers of Warranty / Limitations of Liabilities</h2> + <p><strong>THE SITE AND ANY INFORMATION, CONTENT OR SERVICES MADE AVAILABLE ON OR THROUGH THE SITE ARE PROVIDED "AS IS" AND "AS AVAILABLE" WITHOUT WARRANTY OF ANY KIND (EXPRESS, IMPLIED OR OTHERWISE), INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT, EXCEPT INSOFAR AS ANY SUCH IMPLIED WARRANTIES MAY NOT BE DISCLAIMED UNDER APPLICABLE LAW.</strong></p> + + <p><strong>EDX AND THE EDX PARTICIPANTS (AS HERINAFTER DEFINED) DO NOT WARRANT THAT THE SITE WILL OPERATE IN AN UNINTERRUPTED OR ERROR-FREE MANNER, THAT THE SITE IS FREE OF VIRUSES OR OTHER HARMFUL COMPONENTS, OR THAT THE COURSES OR CONTENT PROVIDED WILL MEET YOUR NEEDS OR EXPECTATIONS. EDX AND THE EDX PARTICIPANTS ALSO MAKE NO WARRANTY ABOUT THE ACCURACY, COMPLETENESS, TIMELINESS, OR QUALITY OF THE SITE OR ANY COURSES OR CONTENT, OR THAT ANY PARTICULAR COURSES OR CONTENT WILL CONTINUE TO BE MADE AVAILABLE. “EDX PARTICIPANTS” MEANS MIT, HARVARD, X UNIVERSITIES, THE ENTITIES PROVIDING INFORMATION, CONTENT OR SERVICES FOR THE SITE, THE COURSE INSTRUCTORS AND THEIR STAFFS.</strong></p> + + <p><strong>USE OF THE SITE, AND THE CONTENT AND SERVICES OBTAINED FROM OR THROUGH THE SITE, IS AT YOUR OWN RISK. YOUR ACCESS TO OR DOWNLOAD OF INFORMATION, MATERIALS OR DATA THROUGH THE SITE OR ANY REFERENCE SITES IS AT YOUR OWN DISCRETION AND RISK, AND YOU WILL BE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR PROPERTY (INCLUDING YOUR COMPUTER SYSTEM) OR LOSS OF DATA THAT RESULTS FROM THE DOWNLOAD OR USE OF SUCH MATERIAL OR DATA.</strong></p> + + <p><strong>User Postings Disclaimer.</strong> You understand that when using the Site you will be exposed to User Postings from a variety of sources and that neither edX nor the edX Participants are responsible for the accuracy, usefulness, reliability or intellectual property rights of or relating to such User Postings. You further understand and acknowledge that you may be exposed to User Postings that are inaccurate, offensive, defamatory, indecent or objectionable and you agree to waive, and hereby do waive, any legal or equitable rights or remedies you have or may have against edX or any of the edX Participants with respect thereto. Neither edX nor the edX Participants endorse any User Postings or any opinion, recommendation or advice expressed therein. Neither edX nor the edX Participants have any obligation to monitor any User Postings or any other user communications through the Site.</p> + + <p>However, edX reserves the right to review User Postings and to exercise its sole discretion to edit or remove, in whole or in part, any User Posting at any time or for any reason, or to allow the edX Participants to do so. Without limiting the foregoing, upon receiving notice from a user or a content owner that a User Posting allegedly does not conform to these TOS, edX may investigate the allegation and determine in its sole discretion whether to remove the User Posting, which it reserves the right to do at any time and without notice.</p> + + <p><strong>Links to Other Sites.</strong> The Site may include hyperlinks to sites maintained or controlled by others. EdX and the edX Participants are not responsible for and do not routinely screen, approve, review or endorse the contents of or use of any of the products or services that may be offered at these sites. If you decide to access linked third party web sites, you do so at your own risk.</p> + + <p><strong>TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, YOU AGREE THAT NEITHER EDX NOR ANY OF THE EDX PARTICIPANTS WILL BE LIABLE TO YOU FOR ANY LOSS OR DAMAGES, EITHER ACTUAL OR CONSEQUENTIAL, ARISING OUT OF OR RELATING TO THESE TERMS OF SERVICE, OR YOUR (OR ANY THIRD PARTY'S) USE OF OR INABILITY TO USE THE SITE, OR YOUR PLACEMENT OF CONTENT ON THE SITE, OR YOUR RELIANCE UPON INFORMATION OBTAINED FROM OR THROUGH THE SITE, WHETHER YOUR CLAIM IS BASED IN CONTRACT, TORT, STATUTORY OR OTHER LAW.</strong></p> + + <p><strong>IN PARTICULAR, TO THE FULLEST EXTENT PERMITTED BY APPLICABLE LAW, NEITHER EDX NOR ANY OF THE EDX PARTICIPANTS WILL HAVE ANY LIABILITY FOR ANY CONSEQUENTIAL, INDIRECT, PUNITIVE, SPECIAL, EXEMPLARY OR INCIDENTAL DAMAGES, WHETHER FORESEEABLE OR UNFORESEEABLE AND WHETHER OR NOT EDX OR ANY OF THE EDX PARTICIPANTS HAS BEEN NEGLIGENT OR OTHERWISE AT FAULT (INCLUDING, BUT NOT LIMITED TO, CLAIMS FOR DEFAMATION, ERRORS, LOSS OF PROFITS, LOSS OF DATA OR INTERRUPTION IN AVAILABILITY OF DATA).</strong></p> + + <h2>Indemnification</h2> + + <p>You agree to defend, hold harmless and indemnify edX and the edX Participants, and their respective subsidiaries, affiliates, officers, faculty, students, fellows, governing board members, agents and employees from and against any third-party claims, actions or demands arising out of, resulting from or in any way related to your use of the Site, including any liability or expense arising from any and all claims, losses, damages (actual and consequential), suits, judgments, litigation costs and attorneys' fees, of every kind and nature. In such a case, edX or one of the edX Participants will provide you with written notice of such claim, suit or action.</p> + + <h2>Miscellaneous</h2> + + <p><strong>Termination Rights; Discontinuation of Courses and Content.</strong> You agree that edX, in its sole discretion, may terminate your use of the Site or your participation in it, for any reason or no reason, upon notice to you. It is edX's policy to terminate in appropriate circumstances users of the Site who are repeat copyright infringers. EdX and the edX Participants reserve the right at any time in their sole discretion to cancel, delay, reschedule or alter the format of any course offered through edX, or to cease providing any part or all of the Site content or related services, and you agree that neither edX nor any of the edX Participants will have any liability to you for such an action. If you no longer desire to participate in the Site, you may terminate your participation at any time. The rights granted to you hereunder will terminate upon any termination of your right to use the Site, but the other provisions of these TOS will survive any such termination. </p> + + <p><strong>Entire Agreement.</strong> These TOS, the Honor Code, and the Privacy Policy together constitute the entire agreement between you and edX with respect to your use of the Site, superseding any prior agreements between you and edX regarding your use of the Site.</p> + + <p><strong>Waiver and Severability of TOS.</strong> The failure of edX to exercise or enforce any right or provision of these TOS shall not constitute a waiver of such right or provision. If any provision of these TOS is found by a court of competent jurisdiction to be invalid, the parties nevertheless agree that the court should endeavor to give effect to the parties' intentions as reflected in the provision and the other provisions of these TOS shall remain in full force and effect.</p> + + <p><strong>Choice of Law/Forum Selection.</strong> You agree that these TOS and any claim or dispute arising out of or relating to these TOS or any content or service obtained from or through the Site will be governed by the laws of the Commonwealth of Massachusetts, excluding its conflicts of law provisions. You agree that all such claims and disputes will be heard and resolved exclusively in the federal or state courts located in and serving Cambridge, Massachusetts, U.S.A. You consent to the personal jurisdiction of those courts over you for this purpose, and you waive and agree not to assert any objection to such proceedings in those courts (including any defense or objection of lack of proper jurisdiction or venue or inconvenience of forum).</p> + + <p><strong>Effective Date:</strong> September 26, 2012</p> + </div> +</section> -- GitLab