From d85bce9b9e2a1ba110990e5f346cc260820add24 Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Fri, 13 Sep 2024 00:28:21 +0900 Subject: [PATCH 01/15] fix: simple optimism fix the mixed up --- .../src/entrypoints/google-injected.ts | 16 ++++++++++++-- .../src/entrypoints/google.content.ts | 13 ++++++++++++ .../src/utils/google-messaging.ts | 5 +++++ packages/messaging/src/window.ts | 21 +++++++++++++++---- 4 files changed, 49 insertions(+), 6 deletions(-) diff --git a/packages/messaging-demo/src/entrypoints/google-injected.ts b/packages/messaging-demo/src/entrypoints/google-injected.ts index 86309fb..1165b8f 100644 --- a/packages/messaging-demo/src/entrypoints/google-injected.ts +++ b/packages/messaging-demo/src/entrypoints/google-injected.ts @@ -1,8 +1,20 @@ -export default defineUnlistedScript(() => { +export default defineUnlistedScript(async () => { console.log('[google-injected.ts] Injected script loaded'); googleMessaging.onMessage('ping', event => { - console.log('[google-injected.ts] revieved', event); + console.log('[google-injected.ts] Received', event); return 'pong'; }); + + googleMessaging.onMessage('ping2', event => { + console.log('[google-injected.ts] Received2', event); + return 'pong2'; + }); + + googleMessaging.sendMessage('fromInjected', undefined).then(res => { + console.log('[google-injected.ts] Response:', res); + }); + + const res2 = await googleMessaging.sendMessage('fromInjected2', undefined); + console.log('[google-injected.ts] Response2:', res2); }); diff --git a/packages/messaging-demo/src/entrypoints/google.content.ts b/packages/messaging-demo/src/entrypoints/google.content.ts index 8c1ebd1..50a7751 100644 --- a/packages/messaging-demo/src/entrypoints/google.content.ts +++ b/packages/messaging-demo/src/entrypoints/google.content.ts @@ -7,8 +7,21 @@ export default defineContentScript({ const script = document.createElement('script'); script.src = browser.runtime.getURL('/google-injected.js'); script.onload = async () => { + googleMessaging.onMessage('fromInjected', event => { + console.log('[google.content.ts] Received:', event); + return 'hello injected'; + }); + + googleMessaging.onMessage('fromInjected2', event => { + console.log('[google.content.ts] Received:', event); + return 'hello injected2'; + }); + const res = await googleMessaging.sendMessage('ping', undefined); console.log('[google.content.ts] Response:', res); + + const res2 = await googleMessaging.sendMessage('ping2', undefined); + console.log('[google.content.ts] Response2:', res2); }; document.head.appendChild(script); }, diff --git a/packages/messaging-demo/src/utils/google-messaging.ts b/packages/messaging-demo/src/utils/google-messaging.ts index d5aac26..8ec1002 100644 --- a/packages/messaging-demo/src/utils/google-messaging.ts +++ b/packages/messaging-demo/src/utils/google-messaging.ts @@ -2,6 +2,11 @@ import { defineWindowMessaging } from '@webext-core/messaging/page'; export interface GoogleMessagingProtocol { ping(): string; + ping2(): string; + ping3(): string; + fromInjected(): string; + fromInjected2(): string; + fromInjected3(): string; } export const googleMessaging = defineWindowMessaging({ diff --git a/packages/messaging/src/window.ts b/packages/messaging/src/window.ts index 8aa91ff..873285c 100644 --- a/packages/messaging/src/window.ts +++ b/packages/messaging/src/window.ts @@ -50,13 +50,18 @@ export function defineWindowMessaging< TProtocolMap extends Record = Record, >(config: WindowMessagingConfig): WindowMessenger { const namespace = config.namespace; + const instanceId = crypto.randomUUID(); let removeAdditionalListeners: Array<() => void> = []; const sendWindowMessage = (message: Message, targetOrigin?: string) => new Promise(res => { const responseListener = (event: MessageEvent) => { - if (event.data.type === RESPONSE_TYPE) { + if ( + event.data.type === RESPONSE_TYPE && + event.data.instanceId !== instanceId && + event.data.message.type === message.type + ) { res(event.data.response); removeResponseListener(); } @@ -65,7 +70,7 @@ export function defineWindowMessaging< removeAdditionalListeners.push(removeResponseListener); window.addEventListener('message', responseListener); window.postMessage( - { type: REQUEST_TYPE, message, senderOrigin: location.origin, namespace }, + { type: REQUEST_TYPE, message, senderOrigin: location.origin, namespace, instanceId }, targetOrigin ?? '*', ); }); @@ -79,10 +84,18 @@ export function defineWindowMessaging< addRootListener(processMessage) { const listener = async (event: MessageEvent) => { - if (event.data.type !== REQUEST_TYPE || event.data.namespace !== namespace) return; + if ( + event.data.type !== REQUEST_TYPE || + event.data.namespace !== namespace || + event.data.instanceId === instanceId + ) + return; const response = await processMessage(event.data.message); - window.postMessage({ type: RESPONSE_TYPE, response }, event.data.senderOrigin); + window.postMessage( + { type: RESPONSE_TYPE, response, instanceId, message: event.data.message }, + event.data.senderOrigin, + ); }; window.addEventListener('message', listener); From 3804af608fd80ffeaf7145d8b3a15442dfa082c6 Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Sat, 14 Sep 2024 00:47:50 +0900 Subject: [PATCH 02/15] test: add about mix up case --- bun.lockb | Bin 563576 -> 585432 bytes package.json | 4 ++- packages/messaging/package.json | 4 ++- .../src/{ => __tests__/browser}/page.test.ts | 32 ++++++++++++++---- packages/messaging/vitest.config.browser.ts | 24 +++++++++++++ packages/messaging/vitest.config.node.ts | 17 ++++++++++ 6 files changed, 73 insertions(+), 8 deletions(-) rename packages/messaging/src/{ => __tests__/browser}/page.test.ts (82%) create mode 100644 packages/messaging/vitest.config.browser.ts create mode 100644 packages/messaging/vitest.config.node.ts diff --git a/bun.lockb b/bun.lockb index c6a0f85e9fe27b6b98d7a9d694f372aa6404fe71..901b987fd001e9089b6d8495933505905b1041cb 100755 GIT binary patch delta 126923 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 delta 115334 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 HU6cO@d1{7T diff --git a/package.json b/package.json index 9a287c9..4e062d7 100644 --- a/package.json +++ b/package.json @@ -17,12 +17,14 @@ "@algolia/client-search": "^4.17.0", "@types/prettier": "^2.7.2", "@types/webextension-polyfill": "^0.9.1", + "@vitest/browser": "^2.1.0", "@vitest/coverage-v8": "^2.0.5", "@webext-core/fake-browser": "workspace:*", "chokidar": "^3.5.3", "linkedom": "^0.14.26", "lint-staged": "^15.2.9", "listr2": "^6.4.2", + "playwright": "^1.47.0", "prettier": "^3.3.3", "simple-git-hooks": "^2.11.1", "ts-morph": "^23.0.0", @@ -30,7 +32,7 @@ "tsx": "^4.17.0", "turbo": "^1.6.3", "typescript": "^5.5.4", - "vitest": "^2.0.5", + "vitest": "^2.1.0", "webextension-polyfill": "^0.10.0" }, "simple-git-hooks": { diff --git a/packages/messaging/package.json b/packages/messaging/package.json index cce15b8..ddb474c 100644 --- a/packages/messaging/package.json +++ b/packages/messaging/package.json @@ -47,7 +47,9 @@ }, "scripts": { "build": "buildc -- tsup src/index.ts src/page.ts --clean --out-dir lib --dts --format esm,cjs,iife --global-name webExtCoreMessaging", - "test": "buildc --deps-only -- vitest -r src", + "test": "buildc --deps-only -- bun run test:node && bun run test:browser", + "test:node": "buildc --deps-only -- vitest -r src --config ../vitest.config.node.ts", + "test:browser": "buildc --deps-only -- vitest -r src --config ../vitest.config.browser.ts", "test:coverage": "buildc --deps-only -- vitest run -r src --coverage", "check": "buildc --deps-only -- tsc --noEmit" }, diff --git a/packages/messaging/src/page.test.ts b/packages/messaging/src/__tests__/browser/page.test.ts similarity index 82% rename from packages/messaging/src/page.test.ts rename to packages/messaging/src/__tests__/browser/page.test.ts index c7822d2..a3e1eb3 100644 --- a/packages/messaging/src/page.test.ts +++ b/packages/messaging/src/__tests__/browser/page.test.ts @@ -1,10 +1,7 @@ -// @vitest-environment jsdom import { describe, it, expect, vi, beforeEach } from 'vitest'; -import { defineWindowMessaging, defineCustomEventMessaging } from './page'; -import { GenericMessenger } from './generic'; -import { NamespaceMessagingConfig } from './types'; - -vi.mock('webextension-polyfill'); +import { defineWindowMessaging, defineCustomEventMessaging } from '../../page'; +import { GenericMessenger } from '../../generic'; +import { NamespaceMessagingConfig } from '../../types'; describe.each< [ @@ -116,4 +113,27 @@ describe.each< error, ); }); + + it('should not mix up messaging between instance', async () => { + interface MessageSchema { + test(data: string): string; + } + const messenger1 = defineTestMessaging(); + const messenger2 = defineTestMessaging(); + + messenger1.onMessage('test', message => { + expect(message.data).toBe('ping-from-m2'); + return 'pong-from-m1'; + }); + messenger2.onMessage('test', message => { + expect(message.data).toBe('ping-from-m1'); + return 'pong-from-m2'; + }); + + const res1 = messenger1.sendMessage('test', 'ping-from-m1'); + const res2 = messenger2.sendMessage('test', 'ping-from-m2'); + + expect(res1).resolves.toBe('pong-from-m2'); + expect(res2).resolves.toBe('pong-from-m1'); + }); }); diff --git a/packages/messaging/vitest.config.browser.ts b/packages/messaging/vitest.config.browser.ts new file mode 100644 index 0000000..25af249 --- /dev/null +++ b/packages/messaging/vitest.config.browser.ts @@ -0,0 +1,24 @@ +import { defineConfig, defaultExclude, UserConfig } from 'vitest/config'; + +const config = { + browser: { + test: { + name: 'browser mode', + include: [ + '**/*.browser.{test,spec}.ts', + '**/__tests__/browser/**/*.{test,spec}.ts', + ], + exclude: [...defaultExclude], + browser: { + provider: 'playwright', + enabled: true, + name: 'chromium', + headless: true, + isolate: true, + screenshotFailures: false, + }, + }, + } as const satisfies UserConfig, +}; + +export default defineConfig(config.browser); diff --git a/packages/messaging/vitest.config.node.ts b/packages/messaging/vitest.config.node.ts new file mode 100644 index 0000000..aa19aa8 --- /dev/null +++ b/packages/messaging/vitest.config.node.ts @@ -0,0 +1,17 @@ +import { defineConfig, defaultInclude, defaultExclude, UserConfig } from 'vitest/config'; + +const config = { + node: { + test: { + name: 'node', + include: [...defaultInclude], + exclude: [ + ...defaultExclude, + '**/*.browser.{test,spec}.ts', + '**/__tests__/browser/**/*.{test,spec}.ts', + ], + }, + } satisfies UserConfig, +}; + +export default defineConfig(config.node); From 3fc7f14727b286bb6e37e933e979caffece551bc Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Sun, 15 Sep 2024 02:19:20 +0900 Subject: [PATCH 03/15] fix: namespace mixup --- .../src/__tests__/browser/page.test.ts | 42 ++++++++++++------- packages/messaging/src/window.ts | 3 +- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/packages/messaging/src/__tests__/browser/page.test.ts b/packages/messaging/src/__tests__/browser/page.test.ts index a3e1eb3..d42e530 100644 --- a/packages/messaging/src/__tests__/browser/page.test.ts +++ b/packages/messaging/src/__tests__/browser/page.test.ts @@ -114,26 +114,40 @@ describe.each< ); }); - it('should not mix up messaging between instance', async () => { + it('should not mix up messaging between instances', async () => { interface MessageSchema { test(data: string): string; } - const messenger1 = defineTestMessaging(); - const messenger2 = defineTestMessaging(); - - messenger1.onMessage('test', message => { - expect(message.data).toBe('ping-from-m2'); - return 'pong-from-m1'; + const messengerA1 = defineTestMessaging({ namespace: 'a' }); + const messengerA2 = defineTestMessaging({ namespace: 'a' }); + const messengerB1 = defineTestMessaging({ namespace: 'b' }); + const messengerB2 = defineTestMessaging({ namespace: 'b' }); + + messengerA1.onMessage('test', message => { + expect(message.data).toBe('ping-from-A2'); + return 'pong-from-A1'; + }); + messengerA2.onMessage('test', message => { + expect(message.data).toBe('ping-from-A1'); + return 'pong-from-A2'; + }); + messengerB1.onMessage('test', message => { + expect(message.data).toBe('ping-from-B2'); + return 'pong-from-B1'; }); - messenger2.onMessage('test', message => { - expect(message.data).toBe('ping-from-m1'); - return 'pong-from-m2'; + messengerB2.onMessage('test', message => { + expect(message.data).toBe('ping-from-B1'); + return 'pong-from-B2'; }); - const res1 = messenger1.sendMessage('test', 'ping-from-m1'); - const res2 = messenger2.sendMessage('test', 'ping-from-m2'); + const resA1 = messengerA1.sendMessage('test', 'ping-from-A1'); + const resA2 = messengerA2.sendMessage('test', 'ping-from-A2'); + const resB1 = messengerB1.sendMessage('test', 'ping-from-B1'); + const resB2 = messengerB2.sendMessage('test', 'ping-from-B2'); - expect(res1).resolves.toBe('pong-from-m2'); - expect(res2).resolves.toBe('pong-from-m1'); + expect(resA1).resolves.toBe('pong-from-A2'); + expect(resA2).resolves.toBe('pong-from-A1'); + expect(resB1).resolves.toBe('pong-from-B2'); + expect(resB2).resolves.toBe('pong-from-B1'); }); }); diff --git a/packages/messaging/src/window.ts b/packages/messaging/src/window.ts index 873285c..07ed8e8 100644 --- a/packages/messaging/src/window.ts +++ b/packages/messaging/src/window.ts @@ -59,6 +59,7 @@ export function defineWindowMessaging< const responseListener = (event: MessageEvent) => { if ( event.data.type === RESPONSE_TYPE && + event.data.namespace === namespace && event.data.instanceId !== instanceId && event.data.message.type === message.type ) { @@ -93,7 +94,7 @@ export function defineWindowMessaging< const response = await processMessage(event.data.message); window.postMessage( - { type: RESPONSE_TYPE, response, instanceId, message: event.data.message }, + { type: RESPONSE_TYPE, response, instanceId, message: event.data.message, namespace }, event.data.senderOrigin, ); }; From 57562f315201f134b312b0b1ed40b0d1b5b639f2 Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Sun, 15 Sep 2024 18:40:19 +0900 Subject: [PATCH 04/15] chore: add customEventMessage demo & change onMessage position --- bun.lockb | Bin 585432 -> 585432 bytes .../src/entrypoints/duckduckgo-injected.ts | 20 +++++++++++++ .../src/entrypoints/duckduckgo.content.ts | 28 ++++++++++++++++++ .../src/entrypoints/google.content.ts | 20 ++++++------- .../src/utils/duckduckgo-messaging.ts | 15 ++++++++++ .../src/utils/google-messaging.ts | 1 + packages/messaging-demo/wxt.config.ts | 5 ++++ 7 files changed, 79 insertions(+), 10 deletions(-) create mode 100644 packages/messaging-demo/src/entrypoints/duckduckgo-injected.ts create mode 100644 packages/messaging-demo/src/entrypoints/duckduckgo.content.ts create mode 100644 packages/messaging-demo/src/utils/duckduckgo-messaging.ts diff --git a/bun.lockb b/bun.lockb index 901b987fd001e9089b6d8495933505905b1041cb..101d0c1acb3e40bcde287bf6f3c96064fa9306bc 100755 GIT binary patch delta 65 zcmca{SNXF7M3lni~q4R#u@1u>KRO5^^bKu2VF7M3lni~q4RF@VAJRsUGmb3i!^(-Z%*o`6ZU8nCq*ux~Zs HSn&=3sh|>a diff --git a/packages/messaging-demo/src/entrypoints/duckduckgo-injected.ts b/packages/messaging-demo/src/entrypoints/duckduckgo-injected.ts new file mode 100644 index 0000000..642d1cc --- /dev/null +++ b/packages/messaging-demo/src/entrypoints/duckduckgo-injected.ts @@ -0,0 +1,20 @@ +export default defineUnlistedScript(async () => { + console.log('[duckduckgo-injected.ts] Injected script loaded'); + + duckduckgoMessaging.onMessage('ping', event => { + console.log('[duckduckgo-injected.ts] Received', event); + return 'pong'; + }); + + duckduckgoMessaging.onMessage('ping2', event => { + console.log('[duckduckgo-injected.ts] Received2', event); + return 'pong2'; + }); + + duckduckgoMessaging.sendMessage('fromInjected', undefined).then(res => { + console.log('[duckduckgo-injected.ts] Response:', res); + }); + + const res2 = await duckduckgoMessaging.sendMessage('fromInjected2', undefined); + console.log('[duckduckgo-injected.ts] Response2:', res2); +}); diff --git a/packages/messaging-demo/src/entrypoints/duckduckgo.content.ts b/packages/messaging-demo/src/entrypoints/duckduckgo.content.ts new file mode 100644 index 0000000..582ea1a --- /dev/null +++ b/packages/messaging-demo/src/entrypoints/duckduckgo.content.ts @@ -0,0 +1,28 @@ +export default defineContentScript({ + matches: ['*://*.duckduckgo.com/*'], + + main(ctx) { + console.log('[duckduckgo.content.ts] Content script loaded'); + + duckduckgoMessaging.onMessage('fromInjected', event => { + console.log('[duckduckgo.content.ts] Received:', event); + return 'hello injected'; + }); + + duckduckgoMessaging.onMessage('fromInjected2', event => { + console.log('[duckduckgo.content.ts] Received:', event); + return 'hello injected2'; + }); + + const script = document.createElement('script'); + script.src = browser.runtime.getURL('/duckduckgo-injected.js'); + script.onload = async () => { + const res = await duckduckgoMessaging.sendMessage('ping', undefined); + console.log('[duckduckgo.content.ts] Response:', res); + + const res2 = await duckduckgoMessaging.sendMessage('ping2', undefined); + console.log('[duckduckgo.content.ts] Response2:', res2); + }; + document.head.appendChild(script); + }, +}); diff --git a/packages/messaging-demo/src/entrypoints/google.content.ts b/packages/messaging-demo/src/entrypoints/google.content.ts index 50a7751..7ef9fa9 100644 --- a/packages/messaging-demo/src/entrypoints/google.content.ts +++ b/packages/messaging-demo/src/entrypoints/google.content.ts @@ -4,19 +4,19 @@ export default defineContentScript({ main(ctx) { console.log('[google.content.ts] Content script loaded'); + googleMessaging.onMessage('fromInjected', event => { + console.log('[google.content.ts] Received:', event); + return 'hello injected'; + }); + + googleMessaging.onMessage('fromInjected2', event => { + console.log('[google.content.ts] Received:', event); + return 'hello injected2'; + }); + const script = document.createElement('script'); script.src = browser.runtime.getURL('/google-injected.js'); script.onload = async () => { - googleMessaging.onMessage('fromInjected', event => { - console.log('[google.content.ts] Received:', event); - return 'hello injected'; - }); - - googleMessaging.onMessage('fromInjected2', event => { - console.log('[google.content.ts] Received:', event); - return 'hello injected2'; - }); - const res = await googleMessaging.sendMessage('ping', undefined); console.log('[google.content.ts] Response:', res); diff --git a/packages/messaging-demo/src/utils/duckduckgo-messaging.ts b/packages/messaging-demo/src/utils/duckduckgo-messaging.ts new file mode 100644 index 0000000..52e627d --- /dev/null +++ b/packages/messaging-demo/src/utils/duckduckgo-messaging.ts @@ -0,0 +1,15 @@ +import { defineCustomEventMessaging } from '@webext-core/messaging/page'; + +export interface DuckduckgoMessagingProtocol { + ping(): string; + ping2(): string; + ping3(): string; + fromInjected(): string; + fromInjected2(): string; + fromInjected3(): string; +} + +export const duckduckgoMessaging = defineCustomEventMessaging({ + namespace: '@webext-core/messaging-demo/duckduckgo', + logger: {...console, debug: console.log} +}); diff --git a/packages/messaging-demo/src/utils/google-messaging.ts b/packages/messaging-demo/src/utils/google-messaging.ts index 8ec1002..9f9cd27 100644 --- a/packages/messaging-demo/src/utils/google-messaging.ts +++ b/packages/messaging-demo/src/utils/google-messaging.ts @@ -11,4 +11,5 @@ export interface GoogleMessagingProtocol { export const googleMessaging = defineWindowMessaging({ namespace: '@webext-core/messaging-demo/google', + logger: {...console, debug: console.log} }); diff --git a/packages/messaging-demo/wxt.config.ts b/packages/messaging-demo/wxt.config.ts index 7eb39a1..2694471 100644 --- a/packages/messaging-demo/wxt.config.ts +++ b/packages/messaging-demo/wxt.config.ts @@ -8,6 +8,11 @@ export default defineConfig({ resources: ['google-injected.js'], matches: ['*://*.google.com/*'], }, + { + resources: ['duckduckgo-injected.js'], + matches: ['*://*.duckduckgo.com/*'], + }, ], }, + runner: { startUrls: ['https://google.com/', 'https://duckduckgo.com/'] }, }); From 26e79892da3b83a93f0988dfc74154ad38a312e4 Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Sun, 15 Sep 2024 18:41:30 +0900 Subject: [PATCH 05/15] fix: mix up messaging for customEventMessage --- .../src/__tests__/browser/page.test.ts | 2 +- packages/messaging/src/custom-event.ts | 34 +++++++++++++------ 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/packages/messaging/src/__tests__/browser/page.test.ts b/packages/messaging/src/__tests__/browser/page.test.ts index d42e530..c9510b7 100644 --- a/packages/messaging/src/__tests__/browser/page.test.ts +++ b/packages/messaging/src/__tests__/browser/page.test.ts @@ -114,7 +114,7 @@ describe.each< ); }); - it('should not mix up messaging between instances', async () => { + it('should be messaging for the same message type between different instances', async () => { interface MessageSchema { test(data: string): string; } diff --git a/packages/messaging/src/custom-event.ts b/packages/messaging/src/custom-event.ts index a47385c..0ac7cae 100644 --- a/packages/messaging/src/custom-event.ts +++ b/packages/messaging/src/custom-event.ts @@ -56,43 +56,55 @@ export function defineCustomEventMessaging< TProtocolMap extends Record = Record, >(config: CustomEventMessagingConfig): CustomEventMessenger { const namespace = config.namespace; + const instanceId = crypto.randomUUID(); + const removeAdditionalListeners: Array<() => void> = []; - const sendCustomMessage = (event: CustomEvent) => + const sendCustomMessage = (requestEvent: CustomEvent) => new Promise(res => { const responseListener = (e: Event) => { const { detail } = e as CustomEvent; - res(detail); + if ( + detail.namespace === namespace && + detail.instanceId !== instanceId && + detail.message.type === requestEvent.detail.message.type + ) { + res(detail.response); + } }; removeAdditionalListeners.push(() => window.removeEventListener(RESPONSE_EVENT, responseListener), ); - window.addEventListener(RESPONSE_EVENT, responseListener, { once: true }); - window.dispatchEvent(event); + window.addEventListener(RESPONSE_EVENT, responseListener); + window.dispatchEvent(requestEvent); }); const messenger = defineGenericMessanging({ ...config, sendMessage(message) { - const event = new CustomEvent(REQUEST_EVENT, { detail: { message, namespace } }); - return sendCustomMessage(event); + const requestEvent = new CustomEvent(REQUEST_EVENT, { + detail: { message, namespace, instanceId }, + }); + return sendCustomMessage(requestEvent); }, addRootListener(processMessage) { - const listener = async (e: Event) => { + const requestListener = async (e: Event) => { const { detail, ...event } = e as CustomEvent; - if (detail.namespace !== namespace) return; + if (detail.namespace !== namespace || detail.instanceId === instanceId) return; const message = { ...detail.message, event }; const response = await processMessage(message); - const responseEvent = new CustomEvent(RESPONSE_EVENT, { detail: response }); + const responseEvent = new CustomEvent(RESPONSE_EVENT, { + detail: { response, message, instanceId, namespace }, + }); window.dispatchEvent(responseEvent); }; - window.addEventListener(REQUEST_EVENT, listener); - return () => window.removeEventListener(REQUEST_EVENT, listener); + window.addEventListener(REQUEST_EVENT, requestListener); + return () => window.removeEventListener(REQUEST_EVENT, requestListener); }, }); From b16bfaefbc35e39269061d54bccf43ea5ee8861d Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Sun, 15 Sep 2024 22:22:43 +0900 Subject: [PATCH 06/15] chore: doc diagram link --- packages/messaging/src/custom-event.ts | 3 +++ packages/messaging/src/window.ts | 3 +++ 2 files changed, 6 insertions(+) diff --git a/packages/messaging/src/custom-event.ts b/packages/messaging/src/custom-event.ts index 0ac7cae..b4f7c8b 100644 --- a/packages/messaging/src/custom-event.ts +++ b/packages/messaging/src/custom-event.ts @@ -51,6 +51,9 @@ export type CustomEventMessenger> = Gen * websiteMessenger.onMessage("initInjectedScript", (...) => { * // ... * }) + * + * * @link Spec diagrams + * https://mermaid.live/edit#pako:eNqVlG9v2jAQxr-KZamvGv7YyYBYVSTGWgmpwAs6VZqQJpMc1BOxM8fZoIjvPieBACUVLC8SO3ru7vc4l9viUEWAGU7hdwYyhG-CLzWPZxLZa67WaKCkAWka01CLxDzMdSsobkKmhtsAUuy2SPIY0oSHwNBCKbQrMyRcGxGKhEuDbAT5qSTiKVJyBGnKl_CJKgUZ5br8eaa0-yPaUP6C0EDUeoX5VBi4hKP_A0dvgqM3wvWlMm-gi-Nb15ybe4k25_oTNPcmNPcKWrm8uzvWRF_Ld2NlAKk_oA_FnCodQ4PJaPR9PBz0X4aTMXp6nrwW6NP-6BH1p-j58enlkNsCoXKVX9WnbATB_f6AWcHWMpsE2AwnQi7JDNeFNNb7fmFILKXSlu-vLILP1HnOUkv3uCdqDemlOAgaVRWWS2phqjoXluipJVJriX6wRE8s0auWSGWJXLdEjpZovSV6ZqlcHjtBoVDFcSZFyG0LrIQ85D9rCfqhJcbnYUIWHRGJxQK0HRbHBrPJsINj0DEXkR0z2zz5DNs_I4YZZnYZwYJnK5ND7qyUZ0ZNNzLEzOgMHKxVtnzDbMFXqd1lSWTr7WdU9db2P2ZbvMasQYjX9AnteaRN3HbP7XgO3mBG3U6z533p-W637bue5-4c_K6UTUGbpOtT36edLvXaLu06GCJhlB6Vc7EYj0WJH4U-p9r9Aynbsqc */ export function defineCustomEventMessaging< TProtocolMap extends Record = Record, diff --git a/packages/messaging/src/window.ts b/packages/messaging/src/window.ts index 07ed8e8..b9f94bc 100644 --- a/packages/messaging/src/window.ts +++ b/packages/messaging/src/window.ts @@ -45,6 +45,9 @@ export type WindowMessenger> = GenericM * websiteMessenger.onMessage("initInjectedScript", (...) => { * // ... * }) + * + * @link Spec diagrams + * https://mermaid.live/edit#pako:eNqVlG9v2jAQxr-KZamvGv7YyYBYVSTGWgmpwAs6VZqQJpMc1BOxM8fZoIjvPieBACUVLC8SO3ru7vc4l9viUEWAGU7hdwYyhG-CLzWPZxLZa67WaKCkAWka01CLxDzMdSsobkKmhtsAUuy2SPIY0oSHwNBCKbQrMyRcGxGKhEuDbAT5qSTiKVJyBGnKl_CJKgUZ5br8eaa0-yPaUP6C0EDUeoX5VBi4hKP_A0dvgqM3wvWlMm-gi-Nb15ybe4k25_oTNPcmNPcKWrm8uzvWRF_Ld2NlAKk_oA_FnCodQ4PJaPR9PBz0X4aTMXp6nrwW6NP-6BH1p-j58enlkNsCoXKVX9WnbATB_f6AWcHWMpsE2AwnQi7JDNeFNNb7fmFILKXSlu-vLILP1HnOUkv3uCdqDemlOAgaVRWWS2phqjoXluipJVJriX6wRE8s0auWSGWJXLdEjpZovSV6ZqlcHjtBoVDFcSZFyG0LrIQ85D9rCfqhJcbnYUIWHRGJxQK0HRbHBrPJsINj0DEXkR0z2zz5DNs_I4YZZnYZwYJnK5ND7qyUZ0ZNNzLEzOgMHKxVtnzDbMFXqd1lSWTr7WdU9db2P2ZbvMasQYjX9AnteaRN3HbP7XgO3mBG3U6z533p-W637bue5-4c_K6UTUGbpOtT36edLvXaLu06GCJhlB6Vc7EYj0WJH4U-p9r9Aynbsqc */ export function defineWindowMessaging< TProtocolMap extends Record = Record, From c34fc95f4c3f6fdc8c9548da914bb7786c679a15 Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Sun, 15 Sep 2024 23:52:18 +0900 Subject: [PATCH 07/15] chore --- packages/messaging-demo/src/utils/duckduckgo-messaging.ts | 1 - packages/messaging-demo/src/utils/google-messaging.ts | 1 - packages/messaging/vitest.config.node.ts | 2 +- 3 files changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/messaging-demo/src/utils/duckduckgo-messaging.ts b/packages/messaging-demo/src/utils/duckduckgo-messaging.ts index 52e627d..8c635f6 100644 --- a/packages/messaging-demo/src/utils/duckduckgo-messaging.ts +++ b/packages/messaging-demo/src/utils/duckduckgo-messaging.ts @@ -11,5 +11,4 @@ export interface DuckduckgoMessagingProtocol { export const duckduckgoMessaging = defineCustomEventMessaging({ namespace: '@webext-core/messaging-demo/duckduckgo', - logger: {...console, debug: console.log} }); diff --git a/packages/messaging-demo/src/utils/google-messaging.ts b/packages/messaging-demo/src/utils/google-messaging.ts index 9f9cd27..8ec1002 100644 --- a/packages/messaging-demo/src/utils/google-messaging.ts +++ b/packages/messaging-demo/src/utils/google-messaging.ts @@ -11,5 +11,4 @@ export interface GoogleMessagingProtocol { export const googleMessaging = defineWindowMessaging({ namespace: '@webext-core/messaging-demo/google', - logger: {...console, debug: console.log} }); diff --git a/packages/messaging/vitest.config.node.ts b/packages/messaging/vitest.config.node.ts index aa19aa8..d6d8fb8 100644 --- a/packages/messaging/vitest.config.node.ts +++ b/packages/messaging/vitest.config.node.ts @@ -11,7 +11,7 @@ const config = { '**/__tests__/browser/**/*.{test,spec}.ts', ], }, - } satisfies UserConfig, + } as const satisfies UserConfig, }; export default defineConfig(config.node); From e6fe4a672a1ad9627294be160e4526f8a54d3665 Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Sun, 15 Sep 2024 23:57:10 +0900 Subject: [PATCH 08/15] chore --- packages/messaging-demo/src/utils/duckduckgo-messaging.ts | 2 -- packages/messaging-demo/src/utils/google-messaging.ts | 2 -- 2 files changed, 4 deletions(-) diff --git a/packages/messaging-demo/src/utils/duckduckgo-messaging.ts b/packages/messaging-demo/src/utils/duckduckgo-messaging.ts index 8c635f6..33cfb2b 100644 --- a/packages/messaging-demo/src/utils/duckduckgo-messaging.ts +++ b/packages/messaging-demo/src/utils/duckduckgo-messaging.ts @@ -3,10 +3,8 @@ import { defineCustomEventMessaging } from '@webext-core/messaging/page'; export interface DuckduckgoMessagingProtocol { ping(): string; ping2(): string; - ping3(): string; fromInjected(): string; fromInjected2(): string; - fromInjected3(): string; } export const duckduckgoMessaging = defineCustomEventMessaging({ diff --git a/packages/messaging-demo/src/utils/google-messaging.ts b/packages/messaging-demo/src/utils/google-messaging.ts index 8ec1002..7c3186d 100644 --- a/packages/messaging-demo/src/utils/google-messaging.ts +++ b/packages/messaging-demo/src/utils/google-messaging.ts @@ -3,10 +3,8 @@ import { defineWindowMessaging } from '@webext-core/messaging/page'; export interface GoogleMessagingProtocol { ping(): string; ping2(): string; - ping3(): string; fromInjected(): string; fromInjected2(): string; - fromInjected3(): string; } export const googleMessaging = defineWindowMessaging({ From 7af1395d0e68de104adb3037a95745e1c6e07b42 Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Mon, 16 Sep 2024 00:13:14 +0900 Subject: [PATCH 09/15] chorel prettier --- packages/messaging/vitest.config.browser.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/packages/messaging/vitest.config.browser.ts b/packages/messaging/vitest.config.browser.ts index 25af249..f816733 100644 --- a/packages/messaging/vitest.config.browser.ts +++ b/packages/messaging/vitest.config.browser.ts @@ -4,10 +4,7 @@ const config = { browser: { test: { name: 'browser mode', - include: [ - '**/*.browser.{test,spec}.ts', - '**/__tests__/browser/**/*.{test,spec}.ts', - ], + include: ['**/*.browser.{test,spec}.ts', '**/__tests__/browser/**/*.{test,spec}.ts'], exclude: [...defaultExclude], browser: { provider: 'playwright', From 120cf82f491092b3cbd86efbc75d25f9cc41e3d4 Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Mon, 16 Sep 2024 00:25:06 +0900 Subject: [PATCH 10/15] chore: change to use uid --- bun.lockb | Bin 585432 -> 586120 bytes packages/messaging/package.json | 5 +++-- packages/messaging/src/custom-event.ts | 3 ++- packages/messaging/src/window.ts | 3 ++- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/bun.lockb b/bun.lockb index 101d0c1acb3e40bcde287bf6f3c96064fa9306bc..f8d4748c7e3c24dee9d071d7cc3a76878388c181 100755 GIT binary patch delta 77759 zcmeFadstLe+Wh0J)a*&f^RzOCgWrY(h z%*?1L%&f==?4(!}YFd;il~!aFR%VnWW$An0do7UXdHX)U@B6)e*L%HxIM)UDxS$D>*^j{K}qB&C6 zB*q}k@>CG$jgM$rC&c%Mc7gs0?F{`%X&sdL4?}xE<5C?dDULN-Tw<&tU(I@GK<(o~7nKs%c)(KcVDjp)55nG0v>-or?dJFKctlW17|-@ug6v zA1WkoNxv4p19)#J%FWDrc7rTX2k=HjI5M(XDQqiV3s4ajn1B)z;!@Lsw#f9$lG4oh zcOI7&ylShabw#?J@JzoCo)vf;-V?e(=|m{YUkL52WolW+pU^aqHW^kp*Q{d6*E}gN z^e*CiAifyd2f79sd7(I^H$j>Ii|w-DPoV74QQ*8#yy_tblsz|B=?v;ffC&oxP$+A9 z+tc!bv!N_F49bir5l_F)wZ$_eGrdUC6;O8QVkj>=U+K#9l@2!J$>(Icw1kzkt^FCP z20R4X4f%ow$#Q;pUZx+V;>(L=Gj>3`Al*Q4Xl7R44w<1Z04q=wEi16yE}PN)1x@P< z?o3HZO7VAQ%-Sgn?uztmM!K5vUw|`zT&n--)ObzX{Gu#pSxVCC_%)i=PL)4&jO3Tb zu>u&lZ+6Ly{Uc<-QSj{WFenG;?}ucD)p3a_&SjdmIyNpQ7ClhORR-@PI$yrM+%q0Hxt1dpMm?D9dc$`=2O3wD9eNQfW4JXOSUIjc+-o#-&DsO?9d9=KHM%J{f6)Hy9SB`JMbtoH32vW|=6)18asQkEQm=cIi} zX*w3s%A}OE^u(3%>C560`@XGdy%66S%BnkJl2Ukus<&jFJy9n#u|rmBOnN*!X|JoU zN59P15zUsjRQVZrF1m-VlG!v=uQ&XiNpe?PnUa*SGA&g*Um>fvBHo#vg3^*w%sHx6 z?w8GZ9m;Af#ysGwWpDepJ#9eN;`F6UohTvB>2%ryM{43dS)pPS&>016a}|0G%*=jY zR;y)7CBt)OEQazjX>n=s&bT|B82=bnWMQPNe(48tO?+4-OWh0gK>El7a^}2%c&^CL z;8{-6QfC^c*5ZS5A}n#HrlE2ZwR_QCUNA-JVx>_~7C0Tsf~I~br|ud@`kie00p<6( zHuUV*?We;s^^&ACXCn5daTTsNdR{ZS=7^^CL*|u^lvHP+rnTq+@J`_WRp)MVdG_kn zyQL3W+S=MCS7@(ZdZTN8uc`X|uEJjPGQDeMC1cS$9ON$W9DMV7{t2nW!0Fw=dEJ&? z91YHO)cbR}voDQXmY(8F)f$e=IT;h@AD6f^Ns9>>&au{3e4#okX0++Q+hktXwc5LP zX6^}029&itbxBeJVt+m&$eSS*ZXlI2OtgI}#uZNJ|+x3iZ)$2WMlWpzMtMPD!5-m*DhY zvRF%pXTjm$$_Z-T%~!;w%~a`~sVh_B5*(T{H9ajZK2@{V%lwnfc-KR{#~2Ru!9W!8 zuB*CtFSq3PT|e|5I&IVsa^*Y*WdnLB9r2@V_#dZbeVvJz>~YRiUlnhGvf%|k$$T4J zj;nfQCjBg1nVy)oW~Fn9mXH$1#%X=d%2ZvUY<;RTVHKC(GH0TBD!KU=d9_JUwsKi~ z(qac%F;e+s$j7TKPj#lopuFqBJHxk!atinT&72Y)vUCKl2KdgU_vv->J?B()nl!B^ zXe^YYatoBZUpSP5atG2~1HB2#(Z;TtvSwvkQVez-M_Pt<8=6Ia%g?UmeMV(k{*=X} z#ye7ZLx`F!$E;;yUXSFQ=$Xw@t$)d}ICVkO27n)ddO>6UmX|#TJTWOrsi~_|wX-}JWlm$r<)r*;?1t#3XU%8n3cL}SrRWi zyS?kxt4C$Jwb#uqy%+J^x#OYi@~;ftyxxcovR-~rUVpBNpX{!iLox=Q1Lq56-*keq zoF6Q@*=L_Xz2RSja;UaI*=K8@{dt_Y0|90Thce*^C=2SNd`wb&QVQ-SIy~+&SwG{# z9Hd$(D_Yl8Hy7YL@QmL9W&VeiUkzos4k*({LOCUapq+S}7@#6z;++mmZEZe!nv-i< z58dqf@ldvW5;zN(?j$DPl-=;CYr~TIDeV&b|@?0bowuiOG!xTZLGCxGQ?ALv& z{Fk7t*KNz?vhNrmi&>uPzs8XeuQ^hd$txxf``sk3HXr%87;p|sieKf_md`R55w<@Bc)^>YtU#f0+b0gj8PITkPGk)j-)EnAh21FSP4?wvR}KCeQ_ zJyytm{$shU(6dO-7C#1Mzh}kEp85;Q3fz-`Z9fx%cmxPC5@i?0n!BH-eGSi+EP=A1 zIZ(EE3X~Ndr{WhPKlw@&%$4q$EVX{6oSC}vJyYa$+CiBPrzx}_uMMan3v{K*J5{$d z*`icF5-(k&;i-Q`9MT;EXS#h*cJ&6N=NP9$S-}NRF6KK{$%f2OIs(c&dnDr7pcgab z4X=HMo@pK(ux8?uFqJo}h$QH>NH`uE0PPFqr2A#HT)fAjoTN|PC0m#YWqgeCGof7M zfl9rhec{WHuRrwGOxY7VSF15S2f&&oEWzy$Egh#?v^z`oL;yU;_k(YI+=} z?a#$F905Oo+mVq4hisM!2SYi9I=dwA0?%EwIZs~TGbj&NcReaA9utGNicqC%R8Pg_ z%a-neav=YLvVqQoq~&q(af@GOJQrKbyOfAXi;GE0w4ngD{3i?vFW99(R-_Kzoa0dL zZzbSNw-%liKMrNrp57uyKIL)A?|^bKM?je`ZL7@p64Ga~g|{mZgao`}e))vVcofP4 zZ>5ANr&mvL#MzL>Pjlil@ZNo>>`(x6B;rT6*H*^tkvXTFVVC%3U7UmpmnR zhlCYNGO?cn0#y`e^vtyDeTAkwkp0Ec zqD;R8tDDIREHQnH)&cZn7hlpZP5UIo8t{;& z&2dE>2{!ISXgp#ySM?gZTh7C-g9+n}Hy_r_Cq{Qyb*5cECD<#uCctMi0=1dfGTU6HYN;|SbrI5$_d!*07~v!;!L6QTRvhPkp9 z+KgL3f@J&_yYV301UTJn!iO&7ScvgA*ibMuA<=G(bZOcc>F&21iORXTJdyi#IMzxt z-Jft%;M%!Z$8C?|>A{SPywz^Cp|>ZyJmQ0mnFz7AXsyF;-3T|-bvPl|C}#@r_O9v# zyJ34w*30H%3zxy&ggCVD^B@b%cvnPrurWr+zQ$X2~4JLPiWe7 zGo>e{#;s4d4xSuu`xcND6OKXd=J46B+a@!$5+fF5BGTB*3%;P@E#@VDh8u=BxFowV z=*iZue-YGj+aB9tg##4!^!zWH}I*} zl*{cl2i(6@-Y5iNi_Q6Bt%n;gBHZ+`wnAAkS!u_=xb4cBeP+D?H{F~^$xqArW0pQ{ zw^hJRM9G)ux%)G%W3#?adC(g5#7y6EQ8`f#W`6=Cl0?#}2+crX!z| z1OtH7iEtc6IZ<}NsghW6IL>;_6}ic7cs<{;P>|0S180_-+|6Rn9(|i@T0@A@1kS5t z7z*vyfMS&Aiiiz1k`Q8g)DaW%Jva`ZY@20=T-+G;Eq1r*J6s1(k2kggvLM}+hn?rR za%O|whP~k0_``T(#S1Od8u^S;xW#6f+#-7Il%0$01$JWr9NT5?jYa|7B)AS{5Bv(p z9m509C3dc6c=~<)VuqR+EGj_>*a``#nm=dEEYuC5B4x9-w zeo`q=2bAUalB|*Jfu(Tl4>?Jng9|ltdm`mIIF_Zmu-Umydf7Go?0Dn4H2A87+EA6R3axZHmuj|Mmn4t zL2Sw;a4a5IKV)}1TjH9YG~PPqRj!o7j$q>*;>bLFkTuCp7D4{#mX zVCyWnp)L>Xe0L+nd2f*0_QSF1t*guC_S(O#H@C^Jxu%~RZ>&XxoI~8WOW{}yYK`ro zXQ`}++;kJ*W+P7a=i6{{`(w|ye_eG7Z;8fe<=kA6uh^|C;D(sD41o|!@5zzZKXM)T zJ;d!QeC~RFyjyaaYx?=|*5}Hw9$cHy3Fij zAB77yJMIKRLExA@=;a=JWFGV~N(hHz9&^O4*>L7?YZTSG^@2 zx&o78IoxQOa-m(Xac%f3#2ERurp*Pz6vjl^2*n9XlRaIKj+$TF~qoTZ_BNgx0RdWMwwUS?9PQ_S?2t* z?T2IS1-BrPwM#c_`(%x9e_UvHTfNUUeffCf6yO3Ra}#;@>OuJ%^bl)B1$!srK(JNc zkKW-~$T|+8;pXn2gwRlAz*z%5_8FY)BP?^JQ|dxs@18 zK&Bv#xr}Tdz;W(ej=u!L(QGdwx9LH)D!Fbg>^EB~+{}MTT?4`^%0=1bfJ}|Cbl^;K zKy>f$DGKinj<{OU8<@Zos1 zuI5c=;79Ui(8J~Vtlfx(GkcudiSanxQlvCb7KZk5%Z#da1lg3q!3rG^3&%T32kzp= z4!EIk=Bdtl9B#Hby#`jxuEz4l#7}_ZP{=#lPPhQG1hm#T0msQJPYqo^k@>75@*O>> zJ)Al4T$Y>vGHmcH2g8n>U#qm{@z3r0PsK)0eY|z-+sjUvj7hcvDhLE`h$pbzP>Hw-cQP6QX7KA(B zt#+gPH?19y``sKkHXZj{tn)m$ad0>hCD?68;D*7q?x)s^jCXC?7;FTeY8}i3yZ(@v z=A(z`hr|Ym;r4CI67hV~Zkr1?nWeNog+C6$X@SEXo{s;98)MGz#QN6ZL#>}xPVSeV z!?6umFW3`%ekZSvJ3BUy*>J2UQr>U3X2AuyJQDF#jS#0TCeBg2@dMmQxb_@!w`;x^ z2d~3Yo%6j+BR7#8IM&QOPTSswOM<&x^EnOp)CdI6;z#Uyl`yVHb1kRk{e(W2S#}_(=vf3Oio=8Sv6eIFSyx0(uv_XGaqtFgXxo3r z#w8Blpa&bDBghqn&F6sKI^--?2JaKr1qe-cZ7K`4K8a9}Yt!q&M)EH$TR3i^nC=^f zphe#R&g4WCx&C@rS3%h@Be7A|wxiim&xsBGNcSD!M6t;q*9`bob~`${(r%4`8*fHf z3lY47m$C-^rfJbG4_y8cgcg{g9}rq%R%GKjIRnhwhxI);oFwgMk7{=s*CQZA= zY!h|~y+Lds9Q=FBNvZk|yS`Q!0jSh|z}sCBxJ>`^=sC0Sr3k4BieulC!WfQ(M**jr zJ!ak9jGLnjet_U`^9`9l5HjbNsJ>da8~%UDGUR#R3CF1@r>J0@c}M#Qp+NA?A}1N5-J>a5lnmj-plT?e2lP?mCn`&YGm_7_o@Fu{H#_i=kl;2HD(nZ5j;DH#maK zgkw(mOnk3$cudC@a|DjFM7q6JU5lm@d5LHt{`zPx91hvBcH2X69NgBe(AW<$!OV-j z+SI1Zc71RHW87LypYSqaCS zW=-{CF>O5NY#rciK#M%V8oK$YAa5QIz{%=IE)QxC!!Ed7!_W@02XWlRJuU~1@fP#Z z_gy%d6}7kZ>Zr>%h~$GxC>~Tm?m%jJp*?Ws*qe_?9XqK?h&&#u;o@6UR>PTnXr>(G zp_|*KEM*hi?X4+)go|x;b2_(e*e*C(3XjUxE-hE*W+iW->T#i5ROV;pA9( zF2-3FZYJW)GlF%Im##&)4rd2j2lmvpMP}%JgywP&(@%&4;aJ7?Ub?o7QMM-$;-tEK z4?70JDT#Y$w%zFJEgcSliFWIBxSP$L_6dZRn)~op{LR)KCcA*p{bnfpDqUM8H*9Ag zUAxoVKfgjK(Tt9`8Y69nb|SPuZu!=}ayrU)>Zif6QP|k<_E$a}hXj*zquuxhE)1@n zxs%!kUZb05q}E;0nhX-`+O#Ivc&wjX-Pnh)+ntBwsZRFd@cy!|&G(S3OW^RppB-#G zhmgD&4ms}M^v7P3FwQpE2eSovTd!iQ0g-odPwXQH;n;1us9uX%KR}KU_H(>z@*4hr zY_W)l#7w(Rt{amZtKc}}r91jBZn&?UcQWoFxCN~#8{jy{W!!}8-%ee30Cc|OYWA={sll8}gKi0rqaI+AniRuoz-8ciwhMVuASOW*4i+K!o zTQNv%yan49P865p-MwzmT^;w1GZx+;{{jH>3TLAy#fB(M#M6VZKE)!yIKGwRT|YSPxAJ~a3da?Kz4DnL8;s0`rdbCM zMHFwY)^!L?FyDW87a<&FaHwg2BR6Ws+7TLMJ`g7$#6^iMyV7oKXA1K|c*juxNF11t z^?3oieo+5h;7aeXzM@0|U&BHjx4-6eblqbVZ%aTwsQ1HSvmPgoCC)V2P+P@uS0Mn#o=dhQbZ`6H(=}3Kx|`X&Rm2> zA}t2ual7#r97jxU>c7LW>gJNO4jrXyc5!$y%0UR5?;@OXcO!@cFN2pZ2WQw@skj_G zh2V6V);|a}k-_xK!M865t)p8LM9AP0T=z0Oc{%7irZs5-f;b29t{%H;`9*r4x!iv9pkK1LQx}EL}{?`077;o z!t^V*TTj8^gOUTmhR;McS0tligN_D6ZAZ zH_d)iWn!zSehhVh=i7PjWIE(5_9gm+t>M~It@d}Qr7O`f=L zU`5YFz^UB~)8GL(wh$fsxZQdJPJSHMXS!_5<+jcMVH3=uux7&HZ3x^I+s}~WYZ2A+ zb-Q&2EZ#$29&BBY5FX@K1lvAB$ec(mPvvgCW{Qoe*miE6DJPUB@;d2u{c~ZYVOV@4 z#Pl@8-Vq`5VXus}TZ`dv>|GIT)FQ-ls+@QuZfY5_yk6)oxOs@{!p?Q;GfNyy$2+MT zX5oYZYIfG<48sO5o6Qr!;MwvF;3hohq6sTu@mzo=lpr*b8gkxg!yZ(Z!#>CVi{sL-Uw%|DDzZ)6pr`C-sTh3 ztT}2%i^vo-434t~?^EI(*1d3JToK#H60>iu!t*vHx}>XB*99_8-Yg>EI0$Bc8F_FVa2a<@#hLd&qwB(! znaz9WWH|0u<~%oY;ka6Kk>`oQd*)WT;FY}u%Zj4Av6iOZCU;_sh|IxIz;V3HcfO4x zIF7o?cpg?RP-Yx-yF8F#i_EdRbyy@0-iyAOxJYzZht28PMJ-3&Zg=1j$2{uhBV?YF z^(JB5hn;(oL!Q6P+ooP3HW2;@$amP>MV>z@AGKK5B3TFX9{(KN)K+%}ZX%qUT*WuW zpxFZ58*EEJ@MgrwrL)1X!LxrX!t)8Va*6C$9N(}ELf|+(oj1{gB1IIG4(C|rQkudNH zmT>}*T`jlaPRnG&WYLS^*zq_sY_eOAz~PRArQIPGGfsHS#d{A&5M-^fBJnYmC9ZX* z;3KyQaNNb)nIAu7z;RCDlY@zYcf_A@f}oQN3KZyLCQ3L$v|4Uq;m+xq9i%YiJ9zs%xnD(abOFU+26u=9Md8o z3;T?jJ_aG)Gi8VGg&Qs1mLLm^`3|Amuxv4XD{hx*_sRim-R6xtkZ5FRCp=@Z>etB` zgn>tgtyNAI{Wctra`;<4tlo2Q-00M;`aYQtH%2^Vq{Fd8ad$w<9m<(!7VAm4VQi4$ zkt6qbd`y7*?bdO*uAKq&n@?cAEaoXPj$CjgR=#`h? zczx6x?pHW&hZr67>wr!2`f_w!aD2Z~e&})nj%UluZE}BD*V1@B>uQAL^sPe(lMZas zBf6GihDs5_=T%^R^K>nPAzMB|tc6*cz|Lt{Hmm7seFq`AFt2tY75}urdIv&ss_#Qc zPW7IT@~t2)6@k$0D9s#6qX|yV6}D+mzC14A6abeBCwmyTPwRd-e8htja<9i^39Tn& zBOQdhIX;QQU1t{@^O;M?I1MK^0sisMwL+%EU9JT0mBZb_mbJ_?+shz)&(b6!%Nrlf z7sv(H+LuNu2+t1YDzSY4XU^4@Ka8_^ZBeC?JeGv+0+4^(unQqpO+EL*alT*-y(x<6Ry+BErZ4=Md}9wA7Y=pOp&7rC`2CVLJfV z+A{O+Ec!evr<^?6EQAY2YHV^Vf^0AxXY;*ptGx&p5gw&jyqs#7zF4k10p-C6&iW&h zm}4^VIXSXsD(f0JydQ$oNd-b<#HQEqCLcm9T;6dQ^AG;gB zAtVn;YMSBLBRKrvkF}#jx_-KAcmH1~_&e{)i86Kuvk2waJLP501OHoTx|O zWMlCjgJCOCbJG0F$+2);C^&ZFZ%iJATL|aD%DRQWDmLy#(|5hva?r@Th(A``Et}{j z@+z?7z;T9Oen{J(h`e{c4aaL^{o;+o^TMdWXobHft8V_uighF0B=c_!4j}Q9IBFyp7h1jqkMVtcU-CNFOzt{QRH+SP0gt*2q4G-A$=f#G1k+=bn zrwIJ%#P4=DpEA+mJ(RnmOx|iuYP<-?XAslj^mpJreXkK-E~k~bH5d=Usr8d&*FP*X z-q$a5&TOY?+CDe@Lw0BdlrJj%e&yThVDK}FQ@!D>?wUr_9?BQh0_~_gwLN?{<*6*c zySw}sa15BQ|Bf+8O>j#jjVK%6tQrr_%emXUdumQNSO{G{f+V1rMkB zH)X~Vinmqrk>G53kc$5&?TGkEh-doAGgZRL3WO=&R@rq-#|#lF{-0DAXO8JNX0qP1 zRkHt%ve-zKo@#}k3uQYNKpDSK#kW=RTUGpRN^f`P;|5*`{BOz(ixj8Y;Fqb4u}b4q zd|PF{<%*js>W}LKF>;y~56t!^s%R>cCn;U2IF;>6SN@-r`BtfTDp$r`%C}XfySruP zB4EC#?67Po6Wj}B#qLw_|4DhFjVc|L`5uI_oK1@V?~3*_;lnBcl@)L)-&R@Bql#16 z6I-Cnzg6+J%5t_V{$FZln*_}8jPg_#T%vPd zWC7aeD!#3HCnD4pDmS5eCH zEXx0rGQJ)2as9Pd1=v&uDubOA_fWj85_u|4Wks)2p2`bctvr<#?5jML{u(GA#qn)D z2(U#1RD%B#WtQvli{%W2^1_2uIaKl+l&8`UhBBSM1>;XJR3)Ht9gl=^as?|+Wd+AW znLb4Ee^T~DxQcJ9yx??jM%{#8EN7NQt^Y`sfy#)Rm8Y^o(TdMkoXT_ypj=Lipp1&) zum3{1QLjKe%S(nbe@dnbq^gWm)-+xD{}b(meAy~rTjhoBRs7#Ivn}9-?^6k>%$TEm zTjl!QtT>hV9#!e{6{j-)V^E^U6{q%rFNGpLQ+r(ov@)gTP`>_2S>PVT^MY@x^lw2q zH}T|`ZtjAON%QBRegibJw?6O>bK0hEi?q2k*rH`p z4p4*D`#0r`~?0Dl={Y=PE3MGRaPrj>-zWsQiCYR_LX6Se;D!8h#PHuCyG=Th~72_d{9myGq}K zvWKcv{6Q!ia#;C~pnSE}Uhv<6cY`*o_-1wuGhR@DN`Dc`3tm#3O76yPQQ8&SP5J++ zX8uny@;SLbF3cVqp!7N@>oOR>Sn(k=O6mRKCqY+2*``%c^kAlTr%L!w%6sm56;EYB zxyn;H7d9#XKT`|}GqT`^R6*2s;@Rv}o+HV*yA{sEl2xzBhl`{Fa@YH(6soZTE75^2=5x=0~ zsjSA|N-rtiR#_f*6siv85@>HzBaDDqua4Yu@S?In59Qk`FWgh{w#tHgDNd#LR-Vf8 zu2TN8;w?`m?4u&6^jAaKQT>%(r{bwB=z8U;Og~VmAC!&15$Y~VPpi}4NLaqwDzgPD z{!hxw*b&ca1VdTuL@4u3f^z)Bp?p!9e!B8hrklYIW<-RFXsb+clj3ca1UR>s3&-m^2t!Xl5J`U5inzlN|2^}y3$opzNk#MT6yaA@Y|p~x;(Gq zi&cDEWrbf<@w-&|vP_k*49b@5QTis78TKk)0p$e_LHTN{TslV-r?P?{L0Mk4;#B%i zm2XksmcW0~_TtQsYPUUs{4D>ZDyOY-&74y4->P^jm&6(6sm%Yg@>J$K2W9DqUM;x@Z+YU+DssuB~!}Z@W%K+}1`}z#@1~ z?v+rB*mg!O>I_(3cMX)u)+)Ul%9F_^C|^{T{|J-~eN<_I(kE2>b|}kx3d$FizEJr# zD&IeOS|xY}%8n|AUJE@0HK#0;75f;j9Gb%${WeXd@dB6A@O0Q#{@X*&C$_sgM-u#=|MBlSm0*vmbqW?)bdk3m`D$@^A zzO8b~-w4k34Tmz{7%1Bj0%i3lC?5u8`WYRtTQcDs0M>gRlpS@u@{6G?U>TGzDlf2H z@g${bQ0C8o@`_S&;!Z~c7yW$j=ub*l=1!GSwMfq|4BQEghstr zZzdnEl8=D0V@A=7ZH-vcj1EzFqS7!%gHM4nJ{-#0L@0if@^h3%E4@v{-wx%A%5oN| z_$7+BQMsg@DuT)jEr+syS3+4pveFbN>z}UtDkxu6rdzEv1Imiu31$D@1Lcd#{Mjmg zT}QR~<^ZsO`=PAB11iBL#UFz5MP&hb%C}YS3XdyJWqDhbKA||3`L{!Poo6! z38<{`3s5H9rF@BsZ>zk(tKiK4no3s=Wx;Q&^i-yMM|lLb0qTe0vf1zJuU+{_S9bak z^f)`qAIi=jhF|R5DdHsDS3c7H$B%Y-jA;8&F6RtAZ$wu<(rx<*E_>$6N4i%&(&c#1Z`STrhZUyY2ny+e(?#O z@#f|)?a%f<6920>^RAos%w@0atz7wZ?-l(&-nsFWw1WeC9=m_DeeRJd`^t{2*>Pc5 ze14DR+oos>-A3HIerI_?`A4ajIt^Stzu@I_oysOA4nEWg_0lz2zb{1LyKeJD@q2C_ z!up=u4E>~td=DVH5}=geE1_2c*xm({3$@jQGgnPj>6|CfL{$j&QSmlQB6=w z5Lg4yMP%0iL_i%t&^G}2bpRto9YF&@*f#)yBJUf3f>QuZ1a=X6 z3LyMjfTB|XqeUY@GeOk10Kua0TY%zv0Bb$KI1yP75d9rMDM5(PzXPy+58(U`AXJnP zloNP;4=_nMz6XeH0H`Dg6P^tK-lqZ58vv$?3W6#E-_rooMDl5Xj2{4M2xbVM9{~J* z1jzXTAVO3V)Di^#2rx@z{|J!#6F@ydqzL#4Am|K0{!ajNL>)l`LD(69D3Nytpx|eK zCW3h)^k;zZvj9au1I!nV1kD6dX8{(9!m|LyzW`W&0k};>{sIu)2vAC}Na&3KwqF69 zjQ|c&LQqcN^(#P(aQq4o`x`(dfm3+?2H<@TApJLhWuk(hioo|AK%7WE2awSOP(!dn z_%s3d{SJ`R1dt%A32F%fe+Nhs*}ntio(HHWNEQL-0fL$V^3MaLiaLS@g0N1kD6de*&x(g?|DRUjVRP0JvL3UI2*x3!s!BQ|NyI z*!~7^{soXNN(jmcy#5AQCmeqR#9jobB*+n-7XiF40i<69ST8CFst9~90c;S-m)z#% zXSky~=pV@UaYt|H?jHF$?lbgF`PHzsup&^0e^_Me0J&}e^#pk$zzrbC9U$Kgz$NMk z8VJJN0rEwjJ3xU2pou_;Pzyk~6`;rhuthWyG!sNw0k(=lD?o8O0BbvdZ6dNAKy-V6 zQiAP5Zx3Lz0XW+O6p9jpasn?Kz%#;O1Bf*MDhY~&rvc#I0U+G~cwSTxR1x@g0N5dt zI{;*K1gIg{DSSEt_;muv=?Jh(R1?$^1a<;=S!8zt$n^lICnymC9sog|0rEWnc8fZK z27<880Hq?YGeAKXfF^=65!wYHyemLa7l1vYk)W9%sw=>oqOdDKu_u7l6X0zT=?M_s z4WN`@uh6>z*t!Eay8%>)5`uC9ukHZv3P*Q<*d73t1eLm0qR5vK{U zihyeYg02I|zZT#(QAf}~5Oy6vlgPUcpuiWPiQv2l^#usO9-zn<;1AJA&`c0@J-`J~ zcs)SzKmhANfWJlLK!9jJfKq}>LiYo(4RY@!miW2jKTvQNull*;@Iewk$bBXcAA^u2 z_6Fps9E3bp;dujq_h5kZ8vxpi3W6#E-@yQeNFEH3F$AE7prh~^0^sKlkTV3pLsS#g z5(N4KbP?J90J%c}>IpnWz)*mo8v*i%0(2L31PugXHv)Kxyc+=uh5u`X+B62uD^ay}bf__3D0bm;m;2Z(qBT5L$3A{!E zTq_(S0b&CIDhYgrXCQ$0D1h`pfPtcdpo+kE6u=;nJPIJg4p2idSoqih{DJ^->;V3v znxHlay*@Gsy?&#}4g$y>-7*XTau|ZfAWQyeWEmmqMk7T7LD(38K#?~Fpdc8aiNG#G zg8{+?n0fI&0Sb*Yj0M>B;<3!{*favi6r34`YU-*pv2mx@82M84< z1my%?ApnzvBLpCJ0zf4}nDCqc;2jE(J^^5=s352!@C^l+CXzz|GA07l5X=xh69N1t z0pv^sh!E8TwFH5a0A`8oNdUQ%0qO}NMZjc$pfG^^$pCXi9YF&@SQtPQzMmVQUx3f;Aa*W5B|#3p<{7|y9zgnBfc2t+po+kE9>4~XJP#lv8lZ;Y z0pSx3;5Q#2CmLXrs3xc-2%Hb_u*jYdkh=h&o*+*IEC2{v2#~)3z$NMk8VJG`0_2Ol zg#ZP&0yGf_5qc{?_-z11w*qVtjRegEQMUnX6@|9}6yFYDy&Yhih`b#jdJ#Y=!FHi9 z0kPX~baVt{l9!1JPlpo+kEF~AOyyci%O z2B3yur|^jZ@LK|q69ceIR1?$^1TF!1S!6E($aMnL6O@PmCqU3rfP5#wZc#_jKoGVR zpj6~71t?es&_qxsLYD!A#{v{B1K1-P37QF_VgcS1g|Ps|aRAmhfVV|t96*z5wH>bDsCBUbm4nRLD zMkhmRL>}dsI88Y&LQ{}9JQazHQjqvF(FlMqOrMqt`9c&@PKZA!Cq-l$Xzpk~07@ z)&SHH{3v|Z0QlVrkh2EhjHo84B?!C|;H=2L6CigjKs`aD2v`dcbQeJWT7cg~9YF&@ z*j)fkBJVDMg1Z5l2+oVpy8*)Q0Vui~;1AJA&`c0@55NUccn?5vCV({);BOI`2@stH zP)cw~=ve@^YyfALJKpQCh*z_C+#vDFMiO`7$VQUbdjTp5titnN0Pl4G>GuM(7Zn6m z1itG443WGJAmcuO8iJ0(=RN?x9Dtnr06auBK`lXG4nP-?odb}2KR`W!rwF(oAZR^6 z{`~;mMIC_NLyTSz@e+BIp5ip6mk7;;c#AER-lCCmm6)~x(nl0ht`>h#`ijVnkZZ&a zNF0Q+z}TWq>dqgj_2elg0Rg1fg*1+ zK!FROiNG#GT>#;a0u;FbMvF#*W`d|k0fI&0qX5PEcm`;fk7s~!A~GK!`Z1&^%}0t5 zp+5#-69CS~0769xK{ zg0O7>QTXq#01BQ2Xd;*=LZ1W(-wsgpB*1*pNYG3WwH;ugDBKQE{1kxoDS+EV~B6J5p_zM6F>x5$$K|A$^CbZ9mjTjW0$499 z2&xEtUk2D9l3xbMcm<$_-~r+D3V>e;K+Y=wn?yB1EkR%jz{4WD1R(cSfO>*F5%4NN z&~AYIR{>n2j-Y`cY&Sr@$lDE2@ESl9fe@ju0fd(V6ukzpMKlsL6GW8)Y!!v20L8BZ zSYHR&CL&)4h%N&tCD<HvrQ2 z06Z@$2&xEt-vHPllHUNxcoU$8V5jhT6Tt5+fSfl0c8O|&T7tm00A3c^Zvo`K4Ny-| zA_Cq92zmz~|80QXqK=?}AnYB0Qjzx#K*3&sCW0~%x)&gPA3)JwfIXs-pqU_QAHbWU za34T%1%R~z;B66E0T8_(pp;;*(Dwt_-UV>(2dEGw1my%??*hCl9Pa|ez6VfAP$@j$ z1Msc{NPiFD15rUxRf%2d`bz9l2SjouK*sw>QB#Q&hlJ1j0Dd0;|UqJp4`!1rT-(<1p}fQ)K@8iF5%Pc?wwCjdFs0B1xs zK`lYxCje(f_9pU*v0fLSKr_DO);F9GTaJVn5l06|{?lu$ybhq~Yk=OOk)W9%st%x!D69i0{szGM4M1NJ`3*qyDS%RfenLM5VEY!p zc?!Tsln|5?czp|St#Et`5L*vWN#H9y>jAvK14yq27$_f2||Sa zGl1V(5-3XBW3&2!SK~P2D+XygCBsT(N z{0dM*FhltK3gGt}K+dlK5u%!)mLTvqfLS8@H-Ox80QCfsBH$cAP!mA@Ie72$1tPK!T_ys3i!z2#_SQF9PIV0;nfQ76F&s=j8`k&>ffH zQ$-zpgT*61%!1QLex3z=p~E)8t`?y>e7GBu7wG_NL?b~nL6jT7T2bf*Q0xw1bqBax zM7je+TL4N4GKFpduvr0|7JzI~LQqcNWd&F#99DqXb^w(GIl{9YfOmU<^mYL2MFl|> zfp2?&4I;TcK!y#VhTs9=V*~Ir0CH>qn?yB1EkU3G@UX}>0CGD3)Dz^1fDQmb9Rcz? z0JuaQK?6ZpM}T~h*Abwg6F?Jz5TTs_!aV?rIst4EjRegEQ62zWMWF{kac2N)XMk-Y zvNJ$*7l2ZN?LzMYVCxFt>;h0IN(jmcyt)EBBOF};Vm$#W35tZLCxCZ1fOJoQ=S2lU zRX0l~aa}jdOrAZu0c3OsxQk$?@ab-ur@tuHPzy zX5A-}Ct3D-oO#Xsj+3m5P;XHfZE=Z@CtGaRu4VXlL?R%{GD-9gvt;QRqA<+T9p|0K zFw2d+qK9M2;uUdenzr~2rbI;!5gU$}q?ANl?qhLy3NE*2pDh1i+1pbsTXnDO_wjWg zxO_}}+|cEz@~{6kmnBTItktd4EAU+pBA~xzuX%x$M`T;pKt0NEfq6Q)@Q$!#dENJ_ z`7JbA{OiHxacOZ7?NzZW!m?X`xy*5srK8njNQ3$HidmDPU0A_oX7*o(S}bJ^b1ePc ztbV`Z3TC7Adqm+}OLuEJ{=e*=tiq>ETlUC2i$ym+`wQP7g*yKxwnbZZ{%g6c7ydV6 z*6WT1=(qdY>F5n~d@s@UeT&7~vpqZ$g}5`3$NXmVD^jw4>aJ^D$ve6U45&r?w8%2d z>f2vOQ!A!ggzhnMfUe;?3$kwT)3qL~{@St$i!E>I#!G{Beyd7WsmNO*$HG{i>c7U3 z5U&-8&?S~xdTAMAK6ST-O<-}YHS|bait)m0?<7^pJ|0^p>-@@=tRiSvksW2pqgT;o&N$sHtzgm zH&|xNs|KZ79yGGzb#wB#$_}Smws!Owg#R=HUmB7%8rrKYFTgU;!WCi`E-zMwi=BNG z#Vjt{=WPu&tS_EM|FcScI6jNZepzSPr(gN~|6C6|G7bL&tH795b|~K_|9xZptK$Bx z*0FsrUXm})G+*V*D3b0EU&Zqy*NM_Em7d?Ti~rWieC<|@U!L;-7@PbW z7?odMwOpku6F%Ee1ixpQe|wHSSbGOQe7&QJ=z(yBN#yq{Gp84R-cxL!NJbHv{Ay)( zD!-a>Fn-voS}-<%9Xk>~eDSM{Sp>iLrx0PjzEBL?sm9*q>x5$bPOlw`@oSHnmxJ;> zyBn`BCCk+M!kku+-;2zI*Wl*|#lBXoA6PdzcQk%)GSl_P&j2tc{RWH;@xhO;V*LJO zrW=5tp(^hmVC>Fo@e|VWwZ{BjWhT51KhspgzZLTZo37YJmHB$GUlHbu|4^5C2jYj7 z;M{QoV`cpCb4sQ2R_O+Twfuh~z4^7q?CKlv^AQ4^WPMa-4#&re1%Pp+hv4T6#q6p; zf3Q<51g{{)h9dl(Vxz&>;v4bPpz@9dW3h{+k-}6{c7a9R8y(^Gl0$@m$I>A-oPAXz5=4|sk} zpE>UnRl+G?XTdn{lN6hZ@ET5Ry!bWTEHE5DSzufX$zZJXH2gfS(xs|&)4{eXmZsPY zF#qEV(f-@1mkxL%0RfPzj;uDa50PcUj7Cqz zUk57NGGqI#i>$Hjce*XBhpd$?n}JM;t`B;_xqh>3y{HCUY~vye=4@No5W51`Pt%hU z*a#H3esgUZuNn2*vtrIerXJn|)?t@yBc>v53LCKN7lSElGkC7oxa+3`NU=HS-SHX{ zb|6!6wSZ2@^xJLgwZvZ5mhC~N1h#^5$khA4vt_NZUs53a_S)gK!G6`2?bCQC&u!s1 zgc>IH+luY5-?C+TOS%%+9&X#R!?s=rWTimE$x&pgrjBr59{63i{dU6s(3ah_Wu2A( z$F}gc9bgw^Pi&dqnl5WscxKBU*m~WN{bkD@*?QfPy|iV2B2(sifXmMD6I-t*vQg-9 zNx){oB1V(vT1 zHU`;FJZm5+WP2WqeHSwQB5m0??BCk5!nSNYGQB}x<3kZ-s@u;%@9oyFcnw?lITvlz z8u*n&ro>EuwzjOa9pFS{`oHxWGs@U{ldv1?8Z$mH8NZ@d^{#u>;1oDX5E>GiAX6jw z0#4bornYP6Hy>Sg&Vj9HMy)@x_$%|@o#xGkn$qOU~H0nNseb>O?9jKueU8*glsCZPMCcxSyaGcE=D8l zjM>*#T!K9snFbZT1ws*j1^tm}Q0Z^WmSRthOuqrP>}%}7woD%bkl$sH)|L&lWy_JJ zkE8LA-ymDK0()i@HTpPT5Lk(QG}+YX!%5uNj2O|j`f5bYaO#Dr4+Vx=aK0*-j;2~e#h3+=M2bTRKPa~6WNLrZN)9fg5&dt-y~bM6?+<6HW`_k**4g2 zj}Fspz3s@HcX6v9sVsItT=Yg_PPb({u|IZ341GL7io4(my?GSoOk1`a`%}Az&$4CT zB0GglBg|}Dwg>wGWMeSr*s|}ie`ouhi%ccGS0K{}Ge62!{GN-U2sNB6uw_4BAMfGC znwVeOvVGV~fkuvn$TTeMw`CeRw%D=**dO9oL%~to?~m9EQEckD$B-#884vQOur2%< zp<3r5;4_&4>bfV)(d9IglXe(CA<{gg9(>A{9l@@7XfEbyTXqz?K2xRce8!d?!=A*J zokgbjkAw4Ft@F0t&&XDijs=((ELpRFU%1eV^A=)Wv=x8F-bM-LcgdEWz^?BR>UY_e zoy4BSmR+%Br;v>&1?p8-&F&TSrfas-8AM%iT7{{PQ;@ZQv(OQldeHC4l=gFwMvnY$ zm}Dy{rrS6vq6_efMy+0O4_PYAi|_|B^#Tu7EuWVl4~<$4-fPP)W7pg7_46T9R97Ir zEsJmKU6ledHRJ@AEGpm{7kc;pZp`;=&%a?;!~7OAk);^$JN84^^-FBau46xf{X5Jg zw(JIW`BkG$YRhh7*OaJVGFx^FdkK9+ON~t5&rt4egT{};m?@AcCwCw%jX(_~rLA`t z`%8*VjUkmSyN6xhs#9Y~ZOiUs*Ov`d??K4020Q@g-J2m%w&EWMbI6rnC^AL-5GG<# z#iz6N9%0Ww0?%WnxAh)l*9*%pVP>@T{=}ZdE`GfUMwxp8$&p>g%xwFOddfvYgjX=L z+KSJxYw%HhWwT{}VLyibcg*az>^XK7^>xe~w(JG=qIOZ|v}G@mrK1E@lDUw{`EPio z@9L;1wck<-U%@&`K}D(kmSp-<$}X93TjoMm#+F6cGB>gaTUOAP#X**ejHomUA(L}l zWJDaGj2H2>up;pwR8EvjZPvI9;PBi3O&{f`m@VS~+`pq%j*8o|c*w%+h~Kwm)3qn! zH~uFxbd6_KA$>~Bzzo>(9$x^1?Nsd!SO+nnuVCpQ?k?yg=v++GwVuu{&n)b-%`fXb z)l;p-s&g~F2Y5GLcELAp6S>}#F6tKfybZ~SSqDWaAP`bQDo72%pyQRakPgyA2FM7R zAq!-K?2rR;LN3S+c|nIr`5-?OfPzp6B0bb;VJt<=sr8=hQ6FH{d56w2DnLchxsnbr zbYO9xJUjrMAw2}05$R0m2lx>V!!h_7et{Ek3Qog0I1iUW$39o#8tAy^Ce(BV#Pr|b z+3SkZXUg=Yvx9I5^mVi!U?1#(9%%Q3Ua*U6ea>wgYzLih=&j8<)7ZffxD$%g$4Wps zC=VY(1*iy>pfXg0>QEy-O}iGBB#;!6!wahCCESMxpwArW+YmbE7zl%427eruop-c^HqZ__#LL6@kEIbbhMMphIU7Z@)K|Zb!!MxT7{_b6 z#dyM^batWUUjj-)Stt(`;UlO9)uApl03Aa#2OT}Mg?7*l^tRL^a1;W$*08CmTE`KM zK_6J!j%h%r3_7xy>7m4QB(VT=e2@SVLL%VkARr#*7nuEFAPj+M&}o6bis&P`Pk9w2Caf3FW3eL)`wTth3;+vByF-3tfdF#H5ZKpR?ZV6|bL zgYMTfmSwOU*1|ei4;xJREuQQJzQwu+et>>zyE+g;R!T1bMO|`3AN79 z6}mxv$P3yM=Lda*q9?6H-#_UAskuIfc@ZwduW$miTRsLyKwlU+2&-TnJ^1x!yK5ag|j{iH324pw!r;i0DKIZ)HGqWrkQCctetN==l~s|Gw2jk+knqu z0%-NGm3=Zu02guBHuf@HfvYf_`X2_Jlk%r4Xiuv>Yzk9zn z0?G#T!qOe|Ddn!v2~vT!huRLNfl$ykFdd|a43H5rL7>UF-BT(`FVCM0(_sdTg3&Mr z^dW>w@DZedG!O!zpe@&RScLr=E$%wpfLpK``8TiyCc;?w7zV;1$OX9}Zvt-K#KGbL zFC+kM(UL%NI8I={zzH}Q-z4AR36Ij^P>aC;cuD2W$4#FviGpYt4kKX{6oN?5mw$SL zwtCvyg}@oEx575q4yy=jEvy6W(zFAc2lGK2C2fq@2u10`Mgdje11JX-Kp$7i2l=4@ zXkVBC^wDH5W*T@%f*-+ScnZJ53HTmF3$lY+xEHiN+6DUX@(Nf4vtS0y zgejo!S$_`WKp*4o2rWUoqqa~7>OywVPN*qeBD*WV)ZgVvlvbbX$pHmPgg#$U9cn;L zsAb0NVzA4JH5a6XbZ`dsskDS?U|=)q@=+kN13yp>GFbZ@mG7@ycQ&?X_yie`u>^L``^*Q4-5CT4!Or+!C z6O}AzKT;1GKts@0Bp2j{uPAwa%A*~$hYrvYM!;Yg0(GD+)Pwp^Mqk1x2l?S^N?`@e z2YofB2eg5-kceDrpOO?(zdzkfgGxG@OW~FXA-hf-C>K;!_nq#OOhTe#Dd+a$`z6a6q z%-lVmMp=I*m=CGY%Fq&YhOav&x(%ak#d`3VIp2Ajdvx>U1g}}~G|t%<>j3x|2EkB> zf~KJRB)Z+9+Z(sdr+YnH>#iajtKk4e@h6cxT)>_J^&rp*xK6yQLPaP6I_)k3=LqT= ziMtJVVJB=hbH4Y~&$$;s01@8^f1fwwF)4fs&*GS&KYE&Z=3)QRtlj2G zk#jWGD2N6fj1GW7&>Q+dX9$7J=Hq>ybqWFQ4UU7Ip&ARGJ&?w zPssc;_ytaZHkkTK;a+$%cLTW|0y<68>Dgxx4W*cy%1~Ad_j|f#)X`XPvegr+(Q-;+ z>S#EB#Yf2pQgp^dKCH@e~L1B0^e7TDcNKZ$?4aa@+Pt-5JHGk{CAXC;F$m1YihFF`6 zlU)A-UvsT7t^nkZId{l2B|)TXY)pENEz~jp+ohpaVen z5DR0~?T{DPkE3%3Qx7UMMW*eKj+wL-`U#n~McR041O6*$Gk!_exLv^H*|sSEE?v8I zow8~iJdC4u^G6{Kvgw%9U?fl+{)3f^3IOy})Ot*P(Mo%Con&@^_Rt)Zh?VAkx{iw(2jXK-gP90YLsVk^q=J-?5Z;6M;DdOO00KcCQ(z{8q>uy@i2Nr9 zeRE9Dwz=#pAKPmE^>p4CqHIBP(#!KYZ&&tpo3Mh z55l=F0)?SC6oV7!m%!YJSr)Sll!j990aSttpag!1Ssr4DKcFI(8c-do!ADR9b`w!m z%%;!;8bE!h4Yi;i)PcIt2pWPCr8c29(inR)Xa}u9Rj6uc0j;1Vv{n79sE$G#>`GyG z=nS2pD|CTw&;y2m&J46H=mmpe5cGw9Fc1cS5}}Orw`Ct=3MF7DdJ$F#N4XHW z9gaO3hQSvw7N)=lxT#-H#$Fn80%k$X&oMuPaWD#`ud!ha=4coXlfcoJyW?-7C6Dq4 zk{VA_5zN6;`!ILH4q$2TKM>u9eJgB+WiSh-gMpba1Jstj!qixV;#AEn_?eqVj@BJS%IO)<=q?}Eu-}GTa2;;K4fqXy2gw}s zIrdHX`3v(YJb^#qF%%=bhnO32{{!;@Jc4H$TBM+Cy#giTGN>(H1t%eDUTULiw`$LS zgPNf9w}6XzuNIMLkK?iJaWOSJXve8GT^+kt9NG_QCz=&9$6;tmk41+gL7>Buln@BI z)0iC72RhYB0*N3Yyax%u3yMgIkzPEA4{}p`No<=s8FK7OObV`LzNfXTPG=P0bUf%( zCKPm1qjhUq$OIW70~E%Sa-;+)vDu(J3C)G6y^T7j_BkITQ=+ujsfZu7e=RPwu+Sn! z3liPEGDR+VazyQ5&Mu8ayCiMR-Ulspv^^^X3Q6)vaCGD@nU+`D%E{i7&^1H^6LJtp zRvPn7x%?>{`6~tJMEUoBTBFH>_JT6Elc?#SlkRaa9!7%PRCX^x4WcR6YUf%5I}PGf z^hSUdJkH?Q7WV;g1%EE|)zDgV-Aau>sZ^`Gh2SQr8))EiTA*5-THeRFeTLZ*vnGBt zs%mh!!L=5fEub%qL^cYpV*e4!f=aFv9Dse$9JF9Bqeh@2*3Zd}a-x(vJy($`LPe&C z6oCRQ59OdMIg%gc>I1H&-w>H*+A3Vv0&S41fvV#p%t|1CQ5CVMxoYQp36EOtIvyQm zDN3iZ?MZU!Xa_Af-4{IpvMX?B8`7O?MWlqv&52ZIV`!xMuZyKNDB?QM5E?*zs0SJ= zwa%2@5AZ!~fVHp&RR3D1s|4Px^P$Lwfa<*!lqL*S^FOPV`d4f1kHVXEs(Mr%(vJKK z+Rj|7{#0+OOEo}6tVlHqse!eDe>SeznN{sa)uOheYE)bCS7Qe(Wk9X^10pL8int@P z$JiC1blO8ZkY^SBG|()gUeL$Z)oR)c-y_o|xEFMTuF%DlxyEjyJJz1i1C*AJ2u?C5 zFa5ABW&|iOsy3rV2-k7<1xoV zRpetZD`TpGjmAC>G=hDG`MGVEUni-PZTlCPBt6RCTBmR!C8b}A!tvyo%BN%h|C$O% z8E`V=gyF=qP@|Uua|BMnQdCOi@lCg{xOQ^l1nMMMrXzDAaeLU6*Dp5IRVuLD%S zT@UL(#px)Q=XwWh1a&8MpUn^h+d%_{1_TWd+c3An7Wf7>ftr$9yyHiMk0vLD8zoN) zNEhG1ZqW5E*a?z5?$T96AA-!iAU}KHTaX{=J9;u5yQ3p_Cljo|BLhm4Bc*UZ4$9e5 zuGJ?sC}`w42-~^-08<@H6U#)C?1ras)GvsRgO*`OWG6nSZ#e_kPsp8B(Qx$Cmz=5K zFm8uz|MDw0E%>w`Jc|4n%tQ7wrXHP;UFH?8FUJWmJ8yUj_zRGX`0tor!$E1+xTC3H zGB_PrgO|o7oth}Ws)gUsm#K(VPzpyiBf0!u$CPeq+;uMU2_>h)%psryP7XSw{P%%7 zbD^QV4WGaBW=9tfKDU*M(zu`OnDWU35J zs>!hHaM4-<(12UvpjuKYb*Qc!zgb%v-c;wxrLz=xg}#P7j(+@8hcmSQjqDCMRn!D~ z3+M|P?tjF*4JsAITUs5+DPqkLD&hw?+=qK`7hb|sP>!BMS9Jcudxb|M zJOcUAzUc|3^!~(DNqNYOZbhh?%j>?xU>tRl6&G~lM>l|U@~A0ar;s|0Ob9xUO#tz2 zyAJnqLoQw{?5Q7Bim;V2=T{Uboy+KMy^eW5038+P2f0OpOgI%3)=BE#?*w~2(uyRj7CQ+4Y04ll&-Fus%I(1bGT@Q zy*u`fm>r-kC^79Zm4kMek(kcHtrOSUPOJ0v!>-#9y`dL$0r~BY*$uiv59kSfKz`&N zC5sYJngmFo>%k~Urh6F!!Ew`p!kZQG4x1^JD}91g>vA0?-rI~MzB7zG+?B^!s` zmPh#oV{9cySsrB9!tDhfG*B9@ogu@&z2sU41R4_5^Cxnxar$#i^?Gej)uShHt+Tqx znA2bid;wGaQ2$?HQAArYH^6#OgzGRhAuPdMgQ=dkR(8-xubiyLz7m#$22ajj|FI!| zJ@nw_3^z;B?Sr0%mc^?7c`z4xBbSI#u#Ob6vqt#}r0%0L;A zuKaEWO?wNu_!1U?GoKemKA-E-=qUczbFDMy%3Oql=4A!q$bTVlrCdXdMrkb=RC>y# z+Koy|;Vt9O*C0J1y%k(56RThgsFW$eDE~7$o48OQ8!X8or z0+up4Erfb-4#9rd2j9Xj*a^EqC9@avJ5Uwv!7PnT4YpvMOw3`nE(5UUNA#lON;O-w>nZSGe%0GjSp)pD;zI)6l#lsx@{c?b@I;{F+PC+ODW0#YFIC}rnb=2{XVHzzW=>skTJ zbRv9){V6EYC-5gYkw3=%2o!IWB7QScDLD~3DSp?r68NV6oA&3py#y_|R7&GOW8iog z2^u)5I=0;?s7R$)1fl9qMd#FC9pvRf4}m5Im6EC}JG$yfRgl#JJsesVN<%5o^P{?j zt_N220IQz+bE;R>>f_q0|G^gri`GI)r3ZUlaO^T2^zfi^{2r!G74<-&9wL;x+DQC2 z>`sQ1U_~T7N2Vug6^=5JG>VHPphP%#cD$0To0pXx0ne{}o60J-r zJg2ywYdz`wTBiDceeo|3id>#}9NHg{9*tH4B-75qX{@>~334w2DyQ%B(2iqS1UGcpR_@g zKj}3?rwKgZT7%kYOwF=dWNDVwOj^1Ke_kPMjADOMtu@CGOzlD&BI|6+24lXter;ri zJ@bS_twl|<^Ds=ML+6fShp8JHk`2c`5hlQR7y#NHjl&!ZW8h;L1=5XH z?;Q+!(s2+B0m*t&oI`C{5A4IRfBJ@-^ge-+|B@-J5g=XZIDRA_4T@ZGDRP-nvV0DT z{4-F13P5(p%`w#mbQU%hw=ZA{NakG2)G3O#L~84^VHRlhrqh&?pq1TD+-D+ZHP_B> zk&;$n^D))qWOq7+8lW2e0_2+Vb=?wEI%=3-B3}gRp?fH)uP~RuV*7d_<{~rXg(oD< z3arb4BnGU+y!bbN_~pqTv+jkbSB0Ry9ozT?0X63Yv`ARLd?v!z&uq!-3k|G1o`H%w zoBAYEmC4Jdu6Mhd6)TVuDV?X!wQ5I zAo9DWHVV9TaukN!JHc$LL?}ronEREyL6K=Eu#UiAheFMlBuLyYh#H7YO4q+sFx~WM%x8LL)gE(~?G)iD0hlJRI6W_ z^C}~JvK-rO_I%{6%1cd?Rq+P%#?agtA-7Rik#0TqTdSqLH;i(-hLUMz`!CZRg+iB5 z;L)$>jA!yS%ib*G?Pft2LtTti8GG_GCTADid@2A2pcrln?O74MD6(qC9!Q!Od> zGgY`@$To>J18QX={`@ekLHOMYok`*wJ?R zVp=tCP@#b+DB(@6)xX`Z-k=Z^3R^*p#w8^#r;ARSoaj>Fr?}(~BY2hqrfM~^{+DTA zjrx3HW>xc6EmU!uRbaoCE}boPj|pp0w^LaMmlOoFrbFnfZS{|x@~0uc%4VZUTiqKR z=`#NA7abXRvVYNW8SMt-OofX8G0>}kIK4g z^1u;xNa6HRQwoJbJ5W$Ak_6ugD>S`+5r07bT%_R$RZ--R^I4xsU0NEySHH_H^BG=U zOU+j`DdRonjEr3-NiE9j1pgUVNoTpX;)lESSK+IOm8o}U*U3~mPUO@MyXH*SYS|a9 zs=Hk(59%V|n3+W2yft@uEpPjfw>BKV;yIJIwl_HR<^n6%iL&l|zueJ$ZApYeieUZp zrD;{$8y;HYODmbDPFL%2C3((I&`=km{F;7g*3_ni->vb9xl-FZEVSWbt8a|*OwMtp z_?a^Vq1H)qTP-%xb*S*pi_PIW-XM41#pZe)Z#&mqQ@t*^xM^}X^ah*Zb-ihLY2qA- zHk+8bl;I?EtFE`IJH;|ntRDWWFE^v>;qQ#OSC3vj*_5bH=E|?M>SfAS&(v2NTi&oU zNAIt@()6nDjdoo&59@m)Lc>;D#hD;1Fsfpu+JoJ$0%3(!2mwV`o3ahO(IFdcjdlY% zl^pk~V@ZM{17U^Pew%X*NY`)XNdwa5PjQ6CpB4@2xSiKp!(sPt$E{g8>&70xxBOv| ztoGNLFB*C`gv48KX*?O0;7F;YWfGnH}MX4tuo!4l7{_eOjB=r*H!bNDTT1mWZaBGgJ#|iu1#ilGhB9> zmR-H6OsVGHw61-o=0tBA)4#d5YG`6^q$Hs^ebx5Pq;jYJYUnSha1}t>?dD>0?*_|f zgxS}En(&7bXr8q2wskkyWtz40W^k9-ZK7LJ5tVnF!!4=Ey1UKwmL#{;ZWG#yHqvXi zRTT$LjQ35C7_@^J>n#}C zic??Zc0#;#*BA6&e8Qg=e~a$g&8dyBJ){%yI$<*+>a! zdM>)Lc+*UY#)kH@cPY>kR%_t0aoRcO&Pnt-Q zlcs^ppp#}vPnt;ZX>%IWwKs+|r*&D)E7;xnj5#vF8)TaG_6~QqJZmoZ_EvF?Hu?H6 zmws^0D$wyk)4#2ID%~NwG8n6?*e;vzX5BaCLA;K*Pz9=ly5~%_zO>9{=S+vbMBCw< znXT*I=gcOq3q|2m)psIa^zBi#uPJ->6gnOkwU@z7;jTfWBD(ZI-JZ=xo8#z({I>`* z_9uh~=dJnhS)xoEQv~q0Df9$=SIp(@G zcl4w`Dei$g11|<9OZhCed?v?S8R-4S#h^WBFm3diNfu2@jC<44kGCq%p2^9kZPDaa zFf4+xH1MX$Foa<L%IOO=@yl8Jgg(wV(@`GV4UjNfXGFrZm-d+PkLD zr`{@|*=&s^EfUuKq;#Gc{$%sFmtMg< z++e&nRF1lcTR5QFBQtS4b7hN1oI(=dt>tYO&pkGeB2#(`h7}1IYFaMvrZ%U?duv2i zd~C0YC$}EBd(QkJZdY+68o}yd2Fic&mM!;(SBsDT0#@tl@YuBYjC}TeYzBTt1rH@A zRYCXZKP4GDx{68ax`1CzRUuE!-54|rJT))y5&FSXPEV0{Tv8|B*;H356Q;dKY53IS z|J-}n-S+7;hHH0^rzY`fZ?K7&@Sm;l)dX)^cb@Ae-9&n@fBi9w7mnYVNFBYqso4!F zrr0EJEqijXRxoDQWM+o$cTKq|3{2O}-YHBnasP^`_=Pvr6|(%f)%gy%lAW%;{Q6)1 zLh!fUZ%ouwmfwd_NJ);a2PEI}-rekM<(%>U3ND#&nVKv5NV_(V&-uOj*A$)?=I~T9 zndF7JK9%xI%eybs{4?~cyrx%Rh!mlR&vgK5b`o{ z$$Z1yE_+)Q@W`Y$O#PN(J1qfzHQp8Rox#=Lx!cF-9N;pKr+a6(v%Ad18I0Hu&DS$n zHf=V|XEFf#8%D4@QyjBuCbdi$JAIz4r<0RFQnNL zP1S4TrEweNhf z`CHp1KX)M(4UJXUV1}XKI%Z~Jgx*9?wSJ*XgJ%0Lf7>ipFQLaAArX;TJyw3hhAj0w zY2b+yt5FOW4FT7>Hf%YrSf`n>F7-Sn-5lz_3mPitKi|*y*MXtld$tBEmf@!698xjM zbe8dz`E(A)Dyh9@;u3Grw1uqDZ_n|j34O;p7yoXbS+jsyuGn1f5qAxrNjQ&YX9>gY zcEJ}?9?xT4k%NaiG^-5$HR;-yUq+@Q5d|3-s4#!~3H14=`ihTDv-wm?1lozw-aGNV z38m^?Pwdw&z^Lg&>9!hExaqN&)rK9VV>(UpUt-7kZD#bB980~C^M3{rWJg!U_Uc@R zJ3-m%p%?fMJIdwaYjFo3S?U`|y6xqa9k!EhCm>FLwl0e8L~o?PpR?FM?@rtsC7pc< z_2=Z;iP5^wZ%!{^Y_d9Q=(`8-l7S}AS9H=!f#$=nm@h2fd42xji%Dda9CM^J^Ut$6 zD#&iKa!PagE0)xZ3i+2ZIIJ+;FL+a$HD7zRV5$Ot@FzYUU39md9)v5x}fB z6m5HY3N$O0degZZE;a`h#CdaVsW&3>cYLc?+`lq7#+7<+Chd%Mw#Y1z%H^M>a$S8t zd)vnRA+g2>QaQ59rz6`8sgHMn4^EK z)@*0+p>9i@#JowMqSOXm|2yoX34Oo!SD$}q zY>bO0n+)IGk8`p>`I>QEtYkIa2lUBgn&3C&b2Kzt4p01W>AB0tw!~^IH51lT1A9== zbTn<%)Ix6p{Rj+PtZqT(#RJ^g~uBdYoLSUT2-2(VYMA$`!$DkaG$Q_mKN zH$wBj4!}uM+Ah+e!yoWv*;xVE@Oy zDwqSBkG8RRv(~i1X8ks1*@Hx=&1>pYr83Q4k!rWHLv9!|&l%TtHr;HmHg9*%)B?@0 z9p2iZ&GJ~E!q~9%^1vj8S3R;dj(93-QIQ~mBL;Aed(5Sorb2{(3872 z&gsc>b7?nKmN3G+*zK(n85&_J4odi{M7rvmHE!t zy<{cBM6+feJ>w$!N=~LGX}ZjspFKU1>b3yO!q*qWe~C4~d~@I2fU*zXNA$@Y8GTlQe?>V34I zMesrHeJhj6>egSfBxC9eb|#7Vq>0*3n+zytA`fuRouHgmu9<%wyL-W+!TnKG#Znpz z&CvrCTTnT3`v5u1Q_gsQ^d1iV8xJa-iGMDhza?#);dlrSi`2n5!|DAWnXCP0V5wr# zALK-lo%EUGbT_$sR4i10zy zL5ROeWT|NNm`cmTYV=z-B!fRo{=%m?&L8sTigyZ)r1&)xi*NvR!{k0p%nwcZ!^{JJ zn<)J9R7jDnv~h*{)DK|ulUivy4HEl zxn96U!$s{|sUqur-0?9kns;el_f6WP-tq~ap`aqDRo!$sO80J2-74`<*0lX8SJCR< z*cqq9J5@LHkJ1hnnK@Z~!S4Pw&0Rd$BeuzK%$xl6@*p;eAH7B9ac8b=b{r$md1{-4 z$2kcpQrpxz?j3E_U-^>GDq~X}S3pM6mh|TI30u;aW2&U@_&2~s>smv0(gw!|rc9Z9 zk=v!4TePEqDs@e>pBYhanB_lHSWisLUpOx~|Fbub+f&~p{KcEWb=c%Z_79D!w&Fj8 zj&ED&=Byz6SAzb|ME%P2b3R}xhs=VLoXgNh{I+1%_h$D+`cfUvtyGn*Ry1kZI{j&Tgi{|mX70)3 zRTKXdP3*C$e~QNRw@Gq|{4F}=E$B|s#GF3GxNEIW!b37Nv8wXxnC3$pPt5cOX`qZW zfQ&YcIYkM{g@V>=qe9|6JNRkFrYMAm`4?UG)V%aGXPEz(lv0`XC%oxQ^D{K>!cEK< zXE>)QLok{@|6CDg>gpk{I4dF^Ev^FUG%+vG2Y=yx60)a_27nvr9}Mo!VNB zw#hf+dmj(-B_|{rp7eURHG?lRE<0^us9AlP7ErI9xq6v#y>@$R!d|j$!kSgnr?XY` zw>0LG${YUbtv% zx;*;Kreg!Pp7IB)`_nOm!4Ezb>|X@})|p%Kvcqh>hGF-BBGXCV`;D2w3f7VFUDuw!(QjXv#WKD#r(_HyJBf%>0&1SPF=sf$7sdj z?^imI(y$eJp@B7h?Mi>D*Q^ffxS{5(lX`S9Ev_@LN1KnYvkYL=+jpH||Al#eohonK zl?UN<hdkMkr54)M0H@)GJ zwYympQpurL8}+@sk)z(B^fLZ&d&asAQl;4LPO}Qmt?Ew^Yd0R9>t?FmBt-*EzFfXw z6Md6ny=Z3LB$nFU%n_WN;N7UEyM^jCQ~WjqN{w5raQM(=7i8{aJ^ZRS3}?AzNUy-W7Sn4EVx0k^BloWDznOqp7Oa%TA-cn_b+`<&YM{p7SOpC{uAN4ae6nu+*CTTohtm#Cz+^VkNeqeT;q`^Poe18Lt1O&En~{G|*LI2>;cL_J?6^Crc5-NC%^ft@jDJY$E;QI0 zd0G~GRiVU*^ST9WSCEzK$SSr%wwohEV={Q(i&bcii#FQdbjp<^I$-#vSQjTwJ1yLt zC__oO=9|VUkbjoX|F2y9`FDc-SGoMVe*XW?{?dL&sIRO0U%|PXM45wsQgV-?tU087 zuR7_MG$_uBor%x?ThBLEX`pu73ps4xgj`uZRo3V4uhDU_9*d#7KQUFG&`I8Um(s6r z)eL*$&7H+l-|9v0>WJY1?S`2nPhvZPKLx2gEKIl&o9-#c4TH>t#J=E=F~h7WDD}D4 zMP~PG9Z6d3P2+5H=V@$fH5s0HtLb@|XDqtE#goCn>S3K?UD6FV z3IAd(kqZq4o_E*MGmBFf=!k}W$X0N;DUF7^RkTYG|69htLgEJRxeo5JHw8DFbd5! z!isrB-3c8Y`*MC88}mQ(7?ujWq$gM{#5LQreaQ;bmax;F>K2 zz1(9R#`r^WhRB?w%~KcSZsE};j~ml2%|iQWPP(18K3nRP<7c&AL3!9G7E?)`TpD$D zWeE=-uCok#)Ldy+x_!Z+$@#y7n)k9@dXeO1uFKJ}3ij~fvJ^wMjj;~iCZ0UdctY9- zTGQGg`70$jt*irsV>P|ex9HuJY>Kgo3X_)osqCJw? zkvM~o-9k*H-gINURK1=3SM{i+Ghf@=yQloO z2WW?T!<0`#_p=k}%wpE$6j@}ZwIcYnM2*nOt!fq_Hv5_Ds<@;e9llwI!WWL}`f;pF zi<#y{5~_VR-+L$Ex6NF=W}0fr=xlbR&1RYT$?5ZdGpmKJVkM!*SN)s08`AtzN2>w* z(T_f}%w5#n|MG1o*(~u<(?6S^l2PQV%#CEkecq%^P9L{C1UVC?>69GJf5sizWsWt{ z=l;6&wLkkVTu8L``1n5)^skDtitfMEZ`fSZBL(?z^5YDz+fw+_L{^$-ZPFfvA7~dD zovRV)(D5eCt+DNr{7~C0!|HEPht`c5PIJ1>GYJEIRYF#xp=D86i;>x%4}ZGBuTe;k zeQYtk11XPV=Bq&84W9a*l#)VvWR_#N6V5l^r}R~Er)VHzF{4cG5Hq@HD>U#HHYKeAL ztiVOjBUT#O?6bagKG39QKNzyr3`t9wR#<2bVumcVCcm~5qOU#tVpko%o`2bFDFlW5 zyvSPdm3Yq_&lPxZyI;e9H|4x}MF>0~ADoVwV+Vl|>RxQAulaGs>0B3hp{UjSS^p`JVYVK$7RkIzcxC<>cpJ!yXWXE7mXY_U8+3F86`Kr3xd~Mcb_N6pmWnwJt z`n47HFjwUGtYs@tCu;k+vESF`VkTb|*9Ma}Go`W%MeQ@5`1bc}v2jHMzhZvf1Np_Y zM8S2%EXd|dl|G#Ro4L#y?z+zyaeYy`UD|uMHKK%gp_3zLarMUS>*Ur?F;U zZgqp(t4k~h+*mh0c{A&>u%_mrhr?)uu3urbji7mh zW_-4^4i9JeGYog;+iA z#9C~nxt;aD#%f3Nztd&9Wb>s7nYqe3gV;LYX3diyzAP1+e1Fjf+ocxdRG^2_vkLOH zC>;Y!t~FM-ulQYwRMmP_tM3oSe|&0{S!8h(bn`HC;Ep--P8_{$XP4>otp(w~3rJ?i zXD74o_G?uw8^d=-Z?`)S^^t3hNt}b`X+884#KC*x98`pNowfY=?6^{c`$RH){Ft$!3fRkT0X+Bf(*WUp{}$B1~xc*I|a z6CWR1{bKll-wU1PTHCZiU4Jciv3>Y^|NajYoQCJ~rH?9e&3a~k-`I68_SC4kq$bx2 z=1QO89h0`Hbfz)aT0SlA+<08O3S~mO^&QYrY3-IXe%dS-Hb=L=V?AkHWadZLtF4{j z!M%^%hm4KNQ@2X!+JC!u>DaqZ+iv_P`s{nV9#6c=y?&HQmfx4&HOdsgh^n5;Y5>zt zPsr49_LD4%E^oK?0Z~;?463lM`S!QC|0BA$x#w-&rQ^LK+t&P;V||?eaPQcsS9g+o z;qk`i^Wv9`8aSQ=BqzU3vZfocZg9<~PsyLAsTzGwy`S(*l?(rN|Mz|MRvo*Ab?VLI z5^GPN$#%jub#G;>^L}|^W74(9Lx-N_S_9FfGvCY%ojoS-cdk{wcb3OX-m`0yYtR2e zkO;x=wGRBy=}i3ohdWv&GU#!+po}+TmYwEW9%@cC-HxPfT=)*xn&L0teYQ2%hClkf z;9BeMd!u)^+YwrPZ#;byke~NX%(4Q$rsFg4pO5q9&Bx!o8fU`8`m`Tdx=Y{AZQHiV z*SdF)Ufs-tTE5WWe~8-S!SB{SZvivu(|B1-m8f{}MB?%xUbKB@T0?bG z&>CM2C*O)W4_;?8ybjQXi1%DZ#i}cxuPKN!%qNHZypqzFs%-kHg{6M{s5@-|??*e3 z?l@HGGw-qm=!uWV$2)yvp)JriX!}4#V9v#N2LkO{956j+_NB`Cp+)vYrxM?Z`2J`& z)N?0lBmfcwcHm@KadUttaYHc+Lm+^suONNmGRrC z4$N`BO>{~8u!=noTKX%h2HlG4v<*&Ymd(soHI979rYp^#DcjthpU|#K|2ldQn%2kW zQ~a<^|ALD@aj~sd3aVlDI2^5*({+hGpa!4<)QqDY>oSJF>< zlW1mPacNn>%o$}<^9pL73j{h7e+R0fXHP0D))~&itCQj>6J>2Zr({yu3^mf|Xk(}D z6+?+u6`G2CG`=JL=0ogZ^KJ?Ry5cV@^t(7Pv$!ySW@$;FqRtj?`iz{iVsa}i_Qz=8 z^p|aQhN3FQ#2G~LX*QPdTs%vwdqFJ3gd$Xf?okx4^qqUvKRowTnEo3gOqfRz>b-sVT+!VPI0q0ID1a{Q9YFq~b|~d|$vI zqH&_vcIjHt;j=)X2ggh+nOvAp?4_UERlgIep6vC7J=bhhWta><2u&nw={b1y%t=lg zzqIKG;MGADU)lIxc;(j$RR@h}@Y7Yy*-ZhI@z1Dw?41;wL22>8<5k-4;HvEBs2Zc~ zH`eFp<>w?%o*3BkwaxfFxCW?yHJ_eW`k_moQ!=wSFF!kwQ&Lu%H=`u*;@8&YZ)y+6vr_S4E%2tKyY-l{cq=!Jd~> zvdqQbh^pc}ez57|qeX{wuJ~iStz}t3>Fk*~lLPt1d8%CCfgf$EDpa|ZWspP+0^1W=PyEawrM3fC6mbSF}zyg7F0vH<`;iRw4QSvfkOcW z(fDqi&pzNcTbw=U!O)*k^~z^xC-gm3owE7YK;UrnBUF`URV|)9v$Sv$t4?-ld0-RO z68~&_^s;WpSKPSEW>YdFyM$RA7;}~z&~9KpMsf}GRy(cUwA=Q@bhIaYEXv+x&bGho zX|LF02Xq0dT4lKS<52mg>qJ?BKYgRe9vZHA`g=Pma*tE{1_H&|lk>_6|GL*6GpV?+ zq-0h}U>0QwlgG|KY|Cy()dQD%p5LOS*)y{zvNBI9DdE~s7&tM;^PB3}pyzL=?nOJ3 zo_N3Md*NxaHgifYom!|9Z#W?O@}b99Tz`P)H)(6)wQ~O!XY-jF_Wbibi>fY9IRAx< ze~a^}OJ2sSq@OY>u@DyoV~`v#2t9!1+mq zGYX5jnp}tHDl_L&RGoAQsNiC>iEvi@1>y1cZ+MFPf!iXm(aG_PAqj1 zlV;>(7t=5ew6q3SeMiq9)32dw`8VM@;rpHJ3Far*8Vy8Mu%;ngh*!;N=;YGusU=hJ z>dB@J+8KBi=n3-a$)$BpTvyMZ4DWaG0t4`i(Y|QiAzt7Z^e*&B^m@3OumZ0pUrm8D zx*upN7(+%&(Rqh?{!&nf*OE}PJ^Jb4hgTGLw>_4NDp_91@dGEaiMX$aZP0V!np`I* z+VaN!Xh&YRUS1#(zPqR2V{<-3HFuwPdM~PCU4!piRxm5O zBtHr?E& z(j`JOF|V*VXL4Ri;PU~t1L{!?z%@>vLY4o6=z*+6Y%>aq$~g3PfQItbs0x%@S~|0Q zb|8=(jZgfk;$K5-KR4~A*o#fdDJco$T*@_}g#GqVd-NBmj((N&%B^ykJ^iHONy*0z z2n5cDt9xb?PWG40vrn}7mb(1e^5kUamj^D%u+=^nrTAyhnK&?8)eD>g(12@=s`+y{ zQ1xrt*f(u@deV++{-=lArRzRa1F~scTobMD89Di)Q8rb<%={UJQv-oN@SREZJ*whA zI@+FPBVK2jnq4+k&3sL!9sZZ2I!jSBt5^4mrVZ?EoJ*CQhpMa-^XROCsU@RNwYkPq zHZ{^;eeL8g&0+6V90)Wm@#ZwU8kOW1PE?)y;Z^o0PPb=k;5bbN_CbX+F3k!2a)v*N zSpEp;grA}+KyG$P;jDr{;Fz;)am(Rqw5g~HuouoCm~)ZiXSw6v;RKpAt6c%_N7XD( zpY57~E3*pr2wwT!OnfITe@z#|D*zg0L(jF-{X0r%#aLUB%d8C)IX~8=%XT^%J&^QsrjEBw{35EF>2jt!#Pjj(6rWd` zTsAWhc;2sN%ojc=4UnZGjffw3?4y>f=4dwt!!wn#`Na zY(+kB`Yfs|`zOS!zyr(eh3=MFUWLDPV9v}aWGElvBL0}=1$vS2H8cgSK{e>gQBB^9 zQ4P}GSJ)c1LKVO5a_c`tmF{_`_o2E3597EV=(qo}Epgl|*QZxh*plT>=JH2P*SH#` z&#^7B8m|_43{}m4sI*O(b(O8z2vjZjC0xp5g(-Oq-b<(C`A-QRyE^(t@53wJchN_n z8Umx{+95F*RYNABD)(!|`yFtN&HfuyJ^375>0Z3n9-lhTw!>kl8n_m&p?2AIR%fD0 ze=*7kshD&2^>!^80Z>mh_4HjFs6E_ev-12K_v#yL!J?=#)MTVt0#CXEw7JRF|F;`$ zfpc!QtHTIX9dQ(@29H6L(633~LzC?p0=)s>aiB7OeZEcj6sj?P$8DAyylOlLRf}Y! z+FZrmZVNtX5|4@~(nAzTE!7BDO*0nQj{G;O3g+Y&PRpB-H!*^5t;yE(l#+)3?eRZR@y)2Zc0H=&{<_m1cRcAU zRKxEac!>mBFsIyY51fE1!{1Q#(w%Ut;U`IjUk0SZZ^fS~%0+#6E&o zF0qf;v;K+K*{A3sZ1$wwRd9bwFSh*jM{UQwjH(~fQFZ8JsG8|@&Z7a-^D%!BtC({k zK<$}{s+|U-D*oSOs1v{PxIMv>sFvv+?nGRe{HK>!(Ed8nBvgyqvRb?N-Hd9;&qCD? zGqVeFw6$v92arCjIdziDpy|5Mbe(9rZln^gg6z1**64MgD!E3tEy-&IX&GM5y`}ko2!&5gfbt`RGtXTQf*U2BXe`@XEZ*LEdCZbI= zWk$rC6wP~oSooeB1Az=!Y&0c1;vE{@^8T>k>YKR8MDyQC54XKJ5Ex2qAlf)P64UOM z=+^w9;o-Lg{2Rg8Xk$ghD~tB|a9Hpa*oo2P>~t?Sy5z%Q;ahJFa7)8|w5iSW(n3ux znlddC?lRwI8jKd@M#5upXOS`{+L#>)J%l?RXS`Qp`bY1(AQb)#l4j!XzhoQU^;GablJ7(;aP-E^HbG+lIEFc z-;G1VF;%v7)O$iCd@fFBJHRi~?YLv2`3uv-ZxYgZ{k9BtT}aFMJd2R+#+0if;ahOW zlB#Vqr8*M6;7*>NV8`; zH_|tSLjdK^*=9#V>zbndru^!DFC2QHsR7g*g}5|Q+ad5UZlH!`Xrtr%8oc9!#MzV_ zHySsgf1ZU?>Kd& z9V;mhHRq&~xUWC&a^M_w(8_v(Sp<^7=|MqZn%jRL>D<8J!re&%l!PPjX zQ*L_r4?;@Kkf29STWq`5pQzy*aifT%+ZRS+-d`M@wsmN@*Akl%Gme$#V(0wo#;jTr z?YnJg_*bAE*BlofvNRBwNG`Mw3)j6kwK<1ZMZ#a>Y=3De^>`!@7*1Skzy6ouRR55l zaw$%2NBPO+JDmC>CR$5N^?KCS!4A(0af)M_vy{!p={P(8wz!m(B{$;rist<|EL6J8 zrZBa=f_Axl0-{pcR`?NjA}-DpC9}jm)?%#>Ux8EWd0Oyd-h3>&^{1i1Hjgtr{8cEE zkgZEVN)v>ivMGJ7ZB)F6Rq?Q|9$+z?zFQ+uG7 z7KiH>O=jH-K4m*5ti}(Wf>WiNuOXr9Au3KYiFxa(=+@tchGU;@9zpcX5S;B__2@k~ zjUc<^?!cXev-5rA@}^Nzv@|V*8Q>@6dKj*AE+$&^L?rkt?il}i(S3!@{9tvvH!hm@ z$FP|DS45ZoF*Ih^is;rqh6eksWGY0L(FRu#I))s%YE4TEVFvo9@!ClEGhBZhV`5<> zc<3q?KEK%}6S8Gbp^fjx=@{CWdcB9!F@8^n!>jH5i!pRwS~Ty^VO+zP{5dTAED^dc zFccXOzpak;-90pT=`$J-bWCtDq2r^=K1>gPK}h|{W$c=?(6jc$vC-Pqk?`3#H4{-Z z;r-6h77U7CaD#{=;<%>ni3D%Q zofJ);kRJYskOnTj&2rM=g{IcmlsO5fII21~;$0E#vv*kdQJ5AS%ETh~DNais1C?>z z;YFL?A77zUa4NmA%MZJcJ0Thb{-PhV_r>V6X+y))U*h=%(65$vi0R{b!-6N*sd@6( zr3bGgG+29~;2J^${H6a7LMp=n(V|Lf_Ht7zsm!%ForC3poyQ+IuI6744!zRU7;2h4 z+z1lcm0=lfD2`Q=X5NNVZy%sdQMmW3wt}_`F2dOcseLvQtip}(hvR32Yz{iwR+7i*v)e(G!3FtG+zut4?=W3_KE3n4i_)T zD2P9OLTA2i$4v7P;cFq9L#_NpaWzi!HBPM++KoG{DK~!)ap78fMwYe3ENeKWrVq2( zimWwDL*CF(uXVP9&F2Wsgs2SrdUplHO_LRonBD8l(y%u)Jn{`&7G@vKISZ${#F>-} zI9HSNm-1F`x;THiJ`<;M*lw7QQv)-bDAmR{&9pY;o$!_&(=7g)17=Gbk3Bfh_L2Hx z1FpZn420gc^DL-}g+}1i3(XbsDovku9R3OssYG;$YJq6~j=c~uIDd?UufS;zb%>@s zofg7mU^+!p9*l&4#@Qy z*ZyuUcrorQe|SAkNNvr$X1wpfsV(eoq%h;(#wmBU zF6?}QAKQhM1|@DNPW?)SSX>^#*t6?}2x-7G#%DxA zH+*hyo0{iL@N>v04N))Idt*ctw}>)j8jf*9BHw;aJJcXrQ3*8 z)frOE^R8dJy^yYgp|Lm(51Vg~`@(UGjxM`CJ^Tux6NvKbvx#@d;YsZ9tQyeq*+i2ejL&LuVkGC08;$t>hXIIOKIF+BN!r;3H zr&HVQ^9G#CNJ_RSq3>+gxQEhYG-m154?8Nx02I}z_Jv*bvsd*fzXf>5+*T_onY&8F{B-V0uw*>aRu;hk;r zdUG9re+!*%@_T#f!DF}5IyP9gFZedWOiL5CQ9nNzI+LJg&%RlFEyNxDHo*~QdtYyG z+z-ug7QvHjKC20`cbJEVe4)!eK%>mtFYas7042!2gy zM0DB8^x%;{aqj4{73tw!gw%5WHiHq~Cz%>e`r#lFfS5bj!kPSL3q28;r!tl?7mBFN~49x5lV%(_xI8ZaVO#Y&02UPPRCHi36W5{ zKW&Bgje*gSv!clb=|My24FAfoNg+Q6ZJ1Z>wiAZS-?NeMZ@7Ho*t`7{2`~K1u3r8^ z>xE692z4}j0)dN7a)ciGo!|&k+Zl1f-z`#yZ^S8%dsP;a_i!iR*h(`kTko}NBykr+ zLPK!A?rs0@{`El9k~QK#M4?$OF8^ICfW6>ETU;)cgLnF??7n z&u<}r0~$N7l^2~}IV9$mR;KSz)}FP*s*UJp3bPZZBmIJU{mqu4jNH7C=dNxnNa5AE z^X*AlxjWKqw)DC_6yvmx@4E)9gQy+Z@3L8F*V@L%`S-l1;_R^$KXfln!_OaL=DtEY z3v!9h_~!F*amKhPH9pQixv3qJbfq{=UYGK}xI>S!1K7qD;MD94b;jjuIF+B;Fb(2*dv;T8irRRQ za2ZxZ*negcd>-fDy2t$5+w>j7Vl}2ui}=_@eZ1(=FAfQR15M#5#uFQ&BTb*NjK89z znV2T|ATK?p=4i8YEJyzd+IQ--W15;()1?@vh0k78mg1Bn9lnZ(d^jz$_OZi|DP2j%96A=4Eq^&Hn$M!?{8RMB*ZhP?DX&sLUyFE8wnqEtX+?3 zpR0J7X7bKwZe9yKh7$OXWr9!PPKoAEOAqfMq>?drsKe;~c0}Wf*`eap>|s3w4S$VO z-C2iuUezzf4qSV$IT@!qu;_C?e|L&mI)T>u3OdB6%KNYZwpgqH49U}Rx}I^-;89&8 zj;+9i^ialewmi-2f3Q--uVx(~%{O~D+-{&IPkHBd<*tPy&IF;RBwPIGJnrWA?$J`D*!{lGWPB;B{PHThL?hAgfFW5cO zoM1Y^Q*7Gh1lbBJhduj(Bh#AcP5XlD_XQ6dyYYL?Ym+cGgAjrJ0O;GK?{-54jh_g$PZkvC^4fNyG zlRbynl>Vk6JP)Vq5F0Hn3?Jfj4WL)nM7+Lc%Txy6#G&?ZI<6oRx&x;vYP+~cc{l{n z;uthVcXLS^W~2T4#qdoyJ3d+Lf}i5J`DYPqf1(|m{#!(Eg4vSi4U4_)MApLWA;EWu z930JGo*wR);RPaO%{sCw5}c0X?Z~?H@Df6HLQ=7FNZ@W02KD`_XwHj{Yn(wf@EVE^XH!SAO;ihjsqiM(p_Hxl>AEk$HC8SwI zfmpoW!Kv-I_7_G%tw&ndyhRR=g4hwSw!ICfjTWPrV_(LpzwB)I6Q>@EH7SEB`Y4-{ z3;9ivP##X_Y%X5-VTe-OJM{LW?Xv7&9)go`JT~Wkd^sUCfV=FLhvNVz`is-CnRdmo zH?L9LNhDFJ?yg#2OEbb}sq@2RG5Dc$-lG5*EZq_p!Q z-bAycl)hPZn%Sz@&8OMp*y`p+g8fgYSjsPa38Aw%r9TdX&*JREt6hY~!4Fj1#yoI_ znRY2pRO8QNuL0fH#+<2VzX^SSqj+J5UR7aL`%0uCrW)E+@3Fx%GN~ zIYb5LeHD|ieU@zze-?$$#VNJ_7&v@0PHpa)qD#06zU7iKCqGXMo$aQVzdxUV(?h7P z{yo*lI6JC!hR)~MKH*M?XRV`gC-~2eDha7+{X4nvI-IUH{#Gu$8#f#mUYZ;l%TrX9Ybr2B(U(_n*&Ixj1{xSdUZVQ=u7Yq4RA=+o+3hit;ao;VPUR)4GJd zh0`czqA|idT+q~KDF@MKM^CVGoyAA?TC566D>IAU#c4UFx35kMVbpB?qwjF?g?3oD z<0`P~omf+w%e=vzucQkay)^G4Gwo_x=8cQYQZ#tX#Z8;tI|)tpH@k;j;&#g3m1fDm z>B;W_XOn|}>GTGfK68O3+4joLYSWLhevZu|jjdO|iJt#Q6BOtwN`TYaV8=&rC3dLE zKi^9a?I5U}_f476liV!#Z^CZCX#)9wUlV>ErwxPM^6$YZS4uUF8-KIqTAtfoX8O#d zaLXp!sm9$ZZGK3O7dVxaIGD+Jao1$Kn4d?ob(Z3C+Jegm-giJO|t|PO_Q*2w? zSH`#FM%&EDdMnP|@7xp#j-9GCNmKeZLMNJKW4Wk~&9$XwBJ!TU# z+lU*(0dz7qK%VUAe${)>@RW0oBZiiHlfrD92ZUAlODW;&pi~{GIq7LTCG-GcRolRTJXzAFpJ05mGDIvYb(F@5b2xe3=%9IoH3S{!PeT z{8)Mi%qEea;mw2!{1kr?x}I!eOk*LfahVsG=BN0X&{#jksLPvf#8@(dBd*X))|1T# z3E8ymuWVukg#4p|uQrDc`4^4m=X3?3T+U@X`gh!E8rj}SChtxr+FY{)39hbSsqxcq zBcyAkt>Wl8wz=a>$}&od^B)$*teRuC-o>@@uS(mm%`1I4?<#xKX!nqHI1M5kPhVoM zw$A1~5~tqb&-7RpufS=svwOv7n^P9CyzarNMOk=SG1dQV9m`^dby`8`$4C7rE%anb z7jGcp>9}_Od&TqS+WE4ts1HLlAp8X(_zmt%e{Kx8#y%}+W7jU+c>e_IioH0$E5a9F z+k7-DPCZWBJF2!Y5;|j^?LL2BY%VGD!f_Bgh62|$uZ-k3PcEAO?%)ss6~c(=K;EJ*bN$d8lg`U@|(&Z@|$sbl3;J`j=#~KnN^Y2xeTX< z;|B4|v=ByTw>{JCCVR>E8z3|pryGBFAGawSceBS|!|DcYFCjY|^KQ|A6MK_Tu^$?8 zD?`r@)etIID0J9-TZVl%h2KK_p&A@@n{FNbVNS^Zv&7(LLU!n9Mw^EDJ%pzCgSGqZ zwkcvwL$vPu(<5|d zl^db@TR8mzKxh%f&(tTETo;Z5*gtGYU1&>Yw<`a_X`blbI@NygvyRy@Rs|cOs z|LtAdM{MyuQ=3mEo1FjhW)4oR!o3`SrS-}qX6dtx0q;?Fgzm(Gm*CFupCNooXgsO? zGlvE&b0fa#{xSS7i0xrL19=Chk?r5lg$6%nFXQ_*uT>D;;StYG@aMR5@y8~I z)_Q>paP9PW4l(c5n!Ybl_0%VucN=^8Lq(h>HItJG|2a;%*?YA3r>vvnxOk4l>Aa-m z8DfQ5Qb$j{2UM}`->n?u&nILKf4P z+sn5d&QIXd?FNF-2of_2*G0TzO`lguJadKJNAUddk4Vgt6=vzH?|cib0RLk|GuMF!xdWv-aVO`c?eRSwKf-aT zj!SZ0Dt{!Zg7$U(=vdCLH2wIGGVU+)-&6;tINnml2f&r#@h<+Kv<>kY#4G(tE}c|< zc!dMQTd11u6qn#s$Nx!{!D%l3f1|4487_U3nmHePhq7zsFLGRrRD~D*ikd z-%`cTckvfEo#4{_lPdj%E?yeK=frZqridvngQ+e-OI3WX{VJF6KdDYM&!v;< zxa(1!=my9CNtNy<7cW%-=4)i@Gv7r>mCh>?k>mdxRr+d|zFH$& z89(5FR0Vj@d8vGj^HOE7#QByg^eF#P`empJ{-jGM)p?$FUaEBMmOCKz%(73t&J~(j zFSz&@UG)D(+i~1mq*wXgbI1LY>b&(XzNHF%s3D;YHn;>WRTcQuajDXM;k@)f{C4N1 zO8=AdEj0|^>9|w{+Jy@J)wI~{brJqqh>$A77@hThP{qd)uMC4u4{+(F3buBBr-z}cQ4bgYztsvQ)GcmG0Iu-Bj zyi~rAOLw&M$GCW@X6*n}V{4G(QWbD8s^f=PUeOfzFRGRp|C%($1lj^vuoo}g{zPG~tB~bw#c$+&Q>JE@9gWFM| zD#xYW@K2$Nf7{z;X7CGk4n>Ns~vcm|-s@w_{*r7Gcza2@!P(>j+{isy)$GROz;(8e+dX|2wMmJDvWCD*wHxJ}tDuUq(X2Dy}W61KXo2 z?}0kXDevC{r{Oi^#-p087rXeDs)e?|@qbbsSLWi&g4AC%C&<3|7nf3Qt9?-g%5P1kc()k{+NLK zW5UI^M|I+Ov^(10#Sd^g5YD1dK{8OCaJb_wReU5|8E2v@ z;At*hOI7@taOHOvs^iXfdM>K?aq?!_H{MbHMt7paIjFMDbDEFpBULtqs2a2sRW`Gn zUWV#)mpi?}>6NICt3Z|hDpbc`>-_ZxxK-^2fId<+*lo_YR2^vGnuHIaO0vYIld1qq zo&Qg&0zFDPC4KS$IzixRoOA`ME7uFozl18|I;StAYN6L${905sd(-*1QGHr!XZ*MD zgV5hyyi~{SQq$!*WWTd<0!#S~9s)y5_sLIlZ z|ES=7Wt_?%jUSE{psG_TsunD_=_;B6|3!7poof^Ls*J92UaGNhgY*Ai)Zf+I=rWS3 zgts~0QdNMc<5KzCoo}hyjxBOrs&w}_|BuS}`;Q5f!M!d6sRq*u=l^f0&i{Wk!~eJZ zRH2nrK!f_3R(4mVfIo=pT*RxW`gk3xPfJw>Z#XVhx_40x%6iA83T|*-s^dOEb>h!Z z4Z^Ql`Sn-8CTKwQ`6pEdU%PbQxO7r2NIyCLGpaGL%f(Aou-#7gINq$ft5n8+JKc+F z5C*jhIaNu+&P$bH8|Pc9PTa}yma6;{9GA);?0kg+%CL(AEmaA-Ixdwz1XY0!ciPj% zOO?+N&P$a($?1`(DxZw13;Lsc4sHtgssmDVfEl^fZ4i&M=>jcP=ShXD9D`8hd!i0Q zGf)kQQK&vrrO$L;s&pqieyZawRq>~V+}I@Gf27Jd3)P9opvrihin*Gt5KzYzQTbQQJr8Ns!vN*SH9)AR0Vt+Rfg|6E|sr${(q|#N~pfwfGXopTn1A4 zPn~XbyrpUqHMsb%UA$D2WSjF+<@1B{QXTgTN`Wf^zqtshnq()c19mws)uum0uF5!` z|7eUH?6jL8AE{a}2~|rR<#sD*KyJ9e$hBJDlF>;uoRH_8wFpsr^629y7Jyb*RV^rxrMV0O|RG)uR<=;TOl5FKaD!?|Eep{ILOZo_?hCiXY zg6wvFFRGnlJmWZoz^-&CWoo8v8&E&WeCz<%y0FQmB}NOEbU%IhfSTdKx;GF+AG zkLtKIRFxQls_;XdAC4;h$*9t0p{m0eRE;#j`Ab^6R?Y$FBh?9VQDvO(v=~(em!kSe z6@R(o6{rd@$Ho6|R298SKLMu`&UG1FgDT@2oWIfOO{hLnrN0%`=5vwbEmbvq(D8p# zwaBBys{oIw)0WP_@`DR1+u6 z!w{XY4XX2XK=pj2qMQE9N2&yep~~QJ$Nxz+4*R zt7hCUUOPR-51a^)4o8*22$ygasuG{-_-W2(IUVct0vA64)kms)E_Cq|9dD_MpVY=( zzzO&#%0<-$1*j4fI-QBCfF;hCqWVacuFUDBs9LfdRTo@=>LbD6uA1^nLt z)$}?SaRaK1Z$$NxDuY{`Z>g*XfhxzPI&PuUI~|wm_(iDBb3dwrKA7ziJcz2qi%}(f z#QDcvd`r~{o`5TZCtbP~s4{-mrI#w*b8S|B`kME~{`bJPS^LqpYPS9Ff&KTv8Zqb6 zBpP|+QH_|E?|-qr7eC*{?|%ks z?}7jO`{DiXf%m@$c5g@bzXxvlK3FS9%lE%pM&$Ru2Ua7{82jG??|%=x|2^=7m$>(~ z|G&KlUb#9k=IQ&*VQXSeHLG5YX=lm^c^ggLnwW7WcMTxvHNfYl=rur>*8uAUzBGxi z1J(-6eI3wX>IKSQ2c)hAd}Aut0(!3nY!cXHQq}=B2rO6!_}(-K%v%Q-`37K%ng0eL z?G3;Vfo&$^O~7V>nl}O4O`|~7n}9KI0e&*oZvisj0tDX%G@7ip0Xqej3;b%lcL0mu z2IRa0*kNh~#=iqdco*=8$$l3QdKa)pV3&!153ow0>^;D4Qzwx79w4b6u*VeD1G>}$ z)&pYpdZy?5F=NeIk-6`a#548plcfB8KKsQq-kh>9( z^cmnVQ}h|2%V&V~0^LpG=YX{Wb3X?pntFlq&jG1l0D76qF95y20BjOSGAUmIHV7>E z5^$7h5SaHRVB}YTK4$(`fV8gwI|Pn484ZBV0yPbQWYZ{6)c_dtHQ-oN{WT!-Ye4WD zK#Ixw2C!3LxxjJ8`xdbH8$iytfK*c}F#cOW!X`k(WN!k5HUZWM3^MWG0agi=eFsQ4 zbppBH0g}E43^7ID1G;<R1zXGyNy+HY|fYjdrlT77rfZo3W zHVNdIlpTN#0t0je+T55`M(3weh2Ijm~Jxu0Bjbh`2&z|8U?EU0F2oQ zC^XeO0hv1i!CinNleG)5Q((D3iShmfEZzmk`4doPY6Zss2}sxtm}Rne146q2YXoMS z_`d+F1j_ybTyE+Fa{mG(?EzeAiuM4y>;bG7s4$6t1J(-6{Tone>IKUG2Bhu%Zqfg4Ol3}CZBO$^{B z(ULEn|gurFd(%x z-~m(F8qm8nV3R-%zgY^{Ah4hf;9=7sFs}_@WLv-zGruh$tu0`Oz#}H39bmISO*_Cc z(=alo@Rad702Utz$msxBZfXU_cK{^B16G>s zct9u~uts3Di9ZOiN}%i@z_X@KAon0ZQb)k^rl=#JOGm(Zffr3;C%{^Pxt#!Yre2`D z6CgDK@QSHS0Q61(Y!X;wQVs@e5Lj?9;C0g=Fz;Z%$j*RuW`1WtT4%rxfj3P?7r^Gu zvF*)6U1Cr1-ZqT_Rb5CirYkAlHPu}KnOykz(@gabmZh-Zs zR$zQLK*FJbk4^TWfY70UH3FZQ_`?9J1j-HrY&3NOxrYIg4hMX0iVg>KIUKNF;7gO( z9k5nlZg)U~sTU~k4oK|*_{LQB0QBww*d(yYq$C112rNhhd~X^A<|P6~_5^G(^Lql) zdIEL`Y%>|X0GkDBdI7eZMuDncfH6k^elpcZ05XpN1d{-bCMyZBQ((Ekuf{tPus8{j zb0lDgsTCN1Bp~4^z#k_2C_v~az#4&FCcZadl|Wfu2~ zh}j!sdiITF^U)`^ZFE>cVsz#OJ1 zSM+L=ays(yem#{v#C z)yD!dj|Bw#1L93qf51+GlMj86e13;=XC*#iKf0f03ET}}LP zfK>uz#{s&TI)U8d07(M@hnb>*fGz_8>jk=-#8kjqfw`%GL{l$No(f1k9?;8F9uMe! zJYbVRl1YgGHV7<;0FE*Z0`nq(k!gTFW_}tVEe)_k;AoRE2(Ve8W)L9RGzwG=qSZg^ zORFDiyCL%gKwLT?#bl+EV&@4QvOJwbjx*k1z~Xd3&R{^QsTCMM7?3ao5HZ<90HGm( zH3EZ7{7}FufwG~1bWk87MuhaZ5jmTodg&;9B{IkKOB%Y9I!*+RFg3RuvwsH1mJYj zC{Q&5FlHp+OjA7)kU0_%90kZSS)%|u1(pk(W4zIT#iIZ@qXA<~t-$!vfP_rIIFp?T z2xS7+2%Kl)PX??KC_5Q&fvFS7JsFU63gALhbPAx$DS-6?7n{UW0c!>3o(jk|^#bLm z0#Z){Ofr?H0eYVX*d&l+QceeK5Lj?JV5(^ln0Gp0#nSjj# zHD?0yO`|~7nSe280SZm^S%A#50KqIkk;%#e>=aloP-48Z0gJN$IcEdPOs&B9vjGX` z0A`u&a{!@p0BZzhoA`49s|3o<1zc|G1ai*>B#i-FX^O@Gx{Lv=7pO3aV*zUg=8gqa zntFlqv4GTZfU8aAI6&`lfK38(P0Dz{27v|R0oR%afqCNrBhLd|XXc*=NIMU(L*NFJ zaXw(PK+XApn@poX)%k!i7XWTC)fWIVF8~B50Op&l34omf%LSswyAZH=0wCu?zyeb% zF#bY7!bJdMvM&OJE&{9(SZLxe2CNb&yBKhnsT0V(7?5-cU=cqb4d`+SV7e>fDHl*CIKEc4FdBf0Y**+EHU#Z1JWh~ zb_hITGI9W$1!{5t%S@v{RSsax6u{%AdI}(O3LrQYP;0WL0(J^47kJ8exq!t}0XeyV z<@^9LV0B z;tarAfw?mPb*5gRdu$2m%%?Zd6JE$PV$-QdMWa`DUy6))=9oJiL;Qe z%xp=6sYgutEHX+hC!=pnWjUaCIbf5(CX+H7ut8wKY{2)XL15l&z{tx0Tg?2+0BM&2 zb_i@U8J7b#3)EZ=*lrpHsxAkNxdQN$slEb`c?BSNC7{t{T?yDJuw39*mofu{OeK<2f8;5G=xm69XOCz2$Satm^#xlVGFX^`|bgKkConE4X^sR+r@CSyJY z-+Zg;I-i0kn?`}E`Ks$}fMZSdZGg<%RM#jV#biYRI|Y^t9A~`S0gI!6oZA7ZrdDA5 z?SO;@fQZRn00=DrtPvPw;_m>g5-7U^kZ$S(a_`_?;7G&0zz|bp09_0z)*Dg`Gl^Az zwE}ai02!uUpu7r@x)3njR4xScUI^GEFw&&l3D_X8;7-73(;zVKPQb{!04JOIcLCDw z0_+et)nwca*epWqfN>`KK0xR`z#4(`Onfz9l|WfF-~v-8kXsE%x*u?%DY_rf<$l0= zfs0Mz1Aw&xa~}X?n|gur2LP!L0w$Tt2LZhw1Z)z>F)1~G4FU^l08>qaz`Pp3$cF%V zX8uEfw1)sY1g4vehXI=fY90pUn?`}EhXG?20}4&`VnF6%KyV45$Yd=6>=aloP-48L zfW=DyIZFX$rdDA5Qb58ZfLSK{5kTk>z#4(sCjL>tDuJ>`0hgOPf!s#{Ny`9NnxbWZ zF3SMx1u9J9V}P{+a~}g#ntFlq#{j911Fklej{|x?4%j3x*Q7iF*dVar3Ba|cL15k! zfRVL;>&*OGKw2$ehrkUc<4M3~ftn`)HuzD*<p&g1D2UafvV>LV_pC}ZmM4ZWWE3hz6hu_ zSuX;13M?0R%6KmU7QYC{c?qzbpEw1Ke+iIK2Uuyc>j0rTz#4(oCjMo>DuJ?>0neH` zf!vn?Nv{B&H$|@iy1W8dFYuyCd=;=(VD77cI#VxD{wg4K4d4}1xdzaC4PcYN8k6!G zV1vMd*8s1Z27!66u}Y14omFa`ng2Qp%R0dJc|fvUBDG3x;D zn(B3c%yod^8-RL~^#)+4z;b~PjQ1vB@f(1gHv#KSt-$y<0SRvbJ~r8J0YYy9)(CuJ z;@<|W5-58cu+h{BcGDX`Jr`lYI%>9%ko~i$o zB;}t1Qa1u(P31;F?~Q;>0zs4V8DN9Jg3kc0OoPC@&j2Go2ZYW1&jD$l19k|sF&SR~ zHVf2z0cd9$1**OPjQJ99psD^6kohGb_!S`DWPJtLDX?6iqwyL5i@yToGyoDzt-$yO zK*HC6&L;b7KZvlsyqHh6Rz6Goo=x!1>0oDr4 z-2_N9^#bLa0IA;rdYQ`a0KLBhY!XN^Dc=J&2rT#>aFl5fnD;$ks40TGkE9T3_MSR*jV#Qz9bB~bPwAl=jnv2e3h4!5+X=(;zT!4`Afq zfIKt*Z$R4LfE@zUO~zipW`UZ$fPB*^P_;L<-GVW3>^~M%$BkQ%8AoGy*dmkV;dkPf z%a<50CXTl7068&$GE*xsJ_e8w3z%iHV*#O9z#4(sCO!_ZN}wzbaJi`y$c+Oe1p!x@ zq9CA45U^gL!XzF5SSv9106?Xw7brgfklG4xwW(|c=-mpiNnox?2>~_;EC>OvH4Osu zLV%HBz;$MR7?2hQ>=3xYWV8ls7N}_rxXCmMRJ8_-X#=>$RJQ?SwgCj&0_K~nwt$@i z%LSswYX?}|7Ld~pu)x#`jBf`>Xb&(ZyFDP(9(4_-ly}-RDF&?m1U~W91+SCh_#{*Ii0z6fqoQ;5;w4Uao6=8#9t zJ&AFT@$WOlh3DSv|GvhYLen@r?x>i+c1~jnscQ$Ev}6ho>WqjQ!xDm46IPgc6J=;FBHF~Mcsy+FHtEz$0cL{Gm?G3Uvnyg(;4+~u~L zKbsV{$_pQVw5OjwnKQ&J%Av)3qY)+l?epVW1&8$aY!CdZbFJ*(JuWwfwwx^2 zdQ$PE;|5Ubw}-9#J1_2FFF1O*Qa2{Vbqgns@bnWabCOpMnI0GM+Fp}Msqho?3i_F% zW8ymVrlXIaOF`kxQZfltoowEj5%;7wp65_;H^fw(v9f(Z-1RZ-Hjkr79QiwXu*n)7 zcdU7$b6kig0-w)}dxRVO>x$y02TLyGe5!SY-~a8dyuj0M!OZb1AU@plt8LyZjk~d3 zXoeT)NNhK>o7&_Yzj`l~#huuuT`m7U20!yLrw;9`em^RX!uD1Q|IEQo=eZW%=&j7W zHm*a|Jkb!BvXcKS3i(0(=cM4kE$TEf@205MgVbk(!?9||^f#2-2hqvW$6pjS|0rz@jJ(?W zzqFF5BltXOswvZuWiAi>ip)o@ZjZY>^!te)JNATQ`uQmS0V4lXYZ{fslSHYu`W>Zd zE~@DVgZ0xutO5Sdap*^bRZT`u;03<=JZCcQB@6v5u#QaN`>Hsf7ho!@8u2c^I`k!& zyna^jXufKpkIa0ssL(I*DvPds)u{S>;uvd2Kn?7L)}UPY9Pd~^ z!rwX;fvLvF^8L;odx9ydW?&3<$y11$~%XS3p1O|Xc`gF%e64o!nX{66^Y!u<` zFpczl%PRD*AO>b>DD%dhY@lQMooW^EEWXD(HXEis%ixuqLzdxCn6G~0Tx-B{Ftyetd~@}K?)tpw5@r)V(H&d|Qwb;XJqf1y z{<33}2!E+u_`KpWoJ{y@$6j;ka$w)Wv@X2v(oG?}#j!VnTsBm~seHFO_?D@!VPd>X zdi6{m-yfBR&v!5dr}1rcY_nt2VZS=I)t&4Asq8%9Y`FUWzxT5DuHF`Fcl9VymR+pg zOAtg)bdn%??_yVvPL!iXC!&k8M3;y}FNxlw_bxjB_vg-x6;C|R?|)z3d(M2%_w;^d z%(O-J$d>8F-m1gRi`OW2Grmfh?_B;>S zcx0_HJKM7P*oPp~=+niPEx_InnMNPIoj?(P58aSy^yy~H7Gh6{Ouz27><8?r^_d&} z^lE!~UIZbwVozJP7+G3d*2|VHL6#AjMk(iY_)D>WLpC)^>DBo1vJ4t2>-_rJewSl! zj7%d}l|oboKN+9cFo)T)80@Ez={MY#t;2r9*3-NBm4o$=z}6dW>-~f*bv*v?8)M0${5EhA zWDCb4R5RNM8yG+In_zq1gxz^-w0f0_eKWYx8-h8>mTkfQ!0yHR5PIRyR{@;dX>aQPg-d)t3E?{WoO8FsIqFU$AdSrr&gAD)1ffGct`gGi<$IvG+x$ zp=G8m+lhU+KQFJvoMmb(r4nZ2q=DdfC6m}oe)nP5oTQF>#F8cU+s_5x^YjUintMvqF=5=uw(JBl#eW!_&qAHD_5MJ%n1sy6JZ;PV#I6r`&BZ)p%Z_0GTnXlP){-^$JIX~C zTX@b^JccZjE&I!s9Y;2j6sRAaw`C`=kFsSKY}rX$dDHvX?Y!b%I;SQemEhyU5fD;!xG{@)zWwO{>AjwPokAzj<9dGUAQ$ zyMWMZH*~M9coCW2^R9**V9PFH*GuBJVaCH$qA!Em<#x;jw%!%&yRqw+(3V}rz7P8^ zn2BuJHSE86S;45$Cboswu@@j$`X#YtH?S9_rq$w-nv5$bv}8Cb{#y`&lNv}0Tm3fn z=ailrL!d3YgIyn1Q)5VJ%kE;=xA;`?sgPmyy9dsTAJf=+_mO3lBfnr|#GBaf0T*Mj zsp3P;Hl-=8<>vPYk=~ZA3P^8<@i+EFb{S`|Wsi|1MRp!DqwV(z_V~yyU}m=Uo?_Pk zqdNJ(mOaCM0Q(ipES4QH$jH{SgEur5F>;>)e%x248BGV_vRCw8u$@vw$B$Fz< zFkA06_7%ufc-n5MRq0Q0yD;+FG8eLv&TJHJ3*89AZN&&%76(}%IZp-FEVYYm7&6RG57@_$Yn=d#8#Z8JrTc=drkKr z{g;L7+gB68z`6uX6tIcf{1IY6pKQ`e+fC5H&&im2tNh!z5>3IbgTLwUo%wyW|0l`y zf?0i6bUo;$?H2+}*c$(I<&zMjj)amya!3JzkP=dZPEtZ36w*RENDmny6MO(!%(ylF zDRSq;suQBz5C(Z50`ftAC;&QJDFlVh!8QKbqI7DZQ;G_pLnEC|RD#F#HKe;TW8RQ*aJ+q;noFfR1vmLJbPOCe(KM#YC<3-{fj^h|u*B zu3fMj^yao5@GESCj`->Xok2%_`sCP8umNn4@FcBt! z&Np;1!`iefJT zrJyWSfJ#sWszNQO3p!?K1Wn-!_!8QJKGC=j_Cs>6H4l-V9P6tXu zSttkPL7#KH4LT9f3BU!o1efD51zf>$Q_vD_fwuB@;4WwjuPwW_=-QG$G24Ff&+KxW zTR-_fX#N{P>x*z*ap?v+eO^YJ(c8(jKm8eY!5-KP`#^hC?Mbx-ordoBG?s<%11yIX zuo8ZR7+7bDZ}iU=z60y8uoLu^B+cBKsWl7Vg@^D6^kIP}(9}%CTT~mYZJ`e21Z{G| zKp!~Jn^g3*jrNd|Ykd~t44i{M;7`y7_yFt!ea~VSEP`PW61{D;X}v)IUyKAAQaNTC7R7;xB=Sy-Ue-WH^4^FrgjT#g&Cl?NKFI-lg;c+ z%z^qa(I^-L+QxQ+?$84?Kx+zWM#Iu}R@>Jvp#`*rR-ki9t=>n%DA1~13-TnO6N)pq zYxj8${(|!mO^ruEE1grd!J@6Gww}poQ2Io3d`JKZArT~oB#?^1sw#TbfREk#<;K)b zRJ+W~a2K5zSO@E26U>JN@I5R9?f&$M*@-YI&L<2WSO&vT(A$ywLRaVkJ)r}1gm%yx z+Q3&32-@bQh9C%r5aZh7pW2n&WZdFkGD`1S9}APfz+e~xLqYG>{|G8UG6;e+5DeNW zT?V~t{Q_<5GF*Xcuoig?tb@_;4fKGX&;g9x9mi|pZ}pFedPT)O2YvZMU&Hts`av`dg29jv@`GL})Csgj(~c|+9OrsH`~(|7 zpF~>@D?qy|ZJfRXZFsc7nFZR-R6@71zKx>~?UaG?5COR%4Dx`sbNWD#KGPc)GYIaH z`1|kx{)Ru`Pxu9Pz^||qj>8E!3EGK`2YrgG7kmx?8m)s-yS5?A&4STcr@Jp>Q1a@wA8uFcGG~bm#+p;cMszb>UO^4C+CB&{sXe&Asi6B!3f3 zdM-0SN=OAkkOqQ5A02r?s=88N`VLVD`X?~8W&H^@z-qFU7g&l9J6#l| z3r z8|uQRpshr9_z=FQy!Fk8FQGZKfR->o-(%>Fr4Q7ET2LG6KuIVA`rO6$l)@sI0s4+d zd-xpmYMlh+QhScXkPPBMMH2rpXiHECibF7oE=XbuL18EY#iID5b$$sb38g^G`5e%M zi1mevw$KiGfIflo8LS}U5(HWWy{b?a%0mVC2r5Eph=81s3vz?LXra$ye2iTmC-C1( z(fnuv~F_Z$ZBR zGh>H;{VazFrW_So5t@Kb=XL)>_ffP*SP5~=cfa~K@z<@8KaFdre}fOZVC@b)pcnLo zub~0xriX4`=w`)r-VEZuq0tiZu@ruzEFKcM!)ffvP)`Lq!PbfO$4~)^f=;U=;Uqy_ zAaU2>CTxPWFcW5(iNE=OnpXK3$K?~uXQ2CZlIi$&qDl6<{}(NEn5)Cv<8TU2!!u%j z3A$l^98N%MXbT^~6bhXKTE9G?^Vf_p7MTuLb(pHd(|GWJ6#fm5z1(8y-;-kKr&J1??U6S-hX&?X2oUj(tF0>xL&A9_Q!MP85ZK zBTdG={u}t;PxJ*+Srjr;i61}~vy!`N8AA{`1*#*HB_N+IARBzZv)ledqg2*9(MX7y z6yk%*{W%f607b6T2qz&$NGOj}`OSv~pu>ij=&XP@DL`JI>qsaH<0xuh%8={ZVu6Hj zUnlo@RyLdnN}1yO{XZG zM3~3W`4hh9T7z942#Yzr-+z4kWT$L5>G03*r0IXcKWEf&`|<>)#>QHh)g{BOAYYL! z-5xB+rS4!n!+sd|8<=|1pb;`{c64Z@jn95$+5~BHtxfhHpbhs~UE_8dlc%qI8*w(| zQGUA5p@DE8Lhac1Lol*Qm=j@4tG($4PD?YD7EL{CftAva2~G1HMj~_;4)l-i?;n1 z<{i)kkcV({KxypRF|$Dn>{&6>La4sb76QSL1|H#f4<5jMcnE((T-@aGH9UqV@CshQ zQ+N)~;3fE>8wYgl#&khE>_M0bASEP(K!{4gpZE|Dyx$=W{NU z!gkOKzJfN;8rnj8=mR=s>I5C3H}nFn6S_iA=nhJRGNO|N$$Ho*0exX041oUdJGxN? z$Za$i{XmWJTlfaXL0R0?ug799g*gf{Kjuix5ikq}gY-2v48Yc z?3()LVormpFdb&WH5VJ+?|c@PpqT2zGco7DY*1kGumHY?C9oKN09Dx{SPd&+87wtV z&-$m2T8_04UVp?~39DcY#6h+WGX_);D*T@@x4>pl3)lu*VLSW+J3uulhT?x8rpB|q zn7iROP%GMn`86i}B+7Rb+J}qYmcZ{TFoQ#K1%wW*Djh3?^kO9&|Iw*iApX%CkV6q4lm!O@YsWLkA;zbAVq zLf0sghLD3mvQn6D%jHku$X{_lC(5rF7A@W6L3WuNNYo_I(f2SI4ue2$D!b>P2GM|P zwR|m&odz)wy#b&#ku!dNfqQrO3x6*3)zF%8-BgW0sZ^`GhTtlw8)$5ETA*5-T3!#_ zMqoCu2xhl=I^y?whWL%l+>Y!b86;O3l!u$y2uXqJ4YOdN| zpT(nA!H!2qS&GuBXnT@eIv<ZVYNKvc8u)}-2JH{9Q@Mb(^Y zjh5qE<+kElHKv+U?WxHrVnwQPM@{N;aJibi-JW9STQwQggqn+LPR+xqxsuq`j>{5R zDNw{Mkv+n$_Sph^bNCWQn`Bq~Q)KUKJMYKY1DZ^<0qzKGp$)VKlktZC2d3i{|F}`@ zxaJF*OycZ4JRb3^ZJgz#M7Y<=08-Sj!&eJDOM8)lkQQl$3rc z3dfUUO4qUfUrmLh3^+ zcPDtsq~`?h=qT?iVFjoF9rv(ZF&N}4y+{M8Hdn5Gx}{i6=!bP%-K+J~v$ z=kzLPu-c1UqqllcG^iIjBmN%TcH92tS8iJAX(hNH`2m=T>=33NiI839UtFJy<7bZE z@c%ICPcHrd6_WCG3Ht?5UNq=vGY1sm39lC#uwP zVmjkd4(!Q6v-~sMG&FvJnG~5SM{{Tr?4G#H@+#hD2%Cax&6i3XmE*T-PXpX5+?7jb z=6}hx20addeDj7gtiM2Z1DvX=kNxdc!0%jNhu2XQiy~H}P7!NtuJ6HJxDWE9jprjw={>|$NyQpaa7& zkXwF`JOXCnHyl&K15G7Aikf{WeB0%T5Hwu#J_C`-|+&E+SM@gtUR1$qb ze)U91G$?ajDLM7rZ?F%6!Jwg6GWG)8QnMW-7;4)cnLNm@RogS%HDFHU+8Hu@yGgEf zWN;4D^G9>7aeE}DdcAg|>d~XP*6H0?%n2|KzE%B?$0Fu~B3h66Bdi2PxB^oX#5~Mp znCf`TWe1J;O88Rji{S^*;HlHtxA)&~h92CU;bsB4U3JQ!W#n8gzJuw|1=%!A1N`$P zVk#CzJ{ePiD`y&VCV_IOMmz;KWuPQTSAN%lX2IE9%z~NV%+EQCbTKm7a2`cBGP0cnkUSJxEVTZxPqZ#1dGi`d2Zl2-je) z1_iPTGZO)?#f$+IeK`&xfS<6ddZfcYzXeQAv!OPeM6eTng{`m|Ho+E9$^4AD9aKfz zFiXVAVYOJb$Q`!hFPL%^^59(i76DPOwH{FWD}@(@sahC=n%dhR@Ed5VQ#H%ICTaW~ zSyJ+I7;`u50(F!_m|Ji!h~7c$(m8;sn%R%J2c)+Tb1xiFdvz40a0FDcM=}4j?UJ3a z?Z+{Xfn*9uKP5^ty7KlKR8VT?PN&l1L9?5t)t9)vfU9s3E~rbN2WJnaT%P6n3@G<1 zol}^aE7guqWB&`z*`}_qz-72(a{==iC?iiWZ@@jc3(~y~ci=We$>S}!2};p5P(TVq z9;NJD%Unq!!BnNEa{vHuN<^btG+C-Mi_?*s8h`67NhQYkqRIw^kNwG#NY z{@eDaxIKqgpi&wJLtr=z0yWV_I^d{9-Kj{W7>Q7Ir=oM}uO{wgp)@1}m6EC}3%VLM zDkG~7dK|PAlz`%(Cq{KgT@R(|Ayqx|=Txt%)t~FQdO*bmS_dhWaj?6=vCDMOgM-R( zJWL%R>S01XKqz;$5${`eCqqiGB9fjX(^InwM;VDq%tazlBAmcf5_+Uo^(oIz5ju7I z61iHi8c=fF)qb2RQbJS>a+6Gc9RGUc*2T5LP6vb$^`>Py4MdUZ*mRI#FyPoY;B*B<^-Zu#J%&+WD#2K+?03}=rR(R>*mHNMmT#9=7Hw&n)^kA@) zbEQ=FoR9-PgzS(FvVyvj60IVAx52(oE?xDU2kQUodQS1l;qAVvqE$UP?kd{1uT_*0 z5Ds}E4D<-I60J-rJg2ywYdzZR$f6{4E*u5tT9Hep=bsgjo`qHdB-5_KX{@>~hMU~= zjI>ItC=`LhP!I}%8lZ|^W=Tx!QN9Za$|5KOr7edya=Dd9=Cok7cD3LtP!T=?wQ_aG zw;OT=WU6EN{}@vlP*>Fx+OclbzXFtFH5{a%h^pF3a&sb9AfJE}hyoT$jB-;06u5Gz zA$%6*cc8~!>VW$EG)z4htYxPj5*&@8K&v~Vf@yhKy18` zJCJ>ftd%Y6jrsQ4^)oZ1$rIB@hW=$!O8>nfd-C=Xg!S<|NV*Ew_P zYi>Q~Npn4_`UNPtkMN?Mje^n~`nkMAV`v6VZL>3G2j~bbpgpvNcF-2uKr3htuL(yw zGNmK)E8D~#^+wqGJ<5(}Mfi3g(su&vWV4$F2Mh)&_k-S`Cmef0ANU$NP&a*TS$phJ*ayDlCcXYJ=pC8D8UWIj&Omuo zfN~fDid>N?a>pErU6GFf1*iaImyX;VQ#Gzru<^*gg>fL6b1hTnCEEO`Wlx2uDg4o5 zO$R5%KnuAoC`?AK#hXm&Xw5YPQ~gVJrwgdLsfo`-t_fb(YI4$1lb?lr4yZqFBfR;T z^I)!ZUDUVol|n62rbkS4zl?ux?2B;w0VG?DdF%y$_}$GN^V2K;&L5evJ|^`?o;q$`IM%L`XTSTKQKm#?PYd_#QD#A9PlS8PD02eSRoNu^*ptuI z*p$WyX*Zf_p0d1gaoMO<#p_>myYh#HhlLYScQZzMgU!zv?$M*olaC2y@@SK*iYF*^ zKK^*HDf+7dO%~+Ib!(#ARnYdge6(qbM&xEYSH`GPn>j91*Qeg&*l zb~XJ`a1AiiFhbv>M_N~XYYtQ+0eQ`}YMyJMzi~dH08=d}@+5VhW%G$Rl88|}Jl@>? zgj}DoH4cw$RA=jmF2A6W-_p2dyOchB(l4lK`=z)jG5CEr-W01&w%ijq1S0f?mp;AO zy>6cnGzwaNlbR0I$xjay6#e;lxnkP2&G`U@e3rrhGq*aGHOL&T?x`AjV4_t%M@p5- zn!4kdmFU^YJT=jjszEY~PqLzVSSNkmty}uVMY%rIQ&J<*YY$9fd5@qId6Xb(!} z>`7)cenZxxq0;X(B-@moe&;sX8sXu7am=(yMe?6;&BwI~unGV1H4*BpI+yIc z{pm8)3t3fQ=kCAcY5`|Ns=js~ru%%+gwH>5yOdq^wfbf+f%AsLE43-VYvWDzI#g2g z*;ZVKKK=9j+52NB_>$&pZJlvZ_7i2$D+S^K1YDRoY#yXq%pEB5lb8Mdk{S5VXbqQ?SpeXuO zY8Yc@Df0jY-Yc5zGf!3bv>#0O&uBnL7nxr^Ba|;p&U&7zk-vn~Q z6%3=?{I)GK{pzDw+`O(&0~@m3Qk=Tvuj8*q@|`(XW3sODYj5&3AgP^AOAHN3(;F}z zK3HKDMThMpRxF)%?Ps5U-mpmau`A7i2A;z9*S9LS$Tjq*Y%@`UcZM3T3`{uXC zl{@~dp0A`LR08uin$XWZt1X{ZEhEt6`@+*a;2bk!dXjEd^eHqJ2_vU z%{~|3yc6Gy_|mh6S74TI&YYIT{M?*|lXtt-Nf(cpJ!C+l$6wk}5l{(}tObQq)#PkJ z&!ILZwD3fPbRBDV>O+@5U)W{!Q1ms3k+cEkFX^{3&t;@HDO*yAKHq6f-Iq1Sg< z1vDlg-PPG$<{$N?%-3H zIWjDNe!phsa4R~+_1{g2PM#oBq_yWO_x{~xUTZR1agWs{%8g6ADMzu%lhmlJW?IAC zYfaX=nv!j3Ej7&dZMbR_^Qetyri)^o*v?b+e-&$>hdF^Qib>s`24B^DOt$~6d^9wp z_n+mHA|RiY7^}$st(dghpb&~1R|o2&nF;AYt@|2pzL*0YJZ)X%JBEDI4HBEuopJ1F ze#UT*IBF_%VT>?G%>lCU38EJl$Tq_98eKJ7qfdpm(3PHO5T&=&So7i}Ijh z&+3;?nRz`JZ||a^>TCPBk$YCw(RM^^Q zXuh@`eG&WGYf_V>7kY0(ZzT0zXROKlX`)PPQkI%^*X?SBMDh8;%jdp#*8JLw3`L!@ zrkJKho_nT!*LAYnMS1vswuY(Dn+{ONH0$kI6Y}!B)oVWKkz;0ogUer$3XN@rh|Gld zVcw(-;UUWD*G$7GDsd?q z$p~@j>~fLKzCK5e9F5J_%-AT}j1?3g$XMB*4*qu(`LjfBI}GP?!*$a%`i%#(B%0CJ z(llZH>7I_d6_VRh4>A|~zX`EGvYS?k&Ch!FD_7+epT(vo11?HukH{Cz`;GYMRIG~? zMacWT+8M}YrVXI33-d||If1BbB=nv9A{Y4y`| zC&ot4SVwFH!y@v974(~X+hiE-*~eb$&Tvnf$o6-5oDs$ReMe2c-}lEemLj90-xypp zf!6CiZ_}fcXS8Z02)Qh~V@ix**xGotXvwn@5_l|s|eo={sDXucioN#|U6DR zCL{Uj=pOTWw5Mg{frr-klJDCudT;w~*4J*=&q$Q`Q<#DBTC`cS-y^EU!)rL(zWi)y zADZc7$otEOX6+aj79KPcqS;~c{v`drsbZ44T0XKy=(&$gy0J8k^^dLUJ(}XzY}NK| znn_q1BU$h5#w8VgTP>)a=Txc-m2t60>c1YFrlH<6X7E^clD8h4V&jPN$zxM@oM-jB z4Yx^JZ(8^2E2jRpbaLPFXBypb@cx9K?AbD9kGAh~))_v+$42`d~J?Hoq zUo+imZxb2bIvUp`rmc}rV+Kv~gu2+E%r^9+(q;ojNZsdFGra1T{HFxBv$0ckCWkiW z4ho^8P*9Uk`Fcx*m0ulG!E1#`z4D6Aft9xgDt&ZW?s+~pBPV;N zhTM2zRo>l#LBlhqX;jPCDcBflOi?v4kK3gCj_PH#?Hl{|-MMh=&tHRBrTa>Q%(Alg zh1wwbf*K)_eN)&jEMNJEWLx}(q~@`5ZdXRXYTm10j{b|L*cuc=xS9DKgI)z&p-i4a zx4lbS-m?`bg{HVD$yMuDS-p1D_77tN?{044HFB8kwbcrGRVvo&TwJtk&ai4- z%IuRTT3z2aTWyGAip^j|I$&#DU24SW)NGP#|z$c$G78Gf`ViJ zyzTVQq`ecH>AUbv;v(KeZ6!9ZN%aGxn%(#RvjUt+;MWvZ-F>vRvFVdCXJ=mpXe#wP zn8FPBfqBUaFLzPjw&35V-u!HrgWyG-i zX7gf3r~G{D$&=DQg4v;(nYoD0V9m9G9xa8eX)w@SUF1m@@-HVIk=A~-g~_;>Rcwcp zR;+g~^o?<)-jPYi2N7yMe&bS_j>M+vbogSj@z2=J&BaWpORt%PODr9x+#pk830=UK zywq_E`dJfkkb8KLIfrY=!XTGk)*PKU-nm-oZf|I0=~*MxTzG#^qaF zw0XQXe~J5Lv|;eg$!~)Ek2n-_D&M^BWPjw+HxquUbb0-vf?dAlL&bP2ZuQ?f|AW}L z?bL-%LnAAxYnX4~ur-rkABc@~Td;XWvYh0-y}$^LTj))Jk6q>|WG^uk$fp@VRi>M{TDw?N>5U z%|kiXLAUxDpMmLuk&saM4I(8jt9Zx%!?7fv%sBBt>#8o!N-r&|9{~?lgr$ zo*WDN0KYV*LM(`$r!#laaQT~fKhlHanBqS&IoCFy>gp>q;zv$8tc6RMzm@=!hSUBQ zq06^HF-`xZH`iV72@PqQ!|FIs_QlUJrP|sfL_#TRk=xgdT2C2_MnS9Ky-n&x=8vAP z8OXj1Fb5a4wm3yrtt{4hl9mwc5VVJ0pTnG5Pm9@yhPF;4vb3L8d&QSG(1^5-PyWhb zlKw=Wv)9KVFVNI9pJd>~Q{e%Fv|!+vRmrdmBN<=3NQT1AL5H6vNL)(GNzRS9g_A#% z8TS*5xgIeeZQ$I>l{+SCqo;;WVa%aT^r}dcels)qKQ?-4I2<3knS~=O<|CUuRYGdp zp{G7xGSl=WskSLA*P&_9K-4{ff&|gr{C^q`|hrj3Uu%V8vKm|Dg2Ah|^d0K}4>k+K) z?DtFw6aBmI@MP8RG#cBV3Esu(!nvrni=B8)^WCmk1-W^4<1fA`yqj(v-?ZCJiYu44 zQrv6r&YP+F)X>qZMmADh+ssD6)zoa*O_Tektm(YR6CLtxS*x%z9~r)F_PoA5&{y4% zft)7MUUpiuP*4x;n?Lu(uSykG<5hs{EmxN{W%jb&A7Ya2qXc(lG`aRsf@NaL@1tBp z8dtEIod1=Hk?kihOK5wfPJIXXX?R0{Cph#ZTB`Ykji+b0oU3knwCt97rGnYBpXz*! zh6aK$-$&&i6w${zd+{xYmV7kn01beG2tMG+5zwrnRTrjxs3$n26IZIbM2-H=-u26a zpZlWst!?}8IYAN;Ax?Kj>)^zf2WtLNirN zrb8^Ec8)e3Wv-}dHXmXx_|H3~&hTZ;$ZVDq9Hv$pSF`$Yxg$SMxws{0If=1Lxuq$I zf~%*gci2WOjQzt?;T@TK zaZU5=5AwXarWqT;c4f;Sp49HGHO=ThJ>PKdlKP0J{0GjOqeN|&pN@QzUY|VXr}X8R zJsC!Qo9=D3P4p2e>yO%I>Ji4oPIavueo?>gh%w`*hDg(QpvIe*T}M6T-J|N7ibp*e z{^d~4QT!i4q%mucax&x#F3tanFO97i`u;#UOKX3OA-{^*aLm&(r2c2tLMn6qN!zPm z9;Ji3aBC&yy9v^t?OFfpY%Go+r_XNr%w#{oP`am{8GC~1J4t=37NbjiviWgzjhcA2 z_qKI#(THE5?ypxXtV^qD+3pW@%;^)flxpVXd3qbENqohVDoz9=QO=Xd+nVwxY1Lnw z@h54&L(Ipz4|eV(d#z~=OsZ3i->i`;%UsyN^gBf&l1{J=Sxyul_iduT3O-Q|=-G78 zANf#{7KuYc0-o*}oKb6S?j_5`UKCtB#i{N;CcRYV>(ibZ?kx?>fzvdW-y4{8XQ=K| z4NRdkRQDr7OiqX^@7428@1360qHr1`N3VWfGxH3$F?yJcXGy+&pKkD3Pa7wTaU=XV zG)j1m8Ry^kKk60<%&2qpvs{g>Wq9j=;;rUh_iybh*9h%(YMN~*xK{+4Q|A~|4zXX- zir{qJPqweWIZB7Ax>3Za##wdJzdViObtWjSqkOxIKrcr!`JFwbj|Ru8X|^rN1c&NfzYs4<88 zIq`bTjf;$yXPTP~mzXwAwy;K*1&hY4ST=cb6+Gzv9dm43v*8lW(Wjrr+`i;VULtQx zt5yzSs?g8v8q&D@caOq-o(ikbui&Dk+;i8B?tNcxGK$|itb5kdl(@`Do9rvANggWq z_(f2#S0bD0qsA*ImMd~)q^!v$&X^nR(3wAKsvt75iXrYl+NfDYw4OcNSq`?aa<@>{id`r{jPB#*#K> z&ozb_Yp4pcdK1TC?;WaqV^kXVlQw4hb*AnBv*x;0L~(C0lMFHiZ&2qK+M2dEsDg+5 ze+}h+aNp0jwV2TEnEG&`un2Z{9y3#lJKC8)ExPzFEEE*G@oday0x*8-g+$Z&I#bnWHy}|4*p*}+oAilGhJ?RN-?aXwJ!KOm1{&utMpq4JyH)?QKB8qc2ekSXCB?+VSv#* z7N^Br?hS=!%nUxe3q|{0?u<^R@ofsIo#}D=O&dxTH^1Mq&gL8r1&Yuz)a;f{FFAie z-n6-`W~T=l)_1mCW=2hEezQ(Pa_%^8P+xG7E>WztQ}?k0b?^3-M=j>zU<9C zJB;f082hJoG0`vaUC|u8M{lXc|9;Uxe|`R}$R#IBr1s6%zPs0!g7k0Rqp&x0Gff|1 z9`0r`+{e7yZPMddgEY;0!gMqAJ}tbY`O8g}EqO$hH8CsWc(uCe|Cqto31mzUQ{n-m z&io$MYT@r+*M8C_<16h8?78mO9%h-_8ynr@9wu>OZxGKHgva-$iF|+Q%Or|AxG>h^KT9(7|5{#e>h7P#_-@Vq|F~LJ;FR1y zeZD6;_r-oDoj>iMugUn7QM)MLPW7hpXI)~qQ&(Nn0fz!n_Udv=%M;V~uOF6+{OiFc z6#w;3uFs{d+4R(tGyW*NswdkEELI=4qfNqRZ~BZCDUJEMssD`adK|MmDNQ_?N%EW& zePCw4_N3%Nk-UEAJDYOPd0LC-lyC{D+~1n~&W;Q$c;I1QcHquNwuw25LS!oxbYJzO zS{d9sHlNdzHuh7BU2#!u2JV`BWv{zJUR-n%LT<+PH(@W>KQBN-i9R{Ldc0NH&RGvr zT1z=xG|}YVy71)u)Zwl0YYzz<`rM8O^#OevQ)_@6D;HzL0^ zY&uhdGaI<=;V|^V5UU|{*)ibCkIO5+HDKD^+8Lkhxc*CNIsMKVX|4We4_r?2Sa?{a znbPEp<1NVNo_#r)Hq`Ws!{}^JR_~1Ru|w0OxF|V8O z^t@?JYROjLv*S#U;POZ-;RS9?n$!E2^Bsx9F1?2%O)0N8DCGV9KY{7u_2zpk15|v8 zM0EEPUT<*dPorG=%4YO7&w$~X1FuhuEt2!2Ows^vPyzR7mtPh%)&+(xO&z?je5^(` zTr?-HDDuIU-~-26#JZF-jRL6j<|ycX%A6ffGEePXMwMy0&ZI+(_t6`&R!~GkDu6WYV`* zJBv5*QSzcwKGw}{yPd@j8gF@0Tm4rDvmw!cMC5iBE!LQ7iYN9K42?U%S|JzD)nmup zmmA)S&>q^HO8NxTsu|MDz8w^=nA7c@(g&|ONK zzmiY|gUoXo)|}#ucJ^hcG1i9XbeEo6mw#A71G!yVcE5J!B6~`*78xOhCtJsnCF^eK zv8-dwHL>2T<;OeGyc0+#(?1#Mvr}YGlaW~lTZ_;i)1?1+TZ+tH!n99;wob8DEJuo0 z53T%pjY7EC&-VX0#iUEl&~X(F?FbXxXi}?B@q~ZHrso4wBRO&Xb837x#SBm3jc`(M zd8#=T$Y@eOF+*6SNs^LD^2JosF$J^6JF0eK&D|8JHZ%zWDOt;hDG}%mj%+dAYJEXB zeoXvH$4|J4;jECJkwgvLDa)kV8CGj(7%uie;)JYXJJi;WP3i~$!at?pV!^YGG=)yYN5Wlkji_F|2D8UHG@K5 z)RniI-98-IJ#?*0|J}%X=6}LW(=RO*5**~s@18R=rh1Tfo&EGyph+9-EgV^q`%#*4 zFMq!>=Ie~B(-4(?%k3tiYLj2Ld5iY-a|9&9rGRzZyf23t8O&(mJ7V@d+%h_c*@`4` z?qloWv1^RCET8Gx}98i}Fs4~l%kxk-s+#q`x z;{81SWkgE1_0Zc@=a|v=T$`2ap7FEJwhG+$Xv#kN@BVb&H6hvOSUy+R{C3&Z4xP1r z&S%}3%5P?-XQnEPf)?1vCY28PyXOe)@58O}U_UN8?kYd8RpM0-3%@l&U7TZXr>FnC zU!$SPn1MFl!W5O!+0@BEJw};f81CWo%;pT#|AcwwRc6NUne(h8<8>F;P92jek8ZMR zFyZdz!g(fPMl{#VGg&iwr}7NUwv68X?tAl1Up$(InY?T5C`_)*-fFf(75Ap^&92O> z(X1Gvxf>Ssfw!vr=0cMb)BeRsLJlU6T-wEogg(ftMw@QIx zKUhVV^ufTSsk3${;M4G>t0FEcnaAGWyEk34f^ltEYLrQ50@N5d6foz%IqdJ9ILMoo7=YJHLTNY3evV{A17h*)H8 zv%J&C?a4gw@*LZRrS9TIrhQgQ>)9f+H5(1qx{<;LZv*#JToLBatZW9>Ew;QTIR0?r zXKNF5vQvilqNa3qMzDYSb`xmB>;zWTjL1gkTeid+`2P&udaBmyU*_4~sjGkYXA)-j z28V3Nm%8kn#FN)|8?~WSY;NpGomgViFg81LRi42*J~WB@Uo=sk1?c;IjzK= z{=ww>kSyC}rzg+e6>-A)<8sp!t;qKm-OtOdQpp^+`Ma4%58kx1#k9GM|8OL~@5us5 zdB0yLRaCB>1UsQYZmuimpoQAchDG*RY0YAts_vR!a_i%yB)}f#N8_R=B}QE?QzF~c zN*7{Xmaa5=2!mS>uXAw2>|MpA3W7%fbY?CEQza)|^b?xcJUV^M&l=^i$jG)^%6RyO4C?Q&On2bn3!7{S1A-f}M)UQ@5-K zfAA19o39AkiMBlIOqt-?TvQNS!0Ih_WBNw z?K?}pn=xrZ-aiu+F(tzo7dZVM9ma50p_O%hdg+(Pl^eR()2+Fq=PLu>fqA}=_aE~Y zF-h`x*MzQ(vD#6Gd4(DrY!a|3lTz!uZ?P@LoXg{_lAx5n-^XuOxYzXm&Oe1|e>cEu zYUK51<9`{O?s>h3nw=eKJ)oZXR<;fKR(`YkI@cO)3e@Pi;eO%cgmi63E^IWS#GOr;2KdW=>W z?xP=?;c~@XWShHe^EzfkAdjvjCzgg;(hd5tZ;dC>c1>6Bdc0V|lU2^X>;7$7QzV}^ zT~yV|R)?5#bWPHgheP{)$+b?G#+_V0HFWy0zz$re;QH3$faIOpU3xx%Yc;|vHFxc7 zeKKB;y40oGO`k{Qf-+u@S@b#A(yuYmv_FuxLBVcZYk)m}`{{-ptM7Lo#I?rdJKt<; zu{pG8f*l9+twerxug9Fv=WR67JntV6f9STY-k5D$1M1|8Klyrq&;9Ckli^lC&jfk( y0Xu$4Zw16wY|N%x0dd^%O6e;n{AQW-w*s=6yLSSbCb(+LD&DsAV`vD$uKx$2ZM6UZ diff --git a/packages/messaging/package.json b/packages/messaging/package.json index ddb474c..c99438e 100644 --- a/packages/messaging/package.json +++ b/packages/messaging/package.json @@ -54,8 +54,9 @@ "check": "buildc --deps-only -- tsc --noEmit" }, "dependencies": { - "webextension-polyfill": "^0.10.0", - "serialize-error": "^11.0.0" + "serialize-error": "^11.0.0", + "uid": "^2.0.2", + "webextension-polyfill": "^0.10.0" }, "devDependencies": { "@types/webextension-polyfill": "^0.9.1", diff --git a/packages/messaging/src/custom-event.ts b/packages/messaging/src/custom-event.ts index b4f7c8b..2a5631d 100644 --- a/packages/messaging/src/custom-event.ts +++ b/packages/messaging/src/custom-event.ts @@ -1,3 +1,4 @@ +import { uid } from 'uid'; import { GenericMessenger, defineGenericMessanging } from './generic'; import { NamespaceMessagingConfig } from './types'; @@ -59,7 +60,7 @@ export function defineCustomEventMessaging< TProtocolMap extends Record = Record, >(config: CustomEventMessagingConfig): CustomEventMessenger { const namespace = config.namespace; - const instanceId = crypto.randomUUID(); + const instanceId = uid(); const removeAdditionalListeners: Array<() => void> = []; diff --git a/packages/messaging/src/window.ts b/packages/messaging/src/window.ts index b9f94bc..c72bc1b 100644 --- a/packages/messaging/src/window.ts +++ b/packages/messaging/src/window.ts @@ -1,3 +1,4 @@ +import {uid} from 'uid' import { GenericMessenger, defineGenericMessanging } from './generic'; import { NamespaceMessagingConfig, Message } from './types'; @@ -53,7 +54,7 @@ export function defineWindowMessaging< TProtocolMap extends Record = Record, >(config: WindowMessagingConfig): WindowMessenger { const namespace = config.namespace; - const instanceId = crypto.randomUUID(); + const instanceId = uid(); let removeAdditionalListeners: Array<() => void> = []; From 29e7f062e8939041278131823348c6ee90f25766 Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Mon, 16 Sep 2024 00:26:56 +0900 Subject: [PATCH 11/15] chore: prettier --- packages/messaging/src/window.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/messaging/src/window.ts b/packages/messaging/src/window.ts index c72bc1b..b566175 100644 --- a/packages/messaging/src/window.ts +++ b/packages/messaging/src/window.ts @@ -1,4 +1,4 @@ -import {uid} from 'uid' +import { uid } from 'uid'; import { GenericMessenger, defineGenericMessanging } from './generic'; import { NamespaceMessagingConfig, Message } from './types'; From 557b5292593210f342b1785d933f56ee89075a9c Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Mon, 16 Sep 2024 00:36:33 +0900 Subject: [PATCH 12/15] chore: fix coverage command --- packages/messaging/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/messaging/package.json b/packages/messaging/package.json index c99438e..5f906cf 100644 --- a/packages/messaging/package.json +++ b/packages/messaging/package.json @@ -50,7 +50,7 @@ "test": "buildc --deps-only -- bun run test:node && bun run test:browser", "test:node": "buildc --deps-only -- vitest -r src --config ../vitest.config.node.ts", "test:browser": "buildc --deps-only -- vitest -r src --config ../vitest.config.browser.ts", - "test:coverage": "buildc --deps-only -- vitest run -r src --coverage", + "test:coverage": "buildc --deps-only -- bun run test:node --coverage && bun run test:browser --coverage", "check": "buildc --deps-only -- tsc --noEmit" }, "dependencies": { From b38748a3d554ad63ad122a2134efb8b4565e078e Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Mon, 16 Sep 2024 00:45:47 +0900 Subject: [PATCH 13/15] ci: prepare playwright for browser mode testing on CI --- .github/workflows/validate.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 2f2a733..14210fe 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -37,6 +37,8 @@ jobs: - uses: actions/checkout@v3 - uses: oven-sh/setup-bun@v2 - run: bun install + - name: Install Playwright Browsers + run: bun x playwright install --with-deps - run: | bun run --cwd packages/fake-browser test:coverage bun run --cwd packages/isolated-element test:coverage From 21c9dcdb107e809a1d7ba2d712f49baedf0ec37e Mon Sep 17 00:00:00 2001 From: 1natsu <1natsu172@users.noreply.github.com> Date: Mon, 16 Sep 2024 03:13:06 +0900 Subject: [PATCH 14/15] chore: bump all vitest deps --- bun.lockb | Bin 586120 -> 582760 bytes package.json | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bun.lockb b/bun.lockb index f8d4748c7e3c24dee9d071d7cc3a76878388c181..a3131c8fd06c9e454793476f16fb707b216c074c 100755 GIT binary patch delta 97051 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