From 709eb75546e4256e64f834bfb3b2936b66f48f65 Mon Sep 17 00:00:00 2001
From: James George
= { - container: HTMLElement - baseElement: HTMLElement - debug: (baseElement?: HTMLElement | DocumentFragment) => void - rerender: (ui: React.ReactElement) => void - unmount: () => boolean - asFragment: () => DocumentFragment -} & {[P in keyof Q]: BoundFunction } - -export interface RenderOptions{ - container?: HTMLElement - baseElement?: HTMLElement - hydrate?: boolean - queries?: Q - wrapper?: React.ComponentType -} - -type Omit= Pick > - -/** - * Render into a container which is appended to document.body. It should be used with cleanup. - */ -export function render( - ui: React.ReactElement , - options?: Omit , -): RenderResult -export function render ( - ui: React.ReactElement, - options: RenderOptions , -): RenderResult- -/** - * Unmounts React trees that were mounted with render. - */ -export function cleanup(): void - -/** - * Simply calls ReactDOMTestUtils.act(cb) - * If that's not available (older version of react) then it - * simply calls the given callback immediately - */ -export const act: typeof reactAct extends undefined - ? (callback: () => void) => void - : typeof reactAct From a4fa8413bbab8b08518994e96322622fc0008f72 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2019 13:23:07 -0600 Subject: [PATCH 020/275] docs: add nickmccurdy as a contributor (#444) * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: null <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 24dbb2ee..03ea3c9a 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -865,6 +865,15 @@ "contributions": [ "review" ] + }, + { + "login": "nickmccurdy", + "name": "Nick McCurdy", + "avatar_url": "https://avatars0.githubusercontent.com/u/927220?v=4", + "profile": "https://nickmccurdy.com/", + "contributions": [ + "review" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 8008d6b7..81424e6f 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ practices. [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] -[](#contributors) +[](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Join the community on Spectrum][spectrum-badge]][spectrum] @@ -501,6 +501,7 @@ Thanks goes to these people ([emoji key][emojis]):
James George
📖
João Fernandes
📖+
Alejandro Perea
👀From e92ace801b6e374186f762e47a6483e3715b106f Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2019 13:23:39 -0600 Subject: [PATCH 021/275] docs: add eps1lon as a contributor (#445) * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: null <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 03ea3c9a..72c045fb 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -874,6 +874,15 @@ "contributions": [ "review" ] + }, + { + "login": "eps1lon", + "name": "Sebastian Silbermann", + "avatar_url": "https://avatars3.githubusercontent.com/u/12292047?v=4", + "profile": "https://twitter.com/sebsilbermann", + "contributions": [ + "review" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 81424e6f..5c5bfeb2 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ practices. [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] -[](#contributors) +[](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Join the community on Spectrum][spectrum-badge]][spectrum] @@ -502,6 +502,7 @@ Thanks goes to these people ([emoji key][emojis]):
Nick McCurdy
👀
João Fernandes
📖
Alejandro Perea
👀+
Nick McCurdy
👀From d8a843d4fb7928e1f19285fd8a0fe30015d3737c Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2019 13:24:20 -0600 Subject: [PATCH 022/275] docs: add weyert as a contributor (#447) * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: null <46447321+allcontributors[bot]@users.noreply.github.com> From aea79db2e1fdf4076bc457fba4bdd651ae4b6583 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2019 13:25:16 -0600 Subject: [PATCH 023/275] docs: add afontcu as a contributor (#448) * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: null <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 72c045fb..2bc1ae63 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -883,6 +883,15 @@ "contributions": [ "review" ] + }, + { + "login": "afontcu", + "name": "Adrià Fontcuberta", + "avatar_url": "https://avatars0.githubusercontent.com/u/9197791?v=4", + "profile": "https://afontcu.dev", + "contributions": [ + "review" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 5c5bfeb2..926c8295 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ practices. [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] -[](#contributors) +[](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Join the community on Spectrum][spectrum-badge]][spectrum] @@ -504,6 +504,9 @@ Thanks goes to these people ([emoji key][emojis]):
Sebastian Silbermann
👀
Nick McCurdy
👀+
Sebastian Silbermann
👀+ From 23e50ac3c926c4e5ae52507ca7c375999cc700e2 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2019 13:25:48 -0600 Subject: [PATCH 024/275] docs: add johnnyreilly as a contributor (#449) * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: null <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 2bc1ae63..096682c1 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -892,6 +892,15 @@ "contributions": [ "review" ] + }, + { + "login": "johnnyreilly", + "name": "John Reilly", + "avatar_url": "https://avatars0.githubusercontent.com/u/1010525?v=4", + "profile": "https://blog.johnnyreilly.com/", + "contributions": [ + "review" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 926c8295..c6cccd1d 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ practices. [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] -[](#contributors) +[](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Join the community on Spectrum][spectrum-badge]][spectrum] @@ -506,6 +506,7 @@ Thanks goes to these people ([emoji key][emojis]):+
Adrià Fontcuberta
👀From 9c9e518929a7fc7bd72dac71eb2967f5b1929386 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2019 13:26:30 -0600 Subject: [PATCH 025/275] docs: add MichaelDeBoey as a contributor (#450) * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: null <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 096682c1..92e497ec 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -901,6 +901,15 @@ "contributions": [ "review" ] + }, + { + "login": "MichaelDeBoey", + "name": "Michaël De Boey", + "avatar_url": "https://avatars3.githubusercontent.com/u/6643991?v=4", + "profile": "https://michaeldeboey.be", + "contributions": [ + "review" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index c6cccd1d..7e949b46 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ practices. [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] -[](#contributors) +[](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Join the community on Spectrum][spectrum-badge]][spectrum] @@ -507,6 +507,7 @@ Thanks goes to these people ([emoji key][emojis]): +
Adrià Fontcuberta
👀
John Reilly
👀From 4ed01c374b9e3e10c29b979499181aa325d0c526 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2019 13:27:07 -0600 Subject: [PATCH 026/275] docs: add cimbul as a contributor (#451) * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: null <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 92e497ec..d8323946 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -910,6 +910,15 @@ "contributions": [ "review" ] + }, + { + "login": "cimbul", + "name": "Tim Yates", + "avatar_url": "https://avatars2.githubusercontent.com/u/927923?v=4", + "profile": "https://cimbul.com", + "contributions": [ + "review" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 7e949b46..5137cd09 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ practices. [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] -[](#contributors) +[](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Join the community on Spectrum][spectrum-badge]][spectrum] @@ -508,6 +508,7 @@ Thanks goes to these people ([emoji key][emojis]):
Adrià Fontcuberta
👀+
John Reilly
👀
Michaël De Boey
👀
Adrià Fontcuberta
👀
John Reilly
👀+
Michaël De Boey
👀From 2bbfff3710ce96ca01e7a36f0c12e6ae645c35db Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2019 13:27:27 -0600 Subject: [PATCH 027/275] docs: add FredyC as a contributor (#452) * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: null <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 3 ++- README.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index d8323946..bdc785ef 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -678,7 +678,8 @@ "bug", "code", "ideas", - "test" + "test", + "review" ] }, { diff --git a/README.md b/README.md index 5137cd09..555ffbb0 100644 --- a/README.md +++ b/README.md @@ -474,7 +474,7 @@ Thanks goes to these people ([emoji key][emojis]):
Tim Yates
👀
Marco Biedermann
💻 🚧 ⚠️
Alex Zherdev
🐛 💻-
André Matulionis dos Santos
💻 💡 ⚠️+
Daniel K.
🐛 💻 🤔 ⚠️
Daniel K.
🐛 💻 🤔 ⚠️ 👀
mohamedmagdy17593
💻From f4f3ea566eef3f61090ef93d7da0229d2e67a160 Mon Sep 17 00:00:00 2001 From: Brian Donovan <1938+eventualbuddha@users.noreply.github.com> Date: Fri, 16 Aug 2019 14:08:04 -0700 Subject: [PATCH 028/275] fix: use apply for console error args when proxying (#454) * fix: spread console error args when proxying Without this the proxied errors are logged as an array, which is not very helpful. * Update act-compat.js * Update old-act.js Co-authored-by: Kent C. Dodds From f4f1b7526eac32f9ba744593dc91e6991d5fc0da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Fontcuberta?=--- src/__tests__/old-act.js | 4 +--- src/act-compat.js | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/__tests__/old-act.js b/src/__tests__/old-act.js index 0098ed08..fcd531b4 100644 --- a/src/__tests__/old-act.js +++ b/src/__tests__/old-act.js @@ -34,9 +34,7 @@ test('async act works even when the act is an old one', async () => { expect(console.error.mock.calls).toMatchInlineSnapshot(` Array [ Array [ - Array [ - "sigil", - ], + "sigil", ], Array [ "It looks like you're using a version of react-dom that supports the \\"act\\" function, but not an awaitable version of \\"act\\" which you will need. Please upgrade to at least react-dom@16.9.0 to remove this warning.", diff --git a/src/act-compat.js b/src/act-compat.js index e16b135f..dd5f1d96 100644 --- a/src/act-compat.js +++ b/src/act-compat.js @@ -42,7 +42,7 @@ function asyncAct(cb) { ) { // no-op } else { - originalConsoleError.call(console, args) + originalConsoleError.apply(console, args) } } let cbReturn, result From 21869777362172e6ec44c164a7f7944aa43a17c1 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2019 15:08:35 -0600 Subject: [PATCH 029/275] docs: add eventualbuddha as a contributor (#455) * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: null <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index bdc785ef..5ae31ec3 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -920,6 +920,15 @@ "contributions": [ "review" ] + }, + { + "login": "eventualbuddha", + "name": "Brian Donovan", + "avatar_url": "https://avatars3.githubusercontent.com/u/1938?v=4", + "profile": "https://github.com/eventualbuddha", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 555ffbb0..f39c90a8 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ practices. [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] -[](#contributors) +[](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Join the community on Spectrum][spectrum-badge]][spectrum] @@ -509,6 +509,7 @@ Thanks goes to these people ([emoji key][emojis]):
John Reilly
👀
Michaël De Boey
👀+
Tim Yates
👀
Brian Donovan
💻Date: Sat, 17 Aug 2019 22:01:38 +0200 Subject: [PATCH 030/275] Update names and links (#457) --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index f39c90a8..5810a414 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ -@@ -85,7 +85,7 @@ your team down. ## This solution -The `react-testing-library` is a very lightweight solution for testing React +The `React Testing Library` is a very lightweight solution for testing React components. It provides light utility functions on top of `react-dom` and `react-dom/test-utils`, in a way that encourages better testing practices. Its primary guiding principle is: @@ -312,18 +312,18 @@ Some included are: - [`react-router`](https://codesandbox.io/s/github/kentcdodds/react-testing-library-examples/tree/master/?fontsize=14&module=%2Fsrc%2F__tests__%2Freact-router.js&previewwindow=tests) - [`react-context`](https://codesandbox.io/s/github/kentcdodds/react-testing-library-examples/tree/master/?fontsize=14&module=%2Fsrc%2F__tests__%2Freact-context.js&previewwindow=tests) -You can also find react-testing-library examples at +You can also find React Testing Library examples at [react-testing-examples.com](https://react-testing-examples.com/jest-rtl/). ## Hooks If you are interested in testing a custom hook, check out -[react-hooks-testing-library][react-hooks-testing-library]. +[React Hooks Testing Library][react-hooks-testing-library]. > NOTE it is not recommended to test single-use custom hooks in isolation from > the components where it's being used. It's better to test the component that's -> using the hook rather than the hook itself. The react-hooks-testing-library is -> intended to be used for reusable hooks/libraries. +> using the hook rather than the hook itself. The `React Hooks Testing Library` +> is intended to be used for reusable hooks/libraries. ## Guiding Principles @@ -351,7 +351,7 @@ light-weight, simple, and understandable. ## Docs [**Read The Docs**](https://testing-library.com/react) | -[Edit the docs](https://github.com/alexkrolick/testing-library-docs) +[Edit the docs](https://github.com/testing-library/testing-library-docs) ## Issues @@ -556,6 +556,6 @@ Contributions of any kind welcome! [good-first-issue]: https://github.com/testing-library/react-testing-library/issues?utf8=✓&q=is%3Aissue+is%3Aopen+sort%3Areactions-%2B1-desc+label%3A"good+first+issue"+ [reactiflux]: https://www.reactiflux.com/ [stackoverflow]: https://stackoverflow.com/questions/tagged/react-testing-library -[react-hooks-testing-library]: https://github.com/mpeyper/react-hooks-testing-library +[react-hooks-testing-library]: https://github.com/testing-library/react-hooks-testing-library From c4ba755e42938018ec67dbc716037cfafca15e03 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Sat, 17 Aug 2019 14:02:15 -0600 Subject: [PATCH 031/275] docs: add afontcu as a contributor (#458) * docs: update README.md * docs: update .all-contributorsrc --- .all-contributorsrc | 3 ++- README.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 5ae31ec3..71618a32 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -891,7 +891,8 @@ "avatar_url": "https://avatars0.githubusercontent.com/u/9197791?v=4", "profile": "https://afontcu.dev", "contributions": [ - "review" + "review", + "doc" ] }, { diff --git a/README.md b/README.md index 5810a414..57171e77 100644 --- a/README.md +++ b/README.md @@ -505,7 +505,7 @@ Thanks goes to these people ([emoji key][emojis]):react-testing-library
+React Testing Library
![]()
[**Read The Docs**](https://testing-library.com/react) | -[Edit the docs](https://github.com/alexkrolick/testing-library-docs) +[Edit the docs](https://github.com/testing-library/testing-library-docs)
Sebastian Silbermann
👀- From c4e51fbbc8895669a5159e5655b7b6d9bc7f8659 Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds"+
Adrià Fontcuberta
👀
Adrià Fontcuberta
👀 📖
John Reilly
👀
Michaël De Boey
👀From e0ab0a8103407bb846723c3c3ed9c3a1b629dfec Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds"
Tim Yates
👀Date: Tue, 20 Aug 2019 14:08:22 -0600 Subject: [PATCH 032/275] chore: delete funding.yml We don't want people's money. We want their support. https://testing-library.com/support --- .github/FUNDING.yml | 2 -- 1 file changed, 2 deletions(-) delete mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml deleted file mode 100644 index e9dc1c69..00000000 --- a/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -open_collective: testing-library -github: [kentcdodds] From dca5d9a7d744b66e5f937aadb819fc5ceed5c19a Mon Sep 17 00:00:00 2001 From: Noam Gabriel Jacobson Date: Tue, 20 Aug 2019 22:30:38 -0400 Subject: [PATCH 033/275] docs: update README.md (#461) Removing `import '@testing-library/react/cleanup-after-each'; ` due to deprecation. --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 57171e77..1ac6e455 100644 --- a/README.md +++ b/README.md @@ -171,7 +171,6 @@ export default HiddenMessage // __tests__/hidden-message.js // these imports are something you'd normally configure Jest to import for you // automatically. Learn more in the setup docs: https://testing-library.com/docs/react-testing-library/setup#cleanup -import '@testing-library/react/cleanup-after-each' import '@testing-library/jest-dom/extend-expect' // NOTE: jest-dom adds handy assertions to Jest and is recommended, but not required @@ -264,7 +263,6 @@ export default Login // __tests__/login.js // again, these first two imports are something you'd normally handle in // your testing framework configuration rather than importing them in every file. -import '@testing-library/react/cleanup-after-each' import '@testing-library/jest-dom/extend-expect' import React from 'react' import {render, fireEvent} from '@testing-library/react' From 67d943d24aa23850f534a1353bb58354b8fdb510 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2019 20:31:10 -0600 Subject: [PATCH 034/275] docs: add JaysQubeXon as a contributor (#462) * docs: update README.md * docs: update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 71618a32..4d743bae 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -930,6 +930,15 @@ "contributions": [ "code" ] + }, + { + "login": "JaysQubeXon", + "name": "Noam Gabriel Jacobson", + "avatar_url": "https://avatars1.githubusercontent.com/u/18309230?v=4", + "profile": "https://github.com/JaysQubeXon", + "contributions": [ + "doc" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 1ac6e455..cafb1b9f 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ practices. [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] -[](#contributors) +[](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Join the community on Spectrum][spectrum-badge]][spectrum] @@ -508,6 +508,7 @@ Thanks goes to these people ([emoji key][emojis]):
Michaël De Boey
👀
Tim Yates
👀+
Brian Donovan
💻
Noam Gabriel Jacobson
📖Date: Wed, 21 Aug 2019 11:34:58 -0600 Subject: [PATCH 035/275] chore: update all deps --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 56aa7346..7f164c11 100644 --- a/package.json +++ b/package.json @@ -42,13 +42,13 @@ "license": "MIT", "dependencies": { "@babel/runtime": "^7.5.5", - "@testing-library/dom": "^6.0.0", + "@testing-library/dom": "^6.1.0", "@types/testing-library__react": "^9.1.0" }, "devDependencies": { "@reach/router": "^1.2.1", - "@testing-library/jest-dom": "^4.0.0", - "kcd-scripts": "^1.5.2", + "@testing-library/jest-dom": "^4.1.0", + "kcd-scripts": "^1.7.0", "react": "^16.9.0", "react-dom": "^16.9.0" }, From 7a7647f6b31b69b73d1b247d93df76803485ffe1 Mon Sep 17 00:00:00 2001 From: Ronald van der Kooij Date: Sun, 25 Aug 2019 00:21:14 +0200 Subject: [PATCH 036/275] chore: fixed the eslint jest/no-if error by not needing the if statement anymore (#465) --- src/__tests__/rerender.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/src/__tests__/rerender.js b/src/__tests__/rerender.js index ff30ffd5..7cb9156d 100644 --- a/src/__tests__/rerender.js +++ b/src/__tests__/rerender.js @@ -10,23 +10,22 @@ test('rerender will re-render the element', () => { }) test('hydrate will not update props until next render', () => { - const initial = '' + const initialInputElement = document.createElement('input') + const container = document.createElement('div') + container.appendChild(initialInputElement) + document.body.appendChild(container) - const container = document.body.appendChild(document.createElement('div')) - container.innerHTML = initial - const input = container.querySelector('input') const firstValue = 'hello' + initialInputElement.value = firstValue - if (!input) throw new Error('No element') - input.value = firstValue const {rerender} = render( null} />, { container, hydrate: true, }) - const secondValue = 'goodbye' + expect(initialInputElement.value).toBe(firstValue) - expect(input.value).toBe(firstValue) + const secondValue = 'goodbye' rerender( null} />) - expect(input.value).toBe(secondValue) + expect(initialInputElement.value).toBe(secondValue) }) From 8881803ea50f773cf909764299e68f35e22478d1 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Sat, 24 Aug 2019 16:21:45 -0600 Subject: [PATCH 037/275] docs: add rvdkooy as a contributor (#466) * docs: update README.md * docs: update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 4d743bae..08949c27 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -939,6 +939,15 @@ "contributions": [ "doc" ] + }, + { + "login": "rvdkooy", + "name": "Ronald van der Kooij", + "avatar_url": "https://avatars1.githubusercontent.com/u/4119960?v=4", + "profile": "https://github.com/rvdkooy", + "contributions": [ + "test" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index cafb1b9f..8bc8738c 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ practices. [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] -[](#contributors) +[](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Join the community on Spectrum][spectrum-badge]][spectrum] @@ -509,6 +509,7 @@ Thanks goes to these people ([emoji key][emojis]):
Tim Yates
👀
Brian Donovan
💻+
Noam Gabriel Jacobson
📖From 59e20f8dbcb11e09947b55da81056c2f18c470ac Mon Sep 17 00:00:00 2001 From: Aayush Rajvanshi
Ronald van der Kooij
⚠️Date: Tue, 3 Sep 2019 18:26:29 +0530 Subject: [PATCH 038/275] docs: pdate README.md example (#474) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8bc8738c..f1677e32 100644 --- a/README.md +++ b/README.md @@ -251,7 +251,7 @@ function Login() { {state.error ? {state.error.message}: null} - {state.success ? ( + {state.resolved ? (Congrats! You're signed in!) : null} From 7db67b38188fcbc33e05b73d85c1c3654200d496 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2019 06:57:09 -0600 Subject: [PATCH 039/275] docs: add aayushrajvanshi as a contributor (#475) * docs: update README.md * docs: update .all-contributorsrc --- .all-contributorsrc | 9 +++++++++ README.md | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 08949c27..1ff0fd54 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -948,6 +948,15 @@ "contributions": [ "test" ] + }, + { + "login": "aayushrajvanshi", + "name": "Aayush Rajvanshi", + "avatar_url": "https://avatars0.githubusercontent.com/u/14968551?v=4", + "profile": "https://github.com/aayushrajvanshi", + "contributions": [ + "doc" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index f1677e32..75e81f0d 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ practices. [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] -[](#contributors) +[](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Join the community on Spectrum][spectrum-badge]][spectrum] @@ -511,6 +511,9 @@ Thanks goes to these people ([emoji key][emojis]):
Noam Gabriel Jacobson
📖+
Ronald van der Kooij
⚠️+ From 139df628291511a9ce0c3a559c2c245f7ce64747 Mon Sep 17 00:00:00 2001 From: Ronald van der Kooij+
Aayush Rajvanshi
📖Date: Tue, 3 Sep 2019 23:39:31 +0200 Subject: [PATCH 040/275] fix: console.error doesn't have to be a string in act.compat.js (#476) * checking the type of args in act-compat before doing an indexOf * removed unused code * noop scenario for console.error was not tested in act-compat --- src/__tests__/old-act.js | 41 ++++++++++++++++++++++++++++++++++++++++ src/act-compat.js | 3 +++ 2 files changed, 44 insertions(+) diff --git a/src/__tests__/old-act.js b/src/__tests__/old-act.js index fcd531b4..b3de9377 100644 --- a/src/__tests__/old-act.js +++ b/src/__tests__/old-act.js @@ -98,4 +98,45 @@ test('async act recovers from sync errors', async () => { `) }) +test('async act can handle any sort of console.error', async () => { + await asyncAct(async () => { + console.error({error: 'some error'}) + await null + }) + + expect(console.error).toHaveBeenCalledTimes(2) + expect(console.error.mock.calls).toMatchInlineSnapshot(` + Array [ + Array [ + Object { + "error": "some error", + }, + ], + Array [ + "It looks like you're using a version of react-dom that supports the \\"act\\" function, but not an awaitable version of \\"act\\" which you will need. Please upgrade to at least react-dom@16.9.0 to remove this warning.", + ], + ] + `) +}) + +test('async act should not show an error when ReactTestUtils.act returns something', async () => { + jest.resetModules() + jest.mock('react-dom/test-utils', () => ({ + act: () => { + return new Promise(resolve => { + console.error( + 'Warning: The callback passed to ReactTestUtils.act(...) function must not return anything', + ) + resolve() + }) + }, + })) + asyncAct = require('../act-compat').asyncAct + await asyncAct(async () => { + await null + }) + + expect(console.error).toHaveBeenCalledTimes(0) +}) + /* eslint no-console:0 */ diff --git a/src/act-compat.js b/src/act-compat.js index dd5f1d96..d758a97c 100644 --- a/src/act-compat.js +++ b/src/act-compat.js @@ -28,7 +28,9 @@ function asyncAct(cb) { console.error = function error(...args) { /* if console.error fired *with that specific message* */ /* istanbul ignore next */ + const firstArgIsString = typeof args[0] === 'string' if ( + firstArgIsString && args[0].indexOf( 'Warning: Do not await the result of calling ReactTestUtils.act', ) === 0 @@ -36,6 +38,7 @@ function asyncAct(cb) { // v16.8.6 isAsyncActSupported = false } else if ( + firstArgIsString && args[0].indexOf( 'Warning: The callback passed to ReactTestUtils.act(...) function must not return anything', ) === 0 From fa9260e43c06fd311d3af5d1e0d0a42862ea870f Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2019 15:40:31 -0600 Subject: [PATCH 041/275] docs: add rvdkooy as a contributor (#477) * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: null <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 3 ++- README.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 1ff0fd54..d3c5da47 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -946,7 +946,8 @@ "avatar_url": "https://avatars1.githubusercontent.com/u/4119960?v=4", "profile": "https://github.com/rvdkooy", "contributions": [ - "test" + "test", + "code" ] }, { diff --git a/README.md b/README.md index 75e81f0d..1c7493fc 100644 --- a/README.md +++ b/README.md @@ -509,7 +509,7 @@ Thanks goes to these people ([emoji key][emojis]):
Tim Yates
👀
Brian Donovan
💻-
Noam Gabriel Jacobson
📖+
Ronald van der Kooij
⚠️
Ronald van der Kooij
⚠️ 💻From 8feb318b68d778c7fdd07337b66bf34e8e201f2b Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2019 15:40:58 -0600 Subject: [PATCH 042/275] docs: add ely-alamillo as a contributor (#478) * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: null <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 10 ++++++++++ README.md | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index d3c5da47..d37c915b 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -958,6 +958,16 @@ "contributions": [ "doc" ] + }, + { + "login": "ely-alamillo", + "name": "Ely Alamillo", + "avatar_url": "https://avatars2.githubusercontent.com/u/24350492?v=4", + "profile": "https://elyalamillo.com", + "contributions": [ + "code", + "test" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 1c7493fc..20b3a962 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ practices. [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] -[](#contributors) +[](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Join the community on Spectrum][spectrum-badge]][spectrum] @@ -513,6 +513,7 @@ Thanks goes to these people ([emoji key][emojis]):
Aayush Rajvanshi
📖From a67553521808a884b869d461d56a38048ef63c30 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 20 Sep 2019 09:45:06 -0600 Subject: [PATCH 043/275] docs: add nickmccurdy as a contributor (#485) * docs: update README.md * docs: update .all-contributorsrc Co-authored-by: null <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 3 ++- README.md | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index d37c915b..a337c335 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -873,7 +873,8 @@ "avatar_url": "https://avatars0.githubusercontent.com/u/927220?v=4", "profile": "https://nickmccurdy.com/", "contributions": [ - "review" + "review", + "question" ] }, { diff --git a/README.md b/README.md index 20b3a962..1e9754c5 100644 --- a/README.md +++ b/README.md @@ -499,7 +499,7 @@ Thanks goes to these people ([emoji key][emojis]): +
Aayush Rajvanshi
📖
Ely Alamillo
💻 ⚠️
James George
📖
João Fernandes
📖-
Alejandro Perea
👀+
Nick McCurdy
👀
Nick McCurdy
👀 💬
Sebastian Silbermann
👀From d0149e8ae498bdc02ee88d86546d76d6b7772ba1 Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds" Date: Mon, 23 Sep 2019 12:05:19 -0600 Subject: [PATCH 044/275] chore: upgrade deps --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 7f164c11..d393710f 100644 --- a/package.json +++ b/package.json @@ -41,8 +41,8 @@ "author": "Kent C. Dodds (http://kentcdodds.com/)", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.5.5", - "@testing-library/dom": "^6.1.0", + "@babel/runtime": "^7.6.0", + "@testing-library/dom": "^6.3.0", "@types/testing-library__react": "^9.1.0" }, "devDependencies": { From 594f85801e817e446f732511de6a804a6f9cf9b6 Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds" Date: Thu, 26 Sep 2019 17:02:57 -0600 Subject: [PATCH 045/275] feat: add pure bundle build (#489) Closes #486 --- package.json | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d393710f..53a43cb5 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,11 @@ "node": ">=8" }, "scripts": { - "build": "kcd-scripts build && kcd-scripts build --bundle --no-clean", + "prebuild": "rimraf dist", + "build": "npm-run-all --parallel build:main build:bundle:main build:bundle:pure", + "build:main": "kcd-scripts build --no-clean", + "build:bundle:main": "kcd-scripts build --bundle --no-clean", + "build:bundle:pure": "cross-env BUILD_FILENAME_SUFFIX=.pure BUILD_INPUT=src/pure.js kcd-scripts build --bundle --no-clean", "lint": "kcd-scripts lint", "test": "kcd-scripts test", "test:update": "npm test -- --updateSnapshot --coverage", @@ -48,9 +52,12 @@ "devDependencies": { "@reach/router": "^1.2.1", "@testing-library/jest-dom": "^4.1.0", + "cross-env": "^6.0.0", "kcd-scripts": "^1.7.0", + "npm-run-all": "^4.1.5", "react": "^16.9.0", - "react-dom": "^16.9.0" + "react-dom": "^16.9.0", + "rimraf": "^3.0.0" }, "peerDependencies": { "react": "*", From f2805d47bf2a9d5490dcbc0dd5b934d67d1e48a4 Mon Sep 17 00:00:00 2001 From: Daniel Afonso <35337607+danieljcafonso@users.noreply.github.com> Date: Thu, 3 Oct 2019 20:16:53 +0100 Subject: [PATCH 046/275] feat(debug): allow debugging an array of containers (#495) --- src/__tests__/debug.js | 17 +++++++++++++++++ src/pure.js | 8 ++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/__tests__/debug.js b/src/__tests__/debug.js index 4cab1ea9..ad3b8591 100644 --- a/src/__tests__/debug.js +++ b/src/__tests__/debug.js @@ -19,4 +19,21 @@ test('debug pretty prints the container', () => { ) }) +test('debug pretty prints multiple containers', () => { + const HelloWorld = () => ( + <> + Hello World
+Hello World
+ > + ) + const {getAllByTestId, debug} = render() + const multipleElements = getAllByTestId('testId') + debug(multipleElements) + + expect(console.log).toHaveBeenCalledTimes(2) + expect(console.log).toHaveBeenCalledWith( + expect.stringContaining('Hello World'), + ) +}) + /* eslint no-console:0 */ diff --git a/src/pure.js b/src/pure.js index 4565074b..1b1838bf 100644 --- a/src/pure.js +++ b/src/pure.js @@ -60,8 +60,12 @@ function render( return { container, baseElement, - // eslint-disable-next-line no-console - debug: (el = baseElement) => console.log(prettyDOM(el)), + debug: (el = baseElement) => + Array.isArray(el) + ? // eslint-disable-next-line no-console + el.forEach(e => console.log(prettyDOM(e))) + : // eslint-disable-next-line no-console, + console.log(prettyDOM(el)), unmount: () => ReactDOM.unmountComponentAtNode(container), rerender: rerenderUi => { render(wrapUiIfNeeded(rerenderUi), {container, baseElement}) From 89d11b08c61f3cf5af770c61a03d564b3fdc301c Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Thu, 3 Oct 2019 13:17:37 -0600 Subject: [PATCH 047/275] docs: add danieljcafonso as a contributor (#496) * docs: update README.md * docs: update .all-contributorsrc --- .all-contributorsrc | 10 ++++++++++ README.md | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index a337c335..28b9d4e8 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -969,6 +969,16 @@ "code", "test" ] + }, + { + "login": "danieljcafonso", + "name": "Daniel Afonso", + "avatar_url": "https://avatars3.githubusercontent.com/u/35337607?v=4", + "profile": "https://github.com/danieljcafonso", + "contributions": [ + "code", + "test" + ] } ], "contributorsPerLine": 7, diff --git a/README.md b/README.md index 1e9754c5..b2b0ae2d 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ practices. [![version][version-badge]][package] [![downloads][downloads-badge]][npmtrends] [![MIT License][license-badge]][license] -[](#contributors) +[](#contributors) [![PRs Welcome][prs-badge]][prs] [![Code of Conduct][coc-badge]][coc] [![Join the community on Spectrum][spectrum-badge]][spectrum] @@ -514,6 +514,7 @@ Thanks goes to these people ([emoji key][emojis]): From 10a515e6aa46f4c0546dffada488d89105f531d5 Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds"
Aayush Rajvanshi
📖+
Ely Alamillo
💻 ⚠️
Daniel Afonso
💻 ⚠️Date: Wed, 23 Oct 2019 11:08:51 -0600 Subject: [PATCH 048/275] chore(ci): add cron job install script for smoke testing next (#505) https://reactjs.org/blog/2019/10/22/react-release-channels.html#using-the-next-channel-for-integration-testing --- .travis.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ed2d9bca..2195419d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,12 @@ node_js: - '8' - '10' - '12' -install: npm install +install: + - npm install + # as requested by the React team :) + # https://reactjs.org/blog/2019/10/22/react-release-channels.html#using-the-next-channel-for-integration-testing + - if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then npm install react@next + react-dom@next; fi script: npm run validate after_success: kcd-scripts travis-after-success branches: From 646f8c05d65d45636ec6e23e0d189ea9998f0777 Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds" Date: Wed, 23 Oct 2019 11:09:51 -0600 Subject: [PATCH 049/275] chore(ci): make install script be on one line --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2195419d..66796ac9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,8 +13,7 @@ install: - npm install # as requested by the React team :) # https://reactjs.org/blog/2019/10/22/react-release-channels.html#using-the-next-channel-for-integration-testing - - if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then npm install react@next - react-dom@next; fi + - if [ "$TRAVIS_EVENT_TYPE" = "cron" ]; then npm install react@next react-dom@next; fi script: npm run validate after_success: kcd-scripts travis-after-success branches: From 4ba3617f0de0255f155c3da5902046e10b670a5e Mon Sep 17 00:00:00 2001 From: "Kent C. Dodds" Date: Wed, 23 Oct 2019 11:30:15 -0600 Subject: [PATCH 050/275] chore: run prettier --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b2b0ae2d..6aff8b27 100644 --- a/README.md +++ b/README.md @@ -315,8 +315,8 @@ You can also find React Testing Library examples at ## Hooks -If you are interested in testing a custom hook, check out -[React Hooks Testing Library][react-hooks-testing-library]. +If you are interested in testing a custom hook, check out [React Hooks Testing +Library][react-hooks-testing-library]. > NOTE it is not recommended to test single-use custom hooks in isolation from > the components where it's being used. It's better to test the component that's From 991dbfac94ad8612b335386212440a4160a33a56 Mon Sep 17 00:00:00 2001 From: "imgbot[bot]" <31301654+imgbot[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2019 15:28:34 -0600 Subject: [PATCH 051/275] chore: [ImgBot] Optimize images (#512) /other/testingjavascript.jpg -- 228.22kb -> 196.34kb (13.97%) Signed-off-by: ImgBotApp Co-authored-by: Imgbot --- other/testingjavascript.jpg | Bin 233694 -> 201050 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/other/testingjavascript.jpg b/other/testingjavascript.jpg index 737ed4e2687cb433cebc1c889d4c191ef9fd6e47..e59e5ed9dd8036c2e2f5828ebe8ad1f3d52ce4a2 100644 GIT binary patch literal 201050 zcmdqJ1yq&K);N3+Q2`a{25D*O27^xN?v6vlp;46Xjzf3n;n1LTBi$g~AYB6ggNncV z-uJHG|K9gq>s#OV4QoBKpV>2e_Uzd;a~{2!xcLTnCN3-{41j|J07PMbfSUz?ijb43 z5da`11)u={0FMCo;Lrf@FbEFz2k d?pjmOP2 z;4O^9|6REy^1q`18-3FZKz(#C^L{Bj94g=*DjYm2+)XQh=vFWf;9-wH jALZAfDeEy#e zmDBnE@ubgwaDyDyP*UoplZg%flFz+J0HzM?^?qhp=TjlWTLeEA(Y}Z2a~On(I3fKW zRs%5Vy=7q)GOklYRPy)RmcI&yXWJEumAJ6g0PO+C>xDtwD&CIaHh~Kns-)CEz2L;& zBbCD5;FaCCG6 5OuGWp8)T0A~ z0mG{an-8U2rN#`QBP M+H#FPA^GbLII@3BVpmk^sf`w=d4Y^HTMzP`CXgz4hW; zi12`2e~N?hurTtu$`N&=n`0Y)QRZq2oB9THW^7^&@nB(HexxJClfomKLp5RocZ$V4 zYV_+kvC|}_^Uz%F1x}mW{t}rm_m*nQOK0f{p0S-V>(fHZDtgF={KmNN^Ie`91EZly z!vkYe#y0@mp_BXzoiA=kJ9rMG8XYS<-aTfUM8=?D8!li`<9=1p*eGSdagW0!{n`MK zk3_dA(S4-*THb}0du&fzl+$Vr+ku^@dHQ3YSqx6r5bx%0_BY#UWfwAMT>5N!#V$*` zIlT_ixnv3Fh g>cFdt|s#a%QbJhS#=n(ow zrDV*FchE9>jzyijMkcaJBqfuM<1nx`Ikr@5Psz>yLgPx%`Sh@+wyvYg;`0ibteUw| z;oO*n!!xw~=?%LR!d3e{UWW^}D^{IGZ%5@(ffP^bWN$u{MJSwOfSEe o8jx%r-z=#{SBTq*T(pDyuND B~Qm91sm{Bc6YQ4K*Js?d#STgN7Mlqa^o5StNEnX_?7O| z3r+EwM^o44=AreLq4bq}>2)4`7RxLA(pN+tVWso^{F?^GTy@8Zm^<2v*B}{Aa2|+e z2CBZL++Y_NbzVCwRbm7!a~*d-XUqYz)mDNi`?NS5BIZ0#lt(#W0&Tn#sL?Nh!i`JF z3LqRE-T*QWs65sZ?gxH8emQ;?dm%t`11J_iXqQ<@nck(^5FiwB(;l4J8|5dx^td`V z#_PlU-Xy_%Y@^U5vveofJI@Zl`?9C;d5z;D;w1`1FI03Q6tOEo8tXWSXbZQd+fF-b zsd7m}bIJ0&DE|s`D#X>SL&)(wVWMP+o<5$e?;~OQs*?Se{JPmLv#BCSP|&9ggG73Z zBD|78?6ClDb&UaYU6avWzZoTU5MJw`x-4y#l7VeP*ch?XCcA#K<%%&bw{X3yu*zZL z*%Eixo<{Qu$52IHFxw=9tF!MB*LI|LZE)%uxKg#;F<93mxM&U9P^WBmzT@vs26riJ zVw*U#!kSnKOs|*9G_GW$cRwi}W0_XqrY+-V@3?F&?c0@uE%-U_j>2BwC8o@nlPsPy z9Q6Umg6H?Wqik7E6%XuC&wk<($p%T~j? _eN^~d+! zHB`oga^e>l6yaucyQ3`DJKeRzYG;=t>UCty@~091& iN}p^(k^7k?-;rBZ_mH4 z`*grU@81=~oC;r9XaPJgHO*)wTQ4B4Iq#gUSvYhk6&N5c9BjfoiXNDAtGvAS{*gX^ zZFf8-@x5u-`6&Cfr_i;ClDnrDwN>~jr_!;9R}}%CQBYAU)OAHszVo9b z7wh~p;7&S!8vX`&D4XTpE3sV}`>H3NH`;m78aXeiqVRF_;?HpNbKoCO_%~$kP;j3Q z`nITD0YS9L#WD(u-Lzn!mO4*)-5nlqr$T=k{tkFTv}b-QYD?)29Mm{+qn?v_+sM2y z`rjAI9jv%sJZAS>5nhKQyoacpv#=z-|4kh2K(H!!; I2djZCNcTQfFV^5(d6zkMh4N^m~_@krBu|Q z9rlN8UeLCfPpkf!`VWA1sB|%vI3fPBJA{7Vn-&d^OzI!p-8PfRP&UR2s3lvy{&=M? zcCjVbV$8KlqyjfZC$uz}Oq8tJ@YGdiz?3V{UGE)mk9FJAyD%xE@4$nn^bqHmJ^OD?I@ilJ=$^WJH( zyo$m@{{|eJF?Nw=2e|yY)-LxH IUe`_b#-n!RpAVcg^3<>k^t|5`A#%fhA(ySDw? z!F2E3g~2#mQTd`GkN>=*gaaP#qy&oN?t%KiYWGFN;oget;M!(I|HcaA;M&I0Kx2f% z*raBd#;THWD0TlX%km9iFsBfO``cg4-9acm2~}*9dD=aLo*{)KbG8qMH@;uoA^(y; zadHY@&{}xB#+u?3>F#KS+sT-8z}%EH)Lz+Rq9hxrcy#D>@qAq4dWpG4S4L${OX3N- zdEx8WnH*df;RP1;-jEARPkP9Cc9mlhcnxZIkl>;PIvL9GQMOCc0foxVx&J6};k{CF zp5@KF;5{t}xd<6m>&Etoq-D7bT0@~e7+#mRR?Qyk(RDN08GCid;9U(TBcbFn1sMyC zmKqG7Q8zh^?TDb;<&hQ{4StJ9rX!hi6Y)p=aC!mhOcf>|w6qz9K GN}=tr(4RV}f%J69)IYFIwVkJ3Ud{qx@tr{>Im|*TP7FJ^+6rK8HtLy% z+FWf6;n6c|=q^HEaviYmQC53bLEbU9X@w{80&TwCv3OVC>(ngnlXBjWWp^j*PTnlv zXf3y6VYMkQp>Y&U>R<^!x|2TjOE{&wLI0N;o`AcOqRdxw25|p1XSDgCroFU<_ouBu zUfvVeB`N8p(rx~fSHEcd2UPKPh6YcTBi=oGPohVX_Q z1F#pNsp3eR;`PI)+ckpBQ9b90)CEF_i0t+4D4nD!c^Pl*ikC)S#&eoG! z5Nm#7y}@$_sqfo~i<8`K`F4?&uR|eo(O}L~%eL_igK(F#^*tHhkIF9;nw6fXJ0d2# zqv$6e#vlD6bti%cWjy2BnoB0CJ4QQrZlfASYn;PQeNW}1>(>nG=`*G5b13QxV@BKk zrk*-~DK0B1-iOegbgHp2X4BJW7;){qRb!3JuWRdaPq0qp+`@|J85DYAAV-0iNy)Y{ z$3B@bMzkM6uxh5KEjrccsv}}@xDN$?>;Xo8Pa-!jJixE(av8#69$W>xGh0Tk2R=E< z$%hK>*YZN4j%Makj`Ynon>z+3#XoH3c{n>qv=SC>04lQ&B=m@tc(myIGMvuob2XW2 zHK60;W^)Ps1_wX=-o4Q&-b!`FrhWbp(DJ2xDC0QT`8snPYh%@{kIN=rE|P%_Y?FD& zM=Qf;?KY)R_`{MRg?rU($>wwod@)lLI=Ebx9An{nw7)oB^U-*&Dy3phdib9 zA8XT+iXJkYU$@ZZE@e_Y=%lXVzE#1G^_gL`-acU$7q{PZ!yH}6F*JFKcU-D<1)AWX z{FR7ygV7MQ5HM$Rsys}IeExM-M#_m%zIj%n|76nuf$~G#HV1Xg)a4F=B-##sQx{Nq zqsUx!;F<-Tn4J_G?Fl>5)L*U}8?sz}nwFs3nQrScbzZ%6;9!iIm>*)h0gSPzCw|K@ zsXtO?;*#yQv}dErZuI^>=O!M^zFEXZYiLqjzyZzEl@w3)?(`{P70GhLF8rll=AO+L zN%(F#^P=unXd;_u bxt?*k5H zYm?e^ky$`lz1Rom>+)7y#`3lLBPA)G3|ihiq3=B0FF!0V4dxUOb6>kT4#N)a7C@X? z$D;!k=b>q-CL<`VeX!kW(9{a=HPwC)O9LMNJepE==b^3((zFKI`h&-biY~B z4JEtFpzalKK7Gr{oL-{~BM#~#gphAPEoeyEZ|Ef8I0bbK03Zn2BFi>{`WFqWN@h(P zzlbw=twd1?DX&nF-8$?~KHT_iba%-r8((_u)gHdofJMgYSc%glF(T|9WFiM~JjH3M z*xV$;kh;rCgs@UQoxLpC;dqMea*iFGJW1VG!oOd=4LzKPHhyAK7jfANub<{v&@I*) zl#o;oXKx&Y^qzc`?mi*S@t=cAn7S(J_jMVT;`t4$km>)R62_ zsQrqwB!fP>!ZCP!r82!j5sx;}&Dh*|Cp9T*Vh`C^ggP@AekTir9I9GE)3a*_(7OSM zPPMz<-iVACLiK)`8o;@AT+`+_q+*f#GXOq(*1#d#%)d%-NS>Bwq1%YyW2OYHsiDzR zqH5laS_j+TG44(`etDwb&wE2^yo (B}s5>SwdF(6ppp zUEx_sDFCnxQYB r61cYK@n(!t+CvOFgC?XcqmeY<3luRn+U`w9Izui0J} z3&Zc_Ov9FA0^3z}N=HG$NWPcenG$-2QIJ~vtJcXB+|}PX)E{5}4_yCC5Shg|oNr{4 zd%$lC0C*~5kzvImC}o*2$r2@% UW^t|+T?dR2JaPDb~ibOs?AqE9UBv488~ z=!!C6$8l=sejD2`0KC!#ZORPgis1X_kCuLVDJ*EO!Um>28A+VmG61mnI=mfRscg$- z@fTBHl0%tYsYe`sYA><$hOnAZB)UX4REh%K*h1zWRv8>RT~=1uz>hs4r!~m$;COfU z4gdI}y_i+`YclP`mf+U{Qj-l>>d^siyU3g@5d2zKnL^zd4D wW&U*az8l?Vljyxm)~Xg|KVur1Bt0?sOzPs4n)|#IC@Sy$W5$NM z%Td6i#3_6^&wmd4qc1qdV{A6*b*uxxHycGIb#7-nnNJjt(tNHBPlrLc^ttYAm8UK* zTY%)7h2`o(0~V)C{N@~T3(Xy~^^YA7y&J(HJr;~x_#b<$*y=V)iCBU`R`L|}yF1y_ zhw9dog{ HZ*0>Ng&y*yxG~OJ`xThF+!AXrx%R^Ai}Q~MNk?N{b1yj{ zE?h0{DkjA@0H*oglM5g=U#Vvi=se`wxN6v>X6FN80Zb4@KB h<>vcj47BB;{K9-=eAMDa#(3wuCoYT$Q1cX#oF6FS8D5E}cm0u~?4 z3p43jwZdx&pcl@I(=w`B4#zC%)W}TOnU=ovl`Pp+&`AFz^TuA#kVpP9Ax`CBy#_3g z3b;UT^W;#^tLB9s$~1ysE^vZIH?{_vQlub#{PNJ=F(T;(JRm&pri_$3scuuk)zL%> zV%uEshJF>e?+*;kgN#$w^cg-T-@?4l6q{-FkmBfLagAo5rD4O5m_ypeWZ&=e{i~Z7 z24Ae$rwgLpMkv6f0~UrG_@DZ$n0Yp;=*BvWEx?)Yf64@fVmgDkNGs!)PbJJ$T-9e{ zDu)TBGlJB>zV*$R;V}f7%jqK4-0vaZ`^y{LX$PPb6u_XW-EYuNaU577WR9-Vg5x5r zbQn+V@2&s9@pPp|Aq4a^ROB-R%CEhKsnU_!<6MIMfrn3Z*-CF z&M9V>2)dQ@X;uDDUTU9)HDULBvUZ8?^=9Z&j#bH%Lj4|C34`))SgS`9-)`W-3w8Ln zOSFk0YLqiX>M&vkD>-hLuCY()6BqY1+6i{Y!7g$W_3Je_l~LI=er-L4NN~!V@=p$g z#;p#pmG6)OnNIwpvO$t7=r1Cd2Q&oPj2_T4q$A oU7 zDL1Lk;#Z8 ru+0T{34n zP@>Vp3!=Jk@#*L!FWm;FfB1Rm? H$ZxZRMd`Q#L4%BJ{XJCjH_jOw zZG5sOW~mE b= zMWb(cm}|MgWz1={ZSMQOn|Pd9ImzATALb=I@QacPuQ0h(Zj`0omLYeOx!*E~{M0X~ zXUR&EGwFAPzB5WT!g(n6)adxYmF0+=KyKDjcHV_S^FZN`-NxBSerIJDjherk{XzT@ zYfd`J;2$Z&*UF;#moqVqha6C9`ma0#Tl;V1;}N1_vqx^(4J04_Qt~?`DL>@K9L@+5 z7IJHvHFN~l=gq5}bon$%eUGKJ)LKswn>?Fee@{=CzNln^7+8V^yKc}2qRZ`$y=w1i z9cdZ~1AL_a(bnsq h?3p3tPUgg*Sp z$zISc(B !@Q*F6wOn~|K0VSbBg4|6zsZa}GZ=PMhY#FZWs z)?7TLQLRHW+*Jbfd$Zz)V-7cfsVdTnM1macr1a4#>O7+q-0lR?ua4a-RTND01#3_i z`=IzW*5$J1{lFwL{Y0uKF4^8&>ED&i&i-iuC@hyM98SI>;@rOu2Y{!Opq|D~NPDlK z>MYAtvgmS@jN-fR8-8(Z4I&E$AdZ(m3H;tzxWelOHs|pi90QL2D qThop vmewgI=; rWhhh0BLYplk^m4h_#YGN9deJTt~u*(Au{`|o7YeVj}9-Evx!C;isMVs3+ zUb26Xvm9vP9&Wp$%WM9uG 0OyCD1h~R7v+eup;c%hZ z*jJ%AZ~7gJW$gQ=2cbKm(-cd@KkfamIq#k=Pj@7MKVOKYdq{O(!loVS`jnp4Z^*#( z?D$ngcNUvOexnAs=rAegzf25ZLbjsEbB#Cm+mbfg^K&^ca8%#Z?%Io2b-APcuWHVO z;E9%opBVU!NrnUNjWpI;epwdYm7{O=qYwOna@|>jEK|al^^oOX$=IDY1e~ezk3bOX z-Zk *}10#S$g4pyI1$s(g7s>U`WVYwzK zisY5>{bcjsO?hDMnhigl##Fn2mip(G5%hP(6_8Pqtza^o+eQ$ReEw$hDIE(f+;F{@ zfn|LS|Gy~kzhL&iG$9EdszRB(_AvtTjaIuG }Hp+ zWsI-Abl#cuRed8IwkK%v!`|l=#;oySCf*Ce~ z-5m `PZMg`CLd$`s{&Cy!D@^;A)g@|9y~_hwlT7{Q2l0iZPjznT z{=1t306ey?H)E_fcP*4VgpGp_@7#?V+gQn_CWtvJL8#NKscgR#@9rhC!+lgy`uo!4 z-<1}Ojn@)N4F$PHn3V^xuWZP|`(-0SAtz*BqmPwMRQDh=TjOFoT!|qf&u@7K+&QbC zFMt1lladhQrp+Td{sy~8vVBMfHQr>|imqCS7#Am&$@%S+6)KQO};NRNJfkiUN` z0{95WhIUX}% -^<7U_<|1yM}dz3!FSTk3D(W6P+#l0Ki4iZ<~NA zIc3OFnL;eR!o9ZlD<_0?{129T@0AIdvFH;q)A5nW^pD3CO442gTU@AeL6mkZu98!@ zrUyi`=lc%Zfx8}7WH0_FT+7)W%0ii31{y&b4xR#+Q^TF}m~KO%%3U9(15>0~`ay-v zM|E>r;Qg3G0SQVHcTnJ`dCet-%A_m(pu-h`SFrWmmj6IbrV^57p|xuMcsh!kf=dI_ znr=6MDwVUwV3CiKR?^HV>I0dLAG ?f<|$LSjQ{ z>&!XDp0zeSBj*~i;Y=#u{^Ztsu$in#k!_S52X 9e{sdeYj kY(Y-h`FmWTi2|Y($&u-{s|SiQv;Xo?>KVnju1 5NB#HY{$SZS(pj6*No2n|kbU?J zJIoV=X1Yfs> Q zt`)jzT;_4QgoLO`;Rb){-R1#2VV`7kJcF6oeYkt@5AQv=_v_2;+fTM(4UaG|Ii8`u zL_^1V&i?A1jx{z82@?w&D<>%#b1Lj>?MJY0x#1A*-2nD+JtUak>GcKjHHEM{`6Kg_ zTZa1MXDkY@SGLaAHl`u+z0a-M#8;3cu@NF)LD9IFVt)4=8dR{s&}G5ioy;3|sQ*Jq zDPY3lTt8OZy&6N5RGAo)zd42)zbzIoAbi?SH_L6~tRauaU|1xBCa9Y6iwDMVJKbAR zh4lFh@@?u>^e^c(uJNVo((J|4ulx-xb`w0sU0jXD-9+**a#9L-`Zi6GDCA=k*CcbQ z6MR#t;|@z0)2M_Qe^{+|A;^}uoEw_XEL*RIYN`_T-T<0%vxVL$(;BeovScxE%J}>G z`#zw<35a5lAiCenDP^1<9*M+0X+s*%Sn6G+?%oubTvt}4SwK9&e P2RH5 zE8`ssjF=f$ZTD<-u(rc$1m>`Eq@7W#Hu``m8oCt4PQYw-(&d{t2@JI()*FEF88BtU zCGzTE1=gd(R1Q7(*)%q$4~`tZt)N6aMJ$GnEpFUF*Q6l0bWK(IENLBj12FGGC)47< zJ^3>1XtJgMjBxGaaHO(N9oTH1sB62BvE3C95P`P`N80y 8P!r}CWgT}H+851@wQ)Co|l6hX6sF&*??)y z{5_NN5KrToGvAFOO$#p1w+(1cj1`Xt$9RG*pSSG?6vmZ$DyW@?DT`Zogg_;r#U~^c z!Wbx&ufAV~7ls#=>!G!JV?Xb5n%$uIswtUdYrr|hc<%&5hm}9i;|e8Yx}-o|ahRFB z$L4kC7YPN8Y|AE-xpw*C#m+K0X$7TGtgEgb(ak5vK+7F%pUEqcJb^ioqzfYiCt-0* zNj K zVsXkUz4&q?lnRGJ%v2hp2Fzn;rxCH5#gh!qBb|J`@*SU=kiz|9O=c9U?Gw45f9q$J zagg57lCsWa6=sVBnodA^BB~=7ZMCcj(D3O}>%|Qq=^*B8bcS3mP6qP !&{9PZ7i5md(nX|CV ztTHoebWyY=*_*vXN#&@?sZ7YQIgRqBm&luU&rRumh?Qg|2cH`;v*0qCdF|RgYRr OZ?6y}r76RE=JfFoIllO9R`?Mp(6qYY=l_1i- zC>u#BG7ioowiHki)~64&p~xMA6p Gh*mpmZvBF`;oi#S)v9j^wd z15di>ErN1dQ>bLskj8vcG~B@K8XuHbJ9(64babV6!32JR^leF?9d;?NfYLb|lEPz& z2#1=gp?5JM9MLD9{BOg@if7~^Ue;a$vE~h1U^`IEu4*6$V^xT-GO8|+ct-BzrPGYu zsR2lGL|1Bd^aGF70yL^;@R)xQ;(%OI{#9>tPWeKf+kJxJx#c!{bkDXjZ;d3xXOVvm zQMu;bp83iA54Gs)fnjcq{lGHgp7&Q!bwl1Kt9g2rPDF@4yS!qG*5xVr4`mh9x2_Hiwsh|@!`tmV1 }8DQfOi zQJT!d6yu?owAH>xwV>=B8#a>A1Dws5e;#(>S|~7noR YzQ2ykLMx7_%EiZ5AiH? zSIuY-jrtffUQXsS=FoX{G92nhu`cS=qM!8UJP?Y+&U8p})+I8jWJjrUS)2Mm0YZAQ zQ zA*IZVyw;<87M-@{x*89Alda5) {7|?7j6YbJGkwsjWztRSiWja(KGU@te{MH) z13<>&%coGWZ1(i`G*21;S(tPdI*ojHH*aD4X8s@xe_3RoN1VHzT$C;Ad3 wv<$O`4Vq?^U~?)mp_jnHgv-U(RvlTi zF@S{FN9LIdbBzjG;x>)PR|3p#iq8dixbRVv#5wjR6Z(g&@Uy6aguTny&CDTL%gZbd z(U~8UkW~s_J3Ity6!ev<%WbzCWAQrK+yJbP#@HA4mxHCsho4><0E-@NBq^bbjeND@ zlgDCXEjo{IU_q!+-8SmM nuQyuM|b*jG=waG5o^wM%$$4ia>$c=}@W6HEUb@nCq>zM0Q|NE^miJ5*SJJ$u_ z`Z}~(YE{&hDxr3FGD_>H7PEF@P$&_v!am;(0I6xVOxu)1GUUyJp_o33k;rJyuQ{>7 zn+P`G=CsatKMwoSW6mra^f>A;=H4<;@aUT$eBI(z$g>q{ycP#m2Z=HXKVHf3{Jhc; zND(`i;L!ujiU~YW4T)k_+l;@?+Pwj66kO*X*a#6At8wiIRhR2@j>va8T;rZ`9Sj|K zmwONleb95*%4;dkd0Lyuy=nbF1S>TuyN^c}#^rrAr3oE49sXYkdJB|frphF1G>fqy zY{<|&G(s*%?TGmSS_LiE=bRRpW1dAwr6_(jL~IL*OBCrz;T`R8*lc|GD27LadZG;P z2mhNhmZyj$U&uMheeZ{Tiy%OI>m_O}_W!-61{Q3CiU+JMxc=Bx^l`!(Du?>-OykS1 z-
_ BR^eqqZAuoc^=-QHsqVKEC%4JfJL2tt z@cyt-n3BHd{CK71@`(g6%R{nV0y|rT$Ld+b=GXE~9=!3PHv5^Sxj@@M^R-J{hmrDe z_BL**HQBJ_&E`Yl^6~!kWc??NI#8Z >;Rbm>*B^Y?Qa!XHv6Uv#=zNHW->a! zV7WqC;LbIp4Ja}liu$4D`Ms3Ce&0qQzKAxA;?Y&V{ue#fkY{#PnteHz@WR$;bn{`V zmW9h%Sob29f`1H{;wrd62GPSQ{5D$cJ|BFzUk-l0`P!bBbmO&`BDi7}GHTZvX?4xk zmKd=rk@%TFX4PDL8S#yPUEIDk55AO!81sx}wSgxZ&WNT~6wZ^6e$q;piRG;&gwMfm ztHU!Segd_+VNw!XC zmU;rI-5|MH&AdTM^UeuDN?WXz)Mv2M#e$Bz^8!~_l}H~{(&Q*wT0j>&(?vp)d`Y^s zFT{>J@R@=6aNA;ZOozd%Q_d>yE}V$|w2-p|6wg$ilcvp8a;@X2){mIn85RlOZUDSn zK!40q)72gi=7Ec9Qhdo+9{7)fhL}Wl6KOzz`;XcBpx4yeCUMG z22sSg80T==OCmO1G$jL#Xzfr<6MK$;*KBUl=H1S=u~DeUn{RA5{An1VK^a?xUXbY^ z%>WCko-bBBHl=Z$;aOA`kx11`dTOw&kbnKv)D55@!Gfa~95({kRtXKvSY>WNeH}PB zU2*`%876;q4E0%LQ&x@`_9uV#!}90GexJ%;J3IH=07p!B7i)&AOTAYOHJ~OnNZ1#_ ze7-p`iHv^~ILi0Acl$A^Hfp>A&~tQZC7_2iDZ0&Y-!Xfv>6w#7iv6O;)b=TmjTSRn z&U&$e`96! Fo-WLxtTV=)Um|wN&PFg z+r0`!pdI#a2$8sx?S(v7%T5FmIwoRNd?{X>@WjkAIf^KCH;$JzBV HpZEq;Ja>gfp@Nz9>Z`#~(*x~OwsgUPCvd1NFw~;? zHHD0K0J;sLuhrWQDT;P4(f@=j8b8=vCjT%ZGAobk{eG-5b2&FrJ`_WgqKB`C491Y$ zt}x2?u7 U&ys S2@SImZy{h*TS{_v}sM9R{k^pw&_!KUxQ z*)enj2`d_JR?NLOCw&!qtQ#aKGV*4){mSGvAJcLHaR?|aa5Ntvgt&y%%k9g1vphNx zeP={KX$QABQg;wQ>z9Y^5mdWnQ8`@3RA5ZnKTBhPOuLC35Iqo+UZts>JZJ(@Uyvv! zI(-4zNPHd5UyGaPr!G3eVFw(WbBz4)de}R%tKkIhU|GSNFz}2_8Ncn2hEw%X1TEgv zv2o-Dp^XEXvWzSDb7Hdms!6SnZ}pyV6Wsvx^2#1WW}+l(BviE1KEa$$+zCxGeUtZM z-{8BRu-( 9pGgLvN@Iy5ZPIc {xaWqLS?UT;+=~JAVQ`qv0 zeLXDCxG>cU p%w8czEekD<;~!fRw+DI4S(bI!MtV8$O<%7bf(sjK=SmSVYnB)m6v2R z1_LNESp5A1=*X2M&Z+wv`n0b~I?%707AP%>IyVJRl-@DeGDi# tTfQuAgpKZ}f$LR1 z1gQkQ`C>}y_}F8Q(1Kg~i`k|ylX)3DPUXpLJ5!fb!2@c|DjnLFY%h>{w@XY4+glp5 zR&ozE(Zk}}KPcl{tVoik<*Rwn>rf-myXYk%sdXDgDSI#bTz$vLEd18=-L@dAM;I0l z&0f@2)H%FwwvA7x7s-T1%-RZb|L_S}2&0Hw@Czq2pF(2szhV@j6Lgwab`7r#iA;K{ zttUL#-Wq(rQVX$kMtm(u0V+^i#U%-GnEj-go4(n {Nn)ZHlYH)8 z)LM2h#iLCE?e#hq7UBQ!7?Z|PT1H4jJl8Q*&z_wGp|^-y#*_d=&7*^9C%GYSMBuLX z+8?Zq*wNqVNDHK?Tkd?KTJ?~yUsyhIN&s6Vp?7;d)IG=EE-~SH=uC?T2@#QIM6$(a z<8h=r0t *Q*~1_@Pe^g3zf`W# zL}Hq6dONgsP=^B-`Xd@58Zbdr7PQ AzoO>dlm@P j$t-Jv!n`atKaF0%`_mwBijI=#I;;NJ)wt8Az#|>6{t;j(k zE_EbV)GDBDBqi7Gut{zm6xg ?zWKzSMc) SjI z2BVnuw3_Cbn7Ss-f^194P`^AX#$zczJqZz6>zCiEldk*S#n$tsDIcR^G{uMd%c9D5 z5q~a|KaM%E<&aA n=^d1vl6pO zU*LeBwdVTeE{A?o$-C%reO&66VK*aIJJ&Q;+2*xvFu70~o-n=b(;#F?`MSX?1WP-& z_8grH*KG3pB8&G*QK&++LL8|E2(15Q2wqJJ-$0RgZZkt1I=RGbegXD2*IL4c-ECaz zXNW#}N^cc`_PEj^?X1|ecv8$b?Mw>wNx3YR0WlR>qfGdVT(SK^={FAskB8pLGvNw9 zDodB_L0$^quqR~2gc6Te6t&q21t!s*jO9eA#Wb-JNJ3S#gh-c!)yJK=YO{k&nAJ;1 zNYI)l2WCG8&F%SOFifkNc2wBu+RS|!&z; F0kgpIy3pG$g4*6UjXqQltFt=3||exfdy zmrWs{*%`n`;j1m@^+l&t *vLK=x!*Gfnk}$R96&X29^$%C7HCT0nzyp@ z;57A4$0gg833d1W6w|@^J|068#mi~jX_+y*=5%ShTpq2R9Zlm!v8bgMCNPxF77ThR zg-0XUs0yWR)@74rGe{^ew?(t1-A`Vi{77Cli&P$ AjTl zBl4pGw6s(tR3wcFPnm0saw`y{jxmn)B7My&K{aSyDwD5CX{d<8tmfUTclcP^Hri1M zURb`-HT~=}OCxO*I6#nPswQTY9RY6!uq9 *k& >K mt9Q&TV?sGb!{;mRcGE`DrgtiJF2M?joNjRd&sCMOM zeSWQCF!wtxbL^6Jr1V*QjlkTGdz^$mOTY8nJDGm%!$V{yRc`SZBC9@6`?4^$57(*Y zte2>TgtDP=zRN;qMjZ0NsQ5`;&fJlcQgy{{k^=}0#$iL~&s9~HWI@JtCWAn(6eJWr z4>uOn%IsIX2`iUUmG6p0=-tI(RyC-TniDM4ykITG5#|*`05xut`3(Cqz1`WUWj6mH zyIE6QP_0IMOe7{tk10Tv3q{8uDB_JlM53LVt9DtDjIRN%u*{ZqNIvUT7p|ES8BSJY z*vSLYE^ JGM?%Cj|<)UF&}Z2a2$71+2zm>D8!6+ZXg7gD*EqEJACapL!5T2ReV z-BdHn%C1JO9I3P|U?}$VX2&Ln&6+K=p4mQeSd?9$ws1bm3c@+@?+IpTaneGEX`@y% zNI>|DigcH5m&U0%d%=YC+WG`7;v^jxZSs!M=-e_e=b}OJr17Di`~y?Ki=5QNCMF2w z5b1Smr*x$;vvkX<)s~1oW$~CfitR_c8Xj4VqtHsqW{>Y;F;Q)#+rf59FGdQL6vbKs zdOM%>nTv_+uq%rDuHaojVY>O{wG3V$OgUu<@?;f#&v1)^bk8~r1PJy6X8hT>m-Spa zh?7OBE7yH5GGzranedn`-e-}Qn9G=-aOLbj_Vn?6I@1kYFkxeFcy MlazGgowcp-!4I`%iW_o;)1v`lOy$I2ER%D%eLaa87AJc% zRX6kDr{u^#wD@;O0OdQ-Y@M+!>Q5}w&@9rnB~%tM{GZCuSSnf}=ygkq9L$Y{H4viD z|B&T$%xkPKo=|3~lp)9)Jfyc&cJ5vI9_6RL)xG0w$D^>{okYw$wgO7**G3feg{2kH zl+9y_^}GW{_CcHHK=?lD7yGA>p+oDAczF_>tjiD%$8L4_{UIXA>FaH8*QC?|`=a)z zXX%2ql2#l%5f>&AZk3(HE-f+?4H?eVl&@_*bks%u;|V;;h@$iRvgjoXNkwC~yxisx zg}b^?`k={g{mdOVWJtr7|1KT(#qY4!|B>*E2hF#KS&;d*gpK!$KEJ|GQ|4(bLw#7E z?aLKNu+#Gp?k^&>?v78yEFsB)QB@Hk<8O?!l1arR(~8{v`;5#>RkynlFj`l PKBurH4olewc?Nz9oL1RZ`J?sfL$8y}nyRWJJ#efEb}i@y54V$fED zR^ypz|D}_FTnC|Ek!(jWS8b;x MG7#fvu5RVkxa>7u^WUu<+ zLc1{%D=lu-DB(61c<&x5o`em{whT^b8d Toiz^cLbJXWv#0<*j@|w zN+WsHOgi9&2b$4tPSIlp3L)^C(cDJCnmk2*xty&esO$;q<{b`!c0u;G;J;9W{Vydl z<2-6voh}N>qmXy7R2bu&hK7a#$97Je+qvGj^SXNC?aZWFdSezsy4S5bc;8a~?jKbP zv62}_LkjLLaS6D9U|?VcAR)O$V`3u(o4u>vHkKLN^0kl>>WkQ}p`qRU`tBWU!3QG> z3JPYn!IdOuG-EM?Ep!~=n;Gmime|ry6BHoJ8?@#|W@bgRz_EF&^^G)%ETLme%wv-m zFK(GKgK@>Caa!#<{GA5r{*XVv!6=pV+is`M|HIx}M#a@Mi^8}Q+}&Y-;2J#W;KKl6 zaQ7fV0|XDAAcOnh?hpv>POxABf_n%yKnUcUJnuR0Ip_Ovf8V>-nKcXcp59&EU0q$f ztgE-%Lm4I1YldD&Fb|O}5%IxV$w=>3&5dmA)bzDYv>s`i0aD_tFj#jDIyzzq`65b6 ziby4%US-<76WUp|RR({M_@|Y6tG9vLeRdr5cx1zOy^#0GCw*W<-k@>3#5$Lnr-U_c zhDYyzcjlkoP;vY+9$vkFLXmgZZ=M|qZu0j0gS0zR-*2>ALB_$f 155D_z?&AzZoWWO$>C|3Wb*LT1!XgB4V;s5A~P*+0=fJ`L}5 zlswi6821#vwH9UJy8HU0H1IXpmo>iFL(`ru kP7m{i1<`N;e!(A?+58jf3^51;Y|TAF-` Z@q#gk>P?BpbjQw84pGhSuD;Uq+qSEzn?tPdwybZ7cyJk zOmxaY+$EwwbeG7f2e`M)ldo#KQsVQv8@U%b$!U;RFf}(W_{^VY1dw%l6i9jcc53C3iq-KfiMn!% zsb06C%~RO7p{8ieGp(0#UomcWN;&C7emCS^4Qo1r{ry0PkLCL`WejUx9zGXprzX?0 z--F6@B<3XgrUb_Np7JTyCzh1OG;b?nC(j(l7Huf6GY*tPOXJDCE?t<@nO+Jy@_KcD z^W@vspMt1yvn`ILj7ShGzxRoKW| @mmNkutf5V!IJSLrPE1bws;j#I|@#eM3d zM@~Tec7{+Kkopru?s0%xuw{qFvJYx)+g?Xmbj!Ab=1}22Kt)l|$Iw BQEjEg0;4UX|n_{dW8liK%+*>jhjK_EMV0jNgaU2~9JY zI3Pzwn;BxFH3{CSd<>FT)D2a<$*%JZLS~^gR02l+x$$WO-zz}N*ksl3W~)9w=kdRQ zDV}1i-i9Z$e>5#M7RV;b&s7tS?ZcSRN6yJ0E94yVP@|`g*NG2jL-<5~W5-I^#-_2F z2DOGAF~{L5t75L6mJaZdWTt)fw@`U+Ei5UTb*PEfk^vGhliF}$6v2AOt}fAM^EU4t z{Z!FPGiXf-T2ODK>#79cGA9t&M= p`k#%pMn~a z8;LG{ihSe-uU39!BruMH`qE=MZ2KTh+rATr3%0mzELFkE2F)dGBXiuvx65B3yyOeU zy8BWi8CPTo6_1YsO|Mzgkl72CWZuU;e5!QPlfL}E9mFDvLWW2^&?+h~9Fe!!y_)hs zjjIG(jRk{>W(FqxV;2ybC+?3D=+X+-+{?I|yfO2%BQ`c*MQMZWNIt_d;=NPe3QMK` zYiph~fVEKIM)nQX*h%T`t?&fBYg+aB8lW-v%Up5qjanN=Es-po6!9r9QOUSM*y(>> z(hoV|??2ZXG8DOY^j1V$pWaQ9HL8Vih|jU!RrrX43PaC81zD>xghpHMznePpd?|56 zD5qhmq@)*@<)xDGE92yaQ9uJE*EyJl-EF3GHgD_uB6 y z9qrFDB N*Mr53_m%o5oqL){Jc>_x zZ0Q7&1Wv02K@o3obi9QpR7{lXO%4_7%`UVGMz2Q&CDT0dDq~BP9BsMJFCYNBt)QDu zm7n2}TLHSoVN+UVC%)e_rV|BvL>BiKC|2IRh-!i0*p11Le)8m$ASVcl517DgbAZ>- z`+SuA+t93f4f%S!u@BL?0FHgVCqRM<-P2U}OedgsDwduA*vQ0QrPXSENj`rwKh0^~ zed>RFRl!_Yeq3(%2=LQE(4T|Up>)GJW>>+G#;|7#qu5$(4VHBBLd_>fpm97Xzs?Ym ztW(~wv?6huj%P%O|GZEe2gihWRQm9?kXJz8>qN+KQA@Xmu9@o7W9aEezGX5Sua-Gb zX$!4-$=7w;O%bWUA%N7NA=>kvm%3?dwuG1T=JoT%)TW~b%{49ej+eb(-ixt)y4V@A zKh>HTd1dVU2Z>ikH7UjU=JZu7iY>xCZ*vyiA8+|(-(Ax4ck?|-?O5zS>#uVcvqc}~ z&SY83eKB&og<$t?Xh-^1$4putX=@ARxXmZ4J`JC_*=nPYR?^zbwjzqVR(gTM$=4J9 zxLQW}7$#)pHLVK)@zx(5b|9RPzSlIIJoQHL)_vZ$B1}unk3YDuQ3QmCQ?lH?nb*g~ zDbiF3vVQ1d1lT_9eaK| b1)F_7mI5#BLE)D{7_6WpIYu}1 z^zb?V__ImovB*t}>dEUG!HJKZ1p{Z>e&A`7+cjN?e;m*N_9
mo7QatT=s#)(=M6_h)2wnnMO58 @CRjwh_k%t-EczJAcp zHP4=IUEwWHF1d}lR?w)Z0;;9OjA=OlBvNH`YAq>5)}G%qYc^&+Zu{=e+ZlBxDy|$B z5-);;KzcdA_lfA1a>dXbkg61m{6qb4{tJU)2!mv~b{<>XOd|QFSOzm@yt+kKzB>*= z)d7PIQfU?!2P*NhW3LokZuOHdQv5QVK*S{znXH+r;IXb7py``8gbvMUM^ERf8osjZ zLxLA-ozRFCp3D7Jc9_)_+Qv12&8@ObP3|%cS#|jNL?4Cs-t!HYqdeA1&%H4j;G0EW zE46ZZ?Epw}4N8&N*gQ?4!#e(aWia4(*=6T;R#}hzZSNcB5CfEsmLb@p%#yTEmBxT% z;E+A9bBWq_QpBz{6gg~EIZggHGtr50-{966@I7=&O&F+?zoI})96_+9S~2If @-saxUrdV%v=@b^!Ws%#7&MfpI Ewh~$qB& IeIaSJScpYF>69%^z&8YGUP%Ap+v(axzu8B`|QGR13luhNd9KSzL z=HeF{v0H_>*HUnJs GRc`sG*jLV1hmt^J8#u{ zT$Z?*)i@4y1J%XtFMP%;nG~G>4=_XY_G% BvsRki#hG=A-J3EDOKBzA<_L2pww28FXP}+joaou1EiSWdg(0EG9 zJE(y2#C>lVP2j9SU%=mKvZkDJ)m1)*V~O|TC&K4GHg{#pxkR;zG$nP?&m)O?W(*4% zgLON)!tjt*Vnr=%r(BJYT>40Z4eR}9*Rjb-*Dq_=YNx}X6PXUbvwJiph4e+6pmn?o zmAWFA%|$|T6jM33vhOrC!<-V?NVOVk+s8H9=lYw}M5a+CROd~09mV_D6w8lTleL@g zGu24g)zjKzppm>>;Kc({b+j)v^4OqgEe;XZbF4=7hFb|gBR2`(n)lbKyyPJjqWYlO zT+s sNIqUAblmn;JJt36nE6D=MtROCh-Eb8VKZ!6M!7dlq}Y zqr;x(_r9hFP7OfF(sN)^M#;QPTw3ZZxPa9j)J$nff$0f9fj5DavW6q=D(3~*jE=v? zaF(CPGE_SeXFb9KGg2Sv*SWM0?AO? cE;Ca2#p|Q4^nO-w!U eKK@ da(hmmC@#3Gdopm&&4&3J +|xeKn~Cc)<^DW6I8I%v%DTUoi&K$ya&a5WzqvaB&qq!?mdKIPa%49`yn zl@%(G81alB=^gh=Y#pYtN~t8#(3p8c5hqpHc#}?Ik_ic@s0T=EwclO6)D@=R08nhH ztjJ}YR0C(mu##5cIp&1RgGsYctbZvst&lw*a8=lQ(%+=82Z0K6MYS9=$begHR;gvT ztKN9wM5fdp8!=teq%@>Qq7S@{=gq4;m+Y&% hhx z`PcX9&{^*ZjnAaei6qV{1zeQi%6_R^56;6f`7^Ws5~@BAFw?Lu_|4Sk)M zEAch>42ewArZP?!DcCpvGF->O35%7`1Jf))C79=P-n!(u=^h()wk=dOcVnM*GF9Wv z9vBefuN(?i!x7fXXf{O|^IECHRXkl&YPG*{<^^bGpyo>06a9*0hH^o?mgF9uGLe2` z+vhr@@B^j &8=%l*S{aH_*CFX{Tn-hBzEk<@LUy0jSqOP2>Liw4! z Bh(HqCLLU@Utf-gw09=M)}E zmBxc&3=B>lns~; zm(jFS 4R~Xe>~O z1l5C_&*mx&BU?2loCfbNc^p!?-h5R{XG0Y=sgTP>Le7E~isJ;$T6Wa5#o7TTc)5vV zL7hj@N;sh`XXS>dQS*IqJ73gqFW+8#AG$bXd$^bO`)PG|P5k&fuhUN;@GbVcCv7t+ z%5G`2o?wnTdOUObF!P?2rH>eVALaQr$4*AVDMkv?&v$Qj{uj{y;^_YsIwDe#AEfs5 zuYz5E%eH7Ooq0YhLcGtenx%@+7pY)AA;4I@9HcLSm65C=N*_CLhew=SjD?aMMCXFJ zQyjDcV{U3A8HqH$0QEBT)NCdm(4uuKV+u6YBw)>&S|}~TlsL(rzQ|7LfSYW)Ozjg8 zK|ndRA?E?8jDWHFq@P1IT@pM7RGrF*WCEj}R
2m zW$@wxpSjD+YX>O%gn-#=Q#pjUkaUncx#(6`*=BmqkTGD2?I5z>j_6Jd$C;UBt6b3n zzUzkgl>@fTYM-m^z$?UGvqqtf$f}oMSSn`)$C$pFMDLP@ul_f$8wiO@yG!F_Nin;3 znt=^0Cg$k|8 W!qGi%iUqBAeX7jMi-MjsZGXVTEED7cJm%Gd^hjsOdrL%kzu^O5R|F@4# z+jcia-h6!Kt$`XF&96)LPT(^!* i=P4pp$VLjuGPZar8;Ot&%(#*SODb;H<`u-PY95>f!Nmp7z}};FfwQ5+L`m z&E*o#=EY{520~K=NN~QkusKy;0Tss+xtufYvmJ8 CfT`wYzckU7EO7@ zVuH1_$XRCt;TZ*_FIw)Emd++awKhX!HBO+fC5`}40vP5yHfP=5eZuiAf3d8@ARAeP zxR35qUSwJ@<_ky-@mCcvm&zjH-E?dD?WPdfxF8cyqVZXQ9S90a6}%!14t1iRuUuSD z?Xyb*XFD|4=4n((QV1Zzpk9>_&p$PeOyWNML2BOoS}5vpZs2d!KV^>rgXjY*RFu7j zzSwi)ld7W9rUlFy>_MK#*;MaRg#~^1f^KKTVb38u2GH_qkHNuwH7$uRuX*6o5zLli z*-;&bjLx0^y19gT-T|Vg&C2%X#T*V41|m~ikjc1_Jd zBGM6B#hUjk<_6qImRGXx|MEeW REEf(6w(qLWx%8N3 zMe=>0b>C2=bqyi$y_I)v)YgQJA=E$+#ua!j#zGs~!f^#U;n6bL)hQFxq5FB@C>Ebh z8V4+S#mn8Qs>+aW(tVTHB{He0Hi?p@32=r%Id1VP;y^m7yg-e5#pVjd5~O4pAvR22 zmvt^xGWg9|_wc5M=!5L9S5+3$J+N?ur6(9m^j_rgz@+7ZJFS~()IDNICB~e*+phb0 zPq(rCISXmkufPX~qgAtB gU~% c6B5Iwj&(axV56WWH>E#nW%V z{|@gRVJ@)5#M073YGr6L>L*FGMw8=vW(BvG@{gKn7Q2}+FMFLngw~3>%DA(g!$>W9 zdqccT;AE-8Kk5-;jC{sc@89k9u+lbm8-%8#gaK3%{GueNH#t983RIGU;6cYUpkvzn z@9tdVKZf73Zpg}*YIcWh+)_!<1SK>PSo^)(zE)BMBfhdln*ur$0Zw9Tb~HiEH2XH9 zPmo~u)Yo;k#zY1qvT_wy)Q!hu6-R-ljA@&+#LIk9N}3GvZ(9gDj@RjD5u;PilDkm7 z(sy|mX)uDYPt|uln%N Z&k3D&7A9z29q9M^TVqSh6l_cZp0SD*~`kFqNhVWZT7+HcT>ez z6I$cfb)RGob+|XGE8*-5++}ykq0QHtKNS8Tr6MRCcayW(=ukYBpI+ne=i7VAWdm`$ zQHJ|2DP6(SPB!Z2BaZa5TtHf?v1#r5b|xQZ#Tp?S%`|-BTF9L67Cg*bsCwyb_7~wD zvV|v;-whS;^Yd%usBeP^Low(n=L@cdbVO>-U?i`b&*8L#NX()`HWJy-x{T{@R`g zO3shNOoO3ai3qO%!b~)Ugs=)z{k1KJ7#FRoTj$uI*VDs4@g4;ryI^)zx4lG^uWB+_ z2B3NoIP!+U!9DlpqtxBK@D!Ds05r;f9%idI8-7Z}t-FkB1+1DQ!i^orEj#H~I}ius ztffdS-J4I>AqY)gI4JV8BKWc=kv9aMynOKf0s)gs&6Vxv;oo0#5HlUDZ>)a5xHV}u zS`n-Om*)+;y}`Ja?kO;;eemuGo3P23CCY))!^Q0gGp!R|9vF*x_*S28JhhYSKCw|% z(Q+z(yvj)V#v1z4p>4|Smn{&82}mm%m+|0er%5(kO%e=#yuJzU+t|d{sLDD{dCc9k zA$_di%4~HDL@2Q0s!c1`q3jC2z3Hq@-wEB+JIvwfkulWnqU|Dx>@PB(nM~(QKu_yO zcAJ+0+kcS0Ddc6z{}^ds2wu86(mvhQp6}5(QrqA8`0R78)`vex4u&nFwtBzE)t0Rv znQjpq;0NCkG5iX>JVT`7zojVbl#c3DCqtOMoZoF;$GGRWJik!g{GA19^?iD`N$>+b zQMQh~r@9ItM=P8I6Hm4bS~AgdR)-{g$V_IB{e#q$d$zGp5&-KUGg-5cy?dkbo6lmM zn{+lOTR#tqsj @l^-L&MS#_v_w4C~Y@0sL^KM*<&T+iQ9eW098>~%d&AfyQp#NtQOZDhm= zdZE5-4R#-nhjCG_y}iT>l#i#x?@r!af^pJFt&`#Ryw1Y2=nY5i;r~A3 53xN5`=Vtgf?)*}TZ3M=#W&-P@jYdQzod^}!NMtZs#h^e@fxRa1hN z7d3w08{dzW(>m7D{(@}^j<_^vnY5^73SbEl2Ik%64CFY5g>YeX2%oz>4twgzR_nN> z4?gJ#;)UU%tli`Eiu{6OHV;=r2~J39_AX?hcv*J{?7xh+ve V{BYRKWFekJ|X)h*2(5 zt{?G|%8+|ROVLC-8d=?J(n)wZbxbc1nxtD5i@G>_%Z2cveCfqchRZ!`NAey;tp!R+ znmtuY`44O?p-JvCHPWwAA~%|iA}_HCU+gk9O|4>p7_pezu8?esoDL5QgLUAcWy}SB zP?w&>XYHIn5BO~9r3qex01q$MG@vd+2qS114Kt_lK?scm=g*@6RJSrV++XR9k&g&F zYBdoG9&+Li>NPQZxR5$3dvS*x{s>T3Qm*Bse1|>M*8gssw>yMJwvgU$fko%)ZFXQD zx8Lu3Zv@w=H%1(kz)2}LaDm7yL7?G8RPNtp;;*b1kFhBpPW`FC5|v=&^KWT^a^=GP z8;`pYN-Er7?No0Mxqb|WHz>;lZaLH6_oQDToPB|w#^|Syq~yK-xcw|d5PqmBd&xgY zd`D~lqduO~c4!2i%$~U1)%(BWwETi_0gmZzA5Q2(Tkm{3fgg#B2Fu5#{{H85JsT@* zyF!$L-+k;En5T|#qIc67U)x U#1`0sQnU{KG(M z<2h?{dJU_D4D_~X_xC>oRu5NXIq@H5l{ONd=rjJo_j_Gv?^0jlzYzUHF9HkkIv-NE zyfD OSCcFb)5eq8Mhqqc^vX5)?!T#HvQ{yQ6u#rT#w8 zXn9K&&zRO5@Y3z0Ziq3VCc=}tI!tIBM1_a49Om?Zy784iZ2c{ZL~~Cb0vFN!Lb<_d z0 hGf>Q6htQKceS3sM`Uo2}t2yKcx(F|BuR z2i#K3{!%}Jm_H2HivJsRA30sG1~v}^R=3)g1u0rZ{*pT(|8E}=kKzC7y+2J*_#n~T z=9mBI`@qHW;>f?dB>I>tf$Emg`d}QCC`i7k^-nV*?_T`3uH4d!6_pkC6ytfOZPK@H zjz_jid~dtnS*$omG)GkRKfrnHQ4aWZ1KJ87yhU%^cU|HCYE-#y#M+S7?dSEs*8T7r z;o2$XfQyZUhEq@?e`ti$15}-3c~kigD)RdeQlbpt7WyONAlwA_
3hN#CKbs2P|h3 zI;A3Nq;Bs>IX7uZmm<3pg2S_e68{@!zpve+;x~P #Wb}zK zm00#GQs9=*P`tfH4XLAIB(YzJ)N|OTOLF@=E%yvnVGuYayGo&gJTvpkK>N&PH?aP; zL&jc1Y*x$EM&~K+)$Hx)zp3cpy@c`5DSmf)|7P<)%)|BC=^=)4ucO8>*LPIsGMyP@ z!(*+GfQ{xjn_cYCds3Py&qZR7D^&r6sDk>DAlL628yMZ3O2aZtvp`oV;$U`=4iYQ1 zjy)GEpn@?6q;}Bhk`^Ehg{CgV@1j>%39!%srezE%Gz*zcbHMj+><;FCGk0ipSwpvK zx@DfdU-?d2q30HHJW=~BmmvFK8?j-lCkd13uVSaUe 7hItnq0(-NSlp{RkuFy zU!>^@-zD7m@FAL?(HhgRsqvo`MO5{J)p>j3TV-#yGq5=<6Iez) vQk7DMSmgopUt87NS`AC1)a|W2!nN Ll&2<^PzA%2j6I~D~=!vtJUnVRMi87r5N+vaa=`GYUKF60CLlFbaB zabW%0?pMpU6^y@QL3PW)xb8atloaO{Z_`nO+q729#jwFEXpj3>oe`I0bkrhJSh dVMbO>Okh#2(+YFoy4eDGcb1UeLrwLFCjQ~?D)6drV_mpjr#xH5_$BLRaDZNqu zgOtT-zEsL-^`6sO%k(9C27Y(W*G)F&1VnsEAd&KYP~I|fiwuAm)oqXF=i1)F@#bXE zAik&Rlm4CsR6xH3M`m#1a`EZBmAynycme|I+JWm2bb5O@$H1NSVHO&TsJt?UDTPw6 zmZDNt0*sQL50#Ap@%^qNLc7%pN@Y3IYDguYmEI{6t}ULuf69}VdTU!2r& x7lp@(v03ZUdPT*Y35@gUM7wKIY23Ua>fJTK~oWg+&` zMB>oVta{M`44@@I05%XET;iaLs+CHIBtx?e|J~uP*zu&!`s89^SBEO{G600!>;Ec6 z<2c#Rrz^u5E35EqBbYC*5c0r)xdq=;bG=U6e6766UX##CA2mCL-%X83{Kn$4>-zE2 zJ`fkq9b6XlQz1ownyV;CoGu>`ZR=oC0doS|-b=Kk0X0P|UzUC}S#xdtN*cM!UTMaL zn*~eh%8jn=5-B6oa%%fDoDXG(L~m5AT;2B*lAOKxgA|<|gs?-P&>S7kZ4j 8rK`>5j(M5e?}_296IJ2sQf`lH1V` z46t^O9FySMt-NW!<0R_;*&7QX*P$Sk>!w$F2&u!}{@#4NC_En#^~ItRzxkEYZC_C= z%AP)}^}ccqzC$(Ll}meJil<~8EY91VU@lg88Jg5nwo~aCB(+%}`e6La(}{oWY%$Sd zb17Q>br *|oc~wh2;~;U1~A9qMWMaJMMNUPQpaefa7IpZyP%gp4BZ z`^)1i#IFOJZm|j1m+!WsU9S8G5-m11G|fMSNv(v)df2v&?6*8^uMJ(GtR2zYT)%nR zt`?O@TbW4ZLS#V5o0kk{m{NlzOSjJpk!bpVF=tA6l5rF18b~50{Va8VeQ8q(a{leV zxO*uP>_H)N(C)Kh5Z~V%87htg9%WL?KpbKaH;zjkTT)C%ZFTj-OzAXX{!{6=^iva= zJ%^~t5H~%%?uQ-t9<;A3@@PXH?%V)5 2;KYL2ljyoOe zp&mg)HbqsN?sb&PvKsM(oUsBNME&*W4DzSB?`$7yMReS^C~{#_w$SX>i4x{ge>KeU zLL| dNRkzRJ(Pwep@V0gJnFejatLT|Dhju;LSV*(sZv_PJC0w%pv3lMz z{yXnieaJIz1rmouEiyqne+SuZHQf!G(e}?V-NGvzs;MI0FdIlJyRG(P*4t1-oVhrL z5MmR9kyG8SZ)Hj+FENRbOA%i_% `$81h>TLeC~{yVyi%27@8cvQ(FAwZIAzpBzj}kxrf&$M3?W1I6;Zf zsZqMBBzR@&;KTa6uRkCA7rQe86y4g!#;UKP4-dxdJI`tO9;r875;2d*o2M0mS8%4b zf5k|z_-b+}xT#gq%-b3*bybf~i|d`aofJj{tL7q-`{XuE7SJ<&|E8UJ1ZzGeJrrmDLHa!V5&|2oyDO`>82oV-0LwK$iAg<6wNLGN5)e8Xw>MAk zDusFPIO%L?OkYc|*?H=vt44CESEiNlnm5D1b?^@v8y`|;=xRPd9N%xc{lM-tn+mLl zf3yfp>Y+o;My&LgZe@CI(GTXb6ZP9H!R%LoJ)eZ?Vz#FJT2A&5y!mZ*-`N!= P-@ATHsz%wns0x5D=N$q5$^3zG7XQ=l_X#8=%0=1UiRLPdEr1p$he zFLb$@B?D@n!huC|-v*0 >CLinFmW&Od*DL+=wh>A#98aNs~Y zl7HsJgSE(?nJqJiUhpQU6Z;eK7v`TTD`>n5Osp}PO+QktzhV?^l~_nI|HuzJqS^A= zPtq=O69%Z&=(8=dN HkDR@CWHV;Qe8&5>7^9Ck4e(v z45xN7GGlR~2R7L4r|&`_Lj;$f9>$lWnZpGfTY>3o*d8)khiBzD-{B81EL|H+r~!0B zD;DL|{mIKf?GfJh%Xwtl9IdnenpFZ&pv(W^*Cz_nj=mQs{pM~T2%};&n7T`A;rvrL z*~-K5xbF{1ck%By(6@L<;mJ|v#)Zijj>WUNyxX9Q8?x +os(|6IqZe3)DD lcvOQT|5Hq?`I6SaQ)FxJb>EZCp^Tw%U5eR4PlgkdpGh?oHMzxvBcUJjcWv&Mb zqU&+lTTrq^%yCX%XR4jl>HVTPmzXV8saH@Kd2HAhMn oLfQGonLWBNSgpkH>0>S#X?`?mQ#u^{Pf= zU|L-`{-|1nIFzSLJxk^iT3lS+=@(J4dV-~RUVxS3Sz_rVgQnB_I!~%!cvX`;Y-=Yy zV7q**L>kMKWe&SMx^KHPg0sYl5o2JP>IY4)TfKN`CyW}zIc+|d%w667atT<%j&`r~ z0G0CHqxAP#q0AvrFu?qSgi_uRK85*PxRATDNom73lD)%10s4bU5!vwtCm4tRSz$+k zjtO&uqWk$ J%B)3)Y#>YTpI z4}5ccT?35lN3Qn)=x~Z#Wk=<870>@H5pV @s#@PUt Fz>X5Ag9$ zo59VO9E8O$mM}Ow)}l-;*iaN7`@+V%(S*j?D2vKy+X+x}`+D{cu(Ys{ukw1^VRy9% zpUOTVf!0QMbwXY~blGUWxmJLcaK`l9Jwo-xhi{SWtcf$kgypC-RL`JYs4xEMzVD3S zH_}yn%b8DkINs0R2SM5sR)iGnU$lUABm|FhHQGi&s;#rxJxv~e>qxl$9h{wUB>U{% zGyhzdC?-b?_Ki8o%;(q%&S*v__0e+K)`2kx>LGF>2}LhC^>wM@DaFwlzly%sq|GCW zQl}OlEoxP~s=<+O`^fS_`A#*Saa2jMFKw4ImH1UOu@JGC&XIcSR-S#;@zHOU%(OkV zW{AWs3NRkMNyxA0iOoafI!kuTkak8P8DyczZnujwjy*kIG!SO}+JMvp7i ^8 zthkJN!TuqL1z)35cIyR!o5vYrII7=+e(V^?nTsr0&y=t>BicYiA=1(>nwj~FQbL5g zEe8pwp9&ROe8xaz0-4DA_g}8OxUe4Mr3x?T9I Kf0JGb?*<4Yz$q_ zbNY&j6ky-7;-ZG{;3vOW xQxPhL321H!-Tq1K0P^Q-0 zxVgx$8ZS6`G8%QkuM^>kxVRykFNRPpu(@TTy?sNueE|@ccoVrhDo6u}^YEo<2vknf4D7rV#oI&5&ZDZJcd9 z7re8_L~{mb1BE8Q8=(;{X0H1EF` {d z=o7|eu^}C+NxjsoAA8q?*pvFH+i33_+Dh$izjlRuS(~3YzV^9!t@|Gw)%k^w8Evnb zo%e3}5y}^l%9Y&0olm_l`9m@f{Cmy!UPSBLgiWva9XGLWyeL(_k>~$yO2Way)USdw zKe@Qh@$-}}J{c>zJ>S27ZSLw#%)yV?WH-jisSlf#jDXpEp6U0@^^AM=w1UFklk2MA zT{Dw94yMZ7enV$|Z>`LJ`hen%;Xh!$&-3@f99wtVm!wata8}6k&gu6^Nv?nMvHgbo zkJ&ndf`tz_-ak&hiRCW6^K!P&bA`0g-6Kl#JRqwHM=mE$+C^<=0^u0e r)AR9_X+)p4jo7u<>jQ_#`mpQp)zq#YlG|2 zQ#JgvF0LXr6DhS1!*C#Kyf)|cBwhGV1N;(&C@qEZ>!gSywv)(0@Egh!VehY-bFee( z0BkmS%guEyKkUV?Mt_iUB;W6(F7k`fr$JErQ0v RDV_E;be+gXp{RN`|PC z@>@>ZI2oT3x%f=>VXxhABctbdS0O#)zMRL+Wez8qc=!5gZ*bZDE?;bw8FLz_Q4L_? zesC399z$kiwLwsBQ;C7xG!IXkNW6TgSfh#DV8#IJ3}k^gS!>EAQeXeIbdA+~4*9RH zR=~9XwhberSBg+cKA^GSIh~LMYQAW0&!wL1Rg}H*wm9|z)d7BRM&sX$ox~ rJ#Vq}Q5Lc7#LgJWH_M5%{6_fwMubC%N!sCSHk zq09F(Rb(gK$+#Y#c(f1y&dE*&I#WlW0!1#io}8>;haSIRt5T@=sbTdvDh8OZYevbQ z{9P(S1sYq)RY_mWq^N-OdPj$Yy#6Or{u7DT=RZhVS8oo-w#3uJdEVdL6yr0>`jubg zJk~`1j63CvI9diKmhhelCg0pw`*DFjz)$Ve%e+ksY=Cl;%O9`ZREFb8Z*lba!;b|u zna-#NDql2nh9S;cdV8TR8eNOLjIu*!if1?U)`xe?Ng3ZSsyWJ`vO|RTIeEHQI<6|n zAdj#*Bi#)|>Ldk>u*7=A)8h|guyi54nfQZLe*XMu6f#$TG{h08p2|p^fey;8Y-Vv= zv_h|BikD->O2k96B*~Is$t_<#Wx(TBF0lw?3FjXsfa!5*@q2Tvyy|B#@F`&vrheHB zF6P}1QGHnt42|phi4GpZk)iSk`NmDqV|>a5^!t^mN`P>_-b8*?qMl*JRE u6iqQKdjr5m@~HvG I z=3Jm> CEw81Z^C3l*wE zR)W;d4H*-Fub6ZNtNhcqIxAJ;snW;3Une=E@E(?NuU!))CmY}&AZlV@4?u761T00L zRR7IgT3FH65wGpC%tn9Z!DVVf3ceXQKD+WLzNY2TC{E%K4V)92;&?HfoUM|L5}md% zt%fCLQfEhWr@~~ z Dk-438wyLEdd^csu(mL47X7AZ`@Lei-W(o4eb9EyWozq)D2AaqX%@#D5#@q%FLjT z+kwCRCmAy~)98}~-aBIqRy_+?5Ca)?LKQ >(2xGXeg?Y*S=3|C zlv?u1$N86m#)Jkn0yqzp-9nM^T+CRFDSRSE5#&*9tYxm2gW5(oMJxDSNEw5$vPiFJ z`S-eAfigrBaKl$7EtXV9tR$ Gu5k|&*ZS~mw~myJwwVt?r@wj~@i)a31atNpAlhNw|2E1}DzF^W^B z -6-WG#s!_-tTGZjMp=xJ!)++<@Rdak%Sjy4%H1ctk;F297)j)! }&EG;}uUmAP%TG5?LyP(`GWhBmI?a_o&%WOA#5b&H?-c8`!?Wi!bT)ly z)Op7ns4&vb8f>#U92a5LAef-_c>+y-OnyA>EJ$OxpEblA7!BqXo)IOtCpA7-NfIml zx?(>qz6Wn1HP`AY53DV25sZJm$LA1I%$hYw>#0U&M_xnG93}gtbn>NbF4qMfdQ(}b zTEPUCd~HhRr}}uY(E2hWwFIB?UG`gID$UMW!HjjBRx8RlP`AD_^?NZ5JKi_i!LIT} z6Vw^;!+hcyC;L5{PkANpQ8C_G*tRrHucPwX{K~bh1;$j~qYAQ|*t`YPlx@v~BpMSz zrWZf&VzQ1T|NrFZr5XBu sNaAzhUk#H_#=iW{Yc}OI3H1E1b2Mc1W!yAQr_Y4Tz#I#QlX6y{$_qf* zHAPHs)s|n1gZFkdBc7^rFH5-$(_(TWv%eXmZH2t1q00rwo{fN4*~p|gqnP)p$y5Gt ztYSq@Gt<3ySdyGp&F2G=aHDTwae4uSF(jop@(hnYX%l@Kd!Q?x(o@v?Uf6C$o3fU+ zF&&~2dU#d`)ytrTd!y1$^lqH;JG#hVhBc-F%jnG|UgXUP4CPA&p3o3Y{m>b`-%%1z z`%uxs_l?V5gyj5%(i@fDJ-`hiiO4-)_5o8*V>y0+9T7Xr3`HBc2U|_Qu!H|2!c|5V zZqikgj>1V^QaGk|@IjCe4GtT+PX5q2VhOv5JH*K49V-)gSlUkV7k%LXF+041l-;!~ zwQlO9lRfL^mkI{gYevOf>&2@1`m&j9rcVjqJ>BJ|7xoZwz;b^6^dcizoM4)KLYt_g zvQ1?GMO|O4rF~WJnLkfmLr|`*rd@PTY52IK|4L|#^h!B@@^QNfKSA)ucnZOw&cIMi zAoGleU8Qwb;G0br NI%=8ya?C*68+O&D=xx +ndHNhq2Y`vxKxbEYg83@id`0F_{7iX7))B4!3R?;Fs44> zkrDeOQ@V+1z=tnHUXbzyKODbD4NhwR7vr0-Icvck;MkY$J}#mehi+9eGP~mdL^H_K zLD0tBhu(|JwpvN;kM6H6p<5~(A3~vSPdt&gv)NBm48y1br4k-`yIw{l9OrZ)Y%T$W z8`L&Y%l|v<{|e!MSHl0-=I{;!gCDCCSLyP(?jdhKNoo7%rkhdmQOcClIE~?(wD;PA zXm;a^&Wr`3KRdIf(Y&)*2@g-B%j!Yk75LUtZt&V+m(aX3#4%*Yc*mHfS~&Ry zwd2>Q`BuHC)wmRC#-5q~k~LVVjY$a?+ktNEf!bR$_%8;X*&a;AkWY=|cB8pO>cjmf zYq|2(8)Gla e!Bz#hXmx> zI32Z(FtF5R?pek~itfW=PpFv%qo#%8wY)*f8Y%Ib`WdvbrYh%ZT3Qhk$JkNE@=4!@ zV~z{&ST?ytBCN+&o`oF-E0R&3limH)L&kLd#ZV7i)eFveit~x6;EQ0YUhwV&xhU+A z@5RN=mtDo~3880s@znfApZStkZJw7H5t{3jd@&XJ7(1m*LG`2QwS_4Kr8}R6QKI^$ z3|-zI4V8X32F>LaJi`1{ZOSR5ZTxXQ+2zpBG)5__duc_yTD)v*^7 j5GpSws4h|iG*^~)KN*BHy}(}$g>+{(D+ONR zjSG7a5*67=@&+{ScAGRj3sPC0xSn6~^nl?_!@jWG@SUb%Y4+Vnh>pwGZj;#&(ozKw z%9m<;YlyjMJvQ~$3}D|sp5}@E)~5Uftg6J&MWSTQ(7VVKwex`|TZ7&%+WY}4Uevlh z@H9><;C(oC*1(&ax^j+*QWqhTlAl_ T_VP%rNw zZ2I7UEp%Lw(4;S?_JHF}TkiXqT_KI2kYl2Lr690DIN;!AY9BC1Ag2Hvw1x!+?KUUW zGfkvditZqjHC^gH1vrK72b*w^tEvaVYzBL?i Yai47ptV3sG4BsqkaS)(c1+XgWU> ziRC0RwM7ZTydb}?P+Srm4^}GyUn9N_2P-J?7*%WWTUALGA$FEX;Y?|e_@Jpw&TGXO z==C?{^gy=8hH%OpZhdoF#ptII>|J~k7+S ;}8>^0tw8&5!1D#cO+#Lvv=iw3{gV<~tj>Uk(&DM^IPeCt&lMVYt=oKsf}| z`e{Hu-OF=ZSfqQK6{KJuOI6Kx(8Hmt%ozl-)Gzmg!qUQm`;8=c7ZxBJniXLEwP!)< z*~b(8XBuEF*xUcPcS$RmYWH6Ww+uQut)!g{WJaxmQV9xb#?N2+faT8eyNxM}l}8GO zLo>2%$|0&uLxD+nIqe?pH0H#^`>vuJ-+@b0)^bYPX%aTTEUqUJRc}Czaj)NO&0?aK z2Lm&gdM$4FvJ)~Vo1#q(%sl#)E8>6JAVxxQ96L9O(K6yM#*Xjz*VD}xN-HE%nmhx- z*X}8F-3snGnqmJRuPeHQ#G(E 8EPAw-;A+9TG5*4J%*O zcMA$%MHVRylk*LsaZB12=OGyxo!;ord$D hl_L^v+J$zg zC@A9AoVQqh=rU_BF&axa-Ga_}+@&<|VMkDnN(VS4rH<1E{t*xkr@h}-w-8YpdIdl1 zV=Oa7u=l2EN#?cw>@wd(HyRGZyjxQGn5BB{sE*Q#c*)tzqxzOg-cp;DnjjW>E$weT zX&($$8ZzzX7f#O6w^4L7eV-Z-P5_HP8#s#z*_y8SiiWk&SMYY5G=B^!yVd; ZXt>u6ebqP}1Q?o0? ENQp;tm-JOq)_Q+T=Sa8>;W#|5ZK#Q-@fEZKkFYeRi7;Wt&L!k8QtXCAK zExNfY@~#F}8iP@Oq)i0dMT;<}FLyMqd;j2B7AE-n^NTl!>Pi@2Zp>Yrp=(ZnT9e#0 z-ytW?qKuqgG>zqTD!IBh?oEp?+|$3kI(Iu~3F5juV-zUD5x>q(+~^#H71-MyII)U_ zu9&p(JAdE6fsN_3q5t9;dy#1DoE)MQM;pM7J)p1g{7_pN$1u%LU%Kt&?%wTov;v~H z`QJ+W2mhhdrbrUCGG^-iy`{qP?%dA K}}aCNw?^@bi#id&T%Uczfe<%W|*7NAj3Rplhj?kt;ol`Ak6E#5m_SIbkIh5ExP} zVV-w**jVTT4zUDZZ-uT3i9KbD8pwh7HNR*luR9@XkxG;aJ6wT>2_5Qqq7>*ZiyOD| z5^jxt&JP9FAL|Vzp3!}!30kWwph9+LEZQ!dA?_)5V8o9FM8ezeeh5%8&N ~qMNcwKGq2V(v7&3 Mr2v3l2hg-A9~j^{l089rXw)m` zN!SCK{+wRyv? )Dq2ZAz4HHP~>KlF7b1^A0_?h zOY)XW&n>)jxNv-`Y#q}8gXkUlAz$g+&|wd7%bf#5+QB_iM@*L73O10}4C2XgFgei4 zgf-(#WC5gTd^#l(@w}+ygkY8%VAEo>$!f{&(+^RR)2vR3eL+;$8>4M-;K(op9rxwQ z*EjZm{^FB}x!>X)D>thY8+*`S45i^Q3M^aqWN5aN1&%iRT3DYR-{ F27=9%P`RxWr(OPjv!*2t5 zny2Ku?VMr$7M`;E b{vLn@v72D ~@azZ( ztn>bJ%8`AKI2?5~wH*|NW;-sk?5_XbgCxfb(3a+cwgp+DgVaT|D@XGrtr2^=c4p(u z1tB4ns|2hO72L &h6E-A)GFJTBHzGN4Q26;1-tE~pK zv@=aDDxn9V2kbbKw0`k>;Y~yqXEhOQ-pmJ^n2!Cwq_#B|QcsN{u>5l@7Cv>?Rx$vg zFqxhovTp^G`M D;1)lOH=c)Ikiyf}p6M{(Ay$LEm zr)No2{b0$*$0sLl)D+KjbC*PH4-OW7(7WpfokXlMsvg3fK7Z~!klJ!cUHEaPtac_m z>FY^)esUQA{3#xq|7r)8;|UQ=Q?&Y)JVJ_W@8jfGTna_0eND+Ar^@js<&XdK{^eZB z);}e}ldocVgxef}%SfwY+ZkkcGP}K7(mVf;Vt$UXFi6EWEgoS}22xlVo7qXuESk|q z>vJH;W&Tq72D+ndioMZsiCyvyGtZdEg!7?2WfK|ALj#kUJw^7OIK52@6rWB`dq{a3 z%{EV3EVyz&e8p_T#5@Ko6otzgp>7owVfjZuyVoTH$VGG=x3p%*+0WdFt)OV(gk=`# zw6{;EWwz7|N9WCKI)*P!9vY+0p=-}1@nz5a2wquWrCS3u==x&m`+P#jxl!V z&J#~o;#+T}6WTIgQ)`@b6vn!ip9J-Xm6(rj0cD@;?v#y{KmQ;K+8XXCSade1`BmY= z=!<-N`XkgX>s%#q_{pBI0oowR^mGc_l4YBrXpjsk$rDy}iDw~20}76HzbS8O5&dyP zJ@ATG<&MVddx2NN@PM*Xev!saOzT1)t*jKfGJve$$M SvMd zo^O xgj@Z!J`1OnbG=2jx)|N>MY7YWEF_2B^5d$X3;{(uNVh39CgRn2X-)qq zUS-MO2`k7RO`@2=0O|fa;SDY!lE*2SaY8Jnf%(@dp9N56-2r&d|74?M>aIQxnXHSB z29L?d^8EE~Zk>L4oD=PpbvqL&RtwjCuf6U@^k&R1>)%(Ky-%L@S^6S?cUmUFl6rWX zH18_F?&dT@AdYS7H9kJs_pypyL)|Eg6 m$eqP%0K(k20xXNvfF$l z%`L|wtYvtfC_$FH5&Bdnb_j>W2H?dS`@lgPSUzGnD~_x4GoD;qOhXJ|A-IA?;vr7; z7vma6tM)s`1aaV3UcrzQ mtd@lleOQw`6IX-D;78VXnJ+0v1(#`&8>XDSl$LxgB7%S3Q@He8h52uJAkY4>xi4*8Ei?bWZqzU;=w z*ZCtBt$(+_TbL3>QL3Eh#4#wbUd+in0q{r*FadlF2P=rbLB~+cm7j*pta;~9_RDe< z+O>0j$k61t>QpNHMbsZA71f-p*8>&g+Csy~u?xO9b_P|gz5VqeG+B$}KT5cQWuXbZ z%Td%egp7u ==76_!97qbMrou%*dIP zr+QNDMX!A5A67b%6+&eb6DkuL{5co*$w0vx09|pAeeBh+tYoiD@{i+a@5t|CNN?rr z3Y!ULX=KJsV6`pPeILv|8b>}jRWsz;Mf%A}(B$H8x*C~|2LoBD<+i|fmuZE1n*cxC zn@3+IRSLN^y^a))qJn0**gI2j-{DE_z6PBgk#vP34uBHk*Br737d=^ng3HZ*7jr+z zSn}8O>dRRV8SGqTJG0sLUN_k8v7_r|#{GEq{$lth?QGmB(?Pf%cx}!5d3~^`|;a zNYmTj&+LtUoHg>M7>_G7o=JD3ydE=%v9ITOg7(VVp>fZgrgXwJiZRi(2 U~diG>WdOo>=(5IjOdamj@ ze#D?(G4p2#(0L7#99bj#CB1N47AZSBV_BnfsyqEb=KpQ%hJSYU)pzUxUh*##!_QX) zL+j327?J%SIFThbdrOMocMCvoA6J?1A?kxQV8cfjnJHFjfUN*4ge~)?o}MT=B5;Ij zf0~CAGKjMR_!s(l s Gh?6K|@6@;B$eU zod^