From c077dc7af5e2a378223a8d2862df1d52877ea245 Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Tue, 22 Oct 2019 11:52:21 -0500 Subject: [PATCH 001/529] Initial doc about storing remote media --- docs/administration/storing_remote_media.md | 36 +++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 docs/administration/storing_remote_media.md diff --git a/docs/administration/storing_remote_media.md b/docs/administration/storing_remote_media.md new file mode 100644 index 000000000..7edda2753 --- /dev/null +++ b/docs/administration/storing_remote_media.md @@ -0,0 +1,36 @@ +# Storing Remote Media + +Pleroma does not store remote/federated media by default. The best way to achieve this is to change Nginx to keep its reverse proxy cache +forever and to activate the `MediaProxyWarmingPolicy` MRF policy in Pleroma which will automatically fetch all media through the proxy +as soon as the post is received by your instance. + +## Nginx + +We should be using `proxy_store` here I think??? + +``` + location ~ ^/(media|proxy) { + proxy_cache pleroma_media_cache; + slice 1m; + proxy_cache_key $host$uri$is_args$args$slice_range; + proxy_set_header Range $slice_range; + proxy_http_version 1.1; + proxy_cache_valid 200 206 301 304 1h; + proxy_cache_lock on; + proxy_ignore_client_abort on; + proxy_buffering on; + chunked_transfer_encoding on; + proxy_ignore_headers Cache-Control; + proxy_hide_header Cache-Control; + proxy_pass http://127.0.0.1:4000; + } +``` + +## Pleroma + +Add to your `prod.secret.exs`: + +``` +config :pleroma, :instance, + rewrite_policy: [Pleroma.Web.ActivityPub.MRF.MediaProxyWarmingPolicy] +``` From a1ad8dc34993445033595c8f52e0ee1815e5567d Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Tue, 22 Oct 2019 14:07:59 -0500 Subject: [PATCH 002/529] Leverage nginx proxy cache to store items with a 1 year TTL with no size limit. It does not purge items when they expire, but will only update them if the origin's copy has changed for some reason. If origin is offline/unavailable or gone forever it will still serve the cached copies. --- docs/administration/storing_remote_media.md | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/docs/administration/storing_remote_media.md b/docs/administration/storing_remote_media.md index 7edda2753..0abb85a77 100644 --- a/docs/administration/storing_remote_media.md +++ b/docs/administration/storing_remote_media.md @@ -6,22 +6,25 @@ as soon as the post is received by your instance. ## Nginx -We should be using `proxy_store` here I think??? - ``` +proxy_cache_path /long/term/storage/path/pleroma-media-cache levels=1:2 keys_zone=pleroma_media_cache:10m + inactive=1y use_temp_path=off; + location ~ ^/(media|proxy) { proxy_cache pleroma_media_cache; slice 1m; proxy_cache_key $host$uri$is_args$args$slice_range; proxy_set_header Range $slice_range; proxy_http_version 1.1; - proxy_cache_valid 200 206 301 304 1h; + proxy_cache_valid 206 301 302 304 1h; + proxy_cache_valid 200 1y; proxy_cache_lock on; + proxy_cache_use_stale error timeout invalid_header updating; proxy_ignore_client_abort on; proxy_buffering on; chunked_transfer_encoding on; - proxy_ignore_headers Cache-Control; - proxy_hide_header Cache-Control; + proxy_ignore_headers Cache-Control Expires; + proxy_hide_header Cache-Control Expires; proxy_pass http://127.0.0.1:4000; } ``` From b9d164fb89af65c2aef83c2867c937ea39a9e995 Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Tue, 22 Oct 2019 14:12:01 -0500 Subject: [PATCH 003/529] Formatting --- docs/administration/storing_remote_media.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/administration/storing_remote_media.md b/docs/administration/storing_remote_media.md index 0abb85a77..74d333342 100644 --- a/docs/administration/storing_remote_media.md +++ b/docs/administration/storing_remote_media.md @@ -7,8 +7,8 @@ as soon as the post is received by your instance. ## Nginx ``` -proxy_cache_path /long/term/storage/path/pleroma-media-cache levels=1:2 keys_zone=pleroma_media_cache:10m - inactive=1y use_temp_path=off; + proxy_cache_path /long/term/storage/path/pleroma-media-cache levels=1:2 + keys_zone=pleroma_media_cache:10m inactive=1y use_temp_path=off; location ~ ^/(media|proxy) { proxy_cache pleroma_media_cache; From 47a551837ade9b5c5b7291c83bc3e787e9c6a17d Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Tue, 22 Oct 2019 15:13:42 -0500 Subject: [PATCH 004/529] Remove proxy_cache_lock suggestion --- docs/administration/storing_remote_media.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/administration/storing_remote_media.md b/docs/administration/storing_remote_media.md index 74d333342..619300e7e 100644 --- a/docs/administration/storing_remote_media.md +++ b/docs/administration/storing_remote_media.md @@ -18,7 +18,6 @@ as soon as the post is received by your instance. proxy_http_version 1.1; proxy_cache_valid 206 301 302 304 1h; proxy_cache_valid 200 1y; - proxy_cache_lock on; proxy_cache_use_stale error timeout invalid_header updating; proxy_ignore_client_abort on; proxy_buffering on; From 752d0c683357277f5926b7b7011b3f945a7610d1 Mon Sep 17 00:00:00 2001 From: Mark Felder Date: Tue, 22 Oct 2019 15:14:04 -0500 Subject: [PATCH 005/529] Relocate to configuration subdir --- docs/{administration => configuration}/storing_remote_media.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{administration => configuration}/storing_remote_media.md (100%) diff --git a/docs/administration/storing_remote_media.md b/docs/configuration/storing_remote_media.md similarity index 100% rename from docs/administration/storing_remote_media.md rename to docs/configuration/storing_remote_media.md From 241a3d744ae4e9d040247ad0aeb6287156acf920 Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Tue, 11 Feb 2020 13:53:24 +0400 Subject: [PATCH 006/529] Add ActivityExpirationPolicy --- config/config.exs | 2 + lib/pleroma/web/activity_pub/mrf.ex | 7 +--- .../mrf/activity_expiration_policy.ex | 35 +++++++++++++++++ .../mrf/activity_expiration_policy_test.exs | 38 +++++++++++++++++++ 4 files changed, 77 insertions(+), 5 deletions(-) create mode 100644 lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex create mode 100644 test/web/activity_pub/mrf/activity_expiration_policy_test.exs diff --git a/config/config.exs b/config/config.exs index 41c1ff637..d5b298c16 100644 --- a/config/config.exs +++ b/config/config.exs @@ -361,6 +361,8 @@ config :pleroma, :mrf_subchain, match_actor: %{} +config :pleroma, :mrf_activity_expiration, days: 365 + config :pleroma, :mrf_vocabulary, accept: [], reject: [] diff --git a/lib/pleroma/web/activity_pub/mrf.ex b/lib/pleroma/web/activity_pub/mrf.ex index 263ed11af..b6e737de5 100644 --- a/lib/pleroma/web/activity_pub/mrf.ex +++ b/lib/pleroma/web/activity_pub/mrf.ex @@ -8,11 +8,8 @@ defmodule Pleroma.Web.ActivityPub.MRF do def filter(policies, %{} = object) do policies |> Enum.reduce({:ok, object}, fn - policy, {:ok, object} -> - policy.filter(object) - - _, error -> - error + policy, {:ok, object} -> policy.filter(object) + _, error -> error end) end diff --git a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex new file mode 100644 index 000000000..1b8860161 --- /dev/null +++ b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex @@ -0,0 +1,35 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy do + @moduledoc "Adds expiration to all local activities" + @behaviour Pleroma.Web.ActivityPub.MRF + + @impl true + def filter(%{"id" => id} = activity) do + activity = + if String.starts_with?(id, Pleroma.Web.Endpoint.url()) do + maybe_add_expiration(activity) + else + activity + end + + {:ok, activity} + end + + @impl true + def describe, do: {:ok, %{}} + + defp maybe_add_expiration(activity) do + days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365) + expires_at = NaiveDateTime.utc_now() |> Timex.shift(days: days) + + with %{"expires_at" => existing_expires_at} <- activity, + :lt <- NaiveDateTime.compare(existing_expires_at, expires_at) do + activity + else + _ -> Map.put(activity, "expires_at", expires_at) + end + end +end diff --git a/test/web/activity_pub/mrf/activity_expiration_policy_test.exs b/test/web/activity_pub/mrf/activity_expiration_policy_test.exs new file mode 100644 index 000000000..2e65048c0 --- /dev/null +++ b/test/web/activity_pub/mrf/activity_expiration_policy_test.exs @@ -0,0 +1,38 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicyTest do + use ExUnit.Case, async: true + alias Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy + + @id Pleroma.Web.Endpoint.url() <> "/activities/cofe" + + test "adds `expires_at` property" do + assert {:ok, %{"expires_at" => expires_at}} = ActivityExpirationPolicy.filter(%{"id" => @id}) + + assert Timex.diff(expires_at, NaiveDateTime.utc_now(), :days) == 364 + end + + test "keeps existing `expires_at` if it less than the config setting" do + expires_at = NaiveDateTime.utc_now() |> Timex.shift(days: 1) + + assert {:ok, %{"expires_at" => ^expires_at}} = + ActivityExpirationPolicy.filter(%{"id" => @id, "expires_at" => expires_at}) + end + + test "owerwrites existing `expires_at` if it greater than the config setting" do + too_distant_future = NaiveDateTime.utc_now() |> Timex.shift(years: 2) + + assert {:ok, %{"expires_at" => expires_at}} = + ActivityExpirationPolicy.filter(%{"id" => @id, "expires_at" => too_distant_future}) + + assert Timex.diff(expires_at, NaiveDateTime.utc_now(), :days) == 364 + end + + test "ignores remote activities" do + assert {:ok, activity} = ActivityExpirationPolicy.filter(%{"id" => "https://example.com/123"}) + + refute Map.has_key?(activity, "expires_at") + end +end From 4d459b0e9906b2ebc0280b36c92007b2e680671f Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Wed, 12 Feb 2020 22:51:26 +0400 Subject: [PATCH 007/529] Move ActivityExpiration creation from CommonApi.post/2 to ActivityPub.insert/4 --- lib/pleroma/web/activity_pub/activity_pub.ex | 17 ++++++++++++++--- lib/pleroma/web/common_api/activity_draft.ex | 9 ++++++++- lib/pleroma/web/common_api/common_api.ex | 12 +----------- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 5c436941a..408f6c966 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -1,10 +1,11 @@ # Pleroma: A lightweight social networking server -# Copyright © 2017-2019 Pleroma Authors +# Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.ActivityPub do alias Pleroma.Activity alias Pleroma.Activity.Ir.Topics + alias Pleroma.ActivityExpiration alias Pleroma.Config alias Pleroma.Conversation alias Pleroma.Conversation.Participation @@ -135,12 +136,14 @@ def insert(map, local \\ true, fake \\ false, bypass_actor_check \\ false) when {:containment, :ok} <- {:containment, Containment.contain_child(map)}, {:ok, map, object} <- insert_full_object(map) do {:ok, activity} = - Repo.insert(%Activity{ + %Activity{ data: map, local: local, actor: map["actor"], recipients: recipients - }) + } + |> Repo.insert() + |> maybe_create_activity_expiration() # Splice in the child object if we have one. activity = @@ -180,6 +183,14 @@ def insert(map, local \\ true, fake \\ false, bypass_actor_check \\ false) when end end + defp maybe_create_activity_expiration({:ok, %{data: %{"expires_at" => expires_at}} = activity}) do + with {:ok, _} <- ActivityExpiration.create(activity, expires_at) do + {:ok, activity} + end + end + + defp maybe_create_activity_expiration(result), do: result + defp create_or_bump_conversation(activity, actor) do with {:ok, conversation} <- Conversation.create_or_bump_for(activity), %User{} = user <- User.get_cached_by_ap_id(actor), diff --git a/lib/pleroma/web/common_api/activity_draft.ex b/lib/pleroma/web/common_api/activity_draft.ex index f7da81b34..7a83cad9c 100644 --- a/lib/pleroma/web/common_api/activity_draft.ex +++ b/lib/pleroma/web/common_api/activity_draft.ex @@ -193,6 +193,13 @@ defp preview?(draft) do defp changes(draft) do direct? = draft.visibility == "direct" + additional = %{"cc" => draft.cc, "directMessage" => direct?} + + additional = + case draft.expires_at do + %NaiveDateTime{} = expires_at -> Map.put(additional, "expires_at", expires_at) + _ -> additional + end changes = %{ @@ -200,7 +207,7 @@ defp changes(draft) do actor: draft.user, context: draft.context, object: draft.object, - additional: %{"cc" => draft.cc, "directMessage" => direct?} + additional: additional } |> Utils.maybe_add_list_data(draft.user, draft.visibility) diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 2a348dcf6..03921de27 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -277,20 +277,10 @@ def listen(user, %{"title" => _} = data) do def post(user, %{"status" => _} = data) do with {:ok, draft} <- Pleroma.Web.CommonAPI.ActivityDraft.create(user, data) do - draft.changes - |> ActivityPub.create(draft.preview?) - |> maybe_create_activity_expiration(draft.expires_at) + ActivityPub.create(draft.changes, draft.preview?) end end - defp maybe_create_activity_expiration({:ok, activity}, %NaiveDateTime{} = expires_at) do - with {:ok, _} <- ActivityExpiration.create(activity, expires_at) do - {:ok, activity} - end - end - - defp maybe_create_activity_expiration(result, _), do: result - # Updates the emojis for a user based on their profile def update(user) do emoji = emoji_from_profile(user) From e2d358f1fb0babbdd2a318bad863e27afecbb3d1 Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Fri, 14 Feb 2020 15:19:23 +0400 Subject: [PATCH 008/529] Fix typo --- test/web/activity_pub/mrf/activity_expiration_policy_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/web/activity_pub/mrf/activity_expiration_policy_test.exs b/test/web/activity_pub/mrf/activity_expiration_policy_test.exs index 2e65048c0..2f2f90b44 100644 --- a/test/web/activity_pub/mrf/activity_expiration_policy_test.exs +++ b/test/web/activity_pub/mrf/activity_expiration_policy_test.exs @@ -21,7 +21,7 @@ test "keeps existing `expires_at` if it less than the config setting" do ActivityExpirationPolicy.filter(%{"id" => @id, "expires_at" => expires_at}) end - test "owerwrites existing `expires_at` if it greater than the config setting" do + test "overwrites existing `expires_at` if it greater than the config setting" do too_distant_future = NaiveDateTime.utc_now() |> Timex.shift(years: 2) assert {:ok, %{"expires_at" => expires_at}} = From 57878f870879995f53227bb7a24b810531dd4217 Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Fri, 14 Feb 2020 15:50:31 +0400 Subject: [PATCH 009/529] Improve readability --- .../web/activity_pub/mrf/activity_expiration_policy.ex | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex index 1b8860161..5d823f2c7 100644 --- a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex @@ -7,9 +7,9 @@ defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy do @behaviour Pleroma.Web.ActivityPub.MRF @impl true - def filter(%{"id" => id} = activity) do + def filter(activity) do activity = - if String.starts_with?(id, Pleroma.Web.Endpoint.url()) do + if local?(activity) do maybe_add_expiration(activity) else activity @@ -21,6 +21,10 @@ def filter(%{"id" => id} = activity) do @impl true def describe, do: {:ok, %{}} + defp local?(%{"id" => id}) do + String.starts_with?(id, Pleroma.Web.Endpoint.url()) + end + defp maybe_add_expiration(activity) do days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365) expires_at = NaiveDateTime.utc_now() |> Timex.shift(days: days) From 3732b0ba729bb7443e338b5f6bcc7e018983aa4c Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Fri, 14 Feb 2020 16:39:02 +0400 Subject: [PATCH 010/529] Update CHANGELOG --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 150fd27cd..e4a641a7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Rate limiter is now disabled for localhost/socket (unless remoteip plug is enabled) - Logger: default log level changed from `warn` to `info`. - Config mix task `migrate_to_db` truncates `config` table before migrating the config file. +- MFR policy to set global expiration for every local activity +
API Changes From 0ddcd67d32eb40cb6cb2a3dfee4c55e930e7f37c Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Fri, 14 Feb 2020 16:53:53 +0400 Subject: [PATCH 011/529] Update `cheatsheet.md` and `config/description.exs` --- config/description.exs | 15 +++++++++++++++ docs/configuration/cheatsheet.md | 9 +++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/config/description.exs b/config/description.exs index e5bac9b3f..d86a4ccca 100644 --- a/config/description.exs +++ b/config/description.exs @@ -1346,6 +1346,21 @@ } ] }, + %{ + group: :pleroma, + key: :mrf_activity_expiration, + label: "MRF Activity Expiration Policy", + type: :group, + description: "Adds expiration to all local activities", + children: [ + %{ + key: :days, + type: :integer, + description: "Default global expiration time for all local activities (in days)", + suggestions: [90, 365] + } + ] + }, %{ group: :pleroma, key: :mrf_subchain, diff --git a/docs/configuration/cheatsheet.md b/docs/configuration/cheatsheet.md index 2bd935983..bd03aec66 100644 --- a/docs/configuration/cheatsheet.md +++ b/docs/configuration/cheatsheet.md @@ -33,7 +33,7 @@ You shouldn't edit the base config directly to avoid breakages and merge conflic * `rewrite_policy`: Message Rewrite Policy, either one or a list. Here are the ones available by default: * `Pleroma.Web.ActivityPub.MRF.NoOpPolicy`: Doesn’t modify activities (default). * `Pleroma.Web.ActivityPub.MRF.DropPolicy`: Drops all activities. It generally doesn’t makes sense to use in production. - * `Pleroma.Web.ActivityPub.MRF.SimplePolicy`: Restrict the visibility of activities from certains instances (See [`:mrf_simple`](#mrf_simple)). + * `Pleroma.Web.ActivityPub.MRF.SimplePolicy`: Restrict the visibility of activities from certain instances (See [`:mrf_simple`](#mrf_simple)). * `Pleroma.Web.ActivityPub.MRF.TagPolicy`: Applies policies to individual users based on tags, which can be set using pleroma-fe/admin-fe/any other app that supports Pleroma Admin API. For example it allows marking posts from individual users nsfw (sensitive). * `Pleroma.Web.ActivityPub.MRF.SubchainPolicy`: Selectively runs other MRF policies when messages match (See [`:mrf_subchain`](#mrf_subchain)). * `Pleroma.Web.ActivityPub.MRF.RejectNonPublic`: Drops posts with non-public visibility settings (See [`:mrf_rejectnonpublic`](#mrf_rejectnonpublic)). @@ -43,7 +43,8 @@ You shouldn't edit the base config directly to avoid breakages and merge conflic * `Pleroma.Web.ActivityPub.MRF.MentionPolicy`: Drops posts mentioning configurable users. (See [`:mrf_mention`](#mrf_mention)). * `Pleroma.Web.ActivityPub.MRF.VocabularyPolicy`: Restricts activities to a configured set of vocabulary. (See [`:mrf_vocabulary`](#mrf_vocabulary)). * `Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy`: Rejects or delists posts based on their age when received. (See [`:mrf_object_age`](#mrf_object_age)). -* `public`: Makes the client API in authentificated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. + * `Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy`: Adds expiration to all local activities (see [`:mrf_activity_expiration`](#mrf_activity_expiration)). +* `public`: Makes the client API in authenticated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. * `quarantined_instances`: List of ActivityPub instances where private(DMs, followers-only) activities will not be send. * `managed_config`: Whenether the config for pleroma-fe is configured in [:frontend_configurations](#frontend_configurations) or in ``static/config.json``. * `allowed_post_formats`: MIME-type list of formats allowed to be posted (transformed into HTML). @@ -142,6 +143,10 @@ config :pleroma, :mrf_user_allowlist, * `:strip_followers` removes followers from the ActivityPub recipient list, ensuring they won't be delivered to home timelines * `:reject` rejects the message entirely +#### :mrf_activity_expiration + +* `days`: Default global expiration time for all local activities (in days) + ### :activitypub * ``unfollow_blocked``: Whether blocks result in people getting unfollowed * ``outgoing_blocks``: Whether to federate blocks to other instances From 819cd467170cb6dd1334cde0a0c79dbb785a22b6 Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Thu, 20 Feb 2020 22:04:02 +0400 Subject: [PATCH 012/529] Auto-expire Create activities only --- .../mrf/activity_expiration_policy.ex | 2 +- test/web/activity_pub/activity_pub_test.exs | 16 +++++++++ .../mrf/activity_expiration_policy_test.exs | 35 +++++++++++++++---- .../purge_expired_activities_worker_test.exs | 30 ++++++++++++++++ 4 files changed, 76 insertions(+), 7 deletions(-) diff --git a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex index 5d823f2c7..274bb9a5c 100644 --- a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex @@ -9,7 +9,7 @@ defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy do @impl true def filter(activity) do activity = - if local?(activity) do + if activity["type"] == "Create" && local?(activity) do maybe_add_expiration(activity) else activity diff --git a/test/web/activity_pub/activity_pub_test.exs b/test/web/activity_pub/activity_pub_test.exs index ce68e7d0e..2cd908a87 100644 --- a/test/web/activity_pub/activity_pub_test.exs +++ b/test/web/activity_pub/activity_pub_test.exs @@ -1784,4 +1784,20 @@ test "old user must be in the new user's `also_known_as` list" do ActivityPub.move(old_user, new_user) end end + + describe "global activity expiration" do + clear_config([:instance, :rewrite_policy]) + + test "creates an activity expiration for local Create activities" do + Pleroma.Config.put( + [:instance, :rewrite_policy], + Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy + ) + + {:ok, %{id: id_create}} = ActivityBuilder.insert(%{"type" => "Create", "context" => "3hu"}) + {:ok, _follow} = ActivityBuilder.insert(%{"type" => "Follow", "context" => "3hu"}) + + assert [%{activity_id: ^id_create}] = Pleroma.ActivityExpiration |> Repo.all() + end + end end diff --git a/test/web/activity_pub/mrf/activity_expiration_policy_test.exs b/test/web/activity_pub/mrf/activity_expiration_policy_test.exs index 2f2f90b44..0d3bcc457 100644 --- a/test/web/activity_pub/mrf/activity_expiration_policy_test.exs +++ b/test/web/activity_pub/mrf/activity_expiration_policy_test.exs @@ -9,7 +9,8 @@ defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicyTest do @id Pleroma.Web.Endpoint.url() <> "/activities/cofe" test "adds `expires_at` property" do - assert {:ok, %{"expires_at" => expires_at}} = ActivityExpirationPolicy.filter(%{"id" => @id}) + assert {:ok, %{"type" => "Create", "expires_at" => expires_at}} = + ActivityExpirationPolicy.filter(%{"id" => @id, "type" => "Create"}) assert Timex.diff(expires_at, NaiveDateTime.utc_now(), :days) == 364 end @@ -17,21 +18,43 @@ test "adds `expires_at` property" do test "keeps existing `expires_at` if it less than the config setting" do expires_at = NaiveDateTime.utc_now() |> Timex.shift(days: 1) - assert {:ok, %{"expires_at" => ^expires_at}} = - ActivityExpirationPolicy.filter(%{"id" => @id, "expires_at" => expires_at}) + assert {:ok, %{"type" => "Create", "expires_at" => ^expires_at}} = + ActivityExpirationPolicy.filter(%{ + "id" => @id, + "type" => "Create", + "expires_at" => expires_at + }) end test "overwrites existing `expires_at` if it greater than the config setting" do too_distant_future = NaiveDateTime.utc_now() |> Timex.shift(years: 2) - assert {:ok, %{"expires_at" => expires_at}} = - ActivityExpirationPolicy.filter(%{"id" => @id, "expires_at" => too_distant_future}) + assert {:ok, %{"type" => "Create", "expires_at" => expires_at}} = + ActivityExpirationPolicy.filter(%{ + "id" => @id, + "type" => "Create", + "expires_at" => too_distant_future + }) assert Timex.diff(expires_at, NaiveDateTime.utc_now(), :days) == 364 end test "ignores remote activities" do - assert {:ok, activity} = ActivityExpirationPolicy.filter(%{"id" => "https://example.com/123"}) + assert {:ok, activity} = + ActivityExpirationPolicy.filter(%{ + "id" => "https://example.com/123", + "type" => "Create" + }) + + refute Map.has_key?(activity, "expires_at") + end + + test "ignores non-Create activities" do + assert {:ok, activity} = + ActivityExpirationPolicy.filter(%{ + "id" => "https://example.com/123", + "type" => "Follow" + }) refute Map.has_key?(activity, "expires_at") end diff --git a/test/workers/cron/purge_expired_activities_worker_test.exs b/test/workers/cron/purge_expired_activities_worker_test.exs index c2561683e..c6c7ff388 100644 --- a/test/workers/cron/purge_expired_activities_worker_test.exs +++ b/test/workers/cron/purge_expired_activities_worker_test.exs @@ -12,6 +12,7 @@ defmodule Pleroma.Workers.Cron.PurgeExpiredActivitiesWorkerTest do import ExUnit.CaptureLog clear_config([ActivityExpiration, :enabled]) + clear_config([:instance, :rewrite_policy]) test "deletes an expiration activity" do Pleroma.Config.put([ActivityExpiration, :enabled], true) @@ -36,6 +37,35 @@ test "deletes an expiration activity" do refute Pleroma.Repo.get(Pleroma.ActivityExpiration, expiration.id) end + test "works with ActivityExpirationPolicy" do + Pleroma.Config.put([ActivityExpiration, :enabled], true) + + Pleroma.Config.put( + [:instance, :rewrite_policy], + Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy + ) + + user = insert(:user) + + days = Pleroma.Config.get([:mrf_activity_expiration, :days], 365) + + {:ok, %{id: id} = activity} = Pleroma.Web.CommonAPI.post(user, %{"status" => "cofe"}) + + past_date = + NaiveDateTime.utc_now() |> Timex.shift(days: -days) |> NaiveDateTime.truncate(:second) + + activity + |> Repo.preload(:expiration) + |> Map.get(:expiration) + |> Ecto.Changeset.change(%{scheduled_at: past_date}) + |> Repo.update!() + + Pleroma.Workers.Cron.PurgeExpiredActivitiesWorker.perform(:ops, :pid) + + assert [%{data: %{"type" => "Delete", "deleted_activity_id" => ^id}}] = + Pleroma.Repo.all(Pleroma.Activity) + end + describe "delete_activity/1" do test "adds log message if activity isn't find" do assert capture_log([level: :error], fn -> From 011ede45361096f55dda938078e24574cdf33b2b Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Fri, 21 Feb 2020 14:42:43 +0400 Subject: [PATCH 013/529] Update documentation --- CHANGELOG.md | 2 +- config/description.exs | 4 ++-- docs/configuration/cheatsheet.md | 4 ++-- .../web/activity_pub/mrf/activity_expiration_policy.ex | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e4a641a7e..c5558e0c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,7 +34,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Rate limiter is now disabled for localhost/socket (unless remoteip plug is enabled) - Logger: default log level changed from `warn` to `info`. - Config mix task `migrate_to_db` truncates `config` table before migrating the config file. -- MFR policy to set global expiration for every local activity +- MFR policy to set global expiration for all local Create activities
API Changes diff --git a/config/description.exs b/config/description.exs index d86a4ccca..f0c6e3377 100644 --- a/config/description.exs +++ b/config/description.exs @@ -1351,12 +1351,12 @@ key: :mrf_activity_expiration, label: "MRF Activity Expiration Policy", type: :group, - description: "Adds expiration to all local activities", + description: "Adds expiration to all local Create activities", children: [ %{ key: :days, type: :integer, - description: "Default global expiration time for all local activities (in days)", + description: "Default global expiration time for all local Create activities (in days)", suggestions: [90, 365] } ] diff --git a/docs/configuration/cheatsheet.md b/docs/configuration/cheatsheet.md index bd03aec66..f50c8bab7 100644 --- a/docs/configuration/cheatsheet.md +++ b/docs/configuration/cheatsheet.md @@ -43,7 +43,7 @@ You shouldn't edit the base config directly to avoid breakages and merge conflic * `Pleroma.Web.ActivityPub.MRF.MentionPolicy`: Drops posts mentioning configurable users. (See [`:mrf_mention`](#mrf_mention)). * `Pleroma.Web.ActivityPub.MRF.VocabularyPolicy`: Restricts activities to a configured set of vocabulary. (See [`:mrf_vocabulary`](#mrf_vocabulary)). * `Pleroma.Web.ActivityPub.MRF.ObjectAgePolicy`: Rejects or delists posts based on their age when received. (See [`:mrf_object_age`](#mrf_object_age)). - * `Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy`: Adds expiration to all local activities (see [`:mrf_activity_expiration`](#mrf_activity_expiration)). + * `Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy`: Adds expiration to all local Create activities (see [`:mrf_activity_expiration`](#mrf_activity_expiration)). * `public`: Makes the client API in authenticated mode-only except for user-profiles. Useful for disabling the Local Timeline and The Whole Known Network. * `quarantined_instances`: List of ActivityPub instances where private(DMs, followers-only) activities will not be send. * `managed_config`: Whenether the config for pleroma-fe is configured in [:frontend_configurations](#frontend_configurations) or in ``static/config.json``. @@ -145,7 +145,7 @@ config :pleroma, :mrf_user_allowlist, #### :mrf_activity_expiration -* `days`: Default global expiration time for all local activities (in days) +* `days`: Default global expiration time for all local Create activities (in days) ### :activitypub * ``unfollow_blocked``: Whether blocks result in people getting unfollowed diff --git a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex index 274bb9a5c..a9bdf3b69 100644 --- a/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex +++ b/lib/pleroma/web/activity_pub/mrf/activity_expiration_policy.ex @@ -3,7 +3,7 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.MRF.ActivityExpirationPolicy do - @moduledoc "Adds expiration to all local activities" + @moduledoc "Adds expiration to all local Create activities" @behaviour Pleroma.Web.ActivityPub.MRF @impl true From cb8236cda62cddb72f4320af6347defae44b81ca Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Fri, 20 Mar 2020 21:19:34 +0400 Subject: [PATCH 014/529] Add embeddable posts --- lib/pleroma/web/embed_controller.ex | 42 +++++++++ lib/pleroma/web/endpoint.ex | 2 +- lib/pleroma/web/router.ex | 2 + .../web/templates/embed/_attachment.html.eex | 8 ++ lib/pleroma/web/templates/embed/show.html.eex | 76 ++++++++++++++++ .../web/templates/layout/embed.html.eex | 14 +++ lib/pleroma/web/views/embed_view.ex | 83 ++++++++++++++++++ priv/static/embed.css | Bin 0 -> 1408 bytes priv/static/embed.js | Bin 0 -> 942 bytes 9 files changed, 226 insertions(+), 1 deletion(-) create mode 100644 lib/pleroma/web/embed_controller.ex create mode 100644 lib/pleroma/web/templates/embed/_attachment.html.eex create mode 100644 lib/pleroma/web/templates/embed/show.html.eex create mode 100644 lib/pleroma/web/templates/layout/embed.html.eex create mode 100644 lib/pleroma/web/views/embed_view.ex create mode 100644 priv/static/embed.css create mode 100644 priv/static/embed.js diff --git a/lib/pleroma/web/embed_controller.ex b/lib/pleroma/web/embed_controller.ex new file mode 100644 index 000000000..f6b8a5ee1 --- /dev/null +++ b/lib/pleroma/web/embed_controller.ex @@ -0,0 +1,42 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.EmbedController do + use Pleroma.Web, :controller + + alias Pleroma.Activity + alias Pleroma.Object + alias Pleroma.User + + alias Pleroma.Web.ActivityPub.Visibility + + plug(:put_layout, :embed) + + def show(conn, %{"id" => id}) do + with %Activity{local: true} = activity <- + Activity.get_by_id_with_object(id), + true <- Visibility.is_public?(activity.object) do + {:ok, author} = User.get_or_fetch(activity.object.data["actor"]) + + conn + |> delete_resp_header("x-frame-options") + |> delete_resp_header("content-security-policy") + |> render("show.html", + activity: activity, + author: User.sanitize_html(author), + counts: get_counts(activity) + ) + end + end + + defp get_counts(%Activity{} = activity) do + %Object{data: data} = Object.normalize(activity) + + %{ + likes: Map.get(data, "like_count", 0), + replies: Map.get(data, "repliesCount", 0), + announces: Map.get(data, "announcement_count", 0) + } + end +end diff --git a/lib/pleroma/web/endpoint.ex b/lib/pleroma/web/endpoint.ex index 72cb3ee27..4f665db12 100644 --- a/lib/pleroma/web/endpoint.ex +++ b/lib/pleroma/web/endpoint.ex @@ -35,7 +35,7 @@ defmodule Pleroma.Web.Endpoint do at: "/", from: :pleroma, only: - ~w(index.html robots.txt static finmoji emoji packs sounds images instance sw.js sw-pleroma.js favicon.png schemas doc), + ~w(index.html robots.txt static finmoji emoji packs sounds images instance sw.js sw-pleroma.js favicon.png schemas doc embed.js embed.css), # credo:disable-for-previous-line Credo.Check.Readability.MaxLineLength gzip: true, cache_control_for_etags: @static_cache_control, diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 3f36f6c1a..eef0a8023 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -637,6 +637,8 @@ defmodule Pleroma.Web.Router do post("/auth/password", MastodonAPI.AuthController, :password_reset) get("/web/*path", MastoFEController, :index) + + get("/embed/:id", EmbedController, :show) end pipeline :remote_media do diff --git a/lib/pleroma/web/templates/embed/_attachment.html.eex b/lib/pleroma/web/templates/embed/_attachment.html.eex new file mode 100644 index 000000000..7e04e9550 --- /dev/null +++ b/lib/pleroma/web/templates/embed/_attachment.html.eex @@ -0,0 +1,8 @@ +<%= case @mediaType do %> +<% "audio" -> %> + +<% "video" -> %> + +<% _ -> %> +<%= @name %> +<% end %> diff --git a/lib/pleroma/web/templates/embed/show.html.eex b/lib/pleroma/web/templates/embed/show.html.eex new file mode 100644 index 000000000..6bf8fac29 --- /dev/null +++ b/lib/pleroma/web/templates/embed/show.html.eex @@ -0,0 +1,76 @@ +
+ + +
+ <%= if status_title(@activity) != "" do %> +
open<% end %>> + <%= raw status_title(@activity) %> +
<%= activity_content(@activity) %>
+
+ <% else %> +
<%= activity_content(@activity) %>
+ <% end %> + <%= for %{"name" => name, "url" => [url | _]} <- attachments(@activity) do %> +
+ <%= if sensitive?(@activity) do %> +
+ <%= Gettext.gettext("sensitive media") %> +
+ <%= render("_attachment.html", %{name: name, url: url["href"], + mediaType: fetch_media_type(url)}) %> +
+
+ <% else %> + <%= render("_attachment.html", %{name: name, url: url["href"], + mediaType: fetch_media_type(url)}) %> + <% end %> +
+ <% end %> +
+ +
+
<%= Gettext.gettext("replies") %>
<%= @counts.replies %>
+
<%= Gettext.gettext("announces") %>
<%= @counts.announces %>
+
<%= Gettext.gettext("likes") %>
<%= @counts.likes %>
+
+ +

+ <%= link published(@activity), to: activity_url(@author, @activity) %> +

+
+ + diff --git a/lib/pleroma/web/templates/layout/embed.html.eex b/lib/pleroma/web/templates/layout/embed.html.eex new file mode 100644 index 000000000..57ae4f802 --- /dev/null +++ b/lib/pleroma/web/templates/layout/embed.html.eex @@ -0,0 +1,14 @@ + + + + + + <%= Pleroma.Config.get([:instance, :name]) %> + + <%= Phoenix.HTML.raw(assigns[:meta] || "") %> + + + + <%= render @view_module, @view_template, assigns %> + + diff --git a/lib/pleroma/web/views/embed_view.ex b/lib/pleroma/web/views/embed_view.ex new file mode 100644 index 000000000..77536835b --- /dev/null +++ b/lib/pleroma/web/views/embed_view.ex @@ -0,0 +1,83 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.EmbedView do + use Pleroma.Web, :view + + alias Calendar.Strftime + alias Pleroma.Activity + alias Pleroma.Emoji.Formatter + alias Pleroma.Object + alias Pleroma.User + alias Pleroma.Web.Gettext + alias Pleroma.Web.MediaProxy + alias Pleroma.Web.Metadata.Utils + alias Pleroma.Web.Router.Helpers + + use Phoenix.HTML + + @media_types ["image", "audio", "video"] + + defp emoji_for_user(%User{} = user) do + user.source_data + |> Map.get("tag", []) + |> Enum.filter(fn %{"type" => t} -> t == "Emoji" end) + |> Enum.map(fn %{"icon" => %{"url" => url}, "name" => name} -> + {String.trim(name, ":"), url} + end) + end + + defp fetch_media_type(%{"mediaType" => mediaType}) do + Utils.fetch_media_type(@media_types, mediaType) + end + + defp open_content? do + Pleroma.Config.get( + [:frontend_configurations, :collapse_message_with_subjects], + true + ) + end + + defp full_nickname(user) do + %{host: host} = URI.parse(user.ap_id) + "@" <> user.nickname <> "@" <> host + end + + defp status_title(%Activity{object: %Object{data: %{"name" => name}}}) when is_binary(name), + do: name + + defp status_title(%Activity{object: %Object{data: %{"summary" => summary}}}) + when is_binary(summary), + do: summary + + defp status_title(_), do: nil + + defp activity_content(%Activity{object: %Object{data: %{"content" => content}}}) do + content |> Pleroma.HTML.filter_tags() |> raw() + end + + defp activity_content(_), do: nil + + defp activity_url(%User{local: true}, activity) do + Helpers.o_status_url(Pleroma.Web.Endpoint, :notice, activity) + end + + defp activity_url(%User{local: false}, %Activity{object: %Object{data: data}}) do + data["url"] || data["external_url"] || data["id"] + end + + defp attachments(%Activity{object: %Object{data: %{"attachment" => attachments}}}) do + attachments + end + + defp sensitive?(%Activity{object: %Object{data: %{"sensitive" => sensitive}}}) do + sensitive + end + + defp published(%Activity{object: %Object{data: %{"published" => published}}}) do + published + |> NaiveDateTime.from_iso8601!() + |> Strftime.strftime!("%B %d, %Y, %l:%M %p") + end +end diff --git a/priv/static/embed.css b/priv/static/embed.css new file mode 100644 index 0000000000000000000000000000000000000000..cc79ee7ab74981e6fe7047d5e80eda3b0e4e3880 GIT binary patch literal 1408 zcmb7E+iu%141Ld62pINKOm5P3Y2$tkZOJwlT?~oNWyAh`y18+XY(*bM9Z}>thit4k zv)?Pm8ff>uvy&0LwaU7heR+C)YQMj{h0D$w;vHyI=bCvio_p!Ai&q7F9FSx@Yj8c9 znyuqu1R>D$HQPwNIP=C5S)D+CR;vmQK;Tjt?c{v?e6(mty0_Kh9(A8Eow7hRQ?jF& zw6RV|#~lcqe9fN6)1?mXupa_81yib)@PKpRuCp(r>6O;(rLC>Jv*uODz zbsA3mh=PWYYQ6rNI}kvULHdm3iMWuhbwFqXQ^uOWT>LSk>cJjlX5$7MJ(UV>e7ZKCr!%Ba_<_D zNd{RWD}(L+Q;o$G^P~TfcyZ)7DV1kvX^u2hvyqg7(Pwh6X1~k;Ok@)js%8pPZ&ISh zo_H{2+6`rXLnw0jE(V(DbN;T$HOY4u*7Ii92obZ~-w8Q7Puy}nt+PYZupEnRf2`9E VyE{O0Gas{fx6thdwqh4)`3o~s!h!$* literal 0 HcmV?d00001 diff --git a/priv/static/embed.js b/priv/static/embed.js new file mode 100644 index 0000000000000000000000000000000000000000..f675f6417934e2c7cccb4012b499e16bcd8ef7fa GIT binary patch literal 942 zcmZ{j!EW0y42JJ{3ic#>Xaw}yB8OoMu)~TL=wXK-2i2lu0kV`ya?+snyN{IYxIi%< z44Wo@e!oap?ckbZyo0KS_Z5H`B0@~TG)b)J{iFf}RQduNSaPjb8g;1vFfCL&VO+wX zNbH2-7DVIwqs4?`FOAdq_S9C|H$#su$t?JiRKgl=HXB&q%~AkGx~i!+zzArGhr#%| z3Mj3&CsO)tVnTYr^ zidq1b-Aq`!Tw(NnX~TBX5L{-R3>N)t ztG@$=%L`g;k`LeMizqyjrpusf%%t__lPDPr=Ts4!;H@?8Kp?_-F=5YN)5W6nCk(Ci zXHMyi*68vYesU#`L+q-lMS(ACYBUvWiEqTKzTHLbh0VC z^ry`K=wo^;6R+kGGZByP9{w}C+sR%=*Y{xbH89fu@lBK!|1vgN2$ Dx91wg literal 0 HcmV?d00001 From fc2eb1fbd6a5b38a3cf72e557cce1029d6b7f16f Mon Sep 17 00:00:00 2001 From: Egor Kislitsyn Date: Fri, 20 Mar 2020 22:16:57 +0400 Subject: [PATCH 015/529] Fix formatter warnings --- test/workers/cron/purge_expired_activities_worker_test.exs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/workers/cron/purge_expired_activities_worker_test.exs b/test/workers/cron/purge_expired_activities_worker_test.exs index 85ae1e5ef..beac55fb2 100644 --- a/test/workers/cron/purge_expired_activities_worker_test.exs +++ b/test/workers/cron/purge_expired_activities_worker_test.exs @@ -11,8 +11,8 @@ defmodule Pleroma.Workers.Cron.PurgeExpiredActivitiesWorkerTest do import Pleroma.Factory import ExUnit.CaptureLog - setup do - clear_config([ActivityExpiration, :enabled]) + setup do + clear_config([ActivityExpiration, :enabled]) clear_config([:instance, :rewrite_policy]) end From fd97b0e634d30dec3217efcf3d67610d1b54bf8b Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 9 Mar 2020 17:00:16 +0100 Subject: [PATCH 016/529] Chats: Basic implementation. --- lib/pleroma/chat.ex | 41 +++++++++++++++++ .../20200309123730_create_chats.exs | 16 +++++++ test/chat_test.exs | 44 +++++++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 lib/pleroma/chat.ex create mode 100644 priv/repo/migrations/20200309123730_create_chats.exs create mode 100644 test/chat_test.exs diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex new file mode 100644 index 000000000..e2a8b8eba --- /dev/null +++ b/lib/pleroma/chat.ex @@ -0,0 +1,41 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Chat do + use Ecto.Schema + import Ecto.Changeset + + alias Pleroma.User + alias Pleroma.Repo + + @moduledoc """ + Chat keeps a reference to DirectMessage conversations between a user and an recipient. The recipient can be a user (for now) or a group (not implemented yet). + + It is a helper only, to make it easy to display a list of chats with other people, ordered by last bump. The actual messages are retrieved by querying the recipients of the ChatMessages. + """ + + schema "chats" do + belongs_to(:user, User, type: FlakeId.Ecto.CompatType) + field(:recipient, :string) + field(:unread, :integer, default: 0) + + timestamps() + end + + def creation_cng(struct, params) do + struct + |> cast(params, [:user_id, :recipient]) + |> validate_required([:user_id, :recipient]) + |> unique_constraint(:user_id, name: :chats_user_id_recipient_index) + end + + def get_or_create(user_id, recipient) do + %__MODULE__{} + |> creation_cng(%{user_id: user_id, recipient: recipient}) + |> Repo.insert( + on_conflict: [set: [updated_at: NaiveDateTime.utc_now()]], + conflict_target: [:user_id, :recipient] + ) + end +end diff --git a/priv/repo/migrations/20200309123730_create_chats.exs b/priv/repo/migrations/20200309123730_create_chats.exs new file mode 100644 index 000000000..715d798ea --- /dev/null +++ b/priv/repo/migrations/20200309123730_create_chats.exs @@ -0,0 +1,16 @@ +defmodule Pleroma.Repo.Migrations.CreateChats do + use Ecto.Migration + + def change do + create table(:chats) do + add(:user_id, references(:users, type: :uuid)) + # Recipient is an ActivityPub id, to future-proof for group support. + add(:recipient, :string) + add(:unread, :integer, default: 0) + timestamps() + end + + # There's only one chat between a user and a recipient. + create(index(:chats, [:user_id, :recipient], unique: true)) + end +end diff --git a/test/chat_test.exs b/test/chat_test.exs new file mode 100644 index 000000000..ca9206802 --- /dev/null +++ b/test/chat_test.exs @@ -0,0 +1,44 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.ChatTest do + use Pleroma.DataCase, async: true + + alias Pleroma.Chat + + import Pleroma.Factory + + describe "creation and getting" do + test "it creates a chat for a user and recipient" do + user = insert(:user) + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + + assert chat.id + end + + test "it returns a chat for a user and recipient if it already exists" do + user = insert(:user) + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + {:ok, chat_two} = Chat.get_or_create(user.id, other_user.ap_id) + + assert chat.id == chat_two.id + end + + test "a returning chat will have an updated `update_at` field" do + user = insert(:user) + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + :timer.sleep(1500) + {:ok, chat_two} = Chat.get_or_create(user.id, other_user.ap_id) + + assert chat.id == chat_two.id + assert chat.updated_at != chat_two.updated_at + end + end +end From 3775683a04e9b819f88bfba533b755bbd5b3c2df Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 8 Apr 2020 15:55:43 +0200 Subject: [PATCH 017/529] ChatMessage: Basic incoming handling. --- lib/pleroma/chat.ex | 2 +- lib/pleroma/web/activity_pub/activity_pub.ex | 1 + .../web/activity_pub/object_validator.ex | 30 +++++++++- .../chat_message_validator.ex | 58 +++++++++++++++++++ .../create_chat_message_validator.ex | 35 +++++++++++ ..._validator.ex => create_note_validator.ex} | 0 .../object_validators/types/recipients.ex | 23 ++++++++ .../web/activity_pub/transmogrifier.ex | 7 +++ .../transmogrifier/chat_message_handling.ex | 30 ++++++++++ test/fixtures/create-chat-message.json | 19 ++++++ .../types/recipients_test.exs | 15 +++++ .../transmogrifier/chat_message_test.exs | 32 ++++++++++ 12 files changed, 250 insertions(+), 2 deletions(-) create mode 100644 lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex create mode 100644 lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex rename lib/pleroma/web/activity_pub/object_validators/{create_validator.ex => create_note_validator.ex} (100%) create mode 100644 lib/pleroma/web/activity_pub/object_validators/types/recipients.ex create mode 100644 lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex create mode 100644 test/fixtures/create-chat-message.json create mode 100644 test/web/activity_pub/object_validators/types/recipients_test.exs create mode 100644 test/web/activity_pub/transmogrifier/chat_message_test.exs diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index e2a8b8eba..07ad62b97 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -10,7 +10,7 @@ defmodule Pleroma.Chat do alias Pleroma.Repo @moduledoc """ - Chat keeps a reference to DirectMessage conversations between a user and an recipient. The recipient can be a user (for now) or a group (not implemented yet). + Chat keeps a reference to ChatMessage conversations between a user and an recipient. The recipient can be a user (for now) or a group (not implemented yet). It is a helper only, to make it easy to display a list of chats with other people, ordered by last bump. The actual messages are retrieved by querying the recipients of the ChatMessages. """ diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 19286fd01..0b4892501 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -397,6 +397,7 @@ defp do_unreact_with_emoji(user, reaction_id, options) do end end + # TODO: Is this even used now? # TODO: This is weird, maybe we shouldn't check here if we can make the activity. @spec like(User.t(), Object.t(), String.t() | nil, boolean()) :: {:ok, Activity.t(), Object.t()} | {:error, any()} diff --git a/lib/pleroma/web/activity_pub/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex index dc4bce059..49cc72561 100644 --- a/lib/pleroma/web/activity_pub/object_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validator.ex @@ -12,18 +12,46 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidator do alias Pleroma.Object alias Pleroma.User alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator @spec validate(map(), keyword()) :: {:ok, map(), keyword()} | {:error, any()} def validate(object, meta) def validate(%{"type" => "Like"} = object, meta) do with {:ok, object} <- - object |> LikeValidator.cast_and_validate() |> Ecto.Changeset.apply_action(:insert) do + object + |> LikeValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do object = stringify_keys(object |> Map.from_struct()) {:ok, object, meta} end end + def validate(%{"type" => "ChatMessage"} = object, meta) do + with {:ok, object} <- + object + |> ChatMessageValidator.cast_and_apply() do + object = stringify_keys(object) + {:ok, object, meta} + end + end + + def validate(%{"type" => "Create"} = object, meta) do + with {:ok, object} <- + object + |> CreateChatMessageValidator.cast_and_apply() do + object = stringify_keys(object) + {:ok, object, meta} + end + end + + def stringify_keys(%{__struct__: _} = object) do + object + |> Map.from_struct() + |> stringify_keys + end + def stringify_keys(object) do object |> Map.new(fn {key, val} -> {to_string(key), val} end) diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex new file mode 100644 index 000000000..ab5be3596 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -0,0 +1,58 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do + use Ecto.Schema + + alias Pleroma.Web.ActivityPub.ObjectValidators.Types + + import Ecto.Changeset + + @primary_key false + @derive Jason.Encoder + + embedded_schema do + field(:id, Types.ObjectID, primary_key: true) + field(:to, Types.Recipients, default: []) + field(:type, :string) + field(:content, :string) + field(:actor, Types.ObjectID) + field(:published, Types.DateTime) + end + + def cast_and_apply(data) do + data + |> cast_data + |> apply_action(:insert) + end + + def cast_and_validate(data) do + data + |> cast_data() + |> validate_data() + end + + def cast_data(data) do + %__MODULE__{} + |> changeset(data) + end + + def fix(data) do + data + |> Map.put_new("actor", data["attributedTo"]) + end + + def changeset(struct, data) do + data = fix(data) + + struct + |> cast(data, __schema__(:fields)) + end + + def validate_data(data_cng) do + data_cng + |> validate_inclusion(:type, ["ChatMessage"]) + |> validate_required([:id, :actor, :to, :type, :content]) + end +end diff --git a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex new file mode 100644 index 000000000..659311480 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex @@ -0,0 +1,35 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +# NOTES +# - Can probably be a generic create validator +# - doesn't embed, will only get the object id +# - object has to be validated first, maybe with some meta info from the surrounding create +defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator do + use Ecto.Schema + + alias Pleroma.Web.ActivityPub.ObjectValidators.Types + + import Ecto.Changeset + + @primary_key false + + embedded_schema do + field(:id, Types.ObjectID, primary_key: true) + field(:actor, Types.ObjectID) + field(:type, :string) + field(:to, Types.Recipients, default: []) + field(:object, Types.ObjectID) + end + + def cast_and_apply(data) do + data + |> cast_data + |> apply_action(:insert) + end + + def cast_data(data) do + cast(%__MODULE__{}, data, __schema__(:fields)) + end +end diff --git a/lib/pleroma/web/activity_pub/object_validators/create_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_note_validator.ex similarity index 100% rename from lib/pleroma/web/activity_pub/object_validators/create_validator.ex rename to lib/pleroma/web/activity_pub/object_validators/create_note_validator.ex diff --git a/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex b/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex new file mode 100644 index 000000000..5a3040842 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex @@ -0,0 +1,23 @@ +defmodule Pleroma.Web.ActivityPub.ObjectValidators.Types.Recipients do + use Ecto.Type + + def type, do: {:array, :string} + + def cast(object) when is_binary(object) do + cast([object]) + end + + def cast([_ | _] = data), do: {:ok, data} + + def cast(_) do + :error + end + + def dump(data) do + {:ok, data} + end + + def load(data) do + {:ok, data} + end +end diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 0a8ad62ad..becc35ea3 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -16,6 +16,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do alias Pleroma.Web.ActivityPub.ObjectValidator alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator alias Pleroma.Web.ActivityPub.Pipeline + alias Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageHandling alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.ActivityPub.Visibility alias Pleroma.Web.Federator @@ -612,6 +613,12 @@ def handle_incoming( |> handle_incoming(options) end + def handle_incoming( + %{"type" => "Create", "object" => %{"type" => "ChatMessage"}} = data, + options + ), + do: ChatMessageHandling.handle_incoming(data, options) + def handle_incoming(%{"type" => "Like"} = data, _options) do with {_, {:ok, cast_data_sym}} <- {:casting_data, diff --git a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex new file mode 100644 index 000000000..b5843736f --- /dev/null +++ b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex @@ -0,0 +1,30 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageHandling do + alias Pleroma.Object + alias Pleroma.Web.ActivityPub.ObjectValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator + alias Pleroma.Web.ActivityPub.Pipeline + + def handle_incoming( + %{"type" => "Create", "object" => %{"type" => "ChatMessage"} = object_data} = data, + _options + ) do + with {_, {:ok, cast_data_sym}} <- + {:casting_data, data |> CreateChatMessageValidator.cast_and_apply()}, + cast_data = ObjectValidator.stringify_keys(cast_data_sym), + {_, {:ok, object_cast_data_sym}} <- + {:casting_object_data, object_data |> ChatMessageValidator.cast_and_apply()}, + object_cast_data = ObjectValidator.stringify_keys(object_cast_data_sym), + {_, {:ok, validated_object, _meta}} <- + {:validate_object, ObjectValidator.validate(object_cast_data, %{})}, + {_, {:ok, _created_object}} <- {:persist_object, Object.create(validated_object)}, + {_, {:ok, activity, _meta}} <- + {:common_pipeline, Pipeline.common_pipeline(cast_data, local: false)} do + {:ok, activity} + end + end +end diff --git a/test/fixtures/create-chat-message.json b/test/fixtures/create-chat-message.json new file mode 100644 index 000000000..4aa17f4a5 --- /dev/null +++ b/test/fixtures/create-chat-message.json @@ -0,0 +1,19 @@ +{ + "actor": "http://2hu.gensokyo/users/raymoo", + "id": "http://2hu.gensokyo/objects/1", + "object": { + "attributedTo": "http://2hu.gensokyo/users/raymoo", + "content": "You expected a cute girl? Too bad.", + "id": "http://2hu.gensokyo/objects/2", + "published": "2020-02-12T14:08:20Z", + "to": [ + "http://2hu.gensokyo/users/marisa" + ], + "type": "ChatMessage" + }, + "published": "2018-02-12T14:08:20Z", + "to": [ + "http://2hu.gensokyo/users/marisa" + ], + "type": "Create" +} diff --git a/test/web/activity_pub/object_validators/types/recipients_test.exs b/test/web/activity_pub/object_validators/types/recipients_test.exs new file mode 100644 index 000000000..2f9218774 --- /dev/null +++ b/test/web/activity_pub/object_validators/types/recipients_test.exs @@ -0,0 +1,15 @@ +defmodule Pleroma.Web.ObjectValidators.Types.RecipientsTest do + alias Pleroma.Web.ActivityPub.ObjectValidators.Types.Recipients + use Pleroma.DataCase + + test "it works with a list" do + list = ["https://lain.com/users/lain"] + assert {:ok, list} == Recipients.cast(list) + end + + test "it turns a single string into a list" do + recipient = "https://lain.com/users/lain" + + assert {:ok, [recipient]} == Recipients.cast(recipient) + end +end diff --git a/test/web/activity_pub/transmogrifier/chat_message_test.exs b/test/web/activity_pub/transmogrifier/chat_message_test.exs new file mode 100644 index 000000000..aed62c520 --- /dev/null +++ b/test/web/activity_pub/transmogrifier/chat_message_test.exs @@ -0,0 +1,32 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageTest do + use Pleroma.DataCase + + import Pleroma.Factory + + alias Pleroma.Activity + alias Pleroma.Object + alias Pleroma.Web.ActivityPub.Transmogrifier + + describe "handle_incoming" do + test "it insert it" do + data = + File.read!("test/fixtures/create-chat-message.json") + |> Poison.decode!() + + author = insert(:user, ap_id: data["actor"], local: false) + recipient = insert(:user, ap_id: List.first(data["to"]), local: false) + + {:ok, %Activity{} = activity} = Transmogrifier.handle_incoming(data) + + assert activity.actor == author.ap_id + assert activity.recipients == [recipient.ap_id, author.ap_id] + + %Object{} = object = Object.get_by_ap_id(activity.data["object"]) + assert object + end + end +end From 2e78686686f04726ad73749ee744b8a9df91ffb8 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 9 Apr 2020 12:44:20 +0200 Subject: [PATCH 018/529] SideEffects: Handle ChatMessage creation. --- lib/pleroma/chat.ex | 15 ++++++---- lib/pleroma/web/activity_pub/builder.ex | 22 +++++++++++++++ lib/pleroma/web/activity_pub/side_effects.ex | 29 ++++++++++++++++++++ test/chat_test.exs | 14 ++++++---- test/web/activity_pub/side_effects_test.exs | 26 ++++++++++++++++++ 5 files changed, 95 insertions(+), 11 deletions(-) diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index 07ad62b97..b61bc4c0e 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -18,23 +18,28 @@ defmodule Pleroma.Chat do schema "chats" do belongs_to(:user, User, type: FlakeId.Ecto.CompatType) field(:recipient, :string) - field(:unread, :integer, default: 0) + field(:unread, :integer, default: 0, read_after_writes: true) timestamps() end def creation_cng(struct, params) do struct - |> cast(params, [:user_id, :recipient]) + |> cast(params, [:user_id, :recipient, :unread]) |> validate_required([:user_id, :recipient]) |> unique_constraint(:user_id, name: :chats_user_id_recipient_index) end - def get_or_create(user_id, recipient) do + def get(user_id, recipient) do + __MODULE__ + |> Repo.get_by(user_id: user_id, recipient: recipient) + end + + def bump_or_create(user_id, recipient) do %__MODULE__{} - |> creation_cng(%{user_id: user_id, recipient: recipient}) + |> creation_cng(%{user_id: user_id, recipient: recipient, unread: 1}) |> Repo.insert( - on_conflict: [set: [updated_at: NaiveDateTime.utc_now()]], + on_conflict: [set: [updated_at: NaiveDateTime.utc_now()], inc: [unread: 1]], conflict_target: [:user_id, :recipient] ) end diff --git a/lib/pleroma/web/activity_pub/builder.ex b/lib/pleroma/web/activity_pub/builder.ex index 429a510b8..f0a6c1e1b 100644 --- a/lib/pleroma/web/activity_pub/builder.ex +++ b/lib/pleroma/web/activity_pub/builder.ex @@ -10,6 +10,28 @@ defmodule Pleroma.Web.ActivityPub.Builder do alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.ActivityPub.Visibility + def create(actor, object_id, recipients) do + {:ok, + %{ + "id" => Utils.generate_activity_id(), + "actor" => actor.ap_id, + "to" => recipients, + "object" => object_id, + "type" => "Create" + }, []} + end + + def chat_message(actor, recipient, content) do + {:ok, + %{ + "id" => Utils.generate_object_id(), + "actor" => actor.ap_id, + "type" => "ChatMessage", + "to" => [recipient], + "content" => content + }, []} + end + @spec like(User.t(), Object.t()) :: {:ok, map(), keyword()} def like(actor, object) do object_actor = User.get_cached_by_ap_id(object.data["actor"]) diff --git a/lib/pleroma/web/activity_pub/side_effects.ex b/lib/pleroma/web/activity_pub/side_effects.ex index 666a4e310..594f32700 100644 --- a/lib/pleroma/web/activity_pub/side_effects.ex +++ b/lib/pleroma/web/activity_pub/side_effects.ex @@ -5,8 +5,10 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do liked object, a `Follow` activity will add the user to the follower collection, and so on. """ + alias Pleroma.Chat alias Pleroma.Notification alias Pleroma.Object + alias Pleroma.User alias Pleroma.Web.ActivityPub.Utils def handle(object, meta \\ []) @@ -21,8 +23,35 @@ def handle(%{data: %{"type" => "Like"}} = object, meta) do {:ok, object, meta} end + def handle(%{data: %{"type" => "Create", "object" => object_id}} = activity, meta) do + object = Object.get_by_ap_id(object_id) + + {:ok, _object} = handle_object_creation(object) + + {:ok, activity, meta} + end + # Nothing to do def handle(object, meta) do {:ok, object, meta} end + + def handle_object_creation(%{data: %{"type" => "ChatMessage"}} = object) do + actor = User.get_cached_by_ap_id(object.data["actor"]) + recipient = User.get_cached_by_ap_id(hd(object.data["to"])) + + [[actor, recipient], [recipient, actor]] + |> Enum.each(fn [user, other_user] -> + if user.local do + Chat.bump_or_create(user.id, other_user.ap_id) + end + end) + + {:ok, object} + end + + # Nothing to do + def handle_object_creation(object) do + {:ok, object} + end end diff --git a/test/chat_test.exs b/test/chat_test.exs index ca9206802..bb2b46d51 100644 --- a/test/chat_test.exs +++ b/test/chat_test.exs @@ -14,7 +14,7 @@ test "it creates a chat for a user and recipient" do user = insert(:user) other_user = insert(:user) - {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) assert chat.id end @@ -23,19 +23,21 @@ test "it returns a chat for a user and recipient if it already exists" do user = insert(:user) other_user = insert(:user) - {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) - {:ok, chat_two} = Chat.get_or_create(user.id, other_user.ap_id) + {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) + {:ok, chat_two} = Chat.bump_or_create(user.id, other_user.ap_id) assert chat.id == chat_two.id end - test "a returning chat will have an updated `update_at` field" do + test "a returning chat will have an updated `update_at` field and an incremented unread count" do user = insert(:user) other_user = insert(:user) - {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) + assert chat.unread == 1 :timer.sleep(1500) - {:ok, chat_two} = Chat.get_or_create(user.id, other_user.ap_id) + {:ok, chat_two} = Chat.bump_or_create(user.id, other_user.ap_id) + assert chat_two.unread == 2 assert chat.id == chat_two.id assert chat.updated_at != chat_two.updated_at diff --git a/test/web/activity_pub/side_effects_test.exs b/test/web/activity_pub/side_effects_test.exs index b67bd14b3..5fd8372b5 100644 --- a/test/web/activity_pub/side_effects_test.exs +++ b/test/web/activity_pub/side_effects_test.exs @@ -5,6 +5,7 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do use Pleroma.DataCase + alias Pleroma.Chat alias Pleroma.Object alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Builder @@ -31,4 +32,29 @@ test "add the like to the original object", %{like: like, user: user} do assert user.ap_id in object.data["likes"] end end + + describe "creation of ChatMessages" do + test "it creates a Chat for the local users and bumps the unread count" do + author = insert(:user, local: false) + recipient = insert(:user, local: true) + + {:ok, chat_message_data, _meta} = Builder.chat_message(author, recipient.ap_id, "hey") + {:ok, chat_message_object} = Object.create(chat_message_data) + + {:ok, create_activity_data, _meta} = + Builder.create(author, chat_message_object.data["id"], [recipient.ap_id]) + + {:ok, create_activity, _meta} = ActivityPub.persist(create_activity_data, local: false) + + {:ok, _create_activity, _meta} = SideEffects.handle(create_activity) + + # The remote user won't get a chat + chat = Chat.get(author.id, recipient.ap_id) + refute chat + + # The local user will get a chat + chat = Chat.get(recipient.id, author.ap_id) + assert chat + end + end end From 4b047850718086a6d2edb5b2d94c6f888eba3016 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 9 Apr 2020 12:46:33 +0200 Subject: [PATCH 019/529] SideEffects: Extend ChatMessage test. --- test/web/activity_pub/side_effects_test.exs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/test/web/activity_pub/side_effects_test.exs b/test/web/activity_pub/side_effects_test.exs index 5fd8372b5..b629d0d5d 100644 --- a/test/web/activity_pub/side_effects_test.exs +++ b/test/web/activity_pub/side_effects_test.exs @@ -55,6 +55,26 @@ test "it creates a Chat for the local users and bumps the unread count" do # The local user will get a chat chat = Chat.get(recipient.id, author.ap_id) assert chat + + author = insert(:user, local: true) + recipient = insert(:user, local: true) + + {:ok, chat_message_data, _meta} = Builder.chat_message(author, recipient.ap_id, "hey") + {:ok, chat_message_object} = Object.create(chat_message_data) + + {:ok, create_activity_data, _meta} = + Builder.create(author, chat_message_object.data["id"], [recipient.ap_id]) + + {:ok, create_activity, _meta} = ActivityPub.persist(create_activity_data, local: false) + + {:ok, _create_activity, _meta} = SideEffects.handle(create_activity) + + # Both users are local and get the chat + chat = Chat.get(author.id, recipient.ap_id) + assert chat + + chat = Chat.get(recipient.id, author.ap_id) + assert chat end end end From 8e637ae1a7b75fa08679ae9cf424650fc105de85 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 9 Apr 2020 13:20:16 +0200 Subject: [PATCH 020/529] CommonAPI: Basic ChatMessage support. --- lib/pleroma/web/common_api/common_api.ex | 23 +++++++++++++++++++++++ test/web/common_api/common_api_test.exs | 21 +++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 636cf3301..39e15adbf 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -8,6 +8,7 @@ defmodule Pleroma.Web.CommonAPI do alias Pleroma.Conversation.Participation alias Pleroma.FollowingRelationship alias Pleroma.Object + alias Pleroma.Repo alias Pleroma.ThreadMute alias Pleroma.User alias Pleroma.UserRelationship @@ -23,6 +24,28 @@ defmodule Pleroma.Web.CommonAPI do require Pleroma.Constants require Logger + def post_chat_message(user, recipient, content) do + transaction = + Repo.transaction(fn -> + with {_, {:ok, chat_message_data, _meta}} <- + {:build_object, Builder.chat_message(user, recipient.ap_id, content)}, + {_, {:ok, chat_message_object}} <- + {:create_object, Object.create(chat_message_data)}, + {_, {:ok, create_activity_data, _meta}} <- + {:build_create_activity, + Builder.create(user, chat_message_object.data["id"], [recipient.ap_id])}, + {_, {:ok, %Activity{} = activity, _meta}} <- + {:common_pipeline, Pipeline.common_pipeline(create_activity_data, local: true)} do + {:ok, activity} + end + end) + + case transaction do + {:ok, value} -> value + error -> error + end + end + def follow(follower, followed) do timeout = Pleroma.Config.get([:activitypub, :follow_handshake_timeout]) diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index f46ad0272..1aea06d24 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -5,6 +5,7 @@ defmodule Pleroma.Web.CommonAPITest do use Pleroma.DataCase alias Pleroma.Activity + alias Pleroma.Chat alias Pleroma.Conversation.Participation alias Pleroma.Object alias Pleroma.User @@ -21,6 +22,26 @@ defmodule Pleroma.Web.CommonAPITest do setup do: clear_config([:instance, :limit]) setup do: clear_config([:instance, :max_pinned_statuses]) + describe "posting chat messages" do + test "it posts a chat message" do + author = insert(:user) + recipient = insert(:user) + + {:ok, activity} = CommonAPI.post_chat_message(author, recipient, "a test message") + + assert activity.data["type"] == "Create" + assert activity.local + object = Object.normalize(activity) + + assert object.data["type"] == "ChatMessage" + assert object.data["to"] == [recipient.ap_id] + assert object.data["content"] == "a test message" + + assert Chat.get(author.id, recipient.ap_id) + assert Chat.get(recipient.id, author.ap_id) + end + end + test "when replying to a conversation / participation, it will set the correct context id even if no explicit reply_to is given" do user = insert(:user) {:ok, activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "direct"}) From 68abea313d0be49aa6b8d4b980aa361383f991a7 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 9 Apr 2020 15:13:55 +0200 Subject: [PATCH 021/529] ChatController: Add creation and return of chats. --- lib/pleroma/chat.ex | 10 ++++ .../controllers/chat_controller.ex | 47 ++++++++++++++++ lib/pleroma/web/router.ex | 7 +++ .../controllers/chat_controller_test.exs | 55 +++++++++++++++++++ 4 files changed, 119 insertions(+) create mode 100644 lib/pleroma/web/pleroma_api/controllers/chat_controller.ex create mode 100644 test/web/pleroma_api/controllers/chat_controller_test.exs diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index b61bc4c0e..2475019d1 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -35,6 +35,16 @@ def get(user_id, recipient) do |> Repo.get_by(user_id: user_id, recipient: recipient) end + def get_or_create(user_id, recipient) do + %__MODULE__{} + |> creation_cng(%{user_id: user_id, recipient: recipient}) + |> Repo.insert( + on_conflict: :nothing, + returning: true, + conflict_target: [:user_id, :recipient] + ) + end + def bump_or_create(user_id, recipient) do %__MODULE__{} |> creation_cng(%{user_id: user_id, recipient: recipient, unread: 1}) diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex new file mode 100644 index 000000000..0ee8bea33 --- /dev/null +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -0,0 +1,47 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only +defmodule Pleroma.Web.PleromaAPI.ChatController do + use Pleroma.Web, :controller + + alias Pleroma.Chat + alias Pleroma.Repo + + import Ecto.Query + + def index(%{assigns: %{user: %{id: user_id}}} = conn, _params) do + chats = + from(c in Chat, + where: c.user_id == ^user_id, + order_by: [desc: c.updated_at] + ) + |> Repo.all() + + represented_chats = + Enum.map(chats, fn chat -> + %{ + id: chat.id, + recipient: chat.recipient, + unread: chat.unread + } + end) + + conn + |> json(represented_chats) + end + + def create(%{assigns: %{user: user}} = conn, params) do + recipient = params["ap_id"] |> URI.decode_www_form() + + with {:ok, %Chat{} = chat} <- Chat.get_or_create(user.id, recipient) do + represented_chat = %{ + id: chat.id, + recipient: chat.recipient, + unread: chat.unread + } + + conn + |> json(represented_chat) + end + end +end diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 3ecd59cd1..18ce9ee4b 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -284,6 +284,13 @@ defmodule Pleroma.Web.Router do end scope "/api/v1/pleroma", Pleroma.Web.PleromaAPI do + scope [] do + pipe_through(:authenticated_api) + + post("/chats/by-ap-id/:ap_id", ChatController, :create) + get("/chats", ChatController, :index) + end + scope [] do pipe_through(:authenticated_api) diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs new file mode 100644 index 000000000..40c09d1cd --- /dev/null +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -0,0 +1,55 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only +defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do + use Pleroma.Web.ConnCase, async: true + + alias Pleroma.Chat + + import Pleroma.Factory + + describe "POST /api/v1/pleroma/chats/by-ap-id/:id" do + test "it creates or returns a chat", %{conn: conn} do + user = insert(:user) + other_user = insert(:user) + + result = + conn + |> assign(:user, user) + |> post("/api/v1/pleroma/chats/by-ap-id/#{URI.encode_www_form(other_user.ap_id)}") + |> json_response(200) + + assert result["id"] + end + end + + describe "GET /api/v1/pleroma/chats" do + test "it return a list of chats the current user is participating in, in descending order of updates", + %{conn: conn} do + user = insert(:user) + har = insert(:user) + jafnhar = insert(:user) + tridi = insert(:user) + + {:ok, chat_1} = Chat.get_or_create(user.id, har.ap_id) + :timer.sleep(1000) + {:ok, _chat_2} = Chat.get_or_create(user.id, jafnhar.ap_id) + :timer.sleep(1000) + {:ok, chat_3} = Chat.get_or_create(user.id, tridi.ap_id) + :timer.sleep(1000) + + # bump the second one + {:ok, chat_2} = Chat.bump_or_create(user.id, jafnhar.ap_id) + + result = + conn + |> assign(:user, user) + |> get("/api/v1/pleroma/chats") + |> json_response(200) + + ids = Enum.map(result, & &1["id"]) + + assert ids == [chat_2.id, chat_3.id, chat_1.id] + end + end +end From e8fd0dd689be0c7bbca006f7267955329279da98 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 9 Apr 2020 16:59:49 +0200 Subject: [PATCH 022/529] ChatController: Basic support for returning messages. --- .../controllers/chat_controller.ex | 40 +++++++++++++++++++ lib/pleroma/web/router.ex | 1 + .../controllers/chat_controller_test.exs | 28 +++++++++++++ 3 files changed, 69 insertions(+) diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 0ee8bea33..de23b9a22 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -5,10 +5,50 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do use Pleroma.Web, :controller alias Pleroma.Chat + alias Pleroma.Object alias Pleroma.Repo import Ecto.Query + def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{"id" => id}) do + with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id) do + messages = + from(o in Object, + where: fragment("?->>'type' = ?", o.data, "ChatMessage"), + where: + fragment( + """ + (?->>'actor' = ? and ?->'to' = ?) + OR (?->>'actor' = ? and ?->'to' = ?) + """, + o.data, + ^user.ap_id, + o.data, + ^[chat.recipient], + o.data, + ^chat.recipient, + o.data, + ^[user.ap_id] + ), + order_by: [desc: o.id] + ) + |> Repo.all() + + represented_messages = + messages + |> Enum.map(fn message -> + %{ + actor: message.data["actor"], + id: message.id, + content: message.data["content"] + } + end) + + conn + |> json(represented_messages) + end + end + def index(%{assigns: %{user: %{id: user_id}}} = conn, _params) do chats = from(c in Chat, diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 18ce9ee4b..368e77d3e 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -289,6 +289,7 @@ defmodule Pleroma.Web.Router do post("/chats/by-ap-id/:ap_id", ChatController, :create) get("/chats", ChatController, :index) + get("/chats/:id/messages", ChatController, :messages) end scope [] do diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index 40c09d1cd..6b2db5064 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -5,9 +5,37 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do use Pleroma.Web.ConnCase, async: true alias Pleroma.Chat + alias Pleroma.Web.CommonAPI import Pleroma.Factory + describe "GET /api/v1/pleroma/chats/:id/messages" do + # TODO + # - Test that statuses don't show + # - Test the case where it's not the user's chat + # - Test the returned data + test "it returns the messages for a given chat", %{conn: conn} do + user = insert(:user) + other_user = insert(:user) + third_user = insert(:user) + + {:ok, _} = CommonAPI.post_chat_message(user, other_user, "hey") + {:ok, _} = CommonAPI.post_chat_message(user, third_user, "hey") + {:ok, _} = CommonAPI.post_chat_message(user, other_user, "how are you?") + {:ok, _} = CommonAPI.post_chat_message(other_user, user, "fine, how about you?") + + chat = Chat.get(user.id, other_user.ap_id) + + result = + conn + |> assign(:user, user) + |> get("/api/v1/pleroma/chats/#{chat.id}/messages") + |> json_response(200) + + assert length(result) == 3 + end + end + describe "POST /api/v1/pleroma/chats/by-ap-id/:id" do test "it creates or returns a chat", %{conn: conn} do user = insert(:user) From 2cc68414245805dc3b83c200798e424f139e71fc Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 9 Apr 2020 17:18:31 +0200 Subject: [PATCH 023/529] ChatController: Basic message posting. --- .../controllers/chat_controller.ex | 26 +++++++++++++++++++ lib/pleroma/web/router.ex | 1 + .../controllers/chat_controller_test.exs | 17 ++++++++++++ 3 files changed, 44 insertions(+) diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index de23b9a22..972330f4e 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -7,9 +7,35 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do alias Pleroma.Chat alias Pleroma.Object alias Pleroma.Repo + alias Pleroma.User + alias Pleroma.Web.CommonAPI import Ecto.Query + # TODO + # - Oauth stuff + # - Views / Representers + # - Error handling + + def post_chat_message(%{assigns: %{user: %{id: user_id} = user}} = conn, %{ + "id" => id, + "content" => content + }) do + with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id), + %User{} = recipient <- User.get_cached_by_ap_id(chat.recipient), + {:ok, activity} <- CommonAPI.post_chat_message(user, recipient, content), + message <- Object.normalize(activity) do + represented_message = %{ + actor: message.data["actor"], + id: message.id, + content: message.data["content"] + } + + conn + |> json(represented_message) + end + end + def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{"id" => id}) do with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id) do messages = diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 368e77d3e..ce69725dc 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -290,6 +290,7 @@ defmodule Pleroma.Web.Router do post("/chats/by-ap-id/:ap_id", ChatController, :create) get("/chats", ChatController, :index) get("/chats/:id/messages", ChatController, :messages) + post("/chats/:id/messages", ChatController, :post_chat_message) end scope [] do diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index 6b2db5064..b4230e5ad 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -9,6 +9,23 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do import Pleroma.Factory + describe "POST /api/v1/pleroma/chats/:id/messages" do + test "it posts a message to the chat", %{conn: conn} do + user = insert(:user) + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + + result = + conn + |> assign(:user, user) + |> post("/api/v1/pleroma/chats/#{chat.id}/messages", %{"content" => "Hallo!!"}) + |> json_response(200) + + assert result["content"] == "Hallo!!" + end + end + describe "GET /api/v1/pleroma/chats/:id/messages" do # TODO # - Test that statuses don't show From 64c78581fe397b6d9356c52cf3f43becd2ff3b4e Mon Sep 17 00:00:00 2001 From: lain Date: Fri, 10 Apr 2020 14:47:56 +0200 Subject: [PATCH 024/529] Chat: Only create them for valid users for now. --- lib/pleroma/chat.ex | 7 +++++++ test/chat_test.exs | 7 +++++++ 2 files changed, 14 insertions(+) diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index 2475019d1..c2044881f 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -26,6 +26,13 @@ defmodule Pleroma.Chat do def creation_cng(struct, params) do struct |> cast(params, [:user_id, :recipient, :unread]) + |> validate_change(:recipient, fn + :recipient, recipient -> + case User.get_cached_by_ap_id(recipient) do + nil -> [recipient: "must a an existing user"] + _ -> [] + end + end) |> validate_required([:user_id, :recipient]) |> unique_constraint(:user_id, name: :chats_user_id_recipient_index) end diff --git a/test/chat_test.exs b/test/chat_test.exs index bb2b46d51..952598c87 100644 --- a/test/chat_test.exs +++ b/test/chat_test.exs @@ -10,6 +10,13 @@ defmodule Pleroma.ChatTest do import Pleroma.Factory describe "creation and getting" do + test "it only works if the recipient is a valid user (for now)" do + user = insert(:user) + + assert {:error, _chat} = Chat.bump_or_create(user.id, "http://some/nonexisting/account") + assert {:error, _chat} = Chat.get_or_create(user.id, "http://some/nonexisting/account") + end + test "it creates a chat for a user and recipient" do user = insert(:user) other_user = insert(:user) From 6ace22b56a3ced833bd990de5715048d6bd32f80 Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 15 Apr 2020 18:23:16 +0200 Subject: [PATCH 025/529] Chat: Add views, don't return them in timeline queries. --- lib/pleroma/web/activity_pub/activity_pub.ex | 13 +++ .../web/api_spec/operations/chat_operation.ex | 81 +++++++++++++++++++ lib/pleroma/web/common_api/common_api.ex | 2 +- .../controllers/chat_controller.ex | 47 +++-------- .../pleroma_api/views/chat_message_view.ex | 28 +++++++ .../web/pleroma_api/views/chat_view.ex | 21 +++++ .../controllers/timeline_controller_test.exs | 3 + .../controllers/chat_controller_test.exs | 8 +- .../views/chat_message_view_test.exs | 42 ++++++++++ 9 files changed, 207 insertions(+), 38 deletions(-) create mode 100644 lib/pleroma/web/api_spec/operations/chat_operation.ex create mode 100644 lib/pleroma/web/pleroma_api/views/chat_message_view.ex create mode 100644 lib/pleroma/web/pleroma_api/views/chat_view.ex create mode 100644 test/web/pleroma_api/views/chat_message_view_test.exs diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 4a56beb73..b6ba91052 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -1207,6 +1207,18 @@ defp exclude_poll_votes(query, _) do end end + defp exclude_chat_messages(query, %{"include_chat_messages" => true}), do: query + + defp exclude_chat_messages(query, _) do + if has_named_binding?(query, :object) do + from([activity, object: o] in query, + where: fragment("not(?->>'type' = ?)", o.data, "ChatMessage") + ) + else + query + end + end + defp exclude_id(query, %{"exclude_id" => id}) when is_binary(id) do from(activity in query, where: activity.id != ^id) end @@ -1312,6 +1324,7 @@ def fetch_activities_query(recipients, opts \\ %{}) do |> restrict_instance(opts) |> Activity.restrict_deactivated_users() |> exclude_poll_votes(opts) + |> exclude_chat_messages(opts) |> exclude_visibility(opts) end diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex new file mode 100644 index 000000000..038ebb29d --- /dev/null +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -0,0 +1,81 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.ChatOperation do + alias OpenApiSpex.Operation + alias OpenApiSpex.Schema + + @spec open_api_operation(atom) :: Operation.t() + def open_api_operation(action) do + operation = String.to_existing_atom("#{action}_operation") + apply(__MODULE__, operation, []) + end + + def create_operation do + %Operation{ + tags: ["chat"], + summary: "Create a chat", + responses: %{ + 200 => + Operation.response("Chat", "application/json", %Schema{ + type: :object, + description: "A created chat is returned", + properties: %{ + id: %Schema{type: :integer} + } + }) + } + } + end + + def index_operation do + %Operation{ + tags: ["chat"], + summary: "Get a list of chats that you participated in", + responses: %{ + 200 => + Operation.response("Chats", "application/json", %Schema{ + type: :array, + description: "A list of chats", + items: %Schema{ + type: :object, + description: "A chat" + } + }) + } + } + end + + def messages_operation do + %Operation{ + tags: ["chat"], + summary: "Get the most recent messages of the chat", + responses: %{ + 200 => + Operation.response("Messages", "application/json", %Schema{ + type: :array, + description: "A list of chat messages", + items: %Schema{ + type: :object, + description: "A chat message" + } + }) + } + } + end + + def post_chat_message_operation do + %Operation{ + tags: ["chat"], + summary: "Post a message to the chat", + responses: %{ + 200 => + Operation.response("Message", "application/json", %Schema{ + type: :object, + description: "A chat message" + }) + } + } + end +end diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 2f13daf0c..c306c1e96 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -24,7 +24,7 @@ defmodule Pleroma.Web.CommonAPI do require Pleroma.Constants require Logger - def post_chat_message(user, recipient, content) do + def post_chat_message(%User{} = user, %User{} = recipient, content) do transaction = Repo.transaction(fn -> with {_, {:ok, chat_message_data, _meta}} <- diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 972330f4e..5ec546847 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -9,6 +9,8 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do alias Pleroma.Repo alias Pleroma.User alias Pleroma.Web.CommonAPI + alias Pleroma.Web.PleromaAPI.ChatView + alias Pleroma.Web.PleromaAPI.ChatMessageView import Ecto.Query @@ -17,6 +19,8 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do # - Views / Representers # - Error handling + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.ChatOperation + def post_chat_message(%{assigns: %{user: %{id: user_id} = user}} = conn, %{ "id" => id, "content" => content @@ -25,14 +29,9 @@ def post_chat_message(%{assigns: %{user: %{id: user_id} = user}} = conn, %{ %User{} = recipient <- User.get_cached_by_ap_id(chat.recipient), {:ok, activity} <- CommonAPI.post_chat_message(user, recipient, content), message <- Object.normalize(activity) do - represented_message = %{ - actor: message.data["actor"], - id: message.id, - content: message.data["content"] - } - conn - |> json(represented_message) + |> put_view(ChatMessageView) + |> render("show.json", for: user, object: message, chat: chat) end end @@ -60,18 +59,9 @@ def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{"id" => id}) d ) |> Repo.all() - represented_messages = - messages - |> Enum.map(fn message -> - %{ - actor: message.data["actor"], - id: message.id, - content: message.data["content"] - } - end) - conn - |> json(represented_messages) + |> put_view(ChatMessageView) + |> render("index.json", for: user, objects: messages, chat: chat) end end @@ -83,31 +73,18 @@ def index(%{assigns: %{user: %{id: user_id}}} = conn, _params) do ) |> Repo.all() - represented_chats = - Enum.map(chats, fn chat -> - %{ - id: chat.id, - recipient: chat.recipient, - unread: chat.unread - } - end) - conn - |> json(represented_chats) + |> put_view(ChatView) + |> render("index.json", chats: chats) end def create(%{assigns: %{user: user}} = conn, params) do recipient = params["ap_id"] |> URI.decode_www_form() with {:ok, %Chat{} = chat} <- Chat.get_or_create(user.id, recipient) do - represented_chat = %{ - id: chat.id, - recipient: chat.recipient, - unread: chat.unread - } - conn - |> json(represented_chat) + |> put_view(ChatView) + |> render("show.json", chat: chat) end end end diff --git a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex new file mode 100644 index 000000000..2df591358 --- /dev/null +++ b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex @@ -0,0 +1,28 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.ChatMessageView do + use Pleroma.Web, :view + + alias Pleroma.Chat + + def render( + "show.json", + %{ + object: %{id: id, data: %{"type" => "ChatMessage"} = chat_message}, + chat: %Chat{id: chat_id} + } + ) do + %{ + id: id, + content: chat_message["content"], + chat_id: chat_id, + actor: chat_message["actor"] + } + end + + def render("index.json", opts) do + render_many(opts[:objects], __MODULE__, "show.json", Map.put(opts, :as, :object)) + end +end diff --git a/lib/pleroma/web/pleroma_api/views/chat_view.ex b/lib/pleroma/web/pleroma_api/views/chat_view.ex new file mode 100644 index 000000000..ee48385bf --- /dev/null +++ b/lib/pleroma/web/pleroma_api/views/chat_view.ex @@ -0,0 +1,21 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.ChatView do + use Pleroma.Web, :view + + alias Pleroma.Chat + + def render("show.json", %{chat: %Chat{} = chat}) do + %{ + id: chat.id, + recipient: chat.recipient, + unread: chat.unread + } + end + + def render("index.json", %{chats: chats}) do + render_many(chats, __MODULE__, "show.json") + end +end diff --git a/test/web/mastodon_api/controllers/timeline_controller_test.exs b/test/web/mastodon_api/controllers/timeline_controller_test.exs index 06efdc901..a5c227991 100644 --- a/test/web/mastodon_api/controllers/timeline_controller_test.exs +++ b/test/web/mastodon_api/controllers/timeline_controller_test.exs @@ -51,6 +51,9 @@ test "the home timeline", %{user: user, conn: conn} do {:ok, activity} = CommonAPI.post(third_user, %{"status" => "repeated post"}) {:ok, _, _} = CommonAPI.repeat(activity.id, following) + # This one should not show up in the TL + {:ok, _activity} = CommonAPI.post_chat_message(third_user, user, ":gun:") + ret_conn = get(conn, uri) assert Enum.empty?(json_response(ret_conn, :ok)) diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index b4230e5ad..dad37a889 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -23,14 +23,13 @@ test "it posts a message to the chat", %{conn: conn} do |> json_response(200) assert result["content"] == "Hallo!!" + assert result["chat_id"] == chat.id end end describe "GET /api/v1/pleroma/chats/:id/messages" do # TODO - # - Test that statuses don't show # - Test the case where it's not the user's chat - # - Test the returned data test "it returns the messages for a given chat", %{conn: conn} do user = insert(:user) other_user = insert(:user) @@ -49,6 +48,11 @@ test "it returns the messages for a given chat", %{conn: conn} do |> get("/api/v1/pleroma/chats/#{chat.id}/messages") |> json_response(200) + result + |> Enum.each(fn message -> + assert message["chat_id"] == chat.id + end) + assert length(result) == 3 end end diff --git a/test/web/pleroma_api/views/chat_message_view_test.exs b/test/web/pleroma_api/views/chat_message_view_test.exs new file mode 100644 index 000000000..e690da022 --- /dev/null +++ b/test/web/pleroma_api/views/chat_message_view_test.exs @@ -0,0 +1,42 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.ChatMessageViewTest do + use Pleroma.DataCase + + alias Pleroma.Chat + alias Pleroma.Object + alias Pleroma.Web.CommonAPI + alias Pleroma.Web.PleromaAPI.ChatMessageView + + import Pleroma.Factory + + test "it displays a chat message" do + user = insert(:user) + recipient = insert(:user) + {:ok, activity} = CommonAPI.post_chat_message(user, recipient, "kippis") + + chat = Chat.get(user.id, recipient.ap_id) + + object = Object.normalize(activity) + + chat_message = ChatMessageView.render("show.json", object: object, for: user, chat: chat) + + assert chat_message[:id] == object.id + assert chat_message[:content] == "kippis" + assert chat_message[:actor] == user.ap_id + assert chat_message[:chat_id] + + {:ok, activity} = CommonAPI.post_chat_message(recipient, user, "gkgkgk") + + object = Object.normalize(activity) + + chat_message_two = ChatMessageView.render("show.json", object: object, for: user, chat: chat) + + assert chat_message_two[:id] == object.id + assert chat_message_two[:content] == "gkgkgk" + assert chat_message_two[:actor] == recipient.ap_id + assert chat_message_two[:chat_id] == chat_message[:chat_id] + end +end From 3d4eca5dd4be297f03c244497d78db03e82a9d81 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 16 Apr 2020 12:56:29 +0200 Subject: [PATCH 026/529] CommonAPI: Escape HTML for chat messages. --- lib/pleroma/web/common_api/common_api.ex | 8 +++++++- test/web/common_api/common_api_test.exs | 11 +++++++++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index c306c1e96..2c25850db 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -17,6 +17,7 @@ defmodule Pleroma.Web.CommonAPI do alias Pleroma.Web.ActivityPub.Pipeline alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.ActivityPub.Visibility + alias Pleroma.Formatter import Pleroma.Web.Gettext import Pleroma.Web.CommonAPI.Utils @@ -28,7 +29,12 @@ def post_chat_message(%User{} = user, %User{} = recipient, content) do transaction = Repo.transaction(fn -> with {_, {:ok, chat_message_data, _meta}} <- - {:build_object, Builder.chat_message(user, recipient.ap_id, content)}, + {:build_object, + Builder.chat_message( + user, + recipient.ap_id, + content |> Formatter.html_escape("text/plain") + )}, {_, {:ok, chat_message_object}} <- {:create_object, Object.create(chat_message_data)}, {_, {:ok, create_activity_data, _meta}} <- diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index 168721c81..abe3e6f8d 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -27,7 +27,12 @@ test "it posts a chat message" do author = insert(:user) recipient = insert(:user) - {:ok, activity} = CommonAPI.post_chat_message(author, recipient, "a test message") + {:ok, activity} = + CommonAPI.post_chat_message( + author, + recipient, + "a test message " + ) assert activity.data["type"] == "Create" assert activity.local @@ -35,7 +40,9 @@ test "it posts a chat message" do assert object.data["type"] == "ChatMessage" assert object.data["to"] == [recipient.ap_id] - assert object.data["content"] == "a test message" + + assert object.data["content"] == + "a test message <script>alert('uuu')</script>" assert Chat.get(author.id, recipient.ap_id) assert Chat.get(recipient.id, author.ap_id) From e2ced0491770d6260fe51d5144b81200fd97f268 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 16 Apr 2020 15:21:47 +0200 Subject: [PATCH 027/529] ChatMessages: Better validation. --- .../web/activity_pub/object_validator.ex | 6 ++- .../chat_message_validator.ex | 26 ++++++++++ .../object_validators/common_validations.ex | 6 ++- .../create_chat_message_validator.ex | 5 ++ .../transmogrifier/chat_message_handling.ex | 3 ++ test/fixtures/create-chat-message.json | 2 +- .../activity_pub/object_validator_test.exs | 52 +++++++++++++++++++ .../transmogrifier/chat_message_test.exs | 34 +++++++++++- 8 files changed, 128 insertions(+), 6 deletions(-) diff --git a/lib/pleroma/web/activity_pub/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex index 49cc72561..259bbeb64 100644 --- a/lib/pleroma/web/activity_pub/object_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validator.ex @@ -31,7 +31,8 @@ def validate(%{"type" => "Like"} = object, meta) do def validate(%{"type" => "ChatMessage"} = object, meta) do with {:ok, object} <- object - |> ChatMessageValidator.cast_and_apply() do + |> ChatMessageValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do object = stringify_keys(object) {:ok, object, meta} end @@ -40,7 +41,8 @@ def validate(%{"type" => "ChatMessage"} = object, meta) do def validate(%{"type" => "Create"} = object, meta) do with {:ok, object} <- object - |> CreateChatMessageValidator.cast_and_apply() do + |> CreateChatMessageValidator.cast_and_validate() + |> Ecto.Changeset.apply_action(:insert) do object = stringify_keys(object) {:ok, object, meta} end diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex index ab5be3596..a4e4460cd 100644 --- a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -6,6 +6,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do use Ecto.Schema alias Pleroma.Web.ActivityPub.ObjectValidators.Types + alias Pleroma.User import Ecto.Changeset @@ -54,5 +55,30 @@ def validate_data(data_cng) do data_cng |> validate_inclusion(:type, ["ChatMessage"]) |> validate_required([:id, :actor, :to, :type, :content]) + |> validate_length(:to, is: 1) + |> validate_local_concern() + end + + @doc "Validates if at least one of the users in this ChatMessage is a local user, otherwise we don't want the message in our system. It also validates the presence of both users in our system." + def validate_local_concern(cng) do + with actor_ap <- get_field(cng, :actor), + {_, %User{} = actor} <- {:find_actor, User.get_cached_by_ap_id(actor_ap)}, + {_, %User{} = recipient} <- + {:find_recipient, User.get_cached_by_ap_id(get_field(cng, :to) |> hd())}, + {_, true} <- {:local?, Enum.any?([actor, recipient], & &1.local)} do + cng + else + {:local?, false} -> + cng + |> add_error(:actor, "actor and recipient are both remote") + + {:find_actor, _} -> + cng + |> add_error(:actor, "can't find user") + + {:find_recipient, _} -> + cng + |> add_error(:to, "can't find user") + end end end diff --git a/lib/pleroma/web/activity_pub/object_validators/common_validations.ex b/lib/pleroma/web/activity_pub/object_validators/common_validations.ex index b479c3918..02f3a6438 100644 --- a/lib/pleroma/web/activity_pub/object_validators/common_validations.ex +++ b/lib/pleroma/web/activity_pub/object_validators/common_validations.ex @@ -8,7 +8,11 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations do alias Pleroma.Object alias Pleroma.User - def validate_actor_presence(cng, field_name \\ :actor) do + def validate_actor_presence(cng) do + validate_user_presence(cng, :actor) + end + + def validate_user_presence(cng, field_name) do cng |> validate_change(field_name, fn field_name, actor -> if User.get_cached_by_ap_id(actor) do diff --git a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex index 659311480..ce52d5623 100644 --- a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex @@ -32,4 +32,9 @@ def cast_and_apply(data) do def cast_data(data) do cast(%__MODULE__{}, data, __schema__(:fields)) end + + # No validation yet + def cast_and_validate(data) do + cast_data(data) + end end diff --git a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex index b5843736f..815b866c9 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex @@ -25,6 +25,9 @@ def handle_incoming( {_, {:ok, activity, _meta}} <- {:common_pipeline, Pipeline.common_pipeline(cast_data, local: false)} do {:ok, activity} + else + e -> + {:error, e} end end end diff --git a/test/fixtures/create-chat-message.json b/test/fixtures/create-chat-message.json index 4aa17f4a5..2e4608f43 100644 --- a/test/fixtures/create-chat-message.json +++ b/test/fixtures/create-chat-message.json @@ -3,7 +3,7 @@ "id": "http://2hu.gensokyo/objects/1", "object": { "attributedTo": "http://2hu.gensokyo/users/raymoo", - "content": "You expected a cute girl? Too bad.", + "content": "You expected a cute girl? Too bad. ", "id": "http://2hu.gensokyo/objects/2", "published": "2020-02-12T14:08:20Z", "to": [ diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index 3c5c3696e..bf0bfdfaf 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -5,9 +5,61 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.CommonAPI + alias Pleroma.Web.ActivityPub.Builder import Pleroma.Factory + describe "chat messages" do + setup do + user = insert(:user) + recipient = insert(:user, local: false) + + {:ok, valid_chat_message, _} = Builder.chat_message(user, recipient.ap_id, "hey") + + %{user: user, recipient: recipient, valid_chat_message: valid_chat_message} + end + + test "validates for a basic object we build", %{valid_chat_message: valid_chat_message} do + assert {:ok, _object, _meta} = ObjectValidator.validate(valid_chat_message, []) + end + + test "does not validate if the actor or the recipient is not in our system", %{ + valid_chat_message: valid_chat_message + } do + chat_message = + valid_chat_message + |> Map.put("actor", "https://raymoo.com/raymoo") + + {:error, _} = ObjectValidator.validate(chat_message, []) + + chat_message = + valid_chat_message + |> Map.put("to", ["https://raymoo.com/raymoo"]) + + {:error, _} = ObjectValidator.validate(chat_message, []) + end + + test "does not validate for a message with multiple recipients", %{ + valid_chat_message: valid_chat_message, + user: user, + recipient: recipient + } do + chat_message = + valid_chat_message + |> Map.put("to", [user.ap_id, recipient.ap_id]) + + assert {:error, _} = ObjectValidator.validate(chat_message, []) + end + + test "does not validate if it doesn't concern local users" do + user = insert(:user, local: false) + recipient = insert(:user, local: false) + + {:ok, valid_chat_message, _} = Builder.chat_message(user, recipient.ap_id, "hey") + assert {:error, _} = ObjectValidator.validate(valid_chat_message, []) + end + end + describe "likes" do setup do user = insert(:user) diff --git a/test/web/activity_pub/transmogrifier/chat_message_test.exs b/test/web/activity_pub/transmogrifier/chat_message_test.exs index aed62c520..5b238f9c4 100644 --- a/test/web/activity_pub/transmogrifier/chat_message_test.exs +++ b/test/web/activity_pub/transmogrifier/chat_message_test.exs @@ -12,13 +12,43 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageTest do alias Pleroma.Web.ActivityPub.Transmogrifier describe "handle_incoming" do - test "it insert it" do + test "it rejects messages that don't contain content" do + data = + File.read!("test/fixtures/create-chat-message.json") + |> Poison.decode!() + + object = + data["object"] + |> Map.delete("content") + + data = + data + |> Map.put("object", object) + + _author = insert(:user, ap_id: data["actor"], local: false) + _recipient = insert(:user, ap_id: List.first(data["to"]), local: true) + + {:error, _} = Transmogrifier.handle_incoming(data) + end + + test "it rejects messages that don't concern local users" do + data = + File.read!("test/fixtures/create-chat-message.json") + |> Poison.decode!() + + _author = insert(:user, ap_id: data["actor"], local: false) + _recipient = insert(:user, ap_id: List.first(data["to"]), local: false) + + {:error, _} = Transmogrifier.handle_incoming(data) + end + + test "it inserts it and creates a chat" do data = File.read!("test/fixtures/create-chat-message.json") |> Poison.decode!() author = insert(:user, ap_id: data["actor"], local: false) - recipient = insert(:user, ap_id: List.first(data["to"]), local: false) + recipient = insert(:user, ap_id: List.first(data["to"]), local: true) {:ok, %Activity{} = activity} = Transmogrifier.handle_incoming(data) From ca598e9c27a7a66b014523845e62046d19364f2f Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 16 Apr 2020 15:27:35 +0200 Subject: [PATCH 028/529] AccountView: Return user ap_id. --- lib/pleroma/web/mastodon_api/views/account_view.ex | 1 + test/web/mastodon_api/views/account_view_test.exs | 3 +++ 2 files changed, 4 insertions(+) diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex index 8fb96a22a..f20453744 100644 --- a/lib/pleroma/web/mastodon_api/views/account_view.ex +++ b/lib/pleroma/web/mastodon_api/views/account_view.ex @@ -234,6 +234,7 @@ defp do_render("show.json", %{user: user} = opts) do # Pleroma extension pleroma: %{ + ap_id: user.ap_id, confirmation_pending: user.confirmation_pending, tags: user.tags, hide_followers_count: user.hide_followers_count, diff --git a/test/web/mastodon_api/views/account_view_test.exs b/test/web/mastodon_api/views/account_view_test.exs index 4435f69ff..2be0d8d0f 100644 --- a/test/web/mastodon_api/views/account_view_test.exs +++ b/test/web/mastodon_api/views/account_view_test.exs @@ -82,6 +82,7 @@ test "Represent a user account" do fields: [] }, pleroma: %{ + ap_id: user.ap_id, background_image: "https://example.com/images/asuka_hospital.png", confirmation_pending: false, tags: [], @@ -152,6 +153,7 @@ test "Represent a Service(bot) account" do fields: [] }, pleroma: %{ + ap_id: user.ap_id, background_image: nil, confirmation_pending: false, tags: [], @@ -351,6 +353,7 @@ test "represent an embedded relationship" do fields: [] }, pleroma: %{ + ap_id: user.ap_id, background_image: nil, confirmation_pending: false, tags: [], From e983f708846a5784e23b7e18734a61ed7f6e3636 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 16 Apr 2020 17:50:24 +0200 Subject: [PATCH 029/529] ChatMessagesHandling: Strip HTML of incoming messages. --- .../web/activity_pub/transmogrifier/chat_message_handling.ex | 3 +++ test/web/activity_pub/transmogrifier/chat_message_test.exs | 2 ++ 2 files changed, 5 insertions(+) diff --git a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex index 815b866c9..11bd10456 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex @@ -19,6 +19,9 @@ def handle_incoming( {_, {:ok, object_cast_data_sym}} <- {:casting_object_data, object_data |> ChatMessageValidator.cast_and_apply()}, object_cast_data = ObjectValidator.stringify_keys(object_cast_data_sym), + # For now, just strip HTML + stripped_content = Pleroma.HTML.strip_tags(object_cast_data["content"]), + object_cast_data = object_cast_data |> Map.put("content", stripped_content), {_, {:ok, validated_object, _meta}} <- {:validate_object, ObjectValidator.validate(object_cast_data, %{})}, {_, {:ok, _created_object}} <- {:persist_object, Object.create(validated_object)}, diff --git a/test/web/activity_pub/transmogrifier/chat_message_test.exs b/test/web/activity_pub/transmogrifier/chat_message_test.exs index 5b238f9c4..7e7f9ebec 100644 --- a/test/web/activity_pub/transmogrifier/chat_message_test.exs +++ b/test/web/activity_pub/transmogrifier/chat_message_test.exs @@ -56,7 +56,9 @@ test "it inserts it and creates a chat" do assert activity.recipients == [recipient.ap_id, author.ap_id] %Object{} = object = Object.get_by_ap_id(activity.data["object"]) + assert object + assert object.data["content"] == "You expected a cute girl? Too bad. alert('XSS')" end end end From f8c3ae7a627817789776f11497041445bb273c19 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 16 Apr 2020 18:43:31 +0200 Subject: [PATCH 030/529] ChatController: Handle pagination. --- .../controllers/chat_controller.ex | 12 ++-- .../pleroma_api/views/chat_message_view.ex | 4 +- .../web/pleroma_api/views/chat_view.ex | 2 +- .../controllers/chat_controller_test.exs | 62 ++++++++++++++++++- 4 files changed, 68 insertions(+), 12 deletions(-) diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 5ec546847..8cf8d82e4 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -11,6 +11,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do alias Pleroma.Web.CommonAPI alias Pleroma.Web.PleromaAPI.ChatView alias Pleroma.Web.PleromaAPI.ChatMessageView + alias Pleroma.Pagination import Ecto.Query @@ -35,7 +36,7 @@ def post_chat_message(%{assigns: %{user: %{id: user_id} = user}} = conn, %{ end end - def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{"id" => id}) do + def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{"id" => id} = params) do with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id) do messages = from(o in Object, @@ -54,10 +55,9 @@ def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{"id" => id}) d ^chat.recipient, o.data, ^[user.ap_id] - ), - order_by: [desc: o.id] + ) ) - |> Repo.all() + |> Pagination.fetch_paginated(params) conn |> put_view(ChatMessageView) @@ -65,13 +65,13 @@ def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{"id" => id}) d end end - def index(%{assigns: %{user: %{id: user_id}}} = conn, _params) do + def index(%{assigns: %{user: %{id: user_id}}} = conn, params) do chats = from(c in Chat, where: c.user_id == ^user_id, order_by: [desc: c.updated_at] ) - |> Repo.all() + |> Pagination.fetch_paginated(params) conn |> put_view(ChatView) diff --git a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex index 2df591358..fdbb9ff1b 100644 --- a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex +++ b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex @@ -15,9 +15,9 @@ def render( } ) do %{ - id: id, + id: id |> to_string(), content: chat_message["content"], - chat_id: chat_id, + chat_id: chat_id |> to_string(), actor: chat_message["actor"] } end diff --git a/lib/pleroma/web/pleroma_api/views/chat_view.ex b/lib/pleroma/web/pleroma_api/views/chat_view.ex index ee48385bf..7b8c6450a 100644 --- a/lib/pleroma/web/pleroma_api/views/chat_view.ex +++ b/lib/pleroma/web/pleroma_api/views/chat_view.ex @@ -9,7 +9,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatView do def render("show.json", %{chat: %Chat{} = chat}) do %{ - id: chat.id, + id: chat.id |> to_string(), recipient: chat.recipient, unread: chat.unread } diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index dad37a889..f30fd6615 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -23,11 +23,38 @@ test "it posts a message to the chat", %{conn: conn} do |> json_response(200) assert result["content"] == "Hallo!!" - assert result["chat_id"] == chat.id + assert result["chat_id"] == chat.id |> to_string() end end describe "GET /api/v1/pleroma/chats/:id/messages" do + test "it paginates", %{conn: conn} do + user = insert(:user) + recipient = insert(:user) + + Enum.each(1..30, fn _ -> + {:ok, _} = CommonAPI.post_chat_message(user, recipient, "hey") + end) + + chat = Chat.get(user.id, recipient.ap_id) + + result = + conn + |> assign(:user, user) + |> get("/api/v1/pleroma/chats/#{chat.id}/messages") + |> json_response(200) + + assert length(result) == 20 + + result = + conn + |> assign(:user, user) + |> get("/api/v1/pleroma/chats/#{chat.id}/messages", %{"max_id" => List.last(result)["id"]}) + |> json_response(200) + + assert length(result) == 10 + end + # TODO # - Test the case where it's not the user's chat test "it returns the messages for a given chat", %{conn: conn} do @@ -50,7 +77,7 @@ test "it returns the messages for a given chat", %{conn: conn} do result |> Enum.each(fn message -> - assert message["chat_id"] == chat.id + assert message["chat_id"] == chat.id |> to_string() end) assert length(result) == 3 @@ -73,6 +100,31 @@ test "it creates or returns a chat", %{conn: conn} do end describe "GET /api/v1/pleroma/chats" do + test "it paginates", %{conn: conn} do + user = insert(:user) + + Enum.each(1..30, fn _ -> + recipient = insert(:user) + {:ok, _} = Chat.get_or_create(user.id, recipient.ap_id) + end) + + result = + conn + |> assign(:user, user) + |> get("/api/v1/pleroma/chats") + |> json_response(200) + + assert length(result) == 20 + + result = + conn + |> assign(:user, user) + |> get("/api/v1/pleroma/chats", %{max_id: List.last(result)["id"]}) + |> json_response(200) + + assert length(result) == 10 + end + test "it return a list of chats the current user is participating in, in descending order of updates", %{conn: conn} do user = insert(:user) @@ -98,7 +150,11 @@ test "it return a list of chats the current user is participating in, in descend ids = Enum.map(result, & &1["id"]) - assert ids == [chat_2.id, chat_3.id, chat_1.id] + assert ids == [ + chat_2.id |> to_string(), + chat_3.id |> to_string(), + chat_1.id |> to_string() + ] end end end From d45ae6485811189e98f774ecdb46f0ccdfa8b2b3 Mon Sep 17 00:00:00 2001 From: lain Date: Fri, 17 Apr 2020 13:04:46 +0200 Subject: [PATCH 031/529] ChatController: Use OAuth scopes. --- .../controllers/chat_controller.ex | 18 +++++++- .../controllers/chat_controller_test.exs | 41 +++++++++---------- 2 files changed, 36 insertions(+), 23 deletions(-) diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 8cf8d82e4..31c723426 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -8,6 +8,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do alias Pleroma.Object alias Pleroma.Repo alias Pleroma.User + alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.Web.CommonAPI alias Pleroma.Web.PleromaAPI.ChatView alias Pleroma.Web.PleromaAPI.ChatMessageView @@ -16,10 +17,18 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do import Ecto.Query # TODO - # - Oauth stuff - # - Views / Representers # - Error handling + plug( + OAuthScopesPlug, + %{scopes: ["write:statuses"]} when action in [:post_chat_message, :create] + ) + + plug( + OAuthScopesPlug, + %{scopes: ["read:statuses"]} when action in [:messages, :index] + ) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.ChatOperation def post_chat_message(%{assigns: %{user: %{id: user_id} = user}} = conn, %{ @@ -62,6 +71,11 @@ def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{"id" => id} = conn |> put_view(ChatMessageView) |> render("index.json", for: user, objects: messages, chat: chat) + else + _ -> + conn + |> put_status(:not_found) + |> json(%{error: "not found"}) end end diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index f30fd6615..0750c7273 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -10,15 +10,15 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do import Pleroma.Factory describe "POST /api/v1/pleroma/chats/:id/messages" do - test "it posts a message to the chat", %{conn: conn} do - user = insert(:user) + setup do: oauth_access(["write:statuses"]) + + test "it posts a message to the chat", %{conn: conn, user: user} do other_user = insert(:user) {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) result = conn - |> assign(:user, user) |> post("/api/v1/pleroma/chats/#{chat.id}/messages", %{"content" => "Hallo!!"}) |> json_response(200) @@ -28,8 +28,9 @@ test "it posts a message to the chat", %{conn: conn} do end describe "GET /api/v1/pleroma/chats/:id/messages" do - test "it paginates", %{conn: conn} do - user = insert(:user) + setup do: oauth_access(["read:statuses"]) + + test "it paginates", %{conn: conn, user: user} do recipient = insert(:user) Enum.each(1..30, fn _ -> @@ -40,7 +41,6 @@ test "it paginates", %{conn: conn} do result = conn - |> assign(:user, user) |> get("/api/v1/pleroma/chats/#{chat.id}/messages") |> json_response(200) @@ -48,17 +48,13 @@ test "it paginates", %{conn: conn} do result = conn - |> assign(:user, user) |> get("/api/v1/pleroma/chats/#{chat.id}/messages", %{"max_id" => List.last(result)["id"]}) |> json_response(200) assert length(result) == 10 end - # TODO - # - Test the case where it's not the user's chat - test "it returns the messages for a given chat", %{conn: conn} do - user = insert(:user) + test "it returns the messages for a given chat", %{conn: conn, user: user} do other_user = insert(:user) third_user = insert(:user) @@ -71,7 +67,6 @@ test "it returns the messages for a given chat", %{conn: conn} do result = conn - |> assign(:user, user) |> get("/api/v1/pleroma/chats/#{chat.id}/messages") |> json_response(200) @@ -81,17 +76,25 @@ test "it returns the messages for a given chat", %{conn: conn} do end) assert length(result) == 3 + + # Trying to get the chat of a different user + result = + conn + |> assign(:user, other_user) + |> get("/api/v1/pleroma/chats/#{chat.id}/messages") + + assert result |> json_response(404) end end describe "POST /api/v1/pleroma/chats/by-ap-id/:id" do + setup do: oauth_access(["write:statuses"]) + test "it creates or returns a chat", %{conn: conn} do - user = insert(:user) other_user = insert(:user) result = conn - |> assign(:user, user) |> post("/api/v1/pleroma/chats/by-ap-id/#{URI.encode_www_form(other_user.ap_id)}") |> json_response(200) @@ -100,9 +103,9 @@ test "it creates or returns a chat", %{conn: conn} do end describe "GET /api/v1/pleroma/chats" do - test "it paginates", %{conn: conn} do - user = insert(:user) + setup do: oauth_access(["read:statuses"]) + test "it paginates", %{conn: conn, user: user} do Enum.each(1..30, fn _ -> recipient = insert(:user) {:ok, _} = Chat.get_or_create(user.id, recipient.ap_id) @@ -110,7 +113,6 @@ test "it paginates", %{conn: conn} do result = conn - |> assign(:user, user) |> get("/api/v1/pleroma/chats") |> json_response(200) @@ -118,7 +120,6 @@ test "it paginates", %{conn: conn} do result = conn - |> assign(:user, user) |> get("/api/v1/pleroma/chats", %{max_id: List.last(result)["id"]}) |> json_response(200) @@ -126,8 +127,7 @@ test "it paginates", %{conn: conn} do end test "it return a list of chats the current user is participating in, in descending order of updates", - %{conn: conn} do - user = insert(:user) + %{conn: conn, user: user} do har = insert(:user) jafnhar = insert(:user) tridi = insert(:user) @@ -144,7 +144,6 @@ test "it return a list of chats the current user is participating in, in descend result = conn - |> assign(:user, user) |> get("/api/v1/pleroma/chats") |> json_response(200) From 372614cfd3119b589c9c47619445714e8ae6c07e Mon Sep 17 00:00:00 2001 From: lain Date: Fri, 17 Apr 2020 14:23:59 +0200 Subject: [PATCH 032/529] ChatView: Add a mastodon api representation of the recipient. --- .../transmogrifier/chat_message_handling.ex | 1 + .../web/pleroma_api/views/chat_view.ex | 7 ++++- .../transmogrifier/chat_message_test.exs | 19 ++++++++++++ test/web/pleroma_api/views/chat_view_test.exs | 29 +++++++++++++++++++ 4 files changed, 55 insertions(+), 1 deletion(-) create mode 100644 test/web/pleroma_api/views/chat_view_test.exs diff --git a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex index 11bd10456..cfe3b767b 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex @@ -22,6 +22,7 @@ def handle_incoming( # For now, just strip HTML stripped_content = Pleroma.HTML.strip_tags(object_cast_data["content"]), object_cast_data = object_cast_data |> Map.put("content", stripped_content), + {_, true} <- {:to_fields_match, cast_data["to"] == object_cast_data["to"]}, {_, {:ok, validated_object, _meta}} <- {:validate_object, ObjectValidator.validate(object_cast_data, %{})}, {_, {:ok, _created_object}} <- {:persist_object, Object.create(validated_object)}, diff --git a/lib/pleroma/web/pleroma_api/views/chat_view.ex b/lib/pleroma/web/pleroma_api/views/chat_view.ex index 7b8c6450a..1e9ef4356 100644 --- a/lib/pleroma/web/pleroma_api/views/chat_view.ex +++ b/lib/pleroma/web/pleroma_api/views/chat_view.ex @@ -6,11 +6,16 @@ defmodule Pleroma.Web.PleromaAPI.ChatView do use Pleroma.Web, :view alias Pleroma.Chat + alias Pleroma.User + alias Pleroma.Web.MastodonAPI.AccountView + + def render("show.json", %{chat: %Chat{} = chat} = opts) do + recipient = User.get_cached_by_ap_id(chat.recipient) - def render("show.json", %{chat: %Chat{} = chat}) do %{ id: chat.id |> to_string(), recipient: chat.recipient, + recipient_account: AccountView.render("show.json", Map.put(opts, :user, recipient)), unread: chat.unread } end diff --git a/test/web/activity_pub/transmogrifier/chat_message_test.exs b/test/web/activity_pub/transmogrifier/chat_message_test.exs index 7e7f9ebec..4d6f24609 100644 --- a/test/web/activity_pub/transmogrifier/chat_message_test.exs +++ b/test/web/activity_pub/transmogrifier/chat_message_test.exs @@ -8,6 +8,7 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageTest do import Pleroma.Factory alias Pleroma.Activity + alias Pleroma.Chat alias Pleroma.Object alias Pleroma.Web.ActivityPub.Transmogrifier @@ -42,6 +43,21 @@ test "it rejects messages that don't concern local users" do {:error, _} = Transmogrifier.handle_incoming(data) end + test "it rejects messages where the `to` field of activity and object don't match" do + data = + File.read!("test/fixtures/create-chat-message.json") + |> Poison.decode!() + + author = insert(:user, ap_id: data["actor"]) + _recipient = insert(:user, ap_id: List.first(data["to"])) + + data = + data + |> Map.put("to", author.ap_id) + + {:error, _} = Transmogrifier.handle_incoming(data) + end + test "it inserts it and creates a chat" do data = File.read!("test/fixtures/create-chat-message.json") @@ -59,6 +75,9 @@ test "it inserts it and creates a chat" do assert object assert object.data["content"] == "You expected a cute girl? Too bad. alert('XSS')" + + refute Chat.get(author.id, recipient.ap_id) + assert Chat.get(recipient.id, author.ap_id) end end end diff --git a/test/web/pleroma_api/views/chat_view_test.exs b/test/web/pleroma_api/views/chat_view_test.exs new file mode 100644 index 000000000..1eb0c6241 --- /dev/null +++ b/test/web/pleroma_api/views/chat_view_test.exs @@ -0,0 +1,29 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.PleromaAPI.ChatMessageViewTest do + use Pleroma.DataCase + + alias Pleroma.Chat + alias Pleroma.Web.PleromaAPI.ChatView + alias Pleroma.Web.MastodonAPI.AccountView + + import Pleroma.Factory + + test "it represents a chat" do + user = insert(:user) + recipient = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, recipient.ap_id) + + represented_chat = ChatView.render("show.json", chat: chat) + + assert represented_chat == %{ + id: "#{chat.id}", + recipient: recipient.ap_id, + recipient_account: AccountView.render("show.json", user: recipient), + unread: 0 + } + end +end From c8458209110ef65101f965e460329308e5843559 Mon Sep 17 00:00:00 2001 From: lain Date: Fri, 17 Apr 2020 16:55:01 +0200 Subject: [PATCH 033/529] Notifications: Create a chat notification. --- lib/pleroma/web/activity_pub/side_effects.ex | 2 ++ .../mastodon_api/views/notification_view.ex | 30 ++++++++++++++++++- test/web/activity_pub/side_effects_test.exs | 19 ++++++++++++ .../views/notification_view_test.exs | 26 ++++++++++++++++ 4 files changed, 76 insertions(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/side_effects.ex b/lib/pleroma/web/activity_pub/side_effects.ex index 594f32700..f32a99ec4 100644 --- a/lib/pleroma/web/activity_pub/side_effects.ex +++ b/lib/pleroma/web/activity_pub/side_effects.ex @@ -28,6 +28,8 @@ def handle(%{data: %{"type" => "Create", "object" => object_id}} = activity, met {:ok, _object} = handle_object_creation(object) + Notification.create_notifications(activity) + {:ok, activity, meta} end diff --git a/lib/pleroma/web/mastodon_api/views/notification_view.ex b/lib/pleroma/web/mastodon_api/views/notification_view.ex index 734ffbf39..5d231f0c4 100644 --- a/lib/pleroma/web/mastodon_api/views/notification_view.ex +++ b/lib/pleroma/web/mastodon_api/views/notification_view.ex @@ -8,11 +8,13 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do alias Pleroma.Activity alias Pleroma.Notification alias Pleroma.User + alias Pleroma.Object alias Pleroma.UserRelationship alias Pleroma.Web.CommonAPI alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MastodonAPI.NotificationView alias Pleroma.Web.MastodonAPI.StatusView + alias Pleroma.Web.PleromaAPI.ChatMessageView def render("index.json", %{notifications: notifications, for: reading_user} = opts) do activities = Enum.map(notifications, & &1.activity) @@ -81,7 +83,20 @@ def render( end end - mastodon_type = Activity.mastodon_notification_type(activity) + # This returns the notification type by activity, but both chats and statuses are in "Create" activities. + mastodon_type = + case Activity.mastodon_notification_type(activity) do + "mention" -> + object = Object.normalize(activity) + + case object do + %{data: %{"type" => "ChatMessage"}} -> "pleroma:chat_mention" + _ -> "mention" + end + + type -> + type + end render_opts = %{ relationships: opts[:relationships], @@ -125,6 +140,9 @@ def render( |> put_status(parent_activity_fn.(), reading_user, render_opts) |> put_emoji(activity) + "pleroma:chat_mention" -> + put_chat_message(response, activity, reading_user, render_opts) + _ -> nil end @@ -137,6 +155,16 @@ defp put_emoji(response, activity) do Map.put(response, :emoji, activity.data["content"]) end + defp put_chat_message(response, activity, reading_user, opts) do + object = Object.normalize(activity) + author = User.get_cached_by_ap_id(object.data["actor"]) + chat = Pleroma.Chat.get(reading_user.id, author.ap_id) + render_opts = Map.merge(opts, %{object: object, for: reading_user, chat: chat}) + chat_message_render = ChatMessageView.render("show.json", render_opts) + + Map.put(response, :chat_message, chat_message_render) + end + defp put_status(response, activity, reading_user, opts) do status_render_opts = Map.merge(opts, %{activity: activity, for: reading_user}) status_render = StatusView.render("show.json", status_render_opts) diff --git a/test/web/activity_pub/side_effects_test.exs b/test/web/activity_pub/side_effects_test.exs index b629d0d5d..d3ad4866c 100644 --- a/test/web/activity_pub/side_effects_test.exs +++ b/test/web/activity_pub/side_effects_test.exs @@ -6,7 +6,9 @@ defmodule Pleroma.Web.ActivityPub.SideEffectsTest do use Pleroma.DataCase alias Pleroma.Chat + alias Pleroma.Notification alias Pleroma.Object + alias Pleroma.Repo alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.SideEffects @@ -34,6 +36,23 @@ test "add the like to the original object", %{like: like, user: user} do end describe "creation of ChatMessages" do + test "notifies the recipient" do + author = insert(:user, local: false) + recipient = insert(:user, local: true) + + {:ok, chat_message_data, _meta} = Builder.chat_message(author, recipient.ap_id, "hey") + {:ok, chat_message_object} = Object.create(chat_message_data) + + {:ok, create_activity_data, _meta} = + Builder.create(author, chat_message_object.data["id"], [recipient.ap_id]) + + {:ok, create_activity, _meta} = ActivityPub.persist(create_activity_data, local: false) + + {:ok, _create_activity, _meta} = SideEffects.handle(create_activity) + + assert Repo.get_by(Notification, user_id: recipient.id, activity_id: create_activity.id) + end + test "it creates a Chat for the local users and bumps the unread count" do author = insert(:user, local: false) recipient = insert(:user, local: true) diff --git a/test/web/mastodon_api/views/notification_view_test.exs b/test/web/mastodon_api/views/notification_view_test.exs index c3ec9dfec..a48c298f2 100644 --- a/test/web/mastodon_api/views/notification_view_test.exs +++ b/test/web/mastodon_api/views/notification_view_test.exs @@ -6,7 +6,9 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do use Pleroma.DataCase alias Pleroma.Activity + alias Pleroma.Chat alias Pleroma.Notification + alias Pleroma.Object alias Pleroma.Repo alias Pleroma.User alias Pleroma.Web.CommonAPI @@ -14,6 +16,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationViewTest do alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MastodonAPI.NotificationView alias Pleroma.Web.MastodonAPI.StatusView + alias Pleroma.Web.PleromaAPI.ChatMessageView import Pleroma.Factory defp test_notifications_rendering(notifications, user, expected_result) do @@ -31,6 +34,29 @@ defp test_notifications_rendering(notifications, user, expected_result) do assert expected_result == result end + test "ChatMessage notification" do + user = insert(:user) + recipient = insert(:user) + {:ok, activity} = CommonAPI.post_chat_message(user, recipient, "what's up my dude") + + {:ok, [notification]} = Notification.create_notifications(activity) + + object = Object.normalize(activity) + chat = Chat.get(recipient.id, user.ap_id) + + expected = %{ + id: to_string(notification.id), + pleroma: %{is_seen: false}, + type: "pleroma:chat_mention", + account: AccountView.render("show.json", %{user: user, for: recipient}), + chat_message: + ChatMessageView.render("show.json", %{object: object, for: recipient, chat: chat}), + created_at: Utils.to_masto_date(notification.inserted_at) + } + + test_notifications_rendering([notification], recipient, [expected]) + end + test "Mention notification" do user = insert(:user) mentioned_user = insert(:user) From ce23673ca1539350802326c62d6e72bd040950f6 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 20 Apr 2020 11:45:11 +0200 Subject: [PATCH 034/529] ChatMessageValidator: Don't validate messages that are too long. --- .../object_validators/chat_message_validator.ex | 1 + test/web/activity_pub/object_validator_test.exs | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex index a4e4460cd..caf2138a7 100644 --- a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -56,6 +56,7 @@ def validate_data(data_cng) do |> validate_inclusion(:type, ["ChatMessage"]) |> validate_required([:id, :actor, :to, :type, :content]) |> validate_length(:to, is: 1) + |> validate_length(:content, max: Pleroma.Config.get([:instance, :remote_limit])) |> validate_local_concern() end diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index bf0bfdfaf..e416e0808 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -11,6 +11,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do describe "chat messages" do setup do + clear_config([:instance, :remote_limit]) user = insert(:user) recipient = insert(:user, local: false) @@ -23,6 +24,13 @@ test "validates for a basic object we build", %{valid_chat_message: valid_chat_m assert {:ok, _object, _meta} = ObjectValidator.validate(valid_chat_message, []) end + test "does not validate if the message is longer than the remote_limit", %{ + valid_chat_message: valid_chat_message + } do + Pleroma.Config.put([:instance, :remote_limit], 2) + refute match?({:ok, _object, _meta}, ObjectValidator.validate(valid_chat_message, [])) + end + test "does not validate if the actor or the recipient is not in our system", %{ valid_chat_message: valid_chat_message } do From 5b6818b3e5dc39e328f6f8d4b8f4587e5e1cef94 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 20 Apr 2020 12:08:47 +0200 Subject: [PATCH 035/529] CommonAPI: Obey local limit for chat messages. --- lib/pleroma/web/common_api/common_api.ex | 8 +++++++- test/web/common_api/common_api_test.exs | 18 ++++++++++++++++++ .../views/chat_message_view_test.exs | 4 ++-- test/web/pleroma_api/views/chat_view_test.exs | 2 +- 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 2b8add2fa..fcb0af4e8 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -28,7 +28,10 @@ defmodule Pleroma.Web.CommonAPI do def post_chat_message(%User{} = user, %User{} = recipient, content) do transaction = Repo.transaction(fn -> - with {_, {:ok, chat_message_data, _meta}} <- + with {_, true} <- + {:content_length, + String.length(content) <= Pleroma.Config.get([:instance, :chat_limit])}, + {_, {:ok, chat_message_data, _meta}} <- {:build_object, Builder.chat_message( user, @@ -43,6 +46,9 @@ def post_chat_message(%User{} = user, %User{} = recipient, content) do {_, {:ok, %Activity{} = activity, _meta}} <- {:common_pipeline, Pipeline.common_pipeline(create_activity_data, local: true)} do {:ok, activity} + else + {:content_length, false} -> {:error, :content_too_long} + e -> e end end) diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index 1984aac8d..c17e30210 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -23,6 +23,8 @@ defmodule Pleroma.Web.CommonAPITest do setup do: clear_config([:instance, :max_pinned_statuses]) describe "posting chat messages" do + setup do: clear_config([:instance, :chat_limit]) + test "it posts a chat message" do author = insert(:user) recipient = insert(:user) @@ -47,6 +49,22 @@ test "it posts a chat message" do assert Chat.get(author.id, recipient.ap_id) assert Chat.get(recipient.id, author.ap_id) end + + test "it reject messages over the local limit" do + Pleroma.Config.put([:instance, :chat_limit], 2) + + author = insert(:user) + recipient = insert(:user) + + {:error, message} = + CommonAPI.post_chat_message( + author, + recipient, + "123" + ) + + assert message == :content_too_long + end end test "when replying to a conversation / participation, it will set the correct context id even if no explicit reply_to is given" do diff --git a/test/web/pleroma_api/views/chat_message_view_test.exs b/test/web/pleroma_api/views/chat_message_view_test.exs index e690da022..ad8febee6 100644 --- a/test/web/pleroma_api/views/chat_message_view_test.exs +++ b/test/web/pleroma_api/views/chat_message_view_test.exs @@ -23,7 +23,7 @@ test "it displays a chat message" do chat_message = ChatMessageView.render("show.json", object: object, for: user, chat: chat) - assert chat_message[:id] == object.id + assert chat_message[:id] == object.id |> to_string() assert chat_message[:content] == "kippis" assert chat_message[:actor] == user.ap_id assert chat_message[:chat_id] @@ -34,7 +34,7 @@ test "it displays a chat message" do chat_message_two = ChatMessageView.render("show.json", object: object, for: user, chat: chat) - assert chat_message_two[:id] == object.id + assert chat_message_two[:id] == object.id |> to_string() assert chat_message_two[:content] == "gkgkgk" assert chat_message_two[:actor] == recipient.ap_id assert chat_message_two[:chat_id] == chat_message[:chat_id] diff --git a/test/web/pleroma_api/views/chat_view_test.exs b/test/web/pleroma_api/views/chat_view_test.exs index 1eb0c6241..3dca555e8 100644 --- a/test/web/pleroma_api/views/chat_view_test.exs +++ b/test/web/pleroma_api/views/chat_view_test.exs @@ -2,7 +2,7 @@ # Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only -defmodule Pleroma.Web.PleromaAPI.ChatMessageViewTest do +defmodule Pleroma.Web.PleromaAPI.ChatViewTest do use Pleroma.DataCase alias Pleroma.Chat From 970b74383b43aa9a54c3cf59012944355e3eafbc Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 20 Apr 2020 12:29:19 +0200 Subject: [PATCH 036/529] Credo fixes. --- lib/pleroma/chat.ex | 2 +- lib/pleroma/web/activity_pub/object_validator.ex | 2 +- .../object_validators/chat_message_validator.ex | 2 +- lib/pleroma/web/common_api/common_api.ex | 2 +- lib/pleroma/web/mastodon_api/views/notification_view.ex | 5 +++-- lib/pleroma/web/pleroma_api/controllers/chat_controller.ex | 6 +++--- test/web/activity_pub/object_validator_test.exs | 2 +- test/web/pleroma_api/views/chat_view_test.exs | 2 +- 8 files changed, 12 insertions(+), 11 deletions(-) diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index c2044881f..b8545063a 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -6,8 +6,8 @@ defmodule Pleroma.Chat do use Ecto.Schema import Ecto.Changeset - alias Pleroma.User alias Pleroma.Repo + alias Pleroma.User @moduledoc """ Chat keeps a reference to ChatMessage conversations between a user and an recipient. The recipient can be a user (for now) or a group (not implemented yet). diff --git a/lib/pleroma/web/activity_pub/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex index 259bbeb64..03db681ec 100644 --- a/lib/pleroma/web/activity_pub/object_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validator.ex @@ -11,9 +11,9 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidator do alias Pleroma.Object alias Pleroma.User - alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator alias Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator alias Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator @spec validate(map(), keyword()) :: {:ok, map(), keyword()} | {:error, any()} def validate(object, meta) diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex index caf2138a7..6e3477cd1 100644 --- a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -5,8 +5,8 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do use Ecto.Schema - alias Pleroma.Web.ActivityPub.ObjectValidators.Types alias Pleroma.User + alias Pleroma.Web.ActivityPub.ObjectValidators.Types import Ecto.Changeset diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index fcb0af4e8..9e25f4c2f 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.CommonAPI do alias Pleroma.ActivityExpiration alias Pleroma.Conversation.Participation alias Pleroma.FollowingRelationship + alias Pleroma.Formatter alias Pleroma.Object alias Pleroma.Repo alias Pleroma.ThreadMute @@ -17,7 +18,6 @@ defmodule Pleroma.Web.CommonAPI do alias Pleroma.Web.ActivityPub.Pipeline alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.ActivityPub.Visibility - alias Pleroma.Formatter import Pleroma.Web.Gettext import Pleroma.Web.CommonAPI.Utils diff --git a/lib/pleroma/web/mastodon_api/views/notification_view.ex b/lib/pleroma/web/mastodon_api/views/notification_view.ex index 5d231f0c4..0b05d178b 100644 --- a/lib/pleroma/web/mastodon_api/views/notification_view.ex +++ b/lib/pleroma/web/mastodon_api/views/notification_view.ex @@ -7,8 +7,8 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do alias Pleroma.Activity alias Pleroma.Notification - alias Pleroma.User alias Pleroma.Object + alias Pleroma.User alias Pleroma.UserRelationship alias Pleroma.Web.CommonAPI alias Pleroma.Web.MastodonAPI.AccountView @@ -83,7 +83,8 @@ def render( end end - # This returns the notification type by activity, but both chats and statuses are in "Create" activities. + # This returns the notification type by activity, but both chats and statuses + # are in "Create" activities. mastodon_type = case Activity.mastodon_notification_type(activity) do "mention" -> diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 31c723426..9d8b9b3cf 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -6,13 +6,13 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do alias Pleroma.Chat alias Pleroma.Object + alias Pleroma.Pagination + alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.Repo alias Pleroma.User - alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.Web.CommonAPI - alias Pleroma.Web.PleromaAPI.ChatView alias Pleroma.Web.PleromaAPI.ChatMessageView - alias Pleroma.Pagination + alias Pleroma.Web.PleromaAPI.ChatView import Ecto.Query diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index e416e0808..3ac5ecaf4 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -1,11 +1,11 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do use Pleroma.DataCase + alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.ObjectValidator alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.CommonAPI - alias Pleroma.Web.ActivityPub.Builder import Pleroma.Factory diff --git a/test/web/pleroma_api/views/chat_view_test.exs b/test/web/pleroma_api/views/chat_view_test.exs index 3dca555e8..725da5ff8 100644 --- a/test/web/pleroma_api/views/chat_view_test.exs +++ b/test/web/pleroma_api/views/chat_view_test.exs @@ -6,8 +6,8 @@ defmodule Pleroma.Web.PleromaAPI.ChatViewTest do use Pleroma.DataCase alias Pleroma.Chat - alias Pleroma.Web.PleromaAPI.ChatView alias Pleroma.Web.MastodonAPI.AccountView + alias Pleroma.Web.PleromaAPI.ChatView import Pleroma.Factory From b836d3d104f75841d71f9cf7c5c8cb5c07ba7294 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 20 Apr 2020 13:14:59 +0200 Subject: [PATCH 037/529] ChatMessageValidator: Require `published` field --- lib/pleroma/web/activity_pub/builder.ex | 6 ++++-- .../object_validators/chat_message_validator.ex | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/pleroma/web/activity_pub/builder.ex b/lib/pleroma/web/activity_pub/builder.ex index f0a6c1e1b..b67166a30 100644 --- a/lib/pleroma/web/activity_pub/builder.ex +++ b/lib/pleroma/web/activity_pub/builder.ex @@ -17,7 +17,8 @@ def create(actor, object_id, recipients) do "actor" => actor.ap_id, "to" => recipients, "object" => object_id, - "type" => "Create" + "type" => "Create", + "published" => DateTime.utc_now() |> DateTime.to_iso8601() }, []} end @@ -28,7 +29,8 @@ def chat_message(actor, recipient, content) do "actor" => actor.ap_id, "type" => "ChatMessage", "to" => [recipient], - "content" => content + "content" => content, + "published" => DateTime.utc_now() |> DateTime.to_iso8601() }, []} end diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex index 6e3477cd1..9b8262553 100644 --- a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -54,7 +54,7 @@ def changeset(struct, data) do def validate_data(data_cng) do data_cng |> validate_inclusion(:type, ["ChatMessage"]) - |> validate_required([:id, :actor, :to, :type, :content]) + |> validate_required([:id, :actor, :to, :type, :content, :published]) |> validate_length(:to, is: 1) |> validate_length(:content, max: Pleroma.Config.get([:instance, :remote_limit])) |> validate_local_concern() From 7e53da250e3b41e01073148efea0fc4f49dea9d5 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 20 Apr 2020 14:08:54 +0200 Subject: [PATCH 038/529] ChatMessage: Support emoji. --- lib/pleroma/web/activity_pub/builder.ex | 4 ++- .../chat_message_validator.ex | 1 + test/fixtures/create-chat-message.json | 30 +++++++++---------- .../activity_pub/object_validator_test.exs | 6 ++-- test/web/common_api/common_api_test.exs | 8 +++-- 5 files changed, 29 insertions(+), 20 deletions(-) diff --git a/lib/pleroma/web/activity_pub/builder.ex b/lib/pleroma/web/activity_pub/builder.ex index b67166a30..7576ed278 100644 --- a/lib/pleroma/web/activity_pub/builder.ex +++ b/lib/pleroma/web/activity_pub/builder.ex @@ -5,6 +5,7 @@ defmodule Pleroma.Web.ActivityPub.Builder do This module encodes our addressing policies and general shape of our objects. """ + alias Pleroma.Emoji alias Pleroma.Object alias Pleroma.User alias Pleroma.Web.ActivityPub.Utils @@ -30,7 +31,8 @@ def chat_message(actor, recipient, content) do "type" => "ChatMessage", "to" => [recipient], "content" => content, - "published" => DateTime.utc_now() |> DateTime.to_iso8601() + "published" => DateTime.utc_now() |> DateTime.to_iso8601(), + "emoji" => Emoji.Formatter.get_emoji_map(content) }, []} end diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex index 9b8262553..2feb65f29 100644 --- a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -20,6 +20,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do field(:content, :string) field(:actor, Types.ObjectID) field(:published, Types.DateTime) + field(:emoji, :map, default: %{}) end def cast_and_apply(data) do diff --git a/test/fixtures/create-chat-message.json b/test/fixtures/create-chat-message.json index 2e4608f43..6db5b9f5c 100644 --- a/test/fixtures/create-chat-message.json +++ b/test/fixtures/create-chat-message.json @@ -1,19 +1,19 @@ { - "actor": "http://2hu.gensokyo/users/raymoo", - "id": "http://2hu.gensokyo/objects/1", - "object": { - "attributedTo": "http://2hu.gensokyo/users/raymoo", - "content": "You expected a cute girl? Too bad. ", - "id": "http://2hu.gensokyo/objects/2", - "published": "2020-02-12T14:08:20Z", - "to": [ - "http://2hu.gensokyo/users/marisa" - ], - "type": "ChatMessage" - }, - "published": "2018-02-12T14:08:20Z", + "actor": "http://2hu.gensokyo/users/raymoo", + "id": "http://2hu.gensokyo/objects/1", + "object": { + "attributedTo": "http://2hu.gensokyo/users/raymoo", + "content": "You expected a cute girl? Too bad. ", + "id": "http://2hu.gensokyo/objects/2", + "published": "2020-02-12T14:08:20Z", "to": [ - "http://2hu.gensokyo/users/marisa" + "http://2hu.gensokyo/users/marisa" ], - "type": "Create" + "type": "ChatMessage" + }, + "published": "2018-02-12T14:08:20Z", + "to": [ + "http://2hu.gensokyo/users/marisa" + ], + "type": "Create" } diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index 3ac5ecaf4..8230ae0d9 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -15,13 +15,15 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do user = insert(:user) recipient = insert(:user, local: false) - {:ok, valid_chat_message, _} = Builder.chat_message(user, recipient.ap_id, "hey") + {:ok, valid_chat_message, _} = Builder.chat_message(user, recipient.ap_id, "hey :firefox:") %{user: user, recipient: recipient, valid_chat_message: valid_chat_message} end test "validates for a basic object we build", %{valid_chat_message: valid_chat_message} do - assert {:ok, _object, _meta} = ObjectValidator.validate(valid_chat_message, []) + assert {:ok, object, _meta} = ObjectValidator.validate(valid_chat_message, []) + + assert object == valid_chat_message end test "does not validate if the message is longer than the remote_limit", %{ diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index c17e30210..86b3648ac 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -33,7 +33,7 @@ test "it posts a chat message" do CommonAPI.post_chat_message( author, recipient, - "a test message " + "a test message :firefox:" ) assert activity.data["type"] == "Create" @@ -44,7 +44,11 @@ test "it posts a chat message" do assert object.data["to"] == [recipient.ap_id] assert object.data["content"] == - "a test message <script>alert('uuu')</script>" + "a test message <script>alert('uuu')</script> :firefox:" + + assert object.data["emoji"] == %{ + "firefox" => "http://localhost:4001/emoji/Firefox.gif" + } assert Chat.get(author.id, recipient.ap_id) assert Chat.get(recipient.id, author.ap_id) From b5df4a98e4044cf1360f03f7dc3a0b59932ec8f5 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 20 Apr 2020 14:38:53 +0200 Subject: [PATCH 039/529] ChatMessageView: Support emoji. --- lib/pleroma/web/pleroma_api/views/chat_message_view.ex | 6 +++++- test/web/pleroma_api/views/chat_message_view_test.exs | 6 ++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex index fdbb9ff1b..b40ab92a0 100644 --- a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex +++ b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex @@ -6,6 +6,8 @@ defmodule Pleroma.Web.PleromaAPI.ChatMessageView do use Pleroma.Web, :view alias Pleroma.Chat + alias Pleroma.Web.CommonAPI.Utils + alias Pleroma.Web.MastodonAPI.StatusView def render( "show.json", @@ -18,7 +20,9 @@ def render( id: id |> to_string(), content: chat_message["content"], chat_id: chat_id |> to_string(), - actor: chat_message["actor"] + actor: chat_message["actor"], + created_at: Utils.to_masto_date(chat_message["published"]), + emojis: StatusView.build_emojis(chat_message["emoji"]) } end diff --git a/test/web/pleroma_api/views/chat_message_view_test.exs b/test/web/pleroma_api/views/chat_message_view_test.exs index ad8febee6..115335f10 100644 --- a/test/web/pleroma_api/views/chat_message_view_test.exs +++ b/test/web/pleroma_api/views/chat_message_view_test.exs @@ -15,7 +15,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatMessageViewTest do test "it displays a chat message" do user = insert(:user) recipient = insert(:user) - {:ok, activity} = CommonAPI.post_chat_message(user, recipient, "kippis") + {:ok, activity} = CommonAPI.post_chat_message(user, recipient, "kippis :firefox:") chat = Chat.get(user.id, recipient.ap_id) @@ -24,9 +24,11 @@ test "it displays a chat message" do chat_message = ChatMessageView.render("show.json", object: object, for: user, chat: chat) assert chat_message[:id] == object.id |> to_string() - assert chat_message[:content] == "kippis" + assert chat_message[:content] == "kippis :firefox:" assert chat_message[:actor] == user.ap_id assert chat_message[:chat_id] + assert chat_message[:created_at] + assert match?([%{shortcode: "firefox"}], chat_message[:emojis]) {:ok, activity} = CommonAPI.post_chat_message(recipient, user, "gkgkgk") From 97ad0c45977261df3068ca4f0c3febce3173c058 Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 21 Apr 2020 17:51:06 +0200 Subject: [PATCH 040/529] Chats: Add API specs. --- .../web/api_spec/operations/chat_operation.ex | 96 ++++++++++++------- .../schemas/chat_message_create_request.ex | 20 ++++ .../api_spec/schemas/chat_message_response.ex | 38 ++++++++ .../schemas/chat_messages_response.ex | 41 ++++++++ .../web/api_spec/schemas/chat_response.ex | 73 ++++++++++++++ .../web/api_spec/schemas/chats_response.ex | 69 +++++++++++++ .../controllers/chat_controller_test.exs | 42 ++++++++ 7 files changed, 346 insertions(+), 33 deletions(-) create mode 100644 lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex create mode 100644 lib/pleroma/web/api_spec/schemas/chat_message_response.ex create mode 100644 lib/pleroma/web/api_spec/schemas/chat_messages_response.ex create mode 100644 lib/pleroma/web/api_spec/schemas/chat_response.ex create mode 100644 lib/pleroma/web/api_spec/schemas/chats_response.ex diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index 038ebb29d..5bd41ec4f 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -4,7 +4,12 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do alias OpenApiSpex.Operation - alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Helpers + alias Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest + alias Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse + alias Pleroma.Web.ApiSpec.Schemas.ChatMessagesResponse + alias Pleroma.Web.ApiSpec.Schemas.ChatResponse + alias Pleroma.Web.ApiSpec.Schemas.ChatsResponse @spec open_api_operation(atom) :: Operation.t() def open_api_operation(action) do @@ -16,16 +21,25 @@ def create_operation do %Operation{ tags: ["chat"], summary: "Create a chat", + parameters: [ + Operation.parameter( + :ap_id, + :path, + :string, + "The ActivityPub id of the recipient of this chat.", + required: true, + example: "https://lain.com/users/lain" + ) + ], responses: %{ 200 => - Operation.response("Chat", "application/json", %Schema{ - type: :object, - description: "A created chat is returned", - properties: %{ - id: %Schema{type: :integer} - } - }) - } + Operation.response("The created or existing chat", "application/json", ChatResponse) + }, + security: [ + %{ + "oAuth" => ["write"] + } + ] } end @@ -33,17 +47,19 @@ def index_operation do %Operation{ tags: ["chat"], summary: "Get a list of chats that you participated in", + parameters: [ + Operation.parameter(:limit, :query, :integer, "How many results to return", example: 20), + Operation.parameter(:min_id, :query, :string, "Return only chats after this id"), + Operation.parameter(:max_id, :query, :string, "Return only chats before this id") + ], responses: %{ - 200 => - Operation.response("Chats", "application/json", %Schema{ - type: :array, - description: "A list of chats", - items: %Schema{ - type: :object, - description: "A chat" - } - }) - } + 200 => Operation.response("The chats of the user", "application/json", ChatsResponse) + }, + security: [ + %{ + "oAuth" => ["read"] + } + ] } end @@ -51,17 +67,21 @@ def messages_operation do %Operation{ tags: ["chat"], summary: "Get the most recent messages of the chat", + parameters: [ + Operation.parameter(:id, :path, :string, "The ID of the Chat"), + Operation.parameter(:limit, :query, :integer, "How many results to return", example: 20), + Operation.parameter(:min_id, :query, :string, "Return only messages after this id"), + Operation.parameter(:max_id, :query, :string, "Return only messages before this id") + ], responses: %{ 200 => - Operation.response("Messages", "application/json", %Schema{ - type: :array, - description: "A list of chat messages", - items: %Schema{ - type: :object, - description: "A chat message" - } - }) - } + Operation.response("The messages in the chat", "application/json", ChatMessagesResponse) + }, + security: [ + %{ + "oAuth" => ["read"] + } + ] } end @@ -69,13 +89,23 @@ def post_chat_message_operation do %Operation{ tags: ["chat"], summary: "Post a message to the chat", + parameters: [ + Operation.parameter(:id, :path, :string, "The ID of the Chat") + ], + requestBody: Helpers.request_body("Parameters", ChatMessageCreateRequest, required: true), responses: %{ 200 => - Operation.response("Message", "application/json", %Schema{ - type: :object, - description: "A chat message" - }) - } + Operation.response( + "The newly created ChatMessage", + "application/json", + ChatMessageResponse + ) + }, + security: [ + %{ + "oAuth" => ["write"] + } + ] } end end diff --git a/lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex b/lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex new file mode 100644 index 000000000..4dafcda43 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex @@ -0,0 +1,20 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest do + alias OpenApiSpex.Schema + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "ChatMessageCreateRequest", + description: "POST body for creating an chat message", + type: :object, + properties: %{ + content: %Schema{type: :string, description: "The content of your message"} + }, + example: %{ + "content" => "Hey wanna buy feet pics?" + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/chat_message_response.ex b/lib/pleroma/web/api_spec/schemas/chat_message_response.ex new file mode 100644 index 000000000..e94c00369 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/chat_message_response.ex @@ -0,0 +1,38 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse do + alias OpenApiSpex.Schema + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "ChatMessageResponse", + description: "Response schema for a ChatMessage", + type: :object, + properties: %{ + id: %Schema{type: :string}, + actor: %Schema{type: :string, description: "The ActivityPub id of the actor"}, + chat_id: %Schema{type: :string}, + content: %Schema{type: :string}, + created_at: %Schema{type: :string, format: :datetime}, + emojis: %Schema{type: :array} + }, + example: %{ + "actor" => "https://dontbulling.me/users/lain", + "chat_id" => "1", + "content" => "hey you again", + "created_at" => "2020-04-21T15:06:45.000Z", + "emojis" => [ + %{ + "static_url" => "https://dontbulling.me/emoji/Firefox.gif", + "visible_in_picker" => false, + "shortcode" => "firefox", + "url" => "https://dontbulling.me/emoji/Firefox.gif" + } + ], + "id" => "14" + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/chat_messages_response.ex b/lib/pleroma/web/api_spec/schemas/chat_messages_response.ex new file mode 100644 index 000000000..302bdec95 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/chat_messages_response.ex @@ -0,0 +1,41 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessagesResponse do + alias Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "ChatMessagesResponse", + description: "Response schema for multiple ChatMessages", + type: :array, + items: ChatMessageResponse, + example: [ + %{ + "emojis" => [ + %{ + "static_url" => "https://dontbulling.me/emoji/Firefox.gif", + "visible_in_picker" => false, + "shortcode" => "firefox", + "url" => "https://dontbulling.me/emoji/Firefox.gif" + } + ], + "created_at" => "2020-04-21T15:11:46.000Z", + "content" => "Check this out :firefox:", + "id" => "13", + "chat_id" => "1", + "actor" => "https://dontbulling.me/users/lain" + }, + %{ + "actor" => "https://dontbulling.me/users/lain", + "content" => "Whats' up?", + "id" => "12", + "chat_id" => "1", + "emojis" => [], + "created_at" => "2020-04-21T15:06:45.000Z" + } + ] + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/chat_response.ex b/lib/pleroma/web/api_spec/schemas/chat_response.ex new file mode 100644 index 000000000..a80f4d173 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/chat_response.ex @@ -0,0 +1,73 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Schemas.ChatResponse do + alias OpenApiSpex.Schema + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "ChatResponse", + description: "Response schema for a Chat", + type: :object, + properties: %{ + id: %Schema{type: :string}, + recipient: %Schema{type: :string}, + # TODO: Make this reference the account structure. + recipient_account: %Schema{type: :object}, + unread: %Schema{type: :integer} + }, + example: %{ + "recipient" => "https://dontbulling.me/users/lain", + "recipient_account" => %{ + "pleroma" => %{ + "is_admin" => false, + "confirmation_pending" => false, + "hide_followers_count" => false, + "is_moderator" => false, + "hide_favorites" => true, + "ap_id" => "https://dontbulling.me/users/lain", + "hide_follows_count" => false, + "hide_follows" => false, + "background_image" => nil, + "skip_thread_containment" => false, + "hide_followers" => false, + "relationship" => %{}, + "tags" => [] + }, + "avatar" => + "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", + "following_count" => 0, + "header_static" => "https://originalpatchou.li/images/banner.png", + "source" => %{ + "sensitive" => false, + "note" => "lain", + "pleroma" => %{ + "discoverable" => false, + "actor_type" => "Person" + }, + "fields" => [] + }, + "statuses_count" => 1, + "locked" => false, + "created_at" => "2020-04-16T13:40:15.000Z", + "display_name" => "lain", + "fields" => [], + "acct" => "lain@dontbulling.me", + "id" => "9u6Qw6TAZANpqokMkK", + "emojis" => [], + "avatar_static" => + "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", + "username" => "lain", + "followers_count" => 0, + "header" => "https://originalpatchou.li/images/banner.png", + "bot" => false, + "note" => "lain", + "url" => "https://dontbulling.me/users/lain" + }, + "id" => "1", + "unread" => 2 + } + }) +end diff --git a/lib/pleroma/web/api_spec/schemas/chats_response.ex b/lib/pleroma/web/api_spec/schemas/chats_response.ex new file mode 100644 index 000000000..3349e0691 --- /dev/null +++ b/lib/pleroma/web/api_spec/schemas/chats_response.ex @@ -0,0 +1,69 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ApiSpec.Schemas.ChatsResponse do + alias Pleroma.Web.ApiSpec.Schemas.ChatResponse + + require OpenApiSpex + + OpenApiSpex.schema(%{ + title: "ChatsResponse", + description: "Response schema for multiple Chats", + type: :array, + items: ChatResponse, + example: [ + %{ + "recipient" => "https://dontbulling.me/users/lain", + "recipient_account" => %{ + "pleroma" => %{ + "is_admin" => false, + "confirmation_pending" => false, + "hide_followers_count" => false, + "is_moderator" => false, + "hide_favorites" => true, + "ap_id" => "https://dontbulling.me/users/lain", + "hide_follows_count" => false, + "hide_follows" => false, + "background_image" => nil, + "skip_thread_containment" => false, + "hide_followers" => false, + "relationship" => %{}, + "tags" => [] + }, + "avatar" => + "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", + "following_count" => 0, + "header_static" => "https://originalpatchou.li/images/banner.png", + "source" => %{ + "sensitive" => false, + "note" => "lain", + "pleroma" => %{ + "discoverable" => false, + "actor_type" => "Person" + }, + "fields" => [] + }, + "statuses_count" => 1, + "locked" => false, + "created_at" => "2020-04-16T13:40:15.000Z", + "display_name" => "lain", + "fields" => [], + "acct" => "lain@dontbulling.me", + "id" => "9u6Qw6TAZANpqokMkK", + "emojis" => [], + "avatar_static" => + "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", + "username" => "lain", + "followers_count" => 0, + "header" => "https://originalpatchou.li/images/banner.png", + "bot" => false, + "note" => "lain", + "url" => "https://dontbulling.me/users/lain" + }, + "id" => "1", + "unread" => 2 + } + ] + }) +end diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index 0750c7273..52a34d23f 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -5,8 +5,14 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do use Pleroma.Web.ConnCase, async: true alias Pleroma.Chat + alias Pleroma.Web.ApiSpec + alias Pleroma.Web.ApiSpec.Schemas.ChatResponse + alias Pleroma.Web.ApiSpec.Schemas.ChatsResponse + alias Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse + alias Pleroma.Web.ApiSpec.Schemas.ChatMessagesResponse alias Pleroma.Web.CommonAPI + import OpenApiSpex.TestAssertions import Pleroma.Factory describe "POST /api/v1/pleroma/chats/:id/messages" do @@ -24,6 +30,7 @@ test "it posts a message to the chat", %{conn: conn, user: user} do assert result["content"] == "Hallo!!" assert result["chat_id"] == chat.id |> to_string() + assert_schema(result, "ChatMessageResponse", ApiSpec.spec()) end end @@ -45,6 +52,7 @@ test "it paginates", %{conn: conn, user: user} do |> json_response(200) assert length(result) == 20 + assert_schema(result, "ChatMessagesResponse", ApiSpec.spec()) result = conn @@ -52,6 +60,7 @@ test "it paginates", %{conn: conn, user: user} do |> json_response(200) assert length(result) == 10 + assert_schema(result, "ChatMessagesResponse", ApiSpec.spec()) end test "it returns the messages for a given chat", %{conn: conn, user: user} do @@ -76,6 +85,7 @@ test "it returns the messages for a given chat", %{conn: conn, user: user} do end) assert length(result) == 3 + assert_schema(result, "ChatMessagesResponse", ApiSpec.spec()) # Trying to get the chat of a different user result = @@ -99,6 +109,7 @@ test "it creates or returns a chat", %{conn: conn} do |> json_response(200) assert result["id"] + assert_schema(result, "ChatResponse", ApiSpec.spec()) end end @@ -117,6 +128,7 @@ test "it paginates", %{conn: conn, user: user} do |> json_response(200) assert length(result) == 20 + assert_schema(result, "ChatsResponse", ApiSpec.spec()) result = conn @@ -124,6 +136,8 @@ test "it paginates", %{conn: conn, user: user} do |> json_response(200) assert length(result) == 10 + + assert_schema(result, "ChatsResponse", ApiSpec.spec()) end test "it return a list of chats the current user is participating in, in descending order of updates", @@ -154,6 +168,34 @@ test "it return a list of chats the current user is participating in, in descend chat_3.id |> to_string(), chat_1.id |> to_string() ] + + assert_schema(result, "ChatsResponse", ApiSpec.spec()) + end + end + + describe "schemas" do + test "Chat example matches schema" do + api_spec = ApiSpec.spec() + schema = ChatResponse.schema() + assert_schema(schema.example, "ChatResponse", api_spec) + end + + test "Chats example matches schema" do + api_spec = ApiSpec.spec() + schema = ChatsResponse.schema() + assert_schema(schema.example, "ChatsResponse", api_spec) + end + + test "ChatMessage example matches schema" do + api_spec = ApiSpec.spec() + schema = ChatMessageResponse.schema() + assert_schema(schema.example, "ChatMessageResponse", api_spec) + end + + test "ChatsMessage example matches schema" do + api_spec = ApiSpec.spec() + schema = ChatMessagesResponse.schema() + assert_schema(schema.example, "ChatMessagesResponse", api_spec) end end end From 66c2eb670b273d808f0a9c1ae087df064718ca3d Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 21 Apr 2020 18:23:00 +0200 Subject: [PATCH 041/529] ChatController: Validate parameters. --- .../web/api_spec/operations/chat_operation.ex | 4 ++++ .../controllers/chat_controller.ex | 22 ++++++++++++------- .../controllers/chat_controller_test.exs | 5 +++-- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index 5bd41ec4f..dc99bd773 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -21,6 +21,7 @@ def create_operation do %Operation{ tags: ["chat"], summary: "Create a chat", + operationId: "ChatController.create", parameters: [ Operation.parameter( :ap_id, @@ -47,6 +48,7 @@ def index_operation do %Operation{ tags: ["chat"], summary: "Get a list of chats that you participated in", + operationId: "ChatController.index", parameters: [ Operation.parameter(:limit, :query, :integer, "How many results to return", example: 20), Operation.parameter(:min_id, :query, :string, "Return only chats after this id"), @@ -67,6 +69,7 @@ def messages_operation do %Operation{ tags: ["chat"], summary: "Get the most recent messages of the chat", + operationId: "ChatController.messages", parameters: [ Operation.parameter(:id, :path, :string, "The ID of the Chat"), Operation.parameter(:limit, :query, :integer, "How many results to return", example: 20), @@ -89,6 +92,7 @@ def post_chat_message_operation do %Operation{ tags: ["chat"], summary: "Post a message to the chat", + operationId: "ChatController.post_chat_message", parameters: [ Operation.parameter(:id, :path, :string, "The ID of the Chat") ], diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 9d8b9b3cf..771ad6217 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -14,6 +14,8 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do alias Pleroma.Web.PleromaAPI.ChatMessageView alias Pleroma.Web.PleromaAPI.ChatView + import Pleroma.Web.ActivityPub.ObjectValidator, only: [stringify_keys: 1] + import Ecto.Query # TODO @@ -29,12 +31,16 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do %{scopes: ["read:statuses"]} when action in [:messages, :index] ) + plug(OpenApiSpex.Plug.CastAndValidate) + defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.ChatOperation - def post_chat_message(%{assigns: %{user: %{id: user_id} = user}} = conn, %{ - "id" => id, - "content" => content - }) do + def post_chat_message( + %{body_params: %{content: content}, assigns: %{user: %{id: user_id} = user}} = conn, + %{ + id: id + } + ) do with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id), %User{} = recipient <- User.get_cached_by_ap_id(chat.recipient), {:ok, activity} <- CommonAPI.post_chat_message(user, recipient, content), @@ -45,7 +51,7 @@ def post_chat_message(%{assigns: %{user: %{id: user_id} = user}} = conn, %{ end end - def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{"id" => id} = params) do + def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{id: id} = params) do with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id) do messages = from(o in Object, @@ -66,7 +72,7 @@ def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{"id" => id} = ^[user.ap_id] ) ) - |> Pagination.fetch_paginated(params) + |> Pagination.fetch_paginated(params |> stringify_keys()) conn |> put_view(ChatMessageView) @@ -85,7 +91,7 @@ def index(%{assigns: %{user: %{id: user_id}}} = conn, params) do where: c.user_id == ^user_id, order_by: [desc: c.updated_at] ) - |> Pagination.fetch_paginated(params) + |> Pagination.fetch_paginated(params |> stringify_keys) conn |> put_view(ChatView) @@ -93,7 +99,7 @@ def index(%{assigns: %{user: %{id: user_id}}} = conn, params) do end def create(%{assigns: %{user: user}} = conn, params) do - recipient = params["ap_id"] |> URI.decode_www_form() + recipient = params[:ap_id] with {:ok, %Chat{} = chat} <- Chat.get_or_create(user.id, recipient) do conn diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index 52a34d23f..84610e511 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -25,6 +25,7 @@ test "it posts a message to the chat", %{conn: conn, user: user} do result = conn + |> put_req_header("content-type", "application/json") |> post("/api/v1/pleroma/chats/#{chat.id}/messages", %{"content" => "Hallo!!"}) |> json_response(200) @@ -56,7 +57,7 @@ test "it paginates", %{conn: conn, user: user} do result = conn - |> get("/api/v1/pleroma/chats/#{chat.id}/messages", %{"max_id" => List.last(result)["id"]}) + |> get("/api/v1/pleroma/chats/#{chat.id}/messages?max_id=#{List.last(result)["id"]}") |> json_response(200) assert length(result) == 10 @@ -132,7 +133,7 @@ test "it paginates", %{conn: conn, user: user} do result = conn - |> get("/api/v1/pleroma/chats", %{max_id: List.last(result)["id"]}) + |> get("/api/v1/pleroma/chats?max_id=#{List.last(result)["id"]}") |> json_response(200) assert length(result) == 10 From 6c8390fa4d47a86c34bcc71681ba30f04d14eae9 Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 21 Apr 2020 18:32:30 +0200 Subject: [PATCH 042/529] ChatControllerTest: Credo fixes. --- test/web/pleroma_api/controllers/chat_controller_test.exs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index 84610e511..07b698013 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -6,10 +6,10 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do alias Pleroma.Chat alias Pleroma.Web.ApiSpec - alias Pleroma.Web.ApiSpec.Schemas.ChatResponse - alias Pleroma.Web.ApiSpec.Schemas.ChatsResponse alias Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse alias Pleroma.Web.ApiSpec.Schemas.ChatMessagesResponse + alias Pleroma.Web.ApiSpec.Schemas.ChatResponse + alias Pleroma.Web.ApiSpec.Schemas.ChatsResponse alias Pleroma.Web.CommonAPI import OpenApiSpex.TestAssertions From 2e62a63749e040b108b8afe2c8839c470f89fa04 Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 22 Apr 2020 12:48:52 +0200 Subject: [PATCH 043/529] ChatMessageValidator: Validation changes Don't validate if the recipient is blocking the actor. --- .../object_validators/chat_message_validator.ex | 12 +++++++++++- test/web/activity_pub/object_validator_test.exs | 9 +++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex index 2feb65f29..8b5bb4fdc 100644 --- a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -61,15 +61,25 @@ def validate_data(data_cng) do |> validate_local_concern() end - @doc "Validates if at least one of the users in this ChatMessage is a local user, otherwise we don't want the message in our system. It also validates the presence of both users in our system." + @doc """ + Validates the following + - If both users are in our system + - If at least one of the users in this ChatMessage is a local user + - If the recipient is not blocking the actor + """ def validate_local_concern(cng) do with actor_ap <- get_field(cng, :actor), {_, %User{} = actor} <- {:find_actor, User.get_cached_by_ap_id(actor_ap)}, {_, %User{} = recipient} <- {:find_recipient, User.get_cached_by_ap_id(get_field(cng, :to) |> hd())}, + {_, false} <- {:blocking_actor?, User.blocks?(recipient, actor)}, {_, true} <- {:local?, Enum.any?([actor, recipient], & &1.local)} do cng else + {:blocking_actor?, true} -> + cng + |> add_error(:actor, "actor is blocked by recipient") + {:local?, false} -> cng |> add_error(:actor, "actor and recipient are both remote") diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index 8230ae0d9..bc2317e55 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -33,6 +33,15 @@ test "does not validate if the message is longer than the remote_limit", %{ refute match?({:ok, _object, _meta}, ObjectValidator.validate(valid_chat_message, [])) end + test "does not validate if the recipient is blocking the actor", %{ + valid_chat_message: valid_chat_message, + user: user, + recipient: recipient + } do + Pleroma.User.block(recipient, user) + refute match?({:ok, _object, _meta}, ObjectValidator.validate(valid_chat_message, [])) + end + test "does not validate if the actor or the recipient is not in our system", %{ valid_chat_message: valid_chat_message } do From 1d6338f2d38284e94e17be58c21c7f34b5621ab7 Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 22 Apr 2020 12:52:39 +0200 Subject: [PATCH 044/529] Litepub: Add ChatMessage. --- priv/static/schemas/litepub-0.1.jsonld | 1 + 1 file changed, 1 insertion(+) diff --git a/priv/static/schemas/litepub-0.1.jsonld b/priv/static/schemas/litepub-0.1.jsonld index 278ad2f96..7cc3fee40 100644 --- a/priv/static/schemas/litepub-0.1.jsonld +++ b/priv/static/schemas/litepub-0.1.jsonld @@ -30,6 +30,7 @@ "@type": "@id" }, "EmojiReact": "litepub:EmojiReact", + "ChatMessage": "litepub:ChatMessage", "alsoKnownAs": { "@id": "as:alsoKnownAs", "@type": "@id" From 1e28d34592a5fae0f3403763f1ff86cc393a52b0 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 23 Apr 2020 16:19:49 +0200 Subject: [PATCH 045/529] ChatMessage: Correctly ingest emoji tags. --- .../object_validators/chat_message_validator.ex | 2 ++ test/fixtures/create-chat-message.json | 12 ++++++++++++ .../transmogrifier/chat_message_test.exs | 1 + 3 files changed, 15 insertions(+) diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex index 8b5bb4fdc..f07045d9d 100644 --- a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -9,6 +9,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do alias Pleroma.Web.ActivityPub.ObjectValidators.Types import Ecto.Changeset + import Pleroma.Web.ActivityPub.Transmogrifier, only: [fix_emoji: 1] @primary_key false @derive Jason.Encoder @@ -42,6 +43,7 @@ def cast_data(data) do def fix(data) do data + |> fix_emoji() |> Map.put_new("actor", data["attributedTo"]) end diff --git a/test/fixtures/create-chat-message.json b/test/fixtures/create-chat-message.json index 6db5b9f5c..9c23a1c9b 100644 --- a/test/fixtures/create-chat-message.json +++ b/test/fixtures/create-chat-message.json @@ -9,6 +9,18 @@ "to": [ "http://2hu.gensokyo/users/marisa" ], + "tag": [ + { + "icon": { + "type": "Image", + "url": "http://2hu.gensokyo/emoji/Firefox.gif" + }, + "id": "http://2hu.gensokyo/emoji/Firefox.gif", + "name": ":firefox:", + "type": "Emoji", + "updated": "1970-01-01T00:00:00Z" + } + ], "type": "ChatMessage" }, "published": "2018-02-12T14:08:20Z", diff --git a/test/web/activity_pub/transmogrifier/chat_message_test.exs b/test/web/activity_pub/transmogrifier/chat_message_test.exs index 4d6f24609..a63a31e6e 100644 --- a/test/web/activity_pub/transmogrifier/chat_message_test.exs +++ b/test/web/activity_pub/transmogrifier/chat_message_test.exs @@ -75,6 +75,7 @@ test "it inserts it and creates a chat" do assert object assert object.data["content"] == "You expected a cute girl? Too bad. alert('XSS')" + assert match?(%{"firefox" => _}, object.data["emoji"]) refute Chat.get(author.id, recipient.ap_id) assert Chat.get(recipient.id, author.ap_id) From a51cdafc0192b66ce75659b424a690f52c9b2a49 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 23 Apr 2020 16:55:00 +0200 Subject: [PATCH 046/529] Docs: Add documentation about chatmessages --- docs/ap_extensions.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 docs/ap_extensions.md diff --git a/docs/ap_extensions.md b/docs/ap_extensions.md new file mode 100644 index 000000000..c4550a1ac --- /dev/null +++ b/docs/ap_extensions.md @@ -0,0 +1,35 @@ +# ChatMessages + +ChatMessages are the messages sent in 1-on-1 chats. They are similar to +`Note`s, but the addresing is done by having a single AP actor in the `to` +field. Addressing multiple actors is not allowed. These messages are always +private, there is no public version of them. They are created with a `Create` +activity. + +Example: + +```json +{ + "actor": "http://2hu.gensokyo/users/raymoo", + "id": "http://2hu.gensokyo/objects/1", + "object": { + "attributedTo": "http://2hu.gensokyo/users/raymoo", + "content": "You expected a cute girl? Too bad.", + "id": "http://2hu.gensokyo/objects/2", + "published": "2020-02-12T14:08:20Z", + "to": [ + "http://2hu.gensokyo/users/marisa" + ], + "type": "ChatMessage" + }, + "published": "2018-02-12T14:08:20Z", + "to": [ + "http://2hu.gensokyo/users/marisa" + ], + "type": "Create" +} +``` + +This setup does not prevent multi-user chats, but these will have to go through +a `Group`, which will be the recipient of the messages and then `Announce` them +to the users in the `Group`. From b429a49504b1df6fa085cccbb3e461cd378b15c4 Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Thu, 23 Apr 2020 23:44:03 +0200 Subject: [PATCH 047/529] mix.exs: Fix for MacOS --- mix.exs | 43 +++++++++++++++++++++++++------------------ 1 file changed, 25 insertions(+), 18 deletions(-) diff --git a/mix.exs b/mix.exs index b76aef180..021217400 100644 --- a/mix.exs +++ b/mix.exs @@ -220,32 +220,39 @@ defp aliases do defp version(version) do identifier_filter = ~r/[^0-9a-z\-]+/i - # Pre-release version, denoted from patch version with a hyphen - {tag, tag_err} = - System.cmd("git", ["describe", "--tags", "--abbrev=0"], stderr_to_stdout: true) - - {describe, describe_err} = System.cmd("git", ["describe", "--tags", "--abbrev=8"]) - {commit_hash, commit_hash_err} = System.cmd("git", ["rev-parse", "--short", "HEAD"]) + {_gitpath, git_present} = System.cmd("sh", ["-c", "command -v git"]) git_pre_release = - cond do - tag_err == 0 and describe_err == 0 -> - describe - |> String.trim() - |> String.replace(String.trim(tag), "") - |> String.trim_leading("-") - |> String.trim() + if git_present do + {tag, tag_err} = + System.cmd("git", ["describe", "--tags", "--abbrev=0"], stderr_to_stdout: true) - commit_hash_err == 0 -> - "0-g" <> String.trim(commit_hash) + {describe, describe_err} = System.cmd("git", ["describe", "--tags", "--abbrev=8"]) + {commit_hash, commit_hash_err} = System.cmd("git", ["rev-parse", "--short", "HEAD"]) - true -> - "" + # Pre-release version, denoted from patch version with a hyphen + cond do + tag_err == 0 and describe_err == 0 -> + describe + |> String.trim() + |> String.replace(String.trim(tag), "") + |> String.trim_leading("-") + |> String.trim() + + commit_hash_err == 0 -> + "0-g" <> String.trim(commit_hash) + + true -> + "" + end + else + "" end # Branch name as pre-release version component, denoted with a dot branch_name = - with {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]), + with true <- git_present, + {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]), branch_name <- String.trim(branch_name), branch_name <- System.get_env("PLEROMA_BUILD_BRANCH") || branch_name, true <- From c63d6ba0b2686db847f70cf251f92bfed57c4e5f Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Thu, 23 Apr 2020 23:44:30 +0200 Subject: [PATCH 048/529] mix.exs: branch_name fallbacks to "" --- mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index 021217400..15a65c0fb 100644 --- a/mix.exs +++ b/mix.exs @@ -266,7 +266,7 @@ defp version(version) do branch_name else - _ -> "stable" + _ -> "" end build_name = From 053c46153076f351c5273c2d6b1fb0843e7b6a6d Mon Sep 17 00:00:00 2001 From: "Haelwenn (lanodan) Monnier" Date: Fri, 24 Apr 2020 00:26:24 +0200 Subject: [PATCH 049/529] mix.exs: proper check on 0, remove else in git_pre_release --- mix.exs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/mix.exs b/mix.exs index 15a65c0fb..ebb8bdb08 100644 --- a/mix.exs +++ b/mix.exs @@ -220,10 +220,10 @@ defp aliases do defp version(version) do identifier_filter = ~r/[^0-9a-z\-]+/i - {_gitpath, git_present} = System.cmd("sh", ["-c", "command -v git"]) + {_cmdgit, cmdgit_err} = System.cmd("sh", ["-c", "command -v git"]) git_pre_release = - if git_present do + if cmdgit_err == 0 do {tag, tag_err} = System.cmd("git", ["describe", "--tags", "--abbrev=0"], stderr_to_stdout: true) @@ -243,15 +243,13 @@ defp version(version) do "0-g" <> String.trim(commit_hash) true -> - "" + nil end - else - "" end # Branch name as pre-release version component, denoted with a dot branch_name = - with true <- git_present, + with 0 <- cmdgit_err, {branch_name, 0} <- System.cmd("git", ["rev-parse", "--abbrev-ref", "HEAD"]), branch_name <- String.trim(branch_name), branch_name <- System.get_env("PLEROMA_BUILD_BRANCH") || branch_name, From d2bbea1a8076401645600ceb953dd66ec023b3ad Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 27 Apr 2020 12:19:27 +0200 Subject: [PATCH 050/529] ChatControllerTest: Use new schema testing functions. --- .../controllers/chat_controller_test.exs | 58 +++---------------- 1 file changed, 8 insertions(+), 50 deletions(-) diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index 07b698013..84d7b543e 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -5,14 +5,8 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do use Pleroma.Web.ConnCase, async: true alias Pleroma.Chat - alias Pleroma.Web.ApiSpec - alias Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse - alias Pleroma.Web.ApiSpec.Schemas.ChatMessagesResponse - alias Pleroma.Web.ApiSpec.Schemas.ChatResponse - alias Pleroma.Web.ApiSpec.Schemas.ChatsResponse alias Pleroma.Web.CommonAPI - import OpenApiSpex.TestAssertions import Pleroma.Factory describe "POST /api/v1/pleroma/chats/:id/messages" do @@ -27,11 +21,10 @@ test "it posts a message to the chat", %{conn: conn, user: user} do conn |> put_req_header("content-type", "application/json") |> post("/api/v1/pleroma/chats/#{chat.id}/messages", %{"content" => "Hallo!!"}) - |> json_response(200) + |> json_response_and_validate_schema(200) assert result["content"] == "Hallo!!" assert result["chat_id"] == chat.id |> to_string() - assert_schema(result, "ChatMessageResponse", ApiSpec.spec()) end end @@ -50,18 +43,16 @@ test "it paginates", %{conn: conn, user: user} do result = conn |> get("/api/v1/pleroma/chats/#{chat.id}/messages") - |> json_response(200) + |> json_response_and_validate_schema(200) assert length(result) == 20 - assert_schema(result, "ChatMessagesResponse", ApiSpec.spec()) result = conn |> get("/api/v1/pleroma/chats/#{chat.id}/messages?max_id=#{List.last(result)["id"]}") - |> json_response(200) + |> json_response_and_validate_schema(200) assert length(result) == 10 - assert_schema(result, "ChatMessagesResponse", ApiSpec.spec()) end test "it returns the messages for a given chat", %{conn: conn, user: user} do @@ -78,7 +69,7 @@ test "it returns the messages for a given chat", %{conn: conn, user: user} do result = conn |> get("/api/v1/pleroma/chats/#{chat.id}/messages") - |> json_response(200) + |> json_response_and_validate_schema(200) result |> Enum.each(fn message -> @@ -86,7 +77,6 @@ test "it returns the messages for a given chat", %{conn: conn, user: user} do end) assert length(result) == 3 - assert_schema(result, "ChatMessagesResponse", ApiSpec.spec()) # Trying to get the chat of a different user result = @@ -107,10 +97,9 @@ test "it creates or returns a chat", %{conn: conn} do result = conn |> post("/api/v1/pleroma/chats/by-ap-id/#{URI.encode_www_form(other_user.ap_id)}") - |> json_response(200) + |> json_response_and_validate_schema(200) assert result["id"] - assert_schema(result, "ChatResponse", ApiSpec.spec()) end end @@ -126,19 +115,16 @@ test "it paginates", %{conn: conn, user: user} do result = conn |> get("/api/v1/pleroma/chats") - |> json_response(200) + |> json_response_and_validate_schema(200) assert length(result) == 20 - assert_schema(result, "ChatsResponse", ApiSpec.spec()) result = conn |> get("/api/v1/pleroma/chats?max_id=#{List.last(result)["id"]}") - |> json_response(200) + |> json_response_and_validate_schema(200) assert length(result) == 10 - - assert_schema(result, "ChatsResponse", ApiSpec.spec()) end test "it return a list of chats the current user is participating in, in descending order of updates", @@ -160,7 +146,7 @@ test "it return a list of chats the current user is participating in, in descend result = conn |> get("/api/v1/pleroma/chats") - |> json_response(200) + |> json_response_and_validate_schema(200) ids = Enum.map(result, & &1["id"]) @@ -169,34 +155,6 @@ test "it return a list of chats the current user is participating in, in descend chat_3.id |> to_string(), chat_1.id |> to_string() ] - - assert_schema(result, "ChatsResponse", ApiSpec.spec()) - end - end - - describe "schemas" do - test "Chat example matches schema" do - api_spec = ApiSpec.spec() - schema = ChatResponse.schema() - assert_schema(schema.example, "ChatResponse", api_spec) - end - - test "Chats example matches schema" do - api_spec = ApiSpec.spec() - schema = ChatsResponse.schema() - assert_schema(schema.example, "ChatsResponse", api_spec) - end - - test "ChatMessage example matches schema" do - api_spec = ApiSpec.spec() - schema = ChatMessageResponse.schema() - assert_schema(schema.example, "ChatMessageResponse", api_spec) - end - - test "ChatsMessage example matches schema" do - api_spec = ApiSpec.spec() - schema = ChatMessagesResponse.schema() - assert_schema(schema.example, "ChatMessagesResponse", api_spec) end end end From 15ba3700af76c44e63bf8881021f3ee2a5a7dafd Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 27 Apr 2020 12:45:59 +0200 Subject: [PATCH 051/529] Chat Schemas: Inline unimportant Schemas. --- .../web/api_spec/operations/chat_operation.ex | 113 +++++++++++++++++- .../schemas/chat_messages_response.ex | 41 ------- .../web/api_spec/schemas/chats_response.ex | 69 ----------- 3 files changed, 108 insertions(+), 115 deletions(-) delete mode 100644 lib/pleroma/web/api_spec/schemas/chat_messages_response.ex delete mode 100644 lib/pleroma/web/api_spec/schemas/chats_response.ex diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index dc99bd773..6f55cbd59 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -7,9 +7,8 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do alias Pleroma.Web.ApiSpec.Helpers alias Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest alias Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse - alias Pleroma.Web.ApiSpec.Schemas.ChatMessagesResponse alias Pleroma.Web.ApiSpec.Schemas.ChatResponse - alias Pleroma.Web.ApiSpec.Schemas.ChatsResponse + alias OpenApiSpex.Schema @spec open_api_operation(atom) :: Operation.t() def open_api_operation(action) do @@ -34,7 +33,11 @@ def create_operation do ], responses: %{ 200 => - Operation.response("The created or existing chat", "application/json", ChatResponse) + Operation.response( + "The created or existing chat", + "application/json", + ChatResponse + ) }, security: [ %{ @@ -55,7 +58,7 @@ def index_operation do Operation.parameter(:max_id, :query, :string, "Return only chats before this id") ], responses: %{ - 200 => Operation.response("The chats of the user", "application/json", ChatsResponse) + 200 => Operation.response("The chats of the user", "application/json", chats_response()) }, security: [ %{ @@ -78,7 +81,11 @@ def messages_operation do ], responses: %{ 200 => - Operation.response("The messages in the chat", "application/json", ChatMessagesResponse) + Operation.response( + "The messages in the chat", + "application/json", + chat_messages_response() + ) }, security: [ %{ @@ -112,4 +119,100 @@ def post_chat_message_operation do ] } end + + def chats_response() do + %Schema{ + title: "ChatsResponse", + description: "Response schema for multiple Chats", + type: :array, + items: ChatResponse, + example: [ + %{ + "recipient" => "https://dontbulling.me/users/lain", + "recipient_account" => %{ + "pleroma" => %{ + "is_admin" => false, + "confirmation_pending" => false, + "hide_followers_count" => false, + "is_moderator" => false, + "hide_favorites" => true, + "ap_id" => "https://dontbulling.me/users/lain", + "hide_follows_count" => false, + "hide_follows" => false, + "background_image" => nil, + "skip_thread_containment" => false, + "hide_followers" => false, + "relationship" => %{}, + "tags" => [] + }, + "avatar" => + "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", + "following_count" => 0, + "header_static" => "https://originalpatchou.li/images/banner.png", + "source" => %{ + "sensitive" => false, + "note" => "lain", + "pleroma" => %{ + "discoverable" => false, + "actor_type" => "Person" + }, + "fields" => [] + }, + "statuses_count" => 1, + "locked" => false, + "created_at" => "2020-04-16T13:40:15.000Z", + "display_name" => "lain", + "fields" => [], + "acct" => "lain@dontbulling.me", + "id" => "9u6Qw6TAZANpqokMkK", + "emojis" => [], + "avatar_static" => + "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", + "username" => "lain", + "followers_count" => 0, + "header" => "https://originalpatchou.li/images/banner.png", + "bot" => false, + "note" => "lain", + "url" => "https://dontbulling.me/users/lain" + }, + "id" => "1", + "unread" => 2 + } + ] + } + end + + def chat_messages_response() do + %Schema{ + title: "ChatMessagesResponse", + description: "Response schema for multiple ChatMessages", + type: :array, + items: ChatMessageResponse, + example: [ + %{ + "emojis" => [ + %{ + "static_url" => "https://dontbulling.me/emoji/Firefox.gif", + "visible_in_picker" => false, + "shortcode" => "firefox", + "url" => "https://dontbulling.me/emoji/Firefox.gif" + } + ], + "created_at" => "2020-04-21T15:11:46.000Z", + "content" => "Check this out :firefox:", + "id" => "13", + "chat_id" => "1", + "actor" => "https://dontbulling.me/users/lain" + }, + %{ + "actor" => "https://dontbulling.me/users/lain", + "content" => "Whats' up?", + "id" => "12", + "chat_id" => "1", + "emojis" => [], + "created_at" => "2020-04-21T15:06:45.000Z" + } + ] + } + end end diff --git a/lib/pleroma/web/api_spec/schemas/chat_messages_response.ex b/lib/pleroma/web/api_spec/schemas/chat_messages_response.ex deleted file mode 100644 index 302bdec95..000000000 --- a/lib/pleroma/web/api_spec/schemas/chat_messages_response.ex +++ /dev/null @@ -1,41 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessagesResponse do - alias Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse - - require OpenApiSpex - - OpenApiSpex.schema(%{ - title: "ChatMessagesResponse", - description: "Response schema for multiple ChatMessages", - type: :array, - items: ChatMessageResponse, - example: [ - %{ - "emojis" => [ - %{ - "static_url" => "https://dontbulling.me/emoji/Firefox.gif", - "visible_in_picker" => false, - "shortcode" => "firefox", - "url" => "https://dontbulling.me/emoji/Firefox.gif" - } - ], - "created_at" => "2020-04-21T15:11:46.000Z", - "content" => "Check this out :firefox:", - "id" => "13", - "chat_id" => "1", - "actor" => "https://dontbulling.me/users/lain" - }, - %{ - "actor" => "https://dontbulling.me/users/lain", - "content" => "Whats' up?", - "id" => "12", - "chat_id" => "1", - "emojis" => [], - "created_at" => "2020-04-21T15:06:45.000Z" - } - ] - }) -end diff --git a/lib/pleroma/web/api_spec/schemas/chats_response.ex b/lib/pleroma/web/api_spec/schemas/chats_response.ex deleted file mode 100644 index 3349e0691..000000000 --- a/lib/pleroma/web/api_spec/schemas/chats_response.ex +++ /dev/null @@ -1,69 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.ApiSpec.Schemas.ChatsResponse do - alias Pleroma.Web.ApiSpec.Schemas.ChatResponse - - require OpenApiSpex - - OpenApiSpex.schema(%{ - title: "ChatsResponse", - description: "Response schema for multiple Chats", - type: :array, - items: ChatResponse, - example: [ - %{ - "recipient" => "https://dontbulling.me/users/lain", - "recipient_account" => %{ - "pleroma" => %{ - "is_admin" => false, - "confirmation_pending" => false, - "hide_followers_count" => false, - "is_moderator" => false, - "hide_favorites" => true, - "ap_id" => "https://dontbulling.me/users/lain", - "hide_follows_count" => false, - "hide_follows" => false, - "background_image" => nil, - "skip_thread_containment" => false, - "hide_followers" => false, - "relationship" => %{}, - "tags" => [] - }, - "avatar" => - "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", - "following_count" => 0, - "header_static" => "https://originalpatchou.li/images/banner.png", - "source" => %{ - "sensitive" => false, - "note" => "lain", - "pleroma" => %{ - "discoverable" => false, - "actor_type" => "Person" - }, - "fields" => [] - }, - "statuses_count" => 1, - "locked" => false, - "created_at" => "2020-04-16T13:40:15.000Z", - "display_name" => "lain", - "fields" => [], - "acct" => "lain@dontbulling.me", - "id" => "9u6Qw6TAZANpqokMkK", - "emojis" => [], - "avatar_static" => - "https://dontbulling.me/media/065a4dd3c6740dab13ff9c71ec7d240bb9f8be9205c9e7467fb2202117da1e32.jpg", - "username" => "lain", - "followers_count" => 0, - "header" => "https://originalpatchou.li/images/banner.png", - "bot" => false, - "note" => "lain", - "url" => "https://dontbulling.me/users/lain" - }, - "id" => "1", - "unread" => 2 - } - ] - }) -end From e62f8542a1933ba71dfd236741ad3afc76b89f22 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 27 Apr 2020 13:48:09 +0200 Subject: [PATCH 052/529] Docs: Add chat motivation and api description. --- docs/API/chats.md | 197 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 197 insertions(+) create mode 100644 docs/API/chats.md diff --git a/docs/API/chats.md b/docs/API/chats.md new file mode 100644 index 000000000..39f493b47 --- /dev/null +++ b/docs/API/chats.md @@ -0,0 +1,197 @@ +# Chats + +Chats are a way to represent an IM-style conversation between two actors. They are not the same as direct messages and they are not `Status`es, even though they have a lot in common. + +## Why Chats? + +There are no 'visibility levels' in ActivityPub, their definition is purely a Mastodon convention. Direct Messaging between users on the fediverse has mostly been modeled by using ActivityPub addressing following Mastodon conventions on normal `Note` objects. In this case, a 'direct message' would be a message that has no followers addressed and also does not address the special public actor, but just the recipients in the `to` field. It would still be a `Note` and is presented with other `Note`s as a `Status` in the API. + +This is an awkward setup for a few reasons: + +- As DMs generally still follow the usual `Status` conventions, it is easy to accidentally pull somebody into a DM thread by mentioning them. (e.g. "I hate @badguy so much") +- It is possible to go from a publicly addressed `Status` to a DM reply, back to public, then to a 'followers only' reply, and so on. This can be become very confusing, as it is unclear which user can see which part of the conversation. +- The standard `Status` format of implicit addressing also leads to rather ugly results if you try to display the messages as a chat, because all the recipients are always mentioned by name in the message. +- As direct messages are posted with the same api call (and usually same frontend component) as public messages, accidentally making a public message private or vice versa can happen easily. Client bugs can also lead to this, accidentally making private messages public. + +As a measure to improve this situation, the `Conversation` concept and related Pleroma extensions were introduced. While it made it possible to work around a few of the issues, many of the problems remained and it didn't see much adoption because it was too complicated to use correctly. + +## Chats explained +For this reasons, Chats are a new and different entity, both in the API as well as in ActivityPub. A quick overview: + +- Chats are meant to represent an instant message conversation between two actors. For now these are only 1-on-1 conversations, but the other actor can be a group in the future. +- Chat messages have the ActivityPub type `ChatMessage`. They are not `Note`s. Servers that don't understand them will just drop them. +- The only addressing allowed in `ChatMessage`s is one single ActivityPub actor in the `to` field. +- There's always only one Chat between two actors. If you start chatting with someone and later start a 'new' Chat, the old Chat will be continued. +- `ChatMessage`s are posted with a different api, making it very hard to accidentally send a message to the wrong person. +- `ChatMessage`s don't show up in the existing timelines. +- Chats can never go from private to public. They are always private between the two actors. + +## Caveats + +- Chats are NOT E2E encrypted (yet). Security is still the same as email. + +## API + +In general, the way to send a `ChatMessage` is to first create a `Chat`, then post a message to that `Chat`. The actors in the API are generally given by their ActivityPub id to make it easier to support later `Group` scenarios. + +This is the overview of using the API. The API is also documented via OpenAPI, so you can view it and play with it by pointing SwaggerUI or a similar OpenAPI tool to `https://yourinstance.tld/api/openapi`. + +### Creating or getting a chat. + +To create or get an existing Chat for a certain recipient (identified by AP ID) +you can call: + +`POST /api/v1/pleroma/chats/by-ap-id/{ap_id}` + +The ap_id of the recipients needs to be www-form encoded, so + +``` +https://originalpatchou.li/user/lambda +``` + +would become + +``` +https%3A%2F%2Foriginalpatchou.li%2Fuser%2Flambda +``` + +The full call would then be + +``` +POST /api/v1/pleroma/chats/by-ap-id/https%3A%2F%2Foriginalpatchou.li%2Fuser%2Flambda +``` + +There will only ever be ONE Chat for you and a given recipient, so this call +will return the same Chat if you already have one with that user. + +Returned data: + +```json +{ + "recipient" : "https://dontbulling.me/users/lain", + "recipient_account": { + "id": "someflakeid", + "username": "somenick", + ... + }, + "id" : "1", + "unread" : 2 +} +``` + +### Getting a list of Chats + +`GET /api/v1/pleroma/chats` + +This will return a list of chats that you have been involved in, sorted by their +last update (so new chats will be at the top). + +Returned data: + +```json +[ + { + "recipient" : "https://dontbulling.me/users/lain", + "recipient_account": { + "id": "someflakeid", + "username": "somenick", + ... + }, + "id" : "1", + "unread" : 2 + } +] +``` + +The recipient of messages that are sent to this chat is given by their AP ID. +The usual pagination options are implemented. + +### Getting the messages for a Chat + +For a given Chat id, you can get the associated messages with + +`GET /api/v1/pleroma/chats/{id}/messages` + +This will return all messages, sorted by most recent to least recent. The usual +pagination options are implemented + +Returned data: + +```json +[ + { + "actor": "https://dontbulling.me/users/lain", + "chat_id": "1", + "content": "Check this out :firefox:", + "created_at": "2020-04-21T15:11:46.000Z", + "emojis": [ + { + "shortcode": "firefox", + "static_url": "https://dontbulling.me/emoji/Firefox.gif", + "url": "https://dontbulling.me/emoji/Firefox.gif", + "visible_in_picker": false + } + ], + "id": "13" + }, + { + "actor": "https://dontbulling.me/users/lain", + "chat_id": "1", + "content": "Whats' up?", + "created_at": "2020-04-21T15:06:45.000Z", + "emojis": [], + "id": "12" + } +] +``` + +### Posting a chat message + +Posting a chat message for given Chat id works like this: + +`POST /api/v1/pleroma/chats/{id}/messages` + +Parameters: +- content: The text content of the message + +Currently, no formatting beyond basic escaping and emoji is implemented, as well as no +attachments. This will most probably change. + +Returned data: + +```json +{ + "actor": "https://dontbulling.me/users/lain", + "chat_id": "1", + "content": "Check this out :firefox:", + "created_at": "2020-04-21T15:11:46.000Z", + "emojis": [ + { + "shortcode": "firefox", + "static_url": "https://dontbulling.me/emoji/Firefox.gif", + "url": "https://dontbulling.me/emoji/Firefox.gif", + "visible_in_picker": false + } + ], + "id": "13" +} +``` + +### Notifications + +There's a new `pleroma:chat_mention` notification, which has this form: + +```json +{ + "id": "someid", + "type": "pleroma:chat_mention", + "account": { ... } // User account of the sender, + "chat_message": { + "chat_id": "1", + "id": "10", + "content": "Hello", + "actor": "https://dontbulling.me/users/lain" + }, + "created_at": "somedate" +} +``` From 00e956528b392689326d5f5527543a422a874bcc Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 27 Apr 2020 14:02:11 +0200 Subject: [PATCH 053/529] Credo fixes. --- lib/pleroma/web/api_spec/operations/chat_operation.ex | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index 6f55cbd59..546bc4d9b 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -4,11 +4,11 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do alias OpenApiSpex.Operation + alias OpenApiSpex.Schema alias Pleroma.Web.ApiSpec.Helpers alias Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest alias Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse alias Pleroma.Web.ApiSpec.Schemas.ChatResponse - alias OpenApiSpex.Schema @spec open_api_operation(atom) :: Operation.t() def open_api_operation(action) do @@ -120,7 +120,7 @@ def post_chat_message_operation do } end - def chats_response() do + def chats_response do %Schema{ title: "ChatsResponse", description: "Response schema for multiple Chats", @@ -182,7 +182,7 @@ def chats_response() do } end - def chat_messages_response() do + def chat_messages_response do %Schema{ title: "ChatMessagesResponse", description: "Response schema for multiple ChatMessages", From 49e673dfea0a0cc94bba9691ce171b60f8a2fd75 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 27 Apr 2020 16:08:03 +0200 Subject: [PATCH 054/529] ChatView: Add actor_account_id --- lib/pleroma/web/api_spec/schemas/chat_message_response.ex | 2 ++ lib/pleroma/web/pleroma_api/views/chat_message_view.ex | 2 ++ test/web/pleroma_api/views/chat_message_view_test.exs | 2 ++ 3 files changed, 6 insertions(+) diff --git a/lib/pleroma/web/api_spec/schemas/chat_message_response.ex b/lib/pleroma/web/api_spec/schemas/chat_message_response.ex index e94c00369..9459d210b 100644 --- a/lib/pleroma/web/api_spec/schemas/chat_message_response.ex +++ b/lib/pleroma/web/api_spec/schemas/chat_message_response.ex @@ -14,6 +14,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse do properties: %{ id: %Schema{type: :string}, actor: %Schema{type: :string, description: "The ActivityPub id of the actor"}, + actor_account_id: %Schema{type: :string, description: "The Mastodon API id of the actor"}, chat_id: %Schema{type: :string}, content: %Schema{type: :string}, created_at: %Schema{type: :string, format: :datetime}, @@ -21,6 +22,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse do }, example: %{ "actor" => "https://dontbulling.me/users/lain", + "actor_account_id" => "someflakeid", "chat_id" => "1", "content" => "hey you again", "created_at" => "2020-04-21T15:06:45.000Z", diff --git a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex index b40ab92a0..5b740cc44 100644 --- a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex +++ b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex @@ -8,6 +8,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatMessageView do alias Pleroma.Chat alias Pleroma.Web.CommonAPI.Utils alias Pleroma.Web.MastodonAPI.StatusView + alias Pleroma.User def render( "show.json", @@ -21,6 +22,7 @@ def render( content: chat_message["content"], chat_id: chat_id |> to_string(), actor: chat_message["actor"], + actor_account_id: User.get_cached_by_ap_id(chat_message["actor"]).id, created_at: Utils.to_masto_date(chat_message["published"]), emojis: StatusView.build_emojis(chat_message["emoji"]) } diff --git a/test/web/pleroma_api/views/chat_message_view_test.exs b/test/web/pleroma_api/views/chat_message_view_test.exs index 115335f10..7e3aeefab 100644 --- a/test/web/pleroma_api/views/chat_message_view_test.exs +++ b/test/web/pleroma_api/views/chat_message_view_test.exs @@ -26,6 +26,7 @@ test "it displays a chat message" do assert chat_message[:id] == object.id |> to_string() assert chat_message[:content] == "kippis :firefox:" assert chat_message[:actor] == user.ap_id + assert chat_message[:actor_account_id] == user.id assert chat_message[:chat_id] assert chat_message[:created_at] assert match?([%{shortcode: "firefox"}], chat_message[:emojis]) @@ -39,6 +40,7 @@ test "it displays a chat message" do assert chat_message_two[:id] == object.id |> to_string() assert chat_message_two[:content] == "gkgkgk" assert chat_message_two[:actor] == recipient.ap_id + assert chat_message_two[:actor_account_id] == recipient.id assert chat_message_two[:chat_id] == chat_message[:chat_id] end end From ad82a216ff0676507a118e610209bd4259456b3c Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 27 Apr 2020 17:48:34 +0200 Subject: [PATCH 055/529] Chat API: Align more to Pleroma/Mastodon API. --- .../web/api_spec/operations/chat_operation.ex | 13 ++++++------- .../web/api_spec/schemas/chat_message_response.ex | 6 ++---- lib/pleroma/web/api_spec/schemas/chat_response.ex | 11 ++++------- .../web/pleroma_api/controllers/chat_controller.ex | 5 ++--- .../web/pleroma_api/views/chat_message_view.ex | 3 +-- lib/pleroma/web/pleroma_api/views/chat_view.ex | 3 +-- lib/pleroma/web/router.ex | 2 +- .../controllers/chat_controller_test.exs | 4 ++-- .../pleroma_api/views/chat_message_view_test.exs | 6 ++---- test/web/pleroma_api/views/chat_view_test.exs | 3 +-- 10 files changed, 22 insertions(+), 34 deletions(-) diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index 546bc4d9b..59539e890 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -23,12 +23,12 @@ def create_operation do operationId: "ChatController.create", parameters: [ Operation.parameter( - :ap_id, + :id, :path, :string, - "The ActivityPub id of the recipient of this chat.", + "The account id of the recipient of this chat", required: true, - example: "https://lain.com/users/lain" + example: "someflakeid" ) ], responses: %{ @@ -128,8 +128,7 @@ def chats_response do items: ChatResponse, example: [ %{ - "recipient" => "https://dontbulling.me/users/lain", - "recipient_account" => %{ + "account" => %{ "pleroma" => %{ "is_admin" => false, "confirmation_pending" => false, @@ -202,10 +201,10 @@ def chat_messages_response do "content" => "Check this out :firefox:", "id" => "13", "chat_id" => "1", - "actor" => "https://dontbulling.me/users/lain" + "actor_id" => "someflakeid" }, %{ - "actor" => "https://dontbulling.me/users/lain", + "actor_id" => "someflakeid", "content" => "Whats' up?", "id" => "12", "chat_id" => "1", diff --git a/lib/pleroma/web/api_spec/schemas/chat_message_response.ex b/lib/pleroma/web/api_spec/schemas/chat_message_response.ex index 9459d210b..b7a662cbb 100644 --- a/lib/pleroma/web/api_spec/schemas/chat_message_response.ex +++ b/lib/pleroma/web/api_spec/schemas/chat_message_response.ex @@ -13,16 +13,14 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse do type: :object, properties: %{ id: %Schema{type: :string}, - actor: %Schema{type: :string, description: "The ActivityPub id of the actor"}, - actor_account_id: %Schema{type: :string, description: "The Mastodon API id of the actor"}, + account_id: %Schema{type: :string, description: "The Mastodon API id of the actor"}, chat_id: %Schema{type: :string}, content: %Schema{type: :string}, created_at: %Schema{type: :string, format: :datetime}, emojis: %Schema{type: :array} }, example: %{ - "actor" => "https://dontbulling.me/users/lain", - "actor_account_id" => "someflakeid", + "account_id" => "someflakeid", "chat_id" => "1", "content" => "hey you again", "created_at" => "2020-04-21T15:06:45.000Z", diff --git a/lib/pleroma/web/api_spec/schemas/chat_response.ex b/lib/pleroma/web/api_spec/schemas/chat_response.ex index a80f4d173..aa435165d 100644 --- a/lib/pleroma/web/api_spec/schemas/chat_response.ex +++ b/lib/pleroma/web/api_spec/schemas/chat_response.ex @@ -12,15 +12,12 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ChatResponse do description: "Response schema for a Chat", type: :object, properties: %{ - id: %Schema{type: :string}, - recipient: %Schema{type: :string}, - # TODO: Make this reference the account structure. - recipient_account: %Schema{type: :object}, - unread: %Schema{type: :integer} + id: %Schema{type: :string, nullable: false}, + account: %Schema{type: :object, nullable: false}, + unread: %Schema{type: :integer, nullable: false} }, example: %{ - "recipient" => "https://dontbulling.me/users/lain", - "recipient_account" => %{ + "account" => %{ "pleroma" => %{ "is_admin" => false, "confirmation_pending" => false, diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 771ad6217..8654f4295 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -99,9 +99,8 @@ def index(%{assigns: %{user: %{id: user_id}}} = conn, params) do end def create(%{assigns: %{user: user}} = conn, params) do - recipient = params[:ap_id] - - with {:ok, %Chat{} = chat} <- Chat.get_or_create(user.id, recipient) do + with %User{ap_id: recipient} <- User.get_by_id(params[:id]), + {:ok, %Chat{} = chat} <- Chat.get_or_create(user.id, recipient) do conn |> put_view(ChatView) |> render("show.json", chat: chat) diff --git a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex index 5b740cc44..28f12d9b0 100644 --- a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex +++ b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex @@ -21,8 +21,7 @@ def render( id: id |> to_string(), content: chat_message["content"], chat_id: chat_id |> to_string(), - actor: chat_message["actor"], - actor_account_id: User.get_cached_by_ap_id(chat_message["actor"]).id, + account_id: User.get_cached_by_ap_id(chat_message["actor"]).id, created_at: Utils.to_masto_date(chat_message["published"]), emojis: StatusView.build_emojis(chat_message["emoji"]) } diff --git a/lib/pleroma/web/pleroma_api/views/chat_view.ex b/lib/pleroma/web/pleroma_api/views/chat_view.ex index 1e9ef4356..bc3af5ef5 100644 --- a/lib/pleroma/web/pleroma_api/views/chat_view.ex +++ b/lib/pleroma/web/pleroma_api/views/chat_view.ex @@ -14,8 +14,7 @@ def render("show.json", %{chat: %Chat{} = chat} = opts) do %{ id: chat.id |> to_string(), - recipient: chat.recipient, - recipient_account: AccountView.render("show.json", Map.put(opts, :user, recipient)), + account: AccountView.render("show.json", Map.put(opts, :user, recipient)), unread: chat.unread } end diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 0c56318ee..aad2e3b98 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -275,7 +275,7 @@ defmodule Pleroma.Web.Router do scope [] do pipe_through(:authenticated_api) - post("/chats/by-ap-id/:ap_id", ChatController, :create) + post("/chats/by-account-id/:id", ChatController, :create) get("/chats", ChatController, :index) get("/chats/:id/messages", ChatController, :messages) post("/chats/:id/messages", ChatController, :post_chat_message) diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index 84d7b543e..b1044574b 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -88,7 +88,7 @@ test "it returns the messages for a given chat", %{conn: conn, user: user} do end end - describe "POST /api/v1/pleroma/chats/by-ap-id/:id" do + describe "POST /api/v1/pleroma/chats/by-account-id/:id" do setup do: oauth_access(["write:statuses"]) test "it creates or returns a chat", %{conn: conn} do @@ -96,7 +96,7 @@ test "it creates or returns a chat", %{conn: conn} do result = conn - |> post("/api/v1/pleroma/chats/by-ap-id/#{URI.encode_www_form(other_user.ap_id)}") + |> post("/api/v1/pleroma/chats/by-account-id/#{other_user.id}") |> json_response_and_validate_schema(200) assert result["id"] diff --git a/test/web/pleroma_api/views/chat_message_view_test.exs b/test/web/pleroma_api/views/chat_message_view_test.exs index 7e3aeefab..5c4c8b0d5 100644 --- a/test/web/pleroma_api/views/chat_message_view_test.exs +++ b/test/web/pleroma_api/views/chat_message_view_test.exs @@ -25,8 +25,7 @@ test "it displays a chat message" do assert chat_message[:id] == object.id |> to_string() assert chat_message[:content] == "kippis :firefox:" - assert chat_message[:actor] == user.ap_id - assert chat_message[:actor_account_id] == user.id + assert chat_message[:account_id] == user.id assert chat_message[:chat_id] assert chat_message[:created_at] assert match?([%{shortcode: "firefox"}], chat_message[:emojis]) @@ -39,8 +38,7 @@ test "it displays a chat message" do assert chat_message_two[:id] == object.id |> to_string() assert chat_message_two[:content] == "gkgkgk" - assert chat_message_two[:actor] == recipient.ap_id - assert chat_message_two[:actor_account_id] == recipient.id + assert chat_message_two[:account_id] == recipient.id assert chat_message_two[:chat_id] == chat_message[:chat_id] end end diff --git a/test/web/pleroma_api/views/chat_view_test.exs b/test/web/pleroma_api/views/chat_view_test.exs index 725da5ff8..1ac3483d1 100644 --- a/test/web/pleroma_api/views/chat_view_test.exs +++ b/test/web/pleroma_api/views/chat_view_test.exs @@ -21,8 +21,7 @@ test "it represents a chat" do assert represented_chat == %{ id: "#{chat.id}", - recipient: recipient.ap_id, - recipient_account: AccountView.render("show.json", user: recipient), + account: AccountView.render("show.json", user: recipient), unread: 0 } end From b550ef56119b9f735cf3fe279a5457e36ab92951 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 27 Apr 2020 17:52:16 +0200 Subject: [PATCH 056/529] Docs: Align chat api changes with docs. --- docs/API/chats.md | 36 +++++++++++------------------------- 1 file changed, 11 insertions(+), 25 deletions(-) diff --git a/docs/API/chats.md b/docs/API/chats.md index 39f493b47..24c4b4d06 100644 --- a/docs/API/chats.md +++ b/docs/API/chats.md @@ -32,33 +32,21 @@ For this reasons, Chats are a new and different entity, both in the API as well ## API -In general, the way to send a `ChatMessage` is to first create a `Chat`, then post a message to that `Chat`. The actors in the API are generally given by their ActivityPub id to make it easier to support later `Group` scenarios. +In general, the way to send a `ChatMessage` is to first create a `Chat`, then post a message to that `Chat`. `Group`s will later be supported by making them a sub-type of `Account`. This is the overview of using the API. The API is also documented via OpenAPI, so you can view it and play with it by pointing SwaggerUI or a similar OpenAPI tool to `https://yourinstance.tld/api/openapi`. ### Creating or getting a chat. -To create or get an existing Chat for a certain recipient (identified by AP ID) +To create or get an existing Chat for a certain recipient (identified by Account ID) you can call: -`POST /api/v1/pleroma/chats/by-ap-id/{ap_id}` +`POST /api/v1/pleroma/chats/by-account-id/{account_id}` -The ap_id of the recipients needs to be www-form encoded, so +The account id is the normal FlakeId of the usre ``` -https://originalpatchou.li/user/lambda -``` - -would become - -``` -https%3A%2F%2Foriginalpatchou.li%2Fuser%2Flambda -``` - -The full call would then be - -``` -POST /api/v1/pleroma/chats/by-ap-id/https%3A%2F%2Foriginalpatchou.li%2Fuser%2Flambda +POST /api/v1/pleroma/chats/by-account-id/someflakeid ``` There will only ever be ONE Chat for you and a given recipient, so this call @@ -68,8 +56,7 @@ Returned data: ```json { - "recipient" : "https://dontbulling.me/users/lain", - "recipient_account": { + "account": { "id": "someflakeid", "username": "somenick", ... @@ -91,8 +78,7 @@ Returned data: ```json [ { - "recipient" : "https://dontbulling.me/users/lain", - "recipient_account": { + "account": { "id": "someflakeid", "username": "somenick", ... @@ -120,7 +106,7 @@ Returned data: ```json [ { - "actor": "https://dontbulling.me/users/lain", + "account_id": "someflakeid", "chat_id": "1", "content": "Check this out :firefox:", "created_at": "2020-04-21T15:11:46.000Z", @@ -135,7 +121,7 @@ Returned data: "id": "13" }, { - "actor": "https://dontbulling.me/users/lain", + "account_id": "someflakeid", "chat_id": "1", "content": "Whats' up?", "created_at": "2020-04-21T15:06:45.000Z", @@ -161,7 +147,7 @@ Returned data: ```json { - "actor": "https://dontbulling.me/users/lain", + "account_id": "someflakeid", "chat_id": "1", "content": "Check this out :firefox:", "created_at": "2020-04-21T15:11:46.000Z", @@ -190,7 +176,7 @@ There's a new `pleroma:chat_mention` notification, which has this form: "chat_id": "1", "id": "10", "content": "Hello", - "actor": "https://dontbulling.me/users/lain" + "account_id": "someflakeid" }, "created_at": "somedate" } From 3d040b1a87da66ed53a763f781477bd4f5a146d3 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 27 Apr 2020 17:55:29 +0200 Subject: [PATCH 057/529] Credo fixes. --- lib/pleroma/web/pleroma_api/views/chat_message_view.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex index 28f12d9b0..a821479ab 100644 --- a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex +++ b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex @@ -6,9 +6,9 @@ defmodule Pleroma.Web.PleromaAPI.ChatMessageView do use Pleroma.Web, :view alias Pleroma.Chat + alias Pleroma.User alias Pleroma.Web.CommonAPI.Utils alias Pleroma.Web.MastodonAPI.StatusView - alias Pleroma.User def render( "show.json", From 906cf53ab94742327d073f56255f695c91339295 Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 28 Apr 2020 13:38:02 +0200 Subject: [PATCH 058/529] Recipient Type: Cast all elements as ObjectIDs. --- .../object_validators/types/recipients.ex | 15 +++++++++++++-- .../object_validators/types/recipients_test.exs | 12 ++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex b/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex index 5a3040842..48fe61e1a 100644 --- a/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex +++ b/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex @@ -1,13 +1,24 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.Types.Recipients do use Ecto.Type - def type, do: {:array, :string} + alias Pleroma.Web.ActivityPub.ObjectValidators.Types.ObjectID + + def type, do: {:array, ObjectID} def cast(object) when is_binary(object) do cast([object]) end - def cast([_ | _] = data), do: {:ok, data} + def cast(data) when is_list(data) do + data + |> Enum.reduce({:ok, []}, fn element, acc -> + case {acc, ObjectID.cast(element)} do + {:error, _} -> :error + {_, :error} -> :error + {{:ok, list}, {:ok, id}} -> {:ok, [id | list]} + end + end) + end def cast(_) do :error diff --git a/test/web/activity_pub/object_validators/types/recipients_test.exs b/test/web/activity_pub/object_validators/types/recipients_test.exs index 2f9218774..f278f039b 100644 --- a/test/web/activity_pub/object_validators/types/recipients_test.exs +++ b/test/web/activity_pub/object_validators/types/recipients_test.exs @@ -2,11 +2,23 @@ defmodule Pleroma.Web.ObjectValidators.Types.RecipientsTest do alias Pleroma.Web.ActivityPub.ObjectValidators.Types.Recipients use Pleroma.DataCase + test "it asserts that all elements of the list are object ids" do + list = ["https://lain.com/users/lain", "invalid"] + + assert :error == Recipients.cast(list) + end + test "it works with a list" do list = ["https://lain.com/users/lain"] assert {:ok, list} == Recipients.cast(list) end + test "it works with a list with whole objects" do + list = ["https://lain.com/users/lain", %{"id" => "https://gensokyo.2hu/users/raymoo"}] + resulting_list = ["https://gensokyo.2hu/users/raymoo", "https://lain.com/users/lain"] + assert {:ok, resulting_list} == Recipients.cast(list) + end + test "it turns a single string into a list" do recipient = "https://lain.com/users/lain" From f8e56d4271f8c495316d304dd0de7f0a63eb0645 Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 28 Apr 2020 13:43:58 +0200 Subject: [PATCH 059/529] SideEffects: Use Object.normalize to get the object. --- lib/pleroma/web/activity_pub/side_effects.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/activity_pub/side_effects.ex b/lib/pleroma/web/activity_pub/side_effects.ex index ebe3071b0..a2b4da8d6 100644 --- a/lib/pleroma/web/activity_pub/side_effects.ex +++ b/lib/pleroma/web/activity_pub/side_effects.ex @@ -30,8 +30,8 @@ def handle(%{data: %{"type" => "Like"}} = object, meta) do result end - def handle(%{data: %{"type" => "Create", "object" => object_id}} = activity, meta) do - object = Object.get_by_ap_id(object_id) + def handle(%{data: %{"type" => "Create"}} = activity, meta) do + object = Object.normalize(activity, false) {:ok, _object} = handle_object_creation(object) From 6aa116eca7d6ef6567dcef03b8c776bd2134bf3f Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 28 Apr 2020 16:26:19 +0200 Subject: [PATCH 060/529] Create activity handling: Flip it and reverse it Both objects and create activities will now go through the common pipeline and will be validated. Objects are now created as a side effect of the Create activity, rolling back a transaction if it's not possible to insert the object. --- lib/pleroma/notification.ex | 2 +- lib/pleroma/web/activity_pub/activity_pub.ex | 7 ++++ .../web/activity_pub/object_validator.ex | 4 +- .../chat_message_validator.ex | 2 +- .../create_chat_message_validator.ex | 27 +++++++++++- .../object_validators/types/safe_text.ex | 25 +++++++++++ lib/pleroma/web/activity_pub/pipeline.ex | 12 ++++-- lib/pleroma/web/activity_pub/side_effects.ex | 41 +++++++++++-------- .../transmogrifier/chat_message_handling.ex | 28 ++++++++----- lib/pleroma/web/common_api/common_api.ex | 10 +++-- lib/pleroma/web/common_api/utils.ex | 2 +- .../types/safe_text_test.exs | 23 +++++++++++ test/web/activity_pub/side_effects_test.exs | 21 ++++++---- .../transmogrifier/chat_message_test.exs | 3 +- 14 files changed, 155 insertions(+), 52 deletions(-) create mode 100644 lib/pleroma/web/activity_pub/object_validators/types/safe_text.ex create mode 100644 test/web/activity_pub/object_validators/types/safe_text_test.exs diff --git a/lib/pleroma/notification.ex b/lib/pleroma/notification.ex index 73e19bf97..d96c12440 100644 --- a/lib/pleroma/notification.ex +++ b/lib/pleroma/notification.ex @@ -275,7 +275,7 @@ def dismiss(%{id: user_id} = _user, id) do end def create_notifications(%Activity{data: %{"to" => _, "type" => "Create"}} = activity) do - object = Object.normalize(activity) + object = Object.normalize(activity, false) if object && object.data["type"] == "Answer" do {:ok, []} diff --git a/lib/pleroma/web/activity_pub/activity_pub.ex b/lib/pleroma/web/activity_pub/activity_pub.ex index 69ac06f6b..ecb13d76a 100644 --- a/lib/pleroma/web/activity_pub/activity_pub.ex +++ b/lib/pleroma/web/activity_pub/activity_pub.ex @@ -126,7 +126,14 @@ def increase_poll_votes_if_vote(%{ def increase_poll_votes_if_vote(_create_data), do: :noop + @object_types ["ChatMessage"] @spec persist(map(), keyword()) :: {:ok, Activity.t() | Object.t()} + def persist(%{"type" => type} = object, meta) when type in @object_types do + with {:ok, object} <- Object.create(object) do + {:ok, object, meta} + end + end + def persist(object, meta) do with local <- Keyword.fetch!(meta, :local), {recipients, _, _} <- get_recipients(object), diff --git a/lib/pleroma/web/activity_pub/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex index 03db681ec..a4da9242a 100644 --- a/lib/pleroma/web/activity_pub/object_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validator.ex @@ -23,7 +23,7 @@ def validate(%{"type" => "Like"} = object, meta) do object |> LikeValidator.cast_and_validate() |> Ecto.Changeset.apply_action(:insert) do - object = stringify_keys(object |> Map.from_struct()) + object = stringify_keys(object) {:ok, object, meta} end end @@ -41,7 +41,7 @@ def validate(%{"type" => "ChatMessage"} = object, meta) do def validate(%{"type" => "Create"} = object, meta) do with {:ok, object} <- object - |> CreateChatMessageValidator.cast_and_validate() + |> CreateChatMessageValidator.cast_and_validate(meta) |> Ecto.Changeset.apply_action(:insert) do object = stringify_keys(object) {:ok, object, meta} diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex index f07045d9d..e87c1ac2e 100644 --- a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -18,7 +18,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do field(:id, Types.ObjectID, primary_key: true) field(:to, Types.Recipients, default: []) field(:type, :string) - field(:content, :string) + field(:content, Types.SafeText) field(:actor, Types.ObjectID) field(:published, Types.DateTime) field(:emoji, :map, default: %{}) diff --git a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex index ce52d5623..21c7a5ba4 100644 --- a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex @@ -33,8 +33,31 @@ def cast_data(data) do cast(%__MODULE__{}, data, __schema__(:fields)) end - # No validation yet - def cast_and_validate(data) do + def cast_and_validate(data, meta \\ []) do cast_data(data) + |> validate_data(meta) + end + + def validate_data(cng, meta \\ []) do + cng + |> validate_required([:id, :actor, :to, :type, :object]) + |> validate_inclusion(:type, ["Create"]) + |> validate_recipients_match(meta) + end + + def validate_recipients_match(cng, meta) do + object_recipients = meta[:object_data]["to"] || [] + + cng + |> validate_change(:to, fn :to, recipients -> + activity_set = MapSet.new(recipients) + object_set = MapSet.new(object_recipients) + + if MapSet.equal?(activity_set, object_set) do + [] + else + [{:to, "Recipients don't match with object recipients"}] + end + end) end end diff --git a/lib/pleroma/web/activity_pub/object_validators/types/safe_text.ex b/lib/pleroma/web/activity_pub/object_validators/types/safe_text.ex new file mode 100644 index 000000000..822e8d2c1 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/types/safe_text.ex @@ -0,0 +1,25 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.Types.SafeText do + use Ecto.Type + + alias Pleroma.HTML + + def type, do: :string + + def cast(str) when is_binary(str) do + {:ok, HTML.strip_tags(str)} + end + + def cast(_), do: :error + + def dump(data) do + {:ok, data} + end + + def load(data) do + {:ok, data} + end +end diff --git a/lib/pleroma/web/activity_pub/pipeline.ex b/lib/pleroma/web/activity_pub/pipeline.ex index 7ccee54c9..4213ba751 100644 --- a/lib/pleroma/web/activity_pub/pipeline.ex +++ b/lib/pleroma/web/activity_pub/pipeline.ex @@ -4,20 +4,22 @@ defmodule Pleroma.Web.ActivityPub.Pipeline do alias Pleroma.Activity + alias Pleroma.Object alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.MRF alias Pleroma.Web.ActivityPub.ObjectValidator alias Pleroma.Web.ActivityPub.SideEffects alias Pleroma.Web.Federator - @spec common_pipeline(map(), keyword()) :: {:ok, Activity.t(), keyword()} | {:error, any()} + @spec common_pipeline(map(), keyword()) :: + {:ok, Activity.t() | Object.t(), keyword()} | {:error, any()} def common_pipeline(object, meta) do with {_, {:ok, validated_object, meta}} <- {:validate_object, ObjectValidator.validate(object, meta)}, {_, {:ok, mrfd_object}} <- {:mrf_object, MRF.filter(validated_object)}, - {_, {:ok, %Activity{} = activity, meta}} <- + {_, {:ok, activity, meta}} <- {:persist_object, ActivityPub.persist(mrfd_object, meta)}, - {_, {:ok, %Activity{} = activity, meta}} <- + {_, {:ok, activity, meta}} <- {:execute_side_effects, SideEffects.handle(activity, meta)}, {_, {:ok, _}} <- {:federation, maybe_federate(activity, meta)} do {:ok, activity, meta} @@ -27,7 +29,9 @@ def common_pipeline(object, meta) do end end - defp maybe_federate(activity, meta) do + defp maybe_federate(%Object{}, _), do: {:ok, :not_federated} + + defp maybe_federate(%Activity{} = activity, meta) do with {:ok, local} <- Keyword.fetch(meta, :local) do if local do Federator.publish(activity) diff --git a/lib/pleroma/web/activity_pub/side_effects.ex b/lib/pleroma/web/activity_pub/side_effects.ex index a2b4da8d6..794a46267 100644 --- a/lib/pleroma/web/activity_pub/side_effects.ex +++ b/lib/pleroma/web/activity_pub/side_effects.ex @@ -8,7 +8,9 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do alias Pleroma.Chat alias Pleroma.Notification alias Pleroma.Object + alias Pleroma.Repo alias Pleroma.User + alias Pleroma.Web.ActivityPub.Pipeline alias Pleroma.Web.ActivityPub.Utils def handle(object, meta \\ []) @@ -30,14 +32,17 @@ def handle(%{data: %{"type" => "Like"}} = object, meta) do result end + # Tasks this handles + # - Actually create object + # - Rollback if we couldn't create it + # - Set up notifications def handle(%{data: %{"type" => "Create"}} = activity, meta) do - object = Object.normalize(activity, false) - - {:ok, _object} = handle_object_creation(object) - - Notification.create_notifications(activity) - - {:ok, activity, meta} + with {:ok, _object, _meta} <- handle_object_creation(meta[:object_data], meta) do + Notification.create_notifications(activity) + {:ok, activity, meta} + else + e -> Repo.rollback(e) + end end # Nothing to do @@ -45,18 +50,20 @@ def handle(object, meta) do {:ok, object, meta} end - def handle_object_creation(%{data: %{"type" => "ChatMessage"}} = object) do - actor = User.get_cached_by_ap_id(object.data["actor"]) - recipient = User.get_cached_by_ap_id(hd(object.data["to"])) + def handle_object_creation(%{"type" => "ChatMessage"} = object, meta) do + with {:ok, object, meta} <- Pipeline.common_pipeline(object, meta) do + actor = User.get_cached_by_ap_id(object.data["actor"]) + recipient = User.get_cached_by_ap_id(hd(object.data["to"])) - [[actor, recipient], [recipient, actor]] - |> Enum.each(fn [user, other_user] -> - if user.local do - Chat.bump_or_create(user.id, other_user.ap_id) - end - end) + [[actor, recipient], [recipient, actor]] + |> Enum.each(fn [user, other_user] -> + if user.local do + Chat.bump_or_create(user.id, other_user.ap_id) + end + end) - {:ok, object} + {:ok, object, meta} + end end # Nothing to do diff --git a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex index cfe3b767b..043d847d1 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex @@ -3,31 +3,39 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageHandling do - alias Pleroma.Object + alias Pleroma.Repo alias Pleroma.Web.ActivityPub.ObjectValidator alias Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator alias Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator alias Pleroma.Web.ActivityPub.Pipeline def handle_incoming( - %{"type" => "Create", "object" => %{"type" => "ChatMessage"} = object_data} = data, + %{"type" => "Create", "object" => %{"type" => "ChatMessage"}} = data, _options ) do + # Create has to be run inside a transaction because the object is created as a side effect. + # If this does not work, we need to roll back creating the activity. + case Repo.transaction(fn -> do_handle_incoming(data) end) do + {:ok, value} -> + value + + {:error, e} -> + {:error, e} + end + end + + def do_handle_incoming( + %{"type" => "Create", "object" => %{"type" => "ChatMessage"} = object_data} = data + ) do with {_, {:ok, cast_data_sym}} <- {:casting_data, data |> CreateChatMessageValidator.cast_and_apply()}, cast_data = ObjectValidator.stringify_keys(cast_data_sym), {_, {:ok, object_cast_data_sym}} <- {:casting_object_data, object_data |> ChatMessageValidator.cast_and_apply()}, object_cast_data = ObjectValidator.stringify_keys(object_cast_data_sym), - # For now, just strip HTML - stripped_content = Pleroma.HTML.strip_tags(object_cast_data["content"]), - object_cast_data = object_cast_data |> Map.put("content", stripped_content), - {_, true} <- {:to_fields_match, cast_data["to"] == object_cast_data["to"]}, - {_, {:ok, validated_object, _meta}} <- - {:validate_object, ObjectValidator.validate(object_cast_data, %{})}, - {_, {:ok, _created_object}} <- {:persist_object, Object.create(validated_object)}, {_, {:ok, activity, _meta}} <- - {:common_pipeline, Pipeline.common_pipeline(cast_data, local: false)} do + {:common_pipeline, + Pipeline.common_pipeline(cast_data, local: false, object_data: object_cast_data)} do {:ok, activity} else e -> diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 5eb221668..c39d1cee6 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -38,13 +38,15 @@ def post_chat_message(%User{} = user, %User{} = recipient, content) do recipient.ap_id, content |> Formatter.html_escape("text/plain") )}, - {_, {:ok, chat_message_object}} <- - {:create_object, Object.create(chat_message_data)}, {_, {:ok, create_activity_data, _meta}} <- {:build_create_activity, - Builder.create(user, chat_message_object.data["id"], [recipient.ap_id])}, + Builder.create(user, chat_message_data["id"], [recipient.ap_id])}, {_, {:ok, %Activity{} = activity, _meta}} <- - {:common_pipeline, Pipeline.common_pipeline(create_activity_data, local: true)} do + {:common_pipeline, + Pipeline.common_pipeline(create_activity_data, + local: true, + object_data: chat_message_data + )} do {:ok, activity} else {:content_length, false} -> {:error, :content_too_long} diff --git a/lib/pleroma/web/common_api/utils.ex b/lib/pleroma/web/common_api/utils.ex index 945e63e22..4afdf80af 100644 --- a/lib/pleroma/web/common_api/utils.ex +++ b/lib/pleroma/web/common_api/utils.ex @@ -425,7 +425,7 @@ def maybe_notify_mentioned_recipients( %Activity{data: %{"to" => _to, "type" => type} = data} = activity ) when type == "Create" do - object = Object.normalize(activity) + object = Object.normalize(activity, false) object_data = cond do diff --git a/test/web/activity_pub/object_validators/types/safe_text_test.exs b/test/web/activity_pub/object_validators/types/safe_text_test.exs new file mode 100644 index 000000000..59ed0a1fe --- /dev/null +++ b/test/web/activity_pub/object_validators/types/safe_text_test.exs @@ -0,0 +1,23 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.Types.SafeTextTest do + use Pleroma.DataCase + + alias Pleroma.Web.ActivityPub.ObjectValidators.Types.SafeText + + test "it lets normal text go through" do + text = "hey how are you" + assert {:ok, text} == SafeText.cast(text) + end + + test "it removes html tags from text" do + text = "hey look xss " + assert {:ok, "hey look xss alert('foo')"} == SafeText.cast(text) + end + + test "errors for non-text" do + assert :error == SafeText.cast(1) + end +end diff --git a/test/web/activity_pub/side_effects_test.exs b/test/web/activity_pub/side_effects_test.exs index 2889a577c..19abac6a6 100644 --- a/test/web/activity_pub/side_effects_test.exs +++ b/test/web/activity_pub/side_effects_test.exs @@ -47,14 +47,14 @@ test "notifies the recipient" do recipient = insert(:user, local: true) {:ok, chat_message_data, _meta} = Builder.chat_message(author, recipient.ap_id, "hey") - {:ok, chat_message_object} = Object.create(chat_message_data) {:ok, create_activity_data, _meta} = - Builder.create(author, chat_message_object.data["id"], [recipient.ap_id]) + Builder.create(author, chat_message_data["id"], [recipient.ap_id]) {:ok, create_activity, _meta} = ActivityPub.persist(create_activity_data, local: false) - {:ok, _create_activity, _meta} = SideEffects.handle(create_activity) + {:ok, _create_activity, _meta} = + SideEffects.handle(create_activity, local: false, object_data: chat_message_data) assert Repo.get_by(Notification, user_id: recipient.id, activity_id: create_activity.id) end @@ -64,14 +64,17 @@ test "it creates a Chat for the local users and bumps the unread count" do recipient = insert(:user, local: true) {:ok, chat_message_data, _meta} = Builder.chat_message(author, recipient.ap_id, "hey") - {:ok, chat_message_object} = Object.create(chat_message_data) {:ok, create_activity_data, _meta} = - Builder.create(author, chat_message_object.data["id"], [recipient.ap_id]) + Builder.create(author, chat_message_data["id"], [recipient.ap_id]) {:ok, create_activity, _meta} = ActivityPub.persist(create_activity_data, local: false) - {:ok, _create_activity, _meta} = SideEffects.handle(create_activity) + {:ok, _create_activity, _meta} = + SideEffects.handle(create_activity, local: false, object_data: chat_message_data) + + # An object is created + assert Object.get_by_ap_id(chat_message_data["id"]) # The remote user won't get a chat chat = Chat.get(author.id, recipient.ap_id) @@ -85,14 +88,14 @@ test "it creates a Chat for the local users and bumps the unread count" do recipient = insert(:user, local: true) {:ok, chat_message_data, _meta} = Builder.chat_message(author, recipient.ap_id, "hey") - {:ok, chat_message_object} = Object.create(chat_message_data) {:ok, create_activity_data, _meta} = - Builder.create(author, chat_message_object.data["id"], [recipient.ap_id]) + Builder.create(author, chat_message_data["id"], [recipient.ap_id]) {:ok, create_activity, _meta} = ActivityPub.persist(create_activity_data, local: false) - {:ok, _create_activity, _meta} = SideEffects.handle(create_activity) + {:ok, _create_activity, _meta} = + SideEffects.handle(create_activity, local: false, object_data: chat_message_data) # Both users are local and get the chat chat = Chat.get(author.id, recipient.ap_id) diff --git a/test/web/activity_pub/transmogrifier/chat_message_test.exs b/test/web/activity_pub/transmogrifier/chat_message_test.exs index a63a31e6e..ceaee614c 100644 --- a/test/web/activity_pub/transmogrifier/chat_message_test.exs +++ b/test/web/activity_pub/transmogrifier/chat_message_test.exs @@ -55,7 +55,8 @@ test "it rejects messages where the `to` field of activity and object don't matc data |> Map.put("to", author.ap_id) - {:error, _} = Transmogrifier.handle_incoming(data) + assert match?({:error, _}, Transmogrifier.handle_incoming(data)) + refute Object.get_by_ap_id(data["object"]["id"]) end test "it inserts it and creates a chat" do From abd09282292f7e902c77b158ae3d86e9bfd5b986 Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 28 Apr 2020 16:45:28 +0200 Subject: [PATCH 061/529] CreateChatMessageValidator: Validate object existence --- .../create_chat_message_validator.ex | 14 +++++++++++++- test/web/activity_pub/object_validator_test.exs | 16 ++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex index 21c7a5ba4..dfc91bf71 100644 --- a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex @@ -5,10 +5,10 @@ # NOTES # - Can probably be a generic create validator # - doesn't embed, will only get the object id -# - object has to be validated first, maybe with some meta info from the surrounding create defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator do use Ecto.Schema + alias Pleroma.Object alias Pleroma.Web.ActivityPub.ObjectValidators.Types import Ecto.Changeset @@ -43,6 +43,18 @@ def validate_data(cng, meta \\ []) do |> validate_required([:id, :actor, :to, :type, :object]) |> validate_inclusion(:type, ["Create"]) |> validate_recipients_match(meta) + |> validate_object_nonexistence() + end + + def validate_object_nonexistence(cng) do + cng + |> validate_change(:object, fn :object, object_id -> + if Object.get_cached_by_ap_id(object_id) do + [{:object, "The object to create already exists"}] + else + [] + end + end) end def validate_recipients_match(cng, meta) do diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index bc2317e55..baa4b2585 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -1,6 +1,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do use Pleroma.DataCase + alias Pleroma.Object alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.ObjectValidator alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator @@ -9,6 +10,21 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do import Pleroma.Factory + describe "chat message create activities" do + test "it is invalid if the object already exists" do + user = insert(:user) + recipient = insert(:user) + {:ok, activity} = CommonAPI.post_chat_message(user, recipient, "hey") + object = Object.normalize(activity, false) + + {:ok, create_data, _} = Builder.create(user, object.data["id"], [recipient.ap_id]) + + {:error, cng} = ObjectValidator.validate(create_data, []) + + assert {:object, {"The object to create already exists", []}} in cng.errors + end + end + describe "chat messages" do setup do clear_config([:instance, :remote_limit]) From dedffd100c231aa69d7a7f7cd7126b90a84fc1ec Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 28 Apr 2020 17:29:54 +0200 Subject: [PATCH 062/529] Pipeline: Unify, refactor, DRY. --- lib/pleroma/web/activity_pub/builder.ex | 4 +-- .../web/activity_pub/object_validator.ex | 18 ++++++++--- .../transmogrifier/chat_message_handling.ex | 31 ++++--------------- lib/pleroma/web/common_api/common_api.ex | 5 ++- .../activity_pub/object_validator_test.exs | 2 +- 5 files changed, 24 insertions(+), 36 deletions(-) diff --git a/lib/pleroma/web/activity_pub/builder.ex b/lib/pleroma/web/activity_pub/builder.ex index 7576ed278..7f9c071b3 100644 --- a/lib/pleroma/web/activity_pub/builder.ex +++ b/lib/pleroma/web/activity_pub/builder.ex @@ -11,13 +11,13 @@ defmodule Pleroma.Web.ActivityPub.Builder do alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.ActivityPub.Visibility - def create(actor, object_id, recipients) do + def create(actor, object, recipients) do {:ok, %{ "id" => Utils.generate_activity_id(), "actor" => actor.ap_id, "to" => recipients, - "object" => object_id, + "object" => object, "type" => "Create", "published" => DateTime.utc_now() |> DateTime.to_iso8601() }, []} diff --git a/lib/pleroma/web/activity_pub/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex index a4da9242a..bada3509d 100644 --- a/lib/pleroma/web/activity_pub/object_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validator.ex @@ -38,16 +38,24 @@ def validate(%{"type" => "ChatMessage"} = object, meta) do end end - def validate(%{"type" => "Create"} = object, meta) do - with {:ok, object} <- - object + def validate(%{"type" => "Create", "object" => object} = create_activity, meta) do + with {:ok, object_data} <- cast_and_apply(object), + meta = Keyword.put(meta, :object_data, object_data |> stringify_keys), + {:ok, create_activity} <- + create_activity |> CreateChatMessageValidator.cast_and_validate(meta) |> Ecto.Changeset.apply_action(:insert) do - object = stringify_keys(object) - {:ok, object, meta} + create_activity = stringify_keys(create_activity) + {:ok, create_activity, meta} end end + def cast_and_apply(%{"type" => "ChatMessage"} = object) do + ChatMessageValidator.cast_and_apply(object) + end + + def cast_and_apply(o), do: {:error, {:validator_not_set, o}} + def stringify_keys(%{__struct__: _} = object) do object |> Map.from_struct() diff --git a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex index 043d847d1..d9c36e313 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex @@ -4,9 +4,6 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageHandling do alias Pleroma.Repo - alias Pleroma.Web.ActivityPub.ObjectValidator - alias Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator - alias Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator alias Pleroma.Web.ActivityPub.Pipeline def handle_incoming( @@ -15,31 +12,15 @@ def handle_incoming( ) do # Create has to be run inside a transaction because the object is created as a side effect. # If this does not work, we need to roll back creating the activity. - case Repo.transaction(fn -> do_handle_incoming(data) end) do - {:ok, value} -> - value + case Repo.transaction(fn -> Pipeline.common_pipeline(data, local: false) end) do + {:ok, {:ok, activity, _}} -> + {:ok, activity} + + {:ok, e} -> + e {:error, e} -> {:error, e} end end - - def do_handle_incoming( - %{"type" => "Create", "object" => %{"type" => "ChatMessage"} = object_data} = data - ) do - with {_, {:ok, cast_data_sym}} <- - {:casting_data, data |> CreateChatMessageValidator.cast_and_apply()}, - cast_data = ObjectValidator.stringify_keys(cast_data_sym), - {_, {:ok, object_cast_data_sym}} <- - {:casting_object_data, object_data |> ChatMessageValidator.cast_and_apply()}, - object_cast_data = ObjectValidator.stringify_keys(object_cast_data_sym), - {_, {:ok, activity, _meta}} <- - {:common_pipeline, - Pipeline.common_pipeline(cast_data, local: false, object_data: object_cast_data)} do - {:ok, activity} - else - e -> - {:error, e} - end - end end diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index c39d1cee6..ef86ec1e4 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -40,12 +40,11 @@ def post_chat_message(%User{} = user, %User{} = recipient, content) do )}, {_, {:ok, create_activity_data, _meta}} <- {:build_create_activity, - Builder.create(user, chat_message_data["id"], [recipient.ap_id])}, + Builder.create(user, chat_message_data, [recipient.ap_id])}, {_, {:ok, %Activity{} = activity, _meta}} <- {:common_pipeline, Pipeline.common_pipeline(create_activity_data, - local: true, - object_data: chat_message_data + local: true )} do {:ok, activity} else diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index baa4b2585..41f67964a 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -17,7 +17,7 @@ test "it is invalid if the object already exists" do {:ok, activity} = CommonAPI.post_chat_message(user, recipient, "hey") object = Object.normalize(activity, false) - {:ok, create_data, _} = Builder.create(user, object.data["id"], [recipient.ap_id]) + {:ok, create_data, _} = Builder.create(user, object.data, [recipient.ap_id]) {:error, cng} = ObjectValidator.validate(create_data, []) From 67659afe487def6bd4e0ccfbf8d015fda2a8ac61 Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 29 Apr 2020 13:34:43 +0200 Subject: [PATCH 063/529] ChatOperation: Refactor. --- .../web/api_spec/operations/chat_operation.ex | 20 +++++++------------ 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index 59539e890..88b9db048 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -5,11 +5,12 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do alias OpenApiSpex.Operation alias OpenApiSpex.Schema - alias Pleroma.Web.ApiSpec.Helpers alias Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest alias Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse alias Pleroma.Web.ApiSpec.Schemas.ChatResponse + import Pleroma.Web.ApiSpec.Helpers + @spec open_api_operation(atom) :: Operation.t() def open_api_operation(action) do operation = String.to_existing_atom("#{action}_operation") @@ -52,11 +53,7 @@ def index_operation do tags: ["chat"], summary: "Get a list of chats that you participated in", operationId: "ChatController.index", - parameters: [ - Operation.parameter(:limit, :query, :integer, "How many results to return", example: 20), - Operation.parameter(:min_id, :query, :string, "Return only chats after this id"), - Operation.parameter(:max_id, :query, :string, "Return only chats before this id") - ], + parameters: pagination_params(), responses: %{ 200 => Operation.response("The chats of the user", "application/json", chats_response()) }, @@ -73,12 +70,9 @@ def messages_operation do tags: ["chat"], summary: "Get the most recent messages of the chat", operationId: "ChatController.messages", - parameters: [ - Operation.parameter(:id, :path, :string, "The ID of the Chat"), - Operation.parameter(:limit, :query, :integer, "How many results to return", example: 20), - Operation.parameter(:min_id, :query, :string, "Return only messages after this id"), - Operation.parameter(:max_id, :query, :string, "Return only messages before this id") - ], + parameters: + [Operation.parameter(:id, :path, :string, "The ID of the Chat")] ++ + pagination_params(), responses: %{ 200 => Operation.response( @@ -103,7 +97,7 @@ def post_chat_message_operation do parameters: [ Operation.parameter(:id, :path, :string, "The ID of the Chat") ], - requestBody: Helpers.request_body("Parameters", ChatMessageCreateRequest, required: true), + requestBody: request_body("Parameters", ChatMessageCreateRequest, required: true), responses: %{ 200 => Operation.response( From e055b8d2036e18a95d84f6f1db08fc465fe9975d Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 29 Apr 2020 13:45:50 +0200 Subject: [PATCH 064/529] Pipeline: Always run common_pipeline in a transaction for now. --- lib/pleroma/web/activity_pub/pipeline.ex | 11 ++++ .../transmogrifier/chat_message_handling.ex | 12 ++--- lib/pleroma/web/common_api/common_api.ex | 52 ++++++++----------- .../transmogrifier/chat_message_test.exs | 1 + 4 files changed, 36 insertions(+), 40 deletions(-) diff --git a/lib/pleroma/web/activity_pub/pipeline.ex b/lib/pleroma/web/activity_pub/pipeline.ex index 4213ba751..d5abb7567 100644 --- a/lib/pleroma/web/activity_pub/pipeline.ex +++ b/lib/pleroma/web/activity_pub/pipeline.ex @@ -5,6 +5,7 @@ defmodule Pleroma.Web.ActivityPub.Pipeline do alias Pleroma.Activity alias Pleroma.Object + alias Pleroma.Repo alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.MRF alias Pleroma.Web.ActivityPub.ObjectValidator @@ -14,6 +15,16 @@ defmodule Pleroma.Web.ActivityPub.Pipeline do @spec common_pipeline(map(), keyword()) :: {:ok, Activity.t() | Object.t(), keyword()} | {:error, any()} def common_pipeline(object, meta) do + case Repo.transaction(fn -> do_common_pipeline(object, meta) end) do + {:ok, value} -> + value + + {:error, e} -> + {:error, e} + end + end + + def do_common_pipeline(object, meta) do with {_, {:ok, validated_object, meta}} <- {:validate_object, ObjectValidator.validate(object, meta)}, {_, {:ok, mrfd_object}} <- {:mrf_object, MRF.filter(validated_object)}, diff --git a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex index d9c36e313..b1cc93481 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex @@ -3,24 +3,18 @@ # SPDX-License-Identifier: AGPL-3.0-only defmodule Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageHandling do - alias Pleroma.Repo alias Pleroma.Web.ActivityPub.Pipeline def handle_incoming( %{"type" => "Create", "object" => %{"type" => "ChatMessage"}} = data, _options ) do - # Create has to be run inside a transaction because the object is created as a side effect. - # If this does not work, we need to roll back creating the activity. - case Repo.transaction(fn -> Pipeline.common_pipeline(data, local: false) end) do - {:ok, {:ok, activity, _}} -> + case Pipeline.common_pipeline(data, local: false) do + {:ok, activity, _} -> {:ok, activity} - {:ok, e} -> + e -> e - - {:error, e} -> - {:error, e} end end end diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index ef86ec1e4..359045f48 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -9,7 +9,6 @@ defmodule Pleroma.Web.CommonAPI do alias Pleroma.FollowingRelationship alias Pleroma.Formatter alias Pleroma.Object - alias Pleroma.Repo alias Pleroma.ThreadMute alias Pleroma.User alias Pleroma.UserRelationship @@ -26,36 +25,27 @@ defmodule Pleroma.Web.CommonAPI do require Logger def post_chat_message(%User{} = user, %User{} = recipient, content) do - transaction = - Repo.transaction(fn -> - with {_, true} <- - {:content_length, - String.length(content) <= Pleroma.Config.get([:instance, :chat_limit])}, - {_, {:ok, chat_message_data, _meta}} <- - {:build_object, - Builder.chat_message( - user, - recipient.ap_id, - content |> Formatter.html_escape("text/plain") - )}, - {_, {:ok, create_activity_data, _meta}} <- - {:build_create_activity, - Builder.create(user, chat_message_data, [recipient.ap_id])}, - {_, {:ok, %Activity{} = activity, _meta}} <- - {:common_pipeline, - Pipeline.common_pipeline(create_activity_data, - local: true - )} do - {:ok, activity} - else - {:content_length, false} -> {:error, :content_too_long} - e -> e - end - end) - - case transaction do - {:ok, value} -> value - error -> error + with {_, true} <- + {:content_length, + String.length(content) <= Pleroma.Config.get([:instance, :chat_limit])}, + {_, {:ok, chat_message_data, _meta}} <- + {:build_object, + Builder.chat_message( + user, + recipient.ap_id, + content |> Formatter.html_escape("text/plain") + )}, + {_, {:ok, create_activity_data, _meta}} <- + {:build_create_activity, Builder.create(user, chat_message_data, [recipient.ap_id])}, + {_, {:ok, %Activity{} = activity, _meta}} <- + {:common_pipeline, + Pipeline.common_pipeline(create_activity_data, + local: true + )} do + {:ok, activity} + else + {:content_length, false} -> {:error, :content_too_long} + e -> e end end diff --git a/test/web/activity_pub/transmogrifier/chat_message_test.exs b/test/web/activity_pub/transmogrifier/chat_message_test.exs index ceaee614c..c5600e84e 100644 --- a/test/web/activity_pub/transmogrifier/chat_message_test.exs +++ b/test/web/activity_pub/transmogrifier/chat_message_test.exs @@ -68,6 +68,7 @@ test "it inserts it and creates a chat" do recipient = insert(:user, ap_id: List.first(data["to"]), local: true) {:ok, %Activity{} = activity} = Transmogrifier.handle_incoming(data) + assert activity.local == false assert activity.actor == author.ap_id assert activity.recipients == [recipient.ap_id, author.ap_id] From 53e3063bd041409da83483e8f5c47030bf346123 Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 29 Apr 2020 13:52:23 +0200 Subject: [PATCH 065/529] Transmogrifier: Remove ChatMessageHandling module. --- lib/pleroma/web/activity_pub/side_effects.ex | 13 ++++-------- .../web/activity_pub/transmogrifier.ex | 14 +++++++++---- .../transmogrifier/chat_message_handling.ex | 20 ------------------- 3 files changed, 14 insertions(+), 33 deletions(-) delete mode 100644 lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex diff --git a/lib/pleroma/web/activity_pub/side_effects.ex b/lib/pleroma/web/activity_pub/side_effects.ex index 794a46267..e394c75d7 100644 --- a/lib/pleroma/web/activity_pub/side_effects.ex +++ b/lib/pleroma/web/activity_pub/side_effects.ex @@ -19,17 +19,12 @@ def handle(object, meta \\ []) # - Add like to object # - Set up notification def handle(%{data: %{"type" => "Like"}} = object, meta) do - {:ok, result} = - Pleroma.Repo.transaction(fn -> - liked_object = Object.get_by_ap_id(object.data["object"]) - Utils.add_like_to_object(object, liked_object) + liked_object = Object.get_by_ap_id(object.data["object"]) + Utils.add_like_to_object(object, liked_object) - Notification.create_notifications(object) + Notification.create_notifications(object) - {:ok, object, meta} - end) - - result + {:ok, object, meta} end # Tasks this handles diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 66975cf7d..3c2fe73a3 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -16,7 +16,6 @@ defmodule Pleroma.Web.ActivityPub.Transmogrifier do alias Pleroma.Web.ActivityPub.ObjectValidator alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator alias Pleroma.Web.ActivityPub.Pipeline - alias Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageHandling alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.ActivityPub.Visibility alias Pleroma.Web.Federator @@ -646,9 +645,16 @@ def handle_incoming( def handle_incoming( %{"type" => "Create", "object" => %{"type" => "ChatMessage"}} = data, - options - ), - do: ChatMessageHandling.handle_incoming(data, options) + _options + ) do + case Pipeline.common_pipeline(data, local: false) do + {:ok, activity, _} -> + {:ok, activity} + + e -> + e + end + end def handle_incoming(%{"type" => "Like"} = data, _options) do with {_, {:ok, cast_data_sym}} <- diff --git a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex b/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex deleted file mode 100644 index b1cc93481..000000000 --- a/lib/pleroma/web/activity_pub/transmogrifier/chat_message_handling.ex +++ /dev/null @@ -1,20 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.ActivityPub.Transmogrifier.ChatMessageHandling do - alias Pleroma.Web.ActivityPub.Pipeline - - def handle_incoming( - %{"type" => "Create", "object" => %{"type" => "ChatMessage"}} = data, - _options - ) do - case Pipeline.common_pipeline(data, local: false) do - {:ok, activity, _} -> - {:ok, activity} - - e -> - e - end - end -end From a88734a0a22810bcc47c17fc9120ef7881d670d8 Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 29 Apr 2020 14:25:33 +0200 Subject: [PATCH 066/529] Transmogrifier: Fetch missing actors for chatmessages. --- .../web/activity_pub/object_validator.ex | 9 ++++- .../create_chat_message_validator.ex | 2 + .../web/activity_pub/transmogrifier.ex | 8 ++-- .../transmogrifier/chat_message_test.exs | 40 ++++++++++++++++--- 4 files changed, 49 insertions(+), 10 deletions(-) diff --git a/lib/pleroma/web/activity_pub/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex index bada3509d..50904ed59 100644 --- a/lib/pleroma/web/activity_pub/object_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validator.ex @@ -11,6 +11,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidator do alias Pleroma.Object alias Pleroma.User + alias Pleroma.Web.ActivityPub.ObjectValidators.Types alias Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator alias Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator @@ -67,8 +68,14 @@ def stringify_keys(object) do |> Map.new(fn {key, val} -> {to_string(key), val} end) end + def fetch_actor(object) do + with {:ok, actor} <- Types.ObjectID.cast(object["actor"]) do + User.get_or_fetch_by_ap_id(actor) + end + end + def fetch_actor_and_object(object) do - User.get_or_fetch_by_ap_id(object["actor"]) + fetch_actor(object) Object.normalize(object["object"]) :ok end diff --git a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex index dfc91bf71..88e903182 100644 --- a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex @@ -12,6 +12,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator do alias Pleroma.Web.ActivityPub.ObjectValidators.Types import Ecto.Changeset + import Pleroma.Web.ActivityPub.ObjectValidators.CommonValidations @primary_key false @@ -42,6 +43,7 @@ def validate_data(cng, meta \\ []) do cng |> validate_required([:id, :actor, :to, :type, :object]) |> validate_inclusion(:type, ["Create"]) + |> validate_actor_presence() |> validate_recipients_match(meta) |> validate_object_nonexistence() end diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 3c2fe73a3..6dbd3f588 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -647,10 +647,10 @@ def handle_incoming( %{"type" => "Create", "object" => %{"type" => "ChatMessage"}} = data, _options ) do - case Pipeline.common_pipeline(data, local: false) do - {:ok, activity, _} -> - {:ok, activity} - + with {:ok, %User{}} <- ObjectValidator.fetch_actor(data), + {:ok, activity, _} <- Pipeline.common_pipeline(data, local: false) do + {:ok, activity} + else e -> e end diff --git a/test/web/activity_pub/transmogrifier/chat_message_test.exs b/test/web/activity_pub/transmogrifier/chat_message_test.exs index c5600e84e..85644d787 100644 --- a/test/web/activity_pub/transmogrifier/chat_message_test.exs +++ b/test/web/activity_pub/transmogrifier/chat_message_test.exs @@ -26,8 +26,15 @@ test "it rejects messages that don't contain content" do data |> Map.put("object", object) - _author = insert(:user, ap_id: data["actor"], local: false) - _recipient = insert(:user, ap_id: List.first(data["to"]), local: true) + _author = + insert(:user, ap_id: data["actor"], local: false, last_refreshed_at: DateTime.utc_now()) + + _recipient = + insert(:user, + ap_id: List.first(data["to"]), + local: true, + last_refreshed_at: DateTime.utc_now() + ) {:error, _} = Transmogrifier.handle_incoming(data) end @@ -37,8 +44,15 @@ test "it rejects messages that don't concern local users" do File.read!("test/fixtures/create-chat-message.json") |> Poison.decode!() - _author = insert(:user, ap_id: data["actor"], local: false) - _recipient = insert(:user, ap_id: List.first(data["to"]), local: false) + _author = + insert(:user, ap_id: data["actor"], local: false, last_refreshed_at: DateTime.utc_now()) + + _recipient = + insert(:user, + ap_id: List.first(data["to"]), + local: false, + last_refreshed_at: DateTime.utc_now() + ) {:error, _} = Transmogrifier.handle_incoming(data) end @@ -59,12 +73,28 @@ test "it rejects messages where the `to` field of activity and object don't matc refute Object.get_by_ap_id(data["object"]["id"]) end + test "it fetches the actor if they aren't in our system" do + Tesla.Mock.mock(fn env -> apply(HttpRequestMock, :request, [env]) end) + + data = + File.read!("test/fixtures/create-chat-message.json") + |> Poison.decode!() + |> Map.put("actor", "http://mastodon.example.org/users/admin") + |> put_in(["object", "actor"], "http://mastodon.example.org/users/admin") + + _recipient = insert(:user, ap_id: List.first(data["to"]), local: true) + + {:ok, %Activity{} = _activity} = Transmogrifier.handle_incoming(data) + end + test "it inserts it and creates a chat" do data = File.read!("test/fixtures/create-chat-message.json") |> Poison.decode!() - author = insert(:user, ap_id: data["actor"], local: false) + author = + insert(:user, ap_id: data["actor"], local: false, last_refreshed_at: DateTime.utc_now()) + recipient = insert(:user, ap_id: List.first(data["to"]), local: true) {:ok, %Activity{} = activity} = Transmogrifier.handle_incoming(data) From 20587aa931262a5479c98f13450311a135c5d356 Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 29 Apr 2020 14:53:53 +0200 Subject: [PATCH 067/529] Chat message creation: Check actor. --- .../create_chat_message_validator.ex | 14 ++++++++++++++ test/web/activity_pub/object_validator_test.exs | 13 +++++++++++++ 2 files changed, 27 insertions(+) diff --git a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex index 88e903182..fc582400b 100644 --- a/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/create_chat_message_validator.ex @@ -45,6 +45,7 @@ def validate_data(cng, meta \\ []) do |> validate_inclusion(:type, ["Create"]) |> validate_actor_presence() |> validate_recipients_match(meta) + |> validate_actors_match(meta) |> validate_object_nonexistence() end @@ -59,6 +60,19 @@ def validate_object_nonexistence(cng) do end) end + def validate_actors_match(cng, meta) do + object_actor = meta[:object_data]["actor"] + + cng + |> validate_change(:actor, fn :actor, actor -> + if actor == object_actor do + [] + else + [{:actor, "Actor doesn't match with object actor"}] + end + end) + end + def validate_recipients_match(cng, meta) do object_recipients = meta[:object_data]["to"] || [] diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index 41f67964a..475b7bb21 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -23,6 +23,19 @@ test "it is invalid if the object already exists" do assert {:object, {"The object to create already exists", []}} in cng.errors end + + test "it is invalid if the object data has a different `to` or `actor` field" do + user = insert(:user) + recipient = insert(:user) + {:ok, object_data, _} = Builder.chat_message(recipient, user.ap_id, "Hey") + + {:ok, create_data, _} = Builder.create(user, object_data, [recipient.ap_id]) + + {:error, cng} = ObjectValidator.validate(create_data, []) + + assert {:to, {"Recipients don't match with object recipients", []}} in cng.errors + assert {:actor, {"Actor doesn't match with object actor", []}} in cng.errors + end end describe "chat messages" do From 528ea779a61d12f74ee9669bbd28783bf66aa5cc Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 29 Apr 2020 17:56:24 +0000 Subject: [PATCH 068/529] Apply suggestion to docs/API/chats.md --- docs/API/chats.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/API/chats.md b/docs/API/chats.md index 24c4b4d06..26e83570e 100644 --- a/docs/API/chats.md +++ b/docs/API/chats.md @@ -99,7 +99,7 @@ For a given Chat id, you can get the associated messages with `GET /api/v1/pleroma/chats/{id}/messages` This will return all messages, sorted by most recent to least recent. The usual -pagination options are implemented +pagination options are implemented. Returned data: From 89a6c340812a53daf00a203dacd8e12a25eb7ad2 Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 29 Apr 2020 18:14:34 +0000 Subject: [PATCH 069/529] Apply suggestion to lib/pleroma/chat.ex --- lib/pleroma/chat.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index b8545063a..6b1f832ce 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -29,7 +29,7 @@ def creation_cng(struct, params) do |> validate_change(:recipient, fn :recipient, recipient -> case User.get_cached_by_ap_id(recipient) do - nil -> [recipient: "must a an existing user"] + nil -> [recipient: "must be an existing user"] _ -> [] end end) From 589ce1e96bcaba0bd2d864d3528992f10f4cf5f7 Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 29 Apr 2020 19:47:16 +0000 Subject: [PATCH 070/529] Apply suggestion to lib/pleroma/web/activity_pub/transmogrifier.ex --- lib/pleroma/web/activity_pub/transmogrifier.ex | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 6dbd3f588..d3a2e0362 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -650,9 +650,6 @@ def handle_incoming( with {:ok, %User{}} <- ObjectValidator.fetch_actor(data), {:ok, activity, _} <- Pipeline.common_pipeline(data, local: false) do {:ok, activity} - else - e -> - e end end From 145d35ff70a59efcff881315d5f1f7a0248a34be Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 29 Apr 2020 19:49:03 +0000 Subject: [PATCH 071/529] Apply suggestion to lib/pleroma/web/pleroma_api/controllers/chat_controller.ex --- lib/pleroma/web/pleroma_api/controllers/chat_controller.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 8654f4295..175257921 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -31,7 +31,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do %{scopes: ["read:statuses"]} when action in [:messages, :index] ) - plug(OpenApiSpex.Plug.CastAndValidate) + plug(OpenApiSpex.Plug.CastAndValidate, render_error: Pleroma.Web.ApiSpec.RenderError) defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.ChatOperation From b68d56c8168f27f63e157d43558e22f7c221c0e2 Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 29 Apr 2020 19:49:13 +0000 Subject: [PATCH 072/529] Apply suggestion to lib/pleroma/web/api_spec/schemas/chat_message_response.ex --- lib/pleroma/web/api_spec/schemas/chat_message_response.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/api_spec/schemas/chat_message_response.ex b/lib/pleroma/web/api_spec/schemas/chat_message_response.ex index b7a662cbb..707c9808b 100644 --- a/lib/pleroma/web/api_spec/schemas/chat_message_response.ex +++ b/lib/pleroma/web/api_spec/schemas/chat_message_response.ex @@ -16,7 +16,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse do account_id: %Schema{type: :string, description: "The Mastodon API id of the actor"}, chat_id: %Schema{type: :string}, content: %Schema{type: :string}, - created_at: %Schema{type: :string, format: :datetime}, + created_at: %Schema{type: :string, format: :"date-time"}, emojis: %Schema{type: :array} }, example: %{ From ad2182bbd231b475c5bfc70485f35ad1f8841912 Mon Sep 17 00:00:00 2001 From: lain Date: Thu, 30 Apr 2020 11:38:26 +0000 Subject: [PATCH 073/529] Apply suggestion to lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex --- lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex b/lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex index 4dafcda43..8e1b7af14 100644 --- a/lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex +++ b/lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex @@ -13,6 +13,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest do properties: %{ content: %Schema{type: :string, description: "The content of your message"} }, + required: [:content], example: %{ "content" => "Hey wanna buy feet pics?" } From d5cdc907e3fda14c2ce78ddbb124739441330ecc Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Fri, 1 May 2020 18:45:24 +0300 Subject: [PATCH 074/529] Restricted embedding of relationships where applicable (statuses / notifications / accounts rendering). Added support for :skip_notifications for accounts listing (index.json). Adjusted tests. --- benchmarks/load_testing/fetcher.ex | 21 +++++---------- config/config.exs | 2 -- lib/mix/tasks/pleroma/benchmark.ex | 3 +-- .../web/admin_api/admin_api_controller.ex | 6 ++--- .../web/admin_api/views/report_view.ex | 9 ++++--- .../web/admin_api/views/status_view.ex | 6 +++-- lib/pleroma/web/chat_channel.ex | 8 +++++- lib/pleroma/web/controller_helper.ex | 11 ++------ .../controllers/search_controller.ex | 2 +- .../web/mastodon_api/views/account_view.ex | 7 +++-- .../mastodon_api/views/notification_view.ex | 4 +++ .../web/mastodon_api/views/status_view.ex | 6 +++++ .../controllers/pleroma_api_controller.ex | 8 +++++- .../notification_controller_test.exs | 4 +-- .../controllers/status_controller_test.exs | 2 +- .../controllers/timeline_controller_test.exs | 26 +++++++++++++------ .../views/notification_view_test.exs | 25 +++++++++++++----- .../mastodon_api/views/status_view_test.exs | 14 ++++------ 18 files changed, 94 insertions(+), 70 deletions(-) diff --git a/benchmarks/load_testing/fetcher.ex b/benchmarks/load_testing/fetcher.ex index 12c30f6f5..0de4924bc 100644 --- a/benchmarks/load_testing/fetcher.ex +++ b/benchmarks/load_testing/fetcher.ex @@ -387,56 +387,47 @@ defp render_timelines(user) do favourites = ActivityPub.fetch_favourites(user) - output_relationships = - !!Pleroma.Config.get([:extensions, :output_relationships_in_statuses_by_default]) - Benchee.run( %{ "Rendering home timeline" => fn -> StatusView.render("index.json", %{ activities: home_activities, for: user, - as: :activity, - skip_relationships: !output_relationships + as: :activity }) end, "Rendering direct timeline" => fn -> StatusView.render("index.json", %{ activities: direct_activities, for: user, - as: :activity, - skip_relationships: !output_relationships + as: :activity }) end, "Rendering public timeline" => fn -> StatusView.render("index.json", %{ activities: public_activities, for: user, - as: :activity, - skip_relationships: !output_relationships + as: :activity }) end, "Rendering tag timeline" => fn -> StatusView.render("index.json", %{ activities: tag_activities, for: user, - as: :activity, - skip_relationships: !output_relationships + as: :activity }) end, "Rendering notifications" => fn -> Pleroma.Web.MastodonAPI.NotificationView.render("index.json", %{ notifications: notifications, - for: user, - skip_relationships: !output_relationships + for: user }) end, "Rendering favourites timeline" => fn -> StatusView.render("index.json", %{ activities: favourites, for: user, - as: :activity, - skip_relationships: !output_relationships + as: :activity }) end }, diff --git a/config/config.exs b/config/config.exs index 2e538c4be..d698e6028 100644 --- a/config/config.exs +++ b/config/config.exs @@ -240,8 +240,6 @@ extended_nickname_format: true, cleanup_attachments: false -config :pleroma, :extensions, output_relationships_in_statuses_by_default: true - config :pleroma, :feed, post_title: %{ max_length: 100, diff --git a/lib/mix/tasks/pleroma/benchmark.ex b/lib/mix/tasks/pleroma/benchmark.ex index 6ab7fe8ef..dd2b9c8f2 100644 --- a/lib/mix/tasks/pleroma/benchmark.ex +++ b/lib/mix/tasks/pleroma/benchmark.ex @@ -67,8 +67,7 @@ def run(["render_timeline", nickname | _] = args) do Pleroma.Web.MastodonAPI.StatusView.render("index.json", %{ activities: activities, for: user, - as: :activity, - skip_relationships: true + as: :activity }) end }, diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index 816c11e01..e0e1a2ceb 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -280,7 +280,7 @@ def list_instance_statuses(conn, %{"instance" => instance} = params) do conn |> put_view(Pleroma.Web.AdminAPI.StatusView) - |> render("index.json", %{activities: activities, as: :activity, skip_relationships: false}) + |> render("index.json", %{activities: activities, as: :activity}) end def list_user_statuses(conn, %{"nickname" => nickname} = params) do @@ -299,7 +299,7 @@ def list_user_statuses(conn, %{"nickname" => nickname} = params) do conn |> put_view(StatusView) - |> render("index.json", %{activities: activities, as: :activity, skip_relationships: false}) + |> render("index.json", %{activities: activities, as: :activity}) else _ -> {:error, :not_found} end @@ -834,7 +834,7 @@ def list_statuses(%{assigns: %{user: _admin}} = conn, params) do conn |> put_view(Pleroma.Web.AdminAPI.StatusView) - |> render("index.json", %{activities: activities, as: :activity, skip_relationships: false}) + |> render("index.json", %{activities: activities, as: :activity}) end def status_update(%{assigns: %{user: admin}} = conn, %{"id" => id} = params) do diff --git a/lib/pleroma/web/admin_api/views/report_view.ex b/lib/pleroma/web/admin_api/views/report_view.ex index d50969b2a..215e31100 100644 --- a/lib/pleroma/web/admin_api/views/report_view.ex +++ b/lib/pleroma/web/admin_api/views/report_view.ex @@ -7,8 +7,10 @@ defmodule Pleroma.Web.AdminAPI.ReportView do alias Pleroma.HTML alias Pleroma.User + alias Pleroma.Web.AdminAPI alias Pleroma.Web.AdminAPI.Report alias Pleroma.Web.CommonAPI.Utils + alias Pleroma.Web.MastodonAPI alias Pleroma.Web.MastodonAPI.StatusView def render("index.json", %{reports: reports}) do @@ -41,8 +43,7 @@ def render("show.json", %{report: report, user: user, account: account, statuses statuses: StatusView.render("index.json", %{ activities: statuses, - as: :activity, - skip_relationships: false + as: :activity }), state: report.data["state"], notes: render(__MODULE__, "index_notes.json", %{notes: report.report_notes}) @@ -72,8 +73,8 @@ def render("show_note.json", %{ end defp merge_account_views(%User{} = user) do - Pleroma.Web.MastodonAPI.AccountView.render("show.json", %{user: user}) - |> Map.merge(Pleroma.Web.AdminAPI.AccountView.render("show.json", %{user: user})) + MastodonAPI.AccountView.render("show.json", %{user: user, skip_relationships: true}) + |> Map.merge(AdminAPI.AccountView.render("show.json", %{user: user})) end defp merge_account_views(_), do: %{} diff --git a/lib/pleroma/web/admin_api/views/status_view.ex b/lib/pleroma/web/admin_api/views/status_view.ex index 3637dee24..a76fad990 100644 --- a/lib/pleroma/web/admin_api/views/status_view.ex +++ b/lib/pleroma/web/admin_api/views/status_view.ex @@ -8,6 +8,8 @@ defmodule Pleroma.Web.AdminAPI.StatusView do require Pleroma.Constants alias Pleroma.User + alias Pleroma.Web.AdminAPI + alias Pleroma.Web.MastodonAPI alias Pleroma.Web.MastodonAPI.StatusView def render("index.json", opts) do @@ -22,8 +24,8 @@ def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} end defp merge_account_views(%User{} = user) do - Pleroma.Web.MastodonAPI.AccountView.render("show.json", %{user: user}) - |> Map.merge(Pleroma.Web.AdminAPI.AccountView.render("show.json", %{user: user})) + MastodonAPI.AccountView.render("show.json", %{user: user, skip_relationships: true}) + |> Map.merge(AdminAPI.AccountView.render("show.json", %{user: user})) end defp merge_account_views(_), do: %{} diff --git a/lib/pleroma/web/chat_channel.ex b/lib/pleroma/web/chat_channel.ex index 38ec774f7..3df8dc0f1 100644 --- a/lib/pleroma/web/chat_channel.ex +++ b/lib/pleroma/web/chat_channel.ex @@ -22,7 +22,13 @@ def handle_in("new_msg", %{"text" => text}, %{assigns: %{user_name: user_name}} if String.length(text) in 1..Pleroma.Config.get([:instance, :chat_limit]) do author = User.get_cached_by_nickname(user_name) - author = Pleroma.Web.MastodonAPI.AccountView.render("show.json", user: author) + + author = + Pleroma.Web.MastodonAPI.AccountView.render("show.json", + user: author, + skip_relationships: true + ) + message = ChatChannelState.add_message(%{text: text, author: author}) broadcast!(socket, "new_msg", message) diff --git a/lib/pleroma/web/controller_helper.ex b/lib/pleroma/web/controller_helper.ex index eb97ae975..f0b4c087a 100644 --- a/lib/pleroma/web/controller_helper.ex +++ b/lib/pleroma/web/controller_helper.ex @@ -5,8 +5,6 @@ defmodule Pleroma.Web.ControllerHelper do use Pleroma.Web, :controller - alias Pleroma.Config - # As in Mastodon API, per https://api.rubyonrails.org/classes/ActiveModel/Type/Boolean.html @falsy_param_values [false, 0, "0", "f", "F", "false", "False", "FALSE", "off", "OFF"] @@ -106,13 +104,8 @@ def put_if_exist(map, _key, nil), do: map def put_if_exist(map, key, value), do: Map.put(map, key, value) - @doc "Whether to skip rendering `[:account][:pleroma][:relationship]`for statuses/notifications" + @doc "Whether to skip `account.pleroma.relationship` rendering for statuses/notifications" def skip_relationships?(params) do - if Config.get([:extensions, :output_relationships_in_statuses_by_default]) do - false - else - # BREAKING: older PleromaFE versions do not send this param but _do_ expect relationships. - not truthy_param?(params["with_relationships"]) - end + not truthy_param?(params["with_relationships"]) end end diff --git a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex index cd49da6ad..85a316762 100644 --- a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex @@ -86,7 +86,7 @@ defp resource_search(_, "accounts", query, options) do users: accounts, for: options[:for_user], as: :user, - skip_relationships: false + skip_relationships: true ) end diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex index b4b61e74c..6d17c2d02 100644 --- a/lib/pleroma/web/mastodon_api/views/account_view.ex +++ b/lib/pleroma/web/mastodon_api/views/account_view.ex @@ -13,15 +13,16 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do alias Pleroma.Web.MediaProxy def render("index.json", %{users: users} = opts) do + opts = Map.merge(%{skip_relationships: false}, opts) + reading_user = opts[:for] - # Note: :skip_relationships option is currently intentionally not supported for accounts relationships_opt = cond do Map.has_key?(opts, :relationships) -> opts[:relationships] - is_nil(reading_user) -> + is_nil(reading_user) || opts[:skip_relationships] -> UserRelationship.view_relationships_option(nil, []) true -> @@ -158,6 +159,8 @@ def render("relationships.json", %{user: user, targets: targets} = opts) do end defp do_render("show.json", %{user: user} = opts) do + opts = Map.merge(%{skip_relationships: false}, opts) + user = User.sanitize_html(user, User.html_filter_policy(opts[:for])) display_name = user.name || user.nickname diff --git a/lib/pleroma/web/mastodon_api/views/notification_view.ex b/lib/pleroma/web/mastodon_api/views/notification_view.ex index 4da1ab67f..e518bdedb 100644 --- a/lib/pleroma/web/mastodon_api/views/notification_view.ex +++ b/lib/pleroma/web/mastodon_api/views/notification_view.ex @@ -15,6 +15,8 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do alias Pleroma.Web.MastodonAPI.StatusView def render("index.json", %{notifications: notifications, for: reading_user} = opts) do + opts = Map.merge(%{skip_relationships: true}, opts) + activities = Enum.map(notifications, & &1.activity) parent_activities = @@ -71,6 +73,8 @@ def render( for: reading_user } = opts ) do + opts = Map.merge(%{skip_relationships: true}, opts) + actor = User.get_cached_by_ap_id(activity.data["actor"]) parent_activity_fn = fn -> diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index 24167f66f..0bcc84d44 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -76,6 +76,8 @@ defp reblogged?(activity, user) do end def render("index.json", opts) do + opts = Map.merge(%{skip_relationships: true}, opts) + reading_user = opts[:for] # To do: check AdminAPIControllerTest on the reasons behind nil activities in the list @@ -125,6 +127,8 @@ def render( "show.json", %{activity: %{data: %{"type" => "Announce", "object" => _object}} = activity} = opts ) do + opts = Map.merge(%{skip_relationships: true}, opts) + user = get_user(activity.data["actor"]) created_at = Utils.to_masto_date(activity.data["published"]) activity_object = Object.normalize(activity) @@ -198,6 +202,8 @@ def render( end def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} = opts) do + opts = Map.merge(%{skip_relationships: true}, opts) + object = Object.normalize(activity) user = get_user(activity.data["actor"]) diff --git a/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex b/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex index 2c1874051..f3ac17a66 100644 --- a/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex @@ -66,7 +66,13 @@ def emoji_reactions_by(%{assigns: %{user: user}} = conn, %{"id" => activity_id} %{ name: emoji, count: length(users), - accounts: AccountView.render("index.json", %{users: users, for: user, as: :user}), + accounts: + AccountView.render("index.json", %{ + users: users, + for: user, + as: :user, + skip_relationships: true + }), me: !!(user && user.ap_id in user_ap_ids) } end diff --git a/test/web/mastodon_api/controllers/notification_controller_test.exs b/test/web/mastodon_api/controllers/notification_controller_test.exs index db380f76a..e2d98ef3e 100644 --- a/test/web/mastodon_api/controllers/notification_controller_test.exs +++ b/test/web/mastodon_api/controllers/notification_controller_test.exs @@ -12,9 +12,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationControllerTest do import Pleroma.Factory - test "does NOT render account/pleroma/relationship if this is disabled by default" do - clear_config([:extensions, :output_relationships_in_statuses_by_default], false) - + test "does NOT render account/pleroma/relationship by default" do %{user: user, conn: conn} = oauth_access(["read:notifications"]) other_user = insert(:user) diff --git a/test/web/mastodon_api/controllers/status_controller_test.exs b/test/web/mastodon_api/controllers/status_controller_test.exs index 85068edd0..00e026087 100644 --- a/test/web/mastodon_api/controllers/status_controller_test.exs +++ b/test/web/mastodon_api/controllers/status_controller_test.exs @@ -1058,7 +1058,7 @@ test "replaces missing description with an empty string", %{conn: conn, user: us end test "bookmarks" do - bookmarks_uri = "/api/v1/bookmarks?with_relationships=true" + bookmarks_uri = "/api/v1/bookmarks" %{conn: conn} = oauth_access(["write:bookmarks", "read:bookmarks"]) author = insert(:user) diff --git a/test/web/mastodon_api/controllers/timeline_controller_test.exs b/test/web/mastodon_api/controllers/timeline_controller_test.exs index 06efdc901..b8bb83af7 100644 --- a/test/web/mastodon_api/controllers/timeline_controller_test.exs +++ b/test/web/mastodon_api/controllers/timeline_controller_test.exs @@ -20,12 +20,10 @@ defmodule Pleroma.Web.MastodonAPI.TimelineControllerTest do describe "home" do setup do: oauth_access(["read:statuses"]) - test "does NOT render account/pleroma/relationship if this is disabled by default", %{ + test "does NOT render account/pleroma/relationship by default", %{ user: user, conn: conn } do - clear_config([:extensions, :output_relationships_in_statuses_by_default], false) - other_user = insert(:user) {:ok, _} = CommonAPI.post(other_user, %{"status" => "hi @#{user.nickname}"}) @@ -41,7 +39,7 @@ test "does NOT render account/pleroma/relationship if this is disabled by defaul end) end - test "the home timeline", %{user: user, conn: conn} do + test "embeds account relationships with `with_relationships=true`", %{user: user, conn: conn} do uri = "/api/v1/timelines/home?with_relationships=true" following = insert(:user, nickname: "followed") @@ -69,13 +67,19 @@ test "the home timeline", %{user: user, conn: conn} do } } }, - "account" => %{"pleroma" => %{"relationship" => %{"following" => true}}} + "account" => %{ + "pleroma" => %{ + "relationship" => %{"following" => true} + } + } }, %{ "content" => "post", "account" => %{ "acct" => "followed", - "pleroma" => %{"relationship" => %{"following" => true}} + "pleroma" => %{ + "relationship" => %{"following" => true} + } } } ] = json_response(ret_conn, :ok) @@ -95,13 +99,19 @@ test "the home timeline", %{user: user, conn: conn} do } } }, - "account" => %{"pleroma" => %{"relationship" => %{"following" => true}}} + "account" => %{ + "pleroma" => %{ + "relationship" => %{"following" => true} + } + } }, %{ "content" => "post", "account" => %{ "acct" => "followed", - "pleroma" => %{"relationship" => %{"following" => true}} + "pleroma" => %{ + "relationship" => %{"following" => true} + } } } ] = json_response(ret_conn, :ok) diff --git a/test/web/mastodon_api/views/notification_view_test.exs b/test/web/mastodon_api/views/notification_view_test.exs index c3ec9dfec..e1f9c3ac4 100644 --- a/test/web/mastodon_api/views/notification_view_test.exs +++ b/test/web/mastodon_api/views/notification_view_test.exs @@ -42,7 +42,12 @@ test "Mention notification" do id: to_string(notification.id), pleroma: %{is_seen: false}, type: "mention", - account: AccountView.render("show.json", %{user: user, for: mentioned_user}), + account: + AccountView.render("show.json", %{ + user: user, + for: mentioned_user, + skip_relationships: true + }), status: StatusView.render("show.json", %{activity: activity, for: mentioned_user}), created_at: Utils.to_masto_date(notification.inserted_at) } @@ -62,7 +67,8 @@ test "Favourite notification" do id: to_string(notification.id), pleroma: %{is_seen: false}, type: "favourite", - account: AccountView.render("show.json", %{user: another_user, for: user}), + account: + AccountView.render("show.json", %{user: another_user, for: user, skip_relationships: true}), status: StatusView.render("show.json", %{activity: create_activity, for: user}), created_at: Utils.to_masto_date(notification.inserted_at) } @@ -82,7 +88,8 @@ test "Reblog notification" do id: to_string(notification.id), pleroma: %{is_seen: false}, type: "reblog", - account: AccountView.render("show.json", %{user: another_user, for: user}), + account: + AccountView.render("show.json", %{user: another_user, for: user, skip_relationships: true}), status: StatusView.render("show.json", %{activity: reblog_activity, for: user}), created_at: Utils.to_masto_date(notification.inserted_at) } @@ -100,7 +107,8 @@ test "Follow notification" do id: to_string(notification.id), pleroma: %{is_seen: false}, type: "follow", - account: AccountView.render("show.json", %{user: follower, for: followed}), + account: + AccountView.render("show.json", %{user: follower, for: followed, skip_relationships: true}), created_at: Utils.to_masto_date(notification.inserted_at) } @@ -143,8 +151,10 @@ test "Move notification" do id: to_string(notification.id), pleroma: %{is_seen: false}, type: "move", - account: AccountView.render("show.json", %{user: old_user, for: follower}), - target: AccountView.render("show.json", %{user: new_user, for: follower}), + account: + AccountView.render("show.json", %{user: old_user, for: follower, skip_relationships: true}), + target: + AccountView.render("show.json", %{user: new_user, for: follower, skip_relationships: true}), created_at: Utils.to_masto_date(notification.inserted_at) } @@ -169,7 +179,8 @@ test "EmojiReact notification" do pleroma: %{is_seen: false}, type: "pleroma:emoji_reaction", emoji: "☕", - account: AccountView.render("show.json", %{user: other_user, for: user}), + account: + AccountView.render("show.json", %{user: other_user, for: user, skip_relationships: true}), status: StatusView.render("show.json", %{activity: activity, for: user}), created_at: Utils.to_masto_date(notification.inserted_at) } diff --git a/test/web/mastodon_api/views/status_view_test.exs b/test/web/mastodon_api/views/status_view_test.exs index 6791c2fb0..91d4ded2c 100644 --- a/test/web/mastodon_api/views/status_view_test.exs +++ b/test/web/mastodon_api/views/status_view_test.exs @@ -555,7 +555,7 @@ test "a rich media card with all relevant data renders correctly" do end end - test "embeds a relationship in the account" do + test "does not embed a relationship in the account" do user = insert(:user) other_user = insert(:user) @@ -566,11 +566,10 @@ test "embeds a relationship in the account" do result = StatusView.render("show.json", %{activity: activity, for: other_user}) - assert result[:account][:pleroma][:relationship] == - AccountView.render("relationship.json", %{user: other_user, target: user}) + assert result[:account][:pleroma][:relationship] == %{} end - test "embeds a relationship in the account in reposts" do + test "does not embed a relationship in the account in reposts" do user = insert(:user) other_user = insert(:user) @@ -583,11 +582,8 @@ test "embeds a relationship in the account in reposts" do result = StatusView.render("show.json", %{activity: activity, for: user}) - assert result[:account][:pleroma][:relationship] == - AccountView.render("relationship.json", %{user: user, target: other_user}) - - assert result[:reblog][:account][:pleroma][:relationship] == - AccountView.render("relationship.json", %{user: user, target: user}) + assert result[:account][:pleroma][:relationship] == %{} + assert result[:reblog][:account][:pleroma][:relationship] == %{} end test "visibility/list" do From a35b76431ce7c7bd7ed62374d781778922f0fe2f Mon Sep 17 00:00:00 2001 From: lain Date: Sun, 3 May 2020 14:58:24 +0200 Subject: [PATCH 075/529] Credo fixes. --- lib/pleroma/web/activity_pub/object_validator.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex index 50904ed59..20c7cceb6 100644 --- a/lib/pleroma/web/activity_pub/object_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validator.ex @@ -11,10 +11,10 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidator do alias Pleroma.Object alias Pleroma.User - alias Pleroma.Web.ActivityPub.ObjectValidators.Types alias Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator alias Pleroma.Web.ActivityPub.ObjectValidators.CreateChatMessageValidator alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.Types @spec validate(map(), keyword()) :: {:ok, map(), keyword()} | {:error, any()} def validate(object, meta) From 9249742f13445f47167d4b352751c49caf48aa8f Mon Sep 17 00:00:00 2001 From: lain Date: Sun, 3 May 2020 15:28:24 +0200 Subject: [PATCH 076/529] Types.Recipients: Simplify reducer. --- .../object_validators/types/recipients.ex | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex b/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex index 48fe61e1a..408e0f6ee 100644 --- a/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex +++ b/lib/pleroma/web/activity_pub/object_validators/types/recipients.ex @@ -11,11 +11,13 @@ def cast(object) when is_binary(object) do def cast(data) when is_list(data) do data - |> Enum.reduce({:ok, []}, fn element, acc -> - case {acc, ObjectID.cast(element)} do - {:error, _} -> :error - {_, :error} -> :error - {{:ok, list}, {:ok, id}} -> {:ok, [id | list]} + |> Enum.reduce_while({:ok, []}, fn element, {:ok, list} -> + case ObjectID.cast(element) do + {:ok, id} -> + {:cont, {:ok, [id | list]}} + + _ -> + {:halt, :error} end end) end From 651935f1379a1ed3c89e473803251310c13ea571 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 4 May 2020 11:08:00 +0200 Subject: [PATCH 077/529] Schemas: Refactor to our naming scheme. --- .../web/api_spec/operations/chat_operation.ex | 12 ++++++------ .../api_spec/schemas/{chat_response.ex => chat.ex} | 4 ++-- .../{chat_message_response.ex => chat_message.ex} | 4 ++-- 3 files changed, 10 insertions(+), 10 deletions(-) rename lib/pleroma/web/api_spec/schemas/{chat_response.ex => chat.ex} (96%) rename lib/pleroma/web/api_spec/schemas/{chat_message_response.ex => chat_message.ex} (91%) diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index 88b9db048..fc9d4608a 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -6,8 +6,8 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do alias OpenApiSpex.Operation alias OpenApiSpex.Schema alias Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest - alias Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse - alias Pleroma.Web.ApiSpec.Schemas.ChatResponse + alias Pleroma.Web.ApiSpec.Schemas.ChatMessage + alias Pleroma.Web.ApiSpec.Schemas.Chat import Pleroma.Web.ApiSpec.Helpers @@ -37,7 +37,7 @@ def create_operation do Operation.response( "The created or existing chat", "application/json", - ChatResponse + Chat ) }, security: [ @@ -103,7 +103,7 @@ def post_chat_message_operation do Operation.response( "The newly created ChatMessage", "application/json", - ChatMessageResponse + ChatMessage ) }, security: [ @@ -119,7 +119,7 @@ def chats_response do title: "ChatsResponse", description: "Response schema for multiple Chats", type: :array, - items: ChatResponse, + items: Chat, example: [ %{ "account" => %{ @@ -180,7 +180,7 @@ def chat_messages_response do title: "ChatMessagesResponse", description: "Response schema for multiple ChatMessages", type: :array, - items: ChatMessageResponse, + items: ChatMessage, example: [ %{ "emojis" => [ diff --git a/lib/pleroma/web/api_spec/schemas/chat_response.ex b/lib/pleroma/web/api_spec/schemas/chat.ex similarity index 96% rename from lib/pleroma/web/api_spec/schemas/chat_response.ex rename to lib/pleroma/web/api_spec/schemas/chat.ex index aa435165d..4d385d6ab 100644 --- a/lib/pleroma/web/api_spec/schemas/chat_response.ex +++ b/lib/pleroma/web/api_spec/schemas/chat.ex @@ -2,13 +2,13 @@ # Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only -defmodule Pleroma.Web.ApiSpec.Schemas.ChatResponse do +defmodule Pleroma.Web.ApiSpec.Schemas.Chat do alias OpenApiSpex.Schema require OpenApiSpex OpenApiSpex.schema(%{ - title: "ChatResponse", + title: "Chat", description: "Response schema for a Chat", type: :object, properties: %{ diff --git a/lib/pleroma/web/api_spec/schemas/chat_message_response.ex b/lib/pleroma/web/api_spec/schemas/chat_message.ex similarity index 91% rename from lib/pleroma/web/api_spec/schemas/chat_message_response.ex rename to lib/pleroma/web/api_spec/schemas/chat_message.ex index 707c9808b..7c93b0c83 100644 --- a/lib/pleroma/web/api_spec/schemas/chat_message_response.ex +++ b/lib/pleroma/web/api_spec/schemas/chat_message.ex @@ -2,13 +2,13 @@ # Copyright © 2017-2020 Pleroma Authors # SPDX-License-Identifier: AGPL-3.0-only -defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessageResponse do +defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessage do alias OpenApiSpex.Schema require OpenApiSpex OpenApiSpex.schema(%{ - title: "ChatMessageResponse", + title: "ChatMessage", description: "Response schema for a ChatMessage", type: :object, properties: %{ From dcf535fe770b638b68928f238f4d8d1cfd410524 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 4 May 2020 11:32:11 +0200 Subject: [PATCH 078/529] Credo fixes. --- lib/pleroma/web/api_spec/operations/chat_operation.ex | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index fc9d4608a..ad05f5ac7 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -5,9 +5,9 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do alias OpenApiSpex.Operation alias OpenApiSpex.Schema - alias Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest - alias Pleroma.Web.ApiSpec.Schemas.ChatMessage alias Pleroma.Web.ApiSpec.Schemas.Chat + alias Pleroma.Web.ApiSpec.Schemas.ChatMessage + alias Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest import Pleroma.Web.ApiSpec.Helpers From 57e6f2757afef8941fe3576dbe5e2014d2569c33 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 4 May 2020 12:47:23 +0200 Subject: [PATCH 079/529] ChatOperation: Make simple schema into inline schema --- .../web/api_spec/operations/chat_operation.ex | 18 ++++++++++++++-- .../schemas/chat_message_create_request.ex | 21 ------------------- 2 files changed, 16 insertions(+), 23 deletions(-) delete mode 100644 lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index ad05f5ac7..e8b5eff1f 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -7,7 +7,6 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do alias OpenApiSpex.Schema alias Pleroma.Web.ApiSpec.Schemas.Chat alias Pleroma.Web.ApiSpec.Schemas.ChatMessage - alias Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest import Pleroma.Web.ApiSpec.Helpers @@ -97,7 +96,7 @@ def post_chat_message_operation do parameters: [ Operation.parameter(:id, :path, :string, "The ID of the Chat") ], - requestBody: request_body("Parameters", ChatMessageCreateRequest, required: true), + requestBody: request_body("Parameters", chat_message_create(), required: true), responses: %{ 200 => Operation.response( @@ -208,4 +207,19 @@ def chat_messages_response do ] } end + + def chat_message_create do + %Schema{ + title: "ChatMessageCreateRequest", + description: "POST body for creating an chat message", + type: :object, + properties: %{ + content: %Schema{type: :string, description: "The content of your message"} + }, + required: [:content], + example: %{ + "content" => "Hey wanna buy feet pics?" + } + } + end end diff --git a/lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex b/lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex deleted file mode 100644 index 8e1b7af14..000000000 --- a/lib/pleroma/web/api_spec/schemas/chat_message_create_request.ex +++ /dev/null @@ -1,21 +0,0 @@ -# Pleroma: A lightweight social networking server -# Copyright © 2017-2020 Pleroma Authors -# SPDX-License-Identifier: AGPL-3.0-only - -defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessageCreateRequest do - alias OpenApiSpex.Schema - require OpenApiSpex - - OpenApiSpex.schema(%{ - title: "ChatMessageCreateRequest", - description: "POST body for creating an chat message", - type: :object, - properties: %{ - content: %Schema{type: :string, description: "The content of your message"} - }, - required: [:content], - example: %{ - "content" => "Hey wanna buy feet pics?" - } - }) -end From 30590cf46b88d0008c9a7163b8339aa9376f2378 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 4 May 2020 12:53:40 +0200 Subject: [PATCH 080/529] CommonAPI: Refactor for readability --- lib/pleroma/web/common_api/common_api.ex | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 1eda0b2f2..e428cc17d 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -26,9 +26,7 @@ defmodule Pleroma.Web.CommonAPI do require Logger def post_chat_message(%User{} = user, %User{} = recipient, content) do - with {_, true} <- - {:content_length, - String.length(content) <= Pleroma.Config.get([:instance, :chat_limit])}, + with :ok <- validate_chat_content_length(content), {_, {:ok, chat_message_data, _meta}} <- {:build_object, Builder.chat_message( @@ -44,9 +42,14 @@ def post_chat_message(%User{} = user, %User{} = recipient, content) do local: true )} do {:ok, activity} + end + end + + defp validate_chat_content_length(content) do + if String.length(content) <= Pleroma.Config.get([:instance, :chat_limit]) do + :ok else - {:content_length, false} -> {:error, :content_too_long} - e -> e + {:error, :content_too_long} end end From b04328c3dec4812dbaf3cd89baa2b888d7bb7fbf Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 4 May 2020 13:10:36 +0200 Subject: [PATCH 081/529] ChatController: Add mark_as_read --- lib/pleroma/chat.ex | 6 +++++ .../web/api_spec/operations/chat_operation.ex | 22 ++++++++++++++++++ .../controllers/chat_controller.ex | 11 ++++++++- lib/pleroma/web/router.ex | 1 + .../controllers/chat_controller_test.exs | 23 +++++++++++++++++++ 5 files changed, 62 insertions(+), 1 deletion(-) diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index 6b1f832ce..6008196e4 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -60,4 +60,10 @@ def bump_or_create(user_id, recipient) do conflict_target: [:user_id, :recipient] ) end + + def mark_as_read(chat) do + chat + |> change(%{unread: 0}) + |> Repo.update() + end end diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index e8b5eff1f..0fe0e07b2 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -16,6 +16,28 @@ def open_api_operation(action) do apply(__MODULE__, operation, []) end + def mark_as_read_operation do + %Operation{ + tags: ["chat"], + summary: "Mark all messages in the chat as read", + operationId: "ChatController.mark_as_read", + parameters: [Operation.parameter(:id, :path, :string, "The ID of the Chat")], + responses: %{ + 200 => + Operation.response( + "The updated chat", + "application/json", + Chat + ) + }, + security: [ + %{ + "oAuth" => ["write"] + } + ] + } + end + def create_operation do %Operation{ tags: ["chat"], diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 175257921..bedae73bd 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -23,7 +23,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do plug( OAuthScopesPlug, - %{scopes: ["write:statuses"]} when action in [:post_chat_message, :create] + %{scopes: ["write:statuses"]} when action in [:post_chat_message, :create, :mark_as_read] ) plug( @@ -51,6 +51,15 @@ def post_chat_message( end end + def mark_as_read(%{assigns: %{user: %{id: user_id}}} = conn, %{id: id}) do + with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id), + {:ok, chat} <- Chat.mark_as_read(chat) do + conn + |> put_view(ChatView) + |> render("show.json", chat: chat) + end + end + def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{id: id} = params) do with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id) do messages = diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 3a5063d4a..d6803e8ac 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -293,6 +293,7 @@ defmodule Pleroma.Web.Router do get("/chats", ChatController, :index) get("/chats/:id/messages", ChatController, :messages) post("/chats/:id/messages", ChatController, :post_chat_message) + post("/chats/:id/read", ChatController, :mark_as_read) end scope [] do diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index b1044574b..cdb2683c8 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -9,6 +9,29 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do import Pleroma.Factory + describe "POST /api/v1/pleroma/chats/:id/read" do + setup do: oauth_access(["write:statuses"]) + + test "it marks all messages in a chat as read", %{conn: conn, user: user} do + other_user = insert(:user) + + {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) + + assert chat.unread == 1 + + result = + conn + |> post("/api/v1/pleroma/chats/#{chat.id}/read") + |> json_response_and_validate_schema(200) + + assert result["unread"] == 0 + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + + assert chat.unread == 0 + end + end + describe "POST /api/v1/pleroma/chats/:id/messages" do setup do: oauth_access(["write:statuses"]) From 7ff2a7dae2fa651cea579aeca40e2c030d19fcd5 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 4 May 2020 13:12:21 +0200 Subject: [PATCH 082/529] Docs: Add Chat mark_as_read docs --- docs/API/chats.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/API/chats.md b/docs/API/chats.md index 26e83570e..8d925989c 100644 --- a/docs/API/chats.md +++ b/docs/API/chats.md @@ -66,6 +66,27 @@ Returned data: } ``` +### Marking a chat as read + +To set the `unread` count of a chat to 0, call + +`POST /api/v1/pleroma/chats/:id/read` + +Returned data: + +```json +{ + "account": { + "id": "someflakeid", + "username": "somenick", + ... + }, + "id" : "1", + "unread" : 0 +} +``` + + ### Getting a list of Chats `GET /api/v1/pleroma/chats` From 9637cded21cef1e6c531dd46d5f5245c4c3ed03c Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 5 May 2020 20:07:47 +0200 Subject: [PATCH 083/529] Chat: Fix missing chat id on second 'get' --- lib/pleroma/chat.ex | 3 ++- test/chat_test.exs | 13 ++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index 6008196e4..1a092b992 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -46,7 +46,8 @@ def get_or_create(user_id, recipient) do %__MODULE__{} |> creation_cng(%{user_id: user_id, recipient: recipient}) |> Repo.insert( - on_conflict: :nothing, + # Need to set something, otherwise we get nothing back at all + on_conflict: [set: [recipient: recipient]], returning: true, conflict_target: [:user_id, :recipient] ) diff --git a/test/chat_test.exs b/test/chat_test.exs index 952598c87..943e48111 100644 --- a/test/chat_test.exs +++ b/test/chat_test.exs @@ -26,13 +26,24 @@ test "it creates a chat for a user and recipient" do assert chat.id end - test "it returns a chat for a user and recipient if it already exists" do + test "it returns and bumps a chat for a user and recipient if it already exists" do user = insert(:user) other_user = insert(:user) {:ok, chat} = Chat.bump_or_create(user.id, other_user.ap_id) {:ok, chat_two} = Chat.bump_or_create(user.id, other_user.ap_id) + assert chat.id == chat_two.id + assert chat_two.unread == 2 + end + + test "it returns a chat for a user and recipient if it already exists" do + user = insert(:user) + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + {:ok, chat_two} = Chat.get_or_create(user.id, other_user.ap_id) + assert chat.id == chat_two.id end From 20baa2eaf04425cf0a2eebc84760be6c12ee7f51 Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 6 May 2020 16:12:36 +0200 Subject: [PATCH 084/529] ChatMessages: Add attachments. --- lib/pleroma/web/activity_pub/builder.ex | 33 ++++++--- .../web/activity_pub/object_validator.ex | 11 ++- .../object_validators/attachment_validator.ex | 72 +++++++++++++++++++ .../chat_message_validator.ex | 6 +- .../object_validators/url_object_validator.ex | 20 ++++++ .../web/api_spec/operations/chat_operation.ex | 3 +- .../web/api_spec/schemas/chat_message.ex | 6 +- lib/pleroma/web/common_api/common_api.ex | 6 +- .../controllers/chat_controller.ex | 6 +- .../pleroma_api/views/chat_message_view.ex | 5 +- .../activity_pub/object_validator_test.exs | 50 ++++++++++++- .../types/object_id_test.exs | 4 ++ .../controllers/chat_controller_test.exs | 27 +++++++ .../views/chat_message_view_test.exs | 12 +++- 14 files changed, 237 insertions(+), 24 deletions(-) create mode 100644 lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex create mode 100644 lib/pleroma/web/activity_pub/object_validators/url_object_validator.ex diff --git a/lib/pleroma/web/activity_pub/builder.ex b/lib/pleroma/web/activity_pub/builder.ex index 7f9c071b3..67e65c7b9 100644 --- a/lib/pleroma/web/activity_pub/builder.ex +++ b/lib/pleroma/web/activity_pub/builder.ex @@ -23,17 +23,28 @@ def create(actor, object, recipients) do }, []} end - def chat_message(actor, recipient, content) do - {:ok, - %{ - "id" => Utils.generate_object_id(), - "actor" => actor.ap_id, - "type" => "ChatMessage", - "to" => [recipient], - "content" => content, - "published" => DateTime.utc_now() |> DateTime.to_iso8601(), - "emoji" => Emoji.Formatter.get_emoji_map(content) - }, []} + def chat_message(actor, recipient, content, opts \\ []) do + basic = %{ + "id" => Utils.generate_object_id(), + "actor" => actor.ap_id, + "type" => "ChatMessage", + "to" => [recipient], + "content" => content, + "published" => DateTime.utc_now() |> DateTime.to_iso8601(), + "emoji" => Emoji.Formatter.get_emoji_map(content) + } + + case opts[:attachment] do + %Object{data: attachment_data} -> + { + :ok, + Map.put(basic, "attachment", attachment_data), + [] + } + + _ -> + {:ok, basic, []} + end end @spec like(User.t(), Object.t()) :: {:ok, map(), keyword()} diff --git a/lib/pleroma/web/activity_pub/object_validator.ex b/lib/pleroma/web/activity_pub/object_validator.ex index 20c7cceb6..d6c14f7b8 100644 --- a/lib/pleroma/web/activity_pub/object_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validator.ex @@ -63,11 +63,18 @@ def stringify_keys(%{__struct__: _} = object) do |> stringify_keys end - def stringify_keys(object) do + def stringify_keys(object) when is_map(object) do object - |> Map.new(fn {key, val} -> {to_string(key), val} end) + |> Map.new(fn {key, val} -> {to_string(key), stringify_keys(val)} end) end + def stringify_keys(object) when is_list(object) do + object + |> Enum.map(&stringify_keys/1) + end + + def stringify_keys(object), do: object + def fetch_actor(object) do with {:ok, actor} <- Types.ObjectID.cast(object["actor"]) do User.get_or_fetch_by_ap_id(actor) diff --git a/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex b/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex new file mode 100644 index 000000000..16ed49051 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/attachment_validator.ex @@ -0,0 +1,72 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator do + use Ecto.Schema + + alias Pleroma.Web.ActivityPub.ObjectValidators.UrlObjectValidator + + import Ecto.Changeset + + @primary_key false + embedded_schema do + field(:type, :string) + field(:mediaType, :string) + field(:name, :string) + + embeds_many(:url, UrlObjectValidator) + end + + def cast_and_validate(data) do + data + |> cast_data() + |> validate_data() + end + + def cast_data(data) do + %__MODULE__{} + |> changeset(data) + end + + def changeset(struct, data) do + data = + data + |> fix_media_type() + |> fix_url() + + struct + |> cast(data, [:type, :mediaType, :name]) + |> cast_embed(:url, required: true) + end + + def fix_media_type(data) do + data + |> Map.put_new("mediaType", data["mimeType"]) + end + + def fix_url(data) do + case data["url"] do + url when is_binary(url) -> + data + |> Map.put( + "url", + [ + %{ + "href" => url, + "type" => "Link", + "mediaType" => data["mediaType"] + } + ] + ) + + _ -> + data + end + end + + def validate_data(cng) do + cng + |> validate_required([:mediaType, :url, :type]) + end +end diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex index e87c1ac2e..99ffeba28 100644 --- a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -7,6 +7,7 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do alias Pleroma.User alias Pleroma.Web.ActivityPub.ObjectValidators.Types + alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator import Ecto.Changeset import Pleroma.Web.ActivityPub.Transmogrifier, only: [fix_emoji: 1] @@ -22,6 +23,8 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do field(:actor, Types.ObjectID) field(:published, Types.DateTime) field(:emoji, :map, default: %{}) + + embeds_one(:attachment, AttachmentValidator) end def cast_and_apply(data) do @@ -51,7 +54,8 @@ def changeset(struct, data) do data = fix(data) struct - |> cast(data, __schema__(:fields)) + |> cast(data, List.delete(__schema__(:fields), :attachment)) + |> cast_embed(:attachment) end def validate_data(data_cng) do diff --git a/lib/pleroma/web/activity_pub/object_validators/url_object_validator.ex b/lib/pleroma/web/activity_pub/object_validators/url_object_validator.ex new file mode 100644 index 000000000..47e231150 --- /dev/null +++ b/lib/pleroma/web/activity_pub/object_validators/url_object_validator.ex @@ -0,0 +1,20 @@ +defmodule Pleroma.Web.ActivityPub.ObjectValidators.UrlObjectValidator do + use Ecto.Schema + + alias Pleroma.Web.ActivityPub.ObjectValidators.Types + + import Ecto.Changeset + @primary_key false + + embedded_schema do + field(:type, :string) + field(:href, Types.Uri) + field(:mediaType, :string) + end + + def changeset(struct, data) do + struct + |> cast(data, __schema__(:fields)) + |> validate_required([:type, :href, :mediaType]) + end +end diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index 0fe0e07b2..8b9dc2e44 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -236,7 +236,8 @@ def chat_message_create do description: "POST body for creating an chat message", type: :object, properties: %{ - content: %Schema{type: :string, description: "The content of your message"} + content: %Schema{type: :string, description: "The content of your message"}, + media_id: %Schema{type: :string, description: "The id of an upload"} }, required: [:content], example: %{ diff --git a/lib/pleroma/web/api_spec/schemas/chat_message.ex b/lib/pleroma/web/api_spec/schemas/chat_message.ex index 7c93b0c83..89e062ddd 100644 --- a/lib/pleroma/web/api_spec/schemas/chat_message.ex +++ b/lib/pleroma/web/api_spec/schemas/chat_message.ex @@ -17,7 +17,8 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessage do chat_id: %Schema{type: :string}, content: %Schema{type: :string}, created_at: %Schema{type: :string, format: :"date-time"}, - emojis: %Schema{type: :array} + emojis: %Schema{type: :array}, + attachment: %Schema{type: :object, nullable: true} }, example: %{ "account_id" => "someflakeid", @@ -32,7 +33,8 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessage do "url" => "https://dontbulling.me/emoji/Firefox.gif" } ], - "id" => "14" + "id" => "14", + "attachment" => nil } }) end diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index e428cc17d..38b5c6f7c 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -25,14 +25,16 @@ defmodule Pleroma.Web.CommonAPI do require Pleroma.Constants require Logger - def post_chat_message(%User{} = user, %User{} = recipient, content) do + def post_chat_message(%User{} = user, %User{} = recipient, content, opts \\ []) do with :ok <- validate_chat_content_length(content), + maybe_attachment <- opts[:media_id] && Object.get_by_id(opts[:media_id]), {_, {:ok, chat_message_data, _meta}} <- {:build_object, Builder.chat_message( user, recipient.ap_id, - content |> Formatter.html_escape("text/plain") + content |> Formatter.html_escape("text/plain"), + attachment: maybe_attachment )}, {_, {:ok, create_activity_data, _meta}} <- {:build_create_activity, Builder.create(user, chat_message_data, [recipient.ap_id])}, diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index bedae73bd..450d85332 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -36,14 +36,16 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.ChatOperation def post_chat_message( - %{body_params: %{content: content}, assigns: %{user: %{id: user_id} = user}} = conn, + %{body_params: %{content: content} = params, assigns: %{user: %{id: user_id} = user}} = + conn, %{ id: id } ) do with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id), %User{} = recipient <- User.get_cached_by_ap_id(chat.recipient), - {:ok, activity} <- CommonAPI.post_chat_message(user, recipient, content), + {:ok, activity} <- + CommonAPI.post_chat_message(user, recipient, content, media_id: params[:media_id]), message <- Object.normalize(activity) do conn |> put_view(ChatMessageView) diff --git a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex index a821479ab..b088a8734 100644 --- a/lib/pleroma/web/pleroma_api/views/chat_message_view.ex +++ b/lib/pleroma/web/pleroma_api/views/chat_message_view.ex @@ -23,7 +23,10 @@ def render( chat_id: chat_id |> to_string(), account_id: User.get_cached_by_ap_id(chat_message["actor"]).id, created_at: Utils.to_masto_date(chat_message["published"]), - emojis: StatusView.build_emojis(chat_message["emoji"]) + emojis: StatusView.build_emojis(chat_message["emoji"]), + attachment: + chat_message["attachment"] && + StatusView.render("attachment.json", attachment: chat_message["attachment"]) } end diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index 60db7187f..951ed7800 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -2,14 +2,41 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do use Pleroma.DataCase alias Pleroma.Object + alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.ObjectValidator alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.CommonAPI import Pleroma.Factory + describe "attachments" do + test "it turns mastodon attachments into our attachments" do + attachment = %{ + "url" => + "http://mastodon.example.org/system/media_attachments/files/000/000/002/original/334ce029e7bfb920.jpg", + "type" => "Document", + "name" => nil, + "mediaType" => "image/jpeg" + } + + {:ok, attachment} = + AttachmentValidator.cast_and_validate(attachment) + |> Ecto.Changeset.apply_action(:insert) + + assert [ + %{ + href: + "http://mastodon.example.org/system/media_attachments/files/000/000/002/original/334ce029e7bfb920.jpg", + type: "Link", + mediaType: "image/jpeg" + } + ] = attachment.url + end + end + describe "chat message create activities" do test "it is invalid if the object already exists" do user = insert(:user) @@ -52,7 +79,28 @@ test "it is invalid if the object data has a different `to` or `actor` field" do test "validates for a basic object we build", %{valid_chat_message: valid_chat_message} do assert {:ok, object, _meta} = ObjectValidator.validate(valid_chat_message, []) - assert object == valid_chat_message + assert Map.put(valid_chat_message, "attachment", nil) == object + end + + test "validates for a basic object with an attachment", %{ + valid_chat_message: valid_chat_message, + user: user + } do + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, attachment} = ActivityPub.upload(file, actor: user.ap_id) + + valid_chat_message = + valid_chat_message + |> Map.put("attachment", attachment.data) + + assert {:ok, object, _meta} = ObjectValidator.validate(valid_chat_message, []) + + assert object["attachment"] end test "does not validate if the message is longer than the remote_limit", %{ diff --git a/test/web/activity_pub/object_validators/types/object_id_test.exs b/test/web/activity_pub/object_validators/types/object_id_test.exs index 834213182..c8911948e 100644 --- a/test/web/activity_pub/object_validators/types/object_id_test.exs +++ b/test/web/activity_pub/object_validators/types/object_id_test.exs @@ -1,3 +1,7 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2020 Pleroma Authors +# SPDX-License-Identifier: AGPL-3.0-only + defmodule Pleroma.Web.ObjectValidators.Types.ObjectIDTest do alias Pleroma.Web.ActivityPub.ObjectValidators.Types.ObjectID use Pleroma.DataCase diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index cdb2683c8..72a9a91ff 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -6,6 +6,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do alias Pleroma.Chat alias Pleroma.Web.CommonAPI + alias Pleroma.Web.ActivityPub.ActivityPub import Pleroma.Factory @@ -49,6 +50,32 @@ test "it posts a message to the chat", %{conn: conn, user: user} do assert result["content"] == "Hallo!!" assert result["chat_id"] == chat.id |> to_string() end + + test "it works with an attachment", %{conn: conn, user: user} do + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, upload} = ActivityPub.upload(file, actor: user.ap_id) + + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + + result = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/pleroma/chats/#{chat.id}/messages", %{ + "content" => "Hallo!!", + "media_id" => to_string(upload.id) + }) + |> json_response_and_validate_schema(200) + + assert result["content"] == "Hallo!!" + assert result["chat_id"] == chat.id |> to_string() + end end describe "GET /api/v1/pleroma/chats/:id/messages" do diff --git a/test/web/pleroma_api/views/chat_message_view_test.exs b/test/web/pleroma_api/views/chat_message_view_test.exs index 5c4c8b0d5..a13a41daa 100644 --- a/test/web/pleroma_api/views/chat_message_view_test.exs +++ b/test/web/pleroma_api/views/chat_message_view_test.exs @@ -9,12 +9,21 @@ defmodule Pleroma.Web.PleromaAPI.ChatMessageViewTest do alias Pleroma.Object alias Pleroma.Web.CommonAPI alias Pleroma.Web.PleromaAPI.ChatMessageView + alias Pleroma.Web.ActivityPub.ActivityPub import Pleroma.Factory test "it displays a chat message" do user = insert(:user) recipient = insert(:user) + + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, upload} = ActivityPub.upload(file, actor: user.ap_id) {:ok, activity} = CommonAPI.post_chat_message(user, recipient, "kippis :firefox:") chat = Chat.get(user.id, recipient.ap_id) @@ -30,7 +39,7 @@ test "it displays a chat message" do assert chat_message[:created_at] assert match?([%{shortcode: "firefox"}], chat_message[:emojis]) - {:ok, activity} = CommonAPI.post_chat_message(recipient, user, "gkgkgk") + {:ok, activity} = CommonAPI.post_chat_message(recipient, user, "gkgkgk", media_id: upload.id) object = Object.normalize(activity) @@ -40,5 +49,6 @@ test "it displays a chat message" do assert chat_message_two[:content] == "gkgkgk" assert chat_message_two[:account_id] == recipient.id assert chat_message_two[:chat_id] == chat_message[:chat_id] + assert chat_message_two[:attachment] end end From fc9d0b6eec1b206a27f4ec19f7939b3318a209ef Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 6 May 2020 16:31:21 +0200 Subject: [PATCH 085/529] Credo fixes. --- .../activity_pub/object_validators/chat_message_validator.ex | 2 +- test/web/activity_pub/object_validator_test.exs | 2 +- test/web/pleroma_api/controllers/chat_controller_test.exs | 2 +- test/web/pleroma_api/views/chat_message_view_test.exs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex index 99ffeba28..e40c80ab4 100644 --- a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -6,8 +6,8 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidators.ChatMessageValidator do use Ecto.Schema alias Pleroma.User - alias Pleroma.Web.ActivityPub.ObjectValidators.Types alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.Types import Ecto.Changeset import Pleroma.Web.ActivityPub.Transmogrifier, only: [fix_emoji: 1] diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index 951ed7800..fcc54c8a1 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -5,8 +5,8 @@ defmodule Pleroma.Web.ActivityPub.ObjectValidatorTest do alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.ActivityPub.Builder alias Pleroma.Web.ActivityPub.ObjectValidator - alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator alias Pleroma.Web.ActivityPub.ObjectValidators.AttachmentValidator + alias Pleroma.Web.ActivityPub.ObjectValidators.LikeValidator alias Pleroma.Web.ActivityPub.Utils alias Pleroma.Web.CommonAPI diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index 72a9a91ff..b4b73da90 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -5,8 +5,8 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do use Pleroma.Web.ConnCase, async: true alias Pleroma.Chat - alias Pleroma.Web.CommonAPI alias Pleroma.Web.ActivityPub.ActivityPub + alias Pleroma.Web.CommonAPI import Pleroma.Factory diff --git a/test/web/pleroma_api/views/chat_message_view_test.exs b/test/web/pleroma_api/views/chat_message_view_test.exs index a13a41daa..d7a2d10a5 100644 --- a/test/web/pleroma_api/views/chat_message_view_test.exs +++ b/test/web/pleroma_api/views/chat_message_view_test.exs @@ -7,9 +7,9 @@ defmodule Pleroma.Web.PleromaAPI.ChatMessageViewTest do alias Pleroma.Chat alias Pleroma.Object + alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.CommonAPI alias Pleroma.Web.PleromaAPI.ChatMessageView - alias Pleroma.Web.ActivityPub.ActivityPub import Pleroma.Factory From d0bf8cfb8f852a16259af4b808565cdfd58f5e61 Mon Sep 17 00:00:00 2001 From: lain Date: Fri, 8 May 2020 14:11:58 +0200 Subject: [PATCH 086/529] Credo fixes. --- lib/pleroma/web/activity_pub/side_effects.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/activity_pub/side_effects.ex b/lib/pleroma/web/activity_pub/side_effects.ex index 28b519432..c8b675d54 100644 --- a/lib/pleroma/web/activity_pub/side_effects.ex +++ b/lib/pleroma/web/activity_pub/side_effects.ex @@ -5,8 +5,8 @@ defmodule Pleroma.Web.ActivityPub.SideEffects do liked object, a `Follow` activity will add the user to the follower collection, and so on. """ - alias Pleroma.Chat alias Pleroma.Activity + alias Pleroma.Chat alias Pleroma.Notification alias Pleroma.Object alias Pleroma.Repo From 287f781808c88f43f5689508b5aa21f6639b9d16 Mon Sep 17 00:00:00 2001 From: Alexander Strizhakov Date: Fri, 8 May 2020 16:54:53 +0300 Subject: [PATCH 087/529] user deletion --- lib/pleroma/user.ex | 28 +++++++++++++++------ test/user_test.exs | 27 ++++++++++++++++++++ test/web/activity_pub/side_effects_test.exs | 25 ++++++++++++++++++ 3 files changed, 72 insertions(+), 8 deletions(-) diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 2a6a23fec..278129ad2 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -1431,6 +1431,25 @@ def delete(%User{} = user) do BackgroundWorker.enqueue("delete_user", %{"user_id" => user.id}) end + defp delete_and_invalidate_cache(%User{} = user) do + invalidate_cache(user) + Repo.delete(user) + end + + defp delete_or_deactivate(%User{local: false} = user), do: delete_and_invalidate_cache(user) + + defp delete_or_deactivate(%User{local: true} = user) do + status = account_status(user) + + if status == :confirmation_pending do + delete_and_invalidate_cache(user) + else + user + |> change(%{deactivated: true, email: nil}) + |> update_and_set_cache() + end + end + def perform(:force_password_reset, user), do: force_password_reset(user) @spec perform(atom(), User.t()) :: {:ok, User.t()} @@ -1452,14 +1471,7 @@ def perform(:delete, %User{} = user) do delete_user_activities(user) - if user.local do - user - |> change(%{deactivated: true, email: nil}) - |> update_and_set_cache() - else - invalidate_cache(user) - Repo.delete(user) - end + delete_or_deactivate(user) end def perform(:deactivate_async, user, status), do: deactivate(user, status) diff --git a/test/user_test.exs b/test/user_test.exs index a3c75aa9b..96116fca6 100644 --- a/test/user_test.exs +++ b/test/user_test.exs @@ -1171,6 +1171,33 @@ test "it deactivates a user, all follow relationships and all activities", %{use end end + describe "delete/1 when confirmation is pending" do + setup do + user = insert(:user, confirmation_pending: true) + {:ok, user: user} + end + + test "deletes user from database when activation required", %{user: user} do + clear_config([:instance, :account_activation_required], true) + + {:ok, job} = User.delete(user) + {:ok, _} = ObanHelpers.perform(job) + + refute User.get_cached_by_id(user.id) + refute User.get_by_id(user.id) + end + + test "deactivates user when activation is not required", %{user: user} do + clear_config([:instance, :account_activation_required], false) + + {:ok, job} = User.delete(user) + {:ok, _} = ObanHelpers.perform(job) + + assert %{deactivated: true} = User.get_cached_by_id(user.id) + assert %{deactivated: true} = User.get_by_id(user.id) + end + end + test "get_public_key_for_ap_id fetches a user that's not in the db" do assert {:ok, _key} = User.get_public_key_for_ap_id("http://mastodon.example.org/users/admin") end diff --git a/test/web/activity_pub/side_effects_test.exs b/test/web/activity_pub/side_effects_test.exs index b29a7a7be..5c06dc864 100644 --- a/test/web/activity_pub/side_effects_test.exs +++ b/test/web/activity_pub/side_effects_test.exs @@ -99,6 +99,31 @@ test "creates a notification", %{emoji_react: emoji_react, poster: poster} do end end + describe "delete users with confirmation pending" do + setup do + user = insert(:user, confirmation_pending: true) + {:ok, delete_user_data, _meta} = Builder.delete(user, user.ap_id) + {:ok, delete_user, _meta} = ActivityPub.persist(delete_user_data, local: true) + {:ok, delete: delete_user, user: user} + end + + test "when activation is not required", %{delete: delete, user: user} do + clear_config([:instance, :account_activation_required], false) + {:ok, _, _} = SideEffects.handle(delete) + ObanHelpers.perform_all() + + assert User.get_cached_by_id(user.id).deactivated + end + + test "when activation is required", %{delete: delete, user: user} do + clear_config([:instance, :account_activation_required], true) + {:ok, _, _} = SideEffects.handle(delete) + ObanHelpers.perform_all() + + refute User.get_cached_by_id(user.id) + end + end + describe "Undo objects" do setup do poster = insert(:user) From 03529f6a0528ed01c7a956bb80628910584a9580 Mon Sep 17 00:00:00 2001 From: lain Date: Fri, 8 May 2020 18:26:35 +0200 Subject: [PATCH 088/529] Transmogrifier: Don't modify attachments for chats. --- lib/pleroma/web/activity_pub/transmogrifier.ex | 3 +++ test/web/common_api/common_api_test.exs | 2 ++ 2 files changed, 5 insertions(+) diff --git a/lib/pleroma/web/activity_pub/transmogrifier.ex b/lib/pleroma/web/activity_pub/transmogrifier.ex index 29f668cad..f04dec6be 100644 --- a/lib/pleroma/web/activity_pub/transmogrifier.ex +++ b/lib/pleroma/web/activity_pub/transmogrifier.ex @@ -1114,6 +1114,9 @@ def add_attributed_to(object) do Map.put(object, "attributedTo", attributed_to) end + # TODO: Revisit this + def prepare_attachments(%{"type" => "ChatMessage"} = object), do: object + def prepare_attachments(object) do attachments = object diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index 61affda5d..5501ba18b 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -54,6 +54,8 @@ test "it posts a chat message" do assert Chat.get(author.id, recipient.ap_id) assert Chat.get(recipient.id, author.ap_id) + + assert :ok == Pleroma.Web.Federator.perform(:publish, activity) end test "it reject messages over the local limit" do From 0c2b09a9ba771b3b04a0a08ed940823bd8601a9f Mon Sep 17 00:00:00 2001 From: Roman Chvanikov Date: Fri, 8 May 2020 22:08:11 +0300 Subject: [PATCH 089/529] Add migration for counter_cache table update --- ...00508092434_update_counter_cache_table.exs | 144 ++++++++++++++++++ 1 file changed, 144 insertions(+) create mode 100644 priv/repo/migrations/20200508092434_update_counter_cache_table.exs diff --git a/priv/repo/migrations/20200508092434_update_counter_cache_table.exs b/priv/repo/migrations/20200508092434_update_counter_cache_table.exs new file mode 100644 index 000000000..81a8d6397 --- /dev/null +++ b/priv/repo/migrations/20200508092434_update_counter_cache_table.exs @@ -0,0 +1,144 @@ +defmodule Pleroma.Repo.Migrations.UpdateCounterCacheTable do + use Ecto.Migration + + @function_name "update_status_visibility_counter_cache" + @trigger_name "status_visibility_counter_cache_trigger" + + def up do + execute("drop trigger if exists #{@trigger_name} on activities") + execute("drop function if exists #{@function_name}()") + drop_if_exists(unique_index(:counter_cache, [:name])) + drop_if_exists(table(:counter_cache)) + + create_if_not_exists table(:counter_cache) do + add(:instance, :string, null: false) + add(:direct, :bigint, null: false, default: 0) + add(:private, :bigint, null: false, default: 0) + add(:unlisted, :bigint, null: false, default: 0) + add(:public, :bigint, null: false, default: 0) + end + + create_if_not_exists(unique_index(:counter_cache, [:instance])) + + """ + CREATE OR REPLACE FUNCTION #{@function_name}() + RETURNS TRIGGER AS + $$ + DECLARE + token_id smallint; + hostname character varying(255); + visibility_new character varying(64); + visibility_old character varying(64); + actor character varying(255); + BEGIN + SELECT "tokid" INTO "token_id" FROM ts_token_type('default') WHERE "alias" = 'host'; + IF TG_OP = 'DELETE' THEN + actor := OLD.actor; + ELSE + actor := NEW.actor; + END IF; + SELECT "token" INTO "hostname" FROM ts_parse('default', actor) WHERE "tokid" = token_id; + IF hostname IS NULL THEN + hostname := split_part(actor, '/', 3); + END IF; + IF TG_OP = 'INSERT' THEN + visibility_new := activity_visibility(NEW.actor, NEW.recipients, NEW.data); + IF NEW.data->>'type' = 'Create' THEN + EXECUTE format('INSERT INTO "counter_cache" ("instance", %1$I) VALUES ($1, 1) + ON CONFLICT ("instance") DO + UPDATE SET %1$I = "counter_cache".%1$I + 1', visibility_new) + USING hostname; + END IF; + RETURN NEW; + ELSIF TG_OP = 'UPDATE' THEN + visibility_new := activity_visibility(NEW.actor, NEW.recipients, NEW.data); + visibility_old := activity_visibility(OLD.actor, OLD.recipients, OLD.data); + IF (NEW.data->>'type' = 'Create') and (OLD.data->>'type' = 'Create') and visibility_new != visibility_old THEN + EXECUTE format('UPDATE "counter_cache" SET + %1$I = greatest("counter_cache".%1$I - 1, 0), + %2$I = "counter_cache".%2$I + 1 + WHERE "instance" = $1', visibility_old, visibility_new) + USING hostname; + END IF; + RETURN NEW; + ELSIF TG_OP = 'DELETE' THEN + IF OLD.data->>'type' = 'Create' THEN + visibility_old := activity_visibility(OLD.actor, OLD.recipients, OLD.data); + EXECUTE format('UPDATE "counter_cache" SET + %1$I = greatest("counter_cache".%1$I - 1, 0) + WHERE "instance" = $1', visibility_old) + USING hostname; + END IF; + RETURN OLD; + END IF; + END; + $$ + LANGUAGE 'plpgsql'; + """ + |> execute() + + execute("DROP TRIGGER IF EXISTS #{@trigger_name} ON activities") + + """ + CREATE TRIGGER #{@trigger_name} + BEFORE + INSERT + OR UPDATE of recipients, data + OR DELETE + ON activities + FOR EACH ROW + EXECUTE PROCEDURE #{@function_name}(); + """ + |> execute() + end + + def down do + execute("DROP TRIGGER IF EXISTS #{@trigger_name} ON activities") + execute("DROP FUNCTION IF EXISTS #{@function_name}()") + drop_if_exists(unique_index(:counter_cache, [:instance])) + drop_if_exists(table(:counter_cache)) + + create_if_not_exists table(:counter_cache) do + add(:name, :string, null: false) + add(:count, :bigint, null: false, default: 0) + end + + create_if_not_exists(unique_index(:counter_cache, [:name])) + + """ + CREATE OR REPLACE FUNCTION #{@function_name}() + RETURNS TRIGGER AS + $$ + DECLARE + BEGIN + IF TG_OP = 'INSERT' THEN + IF NEW.data->>'type' = 'Create' THEN + EXECUTE 'INSERT INTO counter_cache (name, count) VALUES (''status_visibility_' || activity_visibility(NEW.actor, NEW.recipients, NEW.data) || ''', 1) ON CONFLICT (name) DO UPDATE SET count = counter_cache.count + 1'; + END IF; + RETURN NEW; + ELSIF TG_OP = 'UPDATE' THEN + IF (NEW.data->>'type' = 'Create') and (OLD.data->>'type' = 'Create') and activity_visibility(NEW.actor, NEW.recipients, NEW.data) != activity_visibility(OLD.actor, OLD.recipients, OLD.data) THEN + EXECUTE 'INSERT INTO counter_cache (name, count) VALUES (''status_visibility_' || activity_visibility(NEW.actor, NEW.recipients, NEW.data) || ''', 1) ON CONFLICT (name) DO UPDATE SET count = counter_cache.count + 1'; + EXECUTE 'update counter_cache SET count = counter_cache.count - 1 where count > 0 and name = ''status_visibility_' || activity_visibility(OLD.actor, OLD.recipients, OLD.data) || ''';'; + END IF; + RETURN NEW; + ELSIF TG_OP = 'DELETE' THEN + IF OLD.data->>'type' = 'Create' THEN + EXECUTE 'update counter_cache SET count = counter_cache.count - 1 where count > 0 and name = ''status_visibility_' || activity_visibility(OLD.actor, OLD.recipients, OLD.data) || ''';'; + END IF; + RETURN OLD; + END IF; + END; + $$ + LANGUAGE 'plpgsql'; + """ + |> execute() + + """ + CREATE TRIGGER #{@trigger_name} BEFORE INSERT OR UPDATE of recipients, data OR DELETE ON activities + FOR EACH ROW + EXECUTE PROCEDURE #{@function_name}(); + """ + |> execute() + end +end From 39d2f2118aed7906cb352d8a37f22da73f3a3aa3 Mon Sep 17 00:00:00 2001 From: Roman Chvanikov Date: Sat, 9 May 2020 01:20:50 +0300 Subject: [PATCH 090/529] update counter_cache logic --- .../tasks/pleroma/refresh_counter_cache.ex | 42 ++++++++---- lib/pleroma/counter_cache.ex | 66 +++++++++++++++---- lib/pleroma/stats.ex | 8 +-- 3 files changed, 82 insertions(+), 34 deletions(-) diff --git a/lib/mix/tasks/pleroma/refresh_counter_cache.ex b/lib/mix/tasks/pleroma/refresh_counter_cache.ex index 15b4dbfa6..280201bef 100644 --- a/lib/mix/tasks/pleroma/refresh_counter_cache.ex +++ b/lib/mix/tasks/pleroma/refresh_counter_cache.ex @@ -17,30 +17,46 @@ defmodule Mix.Tasks.Pleroma.RefreshCounterCache do def run([]) do Mix.Pleroma.start_pleroma() - ["public", "unlisted", "private", "direct"] - |> Enum.each(fn visibility -> - count = status_visibility_count_query(visibility) - name = "status_visibility_#{visibility}" - CounterCache.set(name, count) - Mix.Pleroma.shell_info("Set #{name} to #{count}") + Activity + |> distinct([a], true) + |> select([a], fragment("split_part(?, '/', 3)", a.actor)) + |> Repo.all() + |> Enum.each(fn instance -> + counters = instance_counters(instance) + CounterCache.set(instance, counters) + Mix.Pleroma.shell_info("Setting #{instance} counters: #{inspect(counters)}") end) Mix.Pleroma.shell_info("Done") end - defp status_visibility_count_query(visibility) do + defp instance_counters(instance) do + counters = %{"public" => 0, "unlisted" => 0, "private" => 0, "direct" => 0} + Activity - |> where( + |> where([a], fragment("(? ->> 'type'::text) = 'Create'", a.data)) + |> where([a], like(a.actor, ^"%#{instance}%")) + |> select( + [a], + {fragment( + "activity_visibility(?, ?, ?)", + a.actor, + a.recipients, + a.data + ), count(a.id)} + ) + |> group_by( [a], fragment( - "activity_visibility(?, ?, ?) = ?", + "activity_visibility(?, ?, ?)", a.actor, a.recipients, - a.data, - ^visibility + a.data ) ) - |> where([a], fragment("(? ->> 'type'::text) = 'Create'", a.data)) - |> Repo.aggregate(:count, :id, timeout: :timer.minutes(30)) + |> Repo.all(timeout: :timer.minutes(30)) + |> Enum.reduce(counters, fn {visibility, count}, acc -> + Map.put(acc, visibility, count) + end) end end diff --git a/lib/pleroma/counter_cache.ex b/lib/pleroma/counter_cache.ex index 4d348a413..b469e7b50 100644 --- a/lib/pleroma/counter_cache.ex +++ b/lib/pleroma/counter_cache.ex @@ -10,32 +10,70 @@ defmodule Pleroma.CounterCache do import Ecto.Query schema "counter_cache" do - field(:name, :string) - field(:count, :integer) + field(:instance, :string) + field(:public, :integer) + field(:unlisted, :integer) + field(:private, :integer) + field(:direct, :integer) end def changeset(struct, params) do struct - |> cast(params, [:name, :count]) - |> validate_required([:name]) - |> unique_constraint(:name) + |> cast(params, [:instance, :public, :unlisted, :private, :direct]) + |> validate_required([:instance]) + |> unique_constraint(:instance) end - def get_as_map(names) when is_list(names) do + def get_by_instance(instance) do CounterCache - |> where([cc], cc.name in ^names) - |> Repo.all() - |> Enum.group_by(& &1.name, & &1.count) - |> Map.new(fn {k, v} -> {k, hd(v)} end) + |> select([c], %{ + "public" => c.public, + "unlisted" => c.unlisted, + "private" => c.private, + "direct" => c.direct + }) + |> where([c], c.instance == ^instance) + |> Repo.one() + |> case do + nil -> %{"public" => 0, "unlisted" => 0, "private" => 0, "direct" => 0} + val -> val + end end - def set(name, count) do + def get_as_map() do + CounterCache + |> select([c], %{ + "public" => sum(c.public), + "unlisted" => sum(c.unlisted), + "private" => sum(c.private), + "direct" => sum(c.direct) + }) + |> Repo.one() + end + + def set(instance, values) do + params = + Enum.reduce( + ["public", "private", "unlisted", "direct"], + %{"instance" => instance}, + fn param, acc -> + Map.put_new(acc, param, Map.get(values, param, 0)) + end + ) + %CounterCache{} - |> changeset(%{"name" => name, "count" => count}) + |> changeset(params) |> Repo.insert( - on_conflict: [set: [count: count]], + on_conflict: [ + set: [ + public: params["public"], + private: params["private"], + unlisted: params["unlisted"], + direct: params["direct"] + ] + ], returning: true, - conflict_target: :name + conflict_target: :instance ) end end diff --git a/lib/pleroma/stats.ex b/lib/pleroma/stats.ex index 6b3a8a41f..4e355bd5c 100644 --- a/lib/pleroma/stats.ex +++ b/lib/pleroma/stats.ex @@ -98,13 +98,7 @@ def calculate_stat_data do end def get_status_visibility_count do - counter_cache = - CounterCache.get_as_map([ - "status_visibility_public", - "status_visibility_private", - "status_visibility_unlisted", - "status_visibility_direct" - ]) + counter_cache = CounterCache.get_as_map() %{ public: counter_cache["status_visibility_public"] || 0, From cbe383ae832f13d5d2a20ee8fb5e85498205fbc3 Mon Sep 17 00:00:00 2001 From: Roman Chvanikov Date: Sat, 9 May 2020 11:30:37 +0300 Subject: [PATCH 091/529] Update stats admin endpoint --- lib/pleroma/counter_cache.ex | 6 +- lib/pleroma/stats.ex | 15 ++--- .../web/admin_api/admin_api_controller.ex | 7 +-- ...00508092434_update_counter_cache_table.exs | 8 ++- test/stats_test.exs | 55 ++++++++++++++++--- .../admin_api/admin_api_controller_test.exs | 20 +++++++ 6 files changed, 87 insertions(+), 24 deletions(-) diff --git a/lib/pleroma/counter_cache.ex b/lib/pleroma/counter_cache.ex index b469e7b50..a940b5e50 100644 --- a/lib/pleroma/counter_cache.ex +++ b/lib/pleroma/counter_cache.ex @@ -40,7 +40,7 @@ def get_by_instance(instance) do end end - def get_as_map() do + def get_sum() do CounterCache |> select([c], %{ "public" => sum(c.public), @@ -49,6 +49,10 @@ def get_as_map() do "direct" => sum(c.direct) }) |> Repo.one() + |> Enum.map(fn {visibility, dec_count} -> + {visibility, Decimal.to_integer(dec_count)} + end) + |> Enum.into(%{}) end def set(instance, values) do diff --git a/lib/pleroma/stats.ex b/lib/pleroma/stats.ex index 4e355bd5c..9a03f01db 100644 --- a/lib/pleroma/stats.ex +++ b/lib/pleroma/stats.ex @@ -97,14 +97,11 @@ def calculate_stat_data do } end - def get_status_visibility_count do - counter_cache = CounterCache.get_as_map() - - %{ - public: counter_cache["status_visibility_public"] || 0, - unlisted: counter_cache["status_visibility_unlisted"] || 0, - private: counter_cache["status_visibility_private"] || 0, - direct: counter_cache["status_visibility_direct"] || 0 - } + def get_status_visibility_count(instance \\ nil) do + if is_nil(instance) do + CounterCache.get_sum() + else + CounterCache.get_by_instance(instance) + end end end diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index 9f1fd3aeb..4db9f4cac 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -1122,11 +1122,10 @@ def oauth_app_delete(conn, params) do end end - def stats(conn, _) do - count = Stats.get_status_visibility_count() + def stats(conn, params) do + counters = Stats.get_status_visibility_count(params["instance"]) - conn - |> json(%{"status_visibility" => count}) + json(conn, %{"status_visibility" => counters}) end defp errors(conn, {:error, :not_found}) do diff --git a/priv/repo/migrations/20200508092434_update_counter_cache_table.exs b/priv/repo/migrations/20200508092434_update_counter_cache_table.exs index 81a8d6397..3d9bfc877 100644 --- a/priv/repo/migrations/20200508092434_update_counter_cache_table.exs +++ b/priv/repo/migrations/20200508092434_update_counter_cache_table.exs @@ -43,7 +43,8 @@ def up do END IF; IF TG_OP = 'INSERT' THEN visibility_new := activity_visibility(NEW.actor, NEW.recipients, NEW.data); - IF NEW.data->>'type' = 'Create' THEN + IF NEW.data->>'type' = 'Create' + AND visibility_new IN ('public', 'unlisted', 'private', 'direct') THEN EXECUTE format('INSERT INTO "counter_cache" ("instance", %1$I) VALUES ($1, 1) ON CONFLICT ("instance") DO UPDATE SET %1$I = "counter_cache".%1$I + 1', visibility_new) @@ -53,7 +54,10 @@ def up do ELSIF TG_OP = 'UPDATE' THEN visibility_new := activity_visibility(NEW.actor, NEW.recipients, NEW.data); visibility_old := activity_visibility(OLD.actor, OLD.recipients, OLD.data); - IF (NEW.data->>'type' = 'Create') and (OLD.data->>'type' = 'Create') and visibility_new != visibility_old THEN + IF (NEW.data->>'type' = 'Create') + AND (OLD.data->>'type' = 'Create') + AND visibility_new != visibility_old + AND visibility_new IN ('public', 'unlisted', 'private', 'direct') THEN EXECUTE format('UPDATE "counter_cache" SET %1$I = greatest("counter_cache".%1$I - 1, 0), %2$I = "counter_cache".%2$I + 1 diff --git a/test/stats_test.exs b/test/stats_test.exs index c1aeb2c7f..33ed0b7dd 100644 --- a/test/stats_test.exs +++ b/test/stats_test.exs @@ -17,10 +17,11 @@ test "it ignores internal users" do end end - describe "status visibility count" do + describe "status visibility sum count" do test "on new status" do + instance2 = "instance2.tld" user = insert(:user) - other_user = insert(:user) + other_user = insert(:user, %{ap_id: "https://#{instance2}/@actor"}) CommonAPI.post(user, %{"visibility" => "public", "status" => "hey"}) @@ -45,24 +46,24 @@ test "on new status" do }) end) - assert %{direct: 3, private: 4, public: 1, unlisted: 2} = + assert %{"direct" => 3, "private" => 4, "public" => 1, "unlisted" => 2} = Pleroma.Stats.get_status_visibility_count() end test "on status delete" do user = insert(:user) {:ok, activity} = CommonAPI.post(user, %{"visibility" => "public", "status" => "hey"}) - assert %{public: 1} = Pleroma.Stats.get_status_visibility_count() + assert %{"public" => 1} = Pleroma.Stats.get_status_visibility_count() CommonAPI.delete(activity.id, user) - assert %{public: 0} = Pleroma.Stats.get_status_visibility_count() + assert %{"public" => 0} = Pleroma.Stats.get_status_visibility_count() end test "on status visibility update" do user = insert(:user) {:ok, activity} = CommonAPI.post(user, %{"visibility" => "public", "status" => "hey"}) - assert %{public: 1, private: 0} = Pleroma.Stats.get_status_visibility_count() + assert %{"public" => 1, "private" => 0} = Pleroma.Stats.get_status_visibility_count() {:ok, _} = CommonAPI.update_activity_scope(activity.id, %{"visibility" => "private"}) - assert %{public: 0, private: 1} = Pleroma.Stats.get_status_visibility_count() + assert %{"public" => 0, "private" => 1} = Pleroma.Stats.get_status_visibility_count() end test "doesn't count unrelated activities" do @@ -73,8 +74,46 @@ test "doesn't count unrelated activities" do CommonAPI.favorite(other_user, activity.id) CommonAPI.repeat(activity.id, other_user) - assert %{direct: 0, private: 0, public: 1, unlisted: 0} = + assert %{"direct" => 0, "private" => 0, "public" => 1, "unlisted" => 0} = Pleroma.Stats.get_status_visibility_count() end end + + describe "status visibility by instance count" do + test "single instance" do + local_instance = Pleroma.Web.Endpoint.url() |> String.split("//") |> Enum.at(1) + instance2 = "instance2.tld" + user1 = insert(:user) + user2 = insert(:user, %{ap_id: "https://#{instance2}/@actor"}) + + CommonAPI.post(user1, %{"visibility" => "public", "status" => "hey"}) + + Enum.each(1..5, fn _ -> + CommonAPI.post(user1, %{ + "visibility" => "unlisted", + "status" => "hey" + }) + end) + + Enum.each(1..10, fn _ -> + CommonAPI.post(user1, %{ + "visibility" => "direct", + "status" => "hey @#{user2.nickname}" + }) + end) + + Enum.each(1..20, fn _ -> + CommonAPI.post(user2, %{ + "visibility" => "private", + "status" => "hey" + }) + end) + + assert %{"direct" => 10, "private" => 0, "public" => 1, "unlisted" => 5} = + Pleroma.Stats.get_status_visibility_count(local_instance) + + assert %{"direct" => 0, "private" => 20, "public" => 0, "unlisted" => 0} = + Pleroma.Stats.get_status_visibility_count(instance2) + end + end end diff --git a/test/web/admin_api/admin_api_controller_test.exs b/test/web/admin_api/admin_api_controller_test.exs index 4697af50e..c3de89ac0 100644 --- a/test/web/admin_api/admin_api_controller_test.exs +++ b/test/web/admin_api/admin_api_controller_test.exs @@ -3612,6 +3612,26 @@ test "status visibility count", %{conn: conn} do assert %{"direct" => 0, "private" => 0, "public" => 1, "unlisted" => 2} = response["status_visibility"] end + + test "by instance", %{conn: conn} do + admin = insert(:user, is_admin: true) + user1 = insert(:user) + instance2 = "instance2.tld" + user2 = insert(:user, %{ap_id: "https://#{instance2}/@actor"}) + + CommonAPI.post(user1, %{"visibility" => "public", "status" => "hey"}) + CommonAPI.post(user2, %{"visibility" => "unlisted", "status" => "hey"}) + CommonAPI.post(user2, %{"visibility" => "private", "status" => "hey"}) + + response = + conn + |> assign(:user, admin) + |> get("/api/pleroma/admin/stats", instance: instance2) + |> json_response(200) + + assert %{"direct" => 0, "private" => 1, "public" => 0, "unlisted" => 1} = + response["status_visibility"] + end end describe "POST /api/pleroma/admin/oauth_app" do From 01b06d6dbfdeff7e1733d575fb94eee4dafbb56a Mon Sep 17 00:00:00 2001 From: Roman Chvanikov Date: Sat, 9 May 2020 11:43:31 +0300 Subject: [PATCH 092/529] Show progress in refresh_counter_cache task --- .../tasks/pleroma/refresh_counter_cache.ex | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/lib/mix/tasks/pleroma/refresh_counter_cache.ex b/lib/mix/tasks/pleroma/refresh_counter_cache.ex index 280201bef..b44e2545d 100644 --- a/lib/mix/tasks/pleroma/refresh_counter_cache.ex +++ b/lib/mix/tasks/pleroma/refresh_counter_cache.ex @@ -17,14 +17,21 @@ defmodule Mix.Tasks.Pleroma.RefreshCounterCache do def run([]) do Mix.Pleroma.start_pleroma() - Activity - |> distinct([a], true) - |> select([a], fragment("split_part(?, '/', 3)", a.actor)) - |> Repo.all() - |> Enum.each(fn instance -> + instances = + Activity + |> distinct([a], true) + |> select([a], fragment("split_part(?, '/', 3)", a.actor)) + |> Repo.all() + + instances + |> Enum.with_index(1) + |> Enum.each(fn {instance, i} -> counters = instance_counters(instance) CounterCache.set(instance, counters) - Mix.Pleroma.shell_info("Setting #{instance} counters: #{inspect(counters)}") + + Mix.Pleroma.shell_info( + "[#{i}/#{length(instances)}] Setting #{instance} counters: #{inspect(counters)}" + ) end) Mix.Pleroma.shell_info("Done") From 5c368b004b1a736836d4bc9f68c54714a33056cd Mon Sep 17 00:00:00 2001 From: Roman Chvanikov Date: Sat, 9 May 2020 11:49:54 +0300 Subject: [PATCH 093/529] Fix refresh_counter_cache test --- test/tasks/refresh_counter_cache_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tasks/refresh_counter_cache_test.exs b/test/tasks/refresh_counter_cache_test.exs index b63f44c08..378664148 100644 --- a/test/tasks/refresh_counter_cache_test.exs +++ b/test/tasks/refresh_counter_cache_test.exs @@ -37,7 +37,7 @@ test "counts statuses" do assert capture_io(fn -> Mix.Tasks.Pleroma.RefreshCounterCache.run([]) end) =~ "Done\n" - assert %{direct: 3, private: 4, public: 1, unlisted: 2} = + assert %{"direct" => 3, "private" => 4, "public" => 1, "unlisted" => 2} = Pleroma.Stats.get_status_visibility_count() end end From 4f265397179e7286f27fafaf8365a0edc6972448 Mon Sep 17 00:00:00 2001 From: Roman Chvanikov Date: Sat, 9 May 2020 11:59:49 +0300 Subject: [PATCH 094/529] Fix credo warning --- lib/pleroma/counter_cache.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/counter_cache.ex b/lib/pleroma/counter_cache.ex index a940b5e50..aa6d38687 100644 --- a/lib/pleroma/counter_cache.ex +++ b/lib/pleroma/counter_cache.ex @@ -40,7 +40,7 @@ def get_by_instance(instance) do end end - def get_sum() do + def get_sum do CounterCache |> select([c], %{ "public" => sum(c.public), From 56819f7f0604e5d4eb69edba1d6828256acbc7fe Mon Sep 17 00:00:00 2001 From: Roman Chvanikov Date: Sat, 9 May 2020 13:13:26 +0300 Subject: [PATCH 095/529] Use index on refresh_counter_cache --- lib/mix/tasks/pleroma/refresh_counter_cache.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/mix/tasks/pleroma/refresh_counter_cache.ex b/lib/mix/tasks/pleroma/refresh_counter_cache.ex index b44e2545d..efcbaa3b1 100644 --- a/lib/mix/tasks/pleroma/refresh_counter_cache.ex +++ b/lib/mix/tasks/pleroma/refresh_counter_cache.ex @@ -42,7 +42,7 @@ defp instance_counters(instance) do Activity |> where([a], fragment("(? ->> 'type'::text) = 'Create'", a.data)) - |> where([a], like(a.actor, ^"%#{instance}%")) + |> where([a], fragment("split_part(?, '/', 3) = ?", a.actor, ^instance)) |> select( [a], {fragment( From 4c197023903a183790fb2dc67b5637bfabd53bcb Mon Sep 17 00:00:00 2001 From: Roman Chvanikov Date: Sat, 9 May 2020 14:32:08 +0300 Subject: [PATCH 096/529] Add docs --- CHANGELOG.md | 12 ++++++++++++ docs/API/admin_api.md | 4 ++++ 2 files changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d469793f0..f2c9e106e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,9 +8,18 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Changed
API Changes + - **Breaking:** Emoji API: changed methods and renamed routes.
+
+ Admin API Changes + +- Status visibility stats: now can return stats per instance. + +- Mix task to refresh counter cache (`mix pleroma.refresh_counter_cache`) +
+ ### Removed - **Breaking:** removed `with_move` parameter from notifications timeline. @@ -76,6 +85,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). 2. Run database migrations (inside Pleroma directory): - OTP: `./bin/pleroma_ctl migrate` - From Source: `mix ecto.migrate` +3. Reset status visibility counters (inside Pleroma directory): + - OTP: `./bin/pleroma_ctl refresh_counter_cache` + - From Source: `mix pleroma.refresh_counter_cache` ## [2.0.2] - 2020-04-08 diff --git a/docs/API/admin_api.md b/docs/API/admin_api.md index c455047cc..fa74e7460 100644 --- a/docs/API/admin_api.md +++ b/docs/API/admin_api.md @@ -1096,6 +1096,10 @@ Loads json generated from `config/descriptions.exs`. ### Stats +- Query Params: + - *optional* `instance`: **string** instance hostname (without protocol) to get stats for +- Example: `https://mypleroma.org/api/pleroma/admin/stats?instance=lain.com` + - Response: ```json From 14a49a04837b0dc5a0d72dd7c5b4dfa482801e7c Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Sat, 9 May 2020 18:05:44 +0300 Subject: [PATCH 097/529] [#2456] Dropped support for embedded `pleroma/account/relationship` in statuses and notifications. --- .../web/admin_api/views/account_view.ex | 9 +++ .../web/admin_api/views/report_view.ex | 10 +-- .../web/admin_api/views/status_view.ex | 15 +--- lib/pleroma/web/controller_helper.ex | 5 -- .../controllers/account_controller.ex | 6 +- .../controllers/notification_controller.ex | 5 +- .../controllers/search_controller.ex | 6 +- .../controllers/status_controller.ex | 13 ++- .../controllers/timeline_controller.ex | 17 ++-- .../mastodon_api/views/notification_view.ex | 29 +++---- .../web/mastodon_api/views/status_view.ex | 16 +--- .../controllers/account_controller.ex | 5 +- .../controllers/pleroma_api_controller.ex | 10 +-- .../controllers/timeline_controller_test.exs | 80 +------------------ 14 files changed, 52 insertions(+), 174 deletions(-) diff --git a/lib/pleroma/web/admin_api/views/account_view.ex b/lib/pleroma/web/admin_api/views/account_view.ex index a16a3ebf0..8471b0f09 100644 --- a/lib/pleroma/web/admin_api/views/account_view.ex +++ b/lib/pleroma/web/admin_api/views/account_view.ex @@ -6,7 +6,9 @@ defmodule Pleroma.Web.AdminAPI.AccountView do use Pleroma.Web, :view alias Pleroma.User + alias Pleroma.Web.AdminAPI alias Pleroma.Web.AdminAPI.AccountView + alias Pleroma.Web.MastodonAPI alias Pleroma.Web.MediaProxy def render("index.json", %{users: users, count: count, page_size: page_size}) do @@ -119,6 +121,13 @@ def render("create-error.json", %{changeset: %Ecto.Changeset{changes: changes, e } end + def merge_account_views(%User{} = user) do + MastodonAPI.AccountView.render("show.json", %{user: user, skip_relationships: true}) + |> Map.merge(AdminAPI.AccountView.render("show.json", %{user: user})) + end + + def merge_account_views(_), do: %{} + defp parse_error([]), do: "" defp parse_error(errors) do diff --git a/lib/pleroma/web/admin_api/views/report_view.ex b/lib/pleroma/web/admin_api/views/report_view.ex index 215e31100..f432b8c2c 100644 --- a/lib/pleroma/web/admin_api/views/report_view.ex +++ b/lib/pleroma/web/admin_api/views/report_view.ex @@ -10,9 +10,10 @@ defmodule Pleroma.Web.AdminAPI.ReportView do alias Pleroma.Web.AdminAPI alias Pleroma.Web.AdminAPI.Report alias Pleroma.Web.CommonAPI.Utils - alias Pleroma.Web.MastodonAPI alias Pleroma.Web.MastodonAPI.StatusView + defdelegate merge_account_views(user), to: AdminAPI.AccountView + def render("index.json", %{reports: reports}) do %{ reports: @@ -71,11 +72,4 @@ def render("show_note.json", %{ created_at: Utils.to_masto_date(inserted_at) } end - - defp merge_account_views(%User{} = user) do - MastodonAPI.AccountView.render("show.json", %{user: user, skip_relationships: true}) - |> Map.merge(AdminAPI.AccountView.render("show.json", %{user: user})) - end - - defp merge_account_views(_), do: %{} end diff --git a/lib/pleroma/web/admin_api/views/status_view.ex b/lib/pleroma/web/admin_api/views/status_view.ex index a76fad990..500800be2 100644 --- a/lib/pleroma/web/admin_api/views/status_view.ex +++ b/lib/pleroma/web/admin_api/views/status_view.ex @@ -7,26 +7,19 @@ defmodule Pleroma.Web.AdminAPI.StatusView do require Pleroma.Constants - alias Pleroma.User alias Pleroma.Web.AdminAPI alias Pleroma.Web.MastodonAPI - alias Pleroma.Web.MastodonAPI.StatusView + + defdelegate merge_account_views(user), to: AdminAPI.AccountView def render("index.json", opts) do safe_render_many(opts.activities, __MODULE__, "show.json", opts) end def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} = opts) do - user = StatusView.get_user(activity.data["actor"]) + user = MastodonAPI.StatusView.get_user(activity.data["actor"]) - StatusView.render("show.json", opts) + MastodonAPI.StatusView.render("show.json", opts) |> Map.merge(%{account: merge_account_views(user)}) end - - defp merge_account_views(%User{} = user) do - MastodonAPI.AccountView.render("show.json", %{user: user, skip_relationships: true}) - |> Map.merge(AdminAPI.AccountView.render("show.json", %{user: user})) - end - - defp merge_account_views(_), do: %{} end diff --git a/lib/pleroma/web/controller_helper.ex b/lib/pleroma/web/controller_helper.ex index f0b4c087a..61fdec030 100644 --- a/lib/pleroma/web/controller_helper.ex +++ b/lib/pleroma/web/controller_helper.ex @@ -103,9 +103,4 @@ def try_render(conn, _, _) do def put_if_exist(map, _key, nil), do: map def put_if_exist(map, key, value), do: Map.put(map, key, value) - - @doc "Whether to skip `account.pleroma.relationship` rendering for statuses/notifications" - def skip_relationships?(params) do - not truthy_param?(params["with_relationships"]) - end end diff --git a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex index b9ed2d7b2..489441da5 100644 --- a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex @@ -10,8 +10,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do add_link_headers: 2, truthy_param?: 1, assign_account_by_id: 2, - json_response: 3, - skip_relationships?: 1 + json_response: 3 ] alias Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug @@ -247,8 +246,7 @@ def statuses(%{assigns: %{user: reading_user}} = conn, params) do |> render("index.json", activities: activities, for: reading_user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) else _e -> render_error(conn, :not_found, "Can't find user") diff --git a/lib/pleroma/web/mastodon_api/controllers/notification_controller.ex b/lib/pleroma/web/mastodon_api/controllers/notification_controller.ex index 596b85617..bcd12c73f 100644 --- a/lib/pleroma/web/mastodon_api/controllers/notification_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/notification_controller.ex @@ -5,7 +5,7 @@ defmodule Pleroma.Web.MastodonAPI.NotificationController do use Pleroma.Web, :controller - import Pleroma.Web.ControllerHelper, only: [add_link_headers: 2, skip_relationships?: 1] + import Pleroma.Web.ControllerHelper, only: [add_link_headers: 2] alias Pleroma.Notification alias Pleroma.Plugs.OAuthScopesPlug @@ -50,8 +50,7 @@ def index(%{assigns: %{user: user}} = conn, params) do |> add_link_headers(notifications) |> render("index.json", notifications: notifications, - for: user, - skip_relationships: skip_relationships?(params) + for: user ) end diff --git a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex index 6663c8707..5d3318ce0 100644 --- a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex @@ -5,8 +5,6 @@ defmodule Pleroma.Web.MastodonAPI.SearchController do use Pleroma.Web, :controller - import Pleroma.Web.ControllerHelper, only: [skip_relationships?: 1] - alias Pleroma.Activity alias Pleroma.Plugs.OAuthScopesPlug alias Pleroma.Plugs.RateLimiter @@ -71,7 +69,6 @@ defp do_search(version, %{assigns: %{user: user}} = conn, %{q: query} = params) defp search_options(params, user) do [ - skip_relationships: skip_relationships?(params), resolve: params[:resolve], following: params[:following], limit: params[:limit], @@ -100,8 +97,7 @@ defp resource_search(_, "statuses", query, options) do StatusView.render("index.json", activities: statuses, for: options[:for_user], - as: :activity, - skip_relationships: options[:skip_relationships] + as: :activity ) end diff --git a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex index 12e3ba15e..2b2e4a896 100644 --- a/lib/pleroma/web/mastodon_api/controllers/status_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/status_controller.ex @@ -6,7 +6,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do use Pleroma.Web, :controller import Pleroma.Web.ControllerHelper, - only: [try_render: 3, add_link_headers: 2, skip_relationships?: 1] + only: [try_render: 3, add_link_headers: 2] require Ecto.Query @@ -102,7 +102,7 @@ defmodule Pleroma.Web.MastodonAPI.StatusController do `ids` query param is required """ - def index(%{assigns: %{user: user}} = conn, %{"ids" => ids} = params) do + def index(%{assigns: %{user: user}} = conn, %{"ids" => ids} = _params) do limit = 100 activities = @@ -114,8 +114,7 @@ def index(%{assigns: %{user: user}} = conn, %{"ids" => ids} = params) do render(conn, "index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end @@ -370,8 +369,7 @@ def favourites(%{assigns: %{user: %User{} = user}} = conn, params) do |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end @@ -393,8 +391,7 @@ def bookmarks(%{assigns: %{user: user}} = conn, params) do |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end end diff --git a/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex b/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex index 2d67e19da..61cc6ab49 100644 --- a/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex @@ -6,7 +6,7 @@ defmodule Pleroma.Web.MastodonAPI.TimelineController do use Pleroma.Web, :controller import Pleroma.Web.ControllerHelper, - only: [add_link_headers: 2, add_link_headers: 3, truthy_param?: 1, skip_relationships?: 1] + only: [add_link_headers: 2, add_link_headers: 3, truthy_param?: 1] alias Pleroma.Pagination alias Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug @@ -59,8 +59,7 @@ def home(%{assigns: %{user: user}} = conn, params) do |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end @@ -83,8 +82,7 @@ def direct(%{assigns: %{user: user}} = conn, params) do |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end @@ -118,8 +116,7 @@ def public(%{assigns: %{user: user}} = conn, params) do |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end end @@ -166,8 +163,7 @@ def hashtag(%{assigns: %{user: user}} = conn, params) do |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end @@ -195,8 +191,7 @@ def list(%{assigns: %{user: user}} = conn, %{"list_id" => id} = params) do render(conn, "index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) else _e -> render_error(conn, :forbidden, "Error.") diff --git a/lib/pleroma/web/mastodon_api/views/notification_view.ex b/lib/pleroma/web/mastodon_api/views/notification_view.ex index e518bdedb..0349bcc83 100644 --- a/lib/pleroma/web/mastodon_api/views/notification_view.ex +++ b/lib/pleroma/web/mastodon_api/views/notification_view.ex @@ -15,8 +15,6 @@ defmodule Pleroma.Web.MastodonAPI.NotificationView do alias Pleroma.Web.MastodonAPI.StatusView def render("index.json", %{notifications: notifications, for: reading_user} = opts) do - opts = Map.merge(%{skip_relationships: true}, opts) - activities = Enum.map(notifications, & &1.activity) parent_activities = @@ -53,9 +51,7 @@ def render("index.json", %{notifications: notifications, for: reading_user} = op |> Enum.filter(& &1) |> Kernel.++(move_activities_targets) - UserRelationship.view_relationships_option(reading_user, actors, - source_mutes_only: opts[:skip_relationships] - ) + UserRelationship.view_relationships_option(reading_user, actors, source_mutes_only: true) end opts = @@ -73,8 +69,6 @@ def render( for: reading_user } = opts ) do - opts = Map.merge(%{skip_relationships: true}, opts) - actor = User.get_cached_by_ap_id(activity.data["actor"]) parent_activity_fn = fn -> @@ -87,15 +81,15 @@ def render( mastodon_type = Activity.mastodon_notification_type(activity) - render_opts = %{ - relationships: opts[:relationships], - skip_relationships: opts[:skip_relationships] - } + # Note: :relationships contain user mutes (needed for :muted flag in :status) + status_render_opts = %{relationships: opts[:relationships]} + + account_render_opts = %{skip_relationships: true} with %{id: _} = account <- AccountView.render( "show.json", - Map.merge(render_opts, %{user: actor, for: reading_user}) + Map.merge(account_render_opts, %{user: actor, for: reading_user}) ) do response = %{ id: to_string(notification.id), @@ -109,21 +103,20 @@ def render( case mastodon_type do "mention" -> - put_status(response, activity, reading_user, render_opts) + put_status(response, activity, reading_user, status_render_opts) "favourite" -> - put_status(response, parent_activity_fn.(), reading_user, render_opts) + put_status(response, parent_activity_fn.(), reading_user, status_render_opts) "reblog" -> - put_status(response, parent_activity_fn.(), reading_user, render_opts) + put_status(response, parent_activity_fn.(), reading_user, status_render_opts) "move" -> - # Note: :skip_relationships option being applied to _account_ rendering (here) - put_target(response, activity, reading_user, render_opts) + put_target(response, activity, reading_user, account_render_opts) "pleroma:emoji_reaction" -> response - |> put_status(parent_activity_fn.(), reading_user, render_opts) + |> put_status(parent_activity_fn.(), reading_user, status_render_opts) |> put_emoji(activity) type when type in ["follow", "follow_request"] -> diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index 0bcc84d44..8762f23fd 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -76,8 +76,6 @@ defp reblogged?(activity, user) do end def render("index.json", opts) do - opts = Map.merge(%{skip_relationships: true}, opts) - reading_user = opts[:for] # To do: check AdminAPIControllerTest on the reasons behind nil activities in the list @@ -109,9 +107,7 @@ def render("index.json", opts) do |> Enum.map(&get_user(&1.data["actor"], false)) |> Enum.filter(& &1) - UserRelationship.view_relationships_option(reading_user, actors, - source_mutes_only: opts[:skip_relationships] - ) + UserRelationship.view_relationships_option(reading_user, actors, source_mutes_only: true) end opts = @@ -127,8 +123,6 @@ def render( "show.json", %{activity: %{data: %{"type" => "Announce", "object" => _object}} = activity} = opts ) do - opts = Map.merge(%{skip_relationships: true}, opts) - user = get_user(activity.data["actor"]) created_at = Utils.to_masto_date(activity.data["published"]) activity_object = Object.normalize(activity) @@ -167,8 +161,7 @@ def render( AccountView.render("show.json", %{ user: user, for: opts[:for], - relationships: opts[:relationships], - skip_relationships: opts[:skip_relationships] + skip_relationships: true }), in_reply_to_id: nil, in_reply_to_account_id: nil, @@ -202,8 +195,6 @@ def render( end def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} = opts) do - opts = Map.merge(%{skip_relationships: true}, opts) - object = Object.normalize(activity) user = get_user(activity.data["actor"]) @@ -337,8 +328,7 @@ def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} AccountView.render("show.json", %{ user: user, for: opts[:for], - relationships: opts[:relationships], - skip_relationships: opts[:skip_relationships] + skip_relationships: true }), in_reply_to_id: reply_to && to_string(reply_to.id), in_reply_to_account_id: reply_to_user && to_string(reply_to_user.id), diff --git a/lib/pleroma/web/pleroma_api/controllers/account_controller.ex b/lib/pleroma/web/pleroma_api/controllers/account_controller.ex index be7477867..3c6a951b9 100644 --- a/lib/pleroma/web/pleroma_api/controllers/account_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/account_controller.ex @@ -6,7 +6,7 @@ defmodule Pleroma.Web.PleromaAPI.AccountController do use Pleroma.Web, :controller import Pleroma.Web.ControllerHelper, - only: [json_response: 3, add_link_headers: 2, assign_account_by_id: 2, skip_relationships?: 1] + only: [json_response: 3, add_link_headers: 2, assign_account_by_id: 2] alias Ecto.Changeset alias Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug @@ -139,8 +139,7 @@ def favourites(%{assigns: %{user: for_user, account: user}} = conn, params) do |> render("index.json", activities: activities, for: for_user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) end diff --git a/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex b/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex index 80ecdf67e..b61a6791b 100644 --- a/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex @@ -5,7 +5,7 @@ defmodule Pleroma.Web.PleromaAPI.PleromaAPIController do use Pleroma.Web, :controller - import Pleroma.Web.ControllerHelper, only: [add_link_headers: 2, skip_relationships?: 1] + import Pleroma.Web.ControllerHelper, only: [add_link_headers: 2] alias Pleroma.Activity alias Pleroma.Conversation.Participation @@ -151,8 +151,7 @@ def conversation_statuses( |> render("index.json", activities: activities, for: user, - as: :activity, - skip_relationships: skip_relationships?(params) + as: :activity ) else _error -> @@ -207,7 +206,7 @@ def mark_notifications_as_read(%{assigns: %{user: user}} = conn, %{"id" => notif end end - def mark_notifications_as_read(%{assigns: %{user: user}} = conn, %{"max_id" => max_id} = params) do + def mark_notifications_as_read(%{assigns: %{user: user}} = conn, %{"max_id" => max_id}) do with notifications <- Notification.set_read_up_to(user, max_id) do notifications = Enum.take(notifications, 80) @@ -215,8 +214,7 @@ def mark_notifications_as_read(%{assigns: %{user: user}} = conn, %{"max_id" => m |> put_view(NotificationView) |> render("index.json", notifications: notifications, - for: user, - skip_relationships: skip_relationships?(params) + for: user ) end end diff --git a/test/web/mastodon_api/controllers/timeline_controller_test.exs b/test/web/mastodon_api/controllers/timeline_controller_test.exs index b8bb83af7..47541979d 100644 --- a/test/web/mastodon_api/controllers/timeline_controller_test.exs +++ b/test/web/mastodon_api/controllers/timeline_controller_test.exs @@ -20,7 +20,7 @@ defmodule Pleroma.Web.MastodonAPI.TimelineControllerTest do describe "home" do setup do: oauth_access(["read:statuses"]) - test "does NOT render account/pleroma/relationship by default", %{ + test "does NOT embed account/pleroma/relationship in statuses", %{ user: user, conn: conn } do @@ -39,84 +39,6 @@ test "does NOT render account/pleroma/relationship by default", %{ end) end - test "embeds account relationships with `with_relationships=true`", %{user: user, conn: conn} do - uri = "/api/v1/timelines/home?with_relationships=true" - - following = insert(:user, nickname: "followed") - third_user = insert(:user, nickname: "repeated") - - {:ok, _activity} = CommonAPI.post(following, %{"status" => "post"}) - {:ok, activity} = CommonAPI.post(third_user, %{"status" => "repeated post"}) - {:ok, _, _} = CommonAPI.repeat(activity.id, following) - - ret_conn = get(conn, uri) - - assert Enum.empty?(json_response(ret_conn, :ok)) - - {:ok, _user} = User.follow(user, following) - - ret_conn = get(conn, uri) - - assert [ - %{ - "reblog" => %{ - "content" => "repeated post", - "account" => %{ - "pleroma" => %{ - "relationship" => %{"following" => false, "followed_by" => false} - } - } - }, - "account" => %{ - "pleroma" => %{ - "relationship" => %{"following" => true} - } - } - }, - %{ - "content" => "post", - "account" => %{ - "acct" => "followed", - "pleroma" => %{ - "relationship" => %{"following" => true} - } - } - } - ] = json_response(ret_conn, :ok) - - {:ok, _user} = User.follow(third_user, user) - - ret_conn = get(conn, uri) - - assert [ - %{ - "reblog" => %{ - "content" => "repeated post", - "account" => %{ - "acct" => "repeated", - "pleroma" => %{ - "relationship" => %{"following" => false, "followed_by" => true} - } - } - }, - "account" => %{ - "pleroma" => %{ - "relationship" => %{"following" => true} - } - } - }, - %{ - "content" => "post", - "account" => %{ - "acct" => "followed", - "pleroma" => %{ - "relationship" => %{"following" => true} - } - } - } - ] = json_response(ret_conn, :ok) - end - test "the home timeline when the direct messages are excluded", %{user: user, conn: conn} do {:ok, public_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "public"}) {:ok, direct_activity} = CommonAPI.post(user, %{"status" => ".", "visibility" => "direct"}) From ac4250a18c27477974a643a730ef89d6c66220f9 Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Sat, 9 May 2020 19:03:07 +0300 Subject: [PATCH 098/529] [#2456] Clarified `skip_relationships` option (and its default of `false`) for MastodonAPI.AccountView. --- lib/pleroma/web/mastodon_api/views/account_view.ex | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex index f0b157962..c1786a322 100644 --- a/lib/pleroma/web/mastodon_api/views/account_view.ex +++ b/lib/pleroma/web/mastodon_api/views/account_view.ex @@ -12,8 +12,16 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MediaProxy + # Default behaviour for account view is to include embedded relationships + # (e.g. when accounts are rendered on their own [e.g. a list of search results], not as + # embedded content in notifications / statuses). + # This option must be explicitly set to false when rendering accounts as embedded content. + defp initialize_skip_relationships(opts) do + Map.merge(%{skip_relationships: false}, opts) + end + def render("index.json", %{users: users} = opts) do - opts = Map.merge(%{skip_relationships: false}, opts) + opts = initialize_skip_relationships(opts) reading_user = opts[:for] @@ -161,7 +169,7 @@ def render("relationships.json", %{user: user, targets: targets} = opts) do end defp do_render("show.json", %{user: user} = opts) do - opts = Map.merge(%{skip_relationships: false}, opts) + opts = initialize_skip_relationships(opts) user = User.sanitize_html(user, User.html_filter_policy(opts[:for])) display_name = user.name || user.nickname From f3f8ed9e19f1ab8863141ba8b31773c54f4771fb Mon Sep 17 00:00:00 2001 From: Roman Chvanikov Date: Sun, 10 May 2020 09:13:24 +0300 Subject: [PATCH 099/529] Set sum types in query --- lib/pleroma/counter_cache.ex | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/lib/pleroma/counter_cache.ex b/lib/pleroma/counter_cache.ex index aa6d38687..ebd1f603d 100644 --- a/lib/pleroma/counter_cache.ex +++ b/lib/pleroma/counter_cache.ex @@ -43,16 +43,12 @@ def get_by_instance(instance) do def get_sum do CounterCache |> select([c], %{ - "public" => sum(c.public), - "unlisted" => sum(c.unlisted), - "private" => sum(c.private), - "direct" => sum(c.direct) + "public" => type(sum(c.public), :integer), + "unlisted" => type(sum(c.unlisted), :integer), + "private" => type(sum(c.private), :integer), + "direct" => type(sum(c.direct), :integer) }) |> Repo.one() - |> Enum.map(fn {visibility, dec_count} -> - {visibility, Decimal.to_integer(dec_count)} - end) - |> Enum.into(%{}) end def set(instance, values) do From aee88d11be898921d79ad7f1481ab055190f4dfd Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Sun, 10 May 2020 09:16:48 +0300 Subject: [PATCH 100/529] [#2456] Removed support for embedded relationships in account view. --- .../web/admin_api/admin_api_controller.ex | 13 ++-- .../web/admin_api/views/account_view.ex | 2 +- lib/pleroma/web/chat_channel.ex | 7 +- .../controllers/search_controller.ex | 3 +- .../web/mastodon_api/views/account_view.ex | 41 +--------- .../mastodon_api/views/notification_view.ex | 6 +- .../web/mastodon_api/views/status_view.ex | 6 +- .../controllers/pleroma_api_controller.ex | 3 +- .../mastodon_api/views/account_view_test.exs | 76 ------------------- .../views/notification_view_test.exs | 21 ++--- 10 files changed, 23 insertions(+), 155 deletions(-) diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index d2c5a6b9c..987b3bcba 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -22,6 +22,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do alias Pleroma.Web.ActivityPub.Pipeline alias Pleroma.Web.ActivityPub.Relay alias Pleroma.Web.ActivityPub.Utils + alias Pleroma.Web.AdminAPI alias Pleroma.Web.AdminAPI.AccountView alias Pleroma.Web.AdminAPI.ConfigView alias Pleroma.Web.AdminAPI.ModerationLogView @@ -31,7 +32,7 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do alias Pleroma.Web.CommonAPI alias Pleroma.Web.Endpoint alias Pleroma.Web.MastodonAPI.AppView - alias Pleroma.Web.MastodonAPI.StatusView + alias Pleroma.Web.MastodonAPI alias Pleroma.Web.OAuth.App alias Pleroma.Web.Router @@ -280,7 +281,7 @@ def list_instance_statuses(conn, %{"instance" => instance} = params) do }) conn - |> put_view(Pleroma.Web.AdminAPI.StatusView) + |> put_view(AdminAPI.StatusView) |> render("index.json", %{activities: activities, as: :activity}) end @@ -299,7 +300,7 @@ def list_user_statuses(conn, %{"nickname" => nickname} = params) do }) conn - |> put_view(StatusView) + |> put_view(MastodonAPI.StatusView) |> render("index.json", %{activities: activities, as: :activity}) else _ -> {:error, :not_found} @@ -829,14 +830,14 @@ def list_statuses(%{assigns: %{user: _admin}} = conn, params) do }) conn - |> put_view(Pleroma.Web.AdminAPI.StatusView) + |> put_view(AdminAPI.StatusView) |> render("index.json", %{activities: activities, as: :activity}) end def status_show(conn, %{"id" => id}) do with %Activity{} = activity <- Activity.get_by_id(id) do conn - |> put_view(StatusView) + |> put_view(MastodonAPI.StatusView) |> render("show.json", %{activity: activity}) else _ -> errors(conn, {:error, :not_found}) @@ -856,7 +857,7 @@ def status_update(%{assigns: %{user: admin}} = conn, %{"id" => id} = params) do }) conn - |> put_view(StatusView) + |> put_view(MastodonAPI.StatusView) |> render("show.json", %{activity: activity}) end end diff --git a/lib/pleroma/web/admin_api/views/account_view.ex b/lib/pleroma/web/admin_api/views/account_view.ex index 8471b0f09..46dadb5ee 100644 --- a/lib/pleroma/web/admin_api/views/account_view.ex +++ b/lib/pleroma/web/admin_api/views/account_view.ex @@ -122,7 +122,7 @@ def render("create-error.json", %{changeset: %Ecto.Changeset{changes: changes, e end def merge_account_views(%User{} = user) do - MastodonAPI.AccountView.render("show.json", %{user: user, skip_relationships: true}) + MastodonAPI.AccountView.render("show.json", %{user: user}) |> Map.merge(AdminAPI.AccountView.render("show.json", %{user: user})) end diff --git a/lib/pleroma/web/chat_channel.ex b/lib/pleroma/web/chat_channel.ex index 3df8dc0f1..bce27897f 100644 --- a/lib/pleroma/web/chat_channel.ex +++ b/lib/pleroma/web/chat_channel.ex @@ -22,12 +22,7 @@ def handle_in("new_msg", %{"text" => text}, %{assigns: %{user_name: user_name}} if String.length(text) in 1..Pleroma.Config.get([:instance, :chat_limit]) do author = User.get_cached_by_nickname(user_name) - - author = - Pleroma.Web.MastodonAPI.AccountView.render("show.json", - user: author, - skip_relationships: true - ) + author = Pleroma.Web.MastodonAPI.AccountView.render("show.json", user: author) message = ChatChannelState.add_message(%{text: text, author: author}) diff --git a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex index 5d3318ce0..c30ae1c7a 100644 --- a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex @@ -86,8 +86,7 @@ defp resource_search(_, "accounts", query, options) do AccountView.render("index.json", users: accounts, for: options[:for_user], - as: :user, - skip_relationships: true + as: :user ) end diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex index c1786a322..b3a14d255 100644 --- a/lib/pleroma/web/mastodon_api/views/account_view.ex +++ b/lib/pleroma/web/mastodon_api/views/account_view.ex @@ -12,33 +12,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MediaProxy - # Default behaviour for account view is to include embedded relationships - # (e.g. when accounts are rendered on their own [e.g. a list of search results], not as - # embedded content in notifications / statuses). - # This option must be explicitly set to false when rendering accounts as embedded content. - defp initialize_skip_relationships(opts) do - Map.merge(%{skip_relationships: false}, opts) - end - def render("index.json", %{users: users} = opts) do - opts = initialize_skip_relationships(opts) - - reading_user = opts[:for] - - relationships_opt = - cond do - Map.has_key?(opts, :relationships) -> - opts[:relationships] - - is_nil(reading_user) || opts[:skip_relationships] -> - UserRelationship.view_relationships_option(nil, []) - - true -> - UserRelationship.view_relationships_option(reading_user, users) - end - - opts = Map.put(opts, :relationships, relationships_opt) - users |> render_many(AccountView, "show.json", opts) |> Enum.filter(&Enum.any?/1) @@ -169,8 +143,6 @@ def render("relationships.json", %{user: user, targets: targets} = opts) do end defp do_render("show.json", %{user: user} = opts) do - opts = initialize_skip_relationships(opts) - user = User.sanitize_html(user, User.html_filter_policy(opts[:for])) display_name = user.name || user.nickname @@ -203,17 +175,6 @@ defp do_render("show.json", %{user: user} = opts) do } end) - relationship = - if opts[:skip_relationships] do - %{} - else - render("relationship.json", %{ - user: opts[:for], - target: user, - relationships: opts[:relationships] - }) - end - %{ id: to_string(user.id), username: username_from_nickname(user.nickname), @@ -252,7 +213,7 @@ defp do_render("show.json", %{user: user} = opts) do hide_followers: user.hide_followers, hide_follows: user.hide_follows, hide_favorites: user.hide_favorites, - relationship: relationship, + relationship: %{}, skip_thread_containment: user.skip_thread_containment, background_image: image_url(user.background) |> MediaProxy.url() } diff --git a/lib/pleroma/web/mastodon_api/views/notification_view.ex b/lib/pleroma/web/mastodon_api/views/notification_view.ex index 0349bcc83..a53218d59 100644 --- a/lib/pleroma/web/mastodon_api/views/notification_view.ex +++ b/lib/pleroma/web/mastodon_api/views/notification_view.ex @@ -84,12 +84,10 @@ def render( # Note: :relationships contain user mutes (needed for :muted flag in :status) status_render_opts = %{relationships: opts[:relationships]} - account_render_opts = %{skip_relationships: true} - with %{id: _} = account <- AccountView.render( "show.json", - Map.merge(account_render_opts, %{user: actor, for: reading_user}) + %{user: actor, for: reading_user} ) do response = %{ id: to_string(notification.id), @@ -112,7 +110,7 @@ def render( put_status(response, parent_activity_fn.(), reading_user, status_render_opts) "move" -> - put_target(response, activity, reading_user, account_render_opts) + put_target(response, activity, reading_user, %{}) "pleroma:emoji_reaction" -> response diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index 8762f23fd..f7895c514 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -160,8 +160,7 @@ def render( account: AccountView.render("show.json", %{ user: user, - for: opts[:for], - skip_relationships: true + for: opts[:for] }), in_reply_to_id: nil, in_reply_to_account_id: nil, @@ -327,8 +326,7 @@ def render("show.json", %{activity: %{data: %{"object" => _object}} = activity} account: AccountView.render("show.json", %{ user: user, - for: opts[:for], - skip_relationships: true + for: opts[:for] }), in_reply_to_id: reply_to && to_string(reply_to.id), in_reply_to_account_id: reply_to_user && to_string(reply_to_user.id), diff --git a/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex b/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex index b61a6791b..e834133b2 100644 --- a/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/pleroma_api_controller.ex @@ -73,8 +73,7 @@ def emoji_reactions_by(%{assigns: %{user: user}} = conn, %{"id" => activity_id} AccountView.render("index.json", %{ users: users, for: user, - as: :user, - skip_relationships: true + as: :user }), me: !!(user && user.ap_id in user_ap_ids) } diff --git a/test/web/mastodon_api/views/account_view_test.exs b/test/web/mastodon_api/views/account_view_test.exs index 5fb162141..3c1aeb6d5 100644 --- a/test/web/mastodon_api/views/account_view_test.exs +++ b/test/web/mastodon_api/views/account_view_test.exs @@ -295,82 +295,6 @@ test "represent a relationship for the user with a pending follow request" do end end - test "represent an embedded relationship" do - user = - insert(:user, %{ - follower_count: 0, - note_count: 5, - actor_type: "Service", - nickname: "shp@shitposter.club", - inserted_at: ~N[2017-08-15 15:47:06.597036] - }) - - other_user = insert(:user) - {:ok, other_user} = User.follow(other_user, user) - {:ok, _user_relationship} = User.block(other_user, user) - {:ok, _} = User.follow(insert(:user), user) - - expected = %{ - id: to_string(user.id), - username: "shp", - acct: user.nickname, - display_name: user.name, - locked: false, - created_at: "2017-08-15T15:47:06.000Z", - followers_count: 1, - following_count: 0, - statuses_count: 5, - note: user.bio, - url: user.ap_id, - avatar: "http://localhost:4001/images/avi.png", - avatar_static: "http://localhost:4001/images/avi.png", - header: "http://localhost:4001/images/banner.png", - header_static: "http://localhost:4001/images/banner.png", - emojis: [], - fields: [], - bot: true, - source: %{ - note: user.bio, - sensitive: false, - pleroma: %{ - actor_type: "Service", - discoverable: false - }, - fields: [] - }, - pleroma: %{ - background_image: nil, - confirmation_pending: false, - tags: [], - is_admin: false, - is_moderator: false, - hide_favorites: true, - hide_followers: false, - hide_follows: false, - hide_followers_count: false, - hide_follows_count: false, - relationship: %{ - id: to_string(user.id), - following: false, - followed_by: false, - blocking: true, - blocked_by: false, - subscribing: false, - muting: false, - muting_notifications: false, - requested: false, - domain_blocking: false, - showing_reblogs: true, - endorsed: false - }, - skip_thread_containment: false - } - } - - assert expected == - AccountView.render("show.json", %{user: refresh_record(user), for: other_user}) - end - test "returns the settings store if the requesting user is the represented user and it's requested specifically" do user = insert(:user, pleroma_settings_store: %{fe: "test"}) diff --git a/test/web/mastodon_api/views/notification_view_test.exs b/test/web/mastodon_api/views/notification_view_test.exs index 61e6e3ae5..7cdba2fe0 100644 --- a/test/web/mastodon_api/views/notification_view_test.exs +++ b/test/web/mastodon_api/views/notification_view_test.exs @@ -45,8 +45,7 @@ test "Mention notification" do account: AccountView.render("show.json", %{ user: user, - for: mentioned_user, - skip_relationships: true + for: mentioned_user }), status: StatusView.render("show.json", %{activity: activity, for: mentioned_user}), created_at: Utils.to_masto_date(notification.inserted_at) @@ -67,8 +66,7 @@ test "Favourite notification" do id: to_string(notification.id), pleroma: %{is_seen: false}, type: "favourite", - account: - AccountView.render("show.json", %{user: another_user, for: user, skip_relationships: true}), + account: AccountView.render("show.json", %{user: another_user, for: user}), status: StatusView.render("show.json", %{activity: create_activity, for: user}), created_at: Utils.to_masto_date(notification.inserted_at) } @@ -88,8 +86,7 @@ test "Reblog notification" do id: to_string(notification.id), pleroma: %{is_seen: false}, type: "reblog", - account: - AccountView.render("show.json", %{user: another_user, for: user, skip_relationships: true}), + account: AccountView.render("show.json", %{user: another_user, for: user}), status: StatusView.render("show.json", %{activity: reblog_activity, for: user}), created_at: Utils.to_masto_date(notification.inserted_at) } @@ -107,8 +104,7 @@ test "Follow notification" do id: to_string(notification.id), pleroma: %{is_seen: false}, type: "follow", - account: - AccountView.render("show.json", %{user: follower, for: followed, skip_relationships: true}), + account: AccountView.render("show.json", %{user: follower, for: followed}), created_at: Utils.to_masto_date(notification.inserted_at) } @@ -151,10 +147,8 @@ test "Move notification" do id: to_string(notification.id), pleroma: %{is_seen: false}, type: "move", - account: - AccountView.render("show.json", %{user: old_user, for: follower, skip_relationships: true}), - target: - AccountView.render("show.json", %{user: new_user, for: follower, skip_relationships: true}), + account: AccountView.render("show.json", %{user: old_user, for: follower}), + target: AccountView.render("show.json", %{user: new_user, for: follower}), created_at: Utils.to_masto_date(notification.inserted_at) } @@ -179,8 +173,7 @@ test "EmojiReact notification" do pleroma: %{is_seen: false}, type: "pleroma:emoji_reaction", emoji: "☕", - account: - AccountView.render("show.json", %{user: other_user, for: user, skip_relationships: true}), + account: AccountView.render("show.json", %{user: other_user, for: user}), status: StatusView.render("show.json", %{activity: activity, for: user}), created_at: Utils.to_masto_date(notification.inserted_at) } From b960a9430d5fc396e7484b563f74fab39dbd8345 Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Sun, 10 May 2020 09:35:12 +0300 Subject: [PATCH 101/529] [#2456] credo fix. --- lib/pleroma/web/admin_api/admin_api_controller.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/admin_api/admin_api_controller.ex b/lib/pleroma/web/admin_api/admin_api_controller.ex index 987b3bcba..616ca52bd 100644 --- a/lib/pleroma/web/admin_api/admin_api_controller.ex +++ b/lib/pleroma/web/admin_api/admin_api_controller.ex @@ -31,8 +31,8 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIController do alias Pleroma.Web.AdminAPI.Search alias Pleroma.Web.CommonAPI alias Pleroma.Web.Endpoint - alias Pleroma.Web.MastodonAPI.AppView alias Pleroma.Web.MastodonAPI + alias Pleroma.Web.MastodonAPI.AppView alias Pleroma.Web.OAuth.App alias Pleroma.Web.Router From 1054e897622d0a0727f30169d64c83a253a3d11e Mon Sep 17 00:00:00 2001 From: lain Date: Sun, 10 May 2020 12:30:24 +0200 Subject: [PATCH 102/529] ChatOperation: Add media id to example --- lib/pleroma/web/api_spec/operations/chat_operation.ex | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index 8b9dc2e44..16d3d5e22 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -241,7 +241,8 @@ def chat_message_create do }, required: [:content], example: %{ - "content" => "Hey wanna buy feet pics?" + "content" => "Hey wanna buy feet pics?", + "media_id" => "134234" } } end From e297d8c649a03510023cff61dc6e0c7131bc29dc Mon Sep 17 00:00:00 2001 From: lain Date: Sun, 10 May 2020 12:34:12 +0200 Subject: [PATCH 103/529] Documentation: Add attachment docs --- docs/API/chats.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/API/chats.md b/docs/API/chats.md index 8d925989c..3ddc13541 100644 --- a/docs/API/chats.md +++ b/docs/API/chats.md @@ -160,6 +160,7 @@ Posting a chat message for given Chat id works like this: Parameters: - content: The text content of the message +- media_id: The id of an upload that will be attached to the message. Currently, no formatting beyond basic escaping and emoji is implemented, as well as no attachments. This will most probably change. From f335e1404a9cd19451b531e32e3591aa323761ff Mon Sep 17 00:00:00 2001 From: lain Date: Sun, 10 May 2020 13:00:01 +0200 Subject: [PATCH 104/529] ChatView: Add the last message to the view. --- lib/pleroma/chat.ex | 36 ++++++++++++++++++- .../controllers/chat_controller.ex | 23 ++---------- .../web/pleroma_api/views/chat_view.ex | 7 +++- test/web/pleroma_api/views/chat_view_test.exs | 17 ++++++++- 4 files changed, 60 insertions(+), 23 deletions(-) diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index 1a092b992..6a03ee3c1 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -4,8 +4,11 @@ defmodule Pleroma.Chat do use Ecto.Schema - import Ecto.Changeset + import Ecto.Changeset + import Ecto.Query + + alias Pleroma.Object alias Pleroma.Repo alias Pleroma.User @@ -23,6 +26,37 @@ defmodule Pleroma.Chat do timestamps() end + def last_message_for_chat(chat) do + messages_for_chat_query(chat) + |> order_by(desc: :id) + |> Repo.one() + end + + def messages_for_chat_query(chat) do + chat = + chat + |> Repo.preload(:user) + + from(o in Object, + where: fragment("?->>'type' = ?", o.data, "ChatMessage"), + where: + fragment( + """ + (?->>'actor' = ? and ?->'to' = ?) + OR (?->>'actor' = ? and ?->'to' = ?) + """, + o.data, + ^chat.user.ap_id, + o.data, + ^[chat.recipient], + o.data, + ^chat.recipient, + o.data, + ^[chat.user.ap_id] + ) + ) + end + def creation_cng(struct, params) do struct |> cast(params, [:user_id, :recipient, :unread]) diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 450d85332..1ef3477c8 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -14,9 +14,8 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do alias Pleroma.Web.PleromaAPI.ChatMessageView alias Pleroma.Web.PleromaAPI.ChatView - import Pleroma.Web.ActivityPub.ObjectValidator, only: [stringify_keys: 1] - import Ecto.Query + import Pleroma.Web.ActivityPub.ObjectValidator, only: [stringify_keys: 1] # TODO # - Error handling @@ -65,24 +64,8 @@ def mark_as_read(%{assigns: %{user: %{id: user_id}}} = conn, %{id: id}) do def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{id: id} = params) do with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id) do messages = - from(o in Object, - where: fragment("?->>'type' = ?", o.data, "ChatMessage"), - where: - fragment( - """ - (?->>'actor' = ? and ?->'to' = ?) - OR (?->>'actor' = ? and ?->'to' = ?) - """, - o.data, - ^user.ap_id, - o.data, - ^[chat.recipient], - o.data, - ^chat.recipient, - o.data, - ^[user.ap_id] - ) - ) + chat + |> Chat.messages_for_chat_query() |> Pagination.fetch_paginated(params |> stringify_keys()) conn diff --git a/lib/pleroma/web/pleroma_api/views/chat_view.ex b/lib/pleroma/web/pleroma_api/views/chat_view.ex index bc3af5ef5..21f0612ff 100644 --- a/lib/pleroma/web/pleroma_api/views/chat_view.ex +++ b/lib/pleroma/web/pleroma_api/views/chat_view.ex @@ -8,14 +8,19 @@ defmodule Pleroma.Web.PleromaAPI.ChatView do alias Pleroma.Chat alias Pleroma.User alias Pleroma.Web.MastodonAPI.AccountView + alias Pleroma.Web.PleromaAPI.ChatMessageView def render("show.json", %{chat: %Chat{} = chat} = opts) do recipient = User.get_cached_by_ap_id(chat.recipient) + last_message = Chat.last_message_for_chat(chat) + %{ id: chat.id |> to_string(), account: AccountView.render("show.json", Map.put(opts, :user, recipient)), - unread: chat.unread + unread: chat.unread, + last_message: + last_message && ChatMessageView.render("show.json", chat: chat, object: last_message) } end diff --git a/test/web/pleroma_api/views/chat_view_test.exs b/test/web/pleroma_api/views/chat_view_test.exs index 1ac3483d1..8568d98c6 100644 --- a/test/web/pleroma_api/views/chat_view_test.exs +++ b/test/web/pleroma_api/views/chat_view_test.exs @@ -6,8 +6,11 @@ defmodule Pleroma.Web.PleromaAPI.ChatViewTest do use Pleroma.DataCase alias Pleroma.Chat + alias Pleroma.Object + alias Pleroma.Web.CommonAPI alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.PleromaAPI.ChatView + alias Pleroma.Web.PleromaAPI.ChatMessageView import Pleroma.Factory @@ -22,7 +25,19 @@ test "it represents a chat" do assert represented_chat == %{ id: "#{chat.id}", account: AccountView.render("show.json", user: recipient), - unread: 0 + unread: 0, + last_message: nil } + + {:ok, chat_message_creation} = CommonAPI.post_chat_message(user, recipient, "hello") + + chat_message = Object.normalize(chat_message_creation, false) + + {:ok, chat} = Chat.get_or_create(user.id, recipient.ap_id) + + represented_chat = ChatView.render("show.json", chat: chat) + + assert represented_chat[:last_message] == + ChatMessageView.render("show.json", chat: chat, object: chat_message) end end From 17be3ff669865102848df034045eb2889eed3976 Mon Sep 17 00:00:00 2001 From: lain Date: Sun, 10 May 2020 13:01:20 +0200 Subject: [PATCH 105/529] Documentation: Add last_message to chat docs. --- docs/API/chats.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/API/chats.md b/docs/API/chats.md index 3ddc13541..1f6175f77 100644 --- a/docs/API/chats.md +++ b/docs/API/chats.md @@ -62,7 +62,8 @@ Returned data: ... }, "id" : "1", - "unread" : 2 + "unread" : 2, + "last_message" : {...} // The last message in that chat } ``` @@ -105,7 +106,8 @@ Returned data: ... }, "id" : "1", - "unread" : 2 + "unread" : 2, + "last_message" : {...} // The last message in that chat } ] ``` From 172d9b11936bb029093eac430c58c89a81592c08 Mon Sep 17 00:00:00 2001 From: lain Date: Sun, 10 May 2020 13:08:01 +0200 Subject: [PATCH 106/529] Chat: Add last_message to schema. --- lib/pleroma/web/api_spec/schemas/chat.ex | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/pleroma/web/api_spec/schemas/chat.ex b/lib/pleroma/web/api_spec/schemas/chat.ex index 4d385d6ab..8aaa4a792 100644 --- a/lib/pleroma/web/api_spec/schemas/chat.ex +++ b/lib/pleroma/web/api_spec/schemas/chat.ex @@ -4,6 +4,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Chat do alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ChatMessage require OpenApiSpex @@ -12,9 +13,10 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Chat do description: "Response schema for a Chat", type: :object, properties: %{ - id: %Schema{type: :string, nullable: false}, - account: %Schema{type: :object, nullable: false}, - unread: %Schema{type: :integer, nullable: false} + id: %Schema{type: :string}, + account: %Schema{type: :object}, + unread: %Schema{type: :integer}, + last_message: %Schema{type: ChatMessage, nullable: true} }, example: %{ "account" => %{ @@ -64,7 +66,8 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Chat do "url" => "https://dontbulling.me/users/lain" }, "id" => "1", - "unread" => 2 + "unread" => 2, + "last_message" => ChatMessage.schema().example() } }) end From 8d5597ff68de22ee7b126730467649ada248aaf7 Mon Sep 17 00:00:00 2001 From: lain Date: Sun, 10 May 2020 13:26:14 +0200 Subject: [PATCH 107/529] ChatController: Add GET /chats/:id --- .../web/api_spec/operations/chat_operation.ex | 31 +++++++++++++++++++ lib/pleroma/web/api_spec/schemas/chat.ex | 2 +- .../web/api_spec/schemas/chat_message.ex | 1 + .../controllers/chat_controller.ex | 10 +++++- lib/pleroma/web/router.ex | 1 + .../controllers/chat_controller_test.exs | 17 ++++++++++ 6 files changed, 60 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index 16d3d5e22..fe6c2f52f 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -38,6 +38,37 @@ def mark_as_read_operation do } end + def show_operation do + %Operation{ + tags: ["chat"], + summary: "Create a chat", + operationId: "ChatController.show", + parameters: [ + Operation.parameter( + :id, + :path, + :string, + "The id of the chat", + required: true, + example: "1234" + ) + ], + responses: %{ + 200 => + Operation.response( + "The existing chat", + "application/json", + Chat + ) + }, + security: [ + %{ + "oAuth" => ["read"] + } + ] + } + end + def create_operation do %Operation{ tags: ["chat"], diff --git a/lib/pleroma/web/api_spec/schemas/chat.ex b/lib/pleroma/web/api_spec/schemas/chat.ex index 8aaa4a792..c6ec07c88 100644 --- a/lib/pleroma/web/api_spec/schemas/chat.ex +++ b/lib/pleroma/web/api_spec/schemas/chat.ex @@ -16,7 +16,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.Chat do id: %Schema{type: :string}, account: %Schema{type: :object}, unread: %Schema{type: :integer}, - last_message: %Schema{type: ChatMessage, nullable: true} + last_message: ChatMessage }, example: %{ "account" => %{ diff --git a/lib/pleroma/web/api_spec/schemas/chat_message.ex b/lib/pleroma/web/api_spec/schemas/chat_message.ex index 89e062ddd..6e8f1a10a 100644 --- a/lib/pleroma/web/api_spec/schemas/chat_message.ex +++ b/lib/pleroma/web/api_spec/schemas/chat_message.ex @@ -10,6 +10,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessage do OpenApiSpex.schema(%{ title: "ChatMessage", description: "Response schema for a ChatMessage", + nullable: true, type: :object, properties: %{ id: %Schema{type: :string}, diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 1ef3477c8..04f136dcd 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -27,7 +27,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do plug( OAuthScopesPlug, - %{scopes: ["read:statuses"]} when action in [:messages, :index] + %{scopes: ["read:statuses"]} when action in [:messages, :index, :show] ) plug(OpenApiSpex.Plug.CastAndValidate, render_error: Pleroma.Web.ApiSpec.RenderError) @@ -100,4 +100,12 @@ def create(%{assigns: %{user: user}} = conn, params) do |> render("show.json", chat: chat) end end + + def show(%{assigns: %{user: user}} = conn, params) do + with %Chat{} = chat <- Repo.get_by(Chat, user_id: user.id, id: params[:id]) do + conn + |> put_view(ChatView) + |> render("show.json", chat: chat) + end + end end diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 4b264c43e..3b1834d97 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -307,6 +307,7 @@ defmodule Pleroma.Web.Router do post("/chats/by-account-id/:id", ChatController, :create) get("/chats", ChatController, :index) + get("/chats/:id", ChatController, :show) get("/chats/:id/messages", ChatController, :messages) post("/chats/:id/messages", ChatController, :post_chat_message) post("/chats/:id/read", ChatController, :mark_as_read) diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index b4b73da90..dda4f9e5b 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -153,6 +153,23 @@ test "it creates or returns a chat", %{conn: conn} do end end + describe "GET /api/v1/pleroma/chats/:id" do + setup do: oauth_access(["read:statuses"]) + + test "it returns a chat", %{conn: conn, user: user} do + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + + result = + conn + |> get("/api/v1/pleroma/chats/#{chat.id}") + |> json_response_and_validate_schema(200) + + assert result["id"] == to_string(chat.id) + end + end + describe "GET /api/v1/pleroma/chats" do setup do: oauth_access(["read:statuses"]) From 8cc8d960af87cdc1e2398a8470155b0930f43f5c Mon Sep 17 00:00:00 2001 From: lain Date: Sun, 10 May 2020 13:27:40 +0200 Subject: [PATCH 108/529] Documentation: Add GET /chats/:id --- docs/API/chats.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/API/chats.md b/docs/API/chats.md index 1f6175f77..ed160abd9 100644 --- a/docs/API/chats.md +++ b/docs/API/chats.md @@ -43,12 +43,17 @@ you can call: `POST /api/v1/pleroma/chats/by-account-id/{account_id}` -The account id is the normal FlakeId of the usre - +The account id is the normal FlakeId of the user ``` POST /api/v1/pleroma/chats/by-account-id/someflakeid ``` +If you already have the id of a chat, you can also use + +``` +GET /api/v1/pleroma/chats/:id +``` + There will only ever be ONE Chat for you and a given recipient, so this call will return the same Chat if you already have one with that user. From 1b1dfb54eb092921fe9dab2c49928e5b04fa049b Mon Sep 17 00:00:00 2001 From: lain Date: Sun, 10 May 2020 13:28:05 +0200 Subject: [PATCH 109/529] Credo fixes. --- test/web/pleroma_api/views/chat_view_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/web/pleroma_api/views/chat_view_test.exs b/test/web/pleroma_api/views/chat_view_test.exs index 8568d98c6..e24e29835 100644 --- a/test/web/pleroma_api/views/chat_view_test.exs +++ b/test/web/pleroma_api/views/chat_view_test.exs @@ -9,8 +9,8 @@ defmodule Pleroma.Web.PleromaAPI.ChatViewTest do alias Pleroma.Object alias Pleroma.Web.CommonAPI alias Pleroma.Web.MastodonAPI.AccountView - alias Pleroma.Web.PleromaAPI.ChatView alias Pleroma.Web.PleromaAPI.ChatMessageView + alias Pleroma.Web.PleromaAPI.ChatView import Pleroma.Factory From fdb98715b8e6ced7c4037b1292fb10980a994803 Mon Sep 17 00:00:00 2001 From: lain Date: Mon, 11 May 2020 10:58:14 +0200 Subject: [PATCH 110/529] Chat: Fix wrong query. --- lib/pleroma/chat.ex | 1 + test/chat_test.exs | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/lib/pleroma/chat.ex b/lib/pleroma/chat.ex index 6a03ee3c1..4c92a58c7 100644 --- a/lib/pleroma/chat.ex +++ b/lib/pleroma/chat.ex @@ -29,6 +29,7 @@ defmodule Pleroma.Chat do def last_message_for_chat(chat) do messages_for_chat_query(chat) |> order_by(desc: :id) + |> limit(1) |> Repo.one() end diff --git a/test/chat_test.exs b/test/chat_test.exs index 943e48111..dfcb6422e 100644 --- a/test/chat_test.exs +++ b/test/chat_test.exs @@ -6,9 +6,26 @@ defmodule Pleroma.ChatTest do use Pleroma.DataCase, async: true alias Pleroma.Chat + alias Pleroma.Web.CommonAPI import Pleroma.Factory + describe "messages" do + test "it returns the last message in a chat" do + user = insert(:user) + recipient = insert(:user) + + {:ok, _message_1} = CommonAPI.post_chat_message(user, recipient, "hey") + {:ok, _message_2} = CommonAPI.post_chat_message(recipient, user, "ho") + + {:ok, chat} = Chat.get_or_create(user.id, recipient.ap_id) + + message = Chat.last_message_for_chat(chat) + + assert message.data["content"] == "ho" + end + end + describe "creation and getting" do test "it only works if the recipient is a valid user (for now)" do user = insert(:user) From 63477d07adb614413a382a87f06af2bc2495b432 Mon Sep 17 00:00:00 2001 From: Maksim Pechnikov Date: Tue, 12 May 2020 06:44:33 +0300 Subject: [PATCH 111/529] unsubscribes of friends when user deactivated --- lib/mix/tasks/pleroma/user.ex | 14 ++------------ lib/pleroma/user.ex | 20 +++++++++++++++----- test/tasks/user_test.exs | 8 ++++---- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/lib/mix/tasks/pleroma/user.ex b/lib/mix/tasks/pleroma/user.ex index da140ac86..93ecb4631 100644 --- a/lib/mix/tasks/pleroma/user.ex +++ b/lib/mix/tasks/pleroma/user.ex @@ -150,22 +150,12 @@ def run(["unsubscribe", nickname]) do with %User{} = user <- User.get_cached_by_nickname(nickname) do shell_info("Deactivating #{user.nickname}") User.deactivate(user) - - user - |> User.get_friends() - |> Enum.each(fn friend -> - user = User.get_cached_by_id(user.id) - - shell_info("Unsubscribing #{friend.nickname} from #{user.nickname}") - User.unfollow(user, friend) - end) - :timer.sleep(500) user = User.get_cached_by_id(user.id) - if Enum.empty?(User.get_friends(user)) do - shell_info("Successfully unsubscribed all followers from #{user.nickname}") + if Enum.empty?(Enum.filter(User.get_friends(user), & &1.local)) do + shell_info("Successfully unsubscribed all local followers from #{user.nickname}") end else _ -> diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index a86cc3202..1c456b27c 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -750,7 +750,19 @@ def unfollow(%User{ap_id: ap_id}, %User{ap_id: ap_id}) do {:error, "Not subscribed!"} end + @spec unfollow(User.t(), User.t()) :: {:ok, User.t(), Activity.t()} | {:error, String.t()} def unfollow(%User{} = follower, %User{} = followed) do + case do_unfollow(follower, followed) do + {:ok, follower, followed} -> + {:ok, follower, Utils.fetch_latest_follow(follower, followed)} + + error -> + error + end + end + + @spec do_unfollow(User.t(), User.t()) :: {:ok, User.t(), User.t()} | {:error, String.t()} + defp do_unfollow(%User{} = follower, %User{} = followed) do case get_follow_state(follower, followed) do state when state in [:follow_pending, :follow_accept] -> FollowingRelationship.unfollow(follower, followed) @@ -761,7 +773,7 @@ def unfollow(%User{} = follower, %User{} = followed) do |> update_following_count() |> set_cache() - {:ok, follower, Utils.fetch_latest_follow(follower, followed)} + {:ok, follower, followed} nil -> {:error, "Not subscribed!"} @@ -1401,15 +1413,13 @@ def deactivate(%User{} = user, status) do user |> get_followers() |> Enum.filter(& &1.local) - |> Enum.each(fn follower -> - follower |> update_following_count() |> set_cache() - end) + |> Enum.each(&set_cache(update_following_count(&1))) # Only update local user counts, remote will be update during the next pull. user |> get_friends() |> Enum.filter(& &1.local) - |> Enum.each(&update_follower_count/1) + |> Enum.each(&do_unfollow(user, &1)) {:ok, user} end diff --git a/test/tasks/user_test.exs b/test/tasks/user_test.exs index b4f68d494..4b3ab5a87 100644 --- a/test/tasks/user_test.exs +++ b/test/tasks/user_test.exs @@ -172,23 +172,23 @@ test "no user to toggle" do describe "running unsubscribe" do test "user is unsubscribed" do followed = insert(:user) + remote_followed = insert(:user, local: false) user = insert(:user) + User.follow(user, followed, :follow_accept) + User.follow(user, remote_followed, :follow_accept) Mix.Tasks.Pleroma.User.run(["unsubscribe", user.nickname]) assert_received {:mix_shell, :info, [message]} assert message =~ "Deactivating" - assert_received {:mix_shell, :info, [message]} - assert message =~ "Unsubscribing" - # Note that the task has delay :timer.sleep(500) assert_received {:mix_shell, :info, [message]} assert message =~ "Successfully unsubscribed" user = User.get_cached_by_nickname(user.nickname) - assert Enum.empty?(User.get_friends(user)) + assert Enum.empty?(Enum.filter(User.get_friends(user), & &1.local)) assert user.deactivated end From b5aa204eb8bf3f737d3d807a9924c0153d1b6d3e Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 12 May 2020 13:13:03 +0200 Subject: [PATCH 112/529] ChatController: Support deletion of chat messages. --- .../object_validators/delete_validator.ex | 3 ++- .../web/api_spec/operations/chat_operation.ex | 25 +++++++++++++++++++ .../controllers/chat_controller.ex | 24 +++++++++++++++++- lib/pleroma/web/router.ex | 1 + .../controllers/chat_controller_test.exs | 24 ++++++++++++++++++ 5 files changed, 75 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex b/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex index f42c03510..e5d08eb5c 100644 --- a/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/delete_validator.ex @@ -46,12 +46,13 @@ def add_deleted_activity_id(cng) do Answer Article Audio + ChatMessage Event Note Page Question - Video Tombstone + Video } def validate_data(cng) do cng diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index fe6c2f52f..8ba10c603 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -166,6 +166,31 @@ def post_chat_message_operation do } end + def delete_message_operation do + %Operation{ + tags: ["chat"], + summary: "delete_message", + operationId: "ChatController.delete_message", + parameters: [ + Operation.parameter(:id, :path, :string, "The ID of the Chat"), + Operation.parameter(:message_id, :path, :string, "The ID of the message") + ], + responses: %{ + 200 => + Operation.response( + "The deleted ChatMessage", + "application/json", + ChatMessage + ) + }, + security: [ + %{ + "oAuth" => ["write"] + } + ] + } + end + def chats_response do %Schema{ title: "ChatsResponse", diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 04f136dcd..8eed88752 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -4,6 +4,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do use Pleroma.Web, :controller + alias Pleroma.Activity alias Pleroma.Chat alias Pleroma.Object alias Pleroma.Pagination @@ -22,7 +23,8 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do plug( OAuthScopesPlug, - %{scopes: ["write:statuses"]} when action in [:post_chat_message, :create, :mark_as_read] + %{scopes: ["write:statuses"]} + when action in [:post_chat_message, :create, :mark_as_read, :delete_message] ) plug( @@ -34,6 +36,26 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do defdelegate open_api_operation(action), to: Pleroma.Web.ApiSpec.ChatOperation + def delete_message(%{assigns: %{user: %{ap_id: actor} = user}} = conn, %{ + message_id: id + }) do + with %Object{ + data: %{ + "actor" => ^actor, + "id" => object, + "to" => [recipient], + "type" => "ChatMessage" + } + } = message <- Object.get_by_id(id), + %Chat{} = chat <- Chat.get(user.id, recipient), + %Activity{} = activity <- Activity.get_create_by_object_ap_id(object), + {:ok, _delete} <- CommonAPI.delete(activity.id, user) do + conn + |> put_view(ChatMessageView) + |> render("show.json", for: user, object: message, chat: chat) + end + end + def post_chat_message( %{body_params: %{content: content} = params, assigns: %{user: %{id: user_id} = user}} = conn, diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 3b1834d97..0e4f45869 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -310,6 +310,7 @@ defmodule Pleroma.Web.Router do get("/chats/:id", ChatController, :show) get("/chats/:id/messages", ChatController, :messages) post("/chats/:id/messages", ChatController, :post_chat_message) + delete("/chats/:id/messages/:message_id", ChatController, :delete_message) post("/chats/:id/read", ChatController, :mark_as_read) end diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index dda4f9e5b..86ccbb117 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -4,6 +4,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do use Pleroma.Web.ConnCase, async: true + alias Pleroma.Object alias Pleroma.Chat alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.CommonAPI @@ -78,6 +79,29 @@ test "it works with an attachment", %{conn: conn, user: user} do end end + describe "DELETE /api/v1/pleroma/chats/:id/messages/:message_id" do + setup do: oauth_access(["write:statuses"]) + + test "it deletes a message for the author of the message", %{conn: conn, user: user} do + recipient = insert(:user) + + {:ok, message} = + CommonAPI.post_chat_message(user, recipient, "Hello darkness my old friend") + + object = Object.normalize(message, false) + + chat = Chat.get(user.id, recipient.ap_id) + + result = + conn + |> put_req_header("content-type", "application/json") + |> delete("/api/v1/pleroma/chats/#{chat.id}/messages/#{object.id}") + |> json_response_and_validate_schema(200) + + assert result["id"] == to_string(object.id) + end + end + describe "GET /api/v1/pleroma/chats/:id/messages" do setup do: oauth_access(["read:statuses"]) From ec72cba43ec4f45faadf1b06a6d014cd4136707e Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 12 May 2020 13:23:09 +0200 Subject: [PATCH 113/529] Chat Controller: Add basic error handling. --- .../web/pleroma_api/controllers/chat_controller.ex | 5 +++-- .../pleroma_api/controllers/chat_controller_test.exs | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 8eed88752..4ce3e7419 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -18,8 +18,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatController do import Ecto.Query import Pleroma.Web.ActivityPub.ObjectValidator, only: [stringify_keys: 1] - # TODO - # - Error handling + action_fallback(Pleroma.Web.MastodonAPI.FallbackController) plug( OAuthScopesPlug, @@ -53,6 +52,8 @@ def delete_message(%{assigns: %{user: %{ap_id: actor} = user}} = conn, %{ conn |> put_view(ChatMessageView) |> render("show.json", for: user, object: message, chat: chat) + else + _e -> {:error, :could_not_delete} end end diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index 86ccbb117..75d4903ed 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -88,6 +88,8 @@ test "it deletes a message for the author of the message", %{conn: conn, user: u {:ok, message} = CommonAPI.post_chat_message(user, recipient, "Hello darkness my old friend") + {:ok, other_message} = CommonAPI.post_chat_message(recipient, user, "nico nico ni") + object = Object.normalize(message, false) chat = Chat.get(user.id, recipient.ap_id) @@ -99,6 +101,16 @@ test "it deletes a message for the author of the message", %{conn: conn, user: u |> json_response_and_validate_schema(200) assert result["id"] == to_string(object.id) + + object = Object.normalize(other_message, false) + + result = + conn + |> put_req_header("content-type", "application/json") + |> delete("/api/v1/pleroma/chats/#{chat.id}/messages/#{object.id}") + |> json_response(400) + + assert result == %{"error" => "could_not_delete"} end end From a61120f497e5d17be1207eacd11525edb7b6db36 Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 12 May 2020 13:25:25 +0200 Subject: [PATCH 114/529] Documention: Add chat message deletion docs --- docs/API/chats.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/API/chats.md b/docs/API/chats.md index ed160abd9..ad36961ae 100644 --- a/docs/API/chats.md +++ b/docs/API/chats.md @@ -192,6 +192,14 @@ Returned data: } ``` +### Deleting a chat message + +Deleting a chat message for given Chat id works like this: + +`DELETE /api/v1/pleroma/chats/{chat_id}/messages/{message_id}` + +Returned data is the deleted message. + ### Notifications There's a new `pleroma:chat_mention` notification, which has this form: From e44166b510f95bfb2e679b2d64bbf7e0facd0dd2 Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 12 May 2020 14:44:11 +0200 Subject: [PATCH 115/529] Credo fixes. --- test/web/pleroma_api/controllers/chat_controller_test.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index 75d4903ed..861ef10b0 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -4,8 +4,8 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do use Pleroma.Web.ConnCase, async: true - alias Pleroma.Object alias Pleroma.Chat + alias Pleroma.Object alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.CommonAPI From c0ea5c60e4e709d3d4415de42a65f878b55dc3bb Mon Sep 17 00:00:00 2001 From: lain Date: Tue, 12 May 2020 16:43:04 +0200 Subject: [PATCH 116/529] ChatController: Don't return chats for user you've blocked. --- .../controllers/chat_controller.ex | 5 +++- .../controllers/chat_controller_test.exs | 23 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 4ce3e7419..496cb8e87 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -102,10 +102,13 @@ def messages(%{assigns: %{user: %{id: user_id} = user}} = conn, %{id: id} = para end end - def index(%{assigns: %{user: %{id: user_id}}} = conn, params) do + def index(%{assigns: %{user: %{id: user_id} = user}} = conn, params) do + blocked_ap_ids = User.blocked_users_ap_ids(user) + chats = from(c in Chat, where: c.user_id == ^user_id, + where: c.recipient not in ^blocked_ap_ids, order_by: [desc: c.updated_at] ) |> Pagination.fetch_paginated(params |> stringify_keys) diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index 861ef10b0..037dd2297 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -6,6 +6,7 @@ defmodule Pleroma.Web.PleromaAPI.ChatControllerTest do alias Pleroma.Chat alias Pleroma.Object + alias Pleroma.User alias Pleroma.Web.ActivityPub.ActivityPub alias Pleroma.Web.CommonAPI @@ -209,6 +210,28 @@ test "it returns a chat", %{conn: conn, user: user} do describe "GET /api/v1/pleroma/chats" do setup do: oauth_access(["read:statuses"]) + test "it does not return chats with users you blocked", %{conn: conn, user: user} do + recipient = insert(:user) + + {:ok, _} = Chat.get_or_create(user.id, recipient.ap_id) + + result = + conn + |> get("/api/v1/pleroma/chats") + |> json_response_and_validate_schema(200) + + assert length(result) == 1 + + User.block(user, recipient) + + result = + conn + |> get("/api/v1/pleroma/chats") + |> json_response_and_validate_schema(200) + + assert length(result) == 0 + end + test "it paginates", %{conn: conn, user: user} do Enum.each(1..30, fn _ -> recipient = insert(:user) From 63a1a82f38d3d8a63dd7d52e1412446274c94722 Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Tue, 12 May 2020 19:14:35 +0300 Subject: [PATCH 117/529] [#2456] Added support for `embed_relationships` param, nailed down endpoints which should support it. Fixed :source_mutes relationships subset fetching. --- lib/pleroma/user_relationship.ex | 43 ++++++++++++++++--- lib/pleroma/web/controller_helper.ex | 5 +++ .../controllers/account_controller.ex | 17 +++++++- .../controllers/search_controller.ex | 14 +++++- .../web/mastodon_api/views/account_view.ex | 29 ++++++++++++- .../mastodon_api/views/notification_view.ex | 2 +- .../web/mastodon_api/views/status_view.ex | 2 +- 7 files changed, 99 insertions(+), 13 deletions(-) diff --git a/lib/pleroma/user_relationship.ex b/lib/pleroma/user_relationship.ex index 235ad427c..6dfdd2860 100644 --- a/lib/pleroma/user_relationship.ex +++ b/lib/pleroma/user_relationship.ex @@ -87,6 +87,22 @@ def dictionary( source_to_target_rel_types \\ nil, target_to_source_rel_types \\ nil ) + + def dictionary( + _source_users, + _target_users, + [] = _source_to_target_rel_types, + [] = _target_to_source_rel_types + ) do + [] + end + + def dictionary( + source_users, + target_users, + source_to_target_rel_types, + target_to_source_rel_types + ) when is_list(source_users) and is_list(target_users) do source_user_ids = User.binary_id(source_users) target_user_ids = User.binary_id(target_users) @@ -138,11 +154,16 @@ def view_relationships_option(nil = _reading_user, _actors, _opts) do def view_relationships_option(%User{} = reading_user, actors, opts) do {source_to_target_rel_types, target_to_source_rel_types} = - if opts[:source_mutes_only] do - # This option is used for rendering statuses (FE needs `muted` flag for each one anyways) - {[:mute], []} - else - {[:block, :mute, :notification_mute, :reblog_mute], [:block, :inverse_subscription]} + case opts[:subset] do + :source_mutes -> + # Used for statuses rendering (FE needs `muted` flag for each status when statuses load) + {[:mute], []} + + nil -> + {[:block, :mute, :notification_mute, :reblog_mute], [:block, :inverse_subscription]} + + unknown -> + raise "Unsupported :subset option value: #{inspect(unknown)}" end user_relationships = @@ -153,7 +174,17 @@ def view_relationships_option(%User{} = reading_user, actors, opts) do target_to_source_rel_types ) - following_relationships = FollowingRelationship.all_between_user_sets([reading_user], actors) + following_relationships = + case opts[:subset] do + :source_mutes -> + [] + + nil -> + FollowingRelationship.all_between_user_sets([reading_user], actors) + + unknown -> + raise "Unsupported :subset option value: #{inspect(unknown)}" + end %{user_relationships: user_relationships, following_relationships: following_relationships} end diff --git a/lib/pleroma/web/controller_helper.ex b/lib/pleroma/web/controller_helper.ex index 61fdec030..ae9b265b1 100644 --- a/lib/pleroma/web/controller_helper.ex +++ b/lib/pleroma/web/controller_helper.ex @@ -103,4 +103,9 @@ def try_render(conn, _, _) do def put_if_exist(map, _key, nil), do: map def put_if_exist(map, key, value), do: Map.put(map, key, value) + + def embed_relationships?(params) do + # To do: change to `truthy_param?(params["embed_relationships"])` once PleromaFE supports it + not explicitly_falsy_param?(params["embed_relationships"]) + end end diff --git a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex index 489441da5..ef41f9e96 100644 --- a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex @@ -10,6 +10,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do add_link_headers: 2, truthy_param?: 1, assign_account_by_id: 2, + embed_relationships?: 1, json_response: 3 ] @@ -269,7 +270,13 @@ def followers(%{assigns: %{user: for_user, account: user}} = conn, params) do conn |> add_link_headers(followers) - |> render("index.json", for: for_user, users: followers, as: :user) + # https://git.pleroma.social/pleroma/pleroma-fe/-/issues/838#note_59223 + |> render("index.json", + for: for_user, + users: followers, + as: :user, + embed_relationships: embed_relationships?(params) + ) end @doc "GET /api/v1/accounts/:id/following" @@ -288,7 +295,13 @@ def following(%{assigns: %{user: for_user, account: user}} = conn, params) do conn |> add_link_headers(followers) - |> render("index.json", for: for_user, users: followers, as: :user) + # https://git.pleroma.social/pleroma/pleroma-fe/-/issues/838#note_59223 + |> render("index.json", + for: for_user, + users: followers, + as: :user, + embed_relationships: embed_relationships?(params) + ) end @doc "GET /api/v1/accounts/:id/lists" diff --git a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex index c30ae1c7a..632c4590f 100644 --- a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex @@ -11,6 +11,7 @@ defmodule Pleroma.Web.MastodonAPI.SearchController do alias Pleroma.Repo alias Pleroma.User alias Pleroma.Web + alias Pleroma.Web.ControllerHelper alias Pleroma.Web.MastodonAPI.AccountView alias Pleroma.Web.MastodonAPI.StatusView @@ -32,7 +33,13 @@ def account_search(%{assigns: %{user: user}} = conn, %{q: query} = params) do conn |> put_view(AccountView) - |> render("index.json", users: accounts, for: user, as: :user) + # https://git.pleroma.social/pleroma/pleroma-fe/-/issues/838#note_59223 + |> render("index.json", + users: accounts, + for: user, + as: :user, + embed_relationships: ControllerHelper.embed_relationships?(params) + ) end def search2(conn, params), do: do_search(:v2, conn, params) @@ -75,6 +82,7 @@ defp search_options(params, user) do offset: params[:offset], type: params[:type], author: get_author(params), + embed_relationships: ControllerHelper.embed_relationships?(params), for_user: user ] |> Enum.filter(&elem(&1, 1)) @@ -86,7 +94,9 @@ defp resource_search(_, "accounts", query, options) do AccountView.render("index.json", users: accounts, for: options[:for_user], - as: :user + as: :user, + # https://git.pleroma.social/pleroma/pleroma-fe/-/issues/838#note_59223 + embed_relationships: options[:embed_relationships] ) end diff --git a/lib/pleroma/web/mastodon_api/views/account_view.ex b/lib/pleroma/web/mastodon_api/views/account_view.ex index b3a14d255..6304d77ca 100644 --- a/lib/pleroma/web/mastodon_api/views/account_view.ex +++ b/lib/pleroma/web/mastodon_api/views/account_view.ex @@ -13,6 +13,22 @@ defmodule Pleroma.Web.MastodonAPI.AccountView do alias Pleroma.Web.MediaProxy def render("index.json", %{users: users} = opts) do + reading_user = opts[:for] + + relationships_opt = + cond do + Map.has_key?(opts, :relationships) -> + opts[:relationships] + + is_nil(reading_user) || !opts[:embed_relationships] -> + UserRelationship.view_relationships_option(nil, []) + + true -> + UserRelationship.view_relationships_option(reading_user, users) + end + + opts = Map.put(opts, :relationships, relationships_opt) + users |> render_many(AccountView, "show.json", opts) |> Enum.filter(&Enum.any?/1) @@ -175,6 +191,17 @@ defp do_render("show.json", %{user: user} = opts) do } end) + relationship = + if opts[:embed_relationships] do + render("relationship.json", %{ + user: opts[:for], + target: user, + relationships: opts[:relationships] + }) + else + %{} + end + %{ id: to_string(user.id), username: username_from_nickname(user.nickname), @@ -213,7 +240,7 @@ defp do_render("show.json", %{user: user} = opts) do hide_followers: user.hide_followers, hide_follows: user.hide_follows, hide_favorites: user.hide_favorites, - relationship: %{}, + relationship: relationship, skip_thread_containment: user.skip_thread_containment, background_image: image_url(user.background) |> MediaProxy.url() } diff --git a/lib/pleroma/web/mastodon_api/views/notification_view.ex b/lib/pleroma/web/mastodon_api/views/notification_view.ex index a53218d59..c46ddcf55 100644 --- a/lib/pleroma/web/mastodon_api/views/notification_view.ex +++ b/lib/pleroma/web/mastodon_api/views/notification_view.ex @@ -51,7 +51,7 @@ def render("index.json", %{notifications: notifications, for: reading_user} = op |> Enum.filter(& &1) |> Kernel.++(move_activities_targets) - UserRelationship.view_relationships_option(reading_user, actors, source_mutes_only: true) + UserRelationship.view_relationships_option(reading_user, actors, subset: :source_mutes) end opts = diff --git a/lib/pleroma/web/mastodon_api/views/status_view.ex b/lib/pleroma/web/mastodon_api/views/status_view.ex index f7895c514..05a26017a 100644 --- a/lib/pleroma/web/mastodon_api/views/status_view.ex +++ b/lib/pleroma/web/mastodon_api/views/status_view.ex @@ -107,7 +107,7 @@ def render("index.json", opts) do |> Enum.map(&get_user(&1.data["actor"], false)) |> Enum.filter(& &1) - UserRelationship.view_relationships_option(reading_user, actors, source_mutes_only: true) + UserRelationship.view_relationships_option(reading_user, actors, subset: :source_mutes) end opts = From bfb48e3db6009c31e52cfe5ac4828a6143d7e549 Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Tue, 12 May 2020 20:55:01 +0300 Subject: [PATCH 118/529] [#2456] OpenAPI: added `embed_relationships` param definition. --- lib/pleroma/web/api_spec/helpers.ex | 9 ++ .../api_spec/operations/account_operation.ex | 6 +- .../api_spec/operations/search_operation.ex | 117 +++++++++--------- 3 files changed, 73 insertions(+), 59 deletions(-) diff --git a/lib/pleroma/web/api_spec/helpers.ex b/lib/pleroma/web/api_spec/helpers.ex index 183df43ee..ee077a3f9 100644 --- a/lib/pleroma/web/api_spec/helpers.ex +++ b/lib/pleroma/web/api_spec/helpers.ex @@ -47,6 +47,15 @@ def pagination_params do ] end + def embed_relationships_param do + Operation.parameter( + :embed_relationships, + :query, + :boolean, + "Embed relationships into accounts (Pleroma extension)" + ) + end + def empty_object_response do Operation.response("Empty object", "application/json", %Schema{type: :object, example: %{}}) end diff --git a/lib/pleroma/web/api_spec/operations/account_operation.ex b/lib/pleroma/web/api_spec/operations/account_operation.ex index 70069d6f9..c2a56b786 100644 --- a/lib/pleroma/web/api_spec/operations/account_operation.ex +++ b/lib/pleroma/web/api_spec/operations/account_operation.ex @@ -156,7 +156,8 @@ def followers_operation do description: "Accounts which follow the given account, if network is not hidden by the account owner.", parameters: - [%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}] ++ pagination_params(), + [%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}] ++ + pagination_params() ++ [embed_relationships_param()], responses: %{ 200 => Operation.response("Accounts", "application/json", array_of_accounts()) } @@ -172,7 +173,8 @@ def following_operation do description: "Accounts which the given account is following, if network is not hidden by the account owner.", parameters: - [%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}] ++ pagination_params(), + [%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}] ++ + pagination_params() ++ [embed_relationships_param()], responses: %{200 => Operation.response("Accounts", "application/json", array_of_accounts())} } end diff --git a/lib/pleroma/web/api_spec/operations/search_operation.ex b/lib/pleroma/web/api_spec/operations/search_operation.ex index 6ea00a9a8..0dd908d7f 100644 --- a/lib/pleroma/web/api_spec/operations/search_operation.ex +++ b/lib/pleroma/web/api_spec/operations/search_operation.ex @@ -24,29 +24,30 @@ def account_search_operation do tags: ["Search"], summary: "Search for matching accounts by username or display name", operationId: "SearchController.account_search", - parameters: [ - Operation.parameter(:q, :query, %Schema{type: :string}, "What to search for", - required: true - ), - Operation.parameter( - :limit, - :query, - %Schema{type: :integer, default: 40}, - "Maximum number of results" - ), - Operation.parameter( - :resolve, - :query, - %Schema{allOf: [BooleanLike], default: false}, - "Attempt WebFinger lookup. Use this when `q` is an exact address." - ), - Operation.parameter( - :following, - :query, - %Schema{allOf: [BooleanLike], default: false}, - "Only include accounts that the user is following" - ) - ], + parameters: + [ + Operation.parameter(:q, :query, %Schema{type: :string}, "What to search for", + required: true + ), + Operation.parameter( + :limit, + :query, + %Schema{type: :integer, default: 40}, + "Maximum number of results" + ), + Operation.parameter( + :resolve, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Attempt WebFinger lookup. Use this when `q` is an exact address." + ), + Operation.parameter( + :following, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Only include accounts that the user is following" + ) + ] ++ [embed_relationships_param()], responses: %{ 200 => Operation.response( @@ -65,40 +66,42 @@ def search_operation do security: [%{"oAuth" => ["read:search"]}], operationId: "SearchController.search", deprecated: true, - parameters: [ - Operation.parameter( - :account_id, - :query, - FlakeID, - "If provided, statuses returned will be authored only by this account" - ), - Operation.parameter( - :type, - :query, - %Schema{type: :string, enum: ["accounts", "hashtags", "statuses"]}, - "Search type" - ), - Operation.parameter(:q, :query, %Schema{type: :string}, "The search query", required: true), - Operation.parameter( - :resolve, - :query, - %Schema{allOf: [BooleanLike], default: false}, - "Attempt WebFinger lookup" - ), - Operation.parameter( - :following, - :query, - %Schema{allOf: [BooleanLike], default: false}, - "Only include accounts that the user is following" - ), - Operation.parameter( - :offset, - :query, - %Schema{type: :integer}, - "Offset" - ) - | pagination_params() - ], + parameters: + [ + Operation.parameter( + :account_id, + :query, + FlakeID, + "If provided, statuses returned will be authored only by this account" + ), + Operation.parameter( + :type, + :query, + %Schema{type: :string, enum: ["accounts", "hashtags", "statuses"]}, + "Search type" + ), + Operation.parameter(:q, :query, %Schema{type: :string}, "The search query", + required: true + ), + Operation.parameter( + :resolve, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Attempt WebFinger lookup" + ), + Operation.parameter( + :following, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Only include accounts that the user is following" + ), + Operation.parameter( + :offset, + :query, + %Schema{type: :integer}, + "Offset" + ) + ] ++ pagination_params() ++ [embed_relationships_param()], responses: %{ 200 => Operation.response("Results", "application/json", results()) } From 33b798425f8d194db9a5acdff372f14a69e43c9d Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Wed, 13 May 2020 12:50:52 +0300 Subject: [PATCH 119/529] [#2456] Post-merge fix. --- lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex b/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex index e2922d830..958567510 100644 --- a/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/timeline_controller.ex @@ -6,7 +6,7 @@ defmodule Pleroma.Web.MastodonAPI.TimelineController do use Pleroma.Web, :controller import Pleroma.Web.ControllerHelper, - only: [add_link_headers: 2, add_link_headers: 3, truthy_param?: 1] + only: [add_link_headers: 2, add_link_headers: 3] alias Pleroma.Pagination alias Pleroma.Plugs.EnsurePublicOrAuthenticatedPlug From 06cad239e50cada3aec4fc3b4c494a70d328672c Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 13 May 2020 14:05:22 +0200 Subject: [PATCH 120/529] InstanceView: Add pleroma chat messages to nodeinfo --- lib/pleroma/web/mastodon_api/views/instance_view.ex | 3 ++- test/web/node_info_test.exs | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/pleroma/web/mastodon_api/views/instance_view.ex b/lib/pleroma/web/mastodon_api/views/instance_view.ex index a329ffc28..17cfc4fcf 100644 --- a/lib/pleroma/web/mastodon_api/views/instance_view.ex +++ b/lib/pleroma/web/mastodon_api/views/instance_view.ex @@ -68,7 +68,8 @@ def features do if Config.get([:instance, :safe_dm_mentions]) do "safe_dm_mentions" end, - "pleroma_emoji_reactions" + "pleroma_emoji_reactions", + "pleroma_chat_messages" ] |> Enum.filter(& &1) end diff --git a/test/web/node_info_test.exs b/test/web/node_info_test.exs index 9bcc07b37..00925caad 100644 --- a/test/web/node_info_test.exs +++ b/test/web/node_info_test.exs @@ -145,7 +145,8 @@ test "it shows default features flags", %{conn: conn} do "shareable_emoji_packs", "multifetch", "pleroma_emoji_reactions", - "pleroma:api/v1/notifications:include_types_filter" + "pleroma:api/v1/notifications:include_types_filter", + "pleroma_chat_messages" ] assert MapSet.subset?( From 59b6d5f2aa57f78ecfe7066671bb12d223214c18 Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Wed, 13 May 2020 15:08:07 +0300 Subject: [PATCH 121/529] [#2456] Changed `embed_relationships` param to `with_relationships`. --- lib/pleroma/web/api_spec/helpers.ex | 10 +- .../api_spec/operations/account_operation.ex | 14 ++- .../api_spec/operations/search_operation.ex | 118 +++++++++--------- .../api_spec/operations/timeline_operation.ex | 4 - lib/pleroma/web/controller_helper.ex | 6 +- .../controllers/account_controller.ex | 6 +- .../controllers/search_controller.ex | 4 +- 7 files changed, 77 insertions(+), 85 deletions(-) diff --git a/lib/pleroma/web/api_spec/helpers.ex b/lib/pleroma/web/api_spec/helpers.ex index ee077a3f9..859e45b57 100644 --- a/lib/pleroma/web/api_spec/helpers.ex +++ b/lib/pleroma/web/api_spec/helpers.ex @@ -5,6 +5,7 @@ defmodule Pleroma.Web.ApiSpec.Helpers do alias OpenApiSpex.Operation alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.BooleanLike def request_body(description, schema_ref, opts \\ []) do media_types = ["application/json", "multipart/form-data", "application/x-www-form-urlencoded"] @@ -47,13 +48,8 @@ def pagination_params do ] end - def embed_relationships_param do - Operation.parameter( - :embed_relationships, - :query, - :boolean, - "Embed relationships into accounts (Pleroma extension)" - ) + def with_relationships_param do + Operation.parameter(:with_relationships, :query, BooleanLike, "Include relationships") end def empty_object_response do diff --git a/lib/pleroma/web/api_spec/operations/account_operation.ex b/lib/pleroma/web/api_spec/operations/account_operation.ex index c2a56b786..7056f739b 100644 --- a/lib/pleroma/web/api_spec/operations/account_operation.ex +++ b/lib/pleroma/web/api_spec/operations/account_operation.ex @@ -155,9 +155,10 @@ def followers_operation do security: [%{"oAuth" => ["read:accounts"]}], description: "Accounts which follow the given account, if network is not hidden by the account owner.", - parameters: - [%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}] ++ - pagination_params() ++ [embed_relationships_param()], + parameters: [ + %Reference{"$ref": "#/components/parameters/accountIdOrNickname"}, + with_relationships_param() | pagination_params() + ], responses: %{ 200 => Operation.response("Accounts", "application/json", array_of_accounts()) } @@ -172,9 +173,10 @@ def following_operation do security: [%{"oAuth" => ["read:accounts"]}], description: "Accounts which the given account is following, if network is not hidden by the account owner.", - parameters: - [%Reference{"$ref": "#/components/parameters/accountIdOrNickname"}] ++ - pagination_params() ++ [embed_relationships_param()], + parameters: [ + %Reference{"$ref": "#/components/parameters/accountIdOrNickname"}, + with_relationships_param() | pagination_params() + ], responses: %{200 => Operation.response("Accounts", "application/json", array_of_accounts())} } end diff --git a/lib/pleroma/web/api_spec/operations/search_operation.ex b/lib/pleroma/web/api_spec/operations/search_operation.ex index 0dd908d7f..475848ff5 100644 --- a/lib/pleroma/web/api_spec/operations/search_operation.ex +++ b/lib/pleroma/web/api_spec/operations/search_operation.ex @@ -24,30 +24,30 @@ def account_search_operation do tags: ["Search"], summary: "Search for matching accounts by username or display name", operationId: "SearchController.account_search", - parameters: - [ - Operation.parameter(:q, :query, %Schema{type: :string}, "What to search for", - required: true - ), - Operation.parameter( - :limit, - :query, - %Schema{type: :integer, default: 40}, - "Maximum number of results" - ), - Operation.parameter( - :resolve, - :query, - %Schema{allOf: [BooleanLike], default: false}, - "Attempt WebFinger lookup. Use this when `q` is an exact address." - ), - Operation.parameter( - :following, - :query, - %Schema{allOf: [BooleanLike], default: false}, - "Only include accounts that the user is following" - ) - ] ++ [embed_relationships_param()], + parameters: [ + Operation.parameter(:q, :query, %Schema{type: :string}, "What to search for", + required: true + ), + Operation.parameter( + :limit, + :query, + %Schema{type: :integer, default: 40}, + "Maximum number of results" + ), + Operation.parameter( + :resolve, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Attempt WebFinger lookup. Use this when `q` is an exact address." + ), + Operation.parameter( + :following, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Only include accounts that the user is following" + ), + with_relationships_param() + ], responses: %{ 200 => Operation.response( @@ -66,42 +66,40 @@ def search_operation do security: [%{"oAuth" => ["read:search"]}], operationId: "SearchController.search", deprecated: true, - parameters: - [ - Operation.parameter( - :account_id, - :query, - FlakeID, - "If provided, statuses returned will be authored only by this account" - ), - Operation.parameter( - :type, - :query, - %Schema{type: :string, enum: ["accounts", "hashtags", "statuses"]}, - "Search type" - ), - Operation.parameter(:q, :query, %Schema{type: :string}, "The search query", - required: true - ), - Operation.parameter( - :resolve, - :query, - %Schema{allOf: [BooleanLike], default: false}, - "Attempt WebFinger lookup" - ), - Operation.parameter( - :following, - :query, - %Schema{allOf: [BooleanLike], default: false}, - "Only include accounts that the user is following" - ), - Operation.parameter( - :offset, - :query, - %Schema{type: :integer}, - "Offset" - ) - ] ++ pagination_params() ++ [embed_relationships_param()], + parameters: [ + Operation.parameter( + :account_id, + :query, + FlakeID, + "If provided, statuses returned will be authored only by this account" + ), + Operation.parameter( + :type, + :query, + %Schema{type: :string, enum: ["accounts", "hashtags", "statuses"]}, + "Search type" + ), + Operation.parameter(:q, :query, %Schema{type: :string}, "The search query", required: true), + Operation.parameter( + :resolve, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Attempt WebFinger lookup" + ), + Operation.parameter( + :following, + :query, + %Schema{allOf: [BooleanLike], default: false}, + "Only include accounts that the user is following" + ), + Operation.parameter( + :offset, + :query, + %Schema{type: :integer}, + "Offset" + ), + with_relationships_param() | pagination_params() + ], responses: %{ 200 => Operation.response("Results", "application/json", results()) } diff --git a/lib/pleroma/web/api_spec/operations/timeline_operation.ex b/lib/pleroma/web/api_spec/operations/timeline_operation.ex index 1b89035d4..6cbc7f747 100644 --- a/lib/pleroma/web/api_spec/operations/timeline_operation.ex +++ b/lib/pleroma/web/api_spec/operations/timeline_operation.ex @@ -153,10 +153,6 @@ defp array_of_statuses do } end - defp with_relationships_param do - Operation.parameter(:with_relationships, :query, BooleanLike, "Include relationships") - end - defp local_param do Operation.parameter( :local, diff --git a/lib/pleroma/web/controller_helper.ex b/lib/pleroma/web/controller_helper.ex index ae9b265b1..ff94c6be0 100644 --- a/lib/pleroma/web/controller_helper.ex +++ b/lib/pleroma/web/controller_helper.ex @@ -104,8 +104,8 @@ def put_if_exist(map, _key, nil), do: map def put_if_exist(map, key, value), do: Map.put(map, key, value) - def embed_relationships?(params) do - # To do: change to `truthy_param?(params["embed_relationships"])` once PleromaFE supports it - not explicitly_falsy_param?(params["embed_relationships"]) + def with_relationships?(params) do + # To do: change to `truthy_param?(params["with_relationships"])` once PleromaFE supports it + not explicitly_falsy_param?(params["with_relationships"]) end end diff --git a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex index ef41f9e96..2dd0252cc 100644 --- a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex @@ -10,7 +10,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do add_link_headers: 2, truthy_param?: 1, assign_account_by_id: 2, - embed_relationships?: 1, + with_relationships?: 1, json_response: 3 ] @@ -275,7 +275,7 @@ def followers(%{assigns: %{user: for_user, account: user}} = conn, params) do for: for_user, users: followers, as: :user, - embed_relationships: embed_relationships?(params) + embed_relationships: with_relationships?(params) ) end @@ -300,7 +300,7 @@ def following(%{assigns: %{user: for_user, account: user}} = conn, params) do for: for_user, users: followers, as: :user, - embed_relationships: embed_relationships?(params) + embed_relationships: with_relationships?(params) ) end diff --git a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex index 632c4590f..1c2860cc7 100644 --- a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex @@ -38,7 +38,7 @@ def account_search(%{assigns: %{user: user}} = conn, %{q: query} = params) do users: accounts, for: user, as: :user, - embed_relationships: ControllerHelper.embed_relationships?(params) + embed_relationships: ControllerHelper.with_relationships?(params) ) end @@ -82,7 +82,7 @@ defp search_options(params, user) do offset: params[:offset], type: params[:type], author: get_author(params), - embed_relationships: ControllerHelper.embed_relationships?(params), + embed_relationships: ControllerHelper.with_relationships?(params), for_user: user ] |> Enum.filter(&elem(&1, 1)) From 0f0acc740d30c47d093f27875d4decf0693b2845 Mon Sep 17 00:00:00 2001 From: lain Date: Wed, 13 May 2020 15:31:28 +0200 Subject: [PATCH 122/529] Chat: Allow posting without content if an attachment is present. --- docs/API/chats.md | 5 ++- .../chat_message_validator.ex | 14 +++++++- .../web/api_spec/operations/chat_operation.ex | 12 ++++--- .../web/api_spec/schemas/chat_message.ex | 2 +- lib/pleroma/web/common_api/common_api.ex | 17 +++++++--- .../controllers/chat_controller.ex | 7 ++-- .../activity_pub/object_validator_test.exs | 32 +++++++++++++++++++ test/web/common_api/common_api_test.exs | 23 +++++++++++++ .../controllers/chat_controller_test.exs | 18 +++++++++-- 9 files changed, 111 insertions(+), 19 deletions(-) diff --git a/docs/API/chats.md b/docs/API/chats.md index ad36961ae..1ea18ff5f 100644 --- a/docs/API/chats.md +++ b/docs/API/chats.md @@ -166,11 +166,10 @@ Posting a chat message for given Chat id works like this: `POST /api/v1/pleroma/chats/{id}/messages` Parameters: -- content: The text content of the message +- content: The text content of the message. Optional if media is attached. - media_id: The id of an upload that will be attached to the message. -Currently, no formatting beyond basic escaping and emoji is implemented, as well as no -attachments. This will most probably change. +Currently, no formatting beyond basic escaping and emoji is implemented. Returned data: diff --git a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex index e40c80ab4..9c20c188a 100644 --- a/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex +++ b/lib/pleroma/web/activity_pub/object_validators/chat_message_validator.ex @@ -61,12 +61,24 @@ def changeset(struct, data) do def validate_data(data_cng) do data_cng |> validate_inclusion(:type, ["ChatMessage"]) - |> validate_required([:id, :actor, :to, :type, :content, :published]) + |> validate_required([:id, :actor, :to, :type, :published]) + |> validate_content_or_attachment() |> validate_length(:to, is: 1) |> validate_length(:content, max: Pleroma.Config.get([:instance, :remote_limit])) |> validate_local_concern() end + def validate_content_or_attachment(cng) do + attachment = get_field(cng, :attachment) + + if attachment do + cng + else + cng + |> validate_required([:content]) + end + end + @doc """ Validates the following - If both users are in our system diff --git a/lib/pleroma/web/api_spec/operations/chat_operation.ex b/lib/pleroma/web/api_spec/operations/chat_operation.ex index 8ba10c603..a1c5db5dc 100644 --- a/lib/pleroma/web/api_spec/operations/chat_operation.ex +++ b/lib/pleroma/web/api_spec/operations/chat_operation.ex @@ -5,6 +5,7 @@ defmodule Pleroma.Web.ApiSpec.ChatOperation do alias OpenApiSpex.Operation alias OpenApiSpex.Schema + alias Pleroma.Web.ApiSpec.Schemas.ApiError alias Pleroma.Web.ApiSpec.Schemas.Chat alias Pleroma.Web.ApiSpec.Schemas.ChatMessage @@ -149,14 +150,15 @@ def post_chat_message_operation do parameters: [ Operation.parameter(:id, :path, :string, "The ID of the Chat") ], - requestBody: request_body("Parameters", chat_message_create(), required: true), + requestBody: request_body("Parameters", chat_message_create()), responses: %{ 200 => Operation.response( "The newly created ChatMessage", "application/json", ChatMessage - ) + ), + 400 => Operation.response("Bad Request", "application/json", ApiError) }, security: [ %{ @@ -292,10 +294,12 @@ def chat_message_create do description: "POST body for creating an chat message", type: :object, properties: %{ - content: %Schema{type: :string, description: "The content of your message"}, + content: %Schema{ + type: :string, + description: "The content of your message. Optional if media_id is present" + }, media_id: %Schema{type: :string, description: "The id of an upload"} }, - required: [:content], example: %{ "content" => "Hey wanna buy feet pics?", "media_id" => "134234" diff --git a/lib/pleroma/web/api_spec/schemas/chat_message.ex b/lib/pleroma/web/api_spec/schemas/chat_message.ex index 6e8f1a10a..3ee85aa76 100644 --- a/lib/pleroma/web/api_spec/schemas/chat_message.ex +++ b/lib/pleroma/web/api_spec/schemas/chat_message.ex @@ -16,7 +16,7 @@ defmodule Pleroma.Web.ApiSpec.Schemas.ChatMessage do id: %Schema{type: :string}, account_id: %Schema{type: :string, description: "The Mastodon API id of the actor"}, chat_id: %Schema{type: :string}, - content: %Schema{type: :string}, + content: %Schema{type: :string, nullable: true}, created_at: %Schema{type: :string, format: :"date-time"}, emojis: %Schema{type: :array}, attachment: %Schema{type: :object, nullable: true} diff --git a/lib/pleroma/web/common_api/common_api.ex b/lib/pleroma/web/common_api/common_api.ex index 664175a4f..7008cea44 100644 --- a/lib/pleroma/web/common_api/common_api.ex +++ b/lib/pleroma/web/common_api/common_api.ex @@ -26,14 +26,14 @@ defmodule Pleroma.Web.CommonAPI do require Logger def post_chat_message(%User{} = user, %User{} = recipient, content, opts \\ []) do - with :ok <- validate_chat_content_length(content), - maybe_attachment <- opts[:media_id] && Object.get_by_id(opts[:media_id]), + with maybe_attachment <- opts[:media_id] && Object.get_by_id(opts[:media_id]), + :ok <- validate_chat_content_length(content, !!maybe_attachment), {_, {:ok, chat_message_data, _meta}} <- {:build_object, Builder.chat_message( user, recipient.ap_id, - content |> Formatter.html_escape("text/plain"), + content |> format_chat_content, attachment: maybe_attachment )}, {_, {:ok, create_activity_data, _meta}} <- @@ -47,7 +47,16 @@ def post_chat_message(%User{} = user, %User{} = recipient, content, opts \\ []) end end - defp validate_chat_content_length(content) do + defp format_chat_content(nil), do: nil + + defp format_chat_content(content) do + content |> Formatter.html_escape("text/plain") + end + + defp validate_chat_content_length(_, true), do: :ok + defp validate_chat_content_length(nil, false), do: {:error, :no_content} + + defp validate_chat_content_length(content, _) do if String.length(content) <= Pleroma.Config.get([:instance, :chat_limit]) do :ok else diff --git a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex index 496cb8e87..210c8ec4a 100644 --- a/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex +++ b/lib/pleroma/web/pleroma_api/controllers/chat_controller.ex @@ -58,8 +58,7 @@ def delete_message(%{assigns: %{user: %{ap_id: actor} = user}} = conn, %{ end def post_chat_message( - %{body_params: %{content: content} = params, assigns: %{user: %{id: user_id} = user}} = - conn, + %{body_params: params, assigns: %{user: %{id: user_id} = user}} = conn, %{ id: id } @@ -67,7 +66,9 @@ def post_chat_message( with %Chat{} = chat <- Repo.get_by(Chat, id: id, user_id: user_id), %User{} = recipient <- User.get_cached_by_ap_id(chat.recipient), {:ok, activity} <- - CommonAPI.post_chat_message(user, recipient, content, media_id: params[:media_id]), + CommonAPI.post_chat_message(user, recipient, params[:content], + media_id: params[:media_id] + ), message <- Object.normalize(activity) do conn |> put_view(ChatMessageView) diff --git a/test/web/activity_pub/object_validator_test.exs b/test/web/activity_pub/object_validator_test.exs index d9f5a8fac..da33d3dbc 100644 --- a/test/web/activity_pub/object_validator_test.exs +++ b/test/web/activity_pub/object_validator_test.exs @@ -103,6 +103,38 @@ test "validates for a basic object with an attachment", %{ assert object["attachment"] end + test "validates for a basic object with an attachment but without content", %{ + valid_chat_message: valid_chat_message, + user: user + } do + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, attachment} = ActivityPub.upload(file, actor: user.ap_id) + + valid_chat_message = + valid_chat_message + |> Map.put("attachment", attachment.data) + |> Map.delete("content") + + assert {:ok, object, _meta} = ObjectValidator.validate(valid_chat_message, []) + + assert object["attachment"] + end + + test "does not validate if the message has no content", %{ + valid_chat_message: valid_chat_message + } do + contentless = + valid_chat_message + |> Map.delete("content") + + refute match?({:ok, _object, _meta}, ObjectValidator.validate(contentless, [])) + end + test "does not validate if the message is longer than the remote_limit", %{ valid_chat_message: valid_chat_message } do diff --git a/test/web/common_api/common_api_test.exs b/test/web/common_api/common_api_test.exs index fd2c486a1..46ffd2888 100644 --- a/test/web/common_api/common_api_test.exs +++ b/test/web/common_api/common_api_test.exs @@ -27,6 +27,29 @@ defmodule Pleroma.Web.CommonAPITest do describe "posting chat messages" do setup do: clear_config([:instance, :chat_limit]) + test "it posts a chat message without content but with an attachment" do + author = insert(:user) + recipient = insert(:user) + + file = %Plug.Upload{ + content_type: "image/jpg", + path: Path.absname("test/fixtures/image.jpg"), + filename: "an_image.jpg" + } + + {:ok, upload} = ActivityPub.upload(file, actor: author.ap_id) + + {:ok, activity} = + CommonAPI.post_chat_message( + author, + recipient, + nil, + media_id: upload.id + ) + + assert activity + end + test "it posts a chat message" do author = insert(:user) recipient = insert(:user) diff --git a/test/web/pleroma_api/controllers/chat_controller_test.exs b/test/web/pleroma_api/controllers/chat_controller_test.exs index 037dd2297..d79aa3148 100644 --- a/test/web/pleroma_api/controllers/chat_controller_test.exs +++ b/test/web/pleroma_api/controllers/chat_controller_test.exs @@ -53,6 +53,20 @@ test "it posts a message to the chat", %{conn: conn, user: user} do assert result["chat_id"] == chat.id |> to_string() end + test "it fails if there is no content", %{conn: conn, user: user} do + other_user = insert(:user) + + {:ok, chat} = Chat.get_or_create(user.id, other_user.ap_id) + + result = + conn + |> put_req_header("content-type", "application/json") + |> post("/api/v1/pleroma/chats/#{chat.id}/messages") + |> json_response_and_validate_schema(400) + + assert result + end + test "it works with an attachment", %{conn: conn, user: user} do file = %Plug.Upload{ content_type: "image/jpg", @@ -70,13 +84,11 @@ test "it works with an attachment", %{conn: conn, user: user} do conn |> put_req_header("content-type", "application/json") |> post("/api/v1/pleroma/chats/#{chat.id}/messages", %{ - "content" => "Hallo!!", "media_id" => to_string(upload.id) }) |> json_response_and_validate_schema(200) - assert result["content"] == "Hallo!!" - assert result["chat_id"] == chat.id |> to_string() + assert result["attachment"] end end From 8062d590ddf3798616fe66e99574f925cc3b8c5e Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Wed, 13 May 2020 18:56:45 +0300 Subject: [PATCH 123/529] [#2456] OpenAPI-related tweaks. Removed support for `with_relationships` param in `GET /api/v1/accounts/search`. --- lib/pleroma/web/api_spec/helpers.ex | 7 ++++++- .../web/api_spec/operations/search_operation.ex | 8 ++++---- .../web/api_spec/operations/status_operation.ex | 6 +----- .../web/api_spec/operations/timeline_operation.ex | 12 ++++-------- lib/pleroma/web/controller_helper.ex | 14 +++++++++++--- .../mastodon_api/controllers/account_controller.ex | 6 +++--- .../mastodon_api/controllers/search_controller.ex | 7 ++----- 7 files changed, 31 insertions(+), 29 deletions(-) diff --git a/lib/pleroma/web/api_spec/helpers.ex b/lib/pleroma/web/api_spec/helpers.ex index 859e45b57..16e7ed124 100644 --- a/lib/pleroma/web/api_spec/helpers.ex +++ b/lib/pleroma/web/api_spec/helpers.ex @@ -49,7 +49,12 @@ def pagination_params do end def with_relationships_param do - Operation.parameter(:with_relationships, :query, BooleanLike, "Include relationships") + Operation.parameter( + :with_relationships, + :query, + BooleanLike, + "Embed relationships into accounts." + ) end def empty_object_response do diff --git a/lib/pleroma/web/api_spec/operations/search_operation.ex b/lib/pleroma/web/api_spec/operations/search_operation.ex index 475848ff5..169c36d87 100644 --- a/lib/pleroma/web/api_spec/operations/search_operation.ex +++ b/lib/pleroma/web/api_spec/operations/search_operation.ex @@ -19,6 +19,7 @@ def open_api_operation(action) do apply(__MODULE__, operation, []) end + # Note: `with_relationships` param is not supported (PleromaFE uses this op for autocomplete) def account_search_operation do %Operation{ tags: ["Search"], @@ -45,8 +46,7 @@ def account_search_operation do :query, %Schema{allOf: [BooleanLike], default: false}, "Only include accounts that the user is following" - ), - with_relationships_param() + ) ], responses: %{ 200 => @@ -139,8 +139,8 @@ def search2_operation do :query, %Schema{allOf: [BooleanLike], default: false}, "Only include accounts that the user is following" - ) - | pagination_params() + ), + with_relationships_param() | pagination_params() ], responses: %{ 200 => Operation.response("Results", "application/json", results2()) diff --git a/lib/pleroma/web/api_spec/operations/status_operation.ex b/lib/pleroma/web/api_spec/operations/status_operation.ex index a6bb87560..f74ea664c 100644 --- a/lib/pleroma/web/api_spec/operations/status_operation.ex +++ b/lib/pleroma/web/api_spec/operations/status_operation.ex @@ -7,7 +7,6 @@ defmodule Pleroma.Web.ApiSpec.StatusOperation do alias OpenApiSpex.Schema alias Pleroma.Web.ApiSpec.AccountOperation alias Pleroma.Web.ApiSpec.Schemas.ApiError - alias Pleroma.Web.ApiSpec.Schemas.BooleanLike alias Pleroma.Web.ApiSpec.Schemas.FlakeID alias Pleroma.Web.ApiSpec.Schemas.ScheduledStatus alias Pleroma.Web.ApiSpec.Schemas.Status @@ -349,10 +348,7 @@ def bookmarks_operation do summary: "Bookmarked statuses", description: "Statuses the user has bookmarked", operationId: "StatusController.bookmarks", - parameters: [ - Operation.parameter(:with_relationships, :query, BooleanLike, "Include relationships") - | pagination_params() - ], + parameters: pagination_params(), security: [%{"oAuth" => ["read:bookmarks"]}], responses: %{ 200 => Operation.response("Array of Statuses", "application/json", array_of_statuses()) diff --git a/lib/pleroma/web/api_spec/operations/timeline_operation.ex b/lib/pleroma/web/api_spec/operations/timeline_operation.ex index 6cbc7f747..cb9d75841 100644 --- a/lib/pleroma/web/api_spec/operations/timeline_operation.ex +++ b/lib/pleroma/web/api_spec/operations/timeline_operation.ex @@ -27,8 +27,7 @@ def home_operation do local_param(), with_muted_param(), exclude_visibilities_param(), - reply_visibility_param(), - with_relationships_param() | pagination_params() + reply_visibility_param() | pagination_params() ], operationId: "TimelineController.home", responses: %{ @@ -63,8 +62,7 @@ def public_operation do only_media_param(), with_muted_param(), exclude_visibilities_param(), - reply_visibility_param(), - with_relationships_param() | pagination_params() + reply_visibility_param() | pagination_params() ], operationId: "TimelineController.public", responses: %{ @@ -109,8 +107,7 @@ def hashtag_operation do local_param(), only_media_param(), with_muted_param(), - exclude_visibilities_param(), - with_relationships_param() | pagination_params() + exclude_visibilities_param() | pagination_params() ], operationId: "TimelineController.hashtag", responses: %{ @@ -134,8 +131,7 @@ def list_operation do required: true ), with_muted_param(), - exclude_visibilities_param(), - with_relationships_param() | pagination_params() + exclude_visibilities_param() | pagination_params() ], operationId: "TimelineController.list", responses: %{ diff --git a/lib/pleroma/web/controller_helper.ex b/lib/pleroma/web/controller_helper.ex index ff94c6be0..5a1316a5f 100644 --- a/lib/pleroma/web/controller_helper.ex +++ b/lib/pleroma/web/controller_helper.ex @@ -104,8 +104,16 @@ def put_if_exist(map, _key, nil), do: map def put_if_exist(map, key, value), do: Map.put(map, key, value) - def with_relationships?(params) do - # To do: change to `truthy_param?(params["with_relationships"])` once PleromaFE supports it - not explicitly_falsy_param?(params["with_relationships"]) + @doc """ + Returns true if request specifies to include embedded relationships in account objects. + May only be used in selected account-related endpoints; has no effect for status- or + notification-related endpoints. + """ + # Intended for PleromaFE: https://git.pleroma.social/pleroma/pleroma-fe/-/issues/838 + def embed_relationships?(params) do + # To do once OpenAPI transition mess is over: just `truthy_param?(params[:with_relationships])` + params + |> Map.get(:with_relationships, params["with_relationships"]) + |> truthy_param?() end end diff --git a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex index 2dd0252cc..ef41f9e96 100644 --- a/lib/pleroma/web/mastodon_api/controllers/account_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/account_controller.ex @@ -10,7 +10,7 @@ defmodule Pleroma.Web.MastodonAPI.AccountController do add_link_headers: 2, truthy_param?: 1, assign_account_by_id: 2, - with_relationships?: 1, + embed_relationships?: 1, json_response: 3 ] @@ -275,7 +275,7 @@ def followers(%{assigns: %{user: for_user, account: user}} = conn, params) do for: for_user, users: followers, as: :user, - embed_relationships: with_relationships?(params) + embed_relationships: embed_relationships?(params) ) end @@ -300,7 +300,7 @@ def following(%{assigns: %{user: for_user, account: user}} = conn, params) do for: for_user, users: followers, as: :user, - embed_relationships: with_relationships?(params) + embed_relationships: embed_relationships?(params) ) end diff --git a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex index 1c2860cc7..77e2224e4 100644 --- a/lib/pleroma/web/mastodon_api/controllers/search_controller.ex +++ b/lib/pleroma/web/mastodon_api/controllers/search_controller.ex @@ -33,12 +33,10 @@ def account_search(%{assigns: %{user: user}} = conn, %{q: query} = params) do conn |> put_view(AccountView) - # https://git.pleroma.social/pleroma/pleroma-fe/-/issues/838#note_59223 |> render("index.json", users: accounts, for: user, - as: :user, - embed_relationships: ControllerHelper.with_relationships?(params) + as: :user ) end @@ -82,7 +80,7 @@ defp search_options(params, user) do offset: params[:offset], type: params[:type], author: get_author(params), - embed_relationships: ControllerHelper.with_relationships?(params), + embed_relationships: ControllerHelper.embed_relationships?(params), for_user: user ] |> Enum.filter(&elem(&1, 1)) @@ -95,7 +93,6 @@ defp resource_search(_, "accounts", query, options) do users: accounts, for: options[:for_user], as: :user, - # https://git.pleroma.social/pleroma/pleroma-fe/-/issues/838#note_59223 embed_relationships: options[:embed_relationships] ) end From 74912dd9eeb8ffe615562530e9a202cbff92893e Mon Sep 17 00:00:00 2001 From: Ivan Tashkinov Date: Wed, 13 May 2020 19:20:21 +0300 Subject: [PATCH 124/529] PleromaFE bundle supporting `with_relationships` param. https://git.pleroma.social/pleroma/pleroma-fe/-/merge_requests/1107/diffs?commit_id=9c7cb3a95431bbea44391f79da465f77565a4b49 --- priv/static/index.html | 2 +- .../static/font/fontello.1588947937982.woff2 | Bin 11816 -> 0 bytes ...7937982.eot => fontello.1589385935077.eot} | Bin 22976 -> 22976 bytes ...7937982.svg => fontello.1589385935077.svg} | 0 ...7937982.ttf => fontello.1589385935077.ttf} | Bin 22808 -> 22808 bytes ...37982.woff => fontello.1589385935077.woff} | Bin 13988 -> 13988 bytes .../static/font/fontello.1589385935077.woff2 | Bin 0 -> 11796 bytes ...7937982.css => fontello.1589385935077.css} | Bin 3421 -> 3421 bytes .../static/js/app.838ffa9aecf210c7d744.js | Bin 0 -> 1079319 bytes .../static/js/app.838ffa9aecf210c7d744.js.map | Bin 0 -> 1643789 bytes .../static/js/app.996428ccaaaa7f28cb8d.js | Bin 1079195 -> 0 bytes .../static/js/app.996428ccaaaa7f28cb8d.js.map | Bin 1643581 -> 0 bytes priv/static/sw-pleroma.js | Bin 31752 -> 31752 bytes 13 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 priv/static/static/font/fontello.1588947937982.woff2 rename priv/static/static/font/{fontello.1588947937982.eot => fontello.1589385935077.eot} (99%) rename priv/static/static/font/{fontello.1588947937982.svg => fontello.1589385935077.svg} (100%) rename priv/static/static/font/{fontello.1588947937982.ttf => fontello.1589385935077.ttf} (99%) rename priv/static/static/font/{fontello.1588947937982.woff => fontello.1589385935077.woff} (98%) create mode 100644 priv/static/static/font/fontello.1589385935077.woff2 rename priv/static/static/{fontello.1588947937982.css => fontello.1589385935077.css} (89%) create mode 100644 priv/static/static/js/app.838ffa9aecf210c7d744.js create mode 100644 priv/static/static/js/app.838ffa9aecf210c7d744.js.map delete mode 100644 priv/static/static/js/app.996428ccaaaa7f28cb8d.js delete mode 100644 priv/static/static/js/app.996428ccaaaa7f28cb8d.js.map diff --git a/priv/static/index.html b/priv/static/index.html index b37cbaa67..ddd4ec4eb 100644 --- a/priv/static/index.html +++ b/priv/static/index.html @@ -1 +1 @@ -Pleroma
\ No newline at end of file +Pleroma
\ No newline at end of file diff --git a/priv/static/static/font/fontello.1588947937982.woff2 b/priv/static/static/font/fontello.1588947937982.woff2 deleted file mode 100644 index 50318a6703694b2888e6be5f00b39e91435e3105..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11816 zcmV+@F4xg_Pew8T0RR9104^v14*&oF09hCS04>k}0RR9100000000000000000000 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 Wp?_x}4h)=p4)p!;5VXmQ10De4ugL!Z diff --git a/priv/static/static/font/fontello.1588947937982.eot b/priv/static/static/font/fontello.1589385935077.eot similarity index 99% rename from priv/static/static/font/fontello.1588947937982.eot rename to priv/static/static/font/fontello.1589385935077.eot index b1297072ebf7b3d29c4a16a5c53ca2ef1eac406b..e5f37013a88506e2a6a91b2c0758388f4f1a2885 100644 GIT binary patch delta 57 zcmX@Gneo78#tAmeU%RCz+P`Ab=ePOFz|H)E0SInAJRJ<9H*>fN2m=7(KoTqf delta 49 xcmbQSiE+jz#tDtgPBm2YU^V@u7;AVco00g&g%cQ~R%^Yq5!T`Id5H0`! diff --git a/priv/static/static/font/fontello.1588947937982.woff b/priv/static/static/font/fontello.1589385935077.woff similarity index 98% rename from priv/static/static/font/fontello.1588947937982.woff rename to priv/static/static/font/fontello.1589385935077.woff index e96fea75766b8087fd2e064329a1e21500d2e522..f48488a77850b21ce51ab6a4c2eb77daeca013e0 100644 GIT binary patch delta 67 zcmV-J0KEUCZKQ3G!wEA0001@_Puf(m%E(0G5Id%CqA!!2}3n9;*NV delta 67 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 C9?j?g literal 0 HcmV?d00001 diff --git a/priv/static/static/fontello.1588947937982.css b/priv/static/static/fontello.1589385935077.css similarity index 89% rename from priv/static/static/fontello.1588947937982.css rename to priv/static/static/fontello.1589385935077.css index d3d77a8b5d9234e05454b33fb7e8008f94b312d2..746492163c08bfa6ce71b15e65547eceda4a56f2 100644 GIT binary patch delta 94 zcmcaBbysSF6PKm2g{h^nse!rqL?1O|UX2|x?}!N!Z!#035i-|~(G-chxt8$(Hvo1W B7f%2H delta 94 zcmcaBbysSF6PJahiMge*xuu2CL?1O|UX2|x?}!N!Z!#035i-|~(G-chxt8$(HvoY% B7mEM@ diff --git a/priv/static/static/js/app.838ffa9aecf210c7d744.js b/priv/static/static/js/app.838ffa9aecf210c7d744.js new file mode 100644 index 0000000000000000000000000000000000000000..7e224748e83621b519b5e6c5a776a874504c9c1e GIT binary patch literal 1079319 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 #hH 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

i^UfaiZ7A?Zcl7sG=>V{QQ4P45M zBC5(t%gnwyx}}Bo9LjvUwTXCYYf7Gd{4MB0d6BR-s*IT>X++m-UP^mTCax=-1UR znZY#2-}7Ej$yfM&I3~0Gx|@0_iAZq#sbBYfjs*-)1Ke9mCvS^Yp2_T^CbItM1K$)Q zY|(X*G7xYX1hmS+^_iX7oK&k^D~R9R|cRC$hY=gurIBJFht+^8Q>8e{7Tb{ zmHSYa`cs3`$GS86^3*iA?;yJ0eZExJPN{sQCv@o`u~2IgfHQT|NE`8UF??Q$IX-RDM*=Ag zRpso#Vg~NfbV!A%$0=~aJrYawr8ZqVFJiN%F68mnp*GO4hTPgO#t zuCWll8Lf~q^@rK_0{%->ib13?E>#Ond?lz0DOolhcx@;Ukv=V%b{1rnFi9no0*H*8^{sa&IX_I)8H==9~JbokA0ffwtUJX;ccOS&@J^y zV_uhnu!Au6+AUE=KqSHUGd{Q~s8a9qsix zb>-xn)vY9uNg0#h>ybyFbIZ$&Y}G<^O=qTa;NdE-Y4}ciU2}-CE3k7tj!hRq zm#nr;A<;=1UnR&ZnhIIcNxEK-|POQOX0ZanqfT4imrMiZI`sX4R>M1-5 zF*Zt&5E|sf_epp~BE4>eAB0I$N_Rn`zm#Y+0YqKg7r@nLGA8`mmNZn^R&?5cWp+2U z!Gno}uAed{qTzChL-Q@*^|@r`*fBe}V~dK`cOwj0X*SK)SnkJJSqW5uv%H6@xZf zkUDIj93Y}G$a^6MiUGpW0`&#LoVKjMdz_wS3iK7F3~8o24RAMHtG=_32=ZpfO~ps$ z%8{->Fl)vwZfKmUO$IG0?z`f14z^T@nTH6m^>~~03nOxdfu=Zi5iY^9Q1>c#{p2qO zj{0mgme}If52;fALZJP6HrLVEPLO#ZnL=kN`Mf@Ey!?3u11^wi+pTf(r&ZZ{etyQ; zSTYqe2@Q(709fmlt_55-lnZ}#!K{Q*fh0H)K0%~|yHMF-M)1|(tc6{9t&5^T7_agL zYoY>ZNk8FSv?sbwGJ5DA{%~Kuy@UkNR*RMCFAN@Q%Omm`b~>m;sk9&>o%yLScX7IT^dJsgaw2oY2I^b zTp{l&l!@&!NjK$LQ!lYhI9PLI+0=gLhY5!4_`xR#XF{a#Ov0_uc`Dc=Ru!rMdj;fG zEQAXyvb5z5st=fKkUirz_UimA!yfn=AV^%UkS(ZBuls=yzHv60r`pe(-5TJU-~}C+ z(AD1xo*U(YKuR`4_#2&F$I`DErwM`pXu{;2t7}Y*&BQepg3&FjCaA6(|0>({x;|m8 zG<~V0Lie%3Kt1Z!mgH zY}nMM*Za_dr)gN>#ReV}30FFaq^Z6JU;|xU6U@A=%+w4dQgP)_9wEC1v1VY#u&+#H zw<{Uu*`AzV@MZ4jGoJCIC~2+L3Vc+@s2S#J^~I%e#747=YsXm?e!?Ku&?RrE-sO^6 z-6yyOVHQ3mQEylm*+Ho*gt+;Ue2bolq2OuZUfkg4G?5p^AZ~?SFSJd&KMY@KUW@b% zqga^dSDcy+iPC14q13h?%EIhoiN2Hr3bLig>eXSQ+_5tm=|khFbjM5 zlz-R`eYglUU)+GTBxyBZqhqPLrMe%Yk)LbU8r{P3QhpP9*1k%23cmUU&x6VAv>8n> zKX1`SYT`zV;*kgS9a+sP)ko7bf?fvW^x|H;GA7G4X-_|~&V(YCOjNifHH>V1?4+zBG*~jDaB11bw4U(SfiIP9l)u zgWZ8gfs&1j0eR+Z2 zp+S|%f*cBi#@%R8Qa$;m>uQ81><5lXytX{V$^nXgH#=8cx7^(vU1uQEIaJuu&{vd| zWFvBe>kT%nOQ_?RLUWDgyctG`#vg4@_9?*byt3V?3s=f1hOezhJ?vO*@ITj)>X<}k zbZtKUo`QWHA2I zTmsD)#7xXO^1FnXl5Oc39%ZPq4YHUWGsdj&uFP4*dmXOM*cdW zSmN;Kgq*PtHX+GdHGc@J!3k{eiTNW9S{rPVEnD9aflW@)WK}|j?J@xh;;DJ=E!Nuj zExV7ePnC#=F>F45Ssic&0EXUqN1dvRBVV^v*O2$QN9Ag36GC0og}%|M-lGPw(sDWY zjUCq|$>2A^#0n2l-OP4f&nsESJ~)h__dP08=X!NoM-~-u;70}q$WP*PAF6D;{Q?4f zk6yB?GL&<{rHr#3lEGFK99U{EK7{L9Bl}iV9nh`hEUXFY$4>!Of_-iEQUDe28WL&m z=s5hiR6!tDdTI{zZ9$D;DVSwBl!^nW_f$u!Yn-m#KbOv?r{k!8QM{3qZEjaI{%dJ8 zBox>q+aS$TeHTni38C_9yZS2z0jWGFWHMS_CLMawQvjumMNAQkS2RRV$*7yc)Dq92 ziM=n69<4?)8~0numBL{}a#C-T=KI)M*V*`#C2={-RQeX#ldO?R&tz5*bqd&GkzrQ& zX-hBlwa2xE1?y}WJnj;|uS6MkI2J^CM21K+S^A*Fp8i+_AI^YTnk5^-kCY+?Y>u0zyLn_GD#Z(;t2QwQ zldkduZCDP}lrNwW0;Zs_izSFwQN)0S=#}~UIsk|&zCw~>|5b_*sdMNSUqbE-?sN)l zCHiUC_O7ad2)t=Ve7YksG+C#ZE6i>(wya7|Dr{Nl!ow~&kBt=DC?qnB&Fj8f2;{2( zHMh&62BwA|JDjP#j{SS6yHJ59)l4nytf+6mY~tooIn{=7mL8|AS>QF{ejcxDr2_yy zZ(V4aO!Hg@q1U-iQ^kN7M_V>%sBz$%;(aKG(9A8DJ^&=Zk8G%1TT;6tCO)bZl%fW- zkR}0(w(L8f@n>AkUgd-G5nY2Aq^gy4^36awn-9nX4H|k!x<)IC6?nAdT9Pkfw3T%Y zX!;cB1_@O$%uQdw?*Z#*SJQxVvX_zhpk?)9aM-qyLz6aW8%&h&WZ(S8?ET6I-S%a) zBK#l!YpHCkr1jFR+u1bKA(`_HUV)uC^C3+r}jzX01GxqeS`gfv{W|9^44*swi?80qe?NvNj8bk&fDbel7 zp9}46&T#P^@Q61JoMxh1Kd;}Scqx~Nb))K!pZ(;|CAeyF9_iy%`MHNAKsmuY#AlwR>!g|}2WfO~A=OzYK zLZKZ8%2;CmAQoLPXggHnv(sZGi^rxViDo_rE&3Z_39!hT3N^vWA|8&*HG7wtA=Z~b zVD};zklh}!aFb#Ic%l|~6HDzcrzeH@EKZ!lq9hBhOX(!#d)EZu(A zS2}3fnUJpKbPyMo+rFaG0n=9y3uIbYKXfpf)wY223H15Us2S6 zX;YZ&7>;0`bzxITU^=s&L7m_`c~CgNxYyEeg`4n;%AvZXYfBpBs%#$mj9aY(bGR?w z3vE#YE?PJkvGsy@u%|!c->kNQaIOH_9AzS3>6m{e0ojXLE^u&@-6;hQ^t%)|(C<>< zK)*|YgPVUyfrIDe`+se^P2RW3AxTItNCi&X%hC2^PUTgKrILn^(%a13#=gJOYkM%k z0zyltzo@=Vl#^d_a0}W{)^FViuuhiMt9~^EIb>%=54>A zq5v?`+H(;i5L+YPWC?sdxcu!CiczwfJy`ms_SY`|D^-N&x!eO9WE|^Thfl`yC*yBv zjz;aL8M@%TdrFB;@fr@~Y;rVG&B~2!<;GBtkX+u-X|j6q=N+Dt3-XKv#2T|74^(oE z-^9hf3q`t3VRD1h;_xt!;KAhZ-3giGwD(N2oK`$fo5C4;lhfaSP`=C`rt%H7;8_2h zSy87WZnKC>FuO&Po7o}R|Blbe4~9=@7y7WtPxuL)==S97^0y@Q<69>ifeO?j^G0)$A^@nZ~^4# zP#P6ppeA|l8pkU#aawb3+(Hn0oYB_B@Bd$t%L&@oIgH*@N(>UasDk7nS$mEqhv%co z1&`(zEbV}T2J!A_d~rc;Rm#QzQ%}aE_nBY3MD{-_avoehC1=ZI@0@vTbZ;U|+Pty7 z?H)}IPbcsCGLe%<8#EsuQsrYlI}jwT9?6c3>xa1*P0Q_b)$xR_Hv_2jS9*}>3Gh81 z#aXPftUG@r`HR>AAfEM6N4oA(T{~YsIT(Tki|-DsG4bAamP6_ne167vpR#SL@X|F+ z+ebFLSxz*RH}Yyi4$V5a*B&ZW=lo(rkJ-xKe{exbNRlZnP;;?XQk#KVNW02hDlc>x zFv(SL%JK?ymp^;A0k`tHTT-)nHH{bb3%D9A!#I&C`IhAY@|&8@6;iuen=wA z6Ib}8Sh8zWZ}Q*iPFujIq3-u4#~0*Po@#v!W#1xLkvHHd>PJ(5iM(dKhT1bu3uhF0 z8aCAX|DU~gf0C-o_I>}A-0X<6>9}aOedFHPu_JEWKyABwx34XBpC3-2s7R_3$fl^Q zTMuk6VFdL6c`2x%sDPk61+fIQK~aD3Ke5m~*bVR<5inYXksH<4?fPkIv_6P7I!bicQBuX>4q4wcNYdJoID%Q41`Pmz^k}@fl`Ha9Sv>5x z(SJmx|6A_s?u<-}z%+=c*i-S}de8lDuBe+LuX$du5XnKJh7VktW*;O)&)htNkeJXA z)5FSfk(Z}YZrtG}Sf^ra^xz{B{+7lF-;FU{42}juPS#>2Gv&I; z$%t(p@+h&5%Nzn_$hk3~^K$QAkg|waqor z)JaBOjJQITCkov(+|t-cZZ$UD*$H1n0`FJ)`M@e)O$L4u=~PDAUr!iuwdFwb8cJaJ zViGb?@mrmDoN7jbN|1tJ48~VQ6nW{!@0BM@vrr(}6jGQ=4x57f*z!hu(paAa>(5k) zJuE7S6IVKo>=Z!hJa5m7)1#yUF)0;K%RV_e-B|yUmQVTnT0n491uZp{PRag(yttN{ z#{}bur7b9O_iTinhgt6R&jopG-}({RmpT&E>o+O^>}bVrt4?KM;qQme~)*Tj9zn*rTR6cO}hxTOK1P@tJ5u3au42;4fEgum> zX6gVISyt*_=>!E=hHo4m?r^1MUy({YbSxg~ZtwKjj0_g8Lu!yuB&ZDZH+O%c)+IW$ zROKEdclBx{Kq6!uGwQ18#w6E5i;n|!)QLnoaQ&nuo?^Lx56l8JGL;dv(TuJZ4Tr5$`@xVSNu$Qc_4R?0J?TkPL@)u+Ttv3 z8r=l$X_1TrxC^@3V7i(|Xfm*XGWi0lr^Za$UROFr~#zFi=!+Ox?ys9+~oIE z=kW$r$hd)MWX0I0T4~Im&WNWq?TD5JoN#-dFW3i0y-Va9>05P}W3Om8R3CcEo2Rhy zv0FA_rj&ukdlqb`zo23Po)pJrD46 zg)3rEuiOkaFLp40gYRO6lU*-&gy0dI$T3V>$Ht~Eo$tiPQNK%M(b>v*AInG6cg$yC zmKs?VY_c@`BCzVAoW)qsXfs19GVrY z7V%7?dBhdEICMl)To7%v=a~>PN3enHpxy&&|k*6reJ`f>y}{O zffw!S;DOQ#16oMg=tiJuzwZktdUyYY?~Hr1&)`hKZoE0*zy?cb=Am?s&ZD(#10@9*0EPge3_h9FO0T4Fm|n?j5k`KhB+R_M3SVl>)vPaV zoH8wpc)iLJrWE3f(DihV84d=TEnkD$^$P=gpm3S|$yRirdJxDx0JD5dH;;%Ht3mP7%e|6Zo z4qC_qMPAmjG~5_b^?l(V8;6IP0lrFMA5W9{ghX=E;|4}++$$8XgneK)_1}X35*z9s z9KZ)MoH8eH)~95k`L)&oA`bz+`md@E_&&nufEmbx^mv1boF2n@&JGdGDg~%b8W?z| zj7pT0pnMSYtVe4?U>p58oN<_JgTd{`+owg+!@he`_$bLC)Eb*)$}H~!6b$rA{&w?0 z+k3f^Xhhf@Wj$1Tuk_1i-;W6=V#bR2Lutb1#+>(GaL-v|JyunR#56S9`5E;F-<7i@ zhkfJ-L)6OxLZ2y?M1_!T!&5^=ZU3e%2ka4)cyKZVY6nQjP#MYL1vpMjL6fRW-*}gZ z!igJm#zq#^VlB~|r-L|stPzXRUXsEYcqwXEsMz7Dz?(7R#$L~b7vOkUSFL3WO4T6#ku#? z4-NM(jIyfjmiAnE@b1BTpU*FScPeFH#2ZbHDd*H<4%wej+02C^` z^Zm)C&vYtNf7hiR%07dAnAOYalYs-YZpq&#RF}oLrd2935Z(Rklck$CMId5FSTHd7 z;tV_r&%td4y_i8nrx$15fxfG3T&*B7{LCBT`GOV?-FyG*dq-I(D$c5>(|yRxIB~(d z#vF~9S!XmtFYGcG$s4h2Q7D15`21s&E+(?##u!7Gd&}h6=Pq%myo}cFe0T6)YT(+v z_rG~?=o+OnsFrii(h-qKFthI5{^0(lFPPh<1E&{fp#c^UM*Q4FV9{rri1Sdz;>>AH z`^-F5V1RFvrvgO^M{t5k>;1QX*DXys8Y)O!vXLo|g7&RYH=dyH`kos_+Vno@R4pTH8N?q@9LQbhF=^yg*>H zVrN;C#hLTep)GMr-`)3(%N|#!P?KpcO*#K%8WkBk(bj2iT@4R_lyzu)gIIQD$3mfM z(61<0(WqR2thfq3*!{u1kIwPT_6CZ)Pk~j{#Y?WJ7U$psMVfo=C)22~^A)|F+h^)+ z&V(PNaFb#V`GzcBMVv7At`Q1l=*#z3|7ojSGJ*0D&Zzgb?>&m_?wjXK@Wa^9^Slu} z3XMtRPvpfLjx!eLjO%74+6_4QB`7vEh1x5W5W=w)vPZdY*ddF3!G#HZ^@2$88v;KGsYq230IIb+x~C zAi&)PYPk%TS_35^%&>!7BnFq2NU1EbDO_?zEgcpWJ4rFMi!%&J+OskX1<{3g{QI9G zsSx+4|Hthaibrowh;CbDIFdd`O;!Qrs$&_Hb}IA{Iawe+&9b<5oINF5E1mh$9}vym z1IO;2gMr?@|NXZ}S~{th4kg4zhSKhX?6MO5Z~1IzhuuBCptkT=s-3^x42`YLTwVJ1 zb&#R=$_s(H+Y^Q=Y$SJ2 zeDvVmcWBX`TMqZs544AlXEjiJ_r9DpT(ldFdP4eH}4%=FvNJUn7x@pcW%CM|Eud!bs!N1#kDG}9i2b54QZgTIBBCwB5@;A z5Q(?dJukKH-j`oGM&{Y}R%@J=&8{+13B_3}V77@}IE8lj4?!$Q!B^qZq`nIIDhUYD zKy86T-@{x~GCYkvzr%V8_;HDUI`7-`7%`Qmc7N}`ikFO8&MF@&xR|!W-~A&m$d0ed zlDsc%nn~frFc&N0fKEIAYku#(%L=iI^O+2gSfx-6-w#q5>YU?fW3CVdP?I}N6m{|Y zv;u=2K$?J(jDzo(U$^g&0*QVFgvtz#7%e`PU5LbpdQwXd99;lA-T#!4UyvOTOi3@J z!9RHa2*SNav@%S|vE8QTnOCa9PK7N*!nDh*4IWbTX_?A49T{X9hDK?0s)b$4;cZgl zWoMTSrm%SxYnfAY^j_8ay38cKVqz2=w^!y&L<_P!{}!p#?tgma?(sJp>ys5$cAVY& z?%R7u7w%p9`tD5@@$$WsOsr3)B+$`<~PRKUmV6nO#$QQ;2}c> zEFWZGbi2ZW_IIF^U2Q-=SYM1p;UvgtY46()PMc3d9)h|qW_G&4_qRk_kK8$98ndai zusPsZaef9hz8a|)4oP1I=+^xl0t1x{Z~fDh_-}<3pvJ;6*vW&EzA8g7tJ%3a7}=M(un=u-3liEmxiJ8RY~fqfEsx43(#gsTxHW+ z$VtQ1GjAJU69QK&Nr?K(!4*a~aK#`{9jjOfwH?gYMs77k7q*U*H{Qnmk6dq>Ugo## zs*R^OgYQm5#@%xpV+=Y>zG9p3@G#~F3+h^Ck{QbCB~}Whgd?MGI9}kO(q+E^G9o#L z%6(dwTm>Fng2q1h;nH_|%pOC$(4s7>B7xjf8()0+so!kmnL>z)=h2^d$TZlDSr1?@ zlo<3NI!qoWtCV55iV{`|6ds{MC@CbBynzCa(V0=nB$xX@;)K-|S-N&E58VmyCJf z`pEXs1M@UR3@?$zzRfTZLKrK4-xiKTdlZtNCT$$t-u8*ko^G|NVWT^ye~Vsp%-pLu z#O_^?A3R307{`5Mi+awO4m_hQZ0>xD=Z@02Id)k1VM}U5&n2%Li9w@JglI3` z2D~^{HE-~Yxa9D6OD9-!+z=(tALUnYiS5|Z)VjM{>V=nIw1G?!o{^pyg@PCmY5Q#8 z{CJOIuQc0JIuFa1XJ2`3F~ES~D+-4p4iU|aIi@vWnrM#7UA#c9?w4LV^e*M&rb5+G z<`KTc*-L~(ubH{=DkcN1W0lpo2XV~a-FL+LZ~Lf2oh?J9T4fSFT4iw|wDsd&h{7K^ z^ZA``zh^HY!f{9jH)tW897^_$#HO!q0EXl>^^oOIvwsR~%qAbDlC)GsUm%3T@3D(f zF>u|FQ|>~xFPwjW?*@SN^4$-Cj*Q}<#(Q=D(jG?l>C)*NclU#mgZDnRL9x^B^JS!q zGbh>bvZ-JmpweLQWMq$fE_3DXMFU(fqcGrjGHikvbJHDvLy0njhAumBRC>3q8vKM?uYie6(MAYZL=)3RUx_jMjUuG*rd>Z+}hT>{N8VQOWmfXqg z(gD*k`!@8rsQsn$HU?qxe|ssP^t|dw*;?t`Ff-|fjvpvlbSV%5k?^VLWA{%49pfI8 z?z^yVSGxLk+(|@@x{l|EnF*^8Pb-ko&w#A}?pCB9g(aI#hUG>qBPdE}Nvbc4yDIM7 zgn-<~0_tH|1j391(8Mr@_J>3w2anzR02;b1pfmIR{qLB;-7WyqAwMJBBj%l#r^BD; z2i&6b&`1pdCntGPvKWcjzj#|Z>6Xce1%n;#yU=b6(8fk;Tf}9UseqU5#Ss~EsWVi^ zV)UkF2R;9!I3-j1a`x?~HvJ)=S)0geT}}wF46y2_q4M;v8MHO}6iknigR5 zJlRenp>%ptaxl8J^*kl_?Dy9V`>DlekySP{HT|GmD(*50gT$DW6{mH#A6Vxlgu>OgtoW;cKT>2K#gGwvI znb2)G;kBWLTb`Q6vkTc)hCE+BO^pU(p#2nDpR?vLi4No5!zSp zU)+8FEu`byOGo$|+@E=}g_eO`PK^SfA>|U&f z{5fqEq9U}IftkvPs$iz{L8c&A`b^8faB(iltpxcd(^Klq8PV&lK%2Z$swnj(Tg;#o z8%qmp47}HeS>Q>?8+xd5J(bS#1{p7TQ^llioogc;OY{D|D^O_N-6SYdOVcV|m}4^u z+gF5IS(pbOV2(-^)K%f(B7N~6tJR`Y6-A!bGS!=?L=u4WN}Cy16GBKm>dVp^w~#K2 z$3$!5?ZsK-;^{@4xLOmQU%h)`Hv-6mF>O?wDie46nq^92>BFxvtt6)90)}nhPHpS7 z57*q1dbhdNLj+P(-=2MLuDC#A=5VI=r)c&4K4b`VQ|tmhQTEtguq|(e6j(pCOOp;| z$H88`_vIJ&FCth&=NjwHOItyn8uqaT?b%sP9%K^^WLGA7Kz#-D#bkpuO7*z}ET>wv zp(Sa_7mO4c_EG;rI!6!Awc2O#u&68xAxhDnsxc;{SQu`o+gX-CgqoA$1FFv$de!RV zsqtvc$}}vW7mpGFAPA!ofkpL9jv2ldx5pv2ayr&U!p3Ha;xdB~tHgiI-mr+*dhoUM`FfY6MOoyaB^I}=X)7AA;t%s zXD`885gGdoptrALvq>$fO2!jUx0?|NB2W;US=}*yKwg`Pb_`O@s%HZSse~!^(VegH zbs=cq0=Z-bYVey8j&F|IwgCXgzJ-k2TM}1gM&N|4rRLS}?_$)%) z4VEBEftv%0XNg$z1s+^KJ2Kl%?^NXc3SVS#q_zf->R(cr=%9Xibf4RmB_GEMhxUyT z5ONqe?81c56ev-SRJ;ReaXLlj)sisp3j?x24H?-PaTg>fyQ3@zC~F!nVzdhLX_*uE z6j($2=YdZMirB%d9x0B2HJLtK>FY@-nH!A;*8t_0`(oO4)gG-B&Qb98$PkNUr^rlWTuA3WD%U(L9ex*yntUYX zs~!?sq|(~E9?W*s=5%CqIt#SKW=By;ZUqmxP&p%n>A(n3ylhSN_%jecz(Cjr5XxSn zGbgwLXbZo7V2m#q^!K2=Mis3dr_YAO(=9H5idAJ6>iw@UPvrAX<5i51Yo z9UVb|S8+`!I@__dTVJ~Qq5qZ%O{)O>Y17wceF-u!eas9R{Hz+U%j0SrSggUfi;nPL zXA6zphGHWkuf(Q{3L*5QxnjIztUnxYR4z`AvPxj(wtm(ljV>Np@~&l{y8LqAr-eXV zUb>2C0*K&55R5K&E1jYnAl%GpV!bbBWX1Nwl^3fwoee^FM7YqzHnI&@vsgBBeTSW& zOlmZk0MXU1j%2$%&h`xutvj1!wh5P(uGR>2fmX5eQU=agxhm2tKI4{Vbh1-Z@fBj1 zPlO3o(he02nQ=szfo&O>!pSTR$B%GnZk@uGcEql~j&OlMpN$K7txyI2=OUG>ZNy^e zl!7BXIxi%21>D*GMDnG{0hW7xnPA)Ivp`~Vxi!{5{T$>_Dr7#qc=n53AupW}^!r)^ z-CEb5&NZ*bgF%EnwUr(a1|5*qy@2+|0uQDcva5WzccPDyo3ShdY>NH6LONw4uBbzd z&$QA1XlF?vxK66dI#FOIXlfe?B5`i}<0n_D%`iP}kVGN)%7%2<(!N(UA2e_kt%E)fPeCo^rweSeiN&hZwapDUmPf| zKoqKz-=?#we&CWF7K6QN+ewqFjO!axs@OX>57;JtRiKrK*LC?VQ$%pt7C^q*av#r{l&t;SH? z(KEF3mqSmO7_9e4P}>X7C%zVX!G_hM@t>a^eIv~93^pj^)yD1p{nz;YVE19-vX;I^ ztI;DLFAPdgrLoN)S#%2RzqlLC7aix~3LwwNi@T}+gqBYj>Fv7*K+}}5ZluDner^3~ z7iS|zH?$UZ9?C=ir44<6*pT^{**I#&2M)V31cPvhmNSeRp$BqfrmcX$Uh-e4U0Vm{ z0V2T}{-Fsf8wegu8_WGm*ym9AeB3!bWC1dv+dh-fza}=1SwTj44KX+rIeeF?K=z-$ zv2=uehPpn_94ZGg$C>GHZAN>%2%4Bfi5WG^*u&(be{3tDww>M-1lgC=H;YcCpnViV zK;$)Z&!p~Au`t4Qxt?_qO`-man@koW4%K3~zsYRFc?Hnq#;wqDy)~|@9vyFmkP(>r zFavta@cuzX=;ReCjL$Gmurx&`EU6?A%ALI&#B~iA%g1BBehs>|Uao1$-2$uD?Z!h6 zOAPc4sy=x{OC1;S{d64<2ftF+2i3mDu162Rz5Tbsp`O0cLe6RRlBs0E$pWJ0fX!)x zjkT@WH!H1$M~#>Ss9-?8G|pO~2ZpDTyi#wZ&0HM>hVszPAyP#TjZaT*)Ac=m;bu7S zyEuzTz~xHgpcxEu@YK09z{sbsg6i*Sc}>7+9 zkll4)8!F+XJd)mDO1k%9$$ov4sWt%U;w&56xKmBJ@^6$c!Tamavk2g17Fe6mMUblY zgH1p4WJ%DWD^VDTH~=KVJzb3;L>rou1NR-7XtTDP*4OuYUwwA>5M}aKqDm7$9js)Z zd8Vpmvr*UeiY78MHq(V^ywP|nIs;jlSAn%O^;&oohDR}v`b^rWh5614)KiQ>A8BjJ zV=i{uA%jqfZn*J}rXWlzsQFaYLOT;p?)Id7q>g?qt7C+gQR}saAsI2)uF)1*;9ld` z`dzApqj9gvh_T12u1PHSx{Vvno_`-4yEuC#;En)5uFDEVX0RD~iuXTjh-kmwZSxxD zjQX0Pp4BR%atQy7p&`6wsJ{JmHPT-y#kZz4=<88m55n$;Ppl16Lwn+%$90QAjI@|< ztbgL4MX-WZ;=ViIoCBKDe1>0WHK5DV)7KRI>1&1~lLdp(cdZ-3%QM7P)TG(dM)Ma) zCBEnSCEbYRe3{AeqtIea+Hfb{eZ%EH9L42&nh)ZA3S!l=s$`Sq5GUnR5hqxjh z1hFIqs*O(fSVFME9MZXf?cEsas3U~N`Nm_9?Ic}~!nh<)EWUhih{cj!P*6IOASjcW z&!5_~>3`R*rq1D0!fXbKchsCB^9%J{^gzwq6;libSZZ4@W&Gj$_JJvphoi4FUuCCb z0s``R(nJb0QaABNp zm)_1hCb~_G*vf{;7V5TVzgdH1d2)bYDI)T7NSsZTR4Foq#VZ_H(#HPbCc7-vIz@Cn zOK!AQ`rJJ?`eeK_K5ecIQ6Xv+Mftr;nG=Z#st}KtGtOMMx2-9fU zNjEaC=pMqSQaFQ7n?8QK4?~M8Wqk*6atG#ubDUGv;VjWSc zy>3LcBQ$olTdzo6W~v_6DR!Ooxd5#xL!yuI2J)x~o`wm`14HcVciJheCI5)^++3OY z90AN25xz(iKFcK!a9t8i|2K(6sLL-SIj-gA2S*4Bl%W!vN0iCz(t%5gco8LG892n| zUt)4$=F2p}ZGZy^KMcN_fm{J5DY7rd=ZR*N2KY8F2$n|Aj ziL9hBGp3#kA6y9LiBVWu!hO2a@c#M3_ikY6+jSv2c~5K5w6=@lc;*fpOCn3rM^F%6 z$j|M-6mn$}LtYD+&Y>9&lV3kx(4~_`x(_TBM&TxJBfW*OJSO@|VX< zz#21Zr~^KhjL;2U>Y3kL&5Uw9J<5BK zKQDD4ykMTUg_h^Ox_e?@XiSeo&5PCNdG&oSOKs$D$2xF53<8ohB=jnOl&WB|^5><#_zNzE7oSq_!R{~o;we1}m6o36wU%C#s!eZR z#e?8AFWnMu*57e$(u2IttXTDNAYturiHzeBqd0%*2vO-KeA8cuQH1<{+BbnYw55f& z%ss!wK|`@RiZO``7gFxLi~O$u;LhlXp@(>m+4ZAAR*RBUoK*R){h)3nzj80J!C8z< z8pb4+n1KpVyOh~&@&)e!W%k)ydJ|nv=w%6=bVrn14^_C&U_F#8K$zkS5lxYHAfEu< zl+q4p=fHwx;yrEI1^3ZR(IsT@2$-xC>Y#L9Fd&F9Lp1?hEUcH;vc}A;qLThlHy@I{ z%jSSKN9^2^zNs_^w%>o?!TX8^88=TwKPHtz(sW+GcZ@mK6?fBPgUjL-D9WNH?BWRx zn@`5VWETZe*A&~R+p3pUDI(E7OhDz@~(c`nr_MBuH5kBCj!DvP1! z!*ZYhzume;G< zTRJTd)?hKHm(!aSCcarbasT>l1Thb%$NC?$qJgROzK&n2ua&o>pvH`SVojAr^b0Pm z=7FDMhLECR?_RvbC4x-)oo|lcx%s9o>`pHJU!i0gvR4^ew~dZ+<8o^atbdK4 zrN(p}uo6FHDOF`j$+pL%;wAyIfG4mt?%7Yw=^l^-!y0M*xEkP3M;k&UR!@FrSk%zh zi=>0u7#QYmn#nDWdy9Rr1d^)vA`)BE9%o@mKtt8hbU(N_yWf0;K`O9ZXq}}uzj2&I zue_z~3bNF~-4mZK9e(rvZLF+fGDu=PvbiI-WGa`jcZSunZ^9k&;JqE(8#@#@H=g^r z^9@@ZXm{IxL50YDh^V?H-;X-)ZWMEEhEprdDuyQ!8hi7e#a5bQuU4B_dnM%T615w4 zUbjlmh(&h?30q%T@UcTI3zpOxmz;hD$jVAZ$dmXmg#~a#|Jrx=&Yik<;H$fP4l>v~ z-zu1D>Db{1XK<~d3)wIy*6b8+veB6aRxAtcj5~f zRo$O-kGuZu7Ak;D*2AK9ZHl9H)80}|xj? zieiXCQhFFkfvOTIye|aID7Y6&=_TS|gxCDiXya9cCP+h~(*h&G}e;S8|g3Vj(5{P`2?+?~xQ-FFbSDDA1nP@7|B9x(}lKtRlt^CFWlM=gsi68za&x0RUt7Cmt)ts;a>}%{# zQqPmr`n$G%>E8|Op0nTjcf-10+i(55fjqb>qkkp21Nkqt+Q+aJj%##9rFRtlR%Qth0*P9$`BXAp`X_pb^w!*1lZ395bPQIMy)*B zH|F)3*@hBfv z5o_RHfcR0Yt?yGYG%*q|f#h0tmx(n4x4;#bjTpftxShZ#=q7VVWo*ZOhji|ME5jt! z`g&{@ZD`p=lB$K9r5s^AdCsZR#ga`A?S@dfayAwd%xmo?gEYTB*S~v~upikol095J zZa~qESge;gS#X>#PG-~2jw9na9q%XM_|xT- zR7B`vi=ylvd4UGyr-;<&eUTX1Awa2nL_<;%n3+3AmOeaX5eHY7_I)KY2*oTg#*kPU zqdK7*egtt4F0|m-u~eN;heX5D-Z#8LE6f}f0>ZmcCfcEZa&5rDE!Gd5;UKu7%oZ7K z^VX9&(QAWZ_|$E6lG?2S)ptkbXTCHr z#lmYp%<5r*kwLE7JtE~Di6m);t9?!LJRd>Lnh2Cla$`dXW3^x9Dd;BxBnLqN#Vl~@ zzGb0rHcf0V(pg10`SUn0)hP(3Se%_WhPpWtIh(+O_t7tiGuxKa1fgX(mBS!Iv#xnH zs)^R0xJy^;D-gr<<3?oLP|itzHK=2SnfO=qt)^G9h19WvQ>oJ+XN|M@5t&<}7u18! zI&Z7=hAX)dB;`i9*6H5~H<(Njuc2ajUSDh;O}-ze`;*LvH6%*JB|rb5TAXm`sN zBVl+?6bu1F1u>3}=HTqaK1 z=|guBx@NIqr-YJ{)uQ9-w}Fmr%eI>7)P%u7lffptE5~|BegM5~QE@mIKDU}Jqvla548alv}gbBh>_z#wpLB&^*Cv7sSq#XYsMSRrVI+2Zn~kG%#4{28%+%cYNOI{34uEu zVnMMe{(~k*=|5P>Wn2sq5dI{(x8?$`x|SR3ciA+T2AG5e7bhVq3d&eLJ!~Nb_^_;h z*N`DL7vC(N%WH=(3>DgCe&K=nI6<0p%GrQpICCMY6+8&BU(~-zTASz_oEz382PB55 z=HEcG@j6uTo$g2FATHa~W4;e(w2n-G)^SXKES5=8ONpV)-(MEO+Ga|7)uIJobE6|Q z%&L0sAw)61O+<-0QZWzZVON;GI=RulGcGs`)pSdvmfqQI<6*1Y>XC{Jgvs0u9ve;r zKlLIib&sdhHtSFtrfT_LBUP;7oU<~DW;k{}$b#3QsF7?-8FBlWNdj0ik&X**bc@fn zB)4xD^`~-;tjanf9$2PSiQ7_VOa=sC9R&>JmI;;I8xkZv1b~pB&iZxl??z2V*#W)D z-C*>X@f%8jM&%?cAb8Q&QvWamO=e2FJyI`Cx!WvN=$tNyH6F3?)mTFZ?jnyDtHR>1 zl3=!G)`X`b6AvCURcEPCwRUy%kc0+rtI}XiQ%f^hG+|U}#R#JfU*7JJM5*jNxLXw( zNBl9mHSc3+3)j8YgO*>)%v2Be1hUD@S+6#>um`j6wtif(U{Ed#U)!=Xk>48(VVIX9 zQ^x)I35z}zbyerHkgjT|B6?S>^RLQ4YZO%NX1-=JzX37;fr!-BnuNAobp#Fa-0&SfVePg}Vcv)$3GJZdvpd!AoPXvKkF7SwSuUIg6+$#BHO->XZ zyOfBv5=0_tqLj$=5L_r9-2R4t>QmOAxHeR5xoe4oU`$5b<`NecQ8mmPiV6pqYNsNe zt93tywxzJ#A3*`=$fECv41|YIHN25p= z{sZ)a^87}X)FtXiHs^@JP38RuN*o;lYHfgH-R;v1}w>AP=u$t5< z&=f5rOR-1f{7j3GC97TaqrNP;tA3FMlKel@$UCPI z=ZDBTte!a@L*Tf%r-%gWjIx^`v0eWhIScDRNUSwXTEs(|MEh=0UO~m3GWBjQqJ@bf zvVEW6p+tsH2z%Wx%{*vHV_AEk?M-4k6+*hXMv3^zBK24O=1ki8ohFbMHBh<@KRwtr>Y zIOoC$^5^SMemH}q&%=VjmF2i2ea5$0?2Siu+ic^X1|{t_K}ndn+mj7$^jf*>`eMdtJc&+YCAoaT>55F z<|AJ@#jwe*OfN`vuUM-KI}Bc};+M9lNaWJ1TK7P*EA3-HS3OY6(;12ze(rY1(?GAHT`avJVC6z6@B44q?vcyor0<+(`p69d4M^9h;m?3LwVUm33ElysLE=Z>| zRdDiOlf~GG4E+TGIR+^xMp^`!y~aeweVs0gnJ6CUI?D|WJAf>tdB2=0kxXQC%>aDQ z%AC(Z$xofu*eDW;heV)Jpe@P@VYb#d4T(>nmK`)?2PhJBwTG?oPAWfC}cGnq63&W24b&TxTQx zgQhrE&;C7<8?O|q5c^O`1z0*^8}{#u*av6<`5=nmj4`$c!~kCkB#Uws8wuICr_e1T zN+U5N^-FTG+hdb-jty5LcA)|k3E@P^ViyIjDd}+_ zYcZWRiHBE7dR)Zi<9srX5vj(*2jX6ah&dT{zm+H14TFSN5uYo42zxPSsJvqGg}#H< zU}~u!>EP;vGAspC9y}W{`|+B4Sy)$vstfC_$yh_8=b8a06Qvk)Edtdv6&=tBUEQJ` zc@Cu^pr970sBG#Peu+bkjhSR9Hxs6fDuAm_bJ^IqGNCz6>Mml#Qou7B_N?hgW)&0H ztxeW~6+wG=v=f~I*Hx1~+meN1nz{Pa&wZ${(qYl$kCNrsLqwtn^>RzQ%Qlt=&v212S_=<~G(A*F7@dqLCdF@64VxZ; z+o=jN!uW;S)|xXq5;uyT1;C)9SG&!$W3^av)`>nN-q<<+$owMa3SxpYBjgF40QE?~ zls~#$@jw#to#Ve(3TcxHpxP3D>7fP<0UwSA58fPRw>JLVRbL@p!iYR6tSPqw+f;y> z*3mBj3MpihD9Z4VtpV+0Xr%jaR|1SKA;OM4$%A!6Ot^_A>j>-VL7zpXX-R{w1vg^h zL&N+H(H=B<2EnkF{PutARXiTRRtEd6SqY&k>@TuNFV38>>c8M$X2mjmAs5WLLW|wO@=H3IX7s=O72l{jEi69&*29XCecE_`jSd7&RnzN z2*2`oLgX$E%&o$tOPZcmu4t_uZyk8(e1MI1P@3r=WEAwtYJdz3{40RvjX>F2*3dsf z3N270C7w3mdMXYC*-G;WXT-H6C2iwQ{;}z&HFjjBoq(_*Xogb;>e4J0lLJ&>S`b*F z(}Vy>9N9jLD*&H3euoKCD1cS(ftmGbsbgy^R9`SAwl}iATD{BVwPmS}&DD@dkO#rU z;u_8!L(QS#$(=(w=8jMqkWad>!8AKn1`mrB>UIgiVfFt^SIr^%zel?2q#~isf0vBa ziy>`^5nQ3d%|$BIVq(mUw7-AeY7;LP&8EX}bNL9E`Ws}gmfVw-i7Y{=Nk9)wU>&hJ zTn{>!Uz~f#PCWA4y4F{bbVlJJDKrLc{MBi!H9<-Eq8zg{)`h%AK2x@N^%cPndq!+CslW~B z_PEXilVZdFKz=M9)>%Tq#x)=*c1>B+uMv2Tlrz$2^J{X(+7XB}&Xy_%O@w_Cn$4<` zh8kFzDdCmAezd&UQP2dfZV+RoeyuG#wuzPx`YW@;gMN!(O5qZml8B1y1}<=*F-iOz zXUJGSoJ$;8Q;uwXT~o)}b7Uu&#lrl}(qxd{&H46m1 z)&&BU#Myc-VIG`G|GtT{t#LNK1&IOC+_Piu7)eXqE9`*I`E@vj`>wP-(&xEDddqod zSiR49Dk}N+PMmE9G8Ba+0ae1Zw&y3gVS?8Hgl@I^+hx!;io_22%v{Z)1SvJSKA1z_ zQ()@&4K<;n?RsJ7AX^)|aw}6HbusvPWh;H^@-8@HBxOM>$i~a&F~*N&hMTOzymNkh z!0ck*z|$vXktiD*vxs42AFkAqkWJep{Tlj^Rkd19?W*%Tw`|oxO!x04uc%Vc0tH;& zdCaV|Ip1lN?JA3`ly193O4L<^3?vsz38@y}Ti)%#pEI{8H2$?iNOs& z&HP7SfF=BZ{8;VOHQ~l^WX4QPqJxC~%mGvYKktU=*r@o{TD8Y0DJ7cfRFDF0{!*M$ zDPebsZUQ2TjN*GDS{8Wra~qAB(+aMzI{~eH$lqxg} zsZ!ow87!sO-e45rRovXynDoH`c^KUGffSliz+Ex2J8I0@mwzgT9l8~^RKf7vm>o;^~P!RpeTH^aRWC|FuVQNhhiQ&V3{A&=yqo08uChZi)rpuymncL2Z zhn*vRcH?2qG^BR-DB}&q!Xk#c`a{$7jm}7>x^w?0&mJxzC!`_=ux%Hf4aBL41zyqT z(E6%5#7%lr59*fLLk>}u&m>i$En__nBEl5)29ALv5`Tdpt&CoN|WA1P@qTS!u9QEs3H7fp-Go~-+_?BruO~LA*G%<;o^Y1Ch zJ^Tt;wp^LUu=M`4GBg0q%o3zb?%{Bian@u+pSuJFo6c5+BDPFOFl;Oq;wQ^m9-Mr_ zy_F8e>EjCQACs?q4HYM6xcQPGCMXjBRpqcJ^LySX6|yt<2Bog0vmxPyh;+qz%|o+N z)#gtOU1TNmfPCwUQ9-^+tdH!`BDAZtiRMEzZQs zod`HF2|9TBCrMClasnD87!_7US~EshdaETUw*_=j1IwU`^;soNxrrd^MI2Si6#1h~ zE|t|pwQ!!b+{R5O-Ds}VIv{s>-g;g7^7LLxrVlc&n893*TuFS!&*Hm;#jgvpm8gqm zianQsg6u$W)9V6QX0rn|B(ctqpE#R&kmJZ>kzHyikrWmvG>)C%dzvSr!vvJ`_6yHE zW3(@8LBnJ$!dr}SP?~j`K$xb1XRTDmUYMsvub`xGz4AKYrOf5?$eGP+$SXn$9dYqo z*-{lTzq!*jJs3!$ywg6xf22g`=Js`Og%*|`{b@E!@X)o^A$tb1YkLUGs9Aj z=hOo;L2+Q&3!(2sK8xQO@?lwkTrl!D4DT&*~RfU$%>x$PbBaY z=0>-=N|!*`=Dy^E&^!6?N83v3P6_22^<^Sfwh0Nt$2>s4h?(Zr#1)K2d~m@qKPhh+%LlJR+5%1@hx-3Iv?`ZXqE z52Kc0#?Xq!|Ngny^VPQ1^<{P|{A5@miAa{#UIG0A?!nx|d_)Xi&K9-bPr!s{o<`PN zpWifq#fq4Ykqt^E)ukzCaL>sVvdNRUXZnXKeFP%QUo>n0tT&JGz6Sz|#GYkyA21Cm zt$Q4y!#(phIM(=|KeKyaA+h6LZ9V))$?tB9>Yj=7ChA#Np-=U(loo!i`Q2BlFecQF zpJmuImgSxgI$lqOJg(IcmaHywf? zDx}#88RDg%wG#yaKo4n#2j1;epDo^WI!YLb=yDpmuRxxj_w%nv8*ijf^^6m{pXyP#?xf}+s)lA|#xm>aW-v-X^Thi?@DLru z|DXBeJ@5E`=8qT6R+Gz@lB?%$|1*C)0R+`V@gdE8^)Zq==6npE8auft4J7LU2eY3> z9GD+F3e`M+dspqwx`@ z*!RC{BKdqK7(*$Md;kK1?lFv!Ln);!@xcN^zW^kVkKkwN8lR0kkFpR7FOjNp519qb z`2pS5-IqLG0$I9)DfYZO^00z>LrgoIhVBZHI27qM%rC6BkwNo)!^H#PnhQpf}A zX#9HqgWLWVD#HYP#hiMv;ZY^3~Vc4zY7VY_OzcSL%ZW5#q*Xe5DPKG*dt7%j%55 z-WKZ9pK#vh#T-qR7s@tK#P!+9dq!uEA2s28a3~nTQb$Y{X>K9yEtlxex3#S0#Jh@b z_UD7s&YST{WzH1=PB?4{pAvmor2EFA{d^J7r>O^lI2>o0`SAVP{Noc(aBm-~l)P+yf*x&#rVS!Jgn`!$rdv6GdD8sXY@zy?&qd*%Wx zK)*m7f-|Z$|4s#wabohUR78UbcBSB!uo=;h5J4uNo81FGU_Q;SW2(I&Od~z$dn`$; zLUs-^-I>k@RDp;U3fI1_?!q+y7LGzlq(pm*MBP(%Qnox6#1M;kIx3Ls3@VW8OQhl3Ya}{mCIJ4dsEy*a;MVZN8M!H*J z@Nz>nP0(%%&{)avv&ji_gG}ZE06U+MW%g5)T~NX1Oex2S%gm4307^7959#%OfPne!u(1+;OF(7*W?Axo0i;{{w4OusaX}WZGBc# zsoA#ziGW0IPCa%BDZ^}wzni0Rv<{$Yflr;=5jIFGd8A!DS;G5~^079blS*$B2MiP& zOcayGWEvBM3lM8(k4Ye|lo9n$KIQ40*_7~TF`vw;a0tWjoKOgJ>$+Q5`8Qz!4#vet zCWY*S;X=k>J@=*7E0~?t?T7Cy2@-?3cA81C5NTjb#SmJ^}vt=4B$*%_0OtO;C6N4>Ai z;hRoZjsLbwUuo0fwMP0$`W8~$|Gcq_90{FQS|j0g_Lr6T@65zVmXU#;q$}q5eLiSZ z5i{N~{`H3}aPXaL2CUO+fRlk(OIp7t>HL$_{kyh)>E8|Op0nTjcf-10+i(55VcpC2 zTmM=z)R2FRBy6pYWrc=lu9>R5&cBr3)|}in)%1fEbB9F;LZ|EqpiFel&N$u&;!>xY zquc!$*e*L3`Wk8t?uBn%eWCk4jpK3hmP++Tf8@vJwVUMj0vBGm1K~N7ib?TE!f3fQ zZ}F%#mrg@#nl?nkRy1CGVH8k0bS;>`Vu-_FAs5rCE(w?TX{;0MP_97Yp*Z=N-BhK< zN^%62V{?KjgV_L8#A@BrXmVC?(Jn*+x}rDGOF%-XjxAlsd?OmZRK<$It) z$UJj7*crykP3}Lcvn=uOw$||W;%Izje%9DUF(X}ParuGC7bhza7xI-ecaRk`!qiyF za0<__=!G__lSS9KLUnp#Y-n3&haXh?(3SvrjzOK=c@d!owayd{}7wRtTNhVVyMlj|Mp~a^JutTpCv+kI#rdIT~t^I8KWfR zH#l&gVO-|W!>Q;B{q}Gw2$Zz7%!boN?!xXj@&>F|O}oBc^pm;e-=MVv9ut)fB8i`9 z5np@lpMLh*2F`^H3*4@6{cKn3alb@v^8fnRO)otE_;_<-vbFx7h#KD3Gz}2Vq}~_r znQFz;GmUycC5$QXFBV*<_jpY@Y8s6PwybU(k@J$khF?v2Ls z(fRI~lf8o{DC6f+J=LHzRrlJ_-ii4}@A#L!J$7U)Pkg<+=Z)Thv&#o=HhQN|EFaVN zv5yaLE_4s*T7W9bTRwEOd*(#%gM~)#tE0VZCmbZKoZq@Pd!_fmrQWF{v~#R`{YInv z)xPdWS9-_K(oCaw@a*y-DgQi`b@s`^ca%~y=?XK;G+@B5cY21JHSP$fslGdVBYe@9 zbeOI`{L9VW$(wvqHZNY-NcLS`H}WEU-r!_`M9bpYp~w& zeJseo)Z`d`xUjo-Y7ZX>h=zM$veBNr(LFz}(NZrrS%u#w>jWV>&lrBD3r#H9}Q zzPZwH(&^6^o2}XhtlDRMnBA7ry>#5E!?VA351#GOjnn%@8Qn`q8A$Jfc2CDGf6tKJ z>-O;amk$?CG?wQW&3yOdZJ*QV5@2GgZ(i9h4^Q{gi`{olH+shobx)t|U6^ll=S6_M z4-YNRT%n18&Om!+{f5A@Jx+0mXBTXC-r$(y9aOe4xa9vJf78Y z5>`8Zo$>ln7^o;u#>9ywvtbpCdUT_~L& z8WN9dGS5pugtV%?li&7E9{LA+Aa`mB$qRJ>w8V@ki?snZW{iOloM5GPw>lXx$7 z3bXaDUF?3fTco0PKEM5N;mGo_i@g)KVZKJ7K|l5(kB%p3#SetU{W-$Hc9@qB@9$o@ zsj1fK5EUzOCiXtLjTmmMUq;G^J~cDP6`EKWanEk-y?3P1Jv`rAxTN(h=c`i}Pu{3Z zhq1O3Qja{NNjNUSqC!Y=#t^X{OHMk$9a<(+ z8ja=m;RxxDN-i%~5h8aKpPVP2%d2-|U-!`N#`50N%QJdjWbf*IeWte{6)KL+9@B-- zZz8+9=WaKaXXwvo%g1i?=AqWPebN{o+-Rgv*N_v68SO575eUBf7BuQ|G%*@Ii1U$S z+O>S=7r;k!${elbqcpWY_Pekoefgmtsqs=JF+~)R25g01>%McM_dbFS6?yBprvDgg z5j9J2i`cPW(^rM;NqHWU*kN{y*CzO*K+>D(sgBf$sOw9>-0|+gi-oYz-~6TzMLU?zQ>l1LCgXCpo1}spUh5x~JZ1tnVKD^5Mec#=Y8t)S&sfL40+mf2 zFZ>XEk}$QFrgwY>%(HxIU#RBs{(9o(RRmFhOlwhGec-4ORXrsc?ArSV^K_y&cM=N^ zwQX|X!s(q z+I+M*7WYX-d^8C_mn?kuMjayvZvaZWSIrFW9tnsa33CiBd3N49%rws)?;X8FS7s2N zJ}+w6FBJElo0N*SafP}{1?72}vhD6<0w5GF$%F@2a`CX>S$1>jtShFwzDeQTz0Zt1S_x!)NM=quPS7%^}~cOC~x z)?nY=;DVHf=deDQfGZ`L7DtzCIAhId-GUmwM0^zWm(`#lx$Zk(NbA`+-3|{|cNb=O ze=Ql92MmTP)^P1LbdDrABv|y`5kb-_NmK_H>Wp_D74jh$>~!DGT@^6IOEBAZ z2Z&oK-d?+b+o8K~jODOTv3AFZ#wjeW^{xuowY3XlUeg3g{N=^6`>egR7n*8KgfmdA zH^OT9O=OWIu2m7v1NLWZ;V4 zhuEcNgDfA#%_5}Vh3S{~VDRlTw1HqOjBbg^D>u3yp(3yEhI2444Xq+Dk$S+C-mwEc zv_Wo754f{hyxF~ZNbaBy79_WQX`OzwptR0_bW%ptiTHM}k0t(!o`kYrF4K7jZZVOV zSBX{xuH^G8AZzvJEOUjj(bf@;6h8AsEPv^p%^sGvq?%-xB5 z@uXa_DRS>ns-i1X*=j*$sTxq`1pwID<-Mo7hxdu?|MgKMsHE)MEN5y|KiY}F1;w1>A1$#+sgQNe*&xa}mb z=P|rZdy4u$$mO+b-s-K!@(|;EN}~?!0-bhGA(C)9nJF&}6zKotA-ZLfF*x-4Zc2t( z1TeZs7rN(en7T@}1s@Ck9fAG}```~DokJj7J8+f~y^dAE7tNUJd3>aGhe zoCVQ|0KK~RV4}5!%?IWImqGs)& zq*>)&U^k$6UcM37HJm+0yTEdU6m01X^IJyi^4w>V9&U}&i;{y7pO?J0wpRgzb{BxO zm-ev%;hMR)|2Js`H8at%=!KH?X?rEnc5s+blnXaQmddz&5zF|Eps9eyt~(rtwzWoy zZ2@PL1U<0sBD86m`mJ*qu5=gw-qCM+d!Pd_>4|v>2Su^;-{0$|t`TGAV@INfFJ3jj zB}P(fXS?-^1OV~~se9n82%~rWiX80dRj&uKldKKE0Wwloa?{^JX)=it?&%He7Avvu zQU{7_;e#k~Y%aB7{za7042CA1IcwIh8Sktz1q5(QENB20@g8{4zE}54-%1KQYu5E4 z+{)YEJZ|E>XH0SUI82yFPNJsL)wu4+4OT}1VnZ3b{@HmNISq7P$9d-LKCR%_7r%%{4hA)nYkoqoYb=47_ zHOWOC%SEa#afliDxrGgv6yELrPXp8ReFo!{K8qKo7QI;Es?_CUpCJMo!6goQGe5OS zK8-VcS-k_be|kd&QvS1Sas-EJ>H9vXu56BvZl}vmy$a-Qwc#Dj$*InW8FD2k5I$$0 z5sSiXIcvT8`4}L?2t{2(WxE%e!A${91SELLU84yjOL5fkcS1D;gtwYIf+y!o4E~wI z1qiuGT320wTC}7|OY)W8hMSbqCb1rEYgzP)L&^9cO1~%mPd4<-B|NvE)_dO`#qwPL zj}sGHw{G72Gm}cT1z}dG6$zNsUVU>`@?ADPXzE7q{64A3^6i^XFeSYVvYQ6n`=#o` zt0u=<@0%OThp%+!56S;0WMIvh&*iIq%loc$Kivbowf4>cP#L}1#Tx|PB%_l_Qt<6Jhh_JP7z<}~c@@-MZ-p>Jl27%eZnWu0TAhmn4ZSpdj3 ztM%vZ9c_qmZsD)PHFNr65P8^E$!OnDM-6iC;+rtfh3&IzoVEL5jWiXpC6}sdLOV#> zqCVHakK8-9M?FOZKzdf)>~YN9?(9u@l5G3bW}$cDH06YslFz7mf9LYP8_S1geoj?j z3zjzQ^hVeBI=CPP3C!DeZrvT7vQ-Z5LnnwfCd@U=26D~LZ?P%b8dG4)&?~LYL*vun zog9XW$9f;$VuEjK=O*ChTrEyct#-$ulNfHU(@+lGs$6ds#EWeBTOqPRH@v#3~( za-sZE!)`(lOv{*G zN1(!#R&?&#I+Vj&&xB=s%!VD@NJAi~Kc0BN`nH}oHRQO;iaaxtT^~oSCVg(#w zi25Xm#@v8u=j3r#OLnUnS+ZD7F3_0-*$tga<7zSS}0Uu=)OKH?y23 z8b=XwVDBNs3Tq>nk**DVggPF6bqJB7ul;_&!s#Gkll4F@BsxY%L)7 zQrbV)wY%xcK+KxP`X~N*d`k8c`sZg*T8MA5Vd368CU;6zuVpXSa8Y1#C5HO}{qLY? zsJ(DS#!CU=HJFJpiRonKxKpJ2#?f408!u^LT_Y7^g*LZtHb+5J7X+x_u{yJW5?EM} z(1FC7BRl1i(t#2v47pahRL*;##S0hy3DzLl({7w!-WPWoH2ohb9>;FslMb_%isJUX zBuhorF%YG4HDB;;F28q{L2Cs-IGdZ!2LdTntH+xOi1h1wB_iHBf&|f1^Ol>tDDDcT zd-z2Cr_Z@_&##$@i+l1&h%ZVspjk3wt#59UWL1&L0T=EiIj+sz?yV2$S-SK{L(hN* zud-YAx`rBh?*y-e*FV&j&7111xnFOY5#Wll006(Wj1PzdWWD`iyj&0D*!%QbhbXih zF4s#{YbDXsy82H3J>Z!n?_-bcY)-VL7|p7rl!-cm4;Bl2K!EC55-=mZ>FKMmN zh6m&2A~<&$`Yz4Nx8gZC*dPXOq!F0um^l?;kg}K4(FqE~YzA&v(U@Z2V+a>hGw5nO zHL&Z6*W^S+3L$ba*2l2$>n7c@(c^akPN+G^F>Ht zIxyfz<9}gv166`s0i@Yiw%Z;Ahe8WM*SBEaPrqT*Z0=lJpdrnRY+sagSgs7Cp+}wL z4Sd7<38$5>#7h*W+J1o*OC5xcEM%RggTIIb5_+vJ%o)liy5Qt(8CvLk*}&z{BAcA- zjy#{5a^0+-&2=yp!uq+$XRCS)cdd!H5H(9^fHqE8UVHGHRudT_R`LCmT;@F4FLKg; zb%s8H6(P7G`FR@MzbyFdoBp#XiA~{Nk{q}epC+rS_$=Onw|wYi@4Y>mEr-N(J?#jl zzz2U4@1gU@?s7I4kDyrhG$sxz@|eXc_y;e7W89yXKH0|>z`%mBfhSGKRvW;F{J#;C zCug$89dEQNq^=J2)L&kg&?w*4JIBldA{ce=A*Lv>E3)HsBYi3|a2Oh>RaRQh?ZiF1 z^;>om!Kv7ddrnv_r}l||mJcr|bXBn8JSG;x;Pf$Kt!$6oGzLsi3d0csOw!z_E5E|7 z;?=923CNFJx{~R|j$1?@e4v+4bw(70k_wn%g`1VW9saDqD&Q@1X9Es=FtM7Si3if{ zbZM5tFli**O^2IL&b{^Hf6jc2ue91*w^{$bB!Xr^Q1(9Z%t-3xDO0pWKS09ROR$zi?=x6h^eBjtto z#|!(j7|7D~a$v^Zhls%tf;WE_gP-Z7N`lKv^DL;*LIOXZ+83?EGP6TOA2NP0@d{YINA4+=c?EjGPXb!d0*t4odL z58qN`g1m*r4jZ3_%jAg2QMVrcg{?HqV{94UGBcoB1Y6t9F ze$5r)D8$Jq;JbDYzZ9Wt(6xwCP841GmWKLoy2^HoEp`_OdvK7G(|3as`gm_|Qnys? zn?|;C5Vqxl8+Kdg6@@Knk>_HJBg#q2$jP^Kb(Kt;gTNcxZV>&OSEB!tp`PtM(r&z7 zh;U1QYkc6lvGxesyC~}5?iroZkOBSGZvOUdBc7y9r}Qx14MeaFq50~m2>*f+S%@6L zQyZ@U3Z;nmsJ-sTUmJxnvkFI5b+@%~^TE;oyJ$1J*(deLeDLPP2%B6=kWzG5uTup9 zsQYP<54Ahy--Pg-;*`kQw=^C8a&mAKJU}L>dKE7&<_Uq|i0y;>pcTE`;kn+}pXy%u zGW>0EkM=+dz(Y=o4vjRm1e}x=uKGkz!?hFM8{Pru9$teBV|OXy0q-{QMA(Tkg2!AY zMC877`#}LA@_-P1S~)|L4pf^IjC5Hkluvs)XtTmGY6)pJyXBvRn=Rsj24n7IzT1^M;L2zdGUN*7nIMe#q*^TeyFARGkc(WX%*skxJ9?m~}` z#(y}+vk>&o!(VqsrkXt2*_vo?k-+7__CK}8j6~Wy2yPl0o}mBq1e(;(q4D;xjy_WM zIZVRsjm_;*ura-F+CiIVn=EShbLf@!6xYU1c^$4@?0o|*Fs5~6Fq7L`UWZ0d9TN)? zVy3JE)v2GH9#$|VefcfsrIT;|TFZ7&68)?{iL`tM1i1w8o0nB29UgT^EUNg#-j~{M%ya8|2oIZT1 zWhY#WDkR@SV3NpEf9zDJf(t2jvw=%f^Gx*fRI|~B`6stePyR`kIE6WPU|ccmXDEi< z$oYe4p}oDSVw2nTOjN|&ax7$6&aqc%fQ;i$ar7MDJpdZoiL zzTv6PMD3?joyWE`xAS(g5k9N7^y}Knh2o8>(CD2h?a01d)WqP#@ywHo2tIh{%caV_ zwj&*WRF@mf#GqVvp&*Tp4%MxDrZX|oM(lu&@zC?&c~01y6sjEfd|?M=v@@^9+M}D1 zfIJAtJ)iAtZ;m36gWN|7O|+3DcIYOY*nh^vo7~Zp;}G&BeqX-N0<)fP?Zg<8S4eERk&wtq)8UG^eB4*J5DEzHztdu!w6_Q)jG%b(QS zh>>gv*<(KoDt^K@&}v9pn0}d>f;6^sUq%8S;UMUyA8u}MFj|<+1+QxN6u{K2xBR`j ztT+313z`I}=VK+5vpq_8H6nPmvN^~Ju)g!7zqj5t942mPjJDJ%?;4C>e^ivvImXAt zh0o}0K-lqIDDq~jinK&#C1dMZbZ>)MpJ+Ak*@k7T^mE-G^d_!LI0pJ`Yf@-AT1o+W ziwg+(Dt87$O**6G&-eL37a3PhPW^BW0xSB!WQ`NoO(~Qc7g^~Kmg3nKvW+Qq$vDZv zw3J;@8x$i!uji#E8B%kU8C1}|RE?`Ot!eem&d!vr8Qj8^St3k5QAr-~m!G#>_j^g? z*e<)b<3=e=4ST@D+d6GaO7N>Ox-})e$%i|*)TPaBG~u{lbc6r`S1w-M(2=}y7;cxnp7HhjM{lzvC^N9`0BEfE6oAO-42!>)j$6#<1#5^+I$dIdt(wfk~c=IrHrk#;tw!A-|g#egXMg3v!0c6gh_FW0?ihl+uG+l4Jh#W?Ct@zOw+9TKiR zOZ>ahCjAivrh56+e!gvLhj{QeFF*Hee6*uEv7H1`qR;2z&ro{v=AeR~e9~N#%)IRz zmkuSrOn6jdeL|RW0~f*Z1h0=E!<*Z;Ph)*Re9u0<@o|-aDTdS0W+F^OFyYe%jKW-w znZ2>|hw})w$ydjuI)K$wxE5Xg#HuX0RU`h*s#UP0{ol0exk{T?)_C7#;goS*tW_mn)%(e^9c_u-W7+wpW681%TN7gBhSi*!C#(ub^G=P z##^wIqKK0=LCGUfV;v5@?1)0uszBO2-guU~3>v?Er75n@#yqr^!kl@ilxsb{_3=Oc zaqKs(_J+ovkh~C<8ql+U^*`xdbF7VWnxcTDgYhto-PRaj+!0E&8~@s52k`O6)6<40 z(IwbXTP4>gL2QjJ6U_#eO5?xko+U9kGOf+AQAfSI%-Ll_&W@5xCm2%+{WRDuk)(}F zoF8znE!cOWy|z@Mi`Cjq1p@)Oz4hb1iigy3li=7e5iCJI*#ueH>_(FGTl+?l<`zWf zxdC>8y!9wZb@S1fc$3^fiiqkB7LJb(1^aU2I3e!A91IK*1Eyh>O`7D1ZHD``z*uPGK{0vnW{LhjR!nL#LtNk+wHGhdJ~XtinfRt?bxB6x6PDZt%VE@{6o1 zJ!fmcpKM|>kQ@zv^GdU=!^mW`$cjLD+kQAVHZo}j1jOcLLnnvOjDR;y8sm$M4pf?y zQ$eo87kE!?XN1H z|KS`ua=KwJSFCJ zCx_oe?Reb2DmRj$J*Nyj6aY850Z^avTDrzVKJi?5V22DgfVRkv|L2CB#$#S+vN6fx z$P>zpIPc3U+tFxic9AXsX%GZ2cL15G3`Me)Gkm58W#DCgh$a-olA98*TbnSQ)9!8s z=xv>nQ%f*tySXV1wQ8;^PL>@lTw)_yyN$VnVv^^KS!+It6HEji>1z|RXN>3aH}TmY z@(fj-UFXn$K&~`fO$(V()HJb$# z_qmAAiz_sk*A7AwPnY?=p;Jj2W0TE--6ASMh|SZ?j3zb(lDufAj-o@;ALn;xWbYg6 z3$wk5D@h&BO42~-jK-7A?OP{kTF>neVFpcXhf*iuE3SX2tRs47EJh-Ex#CFrui{QY zskn_5C96Zb>;R})JF@AHPbSe_r=@Qyg;wxp*LzXxx?4I!{$w_u zJxJhAbl`m9c=2-V*4cUoY>(1~&w?a_I(=Ur+pS z6NXvu7P7rc*N^DOBuHfav+eEn#;+ZD>4%#mjrHz-x5s^#j{Hi_`V1uwx^X0JQ=kgX zi4Ai{MNS{BUK}++rLt--I`9Pk(SWc`%^f0}gb6sOH#!ncB;hKkA9!P56xWAr*Ht2@ zBPh(?)ZQTyb>Y~nEKSzCpzsqPJsmZ>(1{#RtRbWq8LJ8q7!7*Npo|svk*OOINu<+& z;lR?<2x}pSa{Z5m%SI5D&8g;)6L{dJKrT=7BG4OK%OGOoG|AR2O226274zDT&PucI{OB*e*XF0Ibm zfkK`(OJXzYM6I@OG}U?xY=4vcX7FX<0HXSg&hYC_G@kfBe(`7i*BEba56)MYtwZrJ zlyj_i2MedIXk2ml}k!CYW0HiVZyLC)6m)mzX_=rkWpAP`d2bd8?#8T z@fLE9{=#va+hb-5YN@7LTgMuRE99R0-`y8irwq*0j;f$ktWFoC(saY%jC3FEKVB$= zP)9{0(3kYB$e>gzse~lB{A-&sji>ljRP5iDRKPQG*x4uw1@I4zCtHZR5xK)ldLS?Z zYuwsu2WzxMT*@63>HkmLyY|MFoOzyKB})Tr)379Wd$7Qw7P|wAC8^|+M7F4s08KB5 zBr`=OFPZGTkRl5PJVtx^{qC!RF@yFF8eN`+F+h127~m9(8YaPRV)PcOuX#O>4J_&9`>vY7RCo)E|WgghfH;i%Sv9 z9H#VBY|i;oo10&q12@I4S*)F6BPM*voATdy+w|!+{%V%$`@L!i3Qc<(Z|~a>k-m}c zC^D&k1g)gPCGH0Dei8+U~^<^nSVlbNR&xb;n#3L*b&Gz0-Cuit1 zAjTf8rTslgZsnGAWa$+QY7i(56Htzpaob1@Vyqpfp-!AnB2MknD2|>mh2aR4VK6Cy7v4lDlFObv z<==RKvtlp15Za*t51>(a2|Pw{daE0hI%)Qr+`pBe&^Rz86 zNK%rx{N>61^gN8PHt>bUq$dB+Emgdth`5u38tSl& zS^TVZPx+e#G3C8vnhY~Rf>X_~HdgrLErTA(dna>o!U0xY^%MELwWn-2si&;O^md3; zT$z`1-oBKuE27a7X6+=ku>ufG(qiskuB;=yZQ!C#WsLG_P5)KJV7?-3q&K(SUYLly zz=|5)V_1_>IV`vfiOo`#Sk1~>FfZjl5J+Z6!Va6v_wl4#3 z<14~IZ1i&H3q~%5WL`$F3Z`XC4w4`WSJ}z(L_Z{jRtcD0@&eE67(2-Vpq4E!7lf=W zgy$l(JQThYhQ#z(W--jRgc4LSXq5PL;(Q_0Q*w!Tnj-w|SS3W`E5?+jSyB>96aUs+ zQBx+0e8gMrKwSjpfdYDPD{}`?57`pc_2?KC13S@>RfjZU;yyIb9nd@$TENtc&??G&3FdkUt+Uz(u94M<|iGT)&_`yl$leFm)k~TCD=T2Kr$i|7T~bm|*X#nw zW?PQ5EE5@`jN)bUxEgp>?ODXz2QW))UL)w{(u3h4Em^s&?iD0(G^bjJi|8f29lBg$E)hCFH6q zV-w;YxI#UfSplm=d>kYNtZEfi1)ItO&*Pi_dIm&Agb1FlENe7lLA5Z<55g)hK4RH1 zWt&;kVf?HUy=2Go&s@Cb0TCzgo|75gqZWfBwXNAiifjpUNlz!^Y)HM6S{cblAaRIBG8lD`NkY6{#T$1U?A> zyWe|-uL<>u{znVEFN76^5v&=FSz!oFY(qbr37cQcvFRbH_(QmBkbu4-bG#zL3a#&o zXS1KEPC^c%jNBEJ_4A{NFKl$ErDPBh1shB_PE+ZM90*V(^|pvUM2wrVmOP(YSL#G85JTM}i@59hjH$tw ztZK|w^|O%GNY=MZ$o5xVYq2^)Syy&#=3VYyPt6I7HMGXadIJ)wQNp;czs$GVn>tmhD$K&k{GTo?r<|WvW`9D^q2m^UINL9ip78}tNtZCF387w1wv|W z-3y`>{CakBbr_yPzi$fFr1zOP=4 zBLio)oE$w^B^Z%OG|1iFb9seLQ7e*cvWP5sHVhX(0|G;%BmmwzqJYu*3|O@*5MsfW z_2n<)U0su?MeobI=AfGQ<*e|*>&D@BF``G}bM$X|ZYRd0K@&L_ZA*zEUu6mp*)|g= zK7E=C5@Ac5=dwdhAtDB97a%&r3`eKuqYJiubF+tF>}WZAE_xeDe3Sql)rLClmpUjS zM2^bAaG*}8-)vy&B*~mZuZ(jupmNrl(t*eNRwreYnnL27U^oJR3Jd-CN1S>SZ_5mN zACEqvbkM85I2)@=rGw&kk~1WQFWK7t#p>31eJ}^A2w)^?;he^BK$wdlQ?ew=BTrvKZ4D!usMHJk3QvGZNoaUtNsZ^e zR12~gm;~}xwV>UL{z*Q@q|6K4r7-Pb<8^}Ei$u#51gFqY6G-Z90e87W* zx{n0UX_*p9VQy+LtO^1JB}HfyRk#=`FChz%W_?jg2v+CvK~p3)Jm~Tx3%W#w<<~-N zrlB!tiKj^17zXw#zG@Kg~Vm}Am+6ow2DmI|s23X|+& zd6y6nR)6D*DD1jQKutq0R7HWf#gSUwqE#HLDgvcICtyz_g}N#~v-f-bUWBVwpS*wb zkJyCh0joj~KkO~?-}z*;gQ1XG2%TDFIV86O0&yW+raw%AU;`Oo9gZQt!+3H=NZTB( zxz$_CY!~^-fGP)^-WY0n|9kH*<7h|(aloq%lbJYboSWi!oZDYAm_N3v;`78nmJb9| zIPC&dl=u=XXGP(j#uf;of4K(ji5~}yYpgE@g0Q}Mhk7!bS+z$q5DJ)aw9E8#nuiKm zHP7XFb|&YG^O?>iRj`zeu~?2wR?351KF3dc8)AlYvmck!*>P037*Tpp7=x_2%S}4t z!sFK6Z07{Vy z#o-Bj6&5H_>%U$R^C6hi6!#R|E2-F^Lug2XrLb4du4EZakw%UcO0}Gd(~rHXoPCD1 zb6>#Od^n5(voH~)m_!rVY6GNS@qZX zxl9d~CqV$ua>&lZ?2JoU;7f3sEFRA=l1M%fH5A>dtLh{}4WnkLT9?PuDy`#qQ3byz z4d{YA^ulji)pbZb#3k{MF*_tntl-o^=9a`{S0i2-``Y1WETU6J=L@qVmcIR!_Coi0 zb7Kd`tz>{Bk)o3Y!N=GKATuYLh40%RYEb8+(Mf(*I!H`9MT1rpAbBikyG0%jqW^%Cm1Gj8(jQ4p}Ntd^r*DbM9O~EEK!C;M=|J&IrCc*N_t?q zg-2*$5wXd09l2U{pOFYJa;TmjoZaI|9!!rUM(SDJ)BIoUx)0@1U8F>O5SC%-%|oPr zA(*Dg$%qK#VQkhz|In!MG|wN8y@YsC&&QLd!-^Md=~0>!N&^K{YdtKZ`)Q1>=dCf! zi=+AS^YKLGfO3`^!U03`tTc=#1T9Z|+qyq{c!In~yLg({F!N)tAzqX*=p;Uons*;x z4u^tBjg0Y#c6yKpO?4#nsP4DO&AJb-hUSSH4DhFw9^}EACv~^xX$uDQIKe5{VOY%( zpscou{A3RHMkwK=lX$0KCtfTSlPW%vs#pfnA>owv6?^m6rGjR=F5@oOjtY7&RZ~fg zG8~G_*rz1PB$=zwy|KF}bS{DlpbiprEze0vB5{h*!}aZO5kI7?za;NcJ4*f~QYv`Z zDi^h#zC*B|bEeapbpTJSXuehC0+OWIjlY(bOO48F_CNj>rO35-G}xm$sdlZaK0-Tn zBJ$IwSy>(4bd3S~J;I0F2$cGwaeC=cQgLXSh;~Ldp6egUM1hMD z$DmLbbe#|`B=c(>7#~AKk4+e>?o_z)Y-dH^vXe1Am4`Dji|*(R5&X&Ox?G2=loo+f zD*~OBK8Vl)#_|)dK0TX@zpxSo=xkmn^@iVT_c$z}`gU37)Y35sxjGk|I#p627Dj${ zkDl5feB#@46_L_zWqGa?a06E?gRL&gwRvHHF3T7?TEa^+P{qWcWL_{pR~o|%o5$LO zXr0S%rBOH}bKs`f7R*=pm7Y5qhjE^%L=S@`cjFhtYNTI+6#X=q;3!HJw-gT(tPbEJ zNk18x^O6)&1TnA@3{(Wydw~ZwBCIN0*=>*r58CWtI@*`I%w6coAHNv4o?rB)af!qG1?DG68<3A10_wMOG^AIJahZ9*=sP1K4d9eU0F$2#wq# zmfCF;qm($67|HXbJ2;pSE~4W?KY)4IGZX>tD;j+R7pdp&xVtm}2NE zkN73wCnWFXp~Y{Ybt&$~CMh6VTwz8`WXP+lyO>?ceKoT-W*iU9#rEtR%Y-rsu3ZU> z?@P;FKyFbp+?NGJ_au-@-X#u;1;BpL(G|*TQjtgQj}bBhjegLueAeGCFoUS}mC*08 z!dYbEDf^*$!!N=j%xcARMI_UAu2>X`C{SV+nNK!`V7kO{?0QRVCjKRG+pT8Fdy&I@$P4}erGru7(2E(YhQf@9%#mD@tFhwC+X zYMzHrN^CM{D2-~BCec$b15uGhr~*qE$-8%|<+j+;R2f0$VnbNLbXg0u0DKV%up-Zz zL&hv6z?)2Ek<>yZYbf@KM-mdILD#*G_yFTCef)j$XR8yiJa9;pG9+!O=JTe2hi~JuXfUJ~cOGBmJDp*Bdl~-sN0h@e=Mu{^h z*m6u~sU;Sq?%tf(RPZTk(e3h_1)}mpm2a!vmd+JV7D$2E9Y@Q~@@+*X@Zomq8I`h; z&^l)7yv4M`@Mqa)`M;7RV zeWCJ=3rN@2h?Kkm^>hYO3+hEu0eqSAgg=VoCccnRDf}l8Ly7ycWXm)2Z%c{DpO?Q} z3zFolx<2I3>mMtMMeYz}LNu4u0bu~JCj|4%%Vi-Su&5{pssG<4u;~Ho(*N(mfAzQi zf0x2t`dj~xO!_EiMd^^?go;D@6k^_JchsL9&HLWOhiBvA$+(|t%t3*t{A}uSIX@LVZA~df((f?ohT5B2DXd0CYUYC^%nP zS`a6M#1~CEuAMSP4v)%iO)Of~G@utXX)&~Q7vu`r^tAw#KF-7AjbWJuLaLrNX6 z0?Mu`RJT1QP0}k0ISo%R{94ju09@!FnW*PNbQc)G2*ORW9p&v@uQX|!O(W84ddCyl zs5-WsK4D%9bMAWgJIh5}k1~SV-&C&dF#;h#Eo~LP16Gn`bHxnQv!XUgzfVGBvo1kV z6_Th8Q2IuEC|!1N5%k8R;o>rX3B%@08%c3Xb;5pzgcBM|PqrV3M3f18g0pQp1dj($ z1NKGKAgYB8RYdNdsRKnPwVD~*#V6dqb*@|(>~J{4I&BE76AWQJNn?SZ$j$}5-X9%H z)I`6TK~63vGP*Dak}>^r945scAa_3jQ*HWrJiH`&ukmW<#!Y3kZ4omd^}M$cRrdg5 z`7cr)a{_lh7$&O?IPWj6hdLga)|&EOwEKdu_6GE>sVC!o>0M`%%wNZ(C}WE>JXC8w2wXEW(mcy6-OH6$Dl$pt=>k&>#J>(P8XAqJZ+2wLJ$fL#B44q@iZ*Oi(2ibN%NpU%4fb{~+E!qWgz!pS_& zCzWA3n}CdrGQ3z2wkB|5C3z?6GE6HQdJ8|=s_b4>P-*3GrD3g?e){mOUbzetI*zFo z!Z55%xF$9&N`2Wd;SeCRtPS@pRZL2x>w};Z0{Z5y1@r2~iXtZmN3e5*7N$dEg5XdI zR|mL{k?9O%!tkbmK~z7^J{Nf@et2SqP|q}{|JXd8mj%VES#P7zdl8su*KNcLNdP4~ zXH)!{>})w@c$LeX=MI2f7{m*dQRwX77OE z(ykZ*9!}YJ@^nOEU4wx=hvNJE;n)H=UJ(K&_R|1_2xbh~s_D^8*^A27e7+d}p~Og= zth0+pwxDAOIUhwSNeG)cm>`cWPn^Lro&%Uj`jq;CQwRn%mygBtAZShGRy4BXgG6nD z1y_sKn!A-g;JinRk&->o#uF&zMj6|f`AfH1Jyy1_q~aZN7MC&o4)N?03wuPiHoD`( zsGw8$VXLl(3VRd|XQd<9lv>-a)mT3PhD)gg)81yXh;|!wtQk!Q&O6H_K)`;MS;a)p z6b9&U_x6OJ1XU23SW*L5X`cJNCq(V@7>i5=jj*}5RGd&^Gbd}>-dLECiv*kl2?1dp zf{$2n(lm1Ohe*^}sG3$KK**wP!#87TBF8B7jz}vqR7%kmVO;+SnmKd3n7C7~WA{|| z4Jc<2J_SHV>{);}mIa88{;r;{uh=2Plw9a{lUATDRmi3?O0eOua*I|9Q5)hfk+C(tNo5%Ms*7pAe`sA{AJGDWr=3@=S!o2O z4(Y3+vH>WZzbZW_UzJK9Q?o;(fA{^0T8-st3>bjF!DqrWheU_2)hM1H_v zfdLvOfk)CoZ>x*}9%LlIo?(_+;XoQEXMsKKqpJoX&?I95&5BGyiB;Vaf?GTwImaQD z23sjG$$$`hk29)Kol-+MR>WzLP0XaWtP=izX` zZ=ukd`WP}sAU%#wWTg`_Ktiake;FPs#byaSp88+e6xJ5T;MAc0nLJ7bM_QE8DO5Z(4ThWJIq}HB;Z~;79O8 z1e5kiff>18#^3zKtWzzc6s54@)+$QTKZ~LiEW2BeLe`A7_)}X|sw8Q?QZ*@1B9f8C zJnE3*kSsZIC5>Mvo#B$q$=!ix#@5*8TiU`E9G4(rxuE_n?bqAq)~zONL0XNabvaCo zb23^cRqSYsFX;w zoMX$i8M4~RCeXTK+4iN`_J{OE(QaQ+m_Y>oY3WgPP%KHW)n7u8Oai^@OXTh_3!E(o z6zGo;;II9iF>r;yK({D>Oiu>%Jh;zqsdZqx2xaOMM6T%+;-r9o@>anGh+~lZWW^Ta zuq8ch$f{ZmUdj4Vn*rLT7TUg)83w_?88KVb&rAo}LVOD4jcueUD4nT>^IrJ zilUnvWoT`Ie$~P61*owCFBNoOx_sci79PmYvXo=nCPjPe&3 zJy`pETb%>oxC~&>ZZ@{t)kZrY^36mxZ~rRw4$2s0C3O4cDhH)&X2PlLfl$dqN^CV9 zYOOd`K5$hAn#v2H8I*peVpohBf`IE7AUp^<0yW)C)GsipAa*V(0xv4mQItQ7EueTN zl`^^QgX@x|!rmsnBK{@BRK%QqBCg5C^-^M6{+%lrB-auW`8!mNQ$#se_^xUfp#30r zogkl2k;NqWAuEZHWEDLmM&*s<(gi=GJ~2@3UpAN!JhG$q}Q zW};opGz|=~c*!VC?Vx`9qgVlYgSE~?RWuPt`x>cK^lPT%lM_maOL;Rvt41{y&{sh9 zG036fdDpZ}r2@lG*{~<*URsZ>a)b?^$=XC(z}YM$+6t{w83Q^rWem97jEe^D>a2%v z6(MP&Y@Y^_FFBaX^|nB*S_a%LGg+t=+;pfA1|%^wW8_xBi*~^%69hJ@vjza@r z<`9(=zM#mA;MZU0wvMTVLK0MJ z(I&e9FlNcuw_?P+u0USC#w!!tTFztdUdZ;w?>d*gV0(GqoSNRXj|{JwBE{Ni>|Y5k z=-zaESyL$uoN!u@l@emNGMd}}CQbMo|Ml~`pOD0k^iNoz?H@W#3qrE!S&keN%-UZl zw>`4i7iW?hBb)uxI?@xN2l+_mG<7C}n(eDQTN6)aI+R{+B2YyB@rg~+Wj*qi>)Xvt zN^X0QuPHw0b=mE15easmkly~-b}^G7%0;pWR-7{3mtG}SV!Tq^TX=nP*83Ys9~kp^ zh?qq51B6xhBTd39f|`mRw&<>pmRfbpnbY5SBwHqyZQ+=#nySe+(`I}u{k@u5X9i;t z7v2Ff*y-R!bhF@VI%>_UodyqmIGRk}N=0GxRx-TuUo@jk z&CUgQArW1quTF)}J~A7*M83klRm@whZ1`8Y`wq)4x|_ugxu~Tx32WLZ@vu|N(6lI2 zxYK4gh_Pe_a^e*e5Fb&b1QxS(OHzCm9{8YEVtg9*Uwvb~rSR7MQ|HEc^-1VQlQPCA zGv1;;x&xF)pMPx%l!(A9*}W3mu(*SiBuaYk9)XWea|hf)bz>kgm{LluV`%<5QAV&NEwHf-PYK)TC?E=BswGPR3~`&$A&) zo+mqqe1}sjyBaa{pprg+>n;H@_$3PGx}IE`Z*r1SOFi$skq$P0C3C{~D$W5e+QCS0 zo-Fb9rB<2r5jd{EOkRel)ybPrP$wU$-r%%ExKrMIa`i}3OM;rV6NQ;QXAQ`vGM#fL zi>$NK+71YBosD!Ci(xS@*-TZ3QQ$3TcbzP40zpR^Wx~48AMFJCC4y1X=o7t2`X`?7 ztjVXX2_r``x%hLCY0S91bGy!fVDhDY(NR8vx>qNuo)dwcwS-l6q)KA8LoR+dIq_`Z zMrc`Pf=jvede1=&2So4RmRsLy_v2>7oCe(xMMvu9em9%cEf6(A zq3A+Q2ZDdm*kWJE382c?Pwtxp!R5^G<*66Pa{vmoh$h2#I|0sl4|ORCW6m{&l?okgRf9eX_&P2=S1L2 zuHGk5FI&un(>&@V;-?8R0KSv~=|ap%-AlY(I}IONC*?I0h$(E5Jc6J_tf7;MkL*5y zCPpEEGZRUo8(FuEz(ckgpixX;Ckua5innqv;64-LUf9tl6aR?{CGHCt?%H9_JX_2xCuH|ZY@-0zeW#D)+CY>Y)_7u0Nh8{{ZDcNNTY__ zM`)x@T2_-_*%1YRLhB$_)_@Jx;jOGTKb72Cr5|U<16nLES}Dk1pW_X=^Tc6&U(=CUle%@M+q8@qmM=;ts2fr1@o2Da1&n`X|wjCPE$GHJGqGC8;X6s{^EcXi_IF7mPcGSzY-d6r>J z5`A9HT0?I32OvS`FOZmu$lvOs4T`nrOj`AFAhcdJd9;7?7qTw)jz`COUggbtP5LcG z?lCIN*|`)30(w50I;*LKReW9lt>Z1|$iK=m*U>ZpoZ%wblttPznw3nq!oO!dQ5|Wm zf~QVMdX;iyUqk0LHaaN@dAI35$27$p=bF=bMSD5<=g!y80_r_W$;5#KtlMrq`>pMp z(55GE2;Y}skEb>0@#a%4TiT4Z`A2C@xTa*gysrt{nMSJRE#XoY2*{n7(4R5kXaYBx zV$y-tA|)EMbqHR=pC{+&pPje!jPRiT{22A;<~LeXHXG?+Q&7_9cOE+W$OlvY8w8drrNhMeAfr_!73CP4^P7{hXPIw2y8(14roT#e#inklr4`Z^lG zLp>*vsaz{@^Ic@HhpQ)|-GwtMKloj!J@Eav#Pf^~M%)VvRsjoQ=OumUsqX#Y!a>t@0VaR-lE~H)A!(2ps%ifnG%0*jGnMP0nLScxtwm$3*ssxjA_R(VPRyIfPPtkmRZKnaC|F;wxh8AU%xv#BRN&-Vj8k4B(l1A;| zi1G%vOMf{P>=Yr|_W?;0N3`XHfB&7f`k?I`sfUJ)mDF`)pGVcZD_3Sl(9}zvT7{BL{G;&RhHgnIaL5Hp?k!Uj%ux^~6{% z%12B6lakS%r&t>uqb3?S8!d<|Hc6JCq6vCaXQMqddskYK=GNQH$63^))5W`h2oRv5 zS&^3Zbi($Zaw(XC4*7H~CvnV_jkZj!wF9Ag@8afrc~^Vl)^mSsh-oE- zOaR3dH6p>8UWXJWq?=#0GL5oWg3LX+es>6Ka`W{jpP-SY+a%+s6r@p=-! zrY3{4-GKKze@~35f6&J;e)A8hrdhO=%)Og71*<$Qoa4t-Y%RBSPZozqX`8g9CqNAJ zPaMv8miLOC$IVKaIN94{^V4rSRr`OAJ7%WqbIiOHxT&%y!hd=p*v`lr5`1W`7Y2*~ zI~4?`egfJAD@*DIO`hL;&n*iEVWb1)sOeQE-|}8XVtW1Pf-!A zopLD|3hOK@{qE+U`1hE6d;a0eL_x^Tuzpv;GUOafeeJwX>Mf*uel{&~fDFyKuo1#8ov}{V(Pv7lAU3WNJ|SHa zs9DXN3M{K8AW;#3oQ$37{%4sd2?|4u$U!pBtjQeua(aP(2z-`y2kaipvQ{9Zj16GV z3F4CMMp@*Z6F>zLw|pD4=hW&BgEiTv5;>%Z0Ho>l(r~<}Kv=z7d8Y@R4%D+;;`!-R z=v$?r?r<(jLWRK9U%*pcb$o&EGEh?KOq9!Tz zIr5!I0BWA#9{6xMfhs3;D>BA}W6FfP_Z?&98ZtH1f1@t32!z1_)3JE1N-(XT#nvgUW9bljo@Eft1c@aDAl zvp(*h`_wNOTay;@o#`;RZe)hc#CJ+VJsS32LsD(gaQrXPM2YcaVZ2URHBA;S-+V`| zp>infEiIo|<;1ROY5@6!Aqzl!e8|$2k5fLgKjDW=(dtL{1JxHD3>Wz;*>xOw>{|xI z$gov%gbQ&+NkZb0?A%GTaGS=oFi~@!thj0uQE3f(uU2-32E4xYZS?{k8s75)zj|ma zEnd@VBk^Eo>2;OGi%@}bYf)K}thA1DmDz!;0S7nVV>1L@CGY@4z`3AA^tw-Ww?MS` z12^sFD^FG?^FFVY8F^cxclnqYLzJ}@&HCczJF$5%L7Pw#dJB=k4o%hvqFNLLe3*<& zd>A*!Ndr>!k$P6`x|wj^hpIUmBQg+skkw^fxLd}E)EM^n$r*4>K~Z*Pd8U*$l-2f! zwtisYkLTSP^Wd!nwFi0mxf43wXFY^gtRdM%fKZKz45rFzQAZENF#W0dUez*)UQ{X2 z54gN2j3!kEbZ>(wD~hf|uu-POi6U1yXF$J_3xhU@U-R^;WI#V5Yzhz4#wNN|^vbEv zei{}Tojd9=4NFEd8@biTN8h3ComM4SX1)D`%{}lyGJj<*q5X)VTKUdlmM}YN%q`J7 zt6|x%R3$v~;atw6g^DLOat-qGnLS$y3$_R#h_jnCWlLI+!r~;XNff4={k)Y47EEU% z-l9tulJO)bHW!4;f^$4TEs-*>u~V9KCWCBl`qbqn-AnDrff&e~ihAtfLJ;Dpu`Dw* zoU@-UOwI|Rkt6{c$ksG1+0SW%21sxS;OdH{9OW(LLWlWOSX0supfHl?-A)ofJLy*+ zu|PsPqskmx6UxF;t42cA~F-#eUR zlXbGdnUd<-h3Ub~Z;SXXM22;yHM-O$5*WdR*m6TF<5GoxkU2q++*uw}s!oR936Uia z7SI#4OxxB!BdjG945YEqz2jsq%N$Q&P4+)KL5zt-CWyWjGff?kMuOY*P=PmjUe4wz z0pT)!s=)W?4C9e+)sbBo_1p4q7*_da?TT52RK36Ypa1e5|0y{}=5$RGWIQhCX5@$C zEa7==tjudY1dkF^jDV&P&L8QT^<=sz&jqTm4vPVd_)^vhLqJhgg}NLS{29e#0*ReT zNx>gYK{s6let@_Iapjd^1%I^7*2x>Wn(?ThtXZm{ztwUD>q+MY5h=aaF`zV5@DM(y zpq{v0)4iEAS{69&av@X7wl0xO2ldtHjY<;3NiXZLAq#jU(1|!oG-h|%0Uc=*r|AP7 zaQ-%P7WV=U&2Ti_o*E5f;_y|ZbcL2}ey!&;!Dl=x=C!ri(zgxAs@=~XS4?D-XkzW1 z9yRrsjft>gC>pq%Rk%7iarp)F6$3nzPUPd2Tc@0UQ%;V+9LUu^BS2Ad=^owpvLt zSkC;uWmsuujZ?f3F)x4KOOdbIl5R_AJ1V$VwGkbn5r)84O8Lz{0DA78-c(8DPlw|}>-koj zWkY=1G`C6_w7sS-Pa8)rq&I6xq#OWQD?vLgwggZB-MIkIG{D zW`Y0x|LHv@KdtxQ|C`V>=e+6EMftJ4Q>#J9T&8(5T6ZMujD3_F+)Cd#V`z~q)O(k23dq?oYz{JC4E9h83u5^Ae zRnS&Gr_rp_4=Tb=7)W-f|Ec$Yzr*}fNzJmGH}ZFOqR1XnrOa2?pl%l4t+CeR$mhIw zt4O!Bt6YH3!W1faTQ}-Tf57_o+CZEyCe3+Bou6RfEd1&2yf#suN|i%GJVeG}?!ZQt zDj9%$#C$3ZH;cu`h2`QE33a8WCUH%EEP-5pDLGM0Pr87aLY7L}XqMgof&^-fr)UYJ z*LF9N?T>WC8fL_tfgyBu^nrzOE)XOegLUP(_-a3jYWeAJrUvZb2Z;BoZkeJNh}V!H zzkZBT0$&D})(ERg18i0{8~Cs(RXQ=_a~8AB3m_{-bPM2Qwo#+EXQf!42wOxtH3Od7 z@;fWe{g(ZdZ|W8eU^RiQh6L4#(9Q*s$M<2&?<>%mD`Vj_J+TaY?YdAPkNkq4;p=yB zdSPmWs7oQBgBztw+HY|Y0=gVN;Z|Zg6ZsGe^QicVMngK|22T!iXF9w$ zEXsu$eF}Tytg32qPb@PDGYISUg4Qd|5(480Jyp~s2r9Xgb?9kbMPN$`zjPUGAg86+ z9QJ971r`w!N1o>GFjB-E>^z|`iBN<4E6NEVs>01eG6=(cYI@ZzB~U<07{}@lU07w5WFJY!8vp(v&HA z^Wf^#GXai~3M$!8ofG;B^|dLjl>!EDtEC3H_>}o{)^6Gc=H$53FDH%%k%)E0V^%c;iZ;wDO%$Rw{$ zBAn~`uo$T$j``{oGuXwt$6dB2v36y_WY6U{-=e^MPrELI(4AKg7GwEp`*9NNf zF%dAtR^U?j9W8KDHK8imH|8Q3HWW~|-}BBSCYZv?d;s@1J>gc$eRL&R43Y=kb5^>9 zccN1(;fo=(22lv`umLTM4OPpPSl;a=T-R3@Y*y-x>*{o|zv-F1LDWk~MzqcVxp+ba z4O-VNwG;A&HY7f5I1F6ujMWerCWd>Y2_v#P@3}e0(t7#Wy8W}uZY#@(*4i@n`){NKD zr5c1Di!odSRxe(OX~i>3P3LbYDhr-r%TL5o4o&12nf{e3yUl73`dry7xlO41s$kV}esCTS1OGdw@yEJPi*?;j5HNpuCb!iSQDoD-LA0 zbfttNS4i;xbW=m*>Zm%%(4*8g#vh$Uv1Qk(@G33unE{*FU36NIDm@YAa*nG8W zj-Es_yE;j2Vs>E50+IKr{cX^~hf;_UL$z&e^3C_?i9rulC_^PPHvZLgdU&|M|DzyJ zh?>~Fq{B4IpEdi^%X4%}F>GSR`2$+@>?eI_J+^c~eZ-$*YB)dQytEkH*9hawPc~SJ&@962HAjyWKMkeM7}gaT<#r52niC2>2oebs|zuW5I&))Ci_?! zk3vEDs`k*ium^*Dyq3pfdpk{(OaOJJopK&k6NwN$_D(&I+{Cg4rs5ES+^8<+k(((1 zQxbU+mfS8E^eAmGR!wmIBXjFRx)nX1^4VF8k<}$W1G@_ZmuP}ezLDqbk+0fX?vje2 zK(>B(#+}=J}b0ZPQ6j=ULo<`(JYD2w8NTi!IXR}EXD7#TSpKy%$EM*u3Gy%h0KJQv48LJHYQQk^&c>VG+(|5zGj zl2e)%k#Wfy5M&U)V0>mFt(p#7le2|52?Q&WE!9dC17;29VKr1g}&K;v?8-Px#tx#rH$<#P1TOZ121EO@FC?r?caRw3w4?z9;D{WQJ;j% zrjW;$tq7XlS;i*$Intxl@#uIJT6H{-M+FwLm+7oAxB@}8TL^wyr%rrFCW{JZBK?KR ztV^x7MTLn)J6#~KO(;?o5qJo!_@EGtrEzBAm32$_n_@xc`L4uq6E#tVx{ybVxm?EM z(PSp~RMcN!gojicL%bBpBvB_2{^+O4D(b?aYWeJgBYwXH0PZl%+Pwetg_(4`H<}w&+&b5U+XsK1Q zALlsQjce@@ZR*D#k673_$y3 zPzMJ0lP{@Rqx3Q^o^K2gg@(`y(h=o6+LR-1Aj!&89IzEQ@oDTC36Wu&HH08un0)o69bUh-S~MVnCBf z*rAa-jZ|1y{Sb0P2GGxw*ck5O(123ZIKEKfZZQK>@1wT^k%DLPPu4Suv4L?)Pa)Y0 z)3Bs_unhZIuKrQ1EeTN3=P`9~va&n~B%(VIMNju)l?I)JM+fdhJ|< z(&X6$K7j0nVqXF`D#KoHBZ(&AUFuVuMca!p#_|4g+6m&y)-gva_hH9iz(c#($5X5} zP_zw%9UCA^p^w%^Y8re5QDwI(_OS^9*f8$Bl5r`xRx&g36qaS1o23IE1%QuGDyXwdNf!kqz)&zta59SP5yM6b$tl#Y z(jzt*>k^sId!>=?46tkHLA=opQLmY^Th-`MdgY14GBwMfFLSugL|l>qcp!NyKar5f zqdhE2F7%e4rS5g*muY$48dfj-YCO?h-H1v&QRF?V;87W)^#U&kfR>hleS#nQ%6OdDlAddzcu~e; z@y*lLYV?@eE^^Q43y~y2GLug|ZASKEW2Bzf1G~@tG)!yk^5zQHPMW}IrQdmI?3(n| zlh&Y3yUt^0?lqaetwK33;a!ocT*~4IvyjA_@Hr+kS=)O%Bncusc0u2;GdaCB)M8Ev zV$sh?(n>FUPK>X!^dNAIw_G7dhLMW&%j6Z71cZ({$q6ALa-}eHx z2GFi}EuxZ3lju~RlAF`(!;?a{k5%i1lzylD#<$?iv;i0!34$OsgwkWxk&ko}1t*5j z)uvWvv{4vY090^x$rQbck?oN8$!A|<7z7#74?|+Qxl_Je-8DX&1Rek=t zm@C6nSyq)w`_w@@wHesokn&~YdBDG)=LCUx(bV(-9*Jp6AJ$a$*)^L*Kud4p;%ov+ za)48E;6@-KE7WgMFh3CF!j`K#KZzOP4kDI0S-;D+15mgqnwZcEE+6{ua62#dl_|Gx zC0pXY_CbiV7~|_{UfB##z05H4#c-xSQx`wg?QQ3N11lkHN%34WiMtU5b?`5cd zN$j3h0HHK|hxXE;^6W^=SS6o6noN^#v%?YW?wH*Zp_7T3zPLFD`;&Jp^|nsN_*Nn< zT|o|K=_Tw*(9X@@W`FHH^Z?SpiWKb7#0W}I@N7h0!~0Grx)1TGX)<-Pyte^U1`0y6eI~S4V|a6H%pqgJ`uf<6Bh$uu;#d18hX2( zyy_)cl1>y23!;Vnh=?WS1bH9iDaMd=^SuaeZxbUHXCezM+n1Oz9#u&Lk?lp5naqk( z;Dzuo%Os_$m}`i&~7a z#+&$lRBj56D>zXR6BBJt8ZKL^_3sp;B3^>xQqapfivJ8%wwLatpa>0*`m>{X|4<^>!}$ns2v0l!fwcwG_vuN90l0XGaQwL- zMP`^DH)bPFpGq!^A=kIX{h1nzw^$&Sky2BpuvpaYuv)U%zxdJ5@4j7(;Q^EJ#_&hq z4DW|;ZT7$YYL!5f@DZVQjSU<)56En`=|LPnUn_rAv-9+yO zd;1bQ|Mc(wPn|!XRj>2)hhM(`6>DQFuVcy2UOZxvbu&l&Hs3^p-u0R0=^wxU72Pm1 zaES^Z;JxzS1Q$l~#PJA2J=*j8Z_gLBJ}A@7=z3WuS4>0BnIPfY*%S3L^LCP~bA{M) z&2k3_tz{Cr%X>vFNBI1S{)i=&=lL66Hk}~1Zn>bqFIQijU}ML=cEvGVUitGTV-BpD zLu*`j2s)aTQ%vHpK4It<7TR`*>1o5%DT|Fli9gsLmIEv)YFzsMOQ>;+PqcE1Ei$ zJ5#E~1M1iPv%3%yE+)DhoxcB;BH98QDCsp%&#(CV3TwrOUmuL#|LQQ4OTx8J7G`OL z$q|4%!%RmVc5Ov$$sO+mB^0SdYzgjh{E@+krMwem+|j=n#4?aY3~y7U@@s>D=pCy$ z5mVtiWO{DbrUc%(B+BnbbMwMSi}4AtPwTFH!<6Tf>nkC~WFMh}O8Cbkf6GToQ$7&M z)UB!4SHSf?w=%O&3zf)1bkN)wrw3VLeKYPK4?g^%xA^eKtN96Kjz%Yjn36DRdxixg z2<&_^^9dnqQ)!cZd42Wa*VLtD&{RG0wHVb<4?IFumGU)3&c%E_{Ia+271E}vM#)i5 z_9vH|-Zjh6hS-FZhTWN*fK=Rrl}GnW1R*if^zw`$G%-rS8TNKwm<_)Fd!DtbMEVnw z>JZ;x21m09tkSb!JL(z2x~G|QqvVv`;xVT0(OW^r8?JkR-<&Wgu#J#Nv4!>ZFM;N( z`Iu{d$p7qLW8aj1Wn0mk{(0cry7HINfLh&9D@HlMR|~jlg>@ayybK{zpxBDDYARs9 zL9A6%u|hGoGo2^<$gtVVvUF}V8yp}Bq&gXinH$ws7rK0d%61r=PMib!YZ8^xbHm=H z1cif=4nqgaSO8e=i_+mbMeO;PeMp5az)ofZ^)>-}85Ga5Xzw%s@rti3PE_D3S!!LjKX~ z97yq%m`DIc|KREvgPs73wII?RDB$8Mw|oswUiO84C-i}gQH$=fY0iCG1PdPQj~Pb1paEj)S* zd6=AV#Tiv)rH2q*Cm|&j8HJg;LaBfc?#nd@OD&NhqXy}gn9>|UNn%(tq2D9=IaqSj z>*zypKl~jh2|`Jh?Bir)&S+_GKx#Hi?Sz4DDsLoLQfh_3%yL1}H~UxI63N*pYYtfo zVuXUIZ5;J3V^Qew!X4CmmbZSaN9``lP{Y;u!clN6z5<(5P)C(wSdvH^gSC=i$~g>c_sMjmdSg(b&h-t9FF!2ntzAf90JiYZN>$-M%p zCM={6k%n6m?RIu$^&8k7o7BGlm28nl_sEg_@b84`9BUqu**#-xdP{5K%Ch5|q%ReG zg$Nj*E!OkJL4HKilQT*u2BAm<)5Z%O0(Kh{%Syf=0^kt&Lw#>2Ou=Q$R)7(y=j%$r z27=<6&!m;HlP66v z%e|HibcvvPl`ILeuw>GU{06M+FxD?4*Lc0gFEByQ2Po8jO`+FqILCqXyAZ&@r_r*C zjexEgp_HSBY@<4^2!=-YEddpa^(A?sk^PUT@%j?aC}myQ)k=rC`VpTth+_gRmk2Ef=s{eya4kZFynu))xeI5ztVF4Jtny6*q+jBe(YB{kkXT1fE?CbNRlj3>;sQOjTZBjeGl?H23?*(h3K_1)zuNA$QC1|zU#L%u z-DjN-hS%quIaw~_QSVQ`_`iBDZIjdT^1+#BEXi@zr2V5KU&P=dq|5~rUQ$hAEQM-1fum*J`Sp!!^`%okIEGsw(Z8rUsb03hjz^;?o5_ZXZ&Fsx+;Aw;!2eeLt9m3*BP;9bwbu zE9ZTraPhW)$#9(|x4CsaOp23JYzHDGtDiSo;PeEWbYt6)U7H=?&V}JIT*KN^=!A0G z5*h&X?pi71L$lTAxz3H;+Tk_A(ZqHg=f5dUhWoS8#4Wn2f)ueFu1)c#AM84@CcXjk zR~)6bBbKVW##9yDJ+W0&4JoEMLWT_jiBAjY{JR+hTZ^*wq+4xM?6I-VHMSIPY&yUe zZ{(iXw0@qkex$8N3<7@V!0C*P9+66>IC~2ce{(17BHJ%_c*NR?Rf{LK@Al&PWq&ls zyp4;rYLGdfMCR}Zh{dHIX_b3O)o2Xb!HN`N{XsPd2`9DBX8N`EnXt}cv{#*kY^<@7 zNLs|}E5AqGg|tZGL$*tHAi-poE+%jHTH{EZSN9!C-d>@g(<_Z5d|n<3RUVHqx-?3$ zGzK;mngJUG@x}9()`dN)S%_L_Ck2E3z2vvHZ+3VC{O$(ph1E*V09R;HHJnp!>2Z0G|8_x#qXl0yD)XrHKKv zb5v!}h+ClL;lNwN+1vDh*N@G|V`wfKdi)++fOjyl!gJ|R6eMY84^#U=fs`19iIQga#8Nn*fT(!0N| z$T!}I?%?60DDg$85N%Hq+qc3a(OzMz)_2?O5e?CybOhmR)R}}3g7o_SS7IADC69m^ z%f2FB-j`gq?*Y3Zc&KZBV=R;p)z1%7+3)A0Ar3j7aRZ{09pviY zZ)EL4;n7hRGlW}|BH%l~HO^)XS+W9bWCMj8kuJ)4BI8XjJ&JM^gQ$=urQww`m}-yj5c3H1_^HGEx|PSX3Ig9ZPi;OlRTD3G{?hhui!)cfen$GP z7{r!s*AkCr&UMMV6_i>dQanj_Yc%@OM{17$1S5)kg}nj$Z7DJtH&UhXFVaDa$IAtt zb#@y#SXBy@OvWLWOXNCH5eEg69(z$eALX^eQ(M=|sV;k4r?$XvK;Y z?J`|tljEI6YBi@%LMxJqv?&BsyDF67iv_MF#j^Mut|+{*Po+??#AGJUq@i+Gu=ysB=PBVzfC6gj|aSzObI+OKTb(FnfdqEtzL6XGN309T4O zBBTNva+tOrsgQ9n^!iPwDEjLHwFu4Rx(HollduC^=c9-~MzQe;frXGjWG$kLBy!>^ ziPuUUCvOkC!pZw@bwD8kB|gljB?er{H-WRQc2#}!9DidVW?HFuu)9V)qI<)=w{~AO za|U~6&L@r~X!q$hD>zw)sWd?dh(4_;OZOK4-ZsPZR6#5*sAwvvg~*{4d92VmoKJiaCE4B%N5zP2glh)EElo+($ObXd z5sVzmRnoU@tb^yacJcY{qt~c!11W7M$dZW;3fsLvZHS#FnlbN+a1F~df|p*4^laFg zrmqFe@sHwLMh=qfse=$P!rZVu z@DVvzxo944P~5x;T-pWHvmo)w1=Mo~?e%g-J$ilp{3!zNf-o(h<7e-`y}mjDW})G4 zX(qSsXiU`g2yeSe2G*t1UtbZk1sBsETXDAojh$1NrGhVHL=am*WY{?!Qn?;0!E=Co zfTxQP2uu$WRlz9ajZtbla;=XwwbJRFtO{t0?k2N>w3NeBLi}*`YKN819mplcw67=9 z*s>E&YIh?@Z7YKcpbuFkX}t0j5HJ&#aR*o|5#gp9I@<;heE%&r_hX6;pPmVQo7ac} zT;oyh3v8N(7seeN#75YY0v=EWjfuH(r7Tu|`o(`dB)aZTzxWS2P?5Q;XGQR7GQLBa zSJgk?9)u2;R%atmcDN8=(B8i)rc)#c@?Dia*Wt0-jS2#Jg<8RIe)3rm73fX}p*WP*P<>$SOZFGJ5u9 z;~R0D;F=Mtl77KfA>;z9bLHfd8g8NZ&}Ihe)e_KbRA>LloetWQw{bI@_I<;SqFj5CdLxOK#~uPmALyFb4FEpUC)C_!*%FmrW3Tf zTR+`kh_&S!Qh!2VWI|3EN824mWZ*!e@y02g{9|dooI8*2$Bt?Ff37rYVlgb z4;&`~C&Dj5o=BvImNM>=(e>p(`M8g;8@Zqn8%XR6BFmYmX`{xbxM8QCR^{NA#wod= zE5=w=5I)=Ri1D*Q19h}$Rh57u+MrA0Fb@+4I35i}L9U_rxL;~5lVlD~oEsRQA09&ehrQM8ef%VE%2>0_gxe zU>x#;u$-a)Fr*+IfEPu_KsZVZX;oPdpIZj%OoouCZ|xPB9_niD8;rT>*TX!C^nySm z2nv#cWUokq97vEUhzU@9b5(Vo?Nb8E4;Y^hl$Acn2r7fULYCu;K{*tT%9dYv^Xx=P zapt7zqRPq}XXHJc4t0X9g7PAV6zEZOUJCrfk0C#Gxa@)wryi~*Z*54y zxSyjn(@cV6t5#lcr&fGmAO_FMk_lPp6nd{b5v2nr5uI0{xdim(ZizIME?3lr>`)0h z38<{hp<#hn=_qe03IC=KT1l=72850%^9)vBucEG_UKN5*o9}kQbla#K>t5 z83=!=EL>3@$KW6YtNObKLK5zF%87k?fsxF1=kDF+&&c!e4Lhp_6O__JuENjZfUCWf8vt14* zQVPCj`q)P9E}IeTG*Xs*cj7d#S$%x=zbE5hGAT^UMK@oQ_8~10A%8bdy?IXj?Vapt zW(b7}%0Q6iXkp5wJw9v_S{KnUmk1tLGBtDtdflIngRE|_qt{{kq!het=7h;e62`p3 z148p~BgACFwN#(%r8H*!Ooi&7CHrD%p{bbN*9yPkv?zTkDTA;M>RZa}0+`N7oKOOn zgp6Dz-N6rvp@4Hk10lFuCyYhcUCf-xlJ zunoaLn(zxdBC?QT_VX6VWUE}(WC_Dq3+rGK^yL2WUE-!B7lm6vUw^5-+M{dSii%OS zlLV)CUZ23wWQRo~8&FRVv$0*0WR~)c%#W3Pc;b!d6u5sl$IdmJUs2zlk`h7%A?hA- zD-m93(&ZMD*Y@J`99w=9Bp7_FW>F;CJrxVp~Kp{eVdH9SB2s_Xr5fZ%ZVXf7@q(e3ia0aN~ z=lTt8?60wYGEhjvsy>yv{B(hA)`Z<=p$M+Ou5VMjUQ6usH((`C@GWB$dtQ44pd&8; zkl{=)XMTJcB8shrFigFUwL{q`Lsz0X1jg_TkT}o+;O6f(6$K?_v6b(svYe9m9AHK^ zP@j*3MX?A8@2HF zh%P*8RgKnmWPa5C1U02I0G;FChxn(Y!Us@ept9Fdh#aX5{&ZoS`Z3}eJXP`&EQ;-o2F-z0jUouz9Fm6K;mp&QEa!%cKH8K=^!9Fv9!-!3nlh&gj$vfonT(zQL%f2vm@FnmJ|8tlCTd=9=y^+HTCOw;{G4)^X3sfdNkAgx_Mu7P4adPpf=B%XbaQQ1E>8^aD+kz@`WJF3L5Y@qjl z&z%T}X}wF80bqG&lS81yK_TA)2_j6m;N5r?h7*rfg~rMVIc2!BT8wx7gA5>l5?p@Rum zh7L(im*c=A1|cXH^jq$$TcX~|7a4(?iXx1(@UjE8D17*DLt;4`^j$@tvZ?J8Go@uu zSy85;{U*4cvgx2hz;kK9DO6jpr8jFxG-QtotwX-yji~U5!$f%s0$Jvlfp`4=TPAgM zs&O_eKkQtfQ=tg0V^~WI$_~s-t@Z$g90LCp$@CJt)UCJv+sRuw)jUyyGuQn>S5j{rjUWpW0g7|9b@|4$Ywju>wnu|Im z{{4D(e)Ibezf{78V7$?7i1AV6K)OHW?kC)wg2wvcm)3o+IB;nqBmtZ)dYhXV)>1H! zZEJCX%KGNC&zi7Q-F;uDA}lRkKK!wdA0OsV!J7%1|_A`Xy18bDZ%(L1r4LR72|UFvqP={5<%r29 zX`STiC^I2|pxx2v@Q5<)N3qM{{+SaWOwd|fT%bnc|8f07&N_n|>01;Mry2n|AJ3K| z8T7Mx`^=?VSxdZ41N%5=l?vu4su=Y@mxSX5m*e45(Q`H`8GXcNc+=n4{(U9%5Gvaz zBbwE^*yc^`mQk~!DRmldIZ#>jD1U!~Ovm4*>utWuRw(8dWTo3}-h?%ahxN@iG2-&g zHZKU%;>f*qY^v$jF4_Tx{FE<*Atl{zqknZipGsg?k;Kzgc}%iipiTBRmB3(FpkF1-ETne7To?*eU<3->+|Rfs6+(a{VvS2jT5 z2gX#8qgJfUMNy#~R+2&r*WN(G*W?kTSy32~SO?5Ex=aDxF2ygViiV=nt1q9~$@Vdu z$FvQs+;#$NV(@BB6I}T(kFr&;|=JaSfS+@w=^fAV z&T@utj!ou9e36Swe^v6aT86KTaCUaLHLsV93JUDL)FytZbpmDZnZM>rV zE$}ERt#IkbOPbPLT+^3em4$=k(*I0QpYwo^7I#|ZGu z&gI-JrR`S1cJ}q8R3a<5?2BkK0{UO61Pz*i!iQ7%2oEw4VwC)7`H0r7H25?onCAov zQ*?dlbqv?Kn1+?hr-g?CzyYXONQkVWv*SJ)e0Ce5(?WUW>T#CZ6?r1EU83Gp;Ntb6;7qyi1m8n?Wu@2DYPh2d!4 zTu!6m!F_E3dK_VuX-falI^txIQu-=Z}o%<#9cgtKa*E zo7Ok#adkJ%{Hnl2eK*bgii0#@EZt0_9y&)iuP4NzeyA7K#WaYV=|NsFcirhLmaeAp z&A`6GrZuFSCr}2r49@6|PHtmsNNO`UL*#^3x!j&eD=5i4rgHVIG&yf0R~A(xo4Iot z#$x79MiCiDl;=Xbd6B~(cJSQ%daNjf# z!k5h#VoBszh^%LMPTw_-x7&lEUrH{{HDP%(&N`gBCdD!3(*Yg2v4H8e&qUaj{75K^>N* z(D~c`q*ZOVU5mKgmfg0CI+r=_pY!p~71w4R6O_Slb~*|x9JFO$kRN$x;-MJT)n~L# zSM@YCX4f2H_-h$-JNb6$8_)7(JqXG$cY@4V5ydIrf2-kB6CUM@UTCJuNe*>&vz52@ z#9+dNG#Drm2GG@)_J}icWWZ1$8{cQ?Cb^jn;jwbF=&~{nq539SI?AiC@;9BlT`^w1 zzbEfS)FjgP68p!FGNc0iY_w=D^?9j^6l&x`qqKRZy4(KkN}W8x{HdB($skbT>I5@t zr%WleG7v!cf5=HPJs%-l?6?jj8eK7cHx6q<&nxJ_IWlp10ai3LQ_`gKfQ zn}I5;szM3z63R4HqRpEF{Y-;e)s19pAr49T#V}tiD+DMI5?2iiz3yHP^rr7IRkIE3 z(S;lh^^@Zx>m;(`GE#H7g2+MituL}jyM~<}@fszm(>*a!u^;-!uCH$*##dhtB#xT{ z9kHj9sAxy$`4HFAzv*#V#RMuQvSjO6NJDlnW>*=(a?)kY{lHo>uq*`Tc=mEJ&~`38 z++Ba_gc}rwjq#EsW7mJOR);7c+{bAl<{wSNPB+s!k8NkjBS=n!I~3Q0m`^jnWmCH$ z)Mx-G;%8xdQ7J`E9c!VMTU?gP-xc)OjHjt~6SUbN;~Q5wN!34=MFjU3r>#gX}oiT#dBi#w7L+k0s}@8VVp` zFFehQ5>HjeyCXU2p@mX1gcnOQlvI zIdP1o!azE|<6hJhuy4;0x-tO0jcG#CbD@Y7f@EEy6e2zF<1Z)PuOn#MO*#1e?%3XvkR_)TF>-JF@zA&FgA znqkAEbb9TXt74bW!k19Cy&QTZ4tRXs-C=lG@ez3_l@VdHAV5=M8S8JmWd@D|A_jWrUrnu~+B&u{+e=Ks^(@6dGB zGCmk_HJ}KboCWRMgNS)TU&h&rE1#WHo8}gw7=~wER{7TpfWp^b`kq8x{u4pVZOdN1 z5a{7_N~DNw5tNa_yRw)qZhkX$=6Zc`(1QiV1*^C0R;iKF+!?e9@1YsXDiTE8#>kU& zwa>G@?-=ij6JJgi7kIDFdRiu}tE++tH@48E6Z+VNJ6mYyEYr|K$`zHT!=b^%_^cC&w>UgZ{UrXk0xwvMx@5`|>@@dW?_m(n7o0^{A zC%)3v$|Zf2OKV>E&zMy5L%y=6IgAwdr8NLL3Jm6d6w)5?4}pNXnHZnf?B+kY5bOFY zS~gYuV&sc+(*-SxwS6}_bHC30EV~qJ5pc?z!Y6TcDZ9(>K%hIq8?K{0AU+7>nPO5I z)bw-Lmmkji4anzfV-3v`b~#v4+GoRY0qD3~g(owLc8tLkilnEjB3)8CZdQ3ZVt2(A zaB$!&KEL_HzCe$4WJQNz+l}-tu2^}ATu0ImMr9C;>t*p&*;SAvw{*=)2juMsIGQM* zrr3&VWaFgsZ7DVi;ee)E^38u9;|B9}@pXC$AHC}KlrSWL_t1@4mMYo`^~Qrq)I!bT zX}$?1{hko}zKA?CwoRa)EPA<}w|>#Pm>k^vXWq6<_*?xcum~LGC8iU@(n6T3K0Lq3 z2lhObrzoeEqGp~FRPY(?!`MUITHNxYpL24ZJ4;l31QG;WpD~NRZnXP7T{nv$ zK)pO-tR~u6U`55cd;xoJ*uz-Oj|I2mG9~{PF(;U@w?X1`;AaEuuE)QA75SC~h&%=x zyL+laqcR)M&>Kz2()G~0GRiXpabs=%bVW(rboKC)_6*h zT+(saE)g)kAafgTwC2tsk$Lveq6fPghUF+#F9cvU=BL7)QeXcIk%tLoeABhRGb_=Q z&|5b;qco-UH>>3|=hci>FSmKGAxb6vpgh$I5Hm%bpj=(*Bw(yeY|jO7arL&k`{!_c z;gWf`j3Mhzu#S9PR#iYB>*ibATyv%|9C11%LKA=de0uZ$>KYeTk;|)dRL|M4I1lVR z`y((KG~)xa7zvzYXHc?KxryKa&@+o`uLe~{e9de;SGL%~QZm9&!Im)I1;sI#A{W44 zUrm4OR2K!y{1_ZP)`^4>COl6n};xa>9W(Ser8%z>0NuU+?B065tAv8aqw9V!e=pt?XN%h4>038lqf^ zsBD@Lx88|?HIJK`&|mhIwj}P9;8*ewGpJnk&2L!Q1fUU_lVn2rG+Z2qs|hXg`P-fMBcn!oc1N&!`C^<{iWfSymO0^ZR0~ zZfPV^kuVF7xM^Blkr~`wM-u&8#fEn^bZHMtOJ(2|PKgqdj&eXoRc-j8BtCW|i4*Do z0Tw%U`=;P94U>$JP^MdOcq>t9OF?O!8lziocz3wy1vvDG*RTkm+vL4quOuG%Q{_jwuTG!Wa)u7g8=Yl~>bH zqgB;_w~3WzqrgQ>A(WAsplq>t6htv74{wex{SH~pWJt1iQyuu-@YI4}ryg%;@|-+O z68nV2m7p+yn-tseA>a2%K6kZE+hc8+E&GR*L8`FL+a^I z|8@aS>b2_frkw)bL}-%m96zi+_8v+ukicOjP$x3nw{#AQH>!G|mU1AaBbo`uY|Vlr zp_h$*;tIgGeq1U`n$aTLo8qx(sTcrIY&H=a(yINtTi&M&h(#1W>um!9{!UU6#6~Ry z4Jh_!8orM98E1qhGW@DYuYoo= zMV>aQ^fpWcnG|IUHak4H`5jElc-xQ&x`9Eq0T>NM6fgt*_FfUK6L!)NxpTQx@8kTg&eDB$zJa(iA}QP?$2S)-6_e)BtBhsg(tnp=_HNMiUneLpXq?p+Q; z4gGH$5yyNopOH=wvVApZ19xTAAR$->v@)h>4IZmg6VjT@mJ(zqJIgHvcazn?Kn^X1 z`a$RQ#Y>o+hRhWNwz8sw&*8WC3c<5})-J=lCF<>66wiP}u~SQ>c(+h7P6*mCswJO6 zs}gVGp`TiZH#OJ(E$0&SU97e|ud47q`Tu!)_wTB%E8p{9*&%%^xC<$^>y^eMbsLko z;<|Q18&cIhZq?8bZ~$EkNv(%5#qb!yn3s776Yv9rF*Y`i9YEM%9^&zX>xcSL{0EG* z&XM#}{)PU0=Ui*;wfEUa;3QSIaoM0{^S$PtYb&3Z2Aze-=E`fy!k%?_f0d-2 zeb(kNf)uO)h47GBSX2h^7=vla_{BCgc|#y+CuSdEMn#mo&$dz0&Rdw|V!$3Xd0!kM zu!^zjBb(wP>Vrr68kRXbYCXLmFVRLyfGV`svm7smFA<)R?QDNC0icMI7I8R8Qw#)F zR@sGbf;n8g#?eB{=&yWTE5aL_hTui$!7Lb|7!a$$51)ihsEi(UcPCUq4^b5BiD^5P z@)c|F@)fEM8f(EzyV_Z=o&1!|+ zO+$f~ViON|*yisWZIclM(sz>bk+5F%gz%pPbPSq2RS5Tk|Y;umR+fIDl2r3ntBX8S{CDAxzxCaO@8=)(H zBo9zgUC~c?mCPnvoQdzK=Btz2-Us};wFI{)t}P3|{m`s8_HxZ~@9vKeug; zIX87OHQ+IQRwyBk^GeJinPn5=a@;Db2G#{rC@cGL6A#QAn9qK% zm6fBys$m3v)%#_oRo9zkluV(uz9EVnX-EPr7wVm3Syc%%+dY$vFm-Su%)UW!$GWPr zEhLO&_O!mcBgvGVROY2s(c0sbGW$1dMQW?UKp7_!sH3u~V2Q;|K~*Ul2p11eVL9co zWeGsZ8aq>$1x!Yzf;nT~T_F2G^c+7|)hVHVhSH>)z+?Pb7TDGbplIQFOE}xv(c<)h zqjWBoDQl8?$U@OA<-HF58x$=2xiz71h*6h~BdOF~pw!Puh$L8TQKfEn5{_A&Qeuv_v8=;d%j^89FkEO$Fl< zgohGfoKc1du*;Bcm{o6WozMNH=VAO3nPAJ{^13$&u%@4WEP7ChA4~et zPK-_v35001Z4e+>b(liUQ3rv=QfGFDLQ?%jvB|>DTZTO6K!}ih#cHd~Sk7hVM*v__ z8cStrh)~LA?J0hODQnj6!`W(Ul}CRj*WJsGnw8sCI5eEe>RfCa)!^A=&|Rq;y1piP z0h)~Yn1R$#I}{9xR>raF)~=cu+Nq=L+ys_|@XIn~zzu}Qm4GZ+Ck_?xOVLPON&RG% zAYUe50;)8U1jbq!$nX{qjKewU7JFY76%6kaA;%VZ0m#rsVF5Ee>~O}$iNzm73;i@V zzpLMAp>#&L}x@$^t<0%Tzzb&}hSdYg)eSFj5FOCU6Ir>V^92#CxW$#ge; zjB`&CD-^Fw9);-wLQaX z&BRXc`2v5>Fv4v3jbe}b!uk4$+a76*!9kW4mO_Sr(yUs;Gj9mHcwK7 z3tc;A3#1}0^$-tNp>d?9k$x<|RhJa>Q@|_AKbg=t63Fg#l+40H+dAsHK9t(} z?ilE8K~jX9MxbpN{8N&vi0)w0=z!O9v>sP)D~%0^R#pqt*deLmQ3bc8E2{;!WQp=H zx}Bjp$~R3N-&PW#7&((;At!^VZdvnclc{h~x}v=dQWm_TA`B-u@Q&2Hh9Bij)jr{T zp1(}|c*P2d%kr2umAhKcF%Z%KXF=qVN>L5qOj820UmYsBvCoHJ&UvF_;3p$qPMgv~h~=N>8j_ez}?>^^6~WHnh!7 zws=NNG*x*THv-{d;NlHB5(6bceup!ZDE-VfnUb5;*GH!5(03PJLgBIq2atX>bVFy%Q{+%+N9A?XnTeF6381;@A+VWk39| z!>^SKO0DC}D=>qkXINnLNCK=@v?Ms}+M8;qHAO=ui+h)mlJSG!>+UZj;}eyXqI47` zr7++?lpVhHak|cdRdYcpw|8o&+PN8P)=a~=QxLH>);H7!7v}o%XPl_TqzT)}ErYg~ zNF*KjDE0-1ahM|7F`G9vk46$~;w3Dct_G|k6tOYa_FA(Y8InQZ$Ebf_JWZ^ZzyV1= z!i$j##@;q|(v+YMH+4d3FP;`+jXJaHQgQ6+`XX^@P<_nh8q668X3r~31*u_ioK#|} zNvL>zsk%&Y9KfImMV*R4!sUSr(zqU(Ku}pA#dMZ+*=Xl1y+c1wJUo$(Wum4Kxu0uTULGE`L*32sA0gLQeBYEi7N1f_{!vu{FRDjStU4z&6zjmb8JJOm5J zy{^`bVkCd>$&!tGYEiw&ih$^jZ8R9(|n{ z$gt^RBQ@qr)EVq20E#J7L1Y)syKJ&Y?(!z?*^c2Y*1fTIr{sD;PqVH@%9^w8qoTQS9tE zp&mFBu(y^e8boRI6#>4$X3m~<2(AK8;JHlMx1zYQSWP@C))dw1ARyX~-Fahp&I{JW zz@MefqX{|s^ZYY!{(Wf}$ z1OSxE2E#JF{vP!56hwIJF;BDNG%*TGW@~V&^~nJlRHEh>yEj6J>GMDykE?YSV}`NT zqv>cuPS=knQNwV!yQD2Lhy_8xf+4GT$dBG6b(CB!SL*)ZA&Gsc=Ls{Bk@w`SnkK~)J=D;$BP z(<=wY&2U?R#elS4TSW+^htn=GmOqb0RMaKp?&xJ%FXg+#F46Tgl}w3etU8Jl#=4rc0+bk??<%IiqB-Cj)16WFt%R9I;TTNy7FH~zPA@?q|vD)3@RFNt(d}}>(hDM z6I`(*JzOqh`0%+WVB3M^pXbZ@H-7Zg8*3EBReHec)>C_0{T_Im_~}1x{M9e}aWf`b ztAE7j=>&pT{up!=kA%+?m0vkL#orv(xwASsI!+OUA?+H2#IHyH;otX7wElyl(^)eu zE~V9RZ%!;FLE;NFC2Z|oA6&jPx*hxC-~N3czWR>!lZxXuuK$;yo=?IV zpChd88lJ-rE`(9R7Rx&}&Q}65xPpTDB7#QM$yR-LJU(D&frao*IH1HLndGv(9ok0; zk#&=U|M5Z6SvnY#9moreevzdB*#goKpAdbxnvj{dkW;<2Aj-u2eCtZ08JD5&6XI*` zFHiE7$5i@SE53f<% z6GRZ;TkDfq4n>bB6e``bW$HCKa~Kh1{!p}8M`B~5g-MRbaOC+LTiuGKHRZT6nq|kX zgNP+Y2?j(|`vz-1GuN3^9Mm+3CCaWaLe57S1u>d_#SAd9^M8CWq#Q84nb@|Ac*)R~ zS0{H6O5Uy-rE$9l9a!6JeWy@@3=%^5ta4+rlXZn}xzTReA`-SM%v81vN9ewVl{Ri< z%jv=12!3S($DaI~XUPdBHPdcugmHxIn9egLm&t}P3Kg#^orB5aIesFwjVR zM({B69a>s5Sjt>d-~T_pI>-E_`PqkWO1wYLewjZ%e}8`N;nDe<{P%11n!lmn#r(bb z8~SH<{`UNJp4|h)+>V()r&lz;Rm?wV9AifFXJ!rcM6Ghv{P~B|^S9>jYS8&x58r%v zRI86R&-_P>`G6L)fD_;HF+U{3#@bu&IZH3jgH#vKUd-PC?&A*+rcQo>t#>E8-oX&z z3tdCNb>{qf{syyNPu&r}L)&y0iNP!6=)FV4!eqi!Dqt|neMbm@C5vqSywSdDm9_e}^uvBuLfW;p)y12C&-&b${{}Gjf;fSrF>K!+9_85#V~KZyyq|x6 z{_ew>-W!BUoG+UJLFv1@mDc7XrhVj}wCcId;-apg@se|UxR@CEPQtU4zS+`+i-+1+7k-ff>#1g!a$pLjrRG<2n0B` zta?{4oI|M)#@lyrSbP+b_4h|46D-h6l@;m(?$6VKav z4T$UfYx`|-jHE0egSjZL1CG>B z@8-V-qrF!X3!)fufJby-Iy>{}DrHevyTE28E-s)-emc*7D~i?6VjNvTU7(BlJ6kSV?dj68op&bxH?+fjU zAa~VDnZK-d+Jb<{g0c4*^gIJv{W*WHid-7VP(dNG2J{-_c(g#L^K0j$^;lZ}W$j3w&s}Jj{lF+P8krh*E zn8P-z5tZ{_i;#1rfVC4CzgyPZyQna3Se$`WU&Bu-LxbXQ?Q$RL=qnx`>)KP>$cHnc z#eA9kfSgPrv)NF~!*^J5eS53uJhcL2eXq%L`4xCmwotk270qcHyZ73RNVEOVH%BV2 zg7DsB*{+pT5Btp4HtXS$hx-dxFJN!>;eN9}VkD>7QMRFG);=!AC z)7{L2GlzpgWr|@??KRbbp)56X2T6YzN%7v`F!`tb@WE?HU}SS}hgWDy>Csl7bSzW&rWalqJ70EoJ=5D60<^7BRqC%0TI^ zo@dG~k5r;%}hVYCHZ$VBtH z@-YVNFXm6%UW#7L{59M%xtmQI4B=}0fJFulM8@p97zYw4ZPMcc!GP2z30AEDSJJgv zjyuiM4cFe%Sl6ub8#F%pgLRoN1{5>ewptj3#L69`Ta7Z$%G9Hi(Rfd<-~1TWob==F zNsmcgkle7T#Q4Yt{cQ>rvfm;HuPTtjJ6f+FRgF_4@hvkNlq$ zzd7S?WdFr*8g&T6+RfINhSMBXxh6?kT_nGbueeD3{VJs8GH&XXn*mzlpBcL(_OQIt z&3c7U5;ZjCBO68EG1`3qCf;GMt%bYml(HmY{4O4_kZ7*=N z_^%9V_}A1P_!7m(*aMm{EZzS@TuD(0I^7XCbL?S^N4wXzm*dMo$ZL&a|a`}%IE6dQgPVKwqkW_O}FfH;kWifVWFN$Q# zOa|RxLXcQ?%d0@t76Aa!MwclSR-9}>J5P!XKw$4rTuwe)30|do9Q&65dV=+Z%l)!i zaxBneSJHM0SB8)tm^MX4oQ9Z=WS^Xy+gh}rAk<6At>oE=MnhCXdl(^>TM{kYlJ`Dg zuFQB9^@+iq6=U;=av{6cp&Z|~sMo=Hz1uZYQkX~&r-PV4R-p;ZdFok{PUj4wN(9QA z#gB{m%Ybf*%^o1lrTI*4v({?$H-Y}CwNS9xoUBSXuB$_>ghjoxNqRH|tO3iQQZ1xs zwg^#{s0oNyD%>T%RWV|5r`Z8j*hB8z+|c ziVCWLH$R)%Os3#SP__Gs~7zT20 z3idOEVyA-@)(;iR!^pym(QPiRewyV*i%W!PE|t)D)h}TwlRQt1qfj#}>8X$8IMsA4 z(W@xY%5hBsAUlE?5wS1A_3f+F;e&Ynn1e0u>LWGPI0LfaBX9(70+GB@)BHlpZT1>m zn+MBNy>kwiSfhhzVW!`KA#P@$f(k|Fjh+>r5N}!}1Q}-LRXU#MWSvQk-dRjjx)BQR zHC?-T|UnXw)v z6H7Cji#EmhF@e#8EZd?n^b9*6PW2iK(0vbzGE*ZN^B8D>Wx^~md#B+Da9-Nlg;=#J zo!JlO=gFIq#L#hT{9L58o-fh=jtE4W*6e4AZKX+|AGZyXlgL)BHo1eCmC-T>)e052 z9v*+vYIQxj>&(W^2dxgB@t~aqu@7$n7N^R2gRG3*{8gOXBQOJGSnFZSq<92*gF-g4Or`QDC z`>O!)>y{}&pawb*{xlG{BfY{m&jqL!bf z8)xHWRqWge2>5WS>(wb%v*R#K0)FMjkI(q%HO+XBlY3iE&)RnLpSmJ)d~nhYXT>;! z3>PVMsTA}NP9E%N0+irE>$9jHSa<{5A6K6kf9je_T$yj z_%5jK4XiMpcq0u39id3gYc|)W0^=6$N2}j{*&9-W&aA?0bT`XWm>%$z#lq(Haw-T#AbstePqJ5L+VkZyiQ|K%}LH6<)}1<4@GU?do^Dpy&$BePpI6ryD zLYHJ=Y3ZEt6Ckz6Jgk=soc|c|dP{0Z2}Kggv1PSv;QViVxjN}X*Vssv%7HMTdyz4? zWFMZFR={~=SBW*P2U>t*`V5cIFN{kSq8gr)SEv#1|7~{UOambdQf5%qFtW9x< z*xYLkdeqFx&(ogrnuGIhAS#6?2ys?|Y}ZdvLG0U}yCl$7LD&t}2}vyGXpOX^OkXT>e~VIv zoApdQWs;gl@)vP;5**YV;0_zE+1NcWIBYq#=e5Ul%(bD*_G}W{WG%i@715=9@W`9S zF>Xi(N&;C}LV24eu{fKg8NmAqnL;M=EX?8xY86s$T0$s+*eGfqH#g(yD;5{aB&FFw zp5>FJ>IjN>+b~fLhH$$Q;DV3=-@!Aw!wM`aZISn&5*4HQhJ_hDN!(qN*i>E>f3vOT zyf79iwj!@efkx9o(5}k_v9zK;3|xzlNQS!w&O1VMz4U>NdiGwbMZx zQubJ-ilZf5NaF;9z-$FpAtO^Bt{d&dh@wqU5@*_dwjFe^5=F;K>0{a423`s#eaJ*+ z$%;N$h42?6c=NY~Fx5S#oZf%|Il*OVp3r<2U}UN&NTxi@3bf)9`PyP4_(~SJ?L=h_ zItxo{Fnra@O*XlCCT^Wys}WqpriYGGVb$!@l9fj?8H~orw5|!!?jfTv#mz{^Ktc3p zfUOwvWzhJs3Dnm>Rx6aS^cY**QZa9rRMA6=8YXYoxL-m_C{}eQ)!Q~3-S&(yo80}x zWYl?-q2gN`Qqx`KCLtp{HHku-faF;yMmJz|3t)DviPt@@(4{*AMj=eGB>$HYrf-%A z$QDsMcypFlganYavwR8lijA ze;ynkag3~Xd7}Yj82Ay>b*7SzC*VhP@0h8>2U63|8rWWks7-B7Z7iltcK#B~WH==zvCmK$rr~mRV`Qx)_nd z(b{yn&s$fYvH@2AaD06G_RX80N}{Jrs3uBP#LeI{UQOlOm^gcMOZ z3~$cx!+rejk$8}+EQJL=a_5F+1i68fe)x{X2+9O!Cc3AHphW}uk*%&9dQZcvqDw_U z-Dj@FHeqxGwveT$#*F{SM1`e{%3hPMLAU@X*pxA$O@$Oeoyjb4Bf#7oU zcs$n-$k%ygVwrz${kU006FaP2|E`BA}ne%nBbc+P*`138f2Yj zEf3!+>ys?xtwWy_l*EE~Jpv6RXBaM;n~cCTnUDl7p1D|KG&4>g4@XpoK3lRf1(B45 zdCQV@7XTiyzzjyhyvhr%LKl((qK#bYrdAc2t+mv$yTlDNONtV;$S4ygeoCzLxobQ| z&c>8LYZ^i$crjLu5lQk>Yb|klPx8MmcV{_kh*eu%pguwIR`3!uR}g_Xwy+Wc!}myE zr0N9gHgoPPUQ#XCLKR-6A4F38H<%#Mu6YGs@b!-ymw{PhmklHv)d%+?u_Db(=XOIL z=@}CYb`ei?tp>2kfp$b&SUVMy)rw_1xlr+}KZ*ZPQP%0&j3u{?LQvd$8PUg=RzA#W zfsi9I73;cIfV6TJNbZn@-#;>gR_s`sClF3|)mft(oMsr=!TyZw0uZkVyYlt6 zQu1~SXHC6O&=Xi@jAd*?IIBr%T0pT{)E2gm$IMbcvAAuFiN(;X7NMA}y|0(Io&QuE z3ufwv5*8RN>)g5rNh=F-@n1x4ItexHR~Ek2DLw=)Sr=j~G8D}!5E!Wp?)-0PWvpUPmc>%A|uY zjHwm9kl8BkiORO(eKZ)XX4`rxUVT%~2$JTO{cWlU&e-`u2iid8dHZLrsX3 z30SH4uWYE86?}uK^!1f6${+ktC157>%))_0PagrDhb%udz_pU^Gb*Gh zaX1-?0vqur!A=0gjclVs*>mI}0CZ+kC}j!HTBfUfHZ4h{##o6;CH{lIWs22|H-V}& zd3j&zhMgP;(FvY8gl&2XJsE4o;==RBm}cBLIo(W_nCMU?hMk@~JR#ecg91EH(?xFJ z7)$A>!;D^Y549s{B)r97*BgFm2FHq>o{s#SRV1$SwdgV854@H(Zqu$9%dS|l7?~xB zEk8_=+iKn7CsGn#$k=tn!~HIJoW64{QRc0lsP1Xp`*=K~_>MQ;7%Lg)S>z%E#e&Ok z6>q3VEMII9#V2uO=~Kq+tJ&ezy2iQYVq&Nj_``V#T*X#Sv(wn~0>is*z>E)PYuU)5 zvwb>EX@Gj`SopYMzR=|_A2WHZVcVordzVF?{{r43wL`1|OrbckRVCre8hdA)g{#50 zI1iHp$~Hjrrn)QQ&t!@l0T>I7XJsiUVmw*;j>KTrn=iUktrrWc8QOv{Xe4kFhdI2}wWcj${m&Mf?OAPF}USX+uP^ zR=C*&j+x%ZG&Z5zcWMx7IAa6JvsKQ&d`9^&bvwv#jaG1o@kmz4#;6u~E-8Q|h6>N~ z!2}TnIJxKg$lN!_n#&3Pj+wg47`gI)ZBi z>Lb8tmS7$84z*ub?L85oSSm@W+_Nc8nv5|ySuil1TCf-eX5&VH867Hz;~U^nh8{x$ zX-v=~2Dn0X>v=cfrv;sKA44cBmE;-wgjrBJVYBTZ3#m#{Q}>}sZ3o1 zwS2ViRhh&PE}O)1$>~iY=~^*ti3&AyRLX|q{8%!|Vgr(hwykoDp~fVE-5RW=^_aZ$ z$Qyqep_mAqzu|9ej__rlWt^L_oY`09x8+7jlA+TNNnr%?@lZHM7}ezALj!*i|lPdlIoIG*q7e%K%X+dkf#7u5i8n1dreyEgf02!a^g9|y4`XO_{ z47{>DTwWVFbyA*ca0BM=HWt!OO`#BhAw=GAd8V^QCr&Ge;_zCQk4kw9@Zg#z5+pCc z4ibDv(i*)6UR7tCQ6Pp^IHiOQ;m``##icY z^z1W;0wRqesd|qj73ff;q`L-4x}mQ?Q0dwmitbS~yNZmda?L=fP^9TkU{J`c)H#j3 zKWQ(cYD_Z;JoX56OXsbvrtYWMX<9z%5W`gP%xAA;&Ix(dISE^mDzEH8f%*}%xHJwR z220Bh5&&HSxst(Yp;!$X3!n1I)X>;KEG0ir;;gMY3|GlDR9{P%4U-5pt`Hig0X+_C ztu%}{K|0IiPdt3hpw@^oJ)&NaG)_)cI9(dq%FXs#{(09*S}mhWh|rZ7v%G7W8Be5- zw2@wp5v@nHdn#m1ZLZ|{il{`-a?OK)17fCh&6binB$hE>bn0qMES48Ao?0RHlW$-o zl}$Q0vinb)kx66^g!R_8n~Au~Nt})WC!C#=pRUgxTp-j)Jll!h1BUPJr2aHwjbfju zAK_~&WSQ)rliD*&1`(o#wf|nsU)C`W#9qMd9sCz6y#^DvO@4F&L{Y7Xg^5{K?4)SDX?HHWc!7T`;s6WGGIRpV7LtE$_ z;-7m^xgTx#)hw-0w2gDh8qtd^ST_NZv;BtDo|KlPjZSPNn|#JUas>LD8K+yV48C)a zuI8}A2s5eVvxXX}C>r@eu}n=k@1uI&==k z7XGx86s0wW1E#$xjAks9Ae7fpt!)a3-xnsvFh`{PnB=^3zodXg0=t%~^+`k!f)tH8 zHdwN}qUdYT=?S36f}a{68Q8&9NseF*8~hIwR4z8G(iF(o8&XFkLa`2bcZ9F!#OwVm)^JpY>Dd?^kfSKh|A( zG<)XJ?EOcx=O0}=29CE;Ba?#l6R#%J(`_u z9L`J(xfrkO)3`^oR~}uPel&aG(d>gqvsVG5cr^PZ9o1bhowmPk(Wo0T&*L4nZ*fEj zk7j8{Px=6XMq#kyk7nQ04~>8N(d^fcuF0matx@q8Dp2zEo(*%u7W;*PA~@)J#s0m> zzYV>Iyk3q*4*=hMH2bN+-#lOa<`n~zS$(cAn1#9bKbrjlXtk>Ff`#}_F^|DvmwWVA zBLwlHjz_Z$2;>?~s1;7$do=sGfyLf1aF_^8y=_?H9UH+cKz#%V^dG~WtX!|e-JjRc ze)1{6ysri7U@j(R7Hv8Mhi`cMV|{HKRmAgXR`|B2XMi_rnyPIZa@ZSh?z?PQsx;rp z&9Z^m5{fmv)}M`PfDCO(RTCb~o@77417J8!`UIfqO`ftXOm#UT!KMuer$s)nljxv6 zPIxqXLYt`B*-91%W`tdGzPGmqxN~9*gP~vl9T*#;W_6L#NRo> zoQxbG{tbApPN7?(4IU?mfZ*;n1LU!B;}A8G1e=>MD^3XaL0UeoxEY>2C>$9#G7UfA zbD^g?S*nq4)c(0GkAE4f(#h(U_lN4`pc7U=OhDL1>L$RvN%ccL{}{^9qje5j)h&mB*XgZj8Vn5H>JM9wgAhp}bM3 zGZy3*M1s!=fk9M^=E4Q?lfa6oiCfVVsjdTX*awIEE$Gg*7KS!q$W{TiM8pmskIn;J z-fP73gABQXJ+AH|?WjuLKe##W7XpX3IY)@})FzZIw{1UQO96@Ozg82PB;DtV<+FUv zz~;g@s7(#IZG4C;6m#RGw-~>W59Vuy1TPy1Fo+|b89{MSBAOxlgfePRk&9Z1FSJY`ut)h5{59d806%x%%x=)WN_z)u4k zd~5u3iQz)GKa+~q>LKxMEp7m!@Q5M6bqN>(4rb(E7v}6bTNp8(eWg9ozj=K0)z%2t z3vgkNZq$+@$85SZd80KX5c4?si+6?a%3?z>H=jVOK{(J4sscm&5!MUO zfIV2873Eycf*S{~9Elh_w7dxTjKabJk*U72f5DW2u2)P5;b|tC0su|54t^xGNOy9 zT0}REXp9$;b}tT;$!2;2bVgj#gULk)_OYU0B-5|*3jSx18rlP3DWw9lB)JT7MD4bo zpf=bde=XUN)&!@N87y*)^JtcRcV*{W#@wP(9~HZSQTZD*LKc##ymL9H-7+A%sITiPg-5f8 z=*IXtS&QA9IfRA)l@Nk35i0mM!Q~Xx=r6l<)0_Q3hxc}i%DD_4g*qWHQ>eA=6JjY_C#QAwrUF^{&~pmtYkjJ10~7*nPAJ#;e2wF%Pun|A)Vyn zMg@8n>Ha5x4fCU@z=M=0B#>X0(C?LV4LUJn{dFwN=T%`GNh#+}mf}MNtI*|uKf08ZM12uCj5Z|QSPG)72_vy~ z%cEJ=in3r4E|o{!$oC8m6j$ejUb1>_WfI~wG}*1?kLRc(K*Vs+K~ zyF8(ZNjWk1c>~3R6t0j1%4J-#!f95>UoMd{*2w6Ou}}+A$(41)kj6muSf)FGQt1`< zzjv>fQ0&Evy9QsK8Xv6B2`Sb(w)(g8vEs-thSn4>{>zVc7V51BFaCb|1Fq8Lo>i(i zw2JLRShr5UG5iLL2MU3?g-PL7|FZAUh&#;elUpiH^p?+; z5cpp-pRu`CXmM%2{Pg?3e6f|uG}hTr6n`Lv9Fqp7uggM4?2@!)-*kU-`t-Y}@ox&Fp{IvfdUy=APUV%* zQ53-paEOU9{ehq>V=6AJSO#)dmNjSzZLctG$5+*sHVo zK?I@#sDO5_EdJVn*?zI-`Rrk|yi280ezcFk3{8b&bAB8RARA|eWebm$A-L^XnhcjR z7zYU;%dMOsU1D=+A$+1@^3k=5%5ak-*$Noc7V90WEn{tdAwyb>fz2^WI~A>M?Y{rb zMriL8h)euX3s%_*XCG7$n~M8ek^f@#E3L_0t=43=Dw*c^Ov3kATQCl6}uL6kT%J7Li0FxqU+b6c#89UfL?sfSi$UH18$91o2`)(H) z(Z?B#lFH!?=cV_RCPBF|kNAk*U=|ph;jZ%AWfdaqf%Ivj5{IHvgx_RcSX*so#$lnb zcXC>pkbULfpk{09hJ;+@(n53ppfY!N{r>ggQ6YzLqR^R}tcCy8+Cqv$4)*9yTDZr! zKK)&3VEI(_vi`0_#FOT|lYf$xjEehRwQ zghfSEHCz&qNu>HnJ=aq~U$1Kf9uH|`@M~c4t4G%k8No>hxO?Z~3zUf}^C^4YIq)-X zpf6rzJI5!va^UB$>yJuDFN3TKtuWrt{8v#{yDQA&ulA@Vk^YQp$|qaJx-FJm*1Kt~ z2x&q_7VI>xVguQK1gMPg=#U!3kO4LlYBIt-@N$^xi!>HC}|cWqS1AFK{#vK*y6R__Y@DHt#);K9c*-IB4)z)xZoN)^yqU=%%HgfsU}m9`2C% zNt_0@V9B~i(KMZ1cVMiTco?>V6G3u`(La7VBmV(2f{fP?U5t;$VQ|T`w27ryfE^_u z>|gl;ra^o~fhy?43$%+11f5Pg_qq)cWn~>38kTkl4{yQ06{lh6;OhgEJEnGS9--R5 zME=WzuMh2)G0oEW7x%DS`#D5$&JPU%8 zN670V_I(I{KW0m53Z9??#$~JEuS!tBNJ*==LqvgX>(vvJjOf>)Efd9Rh1JAK#Rzyq z{DH!lZZJ{tOl&~U?BKJgG@zb5c0d!E=>F~jU4TBtE+pQuWS_7f1Mz8|mE|=E}!RUc|3o zlWV(vM{CQgd^1y}lSp;>#T(%euX52w(sT6=T%&N~k0;O)FS4gklrA<2@iR*?k}x-d4B?BtcUep=Lcv+QX>vj6uu}Kqyd& zP~N#U4@9|64ThRqTFHoG3?1fTRVG7>LF5$kG-=ufVNl))Vgx=qhEu}@Ar;as+tlt2 zd5H@}u#Sdzhfd}ylk11|!M6#;>Y;viG+zGkFF%^lH_58N%YQ0FDMeETiF&G;bPgu` zm~^YiHO?SZK3vda2CGM8^jytxFa zX)n|ovN`B$S?JbR8<0?4flR{R92&sd7Sh_;-1AY>(;pZi1vW_Pje*dH{D=T*26o&@ zBW=2C{Qw5=`wN*@kqn%iPy>)LL)3{mgob}Ph=6#@3>Ru@(jbI*9ahmRgxHOSQ^wL4hONsF)SU!RMO z<(04rQ-B}CSJiCDGp4eMv+Gxao%saNl5z8DNGfEZDb)8pX8oS|q)90CT7_q!Ng(jfzY9N zr|_~PFW5o@DiA$?`_{7gF&=--eO0v(zeIA^x)>laAw4v6b?*i|CT&Pb*#JyZLc$O( z{BHn%t+RsuF7)=6+R_cbFa*c@FU9uNh|2wn6)ZlcZQctCH`1Z&-!AFu@U$I{tcXjs-qPk3zD z;1^f7t_oGt9W_56u_AlsTTJf2kKMk*U4_y=E!bv7sxvX)ctee)HB_{JOmx_!r02YU z{i2#zTH6TL>?pb#x_O8fHl)5?uQ8m;%u+j&wM)bzLNF4L7&4_ z;2dkZux5iE;wXg5{KNrTBL$~X(GrbU+hl;afgij%L~M1ErW+OrJeYO+{9w9vp)#Jm z9U#?!AOZ*|o7;nirhZ%&+T}PH&o86d*qSV+#_&^v6<@TrZf_M9#ZW+NH8~DrL$8CS zimioCXt-kL6@RL{i1c|t2ADc^T{07>&ffLOE|zbknoXF51ztCZ-=T_^l?BxAc=20e zHtrzjfDokuKJaXPcdrjS$NVNj>X`lvN%S^3;CfFo*7bh?OI$J%O~G; zc-s?@;B<4o(1aDc*{7uk%V^{DCGFz01lH*8US|;ijaP`!*#FE&Uf~9jb-sF|mT;WsetHF?VF1N? z2R65M48AsGh2kB#{<4bRp1osI+)J2+{+ab!IY8sBwed8OUp;&89OS~1ttzp-$_9wP z*J}HA6W2wA_3S)?V@AiHjhefy4tdiQ`ga~YzOPzcwH5l7m>(A7oO zE~(h$zbAfdRkJHZIW=Z6+rfdc9ix*K;g(}PL|T%)-qZjW4O}Wj}O%)1x5c^GEwGHlnHd48e!fw;jl4H;D=sX zNWn!0E;SH7lK`FjI zsY=(8`}-Xq^>M97|DZCtcaje_QQjZ1eTqn=tcYTDxJ9mNa2Xf&8m@c1bwxJdcuO7m zxVdh{tuUzHE3tL7H8JupKayz-)l$1fnHW?c4wp8TlQf8oI(RF=bhoySiX@27ZvP(JGSna+Avv>p4MYstq? zZjpoXItvROU;=WMRPjxlms?(Kv5CWu&4W+SrM%_h`EcJw7h%?s>gJsE`14bflbC0Z zUzHs@sz}c<3v4$#ny`p2C5yV9|bV2`D+i%=4NZN^6xx+)- zci6{uU8smX;kz+T$gQ3;EE@jq**qG%AmCSMx^bj!Z>W5ZfgydE5rF#P9<$3DWPAiD z+_3SyF52h`M!IZcBf$@D-RRknb6Tsu_M-i_XS1NFUO<`zIOK(tZiRe->|PCJ*tsMt zY&miW)I^tM@ML^Qfx(GnjbjwzOvwrldM$Y$yGBhdU}wK-K_KPiby?X?7!f~y4sT+y z-y;hH*+mp!I$Zv^h8Y>nyJ5yy3<4lgzTA6Z784Z}c3HN79}DB#PBs}WMoyU7<+U9B z*^C1dyU7_;4N8qGO=sS3IBK@bE$}rs+ag|OG|62S_$RxS^Yw(Yg-pA+m%+y=u?h`u z_H?q%qxeDJxewfp)Ls3bH&y zNUD|Z>gkF0!286zD!gN{+9E|y2DA^b0Y>l}GU5=5(DUSv7^DtN80jy+2T-PVp~Xz= zc4Nal&8jYZ0c)@U*WNPRq_NQ)M@&gY-CU5%tmLUqh9{JP_3Ib=3n>T8PLET`{*;Cw zQmHtZ!Z=W0>vbhh+dw+aw{Rhn!x$X)Cc?IRVzRZfLF_p|+197?1zU7O#*oXNhJJpd zMTV%J>(8cB6i}=#5^pw4x@Jt{I%}oGbu`xM@u4j{>|q1l_>kMU zy?I!X^cS=NmK@Qgr@dvk`C_Ajgm%vIde1@A#TWnFGBLk;GiAnPL-p+8`wAHA{cemd z7@%5-lKx=Af-HZ~O^30i`B=fSvUqRrrZJ`W=dTYckF4XLed#B24p^J#apA;)}B2QD4nfH1jJj%Mo!%0Poh6l$i z+Dfp<|D+-<-+3$M!t2US9_#a;Su-QAx=gmA|#r z9^O5#Y|KhOdt+It_O7*63|S7lwKXEa|1b^bd1)$lf_fzS+udgZ?oWE&`NYBb%@aB3vra*gE`oK%Tk+e0-?ojK6Voe0+C^8iYorJ8zAo&J7*) zvBGIf3Qwk?vhNX1=x66Lh~qd6!&XX7_J?A{FRNy8{avLc{uQ7ru#|PnHjQ&eAz_C>hgDNHG)OcYcNZZr`kx1!=X<~Y zA46)Of74X;5ni??`nPA3f3PO{w`Y@0)C_0{eHMN@za0Y z_^V$M))=2?t^N^Ls1uR%3o*QQ`O@CE+ZTVU+aJ8W(#H0Lzga~4>fQFiJ3s*0mR|vO zE`QoS`$hZWTZ<+&Z#!?_THKg9~%tYV2y+ zb>|@6yqI?GLXn zUAez_?+T6N2c+um0Mj}9yXDgl+IK!*{@_IW(6?$4D!8}bKEJf@9uMk_);a#g(y2X``SuV` z!d(b7UHp8n1MZmwqN5X6{R!6cwxRKzYINbs(iN=*+kI%8l;ZN2N0+Yd6*4Ln!i`+2 zh0&Kj-P=C=W&6YXi-!+t1q3AMzwqE(`||tYcT@dxZ_qjW<>K6o53zXWtu#t~MFxj` zI%GW2y$KUjcA%-{!6y4Z>l``(A^m^TZvuk*vgys`i_Q$9iGz0*kI&{?qaI9VmA|#v z@W-mf59ZqUPBU0FQ5r-RUe-J{poiDJ))VK~^2(O>)dPzk?`4>3<*bGKN7|pi`G>n_ zhGpKxl2hXURS%?*E2i95bE0pR_L?%Ue(G8l?{M7IGPy+P7zp zE+0JB{_x|)>mNHEdEfdR`MC0iu`Y!2$`(`4z+@lB<1oHVMn_a^o(c zmag9HTod(WUw0rf+B0wS%z|sWuuT3r%yQ>s`)vsqFB86aY45^=3;fKheYf}juD$;n zG`sxX^~F2-xFI@(3{ZLO)w?@~r#oj4w{L#Ec>c4+d+#jHoux}K4E!FYKt`PtXBV%3 z!pl^jJ3U!Z0!t6&HMQG&XWF0L3j$wAtz;sB-tPL@;(nkz^VZ_q-*%?=qP|?4IRFc{ zF1rOBt({nmx^wE=rT1nQ?i^US_i^gX0^9`S(@`7;5r}CDZ^qk-2M?D>DSmjp^WJY6 zVtM)ufY7K0^s4kC)PY`pfB(|exj)<$3%lW#rdzuAJ0yKKRMDHR58e6t0vqJwy#xWo zjp4FE70}~WYUA)jYx(3OKwf_DO8eN&rP+NQ16J={kCZKpI-b- z#HI(Lo%q`lK9LPJ$>O!S_D3rCsEj>qzb!jP2@+|ZW2e)QJ2|NuB3c;UYIIa!dW{t` zG;YeohdlF^(L3TE_w#Ng;tSkwJD*DU3O;>d=kBEtJM&Ka*1irS8?P{C z?;_ANch+d%Lg3tVN)ztTZVPjB3-?Yh+_|&7?;e)N!rW(pPwsu(zWr_I#>~>CL*9Ae z*4xXc_Oc!AE4N*d_MS18o%TKgE|rm+s1%a!e0*@}%Ixw7Z()rt+`7{_J=1yXyw5=| zED~Mq9MY0e1z3%#-t*#}t8O^b&|ZY1&A-_6@=NhiR(Sd4Sc5sV-n=;|zvrK~Qv>iF zrz^`XFWj12{^b2X+&$z**&ps6X5`W+-ReR_GFph~7wE`=r+-;0 zI8hYqq($fOG1lqr^0DZXRl?2Rbl&@9;np$vHC3&LhFG|Lo>w?HT6C9=V^iGyFkUAE z-d5r`1$(YpsiMn%__`P8KIq<+%3>Dg_9ssEp3T@oP%$@gk&~3U(nLM z>s1tJ%`EutG(Ey1ZF3s>>0-saFsU|dvlZl9yfVEoC&?W@L|8m^qkZ|r@|#x{uUzAC ztRf0J+WWt7BQjQ(!a_9+|Db@)~;W-Vbl6wtYcQmvhw-j zo44Bs=iJ(NH%)>KJ#1cwj}qMCg#CAC;rq6a^-G;- zM8LPEmkwSxv)l_pC@m?(`S)ONszyW*mKY74Bfo_pm-m@-Uq-LY2an}UiT)Rm?BXR| z$~h4~je?S|z>+d*+?%PFt&>nLNjvy9Y}UQs;1M{uopYbL7wpP!>CRURbBaRj+(uUJ zo>lIX{A$w%n|G2^6o2COZs9L>4GwWZ=Qy|4a^YiavHZzfGzu*O5Ca@i4kU-%=SBOv zXC9iSc*xAr+?8T}4^I%p6;oB5Dj6RHIdFcRpK=c?>Zj3d1C;@!71a-9Xz5M8G20}0 z&Dw6yUQ46$cl+YC&gnx~y-wg=(4@BhUKm2{P?@E>KE%+Wn|z2v?=DU6_xOTTh>?ca^z3ZsU0E`Ddr>L6f&-hxh`O{((wwA7c4qU?1 zfn#VcAJ2XDgtMB9PNLe5QHsc5Vj2y)OayWu5%Cck5kW@s=p6pagpwq_ViWXRxc30- zB5YTcdIIQl>dedt54XNtxN~%I?s|?o=MTpc7FYZ7d$7pz$$Uda^xJp{dP|Xi{*ny*|5&(S>|?VG`DnKX;-Fig58(|vhtm< zS3WLF3_CoXxih%iQmS`OBW|E>CR;lAr5>7JsIg)x-}c4p?R_)pNnW+rUtuh|m*~c# zcTB*g?usRZT4U_&zN4KF6oss*?9EnA#-qO??<0qo=iWiy;dG_wZ{DUXD(9~qqm^!l zLU_xn%X#2S^V&pSw5MUB{qlwLHtA#~MAve_4&EWE8QbI1S)C<2b*li9h2`*{m(NZ^ zA5bo)fO~}qV2@(MfaPfZ5p4V1dwMikRtWAKJ-mEUf#p~XcQP%LTt32<*gDag=w_T|S zzG{Pn$h?_oonYkj2gC~z3!nsfgCF9U@DVCyay`1~L(st|^Qc73kkCEmDqXAHef$0P z%*X9ppSyP>QD{z`piA{@X=W!03%5T-Dz>hyP%q^Q>m_G{T8)fTSH?h;D_%|2 zt0XMP7v5AD`r^y>?fof2j2Sf;XicRasVWsdm_}-Jj$Ls&{c+-&;KPMVuFG@p6YrL- z77r?bqFU5cP#*et`Gbpya1Ic<-q$K-bY^cY0G;&+a?N~i1qjSbaR<$Jv^rBFiF`iM zLv~;xa(1Nz$8aLx^Ps!#=+Fmoy0rJy;x}{cD<5GWFJ8I8$xQp5KtHwF$kdIcLQU<< zkUg?|?vrE{i9Re$olK$}Fc9G)j-pUqg-88}Mg!R9`(|~{PPb=g^l-BPDKPsJiAmhw;Suk<%?Rb96^g#{E{=)pHlyAIR!U&udjbgM)Z(2F8%9m?SIzc^KukHRzb?rmYb24GPO=Qdir@{C-~8GKMl!T#&m@tHvD7GXNjiY{YLx=>A%g56& zcYnKh`ZGuuL9%>Mn&05|5|IvC=jg%ql{10a@LJD((mD6w7qrCow@6>A3@PLP-n}HW z@M*itLAo;x#bJU%q@BaRQ5fguXAAevw$BngffA1`W0YPw3v^Yi2p_4OV}R}W7ijs# z4{t#OTFu<~r7IU)CazAtvuihA%j!KntDIC@q@NFjYK}f$!fHMeYBr7Kw1&m4;S6Q2 z8Ersk%xX19AJ^Ge5XN|BAa^r6nhH2B%pK3T2=a2`&W#M#5k?7T0gaU)dko|YDTlBx z{R7MI|Ewm7Eax;?c`iFU7jzsRQ#8{{tPy#)_EN%E)kX6T)KLB=?h)q-m`Ke>K1ZySDc-3vFkP?GzhPyvW=Zn zS35`LY+=}UE?*2S&wfc8w@O^5_o&k-et+`|(Tjzfk>Tv7`$q1&0HhL8&5Zxe{myZj zqbpQeMB%z{>l{8JBOZePSoF`?X*z~0s~Kub?|->?9OZvt`4gR=m+xwo4izS}rXE6X ze>%H-UR>opb1sPG4uk9R`{}b(#rXa7Ip+mQuUP5O$)8z!6fTqiy-RrP4itlu>YTjX zIdwmQDhYz9RcVP(Q_wy3Qfj?NT>TifwI8axyzt!!r^oUqF3X@n5f|vCtj@bLqxMT0nNhm;o}-bmZEr zZT&>YhV5AbFDah()uS+mV%8tuZQqra;GEAzm$2n$d*&rUF8X@yEl{jwA8r9YqJTzMN^*Owzo!_hXFI)zV3TWj$2P3>YP2lbnqJnBQqc`J=QsS(Q{|)v$G_< zUAfb|vCtUIy7>7V`g-}o4Yhpl+s>Ic+k4L@a|VmpPggJvhzgoSGn-Z;HdPg~h|Ha( z8*g>q{lLQnSPzxPp=eUgABuyy!<>(zrRD|1JY*Sk!u{Keci)F7+Gh_eT{>B;CepBQ z5AXSmo90q8a7aVxu(U!%xB8pc9a?wQ4D-0l^4*U){_DK?yMQ2Uqf5bEUyf2nlpLMT`82;-8(R9 z-m}KE^bu`HDtIdaxeLN@ZTs=jMfzv{c z3K0OYXqk87d&7FaSei^^U|spV#fz8KiOA7m568#1Z{NHbiY1`p+w5a3e{z<9qT6QWV6m(ijL3-rF)DmQY$^Pu z_MwBFV@kzycS56meqiy#cR6arrC*#=P6gEI!=iDQr)N6vA7^|A4x6-dYd;Y!>tDMt&2B*nWC06Jk4Pz9DEQ8CR5T4+4Mx=J@OOLg% z(@8nU(-wt21ASP)$P>q%6e>6=&2lryJ+|k=>Fkdwj~{jpSeScP3}ibe1NHLZ_KBk; zrg>hqBhM#zTwOM|c(}e`bKw%j2L*NZ6{v_Q)?(A&uTpOezm5_|PzH*c^M7Y!I@r5V zEueh+{`K}frE}QZvNTrcYn%_m#0F*Mv^cyQeDS?~-<$@=JtV=OcS`22mqzm$^!+(v zNV#=qv2b;G59j;wnM*g+xi|F)zH^gdSG~Zl99@g1ruIt@-q(g)e!s2H7T#WZFzZu* zat84&D#ahs2K%~zi8NX^lza}$KM!596gIQM#eD~l`G*N!u`Fb4nRpCI2t;!9MK4K( zUTh56XRnhm64P^j!dJ@L!MJ&8+sb}r4|VX;Wa<)9w_Q+5x)B)l6s$nR;|Ud2`?-ZG%ywl5T;5H zOz(ya5A{KU6?jr$Nrn#3e8>SS>Ey!{SxKi*yQ%ZVg~e}_XP?S6bq@cwbNW-B5LmT( zOr4pNI&nF$U-?GqD+*WIju1o zaaf1k2Sk#(yAS|Vl>(8s9V4c|s|Rvn3{Gr(&Yq=}5DDJ8J@Y1keygm+9-wBZp2be@O6jy7RG)dky%k zqESvU2~zr(=nV?NOPHBVixrHrAQJWKQ-Pvx&h_#`iE&dFid!qbeq=is$$e0`Jji*= zTJi6Y#Yz61kfG9hg%dBgp<}ODC5W)|;+OAfOK)-(c@t@d=?*4R&?1Qne-g{;q?m<= zc7htQf_58H6`!)v(ZfdlhttTRQTK4x5_s})W3i7?NJ*On`=uslk{uHY?U3y2DDmJI zyV%~pPai3H@}XHhP>%mB&>=)=_<>fTDe|EGVE^)kIiHz42>dY(Vck3_(aA0eGoyjL zkWO|=<5hCXRk#n#rs40hOF_u`Q_EN9jRlE_w>in7@A(#J>E=0as|}7pX>Eb95-Z!} zFoJfS+-oM3_3TWsn)KK)t7Mak*3cdU32|{~@oSlajHgIoDpBKj(G-L=Rg}ienOJvA zhn|-XslBK3YpR%V62HaM@gYgc@eI40#G=VSuJy+U{JW2nM?<}sP#7i+8fl_2J-<@u zrG4uPcFfYuS>l`ksA4N5YV* zqHVOGO0WpUG3jsdFy`Iw7(!WP)#@pH(zf{3)zqM&z6vM%WeZK956LvTmqU=A&}Yab z#Bgf>@KqiRa2~)N$@X+>Xj6Z-gQ7UG-|P(LIqmc;4VFL5JMV}M>koCfu$oO;q!HH~`a89n|eosAgUE#-%mMw{p@Hec(PTe?y)tX&d6Q_W7B;y1H8VOMMr~XzYVG&@RM}FtwxUledP$Q_nWj zo>-1rnr+NJ^{W{!xZv12fIT%5-dk#AuU51fF;t~~A-4^32w$?Jr5Dehml)mmjp9iL zgzuMw(mwItAMQ#T_(_x1B&rMgIarE|PSRmy9gP|gkr_g(MZ{}zYgJhM6@?csT z$7>LI3Th3;JPb*iQR?F7e0i4~>{v?32P01s%JBDPnIV14@cvbQ@dL)SZ^wlsD{!F) zu0_JO`EQ9}5S5;lg@ig+XIydCs|PLJ{9^H|57M%rJlCO}w?89Hz&sfrCWhfmhx<^5 zHp^05y7CFu2@NU#pFLilp5~1`PV{07g?!pA~erJF&>jUx+p z4tc6VY7!3gV;c_imrqUC+W0VG3X8Uep)8Z3K2+W=3|DQZ?}PEVS_9$JSU~GMnC@Jk z^AA6Oduywq4WzLA-sP;#Fx82(F;c=UACE8w;Vx3flwG0m?F(9uY|8yGr+_?GMGyI~ zG3E`LpRK$>`f~s_G)7j8s%Bwt&K(b(4j%Q1oZfLGR3au$mwlSqzI%tDS#&?{$Rf7S z6g4zoGI5(R!`2%47q3q9a4o8l4?yVDUP|Ok|3q^{O2{gzxUwNI)A`LY;yRw<=7c2mFXP)3K}g;Z^~b6X zshF0-gzb_FKg3jzt_oV6x36_BANEjC9v{$#5mY}LqDry9te=okV4RS;D`i#1KlnB% zWTMD)vhO?$>;SdPF%!e3YvM93nCGfcpg^y_>8_?W2`47~6oE0FgL5vtLD5}F>^%24 zoEZj6Rwp*GaQ{Ouo{%3OE?xR``QY0=GD9i1<zqB-e)|GPoZyCFl3ST5(csq|#yI;O9^~?y zfOa%0MW4p34>$S(#^8sYc2%%eXyt{v$_eq&qE&lxY`LywQW=@{#ej5OR%|HjSgn?a z#H?2tiuHwR4OV$BzjKi+mROa{M0B;ZnIESrvpOnHHw?jVvS`iR62fElPP9{amh8zD z4`RhER+CH+gg62pJ$v~w2SFjqtnd%v)4Xb#3pmw+xOfR9{fULk%BlcM56M4TW!dHd!rC5&mQukKt9rA8kyT;wdl1&?n79HkScF{bXE(E`Jo7N zi>l)#jE--oq+fiY{eHlwHsNC-`&vb|cYGf^hU2*ONs-c@$EU154nug5%*ox;Q}~p# zeQw%6^b9ilgg*K5;0>X47b$@aEVoQC91}18Av}%gs9?Vx1p3Tk6@VM2ko1mN>-DkI z(!+v111XQ@(`o9n)Fx9j{w#q{D*|Q!^_m`Eb838KUW5m-in-?)e%UvE*x1DL;xG?`8w6hNwg#5HDTgb5+%_Y0sX6 zm^G4>X9HWv8LutpbRJL@DqHzJ4g}q97P5Uo6p*WGEiQbS*!fJzxwN+w0^Sr**{^GKjLnz!O5wKzRjasckk)jInlRmxb^zl zXPyiH!BFqpHMDhd$J(dgh)r?e_l!vqk8EGt|95}W+FAI&Pd^u~HCP+R!KO^lG~jdb zMc*KI%8abtVjucHXFvLesA)eDAEkzz+rPS&;OKMzi@M-cwd=!5Q+1iO8n2HRZ+MB$ zzTwuk$vsq#*$%|xs@CqXC8%4&dvp}JjY^h%yT%8{)^4U6)T@2EK;$|7)BMmHmW`l*2^Fwd+)N_4YAPm0saBX+nm*TrM{~L){!-6JsP*02NH}raePa|x^ zyq7gjyguo@QZ-|LOW70n6Y>qD z#qBg)aTehVMeg#6y4b7e zSHnJikFsai4!F6`E^}B*92|CgPKSGavZvNQ1C>7)d2ucI)dasv$uQE|jtBNyYwgn} zgZd_RaI*6%zxWO?Ecz#Z^WS_pKk8chcTZR0PH+@MJGbv~@nw_luxlI~0Azs*Dh>xx zv=cCfThEQ!=hl7Oh9=ia&_IO^NDO5TlMsCRx!Pckp>j=}uWiHDZEXz*c=~A;Ao+#e zJ2bKO8T}5TD`eS)B7UIe=_#^_kpb#+!J9M8nJ;axaE>M7s}w_dyU&K`s^d#(HDX} zPOx#ZsCT+FS0>}X-+YM}lXmS(B<^Z9lK3-`27>zf>(99$!w03kOTwq)yCs)6My(9S|Lnb}W zB;>OotIj@bO%#A8Fdj>?2{C5wxDb}mDSxIGZjLF%p4&7k_E>nf5)Okn>`UnQd%r3| zw^C$`CdT{w!DNI*!CzZd4^nC%LNnUFhbVCHx?y@eg=I3V#ve%O+P18Os9q2h{nGl5 zzdd%ZHXiuSwG;^&ZvEe@`<}_|y{O0o(u;s<-P`@xg**{#QV|LKhS z1W^3_{~lp4wa4SS?UrzQbx$PkzpJU}a9-YLv=uEx!>svxffX{xP&Q-Usp$9AHw?+4 z;o&~3rx2}JWt~pR^eGM4@W@>V@0kiUtx?0L!j$HHt$h}g;yE|&p4BK}8Tz}j@G3-h ze&XJ4woR~czKhRF{yzD(SyvPB6^Awo`0y|Z+fx3T4VZpD5!AVro!fudz<-Rf&6e@c9jmgpU5yPv^WehpCP*SaW&cIGO+lgmpS?F>Z{xVqh5rgn#|n`E zFcz-hWi*asCBEZDH&T+BQS|v~0u2%t2rvLBS*G~k?|Zgdx~tKkV9w;ue3`L`?ykK~ zo&B7;?}(#co2XVmy297su1Sb%h3|r*5DM4(;kP!%O?f59%^~0C2!%K6FuL8-!^tF4 zL~yRK)~E6Xq%l314L#f;m~{mO$<2bjI&CwgW8f^_bzGk!D2T4_eVeTueM5XyURQ<0 zP9JVOUfr%V4<#Ec zGB){0;kaE@ZHApe721XJv6icKwVGx7{ey0+_gU+B@L8*K*ldP66rxbf7M@%&TBlsz zycm9z!;2hzc#h2xL2Yl(FKl)J4I7StaUCp?DH^7AA!Tm2O7&X3!}tHf{7GZqleCjA zaXxpZjN6LG3XfXI4;3h-VU{GHCX+b`I4k@oQ!KQLu);M1A-LZueHX(J4!F{{0x1bt1J5xWK|SMZ2$gBkn*~xT(;%6XwaMQ-Jw%#Xu^%OTM zAKD0neluM&Er!fYiNBefz*rVPr{1p0FIgQL)zwCkcH+&DhLSDY@b4Q>p&Q%pj`Pdb zr<2K~(QPrIgPe}{&4%zYxTjY+gjTU;@1(LWxQ7iDT{Z5PM9zQCaq)799ANuGLuCs? zqtiQFodqSf{nDyvs`Q#|77d~;kj%TE$uD9MdA+=uBUvPBjpM8!(B#9P7E7t^U*$iI zX18OotA$hE=)m#t$EhOEA{KU#U9h|KW3vlAMhpxeMOWD$iw#nJ&B#=k@jM#q^!9t; zw;{Q}h7Rym^rZ}UQ8r1Gi6x|jsg};VGtX{8CQcuVO!WGr!{brD8?`lsZ#G_3|6p`{scoyHeS3N!f4u{|Jd4od6B_?g#NDsca)%%aN`{O`GV^? zQ@tvx$c(9?RiwId8LnF>fl4lCxHHW6ds+XW{6TvZ1uSgxTx^p~UYF)&xZee%x)x#k zG?xpk@XUv%?CD{pZ>mh`MWeq~sK^QtOn132BSvwpql#> z8q%#UDJkMAU*kVud#FaRIU=_&TqQW6* z8(7U0DnOQR-<=sK_qqw|T45v&Kd=I;LMCx?cNumLWmLvRm}y0UlcZ$=clHTrggz

(Y$%75z4^K{YVY4sfl;^e$R=S;I(jAc%f0XoZ3Q)1#xK zngI=oERh0l69gzFN?^FHT#vr>!zy_ojZd=faW|TUc`OChc%?s;vJR0IyljHv55t0q z{*stxLcU7Wdl4fh8mPyP0lrGq-v)OTKudSBG2Lb_0ZgKK6=YB~0s){}0ra%@Se(W2 zMQ_kMKJM)%fC7aulouIDui=lyc-kA&!J4HDE_t1$H59XE-AUH%7L?b2T;};4+H3x_ zg$#c>c&sJN4-YOzU(20bu5ZWEG097eW+K6 zmb)MmhEeE&*NKqQ*C-(Uj;ZRythx6c;sn7bu>&%>JTyAqYSISiytg5+p#uy>stQ$9 z+eT}P7L5t9#i?Gk?Ook!hGnw=qvq8>tP4$yH<*qYVT}7AyF_`(!U{La3Jf~~>dH1y zp6X^^)3|t8*EQnwQcmS&qfoDGcp1ceqP*}7a(b4;L$ztD*}Bo8Yc%yi$yLH!67dd9 zqmxFJ)T~9hK)5XhQQ|@%QB2H%r3%rNzrxgcS)orS#^BDa&*lMij06+?E^odcsV_Lo zF7nyt!h&Jzn$%L2?Ufe7k0CkO4du7*W7E(}9n{Uh?NZIi6XhyL?8B63|eZ|D8cwn@zxgIs41!N%X-avTg>#Vl#bhrXR{-q9sc;+p0E0{m?@} z2!;EY0tMw6*vP{M5ZW$V7K8Z`Wp_*DymXDSk}R*WPw+&+O_k*Jg9w1x?e$zd^^0#) zqw=e^awH#4h@iwZrD1?|H*Md^ZqUZrj=JI67^?tMmNBjD3Eq|!J>mJQJ|upSt8m0P z8sjNks2%tZ$Ykvn6yD$A>9MB=EJ+XyAgZI_NUOfhE25xVH;`w3tF9k7o!L4&qrPqd z9}eT8NS)>3f5;36w8o#cPVt|pjwz_iz_ywdb~_y%tZfML z%pl!Rd6QrOxP{tNVnDXTLGYvS19l!pd>|sjOCNgj%E|CLkdIKsgc<}4unJ}!?sfDo zQcL!TJ`A1{Q_TGd3X*&o<$UAj`+56%fciG zos4a1PV0V9ZxTCwG|!3d(Q!Aw$WM0Cx`ZqOqLYc=choOr3M@8OWR*q-xyVE&iC3mr z%n|`fSwk3M!_o1DiXt9RRNuU)99avk2AuwHvlGkd<5?#MgOl;$Alqpx_|g(}hFC12 zKK0@rC=r;x;!+nYILYH-+<%?!^`QG`y4U{TV$?f2KHO>DRB&Z49fL5VJSE1>K5R*n z%A6Bak?b$P*tGL*y1r7UBlQz9R4rI>z>aP~4Rbe8M=#n-U$ZCtOZC2 zAcM$53>eXg5`wsS047~-02`u=fxKAV9vit6Gcr46-w6#gM{?o|*R!xX+*pUMO>#Ji zC~u((iBsg~LAjX_9*2a=JM>>}>?8UI8Ab{OLsP<~#Oh6E0Yy@Y4E~fV@J$G{>NEp^sGyjsoC2dU8A`dg5 zg_X#19~#{&jb>V@-cUxgpIVJ=uh0Lh-3X#n76B&P%xiI70WFyLA$Wx1F(O$xkm_(3 zg7aiKXquK@)XbX)1?|Fhc8REcPV_-F!rBpL;*Wv&rLIvPwQ&JCM5^#*=6l%$2BO@X^Qx|JUqIz`&is?!8wMQq2DsT~rTMZm$TwGT?%ihzujD?!c;U;WK zaHd=#+Q^Z_V8%`OO*+L6hin+0>ly??y}V*AWIET#Mm><}ume-P*9(P0L!zKyC7)}A z5y$^P6MqOZ%*M1L8cb)Bq+qYKG)0R=-HQ^YR`xmQKAOdOa*~}4CX?N)rLqpfi8%(t zj^xf~8$?C4s7@DTf--AIjSm`jKane{k&M#GmA(H08tv=?F%?WwPe*dYBNWnTK5GB< z{(;0^$J67+46D95N~p!1S0(8b#&wz5f4h9aCPp=Awlvr#d$_HAx*Uc)hPUb(=}ObiWozu z1|0TDkzFk8Q;@c~FXhJ=KR7o_@EkXax+9^N$kGQb=beG5 z3!N*5ymec`kyy}O`unCsJqF_;eVER-}(drV|h^K^q zG_5*wG9h*n%?Z6Or4Xc-8^+(3dVYwURb7To>s)mmf`5SW3A{tW*pOZv)*F%EZ&}xdW%Ul4aF(G*vx@^X zw@@lPnhW+JT(AfIe3wXoUw7=HH*bS*gv+2KGJgg#0$cg+T?=glDI%>X0B&*oSsliT42iiyz`g;7Ju&Z_rI#lr+ z5mRiP)YO4ukr9J$+k}?0%LWgm=poN87j~(V4w?MS#E~#+Y*ZwQ;>)>|71FL^S;~$~ zk&G{M4X_8#T{Mtk{8!OSBzegFraN5HNWg(^XUlyGN{f(h3B^gRYb#tTB!k?=&)J$5 zM(-8nTR*pVuN`3!ENJhOWrzGVAOF^k)=I$YAT zxl_&5f-}(V4ffO_<)Nea9rD=5sgKx)&+?X3<=Z&uKAP7^-a9=SjeAEsncUe8_fdSn zOlLuv7h&mkE{|}5r~cq9h)DMZUk~KuLuMwF+(~)~;W1zWm`HMWd22Y6aGu!FW8t5i zfLuTPQ#&&BXr#4TH!Pfv%flM-I_{;lB6N4V1juRzGk;%l0*FS-CxK;KczVHI%d;_? zim9At>mvH;K8Kc6H2~UB>V|w%bb!pCwdsW!{GlN$t}3C6cK*}NbZJI%4$9$vYnQrW zVB7~ad>2^^#Zk^yoD~U2U^<+HiHG#~kiLqulH3XHvcO+Qf!G7EL~{bfUv5@sTsOn2 zitvr#C2MEboG(n7NGvrOY!v)?3u{}roln;vKe2j$p-1zx>gN~zgWhO2mp9fFa29&U z78#3nFNx>rW23{aB;ZZ?QY@z$VXPEIjjMe&U{4CbF$}=MbKONZa1nV*Zw+=GenaBE zbYf+%>)9|J_Do4$QsG1nz7v1}$vluPEJG&hYcV{5}s$)3ama;S7LCuXzPFC9DZ8f$V!cB98JbYKPymU{A=cpk|;~x^YR$RgbOL85X-*2tJvurnPF7tld^mf#^NS34 zSBlRJnt?E95!sHAP&@&|Tk_wmV+lOb5dJb`a!J*)3c1`sp>kL`3d_^zcxVo-ArxY~ zQMbWQ!evlHCgk()fY_lRCV~vwjnHlEIOUTl2{BD#k90#g8^L<1N9uM7boqSHW>wXq z-cOHGbO>eLgltHPDpNp!L-OG;E_oJWVRB@Z4R$(Q zdRszoMMS#3in6xXoA<&-10lo}lzim4pAdJyUakzyCsIQs4!E_~IVm;RUfo_p^my;I zA8HDhYs44?_*RsF^3Y3R-kp-j@>Zl$5ZT_b6a&g&Cl%gVp|n+)sEsS|h~(gL)w%NT zG+~O)r(R%G)i^w3Kv^Jqy6M|!i?VWg;rN;-UY7DQxHlSOWvy12giQ=(+A}20WT2p9 z=ab?DsB>PL@@x&^ap0GVorDLIs})U4&h~ceAtMa0UfML~pk>Xg4@(o$z{u4@q)XO; zVw`TRfT5$9V}06k$sa-it5yNdqi`L4|Ha$OAhwfCy}=m6$WG^;5~>yA?d%+5cdN%n zlXHZ*dRU;OlZhvSEV!|9fPe7{F&-n`({PmCOmUGa0suF3jEh#5>+kYgRAXORH;9mt z*KtccbNPd?BwL}+?-VJv*ohZk~zFB<{(JmPv%hlrO);Qg9Y1B;JDEyE;Iey62hdEN`CFY(!YP{Mt7>gp@KD@b?9#(3GgLi=f0#OyqaAm?Qat`7fDH>j7wu zE@&OXOS3`8Q`BqmtHSA&D>60>$6bv?<_Wp47SZ$IzsfhjaKN{K$!U`F2&ZZ3nPfoZ zkIJLq;A?+hh@FfgOBEqw=2rAjan=G#fyrYGFr+g1*5E@d5!EC&!7sZGst{y2(OUc; z&C2`FtBuI7SmWyOE+ALN1uBoF*H73|b0iI$Q-TJvJ6^1DK0=0kPT)cOK)r85@6jS< zyIFoQ?w;y~ z(g~{_LXVI{@eVEqrR)SNj(CKY$Ju47M*H;~5+ANT;fnz@BtV7{&gmI{hJvy@LZ^!` zv$Sys3>nD^JWE#c0-IH+>k49ZrMgQ7RJg=!3xIsI2%OWC<3V@a-6aBtZVdOgxs@?} zNUO_NlBu9WDys-uf;Lr2P;u>&>v{w5Rovq1s(Ps4yQZ9jMlc9hgu4m!P$JUOH7Hfh z6>9{yKP9RZ@0huqPEyy*gsaNn7NAPvXNWB$4?9*_&=0Sm3R2Y^QmPv0_>>$#QR4`+ zC_W5X6CYYe4czW_@y}*R?nf(ScWF7OaoRRvD;+z@)9|LGG}NTFxzdENEp8lUJhUAD-j_3D6Nl}M*xd>*L87AWV@Tvz%RN25IJ z_jhnz`8D#3%x`g-Sw4CLs&NN?Fk25$BJK+*{zsf zCQ_ZLH(GGwKt1U4I-zO>m$iWEJ=9x{(yRo_5I@Q4wTHdvKGWb8hs^+I(QxSQGY}q%@g5blAmP#Y?mYYYbeE*Z%pZJ zY=uKyZrvMub_tlMHABD|vaz6l+#2*+gG0v1hA&S~k@3CU0aABQv)SSj7wwF*nK(H( zrLFpZ%B62fPVG1vm_e0op1Z?E{Q2ueAnI}4Qc?j63p z61}8XvGFh5drg-WgTyqQV*B*;w0tb|UW@VvIWHHu@JDaHNR5}G;{8e_9X)iYntni? z^eMNM>7J63UwCHOiG+k@nA3}P@tWh#RRhIeI9l1a^bByort6t=gmM5?LP%RIiUQ%C zNlVVeNp~!yX0-7>l3+s$60^k1*3NLU07+YxN5jg6#QJVM8b!?n+homr`27}+`!SIh z*x9`!6y{XjB5ddLaVcPdb%*${#lFZwnA$+jRtTPa6y@57S|r(jG@-S3czBTYPbNDM z>^(#vvKoZ*>yt*vK(Wy|At%VfXI&D1*8~S#NFB*j3gt?%j!`6c36$Iz`%s%;DKw&{ z9}!PLVEKO9L~nFro&BJm^XfmEu!kFRN0W<5cejmXd3XzTmhG@ZHbE3|l_JSxK#AHF zX_-=sN}uc@>>;O1f#?#9o-8?>OqcG;TT@V*JY>p&LhII7dv%SRg64Qq=f#o~>%+O6 z$=T*<)jD3{DzLM?71*o!<=*)@dBZLyjm48E`-}5euky|mH&x=E$Jfo)qBC2-i))2X zIk}ZCmh08Iy=BUKJHvoW9V|}}lHnjbd-CSfAWZZ|SHe_Rv;1p2Rja*)fu^RmgxX#G+?qN=d zpRh#%EW1KKoSv{Fxr6N$$ z2ZJ8guuQURn7~~&lGXYdT*6u_TShVJ-t76$lqINLitGLCGYMdH3EN_FQmVexWH8d2@Db8S` z>BI1W|J0*m{eG4Y*@8dXJZ>!Yo#Blku~nOkk01|kp5dDdTmJj|P# zfXpLSj}oALiSaS8T`%Sf1SE}eXt*~uW$v>a`VY5@n$qC~@kYBhSGnqi1{#i>i;h2S z+?h7jqm$4m(gYp8LG@L?)Sy-0qVgcD9QI7`Q`hr>0UbvKQt?aj$RQMAtlbv3H$i5* z&S?!A2sK&nYw!V(6Q>qw{?7I*pM|Sk&?v!{MTk@E{^f5X6|-2WE_+nE*{FDLrU?}w zx3hrtA5Hr=IO_M0#>YEaz+B4oE%;F5Q38LC*u4X+pl=ThpnHh27&8+gVOiEkJVZ(a9~%sT0N@fA3P)Dd=PXt#Jp_p)5EX> zyoGzQLuBW!tf-Y09C(GN*G{P}=aw$+j!{;oxG;H~_4Xxro_zT}SQT8UMZALnAG_on zgdXE~*s3AfLQ@y_kAQ`?tS7>iapTPL+i-k>E?lZgURa!<3+UMIB*9K{W^`K^P0eHp z8j;i9SO>+!wq47f-?CAY#WKZ7MdO^@&Sot7x#cb<&|=1oCkh|E>56lPL_^X!MX(kX z&{+rgsTRKk2#WeoHK&Gd9$qlzLQ%>_DoNqXVuCkF9ucCTQ^p}jPzWP5iIQA^SB8&Y z`K=rRf1w5qq6J5trnp&)y8t6!GE0Vz_6KD2cLxlB;s$7ndF3Z!fa+YWuV45&(|GNV8!E6f+{@}xs%Van{Wl@?vQe1unDePwWch||CyL|6+M zDkJml_6FT}T5>#0(u)^YZ-enm7FVT6sPMLcy9m1S-m z`$lKZKl#xajgt-O(TY59i)9c6cZB3XEzhza9RnKWBaEO}Ta>KK+^}pLoM_AY7o64@ zL2+$#k9_?Ty3v(?sM!`w)a7oW?C0OU=195i`@7EyQ2ppbmWCA=$GIgRvhg_*rA z#}5d8rh@C^SB|$q6rXsG85!Al6P_kv;K)tdRwrnw{iuy9`nER{1O0+B&o`St*)SqenSqev?ZYu##E9ATx-`DJeq|vI~rXa z!b-W5VM`^YHc&u9R#aL5PXWFYff0|OLRpJqp60WFB!l&Vzi=tho{ye`+OK8+p%Tu-Io^%raWZY5kA)o(N#QzAyC%(c*SV{5Ne3h9)wL71gZ!XL~svq z+-+r&17V$&PEu&V2`jv+#%xx@g098nAZEBe2ExEmZMcKBYBX241t~O-Kyi|sCGX@o zM>z6Sva=cAZ3x;K)S$>fdh5!-cc>NGq3M+b$XNBD)*+`VXXOw}>y6(u2AaLb;gxE% za`aee<>27(4Gm&%_s}Ktx7mX0NX2c zgq+IVW29E2{{{v18Z>ZBbgOPCbLK*wu5-Ykuu*Xv!L@EOLd}w|uZtB75ziOSdBYe` z3LqyPg9hD-aip^6azoLTjKm|(;tTCMz)(+iypmw!!V&7U^n| zjJlM+&kc0`aS2{o!OWx?SBZZr7lJa<_A_2+T&fdu4{(Daage zlCQeQZ7!@%o&ol=q{iI_r8RC@><0NA)2E{KqTh5y+EymCT=WyDRl;~QPO~^ZO1+uQ z$N!JOK*i{FSs9%NVY-y>Y)RV)?Fii^GKS7fu$vJN@7}E}?uh6>%Tl=+;In;+*4thP z05PkH=Z2!kMevs2@%+1I-ykVl+r-_ zdq5AMAec4n6k0$DWp24AbmJ@F0!DZ&Trc4N7v7SdN<~e_!8?o>n+aR>DkD=&mwFA0 zli}PC$zqm#BTj8AdM8sj@hKux6Xg_zJ}PlT&Bks!w+P$L=M}vN0UxYvDLLcz28ZMP zvZe5rjW6@>f?2e1&wP_&Q$rtG_ML()IGpZXk_;Kl>f{_=vG*nJ8~mt`NEW6b?AQenhjkmB>sv5s291&)yFm%d;=zdn1%d|&l(*Mq zdoOQC{X^|wNnL0hJ7-MutP{)#@u10@LkHvh?@4?PlVBI`f8E%Imo;n%oBMR-4PO>k zu&WxGU6So@m~yFmm$y`4p08*82KuQ2L`U0bLvQCW&`68+*F>m7vrw_FpJ9#p(&Vk1 z7F&IEHFj|?Bv=_V`yaPC0x%Fili$FLQsNO6d2Cfj*#kX;b?UI1CYSk-ITAQLXc$r_ z8V1mfLW6A1=+F6>aZp9~jLZuFe+?~4n?86rWBrO#42rL!IIXkh#PEe3Jm50tmO$su zEAW{g-zpvbh5=hXFBYs?RilqeIW%G!6HS%Drjl*dMpp>*YO`}Q2rMC&;vn5wahgVl zl?p|PC%P-U(-cZYbCU?sa?59mMpP0+#9E-aDWR5F9#?6`3v!g&XX7B`hGw~UQiLE_ zok*X?$Tk29;*c$>zeipg&VXdxfCDItnn_r%-~@x5VyI1UBo7X>>cMRz0kG;1$V{}& z$^h>n-(wrnkA@Q_c5FL<+pag#d2o8m(5cELAd29eB^lTEhCHAT>p4^;kTZ>G66iP7 z-MDZuo2fo*Ly$+21O=?1!W;!1U+3B7;;tZYr#OgIb-K0`h=2Vq&(~1rKgf4}o8f8u zH?#NDdJ!{)EwtT~xDKa$XAc-sa<=4;|&s<5x87jT{tC578j7b_^u%dAKJ9 z3BYy;&SEM5GL_lc(X%rE&UMV(S%6LPKE#8P7G9%}a8p&Zs*G~mN)Ot~OZ zlb#$EC}`mI>V?Bc(=d1QlU{b1?-sl*hetC1dtB@M1U;HxBIV5z91_{(^Wh-}Kd@LJ zuCx3?lf~UgbCO_kHU*y;#sat|MGvV+jUV*VL49Q~!N&e@oPx>}G&od1(<5%~_<@X; zhGwMmbQfo8S{h4I0bz&I%ofL0F6J}`n%KuyCt!UxPd!jRXcJ07`aY@yuIJEQimXptyC6cyRKsEz%RuuNu{-Z`yHq=;Q005UPSSAn9rnt#68nLhRC0DWZr8oVs_%t z#98LV7Fxc<;L2%WSi!}KH;g~tYUiP|e;kLF!~Xa%&&S6*`Lhwq9kIRcf$l8i6>q|T z&(Gpj zK3*T{vB~ivIl`2d_5NR2(b(AcC+dXQ$>trhfb)pv*;~&@t+R{v>fID~s^!R8jwi%^ z(L16O@OF2HRg_b9bVM()9oN8`5vCDNPr^^-k;4}yTr+@Y%1^ZhXv@%A4W?0dpm^}w zUfQ8hf+kjJI}s1D>4o5(a?#&-J#R7jnU1u0&!zRzIU!isp5>_bJ#c$b=n|@N*`v_$ zo>6wpPxSf>o`JkcBXr~CkIDV5?O6G6Xf_v6Ro5>F2f zFD{O=ow!6s1tIFZ%As0)mo4XXm&f);QD6-`6Q{p83!%-uENDg;+Bf!(dj)S{bDjg4 zU##5)%%)jM)`!0zQiQt+#d=IWMa3TFnK;(vV)m#rhBGGlDI$N38y}hI=vljmoSt34 zMbe){WyEXh`OCo>pHYgL4ZZl%*e$Y&xeKvy-}uIw9K)t-$~hBi%k$Z83zl`WqBH6& z4*XEp&NkC(=xjXKOG-llI;bXn@3N+_+iadI_bIoc&ug2v*^rE-xG7-ZX2O4S z6XiV+5OaN$3lRF3Bybfih{F;e!m1LCRa_snXrjDo4<3Zu$hOz4V5%FO|BEYESQy`+ z*PgI));~Jf*j`0bo@t@m-(4MO(A4QEVmxXF`4PJ(D1XNdmZTCM1PrhN)uil@{82GZ zrE@^?P#|8|`c?B}+b^s?sN2w1Q(PfA1z{Xj?+ysd#$-2nO#M`p()zdrG+?uWCB_Rt z`rBAxH8?hoz{d?1xlA{igWsgYK0#Y8aqe~=wschFfZkGq9 z`|VqkUnKxwFZs4lU|=48ZNx?-TFv0tK@5Buj92zaBibM0u3j(axII$kw&S^yjF@fc z1F&#u_>{VVGLDiTGX88aVQBW59IQ5!-M&@Vnx0hK7!jh1aJa+p3q$${)Su|wV0YtE zSRtEXASBk#&mD@&JvO{x;mIC^>cMRT|b$47P#YS zu4+tZyyT`ihSUmQtg;>@{=n2|_-UZ_lQ-&4%Bn+kUshI;&^>W8(1IIw!&9L9(CnXN zp=uYsSEB^+!A>ha5?q&3_r9plG%|3 zalUo{<*@fhH`M?~5ECVh=%|H(XdT?pa6&Oi%PB5#O&}p>b<*p{Pe3|EB$-Y_=vI;f zR_`TW%t5&W*47Mz_7(&8M^#vZ4Jw}PmsFBiml4v23CPu08S<`p@UC*-{`BG`?@dOn zPqWi;e=>lF_Ghh6PrDace$W5{;NQ3xrZG5{-;)XQds7)icAw;jjl&*(XZ>+DIc%H^ z@cUvs8BE6R?ji)?h@M9ehEK^`*5nxK`?ziMvo<=KVvH0r7-zGUJy1d+wlYM2%%pjy zjU%H&H6*`KJXe?BB$6Ca$1t(cNKzqzkqvIbFN+A@z!+ zKKixqE=B$>-2#rq={mSgSyI_hD!T3WD^Sw%0(l0C#lrySv1ZPrJd#t(9ThY`4kvA4 zwktO#S_v{BmtjElKXS>46Mg$#tg{?Vx=ODBzirM@6JmlQ3ZQ3qdbd>ExbotB4b(}k z$it?2bbyBw$03*um$>tQbChB>{lZ908@1XT&evDCL2No3?=QyV=Efzfu4bo2=Ibi9zyzy(c z%*bMlaJh8xSju3Fmx+ypOlmh68GtDuo`l@Gf)fg_mN95BcfKqyx;W8L8nF6 z#F9V}HNJ#Oh7w#AK8YRzN|uRF4wark-3%2R5~w^{fvK|>F)9K_QnjSEMX2D;KB0E+ zc|g82#%XLI$x;8a3qZfc1{?yFRCOQn*Cc0|%qgDC#WgCT*vjyDGgekc+a5ofzt4Cw zK1R;jU9wvIT983o?LM~WH@9nKugYiR4u6OaZ@_(3FlF~)qft9g01Qq8Fi3(o z9f_5}w^JTaqMHUYz!lSI$YcT;iq9#R9;O0>x%|s8N?6q(K*b2`HVE?0dzCYnt~X^6}U6F@;VOey>^uxCP)E6~RVZ6z4@i zBoHO4ER3CYk(eYNyFK`^(-W2jq55^Tq0|2d#_V zS1Pd-!bLuG3G@nO^%HQn21m`5E$xVcbA;G=z}(l~yLbF(NejBC-NB@LxLaljS$opq z!Mh6&l!ERoofm!ci-W}d1N=PJ7qC3PY(qLaz>oS95xjqxO6MgQ2D zhR0M_mHCayVtL(0l6#8x1V$sX|C#$RTrQC2FW*1yB4Z1}Rkxp%VX1f1`4|b9ZJC|4 zm0&^WGHK&jtbFBB)%A}UIbqiWu8+ZY3%u?*bx84>)Y%Y&gHsb|e(MDSd>h@C+)mcw zXu&r9+v0y=EsaeSWCMubh{=^t>z^_8+f@r?c7PIg0pNVS%&_Va7z{qMBS1fcy;3$? zE)y?*P>Zm?ZoDvjnrq>eRADu<&WH+CPf3Wk0jme@fa*zB*@}b1^SBr$7b98opZI`sC3JQJOsW*{pemodtX;UnD57Gy49!y-Zrloxur*RQIiBom3!h{Kx`ZjuIh&mwNI=8va18BhA-?$N~#YyNBGC%!~Z4n`nz;Pd76 z1JKBpqLET`$v9E!PrSS2Xl%dHzH7SGg!%dC6(wFSObmgd`4Wb!#e{C~emfln4#nVg z$qC66$?{<1MjEh+=8&A6trW3K8sg?1ypeicTBRQ!Ge0o18$tofvm_J>Ltn;p*+fK6 z&;qAi%GP3eq>^)DsSj6i-roH3aA1rcrOLr#gnmPP5+amzD2`*=QJx-H0m!91!nP(@ z%_ui3Ww_)lc0;h#Z}P8@7HN6rzl?7M#D|@uRqz@qSU`)~W;+|^h-+)ZIEd`hHOr%& zQ))bnM=$wO!DG@r==BdGLn~(wgyNq*Ky0X*mt>69g<#^_Nn}%~so#KYWggx@z?VR5 z?6Pq?yW=2uHbWMyOXLjE0LixvVp3E$hTB(z?Whe@m%0n0CsqulDV5I3w=BN=hvoV$skeH2-Xsf8O$5fai6U@-0g z*PnqN#oHstdU*vEe?1b$k53(G5Nl{a#TYA&Sb)eWUrQb4KiC@cCl`vn8lAR+!cTO? zheFUKFe+KK@RAbdPLVzBuB5XPJrnoD6s*Np2lRWrR`00Q@3uOJ&8AyJV*e>#t0y5fEe_8Ok<7Nt%Ww2f2?m`p8gbP;NuRhTEmC`RdqK)?J;f3T+T+WEYbEo;-lIw8`5?;k%p1ZuE9T|zK{i6z=*BG$#pN)5Z#%f7swePIwVH#Pv0A2m4LX zi3m54R8j~YlTH)@y$4T}$ zIPFd@PV?P_pb*K@k~zCzEIQZ`Hr!i{>RH9P)inZ6r&ViWH=<)1BstkEajM19E4?zT zp{i^kev5jsboP8k+)E3UDL430JN{^S`3}0h-r%Uai-HyxOS0vRJcrsYH6kbh-6OsI zF4su2Fp*aF^1I&z7Cy?QlPW1Mk+f0pL27+N*WH(U;F|QUm8!|f!>Qdw&2OfcSEW8( z1?rcCt3<`G@jC2{ijjXoVYMHehoolb9V^Ob)wy=44wmi)jlu`zJ%}0mF$b~s(Fa*j zkpLv*zG@5e2$ygjYF2(*e3_rDU}1BJ_gmH60aezvob|v!Ag+V~Y5zhsnXC zF}NqEy_0c1-i>7wOD)8bEmae>Eb8FVSk%E7_W>Rr40e*mB=-&G3(0r*cNQkq3hzYgc)4{RdX3$b1s!Cx}DQ{>7_NVFOeIRqFX?sJJ(4sjc3<_i7hT`CQCR1`eUf&pRP~hpk z-klS`g!+O?3O{%>P0vx@JsDs0cEc_YKUzd!0b{hMD?vo1G(lhD+cVf*Ti1*Ef^S-D z){~t_y#988lrE#*ZhDo%g@YA3gY8j<*K?-5NVYk1TaC$JxTwz1XW_7zig-r2VVN25 zBT&MT=l`{fUuNHwhYTS|s2_{n{ubZLV|4In?vRJa7bk}Yqup#fvjt)m9?6HvWDRj* z@;&)9ih%|{(p!gR#qbZwJ-N%265M7$7x~a{k*jQ{OfUWz5MC!J+K?Y~$6q)hc9eM} zL$li+axJ2B#44wfi&4D7JRn`*+7)#@5dG1;rn_n@o3tYzC~Bkq4SH|5E5~L&|~Wre4SBfE9#^kDm4+rd>8D8EPbX zU5*3$`+cN|7zA!~04J!*zQoA=9Icoywa=JBKFY3;)XEe5#QMTab9!;X`jZThw`SDKf-u0;C(YW@5?BHlHI^9Vx zS3CT}M~mv|55^bW(;aP;lRR7B0&GFg=eSCIHiZMIzh;;YXgz=(J{m)Kbb54haC)$t zmI``P#&N*1cY-wdewF&2do-HWA01En7e|i_c#n4M50R!K%Xc(kUN6Z3pA$bmY*!u) z9UL7@x}(WpC+VXWs2=bB$o@&UKj@8i@izJOr*LR0L=3#W0?7*ps!66I0lrUHAVhD0NmGUyb0lI=c2TsuRE3_~;0|w`jy`R1s z&EV(y|DCfJBVi8)OyMD6Rv&#AYo@=LysFsOU)5*rV@_n#6QMJR@i z0n?wM8y+faL#&4KN35(m@~-G&5eWDQtWC7yrxYOU`2t4H%p7pq1x+rXT@P6isQDNy zn5^tw8X7Np@N=jz(^v!Ie2PGD{9gyMHwnZ7aE5kn=dl zkGaj`dU<$D%@*(I0t26CL)))Cb$`(2O5?VEY~=P_H+E|y4=9DP>?2^}2; z2%#t##K+qrxb;TLEX6SVo-Yn_2dL z7^OyVY_7Tf7*oxc4$K1Cor5KfakzSabA{LmV|iEY=tcBknmhzLsv?gU0@(>TDwOUz zVp#Go3f~R7T!Fh7kT73|1C4=jG>f?-)v2M!96=k>yaKRw9>TK$x9eCw-q}oGY34SD zh96t<{K}qvE;gH7P*fUAl`S;NkEwDtF5jrVNt8~}jPSxn?nQOSa7#jv@=Z?3k$F!_ z@6)BN`(p8g7Z@p12|#f#=d}~pf@mg|4h;w`o+NIKqh>F;%_k zmowLbPou2C5sT^ZM)W#BfOY7_Oiu9Kvn6&ScoJLaT8F9iY{8><0_f}aH~G1wigN@d zEOr+xA)o4S?PAm?4t89qq;M|`YCK)gEtw4M)*HWz2E}g-9>QXGhE%DuMAJidFU`ll z<%?N0a6Q#ux?pJ#>0+soB})QxI?QO)RY+qb8X0fpI5b}?fEOj0$mnL}<>Q3>F-5FH zUMHa306#-I5<_ie)SD=C%48vT1RDQapR18 zDsP`P1;zvfJ%pq}6SV~lmXdq#y4mifbSEdL>!MPw~&{bF|oKQ`-1`0xiVJ^N)~4fQI8*D)`O{) zuL{;mbPN7W0mHi!S3Wzce^NI&Hu-rhr)R|-LdWDphlrQa9k?^d+iPS>pJ_A=$n6=e zWE@-*l1!NvGor#t@-*d`hLp;Tz-9vGc@=rg2m_jDeF4Av*8v3hm+`*4_tl8j6-i>e z_(0c`O${jBYQ-p%g*V9k+~LcRqNi8TA%_Ud`PtZcmjkj@A;TZhIW4zXwSL7OL!4M{ zB|5kvYAYAr{8cBI+^Bd+HovN!veE@!qdXw(vaX$Iic!Mk)L^616>A)qsc)rXgi$j) zBTb~*Iqn@qsFQKUL$D@9ab14x08H4}YRR7L_V zL`%?kw6Z&Bp4c-dUZEmKl4G^>C@lsvz^RX6go3WT&9P06)RZHgsEqg;mh~n;D6C!~ zwxs?tnIfUSo{q<``|v2Z2Xpi*cVv8zyJbS%<@E-NavKm+*ZYBoZWCev>*l~6lmnFb ziwNk2k5w(hwI10*`MR&D=_oC#op^0I`bJl4n9rEat}-6M+w8o|D**mMgVs_p>(TpUh5S*NgM@z<86m4)Ibi9gfxBkja+v0wdYW-Soa79nadg;p z?M73dO%;Z6#PE@#FGx9P-re`y-9_fJiMVX`6ny6fUFVsR5o zW#iE22O6&yH^0x8FGI9e>_E*cfp%a!z8Oc^OfKAsXQ8Y0FvU8X2WA|`284|U|DeX0 zm-SOMyTaxM&8kptuPlex$QBr0)S6o(zX{}g{E!^M0&jNX8$WUImcRGPf#w5(mngG* zaQ%*ZGCdW1MFLq*rP$zAJDIT&)Fv$BlRfrUg$3|X&g+4&v~2aJUi+ybvFZ?9Xj2<8 zx=Agnn+ou`Ijp4LMs?f?)~s_}rT8+c!E&G?Q(#;48@);J6&vmRpfc_dt6r!$RivT0 zQ`EvD_2S}3xN;#2>UwD7FvKlH*?>eve)!8cJOfP;4BANA`POfMGj6D!kPxRx=0yqC z6sel?hn!`U%mlG)j*8eYij-x0{Aw*wj^+ux?2+t%7yI;>x@L8T-0CPV0{okraU%;L z(XB%x^OnejhluRYH<6zR=X*lFRfWJOg`h1A1UROBH(2CQh<3c)|Lq;!p%o34wg$JXHlIBQCbPf)&O{t%$w zEdX7|hajTy`yq!Jn0nBS_3wZG;@RKvzaRGh{`W!m%Y)_*pVO;7cW~qs>uDq<8_5!p zlFE9q2wpq?w!@W2PK+{ia^zQe8*q8N`2HAAsy1qo2}=8+83W4iL1sddsz?$VI71oY z)gMfaHYg4sf>ktS4BUmm zr>FEV3FCRmd8W90vQWE=8QhaUp4&(nTMzDGqQoA#^u|gaNE-fym6hgqbVOrT40Jm{}kGzZvjFK$#m8GxGzI+zbFoqX*51=L5Xbt z?j{P$=@At&Z3o3I5AK6XL&0>HzGn$#^Gn*;)mz==_H zk_-q+69$Mjm;6~n#x<3FN5dm4VDZ-hPZaNK*aEBmS=BseRWqBH%UW|D~DX= zR4ucwQZ5V7MUU$X(t%wnp*OzMqrqmPIM;>5*@lW@v|z!#fx)#X@MLi1eWcHu%cvxe?q2 z)9}O8y$a^c19PC|K&NPEcO@L~X$c0t?maZe**FOMjSTWJQa?S#^eKQvM%X7~kq^3% zM|{DBM(B_UU9YiO^c9GzkhVDhBpb_)W#!g@}I&B`;7mTA6s|Wkl=6 zVz!>%D5XOw#JmLSO_U;9P`uE-JCY=zJpIdyY(GjiU$q*WeUEKb62a`gqO6EU>li6k z8L}a3q~ok+zJJ4EnChJA0*D!aXkkIRWsJQ+sxU< zTQh5IF*R?YsUojESZqqtVxoo+{jZWcZdtU?tZ%*V1gZGx{Nmy!JKdrV64y+MJK(trV&e3Y;+(m(ESZ}j(`<3N~)1IGBo4`5zv{=uaK?_ zZqy1 zaD0e~HSY&iwcD=9L2V;P^^M>%-1I12H>dTDtQYAvFjEi6E|O3=6ys`AVSg$Nt=>&> z4-xo=I&E0MxI3r@&AK6J_s(bpCA1+<6X|iyoNn!g`Z@DXBh4&$1x=C9rc)&#s(=J- z)uW=Pz&nDPL;>M~E;MQM$nI(2rRj)<{4(z0cjM_>9j}!lSS%L`%-eC=A*Ps1h-&(rXu@-O&J^faoCxCdlCnZkp3 zmXoWHTv0&l-v~cB9ltC-Ukw&86Zlzd7v{Y%IGcUA<9XN)!M;Yvy3o10hp=Z77Tp44 z`R*d|2g8*S#7u0Fs)X96yIft3Mn~LTI6bv)DI^iwA2FUYC%Gs!6F6$fxoa$2iHZ&^Qure_+qV)bRddQ$zp}z;PqWVoHXb; zMeaa~ns=J*iL2RZWy!}9HqjTT2JBnJY8!#0BN+MvuxAJRo{aNJhCM671z0@34i7RH zoNw;j4R}L(Z1h)f^q$Z~#W~iCZYOt&{;>OqEKoBMBGtR!8CchlP+<{_1J-jHTLt9Ox+qb#kU%+Lf;=P17a z2q`mu4^rW~JJ%{x=N&y-rj%ZWWIX-T-EI=*Kys!zBzRuVIg`5+!iUU&!Re_!$;G2( zPC4u!T^tXxoiYxwL>0?RATKgADOy~nHiz4 zaj9t9xYLl;nJM7gXwPIkUcspQAp#%9WYaOoc9>Me2-3LM9vjRl>|q#qlmV4#e>lXk zLt3b>Eqx3YI@H?QAgMgj5K{sd+X}x`G*uWg(u1fIoFB4q4b`JgeXr=v2Ch}Y@r7eg ze6DD)a`?L5OfADgo~8(QXvBm}_KnU7(_+7inM!mD4GF&kA^7>2u4fPt*0NLtz>sys z3xS11r*AEHQTZbt-nTvktCm>RJEo25uW_-M!ScI7<5J!{r*qldO|76GY4AIyO+Qgd&Gtb}jeTzxtA1UGGX zA1dH&8xEEWQBR|NTC+yGF#sRt|4=q4Xh?%WRSrQJMkihv2Pqm6lRe$!f_6AD)JI-# zdGu&W$Z$(R5BjuSvUu%v-d!zVi9og@$~n^b&0PU*%y&I5Mm~LVSSg{cMbSxe+o0N9vEbm+QsS>jBNfL5h~`1`Yw? z9^^_M{rJ)Dpg7HrvVMQO8;^dy7$aKn?KFP}MbLPfA;`mCgce~k7wqLk_MdKdgMO}lyr1+n&?2a}~Xr{W-Fh;?km zI3j*oEaVQbN{Ph;UkL;IU@*8|HAc9*bJV`bf1c*c{mubpnd|pkJ>Y*2LeZ+hEJUCx zn(Xol(wYs(TBZv_q{XbjgxCU=0wuW#jbmI?8DO&ImDD_C87%~ZLG_s1!~o zSjEhwR5U-X0TFRSojHt(cg`ohvS}(7H7!-B?OK8U`0=ho93LMZA06(L3N={H5CuX6 zH-BTX_Y-7v&twnES-tJ#88cPsuqu&0YKbl~TKd`=iCkngTO(ltR7oZCW1eM5%Wjg01g*fT!{f_uEv}cRa8XHFk$fK&~QA~?jpm;z$<&ZAxrR^8QE@EZ47;o4qMMt(>3 zK5*Zud2zO(l&y@6f)!Opvjx)jNhMC+&>rWM*9txlI*8c7xDRKX?q`MO#@P~=f8Rw% z*exCMdiu44XHMbVn|?QrD)QaSpxhc1A-3-L#q*Ydwsq3Qwq${CGP+7Vt~Z)ZaWN%W zA6j?s%hf}aD9e>3!EppBJw;WWg4R101zTH;l#0kLY~wJCgV+YZ5bR4~VH|K6M@|lT z-3DzJ2&v=O@rqb=c`JK#qI{J+(G>*Fos2`l=sQo4+M|bn>mq$6{kM(hU#O=oZ`-H6 zjr!D^#SLL&_%3oW=gpB&g=x`93uc#zYO)+H^6WvkkA{`Lp#Yz4E*{lN54v+y>r`Dg z>W@BdwqaRcE-bysaa3~^6FCz}1c@LhmkXB%dV7K@C`?HwKWL1hzB15KrDcej!XEjS z2}78|(lSsnzp4m=xo2gkRYxG2(8@+}Y1Z5wF|!a<$gE`#w0M1@LvA?2jhK%Uaj10E z`Jq_bBhoEUrbXg-928<7cL3p{vXngRh~3)|dS$~@md1!nxLx+HcIRzFoxl#BIM{&3 zR(2H?cFfOU7rTZ41a1ux6+=9fvIhbwJHj%svA7u(zXYb;f*PLOIm!?XgKWce@qXu& z?|Xof{JFzshrPUyOxP;dBz)6C-LO^@%%&>h0%l7Te;AglYG7-OmuTQY*e_8(jS1@o zqer_mxH~#H%ug?N6O01GyT%U*1qSFD$3#EXV5ebq%x)A|C^1vPKZOtbL^?<)W{9?1_ip4D+ijUrdM z9s32dop+Itow985u4(Uq_wV~XD22cvmny-hC{Sp`1qG2xkjCXT$uG}YGpj0@p zlzMT#Dy)#J7vN4F?H1#~;P80d+wBG)Xb(6z!G&KNdqX1G_7Gab!;t=lyCG|vp2h7O z-va#gU^6FfY7ggD6DQkO|L^vALAOPPhRs>LOl9^EJ6yiH?V^vRE%}M^_uys1wTQF>Cp6Y@%b$ zroeBs#KdE6;oj<*&6;E43o^*7cCBR2@ncoj}y!^s#w1Z|r zlj3>-Al3vJyT`u;U_%`JHbSg)@4Sr+ZzR^;V!A_|kC<&cVSM7`s?t;=cY#$QFe+g6 zygtQjv~RC)!l_VjoxQtV(1DyqX>H&&BcfA2`ZXf@1$iiobe@K1WNix9$+P7J9;ajs z*{ZpQI%LO4(+e@^q-3lrADY4#wb5h}3N{sN+k!S^LDvP;UY>C+b9?e=meAv)(+O^` z+wERA_EyA2Pzz*GonMMao+A5G0%7l%am)&;Ff7V0Su$FO=lf2o!NQ{2iDUUc!ez#) zx~wZ_b}T+ZXRv7`92mJh>rj;Lk%lo zlXQ%KA_JX-A@C_HCIZ^fbRsB$ypfXo&10boq13O4QiUKK%GCaFO_wBxBSANoBoKlg zID>a6Zn`JS0Rmj%0`G5M4XbAP}pt9hLdK@vj|1tO@p*sHN76U zV)BsWwn#zfJKvr^+0^0hG|5sMVLmothe0-1wCt-&#)t6O08m%QA*7bvup8qP>pxHk z!pvS=RJ^Jf7qJ_Pf5m6P0!#*SyPrxLoL_1eoMOMAjgN$@;gqXZPfdf#d0nV1| z$fixllL9@Kux%AvVAG6mqB1l+U`qQ)QxLB+_AfwV_-G);6kdUUKlH+xWk`)M%5HKf zGSWi|Iz0KTdK32mHVr7ar=#`W*|f9VN5&_J3w*u#akG`3PdoGdMYARx@{t`Z|>n6(B2wHpT9olQ%ai z*8P1q#pc~I$9>Q9h8qxU@%cL6YD`Uxp`Q<$&F0WmfAD;|EuPpPXi|%NY!q4`s7yed z8+G1VH}7Qa%f-&u+{U-8Ueo<9)(n9G!+?H9w-&y7*{t^O}PmE zd~c63DC1D?Pg{G9y{0{_kqi@O7*`d+tNuEd)gkF-RSl{+rFFcXuFrA`6TcxuaW>uG z!^C_=fRn=W&_lKWm_qkMc48lUsGT;sqxAmmVb|)mrqoopjobh>>zXiTvo&E1dfjaO zfM;OXD}Mf=*}BB@L9_LipD&xO3;K=<@A$<a+>-(Bwb(UZiu2F70>3I&;p`Vug@49XZr~x#AMaaV zp5KKNhF6GG#SiHgKR8VSk_)tK_Cs6BNtZ)<79&bZf$qfXpav=Kkj(_s#vo-w?Iw!0d<7xwGxe%P~|SRqjjKb{(s$0NjNS zU-Io)pLBzkp6f=24F#LKshvIe5QF!6n**v`M+_}Ah_FF{z1OWxtwp0s!W_4vK)0!- z_$yRBy?gJp~!7UdjOAB4oPBhoz(VEGzdhj^NWguL1wQ(tcforyL=7|_qW$;HiLnDV=oXo>bJY@xVa z+(HbMiB=Nhc_>6~*J^QsF*GLH2Z?K3s!*59#cMZC)zf5PTqu~0oj~~}n zxQ*fbc)5x|;reu6f7wneH%|elj2Ay*-(s%IO({Oc?)4U+QMH7{;}9+{@N)RLJOY>3O;C_ zTSEH-dn244R;ip=4DexxVROuW>R->z`3qHiUshu6co18y3c>1ch6wBGWzZZPG#(P*-Zuwy8S z_g%lzU#dMRS=-=qXyFjhS{Pk4GMT;>EUt8_>$p>` zn3#-y;Uy{zz$!V78Z8HJLs%&>7`NWh6!`4}hb0U6&~a67klVRvWT|bk$)~pe@^V(Q zTM5Mb5bDT4#=Rs~Hv#eCvC;b)6I-oc-0l>Y)lNyYHi=!U?ctYL|LRWup!a1Kh7USe zAuy*%o{-``Oi`p9#d=$-RSS;ReW7TDVvx3W9>x>HY?k3n$$|%{brh9LVOf0X(lDa6k@8-_>gyE|jsLRks&S1X$ogiI9q2U$ z(G{TXU z(>djVV}*&BI@QcsI6}OJ+VJk{RuJa}3 znZJiqR%_b1xm{g#keO@t9*#we=DjvHy?3*FK~98l?A)jMtQ7f)6$5DwgHcrsDb>My9%OQxgY}=nNq{C{ zOPsR{=JRt~=y;inOT4Ay*iY~|dzFI@oUifcY;o3{;s$}$)pW8ZS5tbuczxzJx%GY2 zz3lKucAcl(-THxFTmSV?T;DK^QXhk$;J_8k$^{RCf(KU6X7n73hiY{J*}6)nvffzoNHcBoaR09=$&8gouAW% z1B*#x`sB%!eDas;)!(M;t9_uQy=GIE_!Yj~UPz7oe)Bb<13Dn+d1^&on^SN{-J#es zm~Cj}8r(tmWb=f3aQ5{1epZ|x4ySHsj#jg$^A8`gA)Rh`RoSw9vBV92o#~4I0uG+O zdTsuL6C5!B2K`x~j{LoE{VG@k>tJueE~%LL`8zt8&8Ki2HWw~9s1}ys=_|YoCr@r( z=5rMn|8$Sq65s&0{&m#(PC)r%5-5{CnEen@0ajlEOnG; z9=I30shOKdV}YGxNSc>HdOM#`I@WLz-_HP(ueuCM&XZK>$P&kU6@OVOm^GF*@DCpp z0+&zSyW!G+@5z%nJW5Bi+cB`_s`+%WziP$M0ta<;0$8DDKnC5+6%?Lk01dyHU%53P z1ouy}nLp94+Oe@i36I=GhtHkvt^9WL<2K1TS%(mC!1Og;PqQ4=-|fMpICQJ^*#vuhltWHGEv20|U+6 zR2owNxSZmvjDWqlz$qZ#cKmK-ooqa&A8VWdP!(fPsFR@B+=?xkl|qHHe1^CWAcw4@ z%|fM*J4WDaonPEu?(cp1o{~B>__*Zr(R+V1hQ z``j~30m^HfGQ8fA6?e7&W3xD*fX{wQB&gLVo@Rdvd2{9*fh$ zzr?}f&!UwP?}skbp{y>5MtE%>qZ((hmPG}U+30+D7<=f7s;_5047+5bD@-!mfHzqt7K`+rLDFBp|a_>n}an;FTMyNG|^1xLrYqyK{y z?<{X;`3l6&g#l6C6yQ4dOaZuO3#4JmR;zDt3mVfQcoC1s`Fu|T4KrVQgs|~-{?#nM z2GSuJ=KU;3sVRy6AR1p@O=n|psC)>)p>|eRdA>fI<9_%TEbi>%fKj9o)Iop7$oBWB z`^H_vMJ2(LKO0XeHt8OeYi|ld^ivzrmUyVE$TsZN$JCVAzmKX)2~d(1!zEqj*GNaO z?^gA`^=+_Ubm*0G5{b)|I6mE@Bv*UGysWJ8vfBD-&da%GQLP}dx?+%^enQ~Xd;E7X zyItbX>ING*eqB|ek^gq@=BGU(U|<3$TI`i#xA&bfMeOlfqn&JabCosmgZ6a&6#Iog zdx$%G-R%6hn9lbp#*CVghZa4x{t`_7qo)oUz@331z@iD7rSL|c7dN-tBd$hRmh9CG zbQ8>h!ps{2BGLc@a?sU>4-z5t>>0ujnF@Zt{}q%6cu!s`xBB<%{adhMtvMvb+b2(M zNveX9<+h^PTdY3X8fKk~%VfuRFKFpT*(MD5s<}UI{;$sA(;lv2N3b7H38YrV;2+Lc zM0oc&d6r~OCZ)v>f?zMtW!PZKz(Ha3V9qew&I(LJKj zx&#{nX74UTw$J80i2=q0Ib{)on!$t=H6=fs{~1C?L}(PTWYAW9_>kjY@L4xaIKCIO zPo)N-O95B&gDqCDhd;=!on2#c80HT$M3PiU`ezQYd7Y@|ztT>zc*8=$Tfi6NlMf$~ zz|FlNpp*6@fXgOr4K(Q3k??KYGq!HE{xe;RL0cX7dm-ajXa#34qrj{$&flsoTNRD3 zZX&jJR*5%xtQlzqaFpqPfGW55h;<&fxCA&q?`Kn(0B?BX`WG9*J=W=y>t;#N`*LwR z8_$2eZd~SbsPb_kCvQRnJX&M#w+lHe@36M2sQU1Mz#Jj0?hS1S9T`mEr{;AhgHGRM z*5a92@%OIZ^e@kU3S|8Ct9P$kKc5rYXgxpw`N@;))z7cbegdceoKTL#MNT{M(^GtS z_w>17|L2|TDfQnS(!WXzzI;lp4)?#nzaKt8zA)fq@ufKw5xs#LTnlZeMtxs-_UY=o z?7Mw@$JrJ*z(na05JLSR5cu8GJK;Kpdd@)$Luu_A0AQ9kEdjNcFY&HL?KSU_&47Fm zS6ehQzb9!)i=!oL{toZ&K>*iR;LX08U&3zjS7cj4tT|W&DGmfM%yXmOD?AeAcH2uL z808<3!r&3t_6>rR0CC4e%_+{(M@zODr8D5$Qb7&;@t8vFq5&bO9QOdPiBz1sb%z?o z6B;gQnE>8*ew2z$;(=&sq&h4_E$#$A?oDpLV}95zcVSkU>l3T*vHf@?rF0b;A^9Gp3AFSx<=T&}zXNUw`~OvjTq9r za5ia(Q3?gxgoROYeb1`l)oWg=mMRGZEji_#!6OXH^PTn`c4&Og4Gt#Q8+yfhbd?KKK!>ox3_BvuU% zOW?|zrvM+G!H=BtF94*nK@q5eq(Mwe!>deSO5pj|1b7zCAw(V$s|0I*%h3hDbe~nE#UhroP_zK%Vqf@4sA( zgZ8c$^9AQQg?B;`aq`9#A@So+-!A}(&j2bB9Cl<~Dj-oNfJ`j+tv>~j=!K~}+laAbA;$t_&`&ZVo~ed|AvJcIq?U!iUf=B6w~7m`TOIOAZQWy6_XRR4 z-EzVYp8cOV888`!CBb!ZM*X^`d-smP{~K~f@Wms4q7;(DSN~f6qCUUjw?Be+V(jk~ z;D2n{1a)0KU~DlQ(E9&ffKMSxcREG#GmVnI!1m)4w#e>SBsO4E$PY`{;gVU-7a2VC zH=tlZ77Nmxb4Dx(hETO6xJsC}Tp7qZ{3fMM)h0B zh7f9FPF9LNlPqmP;lETD{+dx|P!Vo$`?0Ve!gfcM_!U*sAIPvpq8H#=e_$B@Cm4o_4}SponAGs^urU6E z!0CUJ?MLbXPDvERBN8AsTYtr8;DUeiEjg8`=BS(Gl%a3$bEt!mVh?|ylV5dyTrGee z?nYoLk)db4Kz2l2pahjJ^)ip;8e_q^5}U!Q3l$h62ni3O;XnwiWs@!ou0Zf8%Ff|! zhs1x_iyX2IwC0P1whGqQ{p>uN|Kj84Dk%=V+RPtQoK6fPmo$8|Pc(Lb9}ecUm656pMo4^cy zX0BkVp+;tN;-0aRaKH_g(er(Zlbv`)#0mp*5lY>NSV3(Xp|H zD2o`$Nnc%0W3m=JT5Rp6;o3Pw^l$s6L*RFlJl~*-%U=)IulAtW!ST-8bXOr_36qCM z=uzxz2*`ux?^cC(2Y9zE zygS7DxtwOiWW-G$@#k)r^O=$LB>sG?pQ!*?l-t7R6aK8((8!P~*q`&-EhuRn-1Km; zhI2_Ew~`cV%a&wb8?`jW+RUX^yS-O6<{huoa0(^Z?GoZ5sodxXWIE{5P1D|3fQ_R= zAk3vAlm9+m=NYE=2!01xHQi<~fd4#x=i#uRu}JyC>kj{7o(J>%JkUl9%&FC6bPJy2 z`XzBi=CK{TdLdw`W#Mp;fBoV)Wu2v;-`;ALr_}`S zke&Oh>&1^#2;SVr7fz$LvSx!f6DX#F~Oq3aAAE0Etmc};t2)CTs49S(L5mG>Mep>vVP2c4F60O1Q zL%w4Q{39MajY(ShbN-Lp9GWJIwZX+e&k+|AhRUEWRvf$gHza3Z0p4>H5DT4l>zizT zc}r_ctAdXgd5v8SpDDUSLh32aSEE*>|OSL_2O#rP66&~7WDNisnq~UaG6}c zgd@LI!j@03vl)+M^)0E_0zemuC?AU!1M6vR!QqyHYxVUUbr8rUqyK)Me@U103Q+Qd zs7t7Vo=qvmbnBAxY%-k)dLf9R9$fRZG=HHK+QCc89;776aX#~{H2;w{UAl#R>|u70 z*lYm8)LH_akRXFh;du+bZcuh2S2ALaF7q+wJeghwxsoZQ$GetJ$svSO7@K$n%%CKgKu0b&v+!Z}7(~R3GA~LY#c^`*?{Dbz zMN>4=yynErY?gaV4wz?3fGo2&F9mJq`cEz|uu=Jt#IN}d5pGBLM>yqnCRH=Rt}1*uzm2o`|r&5K{xmqY#&zbpONhghxMPt_T4%> zEs(wUTqL{3v#<7m#4q7V3ZD|-vhU#+%G^md$^Y;z{USOwo8s6G4|CWHD6KG(ZC|a| zH^a|ApDl3l+Z8C+@SuCp{T!jx%s$3~qrBuq{z~usWw1l12+M8}(2)IrEKfP^%YsJi z2Hs_KYqu{#Pn{bCN$~q`v(+0KAiez-k%d#FuBMBbX+m=2&!3T!|2yz@{OR*+5a7?5 zu?oLOUndAafGr%EOTj)sx5?z`#Z5jUK8&>@M7}FH3=E~f3!^M>b`>9tuT2&A9xRhM&Z0)US-Ttcm@fhNHIryIi?SuvdI5%lBv(3o}WVf$jlh7H)7<6PUhgM zzs#XiTM9$1yZ1J`nU0^|UVz8>*W9sW^Mz;E!I!;Z){)ln8JN*qs0VfZz_gZ_E%fDi zB0Q+x;rH3-4fcaJnfX_;81av1q(db(8Vk%)%U3K(;B)X86hiNCprcf@-+?cq>4`B4 zfcp%0*AUZ%y4L`k4EoHU-hc5Hi$&|pJz$Na7nh5ht9%)~THRh=q7P!lznW7;9$WDC zZ}|n>Y{4)mU`qK>`o3PQ=ntI_Ok6#J=*?uwOl$ax@`$aXQP7)j=%^A8mi_d@g4vT5 zTpaw<52GstHw^oShqMnrU{KursI>yg4~K=#o`5W_s*gY#_cR=0_lhoI;;G zNistBo_n-4`hz$pme@$A$J)pv{sIgks1p8P_|YUoh@}a+pDh+9;7S6fgqRTmN@D3! zTuI!paVME_C!`calqoY4)XLs)!Iy2g>q_A9A95feIPVP+28H4{k?SeY?$7y)1wd~d zS5clvnte$a9>OVc!{GQ|uo*+npXXow9zkmkXD~4H%QxPN(OB;*pA2{0d28h)0F->U zi~_mAyi*v;*;!K=wKama^0%~NAWSmtM%OgoQy41?@3=s7iGKEl8)-R(s9d zuRf8`Cai86s6Z#6t6ex^W690b9!1|11fI6!NCHV z#mqG?#!Dg(ZjI&LD(wx`vt%0E@~Jf1sgnTYPp&x!4W&$$41kVd9iy0LZuXzyg9rP= z{m&oDK)bWU8)5CO;?{U)tQ{_gv!4TV&6+Qv`eGdBCg$=sCH=2@5jmn_jmTj?TZlYw zAo40A^75co@)IT=w3Eal5x*LIu>Bd%6xl~3q#4*5t&%!EX)l%?2cp}=4V9G1MsZ4Z zI1bO25&YHJndY-Izp>yDietSxmui0eWHp-K81L!F#sl=_8h;|(`AMfRI9op^V@!Dl ziI|bV9m+Dvo9V4iB;i%xE?!KQw-EofcfPF7XZD=yD?Y>Co_KVA(Tc3%a+ZEQ6>VTIAcmMJS_lx4-BJtbp)2VPtgkQ%e72^sO zu6l@_Uu=QctpOThJ@lT(4U;<;!bYlT9ZAB8J0R!3k7V*QwTuJC=I-~N3Wm9T=X!M4 zdHtGfKc7k`=bD4sDg1lpg##rByi23m;_zT^NqNx)ZtTN>b4D##O z@_lJNK7i{cX0Rrfq&OjakWrfQ>+(VVu3!!LPJSN86BXF{f-;Dw{GtxxF{-{3d-y5Y zNc@?cG7k0Z6P`WwXNNp{V(q@5F4uE^_=Ja#^zhe|O?=_c9`Wp%H>9xFxj%fy!Z_%}WLlxP3&XMf|_J$uF|KlrnIJiDuBpHLX=zCXLmvyb&`|2N!Ycl_bU zJp4uve@%zq`m=9%cGDXYFl|3R-^tdzul{SRb#DJWY8{~Vuc+23r}Yb|b-pj``%YNi zIXlO-z{!|8ALXk_#3CB{?ci33#$zgB+NDx4%!Zt%%jhk_9V`usGcb= zsNp&oE6qF;jE3Kc4Ww_QF&n{>IzioF9Ml5^K*KtCzKidt-mVU-{GH zla>7t@&CF2OOkqsbq;rAxw>ra+%v1@l`Hr-JwxiesCBf5@$ zmM{F*#a}3(9M{}|{=K-hU8g@rLo=TR7Jp1XP85j0*y!bdkJ+};G9kn z{R%sc4emI_L=orp0)!x$#;N|9mY%SM-&F`9B(H}m9WNEo3Fib~fS8|6_-5usds092 zJTe&5R6`wx9Hd3VhM8$wPErc_lacB80KML#><#CsqHm=m0TYzNQ2BkrT@Wl>tdK>q z%rFR!S!TVL#pus9EP@ImMj#TQjsxc+{z-{d{v02CRK*w4@4WGd*vkNM(%sB&Out+x z-3_VbaK)a(!GEO3MDNiby#Dmq-V)AGPA2I~CVLGk3hUN*;)2Vc;Vhi16Zs7co_?0E zp|6Rq9&A6=wzj$>TvE}Nz-&VNLpiDJXY_Y2a{SQ}1!LsmFW&%K%gYO{Zt^1F7%ZMP z8X(%aZPGR%iFjrg!+f$nEUDk&^!U0`^I_bbKlGi(v9#W4(8qJq1n5uS41bTAgZxe3 z$NL7lm>J`|94QI>Vl%s{Df>^1#H}Z@bEaFWD^XC1B@g5ibxyENE_1ZwN}g_#ZP9@& z?i~MgN+sqAu4Sp4*_A6Ze98RFJI8|4N0050#gu^`?VFR|F_0=CJ3Qs@IP?losKjlo zDSYk5EkCD&=`ns4Q(dSkeH%&+U%PSMdVQz_P1`45o}z@}P9YHzr#JjToNWG<v>Wr>^pg&%}J~d-6 zjSddZ9CMyzm(Pk~eYD-mAo)oVmz-Wcz=06scdWw9pX}RToY`iZR)&_E`O2}CUxe5T zB}C3cpglw=7D!qZqHu4e6F9eF4n)zu{p}9mVbr= zGebhw_|6v?Z*=uwAHuM$hyu;Y%~(DsqXOn0hDdJL?|q4B;#s zB6b~e1vRF#)7)A9nL2|If-yI&U4udmPn$F=eIWFJ7m#!K2sSPmT|LQwir%MA!ATklJ=Nucy4_3M$;}LWx_1 zpt@W{%bV}>TRb;YOYr1|Chg;oeE#TDnqMD4yCTPxSA}+)(8|c+SqeD2ln~g<=So=T zmsJ<7v*jKe<}$H4%mc1whwDWE4TKh_@F`m{u~X=C7mnYUrm?w@ui=o)R3?Y>vlEb% z*mb3~MWE-xu3TV}vkk;o#BS%BdE`@e{WN|`q_N(Vs5JQv(=WocM1iZnouPE z&Gq|!B~-x^QC*~Ou5Ulbk%|NgG5dm|r@&&Z3c7SkA49)jOIfP#mQ7waGNn}e#~lmK zE@sC#`C#&LS+eZ%K9eB}qpn`*@_z5GWj_B!vGJfAgwn~&_Dw?M3DPj~t+Wqh$1+Aa zkpA!&SEZPehzyM2RN~4Nzahe(-b|T4T)*C6zK!n<7X_-ptcpu~`&Z}Kb3vydWbj$bjrB|)Kbby_)TlYf7*LbiV4ocL(Sh?kl4`0#vjHYn8VQP5N)mpQqrnr(t;X&o6!=xAf&q*|Oz0R(V>uvY_lClGz} z^2IXDtgN&2$oPzlQ2fSfPnq8cmYMGV2H(JKBGj^PvSKkgXpBx+($m3^Z8Jgj;m&Ar z(U(eH6Z!h)@ePBt(wvF|d!k~^mmJM|$ZCwSXtz6J4xe*r8c&V3)b>Rt&jE*o$(VbEZb53Zq%XmGd(cQkmEURnON;b&<57xk)b zX{~QHQE$n@>Mz;@`OPMpWmk8rv*Id*{4{KU$F zvvM-hDq}=fbc$Gq-n=Uw5@}-|%_bDY2_kecW-oqDUfNOlDWYkTq?O1QUOeuekTyt< z!7KlI{qg{Pq(larL3z4Lo<)3ib&wCFTs05l+kyQ)?wPe?pPealnXn^ONbq3;rrLn( z<2xh? zbh53Z!qEgR%i-%`?2xd!AEV&fxwd!_UK-mXZ&4tdKQbv!=$8L>ba~yL)t0b>~0o*0ek9qQIcl8u`qGgrqvZCV9<9`!<--ve4K|Z#@*ECY^i1 zx)pH2qM5q8(tXB(60_9}i--0ubmT?Mx_gTAFe{d{A^^?W%eSIu6RL02E__!}`^~V3 zT~wDqTE9=D>h3aYs5>iHRCN^%k(&Whch=8mYVGp1tcJL`x`&upfN$rOaTASOuS2N< zhwK8T;gmYQhhcVBmD6hVUSgS{hN*xq9t^G6*>b)W^=Axe$|AXNxsZzDD;k%Yt_1_YnQ8VfHM*S$Z?6mZ-9aF2sj)DKaA(AqV)g1-a%75Z zXbdQg<6KzEbrMnI{1^g7yHPKk>Vi6o9b2&&d^pdROO)bzfR3hvTuGQvYK26v;dHxF zvc)|Iykttaq>lsBpIXR7NKuTUdpbub>eOoii7*Nxm~^-@SK9h-kDr%pV2wTo z#l)?Ab^g|iFTTCh;%V>v);u#wa6qy4Mt*2(FM5BcwSQ9uGk2$)#}+b&oNtbJs}Zfn$Up0__Z3YZ%t4 zbc9vZ!eAD7F}l+VrQ-EVo+!u@2RJwJKRJOYI8?EeYBqyiC-I^Vq6|CN&wLZVyv%-_U1mR8JFs~= zLOk*8%ti`#zeQZ=Q6hyO(BN%8BnkxTODePw{417nk<965`8BrHBU0KYb2@=3 z^`r@riSxkAq+#F3QXj`0%}BBkM;M)%R~d#b3C*jDzUj%G;}Q6AdHY8%kP6RS-JOMf z!@LVBro}*Hc9QF9l_mc{tm3Oa^U3JziTq=t6-NFxrPdZWSjVH~u$aP#aH7n1H_)tD z(sgp?$Bo~ycq8M9H605b34u&yXB|BJ#U1LSo=z(`bTjxH`|tYxGDCGS|Cb+V6PT(Q zbqfZUA1Hj^wIZ`tIYDXcuxs>+LF{}-6pD=0lvt1HUWih>g8^oV{-0bQMZeo-!QGU< zF5$CJWFk~fr&du;F37rId%4NBkupfzsq2xv{C`A;9z=8R*Cz}8A5t-gN;-;#TXhkF zz2d!4+a#i(nZCK|7VTRHrO*OkA*7ec%Uxd9h(A)JAXF7nmy*{JYc zTKEMURSp$&L3zYUFWn4VcsBoeR*2_d?+Wvnzswp9^?#Vo=S7~FF1f1rX!UNDf;{Su z-}7t{R~A+A?vrKv$Mr_AVtrxDJG!_ag;FLvolfVMJCJWhJ?Iryv^u=Z_-F@nu>Cx;lw5$wChevL^gc!HXGu% zNSa2+f;ZFHFyx0>@S6l{1dw2k;AVC?wQ2N~%JGHu?cSq$ z#TCnVj-J;6e5+{UuGn<9fLDx(3qF;E(#e>-jjFbQVN;|-fd-yzQvL#50I4)do0qw= z8R=G0^J+~UQde_L9m?Ntm4Bvz@Wo0R*wE2|&s-Klv2z^_8l89Z$A$ds!0PBI!>Er= zcYI`+0bHXJpcD`qGwWY=TWg(H9h3`}am$q3OAThs47}xvFrQ6I;$qAKX|Bhd&{)N` zF_rePpyF#1{~GkGeiAmYbvCmfvs&4-vhk~jU7@?$F)t51X=SGmGPPD3K$3WIOpMky zsay+1XE*&Fx+oJM6?-bQ)7}%xyR0_v?#Z|-^QMxb$8@xfZSF=uQ0H_EJW;_!q1+TO zNHhvqF!d&?gpNaYUDa^Mra&q5fWC%#NV`){91Q8@y6dUizNAh%nK>Y5TWU*<8sL>& zCrL0O_1ExhUU&Kn!NWbOJ^)CX^Zy_~>4e#(AQL#9ji<8SjCi^fmfi@9cf7BgYwt|< zZ{$lQR`YV`pNP)~TTdUA=~xjAjcky_;Vfg z*&+YVU7#2TD+pjpVap$91Zna3F_MK5C3i%HBZyk1;x_5IGkn-jwqO07MA=~gvNT%v z@DtuS6gzdT3^q-e;4&U|Ig-k#J~lEfr|oDrkY}Ji*Eqp0?BO-?9*q6rf`{{U4x7R?B=V{x#95M0NEbs^ZrOF6xZoJ^hH-RpV-U08 z0a@v%-Ali%y2m%5))rt%OMZGmgYQ8lca8~uORs|V9_#e@2?1{D`SF!2$Hces3HrAg zp=_C9Z?K9~F%^Ol7ohDR64iHLLe$!NkAxMv$?MloJPdC1cn=o#XmY^c@=G1k#4G~`XZ&P62dDfiFKCmU z4?cQs{!5Q&pO|~M=SG}2e%UDA{UDNTKWualmlW4dMjJma~Bd z)Ov750dw#oACnCVmHyxBc~tFMI-rQum^XY1(1SR0rPr@BH=!Y%^5sb?! z_0u*W5zFcJpfe^t>0DSfZ5(fDn4J?60qR;Xw`bNh7(cjLAG|UYfgAtHnDmkIiph2T zwwP#0XmM5Mor^2r?E4{;??Z9C*UqySL_yr6lZ$Ex(-93uJ3qSZ(~dWGaVXt2o8;6H zsLfM20ceZ9<@@tX*<=c{CC$f77+O`_831r1vYdHwo%m@gW_iMyWGtd^4%95l1F|AFDyIN_E8Q0)p;@y7~fAR}BPtwqXb~DT#93h9FCY4XTZm*u0pm zR%141=@yNUlkh`yg=m+%sXn=YWt(#V)Ow5BqggRC*tuNII z7|BFTbaWtI^0?hZ7&pu(lfSczP`FrYJVqIRZ(D>~s7$e{m(Q|0a9UNc<$>Zh(du)z zTvV5@&UUki7(upDHXO5e7hkN!?2DZO{Fm6NO|ae2LxOEi9(IcFceZE*2lD?qrGQT4 z+HSdDU69$ozW!ax=n(mX_0_A+?@X;u-A4zhg;j<~2_UEtK`HI^fBWPHP;*epHRfNZ z6i_*>E?0kq*094LtQ64W`jCcu0kHGG`Vfe^%v9(mT^dD{f8sJNU#`iT@(>Q}|2)fg zI5NYa@d{2X9{QE>ESZn3SUe|mIACTD6}~(%^Y8L$M$Em-M>`%?fN>ZrTQxn6B7j%621sU9aLXz>E&;5O8CNtG+!J$`aRnhWz zX;&)VW<@ z=a8g-wXN%-qvT&s7t>SnFJfN6bLtD4`);WAQs$J%dZM`iT74CHl~Gs>2PpJHl*Ndy{#b`2Pt&DxO49=g{6>| zx0S9ekH~&amsFD?q3{$t&=YndzqHB zcVKbMr^CTPK5mn_rt;H|cWy0Cm>}dwX@cSzpWMhWo(u<9@^|EbkT{1F0y)Z!Nc<5n zMw+UwW zOVSneg?E=goNMsr>FMY>&TPi0+`a$9EtNX#+5kXcd_$r-(gB@39^0`BJVWDbKnlWX zrQNS6Gc%K^!_agSxHGPb`4Zgx_VzS&yjHXiZbrEql_EL2y)au}_GPU*g;Hyv_hZKLh z@wb$h%oeT%XGTl9%(U)*n4Zu}uWBo=T+v1}?+)@p2hhY1rCk)ur`fFAGNJ14ns^na zMuoF2A;8vjwS^hiilA+QAnYHNNhttf!JZw$WwWC{-~8du*9cdtFSmt0QytD1Yox9- z3jNTJIAZcwt8mnTrJee-=MPK;o%252GcARx)G5I<=XrZ^6^2!63$SK;``5dRpi2C2 zzuw`0(kQq><5#=CdNLebh22a~4)uftVVwJbJ`^~9gfqeLr|EqC8?TO|9kCGK`6dGr z#BZrf;O2VU@^!FZiA%Q3B;gqC1!R0Q*k zkN56=k5O2XIO-ADYzBr6f zhIg7W@FMmocK}a(qiMs{q6Yl4QqHuW=iFs!u6ewmXMUuNOK~wklFrU zOfS8v)@=$IPL4$`k@U|_x6&!C^_K-r0*F?!-PBu|iro9JZEg7B=dm^bwV>Jjm$EjL z)B1(14R=d@5=1QCHWxenagvXoNe|rTh{_#>#v>R2-Pv8uf1J$h-d#PNo|2Su`Vf0@ zYKArXEA@NFl}q_WnMsk$KUz0N$tx}zAQVV?iO>8V8@$t3MUjoN1KsY!`|k|Tv-yP( zEw|@Fz^)&PBE1=Y+?5`JLPegb~Aa! zAj@|JDl^pNXF#bu2ZP9+4+W9^%R}U%m3xfcrnSG*=6};%YT!FAKHl1juNNxLy#4Cf z{#A^2^ZqR8MMOxBuzx40TOhTt@Y{Euh(qR`rs71SV>UP4p8#e>nq5@8Pwr4&dw)0^ zuh!p6)%!h~D=%Z55-RD>Gw7FMZ_r`UC25x>7@bU@W+`uTB|Xl%B}1 zu$XG&3x$seu^&^n*eV2Gc3fJTlBXCR0t(}ciy!Y+%EFQqu@4pxJ2L&KnMH9B!SSI7 z-jqoyBu)t_OpDY*#e~d>^2h0ur)3R+K3HIPd+NDO%rDdQj19P;1m3e|tLrPEaWHNa zrNM0Huc<5!jyh4hNpAAzc0=7WuhUCx%du7d;UlF?3_i9w7kzulMSJPNz#o-9&6rjS z3%W!rv;+;1gYktkTbw9R{_?;o1yzq!Mn=L3b_m4W?osTbE_wlhn}gyAOi@2hh8>Rr zCN{r#hPWi&3^@fCG@`E+S+#CkS@%1~7bW|O&AMQV&tQCg@JHo8{ZmMS8lM7R0a(MC z1CkQPTr^;A*fV5qP!F1)`>+OcUuO51?vEXDW&Kbk9|C6@@<^fIN-Kn2;!^jWjH`K{ ze)Dug&+ZH;V$|%`5)-Zqe=R7Kf=M#-(406|Oz{?H-0E*pwE9Wu=AJbiQ85t;@jwJa zb*#k=!}SHKkP(SFr6Sr?b&AZe`Ox5#U;Uj^fDit=5{=h8pwd;v$8{-KhDQMqwvkg) zP#~Q;;a)edR2(5uIC9yy($n&|o=F>|f})Qi3=gbxbMGp8uxDH*XMlWrN;Vk2X-vlw z19yK1u#P7$@8XjHqkShuTct@h`Ig3Dk%2D=|6bWo-XM}bbMHb^>U}C3hs?Uun912wn%rNA z2=t6w;P`{YpFD&?neLI)BV}4)Kl8#l?+P{X_gAhMel2daKX4eRwJIH3Z?9i_>({T_ z&BN>$arT-uJ}jL#w@l;%%H>&pa74VRGlviD`kj^Ot5e%2E20hQxcdlSc z?NqvV6q4FifklmV3R;&I>rw}OTAQ-7LZqW|gN8+PV3we;-E66|AB&s5Sbo??1p}5` zsx3T53HE3LI=gNglQS?e445^z8uY9ki`BT|g`^XpCUkdbV+-!K#ka8{i3g zvVsFM_bLap-P!%ye%F=23d+Br<^9+)wX2t}FJ?OC($FOMN=&c*q*2y((_{rK^5 z-1V$wDppj`k2|rUf^I#Sy~K~AWumDT>u~u~VSsAvgjVQG+R7y`B_E8w^DJ^C zVq`%VTq(qn{<0G%RH>;I%P9WV^N$-@f;~DLro;C09?OU=;aL6)%qXH|K9yf**1W*v zw>_IhFPA@|#YY8&7L@!=F`weRd=pPrsm|v9sz zf@kxp(*`MepUF0Q{xH*Bqhg*-E~T3{P zL_-d%63@sYoKO?JjfWvo`RH_d{DV1t;jVREPHROocOu(+F?rOQ0xmIYsXF6JTey(e!v`?WhYe~XdKiH=h z1~4@zOm`~M9&CkEZEliVM+zmIxsHD8#dtOU-_|rR<;>%=*>LOGbVdN_ldXGy*`fs2 zi}Cs19{!5xyYpsrE}h&y_0ZX$NnO&PE+_r(;bnYCn?6y&Pw}n2qQK3KNRC3fkgppg zucq!rJ16b_z!i(V)hjhR=hf0cNWjNpqxHo-- zOw6=jOU$qMNlX)5-)>YlvcDorXO@(?c01T6Hfd<0v&8dl)~~rhh=a3`t_X^3CKwKg%N{D1?7=b z-Q-tCIxq|c<{+^fB&Je#ycu83$eI0K4rVg>V}C|=s^jH(5tYI9f-hQ z*NA|9ONan9>p%odN{^Ojq@U1LLF!8sf_eLUwmMImNb0cu_VSg8ATHl*$F^WLj6^lX z35ZIkVpy>tdloWmrl!ava<_p~j#krHbW3sH3V1cO_AoXbsc4`Q6yyv8FDx}+5eSFl ze)Ay1Y&nT~MJxxd=&3su?}m;lUfyDGa3w!u07K9>@lY~C5o?6m8hX|oq0}@s9c2vt zGivh--e*pj#cg5=JV!%yLhO4#BlV#W+;4}>a4~lW5uh&HD-=J%%i_PkB8vcMYl&%K z{TCdi$Kt-(WhGM7zcz?P&6j7d9Hu14K0;nd+0JzbF}F`O60kk56io$JGT z6;6MFPlYZ_L7stS&jb}-Y2n+Pb0uFV5^TD-&_`5dEEmImH#d83PX84D zS}qq$A5)%U_NRu74onRA>uaizyfU`(Y;|K%Mb<1Au+G9a#knfxDaDHJ5I9{ny-E2@ z4Ysv7GNb+RaEl}fqWtUS`PTReUY4*^Zzi+V#4w#eShB6*uo72suqGtc3?%ZBc<_+F zq#aCu9A|x~-i8bU*`;eRT*8Akn92uBEO{m7n8Cx+2D9`eBRPa7F}S8gg?Pk>|0e&< z_-wWw04}_7CQH==CHjM+;L8a&^lJS>dbYhYiV|DQVNrh4ek&S{hQGCuS)lU;ms88b zg^05Nl?{l%YzW3VxDZgWN92c{fj|>_?u-#Dey|!|8S5bEl)OkiRJF z84hm`g0PnsE(y{)Awp~`4Yswyj~||!5+%c#$->QZxbsTPM1P93a;mhfR@{*y4YEFB zpbBK!gm)?GVa-cD?h=oUHe*@gT_po}IhLA+z$xm+=?D#qaD`ryR7(h2ke-TwWcfPW zJsvuwt8`e?5Rq2<_HON#PLfyxtj-L@|~mn@AlRbDr$IaH^q|(JBBi5mhsrqOLGthc@*k z-0HA~JKq$3A?=e~d>*-{pdGOU0+9$<^ruYp)ka5s))Y=eS-k9YXFP!1s3wPEN$rg< zZiCjbHRR?I7pENqc1@&OWMI9!xeE)K<+62|jVnsxw`W<3pfC^e%wMPh#B-H$t*(Nr z@#^}b2`>r>w@_LmEKT*|;E9>Vu-G81H2}T`75U~lGT66@yq;qoAB1?nK_PP|J{Zb4 zS>rZ!9VepgDg~_WUkXd8s~hRQuP7%f<$0llB|M?lr{KtEi9BVICm)#kH}J zhH|>W&}RFw97Sc=Wwz^Rwm{C@v{@Vi;pRPbQV;egpAPr0UE7BNQ(T9F#;;HJ$dk3b z*trpBcszM@_GEj&?rp&*37d4&`rNi2O%QC)U^^dgX=ohiJoG$8v6B-=A=<1A`IywC zTQg7#E_1XU`**c#d)TWH`_O+Lvd|4EQm8{(`r0ePwESU)EFR! zG$+-D#%UDGDAl;@kie2NkTRi9i%jTKR0|&T)RnIi;!G?Diqez^oz(j)yU?N?Al=o3 zLK)?sMathtubTiYGGE4Y<|)_Z(vp{B;;*&#)`c`*?yWglS}@rnGFi%Y&eg5WZVuK7 zrq)_KN+jzFDsHDSDxL#@rJ6Eoy*bsM7emL8ctf+q?$m1P21{`fG^?SCi|{gltFAXp zA#p)6g4STHMyVDQkNc)2=`Ot-P&duUrl94VhvBWUQizwEJ%x3ND z9*Xky&F65Wk_ifDVO6F;c>}+P=GSB$AKBCM{kYx>yz$^y{uc5T%oMLo8G{2AS$ynF+XfU8@EiW@^Yta-A!Yle#DB>+ZAbhCfmFFza4%;Y8#K?g!>#qudvj%x%Qc++J3$UbO>rqI# zK*FKD#T=<+^5XDh^`vB(Z9Ng2^O7SQ?%%}~H9m}E#@F?UifgsA1gARP``d!Zb^$An z2Sma~SR;1n`@Er^`RmTH#e`dOJI?~9zp+V}eo()~lf*w-+nf@*_JPY9z|xpVP>iCr zgm+|1ihuYFr0-zrH{&FlNEBxmbPPVZW}`H1waWI3VxGdZ+=`W^$V69+$Vp{jM;7Hk z5tkFK6jfJ2Qctr;X0u`p65hH#RzKn*yyu@1kW&v?BbOd+?9`%azAJMQXn}jDEH=t~(aW^^N@u!{dxJw6|C~{t=o;n~`kDNf4KDl3SQr$fCK7O=7#aGR8 z=hb)E8g-K8b%-!%i887b$hs@SLGH1KS1uC6Wt6cyY~yd|B$3$@mBUI5jNEI&UA_dk zrE|h?WmmRs8>X<~EAccOTvTz%fr2Y3*)8if(N6-9klfguCN6R-ka|LPbpZIa^zfhH z!0`8cot%)`e2nHimfpOhkm}Jj1Gc4+P&`b7OZd*dsj*!5J3R&39+EpWkPYe?JXw!J z4j(rQ+L%u75#5WAgd@c#`y~>9rd{)>edl5$?(I(A*QK$qm1+`qtclVza#l}J1}Nk* zI++iqCuFQN%_C8n&k0Cc*dKzdU3uNhZA~RKlLLi|e+DuLe2ij${aOr>DKKnpf1XZW zRI$%Huj)>%sjj&U z=&61#|1(E15qm0Sa#R==3jaD}Kk8s0H>+xdZ`$P}kd2C|iijyt>~W zy3vLTX38`r=zh?lcP}0qvR=^Qjk{LkOx@I#DQ*b6pRuF|h&3Ti%t_(Y)JIE=z6(aU zYVu#G5T~SRcYqjz4$`YP>&oFdDU{nQ;m0jxMe5amrARG`Fxly(m_1ZGnpZ;q%3MBA{PtJJS+5tV+FOtGjb7 zw{eVkPZy|Ik}q)IHfzAN!&FfAuP%%fY;Tdr{(<8EnW+@P8tr`x?NVsGDYmoOPgirl4*qB^GoMht z`>*!vH?RqRayH?wkmUdH*A$1EOy$45{U1DB^K*Oux7VQ9(*yJ(i)r@zDrI-syw@Rc z`vx_Qaf>@XLnD{@9CJ~KcO}>(nUE9_D17t>iWKD;Mt22OP;Dzn+w|bUKyK-kmEq>< z9?9XX%ub!~jYsqt*kRp>{@@QWV~qcK*CK~P+oZAbzm4zYXVwr62$ywOtfxDB3HLNI^#!*ct^B{$ipPx-$?#})(fH@F9a!M7~ z6^6ppWO3uc!%!m~pot}+yjgxdzfsFj0pjL{d}lp5k=RSw+a+BCF8@5%RAvvC)#q7P zvNfIFkQ@El`v85jpy`>&EjyF@4Q2xoCk4$>nPBlqS>`3y!3zO+myEQl z;{QlzNp;AD|8@=s{o8f%(XvE@CS)D4V5ND@bXK1|kmT_2K*7?m)b=6Fwa%brmA6ga z{*(AwVV%o~$WA+Nbf&LmAA`~?PMLwT*|8$(w0pjtI2pz!?p}gdpLd~jX~kK`fsLGR zz+*hk(K#qQCI4QzG6Se*+vL*U>3}V|l5~2=>}86LaA*b9kdvx;)YGfiuN%dJO|N;6 zJZ+?0Cg;0nZo*oOgjGP4QPt%K8_2+;pdAgAd^jTT?7$@W;!V85cf~AVv9Ht4OsQR1=~N6-j(RotG8Pn1gNj&h|6m6a9(dSJ2oL3n+P zUbwQCXJ=#!V=)9QGa^B4nj1!Mo?ndm;Cgpw4#6PMA?!eU%_*v5bWKSDRXi73?nzG# z@lX%tEs-bW&4qaMR4fJF#=C&r6gyvz+ZFcPG5T@e_w&LHEr$ZPdyuVh`TF&Ypwri{ z&tAViHk-Co2v`^KM~mKySr@3N8Lwf|ic6*(2i={K049eo2&01;fD|9Lz+n`~o{I98(RT}xhUj_oTo z=EU0bAC>>_V2LLc)ku%FlSd%5ajS^UmghEt45x+8g#?e0@LwF5`4FFLgDi33P6ISZQO^h9HCY!a-O} zkGHOIb7KoX%>Cdm@A2}ko_%tShxh&AT^@d1 zqK1T1o$TpBjO5p?<-C_gJT;>G$%7*f6nUj=@Avx+v7znureGK!e1CTG2yHkMn8)8L zoOke%zu23uz8`WKd zY^YWFNt+pEf>$X`sB6YiWR9_)$Q=T(pF*8blFM@zeYuJ~Q2Lat6Q>p-z+cnV4>ILI zZR+%}&eN;G9115}klOgKpFk|S!bE0;#EK1vaeg`_wXAh|<%<1by0cr0Iq@(ni$swt zs<2L!)Ln1R3KL9R*OqBV&QP1yMO zvS|O%1hdJ(eI$P$vm37EGE&wpt+ae`$MWPJ{Gep+T+b00O^By3V#{-EHh)x}2gR)5 zJI>~2!ls`j&~8t<4x$+}CWX+GEKlXB^;0gd6gNh7Z5?EDbcx=QP)7Ui><&>KL<3yW zmh0`0r=IFCqXs)FF_z-%A$b=!4F_0{CsGiRW@DFK9 zsA3#@9CN>|AB+Ju|54qEp?qTswE7kd-ZD8U}c0V=N>gOT4SU% zh^_k54?Q#|-6$Aq?it+~{X@641));2c}zfCJon{cF(h!(Z5_6c3vJXt3dn&W*FOG#y|?mB5yTwh*4NXNz5`vo>nD`C#MTOH<3BIBuUu3KMD zM|{fF!R$8dw)%FhX_-G{96i$SK z0ENw4e4u*O5b<(PCVQ<7(fKr}Tow|JVwZ%$TTK{xWm9eg+*BjVM1h&NKHiBg`TY`( z|AUF0!#Bgn2tccfC#&zfeCqIcmq1_bssx>c&>5o~EgiuVH*mml(#Ne0ven!kKVRX; z&h#njXwC?mT3g)tkCx>Of1|I?<-7oGWBnbo>06NFcbcDZD`@mAd0f1^@|prC5zpX( zUw`pW&jQkO=>iT>k+lP_LL)yPogBm@CFS|SZpn^BQ2zCNvZk1LzNaC)16WkutZ4C# z-gPwrV9>^I#J^tiDD-bjwiWSo``4fT7O38whV(+)-yq=bY~Lws%9q5$bnqWL4;Ca> z)bW$O!_{Q=c<&H}%sSo(xSkwOpG%3z{H8~@ByWudF~*1F2zWv7#xw!=+vv3vvx%v= zfnZA;O16f!piUMtG_>2mT|_ai*yeDn$h#nH2j zm5EE)@(eNPG`{wG&HR;XWHxntoOSn%jT5Kdx010v+(8gIgsVzFs<|Jc45`*watP_n zX;p@TEC}-qwk$-OYSaDo?qjSP#2@;;NaCcnx&r`?e>R;@cH>zaSgx2PGbj=#ET?xT@NCt==BM9t8RMa(bsZHvB>e}$zr|WO-Zktqz-1aqJ3yE zx%(cHPmoIoo(+TLw^Pr7WN{4Qw_r0@*^u|6#BP~w29)`oP-ek2-O?8md3x{s_RU^r08vov!R(I(z*Z_PgfFC1J!QiV`=#FO{K1s15_gms?*k z9r$>YH6jfYY;a{|N~{)tV7?^Vf)sl&%@+3Xn<4HZ*9Sq~cGv(HSnRO4m zd3<7;bJG7Cj|23baK3N!#er+S9{c%StIGkzQa<S{zoJ=_s>JFCA z*kouQjF-#t`PRa$f~&2QGmJh@u}o1#yoFlZJ6p~Old#e(KUR8L9zYuh*~RFVqtp zC2-U%qN`AQc+BnnCUz20{goL^ISE{~U&hVck@S_emZI>am~*M-8Vt9>%>A@UVENtp z`t<76orRKPO!!Z{uNMZk+bDfFKc>KmcQsm=_*1c~_NQ(~&t_=~9;){7=LF@{F?t|= z9#ICI(5t43hbLLN^U#Y(#}%e@X~cXP!>Rz9dE{RC5*+z;6LtnMTWP0Yzn4UcUhqpN}qu@lNa~w9>h{PFLI~V-Nc!KQDyVy z=g_T=Wk~sJ9CqsE@yycHE}u=7HwLguTUozv4eL>c1JwIS%VM@_1wkMja^XUC7rP%k z)b)=&)*1b{zw)Sf5V$k8xZ>nsf4mrZ(M{sFF6=J1#LxqWP3FOO}cK#kHBy3ADgkrxEEvp;K^e8H%Xr>ht9_C*4q|1G`GEi!$iA z;@<;(`DlA_FvgV#{f@}A2BXcoQa*yeiU~Z)<$1ib^9YsbGx^qm3fuPRO}3$r z_hha}&#wG?M zqD36(z!>NMl%~B6YRI8Sym}xAtc=Rw+ljP zZjtB^0tfrNC#KkZ`htd2GTZm@UYtM>iR`H#*XWTnhi8-9x}P_9ha9WOGwZ?*{aqzo^7}?Gz;m#x`vzb( zjuE?e#tMd5seAsd#sW z$_5o}{(hzC^k&RY%Em-H#Pdj@@D{%-#> zXrs-%rsczviUBK|sV7zHxWj?+dMh0E2JWXAq3< zqJ|}CiEn>MEwL+r(ZaZFVrfQPJ?mQJ=6e@1$`)eu3O#eBzx^NcE&G2-jk})m9)+#H zXlZTZc`$iWdfN_FwvNgPo&vij18$9HxW0H^UkWs|^|%01YCFrtmlU`_T)J$ji(6By zG|e`~p^9>stoIyMre?dd+&y2&;i>XV7=1i>yN>qJA4 z>@rYrz9K3Gi1nyF+%AGon+C$ww-a`o z?LXZ>(>G1HVPtuGAYeW>gU031%~e7moH#R?0FZurC@2RxZei)EzNJI8i#r3%LNIN4 zr{SPol5)(WPtAm++s)%saEbq{$?2jCUO!zkOxP9pNBKi#YF+*YXSyt(y=VSy!Jcfk zf&Qjh_Y}y^yz`Lx@D0YBk#gAy84^6fLUCoj#YcevMTM@tSvLX(D!njbX`R)fvY4qLH z^?&Z38IdV-=d}twNF@S!p^1-QDf8JQ%zRQQwsnLhho3!;=<0$rwIN%XG$Wn*q`rRJ zSv_SGu?fn{eE4;Pr~avrr{1f*E`rs@H3QlEVzRS6h)@M9gL&PUU1$2Wi9{I$7#*%> zT*eV{wMHl#eRk)v`rwA)(>9}V*k_9@PXF17_Tu5+f61LjN&3x8$S(%8pJUUD?m599 zZvV@Eg$jRepu*pOAyinuct*LAx5R>S@|Qt~Km0NX5sK%CVgE}5oPYSGz!`Ojmj`Jq z`EwaS{$7CGOxL2utyiTvkhvCG-AA-8B8Fz|rs^FQ?CGoDQF+TX^p z6ZbC*T|(Yo^v3c?eEcQ{@C+ZB-t*qmF*dcpGn5A{M>IcLE?)5My|YvKi0vJ%R<|uz z7fu^0M%9Q0DrF{x@x&0YE{FZ0Oe^FMhASKW6^B&&`__1QJo=OVx({I(KUs|agFgyG zmAkg-)3luCi7(e0+a1#Vds0P$<@5*`eUGcBTCdLS2$guZX%e1bsO$>v`l!y z9Sl6%H))-XRh*yKds>>*JQCv)P{r78-E@GoX`zymIrNyt8-A(&TDiDy7q~?F3hUei z4x^4vI(NylXPDipl;E^)x6Grvz@hrwOzhmWp<5y`5L8bV`dlJ#%h99TSd-jvqwTWV z#&V$O0~gLTb9=;@M%h&y=!ao8m3Ym-ACAN2fB5d_dY_K6dvDzb@Wz+jF7IkREbWvzb%hP=M&STW<@At;R^%u|`shCXv!<`V}Yxa|HG56>Y;bABu#r=n;EmxBiX`0Ci zZm9$NX)OA37Y+QgJTvn-7w#2k0guJdrBQ1u2T)Y&Ee~ON*pdd652ali;veKa2J3-z zh+1$m`1#tBa{2v3Duk6WoB}wslzeVr+Lf+v%M^Z-^T{q2aMSX+p07&@hh{Kte-3&P z{ES`>b7(aTlv7tDe{UYL@g#Lnh>Tj>LvHvONm9XLY^;+a6nsN#s5H=~-U2&1iY0;# zPz3hj*>dLL1%r<)FlCU>QmLMVMLY!qU~fabwX)$gjGgRYn@1}^ETZLHUq-J2@u~eP zi~R1&SW_8KN>92J!5EhKz5}HqgNi~YEKxj}wsG~b-#WKocx@up`RfQyD!U|vN~Pac;kb4!2>x<+ zJU`x57H6oAt)}dvW*o(i9zI>4%(Tcy$1S|qB26I}gLhoJIQZ|ft@n3Z+@#39ixVLW zyubT~-2d)dEne|e{XL|KL6?ojb%Evs%q|kIOHD|+?}9Q7X47Yuq`I*XT_;A@Z8vpj zTX20mb~3_AUQ(QGEd@$ddt+64*$t@PM!}au(cn2Fy8}}}2^3N|^QsBJJl2@V8TR`8A@F`Av z@3RFa$y{=}#ME0oc*^CBI{-N$(F2q9og8VAWVCn!lPea_wn|we04-b_ zFm*?h(+jR&Z*$m~H_~^96If>ItkcEyrxZ*D<=DB z{soz1P@A`(a#EE^crWOs2*O3TR|oH``>r29GXX@hu~>(n-UAoChaM?7%fTbNT#Qyj zF5AR8abkt&nNqXiLJ?xQ1r6LY=hF!iY+@6T{BoWDEet+@xbVZWhbC0q7l&P92!R!sM zPEcR;sU1y$R!qmDCAp$ORr_yBMS)JLWT>;an{;tmb#zpvw&FmUw^7F@rG`+OQTVM? zqq&okN+f8t-(Pwn$IXd2kTEb^x(lor#VkWOiWzjYRjkeDv@y7~W7;9w;mt63hP@AP zLKlr4N;uKibtf!BDu8Rg&|+;@4GL{!gP>Gas}i!K1!ea-tny^6FJPK#Q|)XI%y$bX z3eSL8_J#jnvRW6@%8Qem?w8lxrN5=>C;s9GOpNzMQ!y~+XkhB`5&K)`Im#A-#%E?$ zPKl*tX>q$soHPrUw_gC9*!SZyl2=kJ{ z4uVeiRk&$jYl=H3NQT}?3}{K0R?y3ZE41*j?ikdsEXBYm8pLIlj%KEsO9EyJF)6h1 zZ3R-jp6rXP_!&zsT$~^A^<5&=qw(>R$(H?hx9o4rzeO{x>=3qKtOP-qRrD)~w@Vrc zj>J9Ugvi0q5RlV=mIO!zA^26@6_Vq;T9|(!IB<0BTDL1yYltx_H5Z3^;CMH_+Q^}I zs@OBNj;eK27+!AkH8!_I4Bx0$QpvF0XTj0ZGBCgk?OEVKx&NzlR~JUKEODexyVFRO zJ*9)@AXW0G;-F#e!gdP>Rh_tsS1vo-h09;URJK&EWuvT{D4$Z4$?XaXx*$cc!@3G_ zsfKk3g-jH7017U*2e04Oal0?_pn=HcGUVcLXg>bc(=Jp9m+l9eYoJ}-qU0~>LjQe9 z#(y3^`r-%{TT!4bG+*@CT&!F&a~>x;+6N)I+9G3uVuRw~`q7mHS4(k=j`Uubqz+yM ztE4hFM+4=+L)XwtBdr*!nHLXgpFVXtf7fZ5N+WEk0K398Zrblm#y#~h>(Sz`?d z6)4fMAP8ocZxFoo_|fjlz^ignc*>F1kY^5YJqj9=f#PGVoy@r9wgA;ad9HgPVj~$t z!`HL%qsc6u1tu7`T2f16LV-E4eq@@SS?T7U!x`wDVBM!-x+J`6 zqG;M$=b+&K%0<}Ox_BUOreT`5c7?`qk1C3idT(fjhJ!$=c277(0}E~RGZP-*ftZe9 zx)m=76gh)7=#;qvC-PSLa3-ZoAqxdLNcSqFA*bwF?H!-!yqBj|3Vd;E3Na#4Q9~*? z>pQR?INFAJy+wqDS_3~&#Dl5&+@w#E=Iw#G9zc3~G-;xs(RU%IPK%W7C*Ef7TK!e{ z-WKGu?YvR$lWkBrP;@OV#&&$TGi?+yZxe^OVlmzOC!Jz_1hLdVD9&(e zc|N(@&Q6e-@J^wkz4b0!G+k4-&Ich9Zs@>xg%Pw9`q91Qf3;c zFuTK&KOvLPoz5JwY8dpoJw2+##LOJz zc!NSe|1cD~fs|Ri*R&$RbXwa%2b|^G6(NsA!~Qh~S`jc55+yb$!Egxy5=x8Z!)N5t zxyWSKF-?vLHSQ+{T__PmM$P$9lOfsi%00gVgPh;^h~aIL6m>*s+HgE1v24JQ8#>!1 zW;U;z5)$EeR9=PKtXwxkm46~eikTh zPu6$3Jd`~cVOL%-k0z?|sFP|uOBCW2M*kCpNO_`-%<4%PxfLgApPmPjJUKQ0j_~6j z+zvHs+TUcZNfAgKBtJ>#t&>C*z&FE}jg$23!oN?us*di7%u5l_(|XwO$=;yYmf2!WF&T1H+u`e30RCAt zh{wCqsxbk3$?3sP9?nmdNBz7LBW~&T_$?uNf0I3DzI}`8UH`CWR4KdX&;G%)AM{M+ z7VrAAA9!}Z-qdgblxmFd={Mi;Ddbt5$J-1-696mz1Ni#}DZ_)$5no;h`maBj1_U<4q%#`MPj0-{YU zW%xHWUOJS~1x(Pgk$h0LycxbcSTL!`>bY2zA${-Y>2!9i6@CwENj*DHd58nq_{IP! zV9BZnqcQp0QIAl_QoifsS!}jcXT)+gtUw8G`$=zuGJ83>3?WR!A2`qFia$oPuG=dbHDLTLRsFO z6D17lfrFRLu}d|rMehO&WrU$um_Z37?YL(w_3+97cB)L+#KWJ;(r`90^3@Oe( zZbP*hVhPC-dt|0peOYJmyeHyI$~fVVs*V-(p!HoC96P-7v1aJ!^#l|yQcS*gs?RWU zOk^qhXMv9~x#S1T=9$q%as#0+MPwqd)P@o7@23Z1&Hq$&-J}qExHIH$5mNq{hh1~b z;|9P!>P^KWD0q7X9J!*7@9Bz<#)SL?pT|fJ0%8YbGnRlT!trUbV*&gWOf@=Afl#jF z2iG2|9^QlfR5}4}Km{)li9`p~6UFT)*Ur91q9mEqsv)`A-)INbX0i0j>L#{k4GI36 zkmmvGoT9dUu;4$Nzl)jb^|_r@PnF0=@+!`@V|!Vi7$i#z&mELmD`PKG{ClYBj2j)8 zPLB=^RV6D7LshIWl15D!#dk8~g|5wcwbO)G_u(C;PW;arB`;o2*W3-VOxX-z=u_Ve zzg--B19}-GibIwwK~iHWJ4IQu+b*XqRj|zD=Q|46^((Er3$M$SLXuM;aQb{0Ol7KQ zO1BRlcA#Ap?>oA&8#q$j?kSY3uq-g$tEg_^k+IaWva~N-tb39pRe<%)&h|@~(VOo8 zNpAGH7MuX_{&2J|e>o_2tl&Lh_#@(BkHS8(1TjUmnELWy0oT#hU-rI~6}L z@jfl*r8i9tU1;YY!2|oHcF|XEPsuc3qXI4wBJ0~nVvkg}%#)|J`xy|KVR_YD5zTds z0A~SUK0n7Wp%Z&!gmQI%{K%?1;L@KM@p@VU+UwU&<~55w3Or1LF@F{N0YdNB6CH3u zlIdU9OP)|-tF#Pclr+=HkQDDzD?47PK-;Keo}vN!VCMe za7sOP@k446W8$Sq(K$FgUQAYp*v=0pFQxCo-lE*@z0CuQ6L~4PLoUFAVrKm8^R6yi zN6R+ES(B4}xuAdRbKuZc<%t7xn?*S&Nx$uxmXGYMs3VTH`-HT= zAzvA6op zrc-}m3$-Qa-XuIO5)Qkr3vVKUO~%cf(JFW;1S`;F`7J0l`gSqAZA^##b(6o0%G#GN z7Q!9a*6%|u-}f7Pe|YY;|J9K1_Ni0!B_YhQ#rd6Q>QCagb5-<^b@i# zwVjb?3|I%wDHVz-mMl?5yqc+CHIW^G2vJ!JcK@+h;I;B(HyFkB67vbUz|H_$p&cKDbscHKRzE zOOgQKhMj~-IPJ@QI)EglG^ao?PlvHan^x+X8QiJRItqj< zx!ukXQYeKn2{#;xNOxg^hyyHaN#n^>Zp~%|+F6e|*C|*##4B!?P!5ENdSBWoxlsF#n3u{^i=%>H=^tYe> zdVgO8u?M0ZCp7R;8-W+D#R}W(S+k~IP^4}?sAkHIU8Zu3?lB>cNTd&Rw)xQ76K4b} zxYv~g+UHF$61FsHQsxdWK$*l$)+m#{fA`g=F2KeX1oF!g3h8Obvcu7lSI`E}AosJ? zVT@F2*LaVop6c8Qc!#<0{akJfZ*Vb>1mh`{8HvmTpQ&4?8I*x04q{-X$%}Ftx+GFc zET2?}#^8oF{#U#0&IU5hrr;ZUXJI$Ie=Bc%)2>BV#jiT8p5LSBNOlvf;I}t1F~fT% zwvYZX#ad)0a{M;UwDQ0;68&zD;xI+$_lJSi*3Z>sygYh(f3iGriNm-yII}?zsqj>P z7?P^VYyBa`rdCf$TWi0)VC0XJ)!A&#J>F2iB)?T5Or;3OYM3ac7-y(WRU61aDkJyQjp$IgFA#%{h@+Z~Q)R^g!K*)S}3nh3lJum;E zTyp-49hyx@d?HZ>VOtCc@K3^N6b5VuT+eRMhZzlwyL0sEgCstrJ&Uq{@1ofDLZ~M& z=1t6=WiZaC#6CEj{?SHHAmBvt^W@T7r69(5t_XCRkQhiy7e)Do5BM zHWNF^;ee``tt&|Jm{uteheD795!$;Ibd&HeG!zjVWW5cD!P7M1N&3mt#u?$-277NB zzs!-*>}~AHF-A98y8IaC>BuUi^JQUiJwTSW#e+X1(pn5@tK_i-IZMJ!N48JSY|a`D zRyplFk6L-vIDlbNgkxtm-q&X&p?G~dS&)rr;4dQ}i}&#nNkJmSu?k_NS^ojvYOy@0 znjhKX^1MLxXog3FW=-T|7Jg!+iq1gawZy^CKL@FQYKVj1e?W1tc1ZS1)o-Kdc=er@=svNO@>?Si=y>w-?&IwN4F{B*hktlR^+Nu-#j4S-sRq(u zxc@09o`=H$mR~8RZb+PAPLW(gaPo4&L<46=Y{q3kFCA-K!wRy6{l5GPA`@EJVz?EW za(whbtWojNdcGB)7aL?NX}X5e%C~wa9mK{SPRTYiBmyniwB$CB1vH)Y#ITj6qyl}k z{Gu`szb#t^yw%0zIE|$)I#|~L4h~C70pr8Lb(WftO9yi`NH3ZgJ0nqd(jdG6kiq{I zv?=J{X4xZ=N!8jbu8{3PgGe{St$;&0T%gQdgE?&WLW|ZoM&mE&J<;_I{iimq5%L>J zvL?B7x$AcCY|a1YYsGSOHMSvRiMvcTKo~A6%OV^wQ|G^dVf9%Hh~+!ez^$jh#_nCp zA1?QZG%6C=zd;Y-5eGqbt4@;nl{RKsc$ntf5!l=_76yVX^pfeIlbrgXiJmr!H$be( zp(;g^gbL9m(Awk+>)diHHS#F!vu7|o<{>%=ICL4a4P1> z8_943>gwN>`w?*I2wVnqvGKnszQ*Yl0L*tyI>f?KjC#vi15FLlwx~cnKW;#;mzxR$ zh6}{)DeVN_fp!7!$8bwc zm+22)X%Lns-%FDurKoMG!l>fvZNyl7wV*0^Ew2{y!}WOf40Zzij7s#4Lveg_E(}|Z zY7HH(O?gm|gZcU*L1i}s1B*hBE6$m@Q!zo==fGMI#9wwSc zugz4Y3CAnGr@kpd`OK0T@|&!#tI2f;&*u@c-*u{;zLpdHC)Wto`n!A4e~shPpY`yw zPj`lY(2spw@&D4$PThJsIePYJ@pAMB3&C>TlOGWzuD_qb^jq?7i{+r8FX$veO)=^H z@15r^-s5qqSP=g{1$MYgvm9M!vq$5jXJwC@zerY&_82i4UyL}x(|D*##dj?_U_84| z5gM)c5?|K&_9VW*^k>#RiKM;``BBIwZHq^FHJ(kW9zR!EA=MuA5Y!7yK z#qqhN_4h5&`U@}%gR9j`|M!N3{g6VoVFp(9{?vy4cp$A5=ux;`H zi;n{rZdeR$tWIZm7_1+JIY^X~%TI%FB-z_O2;{+BMxDGUDNe!*>{bEA#Yc8vqexaf ziOm@i){@yYomLKHT2{8e6w5RD_UP$&{-khA%2zM)^28i>f@Gf}3nq@cgwn+6j{KcT zoNd0eo4)zR6q~gBcsiNI2=Fjw4RldILsF&8QsD<|g<%IgpE4UjjcVXvWCZ_Xa_Huz z_v~_q5+EG2yg=6l*rf8o?g!OoLEPXM4!w4?bFChfe$i^fLJf-lDl2Ux0QU1teQZfR zcW=?`&iq*QCKgLH23s)v^D~kceg-NsI2pg>FMKliFCP1+{PPq`_;>cee$n7z z;W_$tmkdN{JLz#sqsV)wZ(v)WOd?(V{~VR=J$xlCEh)<)QkJ8@4#6j86{0;XsqR}+ zjYO?)I5{n_vWK#E+#Fg{=Z(dhcDedmHx>kw#P*91PcBgU$IFNemm-YsMd|+9pvZsx*%(X;I~`3! zEHrH8zX17j(LOjz*i~nVZx?fdo^7tlW8z{KRD|T8#%rciacNTciyh0s{=g38;F=6j z(4xWKwa==1;Af;mQfwrSB%Q&!Qg9Ap{}W-o3gePp{=Z-l`+q2E`NIdX1GOM`|4Rk2 zm(%)%g4ieH98(e5#*_mfndz@wNo+`ZiKV?r5OB>B1O&r8yY}kk=-Tj{|C1*N|E#zI ziA1@E(Gxc>Hzi1mG5EJ@_WxiqW~WcbBW`=S%CE;UGWJ0if33dG`~9J!fAk#})b}UzNZ&n7SkK>xv%tNW=-Ds~)@+Q^c9*a7X%u(Z4T-cb&re-+v|4HHFy_JD7#W z;Qr$S@135lo^DUZK7O1T5xh2s`1hS-SJ#AZLfUq*K4{kpzTQ3xji?7PB|4zd57eX8 zwfT%lAysuB>8_`BAHQt&w7XAYUwJoC7P&BwM=ZJ2R6r6BpV>HPjik_>#!_|<0Dy-7 zx^OT48HT^wJ^WRMe?wVtG(P}F zr@cOtpGO3WA{&c8I~MGHH}t#9CyzRswsgx8Hn5BkUpCTpC7YmngK{)49dSqBIf;l{ zw)2LhFi|BuEiMwSZ0Uj(e6xsINJ8+9uyJ1CSBBJxz_wpxuWdwtF;N z98vh%NrkjBs8{8bbKyWQ|2b#lW%tIu{3XuD%lAAR=!pLn&c<7U@aH`n0j8Hf8{I(E z*|-GKhHHcZzvE~9XJhKwFFRC1O#-3VyW&C*mq4fb)=6Yix60x;2-EQhUg=^>+HKs1 zbf;ZI#NOV~Ti2;1L5{VzZhYK2Os$D#rSUs0qR(>aiVjO9sW_qa!d!Gcc!SJSvl*Vb z!9^BzI6lU!g5k*Carr{R)uj=al3EQ8Ou)Q(Rtd zOh-zZ1cxM2seF*m;TIDkJ6!SvfC~GJgA>`Jushg1NUqc{J-cU4Ul^5Z2Yq9R@G#y+ z;r+1?)}rO*Bb6Z!TLoRZ-F=T2FXp@CoT9XP>tsbQsb5e7u&NY`SFt* zwhP6`M);`Yc-vvTn;|jPQDpF&s`w_|E%3)VoKBJ(9)^#N;@T)mThQ_jOO75LI{0|X z{Oi(tuAzo!X&*!auz@;>Gw}*=i!B1}l7PR9=MIUQ*{F4OuLL2NtoaJ%2o2odVxv{m zsq%DX{}w#I&uB*^blQ6Cn(Z%l_hs=5LV|w~kh|@@;&(u^Iq6{{2_{e7M;|T7v}ryv zs&-gUjf|nDF`wgd$&{u(hwJH!8}r{?lYdT2b_uXh-M=}m3)>H*pnphg*PI1x{$gd? zx@*IEO0Y>`Lwh#Ay01its+&mQMckc_Vn%kfK zw7FjRosXO5m<(R#zu8*Z2RUsTr~9zk47#Q6nl08@v&I{an!opx7QU_p$qU3teeb8{ z^4xM5Gcqs6X>_34KM#!2px#g6Yvn~W-E9=OGo)-`S$T%k9jS=tyzSLv^aAcOQU)ZJ z9GFm%^(AD8cfQNs^K^yJe}UV~N9sOdaS@%Gt@arU%{QE~*kZ#uyHH`{eZ1{iOC$dx zr_D!u2cW*~iQ9P6N=Uu)S=#`(=4s0&JLH26G{bI3c#aNc4*lf`4i%;($9XsEyJ_4o ze0UQa`tT};&-YZ_#FCg_IZ2WB0}JKcA?gGRlO4f($Rt@XFgDas;;VVTCxtxJsDmT$ ziDC9fu&iQfgKE>?x44DUe7O-e{qr;HAY4N25BrTf|BZm3=0 z_M-XXj`w9D|FPfUfD8@m#mV4dWJDj6&%k;M^Dv|K@BwgJP9MwhbTMBLK5!(5)fHg^ zyZ!>hcPsBjQh#iz*Z?5iXae<>6eiHp<{1Que7h!PM{ObVP9P%=mW2MPxh>6GHB79p zUt@#fh@MPmlno)3LC0YBwfBt^uv*GITC`-z!B)0J23ZGC`gq!9ed1{&Wks)j=8LHb zSku)l+nV+?;+{p*odIVZOp5ECxrYsm-}qFNUoY=r>s{XK)~kp>^^0hUH5kTewn1bo z^%)$*R&+EGY7!L@VngO_L!hb|tr~{F@y})md<;|7$60xb?pJ<#Ai#0A0^tbfyH;9- zhoz1noIWkyeLL64wk9q6KRDdlERxz*{k!Dm!DdO7V4Yt&W<(BqkrA)Ve4P5N$;;W% z+3{pID$|l88Ob9}>*sZEPPXZ{jUP$mAbaU+t)2V9THoHwxwEIJA}_W!0jl1=E^ad5 zOzh;H^z2Rps$1M2wbVC_`GhH#Tia+6(V*}@zCfY!FQZg<5F~BRUcW-Ud25!c^>lfF zNPa8AR9K90OR-Kd^ZI-ip`Zn&(<$#@7X^6bwYD3XG(Saz=m%1$XF^p{fOqjAaPnOt zT)5tvIt*Wr(Xloq2@aj1yuYb@W1{956iMK3oacLbxqOsV~-gr#W9{v;Z8x_y> zn4CtB#@JgtVOAIFBuT?3hNIDQDv%5!S4YJjvUJ$)Z^WB*zE0IF2vapM450LIT0SqYnSSvNyv?q1Hu=R`&O zkLaTavK2>#9qKUTSQd$`rp!T^2FKw+)^il6c)Ot-jx`w zV33q1MI{@$s10}LlgXC-cb94d)5nSywgc8?*0#2O``ety!?ip$V7f-=sWiLUp`u>R zq4!a)scrG?8oN<}s+0~3?sFqNEqQGP&i2r~ju_hGcNsKv*j#W^4cmb`j$+EoOTLK- zwY|#&0PXC@I=o3Yy!9OSI0Q^*v)$>*_=(jOYp!i;YkTW|{h$B$|F!kM{*V9Xf45&d zHNw>B(lLMC3wfG3l~*GRPLl0A_^XIJv8xh_J?6`cm7%dy=f?f$x(YPhE%!Vkp7L90 zMgqG}ipKGBdv{l$RT{(FyxZxt!)jiaI}uVmRp=N#<^gYe6AgPqG68#*aztXdvsyRmVo>XWA!hYismB-w*GCcD!QXoCZa< ztW#qik%XEw6AHQ*UvFA-qfKHfpu(H?#YXw|18k0UbhvSgTtk21hO8z^*X1cB>c;;> zk{dO2kxN#-BTrP)B`R;A65bIKaO3!NVJ5jI@pTMn*|qrS7805?CMoZPfFg&fy>+hg6HPau=G>y9EiB$#s#+a87mFhc$Bz=fU6OIc*EE@s6S3aqx4PXfN5ner zH!&$@HnRV+;s=F=qEHKb?1kyRnQ^&Mk|c=zhiC{N?;Re&?eqkH>|NU|@nZN4*^ouw1hTiX* zY5!fj4{o5F2KaGuY`tR$d^p5Zd)6f@kPa|MqGD`aEZ43o!j3j2%4NC!RvFOv%U{O7 z{M~JAdXwY(mZL~U!zodOq`Mgo7V|syaq&}a&nSudu&j3I113(uUz~rH29*`y z>bzW>j1P^e+xr{o2I1+O?VplIm$m?4JW}2Az{~$i&96TiuO^@WdN{ZmN+&;BFUACZ zTQA~WtWFx@&jH5OIVQ|wGSusc?O9b|x+68@EtStB#^8=}eZ4%lM~ef)8t&HBWP2Kt z49nd;;qdlC?wk>g`3uRr2GzAUUI*G-7@DtuKD~~QZ?1GWI@SQyYVO~=ZFA7KowUV$ ziVI;k4posuc;e{?(6@C9;SPaaKY3=J9K(r``pS4jXtG<`!44N(f?V8x!BuY7nE<4# zHAp2%8u2DZpStah%=?m~`C4>xdPnmn8%AT5EZP|Aug=zM-F)TJYiyG0iHupbs%(P* zofciT1E>Yhizy|x zuk~cTP!)85JDfgPTY$>Qzfr-ByD#QHP$g%wT%UhEp_KgelpA(+BQzlOC#Nhlm`>m| zhZlXijdS>@oL0}Ax<)v+Sza&#?&fR!YWQC;#!TLb3_lqkJQzGexjuNT|ClgO`Z&q4 zxck7Y=pSRb^h3Oz{&g-1KcH3t_t^Q>!7T-Qf4jiD3~eE~DB)=A8ZMaF(3nm3|Gi3v zRTI#?R!~eRVE1C9V9&_}a~tVJ=Z~lVFMIF097mF*i@ge1rw_MEEL0Qh?w#4zDi{Bh&s{p1%+nmA z$vpoNnTnyqAZ3Tj{s(+x33Zb=MutqKJQM%HE0`+_uK`&x_`L>*J)QH3MMVMG#87z; z7Sz}K{Wi}p_yZKTM?cK>^{0lp#tuKGW<-Y$EC(h*cw ze1Ma1dWlRP&dlsFl6Mr?1vUi#6kR66&4%L5-l0(>bhRjH$`ELxeS&|=V9kdaQ5#-k z?S04|{&65vGzvZXumSKZS+)a1X%ZHKq`eu$&5FCwVv`-q{lbMZB7;kPf&y18g+V2Z1oG1u_9_3@vv1*V}qF|D|eNzl`B2D~{{=c;y?yGE0 zyxD^m@+GQ3L>bd;;_EC?Mht4dCTJ1inJ°70hMM^Au3rlSKK6R;FRORzyp%-2E+ zynS1<;xGjox)jH{QsqMvxJjb7A3xypzhCFGAcYRe?WBnLZGy};Uy%8r5%tQIhpBQn zh8uy-1rUD_ViTisQGlTmtB?;o_WA2@PLH9F3@iLGFR5Y`q_3AHD)J!wlrBq&o`UE$ zTu#N$d-x09z~1{sIX|7i6hv&AGEC10N=wK>bf@?3-bBPL9907vCi~S_L4%Xa8Var% zz-xR5_nGeG{ptZmspi=Q!l~;C2%WB8AhN=Hh?9XbZ|nGf`{~A)+gOB)86BKTEi`Gt ziG#B$FBiu-fqPDsyqkEjGm2X>k{G!Gnl3L+7gWGzaspbNyt~(eOe(|uelAUWkZTQOLwus6Pk z-F3OJ8PJ0~N@DAvE{4DPM_uC(1`AO}hswckKw+MYbogn`WOvlrX&8yZ!$kKy8b@|x z9>MAQ`DQ|=T;T^x33jh=HcREV@Q{`hTHeHmwHTc#FFzAN;@pN!ZjQ8Q{5n3rDUKeN zMS0mc$n`Bwalb)$s1NnvmKM!ZoV+Z0;_D#xw|CZq-c^ciVrA!_g!yX&5o#s*nLc84 z22Tz|1PY$9z=;g0#218KXQ1y&@^Alx%nOC-{+w z*?Q(#Aq;=GnL_%P@H&s4$)W@RA7kE@2{e--5 z1kHO0h861BQH%>pR#dldLm+{Xgb8wB&m=Z^&h{4%5L5X9Rf>ZMRM|JrF%*BgGusHVzcVMOFE7*Go+f9uN+BZ6t>P}d= z<3XPc5yOetBg_)&N}6G!Wqch>hdLuFcu_=^}oXLKSs{l zEE^ZU+W&g=4gTUke}Vce{Kr@Hhj|NaQDtkf(88`mo~IIa_V-ZN`#p6<>_{vugfRRi zTN@5QE=8+*@YN+u&dXTNf*L(|6Oe%-ha-HefE$juIo2HnLab=KgEd5)0!@7YiwEg` z8pB{-!IzycPH?x07~*ipU5y#^aKGuNvcQz?_Xgu0jIFWIo&a89W9|K)v8&Uv%@D!4Y z>SK}kSH6Es&`35ZKJ)booM)r*o~Q)qJ+YQ5@0sv;9I014tw2K@e|4=)tnu9(#|6AK zv*un%dma0;bS7>H`Tu!Es!fMWzpgUBgK;v9krge`{f zX-k^n;VY`ZA#eY=92zO>6-VG7XG6g?KQ3qEG8+<&n4eWPL@{b9292}(N0jy&;@}`- z>Uf$BAG1eWEVAR1Z1^aw0cIV{)_&rM)3Z^c_zU3zhZwFjvpNjh1H36o%#pydIA!;3 zWzyB&OD34UcX<1@ZTjZkA;~Z-vf^qJSqId%3=__+5}U0U)MtzG{SNs(*?)uN_SyWe z>Ky`JA`Ztpus_!*;>$8kwI3??RJQBmN6PKO(s4HK&2XqL_WK1htCTHew%;$?UVi*| z4>HnMkalK}kn9b&!ka6=Cdq37sR@5VV7pb^KgLub?Mz8}+ap;Ctg@#i%qsc~82gtn z$Haz-TI6|N3PsKSm6(EXb%P&=+kB?MJl0AO8z`>F#RG(`2+~`|Z5WWox5}=Mg+?UQ zB;gfZeeki~r%;ocrrL!?^636EH%W4y_x z`j!oZj^H)tv)u{}QzG0~2=EGMv(Y=4sG7G01A%8m$;E@oA4#s2HkU;We-P&&-G=lb zXzqml{t-O#Z|`$o4pfjn*2kX!lRS3U{5+gC$xDpQ1GVOTYUuX}lI8>;wz60YVGU9( zmX~B%r4W>iBLmwGO?9WJb`W8{Q(azANKZaRtQ(AsZBuJSqd!eKx-I`QtPXjlEGw`t zp_urr4(eRpWRl1)mFT$_^n?az?u+3z;vy#xDTL!{=6gxm zz-S?YC0`s8*OokYl9e^Z@Wew&Nd219MPG@)qgETg56d(NtwEM?PH3-^fV6)&pNc3E zXms3N)jesq|6Tt|MYG_mDw?$eWbmn@>Bshe(^t1&mB2^vA??USYs%fEjsu1{a4Mss zglFrLc?7nw)O(~00j3Q9a|8&@jW+kjTl7A|61u|o$zKj@oZD*f4l@_#^eN(4VdaA& z2otchiCe}TQU7Xx5Ay%t?voXLmS>BHvu0%p`}M}z21IbLANSn1eTUV3Uu))>d_ge= z-RVU}2;0-@qP!%0?)C$Qf>CDZ{Ce@w6_V_htbK42))w$U_M0`rt?0U~@bMMduwj@-Y zuac+uSHUU%)!}`2(nH~fVnAv{me4>35BlIkG?~=PalN0bs#A|x#RUt1MpIkvIm6$I zanfU;u&8#=zb+{>lthF;ad?0TTUL=U*f@vp*ZpKiB9)tgI)mrxE5_fHn^S*z9`{SO zH+vYl9G#qUYgDnZC}?kW4|YOkHUYEWFNY|mE+7z3JvnvU#e{o)7!`y5q--brjbBo(7w+vNPXMuQ4?r- zBLw>*_VTocQt$K^8}0RP4*W8IbI_OhA)#RAm&So1W;Ve?4C(J*zR3?kE6V-^2Y7^4 zdxNUF4okhm{ocRJo|Cp&KB(!MKZ4bumolyi1Ii3&kqN`RMfDlfaXkx+(`Aw3YZfLO zo&pjfM@EK!;Bg_R1W5kl$LCyx5}A6QXV3c?4hIr3fr%*bNv($Rt#7KcP;x&bi!#DL;)-(#`~zb82y9z^lc z)7%4>Fu4MKD7nG@@A_8@ZYhN1^)=!mzgANzBJee=9Q4CI!nYLW=Xo;NZtG(VSv|7( z6!#U}xxgVVv?-Np!GK^G!CF(7r4g}RYbkW zXaqL33U)*7Y7@8}C<$6Lk&V8KoIs21Cwzhl(Aq`AW^mq9`-sQ!vj&T^Ef0)2-nG+5 zhA=&*u3mzOr`xfZ{sX2!r=KAB$UkYhhY9*2-!wl64&$)NJ#7*l#bKkbv=JSW42qoB zVWY3L5uKi`jlMCB_#|y@_SdEvoxZKDeqmb4LEPHzmxpk>1;FaM{%RjaaDI`HVr9(@ zE=438k_Uo_TIoYA@02fzMZTlPjhA0ghMD)#jhA=AmYeL7Tbp7D<(6}zncOAunn9gLnst{Tz`Hx@f0g1o z^-f9KUH8P-|dP zaSgQGsNd+yQeYq6283#AZh;ZS3uWIJY&IMh>!3Dd*DFGQn&ZM(HZ#1w70^Gz64RcV zFk!bqwb2r9geC9-N-_n;#y3AL719Yc$*M_#i(qbgl|TwR#`kl=Jgk?~ z_0H~YDIrmy5V<6$j(BsYR|_fNb#PZ-+8V5x>%c9I#emmnj7$i)Ak4un$e|jJU&!4R z>ElI9)9qoTIUz>{^)dEI-0RW%#dsLm3yDC11u{9#V0@>WbhENXBo`MqZD)&+9Emjx zx1B@`(PN1LUQDOdDp9JRnOv9-FZ0PMW;2U{IdDD#eBC=iWEQ6BMhQ2~X&GcdG!Gj| zH)Sdg0+V4wvn7Pk{h3v)BGV2mV0pbtdQG_n7T!J9*ng~Om|c?-;o{;w?ro2+D4qG~ zg04!jNHiwho`gr?#Sk@(*y7?r#esm9Uv;-6F|nCYBbmxm4m)NPa^R7rfj&-tq6RZD z3m)nXPwLT~dXWC1JEX#V)F6duF^wVCc&6R&|C9i^71wv6(&Z0)uI zuFeFz!M5|*qxTh(Z~=BrIoGuBr(o^vIt)@Pfw z+QGVJtxZz1)>k*4bt$pppKaFGkk>VD+bA`2`|`$fXYNK9K|kB*Dg=`1e(L_WavXv4r ziPHd$b~Q_)wCO}33+xlR42Z=5w!*ous3rP#o;F2hC6>_1Wz#YE~PGq|4P!Zf}iuZ_|8ZDL;IzXQ985Ui(83()3F^6T#Cu76FwNaMT2 zZJz|(+MBI{?U4Jeny~wCo6tXMMYuIwwxFEeCy;Hsbpjo>ih&N_rht|U92_<52n7~u zxw2*1=p%gs?7k)eJ6^l?*;5uH3Opv6uXXL1d=cgX>us7WWfbIsX)CH^-NMME9N2&x z#NYwciP^YajNABq3cGE4(1N%WCGwRtQfL&)kFx?!VqhCsu@H6QBy1I9Bz&8~$NJRv zJ?02%TS;kRD%xF%397%LWk?@~BwqnQ)ldAgC3yqk7A z$iXX27BEQNWHL^J0KDNlNg!_5oE|X<29w8GZ;G_sT~j0yBa&Y_N2Z(j{5mLOD~#MBg^T*qz%#7@P~6cdfIB^1y%KLMweAz{;V)`blYl!D{tOK7_`)(xw zPuyGOaEwWSYX~HcM`l<_Rg`+z<9{3SdtD} zMx^*Wzl4nrDdv-=fG$#;YtPk4QNNR327S3ADK=Us(cfs5LVYJE)DdU_ThLR}tF`7& zgLUE{B$rN7^x$)t>%v7ib_yRGk)j7jHz}&+J1Gt^chv^%(oiX$V5BHTO6D{kee-%J z`uv7TtoaQHS(_OTHxXsHD%pCX40n0%*D+gXM|1B;g( zp_(!cCRq^oM{3S{$=X`lZ=binzSKOu#xABjEEMMWUX>z_{lhlmY-L8yh8aCddp#^6NDp$8$@b{>B8kIBg#H4X)zp@;cVbdfo z!zNq9B@G+n^7FB~y1bYiq1e@0wkLG@He2u#FWm~#HobVAyw3Yb=kmqv;DN3ow#MH14bo+NrZtiH2KKBDFS&CW57LGWnldK4)KGNzU4D(42SsG0b3C7STTM zW06>G^Yj|GFgDwZ;aEOf3r})KCPqumcwMe$hyASk(Ok1!YeOO<$ZFdW4buzNdE}bm zI~OWw6q97|vbi`)tWQ(h5MA|kJ295J3DLG|3kFa$HlX{^vU&P@D=}05b#t!mTMqzO zLT{g|Zai(AUd@(m=YL??94#ctE!P++HP3Z7oDRB%41pdmNl~=Gu7Wn(BaOSXZJN~$ ztNy2G#}2!kr!~NC!*OEFEg{;DydJh+vxL7Ex?Pub@C~U=^p6y(-H=%gPbZKa(e?bGYF?8NXtwv5>{+9sB#(I&Mv zZ3>&4{93fD-=sciB-CleE%CV(QDDJqWeKt-VY?J6HsHSAbQ^TaMALRaYe&me)}=7p zF^%PoS+d~Dj=mDNNX})+Y9zj}-6gRf*l1lG`&oBkT+ek@rtV_ihRDK`WYz7F=+(|E z9Q1DGx4SOx3yp=@gs~g-ac$22o$8${udnHlUe;y2-Sl>7Z8N`v6E+(sR;<}5wNM@G z-3(wE<0=Q7-zklWb_VbFT?-Eu!ZxOo9(hB2SkAFFY1p1=%xub(&Ft*(YauVutAm;n ztv5uY+vscK(RE!1k#!djH8^xbuZ6@^w+<|(nm5t73BRk$(^L5W)@FCFrQga+q3zT7 zU&ieGk1ac<8f_D3ZM13Pk|)+CY-xYXMpj{TUY|4)+WDN;t#@k&I`+<$tCE`SDER5^9&dStX zOxO@vLL}{whB|t+FN=fTt^9V^#eD$_^BLXD+0mN5CnTF-94uXXG)ymbC%-qtcQX2* zQM_uw%hV#Z39;yCnc*t4qsHkOwlH)51Iy-TA>oFJIfe~V^IVs2D|l-#2K1mp;O}w^ z%qn*=;(+g5MF)`rQ{s9VCP8~U^E>Z5WoMg5*N#X9b^+TNBAq?b?5SV>hP z`PmY;6s~ES7H$wcrxo+wVN(*y5Wo^+;x~1`Maq~_Gm%|}bThn;%f3cGX$jlVB zB2^lXOz z$DPY{TrZJimP1f17w)>4YZZJ~&q{D63Mq0sO4o|I<4@XTQ zU|riq0Kpm-4BL;S-V>YN0r*YaQ95SmVQw|%qOge0on)bTv&!5KXxmUFpZSb41 zK5w8lEQSnf2^Pb~Em#a2Z4rw!@MmRsrjp1@q>fsT>jgb;&iee}8Vl*aT+Rg3t>dLk zw@R&Lo72W0f%a7kA=mV3sXZVbtP=;}E^edfcu0r2E?k6Tr|_{Zhlt@=Lq_tu(%xu6 z@eHq^B`p(^;?X*B9PaT|a2)pN!g1Jg+c>7t|0qo4Sw6qqjEQj1?J*G=u61$grP~V2 z7B+0%wy0sN)PgQ!A~eF*n1~sy69?f&Uj+|gk1kwtuAYrZBJckZ)}H& zn9(|M9B%Yga2)pN!g1Jg+c>7tm5IceI1>pksi^U#UlDVKl&4$>`ID3x;gPpeX2cfV z`Ha;(US;#sJgIpgp!yXfx`l$>`}U(yu#T3)^X%twZ||>r!`@l8nC_mVqQ|&*7ezXv z!d!OLPE%^wDyG};ZIf2p=UmXe(9T)=Etbuj+se%UX6eMefjg%jw~Hqqzh7ti$7lKR z+oSU5P7FkimLb73Uzq|-2LYlJ7m21ZIucFR!3aA?JJI2{ScVI3D~R~!?ox{IM()Hy z+%85z{C=JJXYVqULF`08&}10~q_Lpj-Y=J;z#qF42aSd?5*iKG$HK!|H*1hjxK^v- z0`1pChyB6|7zx{^krK993omt@9iN?}u1zf)jkHDQ}&c+u7?BPAHU6C=%*F*=$p2p1~_VM)=)^~%F(p~$r*wjKSLh~da@ z-C9geT6j=xQbJA2St9xm1&8O@2T(}w1a;A=hT2+XeGUBYiyCJa;Fk#qw8$JYEfzV4 zqE_QKSCT)5MX26zk-dM8g017;yIp;Pn#Y$pDx1le2l)&=^J!4dGQPhHoz*J+4yWb$%SCxnjjv=ORx7?6)wvcgxZh z&)N!RhX}C4H0R!|;=r=-hI{7tav)Gdnetbv4h4j^isQV0cQ_xI&c#Tc&F}0XI^#N@RryZav$zte{aWwFECC;jJeEdvAXqbSDhf910&l>dOOgwaY5iDGrH=0MHxO+3C1xx>8vx<0S+sBlVT3gQCLXm(F1%`7esNp z3$ao)_E6APCw16pwc(_AyvZ>gcg1n%d|*$}#oFRh$NcI8#Rz1@5x8K(1oK3M47xZ=+uG6L6-_$q(s!4Q?nW`eo5#K9y}KbGGV3HNxG3 zd~uQ;=N%44>110Dd-HO)m_u18Y8X}bfbqzv${kq$bK|$M(=V|3an!ml!=C*T=p42D z@}IHqK=$Q)+;h#`$Pt?bdwkN49~IG-l3joz%Awh=D>F<02d%m>fd*?~fj--f0cz0@ z3_4~{^`q9K5ALyS?$oGj>hyk%nG2L1OV16~o%bU?+SXZk`V9A4W&YG~84jq;ns^YX zm*9dMsdWS=PNRBhLaWLyE@mG*ek{sWs~EUbT^^ldyBoGWHR)g>d~qScAG298RnZ-y z?pv|~5B`REF@Mrq%4CsL-mGgIs$TK5E7F{v+@{) zYxYqd6+0`h&&nxm8`0DP00fs;KV{?IZ!+>jK&R^em;dy?{FndffB*mf*Z+CY8~&6{ z@~ryczy8C2_;3I4um8gz{`Eio;a~B`|MrJ}{lEY4AO7PX{`J2{>)%7HeuT2XJk0<5 zfBrZB`TzNk|M~y=KmN=A_}>kB*KhK}k00M=ql~acIPL?>fb-{UUzW1}xEN)F{)f!7 z-iY3r@6#NIHPnDFjv-Rk`QuqmR_$Ry8YxU~C!@*n$B*@Wr43*7H)@}6>#+EQ+9y=D zTlw}p4EnCGX2LY}+Y#)F7<)%^0~!bd3k-k;`C9(K3a1^k1uRU~rT)*3Tg#u{o#EjVC-bACTckxhl5ki}%P9if=6H4+kI4kIGpky-L$7 z*#?{Xehte`xnGV%9q#wd$NTth$h^ZLzRRoQMR5U+$}o-)paX_V_FP~FM*7jkWpyS8 zUcbPyT$|l~ZN9Mc6Q(z~!e;7|y{g{dyI=n;$|zzSC>*0%K0mF`?$>wj7z7Z$ZtdF^ zZ|cJb{*Uq1_5J$a-+KV8DUT`!!&`R;kiHj>;m!)@c82o>$Q>3Kh8A<2M5dc%^*|d; z^Aqq)#deWb7-d=4K5TMhAFLLbQeXJMP%ilbFbwlGW?`_LUlU4ypY6ZtiJS*TXkNdD z85CY(NIP^IBTOj&Hb2YW6>#hv4i9jkPvM_-M~=_WM|yY?Tg-7<;$PG}Ru+CWE6a<6 z0xMQqtNt>4_J95Q+4n!f@?GljFuGWjbxD@mVeh>B{jam?;pMb|LjLjNvf0y6&+=)J zC5C#RAH6MV9_qXN7~;wF+YdG5luL3i-E8QL;CsD*F^&RQ$tai4r$0ipAZ0Eeg%5@& z3+Qb@gXjs^o72n2SFf|913l)(KbE6xcu;?s<@VA0Z1~h@x8LizXkY%E4IgRr$@tgk zDEZ6Q&M6RP(zs`uj9v$Zw{}A=FP!Heq5Xs$1f@U0A)1=)vgG&5IwA$ z<@=|)1A@`6<3*-Oyyn=wv$}>K>&q`si+Y6fZBd?QqpCbEve}pV)BL-8l79)JfO7IB zJX9nO$3zp+-HpHKKGzpXE~eu?Np@HdFw`%1Py7G!{?6b_@V5u`o4vzvuQ#|)oClm0 z!3J87^@8IomHj>gA32^~LSrE5axlQC7pazS@;kln@{j) zCE%c90pF~+_7zDVlI`^&eQc3WFX6Os2cCD-z9Z#hcy9o=3rQYuxfGb45m;saTtONc z4Dnw&N$^iO%!mc!368(cncrG#=4@#yexFa5%)Mq^M0OL)H|*3Tl8N-5Hna>r174Jq zvmQ9lJ63$Sp(01i8)|NlV|?Q1(A;v>)9P#JI-j0KKr>h8;K{#5a-Zs;UckMvvHEJq z8U0iibJB(=d(x&FtR2m0uD>O195#=OSphPm!9Ahd?dac?)NG)l+pq4DKmt?_ae82W zd4@RE(}x$u#w9cqnFr;d`3E_{uLD`(sfRM+Hdc!}#hfn@@4l zxx)|>Oe4Md_4Jqqf&M6l^9QD#bay~LoaXt(_|{!gEMG>3je{*3HbR}yh&($SNh<%{ zg;GJso4R)r7ENxvOLa`K_U+B;qMmUqiEk8XjRjHRtJ5IKB|Zx^aH+{b>|7_Psmh*J z=b;W|!3S^J-Uv-wr*DWLuI9YMRPP%-?U@hCL7~w_{tkkh9_@WLPT_OT5=5~(trLgN zGe4c+6W-LhIn;CY`+1Q&OJ;$u!cRChW~|g?{5q+g9e4XvD&Hn%bZA|f_f|8X3$Y!Q z(+^5%Z?RE!VFQ0h?sH5OSrVNMj-Lq0Dt#o~5NZR*xg^&31d;33*e&Y(T)%vF&p7OX zX2^-7FMK)2DiWAAmd;x<0C`El6r{e`Kq@o-tbn6PpqRmC!!ZX&mr7XkVx&3!H<12S zmmsP(qZ%a)fJ9EjGibg~4_>zUOZ0UdfT53d*Tuxn6yHkp)OP~2bwnVx6WOLbw|4`b zH(0NE_HI-c=lKj4ha0a{H%_0ClKT=$W7UOP*D8f!_jYqclL$4PkP=EMfbR5mtX(l8 zV9_Zj<^ULKbYniE^>UDeS^y*l6Bem`7=18;l%lEQJ)=% zji?QY?LA_Iwzu2}xn{VD8nHG+t{J8|<4=m{%1FU&c(n~;G};#%Va@e!C!BSdCpk>T zxL);!9JYh-X_YUhV|Y#N2cbtvV5{<3Z};k9k?s};U0h_4L0`;&n4gr#_-opRz_?wE z$N2pcbn>pclRA2Mph-EOTpEyC7^}ZAQ|{~K+cT2B+om2hi)S9aUNZ4CyNbt1Qxh>F ziqb!VcokArb&lvobD&3&{e&m_zm>lH+iWo>LAV_N^0YK#1(qW_yR6Ia%dC~a%=;L< z=J`f=rOq>av}Hb<^7S){fQDG|uE^iFQH|dwo|FG>qj@cI#9>Tu?7y9mzz#6BJj49F z{Hb`AXB=)&y_mmNDWh$+ZSCWkx3${{3q05a_78!Qn1&|}bsgkH#NiIQffQyGPr3F` z$@Xb{U@fWHH zsG#+f0_@swm2Mp)F5PM~EQ<7p;AKEH(ZFhQdu)i*G-zAEFmH#1-Y-W<+hL-zBQd6Y za%5bf?Ptk)SI!dNRaJR!6c3_6!@*;{wn1n};(Zh)l5Fv35*?C&y)#gRbb1^9p^~OV zef08kSW=g43!$I1D59VU^~hjtq!SFIALjcJO&U>47CU)x$*5CHoK(d*9EGr3!{3%V zKlHl|=H7ylb25f+3nM((6!CDYA;mWT6U56LVGY|t3y-xLO1SCgMMo@VtQN@>^ny*+ z`Rc6;$hU@V#;j@737PROE1c^b$1clcK;ZBYTc=Eug6%kPKfv>j>*_G>m1^ zMuR2n)L$%j=TAqOuxwsUNY&U-5N*J-1sSwm2_m(g%(zdW+mp}sC8+P)%epS-t&)Cg zj~KJWJ*4KtZf zqjEz6)r2bK4rs__TT;4-)*iYqwc$5v7Na?Oy%Dx)jEOgCXp)n9wgmN|rDM6NE&}u^ zsu|4RtvG3EykzRqXln?-f%A?on5HClLw;!-7-2>g83Z(sd&mLz`t0)jXbx?r+6YFB zFsa=T?SO?q=_SK8E;Wo08-9fBE9M>y0{uML1L-Ju(<3hcVl@$aipUZkgTplrhk;vH z-s~z|iX*xf5e+6;APg)x3MgkDhC&bs-}7`yAw*N8Fh>tgx&OsqabYYJT{c2U4kAyS zUG3vXh&MrBy7@Bi+m<{&f}@5qZV0I|r&`41Ne$wqVmh1dkr_DbhCZII{H zNxSV=->0?#_1lQ5=IDs4+_)uIpDoJE)3dcGzMB*Jey4T(N(K>)D~zy8limI4IozIY zoWpMuW6FQG1Y2#!C>>$~iR&~MXYs$xjqvLJ?Pd_345IY!yVY8!4}Z>!dH#qNtBX#e zW-$_?*Bjyiqrftr3+YUVidqPV+)LuyS${{s&T;W~#Yt;$fO#KJ(L7%=x3u_5ohPUG zYRiPobV4?}{QRR^7kq=FjdE>+cslmQM)RTGlXu`9U58mXnbo)THr>f~njb&HCr!Vi zODYY1V0%cz7xP)G10&J270qt6B?zbeo+cvtoFE<6Ke}my%`y`wM~Yp@Ch-;_Ie*G# z)E>KbiMSoj(WTK+X|vGjtUN*_pz&1QYMViUYYYgA(Lp&dv}H#y8tf+D#EpA_qJg|O zs;6^ku-U9_k2D&_i`ZzeWC_#DN2AE{RU`{TuF1A74ugS`MFIsipA@aGq@Yne)!^ku z(CKYFoHj_7Zm-pX1&Wt`kAQN4$0$m8IIo*iW_D zXb~jBeS+~ObP013Bcx0J_%us`Kv$4LLxSx-6`}}DPsAYu(9Glk#D)Gv4t|JI9c|dR z4Punr7aQT(^(HcJ;d~ojAq5#yp?Te`k-{zA;OH&x0ysI-CVx3gwWfh4}VAxTkwGr1Zghs z~&_sZxp?TKiaiq?u(^QYh=%#8Y(Pn&r8$NWsF z3WE#Vgq9_A77ns9@}h3r#Uc;x0v(s03oU|73%gA#R$!9|}b=iO2z6w~MW0J0`#N z0U~f(`FqePR4%2I^cMk$2Z zmzyFCmY4-cy4(a|7K$|x7Sm-?kK?Q_{yk5N*v{0pR+pS0At4fUvC$>9xyc%kA>tl- z;U*;>==PqMmLcHO(YuIK+qY0o6aK_-+;u&QVQ+E+UHvqgT=NOpxF^|#2qPG0eGZ*qj4`qq(v9;ab?EHVzJ zEL+A4w$dz3Zlq5)P4k5xWp!7XXVk?_)J&Ky;cN}RHpy38G6N1@NcvSICVEYOef`%1 zmn`s$j1%$wr6vn}is^lVWP!k%{K89h84#<>9{iOAhrK{Bs!uta1fmoi*pj> zq5NJTZ%l^VjS#opH-ltvoKTFj%9?zGH1b$KigaSXyF?kMsb(DPzs```OCCKv83c)X zH1k+K%8rjI1K>ld{lt@er9CKRkptX~?G1`7Z)TD$@9kt;-WvoYUk@v!+kIHQGze4j z1OW14(C?Y?=~w~UB+Ks91tkrx`nNbO<fWs*45B@C7oE-o7o*>k_F7k%E`9gH^@p zJfA+D4{qO8Wemcemz2b3wID&+N zJn-luTV&_eh?^n+swiL1kf8spoK5}oKsHO9z=Wh9{#-`rHh}NC8~^Tq`7hOf z^)GY$=gZS!Z-?_>U2B5Q{^ck~sy2ThLW+YI48~H3@!MeF5QoS*r5HxTxdheZMDE@{iEH6j~9y)ad3Xl7z?aFfV8_FVhzu$7bgc8 zCdkW}oMc^A*TdFLk^ZQ~P-{N~tqp8yYtRRgh_@I=gZ`VI%oho;z*6sBjBrG#)NpIgTg4BWtv_p7Z|Ni}fWRgZ?9>TER zL86{RaX{*=45_v6j*((l7H2d^gcPwd#PJcX`9Jg<>NNjmYQ{_c*F03-HbEAzOJbyW zuaA)JQ69xj%{ZoAa=dI_y@zr~4A~pfdx}xNc!w)w| z`$y1_-kOxLih^GtBbdCui;l87iiN>_#>?Ja$a`NTxWvh#0F@&amC}y|-_VXGlH@_I}eRX(9IoAfnzT8MHWXAl*(PqDq{te_}*A==D&JUy(<0P2h zXZ!wcg}nC5U*MAuqf}#$|I|~B`QER0MZtPerXo!WkuV1|(oJD+ zp2r?t|69A#09ke$EW(A*3aP=FV{?QN;V?%r^h}2*nH>`_X%GvQjBIN{HilgUC(nrF z+Zqw1yQkPJP+%lc$`#7Im}k4YlIDyy)Vq+gjK1Jk3ZV%ACq3Avv*K}(uj(jAP7PJZ z@C?PWaFXm^UhEQUA}-a?z36u7tUN8|mXW12!VLnwk;M`#2S&q{GMjVa$c@09($Xdf z{iabOQFtoz&B(>*Fnpl~aROfQrw$}?7t;un{47zTWuU1%iyZR|obR&o~x^R_J$ zE`+UZM)Q%8kX3RsMs2pU8O@-*jW(m{z4~S}J#?Zs+Kgtb&$1cK$8NS6?I>pBY+*B+ zF+cBSWaGk3c4CzAp^fdBTn-JHW&OR^JOgzS?FXRWfSd}=qds-g3C!soCHI}AMc1k2 zfB8ncga>NdB4n!wG3yQvh2SPsG1krCOX;fGo3Ydgm$^vhA@MCiv6HtGdVRjhj(;3 z(ZxU$dTq8KYsa)IFmd6XZWR~>jFD#hmS-9!KG~(xt7hyOP}KgcmaC17P-Y0diUA3T z?SO5EF=$Tz*WsFTS~LO2O1;s;6S553Ak)}~Ig96TUUiM{z+@(75RIu4#zK>;whiiej=Sy(-Ifnk1F>@zc$K2#m#ZJG+H+Uj1ubHi z9IPZ9!mx;xG*p*tme={XSDu`hM~ek6aqi=u|R>i4Eub&=0z$5e+5rLD6Wtn(?6 zEuP9o97zX3Z98?W#MUx7r`29`h|*3?(~){_mT#0$nD-5@?5#G97h`Jz3CaTzjn7g*@YHD9$Re9@|?;{BKJu#NBwB3a!BZ* zDj1=2mt0PPpM}_3%6qJ7`Bo+IgkQuj&SJ~4ra#t})J^Z}aZ0z~R6q$!cFZB&nN3|L zc3yC1sY?BQvMTkf(9tGUpj?#>6du-C5foFRzO=>%4?@O@Q zvoFngk5le}-`6<0-xqTPbB|7PDioEWpa_?Y9`|0pICu@0>$Qsn`}Qw8670#Ri39`I z{uCp@e6T)KB-ryrC0KE(N6}u_L+eW$qhx$_d3=ltBJ?Mv{;3i8ieeCZL-rVrDW;Kv zl}yceEF=Es$AeIC4yim8jpV%XHeRJIwni&)CVC*W#ssN=LrP2u?f-o7n2W##AyX!3 zfMTLdFGQ7itw}&k#99SWRLg^?P}5YHy4morP=d661@BglR8-UPm7Z0MMu@cIZ%b5x z%jUqHtrCyp>%6F{#}pFe=B*Xg7~T7fZY)Vh1PudjS8)HJk-ZhQoJybI|at(5!!~we_T*sZ9AmR@d7BJ8k6rA!JAw4c& z2;o9_j#%bOjtCTuMx7Bvh(Jmke|_(7=o_e%jg!|mZD{O(d3tlszpr1Jfg)%o_Z^iv4i%d*=ammFP+$7tUFE*lJgq-VeQdNBO8Jo^#PeoN2p-Ti7X{5yI0TRi;xY`;&k(BD82 zP!Sv3um4vDN%>jPTPlu{$Kc3~3M1z=*UNAwaV3nwUt>uiRtNu#h;sK;992XW zx#M?bG2OY#t$tX{%un1KMG`a!6Z%@zAWFeb_>x~ts|~I6istqj>Ou3HJEG`?bJt5W zbeu36CkhxY>%dPz0p|EO!p5@Uqvjs+I=?n~FGv>Wwb<*oV^qiTWQPZOAn0{{U?vu#MRDc$9T7L%zd+ugcLV@`@E44m z>q_XS&AMo71dVbdQTh0or?At@oD@)gLxcyC+E)^i);aE@^n1s%63z^Z2mj0NuG+BP zztu;iz$Gz}$`(YqeOm^+wZCs)zPWoi`1sNPd7nS$$d;5%euU(i2tWAYg0dDf+E~$- zchX#0Q@;);E=_1-G!%5ZYWc`wC#9(JO$ToY`L@I8q?jYa#)n9i_CZILc;M;+`u0;| zIzGAttE_g*8n9cAE@p_K<&p5vMi*VpefZyY{tg#>`u;%Yr!rY>qzo8i;u^eNj$pJ|d^pG{EgcTNpvN^%gKUah z=fQ*n`tX6KN^AFV;fU-uw_qxvm8x#v4t^4yTyZCQYZ~DxtNjIILk})NXVZt(ceEj1eJ`^l0L&KBO>vgZ zPocUvLK_y41P~gMXA5Dr-f73P@M%fSgXeTD6IL*^(2#^xHYl-sU^HygO_u8o>}xQab4ZWE1o`MdF)0 zd;O?ccp&d6hnSv!*JM#$v$}md2hJ%g)=D#L!k6xx2Jw2p)br0xqY+(J`b}gs`uk62 zG~(lPSNALlw%|s>f}MRMtq27@clDQVMnN|T31Bsn|5UH71PADMhS?1MY8Dt&-J=inGooIv}EI7?wVk7JpbdxtjvWOo|&wM}9FSZJ&lV$=) z?YTu3`XGeka{$#M;RO(O;qulVlZywqK{E-gMEvR0P8B5UuXi#k)l}!Z^b0zb8t4Mr zGsB6PmEJ?1o+*2euIw4hn^m|yh7GyTD`WyDnSxW$FWRNA`*~D`&>VX}@TRdd&_6u9 z&?o4e#AcA4EI$H;Hr!I!>rq`0*(`K?VgJBibwQhe6(#<9lv)rnR6QlK!%bj7~=53KO@Qr4cKS$+-i5vp|yLyoLp} zB5`Z_1CAv*hUtKMIt8hrjsa4hMY^!r5ze_Y4+lRta*msZlJxAOYgsKx_r#PhY zZ?md6CO{u$$oeoTJ%Rml&VA^m52`y6Mfx?!va;_Nf(bCVi;SG$J#QdAc?ln*Vww6U=7!>kX2`fKvJ6V2f51XT#T|o{~xz=^d8Z|@YPUQ zViu6sOeP<~9rgnKgSBkA7t6EdjuebaX9)l6c`Ud^J|(`@%6*r`v?89XK^O51 z6h(*Jo1@7wj9n(ciuUb|cq7fVlQmLZ>EcH^4t8ZCB99Q#E7Kl>>#CP1$ z->kmGmJpp>C*7O!Y0^d5ATVq0ysxqIj-#Eo*v`&Nc$ozrRC~}}rTXv+Eq4`*EF?HZ z#tH>G)3z{?5ZwvQJ1M@H3k9+VzT@SP?U;ao#1esGLi01y3H|L+lW0|Sj^KN!cm&9- zgoVOz>JCM%WBk-Er|<%jT__cyJ;-NCs=WlU`m{-AxAD*A@DauNAC*6ke_axF0!9v8 z2JprM^>DGsKD2wj-W&p3&~pAh|DZmiC&sO2oL2TMv@wAc;Ws5$7nyLH#D4`Y57R78 zX&&7vT(DT;6kJxE_hNBZ)rDH&f zrsG~MgTncP;F|UUB*B~qw8=T=e-{g8-8V(m9L%mS<0cJ`MH3lkWrdI-5(uly(^KE* zj=*jkf#|iZVLk@p1w$4Fq=BR`KQZ@LW=W`w65gmA$~>)*dHy&T60uDUSV$+i=b(8w zn>p&l?D(su&%S=nkV?hF-W@Q}3NxNIneks^suvM6zWij&SYRbDv#olAt;gF$2HN(Mq_c=%q^5EvAHc($oXSItqQX_lc8jU=@x zmB51o3C-JH$04I)A6Ur|0w6AG z021r`1g~wJlc+HmeuL#FrudW$>yOBd>cG@PONUoX!!}Fpx#^3`xzfCUJ~40*{RLmA2VLKcTp|9}g#E{DRNq_Ze=Ib|`ecG*78K)_ z9z4*-6|lBY!T!Z%(FsNz4~-le-VsI4Z+|#d%#d-Z1^dIhHSC!?&yvjao#UM1GyC-l0fW*~l>BC3on@GojOIeg;ABT5hk9gJ;kAM2G1ujjTB zyk{?&IrlclJ32m#gyQo=oDq#C^1dI-K~F2h(3q$;N5p|n#}d1SxticH2Y~fa1*@9`N8I?` zHo0-+xfSA7&Pd_yNWTEPq2ZCf&sXC&Ja29!%nJ>$Pd8vKZq3&5tRqTDfJ0hUiVOia zBWL^SMokx1VZ8C6`oP;{ty2P_#|F~(nJoQSPRO{5%~j%dUz8OJ?D;?_nE*i^dN3aw z`L60t$UdZc1te~!o=^K_{)93a`&~-+>2cqqB=>#mxG!`V6YJ6yt4({91BR3Au_s=v z(Q)+-#3?_#^;w&z$_RA7g}r0UQeiNo%d;S?P5G)F)eS`>w=!4PEMlMf!sj5)p<;dW z3a#aQ4%5jT*)&42Zv!U-k4(Rp^#+JjgiQOeMiAZ+%%D(qvELDc#~J~}EPV+HrI_Ex z#$KS|{$+i#`^zDAP4Y@Uq87u^s1O?M+#bl?tTuvHa3%G_4DmyVDL{qxeaW4J%nKUd zc~nk6j3^pwK7Djn%%)T&q(H<9-5ni7%_Qi~Hfs^k+0kZkhe(9sy&ShQA%3e={GrK* z$>a5N#E0L0GCpkRNaQ9*B`fUqW=PVG8Ew}M1kM@qoW%VV*E-|?n{iwnt(D~pklvQ| zSgyxyKBTzKedx+xeeD(Ec{KlvF2wT_ruPX7@c?Uois=`8us&1zh2Mt^Kx_kGT9o*M zeb-{fLJkwe&Jk033117TtjI4ScMD*`FCX+YKBqS>hg5n3G0O$rM9OBSeKo9Hhxvmy zhvT{Ng?}MG+d|l0cIUECUh)tBKpxO zP@{2q!6_DciAehmjJL|vT98r*y!yM4ckS};Y6m)d++Yu&+S1KMC%^JLi&Cu44CRu> zy(o%R(1Fe^ITK(XC#4x9YkwA&=@9!Wj;lSCD0yTO67mEW#Q%`JM83ffIl%}DuF&I5 zUIdgt^0zc6rvcqnzz+0m>+;Tf0+q(>I|SOHx=N)hOn%^Mzz#}h{L`&k?7ssDIgGyO zT|lt~TPWV_9h$9;8OO$B1ZQR>f_P2DNzt}Uygc~EPek%>Fx>)s@=XaRGH8Ry*mBr|kN`^xXcFj-p^z!LfKH5GgGabf*l=}ZN1(O5Locd+L~ z`Bg2mG5Y%qht>Rak|8HT^qr(zi)@C#CZ~Ud3LCm0g)LBJA=cYNy&G=2(6!e($B7xi zWtO1XhO#V`#0bAGbb~NikTI!`qY0TJ8`PAvNdi?=ID`Fdb!0H`ypnYgicb>jfRd<@ zw~q8>@B)b3l0ofdN`@W2w)^!Bs^L`R=j{k%$8NJH7^Dm?=I8A+;bVF$OkP6~)vKuf z?g$#nt#B}p>){s>(ZAj<(felJX!W3Z)+KJ%L@QX&lOaC_Q^2$NGc=JaaxkT|sfWnk zoK4y`*hnF1Z5ueo_-e4};`nNjPgLxswEwYDzb+-+)4xcahy=CA-p+x_PfV+7zW`#S z(&6zX(x=Yrm!`@ie4Epp{QbD!%a{5czjQ*Zi3c=$?u)s1?AZ#YWvySJmm=%r-BcNpeZCPS55J1 zS{g{&II5v0$9unX6lSSK-MWtWDE=Fkt&X;$aPW3#4(|7bJ6NeRJwUA6#A7+KxB5*3 zXC!`nCx_IF*Dw25Ch>|0*U`>O=A-k)5q5~EJ=j6`rnw?e>LxO$Gab}+4}?dxPw^`Pt)oUz8==dWEd0-s z_-oF3d-uu%(Cq*PPz5X)d*m;-v5ZJX>CGvpj(Zc&AT8qJ0HT{wauiL>Hk#BWWO|nB zcxq$02C7#)_5S51@e0w-3_=&8cNE1CxcCfk5TFq^4ULVWi%o1o)LHPhazsMZI~AOe z3Z#pDV4=tuSt1~a+xxV3EtvOtB9);WKM30jRUD6CC9B~>iqS%%OwaE8>MvHt`W7-) zi{fui+wm1LqZG(6#L-_v;U}DZmX2W(p{UgB<;4LqkRk|z9M4EK*pr7iMdUeM{`VBK z@fDm}&-3?>*a88gqT8EfVq}eu3=>0q;y`7;F&T*76_mt|^w-NpL7(AxNemv*n#4As z_aoVFucJi7)cN|QPGZ7y&S)o4|_CYITFU-&xgNT5S(L5 zm-TQy7-i;s9)CXR5tR9-C_VaMeHQ5vTpDC@c>#L!g*Gt~iD{3C^r^L#XbvBbCSRh^ zd4?+pYC}SMRyjsW@h~?_1ipPi)Zjhjue%TEwr~%cfb~#IM8akmINm9o$rs^;ILV|k zL~9%U0H)me4IUbeDESTxmCbL-yvzruXiV2k7#m51;+_n@Ob)5bz>~2eYkC-S7N#JJ zhY@5DYzaJC&{u#cvEt1U1tVTl&&t-M9LNu_KzT+>ofsJ0x1NpG(+qs;rT-O=D}o<= zA_d2&FA**caRgLvTq7~j>{C^FnH*1EZ@RHn-kUR5(TyMa==QXhHk=f8&jyN%TD}GM z6qC#F6EXwc4zc!d2jEP4c9I2v#hx4ZSrWEG$SgcR=qEI^`KS+*6qkLmN&)bE+fmE>ObFzu#Y_JLeGvrY;9Fo(?fWI8mxIKX1Gec9Mg7SirT;b9M z(dU5vM#|NW+;kEb7pzlr*Aw%$(mZihG92+;h$l_=-#6G6&m)u4w_7kNc_2_^y+Pf` z;>!klg(|H!WX)m+oCAf5)Z8tWr<8dLt?160y4_&;IJ>vZG*y!iRg6=yZ;ihIPYOPK zdEvxK&sLRy!3P@}7}?0qzFGzZRpbGU7N`IOMQ)gYADo918rhf$L=%3*3jp*DXN=N9v?>=DUf4g=-Q&PV3kQM2U7Jj6`AQ{4_ zl))(-LbUuFE86LN<6$VHVBcXX&Uzx*{H+b8;W##e)Pzd&nHfetY8@jsf2Q#TdJ(!? zVz(2dv0UYe;Vm{iPo#;Bc-||TJHFcRXB$6s5;dM%7}jd=PeX(3wb!nb@?;WVO2lJl ze-#wz6;{5t=vk+{KVxDH_N9-y<$DfrUS3SFof_LrcRV&ka?_htR)XD(j-6^wTWABa z6fL%WY;*pz|)AlWLG7Qir+1mgv=>nV`0F5 zsOVl}GgVlWk#}BskO7AHCPlhCRPy5n!K1gB?GTBeW^iNc#sm(G%_p`r4yD{XEaUHs zX?-@nclR#*QvQMAgJsh@n!O(RW`KPWq;S@cc&b&7D9Da#{Cv6#fw)|Opy@Cl!SGb4L%VF*yZQ}O;Dpbp2 z`)=U(h~72)9(3^m^w{)yL><@kc|^TaK94ns8IsZ}exzow)J?D&DNX@aqjwFg8f`X- z*{JiHn2mZb$83TRDN`e6<>!C^8EVls&xa1xDXP~ z1`sbfN!|B?Q_Jvx#F^^#z_}G@6&ri;+?XEXM5A@bq-o>@Mbh`JJJFBOGeVVn3(hSu zdry)vd(Yk-Z*z}arB4h_Gu=1S#e-%{Nl)S)AzJS9d-cY9gDgdoNGBpqlq zQmUqmgu@=^fqXi}g~B%oH5>+a5F{%I;v5J4i}_&q!}>5j!{x6VgGhpc0VYzoySz)h@6f1n==@&=}a@fvBQ&dy9SFnqDzm|;ailO`5o>i zm;iImIo#HX4oSVQF`&-hgQ^e^waWL10P`t>SiUNb&$u$lDjnzLWP$b*IuNP*cT&;$ zfa2#@`m$c^pKyHr@C>;go|Lm$`Mz4IH?>CvN$%ivMhO49-6`td`}!j?Dy=(41sM$8 zym2t{umYDOdC0|7zOCmrZ_Hh||0x5J6j(uH^7E5se~O}oNW5(>f6HTP zDc*YN^%BNXRA@4fOt1KN)XaVFF&RYT)?Td_c_la7dACak3Ps?I2mI`%7g8#Zr@|S~ zYznSVGX2A2rXQLGKg#uiim7IZr<~M-LsQYuG>SeNG{!v*H0S>vDo|6?fW9UGnJ0E6 zHhJZ*vm;J!NY``0#Zc|+L=A98<5_9B{f?wUvJ%5AgL5*zE{WZOPeK?-vLPSL zoJ#T8d`R%|-#^TU?yTV_-_3`Q&&!_*S($Sr0v$edIc3JDa~X+quGcaW|2_9d;wQ)R zp}F_+txGEkz$DMX_&vVFx6?7HpE1%&Hhw;jvpf2a+1ckBSX)aHv?L4(Aih9(S#{cXVCQUqm^?OtmSLl*Gr7<0^U7*;c6iTbJjI zY6RWVza3s)AVP^#Hdnk-*0l=1iNXyFLY%?A;@np>cSuv3WQ(%R;D3UaBuf5B zcp#uIP(cyfh>Vo*n5?wo7O7!h_)`k1T`}YRQgK;3i!_U~j+Jb5zeat$L`u)Ai_0Ti z*hkP8?@3T=PoCH?j7Xfg9$wC8bVCnx?fRH!?Y%A*620$r(nsxm#Gc@PN1n9yAg(0= zn+K>Y$MGxAxh~|2YXMFDBs=yT2kFtE^^y-nSl&uQd+ibW4(gBus=@t4A>6Bik~9|6 zArdRFpbDSI#l?h0QJA@k=@0O{%*I%io$s)xV0q)G6G%J-Qp(pQ_#v+I!k=;J%4GFw31=>qhKtGHeY0v(-y~!iXQ+J;`2~MTREceNQ7c@GmvLz z-_fjb@}6YKPbC7WedWuwI0K!~Yg;_Gf-}p1Mkg%MJ*-pR-qWw1DxxKJPNyg$$1D|>xY zv*sT)fq?Kx_7gROQ(oc`WYKA7HDnNvNv%ghsnPmi79yd@1VL4eFB0Ds!3lDzBW7F} z;qQaie4^RU!M|8eeG<@qlm-`qyuz)g5*tEt>ZvPOuk)hcy_GQ_dG$kcc^*1;NFtCN-zPUpQte7 z9XMz2$mnqc0uTZ2<>aWqC5bDZIp7^K)GRQ5Z=@gr_dPD4*_A z_%(9+jgd$)-k6|MJ6?KY=Gd5xCh^8Zxk21E2cK``D!>P_KFy8wi9SY(SKT8E6nm0P zcsMZdKdK-IhqH*{(?{9-U4{S}oH3BdkNWc=_Q;2ed@!DybljYu(<4O>>9QZ2q)I{D zSU#?7`Yo%Mu2Uf2GRX$2Byv%E59PDa-)xAXGPC8&B;V~{$>_psmvNZ}eDO-q!d)2tb16jKORstXa6t@XqLlg7en z{kj=tsU%G+hgphEKmvbU>zgdnDJ_sS8$c0==LJN$xH{K#HKdscJaT1g9Ant*0ziJ1Tzba(W;hRJ6;j2fc`&3oP%scI;o!Gz3j_ev%%>Hu*{)_xM(GFLAxtsdxDtqES#A!n=T0$UeyhQ7Y%cMUMa_|!%5sr` zjsvd)3!UG?V_K{3m|(2<=4|j1D5AU$##F}!CxdOL(}5rLG(#k7tb8xzvU=cHjI*K5 z%2Om+=J>TQU`>T0I^wztS4?WXMOnhrJ)o5J0U&&+LrTiYILaF}G$N)kg1S%fyYfO{?{~ z2;*Tl!WQ@RQN<4oo_yqJONSY+Wq=kFxk-j>ix%)-#(}kQlY%B|;2LQgrIW;-kqxff z2KSmMS$DtpCGlZ69bj%@ON|>4U)4(B%5eI<9tDJg!>fz0*!v}dm%Q*m83)P{Y&Y1Y zy$6W#(OX0fxVp(cR9*^3SRgH&kDxk72EsuHu(6!&_{|C-#5xtI3Fom90EP;kaz zSkio4c~iKiFQKYa8M`C0xj?k|_%Wy3S*DkW!_+8rcG7v_!Af@a&jsl@R{&fOPOiB? z$2~mR!OAAYBu6qSlX6-s(_wP(0<1%?FoF5p`6?}x_gj_w36V>MjUkzSY!ZTu45gFUeIncuB~2V^NO==x&Tg*a!xYTn2<26 zwBem<*{0u!1Z2Zp!{}B&-+-6r+dqXk4)-0FT&;z4r=>A-idag|9%atKX(tfFys2|@ z7qJA{!CZ}4G7B_BW->~ko>&!`3?q^5I?qw9$XyWF{*=nMi5dB!Sy9=ZG|)nElrVY+ zak-?6?&iq2sw7%xN4s*Vij2$@)i3kb=w2i)$Y+pzgUCA_W`e#r=Ubzel|JRhzqIPU zWkZw*`)7$+W9hs#15}+s%hWN|iT$K3C_8e;g(}ikciG>%dx3=6m^f!#5GOAt%df11 zlkQhR@ON1~z_p%}p9IS4jLZp+U9!1IU+*I=9<)aoPbuZXxTlYKk6}K=4f2&30FuMo z{3Os-xxzFfM-q|JpMV7a-4#iBkqk7|@z)G6wexP)P+4m+TL|DLYf0y2=X#QxtbIB0 zHnEy`Y8I1XzrYVD73?N)*uWeC5G^N$hY)VJ7zpeV-vV< zIyN>i zuYiw_r~*lVQrmeMWq8ivcIt4A5)|TIy0vIr6-kQ-zPoxODxuS-bB4}+U9~Y1uSq;R z@73CKqrS$~zUkaTk}6BLx{-YySN9Qa{qbXuL;|FX!4YMjl47`&f13E2w%uah z$MZMOdDbyJq_U<&iB?ULg2#DIlcQ{U>Zg4q0Yd%{N;Qr|QW8A{B{}a+zHafi5(K6+ zdJ~{ka1P^*4YF#(yWb|pz5i})stY=|TBfBX{L}15Lw6D|)Uq$-R7fe2W;ZM!Cb28@n}!y=-M~Cv z)^RiPUjk1QOGU^1s_+FtSO6}0j_m*tB+75P|U|fvZyi9}0ZLDZ-&{ z98pUOtgb3z`Po+Jjq8E@s85UliGexZ zClDIV!$xKinZ=OG(9`8e4)W{C!xmox55B%PfxE5ZPgo6oRw&Zj!>NV12^PJGF%xYU zAT;s5f!hlMTZCStso3`^Oea3DCejlltb+dyIH32XZ81SlTQrUaxfV`L&u*;9&YxCN z1v(^x(GA;FS(<{+tv%!rHy>uwW$DF~YwHl!IYdytMX?94cqJS^b^Lf9#scqzj7 z4!3~ty~FJxd~bUQ*Pv83`+Qc!-&+Ck_qKs}#D25>#H161u2`xi0imoUe6^F(@2!IP zjn5fFnxFEhG2htywDG7Uao_~!i}{!wG5+3P<9xIHz@9pZ&o&$sF{@e~gplXTsnz<$ zwDcZWJJvqI`2M~`eXV7}(= zf9lNa?g_SEOeHNqOK0*4M5ldCA$kbKl`^be)&egQ-B~$6Jv0j`z>1s&5?@!-1l@#c z%3nZ^k7hhwqb0-42@cYYL;TXEfpSh|W9bZAdy88eUE$g2yx4t&(ic-YH`7iEb;UUo zQ?PE~eSwB{Yu$Lf1_(H&inNW@KyFdK5oE$fG0Sa;V{(JYL@YIkL$4Tt^=jfHFDtec z6jovu;fFe703u_469zN)rQ%BTQO{G9+_`o}-tNN%lwv;em}+BXZX)vtfE`Jt0_kUI z>-FTIrNgarFhlrUI$lZ(3^k0kH*WOR_6?d=(FA0V{KJ!kEWxxDTlKVH%B!DY0ec8x zSo0L!5P)X4h%M2)o3n0iMeGy}Pv2naRJi?)lC9w$MVhw;3%7zZ0qYg|>EWddaxppU zWtSDt&o4r$%;aF%2FvwFHn$`uaxE;$m6G42xXayhWW^~kIX(4|!L(74TcSt}YCXQD zVox7C%gCgQY>7Hj-PQ;6z+|iI zXFW?d46O$Gsjn4BQt7Xr+Vt9K-g zCGYP&)ugX3o-7eKCIdgw6xb#e#ja-4qR_HH{MSQDr$I?}hP|BpH%oe0v`+r{Pt67kZb%h9y76E|s375LQt@y(HFd zzlrjQeIkE^$wh{o9Rn}@EEz~ojJzmk1vaZl& za@l{w#$Izfus1yMqGMfx1fb|!qEt$z?Ld~BfyktRp(vOQ^mToGh@?49CdR!fRkZ89 z$WL&O`HZg^60bqsBpyifG_=D?CU*)4_CbXWn{uwuol}#stsjQ)jc5ZRtMDGn zr^Tk9MP);L>JY6H+dfA1i)-SPw$&lzMA@<&J{oKS>{m%VB-_#30G*q+rgMQeuAvPI z6%i`YppgbWfxc=kQkEj7fNVXvT-Z?4av;jUy#(7>&X-xh57_cb$tQZe|JW?D0)L>b za05>M%%)ztDIcfV-i(bCEE{ui>ilm^d@4Z_LV< ze0CY1SAuY7m|1aHpXXaBD424(pio>s2O;C*Up%7)9C z{FH0iOmuLvl&rwCr4#%sb-s(l8|Nx~-^A04$T>g#Sm>$<-+5l#4l$js8%+ezisW*+m$5io60ehAUB)%qB_&y!XIP|vJD~Z17B(zsS*mC)r-{#eoHVH8k8r9u zk_yijfo=S!c(9PbLaBu0zt^Uu=#R;gqQ6CfNhq}!RK|^jvL1@Kd8N+2&8p&QMQvjxsazSB#rn^g8u8;uL=@gy|Vd&>nFR!d&$s#;BVV7M&-%gkqw(b*+N=USbL2B-#XUBbhPqhLR|ik1C`|%Vsif zRAGST-{_QFMM;dnIkK;>c_IIKRX#sj*+99uB;Lwx_W0ZOJ4y>L^LKtT5^eA3uI|SL}x<1Px-`B$MCNueh zLAe+9?X3G4tg$7rU7!V!VShRd?A;V8CZQAN?zikGVulENrqkC_0;vu|`=7x`d@|MW zH{Qv64DACa?>S{oLk&XDVD7jmmFnW@Q)6S~6wFC!7ad(`AZ0C z`J(=C@ZtQZoK?ov)76HCsZmd=+%MIkmXxlNLwu(Nzsm)~ILc8h4KffegaDmXyNe2W zkTf*=&@YB?;b=mT;@VE{AGxp?tPXu5;(CAYe*L$&yoYh-b*0Xw`}LhWGL?c03EkSa zEl|Agf&XKCg-Q|s{@w#%O(5oZA^^xUW%44YiE`@_5NCs|VTu zDME3oDYlCoYcX8b6@U!JK3FX8 zE96P0mgs z<*44f$WOsNk;)F&TwVl;h#WHp$5q~gIuK!Vvbrc+GL+`kk#Zfm;s$O!oIXuDb4Bz4 z8J4Hg2nHlv;rH<1L&LAY+y`zdP+oe};RyA(5WF{sc0?-$+aG5FBXrG zC>k}(FD??*VX&Gw^%yZk{eo;17}R~G^D;9{PmN04n3)J5JXbe6p&$lduwY4b-6?T< z-n>Y{HI(zZdxE&{0YjQBfr|X3vNyXJ+WR^Q z&ZUV-A8>waaNJkf{50=VwJ5$pug5S2or(5ZSNj$w?3tqf&DVQm>8_03M%2^1@`PwP zz;jmeu}82rp}JAvkrSM1qiev1oX{G0i?%5m=`M}RAHF|6&?9+p;R059YwC{)s9dQB zRd?B$5-Gbpy0}^RB6!SreS;Rt7X*bluprW$91A!y5ug$t(406U0T}_ZOLZwP6tYyh zb+eV-6$n}pI3_57Q;=etY&jVMjmu^RW+hO5D2j;dHUw|TRTQXLJTD5pME+ZwVT%$m zT0p6mH3_6tS{!qbV>}TLCiC+gP!v1>`z^_MsOru8KusYQ&~+{hl48R-D+n^l6i;&{ zMP;>Q6=5vZN(*W@TE~LgCZA$K&ESFej~CRup#=qBax9(sQg6jYwxgsMS$u=GQR{M= z7B^T{zG6SBb7+O9AHwNZb)bt@iW>rc_tYK%~OA8=>#q&ms4;r^LL*^-n z>r8A(T8ELpAoh49>Dg}TDrK@Op>V_6Rh)cy@%kl23^;)dvXWRij8X%;8_7Ms!UIE` z(@%#Pen3R#%{H7z2<_DC=%~IC+K>^dGN?UG$CSx z!dsX11)x*7xL|I-8eWOZaNK+O;^1{}NS4_#%DTp?gRgJ@RF!kC{C+(Ye80*$*)E4^ z{2S7l3=Gm2ikdAW{@U3oGctl{aCxD6!2jRgw|6&jEc^a{KZVfF;>af>`AI^Cc(aLt z-~s@~%J>`h> ztrxg6Z&pu}4cIus1iqlD#LnPn_TUbRZ6)xP^_&&wN!5Ub`o8eyX$T-4j8}{f(P@_UA*B+Quz6q!dJSe!K1KxtRY!!vKng`f zpOOD>)@M*G5HKGsuUwLbd;3CF8(}R@ExDJu5W|9(lo)yiP-F<)$_)#?1k;muWiWO1 z7ScMPc%T=H2&no%+>m-9z>-&rRoFQy#i-M+W~E0kSI1xyswYP`x) zZb8l!sR~+Pis(Db4hHO$rFXlSxTK8!hsY)C`-SQa#%8pO-O~J`3GeFveP3{||HQxkXv#Sm}?xIKH@F;EQK}2fkR;Qc8JPW(oof z(C0Vz-55{oX?TtL)Y|z-j3YC8j~#GAtW$Y~IL--t-*t*<{D*6%IK3NUGZojY$?F2# zrpq}OrKJDx&B>sP43yUP19f(+5+c>Jo&1Myc8n)i^3CJFCErZ;pA&F&V#j?zzJU~R z3oAIHPW>1ft?q(}Mh9Dgyr#L;w9%)es4`xgMzH=Ax@v65m&lU4!}<&?xu}+D4|@+e;=1Ep`P5mYh3St!s2Ak|kkgL-0z=d)`H}}KjsS0m@&hG9K9t1twHg(B zrz4yMMP5#Fs&h+W#>yr8fZ7Xi2{GsDeW{_hX$Hwj-N z3Qc?prw;q6wP>otHO(lr3pU_Blu+7_$qUMpsc16=G`jGVPJ4(6*+G3)A}l$1hjE{% zrxj+?r|Hz>t}eMGa7j~gRR-7HRw;wD67qjWMziK-M`2VJpsrew7<2i*I6RI|yz<3G z2NB@H(HBi`_2Jc`G2}|k@Tc4f$s!I{AgGlcOM$nzSWibEYzI!LU9pp7KODkjsGWCw z5N2ZnvJ$USj!Mo$cr;GBXFKfhb=r2H7u_KFoj6qBG+`P;%tg~k#|PJ>=}=r)5oIKxjXHamJy~?ZlpL(v8QSYO6mhfCUX~38m5Ze^l?c9h zQn=GUH41d9L-na*O1&i%kz5v#fOZl4a9s&~HUWz|eI{46Z{hM@m3(x0dw3*mI|hXz zlk6;yo2x*vva79s_X?2!wtmvoEy}wZSD7~_+?YH8du!t)8Os`TSW>TxtZv?yp(HLs zoj>Rx;DewS*%3G|mvxh{Qw{+?LxP104vcUfNgCb~UsMhgWu63qf^Uwqy-Wa7w2tMV zjpFfBLsblUv!^0Y>)Zf( zRH5a;8B<)bp}Q3dsOa3=J-WRX+a>zq!6}MXa~yPZl#P#F#m<}r4tfF|`Njc)v!W^X zVuNuA)T0r{!4SRgr(JMH@6Q*5WxsPqc9M?LlkRZ0hrsjv8JtuWgjxI?0yY?xVM<|~ zMw?Y<&CF+-n!YbnQ%bS2RX8N)RfpuGgVY8HG@U^>w}&Il?FPth11VXOmDToP*Hmg3 zF0M*SHX?3O{1QlO4kUT9Q7v{GL6wCfhe`DeMS6A!Ab~2RQzeLA$*A(@h|cJrH#A6Z z!DbMHz%J9NB6*9e2^9xscxQ=K({R+#=u>mQh$v0Bj1tY90U~ujAJ%L3BOll7$vM&2 z>@IwN&Yzz>!q@DS0Z{I}_ikbvEf$rR)Y~yfzAkJLCtFuFP=WBLmv!O zbxBW|Y!eUY@E3$)dU@qKG;JGqLq9Djhnch*6bk4>t~W0C0Z+r6ld_SZAUu6Jmx|>> zDLabBi|1v$AO-DS0WV(M9A5abP&`pfaOa?b&%T9ks5zf6a6`?(HLXK65`tCX1OyH^ zT+UGDfcDZO%c3Jyd7n;O&FhF6RTyHo8H-WQtR^xC^m|CTcR)%j9ZE=I3ycpi=OHqI zGc)2Zl_%_Z=xA6E!>|69mQv0AHMT#Ehapz&OEhP?!}<*7Od^es+?x)ojsLk`gA^Sz zfbK)G@w~`jGI1mai|;Q|PN!tzXFA1?D5U;mGGGWunq=?N1z>al;9yK+00eM`@F+m3 z0HpAMx6&xtR-rrBglz%!5413*JE7!ble#^pL^==bRTe0i6NK*3cbB8HA3zx!!-Hl~HHc_UKFZ z_6+JTbsD(KOTP6B2T>)bQ7;Pz$$uF*2!4Yy(gxla5l%IMQN5f0EO=6;aQ+xc7^>JP+#q_Qd+#=2U~fxmrPFb=Yw6O za7=s3?_oEOc8RHyMtkrgdHHw`Bp7Bd7>Ro4@?71n5u(i;Tj?-HlPv# znQbF^oEeYhZ^P{aGEtbno%8vE{B0OgJ=Ke_wV0%{9wGi#)Fi4fQDB*P+D5tykBF8M zDFDdCp)^Lp`iXW(bj6wbIS^bIN&^!9`hfC+U|uDAE2)GqH#Txxb|NUHVN#?zU{(Lr zkxoe=pmp%9QJ{oM%zAsa)uc0rf)VoB#c=dw1$C62ox1wvA9s~p=h`aWRG99W6F?5c z#~UEOyz4wC(T0_}7eJwfoxe98<5FjH3M0O;4GQb-!leHi>!a?;0OHkJANjn_`V>a| ziPxw4V!g&1Szy=3BMYL=TG`h6>T)j>tCqRWfe+(THMek$^#U-%AYT`;92j+0EHM60 zjA51R(=`^%VfL@PUKT{1GS(dWV`uAcPrTH+!Gq_@vD zHCK?j&i+jj5q$%PE;u=Eef8{Mm0@1a<1E?KCT_rRM}`|6((e|01)U~E4p3uUn&UR& zVe}6UiWFw%lJ!@tJ=J(0W9+DIYjoI8Lpp3Hbmf9vqkQR8Yk*t6 z^c;4MDSeJK)PShD1z*rz7;+HI?c3t!UoZqA1^!XehjcMWk2=T5N4&lJ0)>UBl23T( zsnS|{V^q?KwiCT9$@LrGLazUzU?+OuazzCvHy{Jd4lr}+3Lgul+|4nO!!8$c5jVEr zlF;$d((;I0uLFkhgvjDZGzTNwW~Ia zF9vB}hLART3}s4%1E!Ops>%TqUV=z=-Gc$ralOKrM*Ip>qLzw@gJe!A#fMUm2(AVcGh@?qBfD=(qB_V<2jR(H zNeAOJiZS86K07<5vvY^e&a=YVdHl)FPC&n;lqr>38OO2Gy#zcL9AeX^iIlE~pHVhM zLKduM`60Lp(J&Cbb{t-C3MvPn{qNAmh`r_}x_TH=1RCLDaQ8$$9rWJ-mTI*`5RcKO zs)n_=GJ@`7-RQb2C9hIwmMj(Ojm0 zQu*Fe6eA>?&dP(CI}9EK$mG={UGjzs*HoRicy{J8bdr`@A=sb4%?j`1J2 z)1PgpaCX6w%sGC{OmTz?h`nSvri81u-=9+Q!|%oyeK;EJa`+FI9?;#(vG!;F~p8AL$iX_8Zw%?`0K}?w?cx<98OuxC(~J zHK}pVKCoZE=$e^$DWvr`{zLoS1N)uM>un2K@ZJ<3+izcWBWxssdT~qYWpw*#tJJ=V zmbkBg?UMG_LUTqU=LzHBQlEAOOV91szl|z(fRVwjm>NsrsfF{T3Jx7Nc-`|Ev?DSY zx?Ff~A?8*4I;7ZagKFxR{q7_;i^`s-dMD+FZFiijT`*UL7IQ9iWF%)gHPAQ>De5Z@ zhvXJ)22gx#d-!!!?7=u%Ahrmu+DQi+H96X-fQ2fGK1F-5x7qNn-t(*0QC2JM%iEN?$V z5A#hFHMz57eXRcYTl!cLukzaU{xP@+Ou;R9v&oLJhF_w`l{>7@;Bkd&M(NQgLA_wh zn(31-<kie+~p`qG_srp(mv=cBk@Tdy?{`-3mI^hKc*BG z5A#kpdIi`VS@;X8$|`^5Cq7e))9?-XE59koOs}hCrlPK4(O5K^uQl7V^sATczVR}J zI!j8usFr>Zb3p292#hx9xA;8ksl!C9LQ=VOOdHIZ1Q*dbC_K7Jik$Xgnl*82Mvz~S zt_5{wkRt%Oe^j;z3VyrFm2?0uUCQBN7XD^H>LABY{C`ZsGs31-nIN`a%eZ(>h%2X7 zMl5*}6ia@jbItl5uU058r3zA|*(=SI^90G0d+!pI%yv~)wum&i|H<@m0?8ZFokWqo z)E7Q5gh(m7V|(c9fUk?ilsv?V0di5E-smhIR0NAI6E%h{3VRKALGh?wTkTl%0k>I- z@btuwUvhgiVwq}*UX?4#=qTKq`NB3NwFRp{el8y_a{B(QaJYV~I$R6*%!EaJl+d+@ zE8HY-dX&zBblT8NJ6lTXG>*`~zoOKstX!i-F5(HuWucTmp;VmXI6Fz&YruJ}JNb!7{L=$a3CqUO5ye~%R!f`|*h>ZZ#kZ>m&sj-AQX}t1rwS4L%BfQC*P0=vpmBFYXxhSvYGs-FTS$x49uH?!WWXR@ z5ohHbzzU;8C4Z8ng2JaBwPMQl&lQ?ND80mCw||s0Ikk?|<>jpexpE9mU0~ToiDNY_i!J-yB^S^KQ|QjT`H{9SOeZi4OTBqg z4oVS*xpS2Dp`<%CNuipmQGXaRR)5Y%!|X7bhi22WccY5w8q`Fg=GtQxNvr+<)6pPn z_tFWfSoG(OQ{aa81-pa)Gu+P4L2l=#YMYG6uX`{i#Z)Syu@ZroLn;SiWR$Ih;yzfQ0zgn z1}agR{7|qHHr@yvDhfr0OKG5c9|33gkT}b!rcD}dX>@r>rX4Ca8XBLq%KTbpg2+?( zmjV;?(+x5~#Bc-*9x_gZNKZJB5gK;k(5Z|FV+GN#5~IQ?yYg{5+Gx8PEPmcwL$a!#CHEP@z$Fi0+?|;|NQXVm;7m7p58{Ruk(PMHzQ5Deg zOSUu~XG6-hSzg^pY9WwwFfL7-a6(uAv?KdG>4*rg$XH`&3(iOFL`3$hP!b{s7lDG+ z6(jT#&QLuOO3%4D^Ke_12V8}*a(sAZI3aH>r^MG$>9m!^0#y-X{)hq@`|2aOlrc2- z&ac6H=ij6$TwA$=@lQ6>4vL27j@EEGp{ikG5d^wPz_6Ilh)eX;HpK)(*m!QE6Mulj zPabtWdpBUqEwqV*p;F$b)4^&kMc2trbj#cpPQ41mGb2!%N-AA7m?@b#X{z1LbU%BG zYK2{u^o@*xAd1M8wA?*SJ7eS!MF~T^h5hOtoB>XbHb=8Mhv4}}C$1|*ad0ndaK*hfAI*uS(7MuY#yMLY2K(g&JTI;nK|@YW?pHqpj|$)tPU zT8Az%9S&Pdos;g^xhaiW;Q|wfskXQ>EJ`AGDhL>r9w(A-bSf9rnPo_PwV}6cJStBD za^+D}vNwsVR9=``P>oWf{JqQPQ0Fg#$xf+4ph|S4^g}A$X*5;bhkHg$ci|MLk>b<* zMPcL>o~$%U=(G@@4~B->G7^rU#4~8G__6Zb+|O8nlTC^R(7z#%lJ3MW7?w^PFF%(B z`)CD@XEC{kD(6#%H{DQz885#{MYb>!Pg#5`Tps}@&s#Ai5>o^b9~4bvo$a!Siu(~x zB@#kJs$inuX>W_Onl?SK?R1(zVWD`m6Ur&(%_+U zA(PApmSuY7V58a;gNmp(N>wSkW+)AS>Y~2_rsyQlK;bp35EurrVCHY2TsqK$O|x0=ILY@{-YO04 zzi}Q*4}X0N{yzkv@eB@Do&1l(`KdW!?^#EA?aQo$>t-bB%I|ol6J>HA=+p7_p z*rzYIe|&<+g{QAx#QQ5zd)00E@cEk^dWwhnSvpRBL}E*%FSFO9!xduVX5jksFJXt7{!BbF0;#w7N^*;~?p&US0x0x)_Y29ocB<`;{f>WdsiUr1%yk!S`DubZkEW z{HQ%be{Z9qd@xzMho17K|Az1sT*&Y7dI%3cTu5sDIXAkV<>oDzCh5=~06mRk1INYnGQ*}Safrrey0|^QV z>78TgF9v_CPu42bfmEfYV&N2Y9?boR$a_r!OR|SAM5pP#@0=i+J^@?eVh-5eD%&!T zfX{-WATQISXQ zbF{DwagVNnT{_ivbs(8xRF(`75hmqlX$U-{CD7kGjcL5xJur}aeU_a%TOyr06r@J4 zby}-#p_6qw(;8qPYP{KF6oY^@daR?G+;uk>J>6)^HkHcfJJ|8XXlxf`bJ_ zf~X<{3p!u9^T$!ex1BM6akHfgYg>PdY9P}=Iu zbX3N{7}J?ZbY_#GXuz3qX6DGExRsp4x>g>#rN3lPfYl1*nD+HLV2GeH6shK-Cmo14 zYn~F%;jco04Jj=&OE~_DK&aPDi@z|?)Qy0;Lw2nW+kG73NqZ31yxV>%M7rc=_}vzmX1E3l0O z(XfuuG}utaN`K%LITbh>5v-?Wa&B;e$Ygot0&$}oTpYTh#9TIKaVEqb&08JEH^CSq zj)OAqsZn$6H{q9#*0i z9Tz2x3c}+kM=sDEH%uWgBBd>VkaSQ@*#Qh}4FD*3LF%z7_u_JgiUmT*bV+3%7>m<= zF&3=+{Rg;K9A%3^p)bJvfL8B9qsj&m!$A3S@mANE3*0X;r)$BWUg!Ik&Kb#~uBLN9 znMuv{Jgo!3x-#K-o1!o7*>rb_H<=H6UstnZia~bqr%YQ)t%c-}GJvE67qB>{)R(wi zBBQy3nqrgxsq$t&EVFLk0Pb0VbvwNQ)(w|n!1_SZ^X)zpK*z_#ltv4_Zp-R7iTUEC zkDB3jbhE-OT{lx#@fD-!cPH=gS#SvQuGD|Yb}_$;Fzn)_N_?c!#IiCw)gc&Ey-{u=0%O=Wx+sX<&=-a^-PnKtuQ3^8yr2NAPDRB%ch~5Qw9h8pF?4HH zh9dGi0s-_aMZ(l-a(G|(ChAXoK`{|TACP4M|Iq|bCA&wcfWu(nlYj%ag~#dgEO%I5 zG61;31ccF3fQ8zo5=&Te(LBTrP(1);`!X5Y_*9!h2rgABlS^ z0fb6*u+T<)Ill4N$3&AJqV~*h$V1+{SooYl_`4wzOG4oSx1}_I7Rt0cecjtVs_WGQGc%MR5WN3PEwyMS4`I?Ujj3fBdK9&X68`{-?9}Ld^)yz;W zn(4XBRIo*5-P%Xe9lCW4MIXg|t!nreTqb!?miV1kf`{JJHt}zv? z#{S#r)@pPZ)H}apkGqYf=v;i@-$Bd!9=hm?BzaKJaro70B(7zYa#?Ce^LrBbF0_Ro2lro1p`#g4vuJ%J;wr8f9&cTr8|GTpk+v{ zK<*k&{>^G|Kpy2kUfsra3A=qF7WF!tBz^?-HWcG9%Gj%6+Yv2YRAQ$bD-S#6(6CZ% z4q8`!_-KT{2q5>h1{g%u%C7t|F7~Yqlk}l<-Z{gGp@mhxFS<4QMOKt&WbP#csX5f{ zij#Y0vZ>acD;&N_`_tp^*YB*5OaJZL?yDyWS@ynP-?#%a|EisJ zjB_?NZ?$fr?)a_L49?lp_?+T&TFzwENMxCR{U?(kmz)YR%Rz(_qhPH5xhjOsZLepo z0OCeiU0I1P;65#Jvsi!$0{Y2M@75~b%KFI=u`T5R3h87*0++$XJH#iZLuC6@n*Ob_ zrvEM$?DvAE|9zFFe}TL;WaO~a)MTZhQkudt6`?Vfn|Uh|BN zB&T`tdqG2N0Muu)qRWXxt#4XRIL$B2ntVPL=?9 zNJBWrPTEz7aP{Xp#y&~Yknh5%PmXmy##^^1+ijKGsn?y0`$3>J&7<>x z3TfZV_Oh`ZonbTd+ZJ5sF#?g3+;(acA;WMQVoB=kD=d|1SREwm>Zyb-fUQ``KtGgW zz?%)?EGO^u!V~qB%g26-g{BJ}7j;KOU);-ZQDXrEb4F|eLQ{q*93JKBhMT^AEe||L z)k=1gLUC{3PQT9nx!G01hM=}TTF$ope27T&9oP2*h;A6uVgd@q!c<{0eJZYsyQN$3 zF74Ti!Y%k`)h&39_(bylg8H#^=ONP+4ts+f<0P?yb}OU+efof|vao!7!c-f{+Td~8 zX4qD;H=K?YaiPppTZzr&wWtD2VS38=N(uzJlTARM>J;6XOIpS7A?#uhH+=;|U>G5% z$2pR=M-%O+OE-H-3j@d88Q=1bo}to8>|1QT36r%Lt9t@zR!wx8#Y)%5Ii){DO=kNO z=p4Fv-i(`+l8g6EEN!+1vy)WF7@><{h~&=Z3^}~@v_lQ{jH7)jsfPZ-U8}f+7TLLw z!IPGx%8`qdVFC3~7ka#DyN|5j#?urGpIGvV_wzJRr6mji)Tr;0BjvPWI8~-Sa2rJ4 z0k;|5vcj-l$0OJSWv|HVdIp!lX%FEmX^rB6JVmC_KuOuEpD5y|_!{xSnN1Z$qX69vNl!LS@NyPSWudX?-cIv4i^qsMy&&7Mz zcA$AXH~bK_OfXjHAW4n%z{Vevw7Bi1ny3^kH3<0xQYAjE8jND3H7iQ#cV3~nC|Lyn z*gn#sO-*g|GAz;hQgi4t4iG2a9jdwUGhhv5nFC@GU@kp`S;xY6vs`x2d-DGIpoKCX zOJ7sAVA({s(!1UYSxZl#*7MdMVOyR29$364wA%?MFQ!xkMrUfDx-(;8M4{FuP>X*n z{4(mM5|V8K$+)G(G}D;T4ZnbGq}O0YVX4QGWW#M~PXvpBx<^_D*6l5++_fdEV1TMaU zCg%551CTQ~@GIJ!CY1O6s!v-f!FPsLF{V%t=RC?QdH_A1LYIL5DYB7#XraD3o*^0> zdIr1Tlo85BnN?hY_JnY#jYVHDtrb<2iXarqaaASYKhkzRLL`rexE^Yfk%;dBH;50& zAj5C3QW^+C2$=-W{+)2vw$Rs_ofZ)yPpjjN*%9CuaQOxb3Y$KU}G!6CguCiK&A>$ zo2bn&Lh%Y}&cdzIOf<*ukv^u$Q6?Qu+ffEdc{MOtr4sn6tP-H;#qEMhVDAQ00tv1W zxDL>J<&;I^sSS; zM{pvTHpnkc^^Ed5(h)RD7u*pi92Wt97sK0^b2XOdlG5P2Lp>#gHX=9wSspi6u{Pxd zj;eo=R3($*zM(5%pLLcRoVt^7MvNwBk5ivP8z_21IdM2WOk3dy@Rq~`SF53rL$gzk zzy2bdrS9mfHcB(x*eKqE7~;opM)}C~C9jLdSc-+on%A4Ca^>!l`l>?1GyinxArmpf z5%F11?|_)xU15C?;d9uGb~qh1@c(U{4M?l4piU-XrjL2s>r1v;2L@Xfh3HLLdo_P< zV1AK3u;BKCPl{X5m*qUAO@mvAW(#2(4&mWNaeW*MD1SuJ_i67y0J!uL;>H3vn3Tf zy)-F}f|@PqpgrjJlXTPwl0Q-}Y8~z_GYEE^s6a}@#Fkzofszv>Q^2d1Es+X3E(FYA=oQ;j57HA$nAh%*pjZ`h09kyzn*5X>}^3aOM%|g5_@@<=n7P z4Z`FI#CEwfOBfIcL4egfO5$|N)oWg-d5QyH1kUx8 zy1cv~r&uMn79la;N{0YeClc>oq%5L9tOf6xu;31~YA%7Zlj=!#d{W!l61e<W-3Oo7rNfveXOHV2dt5q5vd0bfBqF zvb&mKLqneiY3NG_cg%@*ow?Xw>+;fMq0xURflk?ti>+t^?kg1R2C*hhTHJ)96;>5p zt5oGGctP`y-{jFw_f-D=4S&1(@ECOocR6kL5AdP*C6Bg8SUD)$N0EwN_Zk;&O#=q+~7;yYz!nMR+ zYFSA@ZBLx4WAf+$^1D@BL}D&r)oCIFYns9skwkl7;!l(d@d`2)j9KOSted}!)sAiL z?i#l`{0*(8v;q0FEzHwa^90|v#i17>3LC1MNN^Wy+dfMU-=)*`Lf@QZe=hhzzF7M# z+?*(Fm21^k>FV7PW!iup(MwgKwaK0zEysZly1nEn*qs@2_|^1{mQ-beJi9pIq}B=g zNUOyT`g`KKv)hev7EvvpFt|h!C)J@b}!aW{eH0|1hgCC-D zczLK8Bpg3SFvm{dsiOz_!%@{Rm1-593n;tTx`2}qLdoN1-Jw0>_EEF30^LG3?)J?3 z6^POORRkm`1-;qY`xn=o6^;olOnDmvjIxIZAELvmrSO)wdYkMX$hHu~2jg+Y`d&2K zd{4v6M<1K^BCxfe$YL|4D-@*dW-{>Hn5*O`NS;G^;KDb210Nc(Ah zws&95B|#boJuYMmcPY*&^aPlN&yFlSdhc_RUgS=B+C7KEVNK+Lxty*ru-D`cET2{s zfAk4{cu{pm9!HuHCH-IPLJ4mQ%^&V@x)aCl4C#)yyFj}(ahOW?s=KISm3)aHgYP%* zuB_a1%rEXf_$XriJ7KqVn}Ovwc8SLh=Z(=(+2!v*{B{ab+YdJ&wL$dIN-(-1la8fp zT89Xo5Hseu{wkaj!M3*#k4y>|=&>~{CXfX{2Zu)oCff^S5D}y(^*Y@8Ht zbY!n~oJBNxL(kb5o7|k4cuBc32MHKV_#2Uisi@+2B!JtuuL|C-^6t|MttKV@#h)~2 z`|5cYL$`VAN)PR9TFISsp*hy@p{9hUU>zPNgYIlNWxoYF>$AD}G)q3x^2z*JqfJV3 zFo%81R;&4n0_m+wwZpVU=?s!dgUW(WhTU_6S9GD!YbB~wTq@*;h?ChK43qbO;v;<} zG1XrklB}xB&gdJ?IpDgTFek>LwYsI!46@;6Od2V^ugFpryt#0xA&IL=enxYo^A-BC zk`JZpPxFwdotX5}LE6(G%J@gg?j$$(D;VK9kw=lmB#46qdP!&xssWYZl$dw||d-s-5dITk%5u8DM1(j}wrF7|{*Ugj0O03M791IAfWddTs&B%9>8g6cAWjDv{ zwVKOtfL#`w*C?4T<9;8cN1fku@}s)PKsRD8*^{BG99RERCwoUMF+*EhxpxS+s&~eh zQy$-ie*l4KDG+z{xJC*HD*B8%q%K1lAK2QU0Yk|igdj_9*dG2QW9u-5k4iMduh|%6 zt1rL%_zk)OmxySLKTk1%{)^cmd>&DxB08bB-9hs3*)t3l9##1x)?oG#6yOQ*S`+nL zoW^vSF&c|@{F;EM)cb0JdP_P-5V;F#2+b98YaG^wV`i-ZKr@`f-F@2X5rwNa7+D+* zpN-&XPYz_Gl7}AiS;MbMb)G3gm*pw(s^4Sq}A?Lfi1LH z1oQ|_P1Rt{TYy}O#t5ygg_J&yn{~k6z=8d6G8@CSQ%-&}l5^EjnXv{4vf)#_Mrkpq z?n0)1ui{>pGyJWbVfB0+&zWSbtpoaW1t%6xyC68=a6lb$WbqQOeK;6pvthphzOX^3 zvtg(RMaY7RM2#_GHE;;K!{K>jfPEz9+lN6t=n;M!(@2}}#BXYPA(A%*Bx0)KVziF} zaBJ(RBu1_uk-qqdJ}TPx5Y@6c@Q1X6sAH)s#YFdA5VtWO0H<) zyIv%|v}9>7M0MAN>QaDriR#`h65S#WOcnJt&uvxhnmP+Klx^gvYJQXF`ZMPM;oJ*SxD(#5C_l}wbo_7G*YkV9t)5^Fv<+e$#P zCfii1kFXAoxW=|8zsVw`r4aJDMiY8OqRTE$r}OAB2Pwiw6px`#P;W@vg3oFVkt>;y zmROT;DN#Z!0&8vP)#auA8zgHHxMU5kgiJ3{6-)!CpA4QH!c*KI2--MC0=ctgs3EsU zkX*aNT?nz$bL{FHkd@up;qMrWfMQ49t!#X*e#*P2 z2!#3}IY!ArSmJpGV}JzO(+x#+0_9z>r4bvH`mgos@! zlBin|Ce9Q15f0kK&?2I#b38o(2O*c(JgH=Lt$0B)qeD^&G1yirG2%!)Hf);Z`gqaV zQT)^Dx_67N`Fz$Y@l)LW>UUndJDSg0z2jfA4xc60>{fU5Uy8-rd%jE9rPwfgcgmWq zUWF`{gIc{)x+N{@JgG*V45;(w3q~EScU@+!-(QX~dN?6hg1;D*^w3oN*{8>|VSz28M$?Ba-QZ!#dqKU>TG96_nX%6OiIMg{8aAi#>oOiSY z{nFTtm=))S+RCRJT*^}@yr!sSj?`0J^Ld1SP>@;8qagW=zHY+(?47raEb-)8K?L98 z57DjMRW>R5S<*GhZdj^5Q82W$qvXPXctK-8E$wl4dK{0)kG~s3=c9<}N}ZcmFQAb_ zAt%`Wf@0_gq*Bv;K;%+`?SM<2y81puL|aHSG>O(!Uanj45{1(sVrlIwVg>4|h!h@c z8bq2djd8wEc&BikeWS0lHFe3V)w*l0v%B@LGku)q+-YlTS8RiGr`?@%r~Oz>eMX=@ zKi8!`(AerdzdL{)CVPjelDJja|b-H24HaeI=hif}EF*2HEmjXT`e;<}vr{Ro6h# zgl^<)Y%!_Eau4HkfRl#P#*$y|uiWC56CNZk2cklbQHh)>D7V+5)k=Vv&SXSEj( z-ULV-rwlxLPw2Qhk81;iZw0uj9+V9`VDd<8cLo=DSsO4Z8Ynu9lu1fQMYA;z0f>xW zPWhIaxZ`|LSc4%lVsQX@?Lj)Q-Xw>5oWl-6gaD&Q=DKV!g~XZE931J{K<8hBTc)H8 zYT~^Pg)-wo?SUyZr@A&YoTje)0o_@T4Tu0pmO|yoTyv1BwT3zakbY2gD!1psaW_A% z33@PL-BNJ@$Q(yzOI^V<8`Xq2?V|7ljGSd6BuYdW>&Bgv$>0FzDD6QyxP9C0#e3yY ztvwBPfzxZpE+f**H?F;@8o~&Ev6A4yXhO#tbuTZ?pMXntU3DL;Tx39^m&qS9Xd&y` zb}PTvgCJ|?fR3Vj$wv8*B06DAkJCuA1n~e(700}xjNrlvuYc!r%o{73W8UyM>y0(d zF>kD0#WDMKHhpc*;hHz<+DlfWjkP&k^KaGM(-7>&Pqo>NPr_cXT5a7EkoW%$E?8|A z?a;6VuQatW+PtMb8Nh32`zvpW&vqo$yV2C$Z*7%h*uv558oHlGW{I$vLSB5xE=Tp%V|iwxQ^ zrNkr_ynV8{!Q+bd%$q9URjI|q7LTfBmuhKMF5%(K) zR`n)ZwF9hXdTAlJT%~xpN~o?x&|j+&bOr?dr3Qi;$0v4r(lfa}J}88;E>E181p&c0 z-xTFjykEt2Q6i?`F2O-ShL+!npk=cJM0Wj-rX0Bz(taZUGkTC=5ir!`rM`F5^j1+B~RwTJsXcWzPY{mQ&wUGEpdU+tP`dTRXz+_S`DEt%}dIyT-U zLecAV5vvMW581ZiC6!HJP-Mr~JbsmvL!mfxYwMhi)#99o8m-|b4GtO^Z2I6tPZC#E zrkga-gcN0ca9+EdVh$9UoR?q|e~+45=ZI<*SCWzng~mCgaf(N7JO;Iw8=peUp(8{p zgXTYQt}t|PwQinEt363tI}?JhwR;=ay#{`%K4pEJGG*I`V|sej#V|XldB=h5mzVIK zfht02CECp;+;8_VFUs%MnsvI6G}I4liv95u+z;$8WW;oS4ZL5+-Y-l0u?Pv28)Oki z7!9oK$QIF-eQhHy9|rGtDG?RUZZaM+UQn;C3yIo~`@?7e4L3;*PdSc1rl~+D%SPTj zo~6VD!e@b$wRyZxkq9_}&4_c_eQ`8 zdD=P|DlC9KQ0uf)o;J3jvrEXuhhjEFPT31avJ0gGQ$G!DH|RYclB2pwUjQW4^dz1o z%${JI^Z4h46Yb{lgJ}e>lK6)ySq!mQAY&3|{1^$GNU<32poOyg$FHVXZKyC_r^y-c z`w!KIZ`M41Jq6-(c8d7NX+*L*I-);xVx#ys1jmktGmtNA54udjS+PJ(WpN;!SsD`Y zbTJ#XM0e_(6I;U0^L-(@qP$C57uvTaZbA*yp8*#kd7|%-GmInAZ8pE_ecL-+?|%0` zK)Fz3&%)Cdiit{e|7Gz-yICP-*uDTU~P4!_ig{% MjSc9yNHzHX00HDnP5=M^ literal 0 HcmV?d00001 diff --git a/priv/static/static/js/app.838ffa9aecf210c7d744.js.map b/priv/static/static/js/app.838ffa9aecf210c7d744.js.map new file mode 100644 index 0000000000000000000000000000000000000000..4c2835cb40c953a6f7b311fbd6d1f5304cfcb047 GIT binary patch literal 1643789 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�H%Klq#8o?ti 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

LH2U7;=!_ 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

yl6UV3iIwStWb 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�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�|y%Z7Dq_m_S~RC%xj4!|7TSZNS(?vly4Q-4{YD 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%0A#osu8(|S2@NH1 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%0Ai*ep*<(VCmH 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≈Y8YK&DqLS;^Y~N@?Z=#3w;` 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

1cL4 z2G(3PpDy-Str%M1ppH%eE7T0gpqsgZ!qW_(;WzUuw+4jZ{z*3TC)!mzHg+iCk-O;d zxzoLs-)?^V_)oa6Jg#V0`HkOGY~pgaP5j1hqUQzjG9-7CC#xHttnTaKkF9mN>UM|V zCC;-FTIH~CN-6Z=MGnts3aZctpicX>Iw!1#kIQplpqZOWV+sJ5Q+$;Xus0Vt1?1a~ z->s~ZjmPw3jS~Q>Vhjp(5)_+Tu_d!osBo6g5cdJ(kae_KsPu8i2%N3+i`&cny)WNW zQl|zVmwY~YkDFB*kO>zr5FXKL;1Uh^zJkDDyrm{TnOmFdD}+@vIOu~!!Tr6z;Ep+5 zBR|f^4fHqWL~LQppX@d7&zu{2_pCYFUm?EbW*_k*3gU=0zz_o3NgN>`+3cMB&an#O z#g4@VJK>+LfefSp^oM-g=TDxni~G~=uuF7F9_LTnJ$`nddxj}Md5u$s*E_P}uJ(Uy z76%mY*>8yiwfe-<>`#FY!6f!x69CYMHGP<$?`QNOqYpa7{l$|fi;lVOVyMmbKE^VS zUV(UakWu1xlm}~3=$d<2oO92JpePIwB z%=2O0VZy!Ft*@~KKek@_{mY)F`p#M)((LK{*NnV=zkHPu!_&$p6ZXk^F$#c;_*12?@6Fx=1Y$dHonfkn&sC(IwZrqpXDeuCD9*5?<0-`^-Gg%N zO+ko$Y9rbb4|NsUhQ0cjniBi>QB^4cO0r_Oq|5vo=?M1Ss@}K04fcx;y;4phak&!5 zr+bv-YHygAl{H>gTR+WtIoB+z6+~873=-5&2%LJ4|1M^?OZ-{gU?az`t12||-|pS~ zv_}LCOaMiTy;AJxKqDU zyik9L7D{9uujUEh=9@B~5%647*{&66+tj2t5Vsuk7sTyX`#%yP21EOj7y$|s{^XNo z$7xLwF1$45!G{k^k!%n=OceHPd_GcL+5UUP)d=^F_E!`;FgaKbQ_s7lu)j53H!!_&(_Twpm)T$W#!}*E`?;a=5lFZ4ZwD>^~?B%%( z8%!BED2yJ=8AjV#fho@sUD!tMxgXAzlX9mAYgAs9cs*K|U_-#{-DSx3*}Nw)z?dMX zEJ9E-n2@5T!u0E_k#AR)F5;z;A(!b#R~TD2idi= zYfKKq{6U6Dk_t)x%po?f6ZQO8+9?)qSSWZ4_+otW;X@L*xfcX<(q05`*`%$31|2&R zzKwgv)~(imrfV^1tK)tzWc&)P;Ou1-nDxc^Th(Q&qVd&D#MaI#@g|QoBdq|AGW`!w z<@O%2&f^xB0O#lZYzh58ED3sFE^cSz`LEZF%X|)1J}%_sO=y5e zYwZ1YA&2E1)>ai&A3hM6BZSqxp$(xUg9-f9yzXSs>6^@2JToi)-u0XQ<@ry6jK6;M z?seQ`SsaP;Pjsp%5k{JX(xVqiVyFeJ{Ro&ypuhp{<}l^S82hQ zPpQ@6{ulW7!w1M02AnLuG>0OhH&BCXp$*lj?<>zfU455*w~y~Q+X4reC_Mr~s2>CZ zzk7NoT*pw)IcQ-htz82E%<`rsp!V`5-nFQ`<~_0*kPqT&i)QBcBrR!iv}DcS;r%@b z;Q9)@*;n&R*e(8wY)gnW2a6!ZfdGbiZq$2)N21(rdr1VN`~y-LJmT8EL68z4?wF`K z#aa4j$u^^O27Fs8sDVEoQ;1zOAOw};9^f^RigUN_P@{N4!zC>f!28aRQn5)q5G{>V zhlQxco#4m4$?bQ{54+_q%qnwzgKg*R5TW31e6?u|&ei}|lh)S|5s7-2h`vy5t3wM+ zKu!h}CsUH9A3a-C{xAs3hb7H1PiMqC@%Fm$gTY?Rrr_t*lXF3Vt^Y`H4ag=yY&D&O zGpFqZH@Ke5m6rhNb#aeLSyj6TIw7oun@(d2Fd3^6Lz)-PCJix4p+K9kFeQz8V1q}meCIiDl4&kpmzd_26gO(*o8urzB zwbyOoVs4P@A%ffa#}~6T?pK1B=7O%hM!{^ohTW3Hs^MV?TzT^p;KMWck#qh9fK)ap z0#%SSh-qnfl?hA;5?`BPADQy-k2gJ ze*EeC1t9SmKqZ31j;u=sB+3MkiRHfarvMVYFm;C;5L)ktxd;U$FXLInO8j8rIE18Y z$sRb}!881C4?a>5hLOr2cmPuH5Z)&Dt-qbW`qTa=-PR}I7Vx7-P71GEf3&woMq{cCj+A5vYKb7jA& zy3qOG-f-1Es`jPZL21avs)y)SaiMjqLq4gkd+h4IKt`ooPWZvI{}U$zCd05KxGv79 zU)OZ+-ZA)pL(T}kc;ru%LUQ=(U&~+A=QsTJNAOOJ{k;PGk1d;^uB!)(ErtVH|Gx|H zDMaZ`r$~OLQPLOKetg0f*&U0-25buXVF^22GRyfQgNObG6b#5>L7H>Uhy}qAs+I&- z3Ge|mn;B5x z{^zg0X#dCS&ToG8d20_ELS#C7wL~bO=P4oK3nqtJ-YFs0uV$hx@Us8y`6@LQmnp&T zD%k+RH^0((Oqrb*e%y1UU{L?OuWFY-9(Ot@A6FC%3PK|Zs6g@~GV+iJ32Un%;D&Y> z*@Nb-TeAl#BWet;Ze9^nr`$fa;80%`SkxDCmt(-Fehb+ULT${+O0j2>r7bA@m+Hb_ zGwKY=qG7_B&DW|zBrZ6~65EV3Lhb(^9i0{{!-Ub)1)|loEfgg=i5@H+z*K8L7WPBf z?x+&KqDuM$8Ma9D0$l444CDUozP zulNjH@Nd2)r!v(Xb(5Sj^zD5Pbr4eQ;SY53tIm(B1<=FY2uvk1^voB?j))7CpwgvY z=CNF3EI3zUGgx(@0%HUr;XyPU2!XY1(q+LF2p&b*IlS$V_z!!LL$-m|e38&r!TP$N zok#OueEeJ`#i3W5`D2RHi9zI&hL84%#t!hq!JM`-68H!fH!NrZzc~{h;kRn@Zzx?r zvL_hGa}NZ5jO7jah)!4UrUXR5y`v23MvnLV{pH?JAwy4!;GR2|3}BdnKjaFaMdU1- zsPJkJ0T=Aei@)lb{yK$gy%i+tO)cL{?S8xd?H+d%n8DA?6)ZK>$ZSsBGgcA~xWO`d zzE5$o6R*g4R#tIXe-?NTQ$P52zDt#ue3Me079G7`uIF>S6C*4y<9uzw`-dUUODnu+{^6&^fihT_MdC;6Zy}Ji{!DyCr zk9v~K>lq6D30WA#eM8BSs_^ar@0Nvkhgd(C(~OvmxalMQ-0gBc zGqRqNNp#-~KLR=)38~uPx2VJ^p+8Yb7adZfTxm0BG-^c4b!}K1(?*OZ& z+YAQqpU3Y!92PVdDPMTq;a|-2V4j}`+Gv3}wVI4>!E;={B(BIjwu4tM1T3{I91ilY zUp%L*v-I=ZTg~#cay1b@pWUqTZxI5Ew5jAG{oR&ASN?7_c}ESwoD8p>@z->lIz1!h;LTq#z(w@% z0@*s}>+k2Y_w<@BRQ?8)=r`7R2=3H$w=vgXd{ z{&{VLR)U>|P@nQX{hsAgYUw6JQt0pJf0^^0_XslOt`;|coKASMBp|*2>vT266&{?4 zGNbGRl&sg%*ajcrmNT0nxiU3E3P{dRi{G>9o19;wHMo7qcT9nQ#ABy1Nh^QO|8bi` z(?qd0xESa;;zGhu8Pvs!V|V|C5^UnN}dpP302UuDW#ZhT~eM+rV~Lg z1ToZuYo3P7eP44V}Jdibk5(oS2!-a&O52^Gpel zW%lN!pzU1$$>jw$Dj$;gHQyn^?Fjz}r`!(3pnySIUrpJqU`{OqK1bVJ=3py3%z1j0Zaew`j8;&Fhlm{sj#gunSk2Wg9wb{ zzeMtB`eW)_;l;AjYwVrMcu;%co5!#H$r3g zhToxWs6_&{559N*o!LI<1|Ng%!>au=vVGyO{*&0gTZg9wviF{gWY>81)gF-eB|J&t zQvzJ}J^VtMJIN;bAHJnuM5ks`9NXbx4toKm6-Kh{tM&S3`1$9v1ulNO0_7SWbPu|p zBb1ui$5?Qbmz>C7>7Bm}cIXsg*)0MZvLBG;DaUY)A8N>BPjQr5a99;F6Idp1EVW@TY-exz`@$=gY z@HqdPJCa&dE&FQZqh+sjMzL9F;!bE?Q=3*P=Mzkr)980G{_DL+cz*NYYX zq4R->t49#MnJk%U4PQ|nu~jq*dh-n(RpP<2pMF>{d$NLygMa#AbcNuCVgK-u_Th*8 zr<wV>u;f_0Rt(*jalJAyLAUBwI3PU+NYbv9*M$lIN zmR1aeNv7TCn&x{7L#W(x0#1+1^@!y|$@7C&WPosVhY^a{Uqn0JI2b}(`3cmvxB>-o zTC=lw)4bDGdIMQY3+LC@Com(C31?rMI2qDbQf;TRl-v;TIF98S$1~b}cBC;MBC4KL z7=Kx^OsV!$_BNVBHA^}{s0X86F@PubKPRClcC()lCBx=meA;loEp& z-xWa1CVmhAQKL5)iihfg+1f_$0E{^=b07DII(E0wJHmU}ha7}<(rBkn0+2ts<{UJXGFdVJI)-(OVw$<{-pe<%a(&JJ&cwYQ2}A5Lhy83J^1Ok_tBAiDF+SauwUZWA|DQYIV4DcRvTJX=QaS7&FM&(8eDfpu8SADy9 zFna=HJ)p_KcdI)hix1XhRyI-~YBAweWE`M%) zCVp;LSWl`0ULM^2%OBh?ii3;9Z?{jU!X*)Y9iLQ;D^$4ZA$EST1!A`bXo&UDdmcAT z?pz2Psit)#2`BD=oc}(O$4j7xe-+L+;=JuWI(Ou{DYqI@(DxI8b4r-_H@0k~R zfuvOcHA&JcHuxK3eM=(d$EV;gbSsLcPGqpklrJ#IuV2gerSc^pqvVCxIYAfEDzI*7-p`cCZOr(`4XXL8Co)U!``_SByp^6ZJV z`+~Y$&;8*O9zN2;UsE>mg+F`5vuECr!d~b8@EH$Z+QZ-A!FS6azU1NG^zc)j{llOA zjc51l8KeB*&+hT;uAY5DVX*uD>@Lqf*0cTJaF5;bhadCs8$J9r9e(T2zTw$TZ%Dwj z{rG$*Tl2p9udUX({qv}GfZD&JTBn@WFQnG_zOe5*VR`559M=LTW9odAuO<mU~hZ?P3%uGfx!mn zRw`K)5YU5qMn4&IN!!Wr@eGp{>Yrz5r6j9tL)j^Gq-rey=W0O_4LQ z--4?D${pJaQ;ql=Z+~-s{LM?OJ#(yH)*|kW{Q-aFPmfPl_Cv(~>jErE>LJ!S+>zz# zvbA&1teRJ@;N$cRsq>=N(H_bN;pfHQ1am2$_^*q<2nJZb@Lv~yp@4E+a|inO;?{PZ z{um9-d=^;zk-a!Xyz;7~gNL1A4p9m;9^vmL)MbHlIzjX+>@+sG;}jD`oYxBwf@B(} z`e#~t!WMp4A%u{;9;$S_R6r-36MO+;em3EonHTLz{m}EsU`$gDbr^Dx77ZI_rfoS% zDdbN^rsD(jdW*6*oTrMum5u~VP!2=o_X&4FuyCW*+pMOy;1 z3Gol*q_UsU-?_-~M@tlpk&C~4186NTFSxqNi-2RWc-m-yXy>*`+khnEnOzL?$@;LQ zeuvZJ>q^asad-aEcN)jidZ$4j&q))YKYcU&J!TH_H+>)P8|Y$YjPr7&B=C#P?5d{h zKQR)wp3KgfZmF(BK_!+vkWbV(!8WxX#(C@Yp%OH0pL}_W5{f&8L`a<8@CR|S`CDq{s^#O~@ltnmYNU^zKJIdg_n#$-!g1&5c}mk|?M%y7qzoc>Vg+jJ-5EI5>06d6Hc|D~k2eb}NJA zCq-OxdiekcLX6+B3NwGQZ+~%Sn{8SdT59Gi$5wt3VlR{sIh&dB`^uGn2!1nB9`txp z?L$(I$*(p&hTfS6-ch+dd-3wQe#*L7|2D_wD5F~b84k=030dPiUtqk^)q{Nq!?q#{ zG$%J>`J9Xjn0t_qeO8UlMSGp$&hl{iXCCgXd$==%vv7#mb;uRen9fdfXZdI93_=LT z+^}{H3N<`!(ya8A^vw*g&_oP9TI99Lcy+HFEBBZp@x;OtUDU@xC5VVz%AU9`@Ydu*7?#O5#$xSAcV z7XdU7TAaeCY{kS*q0e17eq)-(=0d)PLo!pD9L~>9KvH7YmDU!4o(sEjfl1Cb5W6Mr zJ_m6E{H5ab*A)!#Q9aXdb!T3PkC%u}#kPG?;Ml9McwbBFbl~*jz%iwcdG}>3fK?Wp zy=ZlY8)@B5Wd1y4kEk-oXU{TxRs z5-7y%3yPisi?u4~(kXom{emrJslHn_dELmAQtcmiEI7NE9pmJK$;)NQvdjBShAfP_ zdZo+zy}OqA{1?T>gKiK?CokJK36UpA!^pSNK9C*D80A3v!(UvLVoD-1FoIKwD_8u6 z2!DDrW&UvedV~2kzBgPHs0OntF7fSOony}poq>&F*D4tB%mhgt>>@?DpXD9C#7WT3 zW#?B9gmeVp(}>fV(@!=Bv5THH!hCkVx}jIlta=dpsx@I_1+1^%wLZ`--_w^~wffQl zcE)bq3mISI!Fo6-Q3GS;mYedBjGj=T9Em}@5zKpK)4kKllISF*)d(ypd;rIZjJaWB zjA_HTesXx~1;)(~8=b;n6gXuxu3Chahsg@THtX;N8>~sHqs74>lJ4Wf^TpYqP_IWp zQ;l5a}638JNSWF(=Zjfs>BK zej`|By8jz|1GkA#%f88q#pIwdI$=pq2Sc{a1l5N-qs2vEDs@fd>zl_n3>vp;Po7AY zy>VGegIBIpe1(+s50*v)ypG{%PbS(iAwf#uZQJ=P%cI1;%lu02oI>o>hnSq; zZR6QQbzj4wU(W>B!|fXqEC+OnJR~eoK^dADbT@?4kAgV`?5*6@-?vjt8Mk4Uoz zi#Ws|OImeZ8lJMw8Oh@6C`FzqMwrMWR-8jA!7M&snagOryogYWB9eP#>Ov-8Nw|*3 zk!Jgle<|qU2%DG@uYOnFFPlMn>3&gZtT84wx6b>m>>M$CoeVr>fG4i1&f5i z-`(djRy~5;8!9h76A?@wReyYSo|HUA6P_v`Flxm45RpS3-xg`)*xR}IN{R@;H%pE zf@|m6;zf9AY>T`_fo%TBq&T5l{?idIei863&F4enTN+~;hM#Z|6*FNA^0aDinAIH5={QU`ESAV=uk+P>7mz?gi^szy*tD>h4PS83#(tRyQmj z+Plz^7cuMZDbB;JSkj6BG;1&4ik?lVzEQjIT}ACT!y@$SK8>oo%dDa9tXxsm zRWw9y21wmmKcA_!%h$3R;^yieVqyWloma+9G;X~Pr3xIf3z&ve>i8ap*;!RitJQmn zWriB20=jrGv|?w=`Bv1QF{CMrO}v>L_+>#bWT`JX%TpIUb2BT`WO@wxAN8bTQ9!&_EL+dz4Kf1 z%p}19#o8PBp{>2>{hikSO%=@i)p-w21th2~(x3oZsuBmfF(AqjgbzZ;Wm$Ij;=+QB z#?-a~1z1#^U1BDe#zE9Q#;nd=BasJ=5q=1?GjOe8Sf|nvR#6LsS>VO!PAim(*DraZ zAWt0N+{FLn1ft+j#Zs!-40e%!uM#!wapCzRF_Ll_l{YL_rSO8>G-J6YUtfKBaIF!o z*_zjogc3|8(dP5kmQ`*C)e{b=pL=IIFW#IrLSDct=QaiK?v6n;R1 zxA~AL5U7t6(>uC;GyL}y6DW~CN3vYPfL=J*LMA05oe*_or_$vjG$Q78t}wd7vcAeD zafHFS>0#5YHOnul&_eL9Sjt5*r=R85*jA57X`jsL1g6xJCPXIA122L&t>Dnj;BV}|>-)w@j& zCfi2JAZ@3vNAmLj5gmFE&AnfrEcAa!#T+W>C>CzjMF{qa_d;!xh=OMN=Bit?Zyl6E z3xI`?ULr4dsl9MoD{25wbvvpjiv@;o1~R(HSHEYY!gp!m7i?5HRL}+G5huNLGi>46 z{O4IAo`bzB%wzsCYc$mVVLG1|d1AWcs@|j3yHyJEs5^eovqfB4RK>ebmhB(c8^Mb8 zg)Q&s;(`=Pne22ronP)iz7_SLS6I>VL|%ZE{g-|wA7}G-oNV8ISce~ep3+KlvXZ9x zZD>IdZ~JE4?D|sZ!-+3+?f5MF&Y#Vjy?wxmwmW~HsREUTmsl3?o2RfMsy{|8d?s<^ z95SwEBT)?lz6HHWBeiKN%8iB-n|RQ!J1G&_@WtC~h~FY<8XXJXOk=~4A7;rHT_e2; zuwpkG96f4^1! znFhiaD`{XuM+ZK0SqR0>bu?&n-pwBu@~;D{qoWL?K04j;kzodKjY@!0KxoXYf7xxV zbzXH)E?CAbQ*JLcm@zZ(mMg-1HYtgVF$<)*9&9sBTHmB{Efk&I^mpi@On_AEsnAY) zPblxQ+Pu3bg%6c>6=~7sFBP`zWzHY9)Gugk9FO^u$%b|ZFJ|Ap7eN?7n zMKCn7LHfcr(uKEL&N~p%jXTsw0WVt7MI`F7i(28&b<}5v{5yAnVjQd>fGLG7f1DAd z#pB0F7DklZ5fzRgYL$xHr034?VL#b^^>-3whXKgaXx+n4c;`^;)U`6$G+~0vc-ZAg zDx>}s{zK39c{W)?tLNMQ!Lv0#c}DVqsXtuf1iP?@*T{P?_J<1| z&eu6?3fGXxtCA3BNj@Q63|YBl*LC88W5gTA(Z!8H%z_7GrJr^${kG~J-+)?MfF&*Y z=>-kG2bJ78CipGA3fg8HYwJA{RwxVY@X5hp@(oS={^|h+I1G`LZ+d?4l!&dIsFuvAWg_eAs~eAfCI=_4 zUqA6MxY6T1SlFY<0e{Ocbx0Gl3>=*Cll2^&@~^z0O?E!`=(+hXJ)(VL?%kdnao+f4 zqj>j&NV5I7g|TcVK@NBun-j^7WA8`A6UXAyUmkpN4S(k+(Pibzl}BIlz%$E;FW4S* zOG0BY;$bmd>sevdg+6f!P26cCg3!hR!$~)Y6C_*C1{zT7!4(C}!HaxMHYim3f3N3J zwQK2sB2r`C@F_qK;>?v^zs6Y!EpN8bJ1e3ex)ek(F00f}+kiwYr`vQ%9gSPvMkPcy^!=)T5?UzONyPyMmp>cn6Q2;zp!2;lwA_4Ne+DP%BG4qmm zVH{0cc2GxrP@yc4p{=EpMyA}CIRgP>9!P0ujMD|X84n$Cy5z42#z@X1rJaqsUeu+N z;?US*{O}am&@tFXRcj22o6YZXH{;+jiPHi#Ai{}lFh_xiNoN6BZJ9o&@5XB`m+?#3 z7@{q=_2*D-AC&*vxN-u5@h7$f(ff*+cWqq`pQRnfQII2Ei)T z5vvObx)bW^3rJlx5aij0A<(2G%5@upEEP7WHdbQuVzOF|*_fqUG(t|o578B_L2Yuq zybQT6PP%bxc08_=PfV2T9Gm_4+;_LSi!WuR4ZU46EV@zfq2Q|b`xRTFrQ5R z&MrdXVy*EQW&FKu5o)0_#j0LD%kIEwRl$}AirYl1&)srSUA{Wo%_3q1*-F`P%-&sm zu@liII(!>SH`nsKDJ`< zoY3KbnK@MW^2F4Op+n+^Cn`DNioSJDIM7vB^c=M&5Xfsis)ngq@V6hQ{ywrlH76@c zp$#UZqt<%j2b8tsnp;17DE$^J+L?Q1qjn znkG(I9O~SYkvksbJ1l=P<`cqf;RO&)2bvyLFkz_!`s18KlK$1Uu8WS6e>q)DPszWC zc>&L~+MjeCU;8zO@Rz2Ot?lqGG7N*7L^+Aq$pQ9PY z4Av+qO!Z@b+?%in7yG7jwjWhSVKI<5E;&f2k+Y9xoS)GhRfa&Wq_U zn5nW8Ki}t{Q)Ppt)?yBHR@!~Z$ZXYWss_Mnz6ld7k93I%WVg~GZ9VrDQd6OPXZauw72D621sD|vSA!=^EBBq& zO$596aW3k65dE1lXTC5AMrS+13Nu<#fdycw>+_hjs`~* zEE@zo03*oe;Vb9tmunn7L3mIlwb5o|Rz2~jQj<1P0H)l5#W9}_2M77MP3D@)Pe0zd zwK!pdkRPQ9if4RsBg1$y99+rYkpn{F98w76C^sVUN5CABJP6=F=pvnMREkX+Nrdg= zgRy0Jzb{3Fs9M0~OkM(t7Py?>Rk$1>V3z^(jvX(_l%v47 zd{l1zhd}T5BWih5WZ5q7$S!1mi#-xQsLR4^6{n=4e?h52E}Ko8Mp63ytB9l@^;Hx$ zt@XUvwEV8xv^X8MDz}IemJY3WoZ4dfu5S~PYjoTunBgx;SI`&UT>^2g!JDV2qvtrY z8KZLd{tvfQ>ac4A0D?qbuZmPsZcT@R^yDe?wmWbC*V*k<2xcg{_yW*5m2{_{HUO5^_)umW12N z#FYxYl8j5$V+n2`bCSLCIlf8#+{*oIonvH2cvRuJ$&z~HO?_NujN#<1N{rb)w+BC2 zd9AJWVhggiwODS!-9gy4##>=(ThM>zwijKN)9`;Yg;G#+RPalZia7dTQ9f;Tw47S) zEGpV1+WYl4-+pud8>*xs2w-3yy&B-PtJI*oN>)cr5DKO3Bwn#NF6S)uB+UgS*Pq*4u-xLUkNc{OQKuQeHA!xE7olE$K4Ty8mH% zLNC3lt-NwY8_~Qw$O|1n6F-!8Q7oTkvu?|Ts=sUERhSwT&bEXAThrARW?Ud&4( zFcoyp`*6>+6sl6E1k;@7?Zs6XR;ew(n(ggh?=FHW@xT3ghyO{V;0ldj?f&Y?aBvlN zGd(%f6B2}R?gRQz;P?^F1jC=E^Yw4MI*xY4LVV|&3`h{ar7nS+>ut-|!G0w!*)o%a zW3(5L@zG>^g-K*Ol*V_Hh`80e#ugjkl!#Seb(+f;uIKNms0r*TnkbFhUvLY0AKh*rVJ5Jn@aD4OfdA z@Xty)(|(?Fm!-Mp@q(WDsU{I*=c$e&-KHbWiNr!?`+qUL^r~97DP%Y~7P&;yKRew@ zr?l2z7BmSUTFG`(Z)GZS@4vRS;fJ5c+5psoX7gXl+E7mG7qT|oE%iwdv3T2D?DWS; zK6)lSaGxV8cN7|rU;uPycQyZUGP8Sk^>lhlQp)K=?8T`W*66R)?;TezTCsvni%dim{?$6eaZ?P%@3{DQYb(B9s5tZXt7H3DG1|@hv!E9dAvwbSouF=k z)WX7V-+3YqnRl9s6OE49+;o2em=$SuQSCmtLwW7};cUEGe=Ak*_h_!XjB!e+q(9G~ zUsm$Se)tulff zX=zHHVt5EBj4v*Jyjv*?OH#x>SUl{=^rL1L#X$tehaPxSCaI7(C8RJdQV$gqGAGI( zr%#@iH3a%#f!*z?=Qc6FOw%(q;DQo(&zh~SuYktExKWe_vz@=DvN$;EMC~TI$)DQ| zb?=0wf-OFS@%6zUmH+flAqi@H3Va1%4QCEWN*Hs|fVpAMkhwuUXnyX) z8q9r}-DA2xcEpwSLzR38oN34-g?=lo5O#@6-FGss=6(9j(+xelGoXl3vs+6{xGwy) zpil}X$;?A@;#@JsTbyyLzeUmNC#9Qv)^J3{L@2}q5e(I_7B>vn7pOu;B<7TgXj9cG zGQ;LWgHL|-cTNF5`0q+IUhjZPR}~-ErC=Ez1whzFPEA39bn1kA-Mmt9ghb)UW#39q z%j0?`ZIB9zK8i3ru+GiBtLVX=ahaR}^6e?vVECpn9ZL+{{T;wMp1iz^PXdtYX=1w} zqN7rP`PXHRKze<32!Gj4(74-$X!5C&zsM^cZJ zX@&jF3+KEm)WqLkxnlUWxY7Q=VW8HkbZou7e(kMaziu}VvtPv7Yu5O%bl%)P)yDOl z=Wn-g_`cM_G=LCm3j$a8F*MBhm&bx8cKTZbc(D_E$GQ-A>$(-K_Ek{}KCp@1TFe&R z`;k^)9O6^BqM10OOR^%VePBc?MmF;yy5%b-*Tun-%{@^5MSpPb?C1z>RROt<@5Kbz zXwrq9;X0j16G3c^C!VAlZw(h6VlL1}g7giPO|nVqm~P|Qsc<;eTAWfn(KVpdK-1E2ODYF7moHP$I;U0SS5 z9rS5!%FYUrj>-)h7SVxOg2HyQrOtjVZu(;RVILI?SaPYh@E9f7qY3Ej`fcXied{K9 z)cUu(uSV0i1EhD*w%T+7vAm!$f??~~#*qfAI!6EZe$7e=xmq{+s}I}BesNN`7bb|h?etUM8 z$QTFQbj3Kx)Rh^ri!?&-3WcmCx+EOJ2ZRXP+}{rpdGrK}{HPlm8?IafX{! zYh545wfg7DEu`Zvj*>^$HblOu55KB@`?%l=v3jq|NiYkZ&8tour09Jn+vxejOm~fn zc{aI}ZoaT>)#u$M z+;@(>Z&-7I;Jo)pso6Lo=)oJ;`9(*)A5ealDvK`CtPBzjIjl-NBa3iCP4qS%hD7C~ z)9LXK=JbWT)^$0p70ujcm?sJ^cy32XgepIR8e)SNKgsYrXU6;8FeNp2k} zlx*fY`mGn^)%<^3)4-H7kI!bqt!L920i;j1?)_zp5?C+B=X-njE28hto6)&+a{JUn zXMZMjNq@SW^uLFf@gZ&cLAi&n$b1z?w|Qv-T@ zK`1gu8n4k!CTh?X<`0LL3lfZE;8j>cKts=)u{+1EDiRxUrBMwlRG%g*q;sUH*ypNy z@_wr{sf5Twyj-XbJP#Far$%a8>#O^?-lQ|Y#VdR-FW&HS_W~|Sf3381hRTgYcWK2z z(FJMd&Is1%az{y&l?cAg8a3A>ch6?UK^@}SXKyw z-y62P?d#WfR-_yw$rok|ViS}(PL+~h9gSC$t!tyS^f*zUQg9*xdnK!+>l2!6oqWO% zb#w3;MQOVkmw1hCzd9W+$0w^1PL%EguyftU{%j;HU*VoxAgqrbH1~|20SJY#C=I+u zlz|V$zK8IrO->AkAI)^GEp9gpGv5EasI|Sdzdv$^+pw_xeO9)<#>Cu*mK$%yAM0z; z@wJ>$X*ZDXhJEUb+y8u|MGo*n7(^Je*!AL+`xt>~I@F~-eDL6t;r{+ZV}^HBR2K4Z zYkbOfmGul0chG|pkeydyA3G3%y{-`fi2!H9mIUP zG_Tgh60Q(4eA!R$)7Q}2m z)l_Ub?S3Mi!X-Xes&+mPdsR671wIwpFNJjmCOs2WxTA&RT+WVso!Iy6W@NKUB(UcU zcnBYHl(9ez``z5^xw-jM?rXVREPYJ*hS{GQGP*1=;IFT#Ci2P{$+OjsMHNf4T)->~ z-xS%ZD5n%1xgVO$HOhsB8c*@m*-pKC-_yuK)spFRuj8a2z@2L z8ZIhv6$fjAP|YMFzlaA9`Aho1^v7}5fa-0?8IYa02E!#>XM>G=u*7y(VvdqqPjEHYC-i*&?>jB`x|7NmO1yJHWCs`83Gpf@F8|bjp6@ znM^E9?>pRF7e047>I(9U(w*V(_8^FNY2lI?trKFxw$fl*D?In%vMEY3oSF37Jcm24 z#7y)jMJuOD%WB0PNzowdBL=EKmW_6oq8`?~)Z8xd(dbm)#CyJRq`Ux2O+(-mb>nmd z14Xz(FG-^%1T9EUML@Dd9qt|v7SdHZtZ9hJ+42(j(ZfZ5voriE`!~0$fsMFRIP1EV zxKzx0*|u$De9?(eLu{O*hd+F5TF!V^SfNd5kwh*0=^p3e>#Yg8SKRpGTv8 zl=H$Y<&A9&NcbDfkMqaH3qgZ+>!mbs2y>tC|_-K)L>2F zM3lG7PItxw$c?ISD0S8yn6vc^caDq&iwbo7)+)3hekSQWfPwFWE0LQofBgW z_2hq-0-D`Wn?V+dZn(_8F}{otXhS*OVCb*?SdOCl>oVJQG+Q8NZrUskfpGI4TBry6 zlTU~H*RJiufGLtgVdB@Pdt}DiUhLe6Gd!L=I(xD`VE4A*lY~vWX?<>6k0uDVXRw`* zw=^^^a~^D-;?~K6qo8b7hI~vi(ybY&1(!M6j{Uo$wY_ddhKFkgzrkYcy{%hXr6H<~ zHp(HXIMy47rD+=FWv&-7H(-)2E4Huk)cOkxZ_xw82(GR-eyvIY&lQSD4{7TDrlJ+; z7=@B7k&#t$(oTZc=3T65mq6Fe$TgZbmTL2sK-O4j=cIMOnpC_2$%`N#340&pBZ`PK zY13+aR!`~+gJc*WhBPPDhQ?_W%P1AM>yWaNGmvthPmA2=Q&bBc=G2v;65>qs2CC7N z`J80?E4$F5=0Dxl1V0(+oJGptN3SD5;>?R&mob5P%5J%|bmbWJYdyVnAb9(vP;*5h1eN9(@dVoU1}>q$jys2u>>I=`QH5b%7fm>!I>YiqV#q}qMph2?*4CwpODN(=oC6E#kRUf?%w*V zLg1`H-k4Mr*uw%Wjo5k=k}Qy7Xm2q`YMHz^JXt*{S!P>L#OA!@$cFoOaYc;}XvIej;CK42*Xf5F#`H|uuJ_G4HnEK5)i6#=o*##YgPp;W0O8Q76UIZ#C6L@PzrRgl!vERxx*7=skIu8-A^xCrn0rv&8GL)HYR zM;kk}IGXRuECgC0!9E<(C+D0S;Ww&G`xA%*VF_QPvSJE9ffrKwQ_b;c0!myHU#08; zv6ZRO!pEaQvI-bMj-3|I3vi_#(lTm~`uJW#&fm{Sh>JwmC8;USLrihbXv6od8m&Es^(Z?^=`8e&q6)VqiYrPyJG zqXrOmK(IoFyn*SHCeZ5k4z<+yyW2ObrTPshTWZ`*&UgH2=R5Aw0Vj$qm#L=?$kih! z(4|lA*PB!~5512cEl}}Qv)p<09kxcDWceAYLS8HBvF?g+kbCUmm5ao18D;Da+xXi# zNo4j!1+WqWBZr!BmoEWs>6|cJ*_CbEhAC|LN@_k1E~>cXK*5!i?3Q(#=qCY4NM~$L z6BoG^NIfCDIsp7ydiYOpVEB8!PEJT>K1OpMi*4Rf5cTMq0oxKsC<3OzC46V!)L5?j zot^@159u5l$OiQczN^O}Ymb`+ZA_>4i0;Kl!ja;W{Spa4)2?~c-g2=K_jV`m>(bcQ zN-l{5)<>ZKuDtH$wx$xA$$`SfKLZ&A zKE|!Tel3Q`6d1O)KTjtws%Yn(S9Pb>RM*^_;h*!K+Nl@ESDYCWa zGq}!<{lSjoZ+C`&@g%B$fMfoB-bL{^uz6nkJGMkEuxH98 z2nc<;-kw6)LR{w6{r1p}Hqu1Ew9OX0m^EVQgS~i#*y76#vgm#e(w8 zuCMw6=(@6gSgfo#^VzEFzJlVI$FK=bb!Yh+>hI!GcToT5y1DDE(_PVM?^|e>LgP)b zoy~r_n)`L|M{}9^go53FwO_x1P56_u34eto|A)V(9Mohg|LyJn;NhB|+xx%02F0Ep zpch$8v)@-KyUXUi4x!pNsA7y;-0>M2xyJ)E0qQ}4v>qhhke~39^{Li}EOm-=XooJ>af5bJF0vxX4Kglf)bDYeBltzAj zHhH-_`^Nz0K>Wxlbz4^`s#BB2jRy}yRdj$RmV|<4`StupEkgx}n;Y_-_2fiiFNJQG z;(g=iv5GQ#xU4?Ux{|Hw^oHE%*WL%{n+@%nZ zN6ITNu?}7cz`JCmT^0XF0!!*aF8sH1IOyN5i;tEiA~Ye-h=nK3Yo@dM?13bQhX)Fe zhNZR-VXk!sEswn6$o8Ma&kE~Y=0SGad80FZE&CXhW^oD&oXw6EL#N&I?ZnA2HgWe7 zy!yNgB}gmIIu2}Pc>^BfX^zK1;VJp|%9R;FJ=-RG{!RyM(UqjrLoP2<5 z&7+=Py?)&&4{UnPdt_!K$ue2qJy#RfVkE2rqKv98KiEJ99@V7NK*@(A0?!Uif-m00 zD|}ZR#G?YnY9=KWUFiRW7|ZE!MzzM02%F9;p>KoU>Kmmhi*W>v5Lf65At+WHp*yaX zx>Ht62IdQVF?!+3UY?ziEsVtwu*`u3wP|h`y?I74DuV0XojC-9K!>mc={2XQ zj>?$W1v&(^a}=B+P7aY(9(wdf`L@m zVf)iB80a5Q?bokiM~cgxPyNBrYyY>#OrS)X}6ck1E1U<9c|1i>iEtb{yYZpU=>X?&uqM0*K)H{Lkar*<>4o z#IaIK?^?QIb8KI!F(=lZ|EP?A2TMGus6TqNojd}ejf1VLTe&zN8OKgv?hJ7AOl|BD z+%RV(tz#C}G3{Rm2D-yXPYxCP$V6Gvtba)`itQ!Er2tA>iv4{sYpns|e(5zNsH>m} z7E~-{a<8=w9gxG7z28-N0cf{hAXF18n0Gc0Y?;gm%-*p7;_Cwfa2cnYd8w;8O`vnz z!%7>QHUt^G7Y@Q=dc1Xwt9!PwwF_qy--)C zOnQXwz8G-lmAyg`K6erVA$#d`tJiPA@@AB~D5;Y{8>SRw3V(h+dE$6)~;;9kOPv#qOpvWs_d%xdrhz)JGHwDA^ z;QOFQH6D)r0#liR+wPoy0+}&k0m;}VZ#3le^#lpeVz}jaa`m>3a~kPg=Wtqv)^o5^NzNnq|iEw4A)W{=w`9DI0EA-56N%>vGDF{Ev#Z zfvZBiN-w6XZ^FjMmqq)BCYVhQ?j!m8nB8zKmyz;pX{F_hJC+&u;0L8|=X#F7XhJ-N z5nEZiZSW5D0b=OIw;`;LXK{_tZ-Y>9uTG4XW z-RdxR5*bf*bKUxKI^t8V4raGux7D{>cD0T~ky>h>bSuJRA*zb3D)|j8`DArOXybUk zUSaAC!$%{*rf?z@1So9Y;saHvhKQGYGTCcwh|Z@$<+6})6uTr0-fF_oE1Pl~;HDZ; zCJM~F_3=)0$?unN{2xs09KIPoMgUq>JXw9;3kgewS`1uMycBW4mM{`El)Y{_Cf3&=2_#1t7F6RYk8|&|wP2YkXztjATTS22| z>EhzumDdzFiFgJN{Q8T3dKQqLOBZm6imV-Y6&m^Z=;RJ9j+#`$9sn;WY+OU!1d&K`dmsx<~KdMC3$N!h%r7SN5Bhu zH>L@|-$t*cm`zN@4Fp@-P^2}q4FyUE@LF}l?xFlE)xwmXy#(KGc!(?A19`~MvOUi= z?57QM_o=c89BD2|?GtV~?WmS>1Tr}4GlYv!+9BeSXFo`uw^0IRGaRvcOPTbApX$zMG_~~)ExkD{IltNvK!CZ zz;eYTnL&{_8858wvlYTHCLjMo;^^q3s?k7Ern@d-sJl*CLmhX%a376CItlZ3B5H=- z9Z4v=B|>R{VuG3ASQdsvu-LFboN1padC_T*cC5cB1SJ`0SBm0Yj=q*tibak$PZsM1 zZ%TUIBy}*W741WV$=&ym41!!b@N5_?znyvxB#UDZzXhAQ%7(ljC3eefGoY~Vgu)7@ z>6X5j$kTi0Cyy5BW%Vuc?*spPkGijTPA^C=q7S{~?sR4U(%I|Ru-`RTE(s&1O_aC+ zeyQ**LUkA@zTEnX>A=UEtPyFLV1p|wQ)0FF1M?->7NppNX|}M3-wbgVxjqQ;CRZL@ zoFO{noGG^s%&f=1%;OW&oSUwA@ZI=S;=Rg2+#{ide(nSwwJ0Zye#pZw~7 zZr>RFG<|(%XTIjwZ(i?z{u;#tKOvAOr<3EI8`jCkzuKd+%o<5Q_8pc=E_04O(G$ z+6&YZa!ueTu+zNB^>FV4Xp5TO9^9GJ13D^B_2lGqEo-Ll{e)uB^IiMRNhJswiU3Er z_dn)$=48sDGD1oD95nY99!((pmH?fn5>aWaT%1Pj={W5Omj-;=&wUmJ;#hgnu z*I>96X6~m=0?Y5#*QZyn?ktoXW5R#peZ4TS-A3ud`7s4fysOc|#Gi^?wLf(`dj3jN z@KC3ZKPM=sj?n}0^N7OVgkCjOJUq$DorhjFI<7FKOC#pX7*++)%p>>8ACDI6^#XU@ zyJRLaO;gtB#Q7N_mVhsX$8NUFOpk1%0{?NpD>A(0V^c7-y2}c+Q2GqKnY_4X_aK(a zd67G8yV(8Up{{@IvCinn{gp?>gTS4!#T6$9`{U)ui*6FXbzyh8C59e2gt8Ok z7%uL?o1y4oDfn&Y#q9c%i`SGI!al=bSb9wCFRsmuPM`(WI*mvV3Y~&$%TPo`SD!Dh zIq8Nv9oSWRU6et`75^US%SV*FALB}den;f_y0?~lgVAPPDIdXK#gv_7?>yewd4x*z znSAR&g>8HECfm@*doouf@`8`O;t;~In7;9ijr-k9!r=m1gF{MG@TCM0`o_SA-E9+u z!f^J1p=IL>0eYhfXLzfSenvN^G;iyHeIE)5)T9+ZuwtFiDdrStWjZx(QS-;rG4BIK zxHh!|Atw;lwMLE>H<#drW)ig7PQJzJZYl^P8&a;AEX-tFe;kJsVSN~`dhRRCQr0fT zeW$2uEj*@yga3`+yZ$2nrQTX;R&XLQCAv5D-p5BOW&=qPpSKD7=9nmCfU5N7)!jAKEh0F?-Rk##zh}(2W#B?c=4hm zH4Z`tFA(915$-*OZzU-?OG4YUUM|k-MTO4X&~@2u-1O1LNo3Pq3x?@I=TzPiis7c? zNRf9F_IX0#ViSWA(ISp?V2tyB%JfsH6@AAdJoBZ57yxaBEgEwY?Ow;a0&z{m3HI9( zE35dh5E5?u+XbOCw@7pdfrEYC6H{zHeL=%1neF>{FHRtcME2B=^7uQi(rs8@a^Pip z6BoNz-jh!A8ZdGv#*l$zGnm4a@ROe=3mY@cYxGE(!?Ve4-Oro5LylGCnRQ`@{;m=( z`F$f8;5pdUeFHEX$B5lKV+BJjRa$$j(ceVTvrClUJ`-a(pryqupqRlg&fVwwC@WD8 z?}&r~NiP*#S5$Dii3*17RmcI2tW)sm7t+I~yFH!{7cB@h4@hK0I3KAYLZ)t+X}C#1 zQ!?LWmKMRmRJ=PwWrK<~f4@?6dNbxHWn-cp;(4S{_zLPRZPzXH)FnO?nT4(T4xd<3 z^t?pT@N^8B}NC~JO+%WXIQBf(S;;RKjtcaJbkh^KGS&~ zAIGMX+1}#uV`(33h%a&L4fN8ya{TGl@aPl+@L%s*^DhskyI*`p>)r$KX4rjeWQYXK zZSUm)dl5`PHL1uwxKg9QaDlVEXl@eEor%IA@^b5ZRmBYns!`av$Sf2KmdmAY>;1*) z&MuqcE=l~Q*u&rLe+F%|nfP%Hf274lfV-KxbDH+y-T6;ZdU8E@JpI?4^fw5I*uppN zPWyeKRS;nC?fMLY@mkoFR5|YQ{JPn^%pIzZ9ESqPfBmwp~}`#Il)t4*JQx0@eJ1&&+AJ`hPECTKuT?A zx%iR-7l=!jEp>5gij}6>#yB*RElrqo&3Wo*{gNE|Pnv8RKiC8BD~Wkyj#4yN`sE1a zhAb@7figF~{YH|xJxPOTk&n*M2DJ3{X;b3sj-9wbqux9h@^HW8F6q-lNR0L;Xy0ps zgIIq7REmYa6IeDOs<^eS$7GjAGt&W=_ruV$Q#l6UFeKYT$Ihb|a74#OqO?8T$67bp zhC_Wak)0seWn`Ub2$Ed}3eHzVrGT81AAleQ#m@=~cLbT^>Wx9EI zlkDxJY#>1gwwv0lc3q{}YnCwk!lg|C&c&e0hYXl4$NVY^6O@^85(rGBm`x&o*#og2 zwTIh9@M+UPxcYX&ZnOQT8)*8b2{()^Zw~~_=Vs8j9J;wm2!s=7CKCYCZx03KAjd5% zJ=M2#sCIE@fLREpE$=iOv`bQsdGx87kaW9wdbWuwpTTvi|4Fnro(G!FZ0k;UmhJJDV|{QEDt(6_`~gg*{@LH&ka=g`!9qF>le=`H}aNPP)`0b2=Rws1|dT695L*F zX@K(&zZ5v54)O9JjU|6B1IXVCkelgR)VTGkGzT)*LaY0T)N6WO{K0T#qrc*iYJcAvFONrm z(qH!>4C5z@(SPtqVW@J~Hhr3w(>(FzT7!FU`A9ClbNQ-SUFRR%#qQhbyzs_EM-q(L z?mf1>rqUu-aLKPQqfq9_{80Q-MO>X#O>R%BNU)q90i*A6^;GK>d_DT)5$$_p|eRD$sW_4q!^(R?>0@s6AYDI!9UBz zROhnM$4DXZt3tv$2Zv^LkH9lbT0jTmq^X+pU`pkTxw;QZk1gvv|WV z)n6+Y_w53gNMB){o4{ez(MjhndG-vmTa^-=_U)E=bQd^OpPPxDn>KVyBnE=&$wHq? z1a3KcbQ^1u8*a2+R@+z(6n)^rnPzT}IMXP*iUa*H%%+@3SW#|HYyXjhHS9jcIwBFCQ8~ zezm!>=(_hqYgnoHoH57}ysk@3_HrB7Dt$5-#Q*9U?po zMWnd@@U-P>k|IqrIl(P;U_XsTU+$uTf0k!vKIg){0xjUN7`ilSZRG%pYQ5zlEDu}K zfbyZVOGEsFyvJZYkPcA`P6j_;TT(8+e@KO}GKNzChnAAh4NSYz^=+BLZ*o4_#R6_x zKG*YgDdErz#_i8RFM^-Z%V7?!hJkYGYUJwd?ldy=VU;ylGh__ZYyoRxp9c=Sx z1&Bqooa@WzRUkgKUuBWsT^VaC<4MV?+D*|s66M-B7;QA_+@baK@f4p|PH0G}VdyNV zN5)boNV64Bn&&!DlMtT~m^m2365n^ARAf+5=!7MTC(|~rKK5JZ77VXVq&j~c!AWJ8 zgixvU+bSH_t_8tg?vCfjyUOAW)v?u-UDS-D*wMqM>yw!l`RKTX_gbVW1Y_`yYZnLq zUAFc9Zi|}~*>`awWP$g0-;n#?eXGSQzN){6G%@J1(YP+qe1O?S;&rJBN%vh)ron9b z%#u_$7NYCK=(_Eu4s8prkH=0%ILS+jv#q6|sYqU=#P%>u&eXX@-Xy|`$Ippxg?=BN zFV3QFzKvOguqzC6(-m~_RJo{MOeSPJW41LmggCjyVs^Nmo)Yh1gK6X5WljG1g-Z&Y zw^{NkGe#?y#|9_JhVM61VtR6yvAn696yppP+59faHFu^Z>HYkxKkmKEk&i(p@a2ZF8O;B!Y*L`SiQ_gXw} z50@uZ9m`IJRgBMS^oN)&rCnS1cvc8ieEs~5D zPhfJz;@MUyYXqQ$YXhe4XmWbN_3Ld88}ml`?r;LjOuf}vipoIqEGQ8J%>1 zo2I;+SenpVx1I};}ic~?O94_npJqT82 znSc+jg$?mZ-J9(>4|Z)c3ZSa1p6&kKnkan6=$NsG(@-z6r@_@v*mi2T&Q_CGJx#t; za=M;(2PvP0HE<9U#;;tcq8#FPdP7+W1BUL$sJ{xD-+E{dmqrLmQi#=2U!W;jvx`8} z#W2QEwQG>TF}%f~1Q!l1*mgr06wFo|>{p36^KHb#SAs)G{l3TAng#4Qx$u=LE^nJBa};>Cy^%xp0LRKGq$B`jw>^7)67) ztkTiURC7tdOd%$PHomPus@Ic!krh8<$%TvaBfh>%gnBeSelppz|L&IkZTYuorj;GS z7L1i3=(37_CGmDiBf*ilN1PBj_!$Cn8qksesUQTus=GpRoL39;F9ZjUu3hVPg=!5k zMy2NBP!AmM##b9T^iCCfrq)rlZVJQ8ZNA3lmWbgS)k-QEw)-qNT3QAMc%eNDJSg{n zmG0`oh?XUe)MW;n{!|<^tXgFL`VA|Bv)HxOi*l499%!T zlHh77Zqbq63zO8rt6-H>=H_Uid^j|F#_Fmo;8z3Q1y#Pk!I8_A3i`@_@km0mbt7f* zLvjAS&S%(`7cXv`W`~RHJ3i=eIcqaK_E}I4@Ew@@d_qM5Rf;sZa=9Q@*=+19C_rLl z7jwP6hnALXu*ow8uE7|s{QbdlLH10(ln6~47V?yiUR4M(S}p8#?He%r*_aF?8!bUq znt+a5|NWSQ6e4S^0igmVIu-=M?D7qQw;n&*T^V>)P6|&s(i-y2A+AS3V=_>DjJ1;) zx7-$>S}4zT4@7JvV`%t#Hhwgj#k0T!<5o**X-p_EC)STla~YMpIxANyL)r?prY9@i z+;cbsofEA4G)$L-S4|X6Tk9MY{9m~UJ6jhIt|LwB3g6p;e72o8%6+m8DhG20`(0OHia* z&YR(310_!SP~!6bT|I*0qw#8b)Gf{BWIr;8(?z+!B2m3+?YYf-P-(A(`eYFf;qz`D4!K=n8U@Ah$i2fZo#?2 z5yuvFvTHhIFcgQ%pvTH=HFtQ0WH?%dt)?vyk zQNAg}W`mxsyW4ix;X6n_u-Gy0w1`%qY&w zuKtSe&BN*<`bww&r-0IFT@6iNC{1 zRxo!&tJQ;EVq3~g0~Ka>Sn?-i^10KQBUTNAUbm-5m6({BgPi^i2&5uwKY#Gnf$g2<>jA8IlrTVA>6S74Cy8y_*eO_HLH z2u&M~ha{E_7;-~ryTr`qbyGqj{Eo`2aGRCuW~lN{#7HsoWZV=qq|5A?_My@rsg3c@ zq#v#O3E-rIf^WWH+v>^sPM3$W2P5pt3+B;8H6C?Rjc18Myu#>zf)FWBw2@go2_v`S zB<<7lK$0h?=HC&1{Da$}W=;E>%rz+jiG$=P>AZE4r~>$A__A@5o_&~;)B)!ih1GNl zKrCfxvDII!^0TDqEF0dU&bp%Rls@_-^eH8Y{&HQ00aw-0J&}1S0(x2x8$Q_^6x%Xe ztSKf#j%qu6Jqy4;iw5y{S6VeDU@tj6*vZ5Bsq(0wcVfgX-5$RsMDK61=ghZnQN8OQ z_KYfJ_x#yEc=m&ysodgSfA#~g=Xo|2N?=1Ao^iaIWp?jL3|g1$$0Kdq1L3;BTg+S$Wj!dUaJuG_4R-I>_C3R%i`eLRcpS5&x5AFPy+dKH7X;?8T^HJNcx z(m77w7dmXNu0@jVIjfARua_y|@r=UjNx47?Z@fKaRQ--F%%M*iSY2mqp zGHYe*MT&n9HJx#z1Jmizp`of|g<+_Q6-Lsi38VN*<=iL6#|-0StZWo8h;MgKt1DgG6!2awSM=EM=!CYj)e^w51A`nf!c50lR*sb$8)) zxl%}S3ItA{4}+;p6;0{(!NU%;i{gDpH+BO@irYPfaut>Zrh66D4LmZIT2_|!Ws7xB za-<5dzS-G+2{U^09U#e#KG%X1Al@I2*5xk;#f}xc2Mm8iJnT`}N0uO_s5TP-mb6ib z42CrVojWf2eEscxY#O_dBxJ;mPgMAj$&WW#3%~%wparMaj^v-&axx)!%r{-w^em~;!&}wm#Ipmz2dvlK$JQVCviM|%VICl zJf%$7e5_dWpL(a_2PWR9<-GK!si6z){3Cc^ztk@J%Iztc25eNoB|>C<`$+7O>Xv!( zw01uOA~P(nnk%BYjuGH20Lw3u(N^F&ufsB%7IvJAUeQIULD-~!Pm2eOU*8y7>^`+pu zxnA~W-a>38FuLV6OZS`e4^AQ>m~xN7gyae1yb$I=^-WZDf~aa`>bGI3{XxwbpiZG$ zJdfiU3NKodv1{*#qNEF_o(>Uvb;1IMIziHd$U$FsS<4Z_5jU!S6Xu}_7~fb>>xP64 zkvBuOM=r#x-?(LWjQ%MsqRD!veUr8;vQ~%-o$PjE-i)&0|7JZ!c;pCHsrAFT_ zhPRFBu)l8dmr+^!^2K6!t5FrnwZC80^g%AsUjX*oQSu4t`+xj^+TUQ{>@oNXKVvFq zcVg;vWr{FCgou7Z_NBHn@{9rNz&WKtF~yQ4%7|Ap6|5$*BM>1fYr*b677M&qp6mvr zxV{3bEdRoQqbEO$+Mda_l`c$iB67!5C>YETbKxJ=>Xj_JyO__;k;AOUvOC2zoSW`P zWCvemOvwk=%B5x$>2gUD0Nk*XFbSu9xlad>q?G0q2R<&!z)t@oS ze7OAmL^o2{nbH|711q=N8A1xBFec%KBN6E?Ob~H^g-yw)Y!miD^s*{JTK_Yob(@%* zBOVt9)$*=FI}mQGY)#V{&SPon?o0fJR4;bBqFVa=i_iD>zxd?0L^PP$Nki5dLL$g2 zeyJO15@9a`G}?6mEy}?)*uqnhr@R=ukSY{;8^8sfkP5{Ms+R%W!Xg+0^6V<{1&|WQ z1Abvm%K-iKH=q9Y(_ioJiy-zuwBv*ZK58TI!nIgon>}mR)C-E#%?H&?xv|Ssj?q0P zokKh z(8NIutTcI1PD7VON{Qu@3egzc(8m92x82!5#@Q5nWA7~NhWBsfjc?ku=&JZtr`7X& z6dlQKf))JsCMITh&&2l8Kc-lV%tVggrkPeAxJIJi%~2et==}aLu-f{$nv9o6Pw!8b zCoXXq*9K=c2qG1p>JLLwHF>Q+q}bHzDQRo%w-=23ak4s_t+~e=>X+oVDuk&N0a*5Gtj|+PB z_t6B)%4#tqd_v_2JH%#UCpjEY6|;2(DIU`*1>#T$k|08Rw}NgG{)L7jVuP%=0Wo-* zCOk<$dD=K5T-#vpP2-n2GMc@OJvqkcCQFwe!#o{Xg>=3wEUpL0(zbZ;XGB_yA#IgB zwjgIonCZy&$(hYrqrobto##<2uNnt1Op0*q%*Olrj3gAVPbUkq5e@uh1Z43(J|Zbd zgg90qj5O;%z*{Yr=T!3}TU?$Os2qs{@w0WgrIip)BUKYu)D|8C5{cq zh1?Z^$S5=dbNX`pLS7A{!E=j^;EBgv%NZhGN0gQ(L*iH?7DeyYY^`o^j3E)I|sD8oP{MjHvlsDzk)Ue{o5>iBr>U5d&L#9J!lZ=X1En_D2EG_xoa?o&0c8H8pmk- z1-&P_zM=orrZqx-BT3dImo9hR?wzgq|9q`jj;_WwWGr!)$p#3+MP*rp17_;{H!!R| zYXPx*XBxQm^w-$EOZmg)9+5^xBKtS!Aw1$B$Zpk1GQZNsEDI0Qd^-Z0d&a^*u!UYS z9dwdYA2iX^M)3xSH91tJNRm(?x&&IAd|{niZly*ZrG54chQ~Za2LXpJ1N)M7_*a9t z&8-j4S+47a^$bqMJb5D-Za`iAyK+AQE**i(fG#%v7sb~&y#j#wu1SYjSc*|^IcuP) zA=(xdi08)*==E|_VZd;KxILwvz&r3R2)(;er!*MG^o=}aHfH1HmTf2YR$h>Q3w)Qi zOR)ud<#FiM(QPrc81ORv!7B~I(&T$-lB5*1Emas*T)mALi?0?`1+V4RVt%+D&z`|f zfS*x`zHumyZ_b5btFe6KIk3u!*d=Em3E%_GAl(9uoYvi-OVF(;w1Ggl;hLmafw%%; zCwMres|qkh6v@Lx^XRpisx;wv#rM=VMJS(HGDCio)pa$w4&nJcLiW2(wbR#fqW|O? zp;~`;FZ!=>T>7&fe)j3k@DKX2k1PIP8rrE_PbWvu9xYyu{$L?ku6yz$g2eUrGnjr$ z-fgiQ6!Zn1B&aDSz5l)Q+{Jr5P8AE{->1M1cWIWR%WU>&eDtjBaq}0+%F!MpCgY0{ zCwLkURjK%{MF)&$_bEc7^ zzHs03?eo3IArGB>6l$MGa3CzKm*Y8yA0mjtptCEAE2Snf;g?g;y{&k-O+u)F6 zvycvCxnBJR2Z8Ou?yfjKx3vDgC0c(0W?^u(dg=e(kg)&qvq{+SDho2tODx^8G65#C z;@O?jn9Hb>7bV3> zc!Aw2pt$(R4r~<3iYKu-Bf?rTo2JvsflSNF7MNmrCf^=C9nYT>Zb|v-MP8nm<4%z5 zQ)I!!ahFhPb{|hCvlsy$#;k!Z>Ssu*lvyhLfUPj>fagI-$BJn6bQjy?zF;0zFXWZ3ktgQ!VAElM zh{}j3VK|p8({=j$&g=9)8{{mw>_0%yhU3g|V3@?ev3q_-^1{zRMFuD1m;8lK2LHul z|CE28VhR7w9@sA$JS;p%-|muuC~YS_PH7Z*@AM69>yt^OtN)*)vb~3|q@^WgSwzZm z6xbp7#H>QJhb7g0ORABm^$jPd1y=S@){dJ)YwEnQSko?7U+cz#V3PPgVSOQ#^pPf` zSGxoqK9Xj$Nq_@MGR(M;Bn`oQmdSs0@diwP{d)h}HDyWGo9R5g(NC3nnw;`N|Io06 zznwK+{k+usy`U0-7HNRoZ#p=S0G0rc0E$2n{y6|BOH=@x3VB zUmFzpk3SoONnxj>X^4e}t^5}te=gbwM+v*?Eb;APPSCT>HF->2%z}!L{L^^NbSf@Q z3V*RcFq1DOvdc=>3GC#FIV~XI7Y@k=;E){ z*LlA`RP>L&qXCcpJf59RM((Q;_y$vVM1Eb-;~t4PA#~M)w_=Jo6CLhIzcBju#qh3E zSpWO4gu13M8)65u&=}l*eBiy)v(?k>$=Jt_Gb4i6<`DnBbL{Gx@J&eDF4hO_TEW-b zN1+k*Af`kIH2Q&hw7NE*5h}V&7OAmN$e}{Cdwig=JALnmzoMl;^8wJ z=d6(wy3<(7?g0SM@Lw11#XrOFSG$M5%J6R}3y$Uo01&WPs8FgcE;MZoyHi7Gyp z6IG?e?iA!ZCKp8dAiQ>o+zEHi`*a>jB`T%d!o8Q|*^9HKe3*QW!@)TkmW#ZYIw0)@ z!`vb0z5LK3tlkcULD|v2y|q$AN{_)O$PdzS40ic-8JHd(7AB%f_k1}Z$|t?n?sNb$ zVz;NMkr}l6FvNC`W{V>VUpuLgRtEK|oN_K4=;c4>Y`pB=*q6V=*?9S$X9FGazrxvg zOA!9NXCuJ$@@JzPh&mgWK-zGPP~dm`tp99GJ^N*cN~lR76nj@(=;0FRRNp#@OzKuy z90y@K9>FVJY)QL~+mP!j8m%I$;2c1zNfYfvG7aON@cKYEVRLC^# z`FtH~|NLTm)+9fEa>I6^7}*FPl^kz7jCV66raFoYep40Sq`L+FIET|oa>K*$u~A$b zMQICK-eJknqeBNDPnmyRde1e~@GR|vNB}laCvhfT0dBEHpj{I1ck$dIQ8OF0uI`l} z#313)HLRETrQc?)aP(LeQ{&{yKC~#X~`}D7OML<$8}-* zffV!)iS3%RfX!d5Oj~ztI8O;SDQsxZ=2!QX2vKzt3B2eVQ@Tm)0=kB_2cghbCr-yL z+TDQMEqdJ{CrESqv!6EC3%~Pm(;Sn*%ltQ6EBhd)P2+SQHk(1W)Lpa1I&0Q=!%_41 ze$v9%wIF$c7^(05)Lfoh4r4~<#W;-)RQuGcT}H})#F7IODzd(W4Drr)*?XR@@cA!roB2rHCoC?aQ?u1RW1;zmQx;on zIA<3sY`l-RJ!@&?U*xp;Xzu{jw>@ziPg)77cRp(y0M|Ti*<^=&uz_aS?Fi4&!OWq* zJi(#Dl;k+?MtwJp8-@>Wf=k>^2EE*MI($AqdtPD65qzGmliKE%NWXln`1@6~HFwiyPwr_4R9PP#n>d>5Q@=q%!Cj%)a)%aROFLnMaG3EIHW9mdGIM07@TE zyR1(6WCPGc3B0_A)yln_nHKSF-5IFwX41tefs`@x9PtpC# zPY(n*?p7ci;e6LhtMIVY5rosH#k+6k8rjyQW&a0R7OUI1J zVJ|Y`m6?xIzcqO|J32d_>_%l;QY0gJq-p)U?#;K+6RQ_d@>JEaW z&DrZ$s5fuTQnj8g4-m<3MVJbUF>Wc=DP~@u&mt7GpmaLr9qgh2ue{cFBa`N*h!Fii z3iV8=N(%5U9t2LlD})QzTT_SO>oGdkrX)e)w&<%a?%(@#e7hXek6tibElK<~#>i9= z&@T_EMFHlKuk%ipZJAiMS2HD2sX{x&m>_NwVO>4;rTFy^8pMF2(JS$m zJK7tMDcZw-LVly-xgL|#=+PK^izm$LLY*XO_{4BDdQJtBLFDSF*h7|XyLUVAuKBS> zCme3ic10yS?87uCJ-%LgfL)?X!GKd^(;BS}fb=q&lIRCv2ZIzhyV@M?|K{{UV9olV z#fyI;xHNU7yk7`hflHdTxTN2xD(_K)OIm&aE(xhM;Jt`P$N*Du5Apr3?P{=kcQw>| zB@qa>Pt3C`3~&k>d$NO(Mw5d{w>fJ4ln|rUE>^Pf43h;ySvcy2o*V5~*{!tf#ou{N z{iBSJ{|0gH>Avc1ENgn%yAz%w??LZUfC;hL7@XVYtlXt0Z41c>tiD{aA-L>4vwS;~s~A>1?(;JsCf-x?;_>ZEbCD{jdM? z|Ng(W{@4HU|NQUvYo|t-8eKZ(uX`a+GpF)uWWhUT*L13baaNc$;@SopxBw>vAVTil+)4!>3&9HE>m> z%{h=THPcwfDNzyP+51jKee_JFnhaQSvVAQmgzHImV8Hk>i5(4O{kZDb==@Ckgl%n& z{^$GQUC@qK44l)T$d+|#%p;OelV(Ce7vt+qYi_hjYz0(!^S;<9-+qA2v5pQmZjo!~ zFWivTMCrObg+$%>pGb0}hAwi+%6H_6O1ebl4OGHALIQ3apDxTK*Cf7<0WG^0AKgMi zlg1?Foe)suFtr>82O170*`~M7ReqxB2GpEeRJ4V~n@d%zW9MRVWa0Qx;!YxltobkhJoPL8d241o`am}<|uWChXz=15eGt&8Q_RYlm* zrbM|c*WW4w8h`oA_?N%CjZJTIeBW{u$!ItwijZ_S!@**H$38B8s_hviQ6KgdQZBp1 zw9FYw;io?K*W-0n*v~QZkN56=Ptbj^61hQ0E|bfTON4%U#a=^N8{Dx z^Is1KS3~LKN9)Cyz;EkCyo=RIL;N|wxH`v#c}#|S9kD&D3QTvThPoLb>Sn6yCx`8GrT{lpbP$!4H$&USy3KY8qEm2KYuj*+XuptfoM5(<78F=lA z)t<#`P;0pHY)tA>b-u#i++7+yC)ppUdWv@qA`CVdDo!2_QvZ#n+rqp70{>G@$t=-4oAlt zpjyrSd$(;4`nHp{xKD8*?8c!gatKd6{Q&y5ZXw(uuSl^hC$J{}FMIF097mF*i@ge1rw_MEEL0Qh?w#4M`S974ug~(D*GSsjV07g;usk+mGVsd2d`kREW8F}#o+fE zAog_5Cl(b2WD`T>Jy=j*@Aun0zu*s0+#dZf-`AfSK4;#(Lgkq09Ca+r1Nk;3nNDdB{8Mz93^yB!H+zRhkTF95E0ug0Qvx%>>L>V!t{hFXfglD=G7YV+vi61=y2APfy za7@5b3@yP1EiqpUDe(4f&5FYmXy{TL>q?amP2eVp-hTXm&;Nd%&w>;>B)5|y=C=tl z+k8RhgGSUVS01Ly;TUcNIu}6vL5NL^%0&T&N~}UY@Yv_C!#O>MJ~FKE$GoJ9Rgk`3 zmZ->s@Kd@hC3*^?+i*D*Kkwl$cmsRy7v=nP0#gvNY05A?A1Ey$3(=k4yL%H6w{TPq zXqfC*Uj+?LE^8>bW&p489o%QSllQ9!7^RwL7YL`WCm?jXdV$Ca?;%bG%Dk=P|Lvz6 zUv6U&E@pIaDz(t01t$*9s=Qnr=LGIKRq}4)#m*>h$w*@4257pxI9*Tyo5=}ib@J|B z3o@w;_xrgt?Ln?}C_FFllooYjKV80MJSN_pl0q%Z6{9ns7*K9JKHY(qK)HNs&iSVJ z5nj@h?Wjk=;KAPb9(LE|!e&4Z@+gU|gSr_0<{x#9Ll`VX867GIzX64LGScCvIg{N{ zXQyE#3J(+A^JpB|jd=v8>*t#ZopOaAEG5{z!r3g9-@-#$PH1@(AJ$@Yro8-20Eu%O zHn};{qVena{H8d1SQh1F;~>|!IK}-2;h{d%gIiiOPjT|H=!vg`*x%k+4|-QAwuzOU ze-h@e4MeDwgM|y0b1doJyg)!7tN7QXMCU4 zNBWx))L-CHdGr(V!Vxs@AsAMuXGbwEC|Ob6z72r{MiM5-fjyJh9co8`W@Bf4=@)m9>L<=AKZbJny+B* zA#67_E@X0=nju{C*Re!P4>p zrFm#7y0S#E_!ZAvD;qnxPG zLq1XU8Q3@w5UB zas1V_GO@;Ya~v1&*3c%bMET@DnOFxy*Ze@l6}Y^mgJMRy_>1OuvXE;hJ=>*|5}da2 zyYW=)mjv5EA8t_jT|A8Fw|G5*UMz#b1ThKRn?`#b-@`tn#lk6+MqwbT@xl&$u*iz5O=KNV+cHczw@PfbVo;wg z%J)0u_hkPKlG|tVzp8f#c!@Y1@4)_CqlhodG}V5n+*8@Ej~^+w3rok@xHrS0y4dd* z%&bzjl-Yj2Y1~f> zC9uk#mN2X6H(=~v!WVEG)#$bUm?INpv^|_V4`Z?77PTQ5hWK7CVwQk zR@z(^HT*%GgLE6xhoHF=_WMWh$iKbMeK}A;`dA--0!;GQUGwvB+9WSAHV@RA_o<=Z zBS@MPfY{1nErc~lwOC$~WtBouGL8&vJ2cguqS`@(`A&6tK_NZ)6tQkFGPX^v6^;Hh z<>86j*>tBdlI@VVO?(8VzKM#)OwkvkA*0Z;SY<;I$S>ofyn zIi4X60(nHaak+R5bFJ4JHkVKbMEo(qiue-YuhdVcYZZl0Gi%z9>bJ&eLsPpEw2G=v z18ZU(ZUk%_ukqR8KIL{{x+9&Y$(J09$A0B5YYj!eHYZzF+r~9f?$K2I>r+ ztFIV;Q*KWE<$2sM+1~775UNVi`dK49!kB_Uu?A3zd7*B{LMjM=7)rWnO_6>_ zfB7aq1g$9h6CB_XR_zU{>N+g-4)=TiE_+VeX8E9|YyJpUgI>zGCJZPuphYGO^A^=- zP{;KwFiw|6imzFiYSd`Ey&z>W_0 zksTEVO(6yX&@yhLzA}jRX%on510cyeVptp!ndt_=@Dl@y z$9<24{BZ!yIQpTQJLW6C7(h6VrwiCKQ7xB?;;aUk} za?&_}f?ePqM^q8@BBK%5)GF8wwX03wcAz9^(L^@-E^-1bwx93`CO~T!4V%GvPwgWf z$Ilup&bB--=6Kgm9~r{*n7VoiBA#x?V)_r50-b(>;3NN}S zbQFh;zS2f?NHQpLUWbjo)<$%Cwl@04G~$!Awb@^rW_0?tw)%x>B?ob9yI&r{?G^y5 z>-wvG7{U2PLW-3&H@Fm$Y)BpmB5I`%wY*clBo_IO8aG~kK^bP=M>k&HeX<)bTz+EL zrNHZ`GX&F372b(SU!tk9clj6((-o1#y;yFtOKxq7C6rsviDq(_#A^n1 z8fn&Df&lOCsQ*=p>(o0XZFk)hUz2M#eATlvj!=zbIztZHd_dQt=? z+&h?P%MDz!a;PqoPsBCQa-)8uD@%cWcpDI^sksG46fcy0W3bt9T&#oIkX^3`{b`O1 zU)jv?`c^>y2un=@tA3G=XCPS-oTyQPFgfkNbxoI2voon9@ZfY-rYeQ9g3X08LbG!_G1qcJie z;DRs*w;+dVIDR2_SEP>@ElszFk>-RP71YPrCvmSw?-%1?WG^HF1s2HUID_$>Zqm)l z8j)OF+_ar7LUJV5EZlYyF+`6g26!=@QmaI%er9rEI=sv$r<0UyB^!{vTpR5A6t_MmD`CW~nNv3qlS){!?rc?~>6))L zNzGVa-FVKGs9K+G)@ldqnzc4b&01gGc-E!Fihs6QTSH#gyltb@%x1ai?k$UH0oWk=p=&e@=QJkIWtf}hOFJQdYQ0xZnLlAG{CNzXgs zo)xkkWJePbeaKcyz$8usG}_fHiPEMMfh@33=rSM{1K0}ZzM_`s+j-g)nUz>R4>U=0 z0+G-+hwn#9cazj%*8mN-W+S3i#UVo6ia5vByvbe)@h&r9JJpB8agJOdsgV*CB7|5# zls6&(9kLu9>J%FZe^F~(53&D9Q4|xYlg!|HjtkTHhP*aLNb}??__bKeQ?LiCTQk2M7(nz6EC_l~$IEjI6V8uez ziIcEZjFIqd3LooJ+xM6wsBI;siK%FJB_^o;hL#-(J3}t&X<}dcu8KBR;n?H~uQFj>GLb(6_B4Fd3n?<9e^U2}TGAQ(&@XT2%Xa(7LUNQ_8+ z=^UAE;`8g|)Q-Poj$ymz9K-j`Id%#QDM8SY+{BY}8yfNYLd4?qh_dfCbIn$!}xVB5H@_X$R8gJPm_wuCSqbsehloWO0{#sq9Nap86D zrk%K90~>LJEulk(O;S)NH+1SMsZPjiA{u_E6}ECK5>+K-;tINVHho8z3#R|3eT(Uv ztga!R*Rc+KR_(i$06cMTmBTS60j?pCI3Af{B~?-CVUPc9$nTB49(?B z8{6HC+TebhECEMZq(qeVHQ+9ijWewpiHH?1Hg}ug+86mBmdTLr8;u2WuNcJ6B}%o8 z7b(>ywM=cQf$LAQcgxwbnsyKl)iLu>%5OWG!{HpZ+A$E0o5I4nN@NHF=!HtaAqNXm zWj5${3CU@cNDGF$h|UBNtwwhGoizIOr9);X@*Ay_sBg5|6gAr+Km~^e>%>7wEUVxl z?9qjbuw@D#8xf*6wHuM*^ZXJvI;5CSngY5=ajrdABSrmAdKvWPilo?RokV}5RSNZ; zoKQ!g1#Cf2O|RCPKMmH2gOFT0NzsGPVXg}o;n*pBY($D49Nna-mhYrE#N1UIv`a&! zc!H6l6e*e0c=XNdo#^u$Cb8x>AY^T3JlsT-;i_coi89>fxnIX@ogK}+CqWssrDWas zVq-lTEgYG)txQLkc#S%mrbxSOt2c(BU2>!So*Z#Ga>CuYGJ?WxOOX^dPa$eu9*~@F z%m_Z;-r<~$a9e9Jz=mqdG?-*T+>>9oGoWK~Kq0Lm<%mpguujjX`$VU(A2o{?HG17# zMCDxVv(yId^DLFo%0v-rn<0BIsyIa{2jSQwOt^jBAaj22bJ8}#ZZu5J+8?Po?3uD=4n*U z#1oUorTxlsT!u}PxD1Dz3Ze+D)|LWOa8W!dmL|#*aR;!gMW2+%`SsuuW>(>+XFA=Nc9Z z>0~$0ia69=k-*`sWyeR~SpkU_rVb>AZMKI*8uzp61O+AVqbSfdBpU9s+BWB=8|-rT ziOvO!n#BYky>2d(p8HP;2`<1$BGI_BHfX2LQY9L0O^MXnB$^18#>wP=Zuy*jfh9R> zzd>`}?Z+^KVOd1`ypKgI??ROgXvhVNXcpixYc!OQ02D6u|GZ9{a`*X_hu>Lx_nt}Pfq(b$0QL(Asr z@2$j4{nyR8wr@QEUzbV(za<~=fq8&Tza-P-zyA8*QF}H+hJMwzie$5j8TIhCN*1)gk6}QCaRz!gXuazapnuP6AsMvt}ded#t zDHBcG0j(V^Q(2e7Y{xW~H)hF#D?9p1+#)%bC99G6!giO$eqf_@aqMT^g>gOCS(&@(BM6V8NO0?b(jc%i_jYrpY9Yoe$Jk;RO4ZRi;Q{6hSm}=fc<0kyBE>BP4 z|67~gy_S9}FNL;G<9`{m^FOxim}<05ptaGaiA$bXo3N$*EgM;d(RqE+NNDGCUe}d~ zEZM#t4R#ug+7v1_5M(_V8t3vVxDENn8VI%>(^%e=XXcQIi@WC@Y9LmKMn)xInadbjf1T^IKSEX-$gGiOI@`ks(%f^o2P z?a?s3)Sdj^4ByGIy zzOCS`!5Gkk3W2}NEikL#&2?E9d#Sx~q@M#T4~>))ecw z(`tKLK9F8MIb$VNiR5QX+>)08mak&mF5U?7`{uf-Gbk<0@szbiJL#6jyT#2r9b68F zOl?i$x&OsZ9w0MQ*pj5%Y(caCd}jyJP|oX#@Va#j;oNUEI^(8kGL!E%5bOr;#BS6q zCadUmld2f}Bu#Nw8=cZlRLA1Kx6RYDoV5hi*lx?WP@-vax)x?e+&WXfAQ#{hqK4I0 z)wNGgdLt>_4Z0j9skSjrQf-<@>EbSo_?4Lpw@#C@&ji|zJO5)zZqaD)d6@-rdFBfg z{$B4)vc1+J6x(U(RR`0ufp+s^IVm+;#)Q;tu^t(j{wq_G>CkmhnKnLYwPL|<)JA`) z0oyR)kN0`0@S@~wZfk_vagQ|h`FhN<+rl(V1HbfeIfaF-Vw{F=o0P@lCl4y>Npky* z?!=ful5?|KLFZ9yhH#ij%`qJ7^HNQLED~!9)6}H}vFX!Izp;#ts96Ko^w43iZHI=f zVjPEWKQDgIiqo?h{vUTP*O4P#x0~-zJ5~d^_RVq(Cz{4+PBd9(&)V)c-nhX??UN3- zT^nfygE>64PCgtpg@AQ!7XbuoSTJlql73q@tjgfawq`I?J4Qn>dnrc4=B*eFn{5@N zH1ucHD=*565>@}!V+N+v%~^qt)L21%?#R1s?HUc^Rckb8u9u2PEeAK_N1L>3n5DVv zC;03V2Nfb;Fl(E?-)0F0{H859@S8NTz_{+h!HwCVPMpSRn{ddimP|Qp+%oB~QEJ-j zvOj+stLI+TUbMk)#`?U0+OQZhs3lko8@FIFY_vrz(!igU;h9PzFOfQGJ+2q@ygBRh zhifdP|8hAKOt+4gGTkb*mTgWOe+1fBEreXttEKjUc(6_!guA$nqT?YQ=DKhZj-A5C zx*Q^gV+|R}?@D{41;sPGf|j&QOo~VA#BsRCSHW@EqYKAj%WdPBM*pKQk!Sh*ax*5v zJ-5e1Xt>tJrI&6iEL+&Hb=#tbtx^lRjET?)TVo<-uudF=8+{c#ggv@&5w=X>V^bz# zr?$GRVYWSWrM>a|W`sxHN|_N`bmucx^LUlbPxGYafq?2)jOZ2$cJJGdLcuy(4$rfn$GyG3?hSiq z*N_d+{o?YCGqZ*D6y|C^-~_Xh5q zdfYCaeEfc$=^vlv$8V3ypF1%SHCl!Q(|lzLFdYPlPFy6K#^^{iSqCHR9PLDh-(ndq zxUC@Ko4ZRX!W+303vs&`1@ZfJ=AXUGPzJFR0YQ^x7?8$-f_uMQiUNP^P8>8E#z<&1 zSRV@yXWgtpKH*xeh6}V`6CL&oD_|sSn?_35W-Ywbb#{Dqj=DD86cRUEiW%Es<;{Yc zwE-yIxJfl`AScym9qiO)Ijf6{PSk{Lmf=NPuZ)yn^iGU4TgK>Uwjf-r6oe&3AJ;1n zr-dTdme_XmV zU4UOEAkZRn%(PhK9Ew_v-&{%l7#5*=!$tP~ISRIpd+&Dj32Gi+=BR8YV;1rFE5(G#wvw=Wv11`cc@2AS$9^e^gEoE=PwuKMK!*X zg;=flZdB)5yyyynBeZJNyHhub?dHXK!z_9U?TcJii(-nT;asMX(=LN9t2(QT<43cs zs>Y^>wH6ZRa@DR|%RXx>m>nX(4%3`_vx)=D!W-_HVZ8 z?c1$W*e|dx=Eqsxe?yZw91O;DOsKm@H7kzu{@vkxU^*8gc{abZhvN6S*sPwZ7sy%rVSMXWgtaHA zEJ`6{zQH^oHPfJB3yAw@tD_jF+Z(FAp<)pW_7;c;%3MK{yzIqO{O>`CIUcjSZAl> z-i0~#k4rFGQ`%L!j(4d2uC(tDxMFxzy{5CyPzN}y>`jU}Ku=lLH=Lz6y-D=}Wr}|8 zoTWFrCPxqOQC$$l?JmSh)!0KpTbIt$i&T5Uui;D`RTQ|(+5)+X2`iAKjK7U~%}>CYJ|{nk5z605p^Ks8Lb0bG=7VPm!JAPC|TS|5TiYSL>yROVI0UWgI z#snIyg$4R-HwLIhLon!=J=Kp|k3P7^vbj^EuBp@eHD)eQb}T(NSa;r!_-I>a;psEn zYnAy^!(}+2Hf!QRpk9ItZlu-`oH&i@r3tMnySSKr@c6MPSFK{;PIY;7j_q#P_SB?< zh496N1b@tC#Z*Oih`Mjd3Xs>2E~~mc=Q`m{aWSYBf11y8l+_tAT%J{O*b{qz ze*JisXN!lp9MDkzg73yslbS(B;5aOl80(6hrG#3zX5SnRZ|x0_GFBW!dl-RBm5aI> zzRmWF{=K_@Js5t-_OFPIT*3x2zM8@Db(x*!v{u#lQHxtQ;~IQj|J zlF{4zL)E`5!1hcBvazH(fNc)?^;v=P-Tu%+esr4G-|JKA?+rJ;!n?%xx!V_5u0=jV z3!Dno=sZWst|?BMlj79zTQl(W5GZmZ<%27K3{VK<(&Mu}38pVDXtI!4<&d%r-VD_n zs_6*Gl|e{M8qLaM6t3Avc~tDIygn;L#K|Koo*=v}|b4?li2_A^DyYUzM2Ws)NeKlD9~9%_&D}$yKdki(@|0=I z?8c+OdRSVP1N@g}V}kFDYtQJ@VL`MMWWK>1>P>m*nWBkmt_OqR-AGe}bQ)Uj=z7fV zw0u9`EidwU4;FszsVtW4D+wlh->}b}M_E6Ih{WccLN}i9(0o9KALXjpqA%VfODMjv zs6QNhI6o?9mGml2uVfo+>iab;JLP^k5_P!WHy`igyCL%qhxjh9ju*uRI4Z+9LVyk! zD%o>^85rqD7njwU9C-Z#%W`dY`?dMP&QF-$;0l|mPxh*MfA4<%wI7=aT1wsmem7oFwIZEGZouKUSX7FUHh=fjeW3MU`l=A14Fsw3&1eU*O-ODa(+!H z{e8CorYCY96rp+j8fH*u2Bp2+Mb=$HVAiQPw3{YKOh^^7p^as)v`; z0t)%ZkIQCHLp{rzpoGlK8+0>(HBU?rnm zKA-*w(Snq@d=x$yo-ClZ1r4GnU~f(@8(+Q7jt=yg8~<32vf)AfVV2uR@3Y}kquqY5 z=c0Z2b2faW(I?|yqpyt2q8c`x{omDPl`s7D);;P=IJA7-yN(x`BJrAI_s;4XeylIQJT2-G&bLK*o{g&VxX5N- z>QD3U?n(Y7hyu#Vm+(-LI2;pAM0Yp-qWfH5B)OQ5`y|<6J-|@E+&%68%lkWnFTvj) z)Nl3<$GzU*K5-s!R*-WA%Lf~1J=P13uT=K?41DBxb_tDvq|3noqh6$1zRBP+)gxju59{_>_QyiUoYL;@VdveMq*~hxD;UKD~s~!X0?tQTvXRkKw%m+%6<} zz~xe4c1B>8{c{CrWH7{k=_J8FsrY?9T{8EYbrIQ3EZ?wG zlSn4gd)m-4_zZYaPR@GZJnvZX;f9JFEpMo~L5}f>qeFAcRZpw0q3e8l8Uf8*or5R; z7Ri08gL(n?#>VQa9cT1YS1EI7B&0seU<^1Yab!~! zrE$8c+JVBh12PHCJ-z|@GFz;JxOx%r2DK2Ei5tP;8c3)>Ds+dcoaG~~EDy6U!X@(Q z4$hzjZSoz4>fy_$I~KJ&I72X>9`U6FNXglx8a7QDEwJC(W8k5f4TkS&0^=*cXzY(g zRU8!{nGfTuvur-aN#_njOfZe~=GW6>8U*^I7|tJ6*a3rbxcNat}k%>d*j1yhjvVgsqn__G3zB7tHCn+?Yt z7+or1&5M!d^xr`GS6zar+Kg(HFaQ!c5znCcK0SEZ<}cCLaR7!s)?F79J5zis(No_E z%+?Ws*iK}d^4#7HblzaS=GnVZU7Y7LSR8J=Qr$RxMoR8WD2-JYYF(=ohTYrE5ltf0 zbV5ofr2x9q+p%`Vh=4_>oR|Y(sL_r2h}O$N5^4dE7>w)2tRMZ$Zk&dHY&kI=Bd1e# zQRUCzh=vpAw?%z+AU2{lB)0d65!&8zBjlRlCThgm5V>ZU=8QinqAMc>x8c<`h|y?Y zY=kw}yPa^>VV>kL72|r<8* z|6zVo9^Q3tD;ejUQd~#_(YGJJY#!R`dmv7HV`fi(g)GVHP z^m@s})9fl9BTY@jh$u?`2;x;pRnJyw@^7=noCM)^0LatQj1^dp z?Ci2Gzb~^^0yFPp^qS`z;gvei@X?m}Y|7WqC;}Q{$-5$d-$pfln|MzCyN%|x$PtGz z!Lk2#LIOL$*zyeX^YW+SRi1IULG@z(TBVG(*|xQhXWrIsBP{S>6WBilN@5zGG}LvF z6A_0y=mt`lQ9R|^LnYg%@qx9ZW{;ak@@;htZ{(x$;zQd?*ak7`?Td|Y&Ali1IHio; zMC`Jk|D=L|#3~=ak)VRsQwp$a!&SOs>iZcvn^By-_@f0u2X`_1XrZA&K`J_fEm`d3!6lip2}Hkf-0M$X9?zAcRKU{l1yt%ela{7(=sbA&Z)3oSg>YAE5R zpBEjmn6X+UQ_u@GS?8;_E+F3;wi&agQ72@^yR2}oa~#WrqC{HhOO%h5I6x>MiztKQ*Xt+Yi2c#mp)?u{F8^%gleg%fNRXqfV4tYn;qpSFOe zen2vO^{gYTztJ$3NgEB8uv34r+?_uiWx}#~H6c}FLqW6w&lY6Rb|r|^dNSiafo@Me z+n1oeZ!hb*oVQB)tvzDQwvW9Lip_A76NQy+*Au;tklqxVnk6o>>0{E{+mK-1$5S@X zH<}e&+1hn9}zrn(5wr>JHyf4AbKrSX!fOQWqJ00+)Hx?q};*bVumabScQRb&v*JnkU} z-0QQ;^P@SmnQ9{#F~X#FL$m`H0;QJ>*SOR$LTvaEvagtXFbMSXU=O6D;7yOb0EpE@ z>?tBkcnl8LI2;CUU3s&sa4C-HT0}IMWPvcS;3%M+c^C>oAbii$C4~@8k-{83IOYBq zf5nBdP;}V{AvuUVadx$jA0gfZed*@Qyl-3b_y~>~9?dSjm>4JfKmo)eALl<@AS4^n z1r%ZvNZTu&O^hl3-4blI8KZQF2_&x5T%5)KGB?7j`?s4xcru96zwcIS zoj&|IFXs6pTC6TQiJHYoh+c1q2aE#CcrK(fAu4Ji9C9y-Z)g1-0XxUV-xVjV!2#xd zJVo<-$=uT7D|Mcn;;StaGSdm!?DF%EZe8#ViZ;r%4dUt87aProdQaYgcXStqzPt(^fRQ(Uu^b_IsL$=yQT}SpVpz4K~Y6 zoE#~3A)CZogyj4wn^Al0+9l$4G)I?4OQp?1r?c`1k$}cib*pU#1+Fn5C`Je6z|fW* z!Dz6Xd=oeB1&Rjp-l(3=p}}Uewms5l7%yU@!IC9RFCUE}%U6*s47n!Twm1w1N)`ze z)O=F3x{`uM@l=DC8%>j#IK*56Vse5T_3bhxE$XMywfuPBPpNI;X4y;JaeR(@Pq^KihvTBNVMrEci%NfJ%PJ=vz)> zv1aToC)IIrz8p@o{+Hzj7)Kkd75STtbf9bayXIcF5(qLeQ1XR9B@~4jDgq9;cTmQf zp~L>B0An^c6;>lt@uTe~;)vU+)c>Hn88Mm_Z}V2Rq3MItU55xWM&D)% zlRo?*J#4`TN)V*Eypz*CF=QpZ)&H7@Dnt_@oy4Zd(%vhh%d{t=Whz=LUd^9^k1#Xp zXF}NtB74jCo1#p6uZ%L&e!D0$qkbloQTBnZqkPGpG~HK5n(eS%tl42d7upbOxG9~T zQ{UAQ#;v!EEgthTp(+e6Y!h0R&{;Uh%E*hlZ5N9?xC?Y#dM>mGGA-;jtyqDf&X9$J z9SrV@NmImKGb(_Fg#u~C0zwqdt{X*gMPmkb@913=70`J5XA%_{Ic-Q>wR>Zwueg4ze+yGOS@Sd8g})F>;%VDVoO~!0 z#UvsJblontlI@uM)(42dY31)hqgcrbUb^Wf#HsWSr~cxNCJ|qx&GnV70E!h9uC!5h zMTGr;3@J+yW*emtW?ycKFj!(19O-fsgjp!oKv+zdNj;9UzWDb%En+)U+ge?6f`o)f z(8WfV)aE8@K!%8W=!KhpIZgNz!*SR3D2BZqHx+kc%13C? z+P%S_aF&*QN;C_?>D=dW+Z6T2Z8jxhS#Q{kY3CDQEK+Q?`D2*YBIz_ycNtu8^M>+3 z;od9V$Y1Z$^ICSX&JAOr&|Fj#{hit}&5yQQIcQ($9NQ-n6hjcFW5@6G`W#J-89V?ew5W+Wu8$NH&HWTwuG}a{Msa6ZOIHc zd?D#qk(lT;{q^-<4_vaqFEUQV_m`S1@F}ME36cc@Ym$=)Ir{#Dk_Gx;eWqlAkCFfH zy!aXR>hYTw*$8J!f!GtUuxIq}a2V$Xlq_D7Lhg#MK|nG`X0F*x(u4FU?a#veeSy^e z?~&+;+Q30{QY_9%kcaYnfxIypayLTUcHaz=y>UV@&MIs24bsSC{V39j{q7QFoTi#_ zu>U$kZZCQC^kfhu>e0+&`6xR+rVM}&srD03@|E_Wltm73H?}t@vb>o|w!F8KZFz4H zkbFI?kZ$*3_0k|r$rAv`i$T9<#;0QiXp=0vQx}vpxa!~Hv^b0W6say2Ji`~rKzjSO zJg-ZnDntri$_`c)r}KRJbUwI!TTy%ZD!o2eNu z`Cs!;dD{e8ye^56;=MjXwnupsH#Os!cFFOwdG#L39Wi8YNbe~|{o)<2kd>FnDMn!# z^sAUNd!=|qn&kf8FYX^fLwajc#wrSafsA1C{w_Mo>L?Zl_ZcsHcOmb6k>C<1ivm=R zSX4?s7JNfHel^yQ?0tn6^D0KKu{I!HrNUQqBP0Fp$@Z{GZ3xcAlJA>~{f5c_f?wU8O}A4i-0M*269 zi(OafLO4H=T8xumexL38yA|@q9m6ve%fd;rdwH=-tckc(L-(TFrL*$1m|I4c(g-&Q^hOp-tQ;5( zSITV8i6b`xb4p8_AoQC?O$B~40%)bUaGGL(i)qFP7}{`HB=0hZ@z9eXXa!;+!=Nve zG*Wh*mPxE*-@*66i$Iz2Si{~Ij5X$d5@^o&9T8UgHwq$eer)sw%w_e5mdt#NZ=qNr zc(NJ5TN8t9*(&?xc}tsyQR&#>-qZ%_BAEP=wUBr?5FswmG`HHu$c%3&Drb#|eV z@VBuG%~;7@7|h$YOt=uXwi(SwMnYD}%^0=W&So@&_BPs#ruXWb(e%)X-e@zLu|CUY zG#|U!X0)T2jkAT#XvX}!n~{wRH`$3%#)mexV{$n(WR~^!Uh@ppNwgn;egkqUG>`h! zNhdI;ca+?Bk``U3mjC4&?GhfSZHthtBE+maI23}LoINtc7HORa+!mqBak-up2OG!o zBZC@I*vd{nkjzcNF)`t5s5w_R4bRFO`pH=L1qi_*Vjiwe#59RC35OCI+P!o}pA<=( zZ*N4#)OpxrV4|CP4bn|34Qq=T#*lXt=4OO_GggvjMA)}Ywjy6R9>-WWgEwixyjh(f z8goihhcGxde8S@zfOZ3_upc2CgeQe}aW&KDX6LvaWsAJcjJYlLwwh{-^NZ~M+az|X z@knE`g*!?4fq-r2t=+bx^+p>($8PQe^U;+L_jntGv%T4#P+)GbCCqfz*b&<0W*fo` z@+tO%j?LuM*c{%`=|mR;P3X1Rf~+0Ws=&mBce+(z6fj1b?OUE{nD}IuO0Sx+XFyT= zvs$h;GD4Xl^eP4I|<<=pokwNp+EF02U(js&2sR7?0Loc zsS8l37RN9X=n$jJ#Y{+^Z>ZyiGXRsBm_anAN*D`GuG%)J=Q-}WD|A~vR1L(=Rp3>M zj$f{Rv}(^?aTm0RU2?FJa0tU9QqoXevRPi|<6e1kVje9PxQydJ$u5c-?yBFLX4OSL zn;lafGL*K?X0XnuM7DS;8*wBZ1hwtdu@YO$D3FWwdK)5YWcX=I%@_KC-+H*uQiutsi-Z>(ONip z=cq;vPOYzE%;ZUPu*_6k1a1)Qw{EZH%KbZ0honb>*3nWZZA_sOc%uR=$gRDp6;I#766V?|I*iIRVUT=&nYq*dX; z$i+ZS)zn^((!;?yi6*^$gcs`1UDpC%FvSo>3q1oOfAOp##E6O~}ar5;6lT@S49n@0uCuL zCA9zZ#bYi47lcfipaF`BGQAL0;A%3<~4E@A+W&i9WoK zfkO`O-TfLlG>Zo~=ai%X8(O)E4aQ$fn~xvAzI)d+miJK2;K((|g%Stsj&L1!a)O9I zR9L`3Ur=z$YlQT;fFXnn;W=WND>))iG#YhA5Fr97ZT$7UzoBoSQZ`OrL)kt|$#2$W zIXTbfA6SpX+EVa3hSQK2S9g@Y?5#o*A7S>!wh z1gnB>h>ssVO0?n}G;DoOk8H?%B*6yqtC^ba6V}#{Clg<_cr-c42%qbV=Q|uGb4&?3 zOe~Frjv;#jZUxwT1a*lNe~48X_axYqFeKV|oZhGleqrL1vl2lsh7Jt;E*}BrVPtT8 z!=NDK!-~N$t%PZ+gkUUCTCA`I;x2g2fP#MJ6cozbfV~y>n=CRh?ZqV*BT0TJw1Om* z0ME}MbbJ#BDO>2}puwds>@Y5$PUTV;!iveZL6=N4fBp)N(WG`4x{?xSgx3J4geZeD zv6SBH;9E!e1q+ubAL>3dGg{_SFvJ=XV`CLoQh`|=KANFYtc@87oIh`&ak**(tY$B0-YlZ8D{ zM9nAdUlsjlNk#uVy7lxo-wcMo!ylu0|GR83{E?ph;_Jci*YfN~Jo_y@yLb1i!SL_o z;cxNq@3Z|r$wGevMLgFA8ex4uQFIokLy=t?H}*4@%0hLd5B1D z{GHFj|9iBt(Gqh$p9WGarVH9O*{CyufsK z?iXq+fuxU2&|1qGPn-v}GahL4(i$m{&twWK)_t-^Mc>5 zFE&=7^&`4*X;Q3KG6tVj-lY~p#fmD|O4VYo-;Plo%aa`*=z*Zu^?{jKh!(|_<99^d zZ2tmzgWeGU{J~!^Zmuh#pEm2Ftr0ZJjYQ?+W1hlJFLP2r`3(^sNNQh6NLuH(kJ9fQ z&q_EmEFSzXySr+`djD1*kph>*L@HYl<@RkE@Yepmefj3@;o##(|L1-FoFiLOHu({f zXCnOIhYQMD%xGgpU*1V`WljA$oVYZhjnPoh?W*M?i=C9B$~PUnCFI)zOJ zRoVv~RpNoG3+UTViRt+060EY?Eo;DTIl7o3hL%UdLmORmHTU6v+xa_O@ag*louA5N zwUIJljEQR;uZ81(_u`p9rZAOWdGr%_Zx6cudl-j#NIfA2LY?Nkn8G+f%Q}M5X7S-5 zr?hl9_<|nSI1REXZk-1c4(P)Nnkuc`$Au%Z+uVYwgjTA$eLMI`baKU==&fmlr>yoD zj14`!=)14*{d{r17$H+E$i-bo;e|BxZG}&W-Y7v&<`JQC6#qchM%efe&YevkR^QQv zc=f%^k^nGUNH@hC(dh3#nbC-k&t2WKB-nx*2@7`ijkF>Z^xV~7z8MAGBqV^!Uz#!;a!{?er~^2=qX9FoD;4+3rlmk^{c2)9cW=@9ZG7OARTx~vGn zQH6VX8cWh}YFhnGR5jDi=p8WCI410Cuw;;V1oU9f7mRBE6LXwM8MVpe(&d3vVoJ-V`IEN@of_82zgKCh4om}Cl0LBD91zV7Ey z8A5aH0l}Nb&Orb0@Is%Ua}t|DcC!2k6xwi0VXsGZL1eSg@rC^Zf7JzT0#=mx>sA5% z=cEGqPo!Ax-9-Y9f1tm<`Q>2vkMNd>I{Ajri>K4xVVl;1c1ZfmE;2e9jVnytYL-T< zJSOK3_{{=Ij`JE8)QZHd=?^%Tgg1uhB_9^jjFTa!m+K+k^C;vXlx$}PhsCZ z=JyI3;+Oz^lp*WGr1S*#%Q^R_E^yDRcjEZSO#D$$#kq?&>3#3~D!Va@O2i$hMCZEEKu>ZlvK3;R6xIYJ$ZGYmH z#5SBZ_rLk1d6?9c$$DoQXFiv!_9V~`Mlk7@3nUIi_JhATE=jrGJQ*=$wgHbs%QZP9 zjr{{{NbgkGgh85dJm!S+B6iV}3)<`n!yZk~n?YbkS^N9S8?z>Fya(Pmk9Z?0D*6s} zhbdTLpwNnVt_EGiGf)&Aa&L|%$1rx804v(JH{y*n*G|?*4L%KHG-%$CL0ryhfSYp& z87IXe$f>gBM_C|F5fI;TM}M>W5?exaa-DQ<%BM*eVS~V|x%0lp&O45F-eNmDFX3etcu?&@ zca`eHE418IEV7W`6d5ZN=uF$fL_%~YH1DMNVlEWO9{7%zL$+fA0uoCEiV4lnNGJ5S zM@^zt)j5Liq2duBvl12x!>KzIwT|&qyPU!cNOqxAg!UkxC8_oj#Ol)~ncc=em%~RC z=YLfGJpOe_)Cm|la2dcG57fiOBKy$p`Fe8*Y(dNU`}~9Yh@Kd?nsHj$v(Ux_QiR`> zTwP?sX%hbxxI9d=IHh@Xr*OeyjqiBbw8Fz1b*hk}>>N3xSOpWPK>Sb}p@bn%su|Wo zluAv-ef3LZ&qY_yN^Y$xyL<2jKu6ax5qvn!e|~X7RwS~UV}R7>{M{XcrOpP}u^9xJ z4Lo9}^%;&%aFvb$DVmOZwG0a94}xpj2ap7F9?&M|oc~=cn04P2RdX=AzKokRI2KK0 zoRt+qhDac+E>BN=qdNk-Z3Lp%wubo_h!+f57?1{%!u-VCUzsJLGD>)(ZYcA#LgxA7 zTu8(=HDDo~?)3SGma|Y>{9qRzN@$s1qaZ#nxdB~S+|%H;z?5v80#qX z(cULcwvmVVR2viQZvW!4MXT{59&H2C3cnfH5QKhML7;a4|KRc2Xf&cbS1so_?O;kB zTO*v|u4=o*DF%8=+wdbZU zF6#=xM@xH9XcB7}XU#+Hm-zf?bf`_Xd8j3-0kGh{3#uaMd&5Qc{yE1XzuS%8n6!4` ze1m)b;j6~2T)InJT_WTR3|P37@n zq5rYa9P5(_j#*HQTYB(78&|;ELIwL5mqjNSaXd6~Xn02yIlukwOzv>Ag>4*7i?rck zn1Zy4KPXe2;qrzV#WNQ9+?tM9)irv0#xg_3r55ZD@7Azq?mSB}(|3+@iqGuVD+CNm zOHuNhfpwN)T8#d8;>YK z7<4eUv3;ypF1()GO7Nb&Waix49PjA(EE0;(6LCf~n#lWpEC)TU5JO|4+8hxFIvq>w z8s=((#~c9GM-{BL@NfD+gZq-j)m?4^btSI_@vMo*;{B>|Rtlp(4be7)4(P%a|JJcB zH$G}`^&3S2-hvwD&gdQ76-)FM)V>uz?DmGV%+kH`1 zD6r=Pp=1ICdFa7>Y~;JDJ0bg!>J^ZeDXVN9$` zSFASeQ4SbRvd5lyu|~($I}oS*@YZK-o+=~I{TB9)F-wKPj4scDur}qZc2qYMjoivy zU9*UN>Ib7a#9#l8)k3_LRZUe+5RP7yNg!x}+&M=*mz*~NZG z3?6F)6tnatB$Q%)9~*mthWnTG$?h+Q*fq&3`G{H!N25Y$v~znPceC0ETEUgn4>QCM zA*KKo+V>@Q4l*xjeCJU){V<|vtoiiOSuvYZm5>4vD|B~s5H*vaJKL;9Kxapr#T_CM zhWB#Z&V=}_Qt^i-A1062&k-Mf`^osQp(Bx-9F?rF+nXUtJ7%<9HxM{y$a50+S6u6m z18l}|b+lHND?oZ%+GDvMxA~CbHus?`fAzIji09G#FS-!VPng~(D8vJ-{VAqj@WJ{_ z=@)(M)A*d;xExaH3B)WH zbQ39?nfBGNavkOm-W-nS#usiC0xUHFP--aB2!_9^|GFegyJ}OOO9PG7EkTy`jHO!1 zqEeY0DLXS%~VuVfND!O z7oGgd?<`8OIy00@8uy|oRzU|kx8zKKeVmkLjI8}xSf)elt2nOqP@?3KNl3^OToC_5 z_7eF9KjZ`>D7Zq8GkFnE0?FUfoSX)9R{=ZFv#rZJ?+H{Iv+odShw3Vot}yw5s{uPG zo$*h%YO((gAmlLmqIUts7Hpw-vv+8=Hf9_fj}e@ikqF{75hq34GV$`@8$S`rzrl11 z?8!GJoXDUJB98+nfm5Bo%Zo?2wP+l{OYcAy^Or7A7Is|fN)B8M%+jFcPKMv0dYEVK z^}07&%FQ$nCb(P8$K=LNaFNW=E$u766T@U}Q2^4;0jCgY(7e_O3o++JL_6`t`EsNGaOd)(@BP$2+?l`O$1eaNYW*f?~R1zcny3h^6WI@KHK8_}2ifm9*(k2O1QQ-{sx7Crs z!1GGhK`1^+tOH7-M&3Hom%$4la!Uramnj)`_}cE*H>ieFk)O9Cj2*kpo?wtNxR{@} z(}a)dtuT2FMO3e%`nw}&D7V7FJg$ddL`463yF~Asd85^X=2@4xSre^bJx_-G7)$}r z=FiYXuE@cZ(xx6Fdvi8v+h8Mwq_u6}7~`wKrinM*X^!bWi^xbs`ef z9(y|nDnBu;s{I0pkxGZhmq?#FuV0!fkMM0ybMp7&elK6@cl^=`u_hkS?71)I-mzyl z;HS{euzr7v+L;g5XVA`&@2t|2q3wa+h6v#MuP?B>6mL>{lDIx3=ckkn39IdAZ}XHV zSeyzzAcCfltXwt4t7&N+Rhu4?wpA6hIZQVC<2<+{Q8@6{R<)oI37JJcG1|ivx&m zM#)h$G23WTmyqdMs^h7R z2~lUk+sY9MQSVf6LMo6h_JM^WV`PbdAa3u|+O=Tb=ZRE?a{M4{D^zhjf|aa>4=F|q zi84LA^Q*sD8S7ifSS^abIc>*R$c$1T!w^S*4TYa@_E|cHNra+Oua_4G$Uur92y#3l z)nHE^;uMkRbot*?%*I!6YCX^2KVl06jEZh=l8KQuIxjy;%@^9lNF=5` zCeo+YR-!q4JequoLgyK-AgB!q?OEj*DaFIwED`wj1yO_dkiYIepxeSdXad$lEfEQu zVc>YDa3)`b7vdz7$`Gw>^aGf3=Qnt0G@|4?EL1kXCG#>LoT4#ZGhu8b5sG^<{4zPD zE(1@-imd5j%vqR%EFMOXL9iw8XhB~AqQr_fM-+^BO+71HlX4(GzyjqNEp=jGaNl}1 zT2C|Zt(X2+Jgx|S^obN4qrODAG{g~5y>X4iM6*v-DfsZ02X_0;ActL4k5Gf{GgxE(B`8) zOp^1!qT>-CY2I2}xJ+knkuf8?M?C0SFvKIp*i6QRgwO^b6mUhXZTVz3#OA<{$j4hr z?%$*s%ZX&E{09DR-?!|gZAqb}9%zr2*?VHcJ|*62|CZrFq-jC`R&im;++y9DNF$^= zfar$mUvXU)(V`=nWN75?)pcyup`l0$97d-mJx16hV+Za~np5!1C#=RQg^OVN>CW~s zNFv_8JD_BlA_2_Ho)=?_DHtF!qv4EntYb0IYXH~^n7&vAAY42o$F%{*|GG!d%9)U~ zzK@J}a1JiK{PsI2cfy|h!Z`V;4P~10{P$okh`Q|Gzdxwpmq&(`8d(AIci=9RFn@4$ zoK^YG-LYYT{B-}GGM$jJun>&6XHOm?PaAik@W_3Ba1H^=oPB8+K@Gi9dHg5DpGT|Se{bmDYT+HYwC7`<>Tz$GSgH| zK2$MI#lAKE0z4`B@a2UQCp}wL0tO#!XkcU`JNs%G5LA%|G+Lkn5EQwIdb3X`@Z{tk^k-50ZmEy z&O=tDJ6iaW27_b>qf!Q^bO_P%Z>(si^Nok0jDmfKsW|J2Wb?N+l!oKj2vQR&&1Ys9 z`KWb_*!-Es7wARkZi(Gakj8SACx*A!@H~+wHsX1&XzuuG!=G*Z&`H#IZeduf!9NWR zve#a_PRf%>fGH7=o&8l%q*qw^-lAun^8Sp8G1!+r>Xz?0zKSnTy%BskVg2+1R7`V8IucxnPOluIjEWP!+l==vLdjbdv!AqO?Ah{X?ez*KC|%(m zN-u}GgS3g?1E^3fi|xCC-y?e0@O#k32hd~F=Mi;W)8`TOPWe36AZAEPtN4+c!BRKD zYNR*?SdHE_uxhl~Bxa+|YhpI)y&SU%KBP>In3bOc0%W|wx#U|5QU{aSj^5sFa4H38 zf=jHEhO5>MAmTzuI2%B`=lK^MCu{t#T%9<;cn|(`le^7^xjPjHi zDc$X50TY50>yvb#)kvwDG7=7ZoCosh6c-BLAk=Ue+(D46Ac%7u^e^Uv;ScM>_zai7 zZVVzN(pn9|@79MvpH8 zfA8y$$f&gL7!_nNbo0i+s2h!hemYilR=$6QN~0^mLX9U2v>wubR_em7!H?Kq&3^h- zmfi0_snE*zvTCp>Jwy2UN?+z~x_IQ1r@{(cj^rU1Q~9=@+q^M%;r^!#L{eY{jmghX zn*Aw?79#Psx%@4Usik=9rPoUsOHrZ8JTkrF-%&I7y~kt_jaz%QUgVYBZ0FrB9Virm zGam4>mtIJzJe~??K(i^hKFRbCkC}dG7W^pJ2P&qTA)azl4-QR5Khr4sXwVq9C~>LFC(7vbWa*ucCh|I%5R3!5KzzXVa!|wjY{)F>fX`Q~=0CyCKE%vyiyx66 zarl%9;h5q!zsZJtFmo!!XY(P!$AAAYAG))KpL{nTK0YshDr9BOkqC77(B+gFpU!0@ z&beO8Nc{KQABmqF&xhvT%eOAAC;*c@2jlnn65me8q<+RoC)xP=a3O2f5 zqb^<|mFLyPx zNASNRPg;8rw~|2315}jbxRvKz4|2t|fQEjO9eWOg^k~p_$@d|wZl$5U_6T_gbx7jW z;9jB-?o~m_8H?!<2^CmCg|Fk{V!|RQ%v;6u2Y6g&W30-~ci2m?xbf2oB%K1OS z98Gv6!mzm!$g{KWXx2D!Pcr1C5<%3y^5t2aeNNc5EuLF}ndLqsjmmpZqV(TdzUAKI z5djy8Vg3`5vm${>KGT%I{I97f*?@>8Q@UiJCFyc1uv_6=HNG38tP*vlL z#CJttf_&fdn+t0lGdx(x$A|aiAL}->x=1JJjiWo&elC)cjp= zYsp+ChyYPfRFLrwoU(Uh^tb^5h`{!8a#Y}Q#1+pR@Q$<5{PLXgI_EU=OA4~hP$s0P zWfSC6dOV(UD<*z*|C;Og&jhEqurB?^p38eytq6Y2p<*#S>P)!^KV_9$`b`^pgY4rlc! zjD#XWQx{*9PxmS88oB(&NFW(+Owg$vFTF8yY|KWJcw?f>Aa0q1&o^=u-~(Bo=EizN zA0x%9?vVwGJV^#T>~j2%DhI;REF$>yQ8s^m9_D@h|#n1)Bw5*_I@YQ`DG5`vZL zLImY%J+Z)~uW;JFZbn%uNzcmRm0}B!fFIZTCW~}R3uMg&NH-bJ3y5;@bgt=YNHdXl zs^o-Tba30Dgq>4@RU`TVIU?5n)!Ef6b z5F*aH^}w+hXFHpfr%0~Macf_|iV8(^#Pt-enACcUvV@0wK&k2jK=@FHl$4WEls9T< zJWOK*^`7GUz-$@~=0h?s83fHkITpj=dEyoF=J*X2IlNmsI^8?GmeXN{V>TjY zZ$q{8wFXv_4iJ$S%vZ1o%PZw@qIJMs2fEhW=t?b8U3CG3RZ0UfCtDWei!y}%oc&Nt znZPkOj>E^B*6MW;#=~xeE$-=~iXRv}`N+|h4l`cM04*kBlML7vE#SY518dtR1x?n# zHPSXpCy6~H8(g;y?lV!6?tbq};=^z@z}&)?8aE)msujSM;q-ew3Iqj*SJz&#_e%sV zd0~Mv4wNI&x4-ngVdEZ1LO#p$j7aRHqsmz#jWztYpC1$0m?e&!ZHMtpc zFWrqhscIvj;Echrr1`kArf^ALLRF{obw^}#foSpZV@|iSOfM0KsZr?Ur1QdqmF(-E z3(|A0{I?#QTx)@jdw8&el}(6Aj${H;ax>wyLvjut0Q~m~BLFcrS-e>NYp##bfmfSz z4Ve92G7j)1lFsU&*e(VV`(X7kq-Yo8z#m1tFKbPRKCa!|jO2j>$7h*FN%xO(x2kS9 zy)OcmDx--Xt8rYA1{Af~hp&qT-6@5%*It4%k0?wYvL7245%%aJ!mp!?2*2CHMTB&; zpRtSWTx9cnCjZ@4n`wLKCO3}m8YCjCBv`W%Hys2L8335uSO=mPq}z;Rs~6e4;_R9( zU{j=fGE#C_!d0S0R?n0u7Ogj1s0NRz)VmNTj>Xb5tjC7Xr3FrSffJMt&$( zRHi2lv``!+h~7aQF6p4VIWnv&iPqWCu3Vxb<1$6@%e*z37l{h;86@5y(oTn&pfAq% z)+lAAPr2bQt-5d35GBIySz^{$I&aMYRcDYgbxd_)zbFgHj@)s9inP>S_FnE@AVD@J z&KVZOsf)>mj!n8x1%cmX@c`F)PW}-nsWUPoICjZqB7MD&G4F5LDGvQ%Kc9{Uq&m|$LsqXaFBqhbarXBX$mhn~qIM7vf; zv!4ZYaD!gtxX4Jsuq7C^xoy!ShvP07QEv>Tn)kbvLBPpC5_+g|5Cddsc#Mi{w#(yD z?Yu^daxO2GLr@#x74Yp5RUqk4YCA8Z49_XtP93gMfY`y?Ni0eo6Hm4H=W})i2`7BkOkhZNEoJNC%$e> z9E7w_NFIsUl$IUQY#C3y*sDr-uVXw@VsSe)lHIm)J|ews%TAmsm`RO3h_CDBt* zlJnl=>lS}2L10RuHvw7&=P=&b;Hoyf`)y*}`|sAKx}bB*b#90n9*!}k74K-p=Mzgg z&!P3)zD-rb?N3cHB@#2&N&+H-Xu7l=BBCF2p-cSsjjcmgm=?J+&0@Vnw_9J9kd~Cd ziTxIi?TMQd!F3E;lWO;ZP-RlTcz*K`q(bS_FN#K>M4-8P~hV$ai`{h9sk(pcn|M$U>F+cL8K@6doZsZx{ZxDFU`h z$&e?45!sQ@c*2t1Fcc<`#(AKRXJzGitJx5fZp=5$Kh1tLbSHsAE&EbVg_II$cEj>v z61zgbX=uUQ4b01>lnB7%R^ta2u1El6zZ8O>2h*5vU`I zxVi~A#VNueZgPzwGIN-@*cd6EP0WFIZ26t9gYr8&@)cO4;m5#Sg6YvnmR$r44SP7O z+Td);W?OvAAg{EAS2&HDXg08Vaasg#!fxT)^IMJ(c2SSrNg`dGf{Q{LKE*BxV~R7Ml^fyDY?fv{MGl0%48aC+BanThHDJ6 z&ZeXL35ZTJbQ6v>yi1pIvIRl|>0an1q7V6qOROzvH8F_ps$;Az7Tc_ zBVLN|y~8aaeD8332;bWt!ZjF`%|4$M@%L6h{Jm`;9x>mnKQZY9p(~bZNkAwo30v)? z^n0rye&ch-kmjd6YRoq_KW#iJNgO!A`C>jMM~uJs*EruSKd`4x;z@2vGn!ky3qXf_5$FDWitvlOOx;iU_5 zFgfdGmle;?D?+KuMfc^s{1ZQ#x}1uTE=WpHG0h zp3cmWcXaZMjl1ei|UUL7F^}S092e`zFWOKw4_gu-1n60PCxX zPD!C}6Zr{AJu?KnQBu?iEV%T~wy)<2d)JS&Z6=&f@1UDB>yRjHG6)#NoLn9|krXx~pdI;-22eRA@L?#UkMZs*Kuj}hWB+F?sG44&N zp4=QZflxv0VoSNjtnp%P+u>=bZR_f?- zh5%=0eJ*XCXtFcBT$HDD0XOiZ{pxeV0@{V?zql2@b z*YX$(APHa+LX~K%6!nP30CCjp!N6K`VtJkeQ6QhDk-aye2S(q6Oebh){V;@YL>mxU zh4)xKEjIluDjVWchiIMH_A#noTob3Xtqvh4%9iEu(O?r`ze>U(*^b@@=-j+DoeR8i z4Q)`Uh){_JjWp;9^i^|FvJ^1|Wb4W0!iJib15pOIgKMJS7Dmt`_M9qfG?ta`*8~#BCqUHiKG& zeg*%G`w7d}vI9#q(L2j zgj2HqJFb;NtJwx7Bq%SqL1Gj+%}SgrM2nn#gC%!F;emEl~ZB=Hw2F zFbOZ2HmERB!IuD$m;5Q60x*q~3kv%)-CeSBg#@Thr|?`L@7+5sHmS&hU+S!=_*VVk zzQYgWpaZM@L6BA&xgNB*>v^_#dw}S+S?({x!|DKe-eIl54R&Co1-zy|Mtf*291l^@ zu5+%7v9Cyn_K1TJ=Bf`dM%|>a=seja6cf#@YZc7*5=#&#&nAEyNsNIvltQU|R3S}T zHj{ay`T{inMyKQ|N@4`gjeUL13;B1A^r>I{4N&y=*l7OF3Kp4nmu`&51r@dX?RK)O zqWnp5%tqK1z^;r)2z7~cz znaLLn%Du2}XWhqOjV+1o0xf_H`_o}y@1{sG37s%^zhyrWGep=koxYY5NOc(6{|rXr zlc|Qk@lM`jXdgIv&na^nY7cq_bH_!gL>Et=8XF_0U`|T92&r&*`>=qD0pmLs`{|VH zeaVl59E4Ece_xX)lk>*+uS~OXfmEi{LmG`ss5cmLew-??YhJ<8uy}`x-~^MFL%?6j zY7v&BVhq@me|eldg#M-ze+*LHgU$OXk%Yb2J&ZH2D|Ig2ukYNEsT5p5 z=+?e%fuem6{2${hREYTZ_Z|Ri0&%|>3~$|q*jO$eXUAvZ+|D?|eT@=osA&X{$4h2e zJ9#pf5& zK#K8RAx|>JRG{oK=-(baSQq^7s;JDZDY#BDWPrVDzYX*RIlu8{*S4 z@&4r~N44HXehTi1RCc)L@*+q?t3Naw&k#afv``MF+D4sa5 zs+24Ut%--KX?lFq*P`?YC}rk2w%~lpzbWJY5F=hm{wIHdnPqwF_<$csI|dec+Pz1H zPLMucOQ>-pe?)gojpP7A6&QQ4K+`ivQEy zPKn#|=0y^&p`6#<6U2Ql?^yqBQJ(=FkWwirapk5Ao=G&}0JA%dYg}_Elk5%F4d}Nk z-J>te9U>4|tZhMO*Sa_ldbsGtQXH`l(aCv2xOk--1GMZHLA@TpMXy(~(Gfyt)E)VF zF`bhlUto+>At}=v8Vh>&0Js$FHP2ts<5yxOfS7d)8OylZk04qBhc0naqWbrX`AY@n zDP5VTs!3cy31!flC7M{vTq=bK4~LkAn%|F^Gg}s>76`NCD65lzAx)M*MSfD*n_Ud; zeVqj7(!`_>IKMSG?yGEmn)j(n6yKoNW0-=@M0>5PeG3!zOws@5>pik`SH^B5>S1agpsP=|vXbpl#H;oTkMM zmeUMDdgp4nN5as!#{QI30+-F^Z=E@=E>Tt<8`Pmo&oJc$&T2wl8v4J0uNffa*d&eU zw5)AD1Iy~9r``o6D+S0tic=%D!_pne_wIsWb8Gr6Cv}fNc3oIF0@`tB>}mH`5_^R| zvU^n4b!lAN+zQ+?)*EOpA?ky#NpmtUsDae2h(8kcTWj!Oup%;jJ8JXB6CFE>{$@15 ziWW=-HOU8Mi^!ScxI`53m;jjpPg4vnAA%bLb1Q24kRY=vr6ks{Gw-DZkiX)2qs0e} zTbki+6U22Uwj`~?$X^h9Jd*TmH+7XV*_BYZVeKkTKD>DSk|GA2Kn7V!tQsA=@--W7Waew|}b2IahqY9tyr+ z<(zDn!!-U4=}ZO&=?g{8mJxsL?35W9!8EwMP(9!;$WA#Yd+Qa>%-#oRCZpW zR5Y7S1C+E7C<(CJ9Bv-RmJ=1naxFU{P5AEjH#6&1T5{wNXix9Hcb^hVOS9f)&6@Wi zt=p~&n|G96;K8R*_aV$1dM~3MBaNd`b|BF;E`3-uP+gFfeNFy{ztDaS(r2OD3T50L zt^ts}?jeE#uc4T;_mCxNB|Sh?w zC=8@fMD!W?|7Lv##R38I!Sc!_X}Gt)sA?mu#VH9&Aw>prA%+DnDKYd4pvVxol^Yg( z38p9S%3$j1Eu?io@jx#Y5m5DkxFLBoz>-&rRoFQy#i-M+W~E0kSI z1xyswYP`x)Zb8l!sR~+Pis(Db4hHO$rFXlSxTK8!hsY)C`-SQa#%8BCJu)YvuJi9JqjGe*%zAR%beHOZ{V2ri6{vYPpbBnUfvC<#?<@n-$fiIr@9r$8V zODW}HnJEY`KwsY6cVj%Ur{Oi~Q)}lVF^El#>3#Hz$KGGEiFE57gPQN{Cd?cJd#-*)g76$v2PxmV7hWe@?*B zi5>SL`36$NEv(>(I`v~{w7Lr>8Xar}@|xyW(?*|?qRMz}8o~N==&G?He?^wu9o83M z$wjqHEAQ%K)n2ipRngx*sVyEfq4K3ac$a18^m|R9xsCoI?V8Uh4>$kqdd60{lPVQ+ z5it9Y8r*>w3&!I16C=5*GrYK;N2cF6Mf6BC0Hz|8jRXG%DB(!DbA%vN_!FywOV8oE zgUYXQvl&tK0>pR3eAs))5!W5(%BRjEElhv>LA@v!fSh*p7Z{>e$(KA>aRhiflpiP= z@}VTAuhpp7J00O9DDrZWQ=MB1BS!>Ww3=+FC^&ycu(~2x1WrW5qnHg^0 z@_&D1ze)HKQE1{bICa=htwmEEu4zW0U9bW7p@hmV4%1rC020~|bQ;ME3G%)CaI3Zp-5M4LHi<&jp!V2hVu8y@$3 z`&MT(a07`N`E+*Jn5HKQJZKUfUew@Dl_DJ0ol#7lx;}I<*4L5gh%6~d$z+4U#D&NdC?7$--$y7P7|gv#9TCubbN3v zdYchY=o-a5`!073PytZqGn8(fo2l~LaxkUzuu}a~sZ&I4fybekXfC$RzBJBansIo3 zRt#5X)D*yTyt248kv+?rXIOV4oesr?6;Vb4+NiU4*^@;lOv%BzouR#sLlHMC?Pb|u zP`OwtQ;Fc4CxtuxQ=>qqI#i!3rqo+P5y@o%31}Cw57(8@XA`if)8}$k`xY+mRmn$} zw}(g4wqsBjGRe;JxVZ`xE4$kIcdrl$VC!d1-J-m!ag}*Nq=d-r3oLM-jg@f&lCKpcG7(z&{Kt;_+JH+z9OO^%~>kuzX}t==Bgv zUo`xqM`bU%yu``%VtJq_>GyY%GXjGA{`(2Y^OR33;u{cf2uB?bgTsF#f3|i;AqNR> z@Vt_GGpVNz+~9Pi3^7okn*E6C7=x4_x&X%jse3|%-U(0 zS-XQd92S_hqbg>t7*e4!D%hxsDe%b|R^x=FlSoS+-WGCq;J?Rd2dk8$wpTkLIL72tQ zAz*`18KxA*X|!2&*35jSsp*F@HKi0QTZKb%UUf)5IY@1QK+_q7b9*?#+-`vEHjt7f zSy^o#c1@*r;o_>KWFz7h#V>)h=0K7s8`WaB5mZ?ya+p-lP^4#v01~J|I#q(`m5eHX zj_8d3c|(Kr7HkGF2<$SQDw4Ojnox0IhIf`&H4R4%jXpK^i-^*6%P7&z86Z;k^I^Sa zKk{+So}3eX&F;eY=luEEBYe$H835(p``{+F(PB|~NxdC&?*YlSzaUM@Cb9%CMfZ7l#FxPCkF(1zAHq$KE`JS4N7*}ygE2%zkAO8{Dg_i|6sGMt# zq$J_AF!aGdRhRUX$u{wT4u3%?rk7W)L({f#H}unja+pc0L7{+7%xWTYK);8Sdk3Vn(xHST zw!ruRa~>iSI5Q*uQhCB&gpP*wF#PIoX(`p*Ut|08co<^U{)*;IcUWJ*oJpkdv3t{D zwedgKYmlO22GD&-HlCLmOeT)xVDbHB%ITC${7k3#5rx#BOa=@ANt5hdx&Vw0033{I z41fU65FQ066@U~T@Kzcn+bVSDny@XP{(%<8bSIR2Y&`wM4ruT>N)ruP?*({j29xAB zR5-mk-~vwpA54d@D7R>Lcyk@7txfs|THrubIrpJDWkzu)ADrD>pTc{N0MqT`#-}FT z__G1kKFcQk{E1o0>m#p%rB6ro66#K0F>-u*haOT`;GFZ~CZIDQ*&4dTD1*>(H`n`b zv@+`K+8%xB-kw4IrA`BPdC9ka;UKEyH0ovHAo(u?2f=SpM%uvpBEqRAFsgU+p9D|J z6waTcUVMvAen0xX?0nTbUT@ty_y(3Uo|XAY(jh-Au+e&L&91ON1L~_iQA&%K{9r4O z_L9j-{$j9;6pm?6`919B(JnDn(r6D}B(I+Afds?s1tU@KT%N1jRbuBJS23^)s99im zC|pA%#RgO&AhT^Gk2B-3{B5{>Kqds;7Dpwic6g)+5B*ALTNz4Ums9j5X`G&ZzYuw=Eg>D%T5HP zG)#(A2dwI!I?^dA1hfvGH42naiCJ&YwwiS2P%uJ1yBLn1te}pvvr|{U{Nt{Y>s(u< zn+nrCa{|bL_;>^4mv^1#B-*f2_W~%iu=DrEV_fQNPGQ71wn1UtU6}M=V|~;;89=;R z>m#4nS)am)KlA!jU#!cw|A;Su5LGUtR8nV%0L&Iq+e8s^%81v0eaX8070B zmII^CiUr31nK7)AeY(biIn4fb*UN&avs~rDe~HzqU?#7tJdFOqVbPMOOo+M@)sQ@sOC1rfO0xcnwWk{IV~icuZH*55SxATNgsxnW zYm_g2Y7KD9m!8AUF{RIuh8hqxx8Mu93quZqxqVyQ{0oL4q`*H)`j9RL=~3qx`G~i7 zU!t%ORq_cBJylvuZ;VPh(RQL&CAog%8_4zF7wkk2U9PC$tB~%&OW+~H^-zn3 zsZG!ts&>_e@x>tRs}RygPoPYxaKLmDR8=`(!b=dzu6r;*IElrp7KE8{p;x|e|Gfzapz;Y0 zhnzh2PIdi?A7rSbkil_W-fQBCeH1eBD$7tbkK^(#FPqCJD5tfI9G|eIDPM+tb#5kT zNXG=_DVoa^P%7VBieiLh(^+{ibBDo$0GYgcq)XmV;hL)R7S9f0xoevvu8l`#+-7e)!$^q7O%-T@L@@(gV7C zIo2LcY(u|hcid@^FSq{nU@4~ECHmjm|G&%sdiV9xzhZri^b>ag&-03jJAm5`HD)w( z-sQ^%{Icn~RtE+fXuzc|7)Oh%^#mah3Z+uoCuH~{AAGaM>La}Z%YGxf>bHl7g; z2CsWQgLXs)LzfHhEyTQPUxyT%ZBR}9vfrKLW>MMmRPUtxuwF~B|&|=Poj*R3? zrv@6QAw_+~;gH;d%>aszZ4bYUiai)d3&a+|RXgcmqbBE^Iup#2#s#^%O$Yj?1^haz z2Fwr*Wd7xVhSMsr3*|3{ToFm_YT>Ev=&*_?u~EZ}Q2nyseQ)=GF{VhjTJ$tuUV0Eq z+@Spul;z#W=uy6jq9%8itdG_2e@h=L;#JDG@vS#|^OF1<{PMk)yR#Fg+p4s;195*D+HFr5m5{)cpfwT`g%Se2ZM=v21 z?m`Bf$VEH>xh$0OCzOhF9A_s< zdkr{m6calW3yN=LG0_gZIST&WwB+SyW|4;U<%!tH$T$$ zh3N!lVW~Gy%0Vf@Fn5l!K9qE)CMi@?HR=yT#_G@cXqX+MUSBnuP0!wsDyC~t6NQ>< zk69$G`U6ZygRI?4C#Yi4pEpi{8{QY}4*owTx&JOgoztI!+|G~HHW`s$_h3wlsZ>N` zB?2#pR1U<*X?snC5OhoiiIa`=hREz2zQzv*K zQZ@e5_g=<nMuk&$ z<>Pd;(V%?=&8H`gF2%!76Bs|!Q9CCshsgrvoH)H$1UZoQHDX6#kX%a1ODvAU2g0U$ zT$B3Xsw8Kngk}^jSIm2c_*qVR_mq)JvYg>W#yk?jzH8JV+Rl~$02y~NxVKJW( zm*}Z&iV23W@!Uoy{s4)eJnnk-ZormXXcGxTrMyq4gVkJ$u9KbUmbopQdKHLgMxZp6 zRJv*~Q!;bXRJ)t$e)bO43cD)l8yN#Z6p<-uxqF&+#>gRx5{7sS`_+9o1DqUfj*!8L zuG7sNi0Q3Uoh(v$IolG_QKeEJ3JIhPNGK-)o(UN%y?94qak89JZD^C*84gQyR6x1ttztZEnh5<*0(V4~k?Z;P{xn!o-0m7G8vL z67d1LN?#@;b50S`;GuINlgtN}WqRdcquLaMil{eARVljT!Z2utb0&5Ij|erdssSs> z#aoc7O32m|2>h+T(cDvoAjoxv9Z@iwgbMJEa1p~?u@vR>$Lh*D%F%*+i^&`L(_f4s z`&}@r_kEV3%d0nXWseA6W@kpxn~lK-lg z16CerZd7LCvCi@c8>KdboVeN`{LqlMNdx9VE5ED(xlqXNBqQ3&B=p@iU;Weue7zVLm=5L@} zI?#hnvsv#r$@f>@DGlwvaUM$#e|ZP~KLnxi91d2U{P)SUl>o+n(|^8B_E+hzRiGwJ z3C`8vTzA}hYFbaxnzA7j8Z)o4IR@K^PnYp8uEizo=#~CAeIL<3tMBmj09gHK`_<#E zz3mq}2hScq*^Bqvs}Y*mr?0kuc#6k`r>|ee`zuj<)ouCc#oHZviii1GI!=B-VoRhi zv)7};6=LIN4^_eZ?Gg6h`hiHaup=X&tlb@$u#ck!xP z1zleT*p>k0c4??FF%RGoNU)33Xq-%N#QSM)HtbIJaKaG^+)LstI$+xstZp<bAlGz#R}}y<6l4 zYrsbPtxP~KVTao(ZF7cA#$VX!rTYMLtJR;hx=Y{TAnB=IUIIb77>uGF*=Xszl_lwA z1P=S8_!cF>_gf=$Y(D_}s69e|@1mi6Fj=~fp7N#thVT?z$nWra2oFD8NNW8#H@cqX z<}H{e>ChekJ&j`p%+R}2u*2IV2gD=fgO1+7qMALNP9f6}F2y-LgbA)YjC&K8=_Rs9 zyJU97@Q|WEb6G|X<9Y*n1hXx9g^^jWPbxU%JX{z6e}$1qO5bfLc|I%*!~NKRdOmMB z+^eKhbw9>|hs?VJ2?`16onz@Q27jzi)+*G2RHde3;S_Wp%!5bBdrbmMvWG83r|G`$ zoFJJ#0bAl?4%pr*+cJ-U&w`>LuhOIA>E>Y4q0^?xN(;XWR7wPZqwFP;>_>MHht0cN z0{1K#Tmg+Jp$4`CT@C?rw6F|ukFJ4TI@NY{AemuQmJARPCgo>o2t1=D(BC?ZX}sJ$ zFpztFo}D^dBAq%Eq(-lGTB~lMlXW`N8fQ5%)~4SZW_j|QkW!8gW$KZQu&X1bm}xy6 zG}J=P3KZhJRxZXqu&bvqvb`!^6>h8csu!SO2L7IdoM;YyG&C!)c zrbo*V&Db8Slt=gVwMK`sC;ega6J;xZd`h&)*PdWc6j8;9|ZW>PPmt#Y%=iyhlAZgaxdBN&$EV5lhEw(J6(bUn;Mir> za2i^7z5y2+9Th}^g9Su_s3HUlI$yc-$UeYVVo^L}%xxFh?*j7-u9`3j$7R3CYNjS5 z2$69%X|ROqNqquP+Um@7RK~#=)0s$gW|N_4z?pGo=E$PBm7K%6Rvx;gzhqB<)e7X8 z_Vqeoh@dhQspg_59f&t;o)XXDuR?(hDJ?WhIR1)2sMk!3zcA3$jexpCcC8NEeH`LR zdl1&V+kI^-#dmjtS_zGc=WTe+C#S~r;Tn&4u@Cq=u3nR7@JqmgUm>jFf~ZscM$r%K zAmJFMQ_|bBntzBZu#E)Ku#V9**ignwf8Z546*w9ZtfysiZg7FfWO?NRaibet9J->! zTsCKMCd3}iTOG$Y!5AZsgEH@_QFH7!;g^o&mvf4B(UspP8#rJ7TG|sSZVr3rww}+_ zSvE|}hmTOrCYdOJrFr^2r>u3x2~;@BHiiDk{q9vp07^_1MK-H z>TjFBWw0OjiN^5d=s|HE7bT1e!s94MF3=q}Od&8Lr7eG$bWly%0Ss&n04R7t>ai*J z;&O+I1wzPlNo5`wi_?8E7OedJN4QoTWs52g=R@ayd+%GYw zYr&vi=lhn<8OfrqrgK1Y^L3Z(HOj}B= zh2)SjfTRQ$usEjFm$+Oaqq&2cVw3-=@@79Qvu<|*_pHFWo!$WJhD$JDeW2+1cAp8L z<6~kcwho2je#ic$2tllS;6I0SiD>c3>WnBPShc5zZA zK2m98SvGh0LiL!ipxy*^1hvEJ5Dco`C^r#-G3*;%6vS@m3&WajY(Rk5n2a%APykk^ zqT-&rYjj51XOr$2y0t1p5&0c~0D6`pVQMuwd?0)i^(Vfdm|D_JlH#B?C*BqgYpTQ6OW?kOl%fV-XBXPpWelvLS*NbGB@AH0f%|qQ>E{5;c zKG-u5)&F?HdtTz7h7@Ym9nW0)V({q`rV2jGSwNIoyW)r7W1|H<3_95(LM^$^MGd#e_S%D32 zrL%`OGmSqZlEs-s0TGca3zhUlG3{Vz2fAcd)z{%;OK}9ts53FiPP)qseEA>C%thlu z=BKd0z!f8z#?6DnVR!T%`x(|!miYCf?(Ar8)DiawQ;}2*3E^izH}9=T-9uQK^FJU| zxr~lhR@9yx)`;|`6(q+Yd-S$KA$KbS^&d@1f=W09|xNl02yAIQ(ig64x|P zlSeQKBKAt68y=G1MnXT~&$G+kYvi-D5_Q=|DNmrghI@3S7XrfPGg1RSK?o0#D+;y$ zo`V>ax>-Ailp7#j0)Glcmef=am_Olcl>UKzVojIWKVR(r1eH?IcFC=-98o`6WK2O* zX63M~2YH%5gAOE|e&Uvw&yoy-%0Je#2S>EXo?`*4 zKX&zv(w#qE&@!Y}Aa@NX|7JBfAdm7NuWn2dyhVd^|#61d#h$0}P^SWmovvYjrT_MA_tn#cEPLOrZ`^^I|5o9p ze7A9DCHT#qyDQ=pdcBC8vVSauDIf zC>X1Mt_opu+v`~?fVdG>S5~46xKB&mEEZsbfPV7RyS0k9vVJl|Y)g57LOPj{z-4gp z4)KZU5ZOMJrhluf>A!~s`>mkq|4^mrUm$M{896L9HCbt>l%}vuMOOmE2DOQ(&T?hd zH}|}(yX=9ct}Y)VyXT-au`}qWBu=oo9e!NIzz`22AiYG)Tfr;*kD{|C?oLsY$7hqs zw@&6T&Q)CPUN*HYvRe3t<;ZLB0yC0`>ndkLuel3vzUi60o&}}Y-tas-glD5S3vmjx z_oBmfyC>eg*F0k*$!T8vUeFL50QH3|xj?Bu+j{C;Y+`qjZP>-g5Nqu&4db^88aIgN z8EeRbNR&FTlO;eN(h!cZlXev%T>ZI@@ejaNbn67hG!MHT=DRTJlVhEa@z(9hc3b6k z>UHPheh_F)^XNRFLfZGTy=-hpXV?t=wguODj6mchx1HKV$S|CSSdu#X3QJ`gRtL$t zdMcp{U@KNK&<|x8@MeQJ%gKAa@I*c3^0A*{q3Ht0Mcon67xyw;)L6j4oDrLV(3D{c zhex@(;ij)&%LC6*wUXVWP~6+M)339CZg!QhA*k(-ma}cY7$OpV$MyXHq8rAvn1DjD zFjbgLpNgyEZs``hM|<|Na0~uXbqii2K9Rh?pnfdfdB`+{!`>jrI7zIa-3lo{pFW_g zEG!?NFx5t~Hh7%28Mc+|4X0y8TqyI@R$?=GEvf)hn4U7ek^+J5WE0S*Iz@Npl2$Q% z2)h`>O<%zf7)HqHagLAd!oV?i#<#qqXQ;Fi`xaYo!elMR>YhNFRTG_N zvC{Q%PU(+PliB_RI)`qaH{&Ly?9R3M(AP~BDu3ULk@2}?NEa~<7l5s zs-Zt|*D5ZdMRqP^@T4WFa^xaqSU`Q$g&uF(?j!5B@iYa)CzgET{X7j+X$b=WHR`+M zNI9(-PL*j7+y;?%z->mitT3$C@d)-n*(>t8p21~s+C%tCTH}4nB^`~MMkwi)U#}5M zPwp3-v&CH;f2p80^tT4PTL+)#(!Sb6XYSomQ~wJO-CiW>x zC_r~Z(vwXS{6Zo(na@a7G61SEMJ3EBicgsT4tR$bXCnl6!wYD7zI%Rh2%mA`PBQ&f zunmEM5&+SH83k*B({hAdKk{xJIxKh3;=z6y~MA{dAN zA>{=!oSbzhpf1o1Gx+U(zL&j9#u>u2pnygQcQ46v(J@3icNeh6ig8vTw|t*=j`Y=q z)I)`Olc-twbMc4MIMFREbZk2BR2h z&5Ba`o!4kCN>%{?wvTjZQ&Stg3`?}W)ExSZ1H_4UhiY#83|IqM=73lPm`e{~*0J#2 zESDYho_u&QXrYY9($|zNST@nE^scu;*3uKG^}O{**j6XM2Ntgh?RLV+izyX>(V5z( z?#x&iQK+>E)Z*U?zl^%6gk+mQGHz)x%`|3o!!KYP=`~nUSn9DP*>GFh6TxDjuF){c zgz23NMpTS62$442kwC{rN+&%MPDL`^eE(A@SR~*j49N^Igj#+9zc($&?Vr1 zifkkwTd1#&XNU%ep203SWrT83W))YUJs})wW6>8(Yef~MA_#?YTvZA9kF;Hn5y|5r zu7{drB;tF(4dMeb$ne{%lm>!OxrApKGlu3uvc9cOyI8=^Kw5V9knG;1rLR+FOpq`TJsG;(pR|)w1+AxNd z3I?BjH`T2iDVBJ78UU3`lmQ^y^pxt6K`5mc?gjYHbqJ`LmPkhG6x#~OWuX;lQ%s%G zVeluULov0l97&`wdPMRbsQZA+yAnf4wcP_k38g{oB7r=Z=$3?*3#qjp!T#eMP)`Y= zjmXV^mdDLitW7zAqv~HIRmr5dZ|DlxXPu=6r|x8&5u?f30{pZ`jV~I zfx(tVA$n8RUd^8ym|tWMEV%vPlj7F%WjRl2)8H1O*+STcLwI;mTpz~*${$hmecC$^ z04}}J%jqb9eCf9?VKG`aYygRLz$zsglTt1Re7QXn)Y!>;kYM|}!)!{=4`!`>sa3%W z)@a}eQNTCiY)QpVFHK6Lpk_-tXb-ymBpo$^- zf(X(TO*yUC?yPRyy|=!;f~Yj5!65ye+DoH+_$s7)h#nUtb8>xXh>O|JdIOZNE-x?0DOQQCMM%uI(jkD=iNw2?DT^o&Yr%UaEVu)$noHnp`PDQk zy&@)$I8<*Uux^T6_!Y&km-2F_#n$l7ARe}24Gk;HW7G*r!l1Pdqw`fl8Uy-Aa-Z)e zLsYnh;MX)v1c^kFqMUeAE52J6(A`I#WmuTD=*>vY3F251epcpiDP`Zo0*CwfhB#d9 zMhBN1C1UC0k$_$%B7|k_(yu=-f&NNfhItJHF@t#GbB;D`zxaVS*PFWY1d-QE! zCHC3BDZT8C)B)u&gI7xj4le3X=aMX3kD#%32Z`7;>6$u3RV;6%x}#*+X118AEcL=P z*rE%NC;&+g9cU_)?5-x*(9mZ=8v4q?9dqJcXD;^Fy1X=5X!IXSpi_3^Vk??}`w9iS zL99uW7B``2g;hn@Dpk1(Uedhdw|TVFJ(a(I#ow+zJVsr@T~3?*J$xvB&ZF%SRt^ez zuX=d=K99VL*YQ>!y*-9${|Q%164>1dl(pTd{6IZIPVT~|Dn6P-R$WdmKw_t~TPM!6 z@o)MK1{}Yfa4oS{T2>NJ+Y_him^^xj{B9K&k(diub(+Y)nx-&DB+(w2_*3OVyn>7c zV^+C7@8<7gwPRbmyT+{!e?x02Z9qP43-h$qJi)hZap;AJ!iMT565Ivbw$GBo_vy5~ z&^IU99}9kvFV;Q_Hz!J4lg zB~_Uq&n`|lsda)r(rU4T{+_t*thaRtA{`?xI(BgbZd^oYk66P5eRIcfZQ(~9k zp*cMlRj(bu0}5n^OFm5d+z9#&AdZGw0Z%wK2grq-BT1Enx_pyi%c`%4YYDFjbrUt0 zaF53qO}qBs;D@LjULGn23CGV7%&`-A>ga)fe^fP0rCNpO0?ID7F5o1DQ1ZB0cWBSK zebj8MK(~;MyFIgh1!DAI6#)rKL2tJ9!NoOag=0bsQ{Kh^qwL|q$LO$XDZJ&a-X^;T zvMmJh;dorJz8B3l-_!8&(Z{B}2yE>qve-=N3I%DqnG8HP<|_FalIKt!xbO{MK{UdL ztP%{kSC`ig(tcW>?cJAiNsz`tj|@~Rq%cm8^AAN!!UR0ft$B|}4N&n}%P{Nx+^M`w!?!>V>L%QSbF3_$`9H!E} z>Mp8SC0`-P;JeLxD=YUM^NYI=K8jfXPS|bTW?=b^UE+zud1G``cKKTnzny~A_Wcb= zZ4f=Q5{z!hq+{ut)*(VC#EdzvzY3>Bu`cTGfSWH)sC4sZb{N#k}|xfXOoQ9UME0s5t`;mR+F zYxch&zJ*uLTODi_iX}j$=K}W@Sh7-5pGDofv(1j|t@VZfKe$MS!uRFGlP@l>sOpZ&OyL-&GAkx zj7jNAtcR)z8z;pZ9oefLXAzCw&~rA%CO2m$UQ({iK>`L7{zjx>DysM$3E=katAe+y zy!-S*t4WD}@n;R%zIxup&~2W&(nC9&R&pm@XpS{}s41Z-ScgZ+pgS8**>8c)`fP4K z&61C_d@_I5Xp@p0%wgZM)oQ+?Kzip=?J#XoI)h}=pt9hTVfWnN6x?KX;bv*`#lcd7>;O zQy|-;u|jItTy#d1yd^-K^;nebQt!y=r?lfFMbci;ziMj>F(Ct$M4(Mg3a3*ue7cQz zA(t^09SFNuRH1rj3#|yDeGO`{g@wS{)Z%MWhoUHtxGEGE@`U4?iK=7Kz;a1ihbJMW zxbc zFo}MeM88g=A1Bc-lj!G3^zX@L>(OKr1&muL3(0|e)~B&S$=%s|fJ*0}uuU|HhEXq? zMg3?TX;*>*h&gC01rk4hDqLG6AvR zX5>3b4L3KmvYTV}TFqrRz%Gl;Ym`ivala4Jqt0(R`BB|xpc^rl?8(qoj;nvElf5UF zn4zt$+&_d{)qCU1DUa{LKY&2A6o`9zTq6Yp6@5k>QkS8O4{UAFfT3g$LXaglY!82u zv2~cjM3)tBFW{03ctOGGrrpQo5W|K;ouK949;5uMQ6?jU*e{5b{-kE;AJ zYcTr=3h;z@t%-UePGh>v7>z|ceoa7B>U}jqy(OI^h};D=gysslH4baTF|*bHpc&5L z?mlhxh{Dwyj4Y0Z(69d;FPr`jLx=VL1Ygf!YpU0?vrQU|nZV55#QKxzqUuq1!aE-T z>AbBE(rS0Bz!q980(u0erfRU}EkG_sV}#b$LP{UU%{pLj;J|)3nT_GvDJQ=f$+_yN z%vb{i+3+b|qqG=QcOg^1S8=b)8U9AjuzJ3Z=S(uz)&YIGf)fj;T@V~_IG_$WvUrKt zJ{*j)*|6ULU)Z42*)UXuB4j~DqQ)4p8aRaA;qbgMz&;Z5?ZcoR^a#I+X{1ef;x{$D z5XqYY5;0YAG1^A~xV3du5+m1-NMC$J9~JF;glbtF_(R%3)G<}%-Dne&;b!aiIkZ^? zRV$CKPbb4_C08`@T`v+}TC%hkqPpusbt%BRM0M{KiEa@Gri%I+@+(_El`Z~O@BHdr zcjs4E?W)V2L6?Su04QUnHxHprqgL|?lB6X4#x%40?@uP;Sm|^$gEJP~#;3;+dK>Aq z^N*^``M6cUCliR?IXQ0ORt>cS!<=+>UOaky@ObA9 zE?hK}umyPaaMv%5rU;rKKuw0(m|}0}5}Q0|`Mdw(&Er?EwjXWp{Lpy#a=WqhV&}>B z4~@6mdrup?dk^=vx6~tS_D}}`YRe^z9*D|YiUTjQ2rOo+=MJ4dI@L8=PawQYe5^EAJB}#}zV66?ky1cZ1gJdlNm#o2+km)6=f@$FNlfjcic#8W2 zK^wHRb+}7TxRkg`Z5HjsbMl6u9a0MpWBRZ=rW$W~j$M5Vva&ln{0(Cf zQ0&ONm5tBUPkHwYfl%Kk$0#`nOFYkD43I#3x}m5}pgimj&${RNE)*~d=Jp8Q81io9 zRColq_i8*PgP^pgq3?pjWri|*QG5L8-f=>l=a8bHPLd^kDSmqe;VY0jdkwy+rgbT3 z-P4-1?nY^x5V0#o5_K!W#CZZg!a82HQ#{ zMjWZfhE20vA1^vPiho*N_ioWOpU+w)eu}$a{nl%DNAp>$cl>MC;j`qL-Rh41OR-pc zFLnvL6dPvmPFa)HtB}QVP^))Jx1>d#r`4#F0d?N~g;7WAU6)zw_oriw9!|)W;7>*+ zJv0@6_W7~uZ8cVPfmJ`$#HwiWCz7Nb-1>V;mR46mvU;bI6wOzVXri%-Oh?&Cnu9qW z4t352Tv-ze=N&CUzch9uX2rRow({u)m+}+}uPJJoBlQ&5d>-K+6l7NOC`dk|ubXf` zd+#kHOFX$&5W%*i{2vTKCL#cCY?*rjOH{J8f<4ifwT2 zw0m>zv>&Re&j{4#r@GV!8e6^RH>jn>nPHI+Iu86LEIEX|tdkL24sj0gRwJ-Qu;F8M zi(>NWv<1CC{zn4cQiT6r=+-f!dPP?%Kw~g2r9gXo^B+2pP#Zo72>`+{pb>!V0Qbth zjLUIhpgqcQaxkUe5M}uN_c(K2vIXQynL@v)-SzMKZ7T91L?$wg#e-6s5uT25m~ONi5j{i(B}^`NLCayvWsEFFdl$jC#Wv z)Gmm;pqk?c2-p1p$rJRno=ibz*tuY-!2xEC6#1i94SQl3OeY@flfn zj6jv+{0xWktoGu;n*fR9lz~U@2_0AGacyAmtpHcmgR)@bJ#(M5McDkT$c@|kT{c? zgCji~==>XS%aoKsO}y8kP-Z-+Jus!_RM&=v)6|tepgZfa0TBSnQm7o6YYtMi)=*~v z(hsUm<@P){?&ileK@TRZTPiL9nd8W8sVkUfqnhxhT@-$Rk+V#MM2QGv-MDiy864mo zr9DUow{N?>c&{9)wWq-@aC+_7Wkh=U#2NS zd1FO$%o`qOy|Jb_=8d(hIA-6@rmxL8T=Pa zIRB{F=#gy=c2&B%cZJMS$*ulaz1}^n_b)Zp`?IWcQQ|;!bVKPS7STSy=5wJ~=j#hk zk3!_H?-<6Epm~l?R!VoWN(tSi3wERv4Et@4Evg>y=<;b;|PN~eu!vWKU z^DgMk37c=2195)uX0r(-_P+T{i{)bEiDs9VlLv6GSqB$0lV^`dFw7;2YkIKLnk~gU zt;tf{zr56Hf5D}q^}RbfM?57=N4Ib2iPbBj{%SLXfddcP35Q|m9_ zo+TD*$z(^?vGFDmie9ISSXIb+$hHkHscZs+B0Ik3@#~x%3dNaQTjy-77Uw+FXbm@M zaL~wL(+4MdlDMie-K2pgq$uly^V;PUbD+rNyab#02h`j;M^vl0l9W^^G|nN7Q#^9x zF{r)V_!L?W9U)Q~H2;Bfg`tD1b@NQI}T*OyoC1*R1r!m(QYo`e!Gu(QGU19tkZ?0p?+Xf?2jMeeqetgBc}6f;Qc!G zep%X&MM$9BAd4`UXg7}^P9u1g#NSWJVu-~88Iw5UCrIE#ip6*bEtK6q zem%u%Lxu4sP0oPdzpFNUv*z)eDG;BtQ^Y?^Ba+q85&fYP8^ymOICeaofqY?m&}9nF ziUn#aiv!`z(vXO!i`l3px>M(z*b;W0?+eitVY^|L1Q{Nq5@m{rK;# zt*sE;>P{w$`C`_Y{_TA}`yX5LS#N8e%pQl--Rez7lUchr83TAxjQ!*L{MD+-crjc& zx5ty&LuWMnoy@k@QvMOzDFro~O=k10#C~2V{4nV+M_~MFp|oF}>2Qm`7ZK1P^d=9} z$rz*=hWn)VqdWPP2LAE5Og8oYf1}P(|KP*!rpD6Vj3x)Wb+4Ew{*XmZzP zZabr`eB^~z-&D1H>hdiWo2Bm2{@(V^rs>Ev4#FBaO~+y~VLDb5%JE;Vu@0iVA8&$j z)af3U^{3P8O_t+DyVFyj=36WA^4_deSOZYrmp4E-`t)hHTQW07$-U03?=-DYIrf_> zm1F!ut)uR4viBA&JCB`3C#*dWzY)_772k;M=9)*J28U(iI_Nx3X2V6&?k*RL$#`oe zUXJ-ng*5=>J$M6zqyDG;vYyNms62KfA1UuczVuc;@`mjqUwp0Z(ZQ$vK?%*wlEqV! z8Z`&(dJrdgf zYdT9Fhso1cK2nZjzI3r_IkvCXJ^Iw&?w5?{e9>7f=h8A3qQqkK1>94ybuk=2x2Kc& zqJ6)37)gLdZ1sg@J|iukW~r+hq1>mMC$Dz8b=>KCa){A{SH#3 zE3sK{ZOm2_be8?yjCCL7ww3rBW_qQ@)=K<;2Ex(DZnAMtPPvXL4fn&l`w@Q&R_lKbZ?DWe;7Ph6piG>*AOEKXsm=~0Rks4^3n`NGKm76JS zj#1R;wX<;BST3P_NPTA-j;Bi`rsdsTGRIK&LbbHrR4SN@wG?6{@=Xe2G8oL!G6%yk zCa$eQ?5!XqXN(eAlFY{H!52`^$t2$6>9F^MhVzmCq-r?@=36Q@OWmWr&c}@meGPA) zsobo+73=kiZ^e0I&7=L~pjTWqD>nZDI@aW={m>Z?r^^w$@zz>OIqsoKv<5jykNszr z%RB#C)0(n_-r)+{SldG9y~#9b&y!Kolli+CEyurDezkge4@&DFeMkmneRv%9lSw;M z>$g@D%KNceV;w|!U)}`c=;PsjnMN~X?I0QY>|$Ta#mak9D85p;ybmR{kNQcsvuR0n z=CDf6V&;RVe@w@Bn~LQ4g!UeE>BP1x1+-rwG45`JU0(6S;oB7Nun$;kd;6ctY}0GX z$+uixkf$Vn<%7El#q#$pZAY=ULV6U7$%xbh* z_Sx?4l$k}m^-WUdyf>d8bwB=x5K36nMo)vI!@W{t+2)Gf!G77>I=C2mgfuo2Xt*DKrbUaQ{yG$`X&uW7J*o$a!I zzgGR=(_z^>m5DCB?VYmWD+6(GIM}FA(1jt+n0VK^X}bEA;!N z=xsVy+}`h%G3`y&4nORbt@+oF1>xFdE9`XuJA)5p%p$dKZ9D@rg4pSob>l5SN~g+& zikDBagbQ9lWw^Wr%weZgKyi1@x%sDIfs=2iM~w24&VCsl`8w+W4)?lcq?`9nEczIY<84ud@1g;o$^8U2bFOxcp)v(dz zff|$&0(aMK*Mo9lM_{M-p=`i%by(wa19vq{>+|1iTBLc{@0KaUxz-9TtNMPYQ-=8b zzSGBkEjeH|8EqA#HuE12lQIrfthEV9w_9pw7=S{GM?PX$bOxQWMVha}BF~^1fP?OC z82}rE4#$7yjVxY`gI$aokp1mapV?xqO+fnl{W5k{Bw&u$%}vSsu~$AF1@bS{K1}w@ z>ccvDT1@)4hH9L;n?7^h~e-CO+8;{ z9l!xTq9yBcib48mGV9}0gJF8B7HTQ?CY%PX{ZAhc z%XX-jD`N&PTNe*Y4pgk+G-U05={GhMXwTmw}@2fLf??@ZE`gScff^WJ|rC|lB-D-L!_5B8k3>P+9*bZGIzZmExBEMKg+Uv6$F zvW|yA$NKnbr&}hJZLYZUq4d0Gtzx^&eZ1uq>7bv?t@*u9r)&p#1C(xeP)6-RahN4P zmpG01`rnXdNa5pDCarC#8ugKU69(=e`B>IR?t8%;%v&l8TIKCQDL2k)Y-K^Ke27iE zWOwY{cNXnwXPk_<<`;ujx%=@`8B@z@tXA$F4$2O1p6(~y6N^XNg_yO!x7#f`U;rhk1K4z|X^Oy9SIlCp*xCQq#!h+FP5G4d}sM>ERwWsKFqhmkWFK5Bp^u z%~jD^e*|UK``e|w>tQx%Bess`)6Ogz_wcs2HL^L`fWm{ymigw|Tbq*&C>F=E6&y|~ zj7>sflaXBCHzgXt-p5Yas@_!hWq@2B*+{sR>D0CE?#F|TtRNOBVNljDAN(xn1HSz> ziF;$^oo=UW(T+QhVb;@-wc8(Tml0oDVJi*!bRL$QK+IOdPKgIr8nntur*!JF8mpB% zgHL5LRDpkno^MDqT(2~2~{TzjHDLNOn>Vtz)F*R3Zt@`%C z$FglAw5!&w#m-*oM6Omj_*m|0jQ3i*KkGcPg6CP-TI}w3OKm_|m9^@Jy;8%?!=$TQ z@OeLx;K}%6j$w9qP|o=NP0$~AOI-j0Zmcsdi(3Z>8eShibjzf|tj22P{hha+u+I`H z3@G&BzJ6fCg+#-qcTj5F-c;Ak1S_o=z}>w!cur+L@J^2T$+Z*%)ld2xS#-`6v{td; zK9qsl{kZvF{b<Th-E4z@kaIa;l5s zh)aa%QYFulL@&$sAPF~Qg4<fl4KOfHUmDD(E- zOguS!*Q=D{xv|bs??X~1K~0z45eLL+{grt6=&n?N0Tcjgw=Egtl^UBM9Cf>$G6Pir z(}4%#JDkkMozYsiHfFxLj~i=8bT?+cz4sfdm%={U?w5Lw4Q503g?Tm>s|n@(U#+pV zn(&5xu2$Iy<7oS!)Q5V}xy$;JkCgW#UwSJac?16W;%jw}l4P&U6q08p|25U!%C(g8 z9;{W_0Hl1yy%EY$|Kny$M~+$L_lSa2RNj}DtCsiR)w)Lqhr4CmA`f8IHK~+CzgGFL z;lA25wU4+PQKrR3AT z0q0!l)tcPx{#15$y5i`x=J-@fD`f!6>E#U&jy{z?x)jt4I|t5%%f~)fIG*?j$Q#D~ zm6}H%4hJi1bmdle!S$;|g!s419`!zTH!|*2%T9S+c&uV2{=)FxPkQq$9%r~m1n%^) zl+2Qq=nEB7@WEYTqw8WR(V1OkW7TqUd$sP--a)Airsz#qifgfWIeu&9kCNW%Y558% zz2a$BLRkMRHIMfC<N*oPN-p6kPF{<@`e_FCm~{7Y&dZSRzNJZ|>(Eya6t zwQ`JKtatRO`=QLho%#2sp>i5Yix%CAOZKc6YVmeT>E*_9AL7!{EeBCP(r~cCdoZ7>1W+KU_l=BX= zPo!HpUfo3>>(aiK)GzONIe??yZm9{k2n97}Fnr6CmYb{nRitBc)I0jrE4_nTY*a(O zm@KCM&Qw{wzlv?zpwR8_lrDfZbpH)Z-yln`HzWM^cecyiO^X!^vA>FGvGQLX*tOb6 zyM9cd9-|nUawx>i_-c>hlfeo2~2jwBY)YWl+AChR*v(F^<-w= zC=9PDT)Jsgil3O8U4OxGMsK%2TkPMiSKhG~8WbfR_6KFNkk%Fl|Es8Gb^ZdHg-Se| zQTot=yK?FMND-FG2M}MK_YY>n2J{*=Q48?m(tJj!HY3=pu z<#ShB|7dToS9U^zL)BlnMOE6TzXqFh7TI^wagjr>3#6Wy9|ee^9JyQW;M-9#(x_2z2jbM<09C7s-yJQZ9!mo-56MO1xZ@dg-oU>Fm5zv3xdO zsd<$2OXZQ=Wx>MDzfz1}s#uQkD>aXJUvVSH%jWOwtcM=48u;=?t(4(A^j%ST@5iSFia zo<-%nFexGHi0=_^w4a!~)ES_haN!CU&=*?JJ4wp=zwiGx?r1TL#rqhwNpzp9BuVsVsa6n^fVLb|XVW`n;cRsepHffI2N$49>%lE2sq1$~Fea zJ~<(uYz9pw35C(NP#ELMxMjy+HUCVKO8L1Mf&Qeo)aP0W_IOTqk<>@r_4W9DXU6Fl zIl8ljEKX=Fn>~q@#bP#u%Nwkj5~uuq7Y%t^ElXt7Co?kY;n!{{6QA%Mc+Z)P<+e;x zZ^VlXH)%sgY$RK`8>f#zCZIWT@P6HyQsH(VA(1sd;e3G5lFv%&he&|j#i;GE%fg0c4 zbo8;7$Ii&^sA(jbY}IMEleyCak+Ejlr-8taL=@VEy(o*nNp8`^B{C5Z28sV1wedoU z;x-SJ*{mY~&XNdBM*Xz~5{Pzo*WJBOeo;th>L%YqM-vLd{J-efn(ZaSe3!_WQ}1SS z&ggc8fTH?gDX51mxTP%#UKA(VwZ!Syg`7j*oS~l5?c`dkS zUh7d|lEjNf_D@Z$7C7%bG$jUoQArR%zGW<`}PX8Qh2#6p4SuO?vn;1 zml&Z8hRLX}3LYpVlNxby|0u`FpQGQD+2%9zTsJmKxAT$q^qxJ5qT&!XUhzg@Z?d#` z_ER@KOc7JM6Aepv9D$HiH4E~7sCA?>u{+Eex;3wl9g<|Xw)r(XeT=|<5G6A351iLf z=3bAFc&d7xi#pZk673a4sWh3+-Y*1242ZWwjRc2tJ+YBSJAKw7MM#c8E?Enc z`D8h>B?>3(utjqHn%$a=>1_De>51QrC+*p=ci#?6aehyaLTw1cMmX?Gz;kWe27Wm1 zjh4(b_4|AzjaMWmycz-8x&UVl;*!OHlP}*aQKxkMi?ZlHICRT#bY^JJOE zyt4D#J|8wCgN;?a(QR^TBml{cpSQ(xV{x3FI2ulm_F1}Q=CSE;%)ZmIwUW;_$-rL9 z3sc37PwzReDKL!Qzx>rd^lkTY1vgvB?7!hV>!dueYlgj1!FCKMCc*JSY#2Cwf4a%W zp-G=#CwIp1ZSesF7trKai-$do4b*&hV)AASy(nk}SkyKZRIUFKSsNen7FV!m%6ms$wqCD9!;WZq_OPe#(&42sKIln(2hZ3OLVOgi^*+^X% zc>=W#=a)W(kHh(pw}!}~wyysPr0-jy8zk^y3}!M6l;qVA%s!Z*Zn)*An3nc7rQ4KT zt7N4iL`cMoH9Q_Ep$cQ#vB!FcQ@Xytbnz zQq00Pe@XI|v^=9s?W7SFte(W6)Wm$=Gz7>NQ^-l{VR3KU?jNn@B{63U!-0?TR8~D; z_kP^)q>D;J?G#z+c^6_V`Shvj*szJ_YQs9juO-xcktw}1b%NFG1^I!Q;*kJlQdmFV zC$`gE)vqratyZIX**?8)-d?qDug}T##dH~DdhJ{!UQ}8)&0|U)H(ILHzHHt!P8zk! zjjDUaw9HB6&*pXGroNhfd-+n%b^YdRy?(P^;iZgL{knbAxTv2uF4vm5shqCn!R+&$ zxVRN^g0X`6?d6MEt=np=cHO9Y#XPjz%a`+7H)Ry+3lxcY6i$x!0DUOjJ~p4K;% zxN2Osn_n;6Ub5Ko%X!w3TJ!SH`gO}@saSDS_SJd)x_MD)*DsoXG}_noN=>ud3K(z5 z-I#NGX*EM03Xr{kMC?3rYKZtO1g479c68 z3$`3>$naKu?mkMQDeTq_LwEsf%B&~0>wnfSZ(8KF%u;}AEHFv`tJ2VHkj0f?Oyr)Y zM@ETZVcBL4xUnb8C|uVIW@&70IFkG|={mj!Z}Q97TPCp^jKCoBZAsA(z;nGqgtdX% zRy0^nq@qY1vNGh=mJH29jP;S6OxJyyXGz_q)@=}mdZUT)ROjWf5C$xYJauN8M)7rg zPfUOy$~#jne-@SqJ0+aARvc9|!n8dF9_mk_k6Ckesc&=Ny6nvhfTMGzp^Kyxh$ z5r3zKK+sCRt5syyZN5ZbjMAh@Mp6Y^1%axE?&a$_cqv(Nft3 zQt643$PKnHShXA#8AF0G+|>UW8LmtKGGPh_seUNzov|q_2H5vM@>ZcZ_jF@gZt-BA zRQn8=02+vsAfziHg>qs`2>uk7kPH5|)LSo=7MW?`1d)``a=f_~dyPR4^^lt|bEX|x zj#m;S5w4EkctfJ;I;$AMxoc>ILrfz36{GIf#Tx^9zu*%N4Ku&ImG!%Y7pB%EHz9}lw zRYM;7qgbt$3!^LcVA_#JvvY?DDHxSysp?GO8yYMLr~E9Zec)8=i+^dfDsG$EP11CB z7=2+YjaNG;*=n^L1Ad()8!<2KslN6#7~auJFRJnJG9XzX$1@0Z4ojrwB;nUnufi8k z$l%uF<`|1tS1cmukGlKCNrhUtw;m7YvVb&iu87}hccS|jgH9FkdpVUPF9a#bp1PcR zF=7F%$BinyH$g^G9oEAPlTnzGlwK=WSJ%xy3t}d+&hu)q45KrC5?P^&>lPeN9~*b&BLo-^8TrW}Zu#m(k!3aOE7emIyb z`}PdLXQc+u{CDj7`DPD48KbxvQhP2 z;u3EAQIYv*Vgf+0Ig->?p|+SnL6kW`YHuMsC_^%Y|9a~_-1!+3+6bnL>a)w&$xp4% z%jHAY_{lu^StUM%$}I!=s&g3=l;h%cVw!vu^yYaKq|e7jR*F$wP4mO#@MJB4d{6$& z+dxLc9|i^j#SkWdE@ot*oR-4sSGrk~@(aVPDx*Xjs`8hZ1d?%KH1e1a=k@TgA!Q?n z3Y?eY9y{KE$z$imUU!+>VpuCW2xZ7c0b)qF=kTaYIDkJ>P{68(x)xyA=F=Mf|MG!)Z zA9(6bI(kYM!{Dc_{=HKuZ1cj(ZL73`P%@uamy3n59<`4c8Wxz&PO_Nt*y1qGB1*ev zZ7M`qb`7~K7&Kby+HrBqp6O9^HhE%}Tg$077ZNxSJc(+#vsWz?q#{OE=yFuu5B)Tj z>MLI-N4BE6d~7X2ZKR|zcz!b(sS%ErhV!NlPa+s!A0d`WmuB?+Wa+GK1Zq7S4UV+V!R4m$g-Ad0l@6j4Lzv)tBt(S*_Y zAS_-drV^)kv7^p99usui_sxKS`kyjMGX|tF&Q_lT(co7&WJ5DMT5mL*b|)@~KFMAa zQ8ZQ?D)c&I-(_fPk~24uj>$#{bjA`Z2|+wC0Rql(6>|EN@l5&h5;5u%;+6c-qmJF; z^eSBA{B1IeDVivq>YRsD-WUf8v?H}SmQ>h@YWN_cL^$oB=i5RORec`z(OAg%6OfYv z3M??AxzCa2<|zA=WMVjDNM`6AzB!u7fu;Bh4wmhN;N*~zc^;;A=rlH^+(bkZ|%f8QXAZVW{!I z&117j(aTw9^fh2{p9GCPq<>zCw-|*0sg2_h02h;6eU`H3J|-jCUE7O$#NFV$Va^8( zrFPJK`XX>yAC}KI7v~g^p|W!)<|MsNbYZ`#U!Oc#5KA<6sIz=G_t{1?*jp+ht7wR^ zgLjXp-@X&e|4vY)JSr6@!OrMUA}KRhPIeG19S7$|x)&7^(=r?5e$X{xR3E0Lqq za30ifK_5?QR-7Osgv}A5iLGJgmL^i8l>inBVsYP@+k!Lg0j^~y_h}7AGbm2##ygW* z-KL80BN3`%gTq?Z9ukUDvQUONr2|88la{r13Uth~WQ*9kC5 zFpGXi&PLT+=93CRjJsh-)ZUn!yp4K*CnN_KS;6zk_^!2#K6el(#~1LZED0%T)S1qc z3-(ozmoXvBH0u{)jFkw<*-j}=n9Y-BZY8B*=#dWDkJ1fcR6yxL8~}cjRFhr@+_T14 zb3&ihMkthmRGPBWgfL7Ou09)67mebsFj?MdlkTMSC7L0D6RI2Wkuh9VUAY4s)EU`g zh!(p$o{R$#7t>KkY(CdgR~WzAk$Jhwf%j*3?+9KVGBz^hX7BJ5r#`BT%8PN=bZ`^m z-Q|ESf{YPzjA%l&sxc83kcI~%cQ{7lHId5>vZ|`;ErgxQBi002Q?sjJHdHyFov?=} z*-yj*(&Ag78)68=ng*yMd(ra3sLjLkh1RX zQ(hxz-Y)r%T&0hS{_UE`%4QARn9uM9A;Y({78`UVmx&HKy(OopOo2^_%otWmZ<;KP zkeIT`UQs&Jl!+KCHf)Q@dy=_ysT_`$gi5&&kI^p_#)5G{+7O81X6Yg@5> z3`2tp?3vyjD;^35^C9pPc{4U4E0%~ghs^Hf-6|)3!qS}8jeQt<(NTcJQ}qv#Q9e)U zt~IwEWinK?R9}i)n&8B+tI#SIK}5EiR*MO$7Q?1f6xER-u3#YTkfd+~8jFrHnwvBn z=roNNK{@s^B%O{X-OdQW6Wp;}SDka3B_&l`DelaZ%nBgU?VZ zw+u*xSx*XyXl-v4Lvs~7`raA68Sk^vrH&%8*TeZq%K2@03dT3HP`Yjy$w2ZN(k)XjRHEj}f@#y{TGgN#3Tt^q9n2i?W5m~r4Uu>I4y!;j zJ9hW{98r5hP$)d2hI1wK*&doiHmJ&+0az9di~riwvD%TV!{k{i%HsaR25OF2IM{MP zPl@0@XiA<91QsgxNZ*OzaugBEH3@S#hO;F(9AsWf^l2qZrR&5NB~mnAgG~)eTWWh^ z>or)*L>BI~WCWsYE&G%gHOKjLdq(NbI9gsCjP?JtYbjo$^cqva_I!nHu1UG1g6(>EzZ9)M5<=%KTWl^|FN2~+%U?UIM&G0DagLZrq<6@Q*b#p^(*}3%7hf({KU-JybHjicLD7m`_Ub=)xm8OQQbzs zkPH|e&&-O?C75X)Vb?gYG5XL;KhzF|8~Cqiyrjto6E19UID4)<1gok?Zyk3PJC`e( zjdACftG*%9c5OAp&f~p5SWC!hi%TmzgPFxhX8vG~i@G5oks`Dz2v)^*VG6>ttdPY~ zn}WI9aV$W&nM4?POc!Bve!T)iH`8cHtS43POXbsaOVF(vZ%~c9@k8{Ov z=d!zGXSxVEsf2EIDJRQjP@4@=k`NW`))!R*@ri0hrvi-Z1f}InHY)Cm7(+lS3U)!n zQVVoP@`k8XLt;{$t!#FQSwqBQgf|0N}G9R2M}XWIZ`%$&O$T74~$DpPW+1EiJ?Is{5Vn%&^%(3!5=G>4SXHz zgb_Vf;glY+WFe*DeB>Up!FwTvg;S7i+w8+`aSzNloD$gJ#1YC&cmv4o+75qQYR!kM zCdXdU8;BP)z#oaY7S48~n&$NiWhn@8Bj7sG`%a5R&f3wDcOInIFC>YXh6D| zNzym4$(G?~+nYml-pL7v-Eo3zp0tAk@G-%gfu)Cfydj4V;I&?E@q$n&X4>GAnX^54DF`5~w7oin@D+gr>=9?BLL z1>h>v)1k?C$Y1g5=46~d5>WWF8K8tdr#O%1b!=1=?OyuMc{GbctKqJ-ee8jwJgT{G zo;IdzDY&4Dcq#exI$X<@_?oKgGCw*K00ds`94H`r7<2rUdb>-2(ZKn=ti|MH_{*lW zpGXJl`B^19svY>TwFYYuGC!KBnW%7{V=HjGSzxd>X8;XRW2;2R6ZE;kQ0j^=4gwt} z!90JuF#s#SOWe{0rN+AME4=AiSdBe9ssPT;qOV9V?} z)n{lspg8g~M8ubnP+We2d9ydL9Mc8p8p0_SXBh=FImRumkdV?{+9|6|<^enm!jaF9 zB$)+V8?P!y6l}=c| zEC3e5-`UvxWXuA;)!MYsF%AY6HpHVqgu9)T(r9(ybUSD%SjMGK+QOOI&{NqdP%JCV zZP<8YKAii{@O*|ZCF;28fPlSx!!HN+JiUTx*Y7rS$ESy>6~YsdS*)Tra)`j(B4UA? z#hoA>KuV3wvetV>BCXwnO{0{t8*5&@v>tI-<;D+89D~Sb%Byxf7Xwg$D_f>Y@WK3MTQwi^49ElWre%} zywuE5q50czn}w`YT0}iE@C;qhj);oLknZn;U@Bs_FLQ^iTa2(!jcr%T(?bD9M5=ep zRSYvqxW%#nbcr35B5L1UjF%Z8du_mgxVIB!mYG&ZOdJ+uT}mX*%NtWWL9{#zNt6$q zX+G;^(mT)h{1`4O%l>e3?8f}+vo7TLs|qQg7TUykAp;p8A11#)cji`ySVwiCeZR2* zkHP)Hlz)@Dw9eVv`ETaM8xviTD4*Fo#r8}}(`UEPJBh}z$Bv0KyGT+!YHSKsO~#3g z)hIFgB6D6ZnbfzOTB`-Hx%(js1%G+%yu*VCA{h=>{8&S!f-8HAHf`FLb~lh5EFAnt zftt*MCPZ0bw6RSLav1^?ys)R$(k8{uo$Zl#g@_j2DzuEOue5bu`NpLz0`hH@eI03q0V#YkNMwbOyH?lEO!qiFeAAEY>)cjk#3SuFs`7~qibk$x zt{eH{`7z6wMAbL&UNR-6#7PdYLjxs`L7RH%ERgc6RJNV!*BxZKH6?vaUH&C%PC$`AzvZyn) zERM(>L<5!e$XagXd07!lSu5wj#cncK`CgEGlltjrkql1AU4b4_S5eQ|f`Jud8L*hL z0xc#Nz&XSBLCbc604weWT{c=TVmm>!s$`M1+?>EpT};YH^YucBwVId75(|lT zU#l6S`I;dqU(+_o{PwK5(WaSC3ox)Bu`^>aj{e`B@P1sHLFGX5@`5JT)9ItOvLK^a zeWKJjwrwsM_x#vAtcviwn{9WLP}O1D9tSdLYXTkReBgv-6dH8Es^-Uuw$u_1VB$iQ zgM*8j?6aYg@3^2MK`nMB+<^Ayx>%%NT^n1#3|oE~r1K~7uKu|g(WtkqpgpY>M}aQ`AR?pL z1=n*KZSWvEe#YaA`*-04*dOMKF}fLpZW@g-+n_j}r5Pjx#5Pxk^n~3BTEB@odK&ZQ z9e@As1Q2_ljz|1M)B>%~ zI_uZ%_5_4HrqpbC-hg8*0iq6?dihg#*L z%tI1oS$o_p&GI45h)WYljp1A?CJrdly)5gbBS$kYF+C1+Ahe#QNtf0r2pkoE8W)Ls z;#912ni+baL^?|97#`AHqvhC6oawYL^)cQh$)7A_7yPZ|`R-z}2SB+uLQe$x4oxL$43Ac1{D`aOp~Gu+RlH%1}7^|^A~^cP7cQ!^<# zvQjdv8*rXv)XMQ<`#$7blE~KwzLJghnILd z>DH9=%d21*aVV5e>tY4eM=t=Zm;a)I<|ehsFLJR~d@4{@jYjK=stUwRVwxu%IrhR40d@~JUR78I6%A=wJwIsNrj|d$DJz+mATS_1#M22C4CcWBhPyKw_qm1JF z&m0n2dr$NbjBBHr-948G4*4_TyUCQDJD(Elt1<^<_Sak@j{t#noR30RZM~VwwU`KN zIX8h?#sCL1t;l=|GZaTHowW!%%r#K`RyGSjls@d4ffx7;h7BM}xB}$YvObewhfU!| z4GqPGVVpHASqrDjBXc~aw(NM%H@=mMHzo7*@QtTeylLGH$M?v1*QS)ThFF7@ipDEQ z+gxP%4ek&Yb;}<+1_+p^`vupojpZ3StLupSJU;UWbw{ykGfI)db|@M29;EV3a?Lw$ypCcFxK= z&jBcOJzIx(8UJX}baC0FPqz56W4iZvD~=bix5I8-YeP_dKSiKuP4w zN1afl%iQxVWE$tZj*qmMH#e!xr*TX(ux<@*AnxikpY>D7l}k^tMmRV%{^rNiW<9rl z2i91bXA{GAC|h*C$MIIGF<|uou9I~%W6KedxuKqxR)4kcWmWtcmzWN;^sqB>j4;vo zut#$D)2R~yqGGR?TNd6!Qe$l^Wei}hbAOAb)YTAgaOVy~E8kO}xQ@S6!UJ21kMs1D zK@NvMHk)=J6dpOqN`wv8+GEltIrr28TDhLAbfA^`vlc3>Vr<<=M{zZ`P}PsL0;9#*Y%oSo73}$I*|#7^6ccz8Bg-Tb}Cb;E`DGhn2c^Jv=UxykTlh9 zw}T)wNO%WY?_jj?#4{h|Nu$+F875B2DWLF(u${v5hE4z_`N5Ln>yP#&Tf;2Meg1%J zd?z=`fruE=qx+mhcN6fQY1_p-#p}E>UZEg^>58g3`qsQ?Zg~aWzA_ zPjoy*Am^d6ScG#$_(OQvA~qUFFibHziwhDnwl20gA#BVO4?7Ng{nPB)r6f?+&50$x zBeqe3&q;@Qxf-y#Z~XB?Iuafw9Y?6hUA@U};xeD8WC?);K`0#LF=0507)huL$;`!L zj)!Dl2 zrc(p~RpXM0XZjYw?evN^0<*EWZ9zg5R?US#8&31>xR%}A(=C|gn3dYc);KhU*a3qS zq{T{tZRf?LE-%aB0q4sBEMjnuKbd^=AO`%@p!%iuZw7b^kltE4R@DxKA92l-duJt-|G~vyu) zLsyrXiV#ta3>%6Yw7H&hVOxzPOL-S~(!FbexRuL|K_iP8fsi#-F`8~F_pW*nu^MtrF$M6GxThknK5F$7D&3Yo4m-DJ>#rH5idwlJ0T*f+%j zn(N7&hq*A_cl+pWnG zbI}PhPXx|sgN)RL6zyMy1l2Lq%v~YbWO}>jo=Y~Dv9Q!=u&29jJYd9(civjnvQ~MTM{8C>%eGteM)Oh(?pZ@T==Kxl79Mz)2 zcv=dEhs5lt7QzXT!uzKrgcFYExVCUSmdqb#4lbU~ror$nw}5o|`Wy&gQ|G+ISVWg= z5H4rfiIgrGyKzKp3u|C(5h0S2s@vC@`LM4Ob9OE?F}E5Mbw>dMiw^2bCUqZ$e!>&t z^as*NE1DiZv6dD}J@`I)Wo&+3WPstaxHppB{0~c6e zcte0l{(y)BJ-rbWo*LjWxcoPxQWJAdim($e;UnkWc;@A|qVR<?d?W_!GsX>qan%@thB1>`LAvgi*DSO8EUm+*HQ!}`JMD&}y@*Ya1fBV0 zYgB@T9maVEKEJbttKGI8HT9IBV{f9E=)B7AshyEWUXyR>O)^#pX}&6M>=gn(;>wMk zCos?Pcp;Y;6vbQ$dTlP&%TZGxJ4Qt;h*mRQpb%k2;ntg+yX)pS!5I~uha#)uA14Q# z9F5qLluI2ZBt-P6!Oi5@KdP4=<=_z-@4cY6P-GRN!$^wH69d~zM>ylW88B^yVlt$r z=HhH3R$Eca1z08_cxQlumzsJJPQ#U0>>9B zS?$b+J!AI%kcn3cubK?!7pgd(cCrwWuKp{7%D@gOlg!RNYR z_SM*Yfy`C}LieKQ^!|-raic2wfnK*GWS7JQG0?e~r}WIuC?={Y-wk0A0R@uYO#>P> z%yk4BKVxRqW|4R1MbGOf0`d-Neww)idB?fm>vyffkJEFAXz)No#7KRvPazY<57|i2 zAu+F=5Y>*%&%owKuPp>iS(*kah14ZYsOwEXm=V;lwII*<*KQJdj^}g-o8_>ACS#zb z^RApvGLwmf@AxZ-lFhhSzq!1~5_>!Y}%e2|=&k2zOAJWD{Z2 zcP4Zu7YTXM>4rJv)_a7Oq9$wEXGWT5jU>dICJ~Tu#BA6gZduCJFg6dTqt57t>n!dr zgNPJvYdq>z+h~D7m>r|C@a{!wl+ljKbfrbGGxq(SmWAvsnZ-n_Mtf8Auywn2+*b{J z?0fJ#icx9fc9(}h*oBmIY-fbyXZJ2qpE&6Xk&~=<%&k415ybLbj>825+dLg)jM+;u zxw4E&>c!HQ#P#l-#H)AjtWWRWiLt+Xr;JhT5-vRcoOQNFxwGl+x0Fjois9T3=t;9N z*P>~J(e%2QhSxS21uEuxMs08DJUn&cwTm&??63#o ziA3?o9htX9(l(88;L?YM%poE3P1S9phHk0hcx3E?*Eq=xyHTCO_$)laUUpm?!?@3*?$ADzQ0UkQTYhpD=wt zi3saGo$?UR+$BSTkk+~lG?0Z1)hvnt8CRf_gG-dIKA8KI2uogajXB~#bat1oU5Y~* z2~JJPQ#ihnQc3NFu8a5ZCb6@WfRP+i1v=pC#MMM^h+de5jMaiU9%cg?8Jw?BR$y?X zl`R0%;_NxzlZz*aJi*I6>f4zCt!qickvGRtxeh&W>@3xuXcu{Bv2+79jzM38106~a zi`kbn9Y_gTnuL%#-)?{W)3+AmolZ4Zd^ zoEa|1`i2|nkd~Vv+u(L4QrgNGmhFV!r}-3zg2i}gw?~= zRZOs3X2m4kLo22Qa4C*Z zybnjv@u9#Jo1Z`zs@qYkX~-`mYxi8w3TxrTjLo&e?TqzWxtkp8nX6;BdUvBxqq~~B zhKcP?g*uk9(u$>RuDdpd99m#mDuDE)wfdgC2EcaKLVZhFLCMnAK(b92Y7$?mN6MyJ zSMdVYYIUpzbZ27~#B~_JY6TdEl3%IuVq3B5i%p{O+xtqZZN~IXjmEqeTa5)??rFGg zwc2XDg|)gSG{k%}%>)y+Lc*($U}e644s1#NAudAp8R0N^+DRw!Yh8?=RDma;~V zQ;`P3^QOWpAmc^f0@RqeQg(_KT_~r7wQdgCstTpjE3=zZ*8rsD*ZUP78_je1si&=> zYIkMVV29FckfUg*1C#=q`HVGa`OFtV>W1k?knuL^iKPOypM@MQ0a=pzdD2tj7dSCXC4 zWl5%=x!J)4Iy0Z?Wq^obE-(787kuNzVlX6V|1UbhYk0J8`VoGR|3YGr-!KwKgS}kg zkBhfH9xzDgLJFrvp;+;5hwb*9NvB$P4|?DHR{mO1vu)M%=@aQ@c_5o#r&}w=v7Aof z=ui62azH=Y4kQmqY-VueNxqUBY_Tob*yggUthMkE?#@XvY>RB(nONvY8bo<}1JLlQ zwVE0xtrQuwaqwN~pmJpndpQ@49LsQYT29tMJPdz93*cbNwVkG2D2Wt(#ANIjKzivn zIJ07^6wb%`4ZS;wgeI4Be%rww(7lPeu4 zrr!qQ@Fw#qGiSRXN28vZSSEz%?8Ce{Xr(TrJdq#NQ#BAD{R{nRbEjLhOm#cPYEB0&m3*}u`Wl4%E?S) zox=AxbfZd@D_E7NEj3YePEa4G3P!-YCDf=nc))X0zvc&L_pYL?Nh$Ix#hh%oz%l${ zmOV5>6`rT#gMFSBD+S!h)xi6^Y*Ir5X?j<}+nyeYL#^#0@f5a=cpy!BeXoWk2!^1D>7-u0k`_0Ur4LojMP*S$JU@B8b8o|b_r0b&n zP9{G8&YHhn#I6ud52_ zM>oQguol&)l5@E{o|IKwm`q3CJm3ngIRvEZS4-16FVnd*4-4ha2?9ctvZD>wL?{{_ zgTfQYOysV+=P0>IF>`lF%nlCvZk7P9n>MT_vl4hZ>27~1g5j7&-=b&sGe}t)l|n@5 zGIgAWaZyIb5)yR$({f+I=&Ea7O8S~o3WRqPRaegZAyqqU_DSC!YfJ+L`Z5E@_in&i zkIj+cw5xzS@8tMO_Q7Scxiz12`&mpD(((Idw+oLeIizE|brF*KlR^|(Q>_-#E(Yof z3nTqdq#yBX1Yl>&^y?%R!AnXTmDmPjf0;Z*;R<|O;SC}37}ZC!xiRp;Yn=k2)8=eM zAuXY2xmFR5u2B(OaE#)S@-H(DAw}pOEyRx_8#cwyFlOV95Tx^zvq;P(7~k>rov0v>=z3#IK_kjb|ukSWdU>?W?Jb_!iYs=9BUf|vaMMn z;+rBdpZ}O^%q4IMv6K+ZSW51cFb6~jkm2js1cN+G$iF_g#LUi4Y9`}E-*|JDrIM5D zVedY$VB%4Dlt2Y;l5)aXZ6W4oo8}_y-+L4{Mxy3yy}F1u7OCN1`gX?cth~#p>1{$? zxzU1+srXWG>KV!mgfL&^2qHAm816hN-b|mr?O?+jRT2 z__*z20tM?l*DRvNS#coM`1SV?mDg#!pznKxHcH9X9GRHlPXT@4G)NsZ8b~tB*1FYB zoU74`Oj8^K2)^asj>C>^@N>x;&3;U@FS{w?=hiF&#>U?N@|J@D7%9#;tHh{>rf}eagU9gM3$m$BE+En z^f9-vm1bLhR7JHTxO8KdD`Eq9M-V)PpsDI#?Xg$B*{_evkFBQJt z1G7Ul++mTy1pHw(u&|pnelGD2fj-Abv%o}(7qku!)J@aN^GcZ|QnmAC1`EFXBv*n_ zKGpi68?bAM8w&sM$Aaf4DJWWsiPzR*A;IKQQt-lv;8Qz@y60UYm*YUWe&_mG;ZbUF zWbAQ13^?*?{zwvHem@1dbuz*(LL!2MJjU{7!90)TSp>Kp9p*+s4;nn zQ*N&c1$bcQQox^v(N-k(Q}#=&Lo+w>SM?3z}1 zXL%_5f+>I+TISlhhLehab;eT+{ivR-zn%lLuy=LR;b^wb2xpq+t5t^B9(ilpEq%lJ z=lC6EA6Z8rb~B$=H~(%l0lSG2Hf)>%Mx(2H>=Pi6Mb5f`HFV9|Vg=GPA1{cEDtWARpnQHkPXy65UNO&;hLGP}xzJXDSl4sHw8PJsU7r0gkL4Hx z5wSD&ot-+?CVGgR`qJ$iar- zriM^}n~f7Y|DdqKO3uftd_2X!P2A0exNj1Z@d_?JHw^nVPf{K5`hg{&k>`9g#%4V7 zH-EHl$;;m`H?R^CwxEbJx+`m>56HlWCAyiuBAFOJ5JjP|#C;I%pwG#WT3v%Cj_k#M+R#%e{51URl8}T!XT6?d z2G(Z!t-~uA2A@&4_oD|vOiZC73FI!EWk(0abl_T-`Q?y2nT40i{dLD-pc2@LCy1uN zR;Os5KxCH1pzSorM>~tslQd$chcqVLjIBuzF2!J)XEK3bb4=4R!$sCIRzAiei$emV zd@OfI&=H@GmJqzAQExk3u521u@%_QSTJz$fant@>X?>>XasAJB^UwPAb>q0+`rH52 z3D8t>-289<{kKk~R)62BR9cny^-ASuwf6qB^5s+YeWP+!;on80ru19=zx>m}Uq375 zjB>U6YD3}PA8E?CdZzHOdLEM+pDz@&f~O8ZRj0LMOEzGwv-izP<;w{T)_zwFnzdMI zoq98;%5T=*-x?}OrIOU%pMiwI8&>~G#mcv@0(fVU+VsTmXf>^vHKm+WI!f94uUcA| zB!%ny>T{)WtP0;wNvZwIu-ee-wHoStretk;+*9OBU!bj8<=bZfosDYzKRHd5{ zJE`7RiPjgjrs}k6@4r-PeZ#GFs}A1$Np|y?;Ag{$&irBcpS{1RR4%OKu-X;KAHw$Z z@i^h9ejO&zf{n_tCaz)=S8EK^ln=fk(fFo>yXv3mh%=S7%ITKj>oxDHDl_znxU2q) z25aAILm^*L_1d+KdmieEY9xIFN_E;7)Y_q-Ix3YfHq}X8&`y=S$AlOz-_*(8iGyc= z_G-eTc49PiSN$TW&1ry2?fq(^iY+6oNgQ0q>CzAZU}I6YdK$IHwW0Avc@OHw*;sQy zjBy0bS(VNa6SbXI{uMG<2#cx>ZA&SW>W-?OLMV*G>4z{#7Ojn|)>t92a(hr^iciP6 zL1@_^466?0n;QRJGg3WOZ)>0Lv;aXw;S*{bz20iJE-Q|*)7tGIbAO~r2lA~f;sTw!_-9s?uZiwn^TOA~hg%@#B%Lb+}&-ChZp zZ&(*!Y(|VD6V^BiHTbfYQ03yQPuP$_dZ>Ofd~SVYpDkjnr&(87QD1H6Ei<{cVqd7j0PNVzefAZ;K1<^DOq1{D3@9+5dD{5KQgc$! z0R5pc`2wR6T^Mr$BOAd<^@CyE_@#cH{;JvpPpTh1bx%K}+Ul584?NXYDwu(O%X!7c zEv>O)A#V~V)jJ#N`hHr5fgaT!wb50Y5B2v6#Og#80oW*X40VCHFkH{H8J^wOBiM<7 zHI~(4iO}Rf-?JN3{t5ll!)+FY8W7boa=&~#SZU62ut5@?R-iDp+9q>S|8)F&Qx&a& zp3jn32B|NP$MnYf>NM|2SrWtrIY14kmE&8LF}bR8YlBEdueQ_@uWcC-Tm^Cz@+wth z@@?g-vY=JiS47c&8k?Q_;t%WL6x7+IRaYcgyO&T^F?Lru`{W%u@E>}53hz0soK*G$ z8a|};CW*C0H53m+X2>^;CawE7+4Puv(zH!`VUQe6c0-|gV_k)&g^2yL_1(0U-HapP z)Ku?iJQ_9vXGU4Z*_zg&$O?e-#pOR+CN^}34J)D%XSZTBQ^H?j9CCUIkIZK{deYkLoxv43Gk=M`)Ddaf9#}(Ue;%aaXWo-6Lg^*SB z)3}aA>ubSLayg5xfP_!k_{6}k3%Y-|5uqqty128_x1u%VK-D~TAq8c{ z=1=3)V4W~{e*la@A)%u|ys-`$4oCrakou)k=x`ts)QTIGhOI+8wr3jYXk%|yYJXb& zf9e0RwaJ>ZB*);GB?Gi^NE68(8_BTUsMrnDe^L3musuUk#0u^edcYQ7w8juXg^ao= zRz1l6Qw#p;dxien$eOTaQ)2zCnE=huQMN+a{ueqltfJ%~m!h)K^grSKXO*vqRqM$= zSt!KzAUd+3z%wsy(h(zaMna`&+$V&oX6gE8w0Y_zY$S4RG|Rt(>i4=yW0Ng3l^)hMcXABG^)`L7Ik$B*tA6 z+Xxw&LMQhIZP)*>0jQiwSgM@CT2xs`we(Ml=xuMeCUR^UBRiWJS$+c%T2ubly}AuK z#3X8TF^9^~r7 zhd@X8lwJYW6xPaxD?(=`&itsFvi8Ui<=B4t|D!5Z_e3f)n@1>ZaHQ~6f>v)M?NX`{ zG-~x}<@0BVMzheYoYQIc@;#w_8r$)!4SQWjG+%r zOAS=`->7`OKekcqWK-X81a0_?W?{FC`L)Rj>{1FFo*xWa4PivY^j+xL%u9u3{jX6| z!=N2k^2AiRU^53Zv~%Hf<`RK-eD2qNrSw>t!D`@XT*UiH<62f2uXEz}s3?KL3DtqrO3LK`f2 zi&nzDkwfeK2WI#~Z79n}<;<|ZcTpl1K(g;|d++HTMBEx#RqYM7_rs=~;hsXfoAZap zkWX1nYx!Ubi-t~`4*?^s6WA?131ke53#+4o$o}&5L1Jv-Vfu`LvC_S_uGvWl*YqJE z1HJxWt5g$5dz23|_T|gAwff?A zf)YqkaLSJm@>&771_cn!C@?ws>6Fc=faLEJn(BOYslXWIt?4ce*H<74lmJXJtly#f zK$W43_>_>4YW+9E4P&Z_hnv9gd|dwNjW`G&4LxvNU2Qk*{dd zt@nR#)$T6_tOaU*vwl2koP+#y@nk%?rIZ^h^X0dtoP9N=3Pyoa|95AH#(8dw`L~sZ zSqV-mADt=KXtVzc^?e7m`v?82PhIAd@_r_n=8uZaXY)*2K<|?mJ&=Z0+o`%_-+Yg1 zA}fby-kkyG^d3gX8gh1|mHweBaK9<3J~om0Ao(VIh1l8f3^GRoGNrtEYX$-9CreF} zG&ReXiuGjh@Yv5Y_50It*8uhm!G&inC3k?}z_JjgG?@=>ySW|b%2X~M^T4J77<0$S zw0?Wuvkb&=Bq&Cx!+JFqJGsnCb7aD?%U~1RPGKl81hayi@13f*7Z0{vocmscv@inJ z83-25K((AXhLX14X~G!h8703}&K@z%2pMSe2Ys7V_Z^*&hAU5RJFW-@yJUZ?9_F%7 zf5&WCh`O@nnRn;(v%XV>w+b}ufYH9Iez)D^?8mu8U+8Sdvv-|!j6L^3)}4Ak#3tw3 zyIK&DWGQhNn@!#f667<_X0PvvHKU5DIV4G+rA47oU8%K4mwhVDzZ>8G@>nR-U^Ui% zVVi+lp9F9pjrk^$fl-=5A`47Bds+QmsDGwZ%+c@*VZxRL(@k~?Wn}TI@d%a|f!inI zs(XbpO%iJ}N*Nd=&<7g(S=}!b`l3{aIy?}w$uG|dNEUe4Pg>f8agXQ@hYoYpv)ye2=mR1*6stcR3jMFMp zT#x|_VkPVHS2ZltkP5+pb04;@r0D+EkQfrh%wo ze=>Az-%fsSD$4GXRL%}-FkBVIAS!R~XCiocV9;2T29Xd0{*G`yYzer>IG) z%WyJuUw3@uw~f>ut6_8lF$Ow(kok#$3Y1!$-X~dI+3mt?ADkP_B9&S1URrGw6K(di zI9V3|%rCc)C$k3{Q&?F=@>?1c+0%J|npq+IpBIb+h9tBS>uG@tZJ&!)_oRv|bA|ux zo{RH*s=mN^KAaoR`Ti2m`FL&}8pFE``YJ1)p9ktV42!D3gqP`@QgQa2 zEzf7oC1Ur#Jp1X=huin==CCd_zezg7!eA0j6YHFIR;A6V2nRN4_0S5b^;vZ<;CW7M z*rksivV(62`)RIN6^f^CQBw!?)5MMDr$Qkt7!dqkb>?N}j>2J~4E8{l;;6={sZd(h z<7z9EVj(T7(jguT%>}?T&Nd?v7LtpN`I5;N5Lnys!1r26OPdNXiPMIZ4o2hGF{$j- zjVEgm5lgcCz1bQeI!O?j419-N*Q^YZUj-TXD>7~^h_}ynHuCkm9d?F|@OE0*G2y|+ zm%Rv7#L#UWe{iPirq1TrGaqEM5hL-zaM^h;FEz(=!(zKb*%2DQtDG-rtj$_{aUWzY zNy$*SoyTn8)L1b48kmMTFt|zpodM?yG|9-jh5G`^Bn@`VSi(DuJq5BvxnvUZwv72_ z)ikX(NMt|Vtb)46U?6OZ)~sXfVlv;l+CMYBrt$n)Y4J!8M)-%8USgR8hNyy+a#lG; zisE>t{>7Hg1%!r!L|@xSeYXltg03}p63WewZOlE5#rj;WG%lr!oPM$4H?^*BT0^pD z1c3nBs61XiS3ju0@^W0A8i<$mBg8`(Cn{It!1W)vQ&0LxH>fv1PmCHq`GgAM_N(Rw^X7pUTR4oR8h|>s9LC+LbEcU^qi*wjrI~E~_A0I@ z&4O-IWE~%6kE#y}jKq$C-B9+;7tOy+Vy|5XCdG;r;%))@0zfVH&{&Y|J@Jc6b|K5K zs_oR>YS8@Q=kCslzQ7J7bnk_cG6fVBanD^VQ$ z{&?oag52QZ$(L<$FodCnXD(08-mqQWD!}+q7cnA&{_@!K=E zPXlv5^lT2_#Ie8Ec050f*^aH2Gam|e3(pKgvE$8K4^dh|4|h)kj~<)Z?ric!yU(J)STc-#O`!o-SQ%4HLTqP=6Cm51g>** z+mgPq=x9gu+2UwBQYF?w&6kg0QB4Pbsp(<9T(iBecMaPgUTw#bFz|K1L%=xkHNQbGI!GfPwVSpN-;@bY$)B^og^##)` zuI;~zTVfx3^u<+N+CvQhOB;1uV2exp;fjTR_Pe_0nT+T~<L83ax@N5IW zV>J|7iLny$@DEBV+yXd*Ap-SygD!UZJL+ODSr}P*UVB%^M3v6i z*8bVUH8Dh!JFufM#;@*2)jNsI&Bn=@4dofa8!$B*lq!{AJIZ!%5DDjTdnRNASuU%TF9O> za+=Z9tNcvU>it;*R8AXn%fapc#2H#pjq`iAgaYuIKb{EDA2S;e$4wO{HPa2b|Eshnxu^+z`zW z=k}AoZAJX#3h4&<{>A3O#5F~Ucrn+JfKFMvKaFm2Ta(>OotP&g{-aG>tKrw)xohy* z-lwUHyja~kbn_YSNoP1nv?BgDTitwZZgbuTpfJ`*9O1X|fWVFx7f<{L`^W~3N2c|RG%FCYyK zhvXu;F1}(hOCR~REGb$<&d?^RurMgU7kLI+(qaeK;IZU5KtJX9Y=CK`9nVO>*;Gb5 z1erpW&PYNc!k4J#n$U$e?UQ_Hl=ylhYhM-7q9e<21N%YnLM74JEE+ z+YpoRt$&nDh{s+i|H~HAo?-eflkTeqt9JMYU_~^vH=x%SJYeL zN#$#0NN;B~Y)QvC1c8Ce} zM^x1P4Yq??F&_w(@-Cpw2!@Vn2tT~#LEL^sFugCRGc6Y=B~(Ma{PJhmMZSk4Ji&@N$waH#v! zieN?wb7&V}jxf4kCAf%;j%f$xTB|bcc!x=*fl);~ zvGOi~h-NmXAzS8RPOz0%2}DA!W7;8HR&#tYyh=-fCudAMP&l36`W2y7&4d{3n0ADm z&kN!Jyuuz*JHoVXH-f^`f`|aGVje|=YMZ!JdA4pIm@C4SisY67IalK)Y4N~-Dnv}P(4SU0umyCR z5qrjE!JCIT#ML6a!>V-|DZS zrf3Dfcy`5F#LI9fORR^=Vx44{Wg+We5fu>fS%aJycQf`BE4Zz|haQ27EtBBBAZ`3` zPJO#d7R66?CH86OqZWh|nOMa8H18(Qv$U<747Z6WiEMCyF@lpV>!(&ITF@!l!JZs0 z_l@&4$Op7`1ZE*RmwCXKWcH$xIc>B4X-fPCV}Lg65GRdwlWyeM>U*GLy4_ktMzQf3 zwF^n|s`=`@ozMx-Rv|zpx#1s={`V=!lppl4igJ2jX+f(8?W77*sIy4Rfm!@RWDK?~ zCg!)&29spVpfv4db6c>QQSg{AI-v{sZK-Oo{qA){_?j+he{TDL8 zZqb^(Wb~?uvd*l0$BQl<3nN`HwALAp88w1ki3%XoD)A|kFHMf|6{5!gQb)+%0SNwf zR05jSz~&F1!m?Mm9jz7c%?_gVA?=Et@P#+f!axbziZEqtG$jg2QI>$zwx7jcIP6-m z6ODt5_^Zh*fd8{2(@uf>>$B*DKZ$F7CQ_|nmlD9&{AFE90kzLWikYb%vjy;%*r=$# zS{!x~9JVvO91^*L3=?OU5H!ST=FD2eshN5u!S#Gs#PIpk1$e$K?zQ;EOC%c;%5ht< zzk9_i&rHH+EMn&^Wbw$6fbWtKS%~41x+O1aI5mapMslrMNIK^g9hn97HUXW9tF~JoJhYVGPuv5Y?HDE zQWRDSToddIr#0tO_IqMBVQRal)8gHpSg&j$^|Z=aGT{7;o{C+A#L><mWTSy?C_Ky!l+SoJ+;d%kgMh0gj78%OSBKiE)*F?0l70Cz+N zaZp41Hz(cUGx^QTM6?$bbhQ4;_{PFJ_Zh$KGyk{4FRU?n)nxb3;kp3La?jyF)co$5l47(vMAexp(RhneZ40Mo%In7nI?<^IzM1B@ zHuJQDA=@X908jHx?&#&Hn&N#v3+1=&5PN)!jY-i0M?CfB3(%yp> zz}wB}W#iF`r<{iy+5KsLTASNP=jdML$v+G1n|4xs{VXwqj#kgUA|@qXeYmczCtrB7 zpYdliTmK9m53-hglb`wKKt~r35VO){5UmG@R;EiBPk+}wGi8~p%CFrIZ#UM8{6vS6 zGwj)s0VXxK{vB<#o*j`g$fU1wBJvyAO9v|mz2~*F%rb298&ey;dF|XFE1TJT2ioQR zLT8rWooto@xC+nA9TE3poW=D065r!qhost5BBtUCr_tI_BFVY@`g*A#-t-ZaO=RHY z_^mjX0hB)&amEcS8zccOoePA^!r3{F)%Ag+BF`&O`B zc#89uGGy0-z}TKh@PYwjo0;<8k?PeklC46Z7oj)k7%^XY^J)_-`->CN$O-6Ik642;Cp<4TR}-NW*osMqc-61 zkQur%e5ZkRM!=|RB~^6Bo54j2++XL=?nZWbo-fw$n6UZIp5@6kAiRdU`H-J_(ZWK| z@km}Z!4(J{FcjwV@F%pd?U|WV@-I!>QsS1a%50F$$P>0ep&KUx?AgL2p>&XW#HxN; z{!Y}TiBN51&-e&)JU1}^(_<;Js{rH81-K6Y3|G~&Hx&tiH?pp6U&I;E^?i2x+3W6A zj`qdVg`7kWXednw*MKG%iE*kVf_u^#H)&Te4K0sY60E9F7%Ow8vL0m6iYCup24_cj zu>Q~_Xyw0kU}r8zT%%zv7QaPH+PWK&ie@X73J_9ita4gkf!*M-BMpSd0J(gJMyw`= zZx`d&%7U%dH~FKa$@|^@TkqXww(!6SPB!QL?BzjQB?$GFUJ}v6$JXR7h-mg3tEV*? zvNjvp%(vMBH!iro&awN!-D)s&T8!j2@M3&~q5spx5K^kN9bp}*F&o*`eZHDs?wJ|n zqv~W=FO^L^xDkm2#S#j6`4~Epx*{wu;rWg*`q{Zq``Q9FOa$R8K}BU-M31*VoPCo_!%aM6l$m!TKUJZ5-nIXB1be;V3tM zZbNR+fdir`Kc&6=gYJv11qnf*Ze%-6~m4a9+RN%~z7}TJ_Sr6J z|I~G4LA$iFB)gmkM}$aCE53$r(_By$W3iK=#O!6aXaPCdnFm>SK2N8pHBh+?oLi*) za%+BwZD3VLOUG;jfzN|%rOk2cEz!+=9{FjuU-A6K&fMP&z{t>UU{w6p+*an88`^d~3`^eM*OZYTb z6&jp6sd2%Sz@oG*kh*GkaVBUR-V&0fjvCkYPLLtursiXS*`&%Ay2G~nN7 zvuB+~BWr6vyPF-SNxpq-GRb?R$xL$~!D3|mWcIVEFLyb~cuZy{Cl?RK^b!2oe?FND zP3GRNhqrMnGyk#4T$Q$!V3T8g`72u&RJrsOdlrp+j%*xIP2P?4y}x5;RUJu7I6U&l zL%9ZK-|~e~?p*vB*we#ccQG-n9@JAZA|LdZ zP;wA|0+bhql1i78ka_nJDCY#_oTT#0={Vj$wTbjgFq2dsv*wou?=gRw1m@F6z-$^<;}DIKHwog|~X1WnyO;IbU@tpW#`? z50;@%)a6vJ<6xExqQHLVhs)x9<_YCuWi0;nnG6~XKOD{N>@R7>4TYxG?7VhurZpPl z`C+f&Ic{gnVV-buvJG=UoMG&G_bR?yi|>SAs)c(4wv*wvhwB)VFr%6YU$odALO&P2k52Ny8G9y6`>A-_sQ z&Tk5AU|Jl+jCy@|6f5z|ggN+@`n$kv7izYs_)YQi!amyGCn%7|gkA6(z2!5GyHFw- zSC9Q{ppa3l1|7><`0hZubyB&wP)Q?m6+s}s5Uy;z2K%WR0tjLi6*>{xQq6-YJtRl( zykm@BI7%EoNvD;r`3|pqN#3ho`%dJm#Qh&qWDG+J&GG$5Ko89-g3f3C_WeRD6+G@UPPeh zj?_wJ09D2J)KRy#(7`}iJQ`<=A+|+m zi8Vys;NL~eY!TLrS(LUs>)P}t^k(7`fajM|%8?gmm$6z8q$LjE>73Fv$5=5zW;!Wd+E^2p4RZ~UfK zp(;m$I2+5?;i7G?h8xy-CR5**^BFn%7Qc-u84n*LfXPZmnUNYfpF_sVZnp4ky3TQx zz3ffyLRQc6rPLjsJ~sMf-J#5LjZD&!(O%pvOb7N?++;oayZa6L+g;A5c0|C7yWWF?21-DtM;L*!VLfi<#sDQu zD2oh#O*OvmNXpGfh$sp)PKu-u*43`T@eVe;2&l|E&fa!{_lg248`<^lY3=by5T8~d zE~$3$V+%*|SMTO+yU{Ilo^6upfP)x)#I$+eBekC`?0jR#As+r%(Qv0MP?qzqqy7ZW zA*yAhqP$129KV2@f0ZzXN_3hN_2y@!;NhNETnFs_g(}43?>DZ)@*Np_prkpX4)Phw z4lX!RO^o}mpjeWHpm{um?2~M?ihw$xx+!{B6p;OrTI$b#aR$I0xmI2)<@S#vB3b z9cJX*H54(PR@RMFT+^X;O_rE{MEnm&yUMM&Kl*06J>dwbUUjr~FEw^zt2)&=w6fQm z{QHRv*|+Q6Z zU5i4Gaa_X~zNvArz~Etm3~6F^Iz@hwwA<_Ze2WBrgd-)2`&&Z^a#Y9rCCCp6ml{>%9CsQ@OuoDjeO|&dygVv=5)KD0upee^?g$&qDj6&XEld6EfBbUya*8!Mg zH=A0bun*q%y=-<#LJ_ruO1RGXX}c`QbM7R^pg>Nt(w8Am8o`4i)pJYvQ=NAQ+3a+c zlgdS-KSt~?n#^#!FGv^S#i3ms%lT4d$ZDaRR%~<5C}p#7j$Ed=^;MjH zrpX0dF%qiWJXB3GvZP889$|a6XKS(=>+?SPF)1fzQr1uy2fI~=?&UNF^0O?0)9DJ~ z#u1g({M}h)52Dhy2-M*m3pd5nMpV zrJ1**R;fs`MJf7-NH(W1L?gT7vV&ZRxrSm!k?Xmb3Hj{>#}t{mt1;m$RGtw`O<7>?nQQ$yPg+*&${Sq7;=ht-^RLfxJBu zyfc1wtVdi#gp#z1@Yb&i{WdLl*M?-gLQof6tQ_ zESgr2t&C)c&UB8L+|Rn5idxAr9;s+Wl%WfQ$?Hi_mCsZuQKJUvb0}c z%Cup0L*m${@IYq9@^L=1r`A=ix`EWYF{*0P;cX-6EIlkIXwpugJafjqlIiPhd|l_;!&`Ghnxd4F>v0DMBdg>OGwQgh&50b*zw)YQ#!PC;$_^0S; z=3qK!*WS;b4l49i`c9%e;ecSX6pNkc&gL>;-zMmmha4!TlD?+#fn1*J14PSb*!TQk z4Esi@?|+efjc#JabH70Ms3|qp5kJbl&p)Q~*Uw4|yxPZ=QhE$ad`IEl0eq)44(

*X%xk@00zf909nW&F+s`{-}*U08VB3yS@qJk;r-iXZ0U1|0Cc~ zIi-_5{irN|Dcz#(`=E3S>D`xZ;^#O@>vKz7vx6JxrJx`itX7fe6U5s)tShU>xsCNh zD&DgikK#?O#^ZS2OgV1@#&$ok>H~|j0ydD|B*|aBR+HpQY9a2x*)ic{-C{*;q_U@^895;pGpk z#kG+8TLy0~_S*+`k1AEDp&4$ZXVyK1^nN*~vF95pBu9UQS0N zq*i6m)@vw=7wGk_{J<7np&UQ!#(#$CT^oad&p?u@)kw}`-*n0{CLv-1;N%4YlT zGymBx(!M3;ziFYImpesCa0H}agg!4xw^_6U))^iY9Afh|ECZ=oFqb`WSqoYQix-8f z%TO7I*t#T~fTuEoB!z{BYYP^$g(}(q(Oio;!zbdxRss1 zas!$AJA2KGi?$qA#Nr)4;}z-qP!O`vi%vKGu-&L9kMf+D2d14uJDm3b%VO0{HijuE! zjD#lBOMqVW0F@mu3h3+R7DwRsvIpJzREi639%iMVYEkd!(FW*KL{SdnvbY(`$XT{B zA>qPSY5z=!1fUx*cR+bcLe!5sdU7PGS}dDFHs%d?MMNU1W^_W>|!!uWL)|3gq3K6_MrU-Gd;jbCb!nHH=1lGd221kAhd zW#C8S^rxPo#psFOa^{I)%;rqGhr9C^RrZ!W%JHScdRgPbTcUHbEnFX^=x@g zW}>zOP9jK8p@sFC9Ttq4uf^I7o~ahPDdQ0PCg12TvjX_k{?Z@~wih{qV&e4=O1@CD zxJG>7oVX_Rtn)ow2x6Wu)>aMAU}xZOcZR9Z?k;Cy>W%OTa1XX4p;7Xyyxn{zN>lJ8 zYyQ)d-3^>s$}t#!yu1FH+j1er%6X?>rinYb>-Ud(V&brA#kt$_+UU7krI+X`Vvv(c z0xge}1Zu>I@o2OJVzm)02d%Wy@9o(G32swm!#tC15CQA$C>MvCuq9)&YeesIsvc%J zufK6}Q^U{jzj~e>{Js5j_-@a*y?Q-QdHnrp1$Wu+7FA&Awf&tmX3UZKuk0r!Z=pM~ z&TsjRzvyp1Qhd292Y4z5e>#&uTSj8uh_0mgp3g}NVit4EhP1V$^z!}-%t0sIKa0Hk z>+YupHrITot`S>NeNy}+uw1o+FTY|2?~4N;+LfKEG}|8x?Z8$!+t&yK+@u-YEn-%n zy525EW)xlCw`XhI9JH5R>DJZ~J61*s09%v{Dxj%ymzOLBCqVP~oq3jmht@Oa7P-Ku zj3*835n26Omn9Y7=@)RO*4IcJ=6KqAB~(&E<4x|D(5y~^=4vTHbG=l7Mtg3>KMS z*as+@kvIj-sDq$&Z8*`P6S5-vZ1jVGEmcEb+&*3#w9I}hSLVMNyj45xW z9V>~}EKtbP0HK|`AL?(hzCxFDhKXV1^UZ1*;dM>|=T7GslAlGuY+r=< zC!2&nV2FqMWjqN}{;i|_({;L>G~ko=j8VnOA0cnv4eB=c$s>F`PUgEw5XtT z%Ta%4jLkB3#wY_grE7DtmQF*|tw+?LC3m6@W3vu#)KfmKLeU}_R=Ggfma9Y+Eoo<0 zRGt!bsH6^QPT($OxOriFFbJa?hH?bzrKP*k}HceTb@B;kUk5Z<4>BEB|t+Qi0{ihe6C z7N%3hiUyp9s$Apf<8pCp0eKJ~`yA)4R)=&T7O>-0+oOcLc$(FO#?V@u**AYs%$mrW zcs?0ppSu_!Y0~BxiOKW*ahwc2=CTJG>~W@+SHAOMo5noiashu7cMCZ6be)pp65(lH z9lO5Rgpa8MQt%Gowj;AhDVOAWSz9xr>fBeur)^%hiDDOjk+LON=3@Amql-ORMyK>E zBH-SFI$5DYkd1Y$DL~sUpF>ICp!wf^uFJC8f6W;GEI8Zj1DdW<#p-g4t}`d`P|(x{ zB|bpdme_z()80GV+*x4;(!##EAV{QYEyR*;A>m`|-sMkRe|HNfgLa=!2mMwT z@C9{C3d(*+L&0>fXWzzaD6fc4UaIaehIxZ*5mi1&8iuLo&uAEu=AsG;JbFzgY8&J7gP$?O;4PR2+ zCeZ}1jAp__nyE=2kW%Zp1gJ|QpA#X7!RcDenzqb`37wHTrGjMq8^_y5hx6L%eJB@D zq6fBuB&nYigTB(yN-9c;z!Gk`pwR$EyBgLpe%;kQPCigI+Er593esLtP&Sf+f_HFG zLBZAVX|p~<+KS6Gy{$Rj_935lo@9_XXtHUr?qN7eASZ z!*s@tQ;ETW<*Rm~nq)x1Q)GH{@)Vt%>`D@BvULd#7xtsnxIAp1^+~gNnohPM>bAJC z3MSa3a!YUg;%9eUM-)V2q^mr>NSkMPq)=(ZWmKd5EFC~tAsx-R+HKIUo&y1GibeyQ zvges#CCj?FA%6xyltQLl;W>+g_EPA7r7UE7Q#s9WDo{dBf6^m2j7=Bsfkm2$Fk-N{ zu2-LZ5UlRIU|B=fT*rd7&(%P+>m7ja613a~J#9|jz}&v?@yE(Lm`~*5s^}CxPUW@Z zi}9GpuVgkCG*NVFXo{~sDYK1MI)wR`cc<8qJ}`cY^r*F@P@jpOoq4)O8Y-(e9z-(O zN?BLuhV0Q*m&a4?GPDH5LQMaBB^0PFeg(`^Y9yz-tnvEe~bkz1>^ z=RK*MS9G$?W`UIqZ&0fAo7%SKcDyw_DtL>^zM7Nhg1g=$-uvI;%b8Pf2N~}$Rg)%+tk zs;{g^Z=5m^MUr8)Z;;L7pyU#V5vEkvyNh!|Oc?GVDHYM|WpInJ&1+G)nIO{i^J zXQ9$0&mETThW(@EQnRHhCS00{t)ErhEK4eGgTH`JR5UwjY!HA~M#OZeKAUAbns}Qi zxNpp3^*|fzDx%zs$f`%e1qR9BXUSzHI$}XZ<)KeeLyIqM4%KgMXN1eEimp;DmFSWQ zc!JCZ_Q^VEnh>WEEqF`mTU;5k(n%EX{Pf(pM@T)Mn)90o0DiUNPS$3C*-8@MS|T?( zG7XeR;!H||h%J`06De_|Tma`v5mMDS5pw;&pzM_)9BGbTF{6X zRY})G7s&JAPciLO+(14pM_<;Q4GjP@Ly&n43>Cde)BP0_b0;#mx-MxuZhx(a znMBHg$>h!80}}ICpx0#ja>KKxxI7G#2EUNyQ~~G@k;qsy5Lv2-fw*Du zKqYFvq^|RSg^0)f6s|T!*n9FD6p^?mq}?Ax1W<+BVGy8ylOpga_I9_^AkPmoh6+!k z`TcP;08EN#aPlV}MPI-n?m>vh@_?PRjs)YG#k#UQU1$WmU#|%*E zx|Yilph>&qe~BqBrqKO^M8<`w>EFZ@1&uSpu74a;Ks5zaCnZ4t7cfO#>E0$p;q{8l z|20MZTbmFt#U_*h0#DkhlD@?+an^^muTZBdyC6;;tdVUpU^H8HiGUTnfy z^&c?*^&y1*CRXaqAde5lheiH!2(<(V!sy^z|z*aw#)C@%j zz+?TWlxSrY!`+%LA}e$=?h>WfM&H6&NG4CumK&TaYS+Pgb4?rZyK|L)&_G9WKnV4B zJGIQ3h`Z9kpu4QKA@xw!GuMV?aPaiUEUf{BHjKyLQ)ojSoutr?5J1w}nnM%lScvSJ6;X#I=M9ME#gY8v!8s5Kbn!(SAXwQf|a}3SADvA`&%Xv+J`F3I1_M&Ucxb#ApzRbwOOe zh~%BFUtpn&_3EsX<>;`a2~BNS(%8;!a0@%_x8>X1|hUPZ4 zo=J53TSJpspfa&B^h9j`4lJaUNEt9m5dHoQG)RE~|Dl;!8cqagc==^wT=>SxnkinZ0_KUj459r+u_2Z%C-=Z*dOY0L51hEi7NozSmvV5O{Lke zm3)uz-_R};zMYZ%fE>Qr+Jy>s061&qYm&dbXbY^ykW&aKZ84V)wGpBaT|5MY_>ai} znJ;F)u>93nGUX~OGf1DV9+^neyZDx%sVYbl?_PCgw=oTd+u4yuJMN8Ea3QdGA$<1uxlg;!B@_Q?E*F!3)ndhrC!srkAQigGgykioRcli8AFz-2i(Ri z?4gg7X(dqSJY3xO>Tr4MH8k^tRSY^{^RX_nCvDYH3R|7b(V1}bFfdJgPH@0kKG%^# zGtFKg1)hzoB;=n@q^oe}3d@O7=u0`e>H;M5apxDo`jy$4ZAeYNq=hCtkH;0)t{ z(qjD)BtXzn*3Ois#8z$CNIZC(N|Lck#8p`(^bKL_4=mHhz%qG~+>?6G+OR?l#tI!u z7;A+%KKTzYia2?3B!53!w%A;$1uHBci`ceLLIzgzD3lY+3XEJpyW%hQSN$L9#4OCV zcXSey$z{DNQUg-+MaC&KXN{O-Iapb~kU8s%&@pVG1R}Q78>*vGPbcLBo$3l)O6=~5 zs*VRm6sd)11@))m@~2iw74G-4=k%fP&Yke#%bKK4{iawr9$9eQk=_DX?{BxtvEvVc zRb&KZ;o3sN-M>v5{%N6vu_AYj2<0pFLbzR4+j@PS9EQ;a(-7mfxaHz;hp&=>hrv4f zDR}6N`*gZ^-eChs2A;7?=H%%2v1^R$;jP9k_q z!M4*ozCFYmV!J^X8&C1e@~k+Fd;}p>$-|NfbIMd`+*x0~!hf)joa7a(_U$Ds1MmOe zT#V0W5U)69ClY%^_A&Ff8=DUJ!ijMlf}}C1dHvKdDSZQ0X-3LP2(senY}^(~zLsvAKU>#9@3xmzqY z@08CnknpkO8_)U)A1F4gnBpb>Y8q`@D+xk3&!MF7#^Qh3Y+B@?<0=`YfS)` z?pEk3JeSFo2#>=A+xW9&Zj2RGAshV%RWC=_WMR8Lr#4J+<0TAgQZx{Zn_SMu5?4_W zRy~!1;F)xCNPk7uzKUU99ZNe=vXbNa%9A|mG%9qZVT`&mVWkIuwToYaE6y}fqcBfc zw&?S{WfQ6C{Xlw6N19A8y=Hi&^-0wk#QV*dd&+tteNErs6Ewsk8g;lI=f4KiX3{6g z_9xiIVvG{^M~2kC?U_D$XD?SY_#)PH?9d5X?b#?)gCC1r;!_+F0P(yIpduGkGT!x_ zJDt*TQC(3Hg>lQlXj(^^5$kMO5t)@^4yJ*v#{omUkKRZzYBCqLm1sAgdAFW4J23n(e?say5m-Da8( zg5v}vJCmS$GRO^YyGh!-3*RSok(dGZQ&4+yBQm~-(EJjcXGsxEbCQ@lroSq;^p-VE zFo>y2{2ycdL52-Vdxs=#DlozaQ|3K^(c?sGI-@imeyaD$B+Ze!g%Xx{gP8znGfrr2GIM0= z^D=6cN!Z?amwF5C{-8@EToU#VzNgU=nr8Au4nL=g-&%+IpI&>;sz zVW`k{rZ{4@d9Ul6Q?OU#ZF}(;PJK3fdaUBscUx!KMs1_=*zz-w1IcY375iFBVi!Wa|t(UYLdvQs-f9KJIv?DlLxAy%^{5>@po&fu0HUD4=as8_$&IXM zakEi68DO6XZW@b-GDbO!S_zl#ZklVw=1xP8O4$C;4cXk1wXT)^T2?95m4I(=!^c zjm0h=szYARut(_$caf(yesJ=RdfEjU4Hd%v_29ufNmc)~9+*_(-+_)Iq+VIA-$N+C ziLQSQT{7PSLnF|keZdD0Nnr>hY@5&`?0k_wCQ~tp&SYCh61E#I;5dAoThMF9&hG$8ezojgV6*8>9eysK2zH%KTgmn72v99vvf zB^i91zl7~s?t0^}MHDSu%O_!K|3Wf_hh;AbfRb86DY(d~ZwFhAx;FwjJ`Eqaz&7V& zz`+fy-(&0|_|+tz%sbx5Kg!xucK+-Wl!o^@hi3P1lFT#)#MfQVNiwW@#9rc|2UI(4 zjN@cMf_*wU*4ZVBRqmM;NoX^5F|)ITqn%mD+fVYjuM$D2hS^oI=*KgK3do@NMLne? z`6NW@f#6{ZPKQu5RBAjtnTw*faigu0a$Edc&8Uq;2&@=t!xqY|#o<+_bf)4D)Jd7O zGazLnk)4zQF#ixSO~oy~@adjha6lE!mQW`X_FR#&>#XmnGI7b@YDtk@PL8i38`yH9 z%*2J9bk!W8a~J4sP5rPmB(|uX_d1{M#jM!PT2Bofy=a`)Z#!~%L|m6sxW{E&x7+JQ zFgZfmm=Ak3z&*vRB&9=#Z|i@7dG*SesWnAy$Z(~?mLg+ZqT4?V?VxEjG?sE`#>B?X zTz)1STJ}fpPEWP@@v9EyAAFJ^Hw^_rC;Bf5pl&D^8&P=jqIrD~I1tCpH*Y-ilh)au z^rd6+>&x$)+VrsAbybX$b_!GCWwmidtMe}r4PE*&^bW#W-H3P3U(ceDmc`BV*I2Im ztqc2Ui!Nz7y$UL>;ypxlbcM-*#4zn$f8!EKh?6?S#WA;P)~R5S(z~hE4oHcWOfI0f zn@8H)8mmX_7o{b&Db}wa!ceEL#t{_OBMYkfrf@%1!l(|i4smO>BMHa(5RIQ_;{vlR zgVSg0=T-*f8K`{7{o<``?XEVMgq5;rWY22_-}$uJ`}F=mvQdgATGctkC2xU1wK>%~ zQ{KiC5pS_=u;IJiP)s z5>qI1;}25)jclCaf$Dtb5brr0YHVN>0JT;KXtd)w5C27i2s{R9aaD6pg(wyJXW=4Vz zED)v$bvSrYiEUKX!*P35uM3G4(ooc`){kySl=x(r4P%VUxiU(d89Tp&u~0Jxb;1AL zj8z^)V!tP#p!C6QQ6--4H|kFzlP-(nTgfDq7i3%P=9KUk^cKyqWU-Z`5&H|$2xO+W z#rh-C$TEPE(5LxgWiNDMQhlv*;DqcFA2oyBtWoU$2{ zD3ek~ckc-^x>A*Q>bp+Yp2tbjw5@)$52mdPOkeSOCNYO-+=6iqda6Qy9T3S;cSpiG z{Y5>hZlO#gE*ewb8C7Fd7fJ}?cn|Gv^4Hh}UX|=zWN!mAPbsQp8cBnBVMlDn z)vCEk1aes8u z_aTwu339Up(vXS`f$MNvdv8fa$Z*Aj- z=INwIYb)^Yza6vai1~XFi({nzU1Vj4=wR}lki+HH63C=biitW>fI-;N zNjpsq-?1;an}kY<$_-^U{PTHnz`oFi-1y0Ha1q$x&I&Et%zMX3Si2c-U)UZ1gYSIW z?0x!A>8|onyl-^;HbZTPh_3SMNTlQ;KRNFtkr{=EM_pvs96Z0~$Q3l!{vEA4T%CX04q1-u z&85F%hxjnufyEfP@PpFqgLcS<1wJJt`C4{}W^Xi=#>lXw2qWV6(Ucry62Hj;iP+A} zW|>qJs^Dfha1WBCDGUP=qVD$r3A^!cSwa5-zG2bT`KlGfLJSGd`UO5f?k%flvo);^ z1yZRwm_#8Pz4G`ueqpI8Aryx#jw&|IQ|lADx}dKgaOO?6<}ET+n$^ppMd6GJzq1*F zR1S&Ejyo-HQ6bWpDCMvc=4%U>U+L^THyt5?zrV#0qtZ5=ibx^}4-PJs`GVUpm|M%9 zMqe}1x{uslSynaV8Rmp9V#uCU3NdzY>oBcH8(q5FgF@rp-kY;QAoiAaYuDtD>}NlO ziG5ij#o_EY;5z6)c3nlCy=KOAqHG; zobdQJC=Nf}P3;x47fn3e>y(qnw_w7H!#vAzjx@2xn6sG0X^o7H-E2)CHNIGTJ?$9! zC7pP!D-o)8q5B&(BR|XbmygWj5%j=NAAKdYm&**;b@VQAV85^`4>yu0HFcRzu1?pk zQN!SG!NY-GiIVex=i{ApYqxZ=k$qDqd(lZZIytj>1t3VX`FyZveD!SY)C@;4p3liz zsesPA1NHAyr>`&1Y|Gu{vOXT6t{9$b`0sHpR5*HCyfto0-> z#3i4JTyw#;=sO(oqp55|S=6HgF7&lv!}9 z$jnV={~aF47YH5Z=sR&_d~J{1@iSJ<#g)?&AxM zsd4;wXB(p1QZ!Au;v`I7vtdpPmtxg<4tGd}>{ptRmus5y*6(_`PKx@M^PH2hb=3Hj zys>J1yyxC3wjSfu8xZ2lQA$A>CYJPn3Jv2?we7P_HWC17#jiG3X7JGB+oYrDN~2qQ z#^IZ6KOe&f()t?dYtnu+$X5pB8Rj3h=IDWJqDhlaWD}8o|3vn4UVOz*KBT?e)c!Zx zi_s%iOw6hU3?*Q|FMRw7(HeeXGKSF3Ec`dhldzqXXiy{vd0e)Y4y-rMepqbTZBnHe zx*0xg%i(vHZ^AL#1fod2+KmWr-k~wwwS^f>fbfRXU%e>lsDI$o*;f4~#Yh{+XF6$m z)kxHLTB(A=tckife+aWE{e=M}+n9gYs>^($Z_Xzo#R>@QrCoodbc?KN?${GW4jL>e zGS^EHRL)fKR;xSZWq#lb4yZ|GMgVJfBPSf1JjLlIWo-GKmc*-oewwrP7Et&>cbq^& zofg1)s;OR~T$xcSU^eQ&ti<(_^S%c9RX3CC<3eC{goo9&iwF!m*~7Q~5C9=#PKPK*4H>gU5$fYf97q;!r%+dl2MMXoUz;@jKDLh6Qdv>-Ndu5GRx`@ z#Uu8^@jzLnyJ#>LyO?8wQGjaS^b*gVq<$5-lrt2LbKo zbIrfzI<}8E;TQ{ZrjQ7q%du3NSTqL)P57lZIpo-No=VN6B_JHlvST9&4R5`cpy8^% zU^A+3lLZc0)uY*HXdKq@XYJzAm1%d4ENOD=v@J zU44BXJkzQ@!|JR5FSGoi2lqs;F+++ktC7_=C4QljMf5i4wiBNwuMWd>CKSwHGn%HY(sb1$~a0yToly1({lAZUKu}VJ!C~3_WaS)(2)iI%R zTc-M1>S)5Jc@iMJ)CPaYd|~qMl-^RK%2VBZo1U(8M7#<;7C%>`x71M9z1ApYBPK$Q z;v&U#PSkX$SHRYB^puL{*TQp4i6sag{h0x9b1_eIHXf)K92npi*M_~6FBgu4 zo?X#Rlhnzpe1^aFvsuDt+mtP&^a$hT6J~wYbZl0{73y zwoxzhm)`HtGDT%|pJgW1phHz%N?Z+X@37SeoD;>NfNI{V=r9$5TzmMR-S8JvgF}x2 z(eaW>hFDag2p(x8#H{KyFGYxv{CBM7IK0{rN}BVY^;sT;mqyKUZ4uRN*^A5f-dNHZ zliN7HE0SQqh?-EiN8KltQw#Ug4+e9r&v!&TcF@Pc?z4!$47LgwTMMi=6PC9%+dB_5 zBF}(mG+}IViiDc?jwEX$I+D!8&6IV({jU;-RBO{P5KpE<{KlRBwgYT)#>jJaKqT6< z(y{`o`qEU}bHL00t$BOLb}3~cj8KeP{o}Rc7aA+5DL=k&oOv%e!xHT=PyMdgIk*`@ zIs9qy#+TTYG$1nb!k0E0E}+YSYM&zpj z4-dbC7LxjiJP`s;zL<~a!|L_&MQEZ&vfF{FGck6y{gQ$nu%k7db|Mj#VkCt;+V)Kw zC<2ro2DJs{Tuh|yC{!DoaUvzCK~VBbXi2~N-6tOsgv<0c6S-c51N9>Brg&+r*1UgJ zSTik)*+DA&_c_(qgdYf!Y3#1X zgs;6A7Y8@-Gdg_wQARL(6C9w+>Z-#uyFJ{&AC-=gK*tbEkD4qoMrhbW&`aD*?!`$W zC=vPtz=&X$hL3TK$j5?{5=?PI;i6-CRbzN=D&v>M>E2>Mp9Vt}^CAP4@`;47^oG*_ z@^oJ2>>ZWIsa99h)jn_Y1Ui|9X)i+6-G2*--KWJd>vLOKAF#2smlh~i$Y zRlW-B_HmVbp1ejnOx4o+Kuf<8#xS8OR?h`e!hQ&eeuu-z2P1tsBal6XD&2}02H@^3 zy5Ki~r*#joMuiX0Y1)@FxGog>vb$>-Cw&>@7nQwEEb~GMq_Kg`rQ{6(a8S zJfPQv_#9ML2G(ICa&q?XhRJaR;@Im#%7ezS<+ujBMy-yZ!b1-^7)Og7k$%@TcUh1} zPAnG1^>8+ozQQ{Aa(^reOzt`CzpZK}#pU`ZY0;}(KFkfmipW=sJ1^i9vAB~rf~kUb zsfUfjIRy=)Zu6JHy3HxLh{hw#+AFZ%H8ibf?JQiF$-b}k8Z^5kJGuHct~nrE91CW( zxQY)4Te7{C7ZbS0`dhJ}%M4C)fq#~NzZv(HHk;IYd^KM@ItmhTYfiWf9t%rA0*Mgt z01sdyJmoHl>J)D>s2rEZ-&2{*FQ@+`Rfp=Ps8yTUmTY~5u{6uNyP-4(c-u^!@=JYV z@&knYHg!sZ3OC>NA!P>j;ayC3?3b@>3*bw_jq4)hnL5&!6j;=kPw#v=!LTMv-O6WS`V`4SAbBd+Cj-ndy#qAlZJ4r=A;O*7$Y#T~yGm;dNuPd~!F> zshc41Rzi@X%m=tZ*yoO^#G~<4avDsAZ*SE;x$R{BViE5u*OC;v4o48x`jQ&Zz_GC$ zBfn~Kik(w?H(fuaxP>d(hB&^(p5fs41+F;$MwP~aIh_+Zhds>g*^_;)K2V075NT7O z6j#tmYOdvf9F=W5|;5(3ypR`YW#2VsWnSV*>Wg+~b{rX;q&yH8#}oAi5^GFv%i zNb0N^Q=V`7%pH@IPoS?mRnw%01TGp#xah9k>>r_Z&tdSyx$2&#AMr%je6 z6|99j1kWJji-jdehqAM7nG)==yX=IM&BVBgGAQ5$%**vxJV3{)WxJj2Zp*meJ`zIO zHt0G}2`dUT@U-cgzKXFUuU_!Tf}^v1cBqlF8h4^jHlE1)p+ybY+kAiDjB*=hTTkm8l#&p{zQ_oxT#e?#H#~$&gVCA@3^U! zXPN8?45=w`2PAnIYoUiJ8+ODmsyy1&?w``zx1}6a?>4J_}zm@y~Y$A+K zix&}O*Og%}z!Scq1!HhEe~J~XkTJM?$_FTTz$sN(YaD_0*Z=-n17nlw&|-(T9sm$0 zzWT+E^)e|PTwFES?wFQ{zsv%L5I^7uV$p>3I1KP+Z`}5bH}8f| z3vwLjSQ?!vsS&9Uq4y(290&pJiH;%! z6j8zrN{fJ>I4TieRK`iBeDc?}&o{Nw{cF@B)8tqWOP>VT9MA*9psDKfv`A_7bJ1N? z?2e-o*Te3uq}oL+*VC$?#lKUFN)?g;-5nH3wwGD`vA05+iZzbuA5 zf@&46o$4tT$}0;sKJ9PZ*AYUR^J3*z=c#n7GpsXe;DD8g6>EUKWa`*Yu#Ew)LA^d= zuuZODqxp78V3Ygvn-BMwK<=AqtJKpY(+@18)b5M?!wVS{uffXVGrj|3 zr5y{ETupavgss=Dho}VVC0|~S9!YVtK4Kn&cR0Tf_g1P@gr(gL&A>ChuzV>=SzgX@ zc1)RBWkf-^w`FaUQQY=$mjLcfV1Vx?4z!tA%rXv%BAOetsY+N9CI!;Olm>}FPjkFY zw_@{THwE;PyT$FnoY9Xu8=_}?2N14XST-2d2`XbjV%qc2HhhPg|9-rBtv-V-hVs_P z&e6M3&5j-%^A3d+0n`sqmoe!t9k#uVAL62DwL~hoe_(Qb#{&tXFyqY}l~oZl5|QcuDFD~1q@&YrkJhl5yYPJ|#tp09y#;3<)>#fr z2&NQO8aqPKyrx|zEN{hkJKJc^CmG(?vbHY^9;vo36C(aBt8VOZ_}vOa{w4h!A8-koWFQ199lafIG=60c{yl)tBUNeG3$ClMBT zCZYL}dCf~F_;hCD@E4C*zmxneN|+>7Vrk1TTFq)s!$wI~kO2_PUr{8Id=JekgnKBH zj#0!G|6q}@?{zJGf#NL7*rYyQ$9nIbhpcFz{)<%-MCcfju+&3=CdxL=MCxsfX4-~I zX=I0;WNrdGto)e{Zf!Jbwf6N!H2V1M;~HPYmm`+{oRlCz03#`Ad0zXBYo9*C-D@&lgn zS-C6W1(2vP3C8_dqG>E-OR0_7kP^-*@L8tTJx{qg`4VS-f6BaoazwpUifTQ|OO%OX8RyEN}04oQLJqJG{M z8|`CzgP!K2uJFnZZqoJ(Sq)faqO2i7f{D)ehapbpOj)=$89<&{x~#~Bs-`4Zf+Z8U zke^h)*9h%=6R0xS9cPe`GYW=a ztPXyaR37$g5DETpPsqt z@iY=9AKS+W!AADfwz#>;@8B`8&{oGo5(^hi#_afqT~;;NO4W1=0>M*VJ)eFLBZ}}| zl9+hqe}Q_DzojQi!@`aFhGQsAypH=2MNUg}nJ=bhW7Re4;Hco*OKmmDLxkzp)W#?B zm`f#BPxKE{1uQw1tzZ8 zY|D=7JJdD)P3lM=!8|9!la_Nm+fO~0JhxFAo|HsOd5UEJ|0g8BW%xtdw(RF;ZsnR@}sXo#F}p4CA7`*a$1?0_4|8f+fhsI7ARi3`YC}W@IlF?u*^QCIL%aD14 zBi0gv21=-s9Heb`Ok05XCIL>{_5-kZVdOq)e7%h>9EU6<$LZo~d>3EJE(~jXk&a+# z2QoKSWI0d-r)(mxb+h&W78uhLYWS<>D_`-b^%P%k>O7A1I7LSJv;7#~Y=jx{Ml(-} ze?dMBw4(<6Sn=pb@(40#cfK#n968r(D)BYY@QsFg>xK^PMxVnC(I*gYgv$+*{GGKg z(OfEW{m_0$5dh&r0gX$v0bQ=0qSdkgZhwlqyw9W$%-}+KMk2Mjc=5aD!}NWOxNV?i ztM5L~xACu5#|sECc8jyXyZf*2I74Vpe$wVo8-*Pm@u{0zcf`I$G})H0uJ0H( z9StqbawGfFG;^=n$%Xp^Vm(D&L>1bg=h{-fYxn0q)-%gtuS5}*2a~@kB*I4cI=sD{ z$_LB1jkvN1fn=7a;tw^OG-G%`5mSg^iq(_J-o;ZOyGGp4NO1re0~!?IY{w;rH>;I3 zKhM#gRdv4T#xh1cQ_^XST1K@Y^&PRjPfA5SE66bip%29p4Vzi}5WeEd?Y|@g9{-B% zzY7v7ViDvYWQ}jPkpoh0eYTGyGcmo9(Q}Zky%ncPtm?sW);zp(B5wakNb!Tr7tTH8o#$VbLK#w zZOliO@J8JKS{yAzz)#n6R~BkcQ~|a+>MDG*)Uwg=pEl|*E!^i4v<7(Z0pem>IDYkB zJ5siJ&of5bed2$Vl2Ym6+1iXu_hvVLOikp)Vg>i{ml|wxwiJA9E*7s?b@lA?f~ck0 z^=O}o2eokX#?T#&)s%xv$kOMVEBs(!=Z8V9{JEz_+WhLPKF_o*n0Vf##D)f(0U?dG zv(`O*Le>{?gIIe}euCmHJko(AIU$Oz>A?RxCvuE#QY08;V>#hAgkVApfqZ=__S6Vd{4X@Dmg}xzh}78cu`!7% z>Rk5BSM5i5xPF7>Kud>M40q=7c& zy8x6jvdwiy7x_7R95ZfmWL$g^)TxjQWPY8`9+od@)8^VML6{r{Db)_U3ie8OC)c}m z3J!y@I}dPM>;~SbV=dqIu^5h%agS15UYxe_97Vc6qbf4Qy)*4za+Xmeg*}6rQ`$16 z6t)%BNv#&ZnAV%D60?>(3lg&ng5NEp%8+qtp2BN z%j9%BmOPM!7A`ka9UegmONdD;)%U4|%S+bw#H5h81gYwPWB>*1)YHX|SLNO&VWS() zMIM68?C~T|4}vbAenJy`G|91A9YTlQm(m!pn6`MFr52dBJz3hIq{$~RLfI)Vb2%$7 za{)NHvI3;YlSoh|tY{+`=b$VD-BF}L7(0kSH{wb?mPs`xAOV?{L%D-z>7K^Kps^>7 zEW z*Zb@CEXNopgIrKHwAbq5{SKZa!$&AH9T-{Iu?u*i{g#NloMOp(AE(q*UIv9-fX__M z%6fm|{bLxc@9JJEr}X#1`lAfA)UGaqSRkZ7d!Y8aNgSki7b6E1f5AcTqv_wKk1@O2 zACU|H*{mcTMyNh!RTc-Eve~oAxe4TZ<)Ijc(*|W7@g(6G zWt}Vf%|Oa5TC*Ywk-Wi~9Dx75bceEXiuSGHT_XTKQ9uI?ODaedrD;y}gfhy*!K{;r zouO(QGz!n9YzA^6q!66sDG_2=6>DDZdOzb3VmQhoDBR2UkQV33SJzIU1aN&wSkKOM zJnVHTrDgvr&O8E$=9s`>Wlbf**C65P@xZ#W*gV_548mhMwf)|g%lWz|ZD6kT=0x3; zKY7!dw3?|DID1(cLN;#od;A0waRP)0-HVVQ8NV*F84z%qSHeag8b zyEonq&0gpA_Ids+Z^SBj_gKj{`T4Bvjd3AaicF*{u-5U2>}74Va4;CDBiKG-cKE09 zeV`2Ix#+eUDD{L%P}95z?I%tth*R;nODPp~)Ss})m~&atQ3ovWL|xTi`hJpcBq1>L zriFj|6F1xxM^Db9*-npU@Pw+;t7M60`SnaHIB`I{KXw7FJtT>MQH85*YY@6*GeKqL zu`Pi?Z2F-f;|vUhqlL2bf>f}Waaw^ACCk-Tr6{FBx?qiV&XtXJtefHA#Pf%C5w3tzhcn4(y>87eK96$Tb&`Klm&MwVCQOY}x(SOV(%^kXOsH22 zYo-f(u`C|A#7nZcq-`<2(5L$JdR}3Ilq=7AMApeL-?>jtE}GwZ07w4=6%Km#K(z-} zKM6q@2_cUX4~uAhSa3V;C$fE4Y9T#vk{*8vmPiNX-+@dL0~c&OJ}o(}A+q4Z<;m15 zsWGW*vJ_B<-F0d)tSn5?g6+_c5fBg9`0ojb`V6^^Gg`%I7#PO6%O6VdfbcKA%;8G` zlXh2r<1FVf-qf4A1SyiDUJ3_j9cD=v2C+EWH!L*1KQ5-d8Jho29VsJ{akl0t`ZSnc zG27=*$r-Grpg{XIj+7vILXycVbTU}w=_<~tz4Ey@`)yn|#Si-`voZ?U>wG%hTtbbn zTzOHq453ux<7`LXa;gbvE_?IiIt3oX_P{~@7E%7w;)2=I{)aw2h?wZ&gfA(31&=u2 zBwVJgIWz*CZsaq|tv}B%k-whu|Mon~0;O%v@xOjkjYwoF$#GRIE5t*N0It+^h2gfd zZk#m4FCme5_1!!%D2w}EbRxQU96fVW5y4mLxOPH%*4J0l1cYB!Z?D8}{3dTij{kH* z@99ocz>ls4Om`(EFIErZ&lQ3C{!LDJ*?&q_p4TtipCIfwu6LH7vh9n-KiV_pfxuXO z}z=9JU_v~26a+dpQBVq ziZib?{*tI;iUpSNO^bMymvDe?iSq!jewZGg@mM>E5W;PFHMa4geGP@{f3mNQ2xL&l z-1-7}Ko3WrNX~>Fe*Imj^eshK@l`a( z4^2;_ay|s#uu{)r^$TbYZEsE1Qj+Qn_elvHc(6rLpE>Ri69~WOjZXC{g$0cd$f9R>tL*xIi2=X-;!d05(C?b1(PdvnzdLk!EJcko0| zkL6*!i(a>q=-p_E$n?6)&Qu8Los$ZmRxa}Tjx(PwwvKTHHnQ$k28_kwRjE!AXCFMV z;H=*R^hqI!fBUJx{;U7f4Wo^lm%mF}^*mQCj*I-e;0;^#0xelnfe4iqW!6wai2c(Y zJv~zTliQP`*SBYt`Abl5cfg)~N(x6x6r0jH1TxOlS(*0B+O~DMEquIz#wJnmnl{KT zkHI0Tp$O}eU&z7ZEBd}o%~?Yeo3dzz1N1r#U5ns+NjJj62739<_ak~Q5CSvi-XU1m(Ax&ISHt=9iG z;Ouiiu1c}|HJHA=}A)BNG#DWZfuh7Hh2SbdIx4Yq#4)Gzzpl% zPioc|%3DzfXZ(-t69M4!^l(-0SYfC;c#f6x)1uCs(Mh*U#$+heE>QOk+V z*ITVdBtGkE2QBSY8hMZ?I2G#r-OUtHAAZXWVe5zbEi>$7Hy-|)gk|-3Goi<;zhJ>) zwGdX2WOx4PR@G+p)!jr4439mC`Qf+5eKFgZQchVv6PqEL$$w;$E3z?IVy)^wiSTQA z)UU75J)BS+rL5;}hex)n!L z$B9li-cq|q&lUG1GPmHF?NhJHbPT&U9Vh%&h#>>T_L_GzRgL3UXPKvx*8R5_KCRg` zzjJ7&JOH6kQ*z7A?cS+bNzghap z;^6fA3=8IZSNhOK$}XuoSc<|d|FPXo*V$~n{*ix1gEEyq0R#_$>$`#ggxcvgSV6tY z?gf$Q5L~i*vYXBJvdN*aruI3t(UBWA!iEYT>vuY=()>0wOH*qP zTdy`c&x_|x$o0kv+qWca1IlhGxe|6*@-WNEc~k%8Dh6cBHJu&Y&z{`HGhIj`cGGNA zTeb|k;0&+C0wtI#-NY-(IGHDKPq1+1);&l|p+AtyUHO_Vhc&_MbL+0CX6-bvgwHDezO35yAXY4tc#3;k45@yPS^WKuIBR(t(rkA9NCpALBk=;@0g z42~yP*G$^i4OB2E$$`R6uM2?2F1X7FHzVJ#lF&%gh7z+mK`&`?%ef3tN4gpo(?cP> zMtB;W+G#Nh71OM#e^Q<`Ui}J2Q)1(En0`|83zDvchQW4Y=aiN^^}&G?zH3BKjU_5F z@|XqdjA0m(7%8~&GiFb&3@j8Xcv`4N_}2zksEp|CX%3tpWUJ2mog(iS6twOJ=Vf_r zceazc&r?QfumfbrC)-l_DyZm4wmlSc(Pr-{y-f?wF?7sq4is3PAKQdFzGJ^=gMW!w zHVyt{r-tJX?|A{r9(_l<(%@0>4!!m_g;ThX{X~65qWMO|gngZt`SLKm9*z3F>>~MMU;qcmjAhabvdqH<}@PX<7UPlx(D`1;=!T zgx03j%C2k+T$637b)rap1!q6~BNSBoRWfO_%-mOHq)hTt=6}qFCNaGoVG`He$gbx` z+Rnpu$l~@~RAUFF_1VVE4@mdHU_2%;o@^bI+=v8(I#KHvom2R~&(`MB9t2x~3ygh` zWO<1}f(gg`OGRk5e*Kcsx2&oIMRx5v>>NhWQe~IE7_1-|C!LhTT>8Jh)~&<==f3e> z)ZEyX6I9+$tq-!AKZ7O2ruK2DxOrS9;8GarndH3dn8PwKsB;w zhds&^-SxXPV%bz7pTnsifUHRJ9#N+Chtx#M6WqL4Do^p7&;a?je0J{K*NbBPDYd_+ zJu;Tef;5YGKvfgedG_lY=hI%piGMI*mt>2^O?@scDs;6jMA`wht7D#^D}>RI9hS5g z%XH=I=?Z8>KyxnC&yANfsj{5kS<5QNX_Osk>2NKG=B(^zyRKSYmxS5VscOlIXWS5M zxLWkuYVpD^J$>bWFd7*ZKIqc#sCmb!EH;>yk3?+GrcZhup)^wVbaF=%J|p#?VHlto3uCkZOfJvmw*D@l}L)ODZ9|DXilr><}t_@9quAABgu*l{TS$y@u z42P4r92II}a4lsJPSUcF_ze;pO#F{d+iothQs%{W@vy~Ihk__mhp8`CTue)HC7tX` zQXTyZm1(wpGNXAfKF{X5TMyxP1ozOuRd*|FxJn2hIh(c2eOI%i-*F;VrC0&I`RpDe z<-;z{$NVMwo;fU+x4>6Ad#L8`2G}8#YSwsi-~#X1WN6CzY8k|2`}aT9`Dj*mWNJwR z;w4acCh5wH*8>}O6udd`L;@9~nVu>2=Osna%EkcNnB z#ma<;nMuKq9(ZZ(WwLtc$kL9H#|=59n{=`Rx$PuTgqq!jDCjZjg_n$VuW1yC!x3M( zx*7JATX23LWqV0p<81HL$17urCR{2Sr}6|$RHoEv@t#-Tyeq^fI6D&N`kfYYcped^ zs-nusFfUXR9xJo{5N=DqzH$nCe*LkuDu82kmR*y2pIeJXG33KBtxigZJJ~_~$S9F> znuyG6HcOU+ZKzQ)o?_rBwEiAGg72rkOWK)V>l{^-EL}7sG_Uu~SZ6u)RLYO)sd!WG zosoWHN_0|D8B6KWT!jX!)Pa7+ZW5rQWV$)Tvhk8)BF>)JmDgI-d=W9m|Ht0jwI$N@ ze7_&aISxg{mrc4sL}UVzn{(Ojf-#+)C(>OYSwf=7cH|+ zMC%tp2E2u{#6P$0oMO;pr=H4;MKc#!05|v~E#wR5d3T=E{ZKSd6%ZI=v_^LI*)SW1 zQ9UgJVzy2={jk+=w*Ds+Q_~+<^xl}kBtUg-hDD#l7s%Kd`LLNY(!ax;VU|e3-Y2A` zj@(fTJWOTg)8&>OO9l4;Eke$e1$QzK`fF?M=jslr4`(wDsio6p6E3505H#8I(pAD2 z1Fj61YDv%GWK55@(lg2vGct5B?Z6K$e5Tk?$+BUa`FKI;HC|BKj_XDDqYRClKjR#$ zmC=XKomE>#e4ZA~O|rgVqE1&SgV|UNI4{DC{kUvID#STzY|Bu624VyNus8!H{*C{G z5b?q08CENl13U#p?B(YMA*4U3@+-`m3~lBuFP3Kh2^T_~)*COi8DbA#xPz|hAH}QF zE-!25NBU73&6n`oI%>nQ5q0mh+8f zOfs_^x?ox)0cMHd$4X5z62C^Lg^wH|0P>xRBl0xj4M+q^N*Yy=wPgD*-`?9X`Ov+z+TyWuy_m##Wk*FlzLONmbeS0!F9Z4ttx1-OxS zUp&ST@h7uZ^MDzu#cqC>s5zw(Y_>u zbDsQW?l7ck)MgjRZI|B=0yI$MpKuw5D(mGy7@cqGi`3>DoBFo=h*!Bob<_y z<3(~fYGM*{gI*Hd)qOFyJ_3-worGbt&iy~3g@EwcnC$J$LK_bMI8xCNh&yQ_DkE`d zUy>*<4Qbcn)+h)_Oz#zeby)n+Cb!G~TlQVQv^I;g(#M0zVFvmPNu!&(mQ_ z*qOQf86DKY^ZrsTxD!{v{LG#%dqnyS+kOpV?D|WPia%Z3o-<;bEDHD zHrX8$x;#niTg4E_sN309v3V3Y!VIS~Sla}^&2V=w&M>V$7!w%=qo*l5X6|ehllYd)7Id zE4kSi{B&ag;|Fm-YN9x|HF>qF_FXg71{Sr0`KhM~_F?L&)_*E!!vuSt!k8g5 z=q`?q8SLHJZKUQK9uwE%a&bd&?1US@zEb=ebL4Otw(~gzI%ug{0kYr3YXEJpKY^5@@4;WYCjy|Vf<)^)ZHUrkHXrK+fZ6-6_AqZoC^Thjjc`%l!dK5m1%V-*zpPfEWa;7u6KXKCR zJF|5q&ojsI*rcDJ_(1+81#Hdt58QPFWfx0K_1mnq+cQ~ifN0L<=xX){rk~ldw${TD zwaL_npni&DOl~i|88B-Fp%J$!h2#tinJy=@mavGll#E3L1DjrHzNR&YjVqTmOni%- zuue(FuvryVKCn}qRu0;Sbx6|4d;14%I`Yg?9a$)wrJr$ogl?G_jj;aBS}n=)k`Lg+ zi&LMdub0zh`^^Oa=Xxg2;B@zq3Fmv$X}4fZ8G8ryFOxh$66FY(E0I@|M7J4QVu_K` zVyft@jV8Es8JIUS!85|4oz20gB-lcOZ6fl91|N81Lw-T!&TT$9yZFR$!@SC!`W0rx zBm0!}4U^!~%O5ySfCKD1xP7H~3)mfywf$>6KdR-zehPP`zd~R(MJ3PQ0jVB5y8GD< z`zIW!PFDDZW6u@HkJzj~ZVG<9-e1vk?c~vZ%k6Sv{Pe zOZyC9km$VbDaqwJdSY8?>kw{bM{A}wyRA$CWBFi#b^FO?d_t&HNr4UZ?X!w|Il-EEHiM@Oo@6DRgt&cXV`TZiNqx5k6%bxCdEBvd@&#cQ5L3rYz}|0G3VnxB`3-tP3RhC^OKwMzBYC{%N=l(bOwsD~FO85F;cm7k;+AdF5r zcIZ!(UqGGM;cw4fOiue2yYW4Jv~f==UJ$oJ+#mbZ)sa;{eeyWU5tzbQNL1_mL-W^# z0L(T}!vg!_#(uIB#-O)?erywga2fV>93(>aRna1e^f^8=6h?0wZU$=(Vvv)cZ!e)I zdOVIfMpwLT35EI_H)Z&CTFOBKzR;bQfkSEB10m9Cg@EFqwPEPHv_wa3TY*}qqKbvn zd*{l8%Gmk)rEbfL#w)nb&`wL~jEv@tf)t!Ix+^bwRS>5%ep#u|n#vHiOdsV(M!lAN z#*oY%U)`t8SrGmkANJ`j1QELlX`ck2zyE$9~$$Q23i4Vn$Z&gk~Znld_%+V zU;$`$dhdhdR*Rl!NB+bb8}Wzch8EkR440n#a~zy}mmuRcAPHB~=4u6X%R8xGwJQ^x zgbV^Gwj z&MhHspyYmXe1ejjsn#m-Oa9}`t{Oo>}j!tWh5t$8@|S9(%TsbK4(lVjhm|@V79piGtw1* z*_!<;lh+OL*oba$ zAl+@fvob(xOa9YMHXLd>xFS{vh~<;Hu?8@}I7HzlS%cM`?6wMjRaeQWt*-o?N>+Dc zw_5bNb{09)uY7c4x3jCMfZ&SULBzfqMqRA`sMG$irU5i?T3Ybwk5NTHUx0Z)mu7A`i|{U0TIj-Gi%-->k;sl`tJ~=7iX*gmv;B%8EbG zC^YNdU8I|k(Jb!)zt}MrD;ZGd#ZXK$?3$HucM!@sqofB>*9i6OC@*R)`97FTmnGME z@@=BJ*1A=03AfALeU0sY|ECsVA>{5XdRqYSG0~a@-_48NN~so7TI15DReGWla#@w0 z!D2X*R;@n8V>QTwh`0@J9IphCSgp&?x>|qN{qvX zHz#sFz@j!{t~5VdPCWA5^PL8dzCxIj|u)X!!hO|KypVA-sH30b?_6| zkvDm7q9$YmR2^1E7&AKefzDtW*tSatFZ-~RzPs+!-~V6=$b&IFkX&^~D3^TUn6<-X zE?t{k-Bri7J^m? zzyaj8k=P^@iZ&8!8lNUkbH&ghNu?{?lrvXNvV0;xe_BOb;QYl8d*N<{R>EIMM=Lk9 zPfM@N3CyOzu@)S53dT7W>7JE~g2+ae$)Vq3K^uChl*>You5oLVcVf#Z`zGFTO_dFc z@wQX^5yl2o!qRK0^;`Pw)s7WW*l$)DR&iCl-SUdQ^t8G5sb=(-%dK3-p-dfBN-rNM zN^|vb=xf>#^P`j$&?Qt_bf|73xhUIsGli*H3?$j63}b7pdQ%O=<|G-)HTf;6Yf-;q zO|Qe^cO1~r>i42I8r!o)`e=*B>4{ip8XY{8h7*~IHP4m*xmq(&bU}3kt9*~RLAh2W z5kfO-p_##F&ET%+#d=BXF2Iv(X+5+w{Jf>mA)(nqxzJK418E~PH2S=u&|fc!9fpQ3 zvxYW9L*vgI3jOtx*x?6=L`qof>h1G}LVvv^b{HDsx{4(jJ~IX}`ofgwv!wNJR-=Ay zs*$)y_0pasG8r@Kf&(%#oe}x$>^_@1t7+gTqaC#_jlr9ma8+2+!d`{(c*+(nzq_mn zM1O+Cm5(>AvT_5ehj|ELV%TsT_1yhsUCVv-=!G>XE7fBmVg@yJGD3sjM|KPI`?nYF z9aTN0*4Zu#o}VOp%PYtqlWkm$`Bl2qLhWAu+_B=S**?VyLcpJnHU`n*`Zn_IsLU_Ky7@C_3Td5bfL~T=cpwmoe_J z85~#0GR@nylr)vJ+B88^xBat6R558B?)aEshC01nvd>fNt`A~0Jm5Ib!DgdJNhwiB*DL9P`L-{e#}yoVhhZM#BI zDA3tKrcv{3n_r6TgQAMv^Serp`83R(%y zo~_6a+6!SR5TcZA{?hV_oOktw3O0uh{j0hU#dXt*@|QxKW#v14n^_f_#v^q$9JIlu zBNpeIG%NyP%i<-rY~@T#tW3Jz)Shwfz%eyUDw|Ad( z%VI~jFUz|HlT5yoP4Cubly|F}!7$k@s6N_%ty>f!sCg-hoNxgZPO&@~2b-*nEEr-W z=b|DV$(ykdw*u(sV8VmfjR*92wzQjCaoH_=`%$afyGQKu`E8WW?5H89`=vYm5 z?kT|4Xu@N0pB?axxxvJSL)vDhb^to2hl8{DL%)?+0IcmX`0>$#a#~sFaQ4 z*WSlkbI`F;T={D9mYC^&l3?gF+|upACRQkBczZRh3@#}Tgtf=y#j@L){kANNFEiar z`_16$K#tnAZUr}}Z1DFoiiyIzT$r1g6D)p=mkRwM4s{;4-kL+H#?8A={Bo@|zM zhGr~n?7%Fr@J@v|aN;eQbdSp<36c~ar#8-4E>8ABzcZtHH|cJ5-1q^5VmbTG0vOu@ z=HveyBjd_u2m=g;54W#`5h(y^b6`u2xEiCdFr(M7BVbCgHAb(lxd=~D_BC5wOKxnR zL25472^nS8I^JP*5x~Zi_FiF8X*5vp+48xy+?rM$Y1087S!Xo5TOpx7NQirco?QWB z#~79RzRl3FPrBz@8W|ha%M^v_*{#_p>=t+$JPw*KTBSX~RAcP%g$eGhrA?C}oF0H_ zfN&=h`b~dXA13DDtm|?U8W6k1wmpqQ8N*0{(w1t+MPPGLI3L5XHfpeOo4oQwizMa= zZ;AZTOJ4o_yfL!<9O{kBO&2r;10IKr_1GHH_*s{1B&7}<+VBf8Nb30XnFB+eRUV=Uy zSBNCM=qt%$=-q7o{?N0vg)BEFajj%)N-gud?VgIjs4~RKw2^3k2U?b#eW;YT81N%uHhb%Dv3?7!AY*zFk=3 zgHCoSoc=HcOug2+$y*4pA^9|sRn6s7V}~|u7Hbc^!UN-Ltr|TLWHtfYJ1#!$mb4aH z$?2YBk%L_b*BY5##|8>OnjtsUrkTsx)zhV4KDUW`ZYM6!tg;OGx*ud6?J!S=6(Z6D zK*utV#WF+C#mf(^Ut*g;W8qWd&8LEek{2Fnnm3T9y2h`TDigHFeLp>WG1b3g#~37W zWCYD!&1%;>F3496HX0MpLVlN+vT`9t*t-=0LJ${48K85^9#{WGFDySDz2Q9D1U-M+ zh*=i?w%)ZV?vppwMmJ!1jXw^xB@bCic@L64=}y#ewN-)uxh|6J34WxrWgAu{;jjwrDp5a0LY3D zAOZv;v8snTiul&dCwRapA#XR$y8Hm<>MnQUrZ3P@JvIeC1vG<2VdBDi!|0YCDcVq; zj*Jy3xK)T{VM`0FEa_6;mYUL)^^K3ZK!dt7XG%BuT>p1X>A@xD8Ud8QYcENr`6g~F z9}8MDAE~CM$1bvG?w+82 z`(670oSyUkI#6WJeQfHSUUeTb^DT;APhtogOlXhH6xeCprxg;3VlKZv8u1?hkI|tV z@{f4Y%Xc#m!uhu4lt)+{n<=@TThAO!6FZXUv;l-LC{Rj#fgO}c(Ew6 zzzr-8T-r0GX9Fe&Bk}ueVj#0p{(9oINdr1S12$<-j+0-*%siDIaqPmXtm{=FwB9gG zv=E(SHuK}X@XCHnjm6lnLeVHxQje0Vic^F;l;qi=+HQMPsJFRdb@8{AyC|Qj+^J+= zl~^Ls|5!Ny#4sEDO2c8p-YoBeWScC|%Pt6M2gEV4tZeMEv>;-!LoUv4>ny6&dE2ZG z_lciAV3VX9MFFZ6D~J;~yK8v^?(yr?sQRl8fV7_U3}dCBSpga;$a|{+yhnZ^(t(Je z0ucx28XSTyRm1Pr@LFhi6dE@BReE-B%D~^ZY$;D0Z^@hVJfnJgxT(ytmhq)}(1Y6q z$vqGm@4_RuNiV>+t4e;(ma)o!2xO}9Kp8kjvk7$fLk%Ax0vXy25}}e@1jpr8V_+ff z&$J9QO-DT~u^y_Sc%*F6J1k2mLdp*MY?n2tsCc?-%Xgb4g5~dG5Ws%o7xoz^!|-Be znadmm_$XEbh89{x@+^1Hp~Yr;CW#~TtH=5_;`YFzxF0|JdZe&*s5M(jWL+<`6C!Ry zaQOw*e>^kKF3Tm;0yc;&Wv2oy&)Spz4w(dIIuPyv$Gh<_J@amFJ+PR=ah5}9HQ_!E ze5B}5$KK4?bTbfe+qN|-L9=ZVhOnC$xB{=~@AlHBb_@N7k;vGmZU zG=-jiiGAuEjOo)IM3x#!xEE{4`+DDZ$dEd0_3~PtaTOI$IZ&e+o6|m8)#!};(oVd{ zAj>@+(EUZYMX0V{&VT2f+c zjl|@+tro2}k0vRDvY|nLdQ{c;ANW<%ifE^SyzrY9vM=NCrS!|@y*iCFf#0L{6V#kmr9&11F-S#*rs#Mg#suu@Q*k8of+oga(5vm0*{u8R4Kz3wxDs% zY!Jkqa`nj4l7t&8k+;JgbWN?m+sk$>@oEOB@++hPl|H-j$eu4Du=BG|$Tqd29-#;` zOazOU%Z-cmB6OpHqOz}%CNPd$fB7Kx20wGTv&1CD_ zW^UjdaT;Mb!T1fDuuvh#cj0&C%-Cuxc(gkcMD8b8KFvE1c0(tcP&T`&+is>h?>TYo zfZ&*wocTu}P&&br2yic~bg5vuWo;P4R)Zlv(`+{GeP zQO%AC4oq_5BFQY20j`4C$af+msx5nyzx^XZI~qkHC%I4T&sb9G$f7IJHV<+X{?Jpl z#{F$ieoZj&{Z!&aPM;SVexr6~dP%qixI}8hKu*Nu8CJ-c<@%hM`oQ)7G5aE0!9z9j zuM8u1N#tOK40)WnF2?|jG2Bte;d_FpP6X5OhEC)9E5CjjR%WJ*;9@^t_UO8USo3s_ zJ~70AF28PIoUqsl6IQ=Ziwl^2oPJm?B01*eM~-QOf|8Bk zKgM-O%$=e78kMtWE>XFa-qE10{@*1ZLL$iXoms5^Q9g*wj_OSE@NROmJ7}33E7nRwHnNOhV!5`=XUtGHB?jh*MmFdA+n{$icjB}bCRc3xP`(=fkyPmua=tV)f(@0-6+rj=Ncvi%tCcJ3RQANM3gS7sZdwYMY(h< z4STV<@!K$@$Gn7|+6E$LxDYGC%YAxsqMf$eu4 z7rkn^avsu~-1{m!@D0e89T+KwE}0)**w91p&RZD8Y}yBwR>Vv%z4^tktCmur9!mlp z@yB?0`u>_cP5IKU zRmgzGF_*3J-b#GWDp4)%Sa0KU4kt41sUaKWL!fCG9e&@6lsK3dtaQley4773)k@|%sl3bq| z1Ls5vpQ1M7n}hgbIn~P-qhFeFzd8Ok8nG^@iA5YYtUUj+Lu|9f`+PUwD7)>&>2gqx zA^L4n;FO7(X8u`+>pYlD zst5XLPxlIQ!ve5ZCR%8uJo_u=gKwbi7xN6hUB754s!p6F# zK)}htm<1K>daO(qgvWoT>@_#0MFw4u)F9;z_}?ESWULR;zG1Os{cnc;|AivpN`91mBL#VtHEAy)j+rVc>Yaq8o@_syV zPZWva*~gwkrPaAgVZL1quT*J}K6|A%%K|nDl_af~g1HTtI(XpFiQRe8DsF^|y--n7 z-h~%avf4{)ka1@w(U>H^x==~!-DJ8BZ?=J0Xo$m={ALqhEmbVB#x%W{DFvaD)(`1* zlO%%hz?*AxrvZX3E~Ns`H1U|~zD3k5ni5ZpQj=|fBM&vlCJJ6j^`)A_&}*2N+t+q~ zT`3qZ$^|RA9!icQe2eRD(%ZJ|*hup|Bc{`H_tflLoqW=>_ zpip`?jMU&)+&x4bAwPbHMfX1UTJ^@dtymoz&L`J(<5sD zOQ~)(pujTCa9|3(-dXeMK{q@r)&oM>5?>*f>5)5N;adbn^N%A=21`pM>hWWO_!S_U zXaVk~QDHEttR<9eKA8Eo6$T~*XbHVf7GZ#nWo;p|S17&#-h{8ih`^A_C7d7VGf2R} zGk({|5Ul25{F|c!Ah^_x2~k%o@F=-8rfxqn9F&0|R`8a*`z}#?sSBNYFUeudz**cV zE!f?W3&o_+$1Q%r>L{TRsCPc0C%rH5OZj1PKkZk%{Z6+>>il( zcu2agmzaLbvB!>7*79W*UjT?uVL6yQV2Ek@=y%a=nOW6A3MnX|H*T|l(m={K!Lpfp zc}1`7f$94Ca*Dg{p3q^Nvc?9g3&XH|%kLm(r4pw{0V(?bY7>o5z*|qsaRW|2Vq~+i z6lkd1gdk}10#H}EA+1cqC@H9jdU?CAE}GoxVB{BcXalxSD>fh9;i93tu__4Ic2bHT z5O36i{TaJ19FjNC#%=m&t8Yzyb*i{w*B^8y3+esdO8y(YAL}YGkOgPGU#e!_#E!F| z?#cP7i2p>GEP*}05i4<IoCaBaC_B{Cg$2@%Pt}HtaNUi)n=^%u>?<;xVQ8!A)GrT z=4Lq=k1vtZ+LUh!d=QK)Bkhdc7Pro{)G&G=Vnm~uiDFWUdB z=J$C3{)o;_V7OL!U{M7gYiU5TrYpt{(a|Atq|&xw7TBt<|K$dc0%nRmDl*~$)X(-OKftv@GQ zNI;cZcS-odEfGy{eXQ9g|0Nj^+=C*{d9_!b_}J-z8Nn63W;VmsBQ#8A^^hSi`ihN> z6-{nEY+lN82&1i=L`0c|b=9U9vhx}_TzPa`4U66Kf()zHuRK}F-Af%ZtHm2XI>Apm z8%31#h2}89KBeM!UR<8cS$V_MT~e4lzTbGA-Mw3@u&dQT6` zTr5q6iY<>BeR@eGC_-HVxK%QO|V($S1ycU7+ z5iw&jBA@+d_q%X#|NTI*sjN%iNCsnxv|*$*D1%k`+zfhiBqu>k&arx60 z7vRF?wa-e;(Ek<3>lpS!92diWd_1N%eq?MjDO+po1a$^!+5;Jv#H1WDxF8WU=n$PcoGxD@iz8og^ zBp&{P#qUwuJd(1(9DE=@j!RRH`zb~qTbt&IGf7@-XZo>faLWM&i&BYYeEhfQakh$1 z2LHJFI&iF~GyXxu*Yfr2BkcbIIeiBHUr0_;;06{&4V&>O`xiz{fD-OO{a-lhmu0t3 zGKP+}t2Gz<8%SPMY8L!=-x}CWKzBe5vR9HYFL`}RO61usypV?Lk?PuQ-z1s+MPdQx z048j70uADyS&5{ouDN@G)+?OBX|Flpi$vqBGh(Q9uJ!49-LFoLFf5qeE*$5pFI=0c zY(VK`{(s`FItys=D&JS;qQhusomFj3vN_A}IgK7=%}c{9Q73_(TVzsQy|YF+FtwU zZ)jOdEI)a+2`Y{aGRSAmQZm-e4ctAF?pUG4qzu6u>+(W;^1@PTuz4fnu(Gc6D+qV^ z1%2-9wU86xBIxzcIZ-S-&xzBOAmc>i(0_#!1E7%;y)X9WCfw9bq=qXbd1`#*#gK5q z*wq?fIOjo{y+Q-AsBS}k!m7XnmFHMhbhk=2oB!LM(SUy*JfmOH;OTrN(bYCF#z);2 z9AUp!UaYZUV(E&LQhJ$^KRAZ?}! ze-xLQ%n8s138=1vP7<~adXw9^*ec_Ka~q;}v>m%<&D#kapwL61rvGe(50BFi4zMJt zMi`cWxZkpie~8hr6WE3sB|dk2103;@A-%rMND&_wTi9k9u|<$r?#wSx4ZmTKMtco0 zph5J_3nqxzjLU+Gg^invSu_8!w`UwSK5g1)}_=zO0ic*7p{xjqP)4w>|rYG)Nhr z_kTjnUEG`GVKM(*vO$2P$7ILB(oJ@gR)!TJ?!(w!{(@%!j@Q;D6AZSf4@v{!s5%pT zlKVjg+{k3pE&r(tt7+0LIGjU!HEOx61+!ja@8YYd|IDK`D;&@oR8Ps9Af~b! zu{p`z*qj&7%Lxfgm(kCRM{pNF&U9RubS`{cx(lMV#P{dYMXN~UOl1w5rSMuRtG_9R zH-BDMtnJ)D<~iH*3gux38FM!qe0(2rFZuvBn4vxsOG{RWS+je3s4N8Bys}T7>$(Ux75$=Gh8-WII^yZmX|N^+oQ-ts`$=KF z=ttxCR~q3%@?mrVS)Sl5KiL>ZvuB5u8nf0-5~T{3Wpv;i+WK`~SkiB%t>zW-*{%$M zHq|x8|4TcC`2C=$%#8FY!*Iq2`H^Y{Pm!9@FbvXX^2}U9j|S(WfG{^j2L0Qe^ktev zUp`gn)U!*rPcQl0pyNn z?g(%vN=@9+6ogtaMW~m=mbVmIu)LArO`=j;<||QO;UHT=Pwn6CYHtf?*;SrHZHI|M zt~I85AYXJ0BW-0MUm_mw=* z@Z3G3+Y!UJNh+bvV-+>533dOXy)?)9=45a@=l2s!DFH#JobDvsCRSUt3HsY|1xtV5 zSqH7vE6Fsnjqwh*CNF5ms2=Ox{4r0*bD)PFOt&)Ae(jFF0JtR_SG(1FoyYzV1}_ej zl~;pM0!|P}(0?Zv&sbJlc$eUSqoeXwwHJeBXi=CsE4QI$G19vvM}pRhuUM{IxVHaJ zlrkwRIjxeYt75|~*D7%_1qR!kRQ;9T5_gn1dodT&sOw9L6nrgSwt9Tnc7$bj#mH4B zD1ruj!?I|C6?!&jwnDrmIUJOTMI{FA5?4Ix8{dO2f$y;-gVsrNsc5;bvBsjQCC>Py zz=Il6?y_s{@3G=%B4Y>uv$qzJ8uXpZ-!Vz;3L{jk_Kl0pVQDs~m&6{7%&x`$z#cgB zxWw4g^%*G32wh;jav#!40W*q7Fio7POaYT&vkt)6a$!rS~Z z?+p>o?{tl}(y|C9#0OwNp08fGJLLCtS+29r0`4yz=Xut{YipDnb3Z-6qt4at|A9vLB?uh|{V?Hfx!AJryHe|5??7Cocou29HJRE=GeO2->NR^*! zrm8fB_hxwuS7!WX(!G;AB&L7`b5yh#zG)X@mO6OS?RY%GhpyzUVgL0VkM6ADn#XLX zj=R!q;t2`r%{bij#fgv1x^GOPa-SA~Jj5}lT-n=paY=+-Uqs|4X{e`L<_usl@A>;n z1*rd&3>>t^vqi8bhb53u<8qjP&)o&R2YnOsHU$mv%EET=e?&(bCU7(awm%Shki-zPjVTOg@y>~z|9<7`zTQJY3ObA5maa8$ON5;hx(I1)pJQ@OPB zp(-oZXB7xrShWhV2RZCQ{Ar6@Or(5^@`KM8sBO6;^CB39MnzrK;(Z5tX~#lYNCilH zSPAkC=Rp0eUad!DYt@SoN1P0CwZ%{KExCs=7B%bz8b^2beYZ8&Kqs6^N1Sy;9{FlE z$CU}ksG!sNNeoE)A7+ZFVt>O=wGlgkYI(O^q9vMD#sC~d>quM%03U1i4a_}UorD;N zo>c(azMf`_{W%{GEB7^@=qA zb8Uo+!UnLa)FaP$uPruWAhGJLn1Mz)XW8O$Q%4`5FSD;R4o^13jsVcwRv#+U0o~Va zGS|G0IiPWufqHgpf_n!no?8`#0pZ=H2LVa1B;wA?yQWRwBwK8hkbc8toqvwYd-j^^ z1RSLkccxxU6oE$7#nesRj{!VwG+NB}R(X#lnh%2{i1}j)ab(<0xO=8`MSIlS^u=sc z2wi90<_o{zXFw$6#<$5XiGKG+p>x4qND7ad|D#mOfiz|Y|6-Z5hIRbIf#S*j4vDb@ z54LX2qjB4?u(PLI>cpb61IK53H{zYf!DT+`;&II1chIHH1WPvli<2w8BDM%Ei-sjSwf2HWBJA6e1lqy2B6$Za4fR$df~CcnjTHB7b0Db zLZtL2!-YbG6|kMAsJEK*?4Zy?y(*#%%hnG+h&+{Ic&1CtDi3uvr|mj1lboq?vI=K3 zQ2BKw>xtm7qW-pBcnf*J>ENJXgKn)Ew(4jEm*vZDvLdzn2qujj|1()Z^v~}|9FzQi4{vBR*{)E?R&sAJJN<|t1zd#M&k`g2U*?IZ8hsxT9>!EY& z+g(Z|mfzp*QxTRLO=n4qGJa(WUkCM%o?FJ|#NFJ)`FP8$6e#f2=vUs4#Hw%spl{iz z-Or_vuGjLIOCU(Q4sdT$im1vOgpiD;HL*n6dl_{>t#-DWe5#5MN7j~ljhU)|2VCV=E?|^m9 zHGNkscwV8Uhz|!z&t*bOFfq?sYX*%kon~lAdr@(1-7{PU+K%BoXsB!{oon3w0Ia%$ zJGP{4cL`B)0rLD7xDZRHHx6H`XQ76U$w@->=3HSTg&jOsn4X+FEQK1(XY3HU*`JSLq0B!Wb9j-O4C*_rfpjT$2?9Y3%pd@N3tr zTi?rZefQgBFa0&B-g%#4gQ(#v>Ww0_u!j+C~x08-B#Aw{omCXXNM*1E(Y zTqgEV2o;)v>FK=D=QDR9b&0857xg5c>B>E4B>Q}hG@rfE^LOvEr64WH^tVJ80oBrm zbyPmKK^;qyU|ZbsT8&M9H4_Y(_K~^w7MgO~hcI1J_Ilk=jJ^1$Uwo(@*tQR!8 znpX{L>8&O7LcY*v^Ugq5a+m5=&!}0C(3ux;xwP5c3qXy8Xg0DAn;8 z*Y(ZV*Rly~yYhy`oZ_bD0`!r^1hnV2!baFm`Er6UQ z)h4X9QWu-jtt(Y$OZSL+;mG*n#pat9dm5ut zrS`QTRX!D3CU_gSEP1v~re1l&U}HAYafqh*=Gl{b$P-E&uh?9_Iq1Z)VbWvXbYBsUk@F=OyaiXn2@3@?_Tt8D9jt((d&pw&TupG|l`y|}hh zk)|0QhY6vg6j5&Lw}V8vLtTsE;Kc6krx%i0&^Jr!9%F2KrwZqXHK&_CQVa|4zUFoP zCK-6GVN5|EYw6gTfNx%Fls-|cUG|{-)h@K4CtGuy12ZkP?Fb8l6Ny3~*LMx(DH-wv z4>ZZXhw22YA?!BN@o#&%sh8<(b$F%Mjo7gvTnokn)Rc-o@?BJGo0XrYPeZoZhExQU zmG_EFUL1%VV>BE4Xv}n?%i!YXk||iO(}qjq=ON*IJp9pIM0XoL8-xvoKom_M6JPW( zWrqrze1S3@=~!T(AK!2DUi0}T*)g4f)B+Qx_$lcg1Q-VI)q4j6#8i)N475s9=Kvae z1_$Fi*S$#E=A?`%Ut333qpkHV<*~}H(3MnbV=EX=0@U8Ky$8vipNEIky(0aguIV)B(hNo2-vNej1`3%6 z91((teCapWSzA(A&;z88r~S$;Qh%;C3|%cI-7uPSQau!dQbeZYxf2YaEx+W=eOBAP9zUN7wrkV2AGm$pDDQ8j zV^fKaAN5nL%H3tN`rT9st&U#{=lJWvbCTadr~#-rIWCEU;N%NoBnj3%{Bv zqI_A@w3JPs?i)`h#;xq!3@9p`lk6{jl@umucHN5uEZ4m)S{6e31P-1ipMPcJq@4@k?G*z?H<(Yz zB54~a-3rbqM*WDNg|msWRnM8xBu6qMyex%gXGg+jYLGr)PoT&Xi#!Ydbu5`58s*+A zDo24A+mUgC5h2xBS!u?58tY`Qmq4BC@*4p;&dZbCgPqXx4aFol9+KNIxxyRngkMW~ z6)l9v`tE5FiK|(~nWo09Vv-g2NeS6vhbMCLM~3+Ep`tO6vRfy%)xC(QCo0Kt(YJ;D zbQtI$0XoracFGj-Uy0{#J7CR!qwbh944_?BaUbVGBH;RDdrdW zB^S4_e#=^<(agq>WUB`^9dBE=@MibVrATuHA*3Newd$%+RXtgO|2iJP@Z2M+0VpEw zpb!{mVYgX)Jg{9zV<u>9xKS=z5eF`j; zFcGw{u}A_u(gNJmTxW*CZFfoUv!Po2MAv+V6~#fK%5^`~2t14f%ajSExKxX@4LNj* zlJ27<4&n67)CwjYAb?FF3}la8@Lvqww+)0{z8|N$+O3Z^c6#xT8F_*tCtQa@u^@)k8~% zaN+}Ye8tK-T!AXC02t?FBr`79HUsXcB1Py^=F>VN^3=s!IK!n|jdzKIYJFm>&=TK` z|8|}eoK8Ss&Q&qkz*bPuR%R}c8x!(2UJ^mRdWdJ+IEG+9x$n}V7Wht@7n&Oyl|2*| z@GK$9ZEKJS?eH2Z#xKLyrfY|`)<%>d&k_T2mg~ zh#gvBXZfJW$mD%f`)|pM_uRaNJp;`x+{Y_hmTb`aul*EC7THGW%j8P%2Tu?cFi~TC z4Li`*vUGYD2fBPJzjFXJz_MXu`!qa=R}2qMoY&CzrB+q<+fyoLjq}=}(0nt+o7Zv% zk50H*%Yn4oE}*&!#Y;%%cf~W*meYC6Dp9RleRtyOsOAhw?m-jNPojpypt}B;p+|T*0%5ZG5+r6{y zVIUE?=hJ95gnmbJ>NA;?0rLl$B)Ia_)rw%xaS&2$AMdBLUgBe78$eSwNJ0n0i-tCX zSwuChoTbAo_i1PIydExG>2@IO){J5)u;QkfHS^5xwSp_V@*Gj?Ld5a0uiCCZ@QCe5 zkZqatSUmIwp111T4FDJT(;4(^059{N;9{79ZFN*qUpc~BCOdIhr`N7K_WUuK(hU?9 zf5~P+H+EEosZBryTg9Z(MbG3#Zkfw_R7+_Jz^MiUC{?o>+4xP%57?YRf7kHb#M&XL zyICpC&`T^}ESN)OU`1L)O!*i}f|5nnBQ9ex$HlcSbg)X~|WRU_y=S*!)04 zJGpf%G^sZ->BW^*PME?y(yt>BQyrhRv*7CID(lH<4o`u=`eO1v4DAFUxjG$>os>tv2z(CE72ZKvPwj-1A9Xnw3PZ-fN8BbWSd zqS<}`WkIb+q__}oqN)B5EwH5uoe^k_kZu`5a595KTm4hlBJMFsZ?Sh%T?R#>|80gbYu{XTE#_TFL zEwR36cC>=Ln01rinbq&ve@Nzla!rC~>OwL$creF>Z%XUhoTrBy#xCWH)lmNiCK1Ft zo>K#Elf52Zt@qfWN?52wN7{y2(d8Hf>rjjn1_>$?w@*ozQY!sIyMkn#YyZ*;Be?3e zJ9#MSd^BCedU>w zxoK<<-@$Hr(03yRPeL5=0;nT@N@ilP1+6o9l`IA%DBn0~m8xet>@L{mc-^0KU6B2(svxJCZ5hgXX#vcxV-U`<<*Mmt3&3i zx}k>XH&X+#E<*CX!8#*xaJy&o;%?8)ocE^Gv~?<`HYOJJ;(&6g4g@)IM27Io7MFIq zShb)`vj{Cg44eo9+rd(E(;REs+kWWNRNNqdF-OGAyNnmU%MgQjYU|>a35j*1c;i+Z zHjMbJ?4bOBtNwxs6_c8N9pWmyQ`lU{cd*6S1>CvCn3L}E z;x36p`?|EOZUwXiZfK6 zOnu8GEMXuj^;rRPWGa3j)3mrCiNyn%$j~zf`QqY%Or><5OpA*LGL_PKGEIw%N)ebq zrkxLDnikK)9>`Qm{eWf4k<;Q%rPzKT)8GS{rWNw-i%hyORe5Lq(Fe`c!#j?F5RG z(~3Eff8$V%ek{p=Z3`Q(ya^@XqJo_)9s-tL#2ih zbRz6}W{87qFhO)5#sYUVtKl3(SU-+d$3&w=W;nZVo+Lw3QB7-u2$Wa+q{@-7AvC-l?04#=6=BX=u$2%z_N#Cg)yy&Sw=jctVSjf7XIftIpFN?V z{0`X!v_#zDmHn&3V!p&GI7aT`bqVY-_9w_WcGuj&RI&UbnH^F7O@1S3cj7Pb0#_hu2)rmHjlw zap_SkxO^ZQ9;u8N$|%W~Hu3}XFzKRp{u%0xbM*DWo))!7j#pWm&aPGMRJk+^Yb=tm zirl8zKyFD3Zmeps6#5r}?x*Dk1U_y3ec<}WnJpZOK~Dts@3ZmlKM7yoDL2m8e$m&1 z?=9PqwIsV?f+>Qx!&y@Di@%3W$)#MV<-np+*Q4Rwk@roc zzUtSS{^#-9bJ7zz1fhSJ^9I^2BWNftHDrl;M=9x@GM2QwVf#&ks8Kvqk=w)+rS#I& z-PW5qJmK@v2mxK}hRrZ76ixAMDWi=EEtecwd2C$j@5W+x=qi~U0gVghi#%AUi(_{V zxn?m3Clf)pWiDBp`>l7505v&s`9?4w95VG<<=ck*iEbKc-wLq^qBEX^l55CqariK& zut5qT=(>=Q+zBF1aFRad@BC3Vt#9cG%1{D9&r7DK=Ib$q*2v@JuSuMIceEPZGja37&LLU5)0mPq*a+mGr#4Z&+vUQ6aKCm? z9Yx&3cDsHpr;STE*g4{fmq)?(>eJ2|d-=||hGQNSbqoa2>N<-f5}McB@*LC1l3C40yVW`-HrCHqGm= z^3{Z#a&craQf3>>zpIJ%YM14Kxo$olw%)w=C|t7MedZjq+>Nd1%i%E*$A!1Ez;W6Z zDm1{!R=`PCm+8*kd^0l_t@8Te2XEA@@XRnH{5l7IjNYc1kLs#5wsQEzq%iS;f=#9bZc)Haeqm@TvX zHcnZ;s%7rBk+Xy*5s|xh>SSMQeXVn={5R=2sepAuB)zc(u32#1BrZzpw!5?~UKb6I zq9lwA%iZkql`A<~QZlS!-_FwlhaO;bCLIU&{b3v%w4GA@Z>QtHoW-1WcL0!!x(}wc zoY;}ZP4Z}y1JHCZLevy?1EP|jHs701L6&6RT@;{)7CDn(Q_qL0thqOsfx%_{h9y?* z*+C2YK_2y*=1lYoAj}AQHSdvuTCa*#f$C?I)|kvmlY`g}%`$>g!)JN!tTG(z`FYp! zC}2!l#KJO{lgY%-DoQ{NDn9k3khOL#1pit#6mxYAx%otZc&4ePHy+c=g7n0mmHs@~ z?+Y79(P7I^Me6qeBdPk1MLQNsgI?zT2~QYNyct=|4A1IKrQ3d{x6Z&M4nus5B99_L z?x@cLtmTjTbh&eqnPL)fHknd9lmLBB04-VQCdBv z#0AGwl!L#x6z&seI-Wn06F zrZ!rc$o%q?K2Ys#4~P!j-t z47c_ZE)8J|m1Z8kw8mj_ektxe27qjQ5)Hwh>gUE3q;4|Gxc}syxI+N zY$h#rUv{xsC@N-D=8$1Vn*ELN9(^vnOY-(-oXo5$z)yvDZ$^H(@Wv4HncPNpy`}Ff zzP!+4`hCK~eUk3(uIT;%)2~8RQumc8~zP%_OH!WI?{AO*|$g z2|ZIuOrL5L5clPbK`{^kJOq_V-}s& zeL|#BWZR^OEvkHfKM2$Cskv>zi(Bt=`-$7{L#wy(eT7*763m}+)CzNAy_E|%x6|@~ zbCW|4IQM?&0q1Vo6DGf{#=6+Zr7(A%t6l+7RkI>fE?7IuN{#}$OvxZ<>Nv6O=2Ip3 z(JApZ3@}LEP2L583TUit7#Pcv5&UIOZ(&rksHrUB-1cRaX521>Z;ED!>Uid8tk`hS zwT>-pb`b@RC zx0LHU!nnLPJ|(4!!a3&Tdh2Zggzqf0_1rxsdU1@8nY2)F2W43A+!R#eL=6uN_!Al{EZw%x!=Ov-be91y$885tZ1;bw4JF7QwXS5`T zX46Blz_Y%|>~q)8Fd;x?*JmC3Y!J5Vet8WX*~4i=%;HWwWEPj4KJq@-PD`|$07 zv5~K!Vxs66ECt*IU)T-#=EBgTMQT492O$p$^CcmcRu4AMs~Rf^+AfYxMTAf?*A3GL8^?A z@6!#rX?1g3a;=(n1{~K+e3~`AH%e(z$igNC>oL0& z_&1bE4^~(qrT8eVyU8_=+K)wD>mXb$6irYJF0{!iAtp1Kxyb{Ru$$>z+sA(dx#j+> z8#c+0{h+eC!Y7!#v&t`XU#A%W#Yh;{m^GYtt;aQY;Qcw^pWF*AoT!H5bPxbkP)Pv3 zhyd$ZjmPJ3DR*`Nn+!lZ8N-=Y;n2x5zpQ!q-{oGgIGv3C8@;{I$))^M#-TU8(CpuW z2rQcB;=B_*bpGRkLY7u~R;=oJKbXv9`@f>EiYtt{g1)Nf{IwrQI;^=Ox>DP|(BwNW zA>$>B#b7&o7#;YX)Wi5p3+V3$^4&LH!92^hIVQ`Z!I7MAmV$Vo!EVzv*8A`G6h;K4 zT*~`g6KYcZMI0-rYA3UFDhIK5Vh>0dd;s{how?5Y3`Nlw?Ayo zFkv-yMmWd=%fQ$F(`_^ToLYm-IOfrvTMADV2%-$h(N|k(Rc#Z^T~@aLV3A(D^H7K) zhTBg)9^8km2j6^QG?|h!9f$Q)_6=|)A+oE6ys$mzO|QnYruFmZO(B{Y*wg;DJZyrg zx91lKOqzVCPifnG9jl&>^0W{d@lAX+;iVSJ5+Cml1CojJN86*rJKH%=+HrG2nP@7_ zSTqmnTvxV!)4tue+B$W}U(Ob^mVq;)YUEkonh~FCe7(!i)@5vqFNMpnZMq8ErmL`R z>O|WJ2h%u{$|jl?xuK9njvwpL<{lR>3bT6LBq;6l`=3o`{w8xmbrhR)S zZU0Dg7ky(#LIE@H-dAsFkwvd>p*Am8PgpjX?tJHh1eP^iKw{TnFjkd6=1;q!?Q>&Q z*C<4D<0-a@e2$QQQ$`Q=-c2T0x_iq_E{5*l|9^kzeYkPbhx3KW-QK{Wq<@vsuS4k# zrY34hx;vDw@RuR{y3)&UFcHJxH+;r_5w_nh5sz*KzkeV7+m_qdzR2ib;PcnW_T4YV z_OA?m5{FLq!Y?%ApNo4eb44PCo4C6z?R}-uudvQ>5y!`lN&5>CegnF1MzW908T_j( z@S8>SylpI`PWN%?ODT7g5|m$Kp8M$gTVHC%Pn2y|Zo`50*u}rlq`%X_;5|nvKKi0t zvcAf^-|ilu-zjyQt#xlb3pDUmM*sAS?fI`T_EisH@I_QxVs+qs`-H*T2w&n%?+Z=( z^*32Z1j{ctUVux5h)q+5Y|QOUb+K6G+dk zAd`1*UrND!xP|b#3Fm{?1^EWbPhX1m51iF0y|PLBtuM8uy?J6ofA#Ps+=RR6-O+%wi2Zgjh-yZutun)*;O+ zz8I6}i_x`h)hQ2b8Vv~8Dy?-sQvrX>f zZF48o_ORnGwYuMPS(D)AKJ=1;&3~D#3{lXL@`OV7!S^_m|3afDEjiW;1=lsMFAy)_ z3yofZyTZu7mIKC@9XOf%$^>O}Zts4n#a(fBGmFjeOZgdoS$6;bX|8SS|3$KWqY|P( za8nzd>mNsfU}HiQi1*K;K-{k>Ow>AmgP0qv^Y0g0)h!}Gl<~taCF3`XI(R4Qi7#;D z(wDMKZ(MUh_&SVTxx2p*({CO@c;e`i8-VL0CtqpkM9yLdM?|c!gCj-G7b5&!hx@Ue zF!tiFuQc?V6+CV3R-&s-;cFS|h|J0vERhPG?Ufeh3$gtMVaUsy<7lEDy?v<-&C@_e zYJ#OZ?N>3?e<9jWxGK4(tCDMb>0Vz~C9AIGk*tcSmKM9T)jv~M&O-66DQ8B0gguB*tMG2X?~8y%F2Z zvwZ1EsWZYia&QzZzA}mk>IcpI@+hOX7Iv}R+QbW15&5?G6Lhg+6rn)z3Rv-G*>_y8Ftd6J|7e`^^uVym*WTWlMcvi1W5Iw zWm0NJ#7^^PV7e=5REmph3m?6Nlt0k*+>)v^?|?v=Lg@L1Uopjm zXx{|7?m`rHWw%7DCF5n%E{1xINdR*3(H(40^q>=s=rI{tE|7u8r%s-{ z+G&Ao0V>-yhOPE1_u#anY!4mMf0>jaTLHH>=+YA@z7b6kR`!S6RJj_6{cUj%TN-nS zr&(R25_u=^6r!p#m=2WD+R7D{E?&Z6#|pL^a7@Cy^K$D3%n=87nC@7ol{*WpJu(Jm z>U|SwHtmXHB!;F}_b zZ_R7NJ#(Dd!x$}g2+U`hTCTcGT{AQBo=kT3ukxxq)4VuH<$tVmpq5oe zGUb|w>>Ub9U_jc2iXQ|4M10mWXG7uk$E|$oBLsIm$c{i$>CXTTg|2c%as_qupc|q!*l*20M{r_Qm{@#E;o0QQp5z!?n=Pf zD5-x^j1LU%WP=A2Y)p@zw=le+Om$XbG1bWx8d6A-LGbQB@{l!*1{e_{$(o^crjI@E zj><;^#JLp$;U~i@|DToP$EykW(8U9!vr?&IN>danWDqNNqD2HwzwhNrIjyo%z7z@I z10|p}#-c5i%8+qPzZ$Y}2_;YVKP!2|xRGDVCzf6v|B+)>id0_1S2VUB+Z zd~cBRFRUD}PzBFf|7W>Y5&35#s5Qi}(id8V*o`-Sp_oP8RzfZ&PtT@i4S7Ug4aITL zXaM&aSgdd$b$OB(= zKtRS9q`~;{7$+r_PF|q-lr(=HFxb0Pnr}sDvE-C>PrDK@QkOijq(z`DXbE)FO9Go2 zGhKq#0338X^l;G(yUN5>0sx;&-Q;%;G7)&Dju8y5y{gXi!(FTCaF7MFl@J!^)=_Py z65@VZ=>v3GPxYwjFrraH#*t|y7T&q8vRaKP$C4*tT1C@fW<(iq&1nr}{3kWCKD0oE zS%Hw9)-c`>Y~-U@#>a4DT{$btmipo$>4>9R7WbF;to!5ig}R~9^zbtN%TyM>WK)?G zCO_`hTnTZxdYf>fI)x^OS$FOa?sLEy=9O0|{ec+xq(%mr zWti|9nE9tQtN@vEhW{h7OZ%~vxnnD{4$IL-0dJV#{yXiB4>PR19XOkNDt~>2G`h>3>Suiu3H>TP_}u8+qO! z)%CQSJWb%KrTAp+&9{NR_Rrg3qm*xhmF}-uP@R>=g2CaH#Ru zZDer3clkEhQcm0Ww|GN)M5UNzPQe}65%Qg|1^9#h^tbASwkFEE!jR~ulg`HHs6%x<=gH|%?pdxyDbB&196!}&(XQL$hd_-I` z&9{P(xaUWK z3HU+#Ugf1}-*C_M4V>Z1D6bl>jD`YDgd=KlzarC!?MmqR2Xe2`mCgf?SIfBsJR8y;6 zam6p&g>K~ce)g7nw+RWOC3e^eRJGw5E&^5Cg+D2t^>MmQ-HZx_B@jBxWUK0Cu1fLK zDuMm$R|T%@iiFVmV8aq{S=zZd{Z?Dm7XZq5n8@=BQ3e*KD63wr1RDgcpW*m0t%CX& zC%LL*n=~Fyw8zSZbW@pjy7Ng3Vd7kr>sMH`3~`X}h%+LZy3p{>R+m(Vk@GNP?8>T; zOJgC-UL`}~gW1QFnj_uAw`^LajfvwvdyyXYvj5pZXo(2BAecN40#^NOQ$yB}e0y1y z8PeCU(C5v3BoL({TCVi|eH`TCL#0iBHPF-{?FB3Z`(8DArJt7ywD`e7K zKr|@^^wXR;3_k_KV>0APtK`0YGZ<6=7zUN?-5G@S^DsC$0iqCr$TRo92*k?n%%)_J z2O=N{D2fq^JkS4IP}B#N9aN%hnVih*t|0o<4y1MRW+S&w5(i_-sVr_$Ld~s{ND#+p zin)PcnA18r(+vM+!bhnLhTBvl1YTOe0@Qk8M-vUM+P{B z_I@C8YlOA#b&|Z< z#I-gFs1c=fjVTZD-9CIjJL7Ki=NC)3aek~1yV019qSWU&EswljzClye5X+d!7mP|9 zFVVpyUhCT($=A&CfuGX*v*2{b5Da%3QE&FjwV5ZWE=#LF- z09AII>2pZUCVM=v=&Whg67C*%F}+ZuaYIdB|KK%02X~&Ut?*MsZ?j$DL$1)$+zP|b?qq-pEdljaI0IL{aZ>gWawjS+}oNc)4P9}gkfUwo7vBG8%&QR_@GODZI zr4Vzn%6lQkC3dY`;aq?swQZ2X`;BDB|0yMUqls*ze~28@Ps9Kc_fDvb9U!IR&uxC0 zt-WO3DqOr9Du3M>Di_hA>~vs}G>Xk2c976IFrORw(;v?|@WO=!=Gs^3`VKZdfM_bQ zvly>ryb6o4H8@umZS)8z`jV{I0tR^EL%qCR`C$MCa=bgDK@rVitYW5f>OzSG`Ws6D- zsSWUT{-$eClSXXvV$tfuLrfSAV|Q=G*qZdq%-Y>^^BhTk-Du9@V!*pfOIaGL`$H#6 zd*Z)0?s;&rN_CF@fgS{*>(Om5!COo)<3hmD&NNONc^$*k^!>5XDE|t#4xy>J?!1ol zgu97nsY`8gqt=%PIUBB~xg87k9v&x`tmnC7eP;W|3jE&tL;Ul3PtFG_2RQ&x3W50j?p z43$=lgs|TbAaDnP>+9u<^NAzony#27?>zli7@_{~X6S3ltpT9xMr-4H->e{i0Qxp^ z$~J?B<8!Q{Y|jk58NRfvf!UW5b4EYi=3*ALABc)Pe+*0x^rR zLHgTSMbT^F6lV=F3Vd_*WaE5DY#}y|xZ{7Yi*$h})|@9G=~AAEEfkz5Y@ukM`*bT{ z#yBtEbJ`42R}&WwKf&yuL_>YQBmAG1SZ5eW3m<7jP-7F*HIrtkcCq zY2{z2G2C6LnT94@+BXcQIGBVB?8QFLOaN4!(g6h`X)qnMlPvLK1go3bt z^r57t)Ozk_O!dyp!K@v*W*WQpKw~D^u|5zV{C{d%<<PIhEc{3v%5J6r)e@NC75i+ zCbb(zlhr{@O1vxJo42BsDEu%CKfv{)%D`iW9_KeqmaVTQQw34Vl!!W87W77BD)r?# zo}dWn4x@tsc4Kc@QzKjOdeodHy9ImyV)50SFx-_53B9e2OP}=72ie|bhryFPcZy@@ z;llD|kY-9Hka+ds)quW>Hzh?9_FuGs6Jr3>8X>Q`u~PXEVACoFGqbY%-xC>d3U@AQ zdWPdfS0L*`%bHJQCt{5$mouu!PHK&v(zLmuW^~JI`bLYkngcnQ;Wum&gyeQP&j`(^ zHcKsno65PVcOJYO>=%)=LEp8%9j?G*z29sRS#uf9gP7e2dSvM}+C`3uWj34ZsSTeh zfj*kmOoK}(RtV3hAi`Dq#hgKHarDO))trflLJ0!ju0*fd5H)V;?nDRs3{%UODJ4KR z2b)UYtqscR^MJ5@J?an(Z$<~82C%Re$i!^g;O#dH*PG=&Nj5J4E2(%Z=BFs#*&Bn3 z#b2>P|tOB30=l|5VLAd^@tjqYZ1Tr=Y$@aI4!`kG(MXmM~H5mKk}*XW|^NG z3EU)hb$NqAoZJ;}%Lq?(>C-PF|ElfW?w?sT#t?X)@$qD_j zloOFHwu|UJU|`VOxa9w&8xB+}$0zGLPsUow;4|OD4bX}C%*OnezP?kG2!k9x+GkXs znpeno_YPS@x;nHasw*y?98T#e>o&T#oks`AnMbfT_6Tc;zFn$Mpf|#>7f(LN`odYU z`NF5rCf*}e*A=@#XzO9ZZx$;$DHF#!j{IM+GmL}P3kHSVH^(aaW(BJT(r28et2j+= zp95-m5f4)knGE$a1dDjV4wEMH%BOx5WfE3e#Y6J%(3`HI7c`lY`yb#HZrq7SP-j3O z`(QslFP@Uk(QBFyYVI-A=GKn&~^^{gR>Y##`n$+ zZl9iS^T|BVvhVIHVUHH1E~WO!sHD&oU&`r*nF|RT6(m6V_7&y>clr3m^cC?J=PF?u z#Ub;hWkSa$hfrvlYB0r<4Aa|f!I7jEe(2_59cu!2PU9zFgSkB$f6tUqpN%L+ySCU@ z5(%jsy{K(se+mog1aup_lmGH~Z+L%tcuQZ$Xmj+0E=@ts`0V-CbzYN3)Sm?Hg2z^6T( z2f}o;(KsShg6dHu2yx1TpPID6${%HTBtPg}Y2*4vgrCG4}DMFR9##>y&yK-|;hz0_2GC19 zk%e?nvjL+f#Rgg8I~&%~&RWyR@H&bg9IpmE;;Hy~Hqgyg2eBBqxsDI4TpjMR;)`@9>a z3X0jgtXoa`)?lb73AkvhkP6udJ?k~ynp6`XXQsw zg7CKYi!h6rM{72;VbkakZi8;derhq;P={t%)n!=0L#H9=-d&JO3ZPk#WgB+^-pj>u zCCyNi$TcLHTly&=5gmnSh@BQhvC&yw!J*_(aS^6ilOz)jyfJa6QzxK^Ol#ekS|=wq zYj;mOMr-GN$>3b(bR4=*OKuQ6=tR!@>u?7k@x8str=&*N!!i3Usf3z^?99Iauc{bA&_}5|95w>wF8f?pho%eOb0Izi!c}GX=Mo7fL4yU4gylF{i9-3>76w+ zYO4qE5A9IVZCr5UkGUY7+0WuD0;mwbo$GyWQDSM7m9m5-=i5o75om1vfc=mIL*1y} zyvtb66r+qSFu<(DzqfqjmG00#8`=P5Hf^oG@!llc9Bkat1VwUfLbh8pibzgF*ll9M z?Kty0ZGr=f5md~AxG*|QpP95454hMI7(#*T)KfPTG;$!OiQA<$9s;9Dw<=R))(!Eo z0vMQV??0Z=o<~}>v}pe}?tNaZJlj|+tE9u2tnx*1WqG20{^$cZe?ZJB2`v~MQAVBw zNJPE9pxkr?bt7SZNK}-Sc?*29U6aFQ1`S`11SWWqYDi9JE2mDUumNyOx+KTah|F7A z3CVd77Cb*GA(>GRiW*g~-ihJ{$7e|)76@s6K*Q#Xp`n?Ft}`l)`v0Cv72(`9GG(36 z4@~7DSs~U@b&Xmvw$GqT2B$gFi{^>8`IcnaP+*YXT085@29@#Del;Q$1@ElE{x?fl zCjmxLxerT7Xl;dJw#-hb7CI}4`kTR06#gI3i?K@$VuE-g3xoz5+D7~t4M0#Qfi`-G zg9Z3oF18#BqZ$mgQ}fIHsIc*Xe8luLb$X+hW6d54>qoVp?_GfSWp@_7YWi9v2Z7_a zjdqgbRs8>rgp+@~(8i zC~sJE%ibOk#QQumO}lMznVv)H&)x-~hT1q#QPILb?JqLc}I9_}JQjE2M^iaDEPq}A~zUu?}>b{zaBmPAVj$(w}cTC|SoS@edpBD8N(NFMyvU} zqgvz|;}ME6*;|NZ`P1;ig8647T)pKCp4{&{(-fnhR$V7&o^#o8sUE8(+t1yH+A!q@ z$pjQ=aR@`12Vex5T$07fAT|98+766rv~fhorWWr=)mR1FqhfufCP6WS^7E^f6~_%U z?~5reo=m3y)MCFnD$l5)jpZ%kOD)RbUc(|}a>5LUwoTFYg-m_~UAo2UK()tWCs6b& z2f^$-6A3i5shqmEQ0^F&rF%ugW>=x9T2#IU32A6j>HNdN#oVPX=b{0A1 z78>n$6yvHkSNj1+O2#8^D>Lfgf*)aH<&!gl6W_(W<7fbb1oMtNp83-9ftxmb+vpY# z-#AIQ;bs}p2U{f-bEjL!TB_r@HE*J$_(m-pI$}4L|9^NM>Iwf-uq3dg-u5s;%i<-; zG0qXMG&f{;B}X0~ZV=#64;T~b4r*#g^@@*#w9}`kE5JXJ45u7(O`I^|GAew4J7V+)LEM^n= zP`)XzDD+l!_qjPI&ZWU0xPgjZ-cyRBR3%{=QH9A7YBX*F~b|J!ekege{g3YY71`N-Cra*ymX+~PiI#Q za|((f+lx@*zaw(VM9CP4H&hvPq^{ zER(%b7WBO21gQO@lyig9i;A8xh+TGA7Y(^sRQ3>X{M6#!#?J&XnXq_&3ip59}572S1ePDHc;D{ zfNalj50S|n^hHyso==jR@V0RQ64>stsh(+)kOAVO9<^F>wU|iHhT^~}eYS^4Fy@Si z7h>~fD`inJm*P=dX$i}f{ues9IwO-$O#WX|gyh6DqaS^`Y@}q`r?UI#z8VzdT?})< zg~F58g;?NyEFvN_IE>YZ#{Py1-bEKiw5=@ut`tQYG{Ux>h7Pn8CW{UEjK+0cQCb{+X&YFAdWWl02nmSBP;VoerK>^FRa z&<=FXHlR2+x<3Lb%StEb z3ScPpM^=b_-$i`tQ>0W!F7rPrWhl*@S%Wq2#{6@;L9iiir4cC(X1=)2&~^zSy==3r z{>5+kpj|qjew)T`Zh<%Fc$y!2r79s#nIIej-G?7pN%UzUE?JAVyz(zw6yt&ED?4!h zWs9A-Xnl0X-}I4Al7O=MBg`(|HCe7bW9bxQDa`tBB^g)~}qI6e;$lkNBN8`a0N^gR7F2|0VJ{+VO|Fi^vv@3(1#j?U;q+lD5TYh;sJZ+>R zH)WSBA%!oxMgHNzS>7E(j8U7+&I6?-+w}4O?_fH7v3c?sFM==i3XX({o1%SQ7&Gr66vWgn$EwtH z9H(0dI<0oL7#t+QKsc6D~&<)iXG10XaPjR0AcyShQGFio4E$Ic(K)RoGqhE(HRA=bn%QbRA zaFt%|&GUPFT)o&I^N)VN0R#46z&};ew>RBA+m6Rr=US9t`Y8bhF*GgfkgRFAZKK_} zC6D7vpk0q1on3v8!}hCu2LNILo44iDyK4r?vFn7%e|c%Vc?&iWnnwke$J9SR9Wk*k z`H@gd(zJs`QS-^2Q`II+nbDmofv#ZMNp^h8w!3N5j4r)?XL2l3OzKR80iq2bD4MeP z5-K9aNbum_u--K@LoBC=vY=+FTyNPN8dH%PR`RQFv$fy&iipTTIpR!^v(8r80~eV3E6>wxd$p zq6KiADG0)6{Xw%z#wVn&FmcO(P@P0Kv+5S~*@px4ib7{i)7DceUV?y!!~TYG;&9*2 z16*4?VUmJ3(u62MbuChBuy6!h7-v;wDfA4tdYsYJq4vj<^P-gkXi0b{$9KqEW}yWn z6VfHTf@}!R^XIPY=Zk;#XlTb`Y$!yj_7J2~)aul!x% zyQa4Pj>R=%R?0OpQHN02yEdJgX}>wH-KsL4)kI-pzvLR{X!-x<(VAl1LO`*l+*P|v zRW>&JUvt5J3$P)?Ne?{CR5+L$#@pyN7_g`Jt_FxIS6MUGfG5NF8PvLIGv_}Z4dNI6 zS=CQo0@UbPhAbVf{z^bLfKol*W^SvRUgrvJ36Km&I#sxYWI``Sr2KOE$QQwY5(9uq zyg=56DM_Tn8%#Geu3ip*u31A{u*MQ+>uTOR$vVvr`V*~F_%xLMqJIS;;YV$QR}bG? zfrw?@3Nuwotn2FJs2F23glK0^&fo+3%hbe@No0(xOnflT0D%IeM!Li!p3H(egV>Xk zr?$x3RYNC_i;8Nn((hOifc9I}fTeE-Xzg4M-F>Gdkc{(~qv!9c`Vkp~{pHH~CN40x zpZ282JU}do3d>%OxG%jb5V?NWfce$Sq%+xfIrDIzxTt}Em ze=ZG-?$UZo?VxNnF=&&_rmj)&xV8?|y_|W*U}(ivsBV@DZjI!%UqyFYk#f zET!%O4$+S<7TJiJV^$XnZ5rQRs|ODYjIT7fAC03#ye4e|HcFonRJ`8P5pJ5K&n8r< zAWx`|@6AlIWD9AMU#2S*AX)XGGm1a4<p08?v^q8cj8A>U?0y#%l4eGTAM5zhd_MYoCtJ~nMnjI=ba3pNUbFY7OxD= z*;+Dcr9pqhBEnj3*jg5|wS?fcmRBFv((KY=Ofm!~n`pyQ7UL(1bb*@oI2X)|ysOtK z+LFcWm{x6)C=P@cvW~b}nE%ayv+RD;0sRXtxy7bAxpwQx`hh%xA981#d@JO^N`d#j zwzSOrWfAG)+}^be_i_0Z;sCm{H~(yGK@Zq6^Pt^DPXi|Zk)Ggl50jsj+}>?GS_q>3 zY6FGtl3cRowea@bu6rNGYkO~VqwsHut_G(8q8YFLnv5?o4~YW15TJmQi1MA*f{{Ht zt)$of{8v3sRz!N4#bRS1UD;%j=RkNzsX50$bG!QVr!PVwUy z*B6q1il@m(lE-}cg5>A%BWksb9rR{7-0f(TYD?%Y)$wWQ$Z{A5$;|2A(LD$`jCbz) znava}UoCq3aU0jRht`;lAJ+zZ(woP&JKi*7=Mem`G@BnmYf$m z+jxBYxqW0zbz>hhO21u@5F^ubR1TE>sBDt-d}{P`=G3bWs0dh$aktK*NkumPL&aT3 zj55cm*=XcUo0jVk?5Fp4S%S4^<27#4@|c0i$hsbdyrl1(N_S&lh|N|&H5Oz|=hse-i-=jp$XO;J}^*kGfdOB{am zhC)ny8^>GdvsH_FXB9FiSL>*A7YL4PT~T2;VD)M+4UW|{dt!oFI6BJilTqXI?G-Cl zhw`+1o4eN0sVbE6R!i4C(Dt}!&)IkI-+w4TuYnZeS6@4PYLRv01>cWYdY=Q*mG7j* z@`I40n1Gz8 zHJDXEg#)L$7YG{t)P`*;0Jn6qN%@|I{Hl=!wa-L0(Wg2#!z15qG|=n*w}`}tT8IYLq8Z}9h+Uha z05JVFe2OMeYHG)X>(Z-)oqVgZwyo$v2=@EQdoz%lCF>PiL5nc8SW{Jb4}f5H8>C4;_M4r`s#T=-L zk~vd!ECfS<#3%>+YU0IB4O^QC1k7aGadaI4;`IH-f2&V!;vKY*aCoY@zLm!YXq)6r zIy)mRQ?315o26g2EF_`jEOwK(?6SgqsF7(Q8e{D)|c}j;-=u7cL^QRxaRNLK`YtV>6M^p zJeyVAp4&(B0kT8rvGh*nPsIEUj)uG`gguOGSG(NCIcMJ{lVmG`4Iwx2n4Rsd%woIS z#=n7yVj%22B^9O+{G~8ddkNu6@0GqFh{8l+4>Qq3X=FXR_PmlZ#*zBltM>mUllJ(bnk|!Z}Q}yiVMP4W{?=<#-g z1bnnMfeh_3iE|RX9N`MBe7Az`)rdG#RVig!TixA9L$oo=z~b`%Ypk3n&9B6&NFta( zA#DrS*v?-L7@nC{c+tI*1i#`2BS%G{7nb=|kd<89a zdxVi!%Qsj;E1?V}?8LexK(MKZ5AAAC?k*5P*Ed;(tFRT57we~{!#nS=*;#*j>55U= zhKK>K8C}-w81aR+mB7Q5E$kLC35{pS>yP0@q2iuT#_Q)TZsDk4jyn}UuzYc6GNyX< zWON%|#{L!vx3PP;eQb4Ydq2lI3^mlrzJO zdY6?0%wBJzZ=@T2iRF@Y2dO1J9;XHoa$nS%v7YcI!Dt|rgi%g`3P>-&lfol-P)T*i zcqQF%8osebCE>yf5;Sr~$Du9QL4=6XS6WF`rJ>p9J{mGKo?SB9M8L7_K?{CN*so9o zl1p*m($?tEe64$3t;!pyYcT9mV^`Kx^#@)%=xWTAP>0LlmP3%^Ma2Zkr@u2ZEo*a| z^F{-d6tA{vRby+?Zn{i%?Z8V%z6=<{ZxMs!eFZ)A_~fG2H~QvK6mzQiYi;5c>_M@) z&SRD|-PV#4;WI^-$%%KV!3aC?t%>tykS>n@oeSG^ zi3mA*^kiER4H35RvFV?7>J!eohSdd$k;vK%CWt3X*T~b2@1>BqdKOTng^^e%s}r=?W|P8c9E)gRw}bYJd=jht8f(XHl7ma zy@c}{U&AlVs9TF*WcHSsQ_K+mNrUR1O3go5W5L++PzMnuI@NN$4_J>LYn&?LIn&vT zcOLC^pEuS7;(@*`m8!YQS)fQ2eh`n!PnRIo;2X$Y2JbJ$j^hZvBgM+O&-w9&Kmn_G z{w@i&Wrt9AnvHU#L+j?jD9}G{O8MQu`nd}OjZgCU0Ts_6C8T6Ow zw50OtQRlNa^HZ?${kz^)x;kVA(;k~xn6pkEgo!6=RdS z*P8O;#is1O%O#jQgCVNXsmhAsGd{+iXWZS<=|eUlwvA-ER4zsUwqIBZsNglu3StkD+xeLIg>=}{$lV?D)Y{u7m-UTC9UXA{st^CUB|jHh<{}5}QP1M6D;b?65c!_uYp{Ep zMf_^|Gy_WZfqD;S#n;_?Bl=%!^>F}i#Rgl!!N`U{=7?H)_IJ}btQ4~!@mth144tY* zt0*HyCv2k$V~b!&IRD?=f>o6ofQN!X1y5iGaJHJYt36409;Ajg&!Y>Kk5-7tmgxq4 z1u(6NW#)9JM!ns!4rEss($r-zmt7ejjlk8Gk`8K5)lC) zymfu&P_4&=z!G|Lx2(k73#vC@C_dOv*(l$4yNI6`_VGq z$D5wjR!mff^s}5OBp<;d>Tf`MtcKGn$i`7}XV$-Ob7fH~L<%iK1nYvpm;{YvV&lO$ zvuO)cz|>o5CVr}NcNEgJ%>e|+NVm{)wCn{(TGJ|GqKHS7{qgZV@@$bXljLQE^9j1F zF}_MeDKx&v;WOTUwURFyZP%E<$;CYv>U9Eb?ZFp@sJFi5pm8R$r1fAjHSd56Cu2bnl975cUf}0x8hH>OQt)AiqEYXcFvE`&cCR4+i=??-0jK@W81{eM%(5g;0 z?K-xBYy!n%2gD*22%^DvQ2zZ5_0`Th>uT6)F1c>f{S0f3Y`d;Out2Z?fb&}6&;VyzA#9Jo& zcW(bI9rG+?5d5K4&)z$1WF2Ofe-_%{punj53`HRU4nQqgia%5)0THDGd9}V!|I;yV zb=H1bl!t=k&a-_LIR@;dXBc8F(#l3x2CFm_3s=qG&zrPO>wc)}sQI0r3zY zzuCZ(SZ>t=u@XTuPJA`7GU-4Hi!u4aPjB%SNJDt%;|2eaYlGE=D#*us>+ZiVvbYbO z*Dh+sl2ICxd)K3Goa|&;@K8$|jrcvYnx}l1HMVjD*LXt<*D&D zF6ttFVTG`h7s<2DJ*gCJG7AE%N{r_zlNp4`u(v%)B?Y*|a#@StOom;v z)yW7P(;!U+0pQ8|71*JLGxO{5Fj;wi0iMQQFhwNbI$rOgqngmRw<%8t1tBr{?!974 zz=phgeuvQGx7#?pCyc1%nf)kZmmhD|e?&%SFojVrN+y%*&!S|G*oKK`KwJZ5a)djg~Kl+tITaK%(lSJ zi7it{&ETY;?8ee;#pN8>7GBiRIR=?OTk(r+#92@;T3FS9aH@*FCG|GwiaxAML|%2i zucDf8gwJfNe3EmHAX^cRDF3fHA_wH?^)A6EIAZ#NBecoZg(G(P6x90OgCnxSm>T0o9I^QY zM~qiFg0%TRaYSvk`Yjh}92wnNA+o)NGR*CefmN zj$!n+dgZ%A!)lM8Z>thST(8s>u$lEFs@O8uVMUZzo(%FurirpHW}sUH^3}%5#R^0R-hX#ytkL?$=rHd zR3%1U_zUo#dz)sxy?}1%k};MQ-A&?qx+B6_@cy={>B9Oe*beko6|48l4w<9dG9e)G zY!{4XD5e-9-D0wpyxYBM^k&_bNb+L$zlsL=vRky{TDL>X8VqyC(|2Hp`@VAfY2JDr z?rXdJcK=U-l@lc?zDu6AoE6Gc-dqX`6Yuz8Ki$%E1%1V?s}{~O>t#9$l$vrMrqi5!9z~Dnzqbw;hTI}~v@F1)!?n9#v2)Qy&W=>0-F-{0{0!Aj zydMAYFidmT<>`mu%&U=tC(R)5z5^2@v5@Xzt0F%JHCxb|+WwAVX;4#P&l~OEGmC4- zk`V?+gT#v)9$7Ry``n6Mzr`bWQ~oo|jZ!ej2sg1(Y{6?w-GaD$tP;*-3_7R}weymJ zI;lwxKh%1H6dTY~(z^{PK{qr_w6e&>44oeZm5#Y#p7jO<*dWV%atnQ)ktJ;Cd9I!3 zY|Och`JA0bOB_EQ=+^lsVd#!G0pD{ChCGztbr+9ZZfCe8HZe~8%)w`4Du}cEyH)MF zvgb$Su?{B~`NS~4NRT4gb6S3K%g(F`Y2?hB$kg4`s++LC=s z*jJaxB}3!^L!kM6eTZS6$v>3jezY-Gcw;BdnHkXjXiWvy7$(n7Bu;aknI|td=~lFg z^&&rOWQV95Pqy=vFNaGb&T>dM2G1JbSPc%~MK{`8M3bOny{1-MJT~pZm+Hid{`oD3 zm8TaIR6T5rX0l~Y;?xgPzo=yqJwyCp&m4AQB6*hkeQ~mx+-B88`etJklEPXuU&9l<$ie>% z1rkql+Yx;!-%|YmC7Pp-0|NYga;1_FF+jcsD zDnJ&lG#KFET?5-QCVBq9wbF+4Hl;+Dvir>{+u3HCXA{)6 zJZ!ouRdvLv{Nen04YvosFy;N?!4*?}6yLeazx0=uwmfZJoz$Y&`aUPN ztI@RXCv72Xv82xKV{{!&t$41Vl)hK4o*$~?Mmy1Ib!gs#Gh-gjg&BSp4rXka^vjX8 z$Lub++!q?*!d(82Et5}Q=;JL7xqK0Y&IvLM$|E$gq0M%#O7T746&b@>!16c^X?iPu z;b4E$cQ1lHV4{WrQM(;=u9t6Pb*m@pj&UyXxS%GBd^e874_o}k(~(7!*fQq?)o@?; zI-)83bhd9G&(eW~_?}YDW(FIqOdBJchXt;oW!iqe(CxZ0k7POBy7}Tkv^RtW#t~KS zokeh9d0S^(kR<(W4;8O?P@~F%1)@naqzKtuH(4yzq#%J)%*h6dl~cONVXJ7$^QIxx z`V)I_BpcC0tc=T8+Yzq?zjO{a8@v?QO>r9BZ% z>ST>=U#c6Os=JO)k2-?Z-Bsw$mrynH9wd3|5!3ip zxC%NqbXoLz8mzFi%@=)+%E5^naQe0Ko+B7suUrCh_hPDqir>-il(BTKpzL-dirIU&-g^)XMfbMao0a1Z@HcWI1 z2g=&Ew*w83#p2G!Ge2U76ygQE(I$&nt8+`8jvcQBEaZMM%@qlO(G#X=Cs$ontgr&J z1*I*v476?nX_34-BYs-Fftfj8Qi%*PO@1|Nh|?u2YZ-B&DJ`s0Qf=4lp*1lQ28MON zk&B8ik18Y0cy9B4PRM}$t9fhN6f9&%;Ki>0X5Iw3kwrQn55avg@9F_{7TZ~Rj(tk?bz2$mA!3#ldJzo;%uuP z>eRr0q=qbh&|iSRh`(DJisANA$F?wdr&^c*Ima^pGst02*5u7Ve=T!Yj-qdl`5eVI z487}A<$6za5~vE1jouUH!$H|kQet6)XyL^#L?~8fQ22HRnS^k;2X`W_a>-*u!L6bJ zyh}pW-CqHWt@SH_=QfB=C<4P;@A@E5o!gV;|ZMpOb8wD7M13PzpQ$c@X15D#r;#<7vHnPl!Ra4L{VfM8c z67Jn1G3{tzmBh|o_s!hI6(Cm+Yeb=?s21$K&Jb{r=4}pu_kh#07N_KQ{LbPbwf7c_ zhxq**Kzq@1g(OWgR*DvKemBX!VFL0}t~8;Qpf3qU_Ne*K28sn8C<3PyBIzyJQ-UBj zd#z8$6GZ7JImXq%#f<*IS_AeQFoutlGuSsOZnqcX9a~AlVeSpM-5yNHQg)6a1B->j zsb&hkaFmZYlg=HnJ=Tlvs)Q{KAJ4vUe}j;nBtwXDdl>8;A%i4a!jC5SWPerj<1wL= z7v->xFf-tus%%aJ_$(=zOEJkNylIbR|3gTa_^RN9QVzp1VRsO0iy=AI7DFpT0(%T3 zd=JTL1_y5pa~8c;ACn@%5D}bk@s_z6hF!j{xw<_;bR|a@vu2FJE*a<1XO-MbPE}cu zCZF_Cu4>+E2B(#(U6j8=4^=RQ%+NY#C!*&|Q32Uw8~1UV?V4(a!!d&HW|WfT3vWSV zgYslzphya4X5*Eb)f5reZtq>JAh?+52F?@ID**xWC+4KD>al#AARZue^`Kn|??D?8 z-}Hd#TrH*C9MX?QT>c2T?Gr5q#ib}8c{o(*Lvq=TPf5CEDWF+$`LNFrTqpQo_dFL3L%aLLQVc`eE`tAO7$Pm{ z-(W~)I#NCG*k=sAeTyM>Q-$7Oh)ur0QR(+M+JoL;h(%2t`@$tJrN7}=5`>+SK5-|< zr!>RN5wRn$s;|om<{i2_>A)oQ2*jET8Cc@!(&l*+Z+h{wjAB+;3Wli7D;sc3C(7AW zHaOLj`>p_pzoCSZ6L-5(JCAQ<$o z<>}kEQ~D$gk-qCw(q(V&Q(6kXzZF~QqI%1en$esowWH^QWWednl&_lC^8uO|CS9n8 z7edBqV&Qur)xou%dB{hbxQLPVh6Saaqh)h7)O5po?${dgh0vKtVm9x&y3Q^`yuZ7CZDqY5Da#33qN_QC4(-ou6$@FW5$f z4ca%LnrB^h2iZKIB`W;%-Ujy9kGl9nrhKfK^FC|dHSBX{mK{8M29yC!Sk;gRPx^pS)2$tXr8EXq)k6XzOp9D5+sIz+DCk48B`;$i1>8IsAtk3nK8bckRD^)1BkeGuFJF`N zo-7Wy#93turX_E{hFAs!=tFZxO@wLkdPybb;O0Xosb7Hk(gV;I$uxSu@uB(WxwjZ& zl-#i4UX2cI|85o^>fHnft{0u7-dO}&OzzhN(w$VdLun0&{(+aFnQmlYu{yIdl*^~r zG?=ldGIPng;+gOCXd{c4-1i+N+zJ3~10)1S^%^@hgwM?OK(X>t(x~N&5g6iqljOj^ zA~jg^pRk1}^lNz#NC)S~R8Kgd)_toO{Mk7c^kT*iIfD6+L|Z`<9X#YK6z&l{t*6$8 zDFU-*WqJaBeqSj-X)y~qW_BlQQ&;FxHu}*UA#Z=v9S8}1NOK?tu!bjz?yu&>chN6j z#-`-5e?^^w+@?wYmGmbT0rsZ-B;I63;M!IdGc5>0Cq>8-aed?o;A>(yH8K3hi(xSb z_VagLBz_}~>)?}up^+}=VSPVJ$>n44(bsw<*M4fKrXoc9HMA*jNnA^)tyV;X%WyPj zU&(J;i;GnN4}6BW;Tr^|rJPt5(uPLis;_AhMv%9BmmXeIQfPj>=-d{#HyJ1{Z1xXP~hpc(*3;?{sbDlFn1xF6E^;UeDW@Jlc-2Us}jw5I;b z2Z+9cyu}KP%Q}UJUXboj3i0W?Uii797qZpVIn=e)d>8&Jh?^w0tU7DpQdQ->gE++= zElDGnqc`o-5PvZh=CxLr^CJYx5fm-D&J!RWUs#83bohmcUFrLR^ELF%7TI$A6=|By zAV|}7dUR>}PLCD~G2+8^5$)Zt#pR~9TDUpy_3x8cCW-NOxa0J`^aSKTKiXb56wNuD zenc)Zc7Lh`@7DCvLBPFgwjTXYke(XSqvi|1eXXk2@MwtwR)qf;-m9Tm`d;eDuC9~- z8oRbS17e&p)d_>-l_CP>Abc2)JK=VWR@N;&H`Lw@J){9&Xg}BWK~M>AGr$oV7CJMl z;z&U$imKUq=&C&k>lquF#%{36SdrGIZ^?KTQ`GiiCaP3587Z^MGcQ6{hX!Naa+Xep zuDn(PWC%iuoGtLgD39DI`aTNJLibpN)oEE8dpnL!tjD%xFrAD(^%(Z!mOY+A0hzV2 z-XqCp-s7e9*!3RA-}Shg!Dyv^118pcnQQ(W+t(s4`cLM_hZcK0lCzin4<(oA?;pBX&>T2X>_|Psp zsoQR~i~uyp$a5OPaZ@f-gc2@Dh!cuUi5T&i4kB<1&aPo@ptbz>(@<&5&gOIFm`sQI z(DXoAJ4-1i6tsYr5|MBd68{@e9kD6B*r}9Mr)KH-M&~to34KFBnHU__AWEj06-RX$ zpkla~1u$_we%Unw>8oSAKB_T9j0#A+Ll#&PEJLfw$5C8!3l514Hk z3H#>b9tijNvTV-&Er=q>uqUG$E>?d4(dNC++8pyXC?3xXhj|Z z)zm)Uo~c?zAjqKhsycStY{w%87PUA#uw}EH3}n5Wt)21??*W&OwCn^_wf%e{DD#;r z?;FgpvD@J6F4VoSQ*r4dc{y_lC4Br_?BtQITqZc>0@YGxZRSdqQ+ z4P+F|pev-3YYC`*e}(@kZZM}*rqFOD1YRwsAr=8aSNES0e)MhOj^+?AmvMtsvn`Eg>l5pW3y>9cGvc=*q_?pU z&k<*~sHs3JVOp(@d=v5u0zxI??cdCVI117X*oT!c$QDo6mcV;Wzh3K(yKe94svYH0 zFOH-MA`PMbBC?CABWd|tTqW=Kt*{mHMmW<>o9hw>B{Lne15_B1rGzRqH24By$((OR zTgyoP$NwFY2T?6@>>&f{C9I3U{{N60{y+q(KL0#^U}covP~CfX^l+hBtOEB?gWWCJ z6_)b6)MI{DU`U{7WwG8@Q0?AqA7GV#$QrhNfEAfFPyH0||0@fKrTa-_p-(RgRvmT` zQ*;MZETx%#G8ci{3N@Z&ESErffC?~wxTR?B~Vp`Niv%IYzxpRTOkvC z|GgE;{eQVaoXPm#tZoxg@s&Sdm1deewS*p z5*jJ#1{EHCA;loP@0sNr3tL2<@xcLl8)o_1{>mEZ25*?X&>18a&Kc;lqBkBJ8=+d4gtPBtsOX(6EdIOp3VR`(5C_YJ|-q#&VtQ?FPN_JT|a zGay=dya9x&oe;Gxtc3kTc*x9+wmUkA5$x^8Kf1+qSJjppWC2muSupI;rEHCOiqC_P zK-j7C_36LYb0cxc{9%=VNRDl1*^ffG2Psxo!r%th&sI!;hz-V_n99OSd!Kq%jG`p& zaN@q5Wdj(9Jg)7u9b7CwRp=BrFACS*B<5eVb@MeKZ*hGIBy`3oeB8t%EMfj>KG@Zo z^K_4p0Sm?96+8l6{D_a3sM6_P+nc`NL07)Z3`Dp#S2wbqSCkN8EJoIy| z>%iUvEIH|VAsi|842tHM`F;J$9j+SYXbq!kk2^;+Gy!`}0{4!;;sgO@!FxnyR#l5< zc9{U~0ypNchm~S2eb|vi}8aUBqZ@bsBz%sHI1omWjO*-30{`h zt)~YYd|_;bB9b2zSJD4tw*a5H>6o;DTzt21S9;1Pb9jahnDQuj zK@Ll9r+TaXPa19}eD>h7x>6bv@WL5BquJH9YeW?Sn#e`p=Xk@&%gCyUAue|F3+K4? zupCinmDA{en4-737SPS5R<3w6F5lZl0`ARjTI8ZR?24kz;o;b4S8slsTr+E!nb`M0m=z13F=zkkI;_{*2bPMoE$7E|mQbHA)&FYmFh-(YW|OZh@@ z^v$rh_>4VQWfWHb6%IKlTq#~VW0d3zG{ZA{lCQ*g&s0|Wij}V z`LtAv$JX&fZgWG*d)o7o+y0PV`Xwd1BQ|{gxbjd$lYI(!j`@q#5EsAV{k$Ehc4*8+ z<5XHWCu-YyY@_S-Z1LS)<0a(Qf_OJWd#uMZ|H9CPKN@;b`3DK%2R;?Q<}ROK4XtGC zhuDVRxEdu^IrZ(t!+9^dQT*qob}{heU*QZxF(iI&+X9L`aHSbOnT^Po%UQ5k!PL?H zo@aOqZI>%ASo5BqUM;{Q45oUe_3Mou;%cg54~#dD-$1zM-=n&&9>uhz-}4sM6C`-) zMLkRgPh)BrqQP2T__eWRcG>FQSWFs;77^Jm#OtOsi5K0_gGo>7z6J2g%^7-*26ap> zRF6(RC5O5(+Qh4b@(8P&hg9&<)*e;8!wu|G&riH;yGQc0JJAvEwWH?Gdx3r=)4PeI z^lw4W|0kf6v58bNT@d-nFf#zii4YUtTYcPl@~f!`PnR~4?x}7nNTW-|OuH-`UCcsh z75C{%AC}=hnBT&vjs$_xre996vY|-TNZ&L0a%s?Uii^_0#Ud;XsgV+S>=@hgPR?!q zw)KoPm0jALt&H@Uip;VyGt36^I>%m=6eB{#TT{M^3W)WZRX+`L@~BSng+@*0jzMxK68 zQ+(ql$X-R%+%qFC6w=`lOljM1wV73enU=SB8_!``ll4%=T^UDf!wee!PLKbIu7-Xz zbl=hd;gdz&K?LL++>Q8r;_nmo*6Tq)h|t;dl-)#biCEw+xzt^VjCA}}OI04H@~~Py zCdV^FfieelO@=efFf0ki90RFNEE2M|XLvUZTw9hsxp7P7m$QeCMlE3 z{m(TiCKG_!SD{R7_CCjieOby!;lj8u20JhkAb&N6=wD+XLK)-Yy&&poKFnibx9XAD ztpzfS`iA$wo|Ems#Oi}8kfUU-Z2|?e>4Lr1FFNn4jWiP$r&cAbzP&g(AbcRZKoJ9V zr={fzXA~}EikrmryzHM>Wg6%L#J&-O#+nQO32RJP6UKv_G-l3Sa-Nc2_I&eUu7H!tvk}W_? zu%EKq^;iN)Yb*f9%+zIfi~zwz$tBu|mLT==ulH$E2up{-4E~BPPLxVrq8V}1kfBd0~_7DuoSyXXiT2GU2+U>xhBGWxSxx8wE^>)GOR)hGa zavCnVXxuq6al5~}{Pi`Fzi z{Ok}b<| z7G5TFvxJyiTisd?a}FI`yaj;sCggE+ziu`O@ZJ(U1m1a~d)iTB11~LlQ#}lqpfnj2 zfP+W3XF;tN`RFU?{$^;>LBQ-euke25>sJ;mu<9YSq;N)$0v=Gl%7=`a_jY7%-Hp zo(W_$qd)s#;p}jJOHKJz>wz#eLR0B&9=8_Em(MzJAo&M3Bw{;B7I6e@2<1PqZ5vL< zbC?v`M;K@-x27uLkWal(g2d?6JP@y&4$8jk1AI`uov=Fvy+)_c_EPoQU#_HIy)5i({Z#uJl`hd% zps6RQq8Hm!Spf*Y6qH~gk;F?$cm`_Rbq&31(IiC?(YO>ugFCAz9ni1k1ud?}Iin|KlBCzY>aqZPgiL@J-cvct>Kv-`(cU_v&6 z-b*H`w+W@liK|}T)s>KREQne+vESFXjEx3pJb;GC@8Z3CMZ0f9rN|Tdi=bU$WXE7E ztcCmT!4H@;5quxx&}cz2C_QHSD*ms|(qbR=bS2n&4QdHO9DWh4Q~r1HBQEsAoXjUP zoxTp61*+mmDvuv>%sELf2kjgCXzdh*2OLYBdrLmH6AIM=IFx!L^vMYCAh!hLQ(Rk% zEr%t2ws>Xd{U=Cd$admC|f;8E9$_n&x=3kmTz&!QcBaXYRL$XN!N z@CZC}8ZN=>{PRpa+$?M~sQQ|t@niypDh1D*Zt>161RuE1cj#f1&Pr#81=69YBPq1t>hTp@-Vgwv83 zbVcqe1sb1-7M`3IbWV=Qz*o)GVucoTAA38>8;qMtbuBh+n?B7a3&pnIe_=`A6riP4 zi@mm+)Yn3^$U-fjhj7o{f8xDD{K#@(pqezfDK~VtF%t>QYeZCPnqW(ukDDZ&18&~? z+_i|#w|qSKA%*N=&!R-X73C6dpp8ttAw+gk?o?ay*q`izG^4HNFxeswgm}1E0ojOK zn~fLb@o1Ir%MD$v{9#7<|NArgqeyczdTDa;ZKB55&0-L=D!&mRrWVyf1*&vo|Y++g__;5vA4@-C_m^gh{a#CZJ}aG z2Kj^%QcD86Hz6L>TX0X7LR`W4`}ma;7>uEcEfUWY%bOTe1_^>n>+Y3=7<}L@iGt|t z{TE{`*-kTi>nUwQ@S;NBG$14+{Fv13zW>5o*f^wMAk^)>*R-LtT=eZ`{MD-ybMIX? z?|4_ab=kb(vbj}SmCY}g>d7k@egqgy7t7BKjg4qSZ>O!i4{ZVN=n}}8K=*xQ9%vFA zOIlG1uU9tBh1uC|kgX2;amEZ=D(@VEs2ro7MH}f}Ou;n?3hAOhE}=7yF-U~pC){{G zm-T1Do~yBF%<<9-r_-xNABg9HdA+v$oR095m`3 z-XS1eaTR`Ja@c{45Z&~v1&Cl462Z5%6lP_$X@R&NtBiT^dX1)1|5 zsMHbn0EMj^0|4w7sSbYt>=S~HvshNq=yv~3-XNCajiU%f0HSgTX)%u1Fk|ad4^?px z*>vGT!F)}28VH1{7!<$PO`S!(T>?E{A)E5Ca(j1O=6zZVf}u<>p=6WXlY&kcB>PnB zF)^U2SGh@zel6loVQ&c5jubq`xQsk++KC=Ke7z2gfZ6~eoy}OJDlKT*98{i6? zp&N){qkU?wP7BwOjzU&Kh@(-Pm;ER1LU$#>UGAPVzBJFWb80Vksv`O*7@`fzeR3EQhv~h=llwJMX}PS=;3kOEkKPu~})| z8z6#~{p9WRh;?kI_>xUdv9L_NJfDH#_+`&%w!7{SnE$7%3nMh8$Ytt%*vK%3Fn@LT{>A5M62aP z49Xw6`Li(ygiI3UIwE6q846bXK`&+j z5B_@fi9-BJ;vPTQUUTiuzw{-MJLEh-ei{qtg{myo01lp)AE8^`LxqM8m><)3lkwin zo2)&}QfjW+K2``OtuD(iR_t-PVoa@J*4|SrbDl2WgU3FcWY|Nv_Drzhof`$^8Kwmahx7oAm~Qgy}Q~W;=zjkJ~xRDSk9& zi@rT(`bVKB&WclCb}7fWo8dhG_?ZtJ;URc+vE5{#yOnP(-8l~l=7Rhc^PnCbDd^Xj$72Rc zqaUEP$;I1j!WscD@yYPXWzi^b`HV=##j;A7ozpMH8|E!6%Ph$9+`)MR-}PNJ;WFQs za?~X`$@(%9PVL%{R~ctt9GFD61F^Ywit)w1^9ahA9C)Hj7yTpDtzfQ)-}fq)ptg@$is|s zvS!$*WQsC02F-`o{?n}^fdbm>m8vtV<3=Qv=Uqj>=15;X&w5mbb2f1HY;WaR1`JX1 zB{bPH8EoW`Bl?IIaos7(v{@@a5Dd`Fn|ce;6AAp85}ByQSD2-Ru^y4mHq6?N9J5#7-yfjA9-SKF^W zE1E*|-*r9doq^Sq!HcSbk|r_xeS*|7OOtc*g$+bav8x6RoiyPn;pM02oOO9CA85#H z8}h~-cRYUVt;xBgj^j69?`Ci#@d0@J7C(3p1H7(ov#|9RwqY_-=taZ6@>?Q!1gv~96-|>~}PEUCo6ZFw+k}g%GMgEKOh|DM1jD8sC@yRBn))yRR9v1wu z{{^Qv{Svn#n#QW;5x-#BQjsG$7$*D~zE;8xx23=#h<4*Wz7kc-mzU2!@W=uK7eO;A z2PBhthN*ZIJdO+n_-8$;dkfz*KrM30!F`gfh4>(B1Bw}hA0|yYb;)^Q$!u_Wc0Wz1 zR>yR!ld@M{SvG@ws+WPi1OF10QBdeHXO}La=5!>BftK%R7t6#ELyEx`&@C&SPxvl8 zgHa>R8|>{{A{hLZD?brz!DUVg8A@5`A8dlLe!s8&Lw5T#)qF`Xs(hR&RVy>8@*Tf^ zh;y-uS)LU62v~0G+i=hsEsW^8S!_$hOT4QQofVVp8EkqqGTS5vr!}M7)LoFSX8a={ zL&aakt_AE;9{*fr@}r>(BCn(o7@E;LN#XqJ&agT;G_i4tlLAhyjKCpLQMa@2rn0=? zJX222o2OGOIH@xIa{R;>*U|bqWRJOTJ9?1fDBeM0T6hj2ak9%7h>Lr=Q9)gC1xwy! zD1a`+ES@MJj0{`x7@tAT%~^DycWTvp-&Woka@MXY)cyoes*uP(8Yv0;yl%KcK) zK{D}XjXkHRwmkUA@6{Vv?#+>gXf~$S?nvUkiP8bDe>engCm56zx#N??>{VnTUVR?e zoHiAwIoFV9)wzS#WH%N}4C5!~#}^(;9G2$75Xju%pH6h8mwIVdY>z@IyflcP-Qwaa zAW(8pu2XyqC$Nq~b6juZPCkrOP(CYuez+s}hR1zbSp^^`HHgGk;t-52Vg*Z)jui7ZyV>D>;N~87qB^yl%idsiwsu`32 zUe7C3nKT}0!~8cK4a%2$N5f0(cv!@ah?6_>9?Q2$C`EbY5+!M5mn>w}CzWT103Ve% z!)Bpl4U-_pe~g#$%3b_2HH4DeWaj;ZW0{cNDD`Fm-TbQSaAm?XL1d$`iYL`v6|FEr zPu*3Oh`M1Mh%}hs*mJG2#=o-q}T_G-j*z3cJ%pkVOElHCh5_JAZpuaui;%A zq3P@xWjg9k^MaLJbpUZ4|9d z8)#GBZNGRQCksB2#0Rhb{lc?>qMD>8iIZG;Dwyx>1n{xkuxNw(LFoa0fhp1`wD9;B zE%<3KJNjR~w*QgQ%@uuuOaE6dr|2PrSgc`5XGd;n{s5fX zWSHDx^f{-9;j|d;7X)uYj*VksR?|j zuM>+^xr&wY%qnfmVJero?h<~KO_ew;g+v55r!w7`vuFyth|CGU7Mg230t(=ETs>w1 z^q{QoVtK2}%p(MkD)PbPolq!`+y}`}FJ@bax$RO@&m1qAq=r4|dTH-T7)*oqlz-Bb zj4qf0+N$(JFtW*fq3GaneGTCHj4=DvjF%3xd1Nq1dcb{J!>^#|5-TWAYO3p}i(5#8 zVWUe${pibBk@Ms>r*%ZmKx9wbv2+Zx3X$79`UN5%L8RhhxE+E;LmZzb})8q^zG_X ztU`shOsfc563!Fzm4AaE)O^+W4A+NjCws0fEW%@Kgs3{9b)!jqh3ua)VaywKM4NQ^ zj$Wl>SB6#Rl;zv`Et*|78Jf9r(ymaN8;H;QkMY#;?DWu3KEn5Swo)}F$5*egh>(MxdWvfRQYT_qN63)e)MI+mJxU1C{KINuwQVp}su8haT=Od{y;z_$N zW{FIB^&)z#;p8*wED2fPPlmb~ECYCc0}TYiY$S7$|1Goy-`+PZC7}11I1jt}bE(bE zbec>&Zq!;csb&5!-CDRPp_6Uz?csfEe(Y`l%;|z)Da}w3jJUMQ-M}_ckq{)KVK|(k ze`_0{6@O>t#-9RH6U0W|Bu8R*4a*y5cQkLnJ76AVS-vLx#v#@B$+lm!dr!F~m7_kn z_?B0Yg#-2?E~1+Q2Xz>ifRbsu{h-~4cO}?_f7dh=mFuoCFQ)B(1mia;GrA_=<#p;YD?vX>~ZZB zfnqboo4uT3>?~>M7SM^~Yl)J^)Zi~$h}I%FTm-D%0dmu1LLT&qNbQl^<=Q8J+_@~; z8#eR;ZEQIq!$o-f$|r)WZ)9k<0bfL1ZP4b1lbNF}`0b<2Z-3yiI?6B1Zy(3I{L>EP zl&FL-aD|tygJ62yk^-V;IzpSdLbSZI3=sILC)x2(+JY2WqE);oup-@1o4fc^7Ebk= z+fN`JFB_y_xhAha(To*|D>aWpX|)Csas3YI z?h+KksknS3^l3B=Dg7+czJX1zRD$HEH+J!)q_%c+YFiFxDg)Gw&iR5Mtt?`tG`2{W zlqs5AmG(7;Z&HVtGdP7=LAUTl@g~7W?+EbgCpvZot+$erL*C>K8ns^-gE!GG4NO6j z^SgviuS>pO4NX^l*wu<&tw7c@FMfExr1)3RP)7mI>su`Qulc|wZ z*4H`eO9~>-vd0-Ys4<&kEm@mK)?+gn(<410v$PoAGN<7$hzc)=dT}$nHSJU;-jw8r z_ol zU?dQqb@FmAx1qIGbS2VGj~^8UuC(MTK(;NMP{%pNr%;ec*>G!ZuLDptwQ} zx{wwTu9_t2slrlAJgVZwg={poU6>BYz^vjK=zp}o+Q1c&grrFe2{J535LH+S0sSBL z-n6NWo%#QML7Xa9vpk#`4~}CThY$kEGXex-8!%?))!(0Qw=|yd!jhA7&h@+NU#W`m zSR=Jsy{pxt;Z)+qpd}dy7v7h4a2MEu0ps`e5Qorol4H4yQ2BF85uWe5RP7*XUu7HD zrYkKgwz$vL6IGP4R)S{?q~_;7(vg7rsSp-y5?rJy7<(;KU*^@|1}h@V$f3}VG#c~` zxX>u8J_HH$sSRV{JKor>3HXrhfZ@)FSr#-lurxt8Je;CyMqij72PBr}H}_@&>Cj8| zbpfmwF2W@X#(*7l3lzPy=MUmI>~^$p+_Jq-I+(NywMl~yX#}(`0jTI;ORfzo?!GeB zPFLS_4}wBJP%_-dsdCe<*cJk!&lkdoE(T6-ZBP?H8Lj}tL2VC<%sambEgHkF)++0Y zdmT6j{ig zecr>NsMl<{{;g&@hZChSBt20iu&PfUf7eb(-Sede0nD>r& zqrJ20tnL_cR%ddXX||r_HxkW*+H{QX-7zYYTnN zLgSm6xbHmMIuij={v>vYR=Tb8(@gnP7c%kLzA*3jyIc~!wz^i{zm}a@8l~O52;J{X zNXrww!3zPV-CI8O{mkp};UnqgCptmkJZ2XFh#9dh2OMvx8ESF(SVyI?K(G}*Y_G9j zM;FI6z++a!`ns1PdGSqvgi?l?4qNYsJ;;1D%=+FK9f&mR3nCzNe_9K(4(L2uMDc=~ zVdf38?H*GpK^)PpcD%nE`{5<(!MxJgfxBX8vSDrG@*-_+RKNqR{~dT_8{cNS)T&S$ z>%e2KJ?i&5RW(k`+U0apdN!P#kX?kZjK?3iPn+dhP0v6#`?Gd!YjZstdBn;1lkyCV z0ru_;hq`n@^ct>c9!J9@%8cqNEc-b3qFqRpe*6%#6<6DLZR-grL-TQ->zvfVpR!xO zcOINh_m#j06}N97Q}Mf2mx(T>H#YvB#m=r%4*sg_k0?F+z->lMA*SmvZPXjVKchVM zTo2HBnTpCrsWfNSLEnyNEkSGc$XNE`VUW(}IWzNMrEur5PfXbj?I)aHz^g#cHVkKn@1DSU}U%rWL(~Lo%MC?QcG&H?)+ct{u|5)T5nS znY0aWV1@I4yo5W<)dii-T`0hq8)EWvBy@qjbCta6DQ@}Z6;*At`X@>(JSY_eqUk--XlkKAO6;w10D zijTVLUNFU5q@F_$^ET>38rq}k~f({MON-EIQr7A!t z9-}$x(TzmaTeRg>0Kl~6QhJHqW%SL_A6D1-Fs$xL*!W)jB1Z0JSF~kN82Kn^?Pw#Q zV13tBzu49JYqOr6e7)gEq?f|7`Ddei^MlyZ4l}+okiFcrY+gJ^x0jyTpaqqu*G{&( zYABoxYGX4C$>dQ)^~?cOTRBUfKB&RR^wwMo{Om9LZ@0uu_1l8Q06U6jFm;9P`1r)y zHT-56+vda|uyX*3of1uCIzpzW`VT#3SE};AB^Z!6)dUjBKK3OESlNvtdm6N#qGi^@ zQF-)PlX-sX0>=S9vP@4+d!N5$yLQu0Pk0nZaDsm7ViGm@TX#AA`eY%2Q$7D>WSjNq z1;n)ae1ZiflBt3OkDzg}%B4;B*fQ!4KV9(+syt8+hu*_5^lat1u=?)kBR7l}V^Mr02Di^i= zX`iRLo^Cf)NPx}vc2dUxL~2nrjlbP(3wNWHYG&w82IPdXTyw}5(Z|`7S=RgH#>0eW zN3o`o4Zas%MHgw`5OWj(S$|{}0r`1)L2@D)*&vo@n%QX{_=X>UUHjnf=YlH;3gaGd zjB0W+n0eARn2v0L4r;zRVnzDyGo^Y0?*T{Ik-Epc8TTv$YwX4r8>RRBXaLEYHgDj| zth`xru#R#aclTX2xA^MifhbgKS$WI#wa`kSFzGM^*^ajXd%Ap$@Z(2g6hC777=CgG zLpV3n+szU&Hj19UIvZPtyU$Rr7QP?{O!DkU_sYqE^`LE=mznR$IC$OW)rVD7IbKiy`?3a^xiYwV#%*&XZ%55dy&9zoN{-2 z-ghSmpIuv$K~^S(T;Yy+SU zviogHKWF*j6>=ER5&*1!I1sI7tG*0gTFw}bP>)BC{d$@Guux$We$CbUd0O*7+IY&$ znj9Ww;^C=#ON0sy{Pc3{O2jFiB9^|gaamDn+`8u&?p|GK?IC6%zk%ZLflICXJ& zyOyu`b2=ychqo<;7T<;+K-y^HWwIR3J#qTUyoo{T;>n4J>~`}N=MDLsi*+FF__F5# zjbBz)#hjOO4z$BIO-+W+J`n^yR2zN#O+hSrCwkAq-`h25%}4N0i(PGuSj&Oe>OMDi zAY0iMO?R>JW^kF%%P2VfjGX8LJXKUxL_%5lfi$C!5 z^oDDHAi-ml_;#oINs`{>>?rj{NB1IoZbDCiO5pa2;Or$>HZ$zNne^=MdX<&lmi5rX1H zs6(yLeZ?b;bUoq#Y4OOmgOt`aeuRcpE2M+9YX9|=*Spyl;srcb)meUnH}uJW><_A7 zIzIuHbioETJ`yPimrb|$PnRKQDeX1BYgccuWv%zl$w+l8To!+(G*N6;w|l&o*n z(sdS@{^0{rmx_x+U5}{ znYB!_v`h zx<)&#QZVXj)z^dP$6Yw$UzdLBi;P*eVfllhtaIgLS31XO7;ty2t=D;~6~u=du`Oe! zx}RFxvY)fh)nox=Zzx1f`61WrU& z*Qwi`dH-V|<_*(6E$k?@g2(9SzAguC+{eB5m_xYUhc~83o-;)3!$-nNu|C+&q>GO0 z+7_28BZgrFr3S#e;lmDFK9 zrCM0T&EqI{$YG0EL-U8a71+Xf5YfpqnNA1?Z^mml-^cn7`H?7s&j03@gT;KC;%&Rh zFYEp+{mB73NrC>8Xo{moeCqpVLz2Jo_571lHjsVkDHo)^E3n*oG(dS*x$sFR?Cbh| z#vb)LoD1*KQ0nm-!=E=->zgiFKdK|{H4=7J!$NJs)kH-3fHeDjV`NZ$3b`2-kU_{{ z?$|M@&Rrw+)8tV7es=)15vwLw^zYCN!$<*|QMLj!N6Cp^I#o3VLiuH2GRrKNrfYn) zU&EZQX#}3buXr!nX#5%{$^1NIpENQ^)9#UO$9`v`OIfhWJmh+&0P{MZ!oqX@WR}vg zX0mUVnD31%gaLsy0~#(EA2VJBT2u(bShUCWM)+vk_STWva;Kr_ps>1|EZ099dj~+d z{zs&^wDLe;Fqa>WH$S&1hOE(hW`86N1H(LqBRT&<_kzhjEENA3Wu?k zsSSbNq<%6`#d4WVXAMJ0JuYHZ6&#M9C1G7ZU-%4=mPnW^cg-I}qop zs|mXa$WSCi`Ak?34(l_zmU$U6R!lB*GcPwf-nB(O53>~$f7=v6qIoU7M0lcqzvC}- zk}u5*zH0e;5FNjF&iMqryXEgtta<8-Y56Iw+K+)$T|@Pa!<2QAnDA@UH|zH8TH;UX z)M$qoo01>E}!t5%j$mC|@#!)w&vlTjG%=`2GCw1o=ug8)VzbFx}flSDehGH~6Av{r<%pYyz z(yC^C$TWafb3A@6RY~m8>mVPV2(cD1gSvQqLkG=35FE(=abMSPN>4me2wP^qeQBNf zs@k!rm~3q0g`-!i+WW}7!gdRNAQG6{*h_DR#tZk3VvX7A|1^!VTA;To2Pb9@_TX@< z1(cKdJU#DPJXD>~nSN=S=emGSQ~TCP5w{FH}ElxtgPfci=QskvJZL%WK)%9-dj3!l}gTIZuO{ z&`^_7!M{_as3D@hv^uL7+4n{CE)ZhhfQ`2D23d){nM^ThQ4C}?asQe@sxh14_1(YL zS=&wHXFnja``0-U%WV1Mr4se?CS`27V%=`Ilt7@H=+C#oh@{Imi}jum=IfEQC!<>c zHZ519`D~SE_LeOC(JOXwr{aEOg4#u8b8pHWJ;2oB%JQ^hK5*A8l?n4c~rPYath)ykVP)Q zrm6n22V^Md30Hh*M(6%bn?C4FLwwJF2`{n=ZF^BAqYJP^N;Zi3(B8d$H(lUZ&;pt! zZG|xel#pRA%AUz^Pb4!qr{xFm{U!s#Od`BBOL=Xce|4z`QZx*JYZ^gIg*L@_k`Qq` z6{|Xx1+30gH9$jN@d@!BsPt;NJE`N)8Mo<}cjFlF3!j=?I;*}OEnH|N1dY`@7C3A^ zAScv=+Tied+>>0@<=7zH{p)%mrQ*EB(H2^} zn?Tw~1}%@dhSGOsH|tcUFOF02wUoQa)Z#Os=g%XopIf}-R`TPNACI*2XMBdS-$5i98l4(-9OP2*N`h zY*EVv#@$^;mJ7B!Mg+JA6CL>P#!6t>cTY$45InR4S<&lyAQn5L4@`bIlzt;SQjSwQ zYhwW1ZP6_QGhW9};dN$YuR|+6&RMISKhUnrMY=Vd3I3+Ni}0q@ zMM0gFFTrCL!uOfDUR`5K+S$vt+(y8Wf^XWvw!Q*wTAdBhtkx<{c5LxG!wGKfa{bvh zYtAqOPbIYxIU8y3&USs1k(I4Vu8q6)sT~wMIl{ToRXT>T#bsv&l&XHmav<*clY`%) z6Szzdar;RFJ6U1Vg9A6YRYY7@SqRz;(_2J`;9O!C1rL!_e)|Km`WELb&bdm%tT&m5 zOj>${=vVWtu&@_=N*CSY!^ZxI9@o+#+MtRTXkH3=UjIjnShkzx`c{3^#qe_Zx!&6)ZbhR z8G8uYCrgsqdo}|sN6e|OJEVY=8GxV@bk8)z_if}toA51Z1T6(*!tcQ{YrV0h?6j)WU* zKZh~jg~jfc$x*8TGt7gpbq2d(V&yws{t&fSyM#%!tuh-dRK$IKBhYW3Pg@m2GlTTl zd;p{_NZoTmg`v^Q25waSrW6{~gP>wZ-ss`2bR)Hp`(3XnkavrVWp~n%f85IRE3!4; zdg&Vl2&UFo2m@>wEhc7=XP=NA$kfVF)H1I1V`~9Xs(BVnz+^V+569Ap9zuyH9CWr4 z5kxdl?=2C!G5iqVb&+H`^{b4YkvX>4SxaFz#E=4wfWa5u{5}j^9`=}Y;UE$#TTU-6 ziHC$M7b4ol&ez}nd&g} z#FJ1QkRPohRCIVJ8(|QdB*t~ofNO32E-#14Y8P0<@PJI0L-EL`zAqrzXhqJ7gJUt2 z=Q>8Fx)R-^X&Ya+MgEHx7dWf$MDa9B8WSztN{6Mrik>dq z%v7D$Cez|1>ma)%iUOX-Th2c63j~g@H>mJ2fmfSCR1MNbyN; zgyRr=N=Z=Afw0leFmkqWX!dasI9791)64KZaDElobLNOtYu?v&$kyg$-N4m(vV9W! zl7u8iaf!dF$OWUvxJ4Jq3M`nMHr4+ia^V37k5dr)6oL84@L-mQ;{v6)#Edsa<`lXq zykuJ(rS>5g-uAz!OFE1m*8Hu zMNERioC!|*fpP^Pq?zGaq<9vh5MiWwu*C>Us5t_89eLQ{NH)rU0MI6^!pQrpkfXdP z`)|Ez1dp^3T~5V59EZ(S3!s_vcWOFTJmy8mktFCNsos8CbIsHYBOPep2=tZ0Az_uJ z68kTp{pIk_3V|*Sc$RLB%;cC30f{MRQcPSG4}gR?P&M?m&MahrffJ!gRpXh&?C=oO z(s9E4yC|ZkN|4Y2{6{G>n9!Q!%z)UKm0A{XDRJuz?p{8SYW6uSc)WD{AgsHQomj}Z zyAo0Z-3ZALQ{yZ#I>2rKuy|tbCypZ_dine0v}+0@IpD5Dqcez8E)3?Khuv0C+WcT4 zv;F&BCwnKIa@0*=QAeGYIzEmW&0nohlPL^54w|XOQH-U{j9TIRiO>83V9^cYWOs_S z5c3Svtl%Kb55H!Nimv4;>ugM>$V3#8L-JOBEf+-9yDtR@NHr_G+NER2k%0uq@9fy z(?tuKe#S5%U~4yfl}zTaKPVxA--K8!)osjc^&9c)H+%JfSAV%>>Zv{9Rc#y~jJ{_F zF0Sb=g-hg3?Be!>#H$L1XDp6F32}Ao-2>iz zVRi1(|9p8Q7qmEw4PTti4-<=nOvSNzX?1?~(kEM;ua-@5YnPq;dB)jSiQNM#+`@r# z37Qm{f103O%?f9ifuQ@71g+4}izp*kaLG`1AB$cLkv+RfowzESIo%10n;RwLm8@H@ zN}c(#1ODugu7z-~1b6d|{5nLb;H}w`?tYKgT+*3z=!EES->X93I)t{V!zKb(tL!Bd zfnh3dmW%tV9JN%gLVZO!3t`i3Rq6C(AJNl?IHYsoKZz4!MvM8HYNv2oN-J`~@yC}K zc`wuLMsun19~865cvIGrud25z`8vtMQbKAq_~?|f_K~*;KfNq;zi~2{U`Hc4wCzkP zdX;7FCR~VU&$nx3g?OVAqm>=c7z(P;$s!qs*(o9Dxft_0CBLDVPNN@DR!q?|2v>qj zQ_CRQ_~6QFy{Qyaw9qp-b#t{42`l+#9a*;_xHq6|xaBfcHHVogz*j`(j@>1poP}Mi zdEBcg61NY`_FhXbw$04fHb(Yb@7q-~V!Fo9jl;+fxL8P^?CZ4>{U&z5IBTun5=tsF zlVnjhDdyX&R(IRv^5_16oMX#!%XjWW6!Qk}1}M+cTmFy*;t$w)ftXNn9FnG}aX-E1 zXA3x*opZMT7dYjlfH@aBrHQVOS13Gw5OR;sE9p$Z7Q%9cQn{;0;m7=PyU*qqidKVk za@_>S7#oP(W6y_yw9IV2{=f;DcR{@M>S3~uWKg2 z&9^->-rJ!1Hq}Lpws8S&k^v%E3t*wMBd(eOst$uSInjR%_8u+q>;av{cE-1!Zx6kQ ztY@ptXK_K@0Vyh(g{-aO+Iu=S72Z1cyxo8d?P;@hRYHaqzO^psA}ZLo)U)doBhd=J z?FTMWp<3~C{lTtJ^c;<~ukc%0V0q%sav+j`YUt}!yNpY0>5Nk|Ac{8mj*R*J`LMiz z)flpI^hP%DOEJSzk2_{pjHsSO(i6Qio70i?x$iHu;3met&mMFH+O{u9EVt$rq6uUA zZtSg#nere>;EqwQ3nGvdKct?IysO%G1Amh&Q;$pNJc%e00wpJ9HM?Tt`ylzHSI$Ug z(D17Ja zF%txi^NS{)ykf?fC&j}!mFy}%);W<0hdf$uPoXy@{}3lWvWW-O!2)|oV`7zaG*#0t z<@g)fhHc`h=AJM6g%r(2yOuR@-&MMKDhewFV#{7POzRRDvP`~vE?IovLs>DcjbY47 z%RTMUYv575-Ot%K*A7hzK*u&%Y#s9+Lr@j=i#dwgM-V%bGi7faOVjCl89dm%Uf}D^P{jKfMWy#P7D`nAHwEdrf5Zn9U9g478CRW2LXx}6s>GX z8&AQO6DW3Lu+>E?8m7bpB`75;ZQKB*OJsX8hmgkH>BqsN2nh?yHO+$IAy7u7p2*vp zXPGYe-D+C-vG9q$0vAFWMi5#!6Fo-%FY+%?2tN^u$yvS^3iV|;sfdBs#Rz7yAip!I zTA~pwEuJr@-b0k3W&xcSGPnRb2)#*3BdhD$YcG_#j^tN}Oy^n`T(cmKam#Dad!3Cp zctj*qWMgrr*??cX8F1%>Nh%109>k=#3D8VS-FMIKirHQLE3@-V_{z3)iQoP)z{Qp` z32Nod>+**Q%8wenPEdcJ6MT36kD>emTDf=wt;kK7iSmmq+EJ4{Tr7X!>EidY*oRy? z%6jG2FcUgqZ>DHFEvm~?pT*-r!ccG4G@$5_i@c-}2yv_5DMt4VeIhp^im0S!33EZ{ z3M~k4?=k0SHvKnD4BIRM)B>Q)`sgn&G}pDzbz5~u6J#N%9BEA(aT2E$`(vnUg3-Ch679Au(xg;74p_0d>QUSloj3Vta7`{xp|Z9e z5x)zT7At@?mV>@L=5@x!Db&N{w9Uo%=dDjCSf|8!R5ee1fLnqqF2aJ36W7_4;#h`F zt^(BJJNW_2ww#b;v^Vs9lH8mQUUCxL5PX4?Cfo#XUoj4Zb*B3Uv0O~4Z)MKyXrom* zI(7=xYz83(zgXnJP297atZ`LP(TD!x+B^|)RO~L!Mqx`{y;-BNeeFk*-0mlT&#h}u zjGJLtOoE_$R?q5x5QImI^|Fn}IgJTs+_b0~$&qf(R%m2wI2Fh!i5wFMlQdH16v?4L z7}(e)GdL87i|Z0&->w`@;#8)3t%eT6 zKKaNU1w!RaYfx8OE*X5K(@Gtkm|&dsbYxf2s~g5y&H8|kmHJaLqT>+RBH@Il3+bau zoy8G%2OfVtV|GUb_Sj(hZu|bKX6Y}E!o+p1-&6aaFLnNleV!{)jCZNApkb~;^J*e* zb>lxw=uXvHn9u|6G7k2wz0W-mrtP(=g71n?H?$YKssTjM28L^_cwG9LU!j5H2;8~1 zZrtZXrY>p_9eq2$3VSolY)b7W-8w|^otrZTsU=lyU&r{fk1rTFd+5JW|AST1(P(g=}sVFJRw%*nNBCfBS|M-qc_n{8f+`Ucs=8Kfof8sGS&9R|qDj{!UpMuMU~>8ezqEe-&ykbYEODPV-tf`1`zCR~mpgy{5A?w7sH6Deb^w|pH zhRoREovQotd#S4cQ3$KiM>MKUCh2=i@T$z5^T|M zo;2L4$g4_`8nryitO0~EM`JC_d7kC#2D@FX8^@iT+aJg=e+>~K#~eh&WJ2JTkeK8D zRq#~cKCFd$nV)wIzCrA~llhy0UKGy+4>J<8Uz>_YjkTtwsW2jER^2!pJ4-PnHi>Y( z>nmJIu3hqdDL;LOiHQ+%Y%(Rfv_(H5d-%+Rg0@Iy<;6q$r%>CNxuhC({<*|gXX(gK zz8*aXgD!*QRxF-8%^RL=S|&(axDagCU`DZJlNJ=7ddYUgC_r0+aATpe9iqjb6R>u| zHaTp=R*0d%K_G^C>8-CV;{$WX&Sxpk(hw@Twpuwi-v+Peqy~e2(j`#>Y3*q8$1-Y| z_TMWlu>j#Z!y4KH`%f?1oCH!+V6!BOWUh=Z8Rw#vD8l@hb-+-37yv+nWy_e%FJ_!R zrpsxcoEoEMX-=!^5R7qLLbk#WO_o6`qC>aS$@r?JH-)LhV-iNbnXTyC1~j`$TPqm8 z4UV&iER|Js<;*OVHGYuU!U^4A_f(DY>T&47shx*?tY1@zM)szachJ6iV>P|UW-AQ1 zCBATnwW94=XN1N^!TtybN@aHQ@{zs#eZY@8HJM$Ygw!XK#fIg5Dz#+F85q}jDJ8Eq z!_Aw2W9wCF#&QOxi6qD}p*;}oBzyg?W|U5zMP`wLJmg!JqSIotkS%wi5Gc%g%zZxv zj3U^u9eji7P_(~vJEA1qg1{8w4<1fRJ9B zv5H3mp=DfeJ5dF^{&oF(4G#Jdj?I6@*QJ9bBO18@3l_JfLRJ}p^ z{B?{T^6ievkJzy45BWC5#0u&7&Qv_^+Jam>6>ooJr(1uS{qqO%@FeJ>jiib{o0;m2V9ha3}%yo-J9jcY6S5wZx>Ww4ZFMwbJ9 zGDW;M-j+;Vz)@Et>qSreoN4zb7?T_Gl388KeE<+EmfrYjhQwG*xGPdkKhU@~UI5a! zOYKR}NCk_OF(LU_z%EnLb2BZvIgVc1fj=w$-iUiNljHg3b9ubU7Vf%~5hu)42InYL zR1107atEb=b*!v`JT6FV6Bne<;`F&3bc}Oaf1j0O;Jvk|DJZ&_mt1f`eu0kH6hl#-Z1zlW@Fn|{;7Lx22WcHi#&B8Gaz!#yF2-ttKc3~2+=Ts6YA)T%I4ZrSHBGQ+Y#LS@E z#x^a%-(E&dgriDyI;0K;I6`LQytKkjcJinM;mWc9JDIlsK|skjij2_9LO~cS__AQO z$bFN1?MZ893k6@CHHQ?>($!!w4g3yC5^}LKkDfyEThVbztWNQqvDGY^UZQWoDFPD< zlzTos$xO!0Z{26oAP-JSq(?sA%pq}LT)ES24(sa|60{38X} z2;JtSSF`SJ;OL^J;>$gSQ|PX}hN(kx`X}yZLT_1NuDq$}8q2JyW}hBI%Rc@oUf!o$ zi>Q41Yb_-%ub8^A#9^=~*m|h2#L`3w&%wV`!n3dj0&SOTL)w`lk210Ii^%lTOWYf0 z^inX&;KZcp!m&}R&?nkg4Jy5Z!6(A}%Ve|Y%}0tt*w_RNTaJYl73rLrPBcrm<@?G} z1889_>^%yZX=}b#Z8`KzrJpLDTl|9PQ_l+HX)Ob*PJ6Z?;5ZGJEC<1l6>A;BQ8r;z z#o{4EwX0+fN-@%A;_U2SYjw_1ET^IlI)HE>%Ip$p%QxYMdolDxb(rltqU4HSncTt9 zTOFGo-M{~=N$uaM2m$48ulW%`uhNmXI>0&mYmFO!vPT_bd)Pj`upb_`?WQ_Izhp7T za#Z$(dgx4o&6rEbQRN=5?cugPm$J{v_edrVao zl380~VzOduU?yeQmwF%%gV#=n@RxeI=2Hd9y(ri{yQb3UmWHXD=)kSGlS`-gL)9+5 zoaHuZj3^C3 z$gfii%KMycF`(S-@u|t8M0r`~5gLmbiSAr%Z;+h!vK}34LNAoZBLK$a9@APV(&Kk$ z_5?)sD{RO0842&G@pWreNEoKp|8>d$2ty6L|6nl+n?MCHDOU17c%0zvJs@Q4%F!jg#d=eg}qwJE@@S7#uQ$&S*V z32d{8vp#f;Fg3Z-8m))Opt{#uw6vB;pktMOqRZVC^0K+Ja8cN38KCptR1$%~MGeD| zZL}S*FD}YFOaGN>S!Ir#P}o*Rq@mQ4q8ub#0J>Tmnea~iaMu*ePskZ+rzL9v@a zQ`&u_x;EJl&|8ypK3ecAUJ&i5lAg>dyh=U3<}oMuP8P3iTl!#?)I%d?3;pi8UHi1l zSjlepM6Wch?gsYwnD!2C2bKd8N;^ZKe_Ux!jdkggqI5b8?QbU^bgX~CV zJC!p5U@5(lw%cBoSZQ>iWiHKBoq*PY>nj%n@@_ zDCnh(w4_p*kvLB2w~$rug6kVywl^)X;sw5YPK^dqFGr8ZvQ<9Y&~ zsW+bO3AwrlB56KahC)-~Mnyt^$OL)w`eeF~XN8cm)emP>inCq>iWKb>D6dUtn6EP( z1444y>-3V$0A8hZc0S1L=FUu=<<1+Xr75f&@kxn^UWQ+cn@dNzVFq-Ip00#nt?lIQ84w(Axp}R!nXTJ64)dW=R>E|~9Ivu8L@a`u+4W8rT2>u#l zq4D$2D)42Rl_`Gtt+=+T-;tZNmGyN?wOo3e z<4Lc+yvoaDxNT+E#1F{aQzXR8ad$QXGVy^W*6=B(dm9HaQR^9cZZ5e?xC=jyifQ7^k#w3NJid-ox{8%tHsd6(1V$YI?M_tS+P z6!TeS`r#Jaqa?`mc36C$wP0V`+gZT&LqI7 zghi4*b-_w=OQ$rn;?Rbm;P31tJQ^FlM8L)VV36KkA~bCy1MqG3Y&guemmHUS%K@i$ ziA{bI$UcPZ0$hT-Z~NfcV!G%`#`o45L(8l5IFPxecD3a9D>C$eXm7|T7k5+X0S>iu zkJ&Yk3LDU{aC!+5Gu5UtY{f6qKg%PP8h;EUl9&fRm-5LTVz<6ttL9OoOF=~omg==sUb;W9{w zl+Kft^q@uw>%+>_K+{{hrSj+Q|V0SCtnQ3(DXVXgi8|A6|VeE1Vg>e4| zkjvu4yJG`Bui!u}ycQ{-+;~SQ9|j>X59d)NNC{M!R|NG65r?FM5)t=43WoN=Q!HQX z_k2{unDKE4#z#gDJq7+VkrvEyF?HxwqHv#TNqQ6+xnR}6%ag2Hk;zkY{4GXhqep;j zzITp+<-;6py-IToy^dwinNO5;6GokJwV;l<>HP}N1+XOydt&yU7(Z;=Sy-o%BQn`S zvcP(92@;U0aJL1^Ch8W%#S7JBePThHjn^R(*yLEOoaqlgfm=y0H@zpoUn>B>Eel$T zSg+NDTWP}R+^i<4R&UJRlgaO>G57?NG?LnO!sN4`%a{{|VRDUWDH{aig9&1b5FdkD zNmH`ikYH$WU@2UO^;I=b_KQkn+0MdZ(9zhnUoHvA8It+(bqSwZ<2(kdanl?cyZLlE zT^ZVI_U-EiUwBPh9@)3e@)zebLSIL^2wMk4tR2(%@+fI$TM%rv;I4VOF!pq1_dPMD z*sSY&lO74f&_VV1!4xU@Zr6n4Rt>4RUaLd6+3)Xc))OZsya`4Cy8VFbAhDu^6$tVZUV8>*j$y*US7nxVATNZI$+ zXKNkT$;QEB2R~|gWRNe1V1N!c5poV^q5_j0Jd%o|whxw)6MuECBSxd2WIvEg~-=TZZ8GjFSve&h_ zcnj;Hu?_tBSK$|sHvnKSSHogO>I{t(M4$sd@@!0E(u13%;7fCj|rcU4H~BW z-?@ZQ>Hc>K@~3k0q-Ec%k`;+WK1zcI6T%Rz?@u3D?O-8VgG>AelT&JP#TRQTZ9IV4 zB}1=Iv`&f?Ci!M~T`=MHo1zwIh*&d(^t_w|$itA#9gPgNApI5!7-yI6S+>xzxa6WEc@Top-Av*vsuKx0t`sF_SQuDMH0mD0B z;W%WtT)1l9yX2EDnhV$!mMl;}G%!me?4fsVJv&*x7<0HzIkFXB6Smb@kc4Km;_1HQ zb%s}8;3n96?&Qut=TLQPC%n%L>%rl9~3UBq;hMaL?g%~R^u@g4AWwmIvTG-d=a*Wjuun*8#W0h zj`bD@J1>&JIHgKz`I!DhL_e-X1IqAX)U>9MBU76l&pUm(RoURD5FmwNKMZph?!eli)0_=YAP({M*i zT#e1N;EK2!ShB3fD69rIoa+ZHg#W86QObHGWQaoWtjCxhY=T}S5ro0ICl7^l1@UaH z>)7%-KuVoeiEzGozj<>4%qNL zz$!!MYue41`qXHmx3v)w+udSQ+=;csLdy^;4RFP+n>S;NdiE;8f4N$ z^SvP+H?W;j?!kmyp;F2s%#QqBgdEyxnb|1GN;|DwnF`z;Qo8AJ5|TdR}LI{5HnVmq6uq^gDF_Jwkw%N=9|aPxc_14t{&9P=H&3)2or ze|%c-8}^u2_HBbNB2Vaq%1d8XaDu~2*^VxSFkLdytodcxh}}ahckElvYKOb~Y3;{f z2*OX0bfdX~#Rbkiw{{u5{+5?Y<;zz*P*{O_MIoQ;6AAwG?89hZOT=n9S!6@6&Khar zJ+@8r>k@PiBzKe7D2Iou51@bO9ue{D9&cV&LrqB|WOiJ!)qRkBRJ)cd5-s*mwN?5Y zf05&tldp{S|EyNKCYgw=h;DvqpMTul$ql_7>r^7SG2WXt{)-05-kKMoXLOdRjleMh zxJR8Agi!FEe}p3lNYRq-tn??5vC{4*4pGuKam)Usw2c}(A+1*#Sbz`Peww(svA}jPp1lC^f*CdqL02kC zUH1BpjTppc4(5ru?9Gvd8XwYY|0$z@{}0c49#y!8C4^zl zOu&Lj+mIbd-Tf@rsV{fLjt3+;6%+{lxWTbDwik117fNiNr(4d$qG{PCkq;ToFpIET zs@#@{HO* zL(i7dt;}vQjElEii4m0iut#pYIo(K(CtN&dyd`S2(DfJzk=EQe{{M$Cg+G_lXBKm& zKoNbt#8YK)BER80Y&nQAMGyNfErMj(8!*oMHiB}YyNlf^+7e678Y7k}*a}RzZH1VC|%kezT;Ka23tAU5`Wa z0u9*=ikf{lst$~(t<``h`sK>o4ZYn(Y{yTQX4tt5?JlS|00r1RyN%~X+y5B{kN*=* z@HbIv2zycZPoPvtwB-|)BmRUjdnj!GZy<{uw80Z%ce^FAJL780#(r>Fo)Eafyvx4n zIx=QF<+D)hkP`0imce_N{MuXmrXzkCLH_L5_!7`?HsqfvqvX|n{wGCpbo)boiR`56 zhSD3vlldAY2{I{{p~gRK(yGTlA$$M67<>oMjzyjSCH^$C^ItY%r3w+n*@hyF^?5A$ z*L6Q7W5W0{X+PnBq6q9{ZPv9kZjLbDQDNIc8sA{r>|}{8U&OSmzwARdBogZH8x$O~ zRkC^Z$%FCw^NVGh`)Qnew#}g%CB$+xCw@^PfUX+G3s-_&>*vaGVTgsjc#{_7LvVwg z9ToecRFJ(=hRzz-a9SfI&kxi4dy6xj=WCuy`r7K$$efYArJeIOd3N>gMJbwc!55_s zg#yDWvIj|e7RdFZA_8QA5FyxECK*9Qwm{#q*%sLd*Y|Zk!RPKqfP}0WFu0Yj{;;1n zc?`@)TjA&U`iQy6v*F$RIa?#?yO~&V-}cTeX*}hTE`2M$bLADELyzwIXR+V#ltRhO z^*)V{%fmq}r%R@pzu)-?7X*TYnk|AA8ZiRvYfrG@dAkXeUxk5vtIS3g1az@~x$ZHG z*!_GEp&^$3zCH=i>^E$8!+j1p#@T8XM-pgE;8^$?Q3SA)oCvB@hstL4UqS_0bDt*D=g zGK6%-Y%QGIis3`eloJxcA;=;+Bgd4{hx{3H> zc+w6cURuK|8fxWF)O>fz%=;GdNUMKOpqRwD#qrcDirNSb?SC5@V2i-S$%Kn?Qj>o~|O7czY47&JY`qa#MJ^AfC zohBzpO-#^Vt}rswI7PB^)i105-Ts~rk&TZ~vg0cIL%q)dC+ZYK$cMhQ>clfc zZC+p^X1ypm255@pm^D{dHM1UyE>SnFk!8=s_x!c#U|e*;CXrsCa56agkD>G!z4I27 z8e~k+?>3NT^$7pF(QI#OVQinU9MOCSQbiQkZd#8cob!ekGL zxS^xjm|hCvk9q5oZP@25X!I?zzolFk{1pDiH#4*!a2rcJ#!&(0>{~6tZ8RF~3pbQA)pJi>4pYWEkbIq)3UYtp!B z+^&7DYV_T;&r(FbtLm3~M_KJO|4XmUIWTmArGiJv|GAQFK}u(ZaS-zRcK#UEEv#0% zEvW!4oH0q*?(u!YN-9RFbup#TdYY)Jgao4YBhk-~{F^pvu50N*)^XlAQ!K> za1XYY7XKyI3N=Y(T2`a9C5A8+3G@AJXTiixbQYYbqU06;Es3CAp`+x=*dt(5 zE)GB1U-CDqwk^Ny-}%wfzE$2yb}!k_Vex_kuy;ng4uYgq%|I#lAEL1yk~#Xlxdmt(vd~4nvY??I6a%JdENvH>`Ux-Z#}@Mev0>I+xdX8rz`D*s38uy zA%~GSwgurz#Ws=jq>}5L4deHI|Vi$Db)WMWK(p4qr7IutwDL43@@M!m&O%uRnBFEbHq9azDRxD zdS`xq;$wYX-$ zl05u`s0sg_@*mqpfM`Jwj9+X{vq-7(-Jya|dV^_v#PNE8+E0t!&_105>0Sv^OS500 zdvTip{SxvpwMWHW8u%H$jn+-$?wWdGJ8P6Gq*LDY90l0DL9!o*DWwFk-+oI;c*8S; zeOk0b>2;NSMBMYZ6RLM!JE)yo!aX+F$iVohIuFgdZNPu{!LlUH0~Dauz81Q3~Sm=1M~~j{b0Rpcc_~#@=Z__PXT+zQ&3%f3LPiqcUdb{f^Hl-E)Io@ zgMf=LQ4IkWPc?&2&s0M|z7Uy{V?uRl%3)BZU}D>FU}gE-8xxxTt6f8P97?-}Pq-~2 zl*Qn_tn+CcDQU6n52pjSEb(NV05QvZzua@!^j>e$t`fZlmhH^*Y|wT&8%guW0$(5*x0M#-FXUksCq1d;wU;!$ zUD@!V;TjLA4y~LK4m`4=+=0YF)a0*q`~S)QC&Z5xtZA(V(<9zwK%zDYLt0BxfKZe< zWrAhCd{Kvcp~Ht4I;_3a;X<0-)~D}SnkWu5d93kI-?6l7vDFFz3l&Ddm0cEl5;7$w zTZoynpfKiVS{*y~)$M$z`tHV04wE{w4N7ZjE znT@+QbKIx;eE{e0EE(^L5quwAN9yr22Fh@J;Z`mZ!%a$ZQfz#$>!TD`Hq&#Ues??j z_(js#&+7Sh`#*A2&v!=4QUQ9a9GUdp$9a3pldVr<5GBZ%$=`!@2vNpDHHdZ z-m*Vi%ppjTV&r#?6j1KA_S~@cdnrBpU*aKm=hK7q}S=5BvuEzp{J)WZ|KP-^mI>>yMu$! z)6(G^dh$AM(>>j!_0HlkBsud2*qln%xX4+~bx$C}eDJTf>4EWq%WVHKE&jCa5RSwo zqTf9C4VrJ;tm=Vzf$qOAut6iyK&R}D)NsY2T}iU+^EzKR>s9v4SGbul(N#NHdyA7@ z=(GIzFWXs!FRTb9`wA!J=ZF?`3l!YX*msbiIb(l7vd88z%DcDT&kZ)WsAt7bIx6^= z57I|Q5uKd*#>8#MR3<5~7}v|5vzo7w$;F1kwlca(ZJ##XLmDsuVf|Wq!5;_7iRN>h z@L$%xr-?v0=MyBH0=P_e2=UWjFhth26t9C@fUrs0WEiTO-T3UsKQXW_P00tvPrAl! z94xgPRoGwvZll-ct=CEPc-xv+8nD2Z;#m|_78KvqLAJl{H&fctPC&45C0T6PB$>Q( zOjp{TNGq_|oY5j^#>&7S6hDv2{wwe#oP$k4rd*Pa#6$EiNjg{bU0;RVUtpYAy<{` zPb&Oq5w37s^R%!RT1;RDxg{!|EShVAsriJ5YJ>zoWY57}4IQeNSpvEba_k*N*#>-J zy`ott+6^M_?Lcgnf!KN*5Eo@2E~kNTz$3QYWthU32SFf6rW3=klQRD_`j-_`Wgc#> zfW$3xTOrYru;T%M8HJ^)VA@!mQeOq`m;8G>r+#2$o3s^ofh1&*QnVlG0n6Ec+K^PV zApA#gRaac|pG5G;WuD)XaA5)tj2bbe^upReEBT~@wTNe%X) z*D>D@=VC)8e0&rc9ZX%svdQiyb?R5MCB&I9bX+q|&rWnSRLY9Wvi(Un-Qf;9FgP0%7 zoBuv+fZi{`R!g^}4K~yKnq*;L=v5Qztd9<3msZhKHmIg#0lkdZTuRGW83He^m}Pz= zzEyt{WkGTL7VdD@&2N0WrKP+<%T4ACvE6v0JOJt(a1A>}5_gj=JC45K7mv4BL={PA z5$_iS|6E!&>!9&WO&754mvPs=s&BhmpyPYnXif19@q05Y{KDp2mDbIEkYR#&3|BS# zi50t=GCAfFgV<-X!ayeBdEzwG^O~xSb3Ts%H(RC2xIF;T-gY8LC=tx7q-ji28coP7 z0IT1)Qj$jdg5~o{I0wWRvJC{YbwQ*IY0(-Q&iy{?hQHR-8yIGZe#3^*t;gB+LZ^Ty zdt&ZF$|{vN3WJo#cxcl8iL&bPI&r<%&)J*y00bciW7G8+JN0`h&T zQD_HJMf_jAd&+7U1w!wY+iXU%L97ldaUj*N&(!-?X=GZCSgRgw27#SZeGn)8q+_-F&iEOX6| z)_4keIB;1+9=L8+k=Og^L-aq+8{*UmpAopH^7Rq$lv=l`>F=8H#CqLJA*iSZLZvvb zQDX;F+(uOdZ4hapwVROFvKv|+CyVy>LS1=x#6X3y+s9c7lGLm>Xh^yz=gFuEGUoD` zKc+1^FclLsJ-JcWtt_X>FjvCdRj%j>YRI6!uR~gRAft3y^FM538k}~`8OqP{Iq^_~n4_Evk$bWUs zP9w>ht$O`%9pAX6C=iRhd)~C?H$2xu{amFd2;@L_TI+>7ejua-R`rWq_geVniC-iE zPgWrysroHX_j}+uOu%Jd-)TSE*3#T;J5{dwe%0|aD$n3VWXm!f23>INBK&w1zF+Wp zD%0UIJh-t3`QtX$+EMaooj-Z!t1YcBM9eib zR~;ShK1r)g-#UD zLQfa6bsO}snj<~b!=|o8Y9xz0j}0s-v&z8>iy`aco6!jdp=1dE6qMPO9ADd^5Ceuv z??afv-bQr>R~EX#JlO)FlT!d3I9;UerK80yO+BAB<9 z{F|U5R6#>@;DY^R{ujx9f$>?^k zuIsR9gux?9yodRXD)?`2%Tat=-?TqIfvY@e54m7XO+Yag3F*i@+aQYs3ivvLHR$Z< znoj^Yz;wVLdQ3g#>e!A^pI#ylFzYtbg=bUx%G`%V6f0}!vTHzX!SX zC!XUg)LM$RQUMx^^)1WW+Iuj%%YI%eMJvNgC_!*&0AL##>a%134N^IMTMM4amj<3h z@|^Jwp82esquX0zOeb17m@pJ0R13R%qyY$)1!F8Wp za|W(jMzfb+^i!t2iodfEm#K_)8Z@ERMsit) z_gTb8wxqZe@JNxfJh`Yp)b9ziHj+X8x&FXkwkrWN5+C_S+STm22g)F^tL%RANHT=_ zO8lZ-!u$j$K#w4_@F+WRf!rprX^&dTT6UhR)Rq{5|FUPh{;-3)2#8G9I~=RV)32CM=JTC&yBU9Pk0Fo z@2W8+?x7Xz>m5^I*x*Xh>LIxdf>yEv-kM2gkOi0IvSn68%T-mcYCk+(n`AssS2@2+ zLi%lXeMj{`WEBD(wBM#(Y<|+xVHKDM`6Uhs8R_TX5>uTlemK6Fe54JD^spNX2y!f} zkZqsw4YG|n^=GV!oaru~f>=qLeIsHp=Wo%;DRdZpG7nv0@I7(-g0y{g3K6sw~l|z z)O0*1``L3ug%Feg3up=u9F=EmuV*6??!cSw_-THbasFTy?1rmnY!f3f-)q>gIc$bG zT!uN^fmyfg@13e!4}3}w_0z}ji#?Na(Lm|Ll3K)JItU!?6HJc4WEE009Mn*lKIgP& z5vbtV3vW8A(38f*h`Kn*g;k&AC`|H#7mkzNU&j8}6oF3>mW?ii+D<{;i zx_wAh-W2O(S&cvDUp3{%w%t0K{6%sq&Cqg57vXMHz^Cl}L>>h+d~jx6Qc@UN@w=QC z32fLGyjaLZt=baQAQAZ`emPt=I8pNsV=%RIE<;7M;u|X%lG{!U2U|8kyr~L0Y6|ht z43dvWH|Z+m%^!XPxo92dMWdkIm+Kd-4g%};07NwVjhllHmwF<7e8nHkzTE>Zy8YG% zW^ACN0iS$7?3>O5-j$7Ov7|fTZU^eUm?UrB7%P39aZO zA0|zI*pZzBc-j$wHJYzGBG3_rmkqwsOO4${Gca2rG-dLSJx9n_;d_O8k1D6CppP^Jn9j2OYwO^L{@Jrw9^f|D^Zj9KNubii9 zAH-JPOmg$Ku=D?=E5-LhF>FJWTeJFw@n6EWfs00x!%}y`I#;>8m>PBfvABUYX$oG^Qg}GVKrFzo5&m)*KHh{LjY6B=ww%7DZ{+uJrv6nB> zRh;EK`CyxVjpuxgufjqj@V5)D-JeUAlHJ-wWpW1dgCt=72nA_BOKngCyVvIGfLL8P z4P3kWfu+XGW!;h+W8ELywSdgn*H%!&)tkMqyz0;b&JY8x%0|PAH*fgplR8{%2s39N zb~ZwP)eE4pn$1P(W;J|0b2Z3b+ z_{Uoq@60>Ijh@GGBcI;!GeV1fru%eZO*ZcqXxK|On_LQxDzVTycA3~fj+)MejIu7b z|3$fVDzUX`q8gj2LcPg8zMx3m7(hA;(P&1);G+iVf85t50`Xb6xBXL1_mA{{2WwE- z84$GWX*=F*cQq1(1t|TQ4>M%cUUExMY}9<*83dRl_=v7IKR*butM>EC$EG;s>*G=- z1iay4$1C1M>z+LGCiG-mpx8DHWSr~UR{70}c?5ePnF-(W4M4|FrT=kyc|4;F0$Ao( ze(zySO584}`Vi5rB|DmJF^HsQce;N*!#0uIr0!cwY!8WMm)X+>6U4^(Xs)K`cyq*w zTblb-OLrz2e6~0W`M1=Ec$-3`X}HLe*Xqs7Y5hRDzjhj z?A!-p369n&1lYJuQMm`nqqTY3*?Eja4q0F+>*&E*I!w_82(xE0R`!yo_OT2GD8&r4 zteY>I!l)y(S+3=5#bX}WPb$n$N(77A2sQ<*r4;Q^y5yPx?&1Jf4r9X&hs!*~q~Fnx z4K~8Mshf)n-Sne=qoYnVj2>+lfG4{PW~hA$wVn3ENY)UbiArg^z#7_TLv^2t*!i<9 zvze3jrfaM{{|?rnNZ#2;JMhuw8+xsqo_kmOi{Z5eKFwu@qgP#E>~=S->-HI+AVd*p z`tvZ>eix5S9WK!k%ZpJSple58&0BDmNY@XD@m(J$l?Dw|JoXKnzS`GkK0kzYaF>Vu z(zd=6wB57N<$n1oF7Owei3m{G_}o$2;o3EgAZx5+aH)66!H>4R-4t2P_!HM6J_W$|Cn1He z8)md6Ei08-mQ{!9x@}$yDL!EhH$a?}O(0i@zKl-&3h0<1OfT;BA%_u!2=p)h(wSfV zyDM|Ad098ad=KV_!UvccmuU=y+}MH;C<)>(L{D#bgp|E=OK{v33|8y=8#hfe@>F!x z?PJ_0y>*dYdPLTXoSzv97($cQs_RRf@CME2_i#hrash0ILy{efI$h`>Je6>5h`j z#aMouMzb>nCTAvapeCNP8VW(yk3v+6s>jIK17ImKHmNw4fdqPaOoxsG-xEC}ly{WW zTS%Ln8)Okzml&$*H|!do%5Z}u>@0`e1khJ8Ua|JN_4twp^oo>RYfE4fg8#hcxxm#H zkH|y_J4UcQblpqWct=rM35OqBpJ_r(5FpeoO$otqFuYv9clFjeTaIq?DpMEevN=x? zR&K9g5ZT0TJW9Ta&?85MP-2jN3RKG3G|E-!8bN(og?h5h?QFOo5J$YNEs^}os%^mO zsAu+V(dM9?bd&U1J|NC5P_^|cx%ynjvN@wwPlFZh)?;vSop~Y@PDNsFR(GBmxrF6v ziyE?c29~SPinuQ`5yBO|qbMP|3{x0WAQ${1i~(R&L~|#RGz*b$e02_fH<`#OIcS1% zAwU@epaqmR>@u50!bf$7B+}O%R?c2BGP1v^e+W65a_c3F5VjE5b6NyU;0Qh6?grKf z!R1LI*4Q2e0u0gV2~pA5j-nz&tG`r*bYuHAyf5V_p029JeCIO!zR9PkW-E^8w{mF4 zgDlJ@YV7A1+7#M)dAiXscC^56tTvM9g+^z%6xOKAA0q5#0}dd)EUw@<)OH`FK!CTn%sR(J zz72tf@Y@K2Kggc%Qm7CovV3lMQ<6!%$ZP*)#UWt?0~v#!Fq@{};z-}kZu_qAqde#r zT0mHe%4my^9+)!^V&b<6w^DCfP2}bay_H&2lEY6SUr+3=p5VM95)o!0BEZ+-0dO== z!7%d?)r92vNnkA90Z<4aD6wrhl)Annzg%X?nvugz8cwMN zOp#!q709jQke&Y?L_IwE&R-ymN4~xbRf<7l!j~vD9v*)?dj7W->+fPD5RdOm8w-RL zL#~N>Lg9mH7CDubAbKqy+;p<>bBrs*r;cT5spTqPv{I2~{V1RP6vmtQ#g}N}w+qH& zb6W;``~~7HEb(5T)CWFG;%elNOZT9!ZQI=3RM#A8b3|I?`)d6T7d$VqWFRmHB9fTw zB*R#cmx8-oenl=_;9_eQ4h|QT`P+4~yi822nt;ECWgw7*@qDXF+91Y+ACGMa z67!vQWySnoxaq=cuv?={_=Y9*dTCV8Ia@?w!@`aq9FdlcG}8PW)X}{g^kyxT04dS5uXCi(7=E zn>*8jv73@266uuLz|XxJ>Wttjy1ewB4IpBiYi@u$xt>Lf(cNg4jnY%M;&>l%5 zJ+cYOC zTvCT9L0tG|+zhc9eJ4vkL@gJ>EvTLGgZ_z>!L)xit?VWG-B^p(*E(Pk3KnqDY?+k1 z1-^q+eK&TLN3s$fgK0rm*gHYaYy8=6(>jJ-frgD>{DlskXkS{SB_>G(-LW!vt=%v1Dx&bTtL3Z5Kcm;ex0&f(RNQBrb63L5p-T zugpEhAzi;D$5((@qu)%8m|>UnaN-4p-aRh~az*4a!*O?R0%Rt}X$sUIu^ zg|_h1nJ*D)k0S|C`!(w>&71G*gd(hoqz99e{d0su0ND(2+0a`Ir|C`WmSVwzZkg0& z^LfZ5yKq<4mw#J6odK&xtxfWfugP!Ffz4?e(qP4jK*HKias(U13Q-L4J_|fmr0p9B zTgQ`pq}9o_{%yjZGoe7VFH8t`R}<0&0KYw(Ay$Ty*m*^) zyaPLI;s`sJa}hJ2ETr5dVknNIoFo|s6TbPUN z`SS_Z^0Wkc-Hbj7di-+kobbN1|M}9K?wFJBkzP*D$?LPvozpuM-o~Q^BV2QtNz?`A z_nJg=bl(})EGKMUSbDpW>{#Uw3b|2nHz056xR=oM0GeD64kyv%)!*l$Y5vkX-_FqH zuP^;!)YWt6ge#)(=Sy>XVon|+9Zk;3qj_`Z^p2%pX6Z{bZi_F1{nr-%tC<{+a}o81 z#a}8G|8^2l|Ha~e35)+ccTR6u{FP$yRi>??IR4z?-_Kb5+qsKx{4FJ3_AbyY9gn?F ztJoL`z2>B=LQX^E-E0njg8{q-LfkTZoJ5FgQuCMRvP3cN9AD<&(~#~2%@8ZW?SDZ~ zehRk4>Rig=2a)_sVr3mfI$JzXBGRvrn2W>tqB5+&?`X-LAh&CC=R~59NdBccZ89fk zi{;5VUGwVo#BRJ6JJ`+d5S2r?C8S4bqT?{57=5<9{Nq%2fik_Azo9sPh3uDU7L7sh z%N^%TO>C7jiJDFf3cnKCd_zoQLCXVKo>7ZzLYTc0)A((fv)~EtcKw0~h|wu!8D=JU zr1UPb0f#1vMXDGbZxBgmyzC;WHaV?VeDeA0RI)8Rz&z=%P%xtiL0_Us$}8o-%ndVe zfKS5bB}O`DN-m%_Ca2_9=v?9O4n|sL8Hzc$#Stbl9jN~sm?E>f7)7DqGNxYf?B0N> zeu1g2e-2ZR6-*WT8gVw$=qhOWPpLU~+se1UWC$Gc1os%~0&ab6KPZwM1! zusF_1i<67LfwG(1n>h7wp zxvHys(3>_cTYf)*{Q-V@1^o0X_!+^EW8mjH$Ir>%!_OV~F_okUX$C_-lHQ#Qy&C5Y zTxi=>&xJa6Y>VZejZ-s;-cjw}vL#M@XVoqFTWbF_JPbh2wSK^*)wt4s=70GXy;kYp z^RjdEMHQ&Or}QbS%~e^0RwzYjIYP9Ip~@ZrDN-|4kls(}pK$Elbb?qXgW(@woi{5m z)3)`j!>M#jgotw*uTx;7OE{m{5h3fQx*sklYmG3IP3a&Py+#mZF8U!Zx`6}0^cNJ@ z-X$4WS`8x~rw#rym~qB%0;YJ`rNLblsu9wlUgsFR^?Ss@ZaZtCJ({g(oDpm@hWS4O zKt4*Z3eX5i@CuE5hQ<*kX3OvAn0o9)q@f-^9JRK$jfN}u@vv>JFEK_~ZVvo7A|9*w z84;Fy1%6Jzk3SxVB?e?a>M`VmH^io+MBIdyFtkv?kmsaoF~q5V8M4E?t$8ry#_n?! zLn^_VPih(c6&N}KLv9Oa0QA$)tD|3Uma5J$LoiP37?Zrh_)-PqBOHSgE=nh>Ksj~20jQC@aaH1t=?YLI?@AdTS9G0cT~K#GErDoF2VE<8SE=0XNQznHJ*jFINTW64~&tKet^ zyN_WmJb)ud##I$Z?`JObz>!Pq41m|*XrxG_qiDfg=v8nuLVAoL5}&}43-p^Rjz);Y zSNJY>;K+&9vilhn{fL5B`~c2-e<+SiSv7 zsdgSdn0_68#t0wGfgh)t$0~l_FMMzTetZ**1v4o6(e&;t_-3QQP+q?&aRrUpztLDT zPkOjLR2$P7BlS4Xrg*sJxwwmKFeLn*0gSSD>{UBxG+v6Fpu#z>&`7u5JoMfE zD1{jz)5eH`Pk=?=PF*Ha@+4fE)FQB63^}|$Fk+jD{+T(xuHkHU@ z46@cRPS!`*p(WuHK9`cSwb14Bz887C*~rchu$RfB5d5kkk7-aVFrL2FV37g>HgQ;h z>l!3#pHHeNbQxHSy?XgwL+k~yUIWdfSGb)a|MI;l(Zm?UehWBG>}OSg{uQ-^0)u7z%L2h_kh5%Gv+D6x^F# z*u2{7wF>U)qgfFPWD9d>N}M=`6*grvTA z`=^mi1BNJijulCi-lvoNZ!lo@qpRCBjEk7ZDqwFGF?oEayi)~uYuKk@{ndAG$f*qm zh}frWzG1e=JOFuA;kgRXhzw%zJ<73koa@Cud1)3gOO8bwd&Wv%D_&}_Gg`QCvw?)x z-Jf7*F~`pI-^0!{*a>7xxLnjCDc|Jx5-x8(3uIi%awv7#|*TjgT{3qY9Kq6l=YLSMcE( zl;+ZFwwB1=fTPj8$n~WD(Bz-s=s3sG!r#Nu2{Kg9{TFZ}HzbK0mugl07~FWu zri4zfZpy#GjSHFKakWsV702Ml^PJKqt3bUUH#WeobK?nXeXU-sl~|*>v612E=1*{R znd9gPYYWZw(wOA^a5M{!f*Vyba#o9|DmOZM3eMyJ+3qze|DSZIoudtGC?lC%jla_s zwqE+zc=m2P4hoJOVNPpTjyj&NCTVRA=5;L+ZO*lwleL0pbim|^CeAWLZm2XU5udYE zt-7p-u*TAiu=jxQPX?hbe>D0t5G^^MgE+C{KWWcOUep+gz$rlVEx)S*>1clgkU>H$ zw_@l-_;v`GoP*?7yE(49kyorQ=fDz}WB61vfa#m2`|nD7`QAR&=)FAgP@YJ(3gi-b z?7={ev6plCUOrZVeDhw`Sm6gTx%Wa zD&J@FW&oUzx;%MMXW=nI0~3Jhv^iS^b3|yM9?aTcp(AdX9>K`4=*|ErB_0QZc{{qn z+94gH9s7+cn88W%%4$U2A+V9yHq|n&Vd|a*=6Il_nUk z@lm98pFT|3<&>Ki(ZGTi1678S`4B7@hHZZ$Xs}DA*(y>1G(Qz)I zJmeY~E+@TV;CWqY=C#$`kC!ju>5~g)L$3b0V5x5GR9h&}P(w)zH`n9`#)QcO|E^oYr z^c8J5&JomHQWk3rg%tw76_R3+`*1_do?BtFn#E!3xcs zk!Y#EyIn*vA4}?|8Bwoo;J7{E?^(coeF4uSS z^ugn)l-KNpn_qP^y>TZ*nAyc|)RG!a=&RbhH*=~92KQAJbqh~aLIwXs+{_yZhR4&t zb>qvW2}Dt@?kE3_T#{5Uw&^1aQ}+EBjJvUbqOYXr&UX!O$9z{?x<*mhAm6N#DPKcGX(#bR%%)6`BXc%Z*VIRkg} zK-={OI9b_7ADkYs=+jb}6v7u-v-ApXQ#>JVEXqdsZO1K-Db%oBktL!Dn$$)S*c;vx>k`T1 z8q9vVDhnc^*fqi6d%0aI+XU|*5}%mdHZ{ejcz)$dc!&KoORq!t;*_Xxd%3L(Xm@G6 zvD*A*E>3F;*ms&AHa={%I(*+Iu0XI~A_@4@ue#i4zqu^`sMR&DznE{?-_w2fkUGuP zo8**ByY`!FdaUb@>BqefT)4N|zIZGQ*f=#a$h@E*A7+*@mZs==g-GjY)*q}a-I)Gi zW1nu>Om>&?rb$2T3FiUMS=z?ZmOXUH)h;5C*~Mi&y*aCQJJZPw(noScV0@YLt5$$x zv&n6Wt6F8Zx%OE--J^dyz8`>w7! z>8}s%^!K)QYFAISFFWoZe9`(gr@rXZs@sq)ZOFNMGplX^Ihh(#+Cj|{SS@?YAQRBp z6_6&h^|`3Qqz~eJw>?{O5tal}N03;An8^Gx(B?EO3#!~fx#S7HEXYh$ zn#lHH+GuW5b$42Zk&=+Tp+X*>*tTz;eb6k_^kRjVCE_iQ?PG5Bm|LTpP=zJ6j$>a! zHiWFEnh+C#-E;x}ti9Zk?S2rP7(%LkHcds<-k*iG;43l}RPdoJ7!y%b7X><{SBebedMF^z?Z zvbI{!ArGhc>v8Dp`dpzMw%V3E*=j7Ccv^pXtQC4@Hh(M~>#>7oYiW6g2nhRpm`JN? zk1tKwr_ab1d9TNb%uD@n&0nP0>QW;8E=8>Me_wR}Hf_#-G|@*?kqk!K>|qQr!^#DF z1r=;bzcI&f=WU><4wK9?-hjIIbcUmXuVb4yzf6{9me{F#_WPR`b6q4o= zqAH@gTeJ@ms@76^_XUyvMQ?BT+dYbV``+%_)&M^=1uY)1m#vHCb4)kD`L4IOhbw{^`&!%M5aNuXs_1PHWVb1m#g1Cg%Fh_pr=>t8z zpr>z_)9;XJYx#cpJXwgB?s*B#akIRTUhQdXwx&2#&ENe7!Lx328IlBXtEV34Gqt3Y z{6}j)*z|{6H;LL=wU-~3muG%L&}s96?#Bq|b)m0$^3^y@0JooDXt?2)2!_i8%80lN zegV}59@_T&Z-2b2&ms%I+#L!)7j7%ZAk5udG-L_q7u9iP~Mk8>q5s90sK#))xf z7lvSmVR*#Q>e({F`@LzRkz%{Ixn$_`%uFk!ouK_a$w$DIP=|blwqejtd@-YE8sN3R zJf9x5=C>JPAYY2Y3jgrjSSLe z_kym;tXZM>_D$>j%EOR|HG#HZX7jk9T_Zw7+9%6O8dLycb*!|j)ulfN?y2nGnxZn80KPmw$3EgVRp-MNS(fT@463^t^Gdf;qQX(+qHB5 z#b3Nw!&(>!ji>(qDmQfj$?r6OQ+?dz0Om;xVjR>dnU+J!3!@+$and z*B}+uwS^p-Ws9BY+n>)6@8|I%Goc2=EVrePhgD5Yg{->Ums)zso{3EjSLHaJ6T>hZ z#ZDB8bOK+Hve>MT2QqK)FYK3d$2;!VNPMHXpx|K$p8??_@?Hhug)rx9Q65!EV#a`V zF!`!B4+{;7Z{49WL3k84wC{13MT=PZg^la+EmCKI=l*Is#O_zM#4yBMev6|vhZc={ zA;pMUiBbP~%shYtw@`|hd3-<2?8+`3hL?E=hDWxZD+IHjNz&IMB?P+bsj->EWnb8A z+6$8owzO>vdbYLDT%1qy0oqx0Yg^A(MOIOu17Ae!HHf(E$ipuKL>iH7nJB|hcF4ZtrQX(hQm8i7^7>trIfL#KZo;gg8ewF35i@G;S z?10GWp{PBpDk+oH3JBOtr3YMa48vg5X~lf+i#(4VpJTC^b;>{0EGvYipB^g|kyGqz z*{D|0g`FrF8G+7Mi%aYj)-{Y07K7QQE8rBY_tydx1YS@8??>BMQggk zU*vz#OFz$!Hbx@79U#dmtOdy!T62sx-il;DjNaefTpVeBj8rBQ7${OE*DGc5vHwIZ{JnD(UwgB-+1@0J!M)GF=P%F1qi zj{el3Z{UAHYH;GG0eqR9nf@4^8Z`1;u>O;UOkdH!f)Ysj!}#`SDP`>9br?C6ET0gd z?qQHVf(&};kr(yOK$&`YKAjC3%{*tR{#&bMYDWj=T0tzjvQ@s@`h%Pu(CYeeboSi<;@`Kk7XKF05d#OGyW}Z_`mkp_Jkef6a4J-=K$zRY z*|Pahv!rv??s=;`x^?O)Tc~5nqk>udZt^Iz(=&PGbM(t2_vrr%^j~0TiH*+0d=YN^5TXye<9g|$y_ z4NJ{~cnNQWOTqqG2;K4ye%2UasR;}rHv(rXuGSyKrJ~4jz{Bfv|sm*ftuTIAu$)X%SbLLq}TfA5kC1VL^H<0 z0YcWiBqH3+{Sz1IEgI6OUE3LHYj>r+Jzu9Js3$+!-0gZe<%6jkuSrD)aT}R zDKVD7fTgp6QmrN$Onq$|KV-W8fw(KHxK1Wr4IFO?g8h>%jn$rDjna5$E}OHLcn3+d z@v^#86WV?ZcF*2Cq#VGbvPb++W4(i1A1MRRKO3CKl_=_)MPTTHR}pduq(X#YMex5m zWDYE%n!CEV^5|gVwHMG z=V3j#W^S)6$!dl3Xn?~<4uA#I>jAFYz>(DafQcuK{;3Sko2j|1(BHOub-;`aQ9ew2 zi1NyOhnFz0q|KX@OvI!{NcEfygDwA|e3zg_tnNSZSHf?GqUJag#QzY;12SM)Kx_z! z&oP`+^J4{#feozcN;cI=cNkNL0a9adMJUupKs)>q>`2&Y4;Chvk8P}!_gJcLv zO?@?mKV{7XUf9yz#y2sh``rJQ-{4gfqowrw`3;mEinWI&!Hx-eIQuVDyv^A4e!d-T z)|S1^f7(BDG4xO3d8CSY+A@o2#wx#GNO}LQ8Yc9m1XsXW4j^S=B1z7{1vtmpz7oJM zNig%!Yc1kjF%*p?zO0nR6%Cq@uKAm_bRCsQQi!Fzk-mt8c0S1P>5IB%?CJBdV}XUj zs2D>OYyu~q5UT8RQA-R{5PleVY?7=hsN7T-SGcwbV2MVeHdQ6bwr2jRRwNP^ zTlQ7~gVUsMcR3f{BvbsB-Myxh4Tm3tbH_7XN=nPM$1r6OQq)!DtBM^8+Vy|Q#pa>8 ztJtsNaO1GH{cD88&TUS5N~>jY%FE>XmwAUzKO-2^(3#&cQj11Mql+EPj6m;rPh)$j zn06mV5#C9sR*aZ36ERnfAM=l1HPeWT(&}f*e;F615hhR7=XQ&>XipW@MsA{wD@aFs zmx~?4-mM)`eKE;vy-RnJhV5c_mw#ZCpJIM1uuC>KEPUzDv(ZNR`=Mp#lcD8_7%p@F zhv4PB4==JKE=J>}*5#-YR8EdXSw3vDy+WjxW%C^Qm?;~@)5{5)EUY}L=tD8rf$0_o zka~P`zU7w8il>R9Cqp5}!lXMPPWzK5Rov#dsI%Y42vc1Dj3~u~A6(B}lG-T6XnqYF z@DKR)5(*R{+~@o%gW+m4T~-CT3)Q06j^}3P%ZhYV|Di(P7<(k1$Svzyn$MpIY4K{B zA0g87@nZ#}yx4sHA~qOg-LY{F{e>$oWp0Nw4B!h-`9<1p5R)$E^&3n44+M^p;>%Yv zt_1K>?^+4)&e%8w=rI4v*oXw^5Nu3Cf zC)7pp*U1_G69M%;3e{WpAMMjUwNik5w%p@C`uTcaQ*PXlpUKFr#Yukt-(}gWjbzc= zF+A}6ezW!Ec_wgA8-}lULY;M8NxgMX%yRnOisbG#?azgEF1Se#pVVAxMU6;Sz4^g& zEFx=X;R(sfpSC2Wn08r1>!S5Q=^URFFiXErPzvNuoA8=m5MRN}ux16G{m&Y%OmH#~ zTP$s)*W9;Yd!QF|4$fWx?p>2(-C|#u^dg<-FuTGzHomHAE91xGmz>0>4ar%02sz8x zLJ4UC@8eTiQM{qE`}@sw(%!I5wHH(zR+%Dt#+;K9Qj3vv5ulabm)KIO5jy} zH|%L;M(FXW~@%2p%P!5A(~k*gQ&_VEiso&xc$4H~sk-3~|54liWCHl{40Mu6aw7 z9*AVqR(NLgSA>7F1MJX$Xt) z-LRkSv2lHPPaW6pkl4k>8`H@VKFUr`4VVYoiq`xN%!TOk!iaLM8b~wMHlkK7>_;%R z9VRv?ldmOtx_=UTo!Q;))Ad$fb{^)7;VQVcwXOxQ|~V+s7jn)<;KkZ zh_(`ghuoB5#e(lw&s;-9sm94_R;rN=lO5g`9ER3$t#Y+OKW+udqOLTchXDup09Bw~ z!;nu{o5H=@4gU~BdWh+tWXJ&1i9wC@|ASdFU#oaBOus@0UfZskLeue?GA41ZjFXZ7 z3|r>lNjOH3p#o2xi0hC?b`XpYKLarzB{L7 zQ3Guv9g;D@3VbF}-4}tZ(Pu?m-J5y$$7~Zc7LkR^iauLfc{hEgeB@$wv&L)nSydL~ z2HP+@F@I=W;`d0aY1-g`!No}NoK$)(rx+cJ^TsqO2XG3OJJf9V47CpToHIl%L;1oi zfdPC`G!qXo7d`HJSHmRP)XcxS7_CwT%pcfd>%2)*o|1&<%+IkahX7?C&nUpTB#ISu~aT zyDz!e>}&)os~AO!Rq29W%)|SSjYw6xVKMuD%Q|IQGug80%$6w&gkHrpWDl%Glzq{# z$n{~ecu*g9>oaT%bsJF{m2=53W2f-ixaLmHX%vr+D6VAEerwh;5Sw!rgKigrLos_y zqYuDhB2+OuUsCq&BqW*$GGHmW9vAW z?Q$q!BN_yow5GH8f?E$mMNx#F>qLZZ!@~XTp6dk=stJcIXX*tyr8oQ+p*)K+JAy+cWIY@ z^@W-Xdd%0{k=6QklFTE#SDSkl%(v+XFQWXjP>zCDiA|=VUmPxSsgYL6` z^Vzb{oZa?qzSr#!DU}Lxinp$OtnYf}I61vj83H#%=#kYkzfji};3Hy)Ak6YwizL1z`0Sqjx%^^s@WxCtyLzIRP%Xj}^cefV6+P+qpGk%ctR2y6+j}xXcN7bc}fcgv!q6C+L8y&{T)P zH73GQ!^>VeZfb7o0r0u{oIF|$!9~I;o^4XrzoN=SRU})~sEkuYvZafCZcT?8M%S*% zO-Ho^aNZ?iUY4%JcKWUHTSVWTS!ev!?{kHE7%hss8I&z=tu4iZr)^i2;BNhXuxpM! z>4Ekt|D<1+vhouC%GK2jpj&3q4O=C$zVUhnC`aPeLULT|uxQpzcF|H`<+!a4n@nbU zhF;HEw;C*qvA32!O66@{+2vmyqeGi%k1K7MXjlL2iKQq<(f>PhTzOMil)k!%M6E{# zRi#ML0;1?gPyhD>dgq>_4z|+(W1^um$=>snu#m3X^AC1@8lk6`b$3TPYh2plV6{D| z*)Hw+3WOBaXm(Y_vE@s*ggs0Bbtp98h3*m7mHtj3hA6JE`F`9nD6DA~W@oh`3o{Fec}zQ^wlh?@ss^!_`jt!Cpm9LBOikr^%%C?iUF+(rtV z))~!xj!_s`Zq6D`SG4d|bFA!h(N;!-Ng1K$T<{4tj}YCP>zbJ~qphu2bOcQ$&9ZYr z+2%WjuvsL1GYdb*QLMXgKC@Jg=Bu!l&t7yV-?&3VoYhg@%iEn# z56%pKvbs@E~cE6G!#D~kP`6|$M$O6$Q_s!cneN&7_n z0IxltDX?1zABQZ;<$V#bLClR)BZ*Ya0{C7q8O`jiHuc>Cy}rs||6CD7kFStezy7s14b1XKm?2O3@#ggC)9YdTGVbW`BQK z!hDh`YAZocfU*s2Jz?&Fs$9(VyX2_t@)|?!=dIQD+C@O=-UX(QURGCGp8Pzs|MK9y zl?|)Dl?D8|iYK|ob6us>2>R8ZFDrV$`#>njd`$Q3s)~L6_t%RJ`2EZa6!rDD^G%Wh{It zX_SAS=V$F5ijtqXf$imI>d3!0K7o*%lwYZKl@*?^Xlhbrv0QS%3xeT^zxwaU8cP zq8D4w=>xlrS6{pp^ekST;#CDSPt)lz)w9ZVtlHM&vV4^7(v6@O@uo_ZrNgh2*~*(# zT(oA>Dc(Hr+d#M7C%cL_5BUo^4vq?+rNHl#XHHCj#f>MsbFHHXg%<_CF{O9U-L=uz z`_0w6Rkb#fB-i$Qc{tVw_okK?C=QpwFvrrM)-R1%qCSg;Cci^ft>4*W*F+GQx4T5Y zCjGteWysEcPDtNrsCiyx)myQNzvuiE!M&Umc#7fn?y(Nno8RQGZQ}T|E|t|q~@{2IW8la}DKyg=s=Pm|^BAMv--{AdM<9o18ZGc&;s*mAqg z)yG6V%x|K~d#x91tm5zqgF#0fl7|T$5qPxcpOUr5cs>@tWukCbDBgIk48?7<;I1>d zZyRt55}@+d*)rju{pPF(ki`L`sVllizijmi?8Vp0ZVV>odFEnFnmv*PRK))8_M z=?V$(^<8qv$LwpP8SSNL_j$R&(zOD1kU#5lM=t}!le$`2s%ai)nL#$~gH8%beCvW^ z*7%rQc`?K!!34hd`yO$4*=JLQou?(E|E*{KGD?d*()-+IiyO}x_^xvZvD&2U-rni0 zIW6l{dy4><0(_^m>Ey^c@`VYS+j#abkaV9O#E7dmX^*JeHuw69Ip)%}Gn#kVV+<(5 zWB%1%vcPq{8_n5Old1CvKtb87_ZGMzBm65G_`&NeGv-&o=;x9PRXn?R@u z?s1Ckrn* zUMI0{0IVw|m21h%P5HERt^eQWlN?j?4mV7lV(zqQ6E*687og}zn3&`}k$ zP@v^fw)@fRF3-LIs|#beLz#OB65D;bGau$a^pFjs4Js1Zfuxm)t`rLqLI*iZI+yCz zeMWVUd<5tH?u#R%7+quD4d1Y*-5BE8LdH7XP*^;l#58@NWNc(?tMz7Vt}n9qgHPMX zGa6oVY&!Q(ut&Siv@wGzHq4D&`UC2`C;)#O&dODC)7()IHrC z`uvssn66E5FxWy}ZN5I+6B#J%m41EHUFLSAwB>d%xgCKVmppTZNg$c~vw7!dUI{>< zd}q^Xbp$S&?N5H@wfySRFP>`d#&7;E2Qo?eY?Lhb6XNrl`1zwfPuL6y77`pLw%-hq z@0VyVq+M&Jfof%0Zdy+&++&t?suWAQ$0V!`PxU8sY)3jsUY8@$w z>5nFXFD+jM(28>?krwZrt!!Cm0K0%K4X!Ycp}u!g9l9- z5s}oKqWs`+5<>g3;WW>=#b3NvvaR0ColKL6P6x@EEaEx=)Y$TR%w8_XhDN>Zp&DO{ z)Lj;*dOt{SKAIdfNU#40(&&rxMo7Z~G_2#_PGjQ_6Ky8faF!+5S}Z>OJzXc)WXi7Y z{pX6c6LG^AiJ=Xbri6V8LJjFnY-S-@94XXJBzjz^Nyelwr>9jQnyNTyj6nvqXf3+09{}s#!g0vu@9TA zpC`$a39_F$WKEKPwoi~{r4jtB_615mSCeUG&RVTQroJVx!o7X*=Ch1f zzx{wjj84d3ELCVK-HNQT0qYi!*#kjdva2&?o)K<3=Uq5*g`7?rC1*qHxk0dHL;G<8 zr(BC45OF>EJzS066Xu^X@>{~7H~LeRtmLykeV;-YZxF+{IZ+>#*2*+eA0&7xX8t^P zCDOItnc3pqIYPR`Y(F1;asm}v6;o@SBy*HYVd2?4pC9A-Ed6q4UV{brn#XpiN;#k? zj_NECT|@0mC$q{?{N~d()QpdnFXjnb8{}{C^XjjL9qxB;<$+KpVRR|ja94V?DAC4W z6I18?Zi8coLfE~>{%-jiXJsLo_@OwNc`I!d-Ke%j7V1s79ruhQRoS?)zZP(5p2UGL z9;6`?!{S9rogK4S5y#=Ky>r6XM6Rco=PXrH)cQ zi_G);ZZR|QU^Abjy@5lKDVj_c?VUZLW#8c-n$yQZ*lajX!n6=NOBYutpO{%(GYO6ve<7Lr z#oOsh{53m?Pr$^tg&8oa&gDQ? z^a!e~{msi|od%Z#bp+V@t8S`K6uLH>092)5R45faM<{8_<011)?;G1E6OGcI`@0Fm+9Kkfi`1cF~t$o03fdR7mUd5ITDj! z=ZMQIv?XKX$C9U_x|O;IGUI#d#n);6+GXbt>?DR;ATvj1GD&WxpBJdZ0O^__{kE8W z;FoV+yH0?UNaj^?#GKkh&H44%J`}BkBdTPz8?Ku+XFczpX)6D;h++|kF7a2->NCaA z)6288{A0g-byIvGP^xnhX{vG)*7E7rjf`Vvk&x+`YFfQZW>}uBo>hIBLx-A4&ztLZ z`<4X^&yq91(rYwM)VxPZdtjCvy1wHhLu{e3z^Ns>BLkXcNwtC>rm0P^b|xWPmfM}+ zFD%?ukvX63WJfyB2fo}F^>&&zvWlZ0Q*6O5DbMGm&04-I*08;H7Fe4A6H%Xn_Ipew zY2SUIlMa{}Ye$h3EIianA3YIVic!wmdj3saS6^=E*@H`j9=P7HRN84$?so;Jp&9av zXCdxv2S@g+x&bsv3)j|tBqm=6vEhdrK!d#BBf{aNiHh1 z``!w~szCaVOS$HJidXftC*Gu#pq1fQJ6`gds8$JFXsU3E3fZ+4hv8hG>N(H-v~PJ! zI6qD9_@5-{J%6?0JGdXgGQ!^QLL9@mYqQevpdINyKOA(rX*^(ZJfv(%WNPU)j20&m zEnd?rtMN1%8E$-p$cKh5rx2z0hOet-k6nt~L8VKLCz3n+p3@p$r1muFiCm^dW}GB< z$OfU!#OLz1m8tzUXinucH9J`$6afUz8O~6B1(hOpc>7nc^m10?CjC=+nUFLuKao~} zcoZQ|f8J1C^fGbRCid>4m3NuAeUm)GIvujn3d~L=doPeL9@sGalYXAwvz4>o>6Zx( zPZ)*r;oB7HC7C9Yw@5cqWovhtl%sOT)D|mxDR#<=nojst`1YETnG4;Bq$+EMrmH7d*+jOqTwsP%0;F&4^wp)=MfVLy0<^9&D(Z7=jqlLg1}u|^dm&oP9;y|+oj2P=iPjn}lK*wK90 ze{zXaml>l(p5V}g4UoFe&thyCP&`;Z1%V9^6-(;-i@@K&+9 z_Xup+EXz|WRs^hg1(mXO8Q8{@u?hn|b+o{8y)qL_X< zUMWc6JE$8)=y~;f``|gKHpt+xU`Wgv{=P`e+4%N>zq|0e+89F{Zg=`|Fsp&;o<3Vy z-*Ix}Au#Hh_N8`E5liU=Rmp7M!7P78+%Dr(SaqJxZwCKdskS4XUWt)j9=5IG_0F7y zZPJC5vQ7=B#`7Z78N!vO;;AH@OdeUHxHU}eyLH3CEjUGXPJ3z9!2;GU;nLq1NcF67JZ{yl!5wM9~EwBm_bk)JbG8z1-f!J_XZ^+2f%-Zxwd~-po%Yt&QaY`Y$X0V1dl6mTgM^5iH?MITTg?^w zlJ?y4xby*QrY#b-F}a~K5X$#}_KexMW|MGInGNl#{+ZVfu87%d zlxzM%*HOCLqu02$J&K2fGYmdNT`xVs*n~n%2`OO*`gw7=$*&xI&cPf zxL>6l7ulfiHxutr+kTS9DeA)qck~~h?DdVuUpC4Fa_c}+VKM~SG0*KbSHG!Ob1n@P z+}MhYy!r2+Pk2nLSkze)4nI5k`2=WgvBg)J!3MN@$L8R4BWW=J03^;$Lf!#nStj1w zrO#V*TQ=qjCf|CqZAW>H^*Vt-S)*}?_yLsKBB&gGPHw;P!j0_9&E_>=8V!9GjdX4( zNDv6V!mTL}L;%7D^us3MAEdjwBYAmG+uC^nh~=#*5s)6lOF|kM1Po6IpDOT!<}zE( zHeN1gh{{|R=zAHlyxVN;sC7QziY1!eGYc(RXo+SB%pjUgR~~&;!WF5XHIUs}F_}UJ zGzdXkh?0FwrjZ~3*1qu=$|dheaa|FTmqb3=GjOl@n#X@lvQDJM_Uwdn(BU`j_r?!< z=*i+Q8%IVYZM$8rW!9ZVsn#ui`9-6iCda(bIJw0@cEXMfbeFJASq=|_6s$qVCwvb+ zS-@0s`3uNbro~dL>);(_(Gp*#d!X7dAby!bT$w`Q!;dQzBzx9{{n2HgCz!&BR9P9b zU4EUCk>PPWe*g3SHW&}0**iIj5Su@&dFIVtiU8U?d(I|W8J*XMHt=plA*XDw#=K*= z9mGmHGozih%Oxo0l;lvZvG}OX+kM8s;8(fh+=4O1CmJJYg4Hd1>ngZtj)|CHKbuge zRW{SlH+`D(g0KEn566%7BKqOubY4s-~zBySYJNqdbr^*pQsw>ae> z_amFlFE|}*BDeDmpz6_XCxgfV+7l%MK%U32MfiP0MoP75mK>Qemj~$v#CzIL&KR%& zB<3dF0tFVZT-S)}-fmj(5-eNmnfR^Qo{8v?cI?t`V+e~ure|sWq!(>CaSVH|x8n^M z2M$#PI9-q*KE#A*ogw2CXj^T5HKF)xft3e;Q>+L_MddEzz3}Ea!{!Qz(#1GHhVFMc zmK_!mLnaFQVqPeK(CXX;S7lG^rl*NokbT#YMy?xar@zc#-8F!INqV)PP0ns2&-t|K z&XhDGE{loDXcO-NNU>$Jy<(3Vs?F|t=?)N#kj30Y7Lfr9L~E17QZ!RQTM_&1)?P8t z$rDlPsXismE!kjML;x&Cq348jgGn;9d5J1VF=Axo3XJ&oRyohk=Makwg!`Co)H=gv z6*fh7C;Lzx)eJ2i?;$5HQH^EV)zz9CA0|GNLr1k@QS6~whfCR%n;QLWpGx(kjA#CLd_!j{+;8@Mzbq$uN6KpF3@5pr?Bvmh2>Vc;)h%3Kt z-62;s{EOWoThXbkT?L{Pe#m8cvE~8DLKB=%Mf?|Q_hsF%|CZ;qu34&U66vSSn^^fd ze*>M`h>Q3-RwBfe)PJStipP!NYSP6)bId50G_Ynm&MD0DTQ=MqnAYOhtP;h9qdG+ZdJCuH3D7!yWde^Wro9^`k zPpBZ%tq8pzfocBx&0EUfs3arw$){5ig3?bv0S+7!p$2TQqZ$>5^^PzqgD&ja-NJTG(XO8Br!%yhN! z=<$$w{)!yWlZE(Zk-s>-)CMfYH=J4)t4$fg)1N2huiX@AZcc~ZoZx4eqIE^a25__b zN+9JhEUYn|&veR@f?0b52~mm&?x&MU4+oTgrD352Ji_3+pr8$e59n{iii)p*ji+oV z-K~fR-&c`Y-JH%lvuB z>?}PR{QS1?bZ0Nz^8zT?$WUJP;9nf=?E5}h}5i^7; zOe80_Z?xOmCA&>0nBzQOt9cc373hUn8w@sJd%*sN2oGN<_WPQ*p}W;@O?~f&^;C7# zw%Xs1&6^4&9^8NnA%6O;R6-wyAZrqMmRtm7=7!qjM_uJY+rQ~(NC|!n~&0q*ybF~bbZ`ccALuaDgdTgI_m2IQSLwUmt72N_Lff) z3zl$VaP?zq_yAnYF&PZi`XXVsU`tqBUR$VH0xD+668JTzfl*87Hap*L0Ux;Wb?Ix= zVlOX=Vwx$|Ig1qQX>uaBX_-=RA|ofs*#Q_{wm4}^XKn~vZhhd=xm6wz*Bu{dv$oZ9 zlaK3%{3Y&;XR9C8wYRw$mVp%ar!_G{=a&MTtIf6j57>ls!kwez>_&5`tzMps_@kiq z+XW`7lz{Lh)E*|vl^Wq1=4}EMGOlKa8fp3#H%hrppbt# zkqDRKHN+&7_LjI3R-gNU@Xaa$@#;l-7rEL+N^#owgPj|&E%#@!=-OyE+_gEUITBLR zGELhTd=OAG0C#`|IvYT~_*O;46mcvhxa}^5$nHY;*f^9%l(7DBnMi!3~xR{63^ z0mlS?-B~n*=;#wj?eBjf)n`wXye}Vc7y`oEjiO6A*)LwaL8`C9mCqbBzS^nr?s-Iv zRfnrrvzVV_?PIZ^q}#yRDS7B3+rJOFjvaIvOqiD$2a8v(f`fw@fBM+ndINDc}j>&fGHR~Cs zVMnhgbgUn5?W3MI2fXVAUl#Iqf$|dcmOd$4SmjS9?_RzVhF(5VA9T~8pVhF+gpbq7 zDfW@fHoC;{#|(ICR#nhw0-iC`W6Kz>+o|fNwRQqS#=X&y0+vpv(?y0*%u&un8ZGe3 zFP$+w`k}2-YB4`mOrpa_Pj=i|L6t&uct=DbW?RP;;qHs9Hk%*Q!=F%B`#0rMILWJY zpk}$-G&RUqee}vzAH3(HebK*S(Q~%wzDjJ}$J;yeTKMF5dGbWnCeKtzwv6y2{7<&S2!&tP4$q@o12GHI!^qdo3(CG_ z5<~}+K|8)Piv!9U7SdCqDxx5Z>u=tS@#@X*54+I$^5TNk0dL=p^Ugk#(2971?GXIE zG2XfQrFm#;&~OEIoIH;4*4-~AV0EY94;8TcJjOdG2b$?*d69Rty6G|AIXXc4vN|M( z9NyF9$ZxY6hV;o_vbobcy(EEmnNSHmYNwWdSt{pod5+b==3BF4tnT8M;<-zdXE1zs z#tX8BE$vZNmk@auOf>heN54Q}7dSgx)_o=p%Mv%-i~@$ppqS}#`55AH(Th}~(R^<2 z@=4V%F1Ym@h2Y*9!74z$9`hmNpx;+~$VAuAYd%O}n)3n6tj4y*$P3R+-5v!7w%%LzIyPz^WA_4q%#Y#8F7m4v7>IO%RO-L zS(hn$rS6>N<=SzD$>f?xWt^j&rNM7F`NE>S-UaCo;_&( zQcmH(Ti;n9&u|v2Akuez5J8n-RQDG(Xdm*RV1yo4&(d?2d_d+)^Iu1za%tAINJa6) z95ZD10F|7wjwwJBJ$v^d-hD*x^%H!&tD*sRm3QxAbN z9gZ3Z8@DmQB-MO<19T6gCyAdq5i{~kTYxw3DO*6IEm@w_k$GVUvxwXC7b@KL&*|?= zJ_{F?vDlV6GSO!uSgv;i6{WeK_^bES;y{HC1gAPT%PQ&$Or~F+En}o)T57kk{pL>T z{$=OYhLR!F^}ST*?a?ADFr9wBa6NbL9bqroXoSj-2F8XSd9WJ%&MjYaT4nEI(dxqX z=l$t(zNTXHB55E+#b8ga{6sF2YFEi5KS(Ry`w#d0fQfOD%mSspzjQu-;(G)e1M&TV zg8Nhu3#2K3fuqbZP^i}%6O$K8in!3Hg{YoiM3GAR&L&5s=J_9n!m0msNb7SWVOo>< zJIDS5_uBa@hzHrlx4zaHTT^RKg&nYpC!o23tm>+A02arOu>BJXpZl0;;VBg41|%05}XfnK+o3uM4I zoAXKgjC?(7{x;)6BKC%LTo^E|=j4gRz&7o|^ul40@ZFy+?%r~)q2DJ zWOp6R(eEG3SQC_nJ=|$v8>7_iib20#vg7@$)-g%@!OLWn`&VKqd<{gBRS|WcY#}7V zdGQuA0m3-Y^`}BCqf&}+vwWzE-R8cLY5ok&M@G(t%`m%SYO>jRu!7TdO@O7WCex*! z1u}hL(e8Bl7p3;l6(%(IwDv9YGB+^N2vn3mRQH%%V@Hud#x~%sy-CCFHH70w$&cnP)d1`lsT{uPpmo{t4IEr5G=A&C2|brxSb+$lWV@H#a^7y2jS{(> zF0W79of4Z3vSg4M6AD%LJfnAe&=^)DrCOR$a_-R_Zuhz!G&2g3%V2PGVo$H_PwTuY zV?8X{FdY>{YJ@NZilPldKKUd}s~(LruHS^BtL0O>zM#moYlpMt!Ri>d=DD1CwX$?c zZP7nTj&}WSkbA37`+Vm(Gf-6&)9fDNehRrd<8J&U;geC6M;6-HBfF@8WnEvycErUN zb8VAgI?^EEk2ozNVErJ{Z?m>-&CUceP=?3%N&X|QnCGt}LhIz3k@&uB{#Ev8!F8GK zkL&m)S6GW{tddh?JOHLjnR*`TRbGT70clgR?TU-p~Nt0MHL)eYl57cNze(*+-To4}0*=3CE!~o5vq0XNPf zW=nj*B4*#Vh+8Dg1eSy?a@e|UNhYqla$k9kXFk`7BoTZ9!46u=cqRTz;(-g56Ou6iVi5m5UIx2%@YetC*3V46Wa* z;>u@R%~Y)B2oUv5dDx2FqOUl{Y9qaKJFz;f4C)0Nb+Ns65(D1C(;)*u@pGau%YO67 z4(=R&a&w)V(nrqyn49aFotM?;F##Ef^s0471z#>UqkMB8GrIZPHnY7%U;yjf<=drP z@g|qUn=HWiK~Zau(f{}r8#gEly0378)4 zv;VUO-^?d#{q~)*QeKk8N%!te`een0Pb^*n%;QB@=^5Bjq_O81DgVr|eSTJ&0_Tb9h0qnWpUw7kRkKM6i8zb7!$-uj;(y!+@6* z@w!cPUmCbE^ikW}OBeS*z(PlyGT)Ientp+}bM%qwV~f}0CUUhBK}`IdJoj*Bki?~9 zmDu*xIQZbo5pcf4G~napHTbxX5H#ykY=~7NlqIKe71)pH`Dg0(p!AIJah~+bz+a{F z*gZhcp*1{}weI|-3D6%$gt@e!oWSlM$kLmTK(fqSb_|!dk{w29)HN4Kxt5EsKP~CvA}v-QDSzMWTJ*d6CFJ*1vW7x<#I>+_T8t=FMmA-1X=6J1l@) z-(rvV(*nBWfJ0F{^q4Lb90EG(fM*XChF)B>qCXwuAqsgR%OR;?)J}$@iN#_UiR|(U9uVl(!#PcUPYr+)3;J z;p&msx0?_4Z)O2`D~vK@2vfnF^T;aX0{T^labT~aCGExOa3C<~+Ep1H4O`;e`sxWM zJ%G<|?P-4Kq_aQvg!^JC@}USggp?TniMuC@hd@t~!kKbERsX(c%1yED*p0A+Nw72P zs<0#*aRY}uk(uupq%d^*06;7(GrW621d1f;`-%dxB8ALtE|tJa6oKw=8H_Ke4ObmP zq2jH5Njyp4%~`;{b;3s$*I%9trQxyKiUp!J+BsmlQzGPLs5 z>o6>ea+sB0p^rqk9`MKzCb+z=BU}4@(&G#=E4p1Httj03ix+tTFTa)Q!98#FSK;x3 z4>KWX*qIjv+Dhbq7%uxD%XYN7;FoY=Mt{PmQJYzbg$)~ARhJbQ7rLisr%9`GNiv{n z3zV!)u+QU`LQ1g?s9(;YGx#Y!?884>M&;crSK#d_9A&BQyM}$=xdUB<54O!9GemJ%h=B?%C*NG`<%?PT z^fE!Iat`oJ;BK425TFgLqT3cUZ$7V^fgJVhg$g=^Pj*^2M4HHDSTW|%sw^mnqJZjw z^K86dOeC{Aip#`aaKFKvW?$q4$c+K~&m><+T^4?j8+e*zKP=)N8s^2)OYSRXs2{}T zM1L*M7P02x^S) zTya&EGjEZMBy^m3w0=q73;yPeQetjgZW+PDkU)Cc?c{l)mLlj}a|VCHtgq(qIbNC@ zkHcTRt)mI`7<`CO7pnXE2ZS0O%f^veIYe*WSFK;RWFufQz zL;8a+ev-6HpLYaigoYe5Jj6!6W!BO*yv%BX%~(oqL(I>t16PyTq&W+Yi+;QX@Hh7XMZT z8$qD2rlryW-G17vLLjsi_r8zZsr{1W^zd%PUbDciky4nV78xmo`$D?ZFZPx#bKbp+ z%^RiAazune8|VicW$BmdRVhYEPHq;iaAH#ZvT+Lw-Fid=@^{~Vdf5pFl;w$dvg70V zHV33a(u0f8GD?I3W5$x&ss?$DT-&FlUbT1j{23n#L_Jy{hr%hbZyiz{CRj~RXE5a$ zj-}>HDQN}|i4T$^5A0-V5jVcI1zRvicC}wc!r(nR1`iH=DCLtt46sRx_Ss{9k@wHp z<@4+?{R@R;Gv-7wt{$oBjWX8mNXiWs1oxob^?L6=fw!<3_lNTq^&yIhW^|aNv7fgp z6#E+HI)`j>&3N(mnd_;hA<7$>>xr!l56?L~@ z7>1n}2BtI^OtSUOSe}88efTB!O2@@>zTY80Tnbcms2dU-HImhBb_69ze{4p)s5)0o z5i1C*Zy-O7;ctX+7;UgXVw5{G&2uDGra+=>0_p=Go;1{4K@^V5+3%&$wIEOUP4hqD z8|%b4Ltf8lDH?nF4(`c_#wq{#+}b|GSB$U($m58SU*q?|-P3-yRT0WSRxOSM@pKeS zesMy*^wOGZpB54=W~QCk}BpF}?Z= zV^`E?d=U!npLV~;m3+0@H0R8ay+WH=5Y^ActsfNX$RxptlCpgKamO1`k0H;YIF!Yb zBh)F_{I}9o;0NMF&zs$|bLc;>*HLF?X)g~)i?v9b%aT)HVScc)<@#*+nNY*u;={#N zln|tA%=NnW_kRpxc`+a}r)e~5vXMNVIX!x$*!JAXH#o+I=g_~^eDcDKK3Frl908`o#CYVCuqb^_>b|qvm_1 zoGS;O5h59Dc~E)SCPeD0v=ZnUu%f$$dYJLp`>!95>MnCP|Upy^p~6Pv4FE0*65FEq-!-vlp_irqeV!=g6= zEmaYZhBs;q|1P|kDk>s<%l_^|WPR{P-N;+ujoQ1v3ok`Otou#yN(vq)eGq#B{Y@0@ zH_K-fE&i&d=&FnT``w{SxVE6+ZzuJ6s_OG4s)#G^s;o9+Xy%KuBjg`S!1T3e*B_^0t1(R&F zZ67*rv`GfW|3JSN#YxclU*Loh&EsFaOHOmOyOe9+qHW_S_qwXbNbvafc`v1Q7LIpj*Tm@>2&|Z;v@E|37-R& z8U7lG*k${(6#(4{y|r#|JG2v$%zm(zc~R!9>3Rg{jV2XPeBguj+st4vnQUK$C4 zG+GG+IUniG6W*dg^u8h66x0e6e4@t*iVb{v5YIDw{iTa9ny)o)X8Gm`9*g!y1Fc5e z_R>kWl1eR>W@+qy3A(LBG9S$1`0TDuJDMM%6v2620I2391}Np*7wgRTG${)F=!@728{& z`ZKj|A*?PA>!;gUx*_Q22MYEz~O znRG^5e^IIyMxX&ao=z!XO5j$cZ1iK049oWLAY-2JLJZqgnW~XYte6anL#p|c!MLxM z&r`^%fKU@mhbSH@pFOt&Af`Y`bv zwBdQ5j9zn0j}XsZ9W`wDu;W5X7uf5c70+{^N}785Pf!(R&fh{+XvLOkbtUFFQbE1pLi4xtT0O23m{@*uh75X_Gm~e?+$<_( z$Yd(J;gxwou@G!jySi@Q#g02dr>PnZVE5lD(Taq=B?xQ+XwSY^mNG)7)_9o8~Y81I7G{wo}t~x+E^I zsf=a!NN)2tJD%FoUG6*04;!uBlVr}Cd|#zHQA!K=C2U-VaNimEm43aBtA6x<6MZmdm?(MEUHS{Pecqjk2e5wnKER0|0j)}q$It#X^; zXyYkScb`PRLSCSMC{2J_d-s%1s4RNxIokf-^Ovv=U3Giq&cZR0d{1u!*g7$vu03ZU z(egPPqTDD^;utN$kk4u14H~b0TJUtPwViLC(ZGaQ$``}aZez=lz1wV0C+GX@%@x-` zY||La+K+#FxEgcWgB$HXf7EW9{%z5_p$?l%%QRw!0)0;5sdMbj8Uq`$LHt}m1shbD z=; z;}6ae(c(~A!Coiz&J0<2Nv6s$?Ju+&tnq2dCOPgrSetZ<3}1EVnGRsbYftLx-#l4+wp$+_)~4+9sx{Ll%!=21@!4-P zIbP2O5Jsx;^jI0>Gx;SZ{Cc@(V}HHcv$-}knisDw82x!$|EB}tVl}IM66r?qDovgF zWn;?Z`|9yek9~^9it$)6$mD?()Gqvyp6#Lq+uHP&rse7z{>gRV@=5Yw`r<122>#OV z7w|sFE2zL3%=C@siW;!QHwrgFM*oSNP-J3Tk`HvxC_KlbKKJNX*B;Xy3w$17TR59&)FTMI^0;W8hS)dB6*R~F zTz1OKb3_(Y#T1ptN;d_-S-o54@*A@#dGym1m=kR=QKXdu6?FgRd+UDET0qJgpArsO zfqZG0zNXfJ>rL*mpg;cF5~i#8a}kX4)_#Ur-O+-~;#dsw0*&^y+7&GPuehW9ar#QsLS2Ep0|{>0^Rf z1mA7UmKb^yRIJ`5bG`|iC%PtsW@*d@!QCVi-vzic@zj!GerwJWdz&=F;U~L>?=rEp z;KnnrVH=+;Pe8{9O-Yz-$VWPfyLtGo0?rD}_JLN2aj1FaD{Ef;ESw-&OFyPR8)ca^ zE_`&S51`>zp@4O?_Kva6Afz(L&2B%$Y(;>Kb)mF@U~aAd;O&(!qJ{Qjtm_0}Bbju} zUy_5rpA9>nnB=B4!3h)b%T@BEJB1==+3?={bDtpz)_P{tUlg2v(bD>as1W`ZQ=TM~ zE)4xkGtxSXG?>aPmzFNv)D*gQgj;P^?bPF4TroX!Y1d+Uk#1*!_iBZxi-0M!|EyhT z>lpJq(kHkYarae^JE7RKjncB<5#eK=dvbW8?W?>X^2w9kXS+H86)Ob^jlt@7{`}?7 z`sHBkbO3Fy^%2@!Z*$+mPTG@CSTXmfKrm}@H2j(%tA2@KxZ zc1R{rwn|r-9-DL{E3XH0AO^>`^Z9vub@8iYYoQ&U(UEOme|VV{xILC_uI#S}9prQ#i}W=VmpMQp8mDCTRhr4hsC^ktIf2K> zlxi`3+MsK|T0$;EXNK!cPv_{Z>_zswWW3?Bq{X%BL5RHgErZzk|JEKT99j$9c#fs0 zk6BanH+{+qL!Wo0Vs%^$^R|Ia*j}y;er>e2PZCumt~S>^5VAC_&bKEiqy*kgO<)|t z2EAoBQT-HOZ}}yZ!67NlxWJ8+D1v>tK77O)=3kj{jI(v^p#+RWzPyPqFR+XGXuXAh za4ip};_`)ERw^gEX--o2_?MpfEUPvB$hB{L@OxpO?G}UeL;0>7ILPbG&$NZr?;YB7 zWw_iuofQxY0ecKC|Ir=MbN_iEX;gkjNbH{ToxQ78>cxTOx*Q2>7?eaQia&|^uy1g_ zdI<>xt>eM;h*#?-W)X8olus8%hk<#cc;TH+w?4n-xb^eT-^cR zOLXNFY2-p$&0JtpUt7J zsU{rglUR80&0Pqt?3(+|v1!J#Ls@^*(Tx`#bnHfCVtd104$*k@t2SHqPP)rU6spKBayTY~zOd^_- zKY%S9w-MnO&0@y=y(FmEBut3)Zq^mmVRvzajX;-62^i#Y4*u-^J|hs93N&a3*& z_}`a_Zu!I3+=W$`wWlK^J;PsuLz8JkP1HY}V`8d+ApJULP1Oqpg6-LOMagTtPtL(% zr!H$ zYXKs{P~Xn^V74^X6u;FPPN5aO^>v=I&~jO1gSsMtSFU@TBWS8`RWY=Bmg>T68=Wz} zJk6+Bn=$|bTj@f>BB-Ay+|3$1ieG=cKq^^dDj({3Wa>cpqU)6-3aq7Ptr%#6%>X=r zCzkdIP3$z+6p`w#olu0WVGj8Vkh@2v&#mX=iufAx@2eKLv30X6V)3~A;g&Y`GCA@Z z5~{#uY*C+%JLjb&%`K~)tY9Mwv#2k9NQmE1c~dD&0EZSv)cDHaau~;KK3Y7+>o{jDg7ngj=~^Iqp?8@RSf1R!gykM-Z({tX^g8w?-eptcVSqSQ2UpX zlWr_U*eGUY0i@%x7EZ$W>$9HZwN=Pd61}F=Az&hEH6S_rh#rIA^Tj_SzwLG338Xr| zW+5|)??Taekeu2=`gZ5d3PHY9TU51xU|D#g?vMtgk= z&G_DE6FlJh>@u#uW(mT~YnJpPI6Bb73{;3H%X*r&FxZe}I7j0Su^m^NSE;3G&k~)i zW#{}9&^5(|2ONYuqUy5K`~(WOm7dZXEuXh`z3cz)kanA+o^hl3%^uo1O7e39m>ke` z>&p=%=XQ~{Mty8ecyjY(=+dY2RHlLbLPyIgiOmAuvv`Vc0Wc40Rka`7PcP$ z@9+DI$ShT9!MK;1d*A2wnPX8^nURr^v1Mdr=7ME}mDx&7wGvj9HR#**x~UXjcJ7cy z31AlFC{ei}LzVT*kfFMW^C{^Hn+9NWPjZk`%yD@0Vza@>N`6Np{u;49Vx6x2B4(l?Ye7#yJ4BSEPed;qWfCU2kqvS$OSRd+s)UYtQ|rZ|#}dj9Yuc(gJMJ2wQv3p1HMWEo|*M3tM~6 z!`7Z<%S?8wh{c12wLd1m6L+a4N;p`>Wgijur4y?-XlSIzU|D3vc37-^d^(|}K_I)% zGW14%SB%Ll>@huy>2MS%tC^|E+m1G84KrVG+%GAARwNz9I`m$d{@MUo%xv#kXc^c4 z&O8v7MrAXC4Ka(P=Zx2CR%c8J#B+2;nPxaK!4MX>-EP{7U~k9S<#xx}Wp(EU>ad-# zNJ97c*?8%vi$crh)*nn0UKey_5-s@DagjM76t?V9KQC)x z*WcD?IH2Vl8m&sAep{ncn93>lchBOD6ywMnxnLwspBlrjoYDKu@Inw>vJqG{%R6`U zKsk|*=&mO-JY^6U@mw*8ngWrIwwBh-*B>ygX>%B2mLoOn6^-o_H`$gwpnn>cB=w(h znaoQ~&AETOaSRY-Jk5g)iTK#b$1S&$58G}hAGh63p6w9gl?hoQIrXW0TMXsZs=SjA zx`c;_;032;n8o3#f7V8W0ZYv18AYmLPw5_oLrAjQurPPIH|ki6U=kM@>Y7}1faTY^ zYM40$2C-~zdR@+ceupf2%{_ghNSZ24ci8<=@61i`G+;)aYMdZaT<4ICf$_J~NdGg# z9|p^M`Gm>%y4h)Ab|BjmFrwL6d*^%GuXdxyjp^y`y2sty3og`NaG~}Rj~hKiFkZ^< z;=p&)-@K0yq##m(4MU^Phs_V(;?2j_vBt3d@%mWyVfH5t?|7FxWsb8>_q|V?u71*B zd(2Ys5>J}|{e`wGKEcbDH*)K1FjIxvgE`$Z1^Jtt1tY#T4pt6pYgeYj6IEB)nySe? zGh;DjgDE>5@=eD=AtYM9L;L}`-!cD>Vk##Pa6SJfx+%^>E zR;m>bIc%^8*B0?fBI=SupKfY|LicQQU4MZdc&OH^Xh7Kj1$Y zMa?XXt1<-%Yy)xe`qd(ZQe;~iS4X!bpakFLe?rZb^VRKTN^;iJiDm;eU%^{q1xa#q z#jnW9ERB;7h*hi=I(zn|#TT`9R+#fI?fB&;`LZzZrISEg@-L6EPLD4hc3bf;_wmae zUpxf2W?xD(g)7bjrEs?(gnLBnrD?V1C5#^uNHY#;B|@6z3nZaJ7^{bnp^o6jWbuQsJL*bKu`ouV?q$R+vCO zBX5-$9-3=%yL?S152$9`0NO0U#HSV zrW#2?6SAl17!IBbGUsPDkDE1kv*mekS9wCe2z%+?#U$mL23K_?LQmo1Gnn6ROrJ4X z88N2x-elFrXV%PvZ(6w>Go}w7Gu~sX)DuI>Q3HIfnO>YTNMr9h3v^!0()scK(%Dwf zes?<0LRi_=S?A}V_J0R{{)$fdW*y}>1&x)DF**wGNT=pGbN(m!c{xkxx!;YSzar<~ zOlLQ?|HsmK6~fAY^ZlWvh2M?N|9kK=W=GQcpXcW(2rF-xGZAD5Wzx;&C*Iw!wS#_5 z>RA5!W`3T>x0(ND-v;*4`rLn<&WyLX`M0?_;Uc?ladXaayHaAb^1BVMyIf<3cZ?d( zu)XpZaSeTS`kaT6&gLaYJo4e)qx&A?oXsnrb63qZX*#g4`6hLUQ?uxUSbyzzqm3`u zek*MVvS?(TRsZ9(xr8<;|9IwiBaSaCd@FG>{_OLKW9+3FY2=8SO-4*4uCklW#6aS+ zmY)Dd5;23pUSsIM>o}(wSPcpj4=)<}6k`7o-YtPDO;1e^!T*wsC0`4pQ~DCtjd&uv zxz_K?ZAufEhc_|@lCL`)Sgj`qZ3#|c7a zyovg8j`LGd;ZpgcaD!lPtl$g5E4V+7|0ATPxg7pB*@(BdYf8 z2-u3PDmf+`CTaM+BjJnVR0c$8Rl4q(>pXv?Bz;SMR5q%oK*Up_mT(`jvgO9wlf;h= zF}uN--bg=Gao3S2|HM82!4s3`yRUl1(E?=D4F@*9nhQX~`y@0FEw0PS5c~o>UvJ$t$E5sZB5#8CKvVH3FLGNd~QG z9$Wcw!I*t(mS3@cF$5*HJVid8G6)D)& zx|Xi7i>A9UquW=j;Q^uFUdHZ%m!0fN=p1DHV9pTr8--A};8(7NZvlfA7@%v3=s#lj zKsNhX2x>CLG2GSs1_)-*lGRvbNjV?}1uIKyehd4uG6OK1+7v}cAcb{AYW=ETqo&1? zSY^?xEO{f%SOvy8Oq!4bS5IoJQUiymPU5VMU*)wZK`d8oUc^I`t&s#m8p$bdk%NF$ zp&MJwR;Xg`B8u8#MT3`x=1l02DzylP zC6Ul5-L{Q1eM*aa6GBT%-X%lT^ZJ{;bbaie5J*N!i$h8M^gz|&JaLl`)O{rG0KysG zxb!M>Uga@X@x|Yy5$DI)$t&v6$=Y?>Z*&khQBgQ{EkwL!(%R`$HQUM1CJ|{>N!lD> zdimC^gfMju^ry|U0tb~Qgk2e6VQ2dUYwtwF`i@&ZG&CJsRritMY|ad22LQO>MgTW> zD(dzF_BcVIF)+6Bf)WIzdSdM}GznwFJ}I@BY=4v;Ps*!uEZ=e>AGRT~sXO&XN-tm1 zDzMoJJUwJeug;NX(;QC@+)Ws`ZiFeF-Q$67nNqbaj-@$ww6JYko$xphsV{;CY4oC^b4y+NJvWOb1OxHNnMP*13V<$&T+l z?a*EY2}(w%J21XuN9P75(;uBBvgxhCtmI^+K-vM9Z3pFzhA8Jh)^xMjM*gR;*Ykq? z4e1@Jck`OP`FzcDt~JG^nN8A`mEK=iboFeJj?$9PFO0zXyFGPn#G&ux-9wbpg6`}| z){K?rPa1xH0gX+t5q(IZ;+xkXnMp`pu)UN2$rSo3@+fX=jdG1{elrg`el@}US*TS=bOUb`w`y)E7uE612XxO@krwed(8L<%aE_j6I`+ToTJ zeaK^@$1+`oz7$tE2H(U)rFAyrK=HWC*ye9@g&XETuG9^@R+$GXgt?q9=K;IeJMuf zUZFoQO`9?G{ctv+Oi4pSM?=+0oO_zk5LyB$?Y;`q7UZD z#XUkHk6ajKILe7ON|*%Mv*|1x$f5NPTPq*fGQU2mA72)sh60r#Q3KLeWyb=gX8|N# zdmEAc!-(v`)J%uJraR<;A(+o(CfGjoah}eIn-&6L7k|1!sEzk^{>ufc zh9+h_yuI@<(4HLN4=i>_AIh7u-MHrW9r$&d1hDA;sg3g13UgZg^4(S6qJ769zkICp zFkVP;GAptZaj%OYsM&?UzU^roe53ICqTK^je0@)KjmVAsvN1Ps$sJofiRk4^c5dy? ztnI^NS8W1^xV!ZwreFeuipXCE=}VWr=1~Ws>G#VJqj54hAj!bIkBM}wgrNpW_kA= z#rm!Zk z9h(r@5RJOB^|gF?flbHIyE^Z`TMgdJzJz;5(`y=7Bs&J7$uS7TlwQRum&}mGvge#@ zPD?iE`MMo)&W1nJO?zz)VK9zH{5d=A!Hy??{s{_Yjv6}_@Y#YNE3-4Fi`Q7Zm$YrI z-Wt5*do8cRT?oA&1^l_>zEw z;13Z0>r223+MYrnfm@Lfw;xH`MX8ieScfH9d>Y9ynkxpV zZ#x921UI|pp5=BX%oQDm*JAY1)vvXeX45lEn()+cb(97T?rBFqbFqzXaSdkyBNLn_ zbL+w}D>Ke%Wd;!TV+x~gYhymDvsIXL1;s~=Sn$)bsD`!{EFEy;x-|cz$mrhR(yxW9DS{20tgK|ZfuhpHqK7l7zeQ#6Ys-rpI4_m_tP1@f|EM7 zA1agt7Uk37vuKRIg6}}$T_AiIV?&3i@7&VUnG5Kp(uo~JS}d_*muP?%v0nOYX*k5OE`Y_54>t#N15;3Ktx^#JHB- z`!!q0?c#8!9arVkmHFU5i)u!?CM1-WGOd`LN+#W!J(bL7BCDagEgcF*J63lOI|1N< z%BMic1C6Je$%*}nBkAiP@>Rj@uw(qVL!MyOQab2C_1=tWx#~=r;;Iv)ip?B}ZrC(| zRg?2${JD4Iu8V(HY8K`Sm&6C4A602I|44otPd4}Wy?UncOS8N;(c$BUTcHJBF%;QP zT5&Bct-BF0hzqQ;8AL{}yg)M=39Z%WSI5x`hDwl4_Qao?N@!VjShm0sl4z_Y3s8JC z+Ss8ao90RQpTloq(rd@iVj8|IMrNE_PU#{;>Oe^e`9lL`U-Mf=n?w6bI-FQL$+3|c z0R6on-qb8-UTo%jST~{c-o&U~(BjR^y2m`Ns6L*R=JXV zwP986`>?V#9{EtoKNhLM;5x4qgUlo5+$Y`d3SrH~n&O1BH{6fY@ckAE%sP+1fcH%w` zVVmv5qH$5BK=a)zeLm#fYM}`!Kjs$-&bGz1EW9~$@tmQkMT^H^Mx3aezb{@E?7)Zv z_4AH}F!lPr_)$&V6?eQPA#z{TmCpHNor!i=JS*TEK^{j-aQ5}MIpr5UH2?( zmh!#gNsGuI#Vfc*6ne)HXDdTDnZSDuK40Fnt^6I2QwAdcPEFj)S%l>`9WIhs24i+` zJM><`v5w#+sHHikVQRDDo^;i`hj*`S$8}R@>*<>v{j_mvE7b3{#V@;dxLh2>o#It- zTX#}Dz6z&@oU;Z=pZ$Eos|^W3G0)j}sM%s(aYr=EE9KcUobH8d^G5c-ml+&W>6NT= zJIev^Qi+0Jx-B+I{MpL*-^{?q*Setij_O_VM-b*)39=W2_$(G z57-NhZfz65#RdFEJ=jE~csj>fFe1hkg$X9;X6(|dX286~uV?<@f+P^;0t7oF?esAK zxQPHbd-AooBAN4OLkesWCOr+(lF$#QEtb6n(r*PlXF3SKZ!CI@R;UxWWEno7KC+b1 zqg3gdJDh6@4e#YQ_nHp>B*M2C*~i9c_{|7^WT^5zeN8-y-`! zrOj}*L?~K=a>d72v3!uCfEJ*tYZhqP41jd@I5)^O)^)vQqo6)ru^Px&l-mJ^5xAOG z{rH$dvZj^p*yu2le!kCd!n7VSwc{b~L3NL8!o#kQ@K1qPrqCWph|lFu7JQ&f571SK z^@Wv?7Spk5_{RPXH%#CXt{AlCLgm(>9jBlj6m6I=KJ>qY|6^ z5KBprBPVa7_}mRmj*Yz+Xtf5(yW@60Y|RxXkmVVJAAm!EdkHTkRwYHaY+IT#%O4AHtH@6}XfL_-No%j?*F3KIWe=O2WP}V^#-uH@nZLVd-dWvd zLBU@dTANq~kdQqqobwkA*ollTzw%d=2!`btSACUA$YSjxR;CN@j;(X*wg?qFi&G&U z7+Ngny=Zbek|JSQ`U#rI=gHDU;5-m}3s$1@xTZ(szleL&LqNiG{%$=z2Q)va^@Mm z^n}EumnJ4+_rObZ9PeS~_UWaF(k$oAozdz>{+y5lmXHf6P$odLlo5H0@zxN;P;n4n z4xhgd6Im?XuJ4Ab&f!3yn9d7lw(V%!6yQ#DepXRma-#?qgQmGYdAG^KEJk~lqj)ZBfiV1oUgZV$O-hmk#oA`&gmM{N9eO$XuD$x7Tiy> zP+Y}XLzs3|bT2r*zRzLviadH>TGQ#~+%MfIK499=ydPBhqnG|_R2&d^Y)m*dGe>DP znK6m_S#rc^I>viT)pkJo!rbP|;5N@aRj)@q#+C#IHf8SRudU`ysCg0kHL}GEM$=k6 zBXC9+Z>{QGsM-h-^la6zRFlo{EUgti!*k9c%m)a~kr2GQ@H1nv@422UR&6y@yMCgY zWqnq(nN9Pa`*-^yJ7&*@9R<&`un?R%5T%z>vgus)B=gq-O$^FA9V$rLl$2h4 z9TWt*&|eONcD0`dt<2PASR%r}+#W=jH7UGIt`urx$fxN;^WA5i6g26Md(+aQJeMo|fG&bsa)YFk_~QwJGrF z6$o|P{eX}{c}~W<^`4sUe@ulG*FhS1Zm+o+KJ%1vbt=(~HfXb=%*&Mz2bR8~8>yH|&FI+fnz1>jzakaTUE(-J zVpNBd0Y^BGe_$se)&FUU#u*X%14)DEo)!LcN!YF+Q>>E8x|bV2G~pQ(pr`f}{QlCS zn2c$j*_vyH!70VRZ{xwYWupH+qzI!WWo{O1IKfJm^Z#b3J8%5XQk%*j7(@JDp{hfO zAi$OZernf?46U2J=Vh)h4`i-4|0s)=*t*}3GKhL5rI*H;umLf=v~Y8NYlaQA<~sb& zOn~Sm$qE*!kt~i=MxKc4GymXQN?(m~Tw;3fK(ABW@D18nG+{&r_c4svyYc&|r8H4O zpng12euaj{M%GfSkRpmkcgREq5%J9&ai`EMuB9TKt-`H4neOMCG5P(e;4M9AseXl~ z4*3tyR2HJm;Fgcyzo+n-=lqTn0*^0#lMsyU=kNsW4;1fY-ZZXfzj4P)O4;}OmEqkx z%O_y}MtYL+@%}`ygv&zD_9*{KHctGe^pp*-J8}Os>PCA-msKhVAiaYGQ0RV0lSTQJ-M4WF!2)kK9f-JM zlv=5X$#5V-(^cX|d0$ugwxGUZ46;m*gf_@)U0~11lX>&4Lg|uY=cgTx}}ArQ>xcOHQ}dgucivI;{&_AC`VlPqBMgU#9@u;9cnt( z2u*Whh6aUTh{oWI40Ql+tQFg<>7nC6e($2KogVmQGUv9Py!h&zPLb%$RXhR0OJDg`+ri-L8p4|3URHB3K6939bMc8u* z>@h=Mlz5(m&rp2<+rF?;I7BH1EnoeH0d z7sZxu!MY-m1!GZ-h3*g?+^nkDpFTiD>_2g?ab$|Qiuiac2Ys-UMTlC!vQ6LJ$F zWi7w{qYhxgJyM)_YYyzBp%{CF)HV%v3z5<-_7yT_2e*v5dU^+d3en5LJ%8whbKD-H zS~`il32m#Pz2a;-vtXef`8uKVg3Brvc`G2|2NvMXOJ&KG-%66}O3mUt%QA{`v2qph zyDyvv%J-Wu#^xQx=Qgzyn%XL!zZyOW;)1-jXRqP^wkt+&*SWe8iY}Wi8b1HTGDtU^ zL^9LCJh=Ahn+FS^ua##E*5d0`hDmdmN3^<}5VI_zX6cOu%Nc@Lf}5J zqoEyf$ilWC(Ncd)8VE~fE4pj)iFlX#t){XoE0cxcFyl_vpHB9e`a8rm#l?1po zawH_Vua;Obg9Pa{&DP^9TOyb*C?yJmuu!<-4>{d1EXy42f=&_P3STS_c}FL~CUoeP z=46Y7HIpb$>slL~)^$f=WqN9N-p1=kaO^AXU$Y+BnX)Y-8J+#~N@7&a65aD4S|e5x z&sa$e`F00>r^7QA_Q>S*g*{tWH}>y1G?AuGwN_TUEZnmUj?mr~;%eE*Wi~MgwQaQ&M^!0adwAOQ!lPI3 zCe=qSw#DjgGHE~N+m;~KDZE)=x!sgIzfqgXm4ryR~zWSuZ<22V}{g?Jn> z2un-52J0LQi!wY5?E0XuO9p1S@aCG`2^5T@u*Rxr6?<{U)-p{0LSczy)jg7vb*Rr& zfiYq@+v^J~_=D!boiEeiN1$~Vu;kJev$jjmH#y3>;}KN5_Ks98$~DMn#s)kVmx56k z=|e1&Sp~F@D<`V+5uoUwvjTt^n}t%WJBWB4#2J?IOrcE*8jR&$BYE08`E?y7TmG@( zN5o2KS4q7peGq-q_bXjNt z7>!oOnI70-@PHxV;-R&$p7^ktT~C~O9oO?D4e2q!oBEjUmW=?WFA4RTzN;zJVFE0x z*s~RgxU{HmqvCp6kc8t8jQ+E}#5#Uea&V9%o__v7O0v#+}Mmb z1BtQm$voOY!y9`ss>4a9lyqi4NlJEPXo5T~au8co_n62n)j>X!F*n$mDH=kDivNO)ib!czPWUq& zaT~>%G2+aGi|s07cTtY!v+;W8+r)i}KKlS!AC`C=sd>_wf;Ar~S-2419Hf%dGmRru z+Vd=oOOkxWO4i;CslC=-STQ%bws~3ErWfq?w;NSmVatfxwmZ-J^7IK$6&MaeN8BuY zk%p@m8K}a|VJ(x8WwY~U zIV2KCnyn>FWk|)&w=J`aEhg7Wf5ySKqX6HMGJ(Sdb)cr(*Gtr;DL(Axelig&?k_%A zqP2W&zBCJ6yCGEBBE_HD_^HN{%uPQ$;3>k7zbVq8%{x1p%_~bQ?guT?l%~O>112pz z1=%y(TvqC?H#rP?Cy90lMOa=ul#R2*Y7L5$r^hY_9Y~Pg%;MSdv08|cICZ*y(jt;& z34wJGt)=(1ylb%cUu}lO`USHMA6t${co}YYohQ{@Sk4hmN>vG87m2#4clu-}@i#VR zaK!coHpXzH@%S#@astsIr&1St#^XNb4Vyu{lb`s$We2EuXr_fbNSsQ3>c*Q#W*ma+ z1+=NDczW$k-N<8R#Nmb0w!f;=Y0VVbRZ79f!bKoLNPW_#tzx6FfT0vjCcJc82bGmh zm*LFA7*}bAYFYPJ-ui7}X@hbWR{1Cli$68I>8G2Z-D4^2Ew);q1+1gTbWQCC=3pq9 z(;i>xM1=fa=%aO8K}fv|ouuE$)`{=fYxX;ib>X~@*ySv*g`~%LMFHEQ4qsj&wia?A z8>%Z!#0>?T5=p-?L3nP?GUtNv1L5pd0~a6n+jRcsEbcuD?e#vmZ>6pWxHmaXR}0dr zjR>S8d(7yZOwmIU=if9!d?-C4tBeR+CMdFp(J0RlB$aXy$sioGBs$2PTLT$~{j$*Q z+6?1ecb^ia`{Ee^-b%h}Ksv>p3oM|>U)P}PR_%8J^pUfqjK>&uIZ$efJ+WL)Y*FG@ z;d8&03xWcwaAUb&rKQ3!B5mT&k|~Zh9g87OfTVb1sWhc-UBL2tY#1$`6PyCQZQ-_s z7bA>Oy8M)Qf)ftxiD?>-==jS5szHt2A;_rNnZg1uD84hxSTUemi`qp5*TG<2Xk@Sk zJ|3&<56QVn^!G1di4+@)WA&X?~$iU$p7wiQna5QWk+FB$ag{uIAAP84;mN}w+pD9O>DoknK6 z1%}V_(x_N*bL5{sLW^zKVn)POQrbN=={2e1Xc-Gwl;^Rr;ze!ir%-A%!^|@bJ%$|| zuMU>|{#*AESN7xdGhxkNJ7BZ)iwz-uvF)%woD5hv%tKV**brgJLFK~^(HFDrvwp!ulLN8 zd_q@-hQueRnaf#{(GQ4A1dK508C!_gJVnxQ(7E?JGz_PSE<^L=amr>`ZOUXBHtECw zP!7As%px7M?9z>ow~n!``9-2?gl~}=Q$l9{%FP`GpyX{p{W1bIVy9Vtd@%j|u3=tZ9Ox9MCE}9? zCkyY)G!Ki)BYA|GfVsIA{G_||E=IHL;B{aOcWAoAPS`0gQeDgz-JYJG10*Pv_mU!l z9S>u-ig?gz(G3VAjKeU;*0@vD1qp_hCw)nII&s#hGA__cbjJ-i87#S`d)? z^?N40JDK?$iGmvYk&SaEkj9+?Z2Inf=#%AEXSU&(v$qU~JFX6DRW z&6gke)i+BB=oB8q>)F(6Hkr*4G!YH~ZjRZHXin%X?dE}_&Q;el5YK-xi3G!b1Vq$K`=Cn#T?3teC4 z$Vsa2tne#R=vhLlNDM-@HuPF#&;V9Mv6;e{0$Rnv*ihtg91P)v?W72YFph3UObZ#Gh_Jx zghTGJ2qMSG{H;|qzG(kgoZ~RegM5QSfjFh3_(544sx>B+C)QgkYD;(D#w9ELm{C># z>ds@-c|)fhr7u!l@P4s7TGG|783(iqcM2^g-3=$kw*1hV`!Z!qkEPbUG_Gww-t;BC znPAhF`9+nT6;{HFtOW~j>I8eqsktpJ-sq2Q*{2Q%$` z@m_^}ythb@Mxs}?9|6MM6~|VXV2&l|CC$?}Vrw*?S7Ms1+PvMcxw%NkU5lHQKo1q0 z#ic;kELt>|+*cF(n=JtH#u2I1fMNO7di`L0a!%rbVt46EcR0$I#p_HZ4jWLVj$NUuY=y)84ckLS z*01J(faCf4!=e;x*J^ecO>q2G+w12M@=E^J;Pg22Rv0`ld&TZ!){$k0c37F!e9i{? z;@tWNsq9CqIt!`P=D;1sSy}wuuR3PdMLcj4^x3&xHg>k|8tp6F>6snO!M=$L_+Y{3kni)=%$AVp6ZgM= zYhKG8x|n&K@0731uoQ%3He&u@UuxU-MMsJ82UKN;Jf|vng5?sn9M`XQ$1iM(&C-$2 zg?k<`ru9Mt7L?Ywfq>`$a(@O$84_*WYPS&nt>W4SYHYy6T_fracK<#XcPFfs(kXWx zS8cAmb77uc6$<1_7I+A&m!?%2$0yTD+#6X;L-JtJ5G1(~t%7^THF<8fiskVRdfIj{N0@Xq<@%O@}cLF4#t_^jdor7`Ug>9%CbJ zxM-PFBXP(XCvqkOC)l3se10lWTk`6>%4|)VYd8LZISBVfx9Rw_^hcVa{!TAViR;7qiBe0j9LtAG z`~mNWlRz#G$1R;m&<9~TQ?S~g(0nvP&Q4x*q|DOufJAoVXp4O^Zu>(v;f6h47M_4b zhcbfp#3ob^I6Vhe4c9H{j@#*^nhhJQ=O^bqn{5WHg&zg;kUa(Ee0zxYf$3a|(<85u zO{)rx&Ja_=OG#cOtl{fPJyUhjXu<*`vniu;)AtxSfzgNehDY<5*nxB?U+iWfBSSTa zhHEv8ub4CAr0qL45n?DutKsOFevy$wKC~e{K`BttmtfLV!s7c0Jg(74a;wx=SU~m# zsB!rEUfOYAedTT3*U(o9{}BC5wXk5bME25CvAvf!mjzCmW10$kvQECiHpL(Lx2Ds^ z@78sCYE2nLHT^Y31Z)GJT#F{F>k1j~>0T1N$Bq2TyVDz#0#MLLV*ibob&fa8&k*rO zQ{-PR^R(Bg>cI%NXV;|dOIk~B7EVlKbGwF#3PgXUY#25v-dLi$4gr0a-#C3_hP09Y z5$+k_B@v%=JkD!yS0o!)ZxHzQw~d$r^d+AUTbEIcT6P4rJfxI}s$7}~u5 z9YmD|BsYcW(Zc%TDPZzX))McubRaqPrtDu1@g+Zq`uC*}V1E*T`WKodc}UpZVRzxF z$5InKzSh2ibfNkgJ)+qarA$4)8i#{|`dp!7NS7bi=WJoJ_^M$mFi-a$RmZjxqgg=S zhehjeHDY4F5y(8K7?_o3jGvpQ(by~kh>DqePStsER;qAZEEl%e}7VxQ&|M4YhEiIx24`h9zHQZoqXd_8Juhj)w&cB>u zkK!xDP~KKl4w&RuAEX>kf^MivHT)D*!$;q^npO?(w4Yp1<6(|3nK-RZ)e{C&jS)ZK$WMSUkN zVj9b%5Xd@c<*V23Op(DxpRw9BT3jnioAUfo=Lo9%b$&%0QcD@$a8<%qBYeH$SA2Gf zir(XtnqrV}rEL}Wd(K-2o0bYs3XM$1uJk-B2-j5AAVo5;fKN)LEfDQpz_n^TMsu;N z<#5FSJt4%>Ep{FD$f9Si{HtOtGFk1YZFB*up?J%%)BIfFX;nt!TS0Q}Oy})r*A>xG z4osBXG&!E$cm*?D)uU;A9$@XUPfWg2-;_sOSa50&OA9BpCyJPLoo$f8D}sdZ>~$gF zbZ1**u~zp!h&y^gD(-Q2oDinLRuZuIvViSIunz`>g(n!HnAd%wFvO1DR`R9e+W>pn z*IU8?j5A(HE2$J}uA2x$52Pm5XKY&PiJZ06Q}!E7mHLKZPCbEmpWxXBd~D)iXbrAk zGTT7*3C0x8w0g7tVQ^67j-q8Cg4Q$J>m+3=+r(7K-TH?q`V9GeD=O}X)R*>G7q;U>DMC}@dRKqf?t3Dj|b!%-~$FxHaKxR6BJHjaBAlT-F*O6qSjUbAm4rtQAz_uA!zmLR780nh;ksJ z>;|H|GotK7q68Q9gIv_zd9y=oHD+8k58C9sNdMwo;UujUxRp^V_iW$Z>V8MG?z?NV z&Y0)0wOZ#T$Z8sM-|_D|(zyAtn-? zy2^(=#O!q7DEgFn2}eqem>%1fNz^80z7)anwyaKBd2%D06T%~f7w;yH3- z3nx+QVzYj^($f*L=BkLf4PFl@gexJe;VscVA4t@J0o!;DCv@B1SRd+CGAG#Dl zPW=AI=82l!VA6~AcuxT+CEW9+W#6ZvT`iQ}y5!23D%SNL^JbrYIai-qG+8K~TVl;lk1o75Tj1)!;QmAbl{y?2(1ilXCfvwU`<-*+#~`9M zsEA9Uk#q5L|F0T=@91O=Yx%S@olSPMO%e)Vu`%JE}Zd)iZA(>3cSbr zV_S~q<{Q+?1~+mW%V`S5wIkv_ORKM_j=Xx)>U(ut;C=UKS1`@3&!z6@oLw^j#>aaW z#dBD4I2_jD{U9uC$=rJLr~W|SZ)$|!TvmnPj)t<p60KCYAuk{Zn5=q6gjXi3vCRbtZ|1C zQgR+Us>oyc8k1y1rp2yKfS#A?4wP#xG_=Z=Wy9FQI1JNsDa|Ir9BtMnQ%i*#rz7)K zF^-=GZ!k3(M@%X!QC-wfnCs7w^K@u!N8oXjZcER?5BUq|5kJA+5R(h&-S4Bb!0*l` z4Tn4)ut#^rR<{=mXU3&_=L8_=;X<)XsPb#H^-Ud7fEHy3N^_;QyM~81q$G*DWc6W9 z=L*~xj~&8U#z>ZA1TmgF%qA=O>vi-64tQt%?XpFEy5yJO#60kR(CuLzXN21`x1M%; zR@XmVk`hkuO+#ZfuV^#hbVqIcR1NYRbU`I?mczp56cs@o=T)d{iwcZ-pgYia@~>Q9 z==ix({*^MAHs0fE((#Yx^0K~xmvOI)UG8sxuNO+jvo=dqMd;3$oq~9^vrOjgb_SgE2jIi;7YUR-T z*ER>RBXV|3#ITsO3u&-=`BfX&yhf;a+^MQx(HFWxCOAtB0WES?&m6h+`WR!+ayOW2 z4U|XW|45z#;k?b`TUOvj{RML(6#Zy5TCNW7nlBvZweV zAu%qk=kgH9r0o&dFh=4a|DzowU?F~W+q$)-E|I=<+>Lqcq}wuD7jGBd;(V6tZ|C3oD#fMd77Cj@a#f~) z9io=lX8nO%k@UnYil^6*euMLq+T`=~M`B9{e>4i(Kht3@axx$yxK}r*eENuHdy27$FG{n85v2f5~X-?V7)B7N-2QEeMuo{O!pNkO1H>+dSwNRBely;;K%Y zC?w;8_T8_0qW_+8vnfE^tg=v;Lkl88>H(?XJTL^LbO^WRteW6nMSg461-a~NzSciw zKS%*3kYTys=VmoF>Tiq+Yb%!iXp_hMn)%w69pGMiY0-01Tj(PgY~!&&$|;S8zOPJ~ zmh}vy^RVG*hb&c;1H-=@#Imjf0Zkbdk9!C_-fR8>Y;~N2cv!PtZ2%Y%dzo9dHG=27X4DWZ*t>j&1gS$30oJWpN}JzaDj*49v~~Mlv{N{OJv+Rke@c_% zXo2>!fOr@k=WJ3CDs>&ZVESmD(BZpNM%?}7q9Dpgwjr9&J?Nbl`qf3 z3xFj<+(ri^77FK!Ha+!?J7>MH5rR*zmx%8o+Wuvc2a^kFwJl9XQDn`sNOjmE^&fOT z%wX{#=z(t*DZanO6V>w_ztH5pu0m3Ob=eTlZ{>pvon?M`elrJp5;vhK8ZJRDwYh9$ zD{d?BtopP3s=h}7?C%YE+7 z%;f4#AT%1eO78XE&i30}m51X>^)h$bYUirwz2;@E(W;!(n`fV!)Hv-mtKE95nY*hU zUsLRLr`5bJhB}icm2Txl?iVZhxqDj)5XvW=+~0Hh_-Xd%zooujwc53<)=95XOA5?o z3e@gv)n0e7%)H73Fm$1Ea+3S}T?*Fc?{eK%u6tg~T?OE++DWd`JjtEb+qHx!8PtV#`Q)V&Nq^Mo{9S@-;Jx%$*ppJboA0TDn&ls?rHD4)Ca)5#s{%k*`-)opbju4~ih zmCnvx^KH9zU2AtArZs|-VOVP?MGavm!SY4!zy2$ZdHnb(wDfZtkI&uMkLl}P=X?-g zQillwILeC^0Bmt<0Dl*0Xar3VT&|M&+U7v`pdup<&zg_NT0ib zF+Rm+e+I8qz5e@%Yrk(1YtXr_v=JtgfmcB=UgSo+biwE|?cF)TJDCvJSs{&J@~LxP zKkZJwm`rF)>wPX3=Yv4|Az}2>cIzs#uMMjt;iPuTP1i7Vqu%L;+VS0%ONb5fG%BR= zFgft)Wo|$U|MjojCmZxWBJEzY-%6lu?oKi$@iIg@2u9`PA=GKty1jOjFSY9BdO$Cr z68rkaNuOw((PcB*2D0@U-8f`oE9oGUO9Tz+8|d0NAylnwQP?BjRvEYsJ*izI7lR0Vx=5)7Qw)P5XZ3#0{ps(B z+=~o)r!FcL@Y z+D#8VdUP~7;@!0A{tOR{Rw{kg58RU;?)VXVu%9S?6gOOBEN6@mbyDCoaQsDFW(BC| zRzecf>7s(79LWp>8yHwQR_HY$OTB4B?$Xw5bwjn6xn>XE4|+Uz-L45n?PP|(PHX7- z+DQb1>b|OXYDwA9*vs5(=2fVW=}FPlyE0b}Bdd%a_E2{Oex{ zIF+2X0>6CzZvOLkKYadfZnd@u-Kz5|3)RJHZFPC2vikYEer?Foi>OSBL9ct=T%G?lgXd$Iy$JY=1+GldGxFoxO|cQ(`5{!n zwFzK8cN;(COn3C(1XO=Ol0vD3@r-UI_ux|ASavK%m}2)}9N$QaXvpJl|NV$Dlsf8< z+$(u`eP^)m--RNfA&F{G+x@z`K2)k5I+|;prhtW#VMMbi`{-r#5=~h2qM4ZStU$rMXX-1W547e z&1~+fR)Kz>zpFINt>|;L6i6I>epDO+QS=ab|HP7+Nch*8~xwN#?#{axf|&- z$}<+KpXM_@aju57O*Ez2pa&f|>pHDc|Rwyc&8V(32p%0yzi~}0oNKHI6$;qNh zf1=UrQ!=Fk21bB3J_X-1!pnFWUow{d8FT<(D3ub*NP=#q-3|SY0})5Tdmii(u1~Al zyJE=WwKMD8EC2~=^1@XJK*2QO`9 z209TzBOML=vov69VH#1>_|j1Nc^Wp#5=?-Mywg{;PN#Av94Fp*04Rv+1Rj_5pGnD7 zZUTn@lXf!w`EzqppRBg^j*ma^eM%EQ!-^L#GD4=-VtdWXl{ID>Ni7;@jVbEwo z8!~sbjs!ShFqS`YLu7B z7r&&64~y31FF6qcG6ygdFLOTBKjd6Ga#@xAh1uHtEdOP?nFx|mfQ}?Df@BSfbh;CX zZa!yzuMk45Nz|#{IGJ=Psg@!k;&1Sqf=QcJ;40dbP%CjJQ4#XMFr*aP)Zef>gzu_ZkU~`R`Vfx zl!m~l7NpV=MhNaFvr6RTWq{k)FzB2=je^md%v8)o!9pO>F=Y%ae3&i&GWQDsCQNU; za@>H;#t6|ZNiA3%u zq~ZL_bhovKxow{9SI+wNKX<><>*30x!EL3{lazTkCQ?EbS@|nqC;CJ{L=%9bX96ru zx?r&@XxGb{jd_P~do3`0V+z*bRCZ&})(W?`YjQ`HRk?BZOX%vWn7cE*I_|1E3 zrrEn_yykCVI{Ra~Kgy$l%lt#5zvlwG_%Kh(aY-;7CC2T^W+y2yn$?;F`6rOL3c)vH zv0=G293!vv1-DO!pghJ91f@WR!-j*y{k~HKiS2+GGj2+h-_3lIN zu1;VJkNf+mdf^-`I*nz&W}5xHaG&!uh(WJMLn69)u@npB{$cRtGelNay@2&(iWpw? zQ!;#_N$!V{wYLm&?{a4t1{EVCkK&_~Nk<%3slX)uFi35G>tNCp4}6EZ7{Bl|mZGgR zMO}biYHDakCq;_qG%`6<-@9#%qvZNMzwR9qran?&^XO&dHB|A_gpE?Ap3sP^)2xH9e5o!Uv^FYdB= zUB2C}JOJnp*=XH;`utsb$@TMhTCp1Y$(Cq*1O>0vILRzhQMKQMFa4MV_Fo2`=)bU1 zYI4N7uQ${$n+4yog@OPus*u#0Out^T3}S1dqgtBm7iRq>z*G-MEV_ZkV83mABbN*= zo{e59L!&Z2wG)@Sj)#0cEv+uUoQv(lapTv&%r07!L6?nQ#sV`I>FZaD`@$^s<}DVP zyA{v7P3B=N-x4uwS32EYlv)erVC#GnRru$MH=U~qIkF%UCh+3b+j^&0Y1AKafvDc# zjhX6`+Hvpf%+~YWH8jp74&(e;w32_%OsKh-}c|Di!9lq+!7 zRt&-CdfpN;V$9e4@ZLP$HR&zR+ z*9s!)oOyqR_DxWyy*ny^O|_X0wW()QPcgM z^_?GbiitFH1RuNS_=}q6Crz>L=D~+QPvmGUv;yNb@jewY#R)LPl6Djta`?hEi=Auf zeibIGakRhC-L__EUiVXYFP)bBJ$+TVX8o49{Qty8?J2i~HlME6>J5E0AUUxQb@lIm z6CC~r|8IVdT1bEVpB#L{XZ@Qh(06DJC4(8>{qxU%`DJo)F8AO6otwuWWaX-@zvq_i z?=$_4BRQ2jevwQ#Ciyt+T5s;fmw$e4LjNJg@8nj$KW4#Zccakf4`=@dD~hPJEPI`I zyVso`W@hg0?xyb+rd#c^nf=`vrt+&ZyQSjyha}O?BNaT)&Ckuv{F&uOaK29fP2XQNGLUM`>AU)6{knEiuNY!_n%Sdgf8IZ@vG|KF>(q{n zjZjQdSS?MvN6GG&oQU#0otMH&NPxsoPe+l@{VyMzP89er%qg-Yv+{GMAdokyHWb`^ zD21faNMFj3jKhUu?hI;mahrIwCkT2XBU^mCRDpSuXGV3MJ28( zXLT}f5LBrk$rVEOeXdOCx;fF!T{c^H)1g+UbyY+5P|KBL#g@-1S67wqt1Zlo(<>QV5S6SY3YS3>5rGW`RT7-aPyaKY{dgF}15bL==#zC4VcsXIY3oIT?yqLxw^vGhEtW>Mm zSTCOA;Zs$rC~}O!;?;}4MfFON9HF#dzCeL&=PQkBPcd_)ySN1A63MZdiP%iG1OB#d zexp488wC4TjggyPjO|db1#Zabg;H;#c7oaiBj!wV6 z(86sT++^4$E2aWMk>im?j#EWGHRfLC8uJn^0RB&|af~tk)S$rz?$QtZdCZ>`6nAQ1 zCmVA?{Yd*vHs<5gz-aDi1%d3%e-8HPpE(xYO!%${j?__`wDBMSgf8C&&3Bv$tsW{2J%?4TzH>rYl1*XNZ2 ziHaus zXtqZEw9XtU8l};$U0&mOWX@TK6qM%KpZ!f7*#x4dp{?r*D{yqnhBY&yhH0*EZ|SQH z?_Wg-Wc)Zh;eCIvS1(MFBz?mMtD%u*I8g`X~nf3~QF1ufL*;P5j2pBEsg$e;ZIaF3WUKmRiS<;D1izs%IhkgHV^ID00@Rl}V=Y zZ>)o}M7;b$8GihCHe6snQ{Z^Gz=9VL0HW9yx)`w3JB^c^Wi1HeeFqF(jY%ScBl7A06H$wHQVN|2k*izh#*yXZGqo%h6pXp})=Lf#uBDUfLBhuN27qq}sjg53uXLOSwanl~4Sl^!SmRW3#ek+=g}CKpc(f1`O2l<#3yGRdU6> zJ-w~4N{|?#ku-5inA8nWB1*(4P=hp4Q}fl1R=1MDlvW5kf+7q4(@^@$FE+V6ZM0ZZ z(wph_3-rwJ>$B0XkNvgPtbBPf7-ZQX*Cpk#iKl$tmGUyY*Ydxh7cL2AuV2OJVBU+x zYw;9G`%L_`B<2}r_qMKCYqol4=YatotSKb})rX9;(TH(fL2cFu&74f<%Ao;A3%9A$ zWjBH1psc_fWLw4kDzNecThK7!oGK_WQAP ziSAUP#eznq`9;a?om!i+qg1TaI??;-X)y)_AZ5iyw!dUm>r^XbF8Z>RKYV}Qy=t&7)nC-=?BOEyI@>K$ zBng%(3=BqIXL@=DRhPU!>Y@EQBVMu7!`8Z7o^EdI%CB;``<_xcsZedN(;p;}%->Dd zJ4b|7yGJNyA{^PJ4DuXQ59mgPIGmv-3`9_7)Q3@GU_* z0oo85;>W?Bq}qshp460FeIg^pX0Y5ZzjP~SGr}+SDU8pN7d-NELoM1@nBf^Mf<#*_ zp0*l|7R%q+<|@R`;fRML$)FR$3-;wFD5r_=J~i0!3;SgW)(aWLU|_mq&hi1aPU=7# zn)_Vl3`sm+8Y=1oe|g2it@0mKVPLoJ{C0mt|k+;G+u7#(_OHige#L?E| zm@i>Pd_0(2kczXV7V>Y)0+VWU?_A5tB&iqzu-czSqi_piZ6Trh-i2vGGJnsxwzQt| zA{3B38N_5DLlyEpiJKmUOkQhBy%W#`tYh7*b&u$bHp3kC+FH7^(){T-7%^BpYS(ZU z;2K*kv27F(60_$Z6GW_^2{wsZbF{pyjb#dtG?FKEb~9EU4Dk%IDs&_@27;sul&)GA z_0FWLHz!KEDlstYMa_x@VkI3vp_+EtN$G{|(lL2!ed46b3^!}ARprTM2;Vf4?e^3D zlxf3XMeqjHU)g%A{h34vgjx`bpzZWVRQVxA534h+w^_`>6jD{pxDVH{*V#&rYp_H7 zBxFQ74zLOJM`FCjucnCWRg;A?Si#?Rlyt>^fh8l8)mfj*u$q^Cy6h23l1vF(S~fz( zN?r|&6lZ#wldTe7N`S7l172A?sx3^;(e*j0Q*rdYbmaGd?`gZvRHQ?2t=E*~`uId; z=dTB<5Sxqz`7?f$Y*=NY-AWQkNrx*4kL9CR&g;s5N|z;oq@^qW76B$C?N6bOjH-i` z2fxP=4L$6(E?HX{XppTq-6Q+bZ%#c(Ba-Stf=l{4Fw>8**+lS@N=%(vcSnf@Il5wO z1`!%nrjJ_a%6a{y7T{>sn;~KPTSR5Jnw0$bihLbkb%000Fi)r3jqDFmR`)9u0>oaLk;{cavZhR)@rBJLgj?ygyEw0I`-UrQGrL? zJb|Sc6Id{O2jzdT-<#Po|2yevPrAF6=2TjEsZe5)j+K;E4em(gx*nm6$-=OBf2OVR zk-Wxam)=fT0drM^RmyqK!b$r36s)AsAiR{ijbKCbY>^_tpkLm5l5lw<_kQ3@s__6P zWn&`idC}>k}kyq12Vhc(A&N-6acFGw;4pdIQ57or5o6gq0hk@S2meWOI{lKls za3oB7PDBVu2tuPpo`{zZG>b23=TG5P%9Wa~H>-^v!!|kbzuZyG&f49Iu_(Qv zaN7IP-x+lDBI6$J_9kX9106X|!E!XuSl z=4GaM%Ah93JpFE5;gs!96;Et_82;3!0b@P<<%yQEc0N@#W#6U7BU2_(;;fH1+P8z5 z4{OIAQWz9=mw%VRB;)aAoIENPV;*pHIq^otrV1jn(nv;}&GwZwm;su0^%&8_US8ph zH(9kZR_CE+r&pMTI!5yrD>C*)y%x|E#)+k{C4jfjW-19Tvon-7JdH=8h^8l~4df z3@VYsSWWMQLPFS+n#GDV8j-rOZ0gehWE`Y^fRf$1;9Ofe5Ohu0$;q*G6R4nTxgnBaTyu|Y4+F5oOB#i9UhEc;ENuhD_0mVDWh7jpsq#9tWI6WImPKfP)DKAAdd0b+ozpa&QZwt0)u=r7%fY2 z^iX^$kZ4i8 zu$2lEhlD$MT{~*_wDsQFONs@jWL zNld_%TG!F(8tDa~1o39)^e$pSj*s%)Zc!XQI)MmoKjoqi#fq)7h>Q+h9Sn44V5F^< zTPy!O)@Vi{`6U;09JlKq8gt>FngaMgB1sPs{no#i>M5^ALP)2UL0|S6NJ@zfI z+|Lm|9%Cf2zC}d8?bG!E4V?Zqx|MW^!KRW)5O@+vC3k@E5pyT0HcJDn3N8z>59RT3v^OIx2El~Xdnl}w`^98H||=O z0n9WOjKNU;fP1#FaH4$O3Xp}J?5iB+reG=Roo!4;grl)b&3pnc4rdXlR3KK`;tZCb z)<^G%aigkb$8RKN5Td;TtJt8_Vgmnl3- z8>Qc63a9LH1qbw zVg#g&U_8}iC^*nyijFD(iIapEpP5ImF<9#8AF6QBumPzGX<44O0uT<=u>_Rh5ypg; zSi4`=QinKO+)@#eriUPhK!hBlA<*nWCcGA76`fQYu~uxv$EDv?Kf)0jLBTy^(9I8dad+DLtf|?bp#9SBTj%TAtaq5(O zQgvF?`Rm^P*jXjPmn7gNVoSLD({!hgQDePcRa_{9JtmUboeluhc~27|Xv%a;6FI$h zb8qXI^d-(_oVKiknI0LOl{RIzeKPNjJN{}p&_l#F7=t7Z20y{}lQp2XKPz7?c@ip# z+;y}KG`d@1j)QK~>ukBm8ubw=j%knd1p+kWV!Bm%0juhihYVn!0f0ha6ffFe3g2aY zwyHICKg@we@E*}uC6s5t_>q8pFh&fWUOA!Mhh#1JA1MTKpp!_TyTT47sEmM+*4bkw z7w`va1T~SZVsn^CReKPwSue&%*Pxw<2}v#-;hPhl<4YEL7-t(#W0wpe!hnXvb?;Uf z&@7lh=!EbNRunUKcA(PgL!;?PO(zl=L^^;^$Qrtp!7dr?bjLF#o+fwttF@O^68$9x zh^ctj`d3yTY0sExQdg^$@@S3DJdzJlsDSY?+LC+6Hoyf^wX4oVdueBrAe|@NryXiU^~kcnIQd` z|B;TNW5H(Zj3&=B4xzSW%Ymz8#Uc$t?4(|>O|EsqiDxZK@?&=`dGVZD(+P*xnTT4N z9JHAjfMYU9nqx<4-DDw$U}yh96teIAb6NWz**7#n*1OJHozwx{$|}|`z;ps){qzA& z&AylvuF^U7n?SdogP-0?%`|Ff;#fZPDc`x&tgaXeg4iWk)iyOEl4^I#S%LOq=Gus!Ar)Kp3trYWu1O+ zKDS-bK!RleV4covqi}R=8-+7-Kb2bq3ZI?1O;rU7MsheXD>jsRZErI>C!PZ7C%1*M zP(gT1KPh^S!`wTb#oU#lp-}Yru>4sQ(o{c&8bwN=dB=Bw*}gLk8e?S#>7gQ6TgGkT zk1&*MD~DCXaWQ1CT{B~e?wF7VAgd0X;XI)oWD^oi;wv2OB?vx_w&U!Wyj!mGu|w(D z;9e*7&ybHqFi3W`Cx`N@5pM6uacZ5AIkw|8ILWlBbL(h^3%9(TP>9V%994FbE9T$s z7k|uCD$b|_ig=4!<;fXjKLtmVj(+Zv%1J;n1m!eh5J{v-Wdh4Yl21n{(0)YKe&=%B z|D(+gPnUuv`c($hb=LA^5ly%%>jnwk0Vo-o2M+w=K`}a?>MG+}t?1|><0i(7MWj~l zqQ{hm8%W?1jta8jLYB=+M8wB8XwC5t|4W-xhO*8ba>{^?=Csi|sdUaUYKcBf3}}`N zVZhj}V|pm~06{&Y^2wbd;ofX@|Fj;Sv96ykUy46d8`^W2tFE1B<_DMaHM`CjY-fK8 zBLb@qA_W8VJ2H8hED+8d&9KREf}_imK?+#n-C}TchAC&$`f2GuPhYg^ItLwD$0kp+ z0BJgc6+FBX|2x$F#7eezB-Yhu3Nrs4A~8z==QL8ewvzw}f$H3i4*#+jVwmX3jw>5_ zw^8hnRA~DEp$UJ=ua4WW!mIuiI01@Rq=`IxYMMH_OQYN#elrc&TYPcfofX=jQ2y=R z+4pwa5rjz48nTKn2MuYac^mz-Pd4+{T#fV9n%(bl4syqwp-J<$N!yib;muBQbML6U z^>$}>|L9=%4P!gO{fKqewJaHa#xj07b z<%`9ggYD4`hNQMIAxc_A*KKc7ntj_g zL0G)ZB&SoN^tR=L5n8z~%RONc${|HGN`d zh~~3ieVrRgzXd=)^Ctn3U*9TkTl0HgqgYaB?_gu2w6_nnvUP6fW;z_bNp6!?^^)S- zJNxBV)Ix||F1V*IU)~o!} zNCXz{%v_yTlD1Wg>!LSdjpELFX*Bxjnls8I>|L{_N0Q2L^T65Jk8G9|-3%0n0N>!& zUuRG$?rgs*?`}O02E4*0pI5_B*2{bO!kg0bpadKeGUoTRSz-I=&CZ4xD5ZlKiKGuK zWivTDLX1wNWx1BG-;W4kx3p2-+uwEm7z1dymPyR3{QI5V@;>9SU*0OcDQ_c5Sxk~h z-H3(_M4CIZ!%9EW3^@V-1eDr1O2Y^UD75fDIoA|}fY1Z=lP@!**GoMl%3v!JB=%}F zsE$qhn8Z7jq=Un74z|AuQm^?0tliT7VW|{#|3L2sQ1Te)D15#JO0PK%PB2G4(odo? zj6*PiBkLwy8z^fzpu->_tJ~4%0D-7uz&H?e;pkx=i40T9VSF4=X*Y8307XUu!T^o~ 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� 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

|l&P6_bPr2kA)b`&ue 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%0DZii|>Qt>>@Whiqa)^;O=^ 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