From fd6245441fc26eec1478f188fffd07250bca5858 Mon Sep 17 00:00:00 2001 From: FelisDiligens <47528453+FelisDiligens@users.noreply.github.com> Date: Mon, 16 Jan 2023 11:16:45 +0000 Subject: [PATCH] Documentation --- Docs/Building.md | 41 ++++++++++ Docs/Program.md | 7 ++ Docs/Project Structure.md | 80 ++++++++++---------- Docs/README.md | 10 +++ Docs/assets/.$app-start-and-init.drawio.bkp | 1 + Docs/assets/app-start-and-init.drawio | 1 + Docs/assets/app-start-and-init.drawio.png | Bin 0 -> 39182 bytes 7 files changed, 101 insertions(+), 39 deletions(-) create mode 100644 Docs/Building.md create mode 100644 Docs/Program.md create mode 100644 Docs/README.md create mode 100644 Docs/assets/.$app-start-and-init.drawio.bkp create mode 100644 Docs/assets/app-start-and-init.drawio create mode 100644 Docs/assets/app-start-and-init.drawio.png diff --git a/Docs/Building.md b/Docs/Building.md new file mode 100644 index 0000000..37e0bca --- /dev/null +++ b/Docs/Building.md @@ -0,0 +1,41 @@ +# Build process + +## Requirements +- Windows 10 or later +- [Visual Studio 2022 Community edition](https://visualstudio.microsoft.com/vs/community/) + - [".NET Desktop Development" workload installed](https://learn.microsoft.com/en-us/visualstudio/install/modify-visual-studio?view=vs-2022) + +### Optional +- [git](https://git-scm.com/) (optional, needed if you want to clone the repo or contribute) +- [Python 3](https://www.python.org/downloads/) (optional, needed if you want to use the build script) +- [Inno Setup](https://jrsoftware.org/isdl.php) (optional, needed to build the installer) +- [pandoc](https://pandoc.org/installing.html) (optional, needed if you want to make html/rtf versions of the "What's new.md" file) + +## Building the application +1. Open the solution `Fallout76-QuickConfiguration\Fo76ini\Fo76ini.sln` in Visual Studio 2022. +2. Set the build target to "Release", "Any CPU", and "Fo76ini_Updater" +3. Click Build → Build Solution (F6) +4. Copy (and replace) the content of `Fallout76-QuickConfiguration\Fo76ini_Updater\bin\Release\` into `Fallout76-QuickConfiguration\Fo76ini\bin\Release\`. (Create the latter directory, if it does not exist) +5. Next, set the build target to "Release", "Any CPU", and "Fo76ini" +6. Once again, click Build → Build Solution (F6) +7. Copy the content of `Fallout76-QuickConfiguration\Additional files\` into `Fallout76-QuickConfiguration\Fo76ini\bin\Release\` +8. Done. + +## Building the setup +1. Open `Fallout76-QuickConfiguration\setup.iss` in Inno Setup Compiler. +2. Edit the first few lines, such as `ProjectVersion`, `ProjectGitDir`, `ProjectPackTargetDir` +3. You'll probably also need to edit these lines: + ``` + [Files] + Source: "{#ProjectPackTargetDir}\v{#ProjectVersion}\v{#ProjectVersion}_bin\Fo76ini.exe"; DestDir: "{app}"; Flags: ignoreversion + Source: "{#ProjectPackTargetDir}\v{#ProjectVersion}\v{#ProjectVersion}_bin\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs + ; NOTE: Don't use "Flags: ignoreversion" on any shared system files + ``` + to something like this: + ``` + [Files] + Source: "{#ProjectGitDir}\Fo76ini\bin\Release\Fo76ini.exe"; DestDir: "{app}"; Flags: ignoreversion + Source: "{#ProjectGitDir}\Fo76ini\bin\Release\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs + ; NOTE: Don't use "Flags: ignoreversion" on any shared system files + ``` +4. Build the setup. \ No newline at end of file diff --git a/Docs/Program.md b/Docs/Program.md new file mode 100644 index 0000000..9b2289a --- /dev/null +++ b/Docs/Program.md @@ -0,0 +1,7 @@ +# Flowcharts + +> WIP + +## Program start and initialization + +![](assets/app-start-and-init.drawio.png) \ No newline at end of file diff --git a/Docs/Project Structure.md b/Docs/Project Structure.md index 097faed..5cc32ee 100644 --- a/Docs/Project Structure.md +++ b/Docs/Project Structure.md @@ -16,16 +16,18 @@ Here's an overview: ``` 📁 . -├── 📁 Docs ⇨ Documentation +├── 📁 Docs ⇨ Documentation │ -├── 📁 Additional files ⇨ Additional files that need to be copied to the bin folder. -├── 📁 Fo76ini ⇨ Main solution -├── 📁 Fo76ini_Updater ⇨ Solution for the auto-updater -├── 📁 ObjectListView ⇨ Solution that extends the built-in ListView control. Used in the Mod Manager. +├── 📁 Additional files ⇨ Additional files that need to be copied to the bin folder. +├── 📁 Fo76ini +│ └── 📝 Fo76ini.sln ⇨ Main solution. Open this. +├── 📁 Fo76ini_Updater +│ └── 📝 Fo76ini_Updater.sln ⇨ Solution for the auto-updater. +├── 📁 ObjectListView ⇨ Extends the built-in ListView control. Used in the Mod Manager. │ -├── 📝 VERSION ⇨ Contains the current version. -├── 📝 What's new.md ⇨ What's new? - Changelogs, etc. -├── 🐍 pack_tool.py ⇨ Python script that is used to prepare and pack the release. +├── 📝 VERSION ⇨ Contains the current version. +├── 📝 What's new.md ⇨ What's new? - Changelogs, etc. +├── 🐍 pack_tool.py ⇨ Python script that is used to prepare and pack the release. └── ... ``` @@ -33,35 +35,35 @@ Here's an overview: ``` 📁 ./Fo76ini -├── 📁 Controls ⇨ Holds custom UserControls -├── 📁 Forms ⇨ Holds Forms and UserControls used in a specific Form -│ ├── 📁 FormMain ⇨ The main form -│ │ └── 📁 Views ⇨ All the views of the main form -│ ├── 📁 FormMods ⇨ The "Mod Manager" form -│ ├── 📁 FormWelcome ⇨ Form that opens when the tool is launched for the first time. -│ ├── 📁 FormExcept... ⇨ Opened when an unhandled exception occures. -│ ├── 📁 FormIniError ⇨ Opened when the *.ini files can't be parsed. +├── 📁 Controls ⇨ Holds custom UserControls +├── 📁 Forms ⇨ Holds Forms and UserControls used in a specific Form +│ ├── 📁 FormMain ⇨ The main form +│ │ └── 📁 Views ⇨ All the views of the main form +│ ├── 📁 FormMods ⇨ The "Mod Manager" form +│ ├── 📁 FormWelcome ⇨ Form that opens when the tool is launched for the first time. +│ ├── 📁 FormExceptionDialog ⇨ Opened when an unhandled exception occures. +│ ├── 📁 FormIniError ⇨ Opened when the *.ini files can't be parsed. │ │ -│ ├── 📁 FormProfiles ⇨ Unused. -│ ├── 📁 FormSettings ⇨ Unused. -│ ├── 📁 FormWhatsNew ⇨ Unused. -│ └── 📁 FormTextP... ⇨ Custom messageboxes, unused. +│ ├── 📁 FormProfiles ⇨ Unused. +│ ├── 📁 FormSettings ⇨ Unused. +│ ├── 📁 FormWhatsNew ⇨ Unused. +│ └── 📁 FormTextPrompt ⇨ Custom messageboxes, unused. │ -├── 📁 Ini ⇨ Ini parsing and handling (load, change, save, etc.) -├── 📁 Interface ⇨ Translation, theming, and other interface related code -├── 📁 Mods ⇨ Loading, saving, and manipulating mods. -├── 📁 NexusAPI ⇨ Accessing the NexusMods API and storing data. -├── 📁 Profiles ⇨ Loading, saving, and editing profiles. -├── 📁 Properties ⇨ Project settings and resources.resx -├── 📁 Resources ⇨ Contains images, icons, fonts, text (html/rtf), etc. -├── 📁 Tweaks ⇨ *.ini tweaks (=game settings) sorted into subdirectories -├── 📁 Utilities ⇨ Any class that can be used everywhere and doesn't have it's own place. -├── 📁 languages ⇨ Translations that are downloaded by the tool through GitHub. +├── 📁 Ini ⇨ Ini parsing and handling (load, change, save, etc.) +├── 📁 Interface ⇨ Translation, theming, and other interface related code +├── 📁 Mods ⇨ Loading, saving, and manipulating mods. +├── 📁 NexusAPI ⇨ Accessing the NexusMods API and storing data. +├── 📁 Profiles ⇨ Loading, saving, and editing profiles. +├── 📁 Properties ⇨ Project settings and resources.resx +├── 📁 Resources ⇨ Contains images, icons, fonts, text (html/rtf), etc. +├── 📁 Tweaks ⇨ *.ini tweaks (=game settings) sorted into subdirectories +├── 📁 Utilities ⇨ Any class that can be used everywhere and doesn't have it's own place. +├── 📁 languages ⇨ Translations that are downloaded by the tool through GitHub. │ -├── 📝 Configuration.cs ⇨ Easily accessible Props for the tool's configuration. -├── 📝 Initialization.cs ⇨ Init: Creating folders, reading configuration, etc. -├── 📝 Program.cs ⇨ Program entry point (static void Main). -├── 📝 Shared.cs ⇨ Containing constants, such as version, user agent, or URLs. +├── 📝 Configuration.cs ⇨ Easily accessible Props for the tool's configuration. +├── 📝 Initialization.cs ⇨ Init: Creating folders, reading configuration, etc. +├── 📝 Program.cs ⇨ Program entry point (static void Main). +├── 📝 Shared.cs ⇨ Containing constants, such as version, user agent, or URLs. └── ... ``` @@ -74,13 +76,13 @@ The tool downloads or requests information from GitHub's API for various reasons **Checking for updates, "What's new", and translations:** ``` 📁 . -├── 📝 VERSION ⇨ Downloaded on startup to check for updates. -├── 📝 What's new.rtf ⇨ Downloaded and displayed on versions prior to v1.11. +├── 📝 VERSION ⇨ Downloaded on startup to check for updates. +├── 📝 What's new.rtf ⇨ Downloaded and displayed on versions prior to v1.11. │ └── 📁 Fo76ini - └── 📁 languages ⇨ *.zip archives containing the translations. - ├── 📝 list.iso.txt ⇨ List of available translations for download. - └── 🗃️ xx-XX.zip ⇨ Translations + └── 📁 languages ⇨ *.zip archives containing the translations. + ├── 📝 list.iso.txt ⇨ List of available translations for download. + └── 🗃️ xx-XX.zip ⇨ Translations ``` ### From GitHub releases: diff --git a/Docs/README.md b/Docs/README.md new file mode 100644 index 0000000..b87f1ff --- /dev/null +++ b/Docs/README.md @@ -0,0 +1,10 @@ +# Documentation + +This is an attempt to document the project for developers. + +## Content + +- [Building the app](Building.md) +- [Project and folder structure](Project%20Structure.md) +- [Flowcharts and program structure](Program.md) +- [Theming (specific)](Theming.md) \ No newline at end of file diff --git a/Docs/assets/.$app-start-and-init.drawio.bkp b/Docs/assets/.$app-start-and-init.drawio.bkp new file mode 100644 index 0000000..b5f9dd7 --- /dev/null +++ b/Docs/assets/.$app-start-and-init.drawio.bkp @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/Docs/assets/app-start-and-init.drawio b/Docs/assets/app-start-and-init.drawio new file mode 100644 index 0000000..31b6bd4 --- /dev/null +++ b/Docs/assets/app-start-and-init.drawio @@ -0,0 +1 @@ +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 \ No newline at end of file diff --git a/Docs/assets/app-start-and-init.drawio.png b/Docs/assets/app-start-and-init.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..ba0b97a6ee483cc4b95062a721931d03fd191c3b GIT binary patch literal 39182 zcmd?QXH-*N^fwp~sUp$@8(1i!l+b$*y@U`T^bP?+5+H<-&{af0MIRMJq^p1^MWlBS zQK}_YsvyNsfw24G*5g6~F;l zT)4O*L|j3^DA>;@JPeBg9)WT+);G{U(9ieaodQ@vQ3fn8Bd=m7FE6gBFRujrD5=S+ z$}2e^)b~RAVg7ZbEDHuYxQGbE_+kk-;L+L+_>l(##fk>N6YxR>XwP_zR8f)wZu%i1 z!F~uoZ;QZiaRp;#MO9fv6`=T{g{hsDrMQA2@Ejb7@&j%rem*EHqls^r7eO`<3shGC z%c{yM0Y!!ZVOTU!$ygq&A`6yPR!~xxl~-2>-u$1W87s)kD#|JXWpFQludu-XZ8!$i ze&Jro1B&qohd^5&bt4$u5bpyIC570VdmK<2;TMJr1lY9CwEr2L(KwtK;&)K$>lYE| z1I$E0T+s+%wr`*pGRzANR0;gYPeWx}1Dui~7UCsi;Y)J%vku1-4|>OV0VM2qZ3D1W zM*g4^RflkIdv%gY@$ng9iX{-M}VeN%|3 zzb_7~tfFs3GI0Wm8L!MuBH;v#0V+fvZsTO<6O4vA2AD*s8<{v5$p@;MSYlBj5IZzR z-^T$N3=M(7lx_4aAa>>^4(bkQ!^jYOXM#dN0LjiU9A*WfH?3DsdRYSlIaC7Gnl6)93Feq5X*OzExk1()-gv(n7`D4(^ z5lAH*gAe1|>SR1H-_8RDUq#Bg{dMlsYLW&r^!S*l>dO`PyX zflx1O037V+We5(|huPVisu?Q+BO4IC_4S>=O2$M#e@ioqaAPkuK%~GwRdpu^FBMB) zgin|y)E1>?fp)MAFoYPY+1i3hwuUBt-e8m=(a#uj)^P-7E&TO%dkAUF<&3dQ3vfkx;MAJq^Od2cne zegHAt&lVABgzyJLQ1T%#Lq`QeLkBn{z)8u_1dB2;F|-LZvCuchSQz=K!IX?c!>~|8 zs|cJQ4s8}@N3^o{cQkXfLj@V)1AIw{NDH*7y@3rXP}#|VA$J(uNhJbeX&Yv&Z*1?Z z5E5XF2=Gz@2m5#{!WF~dRv0HpIMPBM;GBVZC^*!?#2!!^14Uy$1u%?g6RZ&G7wAU_ zaR@iEQ8l+fs91#KBjBhI;|N8BgMq%2d@#b!5oT@?O2k4#%&l#3MnQNR9NH;@fH9Lt zf>97d1s^Yxnw=evWM`sejYfD`T0)GB<>62}KXa&|T_DEHz`$5FG#u?~VjBd*;IXO> zIDHt@1Z!&O5RP!dnImC#VG91%=wNJsa=1;fjhV6n!VCx3x5g2Ty`WychB!NWh?9ep z89pS`1aA;wXXzi=;MHc5b$b>UXJ>q3J!Rbe~^!b9RY(ju?Yx@khcnf zm{}QtjU$wT!l3~$15&UN!Yfc8ZR4XHf`eFwgrF?L^f93%BYmIHP$N@+6?_B)Z2__J zH%99#1t}n5K8ki$riPBDsNhh0gD{k3D9YT)C(=hrow2DZD5-=wDFYKRCLsKX)|Ln} zpwPxV$O#$g3<-*iG_}`vvbR$T*7pjuF;faN)mM_o;Q)QW>4!Nxqm8{FMh;LLpCD^h zM^$fmTePo{14k!z=5ERrZSQTLgMG<|m0YFs; zKPbcm8=_`n6{0{?wa0)}z13~)4IG02stin2mGDR(EXrKj)XW>9W^9WDTRHm$$s-kD zUOt9aKB3+YUV)a%fB=k5Fv`XdJEXIMleaAfi6ELph9ZHf8yJTIKZfQ6UpQ9H&RUTe zVG;?3Aq>qhc1k9W{@zwr`YINdf%0KizK}?31i{V`uOA-dZHmEJIpa;Nz4YxOtem_; z(AEUy&3$%9t!5eQIj08ix%)=sZp#(g{$wpp5 zodl1Nw*z`Y+N&yuD0?egs97;+f%}=logz`e0mhD2D6a@bD`#&zAE-J~Jy;2B;sw<3 zu~k!u2(eWo+2BKifd6Wa4klhiQ*}qi+6uFd^a}`d!V$n>CSG`gO*mdZ&^HnbXu7#N zRzc0y$<9H+$PR673itvB;LvbGC~!xDRU%+mz_1y>9F6>l2uD?@je?z`iEW@U3Pp$1bgA5UBa0nh1CU35Uf*3jLt4BI``8%8GLotB) zHc)41iakNiOBt_dg7FCr!lZ@DH2dJs|GHg3U#Yc?*u`{rXfTFDtK!KBasFjH_RvD(O08?-baYXq!IH;f$)tp0= z!=VZe4wg7IaG(O*-%3SAT_MQV$j1kbQ8fY@n#-$31eqwxn-lR6oR5lvw#jr2`t5W^PAjpTNmkDk;Y2v?s5(BU$j{DHnwb3zo%M!@-iwicD9L6OSW5 z)cb75b4&~0zUj*>p?^i+sNoQ2cy08;)^;js$OzUL6=%2LR!wisNlNmkKd&C8xu8}& zsLu9OmqTvn&oUoeg8F&S&Xe-3Z^W}7TzUm%X8-G@fnI_8xkDwG|9J~>!|Aa=_ODCV z;vvljthOV^n0WWEBEklDVdab`~TJAEk4G~N8>zUiZ}e%k*y@< zkbiy+^725(xz(~iH{C%bWYCA9EzPSKvooKp^>EKvqfiRp4|zhT+1Dn-=6@hk={17} zDBFefe`NeQcP9X*yC?BDyjW;}4J-}6x`I*=PG=gh;29m3e#tc2NA~owV%24<`1_=J zePb}UEq{2?LF!=IylTd0LknU@eOEQY6j~CFv@neicCbF5d!POBDNZtc(RFg?&!?yS z8iYUBth4#PWvi^DiS&=Z`&FnGy?*ib>GzRwM@7|BuI8S8uOhT3s2urhMKW@_f8%>8 z$K`*-pW!vV$$7M%|J&Eo{L8Ijw-&#?!e_=t8uOk>$omuC)OL;`6;3FL zs@*))pY&lkTDTv$eF{^H9OL=OQ94Ef4Td}Ba~?>-PA1`1>0~{@Q!BoeEhPO`hg4Cx z5p}eBRFpLFCE{c1SXHfHRP0zvny$`l#GW>2j5v2r%K>dk_Sh#n;Wo#8EBV3ZLxs`u zdkX#YqdQ_A@1Vxt%Ca?Un#|2lYelj|twmqaj&cqi*Bg@Gl8X-Ya1s|LTOG7M&3@mN zoHU$V{?&I06kq$agcce>Ysx{9B(QGn^vk7_ZG56#=>>fmSNA_n>7q|7_2!f*M;pP?>xE{^nnoi4;` zUmLPO#yj)v>z(PzgzrW>X+?QMyZ4r)<4eD9?CwO73d$~@WNy?AUVAgr`gKk18n144 zQhGoTLgrws!1Ko%i+M7yi+&}0ijB$a4I`oYX*q76-$)A9EDjNl4aIF$(g&g>t}18E zi0nCgUeY*s!DxSNq(~eqE#|2|#PbF8S@^X7()j0)<@coL&9l6{w(XL+r`ywITIpAY zeBL^OHj~~T7C52)aG`=Aim2Y zp89%^f;b|>Lz=I}0Jm%S+nJ zlc(mZpzVK(<~ZoKR(E-HgWDUavB4d?iT$|0S+>GcZurhC^*ypz@8@$ru4ddcB~YE(rec{(B(|r;5?Y;*4y( zo9j+hS@wW|mu!4>>_{&YHQ%LHyYU;EP=W2dwLA6#+RgevUhYfkQFe$dB@WDu3@>Bq z%={Yt$D)WBI)s0a4w~%VTh3@j7G_>J@tBs2`>P))V}laZ%WGbU;8eM40(-G>iK{s@ zMWT5{A9S4gA^W&5Mo>**Ug+_J6tQFV#ko;zqlcF=^=DQWmuSi< zn-6A&uL+IC7Fewp@KuMUIpptLTy61;qf<3+yu?QF^zSUbObUspCl>FJdEeQS{|J88 ztX0H+JB6WIj?l<|{K}U&Dn*{1oHooEWBZU(jOEelo5?8|f+cKa4v^uh+jKjy-{0+8kM`V+=dFS1g*6zH|dv!05 z#_m!y_ij*k%CVE!y;<1fsJFS}OCPV!e%`4H&~6gdjiRfUV-_WRhx8xfzLcuX-N!Xa zjBc%?Uwl^^nKPtfkP}NE4I^WF&(Hs)TW7^MVBY?;@H(>YRP<;-E&MlsIQ3`gLW}#z zKtR=lwGX>-duYrF$36O6o=~NG`W9T)JGAqsqe#{n?Dubjx=1(UTCAy=SFG+%t2E2< z9!n5rhg_m~w48|}mng=*6_fGUJS6*RsI>z!vUBr_vHsJGVO&Esb5cR4Vz*vMK9)&Z zOPDbAn(E3ea$7qx@CSF7AS#FXyCT9#sIW@cUb!!Ky4ExAoy*RMHRTV7ln}G4CyUXS z|f%hT@~5`@N<)6RUhlZr@7Y;bZ=ovU#Sii1i_UI&&oS ztCO|{beL!abVR}`EEFnxt7Q{T0y@e!AKPW9TBu@?5_EEHHUPr0Mkj;;i;f?=GLHFhlm=3 zGenjTqXmW9Jh`b!?jxHdlOy%6%Vb>s69tCxuu*3)@Ztb@XobwB4Ih-CtVR>R_V_JvP;;Ev?Hf;`{6vKzZ&rJ$8tHO^9)vm9=l;jE{xo4)`rbchtc!F(AK?( zL6_q4xo>N$jh7!yTMga&lcl@P(P9&qKyVmH`n4>Guhk)Jjp$H`VOQyGqe7IuVsz^6 zw_AH$v=QA&?O(06Q&%Tz#)cZ@#uf!7Fho+QkA_TjTT95soZ1sjtMK z?~8n1%$b99m&crtA08Tv*<wk6y;s>AiOjlP-c#gELj zBbYPx=9C@x-Mff+`f{57VMje)Z-ewCrn*Wp*PoL{i$S`NgU`_$={DpOnxlff>PKLA z^X5_Wa$_o9udrOYc5C1CvX?wJ4M@>(hF#BVOWnP1^zGoq z>o3xBVjLa61s4qDsq~q?iyHgO-zUBDxuqc=B_k#?x61>P?hGIZxK7_LI)hM?a((G> z0d!O3}FYV|8^7xlMefKEC(s${TKvxf*?yraqC~;B(l^o;~qXZ@C)=JI}9 zt2vo&1M@}2pRIc(Orq*;{F;z>;ejz$d-ZDyQ*x@1CkE4}(CwDS4HDMPD)FtV_9_@y zYH(#=rK45TT05R)Ht;JaI6_8**7kjoxZMe%sLA{A24i$1h3nY*`sCI1FXc^QvhRFD z=BDf2ZI8H}w_#6kg^Y~k6oIs?<27UqmiD>NL%4@rlvjBN3R~YvT5VzPR%`} z45QX;#?c>_PREbl2DzL_X=r>ZnqKxGRj?`}27HdEs(W)wF|M*LG1={_bribd#e>vk z;U{;9c~Q2;XH{VIYdc4^><(GZ0X{k_j}EtF?y$OFa0Ui`AWh_6 z>)PZ-&YXY2olIhGJr*c067i zn#krOz_miaYV$Xr-;Tdb8D_2_KbPAa>K1qbhRt+(EoN#AW)c7HD(|L8MjwP)6p zBFl0bvMePs086VleY-tmFB7zu0bN+3FC=T=+J_vpw@}^Oz)t^alKpGv0)6f0onpku zH<^Z`-GGmyb$Dbgm&JO$G$3NHDym@ckJi8^!NUn7jaijG-8!W~=rlv&zn_Ulx-U;B z20k}r`Omm5;^@4kb|AE0@>a&Y**U;L9(njUicN%R3BB70&DDSoPZHO35({l^yg%XD z-MFO(qnDeEk=Sd6Y#%K0CR{o{u7fWt>M0EvFMV1n&W~r_=?q+NwB*kDJ?PdL@%F%{ z*RuWefCrd`%ThZVTgcKlFSX{;krtXL?k~>ElWk^VkMsC-VCi8T4YVw$#doy%N|peX;vFNs9xeo&If z3B*L?Gohl?)GepA6JvqY7-tz0{khT1fS+pR@6QwO?%tG~*zP0@X3uGR^qo*L%=i~E zpEfxwpF&)8TW7sZ$`?$FI#cRWD_dNu$$`haeaMa@P_I0C^yZ=4YIu*YLV!+)Fxw-Z z{Q3>BaBcI{=LLM}UQ*^st*Q-uIfV?sVb~8>*v0Rt;kB>|q%-O##`IXnKubt3hm~x) zY_=xRU26|qXEh_6{h#N;DckbjDYhV6XwQ&y_9@b{WD%qA(H=fa ze=fM+*F|NfM zZZnxYcqrroh_flGpE(3u!e;W1%{TOP07-OzE_g^~{?NZscUW)i(()%c){22Ydt4x6 zrT|XM7bMVSrXzIS+OVtHTXIYlylr-%v?Q|rz>nCBK`jTT1J&Q_b3FT#{ z>9FRvdU^Kv0X=%0X+t#crHf!*V zE0?EOd_Kq(x+4W591@-xQ$5*MwM_QeyjO&vP~rm)?HdeHOnm@wEw} zor0~T>@W1(c*xG1k`Lu&Ws7BsgIX(cqj7sXdmo2~w?XmQ_DVh-kZhi=OoFw*8V={V zrR6vvh)E_1TAjz+vq18+0FLK|(cd)H*Aus&nB6;i`-I}Nx#g)|9$CkVJd~T;h>yM4 z;>P0=_?xRdorecU7yb~ENyL`PAV%vHc2jb~vY)Oa-_Y?f?&5UU$m`m8)D#*!rXfb@5xLJy2D2R;{%X2ew zDjzO6%FimAX3W@9FWuEszCn88?f!Ja-SmEa1(mC_A46dNW;a1Fk73|439opIePL<# zeWjMe;uOEFl;>UyEqIr$C!Rtw>uO@|%4YI)*zj^!WvUy1YW7Aht-g{3%}(t#zk|-c zBJ&u0*8S~noL2Ql?ggC#gxI({CERp9-^b%Wdd^mcgE#|=IeRL>oR9V@g?Knwb4(j) zbK-4t?Lt_@AY_MAceS+f0VYSQ^F1rIdQ157D9bPf*Ez^q)%M`GOVlZwvBSdOIo5}H zJZ!wa zOZ@(2fA71?Z(3C>>D&jGUc|W4^N{@u1b$jY(rCvb_X_z>b(M7OuX=FBP3&Fhl4l}+ zf^G@Zab{uf*17BVLKUo+cf$>e-UX|r6t1%*HR;N%zj;Z(u|BLjwr=KotK>X`zovmY zG`nOXXV(b#ia9kZD=r-~0eHG-lICTkYG(hfg4O|Q)kv>Q1l=-wW=SBlM)9o>{lDKX zxkrYx{}P0PLiwyar2^Wd)HvL{_Xfw09WCS)E#wf5IzL#-`cQq(@wnzbE_;k4;dLZM z;Eu9nZgkir@T2fw<&P*DN)P@7WKevow;?i5bu*!4 ztQWTcxuDY~QvUbIQfFeDYL8E{GoZx9O3Z=B@TBRgM_E~Wn0I&1ne1)k?$v*u(cL5V zWvTKYJYw*T1vymDm#+1EhggrabqRe=mhPuzjcv0QnxyHx^6I=kV1Hlj`W0)r?6~gT z_+f~r6F0bqOT!1WIbjzr*FRqKxyM8;e&Ks!r<#FRT+q2Tt?%QWlPhp!r zUhYJVG~k6*f`y-1W?p$}k>S0*^vm&e0I!7Q!+0K@bD z%Ysndl)Ux99PLwz$bnVLctKueCGR&k!Wk9x&+seSO=*6{X(G4s4U@dTJhzXWyrtR{ zw=!5#ltT*nJJIzeU9hZ}WB6nLy@ZVup0<+Y@zmKQk=e-ZXN4Mtn>(?u#}VI?3*UuY zj%|HZ%s1b=^eDWi9F>W|S@v zk+)_kB5zAJ4C?MR5#;usRSfy%XdE7^`BjS>b6tHgRx4VB>IXQVI;9DRVXTEvZj@<8$vgFeB|ak5Xx~fRbYbSups|UbGT;r^ok|c(CVgcaAFc{bnX!;-z9yngie%m$#tl|; zOl;ETw7s6rhzQUCX7p&f6g_8wM4zHg_56T(tRN!}P^Rsb7O3!Q*SyVf16&jE0V><$!iEJCEkulM+H z#1MMaX;Yg%Jel2|c1rc=&L$1DQhaqZcIoD06_@7i%o+OPRYLpn&K8}nwU$@pZX8;a zgwFTe&{1`B)yZEp&ZzqKb^Q*ruIPMI&vdMRdHdnss;Cz$M?iAS>#+OO=TOjQIJ1uL zg{vVdq&$_sW9vHsT@FoiKZpWqF}xL;e~o+f0Ihn%doihaMtVBA@B!$m`FK5?EFx`41h$iYe=R0m=Jku1mXB%fwOZz|T=rquA+7IR+DpX8nenjR{%d37G4oxqI^1zH z2IIh4kL~_h&-#5mDI+&;kzakOuwl1z04UR595(M%GuTn^Au;jxE$QdOV)0%9Y%wCp zd<3(*M=$<6eF7AVo6oO*$#r`nc6Q%pHL>3}Ad62Exy@n|eU8zC3q+2bI5qs=pb5Du z@pgat%DJbK%!n_by{hAGfBm9sW;e~<+U1s9UQe8DrtRU*wFN})?+s^>%%Ld_Z?tB- zF1C1Hn^;U~IK`PB2tP4VtzE8VIoqj)Cw*%FP#L|w6%?mA>iw=tW=mSq^xo}6x1G54 z*P6K`=ulVD_=b{J{2rmb@huQCDRTRx&`q1+Le<63Cr5n2cc`iuuw#|Ol zjB?*XwGGAZuTl%LFLhH-nszIG7*VFixsvMciE-fd9!U{5;+Sny~ z6<9jM^(U;Mk5|@0L6+2?5{viZbtj{!+OQ4UmCoip_YdApYeC*Aox2epSU+ywGjie3EHd}YRMwJ^hFhyo%>&-XtCfwJTv3ja@ik4u=e7^8X7)Wie9L8d`l;gl^DbZHbNkd1 zoxo3Ga_XE$+7BPx0-#Ell`_d-t|OdMRh54W>KZkfyvq?+&|Y4MqA!ln2Q;axmtNudW)xJgT(n z9taK9L@%}nV+HUjjaiK&5-wm9O{$*=L3Qr23|}Nq*Y4_PDAq+xKr`_2JGdmLj{4rX z+PI!T4k?PKXXmeOU;Bx;u)9gQLrc-;b%J0SMeg(SUw6*iG_x%8;tK`lGD(gSiX=)O zc9Hb6JuH3Yv7dByNmlgJ3(ye_B-gc=t+iis9($XifO&f4xM}AS&Z3Rt$1h5=40czI zoSH7l`Zn;o(ihhEHR^D72|-bwZ7D!%fc)qEUIume_TCOXEwa3f`!t?AcJt+l*{BV~ z`KYJ2aF$5Qmo3p(Bw6MzzKam@1%7(;0J&4-I#*6}Ba-q%3-9mc(iB;lA=p1qu8RKo zoA#$$cUL}L&SNpVu&Qi4Q=^w9_X7c4x7>5NIWa!D{xYRqa-B$S8%q<>{uw3Fw&>Rw z{V7){joI?ekAWKWP}}5ngEG!zxVbe+5aC&K(v+5btp|j*8nvX2|Ju3|*K%bvPVIZt z&k=XRR@EMLYc|4PbUUJ-3tceqD*9V?Moz4p?=uR+J@RH3xInp^93_9II6Z3PW}6_w zHPrRwH`h&feQ(Ujtp#nGYh-%C%~81AVZZ8g%n!`Ya>6p|y0ug<&I-&_5Z0@d-4eWW z_@}(j_e_!X`Vs|Tvi@z)-B~U@X6)Lb&^F%^2YJ=il%1S-vy1$|Qs^;0dlcv)!%MBy zt&h7NK*YV4OUxK1_1FzKS$t7k*gtvW@0|zGW|n)_RzUnJmaZoSahnk7T(an^GR$TH zdu-*se(F*Ey7cCJElBuu=WEylKn(@0^B4oBc`BIoXmFgs?4R%jnp5Dym-$4{SjbD0frT~80LC-mTzS^-)i6T|31U8{7=rxY{b6yzC23P z_-FX(BBf6l;q>VXHr6oc>$*nXF=?@2lY4KurFy{?M?_ub#pUI0j{ACISRel69|<|C z19ub`Z<<4IAKm(3Ah+`?vF$aV%FAZ}3ohNzv!&#XxK0PtHsG(m z{JQV2rhjKq2EZ8`eU|?&QjC%{jYjxN!MrKNzOrK7rM5%v)?ulF(0rb)oAMJ<6t3ga zYGqAXVE@Utx7?c|Q`e?R^Yxga&nn48t+D6t+qRE@OZbD9j8+YKz&w@;Wjg`w6TyNFjPw-Q2`z||slW8`KJuO>gGh&{(v%^2W=s2_LTd08yAV@on1f?4! z_lX=Ua^_w1k5_(mb7hS`U%eK*L}@3Ny~y}M4&KtvFuNc>m}ndBC&4^O2E}!q9Mr?E z8XAT_m~r}Stu%3H{_kQBNY|A;`oiEPJ6A@)ZNTxwjEv)>kHhC8*80iMEJIHw7O!k? z|3K!_K0R}8mY|#=QutPuWB4Tx5s>j)0qyVAIB05zxz!F!=3C4gpXu;Yn()~c5iJx< zYFZ15&s<6PQK?$S%CI8W^-daTONOT5SVm;%XEY-sH9`BGshNn;8zhuGgUc@3Ho~C`#8+NNYnwLn9D?c0(U2{TY89__<*@ zaJ5cuh{;oP?(56mM>DS8B6L#$hdszR<>Yv4!8MmL$aKOphL~s8?$9ljYC7XnW?8)Yh+j-6_h$N;+`9A z$t;)5$S(hZ!i&Qnv&2?Sjqw0(U;3Y_3;qA050S z!2IPbrSeAO8!aigV+0^ohG6d%iJV?27#J3x-dsK?5__PhOaycls8<5iJHTG;s)}+l z>MZ(beg{CWDOWN4upB(ZY|Lp?T5LJhrcW>je1dEzriE{x9Dx_vEH9a0_DP4 zm~Loavm(7EX6yDS;B9aw6KOG0WS@Nm<1&z6wsyDI&Qy5h^?=n6nS;qnGQeN$L8-!t z0~*c5&%!c_CGnV^17JNti^G&GP9a*K5EKI7Cjbe#wBMox2md$a-)0QBco5f9Tz3F4 z+wQk8%g%ab!B9TPStv6fKADsQH|{z}_4&`7(E>^tzW*;7jR?T07UY%33YTOLW@WeE z!gl7_JVS~Aymc=g;#QC|a~~FZKCX#V8sD?e&_!kR_sbu3^DaFg-FI91}T8vA^GByK$dJv zra95}`)d)Hin*~~!LAe~2NZEgjdT2LJe(<-CGT?l0O%xW{_>A^#pm{EJfM0f(sKng z%pT87b*};qXGyyJ6T`8D{{R+6W*&#D2MR&T!NEA@~;=fD;5_Hdjk@I>ae|7e^ZZQcBCcKNc8? zqDPyE2sr#R9yBTqTM60+Mj>aJSSI*rD?upKx4~T9R?Ki+D95ZnKC>eHkF8~nR(*YS zHO-qN3V*Aa1SApKjIem~(l$3YU*e|w)J?9qx4bv<$^{nDkd>9y)gEM`^YH@;#S_#Z zG4p;IZfmo>a;<&f(uN+>@#S8*z1ar{_l=r?@4ag5LCy>XGB*Vd_OSs0-z$9I|5twV zwEC-SBQ|g^mai|Iu4Z9dHfR9FsSwkBmCsw|01oP_tE<@}=D)*=k|ug|iR(+Qd%HWt zn$hO%ukV--q*TYKX6f|kJs4F|CU&g2N#Uh7AmCzb^#``}YaEM$3CN>+Evw?!K4I zeRG5NLIr?SNPD!LUYYJUti@nd?Aw}?s{Jk_8uD)xi6@h^T?)*v;ecP9**bED!=F_n`n>+NeG{7N< zqPu9qi>zssY2=Y-{HvSw@$97p>S(iLbMAo4{lQ^(w5BlWf)s~Op+ z{ki!*T78$rR*Ev6T<+F*yu5ksq~%SkyahUNsK5HV{)NYYRh_ z=phwoxD&N4;gG)kQTKLI>sobrwT#O8N<7n{pAp9b5VDONus-2rl7N7H5`!a8uIgPf z8exe9oP~VmGZGYOi~MP$G|jAHRaMofg8r%~{;-ud{ZWMGAQ#ZJFTEOl{H*|h_j6!@ zF#rA6!g&T_bd|O1RF{20&TYAZ7Xl0kUSzj>T&$|3RQIy2s|6#9c+$A)XygU=$X|&n zX`?&Avmf$vE@lzXJVSq*v>nT{ONP|72%N);c+5g$PSXIHeyw(@g^+u%cSIydQp$z|X{Dg; z#IYeP^Z30dt362@?kX#n$GAMz;;ld;EFneI_RlDfnL86FzNbs)kSe5egWb421>^H$ z&lJW`M=4Ka%D2!T;m9)>VomKReWG)7T$VlZxIf)l^vAqb&QJ9Pp@w56vmAv3;#cD# z+7qF7icOB#eR+_oXF~?ED9xfSM%Qj!|FPECI3-fEGoZ&S(47qup?Yp*yQ?W0{HSS> z4{2U0xm|=AqN;A1u$FJoWc~~4(RJpAdUCn6MJ|4;D;c>Yc@_rb{GEk1cd)6o zEFM1m7u7--)rG>atB2Fwwd6=+K#Ic9Qz7fL$0C)W7Qd(Ir2QHqqyq*SsMo!HYjLWB&dq* z^Zc($gAXA?S>=V*LPob~%gHpr?L68?7l~H8wWhVZJ~;}XJMNG^l^eH9lml7u$>zNG zh@pK^Z{?JPK|6|{e!A|;a`#LXaOUE>yO2}z+0gwL|9H)gyGKYyqSnr0`jpIS5AoS9 zc3`J@dnGhyrD}9-fJ|(`x~ywqc~;15YS4kknZMD_D)To-BaYds7b`R@GcpUVA_oP? zClviX2Og`R;lzEfSo)&K8p)B$O--LUggSDO|G1uUf%^u(yY~L70?yb}U_2}F{X@^X ztj@o)BD9Pq8ELeW~~~B`loNvsbiwZ+?X1~ z+t|Igr?8PZ8i`+PdONkSD`dI4ab{_knm&G0u6gx8$=}k0 zxhD`hj@0j!KHB-faEYoJ=uLyox1{>1f!HzJp!R6vYQ1s6=e4K=ATw)!cqy?v7h!Q* z3$@KJ32(!T^mtCGypYLEsq|AgP8x_fj&-j}*64LobKDK)u%CZ10?DQgsb~?{XEWng zvc}%<#4a7eask-F82x9(nM5wRrlo77dc(Hm2v*V6-<{XK9hazITi60}Ofv3Ie|5pq zzRy}}Cyps(N;6D@_<4pTfIa<2SX8z*YGzWOSCQ%2I{;a$CYE{Skc2xg0sxL`uw;BI ziaI>1y){^kT_#(sqHPoz{=%IwWST7@aFM92@#vqw^c(8*wy+bRH8`;Y4asV=G zV~<;AP&j3Wq<&kDP^Or#4bfJ~^@)Qx?9V^XT)1`aBTUC4pX4dh?#F%hZDH)=_v7`P zjG9??E~EHe^_D2J$=hnT$eEy`Ov@9sV~U>ImqX~6&SPLep; zDMtAi@}k38T8mk=vGT{L3=a!FA(|69T{U&JHo}U`^}Z#&RJ(pvKDR-d(44GMI3|B@ zWNSe>GOSYH&(=E6+h|1O%GM&GH8n>&>bmhAT(_*_Xv~yMkNk9JLUhnr#|L94f}*%5zxQ_Y}Fv>}vAA0>8N=N209ejog1WZLgSk zd9DzN&3AT#sr+)8D2n1v_uEB|| zDJ7Z!a?K0*)p3{w?cYbQSRm9Msp|hYFy8#4ksLEQ@!KCXxaG1i9C#M#Gtd(9tsRn` zd+!wdv(C62wnSGcb@88Yq`aR@Z$8GWD zAIs%G z;PVRxRxq4HETFN~!SD4WI>Yo&KZJDdQeS?~E*e|V8kJxg%y#N7xD!<`<6$`#*_y1N zj=S7i=*AwU;`t;uHl3%terQHwyp?6?#8_%=<@kCXk}~~8XbbH7CC=+V=CdDx1RctD zJ>UrE!~=<+E3tr(zcu>bjF4p=&I8v2(Dv2zg?Sz6YcHan0X6HN-IDSBWJ>1Be-;JF zJI{V?A^i7>gPxIIagDW@Gg(Gw`_og4p^j!Ca;lW6Ovx_6p|VDCQ3Z=Rw-kS0f>%$U zr!2<2$VIL-3A?9fWG5vhH%2|f8@;#-KuZ$S6(S*2- za>1gGS?L{ zViZ5a^6LzrKkqkCCT`;XlU1DZbn4~T{d$jC&I{3g{``4JGh)7Y?sE}Ted}or)BI@j zDd5}{i$SCP0xbXG4T9GH*HG?#9eYEMnP>ka<+_dOEDvmOu$!uy6HXFz#P>;r2B8cqZ;(p*@ zXcQ9^|7P_eyXYWZur=2wJVVj&tT;zYzxjOqB zamsuzkw&AHUO#f;6QSc8M-hN8KK;;%`^zmani56(f~XAmSdgZI9c?NtDfy$pL5gm& zulg6xJublPoEiG?A>{M!&ek9rjecoy{+fA3Nli^ny-At~R#`ZTo^{vXGmdL z(uNZ@IQHCk_%72~o%h0AP6uBk-Z{jS>=0qfM>{QXC*>c6m9!7CJpOUff*}GumJ}dM zETdRRIU#(1bRb(EfFZ;w?=x?`f-v4Q(mNPf5RBhc^&d|2|4|ov0%Hq+Nvq>;V+I|E zVg3h&fxX5b%nV4>H)WtO!~c&cOlqjKT{VM$z$IX$R}ib!LIh!0^b!c=PM}4Zl-HO8 z_~0NGPh+!`A3L0vwGzq|-?IG4Cnp&=Y}ltZ0I=@-ysXW5;vXZZqWwOKc;1GSQ7Y9q z+R(IW+h+irU@&~1V;l^u#h5f#y8-Q-lh*#P9vUO#UW!!jX2 zTcOO&A-GQ{JfU9W;J0pG{bcd62%1Z|;94L8gxsgfTQ)BpmvLVGINhH`P*zrUV;k@1 zQ!e*Em)V zu>!Qbyu5r&13B;*Ck7;cxC*QR{(RF2nXFVC?NID@0E5`_-7q9~yGQ)+OKaI)?mbfV zy!0lEZ0q)Nnmcjo0e0?Y^UbSy&-PdTHO49ja3^kybm@(rcXuyXeCJjcH2&Y$ZjV38V+%Nf*nu?@8`)#RIMzSwOXc`%g2ERHakQ znG+tJ#NL<`o)HU&svKy58q37`pnE}1o|FU(`oZ&^z<#Stz+d!ln<{fJa9`xL*3o4>VNA(nbP(1@hltZKZF~k%~!pH>UBY zd`m~Fwt!C%nF6r$@BR~=>P?9Jj83ZI}kvvEiNfL%IWECVx z5)cp=vM?Z^M9H9%GYmN@dB|bN;q}1(-0!^e)vXum-m3SiEUenoyLa#29e!c0)y~Sl z4Own7Xh-vcfmr)n^Er6qA{?dg3aTIwQuyg+6Wp2pq6=q($WIm`Ownc9;VkQ2!rR0C zPJ@eyBfh#U&M!OokllCuW-@^ilE%F8L%>>?ALt|8AccY_>4@20g%Z2f;L2bIk#AJ> zR1jFL-wFZW_4>;Ys#YUN0X`pXJtrhSbY$(%$@X#gesOTFM|s2%EHGHOn6vzQF}%xjD~y;Uy*DG3gx4542(KdN@`rm4FMUp#?yY|v7Pct<3scbxvHqFM7U345c$ zew=tx+$dRG*Z=K`q_jvnLz8p7G2(ajyV8m?f%Osf^3b}!$XqkUp`tqsHqm0KIk2zeaxI_2} z%=1~o$I}? zw0W!A_D{WVLO{q_?ZDJw_Hc#4i73qrU%mHL)2Z=VJ8wJFWT&>iH@NC$6%!M>sr$G12b|_{`uCbEGQS1K?&Vkp!wIfh>guqf zsm1FzVZ4diU1!sE^P!eXL60^0RNk#5eR^X_f^)ed_%PgWp@rKtgtxnYX<~HOu}7<% z+u0@*w@G*%@;bDxC3U!JVX`3rL`W(I)HJf=)VdK12jxemifyiIT`AU9>Zp9*=Yyi| zi0u9@FORJ&ljzxPytN9qM~Jd%Q_qs9p?=7vLy0ld&?=5wHc&>CHyksVRk6j=8+d}=CE`o#cC5rZ;94?X? z^XU_fasodAfY~)P(mG$G_a*Q>n~hd81wqx}A`23bFc0_Go=-Cn?CMtI-DB|ioNwr9 z`*!t_fPe`qN8`uQnwfK5q_Fd?_8wDU&@XCZY5;(23{O{zl!um_`Nf{$_-|D8*e-$( zP?bApTxf3`0Dh`sS(xgWa!%n^3OS$WQfslO8zl&^i9C8SwlWlV%x_pd+x~##L&b(m z#8dZo^}_CqzVjAUB%)pJ6wjj1*g$&9%km6fT@m{?U;m2{61Qn~or1i@iub1-%8aVBv;ww<+)8QX5(T zhkOShlkQL+gJ8k#(v!X{u+-uK#nt(^3jyjyH9X#pv5yzwhuXnVLf+LN@#cRP2z z?#xFyMSP-aYBWI@ma8KuK__TG?g*`u5ev7@6~?Z7lK4)y)$gacBSc7*~v^hyB?8atXzpNo*jlo6+xc>ds4_q%7d45qfsoiX%+x$u5)v_Hgx9;=EWl{aBe(B}6 zmo`nt&Emv1?e{jS5r|s5?e}5;lgY8XwD+SW7kVC)VDLwUz_--d`= zcd9beuN<2z588+KK2ahPmacC-Pfu>=Kq~iwcFD3RyAn`f%p=s^h<}ecH-0T zp%#gT^|~FfK&!bq_JHrU&htoTsf{>s(oYs=KOO@#oCkSi&O*RF?*KOR5?%2-UFEcl z*Ls2Xo6M%>y_)P^hh%5nx47aGLROxZ@c7;2!|0Dce$K+tpB^Od74tORu?l>ogW?Ra z?dK09zq)Kbp=@&)pTe8;ePF^R|I-=@6aK4giZiJLzd31U#@k_Z#md0`3f!ihzq!|b z-n6`|fNdYbA*tT3RaDZq)7usSuw=2cFLg>=cpCFq_Y1MSQ@Y*?J`y{`qMh z#DEP=Alc8&Dj9Vpr06KYj#uk-p<`D-{uP35QLXJAy+XUXsvMDg9?YB{!L9VK+aJ2GBMbk)nIpJhSsD&Q< zVDDWLveqlY}}GE)NdJPaL0+LaIq# z;6Mz>9FL6B8K%4nK7YnO2LfH{nzBdAHM-H>}-w9hKe}@MHn%&e8f3_coqQ% zPM<$ON}w=H{cp3*BN9{_xKaj=PwpTMaloOlPXk%Kc5%8OY~K*_>$n1 z*Y3vWk_3F! zxF@9Dje@_uIMxPqj2qKsL&Zm{J+=$JeEG7>y12Rdyc2tSqzo3{i*d7+mj0!3w6`u% zURoM^BgUmsGW9>4)$5Qv#q+fg2jrpQm-*g(jt9P~HNDsctU(*NcCp?)Y-sKM0QI$(%HLll^Y-Nqvq5QAwlEaU(aaNz=A1$Ka28lY_PFNqxhP#7vd-<)JppPW0f)cmmn zSFsNz!vY|Trv6FcUcQZWd39QzJr}(2I>2*a-X#BcAVBa31UPPM>HQ=5188Hyg!ccU zmwgLziiU{dzYzA5duVZS#|17SC0tnzQiXGi;5Au25+aV*6*H7`b$j1}69?&eMV(K_F=iv0Y1SULl#KZwZ81JXeC!0_-szF+oVYuQrlJOG*I z1j!`C;eQWnEP~L@N4?BZ5Z-m0`ER2IQk{TSZFRqBN;Nh#vM?|>Sdb#&>of7gab}BO zJ|OhYe_#SOMYYe<>6rnNTIoPA`JqQ8zreL&}I)o~o1R9;}L+x~X?Q zgP6$#L9t{`r3W`Gxd&qLaRme>$(rwXDJ&vvF9z#tqTib-H8NsSTFSsDZIF-S^l~;e zs-I1OSjMH&Dd+r_5C7lc0$yK#@xRyw{6M1+;l}IN0C^5cmFJJ$jD^hOJ|=+R=?sfi zr+CnC#RvSC6KFhONbn*@Eeg8(w5}Ffn{y)M7hJ1in54dhO~13YEof^F-|}b&?zi$cUrl7(T?W-R;V zcpH}>mI=p1kfZI_e&u1mh^Dmadh5>2d^=hOn|>#MFrU;A9(fOMr?ENuE zXCKl$R5QI><>5t!49u)e%!$FE^ZxAx@i8@o489W%VSy4z{4eT^<$*_bLnG&rLYam!0-#$DlEeocFe z$~nYGeZ^YB?bZ)(AIf1(yON&8sXk=BkDUuI%IVfg+1 z>G-M{^^oMCeM?V*0WOWg)P^g|A^-TS7Tc%;#^WKcUh`LfQ~zIjfj##27%kM&oO8MV z|3WXYY&m`PbiX!nb&yMgmvUcI;GPCA^-_q^k+TBaGCBe57iGoK2P85J#k6@%n`Kp-78e;i#^AZpL76y2pwsgs53F^jk5-cxv`=YHp z*4RNf-_^FhY^0F)z~YB{Yn+w(b>}}z3}G8Y{;&=4(~fpmTKA+)X1`j9Jsuy^w-bhW zWVHWk^*4GtK~JChlMi+Q$&K0T29Zxf+0dM~O1zXmtxqO-T9g#7$fwGElqk-7oF02nuegB`AlO@>y5!|Z0N?G z{+jbGmj@R~3k%s?87Y?P{aRSK=Q9u6n{Y+-Z~8sFa9}6JXpKAQ^A>r7;XBIO8Rsri z{U*L9FPdu8ACC~8ehUx_;|zb6EBgT?P&cJr$a24$L>Q1WFahid-Ew>SGKZ-SCHS@p-?H{0k_@*3V5F2JE>6meUN$!UHRtNs1_og{N*lYhklX_>K4 z*^67FWp)Mtb)PZ@SfoW#8g&2n|vv`TUMsduLV`S0g)VclfebkA;8t?k9G;YcZ8 zlVc^KRku58Qw&E-r6Gi2uM*urSYpfo0wO9C5RmmVgY0=3BjDp&dYFs&cP11i^lq(x z9ndu$JYRO5jEiZJUM{tZ=uQ%%Y)GXY2HF9U-a#wbDJ@Le@5m`}LY0 zH>oXHH5N_(oIZ%>pNe`Qy~0lvF`@|l(6`4c#3Srv!LHFA`z*L!0i|@M8r2E@Q>kVi zb)IqGmLj(#@*LYMP)WU^mDH-Z*!mz*N4Jazo+h}zIedfiSeGx@44P)~tXTKYCyTK3 z--nAM@3X`^0V{2Irs0sQf5hro{oB{X^*a7%cX=%xGp_d?jgwAG8{>~m20-BZB)8aw zz7H>1GD;WpX_e#iNU^UyVM@%Y;(RfILN@ISLEazJ`!Dp?c^*OmA|(hIeec=}^z?dQ=JD)j73IvpzdOJ;~k zLv3e+b>#7oR{7aZg~eLPp_$JswU9J66O&tx;!&>@l&^2WN@tK`&v|8g+7bk9NBXbB zW9>AE_AdulX)})dxb?pe1oWA#D+`JyCS%W=RFr?6ZkqPdh6s;kMm}JnlijrPF?8pF za3nb#&UK2P_RENU2(Bt+0Czh7(8}bjHt&evCh@xT;jP1s&6Xw_8JdX6;r?rDL9eBr zL|N+Vt(DnAURTyFGTHF-*y_BoeQe2&zCzG0UYt^Ldu&bSk%raT&%<7^Od}piTd#@l z3R`>3n`H_pN(q_98yp(E;l|Wc$)Pz_W83ropCx}hS+TFHO1EG5!OlljVw2=N`mK1< z7RYBkiaQ*Cy!t#lSa{~MFI{~GglD^P@=)Y%t5`JT7=bk6UJ9 zHEfS?9kko~oHNEeJ1kP#%p$cV%tDHN3KHc zYv+#&7EW=sdL3_@_F`fRpk(k2%4~5MUlzMH|6*<$5!;*cmH48TvQ}e;urU{^B~4MH zoBM15V(?LF-c?c>R`0pSuGcuUi`ZMO6<|}-k3AUI(-y{}vc=1Y0HO$0JTQdFF_;=A zy`14ut%mc$dvJkItwvp=d;X8U=Rr^&YWsLj@HzW-@~tDKQ)I)gxOF0z{%HY8%<%8Q`adi)c= zqch4L!IaipWfAUV-&yANWldZoIU*aesw`&UO&?sDSe&$5TsZDim%_<@toLGJbS1*B z?)`m}OAjc&dUd1nYr$q0dPk5gcU9)~I2W&IbD&wPAjM11+X&&Y`!prpoe#R5o%Tlj zzPVQD7IoV}zpEO_lF29M5Z0h;Jom6f=WjzTivs=83!Z4-!)#x4+ILC5o%#cN4*)z|j=aTNdM)#;=jGJh*-5uiy zqI8d!a_zBpyF86QDpXkdHxxFYZD#@vj!U=4?VPGgGq5w5sJ6ZAy}>Z%Q_g=}Q#HY8 zsEa@LTDljcta~ZFxtXVX8W0KZ@M?)l9YA>1YRSu10VUL7sWJ3~Z zZ?X4CHIx?7^umBgm;e+9;VHiR8?U3q=wo=uwh+g(Kz3!*ny z73;#}#!EJa2#eXU+Y&1kQ5wuY`zS{13NtVx)=sYY%;{ufMeG< z^$2E!z0;Iky*K@IrMMf;sXei6zcs5T)ZKctyBdn!CPe7m%2zn6?S-FDZabXqI!q=A zi+PEw_+lZJxOJ|pqm-jWV^?2;5O2yHvRU+(b`5q%dPWXLHJmz3h1F;v0nU0|I~aR4 z^9@L;Q2%=NBZ>m^b7bip`Y%rhA`qibxzs!XP#;(893n4&A6yF|#56fL%XcH5wiT$&K4%%35(1aQyck3Sj(Hf|sm=tzib5aa_7PNHbwf)bVlU6r| z*0!x4^-pU~8+9W_FkkR~w5y?ire9&}p!%x(^;hMM=lc%QeMdBj{o;dBVy-CUb^PoB19anhn>ez>*a`$DDHL>P!yHf)XqSRHj2;ekv=;f?iFW z{#4pU@w-Q)JR|M}E>nA3*=YCJsSTtGa-4Ryha=&rE+?vWCL3CbM}f%+X8$T44F7qF zRcxLEgZ}mM(2q_K#(w*BK zcX8FOV|u-4X9>u$QL>B}*i-%k*l;?y7%orzZ^(vK2J6OL<#Q*TDe6BHq?99nUh%*B zH*7<7&gaAYTHu7sJoST?h&9^B-o?B!ch4x~aMB>;+bwG6@!XkDrO9n#?4P77|I)n=HMDgQQ?3+H^a1ay_*z~9Qzk_sO6!$3Jp~;cG zaOa)Kf|O7rasNF*o%Vj=FP*74)!u(&2vF?oyXT!N9mzBMKbD<16e&wf`||}LK2pX; zN85C${{I&|!YCfm@YVViw6Uk2mEZOB8mM9>T5P|q!E1WRx;3cG9$i&1ghDZ;Yz414 zhJ>}nNwnYVGYcU!1en)z-6rpku|L4v5B8_+2MNpT@Jbzg)pPEP&gdSS&Ic)j4q1y!Px{wp=TJ6zVHJTe{GJ1Ht-EGzu!b2QK8JouN@x%o!c8}J@J-@7y#R-RZ%jU0^( z3W-Y~cui2#BO4(jwkgevrv;cifXOrxv)VKMMmE{h2S9PmdQzqA!m5EYgdjYeeoOjB z;%u5wq8_wTwA*ucWh7q6nLY3teTa76bC10dD`5EV(Gb`S6<|bR&|`Xuyuw1lfJoER zpCr8Q7>)4?=@&2oKokJ;YWSN89t|&ae16IK_Ul%*ICo5io$XjzXK|w|Ey8=c|@@mK~J4UDbschi79LAyFY(tZtC8t^L8#7A~p zr=9dfLzbW1Xzx>Ct}PT_4w8hP$4jf(l`mhG1A3RdvagT#H{%6tJ`H(?Ff~qQqtm;TFSOL zSQ}hV;FdTV=~mU{((`3SbM8NF{rwE&ZzCS;pg<2h-M4O8= zbazO1v7-m&CY9*AB+ib@PJaNMNN2*8q5Sem^k&6s*%%)nFFoR&6!qZIe=}JnBlbSw zD>Jh?Q@)a*mG5&8_x%g%og<*&~Ouj6~Fzt03Y9(Rg*Yz zQ8QecgE}@+H;eHNMP=LDjh0mqi_6By;qHw)liF8rK2=9~Xp{iC;(fjN>@IqO(I(-F ziSA?^D6pS*8)%s3YZ7y!BbJeb&CR7#u8gzDI80S$)4j;^SzBg3fnMnMxmDjm=E$py zB2Lf9o>D4}-C;>iN>r^DDauI#+)EN~fu6Kjny3|7eNf~x(tl`j5qq|}dgm0W^v#wqFO`K*M z-}8RQERt4QZ7&3nFwcYbKD@iQj|T*k#x@Fm_$IZQJFRKerhjy9WaGNdp2CE_@h>dE zGzEs@n%`#%e|#_`%6S2r=59hCj=wbIl(-%c;?+&JLL)t!{^QE)D|s3Q7}oxN&e zWv$d^jRo0VmiiD;qG=6?_5!lGMQAsd4gH4@FY?h|6X96Su+Wn|@sm?ZNJ$ij|W!5LQ7%iUt;T=%vz3HurpOAS?9} z>$-ZIj>dElDq@zn3)lB7>>SC1+h5leykZAXTbn?T$7B6_)p|?SZ5YX)J8Cs#uPWv6 zi_TkgZ}mvSNllE)B`@HkK(BLo?~VMbiCW9i{r|_9|j`^Ly8)==)1u&|<0n?8D2c#tTmjg@fc&Y4k z)stUb*AJDl4kJhNk-+!BuCI1-b(;Ga2W3THDS(a zKkfl!$<{sj>}>dOuKpUm)Qy^W_MPU^ClZn|6QVB>b5GvFba%@+E&&&gKz86ZZpt|; z74)|{kN~DmP29*DE?zVo`%rnytcj4apQ=CbKR0CNsB~4SY{F{y&A&7JrCG${1l|i> z$&&}Z&q66c!q?KzRt3N=L2~r!_CrQGN>22FOX}w~MO2=3$-t22c@9hIez)QXs5qu1 z)K)1S$|^a*gNt*qqj__JHS+%xTloLPI!I{E_!{yh+V6Bqap6ZRnu4q+4g^r%Sbt%^ z$c8Bboj@K9-bPU^x{Dwi8`Jrid+`}bd|@+U`@mQ6z!l;Q87BtmT}0={ZdM2>PW-j$ zD9tM&Sg|PVKYwfvPaG{{Tlh*no-l*zRA+wVId*nsygiA}VDdjTjz2d8h?xLUYwjS7g!slMe1@o9NoO0W`{|jstz=Fp3R>mtRofo=df5f?)=3Z3me@y(WIH&yH zyi^Ru-tnEdwTq7B;P!t-g{l5+_!l}#j64ToOX6R?qpp$;jR9JRBq`>VS{L2$5Iz!r;1VNB1DS3^` zpAXlX0`n{s{A6w{84Pb#r=5zFsc{d?mBKd!DtVX?tbXGP_NSGg3>)z6=#>UoaTO#I zb6?&seC=2W;FtBbkmZwFRh$h`zx?~Y7@%?SU%XEA%AUw7Ee<|0-Dq;5us@8-7<(L9MvD{QKWhEubk4+uVT|EQa zte#Us?wA}}2}{tbk84Ps*m#|sABi~*gp&6iHqTT6!ppdhp*@ZlKqmgGG|Yg&iw-r{ ztJPrkv9Vfjk*8rdW4F&VR|n#p*;E^L(V>;x-FYqBQnF$kIxRV9#4F~=%+!ZrVafu0^eEDP{g;8k6qSTlr}*lr+Xd;yM_*`M62T{t=Im1Ar~ z59HN!yXWhE|7j4Udvg52?h4(bD_UQaH`@Y6+_2X2-nLsP4L1PKQ@*gP+5a0lsoIED zx_Xn`;QG^*?MjY}SR1miQikb9VW51+SVAzT%E7Dj(;vKR$47AAqZ54y@4?vCxLH|B z#-VuAUG&3`ro#UyJry4S*`&SSDZW~)2cGt7#(?dGcsb>{UNii|G2;%Z8i?b}pU{t+ z3aXvFA>pYnvS_b90=)1)C!#=1$$^{?fTL&1Mms%$4fgHM;jtJkeHmLfxA!RQ!**_9hTn0GnpMEa_P?E6g9qt%Q zFC)pcOCMy{2`H4=%4NbD$$$4iS=rd~A7aS$r5xGAU4@kg+B(ZcrhZsq-Zqo(*qmr^d#{2xCU34d7XJC)s*KUX zoF~T2PVa+aI+H5-8Er9DbYc3ayoC`(kF%uWdr#?pmJ4~hr6tWRcOeP$9}hX-q@%0x za7Vw+>n7~YAJpLS6;yE4pciELsd_!-I3&~NZ=l5Z$oU2!_ z=5{<3?v1S}SQJp)D3ly@!Q4vTMzsJcy#40$+cxG8oMu~UD}&&^hXJ({{JSdhATwy~3U6EH=W=-2@d&s0S-P zGgj`tij_LmO4ZdbE_*?;IG<(6da)vC9^FH_XCHut3^%c9x;)x_dCC zUwuPz!Oy0JBdmMtKDB!9RzxDS8=^!sc{AT;&R)+%d<;yzo^YEi5cQtRxehgV zEai-r(kyRu-t{Wr?z^Fkrtw}Fd$c&)~JQ@HV^IiI+oV?&wK zPj98?v&4tH>?>1Ii2J->3RxYwG}Yb+dsrq&a%%GG%}f1Sr?EIM;@gR58n1@Z%e7>dP`I7qqv7vRK0p8!{?4-qKB)n zHotM5pcdbtmIdZ5YVzJ1b)$;7Sky_x_Ys<+GC%&8x3hWJ2NHFX3yK1=;FL!|z%5kV z2}vS9k#AY5Hb2((s8u`^6`iRzsmH4R0d?n@jt=kg+8VUXv@t|Yrx5DxFMigRElP~v z;%#=tL7jx;d3KQDaAN#ZbiufUkms&#!vWR3*f*3s8}){o&$Fjl?x&LLf7!^|utVjo!UVM6ns@HopW(DY0X+Wl+%stzmp((tbYX?WSS|o9EK|Biw7DKgSp5 z2t9d(jO98aJMup#_^Q$)7uI^YV%p!h=19lj|BQsUI(3&5d_8jI>};ts$`$!)x79y$ zocDf$Tkpidnr2w%(wP|CXGMO!jvSYT%mlK%oWkn72ipYc(pkDCEmsoAW5GFP2E<%1@;H%xAAQ|oIL0LLv{hrvcWov z@vulcf^Ri614d$BozbV%ji*8wud$BGycoL@$$L4@)0ME*0;8(x#3>rtCs>-BgXbhgM(0GRV%_=D{v(E}r^}1@rgx(iQkaO-3qmLP;h8{J)X#1}D-` z#hxb_U%ADf%nNxct!TPAaIJpPa$sI{d{E<993j@3N^%cF{;*1~R5tpKYSQA^!zTNE z2CogNUb#EiFslmhlB&}od{X-THIEFb-Nnxnwv`SdC@;{6L~*BxVi@!1!th7jdPTqK z9Q){=<%Ndx7`gPyPAY}y>+4q=tpFwOY7Fz5QhcD(2?dfg;O2rPlc4|OEQZAKVlL3` z#kpHmsEL}(w!-oR)*|)R!4oDfM#gDl)s+$4qaMP4GwPP?9m`7dYAM`->NT`cU;?Ov zxohe)praXtC;G?7x$at?l!sF+wM3rSTM!GY%0;_8?8q#zC_}QctcqJAGhV>^Usw~U z1YaF}(uE^mb6x)yiGKqz>ut>NthhU-eSydv`r4q82jivnpt8Py@^Q}JLD=;}^T5kP zM#fRgu{CR*e!)6f_T*(pta3eCw_L-k)E`bc-ps0sut!r30`Z?37}H&6>Qk&8)%1GG zRQL7r{xuo2G+VO=84-JACMwDkr-mYd7J@vx{ataw$o$4buGLffWnn;^UtHCh?$SPD zff;F~O{t`a8(~SWKD{OPV4+=Ll~Tt?@PdJcH}-k(^>yW5Go#y*V0me+I z%h^0W(JWi!B_zw9AN!Me=~^eV*ve0R$$1D6#V#L-thy1^6=w4+Ph$^jkf*s&n?|B0 z4qk_Cz#Q<-s>|=eJf#!6Iu{b}4H1n?WEWU`%Q0-vCwT{nZ)GABDpjG(~)r79Hnj|WL#Gy71J~YhZQm| z0Nk=dJ3cb(%=+sGvH73%=i?nMg-?jgm;PSYGBWaZb937(0z4qEN;n2h0`d~kx(}GQ zfA>V+$7h20hpi_{?6p z-@@AvaDhzzs=s0+oE6-LT>3?Yk4xqU!G{w+`-qYT_brV2L$Gz1P~^xUNfp*wMDvZ} zout5RetzII1SBo1n|W6wE)KTpxhD{$?}+9J!Wlqfly z66IvA+eUm|I#v#XB(-%`TVr|p;m7J*QgQc72|AOqQen3tI7Bh`a5529b1qdH`!P1% zU&gU*x*G}UdxEAOUPba_TVzWiiIx{j6id{{wkAgsSDqfJ^P)Vv4O_NI0fJ<~*zVfC zA^;Cd#U*BfWkUTY5O<|P*%o&2wZc*FgIidbi;QHh?Xr911%055Iw~50a7b20PoBKo5`*JSfA?oh>*7c)eT@m1U3$@{fNDKpyy4K`q{lasOB^`W&g zh^9S%ta%c6tPYwczix~!tD7upD2a=Uf5-$b2$w)?`aH#4)O88erH`xv(@^#9NxRJK z$o0|BTo*shfQFT54x#K+jm~OhWe{Xh*|O&R&gdI;l{pO9UW+FNBQcA?nerq3`4c6l zjqxLeH5c?jr-7e8kYPKO#VFwwc4YWLH098S1lSH`iX_K&uvO+gt*h8?jV+g)cU}gc z|NOg0x&_OJ1|2_>VW5mEt|1}DT8JSnH_1IXSXNa9E}HiiKk_gx><~tNpe|EO7NsUT z`-J>JSB8fyYFj1~3T)m6amm<=qAcJ|&H_as18=ZRy^SmH{le@p1D3vX1?HZM9i2?=;L-JiFzhw1 zJs@_p+jMr~pl}rv--9%LEe1O4o@vztPu-DsPmDFm;e7YZp7${Jy!8Xb~Lh_cT zv97W4*-Sw}fy3U;&NC}g6X93Sw6zC}w6wO5c6WDELR-pQVnQ^}yH7F+KRxD<8bl36 zKq~H`>A}_lK-|I*g8u z6}}_87`Z8ui<*VGxrax=ly`FVsN%d9dK;ZV=whG(Q^;m~QxW@M2(AVtsPV9^uh>4}FrZg0`n7 z5&dSz012t*_EoE8;*XYx3gbN2D(+A{|GWz%4A~!8E-JN#9EonVusDHpD%#!=8`th- zW@Jd`=H*#{^l>8_&Fhjc7;tzwLOeX4*&D0wb9b{Xd4|Jow`co zZ(DFk67I90yC(?`tl+;kgeg+b7(`sZ8Ul-CvcmOvvc|LKw%bWQ5~%>R6Hs?xXPtqF zY>$&UUf&y$;S*jzEWVf6J)Y{*LM|ir!BliQ-goSsq2bc)5q#(%$SwtQ2dA0TY%R3k z(E+BaDKByOdoY^RYw;U#lpu;hX(5II#g{{PmYx-pDsRN%N?F6> zRh&~DFK^U8kVsN9qApdnG)&|_KT{|4+Cd!~2@PXN5{9)^-S6SImRY0qDd-JMrMp2# z{LO2{vS|t@68=37zZtu0av0-&R}>pUyCps-6M|8H@^PE4_pcRl-kYk(L^z1+_hW6l zahHA-O=IH}XH_FM58yqw0o?cDe1&$4{SEG9rV+GDL(SggGKR=a)%(xSfJwf(uD#{z zA731{fiGBro-QnwV4Mf<%zW|AKbgrAQNQl;Em6sViTD_L>tZ5;EzHTj2DdF7MdJ7S zHnwxHJCIf8ZD(yfq*b*)61&skyoYFZySquEZ#cZjCB&|JB$`8Ve|LJngLUj(*~C}w zkHuF_Z8PH5*4Ap9`*x-(aVP8Y^Tg7#LsyPd9=nFKXf9L+f{_66FA77g3hnTfC6wAv zPgM>wR27RliTx^AV1eOJ;Jg}h0KlINe6aSZ_;7y| z7&nWnM0-Hvz1Ncgnxexf2k!P zQrdD7`>Fw?T^fGSp)O4FYh606NeKJCZPDO?MjBNjO-Mci;LeCmoY0MY1@U)J>CdZ- zb>2s=>mzOx%1vc47`f3kmABU#mhFL$X1Dzg#4C2jC;oh0I;r}7kX2xTQmZX53z!It zgb&LokYXn#oY?#cnq9%WRiWooab-qg$neR;nPqvZ{6y^o5VKpWh1rAHTU(A%gKKuN z#v6_*Ld}SeJhx`)<{*%(rwTGs&#bY-MV{7Q8N?5WX6%LXqAF#F4l)Zm|E6dS^+Li{ zoMq8(6^yovS6|pY^p_ViqJ?B(t;|R^+=P#Z-%NfT+AZYr8ubc+AuK*5GOWE))|uyv z@$4xpI2D2!o!DD1x)vQix#3Mm=Zw~?w9O&GekB(Q4g+L1rPZNg&}GsRt8ld$G*>NpV?#5UiV+e1;I_)UM#KWhBHZ=t*(|HR+) zF)ZD8|Id4VFj3bK2t=Vp##0pT`Bt$-{vUg@q__!gmD~C!AQyK0rKaYj?Oo`TU2MHf zWO)8PSv<@nK%#Z@J%Hx%d`LSsk9sc&sGiM0at5s?V@{WPVRaqhr$<(z1_tN>mgnG8 z?c4`7e*7}qk#vW^BP}_(=6B|bk_8ua3i``u@-XWF+lL;TG{__O99OxU{se%r|sLuG72o`NK*i!v@Q5|L=Ct&%YImpLJ;)SEuTXAK4CXY+}#;TwGj?5ADgAQ8_o{ z`{bDvkp|whgF{1SKl1XH$Hc_M2CUyj2JmZZYr_B-@3q1AGRhldk58K;+iGSb5 z{8fq#f6x^|p?-6whoXl{P5?V6p3i!Yf z+@;&t;&3<%+r`s95@CH1O~SwC7i$J7ws?O(9VhYm(_&<>9?M5zvOCz31*RdkI07*# zuWv_W< z{yAW<@wOI_MV(PaJz(x*WsV4GQ6#sfiMmUEfD96)(Uy+nId6ny>N8yV8i@uS+1Z=q z2US5{vNGbdQH8-RXTdEcnkLTT7p0gKv85*Tn70fITUO&DWXusk)l?SJk&phX7H=l0 z(7{#O^c_vl8w(e-n$qxIHNls?x;6AgZQ1gG<4m`OA2)F(nMc(gk9fi;9_zk>6 z!s5Y~C%&??Q$c+*%O7U(&$~5?JV*(x6AFZYklgt{l9J#1sZ!q}kHS;OTK*9KHdeAy z6fID~o|N#~-}nr;Lu+{%Ps92aY7S&1r$KT`tPlY6BvgSc#=yu(#Zws{a;ZnG7al1m zJ6Qq>1m_+B`6l=z&{XEB28VoUePA+>^#okhtnc49XMjrB+9DdQ|1p15gYNu8w#YHv zMGAr#iMIt%U|I#~NHvn*%F`gf84a|Ox&Ro^$gQ!Teslj~kP%>md(pt4pLAc&FXy=~ z26rJ~QnsQ7jBd`E=7_TrVA1CW-BPmRI{6VS-&3EhxqSa&u1)8flFe+pYg;XcO@}9vC?Yw|}h-Nm9E>l;j*f^jo9E z`DU)%jq@Q{f19k4(GytdJb@@J)O9KXY%_j?Gg&IIl(DRwCp2TQ5=VDRia z6lH_z7wnLv08@jqfx-9-_J{ND%47`+Eztx$_RVCt|KcOo0*hn@mt@1pWi=wMB zv9$|>t>2|g>1EavbXpqgZEXJ|@A#p#rew0H$&hhP5yj`h14^7ssA|5zyCP=HZOIub zY%vQ(2r|z47qz}^CX|CS{4IEZ`YCAZLAlA~O(x6-LB0X(wP~;<+*rRRFE(>k8H0UG zCQREBo_vkd=;zN^4=YGiQ^I-v!#J>QK;()hVi(xGEaj8%Jkg_-VkaN~&5>31BU))AF$SrW`XfTd142=fypyKGIN&nAtYsp0l0#pds%bdKLyzeNQu>+{(l79BZJKoY;m=LD{HinUW@@&$3=)lZA1-VD-RI)ZMy1NwDVUS4~Z<2QMCVCNx*1-#q0 zfnXRk)92S!!JT#k79Z{-Z5^XI>I2|~MssR?aTjD0#!Y1*tvjCMoeRE$hy=7DV{pVL zCvZQ#t#uEjqRIyx*TyS~ybiW%w}5V58=!d~hP`@O!4={Q1kPv6#_Xe8qwjbgEQP%Z zm*n^b;C1Z)He8)}eNQ@*q1i%)0Xy>gq?nwLHUdUMmA}^STE}KzJ^^CDF@P|Mxf+%C z)#WABqJVj_&bRK48ucIGo38}d0#Bb&Hq=YI@2>O7;?;m_Rm;B3VRS=+!XTN#klj2c z7mzoXAnsj>HNK(ZhrNj;+?JV_cYH6`xQOzIwrk>fKatwF%2A$0( zI_!pP-wwZi{|Pp-ORS!uf3*10Z$8hWS9GW8XJD&JF3rJV`|#xCnu3mRxtHB+gUS@I zUX_2Z*PD41_syY)wk1!NQ3|b!NbnXN+KB^*cq;X z??XFH(h!vPkAm@s!js=j-X3qfm$+g$Y`NWC3G_zB9QNinVDeBFgBs$;V1f4Y@YT2z2loceLQX>%r4>C89@YGXKP0n3{Z6X%jv zhgTOjs-}XxnW@}x*Gr%#UVt3X_{uGp zCwO;WY47P11{Z^}z+$k>H!P-cVpZWD3$QCJfg>VM?^Ll)kzFay(CG{^Eu{t6QSxwp zwu%kdUt$in1zE}mY}bB#*Ko!7-hmKMr+^`7{T#c7E85G~uG9oo&q`l=zJrvoEvo|M zst%wGKd_|C%+BHhmH1yg{sI@p{@t^D`SU%%RRQw5IE8-z*Pbs~wd&RUc;GgHa3MXe zn~*jE4|28jVzt9h74HWxE-nTZWFO+v)1RxJoYry&(%j->TIjuZ*|N0Hkc!asXkgu^ z6V3~E?u-O>%(s`6mg+K!fZWEB0vd`EpXdo}Am;A@-tQ^iBWG*%nH`Sj$Z zEYI%g{<{N%Kzb4dI(%O3ZH*299*GEA*^&)xnCx2LCuO=ytH){bF$bpQesf;|Ok zSNQA8%XR0@oikPX#BBi{Xm>~z?1*~h_Bl&%rjpXusjcSMZk2VN5EQf&$X=HM8ps6J zf{FsuuLK7tazR>D0w=V9(Q|d$(l}7`C