From 014a27a90d7ed4bf2f2c557ccfe02661a04d9655 Mon Sep 17 00:00:00 2001 From: Michael Hwang Date: Fri, 30 Dec 2016 12:55:46 -0500 Subject: [PATCH] Add dcae documentation repo Change-Id: I53662e0a1562d38775c878d6f257b50a125a998c Issue-Id: DCAEGEN2-81 Signed-off-by: Michael Hwang --- .gitignore | 3 + .gitreview | 2 +- Dockerfile | 5 + README.md | 53 +++ docs/architecture/pieces.md | 7 + docs/architecture/service-discovery.md | 15 + .../component-specification/cdap-specification.md | 163 +++++++++ .../common-specification.md | 258 ++++++++++++++ .../docker-specification.md | 246 +++++++++++++ .../generated-configuration.md | 91 +++++ .../component-specification/start-here.md | 21 ++ docs/components/component-type-cdap.md | 52 +++ docs/components/component-type-docker.md | 166 +++++++++ docs/components/data-formats.md | 72 ++++ .../dcae-cli/dmaap-connection-objects.md | 156 ++++++++ docs/components/dcae-cli/quickstart.md | 79 +++++ docs/components/dcae-cli/walkthrough.md | 391 +++++++++++++++++++++ docs/components/intro.md | 56 +++ docs/glossary.md | 19 + docs/images/IO.graffle | Bin 0 -> 2748 bytes docs/images/dmd vision.graffle | Bin 0 -> 4041 bytes docs/images/dmdvision.png | Bin 0 -> 200850 bytes docs/images/io.png | Bin 0 -> 131383 bytes docs/index.md | 14 + mkdocs.yml | 27 ++ 25 files changed, 1895 insertions(+), 1 deletion(-) create mode 100644 .gitignore create mode 100644 Dockerfile create mode 100644 README.md create mode 100644 docs/architecture/pieces.md create mode 100644 docs/architecture/service-discovery.md create mode 100644 docs/components/component-specification/cdap-specification.md create mode 100644 docs/components/component-specification/common-specification.md create mode 100644 docs/components/component-specification/docker-specification.md create mode 100644 docs/components/component-specification/generated-configuration.md create mode 100644 docs/components/component-specification/start-here.md create mode 100644 docs/components/component-type-cdap.md create mode 100644 docs/components/component-type-docker.md create mode 100644 docs/components/data-formats.md create mode 100644 docs/components/dcae-cli/dmaap-connection-objects.md create mode 100644 docs/components/dcae-cli/quickstart.md create mode 100644 docs/components/dcae-cli/walkthrough.md create mode 100644 docs/components/intro.md create mode 100644 docs/glossary.md create mode 100644 docs/images/IO.graffle create mode 100644 docs/images/dmd vision.graffle create mode 100644 docs/images/dmdvision.png create mode 100644 docs/images/io.png create mode 100644 docs/index.md create mode 100644 mkdocs.yml diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..d72f2138 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +docs/.DS_Store +*.DS_Store +site diff --git a/.gitreview b/.gitreview index 17a345b8..c33b8033 100644 --- a/.gitreview +++ b/.gitreview @@ -1,4 +1,4 @@ [gerrit] host=gerrit.onap.org port=29418 -project=dcaegen2.git +project=dcaegen2 diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..3a87fa37 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM nginx:1.11.8 + +# Copies all files into the default directory nginx serves from +# See /etc/nginx/conf.d/default.conf +COPY site /usr/share/nginx/html diff --git a/README.md b/README.md new file mode 100644 index 00000000..917c087f --- /dev/null +++ b/README.md @@ -0,0 +1,53 @@ +# dcae-platform-documentation + +Contains the public facing technical documentation for the dcae platform whose audiences include: + +* Architects +* Component developers +* Operations + +## Usage + +### Local dev + +This is a [Mkdocs](http://www.mkdocs.org/) project. To serve a local version of the documentation to view your changes: + +1. Install mkdocs and mkdocs-material: + + ``` + pip install mkdocs + pip install mkdocs-material + ``` + +2. Clone this repo +3. Run the following at the root of the cloned repo: + + ``` + mkdocs serve + ``` +4. View the page at `http://127.0.0.1:8000/` + +### Publish + +1. Generate the site: + + ``` + mkdocs build + ``` + +2. Build and push the Docker image - note the repository and group `YOUR_NEXUS_DOCKER_REGISTRY/onap` can be customized and replaced: + + ``` + docker build -t YOUR_NEXUS_DOCKER_REGISTRY/onap/dcae-platform-documentation:latest . + docker push YOUR_NEXUS_DOCKER_REGISTRY/onap/dcae-platform-documentation:latest + ``` + +3. Run the Docker container: + + ``` + export DOCKER_HOST=tcp:// + # REVIEW: Does this always pull latest? + docker pull YOUR_NEXUS_DOCKER_REGISTRY/onap/dcae-platform-documentation:latest + docker run -d --name dpd -p 80:80 YOUR_NEXUS_DOCKER_REGISTRY/onap/dcae-platform-documentation:latest + ``` + diff --git a/docs/architecture/pieces.md b/docs/architecture/pieces.md new file mode 100644 index 00000000..7787359f --- /dev/null +++ b/docs/architecture/pieces.md @@ -0,0 +1,7 @@ +# Platform technologies + +* [Cloudify](http://getcloudify.org/) +* [Consul](https://www.consul.io/) +* [Docker](https://www.docker.com/) +* [CDAP](https://cdap.io/) +* [Registrator](https://github.com/gliderlabs/registrator) diff --git a/docs/architecture/service-discovery.md b/docs/architecture/service-discovery.md new file mode 100644 index 00000000..25d69fcf --- /dev/null +++ b/docs/architecture/service-discovery.md @@ -0,0 +1,15 @@ +# Service Discovery + +Service discovery is an architecture pattern used for components (micro-services) to locate each other. The DCAE platform uses [server-side discovery](http://microservices.io/patterns/server-side-discovery.html) and is using [Consul](https://www.consul.io/) as the service registry solution. + +## Service registration + +All components are required to register with Consul in order to be discovered. There are two methods of registration: self and 3rd party. The DCAE platform uses 3rd party registration which means components don't actually make the registration calls but defers that responsibility to a platform service. + +### Implementation for Docker + +[Registrator](http://gliderlabs.com/registrator/latest/) is an open source application that is responsible for registering all components that run as Docker containers. Registrator watches the local Docker engine's activity log and will register and unregister a Docker container when the container is started and stopped. + +### Implementation for CDAP + +The CDAP broker is a REST web service that is responsible for registering all components that run as CDAP applications. diff --git a/docs/components/component-specification/cdap-specification.md b/docs/components/component-specification/cdap-specification.md new file mode 100644 index 00000000..479cc944 --- /dev/null +++ b/docs/components/component-specification/cdap-specification.md @@ -0,0 +1,163 @@ +# Component specification (CDAP) + +## Overview + +This page contains details specific to CDAP applications. + +The component specification contains the following top-level groups of information: + +* Component [Metadata](#metadata) +* [Parameters](#Parameters): the section for specifying parameters in your AppConfig, AppPreferences, and ProgramPreferences to the Designer and Policy. +* [Interfaces](#interfaces): the connections from this component to other components +* [Auxiliary details](#auxiliary) +* [List of artifacts](#artifacts) + +Note: this page does not talk about [DCAE specific requirements](/components/component-type-cdap.md) that your component must adhere to. Please see that page for discussions about DMaaP, Policy, Metrics, and more. + +## Current Limitations and TODOs + +* Currently we only support CDAP applications that have a stream. +* The integration of DMD is likely to significantly change the [Interfaces](#interfaces) section in this specification, see [DMaaP abstraction](/components/component-type-cdap.md#dmaap-abstraction). + +## Metadata + +See [Metadata](common-specification.md#metadata) + +## Parameters + +There is a `parameters` section in your component specification. This section contains three optional keys: [app_config](#appconfig), [app_preferences](#apppreferences), and [propram_preferences](#prorgram_preferences): +``` +"parameters" : { + "app_config" : [ ...], + "app_preferences" : [ ...], + "program_preferences" : [...] + // any additional keys are ignored +} +``` + +* Each section details the parameters that are a part of each of these CDAP constructs (see below). +* All such parameters will be exposed to the designer and to policy for override. +* These parameters should have default values specified by the component developer where necessary, i.e., parameters that _must_ come from the designer/policy should not have defaults. +* All of these keys are optional because not every CDAP application uses preferences and not every application uses the AppConfig. However, you should specify at least one, or else your application will have no parameters exposed to policy or to the DCAE designer, which means it would be non-configurable. +* Despite the AppConfig being optional to *specify* in the case that you have no parameters in your AppConfig, it is *required for processing* in your application. That is because the DCAE platform will place important information into your AppConfig as discussed below. + +### Parameter +We use the following definition of a _single parameter_, which is used in several places below: +``` + { + "name" : "param name", + "value" : "developer default", + "description" : "tell policy/ops what this does" + } +``` + +### AppConfig + +The `app_config` key refers to the [CDAP AppConfig](http://docs.cask.co/cdap/current/en/reference-manual/http-restful-api/configuration.html). It is expected to be a JSON: +``` +"app_config" : [ // list of JSON + param1, // see Parameter above + ... +] +``` +Unfortunately, at the time of writing, the AppConfig is a Java map of `string:string`, which means you cannot have more complex structures (than string) as any value in your AppConfig. However, there is a way to bypass this constraint: you can pass a JSON by encoding the JSON as a string. E.g., the `json.dumps()` and it's converse `loads` methods in Python: +``` +>>> import json +>>> json.dumps({"foo" : "bar"}) # This is a real JSON +'{"foo": "bar"}' # It is now a string: pass this in as your parameter value +>>> json.loads('{"foo": "bar"}') # Do the equivelent of this in your application +{u'foo': u'bar'} # ...and you'll get back a real JSON +>>> +``` + +The final AppConfig (after the designer and policy override parameter values) is passed into CDAP's AppConfig API when starting your application. + +### AppPreferences + +In addition to the CDAP AppConfig, we support [Application Preferences](http://docs.cask.co/cdap/current/en/reference-manual/http-restful-api/preferences.html#set-preferences). +The format of the `app_preferences` value is the same as the above: +``` +"app_preferences" : [ // list of JSON + param1, // see Parameter above + ... +] +``` + +The final Application Preferences JSON (after the designer and policy override parameter values) is passed into CDAP's Preferences API when starting your application. + +### ProgramPreferences + +Preferences can also be specified [per program](http://docs.cask.co/cdap/current/en/reference-manual/http-restful-api/lifecycle.html#program-lifecycle) in CDAP. This key's value is a list of JSON with the following format: +``` +"program_preferences" : [ // note: this is a list of JSON + { + "program_id" : "program name 1", // the name of this CDAP program + "program_type" : "e.g., flows", // "must be one of flows, mapreduce, schedules, spark, workflows, workers, or services", + "program_pref" : [ // list of JSON + param1, // see Parameter above + ... + ] + }, + // repeat for each program you want to pass a preferences JSON to +] +``` +Each `program_pref` JSON is passed into the CDAP API as the preference for `program_id`. + +## Interfaces +See [Interfaces](common-specification.md#interfaces) + +NOTE: for CDAP, this section is very likely to change when DMD is available. +The _future_ vision, as per [DMaaP intentionally abstracted](/components/component-type-cdap.md#dmaap-abstraction) is that you would publish your data as a series of files on HDFS, and DMD will pick them up and send them to the appropriate DMaaP feeds or directly when needed. + +## Auxiliary + +`auxiliary` contains details about CDAP specific parameters. + +Property Name | Type | Description +------------- | ---- | ----------- +streamname | string | *Required*. +artifact_name | string | +artifact_version | string | the version of your CDAP JAR artifact +namespace | string | the CDAP namespace to deploy into, default is 'default' +programs | array | contains each CDAP entity represented in the artifact +program_type | string | CDAP entity (eg "flows") +program_id | string | name of CDAP entity (eg "WhoFlow") + +Example: + +```json ++"auxiliary": { + "streamname" : "who", + "artifact_name" : "HelloWorld", + "artifact_version" : "3.4.3", + "namespace" : "hw", + "programs" : [ + {"program_type" : "flows", "program_id" : "WhoFlow"}, + {"program_type" : "services", "program_id" : "Greeting"}, + ... + ], +} +``` +The `programs` key is identical to the `program_preferences` key discussed [above](#programpreferences) except: + +* each JSON in the list does not contain `program_pref` +* this is required! You must include all of your programs in this, as it is used to start each program as well as for DCAE to perform periodic healthchecks on your application. Don't forget about your services; they are programs too. + ++ +## Artifacts + +`artifacts` contains a list of artifacts associated with this component. This is where you specify your CDAP jar. + +Property Name | Type | Description +------------- | ---- | ----------- +artifacts | JSON array | Each entry is a artifact object + +Each artifact object has: + +Property Name | Type | Description +------------- | ---- | ----------- +uri | string | *Required*. Uri to the artifact +type | string | *Required*. For CDAP, use `jar` + +This file is uploading using the CLI tool at the same time as your component specification. + diff --git a/docs/components/component-specification/common-specification.md b/docs/components/component-specification/common-specification.md new file mode 100644 index 00000000..77f2a7f0 --- /dev/null +++ b/docs/components/component-specification/common-specification.md @@ -0,0 +1,258 @@ +# Component specification (Common elements) + +This page describes component specification sections that are common (or nearly) to both Docker and CDAP. + +## Component Metadata +Metadata refers to the properties found under the `self` JSON. This group of properties are used to uniquely identify this component specification and identify the component that this specification is used to capture. The metadata section, represented under `self`, is used to uniquely identify your component among all components in the catalog. + +From the specification example above: + +``` +"self": { + "version": "1.0.0", + "name": "asimov.component.kpi_anomaly", + "description": "Classifies VNF KPI data as anomalous", + "component_type": "docker" +}, +``` + +Here is a breakdown of the schema: + +Property Name | Type | Description +------------- | ---- | ----------- +version | string | *Required*. Semantic version for this specification +name | string | *Required*. Full name of this component which is also used as this component's catalog id. The name includes a namespace that is dot-separated. +description | string | Human-readable text blurb describing the component and the components functional purpose. +component_type | string | *Required*. Identify what containerization technology this component uses: `docker` or `cdap`. + +## Interfaces +Interfaces are the JSON objects found under the `streams` key and the `services` key. These are used to describe the interfaces that the component uses and the interfaces that the component provides. The description of each interface includes the associated [data format](/components/data-formats.md). + +### Streams + * The `streams` JSON is for specifying that you produce data that can be consumed by other components, and the streams you expect to subscribe to produced by other components. These are "fire and forget" type interfaces where the publisher of a stream does not expect or parse a response from the subscriber. +* The term `stream` here is abstract and neither refers to "CDAP streams" or "DMaaP feeds": while a stream is very likely a DMaaP feed, it could be a direct stream of data being routed via HTTP too. It abstractly refers to a sequence of data leaving a publisher. +* Streams have anonymous publish/subscribe semantics, which decouples the production of information from its consumption. +* In general, components are not aware of who they are communicating with. +* Instead, components that are interested in data subscribe to the relevant stream; components that generate data publish to the relevant stream. +* There can be multiple publishers and subscribers to a stream. Streams are intended for unidirectional, streaming communication. + +Streams interfaces that implement an HTTP endpoint must support POST. + +Streams are split into: + +Property Name | Type | Description +------------- | ---- | ----------- +subscribes | JSON list | *Required*. List of all available stream interfaces that this component has that can be used for subscribing +publishes | JSON list | *Required*. List of all stream interfaces that this component will publish onto + +#### Subscribes + +From the example specification: + +```json +"streams": { + "subscribes": [{ + "format": "dcae.vnf.kpi", + "version": "1.0.0", + "route": "/data", // for CDAP this value is not used + "type": "http" + }], +... +} +``` + +This describes that `asimov.component.kpi_anomaly` exposes an HTTP endpoint called `/data` which accepts requests that have the data format of `dcae.vnf.kpi` version `1.0.0`. + +The JSON object schema used in `subscribes`: + +Property Name | Type | Description +------------- | ---- | ----------- +format | string | *Required*. Data format id of the data format that is used by this interface +version | string | *Required*. Data format version of the data format that is used by this interface +route | string | *Required*. The HTTP route that this interface listens on +type | string | *Required*. Type of stream: `http`, `message_router`, `data_router` + +##### Message router + +Message router subscribers are http clients rather than http services and performs a http `GET` call. Thus, message router subscribers description is structured like message router publishers and requires `config_key`: + +```json +"streams": { + "subscribes": [{ + "format": "dcae.some-format", + "version": "1.0.0", + "config_key": "some_format_handle", + "type": "message router" + }], +... +} +``` + +##### Data router + +Data router subscribers are http or https services that handle `PUT` requests from data router. Developers must provide the `route` or url path/endpoint that is expected to handle data router requests. This will be used to construct the delivery url needed to register your subscriber to the provisioned feed. Developers must also provide a `config_key` because there is dynamic configuration information associated with the feed that your application will need e.g. username and password. See the page on [DMaaP connection objects](../dcae-cli/dmaap-connection-objects) for more details on the configuration information. + +Example (not tied to the larger example): + +```json +"streams": { + "subscribes": [{ + "config_key": "some-sub-dr", + "format": "sandbox.platform.any", + "route": "/identity", + "type": "data_router", + "version": "0.1.0" + }], +... +} +``` + +#### Publishes + +From the example specification: + +```json +"streams": { +... + "publishes": [{ + "format": "asimov.format.integerClassification", + "version": "1.0.0", + "config_key": "prediction", + "type": "http" + }] +}, + +``` + +This describes that `asimov.component.kpi_anomaly` publishes by making POST requests to streams that support the data format `asimov.format.integerClassification` version `1.0.0`. + +The JSON object schema used in `publishes`: + +Property Name | Type | Description +------------- | ---- | ----------- +format | string | *Required*. Data format id of the data format that is used by this interface +version | string | *Required*. Data format version of the data format that is used by this interface +config_key | string | *Required*. The JSON key in the generated application configuration that will be used to pass the downstream component connection information. +type | string | *Required*. Type of stream: `http`, `message router` + +##### Data router + +Data router publishers are http clients that make `PUT` requests to data router. Developers must also provide a `config_key` because there is dynamic configuration information associated with the feed that your application will need to receive e.g. publish url, username, password. See the page on [DMaaP connection objects](../dcae-cli/dmaap-connection-objects) for more details on the configuration information. + +Example (not tied to the larger example): + +```json +"streams": { +... + "publishes": [{ + "config_key": "some-pub-dr", + "format": "sandbox.platform.any", + "type": "data_router", + "version": "0.1.0" + }] +} +``` + +### Services + +* The publish / subscribe model is a very flexible communication paradigm, but its many-to-many one-way transport is not appropriate for RPC +request / reply interactions, which are often required in a distributed system. +* Request / reply is done via a Service, which is defined by a pair of messages: one for the request and one for the reply. + +Services are split into: + +Property Name | Type | Description +------------- | ---- | ----------- +calls | JSON list | *Required*. List of all service interfaces that this component will call +provides | JSON list | *Required*. List of all service interfaces that this component exposes and provides + +#### Calls +The JSON `services/calls` is for specifying that your component relies on an HTTP(S) service---your component sends that service an HTTP request, and that service responds with an HTTP reply. +An example of this is how string matching (SM) depends on the AAI Broker. SM performs a synchronous REST call to the AAI broker, providing it the VMNAME of the VNF, and the AAI Broker responds with additional details about the VNF. This dependency is expressed via `services/calls`. In contrast, the output of string matching (the alerts it computes) is sent directly to policy as a fire-and-forget interface, so that is an example of a `stream`. + +From the example specification: + +```json +"services": { + "calls": [{ + "config_key": "vnf-db", + "request": { + "format": "dcae.vnf.meta", + "version": "1.0.0" + }, + "response": { + "format": "dcae.vnf.kpi", + "version": "1.0.0" + } + }], +... +} +``` + +This describes that `asimov.component.kpi_anomaly` will make HTTP calls to a downstream component that accepts requests of data format `dcae.vnf.meta` version `1.0.0` and is expecting the response to be `dcae.vnf.kpi` version `1.0.0`. + +The JSON object schema used in `calls`: + +Property Name | Type | Description +------------- | ---- | ----------- +request | JSON object | *Required*. Description of the expected request for this downstream interface +response | JSON object | *Required*. Description of the expected response for this downstream interface +config_key | string | *Required*. The JSON key in the generated application configuration that will be used to pass the downstream component connection information. + +The JSON object schema for both `request` and `response`: + +Property Name | Type | Description +------------- | ---- | ----------- +format | string | *Required*. Data format id of the data format that is used by this interface +version | string | *Required*. Data format version of the data format that is used by this interface + +#### Provides + +From the example specification: + +```json +"services": { +... + "provides": [{ + "route": "/score-vnf", + "request": { + "format": "dcae.vnf.meta", + "version": "1.0.0" + }, + "response": { + "format": "asimov.format.integerClassification", + "version": "1.0.0" + } + }] +}, +``` + +This describes that `asimov.component.kpi_anomaly` provides a service interface and it is exposed on the `/score-vnf` HTTP endpoint. The endpoint accepts requests that have the data format `dcae.vnf.meta` version `1.0.0` and gives back a response of `asimov.format.integerClassification` version `1.0.0`. + +The JSON object schema used in `provides`: + +Property Name | Type | Description +------------- | ---- | ----------- +request | JSON object | *Required*. Description of the expected request for this interface +response | JSON object | *Required*. Description of the expected response for this interface +route | string | *Required*. The HTTP route that this interface listens on + +The JSON object schema for both `request` and `response`: + +Property Name | Type | Description +------------- | ---- | ----------- +format | string | *Required*. Data format id of the data format that is used by this interface +version | string | *Required*. Data format version of the data format that is used by this interface + +Note, for CDAP, there is a slight variation due to the way CDAP exposes services: +``` + "provides":[ // note this is a list of JSON + { + "request":{ ...}, + "response":{ ...}, + "service_name":"name CDAP service", + "service_endpoint":"greet", // E.g the URL is /services/service_name/methods/service_endpoint + "verb":"GET" // GET, PUT, or POST + } + ] +``` diff --git a/docs/components/component-specification/docker-specification.md b/docs/components/component-specification/docker-specification.md new file mode 100644 index 00000000..2bff6c47 --- /dev/null +++ b/docs/components/component-specification/docker-specification.md @@ -0,0 +1,246 @@ +# Component specification (Docker) + +This page contains details specific to Dockerized applications. + +The component specification contains the following top-level groups of information: + +* [Component metadata](#metadata) +* [Component interfaces](#interfaces) including the associated [data formats](/components/data-formats.md) +* [Configuration parameters](#configuration-parameters) +* [Auxiliary details](#auxilary) +* [List of artifacts](#artifacts) + +## Metadata + +See [Metadata](common-specification.md#metadata) + +## Interfaces + +See [Interfaces](common-specification.md#interfaces) + +## Configuration parameters + +`parameters` is where to specify the component's application configuration parameters that are not connection information. + +Property Name | Type | Description +------------- | ---- | ----------- +parameters | JSON array | Each entry is a parameter object + +Parameter object has the following available properties: + +Property Name | Type | Description | Default +------------- | ---- | ----------- | ------- +name | string | *Required*. The property name that will be used as the key in the generated config | +value | any | *Required*. The default value for the given parameter | +description | string | *Required*. Human-readable text describing the parameter like what its for | +type | string | The required data type for the parameter | +required | boolean | An optional key that declares a parameter as required (true) or not (false) | true +constraints | array | The optional list of sequenced constraint clauses for the parameter | +entry_schema | string | The optional key that is used to declare the name of the Datatype definition for entries of set types such as the TOSCA list or map | +designer_editable | boolean | An optional key that declares a parameter to be editable by designer (true) or not (false) | true +policy_editable | boolean | An optional key that declares a parameter to be editable by policy (true) or not (false) | true +policy_schema | array | The optional list of schema definitions used for policy | + +Many of the parameter properties have been copied from TOSCA model property definitions and are to be used for service design composition and policy creation. See [section 3.5.8 *Property definition*](http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.1/TOSCA-Simple-Profile-YAML-v1.1.html). + +The property `constraints` is a list of objects where each constraint object: + +Property Name | Type | Description +------------- | ---- | ----------- +equal | | Constrains a property or parameter to a value equal to (‘=’) the value declared +greater_than | number | Constrains a property or parameter to a value greater than (‘>’) the value declared +greater_or_equal | number | Constrains a property or parameter to a value greater than or equal to (‘>=’) the value declared +less_than | number | Constrains a property or parameter to a value less than (‘<’) the value declared +less_or_equal | number | Constrains a property or parameter to a value less than or equal to (‘<=’) the value declared +valid_values | array | Constrains a property or parameter to a value that is in the list of declared values +length | number | Constrains the property or parameter to a value of a given length +min_length | number | Constrains the property or parameter to a value to a minimum length +max_length | number | Constrains the property or parameter to a value to a maximum length + +From the example specification: + +```json +"parameters": [ + { + "name": "threshold", + "value": 0.75, + "description": "Probability threshold to exceed to be anomalous" + } +] +``` + +`threshold` is the configuration parameter and will get set to 0.75 when the configuration gets generated. + +## Auxiliary + +`auxilary` contains Docker specific details like health check and port mapping information. + +Property Name | Type | Description +------------- | ---- | ----------- +healthcheck | JSON object | *Required*. Health check definition details +ports | JSON array | each array item maps a container port to the host port. See example below. + +### Health check definition + +The platform uses Consul to perform periodic health check calls. Consul provides different types of [check definitions](https://www.consul.io/docs/agent/checks.html). The platform currently supports http and docker health checks. + +#### http + +Property Name | Type | Description +------------- | ---- | ----------- +type | string | *Required*. `http` +interval | string | Interval duration in seconds i.e. `15s` +timeout | string | Timeout in seconds i.e. `1s` +endpoint | string | *Required*. GET endpoint provided by the component for Consul to call to check health + +Example: + +```json +"auxilary": { + "healthcheck": { + "type": "http", + "interval": "15s", + "timeout": "1s", + "endpoint": "/my-health" + } +} +``` + +#### docker + +Property Name | Type | Description +------------- | ---- | ----------- +type | string | *Required*. `docker` +interval | string | Interval duration in seconds i.e. `15s` +timeout | string | Timeout in seconds i.e. `1s` +script | string | *Required*. Full path of script that exists in the Docker container to be executed + +Consul will use the [Docker exec API](https://docs.docker.com/engine/api/v1.29/#tag/Exec) to periodically call your script in your container. It will examine the script result to identify whether your component is healthy. Your component is considered healthy when the script returns `0` otherwise your component is considered not healthy. + +Example: + +```json +"auxilary": { + "healthcheck": { + "type": "docker", + "script": "/app/resources/check_health.py", + "timeout": "30s", + "interval": "180s" + } +} +``` + +### Ports example + +Example: + +```json +"auxilary": { + "ports": ["8080:8000"] +} +``` + +In the example above, container port 8080 maps to host port 8000. + +## Artifacts + +`artifacts` contains a list of artifacts associated with this component. For Docker, this would be where you specify your Docker image full path including registry. + +Property Name | Type | Description +------------- | ---- | ----------- +artifacts | JSON array | Each entry is a artifact object + +Each artifact object has: + +Property Name | Type | Description +------------- | ---- | ----------- +uri | string | *Required*. Uri to the artifact +type | string | *Required*. `docker image` or `jar` + +## Example +Here is a full example of a component spec: + +```json +{ + "self": { + "version": "1.0.0", + "name": "asimov.component.kpi_anomaly", + "description": "Classifies VNF KPI data as anomalous", + "component_type": "docker" + }, + "streams": { + "subscribes": [{ + "format": "dcae.vnf.kpi", + "version": "1.0.0", + "route": "/data", + "type": "http" + }], + "publishes": [{ + "format": "asimov.format.integerClassification", + "version": "1.0.0", + "config_key": "prediction", + "type": "http" + }] + }, + "services": { + "calls": [{ + "config_key": "vnf-db", + "request": { + "format": "dcae.vnf.meta", + "version": "1.0.0" + }, + "response": { + "format": "dcae.vnf.kpi", + "version": "1.0.0" + } + }], + "provides": [{ + "route": "/score-vnf", + "request": { + "format": "dcae.vnf.meta", + "version": "1.0.0" + }, + "response": { + "format": "asimov.format.integerClassification", + "version": "1.0.0" + } + }] + }, + "parameters": [ + { + "name": "threshold", + "value": 0.75, + "description": "Probability threshold to exceed to be anomalous" + } + ], + "auxilary": { + "healthcheck": { + "type": "http", + "interval": "15s", + "timeout": "1s", + "endpoint": "/my-health" + } + }, + "artifacts": [{ + "uri": "YOUR_NEXUS_DOCKER_REGISTRY/kpi_anomaly:1.0.0", + "type": "docker image" + }] +} +``` + +## Generate application configuration + +The above example `asimov.component.kpi_anomaly` will get transformed into the following application configuration JSON that is fully resolved and provided at runtime by calling the config binding service: + +```json +{ + "streams_publishes": { + "prediction": ["10.100.1.100:32567"] + }, + "streams_subscribes": {}, + "threshold": 0.75, + "services_calls": { + "vnf-db": ["10.100.1.101:32890"] + } +} +``` diff --git a/docs/components/component-specification/generated-configuration.md b/docs/components/component-specification/generated-configuration.md new file mode 100644 index 00000000..258358de --- /dev/null +++ b/docs/components/component-specification/generated-configuration.md @@ -0,0 +1,91 @@ +# Generated configuration + +The DCAE platform relies on the component specification to generate the component's application configuration JSON at deployment time. The component developer should expect to use this configuration JSON in their application to provision themselves. + +Pro-tip: As you build your component specification, you can use the [dcae-cli `dev` command](../dcae-cli/walkthrough/#dev) to view what the resulting application configuration will look like. + +## Streams and services + +For both Docker and CDAP, when your component is deployed, any `streams` and `services/calls` you specified will be injected into your configuration under the following well known structure. +Your component is required to parse this information if you have any connectivity to DMaaP or are calling another DCAE component. + +More details about the DMaaP connection objects are found [here](../dcae-cli/dmaap-connection-objects/). + +This is best served with an example. + +The following component spec snippet (from String Matching): +``` +"streams":{ + "subscribes": [{ + "format": "VES_specification", + "version": "4.27.2", + "type": "message_router", + "config_key" : "mr_input" + }], + "publishes": [{ + "format": "VES_specification", + "version": "4.27.2", + "config_key": "mr_output", + "type": "message_router" + }] + }, + "services":{ + "calls": [{ + "config_key" : "aai_broker_handle", + "verb": "GET", + "request": { + "format": "get_with_query_params", + "version": "1.0.0" + }, + "response": { + "format": "aai_broker_response", + "version": "3.0.0" + } + }], + "provides": [] + }, +``` + +Will turn into the following top level keys in your configuration (for CDAP, this will be under AppConfig) + +``` + "streams_publishes":{ + "mr_output":{ // notice the config key above + "aaf_password":"XXX", + "type":"message_router", + "dmaap_info":{ + "client_role": null, + "client_id": null, + "location": null, + "topic_url":"XXX" + }, + "aaf_username":"XXX" + } + }, + "streams_subscribes":{ + "mr_input":{ // notice the config key above + "aaf_password":"XXX", + "type":"message_router", + "dmaap_info":{ + "client_role": null, + "client_id": null, + "location": null, + "topic_url":"XXX" + }, + "aaf_username":"XXX" + } + }, + "services_calls":{ + "aai_broker_handle":[ // notice the config key above + "SOME_IP:32768" // based on deployment time, just an example + ] + } +``` +These keys will always be populated regardless of whether they are empty. So the minimal you will get, in the case of a component that provides an HTTP service and does not call any services and has no streams, is: +``` + "streams_publishes":{}, + "streams_subscribes":{}, + "services_calls":{} +``` + +Thus your component should expect these well-known top level keys. diff --git a/docs/components/component-specification/start-here.md b/docs/components/component-specification/start-here.md new file mode 100644 index 00000000..3816dd06 --- /dev/null +++ b/docs/components/component-specification/start-here.md @@ -0,0 +1,21 @@ +# Component specification + +Every component that onboards onto the DCAE platform requires a component specification. The component specification is a JSON artifact that fully describes your components. The format of the component specification is standardized for CDAP applications and Dockerized applications and is validated using [a JSON schema](ONAP URL TBD). + +The component specification is used by: + +* Design - TOSCA models are generated from the component specification so that your component can be used by designers to compose new DCAE services in SDC. +* Policy - TOSCA models are generated from the component specification so that operations can create policy models used to dynamically configure your component. +* Runtime platform - Your component's application configuration (JSON) is generated from the component specification and will be provided to your component at runtime. + +## dcae-cli + +Use the [`dcae-cli`](../dcae-cli/quickstart) tool to manage your component specification and to test your components with it. + +The dcae-cli can also be used to view component specifications that have already been added and published. Please check out the [shared catalog](../dcae-cli/walkthrough/#shared-catalog) for examples for both Docker and CDAP. + +## Next + +If you are building a CDAP application, review the [component specification details for CDAP](cdap-specification.md). + +If you are building a Dockerized application, review the [component specification details for Docker](docker-specification.md). diff --git a/docs/components/component-type-cdap.md b/docs/components/component-type-cdap.md new file mode 100644 index 00000000..253dd2f8 --- /dev/null +++ b/docs/components/component-type-cdap.md @@ -0,0 +1,52 @@ +# CDAP Component Requirements/Information + +This page contains information about CDAP app development in DCAE. + +## Uploading your Jar File +The DCAE component specification has you input your `jar_url`, the URL on Nexus to your Jar file. This DCAE controller deploys out of Nexus. +You can upload your jar(s) using the following command, replacing NAME: +``` +curl -v --user 'user:password' http://YOUR_NEXUS_RAW_REPO/NAME.jar --upload-file NAME.jar +``` +During the CLI Tool Usage, in your spec, supply `http://YOUR_NEXUS_RAW_REPO/NAME.jar` as the JAR artifact URL. + +## Policy Reconfiguration +We support reconfiguration of both AppConfig and AppPreferences. + +For AppConfig, we support CDAPs "update" API to [reconfigure an application](http://docs.cask.co/cdap/current/en/reference-manual/http-restful-api/lifecycle.html\#update-an-application}}). + +For AppPreferences, we: + +1. Stop your programs + +2. Set the new preferences + +3. Start your programs + +At the time of writing, there is no way to update a CDAP application's AppConfig or AppPreferences, without a restart, *and notify* the application. The latter is a future promised feature by CASK---the ability to update preferences and inform the application that something is changed (so it repulls). +As CDAP currently stands however, given the above, if you are building a stateful application, you must persist your state often (e.g., to a CDAP dataset), as you may be restarted at any time with an updated configuration, or stopped&started at any time with updated preferences. + +## Metrics +Metrics are pulled from your CDAP application on a periodic basis and (in the future: pushed to a central DCAE metric store, currently: just dropped). +For this to be useful, your application should provide [metrics](http://docs.cask.co/cdap/current/en/admin-manual/operations/metrics.html). +While nothing in the DCAE runtime enforces that your CDAP application tracks metrics, your metrics (or lack thereof) will be visible in the DCAE dashboard and to operations. + +## Future DMaaP abstraction +Shown below is our _vision_ for how DMaaP is abstracted from component developers: + +![Screenshot](../images/dmdvision.png) + +Today, this is a vision; it is not in place. +Today, each CDAP app is built with built in assumptions about where they are getting their data from. +Some CDAP apps have the built in assumption of a UEB feed. Some MR. Some DR. +This becomes very difficult to orchestrate when each app in the catalog has built in data assumptions. + +The goal of this vision is to _decouple_ the data plane from the analytics plane. +Analytics should be agnostic to _how_ they are receiving their data beyond "filesystem" or "HTTP". +Analytics developers shouldn't have to worry about the data plane, that should be taken care of by the platform. +They should be spending their time on the problem at hand---the analytic. + +This also allows each CDAP application to have a standard set of interfaces: HTTP and HDFS: +![Screenshot](../images/io.png) + + diff --git a/docs/components/component-type-docker.md b/docs/components/component-type-docker.md new file mode 100644 index 00000000..e9f014d8 --- /dev/null +++ b/docs/components/component-type-docker.md @@ -0,0 +1,166 @@ +# Component Requirements: Docker + +## Overview + +Component developers are required to provide artifacts for the platform to be able to deploy your component including: + +* [Component specification](component-specification/docker-specification) +* [Data formats](data-formats) +* [Auxiliary component specification](component-specification/docker-specification#auxiliary) +* [Docker image](#docker-on-the-platform) + +In addition, components will have to be enhanced to be compliant with the DCAE platform in order to correctly be deployed and be managed. This page will discuss the changes which are grouped into the following categories: + +* [Service registration](#service-registration) +* [Configuration management on the new platform](#configuration) +* [Operational concerns](#operational-concerns) + +To help component developers to make and to test the changes needed to have components run on the platform, a command-line tool called [`dcae-cli`](dcae-cli/quickstart) is provided by the platform team. + +## Service registration + +Every [Docker component is registered](../architecture/service-discovery) with the platform's service discovery layer. Docker components are not expected to make the explicit make registration calls because that is done by through a platform 3rd party registration service. A couple things are needed from component developers in order for this registration to occur successfully: + +1. Docker images must be created from a Dockerfile that has an [`EXPOSE`](https://docs.docker.com/engine/reference/builder/#/expose) instruction. This applies to components that listen on a port. +2. Component healthcheck details must be provided in the Docker auxiliary component specification + +### Expose port + +Components that listen on a specific port must explicitly declare in their Dockerfile that port using the `EXPOSE` instruction before building the image. +Warning! At the current time, you can not expose multiple ports in your Dockerfile or registration *will not work* correctly. + +### Health check + +Component developers are required to provide a way for the platform to periodically check the health of their running components. The platform uses Consul to perform these periodic calls. Consul provides different types of [check definitions](https://www.consul.io/docs/agent/checks.html). The details of the definition used by your component is to be provided through the [Docker auxiliary specification](component-specification/docker-specification#auxiliary). + +## Configuration + +The component's application configuration is generated from the submitted component specification into a JSON representation. The DCAE platform will provide the configuration JSON by making it available on a remote HTTP service. Components are required to pull their configuration JSON at application startup. The configuration JSON is stored under the components uniquely generated name which is provided by the environment variable `HOSTNAME`. + +You can see more details on the generated application configuration [here](component-specification/docker-specification#generate-application-configuration). + +### Config binding service +The config binding service is a platform HTTP service that is responsible for providing clients with a fully resolved configuration JSON at runtime. Components should make an HTTP GET on: + +``` +:/service_component/NAME +``` +For Docker components, NAME should be set to `HOSTNAME`, which was provided as an ENV variable inside of your container. + +The binding service integrates with the streams and services section of your component specification. For example, if you specify that you call a service: +``` +"services": { + "calls": [{ + "config_key": "vnf-db", + "request": { + "format": "dcae.vnf.meta", + "version": "1.0.0" + }, + "response": { + "format": "dcae.vnf.kpi", + "version": "1.0.0" + } + }], +... +} +``` +Then the config binding service will find all available IP addresses of services meeting your needs, and provide them to you under your `config_key`: +``` +// your configuration +{ + "vbf-db" : // see above + [IP:Port1, IP:Port2,…] // all of these meet your needs, choose one. +} +``` +Regarding `:`, there is DNS work going on to make this resolvable in a convenient way inside of your container. +However, currently you will be given a name as an ENV variable, `CONFIG_BINDING_SERVICE`, and you will need to query Consul's service discovery to get +`:`. + +### Policy Reconfiguration + +*Details coming soon* + +### DMaaP + +Components can be publishers or subscribers to either message router topics or data router feeds. This is defined in the component specification under the `streams` section where you can specify whether your component is expected to subscribe or to publish to a [message router topic](component-specification/common-specification/#message-router) or to a [data router feed](component-specification/common-specification/#data-router). Given a composition with components that use DMaaP, the platform will provision the topic or feed and provide the necessary [connection details](dcae-cli/dmaap-connection-objects) at runtime for each DMaaP dependent component. These connection details will be provided through your application's [generated configuration](component-specification/generated-configuration). + +In order to test DMaaP connections in onboarding, the developer (currently) must provision all test topics and feeds manually and provide the [dcae-cli with the connection details](dcae-cli/walkthrough/#dmaap-testing) when deploying your application. + +## Docker on the platform + +### Images + +Docker images must be pushed to the environment specific Nexus repository. This requires tagging your build with the full name of you image which includes the Nexus repository name. + +Use the Docker command-line to [tag](https://docs.docker.com/engine/reference/commandline/tag/) your Docker image where the *target image* must contain the registry host name and port. + +``` +docker login YOUR_NEXUS_DOCKER_REGISTRY +``` + +Tag your image: + +``` +docker tag laika:0.4.0 YOUR_NEXUS_DOCKER_REGISTRY/laika:0.4.0 +``` + +Or build and tag: + +``` +docker build -t YOUR_NEXUS_DOCKER_REGISTRY/laika:0.4.0 . +``` + +After tagging, upload your image to the remote registry using the Docker [push command](https://docs.docker.com/engine/reference/commandline/push/). Note that the registry may require a login. Use the Docker [login command](https://docs.docker.com/engine/reference/commandline/login/) before pushing in that case. + +``` +docker push YOUR_NEXUS_DOCKER_REGISTRY/laika:0.4.0 +``` + +*NOTE* Replace `laika` with your application's name. Replace the `0.4.0` version with your application's version. + +### Ports + +On the DCAE platform, Docker components are run with the `--publish-all` or `-P` argument. This means the Docker container for your component will be listening on a random port and that random port will be mapped to the port [you exposed](#service-registration). + +### Envs + +The platform provides a set of environment variables into each Docker container: + +Name | Type | Description +---- | ---- | ----------- +`HOSTNAME` | string | Unique name of the component instance that is generated +`CONSUL_HOST` | string | Hostname of the platform's Consul instance +`CONFIG_BINDING_SERVICE` | string | Hostname of the platform's config binding service instance +`DOCKER_HOST` | string | Host of the target platform Docker host to run the container on + +## Operational concerns + +### Logging + +Currently the platform uses the default `json-file` logging driver for Docker. For onboarding testing, component developers can access their logs from their Docker containers either by running their component using the `--attached` flag or by using the `docker logs` command. The requirement is that applications must write to stdout and/or stderr. + +To use the `docker logs` command for your deployed running Docker container, + +1. You must have Docker installed on your local machine +2. Have the generated name of your component. This is generated for you when you execute `dcae_cli component dev` or `dcae_cli component run`. +3. Find the target Docker host using the `dcae_cli profiles show` command: + +``` +$ dcae_cli profiles show YOUR_PROFILE_NAME +{ + ... + "docker_host": "YOUR_DOCKER_HOST:2376" +} +``` + +4. Set your Docker client to point to the target Docker host: + +``` +$ export DOCKER_HOST="tcp://YOUR_DOCKER_HOST:2376" +``` + +5. Use the `docker logs` command: + +``` +$ docker logs +``` diff --git a/docs/components/data-formats.md b/docs/components/data-formats.md new file mode 100644 index 00000000..62681154 --- /dev/null +++ b/docs/components/data-formats.md @@ -0,0 +1,72 @@ +# Data Formats + +Because the DCAE designer composes your component with others at service design time, in most cases you do not know what specific component(s) your component will send data to during runtime. +Thus, it is vital that DCAE has a language of describing the data passed between components, so that it is known which components are composable with others. +Data formats are descriptions of data---they are the data contract between your component and other components. +You need to describe the available outputs and assumed inputs of your components as data formats. +These data descriptions are onboarded into ASDC, and each receives a UUID. +If component X outputs data format DF-Y, and another component Z specifies DF-Y as their input data format, then X is said to be _composable_ with that component. +The data formats are referenced in the component specifications by the data format's id and version. +The vision is to have a repository of shared data formats that developers and teams can re-use and also provide them the means to extend and create new custom data formats. + +# Meta Schema Definition + +The current "Meta Schema" implementation defines how data formats can be written. It requires the name of the data format entry, the data format entry version and allows a description under "self". The meta schema version as "dataformatversion" must be specified. Then the schema is described. There are four types of schema descriptions - jsonschema for inline JSON Schema definitions, delimitedschema for JSON schema descriptions of delimited data, unstructured for unstructured text, and reference that allows a pointer to another artifact for a schema. The reference allows for XML schema, but can be used for JSON, Delimited Format, and Unstructured formats as well. + +The current implementation is defined by the "format_schema" at the link below. There are descriptions of each entity: + +[schema](ONAP URL TBD) + +#TCA Example + +TCA Input - Common Event Format by referemce + +First the full json schema description of the Commen Event Format would be loaded with a name of "Common Event Format" and the current version of "25.0.0". + +Then the data format description is loaded by the example at this link: + +[tcainput](ONAP URL TBD) + +TCA Output JSON inline example: (TBD Types ok?) + +[tcaoutput](ONAP URL TBD) + +#CUDA Example + +CUDA Simple JSON Example: + +[simplejson](ONAP URL TBD) + +CUDA Nested JSON Example: + +[nestedjson](ONAP URL TBD) + +CUDA Unstructured Example: + +[unstructuredtext](ONAP URL TBD) + +#A possible example of a delimited schema + +``` +{ + "self": { + "name": "Delimited Format Example", + "version": "1.0.0", + "description": "Delimited format example just for testing" + + }, + "dataformatversion": "1.0.0", + "delimitedschema": { + "delimiter": "|", + "fields": [{ + "name": "field1", + "description": "test field1", + "fieldtype": "string" + }, { + "name": "field2", + "description": "test field2", + "fieldtype": "boolean" + }] + } +} +``` diff --git a/docs/components/dcae-cli/dmaap-connection-objects.md b/docs/components/dcae-cli/dmaap-connection-objects.md new file mode 100644 index 00000000..cf03ccec --- /dev/null +++ b/docs/components/dcae-cli/dmaap-connection-objects.md @@ -0,0 +1,156 @@ +# DMaaP connection objects + +DMaaP connection objects are JSON objects that: + +1. Components should expect at runtime in their application configuration and is to be used to connect to the appropriate DMaaP feed or topic. +2. Developers must provide through the command-line argument `--dmaap-file` to test their component with manually provisioned feeds and topics. + +This page is a reference to the specific structure that each type of DMaaP stream requires. + +Note for #1 that components should expect the entire object with all properties at runtime where the default will be `null` unless specified otherwise. + +Note for #2 that developers are not required to provide the entire object. The required properties will be labeled with "*required as input*". + +## Message router + +Publishers and subscribers both have the same JSON object structure. Here's an example: + +```json +{ + "type": "message_router", + "aaf_username": "some-user", + "aaf_password": "some-password", + "dmaap_info": { + "client_role": "com.dcae.member", + "client_id": "1500462518108", + "location": "mtc00", + "topic_url": "https://we-are-message-router.us:3905/events/some-topic" + } +} +``` + +At the top-level: + +Property Name | Type | Description +------------- | ---- | ----------- +type | string | *Required as input*. Must be `message_router` for message router topics +aaf_username | string | AAF username message router clients use to authenticate with secure topics +aaf_password | string | AAF password message router clients use to authenticate with secure topics +dmaap_info | JSON object | *Required as input*. Contains the topic connection details + +The `dmaap_info` object contains: + +Property Name | Type | Description +------------- | ---- | ----------- +client_role | string | AAF client role that's requesting publish or subscribe access to the topic +client_id | string | Client id for given AAF client +location | string | DCAE location for the publisher or subscriber, used to set up routing +topic_url | string | *Required as input*. URL for accessing the topic to publish or receive events + +Here's an example of the minimal JSON that must be provided as an input: + +```json +{ + "type": "message_router", + "dmaap_info": { + "topic_url": "https://we-are-message-router.us:3905/events/some-topic" + } +} +``` + +## Data router + +### Publisher + +Here's an example of what the JSON object connection for data router publisher looks like: + +```json +{ + "type": "data_router", + "dmaap_info": { + "location": "mtc00", + "publish_url": "https://we-are-data-router.us/feed/xyz", + "log_url": "https://we-are-data-router.us/feed/xyz/logs", + "username": "some-user", + "password": "some-password", + "publisher_id": "123456" + } +} +``` + +At the top-level: + +Property Name | Type | Description +------------- | ---- | ----------- +type | string | *Required as input*. Must be `data_router` for data router feeds +dmaap_info | JSON object | *Required as input*. Contains the topic connection details + +The `dmaap_info` object contains: + +Property Name | Type | Description +------------- | ---- | ----------- +location | string | DCAE location for the publisher, used to set up routing +publish_url | string | *Required as input*. URL to which the publisher makes Data Router publish requests +log_url | string | URL from which log data for the feed can be obtained +username | string | Username the publisher uses to authenticate to Data Router +password | string | Password the publisher uses to authenticate to Data Router +publisher_id | string | Publisher id in Data Router + +Here's an example of the minimal JSON that must be provided as an input: + +```json +{ + "type": "data_router", + "dmaap_info": { + "publish_url": "https://we-are-data-router.us/feed/xyz" + } +} +``` + +### Subscriber + +Here's an example of what the JSON object connection for data router subscriber looks like: + +```json +{ + "type": "data_router", + "dmaap_info": { + "location": "mtc00", + "delivery_url": "https://my-subscriber-app.dcae:8080/target-path", + "username": "some-user", + "password": "some-password", + "subscriber_id": "789012" + } +} +``` + +At the top-level: + +Property Name | Type | Description +------------- | ---- | ----------- +type | string | *Required as input*. Must be `data_router` for data router feeds +dmaap_info | JSON object | *Required as input*. Contains the topic connection details + +The `dmaap_info` object contains: + +Property Name | Type | Description +------------- | ---- | ----------- +location | string | DCAE location for the publisher, used to set up routing +delivery_url | string | URL to which the Data Router should deliver files +username | string | Username Data Router uses to authenticate to the subscriber when delivering files +password | string | Password Data Router uses to authenticate to the subscriber when delivering files +subscriber_id | string | Subscriber id in Data Router + +Here's an example of the minimal JSON that must be provided as an input: + +```json +{ + "type": "data_router", + "dmaap_info": { + } +} +``` + +Developers are recommended to use `username` and `password` since this is the recommended security practice. + +Note that the dcae-cli will construct the `delivery_url` when deploying the component since this can only be known at deployment time. diff --git a/docs/components/dcae-cli/quickstart.md b/docs/components/dcae-cli/quickstart.md new file mode 100644 index 00000000..5644b4fe --- /dev/null +++ b/docs/components/dcae-cli/quickstart.md @@ -0,0 +1,79 @@ +# Quickstart + +The `dcae-cli` is a Python command-line tool built to aide component developers with the development and testing of their micro-service component for the DCAE platform. It will help developers do functional and integration testing of their components locally and on remote environments as simple as possible. + +The tool requires the component developers to create a valid component specification for their component which is used by the tool. This same component specification will be published in the [onboarding catalog](../../glossary#onboarding-catalog) at the end of development and testing. + +The git repository can be found [here](ONAP LINK TBD) + +## Pre-requisite + +### For Docker + +There are two options for development with Docker: developing locally on your machine which requires Docker to be installed and developing remotely by deploying onto remote infrastructure. + +#### For local development + +* You must install [Docker engine](https://docs.docker.com/engine/installation/) locally on your machine. +* You must know the *external ip* of where the Docker engine is running. The external ip is needed so that service discovery will wire up correctly. + - For OSX users, this means making sure the VirtualBox VM that is running your Docker engine has a bridged adapter and getting the ip of that adapter. + +#### For remote development + +You need access to a remote host with Docker engine installed with remote API access. You must have the associated connection information: domain name or IP and port (should be either 2375 or 2376). This information should be set in [an active profile](walkthrough.md#setting-profile). + +### For CDAP + +TBD + +## Install + +``` +pip install --extra-index-url https://YOUR_NEXUS_PYPI_SERVER/simple dcae-cli +``` + +To do an upgrade, use the `--upgrade` flag. + +### Configuration + +When you run the tool for the first time, the tool will create a [configuration directory](http://click.pocoo.org/5/api/#click.get_app_dir) and generate a configuration file. + +Configuration is first sourced from an remote server that the platform team manages. This is overlaid with configuration details that you will be prompted to input particularly your AT&T UID. + +#### `--reinit` + +Configuration can be re-initialized or reset. There is a `--reinit` flag that is to be used to re-initialize your configuration and your environment profiles. + +To re-initialize: + +``` +$ dcae_cli --reinit +``` + +### Verify + +Verify that its installed: + +``` +$ dcae_cli --help +Usage: dcae_cli [OPTIONS] COMMAND [ARGS]... + +Options: + -v, --verbose Prints INFO-level logs to screen. + --reinit Re-initialize dcae-cli configuration + --version Show the version and exit. + --help Show this message and exit. + +Commands: + catalog + component + data_format + profiles +``` +## Version + +You can verify the version of the dcae-cli with the following command: + +``` +$ dcae_cli --version +``` diff --git a/docs/components/dcae-cli/walkthrough.md b/docs/components/dcae-cli/walkthrough.md new file mode 100644 index 00000000..e646c435 --- /dev/null +++ b/docs/components/dcae-cli/walkthrough.md @@ -0,0 +1,391 @@ +# Walk-through + +The goal of this quickstart is to provide an overview of the functionalities of the `dcae-cli` and walk you through the capabilities: + +* [Adding data formats](#adding-data-formats) +* [Adding component](#adding-component) +* [Setting profile](#setting-profile) +* [Development and testing](#development-and-testing) +* [Publishing component](#publishing-component) +* [Shared catalog](#shared-catalog) + +This walk-through uses example projects: + +* [laika](ONAP URL TBD) +* [CDAP examples](ONAP URL TBD) + +## Adding data formats + +`data_format` is the sub-command that is used to execute operations that manage [data formats](../data-formats.md). + +``` +$ dcae_cli data_format --help +Usage: dcae_cli data_format [OPTIONS] COMMAND [ARGS]... + +Options: + --help Show this message and exit. + +Commands: + add Tracks a data format file SPECIFICATION... + list Lists all your data formats + publish Publishes data format to make publicly... + show Provides more information about FORMAT +``` + +Your data format must be in the catalog in order to use in the component specification. Check the catalog using the `data_format list` sub-command: + +``` +$ dcae_cli data_format list + +Data formats for mh677g ++------+---------+-------------+--------+----------+ +| Name | Version | Description | Status | Modified | ++------+---------+-------------+--------+----------+ +| | | | | | ++------+---------+-------------+--------+----------+ +``` + +The fields `name`, `version`, `description` are referenced from the data format JSON from the `self` JSON. + +There are no data formats so you must add the data formats that your component specification references. Use the `data_format add` sub-command: + +Here's an example command: + +``` +dcae_cli data_format add health.json +``` + +Verify that it was added: + +``` +$ dcae_cli data_format list + +Data formats for mh677g ++-------------------------------+---------+-------------------------------------------+--------+----------------------------+ +| Name | Version | Description | Status | Modified | ++-------------------------------+---------+-------------------------------------------+--------+----------------------------+ +| sandbox.platform.laika.health | 0.1.0 | Data format used for the /health endpoint | staged | 2017-05-23 04:02:38.952799 | ++-------------------------------+---------+-------------------------------------------+--------+----------------------------+ +``` + +Go ahead and add other referenced data formats. + +## Adding component + +`component` is the sub-command that is used to work with operations for components: + +``` +$ dcae_cli component --help +Usage: dcae_cli component [OPTIONS] COMMAND [ARGS]... + +Options: + --help Show this message and exit. + +Commands: + add + dev Set up component in development for... + list Lists components in the public catalog. + publish Pushes COMPONENT to the public catalog + run Runs the latest version of COMPONENT. + show Provides more information about COMPONENT + undeploy Undeploys the latest version of COMPONENT. +``` + +Your component must be accessible from the catalog in order for it to be used. Check the catalog using the `component list` sub-command: + +``` +$ dcae_cli component list +Active profile: solutioning + ++------+---------+------+-------------+--------+----------+-----------+ +| Name | Version | Type | Description | Status | Modified | #Deployed | ++------+---------+------+-------------+--------+----------+-----------+ +| | | | | | | | ++------+---------+------+-------------+--------+----------+-----------+ + +Use the "--deployed" option to see more details on deployments +``` + +The fields `name`, `version`, `type`, `description` are referenced from the component specification's `self` JSON. + +There are no components so you must add your component. Use the `component add` sub-command. The command is the same for docker and cdap components: + +``` +$ dcae_cli component add --help +Usage: dcae_cli component add [OPTIONS] SPECIFICATION + +Options: + --update Updates a locally added component if it has not been already + pushed + --help Show this message and exit. +``` + +*Note* use the `--update` flag to replace existing staged instances. + +The `component dev` sub-command can be useful in validating and experimenting when crafting your component specification. See details about `dev` under [Development and testing](#development-and-testing). + +Once we add the components laika and helloworld, let's verify that they got added ok: + +``` +$ dcae_cli component list +Active profile: solutioning + ++-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+ +| Name | Version | Type | Description | Status | Modified | #Deployed | ++-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+ +| cdap.helloworld.endnode | 0.8.0 | cdap | cdap test component | staged | 2017-05-23 04:14:35.588075 | 0 | +| sandbox.platform.laika | 0.5.0 | docker | Web service used as a stand-alone test DCAE service compone.. | staged | 2017-05-23 04:07:44.065610 | 0 | ++-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+ + +Use the "--deployed" option to see more details on deployments +``` + +## Setting profile + +`profile` is the sub-command that is used to manage profiles. These profiles contain environment variables used to connect to different environments. This is used in the running and deployment of your component using the `dcae_cli component run` command. The `dcae-cli` ships with profiles for `solutioning` and `rework`. + +``` +$ dcae_cli profiles --help +Usage: dcae_cli profiles [OPTIONS] COMMAND [ARGS]... + +Options: + --help Show this message and exit. + +Commands: + activate Sets profile NAME as the active profile + create Creates a new profile NAME initialized with... + delete Deletes profile NAME + list Lists available profiles + set Updates profile NAME such that KEY=VALUE + show Prints the profile dictionary +``` + +To see what variables a profile contains, you can use the `show` command, as in `dcae_cli profiles show PROFILE_NAME` + +Use the `create` sub-command to create your own profile and assign new values using the `set` command. Afterwards you will need to `activate` the profile you wish to use. First take a look at which profile is active: + +``` +$ dcae_cli profiles list + rework +* solutioning +``` + +The active profile is `solutioning` so to activate *rework* to use `rework`: + +``` +$ dcae_cli profiles activate rework +``` + +Check + +``` +$ dcae_cli profiles list +* rework + solutioning +``` + +## Development and testing + +The following operations under the sub-command `component` are aimed to help developers with testing: + +* `run` +* `undeploy` +* `dev` + +### `run` + +The `run` operation is to be used for running your application in its container remotely on the activated environment. Docker containers have the additional option to run locally on your development machine. + +In order to run your application, you must have added your data formats and your component to your catalog. + +Let's verify that your component is in the catalog: + +``` +$ dcae_cli component list +Active profile: solutioning + ++-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+ +| Name | Version | Type | Description | Status | Modified | #Deployed | ++-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+ +| cdap.helloworld.endnode | 0.8.0 | cdap | cdap test component | staged | 2017-05-23 04:14:35.588075 | 0 | +| sandbox.platform.laika | 0.5.0 | docker | Web service used as a stand-alone test DCAE service compone.. | staged | 2017-05-23 04:07:44.065610 | 0 | ++-------------------------+---------+--------+---------------------------------------------------------------+--------+----------------------------+-----------+ + +Use the "--deployed" option to see more details on deployments +``` + +#### Docker + +**NOTE** Make sure your Docker image has been uploaded to the shared registry. + +For Docker containers, you can run either attached or unattached. Attached means that the dcae-cli tool will launch the container and not terminate. The dcae-cli while attached will stream in the logs of the Docker container. Doing a Ctrl-C will terminate the run session which means undeploy your container and force a clean up automatically. + +#### CDAP + +**NOTE** Make sure your CDAP jar has been uploaded to Nexus. + +TODO + +### `undeploy` + +The `undeploy` operation is to be used to undeploy any instances of a specified component, version that you have deployed. This includes cleaning up of configuration. + +Let's undeploy `sandbox.platform.laika` that was deployed from the previous section: + +``` +$ dcae_cli component undeploy sandbox.platform.laika:0.5.0 +DCAE.Undeploy | WARNING | Undeploying components: 1 +DCAE.Undeploy | WARNING | Undeployed components: 1 +``` + +### `dev` + +The `dev` operation is a convenient operation that can be useful for the development and testing of your component. It can be used to: + +* Help validate your experimental component specification before uploading to the catalog +* Generate the application configuration from the component specification and make it available in a test environment. This allows you to view your resulting configuration for local development and to help debug potential related issues. + +Let's say you have a component specification called `component-spec.json`: + +``` +$ dcae_cli component dev component-spec.json +Ready for component development + +Setup these environment varibles. Run "source env_solutioning": + +export DOCKER_HOST=SOME_DOCKER_HOST:2376 +export SERVICE_CHECK_INTERVAL=15s +export CONFIG_BINDING_SERVICE=config_binding_service +export HOSTNAME=mh677g.95740959-63d2-492a-b964-62a6dce2591d.0-6-0.sandbox-platform-laika +export CONSUL_HOST=SOME_CONSUL_HOST +export CDAP_BROKER=cdap_broker +export SERVICE_NAME=mh677g.95740959-63d2-492a-b964-62a6dce2591d.0-6-0.sandbox-platform-laika +export SERVICE_CHECK_TIMEOUT=1s +export SERVICE_CHECK_HTTP=/health + +Press any key to stop and to clean up +``` + +Your application configuration is now available under the name `mh677g.95740959-63d2-492a-b964-62a6dce2591d.0-6-0.sandbox-platform-laika`. + +To view the resulting configuration, you can `curl` a request to the config binding service or programmatically fetch your configuration within your application. + +You need to first query Consul to get the ip and port of config binding service: + +``` +curl http://$CONSUL_HOST:8500/v1/catalog/service/$CONFIG_BINDING_SERVICE +[ + { + "ID": "983d5c94-c508-4a8a-9be3-5912bd09786b", + "Node": "realsolcnsl00", + "Address": "10.226.1.22", + "TaggedAddresses": { + "lan": "10.226.1.22", + "wan": "10.226.1.22" + }, + "NodeMeta": {}, + "ServiceID": "5f371f295c90:config_binding_service:10000", + "ServiceName": "config_binding_service", + "ServiceTags": [], + "ServiceAddress": "XXXX", + "ServicePort": 32770, + "ServiceEnableTagOverride": false, + "CreateIndex": 487, + "ModifyIndex": 487 + } +] +``` + +### DMaaP testing + +Currently, the dcae-cli does not have the capability of provisioning topics. In order to do testing with message router topics or with data router feeds, the developer must provision the topic or the feed manually and provide the connection details in the form of a JSON in a file to the dcae-cli. This file is to be passed in when using the `run` and `dev` commands with the option `--dmaap-file`. + +The structure of the DMaaP JSON is an object of config keys to matching topic or feed connection details. Config keys are the `config_key` values specified in your component specification streams section where the streams must be type message router or data router. Information about the associated connection details can be found on [this page](dmaap-connection-objects.md). Please check it out. + +For example, if you have a component specification that has the following streams entry: + +```json +"streams": { + "publishes": [{ + "format": "ves", + "version": "1.0.0", + "type": "message router", + "config_key": "ves_connection" + }] +} +``` + +Then to deploy and to run your component, you must use the `--dmaap-file` command and pass in a JSON that looks like: + +```json +{ + "ves_connection": { + "type": "message_router", + "dmaap_info": { + "topic_url": "https://we-are-message-router.us:3905/events/some-topic" + } + } +} +``` + +The provided DMaaP JSON is used to simulate the output of provisioning and will be used to merge with the generated application configuration at runtime. + +Your final application config will look like: + +```json +{ + "streams_publishes": { + "ves_connection": { + "type": "message_router", + "dmaap_info": { + "topic_url": "https://we-are-message-router.us:3905/events/some-topic" + } + } + } +} +``` + +#### Data router subscribers + +Note for data router subscriber testing, you will need the delivery url in order to provision the subscriber to the feed. This is constructed at deployment time and will be provided by the dcae-cli after you deploy your component. The delivery urls will be displayed to the screen: + +``` +DCAE.Run | WARNING | Your component is a data router subscriber. Here are the delivery urls: + + some-sub-dr: http://SOME_IP:32838/identity + +``` + +## Publishing component + +Once components have their component specifications crafted and validated and have been tested, components should be published in the shared onboarding catalog using the `publish` sub-command for both data formats and components. You must publish all data formats of a component before publishing a component. + +Publishing will change the status of a component, be made accessible for other developers to use, and will generate the associated TOSCA models for use in designing of compositions. + +``` +dcae_cli component publish sandbox.platform.laika:0.5.0 +``` + +## Shared catalog + +`catalog` is the sub-command used to access and to browse the shared onboarding catalog to view components and data formats that have been published and that are being worked on. Components and data formats have two statuses `staged` and `published`. + +Staged means that the resource has been simply added and is under development. It is to be used only by the owner. Published means that the resource has been fully developed and tested and is ready to be shared. + +Published components can be deployed by non-owners and published data formats can be used in component specifications of non-owners. + +There are two available operations: + +``` +$ dcae_cli catalog --help +Usage: dcae_cli catalog [OPTIONS] COMMAND [ARGS]... + +Options: + --help Show this message and exit. + +Commands: + list + show +``` + +Staged components can be viewed under the `list` operation using the `--expanded` flag. diff --git a/docs/components/intro.md b/docs/components/intro.md new file mode 100644 index 00000000..2e0087c1 --- /dev/null +++ b/docs/components/intro.md @@ -0,0 +1,56 @@ +# Overview + +DCAE components are services that provide a specific functionality and are written to be composable with other DCAE service components. The DCAE platform is responsible for running and managing DCAE service components reliably. + +Currently, the DCAE platform supports two types of components, CDAP applications and Docker containers. For each, there are requirements that must be met for the component to integrate into the DCAE platform (see [CDAP](component-type-docker.md) and [Docker](component-type-docker.md)). + +## Onboarding + +There is an onboarding process that all component developers will have to take their components through to ensure that their DCAE service components are compliant with the DCAE platform and are authorized to push their component into the ASDC catalog. A command-line tool called [`dcae-cli`](ONAP URL TBD) is provided to help you through this process. The high level summary of the onboarding process is: + +1. Defining your [Data formats](data-formats.md) +2. Defining your component specification], which is a JSON that is used to describe and configure the component is to be provided by component developers upon the completion of micro-service implementation and certification testing steps. See [docker](component-specification/docker-specification.md) and [CDAP](component-specification/cdap-specification.md). +3. Testing your component locally +4. Pairwise-testing your component with any other components you connect to +5. Pushing your component and data formats into the ASDC catalog + +## The whys + +### Components require data formats... + +Components are software applications that do some function. Components don't run independently, they depend upon other components. A component's function could require connecting to other components to fulfill that function. A component could also be providing its function as a service through an interface for other components to use. + +The challenge is that a component cannot connect to or be connected with any other component. The upstream and downstream components must *speak* the same vocabulary or *data format*. The output of an upstream component must match your component's input or your component's output must match the downstream component's input. This is necessary for components to function without errors and correctly. + +All components must have data formats. The platform requires this to validate and to ensure that your component will be run with *compatible* components. + +Components *should* have one to many data formats. Data formats should be shared. + +### Components require a component specification... + +One design goal of the DCAE was to have a single place for component developers to describe their component. They should *not* have to worry about Tosca, blueprints, yaml files, etc. The component specification (and it's linked data formats) is the only piece of information about a component that each component developer has to provide. Here are some benefits: + +1. The component specification fully specifies your inputs and outputs, so DCAE knows how it can compose your component. The component specification is where you define what types of other components your component connects with and what types of other components can connect to you. You are defining your inputs and outputs. + +2. The component specification fully specifies all the configuration parameters of your component. This is used by the designer and by policy to configure the runtime behavior of your component. + +3. The component specification is used to *generate* your application configuration in a standardized JSON that the platform will make available. This application configuration JSON will include: + +* Parameters that have been assigned values from you, policy, and/or design +* Connection details of downstream components you are dependent upon + +4. The component specification is transformed by DCAE tooling into Policy models and Cloudify blueprints, so you need not worry about these. + +Every component should have one component specification. + +### Component developers should use the dcae-cli... + +The dcae-cli was developed to empower component developers with developing their components for the DCAE platform. It is intended to help with: + +* Crafting your component specification and your data formats +* Finding and sharing existing data formats +* Finding and running existing components +* Testing and launching your component as it would be run on the platform +* Push your component into the catalog to be shared and to be used by designers + +All this from a single command-line tool. diff --git a/docs/glossary.md b/docs/glossary.md new file mode 100644 index 00000000..a9f23214 --- /dev/null +++ b/docs/glossary.md @@ -0,0 +1,19 @@ +# Glossary + +## ASDC + +The ECOMP resource catalog. We assume the existince and usage of ASDC, though for near term testing purposes, we use a mock version of the catalog. +We assume all DCAE artifacts: components like collectors, CDAP applications, data formats (see below), etc, are onboarded and searchable in the catalog. +Further, we assume that every catalog artifact has a ``UUID", a globally unique identifier that identifies that artifact. + +## Component + +Refers to a DCAE service component which is a single micro-service that is written to be run by the DCAE platform and to be composeable to form a DCAE service. + +## Data format + +Artifact that describes a data structure and schema. + +## Onboarding catalog + +The onboarding catalog is the intermediary store for project details, component specifications and data formats. This is to be used by component developers through the `dcae-cli` to browse and to launch existing components and push their own component artifacts in preparation to move their component to the ASDC resource catalog. diff --git a/docs/images/IO.graffle b/docs/images/IO.graffle new file mode 100644 index 0000000000000000000000000000000000000000..47c18b2a87b5830573b2a224c9eaf4b868fd165a GIT binary patch literal 2748 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 literal 0 HcmV?d00001 diff --git a/docs/images/dmdvision.png b/docs/images/dmdvision.png new file mode 100644 index 0000000000000000000000000000000000000000..cc6f195f7ed5dca88911ca6a1481e6f71de17178 GIT binary patch literal 200850 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

;fr^U;{}Q0A9~RChf3;4)UEE0 z992M0ROjZL-rD)ZEaEsUrSWFRq@S`~KkA?tilx+iM)hb}nQ3s)Z$mu5luf}hKhKRX z@oN83+4fgxgTvJ~BOJ~t+NpjQrneCJ=e=67`8YiEE>kuFHoa*bgC2l4{ID<$AJxI;dUW19bLOL{7iQWKys# ze>U*4S$40(RsE6sXwGej;HtrvlK%GA5{HWUmY`<;>Uv#*PXO^i%yRW3>^*zPeFw7t>jV<}c zG)qo%$**)1KYBT7dmN2u60X}PM%3%)t!S`aVk$S1 z&W*&AF1Ehn>4W9RZo@wm7Lkgc!vziB98-X`)(5Qidix>|h&*^2I4I2b?7P#Qxvndh z`C8l_aUd1yT)?^W;0Wg6eqvcHNyg=St%i-4It)aRa6LDM{|KQ}VEbLaPcWE&HVJ^? z7wq#Z_f@luz1BF?WSd*Udi^fdqtsK;Q)!-g`SsgZ>XKGBSqBWwfu?D{5GGEqKVRFH zIV`u8>GaIZDtZYT%=p4*p9=m_$0JCoH8*ao7w+>6LmX6aJkVn<(QP7`3EU5_e1OIA z?%<(P%rYNK{h?xexEoDLtJ=Q|F-O2jka52DP5+!~GfWRI&+ z-x|s4H6FV21!?@dQD|QJ;AM4}ekzhZ4pwvMPy2dPpz?6#Z+S4mhA3M$L(;KJ23l8Vk z$5n`r`gl^92tyugE-v*{w;_y5mz?gT77M4|+H0~osWqre7c{Q)zBOJvkfTCPO%zX8PVm(9f8JNBRH-EL>2#a%931`kA^ zgLV%Pp{O6{AQ!4e**Jc4p3!hE%+||8)A3F4B)scTNFSuXiQ1#O4HW|fU>_UUm4n~cgzh(uv<)>w)6NKyazL3p*{-T z=~I7QX(DiVVKo7V7y0mjdwxdpbP+0CZs#VLi-F2#$!~u&wr~_iNH81nOnL|EyFda5PxddWb^3It|NEGd5PKGS6wNJ{+9Kzb#ODmlOYnY}{X%5RI0qomu| zxF@A9vbfwQ3y*oE-$={xj6-pClaHKiQ*hj6XYS?Do2$?;+A1|QG@z@}cFZ1vmg9aj zKURvr+htDoHW;}JARp?+_2}#X)C5?3EYC&We*b3{l1ymz+eMO5GE(*7-r~!)mAxcX zhezFH+TsPsEgd4G6#5i&?it8tO+G&m>&1L&@ zcDS>o6y7K9H)3bXm9GSS+j!FHkO|1*mhFLU*l? zw0N4WOQmE`mENLl>)L=bTC__!G)w0D5khRRBMJxFmYIMq63oZ>^>OX~XMPA^V7i%s zO<{Ko7X@yFu!Tv0VM|FZ$)%M-N;3=zFRj;Dt>{zW&3wm6ZVrlqhW>iKs^4YTtQJC* zweJ*(_AtXlF-`yl?#bsw;9|WAQL>caP2g%$-t~bnJ1g&`yyRu+y~7(&*}4E+k( zN0aDd5u0g3O=DV?GrIF)vS_Fsv1V>+*=NWvfC6_)iidW) z!;x%esHzOp{3Z3V8G^E!pRYvr%@_%zdgA9%h?k2)9u7qWYw3~`3M4GQaPdn;H0PcGJ_Hf~Y5ypQGxdMvg-3s-G)PxuDMA#8$X?(S1oq=1~ z2iP7e7_)^(`QJ@!Pm3h4WGX~3t|}%cqm(&D&eLQdq==jPkz@Gjtk(gdslEv)0;I{2TsuEB2bo+}j;Hu^9I z0}IAo;zxRz1i?98l3bx0w!K;>AYl$_x{I@=xT*qP6{jHO#mAFJNG5+xs!>3XYaopf zVd3!f^z?7|K%WTt4r?L*okMA{Ca#o|1yE!NB!9XDFck)CfZtJOI-9EVt1kvVkK9E) z$or@#{1ffnQ$ny3nnr01ly^JUhIDU50IiPckwF|i2aJcfqKP^G&NB7@N;#t#I%H@!H@i%YYepl*#abN0w z_p{XfFZ7512XK@;2~Z{OOTKuseBk!g;nJY*vma*@WhQNpM*-gbNU$vzbKge;rOiT2 zSNs)ez}h1T+!l|C?>SwzD$7@Q^bHnVW<)TaBnAS5nAL|neaWxE;R_+SGf;ld-+262 zFT-#V_CH8F9)P4)0l!Gg62_xV>_a*^P>aiL_T-a&cE?qI7h)|g45pElWFiEEc{?Y7 zX}31OKKQ$rg#iEf)BD>9kuLNG8Ne#5&=J|V`oWTEvCwIr& zVJZZaX?@DJPtaN1o1t=p(VuqQ%|Cff0EU!5#~S?43^o3YP>Et!u2+Chiv&i0*wx=L zISX^eN!9sGQgdktJv&aktps^Mf=d1pC6~hH#z!+++Uik4%oW{2lC921A6Z;x6E_bs>E~ z*z~mPoDx^QUu8;{e|k5Fm5)3DEv=)jS9JhIi!ly8Ctc^qD*cTTcRxQ{7~#`OK5`0T z9mPu4ynfW2t@-#Iau-&j(BACqt?u56x7`(?7cwWyJrTLQXooaJh0qozghNy%D4`)Z zoJ4%|5nzzH{8AYn8Gw!#SfqD?v!R3K9*+yJCy<|EmM*5hmE*6~vFiP&3W^)+H=G4v zF4qfisq{Y;JCP2|>eJUoT9l=HzRuE=J^ob-aj1zl-$`rq%KUU3Qb5dLdhr!RQt!+q zp)e&<3?2H=9XvjWm&AL=Eyh7Z53dk>lwo~U1{Q^37fZp&lZy2}SH*^J{gS|fG>lYD zKP#;hrln_JNP<4y9#MLjCHq;W9qAF!Gt}}gZ|1}@-KA#^NJEN3FHj*^o%(Yc`6fPLXlfo$dUuk}mnYwdRx-yMasXx%SJ)r>T5H!{3p~}2Pt`e) zY{T)6HT(a`vii?;lcPXgfh1!g%rna(safU;ftUsmYTg?&ps;k)h55m5UP7sM0VTw2 zJRSyM^+1H9Zpg7O_-OU}S8d5ksP$96C3zrEO1ak+%={Fc*sf7UD<>)`!3KeASk7c-n#dyx zD(`wCR%8t3n4MQtJk6!9m!mBEXoz|gQ6nij2;I(E%LG2W)oq$o%g1E z0smW}mCvLXb4R0*iuzsXwjeV>O7=IjX$AI!PO(hNY_lE08=u7dpFr}EB&(&9;VzAA zjO9}FZr(e4Hb%c;K@ik z?B+H}Bb>lpO)B8_u6rU7*<_`~Yj8oc)~}t|=VsGm`{=yyQiwIVWyT>p;M-(kBNMIJ zAAPri4CACAlWx?B{Vap)l4ZuKT>}o+-u&EM%hA*Q+?=e^fXUNA*d*bhiE2-a$L4XN zrVcsvr})A>Mb_zl-O4p@-zi>W573p8$;UQ`S+1A_M^pmk>fS8JG2D#nP5HspuO#r@ z_;bLm?4zgV7YdRjeT=AxS+QYFz;$`qjg9K6Q~{5R*8QY&!WXp-3_91~Nfw2hR@w#u zcKOI+boX@tANKRRIegeaI8(}^mO}n}^v4H>GlKi*uk$ndOTl``c-ah@7;y?B4$sNl zUVg{xITEPZ>+V^nnyVM_)sP$-wg3jnLYpazQsBP2Fu1*3qgfxw-fl*e8BoRbqfN42<)0YJ0h8^kNpsmg@JYJIZS<^^(-4MM;<)Lg`p zfBb_Qw(>7YiSqBr*HN)x_;|R==M5rpsLHJ}8eV0R+YFXO8+YtN9L?t#t`CVU94vRK z0}|tYSydp5S!!@73g?snt%Lz&u_)@-RP0JWO5WY{()ecx!b3c>5v{d|ooGGl$Ksdg zp_WzB%2B9j)we_j6a;;WW_=jtHHrI;())*Y$5W(O9iycCcu&FHK5({uyn#vto_P1m z6AdU93T1a#!hm^^sqJ?58G@eIk-*>~u+WHa-d7$hCsBA914PY_5kg@|ABr{16|k`p6RRSI0dsJjes~iP3LnN6( z%vM^fWI!^nPaKEzBt2%?#&(l9fx>;M24vxLPT7s8k{OnpDTM3<#Q8m8lKQePp=W#* z%5bU6J!q7u78egvqI#fGf|a>Nop?x%b2g0En(wg)^{Wn4>jvsk1EY1k%CT ztsTB2GR=K{$jwMS%!NyiLu18UdDARAaDFISR-5E34*6h(a?JuUd~lmH{NhDDg>!eA z6QcK!Hl?gcQjBSc80E9|5FZusy9hZAbaJ#bCZj4#;8CX?(G;XfQMD{63DI966U5ZW zB9u;oWjo=Z4Os7rWjk3tCE;sf%N`406gd5LaYCx3Z?jKT@WQU;FoWpEo3d!sb6{oB?hLy<8~-Lu#QY zoOa-3mU|vJ-F~+Iv=KyVow=_Wvfe{AvJQ*@=2O>G@R!^|GbE{(#9(dj2>-MS=WP)) zFfXQV8Y4nNLo}_MZeXL}pZ*+@`j&-0bD6BI*2<<#11jA~MP#(ww~WoLIJquyZ&^-2 zD$lov)x47AWn?y^8z@^Ewe1Vv^ijRtJZ)!tYxU;~OM(hgdEpcg3o{dW$@)9fiX0iQ z5@){+_cjT2hY$1}E`3743NVZ-S+>V-hFNl6kjg^*Ye^2XFm|vHfGpP_NBtO=-5izb z?XB1B@E<)ZBDtHr>UOlYJeRS}u0KQKrrUxvS!RfGe0rLjn?VN@^nOpbjnxoLv{7EO z2j+a66B;$YpQ(xuSfup^GST0;HZSkkw)A(D72uMvKSvner@$&iu6H!Zj9SB~2I!ou z?IrShJVio4A}|S4{wxUNKHQD`KH&5JPp(=;4q?GGk49m53(T+#5YBZ*A-j^vP60f54KLj$L3u2x6! zr=4~mS>0mW4iEa#>y_uc9arI%SFMcJo51&rAKAMZ*q`PK|IP~yy&^eqFeO+yGy0aYhm3Dhlvz@c5|+TA&0EWSGRo;BLd+?^*bN} z=ZSMhWXN|lAAY_J8DOFXEHL6Y1B4;0)(MQAz;lLtcN&g6y?mJ|-H*Ox=;M07gTb366F zN1sP%21{z}Q%&jz%HK@|DI})68XIcO?*Vcw@&Ytdh6W}OYl#L_#kWl)Er+3CZn(!_Si~ka|RY=;s4cc)@qh@J-Lr zB-tv}-aP;ArJ^YP836rZGF;N%%653PPLO9Yf&VGC{GVS#C>XSs`4+gq0K0gQ#Ityf zkiV|MXigUI0s7MFG!b>JoJy`9-US~)7%2LX4qspxK3zd!o063}4i)y&##j5X>psv+ z0TRfSA!2|+RH&7SvpTQcQjmLtaDqt+C7aN}_-cu1(dbb|8jK!jx?wa%>1s5z;@#W% zmx#t#X!`{m)V0o;_P0WJqVZo}%lx0)8z#mnAMSOz*nrH{g{AyOw?9}MGlT^2iLp1U zR(0+t8xeNs^hdQla|4ksm--mnrf75!@TDpn&sIxN{nqLSS}@#zL) zt%X{}sAxxVFifnE0!S{9PH}}*JsjF0=2_ZQnUGyiWQ9*bgZ~?fkVXCeYDsj2Wejab zis786b0r1X1QGqdQZ3OfOANLWKACK-LQ*P-kY}$u1~Mowtg2ZYfr;<={k;;E&X1z{ zDC6x!q^-6$!uI`5B1HQy_|yu50#J-NNGv8dIXqbmR8Zl7YO`^BGs7f*>apGOTxniDK(j&Z)Vp|I zx%>qET_J~U?TCU_?PAX$EKitW+1euadKJ~bL+aV`}z z;I4E!sz#dk(Q)rmyLn`fxPz~vme*ID>daM)os z#$Uv}inpX)a~jiGVrrnIpd74h z6R7|*KI8fWGe#P+&%a7HfB znc%bIR!P;seY{(^)F?&qU3#lejVRQIdZ^NxQ9dYaQR^cfQRpasO{sR^CnX{FO8toe z$c$FH-ytoycq9GKTM|HnT7xJLhl4N%GI#}K?%w`@q@)wn!9jSR!{D(HTQ*R7LJq(j z4c9DqR$7tzJq!GF`rh6$IO0su+b#CG3{_g;WK9$dfUvSNl(V#6^?;%(nmVN zR}lYcEAI80ofKzlEa79;ITllfht@F^ag7C^F+c8Hs}mU(+oU8<`$Mm9>J zd_8(xBU*AIKuiBC8%?FJ>FdkUTxgfzhTRvum-ff!gAFT=X9~H85qmaT za7xY-`GUMLTNjvA8sLF|zjc!U7VSTK^f+!(;A*%SS4EH4qpw3hH(3E#iWz%!F(&J- z9`fEE2x02zyjKL`TyXN=_V@rluE6!7|I*1I6=O!8Esd5-1b) z(KR_AbPCQ4O;blKvfC-DspFm}-F!32SFN)*|y{HLO>5Ov~$7g-!P>V_0~$C zJrw%t#&JC{YB7~A1`N&GYvC%V90Sn!?Zo~SE%}eHvQOFs!6qIIHgP~Q>ToYrN^J3N z_#n2jrGP+21(|)sg5P|q#?=62w4mfX#V?+xaw=_Fl?PElEQZPyRZD5|V>s>Mu|j9uX2^`;pgzd48jObGsc!z>mInIj z;L`j*^wrf!%Ut9|=3AbsH+`3WH%qX{9v=6MaQ!iX)LsKn!_9HR*+&C9zOH~U&^Wo< zU>|gk(X|(%d(TTS=AR24p*kiU`8=k)_?QYaQ}sE9(DN*kUdJKHAf(p$vQ>~>xqKis zibge9ai1=*F$T-U`@zOVYiEZ>Lt%Y7GU zI+-g`K=O$Zn{02=f*)rlmq5d4KsC1M!t4ELn|C6UA82zXPOug4H+N>vEFg^Otz33^ zax24BZpy*|tQ=}qpKk8Pv7BO-B_DY`9SO4Dn8URS&bPoijB=V=PKVt`RD!armp2Lw zW;puhKJ*l7H1jX2p_9De(>{*1_8ud6{y^B*MGa|zcPIG)^ARx?66zhgK`FAk2b^ah z3O$S(UIU5-OmcMZ%a^VXhkp1hBG79x_u{ARBQ1NNK?QU6i_6td&tB&iOskeVB#o## z)zos-qg(BMQNMO>yq>E4Vsmo3^#!s8RU*Vr?y3{-VyKhm+j8H`Y@k%IKkjrPgH0(W zaJeIJ?KW^jI2RzN06qeDwch6IHmKsNv(0$T4V`bH3FE(4K1S>DU?4J_BfdPfpdmKp6FJ`UST{S5(NxAY<0dbI6Ft z#4DO)C^{_q-j1TLmptK}*CU^-v0z3`dud(pvd|nf9zo!=kwgPh4>+e-R~9tl8Du&QAP|)tMHhcFxyx`_8y?`Hd(Ds^|Kx z@|?xH0?zXiX5W=gbzJ@xOQJWvC*>zABP*Zwr&>MA;2$Z5?@YKsAkNh3(%nPDyv0_DjjSVp;>-Q6y?IxGrrgNc{Ea6O+{ z-J4;K6xDyW9C9Y*7cnk*V)8_wrGb>(V&Wj`Yw73W9C;%(E05%2za(fw7SfqLM}-Em z=wVaC{)pFva-1Ts6lo?AMsTo{iY5HiZBcH=fK$hY{XHT+&$14gYZGgCZoiY;%1O*L z1M;t9_s0p$e>TX1{g3NwZ9%q;4UB-}*birANk!o{3{x?*E+IA<7Mp~62xIjexQ=k= zeUNj1yZ+#^_K2ZCY#3XCFOt2B_$AZsDV0}{{yW)MN7)2?uL@+-vd^MWRkTiuFD+)7 zsPs%`G_LmNi9O+-8$xKm_G-N)Oz9j=33ufD(cq(z_YTDtnI{GIkPoExvO)X9hgS+H z^%Eb>Xrwy#GmWe$h7 z$>z|Kj*HFPw3O=9pAh$v|JWP4A~dQPhXfrK>{*<7j}@uyb0QZtQwSO{@c(J^f0{pV zmT#1M9BVlmY$^~dM z3vV3d+}nM>@J#m$AJFXMjWj`x*d1|NsHpbNy~w?p@*&+cPA!f6?wp}{i%ANX{Fgd5 zYGMgFY0!SV3@JiT4kznt_VK007Bep$eg7E;xLRS*y@`=InDX(`?fc9d-+?=6 z?(wpAFP9(#T6Z;;|A4LiqDkALtyoki-%*a(rXb{TM8L*MRLObSX;;ilU{vv}c8Qj0 z)!})c#q)Do&JcVM9ZkF zB~M)og>c<8?`U$=Zli;vi=eJrxm^=fEcHp^=XJIo-&}@QI&Eu$NJ%;G?ra7eu}8pg z7TGyMjiWJZfS{$t6H>MWl>H08CRhEPD6GnB=|Cl$%y_F&t~`sv&OizdJov_oiVIxb zwv&TW7nlzT>o*nY0X2;QHB`J8VwL4E=YK>_JP;oQD=~w$ZQmvk9uSb=ObEg)2{l;P z{XLq6)-L50D^^&mR}OUN)z5H)pW7G*A4=Y)UNI6MT6TLiRY_*5*jgR?H6kNrtRB3T<JI=ycRnz(H6zkW#V%=H_~4c@ zhtrqQ5G>kS6M%s6n4KiQjtLt`?&-)Jv0@~d_*62&f`kbCkp@CVzowDhFm1;y&9o<& zW5k4thvQEqg&OiHuuE)K^^mo}hKbjmCk|%$8%(qWaJjAK@wNMm&UtG~iQZTI>V07E z@CMa@@7Z4VsWgVT!%SN+=UYSZDv!Dy2^P^Ho{_>mEMSadqfq?iAQz115t1mx*jUr|hv*-+s=paCH=RwrHWp35rlQ1D_O0;G|rO?MF-8 zpOhW;#{9dJqHgsT@B{pKcMBNvuNH8Y3Kb{#IZmwzhebaFea$wFZkyDj>f*b1a|XYg zzHf)s{kvK1o|}w;-|Z@O5dfZ~5O?p^{qNq*G=;YE%OVD_2@inK^OTF2&*Rhm4l%#} zU+$1EC>l%cC2#T`~7==-h6tttUo<*P-jUoZjUO(_fV7AlB|oH zxkBG?obUuA^se3X$)(1ea@M7!BmtPD4@KH;@h%q`CAt$v^tANEwYy6Ame#hoPL<{A zbw#{PE}Lu?X6Hs|rcfhId)X@N7qBc2ZJ(DGmk{3)%fGDU8<%K^x(>7xlO`)gwlykVwsd#<(#pOWKztN zjaK)+0KPETK`GxIOyOOiPr-!LU5!MW0EqqG)G>Q<%>(cqy#d||;eJ82VJ9FAB?=zu z+DPR47>}U1tA$|8J942HJh5)Ok3%IRvEzy38?^bLe2j_KjKYS+l?F5zw1J}w4;)<= z5)WAiGt%eXKMt^#9kg+y(%z+*6915m?~Rxrp0${ZT?`}8)>X$iyzyJA7p-*Hnxi<# zJ(ut1basiTQ@u7qPBcf4!VTRmyl_)Q9(+A@;#g^uU?}bE!3=7J8o}X{pEkjcr;Bvnj^S21NVVbIzC^+c#y;$6(rt)T<~}pd>HF2 zViWP+0ku*4yo2|}{bweks&}#DlyRzR^BE@2b*kh1!r@YSw?k&Yr;k}Gw-MzfHa(`8 zFY84C+ba38mId*BC#Z9Bhfb01P39iZpInwEL! zPQ-#$Ri1zCVIue?d++wpM&U2#@;@Ej!uU)Q7<^Qm+7A`DBeC+5LKg{YjY2reRO}?D z>K{@mXU|klHX0w@zS`vc_&M*UwsKrPoAvSAMHW;{T)?zTmf-BHoQ3az1sxTgkp1h1pE=vclaiXGcS&^4gCx#%lUC7^3nS0$A3vmPdT_M=^;8 z#G!wl#pD67JAO9;cE=N+D6G1nA+Yf^Es&GUIlga(v?>P5Ua-QN74157i&x z>8tHiOp5Z{!~B)2#AL?(xbB?f;erdIHN6d_#vGzQt-Pw4$i1YEtTiQu%I1Ps5J3V&aP!rB&?i-nBEgo#U5b zXKNXm!ov3HnGdukiPDwVGG9Nk^jqU$ysUmZ`Rs6ghGt_wU)`aj*%^K1S;eh;n*A~J z*bN4$5lNKN9CGdL*u_xOaPnKj>3Y34RrDBz$BU#rndZ(YV&UIW=oz=sI1337%W*Te zcVWhfE)pT1n7o_Uyy$iNx^xz$wHl+T4%be6(*9C%^_vg&_)^x%9I@V3B0ogg5M}f3 z(BM%FjtTSdpQkjr5C+)Y|41YNON4*Gf(r5M12Pw>)q|+Kj;5q}($)f^q%bRlwMYqmr-p+-_2Mad28_ocbkGxYEc{}EY>fT1 zm%f;mpT7>}({W3-p(rN{_o(p4@_*eMT+mpSL#y~=hwuU^_vk~PtuLtR)+hPpm`oez zbs`oeH763R?j=dj*M%YpH^OD58%>T&oTnlJudv@zV8|4IxYePpa3n=FmxGFX-`snX z6YGsxDVi%$mCrr;WzysG)}$hL1_#A%4s5hQdcH6BBfp-nI^v`NBGNk35LHqtw5)f;JqVuxXiocc?1t^hZKHxHB_JgT(kYE}Bdw%#gLHSNNFyO2-5_1k-Abo)OC#OA;JemBe4hK=`?=%& z_Md$m&tGrubPvT$OeCg;bG z2w-htN;4=zFo7WjIC3fOEi)1*i0#CcJFv;*;0RHGdHU?pDoQAfY5J(va~-jAm)y$N z)HYX}+HOY^R#EaA&AGt*zQLg{2l?cmNPRFcrL%}IvWhxo=W7r0OOQwF1sEC8<|WAF zKOria3F~|eq6*1xm*+1iN-p>o@PVyce|}7xS^bsDX)ag9JXP{fliqGk%y($-^Cr=Q z3YVyPJhU%qOEy zDYgvN=yQwoLMBE-#odhg@I&Dj$iwpplaxc0dot#pFp5rjgy*Pl4r{JS^-4#kXpYB` z^G+nuLrqa?HG6O$shfQdD0dF8dO4Nm?SqRLL)4`!-TSchgMJ#^!?G9?r{6y|E6faT)&iEyHF z(j}Ar=*~zxW!lMB>C8lo;P1#E@C7Fc18__+-Dbj|Bv+qt6)m8~Ry->2Gux-#eiK_E zxS`ce+Rs;6b&|Z;zmm~hWGksVlGqR!-L;!$!j4Pvz}IQU*!IZgX^%P8S`UNP9Fo&gnMu z7JapUs#iCblG4Rw#Sy|+`;-&-=;>kn7q_D{G03VaVZwLxav??TM`d8 zNbJ(ewW9F3VCn?CZDCZYZjV z9LfbWn~_So9}?1!ZO$vpfO>IL#}`Gbnf8M=LD*4`5j3dhTi?M?tMVdU6?}d6O|QTG z3p`4GA5NGf%!fIO*w$uV8abcRspf8qpX9~~Nv4sU`NKGuKJ3|->6Y$cx($2}<8`xS zls%>OXB}UhcDf&BRPxa!vxT7JZJoV2oF2?BzcKMd)*!t|-~Mi}Q6%j!J>e0lU%V-C z@c1Ua@Cr9EvTU8|l^TzI;Pm zA~jcAp1DXX(b0LO_x7^H7n8?1%^gY5U_b8T|*s?hmHWUpnv4ESr=B)db00 zNQs7|tx(48iPCD`pRSgyrOYjW6|M54K3gOR(efP7VBI{kE}3V6V(4?U{}zvmdQ({G zVor#y4$!-KZ3yk-!7$zn*wVy9+oRg0^~~x&qltMH@n<%1~wIv9^005_OF>u@7prK%Mx%C^fHZ!c^TC|4$Mb&X@MyvJ4!5^Q(JlgMt1@=A;mY!C3dT zW)U+*b_oJ*cx>tz)w^%Pz7Urz^B4y~qP+$NM2Qe!K4SxP9 zG|y6^YxRbKyPRFQ#y*ey%-7jW_30y&uMbF%^8rol&LD+dh4nrRfy>Y_r0g`;Lcc)t zEe*Fhn-I6&{wf zBDyC?G<2|$Ec)6Oz{2U}Bf+2B*HRidux52v228J+gXuVwi4i2 zLy%$b-~ZtK{Y2F@$7jv}wT$pIePY~HOvtoQ zyij~2Da<;HieRIgDMQ1Q9*_D$z&expiG+j&f`|bPhF_zCQP2lMoEQ5V=x1ckv491*K8Ma=o2J-#Rm6+*9y*Q)28W2@_IG$kaNF*HY^g4555AwccX+ zmV$7+_7AiH&N=Vxl4GTlflmvrcLeHmdFb=~vM|eFg?Syf7}Ips5Z{F=BF!q11h0jm zRBqmP8)3JmGvN%eEbC?*s;Zbh9fMKPP*6rk z@PCc+Ff#Cj8C3kKAQHh>b1l@fbcziW)?7LaI2I}NU69jJ+?=JL$z4j1e;556chKMU#yDvb2>J}>I_MAJ%X zZPAcJ4f`KOj?TN8jfiG9vSb$|PRDh4;VE^NAX-K^27{D$RQIDDYAfA9vaBg5yc~yt zhk80|I4XNwV-`WaL{>lIE?3$m*?R0vt2&ER3k8Yfits@`i48hl&lF+M1}vk8S5v5^ z-A-Ok))<6WOZ&U^CrN1<0@uuWB%HO|+r;zo^T3hgr7YKPbLtHy*(xE_SKZj(r7~9R zZ1UikrahjE(sId3aZ;&wV7dQdH9U^ZUsSqEDE8X-U=F=yx(E-OV9byQCR3FG^r}^* zS}Mh2)urYjdK7tAG~A$}YHLT!ol^6s(t?BX#2N_m@cHo_^ZQrKgYn8yD{IY-sI_o2MM^$L_=#j$P6g%F&0f>3mv^E1tH4z*KM3bd_X<>19Kz zr1L_SEBv5gZIyZFT|&WY@iB1Rxh1BW0G22BmoY+5OT>l1E8DgYx^NiD0KK|U$KP=e z5_xe(ThV@8UB;1-V#_Y?;PKmi`00C8N+crJLA9t)>(9!kC+-r!7sGI?+!cD3GzS~E z_C`Wr)|miebonlM$3FxP_C}^5%<7@wZ)O$Fw`SoRBMbtVbKKKN)xGETP=l8hPrUkx z*d6H(#QE0{(sufvk+%Q+>HooE|4o4qebHT`*IT#&35U;v=2w!73qHw7IT_x_7loO$ zHl&8(lnE-N4cNgkzx|EY-huB~a3DmTkbVEIIyrDsEWW%44SK0PFo(4gu%aa{zdG{3 zyYxCDth=7Afv6;@bqno>CPUqoD8&>Vc)55n-}9hNS9rEw?Lbp`My z&+EVj!weWM_cw{yY+GV{AZ5S@6RmEQ!F@D>Z|K{-mO`0wwkN=G^wB%XVXHUn-s$_R ziIaT83yG#mn&bC(Nt_t)C0*WvByl!F|LHjj|46O!6kFbN47}>!)mPlACP9u&pyLsK z^6YX<0@q<#^quQV53|crCig5YwP+XM=pnXoP#kO*Z5$wHX)pSZO@mBL|CRp@X||?S z$V`K7OqmUq=Q5AYH)qe*4FQVGlig*_L60oZPB`!IF0BOUw{RbTgIqsv)f-oyr9v&h_+C`#=VIN(whcl+Y)ftk(IgGWzst`4 zE30&3zq+EN8S`PxU9|E1M`VAHhfNn_>4}`U{#?S`k8)kZO_(iKlUWk{i==z*S@UYK z7r#Y~2obgYt*C+dKELu?f73D$f3#0>)?PHOIotH44dc5MF!1f$Xw4tsdDDNr*9shQ zxfEf3i0WyuzXutA%FprWOwBv*cZ3Fpbcwf&G=R>2r9J=3`Te@EO>oskOa}G~$5nj9 znSFeAiWh*Luo+#Kead;zC&lH^AN(#q#9%c%MDR|?b?`8q~zxkjawn>vEhgddq zET^1GSU6NGhti)EvI*w3-qohE@|ur4FpdzwLQNg8d!zdi;qI_~$pEu)zZv59y#JL^ z{JRooNZRbZ;KC0dop)-6|KXFd))m9oAP?Lq#cVt-5WGZo$W?>RN|5KJ@7i)L8m>whR^8z@ol~ghbHyGOH_r#yM9fd2P=1jZ!W>zejE6~ z%B^&(+=joD`vIQt{IaO3fBQaE!-?c6 zr|q;O#d2u^!ABnYreyf#U*^Pj)HlxO%AvPBkGGz`4+iM$aY84D><^U@>%@4RYr zUair=0rX4J7+$=P-EYwEiJsB<0VD+}>Ab}0YJ`gFb~xAiz7I08^%~?S)M#Q>5uA_A zfV1OE==n)NjS8@$ey20QItGcRMs4;cH_&(InKsSZ*)LGUJR{kp6(Z(iBL%DGwy5!8|>#^r{ayr!ICFOmlf4c*VJ0grNQ=SsaH!#aV#X^#9K;3ZyS*e z$iyDQLtRLuFq4knRq3T>LlP&g5Up$D|8>uIO;TpiASu^zn7QL3$FAwQ6ISC&lS%L@ zE^DcmH8~)}?M|R76gZXnozsUH*o&7js?qqZ$zfr0moBQ?-A&q;)?lFAq(9H;bsfe{ zbl56DH&VhK-o+uKr>M zePs)UzPJ3XXcB+jbk0tk7U(sQ2rQ-*Z}{y1$iNPO1L9q`YJWKZeu@M7#xtFolPOc% z58k@K7o1><>JMH&k9vKuRW{IF?|hheuNMg&;06McB;g?NINrzj(gN)3&0J-k0W`QT z@y8DPc3>6PC!(Lr&;6yMDW362vwG}gys%qNNOBOKj}yhkOfqg7Px)(?^qQaI(6ZrJ zkpp-K&^E-^7FZEB%ud6p=J`YiFL}zTSMt_?q# zKy$4lKmo(A3k4=hBJ*!e2@^z%i(oW8&hVOpn9vOibpBkTDcyLOwA%^%@l<*Gs$ZbY1P1y;WC(qYD;l8g07)Rzd08U> z5vCtMMG@2Hu9Hxs+a-$rKu@uu4bM(M+j5q;bohggMwa2M94^iw5n=u5;^VA=BhwyP z`rqMRAUNFXzYX_xAb<(T7m}Zj7phT&@m)I+&jC5YcuG0&#vW5xoz6OTe6X3Z?&wMZ zO{R3^DdeL~Ydio8(hgNei|LkKH?W>+&;o}d(|G8ffafoPv)kY-Gu-`9x-n(hGt1?` z0adKA?@_ZCyriOmoiUQj8sxid_;+l9D15BKOKINo&sPUAO`m4#9D7ciZa_g!0ooHo z287r!E`H77qWI4b*9Ky$>Q`uW6iHB!kR-Vr!3#`eWkn7^g;JH1<;ONYO6!kq| zGu*{fhsWcl8@Y&LX0P7a+Aq`#qC`u^q)<`Nxw+2Uq)2_^oD~`FLYm$o1$=bB0}=I| z_=1GN_G;|5Py`=*(gy`-%1s^(1)2?0laq!lFW&=(n@74CY%g3JpBh%&ibzUH;197H z1MYZSjFz(oo$4vx`Kq@x=i5I5l+DwmvLO*rfBF0-K>VCO$@2J(5}?5-LH!mbBteX~ zVH7a(xnPlk9p)nWoys@2qajfej1zb9HMN%zW7Vj_>M{<_(6?tyKm)-+b4oLiRK|~W zQthwZ*vZOAEap8G;<#)>1W}I~Mwd;BxcikdjHV4>WaZ`pjQMRmp#jb|kPF{BEd_|v zQXxwfSP-XgAoa(0Sua=>umW!04cyj5i6HQM$t|Bn1WG@EG|_HMLpT6zk-PViiZaou?TQpK}N6cI4!mD8P*3|m{Tp^xH<%$`L2 z2IAUaoR+r@0pj~aU~oD>1(o!*X)W1x8HmQ>M%CefoWK!*7j<#H?CZ=3@H3$=Ea&Qb z5r{Di(%*{yN{blB{?V;l)bwvnoFj7V#=EZU8){iW)1`Q(7jS}{vL&0gx1w1$*or{v z1Q!x~Rdn`1)B=%CsuCn9*t`u2Lcl=*_a;m=OEX-OsYA+CnF={U{DZ6!G>eO2Yva} z^X7D=lO*iZIdFqqJV=3)K6>bt0@^Y>u)I03e8Iv(2DS-g#w2KSHa)bGH}{~@zOYR> zRhAxsb0>D3o_{z+ezsdk6zs7weK08Jn)qeB$f-%)seRvOod}j|+r{0Gt@2GV)As4r zUmMWz#|&XavyJX`+y|W`QHi~lWmEwuU~v;buMVYqp80!HTDmRat|aZcWhdHwfAxZy zdD%7xjG_+GP~62V8qW>rU4w&eOZkS4P5y^a8~bNYX5nkLR$=wP_EUiGm;L;?IqEw* zBNB(y7ODaO^f-kp82{fTBbZ=!_yBSRLNLMMZOtb9y6Ynfa&o5MAN}f0dTu$(H*YMU6}I8rKdw!v@}( zWo#A4p)U8D+Aq@(wNJzZ)Lx}U3ZUD6g@PZ!zNTyl3|nHX@Si~9`Z_QfHO__#F91e0 zEUU?`JK=It9GTgh0te@}z-c*BqjKCyYElvCw*w+yPN;D{b+yyETL1q5oeE*Mh*4bV z*H2hCi1mD>eR<{1=zw`nzgAKE4y;~OMJ4scNg8AjV^Bn)jn8L-kJxFFQe;Vm=EEfW>&s@?5m zBXIj3_dOT!p+1O=Aj;X&#e29&$zh`*6>BO-DfYxQ`6$lA^6dry!Xb;{rw8+NU85|~ zrxj(J!Qi_$gANlc;Mi*m%Zm@Lg?iy-d_y30y zaDeB!?}f+ZNwlV6Tg-jEg@|-%=dGgQbX-HxJxQRMli+fqwkuuK<(pjiEO1TW9d9I} zVj|@K11kss0fBXJbVAnQ4Z%vMFuyT$&GDGp3V@Dw0ux`M0j}Qy`gG2<*lm?5C709~ zpRe1bb;qK3vbP^>0hki(30WbAWduHU)OURTI^YxQ&6h^td02SSfyj`Q%bZ7m)A-cT zQ1S}0p1B-&6^9@oj+Ofycvq%*52h51Zbof_x0Hl zPZU=d@Riw@KYY-oJ~}pC&gxwM`0*88dMosEXL|naEvv1KAO&kiYBS8({C+^eb^CoO z=ng#V*crQ@&r5$yRB>+CnrF|Ys7E5sMl+rF(m`GHZXHl?-r8|s4-8 zw+wc6%Wg8o7sCO3=aWf8*G7DK;Ey^}nukOQXaTopbnO)|=m-O0WZhx?5Wpf6nCvRaB5srUcZyNl&pYve~JLPSdsvQ zCKvcuV-fo;mVQPw@c^Rx8UjBmccnV@+4u-uH9dHkGMxSKX%gu86r|M8P9zd6CeuzS z#+L=EmS5w~z66jx-ZuY}I~0MD0Eqn21F*>ZvjV}F=B`-$9?Y}b?SwuC8XLiiO-HPB`Iqg zvf{qIMFpvLzWY!2pzaVjOx>;jM1<#N*e_4CADxv{!qRl#3A8!!$8va!w6V)-ElFpm zzevhr3jCa4N?ZjwAp?wo@4Mv7GPJ~0@Ru$=@l!A5p4m^X07ShA!~p!sUdXf+u{1p| zNo1$41P%SN>99W?$GFL_HvB}As*~Csxr{WmNdsz=i|fGYfI9b1WN2s9L0dlhn=>Fp z09U3L2DdDY>&F0XT?u?({P*Iw>R8=cT6Tdiz~~%cVYP|Pp-D|24~uG)@I6l+7-sz< zLw3u5E=x7=)sSOx#-WtdrT{8%IUVqb=p!stKZrYL5ong8r1El5mmBqeyN=UyIW=kS z_2(yqPxR$FR8;Sn4d2SZwRPxFZ)uH}N>H?M(s(>D$;HzK5Fs&&&Ji+jM7!mfaRRAH zFzlz(uh6vslQ#rkz7(Iw`$!z33l`{LOQC;f=Lvt@R*zfzXx~zEN00w_#mD}r+s-=> z2@(yQo$c@do@>sO>4hIZ7o62jl{Yaj_^jn`KNl=|`#Idd_#C0v9ZKJFK0of=3gcR2 zsQLL_P7lC8edVvF84u2o07N>mExr9g{GDx6wYhX3;Ac+I zjXGEq++(-Yb)B`i>Y^c-=|*DD_NMUmj9C8)QP zSjBVs!d-DrT&!FAeiPKiQuEQCX8Oaccf4}F4%uUmf6Qc~fIXBE!R=XgbwgZ(DI}Hj zpEVSp!fIELFLFS=sjsGX5YF@NLibKJf<5F>kbQWH9M+@mX!?{S<9RcGh%M`L`_iNg z&^+HvEKLxh$eL@4NzcGFgoB*FzTJNNZAjkXKYyE-P+O?+H)lG9y>I!;1q*u5)@aq1 zEu0;kQ*`GIhgp6(o=k;Y{V)QvAVFZuiIrJdj|0$u%!Cd9U;|r?F*t}`Ns!-y1d_iv zXw*M=-nfbv|B6aTaBXK=qi&d}Iy@!ZKm!IxjRKI9UbF@pr!F4314J2VbBz{6= zVWzAl6$r=$AqrOX{Lk;`MesYo!-KZN#EcJ7l32KI(+;DfzMe;X*DvJMxxugy*7KY% z3-s%&iSVUmR)DB|O>L+ic_BdcyK_Q=_j`hRt6v4T`sMH!`XvW#5cOk?Ex1QedfR$z z?}po=@#=V~E{PSaXfs#7D^j?ww|?q`@zV!MK*C!m*(cwCqt%+J%w7d9?&a-Gl5n^c zu=rmHn8WMXk()TbX`jERqW(BtKd>W;)fQsD1(*o7=$`<#p=2syN`N2UYKI!W5$v4H zr2uYC{`hUFHN=PmK?)FL{bwV759Z&{Y*Dny<;YDvzh9_ZSquu~yy~C5mB$8*LMt;1 zrZ4~ddutxhu#l=A+Fzm*x)q(kpNo$2@gHo$(@_`BU22Hgc`NeDN@gAn2!+gtWf|ev zft_&eLwZk}%YSL3_N`U`m2rP&xe-K~0dDH^l|~In^yWoI{AFXY48&(YC2M}^E)Mw8 zDoOEgKq*;s&F z5*Yj~aIqa>$z>L5Jrx!wzf@LL3L4g37+AGZ-z$B>ACm8E=W#Lpz>AAVyH#3khz=z& z|AknDnzt61QSO z{|d2ek$>^?FX6xd!)@<-N#!`}rn@i1DVFm*eRjeOD84isL6@L*JFs}e;L!VE)n|ST z5e)X)tzbz1LNNS4z}cn@r2^9)647C+%!Xh3!mMRR4M0o@>*?fpz$>kJluV~g0XJxy z>{eUiY9R0&2}0xi#=}6W7~F`{j{05$qCqnEpd&=e%D-ZE3a4tNW8%c_vgllpC4=~Jg%ghK6<*Wjvt&gUA+c!D5fIvi@&e(OZFT~ zaN?xWI2Riz=Vd`S_~(aD_(Qn)G(7X7v6bWI zZR+AUOU(~V?2J|*Dn)Y7Vvv*)CXyj)u8|f6Gpd8Uzbsrss^;W+YNEIyXet3Wh5 z{uI;W@I$uJRV_J|!L!)=ml5wmjn|pnC+p=ApyL41Fb#dV4?xc5@?S2&YP`C4yuS!| zknGQ_9O0lM^hM`)Tg610g9I%u3alv{Y(pMt{to6M_}t`TQcPgQH~@5GBYb-w?BSmN zLQtgY;7-!I7k_Tz-tp7H9D!rLPBI25*JuEd8772&B^pEnKyLJ&H3Rq;VQ$fh^%fZA zlA%39{O?af;-UYEM*l0z|0>acZ_od4%m(KAk2U>{)xOf>Ib6N%=q}}kweG!jGMlMA zwDYr|2R6!P1HB%Neg@-AyYGy@&SQLoRVExu1UWUz1<#e~O3VfjfOOy+5Qa^=*7c z+xk3E+tW;IV_-fMHp8~JiR6ZzQu-UW@H82=vN|$(0;lW~+xH6xkzF!xKn2)d_~`8f z$~d1Wz*h-*;CGo!BH?0q}X(dl2Yj-3& z+GXId^U}6jK1k(eMLjv& zxip$LC1W~%`-h1pad0j_;4WXzoV!Rxx|os=mI8YRY3;#HN!IO#-~B?A!o zG80f7&LU}48Hu<^oVb4p>7jg>f94mEZ^?%b^wu4Ali`z{xZa$kGGn0ICIrR}>ydqT zN?y_GQ1Z?#Dbs;Yo6Qnops9MP7h-MJCf&eWvH03O_TPKcz(5*8B|e~lq~)Hoi{zm| z{-KPYe^PB!I9Bid@mQ7A8G{0>xT7Jv{v2 z;O(NwPC?3Nu>_C$*{Cby3myi;#L}c$NincHISK!;Lp13o7Cs8vF#Hz4<6@@`^aWTd zma(9cl9Xh>q@2ME4v|0n)DqQF-I2k#8MbEDxL7o&eCgew+v5!trhXjT%Z_@9Vc=r5 z%~kS#=*ctm%HylxkEf=X(zHV~)?&&5)wMpY-7kwDMy_OzUa(bEWEiPTcPGL|hVy0b zvEwPK8osjWs|r=krXgZzFMOp&nJML71?B<&&{*?}%Dw0H{x(s9@r+~?k`41xAxu5Z zR)Lf3#0OWg4f&Cn!>$3rnVR)(EI-OGM{y+rasm)KT`Z)<~Yif!Ns$ACSig_AyP1IP!`d<_ zJ%FHRrWn*%^Vqu9MN~3Y2;AX_He%9vLo9|RAkiuID2@py_~vB1#fb@gUuaP2r!0g* z8iq26%Y;Ss!--vlkIQsOeOmXf^TT@W;3D3D(CRny*T0gnW>$3BRSDb2^;3NfCPZDr zFfjK2itij>aY3irfF0tiW0r0n(oa(49AFe^b#eW*+9*%Qz)fwDaJa;Kh{K>@wT%jN z)mafbMNhSs6jk>mgOd;=e)G(ZcepG$)X?mA1jkpd+}G#}>?d&@?L?z(~SB_UGS4TQ9QZbGUg0r)2D= zOWnHFVYXk>j70X=x6M)~Mju!&g4 z1(}nn8GI>BdHIvL>&n>mG31vobP`)>SU4~zTNyu8TDD4^s=Zemfi3;k7ho!v#&81H zmsJ_KoaZY>6SjtCdP>7+i&L->b|z`lR}s1j3R$s{nPb40_@>DhPx!cyvV6eXN1+1| zLaqFv#R(jyfsJD7kJ~iJgAOs^WifEz`2=nqWNeVOiSDDor?Tr`(lAcJ!@?_&)|cbj zGi5NFKokea$@%f`jVtz@Nk!3Ja+7AJH>@cQbN(fl^}Y*Hk$Q{)oo*yK>FtA0~JP+ z_UFB_VaCMrCYQ_svG!1mo7TCgN-<}K7yI$y+FwpO6o#?%H{WZwm4v^`36rR}=Tzdt z5{q*q%kaWzuJ373?i2t1k)dubs@h9?Jyt|M2x0n%M$%ia0FaC=w`nzm(C`fi@z+fA z7_0;Wo6CCD#Cyx(KcxGF3RpNkZ7AK8x@uc9*c`YiVq^(y%!L#l$L$nifkgt0Mzfo~R!|V}Pg|jvb+Fz54h$F;qL+e){%);)a0q5{X!p zaL_vD=s-|76^0*+LJRc@>gP8gS>M)A69{zOX%{eFeh#nChP}6TV`bL$EeR~6NZLc| zagm=Qt;+jwCg^JjnLS<*AQ(c&c+oD3Ivx)<(cCe|>!irQdYl)fQI^iDGvab&vBH4K z#H8peQt)DGpkLbWJuvnsO+xd=E-Uod=~&CvJMiEjuNfzlLwx#l%+bDu-h5M0_6@;5 z71n2GyY-M3S`vT%bgd~;`59L?fx>5IICy3mGT2g|rDjk+i61xB7LN=_JT9(#jxC*_ zJPhCa^{WN9*1-JgkkY2z=xh5I=Gu^vS!Cor+zputahMNqH^RoJ_*n2iiTZm(C4FW( zrrFG>di0?rmHCA{XwySiZox{Fp@g2-JqEwKqN0L#>7bVvQ0xSF02^vG-56=^?51gd zu6KXp)A~iY>}!?SyAq#lBUg1wW*!o8JNYNi(_`kAa1`@@GM;2Km4VIjD>!?qMAfjF zV8>-j|3_)h7wA2-uN);PdtHPKX6h$*1FR9sf^{=4*x)?qQ0eTRG|V%&yJ4Jbl}~+#4bh#NBwZN>I{m)I>R7)3Ud&*-8zxR4WAPU$hBizp4k+TYxCxGPK47}dWr5HTnYJjNt!?0cXFNoUk%*tE$WmQ-RCzC~gpD?iolXife8 zL`!(;r;{SQq=E#%;hpToPh}i!I4f0uB40^HJ}QfgjVb3LLk9?@vCg}^Viv){)_iLA8kK%Yw0CUxf8jaDgmjOR6HZ|=1Lr^22E#OV z>&4l-tprT?D0cg(jv9CCmL3(av<3cH7*f;8Uk(1~D9*siT~%6IM5WVCeuajvHws@~ zE0crXYEU{B5Z^JTwD!|Sli3&-!Hz^LuUJ*09*dec&D7-aYB`VidcO1`3!Dq53L66- zb|POk(cD;6$*8Z+3i?-yo?#^x`AOCrPgD1-8c!hi?zKY-cGjTlg(nC|Jr}R*A5M#j ziKDK_CcNB541rc7^-~s*9hKzqU!N)(w`)i-syA{~l`>AxC>29(NWYL2rF?`QxMO~N zsU+XzBct3zkR7P4n%TY^yBD)JZj`H*zVEFU#yC=WU1&x_#00pp0uQS#rGn%@H{EHu zc668iktST*u<9ug;gg2Ul%a_N-o~7@$kIN1SIGng-O8Hrk|#DdBV*c}Mxj79X?k`8y_^J$&r zSIlnp>p1RqCJi1@E~1h43qEU$HVnqn9>Oy(PGD;f+8lMt(JB@^0k`nb(G0k{EynyvFqZ{_i${TjzKqI$U=}g025A_(+1fg@W{q| z+*REhF0+FfA$inp>9lyG80iFx?>otCM2g4-sD5+jesGY+r*6~Y2r6&0YbaLE ze@S%2YkL?3f>P|Bpd!n*m>7X%dH#_xs}<+ej(*07RDItn5e zEQBvIz#LwZrEpN7WcIX9Iq*m@lI>%8nG@+<^2#VAj>u$;g0%3}qERW`D)k$_J~q=u zIcLLdY4#o(0BXLNEd_YrbsMmQ-8}ALH09IjzKD+42Iwn$ z`PV9n9e9zo*vlR}-_}6|0XsML303D{$LWdBvX)`>e)mR1F zwiRtE3tS#q?iui$n^Pwg3uZ;JL#)%JvqDcZjP^i$vSfxY2#j+lRA1LU;#+$Ubnwl2 zRWwyy39PO>2+&i9+qvQS7}YlC2##^<2uMRyj9+#T{#?ratW;6a?`vH0+GRwx(f-ju zL6^-Jr{+ZQr@O?XLbY3U|2P(-v6~XgkYb*Eui+k1aE;tnzLXy)6j_248Or&_NYdpS z1r>D|K?AuP#SmVJ=tqMQ8HzV@fW(~;DNaE3^GTDBn_;)&+E_Y1Mx7N{(#Ez=#uQfQ{jAUt_|KN`;Ms?tx9+01OOLuEsdN_d4p4H10 zG|YF*9+H37+MX9!{=64$XOVi828vcS(=tR9t)m0s4S~dUiS&pi&J?A?mV~DW;}SGb z*?YlGyN@qssi@+iyC#BfAKc$_p=(pd^s|V^1-U#T>YqAU^YjwlA$csA5J$|%OXzyW z9pf(o$vqZN7I-m-WXX-&Vo)C@h%D{?%$F1x^Jzm`k_+tkszCgc)Ff{ryH)LiRNLJ~ zdWrd5Do(v{jMdHa#{>Y3Y5Z?A@PmcWbH+%mnNmwJ*xG(Do zD88&lDJr1&P`8RtQ@>-NsirHFv1u5jjfRy%b^4+Bp)R_sE^HHyL`Y1A`v$?2?&?Bw!O!BAPo5pFd=HBrU@wEuS@+W%WaUlKD^itEAUS(V-&CfbG-3~=^ z9tE0m^1zHPPE%Qqyhg|=jGw$Nmew0v_8+SVd|C(8)$o!4uCq~dpmo#mYAXI4cddu2 zr<-iqJfFSv7n_NK?hhJaa-N2KQw$K%F9xcl$J0I*1`A%d5iMQ!m)O@pY^zNN!)T;T z&bZcv&n|UiXrfvCF8ul8uD7_$w{R)cq1eH6nEB}2uk6$vXD8(f5f^segZ*l$d10oc zCzK;O^UUSpV~&3F-E7Y;N#_RE?P7=xL<(dtVuqF64K3^+ZAhCNdF;fq_Tli2+HNn? z_tiwjZnXVjw$?8;>@g+#?RcgZMp+;q2(Tcr51?H<<5ku#gvuq%{`uoHr- zhx9bYgp}H?QSn!J4!d}l@+x@I$=bkUzdOLJZSi=S)xo^DQ63`U{WjD0+qt_#Ow_QJ z2;Ih>U*9TrMp+`X4+~|ha@`ts3$uol%mA#Ria9|_iGnlnn#xU{qL+lZhvIWh+uWx5 z4FtIR<*~e zJF@yV%#@kGz3O`C(|KFwP$A&aL0M@bFWj8WLq7~PQsaj#RmZB}nhJx(t3>C_>ry@! z#x%`1)TpvVF%VQfDPe2zt?7RVOy32n+vyI|Y;_ ze`_iK;jcln<2&Ku;JK2X2lqM5uj5MfJ=Sd@LlkzlB3zktc*-=d*Uj@+hBz`_G@d@> zcttJ4ah9SFBA|^J4eO5@+E3|3qQHx`JHJ{r;Vo5fcL?hWsxgK)p3(AkS@bTo?c-X` zj^YG0_~aAopK4I+S$sED?hd%zJ?(j5sY->bb)oxQ+B`}@lq{l;m+qjrhMS=Oke8fK z`B*E1XZU1p6d+r?EQp(H<|PYX(gBfn@ojb$`w6(>K;!=K;PcM$PmViVGLB`^1Qq)5&9?0DNQ+obo7~`bygVe zC|_0y{<%ttHD2-4Tx>@t26lFekL!$|Ynv_#->1vtb0|vj;`i5=ec{G=gc7TMWSvv7 zq(CWgJT2jbNbsFS1^J26RlI1@x21ST%2~8v#W`n8EVRw{nLfKD>NWOMZi7nOk)6ZK zCh#r~Fc4BeH`lb)$BhKkL_m3ymkR0N6iDX@It4R06-`HaTaj^#?7T(8{Fcw|sK9$r zTF|^<)_W!UA^t$<24ROZ05T9m>QQfVCU1A?{!j*{;e}EEcD_ z#Lm0li+kvn$PcZPio1q4`N(%wdFaU1FAVt~#>`XB<6c%j%an!>SySf9xyBw17JWya z=zq@R5ap)Vg?V5k@?+0k`QV3pOiy}S-b)nj22I|xqR|7#xD)D?ftz8+hN?o zgoE`V9#^eTP3~s07MBU0AN`Z32u%o*-+Yp!a}vr^$y~~$^|(6z#)f+S{7G3j>{)KtRfzIz(7{46lz2FjnB0VDjb#ZYvxr~zUr0xLt+!p zu<@hvMfr#fi=C=ELy>H*f5vo2YZQ;p-%NA}Ec6uD)6J(isaAsaQXut2{Mczc8T|B?fpSN6hDb13!lgs-W-O%5qK*Ldgq&)?aQ zq+=_+`MEB8@29alU7lVODLe~a3j)`VTf+4sdpQ6F%X0VA!DaI6__swMa@3Iek}U5( zE$)SaTNVIvF+kgaI*Lt2nt8u3)nM**Fy^-U z=HW-kxp+gm0shvxBuU+gsn`q;#n`M*x*hWn$6TSO^Y#h<$jFE*0WQm*h$lslJs_*;*Hw? zh&PuG(mVW-`c`jVjX(;|sQbb0!hi=Cn3pgpmLqU~r0og&-$%FNq3UyEOLa$S(+GW~sVT2Gb1Z1L)T zZP}IPrk(aU8#w5LO)+zA2#sYT{NRUdxzW5)9db7d;PmX~L@R!3;-RJUA?^y_O$XaV zLPB&H??E59^^2|IkW~hiPMnfCGKbfF?W-fM`L{7$)Z)Q%h}9_QaTKm!%1VbZRpLIEnPZun}N>mn+m)DnJ%Lj-> zc|rVsJt10=`MlS#rMuU~U758StqMJ+MUkd-T2Gb~><4ZlVUA{Y124aMc}5%)aKBXC zovIFnNv*K!}CE52!oKu}o>-_<<$b7m6<)Vp$x&@P9*w#^O%OX8sf|g}hoaceF z^U3G@6;ma5ZgmibRF0C+m*P%otSetP%dI8M{ruWelZq>ic&Z4e-G#f?5N`5mKH#6@ zBKS|gw&@RQir}%Fp{{$#tEMqTsX(;)9Ynp-a!D5>EE3?nz^LMR%~9$y?P+{L_pLVd zG<8e8EQeTLv1*o76nMT;^J?mN)D1S;Utpo{pmEn-^?JFtDcYI3iKwcGi>x39l{x?Y zeC7FgCm(o*H;=?i&~@>`Tjx_xMBl;q!m&+hk=33L{$bsH8*L-oq@3`-yH6+0ss4eNDzLur`?sh69n}9Et>41py~%KEsM7=Y}5>B z;RNc9lE{-z67S+)mdsQvp6YjC5`6U4!uuHII7_t|J*tQz^1e%a!4xHAR*m%XO~}UK zW~ph;#rm-0%@G2J!`p7Ihty$WJW9z%#PzwUSe~M9?Wd0qnjX$m9_$>h_?cd-OL3Z{ zo=l9|u4E&HeH^LZcrT+o$xvKT>T1o=MYcIqSli0jDEnO?Me*7BmAP>O^>irr6+_%j zN-L+t;i3Po(ZIEh>v<~US@HLsCrhrGY%Vsq+M;T0^-E~k+a*5$*&>CW&(s-rA`>G&~Zn?n? zwDozC@wpv2)R=AI+0auX;PP+SPi|R3YVhy<61r_K#J#xb71dKwmrTH)FTAB?1Z9Ml3ojxKM16k>BS%(+P`}P;q%VXrhyIVjVN*FuY<=bDq zU$-uFXzx0BDPAOIv0m~W+`c%^XXmmzS%2w@5>S73(=9H2W$!vaG^yx7h3~21!4lyn zVOcTY3+hoj`vCtTDyk58Zl%Z&wyQvn=`HCYzrztGFht74_979b!gX|t$k}NPXTL$@ zRKW2SuCyeZ>SSU^hFn0M`xdwGH-)7r$He| zI6bO#bdYg~ex<%sLi)kMc!7fNf-CZFleHQpCvsQm9$uX2^_9n@)ojf2_jSC~3P)E> zH%)s5GmK_Y?7-lm#nlHI1+#cxK zMWz)$_x9PiUglCRI~%`BaB;hRe__-yR*^M9moA)13jbALc(fArG)>yxQj_tI4M$oQ z>K%(HHCB(B6DgI*$XtJr*sP+>sIJ=2y3r`F>69Cur>YJHTZu+Hhs{i<-NI{bs*P34 z$?J@x3oj18%q8e=Hn5G%tKep-yansj!i1|S%caGY1#9v_mx?>K8U##-{&_Fszr!&@ z4jviz-N}tv!~fIXcZW5ZZSN}TC}0~u;ea~;-X_v)u zJx@BJ#(qiv3BZHngPPLWZlHu{G5VD*#l{p%`aU*TS^Q}Zz!@*-yH`Ic6k{cBMVy6x zs*+my)vG@E)DK3~Rj)>29_7<7FZ83({PYd-{LJxN2&EU$Tre7-7}9mIe-Zs2dE8Zg z9bH@)V5T|d-`;&YkG3ek?=Jj8x8}{P`w>io*5(|W?wHc$H;3bTO0M5IejjwfIj_b- z8B_qTk#l+hU+j8R4p!R0a19!reNR0%WXiMw*o9WgyzCXvk(9!xtiEPMr07M$#?v~K zx{(V^v`MeRy+W6wEjI^0EfETZ@{LftgaWbPGqsh$@iY4sTf2AYA4fxXu1|WH8q9Yl zyhHSs9&JsPN|7qiKA&aB&7G_00m}!R#r#U$Cf7neQ}WB3qhW?#WhI;=GPx5wl!Eg* z?KI$=*M=_PK#wZf>pr-{zg|MTm95#6xKiZ^qHqa#Hs;(-+?^=!Ev5B8Xzi2}PdK&y zy@7Sy9)0a|lxy#VP9*MQi61`*-FoDg83{r8V8sgG=m+;CFoLItcD8E9`kB7>TsnH@ z_x1Y%V;>(n9kp9%@3MH)>rDkGUvH2Iyy-)I+!EF7G@(!;wAD_#-=y1$z5pu<>tc_S z1F`Mh3vTQ3SwRug?8VDL*e;e&5Z5mmG$Sp<S)*5H4woAgId#=5cUC zgnY0Dvkg`pEWvW-^Bgf(CCp5H z6ao8z1%=fY!5g>iJb3E2b?XIU1llqcI0&!QN>u0queM;lz{d9YQ#JaKBo3&sTDj_? zcg$uO?lv~DdLiMq2eWouI~-81w*fkKQ@nfVRQJ-~bimd!MC&>g|B%&d6Mhqa5GYg>op?LLwb+k3d-EShT%CAft{*?a49N>456@0r9Kt&@k;*Ei?!rNX-k^wWD8|L00LDHb zY5Zrkeq50Op;P}%#&vO=tF=uCt2nF{=eFcF3-X)oFPvJ&HyC-BM;N^J!0e~MC9^>8 z*L!DD+s&5QaLQ1@_9F6og^GL=q*70KAZH-pLf&vivRIuw$%Tfa;i38J7zw~Av)my{3d_MYO`Z`wg z8=oM8YTP`kXKY+m&&Jj*Mbxp_H{9Dp#2lMHjo~O8fs(qRYLQUJpF#W4&=od(T|GF<9o`ht(ux%rHqh-ol!``YOCWBkz%YpbTr3?#tJWe zVTQUebQ-!v{MWeZS64vXm^~l@&|`T z13aMw-C0ApdUf7MlGjv#=2mo>n1QB?Uuu*-_iEg@GMiG-QcH1)$~h9(QuM+2WCfJm zq6WL19D-`V12hn=D)tKWI85u{;WY4D^ z%?$5=`#Zt?^^&k7R$&s~w5}A5ePU$;O*Q@F!OH50S3QNt6#XE(2zFjm$47#v?HMbI z3{*U)13geU$gJF3J(GC**9dV6{ZRXpA*Wc8m{Qk$VziVd2Hs}IEG051*_V1`zR?B6 zDoI@+G_(TK^)s2^o-H((K=;^B|+-CE(+J`97MV%Qf3i{&$(2V{ENjU(=_7 z2EQadA24)D*VJ)tDY4l@8H}s|Cf}LNQa0{IHou2Up$uK*_JzzO;urB$S!!oR;-l;{ zOcX8x3@QpMWcDuU7`3ZxcB!OBt6M!ipI{q z@IwwR7-xz$>NkP6`Y(j`fD)!kQ%K2hHU(SkG5Nxf2r`YgPftRjRLX-WQiG%6N+<8Z zCBRAVnHFs$k3#`-5s9-n482DSD&JPLzQa7<_>EfbV8;9$NCKKyk~pr+wAr89`#W4M z!CIE@PHf!bRe7rA1x)&S!@g}$zBh5|pfj}n>7;pz^1g~;00tp^wdzcvxfR)WGIN&! zfTqpT5pv~@p0E4gJT^*#4U$9p@*g_C$zJxsY(2v|aOT0o;Rq+hru2;T!D>re$;7%Eb+{Yg*k z6<>jk=7;<^1eWs0$C0t>w<8L*`yyx)Os!OWRmD0P*}*9S1{5-vvz)qk9ZYs(z20am zAx3>UEpvAqn-tn9Z>`ORpc#sFi{(RP-^Av=WXy!J$x0J1S&Vky_-#K!^JQbM+2y8< zqpx3%a-Idq4V=F1vq>vyFXE^yBLaeL;!rmM!7NqA*rF@ME0YuH0ddU4w=rg?Xu;u+ z#bcCI?_%j=2R0_EosbI8IOh#P3Vw3c=~YtjI8s|Np?4B?BufrAs)YX4+)Kk^*^VxoXd zN>Os!HaAt!>IKaWQ6Ul9w_lRXn$MJ-iGM)8WqaMy)A>RPgX_!OQe-)8y2c-B%JfYPAeey#1eTynUIH|#*5einRGMeUmu52yab z>7l0>=sen4q50Q6Z(bhn5R;^uJwL&iet~HMr1tEW0fv>`Wzt$gHQgvgKeaQz)tL^j zpqUouC4)r3F0*drl`B|as#%eB>PvuY+K^e_#&YaSH94Vactg!9)G|wXqGZ)Ut@%`x z>^RTq$ZC4g@ktJrnuWHASANJFJnL;X(2cJt%aC_en)YZpM34hL`9&nYem}?m5RnZC@)aQ?dv* z?Fok0rWJdRZxn8aPjVn*p1$`X{&Z*G1BKAQ0dj&GKCVjP&HfJbOMv_H!ZF(*)`y7N zB14w~xs)=W6ofk$$<~tUz|KDTHjh0^t>2C|Kw05jnz?}70=#(ZI8ML9kjU;~P*i$2 z#6rzE{HW7$M+ULQgVI*tjKA;Y2Jml4VylBV{#IWl090bj@z438s%ik!=!q zsmT?*qeLmQf7wJl1JqZqp2%uRpO^UJF)D_3}yvf$?K|9EV0dA^6CGi~UstjF zH1mtFrGbu?pMy%-y&c*gSu3MG!DO-OmNFeczU+<;k#v;5YJ^83`-Oyw60x6rlNp-v z(8DqEb=c(i3QRGB(2+6YBPAo4D@dYLb(-x`kEn4Z&yaz&6=j3mYRVnCo`hhppv~H& zX_24Yfis95JR}+1C4J4Uy{Am8O5Xqx&QgmwFX}x%df{4E&^=QByP)yJ(6&xBgWw{j zcA%or^rC4(kZMvDy0fw@5me}2c5-d!pSsep>Ab9yjPil@8;h%^!0!iv+2z0=%sSFD zm2}I|=q|D;a&P#>5hcnlZuye&EF?Hp@k+CH7Y5nKEMh?`)Z{Tuy&s%zIEv`dTHV0y zTXj$Mh#oAyaAg;j_tvqLrGlD((y+-{9|1Y`9odph>5J9J$Zp{;A&XTwzGu@)eL9U_ zN~;RUAB5&~Amg5$F~%%OTt75cJ5px8#Tl(`Qga46R$|_($GK>FuwA?C!_&cjkt9b` zQhSyANyW)aDO=4&P`DRvy17Yu&OA^?FkTJ{9|Gfz9gll*sVmpYRoKg2FMXAl_K3#N z9e<^6=<(s9{!KwV&IMMKiw^G#d>$Z1D&bg6=V3UDayl(tb{$CLW>>PBb4L&G4jwz{ zDelj8)b>zGlxtQ9zaLPl%Gnikoh6mTH3n`~nkJzl^du2h_TMhvb?0|oPdx4D_2}sP zgZ+lT)jbe!1EY@ab20@%GOu`2^uv7S##WdvZpJC&iB)cLQq&<_`BU7_ylFrzy9lBM zDUz+VQvpAxKCazGz2KO<#cS|9`f;FT4Bg3%)j?s1#|W%N%Aw z+lzJm!!DWz$PF98+y;>o>DNA52f344rm7h27@rLK{B`lxM0Nm9M>K`KXU{Z}%YeF5 z4Ryny-GT^)gFrRF^?>NFMiE)2Svt$IQQDyqG{>8Y&I5T2^O@Gy6$ZtinYO)q#4(eh zXs|88rLTL*QSFI>=1WZSjK8k1i?))Y$*$f*x%s7&qb~wTRE3|@bi{N}T1pmwu@=4_ z&aZ%sHSUS0k{1rrUTUE7671Czj>Wml&qni4t)U~lGs-@gy}$N=Z!{JVqM%FbQ@R89 zwWx0+fDYG`4^BwcisPAWHuZPF+*<9V#U)yX1;`UPeT&4E1<`Z}`|#WvA)`+ zwKvk%MLpZt%eRipX&J4l%{i`*j+&l%xXNCv(rx>ql8tSQOdRaKNp`Ddf^$$_JHN`?-X(5_a7fh=vF7e7uX1np~oBXN@F6HI0q zWQiX1v)I_YfH$ay(Vpx)3pBz{6Xz}TL~2=+fE^^_JSQvDcK@N`X98>1D!Qr)$DO{aj%!W#%UqL1tQ@{# zH(>VMZ*`kQZ82^h1=-J9+CG_#Uc4Gtf7$ShyY%2kz8`umy*Q4qidzrwgj-ZK#r(XV zVzpn?g^Qgf?0$H(AZG-d$9WPks}@Ka&76ds65@?!L)1qUGZzTs(rIw;geVcAzd)gl zhhGVtlC6%bH?e6L8|9jWj69oVSC8aje2oMS99>(ChE%?)-1+(WiQSf8pw+dFeB1p* z*6T1|b#C(<;!8gME)QZ;&L`E%QYL90%RT8LF+6LUuI67O)-->!eJH-frH{}z*TXw$P!e`e`n)Mm-ul(@iU2N{qNd3WWxsRIR zQW12$(Z%%2GVbk1qg2tzW4eCkk)G2-nJTxRz<7FoMgY%>zg%TysB7Mb&>?y%O~^kHh;3QF-EA1LjzQUyP#>(<17ANzMv^B&f$2S^YvocB?gxBol$OCuxo<@r~M-rIP@@U#|(zs9k zcrgSXaGe-8c1B?14?AgisdZM5cxbwyPFw$ytHidetK5C6*e7;@ZNnsaUk0jZN^7{S9bC&{=4IfTRV%-8_5r6?jt|z@)wX7457js z-AM7$v^z?7m=W`jXhcHCRu4~|8P5A7#KBrRj)=k2dz%PCA7F0sj(8T|7Aq#2rE4#5 z8_jJE7(y4gKR89jqt_?zvu z9(s)6SC}=Zr$4@`{gbx;Oebw~vUmHn-)DT7)Qozxv4$A{l9z_u>={shS|@}lFr(qb zD&(L$&`XU7$!XF7c#XLJTnAWYrIWz&TjbTOv^m(+kHtf`TGSM#D0ofBAq{Nh(uHep z&C5f#Q&|k7`a4|jOaAjfXOWmzz0)CjAYu$unA^o&Gz}@4WcKzHbEhIh7C5r<+DI6! z3tTck5O_sw8N4R-r#DxnzRU5SSwAan`}L&vH+Dc0MQx4i!VNHp)15!r6nbwED)4(h zuo0lB9NbOUa9(Pn^#M2~v{tj53Mkj&LQ)ist&>_0uU(uzG_!V^-vzu66(3HZEej{b zY?fqw+F9!>xAKV)qP+5snsmrgbAHjlU@vFdfXksx1E>Q{%ItWW#DPE?;+j_b@B?f! zAecP;Pj}|%hxaWb;MU-{!3?9dxZ7~eDw7d9nG~4`<_&zw;B45rD_f!x!l(rO0*0K0 zH4kPFaG_%Lt6*qzK54s;H862KmmhCSL|rCJ4(V5vuf#a?5IHJ66b5@f7*PSk@zBV8 zNcN{5#$mKIPIvK!+7nQjcI8reesw^pcG`^fpu;S;OMNs`+}o4kslW)%Hz9LL-W3Ly z$Wr*Jp0MS5W42&VFT+R8ZbH(*X;@v)xhk^A?|rTR1u`BRg0u0qh?EPy+A<26V!Rnu zK_f2fu;A^Z17TD1<4eZnUE;S3dC|SXp*NA`1B6f$T(A=sqknQ5lTX6cnB<1_CT2Gt zslGE+i@QB_pyZ7M%V-o`VbTAH_8`Zn=1vbs#tgg;JLr>%YoGA$9Iq3$Exht zUxhH4QLC}ZpS#k<^LPg5#b$GaV8PMipQvmd4Jf>bArh?|wMUA&8m5{&Y8Mi4(HkLH zRvEzvA@~HHXuH)N_q-tq8&}n$(9-vi2}40z*@j)@>7HxL_7^(}IE7@-9{OPX$)je; zUMFF2B=wVr8;==|286Hp+H6LqPE|~gb#mljD4&b3bsn1}*(gawdQ~;8#^88WV?`@A zeNfsJNOS}_#1mnF1a0k_?T%|hby#~ZS4^Zy_`YPmbCPME(xZa%(se-(S8xOU@PS>P z4i+gB;pN&x;Vesm;tbOnHAkBu*Nb{X(z~Wd184&#ONPYyXkaPTyqxJMy97e8%13Pv zS=u&j92tb68sM_owP{V?O!cT~UF2!rxgD84qPCV-RPd}>pTcp)3SP((32f_WNg)9d zuw}9FabU!58Az=qE)(PnS?57{8kQGUh(Z<^Pc=2Z^9-7!ym2>8X{_qS>tTnyHQcEu zhQdNF;wHw0EKHNtBFsd?l$C*ipvj97ZuSFs6NCOLB<*OPD%B!otbhv2khvIc48H^g z7=zPwjzSH*M8knTJdCU>tI~yR(-y3JfDi50b0+$vAmz4>7m2upeTvqa4vg zy#awn!;l8l)Xjj%oKY{N=yZR+BGm~_k!B%Wg7&i*bWiqZUw6g|a0aAJj`TJdS<Ce;znP}Bfu zq=U{}D|4vU!*45}kUyvsR}YcO;|%0z|BRTwMv^z3eqnAZ$;Yf9i5ts6WNm;~dge4k zUN)ignsaGD%9WK#yVFW$HI31xC_;(!)l#aiU3CZxGS$oJ$&Q|6yr}M80@eK z#}2Z{Y;6gl9aeE_CloBhg|qKK=}?!e^%w#Ubc ztp3ohEPx3m-vp7%!r&|X9q3hzE;jOf20R_L2Yp`Mom9puXTOyZLXxfpP;vkz+F)pb z+r|IU4D$sFYGS({Vh8VL|PUx3c)2L<8T=;EeV$Stvw7+B zUZokjGZYmIX-1@Qkz~(Do1|W#SupyCQe040v7m`a6hX7Ekm5-(cX*8|%%5m6X6MPf zi`qI7CMvwdOPj@H?J~SS!W~Fn&=kpgBChQ7_N6|rOAF-~M9-dtmPgtpRf~?A!5Cr* z+s(UK$0^!lJ!Snr@Y5-^ywoOzC7@90?T=!8T2&mi<2vU7l!8D<#gd+M(zBy6JQGWw8LRR@vv$7_mIyG;H6J-H4fInBDmQ+d zreNP!ryJMBo_Z(q%t#6P@Tg-j6I+93Zyc>DQGZt2Ye;;}Q6($Vym60Z&bxw1ac?;x zd%E`lwI)lvb+DvJnL;~WaId#Zi!n=S8Q0hnjyB#Wnhlv%96%FhMmk>`5=SPMV66;K zmjA`)#T?XIoZI7C=z!skSuK6)z+PzKx00g&GRb*7+Dby7yI4;EX2@=b>YSr&@w&pB zW9W!C(YIr_oZVHCmn?b)?)Jb+M4aFH!2eiPvpK+2MK`rE~HZ4Z+^tF5_Jl0QP|K7WJN{ z*{p{*Of#|`PX~l?tNN>EudxoK910wCDsv@9k~Pok?J2iH@1fq9!3R}IFC4C^;RE0K zG?sjV$@E)n`dRre5JlaQ4?IhW_hT(qF^k(l9_DlVP$p}1jOU3?Ms;}$$P0Pl!_iA- zpVz_=|MjHHtpwnJd`^!BaPd1-7bTM$z7(}qO zF`ED;`(c2E5YpLlFnyxv%_Jm|b*IJmn4%~1mbB2|*yWofoH9%ke}T>pz|7dnu*C){ zghgG+%I1;b#f5UleNBrY%wdRfMDMhgK+nMR#gf=%tTxfd zF_IB&6=N_XhkGM(vjJ71@7a%G< z>{E`cI2sH`Oqc)(ygOGm$aZh&D+KQLEYC6c))In_FK@=ZQ^D-0qWRbV=-#6 z!{ctd$5%3ex!&O)ZSvY1grJaa=*#poafOKvA;klFA>KcSBl4%ici1?XC6oJ#33W5^}%Bo&Ks%zWCV>u_aXdp>vaUoW5f2#OHdV0Ze+O>5BxB2cd z&&S!#6+++NHO^fqD*u5!*68ra6TvC0;`t^?$xaZ%s~P7!YMtk1Evz*L6B#TmJs(uG zv+0)OCR3S1gr>OqrN~2pq8H>KA#(KGeuHIMdhpOoG)hA&O(ziNk$p!FFeTpV1Bp-U z7mUzXR<@QK-EQElcOc0j<<*QhvVu{ObdkF{?gFG+N?c2N*nhAyT*$N@U4$96hKr;f5f zk4hT9Dc<;3Co~(+qT_C`QsiKeN#DV?l%Lz2VmtJ)Ri1^eVWe?67{(2Fz`SsPH-=a32S zcrB^twKgxn)E-tpgVg*KQdDsAxvkM>vk-D={xqu8fX`^I+BAVE4b-HWclT@e%f_Y- zadLe6gGcD{K;r9Ztlm`Y^|R8vQ|IHGPAdV=T{Jx4$oQF}sT}|w&K{R*(BKZZHI(1s zG@g;nD=9Sl6TMyzxk6PTwqo)7YTdnqpoDvC*!t`fKDB5s5|elLOIYaO5x$jeQFRgJ z2a5I@@{%@g#tYw8E$IBX>coUk1ZLKq=ka^;v)*spzi?ULVS{M&8jd$R$MkypOd>E1 zeZVz%rhz{ZUd|LasQOM`4}^9ViZf zNUzif5RJHlJEE}!E{urHTC7N@l=s@OeP;L<&}Z)6bTJ!e5lvYBfaE2$`Obn=KaV-2<9}<-fad;ui%Oga9TvELuuDKeh}}A zy0aKg{KSl~sGJifytV|2s=r#Jwdwo`o9W>U;_8cHc@#CD_m2`?<8tLxT~+uJw?(co z+r9W#LPp1Vt4$|%g$m^Eq2UeGAQFN*ZI7N{!GFfq{#(}X;D^stdY-w+!>GMbK`B1 zh0np0W9_SqWSB&O@PDhg{i}q&UeuZ%-sAIn&YP!i{kNLh{hJp0Yj=(T(ov2zF8Thb5lao|ti4t&>g zW)vTs%1lxF1pu2i3*5)lYnmYSwA}IMF^DF#o!Ot{L9#r?Te?kHrKvTY`T*t zufAA!LSS;gRo6RQ(Iw+u+XKA1&wq}_U5PrAQY@_N_{)*6o?aW^-l#g9tYF3=<6Viv zbyJ7`n6~uR4wC=hXI=MFFjLmJZ?Ew#pMfV=YyK|8Kd*SKk2{^a{`2Jju4}w>ooK`pXwW0zjc}Mh^f&j_EEY@|qnK!d$pLY}y1Hr=Bix zldL+ZbO(Y$(Jq1KJv!0X2VbL+dr1eNJ1q1Tal}a*Lg@?eyn15uoavTus34%0(f%Ou z+Ww_wVdC$bC54sri^aC1LC1Bwe~8elnVVCJC4o6^Bt};W+i-E3%6>yDLiqF`(LXwa zi6yi;SG0JozHjhkX(5D7o06+FSV87s@=84y!1H2>&Ec+g!fhq&K_ZpgJxcs|heEwP z{L>e!RCi23BnCFopZYKIwKW@-hwhMC`N-?plO$MQR$)Tj#zHSAHDq^1Tb0hf*oe2> zY>chjd|3vp9w*(=XQ(dJmSa*j(2*oGVjw3Osx9eOL8(TI={tf&u`%!*dx42TlF zy+@8${H}{9Yf_D$)9AFNTuDI!djYOwzOI4+UJ;iTa?AR&-GT9y+ewtI@8MK!8@OzQa)+{7%)b z3p2BxJ#Dv*%aIXWOUMq3`~&_7pRq!=hnpv_*EMr?Y6*h4Oq_EL3QUx`;Dd?a_ivWy_dTvs;9ST!fTS@zs5F>=N4sk~TyzgKOBG*jp`=&q)HC@ezt**+ zdN*_a+!vczoP5gG-B;&t*4GOueE3>h*vE&C*DlPgX#jw{{XH7OD!m!RYWxYnl{ znIsxxmLi-CX=~;DagLZP9kdJy(+U4q4}Kp0Mj3WMemnn z8<8u3@7gGeHD#>MmBecIi5Buh86gX;c1_9~%25Rg!r_J=CSLeM9KpJWyD-VK?IJNt zjb3o;O<$Z0Ue(6RS>ihYK40L=rOzrmT(rp24%S4&Bv41&kT zf)l60v}>xnd|fRKC}Ek*VGW_AWiGG41tukkuIAn*7Wz-1)+@-rA97x~^rgAeVL{z~ zIHEytG-C9T#T_sW$h8icYT`=INUp@wo&nh{cnYsU(dRQaSM-h2y8Jmjn^}d5kTJc)kY_NDCWPa|b!yiMXoIdrOrdS;PuWB&; zqh^o*IeMe>Ao5IHiQUPmCkCu}6mn}rJ=XR4iPQ<9XB?p}S`#4raE-T1uwwM3Bo*0q z=LieAy#B-@=Ga19y`7qGjfgYnEzgV+SZyalmz!w5xk?&w4bUxMHp-w<+CAilxcUoB z_c>uARCm@qt{%Vd=^r)#^_wAal00MlWy5^Fk$G{rTd=I&kT|V{L=om6pNs;2TfoNy{{K12geRg_RY9<$l@- znwz+Mw#g#elX@S3-+$XgG)4||#;br5JzG2bPAL|{nM;ZRaF~SMvVfIqAtT;$xY@n( zj6b&U1Kz5?pX}qcYx-h$`5(3(DV|6~#~g1Hxk&ci!T}S7Eh20}FkMv}FRy5Ssw|DJ7|TK%v+_!2)3C1YLsEF)2_kW0{kvxcdD~byr&#q>EN7Rd}EXfdPK6( zm%ua0NzpsFC1}(zP&%80T1u$b{!~3Cf7L=)K;Vz{yeaVLkIJ|&NBZUkGXPGN1V~1QjZH>Gbr50o^#G^K%S!<` z`!cK-3s+Y9Dt#0VxtR$pvI$R}R_4D{z-)75%~ZcU|HT4_R4TM7wx$K>Ag9ah0;({} zud~uz-yF5a6}+b+XjiCeY~j=#o_>g-(B7aQDbg;>9Nr0CtbwC?S0#m$Z%lYqU7=MOy>(@WG zD>zU03pBZJ#dE_8jLgwr>Z#YZc3s~l3cm{p7?SCk9E0o`8y;UVFB!bkGmjkXGQ3*3 z5EAr3R>bv|yeZR@p~nG0q=$Irq5jY`+Eh<~I2??1@{&t+)OE(x+nB4g_mN^o<6RRY z;v)(H=(0;r)7t7SU7k8UIWM!Me-9xwzX+?WZ9VDbZG%j?J#{?;hPs5)AA&Q26{RFH zVt_7>WrbV;sk+TNTSh}%Lw_7I2F553U_AdYPj>6kmT4?!>%l*iWbH%L&ztZepP(^P z+-FkT4473|F+{*5%7tsg^$%Gnq@(V1p$*d5XNkT_cM19P*9?Bdb2ktOOE{E9y^S+x zmPWRT)L$uKFoncs25J_XNp5K2MJHa-B48`nh5Jqr9aH%tYm*XzuIUQ!0Y&`mJ)47w zhOoiA^=Bs#(X>Z|Efy#eJUTa3E4Gz5#mTMbWcvyeb^+mFCRHBF-AvRYurDtTy}q8f zgn^iVv;98$-wWzaa1(SYS}DId{TxRN}}9v{5H&A2Kp~n!|Nr_-d&djW`Ai`_wV4G-zuClSihCu82n!r^YeVKsH~#3 z`N{)o{~~}dhLwlxcrSrCx65Zy@Cv_$=~p+t9$Uswyg@&~;9h;1#UJYQ=LdC1-tK6y zSjTTI@IU-spDAz9ZMu}RX8$tduO`TAs4Nn5AW~p2zemwmH@+HM-E|?}pvV0+JpRRX z`0CH{T3+*@H%+vT|89$~ZhSp9^-H`#t0W;U|K@xBDN(OV-fF}`*R3_L_;bR4KEdny z_JlX+jL@Nk^smMC*JpX{VtK2vvhf7JPxM!y`m3=;wXO06??-*Q|N7mp9$7E&&s3<6 ay8{Oc{cVR9jJl5Z&-jeFVbSR;xBeHK&ci$a literal 0 HcmV?d00001 diff --git a/docs/images/io.png b/docs/images/io.png new file mode 100644 index 0000000000000000000000000000000000000000..26c5eba9a0912089db57f991810106d5e7d6dcf4 GIT binary patch literal 131383 zcmeEv1yt2p*Eb?4p@Im4AfbRDEg{lZQ9xRxTe^{M@B#*nARvt>NFzu$NC-$tx6<96 z-?>~uXXZZ7GtYXz^{ww+Gi%Lo=koub*k|wG&a?556c;>?L5P8bgmnI)(0wT+By3OFcoAeY?=g0`!G7_03 zq_`!b=qfsiySxe-Ix?h^@{ZUGHp)8>UQh`cYs5NU(>Vo+&+M*XMS4R~6uKF~N+9^K zqD8iB6q78?y(=)VaqONW=@5E%_vdS}H~5XBmQ*6LN~=V#c-88B^m(GdAa!kf@d1az zjNQI2$6l_Mu7_YJle=3O!#U4@k#p0sfgD`Yu8G*B_#fN_At`4TQF-MI7|U&1tL|o) zZ=dr0ir;aL2?=s4WELMI<3i;*Go6&&tG%C}OR4Gky;xp$)f~C=;0~8C326hq*7KLO z!zrTUsD4AU+^=0$62xfu$OtsL^e0}suDrFqB9TQOO^SaZ1E*3Y_S=MH{`?nL%fW?5 zMDOkhS9B8$@^j zqsU|%&%5=HUZPy5udDTZ)2rEQrvQDF$*Fnv!Dh?*61in{x7w*^Jay_X@7HzOhXmqZ zAs>G6p6uKPGG7^r#vQ3LBmYwyk*CE@FN7G~K>7s5{&0%qQ?Q``&rlo-@`m>r)E^SB zY$2>;N;lb+J zXK=Yxa^tkcjkn15>RCv3);F1S_7l#VU?^}6@#dW!!O9;#r%WV29H@R{AP@gr!$pHq zU22lywbWp~G^!`NPQ2#D0dWEEBOcUs@eOn7tZL#8&Kp!dpKm6m&j{*zl0wYorc&vv zDfY}GvLY5QLOWnoFGip?EGxf6&s1 z9Lbjl_1WHBc;f_{(Yh5<#Kh36=bOxtT3lyPAgAgUlADq3%h29_ah!o(dU}@b2i83Z z%Bxcz>NiqsIlsP$7=MPUev=xRQk}T#TwVEvPeg6cPXEBxL#`>m@{~mRjLMHQd1tp{ zv5Jt~eh?D~V7t3FV{^tnpCG^S3Qxl?k1XmHAI^*W*F1!n174tE-^xT%c=3je$lqKG zU&?F8^D2KM8UAaNkqh6wR>;#|OHjX%dSoSy&-Q>SmLY+i(6c&*rJ0o#pB@tO-msZD z3!~rfcC2o5{lxjKvrf4O z?PpGv9(Ra!hdMs7yDi8^xQ!2aEwtNmsJgKa8E>!^;geRD;^?6eyW*AmV2cWoeYiM= z?THrWUhMwf-D06|lDvo<$Kzb=m6j{cAs&_Ih8%|shHh(|US!P(-*|iH{`J>cLb4QC zQYao`b>w)ja{|@^#b2idYzdKm_0)38IeMm5gusvW(BvKsjai?T*;>Sdr1XDfMu$w*)L}Euw=NZ(uTPH`#IEdCv2w19dzAW)BdFkvs@KIcv z{V|qolO*FKzLPg>ak{Y61 z1LfVkquv**Y)7n>*{&|m z4RZ{8)sPap$enG^X!H0Un*LeoBfqYYoCLchyP!?-oI?L8o);t{jQpm70}qRxoeD}m z@~XK6?%mwwdrK&4s&o0XcX#zw*5+Gi%-BRT%oD5xw^>=d+2~k}m>kvb-!i`?%+{mT zX27bKV#-}*3pI;eRJnwD2|v&>kp9N(jd`&K(P1&Ux3@!i*;`pLZ__d*vlN<&v#c{W zv86MYn%vELn(;NOOQ%KKLy=Q4UP)G7HRE1tM9PM2Z%P3b_KiGoY|(_Ur}be5v&NC8 zD!ToKUp}FKzL}+;X~)rGtMR>Z^-?dDbGB7hLuS9GLz8#|LuFcXTGd>3aU4%gNyT2l z>4s}%PcryFe@T8Q8)zGtBT+CbWD_xzSCP@a=oR=musLxcaj?6KqdWimX0TU*$cK7^ z5X>|bInvImv>Fw@0*?IAd}8zM`u-lCR;TFg?@fy%oH3Hnu_R)Sc=viN>?&gFK%63wVR(FD{NlRA|1n@kelh8Odlhi zR-4;rDq|v}k6}<}YQFW<`Nt&LJxRUhtr(^9g7SzTJwM8^$NisQGk(|BJkh+=Echh& zNyVq&n-g#RZxVg%!(vCrcV~a_?A4D~J{PgBH(a+McL^7cAmqr_m};diOhA1!+p;pD z(6SvnShZ1^;**bWNJ8st?DN<+oJ5Xjop*rIncq>OqSF02ddQ{hOPd}I4?ld!`%wIl zzjf!Maa0F;znOi@N;u0moo|t5X7Ov^QbMV8ZZ>H&aYl#=`AQ6g?1U1Rr)gltp?s8% zKWFa9p>&5ak8bXU315?2E_9u)o!p9lYMIq9%SV5AQgt$J^0cFxGsnJ+fMm6=_j>5X z(DqPrg++z)-6Jz2Gn&Y3cjIG>a|UMeKNni0n0uProA;Zuk6*yxf9~+$mEMa44hdos z3(m^1q3Fuu&8SVhP13Q-1`cjHt2A|!8t!_#6(vd%YFspPPnMF&ZkQ6*|@~)$pP2Ny~kZrl2dx zu5haI4cZXit80|GkerjYrTC4$L|Q{hN^!}KO?Ndede)g?+fGYtDy%VE+%PwtJnd3S zVg7)jQ^T3|^Qc55rV*JLW|u4;FUIGF>l&BHb0%8WT&}yk7#x-PDRV5fTB*}`S2;@6 z`F+L5*mqJN&1FWnjr)w{azE#E&Nufz${cPL-)rnGM7Cj*4V4X=yD`@|xN9lV7qzCQ z?3~!2T%4;lA7XIVNyx3?0MCGgJHXWVS5Nmk<@^Hd~ zP+AuF3FuFS6fBUCE>pt(J@rtEVgU*1RJ6XdyrsODD5s{WF~burQw?nfTjQtTX(S|W zTTbxNSljXmnXR#ri3O)E&-H^RIKgMw*NoT64j!>I{CP~I`YOYPj#=y$Jbe$K2 zjEs!iTuX;j>b}6?>)`)*uIpJ^KILR&w6U>auwh{^HP>al#lgYB$i&RZ%uElSptrCy zv3z1nZ(>0XALMA9``Q+o=K4=9^-WF4VBW%Ugd^;%PFaEt8FBIU*A~U!~)F0%gn-bhx_1#KmF=t%3oepIC=FJ z6Fcj#um19@!&kW(VO#iROK^G}ddl zWrz{FJqu-B%0mBk|5Uzzs6nY2-qa(!n@Khu<2On|xh%$OR(Ef$4=fkpeB&68TIOyV zU(Mf}PaV(t7P0S+bqW~;4Vw(|4C!Bf5WCiV9lH(JNgCx}K6W@1G~yY=pA`8&dh`Yk zHkv`K4$bp_y#V;gVA#R`_CrDyK$pw8Y ziA;-Lhfl3`s`<5kl&I+)+*`|=PAj|~SWD-Ce(BPs46Er50wN+>+xXN}dJ@Nl@`;%l zy1bIE+O{_7m9@3%aMO~|QhJ5f?Sb`@t`aAQtel*&bgm;M&RX~kBKg@y-U*>%hb|+x zwzl5lecFSY2>r{86w0uWjm|D+tT|9f?DmAC9 zxtWfRPWk+pb4HiEQjU?wyLa#M{pf6?P=e+P=S!6HChjFr=Wj06Gcw-%ko5zlrNe;>HfS} zfyp?+;5@A~=xN-W6O{G1;l~g4m6eqpjb;u(a&q$e0ZP3LV%OV7UD#CO5pP+xDn14| zYIkX{t*x)uMDaLWR{a`bs;HoS!hbmc~nkgwkLZrC$~6t zBr?=F16lCMG>St-aSgt0eior|r2YWqwn-mB6YsWBOFkAUZ_$iov&OY3DYfMwx*J#K zeb@)SrqkL5b)@farPqY983ykbeA@Yf$DM~ACHzA4p7bE#3Wg~*we7W8uYrMqSXx?2 zviTmMptyR*#0}UWoj>Q z*3R9l9q%zrZ}1B*LN>}z$E@djU4M4FCkh9Qc z4#h}m!*0jzDt54$87wWGz>S+(V&&l>X778-?_85G(ym=QT{8eEAs{GNlj$P&0DtH@ zd=a#6%iju(nHtQ)?g^W>6n>Z-`p(OGOtYW>1|oL+u7k@ zB@=~(;McETf7SVn={%1Kx8ccDz}6;ujwZcqp@G_e zhB?b=dyRmEBuY+o2_s+YY-~qIhuvWQp#Xh&4AvRxB*%tmouAwxOH=6~AQ&X<#MAkj zTyV&jYwl|?Go4*ftLgrlX^rV_hiO&2oEmYcsE&t%lbE_b)WgH0&vdzPaMxsKm~T(B z&#F^}ayN%zM__Q#*XF*UprGS|8>u${L3CVtvH1%JyK80wn>*i1gGq@ zgqLoH+YWh9nM0$rO0?F4D6YQQS-sYL4w;^w{z3g6>lt~Yo~*W1_ltq^S^n6pu7$%S;J}qt9C~5G&@FYltZ2 zuL?~|O9PZ#b%n9$##ce!AvR$dOZJsIG*Jl&!6na6>z+k6MZ?4yF8j`gtl;D>)?iUf-!x$U&F%OidX#)`PtxP}~CK<|$pA4y}ctOW0_N91bj(5FrL0&LI%F z4CvMP5_^e--)<i5PPK` zs;^G9-(q8vVY1KUuN@iDDrciYL6a6Ivon@gQyVN|8c59@AoSy25*oe1j05L8$xJY6 ztriKQwW3TtRM*hB-jSm4_|pe^rJPDCzRg+yBdDE`*kqD+Pzvw$veQ_VHYLlEU7w!t zJ8pa-^%cGGc+*ntSN<6)yErKPtZg0!Pi4@lZ34bDHl?*=&{i1>A}k}80I zr?vBkqJ!#xiO@qr&GU}7g(%HKHsM8WF`LEDq%YJg|pJnP4^CJ(c{HZ2a1>|lg%_}FM+ zrb8GA1|XB9LKgJB>cKUaM^1_n77^hMz?D-WQu}0%1PMUotr;&FgarDG5}@L$YCjnV zJe3Hm_Fr{i70kj+%oF%mynJ-zF?Rtr5N4SLA8VO^CCM=`V&B5+{8g$EKF^u}9(KFk znE9`er0qRSEVP(I?UlpW4mJyILqkJ}i*Lt3Xm)_vC3&EelamwE(_XvV>*F`NGqpuv zxUZz7w0eV$8BTXe7&cLRc_HA_XAp8sZ(rZ)srF>li-h?e9RrfcXR%1UfoH`PA0Lm= z;j}i>t!HdZpEu?Xr&dA<*wCs^1Hv7*38@d3I4y2Ax$u$-cV!#OISyTl#y*$yx>Wx= zZS(i<%;_81hMm=kk3Wu`=%jx?C>c7+>e^ak_-t2(W`=%iyj`aX86?ILI$YxiEH}Y& zNUdQ-$<8R_wvAlO5PYp|;$ZLA9XbfTvLrhHA{wLq0;^@61LB=Of22Pt_UHDd()Vb9 zD`?@i3Op~hohmiDjigV%h>ZC>aL4M@+%Liz0g4Q`75M_tlqVegD*{5^!?f~P1^VO1 zk5S`*ziDqJ4}EnBISB7+D$bYD!aU5Y|qio%_Z z1N}WR*v($D=(Ew&S#r5k)xj7j7pHPL=OC^^h-AKN6xG2tL@?1%=#59Z+fIZwX4 z$QzGxD6%(-^2YR`VY+qeB2Y><3wB^8%YidgS4@p9ofb2GAkSsrfx;6Z%6B_Ll0Tx2 z{I!GefsbyIKN^fmE3T>(JQFpRGAKi$(wKtSMnc*EuGq#47b)35n2PCw;7 znVx|G4Zgb&h-OH$P(L!_?L?CnQMb3}G|Bty2FV z-t2>pENR7SJri?tX|f*GaJ)$b=8v%PG@ke$_jAb5Q))01(d^pWz?r(hna0On5;*cO z7l(U)XL+&mlEg@-zdNOP#GOaqaRTK0DWh#lxBIOx(>!c!@It3Z-{!Pm(c9S_+;?)^ z?j7{a$jIoMJ$?E#*|0*w8DSyRA^u{aIJU`MH#woZLAqtnruP$oQSg7CtJEmabo55FkSjwX(FN+nD(F z?VIc1rYrpLgkA!^=iEvWM!@$FbySqGk|m=x90nb#knScf@$|C3m~JBv#kmh`4yrY9 zxraERqoK6R@uj>##1eYfVIKBQa>Q7$)pTlZHMt)*^ZJtOcx`g4s@-T%-bjFm`926W zpw6#8aKfPAah!|`8G?mhil?R<*ay8ycYd7B(5?^e`mEcOiO+NA4gn7j&+?pFp|$Z$ ze<3?37uUGc_+b*vp8;m3tSV(A1f}z+0dhW0lOk%K^N!B{KJ(tli@ z{aieN?BVTjpON_)iAcHEp)FGMTs5W2gzj zQ1usnQWUF!2+|I^v-4<14T%>BVA_?>JKa6xC2E-8hD*PG=#l>gjbtI}iA)b~LSqiK zObde({N;kTGm5Mn9106oJTtO^?oo|VJmE^6^^B!g_m>#=aX@Us?qT5q z1(s=Fp4q^hIKC$_JOYCG(Q8kvBQOtl+o?e>sek^(&L!8V8;75te>siO@(IA0*LU!@DbjIz z0Xt@-D<93D0<5ZL&!uq03y^exQsAy+r#sQ}En+ej`Exlhl%Ex`kL#H0FVx)M+ubzN zA*Hw*m!FOkzPsBu43Bw*J8;;j8j$H_WC%OaD`tu`hm@?u_4)GFrt#K}!$Q>*)Y1k7 zwCkVtk1SFHGN6`EYd!vJl@B9N*drJOZ*6T2txUFVE;)k`(}-_ijO5M2ahSrsZ8{J^ zs=Ef4AR5YRQQLEcjO+HY-%)NTk zA0;P1u97lcgVw4hek1>>K*@dQ@C+(5UGI4 zha}8U+k7GLt6}roP)QU_+iX&CCAX7=MVRSMA!}n;T3J;sEIf6_g~o6{KYg%j$y)%H zJRcDvTt!0Gf$QcE{6N%kao|63gBPl&L-Am-5Xdmt1e?j`arOQs^C@P-G>4VV4Yx@kRi|tr%(5Z3pNS z!vQcf>~ne&B9j&rObiT=XliQaD;`A(JqvJ;01p_dgQN~?Gl}0tUr<6~WWg%318yJG34H*WJnDviIW7cDn_vMA4i0w3Yy9>N zH-hULBxVt2G^Xpyio%HCLj?luwmhFTPI&m3(6A53OnMWP1PMR-93%{Tix$LYvNTq1 z+&CfI?-UINPb&(4T}L650D!z`uTupZtl1Vuy-pTdMDHbD1e1s*$A) z)~Irt1_yfu2ZMaKp<517`~(`04PwuJ!2VXIC%SF)>JpVW>jM?f6Kt0h1M+JyMTjt- zM=hcb81Ti57v`D(=Iv4?6~ai4cP``wkW-N}RU84~f7uZdR2mlVh;8sh7~cH_Fa8<$ z_=x@^QdnJw`LVi9Q9f*j9rq0l4I@+PnE!jY02ZtMyO@IcFjSacg}jGpW5t@3kl*Zp zljHgzs%~k?Dra^(TdlnS`cKq>tx0M!1t zA_tR%$}<9N$ii@pZU=agRFZK8A>q7mvC#^I?)Y5dmKFl^2ek#+4vzx9dzKfqox_-RYBzj;$8$TIFnB_W|3BN68@zA8 z0Mln6ms#J?+ug0OyeTI13^IyZP*9*@YkP-p0iK1~$%nfUAp8sT)6#jLKb+197l2fz z^;7lwVES9EtkQ9z=R}@CQc-mF3&qE9(UO9S>|jrli2*jzpUP20WZ=7@XJuvKrr7G} z#Q*3+|ARsCn`iPD2zVUG7yC7=Di3pj@ZPf@co=`80$A0jH^9M_x>rK=n?dorXYv>C z3HiXlPcgL_7ag7fmPi`{X%zwxOa=xUE;{uAT%k#;0g>IR)v(UNc-}Z^CvR<@4XmuSV_elhczP*#l9^j zhH;p=15^K7ljPSuL406};hYI40$uPs-?RgiOo~s-K)?sTA8wmGAYt{7c!aDBC)0sU z{4ZWK)b1dO$39?74umu|HPskYfgLjDC@>6y#>e&lCGmx^39erCj*5!vyY!F%+y;@R zPC((yJqUI{M}bX9FIdZi2$IV@VHGDe@BMfQO&xlBHI~O3T6%g4u1_=Fgw<6DS)&q? zkThc5IjDNM?J{?$G^kiEJ)$d$%yjUv+knEEBQ~{!0t`;CG^k1ufMYz~!F1a8dRAZRRiC!`wC_!^(K{uP64hEO2E!%otp<|m zzGT5+Of_eUHAZZtFelTD;fTS;S+ixa?!2t7^JzzM$IBoJqli?kjZn5AlqjBO<-T7; z3!Ar5NEyuM;x*@&>$C2cdDOVaUZpbLB%eVWhvMqYO{kVXe#xx&OH-8u&8KHF(|jaq zwlVCyiscX))L?Bi_yjS&07$3uID!!xh^!@$#UH|or|*8=veTAZ;aLeWYkF|T&9ktP zu=M-OdJGiG^fTMaJDbr?G%r+>@8jxOUksffw52QQa?0*^)%kqqkRLpO8HT5A_WBQp zdcq`M&MAI7tfNy66SM7Ht`z*Wrq+50-RSxy*_nW}qXe>z%Lqz?A*N|B^ z+VsjF^J>IAO_B5|Pd$iD82XfpSED>yYWRruotm6(t@I%GPNWp@o)IVZowK3e-TE|@ zy6jqMz8~eq;%Dkbo5OQuIjLZYuj<|Y>SkVIW#_wHqp{_5GNRoB{z!V&xha=A>qt|w z+x#+^lv&Y)3N)SN_=vh*3o~AXQH6gfusCSvs$Wrw`hR^lfyHkDb*E zP)ggeTtcJ)5ePKGI~<+G;(Pei(ie8oRQZ%4rru|%FChEk0ze=mu-zUL-yGO*7xqF zOz#(R`0XfK65HR5Dwtg2=$ziS1nGneq`X)67qIrRm2ypdjBYFKd*$3aV4P-kfR5)o znCcNl?@$OuV%Exo1kg|@dAKhz&K2Lfz2;)ECw{lSYd3x^t;)rQO+m1oU$DwBxug9s zLgl>iUqq-t^~ezPEXh}&Jr4=T*lYZ!+0ealH`s;ACU#<*oY>EB-M-(%-h?ZSow34j zH`^xib7kLT{+;EGoIH)*K#O}~a#1cSUAaxA3^U&~uv99uQB_5PCw*Rnq^Na9>Kg`) z90R`Z?d^D9zI@r#2PyO!oHw0EWmUjymcAnR91%>S& z!lzMPhm?0V;NZcv-~L3zUBzHtamHq;)z)gkZuMH0d+IcY z>4?ec9ci+JMj|b^lEVe3Al4%A0KpQVW4LGrt83?M@E=eU`YQ~D z#-0wc%h=#-EL};NmMq$96Ejl?9cCXM2I0gmnS%-?NHMVP+LZ)T4kHLB0DUykS70BF z-W0y0mj!kv<|?pW?a;AWQyD>nkJ*lkHAF{pJ&eUsTfB*zgk3d*{>7NdQ{2!l`-x<; ziFlhTB^s8;t={17Cu^!S8qA1p%K)AYF?-E-1bc$?fE_c8;WyhtV>TvR@^*3^81U7)tb?h-pQVAk|R)QWlrZETT4sJ z5rckEgc@x{Tt^v{qQ)x zGtMAs-_=>3rpkMvF_;o*ilr>PPQzighGYC@y;gE|kzJ?+E^r?R3e(0iZ(7y=U}hex z2S^-hfXe*<2~ctt_cE>4w#to`Ewtciz>#ExN2lJ*OW&|(JZ7*yrTjqBnwH){(oVje zo``EA=TRE$ie_4AHOE;7eP5;(T3#WK^uS*qARyW<&DWw%c=}1ya@Cp6c^?!mzTRxk z$(u`(d9KEF6slM~E{F?grXfWIk5RU|7@|<+CQz0;^xdd5Tw%5YoW3e)$gWrit8}= zeVkhO)5#y61C$xX;F7XJHS#QW*0~S)xyo8()O@0un$7PvwrB@EKF&Gci7M<8b2A^N z^PGm9weG?6GH4r)SP(@fBn&3{2*~;2_ z%_>$?H;Zn2$DNg}cX^YUn~5R7j{4|pKF@&eL15}cmKtvqcoTIoq&->Qte@ zk=|8(3%?}5>I+sdyizBOkc4M&VJlcfzB_&l?0c%2%b^=B{GC-w#Hr~ANde9gPv#~{Ev#K1b@uJIyi!mazD&u=M8Y?G;U5FVYHgjDW z_f+8ECi4?d6_euu-Q@@xdF9B6qjZ8=1Gwanm7P7>M0}{RM*)Wfnd+gyIqEMAO<`nk zVbW~SX?;|n6n=+NT0eg3yb?HYH&oyj92q#@^eg7?&wm{hP+JQbSKjZ|2Ww*(_Oacm z9`rHh-WfrxUKz-DF^d`Kn2T>M6_dO*Lg)!dA*~m-Joz_sBq?f3TO0L&WnT7h4$rgrtQ{|Rp0iGt=lcR%@6wc<@;@wJcB>{!2$q~5NL zm91Ihd*|s7h;sz|8s2fuJ!BJXb(Dzk@RrXB4UVXi5CBlWs;t8W)Hg9Tn_Hh1mY%wf zjf+{lG?TgU1*$tNzwUtVII1uix%<%3<*7y1I`^gLoA2Y)(q*@l+nqGP?H$+!QBb{{ z0j%b{{k`pEu6OVYG7tQ?1^1ipn_uIEBda6Sset{dCKfR&1CqCv; za>sg=NBY1eIkl}|*J;eiwgIbmLHFq{cRh?!%y!n@8FlH$+aI)&3(8RfEHykazE0AWo)&6W%_kpzyd1Pp}mDGu|~VLp#`#@?`+cMWgr6*+oS%^1fJ!}+jid#IcC z3)joG1zGhKkmLJAAAmxjcH)skm^1;GW5AXOuVH7=q|Fr2uI+~S)rfW1Gb9m#y$vuo z728wH6^%9xe{PCY7&sj_VC5Y0&W~?Z-f@hdvcx&1&8|-Zjw!5JK>hLOHVq+EfA;t= z^%r&eZs^2RF%RedM!eSrWR(eG-2-)TVPqN6bx zVLb;Z5VJobL`Vkw6{;uYgTk3GXDM^JfKl^o_qP zFqpHfRr?Vri=*cb1Xc`qK5cJ|WpEJ)F-)4FTez_M5?u2|ECb-q5v>*g1}|o}-NuIz zFJE@)dR&2 z?>~S3oU+J$;_Q)~2j`(bkx7UM7=B&YQT4`~V|N+xhkph>27>=_Qk2zUii(O>cBCq4 z8X3`TZEtHfMe)#CN*j@SvJ2=x2+@A_5;N$sO=5kSEQkl~=lGnS?JH_yS` z)PDv(CgT4%DWF@}Fh%4;#9j@qIM4KC)6SLd?`_Gyl{p9y{6{^#AjOzR_bAlH{(j}s zk00f3X7%*BBLaMfH^B98e8C};q&>PyEu ztADk*3a8=WyKWQ;lpuPI9z-{44Q@Q0{2uq5#LwHiEoHnw1Y8*c_leBFHNCh-mAt3r z;jY1~j&Red8%+qUuKLkUL@R+@Kz@0F*b@{2JrAIwq8bK>#?cllgpA^e3wH4#r{KUB zOGCzSog%c`MI=F#*tYG-s_kucAne5EwEi3kx`Yn?Qi|lhiB48TT%sPa{0$Z2ghKGBBo4(J@=ZZm2j*xJwP!#oKfP@0Dgd{=veFRH5 zlD`8uHJ}6sCHu2O0Ws$uGc_~`QwS}|-hI{Yw;}#|8gN+%$JGGOBog61etGYI>yjxB z#MX9mG(>Z_+6UA-zmcD2g(v6VsDWeN)J%W}BaT(u?;nK8pMnb&psnNfJqK9PqXge> z)`yty_a*pYun|KC69Sx@vxx5Ju;IN84ON)foS4uPL$wTtWTRA9R}TSgDH2)m^yfW- zL6NJx2Ydq+1^A;~k${be3&^lQ*@!I}C~+y0Tmg9**sXFugE!!s2NbLUqf++3`)`wl z$r*q8Faqo$bArkhPsxb+6j{$Iw%VwnVN*u~UR|mZ^*Y$kuR?vyb-#SbhT&|uux}$*Fc9lMFUvdP@qj2oz{QBIcPhWUpBl8;r&F4>kF_(V4$Nwh+?a} zq8=y!2lvZ@b2fho=|et)qtw9~{6(zc3h8huPji_vpBZCL^{{JnlS<1Y(U z#`njz?606g$b@&HLG>>lq6sqzg&oCd$^74dX+KoFyYL zqQ;0E@U{xc6PrJ*pUe;nl%%%GhoxUhbZWpaivu%2*ul9J zv}7`#Lbk%YV?H9}xLL2}3p&bG^$x7%z=9ttH&@_s<8${R_nIMHG6xcYQUEB~Rvb$H z>x5u95-{A7q|6NvzP<>M!DDczVbFVdyou3DA7pxO@$eKMYeO=aHrymihI5J5b+T*J zmjs^wMpz_h2_V3#SOO9<3JnbtJ3GFq?H3~1RTJPATp;1jGblXjK;{ga_p=PV`_WhF z7@2$iXZ=HQXuTmi$km2AZ!k_Wc1%xCEpJ0#LQVs0cwOdkiAn>+g_0E=$G(MjmeiTVk5Qhm8=0WV zQEZ0tBTe-8ps|JMv?ReP{iEh&hKmwyyo^dylc>RN}{>z~~*V2tF5HLXj6v z6a1u^-Yq>^&Z!v?&DwMp-Ns7%l7;86el>kA`@4%jv0S>C9oTrOEDw6})zJbor6{A- z9Jbhm&}V1;*)a3wf)&eb>8&*r4tYjXw|xJEjtf3f); zKW4pe@uZlkXY_7&w9jmBZVhNcq`jT2xrzrmw@p`sXUSrKR#MfVJFA?@+F?&YA!VQ& zhfaNm*AjoC{&8v~*1Z({1DGkEl$`#TnG(TFAEny+<|{oeWq=E!GLeRKJZl+#PIN#3 za;Dgc(B3>!Pt85e=Dcj3$}AugexN(&fQ(H!pP4wwwZ4Jz%y)NTesuT6DT)&qmLvwk zFjZ-u8U3EuD%7ZL@qjN3mo{EQq=2MI{cI*UV(nANPUvq3*Q-Ky z%IgP_vOot1kgif~AFJ+lJCMVTmo5aljS&jMIj|J^@M}R5g>09?^FAM9tCj}0I&!Ne zb}A(*LAa=}-w1TWsC3 zM<+;M^~@bOj&@2bmF<++FB%s;8fAALW|yTLXB|Lh<>U+#c}eu}zK?s1wF{@1fPqcX z>?kfwQ@|P>FAjMzGSIEB?#{dLIZuW--vk=5-|Quc?GNZ3$Bl)gU7}h@>HcJSdjaBPK<2=SqFT1&`VjbH>TPy z6X>a&((NPrt=R)WnE0C+c#Q!L42_{=ddScVfWjBv&752gi9rEeM~U{GQ;Zv!5+H4& z-cVfN#NQP5d~|2nes@x5^0Pp|_b*s{MgB2aT{G2EkNMU#`7VPvLyM5?(s%)+a5SIL z!7{M&v#gZdm!icNF`(=FG~V`+DK>Ez2qTu>1-O240}C<7o|>X)4u7`T6CVB^&JQr^ zeV_(fQbU^4@bR!1L+Ms>X^*u+{AgSRhs6yT!Z|+9j3(MODDsJ4v`Oacr(?I8XnqI6 zb$T+QtT=8_4s-dzrP)1QLJS6UwQGPGODD&xGj)7&S**6se5fw>GJR}NTZsk1lAFHsHp8Nh2VS2i&kXz zb(%klh8to~XPAXUJ7IeOB$EC>pi%E8zkr+p_;TjeFHITzUjfj*4xPxn0{X+hI!o&K z$@u%Xx*=8P&C#>~QCSkTm30B;W>~+%N?1p}=ak8p164rVs`hrN$A_jzwy`sN?E}N0 zc4PAvMbn}DLm<-c9Sho2;NpmHVWsKh4| zgmB)(#b?6N*cWK}u~*4@$X754(yzGD9P~v#_*EGaVBNE?2Kn2)OcNDoYqhmAU|swH zE~fS=d(Hdg4uA%X+1eGNxevL0D67RIIomrxlPW`F7o|=9WV2ky=#;viLL1YoJoc7$ zEr!mjj=jx(`x~Gj)y0R8Z{30qA4nomp>U<*XB@sG&|$^_i@W$i1HQNcS-&?=o2P+qXH0$`y%KF;IUq^UQ8dT)G_rS*EB*QIfZ$zLnzju2t8qO z9Q?Ti>!OVzua@cW%08n-io27y7j;r|&s!0t3*bm3TeIPmlep|GrUf$_wzKyhjh=`h zgeJ_!+yl2%WYKJq@{ud$kkJ8|(9a6C9zBMFW_eTHd62T}nKd6gY_uX>7#C%)VQ43* zsgMdYB({u!?rhJ=zReo&hR|#i$ZKxCAkAN-3QJjn9EsF zjS*O1s*4>;M=Av^8FA5j6Xy9~@yhfihtb zG)%frVC4!!;wds<;1b8C_{m&kQccErxO<|5etoG+^&zJI% z*p0j{seg2Ahao}R0Pe?KzBmg<17m=qMyEAdpeO*9P~2i4{(}3s0QWC4eEb3nkHYeG zYNn`)16i;?hT%)h6>Pc`dORw)KSzNgbKRTspm&lLK$y%6k2-3S&9~5y?zOHwuUOZTIuZA(f>=!HE>0Rf^yf%Y3C|&bKi9$X(ST@4X3f4|}S+66&UmerzJ$)Bg4Vr@CAoFrs zGhkRN7zZaF2sb#$Jj@uBGOaTu6DtTBR$_6#(402b2bQ~D@JE>mjb%K~$5HZ;jJW%Vm zL2#1sc3&VI2Z$$*MB9lzXj*`7O<{d^t~ginP6InFnqSX~5urvl0BA&V+m)epQcJ)x zg5ubARjOc_v~Nkdm>+fnRn&i*62kn&L%XddR@lhJr8J~419Od|Isqu)89BWQ)ZZk? z1JN#neGx`r6P-hz`f=i62t)v&+Eu)T+~P|k)Yk+BsQ}6qE&TBa^Q}f!uqg)Hb~)7H z$e7?lgaqNzAfEfj6O)9dU9U>K`3o2;3c8P}1ud{~qVf+1f3#j?uc88O~4To>52KDN|-=un`7 zL(1}m!h$jD1yC6T%j^kD#0~v$j(gdTkG;zoe>zqCx6EB0)EA2#Zq8NNlB6w zk9hgsN)s`mBu~*UrYkVP0(iG{>IeIf+W_M%oUkUAuuA(79b?tyWJw^N8pMeAg=LMW-*rC_oTX5@JS% zCKDo4904~BN`?+dzXQpAHGF#~Aty2LoqZuc=48;sRu(c+7 zVP0fBU`Exux#KovxIJKof1s6-ITGq885|r`t^wCpf6XaBlK0udq_q=Fz{V`7pAJFx z1F-@LKU@>G?vNm+Cq?ME_a! zOc2Ak)Knldet7CdD7kile)B7l!MfQ&jYoK6V4!*5A;Jb_(Q>Dad_cMuHFo+ZTMg_b=N31oJTv*FN0L zF6Bqy{tI})E>4$S4pT{h8-RR72n9M#5-tg#SQt$1D&bEM>0TT?2`C|IP?Q}ds$z&@ zVq*irb)f$#Z6SeRHA{vF^aq{+Ga%q-NJUn!09YHKEP-Jy9?+%{Pl6ycrZD3M_TYcm zlX@tfJef#@X4^I}2+_eA%7o*r2IZ3<(-kn>@CN5wYTa*7lFzjrt4+RriK_d@A5euj z`V>M3aBJdQx)SO?gg~&QFNQl5t_KY7|7b!`DhGzwb25@>uC?_SW}hxppwg7_VGQM& z;a>rHs844L;kW~4yZ^q0>9U3!0%ld<|4@EZF>vd|;Fv1F>>VmQ5!8mbWB`}E64dUn zoC49!DajN4o-&dE*cZVca%bMSA&tTN^^ogT4{JoL;VodCqOazR5SWCK#z*BGPW{NN#KO>l;Qi5~Ln zi~k1?UH~bW+#IS)27(8@AT?Cx=&1khWUXx)>J(A5BtZ*f4P-LQOXvvKxDCoTxTkLZ zqdhjx46sm+G;e{iTR^9F%6RIBF~lWUgSs>L#qd$K4>1a5*ITsi!GKrQ+xpmnw$%&>}ct@V`#Ag(!=^A z-O7*V==(4)JHUTI$D!6hWB%y}U>i(-7^DoaKspJlP3z6l}wVbBWMubRDRX$yh2S&Rw8Jceyf7oc9V4y@godWF62I zQSDvty_4386=KUHb#y1%v_8ZZ;7Ag<09&}s*D>C#ULUZfU>Q8g08Qn;Ck`gC-w0w7 z?ayyMxh*^Z9Lz2+TA+g`T_DJPg3+f4P6Knrc&_5a^zFyMTvff#&sFWM4Wu`+wzi(B z1DTN=)n4+~C;AldK!j%Yo3#xKb@Dc-j2C;W&mT?%j1AF)HarYL`ar$~=`aYIaQK&E-95Z+7|#>}HE4CRC8DMKw>03k z5Y_)%@QWnSsxFd`e$65uLK?h*plHbnik8Qf7U<^yl5D$6W+Z*P zZq-i-J(hR+%$aq|IXH&SFwl5FcHDRXPlg1qG3_!=39xx3E8NEws~7N(fDmVamn=hv z-qdu&CyWJ4TM0N)OV&JE;qbTtih^&e-A~{Fa>v7WG8WNFSX|vriF4tGUd2g1cMn}B zjVatdDaBfVz3qOlyHWBAf&hC@tUl^mQW!Z%_)wholKPaDj+pfrUaB2OSj#^nnFf-tx_=!G~UEP@0!D^kTwPwx-X znt~TWT;cougf28dIpgcs=+K7hJ?`utR-Wd!8#prnPt4TG5M!8b$F0<}y?@lYa8Kd? zG@R|=Y+)q9wP=$whhy)K<*ZxXqr4%5g~iP-D=DGM`M)MD;EYq7kwn@{nSW1!jx_-F zl8(#A#5neDSQpn|jlj`F3O?({T#hg(IQnyUrW0L036@|ljnr2bP|&`gsB;hH7QC-@=uep!|3iXgDiQ&>NK zNg$yT$Nv2Y6s&{EleUY4B|C9gE+>NiM6eAxx|_|YX3ibL&Kc~-`=2uE)F?pu`6w5F zVpHlDc$y2n)I z6S~CB@I^yYBXfqy>hA+w*`h3qu^o84O6w3K@!VgffwD^`OiLH}gK6$#N6WeR zzBfXhu^J2P(%Yep!Wa8;Y8dsTCZ^=}DQON&``?3xsgr|Ka*TdJ}z^?j7L4&V*)$j$64 zTGA~i&=k{y;q4!e$r8-6|7(IdMP{~6+ApDa0k0ao%$h_7#P%#lASRS)3x%sqK>{NT zMhJl_dKnvyFwi>|K}5P9QssF!6QulRydk6RGPjlH9`^l9Kgigg4`m3$I}1>!)4dC1 z?=f#Ru$)40w=4nwTZnEVXn`x71#6rOfKwrRyhBw{J$P&9(JS(Y+MyD`WanPM{rBFy#+2;Uo{d2`MialvBg9(61q)qDNc;RVxqAqxxysmw(c!nqbj07xqfx3t*&@ zHiB~L4oGsi3eDbx)GYiSOO3B&-|2!V_yfS82ko;b7*qw1nA{93!m`uzDi z1s8}*d2eenVr1O!Y-;1)Fvwzj;J09f8$88PE72ppuhb0vqAeKix5)|`y(K%*A$bBE z+8wTgz8Xx99hgmS9Xd=CzQH{N_s=E3Y?C+pVCeB(So+h7Y#A;)2#^&}qWKV+^65T` z545-tAAUWEA*2LR81=`@6Hltu5QMvX*reqcwonw1v0QdSiY_dg&?y@X&CemQfx|jQ@?sXF z!;iU?Cb!)IOxRc)qL&V4YF3hY0RBqmPQuTgxofZjR8er}Ec&?dZ-meZBTBB2QOQr$ ziy40KG{`LY$Qxmn%)F@7z3mR1@xSESA$YXU=w#a{BAp<7-9?wm6RIx4hmK@sS2OJp z+OQHGwBMw!9ZER3V86KD8JOZVJP5})c4TRwh#%AkyDvOH0>T~Fp%`6>3X!LW%os&7 zgJn|7(9E_M=UGREZ*pwVp07F4$t4&7WMc5N3xg!;A0z~;y-Ak7Hb>my(u>y42K`f!fhtV-9E4JgK9qrKR&phz1R6%oo`o{I zXmGJj9B%9}Vv&|ZOvCpB^r;`nSU~cCgJWEx#|cj&goqR3jV9JDm{ur?SfCpnNQd*9 zN;E7TAbxdLza5mdL;cU+R0x5ekb)egAt|LG#z`fd?wRX{-I0bY-kl?h=X8D+)sq^o z0$IFU>;>=P2f*ST)Ixhe@euqt96oyzV19vGBEh?TMxbC~`?d;N&Kc2(?1>|{1 z36n?s*h}nmNAUv~917o+Y4eK+Lr}#qtmwjY|F7j~T90fV>doblHy`BrF zO9A#k^b;jIF^7?<4s<-IgY*kvwu|>KG@7JV!2AHP@efl!E-+vr_HdQsM&ge$lrIgA zFasD6+SoHk=OY2NApBQzpT6oU?=!*d3R1aBd?W4I)`bwv>@a8)Co<_%nzDVRzbDaC||0?hCtp6{GZz zSwi~vDnVxGsNX=sh6;cOP&h~g9vqn%iBbrDw2Z8i%hsWE9Dz*$RP7v=H#cE8j=175ppPqG>oseA)$) z<#nUSq~OQbV0i8o)VR=}fye@dF4o03*HKN$au*;8lyrM9_rGP>3_?)KMW^LM!J>2p zA)$xlkxCPWw%m4P@I+_b1^#jxm6_O=Rp=Ctz-Lbpk3b8Yp>g3NF?< zc0YB6e1i#&cd1@afTknLa0H_FX60p!Zv2r!;XDhe{yQvGAl(`vV}_49J9J3I0WO|k zm41n8FX%r4FLFwb*?6MtenE9Yc29=3Au5C1`2cMKgyMX6Q1dvFC?R(!Clkn_1XYEx z^0+aYL3!cwo9+FNcV2^`RiDycA7xH&9F+mHiBFHZxK}vDLw}I4cw|KPGdn#|>;QYG z@NNHX&V}#-M%3%8+R;=#@M9Kf#HXo$kTgyDINavN^{dn?vV0i`(eJ-nz0lQN9*yiD z(Bq3V{CYaGphywP1zoVLevflk57}e+h8acE$fJ#}sCJ@8>T`XDHYy-waTReMc;EBk zU6{}z;T+;T6x{G|Bm-CqZg7HyGA^cSp!oe?Vde0|vQbD$y2u`@H>g@Y zs9vKH!T;YqK`ZfaL_&M&$GNM6%-~H$z4Q8?q4Ih3o?y_P;L^}i!WM60Q4IZ$dn!i- zZT||}??}?2#52{|`dt^@vm8Sx0sR0&MH!73d;QQBPZNSG^`*g$Y)U|!3%El&A>~Bb zS8SZK&Miv=01^lb(}Q;`w@|zzMu;GLbgzBSMhS?@5hidEm_@zA2e}qsNyxRpuK-hb zr3KLE7!$mN$F1%jU5Fd(41{hkfX>zTM@g(X;&JB+y($M+=;Qwt+B!Ecfg3N-Jz*P* zl7Go^xCV~1F0#zxWh`pv{}J2PIZAoupndSTxgx(S^DuB+}O+T;14b(;TPy0iRx;!CzeC0S5+V%X; zH=lEij8^@VD67B57gDocy4jEJm$#=uBacPXqyrRD%u#3`4_r~DyadobR1G{kH{_Zh=$N`>LOo*DZ_Y@RD&*0EO^L5(A?Wl4g3)xp0 zI)yQU(@LQH!%~?J*&_7*9$#u(*z*9zMySTu>4)x&v^kQO$2@Hd>p}zl5vaiDzsie1 zmA=Q%ql@yl3YC6AveZTf?px?mmVgHOQRyQZ=%5+XC^$}pW=tQ%nEGr-x${cAfH7Lj zo%H`0gK!~U6Q~*~wSTfVG_tQ-KE}B8CfIG9Es`i>^J3yAjDYe2pl@kHGK&2$3l=mw zJab<}7Xn@2%{#Dk>Z?pWvU)v`U>#OPC1cUFz+(rUX_@>0fv3&Om{1S4bBzP9I2R=b{UF|s(?7ga+L4O3(Q5& zZHHS!s_<+s(~B@%2cTwWEI~}IyIKI$P0?K=ERVo(UV48v2ir_VpoLfP=CU2?lj*FG z@Y3bENU*p9;dNDE$Ml(;3kMCC=%!%AA`JM3)jZU=yvIlIz3_@U`sQ;z3XxjJs$E8e zf#X0;N*EP*$N@@>r@u>s<6OA(+a>m>PA5o)wm*2BaeUAx;exRC7#W?wrDlaX)2f}K zvm@@;lQ~kxe5gC=t^1g(?5AqC@RxUrxA%>%?DTu~8uG^wsLHccENk)VV@d=pN{OI! z7TP}xs&?=toa~-|T?;!$=I*fgXix;@`H)7*(b?73A1PwbuaOkVVrh{Yu}YX7R^;w3 z{&HGy5#Ei3%i=22BH1T8EdNO$HjXUdFeepBAQW?H1Hu+w^MJGofrDl-H_P92w03C{ zoOV0EToJuBUnj=E?6k+T{Qb00{+~$FniLPm^TXmUckq%fdcn1DPBA0RZOzVL%$PEC zpHs+% zWV>?RUPMgvpk;A{dTlSXcs-u!4e}EIqTueB|A_M?YuELaKrsp~J%guX1zVNr7}0}w zf#$jlrbqj1@C0r^yrbs)gb(O1N380!TR@aZ{a9_lLB84mZylsra@yn^^BMeU^G2KF ze$5o~LCIp67idkPK8w4_fBD^Vzh~J|LliIoK)Nk}Ty}93LIQmkkniX&S?UpvUcYs? zhH5^MHN>2TNt=Vhx<$+IPRo-qg}INtvpjO;2Wq$5!2OgkigQ1l?vY4%qc(xkHC3oH)WHNv?4y5@b0-j$gUfzAkmi!{P#t`>f;G z*b?)?UY3|fe6Xq5!LO~~cRI30uIK;BzPX+C)^_s@V=_#ZKr7%?6$K@iTRDeW!ij=T zI@IwOAu|hNH#HiNojw}RVNQ%n8-;J&I=L|{{f1_*neX;TEljZp>#p_nhlTG?RLbXR| z@hjVPjLJ&yYDu|ms%QRCeDrrbqhD~QrK7|;KXOuVx9Z%8^L*jM zL<`366Vhv2&bDeVJ^%hwVUojBlS~=U9~Kx<9_4{hvF4U}yQ#e=8lgX{Qh+_@_AxH(h(ivW>l@rEjKQDF8e&m!~cITJdDQu?#%M4xaertJ^`*t~tb1CQ`rSeemr^s5X;p%vNX2=2O6^E6o z+P98Xwly2n`s}a*c1I^ z%FuGw$<1XiHa5#T$LU?w6HfGQ7Vh6+L{(7oh$wG`a*Z=f?sG885^&F@>G(U)+|ql3 zo&FZ%hw#8vJ#qBKjRaz#W_&pol}}h(t6~BME}b%I$l*vTsH7}>{BS_(XBF>swqgx) ztea)R9G^kPCaV~iW5 zI7YwSU<&%R&e28gCE(|6xI)HdT|W8C#TesFz}pekdmbgPTEQ-5G^*EyhI$jb1qdZ# z@BX0oQWqK`TY4|VY+5@)J-0tX!xOw#!E_W4j}3OnqpS{Sf}-%P3Z4qy^WRFrKUku& z(By;_XkO2p@TAK9bTJS~djY2Feh|IYNyArjSf;us?niHZ5Yat{t?w=tx7|rI+CCyi zukyBI`P;WE;>;?C3x|HoH>zCHUT!e!`9*UcsJN|H9Xg9_{~lY8n6%7zryp>WgJh5n z$y_2T_H-cT>OOvrviMA`JX9fweCBF50)%5*VQkS zjTYXpdAP^AS>;cUEOESxDm0-1iUmI~7`rN1z<9BreOkdMn?P=6(oZN+fm7g`J<@!2 zUT;p%S?9p2LFAQxYhhK{-u7XmN3-Y1-^F(>i*^B3NyVnkyjqV`J{`Fcmpn6SlpA?? z5%BlZ5WUxdY(VTDa(R5nMyD@7uBzxmzD+UDeUG`vgYMrA&&!l~irA@G&3Ue6W*-XL zHg)!l_ASTjsBgKQZ#Cr{`_8;IK6@d~Om{KQn~m-;#A(el*jrv!@?KTpLAwlz(3;Jt z=M4Kr)3hH_?afPde-0OvL=GY*E(*yDXYN1x&YOE!bl6jT2wKIqd6cv-mPMDvU$`WI3<0juf1Pe6jv^6Z8qR3-g%ThFO3V_LG@`QQE)vw|I0-{G+y~i zh_5w7C5ms|htrxvtyG88yTd)B^~fdPQyo$Ls@NupJuE zPC23km1jWxb-k2e!lE;Gr{w8peV({8ru}M!63D07>mn7xfA@^Gl-(9S3LDLhN2zn- zX6*#OFMCo}k#U6m>|1Y$q5?EOLQ0`f;GK$BYjv+wxUr|;wuTnZjZcjMF>0`r%_z7d znD8$2$G?P(@*BXQFq##KBi>fkkeD=31 z>lMr0!?Ta8-rvU8EtDrbLUUhzKci!W1XiVa$hshEb zVEf=Lw69jni*;4G_gA&|PEF40*HXB%SLLU!B$L(vaOPWVRZ+B-zmG5HFHqKRcc=Wx ztlI}#&w+kl16~R*F^a=&`$N<6vMx{AU-#(gWJRVnYUZ;y>&DzUg>@A#yI9?@nl>CU ztb0Op<_oG(;V6L91whg9-XzqPcUrP~-Gya7DKkIhaTo_J#K(N6xZ&~6?I=S-CqX?I zLyf`Wx#v7!HVCT}M@!8OCXcE9)+XVlAW@#9u7|t#`Oqo4Sz=1j(BhpaX~W$C(jQUk z73|Z}-6-_6PH(%kn7bI2Kg+FimlL)hwY68D0-~^k$K`FEEurUPwlr+#<~#+g538+~ zCnIf|wjb?HgbI%?;8zxpG7}&v0sh@z)^}~RsWX> zXKoBpB3=LZY;`|tim5dmt$w)Y&+$3~!0(xx%S(q=yVo!A8~s@|tn%Qtw&vzRe`dSp-N7X@jp;{Mm~O~bdZ#uKdl{j;?YJT%Nf zIPEfH^)_|#ZHn01`100|g}J`H%WtKmW`2H{#(!YKRGAd7RHvFw3#hJB|E-~cWc#*3$^a0I5(w@Ezc}FO6}fQ{Yfvf zj2w+$+WG1CGBerhywEkPs+avjaXjgB8&8(U3I?eAF)=0<;y#EMgd_4m7q2}z^gOBM zKp}4$Uzr{!RZt@R7s#%ZthT;NsibZVI($rG6-Bm2WP#uMPPmi*(yN8IvJnBQ!-c+O zr{}L13baL!a9~|YN)!qQVk5pPT+s7FirSf4F1VDWFjw50Vm>6b8kTu00oP)WUyCKn zXSFV$v0sj*sa$WQ_b8Q3HZRiYxwrYFL42p8*tJXBx%=|gaMajG{bAa-JR{Wkwc0M( zEh3aQLn5?Mku(DjP3B6#8%U97nu@Yloy9IrNAGHtv(6;<9@Zf1jEV{rCw$efXr@~o z#}q;`=XM7QqAcgq^%r*DEol@E zOyf9YuK_NKl9bzI_nab?FsD;`D9{l0=4FBgm)tutN-IN7R~}XeAB*g@kc?z@ zaQh}_{D?5NZ}qg?H;HkuDKM|d)M`cYT5ao#uDvBYHb2_<4RGYme1)f4TWPy_pNu^x z4`br@^#hhf9JKAWZl_IRWvyC09kY*pwT-#U4W*ucE|qaS2VPZ>?4h&OV7|EuG~mEv zLc@a{Raxep^w2 z8jiUC_$D@>IIf65C|<}GV{Ubu9jW{Ey=uVlRtBHZvyO)f48^<$Qv;4QRzu~tOq~Tw zIAHd>8}Dewe1$zZ9PS-9=TSRo*XG@!5i8Wo%d!t^-JBdrT@7;D9OJ*llNi6Fy{|#) zegT%XZ1UOojP=3RX6p}p{mn(Ey$SHjvApK5M(NvaM4I}T;E2qO?ebsG;3D%VsQc(# zB0S^Cn4v3OgT&^LqyFAr>*3xv?U&R=Q~Qn?*JTMBwJSbM$P+XQTT{sqxE%Sy{qH7U zx?5*rHkY$JAjoy#iG_uAcxaLrp7rnXsQDq%5K7b7t;67{2#wtWY6{Zzm>)_PWsGIt zgb96-vHSIx)5}L+)F9O6AsdTt&S38DsnJL5b=C`$3Jtngrne*%$P9HT`+WRq8t)oJ?A=u@$Ihe`TParlLezlv7#CLVn? zOM9Zj=~*=?7JVzb@w-E`TB}`sIDO1Ss&mGJ!1mQz>ga8z)!S1u;*1Yjnco$t@%3q> zX|cqb3LF2Kb{wdB(5m0dzFK!pCaUk-6T0+p{>3P&qSmM^1p_ijUP>svo}PCZ+&$CGHw*n4E3A>8k)f6WD^!R`Sy_w6Q@=n? zBnuzn7m=G)uA7kQXl9*P>*|T_3#>bs|3<5_iSQd_PwP;W?I^zNA`$zH(nIf4+INYP zoD7NDYxC49r0&UW9=mC=w1UGV%Gl|5Ox3H2t%<8XA%?VG;$N5AnQ9B-n&%oNv zT_2ES7VDZ=31;ZAt;e=D#`*M=HGPOLP({d$-e8$FYH!~pHqUTJ)_q823fqs=-N%xH zhtzRDvOgvfHjJE`Y-aT)wgjPQBiD7DWeO!-djAMRFnvV;nEB`{Mp9f~CDKLClBs5@ zhizBniE9uL5G|T1ZPww@exQ_PB&p|LPk{Q45<(8ASr0X6yKRImGA6rE5!Q%k(Y3ZIeI16e^ag?N%@$ff{=WXliAqv&OdCxL0GavW7BcGbYSd(7YyDj z-=Y(*e)N)sg8VH?z)}BDT{JihMT}gxAGDQw{$|ZtC*wsz`{1ZYXNV_^j0@sF_3*cy zh4+F_#=pexXDY;t4ei_|e2zLWjv1~Eo$O`b8b!c!&99ClY3$1%Y3-TKLL_dcSENVz z#7F&|`)lP~Vw64DJ!nMF$fYtWBeks2l&5Ng&A4<22AgsJ86u3P^(%2|&XFm9g zGr*KM*__oxFO=1Pm%&NCxPFQYTY}>}$JrxU$A)pMRv(m)7TsfXjB95&@6N=@!nKG` zzb(yj1qVzNc{@Bj9MJD~OKDS2Bi>z{Cq zsR<1)Z>Evu)|F~?dm}9Y{@K#2T|D?P))8K(aB<1pKDn9w-6KmT(y^r`7^ja%veAn? zhZim|hd2sEZ+WI{P^O+z~KE~%_cxJ~)~hno+;dsUqJd!sZ-$;q|P`$P4RqEkU< z?8ucih@;rN<90t08!HdtHxfwr{8Sh*_Ig2LIlzAk$sDTc8dYw%(y%hoLA05=Z$Y6IK5NowtncLD{9!*8_~Wx$Pw*qj|fS?@=^>Z z^$_H3cg(wIK|J5DWv%wx&pxnvN=KAyQp&`oYb;~n!?U^b=QyE*mi;?u8uKe!)_Tbw z7tmh;(hK(?3a2Jexy6-qOL9l#K3r*n!66)mAfh2)W2sj#f#GLq704}?&hcH5I{R#u zzkRMC=5%gQAx@*mpJ(IUYU0R&fV5rsTPm{g?#3mT&q>)y+8*s27fbqW$SpN~9VzMb zouF@MB@F{g>Z|OI-zvg-CSH@HY*mlVA+Xa?jK`H)Z>iiLeXKa?kq5ZhH%)~@Y>33T zDtS#wEW?q=tye<5=`wifvvd=GYGt3K4niV4vXOSbN*LE9nHEty&6xjelLzScZR6$&-XFlJwccpuDD0(M9E&ZFY#D<*PZ=N@01%IML_6~l0Q1%{#o5>Ucw z=C*^x^DN%UvR`}^gUE1womv9r|EBwKy{ zSr6x_;t{^l%zCb#<9ntWyl$5aTcTUYkOZwpR=A(cWm3Jhzn%V2F9~bdyK<&|y)dxy zp}~EuubhqeRff9-#wtICbKQ)6l$uvoLNuQ))0*$^mH$i?qoEw>mT_--7OlK0TVnbs z%m0spJKh*%nxZ$OUx&gJRAyiQxje`9ezi+g@`P==P06(bvyX7Fp8(*HHXYm~QlY^!H0;ELK=PzHr%o4>H zEgeR!S>})h9{!CK^ncQw8QSWx@kPLWXU$Sfu1qhgfNNgF5ZkyaCm^h})Am-o-E)GH z2kZ7G4tL-oHc#vsckZ`5`u;N&zOMiF^?`NLOkF-nM&3C@z>A^=&B5)=$W)r%nGaq$9hGgK%gnI>^=S9}4&u-5{YhB-dA%dv}qR$-RSBd!z76 z$`qOFZug+Nqf_$pdMSro_mRdI;Z>oVo8qjb*$3|})eZ>0mU{a=y-d}hzbi&TuqIiS zsaM!XchgwT@v*?_eD{`O-ZK5B%z`UvqaW$du&k1*vVl3%$Dhm7zFx(DJa7;-zRouC zfcZ;FsG+zS$%+6cMfI}L{g!LGF2f4GSA5|Lu$FjnelX`_H5|ez@KL1Q}7bRH=R4vNxn?(@rS1C;*p$YuAU6faq^^PLalQ z*^whmwK-0`b)eewacNwEo@BpxgC7|x{8M5eS@4}?wQTjsb8i)kua|(AJ14CyfdYIi zb_g>%a?kLCZpEg=4Smffl>)d>t3%_rUysTeG^n;h``qvOuf zv-0ul9n&Wy<~dbr910dRP5z~BiErgw=cax)F$#pIZavFcsn{=_;1pRDa80RdevU*4sq=h1)+zCK$P z->IHFSLQOfviOdvc^(Xj`*g3@k6LHglJKf_E>0A`ek8a-=gb}7!$QZlY#QfW+aU(M z3YQoBYV6{7LLF!DYC)sWc@{1NzPJB*9*8&3Sf?DQTwMi=bbGNS9tEw0^PGw&xJfLz z>L@a`pHa!mB9rt@0F896QNBrM{pfM7RBBc@K0=fjNvdb^w>ba)JC21@k!I8l0j=CA z!PgpYrik_n2L-M-Qj#UQEoibxsHV3(bk)5nqC-WT`s`UV-zIGU1w1z3ag!+u2&4rP z5D1*T;(HXn5U?1KJ8A1JzT+tp+mgZ zRnZMonrwVm`YS~aPbF@aQ2KkmijSI}%W+E6JcWjxwmRn_*v&#lfvBe=r*S};_=q_- zhLyC^tL&}JmSHg;q~@3Brt_ml>!N!bYBC3li0 zu+v5>YuuA^s7!ZgIT8v06%phx0g2Q2>J1BDuE$8>JzM4;K8Bd77vGq9UE5#?uMWyQtY_Ky^!!=xq>7lmiCbF~J743E^T~Fn{QwRy4Hf?Vr zknoNk@xNC8?$uE8Sb~gFcy9cWch(gArid`QBdV2oam<>7_~6}-y5+0+t$$Z1lb`EO*4`&{==o_yXBi{n~@wjEK zI5KQ&>84-!f<-L_DPsj7DmjsnJGCg$_R@#dGS3rK6(oq0LwQKwG{JGlY z=xU%SWNV@Nz^@c43HM3EUkk8sjkOg^#|;P!Yzvx|1f(;3@c8@j%bjeIXvLm|UH@I< znuS&4xxZ!)nBqRK2334KeUphkJ@k!$gm&O&(_X3hvtVafih{DYDM@{yr@OMpR<-(o z*=?VL%Tr@p4JN{V!egx>V0CsZWN;n;a15;_M``DMsgvhy=7J1V`-lS z@AvueGz?4q%+j6Ki`V9y2HYoiXT-CTbcx_f7;}H~B0)~1or?kjWAM8~l06|$2_zfR zOSg%4*On;roR=Nq)Id$aE&KYzaSJ|;$9 z&O7is#XEqm%MbULHuJp|-Dg$ex;;VulCx;=nSY8^cG+U-d`6mxmFhGZ zbvkc*K0c?VsK&|UoiDW^18;kStAfb~{37Tb=uUsJXLzfD8CPxF&B#XB)rBPY5Rs&$ zJtPg6)&uWizdp`BysBo9LUi?gRqa}gt6QiGj_;A-k?OX+d40b1OXJv2)mNdiu41Re zJOqUOIBeM1SA^Aku_eIEGvV|$<-aI=a|6$w8=DwmbR7I+Y|r|pmO{f)y%G$5GzJ45 zK92V^o59l=%gXdJ3Lk5>!{#^Bc_x_I?bF7dCC*He-2{RgJ+!qbtY-WR5?l%$vip2B zqw#;H*ms03=~;Bc(XgH&3VpaAk}R{YBtO1j^v+Dreo(o+`DEP2BF02x&_@=orXd zxpojyaCKX2Teq*oJjlQ2^oP*>4CyhOhI1sPf_-l(}GoO~~iM{sr|i`EWg!fL8Ii z-hrC*>$&cXimj|08&)43o`JB%M=Hct%n)x^+xT0e18sfQC+^QJBqeU9V!EQi1HsJV z;_dbGJWIFKCL(E@XTN3R(RSpxPM7>@V!nJw%;S7hOq!S5eds|B^(-xRFd^>46w7;h z>tc!80NOG0RtgScqh&ySeG;H85uP_jh-i6uP(`dfDi9q z=lMP1F&m)(GC{I;y6&&NU;DeW;p(I9Vz7y;XkAewx@Tkenl7!kw#G{K(qA z@qs4~g%=*uSl5ooRyk+#>S{z(>C20y&$b7~D9@}oVuRifnLTeLgA zd)@F1wN9hAy7%0PS#V}2^4^Ti=7$!ZG2s-~_L2Ld@3NV-lX?reMIF9wcBDjHUP>I9 z*7-dzR46tS=5lT5`A(IUPkonvhnN+gG8gF`+4%cObFZ3&^7m6~?G(i-c=^-&Mv_(R zKU-28bp(pqq^tAg&3m?|s5thuhuLwka4qmWxw~QFCi+Yv_-1KufZD$VEHZKK0zLK6gQu15FuUGUULq4#PIWVO!_WOjOB77;RUQnA0HuikDJ;FW-+O_}Q{@1u zP#L;7r;wyQyU^-_%`EP`YyYKMadWOy33MD(v0?O^!qnQQ*m**%EGkROIT zA&w(08>Yf*&UnglYWk)Z-BZ#P`Uc*VRO;WQS152!X!-_;`#CN$U$sTvoU)m$Ar$2D)-{Lg&(*7qZH*}_(#;oj{O?ND=EB(1m|en2&v*!1EkwId z+3lo7)JREkn_L&tEqaFhUJsvSG{GryQBSVZYSg)8^?E5|QK5)ock|n4l3V*)wZqYh z@DTRYMjaysHWbc<{+Z@9@D%&Y3|~A?P&e$bvBqF{cuKw+n-PJV*n9Xl$%zkgmv2g) znMfD6a!Z_rt_wtaeBmF8rY-osb;sR8#c26~C;RWQy79;xv}VIA%BI**ec(4Ii`nQ8 z-@Z8&vd`FQeshy9S^YuA4HP*eMMwr=7!23(LNCC1m1cKc+otXVm={lL{6+Ez<~?}L z;&T@T^S;3Q=*gq8qT<41T7Kw^4L6%|{7$lc{XL^rr?Xr5)JzNRhW?H8jSP=AC9!Kx z3zod^?u`}b#QNzQq_3FiMbc8GRyiWdt3_oy~q_q#2(PS4XvNH+bT~C#i7{7;{!!MCw@x{@@@dBaA zdoicK2Ga^aU_P39G5)w+?J-jMZ2l%BFy{yMMSFT?UG41ElIN{H5ALh~!c(zgn$AN* zE+R=oDsD97A`47HAX5YB87H@~-YZ%Y1&Oq8>|f)nE4grxthQv8K~KRM~zVceqm2ZPxQ zEuwI`coNdOjTSc?uS*`(dL|g-luwZ(&iuDA=c6fBRjUl4r}4X`vAT7Fd$p_j+`8h0 zjVpt!eNzh`&w42bC%Zlq-#I5XrW0T=@nq;vpa8{#@#b>z=k+!Se>LA zy1*UQsq)dza?6z)i|1GwWGQp-i+h049bU#h>%#KWGig^#%)~|Nw9`u(SGeDZe)fPg zW0qFPqT6>oiyNDiZj^c6X|uWoOAE%!u6w;h;T+K~VvMZ1dl1GR)4#gMCe;QX;lu7m z+)%-V;&0=#Pl*WpEUvMrebm)Os?q0N0{7ZsKDra&A6|tW7a~-YBhzZ+ql3!0vV?FZ z7~MI~|Mn6H0yD9uc<^!lWj)F6V7syeaKEUzmphNmnEry!_3s;j>F?&ItoU}ljN?W# zk(Gzf8Uw~w9Cx(Z1xtD!or_P$qK#!#V1M3KS%mMkE#k3q08bOTzOo_66HB*cqY^}X z@0Hu0WMt88<8fe3-`uWdAX5$c^+MIy&b~t3sy^=rA?R27VnzM>!LL)l{zN>|Xi;33 zIq-M`lvljuaZKWo@|sJtPN0=H3(AZ48iv`zZd3nuJ45?!{9nxlp#*D57M??12`s-V zF$~V6-7ElMNvROq)U)gq@_e!G3f4)+UGR`-uLr=o_DQxt-ZhOwf2`; zu;!ZUtfPhd~q&O4=` zc|R3eoGQ~{w$ga-KPfido0@*L$+w_M)5F)D7u80AM)4A|p|YL=fz&#^00dH;jq2(9 zGLPjgtsb3EnB_yh2k?HoRMtx6@DoX8$#PejV(o>X<%H)IX}&L3R|%CV{m@#R z+?m!V!nE%}8XEI{qxz+jUOH<^PpM|j`53iP!^Gu_{rSHJ3Jxf~1fpYDqk-<}9{-%z z1PvQgW-1$&m-!BrMp-bLpEu%9e^$k2+?hWAlGL9rjMU5=^+>D@*4(_HQLr!EBaCX;;9KTR z&JXZgrJYWaSe+77T2d)stIC*{lNgMegG)S`8S&haS=^#e&9mRW`~LT2D%N8%g#2eS*+(sKOfiN3Ctn{QB1U>kduu)p8Ffl?^OySBB=8%m1S zp-|kH)OEt+@hb6`2RzmQG6S)Sq*DViDjs*WeBdMqml~S7pL|EoINF}@D}pyAEh^Ff z%WG0HskHC?{hx9OxUcRZ{*Yb6sd9(>i(_kPuL?C!?$M4`tUQ;KtxF6b}`R5L=# z?Pp97Tj1OAj#ig*U!U%5RDWF7<>zkZp=&;iYTh@>bJ)k(nL!B)#nHFdZ<yZNa5H?`l4wu#v`9mFpM`4InHdy<;hVGm-%$RRTiZ?TN#W{l^^L zNvviwGb>DGyfv$PP4^b~Mos3DZ)i&K?C3CL&Qh-qrH^;$fh_T@H!!tdCobJ zIDW{cZtbf6jr4%k#s22ec1E$PZ$DCw70sJHPhgP&`GGUFn0&?-7u--ATxDyY)6JH#D2- z`_Lxsn9poLO5c9T_?C7h*|XSV!(Po+3`$YY-?Vs&EH`M2Ka+eqqvQ5RB|hT(xbpF6 z_1QbNJu)%IExR^_)4cTOH;%0|^4${HKAjy)lqwtBaaW9t#h+Cs>Us0ZwYN_pkb)}J zl2^6HOQa1hV1&@cdwmvtmu&Ik9+?J-CxVB{ItaZ4f=T*Bn>tWE1&!HkCO^mcgFa&V0lWsFV! zbBCJavw5n5<|bHBnFEa<%(LFI7>*QmN>9V=qqwpMCwYI~FPdbpr- zQoy-TV8L0#tIYB(6!4M!OZZ48kwI<79bCj0oduJ)$SyB%?g1Opim;=f&VbqQFV^E8 zkqDM-PqR5Rr}iep`c0p^RS(`&CKfqbJsi=MlvtEphn>PI>w6Ztb!rS=@PB%e86Z|% z=#lJ4VXzY4F=kySpn*X8+v?6^hK{*p=YYV-60ek|3nH0T&)Oqi^_Go4SxK|aU|a3q z{&Gg*k;rs@;6d3_@dE9dnqLfM-RW0|pKvt^#`H$-8$RaTZXYkDTf*6PtL~a3l1iBpvL@QIQHOrAdU4Wp&%H3FLC^Q)FeWtt; z5?YiW@;EprU@1zdRlXnCR7@%xrRF=&lWA9bIwOj{_|&%7u3t=X^t;@jxPD?R)j{My z-R`DXbGxg4pWIJToH)Y>Y`Th{FK;OqolTk$C|Cur030s{N?l)iUq6N{Q+7Xe;{sK^)7_AFRgAKnf_K*aKSbdB0R2 z83LREr$&X#%4~Q+|f67XJ+dclrps3=6r}uigcp z-+}92ynLAed!5v!I?8iB))(wCY6G7q4&Sr5Oo$sGjum>keQeidRlQ`ob;w0Id(dVf+0Lts};WyJ|YwEPxA(O3NhZw-?B{dj&GZA5h?# z#*$o?Bpec}NN++W21-{kjswIU4)C5N{%L&b2pSfJtR|S>nfg4)2LAq`4CsYLhr~#-ys5IAv5BkZ^^$5+YIm zTG}&k_)?TK&`OO+T&nwujGC#yn_}qjE9010N>9V>gDWlMTX^fPM5C{R_gJ*V3I5$6 z0$4X`S55Tyr_vBz1;O8$?r2-#k^|VZL$6qGK8_s!{8>m&A}X5MqtOnKQZx3nX2eYu zKVK0e9p1&0q=zF^aC^VF>ywb`A8QVnQJ{K^s@eT)vlu~Wkhh+Rjnw#dRPh+S&#ai~|~ zM#O(83ISU5bKkfR-m^vV!*5+0$-Ab%#4kC^t5aHa=ZENvGM=x$rSJo!I+g}nb7P=QY$LxmCn zc8u7iTEjF|7s@1}x$sml?QtiD7McN8k$7!$^HlOC=y*6dExY^klp6?~&8-3CN7(By zgOaOAr1dci8p5k^5UsG6SGf4^K~ljW1N!vzV30e2)HH5?(sh6aIgKC0*3Bh`3^&LY zsR@YXgWK*B1)4!i*Ripd_`zw=5wJBUzvgl3MOZMvp*&CBSg8e92&*|eJAdbd!^a`T zDu5f7P=WK`!@dB+(p@`a2!>UJhP5u$y$ub^a5${HPYeY#EFlw7#E(?aPSmD&hunj=BrGDp*VCc|~o)YbrEk^doh>41}kco|;Shky$t-D`dcD;#O1m9ye zU_tr)L$nbm@ysNTAGGk2M>7sAiB5oxGjlW}U=jga1--q!*TZwI6h6esfk>bEbg zqYz@;DdImYg?^L=I`4Mf>d8?3IIfwgGf42_C(#w$7Q%UdZ2B?X=2STeZ4#>RP_WGX zRH?`91_^P3eFEyWIf^YG$Z`_;6(*P}hzVVFo7eUFI|Nqk^wMz6;?z{k#KcX~CP0ZR zK?K%@SbE$OqtIGvyqoXg5A6|NR9NGK3SiV`;smRNGYTH{1pw&e1 zhw6fS2XLcf;GQ({(c|ymT|XC7D8_s{RFq2;{(%aZmAc6#|2qBq*U}O;_I^jp3W8e; z%B+1pKNekSW{bX_B#hH+T9s%XXebT*P^z?eq16+u)(U~_Q9roT&I}E^j#JjSoIYvI zo^Pe_@{VOO4~$x%ZriB)tNPD>Sdx-c%WkIzr1Akv3D|*4WD|h+Fg_aRF*+NJv(W(% znSc)ehjCoCSH|bMzFS07j+LF(YPxrajoAzp;{ufJ9Tozrf6Vu^mvA-5(VRcD5iBRx zH#Z+Hx8TxsSaY~qwdsj?QaqeY1)$a;h#$z1={Vu`-T($(UE;lH3PC<{ssJmxB)VRc zM_~ag62J8bkNC@qT7@vVlEqU@66^r5SwQ#siI`?(WhH;xBb;%vB!p~OA3FFxh{M66 zrVq*NkGASIp3F$Hf<76z96M#^M|@l)?kj*Bzj*gH9Q_g~v(x(DsAwSS#Hlj?d=9Z2 zm0jyn=;`UP>>jFce+}@m%|#J-Vhe`J-N@gYPtCiK}~{s7XhN_w(Rp%M=49UZ&JZvU8s>~g5Ajq2s}bfJKsq&>sK_7;+! zGYJsS9Ujt;8>p<=(oN}NBD_@c+h>Z#prWqeCrkwcneX_rva-5k*oYh3U~y%?v3*)U zSYXRYpv{z}W7UsV29`I1fDhKN(9y+!`^k*Gz(9JwD=l1^m6bz9Px0$>hJlWJ)$=K( zcxvrhUG#y&U9Iu+HK#Y>cj+&#ajG1qf5$&Hvo&vPs(|fuC(*1{9SQm-zn%@Bh zTeeP4Wpf~5c%v`Z_?BVgNoWBWF>G3X|M!iKq5qlYP>nI)0GXb2R7_)ZZ`*4a1-TOq|#p!4^kR!02)%@kS<(=kd5m@d*2ODn)i$Ae_5>e_rCZ_ug&y$QT&=`PM!`r3~PDY@QOe?nNL$ zs6JodL&a!8JaA3w6E28^Bb_W2?75*$C0RvB$J|WWUl1x2U;>wC3c{trxq+Rhcoxh> zB0Qk@6tq#;Ry+t^%ZAZ70S3*kE)>&`Mx}>#Y~Awcy8(*cm^VCZzM?{~5eZ;apGNaz za7xy??Z+|UuO8t=5X7_(kcgZ>(CzvxC@i`6scTDH$G{-jhWDua+mf=hr&hxaH)IAEV#y2D~}e;0BKq1Z!Pm!>s({W9Y@9 zAI{*aBPqbmkDOSqTza;B$j;ISQOanfGOo%1{fPulkFZvH zlb@fwu;8@%vT8al6dS>`gnrW04uh8f9s0G*u9@!d`Uqgph(0)to;rE58C)hRu>BZd zd!)9<;&pD^a5U_|({eF-px=H{dKKpn5WxP;n%MBu=OlWd+XX||VD#w(-vT$kT~>zc z`~)^#TZU@9o|#QD5Mn|*b|OvG0YUZ0ay2hqR7g7s1fLE1)*%E1x7Bypk(YOB@Gv6* zj@!=8$)2-)hDXwYANgs0$agUSr#NCf4n2vztc+c-{b(X$I;_NOf4*u$L%g7LZJ7PucJN>wpc3UfKbfeukV`iW^)_D`dYt zC=Rvvvs70n-D}LpMG-#XV$&sm77n9Td_A^v&IQqaE_$JK#mPk@rHmzAalm2Bg< zDCQCuPTrz|JzK8f20w#fl<-g~bNXiFqL>CKqSc^gB{2?cGj;!NTXg|A;Jw*_7_Eu| zV18UO6F+_^p&(h6#g65E-V|9AMSuS0^{o$nq7^n=?a;KSQONQ2O4vJYTuu#Lcj)E4 zi&Mp+{ZRo}a0{QRvGEgdE!qdyTS_P`d;6UBl=DrlsXDdIk(5-I&&9+V0D+Zxrbrr= z$P09Gwy1i=KSRfHBRzNa_jeYP$rvtP&+=Xv;dw|SP{ePAvoq>=k?ZS2mEIG$AN;3= zxgU!W#G-GCq{nw4q~7G^T@)g>F#?_tHxY+6oEME*Ers#Mvf_6a$E@erp}|(h+eBGR2Rva?^9;@-{(e_3NHX&nmUqu^m;YCNmTpHd13(LqGR<+>@jBuGnlQ(z;s z{jTMi(9hgQk6#3ar?%7Sjc80BAlAyhliN_-;c$6%@6qBzo5zkF69KmmsNamNi3XS4 z9@!h`Shb>N*PFlN0u@M=%0p`)NKYpS{2r}K$cDTPZW1gC+Vc|+-mkI}oII4qLqkSQ zp1k9vU{ez<)y0trBcKItYxm?Ju=VHN%!h;MeI^fDf|<9YO1#Oq!}U3=W)0L=6HbLk z)F><%UgtC5>$9Xd;%sClx?*UPiHWIaWW<5T&fow2TjTPMLj{lJgN;|3{>GVE7|dBb zxkX*YEiV_2fV<_9gGqE$j57ci00^kLKd;wrV#~+dv0P(2(T*Mn0+IZj$IJqrk@lIc zEta5S#i%r7)+Sh@KwjpYeU6D+_1)EQeb301rQPL~TPu?(?=ppwo{CLMS8Pul6~pZ8 zCfXZiELuP5t&u$7t5py2C>eY4M&k_2GojxHa|&)v((5|@o|u%fx%+sf4X+|iC=N6; zGZO-!=cFr}>+2l9!nBj*&qG4t9g=%;edzMWbt34HfO&%peCz!@!So5@sb8$-5wPB` zU-dl{(}4fiT4d8kIk=n&cvi59c3Tl;2lQOlr@`kzFeOx1deKi7=D1vCA$W|m)mU17 zi$ZXDkN48m+gSd=9(t_$X4^NjtYn+>O{y6$_zzLi>t*5FXR;Rqu5IvFnXYH%+x(Q6 zDAMx_oYeV+Q_2Kb6ufn?M(mGzgm&!bbS^XC3cAho@&MDD{H0F@7A!$80xh23PaUcv zhoiCpQd|tT+1s<|EOe-7Bupu+5A=1m`FM|vDBigEX5?GbYNH5^{EU6bN$Rak8$nQ= z{t+O+*|141;IjPABfzup0-qW2HM^F-8JyLehL^=>JS`$A7}VD#7{C|m+|QH_?{dj}vk0!6$ROw{EfSguHK z3|J-E-~@^)E%)ZS#PmMSMEp;xPXo85zkp5Z8#|{((zGCs{42m9ovW$w{cB{(aorw6@4`W1~TU4KH@JKfoT}; zul%agwFZx!NH|%#CC-rS&kQHB@Zp8;4;^&a#$NU2cRtW_wS3G6)R`3B?q+Qh0S+Dk zmYsA8xb8)=HaJK3KTO>F*Uin%(aeDtR!L%Ee>K|!7K&z5QDElI`C0>aI1l7x-PqZ+ z>-5iQ>8DN13mca9`K&9*Mmrj1Y?Zm~Wz?A>;Yq4Bt{_5<{<+AJ@4j#fl56 zAy8V1(89o7+CbRxK;e>~BWL!w!cMUyJ%0T7rwz_0Ri)|r>6dC9-1~58k{a;Y1 zb7FdHbJ`Uxt>4VPPHheb`KNSG6de^q6~E@CKPuDQU%j6(^q%Cz*c}?Gwa0Uh4_s}h z{#5gT#4PQZ*Dcw(sUqe^j~^i7YT_MrW-SysRwpK=QB1|t1J-90bts-U0d} znuL_}yPjA|SRx2o8yT*v+J+-e{w+kN;)_bEOdL&2eKIi?eLUm3ap~=)b{WIct(>Cm zEZ#lho&k52vi98=JKeUTx?_g-bZb$2?=QB==IwAzyZPxG(bXSG0~_)r5m>P4)?2A{ z?H&7u5lJ%IHVam%rgrl4^>Uh0?~IbfBgpmjM|o~-^0!COHXNcpUs88v2aa}kpZ)y# zGYw{A!^_a?5%Km>FMx8VRJ_HDrX=#HH0A1kE&>^i|LM=(VRr#`@*rq|SxxV?+*#m0N_2bd3+o>hRo$H((s6-!5Qu678eP7zS7Q4mqrALdr>Lez zCObE`6mKM`JjOWn&t`1vnnK6>pI!}y2;Anu<>=^`I11QYmvCj2oDOAY2Ib!(nxa}&ps3Ddh6zleqcC#&fc(SdpO4}zd_D{zx zo6Zlj?)JR0A5U2ed+n4x9V|7G`LY!F$-cpjP%{1)B1S?m_w-ykLEsUrKe2xQTFSZX zZ-0ggFd??At{#k@tv7D)og$#YyOLTV7^nH2)yd9Vp}`TIBeK6m=U!{1{-T}}N6G*^ zPAshQM*e9-VyZJ>CsYdXh5}^(TE_!gunHjz8`7)y8fYo`RNW--#!0>=AURFrZ>-7+ zlHI5+r!H4(ytoiMS=OGE<2agdQIebX)Z4h>TaF#4%7jf5J)t_{lZ>ZTQR-!wpV2Pq zC%1$dPQHQNQ#!0{vR5Tk?Y>0bdiMsI$SaF-$AmP3&^Kz5bc4`*&?pO-1PHGMJ*se@ zG_r##`&S06q7O}Sc2#uKtY_RV4tBLU9;1NI@AD>Z{jZfkmYsBl=^<|AjnKwJFw0NvWyOQCN!MDypq(fpL{y z5#2WHX8y?|rF4DFWl(XhUWS}dbRzBSmp)TYHutIm^@(WP7{TEwUAgK%?dmCphiTFq z!R&dR@F`74O*>G+Qw02q z?-tHs%i)mE#6m{73FE?y^^6pJz?__JJJxP z?sTA`#6dKkb?jwt`b3u5^ea=b6=G&FU{aDu8Eyp38~*EnCDLQaaS1uW8_g=5)TWh4V zWrv0-iaw6nVN|h>(je4_!+o;^uHlk}AU(OcQ7v4g>F!>f`EGuGzR2mDM4QOh_L{(* zG3SE~=dc}roouRfcy`)#;6fH6yY~E;NEJnJu-PBR`0#Q~PCOZ;fm&%n{VizC&dqSq zf&2P(VD#gH0P3G>mq1QI<&J@ojuPrSki^S*vTkNq>Ug>`*ZQ@ohuwKbm1&wSTQekF z)EXAKrCZlXh_<+ub=^o%A~scZ)_`!TcFOs**lX|(Nm>?~acC11Kea_ISqWZw(H#__ zoo0}0l( z%dhk?FEVE!>q>qbmimiLUtj!$$%EQGGga0z%3s^*%=TvMLP3WY=S z&dytdzwyS|hx`V{#1DJ&>uBSJdy4NkI6dLNpd|iiCEKJRyyLLTj*b4FveN_hm`|3L z?Uy26v3sk|tm*b#=$Lm=BWIgKJ=>46;NPG>l2G56%x>&3k?d{JgC&O7R)8OAfQDA7+F)WkH;! z{FMHvh^fHK*sb#CiK46`AK}&3yy5ftbAF#TGW$U_qj~Ib8uQnjMv=i~dXv*{e*d5! zthFm_9}T!5OV`}&7Wn$_5r@d#Q9$$gGARN_bRB%)QCUi>uvwSR2!C z7W|F+Yr})nMk4TYe2hwt&M7a5lrZbZoY0i=c`fHUNsc_;jD9Zhj#@m zM21r!ur{V_XtR>L)b9?9X8Jg{8AB4i>tsiQRB(Z+lVABmhm*N4y*z5GYekjSZ>X2= zX3XopT%?%Dw|0O~6DZ^M|K9w`?%P#n`pL5{JdXn7NubRo zfEmDl_0W_J*j( zw@jBNY6E%J-6FZ2ES!Os-Ph+e`*-t_7imXi5J_B{1(_o(+$0uh@Nm z2xz-jnW&6=`icI_EUym_$4OK4aNA7PUuL|e5-g!ZI@AFQ*mXx z&3-J(eL{6&VIDD?sCl|#L?7FYT-{Y>U$q<}~< zD(TCVd|yV$qg9b#TE2{-+#I&J!$b4?9xW1qb3XQrJ^f_FvI=B?rNo-=ZychQ3~fYrD=LuVMzq!7C7w>pcoDBi0zHKA??`GcQjHR>e-R{;O-K^Pc z5hx#tEB~IQou2XP6{oZKp~{7pu}g|Xj*UhMKub^|iU`{Vc{*A~ie@^Z+aOatcs7-u zg1cwtf%Pp3PqdPbxmO4}0)jo6_*#Fvi%~#F1swUOp0P?iIaPnVF-u9)7xup+ThU)Q|jsmo??-Ig~xQ6JpJ<_~rI0Fc{p-h7rI_f# zpv?Uzmt0?t`23Fi`04%6dkog?kAy$2dXKm^Ev7MA7SJZcmezF;*a+y7>t_5y&*Z#ie4^d3I1_Re>lz za-`7QX$#+K3VR#a>Z1&DD5W%w7yB$Q4kSap*&l5P1C+=OUL?c(byYSK3%Z-nfc2*~N<@Jx|r4f$!>5j55jIv<<)?w(2? z$&#tv`L;M#+HV?v2!rB<|Dp2Y+bmz5_}q50p6)@jPvYPm;?qTh3K19e79LyR-3ACU zNdT(TRB_llWK11!jWQscNT@0ztXDthS_`;va5{##S(?0MYJ`yfgzULWhL#&?GbP9A5$&F8t22PCV&EAn7O0;|aDQR5kjL1j?=7q6S#bwaJ zKtecT`!CL@K@KR)OTCo7iU92e5b|gcav};laS?_!GB&p9cq;zj+>4lNgx@4lxfM3# zSZh+38qW9o@!Ec2+71yP!o<~LzBDUdR{r+D&H9O4g^zjSh>U%4m8C4*-)P2^+4^`{ zB&1N|nUuKH!3R>IW@G2-#8e?=^CaQQuA{~o#cZVX`D`GOM&H45`bafkz&!=E>0IuQRXD^XJ`E#u$@!; zC&vMqOi^{YI>{uH9cN&H4-NzpsRv_z0)_U1h$771&3$`saM5u{&qWdSJDC&MdJ%{* z+R6`Q4|Pvi-|g0Agi8Th@Z+=!y-so|QpAetl@g7|zM=%}_pwVo5#_A3XFP9VJ)X@c z+)YnyEU74Z%?&doAv*TpVK-KhKI6CGkCrE|3(LOPeGO9)LKI8`mOnX|nb66dt&+7E2>cW0;a z+3}7720Z|Cbp(?5Tx4V%OLy&g|?MBzmyb1t#_qzmGw2_{| z+%BPyE$BeI9oB>?h4oU*+8$@$vhL zDW6HJUh*?4ZyMgjr()r)XOTeADJzFv5EDyQEWi2rj4#0GsHw5Njf|{|y!AZrTF`cz zS!;dh3DT&>dCpT6-6j#3NMWnSW?)==uzx;M$8np9ZD0Z5Ufkvegj*u{sT6;t2)8CI zk8;T@6Q^9TjngwQ;8IC^iH}!f&~#8m?hCcYfZIViU-#LUZO40Ki4a$!(>C<88zY#&4v=%tUDWl+37^|^}?O9 z2URqliKGNWwZPt8do3$4FnNvtW8-~Uu@RS0a48te*`?QXG^4cC=b}DCB12N*D}>Dj z-9AiI3GLtrYK~inh9{Dn6^+)SK-EAvs9glzsbB^%rv!j&pc(;SGoxxh(ZvYCtcGN9 ztlAW&J@Kw4oc9KZpY_;3S{WxbiTRzoYGbtXW#&if$Z>too~@+-`h#a@QmP$p?q|uR zpwez=GR7ZVDph87A%VBP8sGD@oG=A9jU^vPCPiR?`O~06Zeb>~sGP|`>s-U7B zp^Wc})yB7Rfk}x|M>6WL6=AV7^#tT;0Q?66t7bQvEMn9J@T8ETxgzno8rF{3=dppK z*tVJw4wb+_E3TIv=T;x{nbRW0?(YW)n@Vpy8QoP1+M6}o35qlmMBnavYq(pW_wX^t zp&pnLLZf5wXkQe#h8y-NtH|=vSG5^T#93KGrMh?!ZRQfZmPbdJEGNg2-0u&NqUyk1 zX-RQaF)#7)(;qri4qq=0Y3bvmHY1VPv6w{5hbIoJ9nD#$|LH``K~%~{C`ZGNPaE-S zr1cDK1}T#s0vEaC{)n#l>~6Vk_XqD8EU)r%vMt>Lty%_SgE=*ynIxfKsiY04@)Jd% z#MtUOe8wLM$HhF4&5JM?4%{eyo;X;1>sGX@P zwBvA@joGOQJ=5Q39f1*ESi?|n+hL+k~)wQG6qPU#zKhrRx>7q!Mbr1szL zEuZ|Gjq%`^?DwkZjD8}@q{J0>#qi8#v%B$4W7E}FUhJsm$P2TF{(PFw@TRFUsmPxa zX8*auF5Vsl?9Xy^@KZ7Z3D;kDUhj=5X>2!e$()Vnyh<6uCbe8xbR5>W>>Rr3JgVRrO6aXHi_APIi(tMa^pr5FTDFaNMJytY(oX4(oOLa&#fTmKeY zh#ktQz6ZN87%dU=Nu8M_*O+ZxfX}*PlEx1KZ_V61$_)oP)hBlTjfWVR+FRb8{Og|O zziJL0ip8KLnO1QoNg{_<%e=o3VEI53kl`mSaoamiNI^h#TQug;Jy@g4TBpp;+kAqv zA)y!EY84$8g{FYT@t&4?532cmNRbGt#Xk@27x*fUiR5|8*HE~C5;@N}3*R32@lM7V z$I;*`7fZZb_-aU;;X`ke{A&ZE+ZheU`REGMtonKGUfjyX zEw`}tce#eo$|AF?mwj4;8 zfWV8f&SeHHIlwGzUZB)kpf-QLJI3WJt)u$Kfzg2Qch&ZGXRx4h6eG_iwd(2sC6}(& zL_TrnxpVD!%8fw+mx5BKn+o7gLMR5xou4~=uQK%W_h&kNL4q6DtiH`|RKG}TVX9M@ zHT#cVh$&F?_{KOg=J^Wg$<|N%g1)~7W?2t>6?LKr<&_A!+)`GOgE{f7ZrAqh3RaR6 z8S%jc3_6pTJriK!2^MO07UJdeXVq}-;8;aCh`2rtB-1Gj5_SJjp{)U!kY7|(bRz$e z5^5P1M$Qx$yi*>$N_G8K)yCq&`^6;SHgSDFMS!<&;viv*#}A`b@xe;tdh%EkR2N9^ zstwUHu>D|kL8#4=HUx`mX2e z*UVjw(k>s4f%Iq@UZ~RK6Wz~@0a-S4i;cO#-L5=3s!=v`%5xpXAXeN4VC$w!VQ(w0 zMg+~}2aNOS0Nhby4#8i)AdwGDa=cG~LxBKG03cH&1hMR}(<(YAtj%w;-$ADUfJ+;^ z(+MwyaiSOj+Mvwu$fpzCsPs?;?dM3<-qYJiCKJe^#ffDoxNo2~?S#wg<)BWpM5Htc zyS#Nh?uXcT;C0;t^2j194xl_6jOw;HdO_4~%zt#p6hs;$%oIg0UKDAtduuOgnxbiW z!n(@t{s`+ifMu1itcPl^jyA@XR>f}TyKPAtNJ#MRd>q-xrf&*emMBQ%GZ3NF8qp+Q z$uGrFFqQzNZ;(&jmKq-sl<%1sCyqZCDJU$F5cEmTeB$7ni*)6@?s?OzP^v~)3I0p; z^2dNHDCC1WaF_VlYuUYQhk=3@KlUT~AAsCG3096M<;X1`0Jb>QlQ*pCU}usr!y2S8 z?1wjmJ)V3qYvd~B8gIjZm+~}Uq8H|i+j{&5iVl>yuqqu4me;Hc*xK5*L@l^)E&ZGm zu}YY?l+Cjmi#3l@(2+wSuqI|ch26`LJ zepxhD6{Kc#P_zg=2OqukFP0#&c+!HAUB)(%9eu)DHNYVPodK2~>sEXoe{#4r$Wx~U z%6_ni!@mU|?5(t)?~LFtx!V2uCRAMoA}p&zbkjNS-wzAFZuE7mQhN*F@~%uZN87gt zX@h)?W`Hle!w#H2l>&B#6auE0SnXmqxEcUi2&BaPYb<1!5@w@%J<&pgS^*Ukf3l6@ zei*v2E)6Q|VGi1|0M{mHOOYrF9I~tStD)>=nH_>*F(d@ z)4IAd1xV}`G2PxYxSQiSmBgf&<50tGx#b)qH(cdK3>uP{*QcrIu^9-eoy(y=V@Tmf zMb^Zp&Z&x@voz_*@J2Vjn`!ogfhgN)=sCQG1nW(+B#IlU3Eo|9vRVH1skIV9ByET) z09U(p(GVmtmTAs)9DpD;IwE#+{vaY~J$O4gn4%;2{Ykv?LQHW0JIZuj&Iu%Dz}R0fUd9@V8Nc z-B;eG?#<1GZ+z|(?b&bTbYVQ2kBNd2;uuk zIFtg*n7AcxfMxeW&lu5;k%H?mp5}kLvxTbwgN#aWQd9D;Y zCuD!Dn=gw8wD7>NIK*0N!=iL?6isz5T-6bn9@VS6w`4;EzlGYswh<;OzY9vdTMmk+!>(} z03LwFxCUM?vVP#|-Jw>x$ng&OxZ@ ze^)PNF=8`H7E?h{g2A1@gPqZ2pq~sttdkNHSPLv22B5!hz=?1*g18MS0>V*mgBNuS z6fOZo@gq>q7#6VTKgxHBwX4c^HKVXFHi|^(-P@dMw2lO-G#?>yA43YLm{#R&$YGKI z$Z60KJFcgu_ORDul96x-mYhWf(w#};?cnPoq6n5*;P#81vRM3H{egSWmmgQx3MdiW zKnqWde8vPCuh3$FuKcq;o4Cl+k!gd^AA?l8`@=28G)pi5p`kFfk{l(3?46oLF6c?CK+8UGC+0_h2V8>oN;Z1JvN9l6!+ zV{?!Iv^;6%aAoxrHiJaZ?S!??Y=WCX9#Cg^iw8F%_)vL<&IAxK*%32P$dg1eKRX)_ zKl+EYEKJJvVA_Zbr@< z_t2IgM92sf0R&`WB!fshH#b+rs_`Un8})uYWGB_LJ7FC+n^5%sxv%rV?A%`^2ahWXH_dq;&rHFHqq0QQh26vCq2Cw32TcSfzJ9vpb58e~6i zo9CQZT5*4%N1{Vc!Pfg}+>GY;%H(_GFM9LXcyJ?>wA0=UB~hpIbcOMIleeq1S|`XF z6k$^W0kJohD8-Wt3OJG28><3+_ltPe_+7-3L-M(e#rb$P#cH?PolZ$he>?xJ7<@{1 zX7@}_%Rb)^V1Ca0Xxevqo4<9Do$)UE0pia3aUhaeKJyC`e$VIV`+4DCO-w-3)V%;r z6nAg3K%_z%Hw+#U{-Hw^f64_^D5SOO$K!A$T_k~ATKAMIKWqYKQB7$3-KdWh=>XnV zzaVS(uRJTp6!rG`A~Ag0KLuc#Tof?q7>4i!yzPYX2QMEf&R~bDforW@v>+=3V*ZmS zPhR)qH!M;F7r~@R4(Qw`Lp&k{Q_k?UH++aLAo8g_{{A2<5J}Y0(vkTkBX8b2B{BM< z+Gh66>?&4w-5UFSj~~nxcKb9H3C@Jqnl8V|*e}c!S?-h(I=_&W*vgk`Fx2T;YP{1K$)$xc`>F8q@kwXX za>=0_pq0~?1-+C;aD$bboIv>SyI8#DXENY&WO+TgF#T z*5CFl3F`+Q&-wEi$L?8Zaf2Tu)f3oc9>iRL6m*xaimpc{& zL(~ln4BjN|R>ZwD#|HzjFA+!tFNq}AWfUU}j{VRbUBY?^H=(D@X|E6iv_JOjM#H5k z=&I{jGG0&5ij799+e71!3oIV;^pNnT4+*&BMZ2YeGD-hMxCYzxH@LjzTnTp zq2ngzQ|~TZeJmgl`0C>^GBH6BGfS>bwU4C~24`j+r8 z;gt777lCKG%Sik@Rl2>rz0X&AQ{)M2JV4XIBfi|tzDR)}QRwUeGz)Ab6o@R4xGidX z!=-3Yh%wlR_V zzP~n^Uk2e$GLsjL%F^?H=EY{NkoNkuGIQ{*tF5zh`H1n=6C1$NYDx9}&SPU^leAL^ zXi-TB+Q0PV7jXD4SKZFn;6V9EdEO&F_%rxHZ)q};Xk~@0(YAq8HL&UIpvfvQ_TDj9 zcK35rko*0NJz>3`l>X8=sZ2eiOuu8n@EM&@^X|{d%9Q>`rFhcXGJ~W@Zcv?p^oL%H z{aV57v#=nF>$O4E7cO3Wd@T&~f`^pvkejan5p%2eDFXWgfrOK2m}!6Mp+wA*HTTS1 zHZtagRhg-0zP7#PN+gps>SV;P+vhPAa(<}S+${Fs%bI7((8_EH?*z%0jQOYIm*o`1 zT2@VCeqU9$@oLMdEQ{3RF1ljW3A%|2Pbe?}3N%z1#7D0%`4H>M7^777*y=#xnfiq@ z>z<=pz)R=OgYvP~z!gbKJQALe2PXy4Qe(vDffxbteQZd#W^a)PjsiUV6OzIV0arZo zPcGY5!f}O26l_i3c5eUf1%n`?dw!3tdwP@BY(Ki)v7IZ+U3&3E@#?+r30K{7Y(D4E zp8Q&AWM{0|{A|3RuJ2Usn)|maeC=v@!wUvzy>oLACilh|K}7W9S4KF3N*iTBr=lMT zV(F6ib&ujzC}e{Tur6Q9yb}`>Q+IaG&uj$!IWn`eRYAe6b;T(LVBHo#(#G(*sG4%x zC9tgze|H$FtJhsvN`FNv`ISG>Zi(?rT^C)2cppb9S^vZBEs2ej(!}4IV@w7Nxqi=h zF(?uDD9Jr`8agi9|M{7qKV;1U*&>TA2&xe~9s;5hxJks|{a_Rt2`P-i{w((b zc#zPEg%q~c@~1ue!*m;kh~6m$h063)e!tU|s=ZSmGz=y3G=^j}@^6%7ckY^$uU%V$ zx_|+>@dK#L)oNj6@3(IPkcuiPFTdr{@x9uAJ1m5r_boc@0ud-R=K?8+_S;o|+Dh+KN97^6I*kFb|1%%j_#E?$zMvDu> zh^T(-8KF(WmC(eGh-}(l9Xmg)DX7VpB=qXm3x+S+QIw^5;Vmg_WFqw$gh6>vR6Pyx zjEzPeGWG@6Uy2nVg>YVpM2D%=Ykp`9@e8mkc1nyFc;^cwK)*Hvkc8tGSr#KBqp@yf zmc*-1fS7bkPVK=@l`auXReRa>9IT%Dk%&$BG?j&V5`XNW_6r@pWEX{2fv8m^2kQ4PG7&27v3+1U*lHS)JlQd>ewD)IGWsgT z#?r@A4@rpVS^iKoAmH?#K8ICEu0#kpb^r5XHZ3Z`^%sG21BJGeoQQz0yYznM-uC?KFRlp-OBAR#fRba#gW(jXv6mx3E5r356DMnX~=EK)@Y5tL9sIz*)7tak?7 ze*gK;`On$c<#jpV{`SoCKJW9axYxbzmCYw~jK~2wwjK1M?*sgv!=0-A{lhkcm8Ywd zB`ULACZ(>o7bTY28Kg`6&tjk+wFnP!Uxk2qz7`57B5QeFQ z#8pw6ST&6pGS-YhqK*EjE}(o*lV(T0gn%pd!e-po=gCQH=)u2#B~5kHI`g1>=g^Mi z!y6hbxyFWA>OR6n`-~V;8U0X;(`eMGhIM|E6H+dFS?2doSglnl*sYcoyr&4ha57f? zUFRrie_z}E`nbKzZzEUrl?;tCVxNTKJ=Qxixxt?K*2E8?Z^oq_)YifY_K)1@I!8+( zW_|`8pm93KS7&9$!B-!oHWb!FBAXO-b%Jpw#2Vx(iu9jBtfDW-mif-POA%*ickDh} z0&=@PI$tALx<|-;Ng{^T~UkzwF7Dm&hI)0$87?sOVGnD{tiT>_~etAls!0_5qxV}IWDv8!ED;E{KsJ`&o7-q0YvTIlwyTVB=uOvjRKw-UeIOpMT64#Si5h3Bqe;0rEFcaOU zaGnlXJb%+5;ncg>STXMiwso0{y>yx@AKo=Bd{Mk_-kNauV~?P2mThMmtLwaTe{p>A zAwt$C4$<+i+D=@=Bs0IB3LHT&Px`L3FR=1-7qCO}{st0Q%?aBy)C9dGR;KU;FCl39 ze|fn~H+FAwXLpZ%c9U&x(Uo&TFZrvEWN=aQ-8{b-HeK(V!Rftbc^#ZcCEk6XHSMsz zxf+-<}%!<0-@>B8k zKs{o8lkw+?X0y@!3%NeckD9%LlfH5s>XCA~@ZPKM*>tCaF4d&R_$dmM@cgvT#QG*h za9L?fwbtqKk4E5%a&_|%9xljY%posaJOLN+$--5NTD9{ag3=bd{k(RDgQN5CC_s+) zu&Gk39^ZpcoAneJwougPANC#Q%iOVm?GJGNf#P7pF+%62}zJvo(?0h@tBXB<-Fd9o+erR{k!EpciqF|B-y|? zoss~<@3cPiylpR;$WWhWI8H^&>B7#duY~NQy+w$TaQRm8{@#b~c%WZB@&MJo*@hp` ze-c_Ns#|=9I+HTLip@5>JAST3sX1rV%0vjj%Cm80WUXtyRm!p2VX|e|o`968*r&6$ zJ7=~KIkU#iu+?!uJ#SI@K<2x0S+%Y5q@JMV+TsLdsFd@}dl0yi!K1;Te#WoQh$YS( zut0ElWNLD2YpVf23;789=|IBW<*_D0Nu-@h->C%FP#`|QVNvh^Y5)$$?@x&(fd&mX zHBw~N1|4NC^mq+i9p;jvr?lt{r#gG{NK9X&Z?vwjOWE6sG%a?!ebI{;u=sV!oI5pr z7Q`?tGm)pySy1VHF0+ZtSH0ck*jIY(yv6%yA?F|C_pj0VKcGH#{CM>H_e!hXg+Ass z!aRW)q5E#aifQ<4rLo!R+=_Jg>o#;5mMS)VG5V7tAT=-ibKoL&j&_3`>$4+FjbT9CjVP1%7?PV7Q7%&m-(IBnUM$ zH0+yv)Q*tMbxW?3r0pL~zjl|LG}~%LSXlVM9BtMdJwMk&?Z?6>3C5ZgOG>=ePept{ z)p|BwtQ~g-|NhVXX0+ov0oXxCXHRKq1L|^9hE<2H)x>&5!)dvr4DsAWQJxv!`efca zuL|899;+I?W4@o@-@Mq7NFJnRCaQH6nO*0HB$~cq`8^^MX2)%e*Ao;HFK`L11;gw) z3QQHw*f{05c=F2r{nBBdPio5Bl#sS_8B{#Oss~t&J@Yt4ZpQk`gYdQYm?8BOoP9(^ za4bzoh(B>GU@tkwZ_ixMo|}}K2k$hfC`TzI^f7rScU{;`j13}(y?hS$uTGbYc z6$d<;LFSM3&KjdXtY&UW^cbnyhG5gB&4qYS*638zrmz-n-_^E}5)bju-q{lk)SNmh zrQ{KH$>@MZx}77U;sr1D&D>sVe172P$L0TQz^}C1&Gi!21U&oRPgga1vQT4YV;xp% zJxdqoCTZ-VXVu@S#WPckjC}}AnfhTU?R1LpcweayoS>dKV6iqclWJ;uI(l<`xs9W+ zhDqrqMecE`h=-tM^z~+^BGNq>54t z)_D6!sIz3Eq14&J^Avfs;$6EPYsC%L%G3Eh!T#ZlkZp{o*|(o@$QfR?*c>*O=Ai$9 zi{=v*!dAab%Ad7iqtfe!BWw#+H%2v2$rE<+RCL}>bWso#Lt%>q?Fw!GU6T( zkq*0FEY$S-4n)dmn1aMeOPwI-$i&Ea@y7Idb|R`RcQ8W;r_?=kD^0vIfz%f0LUkvJ z@8crsnsf+IMd}Iy?hWqm+QF>#k!4yv{W*OH*8m8_zPwl21!TlQBQM_z(`rB0?^wY7 zv99Otgoje=DoRu5*u|81#Xac>otu}( zXTLORgOaG5re?<{JSw0;8z5Kl%L+d~0QU@^@#)m!>?ocgI7IRhPezk7JUj7JU8!Ki zXObzMSgWrlj)#jVgcqF08{1vZyAl-=a0ARe#EtIfCpW9HFZGMKfNHb6d@OeZB4enE zcscPg@{j7cyStm9Xr&m8syR{%o`W(`aNgytT`hpqx5XK}7ge3QQowYv?8T)CMUiH4 z={&>o2WYCGaE%v^V0iD%@AN8sCk61XK-^--YL_F1s&Ai(G#bSMaWyVUQq%j4iI_)w zx7rtvOG}*fjTyqeob~;sI+=MBG7Nz-Oq6yaoLLE3_qzqJ5KhZkm*a1C5`aqNN$#?e zo4HC@GM60}a=K#VyZKx7E`OiRxOM%?tw%jpaz!`*>N#WxL-N;Al=umoR;xS3)d zD|i1&M9O6W@C%_Qui_O*iSRjF`|{PpXj*O-t|3QYO1ck+3K$$BnP|_*bW3in0l0kTiGpBZP5{w`6CgRkv&6B*HQk24;OSZh^-y3h5YK^H) zl~DwB6;sny{YbDGIbggJpeK2QEhl1oyEHYN{Tti_xqaTH&%*VxP*<%}E{S%P8ndG_ z*R+055iU)sO4cv)N_2o%FP8=$qeuk-WOU4pu}(y&V2{5E-oHHa@b6nBn%t6#^&;=V5Sw)<$=S9}ZVvR@;Q)YCOGI+;5ZOlm#BpjRQS zzYKIXHGNLE=F=`r{Q=a|YA+c0T^^Bc@sM`$ko#l%179)`!XYtoK*Me;rS3>ve#QqG z7ws$<&;dxIX(=k@?aj=ym}#4!&t+p&8)1}jT-_~WZhAgu;-4$Qyu}KtKM1z|nZ@T5 z1m87?KsKWO*s-{Wq%a$CYu#z~tB`6MDTvQ_N|L01&ab=>7~i|qhmpMg<*PwfVD8&i z&aR_|*T7EavSY>{eBA_FwIs(Mp)|roRo$43FmjhBX-0e9j7AQ z&pf1#826cDxuc%`kCRWu^OZ@iby(|VPrNLR(ov*$E$b>zju34t{OGD6x{kM&8GCdQ zED$Q2CWwhw#y0mKC@L&eh7sY>3AvM@0s|3b;u|W^(Gc}0>}`LEYM&)>DaFIOl{eh2 z6^_FX)V*?YzBGoN;IN+LKDi3(YHbfqBfL4bXvl{zwW#grH=o59P}&rZ-u2@K+rIXM zKKsfLdJ8M6XdIWrRj*X&ZdUhNX*MRvhIwMj(378qhU_c1zyR*!2fC1@o^(_G!Uv z+sY7G{i%ifkB2+>tjbFlGg9y zUqWdcX2U9L&O^;2$J{QL*Df$6tG{FNVS9<#=d`e%m!j6Xir-v-Z<+IE& z|A;w^08=))4FxRZZFzAbaFW=mENjdN7aUFp;lrG|{*0B+N|YMAXJQv+!hV+;&Z_B# zD6vq`8rMr34c4d>bR~Uge@rjlqbS|HbL9O2Od0b;N%&VCJfU5lmDRL(j6c5@D8UNP zshmbbXwNI$=jP^)v*fd`3XOSj1WSIjMl6lc>iP}(wvWzkWw_uskP#1WleNs++;8g z`u5PoS%ukW@Byq9CK`twx9jDzsmc@bu&R)5o5~p8xSq4BVRe%yAKy5S0oiZ|Tu|0s zOOP9Zw8p61goNlK>T-QQi*r_9q;}`s{gld?2Rhj;h3r26frhE&3C_4P+x_nv3e+Gi zwV8fPHf)2R-x!qcLR!{wsim-}7%kt&^QOVr!)fJ?~=|{t?Db+9rU+*;_p@DY&5BsYl4CzX)VJoF+@&A_tK&r(+;+J-)yf zex=S3AsiQ}(>SciZ+prfZ(yl-t~6)DZ&-E}juw-w<9fbC7BAkEFrjsSAMEEH1T z9X@aP927lzfx0(QuEUA6>|}lk;qdhEFawH0V|Pvudv>~EB7@hw|8X%d!Lrc6Hk499 zPMdTQA;;U{>G+U;sQWcOMH$q-0;z*&D?nToj1Yq#l58ay*alI!Z|KUqlCoOxcJj=M z3&|q%mx7)_q9cMwHLJaD-@eUj^NF+Vqg$8E1$IHxu}H4h>V}3hf?ZDnM1aODpX32L z(`rUWvuq7f!k^y|Q~mgO60|TL0R4tl`l1shr&`lfa^Q@_X=(KRg4%#N=w4e*qzx4{vVZ{50P(qVDoo&Zk7a zxlbdns~bP+F6VNa`m9>#KUU#31(l7i$7D{V1*o_7OhQA+(ul@&tuH&E)h_qx=w)o) zU=snqPZ+mml&T<1BPDSN%RG;I&q8k}uLn0BL&R zlfFYsqC;K$@zJr&MEeI9=W04#S5E0ayb{XpytZid#k}$>|4|Ed9C497D6hAD4ANkb zN>kO($eEH2HQ?jni8!ul3H<_33eNBgcLK}UHs*!Wf9#sy3I9}IhUeDI{#Xv$Pt1O} zI(V}SF~fp{dq;|-vOEQ>TGoC6Tp{Ed*LqI9lf)XJBx;Fr0z_bg9C$0PPDc{XTw`}^ zVYh}c&^udZj5og1n18Ksd?J;j+Np9bH=H$b?m{+sc*6G?2#}Q(%Q8`-N}0UXQw7y# zQ=jrP?T|#Uw5%-N-jtOPA?z%3NCTTa*yLOmg;P1pSPq6k9sHiso6iLGYX6s{h&>Hh zoc2-;Gh8v#S!hoyzTpz8Q1Nn)XOXmP-3^7aEZWX92xpo_13reuBU%A)?;xVr<9d)sH@>LMpulvr+Y7DjVKd4@k4o7raeJUPH5 zE&hp$BIm(cQ*7&RV|QGGKTFjkjMZF_VX6N<3^%A*jb#vZs<~%Xw7!Zq=*wtN6)qeS6cr|G5EI8m2w% zj@3DnW1O6*o^hivpP}k$CLQceh*9R1Qqd?0hqg@JPV;vkeW+Za|$!IR=yUem{mqXg%|1;8inr<{q!=$A``n!vsCuQN&Yfe98ZY%Kg@;i5@ zP~P=buPgmA)SUTKZSZH6Z2@fe0NkMGFcj%%)5A?Wf`TV-NH=6MQN zzkbb0EGno0_a;t?hI^}9%RdNsR_3h^9yeE(R4H1uH2E^9DIOPaUoaDbKaCz*1b;=a zzk5)tn1|kltmM(*EKT6!K7)w}ti5Z6pWlZ20LIx$G?qG*_At7(YThMho#CnZa`oC{ zkJ7zwlbLzze8Ow$+`l#dBYtZAAv$14f z@gcT|;a|899~{gr`UmCuXAKzhZ*I$ImK?WV&lT~V5wP1IFunif%`v)qg=^dEv{ua+ z+e&(j({uZ(wGzNP>ZsV34mDrCdzdxLO|QnSC~cy0r*5lIm7DWOLuYtxsxZ!~GgDSl zGSHzmN9P9G!^2|)N&N>meh9S4iO)Ce4J+W{r!q7(O+#AYwiAV%Pf3&w-4y5lYko}X z5bDjAm{ImV-b*Tv&CbyHcYu7ZMwPd68$O@kID^B=OvRP%QDh=t90@m@s2}98G16pS zx{^`;^Q7+LyU{AE*FhuK+U?yZx9!e_96NvJT*CXuuPudBdgPRRFYF6wY>(@^*OOsq zW|lg_r~Ug@>%A_%Yr(IgI^#F1r|*k0+F5-|=X{)6y2R3oQN)ffI}IfZ@%px%NwQ)3 zM|0gTuXgJF;zXCiSEkOVX23WRDhMp(G^E`0-0)m@UXqCL!JpnMKUS$rM>ZGvW1_Fr z+4{CVMC@IPPX*hd4sPLp?W^BcXcd_rtT!&VS4`KIKFR(Xv7FM6u`@c!6!VD)uBY%w z@LZbSq_8i5Lg~fDyr%RVgu6v>dk`(%`|17lz*SIJXLCM`mXimwZS`9qAHS3H^$?cl zhj*a(C};(?*oC%dbywXsZl(Vo6OSG}!qk@>H1^g{ZikfdFuQf+>OpjdtE_@e_vf?X zc6BWtHyKMJ9hrWyx;ho|8Q5eS!|gg5lwMv;^ev~TccTU`DrMvob z4OS#mVjywz-m4bq-(`ur9uEF4fbu#|-hoGcbcU7?EoA=IV%7tC-+wj4(P4f)gH5#$ zSjk6X_{JnsZz3U{l5wXR;wb!0fJfD_)^aRWbt?bmg}!rrzjhD`t1~eR9utD~y4GSD zGpU{z4xxJ=S}Sn8WI1X^hvO}8Vp@4ZmAEzCiTm(o)2TgF-dx@~I{loJbDq2~eStvA z1;xSa#{%Y^Une6eQf|^K81h~=dhpLJ&F;de49$|!!<*xZ!B6luV{3ZQyyunv!8DS0 zQJ>@EGOh;n2BuC%KsNZaY9d4jBI`knoBLj;8#j1_tXm=Ivs#CLPAImR>0vl1=7SqR zvpwblX>6UIHD8`3U#{_+oeCep4@E!pi-X5chsV#jFm@@G4|#kk@lHG^1Yya*`&Io=ek2%~ zz@!{{7^WkTIp*KZxNQYJaDNPB8u|Rf`U+d_#EJ?^BCJIak~AlHtX87e*9oxzkiE#$ z{pt7eU1y}X8w?o}mr?HQF}H3jlrA?T2>>AIc!*P!aN$p{Q{PxkJ>Ld!=PZOA@HvR4 zy{xS*Z#PBKTe3lCI$Bb5f!46;^{Ddx*~q6q93thJS>wYR%si+~PdF_#W86ncI9a&gfJ$g z8T9+oG?UfIX-;NGjg^J=p0w`YR1+r$jv;@Q??_&xp^rXabhK6B|kbK(p)! zS$yRq!854GNIp6_o8gFmB}70HO?OGqCZaQamQiCQ{N5opLD`C`Xw~+SaH~$3_Kd7n z&uv^pk!To7Usyd&UkWSpys+~P{;pW-{+bMoWbS8RY_^I~TfbPKKPdzBnFeXp>Q}$x zPy_-2OF4J<%AHD;R~J)m0L~5F6>U1W(kOtazVx#3zZozM7d^$Hm4{Jgwj%lKoUpP- zv@id}ssJPK61S=}Isl4_Y&x5gc6gWZ5#%?5NAe>^vTJ0eb+!Q+*oe7U1r>v@s4uB|^P0(9X5&sBs z2*37Id(a+5ckjE81`U{(_RTtyr#f;)ER@?O@Ed+QUdz`J&_Rk8nqtV0>MnWlP8K_L zEqvPR+e4P7?bU6iw&c6dn^n2OGsGpWdtc!qrd;It1Bju;BGNC4J_4}$*n)zBkiKP@ zv_e;T2ku}6_l+LITP={8o+mx^Pn^U{(m!h@0!H`H$hunuofMW$rdHCB0uuz7l*!_e zGCWwob^^j-J>w&o4i?Jx!ziVev>JHriMWXFabaP0J4dg4zJeTTp#?W!QkF2=9H7Op z-|R09`UwEE59Kq@y&cx+4*;GQf=NLs30DlsF)@C0p;N)9lOsSBDYNWpMusFZ1)O(!zIF%0`A!|%SzOaz3Ic9785y#)b(yhaK*zDI?2c0iuBz|fM zw$NwhJJj+fnW0&HqksEB`7M{rd;ai>HQap}KL)y}oo9T)@zsi_bz*B$!>C)ahm)ED z*C2p$b-`(22V?MAdHmI>jf>ZN?Pjo4TA&bZ z#$Nz~AMOS5v=0Nfo1}plkv}$0;tVi&?%>F2cEI;7$kfw+OBbOeb^_?niHQnN^P6`a znS0Ex6)-qg6aHBAyO}lT>g`27Z^O*;4UZA8z~d7?oT7@)(tbHYsGSLQe9dc`6rk(p zHK6oQ93G6SPwKzvF8u8ExcIxoZOxN8@z`GFF}|VUo4(vrnbM{}h1g&+S>BgU%6uI3 zU&4+HJ;+;-p{jOgDH3A_c=X_Mu3w-3m%K!9Bed>FF5Ou+AKsFRwweR_?#P)*fB<#Kec`4nA$%CP4<+TjE`JJg^c882la#!5^Tp6d-HbHGs(M@9X8fDyN0qE3JldTaK42I7(}P_c^@--HpK#|;)PV|w;F zR)%ROU3qMf)7`YNx*J#Lw0S<Wtak#VuJmj9(|POqIbV_z%GUt+6ti zOceH&bJE3|Et0%1oKjN{IMrC?ytQ}NJUgbe%YJsxXJu}W?=+RP4{K?8zpwIB?#BHl z^G@-+Xnwn(4bD#(tJ+hkM1 zGrjMQjwc@~X63?V@LTON(z!BkS3ktu>W4p8rsvGbjNJ7F@(+ms0+E6a5y18o8gp-N zv~N#mv8(Nr+y1?wmrk2(h!xNs3vb#xs08Tr+$B0czc~c`E0E77M@}Cu7~WjRS-)$< z0gcLW>=Q9*%$>fHxs#(sUmRlewR*+_Bxuqt#$0>LM;$NEvv?kB^ zeu+Juckw-u`;x`>+3J%6ydp0ZuW3A*6JP2n-r5>7ck_BYEkPA2-f}Uq?u@aX^NlO# z&wc+$;Qf#HrAmY^^>Q9%y*7DaG3>aTYof^WpCneDURl~LBLitp2J#xTD2ezqa-kfD zD~+M`a_{RswP-%8HA$Q6PAO-&td^bm^-b+Wm3c^nMstTdYhnkVOK9S7Q zBi!2y+_l1@V-kD(Q6!6ti_HMTj=aA(7hPOjj7kc;MyM4N{0Y{WXmi;y{~%m3G-Pak z4d!s$;<$7OMf(OaI3cA*Y+6`03Ym#7J{f#l;oZfaETvC0&#XHy@qCys`tdD(di3yJ z?efiT^@Z)XgV)ZJM?ZY`6d%)341d0q<4k*7Am`93=SXM4Yj-9AdDEuBwpIN)W__va zYUjhqqb-9CL~hi772LM^*f>+9{puTeSKF=QQ4@n*U(Yh=8Vxdz3G_5)oh_6*E9CsE z+&(CG0gxOoY-&AGrD@Y)L_=oyww@}u_hb2fONCAx?Cc})7Riwy$sJlQ6Go^_?_2{K z;>E$HvTG!0D@r&=djQ=BP7Q+YWYI;o{`*XpVPr zsr1D!r|W~8>`$5+Zb!OWSBGz{)(=|~P#0)Bdp|hUT*=Mk!Z% zxeM=WOBOHs*G=Ei-~848(=6O~-l=9FT`9IF%2a@CDmLsT2LwL;xXHQV*C`SZ3EOOd zV6a#=l_tbtA2BdaDa$(+hJ~C|bUgmo99baTk$>=I=!rdWgRcF)0ZcvWTaJWWwSB6A z1O(;{P(?bNGwoEr6LvG0qso310hEJ755k$k$ZsOZ)Ug~Xr?rC3)1&W1=?`|^mITOx z!CY(6#;IvRuF}cOw_5qr=qV|>T;tR7g(*x2Tsor<%?+MTVNsr^p)}Mv&3}ZcSJ{GB zQhRcbwlqdACP7D~GpClVX|0OoQ%9^=u5!BEB!fPCkFWdVyib`j@}C^*7Y_+2n7ut{ z(;n$P=;ItNQZs6~#%IE8uDoG0{4-e9%fl!_`lQ>u({^ZK%#U~5?BSL!AGD3R#)f}r z_J_EP@}n?EH5*pADUS%urbAC%w#)Ys43J-11Vv91cnMIe+#ZhQ^s_yL|v5vII{cTkK}6f5v0vQvJ&+`fsMt+e)uJ@fPt zO$!Cy`erbi)DR(<8S=-9FIkI;{2I})=f#8KoOdd!EqA7@BZiBF^q6=FM*xqP{b_QI z0GjiPQmGAaOGytZ{KS6~Mi5e$5pvtE>LVCBenw)%(`K;4x9h5^G6qis$;I4uWhSTF z{qjs_%bors{C`bCG;HA-2qg$0Fjv%oWw8T$V1Hk2r!g=MN_c$2;$zZBFi!T3gr&<8 zmC#3IDW}9*^4$a5iq+Cl;6;LGyk{(pa2_&9kcmXxD z9)GX8?@+T03loFyMiH=oWqf^oE&HS||GN)_zs;w?kYxj70hENtp;%-YFd|#RV8g#iWecxu9tKSw&+Z&j93$}#t;&);yKV#z3x#6`n zAb;9CLx?U1!PR}2BfNqJWBgLd{&T4^RG7XJ3uVhb$^U(cCHN&u|9>n|7R$zGDED8# z35A6*$35CHyG3Xig^DBB#!m^`gF=G;k;1Li3xp@pA+;31lAv`dk>0HT+_WD2!@&gA z34S~SEC}ALBP-$2hmeD_HA!YoAlUk4__^+VfQw+IpeLWtKn4uMt5_+vCvZ)6LnEgH zmV-^dJt_Z>yS35H(1o8ZwueZbXl5UaKUSUz80j2DRA_5U%ZR0=B{M8iBm!H zHQK)y+{}eM^qlN2W1WW+hy90R=b?NN4u-a`3V!@F5t@^@ls-afuLP9voB$z>2TfC8 z?&-$1?}Lz7*`&Y9rPy(}u@u$KCIO=ntft%u904RMg)6>A17oeHY~=pme+eZ4&DC+X z{Z;(BnWW4jfJ!-yCEcPtSgdhbgkS{Mm;V`i39p7O{@&1s>E3*J)N$qr_ z9sF{2Z;32jRCmj{kYlqAs1vbO^3U26K@8NSD9Oiv z?d?(7hLw0jP3D6s;Do3q0=}1G?tm>)`R8I>CZQ~>2A{Cip>oXR2Z^YdK9}1i!bDjf zepQ~T5WO{n2DiN(PjPs8b2zxP!bmM~KZ94q@~xnQ90BaeAZuNy8Cm^?b_(PG^7LQm zi)mbT1!s6HpQP!pOEh#E@wS@J@xFW{>uE?8mi#b0_P23qJ^bY+KZ$&rkkCxoi~u0 zRe$PsDJWRJB$BBR|KL%ALd-kQT=JLEe~H|{q{5KFCQU0y2Q6AZg7%RT(Qs`Hp{o4N zmXpx=g~RRv-+}rdt3lz9B|Wws7+G}4+AK2g08J~*St4E9`}F6d8Y%2Js*ygzh&W(v zZOshyuX6lSKAt-$AQ5W!-33~z*<9cZhtWN`lot~dlVel+Z#x3V_@L&b=n@QaW|`76 zHdemzNwu&DI06LI4n`-ChR26N+v4D>TUUoSt3fAWG*Gi6(cGt$_qn+^vk+@ZX}6$3#*g$QkrI|QSks?|Dp;?!0(S7rivB>K|7>G zW#m2@qha!Lf=`Y;{bO(M8RM0gG-l9+M|?=v4fRUaiy0Y#B?J?OHx}aRqk;LIQScF& zM)XATzHN`XVHy$z0l`}M@X=l|l8b+12e?%H4v&(ciE|I+aH247pmx;EY^k*4subZx zUwDi_3XcxJ4_@{G{Xkh5t~hi1G-#YzcSXU7XWmNzcKoiKRN#ctNju)Ah#Q~unt$;m za9m?tS+vWN-Iame@*K!~b#=*13i69~0P|)fR^MJW?De(hoJ*H+yA7LNg>qb;{13Dy z?{NOvT-avZI2wr?g8t8O1Ktz*tB_hU2W(7g*FP|;#&7wd5;uV~*3d)_}C=Lw0 z@9+I(5~(ccuF|uGwM%+VBdMS&)OO+N#{lpbR+UMIFwqI%<$1IHvHUX+>H3=|Dek{X zfBg7`wR7VdO#O17%76Z#Gdw0Pj>fJuJ>*`|%W}V}Q^-tKJkL3o+hquLb_B+W-r~E~ z1vMyE{pa@Y1Pc=$IJL!c8PL=6=KYCXk!796FZkU5wBQkR7ui}eYOqV(%jZ**K7tBKv zB(nK}`M-xsIN1Z)kxWXD1R2+t=i-2cFELy5O9{HeIIND)h5H%78>Jlq!adLn121)5 z4n1xra4>yIV8B3SYB3y$%F?4bk!=IeRAv@&g(IuDSWSOK_jD>lw{*S_kex?fk%>nq z+E=xF#3)y;J*%!xR0)5dB>8uY#FmVYF!%lyVGeJe%wi50-mTWm0@2*5Ckpy{Q=3uj z2B}gEx)nDbLwm?ORcvar=GY=;1abU9XUL;VK2l%IR(%80R;`LOU$>0&HqukAT>`>r%gJtPDpFog!JmClv_|xM z@{YmC-~XN%Q-&obWp?c|3^u_DD zVga+WESzbiD*o|5eq5iJnNj3W-mEM)Z=;s>&3uS$M9ObKfcM{Hfqr6 zB~;sz*7v!uFX6c1`1zDo1*bcwveG1VwPFwbbzrc5e)7oq_ICUq&i5XFRgBrXsxj3? z_l1#>>?7ccOE-s?*>Yb!##Eezqs>BYrubCqnWJ#`P?gJ+*>GcMW}xsPqzm=AtAB1y#*C=%d^)`Sa-p$?sR`3ZGxPnNI#dqrBI^58|AXN4l+SyO+ z$1Iu`h4^Ws`VPsUBxdhDC6A=5m8Q3oi7CkJs)9iZ4%cai{Dj7a-MY` zC=j4e$RC0Fp9|Rdf+#gC;f|(3%EQMlb{HyS^(5I0xfh}9O8qWvR&R@z_V3G^Ahi5_ zT>7W&Xwf16OBj4QM0KeriMQKQWN>?Hc@*xI0+rj3x3ma_eatO^d-%}Nd>oaf2!z*Z zXI>pXAsj7IuNCA`H<6h*l3-JS0Adr`JB<&2%!CP04#TIkp?tNQDju7&5K1ySDZO(; zZ@?*zs7{UsaThU474f$W;ywmD-DBm}nNlR*njG~trZv#`#3+?%$XO0e%7%nMNXvGV z`fJCuJiiY|3B+9dui}#N7WCWyc*0O5NQ*ysQ?u=@&0?1+t+o;cND+3;{!w-OwaI>1 z+fYey!?;1P+W-Qr8^*zue@B@F({dXEEbV0)5baZcH#s{S3+;hjHh4jUEbupv?iGm> zUP&OrzR@w31JE#qG<(7s!U3w@G8=8DEBo>jkTCCbikBMv$EBJg%tQ15xyta{b^U4= z=LRvnpNgB=kcf|*PW5$oO8IjB)g>Rw;{;6u{B!$>6NjYqYI41ruS~*4h!+Z22jU_i zcO|Y|&IS_!?)Mmc3M|sLg4QEJN)`3{Cj@WcuD^ZwqCUWhrRlxVfnyH1v!Ex`*Vk85 zux||NH*v%vb2E@T4DnLDA@KO|UR6Z{A63Q^5TdTOdr{2fa&Yt>PixWP7esCXpNM8f za$(*P^qW9I8bpX&lzkSCsD2AU;*4wZKdV_w`5{JPAwSwzka?B$l!=$a-EVgTDW@(a z{0kG3J0ZW+{T2U9M;8vn{a{o|VM5C4q(b7@j{TSZ+6 znuhB#tK`I;dTJ$>Cy^>HXNe*u}B#LoG8ufG>Dln+SI&_Lse zS&_$W-wIyyd{SROXiSy913%!SqUZ_)+WQVC;yVrTJ2(;u>e# z1~l{_3aFyIpjYulF&^fVI9V4#uBG_oWA@DOX9^-#fZk-W|4gC$Z(y?PkH6P%-&O_+cg(V;lGlgS2!k;Vv2=Vk@M~fv}Zl4jepu zSkA&Ci@>Yuw@$niigJWzxi%Q1W6SU=EQ1SvwGz}C-DfMuwqQki+hOE-YbC=) zEZF+v7hUr<`Uf|Y`1tu{b#-ZZ2(SLH&{73QG_zi@b@YF{^ARN3RwgiTKoW%JifoRL1H=)b^PJlg4Wdrn8(dCj@?}TWs4kwB zrmK5Y{waxOmteYhUe3Mt=A%JQ{*;cCH`k0e&z|Ip>+v-{x%tk+{ezA}`1?ZfUE%~? zj61_*c(bz*QgY*p3HDubk9U;L*D!LIOePLo=YiaE)>sceqJdllPWOwc^VSeTvYtf% z)*XeIHkgNlWD$|>zkUSM+5ID3fxuMgfS3L4rT^)faeyr%!9zY0aK0?DJ$VWW!qeX# z0Nsx9ika8U?c%MJ*{IPN(~k1!wF4-L3?JeTKKP?uj{sr%;VMx3#bNIwjKFNwz_%x( zPAe&1?f2)GA zZYcm6f_qN_0baNW&s#S|$&SDaW;7K$JZRlpYH7s%KI=2ZK;MGiS@zBc=G~<4r4ZOJ zb!d_HZ}KJ{0I5Sx#2_W%xl!8A7#ENo=JJeo2#dH556dH}`|GP$DK}w|A z&%tY$9^i7D^$H{)%F``*sQ0$~q4=#XdmJ#TEVflRc6{+pBI1986p8EenaR_8FzvjE zzv{m>Xp!i) zw?Apqiv=IJjif0(X8$i&_%R*>qes9+iez)&{Q(OuTTwM76Nw8M{QD0Pza=pKUS=Jf zIh_0xIP{tyx;0(XRn2XZ`q&4?heEivu%<>eAIf z`n8`?s-*2h#_u5X3uobTnvEc3X%1IY>rK%>7UBJi&0uo_8`#iYDZ>D?ff|6cD(T(- zNVXaAnQSov62B~&_ISv0`rVget4}v|ofp;Cl6Uwe6%V@4cwtW0F7z5v)tx1td38l_ zJW%>%M7MreYtyNBAzkIIy`pXAAuZ)U2P#FZlhW6R)1ExJ1ejmwQ}-EX0%DwU>uC4ohR3@qS}kci;N%S*RQ2Dc8OMl6 zRe@{XVROf#GW9B@`YDveE6&+aEsYhi8f;TyZ0mHa_W8>ayIss@`h#C#(D8L2bqRP5 z?jw}BsX~*FAYVIxf%2~m=&nL1G9rMLedbl&a_!tX(m;WYf@Ddsr|Rm=;;SvnSBR_K zz^}{`Lmyru^}xYbWCvc%QR)5VG@vj%v%WIQ&vbR=Yr)ow$SUJ>Q5f=`0STX{?t}I~ zvZ!OaB%4 zb444cC;_rU7u-RAIf_{)8~1VM`QX_D)SMB}*(L{VD83vF#R;?yxZID)5RP5?B$sd- zH$ifYfOIZ;L{k6zPVeX-IpD?x-Dvp1d4+S&?q1|WU9V%hjN=iu3<_Q(mr>^*??)D?nQc7r^6LLJ1Md)IEPS|0=*ZKZk}8XXCBQDhBG9PkCP=@vzE|ZeS&KzV7E|Bt^IUxvIhd zG=esTVk-;vec8*GFB7nD#OM#@12*JPD?|@}CzpY^k_d#zqVx5i_Z1+}ulelP%9flr zpvhypF6dfHjgKtN?A}nL16We)NeVN~r|0I#)PCo1{I#IRczp5DDe|N5k<#k8&mmRp zKNJB9+|*JSUh}IvZ84G%Zffv(C?QY_S{af0fm<*dqiqxkXjm{QX|H?sjSnqRr)Q>H z#dHy(3heQVYe!H-lq$aE_Fu}mbWNpn4yZJ#YW{gG{tqY+Wb@Ez_~qH%U)~jRJ9s{5 zNAHq1^Fy>4R|+md`C^bYKHiVcgD~yEj0YVu-8aMtkvRnIj`Z4ELm10YLft(7OxNAk zj&H!v0LCkU=KYILMLPmS$R6%q?p2aw_2Ey|fZJ&?AxPpSv8x5JoCb!Z>h4QQ4BdkR z7pKe&`t4=g_e!$#x#=kJE5~t=Do%7Rkf2vfO|z+yufw$ND;Up2}aKMtT3 z3OwncftNNPVJ)$08o5@_3yW-0>f-E%DyZeTW+=N`HqqdCJ4ovJ%%?pxP0BpM^{3=h9BJFhmqItu8PKGL_o7?qY>N#t`5EiIZRqW~R>Kd8Ah~hzuADgfA{_9#u z8Idw$oFc(L{{k7rK5ZlJ6JrAM@3OuM-uiY~aLGn@rRw4G)k=*wVQrB?++PZFdy_BE zHE*qJw{~QOUk~!9T$d*3s`55Yf2Pz0Nt!Fd3D*fmND7RQN!7i3$fpeE4?R7n!$lVU z0jH8hm!Elj{nPV0RuE% z@&fPejv$Eh9gAKO1+_a%6qr`}{u(lAu+De<4vSP9ule{ALI}-wyG3pN?SI zgY7dTk?)B_?{ezmg4*XM$1<4sTW)tk^t2~l9e>URkEr;kB8KxMAA(rPh$6-uO8q*s zV@p9umuf=;POr#% zTVyGa)Hv?@;<#24lN-ZqffL@<6`!abSxe)#%j7$6@Cv)uzr zSFf3+658Lc9J5Tf2_VNzPE14s!t#~oh$nVPX6VWBiZQA9ddWnc8#~R$a^7Egr2irQ z8jqDFaunrE@OisG5vL+%eH>p%8OrfX$ebE_al06}VUR=?yV&#Re+E+A>wJpafax*0 z2FSACS?rMKrW%pYz^7#S@_tEwuNQgEAkqlsSMCttDlm(*{kZzzkGK-<@*#0sD+@$; zOwi}T+~uY>BZAm->?;3eH%`;~dWoBK7`5d%XbMhPYs$L1a=xatAP-v_i;JlDY?)uq zf9l)5Rz3PH_r&HyWnW56t8}O-ehK$ZrAi&1{7cbivh7hfGv4{#?!NwIs#^%+GaFCe zvNZj%PbnG*ZY)#y@;@47kb@COg;=I`${>cQ?#)0TC}@;`lRB_K_DJnCrXj%n;T>Fr zr{VHxcZ*JeQF)ugboU;eE;`RG|LTr1?Wc>rRs(n6x3!2cv6qEzvz2U3S`(7SmJO45 zDJCCMwAFHCiqG0ah_4x4koc>28@k#G5Iw!=YWKDeV5toK%$x@S{mZ_R(gVniq3}og z=x$4}vzQ%!(Uh+eMi*}hb<;4(I8I$A5QlfRi)O;JDw+&m5Mfq~QVG%#8Vdr0-h-+d z_p*(TVv5<8CcIfw8O7bbb#%pB2bM5pzWEu6(VV+l8c($|9kKL!_D*#HH@IZ?>ckW zW%v;9={oDlVi=DL8n`Y_4=3vIcP~>U?+S!gFrOx_v9Zx?Q#0aOem>VTyT{-Ex{r5M z@uhqHV?GKO2IfreU@2g+Pix5A!2Ca+%;LQdqL#~n#xPZ}E83(|;pM!ATfv3mejC_A zqx%;xGWcUHjHXYVf{#}x75f5^yUxQ-#2+%Pt}Mz5MXN|oK+YhtVYW7OcVEqJ)!gqe zSZ4^DZs&5HAT!T35?^^iW@y_4I~knRTdA~2CH^&M4gC0&xd9(C zr_X)-W)7^=Q?mt(5n2ZD&=M2XR`s1&{xWKT(`Wj_UCP4c?1sf#^TvBd!bW49 zGVJ9YsrwJ2D?iWP7cKr3XzIimys%3)j0=A7g{qz4}*gY${XDV^V=XbJPhUM z_ibNv>R)$Va*uf>fiS^gd%qZ$rTq=rrlKKC3b) zha5@z@nFS;&xp#?Mq^ZuVFTg9+6x+g-x&S>U*C()7bLyD z9z$wOGq?WXdZ)bE^Vi}g3e}&wYy?hD`dGs(?V2Y~nDV_gQ?4q-_Gce4KdLnpb)LH^ z(I#za&2yvJEpNTXJy1;Oi0^7$t{W37jl)K*rf#_Y?Xp0@<`B)##@usNrp!Mz02^rlG0( zH%9BpW_p|zY9{MyNx1VbEhUQ!by93gOt-kDb@P+w-0Kmiz2Br)J*;=XIL>xu{nO|7 z)BC@CwZ59L(4#+Pu=Saukh{mOq)Mq{jj5=<+b6ROzV>N7wE~$;LFr(7@S2$?!=!TL zr^DW&oEsf$?DamJG8ez6ycQoHpe|Hi|0U5Aetol`;LF&IQHe+CN3OfWiEZNt1$Xqb z(i{59Y?8eF1lAAqHwyoL!+-8kzNyP_oF4T5kqGS}GA4zLvM!G$hCs$97{NP88KHZM zM+Ad5UwX29mGTvtexG+nDMLN))P!y5Pifpt6FW-c{qf!}VSb7Jsq%4W-vE8`r1o}0 z$8`I*k9j4X)Jtb#{Uq6N>%TrO2+Wfi#<->hT|1y@)L5=-nmPsXy+i0GO*Gww=>BKZ;IE&3_!E77R zhi&^-Fe+SN+_CLNScXBc0Dj0lr%1z#jl^4z>Kg}yiBH8Eqqjc}V~=h058m8R*Gjt0 zQ*~QdOGH62y#9%TsoN(U3bhqub^ED_n!`^{0oWw#&PwT0=6+dzq2}FBMaZBuiQDzR z_?M2J^(HEw#tcooPf~3pK=c`qBx|l=>n8@R+TW`#3+V7XBY<&{s+QTN`h->3w+N1q zEAMb>_P#Q7plz_l!5Vt5Plt8Pne_18@R7zz^jFNk7Z!9LF($cb4~QIPzdh)CD=MEB zdv+*;;~VG$oOFbUq=L1d+~Kd>*6wuCwq5rpG;`e;ptp^l1w|O8cf|l0 zcK=B#bd1gBRL$+j%JOpCC6nV#Df(N?6oT}GIOi>KEbM!pv2Xn&&+tHHicrN2qz;O5rGzxT+u&VoZN)N|OUF$nMI`BwS_I^5p31&6rU*zk36Z=pEbeR2q@Z zk$2J2Lyw)Rd9}0Y9@q1{38kP_xQ@sBODd;CP~R+7uH#jm$GSmPv&q9DZ|JTMgON;u z=APJ#a!$9eEwc9>v9hJCNxEkH-+L%85wBTIt31*JWl10S((cY?Acz?JBwQamW1nlk z-Bh%p{+{gvJfU;v;@z-MbFD93?V5`=sLuw7gnJ%BSPnVgYqP?qg z0|Nhuve5aDt~9b@R&}M;M^xU3)0vKm`#3)}@Qv{yR1Sc58>hdJWuraR=S;@( zVOjd74=mr>5TpHhORK9v5HNLf!(@uP=Xp3!(8=jg1>Lo>mZR}g zofuqG>!n|P+yHYx~hV3%H}Qq?44GkPZ=wXrM`FEQB-7n z4CLAG*mblC0RBZa#9Ijbvt7d6PMlWf*0OQJR5WYmJq$skmruU?%2TR%elo9oF_YV1 z#`Zw}*oCUKrf6$CdULkiQ|+W=I>UeWl|I$6@S+-h2Hrr5nM*BiDzr6!z#z)~St*Ut zi8!`P+XPWN6tZ&Tz1|(Fn~~S(Zvj3lGHKEJN?o~#*}wqrGl(Tr!*U)#wl3#sUgRRh~_ z6thB)1!i%TWQ8vF>{qw_e9{ZZMBf5tlfxTEye{Zr-FfmemKTq_?|hWUGJ#!dK1cD$ zWzM@;NsE*}_LC;}Z@FznKv=X>+}4NPa}Hcas=kM+3H9Vfmu;+BvU$;O9k1Rb z@-AoZI6x(BhYx?grLyW8&uHLR#l3S*8BVB}D9>Hvt-p0pc|aWe2OR-@$?30q={|sZ z$jvKhu>%_ORQNM`Qf)lIerx`kLjDe7;D(JWKDa+4}qnf>{oip)PeMp*ss znmTuIa4-LC)=SveAc`CBH?6IrHhq>F_xJcf9zNue4Dr9TsB|*EzNP}$qed<_c6MIG zem|y;83=n+#w5P2-@Ou*xZz)RernARk!5u783K*VTpJC0aDy-`Bq)gzbtxB!z-Hi?hydqy+Vu=Zq0E=IgU39fab;J&G;_dEW@| zu-4F~`(`6k9m}_ZWumkp@h;66e)-OD=wN5EO@hgQ!8`Z6Ex|Q3M(^5><72iq>#MXg zx8Ly#?Kyx^rOD2mdQTy9TjYL{T|joAl+8qFC`?Wg=^=g7*}C+7up z2KL2Ht?f9Q3knDZgs3`w5}WIG23qzv4)3(+ilucfN7_d=+C;pb*{*Ax5ufU$@O678 zWhZH1VaUeJ-QpnhteRtNO&p>TIlFcB>Qx?LVQuqDI-HP#f&$-0>&lI{5B5gw@a*CN z$uwuB=L5b7A;pNPv60cE5=$1h1Ni08^h9@c+cHhIcG&5tgZis?6E@@?Y*+cm=%+;P zjl3-M;$?K2Ip8ka6vF2eNN`jP8s8yO^Z40UKj4?jbyB#j^V(P6;}f*_X#0)kX|jy~ zZSRX>2D`=v1H<*wzSmQZBAVCpWUM~Tg{` z6K)O6Rc%cX{t0;>U&cX&S^!Ii~2T(J`yn&;C0v|?VMi*?H8#Dz?~0aq-rYVf4bFhH&xd+WJPj;6eM zLfJ!cuDKoVyt{j{mU*id3_6j(s=b~*oMD5JdRy3w0Ol|p08`c`CK=3j`LO#Nnrm3g zBJgi(Sq?RRM>PB*dtcyAgOw+pyxIkuDvv(Svtrq&j>SVGUQmmuM(ut-ZPi0`Si`)7 zeUCKjS&y;u}TS2jtZ!L31#>~t~Fvc zMsDP?y;rqj4VEa-;gQC-#{9x<{ej`hs+D#bkM>snV}yxA{O)Z3i&37OU7xQP(fN47 zYsB$E!sUl4mB}{<>%#vHo8QB-(BEB+7b?3$gkx4*a!T}G<1MdL$x*-ocJt3*qX>~} zFeiVo3bCZ^^Ll!iV$NHA?DcIElCX&i8{zcC#FcTpK@TgR34#@Of;|^Qci42UDNfA3 zM=>Y$M#tmN3qXE;y33zv{GCJPfnbfAuB2Y##_gF9NZXwHX`s=)HB#xLV>gkcm64p| zezA}zV=HSG+VCG1+eH-i8ZW$(Osw82%VCO%(Pb?;B*Nib!_#DMX4kk+VJ}jn-__`Q zZ#_N*m9TOONmM{#p!)M*E^%O7H0JaP^Qo%aZ3%o&pVMBm$9R_g-ylZn1R^FJ-IK#dWI{wvS_j`woTFMU#B^;sk$@#$~%` zu8^jA&?c|XdnG}OD^f&*Cys-H_&w$-Fa)>8%cL@GQp3HT=jFe)@lEQ!IletQBH{6f z+nR=f8`t`v>v)f8Sc+eLW9^xX?>Fgz8oL>~6wbIK)5ki)7GvaEWwgq^0S=FjoUF%! zwagnCM-Ouk1gxDC%dKAXY4;4T34F?^(O;CiIz!}@bW431#Q^*0biPE%GTo<*zU`_j z0fx}G*Sz1zj?*I=@sCJ*KZwe!a_^!w2L6VelI&2PZ>_R-JQC2f3JBUnR+W!{WMGO? zMQ4=9$IFOwQuG;GKZgveeR9>m-OZyj=h zvZ|k||5R5bf1I^F<~qs1!RI%MWUccO6@hk-fEe-4^1S2L>uPqu5A`x~7?`-yrgLJv zw;jj7_8BTfS6^xW@r#PZAbzcc?c==e^6tRYL>3n(xA3eV3|17osJKCEEuxxhWGYKi zAMdk}ejM{KFU4oNz|D%Sqc4}fJrr#sx?;8$V`_VUL^?8)`Gmj3^^Aq*$(jG69=CbM zc5|fWWQ3RCRFP#eGo}-` z%OYMbg>EkXV!0^sx)pEYr1;o&j;`epQzSFqQCH@vwv+oasD)Z2|IEA=-9|9J6m`V+ z?bbq%G18JkO1|toz0d)yQ&KX9P^W4+`>t$jZ5D3g1PHzL+Gt z+M}ym6{an~rVqJt@AelFn)+j79-EUA9`|F{63=hm&k~0?mmZ4G&uNWXWgHo?)Tl(T zw`yp!+51+xY;!oR9by)$-r2xp<9TiIOr?KiMuh9|ds(8>==Ui?6(g6BLxH=)L@P0u ze*}-2`Sq1Ghmy;+7U`5~@wsi4vLVv8UL&HyW`mjrTVy%vnC32PD|pdYqZ~N^BTq08 zHDh>}tW5!b3TN@9E1@8##o%q(-vdUqguB znfuaHsmH-dio!eXsz@B$S?4D5aUKEvyo*|4mIk7ef zn#pw%WgyswFmq^EyMIGTL^Wt>oyCfx|2n-Nnz7Ku?xp+dlc+qrPJjSojA#(_aaeLW z)Z+8Mn)?!W;m?5XA^Q90eH1HidL@y(zM?FiBzFOjy%rb{Sz>r_k{%CE$)Wz%7lQa0 z2+Nc-xH)`j(|SVr9`TJgS9_~A_BCx9+*>o>5;ogf%PdF^R~xA0b2neAMy znF$RNSiKxxlT@$A4*%H5#T1*(y9#_V2*?yvV&D%ruMbi?VJ?Wp$O7=_hF}OX!PhtAwf{NqI2TKt4-CEDNW38Sp zg2hWIh;E7b7ImvF=1W+-dy{8%d4-#Vl|Qy3*LHi8B0(zC^j37eh{m;3BHQF_zzoU< z3=!dsXD>|@bpax!+Wg~TPtkI$a#9>z^;{Ko6;_UH0@a0@6b(!4#x0@882GHlZ!S%; z^-o+rm}f=w@@@q1D{7{kaO*rcjnExmb{&&N_$0dY_+~HVWlpY)ZUZnuUBc2xz zD_So^9^{Q3Cta*Ti>xe}Tpwz0FDyN`*Owd!Bg&v)bL?5mco>+6HKGSKV`TT>H?hC7 z#G60FnrOP~@>me&BZDDE^V0^!{Wym)M#6<%Xr@dA?n=_>g|@^Mgf$WSAD{)j2F9$5 z!_GZCFgU2N>qGH*uUD5|2@-yRYmX^BYmbDgmt<`aESL0AXJy}?Z!Cx>J8!2pl#J z*OOuFCvyWSGnTWOdP!*@`EyXtg+8r0KW9{_Fiw2m_JVgvHEp=5G=meNW+jiHcZ$PAY$l#+UOr%l=iR z=?k^+22JjIoVB5GA1!CAuSZ|ku@^DO`UY&rXE$?*81SeVo}UoywDxQ);=f{WJcasRqmU4w`rU*70?qhn1VKCAN^RW(De z28Bp3UTvF(>NG$0oabO9=+mxRT3oXq-S@CaM5vG5z76yEz$r90@i}wdaf&^SY`EVsmiB!ik00YR2B`8oi=)M4 z&onUt<)M2cRf7e{bHf7+$uoMBf-%X}>f)F{E29w=IEjm`O?}4O@WiZdF{{|#WFthA zr#`5DNw>leR>*Sl_s7YDHCky>+a7wGzdIvX$dMt?qS?IM zXmf9`(wN-?02CmumV)k)R8=+(rDFiCd?eR)Og^O)3;Y90Y0CE$poPe^e=l|xPK*Q< z=00brLS|D_(~}i$Dsb&YmAu}+zeGVtmq#;;{l>t;B4;-WAM5j_V<}lW_ST}JQ^}xk z+OSNBM=Fi*&xz!@4?ONC9-o%1+FP4Q*M4Z@@tsU1vbU_nu0~Fkh}#vG9c!^zmnm3C zVo5Gea3ZGOj21gBWOv zy&ks8?fNS?QgoM>=vdZajx?{hJGMN(|5xhHp725yw}-P8VGkLUE7RS}IbLoIwe9qp zQkYV4AqbF~T#B8}I(3X6EjN6`5&rV|_=AnG<>OzG(_c4=`fUBS3SCb54d%+j)#*;3 zF+poo8iEt^R_~~OT)1;&sAckQQEw9A0aEK@jp%5%=Ta_d)5<4F^$y3Ye%29!K8IB< zN~_Lm&I0+WCHVu*^*xd^lg2uq=;X#dGFR~C)HzaoD-3(qpb@canve>K?4!<>M`UAX{^CvZ33w)Zeti1!hDHJk{Ze%l@y{^ml%Rt2RyS*SYrZ~oA% zqvm@cX;F^!Ka`-D&l|IjykA{PN$sNYJv>fC=Vd_G(%WxL=v!q<#>Gs3@J1%a}h=4Z9}0B4nRM}QywFd{7P zOHF_+F5Aog7La(UCQTerWY#}?;W;k{ED*H21Bg+}#}WVtNw7U>;V)GhWJ6h@qyQn2Y_=Jpf%C{G5$-jpl<_AF@yB`2non~ou>flhtdKWJt_mr0!q6? z^bzP;_Q46rM~_dR=1jHRi=_f@`~}Fo z$d@1b45L5dCkbl71>QUULxlo~pAI5dNt^56PZjuouK=A;>TfNPIE-&tK&XV7h?Bl6 z5`&yW^COt&+zQ5&NtaCp2^xSoscu78ZvWYqr-Ir7;eX!(uuTh~RWS_umpaS63#g5h zy`c@lo(sY!3v#VMs}v@`hwNVfbI7_QSCYDa9~1C}2FfU?6I59L^~~V_*9OkY!rziD zis0mGRymirBDNAE<=hq(JKUVWLL5rc?+;xui}Mv>!?K)2^~)g-4tO^;LavFTY(B$D zw~E8BKa$1$%(Rp;l?)6Fz90=gh_wEB2$4!XAv>w4`9kNhUR(v1VQ+cprq0PCM4vU$ z8{AcXjM+{HGDLnC)zgkY&@NFPWPocQ!Bz=Uld!g(hnYBRNUb#KvOQCD{~pp3r4~Rk zK>r@{#Xy9MVG9~xd3bpZheFfAlM}Ikvu8WjOHMrg2k|%;t8H)D>=gCn-mEz%F#G58 zKkhRFQnOJF)t89;B0lhBaQZEZN#2OcAp;2HGt-mesQ=E-yrM3EXJ+lAo=LLh`_Kl5 zo*uN;{OTuh?FK(Opsns+za_ z5|@GmSpJ5Pkhh?1qxAlHucX1~nO_Sjo9m&$Eto;)FE4Cy!)uj2R@T%CAuU2f(0^QhC$(&O82UtmkX zTWbl(X8J$PaED0{t$>?p)|q=6e1ov})a?l#>aQ0fMSC?)o`O^Wd>aoNSbth!S5-cX z!H<(r>IBY>(_5~IhZbKqD4H^~W%!!)3t7*15Xg|yBbrY`ng zJufaQb12)ac<1!S<_CQRTQ=;P{L!Pd?CF7NH`}pXCyKIPLJ|TG(9Ms(w z9pMe$E48b&7!0`q=lUvmF9Q(GH8(d`TlQ2)u7&JDMd%N;rXOE4EZz>GraF3wu~I1W z@F1Ont!X>@q;Pd}HobTNe!vZda9+@K*NV{DyEH^RwK-$c-=ln5J|}*-(5U&qO^Mch z^SRSkqI2DQC6=7~q^lq0EGhJO1}@gwp${M0@_u|L%0)YXhjfjPCaU*?uiEx3+8lV9 z>m_+TXK{54)wFk#wW_v@&$%l?_iMsv`KRKY&AfD`nS?YrWoz^7=IhkT87b}$@3hT> za5!~iKb#%8G1AEodY#pvZJ_tHmV__r!+DULxha}wTj;}Zlkge1e*VMhu&1|b0zP_0 z82IoZ(n;}Nw=$pJ<9rR(82T}7P`FbZ<+rVIuRAfr&1{Z*rXwx1IKu8;0_C+a4gwL? zFb)07N&>R=J%4_ZrzZfZ;=O@0B(gdB6>Rt`jmqE{+n9;~XqEfXg&kQ1u8V#AkUlf- zrt_)7L1qX-MLEbeGtg3KDDWvsV*N`(L3=&$D^h|oGsHMjiq`UHN}G>B&_Ie_wJv6q zt4YeBF^YY&*@{D9vY_5&bdR%Q&qLe+MsayjT?i8)@BYWB?b|8nO!}HJVHd*brh%|s zR#(CEmufrGbAclU!s0GA zj}V?3#a)l74}~1RuuKkt-jKoa56&jZevcl+rS^<5ld%aMy-dd^)fGnsQN1OH>wj_- zaq6xU1~l#f($NCtbJ*$AD^`a>L-%(&8^j<-@X*6*55demicU$V`CxIKayi6&gO=^+ zGpYh9d6Fl)kCTwHdX_yl^k`p!Y^{-c6aEnW((iOo;TuUGED=NOgC&*f&3bYs!@ZJL zaeh8aucQyB_pbBj(niunh31QW=;c}00bFyfgisKfGqbjbkDQDI(72jOAa;7cjP`7+ z=nD*KBA{V#&7mLc1KwsEXOrd5Obi#&?IRw5nBwO5-65aC1xyXYmTRn6rdu~bspOIf zu0#CRY0G=9Q)S`uIS(qqN}bJ_Q^rsYMCir?0?_*`3%L1!8cwUlV&JiBYguF*G&^Q)lv!%h84VCB}yzpqxhLEbH8(%NK?)#a8<6D5O{j z>Kqq58-3*yaQf3?D*HCh_PUSlMDEQ=$WED~deHbDX_zI(+ zfq@K1C*c)54l)m3kyKYLzyGQLu3mAkbKEW}RQ#d^PQFYj8ose4&?L;g<*t8M3{kW*JS?d?DeY@z7a0}SsyF^Ii$${nl zDlmTpy74RDqar`@WW-mC2$n>4Bw!^S!74SwTwz$JnGAbuS_!DUlOVwGg};zPZ(TVU z4V6LF5{LHAUf0f!Hg^vtj=F_k&0+f)>g}lSDY3#+sg6C;z#zI5wV$>eXr=;Rg6v_>-g^LE5r!i&}SX7GFWNL98s+-*;kv( zY87ZE7hxVa?XZ?woy{$T<`Ud2F|*$s5Y@*g>vY=nj*F?(xk3%kX{dBuISHzigI4fz z-ejNsNZCm=aRA?(F2v4?ELFL?8p4n`!& z-0&GUSx8^?x$iuau5J42<+s)D1J~AX-ux%BOWqZV6Y#3CP0R6@J|7mh&T~TIHfA-H zN(6T-o?qJ8j4q6%%h1j)-xIA~j=yB%xTH0{dAr`6@mkHGOY=02|R66 zXXuQp|8tw8S`KZ@65L|D4&TJw^Vautwp+p-jr7cRE|opM9lm%dB{ch+58=#AUnR(E zj7CMzdEElu0UHzz&CGO07{WxvBC|w4X3bGprI`84NsYAOv+L@;J8VIo3@9RwcHVcfNCJJ5KB<(j{etz{PHov*s`j ze(+9IKKA7qSxxjI$R~)sQ&rK&>lYag6D^W|&ymCMS%q|=F|VPSo%gxkvzPV5T;TgX zI(jd7A4_zeHnHZaY41JFGOK}WGiDq?VX}pCR}S}t%%>DRVVgd4+FLCLd;Irj{IyeC zuWE?}-anu{w!oecWci?v_7P~ff!^KgXH_{u2vPK^rcN7(MP#@5Pgl0j3^}UUz4zgX z;A(lnr4QiI2YU_~>byZKB?rWFabkq$o=*ThDjI80XST&pj+TY=mju>p84l0BxY33m zca#jFE@=;*x5Tdz;wm4BeNWh?KA)4IiP^65@yf)wGyuWn)hC}!hi5(1$_a`Gq+4Cb zGe$Elh;JfpV8d*ZaSditCVi3j6J=3ReN<4hP zUo}>J+37>R^q!U_%}x+MNQ5OR-bf))?uq zS?Q*}leefmTL6hS$|#CjU<_R=t7{MgM0@1r{Q{wn`ifJX{l3Ee*eq^TA(Y}97KE4` z8L-Y>rl4JLcB2V(xG~^Z-=ZO#1Rdy6zdC>`wjn31HnJ4=u2_YSSMH)n&$qo^r2zlG zi~)G^S8vgEZLQOU3o+whf@HmohA%CsntUH$dsN=1;(D?HcYVvJFqp)`c z5JMuXCrM*+%WlJV{NpW6a7P?@-DKa4EW` zcg?P2n%W#wgV0|56X@nZMqKZZGxb~}!qBpfqMtDi>r#e6Pi@2q-=*+hq95l}PtqQn zWZ86cEhL4HO=uHrjE271wT^uF%HnjC zHdk&d$Zf3JOu%9(LY#I5!Je2_GmDd2jL3gB6*WwNMS7C-T&t;`z;9Xj#ijEUkW|aZ zbf#L^DPi?~uzabaLU7@8F~nq4WXMF?LOFdezdtx1-EDNV*owJS)ormg0^eDtjAC_4 z!G}9-%_&N(?FPN6oEbeH)w8bP4eQUzTNWB$EyD61{%cTQ2vJi*6C(wc)Y;Kj#yETv zh5T-qi$$os=@qPl#E2Y{syIvHTROWUdxocGad($x=$ndU?`4&vt}OJ~&tc#0qvftH z`LV*agrnn&QMwZvA@UU2_?u4_$WQLH` zHf`T5-x&HX;Ag$n^1O4Vd_{SB#EZa@?i%7NWBO#fcIK}b3N8&Zyp7@mFB;G+VyXca z1CTH~NJCFFnn^td^KX0{8a`}WvF< z^zk)aqggt?Aq+x1Z8<6Q+a@V`Sp;a_SN;h!Wsv9LQ1olu<(ps`dcZO)T)}ceF;EuY z$Y|B@M_WiES3vHb%E+YLFH4cpL&X5S3cj01G{UZ>e3O+xUooKA-{_Ca@R7!=+-B&P zAAez2`S?ZeFx{fQS8Vz(TCt5E9ora9QfW6kP~|;|pH_`$s`KZ8_Ox{hEm(r|NwOsK zK#G00;N)}tSIWG5SNSe~F`L1OepGE4l^aL)Ev5;6xhOtmc$EvTUbO4QIyx1nu`t8C zjIQA+6#C)VqTk`=;1jcZ3OxGwzAZ$*heml(zT3xW;r%4t6LUx94w}OKWiS zQaZa!Iy?JowUkVehS^BtZc9>oxhiDLlvc{jBD{T;GEdbh+h$<+4y-K7h!tz71H{Qb zq7iop8R@p9>|iCf7WO7RRkMVjF#wuI4D*rF|Aq-)p&Xl0=B!ome(1xTt~;=0l2=HbFXC7oe-ZN zUa-#BdvW(EM5}oeCg&JEknj9}OMQJeLTbEvL0~Ur%xL4mS@3`a1;7z1zokpn`f6kQ zef(`+uOxN6K7X-bM-=N#G|)@%KrWYB3D-k|dxX7U7+=44c*=UvYNGdx=F#BzYZKc5 z_wt4nc%{@v%*9rtt5u2Sn7{w87_#L8N5yiXFC|n1F3ZHsYzUxL zmb`*0=QY|Y>G2ALXB@m{w8|J8kH^iZCa0qEfMsQeChSMIw5`Q*Z99S0Q6Gv<^JxcL zn^$W8jGEFQHL_$%J-$(^$MUR(?Px%Y=<}DN&2FfS?GzZ^llO4h%``G@`a@#qlE)lB zxR#8HbTRVZmKOsF;BY6{?-C;K4Wc`UKQ9a3+0SF1P2fJZ(%;<;p0&adjDJZhlVfr3Adqf3Hzn4CdUHeX&}wcTC54_k)#XD8?{e-RyE9(Vp!b1 z^Rg^}Y&Aj#a$;Pz+Fu!<`2)L12b#A2;E!k>XFC;%8nMdJKN*r_JxI)ta+V;eYb)oxa8<_3w@pN3zpKxDhV>O6(ATIX}I8}H_YHUv-iuJr%%vUC-p zFZ+eJ89Fw=hh?^G$3$~cpQDH2e~85>+)=n#f2<0>3qb zJ|{@siQy#y8s%lpNRwN}wCUWJ@vd57R*2~2Od?tDG?mBg1GF?pun0GH~A zA6=v*onyX_Zr3l0w;;9CVLm0u#^z<5`-iCKJ2@nR!wA&Dd7Vq#K&_ISQLg>?Nl>_Y zAb+f{w?+0o!wA!WzsPPu)lse3q?xJ44D)oBc!aXKrhQ(XbeQPJS`kQCi=0F26NoVR zbcVQF$_qCGd)F2vpgYM9m#p6#cS*t6HE^`B)FjTm9U|SyQwY z5QOYCd?||(x$+dPK!a5d7Xqgac?hQyu!`jhRB&NiO^^|#f|b}N2~I$O^-1L9W!Vr{~Y zwP%=-8aVQ8NhD|Aset~@s5j!W8EVW^2J#ZpC<=L_5=GIqM%$t8H81*w}tvm5GrhgH5Mxor-KocO!>4o|M|oNQ{V zL0$_k(!LR+wj=Hrc&Dn;Qs8Sf3g^h)&6tVmf^QT?mjjdQ_V`zsp~j$jkG5aFB)lYX zic$LtUR41q-!dOCdSEH;%VfShX-dkh4|P`1BBYx42DSk7<}>X zlEC%gc?&S_A^yPTF8Up80A}W|5w?jApP!&hwf>9V(+_Ru2pgw=CX1*cZn2mL^?zyj#;k{Xg9Q`9zpsZ^6x7pcStCsK&r)ydL zG{I$NzGb&!PF=p<#YY}GD=O~{Js)cX;?I%%&T95kceBFg+zmFy%Q>HZ;e{3+4Nr@U zVR^G59-x^Xq67fE+9CWsfrIcd8sdB`vtkZl<3xvN)zPUM%u~b!Sda7UtQSqq7!OJ* zuQ>nO@QZoo%pS>`N<2`I21GFpiRAfVk_vX_Vv3<_sMOZI*7A@WFDTdwunbu62iKcc;9ZiW`W| zNQYFXIIOd12Xzb-n2~nHABlf|w-~`B?>2~|O6#3Hx;KkS*>UjObCs3dVRs$*~T(zN4Aq!x1a4;zr?%i z=H}OdRr_&oH+r3j0Vep9kR>39g*&0Yd?q6X!8-QB(>Yt`E^G`06{g(D9Jcpi5^VK$ z^&PGCi{vB3#m#baj-YR;oM3T2JkdGz$F~a=(sNtv*m&dHg1LCB?ruV8kU`?tLFlK1 z?3StwWAm!%-Ka#D?vV!%x(4$$-8psK*~_jn%Wnd0tx6z7%6^;BZ-UA1j-M$!SyLLn;E2kydFGXQ zoTWkG4(B$I@W%;6R5!4yjCU^zt;Mrg?;hJ56eD={emKCbhL`=SzHbY(j>EQm6X69U z8A3ZTkd7K1b3e0Cw=1{V2Ru~{`1mJwXM;vp05#OZI|GHYKx5@h88y%1C zr(1F~kmA_7aosk044)1BuBL%KcwkkYfhi7%H^>dGn^QIaF8ikff^^~ z^bhhQg%IbsXE)K{jTh_EOXdUmW0uzPjn+pZN1Fb^yAqAHM5(ru|!6` z?KNF^`PTvwT zjsgA`*EZJnp@Gwqpp_}wsbS4+&9<<Y>gahnnG7Dq3#WEghtUaR7C?Rq|??#slsDh03&T67}=M}xY2n#)4 za?%z5rJ>~hW{_N$Ao68ZGA~iP*+OA^se!8%+V@}Ex9(<2){NW8Y4*qW^L>lj7FfDX z*oq0bkP#1A{$UOPO#yHm8rAj}ok6~QfkWwuUKu=X`=+ID%)M7ytY1nWGQq;_?&Gtz zyUeA*U22VPr8Mu4--iXeX<9D%{S<#fhHdPbrY17fu+;wj*3(gi4(&9TlAF>aC)G=A z`DDA4`A#KQ>$(r?D0$5Kv4;z2EQoOy&jpL0)zC!gLBl7O?yWQWX7Qyc5KjMs($(aI zYG8SjRdn;Qq%%nZO}j{_=h>GD|6sC|p^h=Epaom#n#UBH4GnPy?T|%dt>rJR(B}i~ z@JvX+w_U|CyNkOQaFe=#Fsj)pwza6h*L&7jdYp2LOc!tNk~e1rr3NH(fj-AT>wKw` zQ-6WmvKPI^I%Cvpleoy2*d}amOVTZ-c4qZRToUmeYkhBym#LRc@-NS5A)97aIldSV zcXJbAb{=k>xD7;Rfx$!aB+{D8HHep($k^|7OD_n(dj5JIdM7w z^|Kr2)0nQNAn~E)5gDq{D(CWSy*zQhL=(Hjj;)-l_U;o6!fL}g#PKyo2#eR+HyHo8 zsh*;7NcISD`}2GkWjPLJD_u>~a@YN|Qx3|QtJ-TZ8&)EF{Vb3Bv~%EictH+drK>zucGR7U4q|D$1~0It1~{(8XEt$u!H+++j%mS^|a1TS6dJ6}Nu6jesn zanX*n3Mi%Z;@Nkc*?%gGNT#N&t51QF&y8WGWY^lT3*N(t`8oGhnene);^4Ir(U+y> zkS&FRYqomO!E^!U*lb^&cD0hdW%*kx5X;VrT?a!D@14o!p>M`rBCf_MB%W99(VCy7 zUbK-{NOO(dF?FGAKKnv@r&CX=H@}${MH5}(+x`4Nevzec{<*~llRm_r4+Ro|*K2^e z3jvn6Rh0XrX!z)vo|{|M$d!+SvoF*E#=bN)N|dLIZ|A$0m?*ex z34i1DNImBY$+7(2GUdxRj>k(z#p|UIQ(^|ZEbSBbhU_pt{_!l1y2YNInc_Ww?zmW; ziFb=CAW>e1RPi$OCwzH=BC3$U?2v#KE*5Y6W&AsO3yNS_Drj&vH50cjrg~i2EA}j{ zVFu5XI9xY*RA(y<&u0!zu20sEcXf4re^V55@2~z*)Gg>{{EhJ3CYZ?bw-y~im)PP z=hCX&QscG9DNQ!4-AWFcBfM?^-}g!M;{;y#=SaMq+zCMnosroW4?&WoMTIv|C!D7# zpnr^Wcs**fnrT3+F5JP{9{(QZ^F{StNY`c_prgM~OkTTo$F7~O|ASQ(uF%G;c@P;TX5@gouJbemEf7e zwC&FiM0P7SX-8Uz?V9@)1)uk{f7qNw7wr|b!EjXO*w%^g%?MTvSn8yF>s9hon}=5F zLL4F{FDrgWvia2Yis;QeyP~46&f7hJN;UmWCKkON?jHbJv}li0n#FXN1@ z^&cG0o`z|86hGgk7NHVNqCz&dAL1^#nN0gM+GQk~7i~b{Tp-dLeNJMV`Ybz}vSbGLu%x?t66nzI?FrM<7OS zqJ#7+MyiqYZr9d?ah_*x{sqgVTQI{W&KT zvCR>;^5ePOn$NxL$GOm6mR$X#H!3&^th^xVg4R5a;@e}eoZxs?QU@vzM!xj+7CWp7 z<|(yK?`SnKvvxL$wY1U^ElLM@PCa(koLNk#fu!Cc{Ii$Q`}PQ+?Zau$)!VAk|Gu3m z%C#}$;hiU^A)gDgw>1Z5E2|a4uT`xU>qvENY^D88wMeCYH`jB>p5Y){ehPHT>xVa_ zkS%YO!)AljX`gBs2i~4nLPL25y~Gb&^X%Cd`w*RtU}vv#RGXLgNdLpu^2neBvB7 zLP#XYIwaeD1iO>`%i{qUCP$46xYQ;HG;67?kWy z1N>TyHB3-}h=!0*$F~}98Iz@uO10pQ6mtTmgqvW{nR0(N8XL)2MzO8V8V)(EwG)6y z@WFMO%EgHR_amJa_@33f2R4Rz#vx+aD(#mkaLtsTWei-x^nLMy`OmvxB8|*Hv4J=# zFY%x@4z>_$(bnmzF?}^7XkX7|E+g^YCkUx<%FfXc&>ahACK62&1YvUdRGS()0K!3% zJ99{m&QLjhbT-)=H18+c<#~CohG7q}w^C?m;M9AOV>z)}RKA3QTu$VsPU%U}X1jyP z*pO81Db~;3X6x4RScp_bqK1V%t~MA~@Yg$frLrTp@WOvZ?QO&ZHLJ{-y0s8|x`}QF z!doV<)G@{Ib`%qrNB2BkS6E?;eLiH5PFC~Ml=khM)~hwx;glcL$<7$szmpUzB(kz5 z2Eb8WWbrlw&{}^_qNLXX%h3JzY{hgGS*YphwBvOlfZs&&$l251nveEnoJgNuJDqhG z=vws`L->pO=AH7FO(}v>tQYIVKZ@Zf7$*_H_5Vu!2B}FoP{mHo7RkUz2RpK0l?x{@ z#X2r-e(xq$J=-;ontQwKLw9)1Ej>c6-(I@pgpPQBFC`a})sMLQU-GYiFU6V1A*?{L z44M8@GBg9>G{dhyC#a%M%?l*+()k-858=bW8h8Pc^ItO&yOG>dt-od>zQjcVyK#>y zJw>tZX#t>X(}1e zX5AZmoj7ePFo&oFD|vFA5bz*M+5s`y8@B!jmCcI{Cu(g-Iks@UTFdPx=#v&N;mA_D zjndOV)ddJaPl3D=_b&Qo(5r!rt@%*lKKeKmAX6HkMHwnd=XMvi$%1np%lW1*!oqlx z0I%xPbk5n{A-9s@CbBQhxcU1L2>Hs zZH(V)^p>KcVuX+rP%t}u`t^7SNv%F?PAvbUeW6PV+4i;DiF$IbbHV_i*Zoh)>p)#V zLRt)GTj}hX&bTeje_V=pYRG5$qo2vGa|?+NKcs*6;mo-ITi3uW7P4!A6m$(hFo2Fv z1X8|g5y`smrL6s3T|wGZ3PKRbXFXMOoB%D2nB>edqV$H~IxF;FS3wb?CfQxdCZIYyodl$yi;$k_wn9`)jY%YvK^0u;Slki$aDG&y*8Qf~Zl z08lQ);5pLhTmHu_4Q+EORU#Lu|T>!11z(z(s`EP7w-Ji2UQ7=@-fkX_EV{!kb z83!EM|J@xX$ZLUm3G|QuFD=|Z-^5dN8HIvJ{iiMg3=0l@_Ybxia*N)faJCCb4?l=3 zO=p3V{(DH_zjace=%lv9pp)XyH33UhfNYqr(*3Wzu=by!81jVDJ0K4WIT%L!pF31= zShiEY0`co!&}TmfMe%g|?|n*+c9lAEdT+K1Xq%BY zzl`j^{JjwdqR5LPgEW`F^(%g-Rz*nE@X4o&f z2u%)hjRO)uE2<*u@_;Gh7q0vHjz6(g`76#jj|Ft}0ZvwAFzF`fm1F=VmwK$rg0w>| zRdORJtI>^YzYDB-cqaIqj|0p;7}6V-naR?cfUH!UFq~QalW940j{-VKGeLDD9~q;b ztRmF81jY{hPaO)VrlzFQV>#bGd#2EZ88ABhucfJDLwb^W^fRM4N&G=Q;W}a6WAq>R zw}=IWNqr3UCnp5D5db8_^H817zLHe<#}kWDy-;IC>(yYS!iS(aLvVJ%!0B5&6xirr z`!NGp%|}iw=uRQ8ePpu>hSvc zMBvS^zB11$)NK$ND86rb-k)dSRWXc?& zBC2yDB=hVTvQ613<99!MZ>L?S^Syo7`+k4C*LD2S#npP&dY-lJ^}C04uiu?$as_@` zY!wmv>f6i3NWl=@##?n%gEd$m7w5M|K!8$Z5xH9Z58VHM!hNlHcTiwpANjr2nEmN( zwA<}e)LX>>H|(G6!B*pXL;yCsK!^5hrkWyu@!I{A;EGT6?n*E+Zj>V&`dq4?KNGH>i#W2= z$KtB}DQ|u?V45_{s2#*9l&X;SEjtUCbjFoUR9_v4VbQ1!AM}Q(=u;u~^)@tSNe67g z=jZ%m@c(BGe$W8>(+_UQESc1mO?zHMCwaJXB)&6j&!EoC1GhY(6akpfxBkwArZ^D> zQosh0i9#e9Du;g7h}pNz5ok^`hYjuNI<9_<(DslvV6Kx7C;PzZRX8{#o(2%}Benxkcl3kPb{k9=p70}%>xFaBK`%6~Y_3%PJ20b*szLT&aV zoZb&X%DBb30g3{!e|=MFdf=~!J!nZmY$W;Wrw}{Uf=&M)@c*%5WJUewh)lkN-2eVC z6M%nnv$+y}p#+Yar%ni_Y@>5!%~v8`;_OeGAk>*Al&)B!&T8J6Lh36*UOf$03hK+Ae-+WqBG zFfxZrl^ke?bTUY|!>}p0vRWPezxS&RHV_z;AUiSqP)fS!#u?o!mhw8w#sR1$^X<4EW~ zHaah*|mvop8+j1#K4EA>YKE+>H&YQ71 z4X|~ug3`F@oF1RYk2Gf;VcbS*U8{+7UNO)>>m2z8R@6?U2uj_rNYtsHi+yNi@=?0Z z;RPT@mXI@9I$v>#ck*q7Z!YIWi|g-Cjl-m9d|jVU>n#r?EGOIC=)Fh$$PSqZ0kSMB7ZJOws2!y4lUdJAT{SEDqM(LC$Bt!onK4; z`uyarvg^vDg_<{IEN%|Zm?+V?1~;Q9YNo~ntJ6O0U}vY*Fx}-0>ZtoU8%VEL$QVor z?n1eI&5m^iZEkw)AAd7%q)Y&a2H^)E`?9XMo7BWhiIaZ)hv11EQAmmF0T-Zf>sm4^ zljLgP$1LB_HS^@&$(<>__;G6TGsG+*!K`6cHJ+Ke5*K;0^l^{oPD*U|q|bCkx&~&5 zR<9k-1Z;q9F)3muVd0vg>Pyn|mQwF+7{YP3wsT`oOr-e)1*%BQf;wK*8VrAZu){pT>;;NXK^sxD1*xw_{>%KsZpg^s|lT1vH~V~q3yKen^SQ}$n*?;`V0z{Q{SFT!3^vL7-e%4aSJQ5uGnZ~5LLpp-%FGB zeeIm`+YmQ=#Vrl24!L}~Y|*EPl;7GHwzb1?5VMlmYw%u>-Sa>Wj?4*|pQ!>w`uk)T zdSo9QkUl8r2GqROR*Ph-&>5BTr8RhfTz~SO4UD3mKpKf#NBfy7r`VUgOP=)oxD}ss z5-$w$@6FWV{XynSuiAp`+3o=TI*Z*-)Cw##*T#U5$b&XnCiTk}MMW{N;U9UYSeM7m zH^*h`2JZ_J=N?pBe)?S2xzVC30hDQabB;sAd2*T+sVvagmby$g;{jneG!1Q8O%ZH0 zCQH~TQ4k|AURW4gj5RXCd&=a!Da4HvAHzB0D`fdnAy3rB=Yz#X!sd>#EnI)@HEb(` zo+M_)lwDe6`HL{Y{?}Fuo1exnyF7-TxZT1=r-=B@zd`1r@VOB=@pVtJ;vBNrNL_-NI`*{1rj?)e{u(f`wCm^L zBtE5VCbWfeuql0tV0I5%DGy@QTHs>UW3pu}p@ThTQ?35i_J-LIBU;dcs-1!lSreK4 z8LD~34Wv=1!%!`-ix@aIY-Z!+Yx7ka%y8*P=RWsF$hM6dGR<3B4Qm=$&Gqo_4DkO< z!xiAt1mwZ{?4l#joWXUC7LVOz5%!ADNOEG(*S{-&#jNVtH{%cPC7AshnsSsWEwu0B z*%ul>kv?wZ9mH`pkKo0T9HH%HCjvzl*h{V;F;(2Ji8v~zB%TQlmVMh%B z7$(9m$~DbYYLaVloa@oqk4NDWgNUk--=`*)^ww~bNUG792g-nLrq3jYk z@cs^L;B+P4%)kdqoA+lf3}+6XB#uahx<={+4sg4&Yq2gTnwTzg`OujD=*V;CGxtjT zX&u}_Q2Ely2i(-|a{17s{H15cIs$fYTgg1rC$9FAO+9_6$@UUkiea4!R26X>Y03`R zkY6^}FZ){POq0f7T&X$6axbV%2t%h<`oX@woz{MIfm%k%iaZgR20u`-N!%y`_s zSJzgv!0aLW*8Iwck1-*y6@wv#qx5*2qn4IsrAEB$V~K+n#;zhK+WGSExYzP(;bpDS zcltW)dSWcq82>nWc=XPln#-YUN(Yo;SS$PzZ$F!Zdg+Pv(fjjw@DZfWGPSVFmmfgA zaxZ+I8e{2r`57*32l?sKr>pmlRK^$> z7)TM@@eyr8-0&c!D+~Z0;Y;8J(Lszz5UI5w8E)PrLLGJCc0xVRfi;Ab6moBbTGG(a zkSMBQ$o!(;_8V?%kaxg%DWg#S9pM8b8(Ar@;m`Dia+Cpt>ZneMg31_yRr$Cb<$G1OjQ z;d;!rtWtq(`4gge{|?Gi)!tqed#`Chx#V@Wp+@HW?Q zoJMUWXLH=L>MWB(N<+bT$pzwr+*7?Ta$yIG+$*XbvC6`g6h{cF=t8j&=O{yR-1+52 zY_+h%*LU4CKF>p)RChKs>i6A!%c#?gW$&A8?}UQlkKOupx$}d4pf;!h@UXlN`u)ot zO~F&~28BvRYijS6!%0p(m$ii*mZpHXSAtccn8R{fFFyVSbp5o^_AOXoke z*7+#%+}5*(oAoz>pdiDx809k=Ze>E>%wv`Z(?Ld!qJtwEqhd({7G=IZa{agCYc_;IUYPBq7@vz_-Ez0QL$hMOA78j%J4VPq`M;!+j*Zz*V zzCJqvA))j(7wtt>t$t!v#9IChxmKm;@7P>)kk*b6COJiALM5d-gF<+vBp`GW(0`B5 z3|AKYbCcoxa70{elBCoc*<2I7S=RgaYn8`Jt|_{7+--blehrf5(o>C;>v*gprU&3$ zZE-01^M}kbKGTWhnDrg&>fh(39T2B>Hq3`Xr&^evqs`t!2JVI6$yT}hsmF`FCTzBQ zjaxTo)SYm6b61jKz1&qNsIXkQ!tPhIhdNLsS4O4d#Zgu*@m8=}r8V zLYCfCPi5$RTTeT?igUFOt4L1tJEc~huqu9P@NL4>`1>-?Ly*hmx?4-#wEKCBrpA{f z8{Dhnu~K-WOR6DjR)zS60D7FiT_en1QH;?m;gZ`Vne;hCSIsa^Ri8_EM+$lPzTvtV z@%x=l^-21bxgH$>2QMk?qOSgLqFBrp_V7crZ|gy8tr{GDmnQ#*X+(GqPWVS;Im7(_fWe1@cDv~swd~BFM7YSKE94_ z6_yd0*!y%f@N*N|a!rnM3?d}{)$=Q}A6gV_tn{$UM#|Oibd=y@yvr7tf$tlBK2fQ* zI455zAJ%`%%2$$^^WCBDWXBSc_LTDzU?#7`CVC}7&f1_?bPLdJdG@o1M)$?cciE))$zhGNimPRahUPahpT9svSp zJ~H*(DiYhQap>(8&w)2FzDXV~--viEj*x=Arnx~bog9s3yCK&%ZZzV|fvNO%4wh(~ zO=L69=-{1Rq36rFXfcZ~7jNv;suqtcAj`+<#VT%$)!ZZa{@CJPXJucSK%u4cf#BMP z-8qh`5Dsi15Q)TG*eP|N64tw;{BO!y9e!Nq)9VoDbMsA{T4!m|fwBA+BlAKDfe^p9 z{8s1RPAF8K5j`)jq-1_QE1X=S)jaX`?c0);w+_fS1CzXV}DeCU- ze&rsk>a!iZr-yF%*>EuVOEt7%UAMgbYv z*@IQRJyfwK6rpTpvJqDyG2Y$5^85hE_A$`A?mqM61=z?QfNk$Tkjm!3R3k-8y)QW4 zJh{EA&bJm!+4>^)ftIcNGsar-(jM^`Zhac<8WNtCni!pbpV7nBH7k|apdS$bYS+jT zaME<0o(^_l)E8=KeF#xZ_gRrc-YR|1VkBBGj9@I+e^#0sZiHq=KT7W!zd&7vLEh!S zM|(E%B<=45x68>N-q#ZtS#$-5@-=GV$WpiUQrHtG=M0SDRziGXL}RLIcC4PgHcQl- z98C6~DwgsKVUewmO*8ZG6Wy};PZrrZc~=cgg+r{b*!waVlN{$~$d$J&eqGz26~U(V z(VZ+qm0ar~P$i%U23}Dmn-Ik`=~(KhSYuq~*8fUWqG71PcA_2q`tG(XxepxnG91dcBWZnWwNb4%M~J!f+4 zTuh^@;qlkY<31m%7GEJv6MljlOo$u5#nLWg=W!$zzUD|jkS)sb%P)QJ!c`X+X2(3b zp9QS0$}rCn3kwf_({z$?Nr-6H4i1ZYH6!+D&$(&|m&}jy%;p>%9Qza{f7`p;mW9?d zo(~2(xJp4|$wH#XkMFySUk&Q(cQ4Ki|D^%`x2JG2&^m9E)5V`^EDr`&)WjM~rtb&+ z(GY}#(Aw!p1Nx^L9|ed~=v69Yqc_IB6&bpIz6G=&jZWA2cQA>ZUbwri{06lCZVsKe zL7fE{uluRSQ6jL7FAsD{eJ4wFqto@%0NTWqJz>{RHQu5LF8b=4r~CeP66kuyr0j&& ze7nMasCbcj*g4d_41RX+G|u=f8S$ShHd literal 0 HcmV?d00001 diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 00000000..6b7475fd --- /dev/null +++ b/docs/index.md @@ -0,0 +1,14 @@ +# DCAE Platform + +## Welcome + +This is the home for the documetation for the DCAE platform where you will find: + +* Details of the platform's architecture +* User guides for the different roles + - [Component developers](components/intro.md) + +## Background + +DCAE is composed of a platform and services. The DCAE platform are the technical pieces responsible for the deployment and the management of DCAE services. The DCAE services are the technical pieces responsible for monitoring network services. + diff --git a/mkdocs.yml b/mkdocs.yml new file mode 100644 index 00000000..f724f902 --- /dev/null +++ b/mkdocs.yml @@ -0,0 +1,27 @@ +site_name: DCAE Platform + +# http://squidfunk.github.io/mkdocs-material/ +theme: material + +pages: + - Home: 'index.md' + - Architecture: + - Technologies: 'architecture/pieces.md' + - Service Discovery: 'architecture/service-discovery.md' + - Component Developers: + - Overview: 'components/intro.md' + - Component Specification: + - Start here: 'components/component-specification/start-here.md' + - For CDAP: 'components/component-specification/cdap-specification.md' + - For Docker: 'components/component-specification/docker-specification.md' + - Common elements: 'components/component-specification/common-specification.md' + - Generated configuration: 'components/component-specification/generated-configuration.md' + - Data Formats: 'components/data-formats.md' + - Component Requirements: + - CDAP: 'components/component-type-cdap.md' + - Docker: 'components/component-type-docker.md' + - dcae-cli: + - Quickstart: 'components/dcae-cli/quickstart.md' + - Walk-through: 'components/dcae-cli/walkthrough.md' + - DMaaP connection objects: 'components/dcae-cli/dmaap-connection-objects.md' + - Glossary: 'glossary.md' -- 2.16.6