From 7163debddabe608d1cb86ff827971a129419e601 Mon Sep 17 00:00:00 2001 From: Paco Aranda Date: Tue, 30 Jul 2024 10:14:21 +0200 Subject: [PATCH 01/14] [BUGFIX] `argilla-server`: Prevent error updating datasets when the distribution value is the same (#5333) # Description This PR relaxes the update dataset validation and skips validation if the provided distribution value is the same as the already store. **Type of change** - Bug fix (non-breaking change which fixes an issue) **How Has This Been Tested** **Checklist** - I added relevant documentation - I followed the style guidelines of this project - I did a self-review of my code - I made corresponding changes to the documentation - I confirm My changes generate no new warnings - I have added tests that prove my fix is effective or that my feature works - I have added relevant notes to the CHANGELOG.md file (See https://keepachangelog.com/) --- .../src/argilla_server/validators/datasets.py | 6 +++++- .../v1/datasets/test_update_dataset.py | 18 ++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/argilla-server/src/argilla_server/validators/datasets.py b/argilla-server/src/argilla_server/validators/datasets.py index 490b909dbe..c886ec4e27 100644 --- a/argilla-server/src/argilla_server/validators/datasets.py +++ b/argilla-server/src/argilla_server/validators/datasets.py @@ -48,7 +48,11 @@ async def validate(cls, db: AsyncSession, dataset: Dataset, dataset_attrs: dict) @classmethod async def _validate_distribution(cls, dataset: Dataset, dataset_attrs: dict) -> None: - if dataset_attrs.get("distribution") is not None and (await dataset.responses_count) > 0: + if ( + dataset_attrs.get("distribution") is not None + and dataset.distribution != dataset_attrs.get("distribution") + and (await dataset.responses_count) > 0 + ): raise UpdateDistributionWithExistingResponsesError( "Distribution settings can't be modified for a dataset containing user responses" ) diff --git a/argilla-server/tests/unit/api/handlers/v1/datasets/test_update_dataset.py b/argilla-server/tests/unit/api/handlers/v1/datasets/test_update_dataset.py index a21bc4ad7d..3b22878750 100644 --- a/argilla-server/tests/unit/api/handlers/v1/datasets/test_update_dataset.py +++ b/argilla-server/tests/unit/api/handlers/v1/datasets/test_update_dataset.py @@ -145,6 +145,24 @@ async def test_update_dataset_distribution_for_dataset_with_responses( "message": "Distribution settings can't be modified for a dataset containing user responses", } + async def test_update_dataset_distribution_with_the_same_value_for_dataset_with_responses( + self, async_client: AsyncClient, owner_auth_header: dict + ): + dataset = await DatasetFactory.create(status=DatasetStatus.ready) + records = await RecordFactory.create_batch(10, dataset=dataset) + + for record in records: + await ResponseFactory.create(record=record) + + response = await async_client.patch( + self.url(dataset.id), + headers=owner_auth_header, + json={"distribution": dataset.distribution}, + ) + + assert response.status_code == 200 + assert response.json()["distribution"] == dataset.distribution + async def test_update_dataset_distribution_with_invalid_strategy( self, async_client: AsyncClient, owner_auth_header: dict ): From 63dd32161d2c69938a9e142f602ea471abdc7f7b Mon Sep 17 00:00:00 2001 From: Paco Aranda Date: Tue, 30 Jul 2024 10:32:05 +0200 Subject: [PATCH 02/14] [CHORE] `argilla`: remove the default credentials (#5330) # Description This PR removes the default API_KEY constant and usage in the SDK. Environment variables `ARGILLA_API_URL` and `ARGILLA_API_KEY` are still available. **Type of change** - Refactor (change restructuring the codebase without changing functionality) **How Has This Been Tested** **Checklist** - I added relevant documentation - I followed the style guidelines of this project - I did a self-review of my code - I made corresponding changes to the documentation - I confirm My changes generate no new warnings - I have added tests that prove my fix is effective or that my feature works - I have added relevant notes to the CHANGELOG.md file (See https://keepachangelog.com/) --------- Co-authored-by: Daniel Vila Suero --- argilla/.env.test | 2 ++ argilla/docs/how_to_guides/user.md | 8 -------- argilla/pyproject.toml | 2 +- argilla/src/argilla/_api/_client.py | 14 +++++++++++--- argilla/src/argilla/_api/_http/_client.py | 11 ++++------- argilla/src/argilla/_constants.py | 1 - argilla/src/argilla/client.py | 2 ++ argilla/tests/integration/test_client.py | 14 ++++++++++++++ 8 files changed, 34 insertions(+), 20 deletions(-) create mode 100644 argilla/.env.test diff --git a/argilla/.env.test b/argilla/.env.test new file mode 100644 index 0000000000..0f1d4a0dcc --- /dev/null +++ b/argilla/.env.test @@ -0,0 +1,2 @@ +ARGILLA_API_URL=http://localhost:6900 +ARGILLA_API_KEY=argilla.apikey diff --git a/argilla/docs/how_to_guides/user.md b/argilla/docs/how_to_guides/user.md index fb0a39fb1d..9b834ea6ff 100644 --- a/argilla/docs/how_to_guides/user.md +++ b/argilla/docs/how_to_guides/user.md @@ -48,14 +48,6 @@ A **user** in Argilla is an authorized person, who depending on their role, can Only users with the `owner` role can manage (create, retrieve, delete) other users. -## Default users and credentials - -Argilla provides a default user with the `owner` role to help you get started in Python and the UI. The credentials for this user vary depending on the server configuration. - -| Environment | Username | Password | API Key | -|-------------------------------|----------|-------------|----------------| -| Quickstart Docker and HF Space | owner | 12345678 | owner.apikey | -| Server image | argilla | 1234 | argilla.apikey | For the new users, the username and password are set during the creation process. The API key is automatically generated and can be copied from the "Settings" section of the UI. diff --git a/argilla/pyproject.toml b/argilla/pyproject.toml index a4ac8b0864..103fc30f66 100644 --- a/argilla/pyproject.toml +++ b/argilla/pyproject.toml @@ -66,7 +66,7 @@ dev = [ ] [tool.pdm.scripts] -test = "pytest tests" +test = { cmd = "pytest tests", env_file = ".env.test" } lint = "ruff check" format = "black ." all = {composite = ["format", "lint", "test"]} diff --git a/argilla/src/argilla/_api/_client.py b/argilla/src/argilla/_api/_client.py index 26a617dd5a..7f496c5d11 100644 --- a/argilla/src/argilla/_api/_client.py +++ b/argilla/src/argilla/_api/_client.py @@ -27,12 +27,14 @@ from argilla._api._users import UsersAPI from argilla._api._vectors import VectorsAPI from argilla._api._workspaces import WorkspacesAPI -from argilla._constants import _DEFAULT_API_KEY, _DEFAULT_API_URL +from argilla._constants import _DEFAULT_API_URL +from argilla._exceptions import ArgillaError __all__ = ["APIClient"] ARGILLA_API_URL = os.getenv(key="ARGILLA_API_URL", default=_DEFAULT_API_URL) -ARGILLA_API_KEY = os.getenv(key="ARGILLA_API_KEY", default=_DEFAULT_API_KEY) +ARGILLA_API_KEY = os.getenv(key="ARGILLA_API_KEY") + DEFAULT_HTTP_CONFIG = HTTPClientConfig(api_url=ARGILLA_API_URL, api_key=ARGILLA_API_KEY) @@ -101,10 +103,16 @@ class APIClient: def __init__( self, api_url: Optional[str] = DEFAULT_HTTP_CONFIG.api_url, - api_key: Optional[str] = DEFAULT_HTTP_CONFIG.api_key, + api_key: str = DEFAULT_HTTP_CONFIG.api_key, timeout: int = DEFAULT_HTTP_CONFIG.timeout, **http_client_args, ): + if not api_url: + raise ArgillaError("Missing api_url. You must provide a valid API url") + + if not api_key: + raise ArgillaError("Missing api_key. You must provide a valid API key.") + self.api_url = api_url self.api_key = api_key diff --git a/argilla/src/argilla/_api/_http/_client.py b/argilla/src/argilla/_api/_http/_client.py index 69348b86b0..f30a06f9a5 100644 --- a/argilla/src/argilla/_api/_http/_client.py +++ b/argilla/src/argilla/_api/_http/_client.py @@ -13,24 +13,21 @@ # limitations under the License. from dataclasses import dataclass -from typing import Optional import httpx -from argilla._constants import _DEFAULT_API_URL, _DEFAULT_API_KEY - @dataclass class HTTPClientConfig: """Basic configuration for the HTTP client.""" - api_url: Optional[str] = None - api_key: Optional[str] = None + api_url: str + api_key: str timeout: int = None def __post_init__(self): - self.api_url = self.api_url or _DEFAULT_API_URL - self.api_key = self.api_key or _DEFAULT_API_KEY + self.api_url = self.api_url + self.api_key = self.api_key self.timeout = self.timeout or 60 diff --git a/argilla/src/argilla/_constants.py b/argilla/src/argilla/_constants.py index 7e28f0fc57..f4fceb9465 100644 --- a/argilla/src/argilla/_constants.py +++ b/argilla/src/argilla/_constants.py @@ -12,5 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -_DEFAULT_API_KEY = "argilla.apikey" _DEFAULT_API_URL = "http://localhost:6900" diff --git a/argilla/src/argilla/client.py b/argilla/src/argilla/client.py index 14dc9863c7..efff77107b 100644 --- a/argilla/src/argilla/client.py +++ b/argilla/src/argilla/client.py @@ -275,6 +275,8 @@ def list(self) -> List["Workspace"]: @property def default(self) -> "Workspace": """The default workspace.""" + if len(self) == 0: + raise ArgillaError("There are no workspaces created. Please create a new workspace first") return self[0] ############################ diff --git a/argilla/tests/integration/test_client.py b/argilla/tests/integration/test_client.py index ba3036ad1c..d8a95ed044 100644 --- a/argilla/tests/integration/test_client.py +++ b/argilla/tests/integration/test_client.py @@ -88,3 +88,17 @@ def test_get_resource_with_missing_args(self, client: Argilla): with pytest.raises(ArgillaError): client.users() + + def test_init_with_missing_api_url(self): + with pytest.raises(ArgillaError): + Argilla(api_url=None) + + with pytest.raises(ArgillaError): + Argilla(api_url="") + + def test_init_with_missing_api_key(self): + with pytest.raises(ArgillaError): + Argilla(api_key=None) + + with pytest.raises(ArgillaError): + Argilla(api_key="") From d7eeb35293e2bbdc024fcae7ca77039bb3f2d27c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Francisco=20Calvo?= Date: Tue, 30 Jul 2024 11:32:58 +0200 Subject: [PATCH 03/14] chore: set versions to 2.0.0 --- argilla-frontend/package.json | 2 +- argilla-server/src/argilla_server/_version.py | 2 +- argilla-v1/src/argilla_v1/_version.py | 2 +- argilla/src/argilla/_version.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/argilla-frontend/package.json b/argilla-frontend/package.json index 723c116c25..6d9f9845b8 100644 --- a/argilla-frontend/package.json +++ b/argilla-frontend/package.json @@ -1,6 +1,6 @@ { "name": "argilla", - "version": "2.0.0dev0", + "version": "2.0.0", "private": true, "scripts": { "dev": "nuxt", diff --git a/argilla-server/src/argilla_server/_version.py b/argilla-server/src/argilla_server/_version.py index 1f440ceb81..10a02016d1 100644 --- a/argilla-server/src/argilla_server/_version.py +++ b/argilla-server/src/argilla_server/_version.py @@ -13,4 +13,4 @@ # limitations under the License. # coding: utf-8 -__version__ = "2.0.0dev0" +__version__ = "2.0.0" diff --git a/argilla-v1/src/argilla_v1/_version.py b/argilla-v1/src/argilla_v1/_version.py index 77bc6e0ca6..37556e6f75 100644 --- a/argilla-v1/src/argilla_v1/_version.py +++ b/argilla-v1/src/argilla_v1/_version.py @@ -13,4 +13,4 @@ # limitations under the License. # coding: utf-8 -version = "1.29.0" +version = "1.29.1" diff --git a/argilla/src/argilla/_version.py b/argilla/src/argilla/_version.py index 2f99479f33..1de085f550 100644 --- a/argilla/src/argilla/_version.py +++ b/argilla/src/argilla/_version.py @@ -12,4 +12,4 @@ # See the License for the specific language governing permissions and # limitations under the License. -__version__ = "2.0.0dev0" +__version__ = "2.0.0" From 6ad94bc2a1a4295fade3163410c8b5ece0bf3755 Mon Sep 17 00:00:00 2001 From: Daniel Vila Suero Date: Tue, 30 Jul 2024 11:40:57 +0200 Subject: [PATCH 04/14] =?UTF-8?q?=F0=9F=8F=A0=20=20Docs=20onboarding=20ove?= =?UTF-8?q?rhaul=20(#5315)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - [x] Home page - [x] Quickstart - [x] Hugging Face Spaces settings - [x] Deploy with Docker --------- Co-authored-by: José Francisco Calvo Co-authored-by: Francisco Aranda Co-authored-by: Paco Aranda Co-authored-by: Leire Aguirre Co-authored-by: David Berenstein Co-authored-by: José Francisco Calvo --- .../argilla-server.build-docker-images.yml | 2 +- argilla-frontend/docs/snippets/start_page.md | 3 +- .../docker/argilla-hf-spaces/README.md | 13 ++ argilla-server/docker/server/README.md | 28 ++++ .../docs/assets/images/docker-mark-blue.svg | 12 ++ .../images/getting_started/signin-hf-page.png | Bin 0 -> 522850 bytes .../docs/assets/images/huggingface-mark.svg | 38 +++++ ...how-to-configure-argilla-on-huggingface.md | 133 ++++++++++++++++++ .../how-to-deploy-argilla-with-docker.md | 39 +++++ argilla/docs/getting_started/installation.md | 5 +- argilla/docs/getting_started/quickstart.md | 107 ++++++++------ argilla/docs/index.md | 53 ++++--- argilla/docs/stylesheets/extra.css | 101 +++++++++++-- argilla/mkdocs.yml | 6 +- .../deployments/docker/docker-compose.yaml | 31 ++-- .../docker/nginx/docker-compose.yaml | 7 +- .../docker/traefik/docker-compose.yaml | 6 +- 17 files changed, 473 insertions(+), 111 deletions(-) create mode 100644 argilla-server/docker/server/README.md create mode 100644 argilla/docs/assets/images/docker-mark-blue.svg create mode 100644 argilla/docs/assets/images/getting_started/signin-hf-page.png create mode 100644 argilla/docs/assets/images/huggingface-mark.svg create mode 100644 argilla/docs/getting_started/how-to-configure-argilla-on-huggingface.md create mode 100644 argilla/docs/getting_started/how-to-deploy-argilla-with-docker.md diff --git a/.github/workflows/argilla-server.build-docker-images.yml b/.github/workflows/argilla-server.build-docker-images.yml index 4201f52edd..b680abfb5e 100644 --- a/.github/workflows/argilla-server.build-docker-images.yml +++ b/.github/workflows/argilla-server.build-docker-images.yml @@ -139,7 +139,7 @@ jobs: username: ${{ env.DOCKER_USERNAME }} password: ${{ env.DOCKER_PASSWORD }} repository: $${{ env.SERVER_DOCKER_IMAGE }} - readme-filepath: argilla-server/README.md + readme-filepath: argilla-server/docker/server/README.md - name: Docker Hub Description for `argilla-hf-spaces` uses: peter-evans/dockerhub-description@v4 diff --git a/argilla-frontend/docs/snippets/start_page.md b/argilla-frontend/docs/snippets/start_page.md index f80bdd581d..9b517d0afd 100644 --- a/argilla-frontend/docs/snippets/start_page.md +++ b/argilla-frontend/docs/snippets/start_page.md @@ -30,8 +30,7 @@ import argilla as rg client = rg.Argilla( [local_]api_url="[LOCAL_HOST]", [hf_]api_url="https://[HF_OWNER]-[HF_SPACE_NAME].hf.space", - api_key="[USER_API_KEY]", - [hf_]headers={"Authorization": f"Bearer {HF_TOKEN}"} + api_key="[USER_API_KEY]" ) ``` diff --git a/argilla-server/docker/argilla-hf-spaces/README.md b/argilla-server/docker/argilla-hf-spaces/README.md index 521adc5f7a..db3048c6fd 100644 --- a/argilla-server/docker/argilla-hf-spaces/README.md +++ b/argilla-server/docker/argilla-hf-spaces/README.md @@ -13,3 +13,16 @@ Argilla is a **collaboration tool for AI engineers and domain experts** that req ## Why use Argilla? Whether you are working on monitoring and improving complex **generative tasks** involving LLM pipelines with RAG, or you are working on a **predictive task** for things like AB-testing of span- and text-classification models. Our versatile platform helps you ensure **your data work pays off**. + +### Environment variables + +Besides the common environment variables defined in docs, this Docker image provides a set of variables to simplify the server startup: + +- `USERNAME`: If provided, the owner username. This can be combined with HF OAuth to define the argilla server owner (Default to `$SPACE_AUTHOR_NAME`). + +- `PASSWORD`: If provided, the owner password. If `USERNAME` and `PASSWORD` are provided, the owner user will be created with these credentials on the server startup (Default: `""`). + +- `API_KEY`: If provided, the owner api key. When `USERNAME` and `PASSWORD` are provided and `API_KEY` is empty, a new random value will be generated (Default: `""`). + +- `REINDEX_DATASET`: If `true` or `1`, the datasets will be reindexed in the search engine. This setting must be kept enabled when running in HF spaces (Default: `1`). + diff --git a/argilla-server/docker/server/README.md b/argilla-server/docker/server/README.md new file mode 100644 index 0000000000..5b67a93437 --- /dev/null +++ b/argilla-server/docker/server/README.md @@ -0,0 +1,28 @@ +

+ Argilla +
+ Argilla +
+

+ + +Argilla is a **collaboration tool for AI engineers and domain experts** that require **high-quality outputs, data ownership, and overall efficiency**. + +## Why use Argilla? + +Whether you are working on monitoring and improving complex **generative tasks** involving LLM pipelines with RAG, or you are working on a **predictive task** for things like AB-testing of span- and text-classification models. Our versatile platform helps you ensure **your data work pays off**. + + +### Environment variables + +Besides the common environment variables defined in docs, this Docker image provides a set of variables to simplify the server startup: +: + +- `USERNAME`: If provided, the owner username. This can be combined with HF OAuth to define the argilla server owner (Default: `""`). + +- `PASSWORD`: If provided, the owner password. If `USERNAME` and `PASSWORD` are provided, the owner user will be created with these credentials on the server startup (Default: `""`). + +- `API_KEY`: If provided, the owner api key. When `USERNAME` and `PASSWORD` are provided and `API_KEY` is empty, a new random value will be generated (Default: `""`). + +- `REINDEX_DATASET`: If `true` or `1`, the datasets will be reindexed in the search engine. This is needed when some search configuration changed or data must be refreshed (Default: `0`). + diff --git a/argilla/docs/assets/images/docker-mark-blue.svg b/argilla/docs/assets/images/docker-mark-blue.svg new file mode 100644 index 0000000000..eba6cc41e6 --- /dev/null +++ b/argilla/docs/assets/images/docker-mark-blue.svg @@ -0,0 +1,12 @@ + + + + + + + \ No newline at end of file diff --git a/argilla/docs/assets/images/getting_started/signin-hf-page.png b/argilla/docs/assets/images/getting_started/signin-hf-page.png new file mode 100644 index 0000000000000000000000000000000000000000..c9a7454ef5d7059247b987015eb7522c9a8b47bf GIT binary patch literal 522850 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Ṕ}Pkv7+{Nn84{%ol$Mmr!nG+^EK?vP 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⁡6{DYi;{t>LOUw3ZTARI# zK{cz*`fi^LSnBfgFTp*7VXLE3A+ZYbzQ=tbCKQ(r9nl)4yVAm=t?=@S7L5WEEiF?R z-ov`mLCUS>X0=>1Nehtmb*@}#tM2sb<*ZTXcjlo2-*MxDp5x#9sZdnthq4opeil|8iZaXj*3ux1)LdfN_4e?7*zF(LReHvAeNe*70b6vf$pr~Dgl@y3&DKgG zgqFp=4iS+HE`yr|qr@y;LEV{W@a^r?=|Dkl+t=*pKeU{ie^J9_X5+NqCFnl5ciXaS zrl43dcB7NwfmgQ8nEx?}z{R{`+%)3xP3NArDO){`DQ6oOyKGTT;!c3U^=AKe_lLmu zyrKLhGXheVo8k{Qu>ikI-e;mx{H#cCr2DvGe|^5$+;_<#?$0k3cAbHLE6uJiH&&8_ zW_7Zv!u4+lqRg7w=G|EO+{TLNvCFseIxvkx+{{{A zX=~`~pYieiSk{Sf9}BJJe0Ssq;q9iThFryBVe`$qjpC1EtR1>=cY;b{R}Bac0?>>V zyk0bL!<7N0foz&$iSHU^H+Qgj^w!P<1Hx>_wUMjnb4AasM*@A?Xqudz+V1_{_StL0 zk6K$FFO`&DoRCosY(7@kzMW@8uL+y(<1%{!>+pB)DAPl1tfl9|QgT-XL8(X&W(n*I z@iHjv2A*{ot^TA4oA6s|;Em0cQA3`yocEc^vP|L{pi4q5vkLwh@5LL?Xd(54ya3bVX`kM9L5|ap~SmN}g zRa@v;wN{Pi+;0v6KT*<#WaV{Z7Pgdfvz65I22aJ2-?F15tCHo6ckMll4s&bjc7DlF z*ra7y5mj)0YR1=&{nNv?qTozW53Ta!Cr0f8oXB2d^Pe=J}oQKmnQ$5R#seaH% zuTZf0je&U1vb3{2L|hGaH50F(a(cHPQLIxF(KB>M1U0WYUAhSiJ^V!m`nA7d`mrkH zF0{D5CSv2Hb=v8Xw((*Q<9LZa!&9)&4{J-ob*r3ZiV(?_uVQcP?fwo6#GBxI*%kSzBF0zIz?7TL}TwHWt8``9W^!3s`vH?j90{Y+S!@R}Q=FO!ajU2q#=~8M0ku09%K6 z4W5vxInCB5zHdtD_(^nS4ec8lUp@=m2cpZz84^Mt$-IPz~hqS%o z6DEw?pG0v93fGoz+ip#j)Xibs!oS8-A|j0S%R)3|S`uXIl=>+c547fTQDU?v@=Tru zkL1=<`zia*?<6O;L6$W~omw(Q&PT$-m#RYYdTupeb)7rPudO3FU`4$~VDMtLEyKTi zhrg(T`n)v*;_lWi%^x~xF|MBJPP`nl=H>Xj&vfAo$U`G-;zWcfdz$gCIqneQ3v7r7 zJX0GzckZrAxEglzID@D;YOAQZsV9G^!2{8$8Dr|~DWkR@`&u;mlJFwy;WMqpPSa5` zyZFQ+TuWJ$7cz$RQ3`%wXRzxohl5pqc*50w>w(Y0#isAB9AB$*sB1lCQ`)V zS}kv}eJnL^;En3@yRM7y_i%5THG#-mvaWNzOR4!y*PRE!19L<$^8AP_4)j!Cr**fY z{s9<6`^<9TAaHkmtmZ6)-D?24=(8RdVLn0_t(t?o=L3i1RnhC{NA_i{rqkad;Yz&w zz6W2p)nn+C4NMp(HU)A*Xw?FP*et!sww~vilIeLFAAQD8#y7HUemL&3bI?W6FJ=dr zE7lbUn5>S0CmFtDeH^WZ5tB*>15ZBmvhi@|0b@p`+KVP=rrF^z(f-V}1^HqLJ>wwp z2o^I(&$tv;aSy$S?#%Ilw7V6Os4zr0@vH0^GrdCB#_;aUiGreoB5e(RA*1g<*~94q zr_riV-JY`gq~MEny_^TY^hBZbo=-$+xqjA+@#lC7$md}EBlp~i?S)C+c3-6re5>2f zi}8auY8(4AJ8cgS>=-W;J`;@zggoxpHrfgHS`|1)DBaY?Q`&fSPny|g+=H%W=QXE6 zQ5k)ha|st1L~|Wk!Ldvob{tdQ^B5k^=njW6A^};OZ~*%7@idO5=~WMLq|n%WjMgvV zP`@Mbkspf+w5(p`?wCK{qE^7M_RC+KzQN+RBiRVmIu#+89a^KOJjW_TK&m1aDn0JR z<=;N~%4%F8&SqVqA23*Xc~S;jy7)Mr*J3c7qEg@r3Yx_P%E5E5Oy{gqK`|>dt9|+gM{p z-mu5x0GBw6p3p|o;-J0#*1_vAke` zAKQw`&$JitY+kA>GEK?syTVnMa~jQS#}rH;%_Nx+K1RlI!al=m)9fE#uZxs@D_c(c zJd7&;CVm2)mV-;o_aq8_hBPv~OKV;BD6<7LzUGGCVc_hZqtzMMxHi{v%UF5B^-5Mn z0ZL|`Uq3!nbiD}{S;ciFXLj$Fu4R;zWQX4NsJ?TzTJ_j@^)nYg2smG;XQ96L-lJ%X z=rrs#()2O`;cmGRYa&blt{8zE2i&eaeP(3Z=pCLp2wEn$xU=)cu(SAXP1EfYu9xo` zC)~cCVc*64;*ItTQ6_7a+eY9HpSMsG+s{)#%`Zk;VWzZ1Hr0#Y91arfv}}0=CgOcp z%~zRTM2GRQNb(&sx^$`q5gP7rF$w|oAQ0?{E!^gYS&s}%h~o^@s14mnh}mVuqSbNt zLn(}9Et(0M1LwgjL93zi5(B*W#+V?&A=0Dlnb9x9bl3t=AHt- zV))SbVy}Yi%~pDh{Ci8x)`Rzpy8*X{PKqC=&*i856y)izzQ@IK>3?yto7;E=%k#u5 z+hiVgop@{PMLy{rpF7hS*bXD&Aoe{W55~MrPj*1faOUWqxpozo=fd;U9=R9hfxm>T z2_j#Q@_s+W*)e#yQRn_+h<6%ElyFh5INabCV$qFc8EY#c)&*Xn;+LmVEMJ=6i11u& zRr&7Hn?U2f)eY-rd6TV{NJ}64xZPsfrDyP#OMQNCE+$9%Q9{L2;D7minWFWxXA1ej zXYe@1@q?20V$fr49T>%kS$=&V(oU8;WXk@#ZOTc6-_ z55I#+Ggub0++Np1Rd~p6F&a2nw*V*+;Rr`aoe?h6$n-~#((WiUM81dMpcY#E!vX;zy z#Sh|!$x;z*GNnKD(UphupUHj?ePdmhM9*n{`ry|WNUuGrL>|*Fklp9JZ9rchSU8h% z{Y(Y#_cymPp3CHLaXo}edjg_BDsMmd74?V4z~5IQsdV@pp*f{#U1DjqTcEj{U9_+h zShAWo5wy%{u`y^3;xf#8gukIW1;!7}R75i@YD_x~3q;1K?>fqfGc$0E{ttoSq3Yab8&^&$bNJ=)y!&54ALc^icm+^ z(=4My33+Fq@aYNN4qIn#g;ZxwxI~;W)VfA_{5`T4OM0Y(y+SM!LU4Y$CrWD@dB*VrGVzc!%z0`ku97pme&{FWjI5k_|{#eq{-(!V`f zB|5tRZs6jf!cTe4q?HdTsR<>NFlICw-(7z>Z4kI*iOT(E+5A*_iuR3k$jphW5-i5f zd2TBSnq5pX+!k9arqf9=85h*mQL<`@tW>T$i;ZV&%QTSAm|)po1x_Oa^njN|R%rI- zw_6j%JGlt1gnT{<6qK7TaDIy}up0xMWIE&18zRnr&VJL4Kk+5Vt=HlRV}9U6H05Ao zG^8?Vy%y)o@XDi3P?|f*NQT?7tmAM|q)eO_mpS-t~FpXvR#v)^7;n zE`7pQTFtBweeQ1aS%-Q?wT-EmY)z>BiIVk(wzFY5&V+gA=}(8tzRevQie(QGWz|bx zgeH>fHE^U`s$LVmx6DX;n?z~2D7!Rs zTzTN>BH+p-H$oUVf+j$XqUzo9L;OU7lafka#n~Z=1Sw|# zpa(OAE7zG&&H~v7#W+s2R3m}9qZx{*&RkPpCxh{rjF9Lvf74S^3bmRG$ZFNEZ9GIy z0F@g|B~5R=&v(j4R`%B(D_*oW_HvSTM_emim>-EcuV;{wg%N=DMc(;Be6psvLLorHs{b|=hXakB}|z`yuffnIH#eZQKm(Rrk~4RHL*`t3#?_tO)hJ{%F077 z%F}9|Eb(NZmXrtTu8(7S$R6L!OMQ(u_R1dYkzvu}eeQdlF27rvxJOLfl}U9Z1#aRm z+W$dTOGK!j=~r#B*$+Bk5VpY~tV*ulj|5k+tMXF1wW?CNuOX}HtS#vs$KLhj9s!-y zaNKIR@sl!1yZ~YR$36sc0UaVJw=5>EmLo-kc~{O5}3)dgmWN|g(IEk z3JUHLgilpgJYKTVkj0qfJ8cYXpbKVC$0I-mn+)ntL%-tyEg3?wMdpovF;Oc8s#{X{ z=dXcD7aRaQ!ov+yD7Od@|JlReob?mq4uaozd6ywA|Al9uUwe29d}rpo9`|hOW1*Xw z-dM8R!xzB|Pu`a9eG1hW()jKD%=08V5U?lLYvD5d2~w2#$cJd9HJd?^M*H`r?T)qO z>t8k&*5`8oe6XCJE?!m=x1HZa$_*|S4`@7)F^1#SvfNg=+`M+k#l~Lq08Vhtbt_x2 z>Aq#G?eH5p(6vxui&V_s$jf@A&q)&SeBe3YC>S zQQ`%7p8oj;K)sU@aoqMjnhTR!(J~f_ed~=c#ASbc+{9$Mx~ssEP}!9ZGJxDCqtV+F zKV(v^!w{+d6=3YZ&(OSuPBpi}%Wc(m)ZCxVfX91QiyMxKSfx@PCsbdivdbG)n~Ds- zv&xYb#;6+!+N0{xy`Mi~HK3E>VxMw6>nI|4BR{*q%CAP_rBzC!-3bvaG04wF?o!a4 z1jbUR`~dL%Uce5e9ngXACS2U;g1qrUdNEyO`M}4*VcG)44cxWuJ9?7UGE@d|jqU$K zs_^){=JWRdm}x>D`f!$(bnr@he>yx(Ri=o$KV1F&GM1&$v(zaiLRW;x_0Timl&$^y zNuS877I8P)8KrvbX zV*{WV-d=mfx8#RM^1IH}r5Sd${o3a-Q@Q}HMMouK&*hFP&3OPV>S8WX<;}8WworWgiU|cU^ zT87;of_liNL8hf9^yZ~sI_BD)!Drk1Nu2ciDih=9DOK515PmZO<%6{{8!zw#+8TB^ z;WAKAihCJR6k>JQ+U=*H2)tFD=v*QP&*gsXwI1a)#Zvi4J9{J26@NjH(paPEuJ<7ZI&Y3dV;qlE*-e z2Sjx%9ruzvQ*k9LN}k@x?h0Z`eEmd2%9j$>f|H*Z!=Y}63-va7NIY2&`q)ryyG zf4*hMY3@3f4~>35q=*kMbNTw13^0DDc@oU2>>z#l;O21WSW&moK%<*uCXY!kc?UWO zi09qvj`r);D#c3bPLltXjNX#LSh!^|WrBOjD-^B9fe{U$#I%hE_(Thu(c3h1y|DAm~q z`_wr{BFJ)x-Y-uY?n8@Wv-7TBd>0=+A_P+&Z%xomt7*sBc}4W zU}WGEv)=u0X8{Enwx!0x{%+(FtU+N)EKY1umq0lH0$!?8q7UzQl^afeoB@H zY6iO2z0Ni!rR!JAh+(eS-zZ|_;=w-yefD0Tx)oXI3u`xiD78p33i{8|OmA#N2i8FE zEtTvltYumzNIIa-pf5~iZ#_juWg@JF&)p^1H-EML9EPz|5hMxBd%WJX@0Z=lV0Vv~ z=8w&P-tg%ih0Ewgj_chH`PdiPHMJxvrRfm4M>vEi<_o%gj?(BuPc>zi!4+Cc5YmAx?u78Ta3fW z>`0@U1CYB8OZWXWn>YMkesa6>X*DJ0AJ`$=9wbqgOx8+==}g?F8o!dsxj|~uKXNKp z17@7I;<C|TQam3L5ZR07r3o$dbr}m7h09gh>+AByhR4C{%@Hr{CY1q~z9bKmJI{4$npD!N+Zw zcmv98QYIeaXmxMr3SxMD&ShjYlY(8#t9e|fzDF7vDu5SL zi)dUIL@aV^zTlU#`%fzmpr~h5DHtxpE6AfEIMSQ+``oZRs0dapI90g-9Def zx6tvVr1KBG-n%qBc~DeVfGNMsTnV~Z;o57HZ}`A2wtI>U-nF=ws(LG-HjIoxeE<7= z0#llMfKoPV<*3k}boaCG0&Q85hcnI)Od{c0ZJ(cK*SHYLj*{>$b-Xwf^yYO7{A{Kk+Q~OvJP?WYs@>kz_c=PyJHi0#?o{faUJ1SNJ z_^pe_GQN|D`B#r0B}4 zUXfwA|JNtKRp*R+?S3LyII>~;q`-lkt~>N5z1XQMWgM^T1>aB%sD9l@aswP(J}@S$ z5yoi;CcS14j?H|avo7&^H5GVP=}#0qe9{<_l|x$m17Q~?M~q}0hqQtuvhq404v@HJ zP#$^#Voi)H4ULB;AbP$^KpcH9%&SW4*2ZwwRSY?NZ&o<|+8nnSoIu)BGA(7~48fam z5`vY|4j_IEcm^?)`XWD8DW4(#g@yx*GxwLZ;ALs@FaW4`TQ*em2%0v(d*3#&J%Gf4 z7tkn9e0Bx6gTGk7{0#Rf%}?fIV?i%k{w{^!KshIvuwe@+rJT-2{rHc(;)cw<`OCf#m zUkv?EN76`%LNXr3u*a3QO*pWWP<;+8FiV0x)J35T+?O7H1fasmi(J|cJr$nk<7U?n z##g=CVj&p~<{A`@!thG6%pSskf1_iM@Yqe=k8q)nvCCLJOcFdA{F;~k3Uu8Ihe}asy}!grAWNaDAD?dU}eL|mnsO%je391(+0%UM!9LTWURO>r)BRw;05U~ zhM9=0emDEc_x_=fd*%>HDFID|(S4PAxj!IS><p7Gie(TQF z%^Px=QDm9Pqe)e0kC{>^EB<`^7mLivH+l^b%9T8{#L5aI)r0(r<+{kJ<}_E&a`KGW zKfY53WDWe#6+j$|5z4(+hRTDlWNAUNsy34i)ksngE#-wtj|7b?wBIqcMYER~77|r5 zH}Nkv^e`VWJ-E(gR1%!>i32Oc>rs*Y&STqJnp!uwUw!=GM$l&burLA)uXC)WjET%_ zzB7+gu*74p(w_zs$u<+h)9-mET;`GPY1f1zXZl#od^6azap$A}+C}0FH}BEYMCEo- z#?}WKel0Yj5jG7Hpyv#jM81o3-QfWo$d8M4D@S;qH+_;182cbnrXi}z@f%uSED=0l zYq(Dh#LprEDmL|~Hk`0sCV$j_?*sw+g#;gJzu=?p{}X(CPlsK7<`qWrf=g+xlwx$Q zOreZfAQPcC-=$WW+QQIMtvAPf9>_l;^8U^uehOy`y3vX+neyc43WwPJ!6pF2^7FlS zBj`M8p_N4Z4^rJ%_N-P?`l#&{#k@;u82JDu=TuDQ=#QPk{M$|;3zq`Otr~5dvP=lb z{yaAgf$>0x!?{(njLUVZ%a6T9PXi<0&tirFN^!34D-GMd5)tp~{<8tUhaINXHFQHq z0l=!|1$M~t9hv*n$d#u!CdNITX5y;!GIz+a$3|95RLcnZ!(mHP9my?UarCf&nZo9} zc7X1XizoRhNxtd7h+H4uL*f>3lkyz$}uNj>tD65MOelNKIriplKkeZR2J#)o zr=DN^Z1%K#f3M^#^YKV+UMc2=!vq!B-Ir=5m%RAp@J8oABMNS6{13yc|JF#XY#JZX z320y7bvza1cWIV=IT=;7l$d>=8kmL%=b4agCRaPRG9UFLZ zRh0B>b+Ht$^-xd9&|EwP`7IQ-heaq5`f@SaF>dFU^p7$b2Oh3p{>NK z78j<`M*?zkU#p4g}ZShbS;18CO6hMMEJ+XN%`lpU~%oc{f4DOL+tcc1Ic_V$m04$v+sxd>6fS$+#*ZjA0pPXm67?2=#t|&zgigN(aYtbJRR$)Om+j}N*q;5Rs@;v z*JI^HCVl-M{4WzAMU~>FBlwCigMA4Y`|?zjgBJt}eR=+tAfHBrg5hAqW2QV!gS7y( zO+%|78BXkrcu5;8AJhYUw*tYH+=AanDS4_w(X*U!B;1MjM|!6|*_it&Ncn|7$!nw- z@m|L;1rlpq?*bO%jU8!E{E+0ju=hTojk1*(pLiWLYR22Ezee&BiV;^BCrxT?^QrUw z?pcG*_NX~+_K+7P+7&P)0jvD2*AK__ak-~TTPDZ&c)S;(lVl`WNBYk6M-V9ASD17B zqd%pG-N~!f;%s#%)16} zUyT3OVuBLgZ#iCT7~Teb(C5PYQu7Wz4ATa=J?w3evjw!jUJ2fWk+edjMJpAyqLIkPF-6AP9gy26>0Z5c<$!)20pb2J=<1HgY$o$4rMvs{+8c}*)yuCPZWsilI-VCCBjY8|$Ricu=gw3= z!!H_upSI}Q;#}_Bb_Oj!&2GK4gC}bMuFM3o$*>NzF3J0du&neXSXcG%_7d))7>a+I zEOQ1BDDRnk%jV8!o^OpG!2>wqESu!j~*)um#Ixl z3etR_1T@7rNcE7M_W9S=RpJ7jNySX@$`7U+{}pa3YaV<`9s+#2aR#er^))} z-tJ#^jB9R}B>LL}xC8jP!d}J*aJZt_JXm7?j~hb>01r4Shzx5kSU zv3mUni5(tU2QF)2coQVhN(C(as~bw(XX>bJS=e@&7t(&M#AD!k$^5~tDN06188_?(8%Apt@W>$RUdT{1nEoii(Mngmh#6IXi60Nm;2?uC3c z4vN$gOB?fN^x%^jM_T!L-ycs}r0sLrOb1!{An%~Ld zgK#mp0W9}#1LRB%YVU~pQ!HI>0 zANB_nmJA*JmQG(xl2y*JFt@Ho>eWQ6BtXS4(~WY38bimkM(9ME;PsjMFljFUHnvEx z0XOylTDtYHTQ{o6EkxA;tj+@-kc@E-R~FYpb(zp2mFVI!)E_dP_|x^HUOMNC7&^qV zDchQ$LGIK-MGxRenFswMuh4TtxV_$gJ!ieY;Yw`2!O_-CkDfi3AQmE)VW3Qc+$4g! zlOQs(_3X^t5o^I7nxatkT+1(Vxk`^iIg&?1IlkBJm;F@x+@PlK&Nlgw!j|N}wRsb# z=u9YQg>R83#gX>~?Xw%4qse5E>HI)0l%ePn!9p@06m%ZS_+!NWHjMVROWOsSEW^#C zh2+IpTzcuZ93H9Z&($#zczt9+^fh66BauCwgePr^G-6)}&tH)@jN4s>zjy?wcjyDq z$=&I&_S2woW2r zjyO9j!sQ9IFHkxt6e!DC(AK?8?l3whv6G@xv%?#J%sm`(3BAgbIMA?A^L}NYB7DzR zfR3saX0Hxui5p4_x%p2VtwpxjgQH$}pykLchL2+B-|XE0c?t%Zk@tIojOF!Tg)1u* zy(iKC2Lejs$K)S6y3vi^z+@{gfwGRkaJUe7VL9`ddL*BRUz2i@Q5Q#Wbiv0rp)h+w zxxeg7FKT87es3g@+93W2!V1{JQV&n2b&`UxMtFP$B`J%cW#kDMQRzr)8nw&uyY59~ zmI?$m$Q%8tX+`b6A7#NA{RHs0LT2nhcA%jSM)QoY>7~qNvea0`Ta(c82oaROM;Uhr zhfMhj4cd@1NEC*AdP}{+>E55Ig%H@qQ0n-e>k|o)B!s9ZfhyOhUC<}67UZ{;s$P8m zWOK}g>_M1=h;2rMt;W8R(Ul>#UvB!pHYaAKsczlEi^!7Zgp;&&VOLx80@_sQAG#Lzro>;KXb|XRG1e}A6+4x?#=H=W_C_bRBfPZ-BQ^e; z=p%(D5`oafUZwB}`qN&fWtjS}HpS0PVRe|Q&=Y%f&%`e-Rr#$#0XnENMSni-LXzPU z`e;)K#c&Wq5f~e+3-mq)l$7?44`#qja#vSL1O@Oy?&cP^6zhc#Jn z*n-YRs^x6J<3UZ%u>Gc6}2lc1le9GZj_Mz1LjbO)|c@WUx-~F#e%Zh`luoSxoAI_dg z7^x-X|64N=imI^ZjzBu}-;)ic67*clcL(mmmfmSwyuN&-Pdv4CiM8_+HH`=EN1M*g z8)(x}{%F&kld`8+4IFLr1raVPp4!|!bm`>M0Zh5<>k zmt_JHAJH>gzyMy>>}~~4nZSn=nAR-gcFqC7t>E^Q92#MD@!+ zv>vTR-NFm5J(GLBjGT3di~8qWYS2ycxl|}Hpuiwj4t)G^c2!c?8|Jp<`U)DmuILsu z2d3vek@xwYx2GiPK%@fCSU|ktaYHc;ywrcIaz31NqblW*56Mg5j8?_ZL^!!MirGiW zaQ+nJ34bt%Row&4M=peaIb6ScBve#|Mk`}NBvNcNG9du)ppsA#-I*U5=cx(N!4s-o zrK~zjnJDY|$5o7DTC(!KfCBHCkYMSZ+v2$}T*zSCmJ$in31(8AK#hEl|7B;jz+=lQ zwM9E1?@Z0V9*#L+pY73+O6r^Lp^VTx+mE(sMjQY|breAkXLW?vI0(u!8w_u3-?}I`Kt>4cK77xF73Y?XBSC}-S&X|tFc@)2QA=Cwj*;A~00D{B0*FBXt)P}6Kwb^t* zQmf1U8Sz9hs#~e}vrVL`gTA+0zSkro9W*7g90+9eLQsR`87c1cRe5i7d^0@Gn4z~q z_~zL$8X_!7mQ><1Od{MvF&5*skB-are|HEFz=SxSDu=jm?9M3D~2_=Sj zPg83^q1HrGj~;eKj*GL7{mxwnE{1{Jvg95bdkHniodp^gGkKd4rbjmO+J1YC|7aw& z`O-KpO#Boo2BQB*p%Qbb9Q`q~kPNd!=<|OwR7mUSg~drFAa9J3VQc1s9#) zTRsP3<_SRjQPOw3x!umbiOQAw>|&D0UeO>&t<%4M+6EvwgT+U5Pp8;zKd3(wqQdy;J(U#KXF-1Ndlci61A< z4p0v$r4@kQsK0wdSSTV}6pLgt^-@`X1VH1IDbxiX#y?z8JG}0rN!t8r$`H8QgoZsmFng zKfwWJGD^i9El-gB>JQ2|{QMXNX_a|TQ^k1H)iTRJZew>7SGgk~D@EV( z@W8_6-YF;he{qZ_0C)}l>l}SJkK@}@{HQPH0??Bm$=tYQiZ{aVK z9t|iz`-lIf90EQ)50Cc%3=*;j)N;m(#Pcs$_R`D!>5w@s+!j?qeb))u>2St6F2Cc0 z=aFyiCaEJRFU*4Xf+6;H6W@+4CMKV+fX}}8p%WU$?Sn7TTj8M8Btw=_|Jl>qBg;OO zfPk!uH2twr;E6k!aeqJ^!+yYyL&ALyl_|jxPH>kikG!;}s{d$&#~VlAoy<&@gKy=_ zM3BO_Qn;BL&hf)C4$rk`AlA-=Sw7MExCJz4AGSQf^G5m>s$HlUGms~LWS}Jqj7;Ix zqjG>&jl>g9@#bmRxp=vbEs1){k+m>6WFk*>YkBL-4?|8!`=7Yk9{zL>k?{xmU+~B1 zcl^2GrdD*Pk;Q13WCk1B75F{p=i2tTyQuYJEZ6V?tuuDy#@g?OmomK3HB2OPUV z`-)DgbH`OHX2Ng&ybFLDyZ@WoL11UBZos4N6(H8-OK7nfQsi?QL@M3p}6f2(!|Np9}s0gU2fCxhcQ4l6bNDf3v2?LQFA>An>hDa(CkQyD* z5+kHxfOL0vjF4sw*x1H-f$#VC`}zLP?|06*u5nhpmga5D^4cMX^s}!gY1&&Y2A;lrZ-&6LK#`gBi)1C=C zNw|WU_CiMZ0!_GV;8jWb?HkA1v5fT!*8fo@4lL4mEvS&!(btbXQbGSmW%J)MPbA=! zb&WgnWDZt|ZU$unbM$BbA=W#t@q*e^e*MqZ2TngymmPaj=FPgU?#zpsvWZvSx^>uu z0mKQ3CADYNdyS7Ze*+x<SN;P|7Ah^ZqpD}bN5>i;3zu1FM5)Xc-#NKb$Zr&2GA2vU+p;& ze!o9sN~>v6Ov{`o2+F=Mri(2Bmms^W!N9Nq7-yH$&R+oZ(@AL;^e*h(;5_-P{9OL$ zcqv}Iu@J6N0|S=>EB>96CEke%^1sbEul@=_|0&9oo}DU1O0b@sgjKgHAA-eAFn}!h zcSpLjebG8Bi!5~7Z$f3^`3A%F*`KiMM)yFOm-D6E{Bw&Vq0KgiOw$1kG$Mc1e2RvM zU#OFh>KEPL&B@qMlR>x8>Ej@tYl2)W9Dy67{9_t`ObUY zqCG3O7Iu~~%8+#I*|a$=TE?oa{tR|396u$tN4+Tr^IvFo`g%V>#S<5+HNVz4+mB|dXqZB)2pZjX+U$FQ*-Uu4XJe4v+nC$MGE;x2mt*L zAwX`MblVLr^zzP4pi`o5br#KR$*Q|rDRHq*`Pz+-L;~H(gwFr}JfZvlm!JMAHjcw! z&-}5I{#ZLfyRTuDS;hwK{i`xxK6}y#{M$~qWd**W&&ZQ$It>VjoWuW5b?@J0^QnuD zmrp-B^q~JY215RCF%UW{7&+z_T#!mZDVo^w>HB-n|MDpQw=i9J%=GDql(1^^2F%tng1q<@RibwPmJ^l-kt(C8&D zw(39zTwKT!)Paoh&n!f+BL66d9Vw?n~S=EE_6JyY}I zW3k5`(0~6Z>Lsm?*nxa#(XsLpk`Fn~MaNace|;(~Pg$Ao9Js$tIL)?mGMNEZvA1m+0p1km|HGT| z5Aeck?|#qlv<+}eqt)V6O|U?}Ne7=rUP&Q-5e*eu&8;?egEA;W_|KGaZ^i$GF-!_3 z{V(ES^0>mp6i}jjlTu$CetG*cIZOm zy-NIN5fQ1(P71z#os!qPzBJ@SOZ~qO?1jL|b@MPNx3N}vw_=n?GbD@-|2xcgdhowA zVr_@lb8NDzY%nf8@8(ZWeb^JX$!ZTSzn^?WxkSGnynu}I3?d6n$LPZk0s}inI1(fM z3sa8$`i9O2b2oWpw_16Rl32zCJi?hcs|;|!*enGuPboS$!qy%-dUcxQRel5tzT?l@ z1UQ5`UqD0#EdeOpz1fZKWjsY(-RO=Ve2bM%_i{+<(&}zSv$HmFIQAr)Dr*CxnC1H{ zLX!?CJPu%dMHfv8#M)F82;;P-`BP+qKDb>u<2>fehMA|+cQ(}87zU&u_(I9%(Xi*j`}jXZY{Rc z@MiIojVIWdF>(6CJ#1wn>A}tO^Gh|=Z4r}e@r<>JXX!faJVhSV$aoi)4d3w!xwXQJ{`6HjS{mbv zO^Sh>NPkr59Epk-J!a|q=xr-ysGEK7574eki9n4f*pqLGp08#VZMbdMM%(f0sM=Q- z^h!Ns6XXyz`f)%0T3cHGruAVCRNG*KFfOeIulJ{ZQmO+hU@Sf`h;ZH7mU{X&^g`2} z5hI5Yd6TFkM53x4L#g$_*dFKPV|4buV1Dmxfp^efops;h-Sy1B3iGoklh>M(VqR_h zO<>6OZ+Z5gpIV4y&rayZNx}ve zfybda!s#OVJLnhaADNAF_je!m$k@@$@om-ukF&Uwh0plLQ!kqx|F5p+|ALu1OQA5U zucOwR(gxhb?Ml>>d$NxrYcmdZx?D|4MnCvZ8e)o`V3XZ8t%D$Ir?MJTT_2(2Iv+H5 zQ8HU4BpyubHAuGmB)Bi!S^R|B>~oZWptoK-V5mzkXF|fU-JS=z8decE3^7#zG@=u* zyT-ccI5X|bS|7f71RwDf&6?s`Rk1nz>q5rU&-?#Jq#mvw1Kd+NrAEZG>Myj@{l8ZQ z5btoS!SHPh2b@xAJHt(u`UQ#tlZ|TO1N_D6AhE;G(^1*hRRDH6^&X8NCEO6POD2xB zdfu-x1)!2I1-g$ZYZG@sBlzJo9MtpIM4jTZ@AS5UqqYj!n0q@rSnb&MEtkJ_%W6QSL?W{0oYgkjPz077CTIpFr%b?OgRXhFY8D` z!-x9&4JEL};+=8(Q>d<@y<3HjDJP^BPt>I5E54U31T9wW zuUBq=c|#ZX14ppCGzS1}%(qW*{Ogkc@50Y zGi~{6ooA6mJ4b7#0@=7wG|VF^nDPGo9>E^mQWIFkfSovdXwXqRzi@AoGTTcQnIU;N ztgd6RW_%&8o2SIU5`&cy^nr3eBnr zg#!SLoqtr;q*9MElIiEJ*kO~r3Mt*7%zy- z9*)KGl%Ek7QLU67O8KaZbcr|7arrVpvKl<#Xg%=g8E#$}Q%+=pywW}Yv?Ru4%b-Jz zo+GmRFe)_&zSA;a=%&2Z7^M=G?fDQaQL^@w?OdQoC~JVh@XEeQ!k%CGezND=Zm3#lVZ5;F z4eQtFm&7vVRQj=QH7LUFM)lsU>~=*1`YdAoLB!Vw14jo>y4yCc6iyX^#4ZGX6M8>v znLj0>Cc3P8z{d6+N`sM=P>ug5rUkiVn!0gx75yjhHwLRom)SU;V9@FR7Eru?%)ClZ^DbfawG_c;u zkKeZ*wD%a8)qGhn{?YUk>st1K1qAu4gfi&C-fKS&wu z;}nZmSC+nDxK31ICr}puaH@7hQb0x3aWyDii0Q=W>0i-)MI?MaG1)&8b>U41?zrZn zbw=1lVn9u$`Y*y!s0;S*PGJf!K2#pqdXy{vfz1+OFXuKx!;1IBdMAc~VokC&PcyVIui3wtj!~o}Jjr9-#wE zSnqna_k#2Gu);Jke7E!0ybV`VBCe~lPwr?ayQ0pA_{< zr5ITCsZfKb5)^G=K!G)US1?aY;u8X!Il_3TC=MvE(+Wu;Kfbc4Nh)ppTzLJIUW(=R z7io_F$1rv4PR}3FrkOF_X#PgAy^fmBz7&~gZV9Ys(?)vFy6mKA6F*}(DSvALlxUOQ zE~I4V4iEd*0n3OtjeM`|9QaDMliAQ3$!zH2$a8w)9U(6tn1_Km4!vn5!s!h^_(!$z z9&ODo;{7)++Z4^VJoIFPR_Dq}HsN6(5%RGh038H0tH(l~w*$IM6v1M~##Pv$(X}^; z{9LH~xP9j^(Iz>}1NgcrBo&Il@A@r%#dhxvRc>zAM@a`cS9-r4TXRAZJ1onlDzf^w z)4I1@+}x~xtR*;JaaQ4EDm6r`CHOR7<&E%*SqX#1>lS)!pm@UQ4XuCP6m#JvnGy(XjegqqH>rm(N1=@APF!|M!_vYVYi-R}YU~u-If`PqtN}63^zo@Ourp2Rqdl; zf2P4vrN&*C(d^}QA{Oe4^d7pcWz2?KZxo`kKJ0`735&hsUMcAzA83~70)NU?MOMbm zS0u#%UFNYy4Mw)1f(h?n*VEAO!NC8MITgy?y~#MUNf zx42e5?b7J}_#)#Y23HzYp{6h$3$0oBFwFV-|DK#UNhG;1{K< zF?e~O83(Z0%9r&M-!`z6ytH(uyFbPWoRG!4TVH;OguJ8Ikvk zc%CfabfFa2Dn24kD%BTmz#eoC1;h_4fK?hf`zkjA4QxpPosHQgWQ=H&qg=JiN5o3V zDpMPi#ELWGsw$)V&env>DEqwLTB!a9Bx10GS-q8qagbw(FX{YzHef0ywag#!QQqG7 zKy(?0QA70e$e8l)D!=;Dkn;HaPun_B9e6mCIbxi*37)@pKfN1HcvEQDq45*V25$_e z^y!kZ9Yti3!$TFD$>Du|I}Y622Q9-$77}i!5c16s>LOVUJOeyG$1Z?ESpHo7YV#X- z#y%ZQ1nvg$9=57H^w4Qz$npdx=pA^3@KgQfD4bDqROHWNHc;7i${0L*{m$r7NEL&F z9Dor%d}FKLqEa^~0nBdQGAM#W6JNVuWbL>CIsA?<*qsIXE=}snKlBj6SgYOEpUn0_ zXB)}SJt}Ge`MOD>V?*6yk`3ZZywrcmBaRn&pufWw40>v)g0|N6dz(gR|hK%fLJ66~SE`tABYez7Gt58B1~&y{b$c_5 zL*kh04|ak1#f?E%XM~wxjRTkvPYmz-_Q3BVu#`v?|G9oTXxZt-xK!n#$FQ2C3&$oy z*kF))ud})%>DMzj9RS`~D?7TnY+u-qk;Cq5kxhAy`jr-|rnPmcr(u=3ox;X(( z*VcfdwaZ3&c6fa~e7JkB9^P*ZLdyFZZB+;Ssj!nIWhg2!X7D`Ua9pUY zUSrb6P~__Q$8c_b{dVFj>QB}r*!EFj^fB4Ib{=t#*G-HKz44`4-Gvso>EwJ zRA7m;-#IXRr0xWN4&R6SVj{D~2*K(cDgxpTOYgiP6=R&n2l@JHm5->f04-YYz9N3g z1)Dn~G=tP|{iR{#i|IJOns*FMc5rtH`Uqer=8p~wqxo^v$Ak{!Z))%ORy{10ihdU= z(mqfHvUE#yKY2egn%nF!sQ4XJpbWNyPnkXPFbZ8+-3&ahcBK0u*|$@H>ycLRIGGjXPYMM+7SXn8(?5d)Tb`5%=Er z;8Z!gt<1=7uCVl|l_KL9jUwaN*?NC@mi8zNQiHR_B8y$Nacut6fUTCA-Eo18?W!!Q zH@$jv;bEzgkn?lm1y8FTe(dZ7iwWmZpCXT0BttpF55H2U3$M2A#!WPoV?;V%hM}#; z)onJ#p4cy3C|V0m>GVr{Ka9|}d~N`L3TlXde)<1^JGRqp8z zEB92yk3Pec2$deArg)=BK|^$5E~9bcE%rE2r_B&>XTcFv2vxHk8BS6HnrKjrQKT-P zoMCxdBwu#UFZU6U*f2;5^$sp^bQXW=-0%_bk|=Q+2s$Q*RKGrR$Mbof$wENm=fb(F zpK~w6g?@l`-A&itLzMD{b@#>a!YMb5E>kyQBHr=elPG-9l^2;2!_y~qc|>{uI2bEP zUP7zMk)dwbo&afGgD?1z>AO(ahqN2WFkU-Mk_z<$=(n9J5&1=5-DrBw?ROgbu%eJu zs>;Z*MDJLFUx#!A7E+ksA>H0Cw$Li11P3B{)-Qh_cPsIl-9Kzu^FoMqP|4&7@*-rf zchEbr@xs_EjMz~SFL^g*=`c^rAF@*h=at!HFhqDfTuW4uFw{+ynCu9*GXfaCu@Oj} zcZAum#_SrRm)W5@L77&oc6|fGM)3wqqtQ~8ns3Gi|77QVxEZA~^q{1MeQR*GWI~YH z2l9B&&Vih!-qyO24+_w=Baf;<=0=?j$7wCKpe0B3B@UGyUYDC0r-l10f012p)Lehr zRCaC&TANd`bLk?+k(|1--|A4Qt{eYo{h(9tc0Odf#E;m}9K&}sUcmbPP;RjvGe>-L6rOEDrkhlTUGIuzid0aJ~7ZbJ!lm!?!`5V*^`0&7R=pH9%9ibS6}jDwPg z#C8_?ugT9Ta*li2IXE1kf%RT7T3ZC9GZ++HPwBJjlJDl~3b3@N`QLodjbb}8?gqdy z0JWIvQlGw}%vV5ZYyd*ya@D&}2L0*XTy0;6wyn9|i< z{4w|e4rPs+p2VFSUTGf=lW4=&`HSxq34|@6XSr7r`#apRo%BSXrI>7#aip&O#ZNTt z8U2AHVHs7{mJlhJv+xy<{s=5$KFtQMO-Rp0D!}Nq^`we^=G@V12l3XFOo#I>k1qKJ z<}jLcT<76y9vAS82;9Y)5(vcPF`G_X{49~ON#f4@@QqL;7b;%#Gc)Qfo*wC{<($RN zu9>Fu0Mg~}xhPsR>5-gMoZj}{WC?r2$o=EK@9RzUs&qw<9Nb|FX(u~oRr`YIT)oo7 ztPUpe4T%%Lj30G-=euYISF+Kk516a_7 zh5_p}7_eRgo4f8NcpA`2zx-AAiZ6KDBVH_u`Bn6^D!C5pCd1-9KK-_4f78&LUMb|3 zjJ8Gat@5%_hb88Y;hMc0u&3fbH+DBYmajSt?04s|Y4B-TmlTxmazJ(yYUat){B@LF z5l>iZ4hb`^gb&HC>)aosfx#TNi=38Sa|65#-M%*-Rlh$~-vI`1x7gc+z$B_FWag_m z!DqE$^|^~fkRvq-ww$WkD-TDn1%i#6ENgOw$@wHqeYU<-xwFJF1GdUNDa81w z?8d2Hhc$mcLyXDyU6DUsx0b~2E-l-$kM7myapjda66e2oo&(oE#}0XV62ewvDV#xu zC4`ClJCCM=rdIxtUW~Gkc2=zg4HI3)M(8!pi{3<{i@FC zTsj#awXg@B_#Nlj)GE+kSu{2z9y9VW4Q*My;vQys_&R#>#;i)|gc(a@qTF^d#kkC{ zjsrE8y1XlXL8}1UPU$4SV%9aj?j*PM`qeM@gTtYAa45ezl0L{d8q0&8m~h?%p2mjp zSuE|uRrd?&{lz8gN5NtQutO*F$5_f{3Beid1w$tzn7s8qGuqM_-!^0{kGFmBu-Y{* zV+dy9NpA18TqU?o>wM&!hV126xQx*z!#(@g7n>@{25W)L^8OwgcFk63J>Yr`4t$SG zaYbLQla4puL$vABQs@4J2^_wnw&=NY+M!P$`gOvyG`_=H)Y{~xhG}v|yG2bMb3DCu z#o9CMcJXk|A<+$Viz(V4(IK4})FDmL9LSGn2il_~BHM4h+jZ?fJ-+PxjJ19;Jn33m z0KRvhd5^sT6mOd|x;4LgeuXRxmuMn?prxrce92F8ZU26~8>l#yrh`Bb5)Q+Mp1e^N z=U4cAknGb_2b~_YEXErfmmxZ(xrfDCS5bwL2b0A@(I(KSE1f?Gr5<1GItSkg93n=0 z-Ibbh&n-~k>UP}bqCI1)gC(+D;nkknyD4uvhqT<&HERx8913A;D<-Sr;sMBXv_uHf zIVpF2wvm<`W!P4mO-4uealjI58^r#oV8 zID)nI2(NvNNb4!8(l$+(T_{^#c^x}{#;^E~2n<*afJN7hx z;@5>auI6rVb)U99&go+KdD=0DjP=fyW{|)#ZglnXCKYHquXMs=cF!JK=COdbopHZp z-80d|+{)^5B-57ILVa%QV5v36v7Ps@smY58O!BR|Ug{h&r7Ih+m*BEj&N-9less2| zzeLM-T{Q#MPPfgm!GLwbKV;Xk75=)M&~c1-?GkgWghrdzOg^PwsyWM?~m z6W5N_Y|V7l#04uru2hb~9p#!S=&wbBL6E$00FHS=z}x`jm@V}|Z!BqNiL>)}!jwL> z&X)#K2v@DQmfwS43`jrLn0`d857F+~ANx5X6iHZ4q|BXvgnfc{Sn0%AZnH(681?=O z67l{oB%-|*4(t0+G^y+VW5G+}4mk9Y^+&hNd!*5w-0FE{NVC}Pa##WX`6r7=+E`_= zImx0#_dpsdV%;v9vN`4+(5$?b2qCV}R%6EPY7Quq_FQki*Mno@LF9&s{e4fGcfWqx zkcuJZaMb{Q771@1`mR#2IB|v;SVbF@?HdXaoYE7=20lSsMCzJ{7ffq=@Ekl$ zGrhdO-zv*uNz*{_I!pHO4)&(u-gjC_%QPA>v_}hkF?Mgf`HRYDb~ron9gK0d;Yl}B zlqCB?dOJ@DZS3&RCKN8T{e9(Opt*^_M+9&?i)sQ}yzr_HwmuR1VS_wA?d|U|_51$Q zwLGb52}cO_25j~@lB=~uG?;ksd%8vOmM6AQspb9!P1Ui5JW=;nAdDv)OW{@d9(uTW zWE|}x7jJC_^2Wv{CfcNGP|V0W*d=of!C@Siu`w9sL_tGfR{iHe>4`=MqwPC z1wb67@##`f&ytG9^TL+2gf#nrA?=4f>!-?{HA?wAT=?xuW=S%m;aTbei z%`6+2HXjCiIPX5eFYX(8Rut?cXM78&Pb7DZd-TS^=6EA)Y!%&A2whjVDX$iD<7Zmo z4G^0tv7(L0Lapb;EN#Yf^`3%z-oJq*g?5`e#kJR*#rM)5M_dK&Xl>^IXl!hMPC9fi-IFm(S|fGO>`UEt-SH${D|d>~NsFAEQH4Qu%=h zaZ^8S^P;!0`^~FYyjO0pHPoJZ9)9idDJj*Jjg64=D;tZa`zFuy{Ydh;d*S9?gTPeM zXi}2nc=?R zpMmkkH_LF=rkA%*QzSrh1n?EUpReA6ge63Fc`PyWTP>Wbkdk%pX-fm?@>U`&M-4v} zkc;j1lj<+1eerfZEzVYn(%rAB1o`n!y0?>>40mSGZ~yfEb{1XQ60cxM^&E2PY;-YO zZ3zT*kDK^?OM`w|n^W5uB==HM^<+xua6hL-*~bT!^SF5a*>-%>u=kL*vmXRFe6YiZ*mJ5C6*RZxH$4vQGQVg{C#S;MYd?|A zsf<=w80!2eH}~A%^T8M0W6-9sm;1dhk+kPxhO=atV*~;MW|nd~ZOw@Gark*1@9*2d zk4al;tV~E~KhK7cz~s_b8?V(cPI6}X@sjiz=ILEfD+8Wq6R7qHY8Ts=aG42IFs0|T zvHF=mA@qWu>TGF~3NI(}*AwLG13wpSx*sA#MZ8ksjK z=TRUl{~+`T9wTa<$u|F$xq)FY$89zJv89jx%PVK7&)&Mgf5nuwM>5GvlEUkJSNZuF zg%#E-hFdd?u2Y!(XGAocoHS)mz2`F!Unh|e+lRSd&6>;4N~lrAoi1M}j$;4u(8e4Y zOAHP7!xZAqbo}{V>3Op{oJVNooEa$=?wm5iLMxvgjkG`h#!h-M*%~hivOHnN&f$t- zKCizspD%+$v3MSQ-tGFKI^OE)p ztWbOhh5Uxf=2g0Ym4jyEr_~LNHT6m%u9BZqk3pm>r{J_V>Q_a@@idcG^~sLgPG!$k!<%BIety3t8)-+mLM28TXXfNn9@1&! zV7ZjNsB#_#-up}weAEd~2a&{bNd!!g(c%vM&}TlxtGh+|()>ea3pWGAu6<;A+$TUkE|@2+BJ|S&3L#UL zX40x=JJfT-UxZ&{6hjr+Vlt(G6gym(GX_tKfJ$=^k_x zqM9c5a}vie_iL~TO@|f_E*Lx@`Lu=|A2upBZc>v+q!uW7R~Sq$am{}*w}tK|N2&I~ z*#g$+v%Gs=`LLTE!Blp-Y(&`ZjK=3gy-il6$Yvj_(7%WJ-%~zAG@rqO#jhCZo-#m? z8na5>-CN$~!MV!5+0{3hw4QzL&v_$ch!*KZ2E$t8H*fzE@V{3vhhmc)%P>7l|?3- zLbT@50T#?n|5TUq_F7>I2O3^7rFwx73?q*DD= z-zSMiJLh*u)n)Ls#lhKbg1cPZGWS|xs|vYh=IdNthWX5=-f=a`_JL$G3iZRxWw40B zOS!^KEB7mg$_XMbFkUxzF$Hu99taL>A3w6^wtJ%n>t?mG=ZA@_MZC&Rx7RjAA3&cq zON&=o7u%VHa}=sV&e6?`q1?Ynx^$CaO+}#PpMO##8Q#vX*Y%2IYc3ODLOS}et zM7ka#;96b=jumO*p(hAwBNGZgbTLGNF`X5=7p1ohc87EXx8JVD?rG^=e|m9aAxY6{s(B10hwF;NQw8uE=@1#BQD{V_Ty4TlE?yU z)2Hl`sWq?`0xsHO^s|-^Q4rGp63)5a4Xz?zNmB0gzUqC+Buf<05;GD2oyC=V2ENNn zIX$1Abg?a$CUeM=ZTI;XS?+nCRaE88rq9scjIu89a}THYu*g1LI3sRzBB+A4j(DlK zRF!7Yiv|1`Ne+#9x9hRtW+t+%sZnllf)eIHmvA{;Ro zvz4vw`Q1CJ$s^of?UkA-QqNTCPn4O)7^S8!T*v=5bf#C!R$F>}_WN)A0I`By@qXE6 zSpxcKTb8iaqhEI0?aSVob25on)ODgGBUPAf%5@6xzV|y&Wi|MPB57w_Zspz;CNBA= z8)o2ARh9{C;PQ~AhF6pQji1TTp8X8}pdRqr87_WW3rS-}`XENBWiK}`1RM5xn%S(( znzhVezF>o@Q~-;59PK1^Q&rzeYWcx6PW6hX;_p%)8>?eOY1Pb3|k7>%ci^B6>>IHi!!e{@mt0ncW%8e`#Ss^`Hu7p z3B9FBh49JPbs1hS?G<78^gPtWbdF!;d7Lb$!=`-JkW^@QwQ^S&;dae=<*CUEHkrb% z(f<|SySW&9q1{J>@NKc}&eGi*WJLxE*m+f5iMKdbj(hKle?k?%u0K`js{HiHzCcH% z>1cVI?rr&K|L#4S#k9oRPo62(|B2wO*+}mYGD^)xp+kdMj{GD<-J^`THKiyeX5C)0 zgPT<%U80)mZQn1uHeP=DzC?;@If^=b(0wl1m|n(dMj02hHoD?>dAL`|)(v-hXqhPr zj8zw-m1fKXq?q*r8;y-cJ@kv~TS)sa<9jR@3`cdG0fg+$0A%sZ1_yLQJ8FrM7jettj!CTNPT{H$YGWj&NBgW<#{V} z_ZjNu#JZn2z2^0Ja&!PMJBTM|UDU^8>5|EGIXe@{e&=JmWd1GfzJ%;8(L74u_F;QQ zeH&fAK7t^DX88b>fene$_2TXiRP)h}d&p{0qQvWpiB$U3YE(BL%MZ{KW$W_T1aAg!CU4ad ziec&D-;bNLBnHWhw=>0S%mVofbj3bePX*i>%vm_ZUNvVFU9Ztzbr_v6+SlJK=0sNnI9fe z-fj@rC_P8o%t*A--6qaZqno=ix(+GH}mc499OqgH}}scIXztlZ#ZA#HI`?nG2K8q|9&h35}Fm_|E?n>wrOmT zdQiKN&cxTF^7OXB{_DsZgOngP6#5V6Sb@1jno_JF0t7l=vR?l{hV1q2n?0t?yDy_A za)kQ3!~2;@<0+rnw+tJ8sgP@lDh*L7&FCNY-!$=EPgYuA(ChdV+sn7a`z-i1BWkxM zb}u>(TaDHeT1nr07{aKn^A0}oz6NTggLX^jJD5_LyS>|77VoRC;Y^3cEG1kzWf^PU z&rj=*M3lZ|kHxXSp9j?nyvIP4vb&XsO2>xqd*)zF%}7&1}5IJ|F+2 zd7a-(4m9We1}u>=%VNG$#lHK9yy``(d|00(*ylbEdzWRWML57pJHHY99Q`6q2EofUw>@^uo0}}D zAD<@>41_tTH>86ps#P}q)!k%n8VqY)i!`v3_*8r&ml>H6sav%W^a35V2fkup$O3ld z6{o+oo+3ei3zv&Mw-pSV-ZryoPyCEoB&oBMnJ*mbAknop{X^NZ$V=WyMM+QMKXEFf2FQFt>bD{}Z8Af3;#`D?;a-{}GJG|LLQM7P@QQ%38yn z7cj=8k^Z04WZWAd%IwpsNZWN;h612BIWKA7rsX9Bsx!u_z3G+9LfUlnk?mHzlAttyWK1?KL#C7tf8 z^QMgiH3(}2b6D~9BKZ1>xd9j?p}buN^LwzAwSlE70A;!kqOdjA$fUk^9Zlo5ofVHzc8=qy14yow4xh)vw9AoJM(-n$oi-vo<4n>~r;OR9D5 z`@L$9S;miMWq&QLllVP)?FpFD=^LW2Bp;|%$(=6aVPI$q&VJayKyDL@gJuffm4%aC z2^HC>`z)S*Thm8vn(a^Lz%9B(M$K0$0^UG-Radn1O#Ac9#9dE4;2fUG#!LGL_x2St znX#+hE8C<2Wr**?ctU(GEmcAzv|OFr2F1Sf8>qt;c3aHEzZdDefoipyWN@GGv=33R>|}# zo{vOWh+Va~7hMJzONrl`ZCpGV=f2#_sb4cCI&Z*YHO2a;eb4r#y|`ztixO#pt+qQB znA~ZaaLUl4c{3HlqLI*P+c=yq#8m%~fEanq%tK0Fqv0^z>mv4Vp$)q+U29kWn`|`*~}X+qG0#_J~)AI zRoXoJ+V2^{uD{cc2^uDQI_>iQEf)Jf?sQ9!el(0yt-BIG+pUE2I(k~mnA`S8>@JiC zn*M%dozhlxrp}P;^Sxo8srP{QHFe6tGVcEA!R2iO+RPYOOfJf!VoDeD5h9vU6RJrrFpxdhlhEZMzqb}Ij4~>8)`?mUz;XvLE6>At>fDFSKX&sxF5gP z!^`BZ(6MqU1o+wZ-ZcE}M|EvXC`;Dr)=*@sjpdI|kLS8SFm%Dr334v2##^_ra3z9f z&KKQRjizB1Hx66mg^HRKI=$C7aV6RgrE@wCrOO)K;}Y04$VYIMPuAzFtV4TSAAdG_ zW3lP*XRO;-IdTas<7PQgE|fq;JA#S!D*0ts$B)xCT@rzGl>cV$LSs|k@ZRu@wk~x& zZ52N0ALBKt!&itPKiVhedDn1sgb50chb9nbK+smh4R-XY&pF}%&=tsq~ zxNks&x2d3`+FqEjIOgnS>Evx=7eL`$)OuAs4@fO#a+Ylz_-h$*!jCj^>7P9tU@l_% z6wZzOCb`YKa`drZ0Zb;Ttk{R?hAh%22azc}&Jr#xdTY{}qsT;a+nwkCvH;ps-lkhW zVT)sm7iU6h1n~ZpDMSDHwQ3;sP7$_Z@ZzDJstp?sm!=SpUrZgfsxus9@(a0refrMi zc>RUc%bXV>8Dzz$sk8KLoDVMGSKRZheYXgIBzLGPi979mJ&|b+%T1S8zSHYMhbfW6 zHq-IWHQX|^7vIiq&qdlHK#(GjU%QEqIldCkYuSH^02Cc{Ac zP8#RNSm8y1>^Fl7avsXh=S=Q4Jy7T!zhHnEFo7%18l+7xKX0`M(nb{x&$CBDuO9Sb zL@C~$7QEH_>fCM$)|Eeg8>PphE9Zvtrm6O*3Cf*K$cR%+)b3i}2N45qIj^le z`_(g^mk=)}?3G?Gb+ElDmls|ZCoRKDcC4qLJ-4%Pp3seRc9YO9C-U7U&du74cL_bJ zzc_f82u|tFi4|?crBw~Y&>{uBIg}$lyw_&6vDOTK+P0Y8-W|bi)%2{T1Igd+2|e2o zWxCGMr7Ib>_$bmmGC>d={{lHztCpzpyBkri@5De??e=NXDN~ij8s!4|S}b15x1u2O zJQNr!F668Ii7ohrB);lj?77^j8oboF7lF;)Hi4xjH1u9Ed`ak2Ho&rWJ?D8c9!q@J z87Ei1xg(R$V9wO^fOArdOWnm4;v-QBcK@XyF1A$of%D~W+`gT*zi>d6agO=Voju9m zkq=3-0lc3^mHS-Xbn;9w@BrTS^xq@*)Gg(xI=bUxF$y=Eb;mo4YCOq!jvJg>^)i75 z(lNeaGMa9FElk{kOX>-38$WLJH@of7c{KQxeL~B5)I1dq;JshS1T`7m8lipIJx~vl zTrr!-%5V;r9msJO_|x~ZAY($eh1xQy=a%0UI7u;!Xp?`Fg?H%8bl{G7)+o5<7k%hg zBQ~#9X*S^+--1>u@FuHs-Dr-p8mA6%HUQ^DrZuqsW9sG3T|wu^`27IS*tG0;ulR`S zuyN|+R7!DdX&>_Og=kT@%X1&@_zi=ygxA*N13a}YoL?m0Z_lfjNGT%kP*(=FQSV-^ zA-GDQDz)^llU2RkBY7iv{B<`q${sNZ875dNvdNgjah>jhsku{y6dwED-dBX_{DNrf zXI?ECmMGE~yfj~K3>QjpwBJLCtXEX*A^INQ{XqYvU}wpMX{lV5nhQezuF)ZR*d?yp zqggS*5b9w#Io|FRef8eQ9BoNPz04)G8qp9^0_E>SAJZ0XUDw^`h^%uB3|DYJK?~4R zu64Cr`0&kxROj+mu(^m&xR3MppB$TWPLY( zb@@&Yg`hopit5_SD}fTW9z}a#`B*yzWbE#12z7mw_hW>xx7E`N|JHv0wX=vkZ!2wD z&AatR_IL~NYj+7MBZ;_*FD9)0_M*jH|8d4M87axMsFX5p)5%$ECu_bteNP-dBo@Or zyln*iRZEIgWDg8@HBHYe^Yj)@sUfP+a^mp}V-~X-+LvpnuXdY=sk*c_Wjxg|8;Tf{ z&^)TX^6~cE^XQpBdZf=;w$qMjhiAFpnhAv{FckQJ#E73c3@&qGXWeG)1?=<={7w2X z{WFDkIMBd+Ith-O{J1NZ=9*x2z&<^61G{2e27WyLLI5Fury)v(mN}hvc50?M5q?)t zLSJ1CLfqtF{X%@kz4|uehwqN?{CzC@_276xWIE6L#Ze)d7!8qgd1m|`al%;oE8sTQ zp{0(jdcvzO{-9k+}ApqXW}Vb1@Ox&IyUG)*d>0Z zU_H-V>lVh&$9}ymi@_jyjiL{i!_<*AhDZ9pPWwmddM&NG=PW&gZDPZxrP}N+KX(-Q zzF0Zssl)P7;(F)v%N~h7TKq-~DVJ_HFxY-vX|42#9_w7j*2})qCFTa zJ^xCyxXMgR6 z)0k>k3Oy>K*?(d41JybH@${tsHxo4oXT(GKd#-iVNn2DHS%t(i6*{v!#oKC-dr zINR~^I?SDU{#Ik6j(qOv7{5{IP~ewT$I&#i<-sNT-ePqN*PZ^-1;vxp&x8qlm)orQ zNjurzS*P%f3`1xTyM&|9xB6KBiMv_kDW^lL$8nC!P0wU^nH9COm5^6N{N{vA)>P-* z^!#bzno~B zH+9Ex_zvXXQguwQw$7;cWK)euU)Q#dS}QhFbM6-!hx}h`y>(dA;s5q6pdcLzOi&Pz zjxoAHx={o{YII6T*G5Rm=#)l6dLUf`Y3Y>i?i?}dncweyKfn8lzZo1m7+lx;eV(uL z{CsLzw{m zQe;!u7p4N2XeGHJVu;CyEL(+Dj&IGvW-9D1rhmK7-kMOszL|(Y2}tdpqJQC&TJM1W zPb($nluGextry4Y*>Qfp_x@%NiCD@q_}0dTxl)WtX%-f*?=XfxW;>55{@8mNNj-pN zMN>G%u0A`V@$WnftacHP^~*AQfioKYg1PQLidqldNPp{FAb2_qG!(f?Q?J=5U?_3` z8TtgpC*XSmxfa9+KCHVrm7ZK)&DL6Xi3kOmaFU%&xuHi0)hV!#8UTFOFLkEk=kjs@ zi0pb5^=TM*w@dB#KAsEapNp2wXP-VCL6B>MNBmzf#p@j6V~8WRqG;viPB$WZ9k23U zIQjfyD=jnUHdSSKS?V3Bu!X^3a$KQZ+-Mro1f>G|q#b-LU6O5)KMwfd*_+Hv$@yJu z_QN6}(DA4G9e*x;SwlF0!5e0&$`A(9lx(OBC&&(0oT;+Rp`;vsI<7E^S7QLC+Ot1h zN=~CteQCnb`bGz#OKL`c68;1v?+E=ySojEeFAC!yXtQ%W>fSQubCydnI`=vg{3}3h zvIFkM=ajHE9CW~s$vNBTKmj?{h>CWi1cBcz8X`b*J3C;F%sl#KpWSH5g-97z0g4w- zleI;_E#g~H$oA8Dh3cGf39g_Q3wfUwY)wwnTvwGIh%&Y!{Q=LE7Nbp`ci&`wWgjzA z_W|pY^3wZrZ9Q|+IC()Z_(m0z=MlqW*;RO5^v7X*P=R~b&qDB4t@B=0Peo<5ZSL8m z+Z%KIv&IUt?l+exv}cNBZkWnZyfsC;%PoIHSK@-Kv32a6K7IJ9IaA-$BP$UW0${jZ ziyXv~%G7y=eV)g|XsR$BbHef|m-LnJeWI$`sf?#_E&>U3tlB$)7#!b=IS<3ju@o>& z*2vR{7|s$fslt2By8pa27(u3Lbpixzy{eV{sNY9jVz}#gKAG3rJy&ZOtX2wb{c6tF za4wa|yOXlFIyCod+#8_#9XTY|NcXp$i+Vw$EO?f@pY7%qEOiFR&KYREQGj5e@AjXETQ3(Q$Z+8jjy*4{4B=bi9g_vjCCk(CG>8Ta>x z*`*~9)o$?bRGI8{>$p!NUo3<#xO(qO;+|IF=Z)2*&7OPNpHW38-^b=M7n+xK3uL^k zTaez{Qm*a&1NnN(%kNaKO#Jif9Ia<`lZ8@=|NxS+?8neI+|cIXs!=ayeIsXO38Xr0n5(+w*Y_y!Sd_G`tBcv>3)1s=XrIH` zXm&8a#kzZZMu!%flS=syZm;B6iOW2fPVm?TxAR>al#XcQH}^g$>dMwi*kAusxICi9 zw?qH7j37Vk{Rf~3toHH6^vf%j$ac`F$fPw8K9tQn{W{*Wto&yyI44at29M8)h_6jl zeE3~!%s;F6^#M)RSw8U!d*uM7QW{$C61;w5!>{r0(1{U^di_y@rzkIUm{>sycA}eH z=6(J%8SEqDuIxLr_#9lTqcnEwhFI2F2e>!6o`g=sn{Iaj!CM(Xq_+5$ieH}i`MPfr ze0R8A=Z+xSVZm7+ISPtIAk9njiD`wSk~h?}%x+s&Pjk@VdO$d{H?r zacSuBNC{&b>xV9qi3*sF^NiNN2;D0@4}WH`tHt*7n`~>&#a_VdC~oK*cW9|zv0=#h z)bfY}>$Kf@o8w)Qy)`c;f6XmP3&9RNcgl-{;5shOQr3U!qFHSr1Qybt6`y(g%j%CR zkn{VCZur~K%<8=|k96Ny=I2Y9;?$EYIw3S%TK*3GNiW7DTQTLJ(kPh1A|#h-ERG-O z+1FE^+5LMm9@r8iCZ?0X&S>YKj$%2QDSyFVI^V(kR@jMf!3nG)PF`3U4a9I$BV|YxfO_ne^JDMheq` zT4d&}8p0(RUXT+${@LprIhW$N0#U`d<(=XV-Lv_yXKw7t`G{9@oo^K0H2#R@6(Z^T z1iQpnc!|hVlGClT5Ot$jh6M$gXZN{zB}BByuoxrE4_q3K8hH~0dPa)_ zCF7#^NG@6hrg8FHct#$Zs)l9Su1rjk64t9WXp%vSYe#5Jn=~~KuKi1J4d@jcCN^CU z$u_n%>YLtUguR;1`e$EdT*NEvs$2u=Ilk8(3!Ah1v2*}lcVC_Ne1?y0f`2|}t_r{c zY($IqLt=yLYvaAyh#cX`mo)qVN$>@8tC~`s4(Xu^UTH}@u}>Kg)CMKH8+nYy;@8+| zxdEXe;~$Tz3-vQZ>a5pQ7>mO2ncm`n2fTac(YWH(CGob=QNW^b$rt@6+H_IBOKTr1Jz>@Fn4#Z?KjK2C&Dw?G9E2SxZD0ob0W0rF3FP7 zd!w#8HeF-U?~{`vWw_J~<(!#SJwhAzMm)n#ay$>o$PKV7j#_^uajC_3C#z~sF+CHT z@;)IK=?=_01ebXew7IM}q(!*g{i-s(H=(M~8xD5rHxD^$I7<1|j5C$fxH7$wY-nq^ zR<4-#w{%zejA})gE{6amOgj9#GUWfy8GNY4UT=xdqKNyL>9l){V+BOr0Mm*i2o}Y4 zk4_FWk*Qq}#@P8UBW@=unp8l`GD;)mUMKH=n;ZU^@`LhOpcegyZl#~-0}ZHn7V#14 zhl6T}K{Bi{Rqn&$1lF?W#j_ap6skAs&|aZ|yX1=1*aJK%g60;LHMT({&aaqeH%GdG$qNOOQAge$&V1S1&Jx+E57RWij>OaM8$#i&2SgcKuYX*sZ2{a{; z+2ieml%8f7d%REF`=+}d`k9PfyvpcLYUIvwhJj$y@19$~mTVu4c`gggbdF2$mQXmg7))`Mo! zJr>_K1gOVSJ7^pZXTy0vyGzHf{bnbDb7vsJqy z*?9AA`tHdz^mN@5*lhC9Y_k*;Xk2B=ArFyDChqlxiMnCo5f*z@#`i-J>*r-&f8Iun z;GzccT{1i4)rm|Anr2e$8)n{Vy4y{DO`RyG5^yw&-RiOzEi$APc=SGJok7mJFGk`$ z(qeZQcz`C>2+OB=Ow>B*v(zsEBQna5gEd1+%bUCcXr~^Fb!o7;F1}Ju z-3uQhef!~vFaXwp{8-xY)=e)%Pt>QW)@NX-N)O^bMB?r?#^Q4kb=R@+$;-`#m*M4E zCa_}_2VeAbxJ?3UzxMXKWxwrd8Cx;y*=Zq`C~!nPEM|VV4I(tFElWRQKe7QFCYCLI z1I)+~e|FM*%#}+6t!5#Iyap2dc2phnj7;T;u;lt=67N71R5QlS7M3R|dB^QN>>+t; zJ#H#!ENJ0$2px1c2?IH?A|Dy3d`C8qZRr7(c3QctRBtG$Dk5_hxyrYsqc0lgu~wLz zR*Ihv2j^TMZlaVV$;X1aH3A0q_Jz;Q!xgOO{b_6^LQZ;ape!Ua=Mo0RA8r0FI`kZ7 z8|k;il#i0?GgQN8isPA0VIy_t->f>%;wT#KuCmTf-?av}{uv%h_RjHol|*az&&sz$ zTtZ{+a&|Cw%4g?^+w9E8+O*M3Fth?8G|@d9-;8YbP3` zp}pZkE5i&p!(&TU$Grcy`f>~(^LOhZ$x$dWbU4KytH-ljb3vTb`7%<(zOnD#YMfuE z%$pPo&kpq@HKQrlN=Dodc_|IaKS#4+5^S_^!N22_96v{|Yz?Jd>X}x6%7%^xpy3Wu zGrW=W_gEdfN}|ugEhkkini)1mSJ59VPS~C|eG(5WKs3<$z?5@XznI=&!jsyZ@2kl> z4Zu^co&G#T9y6dkp@>`ET=IV`KaFg9Um%W|4IqCnt=FWC95_B$mqQHV<;MQ=1_AeyP=EqLTF7q7;xql=C5yr-Y2kQl;2Pz|Cc-S9;{RPXUT!2m=b(_ zi`%jNR-od&V_2yWnW^f-kbPLB**U6s=?9QpBb`5sY4CUR7m??2M;!T0r^?=T&u9yS zQ5HLc3yVLZPg&0>#ywvW`HU+0Tw7E-p6$jgw#?}td`0{jW;h53RJ{rVmC{C|MErWh zQ+KCQAj9t(;-W=PNOCHOwwe3d#9M<8}u|(aY-Rbk;wvi!On2F&p^@9`Gdn19* zO~f}vBUV$OBSa_In0hUuni|A}(M|TnFf1FK6XbbzkwImuiutM6g5e2>39Vk8qd(SE z3=p=R=GrjocHZ5u@MX9&+wk}J#7Vk#4&z91%w!8|V9pvjE2AbzFaEthrS~84mEl&|^Q~5L$gHfZQ zEY218a;+me8wI}m-^_>V>Dmb@n-JjHxB2gouR2qD53=Tt$&geMTn-R*EGWuPwE9P* zHd{8^FeP(+EVa4e^8EmB%K4!3XkP|uNbjB3ke<_SC(7;!ai@#Fu)k~i#?ngm+L_8{ zwl>3u<7-B=@$Kn}Rp@r|5+q`*k5z&;45Sd{XVHN4ddQ95$sKO3h8e2{y;6|Agj$ZotYykyy6x2uZQx*dArLBp(nb_Jca0a)#$k89Ouk-Q3Q^1vdK%)f@u1Wo%Gb_Stg$@#7Ks5wNHScTgw!!LgrXYaQL zdsH6S1rW00p~9g;iObP`k8gjaolRZ#ODV3%2{!aT>Iq=c9N>d}s(Pc!^eYX|(e79u zAfHnQ7%kz|=J+tCvp69SGs#W0+5+ZivprAoer1F^1**#Lr4`31!2*7&d zW^gx)M$V!obp0*cDkkBOyxU8OD-wDAS90c!lq?49%P5T{!KHbqzir*2>6FqRT37IHQD_1Vdak5RU!VgvYgznPJHGc7C5u-3-SS}#ja zuyA9VF$6_g%f*fOT>tqJU-HMaJyVgd;9qG!Gfs|fy@~@4xna=p0~*ux9@E9Q+fsjz ziW<2;9$n+Z*+zTUi-+NDR_w!9v72#xT$kcpod8-0A`B#fjD5u<$!_%o_VeTF;?2Pw zEkN^{SH6Oip2o{{I{`-Iegn}wuBga{yi^y+px%d_z7s5worvyArZt>-|!-WLkJ zrHFOHL54hPcXOSjBl-OA33w6A(LZjzzTBJ=%fP<#gwWIr{&e))>i1N*&+TaqF$$3Z z(#nyKj;h#f=fA!RlNgxJafDvO0#4wLwUR2L?o}%$V0|Wm{WNiRC&h;qqo@_fw;BmsoO=sd^W^!rZ3XXkUP zbLRgbGqc|66+O%&3faWp3BopNm40!pySCFRNC>56qqn-8AfZIQ*BZ@`ea)u-TU#N$bH=u0oY1kmQtGtv1W)nL3+!&pDcg8o^jVaLjbJ8GR-EDTTC$0nOG&eRf zwplXtL;@=5^$lAiU77uF>-x;1iaJojccj{PSIE~QjSi+RnSH}i zIpX(H{HY-X18rD@`ASqu!>$RcJAf4wrmAl8Kb^KOUxH}-yhp1LMrdTBbi?e%Bh)U+ zlne2m)Qk-iBp*K>0fon|nE*O|iQdI}HyjPTEwKdY$<@;gp!UFvAq}GK@kDh{yKxs? z_S;||AzJg0K-#S1FM_57pK#c5YB4}e*eJJ3%8Jpi=XNwiM~O}BD~_jU8nmJ(Oo?r z)rgKPNx_O%xry&)%>aCh#Adhxsfx;1+f_jSALFwQY#|_bdAvJrLbLYwTBcU#LpM0# zt#Qe1Tx2uaKWN-Lqy~srRN=`9OHYo5W$>9#GnZe*eXBRtRAFQ5LZdPMNgMSLo*gFU zg>vUtwo`=;fbg^6c_+kFy9B@nME@;WMfro$KGnv>{wG#q0$!E2Z8JvL2UkJAq5wb# zHbINAQ`=$hk0)O=!S7qY+tTl{0-LhK(b^1FGy*6EIOCSIOGh{yTTEUcg zq+sF2KeDC&8}9l?&0U3BOD!^AhyORo#d$P3UkMA{?m<7?#(CNv!0?n+ombaVA6Tt5 zBw1(RHV?l4Z;~rB<^KRce$AnF82-Zz>+xl~Gb;V@RGbz5t10}4^Izzz4o!-5<`O@P z%G}z{jO^dhYwk_X9%skv-F9q!c>B$IYgaB|1$92VV6>0QsF!|45pDnKR zBj9*q0)7+vx=M~KJRjlpx`7NQ?$)B=agk%U=3yv+VZ%~XsYfppuBr`A@ssb|#xW-l z&YU!hhs5I5Y&X$D5uUZvZI zRS?RNb7MGJ6(*{l+cV|D{G~>JxRx)TS#f6nak(Sbz0T%n$g$5A(c*i!yYRL`um%8l zF+w}y{fI(mCWl0wYI66cRKNxj&O_3vd_J*Of-?uhO->Kb@Lx%yEFoV=%tSi;LkYd! zz=C}^1yYs2`Q99p`_yc{`kLUD(uBz(TF|VdmKFvY*gl}t8B5eLAgya|Z8yX{`bkC~ z314!f`wQvxensYeavVVp>X!9vV&pYw;mjbfTl6&IZhwb0D3=N74!dO~PYVGFyUf2W zv0`Sjk!U&Hb+Dau@h1=@2WrL?L;;p}AFP}Nk+OyY7jBpgEcvqao4c;u6um2}KlgUf z>wd*e+r1gnjA6@J?fyh=nLeevNxI~(MPFWv4wJG)aHhgZIewL&=J=-2ncg(4Cg!=f zBcNNWnc{ON;Cysm!2_!-PdggJDcq|szYC3(P4F-^Nb0CJUS^7N`dJJm#Flq7k8bQr zcvj=Hwg&^&en(&5(05-=OkHP4_@#=R(>g3<)jyV}A6F9`!D?_ByK6Yi5ncWZQYlbP z5FU^0w00jm%9SE@nUBvQB=D;Ht*hB*7O9abrUY+oh+gzQdel<$;3smt@-y{)u09XV zaE%M|_y+eEz8w!~@YSNGv|s&|DPLm3(}v~U$SkPq-Og8B(r3^cOn1N@P6QgTZo~zbWqZosfFQ#Q_$+4|1}MW zOHdX|$Z~~SNT5B;VK+3qK|bEcy~zPJdGYmMI24ocwjVtZ3_uo?55B~MV?H{joBRHM zh}$!HGOXq6g45PCIEh(m|3LL>3pZ>9>-ClzJU2^OZFVdmIs@xsD*zFL&qAOyx;GL& zZo_4~&8UlW&hI4UIIuK0_eeVue)>iiyo*)5RLZ>bg-{O*w25CtWbTifKn+e(@v6S+ zoLa&F6=W_*$e`?YkTojR7wEa80HAGn#`fiUjX!OKPU_evSeke}=gG4W>T@-3tDT=< zXg;Qf7ICap1Ec>tF%>)zb{JNY!OFp>do1qd!ijYoK0L>zQX*J_ocVkb}Hr);|hsN8!nO zNt8ZFX9KRT^4u>5PrB7tF~1IcGsZq)v0V60KPvq~z!dgd!|~`G{O9ZyLC*#B3b*B9 zv}fex=idi-tC<;3XgOC_=EHsk^j#$ z>|N1s#Gy6bnzSb+B@{xvV)U&Eb~X~eYu9^n%%6=stLtWM&VS@Dgn^_qG2%u84)#V> z_d98ll7GdfQNd~K(>^dPs`%}yv{V3)GrgtS8vAg%yF}lsx2ZhUS;}eWc}rwH z?;zNrioy|zRXe;{oGP2|YB_F$U9Wtf2{)VeRD7uEPZEA+|EVw3cEz=i|6Gc!34iKI zmY3;f+EeK+*Y#iA5c8bMuXM>Xw{3s%l-1E{em*+8>>&xcM+){md^LO8*)8kXkxxnc zb?00fS9Z+kOM3Ne+7r@n#TVUT5#Pj?-UuPJ)o*wHDzw8hERLe*(spk? ziyucG&P_(hecQ+Yu7_kf6DK@`+qz4ZH`8{gob~EOx2!FL1zPd#YxK(ATrDJ+uJ_bIFnHp|ZU99x^%1WP~0dP^MC`^2~BgdbXkqEX5Z zHNPzKuF|`e4AV}YCTg{Gc65|DXkNn6m(OT`hD41Lnmu(_-FNGeX6GW@c0v>;@xPgIQ zqyrHTecqlfOOWF6+BCnVUf}A*Kl>xt2OsV>f_cAHcQ9)=b#&*dQmj)Jh<+xj-vf7R z^Gm^O9C7W{SZ)LYj4h1^cm9U9DB&0AL(d3xY)e~41KsEe#V`sWlx!w>uPSjw#l@(q zXN3Ohm&EeP=kg*w1DgqJwffd~%|#P0%Q0(@+`IMJ3jRrFehXxc9BQc*Cu7%WnS$Y9 zK!$DQPh~P>dVAf(w{n*p@Ya+bCPd@K-3m`)LeQV{N;Lqu+#<~pMtTIj#nrAQ$ZlpK`SUwy5ncvAC`h`ZUt~A$oLUt< zuBkU#O3zYK`}x>(;KI;R6OC9m%hsK4{yr`}#=4YC%!=$LlJYRh8M(V0y$$a$TuU(U zdxHbAyogKWGwoB=pXj0Gln&=MQ0Ws&!KtY6H|2lC^6}3>R`sPc?8QtIyEcoV^q+`t zzBF%;9j1Sz9FyTb0VtUHlrEc?lcTyGj~A?w`?bnZt8gabOe)v0Mj>?rL^{-&7-z4+ zbSr((-=P-kkj>g_QJWF}5xU)J!{^v#JBfR1(UH>al%ID-S@|WIMFWb7A>F<^6VGZD zHTTj_Nlxq77I-@YutIcyfMMjN?l zsb+V}(KVA& znw`l(`X6~8#^I8tr5{X&KK&!cLvKa~MuWC<0*O8UdR&R#?ZCWB8GO;qvqr+VX~_Ee zcXSF!InD8>C1D}sCOT_H(vH1*yoPn|LF{W?$BCI&YZZEtQ*ATeJ&{S+fd0?7t=sbP zKVaXKOVHVJ>|0B`-%UFz^jo6i5`Ix*NeLT+w`|(#KrOk9cBIojzlUR2N|=kaZ1=E7 zqs^&?;Hjy*`opWqXbWHZKR)zubJO zV(@2mqQQb;TO|>#kJQARqW`Ezc|xjjS9(_e=hEbN=p`p=ggBmA>o?a! zPeGXt-GbX@+CtX9?IB~04;5fz89Kt_I(C&<{2y}RFEl$^YZ7PT058XWD)A?C;Fn8C z&Rz%<2Zei{3)Wc8ptZbv&=gsT2CgWF^K}CLzJasg79~+m*@H1Y!yT6-J z3er6&44}ajzumgTVQKRY>Tm^mznaVaiFE+6E3U z3GM^xE$OxnsH-44tCGuqti)SQZ*)aG|6#*`nzJdQE-H=9W4wl z&#OJ{BA~N{?}AvfLQjP+YqIBEzi8nH=v&z64f{55#ap|VKx(iuunGEN3>;dCZUA^i z#&P+m%m?%%CQU+Tg>upiB^&~#PhNP5+T*pwL8+%8Mj06?97W8U64@5zFHa zj=0NYPe_st$C*JK0L_q=A50 zd-AnYBY-(rbAP*J!w5Z}qvDGpNNt@_YU-rXE+Ji*pqBMS2oVI;u<*IvKNB5X4?S@G z0!_yVd_QC=bw4Vd&%vly;gd*qJhE5ywIr=3` z6VaRU>UK}lBzn&s_weO>RL}i9-Uy1`z@Eg585^Xh^OW# zZAqN(W(pqchhzC@eqUu347G3Xj?Sa!0+`34B^K-t&6l{R*whq-H^t{n5zke!G}c4T zDk&&Rb%T61i)!zG9ALT29VnCu7;<<>$908(w#YyQ%O56pda|IT?o#j1mm>C+XNeab zb*IRt6E&4zcRv*mzrHWj8tgttzeJg$QhzwmX|E{MgZO3ME~n_sr+rM@wObo^l)=3s zVJG0jy)M$UHbO9C;;!F|OY7xK*8*RCeT3lg%ZNkF3^IVu z6Ed|xZS)AP4Uc#?TBueh{zE#c-W;DO3c1|oRzdZNxol1G$Re6kh{h^lbztKTQ<{h7 zu{dC5kt8~g$l@_9I2zIEaHrU(@xW@xm4-Ox-FeXImm`M!3%G=4dd)n?9k_jcfM~%z zC*785+P_)Id~!Ygj_a{_<@>gzSMdG|`I;4nJm^mWP^1Q&bj_vFEt5^c4VQfvGoGDBi&lNvW*Whn$ug~KB5#-Bi=kDEj5Ti61* z*XloRvwQis4XH8pwsDU(9`h4gh_w9}B_c`e)jUsbdwtZe=6L7>jw|;Znx@mrdxVIQ zcgSs^+Sw@m54Jm-KG^QO==4G2n%#twjS0n2d(WmIWdh6Z2 zC=s1T$m&v&=6B7BGPU@y+p9hA`@Ti?1n<13YE-N8C|v~P8IlI{yQDEur`eh=6^~N& zw!-qlWh(9H9sBFnbg`~(wZ*ptW&_TjPgJ3^jc0_z@@T3kSK^g^=*jqX*6$Vhpo@j@ zOIQiK`P*22Q(U=H&xy9{p!QCo+S;ruIkb|9XpD=I#4N>V>z=^?yq=a}>_;Bj&$d$1 z1GCm_P!gq_4PDG^{k4Fa7wdB!C(JxR-fz3+ZlF~Qn5(nX9Ck8oKHC6}9+1517~#ur`&Ix9Ni(;TsokPG$%w!S>#S)pC{- zJpEVr-2s-8IxQ97(Jdl&Q^;AJyQ}SMW)t(CLMkS|*6MJ;2O+RgswhNv;2_vR8#V|b z1X=z`7(H)mX)ygUZr=;gYq5z~xHNK-8-K)QvkzGbwV;ipY9A&K?SslK4c^TZTU8S` zNn)A8g6Bzs5pXeVKQH1v?X1{|gc5~GLnC}@^4c#ruxSHF_jJ^gLfi|?t136TUJOrC|gCpSbK%_Moem(vIP6`J33tAVLQ0b>Z%c? z|H|*Fp(xRykEmbLefQD0XY!!6rnI2mXZqCbUYfu*QclYbGksvHSnMo%S3S?TohAk` z#Tk?W5fqdiJ&$j>l7f&1^-d!543^(M!Bwqh+c#E*gP&DEO*?pcy6}sXNz9se(+=X( z1THZI!c00+^2YpVeB3?u7s#%JowictTv_2CqVIWWB|8DFsJDO=*4zIw zoRXQ{^p)ir_5MZ9F+zMaTcu*1J^zDBuvQK*{||@>{|92Wy{yR8;TjQIiDr<3UF*xh z0QHDslj!)xK>L_o%qU$R`GhU>hA`L>wFQRckWEsJ4!7P@t@p+BNz6*Um`;o84X}tiQ<{!k`*TMHH!K-&!JU8=tJ-LWJ4&L(h>wM8 zlDAjr;d`WQdZ+#RFf>3Gs2rM{o8(J}qJ^F?PTEd>hg=_cOlYGnzs)3SngO~!cRu{= z*+`_W%e|Dm=c5-ll#n0sLSA=C<+hoB`#}utOnF={he2nT)NZ5`ZcnyBl;$6log_&2cH&yI1uj6|DfxWz9nfzt9!+hjU`roMVC&$Z<9a< ze+RyodiS*66OCLrj#PB+zhKccwhVZlg%@da9Kz=da8*6I!C_-2Qqj(3~_%c?p0(^)d>7hel~M~ zqOm3Ngyyi`-g$8xt={@Q!cakEvO07fsz1{AmlaGWH$S>RTAP9UvxJt0>fd;5&2W zYxV74{QJ}KMxmqW|9PQG_>xfwNY&$F`}g^~9A8l7GS>btLcOt{V4o1XySad~lk*$HK|?^tj#(-=D;Q#+8}!-{>&5>c9p~XC;jxS3l}i`{ z^uIxrvrL6WoSii~6v*ra9WQunv@d@#_yu#ig!l3O4DU}FxTr}^I5f)p-p1z6jg7dD z^}pYD9xOZ<*r_Hwq8!}<&Io>p~v6&TI-q{)ATN1W((%NUC1oh-N+1^j@tTTBXw7|{Wr@Uab3HR zNz5n6l^z0QfggXSy^#B2;u|YQhFE|5TSfg$if1etWpohD%SJ>*!)UGu<($9dIN8`@ zR>-@3|G{!}fRX)cu+;#Lp6^w%xW1*xlTKpyqhB_2C5S^qSNhL@XZWTBm(aie)lpi! zI+u{eTG^t$t+C!}DXn!MQEUI>kSu#{gwGb8wktQRq7!F;xv?Iy!dVHi+n8dgub z?%S`FSATQZGXt8XH&q4SFI|*vleYZ^k^o+C;tp;ojG>r37i13Cq1+ndo>E&b0rqXhnJIn%zTl z!%>c%$%yOrHmH7L_G!?MmPNvtew+^2qxV+Rl%MmH*XemOBKr-6oDVvlt|Tq3XA zte{M<7V9#Lr(SN$G236WC!wF_-XTXyOEHV|o7G5ZX`>Rf8L+duo^W=0aQT^*H6t;^ zM;*GsHiWHy*j9*%t^oWsZ&{DpdYiSdS92seQA64H`}tgiXASf+h`7i*B8saZdW}lh z#MrUFmv}HCGxFlIZ-=~)B}oTB5`vhb3zDd_TKkB;R-#cFmoHR-wuK))$J9OIQaD81 zee5@u_j^Gz7BmW3>8s&$5^K_M#R0*b5!p!>bZ;=V>Ne>fyN^d3AY6v$CJJ4Eg1mXZ z7SjKS^ddkq-j3e%f>)IROY>XPciDIY&_C-SsrL;%xvk2X5I_}U$jZc+RgY!?HLvVO z&$&-@x>Wy^Jy{YrchgrRF9)uL=WiD^5JHc!GC#Ug-_K^XqP9*dx5CT*-KtTDITPP& zgaRgYq?^Mc_nW$j%P5U3VXQjagYC6pVkH;vLMaKf9PXjo3z$bpuL*E5ym8mAf*e*+ zu*LF9K7TlioHwSgs4SnkBVrIL^x7?BKJ59Sz2}Rb)`a85=UPu^9c*!*3*dg@wa8P8 zurh``YIu6qJrSL`2{Kua{s6sY9W0xch6UJxY@%tWmlwXIVGCbwG)H8n2`t8E%^;M~ zfFk6+b5pq9$EWy0%O)-BI8oPec$nfAmJBGZIgD}{S)V#$VpzGVXfQz~>IV&|bx@nmX209dRKYdjdW|Qrw$EYez zi~n~Q06)cN#X*)J$Y~{H_EC;YRmjLpsXG5_Y<{Bn;g_wt=d1b9B*Bj@LI*iQC25Oi z?;Tk35S?gr>1!QxcG7CYJDKy@+Lin zZ0x?P#EF=co$$s#M)ZsrYJNYxp+kGWPUvx!(pOky6;{x~k?+GpnBi)jsTcxl%20O@ ze%i2(I~E{e{)LVx&GGl`(@h0#$wrv4Ny@Z-|&2EG%KYqKckaMd`5Bo&jPH25Za z9)gvqhk7PK*6*qEU*GMBHpa5>d{vuzb@^7*$FRcj;;<~ulm6}TlidbF;CuKA%zMS4 z;=2F3%wM4{MylEuj!(tlT?+L|Tgbdd+D@h0>Tn&+-Rt{0&-$#({zDGjMK>j%$#X?7 zKgp(~<=T=N5%`P$uErsPe2BOs{dgZb1z`Y&5D=YtJU@&t`+!=p zXn7l$`Q;w3j$j0&zRay(!@DD=ewM=zZMdI1`YARy7Y4czLXEH8iyT(wN!}xq#YIC7 zLqP#}v3qDSWaT{JckK2g>z3DKkt9RnR~#HrH>=sJq{7A5u8IzQxx4u-w>*1o8DN7W z(PL7-tLv?D8Mn~Xo8%zC+K}U%Pt4x(m|?NzXV2fEmav%L-SnSJNm-xwrlnCZdN=i+ zN|%PossPQ*3FO5_h{up$K(NuX^-G*AU**YE4|<9EFp8AnBW5oNd7@9oLe&`M?bG7X zFO;Wju+hz2mbHmd=g113pbjA+_N96^RUWUJ%RW1UD!lmwek7Z6tk{{|xjxU5YL$QK zZ!TO@Tose)aSyE@CAJ&PDxZ2W2?meI0YxFPS_Oc^-qgwN0B}jSky>2h7P_8wir9!& zER>08J9zIc1Wfb!X-}9MDt$fZrpBc}H*_3Ac znKK@$rYR?z=q4-Okmr_u>S&n?doyd+E?{f2BXJj_=19=eG58DP3;s$w+3L7gO^bQu zGV;G$Mux`*qRigHK%-&x&Q0BJg@z1(Kv~@QO|Bo|RTQ%|o)Vm?d~sh))UTcx;rKbV zmeWqCEGUM7=A%eS-7X_xojex0U}cv-jMDTR5?6n=CMwK`lOd;%cAUFlxF&9lX7?_3 z*2kSian+_qKe3u>BkC6coFz-!N?cPxz8ZJ!fjbG}c9xXlys;BC-&4Io7E$~e=*0Tw ziWntZ)R2pbuo&fTuUnMt667Js;%hxQ3)DL$+^Sje5(7Pvd09^D>eV<`aXRGrcruh)atAbr#r33w*g2OEkis-Y$*{l8g z8g0fMHE`T~6(t;%5Rf2f^X zopZXo1l^A*d4obMI#k?9`W-3B2g5rK@MR#9On=kAQ`n&?_;j-|^sq%V6xp@8=&|&( z<>sO(yRU%@8ZHn-sO7Kz`ixccmci)oEP3=+^8@j}5HPlO|M;uA#XzhSRaZQm4YZ7- zK7da8xRobw%tsO1ha$K07C41(T8|$D>AQ~?PT4(iXEl9ri}ygYM<0=PV>q->`8f}t zT>XC}v3L1gc?rM#=#}M@+k1+(V^NQrl{Ln-ZfD!q-P~DGcOj$b5UT96rK)s8^L@`X zwP7A~-Q8x-Su2riLDR)CIy$$h?UYOE;1G6`04xNd8>ccc^T<9|kDAG*=gqUG8W->XnQn0e*zW5pLF0}+ns zB$@%(sOlE>;~iYjtIy|hA%Sym&=r@c2q6Xul;|{B7XzrIob6uh&um|R3U?KLXK;J< zhW~+&pz8}cJG(8T`}G9QQhATK>8!Gu49~!RH^41F~?7*-qL%HODTo#d@?LrL?? zkbtCHCh@%1$KKlC8wU-)RAruGec!9q|1|=3vdFwCf0-1K%Iy{N`_g3%jc2jC%p_(! zOOZdJ4-O*~2CVFLpYL#bN%YLlLXXYxO|~?$Q9A*VR0Yv5jotMAlx#<2`jMJRb(SC^ zZ({>DAiY4bpM6Oj*k++=J0hjQ@Cpivz}Vep^23@661$vVl@!w>>N6`%H~pv4-tM*H zP&pmnqqz!ix&93;^hTj)c05=oNkYw9)=7sduUo7kD4SLkq}~+nr~54p`|azx!_F7= z11R7R)UFEeABmV-^1HE5I4hqsVew-LRU#tz@gDrv1`?)YY`N~tq+@@@-bU^GsG#LCUKj_LsCFfr9Foa ziwm^2`Sge^HeyORBc5a!G9#e88+p`wvL@9kstm{Yz1w9EZ`gJDp%NjVBq}*t2ObD% z(wMMYsT6P-Kd3XWA;@uA^D4n+ur|fqan)1-GA-$jqesQ7(KWBl8w1@Z!@-_3gP3N{ z@@?zl4o3*A`{CeWSAy}Zp(&3g(BH^%Xp5ibnMONzxnh?HSFV;o=PA{Z=k?u_HDdv` z@yIQ2Q*pu4_cQ#_U(0DtVY79f{qDn(%#k;5IQW_E|3>`hEKY>T5tBt^qI;1*NoK9T z%3JG=Jx`VX13$S(4+j?$$Euiq*FfhUUH+4UBF(ZYyOG;w36r@o;RXj@f64qS)1IZ^ z4>%JfG2@!}r}~j_{kN>}V4X*HONF*w$Mgfu|8Bt{DnI|7F(lkP{u{Gu@ul(q#oC+4 zL%IL&;}%$@jbcYROkep zv@U&jkGSum#};d`tUmPBMCjDK#Q7YvLMraiXb``XLFul^NYinKF;qDva4cD;9x|Uh z!F6#>C?{F9!hBBKKXkT<4R~5h`CP%qr)<^Nyv$Oc0b`l|bLFhHFF+yXj$p)qvnWHHMXYdTQV1Si;y7LYmv~*xKvGhDKD1#-0Q18W}$q@DAdY0g9on`>Lz1Uk`$Xf z=r(A5dY6?cA_^`Hsa81G`GN6Du);ZJ>s;=Wr&+S2^&UvV&O9NbQ=Z*#vNyKZD9~T{ zTnXQ~!vA5#Jm{rrI9N?)Ye`bIY-k{#?8^vnLaB{WViSGLnx?J9>-;14o+q6rJSLsb za=`*m_3CNYXCNvKP#Q$QAr9bxAxESU%8hh%nk}j{?M3w#O5UG_{hS4#fb`S&N;N_{ zvz4;l*oqn#jcVCvR{-Xh(A3NCbL$o$w!Q;&c9v$Xi*@fO9*c`A)p;@|5GbhR4ghb$ zdWc12I$zu>sUtO(G@m@KInJ6X4Q8@#Ib|@Kz9LFa8})SZQdBh6@vYad(_$OSli4@> zZNO5j?F)_3JQ0kqR#g+UFWi4`wLTI$aFv*Eouvtc^f`T%#2B?>bB};7`7UjzcUrMX zq{%v z$h(G{sm;Vt23H=v3w}3@Xg`%!k?wVdxwrF(IP*~8**9}i(K68jF+$0oXQ-KMlc2ikRI=A zX^{_3U?->0(U>Pbb@WiFywYpumlyUceZJE$mVeN&buESATnu{R)qPKJL@_b^3sJ=( zoc_SpkAVQQkIr?|h7zH*Gn(D37#9g=93a}NB$?Fd36;X68gP$#RFNw1Y!>@0quW-i z*WmXi56{B8U_;N7H?Mu6aY`3Ec#&_hF5Q`6{Q#{d*1or!d!hPuiQsbYO-+!$&)ldV za+q=WbLQrheP)`|eKO!7^@?wllc&s!N3U5g5_tOFy5Jj%IYvi(5s)HDwZtaQcd)Oh zHi@coE78y^w@zu>+%$4Hc|uBREv~}O=gsP3Ye_IA95!?LVOeH4a5~ub7?zdg&Ont_eS6?^#1?F4Q1xw&`V9i2M=_#P>!Lbm;{$-z# zurdo4GgEH*K+WSe7cDT9I{gH^A3Z#1Cn}sr%KX0&x-!=wuRgqam!{wlI^R`tti%}E z^_5DBJ=2*Nd#E9f#_O8>Ro+T+pSS0CBzU!6K?I8QG?CQVFG@Y`?|3i}sDr#?@!w|c ztqJhU_Y=t87N)BqqZJGT9t$v;(o?>>);_pe@r5)EfTRwjVLIp&qXr(>?P&ruGBn_yB!-+gPzy;-jOZ~yZQyJ z$ZzgF&g8K-F2JuCHFsaAb4mOvFIiW`c@vf@iU|SQCmC|coDezKgG^dxeV=p5O`a6r zZpgx?=yI%MCBM9qqYyw?Oat-^u}|}Kx^}$EnSxy7+r9=WTfrlSNXsVab3#iG>7^Hr zTS(S1th?@JFfzAho@%%ogTZL@2%Wh|V8 zb@CNnp9Rq^HPT*tZ48|5PFvO8g&mB`y&#louP|HGbd0`-d~tIguQIiv0j4~^!SHACI^cPKESaPdroe#CFcu%f8MRLBn z_TWt1)1*{V76mjBaCz5XbQqY@etOFT7qdG(RVWzxE^EN^M5uN;ZHQ20uag#stM5gb z?K$HIoDV;L9eULU&q1t1SFYi_^N!2@%mw z)uT{D0g8`t`CqcU#%fagzO@D{p{_YS?C4Iru)!jwzzxqOu`qh`IQh$qwSGr~j@!2_ zR;#+5B8Lw)&UQBt&$7^GOV8U?g=lFP-7ir#D-`1AjL3QvB7Y9KV|`0f&FS>)l&Cc- zQFjP^%j!z_A%26N`qjAX(6wm9ZkMF0PH=*n8%9Iz^P8a?v$s5=hKnXPR~C2!Qa27} zH^ZcFCwv&smy>zVflqiJ;U{}}&twTEkv(9UJzE#OxgM2B-)|8*>B&@`RqiB}T7NI% z0!F-N&*#R-lI*OfFyeZ?I-x6K5FMs2I<^42BzTP?;pa0!wN74)5I(MY`}vA?l?}f+ z3;DS7TPROPH&x8Y&PVLyXb5E0snqwDnG`++lfo-mVGnJ$f<(AW6|WUt%%IWLz@@Z` z!bprvxtw0uZ_)d&D{`3=@pij-9uO8M1ZYWApFq%jKOEBLA}U`>7n|m%M&Mi zY9zZqQ7wnMt~#bHvs8MSlw@kpB>MRBYQYJ0d@N{bMI3k)g=rB7=)=o9_K$1QB!NeY z@C~wxJ!W!P8N>6`^Wb&Fqf&T%!+$PAJ?-TB$7-p-#&q`0YJ~mW+jOzmXG7^#kI(2$ zd4!HiPO8^g1CIr7OH*R_^dRMnRdTK8jcw?(3GI4&U|8CgmRGv=`ApNUM~`x*kA;#_ zrxyU{)}t6b8os?yc=z!z(}vMB==8IL^oJ4@0TFIQkKf)W605j%iuuiR2}(r@B}EFw z!>F@2CmT;h;2%>8ep*oR8ejan#Hd7Y%p%uW0em?MucZ?G1BC}o=@opM%Xg3rA4kIA z%b+N`c~#8^nAFyk;TLGHmqi~ijWuAz0ehIxs=CF98`v6kFsK=&KfF6lIQYD+RYhJ{ zC)|rSQsJ@{OE9H&s6BFj9{K)ox66GR9C~Lk#SCXV*w77D^h2_Nku8TQxuNIqy~emsy{&W) zXX~-$rlJofq3`U+TR!w|IdmO^13fOD`&AOH0wi1UfOsvh>+HU3)9eBk1p(K zozW=}bI^}HqmvQs^!9M~KC)}mj%}7M6@GV-ItSgfN3FD@^ zw_mSZ?R($t5pT78^Vbhfu^9MOfxdSyC8u(nd7XF4&>vJw^je}m6TjN&H5Ik)tGhc> zXJ=h-CTx-PQDJ*XWW>f72AlU>b^6x|Kh<1*9>EEyt8W$5IOVf>MVZz*6(BIw0R<|F zTR{{pGwrb}7$)=VDy6`{A!_oZ=;P!b-R;bo%H_ii)oHHXSGV*sKid~S-KMEcc+cD@ zZB1|wqCSjhlL>T>>+GX3M2j!)!{28f%p~d7i8s8Q%9)u|a9$}kzTn}z5vvf*AAd$C zz_oaIr@ROG>|m|OPIF>%by>W==%$JUiP2WXio1#9fQJ3lwK9tsBarojZ&J@9G;gKB zP*=`#3(p!U1s1FLcwMOXr<>}qd5)QVJ}r1PO~Ijg=!wPp8yeJOzW|c;t%Ikm1E<1v zbXz{m9M0!fBf8nL`dYrC4nKv`74C&c?u&G!%8q;ql0(+0R=?q`D+;%Szvt+=<2>-- z0zB_f{hqVL$~!85zI4acD89Sj3}6nNYvY9Ea!yxK#1GpxrDPz(XKaL2eab8f(<)Fz zlU-Jhdu?bU8U9Mbv5aK!PXAWB)jrc^;$gw|@z|Lbs|69*-rU~V)8I)`?=1rOz$dH7 z5ecWWa)T@9TZFDQDCMMe#QRT&W&1XK zOwK7L@ExOzLH7=xp_9Vc>fjk6P7&Z*IrIPx=UY$vhC%1g=>_3^k}5>KPda>?tiMUt zy!f2fZ>3p#K)o#}nxa=X)G&Foa!5C*jEc!4o1yHd@1m_5L)vNV z)AE=TQ8PQN38@@GbuhUQPCf;(1BJ{v;E6DZ91q8(q-cyc<013fx2~KHhbcal21eUf zu?x;DMInyV^^7yR9}M-ZBMKuQKGgbjrYY$S2KC~M_fm<>&Mk%^8>HR7*OYFMuOQC{ z<1AO7w{!*epDv7qbvB%^D>JTH^<+eJenBqv>!MS0uPTJlgqE#&Y0orX+;py=VKpw9 z;M)E+wdAm5L1iQ`Vo4?3>^t=g6{0I1W=K`l(hGZFoT@rH@SJ!nF+NgJTUA%h>K$7c zr@%<1Axm_2SRqPa?W)C;shvYeQs$Zra2FVeKXItTP*U3>e9GiX^upJm9*!F}gPL=R z+qvA|7B3$2>h^*O9j>xPnSSo%2(0_+y_~PA!lCvM>Xq$x$D^-oF=I$zZfz`2aw=V8 z*)(t;^{Sfvz_R#`u7)n7;|@f3D7zc@&f|iV4-_w8A0~I^*J1|wGOX7sCBx2}=WbvM zmx~o%q;WcF8)f!Y(}g(??Veq#a#T*|lN|{agqGAKXdPT(_wIf0Rv;jB%{s81exSs# zaE{N(!N|0xoMk$#O3qh28vFgVOBT;DOC}S2sGLITFo(%-)4Ho8)2cxWrB=^0zJ8AH zBe~AraD~RM{vF$)NJn;%t8uYTEV^^-)Ep^$%iEHSvV!R_i`-CyPe$nJ;pJ7#0~O^= zE64N*($GT-cc0H63Zc1?K0Vg=Y>{)5zRw5NnsSF8tGs(~JE!+XTK2O$%bx2M-})yY z&#omUUJaW>f`n+UUH|2udxUzORAoGb>CAOESsL-gq^)7wtoA zTtu?jlI4eZ28++x>NhATfGhZMrg>UA&TT2}^=Widb1ksuRjy)ITeuGK^F#ABtJ4zA z#fy|#1NzWmoRfPx-c15m2aH&@-9OhkJr2yp%Z`80c#C1#XH#Cp-g!@dIMW?ePvVU@ zhARjV%ua!tTHb>GBXez}HgZ&`)J*$zwQKhq_w@lzzP@~OhB#&m)p0RKzutK0lS0u> z{XLt$0(pN#HI?fPCl~)5y<8D`1UJL#?F^wQ8(80p0_%LY6=DP9MZVdg%y^0B3m13! z$q;%4g8IvmE*zfoL=MRqs!P3^36L#Fw+y+glltEHE;>f-KnnC{kCnsYvgm0jyz=rcyuevWf$Dtp#!k@34kwJH_}v&)^sSoanQRq~N3F)$ zY>p?HlB6G=Es%5Ki|wGpA33?(&ZAMROK$=f*>by^;CcVHWs)J^d?GW$*D&<`ZB&Ug zG#S*Z?8I8H6zb=wm+1d=1#*_ln&+$fY~^Ivnq?%T6NRjLr;G^y)|+{=+xs{FZSEup z_}E-#Uc{bWn-_sP9cqv}N{LaBf1Y5b&k6Oj%^I7DvxN%!b~%rwM@#i!$69Wab>2i# zEP$J%pTyDVGq8l*9nTsJ@?41E>!|y@u(Q#D`vmVjmvkd;&6*^CW8wLnYdKG^58UyQ z^IoCjVxIM<26u{nNppTxaZe!^Z0gDaS^G-V%9w@ff?7K6xf?IP+>}V049`n_D*D#d zORRiCpoTODfUi?%Ps`+chfCM};dUK8tEA}2chZV!X&b<$AH3cfWd*Yi)l*Wo_>J6` zDQZ0swhDIZ?g0r0xRFg7<+z>AA}lf?S#7{xV&X&Ad6pkoY;7q_b89WIq+1k$U7Lsk zM0h>n)XSR=FVl^>fIomngKyD|VoaVFJ$KdyUZb|a&YJ~x-Wss;EE+G$*xNj>pdK!w z_G62R*pQ4u$oTs}e#S z^MoZi#g+`w&?NpbyQgknqQA2H3b#TRu)Cb9A~fs69Y$L3y)LVLsAG><0781dz$y~X zSwf%N01_x;J~N!|XFH_ATHR>SqOb6AeZfyg^S$h~07Bsmh75=){iqNR{RAG@CCSZ) zxm>&XyAqfDo1^!%cU*v(guJTQO05yqW>hOUAQX9N79Y4W^oD>0QtG&;b~dJ?`CJ~7 z%S0TShZiv&gsl*0YZ4&A#CX8n>~yH>K%5H_4$Cv98fE!5^b+kL94jYrwfLJ=J}Gajjt(o+Ja)giW?xV!X$YaL#gb{K%p3z%x4gK^J&mUlOpt z+M55$qyQq`PaK?UtT`hylFMg)DU47=+&DX%^G7Wd|KGLHmXZGZyuk9nzfFv@tkeFO z+lMC}Ge#upxoPY1%OiZTM~kg%>ZXvP62lySdA-`W2WU<(Z0a)hH_BMtR__Gu=&36M z|D&+Z23`vg2*`_|B?e!9IUqTOtue=}h0bOO^nY+N@n^wtCH<$5gC2W_D}n zTV$qFrgJ84`hZm%;zxMT%(%pM)=>-i{RTxN4=)q$7u0_MM)$dw|3nDL-=&cTMZ=Dc6GXZ=Vws2ac zM6gGwY!Y^Lz(47P@6CFHu^7gOfE3W_9${D|H!vwpCm{6NWmF|OH-U@5wDQ!L>eICk zdbmp&xZm;7ziVDaE67EzP)sg|o-`xtv8~v9>eTIU5bQeC)N;ZsUAdW{UvsqOcvHn?Z=pl@y;2A@XkF~Z(i%z0zZYB}AqZ^+nekFYzD<0bPIf6fm>iqPc; zW9SL;q-g9q$miBJEY|iuFpi~inR%2w7pU|}Y@?3QSHV!#;VD`hc)cdha9-IjTYuik za3Y#}Jb0gb2$`Hj5};tef2(7z1Q8p>+WHxjpwq$Z`uO5#RPY@O?Pm)j;(M#IzLY7? z9!ND+2-%GJDVe(i#Wp}`&2>i1r&X{&^0lDRCM;;s}BkM*Kg z2$_Zjs-L8#z)XU?w#h$-CTI=bgCi~{00g^X>Zmz4h3ya#EMD@WfuN9Pe_I>JR~6J< zZ^@0a0zoPpF-=;#?i#f$4mUZ4m-E*pUn^iiCVHA~+|^XA6Xa;*Fc-O#m-d#F9!~zO zq1(!S17pRqBlr$ff9!LEw`uPut4XN=C-{XsM6ilFSCk9JWdiTlw!<<>2^F7*9PHJ1 z>fZ2b+U(CV*;4U%bB2qkmca$?Cqff%(gQ-D>~ATBD2! zFcz{D|1Xe*f$Q4zw{dhTl|_NbIUL2ND*aVeYUR1Hw^;KAKZ@Hf!1K`CA_sKn!aT@0 z`E=Z)43GOQih6LQfkcxaaPD2|!iGmRjbZso^-58ZlA;1X_*d?!JEtK-j*M7=RQ&ob(U8?DemJgGs4TBqccy z7DSM)d*;Tb6?vUHy2AgyNjh$;%aRQMp;E@c>;cJ5B^j@e`{0q9CrVRg`4H3>lW zju0wQWZ$l)%X{1vEtK!Fy{av`$*WTwByW1?f?c}XeaX?+S0zd^3dD|9c9tVKvyntN zop1o*06zLRcp4RIwV9>T5R^ zI+C87HX+z%;>#I6B5;+Lbv=adk+%p>!s#vta(!1vPh(_(r!Fwg06)({{_hg!@A9+6 zas651R<$FkTbM1>8iRecC{nhRaV4%vL@D~+N~s$2?$eLl1qRfZc@gnqXA=8QVrS=C zZZp*2lMa7hK2jC*6^TZ&78gL~@2yZ0pBjx~w~nX@FmqTMe2P8#UcoJBB7gO2Yk9z7 zrx8Bpqs7}3pRKAukq`|3VfAXjS)X=y9ci=OESD=1WIUOd<2gIJ7 zpO_i?AH&DW0ARBJ$fYV!hVa052;SW#MJmF|+#eqnR168HtCfg2C3+j?3SsaU?onU1 zQf5>aD2#O+{#?FY!|-Rzr3tiL+uZ+u15@22!_jynB~5@(7BbelYXoAHz1S^~9~8EBf_^3N1GY{xX;rmf9o$6z@&&^KKH za}Cv>qFna#KY|Ln)D71&Fg?_XC$83YE0l)Zwj-xr&|s@iiRI@Tg(rSe+6{R};U3wo zK;*EqL;)8VV~HVq16p&x>EQaKbCQt-Iw#xbV!t}4-=L=xN?vPmV|ONs`)LjmcV8_4 zYch)_f)B)Dg$rx(MtQEtGddry7V?M7o3Ixaa#}V-0bnraKro8KJ_g8GMzLjOJaGHx z|M}y3foMfm_y}#5qeonEmD379R)9zP=WMUv7xRoyb*c|K>XYPu^hq23|GQ7h(oX~W zm-gcc4sQvCHw-~9Yk`e(??=hQ^^ZU1=B$g6FDKC7EBF?E88WLsCja6XzQ&3y+5D=N za7OQfCFtV|XfjRj4Fs*weP_zPTt>F{#m*8kJjTkWN)Ej@b}oLd|Bbdm1x@I@KEY%V z<4C(@!GPcj~&~i_@{4}-Td$ckfy0O6D!8Hfx#8{ z0Lu@M`v&tfcPLdmHU9Qr=8RptjZ^YgaH>taL8_Wi`p^pnk8jU}e)}ayEt`Z9(UpRA z@A~wPq-aC{n6aNAhTL;RPNs+{_x@rk^t zvN-kK3**4o7x%mc8zv3KiD?4LilyGyK$2AWsylscS=ya$XVFr02nBE$$WH9RWhU%=r%7JAVLg24P;B4`K;c4>$`cjINK9?A|xwfb_49n$y?yxHm5Yg8G z$)4!W4~;U6hI!Pd3Y;&ght51&1E=J~!)u+Dt>^^}8wrtOxx)qi{>4w)dm$&B2FU9? zQDxEjy%0$Z{!IEe%SbH*GW*HfFSLABXLQ6w4t^&mKMLXTn|R=E$=w+&jkRrEAo2WN z0EB=Q^`+AB_{w?j3#{TntJ06!CuSv+A0Rd2x#R&^OrP+E0}2S;2}p!CmDtcK(~$%f zJLWsqE|72**lA=&q5+?*)RQAafsvjCs=&za!X=oKB%t)mh1PTMqL`s5djIs#lLXN0 z^6FBju(C_X$}w6`k7d&JT#V5u4$|UriX2Ja5t8qf7xmf!w60`eM$m^1hyev%2sdo> zRl{9P=>q-vcaBdptY=adxBTg<6=Cz;3`@;+Rjgk+R10dYy*nToT+iO#lbQPZER(K& zrud4Z^WfM9fCRu-R37t5r7>I*VW*5)?zqyEc;0KVtx-vAZ?a;Ga`X6E?mos|;B|pu z5iI5$VuzsszCZ&!RDx@w3Jw$JEThv?l1MgQz~*{4WVLBYdima?NMchBvFOB@!h3;b zfzT0$Hu+^_=T7hdaaM3@0kdY_km2EI~Y}_RJ?=%w}FxY~v#h68qZ8GS{Zi z9|D!0AKP7cZvnL$YgT1J!;u?qjkY+DNH<==>QP^?c%mgT-WFE~fLMU86ghL{b@DEw zSbH43$2L%IF18U^F3`FT~Ex$T|pw>&LtS!nN18DZ%A7{W65{3drh^C`klrZf-gQa)_E; z0&8VwD~9;ZC_#&tHe?>um{q)h5_?AGH=ogIo&RkZT!?O8aFLOZoy6YfhS@~KPXmzd z9)vGj(q9FKS&4mYA4~o~-lNiITYBf35w0C<8*HcE#Dn%zcLAT%v0vvVmT*#5@N=-+ z#pN7DD2|y#;ms%EL`hApzw6$q^RAQ^TxObMrJB3d8)%xb`k=>h;Zqn|gR)SjrR5^T zMpM*OQ`htse#I0P5}HmyHZPueKi#!Tx*!Y6=`ap}hXOPZ@+d8s34{FX^i?xMGe)y^ zx53wB1*fd}=5hC&SlTyCXO3IL%;DnS#K_6l76>SZ=U$Z^MCm0Wzo@b9&PdI!ZvdUY@=I-(WuN z_!Z(5fX}^$c*+VE<@)MuxebblmUP4oHYdIY%4`(w(ma%~KrYh~mu-78132Pd;JLu%FW@57(D;HvR)>Sb7# z7wB8c&JinQ@G^TQEymL=D-wp@jx99iZ#uZFnZ$;`0=UY~C?07PFixL>)Q0 zFfC0!$+OV!svI^Ti8|6MsU(ibSJ%{aA;a&K5X*^NDVZql`i#9Hy{bd&To%<)0Fqjh zV9SD8<-cT(*6;W95m+1L7(~=}Yg*md9h2s3hR;QoWe5yGj5VN<&fsDy@jPd>?HbMK zwDk{Dh$O8ihSQqY4_%Eq2whU> z>>#RT6CY0aM@h>&`>=yv4JVe%JULJPd%dWBF6pzAbx`k0UmF{}im!7wxfrMKMB)9> z`yAJ6+n2nVj1^;+m)DMMs-EFaApN{9b#(g-bq$|!>|G9;Sn2y4cgG_#eMSZ!z(Oq& zDavR1@}@W-1BC+RA-atr;DFRw@EtMOu=0phWXs=&Sgl@%X6UgUsf%|P8UTUT^M-?b z6;|g11X{ph`CFhBDsH^ZXijWQ${>StyVzXzaLu$zD9u>LO{)Z{-vtsLZ{pE>i{x5t z={&eI%$-#o%AuFbRy~1!Xg4~e;t^nP-h;}l3f;?XagKjyV!7)u|Dq~14P!AsDovL< zNSQ8lVFbZUV_uhkwPQ91QUoX4{D9*T9`Vh)%=%??j#;Stp%z|+VrDZ*Pxm4>aI@EO zHO6lzEw$8ygY!zMyPQOLo%hTPDw7FBGCOPB zBk7Mv2~NC@z^Zc}5)lSfal5GQP9nATz#pPLR=qEMO(m<*_dF1%SYS9AM*k4{Ce&XH zKI#~6>n!EeUG&g0!kU88x84ng}J%2WV+82qls;OH{ za@n3e@ex}odqcLwGOET9BY+QnYW8MHb5 z*6uk0Bmrg7jxe6&m7bsGp_&t1NDrpOzkNT{(>@$;H=!n%KXPg7t|nEC!f%>dKs26i z=c}zota^iaC-%p#(3=pwJZRRwC#nF*^@wVa&$ZaCz<=T2AFAW*Ud44{sq?mto$DUm zY3@nVpTO79z)TjDRYX5-J6i3AHM;sO`h#da^uI$ia5X|f9&tFjhZ)*+rTXDL0Tu^_ zX4H6IbDTUD$MV7t`8SnlAd`gN)_>+&HiIAf;d(y)T!6^{_B2i@=Xb`WEEw4eNOET?f>bFI966P&MWR^b()+P?Z`K62yb90;({03#5mUBwk2 z$;2|qz-@t|!9^c`L%1Ql{dg~=7qTMc5rQ)@2>l2%ZRi8;7Ys;Z-rEQ5#>}|)!?iS{ z;_G3HU495Ar};j|(qjVC?r;Qh7)#~-?~KYYPCic0>t$RNV({;L%qZmSK8_pF5Q#=u zWyJ`a?KO4;_NGi62n94+ROaK+w^+k=afUbg&2^yMdrs0h#a0NM){FvHD;$F8EEPQ| zZYA~&X7xB=lt&htdd7P?SN;ClWftRKGGMD9zDC_EYurYP7p3wP`r(5DnIy+OO&hK~ zd5;qQD_!zD_f_$gXxg1xdx zDDaI;KxhGcoVUGwk52%Q0jsO}w9Vv+vvHU)LWPI32j+K(JyD6w!+4zG&dJ0$7{_Rq z#2kDYcei|Oh4`)|uDTs36U-_qdJH5sXy2LP&4jnE>dvNqtpYfBAbYjTNo>o)Ls@!8 zV)i{w|2bG{EG79Fop6>`wcq33AL@KtdFBQVN|YD=+D~wtfaLg}0ut7|zzIm+cCu|l z)Sp^@6t+JyAK2FE=a!Oi!y%F^7LlMM+@sQNA$;LHjIAoWc-(uz_tdqBE7{9;-aVNO zt-@bcmpn2r4xFfe)ghTs14cozI=htMZC#PbqB)>W{RABR?|`$5xYO^#FKT`sltZ`$ zY@Z_!@Th?;m8izI<6=83_rH!^58oY`aVVfgV-4<-bU>~&qHk@Nn)OXiCus3dM=5mHTrwsg&_2W*hH8Xspd?ZI|9Ko8zqhl5|>Z zvoBk+wakn{%k(H(+I4)1msu*q+}sS7RHRd zjC5+a-@p{%htanuma%3YzbdW^0nu~u?%rqin&z6#0PJ9SjdMw1TwkAqG|LxB; zfJYL13lGd8sSn5)j(d(g?xMo|J7pL5j-f7z^F%~$`ddgPAL9P*FIM*PD{Yjd5^fmL zg+&sWlW%C&+<%hNsX3a8i>SpSvB$+22=%<`SNg$`aQVj{5Y!YDE*tj`cq+~Wg@U$ zq8FLO)rn;qQ)VgAUeK9Ig#%jub+rgONfaCQGXFBg1kr{7wXs8WPrhY4JWE*XwqTo3nZ35SESULJtT$D%tbF&I(;56=hJ%gx+$2e^n6o2IrMk7p*i{ zETjUT?<7YA1J;P>}EhdH3jR>?xNl(IP2${+OHw7WWx$QRUq~h{V((pV{pOAZ6^`0b+mQWz; zBF`ft(`j-BD=f%ChQfp@|5&uk1r}rP-1y@dQ3QO?q*ifDD)Av(+N^FRp^jHVP`)#y zz(BfVF}mH#UeBW!Nu)U=$nI$Ba(Bga3NV0yG)1e2hak3H(#5t*1_Q3jkwCkYhch&R zb_u6o{PahEqvXC9TtGCjlDIAIh;$(}dIU`_vy~8aU>qD9q?ktnbrFUfc~r7eZEf(P z9p&|8N}+nW41>wIfiMJz;Gqf8ZsOuPIu5jk4ie&}^Ls!vXVcQjm6T&QK*8Kms?Y_< zIZ^nB5P5{+8MjKws9{q-5V)7ljc?R+-=iKaX&`f^(5FcHsx6nVtd+Qw&)*A5!h7lT z6-nIYfgC9PG^39Q(%Kq+1y8E;`J2F<-=4V8d@a@*tF6T^lejqlVdQ4{GPj;n=SLcS zWId;vktabrHW9Fqj$PW{yCcqD-H{*A9buA+k9yWrp^7&QxWw{zX7?S5F7AA6|DFuN zCdq!wf!$&^x*iS|Cc_5_6Xm+kXa3KLxY&9gyVI`R!){x|mao`6Aba8Z;O9Mr`2nQH z!7^P>zK}3Du?&$bH~3dCkb<#o15Vie~TMu8j^M z3YU^-mdy)nsG?V{)(OUbjEz8?0iQ zB-;>nhwm(yr~6euE+YXf_ut=Sa?X4D)Ek^nGcq!D49GDS0r?~@@R4lD$?eZ`r+sbh z^+egMF9?99J?DRgrla=V_o55wC&jUERu6fnr62O@-rkaY6`p$FZKLUjqgeThRcBQU zkD^I3N8-WBPMK}_PWUG=oJ?vW|EGy{)8^y5obyc{^yezCzZuU_EXFlw4g`Pu)4!;^ z1Of96ycRbp&j@UTho-asQ+Hi+B{9CJzdLHkI)Psuu878^GsW@$d=s|IE}f;&!#UMK z6OR6@R(>5soZR5&=61E#71)RG}+)1^0 z3%ZKeclJ^r^i4K+gYVH<4!%8_{NT!)fo61ErdhbS9#Alg|By8M`$=k(f&u)=(d0c& zC#|;^C4m&90IOg%BWzx%FiqC3>b!4Ki?!>!$C9fHxOgJ2{p`_AlkT^_&hh6P}ozeF?2nQ+Cz|A*YKElp$^2S#aN zp()ymFhq^_BjF{BoA?orEAP?xot$*Fcdd%{sp!ETdSRbzh#3us$2leb2foO#8!_?v z1lCZj2S{0{Czs&L53t@%ut64__V$N_gVkxT6K%L@YGxf79&~n{guml2&EO^fqcOlu z&Yz7R<55pg+DchEWiVTMrCoi(n+C|W={Ry<9yL4naq5-RhTx+u(jVzBAU^wMLP9-_ zRJ}t3a%5i}jN*B(5`WJKF4~_Dy>4+`4*bro0A`_DQv=H;NrLD2t!IdH_p#sqzQLLR z9qOi4w0vVUV(=XAyotqc}|cct2_c{hiOIM4e@Ozgx&Np9W;l2UaU41cR@h^D0zk5S}v8$sD+Z3hV zU5?@uap9b}qSIlgaKE?oHAShf&8+EnaNGYI+}vP4!3~kQFG|CC4GvpCPrn?2zkJ!| zL9A{2MGhMutl;}Apx4mhFq>6vD!v3)`$y~k zFPh}JTX<|sievRyqbSp4Me%pUO+3Ms`qlm0lRFM^784g$pBNt_)$jBZ#P9>r`z}Wc z@&P#+u}23}MOpazT$8O5Yb^CF#I1=BJtWq z^VW3bHgbS|XWr@J31cDs-5AbY$z!Q(om^Oj!|5-){~l1wrYhAJ2sXpvEs{g}H*y{) z(tcTQ6Qs0(Mtz)5ogy_cYZ$V+XCRz4BIIIW`(e0YInb%+$(F4|$x^4QQ0W&C+!jx68?h49)2%z!f^{D*QDnh8aujmYhG_FR>Dk zSH)eAA}4-?mQ+3tfG5oBdlZjgT;T}D+iIRo`Ybxruc}x~#)1-zYf&_xQEqdsZgTUJ ze41$DY&s9Q=8=bshDz}=6MiF6ZGRi=q|YW4|0dNPbnf9LB-B#1xEEd{vl*JaujKokRS~35uJVAw&wgAK+>_jSovCyQ{acetO=f!7GUt^w7uMKmDH)agDN6&znZ~@#eQ@z>>Y266i7F1?2I&&}EcV5W z{nY7m?Kf35q+X5VgxUY3Yl`@;+lMnWO~;VPgqOi#7k_LRJd)FFz;<6Ul0T^QycpZJ zF$%8n1s(6lW=U`^KI3;6f1Dc^L~(s6jTd@0_6d$yptqy{W{1qXh@xv;(f3~X`!{_W zxTs;=(VRA*-c7UMJrnj;tc7f4zdht#;iHbpqjqrDjgVsxkmUa1SUXRtF+iL{f$ZIv zk*|7Qc2!Kvl|~`}=t)EpnMzUCA9ZihCBIV8M=pf>=s7@HT2E?{mIg6e@{_fphD_ZR0_vSNh=AAsL^ zk6omoDm|u5A9(Np*CT6|j+a+G>?HUJ(w=>FH&uMXW`L8npQRk0KW*8`cjW)p9QmN< z0N|QP@W`sn!C4%S%ib{`J)r%V`=x;;i|yl#Dt@?fMm0)9WoK zvO92n*tM>Aakv~?7*4rW6qCl$&UQc?FvCG3;5OBC|pNx9q#1ikGJ%!ir>EOM`$|bck+d33!7^r!n+;9+fOX9E3j4$k47aHbA&Y9i+>=E zyM}43&=LIobVfZu=6H;O+4g_vvZtU@j4&3S{a>y4f zdvE`rP;$o*Y(03c>cD0F{_GBJ0Du?)#P%pg5Iv%WixD`$1k@o4Bj}N)PUWkoUqn+^ z+`43s!@XtOzsdB3D;=Q_%Jh(ldLeXkVARZ{`8H?fC>Z(0M57$2W!yMT?B8mc>)BJK zUOZV2N95j%@h|2>bM=V%AOU97gUVImi0A>%AKEfEta?q{PljK0+*`fw&mOLdyDT;r z`#+S~pYF9VN#l^gNQ48A$gg5X=26NSin)EYTd;Q}`{r3n`4OsCvC?Bl+3zEDxs(Gy zi?kmVtl`FAdAt4{0fNv%DQ)!zROS22VYD5+Cpo#5OOGgei2rwtJc`#$UL|@SS9zO$ zcY*3(QNtBzRp_orU`L?@!c~g=vm4w`q9ap(V$-|+zHw$_ZP%<8xiKo%)WY(Ed@YLA?6K8@%TFQ#b!T;Hn4sokFB%Qh>P=REuV> zel;IC_EQtM%RH*;qyH#HjS<*9(v+>ass*OFosAeiKA-sW{;_9EIA=CT#aTEHd0rjq z9if2U;W7N^s~)28ns75r=(G@%F&Sjiwm-yP|855qx1PnFOJ0E)e}sUh44L?eJG;mS$+xPxhyKaG5nN zQ|ZYJ7RBs$EWSP=I}!PM`Qt;sA7Kqdn9ba&zD@@o9a9#8icON@W+ZWegN{U zWwKXiC5Raf9A?BiGDO=qIVysg4y+ae;ot0%7YoyRK73qQYh`maCdk8^Q*o3%+6Koc z{?ZS*$iC}`f6xuS9-x(*$sGXF)Zt+udYaNuYyJTe`$x$KKkC(Al;h{%=M$S&z1PU2 z4f_!{(RLx)f5QtflF}>M-A8YWzk|0fFG+^mxfry`UyJ`yvwx{kB}E@_4$cm>^$HVw zN?k~Oha%fB=lNVmvO)w4;0R!$5W9}-zaJ94yhB=nxP%jeq1=saC-v;YJXT!o9DD{fLI@ ziQprj-06^eD7kBDclP!tTu(SceRLk-XXO2|9xADGk*!10S>|>m;PKWkKnh@O3ftUk z@A1JA22bf*CRKmrv2Rbcg-n4LNi=dAH>e73lub#}!_uQ(FR#h%aA97J0EfKjCV?VY z@YRTwt?V)Z$OUz&(u}4BBDDD)gy=hdZko_IqnDl43xjJNVlgR6b^v|YIq-_QCL%Vt zvLqj~Y8$l(#vyiyOR?kE_-i?NnB9OiY*do}@SN@F2FHUzP2~3@iy-j9-6^K2Z{V1M ze!_YzT*(C!o)msCOxZO9xLvl|6?ifW3LKLXboHexEzTzxABj|I%}SxvRJlbFD-TU{bW(HLnnHoPKJa6}WiQ zHj!k}!nm6wpj`bUq={9ofJsgMV^U#}fU8aQ!!Hex=pgZFe8YP;ojAmwNS6} z7YrF0If(o7=xeJkjFAao*=Y6tMHn$t=-B8>i(7F}AaHn)Iuss$%8Qvvru;@ja<=%> ztVZR7A14I$z~AZ5$weBEVnux1#`<8U<7p2B!GD}XP#B^0)3+0DSd9r;)%IllLhEL6 zH+cj{q5q4pXH&igSf%@gZ)x>11sNhor%(NJLP&=?*VQy=Ti2v51U6tkEU{aUer(8p zoZ60o5CDz$dcW?Axad3|sUHa*9)6+~ZDvb}?+gzJ2K~YCR$S5sfCHjFQoqh_`7*gQ zs6L3%t9tLkc=KptLVNIr{|rByv=o>$2*JHDFELM)_l`ARJ6mG_yKC$=q!JP(%gyIB zPq{qo*nbZec}^0Ourt-gyK?J7pqBaxip1r1qX4cc{RX7=?u)LnW8G!9gTdH?6%cM{ zNgr@N;9fa?CH2f1xS5&IJ~q(X?=jNkuMu8;j8j;dasI&P0Rse9>(RljUgH$B9168k zZJ_!@99{CnVQYYkt$+A1zWW;~U$06A>tUe9s#C~Mv)V^fOJuVxTCTdtwhG^|;U^ zg4M-k1P#f}{x~#eSLR7|h10|(5YWW~6$}64ITx+m*oSKf)+YtCIys7yw{7>(FolQv z`>A3r+27(=PL!pDuM{W0Z-emPYg>oK*c)Cw&tDUHmyIHowqxVvH^+;uPYLqGiQj$2 zmNz8QPCXg<$(Bh|EfR8MMxgE(qlK4WqdZW@mvi->Z`-;6OO}zni#I@)wHEdc$QIQ^ zhb^;KS4Q8f=Q#W3?3G>OIWH+I*tK-vLbN=hlefvPEoFqo5rq^ZfnFK_hP!$b2Ofy) zbkP)j&|YXSL^>Td+JEs^L;MTXIIoYCrO{UWmYUSXcm2SPP7FRpBas#FG~s)k?th%o zm5!9KuX?YPR5pQ4nY*6GFG^83#v1W`kZh9){%HJdCB8dCIFj+JsiEVu;gbg1u5dJ?z!@LPon z`6u7k6S9e46LJ?}TE59fsln}KISBArVNLp9p14$Ltku$ExBN=TjVjO)iJie8BuZ)* z>c5FcbS3HpAP%$pNG`Sa94a%HCtrMXI{r)dtNGsn_P>l^U&-$=zF1QTMCCJw{+^Bj z9rWpJU3&%h?@jx*q3+IVnRgiPGI$yLK9mi>!^?31agw#(dG#z` zYr@+d&@CRSv+t2~vS%?2gQ!W5_KHXCE=KGqs%i+q)qMgHvPYVh8k79)L*}n=u9r3-u zR6q>RyV@@SDSU7vZELq*l1=>rwjcOy^OyBr`?K8UH@L0qWumJqVmClX?|zs#s2Ds2 zxz2YkdY7z~_W2!&G`-FFKPfnlO0DXd2c`=96B0^rtY2Jxyz`EUnA<7Nii4HROO@O{ zW)=ab(OAYeo%PP+S7dsQ%t!V=;9xWN|mMKKiVU7;sE$$;`gZ$*pa^^!9+NpBE#;+wrTDx0QV0 zi(5;aU|Ani_59f2fRWkg?@?2)w;At$$ijxY_mxG?U!N6URgw0Bvpiq5Uxfat6=9kC zMcCUN$V}tc-7|UHy^Wm?O4#9Z)cR=gM-SQdfDwXFJar=9a?)qCcl6M2&y64fY835g zSM)_&JIgCqkD1*gd^Tz<~o8?2*_vPuN&^~4u5G66N2%i^N; zq%aU_Cm#IcHl4e*{q*a@la3qs=(K%NdO5cv&iSuBia%vVFaLH2m!J~M-%Dx``GdT5 zC7-JfeYV?)sZ**+6`ke(m%illb}d=M8m^@_)^qnrn!G&^xfTgZ6qc(7Kh`3aM2M+m zTQPn_0b7#)yt4!EZgZa3y5_(o$!SKRq!bBwcE0g zShVMY)PmHnK5?LlA!?GTt{!Lif?)`FEdk0hv5SCe@RnaES}*Ft55t&mYww{yjq`xw zE#c<-aRafBt3U(Bv?EODF95! zzmnLtOTkX!eSg(DY=4mM`N{`a?;>3+dS=t*LDQ*yp&xQE6)g&iR~`Dxjf_nPa?$ns ziNJ15QL6T$I!dN|xa*>2O@(w&97msJpp5S(FPPDM4l-VtaK$?IuBrkrXyy3{agun} z$LF!Pr%wV^cS|8h`oC$`uZZql5mSrXVNqb0plwE-J3Lp3AmIPkVFo#5-b1cHqhTb74hS8WN{<6?}6ms|MVc{_^KNWx~jr>DI0G z0_9DEa=gMA_iw~-Cm=sxa`?Jj(yi}6uhdB7Rvqrhtt2K9>(T6yVfdILg#>1{T&!M3 zT~NpSGijm751x9oQeq)f&Uiec^LEX>8*)^WHY!;>A zfh4M+Z1B57vTNCmaGW+T*lwxTOwx9OoMl@*OH4+1_dV8Vh0k`KCC2E8;Xa~Mrwf+` z=d-%~9(G*`?zpLGVg>Q`Y%0fJs$N8eB@0my_@GwC0tOtuRy7xVWJ`0=X$T>eSESpc zPi9rnmokYHI(85K8Z!J$^=Qj1vW<+CrW$^y^1|z5S%>{T9S!r_31{2oz+?ZC%;W(c zqUvF@cF&oX9H~jiC8T!3wUQaDs-RzUf#iuP+_v<7k?Sn+j@WcPb)2s4xWY^2HHW?O z15Pz8fPKHW{*)KPe%?I*b}2GA?n>CN>?N+}VP!@XCmE~F@@?JN3`B0sW%m#6SG-?5 z?jbOL5{~r#?Jm&==u><79Z|P<#Tl3HHQ~=LdCe)N**`la?lk=K)nfW1`W1~Y>xKcTwk*FHBZsNGD&dnU&lnh- znq#WK)-T$W@E9Y@e+E_XmS09f|EY-pF8c)0eM%>qY+JrfECp*QK3ZL42Uj-xLow2oEppJYTel455+8Aq~ z0@WO^JJ(em4NKUX*(Z1%1aH{OqqQLKIhhR--FLBi!?Kv<##Z5z#+b9N5Zy2?SDG0DV>sU7J#&C21!s-Tuqb+ZKT*Vt4>nv zHN77mk@SqN#!z-f*HZPeo4)!?n*$I~xCJVu8Iut(=&0vHA#oKWKHp_*=BiAA1LwTY zRMm3d)FC82SB+T$^=cF?dtThGhOc?HT$}!@YVE@vtWB60-&Xo2B*6md3Zqf1GI)Z~ z1XPnbe5CZ7{QN=im#3)*9}&T%4kEzm8Qn-2EZCTY$&*QN; zx9;iBjBlGesvyooU;icklwA#E+B-d*`0DpK&Du*NU7R=a*C1FP;0_A5g-sTzR+glR^eV7Es z2T>xS$=(Dryyh9?Cv|eFPNH)@%g}xc7yr^gYw=R?at>=mfRO*i6MJ9B{y6iHRH_}% z<&{sjhL)8J;<+vnZlGB80+35F6I6n!qpK$i4|7{^eAU#{gcSsBs8Ld(aOVo%Do-zS zg{%|33ji5>)AZ57zft;jEw*fv=^ z(3D9=1q9cNi}EBK$aKrEb^2-U+g+i?@HXIS>b!=g+vWe29-VCqU+*VP+NPDZ$r1|)R?wy<%oJviI`Sx`d^Eth zQpOoky;Py(7kE5HD75XWeJDTVVa<2eE@jU~A^Q1DkuBdmAqY5g?ao$Q*PGI4O-yxL zesxmyQdM_>YU?(4~Q?&0jyt!g}_FU0(Vr;g0%l zwmdDED(B7W5e*sK`XqLZG2eFpJB(uAp{UenY zQ;ID{q7;Yqs)uaIT?&QkgPb`{BJM;*PuyY=`3Y_)W;q~XtJz&V!lRbbu7RC^YG8-` z>7w@&S*t1t5lT2e=)}IE@JrQN%WB)1|J~2c(7g`2Cod~VzPEm6t9KGMP+uRepr%Nh zY?%YfD_iV7MTOVGTxSma7J#JHQi_MaKMX&|Fy+`Lk$X)(DT^E^{-?a*?>~Yu#ldB1XJ495%4we50pVb`C56WCglFcjsKd31Yn+4^FA zsNSEs>TRatZ~k!=;3%$84y*z9?!{@O|K?4i+EBhjmYGabKFwo+Bz}8_wUAw4tIupU zd|-21#~`EdaY48OBB$vLf8OTC27FV3@?yj%+GA^l6Ku_*>wqH}9lW(;r=aQ`=I)IG zpMM{QUf69e7S?J4D75VLBM}abpRqvv)@T=xk%jMr5gUZI9>xvPum#SIJ8_#f4E~O~ z+Ngv2aqh@YgTMCZ>iSy+H`~J|&%ZHM&^^E`-;RalYh1gaHJuC$Lsn_7Wj^5Fo+Wp<5%?oCW~5bp z_g2s3jxEE#nX~lneGG{pmJY?5U+_1MG&`QCcg>Pz44~hHOBOE~##QlB}m~z6C&D_v|^+hj|+LfW8 z=_AD>)S+aY>e%o_)1n5(;%i|na=KVQ!O|mqs1bH;Mg|(}Ttbg#lhC-2Cgvx$s5**J zy4nlgn&n`9IAB$L397kr*8yKkRZNB!R%+gXA^=1_WDXm!CrW`?h5jocoDXKP4FmJ9 zVA<#I9?asxgd`V7Z! zplK5Y&R3c^bMPHpb9oD|%88o2d%w;;0T}9Lbt7-EvcW(CnU?X8JSwuY6mtky64<8!Pa-Gcjt&Et&xw!&Hx@wcJ$fRVb*x-=}o- zrf}Q$o6(7{4lOGRGA0FylVj|H6XJ3#ox2Er$U=6UhYK@TsCXOZ^9HSG-~S%p;!jH9 z-!cV9sneeLE_7t&KpSQYc$ZEGugEXh7SXKF_`q_@S+soU@@b?{;GD4;0wWgOGrU4T zC!t55)oy+4!Swf66f!BXNSas4JU97#k!QQQH1NB?F8>Dk%@I&@#`TY#W5XHa%SC}BQuyr~r&vA`;C!LLG75*uD(&qvOJ1MZbgP{?zU4B!PV9=1 zQ#o|};#5*WZbch*%7?UKBbG%G-fk_u4pjWynx3td?J8#L}Pbpa}QyOxq&hwv( zH}FP2tsHVS9HT#f)MmJf z?Gt~*NZl9zoh>uCs^N<_X-rV4F#py8@*P^hpS#$Px2-$H9(?Y_eemot2(B>7wjwTH)%SsLky|k*9nF^NVha4nhtJ!B0ES4b zZVf!n)|l&iiU^5LI$2py-N>{1&e(YTwjKd zv6a~L>apYMtY19f;gppY{`3qm`7>{lICGry+mzVDEfBj=uI12-AG!4?6rNmpOY)6f zX|gttR!`8J67pTtFP7ixXdpsk`90pnzN8xun>a+gtH`x)NF)04Fk>0|%0AmNAMKuI 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%0DXx0j+;2xxG_R*h1YTruB)j3W)BEW$3N34D- z`@Jmx>3eW+$il?so5$ZcyM55cNIVlRo`Cy$8QS;!+$P2U%leH(($6Vi4WR)9qec9vd`-O<0?Hk|8z2PNmhtUTME^Svt_- z_1Afhg2V3{GsxJZZO(G=ZjT7?L~-}cl}L@^gC>}6Gzf~{$si|#bB%$&Xi&;jX#gr z9wY<7GegRp4$og1rDH?pwZelu{=(c*=IXghz3u7JCfZRXo{UbSO5t?UvQjSAJvVf6p)@z8W*g^kVsQAN?K< za4*LkKM6UG<2VTmfU{njQ_IiKf6Z+xn@UtcVL{(&eEIy%A|%~I%Y6d1BzfiQ4$lXC zp@)pWG3;zT{(!o(V&fOW0K)Kzmw|u3H}sCjFA7mSB6Nhe|3}F`heHVqbT|yxqu3r_ zhb<<#Iu>QlyUYE>0XCd>shxZ*PjBu)@x0E;`&SS?;eM)#lZI?cn}Pk(ta`5NC+m*o zE?Fv2m(hF7}4w8x>XfTCoVK3Vm4f1zfyO?rpTBwvFs;cWLJU` zTs4XC=!c^#E@C4CLIXXa-4znU`2_`TbYd<=@)3IBV4vi}47>gW)3Q6z%C#yD$|a@( z2dYQ_C}tdU{-y_RuvTIOA3k}ao)oKi-7(Hh^7HJq4l4eo{V^G@V=l8XR0ZRwx0+e1 z1X-z`Xp5nz_307juo>hzRU3leL-U(}Xz4El0HGu)pSSy~O=NU|v4-y+RMEK&HP~W5 zn_F3c`hbNURLlHaVs^L#)B^KvUpy@atDNV`oVt{10L?qPZfnr!D+!(0M_Zt3xR7_J z(jfy9MC=2Gw|y=qPzUYGqn+0V8)o?4sb`5|x4KYpD z!*l=wUmU5hANJf;e{;9IeavTjZ28-Z7`LDM+db~iwTIxhz70Re{x()aN;FDOmfAj@ zoCr1(jHCEj+^tB^3*#*m!JIfxe9n$mgJ{fMtML5w2;is3>2 zwCD&l?Z;mT#P3l=1WdAOYHLs7qUjb1&c3)7;|9D9ogt zk^GTBBWU@E29QJDpL&84_UI`ZoADpR)`gS?v;{n56081HpBW>};Ne#%o(0Z8~`0bn*?G?h6YV>6RaB z&cN(=W)K`xfrQH5$E$Nrh^I9HU-IWC%>UiBGD>Gk^~3?kx1Q=( z4kjY)oyns8bU=u}$h#c@&9>7=!YX=kvl(XDfU8l&fxFCh1^mu)b%gIlpanSzcN?|qD*ZT)OsUsS? z3X}~$FF$YQZt|9qoP!A8obLSKXSum+Bi11>psap0pb@4UR8B?7I% zgN%;F!n)-#BS;}KcK62@FMA{0LXk&H#QA_M$9$@Rq2er+XJX0L0A5z$dpjYrEMNo} z!9JqF!eiC$8bpq57K^M{Q@P-NU?xqvTYrT`^E1$aENL2=9!itnI72D|W-^;9XF4n6 z>LoMri^*uD_Fiv>{KKo=ZT8q;)b32)@c#_m@v3sdghvg^(BC{X{(ImYo#u2KB&&yB=gWk(R4s` zk}u?0Sob&oJZZ!#5qK^9Sz+^LN2=h~_N@nX z&Z!LZJz`r_vc5p~_8!u`Ehd>l!PD{<(7AzZ{}!Q4)IUzQxHEXkI*3@8??b)BYC@my zo%^~C(2?qg^bgwXUwj1CJY|cXz{`l%H0C6k1piXy#i0^Q08YBSxEfU=|D~7!b*h`c zvQJP48ARN*zf!jnEw;e%aO4bLLsywqzy8tT&oQ9Zm=2NJbo})Cmf_};_vb?-_No9E zVRnoM;wb_8?bwR9I7GdVP_nMA1f}hFUR^**m55Ebow3hqqM8w&_xFj9RZl+%Mx7hk zd$h0z7TM|Rj5kE>?}PKe?8Cj9bHSd^nnj)Be0`sI9BgIHT`L^Kb#&{9wddu|zbxTN zH9D?lyr3;Zz~S$n6bwuIcl2}F|0L-u z^D_q?;10J@SATCY(~>_Y5s)jz&wbWS1Xc{g#5$ln@P*r?(`)73+!vp1g9=cSf9v~m z?@svzbipDJ=C4hryqY30#ZVb~G!R=|#ULjtyxMh@qDj|Px_~OSf6Tc@(hevFoghtq z^!@Hy>d}B>A0rUMs!bgV0Xt?N_3^@=NWuK!>~YGSAewPe#H9d=!1ojxK{ZD?KhH4f zlhU2@Kj@`Ml5hMfm%B;{Dde{_4VQ}yGyI0DvQKj9j#^oZ;)XVF|7$GNF8Z%dLz>1` zT4&7HOGFPrE9fz|lzcyj#D)|CJT<|aw{D5Tt~fR(KpD_dNeAy8Vzkum^f_VQ1CJFs z0T7EVOE2_qo+AYQZvJq%2^sHYxD805?C*HSSWy*s7nwATCR(J<8$4M5V)+VBfy4ca zXHL+}9gCEiF(j!DI_F-FyXlOC)w9Vna>1;@Xliz|^glsSPjiL{jpt69Pi1bZvg z&VV*m-JK#{4P`MQ#8eM5F!3f68@<;UTp_0{ql2=ki5=)H;uT=I7OhH$Q`F_-=C zr7`YL-kWn}wM0@?gLxmYZz=;>Q_eye)utm*wD@vyh~pZk>JGQ~_zs7FY~{dY*c*t) z4gzgQg*4rKYbQayvC%`mqR)aHwK^0$HziIP;yvz4Zrg#iOi() znUU{2o7(f~{eT_LG~y3X-e5DLIPQDt<%f3R*M1RC>Y+MwONi0_@ZfNB^7yXP`-{&i zQE1%GnvA~ZMwf8K@DOx@6Q6K|ErNKFx5YBdzoG)nrBahXjqU4e2T=6tWmcxTfH(4b z4P+wQrgx`?58dG@icqy+$8p1)3ygjgPm*XpI< z&8}}CfNlNJQ?%-+@nYrw%}V^?B1e&jfb-Nza=MwEd%Y+jW@j4k@V4|QmO#Mw&3g&u z^HA~?sp23i3tI(=?jC^=RyTqeZa?(e5-fk`pp))Y`uCtx&kj!#sT64V?yenz`WVuG zS`T4cHS_dP-&&a5JLx@x>x7+v%QsD<=pSqvsoxbDA)A#IzDC-G32MkPd@xIeDi7DX zOQ8`=V`>t|lXv)|qOQu`cOxk}WJ3`SRVo+-GNaqdogu_p zLXioMKNUVSoBog`q?_KoBZ_?~_g&FAsj$GH`tH+7Ays3bS^m+ZMcH5Nx_H}(6|u5L zD+$!wNiIkFF1?D;+i~hCVxr9)AQENx*}tC)**J6oWr$t2Zcs}UeE2-C;BEU)@DVpn zRrj>HO+fnar2(`30>@5peU9T-vz)T4uVXJtxg6ub{Htb`{4>^-7SXN;yJi@fhUlphe%cr~T-JLWJ>Z zUfqv7p7fkJn}DpVTF(`18g>+>p3XvmUJAh3o>1XfHLN>(GxFyK$*j!{tGZ(b28H_F zB7^PoRt0r@pU70LK1O4@EL;8#l79gPi6?lu;DWlZ zrP83YuU#%2?Yos{R0TN*E(_P~Mu`Jw6)jp;j8evjNJM}Z74AFWavHX^ZMXx`2C>2C zw|qMJcW0mq^j8+dYsN5cg#=-H!-XnIG!7$Jj4nQn9$yFIZ;@1*8b2mhElUG@Z}TDF z{iUA+kAULa;kCfVT+ep5hqu(;1exDAy7@2O8)_@T&B+#e3eGQ7Qf_W%vhC=Xe;>7f zThN;J{p`t8RfW8JpzX$YF1s0nI_E1!-t!NPjuwqciVmG`Z+d4brX!%l7#)oYG0qW! zk{EFESb&q~j-Ey%1)-b5{L699zbnI#B9g*_vL;;ROC@77-qLR`08o*zv-{U zaX-31TOQp_b~_I5wHB&l4LsE1V1I_sZ{7gykkLTLb_rub9>4zaz2tcv;cdF@Q_k@Z z5(?GGm6+~LQNK#6QrD|w2&st7P;X}nZOjjT+hkg?T24*8o-6RcZ>n9^|6C8=LY6Pg zj-+ZzldtE@Le@`Jvs@a(vJSV4t3{{@kL-G8>?ak5$x;939nYj3QdVE`^xdf4JWm>2 zX>AR(TU8%Pth>qVEm|EHa=KpSou7LD6Tg4e!#SUSLVuxMFei~+pX!Y$!w;dD#xsf9 z7`pE3H8_IMy`2t0X{*?lPx7Rq&BSLNPfb0yWS0mPasB+x&iS%L?PiqJ*-9bghikZ@ z=D3Mxc>zm^bHSozqm@>FH- zDZjG!b=tp+3i1&P1RDy&nF;`~xe=H^aP@Q;StSbFVSgh45W@B8gF40Jza8To2^0lH` zeyO<9sp*Df@Xu09sO?JO1icAQRliq$;5NL;4A|%x^1>tFirJF_gz3IgH-rPW{iP4r zV!oW8hfE~bji|PllZ@EFK1!I?WbV#y6x}(4tl2#!ta9cEx|>BR zu@AuXI4{1=3$z2$@itl$3MwkHq}z^DPkyBowfVLZ07JF2@-3^yK7NYE_n7M<#2*UV&2Mn@r%W}U6b4Xcqd1}rAwy*IC|lPdIn5wu9!1ZQtI8| zeg~$gFBrvFcTfU}OTF(bnBPcfxkVe^II+7>7(>$nj5kX zK2gc=bJ6I?=_@!veD+0#Mm?sYYT>-pz&Lk%G*dD1AXA9ACnwn{0!jt?7qZ773m!ZD zqIby1HttiUs|O&^kNSYOsF4x{WW1nvae!1y+2L9ueR?r6X6 zi)T|idDC{XbGIXd_iDfjmp6bzWc+MR$dz|!4f{{&vb~fATjjB z8Jx4pZ!{GTX!!|z4O(;as}CB+(*WHHP$`5`fvZ5BM~sLGr1+hZ@>n(YTL>bP`Zh8Q z(seps#ff^Xn~uI?h?ZXQJ>-@ez9DE@3fR+YSv-h_O{gy&5 zz&Q}yMNzc8w3G;TNRuuVzSs$+w2KleH5&(8cSIu-dmyBT3g&pGp$WPUrTXq!8L@I> zO!lQ0rVlN;lU@3he7R`zI!v)bro2wl4qZNbn~uQpI;BoHUsb=;TZT1&I4S%VFfvTr z;qh=t+*@|9TddtkS=s6TEEQABSk~k?4e-5f=d@xH`HzgBAKC!F&>E;enm%T*`>&793{>H*l&G*{3-@SMfCO!nn?4$@@Yg zlUMvUPV4?|@8KnY*i0FnmN9-%Q?cZ=Z^C-JmjHg9D?>0_MwX>wa{r+WEl z)G6)XB-1}&H24DrUx3_cbhOl-WnB~zGhXlsKn`^U{wc4FPB4hO+2BI_+L%~nWEwMh z=1MF(cHvr$fN#d6t3U_9J}+Q>`7ZX9*&R(GSsa9aeV7E$pR>rF?`8e!cI(sceQAn- zfNA%TkvEK(kiol%%3IS7WK~dpzq(Z>&TU1$|JY$F z7P+Z^j(7uZqAOzFOKk$N{o{t6tbx;uAwoeE#vW%@d;o5AKL(pKr6bp2lfk#7 zn0N-@k#chLmKbYXAie>#H~V3(NS11ntc^N;- zaQKI{ER@dRZc3rqk`nZN+&fH(7J z^%Thno+s%MWai#TSE02J*Voak|ARiq7wSB8Ml zM>Jce;+Nos$tS?YJ7)XN68TKkzTm;7^5kIw$R}MPs$Ly-Fs@`AtrfkG*-xs%Fh+=m zGCuMQbYSImIC7G{LAF838+N1e+I&AGVD|-T^S%B=_x)3iY{TZXNc&+kiApNSZQO5# z>1=Zpocvk%=y;$eqWCngj6@zst3ZHgbFvAILNJ%a9AczMjd^1TW*FueE%`(D>ob61 z3=+2)3tRQEN}meLM(|D!2mqqu5oYpE*M`4Xn5Q|@^2D7eOMdNf$&-)Cd+cE%;2wa^ zHZ8b>;Pc(8lXkZLO1m<=Qc|6ly8hO>;uE&O{E&8VCTvQ-Cry7TkhtBWfHXoT10uDs zjiItNDTqI*yEJeQ+x@CueO7A0{Z9S0#WqCBNU8WRx%sa*UnIj1vuG&eD9O4At7#VO z^~5vxS){ig(xPob|AhnsJTPGLq9%vQ8D6f+62_;-6Cd$S3284P42!PQQ90mtey;ef zAOef(?U}eS4d)36@$sV(+$AOOu0T=ZUhcLu-@SRmRfHi&jzr_>V9rX{aeo9A;nEC+YMkM9< zoi+=%r8V~MzR#)U&oPQX;-R8qxf0+}# zZO~Pm&P-LXAyXV5FORA~!O8>J0g=|EVOfu zKR3H@32zhS;R>CfScX%x9JNde5aVWO#o=I7n5ShEj-Ue3thRdfUhq!q>|Az|-9jrC z_{ZFwP&^;T2oIBOWWMNEw9Ek0laNMg&;A5OC?C?yj7Z+MZPLVz+g>-3P07@vPWP10 zm<>kpN6ZoQB!Q*bG#LJYkcrUwl*wr`@;v?{^1^ZICQ%rSr_(H$qcWM%-xPy@GkY{_ z1zX(I2U~usXS8fT8ijLx_!f~=-w}-3eCYLPE|DNud-HtGg=JY9;#8&0^Gv6`J?#?s zL!Fxj8@HxJnmj%yXPn98qP>S$Vm!?ZzAzVDPEA`^>mI(A08HpXjE+RkSbkf zm|ab>ubn55=)ARjWA<_Qqee4N1DZIa!!dh;5jLOxi}-83I?@syTl+nFb}e0XE(P*M zW1nOAVp229;1tPF(X|tmJLHfZlGtuFc|!yOp-P2`&1 z<@MMC^@yS=7FX=we`fOhC?UeC=z5pw72*Z}ciIhSULxKPBXBs|V8+7Bh!0q)a$BIZ zn0P5voFI@4c8>cMOL|fLZ6WRtr98xuRoE~!DLEwN%v2x|TGz#V?K6Jlu83C=K{ye= zWf0cEUj~jKh4VYine@{3p2l+|id+`)3sxlIUS~Nh3UP!{i`YA;iHJ9EQDqRQbBNsL zr<_3HE)Y192A-#!69_5d5B;GwE^|jgHq2ceDAwwHw0FEIzmhuzE2@FBXJnl5UI3ol zBM1LQ;2S=zC=GvwAYyDYmQ8z0#E<(Fyx26Bl~FGwDq=a#A2c2UHgPZvdy%YlB9IFc zenaGHTL}LtwoL|d%D^}W<7lIEHcE=sqbw#Ss%YoF1*-^tHZdx4XZ{@WPR20wp`*r! zx>w(#+#D{;e(%#vLo_o5n&|P(UK3%2%Od+8@rSNg)(<_^5NSYs*Kanee8t#ZzZ85Z zz|e&EkQJt7V!@GmCF~QzWjxdrPxg%5g=IoouSqayi1%yU#Dp-O(TcEP1i@zkf;E!B z^3?&CANpb4k_%IJPUr=zTAUiO2mzu6e?$iYF~vAJAsUd5OQjMb^q^$Y1dG(%p-A$= z_ofEe{Z9L23%D9Nt_B#uaLT^ix}t9{U#KIs6|CnvLuODHE?~fn_`wk-Qw*hDs(rxu z!RQi>U}0P!*2phX??l%z9VfQG@vHY6`D?hQoTcv0Ti~9=_VVXu`454=NLnw07T33Q zY2SV+o2qKBc;LjqUZHiG7X9R>I?U1b+ghxxSmVW4obPIn^(EaRbxzWJ3$sBUk?s@H z(QPQU%8cJSyFVp5sC3dsM4^m4d5SXM@m77+i5sVQIS$tSz8VuFoUOu|K2eyQVLs{X zkU>v5?6_H<4|_<6-QwTIA0=uGU>IV2YGQp(Uw;xG2qG!Myg(r&_9lu}w4iqHJ|EU( zO@h`zpm<5!LEj`GMe(2x_;=JEj2q)!pdzIFL?$}@=wqgUYXbkN9I9r{3I8F&YviM} zx(XIt&j1LV-8WH^><4-yc&w3ubPMNiJ$~0Fk29KOwtnmsilh;SZ%1Ahgogd317%|> z{qbxQULo#}Nhb+N5flF32rLjdLh{EvZ?1KW%QRjoLeP^Auqz0gterD+aBiR@XdsF_ z3I@6z6xqmdeQdr-BVNWiy%okwa`lbY3MBem8}U`)y6|GMk)Ghz0G{U#MGfVI*Usz# zw}CW|XJ>J(pk8NkCXk|8hth#m*1A1iKve2*H9X%+w>E;B7Qw>pkO2j(Ca6dBx(b z@ubzezV{`{1QR|ubT+ao27Pw>9KIlqvV!{D0P0~=rpPc8BkM#}<1TC#u@T_=S+da) z#)Rqm*85@%SfE&tnw??8yq_+)H%Wa?GLb*DDhk2Qtz0^1$0o&=I$0Hz4x%#Lw342< zQ+rSTXMeVuiX>lWG1vDWrj5vR_;=}=H%T(c^aN4n!N92j;pn(h)wt5DACH}L8BU-6Vp*L-{N$tex1HDjNFz*%|E9zq(6$QM(#Kv=Bgo9SdX zj?_*WRerByseB^Oz>4ad*MhwDT9F$Mmi~?y^_)1QqImDwH!A|8qCL>?t$A{3|3F=j z@TjymLN*$e4>wZ#M+pwxCF0INcL@i2lN-ouL88vHI|TM4xZseLq7GRKV{I@;4^MW- zoJQ-eR@gq#EsG|u)M>WuC1=MpxSrG@gt3`S$XAlA>w4on3Fgk|vm>&gJDj*wy(xei zS0iWO8gMp@Cn#9Fd(_78W}i@)G?+T<_E2VUixus?p+JrYK9xg^v>8V>XgL{Vko;-A z;ouMyHvcA=^CE(^6F<$?Xdj=zXMjn9R7R1)Q>2g4TW;tvCu3OE8jhwv82@%REgB(L zgkT^QL67$Zt>UpI;!i$-JOV8gLr`Jyy8hP~(Y(lBF~nC*;VB2)1q%<^lZ^zydNwbD ztBD3J@t7zxNtc-v=!%T>X!>ko;*^k02V|x1bNEk@<1Gs%f+D}<&}8JA%*Q8uCaO2# zF!9;bnJnjUjOjATO-QDMHVR}6q;%DON_Cg9a{T$;*5b34)O-fH?z{Q|U<6<)v$O7fhS=p*56tJb z2Bh;UbhvYxP~nOQt0Ujq^A8jzm@aZ!i_FYwho294@Us-4+J)j0@?72OdDRP)(IcaQ z=>>XIUp75g=zORvHJ-;Y2+qleJ~-IDGd)=T49Fjy^7GW~=$>Q@V@|)btUC4l)9xwu zuot7;wu;?Tcc>c^oZh97X!@9E=OJI5I%zc$vU5sT5Em zcH>&)=GO?|DhRYfg&V3^)|wbS)J?=hY09sUZVXtHg9jrC*z!3s#kRGGmlOU^Y>hiE z1)~#_Z`p{y1gUM=`(4P7)BS{L2fu=wq->UUXUguv}UxBK`LkUo`s}^Y$n#S*vU@IflMzj_Z#J{ z0UfM;p!CQsMY^;%7*leND^Ot-)taD1L%5{_ju%0qkK(wv{30H&)(95@73>^D{BWT_ zkx~*0V{|fg#i%O;0Y#NYeI)otH}3@z3LvO5WCi)vv~NxR*7bO_s`X=?>VFm`K;cp$ zT@%1r%-r=WfSO{cX^f$N@QsNtg2+Ay?KzRa^Vp#_%#IkX=c$PWPt)G6TvyaSa8-o& zd)?7tE}Jd_rxX%`#u7#l0}aqZb5yW@DG~k!;xK(g1TAo!G#m|-A)G^CEleWWiJ`)^ z-jAXvk{L%wl!@xle8@Vt3k$q{tQmWq>1t=dYLKE2ahPu9?L8zVgWxSBNO=yOq^69C z$FSuXBF}Hcji;K$;CzjG%Ed)pw`IdThr~FvEdiqaR8XXGyc55t=+!(#uNh&OxMX5? z86;R{J3$u$5yakp%}D6d>r2Do94qV5TwY|^gB1+BuUlrZ_62`r`2!!0xu%?SL_>0S zIu@9>HN1muGhii5t3fFSvQ}NLURgE>bGTA$>(a?Y6mZu0at%Ser~{*jsl;;@Oz~Qd zJ^W?k&obNO=b-wlE-%u^s7e&WlSx+aa85q?1%-3$52Sc76*lE;0bf{bGhp}1MgHah~)&PdRaGKT=i64m9J@idW=H) z4Lokx0eRLo@3vaD{|Is$Jep>?~d|x^ddB4+77|Iq$0F$`sFL$jt^*N&&iQiPMTbDpvo1m)cE!K#Z439J}p0^r+ z7kK8)fAc8=D5^-qh;zq-f+mcR|S(VKnSB z9Q}&6foK{2?!nf&IyIb5H+gUW>(O$ByBvqZ^y6!|A1uJdlZYErs)isvR~cFKq2uWd zs3`r;;p9UYj3Ugz;kK-IfC_0~3_!`+CbaN!0F*SsN2{GfgdTbTD-PztmJX@ai855s z;WwT|Hl1fWQ~0@r=<#Xh0LZ{fY8c-OR9VY{t_O!~g8pEwk^Gc^b3--bSZN|LbTwiX z0H9tON-JO9(Wz63$d8Afq=5-E19KC9KAN97AherxT?j^@#VKKcnLR#IYN5fGAbV3G z>@+%oUH>HU_b@r*_l=T26}jtgD}{+*NL(4)WnRgSiy_<+Il|D~%cZL^<3x@`fusuJ zVNWb`E=HsDxiZfzWZPCgBw#7CXHrL=)SylLMy5_v8OgZL7$zN6OO=WVaLvl1tYt9Lb{o*(?0d&Xj<6((CG+N3wbE2n*zb-*rS>((i&x~rIi;n8b$v}e>0BE^h+)O+BJ3h`(V)D0nE}A8*&p9NpT4bJE2n+)&Qi-0 ztgkNZ5-xC<}f=BK|Y7U~-%D!0+PJ zAbvBc2(BpIJ|JWnvOP5b+=ef?Ez#GefV)YU=1{a5(DQ#$3U;nyOXlUR9LMKVE!xv% z#kB;q81E?D%j=l!(3vzxs_Vpv6T&p|T~| zK=Sz|Ohz=s^)Ue5j%t1OI$VqEeE?0wE5kors15y?u2$rRZav*YRH(c@@OcR0f4J75 zNI-rP&ylz>0MPiPY#SuNTYL{BAU+V{Ew$+R!OR>zk=-aKZl^GNrqMA_G;Ea`)eP#+ z-5ocL50fw0ED2fnIX+x-(LafzI$`*tqJ?^Gmcs%wmnXqm;k~a7OeJV3;R*~@ea3}6aF7! zd>NlidWNh%Tw~|ACntC0Q%I?8bp2KikE4c|z%Kz!{TutB6|rAK(IvWKO`?RCl(Wt3 z78^~ej2C8U()vZe%NMN6Z<)QR3plXcEm0;MwCx}9$T2YT0h#=lkAR%{o-9g;o5`k@ zJ}Va1%r06e$Z)xbaLUxtrFO_MGCoZz4HHR=#svR=R^BcGHy&&nIbu?bmq`>|x&#Nn zc63SlXs&h+8(yX%rP5qa+R7;s>gfvg40Xyzq6zGEmNO=@luZ6SB~HopjtjD^0Vjzj zLclGQfn}o1t;*IX}RzCQs<=>@+FD zbfO&Y_?a|FJIHbPClN1|WRd&uuSLWMU7Q=qtfYHL@?AvudwQeeFphw5j)ro^2>I^X0o&jb(uD=SR^Vq zg5d1b<7JRK-F4w+9bG@DT}qJ6%6NQ1U9@Lo z3P3)n_&Xn@CEmIN^1)3w>v5g;#cxoPY88Yn>cA9QGaAhXD@(|c3--=g;6QgaCDzxUS_c-xGST*e$ z6WZ^byUZuv!XrFi=@Igb{R)F1LrF4O_!VciLAKX}=K9M6-hJNfPEuC%1Zn;*U(3GN zK1QoDNng$5`I~$HC*WGr10lxq)_hG1C8Rb--~F7MMB}54LY5*CMdu+?*?MOl1D2dAp0vX!sH)exnAoYQM8Fs}yvzSZ z@ARHn>_}bg>^N5U*EAw)*hybB3E|xeJHaP4C*MVQ>5DSBs^3 z*0f`e6?((Nua%Q#eN%^%%UT}+h34dA?`SJ2ODP#fqhnnvDUhc9``*x^0`y;#bTkis zfbjodI}+kAxq>oZrFh<#a2c+%GKdYpysHLA=MR`vdr~D0Kx(A&qjutMWj5pu#cS}k zjQR8T=Z2tD0NN{$Uh;tmP6lWb83mxo+6?qiwGZgd})aP^ZLdgIUD=1umTtV_iS=uI>oES;7F(A`$a2FscCh~OS;KIJ$KAk23k9;<8{DX zZU>^`ga>kvZ1n$57etp(hV*Q77q(P>^X}92p{0To#|1w%*r-jm?9hssqB9Vr-|9Z` zoIPJ$t_8%z5CY&eCXr2`~aynR{y_?w~&~~-R2|E zZ~ny?Ux#)I(iu~{#Y=M~D|Rtv@-b`rZu+jjVaqS;4fnR_p?N=x3B2^ zhI@*mrDhK@MG{)O64=>fqo#BqwyiBUPb<=^jO(A|(O(5AprKlej(YIRofiy+W-3Hg znW976yb7F=tfQUnZ@@1%S}E;h?1pG26507*DMv2;0hpZH__LH~!p_BSWPcoZlV3K% z&4XRk5JxI=Nbk~;GAVg+O7Tp^p3)8%l9!1_*_yv{&G`3#UsMGHewJRs)!@&7vmOsP zEqYx5nY|O1Cwa_L_;q-qU9F&nz!#a6Vx(j8 zeRm*zD<}Wuk{D04VI64H3}k~ERxL9N0LnO~^1jZ?Gk`YuGhPGzYPTh2Yln||zt{Dz z)eSAWOg3ZEET{p(@=IWgzsh@g_gfi|Yoxyx`yaVRD)iLtUr@NGyA&P84K9Ka&U3mZ zG3}N6T=KrATi=z+!>NN&TR+2|YKtk=S4KSakVzk%4eGK6s!I!?y43L%6~nDszXK#% z@$YZEwwDbMD%LdY|6=zs;@ig7x5snQ;U@wv-#&xI^mE8jjqUZ`|7amhpjlP|EbSJ5 z)Zc>g%3^P>oJ!w|pKeo}S7G}2c3aVOsV2AliZ$1F-sol_S(b;|@1M@*T{RYSMA55OTd#D$grtAoq~1aiN*q-jBd5s{QA53TaG1%HXDl_7E(sL z@6Q|QZC{~>IPm2GUzo|i@n&uf^Zw-Jtp-*U^`2rlps9lUwRJ1LtR) z*!Dw7p2_7{h?B?F=#p8|kRSJ^HDcpxz1_FUQ>USns%1VMAErS$kjwXrwjYQ+QRKJU zvMRG`-dI|;7Dij)l)DzuK^EPg9^Yd!>iKQ(&DQO3uyvD4-FBZ8f$h8nnx~LHcWS*|i=x)3w?FBew^LJ$2YsEwm)ue2tbr@{ z#awNmt~}!ddWFvX>QHn@i73uH%ww!Q^*VQ=I^*qET}m^J*px|Y{=?yNV&9|=cZ=WF zgqn@VOhp$=uAco9IktpEZ(Z`3Z0DjR(P+J6)e1Wi@~a3v;4WH1;&$}zZQgCiOw;b^ zyE-Y=A>*U&H?9D6Y1u{mnMq`jUT29}hd$sd>qC^xKE%S^Ka1wi=8C|aIEr~|*~`oa z`d!!hs6QBd4r-ehfD*tpCMt#e;N4>FK?yVa;7#s$#_=KZB$Cl^_V3@Xe!pBFDR#Ho z{?;x2LdQ?Ym}d^(Mn%ah*_Bwe8|7aWK$Q)dB(~#}Gcf>-ImVqR!eoBg5ZvPYdFRCF zrcy-KwK#eKo$a8dEGnI^Z+BBFzU0fq)OB`Ex1(^_8w-PlX^X&9bQb4w^Izu!(EKPE z@2<}T)MpxWW3}&-0A9z%DO{H$n!&HfXQ$T*oGp`=qS!E!q?h$no2^3iRL4$#(M55ITUPw?Z(<5dul4SAVhXwhZN`RA?j zueati3j2Z)D{O%XkPX z9BHCjI~P^>HCXe)hx2UG-();`#XhFp+y6W}_^ijfc0I~nEKO|nAkBTu<6gY|+#OmE zMuNI+cr8b69v_5izalG^xA_T?;-an3iMY`3m7mcFYNTtAM`MW4d)q5UmECz4|6>b< zF%<#kcB@gEl#i+MJ@-n0bL*QLdiexY&kX3`n`o%HrEoX((b$jn|2%je6v#07#=Uzm+9)se7TgQtbo#NQz-~ePwPj}DvFp@|8@|XsP5pJz$ zit<{=h+`y8M}<>_N)%Xk-P84C&bGN*dOtxb%b|@wGm8XAb)x!BgQx%0g~TBPv;e*T ztbqCVYG3iRv+}7G%acfFTgK?mb|X>=tu@qv@Jg!z%~IXL=k0DpFOp}Zr1P4-FcsS0fAser z^?dQHuey=Ea`b7}d+rO@GR26@x2{JF!IX@_FgRy$unY%NMkxJ#c*eHonS+2}7=AFT zjNG>jLTwvW!l_b{Q$da^wZ3~j0&jKhc3It0&xpuQWyHUF1%D&y}w{JuVpk z^{uIl)~@!fmIT-tUuL|s98!39F`S3AMTEb8`hUMput0IcA~lgm_{)Lv?Q^~FyyDML z>#|5bxM{Xz_$s4V?RLJ+)4kAvH^Uq)a`K^@PiYE{3N}{;SqhgEx8v?D4SyeF2Ti1| ztEiMZR>Y;$W!a6r1+4TdS_TI6wGsENSTwa{_H8sRteF7-8pF=kvJrYH3)KMkLB?eW}6j z$?-e=dcVKk^?ZQSS)BLb?j_NgkA6zd&gQ-C38;6|kAki#+uByVQA8z(NbFf!S;gk0 z-eF#;t9$)swr}Kft&jC|jQe35T=ez3hoy&SNb__o*d4;Jj!gG!SX^*d$s>`L;BJ>v z=-j{soP78mXv!0QDk*Y*&e4cRN|OEgNEFaVqL%h8f4Ng4Ac`p354CD{cdZ?v??*LB zi795a%kO6uj~Gc7IHvAC&h`{|(L2kQABuv8gChO}502uzGz~l6S;qhSf^!Bqk>frN z3U|EEkzh9Bxtrw3h8;8a|6aTgnODc10j)=LFV5RFqdY={oGtC_o`P}+WQuNvOX8ZT z>*4M8)(U?ra*#99PUcs1E9b%B5HddWl!TQ!12xSeNnXrLox;@1-a8H~&GSsRZrz&K zxZh)IYa73}_n^VtP>}lZ+LW-s+*9lVtOGuo!2K}cJRv1mOVCpWcoPMyAGO7#73%@Le?$dg8iKBx`#NQPba|L03gBV9ij)gvu^t>CDsV<1!IZEvG1=u;LG z8znTX30g@$DzF@ufZqd67g;>NJtkl?jK$jInh$(*iPf_c)4huMmZVKJGMsspHaMps z@uULk)~y>5n(OoQ=`JSv;`jqA&?U03)S|AWh*tiYGTq#xYrh^MLIv8C!7WIe5A1G% z=fr#4#Yem=B>GYK?L9FM=?8~+3R|yq#}xtx6d5b>Fu@BZsvqHKB=p1S6z~tGs+^tp z`^Ve+e>W&ALI{6`5ff0JkVd!bUu@j>g#4)D2OX1k_L*m(MS=x)Qf@r}s_)Hq_DmOU z`=#buzMoyG?okk33oe}dShu(LO7MyqCGL$uwH77!t5_cF5OdC+_IbPe_n!cHk|rSC zaOLLCC%(S^o;K)HLak5UcX6wW{hV&W$K#rwc|6tTk*M?UG(|nma@@dw94ac1*>~U9 zhB}hszGqZtNb5ep{Ea^6PdQYU+ES)p8qyU2^QDYVK$fY;VmO;}Z=DqOHCS2ju8_<|hdy-ijcAb{`82c?Lq7;?!iLpDaAn9B#2Bze zWt0%ghN#+!f?nuM@S-v?>2|8~08l-rlov31WXl zRcA%r1IhRr&qECGD^w|{yze%Ax$VvJ?ThGEoW3xyn93@{VqHZnz9$@N8H}k>`j%fc zCdkQaykoJh}pKv=(KWsB^Z&_Nen!nbPa0NNG9t zmnzbrT5m1yGe*n>LCcqC=p`8V&XH8oceU< z7EMjf?Ye$?4_FKT``Hx zN}M_FN&BK>6md%75`VOT^z@@Egm*E$d?bGzYX5iD(?U`_nQ@0;#}{P})X=ws)Y&n) zg@w-mG54mS#{>b3zEwPsz}zZ$yYRYf%bW`%d-2(UuhHlG9VF9z9jWnyhDY4FUozw$ zbnpl>a9a-wwe!XJwdvlqQfueCXS&f9+A;HN$v(B=o}Jm!uuv15vuIo!D@Js^jm50q zAFl*p5*NL7rVv*@i&ApUluWqT!R+FnQ#h&r#vF9Z3 zktK>azS8$NJXG?Oy|}lX!_UU?^v%QLRl_KaZ*mUD%8eVB<{Jth7|-6S#O=;nOJbD# zVaiYZPir5D4Zc6PK9wvS#g$dy<=jwsB%uyX1EWkNO8-AjZB~Q?G(0sM%g>w+2{gE%=uew3bLzGk=xN+u<~qlWxgc6nIO;vsP;zhn?(R$>z4GhrHv)Ag zZ?HBTgZlfKH9LJZFKgu30fmRjee}?0{!^aUaCYauUWvJyn_Zmd4K{$YXvcp1_;E;R z;?g|ux4kSEAMVt3W$@+qYZjn8L2ZAIdz8NW5|g=iF;>%42abNQ_4>*3{Nrp|cCx>Y zYnczw_RDBVNY{ZcvIG<%zP(((DCNC%KM0-gKz!#?Ztwazn1`5o$c5Gu1PR z>a%mL@-fzLHqxzxyW_qZeo+ugm@M`capV>@M{#0#pL7tUto%R9-a0DE^?M(dMjEN1 zL8U<$8l(gTBm@-c9zt5W8wFtqX+**RMOsoihXw(qyHgsZ%xwd%EpD!`Ob?U&83^0 zicdQ?LhPB4c)L;)>i0aDQ4gYyj|d#U1{lWHOJKdlio7d2deoaxw%C7 zQpL%s>!#x4$9DxspGJQ>_?Vy~p?zy@(8c>cu?qqHq~>${4X$wV0s*@hgPtKTzc0~c z{Tj=nGtnd6SJ0h&q6xp3G93)HgSFDSy@pc>C;)~xX`#-n+Z^zQ_Nif8n8-m=LF<|_ z3*6Gm>ZQsOHwoOWYZ;}#%FXt)T2Df1cc7Rh4>8{eHv_T*TnCN}a5@lcC}JW}-T8-u zvPH*`BmC^p$HgzoVaHe4BREa&{Tn-3{{F$Y<-`|?rmBuw0(qo~MXr=F6RT0&$${O$0TM5i|yy_3cj);#sw1n?K#4GFc zo=#4FZooXVsm$YIKb$yEI6b4^q-wx)wYe)e;$HaLW$_2E$z4e=yiJbUpR;;j&LW3Q z&yFLnQ+YiM^8=N%`GgdL$nyBNq2lNi3PcD~YF=&l_TVm{L+k{T{9MQej7>?O>}2lG zr5*sADvd+%^FQ%et-5?fgyCeue(ZJ$(XlNjm;9!#f#dClC7MPoM{k%j+ zf+3x$CtYrL-RD>p5{t{1z;qGFu;L*jw-_$O#~3EWEvw1Bs3b`$1tHqCa=&xOZnsW8 z{AVhG+#b<#OG80q2y8GePeI}P_1>dqt2@t+j2B?F8eKlke!foK<(+H>>1UG)pXw@( z?EDm1Xy<09()D&Hb{1Y{wLs47>HaH=0Xx^P*e^u%=Z$J*`X5DI!_B+}|FZYlVxe?M zvh$Tr5jgl|11~$yItepP53|t^I|sK7JFeD^-b?c{j?{BI>vW|-2IEyfeg@>~JmxM} zN@aFhycKWw%YZ~Z)cnullJvq9&{Yr zC}@vW@p&ykf-PZJyUhUBwn&XS;V{7i6f@IL=UG03bvK&fA>hn4a&r^c@ym5OC0N=V-QarkOTj zphl*^dCbR$11!TSq#*<2RjU;5Q)7Jb#W}$KSFfk!P4<~M+*v6ipg3F;D z;!_V{CL+|#@#@*hNfb+>r&hx6aAt=QT!Yf*mL%^s_1Q0_dE}VApqaIe42p0+d z4Mg(J#Ew$yA|r(0B|^kr_FbMbA}%-?`_wZq?*Z%khe&5;=K->tEN?E&>0xzy8E-x2 zg@vKCRES%^?!-Y-B=OfHwu>7rm-N(|lU}mEO-4RoqV!BzI7IPxyz#g1Pi5E|fn&{Y zVEJ+TJdaHHA%3E0tr(Q6TPgJxA<#W2SuHPX?_KmJD4aSFdsIoMO`t;?)J#cp47mf7|C z=ozseXS{YXd8w|IYKdcLxJ*+c%x$e^w+iyLclqsrK7N`|?)?_s#eNKC8{eR99w|=W1;|h~Yt)LINJd=3(uRRF3K>r$Apy zDbDHW+TZMV2oksIC>2cp^?i@uCtJ{_OVMW0(vWPN7lRb(!p3Y1I$$bY9iAo0!O&r0 zD;t}*oPyfXYFx-mz8+y2P(9-YG(ZX?2wnRcCQZF~qSE)A^G<+nj6mpZwAInJ@nOfP z%ZnwP!wIh>V)btwnudAg??x1GxVUT`S1r%W0+W5Sx(a+tij1ae1;vA#3tfoTKu-W{=qCXaVakN$uxHyB7CtZH4CEvN?;CQD1N(pl4wy`7#3 z^m=iOnxE3kMPx!we$>d)Gltc0)W+6@XLXB~++`k;zk8{(DJA@xOj57x@+pwjq|HAd~SnUO+ zC=K6V`PB!lb7o^Q+%Jt|U4;f=zAU)r5;v++o$IO{dbj%vO_H5ACwlib%vWwZ&$-tS zbybV)^H^$?He=g)wm*=pyD#B=Dr$XZ-T`$>S~701X-ll+SzNI&?^G75yS5awBExLl z)$4n}=K+R#-;*t>DJ>7?r67UAj-!?zGIJ}58j~dT&hpJcg(*y#Ji^!AyJAc2XntV9abW?AN>Kt0DNR-p5_xh_M)^(78$40JFOe6SBqDU+ z+tekirhy%9YcSEQCbim@**6j!dC)_Tj{wjmB|D@P2obh*#gC8=hDErS?)I)uGrcmYuyc!x`|00 z#}z*3YP<<|3hmOZ8%H}67H01zeA!d{PK3(3Ecoc++~_OSk0ZvlWNlsiIa3c`03BDzyt*Ou{naXya;_0pzx7#Dx8*@}3$s8m!s(~3f*%)Rck$j*zpkY5Uw|W0o3-M#N7v7MJYL#==ZI@rR{c#aHafZorS$cjFx!Ul3M3+DPfS z3Evj)V|fPz0XI;=lHyiyJyciL1M`C4HjIv>sTKHn}| zY;WtN%q<9W|1&^bN}MX(I-cN@0Hrtguk~q;OSF>FpxNuvwMWwsu2KjI5>AN*lzGau zle~AZVX9M2gmql!-alz|OL1VMaLcsL2#n+?3+@ENGe^x4j}G({$+fwAjw@y=9mCL| z`9nnf!+3|=@wUqYA3CseK67ZjeZ0l}}*2Ms}1m4!Kw>Q?PT zQ$6Y0G9h}`m7S*e$zeum0{7}S(YnG7+u}Ce=%SEL&7TmIskc#@n*I(3{`%Dj^wqSw z7A@W6SFY%DZW8ikVn6#!%=iH?dF*_TeJ;|Hey;4}{Xwo2ZoVHPBcaL(9R?N>%oAP* zi63rFc88g`iu_2cz|AZ_cgW{FUiSNZIHICGbdLy8B3Rxo)a#>Qb%H1GBbsXd3r8K( zcX6){x)0)ZuizcKL%yw{*rQ6vYICb?>(ME_1yeq+vn_OFjk^-2P9osxjujin)#npj z^ruTYBLjN{htownD>;YlRfLA@w`pC%@zSfSxOT~!#SbCnlGIB1V5Sq(Z@l0ao1yuN z=tr7hsJNGFV)(7oETuFtrL3Cc?5^bEZ`cBec4mZGf8DRMfYWW2fr#)ls-q@+td8i0 zn)&4Oo`g)rq0R@lBjO|AnaOMR?)MGc9q7KAlGPTCp^MDzO%$_N`TC@ot|?clKZEAw z*~+5tmPqZrZG_;_pj}i}YAI7otVBOz z;@7eRi5%5ZHKjn^FY%C{P$5*$)`Qy|Ll>^W9(`dAnbEH&49!tpq^ecN)L%eUlKT2> zGq3`r>o#%!>meBC(G9A0DL%WqdJ2h%9}~p;+;V5+xW*25z}0-L+1XQ9A%ht;)u-j0 z%*Cze7YZNwaRqkOyw$xgGhHdM*Fx;piNRJ3aqk}J3|V>Z^O0Mpg(oJvwyKyNv23=Z zBvM+FB61NVbz|DH_Pewrv-P{PW(nVvV>LI01>fX1Bhs$Z!sL!pxvCk?8h$B*oN?wb#Bm9*r)QM zEGHr~8=oo2y;`avv$eG=Y<}Zk&dfiyd7CWO?!)@+$qR8By%yRF3OY%y4vbdIU+H7} zGLc!}eUJs_^Zch+NJNKfFYca2_U=7(pMO!TSvkpha=yG62uXv4#vfuvj3KlfvJ=wK zTH7*;bQPv%NV;#+5o?=`GuJrJz3GS56JbEdkx{hjMx^7oXQiF4}woJ9{~yJ4Ox4i-X1A8o-`OALsqj#XWFaFyJY6Ee}2Y$ z3+}N{CKGXG$!Fv|hO$4;E6RPM*RZ_KIp>EySlL)Ub@cF7#a6a(h%`JD|MlI)?%0A_9j5Z}S2ZpPCGlBpxdMX<)3Z+|j+qT9WI<~#C6gLT zt|A&{{ZKvG`N{e)ieslT77J}>od502vNEO2X04(lX>x7@2C(vwe^BH3sD!yh4(x^C zz;NR;T(kBVCSKR|n=4~(My=8)bPY~F5D4>5-H}BdpWZa$8?_2HiVL0+otKG5v{dwE z;SN$Ps*X}$kux=5;kDsO6h+6ixAu}87I-RaqE99-RhNDGJPny;?DUsF=E@WP+neb~ z^w&|iFBG`p>-hyfx>L0h*1W3@DV}>dM6K2#u{}3QxR&61y;t8ULuq^sa^s1}NJ{)3 zB{{7BDy%T)*IwpSG$ZvU=NO%*+37e2-#HT>y|B=`mLyR5B&4rXSgig@0n0;FXi)L@ z3{H#}B1+1u_Gl}OTdu;Usg`o5#LPJ}IU}47P6{W=&=yj>2unu*jNBf8HO|7^geR?( zvT_aU3^WQ1YI| zsmhqe2K}?SQV7X0tp~eN*S=1G0=#-r-`>G@9H}vy2BHrQg~X{WZTnvGF(VspZ?Aza z#M@bmx&OFE9#s3&BjKafp!3XJzv~%fe~&z z;pE*y2?n)$bgT1Ap$>;7MSDUTuN1`hR>`0y96I4_`yM9e7pE74JUy9ksQLct$#%Ah z{`j4h>*Jo|$H|ezst*<#Wlpk-#{57%;>~Vp>NPm1s3-T8EoSlS4{-Dqgr@X5D{W_0 z$AwT+h)&r?S+W!FKhPY7av_#$0xnvz|LiLVhl6xe)MKq-z--2gn+4xyOIEitGDIc* zN6j${tx95>EF@^RZ&6Xm*N{qs8@f+OI;WyXHN+Vo;VLS8W5f1v zAsW^^W#xykRZBZP>t>#+HVXSQP1m-j_-o_*KF6aqJCjYC3Xcz|22w)d6Ejtx*9Vdj zpJZ+Cfv{}!t>cd)l{PGTPSoQPl($Lg)QJi{CyN#y^8s~S(JD&?Dq|XK7QYSxYs^kI zTAe?I6Jg{TMlC&GK^t5R#BehG{>f|w*SrmE#z&)+@Xlp>w)7~I`UzK-^U`zi8%X(5 zU`8f}1FZ#RDi*CiIUm*FH-D999EqL~$Lbn@l4g)H%boyK`c`_z?!MpGpxiaWnvm z^P+V%v?L=&ufiRiX0`0rQNQ8#QYY%xj!hM2T0&(l;{JOHQC9?qG<|=S- zrq9foZdK6UjCrRRFA#3t86#rf7OLzPYYpD#t#LO4BrLB&GrPb5K&yG)0QBCQ)gax)H)r0)#4)iZ8w*=^;>7gwr;yWRJT2G zQ;e<2mL37w?lw8vsrfMHqa(URrd_j4LRmg{m}f?%u3opJsQt6SNmjkMsz{7a)WGem z10%~Om3RU#8s%MC9EH7@)~CvS9t~$Yp5B!}hlS5}6QT`M0cco=vF;_b@!7lGLCs*{ z)WRd>4yU19%edlR4?T%x9lQGR60`zIi1j{1&1u zi*7=13npt$+Wk?Q-m9dqV?5PuZvRq-{1!9+X0Bu&iPo&!?urk2Z^;!EU&O?)wIjKYpZ{TY*KIc5PTl!wa3T1 zBXSkSv+S{((0;GZOBNKL3E_8!*+=ch)ExWl53ibPtqqn^zENa&9Ph$J)KdTKp^HFT z2H$Vx1?_c^nP#ob4dG4ijMORAOlh{C4Xri36O(_{dm+LasO?2Payxx@*{4qLDlZ(c z^`mPlC@-u?mX8}1*8wY=d=)h0&1E_7{JTJTlZXJ7s6ouD<<}ym*ImrW^qXA!Yo^_A zG5Txd2uC*N{p2?r=Fq600MIJW7P2+Oa(-+W0L6ZEFP0hqWlq6qWa%mGw+fJR#|{o= zSaI}vGK8&6roK(uc`bhM3K{%1svvO$2<=sc_T(z>!;M|>sTG3Qn?w?*?8`gU+Mput z({dk#*j=Ft90pil33z@yY)L=P-JVnDF+>i#3=EB9Wcq!ja^z0P*BMcn-PyY!bF#+&}X(Kpgr1zzRP{nb%nx z^_NidNy^qQyj>~Wg*GM$z3WRzqSx1yYIRN$|T`v1U! z(B(4poX`67VR;b$gDw(?GXCrqZ+`FHfyWWPBF# zG%x#wd=#BKX2)MhlFSQn0w|v-Q2-)~BtZUbeFZ4A9vc*ShEm%| z(cfP37ynyn|Na7-K7a=sHoa=`{gWryP=Dk&g=P=T%>GOYtHs@v2XyRm^ri1WA-fG* z_*3e5BXh%;dsxEpv7qICt)}*{Ij+HNbZBWQG0cVK`s2qK_L2C1DXbCFV4fS}ocIs(h53;6II)k4|_`8gNks_EMXMQ)64A7Ht^i)cmHZ~Rz*Bw*=UtYl3 zU)hG&8h3_-pcrCWR(ZRevK>=9*XpJ#r?|$NsQAT1T7OYG(#iik`|5rP1ZMs^;6Kvt zkB-VjglP6W`=4I^I*TC(a)1|5Lu;_&KPZJ`9kLnUT!->L~Ha<-3}BRM&ImDVOpB^pC+p7 z+Y<2p_0cJ>0b9jv3}r5=$r^Y&W~J1M9WAGn)v#Z`e+4zQhVDAP3lV}}H|*#A=`*e- zevhZ(!-_#eA&g%iAEN2N@8^mjA%1_~&|eapfeeyJNGS$o{ur3saswnsW$}la$5_=iHp+J6VC)^&&yg{p?NjJAQg*X3b#CtC*+JsgMSNhJ9 z*Q%nn-z)EO?=WESStb9IoB<&uqCvrd1;W~2{plxUK#G4 zq$D%@vut-C@I!H&NXX(ywsGs9pZW_w)RA=M8PrV7V_o!*&O?wT3jQ8ma@cG`=@qqG zmKz@sq70xUT??$G5{tLNdmaWUG+Oh9m*G^yq5R#p6o}z9gufat0mgmmgZo1t#tbgn zUa?0pSRP3Ns^*8c0dC0&@s|?)Gwwzq$>3o&%E*oUBR!Q#$Zkv_B(}tMeP)GjsD!-l zZ}X+(U808=CJi-8nNm-3r2d?P?1?={OMkfV=B!_9C^l z`8mK&Ewk^hj@3LA%skI=xbTb+dvk8=bxnf=Su&6uT%ypV60OIue=Bxku|2mK|l;>mx)$*vqTf&JBt=-mglks%=lwcJ3@8i+lS%FUVoe z4!p>0U5k_}dkrmVv zrLgfnwRGogb9Z;cIM}u{Y6?*3ykPS3Ej%dVzc|on|3n}f22`g?e;&0UhZOoGAo3O_ zulK1Jvr{ROF;W|)?q*XVjOv69w{;7rD!-%NSxDh{Z`qU5_r&^9AAZx*GpDm%U)#Ye zb%)Q$VSBQ@|7lzRxeUAk&ipB-Hpw43Bn?6ef&sWq@hm+>30qM}gRhU*^4F=$GMNWJ znl+V#pKVs4(dct;AkiwVLyz9!B8P>B7Os}&Zj{a5}_fxc$d`)iB;YJY z{&L{MCUQF(@X_c86c|JXJ>(@`$uFd&e|(W1$V6o6&yguOr|{x1wZHCs#U;)<*BY@| z{dei}!{4RP2;4XTQ^ra9zrzv##-wSj&&+>bkrfje0vSOOqU_KUdVJ`@`E`NFV8r}DVHEkWsA zSMd@x_UC*r%vUN45YwfRZKZ!a7Xx|jUrpfgSCRotoLtPgZisqKzt!FcX&)$Ro!=Xm z6+uWcTOc}J(D1R%%2|iWsG7qW)Pf7d9@YPooeyY9`ieQBxl3)Nxm2|QO|?19xHvDD znkSnasKP=S`u`~DSD`Q^84xFQYYO?_@E<>Hu_HuxG<2 z;lB=G*$NfF%NIAac6Ag_rliYN0K3rDV&8w980T*#5L%WuErj%L_TH@{h0qGMp z95bd-n7I4i@<$4&<}eq-g`3{IHtxyM9`g;0w24~NA1v@jW=8Sx0CAPNxo(1OtfQ-2 z%+dAmU)liv$#nn9^<*%nKvrT;iXbKB=Jy5fL$m-iVqcvK+! z8ZdHyg=qOVE}bAm<|iWXEp)0riDulz=oXjtU=z^)>YaD8i$wPy`GuXnKN$DUiuEw> zY>ML(y5im}@8e5;uM|HxH+HDW{{hKvl*>?^h2X#%%Qb|r|NWXB*O9fMMgSV< zT=B+C9rP4%T?2{CQcA%-54desCRAWYZ4o9)OlvaEvU?Ish>M91Bq&qye{b-rHqfMG zmXa?ctsR<+kF@^_sm{Q|CY7dI7gCQkU|$x(zqkV!~yF#i+nc~<2#2mi&2(L(KKt`H|dq%?{uqtBh6ANfyDX> z>gwud=H+quFfRT#goqOl0Nqk7QA`{dYD;^^AFayhL?Yp13n2pwtRoCSlQ6D@^7p1v z+FBn}KKvwwL&FQc*N#Ms?>)L>4P80nN&L5oYLw3S^hv=;g!v;d$f`HB3I7njN?jt!vrnq5H`=%BCiVNKxP*T*$IaGz1~*(UpGJ z)FVOblM802%Hq=;aT%%?Vg>ruQEh^Qbs@a*8nozNJm z6(SJ5fvjwFTA@Ao>3U8pVwN_Fu5TMkdm|e8o<&}@m#}(*IaT6}7RdR^`%;LXU>D=x znsE6=0ME6L`T1q`u9#3kkT7Jl{R4)S;f@SofFmJwr9M5(ahZAv{c<$6kKKN(HXyO+ z8|zqugr^tymtcH2HJOXx@Al#wHRnQ1%jTPIQ!*|)=MFa4*`2+3J^bM!;w7L(DUNi} z|3IUA>5;@FwYNT|Ry%cMuYU@<^Fn3xPoODPNl@&{#kFxAA!TLC^!FM3{YB;j26;CH zKuCOSQ|$NmcW*|gA>%-#wACg9j2jVWfIMsh{;@<5OP9l%gAz5LpkV{D8|y+nAFIT0 zzE8YsnW$%dolM}NQHAL)Ch+C`^4?iI%ngD6vFjNRu>lox!1p8u)MwB;s;0Dm9;zyK zkp*>oeqX=Va_}O?WY^DV{e{sv>qmZNc&t~}AQ-qf}z z{+?vwh%zb2JKbqx_`ae7*VhUMq%~FI2$K5;Ewe8>J!)y}6Dad{8#PF5 z7*5n5S9|GmrG8#@-kcPVzVi@5f-S4@*E9im#d{aV4g`9(Y(>V`KFXuMJRTW%_t@6C zSM6nS@10nwtH>6|w^(UoC97Lv3V&4p^5YpJW0+x!q&Z}{`nSBSU%0Zp?VMUyYIp+# z`rNpGo;sYDbsDzWp!2$&t*)lw;8--xFz^T=9fF_mDC`$Ni)Z)l6j|Dq)6$3rTUwU? zgt4^2X5>!R(&=-ej#eFRT%j|U{}6P=&w>nm(VlI;Gzq zIlqkiMl>H?n71_(kn16v3B9rTsldR6O;OKDqHuAMLOqkW`2MK)r4v?11=%pWae|2K zU!MczTAR|PLbZ!6A?uAqG{1!f48sAOjFcSer{U!!lG`z$yOw6DDWWc;slY}-{S3-h zv;_>&<;nl`cW@dAvfree5Jdm6KA$fv_&~1aTmt7e6O6f}Od`jR=mb__xt4%RUT&DH|+r70Z2Sm6^)fT?t#lt;1v6Z zfxf(@H^^IB{*Z+B4=(;Hsx5`xiuwvQF)wEYL!TJA5 z#eRbD5P^k9_@}lf^$b~=27@*1HYiRNS5Yf_Q-otqvyn9c=~t2bJwANw-E_uEyayFL zy&^O!%%u0WW$x2E_Np*XY@f~ofn-Z{hKKw4UBc5bQ~^AlGz?3hjcG!9?y3&_#k*;& zKXP@cC?Angp!zpwr@}v$V)|lKElaxqaX8_8&LuK$;VhEY@Iy95@Ao?0VKQwl!3+4`TOaDxQl8{M|kO;6~$yks6Jod7h zqRNI27{ud}7lr>s@eJa~7!X*NGjBfNHyN~0UuKEe11rKgfRoexSfQfna=6vCgL2`0 zQBM#knmhu%=Cyu-*ky(L7Om8eAaj`wz5jWX2=Y;{zbwlC<59Gi;ijyu*+(Ww7VN}f zo>;(FjQ=AB70vce`^Eg)Rbt9bEy|4@Vud3Q! zQ}ig>vA+PLUetZ^){4isZAF$=!?vhpF1#nLLW{QdmzC4XBJ!tEd|V(W2)`jhpaXfN zsmX#|+8s*;=7|z7Q0;(-trKuh#_S~hyGR7$NCIFO!>*jA319H8-M!6a#kUc0<@n-RU(7P5r8rA5y975ae?q{^$SA`J$kYmrP};pePRbbR-IRcZ?Iz8fEMO;$!mex-^>hv0|DC*nP6mT9 zvHXjhtzVYb*uQxu_1GQOjk|*yi@ofa4%OL@+hX|~=?+@X6tt~xG;Lcq^M;R+<2_&U2g{B-hH2!*X=vV zAIWIg=^k~1@XqcQ2gAbtxOMPIJ0`_=#z zt@B<}$nMa>`I_uT=B|{2KQoM{)gRy9gg1ftc$kUwCY0{WA~49Hfr7L+?Dzm6RKVX~ z8tXcULe6AoXGic}KU6${+wc~EvEaRzz?Ra{33T$pV!Y38j3)~CeSc{nCjpUTmKb8H zKfsd2;>K9Zfvk2y-z_we+0Yy76?DEojlTeX1XI8r-v2>`{%G>BmPPWoFKQMw0nEF! zxeV#E0E(F!y{8QrpP$Z1QvwQcJ+L*>RSe0{=nc39AL{CI0BYD*NEWxUNkF^V2?%A` zkc8jk;D-mV<3YSPtPNwqZdAGBgAI=T{e8#T7c3osKZs#%s2~x{9Lu|oJIJNjbIeHo zInYZ>NQ4TGI@su%2>PE(!1hN*jzArc)~?|dG~1b)oOjs7?p7E}5$Iu6OE}gMT*oi| zAeY%~gI=W>J(+=QwIgSWcRS|eN4Ae=U1q%WK~g%Y7dvMH#?rwIZPi9uEMS)$2s7QH z^kb9?V8y)t3h)!DgUuPR?3|ofuODCJz^I^t$W}et#+5X`UmhZ0AMnP}Tx(P!XjXRs zdNU#G5e(^9fMjPROb@wcZmnYljAg|GZftEe;vE9v=_>*9<{fctpTTaEqoKNAOn^Q; zdE9d?4{QP8LejH~fo;*e_LE{FEAL}X!K%;CYxz~oO|bts_l_hfrmL_mM4iwJQcVG@S26vXamScaqa_lpR~k^mb4>k22;p=Xt@LO1fBR-y5CX`! zF-OS_Or;?b-tJh6bpe9v=J7KgG--Z-Xw<803CXGJGs7`t%xO?PTnQyy#i&%;csJ#~ zvH|!b0Y-nY4Q$h62K2BhSpzXUE;Y7=4VVWNlj+9UUvdy{Xd62nlCZof>ib(g#T8h#e3>R#{?Z^TC1xKwt#~j&4y8Y)}2{ zx}n1nJYt?=J73^;W_^mqpm*zzKdLov;q==Xz}*r9wqbUFt$McrVLcJxygceO>>$(B zV?+{LaUB4|tb%0G`m*@Sdj9s*QKUE~?rp$?8FUIr&WcSST4Mn`m>Nb~O`7!nfLvFT zKy;ZQAd^xn{|=~xA}Ny-oF@23P){%CTmO+VUS43~Q7*Sm#iKIh6fLF2Yh%CLm@Un= zH|p!Q1}HyM9$AOb zIEHR)u8$ONcx=|4*LojTO_g4M33x1pK2+{-!L8T8Ud3|qPum{Np~OcT$p@zhgzO3Y z8u#2xG7~BYualR6?C+N>@y4R#C?jKfEqGr>mGwnO&vN+|U`(i@b4j&c-x);KPv|Xk zQ$W@w_{>Ri%AP*GHFil?^Cf-apQ^ID$CEmK*OQ!9frEB1J%JHN1IEO50jZCc@6RUs zQTjD^RjkCj#pd1Ds;{CR%Kx0nZG==vBU$+7QX2`^0n5!ut;ej7F6zD%Pms_Pz!Ltk zf(Mf@Y>Sx&)mQ%AgdCm6UFHX`Aq7rAMGGYz9nx@MTNy-__|sS1l!>~ew1T9J;r+({ zXr>?y7?CXMoflHms1$yT{n*#153l>a!?4_L=70nG4&~eh92-GDzyPXYgsO<)o;?eg zQA<*a@4(+hyG)x!AMGx6B55VxPt}2PSd8b;ApUl9_J=ff_cv`Pr*DaBKsl92{cJ5b zGrHzrw3FQb*<3>q*4Rnvp-9r9jh1}vUcX|V3%MBIfGVCb-d!%Ful8xTZNe9d^F2Fm zN$<3*<88^j2@hBxuU5iR>%YqKTJ>p;tmN5>$^xJpF71`yHkkw~o9*(nWTvr=snU#j zqos}!^LeiyQ)Ao1udvy69=m)Zw-Z<%9 z-v@=S$DlT-=G1bpUkjBj!n+1{H2xz;526SR$RHw)^DOT8@TPw9>-%2#2kLkgGeECm%(l%5qR;bF=@=MifcuVzL|C4 zg9?QhWD9d|7kIuhAMCA^sZ#{b1)HsQLqx(OW4!U}Gj~2SF%R%&U~y&M+Inf=IoOo>I3nDxwbUd@t0ZXP8%lr03XZi za-PN2oPsiQof_NIWjV>1H!>kQ;R3=Bz^EO;?@_zIGwk39DGMP1eS!sZD1rmtSH!7X z*7a*Kc;6pT3D==2VpF|JNy+0#VM%kBF0>5pR??D~u>6pkYfZxS0jd`;?Y7ZM?`Pvj z(R9ovSTcjzLS2ua^3J|``#CbqDB~P|Q7;`jgDV*2pxd62sepvX6{i`C-M58{v=0VIf zg>*`sti$xfKLQGxwl81|IL`&YLgQDj-!IrvLk9w|CM%y%_-tcVus4|R0as$r;T>p3 zpk;a`e6q%?HM|y>{RG-^D@J*JX zUvI%pM@uXZs`JW5J9r_tT{%AwV0O)b6&JZ2mZZ(2!HRD|sPaumuu)O+sT^7n>S#K@ z<-?F;hM$e27+7%nHFE3zwL#W+p2eL`?(#Jva<>{3PN>~eR5yGM&HR$rGm)6w^2Xgw z-GqxYPVs@7JDE8K^bIuChb3V7O_Ig9it!7oA))bio8?o!+xxgVhJ_`8WxfZ+ z>6UIAE)HOxeylW?7qk;vPg1OXy*#FN zi@Sz=lWL^L&aWxTQLSdl-N+lZi8$=?&gu^k>#!7Ge!N<4cUiHz94l~$nAibR#ovyQ zagu+`>_edEI(S`Svu`2}@7(09nZ{!Cem^I-42XQWkF?+oQBMl$T%JmuA>$x{$9VDp z1a6Gs+wAFA&w^t5pN>RFoKz+Lq~3E#Z{hYO zR#^-AknXF4Twiz77%%uH(aIC4iQ%97c62cBpAq;k1BHwRASoTgoQJr>Mu;y&ca)NN z7$?bnWngm<+a^&|!H61^luaT=qhcBq>V2Xc({8oY_40mIYl~2Hrl&#c39SfW!7OWQ z>$&en)rDm$x5;DZXwgWxlf{3g6r61x$e8w=?)Wj{1|W%Ubk-RttDyJW$gY~oEr@owr&X{ z)8JXIaaAR^rp*sCYS)%215=v74kXl!X^y9FjT0TBuQMYF#@D-()QseTPddg_;M6c#?NsiK z6l$2Q^gO0RlEIoCW!C)+j^F(*Dre1@6$r{sXf_!V03yZkagDK`f2sS4uG5KM<%G|w zg5uiu%%a=Af0ZY166v7+$Wsa?hdopg^eu^xX@Tr5#XWjZL`b_WLu!vRV@yXkKaF*r zj(3);7>t9u^R2@9dI}|dw=uDNr{@BQ>8{V<hoBFrV4F@NTTcYA!hI&)>GXaqMWcNp^A+8En> ztBNAQs81!7vc9=D5bG{I5yGD&so^s=f}juM_^KlDuxU`rCouVj^DQL88cuPY+(vj# z@3b~#ADt#B8fB2h$OF|0g}F^Gl^x!YCA>HXCiy>`8SkUkZ5pRyrVLooqLV*S1)grBo)2^s#v@5 z-TG@9o?EA=fefLH(}GxQ=o@!JQLSmUB#8`-Y*q}K!H`}CUFbuGFsa)RlH3m&=@8u2 z=F^X?SkiPhzvet}wCYhYA&u;qiwuUwc)6)k>%j-msX~K2;8#W*VE9J**)0(Ly29K5 zYgB3Cry=qSxy3!7hlW8qNJqh?y`1J}#3+lwTKF(n5Q-T}%Ogc}D*o3l0M}etE&N}ANlCBP#kNDY9l6$A@Q9@7~@Ni<6U+b#$jXkn;hu%hU!bZAW!PYEyT1prQV@kp-KW;bDL~$7gHnL-)!sk` zq6Vi#Z!l@0BvlyT@3B=G8t8tdSBEDA*a|*!>^6qcZJnWpBi3*yhTts&nYLZbF08Z> zcYV1ARA{gfk?Kcb`Daj~`}NOWVv@-i={I5!3{vJ>hCXK4Qtjj++N?Jt9sG_fo10~= zw$=x6Ledv$L1`9sh6s0x%8JaZ$t?;K7zhFuOmYL1P#Ul1QtH`HT08>JuDR0svH)dP z0{iV(0s~%|dKdpSw6{cBx_$m4&HLy@32w^PwL%EdCULy$Liz*K=m7-z^tmXTKN%&O zc7?Q_JTIjR22*2J4Y;V1TI+rOCr~|i<6jQxjV_U1timP)45oMd>dA-5@5(31Xhq-g zKM}$9e(GaFQ%TNKZe^?p+U=9r4T+d~b597@Fb{7uSCkbRxD6X)aXeLH7REZ%>~aBR z+eLyvUhI4@@W@bj<(Vi%J|pR}vk%$)75%*lQV%B~=WPpF3mB4lIwbSn<44yMYbTkf z0y{YPQ)Hi}c6>DrE}ITFGIk$*5-TwTE5B?dAAoKXE3)ShtLNp*b~@cG!zre|eO%k~ zL8ICd&9C{VF)n@GM|%6$?q}jv`#IVAVw@)b?m&QzWLtLA3w&9HplB1}Qi0NFo>_?+ zn1U=Qw@mc-lldyn2{ASE5qU`6e3Ku*(CpuWXI~GsS#0vb7rbLEfSv+ae(J3-?$SP? zc#E@{^|_p2b4jT&N!?Cu+8k*XgQkWdH#qa8{HI+=f?bWWF*NKMOztGB-vO(h_yotk za}jpTGLclM2Y$!VirvNx#V+*7PY@}D;)fFweX1Wt%gvU$iT1<57*J9&UT@bx)OlK8J9tzWmk_`t637nOC-jnSMk+ORtEb`Bg75xJ_q6Fs<8^$(3rsJxJNP! zx@ZN*8X7vKgt{1Ss)o}(p`O_vGAvJ7E_{OaGR|;|1R=$LMd;q7|29nApH=OY!R&T)58tGwwYw976d=+d(hEI*2&#`fauKa40 zCemB`iJ^C+B2AANt0RYref$Ow{YS|sAjV(-RW5~V8Qm#Dyj>PU;swS73sx5fh-R5b1iLEn*)Ecj2OoV1orP72LDF*eHtZ+etf!GmJn+ z5DN-OuLqsr4mJV?ck2S{`8k~yv1M`GArU?D8G{(WDz+xX{_##7lzc1r9tXA^LsH|Y z|1i;Y{(>sjI878iAjrWQT5}beGsTrIO&)kRRXLHK0Bk>iys9(|)(V>PbrPE*1$x>Q z5Vz#UD><3(B{9%m9Unry=3UV$kZNB$*d#1SKOc=70)QcVA4@*9KsHmG{NYpgyX5{q z%Dw}d>i_@WxVT*7A}i}6qX<{Yh+Hcp8Ie);jg)nfGBPgL7D7hIN>Q@1iECsN4V$be zTlW6HZhgML`hI`^@Bf_tIrlV%W2$@=)XoGIIfiT0La`STL9+vzm0dKm>ZBl!E}@Dt zM`J?H?_GSbYs}QP5X%=^anB-=2-W&*9T`qmx@3Tyq$YiVm!2R~(@AU$ z)i!+>O~HCb5W%@3$ZT#rcyn)q3XK;?`(n32Bl@N&;ZOPt-Ybev;Yl0K9Oz;G0=mX^ zSVy{UE?--4I&DqUrL#B{r_*?(mQzSqzYx%h9=P({cWcA$lxSq%w~t&4Pi8ox1Yv31 z&Y|4u8OD$e!^r{PUjWL)g0$KQ?nP0VD5>-SsD}`#i`p5B>9jm<1+GtrLd#ldIS*-r zkU4S}7uo*+FbF*|lo10UMkun^5AmGB3*QG|EC zS81tK2`acZ-p^E)!gK~Xwr||Ulgq0x+p#dy6uHpS6N|ih{?_3nPW7<*8yy|G21}rc;l#Kn? zCGmSO$W^H2_cGSNZV%&yUjI1+9ER^8zwq)M&^Bdiu`_dbckjOe%;n*CEjb$+p`$tt zoOBRo%rt4@g*=jc(nqXF-s=hS3DM%@{X&*uB%)6y38L7cG{h0A-ALdf7v_-nKx zq#)srB+Y`X?DcyBUJG{rIT&#DJX>LU?J?qCMCs&njm-TM*+L^+aI(7TKq;T7Pw93L z(hjx`eJxg$1!*8tL0|@O_WWkLFab=Od!H%`KU0uBZz!JX4pQJI=sg5VQVrZO=SjKG zO2W6nxQ(cf(PRzW>yeq`5T*){ZezC$A|DXzmsqwZ#Jlf&rmvI@;_egRs2l;`aC>kg3Di``Vx;opgMJb5#lKpO3wp|h&}&3OktCpcVPJRHNdxjf#`2= zfAy7f+-)}*60Qi^u>=amTRPjb_2L2)d~)K)6kSgPPwuSVR3M-|6Om)SEPY20gt!UZ zfNwc`K;bDz+)P`;B?rLYC79{* zR+}V+T=W=p1^(B#U5h{;NfB~rY_x`&I$OGNH&PX0%SfR7MKZ8H(hF^pC=sFxHh7ff zIZj@hG7kSoeh#?1_)a0rCUFGg;JudFb1G~_PU2RLxKoKJ_~Wi;@;66iOGO`nX`nOq z^$BCOA)uSPQ8b2cC3n04lxe;Z`2=?|I5>ElNh{tevVKpsUo*5&A~YVe8w2izZNZ{> ztS?^T(F4#db;3iOLh)>l4c}-7JgHj!xyOsQ#XDIxBt#zY1R}@J{)qLIlmJ`uzV}y)rK2J_NP5wkQ8|Q06C>J`2v^m z0O;c9nthUe2JDpwsF-WP7{Ef&8=h{NW?zq?ykHz!d3j+hO`A}9i0R9Qpc6_3%xD8@NTP93LKg9d z4UAZuAuDMgoe1}&*BaFd0u_jYY$KtU#S?vbo`{n#1+w=GHw&GqRy;<1Zm@IF<6;^@tyDEJ1KKXU2_(}ip`E~eTeV!4*Ym>RK9tKxm~ zCsPZ-_0aX(6C)rvkZaT$q%sri z=?jP?cle!W7Xe0k6qWVEFy6Om_sw6_jXy)S9x023({C&9yLJuSE3SS-A*u+u5lI=q zyYQc>A~D0N)8{#5(q;bDfwH5%A=$~xq$$b1%zU!?D`3$DfnIQiJQMr+;He;f(n|A& zS-A^peJ`qY`z{o`+q$u!2_<26@KS0f5*8c$juZd3@ku9rJaFtv<65vJ!xOd7uAv!m|J!2tW7V?N;RK`f59ukAi{8o2~}1I^cJ2xi`IA( z>&*&v#nUESMJPQ54Z^c25#rG)FTwY{t?ZbXdyog zydnfOw%jFe#enLa-2Ig?87~5=jL>b|!<#mZJvL$uEW^4}&|=VJ_QKGKwX~Iotz4~p z+u`O8*e$=$j&wb$HPBqfQN4jHP!RAhhFXBQ zEKXi|jYJr_3F@X3gcc#=TUK=2@S*ryJ^N)kN-~u0oi_mdFaIy_|KP(|a0aSHAAu8) zbVv{Zo^n&Dc)*)3$I%m?K5Jl0!0)1{NI>g6E`X};+?mcN*EFI38`sICo^dS*nfKyk zBTJ~3r3v2tEU}?kQ6CL4B>yzZ6iZ`l%!MZxhcMjW%7QtFe+9$(@-W~YJaW~{AxbIL zg)q;0Q)5ZWnMD(7RrG^)k_bmU2x)0K(|qB_tlFE$8IDkwi7d#{H{M7^!9J-_UdsmZ z{u_v`-ZiWBy{QN>?UGZ|HX+DGkgF%a^25K|zDsC8h9ZkJsGV}Tt=Z*5i1eZC@Ln#6 z()!$oim5ZJC>di@e_awKsDtloX`*~YKem!giP$&_v?g&X55_%jUsC|G;b-ixlZZ4> ztW!?Xsqj2t?~A?>+pWqRP`%PhSI}v;&75YCRSsrfcNaBVI>npv#jic z1h`PRuuUpR3z(D+h#sgJ7s72&qa-kSPy^*=WTk@eTv;j$AV~QW&;@EYanGN(7R;fB zS3oq5q?|ev>VgPw;Apr(*NlQEThdt8iTgq@GJD^%mqrzJDJ~dO2!%|;J3Y>}55^52 zV-Yll81a=N3EWnZFOOEhNE&F|!h5XbdGRMH^J8x@BJL}G<@xUa?KH?5qj)5+tUo3K z>7tC{UW=1&lNodGg1_Yh-05osYg1V~IH@Gep}hzqh=r*_F1s690{pJWS@iphi@SuB z!l6q(f6>wxa~01(RRH@;XK!k};#JrMgid6wcFC0Z!CM&eNHo-Bb$MN$uAB8 zsI)E1yO#>i0gr^4hD{=-VDf?x%l<(3oX`F7n4IVSZ==WZFdwLYP2dNw>C&EDkOQ2t zb)YbTmfe(#xl&+ySMa58lZKH)CK~XC&s+8D`~l_tQyRsijlSIrAM2vqWF?-A4 z!8Z8@Wl9aE40{1F>i><{_*pNFnX~8iITgAhT)-v8TLCV3Dwt^({u+sCj0fojTyZgN zg)E%W4uAR59=6*Hs)dKJw-ymS7DZWNyFDHJ(d#GW#)yhZo6i)T!gf1G(i^H2RV~vP zD-#B__!2r5J~%V#dq7EtQV?(^kY@7y>F!a#j&HF%!~dI^pQ!1huyJ0fJUaLW(HSL$sz6+ zwj3g#N&v%JO}de?urfOO&k#PYz%rUj+Q2rl0P4y|AN}1!y%1gvPyL068c!|_$jqh2 zl`bP%{B2mF7{r-CbyB4hm_C_->M>R&4)DfFRF0F?4V$4djlcA#&&#LbSn4jlIYYQXDBffj31NP-N1JtlwfRb?PE( z7B*%#PKS?W6o$T2EYzu>iKH8Vh`h?s&i?^`cx~fiwFM2e?w$&PEd4t`i*sPoE6|R5 zn<2ENh#Bb{dfl{vC;!vL5d}RPi3%2uZ-}LVgpd1IBc=in)w$!DO%R2eEk66{>|$DsPWqU90QYc>^*&6ASN}7$Dnwi zC>3HCTAXB&*9;S!DNDZJWE`?;%G7wNk~(np13Q8%K!~RQ)@Pd}sq}P>jL-i}x@<>; zHjjV~WP}N+DR=FqYs<$EejdSpBc#qJf0CDMzDD`+>3#H4n78StUxZ_p$NuB72i5Rj zl-)4cbusDYlkvZa!7Qdv0UO;Z7EOhY^%VaLr~5l3JW&EfT+QSkn8>)sBup1NFN(zQ z$_t%zr!geKg0`RLGeFcWTw4;|zs?IOa+(l;F}qrFk~0S*UInOf8Gj7e7c>sR^7D~1 z2)X}a+%!J9c0lvs?T6clbMrJl+!wstJpu5sc%_gDJqj3CiVODtc zvI!66iC+-YQr1re`{MTel>;C2>$N}ZwZFGF&%6eju1C`Y*^kQ&KP;K(eb3DJcq6*S z=@3lVAFh{iwbXw0%uD=abOsD3-igV)c%O8OON)?1{QW}Z5LmI-Y-Ks7O=~@h<$xUp z0YnR+e8$q`@AcxTiJ^tIAD*2B(#vHI;0odYBzFI~95mnL?PV^{8G26uP9U2~TB`Uu zUOjVC+!EzU?f>o+F~R2`sU_Mxto!wijb4);$v1O%7M~G>OfG&kz%AVddW66N41On< zKn1+edhv|}gFOD8mf^J$xh}}$(VNVshXer}u21dj`lq-Gf{J&%?yTq}&ZXR+WNU=7ajiiiWeogQRlg1K+QR1j1K(d#+%KGn*m536T4wyHS>FB7x zxkUv1c%bB9*E>*IBl`vj|CWPiV(SYS6d3eR9&R{hKsE3A8*zbQ5+lu=kNjKN8zSD# zqSnX0zpOh-8PuaXjbjt#VxFG>W3kClL81Ro5)0T8Yn;O82yFv|9Uur0%!xk6$AIoa zcveOoIRqN>+e;(v;tGFA$t3ZEC#e&j6;rCBxh z^rZd_Df{xp%nZn8+&p`pk~}L`Wpg(>Z|6(o{I!TYVL};)&qOc;W)CJ$6MK-YxZy7 zNsdBF$}#K+8LBbNRxRZ|ua8nqp=f{e5*_(7vJ0T~W*Qj&^HI)Ffe_+q^V~D-&wkcD zhjn0V!EvDP?P`cA4B0puxmEa#6?nc{*p%x6{F#rM2wmPNW;AQ}V%n_K2j8l@D6BMQAKEwJ{0GA@XmrflzPsfbbx2JNPNfUo1aK zhBmN`IMJ^A_PehXte=H@W@w-9b3nzKf#y>3H1zjR$sL*+>=U zT+)?xQ?kjZ)#57M>^ps#Q!Qz3Yv;!bW#6n~$->x{u_4LhswlOYeoTA)vnZsM(s+98 z*~rtv!sme7DDv#h^7HLp?ej}weg(%6!#6i zUEzC!MOMleqtQbOX8Q&P21x+6H0)5j)?#~nxGmM0C?*xHa8xNXn}pT^*31uUu;?NS zE33>OzDiOI{kz%{#t^-mwlC*+Is^vb7&c%v!B=Ugt@%TyMg%d z{ce4;!nyW_S|lg>-hI`XcIK9Yo$2WNkB`CxpNaEbjtrG%ft?~EIo@ei&;s7<-TFH6 zOj2;D_14$}i?_Gh8P);zF1g%sq-E@~2*qOUdXFuzgPH}Lk1(6<(xr1QQz~wNgOjrT z)$i-Z;?O5i=0$+8vt6BNm<5vSulu8?rmTfCOo}YAZvqiNUcD}m0HDu@Wjn!kypMD0Dv7R_yZtpUs`4baA%q zOU?ev3J#&ix|&Qm?|nZQ{faQyQpOB)q{2^A;F@)-7-#?|5dbyZ@Cqk57Qm$Ysl)+S zCg`rVKo}74@(s8EY^(1QyocHutDdMx`Uscv*4|yz_zH~1*m$?;Y5YM&-{!4 zA=J2ydVcwHGA8~x?xXa!$sle&fj9`|kTco*bhOo54gDM`BQrB97jv=eR*ZE4ZkVN0-R^Af7N8z{ zk{y==+!x!O)yex8m$wOBxdY%qbl>4dsU7`r`oDiJF7UZtMSI@4lZRcm*3bw$EhZ)f zpPT0PO|%7S>^3hZMJSOu;5vOFtQ3vle#nzcewd8zG#oO%K2fT!qDa`KFVi0 zP6l%a$rju~Ph}byHS^}FHZ+y0F8QM0JlMW%La8#_an9AgGTzRolK)7BWRpOeJ>q+! zX{GhG&gV@{E6BDSc2a?X+LwFZdoypS0X<(H>r1;cjDd+U7ne%o06y1DYoY(mQeCbe zz%E^__dRqlW_2VIJ52yF?Z+}Kvv>?;QTDI~1qB&G{8^Ar0hnn37C|0w`yJm_{)m?( zKRldMIA$AWa#?D9#C{vtKEd`SZUcuA@_?{}vp0jc!nQ~uJo+!SB>|nIz-Kpmf08aT z(cG(@K$^LlehMh5))sV zmCE#ltvy_Mw@uBV0X$vNmmi(9k#(QH#WoqVcJ6~5`qJTszBjF@U<=1UKpk(M_-tkf zmjr=rKyZTm@wL8w2pui&5Xyg0VxsQ_%zBn!ccF6UCu^ZB8-PPN?6TCC9U^nE+SDzO z;=r)>k!GFKDrwwn;jDMsO^4#3hT7(%@mKQESXnQiT&Ihb7|vE}$Zn zngEFS3TsydqmEqPdHa5mQh?odmMX0M8UF6;=o-yZGxz@lSMUed0I(?TrZw`_X)V5@TEdiw21Xum3*P@#?Z|_fyF&AG(e=H_A%3jU4^<1@qV) zf`0{T#AQP0%0z2Ll71Ki-#1nX57aZJSV>j&)G4OT7F;XrO>_!vW*;B41KqL_LhqPqW)G=Kzp%G~eJT{x@vQ|3`_c9aAe8JX?$BdKzwm>?L-aC*A$-W}n1 zd;}v-uF?G%5O;X=@H6dkOT~7utfv4JKWw}9kt~1?D&9+1fA6c$b}}KNhf}ULGB!rh z^Ic9NVEXSr*dQihn1LH*bia>axw#A%ytg#`rEsYC0XH()7n>}@f(z_KWzMtE|{X@6g9 z>fv%n`>L+wbFFow)!B?nB=WM}WIr5|U~!D}asp$g~a0q<|Nfr7jAJpfk@?&5sZ05OABZWT4wO{L^i z{X;*J5U>q@05B;xIbfBTKpK@M1xyq-m+Oy@X8UhC({M&Of-{_# z7H4e7DvinbM(jeRq6{a#(`Z^f9d(hq*}{%-iYsz^xn{*_VrPm8&*68lw#9|7b!UW_ z13SxTrlc>kB!NX&{0=u0cfV&xFLtU|oK5({-Uhoi1nkv<{kOe zh^;C&?p4iC%0zzI)6Slw&K?y(V#<>~)W5~qP`2>j@%D0m1H`%Q^kv_k{F2MIy`xL% zP6Kj%UXFsTZo6ra`h}3WpeDYt&E;L=D30{%sm!@ArnXwR>3FBY4$}8zjKad5niA7t zJ?7wsn~@`yZQ0Qwu1&(j@VEHEaDj{h0>$t(C@GBUB9aJPwQgWKbXSMMdmeoDo^U>d z0oIa)vWE?xGeJg~Dv#LlS8jjLV&O1m7);A~cRLVHa@^||%8U>|1*p%0)Z?6v+!~Il zX7G{T(Hx5=rS>_v1xk*np~3K`qfK;+WGX-e8V(XE1`Y%@IbJffqBf^m0zGoW6Fq1!81E% z9)Eqfezolj`E=0z$A~(-1@aIa$QaM z2I6yUbu#K6E`5#Ur1pir*mQAQ;E+4(PfA;a4n7JXZWhJpVFzac&8wu_%G|1MlbM(b zA_`PCX_Y<)tU>%LNqDLN9s}E}04>E6W${$bS&B>$L5OJ~g6i;ngd9r?S^k}ZI>2rqS@Ql_%kqUdcJTbkZskeF`bZJO6WKt|CLxV5v@mJEAxqrEy zAf^<;>AhI&TjTOKUI9f*-{uacW%I8M-<0@yPr+#Ra&R0^Nooxk)Grbrm_=`k?(DOy zNUpwT|E<@Ctrq+z8$C?5rc*~GLLpS^f(93IMdF+dBLc3T^5}AV6nJJa%j`kPLXN!9 zfzo=nqk>Uq2mkPqQ{0SZAgbA5Rv}URxFg;C(bHJlP_Wl~Xtb2wIgOBjC@n%)3wHE&ZrR(9QvG=~N`)Vmus7*FetBgrDF~5`ZcpPGVovLeBcO zgMi@@Z26;lp#UZWoiq-OsukO#cYh3AGjyFfDU5SgtV#ATu+*^Szr%)DsSvtL<`OH_%(~T->hBF#x_L(_v>1?)hrE?4 z?nLcIdDCX)yzP;_A{F8)4d?WndE9RW9Uyst_)B>YRE4WYb*WGqsMf^8ZMU^BV?}2Q z->>nM(thK5`E59A;4n$eRfm%93#X;oAlvPm+V|g$aCHWlw3x`)6-;N^Na>V<&EVF7 z{Wzpxn2>lvbytP*>2=k-`0lWNHRohW@U~SN{*A21F0EoTd6-CS8?h5|92bK${vIMu zDkcx7qTsnrpuLk~!=fz0(P~w3ncBeu3hzjYYh~kDTPe|j2T^wt8 zI`F>VQ>0GNMWutxnTb*!}an-%JIev%BS!ihPD z6%J29jAGAGsfb{fur)md6J5a7wSMsCDr?}X0qX44_yHm1gpXst(L1b=3q*Uo6Ks7-#Qa--uK9( zK+-l^?4FfIjIwatH>I`XR^p3fY`J1VtHes4`4L>;3Kg&mr%sGI!CR;s&q|GXOh4MH z=CN+{Y5Gfw6s$L5V%vK@I3~}zkrjH>cN@3ve!MjtvoMDQUt`xMvUBr!jE@5e`ewr-OKjWal;uT|tk2Qj@r6?&rD6|8YGD63Z1#$pRpq~&ljyboyrEL0gm>pziQJ|h^Z zr`L(2WORu1bY=(lg?Io)(p->f<fjGooXvCeW>C0na7+!gR`Xs-z4SOx6KJDF@x-9#CA_&XILM6(l`YErGU7VhD#h{4UI@_}(R} zdb@Uj9$h7GZ5V6QIfdJW5mPH&r2&riD69dg@q< zpwnwQ7m+X~_hplQPX8sVdxp#Ut$~`Q>tYm|wpU-}3!Uxh)`6Q#g5FjOJt)GDW1e>) z1(?AZIku$#Dh7d@N+C%6J6p>bT*>bMwxeO{D!8C;(36#L@7CVk)iw&CQWI z9-NLD6?)@FqKJt#!Y%+!bA;uD=zC1kAwgZ1_KMPV!`OKlBsN^wP%=lwgQ*vQHq{j@ z7QpMy3{j`BZawNqY)>i^7^t!74JC<>xZp zZN}2|&-yx^QYkdJM6e_~-Hh)Tvba5`}9wwd1hZq5+ zO5qhLWBMD^hi+9?$H1C$*ca~!?UDZXg9e8YZ*NZ-N3D&#tixT~14X;z_MuYYo*7F8 z7!Ey;CK`V<(Wy@Dl5lBO?pHqUL3t}p+_pv9B&o%#P*y`lR<2FL^6C6$?Nf?<#!K~t zlzh+fV&6z%idTh#$il%oceL!B{w4-GfAKlI+Tzt-%Cgt?LpEdD_@1NUlG^9Fuk5=B zm2HL-r7r9AhkDTNG-+P}G4IFZ#qP zb5ySAztAccw{s(_@Ue7FngC~lF zo1=D!TNyWKd{mPVSD{0Ma(!?q#i=^asUSh{Oe8jxa*F+1G$Wp#Oo=lx$A~psiK}v( z0}!d`eZl}%YVAbxS<6sock4PJY%^*2Fu?wDz#!C`6T^DJA!#i5P?V5Emg~7N`~t(zK;zs*GM~f*ASFk%yRA^W|(H-f9YX^GD!$)$^eX(RHfs*%-EhNi|lqh5vJidvsS^@nC4`6u^2%7 zVo;(C_^)do76D?}9`!M?5h5Plgk!GD0x8jEJ!ghP{@QOb0)%5;ETOA+<|B^``blhC zO6N*-Nu`jx%uVilQDMG^?FEG-=I`1490r|BLUsle-=)E26(07aCwR#h20*u3fA&$b z^MtJz(ydtB^jUp4d1%rSh~VLp(4OBxa|=0nU*9~@(l)xGVQFC$h5Sy-VT@q4>&?J2 ziJFeadGx(*1@Z)%T}8JV_eJ8ha4WuL5D3+7Q*lUBbP|^o>9rvIU|+ zC8At|Y;#pp;llX~t!cNB{doau4T=W4 zQ<~7vCJo`@0OE&0`$LU=)N(cUB>Kynn^O9^x|RshfTS6~&V)_+-=s^jJ^)?&+Zd5X zuMezTAvM;N`H5DHQ7HLMXh?TEH2Iz_zX2lsy?-;0*Hql-*rti{G zIJ`9x0I{NNAx^Ky>|&E(yeGv~D+N;LI>qWsr*}SH5gW2Ee$;V{m~Bw#x{Aa76o3|C z&azTSONok!CPV?MezqsgzM|m~+1zUIWvZpcby5{tFq)`wU&D9m<33_- zq#(@jCV&Mvb?-#;$-?@hYAl(I%6T{_;M^tqI9(1wgAED4F_9xW960#mMUl3bhzif! z+aE4K*Jpf)X^G*DTc!Y;RQ;M}^u+C~yY@n1680&8h$Kp7P%f+$Y|CwGezm0brL1SrK+m z88L!GzP}flrw|t{&yV#|Ma66P8}pTX!p54!oe{orrIAYR`V>{bGO0n>6q zaSzkMA;p}*!%WCjurWgcn<$U3MO4@~k1+~fKIu13WnT=d!#w3r5m`~!2~GK$Jm)f} zs`<4KHp5ZnlxR)c$hfb0wc4C{4n6ltb62uFEi(92Trq6zJ zcIW0^6P-for2eD|oAVxU5`S~^#efM}Pc|UTl|&_jq?t}KtbR<7!o|1LMcEINmiu74 zPfRL9@qm-K4@>2Y_^dX9d4I3|V1lUy|Am~y=Rvxz;I|OFM%E<-SLxdMDwli!<+Mjx z@SF%wz&x^}INW>zzUcT#zHr<4C{+f6skf%}Sc&NR!Rh@=?sw=4Vb|V^Y#*=c5az>b zoq`K>a9gnDiWJ5gXs~=S5r}_npfj)1cOqf=o9>Xg2h9Mx{yW#tqo2&-`Fwq^Gsnl$ zZLm3}{2vUshQ+$C^XC53F(I>Y&sg)s47v=)?6n+*bQZfOuB!P+Fqj+jq|)X;iF>>% zK`9oN1hT++3M`Oc>8w*92ctlT??s?N*3ALZr7fF>hm|B-v3~~4>Ii*kzcvD=}Yisd7v11SB^Y0c;djdjVI)DWxB;TFhO`j^ulqZ-1keSBlO&P zzoUojUaTt+Fgmy4G%;W$K~gpIL+hz3G~@ehK~j((LvCYAH_nGRU{pB`y$N{?i&FGJ zJ2d%1pG1hO&wEi?5r)u?``_VPiWmDvALy>gwoGu6?}gM&b3$g*s%J8;ezuD2y}dy} zd8jBo4d!OU5=Rt@)W$5#%)@Iqb?87Syh|nkGp=iJ7O*oE;-7JEe5LMdbeqIIZ5jo)eXx;x?Q{F;^St4;bVcP<0d>aG4Eem z0M*=X$-&P&)wwp))G}^uJ?{vQo!XEu^8|e~Y!^?4Y?ht8CTMRx)2V7FqCy`8lh$v5 z^jj@>gpiB>{X*1G&V-AT2T+>6rV_Gd`{FX)VsiTlkobDtGDfdWsRWn4*pdP;VU80~ z#4Z#n7vX^u=~8*U5bGzjoU((j0s=^cC4LMPrk@qNQQC$$=<+8f%^xIN79&(x0nC+7 z88lEdo@hUJx)Xp~-(0*(m~jr0E5-i!^z!EIG$8dqR1UPLVpKkqISfe%KWCG;rJl=K ze{@%fU%tXfD{!Hu3elq&0DeGD={>@w>eMvF(G#?)DXY_Pl7t0ni>Dl*)}w3GR-Bmz z9hyqYL{>+}Ie#Jw>LiIoqFL&eI=8u=eEZdR-^4}r{ACND%_mG1i(p{WcR#F}lZ2=;&yt7AFQti?yx=q(l8YkOM&>R6 z|Fc|9-1(;$9G?yW9mk~$(!~=nF?fg_SS4$AsHs6J2{v>fjhuuXCvuIRI!bk9kUKLW z1`&zHTvk>64l{K{Xk*J{ zh$Dc`WH3Z#m?ac5ac`QbC4)9f4pWZJRcG9zaG}w+W%M6}P51oS#%Chw&%SXF){7Ns zZCA!y`RM3N`d)k753V^8wV#5~veWcJqDjUkCWgGq_+S6aU5Aj2A@QBOU}W=l((q3j z`5PY8W=m4V8#xrCtBE;Jz{@*)=VZcEx>*6)(An(hOC{EiRLs;TI7rthnmOT>C=Zgy zP!%C~A%3?x1#t?i4sloi4jcBrNqzLj*b0ZxxPI|tFxy~AQ$k!@-3aiDJVMy7x#{{;bpKSu^!g{OGg?ypJ*9o-YIBLH(yv+NGMVI*Y zP(r!gDdg1>EoVKGDfLda%b@!hUQcLt73V`%lb(xTzN0ehaY3Jzu^q?%zZQ{d!X$YXPx z3Vm=~0hZ*vBv3WPp8pQ%aS_clJ1~7%BgP@2*C8*T+MNb#IxaQgh4{H%Mw-j@LEN{~j5B#1YX(jdM) zFG(E%qZ|}8rx|!c=s<{2DA)dgQ$`Dr2HWRpyFMHdVWSiaTD|(}mPyAo*0@MLEB609 zp1Q|SLMYVc$LNPW$mI0%iv}ZKM1Djte?ST>RlVryaSu4DOEitU&2fl+69Ay4(VuY_ z*L%Psoq=jbdT%)_AoTV3p=LPyz=#L|2j$#sa33#*=&HhDp3zN`*>ti}gc6X5v?2*; zA_k@2Kv;swiX~Mmt8-HJ!NEh}pNc}KDvvB1XqBGXfr&u&{?r)7EFKJ#mptz>kp4h+ zEd&$I!XVezsD|cWRLBVvu!Fbg2-v_AI^0H06O}N#<%0Ht2P0^iO8=J}=LcMROHu@H z5YTwX(lMRE7|Ijfsk&@JVl-!58wY||z+r|jpA<*|zi0!x=F>%gRa z(0&n&!W7xQgD(ATWL6N*ELt`W#41m7gv2hp;26lO^p9A7#cDr3arJ z2IJf}Bh)=~lTan$yw{ppjjS7tB!~^BES69wj68;HO}0hEq@+2Dt`34jHo8pED$?u) zP9tWpD9XiRxlf^LiJ(cq4RBVWh4Gk>zkt_A zHN?#zck( zOzEfp`gPZZ5eIY{+M4NWzG>A*pvc02Wu)P-6BmHz;FnYxaU{n10ZF9C2utjQa+-NB zErdI_sfq{H@S$@2DF?du0gWDRUFl(fFUl?}>I~>S8#s^-a6wJsJVNS(3>|7SaOp6zkRe{xYGv z;{b*hW3M;16?&Us+k+kDiFwnQG|HxEerFN#S%PPn{`b}tLF(mEx?b&Q?Ph%QVC0IE zjIIG93YpcjJ&=``9kw07cTxBB$qJOZx4w@;|I5H=?Gn3#={IyM+#K~78EKtHn|}1e zZ2otC)`bH#SEAeA15C8+-eZ{{m&hG|;Ma|O^;rk{5nAElBzh-&(}3{O0N_j6mg(ZQA?yX2RB&Ok?LKRvz2 zOdnCYap4dOmQZWVBgwT8ai#5uemZDa5jXBa89%0}Opyc7ZNYumyKkUskvw*D>z4^( zNyIk^Wh=SjNH=1ZrlgpvYNRo)-t+s zZq_z7o?++N_^X81mz|vCI~9qaxOSZ28m0qi${+urDR)hY26eoMMd@Pa&F`-D*X$3} zyT%do-P`)2QBd5`8xtV6F5aP4{ zDmkryB&EXqR}rgd4TL;ogG&`E8J_g9DfRX*Zy2$ELXKdf;DYfH?AEBZXeu}57Bm@H(fqe_bJHo@7Jb~@wF=fX3g20? z>Gs+H99f-9Q6X9Wj7I?f|Mg8XiE=BT8s| zCMyyJuvYRZpNPw!yJl<3=Kaf*cryf54t#R>bS+q#OTRu{c=++3DC}x{BPW)6w%CMe zhD#7Q=&>E&NZ>8)RPEr6`vAJguila$cZ?2w?XzVv;>w|Zf0y_iGh(u^XP1jRL;5pa9N z>uP@EYGw72XrpxONGLH6nO)xe*IwK)m1V^X#uBZiVSgX=HjBRp>ptHENH2dMGZK{H zM9)Jm>imT<|K}!#2cbl%(EcRLCxAledGMn@mlo(4ov>w4ry#Bs4%DYMOZ}*rGWY9T zKP3zYUl`+%k|HS0w3WtF6}M?v(pLIfWC&eAHdDi#q@}E%Ya3E|o5KaOu63bXHZ>xQ zBX@2;&>&3teZHaAMCe=M6L1A;g%L8`6<#Swy00s>V%PjEdXX)@uMGCNInl3pCINZn z-$P0pB}o-fbec$rj~^u4o$XG!iPZ`ur*XCJ@_c+M<}`!~2J3!x{WbNnV(^8|cs(lx zaA~+EqwWLqt_5w`@@mm`*BByC$iN*LZfR~5;_*JuKX7q_Ifivpz6{N1yMeUd8O#cX zGre>@hOrT;u3xrp^kw0GxAK1LO^Z8VKdkb)QK5M~fxzE?q%l=Wh(r(&TdpLCPzE{P z1vqafTWyeYg7htI1Ax$yOG+fzMc;tw*lAhDl;1%7&=A7Uch4%!)1%!Y@hJIIH6mpN z=Ch}oGS^;^crm|?zD3Afo~hG4|4IyYwT(fk=MqOcg1G0yVhZ=Y$iAA3|GnT5ibRq} zY+wqE-+7f0)8XzlD9E=PJ1-b;Hn_uGCdH|SU7 zJQW{Xu#TiF*an&bDsf>L?DfFXT^$hSkE6-? zj8Z!7GCKdI(xrB$;RSbGS5tcH5Qh5`^0Go1-+zDLCJ~>2qd`ShY;A4r^Nc_gncwSj z`vK9@OYcWQMQ0Kd5}yA2>B|0-fBZtF0_BV>F|>068t4aaKDFQ(w_xgd_$v;aAsG^k zWSfi795{R^Y{Rz@xDYTit%LY97vfh~CCLdPQQc)!VK6^=DX}1bA;I+Yg8SWNbHYH- zK#ZN2P5QfKuDG>51ec0y5YN;D#vo-hW|$_IW4pT5N_gXkfxGJB#$ z<)>xXzxN`*K?y>YFu!^W+}wnxKm6s$N6a6S*2rq&2h%V!_=uOgw#V=&q$kpNVeHU^ zmO&mMv}F(LuD z_o7g9fhmHr3Zq+7r@;#UQ2Vbx6o55WNqnr;{u2vwlYi~b7ts;b+Dsp+V>{qUY8Kmk zIvs@`er+5=&tx)7t|^@k+s=!JP`bHJ$c3(4(&e{5@ARYK!3QJzs(F^POMYdC(*O}3 zU8vQXbjDo!vQ;E0PW8__{0=*9^q^Te(}r4?_ye@eVEz@cpB*{wgkP`9ylK2;U!}|unlFLqpNyxchl8cTE}j<*K5hIbb7(ehbb|4Aa2pCLO$U~ z=&5ZRyCa+BhX9^&N$$UHa#V(5Ao&Y`B-5z+4D=sU%IpW85_WrONcn2T-J1JLu^+kE z|2D1zPiTu0{TbO(Lv(h*D3k2Yx6DnD7Z5x~e=XE!tAbCbZm|63NliHBPwN}WZPZ@( z%+OUjEr}A!dG(y|&tueVyKeThjwVNgI5%W2FLstj;q~hQSJ;1M2cWY=?=M6?m2~SA zptdSLcKnk)pvHbN3febZBL5FxUjbHi()O)LqjX7kNO!k{fP#S1ARg)N2I&r^TS7#- zBn71FP}1GqE&a`Lcc0xS-p@-!FFhWZ|I9si{KAB4_?aOywBX8RLr}!NKjz&Gxz9)6 zkT|^0w06_ovA)A$8QK1GA2;*CE?HmA#}H_^HM)IR+^ z!x(Po2n5sdA|E2gWCfL;B{2eAg z9o^#n;NPxhUYYJ44eus@snZ*1O?8WX=g2U7S_6XAYQC|1aYCE|USxD@Wc=*R zYTWNvJ)=NF21J!JiNd@*_SMzZZ~I*$f4}cvn_!F7=UtGp%01i;29&kGpPRDS?-a_V zj=zIO2_=(h3;MNk@q6fMl1!s@dIe1O zbqX~kI#Fl|e(wIghojrJ$@S~wyUFxgKG1{ zA%SpDI!dv~k(q0r59_4-)oZci-J)+fj#^H6wQMfM$dkt~+$jzncq}5m{-9R^?)P1# zs|UI*W3oqTtjRG-XGdVK_3usCBSU(6S_Td$qE^!XV>!Ve9iQKOn;7_rIQKg-ZbuFY zhtfY5oRJpBl>E54EV=!&?lwWFRN5~_%SqS!WXZGLM%pco_A`N~4H>UWhfnuH9vGCttRy5Hcmk=v>ErS8BJ-gG# zC-^O{f0PU~pZ5(=q|ld~Fl{lcwYw!ZPtW+|0DX;fFyqDt23V*Jt#qp}WrW_fufjSETR zXDYOD(7-RR+%eUAy^?lJ3qyyu8=8tz(FzuakdY5P#+Uo#1>?|rh2yyY(DO!hhT&OtlWM&E2WNme~wpoBtA7FLnuTwni_q56H^o8Hf!aW8~Mz~#Njy)GfEU2 zl|nBVN(x~;Kb5EN&rL#qluu&%*XUiWV+)~ec=ui+p5Qu_db(qPs(GuS zv)F9wY_VZ=`YOmUqwIzNDAkQ@ElGw#nIrdO9wS?Boc2duITxQW!cC4je{*Nhu?G)Bd}Kf6 ziIYHj@`XA!%7)hTb;o753965erPjSIY6XX$F311AUUWM@(cQ>yEPsaWz9*S)e2q&m zo7VA|UMI5Z*3nF0WBl#T{jVC?rw#UHLz8(NLZ5l$OiDh74PY_tHo`5h9(8F~Pm-eob7@+TcJM6ujnr(*GLK_Y`hDlLY0T?qoT`Bx!YD&^ zK5T|~W%)Qm+N56|#;}?Ul+l2dZZqiG{ol`*kv@8}CGqD^c@#}Q^#nzlXhFC#LB!Zt zwd5Ab{?3sIcx}4--f+myex-chJ})iFtE#oRSMt6njG`ILd-dO*sbJsw>ye^@HFm%oRT zA$+yHYD(+vH?i)&f7+=IJl2<#?&KdM{f`?5O834gdpLrCus3cGdhlCJ@}x@8ItTLk>zn zuFbfw1jg@UMFs4JhK!v*aH8LXwtd%t7N|uSFAX5SQa2y%daZrfm%79oh>nH?v*rZE-VFP zPkU=sOLVv~WIm$k{|$>Z_H;ShcJn@+S?#ooem~dgB@DauCY0s1x>I4r?$$>Toy&$g z!{Ru-;#he#X2Sln1l~dctFN+376W?caZCwG(qU`KAh8bZqIG(C|2CI3ZsIwqpaakD zwDa??3}4d~n^HH8z_&(B72aH*+;pe+HlA6N!oKVSv|EOQ3!FO6io=ds#d@c-q8K$O zlD#Z;7bjejN0ign$n46hAa}hOY%QBZM_`yalQA@{^qW>A0s0{J zq}D7*plgxkDHl-PN+}~nA5eWn|DPo;g^vZr`*VUr=Dbd~zDb5~%{m7k@R11+0#T-5 z%BzDG=YsS~N5=x_0I_B|PNnS4@t{~X+S(nq7NC&H$31SNbGM$b85o{OfF<*SGo0*x+kw$Kh@B;9+wHI!r;*2rz; z3`8aDM!Qq50KxxpF7QFc#{asBSn*ziNla|sVS8-6(k!mJdG|mZJ8uA9#XhPy)}32y z(Y-P+uWK$_#O)+zAie7Jv3>uUNc=@yw+(>hW&_occG2edIdyZS4(A?!9>QpG6=XSp znuGMTkxOSVz3S(%O*rN6n>}-=2WQY+2+A`yi?~|eWtFD(*GY_8?KdRrIXqzjGU09FWEt{RsB{6TI-Rix>O`4Cp_SsxX3E ziOcu}KBa;ZF*^0oq_T?2TO()}-vdO81QS)^Ml#G`!*6Qe zQdK+n`4=a2KMS1yD-fv zizI|#Oiw=G!uoS>XtW>Fn8MSS=_?O;`<(AV% zx#|OF&oYGD+YOB_!`si2ZFfI^UR_(1ZRD5*PP%>=MA*X@p`pGR)uacm(?yr-mWmPl zLhYPQsZyNziNEv7kYtAj#wm2z7_WjP#Y*~O9FI+;WX;MOoY3FBJq(~~S7+nd^+5V! zndy1$9a2_5>FMMK03LImmYK-y%K2KjcLX~y)J)pH$g;e?4Vnj<4AMp=B1liC+krAq@}1ssdJ>;?z`kf} z;3@BVD$mbq)(;U1@rAqzI%n~ZIlfolKsBq2Cv+UTiF1cLilC?Cq?oG1m`Qq0?b=3B zvwVE?X@n^*->L#3N&4Tuy-YaOq!0h9+L>5K@+`f64<)ahR!eE=cc|c9jkEiy(<$}G zB*gpOq+kbk9s`b4qCD0SJgHovy+U!^Dn@%LB%&kt_&^RoX&PhWM=9y1PJc^U89vrC zpMRXR{a1I6jjIQ@V?#>h{~Gb2!7l^?2rQ=xD+=Uwv5u+ecpW~@+JqJWr#0snS15teBp2AY8Hg$>FGM1Lf)h2H{ zqV9D4Ifvg3RZq+~^)~04kMovszcRjh=f~a=z-QQlYrj+0nGEz|Wm|ksoeC@k(l6u; z!r5B#h$*pwPLZ$nU zTG>~Geh(<){Y`$RU}JU6c=UD}Es`_!Jvb-bwB%ee#_M3l887W+outk}4~S<;N$gKs zt|!muS*mCT0>TMR@g-b+$yV>QDh~)qYWn~%6Psg6?)(e?*f*tQ8^NSK|511CtN5iS zorEZI?|;x{wsC@HsJ~TEG**~Z*?G{G$h++Qo8KL}$6DyP1F6aYPnX4<6a(verU9w{ z4stP|DWg*p_n*mSc^a6nFxx#NTu#GD&~?)6K!%j^3z(0o*p_QjhZVV&vy-ChmhF^$ zGdfZ_?&BJG&YfcMQ>O88liy^HdAjMWAPEstB&X^Z7ETsJ3ESg7p^#}g>iy3$*E%XH zM*X7ahTFIY2Y#|)+Y%aYPLJ8p`gEPW4Q?GTkt>FSpSM$HYP7f%vg_7Y@)XhF4xDU; zLA53W52T+P-XCUTi7q9tFk<@_w%yRSh^Wu+fFt?ln%D7zdurnx+ucWQf=-t(F@kv7W9hq7N7vUFQ-_MAYNr;cO%%ToC zQ&|mah^$9I24gClR9|38SmwofHxu9xPPtSFX~JU~o5p;C%(IrZZsJ_*-|5S5sETq^ z`Lsh+-yipmu-0`Wc6%%?k+F%j^7uy@-|8x!(OIe?z}IzPcQ6l-i78yp)jPXmxdyZr zF6c2Oerw~l{5c`WZeZ&vb4z9Gx@Apap4;hqp^U|m}uqH-DOSQqc zoRLR77oE{d?(!7Yn8}%OC*L8q9vMt`zPZG{O8r6Tnn7;!-E}MJ&}gwGZY?ppI&RyV z9#U%CR&n2PVLIDgsJG9Z?d?wUqs})7R#TN??H4%#p7Ev`WdqLh0~{qyhhdx3)!C07 z+mvmQOsOeXm(Vm{jh{1+Ko&T8t!DVaaQD<5v6WyzWDD>nH*1aeEvn`lolWqc;&d!{ z9w?&tRBDKFVak{ci;_xp#>U5`OmgliO>^iP7T4J+4J)@*{<5%%0ZiE_F&A%#`w?^c zEGxHDPxsh7cokEsG*Z01B<)kfrXiEI)nJju7YHin`4md2z>&*{O+~B@kK2L%}ADyZNu>?g!zwm2%ejo z2Gm}3JTP|%Y;IXAs`jQs$Iwnh!C5D&L8ag!xZl%^WMz65vzr_m)(hRm#(oD*{u zPepy3OYawSqi-Z7{l1?ZMS*$09MC8$UDSRdAV7lpz;gEdM?!fi>Y*b02u|^K4Wx<- z=vaLfc@e;Y>~7zgmeDI|St^1oy5Lb7g3Pw`yo@7eVw&f@+862yRW-s7ej|4gbz2oKy=9z1Y~4u8*NKZC zAGo&4tL@CSo>m`L^NOeRiqyGf*a(8+={v}eJnefvEGHG@RI#Y8ChU0lxuo~H5OYyR z9Sav4&+%w)qDi0Lz8Jb%W$CvRJjCbqE?%LA)IxTCy2{dMkJR4Z@;FZ2o15H&p9S|4 z&2!E`9oBc3v=FxVe+p{O2LSK@tNd)^j;V&9OV1F3|k z>`!y{W?c$wDt!Ow%0O>9RpUff(q2jA*w23{`SBFedK>>=04)0q8y*Zy}dmC%@(*5y(2yobbfHBdccxmgSNk7m&Z7sr2vjcO% zf;tT}K>9MmUI$&?8(LXS*khE;#-|e1Hg3gsZC&|hIXp76zf6JyMAiqk6CBm(uJBC#D-*T<7X&fetJL2NO4gLUG4 z=dP}YjRZCQ@(?E|z^VL)4n@m{jHlt8U95IeG``k%^A5fAM)j8NU0IhlnkE)BXj6~+ z)*;7z!%9)rl>DV)_>z=@KJL&*APId%a@75W3wq3^7;AmWSCy5}nBrIomxPb4(wzdF zkFZ+q|Ge#|=Bo%h9S{*4stXQp)Psj#G6KSThaPj^@y2Z52JO0Qejx}(T@bYEv<%Wx z_etVPAo4#aqyh9GF^fFMIhU(6Mk<*^#!gFW$smcd6ShX~XDx!ydE9qL=Xc7qy(=6h ziMG8;<^2)QXFUCxU+{5Yc3e{|W(Yc&7(@yfxf_hXehP;`m7ZueYqj8pV;u@gL_9#N zo%TUPkYp4&Y{Q{a3n4+;cWkTJAOl(_2s;e{yT$bq`I_3I*B1e;#qag(_|t=&9on%=Td!4v!^x;|4On@sAwV@b+P5zZKUF(yl5 z9EtCPjNdiydB+FH!5;Qq%~FNIG65VlB@{mT}3q2 z3dI|X61`0;YT8S_DRSu$s`~Z#{HGs=CyQjIt6h;4G`nG z{lV0BOh7ZP?Z_q*+&2lMv|v*T`6OP?vf2Y*-9BFJ^U@XsWC$p*(t~es4^zHObk66=Hd{%?SiRc@$G=<8JQlFWHSe(u{4VX z`q+a5e@T+>E4xuGf6R?+q~mZ0XRgaFh(tgE>XaLalz*b|gX?iyjF`q^&-3g%Q!#7y z1PU9UL9-Do?cUT)!~FyT{mY>`;&$rr+Py%GotXylJ*JtAntoX_QsZ07<8_djp`k#2 zpco)J&o^XVitGW^2oNcZnQ7=|kx~*R@HuXD-R;h+#X)4p$(fO9V`G1wQp& zZ_J=5`t)l(N!{209h!qaZ)Sco4N|<0hd7JP0#xFI{_JwqGnXL(2N{05OZ1Xt&Cl;y z;r+^O%zY--k7Mk|*2i-$B7|glk=!A=StUp_X;r!oSwwYag65P zG-ne0B~Ir(eGtSF`E@NADItJGrGSEegk(K5%8P*2k3i7Cx+s{OtZgN#krE{U>rLUc zB!Z4q;(*xQ%y&@xmPcz>C{v_MpPRHK`e5Ha)qQ*qi7M>;sW{v%Y5Qlnm`3ZTj}7Ge zZ_W#h%x(Q@H(F+QSus1_yd>JAvdJIxuYE7zIZhfh^&GRK@VZ`ZN{s()Q-L%t;!sB` z2AScxA3KoZ+N(E?bxisp6U;S8*8hMqkgldI)qReM7Z(Gl*l-}C9bwFP=jcK^8@Jmj z*TT8z3iJ(L!>Yhk@Mjq~0ap_gr}?t56c$PIs1 z&{C2(J5kctLegq>*S6E4$c!FJim5DD@GXxkeGm=K~ z!C#4GyiHzUam*FpAqVFBvaeMPw6m;V-bn9^HCKgTDr8$ewurkHxKvsUsi|aM5s&Z4is$bIgfjO<53_v89u5ZIO+N zvT9c;`paD<0k1nHcuk4LgfUaH-=)b;)BGDO-WMO;ZSw_gDzT{CrV5kU*J6~uXnq*M zqGA^AT1MqP>-9MPg(DV>{H((vVIfh{zeah+@H?c$b3_LSrSV*TE-0RvUU1E9NsM?J z?K+UyDpfD}!*SnJKUslwZq|Y)Ck4+)Le05t@uyf6|H<%xk%lcqxP?%-m$Ik!Fwk4e zID7C}ftPY8A%Bc(#v{-h=@b7R;{L`S>%2YYZIb?BWx}2(z(}eB$?vbRNE^Qvs@a;3 zOGV{A=^YK-k5f3<^{(4q^*B36-i>ni8bdnnxUEI?q3YqlL*O%7^)J zW!%vNb>ai4#k_szZ>8&vXOIh-<;-cG@n!&L8GpUMNA6zR{XVVoP_SD;K_SLY&!hJZ z@LzvRKLY>=F9~CC!!7*(v&*nW3iNlcgP6gYe}Lr3OYOX+UF0YBJe`e_!7B>0gF+1x ze~6N|S&|&Tnt(;mu+G`s+^X)7Vmc6DYN{z`!ijm2(WZXoUN1+HnIqgE6;%0lf9XA~ zg1SO*w4u{Wk7nN{S`Sq;rgz=F=2oO+nDQu;Dz~mb7L>X8*FGxDV@t>rFqINsttx89 z-srW2Rq|NUv<1*H=ic64+1VdG6G~2Vo`R;jUD{WPJ$RQnnqs5p$P9XeWyna4xI=yT zRCOU_sMH&TT;sy0ZMKx^_ezELuhokfq}uW4jz`Yy!LSWTR|_9Qxz>O}BsWZAyXFiY zL6ql|>yKmJ&~~^A!t|rGH5^-OR~Zue1;XK4d-Hlyw6*!rdvNxqhaY*yGMCtF<2Kkb zLyL>C1;q*d*cm|(Qfq7Bfu|g9|F*%AGdzP`34c#^()EGC z!xl%0PoOKQOyMu!c2>(4_CWqTx+0wHZXZqW+fChmI`z)2P536wP1Bk8)g~)%lU^!4 zCht~!3OZn6QG}b07uVK~VkupqKqzYN%LYG-XVYiv=QA%1-Y%7@#wAG3tnw5yfEJY8 z&_uE}g?8mM@V9ZJpMFu3OwVNDw<59qHI})1`G6!!&&5_n&g9c{Lv851PBYPr5o^r` zk1E6Y>~a(-0d_|vE)s~akHXd|e1Glp?1wN#>G<&OL#6I%R-h=d;Xa}Z?OV-J>bBoE%>=qmH=MI4)fw^|1Wiy*?YdvJVaByrfjzJ zay)}+qgJ^n;+?k4GGK#1?asuB@u)00ig)}TpRs1rk9AI7MDU9J(Xo{i|KrR#p9AFE z`0J9Z_6(%ZHja*1Bm&=8SVia0@^nV6z(f%w1XH+Jt~Z3I7^6!taH-mcQua0RA)77u`?2R2_!9~58PVsZM7 za9C;>ei5g--f3hF(+Ll~TEK@x-p~UoHig8T;TNPW%UbukLN9f{y#3jv(}bHtm*hg%Z$H7d|O5nEI;>=o!`2Vr#+QQGJe)+8*B~| z?-{2hHxBj@=+UaV;r-i3DAE;WKE!QE*jsA|D2{&S6B;e9H7EwUffltP7YY2%6uS(I z_A~J7k;^pPT`L&`$w6ed9VE^>PDU9Gt?Lfw>ITpXr3}pce4rHwZHI|0r2=v_Hfnx7 z9@64lnMe{wxCeI}5yql2I2}NcS=@dkuXJN0MoF6R7|3UHIq%uoSMbBdg$=?Pgb4N| zzBM3P)Y36fWI`E$3&M94mb_b}@UitcI$Tx;QYasnQ0;^Gdw<-Q9KI7dD!N#ko?P1# z!l*c&K!rT@fCO+XVfw*W$5iyYK9fYXG}|W@!M_;2^OPkqx~=Nx#>@~Wd{7@z^^)nDFNf#Rbrz(8-)nu!yz2iy8?GXrzkP!*g zX-XsC>5+Nw5`yN5!`J?S%JM}tYO(6fxFA7Y{E+VI^!=qReE;I}8@~N_XA{{?cpc$4 zeTOpbS)dYY@Siz)UFGpV~F)uz$;>^l$Z`jJZxF9thO9bW}x+d zEqF6xvmsoQ**qH3l4z3s`0DK4P5R@j$JFP{_??9MOa!_F#xF!ip1(YgYg-rpn!?mv)3 z^@30+WwG^gLbX^^^<jkh9sVY<9$A76SdF+({L9`UKtbAgA#)+9mnSNMbBJmG|37 zEs7R%)!F>yPeXmydY6{HX}>=rk&eXs5E`g5<$3P4wt~}YAZ0Xg+pEK5@ZsS3jdxmO z%uu^7f2#|@Rhe>B?Y(oN9PhLXUw(|((3mccT+^6Rd*qf??tJWnl>r?p13ghrzc$D9 z(B3mtfw><7E7mCM!&>+kDSXxz2xzdXY^#EO4Y0$xqD0OT4VQ1`H-@rfs79ug4WQIf zUgnLrMpci7K4&rUYo>a2pp62WJohZu8vAg*;qV~s_5Rd(p^KDM%?}PBRF1vPu;hsA zi)l1gXt;)gH7KsJOdrn3$XIbMRc+R(t`%yxMK;G?(j!!WoY*cZ4tVifG%^CgRW*`{vx-LpK>E*^uc+ zIo7@!)2xgdU#xw%zcX-}XjC^*v?14Zzd_awj{A>?r4Zis^}glR=> zr7M+6=}DAB8ZWWEr&Hj1ts{&tKc)X^WYMp729fi2MI8NE5|Z8gWM{~XbK~xBI%FV_ zB>Hgw@EI5?i!c5cQmyMgY}$-r2jqnBva_rsj6ZMzTT%r!rH_L+s(m8PL-Do^IqqI@$+c+Z5hKna{rF&TxHP)fg633VKxcEED&U<|-xh$F zX*?ouZ< zVcriW?qFI9v~4*Q3jUSbw5wujT3dVRy*~+|^!E{m%X|tZ<4lxkXLx)Wk#_y^SZE#) zFG8__Kz|=|310q=jl{N?PA+mjHNxWsDgEhaeaIfZI;!ox=0vgcYZq9vGasl&IG5B9 zsOwV~j$!1I&-fS5bm|fLb0`=JpT}}^PEhxyS3q^VTV<(QOz5rXn%Tv?fCr_BWa$sv zr5!G3{OZiPvtPDU6s~gcG(eTEmY?KNg*|2@hxt=+yC1iH(3i4S=I5%J-QpP9&xbzfdNLNhj#cIesc$E*1Cw-Dtif z@mL;E#Q^f~==h7uIMd|*8op?VI&4*hY9bE!ZEWkkHz*PVeSBmLnG@3*ls_W)JZa!U z@YZhKqbiruhg1Rymxxe^1KiOzRr&9N3kL3EpY3!}S5+X7(A_SAtu z=cMkDq5bfNx7PaO)b%vyFLE2-lFlyfH>&`zd48-#J#x;Rg4&ZMks-Ai#&~7EZgl5B z0p#k$_spm~W+MzVV_{<#E_*{jP9gk`WogQPo%tgw1e0^~EtZ($?vo4*>=!5~1A7YX zk4;wdsh070XKmNljh;v*i`Xg3F&JSSTw_q-_>aoRL!hX(>9r^2e5()R)_y9S;i{Lt zSlTK7`KGa0PnV>E9Z|BYx5T5@qRLd(eox@8R3uPtFT6sp+_x}@Tv$t#`n4+I@?(W- z7+izDL+;}$*OhRESSblP#>Ms6sfE7RZ>W{s%CBhIv?F9(u=T}XG0+NoB<#SyH~f2z=@dUQYiJ-Gi1gNk`n_q-Bgx?{Y#zQOzf3 zJ}V@=<2Keuk83|3t<6b|i};(%@)u2cga=l0$$k<=fvmA<7|4VPp*CX8mw3~w(x9cH z-D#Mi0qZDcR6{8G_$v9=`Yy#O9H)cq2)uT5-LK1?SX{ftM2AU@o9 zx7M#~AVtffTQ}yV>OJ_0b&U#Z#l$4_t13Z~`yR1*+8eiSNs$>QBYAz^=|Vr|Py2=h z$7Q9icMtSa7@KY>Z!E0|W{msv%m|zYVoQ~#RC6a@y{oX!y zEa_C*C1gOfVh$v_s|KpZ{;ajfdjrqc`-==4zr`S&OH#YhJ{~a4E#ZHp%d%Jz9VxVE zDs*c(6&x0YEKbDzaKaVN2e+l@WCzP3!k68sh`)o|yzxVtdf!tM9`}B`r1MA6fc1U4 zJ@IDeci>Q_BE4nxmr5404nQ`YN(nuZ_p=e7ZGZmY?Gyi(zWit{iD%eUDE0$qvVxBY zXlC@sb?ck_>CJJ#emXw(!|>u_YdDJ894ji?ta_I2qk!YDbKKtCN-U3(8Nu3c{hSGT zT1`?3){!lO;Ou2g@BM;?&e;gJNG_%m3fB}gIFF1Xj&D4lKw{Pk=E5$<8V|I;J$}#9 zmq#5qrF-|$#t2hXoTSt=BQiIyMlJE$Qi`wnGomjEa`IcC51j62f`FEXsjK6#xOaBp zv);XHM>exgIPmc&Cl{CZS3J?La%``G$$)rq%@zyRaZ#Bisnf)3BXg{=_Lwb6LL8;L zQfp3s4ilsd1mr#>gGf|J=}ke2-yRcaC$HLP6-@8Z$OrIqyExaB8mr$1WGB}`6Y^x9$QE|hl~?k4<8Z6Y;kQpfaCsFF>%esLXL$dYiPbyvAFsi%1Qcy#r(^+)QVF$s-;6_ zii5B(xtIjAY@?^I)NoN*A>5Z%IC%5N@WIsSD)$;iCTc%G94(; zt$_>H8xx7g{kYa4IK3WNs6Q+b&~bqEOi zlK~kzAJPsvI)-oBLH`Mu@bM1kvhW%%g$_y-yEb`Nm--@EYa_=TZf%PtHN_WIWExPw zPl4Gd<+|UwbY(Of+6h63c?2Ev(d|6-ycQpr+!B3Ff%L1EZA4y7R9ovWsvoUenKH+UT<-gu}|8+lhO&@dk7j>H(hDkb1Y5T=V|joU&_~IqS7f#wp>VD zessWTnieN#xt)|PmVY(FA*z&WTFKTgh|hAKCuZ^%a!V0^O|>{YK-blop@`hFt0y9a zILvS^_ABJ%bvZNxeUe!ijRO%I8kexoq$GCy`BR^-t8$G}0 z>7^lsOy#SOP>Ey=xX@bT^c&9T7L%Z)%`$FotxvWl<){Zq>E>s?~R|Yx!6Z z_M4OO?5YpmVyCVYCl1?FFVNMFITPtxCHm|3Z)W0S0nR87{ESX7Mo6CY+b-qA)AprR_Mp$&}r z5K0TL_0751S3+O*y}B?9HEVEmHzyxcG8=MLT1S7!$E_ye&wieme3Pl`Es*uLu|Gqf zK}qCBdSZZrZ-+ncE!mWP+{GhcRA#PpL{smJu*C4`1VR+!mM|vo7{{4g($HohsPf3Bx7T-O9@ox z&5IoS0!EJQ1wURq?i%63cL`)7Q`=r2DU3gm`w~qBvR79h$`sIqz5l`awvC3CC%%V{ z2!j!IDbCd8Et{L%GokG*&GPZ|?Pni~dxIQ{WqO1BJ1&U@juH+$s;w*y-FfD#hXO;~ z67Qmf1({Q|UsgPac#YW0jicM9n%34>tf{lEjylcB$c9Tm6hjwYVV&COdN=Kzru?WV zyQ=ar+%mTO(z#vWW21NYi>*f?47JGQobF{Fj!jv&qm`k2gSS=`oeo20UaJAwzN-b<6a`rDeYO#Ykvqjq0qh3RN$)CHg zo!&yrrP7!)y;1$NcEQf{I)Ca1;(krlLuDMFVKt`7?R;Bgd&O}b zk*98jv4eAJnLLg~1Tp98eH`8+xS>lh9G$LD)(? zT4ME95g0>GncUER#vZwG+Mm-MwXBj0Isf;~_1BusQZBS5o=haf#r5Po6U)Q2GPryw z&{ky@S286qHr^DZy?UUw+%0GXeOS9b7d85>FSp#XZAE^0)4)ur94mC~i31x8%ZCu0 zAtKditw}roqvPof4*-hMV@X)v-11%-8BUKmBh~62RY(6?dB9ZS#$q79+9IL~y;i$a zjtoJbEvdV7)buq5ATrW6{v5V+8N4bDrv#{+BVP`rZB^ z6~2t6FU;^ul`{J6HYii_yT9+9y5$>!y=IRD7IZBrYKv=Tj#u^vmdQKh6}&4IpjUubG*N)^rd`@xxXOs;=)z3$sq9Xij`?+ZYRk8NcYb z?|v%>u3x#lKcxQSWd5;uj=t}4AWwowC5(MZa6HXlUT_VK;In8Uswe`tqwJyEdMxVb z2xV^dw-0S3#^e*#w7$=5(8_T<*IsCxS-9|vK=eu0%KrShaOeZm)5t@fx*cvNCMNYq znsR7FfxTdltfzAezI{jpdHvMd?@>HT;gT0DvK-sM-6u|{YiZr$5t}0m<7>(tE=qUX zoo<1SbircFHeIUv$#C$|(UN~?hoWwQu;|=@%ibSRXRy?u#;B!rsV{21+U2-FzS?7t ztzfau>FK%pPRBU#T0#FixzL`%E1V!-mbiu0*Z%qxrhvpZad*IPD6qzVrRM z^-&~-?WA8CQ|wyHwHDF3{4WHAC7EOWAeP z+C4E|-DBZYVlqJ|#%X7grl}WEZ)ytwqlT$Q@o;gwfIvG9Xf?)s8`EM+lDnc; zN@v!scY^7!c7;FYl5_v2Fmk?vU98=BhF#ctFwc1?IbUaOcdrFpXbxaZ-@`)4)z0{q)>zs2?rQne_(Qt-r?y04 z+K!x)u4vnN+mQYf86ol|Ci?a=*^_6V4e_MVRG zlXtOU!rXKjFoX}@S6a{O$;|_s#}#0`5C^nDHE)kI?%?6j*jxsL_Jsw27hjA&{^jMM z6h=32=cEO8iz-($0Y6Lh#cF|D!~@D8RLWAAh~^P^J&0ZUq{!UB*5V^@HC5lMT_@X| z6EWzGulgAXj91hJo%cwlBI#16t($a#?+ngVznHMp1*RK5s}6(EPN|;`n9X$G(sEs5 z{MVzffj4`6pT1*+b3soxTb6=2bHf+GF#qQBkklfn1N;^(T%*kPYAJWJ%I7%PNY_b*mJ zw?6^6VJcTmnK3o5`~=p7BytRidMyo?TLpHD0R%l21ENf@{RnhKyYC~BP=LNwijK!& z`!isSs9QB@L<}=1@=7aT;g@LbNrf`qj)o%4FpnJpvyA4L+D59mNn_X*8K>2b7 z{q%0^V2)^eiY;+7pB>+h1hL!0sPc=olwMNj8LXqs(?CIB(DwvbS(QUm1yq4S5}Uww zVZ{otos?gzT}w9ief$*|HSkuZac_BUeon}#(~}J9xhDS~t7`Z3Q{64yV(WcT_zmE4 z8Ob7-kyido8?W!v=prgwZ%$sGp!^Xhi4PQc!yM&?Ay;$lp@J$ZYR`$TOx&cf9|&V= zTwv`B9xJo4BKR29-8gS3pFWO0QWinu7Jd6LH+JMz!h6P-$q59V!!{gE#luCUOe-m< zF^U0d&Tij@G1Qs4Q}}4PQJ5?!n}W zL?1r<0xpTHiPCPn-^Sr;4T08)-BJjB4+?#1G`F$;WDWo&`@6_-nuPlh+V?Pi@#inV z-Q@s|&d~(=9vn|4dM>Vy2c(*I3^|Pw2H&>!YIku1+rJ=~sj(f*q>SSTyf5;v!Q8yB zU*93#E&h)*jfL`!cW500A-{s^@* zl3{>J^CNp=_SL-vuW59sjOv(yG@bM{*$K#F7W9g7F{ z1n|eQt|T;D;e_DSTy=dL*CSrq0bZYG z8*+O!e@DmD7ftYpBk}p=Ms`~OQ3P9}2QVv5^RF`oD^M(_+v8g08A8 z93+#f>onP(HS7FuQT=y}|1^eW@}!OMJh^Wtbsg4`)x_Xfv{t@WCAPVTTF4uN zRCX5J+v2+v3+9zhHdguHKC$F_UKw3d8nw!N8p49e6m$@-{1jyE`ttnEszGPA9yI9l zv~nJJ*%v>w^xDv^Sj4CFBBBYNlhP%ji0#O5NC*8 z*#~CA)G&h`hrJnruMMx{ zf~3-&0uqOkZpj1E-5nw&(v5_qaF9;vPHB)jbR!@V(hbtmZ{xl9{l4$L``&L1{&9H5 zIiJ{j?X~8dYfXl9H*t^C?RZ)^DOk5o_q1L(8nHgGsz!4Md&}%-wNIS9W~u~4MaGM= z#%(6|%dLF#$pU2%^}5pT&*CJk>es-bBf;zXP~}-fGQ!e2@NS9IuC{m-lmL!(d2;tv zoO@f@%!~ERK+IThnr{=B4)|~c^N?^hz)HG&|Bph?k47mRjf>6%qk^9(3!gy~uZT(0 zzexVaywif1_wCUA%W?yLF*G9yqUg`YzIhfKhNOf;c+}+(B zJN)d4b!1Yds>GMvT$fMXJ(v)pUNc29K1-u@l&L*g2p->KtO1u7- z^n3CdfBQZx=S-@r{j_=)jW8@lsA=!!!v7+ia5C z=zW0|bQ?hvgYUmdtZ>|-Giy2i>XKL?wlNGf;uiboK{5w~C7HblR)?`@u*2^a+g+eYuIT9i!5r7E8q|6Wmg<{11a9uP0?S;m-Iy)LwoPkg2BBR{!oWN?HP{^d`*eilQkT|elD>lB{ zq6XQrCp+D{>%$(@A@-rn>0;oNklYN2`Sx9$S&h-(2vjI6T%VHQeYe zT6Ql`tKdL!#h_v<=Ww?m*p=LC93cL+2u+MnXFv~K041pJ^4ctvPM|}*av4eYNijv)z(EJDs#V-E{$eHO>qklpn^4#!5N+-qzt3R@1;~GO- zxXk5_!3tIRnR$Emv_iro61Q$1w0aX;Swf#KiQmm!8n^n}fqsy~#`49#%=kTdc3?5n{818xufd9)S4lJMXk`n;(_)mv3P*@Y#Ooa4e-(w~ z=g!(A&vuF*u6%AQvyG@+dvci~jn!c>7+3IOyl=T z#ZmKkEK2L)>g*w}-{FQ(s^~X|etfKf|1TBNjQ0K+&B0xHk0x<{tFVob6-nAggwT5r zRE0<4nO1rBJO9_}ofiV%_+Npd2WTMUjj)Y4OxgpvTy2ObdoD~wpS6v6oU9A)Akt8}kgmu1zCKwuva`6Al63*5$sm9Y7{MW-_oprE ztn=sn*ZnhofPabF(SWTqD>b*{{LiiALw&!MtRj^8V2>>ZaC%u>!YX7pis+&pc#^vaG7nifG5ggBPoOY`oLoh9({Sk=!sn9gc3MGnIxV z#6RW3Gtt(wyKOjtQW;Xz)(h*IMlA4-*9VtDg3o|gfI;K?J>uKf6R)D3{&6M$vyzqx z1g~z~Z&~@DH^3$K?*M3)3a3vPfMxv)%4?^nI4ooqEHOA<*{gIrw&kDSF3fLDRv|9S zgB3|j1Q>7mJbg%VVWoHC`ZqNie!Brl9jt>?ILwtZ-NU5cyD0}K>RbE`8Cq>43h`!I zRQ^lFL+X!##tWfGWGDaUa}~vt$UMXWb;rt4?OHVoYcB=n%1CG8I zBl168cajc3;eMEN`9$9oYGeQ3Kx{vn7#08s_2Dy)Z2aSei>^rBUznaLbS1rVK|ngw zhYFhu&ZQa&8D_J3ca2bswjnssm@#eP$u@D_576Sa!w=v$E+sku!s~db^gWX zJfW(Z8f$m=TJ~r6ziBQe8ka5oc#%4%^$(7aka05>MjY*`9H^Z91g!^*MoAux%bqnh zV-foM{?mRkVCMl$FkyA7h4y6}Qr&IO&$7fYoETdVLEjbhjc0|7xkux4t@~c{-|tS- zto1#;It|(?y}xtA2`LL(K?FJc9rIr{x&pF)o>YWChN{x9pu{|mww4U;kOz_hJa$eD zPhs)0T7h(Q!*az9V~4TMuQJUC1k*;`V?$niOQRVL!m;w|N|fV*C(iLqxJ|$JXcop| zSncNlczDQnP(%vh+xsZw>k92p%P;ubL=b7DYZjf@yTI8h_&%Zi>{ZwFXl}m5Q#=uH z_O#)d-{xNY{ncU4aO~X#7cN^Jb;&gJJFObdSK^`bcRl&^>mlHjAmjb+Y64{Y7UjYvr6 zKuSEmW;Q`i`@oO5WQT~mb)U(jDC?*`uHo-#kiqymTy1i^$Zk?7*7+% z-9B|PfqLi(PW>aS{~Lw#hewI3Qr&C8<&CNAMgJ~Q7aB1Agj38DYL00KLC1$ZY6X|o zO6?cMUPB3r-()5Pkdhu(V&=+zWA=(mNTPkQ|MKj_&6niujD`(;pO;I1&%kj7Rm}EJ zw;Z@ekOo&vcFyG)vwhzT&YC&htF5!N;HKd>%{Bvd%0p^~{}V#a_}?Mq^(J`Y3F0zf z1M1yM{>v(kB=gS`kI-(ehkgtvxw7)OBlT|-%hYcYY{yVA#}psDz9_3LC?;6p_DI|7jqf`Hv`T!pnw&t5YNW&92qaAzqPU0ijw!vut<9Q_a^N_i0Xl z?$eu4BF{W)VMH>D42q;_fBm-{rE&KOb&AFeH+;q||57nRw!8Dc0rFhWkdhxm;0pCz z@kDz!CFn?1RB#w01E5&$UwV{izG4|9uQmEpUHLk;6|5^UIdDM!{e5t!MD}l9cFagf zU}b!_5OOTc0san!1Q(_io|KS)_gN*)fCzq7d`aY=DC)m4RVx(`cJsEESXo(P@7lf8*4UQD?0N7es2M5tW9iv4egh+~_g8z_~a={6CC-wf4( zAnTOv%^t_%@2dMPejmAcQoQ%8g}sC)Cj~*m{eC;||M~C$CVU|ST*j5xhi~-x-&wKU zOJWP=%C0}f=qM>s0{5Rd9y@-S3}M^Cq@>T_9i%jw1A`HjTV|1dxVr^tK;k6;EHgd4ifO zS+UMzu3QtX9xUF@rT^FBee+>ZeW?OuX@66?Eft{-%l>8i?`8T;8tN_@TMfx7+55nz zSyrqa0i?#|HFhaY>j|;3xJm5B0cT&5K0}nioSk%aU7prKd=KEIhL@R`p7ztrm@Y$=@um{ zLorp*&JBK{IuAfX!PIYy4(x{KCF~h5NY6F7Kz8$XshMs?3YNg4on1PLipQdGnTJD7 zZol-Gv~X$pvKfPtP)PQ#NE9quWWVx>SQkfU?BruC@i-e;xjr?igmL5q(f=$={++{Q zR^F#tCp3CW6-w}E3PymsmnBQ|zs_JBm;pA%#d+cTOf!bu0}O&GG@})NZ#NNQC|7PE zWR@GRp+hA~*#px2gQ{Wvlu{+WTZf5z?p47wwIyK-=YDsc=%4=UkS-$o&+bxg${08@ zNgXk1Mmh(i=IUjId75?lcW|h+>RfDfJ$ecZ(YPi==#NgApOkU#Z;K%4*){0G zE<(TGwIAXC#XU0bQ=S{HKNlO7_h-DedA$0#WiQox;GxU}%b>F@tu@Ac?XDr6xkRZ1 zFx87=%f7*+I7B|XSD&7%ddi7h`>iMWjJJAkJYyNoum==8B<~Yeg=@JA5-~SOz#W49 zLhzg}pLKUSaETbCcc=X8C>rkUr6m|)GGG{Wvcl+R{^O|SUOkTM9bd{;eJXNJhMIvI zX-7s_&Zyc}Byj%{!I@xM7p1ls1}SuN>;2cEka3zKDS@I#xoR|d4@G_Xk-#Iw!9FE7*L=L$eZH;@pl4wE*{6<<3qWzS)zAz!hBvJbai%a| z0Zt%rJ#T;hs*B>df+psk(p35N`#x_}#xqTx(eiKw;)TpJoL=1{ygb-Pn>LH`vHM%_ z=epl=T$xsCc6g?LRPyWVwG4%8M+v}rt&?M4+Vl7Q05tX)61Fp!p|G}ei(i4@nX8gP z_~-tkLi6?y=?!aiz}tDX_D%esZ7Mn*1`ijz&Z3zFXupD&J8Td>5Av?Z1V zg~sPB>I@{0f-F%I2>N`-vm|W!?wW<1rj*Z@q*qq6LPX-n$DMw7Pd{{8{iLh@VBXKi zzq2r3ghAk7(hyVFYJ%U+T>;w^APNCd%2_1TrS~nHL9=Ay z#(Yz4+|WxyA^mB=GTeI>?-6hMWzHZy#bn9rT z*&PU!&lFz6;u@}HJnD0`TMB*LTE9-voaUA;PH3YUr>%Z`E$FLg+&%xaIH$Dj{>WLw z9%fdHgs9lCnYb61`qAs#g~UB$yTK{H$9REA0~Bi@S_2%5f(nzd)u@%DD9NsT*Pj!ptrg*?9u+$MHN5WLiTr`v4HTi$!y>O|I}E-#-i`mzC*=*Vf0 zLgenc+KAOC@ClEW@e$3_*tKi0EPwaq{%X)POpI;WYxn)6af6!E_5EGupN+n%O~dni zwTZ*7>KyG2Rz}Aygz(#Ad&V?A34U_VA`X}evICteeP1>MMeKFjdF+&~UCRC;cK%Tw ztnC4(MM-cF7@7K^p>8QSvJ=|f6^3`pyd_S=ZX~MmOZ5qRsS?gTMVR4pDSLUg$DAhc zQh^hR(_%2@9z=CB#z->S9L*v^c3?(&&n@f)Sj7Hc?SbayEoVh=m1^c~V6cqGz5@Mr z@8Dbocw<@MSSs-+$uj+s?@K*^do!86AzLmw&ItM(b&#uD_x8I9W4cltBcR6S}05R1zbcc)uqHrX&6#4!GvFD0!ynxL0o zXs5+Ucy?dUH~R9Hpy8~s&g@R)?Q>M}iaw5L2@T$rk~^8J_oV>;!bIaJGv_c5)vCx; zQWSP6sIi-n16lz69}a=)X5ZC|TM5jcmrZ47kX`0N6M1zN`Hf>*zw~0A>KNY3%Sb&3 zF>9wjzkBxm8RXvDUM5**`GDs(xc&8p6CE6yE~xvqe#vsJ*$e<)haSB0WZ+N9QU$!pEl;5myJcrRAeEs=W4DAjCulz1gaCSW~-UonfjLVcZ!-}Rq_gG4U^F}{#-K7T{ zYoU+O3}@~~L`+^vwCx%64ozCd!bnbbU~+$NZ=MRevz!3fwlUWy&(@-r?sI8P1Tm4E zIdEpBJbI9mcv4FhAXs?4X_P7EK$YI{7U8<3}?9?#2O5 z;X~64OE}mr+7sU`)P<4I&*lLUDTw`gm&)LcGsB`yap~%qG)3*E&M}4OE~EkEJK{eJ zVAW@UU5-_KEyV5B-n)pDDo_r7n8xwO@Ra~n8PCs?ctp$@-e%1-&U{fIVpLx6 zu#Jc<)cEW?Jj>$UNh0<}y^F9>OHB>;?9)`K?)s!D*WsM!Vvo~i22Z^Ad10%kwqm4K z)L`A*S(#5Wr^MT4AKwO$U!4IWN|G z-)&p9L5{c@+G(q(I+0{4QhpweeALwzCHL}KQ3TMw#bdh%OGVsorcKXB>VK4~own(< zTM<&S9T}pW|JI-m2)>=|UL>gKJvYx3q7ycjHhEWB$d9$%k2%yFisgzzi;{w$ekJ2n zy((6mmc?J!{=k%Jb%$37i?wUqTMWA%5I)#y#E5g#_yvFgik^|>A%K5B0P{oJxWJ2^F_SdfKhihbe>_>(HIL5q{^ zxRb_Y=Kd}2N)$Zmr2&erLgL4%gcH9}i4v$}|LpBk@8;#0wMw^}^Y^+m@PSaEQ*V!okLAs>zH zP5=XWZ0td6e=?zJ_N+z!o>R>ccyyC2_f0kj{ zAU#KrZb8euL83-AOT4>kyDKKJtCGr$KkTK6hFu-BiPVfOA1(rG;7n!vcy*01sp)(OkWw*cIk#d@^MwKZL%?_&tCeQj4hJ>}`J;=C<2YwtJO}Z4hDgv7+tH>;nG} zQT4N;Jm=v4-5=p=0JzN|F2+s%jJ*&|&Z#;*XQBq)LE=SIeTg7taqoK3aeHPIg*ei40yV(N3P zzH_Z0S95!ca;D*==Sr8uAj7JTV+!o+R&TK2ay~xjKa8(@+BrJ%Ga|9Pe|Qvgo6Y@M zG(XwgDiX@6E-4N|>D+2L_f^AF$Ah_D7Qd;u?e{mTS;O~MFILMg=TsYj7bv$qceiUj zt897Gd{{JIEgfR^Gwkj%CF68=pBa6f0EKjGQM7cWcDfC;!_3Ov)p|0yn>5-4>EsZe zDzn(?13?~t^6rM+d3-0IA?pwK^ zI5cJ1ulB3cOG@hP>-5D1*iO&3Cio`JpL}?6yyrS$RupBMA7!UzJKbNzT^w$sB0IMM z8g5=>JV`0g+47LJ?fxxo_fzou$EpR77W2r~`IEr7lOS7Wku*ciu0$YrGThKE{OaBE zdr94#*x8v1e*I?!+HkZzZB9d%l}1LBC3LrFujV=Of^RK{?9^MnBL~-_0lt}Pxe$2F zzjFesy*iai79!#Mc$iqcBe9`25|o$J(P5I-BZ9p5S^#sKVrr=A;O6wixNe z_N3v@=Jn+H1gdN3m3f(sw}ik7wf2XLJWuI&(GSXH<19a%_6m1g+UDEoYfguhQXLsB zYz1QVY%PpI5+9IMD6(mrMj{z!v~1-&wlP11{>(mhN^|kp^w>&Dt?QoMIDa=^o|jkR zv2_ePA7DF1m_mGN?~pHI^rs_yu`m0T{OWHJd-A-U{iY{_)&>F)`gx}F`n-U@=|Ft@ zu@9(FMAK+uG}$e*+zrNIDrt2+B=_>`Cy)J+x*470oL{>FmU66w#RLqi)yHo|S+kwG z+$ZJ-Aks=x^B#y2N7U2o=^!-T5a#CL!V+cc=HkT9Bp9`gAv{O+o7+-O(QTQ$j2T4bz(ofI-{)+3y^O->1 z2;*WI2;)DAVEj-r@ZR%uzf597EX*+MLYe>wnWF zeObjIHKPc1OnEaWJ~+MfgW(9)Hm)sEa3W5+qWftZQ76kC=XgnEHJ|3`hGcnN-our zmu0HQp`q{FbM?vWIAcMu!1ld$>cX$;+285MkrvKd8B@n+VZ}86l;Oy`Qj@lN$RO1_ zXh?wj?D8XhCSDZD(~d+5{*{uAxKsMy*mkP+eCMh266tuaJ*3tdaeDL&>4fxM)_kaB zS_GaOFVC3bngRx$n(zFYAl^%D3~Sc0!%?8XVv)Opb0t30d26j4#RNeTc^xszkr#9V z12NY0qb0rDLUfbCAC?(pTsWruVbPWrBk83`*$J>r*aDXZYZu}AHQz?dbGx5kVY>Ew z&l4B=gHTQ1_oN*#U%Zh^3||dY#pDaV2naAk?)Y5mitEfsZi~iB+iOQElyV3qsx`_FQ9L0LW^8z$ z6kS|CMRyYBjg&oL-56XqW5P{WpztJ!v;X1F&`Vu)(5kfIw$sMAn|@HvXSKeQnC@1kyWf-H$fs^;v*LEWw+ak_X&jB^$s)n6zj2Fs}}G6^g93) zNs)YI@!sOs&&z1Y-*|S*TcVdrXxiIw0QRji(jStr8~V6n|9AHp`))El9Gc7}t0;2w zPHeLUjHLhF&BQ_#RsMFO;l3ifXL-2>ySURc-+B!uLYzR}USPL(w&WP}u%I#z^Kzoe z)&An=;_YV@VK&)N2}C5rNvV0DJhFEOmCssM2>EzEjne(y z-q=sj4{GWIlD$K7q~=L&XS34B6ze}=fcxr{uKg3O)r}3*2_8)Yck@4TjrNPJS@s%+ zbNO}zdJbYrPwoKck6NwxD}aavik&H*kw97>r^wHkSk!O`Ct2wZ;wOB`^(5;90t@di zPuJaJLg#MTp9UUE2~-B9*+Mg>mfn;n z;rvI&Jc$03-X^5&>(q7hdNrk<;>6`NHjEQoAJH7>1_Tu<*(y8g`8JM*z_(+$QVfQ+H)T6 zJgg=xk@(%61SeeYzZXrk+E^|cvp^Vr*2>?+em-@dcbTT!cy{&3ncNPWXJeu^u)esg zk*P#}ioyAF`KG}8UBand!@J9Aqy0yMZ&;|jvh>y!C;ic{a4vM}-jdCJ)TV{g?XwHP z^^8R_Su3)kTpN-KjK*@?4IAlkKX`$+@Sc?HO8F;`6U4mqqNjM+>xg55ejy50@) zZKUGCfAoi6U1A#cPnwNn6QqB_FD_^7HkB&u&Ric~|JIq~Hu>`Mt}b?($#9m;16HF& zbNKy@yK&YFpIb)83-clvn;s=o{3k*E{GrD83GaO`!?|`wA=*RBcP-fcwAs7oi)v02 z&}5fFcF1J*BLB0z`2GR2g`sH~gC@*zkC3#SUqhNXZ_Zv=PqhZtkkP6Gm5u4c!VgYgtdJf8Y*d zQBOYKW!a1V)8>XJ&Px&r={A*?Z!cz}%@|Q_<|p+|m3xoN24|s?i(pJCHhdXP&bZb{ ze*CnJr)iI+bZYUr*;<;L_@v2ei!%|Rt8{3sqNuP>HjOs3m;4j@YmD@w?_PR^d=sIRcx+9o~ z9_;>Fdrp%#K{|@GP`n_(2##XRIE%>STyq0tGf!;Oyns##!@>gSNMnB|T1T``_Jdbg zY?yrabeN)Mf6Q{9Us+Q_1OLnbIxbefr1#V3YOnKRq~U|9{q4!b>%hW+`q5C~s^K38 zd|2aroVi^$0jF5+Q_*+XPA;%~|48(k=7>?Z>ygxBAeBs_<)#wZO1;2Se%xL(N z$DSge&13;P{b2ha!Ij$&kLdRkc@4PmdPs9wtW;_^6PxIXgO>NfoGc7W@(tp1%wg$a zZcb+RQ8CmHw+^n9QD4UlYIc`yj}qFD@Z7DwviHn~2;iM_?MtTGC5oHBuDjxPZ-{e1 zaX7FT<`}WVvTTbkd&VrVt@$dV;r4Q;Gu7_j48^u4+@Lq`>)o{fM1u5JBt{^6kvpCOqqW?V*7HEWg849 z2R-y!zxK6vwzrPv zd*TwEmB}=pb>9G`>l0Pi$7V!a`E&2DJpD@?f8=@&6ct5wg+kEwUypu0QHo@?l4;ml zcMTA|OmD*ce#V2I6W?>oEsiPht~%2_7kXfGK6mvgLQR3CZox}wbfK!bE3r@2qL@CO zd+i${&!^8i1UVUZEtlSuAKo zNlxcN6e!nG*8`uc_IPaj%iCC#5V}$MrRbbio?Puzvjoy-NRwYcF;%k1HHyN5HH|@^ zhU{poX-*oQyxbZO9lNMf{dy6V7-yt)Y8aj=Ys1O23-e1azSGrqF?6h1<4x4AR4}xv zgjh*qtO*)G82CO*_4N-%tAoU{5k2pr9kKUdh-S!Ev!a#wBeLG*j7A{lPU$unT4YZx z-yPf11BuvKI%sCsyKibuFWo~Lq9?JNWU%rIGd;c}5$TP)yQNOt5D&zm#e}{Wx;PkF zi}syS!kqD48BGOqJQYWIoX?V)`un~4`z{EYpQ7n%>Q@?m6VNpoBuqnfoj>(Ia}}k0 zS!*>WIQij>2<~<~q%rN;?!|Y!d$&FRH6hh^pM2}r=xrqUdt}BF%4cF>A zqOUfgMA33Sh?!F_JiD+GulHS|_7#rnap}Q!T8<0l&Zr?x3&v=}U0vJTFP^ft7gF5N z`Fx9k`(|IdQVdMu9IGpla&Oh2Enjg5zhc-%ZCIn9-k$cBcC-w zzsg1fA076+Ui@m@mQo&6DG;y3X*VkfMlFg2pJi2UH=`R&wmA~?OJI?bUy@T)*Z4_N zrxD^k?DXZ~Ln5YwU*Um!tDDEa-8rc2Zc zUVU@LU|=!sV=zjiGz$>L0MU<@Z9tv-yMuh$pYQiduFzg^b5I3#`y=rhpg8Amrp#+g zA~nCg81cotqdEBr6y||SftF*0Nd5>Mn3!3Q#o3Ttl)+f7Z*EkZ;#T4rz!Q`n5F2u# z5>_9v$AS*A>9L(CpNbhtUINY|gNqS4>l-Nowu4#OQTKUKaT#$h6`C|y2FIe!?9{k< zxQX&0!Lj~EAxPEpn)Q-U69f+o7j zjG4u7h3OoA`b0VG!cR1vplndVxyJvD+9<^6p2r+@JwrI6?kydxL~+*+uSl##aYVYt z7N@4P6fzZ$IPGmt%*l~J>Z?KTAr+75^%)?C3I>R;b32D}cL`f#a!?|;twTJCXU5Bi zcz(Vx!l#2%B1!wnw2Zl9xQDb>PK!VNmP-StoXKZB^ICt|A+b(!9Mkf-{vDh~wloHf7G-0nsanWbVjnTB+2mMQYgAlPZ{uiTBC+*tP6yNgXF$sf%P9CyPcIcv!` zx!MQ9a%R?S=550m6&1t&W|L%-VU>3dg>*b!{L1xSp)2dD~D-wsA&*dw$gTR?RV8xk~`4w&2?m7&PfA)ALK{2bNsA z*tU7aK99adkK(#B*5TOl6p73M=RJzSK!% z?OSp8P$X>PZ-F-<-msQLp`eXkd4X>MLg~lB-W{ZS8^eL488`E2k3YX{#W9^Bp;E7U z&&T$|awd+~c26&uwo6!nBotBPj21Wom)2@fHi`DHMdT>#LL6CM#0YGXbUmLPA@9=< zb53whx(OAEy$SMEdbgmJ@jJ z1Wk_Znc46`!Iy(ns@)7;2b29#O?X^&h$rv)<1?Gk$X}*WSB%HePFtMkG)GmIrmY_u zI?0EAND4Z~d8Zw&m4$x6geP#4^zceN_~6!Y6XrhP4cpL0j~UxlgnLKVcJMtkPT-7v z4~UVU{;97#BZF`sN8fZ34R}w;Yz+#{_IR|5Rhb)bOl#*4l1x3l$+`J8_(!yCRjq-c#dBp+?dTJ2JSk$Y`tmLta(zR zxv${3Jb(0AHzN!Z!`*O2^ywqtVDl2@qr;bJG$WTg3{&QfCsuPOTgL&TUf)FN><(%T zWRhQ&i*D?>af@-Oa>Fn%bmT{E{NH1DNRt|fm2lb-Tq_D!nl zjv`?pgNw5(jRHoC(14^W!7KFsogtP8BIvJRU~3UnLH_l#Ka*_g^BUkT(|9!ZHB~}B zN#$Ap5u~HoZIt)r+wSdZ2;m6_L%!*I$ePmLwCT5vhSn|KDwAJLvx7OrX)fjZ++*xF z=aDacmF(Cu(7W)Vl@WxWMhQ91+D>a1!@LJMB$WKEoCXw7gD=s;v zyJ@-ekB+b5qWd)lBn(37Cpg;@XqgLvm@`@j$Rrt&tH%kbg;a$6IO z$khYg;r2~b(lPjkc*IhJ3Y}d`@oY4^0JnKRsnAF`;)V4~x*YZmyK6;}W4`(6@U`Ke z7gvqT!x0(@Ufi|s3S);I!to2g(telgYC*47&)5+ZMaQsca)`i_tS#b#2Mu0Emwt(j zRk=8+4s&Y5EgGG4}lBI?#;8%;rO1oMWeWC(p^ zQDWq)fkv(1RVuuVOXZP^=N8{I4Yny|)|lp?Uy{I8>K)4R%(H|8l5BY4Rz4V^r*JlB z>bI|bdETjldQm1Fea1*jKI?SEC~;c0z<^yJK{)X`%sWpZtcU1}H2DpbwMA=ZKcV1i zusTB%1HTvVj=#UCw-0Dy6&>8yrGozwU@bIW(3*(06Y(l&^V-PYSr$tOu&$SQieJ0PJ}y@h(H!S*4p=nVVC#nH8us_atFXZH^D){CzF&EPB+j_!q|)ckuWm@u#+ zf&&^8HR?xjhsKK?@cX+!2W=>oS6KLiLDDsvO?S{U9E-$+#O!r5n6QA2l#SVrnHY!v z?Cj8l*qvqew%PRwV38iZw!KDXrq4 zMF$=Qa5-ZexqWsI&%;Eb@p|$Ef=E?Z8_y?Ag7ZME!ibe~LnDZ=Gue`yDk!h)IivqA z#|ZW;`xzR|Sd6GIPFJ!-eHS6MpSatbF2W!Sskc;Y0RppFSrH9*(@?Xur7zxo<=3OM zeic;P*o1LWMvScQg0#du(|vC*U_9b_61>BtB~Yt#Kp+P-^bjihPEuX3Av5t(^>+GG zAh@q1i<|6BJb5{X9W=D7Dy2asayTf@{$V$^PnkY|2g!Djh;%3U204rA7&+^Cl)JwY zfj={XJn1n-D&^x>=hQ(fgDkT_qn{hP)1$xP9N~!DbcT3n$-@lwy9lR**a~pyrMSf@ zOL9tg^G{gP!f{P!DLjj6^orYFcxr}r)@Xa{8GXbSq_-^V8)7zFhxh=`>zn%Bj z7-#igNT_!uQh)cU{$q$GgHHGJ9q+RJS>jV4Vd&#vVb+U4*MzU0cT`07B7X_b9pQzo z6Ld);T>P}LkzhhRZ?~l{=W=~Dh4Hwi-x^o=5@e6x&Ubz>M_=!2E@q8gZ_)e|m7mID z?mkpCMc6rOa%W*6Ze&!3+v78`5Mo43#c3%dZoV#X_0W?qsu~}cDhP3k^9m=bC5rpo zf{E*6q_G&T2HT3BB-0iepx{M&RMQ>`DN(L*dPR2r6pb~tX-p`VGtwC)Htf;NmysX# zXpgZmwT??}3IYiOGs%~=PrOz!Meleia9UUX3?;8&d?{bILL{CGl}w zGjV)vC2hZu6|udbwn_7l221w3p~^*xcmA{{&anar#%LLikr5|sauLQuej-6Bn+-kM z-Sa3_s5+VsfFJ54mc({W?Xlutxz!?iICo@uw9-XLquB$oP;j(gYYyoW^R;H!;hkk& zM{yOILNkR$5q72pbL05pcc9b0K11H0PIxjblYF4MsWqj27Hr3iirH~`SO8oPJE zXVjVkQTWnJ7vYjwD7IjR>u_1)h^E(X|Iv%oV*@1?2Dz`iK0UOM^%>Kzs(YA^Ivzcn zcNsywe7U$Px~U~wt56XPv~}q=PDIaYx(1U}u`dI*;=e@AiNF8pGQUO-f1#yCSTn4J z3W*MyiYTqq(N`2S?!iurB0SzS?Sw@fsgA2f3W4dI2V!x9c_~Kg*3;m(R^w1?+f)xu zvDHRnovU$89e(*Ei%2my21vyS}FA;CT)$+b!bKISm5t9iAX z7T&O)81HyLXPE%MxF?YHculGPi4mV%i}P!Z^$YINGxr?Z)WFxYCYk3d5LXS%C^24-^p0@T<2Q+T zFMaDX7}qYTMk+C-%*HL^^2NleE3x$JHuJ9ex|CO0P_2M4nnm%b7MP+Gk+srF6C-dh zhK>`!xDEQ-YB2CY)L;zsIS$Bwelgv7tHgu0IRsIPR|%bqvUe#Lm{U-J|M zQ+-H3chmXK4;uQ<7EIvulQNktW00RS9*CWi;Xwdk=kuBWe-6|USm|jNuSCCN>!HM$s z;~XkU(FcK)Y;gmi(H2g28G!weDu%BD(*D>n2{fdWWp_{>QGd(6i;>3WI6P&aQ56<% zD5z%B0Zh0bQAdK+&o`uhlF_pe5g=Shl=Vg>R74dT*t`A=-jI8`G>dV?Xx6|D^Wh_L z`qszm#hz1`#}AB2ykE96y1O?-8kGRjMoa+JQ7Ymg#RR#epd^;eBeWM(uR%Sb8T7%( z0tw~ls49x>`xb?r9}F?+p_8;;9PV+NFySN1S7DF{$ST7iNq0};nTjwHCSGi21AS50 zhcg;CiOnv4i9}Gv{g%+ecR^bmrGBtQ6PM|C4HOqv1W5Vyqt44+VPdLJb`aXRF_(xC z-XlFlYh!W-|4kXrj&e30U!^s%OXpP@{q2*`(<9U?Y=pYaRO!vftY|No@ji~dU+49% zY1H~TsJ<@aMIrWQgpi82r_zE7p(-kIXZ<-M2DTe@y@YMxUYcV&%}63P7Zc@6Dy9{( zXHu45An>4%j?1_%mGoAK2z!5SWj$bo6HBYk>WFoS;_v}^klE)uo1J@ zrch0w$K2DOqvUkPWi#H)2B7Z4#tnTwD{km9t(E??P>9HSFqmCIAZ}$!Ve;1DtlF^J z5|TlgDT?t+P*Ub?4mu6|_lqmH$w~rIgrGm661|GTQ?FrjV#FPG!?-fUsSHvP#uTA8 z`pbf*WZ79L?e3F5W-}G?8d#IxwiQ#uMeBcEhwZngChXcP5AmZNQ$48komo&IEAhQl zq|m5~DCxk7Cht0JEy*yp!PIHiK!Z9ftLw{NGGX5~g zFVv`YUg=SIM^Xo0K;R2xB0)uAW4$rKPOTq=9F}0cJD@Jzc54we#9e+1;BkCu?#+I; z2Q}Iw5`#6b`lrI@@)y=z98DrVt$eY>HlNto{PDOD`N``O0l8%q>3!rbi2ZUG;dlcg zgpDsD`z9X~?ZqIsfOEr2HABT)8BT(XpD|w(?@Fqz1p2TJpEOhbn9?NB$73Fc=jA}? zqwp+ootYK)qt8^;9ymY-KF_e)En*ANURtI^Z~>u5uhT^Z_mtVJvi5`N);}RyZi)&3R101%KxQ z-&dg!4Mj)C!sJd5!#>@Kz+gfl{?(b4jK{X?BfblBRdhE~7mX-1l9d!biLBEGcc0T6 zusg0$IzG>5bK;niYjR3haf>%$Yfojrf~{*}GjfAyJK z2eqcCRQ1JeALAw_bbVig8U;$BU)dy9Igb%a__Ru{Gi%kb{my-1C+Xn-AcA0$H>d?o z!HtpJH!Iv7u{Dt!AsB}P6bgvO50@hOD!yPM>5i2*u#ou+7-mq?qD>d<2QC5?Wn6rVw`?hLXJ)O`jCJ`@dc_b*>IlFdOs*yqV7Ah_-<}$iFf`x7+!%oxX)_Lw@>Z6^)~c(P5mu}a*E z7N9Pm>3>sm(_UHHJK|vwO@&zIV|V6T z!I4CI1Y0%);h@w(Th2Wr^PiWIkLff)WyYVk7elg);DlyTqD|wiO)~hJ3SPjMh0k10 zjZD$P_JIvc!OBvZg$_MLn5x?lGl6wlW7kf8@~P62C57CNK_Zn_x2)URj$HbsqdE;i zEZ)fgSrJz9i%IZ&MY}Sim6wF}LV`jn(wy-h3T=?s5@o%a z6Du+*9b-e1K6xTY*_la(+C$z?j=WXLAx)HOD8(PO-p%zS2jz^`Ip(1oO39Cvh7=rl zv<>QtUJlDwX~#vQ=r0*D`VQFfyiK9exazWjyB)%~(>CHdbB;YmyWbw}x$Q2dTEiYa zD&){i17K}#%;#*(A-)(sUgnwUv0vSKCj07ZRdjGb^%6L6Woy;ES!dorJkAgZ2Pga! zBI~eg>_}@i+d__U%bMMHZJ^G8r#G>>Vg{vIeOMO$2J*M3G!a=|Q7oGbb zr2S=7lwbJw4buz)GJtf=&`1s;ARW@JQqmzHARygcGPJ-@(xs%*AkB~xf^wcc+e?8Y)_nZ3_YYlM5p1qHK>?1zk?1NpFx$ny{t(=dM-_Z!{h9uV^>M#^rcZb`} z##OEWW_BdUK0>E-%*7qyvC#OW=OIRa!HwS%VCpzldvps>$yFK9nhg$#l$H70+R<<_ zueo=;8HrNrI$(LYY~4$+i8BP#yYEiD>;hO&P^|Jq+M9;bi-a=AUdt+aGpMPEgAdmPUK&>tR2y~kaNK&{U=wP=`i zEkeLn6QYN(`MT7}(obU(0Ryr#JOv?r%+4i+Ukbmo6$n~VF&Shy-e#{Za{sjAeoDz- z`{uP$kGu+-fCX@YMIR8vR%7gj=`_IHKg!8aJ)Y`CdFFE+MR4s0M^o2`j z^nryc9QImiZ?-OBr()iCcxpWde;2#c<^F7IOcCqpW?A8v7T^W)#=A!MmDCP0HzV$E zN)sB4wCN|9z6DzE)d0<5pGL`l-h4zKmz~z`J60396W*FBGh`j6hY|!*oMg6kr-YNA zT$;->PX;EXM;{b^`61PJ!mo|-zo?y*I~ty?K!0sEEq$C$e&Lt?D4^Y6jGD?pD^Icw z!Jhi^zaB|SBcK30Ka0It_FsXwYr{4@5<eL!hb}Meh$vvm`(pbVT{nYpplqhNst*{kT`~#Ca~XxHNgKpYbOj+ z2?_l2(8rR+i20+~SY87=@`*H13q)W%8BCCdqy2>(T@STvdMNSzFIR|P!2q-hb3X*<7BhvG48vwr+j*YetREsl@ zhmK>=Zc!uN3c|u%yT~EW!oCE9VdZ~6*H+3`xlQwpayS9RF-#)TpjPYFUR#U;U|@Ny z^xSJDH09^2>UvcD<5-f&odb!?uNB%^=oFTshLw6wc;4lAk*l!#-j}#E>L^*BuT zdB(B}YI=LO1@qJ&fUnC@fA9k6$TECs{ArJOc&K#+i_N%R@@1y~tF-Dy!GbTXH-3NI zCdFRQ)LwSyXz||?Z{?da(!5-gg`29${E^(m%Zd4w=!>~b&PdVg36g?nLcoEirp^fG z;1hy&^SN#y;~)Y_rPo#8(7kw6_R$>%PIBYFThR5G)p&mL5++EW_pW{e!bcFwWt9BD z{&Sb17YdEm?P%uv*cofhm#gI%esU9o<3bX6b`2}qV&|JGyiKL1#2R(%@Tk%W#?F^M*Bok? zVMGRqF;*4>@xFRz*h9mL)SHriOJ#V~Nq{$Y{v2>#BEHZb@<0wmz?{ki1OQN`7#!0X zj~?f&QVp^uIk)_@gZlkkTg8tXR!iU=Pw9@Ic%!-J)c^G6ah<(KS;7n=U4@*}RPUJ5 zN1r2v`TAG=NSTIT4ZObx+WuMTr|;f3U%nF1W-XpoV5FW)f_4?xEMI#sPTAHnKN_SM$ z+7IRPiIXB_?ZPjOuC{c8xKdp}pUT~-LzK_2B2qTO4bES|LuGtsgD!g~OesfoHb$G~ zf+QouS;pl2-e0U+9a{JP#l0{KNwaG>LGNz7R$(*DeecSwp2{F-a3Q}nS5U?=;^pwB zV|4iSMxiy_Q&yEn3Mq84J8$v#ZzIs_c4cap3&f4NT2?I|Yfl7xYtm1(@u{PdAg+67 z4%>dZ;0Ot-?_qIAD{qO1)+)A*rW{q-LWedk)q&~~{w9N>_aQ(XAK`@D@K>dC?T+bK zbAOTu*q|Y@H0gt-*Hu!y668urk^h=7K4Bb^3RImMm%rh&D(xFnSI)R7?b9*75syo8T{ zN)2y6{dVORIp=v1?p2o=F95^Zr1jk8^E{Z(I&G<{rLKIC3xr&xCA1s)dFE&2o!AAR z=}i2xtQ|^vz)aMrj`Vvdmo5KZ?#Ee8K&)75HRxz515Yil&+r}c4^FKcQ=8XQEG`SK z%>}%ZHrf8B_;UX}FYC9~;gL17*=QS%JI)b9T#XRl(BWw=VwMr8nAKLqJh{ z_L?UZ)nm9P??Ukxgh@Q@n}c5^NK5hNu|4{0xGRqQVMT?9Zqs0$ryan)vfrxhY(Ez8 zbR4gEjQ!wqXF!k~0tFV80?i*8^>_EwRlMmWvIrm=>^tq}lPYJN@?Q6CmaWTbaO=I> zsDD3RQUm^Qg3wshq`^*cMHl%@=)cb?OK~*de8^$@vpAe~51S!n8xZk1Ny!;qptv+i z1im$*M8$D9$_Yddl3O;0zVieHEK`~*FnlFja#{`%3nwt`oS}~1xcI{MI!G9V(dqP? zfmx%_-|0002p^26!F?xF95UmMal$SQM@4@Vkk^iRn>WN$rUW)!C2rZ4ucvhf@j(Pr z0|JCqQ{%WGl2B?HlW<3l&+lA;Tnzz8Z}gnVy;v$M-#GTfk|#fN8-mopmc{2MfV4@C z;hj)KGp~bD_^=5ZyEd|yBD0??6#z(|i~!Q7&ZQI~ePC(Gyv3(Dg-wZ$1sCHN@>#*p z(49h@fZhp#p!dvWzxYHrw*0i;D%u(8iS3YZyleeulRLNRg!%& zTCO*Dbhl71gOke`4JsvMIX^F-jyNqg=g=egN6JDOBq19I^ii{lqQyVqWpak>PyK9& zaulEXg_-MYPh?)I>NaUfJHoY2U~gV76SO?I^0Alv{U>1ia<|$yjq6qoesij~zcS}p zk3BbK)f)`F`oynu zWP<=rlSooBwxyuPl(N z7p7_N^YC?&fwIdIJ~KR_Aw+}ZMPEw3Y#%`!%_hUa1NSeNg8(Ma4?*N7eJm?$UvGFU zr|7{LZRUsn{H_T*5zov91sB!cb_|M`ir$oLWkhkQfD>1`5I~R|m+}>$yoJFh4yVX3 z1VZBZ8%LBbK%0Wt7;zrDkn+Q5LC)$u+oxHYgB=PEQ@aRrBbPV4*tXwwDnhjXX^9=s zjkuon6%ls|NxPZiOJ7UoDaF##d@w3F&NXb+j!B%ka7f!67$r{|yPwvoi_3Z$m^7W5{-=Vq0o}<5V{PCQBmBbM&2Ic_Tk^gf@iV z8ZI^Rxe_C3qj^fuN;<%0J>FwF`ig*`-{gIuc&;K^875d>r7fV}trrXQ0j%Gph@-6o z=`|e`{Q)-ADQOK@gqA0L1Kw zG*QXWa4|UEe|rxE+dwneJ7oQ!N+=X6#A}7N4`gntZ#IzcU^JbCIA|8!mF9K#=t7ebN>^*SNY@DE)2rR71h?gq1RXV9C&(q$wj;f#>;RFf> zaq<|-^ohO|CO$O+2(<$UsA=gBAW$|tQjJmzBF>v(0C$*jff5x!@_Y>>Ovu9|iIW%Q z_>ltmeIFnDNiTob(;wzJfHd`Dncv7p;0A`B%SFOoNQ_PeTs?8Fy#SsN#-~uH&Op(=BJOPaLnyw;*+)-Ymr9ugCltrJ;)X7kq}(;~UM;uqtqgI`b@HBn{#(w5x};Jo*Wbj~lc z`YQOF&f>?ORp)c_qaAML(WVOJ+0F;`W5Jp6+ya*&yHx+XwLd?M{cRrnS(sP$dV+2~ zru=C5SumzY#w}w|C93IvBvPR~O2w^wvoai)Y+FjAs&pelWu{^@>-J|W=sS_VC+n-p zj%HhKk{T*{n!mTN8xp+w|0I7ECW_VvvqPmIs~cQxMnGSJ^+-04ac^gHmuNx*VBf(n zrou-dL0F%Q^X$$w&)-eR0W;Ay-8aJ<-IhVAa!IY-Q`LK=Yr@)a4i%!6O@i4WKVDU2 zX|5D$#WUSQgR;z!#xYnW=;T(pD6eR5{p(*$J5AJ293n<5pSMHj$`MQ%GMZ$QJ46%Jr@|N-4v3Y?K%0^)?mY&uMnPL zk*1%VLT;XRkbA>yN#zON73OxDdyM#GuZ4@C2qD&~`%O4aVhE#|OGz^Rb{q2g#YPaD z*9!)drLFLgS;Tm@>ml{JX(GKzcJg0D!b}v6c`_+!%zNtxararlYdFr~rh86dh&+P1 zfd+;^nGB#3qq2zxqqNwQHR6S6r(dTbrM&kDSNA;6HsT=T!cBf-p`CoJrQVHrxgoYo z046u^eP?l0ppo9*#;ywiP;N%VTC6UctY0}U>7A!3CNl5zpuT(mc6_;8IY^_${Xor& zwt$6H9=F3{pjWfCc&ph{s5GueHAggEL7^X3aU^-Q zErLqyeVAYV4~^P6vopvcQndd9$w&C$CBH+1g3OrGRVVIiN?VXvRL4%JU7#&7>$H#w7Ai4d*^23&cg)`IYCL zBws}atDHXUW@6TV`FoC>%z3RZt?^8guv@#Uqn>;!I&ywKdfsWTp7~-X@Osh~8(D)+ zLYTw_3y|rIe7N6Rp*+93d_M%>zyz%JHUd+x%zB!D66~x4-_{z!I}I|~m+ZoLlkX~; zD#$hnQL26uuPqPo-`$5(rEux1jeqoa6%RYoI;WpV`_mO&=aPtH{^wPH`G7peu^RbF zXK!m$q;S8m#;|;N)=bpa*I1*hy8|tqEK9zk+m{u4f7C6eOmEKW{j^>D^c=Qn zM%DM$Hl6P5HwNT_mkI9%1$}b&O1>>}nGISM6ugSc^WeIn;q;tN{o#-bT+X3&;GLW5 zQqJ0T(fQB&7(eZ^D{Iel@2j(bp-!Or(PfYGZ{vs6F?uB4Nj^S76Q3f87Ni$L9#AKX zlT#5X;Rqe_7^9#^S*9S068x?Ha*I*jjc{6;?wm+3v`*3!p=tr{aF+3qDwO$l`0wRw zQ@kLm<6M8}Q;$vjc*!pW^a&6zsor>wqku5MAW!GaVrbk;@COi^2l+6m#`VZuygcoZ zEa-|pCa~V52~~ROMDdQD3Kr(|g9I0YA)i8;QGqx@v6d-lBu5p@)R!P96i6Q6!E%fz zjq1q!8QY91qERDG%IK7iV7y&@@y*i#gt%`b*`5h;b!zRmN+v^7yep~epJHUI1hta1 ztN0D-)%aba&59~o#~49;Dyen_UA_R>CvL$^53^&M z!M*q%@c6)!atC5s5F`xb*+&S@W`UMA51DP z6|Uv>RO@mAGc4xhiHG;23>lL=2^Ja3)YZ+|nXD3>>FQ-ZGs6?L<*B)&wRbp&ga;C; zB>K_FxtA@8DLlRtWXLQ02&I3gt4$@%XtJ9iw`-b;ljfFXk>SR3(vEZbhh z|E=N@HCyv&?PA|#Y9qh(FL?8Fr+8QXt79vbBoZ*i z-Mj>Tns7pw?_>mwgFc;LVQl4j3|Lp_*q-~?rnZyokI#t7Q%_U87Q9wPizJH|Ths^&+RJAS@9E*~EPSzAq~<71U9G(Su$ai=KwtBez7W{BVqONG zt2wO`&RGz`>Zv>!%_dfX|7}O>5<9}1aMk5fBu$;UgB*kXi~2Ks3@#8hxEp%gp2fQX zTj=PzMG7I^D-Ef0<3DRX{!!8(-@i#fp;4j^@=q2V92@z>d=vMU$W~}ucHUJ)p^U7a z{=>3S7gK~s6|oQ4nZzyGj;81xF*HHWr_Z(Yj@D}vdXU#H{>~K7nIV_P?pZsQ?-07> z?bhYd%3Vf>k78O}AWzs!Vw&)?=gv6GA183CiD4}CbQ9=|3honegLx4;RSYD*WJ6&G z%_lL&v8LXGKtipCh0szL8!Adqr{#)kj$qdthVYvjcKM*cFZCtNqK{i6Hz%+9TuyOm z!5Qkyvq8TrHAhN<9ARGP_Zj`BRw}J$r_;SiSxo{XYQcDrG-KztqiBw_R+t{N8k{a& z(XB|(^@m=*-|G-t{q2RHLvzArJESqV>+tQ>!`7lwQkhl@j(MR9#g5&Ix&y=Qyi`_C znNGq|n0i|lkgLT}P2+c7sW<*HuvZV&C?YI=Vya@gl%)pYop|u=q>LgX;=XG%HXlYxSYfye{Dv}j^Bm_;Fy2I(;ujR3W;;?K#bCjqmGw-4hw*4Y=AWkrSg|C zaeI8U^fj9KKTY{jqJ5Sm8WcqjL_aS{c@RSC{B`wP|gIx=U^T%O&srNSEu8GW7yOm z*@d`kQ4@ki>&cTPmb0LdF#dd_IA@RoxCx@6VTy-=lMivY3bS96;_Tujh*C(3B+on3 zGDDfo<`fMHiU`aP5DgYpNPa_(u8AoOUhY7*T)4zv-2dwX*@M`ES0(Mbn06x+UWi&h zU923IB}aDyVM3toZ-^~8yTlwyY=eYC^1qkzgxyA11VtZ_-T|DZvR91ap4LO@{W+ZG zxDljak5Pg&NH}Dm(!YixLVe+W{r+N6Uuo6|7=*s+ioFZ6)(T?g*ba-T%2YIAP z$d0voc?fJ(T^33oW#SGO?9Vm=ENOj~lk6%5y|5IxC>;_5ZD~uWf-gcX>ETOWw;)DG zYaK8vNXA;{+oSFDlsT`;#IDW9p$Zxdw!>R&2?vK22jl$(@+V#xe$3C1j$dKwUqCfv zNZuf{-C}w`;2l-L`Dv*S0prsTpFQ)t{D$oL(gWyAFv zl=qx2iW#654xbBEz0+%D@q{PgR4)6^?S~qLoVv~Gx<>&7ky^$DOU9nyyqmmD)z}XO zn@Fm;l-yK41I9F}%*&o%5r^)XR4zMEdo^P}ToM1QruScoXE|ujEORrEJNAraPsM+5 z%r4WXy0+Vx5)Sw}crK^@$+xNq;VJB^4Yt@~p;O%IxQetTd|KnC>8kJ?9$3jDO?4vk zGSXfN@c=G@2#th{1XO*lz{@Lj5+^prn)q7YJsmxeBL z4C9^L;VtQ(@^DZ=o^fRM1;6uELSP25#pqQmLFB4%|4R8ya2fW=6Z4cRmDWQ&&3;+( z;7#x%_E6ek_@%Uu-5c^wflD6@LJ$d<)P`>JZV>-pkmPG$!i_`w%Th;gsb4I&81F*B zUfhVv8V1CY;7<~y2G)JF01-U}k-g=|b_d?@mW_2~B6@;}FPGzvzuJYP4T8mN&?IiH z#w+*)8LB}yNsFiK=YubaZWvyL!l=z#3g~nRtaFF{MMx?VpOp>)Wrmo!&t_<1ltaYF zg$;@rcFn{{$~CRg=_x~g|#IYFviZ zfAQ`V-2!MkpxgSQ+Cr7cb&I`TLDNUHtU-0)L4ttb$_jh=ROg-Vl-SD6E|yF-7es@k zgM8+0Ox?J#;koXl4jLR8o!&@hlKjf5R94%~_A7%)2SW6~#MVgZKZg;$gZu*CQ#LRk zwBWlj{q3&Y*~7YZ%c@!e@DG`XzBfF~A0&y>{T}v9fo5Macgn=>Se<%_m1mJ;PVRhI zESgm+Q6VR;rxFmkak)#vHK?BbtCE}L)`Azv%5~kOy^@Eu{Ji9h^FnWa!_d=DeDqp& zpaOk^(+sZfbEQuEGMvD1AnW%nnWt1GWCFB!8VU-aR^5nRt$YJwSny-s4wO3r4WDFU zFE>l66+1_;EvT#;vtPXM=hwvE?vPk$4vky0H(wB4!#}d<0$YGF@EwwRm=^d8p32T= z8*D2rY>8vY54OGQ9!H<6r!&PnTibh2JCO(>B}8gG)qM>lV#J8!1?uHaq*e0swSHWW zxh?qMS1=I}S)k<$BM!A+*rPHioWId@d_x|rfTGz`teMx`7F6fC<$wHHS+;9Q)fPkO zRMjA8Fz9xp%vqM&L?+iazxW^4639X>Lu};Z0?$UQc>l^maYUpyv?13GS5rE*If*WT zzlBKgex=L>B-~4W&B0|V4|3WxJ}g`~butLS40$t!mo&IEL^> zAUcxiL53X|;s)5H8Q8eDNI)mb=RvwqgBgvhOYhVfF;3ej0pAB37QHpR5WgX!=VdN{j)Kp$l4V+4yZamZukuhN{ zDXb)UD|K>lQD1&G%(tH7*7~GFSJ$JzcW&y@UZ))Hibn^01s*dN zY-umvQo3w1Mr&_#MK=ng{a#AqNaE6G?N(!DQO@xAJ)OmG&m7&DLKnQY?>hNR#6Ssp zV3__yUsyClp@+r2+PB5LRzjU( zhNZy0h;A+!<5yx}v3z|7M+tM(c8c2Hi0qgxMkLIBna)p{LHX#Nuk*M+gtzc+v`p`C zvO390Aw+Eb#Z0MfM5TBs6Zir8ROq<3wOexu6ShdvGuNZf`cg;3cqm*v@+xuXh|eIF z4xP+z#W~lR%b9%xEKmVJabNX-zyr+zvN0>O5Qmcy*=Kkdj%i8=XmHtm!PGboajnc5aplLSgWb| zdi91o0xg0@7RNLQY$8Ik5VodzV8Qkb2^MCZm(70~A`y{u%(+F?1I7aRe|jakN~M-$ zL!jvrK^w{%0V03`!C{}hg*2Ifzv?pg-|^YN$m(C0+cO$@FEzu>E;bh5uuMRRbnC?w zGmCw`>Lf&n$T~78DP_b74W~Q&=EJ}XLMrK-DiHVE9V%;RG zFiNrTpmODf+P8KI-7a#&^)C;l(H-Qn7|p4DR9{1KtZY$gr>owGf$(Tv@&}4J3?El! z)Meoe49{Kyd6W13f`WX6NHA}f0;AnsXDx?a6^})4+_sIiz!x+rNehx*c?=1=*NJNU zDIbdU7oJJIf$Sawfxa^bzn|T5fcVyNq3_u*Xmm%b(gz|uVx&c=U;Mj8La{)5<0;BW zR*K{gPf;g)WG5w227Cr4QkWS_8}2I;@B?RpfFr^4{Yd({zsp(vYVL$i>-n5{upGkLz3) z^3KLquJxu*(qet@?M?k>LzjTYlrrgldSvmz^9MbuP?#N|BLKg-{!Ht0*zU((U?5h> z3Dgslgrm?01M-r_;`f*4t(gR~IpDrfdvxHBr0Bkh?~98iNAj!#I(+9rRQs=PT>zD? zlvzMsw)A_}BeL5(R%{|XPy$f;yuE0gNuJR^cobEQ@M%jX^4YIniK(gird`1SHnG%T z&qV?gXk~#xAMd+&Ez%UX0FY+v$+fhEn|*Y6jN`;Ebk4+brh~gTlcO3q`#wF+;>Hlk z^82BF;N0$7!d+G#CaDV5py@!QeMnDw_WnFEqfA?C}rTfp4RA92Bz}(;E zd8XW-dYyx`@3J(k4dZ8TBHv9lG36ELhoPKYakt*m|4tW7*`IGp*Csne zqj=u82NCIQ2kF1#1x9m@Aufg|Y@;PKl&OJx?h`-8rwA14?kDV1e7)4tAN2mh9>>v~ z(0m(#sqcy(*cdI@K4(L$q&)BnUNVdSV}=SXOmbc>+x5aoU?!kI*z1Xome%sQ(8Iu9 z{G0&GUP*KZB7=XB7lr{?&o(g6|Mo*6Qqq?Y$)TsUookY2$5#NGQj~!xV*nL5|BOB< z`to%k8l08;jo>Q2C7A*kAMjAgBDD2uzO^B2OWm|9p&DnP)pVZs`(KQ|)AF;oKVCer zm5>#|XK7#)h%553@4ruG0)Tb4?A;y$JF1`3{6C(72jiF~@R}Z;Ll>#Nlt;4RU8H}5 z7x+OIMGCJ2;qvG9ib?Cum!TxLXs8AsAU&iFQB5cMIi3L3kRW`VYP;^XHBb}KDpp_+ zCLePWDW_pV`Wy$@f46xa`FLkkep3}uF1PXjzjuFpSReUpaUAnxF3u!OT#gSaEwj}% z71vK6}OMI7JvjdpkMGjj+Aqbw8dt|xy&};Z7;YN6^$9*hZ>O_ z3OvC0JB%k!ielJF>ej-U{=54Jbl}&K2bjdjt`#$R{QqQEMJm!eY$35B(%9@vKOGhndOp8@c-%Ef#^-O1Q|Ei89fDYFDpH; zD)Ylpq!Gwys(Sw|!>rxstiepm99}BCKD!=gkdfkeg+%65+~#jZZrY!r8h60nQ+N%l zBLZFx;tys;h`9Oy`*OG3U=~+RGC7(n6)N!R7g@kp;8c|d#BNN0C;gv4Rz=Xx-jXLC z+G1*Ozsr97 ze|^~wwiTsGk-j zSjO)2|6Y0-7-9)uGaIMTKlRT4Juk3KdFQg%<>AtgN3~uc zTW8clfBqc__IPAF0&1vbmACe_({k4r2gXaTf1TQU;~Ca+qqq_tH#sZ<+6>l5M%kxF zhX1g{!*1*ypyHdX`eK^VX`zK2?FOQ*Id?!(x!=O(LJn-A zcDEeGy*kJ@49_TOk|+XHX0T~o;&uV7+$W%R_w7_1@Gm+oSL;*~9{}Jqegw=F01~~C$y~aXlC^W6l(}61 zyrel%&q|BW-Pz=)aZUL?fECFKWa;eZnA}P!!K@q{Uk12a4Qc^u`!wLAe9P(D=3ee1 zR{sL15BvN1En4SA=K~Fze}F^!c7+1%7mr!{x;|r|9${nH(XaJv;@uh$$2{wZ6SXdM zK#N~F^bf|uPk6*Zj+O!yDX)OT#6for6zj5+CCf+a&_4N(3`*6^f81`s6|w-dNy`rl z0Wpcb2mAoUr?Q%fZ--t@+1Fr&TJ51~tWpL*Y>5R>Xc{=3nA+)!YJCe-z0i3tJpJF- z>niEv93WL6_zf70Z8EglB(1w`2ir2J#?Ip+_aS>5%CinAzki|nST6jR6;C72RZf z`FSYwOIBqHnJL#o==yy$n+w>$lF4d7{Wv)l`qs-Wdow>ATc^g-5Xy}_V( zb|pIh+bU|OF2asQoCqGyzqA;iYFdC@YH#cH_sIWg$)_Q}24<)6)BC@*#wwGY?YMoZ z#il1$O~Lb@Q6Fb~++XD-COZ&-#DLON3zjD4@{v#tR_Xcz$-b`*YZ0H1`#tZ{2iR%qekynRmMV zcc3o14&gbFYFqN!VA-fP^B)04KXZcWrJT#0*r>U>=uyaHQPc5|$brISx#2)&q0hqQ znyT^jI$%6ggq_zfum6ztGwWlIdUu=xlEXLWqx;s^YbnM)Us7J!&s^4qV)&iv-$fUP z-V|fsi90RJE~eP+Nn;=YTlyy@oTiH@xBu_}I2W9dkH*GXnJD`|BO&1=!vu+R(N?ze z^dkYg#Vkwkxz>AqFqM}5_)#1flWLezYSSk56n!nsSJC*V>odbv^Sh~0djYn`cnDb~kHo%z`p_m(ON)C)q6_o0rt&517J16DOIVs) zE9!Y{5&J6!^;Zh-VaiPF3Nre{O)9hIVZZgkPaV!cFHPP#;RZ5jQ(!=X@v)lPo*u1S z=8P2mX+7oB{T2}O5~|yIa2QEv;bYd6gCf5}dAI6iCpsfIC9nq?_`DFs^VEBp(udA9 zr_F$U8z$8u+PF0cbrRMF+^Bz(48OKiiJF9OG z9kt*F6cuSFjEg@nkZgzmGQW_U%gjNCK&UyQ5vEfHs4TTOX#Hgp4R0+N9#1hzH_iIQ z`9eS|c??@4i>bNs;%67EXqCkl&*0;BSBa&D0t6 zgW~5PF^!1Z=^5^Z+|UlSwD6_Tu_c$1U_b2+j}P`;MWi?yalctp|r;7!pAuPm=# z0oFGZ?;^jRCX_Ywk|HaZJKMk0v)LzR;33zyw5Og< zB>N!Y6(y=MlGiQhVVgoPZ&ar`%PGbI-F)41f^J);fsCpOdfx zfPIh3OHkrjk0I^*Bl4vDat*?{T{vtST=L{>zVBaO^A{{3YEn$BlbAQ?$fQnwNw?JU( zU=US_cVoWmgg*rce4Y3WK=-XU4kP0NVc*@7dpR!AOnm`>=(QidqF^n)`R&rMw9nSN z-FR!zKN(}#ep`kc@!QBBM+K);=ZdtKCPOEY{=xh{fa-Fyf2SXme9Qcn6sH+#0=WKm zi%(-TU(9aC(_M~zJd2kFwS~QA!uT*wuF$FV!0hcCS#~fA3(xTf9Xu;Ik zj?5e*ODkHy?u*n2Xx@6g{Y2`?DDG8BqQtGl zq$EmcRwk#nS)M7xNjMXnkS=rCbDt}>H2%W(7^AJ!pu>?G7M0Wj>{I8t%xRQapcpTf zwD*!J8!)8{Y6qvf7Q@MRs5=m5O*DW&yj(3zg@rJQ;KmGYb9IU?9@_v$t)MNsyPO5E z^EX$-N26*Yd#ihCHMHiRhr#GR=q(BP9prxIHxVzkuy+F+ZnA@)Dt#f*aW5~Tqj0vP z=tp!E9$7K&65@g9M%3Z3bzUD5G!j+n4ZmCQ$#`-;;1&_E0Aq715!q}&L8wZi$dmVe z)7ws~3QBN|=P!RXV>MWJD&`r2gBpI$eYI>3v^zx!kVT$_$50qzJAZ8u<*GV|(Afoe z!NOS4n;5Hx+Ka00b5zP12;<)a9D5wPbpqsV&u#bRZR^90gv9$zk(tOWGZ9Wz>Ymsj zk;Qi6LEyON4xD&&JNz~2)|F=>g|IW~Nxf0zeXz~HR28^&IBZif@1np+oh#1?Pw>n! zVVYC&OTK^aGQ|g9<Sth_u}46o*8i+kBb^yh@`I`m|Tb(r#5V{-SA_4dxn~9 z{PBacUs>P@`!w0wT>ObK(-1aH-6AV?-UhTvglb1Qi$n%X2z=5DS+fKVgKy!$(eE3% z$-u&+Ij0N^5`K+LBKKZtW&Cw0M^#|tH!D+KY=N9 zg$>&YU$O7q1H&<0KIel+8-Ap!@ObbIp@-zYRJQcT3m1nt>93kPAQjrFMApQ*MyMUM z8^Yp&qAorSGKaK)Q4cFKy(BM-dBSQX(WHu{nved`<`Q#&d*dKrfQ##FY}`wOK^f-= za`qU=;JMfm_feN8??iX#4<7#~(vc1buyNa);)T$=Zj>zmx(p*1sIt`dLCv}TCGJ0- zkswXDPjO@ggtn9E`*s6%priH4UK-fDsM0vcL3_-Q*UuJ@R(iaHqOT#8BexVHV5PV? zusdUf!5&qwgk$)K{GrSO5kfmksJ!1zgoNRyqoPjET~rR^{tR1vw|5J!*}QK_}WYC!@rPPQ7K zDCvB37%pO$CHND{)F&SbGrDf zqmw}5wAQ-~75ma@pD*%?;8WbD>J)p3i~0rugpuN+nyek)l?iGhi4pM|hDEqzq8_IT zmza676nzxf@CcRNX%Je z=s?gocqMKa4h72ED0~Q?ORbtFj+1myi!d`0BSitZj0FPvbA}(-mn&IEe?cW$OpeI% zV%)PLf-Rl>B7@#-3&l{_bBwlq3IaGW54QYmp`1Vt$1WNk;i-m>50@Ef3=|B>MZ?iV z@k4!wY^hIfDe#K}QlLj+d%qIOhBd%K?h+%Wct>zdHW}8< zZ*lT@=*hYS20L?ju&U5ccrTYk+Jlay7IOSgQ+saZ{UXS~UQ5FWnTR=*92J@fp>R;h z`BEKN-jUNX0dRGPmcFNs5oTzp-{J*fuDkk>v?z3kK8Ks$FN>~FHc2*zT!wkFKH~_0 z(LYD>h6vZ<$ADKNdLj3TOcR)wMAujoFzuuH z=Wdxmq~yRq!mZ0{itYpx7?sZQHmyk|>YfT%OC?hci5*cOSQ_U#@QmC%<0v2i-tyK7 zHCKC=hDu5!WH`HJimq1n8R1zJ;HL@NA^=b8?`*?Y^{^CLD;i{d_vALUG~M!!B3xjP z;dVfSCEG--@0t;K_?ALdxRqVd6*~MG`t6Gy9Uc?$?iL#c#HfEniXI=M@^g6mdE1kC zjJy2ve%QLeEk-WMaX$5R){AeOu_vW0F7~obRlat3#_+=kw}0y7W2c-!hWkD0JXlA9 zAPRv-B73Waf`cP>xO@LAR@p3Q@!R&KbM8H;@v(_2>c=^Pp(zUccJ&{$XoBl_*Cb7! zl`l;u+^5J^XbFkM2_%%3g|47Vos(lPZrSf5_ZZxilXUBj+{4QI8tBqxK_Pd={&#@H z%1XB~D6}2n6z(rG(&dHGl#Tx!o}+?fzZ-U%i88kINx(Ko2nc1}8n#`&;b>va z=nV_n$E)QDUHm!GcbNtHdVn7thx-`D#C^s|00bwCD;^`%E$7WOv*6-_$5?8Mxrbwh zvMFAHcIcTb%v$%B|kuV1F9j=AXN03E*THixQ4i>2((i_v6Njt8o<#}04S7f2wA z+5~aRRD$nm|KOU1hWwH){zQWSzr{Gl4SFUG?$Avnij8~M=ot#alU$bUJkU%NsPlThJ;O8ojCs zYQtwCrY@Re(yW}W93whEdJgGbX>TZ!AG#`4Dm4qaRIH|Hl7)bi(J3PQv#EO}&%Eb? zAy|QUS4<4V4Nw0s#=bHt%CPNLdg!4CrG}Oc1*BsLX;46;-NCqd?57|V7N_N_ z5O>dTR3JF<31`(@Y(j-Yz$lb|g4vCjiGiV{bsm0yH(Phh1a+$rbT6QG|Vo z&JfKKf3+e~;25o@G+3e}cd$&+mqRwL%mML`;a;aNoRIMhF+gwEf=LNp0c>Ob&?yS{ zN@v7E%PEKYcwl_w;Fg1 zcJr%-Iy-g|@CxDKB&ua-Yb0Hs9Wu;gOi@m7hQ9GshUP=PMc<o19%XYOSg`a?e4Mt5&f1EW{ zGu|OiO_85sdYKdw$3^8OB>Rooh$+%dlt(0-FRcE{GXk-f1Z4p|nf93=t>Y053S=3! z1y^W9L;2e*ViL7?=21c1x4{}#G>gX&y@_(xHMunoo@=b1c@ zqFqy1TX{cVaW^iR9nD;_DCxg!@C1t2F1evN){`T0{dap=(ybpx4f^o}IxG_fXyc+q zu#S~RX^hoPm3s5sSblv&z-WkWrMA#6Vny43)9L%%gi$qzNR-W4;#lx}Nv!NC1(Hua zrSYXE4$%qqGK3y^0~>Y|*?xZWEaL7hcUb<{)9I?hCcVU|41z!sbG=N=X29g$J zK7{vSKUBZ2{BDW^WF|o7VB{+S%y;!(E=y>!vxecO3j;P}+;KOdyrmxuc0!d~O9ZD( zza*J)x`hEWDvT1|=EGwi`ibzha2IY3PSC`Qp^&d5gFnatV5ksYP>2YQz*osYh&+wU zilIb2@vMyWw8a|m@dnNKpRvc@tsU>!8)^qjVox<9wz zh6!x+53v`Ek`xgy6(H@8PN0)NwA{fkIP4*e(kcJk87tWjt->@LCoZx;iN9(^!zuo4@P_Fcrc1|ZaIFwD{5Y!mEtj0Dow(gtOnW#SH<1LZ~( z$ovbu>Bs?n5C%Ac;Rsenl02b+XPzoVM$M#pB5@444NWiLg92xG{KS2rZsfX}V2#$7 z)J1A2@Fhe}Dtt+ID`){@K3i)E{4h{zS&aNetgtK|?Cr%j>(8&p@SuEt(Y!zNAVNrCUv;WBt_3(zQ^9pEmp39h$Qll32a~X0 zDs;P+NyEYh75TmabAFi9>&}CCC6)Xr$Lvm;>(K|EHt!?AeJ@_Dh)7}qzfFdlLrR(3nD&Lr6~(k%3Ov1>=X>#@sLno6 zMs1T#Jz_mF?MM8Itcl$aTzd)k9)dpr8))Ant7jtZzmqb3LP6W3(8m0trr-BU_h`0s zibgg3X1R+tBUoNenFrUv{HV{hOvca<%d%Qj>)^+WwlCT9+8}UPCc8%Mj=8_=L2kr$ zz3%?H$T5Lrsu$bVqbH;!&BEU5$3+8!8?OdxcBXiuoZ8zjaU4Zyfj}gvX zWi8#zW`qr7q!H>xB^YTLfTd4DFM3h-JxYse5PDqoyn6@KlGVgOH*mCBviu=6`su@e zok1z$KPbD$c-vLUcgXNaJ3V|1R?Z-^1I7&sUyY>~7YW<>)(n#mR2ohIZ2BmqLKa2F6#Ld-}_#VxrqxgMFfB%$a{P<^FX<5>MzF*8ft0U1i^F$S8}v3M4Q zfYRfuba&^BGk$ZNER)!m5SPu|WN-5)eZ<;PXELrfFdPZup+b`M3Se``M|nH?i+QaPNnbMgPF*swzja$1sfu@+zW|}JxM+6DO-8Bu(!`m(X#wmB(~ z8#J*yUte~T{1_&-V+*BSPAenXp_qY;Ul6R_Yx*XCOTYU4@@v=Wjz7VwW1%47nfA3p6FR4n=& zF`U3vu5PLJJS#xowv6Zp`_SMJLa|`a%)cW~kf;s8Kf&R)YBJ-U=tU<6qlxEQq$g1f z62^_gBgp`>6l{dllh~Ef&$??IzbI#05`}&ESG%#QaYRKp{LZ%(AB&iP-lp3T7J40a zU#MDflg_=Mn5W3@StBGWntx~8kpid~8Z!6y)C}(lV>-u3FC&-WKPfl?kSniKfX`a9 zZ|@K|p96DdS*#^jTW8hr5|}JY@1dr~d;HZj07T>49fKy{xO~)O?&o(8^6#Y0xSs+5 zg8#x#W!B(XFkpLT(*!-ppjqFBt4yz@O1wTM=%b|kPW9lU!#;&0G53&vMEWn_Hv1fjWE_m%mYbb~`D#kKm zJHj(W8Y7e1@)=z8oKYPY3y%WV0&$duo@ea^&L{vqfdvD=j)Ugdt3cvlK+F~-3B+fa zg~j%^-J-25KI~w!>2T8!)35~9H8ye;+RAPi3Bq7Q1E4Tbwn5%oNk*u^Xorf=0NYPE z371x{af@C1xXbswJi88_5~#$HV+fEy85Mqh9%uMQLa3>jrD0lo!9;;%IAZ!i92{u< zgoWZB;M&DbcW2R*uhP^|C%>ejq9ER=o)DJJexJrW_Fxmwf}N@ybg4*oD-RQx`nbUY zL{fjqq3nB~B#OHVZA2X!yp{&%TTkreEc0LSBJdacpTY@l2yl38&wbWEDSL&8fk) zfbbSz#+uPDWlvOuKchdyJ*GN-YOe?f;t}$pZJagZLo!DC8`@wTq=+qy!daozN`3hu zX`34(Mfn>&d4FNxQ(?#pY~=G%94)r2#xi$=g3F3w3Pb~hY$cRx(^c*(wtE_86pZV_ zZ!bp!VKvGw@T{)@{IdQM z;lZAgCn!|bw1wgr7A(^}grPELaar_&HV^_}M+lAVVOy#I(3IqcXaq z3KKg6I{NckZN{T;1<>&J$Ys$xGXl53U+8j5_(~#OFG^{mE$9}WJAW!xbqbXugjlctwQXps%N&tWp`zT3N?zMa^8N(FDIuMb9h@Rtr zrfH^7yY-xYIIVSE0Fd#d%AgxitK}?jc*=@4glw(Xqs!cmf*%VYbNLvgb;+GP&I&9s zYGkcg?Dz526m5gp(WM3cu`H~#BQtme-CDGFMJ${fGJ{Dw1W9!UOu&?^P#BsfE(T6HG`BCHufL$bk-q~N7mW~hzK zyAkGg99uD;JHf2^eAv_D>?|v3Hf?!~JF*OzGPJCi;eF}g<%9w^bv-~)>4NHpRS3*7 zahSOfd@sk4P{J4HYr`oNaZku3>%@}|GdSFY$>L+lBTmXnf%Fa}RmRDvXDVoBPE(!) zB?TFn+4O|+VK1^6m@iIqFrK(Tqs-={i&}jnzXdg0aEg#_%VC=ISzJ8m5KMgs$f!$6 zk3PGJQOFz?{eIm2N`9rs7vl`3rUe8!m2~_kyd_pf&##|ufzQh+nKC|*x)3aXc^d4{ zl6PKKP4WC%0?K8d^avcgI( zKJ?&Obj24BfW4Q5+fHfL-x>7i+`jYafB-3)P;ccG9F)UE2l#bFieD)wD92*jEtgwY zL++a-3e$4+r*}*N)t=(O#9LF#(0si_hlfG}19x8t_5T;f08^G=g*ZnT6U$NM-LUZQ zkx6CTHX?MBZjpYu=WD?4u1zYyz#Mq;b%Sk4fX>VEvN)kG8hi_@{x%cKz)XsNsxbO% zx`BCajpZGtfzZJpNmY=YCk7QMyteOo({DU#geG(xcv`a9Wtb^$cG1T4-6rhGpDQcQ zC};yQGc6_obNZ)GFi|un#yjA{%848+nPP)p>7tVhd=|c~Pm)xlG-ILyipe>$YIySp zrozA2lcW*sn08EZ!Ky5;(a(bFBJBB}02GJz__(HsC{LMrL#r>)BU#P%Q`irLN>#>g zI>H+bHy@Xjz?^bO2e|2799a$0cXD0kA+fLt+#Il@I?zuN@RUmhJ*d*J{T0L<{2+W3 z;PHo5Z0IQogO(0H+V6y06T#+XW@3TdHZ7Qe4uHDVa`!MUhL=&j2VG+vg8f?4R_zGM zlfeWG#xKy&#uu#0tl&IA?OG<-<=^q*0vT%!bCvsf=ynnL5};o;K$m1pfxxDniSDlI z3dVf5SQkNt1e-k|A-{`IqDiePd0L-Hx{N*DsS)x>NQwLbCSiA$lV$*rZAyrCO4HDL z%s9=}xJJ@n5d~n%JjAcb7_M&)4J>TMW#DUCLvmDwRf;-$r2BCb^ADy1zrxJ(> z)v}!k#<`cqkj!6 zEtk%>=W`cmc3?C%t=uPOy&zwRhS@w68=1EllNC`P4u}qEw*@c=na(kjegahW)}BQ} zd(4bASOM|S6>nr%^rL>ZtL|#xSAXnFvn|~5g}Kb4{};samc$`DMHM3F`swkD@18>z z?9N$xI^~I^r!IyZ{kTEl0@C- zr^MRlL*zz-x};J84m9Nzewx~v9=N|!0YlDCBOdQlfuM_|C&}l?^5DU-OUR>aL-;3} zb;o2NUw{Y}Nq}$528LnxB)4Jg5+E#FxgXXv-wir_f!dy!=auHh7?a@4m1}ec)ktfO zP9eoijduF%Rc`vRhl3P}N|-br<}eAdC1=#*$B*5o-`*|W_owNlWKs62^DEZA`-{As zbJ%mt*Im79e&wF%Cy2?Rz(6})B0|;J2FwqC-~&b9OR8brXrMM+VM50`{tkrBascLB z?ozB4CT#>mL4kiF+fC^@)&LWFh+FGpz#C1cM7TI{M9?+^ zz@rmbf-prG@w@m2*i;JO{IPCea&Sb`(;f`lIo(jt1sNgc20SBA@F0de95dDv!NqX$ zJXXOjS?<;=pP0Hk?MG}N=$$h+Fm?-WVpPWM;9ZqXkohXd`eOeB!s9n5kO^W!Z`ENB z5U=NE6u-5m&BT(#z6X-(*O;WHLHUTB?Ni)mnSP_nCgBgKUKyZlu3hG!-<%A8a={yA-dofn>)ngI$FAuIsxINE{3?6Re8cm1ekXjqx@Wj?IjcQEK2L zu>pOtriTgR1{1dt+m+K_ArK6P?P+VV4zYV+bMP`49;NU5;S=19+IPG>keBfTu74Cl z3Gp(Y^R~#~g(iJXKu|1Ex9$-NB~yz9Kpt>#aZA8oK&94#UU|wV5v2Z$X~!4uyHw!v z6E07jVPE(ZvfaU3ObRSoZp5P_$q9V4 z!sdrAQ@|{k#kYpL6Vu_f*EtU(V?;xEAzogEUZNd6qWL9Xo7QT~@MDvguk(98+d0?| zBPjaQ?Prih)jhS|Li;NmxeihcT9QamxG2M&S>Ff`ChkI@CPt&h&U;>F;k#h_5QYS+ z{!|tO2*R0Jr+tfcOkm%Ev%C!*j?fIY&r5Z*7WRBW$;iHErTQ4EZVaGtRix7+_`=*r z950NM`sWw+D^BQ*`2aIe zX_tkW(FR=v!L3P5I@m6tE0*F=b_>GL3{4q%0W$)jUk?MDa~(O95nriCs>m|4uk0{8 zPq2h&qM=6^kG5K0qie;pj>(Tk`kVIgt1AIjO_@E?y#jvED7BN~PeitDXGbR$>IvzC zn3#t7F{Yy7PXz@&JS4Rsje2#w)ShDSifPE|!UVwB#j@EFMl;#THpv^k>{E~cR%I|P zQLcINS#XC8e)rwW<__k!(;DxRtn3O9)mWZ( z`-*(~9A*O@CY#{b(3C=AwJE^goaj|_c%%6s*A6|3#t#ZFs5-KXWHzKo?;>nd=)01y z7!hX0zZ!y`qFJQXEUA!4{rH8re(KC}7w8trx&~VF+$uQcvv?GMc^CEUD!swnHi}}6 z7*<>jT~&sJ+#c|rEGF8}-v-{lY3`Em5i;+qbD9@RGhDcrwDilC%+C@v!$7R5C@asV zx*7=!3l(lqikZZaC@G4^e&l<5xD?9sdhOhyUvFVNV8}YFo55;_Uypwfkfm>vSbufa z_M*aPrw$4Zmlmy|^~gX`EP_&H0O$8Kq%jfID!U8{oL07xwJ896W43THMVK_*zr0F) zB}lO(lz*kO-MH%so%Oqw6hIpRd<|9*cV$(^jwn|3L=ejKgm`~U`Sq-15lyOt{#=%U z*{AXekaskJS)}cx`2vX}!dJn+z*DIrI72;Yr8kR#zc7LmFrRlgZMDm3DJjtv9ZP?; zxCycDS=CjBWiJ%Jr2F;BbAs3lYcY;vIJiaRLgV)X@Vmt`e#0!sYgvxNw+>GVUOgzs zg+1tawi^Ztvj)UL&JP!8v`Jb)aP)}qeh>kJb%N(18{<9j+hSbeQ-@sOnu{?v7f8X# zZgEJcBw-yyI{8@jq^t<~qfFj1d{P+Kiey{hhb|nJ(@ArTN6X$IHab;vMi5+&R+QNh_%bxWd>y1`p;Li8{ zOklWI#suO;KEw@1bN<4wFiPNW#SsOiKL`S4|BTfH7ckdwgzTWpk^14vU_GN$P&;4? zx&IZ5z>MwoWrIEpWPq2c>On#@V6OuAW!}pN{|c$X%HVU3mZCnU_a`JFfie4I4#ltn zsZ;OtCP&F17oY_(FvPQkF`#TINMs9Ks$vVh2?+~)A0~bv>%B^nB=9S1S=he^95-1e zb}%+V@sx9dT(%r6=wNZPyxpC4R4xWrKH+SB@mm>)Y$y0GH0DZhD`t?4FP#wNiXR?$ zA-BdhCGQ2QK43E&4FqmNLbx@a`4=Yy2z?RaPMB1M74!hN9CS>Ij((GhXCb0^4ITb# z!cb-=MtMVGfF9NcDN(!#d4-pi4$laFu=bjw^^)xQog6I8F>`>qY|Vd4ogR+LzRsa` zvhRP1%iPC;8v^Aazj=VyycVPYu-HDrPARq;)O}F=Fs>&9af8!6n9@!KeaFBrCBUm$ zY6o1^cHcnui@GK}s4x!UYB_q1=^8TJuW!7ms`kQJLmd zMvb8Q3;C%bUv`W|jO7gRr_hHoh{)Ly)~S-mpZTy&`1^2WsL!Kt4=_SdBN{gN!-c5( zw@q;f-LL=)oI~%Nw{09mz53nC@C$-*)6fVykw1n_8>0~vu6$Gx(4kh7vTM7I03g$dn2gEorID^ zWli5)|Jo~UL=|FPFCmq#o90&SQgx@wV!S)U)%L9H{KS0W+(xgtBz#JC$LxC7B2|yd zZMS*RHz(Y00lTC z6(h-qh0!&v8K^nwo!gLsqX*vil||Qs>-}iraEZoQ1_y06E#gw6$KfJl7bmBb-)t2Q zy=oKQ=8UI5A3l#oF8q2lRG>6cSHWNg^)72sg{wJvg?2Jnk;qD0Z#^3IrmLVcc-!~( zc;V&o^Yi#aEdEeyHa+_ey+7C;xS1QF{tKBr7U-Y&FKDL%h;o$hg4k)vhc z^JemjM$jhO#Vs*j5|SC;P-)H`t$WTJ!VC0on;# z|EQd}_9yonYYG8a1(sYLEU$K@^f7eN!}s?PDBHLq%9biEZX|ZX*tYywF;V({cMC z@e^-;)R3KqZi7?hw;^~IFPYU}QXx(2a&-+G*)!Z2g=A^9PpKtC`8zHYUmti#=;Tu4{niVAPmSrHZuWme4`#6Nv#%Qg0GvS_HSY520_Hk!95 zS4uf=$F-#UuQxM*UkMEjs6RZajOozVkLp2M+t!Y4d{$4MczOyBa_zwQjA!v(?a}(p zmhUD&CCLT9xs@Gl0ti1Nmt!@FJ-rSk0jQ?IDKUj@IaJdJ)gj*9eN^}vH5Bs4wByX3 znpf17llx};4?eiJw)liNoSPbGCf_mqN@3-AFr*~vwv}KFSx!fY+ZlBjEZ38xv*4BU zhDj4LfGLop(iB^Eao~2lr*Z&d+gvSn7N#Ieu8@#s_`$P^;JPRS1TI#t&Fy{p8aC1Gb}J%8L?ZG?-KXeLq89e$*`*|yWVqc8psWXDYPD1_-yh{FyN-Axn5ZHxgXB8wJ#%(r%9+XdnFa!TCbHgzB znREQs!wA{BWgLJaqM!Mx!4R|_Gee5@=J<3sSXv(^jzTwB?RvF`&e$iD9X!SqF;hay z_-g_yz1Uswfp@H>OwtzoV{1xgD+Z+MRzYg8nTDB2mOsfqleH6lH_Bd1tABsdwquPR zH0eUwGt(x|vt(jGwaMR@Um4LC%=`N{i=?x0QjlHl`#r{5`x#mN$DOCc9N+)Bq2qSq zjEmiO%Z%9O@lL!-Bu0WfTSW>V^?i2xt9qW@y6!t(u(uLETqzlJc`eh+Ws5mnzFQ<% z`v}FbT}Smr*JEFYq38lJV0Ly_gU1o}xi4cHW>VjQMjie+BdPzUn7YxT-KG2lm|H)= zVK`@YIvr!&a$y9A%$`P$8Gq-&AQDrtoa`9MDf~7fiIYDE34R(FXg9xspK39?ok4&x zmE53?2H+4>01MCa;zEqfK{+uG4A{*~5@)BNx1`70%30#+uEWoxP4~A$OD_M4+N!Cc zaxBkLfHNOp%=M6sV}YpVZ{tB5ekeETWJ6?2p<)z-B;&K#6+qAF72US`dgAM8ezt>k zG&*AP%uJmM&~^RW{^IT$hyI3f{+3V8eX_pv#4y*p7H&`?KtWS?Jr_4zAy4+~rff9p zTfMsHQE9kjQfYJQP8s>Lt9&$p_h~0J4^qXwlA3OMJOtiv&kETgwPRS zf|a{@-(9ZXo;7%rUjI%iZ8}n(1h@>R@0a4apOARu+O}&*T_^UXHNFa?o14e|ltk5d zbG5yHbd@HheBZB|*jzHmQ+FUgF2&+JTkTV~d!5SMQ@qjZcOJ08^Eh!idiF<_%C0XV zG&b6PT=Q?yDCpIe zrA#h4=Fj1VMMhVe<1MpQdU-mT1`~UJv zp!Ispt0itb`l>{WXSLYX?xs3THXb`RfKpXfvhdwMv8p{p8k2b(Y&(AM>aT6u-LAZ? zu@x~>61ExR`sw|9HF@Wi=u!|cRmwWO04~!TfJPe+@EIptR7oT<3i#GC74O*gn*?=v z8eOe6e_nkU+F405n2#%M{>nvVQWak`)EIB*e#xnAXvm>QF#T8F_+8n|X*UspgmWEL zuEf=WSvOC?=-~@>pVyS!9G`IZ#PYQ-U;gfQY!OuW>bu4H?7C?8P5)C-J$Vv=fIHG> zw|!RW-|9aax_2)W^(b}LRQ60bpmZHLQ0J(FUib!8lAL0q0i58ku2oM*!1eA3rzU_H}n0!jS-e z8kPx5DnQG%M%(p*ZZ}Zs$VYhnhuuO zsZU}g1>AQWjTb7Gze%c({?S6HSL$Z)RAh_gZQ4?8F8kG{kI3LSZ~+2zulMSXB`!}Y zBko-1n~i>!t(M6N9mh!lpodnk``B6|%(zWKyxhvh@S8?A+vR<)gTh&1gYj}iQ?NO2pD5KYPgJIAZ8vKiU(ec~>QOGP3@v6f?1p^ract>#TPkY4dMk zJi%OU=@YwGlo4;Edp#~%q~h;x_1va~o+c4X(XiRAR`+o1Vu>-C6Sh$En)r8*8Ru3U zBBP3t&ZBV{q?gPbhv!sC5+TWv#Q6ptK`X^{%kbTC4z@G1o!j$j`jvH)w>`tTEEVQ? zx)qUy2ID+$EP{$qtD0*&GaatW^^9+gkumq}j=a^Om8EV*9gL)BH~qCQRz0lRe||A7 zOs{OgIGlx*(E(7b!qDb zmu<=9q=_Oc8QU#jjK_(*;q#_t+T%j%Ay}kr*0<6f(2Yg)lk1VgpV&$?6b{}@y zCt8o&@@W5VG0OP>L}nfDvmJ(U!}ErltKNNM&x)-dw1&WnN#~_QgJ(f9ax##SEP1lp zpV}%m3yd`hB5|z=k1KyptRD4Z`wR_88U6HkI+X><_^W+MSp;IpNpLWkhJO#e*!d1E z>1xcKQ<$O4?zZ!AghB6``pmaejq1eVXX}!@$5dR229A@R_*gs*D=ciFR2JLf`Yfrr zt_W7}3~Tb=nyk3CDZ*RX9C zoAK>Fv3lT1=oj}b=}F6F9nw67Ugc;U^exO--X}I z)Jf&qj#D)4GW>YAU9;NYJ7Ma$YzU!1_NCRnDrsCKl(`t1#ccs^m^!9^xiwncss23u z6(8DlxgHZsI8$RJ)p)o2Co_>;6xyfi(UdXWwhbhh$zI1vUAyWB^7qGm1g%OcR-IMy zzge2I0`9}}Z6_#7ugXJ3-egYKL^=yOnUhjn|M`w{cbe&YcF8>cUC2SDL_yM6^)qp8-$1k0r-#Ae6`ye&#W4 zT78=J)wVRCJ@V~^k>Lv8`{f4Pqc;5lF{te2D3C}XKc8OyuF>KRlH zjS?pk16Z~;PFnu8!>>_dD{k2TN{ht*Nu>rzwDuQYwxyu543h2j-bmhN_QKNU2C$RG z{q1?OObB*&c_-bYG&47VLN!s^;-F!(&iIbYX^383>Q?{rHXQwY#x0Oxj=^Xf#x?T2 zKkkv^L@&wl$6J1iBv%jSD;>SPHN-u-N7Jvkqfi@M3t(Gbp-DWy)NjY!4oZbLaDOWk zIudgr3!q}FnH*NsUt9>FyYG{Cpym`dtW~TpPWkZ~AmEktTVC&upPYLC#(nnH_ef>Z zr}T8D<@C0kO2L5D`v`Gl>h>qiC0L^NYtGLyJ7wG)B5RveLLu4xZq? z`}*Q~BR})rZ4Y@}C7y>=JK?eimpV(1gm zJ6LVvC$bL1?Xn)$T#M<+729(_+ei8@sx11^`qvo+<+=)zZv6rjxA@8`TZ*>DiKq+u zU$P;e|4I0ua>f5AotJJ#sn1@}sk1~~0(v!uqww}wN-la)?Vssve^KieYyWm3o!35F zA>Y0NRM?)*jBzI$Hbt@x7j%pa`fg^W`trgIHpd-VOiFD_J=!2tI%`0_c-A3|qXVhD z_kYy2*LZq7emL*glFJ*V1#K@D-ZxU82wn)XCOe-O>rni`Fi$PGCeqpun)DY_x~l*& z-#Zz|{5(C=P={3J#k94#<@}&T&Nz?EMJUmNXuz^Xn^|3k&RU-j%sUW{tMydPiJYbH z+fsByFGP*@7(;G$vaAjFVd9)#hoMqCwZEwM813M}85M#Q_ZdJo0RY;>iKm=NrpFakR93CFyu$+v0sN+c?lwX^Q=7SYcX0BNQ9 z34%g7Nab%zhv}T<8uf(xp2GQVAlS0xWe8~s&E?y1rU9OkDQ1Uvnvg5be}oU|%%p71+`Chl{}69y#sz#D zSy*1!ZtS1NFL8fCmeE^yPn&K{)&@DkWcs)TOB-;X4yyK;{$k|q^x2wI9nf?~d?*_c zA!u-Q*p+vB$iIeJyGm`4YvX+pr(sx?YO*?(b{7j;YMg#LfZr5i#&0D9e{NbkqoxKj~%Z&>#}6Qx|m!_gy9 zA=UQ`m|+ByV^VGxjpz(Wx`gvRx;M(MG<02z9=0mxakx%ySqY9bPWl1NQcsm3K_Oia zH6%}SsbWrc^eN@#x5=sazYhbRs9<%*C28?sH^0DnS>X znqIgB^!>VsR_hIx%Bn6^eU44Mfc%dcJcq)(TPyac&rfZGzAW<@7iz4p?%Y$>hW^zvQA;W;ozc;CawoyF zxT%5h$o6~RHuMgN@x}yXhY|Wp_@_M^w+|JPb!Lgu@)7TnH<@HXG;5ax?R7rRljt8% zU(I^z)Zap9Zd;zQdSz>b$yl4N{|3%)wRAq4FAmfSL**AJUXC!Rs%GTxwu@3OZ1!_%~=B~ zh4zfa{-aNZY9b5$YZfvAb@5E={7}o?RbdphphAP|CZpfgiPQAAs;I#}+I~P9N>{+@ z%jp-N@v>2SlL{a6LVAIW?Sb@N#6FA4hubkuggVd>P<_M6Qkx#Bko~7PA&bNUvEzJH zprJDOb$7L=*F&Xhcc5`TSwr&kLJifFj_yYQb{jV2^}E8}x(=;X4tRQmX6jSh6_`kG zPryOueRt#jM>pBXV#{A^g*pHROla2QKK!UPyrt(cnfBE z<7`E7;fbMq2I`C(TnlO!fiC)_yrWHA#Rq`#4bHU&@@1g17IvHPBX9isl0C{yr4R^< z12OzHCqrEVc8RW2n}c1$S?2ZoU!imUa%O#5@+v>ABkW^&nyvF-K8UXZehQhc+fztI zt!@R#@dQ&iH&u{4{vRcopFSS0Lx$LFH3E+$yc?PpYoe$8&i#SD2<_^c!Ccai)WE@X zsM|(apPr%U4h6k@_=Y^ps~f2A?|}N=?aKZ5F95LX1yt|Ud2W1qS=7N!Yqg)>K*-6- znQOF_h0XhvIjf!8(j}_9sr|lNOjEzHrUEX4bRw$A;|LuWKuPk6D}FQG8$Ha;W%=zj zr)v8Zb+{D&4)?|X?hZ=dN}IO9are{)6@~#3s&_VglF0|x^6KJqfOM)2P@7aI*oLkU zq1nAH{dx8Y(0^3~MEWusqqy1rMGjO81{>9a5#Io?3`_gU{y^W5puUN3$-wI_)G@~* zT-O0V_34{j2m3c+k<9I5PvZ0Xl3E*25}`N_JNSLTEvgX$M867Y{9gs=|I|~g#dfGw zeMJgj8qEd@czS;CJd3o9jg&;Yyu017IVvFg-S^n=C9sz1M9`!M*pAHWvp1w6^s1#X zrVkCxMBl8BP`LT={5_vh&Afvez0A5I8`s5B?{gmW-kXPH$TFk;M7?`GWm?G-nQ;gE zF9$Xi;@3066?a#h-34sKu5lp`S%kw<1UC^lYkl2Z9AZLEt=Nw`5|S=6dq5TwR|xLd zhfkOGziPM0gQrj6fHw4d-xVCGUOD0bM%&`Q`tI}gMm8HA8+L9dmsDi4HL7XdXVb~@ z*m$A*H|eKKD%mUb>n(BiHJiKk-@Pi4M+1!(v%2z92nBLr(}GJ#r0NrZcrAMI?cO2#_c^np zlJ!xn->K;Jh1|Tig-0uyEW4dI2D}hP0Fx9w91z@i8{K^FX{oQ ze`AFx2-NZCscuhg`-@ep_5W`6{x_=wO-rW5|JIq&{H^^N@GV5lI@bP zZUgAG%Zy4hf4ECKO~}i*Y?#qi4(PwS7OnlQd40yc3KT3SOR)fe84$$gMv#HCMIcyO ztxz2MCHUh~AO<%SCtT_6>ncwXTOj*l#rEkQS6cC&go7m+9@Z^1$wYwIyzK!BC<3Q~ z1X%=xj=TL5*R9yChp^ilwX_1l`1Rr3-;zh*A=R3xAIUTxeM!9(6cot!XiH^!Cbu$_ z4N82>m~;jX<*8I|B>JI1>VAWEJ`dEhGm&NpaXIrZCq|8h^F0w8^1yR`SN+T~F6J~= zq>uk5bgX|Rqjq=u4*B}-H#W?&w!!`@xCNXZI{IBr@R?^9Yn!fRs^qnAF!&I}r9?P; zrha>Up0FGyl2w{2&;z<^5Mj4_KRJPNA!QAwe1 zcI*Pnz87{OzM@kXM-Y_awu}TQ(m26e+nN`%eGT36pZe(sCTG4;UtF?{te zNbxv^)k%f#TG`llU%s+C8w`}KlEOqVn^>c77csd&*rM)sEU?f(X|^6*FBn-Hc8!kg z#9WR2G3@8Whv!&$Gwp7bUo_!269ZwQJnt<<&!I|xI$kG&$j$ufsbtWmS)Ke+M1%)% zaX%ROOx4&g_U8PYD*3RbVQfhJ^)<17h{5riny*B46Bd555{6#0gP{DR-Rww_&1H?V zL>rviA@XaB;mg>)5|gQFTP-51e!=v?|BU|qZw_79Hukr!>MTTcl)MOSSLORRbCQO4xzmsj*@tAnl z{v)A*lvdpn$)jA!2@`hb*1L@tcCgZ1fha1*7EQZ6_2OHrtWT{}J>0Hw3E&@YK!==! zBK%B&%)FwW$%XdQE?v4k&hG%e(r|S7ro&(k)*gaT+YIFQRMFO43(p3k* zIxas-%Pihkde9wcQC`x2Rg0Y~%wkvjDQ7n!c2=?xk)NNxvAH>^KH!`e;Nuuh_>!nR z(um}=$aBfbT|-`e^Y=H9GU>aXyLqdnB1fTp)_n)}`2IZ)NqV4f0gShg`n$`KvxS3>_}NCSPDnCTU(clgT&wIzug6PM~++vsnhS{Jn42ksLbTz zXRY?K;V>rwzSnd-AX=)I zfyYNgYH@c~+oE5-191XfES*$_J)ePm)^$Wp_q|J8If5@lDP#tI^PLeL_{yknorwC@pRez(CylET=vAj{ z?0=I1X&WJMet7wQf)lZ_48HvAdw7 z7JaZx2%l+S%j*SOMxGOhC%xLQBzV$k4 z7g+O|bsH}pV_iQ^i>vA-4z;QEIZwT;yEP}c{T6V5`ouR&`-=7?7C-#)E4O9? zlUj=VRC-;(!9HP|SO9lJZt}Z1oZD}O(`}*8+cmVDm5e{ETF$2mt$m7du}n7>{0hGh zD^BXuN67Nnqw_E_9mDy{p1KslJ={IQD`XQOBHKT9KJHekPj(VnGs(3;XEXBsRFw1C9ypNuAc+(*$t zeO?sAbS~}N!za1^THN;L&EFq7Zvo9(_g#V76Di{;8Fj|nLEv3>cb9_!Q|r{@9xa63 z&k)e6cK(U@wW69fKSl3Kl!PP-K(ZDk_`isI51=Nyu3gwduL(s$QIgO>N|Ywj2@p^~ ziUJBEMLN<^nn({2AT*_;AtET!1OyaNq^T59q>D5u0!oz*|Gs^m=kxu}ciw-_ymMyG zOvZ7NaOb}FUVD{mU2CnbvPr*gx0@0h9E$!|%a|O`o<}XRW%-(3^?&FOOkd}jne3Dc zga>ZZcV^i8uQ7eRi2K^QyO|&VIu3^`ZUha*N{76Wmi-sc{&h;wA7B*xtrW&rpV_Ag z-8|^tZxpT3^3v|NYRua>c$fK=S)f1Gc}6r;YDKlehQWp-%v6EyEAQIR#)lhwSJ(5( z$@y+oNy8LP#fu|?_j_VgKcQcBACB=m{>#C|H(tW>pu2cpAx2r!Twbh4TLHAMK^}1u zf|=Lex?TCQSk%FO=!$7LbR$H5aDraH8W^$7m$8i0>z_2M|%yr}WW0UidV<0fvV)sY;28D|l<;jQC4JT`vJ& zW*W4}mgdtUl(h}K8Ueb3(RYs&!)hz>V&PQQ#|S^C@XmE=-k=ZkZhJdsUpEPz(}ww4 zgEaI(8mgAE7QDf0hGN(Y(dui|vV&hi_vsg$omBF*FJo>H3t#Pm-rX{ZO25+C&C;o5 zD`Rxaz~Y+Dw}CF*j+8WZcR)+(&Ue&#A^ZN8GymGNMlewBIN;$W#6ji|vppO*-95;Isv8-CcLE z+~l+4i7DO)-bK*UGqT*Th=2$`^eWT(s`Y~Wv)i(xw`_+6Lnvb~y^$*YH!0u72(!Le ztiB?X@WcDSbX$|32;zkP_p9|yeUA>v(F$ONpRDIq-Fi*QVdhUE+dB*#55O*;v|(Xh z<oLj|OX%NBXF z;%mWKZq?&N@#50P-EWf9Er263=UMY}q;Bl$_0H``W`1@O@j~8Y<$JjgBY`*eP=4?X z%35m>Hq*8sZhho6`uu?@vUH@hnECmMBn>k;0yR9$SDm-$oC%zCv!<>(i6Z1U=yq)n zeAp-xgZ=F?oAZ+OYspGoT!3@4xUd@M`&wz*;9&%t_5sYm>?a|-N-kh+HXYfFNOxDx zFSSUl!|pvm{@Ptm45{2;ZR0!_&2)UhJH{bHY>m@1MrK};H)ttTPp;V;-|%tf7KX|& zao)H_d2eh~tHC;c`Q%u`_;z+;_GBNmZ}>YfJonnp>~x$rJREq|EVj`XB0hxqwD`^) zCDG15DB&f(I>wY5vNvx99*rL}O?4*D&BeWAax&3dQh;NeyZPKtRr;Yr)U@l6#Sw~3l3+|%>1 z>}jJ1{!P8RPrH%@=wBWLimx!;^0)YIsNlEoU1z#6*vdGuz{fd(g@%urU##_x^XoA8 z`n)G6p9)psH{PG-zNJDxct3Y>b}fh>X74t`#}RK%Q32Ua*Bs9Ea}?P7A~5{P4I>fF zRNW$xjL2G|D>?~-B^lN|?)U+W3*e?O|Puw!lxSetWb@%y zU|zdMZKZlcl1s{aYo8XUWw~1e7pv~Y_caO5gE+xf?w3;=dow~ddl0F08CgMN%Or|* zR~6+t<3;{9UV2mxdr0R1NSt(=*wE zDDmylVVP&3to8s#2Q z(2`*(f_3f&QM<+pR!BSpJ69toOgPTej_?q&p$_JIOgA4^MPt=RXREZ_%(}>RzZ-Db zR#wtWr4Kej4jg{Mn_1)|*=@&O%OK9WP}Cl#jrUQ&@_RZ3WFx}cwRmgqnI+<{^j;T7 zcJ^Mv6Dol84hFJgI;?7#HV%`HZ3x0~u)DC)nvh)^1~gT$ro;o~4T|Iw^HebjTUe>_ z!Pnm5p0LFjnYOyH({L~R{i6oko!&vec|%f(i>)Rhjh>2 z?a-w)K&=>_q5sId0LA^`9;-k_UUvG>-Ci%q!sLPv498;>Z<YcHqa5*JkYjdj_tS8H@1Z1 z;WW>xZPV7(!LRht;s{P_A{VH^Z)QpzerV*}l=7$~PE~@1h+tKG0+b5z=s>Su`u$FW2nyDabzkfqg4Uj=ee&pNv4$1##O$KQs(}|CTjzi8fdpW{e@lj z$6&hPJNm3bHvY(SlJ&hvfwH;pblk6B@-ApJYiZ$-=8!(a_Wf6HNlT@+;L}x_Qh8H*Lt+CaE9WjX{1sIpEQBr5yvE@~gRD>k~pHxrg@krhyU#M%HHP80ln<`r2`{`6lNorwzk- z_&HdHg+EC6FY=%SJ@j;6A~Y&t(~Jo?!xE`B8YDRaH4$?q{D=2OnlgwSE4F@8@F+W2 z!aI+e$F8dEtr?4LAXUnAe$c7Ycrj+}70*cluhQ0nhNhi5K}e-Cf|GPu{cvPp#JZNH z9YXE^>#Syv9@4S2VF=E*>{FTuyOP(=fj>t`bd+A>#Y6>Czb4p@l$IbLc$T8_kS1kU zAr#>(wdt)>sbVx|vC`JZd;Aa>s`06^H%!l5D4g2!N(joQIcVHnN92K(SODpa_`PG8 zU1Isj%bj75U~j7=?AW^@p}j=0B{Ji7Q-H=H5==A7me3;EimZ4Q;lM>o5F2R(@W9=) zL|C!#2)CkKdZ1aIdL^Qda|O?ux=D~F>cTD&6NJ~{w(@xnLP<{@vvB4m$h7k6*=RAv z=-k`ePGUj5ceiQE9e@{7wvnB3&oO+xW&4_Cx&5w7jLdsQZ>3yXYh5DZ&7RiRtqn?l zg6}-tsT19%x!vutMQrk(-QIaCKTU(ix1tf6Q$i%FBK#d1=%s4RkHi%GFxQARFSn@` zI$v7xRr_;r)bhUj=Z|qG21a)dTt07*th)?zb_HNsCvchsPcYe{@0Lr=z>a3}=N}iI zT5YKWy}$ePrIqUJZ192Ex{~2jp;-+$P8HcPr0?;VDeex9^bz3k#UHY~#|FY9P?<5I z=}juA5VZ^JBIq84ABH(wBuEcr8U8As4}M9r)^7@jSfvh&LR_=<1hqj%wg+7tH#^=#)|=}m&Zpo zyDc>Dp(AkuYFVQtS9eYO4y|_A;OoM&59gPG`1+6yh09$U+`hUA#}s8V0=))Pql~$O zJHNa--FMs4hTxL80|+8{$TuEJ5u8G;uh`35tg_EfG@t6D6Zv4a+KvY0A;p4~HQsOV zn2y8qGLG5B4p^a&zmQQtl*=RAPwqDBSTkXC0;S&a^?f^h zttSS96`IIs;+=kL1(U6Dhg;(qHFfw~H@hcgSeQ1@>a4}^C5zOD=VLI6lEf(@XVSTv zpKtC0U0l>w6V2IZb(w5whqRMSIIHYyDTyPXE;G0xZ*N`KzR5`D-@a3cd%)QDv{9;i zqQ<3|&@KE&W&0 zg@Kdy#`ofH)Ajqz+3&i2V3u8nQw|VrX00d%tQDeK6*tGit0nhWC;3`yx(DpEZNlK( z9VM1iw2k*e5pT248f6#G|$r#wh z%*7YR-0$N8e-KfqJ#u!RMz~U&4b?}o!i7>M846>OYJNz@ekh1ZTsB2uqT0pDn`%@s zlKLcM9iw74Vv^!`Nbq#@8HX>Me5srBOPTYqn5e46fiXHGu2XldM!oXj!LhwY`h*83 z;D#_U;)@A-xT#rI*`r>8*0K{xi;nlsjNi74PnyR2IHUqO!cM7ePAXqNp%d9wH=e=S z_`_8@C`15Q#{)cBot(E>)zx@*cjwUAgVk64uJQNOY#6#F`L%||6B|7ke;7|8C}c-h zE%N3yGgmlBo~Y$!cRChI{EX0%6Fgyb8;nOdy9Lqx{~}qi1NUo>ZQFmD=!%(M3OIPK z>+7RnKyga@{{1^YAHHn-E-WCBHY%ChYpBB;r+N%Nrj1w}?ys+YR`~vVEX|Y>5Ig@y z3JS=LI6;Aa&(W2jWz=qUInm|23FOw}aKMF@%5-J7WdeL7G1)R}9qateuiK@ih&NQ# z=Zq(XCYll0tiwmC%*rVSN!6YD=&=jQ?6xrafe~%37!Cy@Gt8FgGf-FnTzaWThS(q0I|exzoyy)6T@D-k41iWu6;XrAVpFgos0S4TdHW^Gt(X}92+ zmvuJ*WcbC`^gY2*#dVvtT#yqp4agwnMRjH>G329tuZ~@D<;*WQ{7)|c>wFZ7f+7YZ zQFj3t-ym4}$Vgja{6@R@T1yOu%rdFG#39s5G-~Iqr&*3{SfVzk_9XbIVa-6x5587p z_A40Rs+8RZW5%e(qLDFV5GtSXoW-R$?zhClD=S4M>o%$oVJm^tL&H{zUqOBWXw>H`FhZ0P`5x!v_b zOB`S%Cjf}}@r~hApaRJ;KzCgux*n?7x>uqunhNj|2`MA(pk{zv+H=Yd>LhuAQiIky zRdNIvg*N(*Ztj?^uCDGvf%{7uwKdw0Kgv-0m2BG}ipwhZO|xr32>HNh1#Z6?T(&)( zsdrNsU_CRiw|C+XUi@qren*FO9}BoKQl`yiolSOLK2YV+3ByaeZf_flM8+V(6*0G# zu5mx0N@`}u^4Kw#uu8VVdZ?2G8(=-Q08y*vRVzxx|MCPV?x6RcQ{}|4&RVXcxfe)GvGKobQMV-kn)xw+sRwiapeOh5JMe z(=4om$oFg)clyhBMuG*r7~C-S)7(80hQLHFy+qZ+T@Z%vtg;s(cr*eYO9=q`_l>)! z5`RNO<4_*$^}%fGd}FGjWZ;kkR8iR)K?$0Q&`pg6p7@MYUicDM!6`Uuax zo^w4X@5Yhb{NtjR8T!|6``GqNSzUypcE?YG6AxSNB0jNA>jtwO)>gG4@I5H~jkGC- z;+9Eg42{i`b~6+-pevtJg%nb6E1T`+VlXFc!PTf3zJ{0{N(DBa2}5#izsYO zrP!(-6TfUHcO#}(mCQhwRZBy?e2OM(7{}Po>l$keRMfzLpbXud?SQ;rWT&I-GY-kC zu9{RF*HOTp$|fZcMQTnEVid>eNR&p0439&D>uwGd+)%rQ@-+mB14F@UN6)rS&~Xp6 z3jm3Ujg19_`4q;a;})n`D&T$sTxwx_(?pkShIlQLnzJk^gCdHKB(SbI<0oZMxsU=-=(Gk zSAf-25887_x2z!R8AS2{Y3_tB!E=Lx)C@-A+D?*to^>k^Yx%3QsZr@@HzR(?7*(Lg zwm#iLF=HMTKLH~>Fn!FoSX<~Gw8mi87&*gtD0(7gKl$h16a zHz_e&^;;t1Xowx7-M!GG)I;x4IiAO-2z5YnA&t~A-4gY1TaEiyZhrB#70Gf;XS+mW zTWm~{6A)Ew^S6gt#`W5j)a=k7rsnKwynC&^zImIE>q0sUe=E^B*5ysS?~g{RJ)0YF z8UG&<;)-%L{o~=tl)_gzA&s|`kr%h=D?~O#H_Bpv2L>S1aW)itV5(pJRZoqu+>o|P z;uhu5tMGoZox!In%}8>N5O?X36sJ@jCCd*k~_BmANSRbUwq7EN!d3r1sc&z z)s_)#vTHigO;oZ+j&S!tAQENEv~bqWZ@gA@FhZd2aMt~qY;XPZ&N`O}*2cN*9Ih3t z{*!pVgfgdmFs+#h=qVk%%Zud4h)FD!tjAu~R^|K60pgFor&)UaVFRiGoZG6Y$I$P| z=+-jMF2#=$B6ihZ{H|nWQfjqh+Lf2#wzKqxVKA%NHb9@aE>XW`^z-?+uIn0;k+>mn z!}^%LHMUPo!R1-1Lh-!q>>e5(=%MqZuqib*M!OSO0e;SpzNiOCJ$aq*Ev*6ccesl+ z7{2T$jw~oUoJ&AxSebd_7(i`l`Q9j~uX>92+F5))EPRUQC=S_i{M6Cp-$9A-kFwi% zVQigPpF44Bf>(0>uCyJFmj+970#AXhQzO_kSUB_F)1}P_XEP&kl!pcs2ct(|gA|^z zI24{0C*7_i#b3o}Ys&;@N0_FY=qg4NC9fr>hh2EH*Ig%orv6B|K`C(DhG7wwgs*zT z%b`R$iakG3d-ODgY_2BF`S*9lpG~fOJ*W60U4x7u-F4mKa!4yr zajXowx$F$(S$S{0M#P(eBw5^?=7BjMdBuj&>!1&Kd83xwg*i7z2Mf%?DOtXNWVquD zcPL{~gl{BI%VqBgHs4A54*BRE_QP>iZ|b$Jd5Tf!R-y#`V1%tA^R?DGd+|sS;O5Pg z_l@;6hJ?J2nBm%>>bU`OSJqoKXJ`VCZ@k|;|V4TnM&u;~yc{&Bp%Q zI)k9o{>T+8-M!oY2-+Dv+YC}j#CEPAq<%$Dd z)tbC ztC3Ci%pi?`dU%{Zu^99eCS)m>4aUu?stKymATK9aP2(;Sti99q0%da{P6HQrrIZ6- zmV1C1HC7HuN6S4GbT=09MjnPEA_kfty`miq#j$sIzJ$oeR}e-h)Ya6xcZc-$L5nC( zw9^7$K2$UA$8y-pN3Ff)fjdzau%YG4k`k9DjI;-tkL;_Lpy;TRX-L$O!e`s5+s}w! zt}JUK9w(|0kDJjKvy!qP@`~T;S#ym2`uES5)X`{7PtWptD({Aw+`!hUBY_`w;<`(h zKGL8>UNO^#(a4gYTR#Qf{s$(PoHLsoZ{vQefRUxxzHh?)g{(6J_E+h^LVoIcxmVN1N=O1?IV1@?yU| zkaEYGtFf#kzP^oE;^^j@&i1{ttNudqX7)(LtY(Nv2OpZz32)Jxc}LKNM;G*NPI921 z|J=xA-LAx)*IK0Yrs3#_OS{BcoUrnb{f&z;_1Us+nZYF(cfbhoUy$#n!%9q3=_Jn7 z{g)0teRw0Jc>7nm2$ry%SpG8G3bxGK;{tD2JWM|PbC~|;LGx%_09(W2HAcRGBD`uf z%)=$iw*=(HKS)D(W9DkXRRF-)QHSE*Zg`Un_n4K=+H2GUpH&JZsW}dFKb<2WScB5) z5?L@2dRJtf22(qI)NUX%4^3*nD-{1mnf0(&K=GB0Csk$DH<1%sZprWpx_Nx9y?Fm4WVA=)G7rdjtG522 zy(fxq*TP>}j;s}Y{0WL*@zNJf)pkABV@N5kY9=Ugj`_zR@8+va{e@Y~IYo|T{ctNb za`{mRNy1ju&c=;=ifYJibfRBqgTv+C?Ai91bxS_A$qDm>RCQ-XH23G~tKnS+(})9m zG!CtcUTfj_;j(Q!+$gp@Gh6?+36(w;8pLkP75BVE>~E$5aLWdDU+oo(?9W6N{gMMo z)AQ@w0`v|K10Hv=LTMl}Emk*fT1#wwobeC#8=5_riL-3U-ewbvd z^i&o1_GQH#yq|_>K8X41A4rzY%UB-)eaAAHiyDpK_{^mbpMC!dPk8u=C5&+efM!Mg z$Vh|bub>6`wE#E~VJsP>U`~NWc7tDT+-OdxYZ2&N^}RnHr`iXDplNm>DYdhOpmSbm z5Q}ZP6{(WIbLJyY@LJC_QG@Ain@E2;Kv*Co9pEh4AXZVdI>goR_X>dcWmgw?q<6!h zH^}<0&OMawKlhLyBj_8UU<`gW2ZH`Sr6O26G_^I6ytFStHLNTP=ub1LS9-O61s>XZ z^3T%wYXa}}s@`*|e_2jiAm=)GEnWyLQq2KsIc^$T4|>g9GNFVX-jN2PV~Ct1&`y)` z(Zo`UTY^}0Qqb{+RuE?WCXaxB{|~MUvSRw!$KVe>5P#qC-M{Ymp9lZz@v+E$a5rz) zIr}#Megk}tBTC!_Xe=joh6#w#?Qh;zR zndJ zHs}%VzXlIPt0e&>FfJkXU+(Ppa+k0Y5h?Shi;VT`#q3> z)RO#ve<3{P|IQu3M7D0ia-1}nh=#8({0|IX_EIcXL`VAuK`%qF2z z{?{wi1MF4AB>6HVhcGO%B4~WUk^eI1|F!FRE$=$|4-Wk=k_O;`z7k89QILThi}Tl} zr=#lt6bYN5N~e@EeFf!P6EQ*^%`vQdWA-7Vw(aycr^2PE>75(JM9tG+S^cW?&8qeoTx)&5zye^#*l5;)rxzV^M6 ze?D|%1Mvz4`k|(Ge%iNhwKAgdT0jcl{?4}ff@~X}&U>+{zpuuTp9N$2 z!cV3%Q|8ICxdQXaE7ctxS#sU3Ri7_Kx!6DE0Z~eni(bYl0poiYUi_EJ`1?OZIQY3! zVHe~7oDJ0!a6k**>SZVZ%|+DwOC#l{v77e__-X=mkO!Tp+&utwLbF{#YmvY(Nv@kd z;P<0&r@!T%AFOt}@(IkxuHkAuX>Dbd$>C)d73y?^G0zeWg@SX3I`R;YCC6*oX zzX|}O^b#NemGnH&pysZchLEc~Z}A}pQNSK9sHqtMzF+2D@hh2NB>I5Kg6!?&HH>3ccr=UswGs`FX2Zp^)Q$SrGqoKnO#2V8fByRLGdTH0Q5x=$K0%5c zNlJ^G(SHBFPtZ466!<21)dEN}2o4X}bbvBpCtP4ep}N)P>jg|3kL~_;e`Bix;eG|6 ziF4UODWESFx3|7sI$sMIjGeiGKRBPvgkS>J9K(xGfyvZj@nAswo9ejY)vpKp{fcWJ zG@|^n0A&s;(}zYL?if5z?h<*FZ8OWu!T`U4gUbM*>B>(qicmUacaqnQOJF-bT|EbE zNtY{VVN=}&7`QGHHDgDf0k&SCxbjzUW;%gsvh7#T90aqyJ7|TnuWkQYbb&ZVfo`T7 z4Ld)c2o8Bn?EGwW2b0vVKRiCl$B+X^%hMpWJ>yo49LNSdgK6Nm##)A~cFM^CCh~K3 zqD6~l+%fZ*x#DMCr$ENWCwl$j-v;$>GlFb`?8-82-_qZ2KuZbns8DJ}nb3KofZ^E! z;kE>HE5-dD6fg{}NXTmlu#Lq)G#5@lei(Fp)>+)E*33pu1C!PV769Bg-FL;ks)F{& zdob*_BZ~Wm<5%$I*9E{Uvj1>j&AxuUkDg~h{P~Ctl!06YUp9C81}Gb{AZWz^I@1$& z16(MUEgewWMq>F)Eq&9*5s{9k0dV&0V!t=#Tr1+Ip3zHjRHP`cNuCu-J%O1W%K@L$Uz|YA_XR@QXLeq6oPtDH;c~^R;)3Yb{Wvb zf&jXO)GL8HzdJ{n%6?jblvyAnx)3@2fm!JNg)LC3g;|~Hem<9i|ENChZG-~qsiom& zNbv4*oBc?Qr>qUVO}rRrs~zn>7E0X#NL$X=#zFe98RFT=Iy3m{gkmWWQ(2()vzJba z9Ij4h({*jKRrRs}#R<}n^O@3b`!q$-qD)pBgATkm{fCdu<#j2pcBErZ2XFg`?GO-{ zrdXBocLAtBE);asiJyQ$n_63Q_V}X}V41+Z`A}$L2nn<^4F9)(@nkua3Gx_JZ6P1? zyppjE1IsyUYwP$p^aG^J`7GH^IzgI~fE?#o6`-;YIE^GPFp7Ji4xqMSv=iFt$vA=< z4azsAk$4xMdXB8^JY4-0qNf(0_ZqN{<|GyM{(3WkwIMVHU*)S?ngLA)PRo7qNl9}B zWdrQ2w)nmpd@R%c5aS@E}d-sP^;fd(O$8QAB2ops(>{pVDqwJaMK6GA}g732thPrYKm`!28C16ep5NvO59VE=zjrH zJRRU~?fNWlT86)>05ru6z6ALuC{G^Z3@AhEfXB3$1v--JM1N={PuW(&ed zu!lJW71jyNwL9N;7$!PZhim}F$%EJLS?*qZQZFGPQQdP(z6KP5nd}hcz6NjPfR=pE z^*)f2Qqrn0( z0v!9i)ck+5lHZR*0`B&hRAl^!YX1^y21E!$F98*^+(dT{W($CM*{p>2ujRKet--$l zyC@T=@8O{J&!*F0R=te)mFmhKdz>d0%cD!e|5l4zpYrzY@~4TH=xC{QB71e(m6mNf z47HD6)Zhp32(A%ZnWcTgzZqsNXlULLR12y61$WaMz%vN_3=1NL{6irE+W7ZthT{cWH+Q5#?UgssavA=s)8<7F9lCRWO@du_N}uk^aUq&pSnA&bjSO4^ z$R^;J*AuB?*7VzWya|ngvK{h8nRIk?uH;Ne5i#({e*hJ$1(%iT0rBF$Z_~eI4*m*^ zh+m=eys_)D2JUyA4<>R|TF6;c?0bJ~7nJx4l?KrxD?>$jGvebO=nlao8~YBR_=bt5)F z?amhX)MihJ{S&Y?Zg`J3h~3CFLjX4h>B4_It;PzTi<_xNpeRlj)V&q6yMxMG8!(Pr zdKHwvagw@xevT^jMOIXtS_Ox%N*@Q&wH@F`?JGxXfueKdH((i>3UGeB*TS!l$X zCSDK>-zg*Myo9kRirU_&{dQ~>^asiUMM&=}Z+saF+FS3p2YhD1^P&$8l((9R5;28h zpmEUSx&G2TsFRSJ)xDGEHdg}|Wi&+5bjfca=BY6cs>v0kATF(-^x!=<5{vU3=-E&uUeHR|JbHvo-pxHOWUgNuAzo@FkIMiKJ- z*qvdHu%IYLZu|MBIZ$$R3Sx9Z9)eOq;~)3pw?KR40f8RLvyH#-N1&S^jUAQz{kQ&; z3TP7|>zlG@95Zsz~=jNk+iHVELfO=2H-SgD{1+@INPhKg|_GFvJ>;BoEWC0+p<~ENdp(kmC;D$_AnKbss z<2_=Kd^=)+Dh?ZW2uHAvocf)rR|!P5?aJWqE8O*a z`QYs?(4`(({l@{X(S#-;M%3m!jQcoHs%V?RCFsw#!4kmJ zdt{pc^0F#L7$E&LKkIA3)`FrJZz~5TrS;rgv`J@R_ zX9+3Jzq3}bP@Gc_Py_y8L@flYfa~c)*Yo<%uQ#`mi!erE1Zff=yg*tJEcELRfmRCd z9)RlocV*n}3)aFbI7&wO&nGmH=91TcECAh%8pTT!UGI7mU9e|#j9sfD{ zU{v9#-%HQQ`hN+10ERBC@b``7L(59I`kzb5OAo(ZtXR16C(LgF_JG7B=|2~fSg>kZ z;O+)~-yI*M%@{2IL@j{yB>vKef8-T;q!tpPlJ2rr zp+9P79EyJ1bgCe^MB?uliBKB$fCmlLf?z&G{r~$5fspe5{Ej?s6WjqX0V+495wy-t{6dp5t>K^ zZ8J*uFWmNjYJ(LWg89o^<^F*2?Q-5}rYlD;PdT_lcG%Tc!Dsfuz z{wOt5$8<@-L-&UdAA+)*Dk$KJOk`0?pJhwN;{dDPrvpUFe*{R{cL>xrDff`(#0#(XYd1?3VWkKaWzho-TgJ~+Oe38ju+N%WFyjO4bO1!W_ieugo0m>=}UG+ZF^^@DLDky0me> z&gn~???>at_YyANm&~c zrW%G*2jzbIwonkZQ}^H?6Z8>=nl&s01OV6gI{~)_dhuq3Gb<19fO01Yl6l%^8H4%k zF*TA^^{G+1#Uao2^6t1i>)goa;<`zyPrtU$cD@@fk)`Bzb5;1_Z#9bnp*e7Pz?5jK zg`we~)y~D!MSvUjDuPQTF$7=e?1E!9Ak2H?M@;dZTWZqGBni;vwVO`* z$LjU>cQdwDXR_dYS_7+~3h2fQTBU2R?l>o@;m4N19dmu(nC*GvTJcseD*pQrUH?=! zgd9DL1>k7^B_TJKne7&YT`WX7IBC@|vIf|fvCPY-8V*?Ucc~b)+YzfycW8Q|&|+iV)gXdx3RV3kqv&eDy8lU?(r0 z^m^p80IgIac1pF$JY;WO?_hs#uagta2LC)AD^^n0pCx4-rni?W{OvQq_Z+%W+l=U5 zfqNDRyx+GL}Z3|AoT%H5}?(;V18kJU=&F!%}(pp!r-#jBd zLqP0WeZuf=;W_6g_tmf9)M>b}UDlnO^xjvEjBNVRd$!6M+S6`8KdnQM#d0`a_(?rZ ztoW>%N8&cUck>K(FqC5?-DOmWWdNtttke{M#f4wFFg|$5>SHB_y4U4Xf!>AB3W*nQ zZM3}8-goL#Jg~c%nlAIim7MPD_vL-1LLaL=m7B2xx5<42oSD?j?E#xOahq<=1Wy$R zg{W=`3IY-NU76sS6SM*L5p`vvz_Xd60H^Q_CY~z-963HXKJ{2F;(@@#PMJ#S>lJ~$7^5?mIr@`jQa$LP- zz2Lnu0r(~5EQfv$5)M}L4qOE|Hnt!<6BJV#yIjtOsuq#o0dxD=VDC+v4w-%nTPSc_ zEe+WdyR;4HnlkTj7`qFl1v_UcIEB!4gKR_;nB26&` z;*U8XNpj!_SMT8~FXHI&wEODc^8q5={Z9La>y6WSllapmNUagiw&MWSdrZEA#7sjN zGXO^8G|f>T>AaE~iFNn}q{S=BGm};QSD&rUd`E>qDb-7Y*BbWJ6P~;=or+zaY|FZG zqqe2NFAsI;^$VB&lDpy}&SQ&`9h}}ACJ?5*3fcyn?BHqS^MZe6C`~t~LuiEsRDusx zj?1Hu{!Dtbdx|+LtAjeo0(24%k58z4!*sS6hO;={kj%8uqs=RGbJYJ)EwF-5Jt8-k z_ji5{m!m2m1ohGh&l%K1DN`upf4)RDH}q}r#>GUxCNpzyiHB@X`NT7YI{=O~i6c~k zlx-Fu+M32yYow;cunJwC!&hm99(Aft4{1JaihrdMQfr`7+QN1JLY^{D;6i!HWA@?M zc|caZLCLyt*ah0D!fHXH_5Ru;mBGN_&l<4pHkEzr{wJ*GiPP!aB}bnP>9!c0Q#@lI zX1<3@J7ik3*j2FCVw!Hxz5d`$RSwq#7%ceIlbNjXmo9yq)3bfy{5y~``b|^I`gish z_;8;YR)d#;rE{%hm#t<#yCAg_n!=7B@&r)YP&+-a!?p3PV-#GZ6r?2b9U%I#Ly((R zKQe$KNr>sp6pY*44wSUWQJ=VVKjYN(SpOfjGp^0Yu!jz`8bUggzEeDy1fuyQ9{XBG zq%z!OtQkSNEJYcy-JQn*HO=u0AyL0-!<0Cr$_TrfT!&-=iqHozg60pg*unPp4Kub?8M_)UVM%_ZPp2 zNa88{O88V*+45L8^Q9ENiJi%2#3oXo$LE8Z-w88=jx)h%Bjz^vJ6HwmBFx{+Dq$WJ zyW3{4=utOV*7;!MMsMY_Kk1U6Bn66)mW1K<57cNkv1f{e1EJ-AucgjLs}$vYq@9w7H_6q{0)F& zLf=UV!2g{(3^b;{)LSl)J5_C^!CsQc+o#7V3Opfab-5h#K>mSb1z`| z$GL)d_d$2R%a}VjaV)Qn3GSx4^YQKG>8eI~j6IkcT%EN-gJ84cZVq>Q{-qB<=FcDe zNQ3Y!U0(7zHIj#u`@obCnrd;gucH6 z0PV3Cq6_$!;brRIvw-Xg@zH!RpgTf1_p>>0n)C1xKkVfPuWo^{1kV;({e=vjNs#}I z%m%~qqOg$}jvvn6}()g|YwaBANAhW5l&? ze<#HLo3}wmQ+zLie{c*aNR%_r-wI7{8GuLg zo4`DkC-LL!k_#i?fH>|D{uQWAd_^c;ZHPs)sNe=zkCd$~CsK=FNAiq;KD*~A!p*b&JHdb>hwOANEx z1f4q7d|a=Jgr!2gHBoVIyl9Vsg9)YT5ZDJgeA7+FrnxxA^*_7X%%TifS z1_l?@rf4xZwXhFiKa!AEaL%{vM)c(+#5)$c!ar#31WR=2O5$aQ3NI_5ZFlvW@&9)hIEAll|*h*o8>S40O;>d`#XgWm5&MMZXVl_is5Ln{VDBoqORWuj64yX zh>^FBJC|SCb|TOuB||>%Hecrw!B72O;}=kw`#X)d^wO*6#%|s`$TO(k2AD<)?`p9j zaP;k>RLQr-7Ybu8ecS5j5a@jj#XJ!ZNRgiQ?+hH$ss#};#e`*`MpF*`F4Yw$nDHx^+ z!l)EMy$U#y7(}#k7E_!5^7$snkVN8>C+JoT+zbsYl}!}1ru@DagO=fYcRkym5CSusG6@S`P2P&15%&GEdGavwfwZvfv;rzAxyA4x@z(0+J?hZaF{LSK{ zfy#rVg#R7pV zw9=UGd-`->eCSt*z(e>)ZBp_LOq7rQzA$=!9%|PVRe2s%*Bp1vO(8ifjlKT-7+DE( z5+EQ}o9HD60+xJ|F5>#bEi?vQO6y&*Oh!UURCKL?SCq{bx}-Y9N4o!tQ>{ol@x5y=?a2}0q9x`1>C}Y!MS2#>K9_*PUMg>%)QlHYjVEtvs`25y9ke+KZiG33)ygiZa z7&g)}^4%+nIoi1hMZ299YChvvA{r>9r$ zy$V=AlU{1WAfla((BO{&dE0Kk@Ey<_i}28$ODUjoyc;AVuivPfD?m(xfPS!$1$&Pc z)XJqIVZyFBOF^y_U-qIBr_2|AI>Oo~gYV!R-SOTk0RfMv8uGFt>K zw@iarp^}uuY70AqtJQGk3CX+%MJz7?!sEnY3o3A2zmq|->BBoFC~+8Xryh|yL{|aI zpmCfL{F9PoW}Bz5r{D4pb|38(VnD`E05yyJPSmH#5E}%^cyrLjOHZyPn-4C);=*E? z$fnV8CdpcOgcTqraWR-;v64ke8fk2Z+GUNad^Su*T@XxUY@l>euWNi?^AbvzHOU^w zo>q*QY?Pg}dy2MC@&c~M=qbqA1AXS7>OD*qwK|abxD^0JHo1HPX5G0;Ph>3bAvC1# z19)g)J*$h&@3X=KIj}+I5c1z=kfb0Cj#UdN%LIro{Grji2@#`yEV2;-TyuZ=#9>_e z?`D7iYj_9MJpY=b_kXi(WE$8-yWP#LEo#EX#%Y#a0Sp&qqDcjxD%i_$K!04 zpEvGxYMrc|h!tbVGsfv)o7vD8n;#jWb&q;cJDKCn#$#P}NO2MsS--GLV>=!ntC3S+ z7+L25HnLLv>_S=imvo`eF(F<5AaYqoQN5>1zy&7c_t5WX)w@r3E7}@A_TX8j%D4|O zxF|=S;|e}w9`Rv5ci5Vub^y}n+U>xz7IXW;u1yD2ECqN`XT;)QPT^}83I4#Rp9TR* zObn(n)bY@j=A+L=4D8_F(P#l~OjI>aoZ>7xjYuWb0HKM~02`D7(OhY~#3{h08BW{` z*x$gTAf6gZ24)l$SEAu_%;<;I!Tx$O*s70Xu-a%E#eGLf2?0~fqSV>axUq1yu#s;= zC@wm0yond^{7qAIcPGySDtz>;7O>gXY90#fy~eg~A;969{&-GO26QC7V@X{`V)EAS z^r@fK6aAx&wu?`j{c_xRq$gL;2Dn|l^sF_yy?^cc!oYD~-w^~&)X zfKPYA4%5;Kr$jcO=iyZ}TKh&>h&M{@1GkP5z4RcSUI;|F`dZuH4#33k1|XmDz59YV zFrMTj$ZbjwI@%%EJ}0^{a{9I6?vnAGv;N}0qKSX~{}u&kVd!!qU{+sJSL1Vmr^5YB zfw=9;=;l{>n`_65s&%$m8ccnYv5yxwyS=j(cviIu<4Qe}(D;ZKul3ky$e{Y%jyeL4 zj&KD^!0%Ir^m$jmjh|l|FN2WK9GP9_nGmFI$AG?6X0DHAZ}@5N9R&GWUWfXvv$5UC zI$cs2&8u~tjowEFyuQhPW}7UJi5; zQt84y%u2xa+T1T@7P=l4(BWm0?;D%Z8^C>Y0Nos2V1BSrBF}D7DiKkbxT{9T)y!!} z7s1+h5fqZ{sZ0`17c*1>Qixe7rCPI3Ch8)ktjc<}4P^(rMJJ1|M zFU{!*r5T9yilGJkz8}lCQS-+%Vo&{GME4`#evs=!yF{;Pr-G&n8`MeRHH|U+5y&Q` zIEvQIbY?O?g(R65eH2An;u#1z*jsc_c3}Dv@NJtsS_knEUxgkO4@tQGxJ)_5x!F5% zhLDm}bJY#3o0^f$-Zr1?^~ZV6ra+Pox-f?E;{enc(f35nURmRKG*aVAo#O1QdsqJ(-iED11^a zlJPVt3E6)ECmC+{x|Iez`L~yGm-2qrZwS{Z9g#oL# zYCdRlY20sg@%5cXXI9(7t{Ss$n(HNtfKqS;PG?Bz9|4Bhx$=ENGQsPkkMK_4t@Z5Y z6>5c*<9(Ei4W>`LrV*hk+4r#+DebKVdQn_x=vyXEipCj#r3C1l!o(VgLwvcG7ETDu zZX24o>O0pjpMZ?&jl!#2iO@LEm;>O+!qpYqk23lMm=?}I8V_z?kxU5zT%?Xs?KSo- z{7zQW&^CyiPilt*h?5bd>#q|FO-CL<1cfb#OS|7yuLT$g7ebCCef&A2B_{TfBl7;f zn46ea~LmEJ*)1lUlio9D8j;ZH3n_018kb-r3CQ?dSz&n zFBN>^!Y}_N#B?Cf22&zkP9%JWU&5|-QuaM#`0i< zD#{OK$;So2BVUWPX4-UNyKs1 z%_$;Le;$MiIf39KUy&i9#|E}HiwZnSfRA2i{QO&^sNF1&Uc#oxF)mIVb`$noNc>t3 zcTAgnj7f)z1_jRlo1yC850uyA1naCHT6ms4e7UdrYEZ$0mcEwZVU2b>TyNfg!}2J? z^0ykJpV~aN-jw@`o2^Pa9N$T-${jO`4Epp(_(41J?F$tv5#WMcKQm>7xGe^2MjZ5; z7~JS``0apV4Idpj?E7E*w@1MLsloiKY~=bM+CJ20gf0aSndU#6<-f-mOlg2fdq#le zYJtHt?jgY>_q#pX0D!^)YhobK;jL)9F5Uu~bxB@(H;{<9f6%<(rxd!lXun_Z1_Yn~ zs!I-uUi1f3@&6$Xees}>N~T%_#x@2N@ustVhP#08l#2Wi%tJEA~~w+*zjy;%i-a^Hhc5YP=q>PG7Fkdgv? z6etZCQPP>bEpn>#FCNXqQULDgL2}17lj2PAUuXVHYV|u`HFYOnHI_JzV(hCSaN9s& zZusQ?;FkZUu#Ej*yJZ#TeE51r34qXcK9E>Y)~4$J55C>sJQlKgq9&l5`0u_rg+o=~ zx(}^ye?7CmpWMUGS7Z;d0$c~2^{?M$TLIG zO60;zbqRP&w8#KK=W%uQ!$RYm?2>;v)!x_vV}78(TwD{~nvi78GN{!ImkD*u?BK8k zwaNplE>*!r;$h)-;Hq>cf6G$`cw*Ua9~LMaP{00ny>NU$XHndh4ig8zc~@8wP*|2z zQ^n=A6(A(kM12)7$0GE5Q+9Tko!UyO=2aJo@&j?B%d=u_Vi=-yhK@`gar7Z1F_LuZFq9I0Xjgg$2oYd zBqmmy>;*ijwZ(L63Bcenq+h8X1H{*wjvFm)ApZd@_!ICPe#`z(3v|Bpn^l`7IREOX zTaG2xWncey&m-`S-es*p!bxvmC^KFqj+u4I9Cj8JGB(?LiXo#n+px0Xiz+S%&5G$~ z+MiOceTi@$2SdGzlGl*c`r?BbDtZD!+%l@|v(|l142hSz&3q=g*b}0o{S)u+SeTgy z0-p8tuW7yJ22_B2%7`F#b~RwF>ZR9dfQFK%XNR_b!Y6A{rk|7@%^oLB2Wm~r`)Y0G z;#5s2J{Ei9nx{}$gpyO%`WSaX9<50tTS?6d(2hcwd^Wl2s~DMNy-5V@7FWDWq-B7| z^ZXBDPV0fnUmM*k^uLe;K;h`$F$$|5(!$drw6wu+A}v%(dZ!s zE4vq6M2(J=vhFw%42q>ZwTg_JbcP+^-X@4HRvS>w;9CAx3qqoM)gG|7Zw35* zv$PY|i&sZ!Ygp|#Fxz9w#8SekwsbQIOa<;2_{L!wl`>^u3it>Q zt!bVM{!@}oIQIs>k_Ip}#gMip1Q>P8X=ig(&+X z^$dCDG59mar2_uwFKj`Ygd!5xGmEqBVj23BKf(w)Yh=$~L#X#R*Z*63`` zS8AXf3Q$gB?=aN!aC0n7tKt(RMU7t}v|e#xsVdW>JNIw6HlaI7HRYVpZj*6oH0378 z$CvW)&-3)K8f89aY{$&=IC*zc$bAkXyEurkv}B@S$ibfHrux)~iQ^x5!?WP@0!d?M zGR0uW6W*Y6yH}D4YOf6O>moI(W3`^T`Se&KvS;@i+TONk!SN6@3iEHL0JnFJ_fPqr z@6CMguEp1v4;7DxV(O2$hYH94-m?5D>-+1QU2}j;FMt1)w4yuGXL!zq9p)&KfkF!( z&!Qg@Fdqbb8g0|ZfnD?F9Xk(?g!i%Kif*bs*tL07XkZ-8a)qUYkPqTD$w7=;_zKZn zvo%!L(i=B}Lb4WX$#h}~$<6z|3#s}5XM356HdI~Mc64|#CM&`r z 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�T!q(dQoK5B6M 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�T#NKe-O371-)vcll^$Tk0}0Gs7=s@=_1DMmljZf~{G(EC$i3kTR$U zm~yWSkV78!$@aPzq+nEVs<{1bQR zw8DpjvC4i;F_IU=ppm}%o%|Ch0|{R;^Vx!BS}zFJT$iy$zCIU|0zJ}~le`5>OG{mp z?_8!^IG?)vAqd)l?B0;qSJ^oVmgG~9&a~MmJqlOEiBsXpHv;C197@1Zv!|(G*J_1z zig()1xxbzyYdFdnysKWd(d2u0X6A+5SkCCaNTe8K$p}HUdkE5|*GGnO?GJWE3eOv5ng}4& zu6!t6G&^3VT7!ck&PpHvMJ!~Yiv|9nsCvkvk;>xOBlCKGqHa!QIxGh<`q`xvw)Knu z@?m9iHbM>aOOcKOSV!0Ifd!)jqd2_4p*cw-gPc7*|f zkv^#Ld{x#)E&4?Q!g7ES&8Z_=gbEBm{XCt)4=3P=z{gYfiS9x48NLJAP`Qz0(+w}f1sv*~&1Aw#?7P=WV5WL~{^2MQ za9GbY848dt@o#VMN7{@JwV1&%uODD&VuJ(1$3vC-llGi&e=Q7^G5M`8IDUUC_>(ix z?-tJeL81hG_O-C5J_oy7fPnB5(xW%ho%Gp^=7d0Cw2P_9ey~Ye5bNX}xkdz55($?4 znb|`spNQQ)1`AB{ZbQojK+HIsjjMstfRJ zJL`X~5C$}ZpZUJ|%KIIY)9KBjoRtKmVmJqlX>u@0o>A2-ta(=5TH!ne9(Y?gPx4xtW!uj4*X67`Es z+PI%7GRV-~#mr1V_!&P+b2(395N>!aj~wq-?vYK8$AKI#v9%nIx8_IhgZPQKks9Ug z!@bDo-wHz+4Ps_yXsQK^ptv4}m~*1H5fBPN@+7oxka^wj{grg){Q#brOS`!ts$3hT zP(}hRq*i$Epoik7hED{Uv9h+N^xuLVf^@vIR^1Vu{XoA}BEJeBdpMwwJSRfK4$V=kv+h832=;*ky@23|+q?SrH-gMX z5UXf-p7Qn!zj;nIWuy^K7>e_B&#YvZv1|#@t1A z6cGp&63+`#dTzn$g27ywugd?hl?D6|whyrkJFZx4O0ELH-sIYpe-vs0 zVY0f-K8_8;e}C1kReoWaLG>GA{`5j>`o#Dds&gJkgP^woblWyHwQOb;2;ej+Kzzjh zmHI=tp&XY;VsE+Z`ZUz0$FxI~=_H*$(#|2j?D0JG`@ZDH%YhEirzFbd2EM83adK|v zdr66k85szWc@S{C@Vol74fOzIEbK3#}Zv$Y9tA1pJ;2;U5BWq%!BYRH3=!HQ5 zOd>Jhc*R+0xiH+tIR(P zl|jrC+b}r4Tk@aoRUZC7*lVo<@X4I`2^fRJh-z|q25hQbB1kN1Vn_*1zYFWpbcYF2 zr;5`COPgDkg>O6lgxng2g%yA^CUl~D(9p)$tVOkpdts8r55#;$_R+o#eEfw3lmcS> zv@}YgimbZsK|}hRA=}9WJ1j5piexhd#d;xbJL!v;Tnuh4S%3b?ilh{d%MHg>OT6X! z%U&DhYKI)x?211e_b}Ex26HYtaC=z0@k$P=3&(AJC$f3+fB?aeSX76Qay|bOeNa3K z$At+2c{T1wo98>aaNM=QddPhPh02M9%0pV3W!ztHM}m|sxg49G_6%~`XKf^MF=K?9 z%h2R{E5l4h06J?5cd9ajPC@+az+_f)z&+rdPS;kTAU@YF0e%7+g?(ug#rISc`pOIJ@wH^k~P- zj(w%2{$2vm$^3_IE^qw3(l_G=Ka_>a%`s@G>I%W5l!UhSM&Rqme~U?&4?s$gaBVja zww&Vf@@$90H-4#wB_&}mH< z_Fvf~4==YcNbi{r7v=ZcPKB|H*9S@k+Tp5t-W17Aq=1SsfeRF#=Zx*V`VwW|?4nrH zxje(aJzl!^ICPwh%orvAIW0B8)$o9=w>X@B$7HL(;lq2zk9GEMDFROZv&4EZC-`9$ zW>}x5(B_*{spNDAXXRltd7D&{eVocjLzH~iaR$6J{t7az7NQ-w`6LkI9U*KfV4eEm zTpFQE@CJa6{rrh1Y9dUBEi(@ez79TYX&J26qU zd;X-E)s@+jiVo(0qm#8EekKRK4Qbg0>Vcg?x&%Y(O{l-(#||priB6u#K=p0HmfP|A zK@b&|v@d3REwE+?=q%M>sOCnk(jM2H;`j`tg#l@{=ghn}CG8oIrg8|=Mijvn)V?6d zUo~+DCy<#gZSIE)?~xud#9{P)+zg6e_V*K3DNBH44Qb&qJ!yja>|c4d`j=X2xWH>y zs{k4GL82G5XaNpI8rt!Ths* + + + + + + + + + + diff --git a/argilla/docs/getting_started/how-to-configure-argilla-on-huggingface.md b/argilla/docs/getting_started/how-to-configure-argilla-on-huggingface.md new file mode 100644 index 0000000000..a256f5d15c --- /dev/null +++ b/argilla/docs/getting_started/how-to-configure-argilla-on-huggingface.md @@ -0,0 +1,133 @@ +--- +description: Configure Argilla on Hugging Face Spaces +title: Hugging Face Spaces Settings +--- + +This section details how to configure and deploy Argilla on Hugging Face Spaces. It covers: + +- Persistent storage +- How to deploy Argilla under a Hugging Face Organization +- How to configure and disable HF OAuth access +- How to use Private Spaces + +!!! tip "Looking to get started easily?" + If you just discovered Argilla and want to get started quickly, go to the [Quickstart guide](quickstart.md). + +## Persistent storage + +In the Space creation UI, persistent storage is set to `Small PAID`, which is a paid service, charged per hour of usage. + +**Spaces get restarted due to maintainance, inactivity, and every time you change your Spaces settings**. Persistent storage enables Argilla to save to disk your datasets and configurations across restarts. + +!!! warning "Ephimeral FREE persistent storage" + Not setting persistent storage to `Small` means that **you will loose your data when the Space restarts**. + + If you plan to **use the Argilla Space beyond testing**, it's highly recommended to **set persistent storage to `Small`**. + +If you just want to quickly test or use Argilla for a few hours with the risk of loosing your datasets, choose `Ephemeral FREE`. `Ephemeral FREE` means your datasets and configuration will not be saved to disk, when the Space is restarted your datasets, workspaces, and users will be lost. + +If you want to disable the persistence storage warning, you can set the environment variable `ARGILLA_SHOW_HUGGINGFACE_SPACE_PERSISTENT_STORAGE_WARNING=false` + +!!! warning "Read this if you have datasets and want to enable persistent storage" + If you want to enable persistent storage `Small PAID` and you have created datasets, users, or workspaces, follow this process: + + - First, **make a local or remote copy of your datasets**, following the [Import and Export guide](../how_to_guides/import_export.md). This is the most important step, because changing the settings of your Space leads to a restart and thus a data loss. + - If you have created users (not signed in with Hugging Face login), **consider storing a copy of users** following the [manage users guide](../how_to_guides/user.md). + - **Once you have stored all your data safely, go to you Space Settings Tab** and select `Small`. + - **Your Space will be restarted and existing data will be lost**. From now on, all the new data you create in Argilla will be kept safely + - **Recover your data**, by following the above mentioned guides. + +## How to configure and disable OAuth access + +By default, Argilla Spaces are configured with Hugging Face OAuth, in the following way: + +- Any Hugging Face user that can see your Space, can use the Sign in button, join as an `annotator`, and contribute to the datasets available under the `argilla` workspace. This workspace is created during the deployment process. +- These users can only explore and annotate datasets in the `argilla` workspace but can't perform any critical operation like create, delete, update, or configure datasets. By default, any other workspace you create, won't be visible to these users. + +To restrict access or change the default behaviour, there's two options: + +**Set your Space to private**. This is especially useful if your Space is under an organization. This will **only allow members within your organization to see and join your Argilla space**. It can also be used for personal, solo projects. + +**Modify the `.oauth.yml` configuration file**. You can find and modify this file under the `Files` tab of your Space. The default file looks like this: + +```yaml +# Change to `false` to disable HF oauth integration +#enabled: false + +providers: + - name: huggingface + +# Allowed workspaces must exists +allowed_workspaces: + - name: argilla +``` +You can modify two things: + +- Uncomment `enabled: false` to completely disable the Sign in with Hugging Face. If you disable it make sure to set the `USERNAME` and `PASSWORD` Space secrets to be able to login as an `owner`. +- Change the list of `allowed` workspaces. + +For example if you want to let users join a new workspace `community-initiative`: + +```yaml +allowed_workspaces: + - name: argilla + - name: community-initiative +``` + +## How to deploy Argilla under a Hugging Face Organization + +Creating an Argilla Space within an organization is useful for several scenarios: + +- **You want to only enable members of your organization to join your Space**. You can achieve this by setting your Space to private. +- **You want manage the Space together with other users** (e.g., Space settings, etc.). Note that if you just want to manage your Argilla datasets, workspaces, you can achieve this by adding other Argilla `owner` roles to your Argilla Server. +- **More generally, you want to make available your space under an organization/community umbrella**. + +The steps are very similar the [Quickstart guide](quickstart.md) with two important differences: + +!!! tip "Setup USERNAME" + You need to **set up the `USERNAME` Space Secret with your Hugging Face username**. This way, the first time you enter with the `Hugging Face Sign in` button, you'll be granted the `owner` role. + +!!! tip "Enable Persistent Storage `SMALL`" + Not setting persistent storage to `Small` means that **you will loose your data when the Space restarts**. + + For Argilla Spaces with many users, it's strongly recommended to **set persistent storage to `Small`**. + +## How to use Private Spaces + +Setting your Space visibility to private can be useful if: + +- You want to work on your personal, solo project. +- You want your Argilla to be available only to members of the organization where you deploy the Argilla Space. + +You can set the visibility of the Space during the Space creation process or afterwards under the `Settings` Tab. + +To use the Python SDK with private Spaces you need to specify your `HF_TOKEN` which can be found [here](https://huggingface.co/settings/tokens), when creating the client: + +```python +import argilla as rg + +HF_TOKEN = "..." + +client = rg.Argilla( + api_url="", + api_key="" + headers={"Authorization": f"Bearer {HF_TOKEN}"} +) +``` + + +## Space Secrets overview + +There's two optional secrets to set up the `USERNAME` and `PASSWORD` of the `owner` of the Argilla Space. Remember that, by default Argilla Spaces are configured with a *Sign in with Hugging Face* button, which is also used to grant an `owner` to the creator of the Space for personal spaces. + +The `USERNAME` and `PASSWORD` are only useful in a couple of scenarios: + +- You have [disabled Hugging Face OAuth](#how-to-configure-and-disable-oauth-access). +- You want to [set up Argilla under an organization](#how-to-deploy-argilla-under-a-hugging-face-organization) and want your Hugging Face username to be granted the `owner` role. + +In summary, when setting up a Space: +!!! info "Creating a Space under your personal account" + If you are creating the Space under your personal account, **don't insert any value for `USERNAME` and `PASSWORD`**. Once you launch the Space you will be able to Sign in with your Hugging Face username and the `owner` role. + +!!! info "Creating a Space under an organization" + If you are creating the Space under an organization **make sure to insert your Hugging Face username in the secret `USERNAME`**. In this way, you'll be able to Sign in with your Hugging Face user. \ No newline at end of file diff --git a/argilla/docs/getting_started/how-to-deploy-argilla-with-docker.md b/argilla/docs/getting_started/how-to-deploy-argilla-with-docker.md new file mode 100644 index 0000000000..16c40ef2c2 --- /dev/null +++ b/argilla/docs/getting_started/how-to-deploy-argilla-with-docker.md @@ -0,0 +1,39 @@ +--- +description: Deploy Argilla with Docker +--- +This guide describes how to deploy the Argilla Server with `docker compose`. This is useful if you want to deploy Argilla locally, and/or have full control over the configuration the server, database, and search engine (Elasticsearch). + +First, you need to install `docker` on your machine and make sure you can run `docker compose`. + +Then, create a folder (you can modify the folder name): + +```console +mkdir argilla && cd argilla +``` + +Download `docker-compose.yaml`: + +```console +wget -O docker-compose.yaml https://raw.githubusercontent.com/argilla-io/argilla/main/examples/deployments/docker/docker-compose.yaml +``` + +or using curl: +```console +curl https://raw.githubusercontent.com/argilla-io/argilla/main/examples/deployments/docker/docker-compose.yaml -o docker-compose.yaml +``` + +Run to deploy the server on `http://localhost:6900`: + +```console +docker compose up -d +``` + +Once is completed, go to this URL with your browser: [http://localhost:6900](http://localhost:6900) and you should see the Argilla login page. + +If it's not available, check the logs: + +```console +docker compose logs -f +``` + +Most of the deployment issues are related to ElasticSearch. [Join Hugging Face Discord's server](http://hf.co/join/discord) and ask for support on the Argilla channel. diff --git a/argilla/docs/getting_started/installation.md b/argilla/docs/getting_started/installation.md index 20b8205304..c418835478 100644 --- a/argilla/docs/getting_started/installation.md +++ b/argilla/docs/getting_started/installation.md @@ -16,11 +16,8 @@ If you have already deployed Argilla Server, you can skip this step. Otherwise, * Using a [HF Space](https://huggingface.co/new-space?template=argilla/argilla-template-space). -* Locally with Docker. +* [Locally with Docker](./how-to-deploy-argilla-with-docker.md). -```console -docker run -d --name quickstart -p 6900:6900 argilla/argilla-quickstart:v2.0.0rc2 -``` ## Connect to the Argilla server diff --git a/argilla/docs/getting_started/quickstart.md b/argilla/docs/getting_started/quickstart.md index fec80fa534..08054958c5 100644 --- a/argilla/docs/getting_started/quickstart.md +++ b/argilla/docs/getting_started/quickstart.md @@ -1,50 +1,72 @@ --- -description: Quickstart of Argilla on how to create your first dataset. +description: Get started with Argilla in less 10 minutes --- # Quickstart -This guide provides a quick overview of the Argilla SDK and how to create your first dataset. +Argilla is a free, open-source, self-hosted tool. This means you need to deploy its UI to start using it. There is two main ways to deploy Argilla: -## Set up your Argilla project +!!! huggingface "Deploy on the Hugging Face Hub" -### Run the Argilla server + The **recommended choice to get started**. You can get up and running in under 5 minutes and don't need to maintain a server or run any commands. -If you have already deployed Argilla Server, you can skip this step. Otherwise, you can quickly deploy it in two different ways: + If you're just getting started with Argilla, click the deploy button below: -* Remotely using a [HF Space](https://huggingface.co/new-space?template=argilla/argilla-template-space). Check out the [full guide](huggingface-spaces.md) for a more detailed configuration. + + You can use the default values following these steps: -* Locally using Docker. + - Leave the default Space owner (your personal account) + - Leave `USERNAME` and `PASSWORD` secrets empty since you'll sign in with your HF user as the Argilla Space `owner`. + - Click create Space to launch Argilla 🚀. + - Once you see the Argilla UI, [go to the Sign in into the Argilla UI section](#sign-in-into-the-argilla-ui). If you see the `Building` message for longer than 2-3 min refresh the page. -```console -docker run -d --name quickstart -p 6900:6900 argilla/argilla-quickstart:v2.0.0rc2 -``` + !!! warning "Persistent storage `SMALL`" + Not setting persistent storage to `SMALL` means that **you will loose your data when the Space restarts**. Spaces get restarted due to maintainance, inactivity, and every time you change your Spaces settings. If you want to **use the Space just for testing** you can use `FREE` temporarily. + If you want to deploy Argilla within a Hugging Face organization, setup a more stable Space, or understand the settings, [check out the HF Spaces settings guide](how-to-configure-argilla-on-huggingface.md). + +!!! docker "Deploy with Docker" + If you want to **run Argilla locally on your machine or a server**, or tune the server configuration, choose this option. To use this option, [check this guide](how-to-deploy-argilla-with-docker.md). + +## Sign in into the Argilla UI +If everything went well, you should see the Argilla sign in page that looks like this: + +![Focus view](../assets/images/getting_started/signin-hf-page.png){ width=100% height=100% } + +!!! info "Building errors" + If you get a build error, sometimes restarting the Space from the Settings page works, otherwise [check the HF Spaces settings guide](how-to-configure-argilla-on-huggingface.md). -After succesfully running this step, you should be able to see Argilla's UI sign in page (e.g., at the URL https://localhost:6900 if you ran the local Docker option). -!!! tip "Default user credentials to log into the UI" +In the sign in page: +======= - This type of deployment automatically sets up some default users for you. Check [this guide](../how_to_guides/user.md) to log in for the first time in the UI. +1. Click on **Sign in with Hugging Face** +2. **Authorize the application** and you will be logged in into Argilla as an `owner`. -### Install the SDK with pip +!!! info "Unauthorized error" + Sometimes, after authorizing you'll see an unauthorized error, and get redirected to the sign in page. Typically, clicking the Sign in button solves the issue. -To manage users, workspaces and datasets in Argilla, you need to use the Argilla Python SDK. You can install it with pip as follows: +Congrats! Your Argilla server is ready to start your first project using the Python SDK. You now have full rights to create datasets. Follow the instructions in the home page, or keep reading this guide if you want a more detailed explanation. + +## Install the Python SDK + +To manage workspaces and datasets in Argilla, you need to use the Argilla Python SDK. You can install it with pip as follows: ```console pip install argilla ``` -### Connect to the Argilla server - -Get your ``: +## Create your first dataset +For getting started with Argilla and its SDK, we recommend to use Jupyter Notebook or Google Colab. -* If you are using Hugging Face Spaces, the URL should be constructed as follows: `https://[your-owner-name]-[your_space_name].hf.space` -* If you are using Docker, the URL is the URL shown in your browser (by default `http://localhost:6900`) +To start interacting with your Argilla server, you need to create a instantiate a client with an API key and API URL: -Get your `` in `My Settings` in the Argilla UI (by default `owner.apikey`). +- The `` is in the `My Settings` page of your Argilla Space. -!!! note - Make sure to replace `` and `` with your actual values. If you are using a private Hugging Face Space, you need to specify your `HF_TOKEN` which can be found [here](https://huggingface.co/settings/tokens). +- The `` is the URL shown in your browser if it ends with `*.hf.space`. ```python import argilla as rg @@ -52,13 +74,18 @@ import argilla as rg client = rg.Argilla( api_url="", api_key="" - # headers={"Authorization": f"Bearer {HF_TOKEN}"} ) ``` +!!! info "You can't find your API URL" + If you're using Spaces, sometimes the Argilla UI is embedded into the Hub UI so the URL of the browser won't match the API URL. In these scenarios, there are two options: + 1. Click on the three points menu at the top of the Space, select "Embed this Space", and open the direct URL. + 2. Use this pattern: `https://[your-owner-name]-[your_space_name].hf.space`. + + ## Create your first dataset -To create a dataset with a simple text classification task, first, you need to define the dataset settings. +To create a dataset with a simple text classification task, first, you need to **define the dataset settings**. ```python settings = rg.Settings( @@ -80,44 +107,38 @@ settings = rg.Settings( ) ``` -Now you can create the dataset with the settings you defined. Publish the dataset to make it available in the UI and add the records. +Now you can **create the dataset with these settings**. Publish the dataset to make it available in the UI and add the records. + +!!! info "About workspaces" + Workspaces in Argilla group datasets and user access rights. The `workspace` parameter is optional in this case. If you don't specify it, the dataset will be created in the default workspace `argilla`. -!!! note - The `workspace` parameter is optional. If you don't specify it, the dataset will be created in the default workspace `admin`. + By default, **this workspace will be visible to users joining with the Sign in with Hugging Face button**. You can create other workspaces and decide to grant access to users either with the SDK or the [changing the OAuth configuration](getting_started/how-to-configure-argilla-on-huggingface.md). ```python dataset = rg.Dataset( name=f"my_first_dataset", settings=settings, client=client, + #workspace="argilla" ) dataset.create() ``` -## Add records to your dataset - -Retrieve the data to be added to the dataset. We will use the IMDB dataset from the Hugging Face Datasets library. - -```python -pip install -qqq datasets -``` +Now you can **add records to your dataset**. We will use the IMDB dataset from the Hugging Face Datasets library as an example. The `mapping` parameter indicates which keys/columns in the source dataset correspond to the Argilla dataset fields. ```python from datasets import load_dataset data = load_dataset("imdb", split="train[:100]").to_list() -``` - -Now you can add the data to your dataset. Use a `mapping` to indicate which keys/columns in the source data correspond to the Argilla dataset fields. -```python dataset.records.log(records=data, mapping={"text": "review"}) ``` 🎉 You have successfully created your first dataset with Argilla. You can now access it in the Argilla UI and start annotating the records. -## More references +## Next steps +- To learn how to create your datasets, workspace, and manage users, check the [how-to guides](../how_to_guides/index.md). + +- To learn Argilla with hands-on examples, check the [Tutorials section](../tutorials/index.md). -* [Installation guide](installation.md) -* [How-to guides](../how_to_guides/index.md) -* [API reference](../reference//argilla/client.md) +- To further configure your Argilla Space, check the [Hugging Face Spaces settings guide](how-to-configure-argilla-on-huggingface.md). \ No newline at end of file diff --git a/argilla/docs/index.md b/argilla/docs/index.md index c92b2abaa0..6771e036e8 100644 --- a/argilla/docs/index.md +++ b/argilla/docs/index.md @@ -1,17 +1,13 @@ --- -description: Argilla is a collaboration tool for AI engineers and domain experts who need to build high-quality datasets for their projects. +description: Argilla is a collaboration tool for AI engineers and domain experts to build high-quality datasets. hide: navigation --- -# Welcome to Argilla 2.x +# Welcome to Argilla -Argilla is a collaboration tool for AI engineers and domain experts who need to build high-quality datasets for their projects. +Argilla is a **collaboration tool for AI engineers and domain experts** to build high-quality datasets. -!!! INFO "Looking for Argilla 1.x?" - Looking for documentation for Argilla 1.x? Visit [the latest release](https://docs.argilla.io/en/latest/). - -!!! NOTE "Migrate to Argilla 2.x" - Want to learn how to migrate from Argilla 1.x to 2.x? Take a look at our dedicated [Migration Guide](how_to_guides/migrate_from_legacy_datasets.md). +To get started:
@@ -19,7 +15,7 @@ Argilla is a collaboration tool for AI engineers and domain experts who need to --- - Install `argilla` with `pip` and deploy a `Docker` locally or for free on Hugging Face to get up and running in minutes. + Deploy Argilla for free on the Hugging Face Hub or with `Docker`. Install the Python SDK with `pip` and create your first project. [:octicons-arrow-right-24: Quickstart](getting_started/quickstart.md) @@ -27,22 +23,41 @@ Argilla is a collaboration tool for AI engineers and domain experts who need to --- - Get familiar with basic and advanced workflows for Argilla. Learn how to manage `Users`, `Workspaces`, `Datasets`, and `Records` to set up your data annotation projects. + Get familiar with the basic workflows of Argilla. Learn how to manage `Users`, `Workspaces`, `Datasets`, and `Records` to set up your data annotation projects. [:octicons-arrow-right-24: Learn more](how_to_guides/index.md)
+Or, play with the Argilla UI by signing in with your Hugging Face account: + +
+ +
+ + +!!! INFO "Looking for Argilla 1.x?" + Looking for documentation for Argilla 1.x? Visit [the latest release](https://docs.argilla.io/en/latest/). + +!!! NOTE "Migrate to Argilla 2.x" + Want to learn how to migrate from Argilla 1.x to 2.x? Take a look at our dedicated [Migration Guide](how_to_guides/migrate_from_legacy_datasets.md). + ## Why use Argilla? -Argilla can be used for collecting human feedback for a wide variety of AI projects like traditional NLP (text classification, NER, etc.), LLMs (RAG, preference tuning, etc.), or multimodal models (text to image, etc.). Argilla's programmatic approach lets you build workflows for continuous evaluation and model improvement. The goal of Argilla is to ensure your data work pays off by quickly iterating on the right data and models. +Argilla can be used for collecting human feedback for a wide variety of AI projects like traditional NLP (text classification, NER, etc.), LLMs (RAG, preference tuning, etc.), or multimodal models (text to image, etc.). +Argilla's programmatic approach lets you build workflows for continuous evaluation and model improvement. The goal of Argilla is to ensure **your data work pays off by quickly iterating on the right data and models**.

Improve your AI output quality through data quality

-Compute is expensive and output quality is important. We help you focus on data, which tackles the root cause of both of these problems at once. Argilla helps you to **achieve and keep high-quality standards** for your data. This means you can improve the quality of your AI output. +Compute is expensive and output quality is important. We help you focus on data, which tackles the root cause of both of these problems at once. Argilla helps you to **achieve and keep high-quality standards** for your data. This means you can improve the quality of your AI outputs.

Take control of your data and models

@@ -57,15 +72,15 @@ Gathering data is a time-consuming process. Argilla helps by providing a tool th

Datasets and models

-The community uses Argilla to create amazing open-source [datasets](https://huggingface.co/datasets?library=library:argilla&sort=trending) and [models](https://huggingface.co/models?other=distilabel). +Argilla is a tool that can be used to achieve and keep **high-quality data standards** with a **focus on NLP and LLMs**. The community uses Argilla to create amazing open-source [datasets](https://huggingface.co/datasets?other=argilla) and [models](https://huggingface.co/models?other=distilabel), and **we love contributions to open-source** too. -- [Cleaned UltraFeedback dataset](https://huggingface.co/datasets/argilla/ultrafeedback-binarized-preferences-cleaned) used to fine-tune the [Notus](https://huggingface.co/argilla/notus-7b-v1) and [Notux](https://huggingface.co/argilla/notux-8x7b-v1) models. The original UltraFeedback dataset was curated using Argilla UI filters to find and report a bug in the original data generation code. Based on this data curation process, Argilla built this new version of the UltraFeedback dataset and fine-tuned Notus, outperforming Zephyr on several benchmarks. -- [distilabeled Intel Orca DPO dataset](https://huggingface.co/datasets/argilla/distilabel-intel-orca-dpo-pairs) used to fine-tune the [improved OpenHermes model](https://huggingface.co/argilla/distilabeled-OpenHermes-2.5-Mistral-7B). This dataset was built by combining human curation in Argilla with AI feedback from distilabel, leading to an improved version of the Intel Orca dataset and outperforming models fine-tuned on the original dataset. +- [cleaned UltraFeedback dataset](https://huggingface.co/datasets/argilla/ultrafeedback-binarized-preferences-cleaned) and the [Notus](https://huggingface.co/argilla/notus-7b-v1) and [Notux](https://huggingface.co/argilla/notux-8x7b-v1) models, where we improved benchmark and empirical human judgment for the Mistral and Mixtral models with cleaner data using **human feedback**. +- [distilabeled Intel Orca DPO dataset](https://huggingface.co/datasets/argilla/distilabel-intel-orca-dpo-pairs) and the [improved OpenHermes model](https://huggingface.co/argilla/distilabeled-OpenHermes-2.5-Mistral-7B), show how we improve model performance by filtering out 50% of the original dataset through **human and AI feedback**.

Projects and pipelines

-AI teams from companies like [the Red Cross](https://510.global/), [Loris.ai](https://loris.ai/) and [Prolific](https://www.prolific.com/) use Argilla to improve the quality and efficiency of AI projects. They shared their experiences in our [AI community meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB). +AI teams from companies like [the Red Cross](https://510.global/), [Loris.ai](https://loris.ai/) and [Prolific](https://www.prolific.com/) use Argilla to **improve the quality and efficiency of AI** projects. They shared their experiences in the [AI community meetup](https://lu.ma/embed-checkout/evt-IQtRiSuXZCIW6FB). -- AI for good: [the Red Cross presentation](https://youtu.be/ZsCqrAhzkFU?feature=shared) showcases how the Red Cross domain experts and AI team collaborated by classifying and redirecting requests from refugees of the Ukrainian crisis to streamline the support processes of the Red Cross. -- Customer support: during [the Loris meetup](https://youtu.be/jWrtgf2w4VU?feature=shared) they showed how their AI team uses unsupervised and few-shot contrastive learning to help them quickly validate and gain labelled samples for a huge amount of multi-label classifiers. -- Research studies: [the showcase from Prolific](https://youtu.be/ePDlhIxnuAs?feature=shared) announced their integration with our platform. They use it to actively distribute data collection projects among their annotating workforce. This allows Prolific to quickly and efficiently collect high-quality data for research studies. +- AI for good: [the Red Cross presentation](https://youtu.be/ZsCqrAhzkFU?feature=shared) showcases **how their experts and AI team collaborate** by classifying and redirecting requests from refugees of the Ukrainian crisis to streamline the support processes of the Red Cross. +- Customer support: during [the Loris meetup](https://youtu.be/jWrtgf2w4VU?feature=shared) they showed how their AI team uses unsupervised and few-shot contrastive learning to help them **quickly validate and gain labelled samples for a huge amount of multi-label classifiers**. +- Research studies: [the showcase from Prolific](https://youtu.be/ePDlhIxnuAs?feature=shared) announced their integration with Argilla. They use it to actively **distribute data collection projects** among their annotating workforce. This allows them to quickly and **efficiently collect high-quality data** for their research studies. \ No newline at end of file diff --git a/argilla/docs/stylesheets/extra.css b/argilla/docs/stylesheets/extra.css index 9f9a792feb..c864e7eb9c 100644 --- a/argilla/docs/stylesheets/extra.css +++ b/argilla/docs/stylesheets/extra.css @@ -1,29 +1,104 @@ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..600&display=swap'); :root { - --md-text-font: "Inter"; + --md-text-font: "Inter"; + --md-admonition-icon--huggingface: url("../assets/images/huggingface-mark.svg"); + --md-admonition-icon--docker: url("../assets/images/docker-mark-blue.svg"); + --iframe-scale-factor: 0.75 } [data-md-color-scheme="default"] { - --md-typeset-a-code-color: var(--md-default-fg-color--light); - --md-accent-typeset-a-code-color: var(--md-default-fg-color--lighter); - --md-typeset-a-color: #5859c0; - --md-accent-fg-color: #6366fa; + --md-typeset-a-code-color: var(--md-default-fg-color--light); + --md-accent-typeset-a-code-color: var(--md-default-fg-color--lighter); + --md-typeset-a-color: #5859c0; + --md-accent-fg-color: #6366fa; + --md-huggingface-fg-color: #fcf1c7; + --md-huggingface-accent-color: #FFD21E; + --md-docker-fg-color: #c7e4fc; + --md-docker-accent-color: #1e5eff; } [data-md-color-scheme="slate"] { - --md-primary-fg-color: hsla(var(--md-hue), 15%, 9%, 1); - --md-primary-fg-color--dark: hsla(var(--md-hue), 15%, 9%, 1); - --md-typeset-a-code-color: var(--md-accent-bg-color); - --md-accent-typeset-a-code-color: var(--md-default-fg-color); - --md-typeset-a-color: #8384cc; - --md-accent-fg-color: #7f81f3; + --md-primary-fg-color: hsla(var(--md-hue), 15%, 9%, 1); + --md-primary-fg-color--dark: hsla(var(--md-hue), 15%, 9%, 1); + --md-typeset-a-code-color: var(--md-accent-bg-color); + --md-accent-typeset-a-code-color: var(--md-default-fg-color); + --md-typeset-a-color: #8384cc; + --md-accent-fg-color: #7f81f3; + --md-huggingface-fg-color: #FFD21E30; + --md-huggingface-accent-color: #FFD21E; + --md-docker-fg-color: #1e5eff30; + --md-docker-accent-color: #1e5eff; } .md-typeset a code { - color: var(--md-typeset-a-code-color); + color: var(--md-typeset-a-code-color); } .md-typeset a:hover code { - color: var(--md-accent-typeset-a-code-color); + color: var(--md-accent-typeset-a-code-color); +} + +.md-typeset .admonition.huggingface, +.md-typeset details.huggingface { + border-color: var(--md-huggingface-accent-color); + font-size: 100%; +} + +.md-typeset .huggingface>.admonition-title, +.md-typeset .huggingface>summary { + background-color: var(--md-huggingface-fg-color); + font-size: 0.9rem; + padding-left: 2.4rem; +} + + +.md-typeset .admonition.docker, +.md-typeset details.docker { + border-color: var(--md-docker-accent-color); +} + +.md-typeset .docker>.admonition-title, +.md-typeset .docker>summary { + background-color: var(--md-docker-fg-color); +} + +.md-typeset .admonition.huggingface>.admonition-title::before, +.md-typeset .admonition.docker>.admonition-title::before { + content: ""; + display: inline-block; + margin-right: 8px; + background-size: contain; + background-repeat: no-repeat; + background-position: center; + -webkit-mask-image: none; + /* Remove any mask image */ + mask-image: none; + /* Remove any mask image */ + background-color: transparent; + /* Ensure background color is transparent */ +} + +.md-typeset .admonition.huggingface>.admonition-title::before { + width: 24px; + height: 24px; + background-image: var(--md-admonition-icon--huggingface); +} + +.md-typeset .admonition.docker>.admonition-title::before { + background-image: var(--md-admonition-icon--docker); +} + +@media screen and (min-width: 45em) { + .iframe-wrapper { + height: 650px; + } + + .iframe-wrapper iframe { + transform: scale(var(--iframe-scale-factor)); + width: calc(1/var(--iframe-scale-factor) * 100%) !important; + max-width: calc(1/var(--iframe-scale-factor) * 100%) !important; + height: calc(1/var(--iframe-scale-factor) * 650px); + transform-origin: left top; + } } \ No newline at end of file diff --git a/argilla/mkdocs.yml b/argilla/mkdocs.yml index 9fc8a01cb5..47cb31682b 100644 --- a/argilla/mkdocs.yml +++ b/argilla/mkdocs.yml @@ -2,7 +2,7 @@ site_name: Argilla Docs site_url: https://argilla-io.github.io/argilla/ site_author: Argilla, Inc. -site_description: The Argilla python server SDK +site_description: Data-centric tool for AI builders copyright: Copyright © 2017 - 2024 Argilla # Repository @@ -131,8 +131,8 @@ nav: - Argilla: index.md - Getting started: - Quickstart: getting_started/quickstart.md - - Installation: getting_started/installation.md - - Set up in Hugging Face Spaces: getting_started/huggingface-spaces.md + - Deploy with Docker: getting_started/how-to-deploy-argilla-with-docker.md + - Hugging Face Spaces settings: getting_started/how-to-configure-argilla-on-huggingface.md - FAQ: getting_started/faq.md - How-to guides: - how_to_guides/index.md diff --git a/examples/deployments/docker/docker-compose.yaml b/examples/deployments/docker/docker-compose.yaml index 923cae49db..934f1f978e 100644 --- a/examples/deployments/docker/docker-compose.yaml +++ b/examples/deployments/docker/docker-compose.yaml @@ -1,7 +1,4 @@ -version: "3.9" - services: - argilla: image: argilla/argilla-server:latest restart: unless-stopped @@ -10,24 +7,22 @@ services: environment: ARGILLA_HOME_PATH: /var/lib/argilla ARGILLA_ELASTICSEARCH: http://elasticsearch:9200 - ARGILLA_AUTH_SECRET_KEY: ${ARGILLA_AUTH_SECRET_KEY:? Please generate a 32 character random string with `openssl rand -hex 32`} - # ARGILLA_ENABLE_TELEMETRY: 0 # Opt-out for telemetry https://docs.argilla.io/en/latest/reference/telemetry.html + # Opt-out for telemetry https://docs.argilla.io/en/latest/reference/telemetry.html + # ARGILLA_ENABLE_TELEMETRY: 0 - # Set user configuration https://docs.argilla.io/en/latest/getting_started/installation/configurations/user_management.html - # ARGILLA_LOCAL_AUTH_USERS_DB_FILE: /config/.users.yaml - # volumes: - #- ${PWD}/.users.yaml:/config/.users.yaml + USERNAME: argilla + PASSWORD: 12345678 + API_KEY: argilla.apikey + # REINDEX_DATASETS: 1 # Uncomment this line to reindex Argilla datasets into the search engine when starting up - # DEFAULT_USER_ENABLED: false # Uncomment this line to disable the creation of the default user - # DEFAULT_USER_PASSWORD: custom-password # Uncomment this line to set a custom password for the default user - # DEFAULT_USER_API_KEY: custom-api-key # Uncomment this line to set a custom api-key for the default user networks: - argilla volumes: # ARGILLA_HOME_PATH is used to define where Argilla will save it's application data. # If you change ARGILLA_HOME_PATH value please copy that same value to argilladata volume too. - argilladata:/var/lib/argilla + elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.12.2 environment: @@ -36,7 +31,7 @@ services: - discovery.type=single-node - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - cluster.routing.allocation.disk.threshold_enabled=false - #- xpack.security.enabled=false + - xpack.security.enabled=false ulimits: memlock: soft: -1 @@ -48,19 +43,11 @@ services: - "9300:9300" volumes: - elasticdata:/usr/share/elasticsearch/data/ - kibana: - image: docker.elastic.co/kibana/kibana:8.12.2 - ports: - - "5601:5601" - environment: - ELASTICSEARCH_URL: http://elasticsearch:9200 - ELASTICSEARCH_HOSTS: '["http://elasticsearch:9200"]' - networks: - - argilla networks: argilla: driver: bridge + volumes: argilladata: elasticdata: diff --git a/examples/deployments/docker/nginx/docker-compose.yaml b/examples/deployments/docker/nginx/docker-compose.yaml index 6c2d9b8f61..329f306b1f 100644 --- a/examples/deployments/docker/nginx/docker-compose.yaml +++ b/examples/deployments/docker/nginx/docker-compose.yaml @@ -10,10 +10,13 @@ services: - ./nginx.conf:/etc/nginx/nginx.conf:ro argilla: - image: argilla/argilla-quickstart:latest + image: argilla/argilla-hf-spaces:latest environment: ARGILLA_ENABLE_TELEMETRY: 0 ARGILLA_BASE_URL: /argilla - ARGILLA_AUTH_SECRET_KEY: ${ARGILLA_AUTH_SECRET_KEY:? Please generate a 32 character random string with `openssl rand -hex 32`} + + USERNAME: argilla + PASSWORD: 12345678 + API_KEY: argilla.apikey ports: - "6900:6900" diff --git a/examples/deployments/docker/traefik/docker-compose.yaml b/examples/deployments/docker/traefik/docker-compose.yaml index d699561035..8e37e91bcc 100644 --- a/examples/deployments/docker/traefik/docker-compose.yaml +++ b/examples/deployments/docker/traefik/docker-compose.yaml @@ -17,11 +17,13 @@ services: - "/var/run/docker.sock:/var/run/docker.sock:ro" argilla: - image: argilla/argilla-quickstart:latest + image: argilla/argilla-hf-spaces:latest environment: ARGILLA_ENABLE_TELEMETRY: 0 ARGILLA_BASE_URL: /argilla - ARGILLA_AUTH_SECRET_KEY: ${ARGILLA_AUTH_SECRET_KEY:? Please generate a 32 character random string with `openssl rand -hex 32`} + USERNAME: argilla + PASSWORD: 12345678 + API_KEY: argilla.apikey labels: - "traefik.enable=true" - "traefik.http.routers.argilla.rule=PathPrefix(`/argilla/`)" From 1c7ed11988b7013f6c4516d309b897d7a6bb8011 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Francisco=20Calvo?= Date: Tue, 30 Jul 2024 11:49:54 +0200 Subject: [PATCH 05/14] chore: update CHANGELOG.md files for v2.0.0 --- argilla-server/CHANGELOG.md | 2 ++ argilla/CHANGELOG.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/argilla-server/CHANGELOG.md b/argilla-server/CHANGELOG.md index a1c6037986..00892d1264 100644 --- a/argilla-server/CHANGELOG.md +++ b/argilla-server/CHANGELOG.md @@ -16,6 +16,8 @@ These are the section headers that we use: ## [Unreleased]() +## [2.0.0](https://github.com/argilla-io/argilla/compare/v2.0.0rc1...v2.0.0) + > [!IMPORTANT] > This version includes changes related to the search index. So, a reindex is needed. diff --git a/argilla/CHANGELOG.md b/argilla/CHANGELOG.md index e37bc8f4f2..6e6a2ca30e 100644 --- a/argilla/CHANGELOG.md +++ b/argilla/CHANGELOG.md @@ -14,7 +14,7 @@ These are the section headers that we use: * "Security" in case of vulnerabilities. --> -## [2.0.0rc1](https://github.com/argilla-io/argilla/compare/v1.29.0...v2.0.0rc) +## [2.0.0rc1](https://github.com/argilla-io/argilla/compare/v1.29.0...v2.0.0rc1) > [!NOTE] > This release for 2.0.0rc1 does not contain any changelog entries because it is the first release candidate for the 2.0.0 version. The following versions will contain the changelog entries again. For a general overview of the changes in the 2.0.0 version, please refer to [our blog](https://argilla.io/blog/) or [our new documentation](https://argilla-io.github.io/argilla/latest). From a23972c57e782850c4305fc0d7d74471e8518788 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Francisco=20Calvo?= Date: Tue, 30 Jul 2024 12:12:58 +0200 Subject: [PATCH 06/14] chore: update CHANGELOG.md for argilla SDK with missing description --- argilla/CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/argilla/CHANGELOG.md b/argilla/CHANGELOG.md index 6e6a2ca30e..4ce98feb6c 100644 --- a/argilla/CHANGELOG.md +++ b/argilla/CHANGELOG.md @@ -14,6 +14,12 @@ These are the section headers that we use: * "Security" in case of vulnerabilities. --> +## [Unreleased]() + +## [2.0.0](https://github.com/argilla-io/argilla/compare/v2.0.0rc1...v2.0.0) + +TBD + ## [2.0.0rc1](https://github.com/argilla-io/argilla/compare/v1.29.0...v2.0.0rc1) > [!NOTE] From dcba91d3a3aafdb843e140cdd44c62d2fb0c5fd8 Mon Sep 17 00:00:00 2001 From: burtenshaw Date: Tue, 30 Jul 2024 12:51:32 +0200 Subject: [PATCH 07/14] Update CHANGELOG.md with 2.0.0 changes --- argilla/CHANGELOG.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/argilla/CHANGELOG.md b/argilla/CHANGELOG.md index 4ce98feb6c..89583176d0 100644 --- a/argilla/CHANGELOG.md +++ b/argilla/CHANGELOG.md @@ -18,7 +18,13 @@ These are the section headers that we use: ## [2.0.0](https://github.com/argilla-io/argilla/compare/v2.0.0rc1...v2.0.0) -TBD +- Added core class refactors. For an overview, see [this blog post](https://argilla.io/blog/introducing-argilla-new-sdk/) +- Added `rg.Argilla` class to interact with Argilla server. +- Added `TaskDistribution` to define distribution of records to users . +- Added new [documentation site](docs.argilla.io) and structure and migrated [legacy documentation](http://docs.v1.argilla.io/). +- Changed `FeedbackDataset` to `Dataset`. +- Deprecated task specific dataset classes like `TextClassification` and `TokenClassification`. To migrate legacy datasets to `rg.Dataset` class, see the [how-to-guide](https://docs.v2.argilla.io/dev/how_to_guides/migrate_from_legacy_datasets/). +- Deprecated use case extensions like `listeners` and `ArgillaTrainer`. ## [2.0.0rc1](https://github.com/argilla-io/argilla/compare/v1.29.0...v2.0.0rc1) From 3f84a0cda32dc9fbbb7683a37816815f56a0e8ae Mon Sep 17 00:00:00 2001 From: burtenshaw Date: Tue, 30 Jul 2024 13:18:33 +0200 Subject: [PATCH 08/14] chore: add structure to CHANGELOG.md --- argilla/CHANGELOG.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/argilla/CHANGELOG.md b/argilla/CHANGELOG.md index 89583176d0..413ea750c7 100644 --- a/argilla/CHANGELOG.md +++ b/argilla/CHANGELOG.md @@ -18,11 +18,19 @@ These are the section headers that we use: ## [2.0.0](https://github.com/argilla-io/argilla/compare/v2.0.0rc1...v2.0.0) +### Added + - Added core class refactors. For an overview, see [this blog post](https://argilla.io/blog/introducing-argilla-new-sdk/) -- Added `rg.Argilla` class to interact with Argilla server. - Added `TaskDistribution` to define distribution of records to users . - Added new [documentation site](docs.argilla.io) and structure and migrated [legacy documentation](http://docs.v1.argilla.io/). + +### Changed + - Changed `FeedbackDataset` to `Dataset`. +- Changed `rg.init` into `rg.Argilla` class to interact with Argilla server. + +### Deprecated + - Deprecated task specific dataset classes like `TextClassification` and `TokenClassification`. To migrate legacy datasets to `rg.Dataset` class, see the [how-to-guide](https://docs.v2.argilla.io/dev/how_to_guides/migrate_from_legacy_datasets/). - Deprecated use case extensions like `listeners` and `ArgillaTrainer`. From 336d0c470d6a5c3dd87d2501f64dd791b6e7d236 Mon Sep 17 00:00:00 2001 From: Paco Aranda Date: Tue, 30 Jul 2024 15:15:17 +0200 Subject: [PATCH 09/14] [CI] `argilla-server`: configure the `latest` tag when releasing (#5340) # Description This PR defines the `publis_latest` when the workflow runs on `main`. For `dev` builds, the latest release will be always created. **Type of change** - Improvement (change adding some improvement to an existing functionality) **How Has This Been Tested** **Checklist** - I added relevant documentation - I followed the style guidelines of this project - I did a self-review of my code - I made corresponding changes to the documentation - I confirm My changes generate no new warnings - I have added tests that prove my fix is effective or that my feature works - I have added relevant notes to the CHANGELOG.md file (See https://keepachangelog.com/) --- .../argilla-server.build-docker-images.yml | 43 ++++++++++--------- .github/workflows/argilla-server.yml | 2 +- 2 files changed, 24 insertions(+), 21 deletions(-) diff --git a/.github/workflows/argilla-server.build-docker-images.yml b/.github/workflows/argilla-server.build-docker-images.yml index b680abfb5e..7e2604f1f8 100644 --- a/.github/workflows/argilla-server.build-docker-images.yml +++ b/.github/workflows/argilla-server.build-docker-images.yml @@ -52,6 +52,7 @@ jobs: echo "HF_SPACES_DOCKER_IMAGE=argilla/argilla-hf-spaces" >> $GITHUB_ENV echo "DOCKER_USERNAME=$DOCKER_USERNAME" >> $GITHUB_ENV echo "DOCKER_PASSWORD=$DOCKER_PASSWORD" >> $GITHUB_ENV + echo "PUBLISH_LATEST=$PUBLISH_LATEST" >> $GITHUB_ENV else echo "PLATFORMS=linux/amd64" >> $GITHUB_ENV echo "IMAGE_TAG=$DOCKER_IMAGE_TAG" >> $GITHUB_ENV @@ -59,9 +60,11 @@ jobs: echo "HF_SPACES_DOCKER_IMAGE=argilladev/argilla-hf-spaces" >> $GITHUB_ENV echo "DOCKER_USERNAME=$DOCKER_USERNAME_DEV" >> $GITHUB_ENV echo "DOCKER_PASSWORD=$DOCKER_PASSWORD_DEV" >> $GITHUB_ENV + echo "PUBLISH_LATEST=true" >> $GITHUB_ENV fi env: IS_RELEASE: ${{ inputs.is_release }} + PUBLISH_LATEST: ${{ inputs.publish_latest }} PACKAGE_VERSION: ${{ steps.package-info.outputs.PACKAGE_VERSION }} DOCKER_IMAGE_TAG: ${{ steps.docker-image-tag-from-ref.outputs.docker-image-tag }} DOCKER_USERNAME: ${{ secrets.AR_DOCKER_USERNAME }} @@ -98,7 +101,7 @@ jobs: push: true - name: Push latest `argilla-server` image - if: ${{ inputs.is_release && inputs.publish_latest }} + if: ${{ env.PUBLISH_LATEST == 'true' }} uses: docker/build-push-action@v5 with: context: argilla-server/docker/server @@ -120,7 +123,7 @@ jobs: push: true - name: Push latest `argilla-hf-spaces` image - if: ${{ inputs.is_release && inputs.publish_latest }} + if: ${{ env.PUBLISH_LATEST == 'true' }} uses: docker/build-push-action@v5 with: context: argilla-server/docker/argilla-hf-spaces @@ -131,21 +134,21 @@ jobs: ARGILLA_SERVER_IMAGE=${{ env.SERVER_DOCKER_IMAGE }} ARGILLA_VERSION=${{ env.IMAGE_TAG }} push: true - - - name: Docker Hub Description for `argilla-server` - uses: peter-evans/dockerhub-description@v4 - if: ${{ inputs.is_release && inputs.publish_latest }} - with: - username: ${{ env.DOCKER_USERNAME }} - password: ${{ env.DOCKER_PASSWORD }} - repository: $${{ env.SERVER_DOCKER_IMAGE }} - readme-filepath: argilla-server/docker/server/README.md - - - name: Docker Hub Description for `argilla-hf-spaces` - uses: peter-evans/dockerhub-description@v4 - if: ${{ inputs.is_release && inputs.publish_latest }} - with: - username: ${{ secrets.AR_DOCKER_USERNAME }} - password: ${{ secrets.AR_DOCKER_PASSWORD }} - repository: $${{ env.HF_SPACES_DOCKER_IMAGE }} - readme-filepath: argilla-server/docker/argilla-hf-spaces/README.md + # TODO: uncomment this once the step works again + # - name: Docker Hub Description for `argilla-server` + # uses: peter-evans/dockerhub-description@v4 + # if: ${{ env.PUBLISH_LATEST == 'true' }} + # with: + # username: ${{ env.DOCKER_USERNAME }} + # password: ${{ env.DOCKER_PASSWORD }} + # repository: $${{ env.SERVER_DOCKER_IMAGE }} + # readme-filepath: argilla-server/docker/server/README.md + # TODO: uncomment this once the step works again + # - name: Docker Hub Description for `argilla-hf-spaces` + # uses: peter-evans/dockerhub-description@v4 + # if: ${{ env.PUBLISH_LATEST == 'true' }} + # with: + # username: ${{ env.DOCKER_USERNAME }} + # password: ${{ env.DOCKER_PASSWORD }} + # repository: $${{ env.HF_SPACES_DOCKER_IMAGE }} + # readme-filepath: argilla-server/docker/argilla-hf-spaces/README.md diff --git a/.github/workflows/argilla-server.yml b/.github/workflows/argilla-server.yml index 89b1592097..20ae83553b 100644 --- a/.github/workflows/argilla-server.yml +++ b/.github/workflows/argilla-server.yml @@ -122,7 +122,7 @@ jobs: - build with: is_release: ${{ github.ref == 'refs/heads/main' || github.event_name == 'workflow_dispatch' }} - publish_latest: false + publish_latest: ${{ github.ref == 'refs/heads/main' }} secrets: inherit # This job will publish argilla-server python package into PyPI repository From 194691570a27314a8a0822dd3f20b540de806369 Mon Sep 17 00:00:00 2001 From: burtenshaw Date: Tue, 30 Jul 2024 16:02:45 +0200 Subject: [PATCH 10/14] chore: replace link to hf space configuration with link to getting started docs --- argilla-frontend/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/argilla-frontend/README.md b/argilla-frontend/README.md index 1e99d21cfe..d709f89aff 100644 --- a/argilla-frontend/README.md +++ b/argilla-frontend/README.md @@ -32,7 +32,7 @@

Argilla is a collaboration tool for AI engineers and domain experts who need to build high-quality datasets for their projects. -If you just want to get started, we recommend our [UI demo](https://demo.argilla.io/sign-in?auth=ZGVtbzoxMjM0NTY3OA%3D%3D) or our [free Hugging Face Spaces deployment integration](https://huggingface.co/new-space?template=argilla/argilla-template-space). Curious, and want to know more? Read our [documentation](https://argilla-io.github.io/argilla/latest/). +If you just want to get started, we recommend our [UI demo](https://demo.argilla.io/sign-in?auth=ZGVtbzoxMjM0NTY3OA%3D%3D) or our [free Hugging Face Spaces deployment integration](https://docs.v2.argilla.io/latest/getting_started/huggingface-spaces/). Curious, and want to know more? Read our [documentation](https://argilla-io.github.io/argilla/latest/). This repository only contains developer info about the front end. If you want to get started, we recommend taking a look at our [main repository](https://github.com/argilla-io/argilla) or our [documentation](https://argilla-io.github.io/argilla/latest/). From 0902bd8cedd512f0444f6c7268f4f85fcf4feadf Mon Sep 17 00:00:00 2001 From: David Berenstein Date: Tue, 30 Jul 2024 16:46:36 +0200 Subject: [PATCH 11/14] Fix nested parent directory to hub method (#5341) # Description There was a small mistake in the `to_hub`method, leading to creating a `.argilla/.argilla` config when writing to the hub. **Type of change** - Bug fix (non-breaking change which fixes an issue) **How Has This Been Tested** **Checklist** - I added relevant documentation - I followed the style guidelines of this project - I did a self-review of my code - I made corresponding changes to the documentation - I confirm My changes generate no new warnings - I have added tests that prove my fix is effective or that my feature works - I have added relevant notes to the CHANGELOG.md file (See https://keepachangelog.com/) --- argilla/src/argilla/datasets/_export/_hub.py | 3 +-- argilla/tests/integration/test_export_dataset.py | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/argilla/src/argilla/datasets/_export/_hub.py b/argilla/src/argilla/datasets/_export/_hub.py index 2edea40760..237e3d85d6 100644 --- a/argilla/src/argilla/datasets/_export/_hub.py +++ b/argilla/src/argilla/datasets/_export/_hub.py @@ -68,8 +68,7 @@ def to_hub( hf_api.create_repo(repo_id=repo_id, repo_type="dataset", exist_ok=kwargs.get("exist_ok") or True) with TemporaryDirectory() as tmpdirname: - config_dir = os.path.join(tmpdirname, self._DEFAULT_CONFIG_REPO_DIR) - os.makedirs(config_dir) + config_dir = os.path.join(tmpdirname) self.to_disk(path=config_dir, with_records=False) if generate_card: diff --git a/argilla/tests/integration/test_export_dataset.py b/argilla/tests/integration/test_export_dataset.py index 940ff3c6b5..cc082aef9a 100644 --- a/argilla/tests/integration/test_export_dataset.py +++ b/argilla/tests/integration/test_export_dataset.py @@ -139,7 +139,7 @@ def test_import_dataset_from_disk( @pytest.mark.flaky( - retries=_RETRIES, only_on=[BadRequestError, FileMetadataError, HfHubHTTPError] + retries=_RETRIES, only_on=[BadRequestError, FileMetadataError, HfHubHTTPError, OSError] ) # Hub consistency CICD pipline @pytest.mark.skipif( not os.getenv("HF_TOKEN_ARGILLA_INTERNAL_TESTING"), From 5c36593f64e8b60db19a8ece695032fd7c1b2651 Mon Sep 17 00:00:00 2001 From: David Berenstein Date: Tue, 30 Jul 2024 17:07:37 +0200 Subject: [PATCH 12/14] Update set max width of message content to 80 percent (#5342) # Description I limited the max width. **Type of change** - Bug fix (non-breaking change which fixes an issue) **How Has This Been Tested** **Checklist** - I added relevant documentation - I followed the style guidelines of this project - I did a self-review of my code - I made corresponding changes to the documentation - I confirm My changes generate no new warnings - I have added tests that prove my fix is effective or that my feature works - I have added relevant notes to the CHANGELOG.md file (See https://keepachangelog.com/) --- argilla/src/argilla/markdown/chat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/argilla/src/argilla/markdown/chat.py b/argilla/src/argilla/markdown/chat.py index 21d2b79857..f0bcec27d0 100644 --- a/argilla/src/argilla/markdown/chat.py +++ b/argilla/src/argilla/markdown/chat.py @@ -39,7 +39,7 @@ .message-content { padding: 10px; border-radius: 10px; - max-width: fit-content; + max-width: 80%; } """ From ac96f3bfec5622cc633d5a59afb008e1c37ecb4a Mon Sep 17 00:00:00 2001 From: Paco Aranda Date: Tue, 30 Jul 2024 17:23:43 +0200 Subject: [PATCH 13/14] [DOCS] Final review for 2.0.0 (#5336) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # Description **Type of change** - Documentation update **How Has This Been Tested** **Checklist** - I added relevant documentation - I followed the style guidelines of this project - I did a self-review of my code - I made corresponding changes to the documentation - I confirm My changes generate no new warnings - I have added tests that prove my fix is effective or that my feature works - I have added relevant notes to the CHANGELOG.md file (See https://keepachangelog.com/) --------- Co-authored-by: dvsrepo Co-authored-by: David Berenstein Co-authored-by: Leire Co-authored-by: sdiazlor Co-authored-by: José Francisco Calvo Co-authored-by: Sara Han <127759186+sdiazlor@users.noreply.github.com> Co-authored-by: Daniel Vila Suero Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .github/workflows/argilla.docs.yml | 2 +- CONTRIBUTING.md | 2 +- README.md | 6 +- argilla-frontend/README.md | 7 +- argilla-frontend/docs/snippets/start_page.md | 8 +- argilla-frontend/nuxt.config.ts | 10 +- argilla-server/CHANGELOG.md | 8 +- argilla-server/README.md | 4 +- .../docker/argilla-hf-spaces/Dockerfile | 2 +- argilla-server/src/argilla_server/_app.py | 2 +- argilla-v1/CHANGELOG.md | 2 +- argilla-v1/README.md | 44 ++--- argilla-v1/pyproject.toml | 2 +- argilla-v1/src/argilla_v1/client/api.py | 4 +- argilla-v1/src/argilla_v1/client/client.py | 4 +- .../huggingface/card/argilla_template.md | 4 +- .../model_card/argilla_model_template.md | 2 +- argilla-v1/src/argilla_v1/client/models.py | 2 +- .../labeling/text_classification/rule.py | 2 +- .../text_classification/weak_labels.py | 6 +- argilla-v1/src/argilla_v1/metrics/commons.py | 6 +- .../metrics/text_classification/metrics.py | 4 +- .../metrics/token_classification/metrics.py | 20 +-- argilla/CHANGELOG.md | 4 +- argilla/README.md | 6 +- .../getting_started/huggingface-spaces.md | 147 ----------------- argilla/docs/getting_started/quickstart.md | 8 +- argilla/docs/how_to_guides/dataset.md | 153 ++++++++++++------ argilla/docs/how_to_guides/distribution.md | 12 +- argilla/docs/how_to_guides/import_export.md | 83 +++++----- argilla/docs/how_to_guides/query.md | 29 +--- argilla/docs/how_to_guides/record.md | 61 ++++--- .../use_markdown_to_format_rich_content.md | 6 +- argilla/docs/how_to_guides/user.md | 47 ++++-- argilla/docs/how_to_guides/workspace.md | 50 +++--- .../reference/argilla-server/telemetry.md | 4 +- .../docs/tutorials/text_classification.ipynb | 8 +- .../docs/tutorials/token_classification.ipynb | 20 +-- argilla/mkdocs.yml | 4 +- docs/_source/_common/getting_started.html | 2 +- docs/_source/_common/next_steps.html | 2 +- .../feedback-task/question-answering.md | 2 +- .../snippets/training/feedback-task/rlhf.md | 6 +- .../feedback-task/sentence-similarity.md | 2 +- .../feedback-task/text-classification.md | 4 +- .../training/text-classification/openai.md | 2 +- .../training/text-classification/peft.md | 2 +- .../training/text-classification/setfit.md | 2 +- .../training/text-classification/spacy.md | 2 +- .../text-classification/transformers.md | 2 +- .../snippets/training/text2text/openai.md | 2 +- .../training/token-classification/peft.md | 2 +- .../training/token-classification/spacy.md | 2 +- .../token-classification/span_marker.md | 2 +- .../token-classification/transformers.md | 2 +- docs/_source/conf.py | 2 +- docs/_source/getting_started/argilla.md | 4 +- docs/_source/getting_started/cheatsheet.md | 4 +- .../deployments/huggingface-spaces.md | 2 +- .../getting_started/quickstart_workflow.ipynb | 24 +-- .../quickstart_workflow_feedback.ipynb | 18 +-- .../annotation_workflows/job_scheduling.md | 2 +- ...tclassification-colab-activelearning.ipynb | 8 +- ...cation-sentencetransformers-semantic.ipynb | 2 +- ...-tokenclassification-using-spacy-llm.ipynb | 4 +- .../ner_fine_tune_bert_beginners.ipynb | 4 +- ...ssification-smalltext-activelearning.ipynb | 4 +- ...training-textgeneration-unstructured.ipynb | 2 +- .../integrations/llama_index.ipynb | 2 +- .../process_documents_with_unstructured.ipynb | 2 +- .../end2end_examples/create-dataset-001.ipynb | 8 +- .../fine-tuning-openai-rag-feedback.ipynb | 2 +- .../monitoring-data-model-drift.ipynb | 2 +- .../feedback/training-llm-mistral-sft.ipynb | 22 +-- ...-tokenclassification-using-spacy-llm.ipynb | 4 +- .../deployments/docker/docker-compose.yaml | 2 +- 76 files changed, 428 insertions(+), 529 deletions(-) delete mode 100644 argilla/docs/getting_started/huggingface-spaces.md diff --git a/.github/workflows/argilla.docs.yml b/.github/workflows/argilla.docs.yml index d04626c2c6..0f30f74035 100644 --- a/.github/workflows/argilla.docs.yml +++ b/.github/workflows/argilla.docs.yml @@ -101,4 +101,4 @@ jobs: if: startsWith(github.ref, 'refs/heads/docs') || startsWith(github.head_ref, 'docs/') with: message: | - Docs for this PR have been deployed hidden from versioning: [https://argilla-io.github.io/argilla/${{ steps.extract_branch_name.outputs.branch_name }}](https://argilla-io.github.io/argilla/${{ steps.extract_branch_name.outputs.branch_name }}) + Docs for this PR have been deployed hidden from versioning: [https://docs.argilla.io/${{ steps.extract_branch_name.outputs.branch_name }}](https://docs.argilla.io/${{ steps.extract_branch_name.outputs.branch_name }}) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f463e297aa..98bac8e2f4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,5 +17,5 @@ We understand that getting started might be a bit difficult, therefore, you can ## Want to work on your own? -For more seasoned contributors, we recommend taking a look at the [contributor section](https://docs.argilla.io/en/latest/community/contributing.html) in our docs. +For more seasoned contributors, we recommend taking a look at the [contributor section](https://docs.argilla.io/latest/community/contributor/) in our docs. diff --git a/README.md b/README.md index 38a1caad45..417813d093 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ Argilla is a collaboration tool for AI engineers and domain experts who need to build high-quality datasets for their projects. -If you just want to get started, we recommend our [UI demo](https://demo.argilla.io/sign-in?auth=ZGVtbzoxMjM0NTY3OA%3D%3D) or our [free Hugging Face Spaces deployment integration](https://huggingface.co/new-space?template=argilla/argilla-template-space). Curious, and want to know more? Read our [documentation](https://argilla-io.github.io/argilla/latest/). +If you just want to get started, [deploy Argilla on Hugging Face Spaces](https://docs.v2.argilla.io/latest/getting_started/quickstart/). Curious, and want to know more? Read our [documentation](https://docs.v2.argilla.io/latest/). ## Why use Argilla? @@ -143,11 +143,11 @@ dataset.records.log(records=data, mapping={"text": "review"}) ``` 🎉 You have successfully created your first dataset with Argilla. You can now access it in the Argilla UI and start annotating the records. -Need more info, check out [our docs](https://argilla-io.github.io/argilla/latest/). +Need more info, check out [our docs](https://docs.argilla.io/latest/). ## 🥇 Contributors -To help our community with the creation of contributions, we have created our [community](https://argilla-io.github.io/argilla/latest/community/) docs. Additionally, you can always [schedule a meeting](https://calendly.com/david-berenstein-huggingface/30min) with our Developer Advocacy team so they can get you up to speed. +To help our community with the creation of contributions, we have created our [community](https://docs.argilla.io/latest/community/) docs. Additionally, you can always [schedule a meeting](https://calendly.com/david-berenstein-huggingface/30min) with our Developer Advocacy team so they can get you up to speed. diff --git a/argilla-frontend/README.md b/argilla-frontend/README.md index d709f89aff..4e7456878b 100644 --- a/argilla-frontend/README.md +++ b/argilla-frontend/README.md @@ -32,10 +32,11 @@

Argilla is a collaboration tool for AI engineers and domain experts who need to build high-quality datasets for their projects. -If you just want to get started, we recommend our [UI demo](https://demo.argilla.io/sign-in?auth=ZGVtbzoxMjM0NTY3OA%3D%3D) or our [free Hugging Face Spaces deployment integration](https://docs.v2.argilla.io/latest/getting_started/huggingface-spaces/). Curious, and want to know more? Read our [documentation](https://argilla-io.github.io/argilla/latest/). + +If you just want to get started, deploy Argilla with [Hugging Face Spaces](https://docs.v2.argilla.io/latest/getting_started/quickstart/). Curious, and want to know more? Read our [documentation](https://docs.v2.argilla.io). This repository only contains developer info about the front end. If you want to get started, we recommend taking a -look at our [main repository](https://github.com/argilla-io/argilla) or our [documentation](https://argilla-io.github.io/argilla/latest/). +look at our [main repository](https://github.com/argilla-io/argilla) or our [documentation](https://docs.argilla.io/latest/). Are you a contributor or do you want to understand what is going on under the hood, please keep reading the documentation below. @@ -76,7 +77,7 @@ npm run generate ## 🫱🏾‍🫲🏼 Contribute -To help our community with the creation of contributions, we have created our [community](https://argilla-io.github.io/argilla/latest/community/) docs. Additionally, you can always [schedule a meeting](https://calendly.com/david-berenstein-huggingface/30min) with our Developer Advocacy team so they can get you up to speed. +To help our community with the creation of contributions, we have created our [community](https://docs.argilla.io/latest/community/) docs. Additionally, you can always [schedule a meeting](https://calendly.com/david-berenstein-huggingface/30min) with our Developer Advocacy team so they can get you up to speed.
diff --git a/argilla-frontend/docs/snippets/start_page.md b/argilla-frontend/docs/snippets/start_page.md index 9b517d0afd..0536bc2035 100644 --- a/argilla-frontend/docs/snippets/start_page.md +++ b/argilla-frontend/docs/snippets/start_page.md @@ -2,7 +2,7 @@ # Welcome to -## Argilla is a platform for building high-quality AI datasets +## Argilla is a collaboration tool for building high-quality AI datasets If you need support join the [Argilla Discord community](http://hf.co/join/discord) @@ -36,9 +36,9 @@ client = rg.Argilla( ### 3. Create your first dataset -Specify a workspace where the dataset will be created. Check your workspaces in ["My settings"](/user-settings). To create a new workspace, check the [docs](https://argilla-io.github.io/argilla/latest/how_to_guides/workspace/). +Specify a workspace where the dataset will be created. Check your workspaces in ["My settings"](/user-settings). To create a new workspace, check the [docs](https://docs.argilla.io/latest/how_to_guides/workspace/). -Here, we are defining a creating a dataset with a text field and a label question ("positive" and "negative"), check the docs to [create a fully custom dataset](https://argilla-io.github.io/argilla/latest/how_to_guides/dataset/). Don't forget to replace "". +Here, we are defining a creating a dataset with a text field and a label question ("positive" and "negative"), check the docs to [create a fully custom dataset](https://docs.argilla.io/latest/how_to_guides/dataset/). Don't forget to replace "". ```python settings = rg.Settings( @@ -71,7 +71,7 @@ dataset.create() You can create a list with records that you want to add. Ensure that you match the fields with those specified in the question settings. -You can also use `pandas` or `datasets.load_dataset` to [read an existing dataset and create records from it](https://argilla-io.github.io/argilla/latest/how_to_guides/record/). +You can also use `pandas` or `datasets.load_dataset` to [read an existing dataset and create records from it](https://docs.argilla.io/latest/how_to_guides/record/). ```python records = [ diff --git a/argilla-frontend/nuxt.config.ts b/argilla-frontend/nuxt.config.ts index 45c81383f4..9f12587005 100644 --- a/argilla-frontend/nuxt.config.ts +++ b/argilla-frontend/nuxt.config.ts @@ -15,8 +15,8 @@ * limitations under the License. */ -import { NuxtConfig } from "@nuxt/types"; import Mode from "frontmatter-markdown-loader/mode"; +import { NuxtConfig } from "@nuxt/types"; import pkg from "./package.json"; const LOCAL_ENVIRONMENT = "http://0.0.0.0:6900"; @@ -204,14 +204,8 @@ const config: NuxtConfig = { publicRuntimeConfig: { clientVersion: pkg.version, documentationSite: "https://docs.argilla.io/", - documentationSiteSemanticSearch: - "https://docs.argilla.io/en/latest/reference/webapp/features.html#semantic-search", - documentationSiteLabelScheme: - "https://docs.argilla.io/en/latest/guides/log_load_and_prepare_data.html#define-a-labeling-schema", - documentationSiteQueryDatasets: - "https://docs.argilla.io/en/latest/guides/query_datasets.html", documentationPersistentStorage: - "https://docs.argilla.io/en/latest/getting_started/installation/deployments/huggingface-spaces.html#setting-up-persistent-storage", + "https://docs.argilla.io/latest/getting_started/how-to-configure-argilla-on-huggingface/#persistent-storage", }, }; export default config; diff --git a/argilla-server/CHANGELOG.md b/argilla-server/CHANGELOG.md index 00892d1264..ed657f711a 100644 --- a/argilla-server/CHANGELOG.md +++ b/argilla-server/CHANGELOG.md @@ -152,7 +152,7 @@ These are the section headers that we use: > [!IMPORTANT] > This version include changes related to the search index. So, a reindex is needed. -> Visit the [docs](https://docs.argilla.io/en/latest/getting_started/installation/configurations/database_migrations.html#feedback-datasets) for more info. +> Visit the [docs](https://docs.v1.argilla.io/en/latest/getting_started/installation/configurations/database_migrations.html#feedback-datasets) for more info. ### Added @@ -163,8 +163,8 @@ These are the section headers that we use: ### Changed -- Changed indexing responses for search to use user `id` instead of `username`. **[Reindex needed](https://docs.argilla.io/en/latest/getting_started/installation/configurations/database_migrations.html#feedback-datasets)** ([#26](https://github.com/argilla-io/argilla-server/pull/26)) -- Changed search index mappings definition to optimize the number of fields. **[Reindex needed](https://docs.argilla.io/en/latest/getting_started/installation/configurations/database_migrations.html#feedback-datasets)** ([#31](https://github.com/argilla-io/argilla-server/pull/31)) +- Changed indexing responses for search to use user `id` instead of `username`. **[Reindex needed](https://docs.v1.argilla.io/en/latest/getting_started/installation/configurations/database_migrations.html#feedback-datasets)** ([#26](https://github.com/argilla-io/argilla-server/pull/26)) +- Changed search index mappings definition to optimize the number of fields. **[Reindex needed](https://docs.v1.argilla.io/en/latest/getting_started/installation/configurations/database_migrations.html#feedback-datasets)** ([#31](https://github.com/argilla-io/argilla-server/pull/31)) ### Removed @@ -651,7 +651,7 @@ These are the section headers that we use: - Added Telemetry support for `ArgillaTrainer` (closes [#3325](https://github.com/argilla-io/argilla/issues/3325)) - `User.workspaces` is no longer an attribute but a property, and is calling `list_user_workspaces` to list all the workspace names for a given user ID ([#3334](https://github.com/argilla-io/argilla/pull/3334)) - Renamed `FeedbackDatasetConfig` to `DatasetConfig` and export/import from YAML as default instead of JSON (just used internally on `push_to_huggingface` and `from_huggingface` methods of `FeedbackDataset`) ([#3326](https://github.com/argilla-io/argilla/pull/3326)). -- The protected metadata fields support other than textual info - existing datasets must be reindex. See [docs](https://docs.argilla.io/en/latest/getting_started/installation/configurations/database_migrations.html#elasticsearch) for more detail (Closes [#3332](https://github.com/argilla-io/argilla/issues/3332)). +- The protected metadata fields support other than textual info - existing datasets must be reindex. See [docs](https://docs.v1.argilla.io/en/latest/getting_started/installation/configurations/database_migrations.html#elasticsearch) for more detail (Closes [#3332](https://github.com/argilla-io/argilla/issues/3332)). - Updated `Dockerfile` parent image from `python:3.9.16-slim` to `python:3.10.12-slim` ([#3425](https://github.com/argilla-io/argilla/pull/3425)). - Updated `quickstart.Dockerfile` parent image from `elasticsearch:8.5.3` to `argilla/argilla-server:${ARGILLA_VERSION}` ([#3425](https://github.com/argilla-io/argilla/pull/3425)). diff --git a/argilla-server/README.md b/argilla-server/README.md index 17c9721da2..df92d11616 100644 --- a/argilla-server/README.md +++ b/argilla-server/README.md @@ -34,7 +34,7 @@ Argilla is a collaboration tool for AI engineers and domain experts who need to build high-quality datasets for their projects. This repository only contains developer info about the backend server. If you want to get started, we recommend taking a -look at our [main repository](https://github.com/argilla-io/argilla) or our [documentation](https://argilla-io.github.io/argilla/latest/). +look at our [main repository](https://github.com/argilla-io/argilla) or our [documentation](https://docs.argilla.io/latest/). Are you a contributor or do you want to understand what is going on under the hood, please keep reading the documentation below. @@ -273,7 +273,7 @@ The `argilla_server search-engine` group of commands offers functionality to wor ## 🫱🏾‍🫲🏼 Contribute -To help our community with the creation of contributions, we have created our [community](https://argilla-io.github.io/argilla/latest/community/) docs. Additionally, you can always [schedule a meeting](https://calendly.com/david-berenstein-huggingface/30min) with our Developer Advocacy team so they can get you up to speed. +To help our community with the creation of contributions, we have created our [community](https://docs.argilla.io/latest/community/) docs. Additionally, you can always [schedule a meeting](https://calendly.com/david-berenstein-huggingface/30min) with our Developer Advocacy team so they can get you up to speed. diff --git a/argilla-server/docker/argilla-hf-spaces/Dockerfile b/argilla-server/docker/argilla-hf-spaces/Dockerfile index 34f44c22a1..5566231b5e 100644 --- a/argilla-server/docker/argilla-hf-spaces/Dockerfile +++ b/argilla-server/docker/argilla-hf-spaces/Dockerfile @@ -28,7 +28,7 @@ RUN \ apt-get update && apt-get install -y elasticsearch=8.8.2 && \ chown -R argilla:argilla /usr/share/elasticsearch /etc/elasticsearch /var/lib/elasticsearch /var/log/elasticsearch && \ chown argilla:argilla /etc/default/elasticsearch && \ - # Install quickstart image dependencies + # Install image dependencies pip install -r /packages/requirements.txt && \ chmod +x /home/argilla/start.sh && \ chmod +x /home/argilla/start_argilla_server.sh && \ diff --git a/argilla-server/src/argilla_server/_app.py b/argilla-server/src/argilla_server/_app.py index 5285d59b29..e40c1b2db2 100644 --- a/argilla-server/src/argilla_server/_app.py +++ b/argilla-server/src/argilla_server/_app.py @@ -171,7 +171,7 @@ def show_telemetry_warning(): message += inspect.cleandoc( "Argilla uses telemetry to report anonymous usage and error information. You\n" "can know more about what information is reported at:\n\n" - " https://docs.argilla.io/en/latest/reference/telemetry.html\n\n" + " https://docs.argilla.io/latest/reference/argilla-server/telemetry/\n\n" "Telemetry is currently enabled. If you want to disable it, you can configure\n" "the environment variable before relaunching the server:\n\n" f'{"#set ARGILLA_ENABLE_TELEMETRY=0" if os.name == "nt" else "$>export ARGILLA_ENABLE_TELEMETRY=0"}' diff --git a/argilla-v1/CHANGELOG.md b/argilla-v1/CHANGELOG.md index b68022463a..a11ed573a3 100644 --- a/argilla-v1/CHANGELOG.md +++ b/argilla-v1/CHANGELOG.md @@ -601,7 +601,7 @@ These are the section headers that we use: - Added Telemetry support for `ArgillaTrainer` (closes [#3325](https://github.com/argilla-io/argilla/issues/3325)) - `User.workspaces` is no longer an attribute but a property, and is calling `list_user_workspaces` to list all the workspace names for a given user ID ([#3334](https://github.com/argilla-io/argilla/pull/3334)) - Renamed `FeedbackDatasetConfig` to `DatasetConfig` and export/import from YAML as default instead of JSON (just used internally on `push_to_huggingface` and `from_huggingface` methods of `FeedbackDataset`) ([#3326](https://github.com/argilla-io/argilla/pull/3326)). -- The protected metadata fields support other than textual info - existing datasets must be reindex. See [docs](https://docs.argilla.io/en/latest/getting_started/installation/configurations/database_migrations.html#elasticsearch) for more detail (Closes [#3332](https://github.com/argilla-io/argilla/issues/3332)). +- The protected metadata fields support other than textual info - existing datasets must be reindex. See [docs](https://docs.v1.argilla.io/en/latest/getting_started/installation/configurations/database_migrations.html#elasticsearch) for more detail (Closes [#3332](https://github.com/argilla-io/argilla/issues/3332)). - Updated `Dockerfile` parent image from `python:3.9.16-slim` to `python:3.10.12-slim` ([#3425](https://github.com/argilla-io/argilla/pull/3425)). - Updated `quickstart.Dockerfile` parent image from `elasticsearch:8.5.3` to `argilla/argilla-server:${ARGILLA_VERSION}` ([#3425](https://github.com/argilla-io/argilla/pull/3425)). diff --git a/argilla-v1/README.md b/argilla-v1/README.md index 4266984fd3..90ec94681e 100644 --- a/argilla-v1/README.md +++ b/argilla-v1/README.md @@ -36,7 +36,7 @@ Argilla is a collaboration tool for AI engineers and domain experts who need to > [!NOTE] > This README represents the 1.29 SDK version. We have stopped development for the 1.x SDK version, while still committing to bug fixes. If you are looking for the README of the 2.x SDK version take a look [here](../README.md). -If you just want to get started, we recommend our [UI demo](https://demo.argilla.io/sign-in?auth=ZGVtbzoxMjM0NTY3OA%3D%3D) or our [2-click deployment quick start](https://docs.argilla.io/en/latest/getting_started/cheatsheet.html). Curious, and want to know more? Read our [documentation](https://docs.argilla.io/). +If you just want to get started, we recommend our [UI demo](https://demo.argilla.io/sign-in?auth=ZGVtbzoxMjM0NTY3OA%3D%3D) or our [2-click deployment quick start](https://docs.v1.argilla.io/en/latest/getting_started/cheatsheet.html). Curious, and want to know more? Read our [documentation](https://docs.v1.argilla.io/). ## Why use Argilla? @@ -84,10 +84,10 @@ AI teams from companies like [the Red Cross](https://510.global/), [Loris.ai](ht ## 👨‍💻 Getting started
-pip install argilla +pip install argilla

-First things first! You can install Argilla from pypi. +First things first! You can install Argilla from pypi. ```bash pip install argilla @@ -97,7 +97,7 @@ pip install argilla

-Deploy Locally +Deploy Locally

```bash @@ -108,20 +108,20 @@ docker run -d --name argilla -p 6900:6900 argilla/argilla-quickstart:latest

-Deploy on Hugging Face Hub +Deploy on Hugging Face Hub

HuggingFace Spaces now have persistent storage and this is supported from Argilla 1.11.0 onwards, but you will need to manually activate it via the HuggingFace Spaces settings. Otherwise, unless you're on a paid space upgrade, after 48 hours of inactivity the space will be shut off and you will lose all the data. To avoid losing data, we highly recommend using the persistent storage layer offered by HuggingFace. After this, we can connect to our server. - +

-Connect to the Server +Connect to the Server

Once you have deployed Argilla, we will connect to the server. @@ -135,13 +135,13 @@ workspace = "argilla-workspace" # e.g. "admin" ) ``` -After this, you can start using Argilla, so you can create a dataset and add records to it. We use the FeedbackDataset as an example, but you can use any of the other datasets available in Argilla. You can find more information about the different datasets here. +After this, you can start using Argilla, so you can create a dataset and add records to it. We use the FeedbackDataset as an example, but you can use any of the other datasets available in Argilla. You can find more information about the different datasets here.

-Create workspace +Create workspace

Once you have connected to the server, we will create a workspace for datasets. @@ -161,7 +161,7 @@ for user in users:

-Configure datasets +Configure datasets

```python @@ -189,13 +189,13 @@ dataset = rg.FeedbackDataset( remote_dataset = dataset.push_to_argilla(name="my-dataset", workspace="my-workspace") ``` - +

-Add records +Add records

```python @@ -214,14 +214,14 @@ remote_dataset.add_records(record) And that's it, you now have your first dataset ready. You can begin annotating it or embark on other related tasks. - +

-Query datasets +Query datasets

```python @@ -230,13 +230,13 @@ import argilla_v1 as rg filtered_dataset = dataset.filter_by(response_status="submitted") ``` - +

-Semantic search +Semantic search

```python @@ -257,13 +257,13 @@ similar_records = ds.find_similar_records( ) ``` - +

-Weak supervision +Weak supervision

```python @@ -273,7 +273,7 @@ rule = Rule(query="positive impact", label="optimism") add_rules(dataset="go_emotion", rules=[rule]) ``` - + # Model Card for *{{ model_name | default("Model ID", true) }}* -This model has been created with [Argilla](https://docs.argilla.io), trained with *{{ library_name }}*. +This model has been created with [Argilla](https://docs.v1.argilla.io), trained with *{{ library_name }}*. diff --git a/argilla-v1/src/argilla_v1/client/models.py b/argilla-v1/src/argilla_v1/client/models.py index f4e0d8d875..242434784d 100644 --- a/argilla-v1/src/argilla_v1/client/models.py +++ b/argilla-v1/src/argilla_v1/client/models.py @@ -135,7 +135,7 @@ def _normalize_id(cls, v): message = ( "Integer ids won't be supported in future versions. We recommend to start using strings instead. " "For datasets already containing integer values we recommend migrating them to avoid deprecation issues. " - "See https://docs.argilla.io/en/latest/getting_started/installation/configurations" + "See https://docs.v1.argilla.io/en/latest/getting_started/installation/configurations" "/database_migrations.html#elasticsearch" ) warnings.warn(message, DeprecationWarning, stacklevel=2) diff --git a/argilla-v1/src/argilla_v1/labeling/text_classification/rule.py b/argilla-v1/src/argilla_v1/labeling/text_classification/rule.py index 37b3f376a2..15b377e26d 100644 --- a/argilla-v1/src/argilla_v1/labeling/text_classification/rule.py +++ b/argilla-v1/src/argilla_v1/labeling/text_classification/rule.py @@ -24,7 +24,7 @@ class Rule: """A rule (labeling function) in form of an ElasticSearch query. Args: - query: An ElasticSearch query with the `query string syntax `_. + query: An ElasticSearch query with the `query string syntax `_. label: The label associated to the query. Can also be a list of labels. name: An optional name for the rule to be used as identifier in the `argilla.labeling.text_classification.WeakLabels` class. By default, we will use the ``query`` string. diff --git a/argilla-v1/src/argilla_v1/labeling/text_classification/weak_labels.py b/argilla-v1/src/argilla_v1/labeling/text_classification/weak_labels.py index dde53378b8..e6f596ec0f 100644 --- a/argilla-v1/src/argilla_v1/labeling/text_classification/weak_labels.py +++ b/argilla-v1/src/argilla_v1/labeling/text_classification/weak_labels.py @@ -45,7 +45,7 @@ class WeakLabelsBase: If None, we will use the rules of the dataset (Default). ids: An optional list of record ids to filter the dataset before applying the rules. query: An optional ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ to filter the dataset before applying the rules. Raises: @@ -351,7 +351,7 @@ class WeakLabels(WeakLabelsBase): If None, we will use the rules of the dataset (Default). ids: An optional list of record ids to filter the dataset before applying the rules. query: An optional ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ to filter the dataset before applying the rules. label2int: An optional dict, mapping the labels to integers. Remember that the return type ``None`` means abstention (e.g. ``{None: -1}``). By default, we will build a mapping on the fly when applying the rules. @@ -769,7 +769,7 @@ class WeakMultiLabels(WeakLabelsBase): abstention. If None, we will use the rules of the dataset (Default). ids: An optional list of record ids to filter the dataset before applying the rules. query: An optional ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ to filter the dataset before applying the rules. Raises: diff --git a/argilla-v1/src/argilla_v1/metrics/commons.py b/argilla-v1/src/argilla_v1/metrics/commons.py index 9f585831dc..9869396eeb 100644 --- a/argilla-v1/src/argilla_v1/metrics/commons.py +++ b/argilla-v1/src/argilla_v1/metrics/commons.py @@ -26,7 +26,7 @@ def text_length(name: str, query: Optional[str] = None) -> MetricSummary: name: The dataset name. query: - An ElasticSearch query with the [query string syntax](https://docs.argilla.io/en/latest/practical_guides/filter_dataset.html) + An ElasticSearch query with the [query string syntax](https://docs.v1.argilla.io/en/latest/practical_guides/filter_dataset.html) Returns: The text length metric summary @@ -52,7 +52,7 @@ def records_status(name: str, query: Optional[str] = None) -> MetricSummary: name: The dataset name. query: - An ElasticSearch query with the [query string syntax](https://docs.argilla.io/en/latest/practical_guides/filter_dataset.html) + An ElasticSearch query with the [query string syntax](https://docs.v1.argilla.io/en/latest/practical_guides/filter_dataset.html) Returns: The status distribution metric summary @@ -78,7 +78,7 @@ def keywords(name: str, query: Optional[str] = None, size: int = 20) -> MetricSu name: The dataset name. query: - An ElasticSearch query with the [query string syntax](https://docs.argilla.io/en/latest/practical_guides/filter_dataset.html) + An ElasticSearch query with the [query string syntax](https://docs.v1.argilla.io/en/latest/practical_guides/filter_dataset.html) size: The number of keywords to retrieve. Default to `20` diff --git a/argilla-v1/src/argilla_v1/metrics/text_classification/metrics.py b/argilla-v1/src/argilla_v1/metrics/text_classification/metrics.py index 0d611b1c93..09e04fe747 100644 --- a/argilla-v1/src/argilla_v1/metrics/text_classification/metrics.py +++ b/argilla-v1/src/argilla_v1/metrics/text_classification/metrics.py @@ -26,7 +26,7 @@ def f1(name: str, query: Optional[str] = None) -> MetricSummary: name: The dataset name. query: - An ElasticSearch query with the [query string syntax](https://docs.argilla.io/en/latest/practical_guides/filter_dataset.html) + An ElasticSearch query with the [query string syntax](https://docs.v1.argilla.io/en/latest/practical_guides/filter_dataset.html) Returns: The f1 metric summary @@ -52,7 +52,7 @@ def f1_multilabel(name: str, query: Optional[str] = None) -> MetricSummary: name: The dataset name. query: - An ElasticSearch query with the [query string syntax](https://docs.argilla.io/en/latest/practical_guides/filter_dataset.html) + An ElasticSearch query with the [query string syntax](https://docs.v1.argilla.io/en/latest/practical_guides/filter_dataset.html) Returns: The f1 metric summary diff --git a/argilla-v1/src/argilla_v1/metrics/token_classification/metrics.py b/argilla-v1/src/argilla_v1/metrics/token_classification/metrics.py index bf0ac53704..da666d2c36 100644 --- a/argilla-v1/src/argilla_v1/metrics/token_classification/metrics.py +++ b/argilla-v1/src/argilla_v1/metrics/token_classification/metrics.py @@ -33,7 +33,7 @@ def tokens_length(name: str, query: Optional[str] = None, interval: int = 1) -> Args: name: The dataset name. query: An ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ interval: The bins or bucket for result histogram Returns: @@ -65,7 +65,7 @@ def token_frequency(name: str, query: Optional[str] = None, tokens: int = 1000) Args: name: The dataset name. query: An ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ tokens: The top-k number of tokens to retrieve Returns: @@ -94,7 +94,7 @@ def token_length(name: str, query: Optional[str] = None) -> MetricSummary: Args: name: The dataset name. query: An ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ Returns: The summary for token length distribution @@ -133,7 +133,7 @@ def token_capitalness(name: str, query: Optional[str] = None) -> MetricSummary: Args: name: The dataset name. query: An ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ Returns: The summary for token length distribution @@ -196,7 +196,7 @@ def mention_length( Args: name: The dataset name. query: An ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ level: The mention length level. Accepted values are "token" and "char" compute_for: Metric can be computed for annotations or predictions. Accepted values are ``Annotations`` and ``Predictions``. Defaults to ``Predictions``. @@ -242,7 +242,7 @@ def entity_labels( Args: name: The dataset name. query: An ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ compute_for: Metric can be computed for annotations or predictions. Accepted values are ``Annotations`` and ``Predictions``. Default to ``Predictions`` labels: The number of top entities to retrieve. Lower numbers will be better performants @@ -281,7 +281,7 @@ def entity_density( Args: name: The dataset name. query: An ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ compute_for: Metric can be computed for annotations or predictions. Accepted values are ``Annotations`` and ``Predictions``. Default to ``Predictions``. interval: The interval for histogram. The entity density is defined in the range 0-1. @@ -329,7 +329,7 @@ def entity_capitalness( Args: name: The dataset name. query: An ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ compute_for: Metric can be computed for annotations or predictions. Accepted values are ``Annotations`` and ``Predictions``. Default to ``Predictions``. Returns: @@ -385,7 +385,7 @@ def top_k_mentions( Args: name: The dataset name. query: An ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ compute_for: Metric can be computed for annotations or predictions. Accepted values are ``Annotations`` and ``Predictions``. Default to ``Predictions`` k: The number of mentions to retrieve. @@ -445,7 +445,7 @@ def f1(name: str, query: Optional[str] = None) -> MetricSummary: Args: name: The dataset name. query: An ElasticSearch query with the - `query string syntax `_ + `query string syntax `_ Returns: The F1 metric summary containing precision, recall and the F1 score (averaged and per label). diff --git a/argilla/CHANGELOG.md b/argilla/CHANGELOG.md index 413ea750c7..132b19ee1e 100644 --- a/argilla/CHANGELOG.md +++ b/argilla/CHANGELOG.md @@ -37,7 +37,7 @@ These are the section headers that we use: ## [2.0.0rc1](https://github.com/argilla-io/argilla/compare/v1.29.0...v2.0.0rc1) > [!NOTE] -> This release for 2.0.0rc1 does not contain any changelog entries because it is the first release candidate for the 2.0.0 version. The following versions will contain the changelog entries again. For a general overview of the changes in the 2.0.0 version, please refer to [our blog](https://argilla.io/blog/) or [our new documentation](https://argilla-io.github.io/argilla/latest). +> This release for 2.0.0rc1 does not contain any changelog entries because it is the first release candidate for the 2.0.0 version. The following versions will contain the changelog entries again. For a general overview of the changes in the 2.0.0 version, please refer to [our blog](https://argilla.io/blog/) or [our new documentation](https://docs.argilla.io/latest). ## [1.29.0](https://github.com/argilla-io/argilla/compare/v1.28.0...v1.29.0) @@ -619,7 +619,7 @@ These are the section headers that we use: - Added Telemetry support for `ArgillaTrainer` (closes [#3325](https://github.com/argilla-io/argilla/issues/3325)) - `User.workspaces` is no longer an attribute but a property, and is calling `list_user_workspaces` to list all the workspace names for a given user ID ([#3334](https://github.com/argilla-io/argilla/pull/3334)) - Renamed `FeedbackDatasetConfig` to `DatasetConfig` and export/import from YAML as default instead of JSON (just used internally on `push_to_huggingface` and `from_huggingface` methods of `FeedbackDataset`) ([#3326](https://github.com/argilla-io/argilla/pull/3326)). -- The protected metadata fields support other than textual info - existing datasets must be reindex. See [docs](https://docs.argilla.io/en/latest/getting_started/installation/configurations/database_migrations.html#elasticsearch) for more detail (Closes [#3332](https://github.com/argilla-io/argilla/issues/3332)). +- The protected metadata fields support other than textual info - existing datasets must be reindex. See [docs](https://docs.v1.argilla.io/en/latest/getting_started/installation/configurations/database_migrations.html#elasticsearch) for more detail (Closes [#3332](https://github.com/argilla-io/argilla/issues/3332)). - Updated `Dockerfile` parent image from `python:3.9.16-slim` to `python:3.10.12-slim` ([#3425](https://github.com/argilla-io/argilla/pull/3425)). - Updated `quickstart.Dockerfile` parent image from `elasticsearch:8.5.3` to `argilla/argilla-server:${ARGILLA_VERSION}` ([#3425](https://github.com/argilla-io/argilla/pull/3425)). diff --git a/argilla/README.md b/argilla/README.md index c1453d312f..74d36115a8 100644 --- a/argilla/README.md +++ b/argilla/README.md @@ -33,7 +33,7 @@

Argilla is a collaboration tool for AI engineers and domain experts who need to build high-quality datasets for their projects. -If you just want to get started, we recommend our [UI demo](https://demo.argilla.io/sign-in?auth=ZGVtbzoxMjM0NTY3OA%3D%3D) or our [free Hugging Face Spaces deployment integration](https://huggingface.co/new-space?template=argilla/argilla-template-space). Curious, and want to know more? Read our [documentation](https://argilla-io.github.io/argilla/latest/). +If you just want to get started, we recommend our [UI demo](https://demo.argilla.io/sign-in?auth=ZGVtbzoxMjM0NTY3OA%3D%3D) or our [free Hugging Face Spaces deployment integration](https://huggingface.co/new-space?template=argilla/argilla-template-space). Curious, and want to know more? Read our [documentation](https://docs.argilla.io/latest/). ## Why use Argilla? @@ -142,11 +142,11 @@ dataset.records.log(records=data, mapping={"text": "review"}) ``` 🎉 You have successfully created your first dataset with Argilla. You can now access it in the Argilla UI and start annotating the records. -Need more info, check out [our docs](https://argilla-io.github.io/argilla/latest/). +Need more info, check out [our docs](https://docs.argilla.io/latest/). ## 🥇 Contributors -To help our community with the creation of contributions, we have created our [community](https://argilla-io.github.io/argilla/latest/community/) docs. Additionally, you can always [schedule a meeting](https://calendly.com/david-berenstein-huggingface/30min) with our Developer Advocacy team so they can get you up to speed. +To help our community with the creation of contributions, we have created our [community](https://docs.argilla.io/latest/community/) docs. Additionally, you can always [schedule a meeting](https://calendly.com/david-berenstein-huggingface/30min) with our Developer Advocacy team so they can get you up to speed. diff --git a/argilla/docs/getting_started/huggingface-spaces.md b/argilla/docs/getting_started/huggingface-spaces.md deleted file mode 100644 index ee3846027c..0000000000 --- a/argilla/docs/getting_started/huggingface-spaces.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -description: In this section, we will provide a step-by-step guide for setting up Argilla in Hugging Face Spaces. ---- - -# Set up in Hugging Face Spaces - -This guide explains how to deploy your Argilla app in a Hugging Face Space and configure it according to your preferences. - -> For more information about Hugging Face Spaces, check the [documentation](https://huggingface.co/docs/hub/en/spaces-overview). - - -## Deploy Argilla on Spaces - -1. Access the [Hugging Face template](https://huggingface.co/new-space?template=argilla/argilla-template-space). The template will show the Argilla Space SDK preselected. -2. Fill in the template. Take into account the following: - - - Enable **Persistent Storage** not to lose your data. Unless you’re using a paid Space upgrade, any Space will be shut down after 48 hours of inactivity, resulting in data loss. You can do it later as detailed in ["Enable persistent storage"](#enable-persistent-storage), but all the data previous to the set up will be lost. - - Configure the **Space secrets** to manage the credentials. The default credentials and instructions for adding them later are described in ["Configure the Space secrets"](#configure-the-space-secrets). - - Set up the **visibility** to make your Space `public` or `private`. To access your private Space from the Argilla SDK, you will need to [configure and provide a `HF_TOKEN`](https://huggingface.co/settings/tokens) - -3. Click "Create Space". The status will change to `Building` and, once it switches to `Running`, your Space will be ready. If you don't see the Argilla login UI, refresh the page. - -!!! note "Argilla Space direct URL" - - The Argilla Space direct URL provides access to a full-screen, stable Argilla instance. - - It also serves as the `api_url` for reading and writing datasets using the Argilla SDK. - - This URL is constructed as follows: `https://[your-owner-name]-[your_space_name].hf.space`. For instance, if the owner of the Space is `argilla` and your Space name is `demo`, it will be `https://argilla-demo.hf.space`. - - -## Enable persistent storage - -!!! warning - Activate persistent storage not to loose your data. If you are not using a paid Space upgrade, any Space will be shut down after 48 hours of inactivity. When restarted, it will undergo a factory reset, resulting in the loss of all your data. - - Make sure to enable persistent storage before adding any data, as the Space will restart, removing all the previous data. - - If you haven’t enabled persistent storage, Argilla will display a warning message by default. To prevent this warning from appearing if you don’t need persistent storage, set the environment variable `ARGILLA_SHOW_HUGGINGFACE_SPACE_PERSISTENT_STORAGE_WARNING` to `false` in "Settings" > "New variable". This will suppress the warning message. - -To enable [persistent storage](https://huggingface.co/docs/hub/spaces-storage#persistent-storage), go to the "Settings" tab on your created Space and click on the desired plan on the "Persistent Storage" section. - -## Configure the Space secrets - -[Secrets](https://huggingface.co/docs/hub/spaces-overview#managing-secrets) can be configured as optional settings to secure your Argilla Space. - -The Argilla template allows you to configure the credentials for the default users: `owner`, `admin` and `annotator`. It will also allow you to configure the name of the default workspace. - -> Check this [guide](../how_to_guides/user.md) to learn more about users, and refer to this [guide](../how_to_guides/workspace.md) for more information about workspaces in Argilla. - -Moreover, it provides two secrets to configure the Hugging Face Oauth. For more information, check the [next section](#sign-in-with-hugging-face). - -You can add the available secrets in "Settings" > "New secret". - -??? note "Available secrets" - - | Secret name | Type | Description | Default value | - |-------------------------------|----------|-------------|----------------| - | `OWNER_USERNAME` | string | A username to log in with owner permissions | owner | - | `OWNER_PASSWORD` | string | A password for the `OWNER_USERNAME` | 12345678 | - | `OWNER_API_KEY` | string or online generator |An `api_key` to interact with the SDK with owner permissions | owner.apikey | - | `ADMIN_USERNAME` | string |A username to log in with admin permissions | admin | - | `ADMIN_PASSWORD` | string | A password for the `ADMIN_USERNAME` | 12345678 | - | `ADMIN_API_KEY` | string or online generator|An `api_key` to interact with the SDK with admin permissions | admin.apikey | - | `ANNOTATOR_USERNAME` | string |A username to log in with annotator permissions | argilla | - | `ANNOTATOR_PASSWORD` | string |A password for the `ANNOTATOR_PASSWORD` | 12345678 | - | `ARGILLA_WORKSPACE` | string | The name of the default workspace | admin | - | `OAUTH2_HUGGINGFACE_CLIENT_ID` | ID | The Client ID of your connected app | | - | `OAUTH2_HUGGINGFACE_CLIENT_SECRET` | ID | The app secret of your connected app | | - - -## Sign in with Hugging Face - -The Hugging Face authentication allows you to give access to your Argilla Space to users that are logged in to the Hugging Face Hub. - -!!! tip - This feature is especially helpful for public crowdsourcing projects. The users logging in with OAuth will have the annotator role. - - To have more control over who can log in to the Space, you can set this up in a private Space so that only members of your organization can sign in. - - To create users with admin or owner roles, you can [create users](../how_to_guides/user.md) and access with their credentials. - -!!! note - If you duplicated an Argilla Space with OAuth instead of creating one from the template, make sure to also follow the next steps. - -!!! warning - If persistent storage is not enabled, make sure to activate the Hugging Face authentication before adding any data, as the Space will need to be restarted with a "Factory build", removing all the previous data. - -1. [Create an OAuth App in Hugging Face](https://huggingface.co/settings/applications/new) and fill in the information: - - | Field | Value | - |--------------|----------| - | Homepage URL | [`[Your Argilla Space direct URL]`](#deploy-argilla-on-spaces) | - | Logo URL | `[Your Argilla Space direct URL]/favicon.ico` | - | Scopes | `openid` and `profile` | - | Redirect URL | `[Your Argilla Space Direct URL]/oauth/huggingface/callback` - -2. Add the created Client ID and App Secret to your Space. It can be done in two different ways. - - === "As secrets" - - Add them to your Space in "Settings" > "New secret". - - | Secret name | Value | - |-------------------------------|----------| - | `OAUTH2_HUGGINGFACE_CLIENT_ID` | [Your Client ID] | - | `OAUTH2_HUGGINGFACE_CLIENT_SECRET` | [Your App Secret] | - - === "As environment variables in `.oauth.yaml`" - - Add them to your Space in "Files" > `.oauth.yaml`. - - !!! warning - Be aware that the `.oauth.yaml` file is public in public spaces or may be accessible by other members of your organization in private spaces. - - Therefore, we recommend setting these variables as environment secrets. - - ??? quote "Example code in `.oauth.yaml`" - ```yaml - # This attribute will enable or disable the Hugging Face authentication - enabled: true - - providers: - # The OAuth provider setup - # For now, only Hugging Face is supported - - name: huggingface - # This is the client ID of the OAuth app. You can find it in your Hugging Face settings. - # see https://huggingface.co/docs/hub/oauth#creating-an-oauth-app for more info. - # You can also provide it by using the env variable `OAUTH2_HUGGINGFACE_CLIENT_ID` - client_id: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX - - # This is the client secret of the OAuth app. You can find it in your Hugging Face settings. - # See https://huggingface.co/docs/hub/oauth#creating-an-oauth-app for more info. - # We encourage you to provide it by using the env variable `OAUTH2_HUGGINGFACE_CLIENT_SECRET` - client_secret: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXX - - # The scope of the OAuth app. At least `openid` and `profile` are required. - scope: openid profile - - # This section defines the allowed workspaces for the oauth users. - # Workspaces defined here must exist in Argilla. - allowed_workspaces: - - name: admin - ``` - -3. Check that the `enabled` parameter is set to `true` in "Files" > `.oauth.yaml`. -4. Go back to "Settings" and do a "Factory rebuild". Once the Space is restarted, you and your collaborators can sign and log in to your Space using their Hugging Face accounts. \ No newline at end of file diff --git a/argilla/docs/getting_started/quickstart.md b/argilla/docs/getting_started/quickstart.md index 08054958c5..0bf15f5508 100644 --- a/argilla/docs/getting_started/quickstart.md +++ b/argilla/docs/getting_started/quickstart.md @@ -20,7 +20,7 @@ Argilla is a free, open-source, self-hosted tool. This means you need to deploy You can use the default values following these steps: - Leave the default Space owner (your personal account) - - Leave `USERNAME` and `PASSWORD` secrets empty since you'll sign in with your HF user as the Argilla Space `owner`. + - Leave `USERNAME` and `PASSWORD` secrets empty since you'll sign in with your HF user as the Argilla Space `owner`. - Click create Space to launch Argilla 🚀. - Once you see the Argilla UI, [go to the Sign in into the Argilla UI section](#sign-in-into-the-argilla-ui). If you see the `Building` message for longer than 2-3 min refresh the page. @@ -41,7 +41,6 @@ If everything went well, you should see the Argilla sign in page that looks like In the sign in page: -======= 1. Click on **Sign in with Hugging Face** 2. **Authorize the application** and you will be logged in into Argilla as an `owner`. @@ -82,9 +81,6 @@ client = rg.Argilla( 1. Click on the three points menu at the top of the Space, select "Embed this Space", and open the direct URL. 2. Use this pattern: `https://[your-owner-name]-[your_space_name].hf.space`. - -## Create your first dataset - To create a dataset with a simple text classification task, first, you need to **define the dataset settings**. ```python @@ -112,7 +108,7 @@ Now you can **create the dataset with these settings**. Publish the dataset to m !!! info "About workspaces" Workspaces in Argilla group datasets and user access rights. The `workspace` parameter is optional in this case. If you don't specify it, the dataset will be created in the default workspace `argilla`. - By default, **this workspace will be visible to users joining with the Sign in with Hugging Face button**. You can create other workspaces and decide to grant access to users either with the SDK or the [changing the OAuth configuration](getting_started/how-to-configure-argilla-on-huggingface.md). + By default, **this workspace will be visible to users joining with the Sign in with Hugging Face button**. You can create other workspaces and decide to grant access to users either with the SDK or the [changing the OAuth configuration](how-to-configure-argilla-on-huggingface.md). ```python dataset = rg.Dataset( diff --git a/argilla/docs/how_to_guides/dataset.md b/argilla/docs/how_to_guides/dataset.md index da4efb6ffe..c608e6f4d1 100644 --- a/argilla/docs/how_to_guides/dataset.md +++ b/argilla/docs/how_to_guides/dataset.md @@ -42,7 +42,7 @@ A **dataset** is a collection of records that you can configure for labelers to vectors=[rg.VectorField(name="vector", dimensions=10)], guidelines="guidelines", allow_extra_metadata=True, - distribution=2 + distribution=rg.TaskDistribution(min_submitted=2), ) ``` @@ -52,7 +52,8 @@ A **dataset** is a collection of records that you can configure for labelers to To create a dataset, you can define it in the `Dataset` class and then call the `create` method that will send the dataset to the server so that it can be visualized in the UI. If the dataset does not appear in the UI, you may need to click the refresh button to update the view. For further configuration of the dataset, you can refer to the [settings section](#define-dataset-settings). -> The created dataset will be empty, to add the records refer to this [how-to guide](record.md). +!!! info + If you have deployed Argilla with Hugging Face Spaces and HF Sign in, you can use `argilla` as a workspace name. Otherwise, you might need to create a workspace following [this guide](workspace.md#create-a-new-workspace). ```python import argilla as rg @@ -78,11 +79,12 @@ dataset = rg.Dataset( name="my_dataset", workspace="my_workspace", settings=settings, - client=client, ) dataset.create() ``` +> The created dataset will be empty, to add records go to this [how-to guide](record.md). + !!! tip "Accessing attributes" Access the attributes of a dataset by calling them directly on the `dataset` object. For example, `dataset.id`, `dataset.name` or `dataset.settings`. You can similarly access the fields, questions, metadata, vectors and guidelines. For instance, `dataset.fields` or `dataset.questions`. @@ -93,15 +95,19 @@ To create multiple datasets with the same settings, define the settings once and ```python import argilla as rg +client = rg.Argilla(api_url="", api_key="") + settings = rg.Settings( - guidelines="Select the sentiment of the prompt.", - fields=[rg.TextField(name="prompt", use_markdown=True)], - questions=[rg.LabelQuestion(name="sentiment", labels=["positive", "negative"])], - distribution=rg.TaskDistribution(min_submitted=3) + guidelines="These are some guidelines.", + fields=[rg.TextField(name="text", use_markdown=True)], + questions=[ + rg.LabelQuestion(name="label", labels=["label_1", "label_2", "label_3"]) + ], + distribution=rg.TaskDistribution(min_submitted=3), ) -dataset1 = rg.Dataset(name="sentiment_analysis_1", settings=settings) -dataset2 = rg.Dataset(name="sentiment_analysis_2", settings=settings) +dataset1 = rg.Dataset(name="my_dataset_1", settings=settings) +dataset2 = rg.Dataset(name="my_dataset_2", settings=settings) # Create the datasets on the server dataset1.create() @@ -110,28 +116,27 @@ dataset2.create() ### Create a dataset from an existing dataset -To create a new dataset from an existing dataset, get the settings from the existing dataset and pass it -to the new dataset. +To create a new dataset from an existing dataset, get the settings from the existing dataset and pass them to the new dataset. ```python import argilla as rg -# Get the settings from an existing dataset -existing_dataset = client.datasets("sentiment_analysis") +client = rg.Argilla(api_url="", api_key="") -# Create a new dataset with the same settings -dataset = rg.Dataset(name="sentiment_analysis_copy", settings=existing_dataset.settings) +existing_dataset = client.datasets("my_dataset") -# Create the dataset on the server -dataset.create() +new_dataset = rg.Dataset(name="my_dataset_copy", settings=existing_dataset.settings) + +new_dataset.create() ``` -You can also copy the records from the original dataset to the new one: +!!! info + You can also copy the records from the original dataset to the new one: -```python -records = list(existing_dataset.records) -dataset.records.log(records) -``` + ```python + records = list(existing_dataset.records) + new_dataset.records.log(records) + ``` ## Define dataset settings @@ -369,6 +374,9 @@ Metadata properties allow you to configure the use of metadata information for t ``` ![FloatMetadataProperty](../assets/images/how_to_guides/dataset/float_metadata.png) +!!! note + You can also set the `allow_extra_metadata` argument in the dataset to `True` to specify whether the dataset will allow metadata fields in the records other than those specified under metadata. Note that these will not be accessible from the UI for any user, only retrievable using the Python SDK. + ### Vectors To use the similarity search in the UI and the Python SDK, you will need to configure vectors using the `VectorField` class. It has the following configuration: @@ -434,34 +442,49 @@ for dataset in datasets: print(dataset) ``` -## Retrieve a dataset - -You can retrieve a dataset by calling the `datasets` method on the `Argilla` class and passing the name of the dataset as an argument. By default, this method attempts to retrieve the dataset from the first workspace. If the dataset is in a different workspace, you must specify either the workspace name or id as an argument. - +When you list datasets, dataset settings are not preloaded, since this can introduce extra requests to the server. If you want to work with settings when listing datasets, you need to load them: ```python import argilla as rg client = rg.Argilla(api_url="", api_key="") -workspace = client.workspaces("my_workspace") +for dataset in client.datasets: + dataset.settings.get() # this will get the dataset settings from the server + print(dataset.settings) +``` -# Retrieve the dataset from the first workspace -retrieved_dataset = client.datasets(name="my_dataset") +!!! tip "Notebooks" + When using a notebook, executing `client.datasets` will display a table with the `name`of the existing datasets, the `id`, `workspace_id` to which they belong, and the last update as `updated_at`. . -# Retrieve the dataset from the specified workspace -retrieved_dataset = client.datasets(name="my_dataset", workspace=workspace) -``` +## Retrieve a dataset -You can also use the user `id` to fetch the dataset: -```python -import argilla as rg +You can retrieve a dataset by calling the `datasets` method on the `Argilla` class and passing the `name` or `id` of the dataset as an argument. If the dataset does not exist, a warning message will be raised and `None` will be returned. -client = rg.Argilla(api_url="", api_key="") +=== "By name" -dataset = client.datasets(id="") -``` + By default, this method attempts to retrieve the dataset from the first workspace. If the dataset is in a different workspace, you must specify either the workspace or workspace name as an argument. + + ```python + import argilla as rg + + client = rg.Argilla(api_url="", api_key="") + + # Retrieve the dataset from the first workspace + retrieved_dataset = client.datasets(name="my_dataset") -If the dataset does not exist for the given id, the call will return `None`. + # Retrieve the dataset from the specified workspace + retrieved_dataset = client.datasets(name="my_dataset", workspace="my_workspace") + ``` + +=== "By id" + + ```python + import argilla as rg + + client = rg.Argilla(api_url="", api_key="") + + dataset = client.datasets(id="") + ``` ## Check dataset existence @@ -474,12 +497,13 @@ client = rg.Argilla(api_url="", api_key="") dataset = client.datasets(name="my_dataset") -dataset_exist = dataset is not None +if dataset is not None: + pass ``` ## Update a dataset -Once a dataset is published, there are limited things you can update. Here is a summary of the attributes you can change: +Once a dataset is published, there are limited things you can update. Here is a summary of the attributes you can change for each setting: === "Fields" | Attributes | From SDK | From UI | @@ -539,6 +563,10 @@ Once a dataset is published, there are limited things you can update. Here is a To modify these attributes, you can simply set the new value of the attributes you wish to change and call the `update` method on the `Dataset` object. ```python +import argilla as rg + +client = rg.Argilla(api_url="", api_key="") + dataset = client.datasets("my_dataset") dataset.settings.fields["text"].use_markdown = True @@ -547,18 +575,41 @@ dataset.settings.metadata["my_metadata"].visible_for_annotators = False dataset.update() ``` -You can also add and delete metadata properties and vector fields using the `add` and `delete` methods: +You can also add and delete metadata properties and vector fields using the `add` and `delete` methods. -```python -dataset = client.datasets("my_dataset") +=== "Add" -# add -dataset.vectors.add(rg.VectorField(name="my_vector", dimensions=123)) -dataset.update() + ```python + import argilla as rg -#delete -dataset.metadata["my_metadata"].delete() -``` + client = rg.Argilla(api_url="", api_key="") + + dataset = client.datasets("my_dataset") + + dataset.settings.vectors.add(rg.VectorField(name="my_new_vector", dimensions=123)) + dataset.settings.metadata.add( + rg.TermsMetadataProperty( + name="my_new_metadata", + options=["option_1", "option_2", "option_3"], + ), + ) + dataset.update() + ``` + +=== "Delete" + + ```python + import argilla as rg + + client = rg.Argilla(api_url="", api_key="") + + dataset = client.datasets("my_dataset") + + dataset.settings.vectors["my_old_vector"].delete() + dataset.settings.metadata["my_old_metadata"].delete() + + dataset.update() + ``` ## Delete a dataset @@ -572,4 +623,4 @@ client = rg.Argilla(api_url="", api_key="") dataset_to_delete = client.datasets(name="my_dataset") dataset_deleted = dataset_to_delete.delete() -``` \ No newline at end of file +``` diff --git a/argilla/docs/how_to_guides/distribution.md b/argilla/docs/how_to_guides/distribution.md index fedb2e2d16..1bbbc94a7b 100644 --- a/argilla/docs/how_to_guides/distribution.md +++ b/argilla/docs/how_to_guides/distribution.md @@ -8,14 +8,14 @@ This guide explains how you can use Argilla’s **automatic task distribution** Owners and admins can define the minimum number of submitted responses expected for each record. Argilla will use this setting to handle automatically the records that will be shown in the pending queues of all users with access to the dataset. -When a record has met the minimum number of submissions, the status of the record will change to `completed` and the record will be removed from the `Pending` queue of all team members, so they can focus on providing responses where they are most needed. The dataset’s annotation task will be fully completed once all records have the `completed` status. +When a record has met the minimum number of submissions, the status of the record will change to `completed`, and the record will be removed from the `Pending` queue of all team members so they can focus on providing responses where they are most needed. The dataset’s annotation task will be fully completed once all records have the `completed` status. ![Task Distribution diagram](../assets/images/how_to_guides/distribution/taskdistribution.svg) !!! note The status of a record can be either `completed`, when it has the required number of responses with `submitted` status, or `pending`, when it doesn’t meet this requirement. - Each record can have multiple responses and each of those can have the status `submitted`, `discarded` or `draft`. + Each record can have multiple responses, and each of those can have the status `submitted`, `discarded`, or `draft.` !!! info "Main Class" @@ -63,12 +63,16 @@ settings = rg.Settings( ## Change task distribution settings -If you wish to change the minimum submitted responses required in a dataset you can do so as long as the annotation hasn’t started, i.e. the dataset has no responses for any records. +If you wish to change the minimum submitted responses required in a dataset, you can do so as long as the annotation hasn’t started, i.e., the dataset has no responses for any records. Admins and owners can change this value from the dataset settings page in the UI or from the SDK: ```python -dataset = client.datasets(...) +import argilla as rg + +client = rg.Argilla(api_url="", api_key="") + +dataset = client.datasets("my_dataset") dataset.settings.distribution.min_submitted = 4 diff --git a/argilla/docs/how_to_guides/import_export.md b/argilla/docs/how_to_guides/import_export.md index dbf96c0023..d55a10ac6c 100644 --- a/argilla/docs/how_to_guides/import_export.md +++ b/argilla/docs/how_to_guides/import_export.md @@ -29,8 +29,8 @@ Check the [Dataset - Python Reference](../reference/argilla/datasets/datasets.md ```python rg.Dataset.from_hub( repo_id="/", - name="", - workspace="", + name="my_dataset", + workspace="my_workspace", client=rg.Client(), with_records=True ) @@ -40,7 +40,7 @@ Check the [Dataset - Python Reference](../reference/argilla/datasets/datasets.md ```python rg.Dataset.to_disk( - path="/", + path="", with_records=True ) ``` @@ -49,9 +49,9 @@ Check the [Dataset - Python Reference](../reference/argilla/datasets/datasets.md ```python rg.Dataset.from_disk( - path="/", - name="", - workspace="", + path="", + name="my_dataset", + workspace="my_workspace", client=rg.Client(), with_records=True ) @@ -73,7 +73,7 @@ Check the [Dataset - Python Reference](../reference/argilla/datasets/datasets.md rg.Dataset.records.to_list() ``` - > Check the [Dataset - Python Reference](../reference/argilla/datasets/dataset.md) to see the attributes, arguments, and methods of the export `Dataset` class in detail. + > Check the [Dataset - Python Reference](../reference/argilla/datasets/datasets.md) to see the attributes, arguments, and methods of the export `Dataset` class in detail. > Check the [Record - Python Reference](../reference/argilla/records/records.md) to see the attributes, arguments, and methods of the `Record` class in detail. @@ -92,15 +92,17 @@ You can push a dataset from Argilla to the Hugging Face Hub. This is useful if y import argilla as rg client = rg.Argilla(api_url="", api_key="") + dataset = client.datasets(name="my_dataset") -dataset.to_hub(repo_id="") + +dataset.to_hub(repo_id="/") ``` !!! note "With or without records" The example above will push the dataset's `Settings` and records to the hub. If you only want to push the dataset's configuration, you can set the `with_records` parameter to `False`. This is useful if you're just interested in a specific dataset template or you want to make changes in the dataset settings and/or records. ```python - dataset.to_hub(repo_id="", with_records=False) + dataset.to_hub(repo_id="/", with_records=False) ``` #### Import from Hub @@ -112,7 +114,8 @@ You can pull a dataset from the Hugging Face Hub to Argilla. This is useful if y import argilla as rg client = rg.Argilla(api_url="", api_key="") -dataset = rg.Dataset.from_hub(repo_id="") + +dataset = rg.Dataset.from_hub(repo_id="/") ``` The `rg.Dataset.from_hub` method loads the configuration and records from the dataset repo. If you only want to load records, you can pass a `datasets.Dataset` object to the `rg.Dataset.log` method. This enables you to configure your own dataset and reuse existing Hub datasets. See the [guide on records](record.md) for more information. @@ -122,41 +125,43 @@ The `rg.Dataset.from_hub` method loads the configuration and records from the da The example above will pull the dataset's `Settings` and records from the hub. If you only want to pull the dataset's configuration, you can set the `with_records` parameter to `False`. This is useful if you're just interested in a specific dataset template or you want to make changes in the dataset settings and/or records. ```python - dataset = rg.Dataset.from_hub(repo_id="", with_records=False) + dataset = rg.Dataset.from_hub(repo_id="/", with_records=False) ``` With the dataset's configuration, you could then make changes to the dataset. For example, you could adapt the dataset's settings for a different task: ```python dataset.settings.questions = [rg.TextQuestion(name="answer")] + dataset.update() ``` You could then log the dataset's records using the `load_dataset` method of the `datasets` package and pass the dataset to the `rg.Dataset.log` method. ```python - hf_dataset = load_dataset("") - dataset.log(hf_dataset) + hf_dataset = load_dataset("/") + dataset.records.log(hf_dataset) ``` ### Local Disk #### Export to Disk -You can save a dataset from Argilla to your local disk. This is useful if you want to back up your dataset. You can use the `rg.Dataset.to_disk` method. +You can save a dataset from Argilla to your local disk. This is useful if you want to back up your dataset. You can use the `rg.Dataset.to_disk` method. We recommend you to use an empty directory. ```python import argilla as rg client = rg.Argilla(api_url="", api_key="") -dataset = client.datasets(name="my_dataset", workspace=workspace) -dataset.to_disk(path="path/to/dataset") +dataset = client.datasets(name="my_dataset") + +dataset.to_disk(path="") ``` This will save the dataset's configuration and records to the specified path. If you only want to save the dataset's configuration, you can set the `with_records` parameter to `False`. ```python -dataset.to_disk(path="path/to/dataset", with_records=False) +dataset.to_disk(path="", with_records=False) ``` #### Import from Disk @@ -166,14 +171,14 @@ You can load a dataset from your local disk to Argilla. This is useful if you wa ```python import argilla as rg -dataset = rg.Dataset.from_disk(path="path/to/dataset") +dataset = rg.Dataset.from_disk(path="") ``` -!!! note "Directing the dataset to a workspace and name" - You can also specify the workspace and name of the dataset when loading it from the disk. +!!! note "Directing the dataset to a name and workspace" + You can also specify the name and workspace of the dataset when loading it from the disk. ```python - dataset = rg.Dataset.from_disk(path="path/to/dataset", workspace=workspace, name="my_dataset") + dataset = rg.Dataset.from_disk(path="", name="my_dataset", workspace="my_workspace") ``` ## Importing and exporting records @@ -184,22 +189,7 @@ The records alone can be exported from a dataset in Argilla. This is useful if The records can be exported as a dictionary, a list of dictionaries, or a `Dataset` of the `datasets` package. -=== "To the `datasets` package" - - - Records can be exported from `Dataset.records` to the `datasets` package. The `to_dataset` method can be used to export records to the `datasets` package. You can specify the name of the dataset and the split to export the records. - - ```python - import argilla as rg - - client = rg.Argilla(api_url="", api_key="") - dataset = client.datasets(name="my_dataset") - - # Export records as a dictionary - exported_ds = dataset.records.to_datasets() - ``` - -=== "To a Python dictionary" +=== "To a python dictionary" Records can be exported from `Dataset.records` as a dictionary. The `to_dict` method can be used to export records as a dictionary. You can specify the orientation of the dictionary output. You can also decide if to flatten or not the dictionary. @@ -217,7 +207,7 @@ The records can be exported as a dictionary, a list of dictionaries, or a `Datas exported_records = dataset.records.to_dict(orient="index") # {"uuid": {'fields': {'text': 'Hello'}, 'suggestions': {'label': {'value': 'positive'}}}, {"uuid": {'fields': {'text': 'World'}, 'suggestions': {'label': {'value': 'negative'}}}, - # Export records as a dictionary with flatten=false + # Export records as a dictionary with flatten=True exported_records = dataset.records.to_dict(flatten=True) # {"text": ["Hello", "World"], "label.suggestion": ["greeting", "greeting"]} ``` @@ -239,11 +229,26 @@ The records can be exported as a dictionary, a list of dictionaries, or a `Datas exported_records = dataset.records.to_list() # [{'fields': {'text': 'Hello'}, 'suggestion': {'label': {value: 'greeting'}}}, {'fields': {'text': 'World'}, 'suggestion': {'label': {value: 'greeting'}}}] - # Export records as a list of dictionaries with flatten=False + # Export records as a list of dictionaries with flatten=True exported_records = dataset.records.to_list(flatten=True) # [{"text": "Hello", "label": "greeting"}, {"text": "World", "label": "greeting"}] ``` +=== "To the `datasets` package" + + + Records can be exported from `Dataset.records` to the `datasets` package. The `to_dataset` method can be used to export records to the `datasets` package. You can specify the name of the dataset and the split to export the records. + + ```python + import argilla as rg + + client = rg.Argilla(api_url="", api_key="") + dataset = client.datasets(name="my_dataset") + + # Export records as a dictionary + exported_dataset = dataset.records.to_datasets() + ``` + ### Import records To import records to a dataset, use the `rg.Datasets.records.log` method. There is a guide on how to do this in [How-to guides - Record](./record.md), or you can check the [Record - Python Reference](../reference/argilla/records/records.md). \ No newline at end of file diff --git a/argilla/docs/how_to_guides/query.md b/argilla/docs/how_to_guides/query.md index 3220e7ed80..9d1aab1c7a 100644 --- a/argilla/docs/how_to_guides/query.md +++ b/argilla/docs/how_to_guides/query.md @@ -42,9 +42,7 @@ To search for records with terms, you can use the `Dataset.records` attribute wi client = rg.Argilla(api_url="", api_key="") - workspace = client.workspaces("my_workspace") - - dataset = client.datasets(name="my_dataset", workspace=workspace) + dataset = client.datasets(name="my_dataset", workspace="my_workspace") query = rg.Query(query="my_term") @@ -58,9 +56,7 @@ To search for records with terms, you can use the `Dataset.records` attribute wi client = rg.Argilla(api_url="", api_key="") - workspace = client.workspaces("my_workspace") - - dataset = client.datasets(name="my_dataset", workspace=workspace) + dataset = client.datasets(name="my_dataset", workspace="my_workspace") query = rg.Query(query="my_term1 my_term2") @@ -85,9 +81,7 @@ You can use the `Filter` class to define the conditions and pass them to the `Da client = rg.Argilla(api_url="", api_key="") - workspace = client.workspaces("my_workspace") - - dataset = client.datasets(name="my_dataset", workspace=workspace) + dataset = client.datasets(name="my_dataset", workspace="my_workspace") filter_label = rg.Filter(("label", "==", "positive")) @@ -103,9 +97,7 @@ You can use the `Filter` class to define the conditions and pass them to the `Da client = rg.Argilla(api_url="", api_key="") - workspace = client.workspaces("my_workspace") - - dataset = client.datasets(name="my_dataset", workspace=workspace) + dataset = client.datasets(name="my_dataset", workspace="my_workspace") filters = rg.Filter( [ @@ -117,23 +109,20 @@ You can use the `Filter` class to define the conditions and pass them to the `Da ) filtered_records = dataset.records( - query=rg.Query(filter=filters), - with_suggestions=True, + query=rg.Query(filter=filters), with_suggestions=True ).to_list(flatten=True) ``` ## Filter by status -You can filter records based on record or response status. Record status can be `pending` or `completed` and response status can be `pending`, `draft`, `submitted`, or `discarded`. +You can filter records based on record or response status. Record status can be `pending` or `completed`, and response status can be `pending`, `draft`, `submitted`, or `discarded`. ```python import argilla as rg client = rg.Argilla(api_url="", api_key="") -workspace = client.workspaces("my_workspace") - -dataset = client.datasets(name="my_dataset", workspace=workspace) +dataset = client.datasets(name="my_dataset", workspace="my_workspace") status_filter = rg.Query( filter=rg.Filter( @@ -156,9 +145,7 @@ import argilla as rg client = rg.Argilla(api_url="", api_key="") -workspace = client.workspaces("my_workspace") - -dataset = client.datasets(name="my_dataset", workspace=workspace) +dataset = client.datasets(name="my_dataset", workspace="my_workspace") query_filter = rg.Query( query="my_term", diff --git a/argilla/docs/how_to_guides/record.md b/argilla/docs/how_to_guides/record.md index dd4ae0f928..14c64d7806 100644 --- a/argilla/docs/how_to_guides/record.md +++ b/argilla/docs/how_to_guides/record.md @@ -8,7 +8,7 @@ This guide provides an overview of records, explaining the basics of how to defi A **record** in Argilla is a data item that requires annotation, consisting of one or more fields. These are the pieces of information displayed to the user in the UI to facilitate the completion of the annotation task. Each record also includes questions that annotators are required to answer, with the option of adding suggestions and responses to assist them. Guidelines are also provided to help annotators effectively complete their tasks. -> A record is part of a dataset, so you will need to create a dataset before adding records. Check these guides to learn how to [create a dataset](dataset.md). +> A record is part of a dataset, so you will need to create a dataset before adding records. Check this guide to learn how to [create a dataset](dataset.md). !!! info "Main Class" @@ -26,10 +26,10 @@ A **record** in Argilla is a data item that requires annotation, consisting of o "my_vector": [0.1, 0.2, 0.3], }, suggestions=[ - rg.suggestion("my_label", "positive", score=0.9, agent="model_name") + rg.Suggestion("my_label", "positive", score=0.9, agent="model_name") ], responses=[ - rg.response("label", "positive", user_id=user_id) + rg.Response("label", "positive", user_id=user_id) ], ) ``` @@ -74,7 +74,7 @@ You can add records to a dataset in two different ways: either by using a dictio dataset.records.log(records) ``` - 1. This is an illustration of a definition. In a real world scenario, you would iterate over a data structure and create `Record` objects for each iteration. + 1. This is an illustration of a definition. In a real-world scenario, you would iterate over a data structure and create `Record` objects for each iteration. === "From a generic data structure" @@ -82,7 +82,7 @@ You can add records to a dataset in two different ways: either by using a dictio If your data structure does not correspond to your Argilla dataset names, you can use a `mapping` to indicate which keys in the source data correspond to the dataset fields. - We illustrate this python dictionaries that represent your data, but we would not advise you to define dictionaries. Instead use the `Record` object for instantiating records. + We illustrate this python dictionaries that represent your data, but we would not advise you to define dictionaries. Instead, use the `Record` object to instantiate records. ```python import argilla as rg @@ -104,7 +104,7 @@ You can add records to a dataset in two different ways: either by using a dictio ] dataset.records.log(data) - # Add records to the dataset with the a mapping of the fields 'question' and 'answer' + # Add records to the dataset with a mapping of the fields 'question' and 'answer' data = [ { "query": "Do you need oxygen to breathe?", @@ -119,7 +119,7 @@ You can add records to a dataset in two different ways: either by using a dictio ``` 1. The data structure's keys must match the fields or questions in the Argilla dataset. In this case, there are fields named `question` and `answer`. - 2. The data structure has keys `query` and `response` and the Argilla dataset has fields `question` and `answer`. You can use the `mapping` parameter to map the keys in the data structure to the fields in the Argilla dataset. + 2. The data structure has keys `query` and `response`, and the Argilla dataset has fields `question` and `answer`. You can use the `mapping` parameter to map the keys in the data structure to the fields in the Argilla dataset. === "From a Hugging Face dataset" @@ -129,8 +129,6 @@ You can add records to a dataset in two different ways: either by using a dictio You can add the dataset where the column names correspond to the names of fields, metadata or vectors in the Argilla dataset. ```python - from uuid import uuid4 - import argilla as rg from datasets import load_dataset @@ -149,10 +147,12 @@ You can add records to a dataset in two different ways: either by using a dictio If the Hugging Face dataset's schema does not correspond to your Argilla dataset field names, you can use a `mapping` to specify the relationship. You should indicate as key the column name of the Hugging Face dataset and, as value, the field name of the Argilla dataset. ```python - dataset.records.log(records=hf_dataset, mapping={"text": "review", "label": "sentiment"}) # (1) + dataset.records.log( + records=hf_dataset, mapping={"text": "review", "label": "sentiment"} + ) # (1) ``` - 1. In this case, the `text` key in the Hugging Face dataset would correspond to the `review` field in the Argilla dataset, and the `label` key in the Hugging Face dataset would correspond to the `sentiment` field in the Argilla dataset. + 3. In this case, the `text` key in the Hugging Face dataset would correspond to the `review` field in the Argilla dataset, and the `label` key in the Hugging Face dataset would correspond to the `sentiment` field in the Argilla dataset. ### Metadata @@ -176,14 +176,14 @@ Record metadata can include any information about the record that is not part of "question": "Do you need oxygen to breathe?", "answer": "Yes" }, - metadata={"category": "A"}, + metadata={"my_metadata": "option_1"}, ), rg.Record( fields={ "question": "What is the boiling point of water?", "answer": "100 degrees Celsius" }, - metadata={"category": "B"}, + metadata={"my_metadata": "option_1"}, ), ] dataset.records.log(records) @@ -199,12 +199,12 @@ Record metadata can include any information about the record that is not part of { "question": "Do you need oxygen to breathe?", "answer": "Yes", - "category": "A", + "my_metadata": "option_1", }, { "question": "What is the boiling point of water?", "answer": "100 degrees Celsius", - "category": "B", + "my_metadata": "option_1", }, ] dataset.records.log(data) @@ -427,12 +427,12 @@ for record in dataset.records( # Access the responses of the record for response in record.responses: - print(record[""].value) + print(response.value) ``` ## Update records -You can update records in a dataset calling the `log` method on the `Dataset` object. To update a record, you need to provide the record `id` and the new data to be updated. +You can update records in a dataset by calling the `log` method on the `Dataset` object. To update a record, you need to provide the record `id` and the new data to be updated. ```python data = dataset.records.to_list(flatten=True) @@ -449,7 +449,7 @@ dataset.records.log(records=updated_data) ``` === "Update the metadata" - The `metadata` of `Record` object is a python dictionary. So to update the metadata of a record, you can iterate over the records and update the metadata by key or using `metadata.update`. After that, you should update the records in the dataset. + The `metadata` of the `Record` object is a python dictionary. To update it, you can iterate over the records and update the metadata by key. After that, you should update the records in the dataset. !!! tip Check the [Metadata - Python Reference](../reference/argilla/records/metadata.md) for different formats per `MetadataProperty` type. @@ -468,15 +468,15 @@ dataset.records.log(records=updated_data) ``` === "Update vectors" - When a new vector field is added to the dataset settings, or some value for the existing record vectors must updated, you can iterate over the records and update the vectors in the same way as the metadata. + If a new vector field is added to the dataset settings or some value for the existing record vectors must be updated, you can iterate over the records and update the vectors by key. After that, you should update the records in the dataset. ```python updated_records = [] for record in dataset.records(with_vectors=True): - record.vectors["new_vector"] = [ 0, 1, 2, 3, 4, 5 ] - record.vectors["v"] = [ 0.1, 0.2, 0.3 ] + record.vectors["my_vector"] = [ 0, 1, 2, 3, 4, 5 ] + record.vectors["my_new_vector"] = [ 0, 1, 2, 3, 4, 5 ] updated_records.append(record) @@ -484,7 +484,7 @@ dataset.records.log(records=updated_data) ``` === "Update suggestions" - When you want to add a suggestion or when some value for the existing record suggestions must updated, you can iterate over the records and update the suggestions in the same way as the metadata. + If some value for the existing record suggestions must be updated, you can iterate over the records and update the suggestions by key. You can also add a suggestion using the `add` method. After that, you should update the records in the dataset. !!! tip Check the [Suggestions - Python Reference](../reference/argilla/records/suggestions.md) for different formats per `Question` type. @@ -495,13 +495,11 @@ dataset.records.log(records=updated_data) for record in dataset.records(with_suggestions=True): # We can update existing suggestions - record.suggestions["label"].value = "new_value" record.suggestions["label"].score = 0.9 record.suggestions["label"].agent = "model_name" # We can also add new suggestions with the `add` method: - if not record.suggestions["label"]: record.suggestions.add( rg.Suggestion("value", "label", score=0.9, agent="model_name") @@ -513,7 +511,7 @@ dataset.records.log(records=updated_data) ``` === "Update responses" - When you want to add a suggestion or when the existing record response must updated, you can iterate over the records and update the responses in the same way as the metadata. + If some value for the existing record responses must be updated, you can iterate over the records and update the responses by key. You can also add a response using the `add` method. After that, you should update the records in the dataset. !!! tip Check the [Responses - Python Reference](../reference/argilla/records/responses.md) for different formats per `Question` type. @@ -523,17 +521,14 @@ dataset.records.log(records=updated_data) for record in dataset.records(with_responses=True): - # We can update existing responses - for response in record.responses["label"]: - response.value = "new_value" - response.user_id = UUID("existing_user_id") - # We can also add new responses with the `add` method: + if response: + response.value = "new_value" + response.user_id = "existing_user_id" - record.responses.add( - rg.Response("label", "positive", user_id=user.id) - ) + else: + record.responses.add(rg.Response("label", "YES", user_id=user.id)) updated_records.append(record) diff --git a/argilla/docs/how_to_guides/use_markdown_to_format_rich_content.md b/argilla/docs/how_to_guides/use_markdown_to_format_rich_content.md index 025ebbd0bf..e5eece8302 100644 --- a/argilla/docs/how_to_guides/use_markdown_to_format_rich_content.md +++ b/argilla/docs/how_to_guides/use_markdown_to_format_rich_content.md @@ -42,7 +42,7 @@ Argilla has basic multi-modal support in different ways, each with pros and cons ### Local content through DataURLs -A DataURL is a scheme that allows data to be encoded into a base64-encoded string, and then embedded directly into HTML. To facilitate this, we offer some functions: `image_to_html`, `audio_to_html`, `video_to_thml` and `pdf_to_html`. These functions accept either the file path or the file's byte data and return the corresponding HTMurl to render the media file within the Argilla user interface. Additionally, you can also set the `width` and `height` in pixel or percentage for video and image (defaults to the original dimensions) and the autoplay and loop attributes to True for audio and video (defaults to False). +A DataURL is a scheme that allows data to be encoded into a base64-encoded string and then embedded directly into HTML. To facilitate this, we offer some functions: `image_to_html`, `audio_to_html`, `video_to_thml`, and `pdf_to_html`. These functions accept either the file path or the file's byte data and return the corresponding HTMurl to render the media file within the Argilla user interface. Additionally, you can also set the `width` and `height` in pixel or percentage for video and image (defaults to the original dimensions) and the autoplay and loop attributes to True for audio and video (defaults to False). !!! warning DataURLs increase the memory usage of the original filesize. Additionally, different browsers enforce different size limitations for rendering DataURLs which might block the visualization experience per user. @@ -87,7 +87,7 @@ A DataURL is a scheme that allows data to be encoded into a base64-encoded strin from argilla.markdown import video_to_thml html = video_to_html( - "my_video.mp4", + "local_video_file.mp4", width="300px", height="300px", autoplay=True, @@ -105,7 +105,7 @@ A DataURL is a scheme that allows data to be encoded into a base64-encoded strin from argilla.markdown import pdf_to_html html = pdf_to_html( - "local_pdf.pdf", + "local_pdf_file.pdf", width="300px", height="300px" ) diff --git a/argilla/docs/how_to_guides/user.md b/argilla/docs/how_to_guides/user.md index 9b834ea6ff..ac8ec9d3b2 100644 --- a/argilla/docs/how_to_guides/user.md +++ b/argilla/docs/how_to_guides/user.md @@ -6,7 +6,7 @@ description: In this section, we will provide a step-by-step guide to show how t This guide provides an overview of user roles and credentials, explaining how to set up and manage users in Argilla. -A **user** in Argilla is an authorized person, who depending on their role, can use the Python SDK and access the UI in a running Argilla instance. We differentiate between three types of users depending on their role, permissions and needs: `owner`, `admin` and `annotator`. +A **user** in Argilla is an authorized person who, depending on their role, can use the Python SDK and access the UI in a running Argilla instance. We differentiate between three types of users depending on their role, permissions and needs: `owner`, `admin` and `annotator`. === "Overview" | | Owner | Admin | Annotator | @@ -48,8 +48,14 @@ A **user** in Argilla is an authorized person, who depending on their role, can Only users with the `owner` role can manage (create, retrieve, delete) other users. +## Initial users and credentials -For the new users, the username and password are set during the creation process. The API key is automatically generated and can be copied from the "Settings" section of the UI. +Depending on [your Argilla deployment](../getting_started/quickstart.md), the initial user with the `owner` role will vary. + +* If you deploy on the Hugging Face Hub, the initial user will correspond to the Space owner (your personal account). The API key is automatically generated and can be copied from the "Settings" section of the UI. +* If you deploy with Docker, the default values for the environment variables are: USERNAME: argilla, PASSWORD: 12345678, API_KEY: argilla.apikey. + +For the new users, the username and password are set during the creation process. The API key can be copied from the "Settings" section of the UI. !!! info "Main Class" @@ -89,7 +95,6 @@ client = rg.Argilla(api_url="", api_key="") user_to_create = rg.User( username="my_username", password="12345678", - client=client ) created_user = user_to_create.create() @@ -116,26 +121,42 @@ for user in users: ## Retrieve a user -You can retrieve an existing user from Argilla by accessing the `users` attribute on the `Argilla` class and passing the `username` as an argument. +You can retrieve an existing user from Argilla by accessing the `users` attribute on the `Argilla` class and passing the `username` or `id` as an argument. If the user does not exist, a warning message will be raised and `None` will be returned. -```python -import argilla as rg +=== "By username" -client = rg.Argilla(api_url="", api_key="") + ```python + import argilla as rg -retrieved_user = client.users("my_username") -``` + client = rg.Argilla(api_url="", api_key="") + + retrieved_user = client.users("my_username") + ``` + +=== "By id" + + ```python + import argilla as rg + + client = rg.Argilla(api_url="", api_key="") + + retrieved_user = client.users(id="") + ``` + +## Check user existence + +You can check if a user exists. The `client.users` method will return `None` if the user was not found. -You can also use the user `id` to fetch the user: ```python import argilla as rg client = rg.Argilla(api_url="", api_key="") -user = client.users(id="") -``` +user = client.users("my_username") -If the user does not exist for the given id, the call will return `None` +if user is not None: + pass +``` ## List users in a workspace diff --git a/argilla/docs/how_to_guides/workspace.md b/argilla/docs/how_to_guides/workspace.md index 4c31ba0d3e..6fa7335085 100644 --- a/argilla/docs/how_to_guides/workspace.md +++ b/argilla/docs/how_to_guides/workspace.md @@ -14,14 +14,12 @@ A **workspace** is a *space* inside your Argilla instance where authorized users A user with the `admin` role can only read the workspace to which it belongs. -## Default workspaces +## Initial workspaces -Argilla provides a default workspace to help you get started in Python and the UI. The name of this workspace varies depending on the server configuration. +Depending on [your Argilla deployment](../getting_started/quickstart.md), the initial workspace will vary. -| Environment | Name | -|-------------------------------|----------| -| Quickstart Docker and HF Space | admin | -| Server image | argilla | +* If you deploy on the Hugging Face Hub, the initial workspace will be the one indicated in the `.oauth.yaml` file. By default, `argilla`. +* If you deploy with Docker, you will need to create a workspace as shown [in the next section](#create-a-new-workspace). !!! info "Main Class" @@ -44,13 +42,9 @@ import argilla as rg client = rg.Argilla(api_url="", api_key="") -workspace_to_create = rg.Workspace( - name="my_workspace", - client=client -) +workspace_to_create = rg.Workspace(name="my_workspace") created_workspace = workspace_to_create.create() -created_workspace ``` !!! tip "Accessing attributes" Access the attributes of a workspace by calling them directly on the `Workspace` object. For example, `workspace.id` or `workspace.name`. @@ -74,30 +68,31 @@ for workspace in workspaces: ## Retrieve a workspace -You can retrieve a workspace by accessing the `workspaces` method on the `Argilla` class and passing the name of the workspace as an argument. +You can retrieve a workspace by accessing the `workspaces` method on the `Argilla` class and passing the `name` or `id` of the workspace as an argument. If the workspace does not exist, a warning message will be raised and `None` will be returned. -```python -import argilla as rg +=== "By name" -client = rg.Argilla(api_url="", api_key="") + ```python + import argilla as rg -retrieved_workspace = client.workspaces("my_workspace") -``` + client = rg.Argilla(api_url="", api_key="") -You can also use the user `id` to fetch the workspace: -```python -import argilla as rg + retrieved_workspace = client.workspaces("my_workspace") + ``` -client = rg.Argilla(api_url="", api_key="") +=== "By id" -workspace = client.workspaces(id="") -``` + ```python + import argilla as rg -If the workspace does not exist for the given id, the call will return `None`. + client = rg.Argilla(api_url="", api_key="") + + retrieved_workspace = client.workspaces(id="") + ``` ## Check workspace existence -You can check if a workspace exists. The `client.workspaces` method will return `None` if the workspace was not found. +You can check if a workspace exists. The `client.workspaces` method will return `None` if the workspace is not found. ```python import argilla as rg @@ -106,7 +101,8 @@ client = rg.Argilla(api_url="", api_key="") workspace = client.workspaces("my_workspace") -workspace_exists = workspace is not None +if workspace is not None: + pass ``` ## List users in a workspace @@ -172,4 +168,4 @@ client = rg.Argilla(api_url="", api_key="") workspace_to_delete = client.workspaces("my_workspace") deleted_workspace = workspace_to_delete.delete() -``` \ No newline at end of file +``` diff --git a/argilla/docs/reference/argilla-server/telemetry.md b/argilla/docs/reference/argilla-server/telemetry.md index e40a9989a2..903d7cc856 100644 --- a/argilla/docs/reference/argilla-server/telemetry.md +++ b/argilla/docs/reference/argilla-server/telemetry.md @@ -45,10 +45,10 @@ The following usage and error information is reported: * The system’s release version, e.g. `Darwin Kernel Version 21.5.0: Tue Apr 26 21:08:22 PDT 2022; root:xnu-8020` * The machine type, e.g. `AMD64` * The underlying platform spec with as much useful information as possible. (eg. `macOS-10.16-x86_64-i386-64bit`) -* The type of deployment: `quickstart` or `server` +* The type of deployment: `huggingface_space` or `server` * The dockerized deployment flag: `True` or `False` -For transparency, you can inspect the source code where this is performed [here](https://github.com/argilla-io/argilla/blob/main/src/argilla/utils/telemetry.py). +For transparency, you can inspect the source code where this is performed [here](https://github.com/argilla-io/argilla/blob/main/argilla-server/src/argilla_server/utils/_telemetry.py). If you have any doubts, don't hesitate to join our [Discord channel](http://hf.co/join/discord) or open a GitHub issue. We'd be very happy to discuss how we can improve this. diff --git a/argilla/docs/tutorials/text_classification.ipynb b/argilla/docs/tutorials/text_classification.ipynb index b33cd83a98..d15d02c7d9 100644 --- a/argilla/docs/tutorials/text_classification.ipynb +++ b/argilla/docs/tutorials/text_classification.ipynb @@ -33,18 +33,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "### Run the Argilla server" + "### Deploy the Argilla server" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "If you have already deployed Argilla Server, you can skip this step. Otherwise, you can quickly deploy it in two different ways:\n", - "\n", - "* Remotely using a [HF Space](https://huggingface.co/new-space?template=argilla/argilla-template-space). ⚠️ If persistent storage is not enabled, you will lose your data when the server is stopped.\n", - "\n", - "* Locally using Docker: `docker run -d --name quickstart -p 6900:6900 argilla/argilla-quickstart:v2.0.0rc2`" + "If you already have deployed Argilla, you can skip this step. Otherwise, you can quickly deploy Argilla following [this guide](../getting_started/quickstart.md)." ] }, { diff --git a/argilla/docs/tutorials/token_classification.ipynb b/argilla/docs/tutorials/token_classification.ipynb index 96a77fa676..d15398d5a7 100644 --- a/argilla/docs/tutorials/token_classification.ipynb +++ b/argilla/docs/tutorials/token_classification.ipynb @@ -33,14 +33,14 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "If you have already deployed Argilla Server, you can skip this step. Otherwise, you can quickly deploy it in two different ways:\n", - "\n", - "- Remotely using a [HF Space](https://huggingface.co/new-space?template=argilla/argilla-template-space). ⚠️ If persistent storage is not enabled, you will lose your data when the server is stopped.\n", - "\n", - "!!! note\n", - " As this is a release candidate version, you'll need to manually change the version in the HF Space Files > Dockerfile to `argilla/argilla-quickstart:v2.0.0rc2`.\n", - "\n", - "- Locally using Docker: `docker run -d --name quickstart -p 6900:6900 argilla/argilla-quickstart:v2.0.0rc2`\n" + "### Deploy the Argilla server" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you already have deployed Argilla, you can skip this step. Otherwise, you can quickly deploy Argilla following [this guide](../getting_started/quickstart.md)." ] }, { @@ -63,7 +63,7 @@ "metadata": {}, "outputs": [], "source": [ - "!pip install argilla --pre" + "!pip install argilla" ] }, { @@ -371,7 +371,7 @@ "After the annotation, we will have a robust dataset to train our model for entity recognition. For our case, we will train a SpanMarker model, but you can select any model of your choice. So, let's start by retrieving the annotated records.\n", "\n", "!!! note\n", - " Check this [how-to guide](../how_to_guides/query_export.md) to learn more about filtering and querying in Argilla.\n" + " Check this [how-to guide](../how_to_guides/query.md) to learn more about filtering and querying in Argilla.\n" ] }, { diff --git a/argilla/mkdocs.yml b/argilla/mkdocs.yml index 47cb31682b..0ad46fe8ca 100644 --- a/argilla/mkdocs.yml +++ b/argilla/mkdocs.yml @@ -1,6 +1,6 @@ # Project information site_name: Argilla Docs -site_url: https://argilla-io.github.io/argilla/ +site_url: https://docs.argilla.io/ site_author: Argilla, Inc. site_description: Data-centric tool for AI builders copyright: Copyright © 2017 - 2024 Argilla @@ -103,7 +103,7 @@ plugins: - gen-files: scripts: - docs/scripts/gen_changelog.py - # - docs/scripts/gen_popular_issues.py + - docs/scripts/gen_popular_issues.py # - docs/scripts/gen_ref_pages.py - literate-nav: nav_file: SUMMARY.md diff --git a/docs/_source/_common/getting_started.html b/docs/_source/_common/getting_started.html index 71d5e347c3..dd7958c8ed 100644 --- a/docs/_source/_common/getting_started.html +++ b/docs/_source/_common/getting_started.html @@ -2,4 +2,4 @@

Setup Argilla#

Before getting started with the actual tutorial we require you to set-up argilla. This is a simple process and can be done in a few steps which are shown in our quickstart section. --> \ No newline at end of file + href="https://docs.v1.argilla.io/en/latest/getting_started/quickstart.html">quickstart section. --> \ No newline at end of file diff --git a/docs/_source/_common/next_steps.html b/docs/_source/_common/next_steps.html index 7158763afa..4ce96f983e 100644 --- a/docs/_source/_common/next_steps.html +++ b/docs/_source/_common/next_steps.html @@ -6,5 +6,5 @@

Next stepsGithub repo to stay updated.

-

📚 Argilla documentation for more guides and +

📚 Argilla documentation for more guides and tutorials.

\ No newline at end of file diff --git a/docs/_source/_common/snippets/training/feedback-task/question-answering.md b/docs/_source/_common/snippets/training/feedback-task/question-answering.md index 1c34cf616a..ac8822b7eb 100644 --- a/docs/_source/_common/snippets/training/feedback-task/question-answering.md +++ b/docs/_source/_common/snippets/training/feedback-task/question-answering.md @@ -3,7 +3,7 @@ title: Question Answering description: When two TextFields and a TextQuestion are present in the datasets, we can define a TrainingTaskForQuestionAnswering to use our ArgillaTrainer integration for fine-tuning with "transformers". links: - linkText: Practical guide to Question Answering - linkLink: https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#question-answering + linkLink: https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#question-answering --- ```python diff --git a/docs/_source/_common/snippets/training/feedback-task/rlhf.md b/docs/_source/_common/snippets/training/feedback-task/rlhf.md index 357f2c5358..341590b118 100644 --- a/docs/_source/_common/snippets/training/feedback-task/rlhf.md +++ b/docs/_source/_common/snippets/training/feedback-task/rlhf.md @@ -3,11 +3,11 @@ title: RLHF description: Reinforcement Learning with Human Feedback (RLHF) proved to be the driving force behind the power of ChatGPT and other LLMs. Argilla does provides an integration for Reinforcement Learning with Human Feedback (RLHF) with the ArgillaTrainer class. Generally, this is done in three steps (1) SFT, (2) Reward Modeling and (3) PPO. links: - linkText: Practical guide to SFT - linkLink: https://docs.argilla.io/en/latest/guides/llms/practical_guides/fine_tune.html#supervised-finetuning + linkLink: https://docs.v1.argilla.io/en/latest/guides/llms/practical_guides/fine_tune.html#supervised-finetuning - linkText: Practical Guide to Reward Modeling - linkLink: https://docs.argilla.io/en/latest/guides/llms/practical_guides/fine_tune.html#reward-modeling + linkLink: https://docs.v1.argilla.io/en/latest/guides/llms/practical_guides/fine_tune.html#reward-modeling - linkText: Practical Guide to PPO - linkLink: https://docs.argilla.io/en/latest/guides/llms/practical_guides/fine_tune.html#proximal-policy-optimization + linkLink: https://docs.v1.argilla.io/en/latest/guides/llms/practical_guides/fine_tune.html#proximal-policy-optimization --- ```python diff --git a/docs/_source/_common/snippets/training/feedback-task/sentence-similarity.md b/docs/_source/_common/snippets/training/feedback-task/sentence-similarity.md index b80d523e6a..a30305b3fd 100644 --- a/docs/_source/_common/snippets/training/feedback-task/sentence-similarity.md +++ b/docs/_source/_common/snippets/training/feedback-task/sentence-similarity.md @@ -3,7 +3,7 @@ title: Sentence Similarity description: When we have two TextFields in the datasets and potentially a LabelQuestion or RankingQuestion, we can define a TrainingTaskForSentenceSimilarity to use our ArgillaTrainer integration for fine-tuning with "sentence-transformers" to train a model for sentence similarity to optimize Retrieval Augmented Generation tasks (RAG) with better retrieval and reranking. links: - linkText: Practical guide to Sentence Similarity - linkLink: https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#sentence-similarity + linkLink: https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#sentence-similarity --- ```python diff --git a/docs/_source/_common/snippets/training/feedback-task/text-classification.md b/docs/_source/_common/snippets/training/feedback-task/text-classification.md index 61c15dd7c4..fc90098de3 100644 --- a/docs/_source/_common/snippets/training/feedback-task/text-classification.md +++ b/docs/_source/_common/snippets/training/feedback-task/text-classification.md @@ -3,9 +3,9 @@ title: Text classification description: When a RatingQuestion, LabelQuestion or MultiLabelQuestion is present in the datasets, we can define a TrainingTaskForTextClassification to use our ArgillaTrainer integration for fine-tuning with "openai", "setfit", "peft", "spacy" and "transformers". links: - linkText: Argilla unification docs - linkLink: https://docs.argilla.io/en/latest/practical_guides/collect_responses.html#solve-disagreements + linkLink: https://docs.v1.argilla.io/en/latest/practical_guides/collect_responses.html#solve-disagreements - linkText: Practical guide to Text Classification - linkLink: https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#text-classification + linkLink: https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#text-classification --- ```python diff --git a/docs/_source/_common/snippets/training/text-classification/openai.md b/docs/_source/_common/snippets/training/text-classification/openai.md index 38184edb82..3d601be485 100644 --- a/docs/_source/_common/snippets/training/text-classification/openai.md +++ b/docs/_source/_common/snippets/training/text-classification/openai.md @@ -3,7 +3,7 @@ title: OpenAI description: The ArgillaOpenAITrainer leverages the features of OpenAI to fine-tune programmatically with Argilla. links: - linkText: Argilla docs - linkLink: https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#text-classification + linkLink: https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#text-classification - linkText: OpenAI docs linkLink: https://platform.openai.com/docs/guides/fine-tuning --- diff --git a/docs/_source/_common/snippets/training/text-classification/peft.md b/docs/_source/_common/snippets/training/text-classification/peft.md index 188480c977..0bef2d1b12 100644 --- a/docs/_source/_common/snippets/training/text-classification/peft.md +++ b/docs/_source/_common/snippets/training/text-classification/peft.md @@ -3,7 +3,7 @@ title: Peft description: The ArgillaPeftTrainer leverages the base features of transformers and uses the Low Rank Adaptation (LoRA) implementation of Parameter Efficient Fine-Tuning (PEFT). links: - linkText: Argilla docs - linkLink: https://docs.argilla.io/en/practical_guides/fine_tune.html#text-classification + linkLink: https://docs.v1.argilla.io/en/practical_guides/fine_tune.html#text-classification - linkText: Transformers blog linkLink: https://huggingface.co/blog/peft - linkText: Transformers docss diff --git a/docs/_source/_common/snippets/training/text-classification/setfit.md b/docs/_source/_common/snippets/training/text-classification/setfit.md index 90443fa25f..acc486206b 100644 --- a/docs/_source/_common/snippets/training/text-classification/setfit.md +++ b/docs/_source/_common/snippets/training/text-classification/setfit.md @@ -3,7 +3,7 @@ title: SetFit description: The ArgillaSetFitTrainer leverages the features of SetFit to train programmatically with Argilla. links: - linkText: Argilla docs - linkLink: https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#text-classification + linkLink: https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#text-classification - linkText: SetFit docs linkLink: https://github.com/huggingface/setfit --- diff --git a/docs/_source/_common/snippets/training/text-classification/spacy.md b/docs/_source/_common/snippets/training/text-classification/spacy.md index 37d12996cc..10f45b47ff 100644 --- a/docs/_source/_common/snippets/training/text-classification/spacy.md +++ b/docs/_source/_common/snippets/training/text-classification/spacy.md @@ -3,7 +3,7 @@ title: spaCy description: The ArgillaSpacyTrainer leverages the features of spaCy to train programmatically with Argilla. links: - linkText: Argilla docs - linkLink: https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#text-classification + linkLink: https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#text-classification - linkText: spaCy docs linkLink: https://spacy.io/usage/training --- diff --git a/docs/_source/_common/snippets/training/text-classification/transformers.md b/docs/_source/_common/snippets/training/text-classification/transformers.md index d594c9aa5d..85f06d2706 100644 --- a/docs/_source/_common/snippets/training/text-classification/transformers.md +++ b/docs/_source/_common/snippets/training/text-classification/transformers.md @@ -3,7 +3,7 @@ title: Transformers description: The ArgillaTransformersTrainer leverages the features of transformers to train programmatically with Argilla. links: - linkText: Argilla docs - linkLink: https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#text-classification + linkLink: https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#text-classification - linkText: Transformers docs linkLink: https://huggingface.co/docs/transformers/training --- diff --git a/docs/_source/_common/snippets/training/text2text/openai.md b/docs/_source/_common/snippets/training/text2text/openai.md index 8075dc60db..57151afa01 100644 --- a/docs/_source/_common/snippets/training/text2text/openai.md +++ b/docs/_source/_common/snippets/training/text2text/openai.md @@ -3,7 +3,7 @@ title: OpenAI description: The ArgillaOpenAITrainer leverages the features of OpenAI to fine-tune programmatically with Argilla. links: - linkText: Argilla docs - linkLink: https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#text-classification + linkLink: https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#text-classification - linkText: OpenAI docs linkLink: https://platform.openai.com/docs/guides/fine-tuning --- diff --git a/docs/_source/_common/snippets/training/token-classification/peft.md b/docs/_source/_common/snippets/training/token-classification/peft.md index 780f86ef9a..46e23a7772 100644 --- a/docs/_source/_common/snippets/training/token-classification/peft.md +++ b/docs/_source/_common/snippets/training/token-classification/peft.md @@ -3,7 +3,7 @@ title: PEFT description: The ArgillaPeftTrainer leverages the base features of transformers and uses the Low Rank Adaptation (LoRA) implementation of Parameter Efficient Fine-Tuning (PEFT). links: - linkText: Argilla docs - linkLink: https://docs.argilla.io/en/practical_guides/fine_tune.html#token-classification + linkLink: https://docs.v1.argilla.io/en/practical_guides/fine_tune.html#token-classification - linkText: Transformers blog linkLink: https://huggingface.co/blog/peft - linkText: Transformers docs diff --git a/docs/_source/_common/snippets/training/token-classification/spacy.md b/docs/_source/_common/snippets/training/token-classification/spacy.md index d7efb98b3a..7006e26e6d 100644 --- a/docs/_source/_common/snippets/training/token-classification/spacy.md +++ b/docs/_source/_common/snippets/training/token-classification/spacy.md @@ -3,7 +3,7 @@ title: spaCy description: The ArgillaSpacyTrainer leverages the features of spaCy to train programmatically with Argilla. links: - linkText: Argilla docs - linkLink: https://docs.argilla.io/en/practical_guides/fine_tune.html#token-classification + linkLink: https://docs.v1.argilla.io/en/practical_guides/fine_tune.html#token-classification - linkText: spaCy docs linkLink: https://spacy.io/usage/training --- diff --git a/docs/_source/_common/snippets/training/token-classification/span_marker.md b/docs/_source/_common/snippets/training/token-classification/span_marker.md index 7e08fdf2c4..5120bbb083 100644 --- a/docs/_source/_common/snippets/training/token-classification/span_marker.md +++ b/docs/_source/_common/snippets/training/token-classification/span_marker.md @@ -3,7 +3,7 @@ title: SpanMarker description: The ArgillaSpanMarkerTrainer leverages SpanMarker to programmatically train with Argilla. links: - linkText: Argilla docs - linkLink: https://docs.argilla.io/en/practical_guides/fine_tune.html#token-classification + linkLink: https://docs.v1.argilla.io/en/practical_guides/fine_tune.html#token-classification - linkText: SpanMarker docs linkLink: https://tomaarsen.github.io/SpanMarkerNER --- diff --git a/docs/_source/_common/snippets/training/token-classification/transformers.md b/docs/_source/_common/snippets/training/token-classification/transformers.md index 11de6ce6c6..2ad43d20bf 100644 --- a/docs/_source/_common/snippets/training/token-classification/transformers.md +++ b/docs/_source/_common/snippets/training/token-classification/transformers.md @@ -3,7 +3,7 @@ title: Transformers description: The ArgillaTransformersTrainer leverages the features of transformers to train programmatically with Argilla. links: - linkText: Argilla docs - linkLink: https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#token-classification + linkLink: https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#token-classification - linkText: Transformers docs linkLink: https://huggingface.co/docs/transformers/training --- diff --git a/docs/_source/conf.py b/docs/_source/conf.py index 48dbbe3cc6..0fa1211cc0 100644 --- a/docs/_source/conf.py +++ b/docs/_source/conf.py @@ -349,7 +349,7 @@ # Open graph meta -ogp_image = "https://docs.argilla.io/en/latest/_static/images/og-doc.png" +ogp_image = "https://docs.v1.argilla.io/en/latest/_static/images/og-doc.png" ogp_custom_meta_tags = [ '', diff --git a/docs/_source/getting_started/argilla.md b/docs/_source/getting_started/argilla.md index 921ac65d49..d0fe6cc960 100644 --- a/docs/_source/getting_started/argilla.md +++ b/docs/_source/getting_started/argilla.md @@ -4,7 +4,7 @@ ```{admonition} Argilla 2.x :class: info -We are announcing that Argilla 1.29 is the final minor release for Argilla 1.x. Although we will continue to release bug fixes for this version, we will neither be adding nor removing any functionalities. Visit the [2.x docs](https://argilla-io.github.io/argilla/)! +We are announcing that Argilla 1.29 is the final minor release for Argilla 1.x. Although we will continue to release bug fixes for this version, we will neither be adding nor removing any functionalities. Visit the [2.x docs](https://docs.argilla.io/)! ``` " ] @@ -94,10 +94,10 @@ " * If you're using Docker, it is `http://localhost:6900` by default.\n", " * If you're using HF Spaces, it is constructed as `https://[your-owner-name]-[your_space_name].hf.space`.\n", "* `ARGILLA_API_KEY`: It is the API key of the Argilla Server. It is `owner` by default.\n", - "* `HF_TOKEN`: It is the Hugging Face API token. It is only needed if you're using a [private HF Space](https://docs.argilla.io/en/latest/getting_started/installation/deployments/huggingface-spaces.html#deploy-argilla-on-spaces). You can configure it in your profile: [Setting > Access Tokens](https://huggingface.co/settings/tokens).\n", + "* `HF_TOKEN`: It is the Hugging Face API token. It is only needed if you're using a [private HF Space](https://docs.v1.argilla.io/en/latest/getting_started/installation/deployments/huggingface-spaces.html#deploy-argilla-on-spaces). You can configure it in your profile: [Setting > Access Tokens](https://huggingface.co/settings/tokens).\n", "* `workspace`: It is a “space” inside your Argilla instance where authorized users can collaborate. It's `argilla` by default.\n", "\n", - "For more info about custom configurations like headers, workspace separation or access credentials, check our [config page](https://docs.argilla.io/en/latest/getting_started/installation/configurations/configurations.html)." + "For more info about custom configurations like headers, workspace separation or access credentials, check our [config page](https://docs.v1.argilla.io/en/latest/getting_started/installation/configurations/configurations.html)." ] }, { @@ -219,7 +219,7 @@ " - `prediction`: Add task-specific model predictions to the record (Optional);\n", " - `metadata`: Add some arbitrary metadata to the record (Optional);\n", "\n", - "A [Dataset](https://docs.argilla.io/en/latest/conceptual_guides/data_model.html#other-datasets) in Argilla is a collection of records of the same type." + "A [Dataset](https://docs.v1.argilla.io/en/latest/conceptual_guides/data_model.html#other-datasets) in Argilla is a collection of records of the same type." ] }, { @@ -802,7 +802,7 @@ "id": "054e40cc-51f4-4321-b42a-2301775c0e9f" }, "source": [ - "We can now read this `Dataset` with Argilla, which will automatically create the records and put them in a [Argilla Dataset](https://docs.argilla.io/en/latest/reference/python/python_client.html#argilla.client.datasets.read_datasets)." + "We can now read this `Dataset` with Argilla, which will automatically create the records and put them in a [Argilla Dataset](https://docs.v1.argilla.io/en/latest/reference/python/python_client.html#argilla.client.datasets.read_datasets)." ] }, { @@ -967,7 +967,7 @@ "\n", "To extract English sentences into a new _text_ column we will write a quick helper function and [map](https://huggingface.co/docs/datasets/process#map) the whole `Dataset` with it.\n", "\n", - "French sentences will be extracted into a new _prediction_ column, wrapped in \"[ ]\", as the prediction field of [Text2TextRecord](https://docs.argilla.io/en/latest/reference/python/python_client.html#argilla.client.models.Text2TextRecord) accepts a list of strings or tuples." + "French sentences will be extracted into a new _prediction_ column, wrapped in \"[ ]\", as the prediction field of [Text2TextRecord](https://docs.v1.argilla.io/en/latest/reference/python/python_client.html#argilla.client.models.Text2TextRecord) accepts a list of strings or tuples." ] }, { @@ -1370,7 +1370,7 @@ "Argilla tries to make this relatively cumbersome approach as painless as possible.\n", "Via an intuitive and adaptive UI, its exhaustive search and filter functionalities, and bulk annotation capabilities, Argilla turns the manual annotation process into an efficient option. \n", "\n", - "Look at our dedicated [feature reference](https://docs.argilla.io/en/latest/reference/webapp/features.html) for a detailed and illustrative guide on manually annotating your dataset with Argilla." + "Look at our dedicated [feature reference](https://docs.v1.argilla.io/en/latest/reference/webapp/features.html) for a detailed and illustrative guide on manually annotating your dataset with Argilla." ] }, { @@ -1402,8 +1402,8 @@ "When guided by pre-trained models, it is common to see human annotators get influenced by them.\n", "Therefore, it is advisable to avoid pre-annotations when building a rigorous test set for the final model evaluation.\n", "\n", - "Check the [introduction tutorial](https://docs.argilla.io/en/latest/tutorials/notebooks/labelling-tokenclassification-spacy-pretrained.html) to learn to add predictions to the records.\n", - "And our [feature reference](https://docs.argilla.io/en/latest/reference/webapp/features.html) includes a detailed guide on validating predictions in the Argilla web app." + "Check the [introduction tutorial](https://docs.v1.argilla.io/en/latest/tutorials/notebooks/labelling-tokenclassification-spacy-pretrained.html) to learn to add predictions to the records.\n", + "And our [feature reference](https://docs.v1.argilla.io/en/latest/reference/webapp/features.html) includes a detailed guide on validating predictions in the Argilla web app." ] }, { @@ -1433,8 +1433,8 @@ "The downside of this approach is that it might be challenging to come up with working heuristic rules for some datasets.\n", "Furthermore, rules are rarely 100% precise and often conflict with each other. These noisy labels can be cleaned up using weak supervision and label models, or something as simple as majority voting. It is usually a trade-off between the amount of annotated data and the quality of the labels.\n", "\n", - "Check [our guide](https://docs.argilla.io/en/latest/practical_guides/annotation_workflows/weak_supervision.html) for an extensive introduction to weak supervision with Argilla.\n", - "Also, check the [feature reference](https://docs.argilla.io/en/latest/reference/webapp/features.html#weak-labeling) for the Define rules mode of the web app and our [various tutorials](https://docs.argilla.io/en/latest/tutorials/techniques/weak_supervision.html) to see practical examples of weak supervision workflows." + "Check [our guide](https://docs.v1.argilla.io/en/latest/practical_guides/annotation_workflows/weak_supervision.html) for an extensive introduction to weak supervision with Argilla.\n", + "Also, check the [feature reference](https://docs.v1.argilla.io/en/latest/reference/webapp/features.html#weak-labeling) for the Define rules mode of the web app and our [various tutorials](https://docs.v1.argilla.io/en/latest/tutorials/techniques/weak_supervision.html) to see practical examples of weak supervision workflows." ] }, { @@ -1446,7 +1446,7 @@ "source": [ "## Train a model\n", "\n", - "The `ArgillaTrainer` is a wrapper around many of our favorite NLP libraries. It provides a very intuitive abstract workflow to facilitate simple training workflows using decent default pre-set configurations without having to worry about any data transformations from Argilla. More info [here](https://docs.argilla.io/en/latest/practical_guides/fine_tune.html)." + "The `ArgillaTrainer` is a wrapper around many of our favorite NLP libraries. It provides a very intuitive abstract workflow to facilitate simple training workflows using decent default pre-set configurations without having to worry about any data transformations from Argilla. More info [here](https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html)." ] }, { diff --git a/docs/_source/getting_started/quickstart_workflow_feedback.ipynb b/docs/_source/getting_started/quickstart_workflow_feedback.ipynb index a8d03660af..1fdfcb624a 100644 --- a/docs/_source/getting_started/quickstart_workflow_feedback.ipynb +++ b/docs/_source/getting_started/quickstart_workflow_feedback.ipynb @@ -9,7 +9,7 @@ "\n", "Note\n", " \n", - "This tutorial demonstrates a sample usage for `FeedbackDataset`, which offers implementations different from the old `TextClassificationDataset`, `Text2TextDataset` and `TokenClassificationDataset`. To have info about old datasets, you can have a look at them [here]([../getting_started/quickstart_workflow.html](https://docs.argilla.io/en/latest/getting_started/quickstart_workflow.html)). Not sure which dataset to use? Check out our section on [choosing a dataset](https://docs.argilla.io/en/latest/practical_guides/choose_dataset.html).\n", + "This tutorial demonstrates a sample usage for `FeedbackDataset`, which offers implementations different from the old `TextClassificationDataset`, `Text2TextDataset` and `TokenClassificationDataset`. To have info about old datasets, you can have a look at them [here]([../getting_started/quickstart_workflow.html](https://docs.v1.argilla.io/en/latest/getting_started/quickstart_workflow.html)). Not sure which dataset to use? Check out our section on [choosing a dataset](https://docs.v1.argilla.io/en/latest/practical_guides/choose_dataset.html).\n", " \n", "" ] @@ -90,10 +90,10 @@ " * If you're using Docker, it is `http://localhost:6900` by default.\n", " * If you're using HF Spaces, it is constructed as `https://[your-owner-name]-[your_space_name].hf.space`.\n", "* `ARGILLA_API_KEY`: It is the API key of the Argilla Server. It is `owner` by default.\n", - "* `HF_TOKEN`: It is the Hugging Face API token. It is only needed if you're using a [private HF Space](https://docs.argilla.io/en/latest/getting_started/installation/deployments/huggingface-spaces.html#deploy-argilla-on-spaces). You can configure it in your profile: [Setting > Access Tokens](https://huggingface.co/settings/tokens).\n", + "* `HF_TOKEN`: It is the Hugging Face API token. It is only needed if you're using a [private HF Space](https://docs.v1.argilla.io/en/latest/getting_started/installation/deployments/huggingface-spaces.html#deploy-argilla-on-spaces). You can configure it in your profile: [Setting > Access Tokens](https://huggingface.co/settings/tokens).\n", "* `workspace`: It is a “space” inside your Argilla instance where authorized users can collaborate. It's `argilla` by default.\n", "\n", - "For more info about custom configurations like headers, workspace separation or access credentials, check our [config page](https://docs.argilla.io/en/latest/getting_started/installation/configurations/configurations.html)." + "For more info about custom configurations like headers, workspace separation or access credentials, check our [config page](https://docs.v1.argilla.io/en/latest/getting_started/installation/configurations/configurations.html)." ] }, { @@ -177,7 +177,7 @@ "source": [ "## Create a Dataset\n", "\n", - "FeedbackDataset is the container for Argilla Feedback structure. Argilla Feedback offers different components for FeedbackDatasets that you can employ for various aspects of your workflow. For a more detailed explanation, refer to the [documentation](https://docs.argilla.io/en/latest/practical_guides/practical_guides.html) and the [end-to-end tutorials](https://docs.argilla.io/en/latest/tutorials_and_integrations/tutorials/tutorials.html) for beginners.\n", + "FeedbackDataset is the container for Argilla Feedback structure. Argilla Feedback offers different components for FeedbackDatasets that you can employ for various aspects of your workflow. For a more detailed explanation, refer to the [documentation](https://docs.v1.argilla.io/en/latest/practical_guides/practical_guides.html) and the [end-to-end tutorials](https://docs.v1.argilla.io/en/latest/tutorials_and_integrations/tutorials/tutorials.html) for beginners.\n", "\n", "To start, we need to configure the FeedbackDatasest. To do so, there are two options: use a pre-defined template or create a custom one." ] @@ -189,7 +189,7 @@ "source": [ "### Use a Task Template\n", "\n", - "Argilla offers a set of [pre-defined templates for different tasks](https://docs.argilla.io/en/latest/practical_guides/create_update_dataset/create_dataset.html#task-templates). You can use them to configure your dataset straightforward. For instance, if you want to create a dataset for simple text classification, you can use the following code:" + "Argilla offers a set of [pre-defined templates for different tasks](https://docs.v1.argilla.io/en/latest/practical_guides/create_update_dataset/create_dataset.html#task-templates). You can use them to configure your dataset straightforward. For instance, if you want to create a dataset for simple text classification, you can use the following code:" ] }, { @@ -262,7 +262,7 @@ "source": [ "### Configure a Custom Dataset\n", "\n", - "If your dataset does not fit into one of the pre-defined templates, you [can create a custom dataset](https://docs.argilla.io/en/latest/practical_guides/create_update_dataset/create_dataset.html#define-questions) by defining the fields, the different question types, the metadata properties and the vectors settings." + "If your dataset does not fit into one of the pre-defined templates, you [can create a custom dataset](https://docs.v1.argilla.io/en/latest/practical_guides/create_update_dataset/create_dataset.html#define-questions) by defining the fields, the different question types, the metadata properties and the vectors settings." ] }, { @@ -336,7 +336,7 @@ "\n", "As with other datasets, Feedback datasets also allow to create a training pipeline and make inferences with the resulting model. After you gather responses with Argilla Feedback, you can easily fine-tune an LLM. In this example, we will have to complete a text classification task.\n", "\n", - "For fine-tuning, we will use setfit library and the [Argilla Trainer](https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#the-argillatrainer), which is a powerful wrapper around many of our favorite NLP libraries. It provides a very intuitive abstract representation to facilitate simple training workflows using decent default pre-set configurations without having to worry about any data transformations from Argilla.\n", + "For fine-tuning, we will use setfit library and the [Argilla Trainer](https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#the-argillatrainer), which is a powerful wrapper around many of our favorite NLP libraries. It provides a very intuitive abstract representation to facilitate simple training workflows using decent default pre-set configurations without having to worry about any data transformations from Argilla.\n", "\n", "Let us first create our dataset to train. For this example, we will use the [emotion](https://huggingface.co/datasets/argilla/emotion) dataset from Argilla, which was created using Argilla. Each text item has its responses as 6 different sentiments, which are Sadness, Joy, Love, Anger, Fear and Surprise." ] @@ -383,7 +383,7 @@ "id": "861c3648", "metadata": {}, "source": [ - "We can then start to create a training pipeline by first defining `TrainingTask`, which is used to define how the data should be processed and formatted according to the associated task and framework. Each task has its own classmethod and the data formatting can always be customized via `formatting_func`. You can visit [this page](https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#tasks) for more info. Simpler tasks like text classification can be defined using default definitions, as we do in this example." + "We can then start to create a training pipeline by first defining `TrainingTask`, which is used to define how the data should be processed and formatted according to the associated task and framework. Each task has its own classmethod and the data formatting can always be customized via `formatting_func`. You can visit [this page](https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#tasks) for more info. Simpler tasks like text classification can be defined using default definitions, as we do in this example." ] }, { @@ -487,7 +487,7 @@ "id": "85ad4ad2", "metadata": {}, "source": [ - "We have trained a model with FeedbackDataset in this tutorial. For more info about concepts in Argilla Feedback and LLMs, look [here](https://docs.argilla.io/en/latest/conceptual_guides/llm/llm.html). For a more detailed explanation, refer to the [documentation](https://docs.argilla.io/en/latest/practical_guides/practical_guides.html) and the [end-to-end tutorials](https://docs.argilla.io/en/latest/tutorials_and_integrations/tutorials/tutorials.html) for beginners." + "We have trained a model with FeedbackDataset in this tutorial. For more info about concepts in Argilla Feedback and LLMs, look [here](https://docs.v1.argilla.io/en/latest/conceptual_guides/llm/llm.html). For a more detailed explanation, refer to the [documentation](https://docs.v1.argilla.io/en/latest/practical_guides/practical_guides.html) and the [end-to-end tutorials](https://docs.v1.argilla.io/en/latest/tutorials_and_integrations/tutorials/tutorials.html) for beginners." ] }, { diff --git a/docs/_source/practical_guides/annotation_workflows/job_scheduling.md b/docs/_source/practical_guides/annotation_workflows/job_scheduling.md index 25a5646359..9a59fbd2ed 100644 --- a/docs/_source/practical_guides/annotation_workflows/job_scheduling.md +++ b/docs/_source/practical_guides/annotation_workflows/job_scheduling.md @@ -35,7 +35,7 @@ from argilla.listeners import listener @listener( dataset="my_dataset", # dataset to get record from - query="lucene query", # https://docs.argilla.io/en/latest/guides/query_datasets.html + query="lucene query", # https://docs.v1.argilla.io/en/latest/guides/query_datasets.html execution_interval_in_seconds=3, # interval to check execution of `update_records` ) def update_records(records, ctx): diff --git a/docs/_source/tutorials/notebooks/deploying-textclassification-colab-activelearning.ipynb b/docs/_source/tutorials/notebooks/deploying-textclassification-colab-activelearning.ipynb index dbe798cb6c..cfa6236721 100644 --- a/docs/_source/tutorials/notebooks/deploying-textclassification-colab-activelearning.ipynb +++ b/docs/_source/tutorials/notebooks/deploying-textclassification-colab-activelearning.ipynb @@ -8,7 +8,7 @@ }, "source": [ "# 🚀 Run Argilla with a Transformer in an active learning loop and a free GPU in your browser\n", - "In this tutorial, you will learn how to set up a complete active learning loop with Google Colab with a GPU in the backend. This tutorial is based on the [small-text active learning tutorial](https://docs.argilla.io/en/latest/tutorials/notebooks/training-textclassification-smalltext-activelearning.html). The main difference is that this tutorial is designed to be run in a Google Colab notebook with a GPU as the backend for a more efficient active learning loop with Transformer models. It is recommended to follow this tutorial directly on Google Colab. You can [open the Colab notebook via this hyperlink](https://colab.research.google.com/drive/11oTWno3hzgJnip11EcgqEhdpbW1IX-lP?usp=sharing), create your own copy and modify it for your own use-cases. \n", + "In this tutorial, you will learn how to set up a complete active learning loop with Google Colab with a GPU in the backend. This tutorial is based on the [small-text active learning tutorial](https://docs.v1.argilla.io/en/latest/tutorials/notebooks/training-textclassification-smalltext-activelearning.html). The main difference is that this tutorial is designed to be run in a Google Colab notebook with a GPU as the backend for a more efficient active learning loop with Transformer models. It is recommended to follow this tutorial directly on Google Colab. You can [open the Colab notebook via this hyperlink](https://colab.research.google.com/drive/11oTWno3hzgJnip11EcgqEhdpbW1IX-lP?usp=sharing), create your own copy and modify it for your own use-cases. \n", "\n", "⚠️ Note that this notebook requires manual input to start Argilla in a terminal and to input an ngrok token. Please read the instructions for each cell. If you do not follow the instructions and execute everything in the correct order, the code will bug. If you face an error, restarting your runtime can solve several issues. ⚠️\n", "\n", @@ -110,7 +110,7 @@ "id": "_u7gFMiTBYTs" }, "source": [ - "Elastic Search is a requirement for using Argilla. The [docker installation](https://docs.argilla.io/en/latest/getting_started/quickstart.html) of Elastic Search recommended by Argilla does not work in Google Colab as [Colab does not support docker](https://github.com/googlecolab/colabtools/issues/299). Elastic Search therefore needs to be installed 'manually' with the following code." + "Elastic Search is a requirement for using Argilla. The [docker installation](https://docs.v1.argilla.io/en/latest/getting_started/quickstart.html) of Elastic Search recommended by Argilla does not work in Google Colab as [Colab does not support docker](https://github.com/googlecolab/colabtools/issues/299). Elastic Search therefore needs to be installed 'manually' with the following code." ] }, { @@ -280,7 +280,7 @@ "id": "EObyEHqxhes8" }, "source": [ - "If you click on your public link above, you should be able to access Argilla, but there is no data logged to Argilla yet. The following code downloads an example dataset and logs it to Argilla. You can change the following code to download any other dataset you want to annotate. The following code follows the [active learning with small-text](https://docs.argilla.io/en/latest/tutorials/notebooks/training-textclassification-smalltext-activelearning.html) tutorial and therefore contains fewer explanations. " + "If you click on your public link above, you should be able to access Argilla, but there is no data logged to Argilla yet. The following code downloads an example dataset and logs it to Argilla. You can change the following code to download any other dataset you want to annotate. The following code follows the [active learning with small-text](https://docs.v1.argilla.io/en/latest/tutorials/notebooks/training-textclassification-smalltext-activelearning.html) tutorial and therefore contains fewer explanations. " ] }, { @@ -625,7 +625,7 @@ }, "outputs": [], "source": [ - "## https://docs.argilla.io/en/latest/getting_started/quickstart.html#Manual-extraction\n", + "## https://docs.v1.argilla.io/en/latest/getting_started/quickstart.html#Manual-extraction\n", "\n", "# load your annotations\n", "dataset_annotated = rg.load(DATASET_NAME)\n", diff --git a/docs/_source/tutorials/notebooks/labelling-textclassification-sentencetransformers-semantic.ipynb b/docs/_source/tutorials/notebooks/labelling-textclassification-sentencetransformers-semantic.ipynb index 9fecd1c300..144af598c6 100644 --- a/docs/_source/tutorials/notebooks/labelling-textclassification-sentencetransformers-semantic.ipynb +++ b/docs/_source/tutorials/notebooks/labelling-textclassification-sentencetransformers-semantic.ipynb @@ -772,7 +772,7 @@ "\n", "With Argilla, we can annotate samples using semantic search and the 'find similar' button. There's a complete tutorial on this [here](labelling-textclassification-sentence-transformers-semantic.ipynb). It requires the recently added Similarity search features.\n", "\n", - "![Argilla with images tutorial](https://docs.argilla.io/en/latest/_static/reference/webapp/features-similaritysearch.png)\n", + "![Argilla with images tutorial](https://docs.v1.argilla.io/en/latest/_static/reference/webapp/features-similaritysearch.png)\n", "\n" ] }, diff --git a/docs/_source/tutorials/notebooks/labelling-tokenclassification-using-spacy-llm.ipynb b/docs/_source/tutorials/notebooks/labelling-tokenclassification-using-spacy-llm.ipynb index 46e8e434bc..4a99000831 100644 --- a/docs/_source/tutorials/notebooks/labelling-tokenclassification-using-spacy-llm.ipynb +++ b/docs/_source/tutorials/notebooks/labelling-tokenclassification-using-spacy-llm.ipynb @@ -443,7 +443,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Let us create a list of records from the dataset items. See the [documentation](https://docs.argilla.io/en/latest/reference/python/python_client.html#argilla.client.models.TokenClassificationRecord) for more information on what other fields you can add to your record." + "Let us create a list of records from the dataset items. See the [documentation](https://docs.v1.argilla.io/en/latest/reference/python/python_client.html#argilla.client.models.TokenClassificationRecord) for more information on what other fields you can add to your record." ] }, { @@ -504,7 +504,7 @@ "\n", "\"NER\n", "\n", - "In this tutorial, we have implemented a `spacy-llm` pipeline for the NER task by using model predictions from GPT3.5. In addition, we employed a few-shot learning approach to improve the performance of our model, which is facilitated by `spacy-llm`. You can see more tutorials on the use of `spaCy` with Argilla [here](https://docs.argilla.io/en/latest/tutorials/libraries/spacy.html)" + "In this tutorial, we have implemented a `spacy-llm` pipeline for the NER task by using model predictions from GPT3.5. In addition, we employed a few-shot learning approach to improve the performance of our model, which is facilitated by `spacy-llm`. You can see more tutorials on the use of `spaCy` with Argilla [here](https://docs.v1.argilla.io/en/latest/tutorials/libraries/spacy.html)" ] } ], diff --git a/docs/_source/tutorials/notebooks/ner_fine_tune_bert_beginners.ipynb b/docs/_source/tutorials/notebooks/ner_fine_tune_bert_beginners.ipynb index 956a64547b..4d55a25b92 100644 --- a/docs/_source/tutorials/notebooks/ner_fine_tune_bert_beginners.ipynb +++ b/docs/_source/tutorials/notebooks/ner_fine_tune_bert_beginners.ipynb @@ -42,7 +42,7 @@ "\n", "For this purpose, we will first connect to Argilla and log our [dataset](https://huggingface.co/datasets/argilla/spacy_sm_wnut17), so that we can analyse it in a more visual way.\n", "\n", - ">💡 **Tip:** If you want to try with a different dataset than the one in this tutorial, but it's not yet annotated, Argilla has several tutorials on how to do it [manually](/practical_guides/annotate_dataset.html) or [automatically](https://docs.argilla.io/en/latest/tutorials/notebooks/labelling-tokenclassification-spacy-pretrained.html#Appendix:-Log-datasets-to-the-Hugging-Face-Hub).\n", + ">💡 **Tip:** If you want to try with a different dataset than the one in this tutorial, but it's not yet annotated, Argilla has several tutorials on how to do it [manually](/practical_guides/annotate_dataset.html) or [automatically](https://docs.v1.argilla.io/en/latest/tutorials/notebooks/labelling-tokenclassification-spacy-pretrained.html#Appendix:-Log-datasets-to-the-Hugging-Face-Hub).\n", "\n", "\n", "Next, we will preprocess our dataset and fine-tune the model. Here we will be using [DistilBERT](https://huggingface.co/docs/transformers/model_doc/distilbert), to make it easier to understand it and start *playing* with the parameters easily. However, there are still plenty of similar ones to [discover](https://huggingface.co/docs/transformers/index#bigtable).\n", @@ -785,7 +785,7 @@ " height=\"400\"\n", " style=\"display: block; margin: 0 auto\" />\n", "\n", - "In addition, **Argilla** also has more options, e.g. to extract [metrics](https://docs.argilla.io/en/latest/reference/python/python_metrics.html) such as the one shown below.\n", + "In addition, **Argilla** also has more options, e.g. to extract [metrics](https://docs.v1.argilla.io/en/latest/reference/python/python_metrics.html) such as the one shown below.\n", "\n", "\n" ] diff --git a/docs/_source/tutorials/notebooks/training-textclassification-smalltext-activelearning.ipynb b/docs/_source/tutorials/notebooks/training-textclassification-smalltext-activelearning.ipynb index 3cdb6b7b41..3d3eab42ba 100644 --- a/docs/_source/tutorials/notebooks/training-textclassification-smalltext-activelearning.ipynb +++ b/docs/_source/tutorials/notebooks/training-textclassification-smalltext-activelearning.ipynb @@ -572,11 +572,11 @@ "metadata": {}, "source": [ "In the Argilla UI, we will set the number of records per page to 20 since it is also our chosen batch size. \n", - "Furthermore, we will use the [Status filter](https://docs.argilla.io/en/latest/practical_guides/annotate_dataset.html#status-filter) to filter out already annotated records. \n", + "Furthermore, we will use the [Status filter](https://docs.v1.argilla.io/en/latest/practical_guides/annotate_dataset.html#status-filter) to filter out already annotated records. \n", "Now, all we have to do is to annotate the displayed records. \n", "Once annotating everything, the classifier's training will be automatically triggered.\n", "\n", - "After a few seconds, you should see the newly queried batch when pressing the [Refresh button](https://docs.argilla.io/en/latest/reference/webapp/pages.html#refresh). \n", + "After a few seconds, you should see the newly queried batch when pressing the [Refresh button](https://docs.v1.argilla.io/en/latest/reference/webapp/pages.html#refresh). \n", "The training can take longer depending on your machine and whether you have a CUDA device. \n", "You can always check the status of the active learning loop from your notebook." ] diff --git a/docs/_source/tutorials/notebooks/training-textgeneration-unstructured.ipynb b/docs/_source/tutorials/notebooks/training-textgeneration-unstructured.ipynb index 4e79ccb653..947307ef31 100644 --- a/docs/_source/tutorials/notebooks/training-textgeneration-unstructured.ipynb +++ b/docs/_source/tutorials/notebooks/training-textgeneration-unstructured.ipynb @@ -634,7 +634,7 @@ "id": "311cf33b", "metadata": {}, "source": [ - "After uploading the dataset, head over to the Argilla UI and validate and/or adjust the summaries we pulled from the ISW site. You can also check out the [Argilla docs](https://docs.argilla.io/) for more information on all of the exciting tools Argilla provides to help you label, assess, and refine your training data!\n", + "After uploading the dataset, head over to the Argilla UI and validate and/or adjust the summaries we pulled from the ISW site. You can also check out the [Argilla docs](https://docs.v1.argilla.io/) for more information on all of the exciting tools Argilla provides to help you label, assess, and refine your training data!\n", "\n", " " ] diff --git a/docs/_source/tutorials_and_integrations/integrations/llama_index.ipynb b/docs/_source/tutorials_and_integrations/integrations/llama_index.ipynb index 52a240d922..c05673983d 100644 --- a/docs/_source/tutorials_and_integrations/integrations/llama_index.ipynb +++ b/docs/_source/tutorials_and_integrations/integrations/llama_index.ipynb @@ -114,7 +114,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Now, we will set up an Argilla global handler for Llama Index. By doing so, we ensure that the predictions that we obtain using Llama Index is automatically uploaded to the Argilla client we initialized before Within the handler, we need to provide the dataset name that we will use. If the dataset does not exist, it will be created with the given name. You can also set the `API KEY`, `API URL`, and the `workspace` name. You can learn more about the variables that controls Argilla initialization [here](https://docs.argilla.io/en/latest/getting_started/installation/configurations/workspace_management.html)." + "Now, we will set up an Argilla global handler for Llama Index. By doing so, we ensure that the predictions that we obtain using Llama Index is automatically uploaded to the Argilla client we initialized before Within the handler, we need to provide the dataset name that we will use. If the dataset does not exist, it will be created with the given name. You can also set the `API KEY`, `API URL`, and the `workspace` name. You can learn more about the variables that controls Argilla initialization [here](https://docs.v1.argilla.io/en/latest/getting_started/installation/configurations/workspace_management.html)." ] }, { diff --git a/docs/_source/tutorials_and_integrations/integrations/process_documents_with_unstructured.ipynb b/docs/_source/tutorials_and_integrations/integrations/process_documents_with_unstructured.ipynb index e7a2be2f8a..01af30ac5f 100644 --- a/docs/_source/tutorials_and_integrations/integrations/process_documents_with_unstructured.ipynb +++ b/docs/_source/tutorials_and_integrations/integrations/process_documents_with_unstructured.ipynb @@ -605,7 +605,7 @@ "id": "311cf33b", "metadata": {}, "source": [ - "After uploading the dataset, head over to the Argilla UI and validate and/or adjust the summaries we pulled from the ISW site. You can also check out the [Argilla docs](https://docs.argilla.io/) for more information on all of the exciting tools Argilla provides to help you label, assess, and refine your training data!\n", + "After uploading the dataset, head over to the Argilla UI and validate and/or adjust the summaries we pulled from the ISW site. You can also check out the [Argilla docs](https://docs.v1.argilla.io/) for more information on all of the exciting tools Argilla provides to help you label, assess, and refine your training data!\n", "\n", " " ] diff --git a/docs/_source/tutorials_and_integrations/tutorials/feedback/end2end_examples/create-dataset-001.ipynb b/docs/_source/tutorials_and_integrations/tutorials/feedback/end2end_examples/create-dataset-001.ipynb index 9e13c34b33..11e0ca9ca8 100644 --- a/docs/_source/tutorials_and_integrations/tutorials/feedback/end2end_examples/create-dataset-001.ipynb +++ b/docs/_source/tutorials_and_integrations/tutorials/feedback/end2end_examples/create-dataset-001.ipynb @@ -362,7 +362,7 @@ "source": [ "This dataset contains a collection of news articles (we can see the content in the `text` column), which have been asigned one of the following classification `labels`: *World (0), Sports (1), Business (2), Sci/Tech (3)*.\n", "\n", - "Let's use the [task templates](https://docs.argilla.io/en/latest/practical_guides/create_update_dataset/create_dataset.html#task-templates) to create a feedback dataset ready for `text-classification`." + "Let's use the [task templates](https://docs.v1.argilla.io/en/latest/practical_guides/create_update_dataset/create_dataset.html#task-templates) to create a feedback dataset ready for `text-classification`." ] }, { @@ -422,7 +422,7 @@ "tags": [] }, "source": [ - "We could compare this dataset with the custom configuration we would use previously (we can take a look at the [custom configuration](https://docs.argilla.io/en/latest/practical_guides/create_update_dataset/create_dataset.html#custom-configuration) for more information on the creation of a `FeedbackDataset` when we want a finer control):" + "We could compare this dataset with the custom configuration we would use previously (we can take a look at the [custom configuration](https://docs.v1.argilla.io/en/latest/practical_guides/create_update_dataset/create_dataset.html#custom-configuration) for more information on the creation of a `FeedbackDataset` when we want a finer control):" ] }, { @@ -512,7 +512,7 @@ "tags": [] }, "source": [ - "The next step once we have our `FeedbackDataset` created is adding the [FeedbackRecords](https://docs.argilla.io/en/latest/getting_started/cheatsheet.html#create-records) to it." + "The next step once we have our `FeedbackDataset` created is adding the [FeedbackRecords](https://docs.v1.argilla.io/en/latest/getting_started/cheatsheet.html#create-records) to it." ] }, { @@ -1105,7 +1105,7 @@ "We created a `FeedbackDataset` for text classification with a `LabelQuestion`, from data stored as a `datasets.Dataset` and a `pandas.DataFrame`.\n", "This dataset was pushed both to `Argilla` where we can curate and label the records, and finally pushed it to the 🤗`hub`.\n", "\n", - "To learn more about how to work with the `FeedbackDataset` check the [cheatsheet](https://docs.argilla.io/en/latest/getting_started/cheatsheet.html#cheatsheet). To continue with assigning records to annotators, you can refer to the [next tutorial](./assign-records-002.ipynb)." + "To learn more about how to work with the `FeedbackDataset` check the [cheatsheet](https://docs.v1.argilla.io/en/latest/getting_started/cheatsheet.html#cheatsheet). To continue with assigning records to annotators, you can refer to the [next tutorial](./assign-records-002.ipynb)." ] } ], diff --git a/docs/_source/tutorials_and_integrations/tutorials/feedback/fine-tuning-openai-rag-feedback.ipynb b/docs/_source/tutorials_and_integrations/tutorials/feedback/fine-tuning-openai-rag-feedback.ipynb index 5598b69f2e..e29ccb29df 100644 --- a/docs/_source/tutorials_and_integrations/tutorials/feedback/fine-tuning-openai-rag-feedback.ipynb +++ b/docs/_source/tutorials_and_integrations/tutorials/feedback/fine-tuning-openai-rag-feedback.ipynb @@ -48,7 +48,7 @@ "\n", "## Setup\n", "\n", - "To run this tutorial, you need to [install and launch Argilla](https://docs.argilla.io/en/latest/getting_started/quickstart_installation.html), as well as some other packages." + "To run this tutorial, you need to [install and launch Argilla](https://docs.v1.argilla.io/en/latest/getting_started/quickstart_installation.html), as well as some other packages." ] }, { diff --git a/docs/_source/tutorials_and_integrations/tutorials/feedback/monitoring-data-model-drift.ipynb b/docs/_source/tutorials_and_integrations/tutorials/feedback/monitoring-data-model-drift.ipynb index b4d8037f80..0973bffe53 100644 --- a/docs/_source/tutorials_and_integrations/tutorials/feedback/monitoring-data-model-drift.ipynb +++ b/docs/_source/tutorials_and_integrations/tutorials/feedback/monitoring-data-model-drift.ipynb @@ -2473,7 +2473,7 @@ "source": [ "Data statistics is another way to analyze data drift. We can use `TextDescriptives` to compare the statistics of the reference and current datasets.\n", "\n", - ">For more information, on how to use TextDescriptives, check the [documentation](https://hlasse.github.io/TextDescriptives/). Note that Argilla also has an integration to [add text descriptives as metadata](https://docs.argilla.io/en/latest/tutorials_and_integrations/integrations/add_text_descriptives_as_metadata.html)." + ">For more information, on how to use TextDescriptives, check the [documentation](https://hlasse.github.io/TextDescriptives/). Note that Argilla also has an integration to [add text descriptives as metadata](https://docs.v1.argilla.io/en/latest/tutorials_and_integrations/integrations/add_text_descriptives_as_metadata.html)." ] }, { diff --git a/docs/_source/tutorials_and_integrations/tutorials/feedback/training-llm-mistral-sft.ipynb b/docs/_source/tutorials_and_integrations/tutorials/feedback/training-llm-mistral-sft.ipynb index 28f714b67e..aef509bb49 100644 --- a/docs/_source/tutorials_and_integrations/tutorials/feedback/training-llm-mistral-sft.ipynb +++ b/docs/_source/tutorials_and_integrations/tutorials/feedback/training-llm-mistral-sft.ipynb @@ -8,9 +8,9 @@ "In this tutorial, you will learn how to finetune a Large Language Model (LLM), Mistral 7B in particular, on a chat-style instruction dataset. We start with [mistralai/Mistral-7B-v0.1](https://huggingface.co/mistralai/Mistral-7B-v0.1), an LLM that only does text completion, and we end up with our own [argilla/Mistral-7B-v0.1-chat-OIG](https://huggingface.co/argilla/Mistral-7B-v0.1-chat-OIG) model that faithfully follows instructions and acts as a helpful chat assistant.\n", "\n", "This tutorial consists of the following steps:\n", - "1. Preparing a [FeedbackDataset](https://docs.argilla.io/en/latest/conceptual_guides/data_model.html#feedback-dataset) in Argilla. \n", + "1. Preparing a [FeedbackDataset](https://docs.v1.argilla.io/en/latest/conceptual_guides/data_model.html#feedback-dataset) in Argilla. \n", "2. (Optional) Annotate instruction samples.\n", - "3. Set up the [ArgillaTrainer](https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#supervised-finetuning) for Supervised Finetuning.\n", + "3. Set up the [ArgillaTrainer](https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#supervised-finetuning) for Supervised Finetuning.\n", "4. Perform inference using the finetuned LLM.\n", "5. Publish the resulting model and dataset on the Hugging Face Hub.\n", "\n", @@ -169,7 +169,7 @@ "metadata": {}, "source": [ "## Preparing a FeedbackDataset in Argilla\n", - "In Argilla, the [FeedbackDataset](https://docs.argilla.io/en/latest/conceptual_guides/data_model.html#feedback-dataset) is a powerful and widely-configurable class that is in charge of defining the annotation process. In particular, we define [fields](https://docs.argilla.io/en/latest/conceptual_guides/data_model.html#field) and [questions](https://docs.argilla.io/en/latest/conceptual_guides/data_model.html#question).\n", + "In Argilla, the [FeedbackDataset](https://docs.v1.argilla.io/en/latest/conceptual_guides/data_model.html#feedback-dataset) is a powerful and widely-configurable class that is in charge of defining the annotation process. In particular, we define [fields](https://docs.v1.argilla.io/en/latest/conceptual_guides/data_model.html#field) and [questions](https://docs.v1.argilla.io/en/latest/conceptual_guides/data_model.html#question).\n", "\n", "The former is in charge of defining the structure for the data that will be annotated, while the latter determines in what way the annotators can annotate the data. In practice, `FeedbackDataset` instances for finetuning LLMs often have \"prompt\" and \"response\" text fields, sometimes alongside a \"context\" text field or some additional metadata (e.g. sample IDs).\n", "\n", @@ -205,7 +205,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Once created, we have to create individual [records](https://docs.argilla.io/en/latest/conceptual_guides/data_model.html#record) and push those to the dataset. For this tutorial, we will use some existing Apache-2.0 data from the [Open Instruction Generalist](https://huggingface.co/datasets/laion/OIG) chat-style instruction dataset. Due to the large size of this dataset, we will load the `dataset` with `streaming=True`, and semi-randomly sample 30k samples from this dataset." + "Once created, we have to create individual [records](https://docs.v1.argilla.io/en/latest/conceptual_guides/data_model.html#record) and push those to the dataset. For this tutorial, we will use some existing Apache-2.0 data from the [Open Instruction Generalist](https://huggingface.co/datasets/laion/OIG) chat-style instruction dataset. Due to the large size of this dataset, we will load the `dataset` with `streaming=True`, and semi-randomly sample 30k samples from this dataset." ] }, { @@ -333,7 +333,7 @@ "metadata": {}, "source": [ "## (Optional) Annotate instruction samples\n", - "If you are using your own proprietary data, data from an unreliable source, or require on your annotators to provide responses, then you must perform data annotation. However, for the purposes of this tutorial, we will assume that all data is high quality and skip this step. See the [data collection for LLMs](https://docs.argilla.io/en/latest/conceptual_guides/llm/llm.html) documentation for additional information on this phase." + "If you are using your own proprietary data, data from an unreliable source, or require on your annotators to provide responses, then you must perform data annotation. However, for the purposes of this tutorial, we will assume that all data is high quality and skip this step. See the [data collection for LLMs](https://docs.v1.argilla.io/en/latest/conceptual_guides/llm/llm.html) documentation for additional information on this phase." ] }, { @@ -342,7 +342,7 @@ "source": [ "## Set up the ArgillaTrainer for Supervised Finetuning\n", "### Model & Tokenizer\n", - "Next, we have to set up the [ArgillaTrainer](https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#supervised-finetuning). First off, we will load the Mistral 7B `model` and `tokenizer`. We'll load the model using `float16` to improve the memory usage and efficiency, and `device_map=\"auto\"` automatically picks the best device to load the model on. For example, this will prioritize your GPU before your CPU.\n", + "Next, we have to set up the [ArgillaTrainer](https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#supervised-finetuning). First off, we will load the Mistral 7B `model` and `tokenizer`. We'll load the model using `float16` to improve the memory usage and efficiency, and `device_map=\"auto\"` automatically picks the best device to load the model on. For example, this will prioritize your GPU before your CPU.\n", "\n", "Furthermore, setting the `pad_token_id` to `eos_token_id` is required for open-end generation. If you don't define `pad_token_id`, it is often set to `eos_token_id` already, but you will be given warnings that you should do it yourself." ] @@ -367,7 +367,7 @@ "metadata": {}, "source": [ "### Training Task\n", - "Next, we can set up the [TrainingTask](https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#the-trainingtask) for supervised finetuning. This task requires a `formatting_func` that formats the data from Argilla in preparation for training. This formatting function first checks if the data quality is up to par. This is done by inspecting the annotations and checking if a sample was not annotated, annotated as \"Bad\" or discarded. For the purposes of the tutorial, I'll ignore this part and consider all data to be high quality.\n", + "Next, we can set up the [TrainingTask](https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#the-trainingtask) for supervised finetuning. This task requires a `formatting_func` that formats the data from Argilla in preparation for training. This formatting function first checks if the data quality is up to par. This is done by inspecting the annotations and checking if a sample was not annotated, annotated as \"Bad\" or discarded. For the purposes of the tutorial, I'll ignore this part and consider all data to be high quality.\n", "\n", "Then, we convert the data to our desired chat format, where each step consists of:\n", "```\n", @@ -675,7 +675,7 @@ "metadata": {}, "source": [ "### ArgillaTrainer & hyperparameters\n", - "Next, we can initialize the [ArgillaTrainer](https://docs.argilla.io/en/latest/practical_guides/fine_tune.html#the-argillatrainer)! We have already prepared all of the components that it requires." + "Next, we can initialize the [ArgillaTrainer](https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html#the-argillatrainer)! We have already prepared all of the components that it requires." ] }, { @@ -966,9 +966,9 @@ "\n", "If you're interested in finetuning LLMs, be sure to also check out these pages:\n", "\n", - "- [🦾 Fine-tune LLMs and other language models](https://docs.argilla.io/en/latest/practical_guides/fine_tune.html)\n", - "- [🪄 Fine-tuning and evaluating GPT-3.5 with human feedback for RAG](https://docs.argilla.io/en/latest/tutorials_and_integrations/tutorials/feedback/fine-tuning-openai-rag-feedback.html)\n", - "- [🏆 Train a reward model for RLHF](https://docs.argilla.io/en/latest/tutorials_and_integrations/tutorials/feedback/train-reward-model-rlhf.html)" + "- [🦾 Fine-tune LLMs and other language models](https://docs.v1.argilla.io/en/latest/practical_guides/fine_tune.html)\n", + "- [🪄 Fine-tuning and evaluating GPT-3.5 with human feedback for RAG](https://docs.v1.argilla.io/en/latest/tutorials_and_integrations/tutorials/feedback/fine-tuning-openai-rag-feedback.html)\n", + "- [🏆 Train a reward model for RLHF](https://docs.v1.argilla.io/en/latest/tutorials_and_integrations/tutorials/feedback/train-reward-model-rlhf.html)" ] } ], diff --git a/docs/_source/tutorials_and_integrations/tutorials/other_datasets/labelling-tokenclassification-using-spacy-llm.ipynb b/docs/_source/tutorials_and_integrations/tutorials/other_datasets/labelling-tokenclassification-using-spacy-llm.ipynb index ea08594b44..b7257d0f4d 100644 --- a/docs/_source/tutorials_and_integrations/tutorials/other_datasets/labelling-tokenclassification-using-spacy-llm.ipynb +++ b/docs/_source/tutorials_and_integrations/tutorials/other_datasets/labelling-tokenclassification-using-spacy-llm.ipynb @@ -443,7 +443,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Let us create a list of records from the dataset items. See the [documentation](https://docs.argilla.io/en/latest/reference/python/python_client.html#argilla.client.models.TokenClassificationRecord) for more information on what other fields you can add to your record." + "Let us create a list of records from the dataset items. See the [documentation](https://docs.v1.argilla.io/en/latest/reference/python/python_client.html#argilla.client.models.TokenClassificationRecord) for more information on what other fields you can add to your record." ] }, { @@ -504,7 +504,7 @@ "\n", "\"NER\n", "\n", - "In this tutorial, we have implemented a `spacy-llm` pipeline for the NER task by using model predictions from GPT3.5. In addition, we employed a few-shot learning approach to improve the performance of our model, which is facilitated by `spacy-llm`. You can see more tutorials on the use of `spaCy` with Argilla [here](https://docs.argilla.io/en/latest/tutorials/libraries/spacy.html)" + "In this tutorial, we have implemented a `spacy-llm` pipeline for the NER task by using model predictions from GPT3.5. In addition, we employed a few-shot learning approach to improve the performance of our model, which is facilitated by `spacy-llm`. You can see more tutorials on the use of `spaCy` with Argilla [here](https://docs.v1.argilla.io/en/latest/tutorials/libraries/spacy.html)" ] } ], diff --git a/examples/deployments/docker/docker-compose.yaml b/examples/deployments/docker/docker-compose.yaml index 934f1f978e..c520ff86ce 100644 --- a/examples/deployments/docker/docker-compose.yaml +++ b/examples/deployments/docker/docker-compose.yaml @@ -8,7 +8,7 @@ services: ARGILLA_HOME_PATH: /var/lib/argilla ARGILLA_ELASTICSEARCH: http://elasticsearch:9200 - # Opt-out for telemetry https://docs.argilla.io/en/latest/reference/telemetry.html + # Opt-out for telemetry https://docs.argilla.io/latest/reference/argilla-server/telemetry/ # ARGILLA_ENABLE_TELEMETRY: 0 USERNAME: argilla From c23126fd4ae8cd0271bb6a730a7a2aecf2658d7c Mon Sep 17 00:00:00 2001 From: David Berenstein Date: Tue, 30 Jul 2024 17:44:08 +0200 Subject: [PATCH 14/14] Update test_markdown.py --- argilla/tests/unit/test_markdown.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/argilla/tests/unit/test_markdown.py b/argilla/tests/unit/test_markdown.py index a602b67aa9..d98bae1f73 100644 --- a/argilla/tests/unit/test_markdown.py +++ b/argilla/tests/unit/test_markdown.py @@ -131,7 +131,7 @@ def test_chat_to_html_multiple_messages(): .message-content { padding: 10px; border-radius: 10px; - max-width: fit-content; + max-width: 80%; }

hello

hi there

system message

"""