From 880c8ef45f28f4fc084be405d2bac5bc771dbb8f Mon Sep 17 00:00:00 2001 From: Travis Abendshien <46939827+CyanVoxel@users.noreply.github.com> Date: Fri, 31 Jan 2025 15:43:47 -0800 Subject: [PATCH] chore: bump version to v9.5.0 Pre-Release 1; update docs (#751) * chore: change version branch to "Pre-Release 1" * docs: update docstring for JSON `open_library()` Update method docstring with exact starting and ending versions now that they exist. * docs: update README, CONTRIBUTING.md, & index.md * docs: update roadmap * docs: fix typo in README, change callout * docs: update docs site with v9.5 features * docs: remove warning from index.md --- CONTRIBUTING.md | 20 ++- README.md | 138 ++++++++++----------- docs/assets/built_tag_shrek.png | Bin 0 -> 100760 bytes docs/assets/github_header.png | Bin 879561 -> 162038 bytes docs/assets/screenshot.jpg | Bin 871194 -> 0 bytes docs/assets/screenshot.png | Bin 0 -> 1209714 bytes docs/assets/tag_categories_example.png | Bin 0 -> 23613 bytes docs/assets/tag_color_selection.png | Bin 0 -> 105902 bytes docs/assets/tag_disambiguation_example.png | Bin 0 -> 26908 bytes docs/index.md | 60 +++------ docs/install.md | 7 +- docs/library/entry.md | 64 +++++++--- docs/library/tag.md | 124 ++++++++++++------ docs/library/tag_categories.md | 4 +- docs/updates/roadmap.md | 55 ++++---- docs/usage.md | 79 ++++-------- tagstudio/src/core/constants.py | 2 +- tagstudio/src/core/library/json/library.py | 2 +- 18 files changed, 279 insertions(+), 276 deletions(-) create mode 100644 docs/assets/built_tag_shrek.png delete mode 100644 docs/assets/screenshot.jpg create mode 100644 docs/assets/screenshot.png create mode 100644 docs/assets/tag_categories_example.png create mode 100644 docs/assets/tag_color_selection.png create mode 100644 docs/assets/tag_disambiguation_example.png diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6075b3f0..1b2a88af 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,20 +1,15 @@ # Contributing to TagStudio -_Last Updated: December 12th, 2024_ +_Last Updated: January 30th, 2025_ Thank you so much for showing interest in contributing to TagStudio! Here are a set of instructions and guidelines for contributing code or documentation to the project. This document will change over time, so make sure that your contributions still line up with the requirements here before submitting a pull request. -> [!CAUTION] -> **As of Pull Request [#332](https://github.com/TagStudioDev/TagStudio/pull/332) (SQLite Migration) the `main` branch will marked as experimental before full JSON to SQL parity is operational.** Existing TagStudio libraries are not yet compatible with this change, however they will **NOT be corrupted or deleted** if opened with these versions. Once parity is reached and a stable conversion tool in place, this notice will be removed. UPDATE: As of November 19th, 2024, full parity is rapidly approaching. -> -> For the most recent stable feature release branch, see the [`Alpha-v9.4`](https://github.com/TagStudioDev/TagStudio/tree/Alpha-v9.4) branch. These v9.4 specific features are currently being backported to the SQL-ized `main` branch. (Feel free to help!) - ## Getting Started - Check the [Feature Roadmap](/docs/updates/roadmap.md) page to see what priority features there are, the [FAQ](/README.md/#faq), as well as the open [Issues](https://github.com/TagStudioDev/TagStudio/issues) and [Pull Requests](https://github.com/TagStudioDev/TagStudio/pulls). - If you'd like to add a feature that isn't on the feature roadmap or doesn't have an open issue, **PLEASE create a feature request** issue for it discussing your intentions so any feedback or important information can be given by the team first. - We don't want you wasting time developing a feature or making a change that can't/won't be added for any reason ranging from pre-existing refactors to design philosophy differences. -- **Please don't** create pull requests that consist of large refactors, *especially* without discussing them with us first. These end up doing more harm than good for the project by continuously delaying progress and disrupting everyone else's work. +- **Please don't** create pull requests that consist of large refactors, _especially_ without discussing them with us first. These end up doing more harm than good for the project by continuously delaying progress and disrupting everyone else's work. - If you wish to discuss TagStudio further, feel free to join the [Discord Server](https://discord.com/invite/hRNnVKhF2G) ### Contribution Checklist @@ -141,13 +136,14 @@ Most of the style guidelines can be checked, fixed, and enforced via Ruff. Older ### Modules & Implementations +- **Do not** modify legacy library code in the `src/core/library/json/` directory - Avoid direct calls to `os` - Use `Pathlib` library instead of `os.path` - Use `platform.system()` instead of `os.name` and `sys.platform` - Don't prepend local imports with `tagstudio`, stick to `src` - Use the `logger` system instead of `print` statements - Avoid nested f-strings -- Use HTML-like tags inside Qt widgets over stylesheets where possible. +- Use HTML-like tags inside Qt widgets over stylesheets where possible ### Commit and Pull Request Style @@ -159,7 +155,7 @@ Most of the style guidelines can be checked, fixed, and enforced via Ruff. Older > [!IMPORTANT] > Please do not force push if your PR is open for review! -> +> > Force pushing makes it impossible to discern which changes have already been reviewed and which haven't. This means a reviewer will then have to rereview all the already reviewed code, which is a lot of unnecessary work for reviewers. > [!TIP] @@ -172,9 +168,9 @@ Most of the style guidelines can be checked, fixed, and enforced via Ruff. Older - macOS: 12.0+ - Linux: _Varies_ - Final code must **_NOT:_** - - Contain superfluous or unnecessary logging statements. - - Cause unreasonable slowdowns to the program outside of a progress-indicated task. - - Cause undesirable visual glitches or artifacts on screen. + - Contain superfluous or unnecessary logging statements + - Cause unreasonable slowdowns to the program outside of a progress-indicated task + - Cause undesirable visual glitches or artifacts on screen ## Documentation Guidelines diff --git a/README.md b/README.md index aa914cfa..fed858b3 100644 --- a/README.md +++ b/README.md @@ -12,44 +12,42 @@ TagStudio is a photo & file organization application with an underlying tag-based system that focuses on giving freedom and flexibility to the user. No proprietary programs or formats, no sea of sidecar files, and no complete upheaval of your filesystem structure. **Read the documentation and more at [docs.tagstud.io](https://docs.tagstud.io)!** -> [!CAUTION] -> As of Pull Request [#332](https://github.com/TagStudioDev/TagStudio/pull/332) (SQLite Migration) the `main` branch will be an open test bed to get full JSON to SQL parity operational. This notice will be removed once parity between v9.4 and v9.5 is reached. -> -> For the most recent stable feature release branch, see the [`Alpha-v9.4`](https://github.com/TagStudioDev/TagStudio/tree/Alpha-v9.4) branch. These v9.4 specific features are currently being backported to the SQL-ized `main` branch. [Feel free to help!](/CONTRIBUTING.md) - > [!NOTE] +> Thank you for being patient as we've migrated our database backend from JSON to SQL! The previous warnings about the main branch being experimental and unsupported have now been removed, and any pre-existing library save files created with official TagStudio releases are able to be opened and migrated with the new v9.5+ releases! + +> [!IMPORTANT] > This project is still in an early state. There are many missing optimizations and QoL features, as well as the presence of general quirks and occasional jankiness. Making frequent backups of your library save data is **always** important, regardless of what state the program is in. > > With this in mind, TagStudio will _NOT:_ > -> - Touch, move, or mess with your files in any way _(unless explicitly using the "Delete File(s)" feature, which is locked behind a confirmation dialog)_. -> - Ask you to recreate your tags or libraries after new releases. It's our highest priority to ensure that your data safely and smoothly transfers over to newer versions. -> - Cause you to suddenly be able to recall your 10 trillion downloaded images that you probably haven't even seen firsthand before. You're in control here, and even tools out there that use machine learning still needed to be verified by human eyes before being deemed accurate. +> - Touch, move, or mess with your files in any way _(unless explicitly using the "Delete File(s)" feature, which is locked behind a confirmation dialog)_. +> - Ask you to recreate your tags or libraries after new releases. It's our highest priority to ensure that your data safely and smoothly transfers over to newer versions. +> - Cause you to suddenly be able to recall your 10 trillion downloaded images that you probably haven't even seen firsthand before. You're in control here, and even tools out there that use machine learning still needed to be verified by human eyes before being deemed accurate.
-
+
- TagStudio Alpha v9.4.2 running on Windows 10. + TagStudio Alpha v9.5.0 running on macOS Sequoia.
## Contents -- [Goals](#goals) -- [Priorities](#priorities) -- [Current Features](#current-features) -- [Contributing](#contributing) -- [Installation](#installation) -- [Usage](#usage) -- [FAQ](#faq) +- [Goals](#goals) +- [Priorities](#priorities) +- [Current Features](#current-features) +- [Contributing](#contributing) +- [Installation](#installation) +- [Usage](#usage) +- [FAQ](#faq) ## Goals -- To achieve a portable, private, extensible, open-format, and feature-rich system of organizing and rediscovering files. -- To provide powerful methods for organization, notably the concept of tag inheritance, or “taggable tags” _(and in the near future, the combination of composition-based tags)._ -- To create an implementation of such a system that is resilient against a user’s actions outside the program (modifying, moving, or renaming files) while also not burdening the user with mandatory sidecar files or requiring them to change their existing file structures and workflows. -- To support a wide range of users spanning across different platforms, multi-user setups, and those with large (several terabyte) libraries. -- To make the dang thing look nice, too. It’s 2025, not 1995. +- To achieve a portable, private, extensible, open-format, and feature-rich system of organizing and rediscovering files. +- To provide powerful methods for organization, notably the concept of tag inheritance, or “taggable tags” _(and in the near future, the combination of composition-based tags)._ +- To create an implementation of such a system that is resilient against a user’s actions outside the program (modifying, moving, or renaming files) while also not burdening the user with mandatory sidecar files or requiring them to change their existing file structures and workflows. +- To support a wide range of users spanning across different platforms, multi-user setups, and those with large (several terabyte) libraries. +- To make the dang thing look nice, too. It’s 2025, not 1995. ## Priorities @@ -68,37 +66,35 @@ Translation hosting generously provided by [Weblate](https://weblate.org/en/). C ### Libraries -- Create libraries/vaults centered around a system directory. Libraries contain a series of entries: the representations of your files combined with metadata fields. Each entry represents a file in your library’s directory, and is linked to its location. -- Address moved, deleted, or otherwise "unlinked" files by using the "Fix Unlinked Entries" option in the Tools menu. +- Create libraries/vaults centered around a system directory. Libraries contain a series of entries: the representations of your files combined with metadata fields. Each entry represents a file in your library’s directory, and is linked to its location. +- Address moved, deleted, or otherwise "unlinked" files by using the "Fix Unlinked Entries" option in the Tools menu. ### Tagging + Custom Metadata -- Add custom powerful tags to your library entries -- Add metadata to your library entries, including: - - Name, Author, Artist (Single-Line Text Fields) - - Description, Notes (Multiline Text Fields) -- Create rich tags composed of a name, a list of aliases, and a list of “parent tags” - being tags in which these tags inherit values from. -- Copy and paste tags and fields across file entries -- Generate tags from your existing folder structure with the "Folders to Tags" macro (NOTE: these tags do NOT sync with folders after they are created) +- Add custom powerful tags to your library entries +- Add metadata to your library entries, including: + - Name, Author, Artist (Single-Line Text Fields) + - Description, Notes (Multiline Text Fields) +- Create rich tags composed of a name, color, a list of aliases, and a list of “parent tags” - these being tags in which these tags inherit values from. +- Copy and paste tags and fields across file entries +- Automatically organize tags into groups based on parent tags marked as "categories" +- Generate tags from your existing folder structure with the "Folders to Tags" macro (NOTE: these tags do NOT sync with folders after they are created) ### Search -- Search for entries based on tags, ~~metadata~~ (TBA), or filenames/filetypes (using `filename:uwe5 z`%#U0wq%a^q+aYTJONE$GEJKT6=a*ec;9 zdSrVAYoN$W3>t~(2XWlTfA=G|UOvK|=}<`u(FsUFUO5Mq-7jV`KT5Zh?Rh6U_y?J9 zDj&m1qmNBgW8ne2plAwsvX6UaW!FJHjyGWP)i`J@eK>7nbC2LbKGd7`0weUP6(R;< z*D+HBd*PS_Fea?Qk#pc?l9t5Dn{y`UVjevE);I~@S74`K%PqM-MP2eB5V8_Al^eLT zdeof?y9d$Bku6(pA}*D=uOUt~hJ1*^9pEACgFB6ybl1#}9Uj@~zc)pW@l$J%3qKRY zY$i&dsJf|%-jQwgo8{|BxcGsi?52`RfZ0uNuEln6acbiSSj@G(&wg~X=49 6zAbjq3bL)X}lPJXSP{W5;!;ArtU(Y0oLdH-Ho~ABLboa_lsM?s=tJ+MZ@W z@fgjvQXHktF3+LPH+P3js?Y_(8IrY?bv$jrNqq%ThO6xT0ha2i!(%nN$la}Uc1E2t zXCSONfv{Q6!@XAk98+wS# *R??LHSkpOu@%tDD6Xfr zI4)(z>q3%0vXWI}R%OWP9@2IfpE_fU3sla`eWQ+f6Nj(bFcr(o6%4BEv2ck)dA2I1 z4(F>Aj$4^TdPEtht*^%RW|=lK^p!m~yn#E x)A`SM5H; z&}lmNhs8y!i5i?VP(NhKaF^r}7jZ>7Z~<%hME6#F#! D3*ry4~=j%k&$=SzMcJ=}gH<^3zDd<{*L|uo5-I zG|Z7N4aUYPKMC>vw@Xu)3Y{vNGHO=pd$9IqZMvDb|1=Uo?84339iBOC`&>lBv1dX& zc60>P5n_IdLD9R*VS=6$Eu9}$>iC;$^UrcvizJ&_CcZRs!q-86zmUfK$=&H|pm|=H zZ11bkl`8gKptwUSN+a}chO-<%Kr)fZyu6iVYLsxw8;egbl1qSX4 K;&-AM)Ht}sV`Phy7}X8wRxw%tMjFn;9NyV3w$o0+ z8Cx#n*qyU_I3#Vc%sd4386la*sd!e2L!)P<%uh4m%TuJ7prYU$j|lQtzBD~I9fn_S zY1CXWRRmw8>))twz&O$k9|0uS-X?0SyNIC>J{J95HZm;*Q}up{2GkB|xge$EE~%D+ z<{_+^%SsokdFu<_SX5NTpx(aQ0EL8l97{wyl+|@Yz=RcT?|D~DTqWQ*1_3=pG;WQ5 z0*QYBNzHAmncGb#)3mcll?X^>W`mNn7SaS(bpTE@CCY?{c-C&BbI4DNEpW~-__(X8 zef@}jxaz?toV82T6wouy(M9_jw-Nvk8pxbcKa&{E@#8s7MAUh*$9J&dG6nid)e>$z z0hGW$@>#pAsFTJQs>+h^-keRA-QP>mw?Ky9K8~oJI1>@I5$m!X#3&;bfsb|<@q>?# zCXim_Be1kZs#LA_vv{*G*>zrYuXF}5hcNA-x)O^|DiaEhi_Hr1yc{YU9U=@2+Wr#R zybBIFV`H_(l{xsW{mV!89{3SGd0@>jD~*e+OV5_GCp3`!FjN(D34FVenAA-`J!`Cv z3*&B_0u~&}<&;(YbPj E~_IF(lBC3D1=qNhLs-f>)g>`lacIuP+x zv#~v53k)G^^uo<8r4<21!T!8noZX{TuX7-2aCyh@Qfm>r*3O$E09zQ#kXH9}kBH2B zV1h`LI2|llv{L-1e T^3KiXR%-!D^ot* zsa19j=}kAREnJUJGry{hSwFNL(jLWUYB^-`w>rmKR!SxWbfwW-qjflUAbEj 2 4f4Ke2|}cUE(4-XkMe$_ApiU2}VJTRsE=Z=n(l2 zSOR>29&8bUTcQC%>x$(ak|9tr9T&lq66>0aK(8f)azSKBA3BR`woSijMJVT}gp?C2 zZn;=Oo02*~N0W3`KaXl|X5&CP);X8@=Y%U)0+cUj;@94nfQgAE@SwrvY;<={b^{zY z+^?_+4O&5lv&|jIPem|F0c3Ate}T(=h^NOk18W>n?5m!JO5PZIl{=8oSUoZ1sDZf! zYqZrnojsbB*cef-*vOoGDfO<>kpWPp?Mjj-%HxA% 0s&5|mhat0)-Hnf zD{mbI!J1qcNw@_dAc%J|nl6T9i)Balnp8&_){0Pxy-&Hd58!J@`&>VcfJ(zk@Gcy_ z`{+I~&ikShr=F9v1%TKUC(NqFS-?>=0VQy40?B~~Y~{?f>sV+^9?J=Ny^*BD_R#aO z!pm-h2czdD;W@J52rNUN^h;@-L+G7YSq#~g1eb7Akwk-fNzDG^`S9x54d719cq=_* z)-TRU@~)WHgHHh#%V?TBS^?rFgeW4$> kEK$Wn&h+Iie%`vaxz+ z3sG0%uf)2ftRppN0Uy-{3Dof<)sA9^woE=0O7`qRycwgmLh!?Ug!ff1M!t?$HiT z>4aT_;J6gaF72z9%wvm#Of) ^ew9d!?e5LCR%kc4$Vp?3GHQC*_sHX}x`}Vl72G zmce&!$@YpE^mTk%4&paX?Ml`M`iF{y9(Olwl=`|LOv=}C7iboE`AhfRn#W~N!>W)D z2`8~01{Wu;UY?;}M$}tgo;cty@U;rS)Kzp1{?uHhcmOc{R$RVgJ!wYWhBiE#xlBu0 zA*hqzH8C1I9Ru&_ol&_QaOc7>NPg_h(wf<#zjF9`vAQFdvI68s$GRSsLz!Pu>yk0( zWqLy{A@_ZhirM_BKqOoAEwlha(*oy`i+5Z@kHpK)zH0ZGb3Ix5#_3)?sql2t(!D)A zy2$<|O?Qgdgihb)-*+2n{m|&Y0y9=KkAsB_b---yU&(<7t(op4HJB380 wTEzZ}$_Oj*Nce5IH>jRGm MlVw}&a@6dK`up(IeaK}JoMdAxEcTI-zUD5gE}x6x^tnGR zWrPlp^HvB8Yt#FFm)_26wmM2d%eP}64qf1|AAdY8+^xAJ0)9#R?lunYHJvORj%dKf z2zXq7==eLzW`}`$f2b!&MJeFcQtFF@XeOZ*Xi8-lM^Rzbl$Fr$=Gl94Iq)`m$3?Gx z(UzVfysnDa0KkT_OKl$ll%gwp%4JWdEtSveyymcAeVCLdz;l`)s&wispzgl+Hj=HE zX|-#Fs-d}u@_6-Q{NJmwWx_}sJ~8cVDa>h^tsh;_pf3p=X(YzUJ|OgVN96`N#46W` zP%BLNsA5j$q{k088uoln{`!^#pYQm7Ip2fx4ra=UD--rRR*NGV^7N`G{wewu6iXu= z^y0$Phf87f-_Ca%5Z0fk7CgJN3ybS8D=BV`*oZ&4v)1Y&fOaa)+vt*>QYUEsX%x>* zc-a+aY%0>oGqWzzb0CynQl1y$i3A-qM {#5& zXq~b4wg^iBWo!3?r6R7GYP|emw9z~+n$x{;1C4Wq)vx6QZe~9b)BE}|^kt}h3q@lQ zjx?~Zgh}g{?oCIs*;4j>0(H8-GfYB)RosRF^4)wd-W4%E70781jB1g&Z5KCxSFKCp zPJv`yayySY74dcC4Qo2PxLJp4FytvTuU5^ErB|Jo O+j{M~Cl&k34BIwDeDQ~pyvl~C`y(YqhGl=pUJlGL=5 zEcGcgwxu6%DwLx=e-&_h1tl)Ev%GU ebMgX+<_+We11hxf_SD6{Fx$@(+B^SvSLWMn zmWUCz^FIUVrhaRCvJhyUA&Gwb=HQHes9P4#Mt6zIHbg%13z|)%jo>ffQ=8uC7A}sN znO)LotXB5iSK|pjsFdU1H~rD%kx576WxMYdlVsp0Aw=cu!Oi?p{>-WWyMY6z6jcC3 zlD`7ISGyd+SzJHXci-J-SXrsg?8l4Gq+)|FCNq_F9GV|IxMJNn*sa561LeF#8hYFC z3(#Jxi+@Paq6*D~$l-i$*q!=Gu$HjL7u-;; +W|gA2_-xTowby>U`&uF?9vD z0ym!jl3GskUSGhCkv9w)A!ceTI*Z)QK$iR6(Hog9FK-V9%8S9iyHA-Fujri@e|!-V zH0h>b )LYRvr)fQtPek*TO6aY+JAS0 zdVFjRe7U$Wr0D1yE%U5W3O*ux1N-GgZsCMP(oa9FU#%MS${$I-7)o@5tp&Y>zm2P1 z|3OKNnaPSHfDp9WnIiYXErJph?A8xi$77!o)vWf}fppsnZ>O+fI^VL&9LtRlw-ag2 zK658i&X`6mcbPJK3A0>ZaqMslmrtbhz@Dm38wVY-AReF{gJKKB3$|vx$G+%p%?F?K zxbL}syu>UaojAYlOqz-|(2a>DzcAtg7^P<=G@Mm?&jo#wP;jk07T7=*@I0DxRhS4# z6$Kh{0hB{R6m}0EjJclFt|UQ=KQ6jjZA{N+$vV#%^>+?-zY9KyFzS8ld(z|i!g~kK zbD5jn|K)j 5^Dni;D3cAC#lV=GKo+9QHx2K$ V9gdFb3ib_Mn~5NI_4w7#qEOp4k`G`Rz~CX?g0OIw6irC{bnlT#X?zkcV%<_Dr~3peVntB-Tu&@3b)M9p3$9oq6fM~#pSbh#33hn)X)!e zSj@3ZF~UXp!C>R&H<{s7evYd-iiK{2chf$09VHd;=t+Yc&enaO`0H3^KE3u39kB8o zpK|$X;cVZWmgl~3KYP;M%jY2(xw%mvcrrQ^Zx@WSJ7y(KS~>4{<3wwi(b>KWpwTZp zJ@BG2x5v1HISIMHe$cW^CI7+7q57?rVOq==MYpvdOCNdsKC2kKq&9}f{h**>QTlMF zxO{VETSVnu`~ulqM31Xr7M_dbN)zS#u5wGZx{%-!X3bEY?jEH+TxDAjI=X{V6l-so zlN0^+BC+l74S{GrmZ3YmEbaWF%wECs-(lKO@_q9+1U$1Gt9#dG b{0E?tHU8V?Q_ipHAvoH$Yb!$~2C%YDTih)!WK#<_y+^T!!)XYdc6c z*`5~*a=;zMLb0y &;_T{aMQ8goJ)nPF}kATSn*56kV=tcuJU=p;d}9r zvVoJnY5 sai&}wp=Y#!c#2FUY--Pc z3E;RMG=D>ONZK4FaZ{i;8uXse{k# ILRopJsfbFv^WH=Y6(}4;5V+@$#%-l&!-@lcC zZr73~v*M8oft2_u`^24ZDrfgWR<^l=ua1@vG*zF}`~TTYLC%{_`Efth7ZHf^&wF zlUKlI$obc795?$RL4#g@ywJ#~2xCFN3LeXnglhLT?S6ct6K_e|1*dGS44PG65|5A4 z*k+Ec_+F>Wkc#DK?fRB38994OlR*6n;w(7;?xB%{I2z*K_V4$s&PkTPw&V8zGs|g9 zDGEx?3l?bE*t)z0T_u56G>*GnrN+54 zl^Fx**QxaIbL+ui<6bhi5xrhV@L1teU{XV! v$Z<(&L$jM$U@VVKnM?rj_c@X@x130!9(!HpEY?wM&FJcMrc!PIs z@n40PU?-Pfn7gOQF4!d#(kD|^ZExgf `JzN3%C82GNQNr}hO_oXq5W zOl1%0KJY>rr&}|*a!$n(>D=YI5d5}Gz5EOU2VI-hblymTROi;zQzk%2f6sRQI6)`i zr_*qBKoBN>&ClRX;E5@pXv@XU-k0+OFm;5y@c}%+aI2)oDt*xdP3vSuB;%;Z%sNN9 zKJK((4Efb`Ji9@P&4%c$T;v7&`tFxlsFa}k(sGRw&0(;2ZnfAmKA$&F?n{v6X0=0Z zrvb>H+3>-@krZ%zVJSm^hcr)5v_J&4PnR8%r(I08VtF43%;Y-d!saSrdR%
rNd&s@*;{rh}dZo%($zOHKK zN<+HUD+p2Phc!z2ZpOHH2o}Dvl5A+0Y8Bwbgi26!NQK)Bz$+IdTUNW#SVXXhwfT!5 zFL+;kZWUtdzJ3kU8>p^5&}p0%-^wH@j}n*V>B?*46`;pQ0ZO=)Nb$Nv 7vM#7wS<}{-7>iJ5iu(7CMfEnc zInnnP+5@==!V3F~hwr@le`~H^NAG*A^F@BC!x!tGEdnp)E#ZHU@P@BL+&DPD!a-;2 zGGO?%COjt7dF)LiZpiQ{IyCw@4!y=|>1}M%kQA vZtL|eh&!+dAwH=TOIwhw@0J1H`6u9lAGg@XjP!6 zl2K;b-+gQL=F=qBg(C+ayLJy5i1D=KOR}JcND5xL$@DiXo1^}wTr4!~MqeiBto>a^ zq lb$imD1hfwA>B6Pgk;I~D}b>aV%7Rq@Hj+Ngb&^ kz{&$ar{+W`SpQ)>R{jYzRWyub5rd~VE=;}u>;_y zEY^!u-zXA418&k?{SqoFUq#F-KC+zfj3-Fkfd3fQouKjOJA4g 52RiNV{#dv{tP1 zOKbJ-%>vn;GBv6f{3p!X330 k?gOBaa3D(IQ zdN;zu-zWDNv={jDB-cF-;$@A_>gX(^Lh~bHb-KB{xEtR%^57KZ?s!shr0j;T8xkU; zOe{QM3f_IQ8?8q|g}+Vi@6mm8K45wQu0<0M2NloHO?3Vt3i63RBoImxa_Y_rl}BCK zH!YIEu(RdcOyhEAgnyCfsC?iYNro-wB+`_5Isy^%A81m6Jb^1~{&UR~e``#?20vSB zo6kDqGinYAs^k`%T1_3+1Mr;w@*YtGIA!b(UJ4$v;`hFg5`6D_kB5{b9v?hohPq0; z<-OJ>|2Eb>p$S;P5LqXQT&aF^?()(jYjhgYq_EOg$%szMq&Y7}LUaUJ3}Lpgt8&5u zy7Df}EEI|?;aN#a>%6Q3T*|Piydi_cE8LQaw!rJk0IjFPTsfZYOO_rv@v4N9rV>oe zzB~&6+j87|5c|BpOde$%suPmY;)E-Vz5SB5JkI2;VqsB9^Bvcu#RLn{#Zm0i)ys6q z&^)OBv~TNxr-_>RA*FO1SlgoncWslGC +a zPJ7sAfgG5&-RbfbdOkU8#!C1!+w6h7oT|mg>vKNSwWi*uvo;^4A%Hqv)`SFzMi<0e zV-_0r8>YQ2Os#;?nhMzx?EfbvW4*Q1V(ER3VD0ZjZSe!&Q =O>27F4?rTC> axs4`t}-3RNb4@LF5vKfc$Ua3z}tN=HmaSoFB+LA+ULjhbYIId5JUiHPN; zqVcS->!9*7X3^&i+Lz10R>d|?+qfIE@xh)v?rCS}_lx^aTHa+zNyYPljI+%^^7*!X z%Tlhq(|CE?hz!zWyVb}=IVvp2pA%N`T}HAjJq@ECSptyVM|w`M%tVDRzp|5HQIldq zIjXOE3iMdWSFe{&QRQ6m!tVD~e%)V>zP-^u+aq90Q`faVK01;6Z`cI=nc~W2n<&H) z3HFJii@Pd5+R0d_fR&2nAiUS1w+bsL%UgBgJ6vha4daUI+ZPZL+(loBUe2D806*Z- z{u?#dmX S;%lEOq|5x`~EeW;kBj>RDAT?^y=vJR?rS}H5Tt=u;29>T$Tybjk|SB%fTz|GJA zzT{f@AXBy#$Vz%Q1gQlHOBnQQg`KwXXf1i*PQ6r%t1N{v>+*+=* qtN+f(lhLC&wvZ6g=h(svB+Y!!3g z`+DWIk@`DxvNgX}jXNik3?P7H)a~JUfPj?w3d;b1Cy|NX+)I5(^eT3w^Fa!nDa`Xf z^03dzc}v #MmPGN*7X`j93aSy0eI-!M}S6as* zb^)&^5HwCz{a-*%KlKeIL2}}|5-yt}(~T&uUv_jp5CI>DYMXmfo+*sLhlJ-s#Qctk zy3;)i^KPnG&ptsb=?}h|ki3GVSYJ=UJ9oWwpc37Nkc6h{o^*Xrre9jtEBoFaL85E| zlI&%k;U+mVce?f97hAbwdvNPZU2d%(&+b3IFA;LD)J6@@>IxANuzSh~V{dy>I@a(x zs-mYXbpH t_5l{xdSq^Heg<)%+hJU~pNn3B8vduq2E-)5m&r=3_|eyyK2XMF7K zA6gPr0#dB8xe9XJN9#&bbIb ^CFgl-cd+ zKQJ&uLigRcxCcW` <{U+MzKdQ05GP-PJ5t}&kABYxRPGNKR z6mT33w*dmYJj|4C-DmH7w#^$ M~Bf~HFCprwcqKhjK_+wNztt_o2pb8@EqWL zjZ;2(QT{7w9+aK?qPW*6Z5g;zwXqxtFe*!JA*?!e(8@h(As&^C4~HCAbXJd*A%hQ+ zbF+>Y0{3JBkGDyfLy&FH%SlscJaWpVfVBIu6%k}`Zt6vQy*bWEcG@P)d%{>J<#~>0 z7yCx_oSS) >uOLPY@Kh^^B@i3$ zg<@a|gy=FhjOzZ1W}{u6zmwb@f4^f=OS+uRTkPG{9!oZwZf)~JH&u}A4(&~P<>Sq` z6s V0uTXB*5NWdfftycrGk9=m z-5)PAYvnngwRldMIc9s$dv<>%?TaV|<1!arCKX+0D-X}6T2yw*`^B74nubLmcbm_5 zz0WoZ3t_{`H3R2^&$D>m1I^v)>}MTwgY~2@{-IuB4GS4tBoS;}H}X@@P E6#nB(tIHUo(j9n&Et8 f-)a8JFwxX}wS?(o17iA=kF)SaGG7cTxH+sZu)Mmy(ULYmg&Nc4_tznB3o$h0E zU2=NZ6CWK13U5&gpwCRgS_-MqrhjL&qteKRJaI9-7AqL7$-me&j$pKQ{hL-jbhlWg zXGB_?zmQg!2M8@?S?GefNtVCLGwr#jtaocV44dE>2KJIp}(ZCOIM%5m9Y(_V0iOc{Ofx`tE3PPP6&iRuh%z^hv2&uFoO z^#X+9_%{RnqT>43_1G@X{_I)&S}u5#$Cm^N9>@y2|Hii5HUh1F)Eu|@tHb4~IqO`~ zq-U`Z(s($gKdvj3{qgv(?_zm~mqsq}uu$K1#F%DbXvKAk)2){8V%N9jzPr;{P-KzZ z;HmZHk+uHLk3aUQmXp^l;9`T+Q9op(YgzVFYA%ove-9wo^CP1 ?Hpff zBS|&@{MzPuBFuR1>K R|))k7aUg{lGbNhag;o6P+2U^qy z`yZ?ztxhSI=;5at6+$ >)@a3sZzp!}`TtRfF#FG{ (A1^8k2i?$de98wCNCwL}asq4%S<(#Wc&F4BWosb%?q@NUIExWGfr}bXt4` z6oASXqPzNOj%~C}1LG*8ZOkC}fr_oI;hJ1q)@QMM74Ih+*bh(5$>QSTe`mId6{~UX z42IDwMaJKAyQ=IdOomiQGiS3);aR2Lm$>SyG~$ry`eI=c-4<37a#XZB X^SrttGYGs`*CFlP-XUMt zXxM9R*tPdYlmzcMGsV*aGqA86T$Yz_IHNnLd}>YQq^>iv;m+=tA%(49QfmpZin_aJ zUrZWNw^l_>c5`@9UOG-q^zut@y?nnbLoH} `;`&?b^3ypEJH?JJfQD+BeL(tA5lK}Umk#ulH$|r3~(!Am>P8M4l zvnvn!?z4IX_Uc=G@Vl3w$QWId9zuFieEinseo7|MGN^MlzowE(Qn)p(|2hTlnki{B zIL4{rhi5k*wzaF#ex))@*0%^t%aJ7CP$mh7bQ0 z#f#h7jAlp^OcK(B5HHlsp>yt&d=oy37H4T-fzYP{xxd8Y-jmIDzG~%v$d#F-z>0kJ zw8v#!6UAQ^8W% (8eIk?Mc6Az;=AFqu zl977EkXbWuniZQSBXZ4# 6uxdUYST)#Yef9HuC?FzX`cK9vt{u~BX8d@VZh$MeTCGMBH6 zYO;*`V~g!eWsHvg =B{tkv)>E3T;Fk znJFV9^Kh(;j6<@rQ&bd^70xk^V{hfy96ReA^Bj(Ie(zJC&wbzDe}0em|GdX_y{^}D zy^hU HaWD0|#&R0Xi oo!*@T(rP>20 z$7&e8pk&@L-n!OSC(W^qbtRx4Ch=Pb-^^N6*{@R%L5 LfBBb=Hao-!91at$a+&`cRzp~#8~1 Q&CHf|iCP<^!H@KCTsgZtE<$SA?Xr{AAf8@1DT7LconY*7n0c zVqEN +`DX{swxUroCPlj(K+4R^BW8w2)+1qDJ{H{?n#%B(VCmH83L zJ4vmY)40T4lq$TU;mfi>7eH^vDag%X;^btZ(p~iA22=mFFEuLWr?=UVHSoPJ;wt9T zI6qUZM%068(tZu79OmITCx>gI@({hE6>Q9Tu0IY;#CSbvHx}HyYAC8(Y`3LMlj{`U zTbPB=S()A~QvER6uykn==j+zl{m8i| `GI;1oz>t^NcEKCVvgGv=_gIU|{PEnK9x}6H5;T67R~D2eY!$scxdizyC0d&D z gIuu7+;Q{##OMOOyzn$U#T{|H zzujK1eD&AHLmFspmk=MH($bLXW|#yOMZxES>g>!>b8Lm6Q;u3JNPxq^gnT?hez-m4 z?;q5Ai8o8Lgh{TU9O53yyf!ammP?B8x5o0#;0 dA9l;aPSfwHF0nRY_Yy?*5V@Vd`sfc^L`_?UMl_TzsAC zg?!G#uLDo8XQ)SO6()q&gBCMod}W0XTlJC65?mSW=d9=zeb8Rt1A@5;&%-U_orM5W z^cnV-!G{ml)VVS9Ch8$;%YB#g!TcpBY+XW>6Bs@oqn5S+Kf&*h-&8i!#>sur{T}`u zp(u_m_ruQC2ZZ&Hc{QpozqM{&xwBna I=Y8S6B+-RIuZpoJZi2?8db6#&6hZ>w0Mg^d^NhI-268`+B)Y z>q1b4bC<_?=rfs5J^ZdjuX5O|&lOcMq }~gKk_Q{z7&nw1 vPK318}Rwz79K`&yN^6v=A(l8z&bY1??@P0eo9Gc$DcaorBGIDP4A1Y|I- zsrjzX%=RtfxsSSOz9*ZU8E()rwHac~*Q?p(!x5MZ)tGX%r~FIk!st=iN~Ss8K%($= zAa@Eok3Ev?PN+1AriCoi4Rl_neVG(g{@mYn@~Ts`D>8u{^yo;koxTp2q2J(aa?pN1 z$Xn@LYcz4YlrwYfWf@>%xO37!YcqH&2u$dSje6ixeqxe 8c87xxnMHe?v zL?!sD+pegVp{T_^E+L~#I*xIW5C8n0_7(f)xGyUrODoNfwp&H*6B87@&fO8TN7;-y zU=!cp*k(=n?Rq=>GOg{L=dBLYrzePe_Y5Cn4crAWLoxAjHed&p+>E@M&1`!Zb2Wd@ zUZt?rUBEw7!-$P;BYApy2uel$1Qg|;dpP1*`-ARX**0|rc{@=iBbK7=`vQgjF5V|n z24g!hl7X%`JvxQM@(49I*S#JQ414QdD0wC36g!gu5Cg~?LpjH=oir0vYvpVbqYXQ_ zETr1vRCVcs3ckQTtRq=ZR#x_bwhHn}aU-Gfqg4cUH2#hJ-U%1(G7IK5w|0< zwcT{iS=vjoo$g%{I%$F!kG8ViRnYbNWfHQG^sTRyRQe~q%bj wh25ob$NN3MPqnV+DdZKe>{%(*8J^}^_9d$F8WO_zZ%Ou-Hq|v4~ zlV%A1E+VP1$aR%R2YuN+X|U~MtDp|5Z}>G|5GF&YZee_PEe$-O@#`<`Q^OcjWt)$e z5RAyQYp7k5q`LzP!CI8I!MLZkrTAFLdjiblthRY!cK()3+MAQ7nH>5IMb>4)ne4x^ z?yGP(uz9rA-NLNE;zG=e>KJrIKsY#olQ+DcY>NjCsl>6N$h- zixWULSP;)<;Vuc0P*;VrQhlwoXeTnWgy7W2ik-R)9d?awcinFrEzo&+cFd{|TyS (n}@McWKotenOJ1R`-vXd$DPWAHOFx+-5e zC;Uav94LwTS4%}k ^J~6iYGS=YuO3(vIc@l|OiO{lZ_?5ibqOz5qDlC% zXk=KLk#|YG|9?nwoJGS6TJk_b6hb-DUq4hx2XAO2c#2%<5>ca|yX{Ws3==?a4DNS- zZjQPmPN0tqccrC`PVz1{?qqpV*wS8 v*fD5S+`U4LAt=#|sKS_Vjw( z@EOnIwECAIzfX;m!^kyoGqB!&_0smM %$PQTm?^$5ujO|k%MQ hal)?C^pPL zo mr!bBX%QKo>e9S(xe^}eD{S|V__o$?k5M`+Y!yLW9ztchi z$5oZ`TdPW^)T_n0flm*+Ea11{c3H{5ez0~3i1Q#HAIQy6bz8?ME4e}`u+_sRczihb z{#($$a+Bew%c{f#Jbg&SC*n| aL-C1vift9J_?1 zf4Z!QsEf02|GqOEm47428Tm=OT}PII4-{#W1Fz_;yS45j&!)%)%c)DM(6f_QG=d2& zh$m;wOvc-vd)s$PBKszM=*ZL~@XjmKS4G?VH3)4AG^?!~9|BOU?8HOT^_wxu^*I zZEeKwppq}u7r$8mv{9@+Ch_xMx#%+M*%)qm(kW8ytC|jxB}h9bt>u_9aZ!keWGhAQ zU2#TT%L|i1&*PaNgXkF)nHNr5>vR?2 hD^l86)%D1QK zt1G%C&-Z87a%6olURd~gEk|Lul5O01SRCd#Ra%XXkHvRwahhu>G%jmznGj0mv$!er z_;v3?z`B u}Rcc%1ll40$#_dN tYjRvo-8K`XB2_(?d0^VJ~X=Z{X^aid7N_a_;p z*YHeHuqg6A$0LIv(*T1BzniXUwkovo8T#U35;1zot@TMgDq34F4hd|)xs6>w^;;rw zX7R+8q*Z!35qo#DUmN39_F}qz4%#Umod)!Rk+ZQ{GlBD;v`Ej>jRpgJvZMKcnov1Z z>-wm{fI-HxJfFXzO5$;A^DwmGUPlBsAc3t>D5k>|Bi+v~f2`$CPa1xvQlq~g4h_8l z*t(77?{IkYwB05)1Z_LfSjB^m+W>A2TJOOY{UTEz8k|v>GR{4%e43em>I@5;9wt1g zLNdm|^)w%6(?rII)z#z4GoBU6NlHd$-k!`I0|EId%dq5fiQ@edXA*g_{`I9N!q>y` ze3GQTRnpNGpq(NyTSbEYvtb5__h|lzP-Mm%c{ 2 F?2cvJ5=*zFpk*5elHfg~ND2a?@`;N2lR%JsY5zQvd^o%vZHI zdznjy6!p~W4mFNd`a64Qn62Un3M@Y)9+6vTd0pB+i&>+Cdz^j7MgdVVFi*3} d W~ziTt-=GJfju{OAeD_XLH-x{`1J6kEE#QByV=%^bV(JLllic0h8Tz}})|!e2MR zVJTIfHf+~p!0;3ZcUCL%9I4>oiw@R8P!kKXF6TbsESmNX1jgz2H(SSGj-L|}Vg=Wu znmqh*;JRuQvYM^)oQo|LXk9#mbHre^WZGJD7ikya$&U79%cH5UrGt#LwiB`Toq1D% z5^p(K)duqaQER1F8AC7Gnn992_h*Nm^{ 6Z&U1oxocLc{?JBY@bdvxWqP>f= 2Ig%i_SCHMZe zFK8)w6!_Iid`v$(xnW0-HMX%YIjkfJAEz5=h|9=gKBeh#+b$%4INJ;k@a8rTP~mwk zr0bToz^$j26 T>cxIYe8*iEj#GyY5!$(ZN59f{xRycZuC|T%K!ClZvKP6 z9kb7;ChiJnt9EcujK3V|4mCa*i>Pa@uyMUFaY8BDRhX_d%E?akZke18Tb!b}w?Ae) zCVQS cx zyQb1J+-;1A1MJ|u9 Gw>ec*6p$pLa7JpkVKy(E_P?`#9KLuI )J*k&5p~c`}>u=oH-~|!Juz|d;w(CjnF11?(y*=kOFS;cGRT0v}O_>rk z-=&!A)Wrk&BM(m3t~VDJk8*PNN}Vr#t5A$n`eiwK^Z1|29#e@C RSQ6UKCi;9v>7$gMF~_! zj2tg +xOuJ(yggQq8?x!0XN|#a)Dq*~&B0NPdGF(t?&}7Wxc%Ax;IL#s zb#t`g#Xs9xk$~=m`%4stG7s>pJz-Q1MN5w;V7dzuyt(XJ^-wlJ{_8x0$^F?K3l#_Y zS`I^&+iMdC9W~S22pqr|W vi^EuK2Vf0SqA9QDlWQ;!xZL?Mw zt>fmyfdt+s-f94k5K&_AXJK+@glsNfzTMHL=t1AqUNo1JU`lVzKt_iq;qD9U^DD^a zX|ls=I|@C%_kOmEZhSUG4`msh0w4$}mVC1h#7a>l+6bRZzFrd|bQpE{skA*&{#FRn z(Qqqordut89zP2NYVAWf9qE0F*+nR}o^-fYEK@W24Z J}O{N?csA@yhWX0rB<)mGkC{3kkX`%X2{oi=03qESJ6 zCq gOL7%bohKoj0oNs0PO1xu;t5x(qN!5E>IC?y5)A$Ha08}jz0pJXY z1+?9lptQ1|0M{E*ev=l?OWGYamrGb9^g}}ekJrF?q zA{`Uj<93n4qkNEQP~b_e*K@0191STYc>kzi2ZuF}{@5u;CL0M_!8g)saAs oK~Xq_Uzt6?M;WB??MIJF0*f}ihNc`uY}*q( zIV+kuqXxG`>KB1`S7Vn8q9_vdDv+mA2Q#L9g&+R*>AFz-rvLT+ga=~#ZeEyR!23qm zOZrAxKluPne-}Vy6_TTX=U`hsmDSV+dc3zd;Y;8RSf9@sA9(WO{vTv=vz(I(Lj?_H zf~n)_S+4x%Pc7t>o471K?L|M*8^ztR$4O3A7`Go#7^MTVK$7|5Dnvj742ls7kp)z& zWunw`CbW+|`2BZ#_B;jS4A_(Pk%K~3JzHM{51$O1lh(&|ao?x8tX-3*@hH_IilGGX z@CM%IIRHd#|l17zwGqQQrWKhIL5=M zEsceF4hHdDlGw~x0R&z-bF6@OkHRXF)BHxf*5E;+Uqc~serDeL;LOacEWo}{N7FJ} z5G~02`T%gNT=xi?nCPm(0z!j_Oz##D8@K`ab=H2$XV^4$GDY0<+7^HYqmUm{{uYv( zVU7aO`Z %KRVPs9V##pRi}kR5eGD2u_j=O_D{nk``m{)&q4Owj@)6cWU@jl7j> ziLMnVLa0s%s+(`|46Bnmu)3nUUmH;$(jUDYn~u?x&;h+dPCN%xk4FL0L_pq4_^hx) z>>Y_b#n~nBGb7^epUv)hhnkcXaI|&aXnYcIEfDZw^umcf^oWIs=7zNeYp?j8##3y? z^C=;-wWe35{k}HcbwE9L7ktk32pT#Z;KbC=Z-<=W*4L{pY-brN4uF=6ZmJb3vol3V zNFwc+doY&V`&hKRAN!&FQ((r=yp7NTD#`hMlgfG5PV@P&cxqVui{zO-yZ(xft9KsQ zBy_f6sSN*V6bwqKG8p>8f@aT)?O$-F?QVW5{h7Qzyl<`LYErps#8fh{q!AzT%&` zZ)C5PXp8>H(CmxT)f0W(Qy_A<&z}?Ll&lc7uV5CR+M9(&wM9o*0@l~UZ`_45MD-j0 z{1Z CJHKT;aqVnkCJkjZT{xY3plb$f1X9rsMGia$(5D zuhDq6si_QnyQb>#cgL?^G?v)xHKDggg#Pi(em@~PC#3QGcIkUs+ttFCh}K2=; cB$g8%Nw7NA#x@u2TELyK{ zam#WKUwKTp19Sgb`j@jwz9?_F&hw|IVM))^5g|n!*lHBk=8iQR-V`T9U*n_o=2+>N z><@aQ@VdhR-IT%x&N}7G|5{5_#rMJP?->2lUL1bXgi7lzq{-0Q%%wfSs(<>t(_m_O z=XhquQkyiKpBmAKC6>GoOZ1tQXqpj!O9jL^YJ0<+<^(ttcROlZ!!p_<#j5I>3P&X> zO^2Ixb=W(iz47c>T5O^fogUdeTzrNfbMk7n90rvLKY6rnwch$CUu$wd6ouq$v@_4E zYce(=($qGYc=D`Y KYTWxd=9hN#> zqsN&UX=qwF2ZTE&dN0Ivg;%r+o@4j!h*Y^ibh+xv!Iw9n&+-`dMWI};Jw~XZqDN2K zM?seacz>bFD9#TEv7bNwzQ;i+;WU oFf1 z6;i|Mzn 5W`km^3ICJ_S|@(_OGLeZud9Y-Y*v zGw-m3^q8N{;)EawmDm5zB3tF0!sdbWi8Z&vHpbt9KkAJ&Pku*rB#-&8zeP6D37BYM z-hHd>w1;dA==t8o1kt~QcrHrZ|F> RVgCYa6?givLp>um@!j|Mtr*Ki< zonv8JTv%<}f5D| NKMui1Qo -s@5|FkY#{CZq}m?tW8`D|T3Odw5yx?#_YrH7-X{z= zMof&USi-N+MR`bk6Fz*h6_losNOEtnL=X5|Vlh4D@P8eh6(?qwzQrSE1Ng`fD>at* z_w#yuKThS_Ngz+q=P=Om#IwI^&bL>7v|f9tz}ugJY?3&vpbP$PR8~4e9IN`*&|BK{ zEfIn7MM81>(nhkR3FuqUwU;NBlut6W`};-oG{G-Dxy|>w?KTV+7i!esd__%oiA}U_ z@1YGL_TfJZPU}8Z53r(Z_(&5p{@Mfj@fGAVkL&g3VhZRDJDzZ{y$nq %J#uJCf1^XQS2+f@1{Tb|3_SerLy z79mN&t<0enT74@nvf@{^_@`%oSAJaiNieD$AB4P 9qxYv;B%(5()vW|I# S`EU`#Y>OI~uyZF(CH+UJ_9Ce}POn2N#W7yP(3m(sa)LcKBoa=c>)d-l60B z9X7NHCmKmBc3Mj} tg#rz;mo8{Y>T1HK`Bx0Pj&Lna0&brUdl`5Uo}k zPXL&1KaRXve7DKTRz1Ur=510hUDn6KumMYMm#Zq$4#?(yL%RMjU88LKR%&3L>GGqM z_SZs)To-@{HHVaJQY?%B(y=mx|2Vel54=Chtz6=c6c{u%jjtCEo>TvktaAMOiB2oQ zEL+VJ4NO73YefNBiq@0^XG6q|Se!pgFvia`+;iF+D>b8aVi~)9I*PfMmd`QM4KgRf z<#=NWi=XYDn?%iLXDDkgq1%W74?2jy>&KE1a^nsurWBU*?N=b7i1FL|X;DmZX);X> z4s<*^97-=@RzV9NZ+JkZ{2r>#K)hWT%YvrXh5-Ai^=1?P2jPyH`uT?;ghiKOQ&m&o zT^0`muPD_Q{WyACWo~_}au|s6-tr0tK!o{L(997d0&o}>r dq#gyr#0a9WVN9Mt2f +S8b|BkbMgr9zOj_Jao6UdF^1 zW)Oc!feO52>&cEeGhZ`RM1uf-CcV?jL;f(46w&Bn23h_`iq+mmiwe40XZZNMUDacB zZ<9(lb7X;RG9{&4Ofhm&JbflW4)~!4nYc5o3dbdg=uxDS-BuxzJdhy|a9PgrGo!f9 z;s81mW=`Q}hbcW~5yet+{ujkk_??0oDHK2O0RsQHbPoZSTe_L<@$PO_S+LBM|9rw~ zqUNS?agOhUVQy7`qx1o`BZ%(=CkXm$e@PWlx8iS|RD=gOcEyeF!)B($Vy(psjt>{| zn*{(Tf}UHon%FV|$kSGI_E#0N$c}X&E#0?4Z6}c;}ypoNg zC-82kRhW2L1VBQ(C#pMUE9PRnxSU$U{0cH |DIm47do<}%p~FPGY0VSS{$$>rrwxo;gDB%UIV6pY>HRA;D*Zy;4w@Cu6yJK z@0);Zp6j_hm#nisY@*jmdh%p4K`)O?T>hhN_=hyC7|31pd!nort0}k%sU4n^L0KRU zf4Tr9{52r{W)O&r1KS8r&U$~2779_@0HDzaPtO|KLGFIF`S_N?`7oyKjk@LB)fOhX z8(NXngWNL|iw^wnv&%|Rp~C&WJdLw_$|v7owc1(fM&+#HPE%CaWbu0F-*oJu71) zS1cxW^TiHs*9#gEr=q`|Sht!^;(HY*%pS?9mr<{_w2fDco^|0p6dq>H#k1}6qYI*q zoH^g~w7ruoPI3?r20Z$_3XFR!wt-BNQt!NPUOYo|9h29{yp(y64EfyJ#&wiyT|CZ5X&H$q% zap7x1%|$Daha6@ru>6bprd0)?P)paGjloN#y?SYPF)IRyB1t}pLB#VT-;de$8*43~ z=V5|8V*Qi;OBPNLOtaE&7;6JgNz<6yuqA`WK33f~o{J{OWNuLJFnNF`hhEWN QTtx%6&&Q`-F**pJg?FW2{4GmT8t*i|>)f?3lX*H-?DT*7l zJA$tD<=o~P#pac#ha(IE1B|jL&fD#~!rOC#0?T@*re6gCK0k};a6Va`ZNiSG-vp7F zmeqnkcy~}VQ&nSHoCq8xBc%zA*d(Jrt=8g?6SH8XzCV^j9WUY35|Kc~AWE-d2lw7s zWo~fn;1_t$^2qf(U7&Y!ijcK;i`1}SeGEBZy!0geX1!kKUFVe7ROf_s;@M0pE`9Rt zz_yu9pk3{3c#}Pojlh^^00>&12;$1miMH%`Cj{3X)SMyoAzNvcocmnY1FY8(q%}lW zHeIv8tArDC4FNk{Ih 8UKqg zCyq{aQC1ynCPxAcuXVn|+P}2@QX3xIRj0Y|rArj1^{rv*0PvVA;xaRF_I+KW6gmWS zmP)i)3p z)xne1XDQxFw56d_WoVvAKnC1cqKhpki?d72RX3%F#;^w&?h*^w6)NWBSsHxNwsEJ2 zHcN@L6Hi0^5y&Z)yo2X{-V_YK1_bWY`d`+T{C@dF1!8!$a_uFaPhy&D!R#aWfqlXy zj%Pu@LOp!(WuF4Bx{Xg3ndjwh%hlK*jTUL*7iPakv-i*yXX )5_j~x~lx4LRmbeH)k!Nz+u6&IsD|J(!1m@ zbXCgmM_DuZ7SZ#p$$tpr_!7n#sLDx|=+ndx&7pbxvqh%w6H2V^VL^@iNVa00L3Wx~ zc*g!PGj&md3#7w7#Ln|_$6hnsCDc{?HIpZehTZbJ*<}0q6B+H6;-hJG6n;r^x8uiO zf(iX^bN%fE)gjPamwo{OLw|@Kk0ez S5%m|H+kb50hF;+E?qpy!+>UG9 zjzP@6LwBs?B<~-}ze_=SY$VOIu5tzh(tCMaEB|Sh`=U)SLNGHVQ^4n9N|+EWw(q=( ze2N_^+|-@gMqZ;sy&_4$uMpo=nU78?uT;}XO*c57mxZhuCF1vQ*lU>tCW4vCx nl^GnTQ_@grFarRsO2Sc&q?+wf j#oqS P}UZ*Cs&gXQ&Hg(N}Lv-RZe l{^Ty8ddK2YZU28IFpNYUCtf J^;lCfRJ(WSzKNFI1STgZ`ER1s98Kbu3o@<@P zzCfCVbdI%IKHm6%n)&^rZ=vss;F{)WBIC7Y+I|{SR#v!d?caujtsbF)l&RxO$&8=qBAf3=*!<_1u0JSl*`PKUN#bHp-Rdv z2~icB)4t(BT7UGBPLHuqQrjx*L}%0~^_+(((!NY(`RFJUg_5VDir;ozhKedji8@z3 zvk$j#ycNg*F0}*!wN-qOEV0;V4!ScRzyB?dIrf$dgR=Cs>Df75GaXM;V=Zz;zGj}C zCRLv2^NJlQ*0E^Ob+5B|kdeb@ul{|oZ!~j7ahkDszK}dt^5ekD7;@t6B3qwkW*(4@ zU101Ae(V-(=9+YMss{}F3KUUxzv5> zF&*RK2o?mb`Azc USl*YUJD>^w6&U}=T3_E|}qCyDbCi4Yx zDC~&ewx?Ab9w!OP!&y1j$yUPy|6LOH^s@^lD9XxLa%Nh~(ybqLfnH8XNlFO~7t=pq zDM}Ohr9fZRY!b7+DCJDQ!H>x<$RP4Lm8^E`wfvz?TNY3+1*#53v9#6qKX*UYL*3 zI6uxqcrdlrDB`S}@Xyk9I}O_0DK9pr m+(vdVnh%#nRN15|5ytgDN$x zH7Bmm6UW{h(OeU5=aSH9J>f$8F7EVO!QKy2k4TWkCz37~txH-fK+lXW3C*Opr=@IO z*(3b-UTWD$FH Y=0MG$TEsVJIwZ Ev+PA`hD29=FoKXOI2>(i?05yC+`VEH9S8WLA~z!_tdB}tLWr> zf)qm46K^AU|NR?olwG(6F={4%bq>nmrE7e$F!-2k=JK6KnC|72@Kf7M4yQlSotozG zNKh1F61a;vXhg&AfF}!9c}LM6odx>E^MAKch34}c>*}lciPK~4(BSap 23QI=tqFEDnEIeVJ2tnoKPgW &X|Rw}%GmV>{?QEU_}b z%+kR$F8ACt_Jc2)t9P}RJst_brv)_(*!|QT-RtxdZtSkl4iMVPBdz9fJ^N?pr;bra ztme!Ra?;C}W2$Bqi28Gm;3O*Y^badpgoto16T0ON_XD#AUMy&iuxK4zRg!0VBOu$6 zc&54m^gfs>y`1Jv(<43D1X8kVGz<$Vy#>y_7yL_r%Zgv~o1dpw`tbXv?yRyyomh<4 z7!HFvY%3SYOe6?(C9m~_{w?@%>s0YfTc-= tSf$es$9kjPM&cqqVP>W4eojdH zRv}fSTA*+`wqQ#L{4l5ZA!Ib!{Z8qjz>5`@TO!o1uazUOVJ=GsK>`&%GBtO{p{484 zC2}fI(*im2t+oHH+%03+K?BS%cnTi`KkVZrMdNzUR!`-lBlqZ+PZ;KeU70bcymS}q z`f=fGiOZs?ibE2_t}6>1fdAMVGI{9r@Ba8Apw@}!E1F=9BiE09(#$-=!Og z{A2WkRp<;u6Kv#ig|}H6?H~{Tc}G7#eciA3ChZ7=g}L_Ipmb9m9iN|-!wK+`+SSAd z;K_dq?lAgK!EJ>q6cPSaF_i^r$kYK_*a{^Z*y6 q>bOY@o|czf@9(7*`@`*nLt=t=)vq1PG~a?w&eEw`3X<{da^PJ9u+PhZ ztt0rBwcvhvv>VuTdsz2)xSREOfc0Us^Tof7!q;$?Y#*XF138OxT**#To!Gv08Or%f zh#FdxuqriV27X6J|F8{J)LADafuL^h|1Bkt90qqCKKoHP{BYANeNkU$K|f87ye$Ww zUd^#-SzO2x{|ZoZ?% q=_C z&`Sb2n?Rm@Gu+)fYeE{aqlu_YF ?S3hY|EpIWCFYDZ+kTB;sLcuf!k>4Ovf z>kWCYE#5&WrP~9g&N*!&7jfL-1K3O<^+ADvFA`pxa`@f+=({(|$1OtcmenKND+_7C zqhNG&FnaqZ`1ohH5d>)@P0?M`0HvGIT?k}J7d^=P9;#C`fT3WKtERSXyGXUsC16P@ zuTE>f0yafA6dke>Ez9cPM3Xi#y i*{SEJa_(&nm#z$Z>*S*IR==a_hCWl2fAa>t@8lTk73vAWm<&k>3 zxxgcKGkf^A_U LWAUe2%qeUw8+>NmLZr^1aW|LhyYO;2hoAmVj r9pyI=jp zL-{s<*PLCXSUa|}5QHr2Y$_lFN13*;pPO1=+^)Up**yiYYm1}Mij{D$#cJ-b=*tXV&7@T~D*@ zODTaiO9L^3FXO{@InKnSPbR*u9DTpe9KZcbTL0tWrIN$84!!mo>x|z&pMP`yKtz6; z$y=}-D;#VOo@|%VX?CvTRLmaG22}fvib=w^x*bAKKe4Bh^tJm4c=>K3uz()>YE~O9 zV9M$Y9pJ0+GgEC`HB~*bfV5di-(N60og=kbM*3Z*azs=Buo;$RDhylR*zP6I*?bk^ zua1$^ OQ_Ob_LVwq_OjOvUTlV Y zQJtU1eF(3m@@v(qWyR~X1TG3C%sq2VX~$kDLr1X-c`?swq6V#v-s$k;0B`Y&fL6Zg z^0w) `yWK2p{{JNK)$aX$&%uJb_M;_50AskFuUn(~y z>#hQ|3fcf!_6u3wU)chF-N5;FUe%F<;CAjCSTS@pJ!ExTXKP2NyBlz&ZQ!Qw aNR)k5Y;<64+kOeZQV0KR8bCm@B&<;HFwI~@~d~wnl#`SJFaft+n6D3 zbk||3Y5%S_%|LpV7F|mwiB?Cni8CuSWflK&zO&?MtF;#sDN&selfv{8LG13&?a5^g z^4xb~oDsN{h?Eow?nGT-rVm-~2*aJ{nz-hHo{jqlzacXIz_+TNxlW_T#x3PPqmVb; zf2ZiIrl{=c5?giGdvL%vfL3S`I?bo2y#rVDg?>Qr(NH{BD@hf)quPA{B_DXeb_8)T zM$!ksK!J1$wVOqL_GstrqBUaAI=!Z0Q6{clG7r5IbWcaXA6`2}Ev`gal8KX)exqDN zixrVGW^;-hblgH-m`XAkylj$|zbYOO(XG?PVI&|4{?@=O CcJ%0eR2(dJD@C)E5;C3Gy0S3=xjhiAj6PU} zcpky; A8De0{8rP+*OwN2r>6z1@6$;R}Y%o+-l;c5Y z fbRNw$O^?Gf_7 ziUhr=Y0dVmBNhvv;!_jI{(42=iSFY=7HgJ}Hs6nS1RoKppkFUj+rtQN^f_@cxsAMb zXpQbJvwu)+Du8NFGjpq9glxoGZ8SBfpE3+|v&$}D_b8y_uyI_5wKyJex0m?`En^~# zR<|_^8;Sf`{J<}!jhubc^!iLHHv;@I?B)%UcmTb$Iqu=rI;5|J?}fFJ|8|2^?zs+> z=0(%HddYCd`9NcX^`j?;7st&chmQ`v4o&4_-Twi!0`n9+J2os(MdH=?-xkiJRvQEL zXX##TB`@`FzU)d0ca; 3v@vffN1i>M<`nI==c=q<@A_{ufl+ zF8u}7JhOYYM*E&5*REsg^GWt`oH>ufluryA(3!%PhR(`C;a _@>ZcfH-EW|lM~$gdkdzWV-6gSqnS}%a03=sLCs@z}C^>kX zSDp2D)Iz)uq5Rr36;z`12F xejTm7Ss z?%Kz_Zta7=Fo@E}$0L?offu$Ts 2VH{`h?sEuKdw z`a@^Qs T9jd1J3kHg|fFjrLO>U3vH1Fsg!Rx8LP!Pgn#^((5RiXx!gMM?& zOgifVxjA2)2D;~-OTx2>tLI3(TEF_mCBXF_iEMETEhV?6Q?)e+cedz{?@bmuYd|AC zV3*+m7~auZ)V@IlX#w@8><>>-bKCEcj}^Xhk$_f6khl{PY&mIt0jt=v$mEZYOu=9* zd@GMQXO>&QI@=#Tgw~?_?b<6#G46ssTpEx)Kj)Pewfxs!Ng45s<<{pX5SI@j7QUL# z)jRzaSnSTn>34c5qcxO|GP2+{yJO>oXXuKK^lFMV@X_?~)J*UZ>x!ib3%i3PVaRf3 zadawcZb5fE0)BCo?Lu)kWj{~cqL BBBN@mGWeLO3QLzI4JVF`xNrYPzD14mc?#_mKX6B4YB!3E0#=}A=fi)fbVOz zIs8jEZo9;WQIT)rM{UD^)YgCwDR(gUSV`+;-6FDt8p@svhX1svKO958F$!M3vOafM zq&5l*mN<3x)8&%_Co*ftjKBfX(LDAGdYEp#r4(81oP(_OMIP@jzwJjsK~J_V`*VgV z4Xu8=O?;uo?}uk$oN`OqO1>0Wh ZCy3 zoXD+M+#lp^EEsT0(>mI*42~uSg**s3EF1w(!OS*ozh3+CdF^59sLC_ScC>L3U~q0V zdWl`7`G$RS{24j3^V2U4JCpfkiE-krU|6cF&pRoT2z}|isJ4(v%hGmN$V&asH{GwJ z6WvOyUh%nz>sAwaSnh!P?30&UKm=F3@r$yq2SyrbpFc;$s(=~;G$#OgR|oqeM<6$F z-Kig?gApgn(B(0cFqJ7XZ(!Q%X8ni >lpaH1& z{%Eq( SeJeQ4*d@mopP)GKPIHW;&B!QF*CZ^Ls6@LHI5&;P@X> z9eMta%ToS(L%f=7A-Q*nFBbvg^{{WN>eK;_kB9eYBx!E_-Nr|e^N(Adlx+5aA0N4P zwcR4#CZ^G5QDVn&Elc#iZ@qkANLvTR^quDISmW>K5 %HS-s(=1lG_H^0M5e6Z=-WNb~2Da%#RoJ{qu zFMj68#y+^J)#K0(fAHO{KI7hWGF9Tk%VDxV^ygLyK2(aqcX5!;#qY&iH`jgWfA*7W z_eQ^akbTyyX95YoJdS@YwgTNu*_*h!ot&)(NV^}TeZL-TaV@O-b;ukjWNuqYcSot4 z0v^Dbj!v5ZPI<#ZwF{KdKHq=1gZlq)2X_A-?%>mdoYbim`MsUs`e~1VZfjZcZ}4%+ zA~2VOxczWu?_oE9^^YD6tq}$Qj4wkzZ~7y>XKHvkWOLbl+ H8v^+BH)8tIalVQ&WqE~o^& z7=z%u9LGgl#dGB}d3QcF_ls)o4@Q6CefmSj0N>|SlV~8Z!9D{$E+fAP0KysdkYUx} zVJ~2eMo2&lXKp!>f^B`>nvSDX8|JnFf?(J3|FQR;QBAe|-k``0SSVtnhKQo5bd?T? zii!;o5dkTo2^OS7C?QdiqLc^-sB}^BrWd7?2%(1}B27vN5Nc?lB@mL?8}+%LbI!bH zotbxLt@$u(`Oy{jwf9y2|6jX$G`Jxv@j)(N8ISbB(`4|4AIhrvobxMZAGrXyqYK;n zdc`8x)fPAS{}p)uy-?NUMPeR%JrA4N)DAAzQcgtym7j9LZ+Y3#+78#|pc`2aRDTSg zM(kcZP=u|b1mbO1XYw*F15m8iy&6iF`52l)mMTn#f!9Q|>#frMdZz>TGZdn>8wz!% zP01uf6PVM(auH`y@?M*Ai~UR31Rx)U*n^(!aVE8|DI=DYiFo!J8x3?0R)rPsF&i%I zSz2!c%-a{g=8sQm6Z$4<(No_2B@XEukL)|x*P{x#u=#Gm1`Q=9z0@pgXHna&V6&aD zN4{XaJ3w_%?f;Hu#A6sVptD)oMMC&g^ba~S65APx6hMj9P5V1#{qJ90vJs486bHbd zBr~8rW;y!;QUK()f{)JN7i2 x3gei)-RBWtw9P~8HVu0gqK-QFD!8^pG2 zsQr97EX`d_TDB>+3?I}w3!pbzNmUlMHS6w+*xo2DP51n$^4?v_7L&lCFvxKweBwwM zP;!f 7jnR>!Zi`+gJF_lWG0~qY@PjCcCzeUQ $%muq{wUTM_2&pUJ-%E%Cy3%su5x}oA+wSREAOUnN&v^@VwWkgHOFm}w zlLXekUq#r0opu!w3<0~CGwFy~bu3w{85q }xUQmf8@%Rfa}(alGC!F^mWVqK*A%YM-p7N!)q_$x8e9c!NbJ zPeZ!cI8AI3j&Hl^#9~B#VH|T=d=k(kob#fuY5TQsgA`Kc&wH kG8c6D~q_SdE_7(*04Z={Oz=A3H3~W3cMg(t$jmy4B;YgIE_+Ob;@khoT99Z}HfT zQmi=|Xkpze2u&pcC|;i|^T7v3Yyjaf8!z(4(pTFT!0x+$_%tec^>aoNg$;Ia39|qg zByg~@0S#X o%STcaxDPS$X$p?P z+>IOFUEJ^hKy_B)pv-Eh1$rI$`cF+(C80FQgm${Lc73YbS&_?Ih*hcGX& Umd{%A3(dcG1bulrA2rF+T;@gxowL9#^v7)rM6#tO*reBDdE( zYPw`AzFTw0gW+0LGu^VM%72^UK2>^WN!E5NW}=n4DE-4}cJZ81e98sO)Bduio3Q~K zAHnxO1T!5@AD4({*u6k^tcc+k#o|Ha0AEwbxRA1j99r*Y?QbbW0k8zqJ7f#S^glD% zHUVzJ$O4!anXn)0Q+wp#yl+*5e`UjnGtsUTgda5V0rkE(KmvqzE1~E+v-KY?ubtbO zGUO2qoC1hJ^!#*c!wb8XF_3I%>jyC;^7hk$*K0%KkFW}3#BP(NWn&e14?tBqMHENn z<)7l~ItvydGo3;P?a-zK(#Kxt4H22Mx4$Om*c|4t#EtDbE+3f_c17MGq`4tz@k?Qo z9sQMw6CqTfjC%nxI+;`APt!C2FuH)^21nS7*%()tJ8bApxX_gI6nGY1>WT!Fk*tV# z7x5d~=p{)WEEU-G(T^5C&7nAJr5CjvmeY358*PFRQ*Il~1CWyXS8zk&m=-&UA|HW= z?5GiR%PVj+^1U3dc{XHy?vZVdF$1$aZH|Z>aCB^U`P{TG*dc`7bwUAtW?EOg9c!@C z7q#xQ?kVFRyvnmb$KEcw;GWRH#VeP4J|8prmX;&Gqur{dc~1UvWp&_>rMzu!?lDo8 zbMhA?ZgDPdtWdmEy<{~`Y@0?toAWNIkOR{?1-u{<4TCGW$iaX^Ht _BD*blpEH6 zfEI?QhlQ<`^ZO415GB5h*@$H}(uhE1Pke~j__=w?u?eSLlkX2?$rUnNNz7KW;u9cc zD_+6LLxyGt#gI=?-xr18n>?8{i(|%L$Z};|7{K9O+Z0p-#9=rZIJAdUsrjD{nvVpA zVz+ZKI`-Mn#rRM@bwyk)wQn*z_?1uKCt*UMf_8I>cpr6y9-AfVUJ$WT7jJi$glpQ+ z4uR-f{!Nn85UQfc;oi ?6ss%$|3 zO}Orlt5W6aj576kU?6lXthzI7RN90^xz2;s+zr94Qv?H79~$F-iiM`QX)hTW*6)px zdp^k-;2x41Mlap5_=#{kU(1O`vpa3QCy9Vvq1;mgBqO4*e@6-O)ZGB4NU4U+eSp~> zACTZA=Fx{e_PWaYoP9)UOv|3XmG-`U$=rjG(YC}bk2Fo)_9i;+XqwMGX|Dc4Y-VjT z5^L&9v;_KJE!yjud~A8737PsStFXH-HUq4V7rX~J=sXHGP}H-4LCGBIB`UL~ Yxno3 z)oYC$ULA99G%(@Ut3Bek`XJOMJ&*M-gvRUN5t>^7LbI!Aiju0s_-_8`$zLXYjC9vN zSpA~R&`=qD*sz@0c25D`aEym0!s*3zG+*lC(fWCz2Z#2@VA^FHwCa$8l#$M)-VfP% zLs3(ixb(8j8AzGr=`G?;%6ki{d307;cRByG;}P>#C`{}ZShMFBSo2;np$auxE7xX) zb8nV(2=@rKr8ycP0a9VIV{)rOCw^q*4;i1Ertf)D{u_RY{05?Y Y#)Ov+R%Dh4YeG(PD%)jfJ*OpZ; z3R6GG$kinAv%tk~LU)+6JF2DoQd62R)djdQ+tOXU^0(j=wJOL0n|+amkzfVKd((NS z9WYkS54Szf3cSm#om7QAk5@XR%dkW7T@wVW7W8J<=LAmMOYj2Eq|IGthirCdeuAj` zgbeJT5oi+KQTJs+^I(0?4lTrPg?LD8I$38T$|mqQT&c&*#L=R!$UPc+9d>?JbEIu8 zEK^tCFY@uGW(M~UW5W$`-M7 IpC-)aCqyQ>po)#X7}kByR&;rqt|;QhR*$Jv)!L)$a;e99o>5T& zv^M9oV_rDBHXqKNd4hvBUL7>y$cZfcTkNILufmM j3B|T>#eCR ^AxE|KnbBUnMxkJ9@KD|frX^1Cks)j^2{zB-dFT@E*1hL(T&&TYc zZf3kGBXnBPVHLC?tf^vnf1=FKy304;MfZvEZ?N3GLb)$4I@!Tai7pkUUo&Q3FJ^cE z ;dczL(L9O4sS{&HF56CDd<$xR7nm z7`H)TVz9&;k}2kZY9@L$5cMPFci((R6Kv$e7P_8h*efl3(RKB_?X8tKrz6;B(#0P} zdAYBCuAi{9plXJ$H2sX7?`t>hNl~BMAFs5$(KK~upjR`o_S49+kDjZ~Gi-CxKr%WT zt2=6aWa-No95{%z{@Lcv(~(}I^M=z1GS@EVY2oeMyN63uT~B@&v!kZF1ZM5Le2^eO zCZ3B^we-_Sq2 R_AD* zsh*6ByBptI+PH~?dY1#-IY9jnpxVu!XwT&9oDHdC56=8Zy1r{CFAwpC;^lgqs8;#z zW@%q>DbF$HB6Bv*uj_j5C6|!`-M(hz>-D;}fL{~fGdKYhEClivH|Wrh{+4gK=n>nP zm-+T@fhU$w)TdA9F8vZed`pMPw;_g{Xp3oC$w|)3mUVi-);03yQR=ryb|@=>BMDOr zJk165X!{)Q(7$|Yp`?+AhiOU>F$tN9DX}xmDZ295i7zJAY|PsvhFXhi3dc2t%H@ zQil*m19H51rd5I~6fYPOaO$$C8ujT7oy=#9#De6-8IP58eV7uTvK!_5k7d*iQb~sQ z%90)YL4eZlO;g{4XLuRV7wjhEdun;_wJnf3SdUNbP*aiJHRhOqNJ|@v+Z)|rK{I8H z5bqn1(r91id$ur-SATxsE~pB5%NJ6OfsxsBL82kMKG+{AFz4f2?Z|jGRiQaz;8?nF zj_>s &9>NB5C6nzj=S=tm$qsgTpK G?`~@_e#%B`oD% zL;0mC#Uyeqkbb6!_0RnHI(5 C9x|>4|TadSigUGa$b70A)_KW+RM=n znRZ!1=-U6DGPN@)()1!^hXGd9l+iDz6DokSsf!;dYpzCWb*h!h-@@=E{oc$@f}2@I z`Qn Ukc^f}~w>hu8 0im>G*jMI{-;s3cX5 zuSvcb{Soi@dz|+{H7Lo04A l8J%4z9gn{K6WbE(f zpoa&BB_VtpVd6INS@f~=ZiLYvl@vfysag&I%VA*yMHlEyxX47lI>nW~+qtoHcyH&m z3k~g&e$3mp1vx1HXC{@xs4p*a(5w+aWX3d{&LjVsMq4YQW*UIoy&XJ`GUtPKvSW}& zG8Z}1(k>K>>hsAL+K0-!Z$rXI1jXQfw 3{BCbrp0sDLycJ-q!S(W_vk z>mOWro3z0xa2+S9o0|fD*(&`F&IgIl693vSC35l&MC6bYAEexE zx-pWXxt?yWg2SH&-I@;hs9N@dIIA;+-I_8u^GcGd@5b5fmMG5WxwYD&+4ngAcDO6l zDY-z63p5Q4r#=w!|9hIK{rmho b5sZI1~M}%>LcK?^-x0~A+L;|{OvyKfd9PyW=cA59J zs+Nf^+v(H((a`NCL;ZVwyoTpZ@d#;mi64ATB2zS**h&tTzUdq8SAY3%a`c)vMR&i7 z9XwuPb2u&u&ru7FA{rCue+yDPZUmsa4QJy0{}d z#w2kQ>F>&VpGqA|=f2!T7e0pio OzrLf)B$Pf@VjEOWM6uMEZj==XTuuRF?*(6 z9QlGMybkbTa?VtUzU?hHzsh64bx^nF##Wc@0<=VV#NOl`WizJp#{Uo@g`7e)_$)CD z_9lCm!j0jS>OG34+wfISj0E?oZcO$MKiD2!cgA&rV%jICTfR(Ne-%=t6`#p^>;7kV zp4k?zJq1!#s8Wf!l1^nKT15@y7E(&SbhoOkl%%Sb)JY|YyI2DS?xrIO4;+ieY(cK- z|7MkBuEW(HeATMp?d>6Z9d6}&|3j5%T$=UEaKhmP%j{SKn%d>bM#d ;PT1hs&ilo}po>z|r?#4xni3099-G 7Q!BlxS ZjUzqB_46 znlGF6wJY=IG$aGp`)3Vpk%_;3JP$F>PI< d1V&RE zp*3QZt@9i@dfTn2U+fk|Q$N7>&pG+4rUrzo2Ns~K^P}uJuMxHAZN#(rMe{^HNX5C+ z )8lsrk!3`g`slDWo4Vf42=xW#Y{=jE@;`Gf7V QOfBnRL${qry2Ss{H<@QQIjxrJ~S0MyoppT4p4Z;ZsPz zW{A=IQ^@`B9+n!NFI(7pRf%d3k0l+==CBX6=e4LCv}|oubuI4{%=*Mho-*W=`Tu=9 z|4;jPj`d%TRz~eQcp*>FlNx+EA}W7pSz&@p$Vm*2BAv1CNQ$Hs`%8Ch&Olwn3PTcR zn?&4e4xG)RmK#5NV0XSQgADy^Na?!9Hnz0{H4vNMuD3m)R-a$DlVE8dvNU3&f `?C8p;{R1J4u55c zgJ^^jGL$bEd~VsiKK*B^M?fAY0Ovih@Y)h{$~yjQm8IykN{iT6qUO(N?mO3@=6L)V zX4O+S2Os>W!;b~`5HaU1_mBH8_fOg{_s_5oQpaRu$UO7^r4q{r%WJ5<_&+GIs+i7q z0r|T6?hD(mz7wSCIr%j;GGAEs>3!7gW2}!QRq32T(I6i68_y)HHeoqELCtn*$$6{? zFi{}Y8K9eipaS25-xWpaDNWbbhgKfG8A!j3IyA57qOt`a^n=|N)&-|6ak|<}G&`$Z z3oZ#AOrztyESC?$D&Zyp-n9}hYv$W(B6S&YOX1#|Wh6m 6D^4@qWO+%+VMuVf-H=I$UVhW%X8n+ozH2(T` z2i2rG46SkT>r99#-;h|Xd_cixQ9k*3qRO4fdURrn=sbEPL!)JQ?h(U*F)#(ce zXZ5H=>Jj-cvXM9feY>_^p;?--i}QuYMaW-Q&g;s*sUqjk z|>kvCu$pe&~+Jd-y S#aCclXDB&(DDLY=~&Wf z=`qCvlE@ueqL27xqXy5>50}gDMMUyT@xb0-gZMM^syp1Kh5SDaLSAWR^Z-{fh0s#; zf1zwbogAi|9+8Z=nyqdSA6LD!1b`C!8LaaET1E1vxkoSB*4}C2OSV_%(>{eSV4ZZn zwMpe+e8R}OODq5G1fC&>&(nDthqJg0nr!PUWHe+nCG@fQhN~ezL9p%nhmw#9vP&V; zr{ErxRFqPX3-=f}A#XRi7Ss8qv;e90+^}wHad4!7obE1Nk^!9=?NIA&M9J}~|7WzV zXSlR{VeR-z-okb+mIyCLAlE{_nA(A<2&L7IlIpI%q{7G{3zS2|gx_+gvRf-X|3YCb zd910xnDcStA?z_hcESlpl9!22-&wb6zO*@gsRurnUx~M;K*$yTSEU6IQgGX%u?NQs zo*&&XwRfS##ta>rscG)>HR-&KSBN fTc(ND4fy)!Bs&>>5fVffMMm^O}HgZ zAauJ4BoGi4M>87ynX|NxC82ixkdY=z7P_293@H&(;6|`ws}j{BYx_pTqZoY;xy=Do z^^+Qxxs#kmW!MGU^Aj#;3OQXx(;O}1Ke>+j ;QR!Qh@rcWp*^nH( zWjGYD1a24V`{pWXx!gSG )kWz(=<&4Dv{nlM($Y8Ffz%1) z#s^~GtG*}cp2LTsi`7~_y}6!r-H>60r+@EoD5@Tmn26Pp)kMH3jd%;@p0YOuC%U1O z<0>iBomslKvn&9}Z`Scd)6+YU+uOCG|00d_2dSlowU)d?)fOzKW#~YhwLDkbs^i#h z(=I{d*uEz+MVx?Ck 8a3{lJaEz4qMOflt8wva4S(+UjuMA}AgiSrl`9Kz*% z3BeJOc{+_jy+mX5DTE60@+Qf7UK~(TaqdA8fnzb{gf?33JQe6LWj=7uujkH}50Lqh zz3!L+z$;Kp0%^p#RAv|*w2{Q#L>^0msHJk|^Ru|tEhdNO&AYkaa-} 4Y3bRtaP)mlAckOnH*c7j zx4S6pL_@PP3k4YB$`7&L-ZsiK!1BIls@AQiTcEJlmjp>s=BxZ7!4aS}i#rQ5z$84h;9PZz0eVO4?UVt`A30RKW$X_w(`BPID zf-?a)+Q**>+1Glz)3GGI5I@hUQoe?rff$d%T(u1&99FLw0ok$?$B99rSeKzV2P2 z>oqb}vF}b_#ETMa;7){Iq)*nmXT!U&QVQ&LmB{ky;1e)Xh{#??upbt*v%QCK2x3W5 z=lm!%d|6;)`3S3~F27?a$&gjo+xKok74EnA>2;K<=48bQasq P)XcRvyoBFTLeID0F_K;i7l>P#4b z8M=P(9tI6FaUoh`k|qx#-k`jPAM*oJ>0yQIygfF~1nJ7)bUrS$?H;Bc)S;h1T68#P z!MMFD%ajfi;Q{zqjXfp0Jdt}-mm#l)rt?waZE2GyuU}$hOoZv8Ud*0vP=i_eM96|T z?4M5O%$Bjw48SBj6``#DwMC3^l4OjB6vyqIRC~_zd);*$m(9Dx4(K+v!INR?IF$U; zl#3Zw(ELepy8zf|P~M0)&iz#g>+%_R9rC@m-UP_jg;Bp=)H)daTyW^?E>0VJ(`Ig? zru3xba6q}@P1mR&GuK~@$~1(bLlbk>m-}X^NlA~6G)G Q*=z}~~R^(X~4+KP4M}x8& zoh^;&{<-Vp7w7`>Hsw_wxzsn+`AYGdjlGX0RnHVEUw`(Ea?RN_TrXXWLJQULhVeU< z6h2>ijnz-Q=upzw*3d3GI{C1zSt1g!4-Vb;?aH$HQVB|(XdoH8+xItY65GLn)DP~= zLTpaY3gNJZoB$kYBPHTmjo;MVcj~0Pc {#=L~c#5~v zhmDM#Cj i~j!!2)gFo0*w*P}xZ6z*vj2vRF**;_Qo$O6k*f_v_YhQL)+neOv>dqgp z0tFHd11SkvekK`AMnT%KOy e(SUYjsWh%|fS+k1%XM_8~Nlw9x5zf9A z0x-T)*S{2v<|rmu@oT(Ns0u2VjEYZ!?~0$bvrw~$Y^&qJey4a`@@J^4n7xbI{*P86 zQxbrUPZO24%p`PSEq>I0b&~{5Y|u$>ilTDH+nbZqHaV2_&r59I70nyl63Hv9;?Jmm zZk||$0yeD{VGxCGPX-XIo^OAia%&qV%nGsz9;W(Gz{KROa4UGfy$;7t@p lAUDpS&z7~G$M*9j??#jYGCO8 0s&`D#$CIm^&-Xx2ARXY3zcC&l%of zNeH5RK^1L0yPyKAqy*}caRcs$)%$cU4iYldaLnw`2*fJ`+5ztU6E8G&L_dqPIOR{c zOTs8W3b967|2Rh CfsqaIq$-1()j zW-r274HOI$%XTZ3ivK!O1e+=PrMMmh$`%R`sW)pT0$<>SyG|tro03qAaV3>^m;8bI z#8GkV{ab#DM?9C9yP5qq_Byt;9%^s1mF)MkUO1M7RBf=xR8zQ>xYed$k%?Q#JmVXn zpE^3vy+itkjXU6lDN0v*os6%tDJV3j@wc~i*L7@}Vf_Bx3{xRha9O@mlw#RO=m76A zaweT*en6~$Ac9Xukq7WH+Lp>0G>8^)znX8QUBphT<8Xl16KM&GWY8u*QvCt-dwGm* zz0mhURqIP)n=nS_2>0=FAfpiv`bH7B=`7p>P$KOfm$d|a71POZdaw?w31jZt=9qMM z*Oq+bDlkgErQsCK6Lg_ql|3~Ur^HfRZ(0Bo#XHqYo=G_(5ME+FLfM&87wKqLH>fo! z>q(!UZ&TzysDG4lNJ->?b;;FY%#&sCOdJL~JMs5nhr)FFDEIQc?yV}R29!+}eOc p!P$QPo$NnyMpf+kcKWk5RJBMV;9EQH`+?iD=j)RC{^kB&z_MhFQq6qY_h`ze7J#)E}*;Jq22l>yYJU?0T7e9Dk(wY8CEplOw*~Ex0(Q$4W5;zBl zMe6OTM+vI;UVQ1K^n5ilPKXRhX*P;nv=zN%*XoW;V{~RYTAmS+m_rX31Lc^2*${A2 z`!hPAn;o<5Zm2oHYp^<@zKsE@DdnNd=b)c~q|2hWIB zU_?_|UC>K3PzT(9$b)Cu4!&v^wic^ZT!bD~Mcet4W)LhQri@u@z^tY9<2U<5aKWHl z)e1K^gL4+sYI6 2k3HAvbV?BBNf zy2IZkczTOV+t >N$BkzO^k=h?HG|JMR)AnvpN)kYFTjvXDetM8vprju z@PajFz_Q;ml;~B0=6Sv}Q2A^&aKCDpOTlzfOXW=JOY(9IoDn02N$4MNV1VyM&oNc_ zMsO^A)6LYcPR6PL)gctnu{zno(0cl+XSjSy&!v2jtNhwhwZNF@yk~~yBPP((RXy@q z-#Ekl+5@ngZ4NplY{@C~?Rl&%d>n;?-sGz>15<1!o1I}!=~m*`5AZlP$(<_9I$CTd z$XZf l)AjvJ>*D3*wG`EX@ z_W>g=wE!iTC7_7&AgiU`3=FAulT;VXx0lV8t$tDk|;y20F~0WT1q@ zr*6ChWAgit)Q*i(+g#52IjKdjl{xzm#GErX-!invm9TvhY+nOn`c)m8A=d8)4Oqn{ zWi6m|XV~7$x)z^*MwZtoNf_|M0i^+EHZC!k4^x3!X4VyTrun!tGE;JyH1cd+Sam$+ zu7dPq_)RV~UC)C_1hqqlk-eL0Trzj~V4i#;WwO4Lz4dppN~6Na4RLUS%{0+hiWV=& z2c3t`##Gz7YH#$l4@oR8g120i3d`~s5}GaJ*ZjT#LTG=d;rRl|@^3tX_2){tEQTBK z3{|#+nEsH!#tLu?{j76-L%0HvhFUTS#wHSDl9%7tS*GfSM^$Jk4TZUzcmb+iJAZ{N zI&&Pfbh*CM*d``;{Q`L?^l#L#mnPijr=@|)>Ima2$+o`w-9bEcEO0txFw1uWA*Z5F z1th5Pj$*v~4Tav{IOoJ4s_|^F`em&TYZ(OyUXeSzSybhBiA~-b$SZTn^f(1X#lUSw zbls@ohRD=mj9+a?WzRAwZ13OWpR(qgLb