From 5a228026638dec34377610921fbeecf17d3bdf6a Mon Sep 17 00:00:00 2001 From: Jamie Date: Wed, 14 Feb 2018 08:11:52 +0000 Subject: [PATCH 01/59] Fixed the update check for the master build --- src/Ombi.Schedule/Processor/ChangeLogProcessor.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Ombi.Schedule/Processor/ChangeLogProcessor.cs b/src/Ombi.Schedule/Processor/ChangeLogProcessor.cs index 83d55aec3..f1c0925aa 100644 --- a/src/Ombi.Schedule/Processor/ChangeLogProcessor.cs +++ b/src/Ombi.Schedule/Processor/ChangeLogProcessor.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Net.Http; using System.Threading.Tasks; @@ -9,6 +10,7 @@ using Octokit; using Ombi.Api; using Ombi.Api.Service; using Ombi.Core.Processor; +using Ombi.Helpers; namespace Ombi.Schedule.Processor { @@ -44,7 +46,8 @@ namespace Ombi.Schedule.Processor if (masterBranch) { latestRelease = doc.DocumentNode.Descendants("h2") - .FirstOrDefault(x => x.InnerText != "(unreleased)"); + .FirstOrDefault(x => x.InnerText == "(unreleased)"); + // TODO: Change this to InnterText != "(unreleased)" once we go live and it's not a prerelease } else { @@ -173,10 +176,13 @@ namespace Ombi.Schedule.Processor var releases = await client.Repository.Release.GetAll("tidusjar", "ombi"); var latest = releases.FirstOrDefault(x => x.TagName == releaseTag); - + if (latest.Name.Contains("V2", CompareOptions.IgnoreCase)) + { + latest = null; + } if (latest == null) { - latest = releases.OrderBy(x => x.CreatedAt).FirstOrDefault(); + latest = releases.OrderByDescending(x => x.CreatedAt).FirstOrDefault(); } foreach (var item in latest.Assets) { From 109f5317bbe826e3ad0a00d0ba5b872e5ae952ca Mon Sep 17 00:00:00 2001 From: Jamie Date: Wed, 14 Feb 2018 13:43:39 +0000 Subject: [PATCH 02/59] Added the recently added engine with some basic methods --- src/Ombi.Core/Engine/RecentlyAddedEngine.cs | 80 +++++++++++++++++++ .../Models/RecentlyAddedMovieModel.cs | 23 ++++++ .../Repository/EmbyContentRepository.cs | 4 +- .../Repository/IEmbyContentRepository.cs | 2 +- src/Ombi/Ombi.csproj | 4 + 5 files changed, 110 insertions(+), 3 deletions(-) create mode 100644 src/Ombi.Core/Engine/RecentlyAddedEngine.cs create mode 100644 src/Ombi.Core/Models/RecentlyAddedMovieModel.cs diff --git a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs new file mode 100644 index 000000000..97c086e5b --- /dev/null +++ b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs @@ -0,0 +1,80 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Metadata.Internal; +using Ombi.Core.Models; +using Ombi.Store.Entities; +using Ombi.Store.Repository; + +namespace Ombi.Core.Engine +{ + public class RecentlyAddedEngine + { + public RecentlyAddedEngine(IPlexContentRepository plex, IEmbyContentRepository emby) + { + _plex = plex; + _emby = emby; + } + + private readonly IPlexContentRepository _plex; + private readonly IEmbyContentRepository _emby; + + public IEnumerable GetRecentlyAddedMovies(TimeSpan from) + { + var model = new HashSet(); + var plexMovies = _plex.GetAll().Where(x => x.Type == PlexMediaTypeEntity.Movie && x.AddedAt.Subtract(from) <= x.AddedAt); + var embyMovies = _emby.GetAll().Where(x => x.Type == EmbyMediaType.Movie && x.AddedAt.Subtract(from) <= x.AddedAt); + + TransformPlexMovies(plexMovies, model); + TransformEmbyMovies(embyMovies, model); + + return model; + } + + public IEnumerable GetRecentlyAddedMovies() + { + var model = new HashSet(); + var plexMovies = _plex.GetAll().Where(x => x.Type == PlexMediaTypeEntity.Movie); + var embyMovies = _emby.GetAll().Where(x => x.Type == EmbyMediaType.Movie); + + TransformPlexMovies(plexMovies, model); + TransformEmbyMovies(embyMovies, model); + + return model; + } + + private static void TransformEmbyMovies(IQueryable embyMovies, HashSet model) + { + foreach (var emby in embyMovies) + { + model.Add(new RecentlyAddedMovieModel + { + Id = emby.Id, + ImdbId = emby.ProviderId, + AddedAt = emby.AddedAt, + Title = emby.Title, + }); + } + } + + private static void TransformPlexMovies(IQueryable plexMovies, HashSet model) + { + foreach (var plex in plexMovies) + { + model.Add(new RecentlyAddedMovieModel + { + Id = plex.Id, + ImdbId = plex.ImdbId, + TheMovieDbId = plex.TheMovieDbId, + AddedAt = plex.AddedAt, + Title = plex.Title, + Quality = plex.Quality, + ReleaseYear = plex.ReleaseYear + }); + } + } + } +} diff --git a/src/Ombi.Core/Models/RecentlyAddedMovieModel.cs b/src/Ombi.Core/Models/RecentlyAddedMovieModel.cs new file mode 100644 index 000000000..c63ea98d3 --- /dev/null +++ b/src/Ombi.Core/Models/RecentlyAddedMovieModel.cs @@ -0,0 +1,23 @@ +using System; + +namespace Ombi.Core.Models +{ + public class RecentlyAddedMovieModel + { + public int Id { get; set; } + public string Title { get; set; } + public string Overview { get; set; } + public string ImdbId { get; set; } + public string TvDbId { get; set; } + public string TheMovieDbId { get; set; } + public string ReleaseYear { get; set; } + public DateTime AddedAt { get; set; } + public string Quality { get; set; } + } + + public enum RecentlyAddedType + { + Plex, + Emby + } +} \ No newline at end of file diff --git a/src/Ombi.Store/Repository/EmbyContentRepository.cs b/src/Ombi.Store/Repository/EmbyContentRepository.cs index 519138edc..280243455 100644 --- a/src/Ombi.Store/Repository/EmbyContentRepository.cs +++ b/src/Ombi.Store/Repository/EmbyContentRepository.cs @@ -45,9 +45,9 @@ namespace Ombi.Store.Repository private IOmbiContext Db { get; } - public async Task> GetAll() + public IQueryable GetAll() { - return await Db.EmbyContent.ToListAsync(); + return Db.EmbyContent.AsQueryable(); } public async Task AddRange(IEnumerable content) diff --git a/src/Ombi.Store/Repository/IEmbyContentRepository.cs b/src/Ombi.Store/Repository/IEmbyContentRepository.cs index e6fe18067..3ed8d8abd 100644 --- a/src/Ombi.Store/Repository/IEmbyContentRepository.cs +++ b/src/Ombi.Store/Repository/IEmbyContentRepository.cs @@ -13,7 +13,7 @@ namespace Ombi.Store.Repository Task ContentExists(string providerId); IQueryable Get(); Task Get(string providerId); - Task> GetAll(); + IQueryable GetAll(); Task GetByEmbyId(string embyId); Task Update(EmbyContent existingContent); IQueryable GetAllEpisodes(); diff --git a/src/Ombi/Ombi.csproj b/src/Ombi/Ombi.csproj index 0f0dfb8c6..f55e6a507 100644 --- a/src/Ombi/Ombi.csproj +++ b/src/Ombi/Ombi.csproj @@ -28,15 +28,19 @@ + + + + From ee50eb79b7301147b3d121f69beb2413574530f4 Mon Sep 17 00:00:00 2001 From: Jamie Date: Thu, 15 Feb 2018 08:37:41 +0000 Subject: [PATCH 03/59] Added recently added stuff --- src/Ombi.Core/Engine/IRecentlyAddedEngine.cs | 12 +++++++ src/Ombi.Core/Engine/RecentlyAddedEngine.cs | 8 ++--- src/Ombi.DependencyInjection/IocExtensions.cs | 1 + .../Controllers/RecentlyAddedController.cs | 33 +++++++++++++++++++ src/Ombi/Models/RecentlyAddedRangeModel.cs | 10 ++++++ 5 files changed, 60 insertions(+), 4 deletions(-) create mode 100644 src/Ombi.Core/Engine/IRecentlyAddedEngine.cs create mode 100644 src/Ombi/Controllers/RecentlyAddedController.cs create mode 100644 src/Ombi/Models/RecentlyAddedRangeModel.cs diff --git a/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs b/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs new file mode 100644 index 000000000..5b2988c8e --- /dev/null +++ b/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using Ombi.Core.Models; + +namespace Ombi.Core.Engine +{ + public interface IRecentlyAddedEngine + { + IEnumerable GetRecentlyAddedMovies(); + IEnumerable GetRecentlyAddedMovies(DateTime from, DateTime to); + } +} \ No newline at end of file diff --git a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs index 97c086e5b..07762d336 100644 --- a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs +++ b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs @@ -11,7 +11,7 @@ using Ombi.Store.Repository; namespace Ombi.Core.Engine { - public class RecentlyAddedEngine + public class RecentlyAddedEngine : IRecentlyAddedEngine { public RecentlyAddedEngine(IPlexContentRepository plex, IEmbyContentRepository emby) { @@ -22,11 +22,11 @@ namespace Ombi.Core.Engine private readonly IPlexContentRepository _plex; private readonly IEmbyContentRepository _emby; - public IEnumerable GetRecentlyAddedMovies(TimeSpan from) + public IEnumerable GetRecentlyAddedMovies(DateTime from, DateTime to) { var model = new HashSet(); - var plexMovies = _plex.GetAll().Where(x => x.Type == PlexMediaTypeEntity.Movie && x.AddedAt.Subtract(from) <= x.AddedAt); - var embyMovies = _emby.GetAll().Where(x => x.Type == EmbyMediaType.Movie && x.AddedAt.Subtract(from) <= x.AddedAt); + var plexMovies = _plex.GetAll().Where(x => x.Type == PlexMediaTypeEntity.Movie && x.AddedAt > from && x.AddedAt < to); + var embyMovies = _emby.GetAll().Where(x => x.Type == EmbyMediaType.Movie && x.AddedAt > from && x.AddedAt < to); TransformPlexMovies(plexMovies, model); TransformEmbyMovies(embyMovies, model); diff --git a/src/Ombi.DependencyInjection/IocExtensions.cs b/src/Ombi.DependencyInjection/IocExtensions.cs index 86d6da800..472c88c14 100644 --- a/src/Ombi.DependencyInjection/IocExtensions.cs +++ b/src/Ombi.DependencyInjection/IocExtensions.cs @@ -79,6 +79,7 @@ namespace Ombi.DependencyInjection services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); services.AddTransient(); } public static void RegisterHttp(this IServiceCollection services) diff --git a/src/Ombi/Controllers/RecentlyAddedController.cs b/src/Ombi/Controllers/RecentlyAddedController.cs new file mode 100644 index 000000000..c2574bee3 --- /dev/null +++ b/src/Ombi/Controllers/RecentlyAddedController.cs @@ -0,0 +1,33 @@ +using System.Collections.Generic; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Ombi.Core.Engine; +using Ombi.Core.Models; +using Ombi.Models; + +namespace Ombi.Controllers +{ + [ApiV1] + [Produces("application/json")] + [Authorize] + public class RecentlyAddedController : Controller + { + public RecentlyAddedController(IRecentlyAddedEngine engine) + { + _recentlyAdded = engine; + } + + private readonly IRecentlyAddedEngine _recentlyAdded; + + /// + /// Returns the recently added movies between two dates + /// + [HttpPost("movies")] + [ProducesResponseType(typeof(IEnumerable), 200)] + public IEnumerable GetRecentlyAddedMovies([FromBody] RecentlyAddedRangeModel model) + { + return _recentlyAdded.GetRecentlyAddedMovies(model.From, model.To); + } + } +} \ No newline at end of file diff --git a/src/Ombi/Models/RecentlyAddedRangeModel.cs b/src/Ombi/Models/RecentlyAddedRangeModel.cs new file mode 100644 index 000000000..208f9cb49 --- /dev/null +++ b/src/Ombi/Models/RecentlyAddedRangeModel.cs @@ -0,0 +1,10 @@ +using System; + +namespace Ombi.Models +{ + public class RecentlyAddedRangeModel + { + public DateTime From { get; set; } + public DateTime To { get; set; } + } +} \ No newline at end of file From d64e5ba23f0e928588556a340170d6f5f386d123 Mon Sep 17 00:00:00 2001 From: Jamie Date: Fri, 9 Feb 2018 14:21:51 +0000 Subject: [PATCH 04/59] Update appveyor.yml --- appveyor.yml | 31 +------------------------------ 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index a9c94fc07..51a0f0859 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,6 +1,5 @@ -version: 2.2.{build} +version: 3.0.{build} configuration: Release -<<<<<<< HEAD os: Visual Studio 2017 environment: nodejs_version: "7.8.0" @@ -23,33 +22,13 @@ after_build: appveyor PushArtifact "%APPVEYOR_BUILD_FOLDER%\src\Ombi\bin\Release\netcoreapp2.0\linux.tar.gz" -======= -assembly_info: - patch: true - file: '**\AssemblyInfo.*' - assembly_version: '2.2.1' - assembly_file_version: '{version}' - assembly_informational_version: '2.2.1' -before_build: -- cmd: appveyor-retry nuget restore -build: - verbosity: minimal -after_build: -- cmd: >- - 7z a Ombi.zip %APPVEYOR_BUILD_FOLDER%\Ombi.UI\bin\Release\ ->>>>>>> origin/master - appveyor PushArtifact Ombi.zip - -<<<<<<< HEAD appveyor PushArtifact "%APPVEYOR_BUILD_FOLDER%\src\Ombi\bin\Release\netcoreapp2.0\linux-arm.tar.gz" #cache: #- '%USERPROFILE%\.nuget\packages' -======= ->>>>>>> origin/master deploy: - provider: GitHub release: Ombi v$(appveyor_build_version) @@ -58,11 +37,3 @@ deploy: draft: true on: branch: master -<<<<<<< HEAD - -======= -- provider: Environment - name: Microserver - on: - branch: dev ->>>>>>> origin/master From 10b17143d18bd3088e0661b19a53633d67b8e742 Mon Sep 17 00:00:00 2001 From: Jamie Date: Fri, 9 Feb 2018 14:22:13 +0000 Subject: [PATCH 05/59] Update ISSUE_TEMPLATE.md --- .github/ISSUE_TEMPLATE.md | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 21dadcafa..2684ccc3e 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,24 +1,3 @@ - -<<<<<<< HEAD -======= - - - -!! Version 2.X is not supported anymore. Pleas don't open a issue for the 2.x version. -See https://github.com/tidusjar/Ombi/issues/1455 for more information. - - - - - - - - - - - - ->>>>>>> origin/master CNW^X!VP^}P4Z9(p%V&Tk30NDdC#SujzdR>e zQq55%shvb10fSp7|1TcCdFWRU4G&*9_+3N4G4$-g^9SBF@QH!p{)xUDy+4Wm-|_DC zu3!15lK-!6zR*lpTA-0xDd+*`Q-LZ|_L6tLPwgh(9j61@xn!&01yc3KF~I%TQ>Rl? zWq6d3^j)pXg|#g2cw6^;6>jPmbkjg!x?ba-yje6Yrf84ip+Jj9)bZs{sGCEF)m@Y#Ll)QgZo386imnJ7; zk71$1pfdLS@UgQ3&*i0{3P8mbwpP(?XkYDo_3`G?oI0-Z2gSY`yAzD!kc}GFYfCno z6Y&ZDrEVy&xWdx7gcD>z*@=;hBkHP|xIr*@&&6^>P<##QWeGS#|77#I;fh#lOOPOd zEG8F{$D7)Qpy>ajaz=NuLLP_W!nOK*62kzLgSm$82urS3h%r-CiirXkUlv%Y)2``# zm7XZAK2P;VfQknIHbB%+e- zH|W!xo>;g}c``KvHPK4F0n%?F0Ynpl`H4*=o^_^bUkG@W6%DQeTn1DN-mkpKYrJI@ zZC;Ry@I=KA5FkxxWjBw6E<8Ir+0KoC;{)2QCJUk06Sz!6?WJ^Xq8h*M3Wdg&zloHy z{_tOKwHm(Iz!fyKhgyteL@W9PVD;Kc5+f!A4BS3O%GrARAo+oa9^acy&sYk#&#Jau z0Wv0*>W@@X)Aef!2tzU7-^y>I>a3fF*4iYRm})dh;A1qfo%W)3K*yu?CX8J1zhW{5 zxoOm#tvOr3EFJ_5AanB!0%xeJ{)jf7I?QtXW|KCy?%f;;x4WhPpM~g;Po0z7l7{~gZ#&XJRcuOE8<@Rx^+2e*cPedu|Evj@I&;P(e! z*ng?7)%(fb-k#C!w|0H3%i&j_^uvi^f9czk#%S1H?<3{abc!bNq~fv zMW8FOsadS8NJr1 zxngbpO1-hf9hwE+E!=Nq`g02@q@`9XwPyU>nn2Oht?|uQgr_>N`IJTS0E`1Zi3A0d zL_5EueNy=KVr>z;iAWc%Boj{IM}|t1rnLt19i0iWHVk#}sNn}B#p05)^Sc`KU98ng zb6QhsObYx7+)p?mRSm;!9bH@%Cn$fo(%(`tr{Es;&gsQ)@gn}GfkPbtHn}U@MA5M< zcJnS%&J>6P)jl5?hrRRaPzM}piK|Z0YfRuqg5+THrJ?bbuma;fhRYN`uIGXl$T~a! zRe$tM2vJI8)SFF{BZ)JN*3n6veEb6KX-_^riipD2xc88@-z(Nu?@1zQ_Q5FSHg6{i zooB{`a9mN*389$COWdU_M^Y(?X@)cqbZ=9OLh}Yk*B)VGCEp}|lSrB%6uDKW{j$!6 z5wjD3RS}M1_>01wZa1732xuyT2VQG6`u1{dIMn|b9zXLLB}BIPZRDSs$mKJ`n#>oc zbSfh~PP^JMe7sq^T1f!J!#D^*b1MAg(Lr-ID-0yM!UB{B5jsE^KZfN*p@1+X#YaAT zp}bU!U*?eFb2`_W+C=SH7b;FiMhM~pDyt%kM9>qUpXao%sBfRnOMmtho!1I}09%-$ z0eereTBi*=TCK+~kqk71Q(zRIqfdeOlh0DM5L^rg9$1^R_v30wd^)cqsR!fF|DnOs z{r`_TNA5fPrb9nH{3ZDRDns8r_N-;jM$ z&L!Xn(kh#`W9pXKD&a{Yxy*_zG>y)kKh}-}#nt)}+W z$(U7OzEE-*iG&EBcRp(tVilSOjS3OH!vtJ__-S)AbRnAfNnD^1070beC6a+0HKPBf zTu2AS<|5@egwR)FXB}bzvRti(O*{H(%?Q0HU>>FXhZGvow6pU$ZGEA5t;B?C0-rrc zY3_mWvs+4YuyUs1eUf&9@Uy|l;OyxUo{UnMC|(ngc>?pbKK1y?O~a-g-Bsqh!{QDmcNSOP`ByUHpjVF0n4MZGF8k*?zu)BgTloj|sImhu2VRTMn-$<01@+fHBH}O{Gfe?EHzoe}d7{9B6p~NF{LwTq-Cq zYwHF zkj1cnVE*G&IC~fM{_%>-C`#5-nfS9DAKJY8HVwbFwGaU-OhGY|5SWsoVfzJTyRX{d z#bttrLE>S#@D8is947zA4+VFM^TzCDF$(hFzrjNbnG5?v}iDiF11 z)`IK~vU#Z_QdvR8eP>s%g=#Ms|IS*(U$vm>E~^3bSx48=pnuwCG|Kaeh=f^4urAKd zp7ta#9gpJ5N@)er#rVSu)GqGdguVSXy;t%B4}Dv?l^8ulL2PF~+)!cfH5rjx76B2T zP4Z8@2+`9pvIsz>RQgr`c}MGY?`&r~nMF8NPC^9Dr-<>uCYsdRe#_%V@0B}MRT`-h zcv7IA(hHD(!hXzW_9gYoxOWj%c9s7t{{I~P{|^j*aX5eQ?L(g&Iy^Xi;9n1XWT3nM zXy0=05A^)Eo_o5hUGH=LCW`;x+cfmsmH?gM6ZDH9HziPHLK^-qXYT>MjtWYgi~nt; z0Mp8BLcFa{&@-d&GYp6S4Z3Ph5R;+8>9ft93RG*{WBh!! z6#v8v8Gfd9Zd0>x)25oXU75%vb5lu29FiU%o$Vbhb^(7?dS{DFIKCS_=kxJpVF;Mo6vFV z=j&C`Yk>d*%v)I{Ge^Khzt-7lcV2>G^%@jzAw}TWmCEuGEv*%eBDqj6fg$0a#eYW7 z&+|5+>eg|UrTHv^7%YUY8Tk2t()Vfn0!jj)3MgIzESf%8(Bqqii`(+R34N)sV(>ly zSpY6V#cxJg9uz1P%$KTb%jnQQSic_kmuGN3L-X8Faz|ruNm9Ll8i7o+a>=^BAi*x_ zEtM@MLBGme3k5zyz-@(!PzVHLAw>d-#0$(HJ*>WaAzuVPMF(ghk?N!i%HPOXN2C1t z=CIhndqzO#$+q_>@cn=KoBPEJ55>Jxs0BbfziITVEoT&~c`*WCVmW9?Xr((lzaLsn z^Y&W&!)jRWllq?tuT5)1hl&!Ct85mut`T@AZ~g;qd8UZ?0<@Q7R~n>kOQqOjAzVOq zZWHZleL>n?V7Ch_jR8m(F%@U$55sTYDO%7u2bY$_+m+8#QZ>re){-h>3{d5>ebS8F z0U&YqW|a%+LXla=dTO+u0D%)!1*bPpstpAH`HARvm$oxx&-#{!NtKeYv-3wC{&Urv z1)SM=X{YK$)e}q0FuNykj;XCW&K=GL=g0~8|2}o7fB61`>qCzX{_)@|4lEA*X#ZdK zAMbk``hWdB6U_gArfY~_z0D7J!`pCpQ`G@eL#Q4;g7St;vb6AN6pDmXv1dpw2{VVv zaClpA+}KT4jg_1#?lZW4otfhXcv~Y`S27E!YLXOj zvr&jSslI%kNR}@j`+dfzheTu3POCXgYyg03Fj~n}(R%(qzPe zf(yr?AZbuy5hTsduW1KzvH+(=|1W+anOp%zuKXs{+&U4mJSJptSsFtUiy(w6bHmQg zuWRcigDWpqk~ywT^U+OY2&QK6=_QtjCx#bzJpDNK%ujYq zzbnYZf5VIR+@_)1w%qVojl?cPMog$mD~`8yr=yih`9%s~@f!};`H4-#ux*K0q3uMy z4dyVpV1z`HopM}%?p!9TtJbiO&Qud9eYsv9@q$gmu5GzxAireCAfZRz02&6#S7+w~ zos$YTKr#ZsQi^N6a?_A&zb-mt#dZ&}xeWKa3nrel$JzOyww(-Ho33j^Gv)b4c{Mdt zufiKaH6FTxQD90}=(5MZwOncC&V?u0y0th5K>j7_VStl?d1puKG4i)5B`d*Sl2Kn_ zd2$?Uqo8d)){K2+5$|DZWuc&xIisKIoQ`bjq^Q!Zt}d?}J9@OVygag8E#DYfy>|3^ zc~1WR8}B^2Qf>eNI+`iDb8~Zr%kF%(P@)jx&HIJxbykT<;*-B*g-ItIl54$ z9$Q^Gakad5TvQ)n|9weza*2Ps0G^IN3QejDNcHvMx3>&>K_{7qO;}=P>HPUj%cPDa>bt32URjOUuF;RxZaL`V&D*BwXT*<;xxy0Jdr-6&^UHx6Bp9EvJ@cZ_Cy)7jCglGK)T zM+$^n66))Gckn#I|My-d)D{if(*Nf84ik%;VNK1xg6g9CemF1lob(MD-OMnw>sPNFx! z6YOpo+HcDkCJt~O1Ep^vTLtFbJx%74$zp#Jxh>CYVXHeln3e=3P=jd&Ra5}{NPoa- ze;wv?>wDU65C`#JizG{}u`R>-ZD|^NyiWxRrMyoRe6g5H>7VLr5nj|$+F;Z5B`T%K z)qAOr1Y5UZ`vye|9tD66Z5bFwGKgY2JO96S!w;Q^KSH3Yc4pJCeUC*)o|v9V^XWtE zwKR<2o5KIf+4{!-9IZgD~M??x#a)@lh1=dch3px8G;53EpZSaRt? z;X#^-e#qgRonL&)O3%n7^c5 z$rUdH354&F03!kG(f;1N7Futq3h^R9cuH-Brx{HPsPUbhU)I(K%KD{JBDM=#oRQbI z+s;HIfDg&u!NW6Sy7Osl=Q&FkD~;u9saC!-f$uH^6|3QQx8M)pJY_hRA{@5!E+CTX z?0iPqj{0M@1nX%M``x8|tmU(T&=qYF5f=}Qeo{udbikW<%l?P{>IHj56#p{N0l2!^ zFih(`(cZ8Q@T-%qb9y<%zDOrd=>6{&DO3SL;{=C5w2M#~%Uu86X2Sn&&`?UK^KKq+ zAq65Pr;Z)ByOddi)`OcyWBaVtTL|y6YGeW4Z))+*&aY^1rNc^{>*AG0y}5Wr0UxL8 z^{XFo^9eU5;?+@N};PSxt_W#%Z7xrE3 zeNWGC_dL7%Y}Y&a#jo9;*8N-053dBvs~#{;!b6ggHX!9kib>Ais$Lv2)k=qamqD=v zno>UH)MH!E3q7zrg?IpOKb%t>CT?bQJe>Cbr9H@q2j!KeQY8V#-Lw>gw+suoB{-x~ zAm#^hC37-}5S{kdV?Du%`u>XhcoKCR25whY%kf{(WInmp#MT|*Diop*IetLo!K|SG z^1udDG}v3wt00x8>s3)l9)tT!hzl5DEfiwEt$Z9gzV)2Y5lh+^j8HKX(ghYoz^EWv z+J}@Q>4Kzvqtyyzax?6!*d5>wZRNHM9k`_^91vV(Nt)!T1Qbmv$7vtd4&+DcXu`(a z6>({~vVjZ-xOD@u_hllA4aAs>Vlh9WH;_MCuir^iL>NU&iomRXy_^6f3I#B3RKo;r zy-|_ZhG2-+8Zj0gQSYd0M-(^#XRb=>JyDIlIfw{5;!azJ1>BN!vx8*tU&_WVkV)Y3 zPWu_!14Zc^dT^>-Ys4RP(4cIc*g6s(V@rcGfQ1lQ7h$(#?u8B~tj^EWKB%$V(1)qY zEe}2Iet=erlF|78ftJ0(uFl3 zV$Tc7E89tAN1VNXhXbTanQ@4QScCX)BZkN^9ZqoFS+klBB#_y2DgF_$N@uP89R2Op z#L;Ly{@|306z-rcLkVte`bc62pDPg^d6J+;+RxUecTVpLpB@s71ResfHM(WE!7cou z0W<%M<#-Yi0l?tSa@uz&`_qcNV6@&ua4L0rfm%%xTy5Ox+@ZHo)6U=pj4@1T@(MsP zm!Si+x2#v;$zH%sTbhr5C49#2#NXy!v!iLw-BShj6*u@=V>oG=RtV^8Bc|>Q!{?pAW<5}+9+yU zk2PIH3Qpn%OCowT?dR(a)maR5kDyhFJ!d9CNViUH^@W@1ge^fp|CO+F`{-kz|13@RdY_*B*>vJF6h zn(AYCdQWyTZ#@foLAZ)iXRntM2pGYkjBOb@ZtDqSazVtb^kaY#|!4bTH6;Ci7xV!n1`6$->!c?H-+G7l)L z;caOG?x$nLePnW6eb9R~=%>X`)5lRMkee8)ZcA>0`M^d4 ziI2&ON!Yo~zrmQ_q^4V}F3DQOAKRok>-TQGBz%tS-=D|^bTtkz{i?L!{}~Q|(8=>0 zHAVb4ncR@0a%}6xq4}1gC*Qw7VxH!zlA$XRK-ha!AC+LV$@s=<>QuQDzjUb&uf{`L zhPV46+d&r&rmU;*EyMyDN+fSoAKx#GHdp7baI7JbT39nZ5JmA-V_TiAB;izsio=W4 zlAwEFt(v6KJ5YmUWG~<@GERHgy~>sfM(M3_BQ>Qto?^KQv0uPxMC>NE47<0b2A2nS zM4wI3g#Zcnvh=0iq<57{TE=+4Yf{MNdP3;8p2Y3yWn2ChWZxQcVM*U{gk2@EGO47L zPMmg1`=Kf)W2FQ%5STk@o!)}uTjyMsMkkgBl-yMI?h;CYT5I2_O^1npStvnL9iA*k zD=XJ3RhUm==WQWQE^y8b!MF9Ca~>Ej;6Z0ZpVkbr0x#0eWd4pbQqt0lIz?a@aJ98(Bb}NBNW!`AOot@kmE2xN1=~_D&6DfX z29*Ad79eD)Ufek{p;zaxRG@ZQjz6SIbLb!5LJ(UY`q$bPhKYC{7D{&M0-#&y@n51n zKvO}VoJ-PJUuLkeGit8)+r%<_+Q}#s!Y8A-6BBTSPRSz1MdR z!YGHkx`v9`>XrEEVSsD9WK)K3+mcOr44ULU+EqOC;F@GGc(0_kOaNnb1BlYpS}hSa zp{$4bhH%?%K2%`DG~7e%dkXi?&KLFPXH;Nim1j=`NfXFr)6i9K8LDmT?xD#{mtDdv z>hzR;oSi>c=BN4kQ1a9?G&g~VJM9uC8oF&unCO8W@d7Z?e17O5nLc!O9ygy~*?$d^ z=jF1f`k}{Ox?Yn8`Wax;pvU45sE}72-GV1Z2lAFS7EZAckPMTdlNK^c;Ou-!I|T*3 zc4}oLb@6)ro=Ijs6YwISYHtX*EmeDu*?HDOD!V)h1=>N*&Yx*7Tb zq%d*cW^-{#32hz-4N0)1e=zsN=0Z7G4v1vwGvymeAosF9Q*uBlwHKBtIS(pm!gSI4 zK#G*`mg&BE?FE6xDqgH4z_-W;4Tv_}(0FUK0UNIb<6=DWFv5KFmu3mpu9qldC2*+o z)$n@|&Lp{L*%@s<) z&}sk6&JLm}wn|AYiH09kaAcZBL)(&R=8@?s2t1GNPXG%AgY%{LYU4d-;bNbxWHctt zUKjqqQRm3`;mt#zK6GUGp@ZKx^q+^GH8^$P(SeWj|8;-9?~T15>mBMj*Zt0}HVA;x zuPy+z&TL%@cimWYEaH#2gzTMp7D+j{f-7p*xf)+qX6Y0yy*%XSpx2xN1Q34!?}Jo4 zv2`)@#`2)x4RAT2euN_~G@){ax;mS1w7e?S&slj7aU}lUGyNAj1~Z`xmeD9&@H6yp zZ~?vqNV%xHcWW2)f=r%_{{}#)>;5f6#cjbG`zT3dy{rb-u&abl=BnOG`O(V!nvjYM zN;H}6;}J?d6n=Y4D8&_=rexqr{uiJbB_7oDxA)ZZafNZfxKZmAG+NoM^P%Y$Ml?P? zwI|wLnF{>_dUt>&(*K5T#diT%49UPCPTb!sWtKaQS5~tiLC?QAy8vy zuOk4hbZf+gnJe`K$W5??aL-V1Tf;qWm;l5LMPf2NpCUkeK<^)oyc7E?@vD;3{>Zf+ z+&UAUT+1w_PpJ%gRoOvg{W&JCob~~2zCTLcLKRwTf?W~q=ToKXWl*j3>Pywwbyo4n zrIZ0J_tTa#@CX!%GQF4A2B2g3#RD00ylQ1U)$D5F`wzq`}yOv-1^gd~URSxlVI& zy0TD9B#}U5o?FR?T3c_W3>aF)^}|3lEg;I2e-myZ?ZIhCLXtpzAUJt!Ya%=Z7C0B> z3=xafcwoW^fHymTjs3!rGYWxTwfsmkky1AT82PR7(0Xh7pN8It9GdVS_#F5ZXRmC& z{z4g$O8lJqT<#E*ZW*O&i|rmHh5~p{Kt@V2d0Nn~Rko*dGFCqWSRnq=1^5y!ozbv+ zZrL^1j-IIqr(`f(#GUrOS$}p#aHUL-UrbU8(tLQMP;LM4f`J$L5h?({&H`uW^Tv7_ zZoqrv|L_37b^rgP!vFu~LmxlXH#{l)|3ic1|L+)hfBzr%KeunJ_ia7z>;CiZbk{ZK zqhFoGuD-;lSC9qA&JqPLKzD%}p{VO`6BmkBSS!1~-&W6qK1(7uq zu^iGKG$h#XLL1{3oZWjvHbcy=m15Usaw&B(3}$$+z4Nq83ax$MM>W;1kQeE zq%9}iCIbIz^;qiRdUYffJBv0rB8hMei*|H`BR(+H%snHwjdH@-y-%OljQBu}=S)5R zep!xb;Imuh@P(R)-Z~iX2PpVS)KAtW^f6x&mIb!Giu%KrAGJ34v`er#%N#-M5JaXQ zAhJ5KwGg@!okz-Ah!mvDNg!rM4mRuT9`D?pMIh2(UGQYO*#P|&dn%lxWO#1NkZVud zRwM)GE|3wn6RjvwpV}1?WLXg$SfrIKszS%ehZoD*AJxvhUT?$?X3H_|Jhf#wwNF}I zaw+5%SQRh~UWS_PZif%q7nfERt0juK$0*6yN>##9B8wG7ZXZryi9Bl5hG09oM$InE zwuj%^iO5Bw}uuk%8(%zOBKo_eO3u`aTRw1)^r<0@YJxuz%gT0VbhB(mg7)Xb&j7Y}-*b)xhbxEPH~jhGqX(}J{m|fN2VZ)i zH1OX3|Ji>}U%mHzJ^!O8*Zroh_dAdCtB!-$&|vFAceK}pQvv%8Xg6Ma)XA9a+MVv4 z7x8)un3BvjCxE%42*82YgxKWY(J!?)04uV%Hk0@phdIW! z#MYPe9V}bLE9iY5xWK^Q*>{a$vS1C010Hvm6@e-j*T3j=pdC{ETKPE^?{Vi(c=(2qF-1WT#*U zEGN($VbHZz+%mM+8Qb?pOB*f%N(Vd?Xb!V)q;vppiCC^9Z7!>#kXyw6^&tr3=o;qh z=(n1$4@N9c)r@ojdPdPg_)>?B+bAt9Cm~d} zrLzwK%2ik%kQhy5xRWHEfTt0bD53*Z>h(TCmon2vvG4CoC}MH@EQdZ= zZXbMrYMi~#?L%<@y*y`^{*NU3xiig%&}__$fJ_o=fQZRfJ+$Ax20%hOSw49+>M^^% zT7z`vDfXvMpFSOX$Oh__gJ2}4Es;M0qy(I*bwUrN05yoS|7^35I%_anZ&c&2Y$ITR z14vElVx#pW=b2y=-3+cG@V$YvOOsztGHXEAaWhAC8C3x&E1YDhh%n>rr0xeIvB^|rV z%hD*hw5&hAv_}*>SpwM299WBqtw+MM98E7H4P0uao^;`8CO|ep>T=9@bB)5qDMU+- zrDnnVqHu6Mbt3))o$K`fzvvt}e)uhiJ~I4;;a4224gJL6VBl_N1QJv+3){{`TyMtwhcRXG-5cH0rrV@krK2+5;t&JI-NbI^QRl4(w;z_ z7!*URu>H(%*ICLI8R{<7Cq=M@mSbM{xOY3LXF4=J0hA1*s2Kl@+Z)ehG|3OfgO-66 z*V*kfu5-rtTyzC3pp1xhiV_z$f1Zbz9RNaCqTr&|wf8`f=0 zz>(pxrZX+tER1z})F+(X7wSt2qf=ud&z_R|DG@ki4myePZ9}|msdZ&#DuFGpYZgpa z5x71RAE;UIU@t5xu`%%ht*fQEawCc06h#wo4Mn^Or81 zX$nj1OJM=1CQx=Eop1TuhKk#gI+Fp>9;8Pl!8a-&;C^-mSGb9FOa3x5GcYoX#ypzsTE^8MR}iQ5vq z;tCTkzOS!PiCLZ9j@VM>DfO2G9syYDS|_$O4>uJUs|SoFf{t?RrNQB-7aw%-@4fl@ScII^QibW7&H!^5v_q5tOd8)s2Yg|6@s|C`p zhZ%d@2v|oC_{(<(*Uw}#`(7aa;4F5}Xxr7qmuwjr7u1Z!MJ9D(kK}+Iv?jN^!zH-a z_8bs}k~xbTz+7_7SL~iu+b5lwDm6-}u}1wencKzs(p>5Sa$B+Y5&%O&oO@#1h+9Vk zUsw>Is}$Z5Xn6$NM)&;juoI$MfMAX&$ye9nFX{1FgG}q*Z6jDw0!rFDY_X<-$y9iQ;4e z(UA)ylJx&w!T*2Dp-&v@9Ug=K@8gR9?^_2xF>s*&Y~Q!^eyZnhdxGw(T|egh6~F4V zirWx=pZI4z3|U!jg6s%Gt4dOdIUgbV*u6)uS#YL)1*%474k2{C0#PMZ*I!S;ljH;; zr4%kzG$oxODNzD9FZ0f)wqG3HyeFb>-pmMd8Q?C6UPVKRTE4TZdCK#d)2j@6PL~!d z^LHmKn~|f8Jicvczb$DgzJTs#&RBe*lPe&AVMSx=`pTD5hp|-1hY}%QC$`3q7lmtL z^#i?S$cNOLP|xHw+}D&bIhPW_snYUtxyA&+Ib@2GDH8+*Mmn|)-M1y6rPP61M?o<7 zOw~{^AfnYI{uvKHCQ*}N6g~c{h{o2~HWc4aN1a4P68?C4V1(n;_BbLKubXq}!f9H& z^=6||Z;DWdfS?m#DyP-P8W_HB>l)DIg(aK4Bm!wnsW|&WAi>?_ovy)wUrvNHg~A;d ztKs*yT&x+Y1eEau4m4x{T(O?B-{Fx+E8}GaV&6ZAcCvpAjko1J#`au5WsDjb>VQ7L z3}?5~l*<|0lYEiEr?Lcwx7)r1;Km53a07Zqm%{vhhYv&cPqV@FO#EFr@Z{`$2)p$W zw(fmqZv#F(wsVBxLvr?o4ny|7ARt4&XYzL45A=EJ#<)y*#grG+eWq8x_!u4 zk@u9E9)cTee`mLo#L4%sYx2(3dLw>4x-3D^ecR6sH;{b=gs@QNLDOKX_#bCq6RD&F zrejmyWE_skV1y zN&P)(YbyCDx%fN0DcBpwxF9y@9WbZ#a+&cD8kNl4-96YqwAnRZpdWdf?!$<1g zmxl7m3iFY%A6}|ldj9_pH2>ePANsoCnS<{d`n93w56&F;u7Tefcvk;--+J$ddmiuk zhVF0f`Yz`W{$YCXvHrKTylulNZh=mM7-n-R+!Zq>g=~&ot<$^p^hj>(YeQd_c8?(w zw=_%03oC8)X{M=bKB*%%cQ>gs)a2;rtH4Lb46$OZmI0l#{+QWgR+ zxrk5Iky4EN5*B_83BV0|xFv$kjsRyafv3o;|1YQ72aUD%r z%9Pm=1hG6t4wB`>LxZ{dje0Fy?aZ2R1YB&}8iVA^yOYI#S_=10iHZJ_f#cEY+Rwkg~ zgQO4k@F}H1$ zz^%6r#V}|Yq^b(ltw?(8zCyc^BP@!)7>w=?ea%;dw~w{2nFF5c`_y4!s6PDea;+v(-${C~_jk~%zh=uN}_?qK_1-%w%jZ3lk#fHQES z|80FA?EONo+f(iS-mbkahj{z%{;+oE!X0O+eZ$>|?g~TzEFPzxIWuRsuG~+1)1`$H zgY@$WR9^wBwjSCxB-{^0XL!if$#bD0^>D&@6wf-$P}wJpPvwrKCYp`UawV?!LsK)n(ct6) zRLk0h1dI;|u?$JKCB$M8z`J@{B!`JuP$>ICo(7agk%mr}s;lJ{7{^N0`2;HF3<&^Y zG#uR)5F?6w+*z<75MuFH<_Vnr&QP^#H%iI;GPF6VOCt}CjEzivIf5$Y4J07td!fe_seGA9-qv^t$~Vw^ECPilicWO#WF7)aFV%sUg-}!Bs@$&`LQgi6 z*isT^7}0BMn4!c>S=y`GXT-WzI zpZ~k*|39sNLV3)Pbz90~KE+8O&l3LU7{B7qclPzjMuzwHM*KI0FR=f)@UgX2n6O&- zw&bzRaF`e+c6Q%vuJjv8g~)UV@834u+m;v&+w)xG0#8EQ1KDkCe~Y%g^SC}*PF-l$ z;6{%9>w_6@O>Y~%?bFeB01U%ym_SXu0Iw2J`uz^wC40tLuh0F=e7ynj;zi!4YWy`~ zw6w`uVBFRnDofTP3X!aUG}eH^vu;zbdEe;dY*4n_LD}!N~FGh z{Ko+}Bn3u8zilZniV!2y(834<4`No{gx!|;`14mvwaWZ4TKy}{Mx#8R2#}Jd2&3uH zaO*CLrM875G;38FLq-^$48(`8Nq<0#@5ZfRi-s`~l2OpMMo56?VbqrLgW%AGr)NWd`0SI- zhZivR_m~~Q^?xy30PFRiC!oMvJRo_6*udEr)CEs83$RM#tX{3ef8%havwMtQw)NO% zsDYySEyjbx6PWFz%6Oj=C>YiA^=0Vk;x`|z1@dbnnr+Rm5fYPuHC`{+VW?X>`@+k> z*YETK8ZeP0QLGZM)I;IUu{>Ecj~QcT&yXFEXlI0yx1%&fY`s9?;|3~2O;+JTy_7`1 zHQ>!UA39-uv(PHZa`{upf!4|wj@ui038av-awQ45PQIp||DSM<6b`@X&||}29L^tX z4gLJk(BQ;@?SWq!8164J|Nn_zr{`GrJGy?ptIL^)$oEN4Z-o9^(o+|pI*fYqatJS- zC{ONQ(*9EKX*_^dnw6Us zumG*_ppb`r}dU``> zza@HdN6_ekRFa*P26CGRroG>RX=g+G&&Lmwq-qCTemOMWLa&GM5Gqkgl~Rn$>?E=G zEA{DBeZVOJo z3;~r;mN-gc2wq~L7kiEV_?fB7QU&4g1cX&`RPT!0hLhX+6wthbgF%`^fGH58aCX0` zW4mrgKv$!K8}wt4-qX_^U2dQuypf#M<)NJ!$RafE;jt z;z%Iv(VE^n?o@L=ezWP;P%P34)&y;qVi9>8pBe=iF*{FrlC1N7Z8mw^{9HK!9>Y8Y zfK%H>!TO}Fn*&}8Ag1KYNGZeKDL)o;(qBVY?h!Zh3F993k;Qv0-MA zMJfOsf0MRc4bNkJqY{5hmeM&>E(^+d!vCCY8v$jY<-s;eLz_YZ?Cier$s@GddfEn6 z3Kt1L#o6JK|3BOLoaq164*l@(r-yqEjt#wS@W&2(?!XHMF7&^%?*qNNJ%5V&-*VTF z^K1Wfe_CTV4S}^6y-PBr4(7fX#t6UY@9lyBX4)38}v zpSv_V@hEaj)`{$=h>b6HZm+32ENwGQw4SdezzBdWRqMn}Lt$;9%=AW>FXH66^W{^rf(X;Yzy!SFQ_y_6DO;}Vo0y@oAs(_5_UF}y17zWI4UYjb0r!W=Nm~pra9k- zi3SR74Oy|)pBe098RW1qZH+9-zG(WvDy_hQQh3n*WFGsO*w-YVlMa$m!?uKE?g%3& zUZ8Lj8FYbVXT46Z$y0rZ-G1UM<^{AEHt~#QUVzA$G}v`H8E|b-_H>E%Ts zY*}3bz%pHjh%jzHybP_3*KQkG>`L^rj~~nkC>9(vaB zeFxt%^r68o42~SQFz~Ma-M+8%y{z|Y&v$n3cYj^i1%B}#^{4f~O+z6a{TgHgn%M!* zG@n(PcY}zI_-}rAAD7?lD%}d%F{=|Ns0K5WUZGL6Xz@BCHkBQ6Q>9ba(*NvR2Q)EgbWiM23hx zejqbVGVZPChPy2K-paWnOyhuL=FX)bBAi0bZnp;Jt?!c9?4f*mBtwO)Di z4&?(e-fN>bl?w_UX}Po%4uAv$D0g;W->HA3RpsC*i8i2SnXOQjw~#BmoWMx3kKohI z=Y;EHsb1q73{Q;2$brF43RL?P;5aZrZmL4FS*~G0JdVeoCAs-ro;rwOthV&6Z~?Fy z;80uuu$@LhXdeKWWZWIR&Nb2?4){5q6QHYcL*~(Op~&{Ea3QSS9C_b0=RZM~R0{X$ zp3BXp6Nw5M+>4?Fs0e`)aKlZvj@^7_=!ONm?T+Mu4b%VUyt~M{r@;`)4S*w^ZpfU> z>c_tbhho9c264n+)S*z~s!Mekk{78Z zFh`Zda3uPk*_%f~HH_z3y~=AX6}Z9+X>PAMy&|so6#rAs7*Wf;X|$fLRu?kdO)~oh zE`zX^vDCthVHQywwX&wmSs~=4t{cm;i?M zn?}{y0=}l3nWhD(fL}~80QYouFKg?y0HAbaFO+C$#(#zZaq0R0FFQx>J^WVY|NEK$ zfA`St&~paQ9C-V{V*`EtV}0-F{a9~z&v^G{*QcE?|D&e=vHq8nU%~UN(-BL4m4|d& z&ALTBe0E{Cw&d9qY3-B?RKT(6EKplC=_jD($Wj;BLVW^pLMBWZgA zsE7KNg#A<6Aypkb*`%=^`!ztLoZK)I+HT1W^OQERSPl~42CBHOv-eqTyDt1RYm}d3 zH=dbh?l4369DRq8*h&%w0lKs;3EF|K?){!JKAk^FqmQO5!oKn693D8`R_k4; z@05%zNg%Zn&cV-MJqIGJxz#G=_#-I3BoVpcdybCCvpx)9(8dXWXO@}|``>B*gx)wR z5Ijjq0lMwd3cbD9w+{s>#z&I4QkD+?D z+&*}~*rzWm0GAvjeyl(Tltj5uK`CYvV6a7sitY1?@cde~k3RyOM|7LiuXMBk55)iz1&bgN4HYgK6LFoPnFA|Qe<|r{gc{!{c45gA4{DFhMU9; zH0X!c+GbhqSI1PdRYB8i~iL{!!Hb6zKjl zuV8}TOm$>Uk7U(bjs{Rw2YW#@hD#}E2!o(RHxe6DU7v*vbWjUn#-vg^r=Kw@ZB4#1 zheCCMO~|Nk)N?;<-yurpf#azn^T9{C+NCp<&N;2E3ocG@w@)6y>IS!6*FQftO7lIA zSeg0j19*UNc%@P}r#ZZGl}#P-YP#=Z2xJZ#_3!Gs$1&SW=Ye@M8_!Sp!{E)5%G;d2 zFB%-qJ&|HC7_I<_W7P2H*GV-SS4NL!*Ak831bsj(9tAChkyuX^&sDP!dBn;~GS9|~P)HnkBa?1)Y1R=ck6fWz z6RSK}Vj&~(kiCqQ$z>F56PedQp+49GMkJ5Cv{lbjq=1?`1}e-bvOLw->$(Snc)h_2 znT`C0h=9bLN%2ponKO9#hhy*|RmXKOhDS8cy^pEiac-1V6wgIgz|23L!3I%1VhyOL zDeZI1k=xk6@W2RT_X;ELuzK?(o^3j1ptzWqGqh?RGDN`BcXSz&C};cy0b3|cS}7{( zmQ7k{2;R@gJc5<0F0L`m{`ybQ6g!q;L<16m7700gGp_|lgb23$6ybE5Egv;UdL+=8tNurlIXERJHtYV+ zh5oC!FbmYg@Xf;so?@6zdxFRFbHSOUuTE;>M2z~K%_fe@>^Z!o2{XqQv@aoSpP%YB#I*^6vXfG#myEApn401BKn&6F7)aj&Q1Iv` zfCdI}pg4J-v)w|Qv|&_XWyRcVtbzRMfooDc(JlMtV)eprQDr^Db_(q^-fl*t%_~ga zS~^MWj4TjA!FxK62Bfkir)>b-@R3K{Hs(T`Z6u!8^N2E8V;+IOV?s$5)Tpqm;Ve#N zOHO+hBj6r-7c2yLorIB2+(^8D2H+fsQ{|^*#bpU;3v<`xCoe&1RTgll?)|(dD!;fi8~k&~w1jgjl_NRrxrJ*_MCagu<}`#Gw2|17>i3exSy{74RCweX z%7P5{x3pS|d{8*SITTwb5}&}5Yt(;EQywR7S=Ewx3(K?*Nf!3aT-==Te*13?e!0+` z#*uyo#}}eH5ut^b{}@|g##6MWC9?rE(~`LLKp)y)~c(xKd7$k^AN z>aO~p>Yi~^E9@8unHjkTmUF6o8eK0;tty0ET^z8zAk`~wJTFr1qiJl%8J|Pp5G>$^ z(bo9P2;}*f`5yHC?2UVtxu13Ibw!+2jt$l~*5R^PT+ct_UCo7T9lrR#@ITxyQsmSv zdsT*!sz#-E(V>iR7K5eDsNaes8rtOCkyUU62SsUNX^zV7oDCCIMCs&-qZ)UlmPty{ z2KXq%kyluqZpzLdHtOHD??^Gys~}xSHeUI;kr>_xDQfC8r-Y*ELD#D%f+8(I+AIrtMeML{2IO<)F%xWW%TWWY2%sEJ@jj)<5sOZD$oq0_1xJdKP1X&V-sbe}H zCxXV1b;78BRW~Frq#6QV|MDDI7{D*LBn#miFx+4Vnx1S#n%fc@fhgBlMBO&xV7~yX zLgFe~2-?#E4Jj^Jkc})JAl$7Uy=Gdn{)5sfra_qipJ6OyXzZXU!UN}OUH@Pn>b{`3 zQUwF$Of4)&VyUdL_JXgX`iM1ClWj?R8sMpkxCU*n3W5m&W3g6GsQf6}Qm!<1qo8`s z_`(K_HZFftlGRUh`9pqM-2JrE4qQLMyp6}QqO4L+HNB^*yLaYK1iX}$%TbE5I_-&o zXC^vdy_Atc2yY*w{b($DOBteD76s(tm|F8MA4;YA&3Ooe4%SeC74d5 zYeCvm#3t$pE4-TFI0bdZ8?*#+N0t}Q%NbT$n2l>i1WcoAkWZQvrs*pW{kkUnjzhJC zbD;iB>U$U{i;--nqep0s|k^5p4ald$+Wvz9$zy#K%G`CmP0O^TU%LdzFE zB%TC~u)gqNh2R2?m)kA&CN-*XZh1*Dl7=n-t#C;pSk7SJ)JGn@=Q2K8pi-?qc1>Aw z-4vy35@Oz9ZdT`p^05H7RN_`@QvQE7X-v<>ITO*Wk%g80`}faL|IAwJ@^Gt7QCO$B z)yDg)WahA^V^=_bAmyu(xJ|FAe6&snU>seQjTixH$(9Wa?tkYOM+zCiWn%9(El+0Ab!$FtV`B>q0Nw}?tfDkf)XV2M{%Bt+9^&pBFz&H885@|aaFs0 z96YvpYVF=_Hv&;Rx)}(6F3-Hf0&ZkHJr>{O<%?Nf;b4al{;{|aqb$>j|)z5_vX|A3@$Lo4xgJ5oOA!^^>`hfvhQ%F43Lhoa&- zjOdqCTIV#;FL<%x<_vZcTq=-65_eZ4aU-=TIubbmGk+B1s=(`1^5!&mA=sCZ!%#=i zB4-d3W4KSeL)DI<+9hRG6*;*XuRFNC$^L(?vj3mr+vNSnJIHgk`(@XUt`5$Tj&rPy z@*5cu^Z9k=cGJPe8R!1rc>h-qt4Yy5w@l^|&hMX(`y*1oVc28X1VKqtzt8SJ?RQLc z$tz2jAro_9#+^ct)e6-1c{N1*j1x7@G(a;DK?KS?+7M%EL;QuBq2GT{q-Vnu7MIBh zHD+=%Z2TalwSeFAEp^Ffw9|s!4G@x9p#< zngD`P?3@@A#N|WpYb5MtL1O|ocXd3G`Iz?iER05^ddwQIJd?lFkQR?BGzG~jU^K>& z8^WCp7at?>D~(3f9*zHKN*2~R(jelLO7T6nd`hXtAk00Y3EuPJxR#4?`HdPA8eO#@ z^M@;*AJt>mq-dUpr5%GfLW7hC5e`|h*{Cs4d4kln2W*%{3+KWIN(D+lZCG9m`m8Ky ztZ=KZ95@TPz@Kgl9sk zMc^v^v-$K&jY$DqkBStr*-0?I^&^&oP!=}gJhUs7sX1-CB1o&D)3(t_!E9ykT{=*^ z`AGd|yTTc77wiDgq%Kb$FfD6RF#!?(6~^|4?Eqm62q!V>|Dy3quA$7c6(A-Xw)ADX z>QDuwxi;ou?ZAgJti0SXG$39u60g}N-Q3ZICFK=M%L_CA^Z}s@v|v@qeovzXL*=2g zh^TEi2)Y<-$VNhWw&7Tbqwb}BvD%9(3d_4@eBNLmMg1%P$NGnq4nwJt)KyEVf)mQc zkm_HwsG@MWN=3CG^M)Hd>@n{vlJ#$S-h*@`g1G~FZuNA+1q(sT^>tMLm{P-!E-cTy z?@q4fzD#9pPHVcsyg?cO9D8tR1_c1FQ8%ILV2z27tg5UkFJ4|&o(0AW=tQAJIyu?# zX_ZJpMOKrCRSUigmH*F3+)N!G8P$JGf805WHLq=9DFT?Yk>&>zo8JGoDgM9He9!v0 zcQp9_A9j5X{{JzKQ>@43UKtWq{3-KCvj>}P-1dLt{r^AwPQ0sAEY&SUd4tO zLq%QZ(p3-Y1YD>-o}DFgp&}byRhoJKQ@kXr2iCMsHlk(oQzV4=HRP^U?!PLDGg6e) zxv3GFbM4OWy5_)=2JbDnBfu*j8R|el?Xwp~%ef>}g3WpGl(Y|xVdX0;R2bgWMF`2uLL-r^ zy~dXuv$U$eC|nBTacsF*H}H1AbK!3qv)q!QWm%YNa5o=QlcK3ktA35f5vZUxEgb-c zq`?XMb(~cFRaSssw;%^hRWSO)@g*C4m!J^A5uQrqoc0KZ?>4CBa2l1cmSlWB;i8I*l{>i)r`2L29uE-!STmrEMDV;(uk>cv z#WZnEsyS2OQa`DvvMeiMlFIq9CY9GY%|jFyT{!i?G3N*1aP=II(r=Zx!Ynm2Sl*pH#S zh%43+Fph@9SPQnvF{Y|MxvIRPswDFr4=#)9BWkSVZkoo22ek)z0cGhzNCQHCjC$MX z2&)kIrgEk%hx2LXxjLaA#Z6EqtDnY=4fbBJt>fs%ya5TdVy>;XO^o6HG+SqU2IVIC z{|k)32;~3Ug7^Oso<;5(UE5q8oiiLaSsz-R<+0*Se!KY!`;m1r3jTeoS07iCqJ1uI z@xTY&JaR{ca0X(eFE%5gbJ-aRKTEJL*2ij1$(Frw{d)TEfDPe|7`xX2={usWc^ z>hgn?ww>D6@=BY$u%xuCqHHO27r4s7VPi?=FFg>$oz6#}8N)q`seOU}qNtRs0Km4`lF=NE~>ze#z8eW#li zB2!yoW%2x~(wq@0TrcA@53aK~p;L6!X-{bAY4Bvg1y!*YV7eNKAE*slQ7{_p{_5e7 z@#=>aHC|1Mmbzs%2OP_g!U+m8T#t}28A-a~B=93uKLqV-xmME*Evu-=hW;4Tc+naV zQ$WPMg2!NAQ&D4 zz0#0um;{kgYjjPDmOAbGIHnAODye5A3O)w7me<)`AGd1`9}JMDl&HkiKzJi$eiXuZ zA&jX><%3SExQKzc3G~2f8Y!g`UI@0nB{>SJEh>#~@e-vx8eR_1^DIoMaP{~aB!;H7 zoYuz@KL6NH(H5wUm5XH^8Bv1ysc{)z2<9_eA(qT@odq2%-ao@@QVF74Hi2S|gR>LH zT6K0uu|V>3jXGsZQJExD4N|^X6N*bK=Yi5K(<`mR6hBuhHMCC#Agj2%atKwtkm6R2g z7Zzn+HHo`89?_|!&@DfrF^P~3J70$(!IK0bF+pPwJxD@iidb9%@?Eu2DgU<&4*<*x zktj4sspQZtYmihUKyHR_LnR5PA0)*z>LkseI8M6a@{+2|$8o~Ti|qdo8-cF=QNC5) zEnb&rqWenMCg(rS!H#pSSFG0Z7;!0ofji8>tju`$-}isEP<4JyifuX#eMf$O@GT!MxE3pq*Q`QYYC~M=>R{ z$r)0}xrh@}7mZD>`YzDH&PnAkp`k%+6-(8&N=bEJ)P7rz*{B@vk638s1qFisJ6;MpfaE+MlE;~=8?h~d|H`b zz#-)hgL9a4muc$`8fwrfs6#>PE-_n@Y+6~YdpHOU5qt=#?rAhcd2qaj@02#4DJD5& zZ%MqV`#lf3Nu}slwDDsypXv_0-qlCeq-dzq`Y*!(s|ZijY*%VygozQ2Q~tlxrZOvU zmv9(X3Q#yv_ouZ|V0%%X2&li(bSWaOxAjI7{I~m6{q+ej4kS8r3zbfI3aEk+Rg(Dy z5sp;HYCud)FXfh%FW7@{F@l;KjZ&fIF|g5mO^w2!EGa^?MaCZMuvVk~8}j!I!Iyu@f^6tY;oy#{hmtcX?U98<=19P-+_A$5nN-*6t*M!` zWJ$@~EYRp+TZEc7m47*nnm4aMVr}8Pk41nCUU166mBEg`MyD@bx-v(b9<$>Mrq!hb zlAYhO3IY>evw11&6=EsE7zv|Zy=icMDP!ZjB5>>C(y$~8A@E4&Q+-TLDh=~-=}c6J z|B4}npPD`SaL>W5VH?e!aEo@FVG9cv!<$9vx~3MxWwJ8!F9XyTX6}B;p-FG%Rtha; zLjau|=)V!$rWmF$G{F{I*0Py93jtwa`~Cm25g6+~-}kD|1OERr-M6`RApUIT{yx_)1!oqx4BXvniC8cgo6daT)2|pVNGwKe30bD zn0P(8@lLIpTU9={q^K;@7eJ`2v3ds9r0ATRFaIXBNB(cbe>b!6uv^4lL{g04 z+MR7Ea)4#}z(xb$ED^0ygwBR(wCm8*a8*}f>gV+fhWdpgy8A-~!7yCW^Fe$OI^4jA zx!~aq=YiB*(P@LiXVilxOxV719oG_kr>#Bh$MsGZZC$sI3P&uv}ETs0tLL8NaVW?SRQLA=%^U>keaH>;szpqCit;Sb86frMz#6bP)61v%o=ICyumD;wFrX?`9dzz6cSfQx(C(zF$48gU zgWU%4__J8sWmAk=jrLzETU(z&EV#$lt#F_8ug?&4U(5jNoCQ(g(Zu$C(@{@l6l2B zm1RUHqZwT@zA$i2s2)+1qIb?u+bmf9ae8Abf+{bj6nLLCT^J>mc*@}+J+y4z$^})~ zh_Z#H5`i+Qbj&RW%3zj3nH`EMM+}u;8@CLj-uB>$jn<98@rJmP%A9BxD5}7ZF|#I> zn0a=(v4})L?N3ff;A>Yw7oXEu*iJ}vN~;ZPDCo@)dSzSCM<6f|knPPjLr)|y-ibR`Ht zHxggbh}h2l|BlG;;)=3Tvf!$>-r~Y4xVu#@ttc2U08jJ&h|O5hzjE1t<;8Q=zq@xG zP*GftG*$ybh0(cl=jP9k7KQT*5hWfgisu(0_;g-wv?yjx905lCET*mtzajDp* zh9+yDcAJ9PN=4CQo5}|Rs7grk4b7-z?V(D>03bdo<4pjK7;djabQ4Rf_oeh-N2AzO5w)fu;yq^kAk?SFZdRVqclNqh8^8 zdBaP};pQ_%g)A(|nOdZh-jo-YX8Q6N&%?HZ+wX$pdTD<9%}cfu=n8Tlgx$;S2 z69jWivIQAlHLCWxSnG=X+2GK3bZw^Z$W3-XjHKWY2%*=VD)t3#eRxHUS+WRu!xU+9 z#%mpiNBR*pit<_2x?Qa0S|d+8@)+jlhnO=5I!$$Nj}L=p%+5cDowZ8k!pO9%5-vb0 zLv>Ax^11n(Pjz|>=^<1iMobyxVT6xBm^nMsoXx8Bu>_h6|gLPb?-#wEG7iF#Mk#&1eO^W2X`6@_FA@CkVkoH179^iBv zjRm93I>cTDGZ1ICGDrO%x>o26GCm5Spwd012%nqpM5!j=9-*RPRO0QVzTUFkdvdd@ zuSY6RHT_c=kvlZI2qha3%t!7ByxZdH-Kj{6v6Wh#QrCwiOEMjDi?<}s-KjN{1sOWC z=GvxIy%BQ?U*U){l&Bn}cquTeyJu1!jf zODc@R{a0V!2jp-9^<*lz0KXhHO+aEqu$ZkDwLOscZ8dd zGB0G?SbKc+|KvZ+$Q0>xlNlNA7Yy4w8|?DP=Ku|wI%wcJ0e@cREk*yRtUuG>Q=REv z0pUa(HoX+PbQ6!vrqzz)rVb@eL^*vx;|z~d=Ie|=G^hf#5p`-6f;uu@cO*uDO)o_! z-NdH%U+S(>vc{B>LwV0dqRdC+YQfy8RZA*By`1sa1-O*M2)azsNT;nj($9vKEeVmA zFx14E&pzF?HF9cYVHP?aTzrFSRwj4eCYRdgoenZD^tp23h4)+pC!)7X?*qZ$1hoxR z;*LJKupE!mjGuw%`xwr^6g6~{Gq7nBkdzztR0O5qQVW|`JQ`)*GifV}>6ekpW1?aBX zfSwVGvGFy_lJy_;?^UFE{b9@oK?mLz*d(!cqW)c}{^22&rG?;gSO~_`1!%^YF$IWA zL>7z6au`@MJ|0R{mS2-%h;HJU)x15pAV%@JR?ofsD1!Z%cLlX4GGuO96_k`EnGfv4 zn#jZPRhb-&=Eqkkd3?dU9l5!%jbbq1{Rf>s^Y)?2hb9+RWtyfAUIK_Ri`Ar9p_{P= zM4D7PKLn+!vIT)C0ZSmvJQvz)U`8335i`GyM)M=^iAZrmH}i>TT5&j!B2lk0yMw?R ztiQ}tV^4l^6HS_SK~%RO^E)YS)i?}N+|W%9gHXSJTLC>Qnn6za&=Vln2J>8?TM^Vg z5#!6?dS6kQGb{6M17OQTj`>4h zjf4#cXeLx|zVo`CK?|C7i6|9ju99$gFGYf@YeYIeC!&O4|hR8qLyIPP=NsA3O@vUcPoL;kKq5wQqm z9~_m&7thDo4K2@n=pWqm;JY5GRTS8I?RWWiv%usBIp4QBuKpi7r8h) z02gkpxKv%Q?x)Hio$>19g;+hXHpOV&MDNxI*PFyCVcNuULZO04enB+cANMK*TII3U*P_>9h=v3HaP09a5zCOdb2FYJ5b-Wi z7|m-_9Mw&pluarg0oQN@&V?#8M!6V*)s3}YWzY9xO27Nc!p$YRcu9QF%aAV4? zbtI=wbLDQb@6m)9ayDS|$JQUk8l=E0j|}NwJE;pCf<+DTY+5$ z=2{gB0Dn8gy|Ff{?X|1k_QOic;CMa11OaCKpb>~rOB*LK~r8s?|SRYncJ~!hxPS7AL z|EXG}g{IhxCcMI!{HdCw|KY}|qZA^z`e63>`s>*fj80uxSoJS`WN~5UpZ~bg-f|j?@C+m%!DPyrT2?x*BnzG|P$Gh@#4y?#JB+|E zy#F8Z?(^n)PI9kvedp@yob0&LYOp$i|NmB zfsD63*sH_rkW-U~LwO<0ek*gbp?z2Nk5o^r1z|O5SjIKgu>4zpcuvHTjGK74@TNe= zAFNIXL{{ZaU4jsv84F7)i&JiTQxy+U&hX`h zA|9!1-tv+qFok!`^c@L~Uf5Y{QzX{ScGghR(K8f*o(PN#5g0|3G@}p17`tv7jZzBm%yzp z^J^ACTj+a5O|9Sgk(MhTgLVa3h+#fEPQEPlLVx6^ucO3ZtGp;3t%Pi<4 zYg3HW&7R8t_I(f>9*9WDSN40IAS}cVwDT6kppq_IRJtRpH_3BQP8)coUljqmM@?t!1N)#n2Oy3nbld39p#Kj1N3olvFH)ldg zMFn(@B^h7QL0D&xtW9xMH$R(GZG&r((#@-9Ck{gp>ql6pb9LK-c~dKkmnw4s)YTdH zaz+&pWSdvpDLFPxEaOeb2G&9-eBoXMH3k+l7BoAsmpwM)3vsa+T9WZ>;kczjd2v*2 zDhYHGi(&J+gIOCXw$yPJjE9gBnsqt@bqB|u_6-~hvLUFDhGsryUiCh58Ps-2_I{IG z22EQ4nis;>7JyEo0PYo);6=-si#uLnMKJ1yz~$3BX49@yUl`+H!25A5%O{XOvi&mO3rRGZ?rp3w9z9>!}TzaSDTh=Gm)QLE6? zE3W|D8ADN)vy5)9@hQbhJ)-9l{VqflQyZseIGT90|jzN=N&{#-I$*c-6to zfJZg!q9SEsvN9lWGMRKH*0n0`o9h0eUmVUC_nOk*Q-whE!FSEv;Co zoSMhNA0uaYS;o}@;EIStYu__Dm6|!mgpvRkk669di zN~Mf%JMgl=wsRP?8rta4gcJ-qrIe{T+&==(!dR3YG8@w$x=OeMDSw_RWh)Ca9xVkk zVJzl040ayxWCVT<>Olj<2Jyl@G3wh+Np^{mQ$; zyWP9h`-*q7ccXW`cb)fU?^^FA-qqf-yeqs*y$ii_yfeL%y`#N@y?NfCx0g4^+tJ&~ z>+~9)Up>1#UwL+TwtKdEUh!=9Z1k-6tn=LLS?jsPv)Xf(XN6~}XQ5|~XQpSeXS8Rq zC(je~^z!6*I(k}poF2pdt9zIGEB6lfcK25IEAGwijqdgCb?%$pYu%T)SG&)0uW&DQ zFLcjw&vZ|Ak9H4s=edLKUhW)sM|Uf?(`~qZb?tI}g}e*fU0Yo*yPkDD=DN>yo9kNF zrLNVkGhNGEi(T_v$GN7s#<&K%a$WshJzNL74sf|$%=xSHN9PyL51n<+*PYKhpKz{s z-sQZ}d8M<~d5-fG=gH26&e_gmoD-bGokuvs&fd-(X9uU>DII@0es+B0_{6c@@wVe7 z$1{#c9rrqJbzI}P#Bsjk3`dot)KTO()^W6Bv}2GX?&#+@)Nzobjl<IZjHBwSp`ScAY+FL$L$Uo$6`L*03 z8|7Q_MftRRMBXEBk!$6}a+N$?R?0Yu~&RAJ`?YY zZQ@n2Sv)Qt5O;{{#pPm+s1_?knV2t55YxmsF;wJ>py(+&i*~{*IRBmh#J}Pn^9KGV z-@>2b5A(bE&HQS95kHTg#w++qypYf2llVwJkVknR-VIBE{&R9}8i}R+G6H4%aso^E zl>`>^s|l3yTL>)TYYCjhuO(2zuOqOK-$Y;muO%>_uOU#(FCZ|FFC$RIR}h%XPbE;u zPbVO<=V73xQGQ zUIHV{UkQvbeFo8Tigg`DIN+8aM5s2~r1fu*90ukPsK$v$S5aKxmg1j4n0lYhb{=5f)e*91Z zefePo`tY6v4(ELc^yaq`=*4d%(39Uz;4pC@fga)@0*8u&33L~B#kvW*VqJw@u^eGn ztc$R#(OKAk{Sa|D{rJJ61A&8t-Kz%*d$x2E_T1(2zw&=#Q{{}6Kx52h24i9F@Q?k!X9Op7(*paF_wTsj3Z!) z2?V5=NI-~51h|+?z!XynFfomQA&${t+dpCkfxpEp0)L571pXAXnzsERMo`J`f+pLx z-$a;7eiby?w(S$N;8< zfqK4yKplUaK!U$RU>n~?;2r)Afvx;o0&jELcDB96X_MLZCjW^(dV~K$;B~%-z-xRj zfmiuH0c@ z?tjs>}e&t{=uHrayxrf%T4Sp zEiYqFYPpnc)pEXhyOzVvJG4B=yhqFS=0+uRels7^@*DGUEk9v@Xj#wx)bdsKwU(RM zUs^uOzS8n^_Jx)KmQb?GcdSm!?W|tQ$5^A5wQReRo$qJwYB`*}r{p19*!xvtgEz1bwJc&EYZ+uav^{Bh`NsN{EGdp<+JP`EgvyED%t5< z^FS@Pm&?zu-fDKy@@g|j%SyAamh;W-T23?%)pD45n3lcGo=SH7)9j_? zFJ^BozcUZl@;S4QmXDe3wY<%2r)8KH*=8rJ z(ef#FftC-jWm?v<{KnMveUFYlAW$)7j}l0COcEf)-SMXEw5u| zYk4s{N6R91o|e@dqzty+oYwzHY?fcG4`C6_p|4EstX_X*rC&tYtoXMa$moH7yHCM>t>sRp*Q;+6yI22vJ-biKtJwWo#@GW&dbhF%wY-|G z*Rq=Fb?q%;59@zVW{+xlID1S>C)=Q;=O445mRrpJTGp5Yv>b2hdU=MLx?Y~%rmmMK z$JF(5|845}xObbnKJKliu7~@6Q`f_NlBw(Ao@462?|Q=2f8X_>*-8C=*JY-zhwC_V zgL?m0n0t)C4}s4E9|RJC*8TRHFa4gr&c1d&uaA3w_x^-;{>R=1@0;E&-lx0|d+)|8|7!0=-t)Ytc`Ljpc?spmbb zE_avURX@W$(LKU_q&wn1+}#y#`heSV{pI=vJPJEq@9uxmXZJP3erEJcs@u)F(nmirdbZW=V)S0B`;qmgkA7f>6ZoF>A@Cie>tNlt zY&eyC!%igdHJeS~D>jF~m#mP$7p#cD=d75(XRMsSr>um)PPT}^C#;mf4z`%U$Ls_G zAF*Qze8}jbQuhHHO(pNMF$CUYV+p*=#u3=g#uI2{^j@lKVDw(9t7r6Hs;gs1({~b# z-b;1c*mNp+hs_|cmCYpZHlz1a-CJw{mAuJ15O{;R3A}F5ExGPlgKo)n&lq%vG*w23?oyo;2R2pL)Wedvo1JgRaYUj~jGduG?UIOy7CTpzCtoqXu1<>mD)ax?K0L zL63*Jhm5!B%j=D22s~(PCh&kk@1?r?4SFxt-DkW&AKh!vd#Uao<3%dD+jxn~TLu*pqFg zpl4Fu3Sp1Va$!$^Wx}2SRl*+JO7SxNo(l0AfpTGw^2x#;<)z|H`lw9UGir(Wno1T+ zlR&BD1QtnqxKEOjN=l?X?hB=ZN)||afy|foxEIUz^wB)&BTyv$1m;S6N)$?aM$M7- zw3#jJ;XYB?GvNeb5BKrH9`57B_w;*?752E#685;y6uao78DbBCW5hlJ(}g|U)5Pyo zGF8~4JVn~G_h|6|eKc7tCooBzN?@WmoxlWf27&S7OakM?*#yRla|nzP=Moq#&Lc2N ztRgT{tR^r*TtHyBSVmx&SVLf_s30&z%povX6cQLD<`Otc6cHFG<`Fnj%qMV!SV*8i zoJ1gBEFzF6N(tnO#RTG_j6h5*B@h+%9v%^uR1y|71VW;gKv3L4pr5#lKwq(rKp$}r zfy2eU1bU162=o&76X+=(BygCp*H;g*o=OfC4-@Dv9wE?8JW8Oec$`3v*hrv@xSc>} zaSMS%#6<)S78esZNL)hTKyfL7PU12G9mUlI+KaUW+KFojv=!G9I6&M$ppCehKx^?N zfmX5ufq?8tz%M%y@JYKGUTIguBkgLqrCkk|w5#Eim(x!<MGNRK8ANr+kCJC-O}KJLFpgK9+A2_(*Og z@S%K~zz6av0`E&2%EWu}2`YJ4(tJ*Amo%Rfjq+~#s6o=iPSi`9*oitx6FZTRG_e!g zByAvxcO=c{#8&wb{rKCGrg7pe`52YFDK`*!L(;@fye?^CCtj1ZCnR2#RrH-#BrV3o z%Q8$QFUbgj7iE;d7MVxj1zAAgd3gkZ=j1>Fo8@2vo8%Az&&pv0o{<9xJS`6-@RU4= zz?1S20#C@U1UAYZ1Rj@%5!fJm5_n7=PT*15i@+nYH-U#`e*zE5kp$LDd$v3%XH&@o zat?v}Wg&t4ByD<$dnIjpiF+h%dWpMbF@0y9q}?xZms~(4cghk1cSza>6SvF7RC1eK zLf}?eM&K5?l)%mMWCAzIasoHX6A9cPM-#YSjwNuN97o_tV{{Hl(Pt2A?zk!F6=*XnXvokQf_~A3AcOWVs7`wMcnR<3%T7JwcPHF8g6&O8g6&O z1$-g>t<~J_jq~{;Dp|$t-Z+n!Qpvg8?v``7-7RNxyA!Ip-Q=^l-3e!MyX|N23H0Nq z^N9pb<3|%Xl^;Xk6h4E%N`5SX75sPt%XtNXW!#?ORotHQmHa~bsDfWapqyWF?}s=lA-#?|0u%u=;=O zYe4S7ExxCG5Bu(h&HrlOMZWWVr}-*;C;19t@t@=y=^N;a`ug~~`8vVg@9_TZ-Q)ev z`>FRm?>n&eZ}M*N-tWELd!6?(?**{+FZV9-7JHBPPW6uU4uPeAfcG%(A>OuLkJt44 z20QM8e>z{WqrGto1`bEGHYIo#6~7XE<8 za{uN2#r>^&r~6&l_g{8D>we6ApZhlVweCw{-9OX4%)Qt>&wZSGihB%f`?>D^?jG)g z-3PecZU)Q#kFGCVAG+#Xue+XiJ>gpKy32K=>q=Lx>m1i9u9IC0U9(-sxF)!UyN+;$ zUAb%BziSvBt8O|zask6v=tn+B+ zXy+hj+}Y20sPiCa8>h=@IQBVyaD49gz>#pg=6KGr(ea?;PR9+7D;zbBvmGlPOC1Xw zCpxA(#yf^N3LGIvFGm+gdxy^MPdeM5?dc?ZNy2V;+U2LtgPPZzp zMb=zvmNnTLWgTV3tiD!v>p-iu<&^)(z4CkcnS5VvldsCn@^SfqyhC0uFPCd%wOk>~ zP~p|U`RWG~r8wwFFB#2;d}_*(1`jp8lwqIg<7BJL5lh_&Kku}YjSD#ao( zSIiQV#VB!5vbs9~MxJ8M{H0vE6x0;^d!0_U?s39MqY$v2$GXp?U^m(kwda1I+m-#MGn zmfld!XoG4vi_yN+a3-UDso@Mp+fl>mjP~S)(-`eJ4W}~Na~e)zv=uk3WV97GtYEZP zG%RPw(cfCeXq#=QVpFK3lF>HXP{C-=X((qM>7$d41_Dcs_X(64I|wW>J|VE!_?$qg z@dbfJ#ybQ~GM*(+V$h|fVWIIVl`JscBrxCjl0dQXHGz4|Bv8aSfw@c)C}a)-bC{FB zY~~_xBC=U1?~R5Nn4iG$tTln-jBf}WYkW^&ma&V#Oyd^}#98!tYkl5xWBr?Fxim5dQ~KaCc4 zKaCR4(MKc2^8`kS7YGa&TL=sjFA*3jULi0<*u6VgyhSC0ggq2TiLa<+ps+jRNNIQB z5z_9$0@;eblP~R_%ad)WBv&3lATHYyh>3p)94dYy&|T~%&`tbIpsTQZH%IKHk}l#m z0-XijC>stIPf^K1VkLnC#VG_jiPH#l6lW3WAkHVyUeH0;&`vC%lD49RzyZQu7H!1I zRMJ{pNT8LtlR!Y+O~5Z6BH$B`5%7xJ2zbP;1l;0s0xod{0jIci~(-;%yu|Cd~@f2#gZSwr9txrV^+@>Bx9$rS{C zm8TQfC(k9YSDr^;k6cCI7fD@L|FfiNQ@>l%tgHV?(qyaOC25Y;{~&2b)qgKvqaXiH zQrFdgD<7niZ{))SzLt*=_)0D$@TCk9_(H}Bd@gedd?xb=d@7G3uu~2q@QEBsV22D6 z_*f1n@R96C;6r&Zfe&P70`JQ%1m2Uh2iLzVyHUw@*_}Y6Jd{9#>`S0t($-sFCo8BV zA?b2gzfIDeuKpc)0)4bq9#7zHc^rYaiT;*E$aGv_-XW=yZIRe*736m+{NwLdndOi?H$~nw6}9wGWEA{ zi@tm-cM!ORy9wOPJp^vz0RlJjRs?R~tqEMu4J=C=f{Hh(5? zmAQw&mF7MISD17-)L(A?K_!>*4g@acba>WZ!oyT@F^>_rh}+BILT)dITAoKA)$jrW zYxofaF5m+RtmgItIiC-pl2zQE#^><^spMRK5P@^Jy+F?9U8$s+_abl>?@i!LemH?M zxV;Ka7oDi&G-3bLslr}6rwDuPtQ0-zJ1d0!3zrM~7cLWh=%XrOSFBRlolqg{?kyLb zzH_n=1eOXHfihu_&JtlSnZ;r>eN-y!`MgNjv-c!nFUArvoxZbB*pqgFIF?H03wvD@ zi{Vr|;q1dipK2+ZR4 zzB-e?NF_7)D+G?=ZxWc!>0GX##-E~+sr+pMQ}~kvj^=j|n9T1YFo~}tFp=L+U;=-T zzzA4og*n3w#w-;BQVIL^D=Ed~gxcM1@m;r|g zT(9b*-AP7Z7+3!ek0KcwLozs)Np>4XvTKlJPLyPq7)ei@q&t_S>j;w0fg~M6Nm};Im8?CrSQz%0 za~7o%li7O)WA=nK7|qkVe;Dl^s2c_Az+<|LFa~`=Pha`?~je?-TI( zzsq~0_eyWA_Z;sj-jls0@CKOWJ=!}4dVqXy$lKf775)INy)G|mF`9Ex$ar;^dIFu${lm}b$53k=x*(Hy8dzPb$##p z%=Nx&o9k8AX4m7c2V8f!u6JGTTH~sAt#FmO=DSXCO>>QN4Rz(ag07yf&aQSYuZuf> zcmCx3%K5Rg!TF|hi}NYx!_K>%H#@I(UgSK_d787rd6KixInz1GInp`M8Flt?c5`-e zwsJZge>?U#zH@x)c+c^U;}ypy#|Fp!j@upAIWBWt;5f^%+_A(_>^R;r)iKsF#F6J1 z;5f{2h@-8;<1nq?tX%(qyieXHua%d|)$&ZaOfHu5}DvGYP~D-5JKd2)}|#1{g0B=x5N;y05#W^L$@d^A!5%AW^Kr-WLQM*YG#@ zK1a8Ty^ov6QNh);x9*+Kee~6Nye)yjj4lIv!yH~y>W6&=`jb6hnTHT)kk=A;(>zUs zUrscy)}ZkN^ELwSo3|2p&%A}eyXMUVwwo6cXf!V(&|uOPyRqK9luGK%%LpXQ%L!~V zsRtV0F|VYOt>#q(-ZIw`c+>CIx2b1yq>_T<_!d1F>fUBvUwAMm(2SK zyl6g2V2erp-}r+06qP)0CI~!d))Clj>iK0fZZh>8G#Z~Z^{g}+pE32!H5#8b=?2mG zl=&Y0)RU&3-A3aRrd|q0<3>}jEu-;qQ!fRhaf7Lsi_!R)saJ{7_^7E@lF|5xsaKoP z_^_!LnbG)=sTZQrxZc!D(`bCq+(v)v0h1CV-7ulY26=N|JJ0(YCw z5?E($B5;?vnZTXqa|G@%pC@p;xrM-O<_iRFHD4rfi%Ao;@n(~5g^f3vG-DfYG+(9f z++fmGsPTI9bt<{We1pJR^GyO*n{;7pyvnSlk}J&`0#}%82wZNSLEtiT6oE_4(F86r z#}K&K982ILa~y#S&G7_k%?Si*%!vfnn3D)xU`{5m+N34ac)mG>N>-Uu37lt6BXF)c zoxnNfF$B&wXAr11XA(HeoJHVFb0mQ?%wq|hZjKz&wh;d~*%TyqhX#LZFyF>^72sJVnd z#4IBaHkT3zF?)1^%x=yA1Mb7v_#6AfeOk$WaGzGPFP&hGeOA)H4~HAID(?+9Y9)KY zjatc`aHCf8Ft|}G*~1>dLyfcOZ+18A0qka+O(k6odn9uVdnCIU_DFU%?2$agut)M> z1Af-(7avqb@<6+jI~j2NRv&b%B-x>yWcxWJ+ZB>*TSW4Jc_iBulWaYgWUKik0}Dtx z7m{?8khD%BDHo9xr6l2w~68O!yi@>kOIs*HQdkE|`?jx|rc!0n!#zq1^8xIoLZLBBolkpINUB<%%el#8- z@PqLvf$xpS2z+O3An>j6IDv1B+X#GZ+)Cgp;}!y68aEU8!nlaQ=f=eZJ~J*M@TqYr zft|)>1U@k?C$Ph~g22bdl>|OAt|IWEaW#PtjI{*bH?AS@o^dUKca7@^Y&Wha&}iI1 zpuxD2K)rz&0ZfgCI$Em@2?NgTs$km*B;T1#aw}bX8s0vT{{7a$B;P!QEF-xCHYJT zl25lI`IJfWNlx+!L2{!c`M5=LgM;K_PLhwhNIv2w`LKuNLtc{WeIy_BlYF2x$@>E& z?`uW!-ZmufK`@AF|J`j#u4_;7u6`u%>`(HJ(IjslPx7`&ByXiFX~Qj3>EAbxAbC@W zTu_eVdKI zzU)Q-*q+(@#r_`H-vj%5V1Ezn?}7b2u)hcP_rU%h*xv*DdtiSLr0D_mq5~VJ)sMhZ zt2Y6UbvOZs)mMWqe_Oo>lv;fV%(r@KaLDOa4+5uJhZ0y}bt5p_I!uFu|FF6f_}1!5 zpv1}{P-Jz{;GkTqvjzwLZ5=}3N9$k$y{t|ebUNSaK;T^KKmyg)K?KgQIubb4YOg`Z zK2|#oI&8GsYS3=CbpU}~R%-%&tBnS2pRihKa6riN5g1^3HE46E6(DfC|!ixarkauHZ%IW_PFEk>ZfWf15t{~^##?jz7u z?j_J!{z;&{{GEVPYF#Yzo+*FTCEgWs4}mKA8-a59H-S>A^|j2~NB*KqJQvEJ3Dn5l z1TK(25vY>i6Br_Y(7^q-+y(xBHqpGp2kTA&=! z|HlWW1V+K`A3^MY=Rn(l8;pN@{ona_!t4KSSp1&^+ut4j>-?93>+cN2{g?P>!`466 zKgb{T_lCEBTffK85cB_??-O4meEpvXzuyC}@m~W^|8o%Uzt~sgn*~4r5xxT70ND2r zf|tLAYy`W#U&6Y-4L<(QdLKok|4p#%*LbVF%e|=D>r09BlTvVCL)Q=-}`=n6=mX7T){yVCCCnJ!;);-Dq8It%m1*g|^in14h1~ zR-V-le)}E4$H(Pw@<;hOy!N+(jqgdhUfwCMgOz@jJWZC%h4Msr?2mwX}~2;*o8u;Dr~g|$f40{AWI>01HLHL7iE1p3WX}#rosQ2LVeJG|ugh&ljoBb3X(+Nuil;pb~}5 zwfN#f^+ox{2Pj;ie^DdQe1-aK2P)QIoQ^NfQ(rWnKT~elS)_)uJ3gJOKJDENpBC!B z_aeG{=N$bbAr#J5h1LZ(qVPmjXk3UNK0*C(8x$R{id@g&d&l8>P8nPUc&z#nhyOx+ zK1+Sx|9PO93iW;wKRiSI@G=w~ql$8F!%s}teA@d_P!8qhd}xBwcfQ16HF3&*HmC`U~} z;b>LZdNm41>B32qQ8-c+vUNZs6f%Cm$HUdf)&;i!4%2YXM8Kg6I-F{_hN!Qai-86! z>?27>V zYuI5ZU_S+Av>jky1x3f70sCkedI0cn{e`0{0eb^F<^RXtdxzOomV4NmJ(cYXhU*X8{6+-vPwd)43luJ-P0_M}`>%53OMloRCx*>ou<=x1NMfpWYKoglmV zI4uubopP*xVBL2p$7uPqY`QgM&hu@kMoTsE6{=BEO?s4Sb*VP~n15MK|K%E4*pWI~ z_KFcwW#bqycH>T34Y?l>ERLT)`E~RE=a?CT7 zl9fgJ$}xG@GRev!TYYrawM?_J#38qgtYo>KWHeF9=y8WJP_wdyY+FWFk|aYerz9*H zU)h9`w4`jWQxcby!&sHeG%urrs5CF5X^bW>`TF5Mr6e$=L@3KNF-wn5r_{vEc+9P9 z8HpJc(;uVKz%0p>G%!mYR0JlQ;t4A9l36~DO5>7E-nC5Qa{argEH2NYA};xlh)UCP zU8yuJqZL$|mLs;NA}#scb5w+7RE&IpO4BkX`Vpj%fQm(xkl_q7nAC)F$EUQD4GL^;D zq>M?=WtxX$X}@WZXkVM6x0uq#_~tR*t@98jz8! zGXjzc-$SMO7}fX+^08FN;%Ge5Xh zGLessWDt>9Dms`s4aAm}`!JS3tuR_A){}i(kzT+2O$fiV$>8Wjl#n&+43Bti9?y=%@{}?M#Xy9Q4xnxalm1W)-+6RU@4c9hKTn>1`>t@=lfeT zP}8u~o^~xI4NC>VwUjJmKcO+URHHE4MzTgV4rBQbi^CVGh(mVH1Nk=6kapFO4;e@tlDXSbk%p{gc7~UkcqxHMj9*HniMY`iW|l-O6~|H#h^3;zIL*W8PzI5QrDA6W zX&kn!WNO4A4WP?zWuWF^Jeh&yAuD)u8W>9nL{j{`?I}q_zW7j?TaCo^&to8wDBfHw z=l?rJH@7rD;rxGD^L3v8f3o=~{r}z3ys0^#XaD8=|7f24xAXsL&56yC&Gu&A_=30o z`x<|sw|_bNzprrz@B7bhTuMLxCpM0tm;c=x+tSDXI*l=nAw1(B)j#Fj|Ly;A?tfYR zT>AB&!_)nH)pw|GR-am*z_a~ryy0)>{(t2C{%7dr@BZ3%YB$#w)UK$VM?d~^c(;FV zdhy?a9{wiPM%4!MW`7I)`wh^4|8J|$)4Sh8)q8lW|2q2iyRdpX@AMy1-M6|EPw`LZ zjs8*e>sN5r|1nSSzr}AI{<89zzRiDo<;Kdjm5VE9@h<-n^wTfr{4;oVe@taarCy1O zPxZ#eum6^w@zX-gzL(w3+xqi)KL1?ph5swr zKG{y$R@sKUt3QTw{sw*Uf0n+V_N9O1P5tM1HvdQTz<+CcLwap`3GeBj$dma8(*OR< zbhC6CZ|SejbLEw^h2HnyN#5oi{a+^vQe^b zLRaLxou9{lk3Wo;^ECb|@iX+ffB&j;{`2*m|6tzB-#OkY-jM$G*Wfw)8eLL;8oe8J zN56}H9X%EOm~;L+qMNg>UOfuw!?mlIqmbS8W?o4$eb10)Z4Ee_I zl^Li9V!@e0F9)I|7*6ZeLvg|hR2+&?vHAC@^hlh!DHTT|39t?o2O=j29M8QRhvapQ zN)N+}7BN9R4D-z|VW756Ms7f*ZIek;sc4%-#rhZVK^iBV#Juu-N?Ioz&wKxllI97S zGy9vAv`@&wV-KaIfkJuwA1G;|@Y$ne=qCEv{BM*SOIf-Puk~&u-!P$0HAAY2FH>zO zRg0{*=~9htNxOPCkO;z^z3a;$`X}z{ou<=nTuV7sCs?7u&^txOS1?)cdOC1hoY=dr z42)#i){$z;JgT*&q63Pq-nI0DW0p})mNNM>=YYMFq|Byc``$I>qhmQ2>76J8qwl}Q zzzH&NI_C|&<7Hs{o-EloEmv+!NqdEhFgFe3quO9u?=~uJuuSI+qgNX&>zz!c4VH30 z6%7_<6M6P(i)GCnskFrs(@^TA#X>6zLG=!os@zL8Oses7sD|qQUO_cPt3_0uTG5{C z9jw*YsRn69tE{&}t8Y-XYjrnOn^Y}-r)t$v;| zJ3K;Fkt(B2)LTfk-bGYpsbbmNbE%>kRGC!ie5zE3;lEk&1fL@oS+}PZ#d=gy2pI*BIA#f@$r|aj+Ls4Tzig@Dteyk zXsITR;$M!^f7$Op7&u1;j@_JrN9rUmW^eDAEdwVcR5VaHWtTf>mXaoll=6+FBjtRVbK;TjAzFG! zM>aTT#yy0id~yp)Nyl>fr|&Xe({VC8SdXUTy2nsyI&SkCZ=%$MEVaDFY>|*`AfMkZ& z`4s~-A;;~)KoXM8H2yP6B9c{q^8u7(B$ImnWJ*Gk|GJke=RKsPeD+QzpfMRAN~JM5 z?gT20$@PxpgTy2&bShUtd&o)h{o30o2}%}SuA%m5Qcmt;IY`Pf5!EXOTiAYsY+n#Z|W4{6D~ z*G{D*E*UzKbJia6lK;A14tx#FNfJaFn3)`q1SbEqR8ob+WR1?0HL8)B{FQ-3Cg1-%^4)}HT+S1A@orL+@n`*klGvo|yqA*PWQ`uV1|`W!xjrG%ck8# zCj&b-r6fBk|5Q*Co|K=F-;q0tegB~UN^p*kDem4H34CD zYkp3rk=1SaIg<~PpE6VI_}v6(RP2U-y2($PC z0h7`AOmFA-?j}B2WBXUQtwVm63f6Zw>B;);mB|AtYK|sXZ%9dwvPSpVic*5KXt`-WN`jOvcI2LvnxyGRG=ICN>d=L> zp1UPU%gL)3P->E<>&Y6_B+V|OiP~*R`fJ&NBuR^O?Lm|zDPQrX>=Z;PE4KD`O0tyb zsdY1t8m7~qVjyA4j2|W6plO=!jB2_`Q>JwxhVQmKm;!_z&l19a}zsvdmR?*dR|9_zQ z)<50*(9>qT1=a(|<5M`^nk=`uu{Q z-1pC`U+^yf^6DR}uU4PsuKxqoJL%bfVfFIr`PEaZbE;qFH~Y5Nd;a6A!|Ba0t$bGb zbESvA{9d9*|3@l6peMht(Vzb%m2)a5{^xO9ozsL83@*VWrx1fAk`8_gU%M<9aua#fo`z-%+-oqREzs{e^AI*P|e>=Z9U!dpxC-NJ7U&?o*r@oE2 z&p$RFn)5PB_Sfv)>}`7K`xU>w*OlFy-I`sWUCVFpot2$H4}JUVef}AK&R@?WUL1cn z?M~lFUre7&A4$KT-k#pb8UMw+i+@~tXgZ6#{9C3Qq?0(`@8H+={+@i8EKmNJyplXa zk9=~E|Le)ZwSy&?yre2 ziqD9Tix1_k`<>%0`E5PFzaRa>@9)1By%0SfJrvy&eJi?-9Wd|e*PT4t7wPr0lN0wR zv{JH{Q%>eyOh3Ch$6Y5ar+)TxhJJ_-`q|O(SNt?3dpd{nF1Vv#clG##N3*Ve-PNNn zQ?+ANGbqdH*cT{I*U$dx z9?H}7vr}bar|Qt}Zc9nKf$Y3yI3*1Srdy#Avz(R#<@IM$O4Fg7ESCAD>A<(WEHg>l zfe*ZLH05zRbk_Bhv>q5b`gF=;wA^_LCG7`>p7aW(HXvGlazxg(oCXBv%U@?8?FT0N z+%QUMK@`b3>rrY8BDt4#(sFG> zccqjTL^+vt1EsVeiuiB0Q__N9ZgxOe%MX+?`S@eX19a%ak5hh$l6$#j%Kdfdc$yo_ z_tVe*bS&j8EgvWHm+!0PtS?jUqn~|cHs#(r^rPn}_o6JP2W?16Ga@cW&&V2~9U|3GYfB=UAnTi!1pCC|y(z6J z@tbq`C`}128%$=Pwj@gTUd}*T5>c_oSJSTLG$cwzm9d-Xe|KWj3!x z5v;2ZWM;J)5pOKJfHWiM-1TZoZAP>#AzGHxjF8zHL8>qc7zNiB$v~YU=R4o=FAptiKsa4#|*Tl#B7>8%Qa==$DXCs zl#RyKC^co1AIXN%lr23UQ)MZK$&#|Hjnx=vA^ZG)QWCOkr7^TTm$zwI zaGJDSV>XxFS!1^J5+^^)HD*gYvw*~Gsi3K|TvIlF_dARwWog04zi7y|{BjZl3mI4t z@yj)1(`#k7)r?KflLJ;WHhw~mM>3XG*)fFw(vXe5%0La-mg{b3poZ+UQyFL>JL+>v zLYBF2yD{(T)0B<&`WmICY_#tql$x@o=Tb^d+2js(fj&*y_!L$}pQdbb&d(_|Wz&Z_ zGw#!rjqf;zQd2fQYk*QyHf>C$l$0%!;b&87%Esq$l=o@Mrt;K7pQdc|vCP>i^4a*T z{V6qNlZV!))RZlqORn`v$`&mza=Ox|DO;L&5T&MUw2;{9)0B;#8cV4uoBWl_9et!M zSG#1qhHPolHIx>zU;KcQkYygvXFc{=%8r(~(Ugt;awMguY^@7`W45H!lug$C zlu}Z*C=K48Qc|`k4dGz#BV|j4EV*QCQEJByeU`C*mr^sfGIK;D9wG4l7!{U-r9nX60x)rNb5dL*l5U2lq4)4tzAfI5xYRPE)gq3&!n`B ztzor3&Df;lQC0yNTPisI`iNMjfAXG`nz7MCcTj4^CXdKwCS%#Q_Yr4(8nQ_VZT4x% z#xFcWsUaJ0Ihi@skd68os399Yy&3~GWGBdX5wc9`3E3$%X5&ou7>(IzQ{tviV>TW; zl2T(f9yyFsW45&EMU)n^yB*17iCJ!dk}-XnveAgMC^coHAy-gNl`o6m*_KjMHhQZ> zNy;*G>HSQAm?ceiVIV2Xezt||eHOFFUq)#$d;5p1En>D*$VQ$dpDYa{cltDC<6phU zlt@{wKz@^f8nUHrXk+wQ$PR2wsUe#@zYV2@?1MK@60&^jB$)s)%jJ*xRHQ6-F%Dp~ zg>0MbuY_!=n8h%S*tlDAfrw>6#&%F@#zu3#MyVN_OrZtRrx{zC{3}Y$*!W#Ss!uaE z`FJx*&Di)I8LAmu+E%s^8OvOapF?ROdmcBI`v_SsQT~R3ZMp_#T|i03G7BqdI`wJD z#$##!_7SoSo!LW4$}+8Q9!jY>n-otmEzQ|MS29p@wlwKd%0ef*-4sd<+R_w^&}Tv0 z|01OZZ88bb^l8w>Ysh{|(6T+Q7)+^28((-7B}vOH&<9yppGIxGnjFg(wckX>y&APG zU;L0#qc;9sJEcZ#{3dhWt5F*d>_Mqf+wxsDUav-N^dok(UX9w88wsIajoNfaaD>ivX`Lc(TJz1PLXQDb5z7Er|dkX z*GtM$?My|;axrChDl#@Iw&E15mx$%w07=xV3ET2f#y}F5>oe>by~oIkNJrhqKoXX3 zS`5x(l^ci8P?4_uH^)k^hHJ}xhcb|GWntPF zXxaMgat4yEJXQEM12tS*t{h6K;hNln&U-anXd+`sDw=-u=I< zb`CxJAHj3~yVtg*U;lOZb-y9C8h!bFQeC;~-v5uPck|5u6213-TJ`AaSE_qgcdTw+ zokstCBdcxn<^Kh}_bspdvGNK%`TvZ*`@UPbh3EaRr02dveDV# ztd^DNn}21xH2rP*eEJyo`|nP_nO;Y~{1>ICr^oP&|32xC>E`MBdbi)s{y$3klQ)y! zB+n&3OMaMqH@PKQoLrS$ker$vl^m4po$QcomP}11CL@zJ?)85We-QW45C6;Y)A5h> z`Tm>Z1@UF{x_4qcJ3b)Zoj&(Air0z9#6#(E&+hcU?N9eV9DOgkJ-U(I&;GKm0oD7& zZ{%GAruSVrXa>+bw=@o7pxQlJ9r+HZ-Q!K(pj5j@%l^Sfu{)>GJ2BAYUYbq0mmGh| zk>ePT-8q{^odYKKwSG&fa!;n-Nr~L?aGjeg1K1rg$)r^7@hKB1RqmzNmQe1bAHDHs zlq&a@C0s8UP`S4}{Td~5C;zg`nHG8{K9K)_+CAC&T1vHh{LW7()$Y+X9Hawk_xKMo zGivwbw=ltCJB#?ftQggMv?)!n0o8kQ+MATB_m(G4 zrZl~8xQNp9{>h1a1A6C~rjHn?c8~8^n-aUTI(FsG;sAP&itX-UpxQmzW+O_qdve3Y zlxFuu+wxKD&P_;~!UM=1G2AQPs&^HoaKd&;lXb`7ZBrLJ+%e@m2CCcBkNAca>h|O(T$EUW+mR+$=vJV1-n#e}qt)!m z&sc9O%~Jg4J0Fc-pv3P?;B)R;tWd!p$DzJL1)to#1to&#qq{vwsfLe+9z%)Y znXe0v<-broZ=GB~h2eRwXkA7lcqY2bjg%OkPySVA8^trJUyY~4@eF%UuN-WQ3CvZ%xP|e4OzeK5;kAKhhSfQFPoqr(Zf%4gC#yXUQEE9X1 zhS>^D*<{|1l%y=XOh0YE6&kbY*bkX=VwT|9gn^o}@skAR3R0GZSnmo-joEYu+GQ&= zW=ntOSYDwqEBo0BiP>^GTjtARcC~KC6SFk2cA(Ofjdr9WWogGOpdw^>wC5fEMKiWE zL-+BEK4<&R9T@Rn~we}rG{)W^=?WH+4Q5YQ)r__{9XOlK7G-cB%gD5p+lUHPy(3DMgdzVsEHr;`v zb%myEGz68c(3H*Q%%LP@+0#bI{--h9^4J-a8nfwWqGg4~Y|D=rXfgZzpBYHZMn$LW z>YB1y>xq=4EX#YI>=GKY*^IAIYRqO|I-F8tHmm%OQe!q-Z6+l#%R>I6lTvdw{iPgD znzQLp*%!%KcB-GDbU3Zt6(lV|C*uiPnbdKVmb8yOMM=`KkUzpzD>Q18(`hBI zAZiKaA5)RER6n62XsLe62Q_Dthhr~) zl$x{2K5_(V&L+jnl$x{2NnpQvR&n8=3cx2%0ZKC4+9-^HQXuUVVYOz!H}tWElFqa4{hGF=eWp=r+NRTfOsQ!b z9mQ_huW1`?x-q4uZS?pql$y4s4@uB|P1}~652UoT-E>V#P1|(T?Ub6f@sA&5<&d^f zvC%UO)UZuj3FdynmaR5KHj1WgY5%7wHErWNhEQtSCOSBWqdmSB{{R zuq|31yM$81w)9*!rd0ToOY4&d?(@GAOFVnm&-OJUAe)5(U(BrRjP?9@-tBGmW!oaJm6 zA=a-sTUzH##*?$8k?a^6v!&W8lp3?qjO{3iS@w}mxhY7_GErH5#4Ic7nAa#ZXX7cd zM{CYT5AncaKRHVim8;18#4OV%TKhF+OCves?XpS$d)Ev#Xv%qfifqWu`O@O zoM^_jEa8-HlZ`m%IN5Huj{K|4sR&zwwRXjbX+2dsvplU{OwoYg`WMV*C*FUareLA*Zn@K_3L~8&(?lgd!TkF zzwEd0|L6eY--G|X2L8PU{=EkNy$1fh2L8PU{=EkNy$1fh2L8PU{(rj$@~)M7?iAg% z6D8+Paz4uyyOnzKlw8JDjFo!wlx%kZrJg)RbMBe*Av6XPiD?CFprDLH%MjCjq2Qcs^+o|kXa)2Gs_oOG?!)2HN?ttmNu zVqynz{=L#JQC)B%rCy>+-<5gb5)~hK>~l)4QBm&A8RkkZQn5fEaSdptUZpB6ln>}t zs&uX0DfKE<`~#UTSE-nttGFJqlFL+_m}ZkG^*U9{@9w75>s09$n^Nj^s_4CWly;qJ zHW$uU>UFBpIh?Go)az8yjk72#GO_66KT;MtJ5O*qVP#p)v1OI!`n4Bll$n0*V_Y0r znd(1XatvjnADI2atZQW~Cy|G6%VuRH16w}lI_}Dn44lZ#wv{bdxm;JZ{@qoUI!E`1H?C93F|3n}#yRcVilDeV%~%db-EC933=R!S~Wv0_)WQR+3S z=oYT_4{(i&n-mMFxJ1R%fNL;XuTaHzy+mnOsK&N3o-0&bzWhD|kJY)p;R4EIbfRri z9<4*au`A_KT0VIT z-;@PARLk?Oq&!5*_;XoZ2WxpAml6iPqUA`gRSg^@W$6r_z8v_n%x<=lfqH!^{@{K& z|6fsB-qL)Z-v3_a-v9m0Tbm1;Uu~Y;JhZuIb8F7|$22>d3HST^8m~8=YdqSxhbR57 zsNn8(VRfKf2M%6aF9YeE%!;C+ZJyZ+}t!;`%9^+3#K7hNt?+)Z6P3cl6(; zC%<3ReptJ`wzzgl?Noa3+o!f&ZF+42ck#>o9^Xoy;D53D^Xh%oTdRwzmsC%y&aTd? z&g8fE)~pVzR`}JucPel4%>HBa(RXWQ5zp(NR+(LyRhh|q`fFB(RVwt$_YS@C{hD9a zd!V?TXY?;C&fpjI_Ahqi*YqYABZ?aR@V&>c=)GKif?v?Po%`~alus=mUf#RBO?eu> znb%&9xEud={wi3^h8aj*Rj?zCUVefHTrW4}H9=#5VYr)lz+q&N9(@^tc0 z@}1-c`p!E$IVL$U*@e66>m;iua!`K|zs)b%JrzI1uh`ufUlpGl9~&RYbM%|UljGrW zCHg#iCwen_Df&5Y%HJ9-iY|#xi)Kf&q8*|c(Zpy-l$Snblm7Ex^^!NP9+S0{N^#K| zmDbu(cn#;cH1ZF^qmA3b_)*5~fmb)~2)vr{AmM`lADOij1v_)?=M`uKW1+}#xMA!# z%rJ2rYM43>G0Yr04RgoAd=JYps5IoyGTVa~3r527#T_L{&|RFn_;J8tKnc! zrq#4*wTD&GFzyIkHy#wYW;{4>)wnZo#dt_ydeoA69V#rVtZb{yXC`N?tTM;UFm_B0 z6UW3bb&L%&$H*{uEE)2kyRMTKL$3Y`UUiXS#qmPJs^bNQHOKP}>yGCcHXP42Y&xD} z*y?z;VVmPwhV71L8g@9IVK@k6(_D2r$f}EdvtM89siX zackfMjN1Z#$+$i6{>B}F_cI<8c$RT%SiAcgHv;ctoQ18uw{bm;-^(};~ccxU5A;GK+{fp;`+4ZMSKTi}_-?SZ#9?g+e{@u0xl z8V?qh&9jZ|ZDH}Zw$V}Gt&HQqTN)>Uw=hlvZ*H6g-pn`;ys2?H@FvDZ;Ejzdfj2U) z2A*MD3%sFmo9E%)t;yBf?>Nv%)=D40=-H~3J zWl{~tbqt%1Ya6yYu4UNfIN7k>agt$&enQ8>}x2s7;tPst+L`tI<|Q5>$5wy~mc zkd6rS!(wo-;wSP-?cL$%_8#Qu z_8#o$_U?3adk-ri*cUzakc(-*eu-iHd?6&5IA8dBq)@fk3brjfbT@UQGPK4$Be|hQc|LgpJ ztL7A*_-|{Lc-z0b@tekzjRzawZY-gnztecjf8WM-^zT28-u;vM$Mv52e{gsINA)}E z*VQlMz5dztee2utO#e9U=_kC;-&6aK+Eeu6e+O^!U&edACMa)$4h4|BUL9ocnK2kA35-ojkMu2~X_5L0^48uG~xS{PXCW|D?*HJgL7; zWqo?(A6&`kpRb>1^q;41zV8*c@O=J7^u&Kiu}85bee$hAk9;xD<@c6fqc^@s%6FG< zF3&BWUp~J4mGbWNyFaD82Iu~9{+GNr|84$s{t%BBU7uf(pUI;r`{g_E_Wh)McwWuE z;LZC#WxviI&mN$!y(RRtcSd#;Z`|*Y&B!KZL$W;mG+my)&hOqooPIaGiRbLk;~o1i zr@N$^(u@9xw3>XLtW5rpyg={y_wru-+~mCExa7;6{coDAm5fNLJWu~_{HOTW@#FNH zcN;zBUmTwj9~SQwZyisix4d?qp#Ly>J9?GA@qfs(^NTt6KQ%f$+B@1Nnih?T+S%wI zvN`|hj~#Zdm`irhw6y(p!lEuX4lM41lfWV`I1McJg0sM)FLWpI07aT(kZ zSY!qd5+)Gowp$PA%x6z*#^@-p>nslJI!gk(&eFiHvn;UdED!8DOQPf#SF?Gpah+wt zGCQI(;wM6`GTLoMo=o0dMvKiDJ=jrX26j4%%fKOyqB3x(BPO%xn!LMA+C|1*WQ@pU z$%z_cHyP1k>?R|6jNN2Jm9d+Qq%?Mu5p~9HG8WC)O-6JYyUFsfX53^%qm6fy5pBj| zGUgW*8N148co_ee%8XrQG(?PDWi&*LMP*EnhKRAa45lGsEHZ;>h!~5_U>YLEqBEF= zh_Uz#rXgaRZk5msU1%LX)`iyY=t67rX^GI7RynL2F&fNuW7~^FX>cX5I1R1_7OBCt zz;3mAV5}zN8-Y!0)5}S{o`xfXtr+WCNjCTjM=)zla1NB#*>WM zy2fi7vvrLp8nbmfH<7I|!MBEe`FO^%3L~GFafY$uSi>-#;~>Kh z#}30mj_rnn9oq~$L0P0$kVPV+Y)vU8OxkyDA}g#0v+h@OtQxNFSTP*s zC?@B_qa8)$AV0RFlM;`EV;n`};8;hoI5^HxBo2;u6o-Qo97W;aL`N|=xTd2B9Gql$ zwfGyH>?ryM*K!nlgKImAyuo!G#oge#j-qaGJx4J&IK@%K4Ni3wZ-dhu(YE0Fj-qXF z14pc_ssq_0ing$HiR_?BZ?& zc5ycYySQ5eySUo|ySUo}ySO>$weNFrbBb*2;-=waEaGN$a!PG1=7wnq8H>7M8bZe6 zZkUFU@hW*cuadX(DtSAvlDG3Jc{{I?xAQ7_JDa=<8bbE{CU3bJXl(K>Xb2gbybBsa z#>iXdpN5dJ=o_XXWGw!MX$TpMz+oCfw)9yv8$YY!`M~MzG3VtXWuY(mD5Nzc9mmiV^=xte`8cG z-$$d_SY!^WTE+zh`yp>iX5O)sAXh`KZ!e`3-&cJxGsz*Htd# z_xWa5_N{DJ*??;RgDOe!m!hwDy?Cy8w794EdU0)WVR2${aIt%_MX@fw!`CSPCwKq< zRDP-ab9&|b7Jc$vL|^=el=m!e#T9_j^u^bbzn?G7U(O%rJ^Wkqh51+Wlk>yqcYkYo z-CrYb<2Uv`$d+ZV@aFvwIsaeGTlc5Z0AFv?*4y=e)X@U zSN&t?Q-2qF)L)1G^_po*@&SG6|0a2g`~P>+kN(xkIo$t0AlWI|IGL0TOXy%MUJ?H; z{w2SbcXxbKd^K;<|M$E9pG5=F@1y7GC;y)4=IEN}-00Zoz-Z@alW47IWK=KxXX(#u zQ2(QWaV;hj4`#`J(*(t2VD2a)1Iv!$F_3pn^~0huu;Pft%%S^D!=cx@#BivwOALn^ zyTmwUc;a^Xyh%(>8H`P0a>`)r5@SyvK3qQU5@XLcMq<8a8@t8WvyI(i?AgX{F^*hg zw-~8s>=q;SjNM|Sp0Qhu)H8OAk$T2%F;dUiEk^1YyTv&D8$MiCJr=VRw9zgxQqb5X zMhY6c#7IG7ml!E%>=Gjdja_1-ps`Dg6f|~;k%GqmB{5@{7}7I#iP5Gpc8MWLW0x3h z9AlRl!DQ?bBgl+RVsb`ko7*Ku@C_eMDqoAlG?i^-iNe_R!nzZKf%09lDn(#m;wb(C zQ%BJkm^q5Qz}!*f1(qGfU0~rT>H;f{m`kwgDCPodjv_9w?kL^@8;+tau<0n)0$UwL zT40-_I16ld6lH-Oju=aDkfSII9PEg(^tc4&xN&1eVa2<#FqDmVV__&`Hx`C6c4J{E z<5k8=c0E<5@5bU3#@LO8ueV$#zk+T~s3+%?q1G}-xf!$cN7i@ZC zSb7Xr5tf}{4L`1Y^k^F$g|8oF90y+AI0?L(aT<7}aTa)laUOWMG0hd5ongkro~@3d z#uXVavp2+MFY%9e+UO|oVE^~PgN&2F9mZ+kcH=B?n{ghv)wmqEY0TEK*=-nC0@sbJ zfosOKz*S>@%+>zCVjKr9jH9qM%DyxD$8#Ia*V)dI8S{0;LiC>usT>|#$HUF?~oi#>OAv6mfP z?DD-Fp>q+twh?`s&vmmm0=wCpf!*v}?H_HtksdlA^hUJ;g!hS+7JalFgS zqIKP9j-qwhqK;y9`K+Tz9ZVg?>0st4N(XaCF*;aw6rqFRd&TEq#mAy^Yn*8c&2^j8 zI5T#ebDhdIf!mzxQpRrc*071)=7hYBcbm6`@n-X)J+RxnBQQ3XU22f9tR;LdvnPA2 z>@nhVkmJ}`gbs5Y8;j9lj$>m{y8L@!aXQR#Y~w}hFvqd6SRLj#HWsbJtG-{n4s#s; z?J(J-h+Q|S?SJldS$3Is_quF;LHBy%=w449-Rqg7dp&n_ua_O&>%8@^Q+BUc9D~U*S(&PbatJBrT1!clAvRvbm< zVAWAv4%R_gW3F;`a+^z0IinknVsfzQC?W@29mV5dnmQ97g^+*Ke z{J*EPOwRw`ZvLkERI{sjXY+>U70ol7bDH~c{=Xsb{12hO|4$psdH(;|#>0)f=;`mu z##xP{8v8eP;Ou`QzwnpSzyET6-S64@!}aghZ=z@a^LVrWEA`!ZuYXE?biK9SQhUF) zlwb3Eg7^7vt1YTsTswv5|M#wKQ=3LFe(klW`eF5L`tScm^@r8ltBZO1|J3T?^xU@% z{q~Kiw*Sky|B}k3Jo|q{WuJdK_y4%)rHB5fi-(Hu6xSD*^W^`L#Vmf4Z+bDFe)-b! zU%31K+w#-phsxh6U(fIGol!orykB`{c|-c)?<{BeCwX7~8h!9}<#*;cth)Cq}qLJO6jlzy6i!S?N*f z{^<_sjC5i;B+ZjgljZz|-gC*L|HqyG&*?}15Ah59V&1*+*W}^WTq_MlVN?NB2j!@znpt(J9ek(O%Kk(bQ;-h;!J|2W-fH{o^2*FUpbVi>wJV zUz{V+7g(eN(_Ypl&U~>BoR_0Bm&^Z)c3|4iHeS2~(|$HaJi@e}jom!7pN)fg0=s!Q zJ+Sd^9=^cX%|rWHTY&R1kL<7BK%DR5q5W(hck#r5T|Bg(Z9L-9*%M~>pD*U&;L9CF zJYeQ1-T|d~CLb28s`unVX)un36hw*@u>$)h;7KFmOLlL=#>`EDTJHo-uS!9bv_OEHj4+vPW3 z6a=>h76-x2z#<_y9%izfFBXDpL!CuKa6Pbi2yO%x5y8#CVj{RTu&byou&9Xf?SaKb za7SQ~5j-fc*a#jRSabw;3d^p9k7QR0voAgZqrf60I0-C9f*WD+MM-cP#^WU6EU-%{ z5A0GZ2X-l~`u-rLFy5t94eU~?1x8Bpef7YF&tKrOaWimk+!{DDZVQ|mSHtQ`j4Od- zW1fW3_lV|4#^t~z1wPI=4t%U}68IS7H1N^JS>U6L^T2bA+kNxTJJPr#@NDBjfsgS2 zAK|P2aATeTwasyuaV7Af#?`=w7}o+HY+Mig72`(WgN&PjziiwZ_(0>fzy}z&2mX?A zN8tU92L;~GcyM5Mey6Z(4xBIP;79wsp!~qD{5Y^HKMCy0PXoL1Ghvy$C?8FZu$$}i z-1z12aX0>|uXp2D!gx1+H894PFsKD~<<|qd^2=dqUHMsHSN`CzwMF?%FAd|x`EaL< zm)S@9vUZ01#uw>>QDC=z9N4X&1a|AEf!+F9V7GoA80*XQ%Yj|{tG?g0UkT$~`_;g% z{aRqxem$^jzY*BA-wf>9Zw>6)Zwu_&Zx8I+?+EPL9~9WNKRB>!zf)LNFWQ&Y8`i#C zKMHKtFXF&v{UQmB^<{N&!BfpXPrMIv!P8j8FRRlVc=N>k?2P5)jLm5X%yaQ`ZA$M- z&2#Z{=4$NX=h~F9i=RiSj9vUZN@eWg=TWNtrqL*whxqlh_>9eESw;JNdBm3siuJ+R zQKSzhj^cbUbrj`;nWGpV%pDQFtVO?jG7sO&Qgdpn*LUUx;fL`qe9jv6Zp%CuKG$=M zgYW|f;Rg=F4;+LaI0!#*5Pskw{J=r@frIb^2jK^H;d8ypR=W$IOOD1ae3swXh0pRC zyYTscTR$#*b^~J zNMrXsmmrPZ_gsQBcHeUe(%5~!>igaIT!P&7RQ9@S@xAVKcAr*k&#ofN&R%z|$R3Ox z#r0s~D5?ijP|p9~`JeCqUrfJ$N6_p4_Im!`$@%|Z8!H;WZ@fTne?Mq^voXJMA@Bbm z%&+`y(O9>!dZSVQ&-#1yKh zq5uAyt8@A7zT@e;f4Axu)%B{Q>9;@P?tf3^x0Poq4_EH4++3MkIlpp3<>1O5m96Nj ze@vx=p87v2mKSdnzbt-S+*^F3n8*G9lZ(TOy^C$R3NWDKR@8oahFXfN%48U#qVtN2LJwGzvKi`pF_$TKh@>=%y z?7i%*>}7s^?}zjOa6Q)o&dQF?4#;-SHsx3MR?8acKhpQpW&Rw%om>sLDm^DXmiGX5 zrLX;U(@|*~d+kR_5B&f-eHtyNC;exmhoigbMgPj^tmvp{|NpfY0CwPoE;SyZ zn(>~nON~dUj9qFxVP@=7Kns&KtYbxH)g^Qsd^lu}h7c^TsYUZq6IK)VRTI>{8k&-^a~)W49VN=Z)QJ z+?+Rdt8sJQ*saC`h_<+5HA0}AjFwIS7K+rs3?y9^y3^9u&t;@Jt;|J{BL&@QTsjxK zFLbAI2TakO#tkqu+0+gkTTlm{eCZc$fA-#zxo@hvK zB8n#%(wm6l@rGr`;|%G=M8_U$SaCeYu~espJCxR%di5<%GlRdMri|icxS;rHZpSD+c0+A%P?`=(=c`1 z!!UE)-7t6D&9Lmat6|}|i($oaXTz%FPKGtd9S!S_I~X=VS)iG=K$e~hwzrXy<93Fz zr1mGzjhttnClt3FnotcQ?|6(xh@vTk}YGDxZ^ijd`h z9mU5WxvXPF#~``|_qj(n_YF9oMxOUOhsB>jaigp=2+((Obu{b9sPe`L< zfor$sh<4@Ebw~3qcPs6~?%k%Nd$-lmz1!w!-sNtk{V(42lSgU%Ex@}nAKYSmLRriU z%gLg$s27%#MP+d>OtaNk_gEnQh1ps*UIYwtvSlm=hB@ap zM!~|Ia~q3raB+o|gR?KZABx{V7*w{aO{)z23jGp%;NmNj2=40i+;AH#zJ zi;&^LfyKyhr!c$Fe3UG+zM5UTnlDNQqrl>1I1VgQhLgZzWjGBiT86X0;$=7wjF^SX zfkn;ms_z#!!<8^zi=A2XwZNihxE@&i3^xLcpy8%4Auu09YY6Ceo9}}5%{bo$ z9ow3p?}APoUC^l`f|iY#Il7^9P&Shon)yzA7nm=KhBMy<=HqBt?S8p?K8_X)w=CV! zWv)=kHgZQ7j_&A+BaW8;4Yy;((Sm_R(lY75VriJ?@$5#IXd33}N@MXf%+r;|B5IhY zD~-j}Fi%%*xlGRgSC-!Tzuy0s{{Pm{_y0d=ENi^dc%tz@<2IiDzqoNq{Ji{5`AvQP|Nio= zWjp&nqP%Z;d!7RLzs~;8;Ou`^zI{GDAD<7-)9f!~_!H@hjjCOa=XKKn|x zd$wgZC0m1c0Fv}CJPGi6`ds>GdQbZG^xE`-^rZBVbdPk)bUn`fo5??tKPPV`FDFm% z`+DC_u1l^+&P?Vc`z14z4HMqK<5%_m8u!O<#LvZ##NUm-Mh}2z$H(wndOO7%$CKh= z|I`EEWBM$>;^@-o^ytWFzi7v3<7jd;BC3`CUV4ws%D%VQJxO!_XhHWRCj*M^NtzIf z?n#;uitb685Q^?enh=WaNtzHxb7U^YliFl&{gr%=Ym)N_Mb{+f5sIQojy=vJ6y1`X zM<|LV<;Zk&Npc>cV_lM*M<}`^Ige0uNpc>c=#s2Dx+JS?Dq&NEV*6QC)a5B*OOp#*mU4 zJY`{1b4Bu$g|RD=r<9FFk$j$u_Qv8!n2YwtB1xEw_HUdfdk>bBy(j+D<*cejB1tH6 z6i3QPM^Pl0IEo>`)KLTpW*}Q_5q{Je@vXAR1xZ}$j4X0N5~s#4NaEJm1xZuq((7e< zE=Zbi#x6*jKE^Ic)|{~mlBUk3*R!CD5TpvMdv#e*(IYb(C5B>0Fm@C0cpnMXIH?>CFYj51R`R>UYX<%kz` zrX2C2&XnUSFWQt>dC_o{7Y$c=(Kf_?dC^9T7iD>Uvx^qNvLjYx?`EsKcc^SNmm;qc zZ9iVvrO2y8#x6x(9WtK9)Yv`cg-QMVzQ(PA_c4|iCUyMY#`40X@?OUB!ld$^#`41C zcv<0l*a}bMiL!=wXDsv1)d9ub47oa>xT_&o2NZWPD!XS+jD{Ha3#WV!15A)`nabQ{2js%VLUK8gf}o zaSKB(iz#ky$Yn7}o<*C1ta{#Gv{kpMF|QTbs@ufo!^duHV|h<#`|&a(8`;DH&M@Rf zP#wFWA+P-^PB-MmPsI%kc}`MseM7o3P@HB+4-JY_4GYI9hV*2hW7jjJCj-TG4e7~1 zaUDZ?GEj6y)02UsE1I4R6kXBuWT5DZrY8eMS2R5tD7vEQ$w1K+O-}}jqG(oaShM12 z!N4MEnD>Ni&5NaB-V-twO~bq=WGtSBc~8h#L=E#om$8@{<^?eOdRH~qY|oQT<*MfL zp`xq00?KY6s^*{B?0Ug^k-K`Rqq};Tqqv$QXt<-O8XVz>scpISTKFOtHOp=6qGq{` z5w(0Z%WdqYX1R^s)GW8Lo0{b|c2l$5#%^lXyRn;^FtSAxQ!}?Y7l>rZUDO-^_Hjfl zvqM%Hi>YC<%Ggy+RvEjh$tq)4HCbisswS(9UDafjv8$S_GImw-nxiqQmha~^N9Bbg zYnay@jm6e5z1-NX2G{ivN7r?yqw9LGqv)D-G00JD4HkAOZK22-tT>9R!K$OE8mu{r zslmFVh#G7-il@P*qi7mz1qr)_ZfT#3U}?u-X~$q`$6#s4U}?u-X~$q`$6#s4U};Az zE%R7)bWPVBUDI_(*L1_tHQjV{O}9F_rrR7{)9sF~=?;+nbD?OO?MwHG#&}wo?h}n& z)O4R{ETU#SeOVZbsbTuAFhuBPt_V|O*(XdAn$=|Hl%%aMAwX_Zw;G0@ik1}8pa}Qn7%cP z#n>=?YZ!~NVfxlE7H7lstzj(EhUr_wSgZ~6F08R=8>Vj!W4tX)-x|hZZkWC`X1pio z{{yAI|9bxaq2^u9uQji3p4&XGc~Eor=9csTxJI+R88<#|^!~5E0I+pqefj_#%&+`? zTJNv_jvfGhQvY84miqkqh5z&nz_|M0dS3f$ZAI<(wHNqRzwg(+SzA#1s=fvAU%vuS zR6qNtUjewSy1062_4MkT>VE(7D*%7eUjewU@~z5(%0=`9c*s9J1z^1ZyjDC@bQO0N zHxySCXXF?k7oB|-^k`=7iK4Ahh=+Z zTW3?b2GEw3(hs=*|4RBq`apVHx+uLkJtaLX-7DQXotmz}-TxB304z&hNq)fGV~$u`L}?)|rOF7jdgcKmAmi}=C#+wqe4()hIahV>H)17>cOzB@)nAN`oE6VEU-qdtf{}QnxNaqj6qD43k zEMA0@z#>MtvuvAZiI@={99Yx{4+<=9ggXKwN8#4o|6lY7(?5o8?j_7SQH5l4lIs@I|GX(;UR&=lJHPrSsiFnR!5jU(IglJo?{#b7Ev-j2`r|B)4-xi zI14PUg!8~6OSl|ZYzeRWe$gdd3FF1#g<^~D6#|-Q2rHHYHGzlmVXsf(*EHzSy4m@a+<6to&-5fR-9?bX|keN zlChj7D~cpRPLmbIksznZilRu6d{o@pkke$vtqeI$R@~B%(`3ah47n<*xVa$@yeMv_ zSZ+FQYS`+yiD8@L#)j>V8`*B|p|oTMV`aAst9?V`Jn(ema@edJ7-wPp`u_i6{50cA z;Hk#dz*CHCf!8yx2VPgX+z7mmaWnAR#;t+ZGHwez*|C}Y}r#;Y51 zo$r@&4}HmMHhW=hkF?QI;1R}g;Niwe;9;T;&(80MDK!`qv##X9mVco*%7&G`tn7x9o+5QJ2iH< zbHp3F+qto3>~7~)v9Y_I8*Rq!cHTxbcDHj?!4^#1uCxBda`}2!J8$5y9FFu;C~k2b-XL4;t67O$Nz?MdFO)0-vHd9OMF@q9`2X0-vH79OMF@q6i%1 z0-vJz8{`6?qUamsPJ<%$7GymuioHSZ$ta4vLGIWnin~FUPf^qjvV4kSZtTJGDT=s3 zmQPW<4YoRpw!t<~mL6;CTDH|H&St`quU1hu7(0rw!NgI74W^FbYcO*ZUF(N!TZ^rA ztnROiUDotms3(()Mb`4^G(KClg18!tlQ&)y6jkfA48_!7>SIOJVCE>EW&v|Y(KJ|g z6ib7JBa#-ZIJ%{)j&A81DC-JK>z-osh@|;f(X!66TN*7Zx~1{3qFXxmUEM8>mUXOK z8Z9fjrO~pYTN*7Zx~0*wqFK6(md}=X#L_yCdU0{FOFFV^jf-8?#C~gK>=Zd0ckex_T%nYh+J+>-=ar|Nnpa{XgsfzqQ%Yc)zi<@p9ww z#{KmEw~+h)r#6nD|Nre98}k1DQ0@J1W&Mx!7wbRg`Ttw_{l81Rl|LFhk+3Lg9yQ()W#Hr<~KV0 zf`c60UV|OoUY#I2>h;)5cGObmU*&s{m;7tw==O>o-Cl{K+beZ+du5JpuiVk?Rd&Q) z`b9n$=u3}7TUxhQJstj$%#_=!2IB7P#a^hKUa7V1biL>crf+Uz@fS?r-Nqs?n7+M@ z#bEG|z@jjCXkc*|JS?zC3?42lYYdC&yq4s4*!3nc0>#iIh5-ysVsiCRKWq}i0ES3R zRsz=!b*x*AONWYXF|Hhn@2|&VnkcqTTw;;0B9~a~7$oNC5=$LLV)C_)?y%g^9aeU9 zhZTh+E$s9)Ke1_&QE{J#jRkouzjP=T@G8T!!tQ=#p7|hx+Mq|RP z9%B(1%=$4FlfhhBH5Qe@Tv;_1m%&_FH5Qq{Tv;_1o58$tW3!9Sq{-MQjUFSjD>?(C zz~VDF4lF{0lfW2FI1MaLgR{UQH8>9}R)fodMQiY??-#GZl`vk!23G@%+2C4W)CQO9 zfkkfesGhLwPuPvy?;%k{Zct{|Xs#Ezfqu#6dXXFGmng1BZt_*^)wbqDZ!pJztvUBw z%@M!JiVS1jZ*?Dw-?U}!(^}i7B@ra6eJx||_8Cw1?+!f4`2V5oF9R;Q%Jh3UeX34X zojTSok&e5&yDP+qA~9kl#6uLfAcMq1tkX$4%0PnKKyVu%2^KUs{LsK)1M^?kzV2Pk z%fQUM&$qRAJ*RxHdu!3#=lu1|^!Az8HPhQ?UdK#tpLuO_D)O|ywaj#6I)6^F z=Vo#A9IXz%Bo|`gri6u&HL?=+j4XoXGUCF<@D;Xc$xFV;{D8F@hWpzyv~fp)8S;6$Ju?i ze~BD!m9N9Yr}B` ztltW+Q^iUsuj^qCl-5D&GbvYA2N^f=V&1^3k$QRqQ}J=Nlul-R)!}Lx9V}wE5;|B0 z%I9D|P&x;zK-nCu1ChC~36#viHc&1HS@11g4XGR)My^Z_jshiea2zO)gOfmM9GnKq z;^53cNgSLND2Icy1Ep|qPM{19&JC2n!FhrBTR1;Z0tXiaO5h-s;&jy|aF8lP}`||d}_LTO>cJFrUc5S}@*Jthj9}K=c_{8AdgL?)yviASwgR=(D{3mt)o151) zS2Snw^}mCgoturD#m%JtYyFG*Tg?0aVEtfyOa1!#%KB`2{ST>ksW+(?*OTh6)i0U# z|L@g@s<&3RR{v7HkUsxsS5L2YW8D906=BNX%=y>a|F2^0|I_+M_xI~>Pu+i|{;2#* z`HTObasMwbFD_4G?f(P#`rk(7D&?g3ui{t5cj@ z?P6Zh@BOa#1M2=C@4d5kSMS>1D|#38p3AuZeR|vW*6S_mwKM)aqOCq*h>N!Rgdr~4>Jx^zXsb^c;-alS zVTg;i`h+2_yx$NPZS^TP#6??u!Vnj2^$9~LoqCp|$hPP-?NEqIt+LPW7 zf&D-k3#x#n*wyub4gRLv#+FLe0ad!@5!m`R&odxe>X8}sF6no`Y|nQ4MEUuvca&U}fPCOGp8%rwE7FE-QE zW4_2t6P)=%Gfi;j3(PdZna?-V1ZO_a%&Ir$bIo+Wna?rPjc$IvnQnIT*=AZd%x9Tt z{V+ezOzVjGOf#(~zMN;kw0m6^*{4@4u-NNhg%`mTir1dT)z+)wjZbA`s23=ggZZaW zxll*ObA4^NydQ|m(@PKXSY9ia^H?+F-7J~wG0%+6#SD3Oe(0P=FmvdfMlf^eoJKHn z=$u9{bLc!ByY?SCrxDEgp>rC+%%O7{!F)F8Jn1{Kv3WZDd|5;1G+tN% z@;W>xv&0V1%`CIS^D|5BFg+svJ-HoTkn@qdc%fJiCwkZI%$G}g2YZ?2ceuzb!NX-{ z86NIumg3Buw7_AuY;HcR&~-|IHZ_xktD z2w%+ix}6`!=L2`9>=Zp39h4S;=$;uZiTgs;p zzBEwA2QLYf@WD1vzNgfk>AufvrF)ghfwH~I<7yAU==9UgLR-x4>o}kJva!I z=fO5mng@r0vOG8nl;pv2pd1fQ0;PCx3abA9gBf36KL6j}|9kQD-02C^L#KZ`|NqI! zqmxG_4^8fvym|6czW#U8-_d__|E2x&`zQ5}=Rk8 z{X=s&i1iQ6;h;4#hlAG491dDbth<4O95MOdLqT*CnnOWEOy*D!5tA7OC5L1V2QkUe z`Qab}H1AFh;%?80>`)N#oU^4MvgZcMK;XPU2?(4YDF1*90;L~tVW8{-E((-wv2VN;=>gfpQMGW}uV-dy zY82F~D)WH7%u)|rWR`nib?K_5;|9qG=2bDvJ}|FJY8bfz{rFLIw)8``daTpG%RjJs zti{*A(5xQo#8;ZtW1aX4vwEx(Uv5^9b>hp+>ak9IsaZYNi7zp$$2#!~%<8dDe6d+Q z)N0qc{vw!rIV-X+bT&0~Z+?N98oK#>Gc|Pcd1h+p=5x)|(9P$VsiB*nZ>ENBKHE$U z-F%jr8oK#;W@_l>GtEqgG@oH+I;2nM^tjoPeOhcDH}CpWhZ3Hr_9cY=O%_?@8N9DXP0H;3N|`pw~Y zf_`)OouJUiet_k6p< z@6-vMAAZ-^xOBeqJNwhvxWplNjg3nz!IQ5sSczqL9baZC9@f~nlrP7_8XK2bl7}@m zF0m{R6RVn~d6-z$EYHKls%D8ECRR1e^f0liS*nL=h&0RfFfBM{$sVQ!!z|mwRN2ka zJxrC|EZ@Ua+07C@%$QCy#uqcD(~l3z*W;5fZy28{y*CfzQ>8bD@u||A!}wI`&0&11 z^!|AnpHg^spo9<3jIG1>WeEIwe6NF>sw+EH<`ousVkBFUl+!2BmcTE{xEYGf0Q|lKh7M+pJWc>&lL0SUMJ&oIi|ik*CG6L zFMRaZh41MtOJ{SPe9zI-U1kp9(_dx|;nQJe4&l>dW)9)gWo8cH(`RN5;nNIY4&l>l zW)9)gZDtPP({E-D;nQ*EvqShgoqY1)`*H4C#P>R#QRWc-Fmni>o4I`&|Np}oUtV7S z|JUhl(>F|CG(Bhfoaxi2yZw*r{~bpCf2+ybllgrA?+@djjK4nq%=rD|2gbKB_y2|C zbH*o(52OEotMS^j0BG+2k4Ik}eRA~f(Y>P^M^}w59i1^cc67jKhtUS36-O;I|9?9C z`tZ}k_YUu6{r{_mmk!Su9y>f>xWjOR;flky{ZsqX_UrAZ+xNEjw>P)1Z?A06X7&F= z+FjaB+g01?;J*gH9DIB5g~5jhZyPKbym|04=KY^KIC`-EV28nmgOwTm|JUZ1&3BqF zHXm-@*4*B_k+uKNZBA?sYxZciXx8APW4-z}^^^6N>W|cKua~g$|4Zug>J#h3>OJZ$ znD;-s?p433o~*u9eS~%YmsD@6UQ(S`omd@S?OAPEty#^fivB-p130|DXMfB7n*BNS zB|lYuuY9z8qy=I{@5t{1P%D|Hk8(L>incIbyW*4{ky!yIdK=!ZGh=B%I0p&#a0 zJ3sWp9BXsvhdI{f&`-Dj&<}I0ogez4Mc5qrp#|9-`XPEShkj^rHiv$QCd{E9q6u^8 zhiJka`XQR|_fC*4*L)-n8QBZ z{;`kB0HOuwhkl3_%%LCp6U?C>`V-8dANmu_p`U4H>4)E^f5G|k4^01pIRr%if;j|4 z|AILLME`<01VsOdFDC-h<;-^{{6l|%HxK`CILVGTg?~7FbNGiUS!&3-Dg1-nQ+@cx z@DIU@Is8NLVh;ZhyqLp31TW_B55bE${6p|!mVY>Wf)_IaN|!5h7>MA-`C%Y}7jqbh z;KdvUB6u-}fe2pAVIYDPb7!F7Fc86u^TR*{FXk{1!HYQzv{L3U(8`%Hkj`h7%%Pyg zVhW2JQIKw5KYlI@MDXLE4+9bWn4jyPBlt0&VkY=8pKK=hF`r~67B!z}CRR0{5Zh;d zj+stq=Rey_dxrU0W*Pv@&oooxHy>}N#&15(%;RM~)=Z7xe2keIzxil0HGcC^W@`NA zXPBw+n~yY8<2N5+rp9kR+)Rz%e3+R9kIaXfS@6jGbTbPanV)86fg|%FW)?UyA8clU zBlAJ#)iWPxUL*4X<~1|#Z(d8R$6-G|4*Bx$>uhSK{`q~()J)BLo2i+a_cBveG4E;a z9bXY4#qZc zd*d*0JL4#DTjLm{r~k%nxF$MCALG_3lNLDRR>mT5OJg5I`JWUqnuslr`=CC|LhdC@ykYNtX6J(gf z@&p;?uslJAIV?|;g*hxwlZ81fzf$I~{K}cb@~dPH%P-CxmR~h5Xd@<`6T zS0Q;MXAa3DIrnBs@^tJ*A$5Zs5310in7BcT2X&}I86KvS6AtoB-w-@;NvKbxNUgqA%Zw&^ghIIdo2RV-B4Y{g^}N z=+zuLN3Z74IeImR&e5wmbdFxlp>yf zwY|YpgYOR>XVt%V4VDdV7+f{DY;fk__`yMgodz3G`yVy`$=d(l;LCsSZ|-m2(!930 zym=lY01j$)YBp+CZbtQg^4-60)Ss>2U*BK9rGD-Ivg+SW)oZIOsn89BQgEhnnilp{7QxGeJ!$3W?o? znR+@i9Zr~ug%ZtSrZRJwsh>H_RAmk`)tNgp#qKdvDgxr?5tBsL)0NcjLrvT*bEv5d zeoLsSpE=Z2WtN)wJ^Ff5efKSL6HH%^S#pBu>q*t+x5!Q`-m-S_gIl>cZ;_qAg@LjY zxF}F|0#^)_oxqg>WhZduK-;NVB~W%EcX6QQ)T|n4IW?;VT29UCftFLVMxf=?tQlxI zHERW0PR%+X7xXQX6DQ0Pc|Kv=saZF+ww;>w0&S;e{XpBP*&xt%YBmg%oj9e90wpJK z<3PCy+$2zH0yhnmnZV5gB_?q5KzRw=B2Zcaw+xh(zy*Pl5;#9lP6FozN=e{cP?sZ& z#EO7^9x#$F4=VziLrJU%XbvT@BA_{x#Db3IP!bD1nnOt}2x$%_v0&t4Evoevltdub z#KB2OP%ltEQf8oZ1eSra5!erujKC`JKw}+vfHCiAf8!u>_cOME`x=LV`xr-odmG1r zdl@Hzdm5*Kdl+X1?rxkFxSMfy;I76wfx8&D3f$Sab>L3MZ9v_~9YLn~@JSK#4razm zn723c2@&&l=3(Y-&7;iQn8%s7Hcv8dWu9i<(mXTs7Uo%*H#g7DyqS4U=1t9WGjC#^ zmw99JN|`q@FV4K7d9}zUWiysmlu%wCGjdSkN385`&M=~-yU)HO3vOca7E+xfwDLM zyhEVn-Ru}>c{e)+THejhftGi(OQ7Z5>>7x?^~<{jO5Wh^fpRyvN1)UV?ina^gL?%^ z+~D4U@;10nptKF{8;G@q`vuC{;QoPAMz*EDdN!`FoP=I}Kk zzFEGeye7mqOV}_WzFEeG3GvNRHcW_bma}0(e6yqt6XKg?ZI}?>EN#QIPn+d!nD%M2 z#0}HA?&f#Qt?(wFj?4|xUhB=JZkPpa&2l$P`>k2>*1u;Cd((dFeA%0P8uZN4H_TWC zv-}Nr`Ink93Xk*EH5Y_5MVB0FTxa5--tGH1A) zIb_aoIdjOI;d17XIV}k0kU6a==8!q9EM{b`!|C=fox=>5bH02I(@JBO&|zB7%`!Sn z>$zDiP?_Vl-Z6SFxSZWcKm<^bIf+Umew%a@mihRY{zSLZnGV))wvh1>-zt9 zHUIy+(=SdxGJR;ebb9Ud71N8R&z&AM-EX@6bc5+i)A8gllb=t%Ir-e=1Cs|PH&0$a zxpH#$EoV9~r)VxP*28Uot#zc;fJ|;U2>+{-y=s(e{z{A?E*I-M*~7pgp-gqTQ?A ziuwQZnE~*J!A}NXAADx;{=ox-TL*6#ym)Zl;H1G3gS`jauSNVAtGlb~t5;W-R%cYlRtHo& zR2x<+SL6O)`@dw}|1U8M;NkwAtO4*!)&MxYe{BDt{?7eP`1T(qO!*te06bQHynI)= zth}MTs=TaxUU__ZP`MLp0IXb&ivKMBU-1pr|9gM&Kyh>N`r^vs?BZF)A;m7mCdJ}n z()(-g7rk%w{=N5ay|?vl@4d12;@-Kv6MBcT`rqcg)q4yVobl@!-_5fCG!)=g+fBvy zs`rS)ZWPyvZwb3mT${sg6xZgk8^yIb>_%~I4!coYo5OAt*XFPr#kD!?MuCwUq;3hj zQDB(EZWI{iY`0$V*ypI;-Xgov5-|*v+`v&FZc}NhjXBv{LT#wujN0^eqJDF@4fUJD zZG>p%a2pYwIow9XZVtB*YM8@q-TuREMDWfJw-Ldc!)-+DJ~`Z$ToT!#HUfBOqqgLV z$PTmd4MG1}n2m1;n!{{-L(m*%;~RqJFdN?xG>6&vhM*aHkM!-8#9Ad({R?ZQvkKW&@i*i4Cj+%4T2_D4BuUuZ{wjrK8y7IXViNjLcr& zD3O6hpghJ2l!4M1*bkJ&z$#D@1M5IJ3~U0WFmMnkgMlrmgF;|BsJM*MmkugW_EKh` z3AfAx zxpoY6^R=04=9{7BIcB~YYMyQ8o1x}eX4;a>GtKE~)$=$tw>f`e9%de!N0~?Fu~;w4 z&@W1P+9P^5VoO=y;~x$}%BG|SmAUvM!aZSkVaVeJ*gIykH??d9Et zv>AQqe-CLh`p_KGX7r&sq|Fyz%pq+?ADTnjj6O7nwA22ydr4atGR{7n&EP|CjZJGM*ergP6X&a_SVV1XHMgy89Zsli|x%K~igi12xSpnb_;NVN=tBQH z5*ITz)GUp|j3qV8<1iIKvqTOv_S7ts!&C^(QaMb8&@7k3-TozWmQS+ZU+e?6H4tMVPry?UH=-0*g27A zQhaizPQ+esdYSF@rpRosH!K48$(cG3ysn!N#jmWcTM{U#gGHd64wg|oh0=TZ5{J@h z-t;Aw()DAY=l@gx|5d90e|Y-O=l_3q^2N!ACvThFK6xYS|DQWKVRGnX_sQmy)&E=V z|4pp^f8O{+M*sic`v3oV?SD^J|66-FKj!~`wf$uK?si#wefz5RlJ@lWn0Ehm`*!_y zQ9Bs?k=p;)2A>+dht>aX7`&R5|4$zr!`T1r2kQ?Ou?FiOqwfE{=Dy~p<~7Y_G5>$p zX0v8>#{L)eZ|fh_U#>sFSO4y&v{`+rAj|0`9){-66l>p#)|O#glT`}%L`zqWsQ|9So6sr&Cl-G4E?|9>ri z$@+i)UVexb0B$Y+g|+{mUp~8hTDfbvX}M}SW%a*b7T+%Zz4%b^*0l2fi;8oK=M+yb zb}Ke3Rx4%}EA)QV`%do*)cpUocU$iby%+tDHGek&@aWwZdO|O${(W2M3B8y@Pw2%Q zdO|Pe&=Yzwhn~=hIrK#FZ4N!57jx)|@@Cb0c&lzhPkO}%ksWqo=z=#7I}!4j!%i#^ zW)3^CK$tn~!~$XFuoDY}nZr&j5M~ZLb^8xHu|Syf!%loW&>VImSTKj32qw&7CxQ)g z*ok1o9CpH9=CBj?GKZb8moHCeCuc9WlX(T*9D1T_!5n&GnaGzstXBm+>0ryq#!fm{ChB{0`3YvCzFC4wn+MBKFjKvp zFGa!3+cV=RG4uA!mK6O^!Il*LP{EcI{ZOzjMwZmNN9tfZNf|py89PZCC8=afqZ|cR zeIts}dG}|mbC53UA|EIHYvzS!S~SfI%(Q5l=bLHKG|w~BqG_HR`T4TXF*9h{mwh%Y zL&ja6RbbD^sQ2{CGmMOSPq>1SQP;v-Uub01`-U9UtyiXlYWnkL zD)WkzNyKEl-1o8P=jYbT$mO;&7Ck+0w_a*yEV}s;Gh@-sFEBF}-F&f`vFPbW+fZRS(Ww40m5>$IDj!|Sx0o3qz5 zXRqhW6JDpI&D)39>1Z=&uV)Ug)6wSq@H!oBX1uPuOGleI#7;+>ImFI5THg-Do(i|f z4zJUz>dnLJ^tzhE>-5T+!|Qaio5Sn$oBHSRx_&#j#8=-fF(RE>H_cVvnX)`p3(rF_!htg>yG>6h@BQ%H7 zX(Kd;(!2eK(rF`fekh$bLUSmcHbQeKoi;*qD4jM!b10oQLUSmcHbQeKoi;*qD4pSp z=1@Ar7tNt`hA)~!=?teZhtlalH;2;cKsSfd8BSqF>DE|qIGy1X&JU;4|8EYb(;H{T z>H2?qfX!ibdVtMgb$Wo!VRhzpn8WJK>oAAanb%&)x$qlnh^ zIOX>=tj=UoZyr`>GO0PN&SX+^Se?nF=CC@GNzGw(CX<@O>P#jzV|5)~w|{vZW-_Vs zC3cv}q-L2NX8x5~YKNJPX_nhzx&h3{UCiuFbJ(5cBXiiD<|A|1o#7hhusg#$%wcz$ zJH?u?!>%kJ!-(KF`IJELdJ(z}j7v;3~(&n&^~_%qA!Fr#Pu|57~6>`t>B z4>P;dEXl*nZ!pX9F!LYGXkN_x2(v^FGk?M?)5A=BF-!F@6JN}7J z`07~y@5u4qHB|2b!T-A zwf_sNQ>r7Yy{m1ib*lMQ)&GzF5Bp#4f1>|xzWjG%|25S9&+0#`|Fr&Y{muJpF#EqO ze^>sn{7U(W^4;Y<|bnOtY0kRmi@8!lit^QpX$AbFaO=pyQ+6-?~LBDy#snX^fu__6#&1H`~C^e zmS7^)R*K)ALm0gzJT$NM+SE(JLvu5ShbFO>^^)+=G;?@pX6EqFtjyt|*_p#bb25jA z=4K8L%@Y$mF2O^3Q1ju0hFIA!Ev3CAG*n~`4V9TgL;cL5p(=A|sLmW3YBGn0y8VZS z+MFL68fFd+jWUOZ#+gGylgy!^Y38h<%vnR3vxYKf4T*KR(2y<{%SNQT8y2GH(Hs_H z*v2~Q6JH_==~-~8utXA~#>J<{->4@A2c>%L{J&~j45V#)eWMJde+`s?z%o$&0sDc{ z4_F1tK42Xv`G8HJ+yf2*r5>;abx@c`2Ng#w??8$Ibd1st7^U8lu#Q&II7ivC4%sT@ zgpv*@rwHX7Fd7AxNI9Sy0hBA_fO*Ff4%kMnd;<;xr5kV*DBFPJK*Zc(jL*J@7Btze- zIV3~hsyQUnJzXIg`c{2;kxYtFil;uL-Qk!dl`1$SQ)Hgue9Aa)zk<0ReESQ{Rpu+r zb>=I~OcY4}fBWTTh9a0RGq+-%oZByr$2nb_+bGnNKnkR+~>W6Q`L^FcW5*pJOJ>Hb2`;m~DQRnXuaYOfwC$=HtzT+2-TSgxRS) zy#3gCBqRG6XA?Gi^P|m#&E})bgw5t>mGoa(wc+dOmFoa(ys!{$`ieYvoC(nn;6 z%&C5R^N=~!Z*$0;>bE&$PW9UyGN)2zM&>$P#<-iq=2XheVROoFbJ(0H-5fS2N;iki ziPFtsbE0%}*qkWc95yFPH;2uM(#>IWqI7fEoG9HKHYZ9qhs}x7&0%w*baU98DBYJA zo9puCyB9L2lH|=p=2Vi*$Xu6;N|HI-ya^7Q)9c`T*_`d^l`u=^y4;!ZxtI|e&X>_) z6la#wVa70+<#d=a3}#6kW(0~m??l5B*%%OKWoy^iZ`E)Y*a^rVh?p#*L?;xE@-duu*X-RzPH7a{$c$iKl z=S%U*&n(BobSgPtl85P3GRyKXol0hD9`5!p&%<;IIbWiO>1Hs?^e}Z`A3mzr;pc3r z9;8a_&Eiy8izo)&GC}5BmQPo9;2)V!Fn3_Ov(oO?>_Dp~=$8HIr9NE}on=Ic9ReWXH*d zla(gJ@n6P2AAfWFx$y^B|L^AU>&91%&mKQ(e8_m0@h0QNs_%fsa-&x*WUSGbtytF){ zJeDs2?oe(}uEKi{pv|iyey%i*lbOVvck@!csJ}r>k6N*y!l{gedBdIwQMI-5ov#B61 zMNz3~!ABxNsek`q`3%1vM$C^dmipv(jg0wpG} z4V0I_VW6}Gjsj&Ra2zNpfs;Tv37iIol4b^ml4b>ll4b`=N&N4eKp6>~8z>=x^8)1~ zaDJe41TFx1Mehh3aVgVvzawnKD`XBE@rs$lMpQD>D}Kjw`8l2m!glj1X2SNZf250l zvY(l}`AN>EG25G;Xr|I+KEX_-%KRKNl`iwM&D5dI&oWboHb2u$9ol@nnVWAu&P*NJ ze5{!|wD}k_b!PL?W=b5N{!wP?(9VB`nL4!jNHcY4pZ*a(eLh{J0`ZQ+olPCre3+R! zuK7?ibzJk)&D3$tPcu`;H6LQ8j%z;HOdZ#JkeP?we4v>+uK55nl`!-EW-4js{mfM2 z%=??9JPn>9IF&V`fBxPk(Ele!ek=`jP^z7?Zmfb;>$U?~-q{5s~ZU?EMB$V1gBJPATJ4k&gp~MbS8%rp! zgEW*Ul-9vvpsWs#0wr~D94M!QlRzmQoCeD1;LJb?9h?;?pM$dlrE_pjpllA#4V28m zd4afGI6qJ>2NwiN<>10VnH*dch{!Ec7b@X#!Xk5coUq6o9w#g^hsOzve7)pxeqB)- zs=Nb@CslgmkT?w$zR5^j4%BS|yD;*x!rvMX&$Mq?| z#Nly$3NUeaT%Q6=jK}r!`V?SdnOr{~yhJL8^(jE*FOkdPy#FPVIjm0srhM5P)~5gy zOXo0EO|yIs>&uTRUqXkeYMNzqn5w2(N{6Xxrqf@7({=iBwU)@~AngL)TvCS_JZhHJ zVcHSQ(mG5tkXc@bX$CS&>@bx{v&;@tnKVo7aN56mSa3V{mgej0baAA1<;FO|hlrv4eFWUKcij@;a!VOUi~N(mL1%V)gXA zgF5VxI&*x@A$8{XnnUW$@im9knd55?sWYe798zZfQcB>P*u0 z;YsRTOdYNJ|DXIv{r_J7|Nr0h|K9dbX8-?s^xe@HM;{)&ZFKwSjiVQj&K;f5t^c>Y z_WzG&|F6-l|EJmi54U%=*Yf?p|9$-b8G~a72e9`427?v<$=v^An**91n+=*v?csSjoC|1Ik^YmNT@ZS{TT{(rQ3xLV5S|Cd!4R3}$Q z(Eq=6wf5ii|9`yy&i-A@{C`FNqW*LH&*<;N_y5-EFX%VrAIqPXPn4f6KTtl%=>IqH z{lD|d6U)QOJz4#K?Q(uu7k?;zLf!wf#RrN9)A;`v7w575|B=N$d;xI1Vj=TT{?Pkz z@2kB}_TJrF*1NvDmeE5Kc$r6_^#3N1y6bXRCe zB?Pb9U7;nuL7XtO#OE&)hL(nbp`|g%lYW=9#GDt#2Ve4O{T5!*lQxO19A=_2 z?^BnVC@Se-y;$caF@bdEC6t#yy804IOCW{c#T2u5VI?WFymwpv^-eiSFJPdQ1QvlZ zlC}+$kidSRd<0g3(h*pL?B`Bwr2X{Q)&PM!<;p`K(?JtTLtqn#g>)xp&e-vzJO+1$gnF4nLPh3~P$||?TSB^4I%-LX-=?!R zp&SI#S({J_0_m(x7zU!VHlYo~Fmj^}#3WXu4aBT@V;E@QhxN{EpujLt4eFd^ARg^$ zU3_*RMnQU7dYQvPMdol2ueG-i2lX?DgR0EgL7BrrP3CYAzVz>fgWAmDpkZblq~jfB zwuG8-W=p7xQ#p&BY&8)n+9n{Ruo8uro0d&9rQdcJw)XN+S(r|#3 zF9or=h65x%$gJT2i4QbuI6&e9%o+}mc>lzWh65zt&)n^QU$ce-r2Ku%L$S_oZy#9ziF+pGO9_FD~|GqoS+sz|-op3iJk7&YOjXa_WcQNvaCfwP`Bbsn0 zBadjp9gPae^vgT=IOorp`?!v4dvf*AW!}zQWZu?XX5Pl!&%Cv{%Dk1i&b+0$$-G74 zhDwR|zqz>;>+m*<%NUnwQ~!G}U$#xme7e?`bz^gxc_VW_^M>Xs^9JTR^ZI6%OZ4xp zXJ$=W^Sb6X^E!!}QGN>6Hjgu}Wu9bS)BjJ=d(d26?lsJOmdd=kna@(0SM&e#St|3Y zW=!kyB&iv1{lWpfq#fs(n3{Xn@K>__PoD%Y8$8y70qnJ2c& zn`yq$Qh8jdlrNWahOn)S;aR?&@;%t1aFX2#}XJ{XpGseBIe!7#Igu7A%g zqr-eK%=uC}%m>5FayrZh!_1O8ocF&JtBd(ynDgaz4wnyxnI(3Z4~Cg#c9;)_nWc7k zl38wtr+;3bUy9!OcgMC)n6*Zr_F<NW5t<%jAu@FsDno_R9n zP(AZx%%OVb$(Td+eBLEB&n!jt>GDRlP0!^Fw&^w8-2ZOVb2ox*dM_?aZ2Z-dTpQD?R5LX^%}U7whz~9;7;Ojy$0?i4%choPU3LA2JR#d*K6QT zV!K|$>&Y}adjLNl({@zO|Zw(J$>n?v@*`R0&4kC$1p=l|)nGt2fc zkDFP#hv}3w%l9yC*k%bIrqj+W2+%vgh^6JSYlhf({-+!_L{r@XZ#^b+^f5{gBzBvBK_@VI~ z<2R3AI=*0h^7x4HUVQ&=t-qN8@UhW5Mt6>`8NGaT;pmjnk)ypwTaVTr%^UTHzZ?Ew z`1tT+!*|gCf6ega!wZKe^96uChMNypAI@z5tNlg$&GxhH``UZk8|eGLxIMK!y4|nc zu3fKP*fy;G=kfpVN#p-t$+!PbVeP*?2U`qQXAIJRHNR-S$=d(#W97danpZU!H>Wnw zX!dTlYSv`#|BU)q^|$NK*B@Zz|C{R9)R)y~*2gpUf2Vq*dgXdl{b%+6s&7=Et=?bV zU%iEO|1YneR~=s+RP9u4#HxRz{$Kh(?|-xZx&8P~xr2ndOOQNBXu1U1gM>ksAbpU~b_wza3BxWy0wH14CCDHo zjJpIWgoH_#Acv4J?Ghvr5@vP@vIq&Yx&$<$gxOt!L_)%xE(&(5^M8 zzZPdNmB76&K`tSo=n^Co63Q+?HX)(kB}gYER9%96LPFgoNGK#UU4o24!t&#gQb=gK zE#wpuhFyZBLc-ko@i=r@g@oBDLFX1)!D9#Qf@SZPR#HfG<~GU>t1x2ie0}5f?yw3Y z*34lQMy#2`D)gC{v5JZvM%$W0D~vuihgKM!Y!0n3df9BPG)x{bTPqEdN6uf9Xzy;c zlA^scwOGpCk_rdkD~)mrSOiKbDZD##8$H7^3YTJ5x)l0vDTVwhHkVPrI#5CZn?U&l z90W=yU>k@{BvT!Tu3E^18Or962{V+R2pn4xSAnbes>CQas$3F8iZ z)j}qWOEiZ}m;+%BnJ})=95QM3Q0VwWCd14jlTqf7$v8hm$V8{##LtCG=#KEuhfC;= zFo#R%jxdKy=#DUN$;IX8=#DUNVWvC6yt$d~2=ivGowzNsqYF^ij6U^(F8I@{Y+sxQK^IB#`rJC0?Gb;6b zeTew(HGFyV-CEt*-P5+3nY-twWmPkG&kz1$mv%7@3PMFgr%yGipl%OYbHkX2P>B_fR z-k{ed%ydH0B}|=Ab_o+F^t*(y6RIv@kegqdAJ&k2L>g3WM3-CeL1NZ?)K)lCn>T`%+oRoZ}u>#i&P zaH-Jb0^fCow`Y|K^W|n1wJ=|1W~~ylLIr-GFY%cbDd^qJtUv)~?GooJPJmgv#H=s@ zPKCDiuP6a#?UGcc-=!cSeH3l+{mLdpNcaCyKgxGSgwU&VLPQ8fmk<#`*(F4T(C-o= zLa4fgh!E;7AtHpPOCUnfD>dj6B1CArga{FaDM3e0h>(svUc$Q~Lg?jNcUMFRMVAl} zLfIumgwRh3`b|X$Tr513#-rb*00HLWub8fu;sY4ZIA7rbJXL#${$J67{y%dB2i$Du zD>%^qXO8HAo9+CF4%nYLq62QWIidq@wmG5$Znin118%lCq60oMZjR`HkC2-k9Z*RN zc62}`E|};*$2&8#;scr-Xu5CNW(SrG!v2ebVD3K8IWnH3|z z^D`?*fES4MZV@H83B&(Rl%Q;yFw7Aq(1c-*FoC8zv%>@$bb=iwG&EuO=Lr+^^Lg(P zCCpRfm+o#v33D??lrSe6$L>;;kYX7Bnt}vy7(cEU0UQM?L;%NuiV(m_paKMN8mRaH zoEb=XAe|~DMfV*Oj-~gMNBRIgO<_HcbP|Xn>5DS?jIGALP;9#0Lf`gfvBRH6qIf8@PnH?N7 zw8#4Q9UL^N5mR@W;6M)*4GZpIRCK`A9R(^lpp$|5ofqqgRBQk;`!n?@5*jF+j%^he zK>3#x6@W2}>@LLwpoVSfmlP3z8d9kG|9575YK7@9r{9`>Zuhu}Y zy{B6-`+xRy#^hI%Z%;nY+W+@YZkk+`>i$Ph_ML1qS$i^fQjCAY%Ku*&e`x&R_!dU~ zUp_u_eC&At@pj{N$Mc!_|J%{``10R}NB=sym2v-9jGi|-ZgjwChtc|@g`;}-AJqCE zxWRDIuxWqa{;++V5&sXhOWHTKFKVCPK8tVu?bL3_ zc>h7F^M8de{=H+cba3_HWrGU_CsXI&Yp~T|t-)M|%>1_be)CxK(dOZ1X>)b+vgU&3 zYvv?v42>9kNy_S_@B*l{hRVhzV`Q#^6k|7 z-_-T^@4j?5zcLI zB3C829*Xk74{Bo-;3@aQm4%ew{@)8%)=x+A%}<-7_~z9%NAb<8ZFcdk=~m__zInCH zQGD}io1^&V)%NZwzS%wYxo~Cbj`vV{r@EsLRb@Aa%4wz}SJ4d?ft1|BexOQju#U4< z!3|cCt8&}9>8Dg|gIuD7Dz(8uAceND4W!VH%lkoHqA0U<^%F;#%_TCc%;s(95}8$K z!(1Y>N^O`+WLB{abBW9sXjwa1U6=!t8>3 zz&aM@D7ab2!mNUu%f&htW|iFV{LCu4;RRwn&QW&9y~$;FU@p7kR;ldPt;mmo3U3(6 z`7v1JTcxL8w`yVRx+*@~6E86L7}~G6@}BwTBJ(_RnR%|cpLveC$~@a#XP#wlGS4(? zDnZ)c)ZAvCn1`9i=27O6d7OEexS3>b&C|>S^UTbRc~<7yJUeq`o|Cz6o}0Ne&&ynx z=ZkggdbuP@CF~4xDG|6A30E+3FNDipXrzQqc%_koDd81HN}`09`##2gmt96Kw|QRN z$7PqAiTBfeUUrFjZq9#!nfTxN7n_Oy%@>)8|IHVgiT}+Pn2G<*=bI^k&F7g@Da&)T z>|8VPe|ij;o#VsLhx2@AGyWqzhRe=2GycPTmYMM%=I5Ci|6xAU%=i!U8D_?Rm`^t| z{=*WPtfZGabn06U=lNo1bHzmHF9b z<^($bS>`#JpJ}GBPtA7AjyF@-n~yV7*dMeDEuhP!c51D|`YWzIFT?FhSh4vE3DQ0Z(=I{cCt+rn zAoY_lt4omlNtoRwNdF|v=@JwGkTADPAOujtye>gO015NE1VsTPEa(yx29U6@OHdp@ z!lEugfj~;gw^orr`j?!bP=JI5-Mv;UK*IbkLD2vS^SUdhcpz;N-3!YU5v1S935p3w zSlIoGf&vm2bqPcTN?0)^=!qgONKaHgF2x0G(CZFEfdL6cm!QaigtALeXh1^0OHgb; zLe(WGI3S_!5)>Vf&~yn34@ekv35pL$XuAXj2qX-<1VsoWjJgDc2qcWV1jPs>Ou7UG z2_#Ir1VsrX%MlVM1PM)-pb&zDL6@Kyf`qn9P!K`FuuD)BLBgm@P#8hNxJytRLBga< zP#{6Vv`bJVLBh-~flxvTv$_OD6C}*;5)@C6FefM6t%!nzX}-pHE2bb}+$AWgAfe1p z!`;LcN*HxpD6$}-pSJM$|HuEY0#w0X#YW()bb9|GRU1?f8}B7mQD* z72v?}j^mBStBfb(6-K`reP{HA(ZA6SaNFn&qZf_N89iro=xDdmW~0?cvqrt)Q^W7m z|NrsfyN1h#Hw>>DUN(FlZ2^Z2cO7oV2!PqcqJ66U9`pb81;9JnH@7cs&u>p^4{!Hu zw`|vJ=d{J(sloRKj}9IgJT$oD|J)vMc(X^d1)~7w@CAUU>hIN$){oQ=)pyiyu3uW8 zU!PPTUhmn>0Py<%e?J3YuWGAmt!i#nGW-Ag{m1$rV+O$8{pg@sZ-~#ggJp z#Y-6fe`0Z1u}86Gv1T!ckJ&%f`(E$S-Xpz-drSYWHDGO81Nt+5H{%C09#>nyee#Z~ z4Mnl+XJTnb)rQQn4$OzzoGX*)!Y+zO+Gs`vFz85Ujz|7!rKBf^f!^ek%X;R%gvgH~5dr|!137xGp z12cohEX%;mpfO7_Ff(Y(atzE28nYAwbM?$J49wO0!xOq12*y{#+0qNyTn)4A0&_LY zk_*h$Fv~44SHmo|z+4Tp%mTAEn^|IkS)0u)ufUwISz3Wvo6U!ZRdjg$$d*$;Mk{-B zlpZk1`5tzOTvm64` zS7DYyVEQUvavXKO`!GmqecJK>-FxXH)%lE)2UwIwsRJwnB@VD3C~bgMprirTfl>z8 z1WFj-AW*sh+d#pJC?o&8M3= zee-E%PTzd0nMNA(bItTbm`^d&6Jb8tOizUQBr`n`<`d2IM3_%7(-UESj+vea^RvzL zM3|ptrvJ$NOf&sU=Ht!uKbem+&lmH|-+OGjy!i#Y_n4H;bV#zPo!)yiOh~aH$0_$7 z<%D@DLHGL^{y|18rv}G+k2G^Y<;RqNgqaI&KHSU&Hy>u^f}0ODbHU9|H*>+wPcw7D z&4-w|;O2wPTyXP2W-hq-KrtYVu^Lm-X_LP|BusyG%Ic!e}Y7X0TgU#4puRo=l zIdo46Y7X5~f|^73yg%m9J@1z}bkF-|4&C#9nmgUo7^cS|bg#DZ#OOYXCv*6o$Hg4J z=W#KI?|EFz;d>qzbNF73sA_z>SH5Scf(}P0-BY>bmHu3+cy8DBFW{O(&G>L5lo@ zay`gYgoIK($efCVGCjzYii8q9$c&1F@;u0diiFZU$b5=~vOLIiiiAjB$ZU#)k~}y& zP>u)Z1WNJX+&~!~oEIp;gYyINyIta&6M9FF=FmG`_vOd*_Dk=){d3dHuFEIC^K%T> z*O0V(L+{L%@c)P2nJrs_-Y%+|YROPE9Nls)Fq zJDnfp$I$z|S?_67<-MKWjh)_&q4$2An)J?l!l(@2gwF5Yy7RlS^SiP0yRq}TvGcnT zzw4Tg*fE#*9{C*{2cmc1v2?}n3A^)pnZxe9e&(<{ua`OO&g*LqyEES4y~lFb(_{|0GnT__xohl(IpogR4Rgqyu^Z-)J7YJ@$X!>Nu^Z;FJ7YI| zc-UQsmv=VkWhA$PVmhulGP$eoilhunGl%^`PQe{;y4_um|H@Ae;Zrvz|*$ekj< z9CD`&Fo)bJ1k53KN&$1oonpWoa;F?HhukR$%prG50&~cnqQD$-rz|Kx=JEfZ|NHv? zi>K#KPnaG$-F>?GboJ>hMgaVJqVNBGWb*dO9h0jkFP~h*`hQ1H_M2=!S%0!<(vJT$ z{^|IM@n>28@2%t8#&6^cfaf#*|H$#a<82uSuwdMb{xJH<=)>AoFC097@a)0U z2D=V69jwZ_r2p0YviWxN@6Csrw>Gyn|I)m$d4BWk=4s8Y&8E$&%hrArcYk$Lbyamqby{^)wGZ?ERr@dc zzv+Ls|AqdC7z=PS-~PL-e@6e9{(k*!`|I}SQ?&iI{C@dZ`O)&>a%p)DGXTynPo(C* z8(;og%qJiJQvAQ-30D2ny8qWR4&b8Vl;VhD&ti*W^3pi7W3NNBqRoS}qammq79FzOPd4HCv(LU?1+CCD3WG3^p$4iaW| z2~r0Mv$_PigM`^#g5*KMoGwB3AYpEoAbpU~*58Z^B!7@FObH0<0R)oTDZdpPNFZ!b z)Zd8&8H9v>mw-Z)P<08i2nltUAdisHbO|yE34<;{E+L`q5+oB6hABbEg-+6OeK!t6 zK4F7iofBjf5{fQCP9dS}5@Zz;`dxy&LPC`i*vb8vCGF%%@8o{eq78a=PLNzkD7pmM zg@m$8kX}gWcM0+f300RM!StxXcL^9q2~A2saQEXFmFd$Ni`0#Le<-GxITTZ54#kw2 zLoxl#p_od{TXMe?la4uV>HTsH3B7#v@0Vm!f}R2$f-FNqw}CVR7j--)_scURlwE>E zLqfkxkZDM$x&*0)gt|+RYe;Ci1j&YkL6;!gkkEDs(hUj2E z8vpKpy0clnCpBN)|1>kBU#_}P|9*&B)20`T4>oJsbmD`|nl_#IK(nSzCqBTeY14`K zH*4B-;{6h*Y14`KHRE^Z?_E*-UBV}u)Y@g2VW@ez6 zcZ+|@^9%wQk$PG$!Cn0GWY*vGtsnZZ8h?ad7KF>hyPu#b6L zGlPB1+n5>bW8T`#U?1~VW(ND1w=^@@$GnAEbH~%=-Q29|OXAJUnoFK|Q?q8-C*H(N z-P_k^V>5Mc^G0Us-sTPC|1)o3rtazI_|cSYIEJxPKjI z_cE_-E;6rWE;Fxb?q^=ZTxC}Lz{^l)R`>unnH4?2gUkvZ^zvj@>;MllD|CQInH4#} zh+9IGFdA0tT3& zUB3H@7hr~VnH4U;4DGt=LLH8x1u9xixx)jx+KLs(re8ZOL=6JQ!H%nB1=8ZOL=5@62XtRMlV;bMmeba=!Fx>`kK6Co&@b|P=C2tnDI z6(GPotIk(^0Q0Px6&}Dmt7b(9FzrN%?;|)6^Q@W`9Kd=1_bE1jc~;Zm-A8EPo9WFJ z7?91)G%GHExtV5#1u!?$tf&CyW||2K#N14CLJxR-To z9Weo;_R_7sPcZ@6Rb(q7;GY@9m!6FK6cE4+;xiKuz|BIjdI^XJxG;m>LmP8r?o%)T zm4ONczQzK3wGgmh}@mThiC&`ZaAX=PNt^I?7LXH?k#sZLV|H=JLHZ7wf>$edy^-s6 z;Bl*DdL4M6JP+m@Da(VbFY$nWS&mN!;v(@r6rYaUCFp$;e9Dggrtmwxf$mJi@5*QS zKXVA4RSnG{c$Nb+hu~@NHizK3Fy;_E@q;-8Kg=A0A7u`~kHvac5PUlP_;>rAUk|q5 zx$MFAyE;3)JNsRon`Zp3)1!wmwY_Wy;+hb9kBZl1h$a{1)U$+67+-)^$rWWl5w|Bi3} zJ<81gw^8%|m+_V3v&P5M^S{G*{qdslVDv}o{a+h>YV@AbJ);{&uO3}8I(>A^X#dgn z%m7$48Vvt9{K@cZ!%q$0GrV_rBmMrD4$olS{{x0Q3^yFEG#s{nZhzK3(SC-R|M#^w zwXbO}Z_lFM|Fm|ucC&W%b~gR~zZ?8u@c7_k%mcV{aLwT5gA1Aaf8=1F!PbMd8I#*@ ze%Ji4`Ev8|=AF%5&9%)dnv0s}GW&m@W}9Z6W`0xE|55*_{!0Cc`d#(i^>y_tnFnxc zeN??~y=}d2y`ZkE-&a4XzEXXndRKLKbzSw!>SAjCM_2n*+g0mT3#+F8hyIWIU+sUA zFaIs0-~Uzp7xYi-A5GnVyZ(Cpg{=Jdhw{heSIbZG-M?k5`Twf&lJfNOm~#Je`*Qtq zQ8_67$hv=DqxS#a;@;xM;;Q1(;*8?h;(%g@VgqIYw7oy|e%kwb@6)~aGXMX^^wqyJ zd&l<o}+qd=AL;5d*1UQc=t2B3}Q` zgdMXAc@)4pI;-rj^HC|U{LCumVOr)^(Ml!{s+@;udG_`y=wTvx=c}ZLiR8@`^Im{_A-tmj&+nCLK1315z9EEB6b~> zVr9lYj_r4U*5|t(%lN+UT))5N@&fO(_Or`cYp;8?y_Px3eZCJfN4d`jV&*9K**(x4 zBA$3#GqYaIFEBGJ#=MQ0Su^IX&CIGXZ)NU9m(*=rn){izFb^_sZXRadEO9-` zys3F&=1t6W)~7DB+cq}y`QEILEBZHb^fwd6v`@orb5gLH{pJnL^lF$lFw+fSUf)c! z-@KlgX1{q|GtGYUY%|S%^DHwOG0!y9>^ILa)9g1-H`DAlPczf(H&0Ehw|!l`UA5*0BF;Jcv~N)Gi!Pt^t`Rd z511~dWZl;F@f23gYZcv%nZn9kn<=c!9W#ZMxiVAOm`gK-jkz#W*qG&e3KI$|vxE<$ z8ncWKqo(GyRK{;Z`KpY&$LrQGesqA{8pe;=ZnuW**{bs!Vcg_I+fUTf_JI3M7Sx z@AVZ(;_$sb;z=C7*GE5z!}rt0x;(zu<@4pxy%Iu8(5Az~_gaEBarjc*m$sE4d60|8id_R8u@V%CxP2u)Ei)jbj_h|{*6prt?-?Rj6VhcYlL7UjZ zPfP43w(!%Ew23YJv<7Wr3qP$vo7lpyS*+XlW8v3RGh6uew9HxfQDWX2!q0;aw`Soh zoOk|K37>ar;#3KMTjM{d7Qhef z@gGzT;D=)T2h{`kp&b7~6#;&z#(z*vfFC;JKd36e5B2yDstfSLAMZnz0e)zW-zc?# zbfY=xRU6=d>EpwSst)kOwDBKQAK-_Xc~ac1su1wQtnnXIBjAVG<3FfMzz^$=|DZYn zKdd+YgDM65u>SZDsul3V2I&W-64ioqqj|Jf)dCJ^jo+8*1^m!XKdAlx^n@>Y{l6z! z|8M!|1EaT&UOgHcoijR)6#&!&Fl|&0e=&S!_{HI4!+VAwWdFa{43`b(504)nG~9(X z0HzH~`T(98JT-WHuww8b=Ko(mxO8yt;Do`!gIx!kvkE}f|7HK#{!{%=^zZF|xc`p+ z4gJgd=k-tQzqr3!e~bPM)&clc@44QWdY|a6WcL3%dpENC-}$|hdWZCO?`_$e$w~nK z)%{-g%iSlsE4v?I{lA<3uj~K6o4x<8Y8Ex8H%B&mH*=c}*roLMtN{4U`m^o?Tb)QjrV>m%#E>$x%d{~v!c`v0cRt2&o-=CS_&ew`gU8>P|zpH$zjK3A=&?yPR9 z-c-G+x}-X*dTF(PwPUq0d;hf<|Nl<;`EqS}SNZ<(&E>U!vKGK5C3WcHXT^7mFBFfk z2H-!j2HUbbK57d7Qk-pE!s0! zLity%=UQKCeWG=5>%*;gv~FM(!1G!swqD%Yt+hpK2HU6nYQl3Qr2io!+!1o2tNO4H zi$gBdXr8}J9CD$)Yep`z3H4WV*oFGBIqX7x*Bo}CK5P!V(7Z8+U1;8z!!9&$%wZRr zH|DSl%^P#rh31XfcG2$VX4|Eqd1JO+8k#p|+ohp-W42uynm1w^xoB~dB%lr-*g+FF9z0|RBhlHY&XO>TN z^32i+%#yD@UN(VQ^3^Pvz%2P{mP=rkd^LwkSn|~@l@QL7uV$G9X31BxL;~}Pj9DIm zS>o1=M#StJX_iJ{_DwX)A~2f+nk5mKC0fmL2+U@IW+?<_v%u7Sb_WJY^}Yy}KM3Z7 z8y_xxz-&5amOWrLoiig3F`LerB@dWQ=ge{k%%*c@sRL%)9ka{rgILL zH()lMGfNvV`+AvW4VV>v&5{Pp3czNZA!dbOvz!4lx5zAIz^qVf-pI@fwdOfyR;V>^ zXl8|4N8bjHzIFt!?_hRu^Wp26*~QJgu9;oj%(Knx;%1&@W*0Z}Of$Qx+)5$371@`%u_me3cE@^C@##? zGPljs#VSZz{&RMnOovZ!a4YjV=63MyuP_&xuQ8XIuQpeiuQGQszua7BzS68+FLnLf zuP}ErUvBPYzRcXue5rYmd6{{bc`R`~%DmJ(G4m4hq|BF?CuhFcJSFpD^VH0X%+tg) zyl=mV=%nN=t~;8@y?r5}5Uac;ywKPVyuet1dh`Y9RL#^#soT#tPtKf;Upb|3593eD z;bD9>hfF!)_Aox1Lz=_*Yz}G8#?PFMpE(;pb2fhFZ2ZjG_?ffuGiT$A6*(ARrEb3c z5PmCj2)~^!;#@$_EbF5{DTrrY7SOZeOlv!YXP`|UD5%#f;C%7+=7 zH;422hQl1rXPUn`oX;mK=5RjK{>|Zh=DwT5`ONw@hx3{BZ4T!%>)Ra8XV$kloX@Op zb2y(_-{x>WEA*Me`7Fck=)n2PEipE7dnli|20lEL&s+m@D4)3o=1@L!4a_KC(ZyT? zb2y*52Ig=+a}CVl{PF9D^O;uU@Nhn}#LVG*W{H`@`OFeChx3_gVGidr6~i3PXR3xd zoKHg|4X)gd^A#Pf2oB}b8t~zvd?v1#L-|ZxF^BS*xMB|FGjYWn%4gz=Ih4=D6*J0D zxi51#pFwGdhx7SB%N)+<11)nnpAWRm;e0;OGKcf|K+7D?=L0QsIG+!+%;9`K&@zYf z`2fuv&gX+Ib2y(5w9MgrKF~6U^Jj=vR^fa_cTSB^J`-_#cqpHVIOb436LHKaU(v;! zKyx^sIf3SIK63)i;e2-VNMlpC+xgnTWBo&A89AS_AzlqBUzQ1!@j+EL)c#kqk@f$- zJ^I{e&FIe2Eu%M$JpcctqXSq0aI?|$QD^vHtpESj;ip*x@K)vkyncA~@S@>q!y|?- z8g4t>U^ry`|K|ta9DH{0U|I$64a@>qG&p^5)L`Gi4ug#cQwBx<7xVypss9A?0RFlE z_x;zi65vJs)A~pB_wLW_Z_pq1e&2h(_s!mCdk^+*>%F)42G#;x+&iOp6yN`E*W0i+ zVh4c#=>B{6-?|TX@94g-do!y6Ufeyido=R^c3>XBr0#^~C(XB;&oyhBJDXdYH#M(n zE@|d9$29vjJFo`;)BWn7)ZeZ@U$3q2s^4F~xxThuQlC{HTOY`JfScDdn0x%|&JWlF z@H6ZKa9igeJ8$F*fJ-`Ob&l&C*x9+WX=iGu_>(;VKUlrJy1u%!I=4E3Zvb|!Hjh03 zpDVvqexkgW6#(8*-cVjvo>!h&zBqjaFr(}gzbc+9zEpgoxVQLl@s8q#;@N<4&i0_7dB4wQDlCQ#M^ zyMah2l~RFnj{es5pSz?SuoEcbfR(F5cZF~$(NhP*Cv;0Q0h!@$Ro<4FBEvigYyF9JgMrIrw*8W3Dq_ZDtOo z!>=-TGr!#2%Y3D|pZN;&AoJzsVdl#c*Q3mrnkR}WZ0}s=!nR12gFD9vR&z zcb;yZk@+<9%p7H>=B$40w{-cJ`E+D;^C@Psy7^=?S>1e+nXGO;(M(o1pI|1dn~yh> z)y>D5$?E1~&6HH;mzuTyNV>mc%vygW@zIIX`Xh;tG9xyJ+w3)BGh=q5w?=GcxgADq zX2~5!Y-ZUVMr>y39Y$M!n-aBP^PLGJTD#X&f{=OX?o+r8;9-b$<&Ea{X+Z>)Jy0UEUm;XI_puG|#*ob7-Dp;mJ%-5CM!ES^~?O-oZW(WI$5<55u z#OsQX7O3>{A>=dk6%B$PBq8j z;dQDx=I}bz9CLV`YK|iruj_GgdWF`RHo7%_Szd=pGqc1FQy^}m?K$tj?9QQweOT@PXD0mnAHVL3_s9C@^pEQw*x$Lo>HlH(zxllrdI$G*?QPzh-mAL5WG8^9x{r5P zbU)O6d-sO4|KEw-7k78-Zqc35?KHoN{r^@rA8p>%+|*prEND({4sG^mwrXZIP5tZo z`}J4qPu8p00r1`RYwIiP3+hwqm(+XKTi3Ihvh=(BRhL{ z=5{vd46EN)&sX2%>;DI<+p2%8-dMe&T3nq`9aZg9ZC`CvO{yl8KjHiT&y{P+JIh6_5W#+y9Va_hQRpX2JZp_V?OfZa={ufFEtY zt9?`ZiuQu`$?ZeidyMY|@OVcv z<^ii>^UZZ#i3c1;sJsJ?0;L^rVxX)8P70KCz{!C)M>r)=&H<+eN;%-PKp6*|4pLw& zM>t6^zA1F0z*gL2_@*5gz9~T7T^%$vGlmg610x9WFMu)G7Z34|H(h#B57hj|#@F^72=-Z6)H zs?1@YPUbLAojJ@ie*G{{SK&%v%%j^=Kag%O#KX)KbBL#%ImARm2?rK`7?%4>Ntt;U8uO`F8P7O4vZ@ zhp4C{D#AX@LiJzUJ}jpiZ2Q#ALUlOy;qKUeCHOouvrrv=u9;b=zWRJ$J-({A`@2brn3`1TI;?d7OHz`?xoK74;Oue^CbGq1dPUo)?~c^@;= za8e0%_udhn`9<;fnfEgD`0MKf*SlY6W=7dF$BFkeGo#GBhnX2==H1QAC^PS7W=5HL zS2Hup%)6LpidAgvoF1Ro*unBTFA~LuSz?EIjmY7W~|il@}SD{N2pG0XNke`e_( z=F8JmG~5-w=Sx#__?|CK&Eb2#G&SRU{XH#FGsaKn7ZbgAq5SkNMsOIP8F4;5jL(cX za~Pi)apo{SGvdr)d}hR%!}!dIGl%h+5oZqL(=s-P@tG0l+Y94s{Ev6>E*YPvVR+FT z%4Y_e*~%v}gROkt#b7I+cQM$?=Uoi8@~Ke-qx=+mnZx-^H}&n|{FFK4@K8R}F?~B( z`8o1K`FvLF@KC-M>`_s3S16y)kR2Y%*8)B%Je02md=iK9wSZ4zDWB-k0zQf5d{_(k zBu4shTEHi2 zU=HcCUVu5I&vFP~UF7lqXFUJ^3!}$I_l!O`di&`5(WRqvSpndX(H^6%N9&II!`}^` zAAXZP03T!xfcFmHFuZ2CXn6YY$l>0@xx)>Iqro2r|1tR1;9uDV@QzsjZ^_`S!Al4G z4|e>kcRsUlh+2U!)gcMe(8H?Zx%QrNz0$3B|$1uEplXbZYp& zY(Lxn61@PcSPS6q+plY1-Coo_qkVLHKh^@=q&=-&wtmriruD_vW378yA8fsiUVvq- z`K{ww4RDv%_#Obc^&kHwldK3m@d_qgtw2x8qr8IV@Drcbo5N2OfadTM?~pnC#5-fg zPc0fa>%1-)KP7&BFn&t>hG6`Z_>IB%De=w0_$l$5g7H)0HwWXV#BT{kP>J6fjGz*~ zEf_&1etR&2O8l;11eN&RFb%d92rBg}CL6Aho~YF8VR->p$WCB8P;vqll?s)cz%o#3 z0;@oo3G4()Oki!iM_vM>5^;~T1csFFk(Iz+94sk;{XjVh90Z~yl@gIa_k@usV^f0N zlZ})aBPl~LF5vJ`5<9({LrFB(&7mZk>*i1r&2@7qiRQXFlvHO9C8dZUgWeNL>gMoJ zQZF+~(*5-_hm!_kV*MVRq{q#-8%km$dtW}3#76e!P!b#0n?p%_!C($0v5~zwl*C5% z=1>wF*_%<4Zg2eh;UqS)cX&97jqJ_gBsQ}5?c*ffevbXDq|BitMuGh2p(I9u%%LPk zfy|*KMuE(sBsyQrRuW%@!HPYUq|4`E8>ty6(<*VoNPN#>4kPhBhyOf`q%5z)vyn1q zBW2D;%AAdq`AA154Kttb2s0gL=EKbh(R^4$e&&~$={R%vp=Q31Fdt%O#=QB(W@gO$ zaSnEDK2--aYsxSc$(Ie^0@|-m6FIa=ZF;H008>^LutN z(~vXoY^Et@-pNcu&b*_U;cfE{iM73kd3!SxeazdL8QwO}H8Z?z-qy_Uw)q8ShPTbz zm>J%_?r4hcd$uO^cpRQa54RPe5If1Hhuboq{l<9qEga0osOjjX833c1s?H;3Hm$Vi_Z+#|UYNAXd@J#srpFTXxYxCgZh>E%y|*@gW;#4e=MKZW9T zA-((w(Ylac{)AXvNH2dvq@EN7D&yhwcuX@+7xS2AoGzv}%#72;^oE&nx|rTDGfo%N z8)nAoVtT{OvN}x0H%sd46&;aE%cXaa4jLaWzr#F!O7-OkUd-d0!|*(Q%AU(*c&cP`oYR*} z@ZffV@;kU^p!5#zA1J$nM+Qpn;IV;nJ9u26)D9jWD6@kn21@MU$$|1ZcuJtO4xSn) ztAk4ek-Bg!P*Mk%1R@D^_%*@UJn{9x*gWwKFmKp$*__L594MKClj7)bIoa6hDwh*H zF@i(oQT9ULwvSDM4+lqKeH zIc1GGTuxbJ4wutyXbzWS8*{iE+nB@Uxd2}tF2^t;>^Qwo(hTQ z8sGAeIGreIeZ=KRTty|t>;z>&9InTp&%(o5I2^9&quA~b8rH<&NqQcqmBRUB3YIi% zD}#d+Bnc&Okk85{xc&e2|IPUScZQ!&>;M1d`2VKEsl#IMbJhTSa`5Q?*#B>@!M1}9 z1|#EGS|r~X^|*Y%h7&+Z@FKcK%8t^X(cdNHx{(qRCO zGe%Obqg&S;N}^lW97>{F*BnZsTh|;)qFeXrFLU{OQIalSMX;0vGJ@g51rf~lUkZ0xD&x)DbmI{B`ihS zn8Q+}&Dv8bPVdE1sW@G*n=UO!ak5rnl%l|PpbP~Tff5v02Fg!h6^Ndk=N9ayL<&2R zgUzxNk3kMLOHVL4*epN!G0hSb%yXG#D46FmOHnY-WtOAh^eDQ%Bn6Y_{AgH;+e5xS z+>+8pZwq!)v>>SzEzWSEsGR?#s1z*@m7!9!7!j1C#TbUFB7I~i-B-J~>?Ylp6a`Z& zFz;m6a~z`Z9nHks&DSY~c7VB9#_f&m2;I(D1kN>zT<44qw+y@nfECruZ?>GE@9G31<3n6z4kK3?-6VeSd~>nUccTIR{-I`br-P5C(Ghlyt8<3p4mM!uP{{j1qJ-O#~! z&O9*VIdk8P=gd7bo-=pNc+T9I@tnCf<2iH3jAzZ2nc+)wX=eD+T$mZY{MBsTe%rU- zji+xpn89PmMp&J}V>4D))?x5C@ruwogU9C3I)le^PvG<`(7Fnth|CpXb!rbjJgnZ% z99AzfhtSY4N|GF$6)Cv#|>CP7N<6`^&S1m@5>Io%vuC+A)NSyFFBXq}vP{b$KK zE6{o>g)X~E4--;v@tO#cx=SIWq@GG4qnr+waj=vQR)I1)*a?)-!8%Yr2b)0Y9P9?l z=3p-nnY)}%FYk(QIpvi(T+YjG4wv(Cn{m0Kl$YBaGN+t3hs=4o%^`DMZga?-_rn}A z=lyUzAamVblr1a5<-DvuJY3GpY7Uo^g642JDQM0v&nXrz=W1npD`V$U49Nv&tglIya8%+&Hdt zrTo<0W*M zb-K+mI?OuVsolN;rKj8;!BRTG%(n31ayrax3$vsSGuy%}tHaE;FiYz&vn$NF~S5Ct3e*#qh(! zcMfkFUdbK+r!xM(&v5(UoZ+Nli!T749(<7%0Ph`qbnvdhO@k{23kD|-4rL#Jtp~FQ z-TrU-Kk9#@|JnXS{X6=%^xsSmz*v8N{{+?m+?|~OX0rp}Z+kyx1%Q9;J>0vq_x|2n zdavm%>z&J20549f0RFWZ09SMubWiRc+TEkORd-gmX@1>&zxhh@$!1l21#o3^L32v; zl4j2|{@<&AQ~$93TK(zzzWQVJ-`9Uvzr4P%ep!83{la>idfoU6;OndaaDV6Ho%eKJ z*SV^*uybnXaC!h<&{?n3uYOzosQP;Knd*M_0DMpNy6UQGVRdSCc(qscf@;10(f)sZ zc{T0-)5;^tz00}f2Ia8$eerzp&Em7ggT-yddy6*|*A$D3Gm4{%eb@(Z!(!C_L;FA4 z-)jGB`=R#j?SE{)vHgnnVn+XuYVXtDo}Bv`tjyTO~(wh zb^^PB$jL=?strMv$=T*XfG=5Q4|&zr+l>^yG{SF!WFUkF^K$H}P^s-mUg!$Vc5aPCt|txy#% zF^8&f&D^Jyi$hi23G1rccU7p0SsCU~6}`shP!(TmnnP90N;QY7n3ZY{Rk4b?IaI|e z>gG@ttEihpRji_J4pp(5iaAupc3S38729c$=O9W%3H60dxPnOQOBYs}1wF<)(FR*d;7 zGqYmMFEs_)3TlT7EJKVBYHQQ|2GyWZH z*)#qfY}sqoRUeP+b$%AOGoyPk%Z{4mdzfWM%@V!}lgu(c%(9~nm-1nj9W~4O@Qloo zK0GtCtPju1EbYUy#Y!H$ucAH5rj>YK!898jjQCSMAW+^XG1rTWhxVuBw3hY>UN?fn z`coB5#b+hfPYo=eTF&R-d?Qjmm@h2jgGF3e!UxMh`5vqSrF*awDBFW|pkxm=fpR@a zKT(PRsUD;sC!tIa_5&q)a1bcZgTp{HFB}C*^WellSst7eD9MA91Lb&dN}v=EP7Rdd z!D)dKJUBg2eg|g+O7GyzK-nFf6)3rbvq5aTGTcs8DOKfG;&!FDde>ETTN!evs+4Mx zDp9gIW|URR!Zk!+k-SKWpl6yl+3|0P%a0nK&c$;1j^)K z9Vn55O`tpub_3CPdQ}6lxG=|aNSsEE(;+0z_mk$3IE@r@NSxj%M+g$v=`_Zw_zH*9 zCNhV^X%m^l;k1d&;c(hS=5RQdGvjb&8*axO66bc!A@T9+hs5~~%;6z%z5_Fd#Q9eB z)9+LJ|N9f3{$u<9&e8ivZ(;raWq&gNe?8{^|91GJ;n#v4`v-3syn3*V9RN-m95UE_u;pOppzi-y>;t&E|FQmi zSpV;u{^I_b{bTz3GXr3={`7v;`(^Lh-c!BDdnb<>pL+`TQdA$>(_5YW90KBt% zWA}1e|EF{h>+aRvw!40J*!;eEzWG-3Z>#`#SMyKJTbt{fOPT+F0y_cj+HAqbot^qu z^>g)?>L==z^+)P=u?oP;>x=3$>Z9s?nE$^~J(-VIf8Kef^AvjluIzlY^X~sc55PBA z2jHRV4)y_fb9G%cR-IEFR~=aGTy4f0fE{)N{6YEE@>AvN@}J9hm#;0aEH5ZeDPL0V zS#Dj28FE1`EPAv{E_9|XbtXK5gzit1h{dIOQxxamD z`@Qr5ys~{s`>gh{?E~Apv^QrbfcmfO2YA8%+z&AN0Qe83!+p3)?*mgl-X;uJu_Qo3 zxr$Jh1V|XFVo896QWc>r36Ky|37IUIFjU24!Gx&FZ`yTlqcpe=Ri)D4Y0aa$Po^R# z(^UM-9b&19qJyUDTdx<(RfN;DbhuarSVdqMs|*ZdRe@owPGA_T4h&;8fnls}U>K_x z7{=-cVl2n6VDg2`a!P#1j>@1CjKL0yWye0kKR!x{GQ;kZl8u!mXpf*JNOOJ6X<9%lIqX5h*! zfx(#4EQ7(Mj$=m(gU7Eghrx)%$4g=`!y0B;3}#rvjK*LMYnbtv!kIa34v{f)+8iQd z=JdN~D!(H#<@X7@zC)2AjX|wIEGBFR%3@#b!c2xWUv4JDnlCexVa=DC$*|^SW-{!jo+E`;k2!@L zORJX>%9BQ+h7Z?Y>+sX#@XV*h;h9f0^I4>if0>!jBF(3mSwGjOKiQ`* zBKRZ+({Jg+Pc+kSX+FVBzoq$jGyRt4#JJpC{Zc|x%BNy(6dThSzc!+Z#sN`=)3Tvt{hpkHpB&TaR)@(aW)722j-JES zVRA~sH>x7H8k2K76l5oCp!XJ$r>c?z<#7@=A1jT6?f6q!94rDQaj*=O!@(+03I{uZ zGB{WVO5k7VFD6sQCZeN(ubv%d3fO5f>ZX<%Y?*qgH5hljl>+s$Eb%64s$*FyvhahP<1=kaz6_UlsE1f~4Up~pO5bV_@Uw3hu04; z9iBHlX?W;x&*3)o01Vgx;6DccKKMLq04^VVkUaoz7@q;K$6%{81K_{=Kj?q8|Ed0c z{g3zmq5p>dEBY7r=k;I8Hvqe&9sunE_`Tj&dY|gu*ZX+d1K^t8qTcDfBYS)I=Jqz| zje6^Jf71O<_Y2)eyZ5jT;5+C8xUzde_hs|}ys*1XcinEU`Aze~=4;KToBNuNHGj`O zfG=+@Y))+sZ}w`oZPsTWz(3UgnRWqqgs%WTSiil#p}xFcz)FCJ)qB<3)*G;*^E#{n z@ZHWAI*)XgcRtv8d*_CZzXNzlXV1>oopn2d>UY(Tt8Y~QQaw=JTKz-y`s(WHqUyBj zi0Vbvw$=L8p!{9=|cR6RQABVIIKGTHkGb zq4h}XZq@>POY6GU($?9nV_OHbc4}=B`v5%qXFUK9$adt;sm0pU$-56ocHp!?T<4N> z?dfEx2SRm}q-Ip7EQ1`(;X10x=5QTFsX1InQECp?QIwi-UCM%)Lw3Ab4iDK;l$t|! zRFlmiJKA;TkR4;p=8zp<;+aEse2Hha>}tNmGb20hr{+sMGqw}6HoIBAgISy1EaAbd z&A#?@iirm>UMeO&{z}E3ghy;C_6}5BW4wsmgke0Q{y-fq<8d@``H>rSbSSS=-2Zc7 zD6a-}B`HsZjE|M^p!}y29@vi1@Ldro-w|2{N_SutDBFRZK*4<9bw!DJ7!d7|%-iphCk83`!m zfkmK<2ev`odkAkz6yEoT@TO)C;Z4gN!keBsgf}B|2ybTQ5ZH_9yU!5e3m_~1=4%Y5*rnWa8>v&?cIym{u3 z-xirIzh=wKA-}CMhy1qAe7?`OjhOfA{`2DfN=bSDxrCBfEhpCf^L;SIQpyPTpJS$2 zGM{axSV|e={9wU8%Kes87Bswn%)3%PpiIJJj7{LtMh0b4=uyUA;E~3D;1R|_;Niw$;92UPn zdz&B4|;y{RV4F@h<#5>>ECP|Yund&F!K!$6Q@vWqn<&*7!rJ4+ zvNx=%Nn-1}R@Ef2^i8;`CW+;5SXGn62wbeHNn$A+R@Ef291g2$a-8A_iKjSvc2nJY zIK0Kp3B%#-z;JjG7!EH3akw6=1L{G-;aD;CG2JhR6I{p9C|pUWE9qz%9OUR{H`Q&S z@N`>my@+@0d^Yflhq_sQHmORF$S++aIU-Uf?6X&Wp9Wo@tmbz-EQ zPQ3Owomk2yP!B1Tu|bOagc3GLai37W1}W|nO4lI8eL~q9q_|HgS%Vb!3FT^#;y$5N z4N}}E#MG{|rMSK?M6F7);{Lu6wVD`-L)2tA|2d*|e)Lcto>tQF=VqB2=FiQcYFEO^bNs%x#O;RKbO_LM}L(?S18M-W*PM7tdY*<>KXXq}%(kut? zHjn=^|NkeW?~J}MdX)A5J~VpA=*H0%wEs^X9WmN_wB2aVXws-P{Mqp7;TMOG5APj* zgf9SY99}*=pZ5PD!`+8l4rdOV!G8~aIQV+n0q}NK0K9qd%E85hGY3br1K{?9jRunk zZT0|orvDT>0IuwRr2o$Tjs45}=l4(QAHw|qE&DV3b??7=-;4GCKH7VC@9%n7^)90I ze^hVZ-VVKudsBNQy8t}b{W2>6uI_%U`=0LWyVrCVchBs;w7Y+I$L_}6$=!DIv*x?a z7n(yakvhyfy{||KD z+Ie+ntaDD<0dSYj=A9Xxy83nXgX(L10q{WD2jJ%M6#)0IcC0q8CReTUr{#Cb&zEb< zyUO>MZ!WJbmzL+S0^q^y0k~y3i}C;86hA7y!8ZU86?YW3(E7iw7%S!%#}@|`yA+#^ zuL1Z}`|DE1~ZY{EUCftl$vEVxSwN3T7&61b-26+({pN;*kF22%`%(*KC{#Y({t)@yG=c( zX1h&2r)IlNJ*Q^7O+BaPa2q|RX56Op({pMLxzTg#=tFLbzQVx|hT9nYNQXZdZewu7 zY`1Cf#Ejc?dIne0=^hNb#n~SWyXowt)q`QTGBE5`1%}-^f!HnO(!kJL6Bv5y28P~x zfuXm4VCZcS7Fp|?qa=uLMuIZ%27rv%Dw;M73mrpV2ah1(QajD$Jz zEH{mWnJqVsgqcHbjD(pbH~yZ9zh>DDW+coky}^uxndLWl{Q43c+{%e9!@-O-`FJS~ zW~|AKcI`C*?zV1=RZiF6b>;)cS><1nmDF`YC4kMH& zVr<&{5;J4d=0nXz=0nV7<`+^M2-uIR*AL z4>Rv$X7tc0xVM=V5zQ|$GYo9r%gm^;`GsaC0hsqRj~5?%n3)vd@ZHTUw`tzZ%mS0< zUCk^oY2L*=%)GOClzAuf#LPRICuQEjJUR3B<|&!CGfx#OQl-S{knPql(QhX-zpw!M=)Ga>nGUeuM_PTZL17ew-!`c1P9BOCxOS9F^ z`pK}~XVji*pC5Rc;!g3g`)v;C|oVB)GHqfSBoogC|s@M#8NotQ|mdg91g2>omdiw)%s2>i^Gbx z#L_sdo|DA#I88S7oFtaWVfCCOmdRoDoFtaYVfCCOmdj!FoE%7+J%G$pnl1Va>H9#q zyj2*(cF9XBnRUj^xt#iD|Dv9W6eyWS*kM zD3^mx94wWC-9VWf>;+2XU_VeE2M3_CC>l?Rllmbaki-ep+&?9b91fQ8xKcP+1j^uG zJ5T~of9trBzd<^{Q)EcrARXWdWp9uU@Pv{#NC)`oYX3hw;fuNb@Ad!RHhK;7|L2d6 zA00H>WwhC7+Nd11|JGmAzpMX#zW%?qzodT_WB>cJ`v1oL$^BOEr@im?zR-K5 zcX#if`1b$0-qPOLy<>X^^mgiP(wow2cYoG>y89#}|I51{=)Sf4>h4(gobGYm1G_tS zH|Ev#vi@cLZ2eUIc$)kF&iY2i z{m-vYst>7mueYpc)^+E z4~nlApDI=t|IEDq*A-V6i}?2c=wiQO$6}LWD&Kqmvi%%80DiK)y8W^Cd)lvWU&Gh` zXEN%)KcoJew%MMSum7KJJ=uD+wY>EKb^v^JYpiun>$ui|t)2h4_CJY<9M(um6iT#~ z(~=!)WF?r^vRPV!`F74MFTpd)V2KIlTe=x@$((C2lghw$1j|eyt!e+c)TH3d;U-$s z4i7icnl^`)IS{%GZB5+(c{I;o&A))8=p!t!Z<(i58MM+(Zk? z9B!h8Wwx8t0!xqou-wEelTm5{b#@}>VVMam0wpF;QK?Y8B&-5MOr5|GQymy$(n>4( z+YnPXFvQdgL`*t!KTu)<2Z8buI1H4Qz)_&A1WpW;l)y=WauPT>P)Y))1cs5O28NNQ z1b+emB;8EhjpGcwyq&CJX;QZp;Fj6|-VEmmrwB)uf@4m~U-=_Sc5C+Q{0EGfaX z8hm@QlKwoiv;@;?aJak#(`qnFOfanmv&;mKUtem1X*D=pZh~nwm?bBeR)ZNkiD~qi z!VNeZSLz${C_bOV^BDR^3Dc?zDM`Gpal zqkm5`jX3}P9%j10%)6Uu^qF@v(CTN%{!Qx zOlaQT%w$6IcIH``=bC4Wm3_8#_Q|*V0teG8<3HcVOs|Z2Ycstv=B>=M;muo`X|tQR zFwrLjm)&!&2!AO+07f8X|tO*Fwfzb0Ou5PX@GSo|3)eg$0X{s_JW@xIc!qgm zbR0cAJ>Jy_p5|cI?eO7K&8)g&o?^z*=E-JOZ81+Wv#N`EqM1pT=8>66m*$~4bzJH8 z24>dfad_X%x;*BdnRR%~;rC&5@H`xTXL~w_hu_)0&K!Pcd%M&X_Aq`|QKgPDT^_yb zRpXmgbNF3bkf!kPJ5v+Q;dj1SHHY8%X4M>iXAWxOhr;iCvuX~%=j%Tde%BVHy52+K z_hF>oL*aK;U2%B!d*<*vtF|~i{6109!>jcWeoxhx2oAloWtI<@-g$hs%reXGFyDrl zC3u)`L(DQf%(o$CDIV@*mgC_%vm_650Us~R!`;l%JlxAH&%^!95Z5(JcGFE9-e(nSKaRXlm4da=(>Rs153=V(LRlYV z&xwSRKFFRE3FUl{ouv~>`5-$>CzSC)c9u>k;e+ffoeg$=I}iYWOMj_{QBX08psY0-_xOD4&T$EVh-Qap<)i- z)1hJx-_xOD4&Q6PiuAnUd+k?|IDF46S#$WFS+eHvJ+ovTeeylA$yOmLHl=%zeMQpQ z!uG?Q$g(}bd{~@xp7y_z<#BJqwOnsh+sY5iiq&4EU#rm*_!020zN}|0nAkaeWAF0b`Mr~Rhp_kG*1dIm zJy!q!VfSm@Pj~NQx1fD z>doqDY)AbIzWo1U=dsQ`%=&*@=QW*Wo%x*;ItO=lW#oT)r&Il^dan9X^@-}<>ciDL zsvE1ztMjXqSo?qX|3~}(h2;y%^;!Gx55<2n>;Ln`BgOLKgY5lxLveYrpg5&Cj4%J^ z790H8>VJ2%-`Bpm{VKlv*R22j+52x}R{v|Ye%kuZU!C>8b8FKUui1p3Pk4I5lVtz3 z;{qzy`-XU2K*8ez3LY0w@VJ12#{~oq3~x~rA#=d zm18=bQ_YB|4d*aW;Dit7lsP<{!@z;V!#NBbn8P^?9GJs7^r)M|IpY~CoWp>S!^1fY z7@5O43@DkyIRmkB2F_7Foffx`a#B9cEa@npW|no}GPAS;SD808cf>mVCO-Z2IQ_;B zZe`xc+|E45Tx8zRTxQ-zFJ@@G4^m3fxAoq49Y$UGyC56P~b z?$ZgC7p6IQden{9PBpWzUux{GonmJDO!H(j+h>|5nb|(mJkiYSVjh{2f+Xvj%RuGvd>@yZ*(EhS$C_nk_T4m(nb~*K_qo)$M18|L z-I55-d`bLy=FmDjP5SuIIy+68L+k7`X%4Nk)1*1H&Q6o&(0b~d*7ec49*3PK9Ufk1 zr%7{oot-Al;dS;2HHX)SnZxU&%;EKknZxUoGKbeEXAZAV$&A-^e^WDC?9H^y7JD;2 zv&G)b$ZWAUGc#N4&8*B8dox?C)DE%d)RNfADOKbJc^#}HFND^o#VfuBt?Oo|DJLm% z!|QyUVGgfTZ7}2Y6#1D$?0lTz@DMv6XP86me4JqpvGZ|;ImFJ#8D_+;^Yd|r*=A>k zU@&G^IQwWiTyBS_WR~1v#-aQwV0Y;tzZqe7y;XWz*_}|Tgl6d-rb=j*-_u_QOYksN zLWj%nFjYdc6c1A+G|TZYRYJ2Q52xGF^<{aODxt%rd6*5<%<{Y%V3{R)m`&atF4Mzo z@@|&u`FlRKG0XKZpW>K9_DuFShwQ23IkqHwGD|m5t_OR8Qaz{wO8HKv2M2+OUNNl_ zN{<$vr{BSB&+B_fvpuix9nJQm5Iy}4W<;;^)9+vo)6?%@4%5@`U=GvM?_dto)9+vo)6?%@4%5>ha%^IH zMPE)CM6b(JJ@?^ZdaCE_RY9&+JQcsGixE=1_ee z)mjs(XR55jL-kChHHYe%YHJSFGZohys%K)gIaJTYYICTbiPh#%Jrk>E%vJmUyA!_o zzit1o9o{wk%l-d08BQ6tWA*>X2KVso|Jw%F4=!c(zyEjp|KR?v{Vn=4`ug(!x!#w0 zpXlA&`*80af3o)9ZoMsfGkTrwue#r3=KmAjmEDhYz4qVv-IKb9ba(G=*`3*~oBwLQ z*L=BoqFLE|q`4pgFlYwArKCs+q;M+`q2BUw@_kWWB2XC@cTnRA0eY|0man z)_c@j)wAlR^Xty{J74L1va^bH|K8R4>!bf)tv*$)uKu}tclFxp%IbpZl~wer({vh&}<^3?M1axYr{>y`cDx6Jzgdhwa!{^H}sdl>z{s#sW@Rvb~h zsMxkxzZkTC*Zy()8|{B-Kfo9N|G?P))$NPgr?ro0zo@-!d;RvH^}E)OTiJ{3A?VVPm(u*@iPSf(nA(ZA^UuncW)b6AFg-5i#o?Q9Oq^fHHK`kAqe-mXDr zX-4I8W_zX{i77fC#WQ}{_diCr6Pn>=H-~0;+0CIDifMCbhGN_tnxU9Chi1@#IW&XR z&7m0z8?!Z|CEm=|jFxyaTQgeX%^aFR>gLc4Qa6WYkh(cEgVfE^4AF(u&GHP4)XfqN zjMU9C4NTXDlLOU=>H09+HTA@t+~FF!N*r$2)RS_!T~kjMD>-nDD+xY4R70)69IByK zU=G#LQDhF)kbBLc8gj2WR737Hhia%5m_s$x3e2GzY6a#{4YdMusD@gBIaEWfz#OWf zR$va*Fh*%cHHtpQD9z!TNtwenlQV~FreqG+OwAmwnU*i}J#}O~8mb|8r;e;gQ4Oc#-A()YJQ}89#5r|nJQ}89R*gAK!~6?#n1=Zm z<}eNOFU;MDoy?7y0eOelX1-A|cgzgPn=3N|^5)XafV{adGa#SVSAVn}nJf zhfgpwfNoyL%zT2xkG#UnfV%k_GXv`8tIZ6ko3Ao6pl*J-IrV>07CmyMnE`c&UtwlI z-F&&30d@0bW(L&Fmzo(+H!m|Ypl%*BGoWr>YGy#)yu{2TDf1;}CQ+F$HmB}8-S1*E zldv4V$jqcD^F?MRO_>*(nN(%I(9EPO^95!qM&<=(Dn{n>&8at0*FVop#mM33nyDC> z=bNb*na?p(F*2WRreb71%S^?{JkLzU$b6=mijnyYGjr(7r<<8WXFknL#m{`InK^al zmzkMEm$Ks{r#L(2=selM%%St)Cz+W;XFk!)96Iv}X6DeDk2f=i&U~DiIdtYQKhs~# zVSZ*mnX~z$FnA=)PvhC)VgA%XtKdVqFh89G<}g2<1LiP4odf1DKb-^SFh89G z<}g2<1LiP4odaf@zoB!$Z1XpC4wx~&%3eAL%%Ofd2ORyVUu9){1Mx_he_D=?Fh5;0 z{_`+DT{q@1KV3WKFh5;C<}g1!c;+xaJ$U9YKRtNnF#q`dg!$>gb9k7a9z1iHpB_AO zn4cazbC{nVJad?zz8-U!pS~b-n4i8Pb2fiwn_rXT9DSHSsU{A$_%*rBe{S(>a+?|P zD>azhW)AZ+xy>BrXL6f4%+KUDbC{pWZRRk48a+^M4D&O&&Ea8wCbyZx{7h~$hxwV@ zW)AZ+xy>BrXL6f4%+KUDbC{pWZRRjPliSQ;ekQk>!~9HcGl%(^+-45*Gr7&ti}@A3 zIrc;Rt;`|*c4ow%qBnCke=chC1!~4|Y%;9}%apv$owK#KlpIV$bygz>Z@IJLT z-yYuA?d7LI`+AzTm`c(k@;(ngEgn8=KOY|2FN4>H_N&aH{Z8i4J|8l8m?X5HFTXal z-_7Bn{a)tKem`?)e~>w}Kg=B3A7u{hPs|+JrwNi`Yi($sCW<++%0v25%Z%I~W_BGdON=;9%#$rh}=2 zf^Ywy?myXow7 z{{J350Ds*3@9KI{eR_Rly>~sAb^nH)-*=wxe6#bforgNNcmA>S#?C7`i#um@j_T~w z*{-u;XH@;6`j6^c)xTB`v-1D@s++4KDZ`#TSdmiSWPu^S2oITMYdFi~;=rxE)g;sl{|C z2jspEaWxIfd~|b2x?pOtTzA zI0KktUt^lY<4DHyv0A!0DTbS4WJvg!3) zD7k5e6G|!| zvnmtHDIl{d6RIT%GOIG78j>KhDif+52{NlvN%dGXBdNHisC+D%kyLEW7jigJOU2iG zftiZ&*w+-B3v%To^=LhIzJsZpn9nm)IWeDWrgCDQZ>Dl$KF3Vu#C*1y%8B_bGnEtb zJTu8>KGRI)#C(RCE++HoX1bWnr+PtHh}`6XuJ_VDRC{?NoVaeMf5 zo$Zi#>r!vlV=wll^v8;rgN@PG_1Hnim@@X*fyS89_1FQ%D*kqVV<&JwV;#7!u?gJA z*bUs<36h`TMTDw$nr~|_AKjYZD0rcR8NBl&?`dZ6&b)`2!8`NrW(M!fyO|lhGw*7q z>@n|RX7J9uvzfs=^G;?4@60=z8N72W?%=1%DHN?n`qzDUv>NGOH`8j=)ADvW#iH5B z+hdMqBX5^^8z0ZxcldNA+SV}HrA_Pzw=x!iTN=y2EsRy*<`MCrGRtO!aw~j2X5Q3H zcb0h*Gu>I{jm>mtnKv@io#lI(6EP9N8#d8V1ZS@R4totft8W;!p;)68^U`t(!d^bzk<989U{beL?W)HF{r zQ)-%{#Ym}XjuzvL7*}|V7Na72dgf>{G8w|9mYa+GRx^a4s$2=KZb(pQKYU-QDTq;r>p&%$57;Su$5U-hufKD zb-2hZt;1zzc^$4YOYCqbv&;_HnWc7k{Q7b`+|A*VJKW1GyTkp=(!0X*5Tg99zt0?k zrwnjpgy1Oy%prKnj5Js7(GWbN6lMgk^I-*Z7@h{LISfyO*BpkYL2M4gtG=bVc#nqR z>D@4g;Te-Nhv6B6Gu!YrV{m30zGe*0Y{S=#!I^FNnlU)D4PP?`XAZ+N24@b#lR3;` zc-|Fr7@l{@jNyrons+VD=YJH%yLZOX8HVRoHizMPmCa#zUgcTatNmZr2d^{y$l#y* zw>978|NiZtzs11cV&HEv@V6NFTMYay2L2WU|BD#7ZsyIaC->Lc@YP$qYTcdIS$Bu_ z*w~Ic@4DMgyY0CDlEsTJTzJKzIY%y7G=E$DYtDkDbLK6YGk?+2`4^qFaQ>XL7hg30 zoGa$cJ8SW>u{rbRjLlm(f6>_dbGAKe+1R#c&s#G8+$Hnp&pBuQ*!;7{7F;_21srnL z72A%TKY!b^IP;u~7cX3JHYb^P@z}fti#YK)a|m0oWX{D)=AXS_(b;31f8oOU^Uhl~ zf9c#gC!W86E1orP>HKr%a5P8Gxoq*03ol+c?`+Qe*Y9=F;;}hP=FeNWFyEv8>Vm~* z&H2tN-!f;x*cLoZx^?}0(R|;+WjxcOIcLp3e}V6ZOP+Jy{JH0kja|HS&+WEbIyP@? z!P#@iF1={pmGkEk0oyIRc;VuC=PccB!A0}Vo4<5BVr0Rxi_W-s@shD6^A?P4x5JLR zZ@1HqJ8Zwpj&m=#_`Dsr-(jb1x8Gyi9d?_u{q}pN|GjkCqD2c9o%cVVpjdzMYYu+n z6I~MLrYR|LHX?C$*nQVscH4RT{YZwTV_cK?p0o4zb1qu2aN&Z*i{|Wi(flO~&Yrhu z>74WDT{?fxysVKITQH`(SjtVz zUpnX9`SZq>E#cw*Kla`{KCbkt^H!-!OD&SR+wFF{-ELL2+bz58l4@Vvi(8v**^)QO zOS?PEt*Tp6S*0qu7Rlu#B%SUgKmw^iAPWQ-1{lDWWMEh_2?>D=zsS;bI)_0^PJx~&%GyDN2|eVQQfeD2CEhB z*QhQ#7h5-~Gfa%+3KPx{s>*a~GNP^H%?Xj`V(i#TzGf8pPv&Y>Y$&+UoEMX-FYq)a zW+*tvBQj}=3+i0+up6(q=%RjR9)rcvWr7)ou)P?J@!Hdo9F%CN87GFxUNzn~Tj+FW2*)mm_Y zDXTA*D*q0Xj;2Op*+@E)woN(~jznL?q&LUm{)F$@)i?jt45s{S>Dis}jva9^A38JZmmDbGV7%c&X6}){UYWEY_+^N?YbisT?d; zYk8)YC(l(I3+ngfg;t#3jVAxaJeCXfZ~mzhv5{yb6-&f7A370^CT^|c z$x6X2h_y|d^CtGlkkli&|HprOw)N)r9rEn2P|J8wE#r7L9#0GZ`Kq`UuG#p8UW2swOu)W!>=W>7Oj@QmU|K1^<{<+81%TwOPmCA31eV90m{x!RPzm1jjX;#ty#x5 zD^>BP2OY%4|MxWThWp?0v2mQ(n?}Wn?UG0=p3J7R(U`cpv(=VSt}AC#2`=E!!sRME zx8=n0_yk-FJAwo##S+1AwIbfAS}<#sV8LhwYjQnt08w0PIC!RM5`rExiKcPjII9z~ z7tEHH5J03Ro8zs>0+CI&O}u-)Y}DC9V4tt4fC7ib(5(IQV33$x{WnewHwwQHtvljL z%O!SJT-Z`GzYr{xibdNOO5}nYl^|2Xb%Gr07S@GaQ72YI6u}X}kBlsD;Gl!~1*2+l z5&$k$OJyrk;t7meexW|ZPM0$!Vr|w@K$AV+tQ`!VCRSuOuLmayS}Rq4S;i5w(-BHm z3usHWd+RBP&Z?yXQITv4hBf|T6GzOG)y=C1(S38i4&*=|#A3`!voaqRuTB6&Kv7+m zV74Z*hfy_BC4S7+2qHE|5}Ym>O9!nz1fbE%Ra@3Zpu$OYJEO2-R2oG7a^svS6D6Ux ztzRyxn1VBwssydvcfKT1WzHZfD_3jWdP<=XYy5IIz}4kys~#jKC%RD~TUj359$7FP zR*$3tRkSUWi1y`{P$VQh$Sy~8H?PJ{RB*K+aH%XoH2kFsk5{rSL0vZ-JY8Mo228%h ztgQyXXa1lFCeVjw!_nl61sT@L^DO+@TbA1Yu!jZuA7-B2&H{Z@7HA@wOhhtMm0&cTP0BL~9wpSM z$b2!G*j}lg7o)(wiIhNWm3ek{;_C2{Q4s7Z3(bn@EzCJz11_nhe9Bl1PSu&<0%($p z2`B3I>uk-kq!~F9Mth<4X?@bZd#S4{yJ*oVHOPBx~%d- zRZt&Ms`zs}enTntVDM}yzo?#T24iRirwufPb%9UhnapOTt8TIB8 z2@tgejNrVnWQN&^Sktv(R^94Bk{D=5c{ebyxy*icP|Y`EF5~~$4%mRW4W_)rzKkoC zl!5Gv!1b_`WU*{k%oTN!E@}|^x0t;mmZ3I&rCXU2>sI(ov4wI;JgoYOE#E`~;!}_= zYl9!c=(#pe)&f;m*_-N%*4CvK656qC!QNY(1Ol^OXW5GTkZg~#I+TT$H?^s3iM>l~ zuP%nD@)asErq-??7&Ya_WhM=;&l0d)jIszE94Qo>3vc*<=m|=go%FA+sxECS%cHMe?8%tj967 zl104ULTQ-`qLJ{$V10q))|MD1$Hb_;-QI=Jm&mDtk6G>I;0zvu^-yXIf6c>^Gm`L( zxy^BtT9e>Mg+;ZN_!Pmm;`EeC8b*Fm7FUTISJW@_RvN0g%y0NsGmq)YP9yT1n9TAz zG8xJdIp(Wo2BRb3l^6)65ql^rRL~tZR3gUyLUqW0-Fg;#y{M~j{%UQgjE9O|PZIzv8!Cq>!xVoYT2OJ- ziiGk@-+V?XJrYePlPNpMNk|ec@}fb`i|h`b%pSr2?(U-oLTd#D zU^`nSsRY)oQa`U>B7_aquY7OM^;nNis^-#w@jARp2WeBnXx$uU0D+ zL8Jg0C2@+HVolQUqqQX`W+u`Fn~{sR%01)YHVQ-wL}-Gwts78M1^pN{>QZSYLFyo1 ziEVN!6sBZoa65t`tL7{8Wyyt**pc*+N-q%_QGb(11=CtVG62XfIZ2#CHo&Z@+R`^4 z2v7L>xKks}sDfJNYZD$yck*amJEotXf9tmoGi`5pnVL4Ks-%*Ucr1}1FgtIM zT~dJ)K_(+4fB_cg%*Lw3J-`^|fN2#3S6WuNA$jQZ^jbHlTs z8<_>E!4t4Cmt;EY$mJriO+$1+c*hiM$*?V#%2k1jHkM=Nm{2shB>75IN3>1^s-UM; z7iO+yECnn^B6$X@@-GCOVvbfuwOJ`vspW}1$`ss6hLR2>sVK-FN)dFtK&EX`*$atR zg98L)B`kSjs~~U*=_Lea&>~4ywJBSZ%aNps8oGTGdA5UFtG1*;By%JZNDT@ALx_`y zP|q+g^oroaky|Ra!)HYYR5&>V$sHJEFf1f4X+s48&3Yc>2$Ci1v@G&xrbZ=mKyHEL z;WwRMi^h^v@hCqg?btIN25&^NUu$p5jJiC-Z@lw+-b(Vj@2$I@-9c_`(tXNKX;FDb zZR%hEYsATKjn#~6C30c6?4n_k*c25Du#_~DfKJgE(^#&qVnO7btP-7+F%cHI^5qCb% z5*iLpsuX~f94IuXgB{k4b7ny0mnbn**@<%GX}F=PD09L`>{`Gx`C+_?QIo2=m?bGz z{H09(0@B54Dl1{@bj;pL+Mypx24uas9KWZ|WymHwtP)g4jbgQ(o0HN)p8wjK`>=}T z)^Z{Tf}59hq`Vkw8%LvxgC?_ z3|UR3m9109UB;LdHLtS%B;O5lYX~b)$ed&g88J~a`v$wEWlQWBHMxUT?+Q!3%T|`C zy@r=%S*%LNN|IwT>Mb5w-K?Nec*3Su+bzehwq2*{FBge(Z*XjcGfhl^%HJY&iCRU& z%EdF;_yJXf;h5Bd%%&t#om?904t^)kD|2{j8L;~5jYBV7VBfq0j*rCS$>^5)1|Im| z90~jXy0_;$#|8h#JASHT;O7R413UXa(*NrISl=i6-rjd2@Rh*N1PXy2{tx?K<&XIO zm+$+1Q{FFoH@rFT_TCTmzM^-y=i@zZ?K#^0&)sX?FYn&g_3L!JJLvf{I@(XV|A`KE zFLmEZr@Gb7M_hm6YP-fezQAq1`9CL;?sMldu|%O5&70vuF_R7_;v9lAGDbEWj~elK zA#NDabRue`I8>BMhI2+T8%`LxNI07;7~y2X$e8(DIvtB7P9!vi#fotwVipo%lgq-1 ze4!A|1DqD!<(WP(GAMKe=0Qe2)fwMG`x z6s9$@D8dTSWHK2~#=`lc5f3L&UpRxh!ntfL9m{1BsX{uXHL{4NFs+e|Aj~WzIfqz4 zNr_A{oQRrcmJ9sfgCdhBbw0jVz3?WFccHL`=6!n8(q0AUd`nan1#W;h$mrNW71DjLq^;)QTBmdq8Bk$fZ*EohDG z5lvxQBioO#LOu~;F&4scGa3sgOoG8|I?lPSd@7zz7FjT6R%>MYG=*u6Y)Bq6ZyL#5 zE*g%f(=wZ8E}Tmyis48C?^(>IGRZ<-Yh({=3ey_dUW6IBXdx3}BD3j4BFrkl#FBDg zD;-N^%~%c-)LQ`$X$sRC*&c+YbCGByl8tb7ET0J{B4&oQnM;SwTq>V460vMNX=v%} zK}}&=BMTuclI37|E`^B|i~K83z3K!kA>qT9@sbYsc?qvC~UGMW2sCbWyWG!BfC#i znAXU4A}p4U=8QDcR}fd0NXCdYBGFv9kWUs;kyJ53?5;Jkdo_h=jckVqi{Ue35lk$R zWH!_BY&e&Rro!oTHjb$kg#O!n8(q zC&CiBNGf3vkR>xYcBeutjn_yP!#I*evY5$73z(hG$nMY-rZutwgymwnWQ4S0xDbmI zIi|9)u#t)v!|Y6n1aGuN(`mhZvtLt~*2wx0md`~Aw$qt#ltYR{jz&J5EwVOKF(YCW zie@aYxuXX(g=vks^R(TX!n8)#g)lX(kw#u%~%wF7Ed#|`D`ppEELsTn;uPJ zS|f8IjJzxHmtlk>kqon$D-uKI3dBQXR8KQ+qB8^FBSXUH# zqGm+LQcf%)EKfFsU@;RmV=1xCYdHHB#{h!VomI1AP) zu|~`kAD7C9jchbcBvLGr?~cau89n#5peamiWb^Wv=^|+sU_m-!%9bD?k4#dySV(7z z>0+c{63=NY)e}V-8CjA7*gu@i7l{^(i1^B)6OjDrobxgz)_R)|Gn3^J+- zKQCzt(|XLO5SEd=R64^@()ip&jFg`t7&MiS0I)c3Ze&QWX`~=8Y6{aD*#(4|u_(b~ z#sspb3BJ=DcPA){g^LNc_hO-#h@m!}k)78RrZuv22rCqmd4-}1iI~AgluU+=1lwpX z5|3sxX2LWxdcpUcrZBCM%_59fsm*vU77u60S`kR*2_#AWg_F3GaI8>_kWo%& zBFwUm&ZaemX^rdz!qU8@%=Sw%p+N37k`pm82Z7fBvL`_B znS3Ep%wTav-kj5!%_Ew^v_>|GFq34S5hu7v#K^tiX^n6u%@{MONHz*y&&M@WkQ181 zv_>|Lu%b!Qg%Uy7Ot3{I@cD%NQ9_Rb39D40m@*1_USmvCnAXTfl5FN#avh0uE*nk8BgMETWIv=SOlxFW^_aZ+&Y`3*$#{ScOfn%& z6{lWNCzDW3fn{nsGRt$+0%6p->%;0NEoE`IG@0gl4Rf(iEmM zG9U2rr5&H^82J5xje*w>yksCT;P3y7{&)Ac`{(b^d4kalg;^ar*MT*;nLi{C9i*#`~+@cX*e*N4*d9e!ll3 zz5lWITJM?OeLY|8`JX*&JaFS59u;ybQx2+j0s)Fm@Z>PmvLB^@t`i_Bf5oVS@%Xo(_W4|tAK$p>{%h;>S*saUx5k{RLXHl22q{~>) zWqewf@hM%#3%ZQwbQx!L8PDi4p3-HU(PccL%Q&UWcvP2hQkQXDmvK~=@vtuAM~|^8PmFqNnOUcE@M=eaYUCftjl;nmvO%?O!m$65eu}c_rig9IK#(7=FBIjPcI=2@5?;dzv z$H4Cmtn+`j|J>HVZ4KPkz-_B1Qp8gN@U+X{E_osdBzOleR27V%NG2rvR*I)4meZS*- z-k0+JmG_E5sO-t5iw-re&XJ*}Pt-G9>k=I+t1&vpHH*M%;x=RKY!&!GEbRPB?U zf7$tt&J(VGb#1r|*EVjldP{*bo^$71->UaMdMs%gZxZS#`95uFIu({(mNbp;7U+yE zp)E~kY)K_e=it1~*cP;<>5Q#pOZ)mqvvkJxgtj!Du^qOgX}lq=Gqwk{rRj`qk0njx zxT((Aj%!QP8QTd<+PCNphN6lE>&>EV?2W@m7 zG^Q<0=RxC2n$D~FI%B(6Tbj<;c3RRjUe4DU+dbOSbjG&BlBV&ti_X~2YD?1@+pLnN z^S+DD*iLIp(;3?tOPawk}>5T1RZD~4V8?vNnocq@q+hf|&bjJ3$E$!={uh$t{Mq8TB*s`{?um5Qv zov{VArRj_5OecTbj<;CM{_iZ^!A3?MZEEI%6BPq-lKANoQ<#YfIA^+jdKu#yjsi zV>_=cO=oNuENQTQD?YqYR?>9dq1SoRIc;e=PkPRhrt#4uow50}rRj{#Z%NbmETzua z_GwGg8QXqKn#Nm{I%7MeElp=^k6O|+K7FJ!HjlP6ow0S<(!TyDZFR;L(Uzt&wy2V( z^Jy}ju?4iH>5Q$_ZPO=oOJEotAPFZj$WX*!?P z(|OWKssZ)q%BQnY)@O#G`>8dGq!1MX*y$@ zv7~8y;X`L^$F!yCjBU!2rtwa^&e&4g(sag_R?>97^rSPki`vq3#`csYP2-b^I%DgW z@Bj67+}qK=*Y_jdCwtCy_ql)8^*bH+K9}}x@9=tiI|e(Rd)Z8H+&g}*cegt}(`fL$ z*=RJL8l?m7QjS)+(ovyBTabC$Y0_r5L33NH)swXIr30zipl=YrNsm(L8(~yh(#vx4 zl+{X>MjE9;i|&qj)kMMSaI1tqD1CS;(#hLue*R#PHWN-il%TXLksjzy|DM@Z+BVQR zb(t1LG-Ie&A=R7G`BypzNuwc}GDurtZoVX)jGL-ug!HIT-B;;+LQfg#@t~Sc!Q7J0 zo=d|cxt2LMKR16gJrg~9GL}zQE?>AXwK%(YvNV6I^9`SI*wR{>uS(H;DP}ifOvDZ) zGs7vq@sLUKarUntx}2qHJMEDQU2$_%n)=dGh+ZfcY;BCBsu$1A9XmgI`E>2%iIww5 zE-hR=S-!B6zT7lqJkPzP*O|HJv$tk$FEhuN=VH{;CurBqY>7I?>B?EAxv{j&5Z%tI zRy=f+oiEkO^}l${JLvpmSUrmC`GsngULDp{Tg|SlPL|RNnOV5ZKxt`GG3oAPcNd~1 zj%ox$uMVpPJJwKa(l%TAbI?naf2qzT(&CH8HCC@F)elN6NTkyqRQju^ezA09Z_?O_ z>r{I%k+Ip+qgGlm%F>|9YW~qMa-J6+=jk)#MPW%Z`!pT;XcIVepLR)jWO2 zlp1o(01cE-mGcDB6;dA8gU2Z48Q`s|{Xoc%+hx&7G~4 zXAASC%<84lt8>Q+3-yzc*39u$%X36%n3dYvGs`lmXgHRk$MvB^^iVQ39E)aYRFKyB z@}uK9_Wt%!nLQ?Pwse(#O|vx5V}Xq^>lbiA=vA-#I|$8J*$w={Q> zhDr6+Ql+5UDOpZr6r-WdGCg#;RwmB2%ZHMYgM1UmYNR$iQY@@q$j+~pl9BS#{OQ(8 ztYOZ@PL5xmET57=^94b^1C9Spe9gkNw3s{;OC5?OhZB5vIgw53^fhp_IP|WGlJr48 zON(VZ$gEfx9l*-wKI|Cl`BV8GqmRxx*R<|f5OqD zdp~;Qqndc&%uI91ZedOHq6+IC9bj~Z_(=#$htyJ|l^Y%BOZ5L14YKyQcT;Rutw?;I z^qivCxEQ`Pa1t*vBMX)Z$Eo27Z%KEipjd8&;KTpdRo7&iAJH^RwikOywBok<;i~^$e z;Y1>b5=?naw%m9&6Vv(1sWauSjz2plJ}7v^WKfv>`ZlMNS2H=RY+u}q&pW+EKTI3qnFhPZBklNqV?0(?4wJW zA=Q!E(hhyl$}|R3&A{xoWthYK);SetTxAcl=T<@&nT_F~^w;8sva%Y+vTTyHqp#!m zm6Ev&9q-N1NapPH>eyKP(#-Nx)2XFWUPkeTPPe1qH~K}t zqY{S>s@*QaS18lRt0r2c1tlApY+Nj(>1vY(_9y5OT3;-Q##CERwKYiFJldVn91V5L zl2bjr>s4Bh&6i8_Y!u=&#gB_!(=JiAJQ{q{V?Ail!dr!kOsBP{LZhb~TM$u?-EZwO z4I+ay^fs+llb4$X!X28QW9hO=3}#7|Ms-7>Cd@;ICx6pIFWnM7EC)znl`EpwcY|2pciS?sX{$#4cN}mavE&^qHPl=Sf|sP zY7i%*k?w`_H9m?g@dZzLj<%k31H|8$<(7RfLjI!N8E&jJFZXw>Be?IpwC-ctkD?@# zuBiKYF6TzXLx`8@vQ{kvV%gHaP`NQ{ELJ$fB`irD2hv_wrq&l9i~t34^J)<)FgT_5vsfk>&x{t?fMi2a%{2|&4u-0>71jPw7G-{c(5fc8(lMh_ zm%e^zhHk!06AKYbw;TM5YMf4bv`d^Xv1IXr2bI-_F)2dViiEDU5;%`VG#pet51W;o zsd`zmax9O#q;o6PM3nxFG8(n&igc9Vzodz08LQ!`)B=~?j9;-%Y4|rhJS=la#Iwwk z4v)lhXO11a*t~XWq8U5hjGsSpd1@vdo6OG5+JRm)uA1?_$bOXw#)$G#hobS}B;UG@ zr?WbzW^T>m-?VLYK5Q%VQ1F6`F?h@h3PzU8^?ECHJaTPmlHQ4zORZz)8+r56Sfq7E zrdIHOSMSb_{^Nan{Qcgy^4HscZfoGS25xKMwgzr%;I;<-|Ehu4UL9~^zSmYAVCz6T{8+LYkJ6vSL-ryHr_0gKL>NtQC#BQ zhRXEV5LSX~ddJr#=?l96V+73$3=|wjauAgZ98jqw9vfI75N@9C`3P$F_D8XX4fq$3%+I(+@M zBF+@_yx~~0yg0IW{_2(H>FKd+qf=L6Czr~(3zz5W#Ya(xsKD#L8;sVzHDsf5nKNahjQ1<+HDaOHPq3mN}Hj4#%@m zS`sF{ky1<7-hm^fqU1-JC!Y3*Bo0Qht<}+J^3-T)_44f8%6vROR?m*57f+3k9Z}2i zp@6d-pFMTUD0X8Mu{b@YqES3yl=OH#I3-#{pYp$xsOqU|jpVJB?4BguNotCj6|*73 zKu(;B8rfGe<*Tx8#NAPaP*=;}RbE$0T6nIriF&TO)VykBR?EktbMXu2?76wKm#T?t zw&$V+S0qd_=ie-wr2G_19!h{O6QsZ+sc%GKop1UNW3_5^vD~VRq>C3%oS&M>oI5kN zawcn>Id$#GmAQrTm9%+M2Ju|n=cwtqr5C7)%zG>u%S@K5r8?;!(7r4nm3c#9QXE!! z(Ium#{(qrbAv0P4+%rRl$}HqexuQv?hI&=CBIRLLN})*>Rc#}(C*)*LAWuco0Jq1& zA*W^LOES&kqa=l|QqMtFpS4F+TB}AY_!qDFUNQ=ZgG(h~@t))-iln90E~OGuMRAu! z@^01DaI>;1DTzXGzR4{aqGYd4a$t1J;@3H~TBF(Fk(Fza@e7sN)%=-j(RwMpJbh_7 zu`r$(jb2l!9Xwl_&JO(ZZ)Po`W-SpHXUDD-Ph`KLS?e-G&L~EfmX4Jdn)#WdvlpkI z8ci)MtY)T5moHx#9apIx!T$|cN5{Zl4t!|frw3XC&kRfq?CbwR{~z}MT>snpYyGGC z5B3l6MSx%F`%it}(f886C;ImEbp<{g_)me?2Nnaz{h#yyj{oQVZ}AuWhy4%wUA|BF z{;TgNeQ)$td}n+IeLdb!cz@0N6W;Iemc6IEF|WV(?|Ofu_s4pl>ot3i_de3=>-n3W z5A|H{d1KGZdd7M}-Cyqhv+nnI|5*38cNe?Ix`(>mU4Pm2k*@Ww@9TO+*E3z|uKPV- z^!%ac7d=1Vd9|nDIpK+T?s9*|{Ri%!algsE=$>-#r%%9Ncm7W2Pj`NM=jG1n&RAz3 zy#hYuy6$?T%XGzg(69M3(!O!Bx5L%h+37mr_kNG}hrHkGoxm!xhxmsY)al`wVPzsw z*^ktJ4!3X2*q2QCxa3`%mt-6sb;&IO54LYi+gC*Uyia>qy_Y+wjLPnc>z=FfHVMQ`7;(e!ceaQl)n+YtOe%G352)dg z&6Mnf>3_p?%rsV7BFRczk7G=gyW2Oi7N2*Ahk1Ir_nA=&Bqc_Xv47v+&F?wOP|o7H zj<8qP8_ZMMzCp+bLjyBBqO#|*x9w=(NZFU~?tz-OEf75llJ;~K~x1=%%RChm!VB9u~sn1!S;=)O*%-O}a7CdkLXk`4<``^nrdnAvTbSHI>w52AS@tESptht& zI74X1LONiRcLg9Xc%M0K5RzA~qRB^W%1-eF^Q4l}$lMgY&#*3$#T{2n z#=Fm^?v@EKnH$@;pvxhfG$>P0@ILbtb8Xfr{@@uNwrL}7-^+akpMgPP4os0e&}^l; zis-$LXb(K5&p1j{r%oBPZ#?8&-UX@XGp1#ere2P>5M5TAERH=k&w=}JU9a;k&Hy~h z1w#PGG-GFg5851q_rmdgJR6Rcy5EesuYF^eO+0)j#8>(j=O{Vg z5pq>2Vm-{N#Y0ngs?75&_u0Hdcfk7!c&kFB9=VWkK9) z6T|%wTfW5!id8MFO>p{I{*F2Buvzx@!E)8NcxoXy)3Qrn-2NWt_5sMNzQwc63hud? zUkvg$=-VB-ANmT4!0*r37brYOBT;7QZkxW_2fc~-Vlg<;Y_u@jZ8mAoPDs!D7LT$- z^P+6ChKBF5srz?9eLYkKB$)v@k+#gU-Dxv~yRoo&pE1gL1ze_DaCq_hp7xD9Y?kD1 zWW2#A$MfVQgtY_C5je8!QQ?5i7CH#q_ix!k6UgXyWE_C_eKJ?T>?WaOje`@xNzij% z=DW|4@d#{h-6A6fG2jsQL;T(?#3)3+L)-`Pd$tfG5Pc4D2;y5diSaB%j$%rb;tf3v zvAu%Ppef`^P;{G0pHMGY80ande*=)`)$knfMuI`56if>U2bB#wkx4hLZBhG~=~DJP4_QK`dr zM@XrF@PRJv>(^}Nupj0wm?y{^Ve4RNPI3XH8B)vU8T7&9foBGEw6F-g=7Fx-#33(4 zH$<5p@rbHUJKMg#>Q&luJ$q*_9Gy1Dj7k+@H4`8-iHw%14Rcxqn1B9|n&Md!cPI{) z=~7NA;RIfF&dbPd$$eLx`}QE!B~oitcFVz0i5uBYuQzRmUEMHr*tb1vG`P0mT-z1= zQt+#gu;JPw74_3)F!NyhdfjF?;DO;Q!mz+e4ukWBc+Y&boNiyQ*(^`HVfj~BCOPcM zhRxk6<)5xq8`VZ@S&qFjavs9j9q(&jzhYmCGQJf2GMApln$h=MX^C+!+k5?Pi2nld zsDwhy-2LtARqI0UP%oaTF+8Wt)0bEbnfcdO@8<8t33xo+>w*z{^Y8kUi#l$sTa13u9kqnawLN%<(}cVZkPb zJrJwD#Zmh_%NPgc7KkNanRi&+uvC1DDvX#hWd_tKnri0Lr*w67N|0j{{Lx$X8t%~n@R9NLnANDc@iB5$+pmW8wp zwuzR}Sgfv8huhb4Hf;)X3I(8DAkWDd8lpVO7T77&6Qnwgx(vv0q{))IOQd0-BuAF+ zZeM@7P1`Oj?oMb^$4;F_nJ=?{ACz@=hx`ttsLAk{nwQ$dqq1BEASy3fU0Nz}dsbP6 za8wc+XJsdonSP0V0UqQ_p?)qvTlIQQl32Ui*PpSedssoCKB&{x250j*1{scHKTq4% zwG+_rw}6I8(obex@c&ZB-*pUpWZ)<1|M#+i#|C!xf3E*``+uhYyZX!h$NTs6eWvdt zeLvK<+;^exP+th_|5t(E3jAE)oq=Zq#XvgH>;F^#fA&A`Kkv`_@Ar3r|3Bor!3Ndv zUGzQXd&uXdAK-6!f5!V(Q13I|C%t>ToxPvz{ZQ|Z_kLUNTyLg#ThABh3-}8?-``X3 znd?dQ+}G3D{ps%C?*6InH+Gl1C%Ol_{-NvrT|d+{)wQq74fbF6e79%WGvkSS2Hbz@ ze!u%|?y~y{_qNVI@BI1B@9Zpg9_qZq^=Gc1cfHB=wCj-T9v*GWpNHCOAS}VIuC(u? zzCZE(G0=uwD=R?eT{&S66`8^Ingg=JoiP3>jFSR!726z#n#<=th)yGWVXQ!>YlA?a9|AI>Lj z&T$S!lV(=gVngi(`?Sbbpo9C#>)6ci$fflL- z^>Oeu(1&ok0qbAaB7E?5uQtm9R|pHk!CQP}Dj>{7`(q>6M0 z_C4z1lB|6Rn@L$cd2ovPSATn?y#@?a*`rZ6tQnh?s)KRW5@k9NYH zzQs*J#melTHLbs3s9;0OP~lA3oID_P8f!08f7#Vu11Sn$?+|?Bp|NungTvGX;7hsM zVEPqa6cZc>?Q->Pvjv?bxGR^gIZscD$*$A2*Bl5r(uq~?!K&Fo-7Jnjlf_ZSIM}7v93&ZbbM-_1(6qo)>t&M(5~NG_wbyJQ=?ZoF_xmIM;m!*S zoWJM&2ZJQb8dy?2_7KDoh-0SZ|0s9m7qK}9M;>;=5cWSJ3kp-?nS;lur`S0)Fej_Y zL6lj!(?S0ulKYoT`wR<7rk#utXGBBoHQ=RM$Z_}%STav4-Jt5x3a(*^)eg{9iar3- zsQ*c8)K(RTg4&t(+8|Mt+wJx~>+N!RzT&#?F_-77qa>XfqIITvLLDk2p-x;a_|+@yVa4r&TU5R^F^RD{z%|{&wD0qW z(0}kKo3U)Fk^rC_B74-D17P=d!#Cs)F(`q)Dg}UPI1qME7vzWip;O{-a3}!e2it27 zdX0Oa?)8UGHvu^kZ>bDF84^i>tl1#ewae%Giht0*-90VY`Wgwbwe9v=-R_0-0HhGgt*-68{Jxvt0k+Hcw%2UX>e}7I@Avb&#FHFeWG`N`A*(CY%M$o|-(R}PLz=Dd zDPA$*Ic>b^+S3E|@1UM7OKp2}OH0OBFm4%)HdstdILQQxO<0!Ix(Utk8? zlZ{qgSueCtLUWef7}*2`cnlWw{GRrj4P9Mv(c>rJoHklw5$qtWJKlQZ&S=aAu&x85 z(ElYKhfS*`yKV3U`6&X|H5oAE^za#oPYKe(*KgPw+$pwf@XA)b)Tok$ajV&!j zDkn+hP&KJ!AgMBl9Z>FpGGpY-GC4aNhI&!VXMJDZe26SG8-;qYu+REFze$ThTeViA zcd!@QziiSn&}$;( zH)#oIHfr<^x}kkxlP1{;8y0#)BcPCXY~~yiX^5agDQw{tq=+Xj^`RW*1P5(j0>A_N;sx^_s)`ZW+ptS*YB+5pnE zOG*&0hH#Q~%7F_~>cB>&nVnKH_%S1)CigAt38x*qAV23I#1SbdtWcF0D_1FUU64d8hfJt< zQ@wP6;*=MWKe#FKmLOHVyj9C2FA8>4mY(b+iIMji5&`f|A*b*qV3}R6a^!~`|0Ubo zh2hFsTx0Sc;wf?qRJce~K7}9^&G=k>5m(jVLrB*NM^F4_$Hy^7(zFr1ZC zI@^I%xd^1%H!e6ly^810;jt2)94J%iUOe4-n`d{A;&~4|CyDmSW;UtDp0lapZbkhs zP)V~}XQoI(2qq+HI%jhYbt$f2flCH^p~j0?l9q>M)?x7|miNO#70p7Fle|HI?#|jQ zBW}g=Zdllg4MLs@Z>U)5Ep&IrX4~7T*xo0Sh)#Im(aJnIwDyhDXjgQ1KrzH%pupik zS4mez+BZ%iMbPa`fT{iA&8gk2UaPr{-df0l|5wT2z3=Y*Ax;96 zdQbL_kO%nNp5Npoz_UHGJ?WlZ-CykfqwZhfB*1r&1vuIr>iTNe$GU#5>wCM(T{B%_ zzBBkoo?qq^K+AK{lk)6vf64v(?)SNW!u>k;l6%7aQ0KpPez^08J73lL^3Eqa_jPu= zKH>Te*N?cax-Ph)JnW17+1p-s&}Z81|DgX1{?GNwWUHkv8E(u%{r$oAx`REVoiKhL z#-n7?DdxZ>m&jD?Zm$D7)%xEL(?7yAP94Dtb?Zcs54G17$OM_i1O7L<`aa=*kDK=m zgVO?Dd1H%I*g|uO!p6EnnD9mY@bx|_d}e;3Vxi&-fH>an+Sy)L&=R)YfzX62V1}Nt z(@E9E2iog^NmZ98?gGigT003)IL)+UsCPW&J05 zVV!|>qQ)l(3X)?9a^h?CkN|z&S(5-ZxG%OJ<=Sx474PAa>3@4ka9?yk&uAk_*WPZ} zPT0eoTc{B(n{{j_WZya61^u{9pQiMGr3oliw^a~i9T2I8xZMNe6pTlWl7Y1h+P@FE z`TZEb6EK5oX7W-&SU~%N17&4z?}Xu~FmOEcp7uKMPnp>+em=s_lc+6cR1hgRPtIcO z?ekB&wmsv2wdWjF>19A!l^MOSy$-Td41)pxbjKGy1H)K#)e5I~wbyM(=i1}YsSvlv-UeRn+nxs(H9q>m=c_MTU%}sD>)C^uCUHnLU-GP3i_dtCb>I}=^gux4k zm9Jd^=-2^*`?te==>^vhF~^U3Wq}5Am$Y@-dh0ZLd4HU#~2h!O%USdqX?!aqw3p*j`tlkL7V7 z;9GO`-S7MLZV~V42j0gA(_+q5VJ5PIA^# z!Vqe~AYPE7dUQbK8l?b+s9w}0G+zTOTCNJpZ$J@6^2rA-vZ11D*A7Vk)wkX?EiU`1 zCL|jvx^~?I>4T7D#qhLbDQuwV8rcr%*B~8JCr9TNB!a_<)aqor6k=qWM*En;djc{b z+>pw|v4`MK$h+X78KnaAfJik)v6!7(EGA0+$p(?G=r->60q!?Jf}7X)NscmJPU2N0 z4PnDc5-W(fZ;OZ+Dsb@RE=eT(q3>gI&?bBeXT0Ws$vu(>`2*j_jv94dNMDeUVOx96 zMw8y{lK%L8-^cJM6c^WQ*yw#+QXap@&yp0e-twn%zxiL7hK(4#`y~PLKYbsYF{t;E zavCQxpU0uE*+9{IK$0N8YYnY#pKoKC!(jtN?*U0E{SQRQ2?6vhGAKMVSztn$eD7{a zD*bog$N1_C#guc)JOTJm6zkmq<#&7^Q|W0QTVX$@XRtSPk1N=>MO_)F3IGbV2kOq( zZ=t54DikQxZm4(t)D~(Asse&S?Skrm(-vwHsse*T^+5If$1T(ZRD}kG>JHu0@rCzq zp~j&)crbJ~cJQm%!8s`gS7aqI|AxH)2JeFUD`F+3IvcVa4Q{Ui3f1Z$J-(kXdAL)I z@q$q(y#nuqfh5&s-;ct;sW|HOqYG6+f;9nlLftR50&-M$L zWo7+-v117w#v~! z$EuN=5IkQvz4|C#>(-oMfRo&A^l$NP8n{bS$n_5D)cTlyCJru(9OcLqKg_yG0) zX5dUOf5^Y&f6^cFcTx!W088W5WPpzPc6-0-{cZ1t_q)7J?f{WB*4-sgIUtL3`rO7f6j_s^d8h603cw`;@`=ymN}aP548bR;P( z;5J#GS;9`UHrU=!fDpDJx3J9%+gP<#mQyUanf$`;_J+cQulZ2<2UTSrkPCNFxKM=LBTS|+ z$#^+cFQ>P5v^M~V%JmRBe>Kn<=n(1zAGm=8LR5S5AQV@iLk>WnqAdzJwhe_1akF8- zqrdJix{nIfri3exCqYT1z2P9l89|6w;6XH>#F%UmZ(bn0Wn<$@6!3BsSPpcO^w@A< zW75Yp%Uq-Om0MNRgH(lbE%+SpnDoL|h0hMk)yExAnt;Soop%~G91I!mg|7nNn0i$R zARA^&qu{x#z2Tt9Jw5O&!86Ju*g^Ay?F|P)M!O-GWk^z9WpN1}0RQm@(a!dU10@H$ z;97)B^mw|-`c1Sq9O!t?1MxCM+z?++Ax|v>Oh3+`j{k0vr=YfjSzK8y+`mWIi_>1bN^dIP!2L^PI3y4Ea$Ec~Z(0&_N}_nf0gK@Q7@A0!Lg9R1Nuc;jX{B1@K^@e%UuO1o zq%hdHh+<^*Op{*1G{BBZSrnY7ImGm8&*^4PK1F&&zIEB&06!}7q|EDckVgwE;+7@e zI$90xv+-~6p;#mWKHE^365a2W`Ft(>lM=WMWBtBhN1LCC^3jMBLf|k$YuQUnRPh6Pj{s<^M-IvL}< z4bd;C+Ch$CnYR{9Vl!kYWkcqyc!QW`-9eC{yWqJB53514kW^wAr~@GP-U)RT>Rh!| zKU-mT8|N^cbx@?5lc77HuRs^KMUI?|DRLO6118lt4NS+e%7-2MBv0eO$~`iMm%(JM z%abIAs9&!uXbAvF_xnHS>iZ<=+gW*AQ=OG0by<)s8HMa^?RAAOi6*!A_{aRm{p07S zriSlquY)6Hl-@hL`1u$=58u^Zw*jPgn};8d`p2iv49mJ}9H zP+78^<2eNB-0Un{o4f?eRFeq<52|U5%b+u)ZR7w%!72N*AS6fIURU@~_8}R28nzj! zh|CM#Y^aEoTPc(%t4eSyNsIX=@VrzK=PqizKk znXql$Xm(2GahR;Df{FaPqnBS#sM(zwCMBi-A|j(=q%XyMM%k5*l61oNS*H$KWTpU$ zN(Z}PI%)ebjusRU?4ZQ$V#P0kCZ}y!h7Lg7FK+D_xkf&kY07uRBwfVQI`D9>xX!2H z*ov9fs0w$ z<1a!zP5N9ujL542l_B|Nuzb~EetUb}L5w?OXTKohYVf%MEbJCul&$aw{ zu`mZO4$2OG4zh$UvV$x$bq-h@k*#}95&66vwFT;dR^|dG2QZF^o1cYAHgIgII)s~7 zo&{TVaN}vyr0Eki9B5PpUe+HV`5ak%B!Ao50Heht^5wCt)$hh=lQM3lK2nTD`7o+fuE3Y9S%9ZfXV?SZ`{Co!Nj~$s1LyQ5>%^Qn7?d^nM)1RX z+~=0-k_VWO@A+}MrbxDO-NB;qPMCffCaW69!66CHRLYJ}U>zK)me~kg?}ckj;x{`Z za+GH%>}#*vP}F<4H&hH&L-XqN-U9yUYct}g+y)sdslb^rg`J zF{*#ms5$qwZsSoe<$+?T9GV}al0_}79*jrGAg@k)&44~JyN1ebA7Z}v5jB+*Ev$07`m!yv{is+MOb7b>AME(zZ?ZK{@*bH;vCn_v(+=4@RJK0Y z@p-AfN_@$)uZWM$+V;8MPigimvbVn=t-wGsHphq$j(>$i&K|UId1`S=(w3)5+e~}C zFnt-O)9gx{M;X>rHXUg4LI1x9ofNagL45X=FCkQ=MwhgChI-)nXLu-P%Da;UW-KWt zIbk#G>4xD;F!1dcb(VtzVO$?~uJ3~UPmtv~DWA@(PZqPRV>ZJ94-8*~Vau5TdH+f3 z|5rP{(lPLd1HU-%ec=C>3_L!tyZ>MN|DgYU{Xf$GivF|xk^VdT{kPvFggLSP~g3b_0qX9d5Dcz2#i=Mle$V|?%9uvFc5$@jP~=yOx~|5c7a zUG-k{X1w?I{!{Po_rACH2gw1P>fP7tA_MSCJ#X(>1^uUb?&$tZ_y6er#qM`@zpDG? z-DBMkcYC}3w(GaMewHr)Txr%qZvlMD^I^{o&s)d=JnhMP9`JO!Kjr?gd)@s# z?iKeX-UbM{J)NKI{Eg0^!rb4uk2k#Ja$`+tZha{mZpQb+|v9n1H?WRJraEJSaJ88?B%vFglsFqMcy0?8(!C9Dg z^$F7vn`z8!47P77EDLRaKxn6-o#tqJ$;gAN`6LT3ci&V%7M4N3uuQ^o3w`fy-&9Bz z>Rz8vXO-~H64U+dn+meRu*WM5XJD8$%50UVOV_R$XiH&L=%HSrpM);)gcUvSY~KX4 zvU=U#-917+204-8-S%dUP~@h9t`G;ig?JX?F+6ltUXVhvf~{maNXjpFd||QU^Z(#+ z>Um`4Z-QA>Hf0d%=RdQR8s%aKuI}N!fxUsjE(u}gsM=CbW>^kVrD(Gp`nJ$3I~~d7 zgm2nl)yrE~%b{03h@0rkrwwc6F1+ zDaV^ODn$>_RyS#!a=d9nQcgKSTiK*>%JHTRKRM+Ht+`3#l;cesdUDDUT4R$IhX(3Y zU`0KBeUld3(Y^`jRNDw@4b?VDQI?JkIlTvZ$RG8PKf<$#PmwcCz}D^U4I6ZNcXq?k z9q1UBceW*)VxvuOs0%_@pu;-z&WR4HNE5Y9RB@X!gYVcv|G%MMDn0R2q723sE!#z_dmy z8hY&(qG-rLmr6s=ZXqT~`Y22(E^52DnNzr#b7ZZ`D^i*#AE@9Ygh+L2jEnP!6%D|m) z%r3TyQeqizQHmp@<6z9a;`A5tmsYmy^(mSzmk zwV^;K^qp$1o>XagPWu{7u2r~Gu2s|Adcn0KTLDj@-z`&k^#$|@bcH>IzD?-Ot@LOX zx`LfTSCK>G1@sJbg*b(-;)ePQ=xI#EL7n^ANdtG;YClDKlgbR?EJ<(&cqZAZ19#gT zN1F3=U0UHoT1w?na-j-=a;N>O(r`$O5fGiP@=ll3cFVx*4F`A*5;X+2+p)feh#oxZROz=P!vN{5$fs-3^4^Aq$n|&E2Lu7l^4*H+`ZgT>^~*Qb#agio1s7r1twQQc z!oZgj7EKN}QA9}F>K#=f^;1HXNqk{o&PdeZD~79ZBhrRcgniNB=TkVmN?0pN;ZDIu zSazr&`+~5Xn>{@>%UBd(l(DD)`@E2*$w$ctl~_^=FG4+_BJ3rh9+&sZBojJYrBxFl z{D#7eFb%2&{|aGpoNf}o6}6vdud0wfF61p6$`m_O#O9El!nN};;gBaj&iAxh!Q)0w z6?u5?a%041JfK{tA&kyGY1DPGJH__^FkdRADI}( zEgrN<`_;o<7Ng{CTZ|vi>x=Z=7x<^Z9|ztW_~F1S15X7~ zfqVU*_5T6q|KCbsC`S=vpWn-igKzUa>iu2sbKV$d{om4ixaZS7&-dhej`Zy5ad&^J z`!~CPvinU``NzBO>H0M9_`jVB|KnYEc|PfRx94@9r#$=JUk26xp!4q({f^%G&sB2@=*JxjR(Asd;Sk&ZvtQCRjqO7OgZNyX9zQt(j=r1LI@$yKp~~{ zKtc!*ph*fHwDyn$h-9D{fYfTWPF1h^YVWnQ4)r=;txD$9sdb*Mb!e+rtJZlQYpeD8 z{h$5r9S(fCpC7-U7S4M1e&2VG>sf26s0>R|iMs*|3KO4; zWN=}2_F&?GM;P;6RT5F+7$Ub#TJ;qoch(RJ$}deM?#lbyX@Qg*`Xrv=vxZI}TTzJY z;f0df+yp4bxckpKN>NsjxGV7x@|NsjE~;d;?(VGc&RS9t&lK_@nOQ!>PeF39t9_++ z){=~PT@vt)S-`sOrmMHbJKN<_>ZA)2?Zn0$4>e{9`W+l(BPTE6K*>qnPI&|sy^pQ? zFn2JKl$2Gst*?V449W$}@nL~lvm8@uz|A~B7eQ5w3bcdAHze!*=r1(0nZfFNwCfp! zYrV6Exj;9Yih#Gx2H)FBI%jTt>?CJ*FO30HASDpqBQ=;|Phhuc6=|FeyIopV)ioz*1w*9( zXS9;+oDJOC*}>Iy_;gtv46y>eG|mM58WYscd?vo(REU%!%N=soaw#lMB(8a7;&wt7SY10$^%HY& z)(|Mxw(>B-S0rxV*LA#$pp4_BE$zwjXiJ{rRUzarPuy-2#W1IvslA7g0qVCDDqb1{ z^0LJ3_?5A_Dz6G_78J^?ot4O5nz&v00m;)s$m}3WU-qzfcE4Las@ugB{r#quhE zaG!U!*;N{iQR$1Q6c<#lvYKKMIA%)hAux_wIrrv=uI(ke(RKpvJB@TVd0UAs+s8={ znzG3|3-2=n|F$RJ@l9(UZ{N(*PZ24XGG!VoF7{04^mb&-XgkO{r5>A3-uIp`K9p=H@|=)g-7cW4$K z?M3C=*ToH4eR43swasR`0{N>GuL|-i_&77|EFZ9kDV$JVM!uq&mWGgg5s5v>gGyqkG@{KxL|;JECY{xUS!NEyIEhT?C$ZN8?<`E(e9sbqp9k2Y zZ2UdTy|ackQ$>wh;!V8k!LEKTTI*7>(f+|tf3UYx-)m?ys8TJ8{|TxIrG&HGcx+h` z4P!=HsU`70XpMSK8ufPFjQM{DwgEv5Z+4J7setGz0t8ySx-oKbNDzo&&Vp#we52lk z`vSYTpPT%i$N44}R_L?&ic%170I|DMfw+6faKplFxH9Ee=u2L&KFc2EaG$PI=+PoPJ z*3e^qt(M_-CBORAT@eS?giGUDl8n1W{B18rWOY+(H!17s83?kB$8lrT+>Ov2hhYec z5bKP0aXc{p{=ocC2j+joQSZ%&MTLzxX2hS$5nqm2T-b=CM*PVf@g~IL!$zEM#1H0( zHzF1lHsXj8KaeBFYJOHs*oebM{D~a#Wr#(DjW}e)AI}kQKr9|?#6cteXpVS2%>@rO zXWNU7^kX?vIqw`9mK!B-$yK?&J$<%g!g3P?mMqT|>$4pTmMbMtG@2{cXP5D2vVO@` z5GYubE7oT(cVgTrc~8GPSFF!2^~Kuu>F12?=Qc*6@}ZwCv0|A=1526_H?M72Ya($e zTzMcS2XgDi_HgzRTe!?H{6<^%L2gIH#LWO+X65C^^ihX=r*XR8#kL>?%O?Rc|q&}WH2IF7Fng5?9A4r~o@3$r^ zlX;16B;JkYb3>voQOx1^?-ouM-b0w_^9UI%E{u=^OdkIi6x>j-vtVUG0FVEJBp>J@ z=l{C+oYA>KMZ}E zQ~a+Yr{96lhS0*`Gr`A$4+P&4yg9fdxSV+YF9+TmcuC;Kz{OC_C~DcMie8GPa$d5rcLPAmEH)7n^8r&lF75lPb5e38+wR5C%Y@j zETM9oPc?@)6^_JCmhEVlWwwpvdVUVdVs8WkxmmudsQi;uu4OFJ(M4FQ@ z+d{(3y$6h*w^zB2GWchB&H65K*Yyynb*VQZ+qvL1K?A>ARYJ1NVXCYPOIYTOU_Cdp zbA^Gu+16^3Px1w;y%A?V&&)&rKQx>EPjETO1~9f)c_X`cES7{o<6O`OXG7b-2m)=C zercr97ATG-4kQjIuFrRCB2K~)XIIB}aUgM1ju1cKh~4vL$~=&GUXBn?=?MG1c@HM% zfy9kDLOi7-ZntLvKahBCju21jh}-Oog9x9KBg9iW!ftPRycpRHIWoM^BW}kxUvgdI z>PYUFxJ|z}O37<;gt$9L+_rB%^H7dZpJ{C7w5a*agE>NdrrYh!XI_&d)MvU)-h5_T zj!>WJ_IUG|tvNz{CcFF0XSU?XYF2q8zCj#Lno6t=%sZUeVS-To*eBmSfOaPLBo8s> zalN~~I-Ap89Pu1sfA@nr5(o00epTMncSK!-;ddT!yF13))ubWWfyRagnPI5mp&fCS zaJ_w?U`=k}_0RQ2HaOiC-Jv~kGX@*SEdCFgK^UH*E{Uz=ntSMhR7_Ie5ME!>)J;_E zAfbGOZ#HuwNB6+B-pG3QfTdyyCwPG7qT+DmI3Zk}@{L_X;uPp4qI>N|i{<_UjyPwT zEGRN4=z{_t$Z{WeYad4&di(ZxBQ>t>fCxh$bt?=L!?3?LaodDmP{%N2_&3#ZQ8w!H zPJCi$%hcGWprT#bQ^&9NM%KCNl41+JR7cW(qHsBgc+`BRi79Qt`LY-7OY!geioFod zEG(qUe2K5;?-IR0w`=l7q|0cU-zIL*L!FtOJFv3&ju&2FAO9qZ&G=zdoy6|nR&3Gx zypgqz4T!mRQ<>NRBvUbUx^-F%f?!`L<#s5TdA$Zs6zI58htC$)l3i~fYoT021AD!Z zD)-GH_5bq|9h?(j^pHEz9L(1@p$(%GpQA1fyySo~aU;V%h>gIZuk%LMxcbmF+Y?>X z*V2cl1H;d8^3#FUD`JDB6A%!;&IWLRqpQC2Wjot331*I-#G+u3dpdE;$hY3v&&yW2 z%0ue!V^q$W&HmwTVjl5|nF8=y@^@eptj^BTY5|{?goay04ePzuMKe zLLGjT`V`ZwWDI`FkyECKESSS`C8E#kbVdIF#zX(+Ww^N&!!A*}SU-?Me>um6XA11_UZ^cnwtZ)BD0`9f;yq$Zh?HFh&OB%Q&G zy`w*SnxR+66eJ^f77rUl({$Dj(t}~HF_}qN8PGPZ%E!u3ygPSgK;;{mQ8(Ea0*hDX zic$GSX4Fk~hQORNxng38MtpUX^(@KS7k)--pZb=$h{tloXq&W4O(9FxK7{^pCG?3V zPBd^A`5?x(5u@EGux;i@gz}jLJl& z7vD&Ec|b|f!_w3_IL8|?$|&+V1;}d?l?}ToWb{uJiu2=TiAs~yQ~|`Y*U?r>{Ust^ z7DK*)O7VNMHtL!M-s>VOt%)LCpQzlYM8zdoGmV?3wd*Jmv?EI_2v)y3QIn|LPQFM5 zl5@y_nM(64wtx*00P7N!=D;B;TK73;59;9}i&`26Rh_8Zp{Q-;OdMHgC1oKbYZH|u z*zGyY^?vw%FY!heSSbW{b)w2|R+C>xCloHPr~G_>pNy{nu*L`MuP#<(*4kJ5ab*CD{^@#oOSpR|tGI@4nNgOv4_A80kE&{b(BfGcrBsMc_QuUqo z!-0hyY$32rqOzV;{JIQkkjpr1l0FXJjsz`i(*j^uB`SB3>Zz@d9iDpvO7t1n$+_EW zBw%q%=Y!jps5EJ3n>AVUtfXunk}G*1b3BAo?)%9fcJ?+a#g)H0v6a`5o0=_wXK4My z`urld=Oks(>zB@gQj=8=`{p|K7m*?rlqFDIr4u7;m!$9_P4X?;Ja)6;kPgqB-@v^4 zLRV>_tj_~fipK-9pt-`r-}se%h^4jUx@-^0mN}5@?~n3i!HNNeygiyDYK6R>m&=h%sV@5p@-zP+BOT6wB>vN zeS%U+xJOnw0ObGg%zHd9{b+iE`2W-CL+LBii?{*cQ>lAXFG*dO+L~IPiYI?h^#3cc z1YDAM3Pa`FF!Nu}PO*R^3*RohukcPzaULqHD_maiuY$)()bIxGeP}M&P>>)0W&8{A z_s8$xzNww@OJe_ueLwa9Isa~p9ggjcmBvERpGH3ueNXh2(e7w-v^xJ^#QwiCe~^5C zOC!IId@OQDO!gD4}$Lv4h5Tnivqt3JQ#RW z;Q4{NK$1_H`BUYMI&#q{mt|M-22$lpFFJV6flBmN=Wq`REct1*H|h+E8THZ8nF4gV zmcIldVc_5F>pmVCYZ3rju-H)Y&7A3$lGSLR`AP>)mR+81V-Y7OoqrNxE z{g|B%xQ}6u%@c0`8aSWl6#lL9MBa2^3Exv~_9tqWB~#>}N%0KNyAV5bMuL>3odax4 z8@y2&H&vol4#^uYEMa=bB+6v(XHjV$!o-ZzdQ?VF6>E@d^0~7WBkLO5B1e%rP`ySg z?b56;hv&=&KcI9rN)S$C$|kDHH!TEx{cL(#3kDLJ#;LX%3_8 zg5RdvZ%y_Q)Of)JGFjN+6^vP<`U2jp_=DrKRgQu;c#QUNYVcM~vlq-(ZDZeI!m%~1 zoHA_O{I|@8-ENM?4AU4^7Y<~!Tn^8Moyj3U%~mH4Y}Fh)eIfb);hXZTFgh5pR!I&t z$H&iK!ax5$yrO7bOa{B&N^?@YS4jZO}L@i@EHY(NYQAM z%e0@dVioMb4o$hi*~;M2CsI)%fV`5`w*w8Dbp!tg{6tAdc>@z@@r zbeJXUdPa&>#5o2F_U75Jtt6wtK-$TBqm&!tQ3Kc$vtcv1kl6tT$OFkTZng73qwI^l zvkffGvn_r^^!jpd)GF%E8PMa@}AblJuxmS4X`KQ}#=|QK!5YFGTnVM(`Gt5W@xeZl|o5EkO8fg#K9|d;i6# z)6UE1BmNfRYm}0ftV!HT-i=y1>U8qbc>umC3%l-iBiZxdu}i#Br-@h0Mfwe-#I)(S z+8#Mtb*yX@UEK6%*&GlLgJ|-PPv~~1OTAI6g$HVj5PuzU27bkPUzwUX54w|Us?BRy zHJl)7a1RNGt6brM%vf*KYTtpX6wzu5h=Tb6O;~U4aYwOK z5^Z&&)xZO#aS%TQ!RTR$;(RU1A4jYP9w?78w*E(BOZ!?2{#5)u9J(5Lk^R!*0*e2L z;>-aQnxlqbz0embEbhn2-zA?k!;8U5&@l@R-g-aSgv1Pxgj+3mX#wEhCZBA&8Q1Rs z@#-T^$0fn@k2y7Jsv(}F{a6n=2#J$MoI+a_1MutQll8_uf%T)$To)>;;uKj_lpiO5 zm3)#T>)bEjYbcf$TDI!$4yrnB-=ZoX+%J<)`ZpFT46%QRphZDWIYFNU*E$9D~xWQMd`w?$O)gyff1c&Psf zYXM7^3DCo3b=*R#G~m7@2pRr-szls&UlAHl=MiTxu=Fr_<1aV2zF z`PLZn`;il8O6VknpY&!rDMbJj1iU8;_L##)!A^s<>3T$Vj&#C`b<&oG)F3-*v9^z*iqTFMsBi#r3nNdLck4XCx(s>F$11wMav2ieGrlHH4^DW z6W?fMwFSuTL#8zan=*$tw5GscIDCO&;kg#avi2ro%)!CbF+Ls}(iDDCghUFAB9*^mJ9aWM9X3YPzl&c36h%{Vqpqg`uZi?nrqnlav%J*<;EBZsV@ zT#NM=5y(SBkPRby{W^{nj~ujsVr}?e(ClcZhuY0e@FUk);Rtp zpKVrNA$8z$$Q#&Cuy@NI+t=H{QqgJ=o1_wa7KBVrS)WxYFo6Y^ndmzwt$;FA^C#DIPxhYXaK7xk} z-%b{{U4;uc^FPY9&NmdSA?M!{ocDic{N-Fg-4I_HkHvmz?)$qXc3o^`EF68*-1c`m zdIRVE3-f=I|3Lnm^KZ{Tp1&)=f~BA;7BvAL``jJvbH}?LQ<#?(1gX?<1kh7#g_Idz!#j zfVKJOeB}rQfkcqa(!gbN>FlR~)4>~)lqgSK6y$aollv!?Svc>#qlrEr@J33@qsGXOZfyjEJeaCYU7p%#;+*WsMfCJBDc?jO1ZoQc`F{xH|1FUJl+7Y~)Zg!k z;O6!sw3jifcgIUZRJA#^(ZAWGjrDY`H|EstCOxMq)##r$LVr?_X=`6Q7lWD`U#$V> zB5w>$-1J)+1$I%u=EYEsyv5#_v#l2wA>NtV=m%CpMizQw&Z@pNjjSQHv7WuGtCziO z%xdBB@)VN#)W#N37{k~6T4zk@N#r|JD@TC|$S42vm{q~!WeH^4k+C>3(vA!r?Yz_* zvnqIeQz6n!YNO_|;uo>>OKmD?(9XlVp@nNlk1s6%cNOj3&nc;1E|(p%IyiY7kZjYl zIoRvxKP~abtP&otjv>7=wb4KQE2hbVx&Dk!?wBG^Sk=teMSpxi{uC z@R~S-tc+3E$n}!kI&G$npCOwO;PmgN7^vl%B}zY~xzIX@p`S6=*@vAUua1L=r}EAv>n_1l$%CP$R$-4f#=yj=Wx&kz zR)i%SBhjoUP>7YRh4UQnET_YlM!`o@d1mS;EQu>BMxD;SIUiwuDvu~9R;Jz#Oxpx( zq8E`ce1N14qfUii5&;-V<(czP1XPSV)qO=6K{%CH-$$}U)OSWX@%f`pZLbO;4yE#R z4~oC@qH!@u=Xs+}V_y&i5=`YOc_2?jOV?Z^qshNgq-jO_;@}LKokpdbYk4S7Yk4TS zL(2o*iT$6voa8sfGc+pYT$s%%VJ^DTEg|NXRt>{G9D(NO0iPg+UEpO&f#>~7;A?sn zJlolU*#Mp0Uyc$ICssFb6e#nRqYQ$?Ym`A-WX!h-O2QVd~uHa zR43u9w2RZ=w?zOH`=eI*M2Q_IH3LLXUl4zQDF z(H~Z6kC$n;TX;?kpJC)!{XD)xtI&dT(tVH*y31OQP9h}Fzz{0D$BiLGRmDPc1 z42VukZ*^Hk%y15^O?jeSlcXz6O<09~{mcnpwHJSq?;PE4!Nzd=lG(r+_)E42htNI?ZI$8n#TP=QxcGh&ljdRn z5l%UEvF(pG+hUt!$oFRJr|sFpTx37G*8;M7g z%0OQ0jc&H^Lvm%ma5nhN8B1MI4rx**M_T%FzhJyP!3OaAu*=V>Vj1KFY(9YpWq_XTjDKbKl@$mTd@zuUKP7GRuxN- z@9!hz`|l>#e-Z5evv~Y(&u`D)l0P@{+sNl5_eO4uJU3DsNritAevmx>{o!5V^3cCR z4~Omxy%NuVLuf@PKlth38-q8J3E&@`2zW_gAAbKQ&ZGS9AFI7F6m4|NU@VjO>eQL^ zzV!0?KHXRa>FvWWPtfib8PEqAL!Dc_F;s4YKAQI`(9N@aUXBBV35fFSPQ)86+8o#* zY_w$6<_d0uRV7@Gd_oGRanuZ~@y1Zy&BGh=UO`p6XMMN~9=kfRgst+%(C7_*Yu?Mj zH_e9M3$n9!gExkHZ?LU-F9W-4Hmos;O8--MjKX5pd1I*jrdV^{ODWbkTQO{TzG0;v zXUTC)B=7-KrZMk!%Iuu2jBYSs1k+H*ws~XX36zNS+zP(o-?w1RI@g5ek&v4)(Fm#t zl!>A4#ULQZoqu~4%hi~OgT&~LwakmgAZP91dS)qBamO5%MMMXpO9IhkSgSclUQu7i z99visGU9m>x1J($f_|h2$%QfoSMUi%&_L3HWV%^~aWeJwpJLSn1ZU7mj6kKqq=fO= zFc6x9bdrpCQ3rwQ49STu3PeNP;O%oNQBYmx#fX>j6w`u;gwWN7^F$X4eXtL+!hpY? zbLDv7DLB6Pgm9&X@I>dET2B!*Ar~My)5pXi1lV9~InlWWfOAZiXlr4UPmR_Pmk@GA z+d+cMzmDW*|j^;E-pe^vw8yGzRzpc?blpjv8n}P|Xf|Q5eJ@ zo`W4h6hgSle1j`APt~DVlXcw02A6qbVi7`d7)KphAQU$^iER=MuF2Lu$V0^?%tONl z7IzO-{w`vWF*;xx!4M!)AzYc?@uWNDGBmEX#>JLS>4Nk(AG;$yx4va}*4BlaIHGYd$hy%CaiqR^?DlkYV z(3{K-aS&B#XU8f5&CS5|{lg3`Q4ons{l+Yp*c=aGnbgf=W1<}bl=-cAsQ~*AW6bw+ z3eat08bVb0tym_69QNWZ3XA2M&Oz*4&u-rkpb=2 z*Zams%(;FrUw_F7oy%AcTFkTVUFfiN()T9`g(Ub2ddDhQhK zr|`vsntAElP|QA&?HR(DL;MaG9FIX1aylpMrj+uwpc0dmhffwiP^DG=^O>Z74`vu; z;z}r&%&C(&xyBqfSR!NbZkB88bw`zeeN5`Vd8Bq^xA;oJ8-|Ekwu^qQDwyc5k@>MaQf z)W~7~7Z7SXcju$8HQ-UOY=D&))Sp2$ary--KtEai$DjeG4>yNR=Ul4JX(4ljwt$(O z9A<~F@y0|B)ZtC}2E5XBc&6P?RmU7_Gq+@NaZId0(rx}y9dPTpD5SZqMD1!#q0%x$286Hh zm+U;@&2oY*m=&^qSl)(B7F2Ea!2Ex?N;j{o;$j>Ktu{BlV57xVnRPq=e;v+bh8aA@ zggknTrmVHF&1Ut^|EGf)+gKI3(DCKM-|!i*o?d3bb!H*Ye^%fYlN(PqOMMMmF$UQK zU4!gE8|)0)prtzh9|G@}zR}dXMp~0u*qbz>*8A1Q{T(R(nLz#@H6{qpm6BRxrA_{a z{MAZ*rO7N*L}&KkU}FR5RJbcE;W}GplmAtJp-isYq&Fpj#K}(9oN5c*;eXSgZS~fe zZ0heJ4~zCG!oFDv*ZQBuRqy(&KY`D^YljKR=&kZAWeS^dvD&O2*}+rUQl`inD=do} zVTBuz_|%mPhIX#Bh`N|TtTMyOwAUeW!uUrKeBNA2Pp`Jp@6M&SyJ+a~kydT@IGdh}{-zrLRU??0D@VcZzI z)PgHz3$Bq{cZkTDHO6$#oem_48Y{DqIvIr50pUUvT~g$0Nt`}|=6Cd+-o~!F+(M0U zxEiQ#N5DnfZZfpe9HkbpRo3CP0DLbk?I0%;8h95yqwk=NODuMiEX7q|@g^`QlsFiU zpzoDFPQw&iAY8gIwFaQ>r_rs1*POr`hAxYWZ}R`$l=o0x`qSw<(>JECNXJv3C+pu; zsf8@zpU19qGFg-O-^BM5BMFc5YVpD^ac|XTPW*qa;NF5;3T`a8qTr(VZ{weg-yQGA z+g}p8%{js}ar^xPK8vRA|i_!m%o{a8_F3SHy{-^Tan*U1j`fnxU-yb56MW!Qn zM+PE?A{!#X@VCPs2){IZQ}~MTif|{Sc)3&PfSF8$NgFJEs9 z@-|fb_P#8~2gjvtN>(HP?$wfM5^~F=0>C)j&lmAA&UnqxtW6yN#XY?2wKGb&%Lh>G zjZ4c^g_Uyr?za{0;KT|$F~LdPxH|6a)fMvl?gNs0H|D_#5Y9qv+`r8rFh6#4OpoD9 zuom9uac7b)6@7kg>N>a_t2oEZdhmpeJ41A-+{e#DN{}WlRoyhm*GP}#72{hIsrJ-~ zREIvf;asblJ2tf~ukgm5sTr4UZR#c}x*&3cOQDW-6Ztl7&CKy-h1A)X>Nvzn*DexF zA+oAtd|3gaUjK3XvxCRzIcqxRI3uDSU!+J`UBkv!J#H<=9A`w{?aNzGfVvgtG;WQ> z@vSxHS&PtMidQ-z8LNFDK*}#$wV9e!2DDC~n2u_Agk2~eC zRs;4h2(k_y_IG=(I@HLfgI0RuPA}Z7(V7Kk!{ZqJ4G=Q_ru2gq72dej5o4J-ScKN5 zm*)%`L%*xEKC@Pz>Z|g`t-2U%Dgj)5p1BFatGQ1c1$Kv3>(|M0aD4}GweY=t>+mX zG&t`_=Sl?>tSSWTE&fYf(|hv}0XHbz*$!%w`e$ki0(rCj*mLvOJbtb>j^bxV*aA@Z zr0&*Pyi#u*1&^}9Sase#H1+j#A$<-?}3<~r+18dCtFJOoKA!IdCv(y?ZvaiE+ z;S3r_%d>CspA}J|CJEZA> zjc+QTY2N8KpfzGcd}XMk%NQ?G`h;U+Ig@%fBM$S&p}y`T>Z)3ATpAzZ*mc!BuqO9` zYfM`m>LORf3>RZOaP<4Inpeu7>fMo~-uL*=*X$7$vRfNFg?S6!RyrW)K&`s_GpSD* zJxlp)Iti=B>dmgufn{tQ70|d#D}j9)SgTZE^Z4Ct4S24{QT$9zEA-q?rpC>NZBl^q zy$och`PJxqA4Hz%mtp=$N#ikgTHdFof_dolK9>43_%+7a*%|7)bl=XnQ}e3TvY$X^ zLddmcJJUNLr|4B{vVI(pW-GV+aSRX=qPAzfaVp+6&DD=t&^b4Zy%I&Q#0Yfi-UiLw zk2-J%@tbr#8Uw37mcMbQ>D6iif5gIY-|7=vO%x2zUgeEDMQ^Jn^!?xz1MYfe$1n*1 zl-7?&^PZR3HYE`9OlsQJX>t)-D+Y^x=LwzZpo^ASFuTT?)D&QQPPwI%-1>c-`W?U6 zA=KHEs!j*IOfPcM?-b3y)OK?*fC&J);@GU!wCqK84pis8ks;ZZUakvZnAn@O-f}EP zak%44ENDaC8vvCtUC){R!6^k(cbzxB*uvWLJYd)5&gw1x1H~!;!*Z?nM5-Sv@=*Ue zZ+ww0-kkS(inrz#cU~gnWuIB+>%H-X{>R5ooubH9|K96R>zocvtYA*#Xz<1t*m{Of zQqQ)3U(aQ(9&DuT$I)PqvtIPl2J>x2okLV~<-f0JgR5wNUq{9ppJ$8TJV^1a|GxNo zSDcJ~gv%37a-}yu*H&_TfJ(0T_m$MRN_G!*phu&t%&|38JckS)s+zEsY;L2H zjsA-n&BU&#ehF5ALJQo~3b57(q5zyC-_j^9ERJN|tYm%A$PvNO0C3Sqkj?8&=>D)yc? z7ObaOp`&KA6z6083)vzSd9R~LOM3bFi$sk#9<+%4d9MX=^=y@zV@B#CjwI1xYrOG* zE!2?r9~3$;YayBVxnRAsf3r89XYtR=dky&gv*9%&Wf5cfvm?yJ_{#s^mG{HE^iR^C zCj#JA=^nnK8Y{qW*t_pdohB4{2{zWRaem`=j!$2nyqNg^ZzevJxSd37_1yRpFZ^}k zL*xK>9ru?v7p^UwSMXH9qXiEXyt&{-1+4{_#-ELUBYt1}74hfAx5SgNpK<>GOspri zD^?PHCiuf0la_ z;zgJ|<5dgup1v>d=}+f9{XrsEk1EXe>LIM8Jy~wXm=Hq}s&aureafNW$|zXUolCq4 zu_S>i<{Qu_Eyx(|NWb4(zRH_`DH+V>c?R>~ISl6GEdE>)dqL>4-NoL7=#%OzpKGuW zoWsK8JGwhpdJ|$#KmsVjdi#g+p8h;~5U(#C7uPTo952}M3U5LrO32Lx2Klf<@^ZtRgfqOC z`y=A%8RP+yxawppwTWYykMRe@-)1m=?~-oH2;y`3$QHy5@@Xm*wqNE2dU!d4a;?4NV6 zLZXrl(0>pxgQ`j!)Sn#697!SfGbagD83WO;EM;JSbTISaMovZ!v8_%($qcF?X;9yC zD13cNOe04s&MeaP^e7a?^dP*<6sb;_BHwgHsF*h5a@UgmBF_^LGvVS@{+EBk&D4El z3W7P&+{2)p&ArP1=8vD7TKZ(d^4gCvykTLcu1)?of6UcoJB55^I3}>2t??$Ty*-}s zzx$&O%847s4R425i}tQVc%2;^ya~(30ypB^TfbE!AsNLQKE`VSy6_tX2g)Ke*3 z%P^^BQsm!n-i7T3HFSYD;aJupsqp`U3?io6-6x<|hM-Avf1fEM4xXe7;sJten*-Lo5Hr=0sm*jp`r-?r zoc*K>??t7KPSw!^>7^Fw=k!v{n6yH(IyE>~**=7+ zW&#RjaFza6F@3H&I;>tnb2P3vlP2#bf0LTBpf!BjFm_P+-^mE2JE|u{iv+EXo7bOo z&#mw3&`Gy?uAt|(>KwIovS68I)wp>l#8%9M!v-{R4n%fM zpt`$-^-4rVu&R)OoptYLmKVa=agl-&TQR7hL4DYv?8nL)#8`)*D6SyB$$&oOK-` zQ@3Dx!9rQZEjEmG4U_ragry&W1v0wd4n|G|mPAV_0><3_5`MRV={hmUb1hxqf>nyW zSXFZ&FxOq4zy~k^6EG8OsSNG6A#62nQv&@a(D;prm9{vKz=nKTEK|gq zUF8#7yAPYGZ9N0DI~5IDaB&*&8h905+0)JQc#{Du<4w+_D=kBwS%kGz1L}7mY?$fQ z>E${}fogq+BaKJoi@vg^VnOi{{g;v!XhiRBd+qFnPZ&5T-Ik1wc6*()5{O` z4Rd0A=7HHBq6P6_^jcW8^#7H9MUJ14*sp_R6XQJ=vl-1Gy~4-L*uS*Fnq70fH{R_7 z16Rjs?$^`YySRBqdD1$$7?#MbnbPghx24zv_Ur7W&Z90+q4vOci@vqgT7LZrveolpTCwC=RB%b9KfDdq4MwWD=i-`Y! zsPJ8dFD`5^ysU6>!LJG)EO>vxE64z_9oGN%_*dfZi@!L2L%b>;<@UeP*d4Ks*w)zM z=%1orCL-Xa(QNdJ=<;Yd|4E_(?#w@x-;`gOAB#L3c}L{ck;9QX?g9Ks_@m)_!UN$0 z;dS9q=<(25?geNMZ44E18{lVycftBI!F1pWa{t{GI7KADsz96%v45((NvD7}Cek;g zzmk41!g1JB8vU3}PZ1xa_}W4Kr?}};DAAKn^)4%xhT;G zKmB&xW<#e}c#}>q-xLM#dA$umjyi32lx<2;Se(-vWTTrzPxp7Ee1M+=*n}$H*44p? z=S;w)Q`H+Hh(C+Cjr0JbKd1uOBTW|JnZK;{CY|Qq6bAnp@ViX*XFmtD`4kdML3gAc z@QBskq*LTGAxeCj5-sre&i*yNx}@9!t(_$Bkb=k#e8uR|8MF+Z2T(Y=N)D`T zTD#brbn5*wafV>(?@=9Ak~yC4bNakd{qvBCPY`~C9>gkuX&3UcyYCoRxlKBap5wJ= zxGvL&`Uf#M0IWbnr|2yACY@f-%5o<4zZQJJ7U+E{6Kbzx`dmqN;5a%z1>Wc<$nZ8{@5$v6D4?Z^X;PD-`b0}&v^ z>P+fS_Vu{!Q|2j~Mu2Mh4(o{sY|tS1qXo8f9ww%FC!5?c)yI&xPKbcnlLNNE#GSqKy-Dkf2rSU<9s;+E?XA+Av<`>B4h@Xo+sBxbv#uw%Rsc&kf-<*zLDNa8>9gAIHm%hlGbb5WM6qR{`%vhmm zWK?<68yP)!F487HCDqRVx7nF_=ydyK`q(+3-6h92X~a&MN(Z&C(&GcK9fr ztLuHAu)&3`?jP8oF3blxWAZf~Aan5+EYi{dlF$Q-*b3dHG`qO2v=8U_grx%ksfejR z*iq*{iaB{Z&tmTAnq#jmXa4cmlR@bWY2-TRd zOoC*vfF44<+>3qO4HGk_x#Scp>8cH~iCH!g*ev${HPC8D@&@?9IrZckGyES`YFPz` zzd(K!``AqsuQ`KJejZzB0wPGnbeo<11t|`XuXGOK@FL`(0Cahcp6mRaRmYa&!oN!x*5ZhxCHhPsDkN>21LKLQzIwZ zBcnqEy;+XUP!+}o%NfY>5B_`VVmv^^Z4#gCO<1;|n9(z&-ui(Ftd;@E=z6pc4e4k@ zoqFn57Q^X_4(?fO&z6ucSqDRFD(EW5B1~8P(n9wt%{viv6OKJ>)<^vU=|RN-qt-}I zQXBYF1M{ro6BX*apMx}d(oB~za3K|Dy{}bs{>(lJDs+@4#2AiJ#~WdXe4fRvP`CXQ z9QQUd^9g_^l#6$|(aKE+{>0XEki(H~4jja*(5}_yxfW^m+b2Q#yR6>bKMzN1QQ>o3 zg_@*4wiTMuukBV@O-*C5I^1B9n>0ax1d?lAh{rtVUDt_JPGe16Z-JFs=YD9bG#Tuq zAEM-Y6W8U;&nGOxKWk4*?84{Af^e;^rdoadeFlQvnrRN%Ab5S+^^gS_quk>fEt-~t zO8tMXUGYd9v=3}#6<=tL&m@KFYR8~Mg`{>Rn%-o=YdwixU+hEAJVBJGwMLA8RC*3I=aa!!8ze3uPj^+&NIOte^3jcwC^12saqbSVXg3IH}cpwBnHm;(pRe*azh#gRWpz7lz7Lw zgD(p{H@FGz|D(WI;MIX6flOc_pYU)0tn{X&Nt@mkpiSwf@oiEtgO)aJ(7t2lhYmfn z<{#?R)#`h?I&k+)NtqV9+V{{rF@xTTeS%d*sgrS7Oi8B}&d&WGI2$~vI zOi8g8s>=7yd_MOt-)2kmeiyb;l{Y0FUG-%Ab>+LR9?;NMQl+u`b(7iCKkdl)KxH=tYW>CKJFWnJ za+y1|P_pI^$kHSIU3C{5*Z(stE!L9J)Z4xmtAn(5$!krZ!85#pFX!1=_kXcN#Njz3G~!Oao9Sr5=eU&a+8U3c!uV252b%NfI39pXHo_z z2k)emc=Lk(0QucatyqKyFki^JFL|XuB!27UydXD@Vow`74E>Y-E>xYr8T=*(#jTQq z$2tgo!QiA+aG<5b8?-+#ew~9Rg)KRfl@Lfq6tqllQd+#w<^K5il|!>@l4*#$VQ3pE z@WO2Hhr%ysFiPoU7JL${b`y&+DJ5RWYQM98F@q%Pre79l{dbEuDfL~r8~i^0`3%lI z_1uuU@SWj?((6^a!rx1N=1OY-VuNYPo}g*v9}uY0-$#C$3ql1{!eR^(sP#FU$WL-W zWsBp!Js2dU(W^Q?2Im?2Yi1}J%|O`;7#vdP1>0oynrG;+8JI~v!VJMlfkA|4 zOSu=e#%wsx&|T-SkRE0_dTIxTMk)IOZZmt%GxU@laZa_oPUq9mz-ZkbMx8W%;fq6o zIrjwSd?YYuD(uYh8<0!eH}bHN|2|iK8FK0UMjkQpujI;W*Ljmp+iwn*zOnS}rEd%F z>DS3~uK6(u47h^M+*nN(M5X*Cw*-a)tMkVz3Mli|(mPv*8Q;1VkNZAObk6f8QT(Oz z#uvl^yruNc-Pm0)W>^KETsQpu=F&U423=}q-vCw}tKY{LMUmY@k*elC0xu@5P9I;A z&+m7a-r3sKdl-uAOhAMK z+)JdnQbzhotH8(0LO|YBdS@FK0P3pAOm`QpXO(v{vm*U39ztd&6T_j3kfXGV;lwKt z|7Yo)jsEqHEHjF)VRSpCy?QZ9!(%cNbH^SwN`heZ7tSg!@g|+VUc3m89T6)DogpVLRKYb#GET^5fE&%au5If1+Zj2{crq5BHWp1Y;-idbGs|M&jTH{SR zU48$2ihYY>+6*(i6l0GF5)(mX_J^5kv@kh2?Y)8Ty_dm)|BjW1xN7Kd-#}eS14N7G zbRR*HU++yiMgD3v?tg>dOES)#7$&)uu1`bD`WAL`zb7+99tIj!n!Opa`DVy|HFwBv zWD23t8%EWjUVR6(?(QRDcuDIirehZu8y@T;DFHpWmQc>q*lnFgzfGfYwDf<>jatOy z)iK76J&=QGN4X5HyQA8hbSnKGjnNUnyStRgXb=BS1bs={u*{`uDw7Vh4-I-!`n~L{ zdo*;jid^ZLaGu&VcPo)^2veQ+Ot%`wQEo*7>0M0OP!-Tl(4ix;oWB z=2Xsp4yW9L3rGw=B^uRB_ff*UuI`R!9jIfK8}5Vsk||?%cDU+#)(q+YDqz-(4^Ut) zc6F8vJY}5brCBeWitHv(0b>i;#53Mck=9O@WJSyIgbeq%W{z{JnB4>>VCv3lZFwJ^ z+uBaTZqjv=z_Op0A;Sd;EX+wY|AUrm89veu-J+pH4@^U;tKUm$KTEUeFt!rZR_?u2 zE)DipaRgyA>go5GVML>2X=Co1p>a$rG2xi)#~5_t3PLxiliv-RnM9*-M+Y}Y9IpeX zTR=HE&i&2(;CDH^diY)759vlE<_kl#gAKM0M+q6u)Oo!FjEF{y-=Qvkr``tBB^Ri& zverulA>NZBgPd@#+RvJ?)544AF?+ws?A^tLRcQ1e%U**OR?bEE4TQ!jh?c;n+Qzf_ z_<9S;%mMPSo&Cx%!WzK>Ac9n~lSPhmQ_RR67QLbf^w&Y}#NX?i z-|C9TjQo+noQKX`DUJLJCyyHWw{zv2kk>i6zaV`pSH2PX7AN=j*l*^__4%8f-2eP< z+?4`x&QeO=gRf@8_)avujh*O`L(XN`TV(jVk^+KjKfuKO28X{FU*e@%{13;}>!N-%nznioG}Xx>#@Q>e!~(MbUpo zKNo#}^i`Yz*cGja#`Ay5DS)?N4Y-bcfEP!ejyw{Xio7Ip6ZrrahkqOXMELdLzVO~~ z6&8W-5)bh5P+Mq2=;GktgHHyhgLeeGg4==%0>2G>Ht@l~YXdh0wqO_d(}iXMxVZR? zx}|Di>0_n8Fa1uasrLw50&Y~+Ap*>>%1(*R7|a4NzXP)a559k;MgyJI&T0H9aTsB0 z=7agI>QTh)DdWUc|7Q9LDV!2_5o+5!P`?4CEzV>qkz&jRLOP&>^J{=3=2Idu0pgZx*>>xViyK|Lj^qTg$a`2Cl973X6jZ2`_>d@1cv zpDB?NgG+<^g?*Vruv!!6!sP=*xnL)r5-$;Ma|+zg^&Z6Rp;BPWFz!R&Qx7Gbf}8lr zB*>qghit?;t^7Xt^vMD?C32!V%Mu`e3X<$)x}8iHIj!-gL`oz^`FX7LucdzsH*_=h zagBEPCnng!%tslY77Sd(MEJUV@P7kut}*a;t7iJp{Edu3^Smih6G7*Ni=stKiWY}z z)~&n5n-T-j&lOQ>c$ymMnSTEqL=$&CQVTUS*l&A*<;}x-@%|+Xb zwzT#R9VM{<$$dIFwShUoa*udZ6hNkE3%(R?>gx4x8DzKPV6Aj51(gmCU;~(P#A9nd z1+FUE;_`D~`Qv&PbRfL{BvvC@Y|2rPx(Lv1MO)07RSmbjgs|!=*M5#*D%4`iv64+; zkXIIMQDmgAOq$FKT6vmDWi#a%%GMCLt-P&l9lGZ}i-Q7RWWV)#(}#|VwAk~8H%KliMeGKU-SjLnK$M5NL3nfIbuH*rXh1A^%x=~YswLjvJ{w=U`Sqz$%6>0 z{ywIHBO9BOh*$Vkm=n~bbTnJ64B{-Z-jw4RRSA&AAnhzcZ`=bJ>Fj4@I)1UD5X>cD zNMOcpeL@*t3ACDWY@)0H`K9J*_{*SVxG)xbQ;s_;0iqdJD{ zVq`?Bb`vsavbLDzmx1C4LU|O>Qd|EuoMSMz2Jr;P0hZ+hC<4f}qt}9wi>@)H(^2RQ8!NkccHAfoRf!mpksaTB9o$~mGqqpzaqa({p~vlvsBy#dwS zNEbwr*3bZ4XTlCGm0X1uCHZ+1h5G%SU8=Z#FHi9M#-i0Q8s8+*$Xw$+q>4+vtPpuE z)v*=zvT?GiN(+~$ssPbt^uyujqktI4zd6;*t4a|Uq%00(L(yslGvP9X6k~##k{T}Q zq8QTkMXNLX&fT$7Qos2Pf?x3Sg1j_=jYB`r37{ogRbKdL#tzD<- zP^*`7-+=+VJqMsG4?tMWoVy$h;@(^Y78)AO>gHUaVGwW2L70F$-b3m+&T0#) z=BfAPJ%jhlf=Jw9Zqhl#q-Q~`u(%Drs{-Gb#nEJB!&1m7qn7MqQ>$E!Jdhf3ea*aF zt2xmpQ!_P|yBd9u8{V%OoQ=9LC-$gurK{2RxZwkvL2f4_|A4XD(y=Ri9C>d{ue~d$ zS4<{DM#rVLD%-K|%^iZA^We40+-n(k+%q^n&OJ<9*f8dc4lD)U)N+foiJcKXi=WOFLu03kU2&gAP6pIW zPAzkCe?E=p%Av7S7dyE>oyKzIu=uH^PVP^p(Ofw!e(EA8_ovcGt{fIWwZzH&&p(?h z*XJ)j@AE&DE3To17un+F{^x%#&3fAaxt#g7g&s4Rz7eZrt36AXTC+) zb>;oJ2rVo?<~fMp7XNb|gp~!K=3EQ$56V7+E6yJ~C^p#PxZ>%^ky2E|ITlvSNWL%c z=|4D_OjU&D4~X^=EyJ0esUo0SS(nK)IED=ohgkr%>=+3ZhFd`s39v(o60dznh+;-+lB`2X>|zvZQWl>S8et?3tF0jNta zB9`@0A^_fr4d6zuKf5UTFRtx}uU?zTP?Ah3lVxNq?FZP;PcWig8JQj&Q zNp`>wM_&{@Oa_3t`A_7JhT-pJBOApHICec{_oX28XvXG2ef zMnZ24b%&Z@{sqCG1V11A05<^M7_1D20zVBr6gV4rL!djbJ5U4n|J#M!f9Bsyy=hB& z$SJ)#v3l$3Ex!ItUi8lF&?0Zz5}m-(AmS^mczfUJ1>UqJIe{fe>X7V5kMGJ};!PWB zLpN3|M6!8xSOT zNzH~!y=g~LYW1HgfxS;4lkC!t5bF5TvNB$o3@mN zJmSC)0^iqnGOI-POT1}IRRYCfWY-{bU$}X>Hw{xU6Rbv^-KOVYTbM~pZ_aqG@TMUw zM#0$(s71AR8lRgEF7Q<_Hq(`~v7;_?ia_qx5Fkcu+L4t?b^if=l^UveSni9{SzzA7 z5tbVD|9%TGF`BJ#TH-JUIAb{N$ch;N`#^2nvTl7zrn#h{wQaRG?RZLN9+fmB-a9UqXv%+qu)cbXcxy?isypf3)+P65unL&r0E&XG6&%vgeWVgvPx3nOSpNOU|wSquCC55q0_QnFECKiIa)n|ADGYm@>Z3aHWck_r=4Q!m#&a%(wk zP8!s-V>-3@V1o{;3l#wCjJwWztnsED@!DKoLQQs|%OKjdJRbAqgX-4G8=BEzaM&{Pzr zzmxaWjp^?eaZH-?)abFSfJzZPZ5dV|Q;_}+d27B~L=;QODqt0~nX)mM6Zqx_)-21r z0(;`1pEUL9U^r*HIB2e{AVkh82HhoaWE~I{(~ztQnPFD1VV2=gm7fWJkS^8OE%T;D z%mn1J2o3G6W@rx$aJK3sc9gwj?(FSjmRWKZSQh0Ke#9#r=p2+a^B_Y^)J#=m@=X<2 zstOGn9f93~5_*1Rj8@0lmdI?fs3;cH$~1Tk3H;0~a!X_^StyCIEU+=b$c&^yc9I2> z)U(g2x6Bz25Taz#Kq_P(nGXU}r)+>4VcBk6Z`0yrLR88+GEWHXwte!Q!ie!oQ;A5K zsYC{nxj;ChuhW_~Sw3rlNSP4O)M(Kh5Tw^3^SJKJ;86Co2${siGLsY`Zp4<^sY{U9 zb|GU%xJc%aG(s#6C$krO(_&#NwL)f*lmuPvSSohlXc>b1Pm6d-zEq}>B=Q~E6N6}b z%t28siE3pSP9XB*n=Lc(odJ3=ku39KA#jD@FqVBX^|@ltAYp%5VGEDxafqO zi3Ff;AXa7uECmt=VvQF}R}m?d-WFqU{FuREV)+@9?1asoCPM&8QW!`C<4lW93A`yE z@DBlNsMKqd&YXalDbBrQ{RT#+$P~bMZIFd|XHos$zP{s(d5+APZJK>GdxEADmlCWz zUiv`k7fT=H*#r!;oHR4Q8Mz`-k{3sjf4=lVT)l+XavqMIT@*^PvV3HpD}7LbZv>PL zazzU}ooJJ!8zM+QTl%2W6wK@y!t>nO&qgZZB-FexsL$~HtGCmj&?WP0b%DoOmx1ErrTeNYXdh(fYu406N4G@MBd9$$v|lcf*V4|TV*DPnK1P6p?bC>Qz< zTZqV(if)xV{-YFa$qx6Ba+R=*p<6Jwn1)bxRInmm1}j(mN5EqCkx{X+4y$H2!7}>? zxV(c4V)zV5nEx4a!`}~9^HyO+ilOKs!ezJl8yOmS#VjH6tes+Js(+6nE~Y6%8YRqp z#5DBFLTugkC8UMqcJi(hYF!aE6=_h&#S}$20ZRxAE_(dxgeYW5PCh_n4R(a1ee{z^ z8~FIr7#;P6(g#^>PGVnUH4#~pq_P0Xmr5U;xh)xcCOJD;lEl^YtjY+p;R!Pv;NvVe zT%(TBWni8+4OcVsZUJ?CrS!`|8R-~d;$|vY6{h45D9PztMe%EZ8G8h4l_OxZ z#oE1=dDBT-UwM*OeUw+_*e5|Sifo`)+4d3^fMeu=(nkPj$lG;fCfrq%u#=F%=|cB< zg`mF;+9ZP{;z+x( z_RRODV-~wW{rC;Aq&k96Pe<+Vm0Cd_wsjcBj?0lzK}Y9XNQD-XudApmuw6%caQF~y zPvsF;xfYX$K**ED@)WkeFVphzHGaoiMwZ#m4hB}p%9dym`6@DOo2+dtO+nis8(51= zu#`6p&p6kK3}#%j(sS`;N`)2fxiSE4U7lw3A`}y+`v_V;=E_`9$D_) zZ<$G;Ml`qv60L^W&S&?Xpk+>?Igo(wesL4Cf{07619ibY8_T@=#ZLq&PXMU~!U6DX ze-{fUr?0q(<9;}a0TdSkSPS49_8By?PQobfcl={T0m3ST#Mcfp?#&fi6n5OBIF5V` z^44A!w_}`jTnTYf%g!NdYdZe*-wU>JLI|@-PE?thenfXR0(H`_g0#(Qwu-Lob zQHN#X)GGlIRn@LwhSlEvjwWPeP*{P?AN5Az93UJHkAI2vVyyD+cl2Nz;7b8#jPpj! z*)FI1O`_gY~Vxr2u`z;~h zK7pdQ6@8%SUVNtALwF=1glfMNeds^KCk9Xt?-voE@8g>mphaEhQ(*r~c(JRM7lO8? zImH8nTQLvZ|HIjPfY()BY5%@g<=(5Sb}bi-t!^R9vMgj-7J?Wf%T2gq8=D$(EyN64GZ4nVq%|L8O`2XIu_mP!k%K!Oz9&B0b zJ^Spl>w4E(d+p=I3CK;2iXcxfZ}j?qV(U`G#|n3t1DMcKJlSZ72L<^>!>+h;MqW;tpLyw zSNFa0{sF?-?k?MN7sOFT&kzz@^Fbdj+~H5pV^?G#OT{@^N1EHdzRFfgN)1CmXq9pKKV|{f%g)eP@V_9rx5BQJn;Rknbj& zCY$XJyY8wc827{>(VBz&fGdsNBOD;!iKuI*mj~mXMkH1x0Pio{v4x1){Tr#erx1yz zID&nyl${+Tqe>-1rCQk%IS(=J2?ZVoV0#O9Xw|=7X_j?FW=k;c2}R<@Y~)wFVs>G& z(CJ^busO2J99ujzat4iWC_UPv?)7{l(U8TH?e57#W8IhpumEmn4xTCt#y#0c)Gq^c zUEz-HG7s9tOSJB3LO1JzanCst?JL0C;0iK3k`X$63~4(E+vH*xNGMYR0^(MwET+Ui zE}9ZevsVIdv7QVXhRhiq%xX6GZ?%vGM;`&@x9b+Hj=7ohfMvA@-&|LXiS;BHF zJIk>#5}v5aE4*>ZE#UT|bjq>}~=>0m>Ci5o~GUOgB zWiM@Hg_i+jn3)t3jO%58+>F54(l=r(v##HlKC#hGKG?t5x3z!_Z)C|0c}AtonoT@; zyayXm*-`Y-A%?1_6%pGY2iNxy*Gqiy(bMc=XShI|BNXGFU%(zHp&v*qrf%Z*8TYo2 z)Cc1s!Pu*Pun&m3F}$Q(BZ7cAhPHldHe|*pgu^$|I}~mfhS(j49UvQT>GLaFs$|T?02uj)!#Q z3K^ffF<#@gH(Na6h)Q&SxfmD50iX~PtKtBQ|?{t=$*{|knFUn zAGRqX`Q!GpjkhZk3pY7TX^!5Xi1_YeW36@J1OB3 z1Q4xv@?>8Zho_)-H&D?9Ujvd1@q3r z`(Wfl*m!qwO*9cSgmrgyVzD^w7J$S`K=0twlyR3A-0mJGO9WjuMwhW#+3il+253h@ zq#hjenAM^xqhLsAq2tUn>!=sii=>SBAtbxGUHhn6jZ994bZ42R*7@WAz453tvrcHv1VP>VOArQ=N9<$HH%+v=$6B7qi_ug65%w zk{EXSJ-AX8+X+(u;4=K6NExR2TH8AyQCbK+&;a$L|;_WTfbje+D^mkK4rm zhnAdMf-(7Q!G{WN=Zrve!K(c8`9CK6?dwRed1HQCegzlH{w(j|y!Yq5GOs(YHE%g* z0KS(yNd&-cx!2`x;}(Fd_lKw6geQSylm-8Fk8kVi?LScxOn3?ysmVh4HH3R{^`bfu zJEx(wKA7;#kIX_Kz6zq1svN*3sodg3aN<;Iw=5xYBu{t>h>HsJS3t9I5S@P#wN17i zvGq%W3C{r|Em2Tk2IcZ~F$+n|>3&u^pyFTx{%2}O4Ztq}JcgZ?2yjdtkWO^}3D5dC z0}kQ~h4WE|5Wnb=4e;V%!ZW@|c>>7if!MBcnkhKEE|~BPFS1pw{W+v+P8a5`dSgxj zchV^4glBt^Mm7B-U>z$E1;D9{WfgA-MS7kWA!z>o!q565We1QMaG{rAZ#0FcevuY+ zz-K(xE{ZZe+U(|>Qlx2Ne`<nnu-ucH-x>2Xo1!-TpNR0mM#h=LJn9O1(uPD zgaM43kcBL-Gy_@Y1zBTxFd=e>zb{c6i{$(zl5C0OJgtUMZamI-YRhD_h}{W9oRUDz z9;7gJU0}E-m=K*4f-BR7*dl~9#i2fVQ-cW@oylu(VIprrE}wy^9*2f8cWe$OMCVk- zHF(~^YzCuTmyEWaLH0J~Jz%+pij7i1pAB#uLjjIwQIR$FSfj5TCJOBK8hAiLURRS! zt&Ehkq%Ml1eRA<^+3n0AT(oP0iIB)O76M6J2IL^t3#Oi}SK3vvkgN$WC9m4ni|btuaX+&z?qGQ)}W%3vboc8zhcWxmAyvLl}%NDOrf zcPB$joX&<8u4MZ2GCJm<(i>vX<}Vqa`Ev0$fr{e>x(bll9qQV-Lvq5iIPQ>S{L!Fh2%O-->CGj|cDpwe&6cC3CEN+gLq*h{aR;%R(C;_mmkE2)axYD}x z##0;98*6L`@Oxe>PG_%OW)E!Rf!0olNZC$yVhbjs#l_+TsxLB7F(AJ=?6<=;Bw+1i zn2XB^R=w0S;7Vc4Fcx)FDcABm{g&@bLD9xVBLAF4 z=>FBG=(o%vF*!ZiK(RbYWuF$CWR6)7iDrB?2|Ol5)ag0&`OSF56k3Q~Ej*rco|3dW&S zwll8e_xY(jqb8VsLIPEu!=jPAuxK=JoAG!^ok|l3b1n#5kcFhFG>$BBL3SCkkSvwP zki{>^nvp?~jM|lEBa2;-Z9(RFQlc~qS@s24)5XEK@uQ4rf{NxYdE&G50qVw}lHlmG zp-A?1tIMA(|8x0MUDpjUeL7RYxTi&lR20cy%AXp(4m+4g@+T`|f1NG@EBU3H+>2mOm}oVCR_H z)AJpy@H~`N{uG+q$-(Qe-FTvd6&^um`BO|jPWMX<HOT?|-;s}cG| z8No1$ohDFn-1DA9RW^`l`BU9c?w)$W{#d{drA4F2+dh86m(`dD zW&e=4zeQI`Ta^)kPhz_pPkWS^%F3MM%Fc2tLP{B({XX_JV*g(jyE#@%7QngeHxmI6$@+HI$2jkQQ`Y*dWah6k zKbZM~%+Aa$@cgf2yffp@jQtsvob`V+`XM{(Ul(11=l}l5OCvW$F8=#-{(npO!+)<0 zCZ&6$YDDUtYI0*Fc_^Fc5HvFAI6AE59lJ7^l-?~|hf_&z5Y7d0$VQ0vG(afS9+}zk zvvAVf$Je0(%5zBs&7@b!Bh5}{zFsBR8C#!E30govPI`=FK9gQEkF=N?STqqy?#jY^ zz!`Z|IxfV*<0D5eZk3W?Qi{5&R%x1F(YV0SL&e}?B0p0VOnP;l00`+*MGp$$l6xs9 zZil;FngHxcucnh;+JK)DP|SlblRqdtEJCc$Wx=FZ+9StJ`zv}tU~2(28wsRN^29Mr z_u*p;VYRD+Nw3S}e6ttbuV;6jIDzj_=Yc1^CLgJ`)-L*_#Ln){=5TfT&O0lENw2(f zA&?dE31Q%=T_~PxA6R3F`U2+Fcd`x|?Bjx&!Ykvzt}YV1C^zS%SKlKI#>I<1CYV;^ z)&W!U#YQ{R^o-S(&jp=oH%nXM77a{F{{)POh;y_0S z$<9CN)pw%M4Ezy+jiv7rw{tq{`e4#)@7#nSSaOeGq8Y6n9b;zTG-D?rt%F?LI_b4| zGICp?9~PQ`*i*(hj$&)-EK`oxmSECr@{#KuHEFlHDu;l+2c>Ul(I2#~etUGVzmET@ zlvnQ~R~Ypvn$*LXq}w6b-LN4S<>6QCPvEx%$3*Ed)A#%gm0w$%|+k|wM zh{KvD%8;=^t;>-nf;-YDFApZA<_mYDBd^y9ryDlBr}l`vgF2(=^5HQC`IsYvLp{Ce zZOj?z{x)Zv>E*bdzCkfkp=EedTE7s*jzJ$2!Vi~`jlra}dx_heS>{@a@!IrnfL-v1 zIc~LnY=F5Fj4HTlugqMo#=ru9ke zP5oVaf(fw%Ax~dyBWBu=bheTS$iS&96`V1syv&I7e<@&0QI=?hm9@$$ckutQEM1d6 zAs(W#>dbynG^Mh%AmD7n1IaeYK|5XvD{-%Mc7y}rD=|WJ_oh42Y}Y9Hj=L#eoGogk z=G3_yQd}{Gebxj_7NRnGWwA3i>{nTBL}SS&wK13wnUT2785{OV>`uEntBrTEp*hP8 zf&+3w6h}`qyOF&tlFTK)7D?UAMXD*q{;o(+_&1biQNQL1>fMjR*$2QQJ^6{$$PoLx z!ha=g9^zrC4mvP`5yw-YNUfB>0S zaGT7jze0BHzzNQ2aj!K$FbwQ(v%O(}^rR?KC41^G0q>QeLKTHhVP^6Ch}#2@{{p$J z>RO})p+Z9h+DwFGsY+Jtp98X7Uz};zVHIo$Av@YB`}MyeS8W%LzBs3)wr%tMV{8dY zQXTN0dAQh-jF{RccqJ^!KC(*9_tU~}J708<%f>*58Aqalw#tb86E8ROyXY2MvFfig zY?$ngG=XhZL;u)gLvz4_{rOlgyqdA)NfZ~-f&LNb{jhO*9%9kSi#?BW#_S*Z!Z&jVhAg%koCp^uHklNw?!tVn*m>%spWyvlugm`up zY0`K8*0+`RG{e|a&DQ1KdxWgQJoPcjxqg5h1hs;M?EB_vE@SKa=ZxBD>+f?DC z*454tg2%$Mu1Je|=y71qv=+`Gjv$e$sgqP36P|uWR%smmCrE61um=_kPr%4GWvA)?-$nf_(jPthO{s>OP@q|L&y2y|+;kg)BWgz|@Q@;jH%px%e_2=99%a zBxbh0&J{jjAqQGytTC1c6L2uIJ`r7bf8lK51KT+)F*wYVAqyib)cu7sg%4=4;sOyO zj_^}+W8j2mVu=Rz#&qEW+S%!DT~cS8d@tm9VxKR*MjbL$_<(LIG7G+4Uq*xP^?+t| z#-w|VCdk5U*~jd|y>qq45#n`!;Y8sBob4G>)=gdlNwTXC7k*sG9xSn_TBB%k^_#=4{ILTjM50`hkA3zjtRnj|_jCvx+jmllegA3t{|QGYd0*m+=4@|8LBw&qzdn8l8>4J$h?&XS6i( zMC416cSS}c*F@?fF)IGQ{fE9B>R`2|AQpW+l58VzRR>CGuOmYWss@GjWtv*8seVOY z6UuQ1slRqt2_#k8m-M-6(*TRUDwJo)P7y2(CZ&G~Q)QZW(N}~q#in)O4$fwufjvnL z6XXixLq%T}&7Rdfjuc5O}JWTY52Tw z`2NucG5*msM0i4Uq^Sv2*U=sDrK)ao#;SqZ!!%{crkdW7@ z9u_?Zm1h`p)A*$HH5FX$3=W^wGrC?#mu-%+#Z5|K6QI&r6+ROd+Dcpv3n5=BHBE?m zXIOYx2$_4#>MAy%yR7(9DQLpgI^)7ahU*{-SqBTSb;8Lp=}1o#s@Z+%J0nG}<48S< zQ;%B1j|EwYC{cQvmFOyepRjCZ!-R8!wG1;2!K4&5q1xSe8I2@QarGaz!qXNL;o_gw z(rlLfkoSg~O~It}H$Al1G3xb3EOe59{yfX!L%T8T4it;W-ZN5@;2vsTpP-*n{?>Djnzt8yt^=lZkM8`Cn}vA zvU1@GOFlHx985~v6XIHD~C#|{*mMR9FbU-~??hJox^r%Mj z24;s2UQSB;6TsW`RtrFz!`30EmdI(Bi<-ywfih@V?{U9aSe<&;=%h=e4XP;88Oge{ zN@9OSR_n==I2lBaJ~$1K;Z2N>0) zD+<}*eBw1i64*yPyY}l1-o;9vOK}vi%^4_a1*EG9QrX4XcO9QWB|%$h9XLZmifs%w zsgQc2&Q0~VYdTpjF9su(Zc}_c16Zo0U@eZNZ&1M(oXvzB-N}qTG&a=R$H+vbG;pa~ z9Ny;2RIpEHFE@QndaV*ZXvUF$l)M!cfOJ$YxHeqHbpq*P3Syxs9F0(niD@zbdwD3Wc_>QXfY^mfNL3+OLDXD*Ol^+cLw=XRC@>7GLF zb#}*lg$zTYfpU)onYIa?vL6Vi#!}1rB!yH@)j9*@oAi{XrBQ506=`;9q(aqM-xs}6 zC=@mwN$Mv41bys;hMn|M!Rnpi@eP8pNa#qA%{Z*7T^wngL@zZnN2N9B>kTHeteY@Q zZ7HBCsM73F$xZ4%JJyYIG%`v&!=%(utG842D}-n*JJj3dwvaYB1+9lNYN$pRe^M^g zQ7t8krAt#7D>{UY4v|u-@*128sZ2=h6}nPf$vfDTF@=q?6H6Zzu*unn>IC%XpF%_M zVI_5?)ufRM>aACgYB!-NcqxIqcgO+Ut(8RTs9??ZDMjB9jMO)>ZjITNt@T!GK3J)v zhINLzZ~iyfP1+yOM-98z^+u;Q6?Ls{o08t6HPD3zE3{2_+(JGkrJw2z<*Ti8z9rk@ zf-|YPDVUT>D!?_aZ+Zk+d_izs-NIhEL7^q=cB~{jf=Q{YdT`Kn*{yoe>AKhRZWq{X zhDp&JBB4>6M=@3_o{Zth;xD5$43zSs zi;ejTk7;+k{VZWjVOQo5W$ZScg@4G{ZKlPGgUQSNL#y5DbJ8B_<)+3FnUGt&)GvBn zlF9;DM)Vk|71*41le$=)v%Qa4JQk?S{1c^aqo*TrA;CC1xk)3B)^oS;>0^A}*Xgl@e(Jr3n<(tBnJ8j@*|8isC{n{8X{92W@8#C1! z{EAXfdZ;DT-4ywum)}&qwP;&LE@IiGYiz2f9fW#$$DR6qe@Kf zc6Q#s@uAq1+~~_}b}J~ot!b9lE~<5pm-GEf3eMcA^Vn;g(mx_>sHlNbA1JrBvw0Bp zBo%vbfN{9NKiKZ{|6x6d<7`y@b*%kzXOzE?#2eL?#iBN>nPURC>7nq*sIXG7{7)GoNrBRv}!5K^u; zOv5MLGS5q^!z0^5d4JZJIwCFSh&QawmB8LPbf=i%>GM}H@) zJbsna5l#tzmni(i-y|B)0_AEjYu4N@exm%0Y!}U-Mlu8e4a$ehonz4hOLaF8i z(P^6}Kr2G1^GI3sm{)QgE`rLPF|z`Hafyf3I}Q0J%_2W))Vz3}*@49WyO#W5 z2^Yt|x8O{{zJhXY|N9Er|DT@N~Hh2na|EV zlG&WO5_`ZS8Slz?PR7j{+cRo2lF{EszZCs&^wrUU=-%jx$WO@l-xb-4Mc@Y)3G zz}MvP$fbY(h%@}T@7t|txWWF0U@Ei=A58L8!{0w;7IDv@-OEdZsnAYbo2Y25*jurk zsP9pob70P6(C9j~CYTD%#Z@sN?LgXO8^wk*ZAOyO47-80yHy@;rZWFePQKUO0 z?H%dhOu5O6f+-Ytvp+9K+-8NJ;?U1jXb~=6k=m5nlWNog;6jY1LYr{aazwkG$Q{?$ zS%az2BHXwP@vc;(UCG4kY`Rp3-t52Y(6}nlTM4VT=Slqz0GFz@9J97}nu0pIMa@<8L>93vHT2|Pu^5eeN}8;Mjd=*SG4f?7QKSTOGTo8x=hP=fNQt!~azR~55qvdj0SC7Eb~IKK zRwWT`b(80aR%}A^=uK&=s%32kWB1j zH5YkHMcs`YtsH^McHS%n?83jOmb6YmYm-1PtEdZC_kGYG0sv}*De0O*?92htTv4}! z&tlGFTvZxI^})f7dpDwbvfR+vQaS~1OaR|fQMbKoSl6pMb=lQ$V=yI!Q>eXhP)%;J zK$nN-uiMVmEN5z@dXALU(ZD(c&lA!PIaose>I;Nz5 zO5UvQzqF$6AOQqvwgajzPRBhYW20KlrF;svRb!yuA)dK3^#ouom0{_Rro4Nhd3XobyV-eqQRf)nO&&a)L#my7Mn_1V#$Ag z68zO^|6eyDw^PzQRWFVmY)Un!8s*$NK@iQlV5-=Qw&fstMyip8OqVHf$0k|fI#|#w zpD8Uto!5A5WdiIKesknF7nT{eyVYJ=A4ht5xIeLX$|=klBY4f!#U9fb1JlCB*>wl1 z*%;0;X&kLAH+?IDsZ}1eIvdnwsYVv6R*pS0nlJK_+AJjPsm7fI?ksu(bzJEYl^Gzm zPz&Z>wKFbP1yd^|rJq z!Ielh(_jkuWr-;AMb|LVB5Qgm8l}|rlI3V%ky+{?<;=9miUg2@C>3qo0osW#U@GOs zC~F%cd4-5={}k;i<08^Nf=H(dJ%){ZLnLM^5%~%TzgoyEptXY4x&WZeGOf;3VvJAh z9Acvj4)LDYUW2bi2Z_)x^Zf(u&XG1I67xSfJvLzgo67SKH9I@_4)f4hd>_3MMsvwn z#&(_SvF?Oq(Y&zNb8xVa{bG2K!jfTO&Kxi&fEH2NEKS+hjqk0Pp4l05Job8LO`8p| z=4{a%u^0m9P_+7Rh@ImB*l}xusRTW!w&6$Yo|ySyH1O*y!ll`vmmS4ld)^i1BQYkr3(F*?a#>q%1O1OFXjKF|zjvDb>Rn z;Z3J=CqywpJkMjj-Q(R>Dt-^w|GHSa2af+-k7{yuk9P@m!Jpt#0xCrku7|rk)QA6m zT7Av+$ef~OU~vf;z7n~#aO+~Bc}`eU=lR(w@Pfzr!f4*aXr6qw$Cf)|$vadB4OaF9 zdVWhVd8Y>)agK+x_U7=Lne!H5qR2WwxOE7iYt+vF-?Zc_OSqkPy5Qb|TMM31P?rC6 z{x66C_~-mr<)6&oo48%6Te72LL9(z5?3ek;@{)GzmfPe;+e5u#2(?UzgNb(W7}ipv7GEb z5C`x{*#Di`H)mg!U74MY1>o~pAIf@Z)~#93$oyUAYcp@kT$b_qjMrvdnQ>9{vFJn5 z`=Ue9!_g}u{~md9WOHQAlEFc;1d6-Ew zjk;>uQ6s3=f>L9ec?``%u5FC3%YtdIqb647RCHAgRh+bGeju1`PS_3?xjUAXdTVMj z^+0?t)>twqvAXHc4P~d&W&is8d(kG-C~kedW!U@EW$W}71sX~3R;E4@f}>N{bO+O0 z!V+7uDRGJt_don94y32cdR5lxwEfke=I25EVrY!wt{pfzh^g1kEog)hrzpFx3}gID z8;C7Q_76+BKT@+Rm=1N|Gcn#YZFL_j+nX+{J~%Mg)2nOAs(Z`Y%l3_hH6~jvJ2PoA zWi~=J#3FHfS4~kcjhd`ROsq_uO+B1?$o8g-gXvH~<{;zQ)E80@$=1|o{!SFY=}nhEHU z)I(e`o5oIjYgZYI`Dpdv*a=+jY(iDRv{#%H5Wcgi&!!%7<{-PFUcIu546>cdU_33; zu0D=|bT;*w)I)a70`0J0yjo|YIz|o#({<`Mw)nea1*x}2@_s>c?&+d;P7Q8L(@z7v zW!r2JtZQ{DEiKqZ)Ct#24s=rvCLhtTcKPWwFlw5DX|HZaj>qYr8CT%mbPqAxW7TvN zlfDmakmM7Pn(Dz*T%5-p!(();Dc{uPbbjisOP=^DPab&a?y^%|oIb?gwU@!v+moh? z{Xn$SVM-UwXFK6w8X;bmX;acEX(W%59$!XD2Q@=+>0}Uxt8l%)Ef`w&|)a(nUtHYu*awvL^ zqPemYr9>MOsc`tJMgLZyjGMCllFoKZil^Bmt*2&vFzq=(q%}ctvlOTO%}fIH&N>&& z1FJdGm9Al4cwP`Gk6|IW2@8P>WHGl>Fzs1Eq%Irjjgl%j@+5B((Zw%J37#25%JV9g zRTNh&k1d!H8j)7G5sMiC>FUMO2BZrVAP4Eii=~&Y3Z_E}P?|uxYLT=Bp(*_EgVH#{ zixvqlL+G{rNNEh=%0| z=Bd90p>@(nrq$EX<+)UE&Eo29LTU=Vr1?lo7E3oHHGQ7-sxna#uUJa?ut|LMvP~d0 zOmt|2vG#8KduuO7o}n^wg0eAoOOvppUX8)Dw0J#tB*t@f zfB&4U(+gQ#-5nGomj=_) z(TYUdpB_1db9Wj=-yUv{^6lNnGuJDdvDpbX*oyPnUd0a$oOvl*8 zv9v?M)N|Ml#LVu_a^Auh3DlNG5jiU3hwk98lSVQ;9-wTzGI;3s6K13npZb}1lY?bM z%o}TCS5q(*YU=kJ6R5;Y&t6ikg3-q9! zGfi_qr<+|K_sH}ZJ`ht6rmQs{e?HF{t~)NstB8=SxV zxk8I@JND?V<=H)mNov#sw>oxymw@um$^b3iJdA+?!@Dx`%33_);jNCKKSywm0rr!w z$?W7P^|H`%T#|pwMm5aLQ%gE_{A|O^v;x_`&6jn(3$r;R(}e1{tB<#Nqq)ASjb!bE z%9NzABqORkJQP0c`1>9Ie;+pPI_Mv6cFg{?9=6~Y^8~r*LwgZCcOb;NFSz}`!8X+F z45s=$_BQ84f3d#SEK%IEEBmDgD*C4mZlG0R_E;x-ZH*gL3zkhxN`1bdVi)}SQWeC7 z$Z4!3YSdGRHD!xqOxePU#HLM*n64p?Y^9e4doh8|TZ7NY!$gdMG50!rn>jEEtEs{*FFJ!)kps60@dz9JjN)JgyQ zRT=y~w<4iLvt69pnCkKZ4C(QTWJSWxZ*j>JNz^cLRLMHP6mGm z51VPnb=W=nDwYJS!FIEdtu-1dJG;9xue5pZk4o`+F0te}C?!xw*+dCclz=fAST{-sG<2 z+GJ+VuQ>DnzMPlkbmd%~a|!JKw~5at-j+DSDS(#5viN_-A0_wyTjF=cZ;Cg@FN!@8 z`)2IjvAbf&VokBt*-vDDD|QZmJ<(@JJEFUyRqO^oi%drDjXWoEBGMYEiRAG~ z|HFSp!Hn0W6U#GT_PrG+_d%U63TDvF+=dk8*F6;{9WO)|Sr*KoKpWd#g{ZsYBtb~H zK#GHzP<5`(Np+-NoqACw0q^2e?qt%6U?xx303FX7_wI&liHzF+6vIc&b&652^Hw3Y#=WOB9ckw4~u-)v77zqL#uh?ImYXDkGZdM%S=f-?b z%1^DFVZPX4#_QOmrR9M`6$iGnL4e>~5e?mkR)46wvv{Jj;sEKr>?&M>w{S^X?PUp4%#qy8YoqvC*%RNmiXk=B%!sj zQg;QdT)`LJQgJ}3lFjTV5Bsz;|FYC~>)Ke=yh2#c` zN7pn}x0QrU=sVL=NCjvr1aQ6Pc^`LLqI+s*@JkLxM$}M)H5LH7&W)F&(gvIdN=p;O zQW~iW+nW#SxI+;iJvgXDCMpn16NxhDON$FB38tln>WSKHHmkmhldaD2CT^^o7Wo3{ zn)U@T5d9S=HJr^*W=X;sDpD{7D2@Xds5p6b*PUG_xEBl?s`N=jk>)t7@V}y-uOQbIfSS?%cPXJ1Rk!}fzvOe@0BPJjKKL+5oMm~cPDVl`R`H%cVRCx{S1&(djiu^4$XZ&R>D318SpH zo^YG9sc$1y<#m>pK9FrAn3nRW&#RM}{97L3_Ol~Hz1+liNiZ#yQ5d`eXH(w>&4yazY&FIx&p>Bh84p*<(o1csBJ@T9spy zoKeKtJbhF6xZ3Jxh<2q}3Vi}Q(yF0COyB4*iSh&kZqSWLg@kv*`loO31vIKh{*3|@ zxZ~|Flw{+HDqJ5{LDl?E^n?9fz1U-W8BN#uE-yv$A4t&A$<7GRUlU9p_m5TOA^bn7 zpJ(nG(+y7C`+-tG`yBJ~nq1`nj+`}mc$Ay~j^C69)7N@LZ4$&ELEvR&YiD}yB`t4S zjeImLM4#{&5T6T^WmJg>8Bs?(!ba2|^crFrj^ei%Aev$Nu$Qs}olX57smm#3sV=n$ za8!jUca29?s}p_)YA06#V|E(m>Zn0-yiOnT0Jea$sow%1P{uM|(M<=vtWJaIH^>xr z%7Dc7Y@B>oo-u^KhLO|9@<05{G zaiy$9W=GP3*oLD*Q$d4?AaKS^dp}8p^uDn4)b7(tIF zlsR-`O-(Sp!*|%WC@*`EmmR>R)W`qT4}Gw&chK(L)p|Bk(-};+CETidcN5@G0dDne zp}%lbvG~F&@QY!Eqdjn8>R<9lS(XL+Om`?qG1TZkc*eA|NPi$*?tmQfs?_$dQaN~U z-{QTuM+UJ0NI|5BwIV1mv43qa-Ri+j3BYgmV2(kJ(n~;hj&fIaFSx5hTpZlJ9=ErP zaX&~O9c1h49XZ8Hw9VrPDtb-oO<{RNq^dO34DuLok<0Xz9(HXuus3=bNdpwxZMl31 z#7N(nX6k7~a?nC13}(ny|6EHJ&%J@?)H_nOw7nBM!(Ol0F4mK0cw|i`$k&53FQPuZ z^~9MGIVP^~2tp!XlX{)X;!~W#<(SM2j{o1f`;*-9+&AQ&%5BeGn|w0)?c}GD_atvk zwk22PJVxIC59HjHbBufdiNwE=@&65pfyCZKS^Ql58}X0C{~>-$yd}Pz{C{7FeJJ*d z*sZbMv5M^T+27z6z?WtBX79}|&3Y>9n^_;vdM$APS7u$5`Jb6z%6wnuotb+xYcrnC z_#qkp-;i+|8UM)?68%l|3(@yR?}{FaHbx5~zluB@d28g^k?SLuN0#wXfA?QSFe_4o z#U@b~UvlpGOV0h{l5=-!p2_~WeGJaP>;ol2WT=>--U^B(y4&3_a;i)7b#*YC^r+Ho zL%jtQgAPv#cOsPpv(O$Zq$%8YTCTE1KuVsBuv$E!#pL-;=96ln~0FT&9&ek zmYn;gE#b;5#~iie18aj>ks!h9T^s#QutgPT6Yf;Z)2uj;aJ8EOpOkR{PZI%>xVpl`wBdsp zZA2XrAIud4Tu-znm8P*sz6RX}hEy z*9J48b${y`lQ&2n&Ko;5Rd1V`!FhFP<8NLq__?nOzA!_anI*giZ6-AE*SWd&d)Ie5 zIwMZw?kb~Q#HZA@^=^7UCfGr=)8R7bz`*m?$sGnWp^d+a&f(R6)(B?z)#7}JWME~C zme7)4n=r^9Rg_CVU^$g_zZ%~l8l@LDbIAz9;YzF58L~l;P}~lhA35F2Av#^lid(w+d_LK8LihxWkaxxWukhWVzMt{4)gGuIO?55GpTLC4ifL=dTdpco%8J*hf&1 z26)ve52>?ReExDl4nY^W5C-+)aE~%uQj!>!m1Jwe`4(3r1-na8>FD7DMYQY#89P+^ zGC_9eq7;thD8&ZFxjwr%m=W(1b~U32Y_qVk0x~@qJ#a3QmNIT=^Cu+5Fm4+)IYeee zy7Y8SfjzxN@`cThOB4r*2cHq?5~w!cKurSi?cMfWSQ&_i0wwZgs60b$7Rtgb*h5kO zy4XS)EFxe+)#nNsMCJG10YEg&05+J;eMNvazT3jqIWsXM7A8Qk zji7U17Qhx>47nITMZhGkbffx95_1xk-A3(F&L_jeY;j|1Qps@#U}KZ({DfVd){3eb z%!rGrq-wXy@!^j~y`u*|7{@qhWKl9zH4qK@)XkvMy)t$F9!iFhdo ziR>(*Z$0`+EKaa`8!G1`R+86177lDtoXDINx5}DhiEwUqQ#rd^&PK3!onSR?U_C7u zCj>QlaTt&aN%lh#JAta*;QEU|*KqA4*V3FZw=%|a@jGD}+!i`v1IR{~>D;84&@M{F zMD(m;wiTbhR6uvYM@Hp+oJ+t+9n9?Yuom0b&tEN=49t7Zj1Ba-9%W7A4lN8OGw?lE zL0cfseMaCTy)vly)2vJ(Q9ix5+^HsC6oxZ^+?^|yf>m6kPk=_ZGE$V^qs-r-&Cc$5 z2PqP0NT)D;UP!mpVR#^C|N~tr`=0T;l5T1M3fuKp!9ce6a zBo$I^n$>wwYKRfC<6_F^E=sP=m=QG+roooUa}Nn~VM8+C7wQ)^5;w9M*-Clttbk-q zbrz5gJh=U=J|ac}RoXIn?$h?hF$GO1ttPr-4mg#B)X=+67FxY|_ zu^=ITVoY>MpsQxktROlLh%Q4=~T#^8j4m zMN$^1MArZbr+9>P!T|jqn=g^R5sKz8( z1T%~EugSw2WIcZlFc}bz!+3YPNy8%5L5DB}8IoBtvF!Q_9M%biv z?u!1UL#zd`cXp)Cqz0ov6yt_NiUA{wF@A?l9<*F;%sT)PlG(dFm}&68UnzIpX@0+t zJI^@yFmtIFY*Xvqj)0RXb`eGx7t)4lYDgE7;6OxUvnp_@M@MQ5aKoj;lD3bIAlyIPZKYp_+|4?xj zcG6Q7C%K7cwCChl-=)FKS}!`7iRf11)lvDR$`Go?x`7Xd!N+Py)*HfY`J+D%jy$;J z_s;)+U%`tCZifG_&i_;X*YfYre|`Q4SpY8O4uD_feV%B5mvH;v!My6+r-%p`&wXuf zZ*Cj80G>>KEBVpnE0f*H?a9)db2;D1nIsdyP)<7*fE>;OC>r2-iJKE!x%2No;@^zl zAAfy(Aig_Z70-(OBsLwpmuvt>VwcA9vVWdE%Xxs2>_gdg*#%j@^GkQbxvgoqNFC+7j z_eIV`ZjNk!I1V{z$wO8Kvms4e9y9RU1irSrPuw_UWwln zZ6P;nu}YV$7fSgv|2|cJSuh(iGh)&B{E`}hIq7Kj?5oE*WzL=r8Cj)Ozhs@gwkO?D z*UEuMT~aq2lCjb}tMex##s3u5#qO#Tmo(2VkTBO7pO74PGt=4v7&s0!8sX;t{Jkb$`mEB=@uOo=}3_)z=Fw8ou?_}EpYkb;%E{`jc9lC)8lJ)e&XxtIH> z;(w7`>jdErql6({9L$E~Yqjf$j|jn)A=0JjrjU0n&$dtgu%tM1P|jyVu2q?3q7T`t zbr%{dF)AG&8&a*ROhbIoUcOx`yOxZj+v%8)VO7Hc7?&S#Z|@&s)8rs6e^JAbXRXF_ z2Il?3=WPQ2qd#fIVuR-$x;0bU;|elB}e*O`7Zf6RJj zl^_A83V$797lI{oD~?Ov5Yj4={RwivUO|`>)(=i6^M;U46&INN0m<9QcErv|5ZP=< zq?Q+&_*3>c%O$fC0%dhyElEka8^WBiFq>USp14_2(rQWNpLga}3z=cEgbb?II;i9l zp)f`fKstQ(o$k-_U^XODHP%-pRYL88h;i_d-mq*j!7Nw| z3@!z18hCbSo{&eaN}2pY$wlYd$$~i>5~uo=CY+Iwh$04`8T>hM+IeOhqbH4A7@sBcJ=>X#a3T$m&H)J!GXG1#qKo5W?zhD@o}5vo>4&N;s-FLN7KwO*+HY{-*5 zpSnsYJ9I7uYZrz@&If6|fhgGst2Tc84N)N7@or`-#e)FxG$~PSwD(+qsnt&0(hs`j z9il($SyH0XIPbaF$gZ32!;jk9#|dg0z_X)7jWOPHul9!BBT6RBJQ?U_40>vms5Pd0 z?p0t~PjKIoRy1@t{-83R5+$mQ=$?BeAd;8$X-yFf-EP)1qC~CH+;gu0a!`z4atzV@ z$fdoSq9M9J4+5GQDRAO-0RzNtaRXIZ&eB8S`EW!dsW! ziw-h?=q}HJ5_Qf7@)BU4Q%N&D$}&Yz=B#HxiAtlj=Uxno(4MY4m3(JsC-wF0CsFPQ z?TY~HK$(VDw*$F%^_Jh2~3?8(Gkp(&YxU>F=%Bi;m(OJjX6;r0V^Hp{IP)hSs#4P z02VxGjv-b##`z;5hyxiJ?5B^#Y4mtGhNeMKRmbT_b4?Me!K{yn*)zR=&&I zwOwXZ77!Xm>_#ZGZWZ%=p%y$8obqOdiRTDX6En#71ldO}UYS*}{1}Cv6~8f%GhlyL zpanD1UJOpq-dXV+fgEW+_Z@+xeyH9@I&dvfZIK;eYBTL^-xg+p_Hs)pw46GL?SM+u znwjI=KQ9bmomyxk`6-dBvm!kLRk|_rK0ubfQq!z`lrDw&*t_bSd1>2%<+IF|Vtn4G zh)kFj6QZ1Woi+9OJxk8r(@I`#(mJwd(yLfrm{TG|LeZjX$=3_T^__h(;4Ea61}9Qv zIM0&LekQ8?og>Jy^SF_KQ8jqQ1_7a98S;+4Xn=tO8*DVy>0*yJ<_TQm8>; z$6XWxY+|2p2cT(S*%H$PE6%QTfW#`doV{1;u0@41XjiyBJkemo>nh1tKzp3i<;_L=NkvRktAvi^|u1@ZvAIP2!DZCRCBIhnuB{3_i4HJQWY z0=z7=J$hZVIeKyAeB?Wk2O_VD3`O=wE+r%2 z&zF=0b0S}wl{HyQpRx3+rCSr~$3vKRNDjr$Ru#;Nd@5eg_U!Ai zUabn|pkNj{SPt$=Uy?4??ZOK*7jmyE$LSx56whVtBx<9hcL;O)AfbnI5HJmXu3$37 z_OpVhHtiVrDuX%rS0akIVJUHXUx=*yd~D}HSO0?Tj&mPMdp{>0W*?MX8eO`2X<_zZ z#run$km0*)5QJ!$A#y-m3_>s2MbHO2A2EGvf;kZ}A*vD}R)ILeXDBl^SJ4xYHzy`0 zd1)N^Maa{AqZ=`ej`kD>b8s;eR>u&oM9BGg7i39*B&qi1#K-h>c{YF*{{3#vp%ui# zB(2Osx*RFCX&eJeMBG~z%!z8RAw|U0xDdZ82I>eeo}0sxrV7`4=dbYJmAy z9n6V$Nq$8X`BE=OomGF1(iWO1%DHq=FbDUtJ}m{A0;$WLZD5oKbFePS;*H2kmKGDB z3fn5hKUd*9BX_Ybl->X&w1jNSm}8Bt7Ry_ zYK-5A==Na?PmODTtTul0}`v9f#8*h<%PmWNmqpQYLzn@y+T5rH^!|u z7xJoFXE1s>GOlkLX4}}WV-yU(mBC!dtyVgd(aQjF!S~=D)GMS^BzqS%eJLU?%yNc{ z<-uG?riz?#=p}mcz+vhXQm9pKR=*elr_UG$4D*mV`RV*3WZcbxWqp(cN^>D^B7?i$ z_(G&=VFaeKRyrG1_9QA&Yb5sk`o9}M4H`h6NkxiW3w%b)-PMCAyK|m9MXKHY`6(Ode2U#r zXyhiC3;9#E+ZXQ_1{z_OP3BiW?)f>-pdvMHhy0{47dVm@=1YRP1tR6xz$XOq{KxVv z$kDN{tGgzc3yD;VDJSPXE~J)!-Nnr^?AMMymddrkTu7_X?xoXy%!(yyU+X=|%n1F! zzC+I}P%Ed?epEQ_G177dL+HY6Hy2W?)uzs#`xk>q@9)KYI~S6x7E@)-3nG2o9gixT13stmYvR zD|c;HEtHw9$SIj77JAN8u!u9@oM#()f7U@xvQW~#bU(w(v#-c%*HUahj0v4f@9O0H zJm-p3IV&1l59Rx4A?Hw@^K>gx?Lrb*Ai^z<B)Zw@i>l$kVP! zu~~1^bU_B%OudhIPE1RRRJ9p#&eMMM$wK%JCUvI0 zSeG!3X2&^C>ro+Fz}y`kww(21Nt+Y@60*t&^Ld6G4M-?vJAqtkWA-gEFF{tBspdQl z$t33FO&9jcIgu|3>y1mFrycnwi?i~9DY`k6{uT`ruGW~#c^Z>pGK#xdY6;l@n4*kW zkuXq+a%akY4a+nU09`B=Y%RP^BusK{S<$`{Am5(G)H#B+n0o>-WU;2R`ihDPx7=A; zUki>PL^%7L=U}?~LnXY$JX3#_8c`@u#JDieQ1=RDqtg<0Qty)|*>YiHHshU=@Fsy; z34@lN3K_G{tu&i;$z`%??-^qyaJMxx7(5Rnrb(|TX%<4Skg1LWJO?AD$;4YE=BOsu zXqZAxw|E{FS!Fiqk|rVC++Zp61T0cx*65PW_I^9lVkD0#M&En(6{)gTDrppm^jyv| z-r9{@WX{tt%xhMSO$O>0lOY(dv&NEU{F95cMlXbYVX^PyiElqDK*(htL8ezQ8arCD{x zvW1^}F75%Ov3ha>2lhDoJP)dJdh>e)GP33{awa|3L+YIF{2oCpD}9(_ zkXRfHTX%Vw8wkbk7EGs4aOBuk4F_})G^?%n|L~H>mK6M$^Z#$+27sIJ|EIVC@FV%J z%kRyGRK9~32ycg!3$ZO48llye;Pjk=azBl(J`2Y9j*5wu?|0DT*ZUcN@ z^5w~au&QEgAT2_F*oP#;FIq}3#5)UQblXz*OKe0bi6@N1Ro%neCmGK+n zTgeIVyVz%A?~jdeJK)+_Jo`u46WOoJ9?m|Hy&*f6^{cE|ZUuOrMFFhI{8Q$)Gat-+ zW9IFdhch>1#xj1MF`eYJd03;ZRW&w`W08{V_|em_z%y(J9fNqd*97xoj#{Hj-IByGd5k+4Nd4c<%qR)w zp^I)&b88YKky) zzo!BSra6W37tD(o>f^ZiM$_Zl8o2Hx87F|uJs-@6+_2g?0ly`TbI@_f7Is4}vU!-{ zqE9UTrZCv~dk2TnF6TWvjF5gpZ~2Bvd;4|vcIO>Ke0zN9BnN!$$ zSv2Q8S&Wpso$l*a70&tKCc|caNigpTqpmzu0bdh9O%2E56t5ht7En+T%zOG6A>F5t zU%i0THFa`NsBt}iBvY25z9JNf7Sk@srZSlKED}G50lpj-vzs_Lm7^REbh2lYkzz+= zza*IK`0Uegob;1Hke7H`sk_cp*Dpvc+T^XZ=5bsb%zJ*RyA1{V zykLKI2SghyCnMI=%Sff8wx2Vc3|wrb5a{w?-cw6LM6IOn2(g`bGHVuc+zg(k1wFwG z)q(FX8d%{0bw-%ym=W*Z{hd%)JzX~GBRyjnZ{|ayS?bo{9|%J-yAGVOy`)~A56NYv z>-OJD?(Uhe!w58BNGyw8zyC%E4IIUj(TyRybenDQuO%kP89j?z1US(;zd$WrKmSSq z;;?V04>2*}uUZw%htzVF>*`+$)1*FVq3uITS?@ad7ZUnaVwCa6Ho&<}CQ3*sSG%76 zxo}(x%RE8voDUhKk8t@nNi}>e{r0}W)6^m)kE>iK|4b0h%CUDa(L&nT;Cl97C2a5J zW)baE3g9Ej;0R$C^C5%e9zqS3pW2JqEly+Br2iKAVDgBM@e?H`l zTu!4hek{=TVL8Zc3!_y-vgoyeA6a!cDJEe?JsM! z+gVtAIZnp}5lXQ3k>K_|hXwZ$hXsywOIo|8re1FP13K z))=500Ua1TF-X=ebUln{dfjd!2H_7BD8gt3W`n%}ET(7W9fA*$A$)(jpOkd-;*A28 zX92n%P`e|$d%A|}f_YI!Nq1)=y$-29N)eL!Tw5oV^B=4Nq_@=s^Wu+sU|R+c99MD5 zm#%tgM*YnKD;6m*7S1C}j|t3mC{ocVkckD0G@EW6(rYE<@M}LWRnNB)CBWbigH#DE zE3xGt4sHIsT(pbN-iS`jTo;cNvS|g#YrNH;TqWUI2J=uzRVq=+7`x@d7;9ksi9nht16lfltdU|v(pc)4!wQY!-QDG{XGIt7 z*-V~2apBp`RNYfW?!}O@5Z^3iLAyA*zI=AdIHiMa^PVb3s-lK#6mAzGTQnOTL}Y3( z4`=kclS*n5;*c)lum~b;pDb2ljA{X#1~)GqT-qHC=MlL==OKzt7(+O)NJy^Gc~M1s zG8#d7~jR-{#O{huVyGTf` z(0OQ~_X^y+v}ch_y(K=#g9-c0lNVb2GGroyCev4TU63^+69+VzKC<(IjBJSWqJJjS zH+Ec*H7yV3#r=>)RxV>;9b{nbAi?n&9unn~ptuOZ0R+dm66W^aF_NCmi{sftOOfqI zc381N3`3DR309{N>_c#5Y+#raHq2>OG}q-S-KIE3fJK<0=AGwa$ZEvq;aH8 zi>0KIoEMEVX$95+d2pp^DPU%bfvYl@L+_+DJ&k zvA$sL*&a}B>QKo=0&LgHZKl`3G4k)s-RUuP&IYkk7&a3ZE~`biyBl?6?o8MmIec;R zqA%V;7SXvoLTM7|Ws9YaNKc2-T%;|FrJFHd-0r27IgF~Ej4G1&yBOqjC$_jTFK#JB zyce;OAlTC3@3+GlfA}058#V(ugl$%TbO(-`AG5u$-9!ba1Y?BoF}*o;FI|OM{|znT%NNg@#n;k z60?bSBwmo{BH!8??gIR}WdnR}{6u_Le0@9~`)%yYv5&=GZ#M#7#=QVp*+0$xX!a|) z6QDXfnf24Gvsv%SdP&v^G69rj{(qF634C2ux%PX;WM?cV=d`q;&2SPzNYj#*Qc9^c zP181=XI-~D|b_jeWZK6{_F*Z4l~v|fom8vRD}c=SMYZIqPx$U~8DMLrpMM`S-W0hdGy zs0#Q%_}k$d$O70Dt_{x!Jrue%2S;q4@oj!y_&Y z9an2j|IXSj^M@P_td1Du_l4Xlom;y7WgYDe{*a@9Enx$BSdi87wXw3hyY?~@&~CWa z-CV~ZB@9FT5X8_Nvh&O{KhZN6XL^ox?a2_BI3!*uC2&b@;>u9&^2C3Uu^Q~prUdT5 z(R#vl_zn?6;g)&e3V-uI;Z!-Z+8+`%6mn@E$XP%8ACStNU$*KO}xANK+KZJ&C(Ea^FHg`-p-fBTA9(6d5Jjdrzr9B%UZV4*WY4cPH+` zz5%b_g@e7Ld!9ceiYRey81Z)#cbSkg)uUre?C2};hv0}tnVOCKJBhoDW182B81g}0 zx+rmLsC+PSo6Pt&59m~XNW@U$d4-5e&QIJXKL_`{v4swa6H2zEAaU!A=jJDFYcge! zu*{G~!;Me!7xBZQg=$$UKXGf~+lkv+sm@D-MF>rU^Z4_(61QpJP>x0rEH~R95)%|) zo(JHYiQCY>_GI>SbBqs(21CXgM+?x1$;x<(kmMX8!c1Ubb!WA)uUrXG!ny?KvFRa=o{frpnb_F=nY7svnYoj2) znz&87G7Ojee;G0={2`G(0UBcT^SyRZ8A^%a1NgD%Iq^P$mgWE&PTUoQ#MSTWsBhH0 zZS{&X=EtCZX2|LiS0#=o-q#oeE#P1o>~G`pRewm-Pw!cl%X>x=cLgEpdTL$HbX`-cdUb-0Z3A2zWv7?6K`W~`G&RbE0bjmGCdC~@W%^IcbQd#K$ zlhCp`udEQ{Wa6&v;!0>B2NwH7mdkmq1;{26ceT`zS+F_?L^pRGPlskMT(}T=cyv!k zoj+s=o!6YtQ{yM+4#6(L{qe1eHsWr2eT+Y3DV?_{5BON{oohLlu~cCi!e3wS55eoq zXtsD@MgzT&*RiW8mO?)cim`($PWysPw@t~^` zA5UC=k_VmU4~fq)BSY0W2tS6|5Gphz z7H5P}gdfflqU#R9-vVI-;SE{BCG-6uN8H$MuS$FfVN;)}B_dBBt`Ry3_GVP&G5{Y0 zz}Qi=2(1X2C2!ilu1Z{&c%SPF_|TB$ZeE$b_5&wn@S!0~-8}Q9?>{Mn4-Hx7Mny`V zyY{4PDKbmkyfS^~H78|fGmGGD`b-V@RS7@wKCKq!gR$R3?%PnFh8%xeqOZL=@xCVZ zTI>uxq_L2WuM&SXbeLswGPzupxG}54ma_#}Di>OrhwvtZI%jNr@r9}ie%SsmR;Zxie(Qu{|^BpGTwHwuTC@Lvmn?9`>{Wm z9c@qV5tf)^ebt&EHv_@FqqC}9HH-NXc%NAdwVEWKL2j$sS$`6LxpG zH$?vo)eOwuF9^1}_rM-izU#*2f3Fyz0Cj;?b-nv69rqEPjLMf_Qz?9dqnLRtU7LY*4UhS;I`jlhZWFG-2#?+z|_Bv9P+`=t&Q z_~>31DhQA6Am`M0^7y4L_e;hOGVgE3Igsh>q`gS@IcZ=7nW1-BPdQesPAi>lCd>SU zY!^uTiLJPIua(uBxiS9~$pX7IO6c0mU^l1ny&V=bFPIuL1#&kNFkRcNIPibXFP7LU zl?t$6oZBp-!AytwMM98igquYxh=IxU^l~`(_wKR48Z#m07YZmFydrO?nQeTd8H-`j zYv>Bh%Q7azfe(6vmD=pmd`Wdi;i}vlEHgl_cc5VO^8`|4HP+mvE&|Nnp+0p1(#3U3V8hl@jh3EdyMJ#-CO09!*1p_zQ5`R6o$*pjzUb)xck z<=-oRfro~I8Z`rWom8km?#q2!C)xC;-dm2zv$a=Kx>`1!O^$U4|{MBN_?7LzTl6c5BebL!|4` zIFE7SK@DZr;02b*>5`%2m3LQuKHS>7mjIkzF1`o9`6|MUS(%+B! zggDw^%hrgV1MzJTn^gpV_0f9HrFP1Z(LI*0h064e-vWY1ISA&bg_f?NOde;x4_ z+9n^1@}l@WOVbEcM*cPAtp{1E%q*Q@3PK#VR4r7O2jZ(BVDn^E)M#)N)OxBvY&lwJ zo(JSBKw8Y5zU`a^!_&3)Rj>eve*{wJ>7}Ib%0C%o{8L z3ss*A;$9FG`x3P>1dGXQ$ycam4)P)7SVnLp*&0oJfhAicRRXw=8D_3G;%IBtfz(HQ z@UZ1tp=yo6gFu+qXkB>8FkV*p!|*LL#};W69zd?J2rR>0{d+q05n$3&!$2DLB{zkJ z;s=_^U96A2^<-L<`@@cW)oUcakJMeKO3@^NABM&o`k_B`PJC(c&d=}1_$ z2IG5r37&E^7gdLAXQEB>F!lBcF4N=-qTZyJ8hG^I_GpWXR zCVrCmaoC+n1PcuI4`wjm4a3k(57YvA2uKqIjBp%6cZi9nko2&nX}YKHQ03byubAe~ zixFCWri%j)RlcS2=rnzX0S`~pvKYcQX9;1z!;Y45ap0lK%d>hqEb+ox!E*yAWs7I~!|*P((1d@@B$A@SY2q@IdtQFI_|CRNcvoTkSm5JLe$w^$9c<=vU z^JYcCGeyq?tBV7B&ws)&B#4v=f_3!D#JjU0T}QCSZ()1n_e9Rj??pkq>pxJ@ zIWw>buy_6k%$WEwD2k#9wkQnj9sddIIsyoWX1cfm%-jD1vzF)(I!Po=Z!$CYeUdc#nQ4uoR;0!2@n>9pnT)f=vbb zmE|{j(4kkO7h>*k^oz(X`L(_mijPy2$Ha)KWH58xQLyTmLEI+3^gM#TxMlHm|!S+*&kqFHpOVik$4Q2$4A-(G|{qTe#OVGS@@TJ3g1$O__%gIaY z>tbiHiv12z1 zJYLwN_-|w_(WOa3cjrI zhqhbHN_EFz;*hzHLw$}?HMpmpvQfd2$u4k#g%Y`TFfoug6znOohV3tJJ;(t|uEZ`K zn(WNmEVeEovvZhD3~twURQT$3W0-X+V7 zi&};lQ3(_}5$@# zJ{0|0^aiW|t~M(a24aH%Hncn@k446XEZLzf3KFf$%PJ08R}(9eObIwb0d} zp3utBY(8`PpHhFskVRBaVQIb)?&QK$?^ks)Lx?@V1UP4!Q`| zk!}M(;466n1kj2~Udr8mbNvxVM7b*GczTaOGLWwxq=eCYf5h?7T8K$HgA_BQl7yK5 zYfUwv5ywR9#WG&1d@eSvzc=nB(p@xd#BtGTagBe0A>@-l8csnB==7f@qF%N5(}yds z-qK5Qc~dVXl-db>8L?bcxA`2e{7~i9@=KG{c(fDlHDZaVrxsRzu=46=xI1P<=C5oC zv;7gvLv@qr@yhEfuh#UJf14Lu3X0ns(RGzq6M2k#Us>;E{)nZYUcDOqfy%4N6(rt5 zj_>L3vh>rd5lebM4WlxDm-d-f0$XXDrJr7{IMTJ1S2tl7=OPz*yZ0O=I%&jGPj8;s z(KVGH45ap_EV>Q_XfS{X3V_B2~Xa*p4nACfdJHD0_ zFn-H1Py8y6CSC!wg~T%=K#4Lyl|M}PIrfQP<9RsM)0p-UtD$iHk`*K6PF3F2%x z;V1++Vp%AG8ocGBl~wj`8z1RnkjlUsh)R?N0&Q=ksm7ivM51RX4*#+oWNT|^@(=xDqiYIk9RQawx69qgnO+#g1`y?|vbCgg9bSOU7 z(NJUc{Dc}MofqY;JEME%CIW~_?-(jH=+VTBnyn^(iNg&p%Z%*S%5cndk(T?5Y-1bA+GL(I z_YCaAkj^TkU!kKxziLYUKJl1V59%UGAX>fO7cOMFHsdOesR zY)UaG8i5*r*ziyw%L&Yw@oYa3%Sepspd8RPTo2Gqf7tQSb&AvY4M=^WMu4d)U-w+8o$;9npAv%nO4~294R$H8NZrtUT|p)F`F5xi3~eR+MuY6 zUjm}so{7I0Jcw4Kjo|>F3MUO#rJ{R&0jiZE*X561@gYo{ayy;w4?9M>T!BPCS955; z?GV&=T&rd$$I{{GX{qATerAzd4|ijzb>x)lGIu5(LBx%V9nzWk&$IktM^85^Ozo$L zw{fwUNqS``)LuvRHY#{9`fMk1Q_^(DTI&?7_At)`ZPE?5X3wDy;I3vCEzx}ZT`-GU z2bn8UJF#Hmk4pK&mc@E=G}Zr*c#L>$;@z-&z+laORKee0U^WvfN0H`EoCnqZuw}5` za_!82Ogz>|b$^uvm%&3V4lb`e*B^G=^|hQeiRTl43)^@uRbO>ca7G)U1Stkr1uO=4 zVq!qFR5ql;DDfQ6Zs^^oXeh#bbo|i^BCuk{bsR>CXF=dKHy4|dJGhycGN!y}t046p zMTuwB0I}?P_P2v9yVWYhG7MKWn6yr!r@`2?5psE{V=^qVYJNo@`xN3vvi*W$li2I| zL4R0m)%=Qj@kt;%_K|tXJ|n`QZ~;10bXAx#t?GY(nJzwDViIL(pd)Y9SkkcosEne@Rw%CFUN5c{C2 zQw)oGN>(Ff@b}0r?9g?3GNoX81mK8gjTFM)0g#iPBy&Qt18cn)r+I@E!rux&t~GuU z&8-e9f(|>rS*@l$24F{Ui!KEfGBT_?o>`$UdlWgwOR7;x%8Y|tn%CFql=uzOAYPPR zkh-Ak=5&qam7%os!e0Z~jQNDF;SH#z!8x8VsG~jHG9R`q_V=_zehS(En0C9|6%? z)6=WODxMZ)RPWVF2FnfqYXUj0PdK<6#ht9$l*<+EPzw=O&A2knZsl zy+a7&{O9I@BbYU0)Zb`PWl|6Sz^86K!p_i3(img3!3vFo>`xM2CPG0_DknXk&|>9A z>;E#-OP72$lB>n|t+z7c@OhkPsVynJpH61}th3S@4bBUk@;J;?8U=p^H|{ZdYb_wH z;rS;3STNz4^s$O_4>#KZszdrbQuI0Y6KoX+*@VsTuW>KXFg?rfa}PBRVNS`+L7La( zny2x32C=afs3?IJ{%ZHI#^!0H&Fz#^q+clgL+cx@xJJYC6k=!#Jw_0}^elSy)fP~u z(RmU8R8IxJ52(vmIiUvT9|$+;IvFh>KI~OiXq>K3AZ%^pT5*=10^&OQ#Q*zd{A)(> zZ;J0J{#5ZhieF!ResK}`|C2?x6upD^|Hh)z3STVzW#M-UKUUaRxU+C^VWQyaf`<#f zS#SeU0GkUM3ZnVH&7UOu|Lys0aQ}t*r{?{EI{-hQ_ujm&yk>I$^SwWM6W*u1UfBN` zu>aBAn{tolUYvVw?(Ccwa(VmST7)5mV9)!q_mb;Oo@6)dW(WG!*5m`zpaj1`4vPgP6fRzARIB=WTRNH6!qtHdO z=(u0{c=~*V7iLg+*Wu|Kb(B#Gd3pt+T?FiKdJ-js)Uif|Af(Sj8rZWHwOZ|uI>xvR zO+39E>A&6A6}X$r{ZYpn>(#ib^eN;&6X?~hBVh}7r1aF#2h*fc4XFe}MWTT&(+8I4XZ|#}=#gk-3uBY*P_t6WfIxs%QqPTK%1aoHSXwi5GOYLo!A! zR}3vukH?WW_H;ov%c0LEdQAzIqn0xgSO+Ku2;-|to+@BRH^lKCOC3X8;eI?F)q51h zrQK1^Z7ST6sXuDzBiEJziU8UGMO1}md=z9_cc_HLsHKr1S!dYuu-@>V40o_L5f;P@ zvP_cd$jC#;H}zuHp}2U4NQP0%B&iIEbOusFlX@^cVLuwwxLGzyvN2oEE6CU4Y2K#* z?SbA-HpG2saif+~hU#==zZ`&2XoxvrnsUDJ9?L94i?sd0&@TGJGZ0u6E2+qn1=sv>Isz^V62i+f8?HZj3r+DH@-i$EKir{X=$OG;8Eo* zEp!FM&}ds}#EJhdM(Vg>g}S08-IyyP8zf6$-g4BiUNe6K(seb)S%WGd2eSgSMjRDX zU`To+7@0NUVY1!J5@LBE`%y`>@`IPF_l@_8#8bjXwr&$%tcmi*kW&4t@ud zD*>>E8?j-X>5n+7*O&un6ChJf^%%!c#@sEY{#~6pqNZbQa@=og9P~!ejp)MYg1YF+ zR2vX!Vz?CE>&Wp4L@>~hV?4Bhhj3|P5#^LH6oZyp0vK8p1<|5L^d5ywig?4I^*_$? zM=S>nZH@q156GAY<<9FfMrd95ZSMXy|Ffl!2-p!z45=;0GrRQD@>OjP?zcftZKKHH zh-HTqumiLk5Zvf8bl?uTmzfZj7>4S!(`;hauI43u(B(ClFidiK^IE&2sANRxBxx_U}q280!{_kGreFrqSugz_*3Z{AaKEm8P}P-Hz|L_@yB`_x|!0N`%V+m+8YVmheX`Vf0FJc;Ke= z4Xs;Su?1S9=*^4s*BjF}xQa9MjwOg*sq~qM;uu+r@(6v z2ZlizGuknPj6fKJX7cpKdOCA}bCqvlqB*))A+_`()`BP~8!wg&ddqReYH20AkOmW# z)Sm9aJ&Xlp(d-0u(poP>j;VM6yQ-4;Fl)%3?$~0Pbk?1E1&WisbzsDC#T8P!cOYy& zU~chXst4CRwz*p#M;vi9ifb!SR$P1iZVZ%d`?X6?Ge;?|+mW+}_Dg@?ff}VVVwyQh zJ-PtE#vXR@;2M+>#~c-_oZg0THGzWDvC1qt#~u}mncfPZQAU9S`T>knkbol``73RA z7*FXIKun%J=4O~JHET$^;mBt+&$lS~gwmTqakGdR4f!Op<*%?}nd#H7HN$l&TdS@E z8{|esj6e+Ac@`uaPWp9#wo`u+zGRrn$Z{*Km45Piq*Nwib5ex?46J(@xN|L{F3e2x znQ7RiSz^;pT@I3E7SfmtxEJPtz7F&{V=b~r zxh_H-S!y9m;y^wC1Z73x-YA-k)Sf}56fsU`TUc2P*!zJI)6%$yOR+KtmpEY*;k5`M zgG9^{mCh7cY=t!ugx4T!-Op888C)@~e>#-L!e(&V{QNHZI(5{Qn1L zygZ}$cf}*cHx$3A_+sk+om%ul(IZ876kT8R#-dA#R&fWwD}|31-dlK6;gQ0N3MrmY z@Dw!wK40*zf;|Q27nEZG_+$Qk+yVH3{G<7=&0m$D&U=Pi0Po1VKJP7gughCW9e{rl z0dR}=4sW-&&@0IOL+*I)XLH|~+sQ3}HM#MeU*+7H^YNUw=Uk9;diNhX~NC&#~dFs2i^$MEm)s> zNmv?lB&MuTABVYy2_C!d7V49s(sjM3MR=O-jKa^`LDKrhJ+| z1|c)sRSn2{LAJmyDQZr^BnVT5KPF11s1G8R=Dr*%Ef1B>F-~6NfDvC{E{utn2~-g` zpbCMu%AgIIZtp+c9}_1NU`dVvR2qONi}8`mGbU>%Q+v!&v%0*JkC)t4@|Cc02N{)1 zx!vjmN6Z>>fqWYXYh!;s$J#)qeswRYXD#feW77mJ2h_Jf;Sp@7KCLm6%<;z@K`Vs^lJHtsov|plfet zpTRSh6h1}|I7+?>)(K1WJUZv@lF5>LxSVak0JmX0ulGkSze6iUK2dVd8d!iT6l#>r z#Sw#)V`Cl!e`@eYE$8zt$l-x;UP#%`eX>NclTaNYc=_fG$8UKf>iq!>ivFnOg5J6~ z4~>=Fvzd^W4ADAb|0=1VUs~VWo+;nhJFutLAGO5LYm9*(6&|{=l>`Qcjot zMgFKIir(fZ;1RlzLLcQD*+&dLG9Q5#v3z4+hV!a_e;4hs)X`fP;gMnUi2UsX`!d-2 z%}+FQBcJM~VFSdVX^Et_JPdw_an%c{*3XX^wANd158Vl+)JpX>g1Z+S_4k#YLjX_E z@-@7l&eZdK3~x5%5`A?kYbjK+l3CT*!>r|Sy{v;WE%c}6ag9G}2&O#ntfx@)8BM?7 z97iuUIku~%`W@{*%O5rDQaUipYR0qo1GSkYwob2$A4UVfBEr??DSy|-Y4ubvIa!Rj4+wkX0ZWPU-_!Pcr7P;k;-Xbl%&z0P`flUe3LYJuE9!9lc^Re8~ zTdGa^v+PZbcZ=a38LchtDb$=D6?-%%N1j=QOG2f!)3M+UXEBpS9|hp%RGmMIvjNMI zi#r;5u#6kB<>w+7cQo?g%?l*P?9sImpExjXXI27G}$rB8NK$@~CNF zeYX5;HaoFLJzpC!@&%G>Q*08QFkUPSeqxUTrNahPC(y=TibrvCBc^xe0W{J?A1^b2 zGX)4L|DrdD%|W?#Lxs4qVN?WCFI!${uxDsvyRf5&7-3F+_D~LXQoDNx2DPb+SDNM( z7;ufi%`$)+#Oo3|h4d`^YRqn(he;_k3c;Iw@R9sV-CBZ;e3qv@Aj7pff z^s{EyVnY?@6tX%P(JJ>g3|;#>IKG(`Vx59i1V4CocBeKp0DyA_fS}n+{~LgK$5Am) z^M;@k&iQYEB_;kS)YB~4*-X!yN^UeEb36yh3<$BbhMP-nT#J2KTeniFmA*A7#CZsZzX_Fe)d_p|R?Zb_jcgr71;AD&JV%%LuF zo>66Dnx0fd^(WER!$p=b4 zR&pJ-ep5{ET)aQfO!MVsh^{{=BB5y1GE6FFAp7V^85J`|Ew#kKkL)8SWh5JoT4qVI z5wZ`Tl#y&SYN;gQ?8t67DI?iv)Y3?O;0H=RbW%pL(WqsRBpV_7;7QryN`KT5$OhR+ zZoy(>mWk1VclKoV5=cZM`>11)4YHYh0hF1Kn3OO+ncIfs1RZrWvPJ~)9K2TRj%K;2 zQ4}15Tq?8c*>Y>K7s~FO%@SF}j!M?bgu4VBQEt7RZ2Q}Fxi_x-QO6^3^&C$x2GJ;w zC^2s^TEvb>n#kY=#6+y?DA-KM96PFGkxRrg&q7Rit=v5ORrm()g6!CANRCNXi>xjJ zW{jh2Ad)5wa@29hrDD7bk(=eN3>3q!DT74-8~x%4q+HwSdT?tA^^%ozT`$}bfTNDe z)=Mt{u!fkU9#mAmrwbdvDD=_juNBDakeisD3p+Y9(oh_IRK{nz7HfIqVO?KNUT@|A zIi;hpM`P@$mZ{_n*yf+NI{bwpQU@Il~>5RaW1b|--VgKjYUuX;%KdFf&3xs zF<6jEU2bA}DA}ccKf?hu57q&|uSu*IHa|=j_})irETC31V66b?orlrAm~2>@=)BV{ zf*iHu>1GgtDUlP-kL7%pj2Wl; zt}WYm>WoDTBJnWXC4_aZ4z@k_ggElDiuZ zlgv17c_cd|e|=4IcRHsaV!&PeV|t~{9l zdp1(b8bcMck?zQrQi*fSl10+=k+x<_sp2_iDPpK1g>-wil+$GlZfN#{GK8oMJ z%yPm|#e9V4C+AP+-7cZP>zE~j+%kl8MV53i1zyJ-6RbE5>3P{wYX6Qo8d&Bbt;v!u zM<^1A;!d?Jgr{c-^`v8dWjP3|vxHO)9&sy=?2<1Jgds9}{=c16zxD;Qo?(f^u9`)UmMx zhR9Rly_5K$!EQpw=lf%D8Jp@U%2^mHEeHp9Sfa}l?q2JUSq|f^2nY(C=M`uEHo4$Z z=7}ll?;yK+%(59$R}6iE_Pm0cE(e?8MLV!5%F=2%jaL`&BKYhpoYs!CZNr0v?a=ZX zk8(k38>IFX9Jwe6M+gW-EyW?fCMMoSicSNHE_rz zZV?PbhUu6nRewx`NLWjc;lBpEoiM3x!;bl8(I8H;C8r$qfjBCd27A`}C~oSJL|^Nc~6 zOwGlz0>A}TfQe$Kcn^ddOS553yb43(B{QCT6VfbmFxGLyoRC-NA%9>ta^fthvf10o z#i<1Ajfp<#1G%X~9mbq`rMagaMYw}u5`RJ%S`vJHk!GWs+6q<1Ac{dsUCCw6W0p;Y z=H!-KQgW?n z?&_mh-^Ho~A?a6;(;R(o#zVI+Ao;XftSYP3r9!cWl$4_hlObe74mx}l(5o!V##{j# zF@&l#gph%|uCa@tr7wBL`RV!k4DW2E3;Z!LFF{uYt9`bhK`OQRlpXt^Me@L4!RV8>LljJS zYYUkrd=TmpEEx)wls9%l6~;uygtXSJl#m+Sb%SgQ44g=qZz+k@`6YdvH;S6Sgc$r>Awzh`%6v?+yD5qmT8Oj*1`7Kd1 z^IO3rnJLJB%q9vdjyaB2>oFnU&xBluG0UW~K_Yty+ZuC3tsw`*H6U8y*5=|7<{X5T zu+uaBG0WGyrb71c@5ydU1^T95?R&EG%2#Sq6^6&B=%Me<%Hw2o~E+8#Ro^ z9Cw?iAdNebkcW_A!Q8&1!#Oj&r!I#o7g#(QR^d`V9YVK zdGhyt9Rv{+J;%7>hbB9sRv|Cn*N_DozOvmJNVu8N2kQ}j6`|QP+9>Q;-b`9jTK-*ik&Oav!>Bq|YNadU%s!vl#|JC( zgKFE_0s1=*4QdCFTXL?2)~T!R=0y}1Clzs%%8ILqFmq&%h2S&1q~vPeW0UIrL4E}#R^pzo9$i@0r5Wb0^K2YkYY-`Nq=mX6{o_8uR=^E19E4^ zQg)!L`SW}Evsq*$=;6Mqp?8w@G1EI!czEs6!a-ePMJv_&lZd#mnsFzK5eFb=)gd4${#z$3TJD1j3ZpjH<7|PHq-sM7RDHY9TW`Uo#OwQ z8PCor{zLIp@vX(z5dn}XZYn;#IJfBWqVE-bnOguaE81Ojeo~>x&I{R z|7h;&+$5a;RyhC0oK*Y|@ms0)w>~~Q_IT{R*bT8mv7OZVn->d3e-|B(ej)n4=t1)Q z&xy{7{44US$PjG*aO5?SS4ZM_{68N)99|zzgnkqHO6b2rjeNrY$3N@*aTtiF>(P&v z+#Slq1jh%xE^B=-GX=X)T;)qz<&Q&G za`mdNlDlU-|9QP?6G@E}3TR_SYW@eN_j>Gyf!htOc)xsU_Vs7_#Kr6>xMmGl#ahS`g15Av z3>rhrxTRm1)saO{ z%9hYwj(nN3^cj6W1}LR0Q42BXoAWOIyp@@^~2xEz_NkCDmtxa>iI?V((J0Rxw!ESa9(H();DVE|_fC(|8mQBFWwb-~z7>740E{9olJm6T*I)zgF zk_Wb+HHsb*#%&i|JIA?pS)Oa~$3=$p3tJUU@e3ZA^-tTKtR$ z*Aex^N3^rg>aiVsjS{u{JC3piiZ%&t!Ym#UI(mMGV97lSE0LPV zu6$S({Vvm}Fy$}pD&NL*BcPQQyK6>yUYyK4uk+x6|F7p8YUy`TH9g;`)8Pl0usS>G znqwI%`I_J61Ta_I^>otjqHF3A%oKN*{Mz(8vte@^v2ei&O{@tH#{PY0`{SZ+!tT^r z@+jDKI=#2|vJg85JC2!`bI$3wLq}&Q`Z5PH90}rcdd>tRJ*AC7gM}KYHU*E7X~L2^ zj6ujBcdV{O?SITPiK(!SpmFmHC-oV8-UJaX@W&m?Yu1W;QfJQK9>tasw4lxgN4ms@ z-pjb^xNRQ|vV1Spq{a3R@TffeJZZ&(Q{aQ*ziXlAgNzJtNBEkw#GU|-Zmu}jjOyFz z2~s}@GHN}_j*#}p9SdBdP^P~F-_*KVC$b9NqWX{vlIf<=ju19$QT+|rjt!=z^q$_? zO2Jnh(keS7JI1)9h%2<5{tBLC6cDO_Y983oLCo-)qaF01ql+zCOn*@e@R*|5Y&pv6 ztO>qyyI6jPjiOtPaV)Y~OX|;h0#_#CVeCIgTywh692s7-$2nrTRSW5H@QsW*R7BlI zqD?T-8iPvsikd!3`N46xCb}sbf)vWn@(?-bAI) z9kzT;4TbiC*JHzx^P1fTJM1`g)J(F?Qtti$-f1)j66X=}EF42%2tG?kTFv^iUfO?})^*$U}Jo3f?Y z)W;ort&n20F2 zqhqT^*=@`cN`EYNt(8*!>MWu3$08?`XKq!NP<>Qrg+|-mk|k`wS2AAUq|&0dWlPl! z`GM3k-q_h$6GlUm=N{EOyddk*#b-efJp1Upe3Y_wDP`nAl6I8x$8)V{P9CDR|C{rxVf_!}-JbW3yghm6=S97rdAEB$8UHK1 zdATp<{wnu7xi{v%HFq!ke}2x(IS*0${{uO1!tdXhGe7=x{NecL<8O=ajxUSPjQue- z8M}=e|GHx9@%zt={x$kw^tR}`qWhvP(bFP-k4!{99eG!zldAs7SrXh6!fta>@{PQLS{ghr(?zvEVX29?ynq)xoW75sbBa|cnH}!h z!hfOh4v_yp;Rs1}KER&zy0%=41Q2IXd`6&3R!gu_LWguJ}iSWnv zM=;X0A0YPYFn7&UAyukLkoe1AnC_9z`zHfam4%f8W4TYzSvb>GL<9g1*7ewH8e1PLWO_OkPY^=_iEJEqj$9tutikrgi-B*tt?7j zG~>DNnUSU5tc)!5JiXh`18DGFFvbZqd*g3gSqS)CT}aibJ-zJ zTNT@@&qcJnssS6UjAr@;W6fgOTD97node|Ds)ilhoJfA{gjJrYD$L)P@ps*ysVoL6 zLz9X(VU=Y{3L`&9a>bDzrm`YY_*~5~VbxUAeI0Rd}V&pYcFa zmlEhkCKGhFgXz9+72{x3TyTqG;F5n44ll3DF|oGQQ3P(z_a}^I3#>W{tl(0?NOG2( zJ*MX<>lZba$%FST0wVUT5b6`=Ey+>pb#}O}Hh$5lu=>StRmqI!`UPCioh*Quw^Cej z0o3^uXs)Qmkx(P32U6~JMDv+kZT+&Tk6yl!@nAh!rPV9Tqd!(uH8jd^s<^w;{RyX@ zE>|bM%FZHFq103nAWjgscLxQ}Cah9Q-YwHIrz*Cs3mdTQ2)Vmi_ErleREU?Y(#wL! z`}!Glr-i0-lW$7CJ$X5VkE||}6v|aqeWlDR3bPDr|JdnjzG4+r36Jo2oGi_4EvAcD5vz(mvyvzex zR24IaE@lW*(1hf8U8p7RfPzdZP{rdV8yC*H474xGo2AK~-$MLXOObq7dyT zWMLv?5i8;#@~dLFp9x=5zD}Tvw35DkOkqkBGc2+p1~M;bymUt5f7*i_A}O12z0h?$X=DdOTFHyqgcP7~kgnwSH$G?+s; z-ZT4qFVk&jCY$zv3I?gZ%=obYO#}_-Y9_zRnP7jx+Hn9ojTX^q{`gUgs`fzDfzr0l z6lun*Po&WJ5hu?@ekO8OMLYg271(N@<&Ph>@;Pc#Epil7vI5Kf@yo2FULSS_63v+= z^&^ENpj0wT3|dT?I;sYYY+$OUOBIXp0V`ajHF>&y!P;)4=cDrBlLgf8Kw4K-fY$d8 zu+=i_nB``ppey|!*q*FMsqU94Qctx9+1wi9WR6wbxb(PKf&w3C%p zC3Wc|8O_+00=KAH`}EfVi>uIvHlN=|oo?%8I4OKF-fe~T8p?UWSMDPC4=M9kH>Qv8 zw~#a{ZL$*Q=F*8gtdA%!QCl{ZIOMuZ1h+F*K`C zaM`wXj+v}T^MuTLSbTR;aiz^4@9=_Ocxyez!%*QJdS)%R#^VAq;ZaA=BP&f=lJeUI zwoRjJ_H>cQNzJA%^UgJ_ihb}l)`(1Q)?KneUK8Bh;{W?+{C-C9W5stAA1^*oyry_| z(Nk3ayP5m{USG7bXkOuSg+HS5|CNP%3ePJnEqJlur}+FoQgE!`;(}!bbMv3h{~?+G z*W~ZXU!9*O^8dGacjtXL@AAA$Oy2)X-cPUu9QXEl>%4leDEG14q1=z>UXlCy+*ecm z@A;gEbMB)0|K&Mt+yYo0e>r}C{FeAt@k3PqJ16eN{uDbA`*iFbvDd}Uj?Icbhb7?F z=-Z;ZqNhh*jNBi&HF9NSN92s~E8z#jpABC|G{C&jKe+YpL!sW#+R&UCFY#ISpAvr( zc4cToD*0q8oC<|i#Q9Wz5@IFO7dKw>_Zi8jh)$#a9lJ!WKWPY+`~%@saVn9TNq8BG zht62i={aO=Oa>Q{SNoHORsmif1)NOH+{|%r6i(K(@`A|aCpHbBp;Q?8m*pg{N&YnX zAh8}9?wCAGnzN}lWFn97!cST{<+a9mV=6WCWJFd=&%Qy(fIR#r7?Aykh*N&0%%8L@ z%d0O)%}Je}n#-o^zpqh2V$fYf8P+-x*w`jd`zHF-eOskz!1bwv(an$h-|t3*~1)z?8# z!lWZ&ExDj81N3T6UZq9^x&sS=nszE4rcw%%j+U*=;em?O+_fCc!kUgVM3fx)fet9{ zq+@E0aiHa?xh-S|llk6V-i-0RlLL1zH#iuw$apx~wmb&7EH&3$0aI?GTB!=n$C?aH zy3NtIRZ)QRQ*+IoO_0|N1@8{HyR&p(N}WIH$Xs&-?7Y-mm32{LDN-!g8^3K#?Z(8! zw>eI?G7S8*)Le|^s!h5+bC|w1EI9~dJbjR+EiyH!M$+HkVm* zYHB94q7i*|ExQ1F#d+HIbXN6t5AeH&>H(%ti&L{xGfgO&V>jp~@?A=yX1omD1KJV? zI!lW|fqp$iw=ff--X^)NB}ht>8)nk5KfSvk`DF5y$=`w_Dh<~YfnB)DCY?uO$tg%5L)ya75a)d~AS-xobjR*wmTTggR{7FX$n{$CYV&6bEz1e~Y7ROoF zi}$Yw($xlmoP-{lbD<9S%4Pv@P@*-2!to&&UgE9Ql+m;hzlLGbv zFf{4?9AB0Sk_*h=|H+F{Upo#EtV^RD`KyT`dp`M8K>W4__xsV;j`LMVkw2Gw$}0P& zRyg~jqjt+9h@VY9wLL>Zhbi@rkyyKqu@v(j$L?ytJ+0R;(!r|Lbt;pV*oA7M^vz#S z_6=d`w3A6|=o|*gGR8bq_!x+78A92N#mS#EWDco@Jd}G5Qj>hWiOgb^(-LEzG&BxO zHDf;Gxd*{$=5Eqk(7D-*40{8xoHKXEGfxW8+ljf0ofzI?s?-fgm*Q(IfeWSMH23cy zDORF8y;!S+_D@;@7n&18{5QngamM$w(+Er4LdKBt?&LdM(T7HsrmE#kTD}%)kR|0^ z02<46>z3PY6&H_b#}YP*ref;-d-{(Axdm3z?NBsAKp@?grG*+~g8nOz!1|6JXmUB& z8Zw|PTMISF82uMe!NDeG&wZe_D%XVNX%saF^=D87#;fi$yYwDx5tf^UYGjjs95Itb zecRY4E(hO*j+y0Cjr>o6oTPycHVoB-Tla#y~q9 zBdd`s;W0p*sydH@V--7(V`W60pGZFn0OKsYveRr!6ON7%b$%lK8>DmtMSNI;-6Ri8 zSRxjxmgnHthsIk2_VMpLf@l|WezYo zEaPG>0{A&Uv6fP9oXv9GY#!`yLlI+eEcGHO0@Ocv4SkNEh*6*!mUK~05_5hCbH15{ z?8H)s;Cb|mWnSdl0GZ(+_!dyYG%A*RaVr4te+9Xl>uhg5`+0#SU@U9^FY5&?0%;JM z=!}}-U>r6T8kd)lV@1(@w`6}{Y%!DzX{|cyUwT?5WnJe~zmr%t-rr#drdk8@q7X8( zv>wh78%;#_M7ukVG!iekH?W18G?%Ll=1U{N>s5DX-c);>4e;2Sdj(47{% zOc~_^fLr%d3m9B;H*x%EC&n(vRM=sGoQ4-A`vG25uaGX|m^Dt5R`(`lnD+sI)lkik zNMO*{y?b zO-r-*|A84#%qV`O`0K^*FFsOyQSmv&DPsReioRHMxM*EbIo1DvTzF^Uy9@UgwiKR9 z%>T~|z7GGttYBrqY5D)4?%yZ!-pJbTGO#x*%E@`4jm7H$~nUxiGRUQV@PTJRbgF zxG%gZTpoHp^hoHA(DBfvp*5jOKJCB#v(TS%q-SFy^|sV?sViZ51HI_s+XlI=s-B|Q z=JdegjqV2bobOLL?o(I76W6D%BwJ+fQKRD!o0J)-^rs*@<``T8;HK1#I5&FQbn}+V z$<-*k1iU|Gc@8(@0J|C3X626=4scW!Y@B9OmfwVy#ld{WV7S9Vl~TmuDK0}9%6=Ba zlqET#x){JuXTOZON$T8Of67suiYSmz0SOwink(a~{3*w9mPU|%a#}jT`jY_;1(hlp zXZTZ&>p)K5miokWiypn=2Dm@uko||U&e+Q72g`Q6C8c0LZhK07YtQ71dwVPVDa&=d zh9syDrmiGRkXSNc#-(j;{qmsXe$y>3%d8^ELfpxsO*r z2mD8~Ub?=kt!+@wqA5#&yt-3?d?a;cYd4++Z4h=G{3%O;yp^*-d^qbzRYHaY2sbH8 z{V7X;yy{s%Z{YX(7Bb*nQ{x?wWkMv>rp`#!rD_{D zHi|#WdTFnjq}6aD%`LAU%$Wg({ZV;YCiOAxPdQq&M4V?hc_%s}#uMx^+-C&kHZBdO zpQA?gQf==A)<}*e8V5VS3!r2s*;v|dk>hi7c5)6m@#Gys>NJzx<6$ZQE0hH)ptN`V`j^|#^IwGNVEx@ z6BTj_hGdpjEx@|~Ixa`vDyx%DwA_e01VDT{NlMzntqWTh+DKvDy9~$@B`%r(^sRpf z(Mh!_f66kZ&}^~#Zwl0gCc#p%R4E|wcOcLqrJ94vzJo)r={?qg&11@PrqBwJ_-|Mo ziL>UKC+rVYNJlF@z+HG#uqM;drDF772fDcf3sF1OUZ)&mDw~PuYluv;csCw+M!>Ko z@oSOzuOid{uhCr-o|=lyc}7=?R-u0N64fSnVF%G3K=qCzi=fpHOj#J z&{F+%7-+z#m1$Nyz|S`Jx8a?E)wK0j|?r_#P|JY0{3G!y^Gj2#;tB^BU5H0ud7U}0d z#A9Z=F(m+kdh)d2G9M)qU6cG^fC(ZWumM=+l_*!);aIhQwg~+T)M}s(D-jqCUb@XP1ftWqbs4h%rM~CJqnB{%ItYaQ$^`xUf zixkju6*6Pq;qd`_pQ$}SNYNxT$Sj#!g|)ob{!Zfnw!JnY-l@Dk=~z&mqFUYqqE*)= zV4vCCrDCy~U6%TIW_Ev=j;6|WMiIf@0APIFX;PP-;~ ztJ%&lo-#Xh{~_*3^@OE6-cqf~k0r0AH=SL1x*7mRUpSBX5aKkiNq&h}ak%adTu03u zh1@GdDiAvf+{fS=G+(|5PIEEH+mxAn^zLB@FZIiPFF6`DTAmim*9 z`0Uai{#gKMjnb%s{PG~Q!Cf?|zX!Kz&{9W)%m#lm52CJcTLlg+eU5Y&1`9G|HuzFr z{uwaVI?6y;_Tw$p_Wr5lwbQ-thJ%qw`I8VIb+9)_$Nnc-s+rD#3|{5QZB|gPJ^mBP zYq0?;U6%GKFDgSm+vHXYY0)-+Q?O#U_HeHKN2LpuvtZNMVjnOj{2PSR;R;C)h&=31*$#U?mNj2oJlnQ5yjHGCF@U+~_meVjI;E!KqV{ni*UT6ZjN* zdq}#cfc@lptA8#7b4qF^&Hy5en9!Q5))Ohi`#SrJ&GMuc;bBFURVWe`SWPWBLN^-z zM%`K3(bM2huC@5B_=i%3;PpNkLCaZnngdyDYln$6V^43k52f%Fr3!dx;gWOD;&a#7 zzc=6&O6A*^aaQS<^D z&`(X??$tlTxI2@*ymGm zjr!F%7`ZZf9Z^W&M5u~)&KnB_Tpx80G=-T5x4)nliUB+7F8F; z3x84g?ZWpL_Q3y7ga1z!e7fNBg7x_RpU;0V|84n~V)MbTzQZDV5++XB>>k+IfuuN3u&DtBVI)W zd2gy)KD!;_+nA$ISUTcWM^oEVyHc&&dynEu545uR{s~J+yt**rovBuHE2{C>!Ww(` zpYESq!01gVp{COGZ49%TljOo!g3ajTN^A&5b48 zezbE?S$^gI3Cl{nMNxp~1EdPNJHVhFJ!Dg!u=K>k2fr+}B6Tk8gx@5avWJv2c^v5= zYf4^K>7TGXg-}M|=cUeV>LvcwDkww_Dj8s&e*(^;dEwOoTAn(0Gim|3b-+xNIKyO# z3jrn2^>YHcZemfPhwv3MKUNkXTN=nrOSnEqH}rCUmbq;jGmxb(-tv5)X9v(0UEsaW zM%5}Fk_Js#D&y7W0bCLQ8y1{()>+DKApm*GvKcS!0a$Ds#J0G)i&-^gxeWD*kv0U< zUAs1{Sw$NxgYlNMo)?jN@CL~e9vLjhW zL-8_D3+?L|0#_8(*hUBl73sI+#;c8jtq-uvmpiQj`++4m-iio-1p&ZZIn{(B#BAYu z`+m$tSUoJ;@fO7xvX!ZGRc=muAckyOhwcu^wT#D`mjh-M!%9gE%Bym#@f1|Y40r{z zdq=8OD{H-cPt-M@vMh%HJRW;>>Rg$&?S%xITihLs^LNV99j`PmwKjD@YTbGWDtwWj zbxeo-Vr^<$Y8^EGfUdCSA;)b>a}jM#t=rK*D3>+X0Y_^pa*%9Et=rx~nPub7gUvf` zQxiwHIkireNQr&n7D4V@1^*kfMlA~M3HPvty7>Gd6!5WsVR*h z*+47ln64g*)=xQ3GbfCsMNN?}6akdRbXqBYU$4Ips(=xLVF``5sE{6OPMs@jf$T<7 zDOtlE$Dsa}ym$=-VAim<$q4T5J;cSVEHh)Bz$j+fi&vKqs3~>s7T#f}9LKo~C6=^! z^?4vxr_MDCjr%d2hL`lGEMf6xdq5gf=dRhcyJ;i6=*UX7HtV;T-Ji0>{hf+5rLyys z<0;kJ=dVECh)UJp1p_0}0VA4YDQO)LZ$-X(5S>zfX3Y5hlw~NP`qS7C@5G=wZGk5H z$yE3Crz}kg)yw+%En{@Gref;{W(_#PvRoF=Z%!L#+2p8Kjh>4BNf6foe$mpFP`wPF zcYw54JGLH_ks6yNHm+&TBGczLggGc(zlnO~@(2YsTHfV2OTFx#Uk4W$m5p!B{3`}Y z$5@ug`1v(3?h98B?x9I?W$s(xPdT>IEIaU5fdw{RqvvP=HIr8qm=3wEl9}O%%Ocs~ zzcP*IgBz(!AU7x=M_CrhynlN(s0p{8oR>@=M_X!70rchn24Y9&e)%cKPwHoaxGftY zJ3MT(!JmSj82Yxg7|gBH7}I`hQl`K;rD*tM>SUpIFY>1>a|vxM;-N3`km_n=_Mjfi z5pdG1jUNX>pCKk;%CeYHx{ycy4`=TIA6Ip!{cC14Ga6OEmS$vQBw@)ymPfKA%R(5( zjAhvtE;5#l1B94Su_RQZVk47ELb55Fy~!row9V$-u&JAOOG0{IQb1h}At59LLfQsW z0UOf(-{;(OB$4dyXaBE1y99imbLZYue&_ks^Uri~2Pju&VDGcKOkh_o%^#t8*`98b z=!sOMUIYFGz*egX?2?84Gk}#$%?}%2rJ}<~XCnAwGCj#2vKmdGdIR9k0q)=`K>hf5 zGMywYj(0<^FbuZsxq&_gFgb3h2`p)+ z&=8DwN8v0~LB;3Lzg4af!ANq$2(<)cl64ABqkJ1PAngLRCpJQg!--SJsyKn2@^Var z>zIV5>lClZ*Opx{tRhq%eS4r9_`Sg0 zwCI03N8}fBN>1GsK)%lBJBa_wy3_ffcVDXleR<9+LK?-dEsv5y^RefwtcixJ;7ZmF zvh0g6ipvQF{){nuI+vEUp-nvQtLAZ5co3O^oW-)s+dFNjsshwKpq7`7vS6qJa-UOz zQsp52WBIjMEr-x})7XDZASG5QF4erxX+-TCL4O7Gf3vWumNtT$jqq$Fg;SCmE~nF% z>0~5@&Swb#io|tI%Es?>rP?xJU(&NF(#~PPKd`zg!j!3YTGP%_Kwkvp2AlBw5mY?X zH$PjC-*x&^LkZX~fYrfnjTU&5N&83-v0I!5MX2l@g&zjCJp3k}R(d%BHC-$sW&popA12cKYAkA}6qna7|D0xBBaFx-mWm>a3}4bhDLhio4bNWdoLa)-C;iAds6;@L0ju3jVR+Y{5w^0ObX_*Z}U&|3v;9 z^M~`FpWmFnAwQV+)4Z?eeK_w8!~yKg+mQPQDgk^X*URnA-Iu#LH=Oh1oR8$ZJm)5C z0heY!ll`6Sk7vI*docTOc4c-T_E7Bev3JMrBnx0aR~6-Q|KGo6y&(F!sEzC{MWospX(^^xrGqv6koy>M^%dEvs$Co{j1`M%7TW!{w8!2N#@ zggzL0Y3P>FuF$&RZ-R?d1H3)>{9t`>ZQ%D*1pH{=&cIE9dOqv_*B_KXt4#&!Btm|Q zNS9c!cfIdM*zo_TsaB;5G)Z{;1e9He9LE^9Wc1|vi(WKet6c?}b^84nV2Uz=`hUl& zd~s6lOjk;y1Ml;})1#dlxGCDYN zN>RJrHA5q((b0{^bF!C zB~~6qYmii}X{&?Shrxe6#tC0novuNEx>u&k~SwtqUfnc>B>W)oJVb8D{TA(Eg z@+y$NW^EO0nUbaOlJ0}L&G1{bjW9vr&H7nv{N`#Z!mIE>GW2e61 zWOuq@XzQ@n$F?iHX{Ye*iU8VcL5(Ln$F`mBNs<CRbo`ypFN1NsFdWJ8iL1 zqT+~yHk>py*OQ%FhdOKex)3Q&V>C0|?r`<~choU!Jze~;Qy6zhq#Smrx|0J9#F7st zN7KV~T{Q#a+T%`FY?Np@y17=<(s68-!z2)$Yzz+Twu)3NFy`NPWV-1>= zYwdbyJ}Ci}L@}wMTq`K6G{zb<8*LVK<;kJCv9YaVb;G?iFX9@4X{$C8^ABpjMKzr~ z(^tpnZ5{8a8QOLlOCpM*(Jo5Z7u(nu3WPLK@vL8`5mpw_SYLE$mN}=Wp*_jg#_Bii zbi%Si0CfOTgGg13x+-Nq?UcagwX|+Et%J_*xVuN(pp|kb+(9&r254SlC%_H%cU;8< zKew4O{_K0+2~E%l^Q!Ff|0tg;zelfx%pr{jlkgxC$?Ae60s@%z0i=HD=k_Qr8DU`c zzgTS+kQpCBz>g$`AMexPO1x*HZH$W9*?S$PZkyC4mE^3t)&-ITK?VB9N+dXYnv{*$9z$HZ&9g?>I?FrXIKOb#%vRGXf%@_OU zc*?Iphe=0+&Z@OKSgaumXdV1ugdFbDlnD-#&x43HR;^RP8YHJL)0&aRZmefyVv4Ji zy0_lNQ49#@fsa@U^roHGRmA~b zR0WDUC0OosgcDYMitk!hwbp>B1wp3Z@PIkIPPhx$rk$!)aS5Orfmk3Y(8k-xWIHXZ z`eNFXv{T!IffEzAH#ALK4J%M~5s)oFcBe5bPw04KcC2z0s4Sqh+Wdftu0Vx2+ex6~ zv{kCOCjr1_0KSu(G&!wIu@SbIRjmR$U?W9W0J2qCpd%W4e5}5sq{*AMN><<|9oS`h z9xnpR<7D4Pk!qf)nldDuXv0u%vXsKj=*TE2(^mcBZVb9s(v@Pe;5NZ9)4ZwGz5=yk zF`H;U%9ISHCC^I_^eE|=6>QZn@&N!<=ovEID#4lMZ&fa0^=T}pQLmFC?NRz2=bu%% z$a|%IqiJ6;suFZfy#kyp&{eB-aaRh!%K?&4-pTy)469`Ynxxh(EVEyZ?IY=1(?cZ3 zE0P4D)wlRDfb*i$HpmxxG@{USMrUZ0w>HWaRf8+?3SSUd^TWcMS8pKNjkcxs9JN1E zcr)s%a$ilb9Y18WEZUp0)&7IRo3BS(rBa18LvhKCuIgjuUm>vpur4Ox!-Y4au;Mv7 z=9fA(QGx89N{hlx2{d_!4ir)QYr1T3=Xrb3sO;%E1$!s*f^+*a+s@1#ExfU?!{qW?lg72g*_oJMetd)b@d&sZ3OiCF&0C0w z;(utq)HR1`em*~=!xP4?y9v>I)~lJ>Acla?dbIFnMLhHO>+CxhW4IqG9Q3O`Fu29` zaaAE6cYR?84j{ZpghFuck5D3RI$;6pgY+DxXBsc$1TkULaleHtf@pau&Hxjvxv_z7 zEwW9G5t?2?lXK#4DQz?QfjOGI=|YQ3hQYlUoaWXi`u>V%<*ck6u={Qp?~7xLeeKgP{}Tk>=B zp2(Ze`$*oa@@~qj;8iM=*-y|an`e0-_81B)|<0VXWf{^?k4O1gVEE`Yti@r5cyu@#eUx(+z9|^xAd@`I07jx&|*E8=z=f63#DYGc_+t5PjL!sA%(xIzEiQsv%{y!9a zdGJWEDwu`u|8s%21O@`FfigbkfA{BdZ^o(t!P?@YuA)yDy*K(T1=g55cJ`8)L&!Il zsTr#a1gjIEJ|&cFeq`pNB~h%lXN)IVH6U0U2lGi`uuBedPcsLbi5Kb_tMF#54iIcC z0`&=@IHwg)HPJ`uWy%haeb57Yov}JVu%Qs(-2#$vRN6A7vlQv0Y#!ZcHDl?2ux>55 zj|+D|Apt;@zfYcKdKB(6V-_5nH*;VxK0%?Kn~|bA54+GWdpXicr%vr2U{)z_OF7qC@R*E1=EiuNm0dg z#uh5&#+(^T{ez7K;QvK?CZFtX+VX{RbQK0sdd}g8kS-TND8(n;c?i zVnm;7xqmR32k@f;+EKwPJT^FLuJ@dQ_>0E{D{=w-v-w%-8K^9PNzM0WEaeYYuLtm1 z0sbt{ieIvXKbX7}%;$uuuQ$&3y<91YAz^TkwE^E3w+q&R`9jg>qYv!YEDm>0jzKs4 z#E;9o8R))wAM6NSMPC=}1g2NrD`h5#@wcQuSf_!V6+*^5N=|ZpnPPfWYpT(HPz*h@bT9mu2RwEZq;*YW(gM z0F%KmMOFNX-beHSUu8LeurdeKH_R_VvIr0HzltHWls}k^f%uvb#4;MC0CO#2%Q9xn zSkBL02lPdOj!Ro;x{_raY}K=%mbUxvmY z;@aWvHrCuEPMIEVxtg&|KiCif{2u~8XSa@!+^q!W8B6?wC1G%15l*)bnSo>kEbR|g zX43j)werr)8{SCjKaX$nW~{p=*c1ZsB_T|z?iqbMFsc?&bBxq9Z^o(vvZw4Sx~b^- zA&dn@HY} zq*x1)PczFpfV|p&0@&V1)TQr5q&&ln(*YXg&Hf|pEqy(w?E9ezOmNWdgUQbrMF5jw z5|4IZT?@b?ii9E4)V^TZ72b@~2X@Mz{fE_WWh0@L7%E+<#+z}fL7RNpzkeDyOak0#xkZ*+>nPC1k=n5WwL!5patyBn22sxJ%1>I>Xi!m7wxSryzkK4aAd z!r5rcUTNFTE_JHHE;*Z?Uj62F*DntX53=e4SEciyoRtSPt@mcEz7VSjqS+Rr9h0L) zRe$Dma%zn?gO=bc-L$SPy2vQq>@uSh;EqjZm+ve8O8KWE=$_mYAt6hJOSDiHwb2W} z)WyJj84P*>IadgqqZm7knTDY?+5xCk7N{=?HPVIml?-Ndf2!3mSZvEQ#%sw+qauK& zmf^ngFM>8T{md;=l#@q&o-yiyel-H(3m`-U5A}1W^eK4>w3V*%W~`bJNQXgv9#l#p zZ<|W5MOz;-ad#LI26e3Cqv!Y>=aL2+gwNMoJtC0Ir1$6OeXz&G&2e)2R`yD7#;6j! z$Bqz~&w`;|8-(=qhzkEPM*2Jr6mw~Hi@>fR(9h^)qdvoTb$$?namKSRb@}3qRX+j*Dcw={6ku~posE_8g%O(t zEyR4!E=2JSP84rFIV#6YavUq^SaOIk!K4H7c8M{>^zc=W~`nPsFpbUJ_tXEXL-Lc##U1aG%7addq9>&r&KMm zJ;DPxm7LzvEMfN0YTR=STa1NMW9lTzz6)|$FfEG@){IkPc1V0Z2+Dcq_aWt(VwYM8 z(Q&#=gCy5?%uibxb0|HosB~Bczw4BmIti|CuZAImk`w(Pk=&QqL93O(dH|FkVZbdG zkOQ44XPEnoEy&FMw^l#O&U%u#LVBdBFFA9O1(Tq3N8$YjY-2KP0u9O^ZwO;8u*fE@ zl5eg?+Q$+#c9y)7nS2XukaPSTKK+TEZf?s*rFf0hf6S#TVW_&OL~-T5w$pqirrE8+toX5dBGSJhba1) zhYauy?QI#?$Ghy3aCzH^xm)m6$LO0-!3QlovCexx!=Jl^u|Dq+}?46Ls zRLk4{OE7+n&hoK~&@)DV@d zhm)c{tj!FItd*<(agc7>kLcnTjrkUD`ehbmqLO|N=sF^QCycXyLPs>Wq)nJ0YAr(W zFSSBvAJ6>HyWh^1qb-?);Jb zmi)`|ev>zw_kp}S@;dSRug`rZcRKfj-1*m;yDhgU=kc6-bKaG6Hs{)$_1RBlFJ=D= z`hRbBD!VxLRP38n{(E!mP%M-B|DQtpzcp)b*5%QsqYLEx-x@86JRMo${=b(+UP!IK z?C`_kf2Y#l&EYG<7iaz)z5hL#Q<<%qrI~@yy`g`?*WW?Je~^g(j|N{IJQds-%nv*s zxHs^&z*yjLpgiMGe8QjoDf4C>u}(^({kx(&qxbJtT|_h?6=P#t5w$aGIdw28mEZ$X z;iN~Y4v1_4irU%a&010&Y?3PQet}d*1h1%E)e57RrHFs?W-Yl6R!bT9Cn1e#njd6I zlKldWpS2`ASS^*{E@8-y>F1^-X^moKwce~H+rc&|1@9Avnmc{y(NeHb%sF6HIAYmo zP~y$P!Hvphl%#)Dmkz4W;xzOtB~i&>7A~#>DOklr|Bn#1PJ|4J6c?)YW-Sj7rq%)Z z2aOpg8>H30vp2~n@ZHKbCU&U8o3%td*eDCidkkF0N+>qQ-=Wb-zmnFa-mE3!!HqJa z{JntJk92d1qE&8ZEfEja$$;{1wPR#C#n&1&&o_8fdb5Uy^8wAWpuEe#kSzrJVJ1J# zdomR%;wguiGt0(F}z2|(h!tB(|+ z%e`4k!h^N4q`X~FYg#x)DPZirCeditQtx21P_HZ+jeZj?rq`4m8z%}aMI9b?;v^QF zSC_tfk$-YFP)KE_yur9VWmOD6*?{n>TCecCbU5 z^iWZE^qjFgnVYyEd#3hrEi;3P%STb&nBo+@>%Cb^#e-$q0R!siryK1V8zEwC*0S+n zQfvQKHJeJetb$W2IYp@8R&Um_@ZbS0`+k8|HVDgAAI!xL`;k!ZTx8LM$$!>b@`H`q2fgOyI1Q&1c1CX5*d#R-B@Mk<%i4q0G7+3IugMMKlawsm zoj!{Xgu`MM)^3)+EHOQTsHO`^v{b2-M&8$RdWtErtUU|=Y*+kEaqrKT4g9``!c()3 zuH!PW*uX1l1Di0Kv$kbWcT(o)WEf5C%(d)b)u6eP*2UkNR>D1DEcn>=}$WB_LHaB?V6BkviqjeHC=rJEbe8lE@%A< z9k}u202`TLf)Nu;K-e7b;JEruIqPqB&}}EjsIY=Y#Ds8T1K#!Yrh;}6^|-q*^d?lW0`!gT1KZ4Ju*eja;%tVtto|x zu>{_?I=)QLSy_D7rq6Kq9#+ka!<@&)BGOxYZ zyx(BY=`@Yncjf>f;s%qkznz@@l|^oKfFMyzT}8L6XNuf>R@ut2!Mj*BAh<)repaZC zF5L)=7S}UI6-(X*vL;FC&019;SS`Ua<-a$3&J37Dt}s>!2v%#JZxhBy_7yqHnz1TC z5Jz)Y(V3O!m>NkcS}r>{UtsxvuvQZ1^fE3r+)rH9@`+*Tf3Qv>XVRejm4y=S4D@VM z%l~~TGhtwwTXsA}<;`UVt=_EV|G`N~nQ?*0@-&R~m{Mi?ySAWb4R)VGL&D5VMh#cc z9HXpLr-CY$$06m-THPQxBq=ne2iaB}xm@Oq(^0|7W|5ePRW6~VqEsady@wG`-8M)B z=qzf35mOs^#*6d}ZhwN@4J&JtbKWWo!72^)2X%_Oq4rIZ>^iF`1PKf1D*BLtU~|^6 zAc%>~nzdSjf1Z3;fR*KM?(Si_tga9wOs=cwheZ!Wzis%Af*=PJD{YdFm@ca{1QCQ? zMUMz~IMtEzJ?RJ8COZ1OS*tqui|7YJt^8sKmiGZLR)O#r(Zj;v3Lqo+1Tn^?^;@@I z$=6%uAy}nF^nGDC@W){i%jWG_t1|?N?&>P~o*;N9_Dv}|#4RzaHUw+6cpehOH5C!S`8xDqE+;udA0trQ87bNL~gMk z89v=J#SX@`PjttuRVRX&r@D&1BfKfaEQdNWZ?iXxCSevriuP~+k3V0>$XIP6SS2p@ zE!mOfG&0Q86!1YcvARUCNi6JsK~}RYO~a5D8JZqigb{ls;$zFpL)Cc*WnJ{M;? z8(zhS(9h1=W}-s6iXKz5@eV*JsL;tv^IB8xwe*CKXjT8Wt|!bXw^?+hB>Ru_KohG1 zt1yXPAkH|1w$W2!U4-ST+_29N(cn&7gz-8&DTM4)L*n_Ww%(>_^qENu+NdS_TY*%k zkg%qXbT7ddGZXG1TCcxR`^whXO$4U#FpgW0S+T!158+ydAq_bKuVZR#60$Zk<{qUL z`zxU^!yTLKT=A5kf4|6r2&3yN`lUcrL)TS~@ZHfZqEF)uqlRWPtO>4jM`m=sb$zcaHq)j&;40m?ViF|fL#*X4Pt6$ z$bzdyr2kXkR(75-FOoP!CC7pMsFvC~FNCBPcURaFMP+P;9*e2c zH_a_?Dc0VI*)LdQx-FzZn%rl!8B)+V?n5SK0VPDSZ(Tjo|8L2d&nS3^{QoQq^mhT4ZIE~_a;#WlW#$BfE`=>-dy93Ds%U zZwW_eHW5E_j_HbK#BUSuIJGH;<%K2dABP#Qr1@~XmH_Im_!;vSIz@(62aZ$196aN)dULB;ZG2LwR96@JKGnausDLX2SWJ%95#)26+!1p?KE4OldOkgtL;ZwxPp|BD{HHPlb zYH<9v0*VrUk#Go#;qg;kC&y>xSrQ1v)ynMyA~KYM{b++pqFbgXb_;2 zIJAsv?pK4}?9Dm$ielLnze7lsHdB@uo*2@XF(R@mB-YD#uC;Cln>54wv_UkZ1X3{< zVr}*f)_HS|vEp{=ioa6N^$j|>eHcAMRx$1oPTmzL{AK)&(MPq0#-$tK+8{y}X{9$N z&}PmMSHMX=CXkmeuwTuc6L(J!B?SAis>~Vc3aXZ&2}DyuQP`R|5sn2JO^r?5n={N6 zSQQ&C!;Z`D&^ma%a2nmxN-B@4*suSwR6e3=?3`n?I{M?U6Sj3FhG+FjRpQM# zIxBl({I$ZOhfrKzs<~ohfWTnQH&=uBDs zz%qBNwL+WqPPKDFamf2sRWQdm&RPcvi@$2+0o~o$cI+Ah<_K$@zHG#77k(#|By3>F z!D_r&$6WX6qlO*KNk+R>O&wAr)KG(9ujU&Y=`iFvbo396A|sd8g*tE6(bq!|g!n-G z1<~*O)O+^`?g5GUTC)9ErCNW!(GHctky?^^y5c9|N21@`KZQ^u0m<({rD#;n7Q{cB z4zq=0xQ$vk*9*Uj%UC`<(9d@|a=TB9=eU3?*M8{@$k;*BCs`bLpiApflpWcXIWB%o zJ=#>=65U8;k{2S@vmX~&m0!banVg~A4}6fia!#Rz8|Rc?f>#Sf|7U;8Fj z3WFinPE3rED>l2#lOb*Kg92jm?KdYQ76X!trcn6c$!0H9z}n&m%&+-1`%NWRUdNH+ zjnL5ewF2xHH{9QUYya?VsCbSKE4C}%rgrjpsgi(IcZ`zdM5@d>I-JyDz28856Nd6c z&1?X2lvrv@{P|`!mMdWMfm0*HJG@!PiPPG6Hwbiu3}vI_osomzj;9LRYH6P$D+-RQ zN=ZXIE6)W*J1-MNU~PxshOG=*JL_1>%_&+U4dZfzXnd1HIA6lC3_s)pG454N#1)TCO<)Z)_KS7itmD!pA|QQ&S(j-q z{^MCkqmz{*`qondnF@NUlm?|lRLkeU!#XWa!EW&$;mjFf zPZIbgl}l#R79*(gKoza7>X|x?U

K={?25n8yfl^&gdc(G{$S%8 zyV1&o17L0zW)&Niz0oB=NX+S*8H^k3a~oyKx*!degdfgGrIc_j4a|rz$^m32hqQc74MydizYc&%iw0ykJ6=^} zthpGGCQvdRiizB3QBATgyhRVPenn#Yka|bNYheI5fA(7BPHFyc6LQs*8=cBM7K3W5 z1shYs9s2Q=Au|$6`hRc6lNklyDfk%m|4-rnUyJwu!}$JF-2L}d-UE66miKyc{;$bf zm-}q)1G)c#@4qYen%wm{=W`ZvK9KXOoRc{_a^l&)CHnvGvZu1I%dX4LiTyP8$=KUs zLwNtIVlndlzmoONtjVlHSyfr#=p)g)qi=}zM0Z3liTphBxyV06&PGl|wh{gRORE2U zID962B)l~o$^0Sp{@<24kaML;d-Fy=Ad;#sJFzy=lt@NYiN)-L6N)n1&p+0C^F}=Y zwJ`>2J17)&bbhUNj+c3(8PMF2MROy~ZI#eoKSWSrq4Jg$d-Lc8I`ji2QDEDE!I8%( z>o-oG%DhzsxNeBX1{(Jmd$(*wYPKpsU}Ko(dYaL(RS5fNdV=7XdCUB{gPZ0$zgcg{ zDLIajW8Sj;KvjtLt+b1J`-K77{e&XSTaHimHHcaenAM0jL)uc{PgfZ80hZ(k%7E0^ zhfv3!#FtIpyruVn=8I_ENh^F5D-^*FHW-S~1_*7TH*bl4Abv5(=jo@;AOld=EWr;n zTtdSx8o23#Nl=BmPHJALpaGeMbC%!-$}|>ji9J!`&55FyrkL>N;PoPkfs#af;$-55 z;iKFbR=T(SP&=BwwLcTkNzcRd)G(Oq`}$-{>>~Vb&a(GFwdVQ|n07Qg`w6HJSnlR5 zR}WNaz7GPSB7%y_aC+-qd5C4_T;2rY0EpJX5pHWhBPZ;HBMf!O@^bD90&*=7GGKN2 z8B?Y@(Q}rC2Z}YN`)Q}j$fWN5nX}Y8P`!qhYwSGu*ZG-9>S}M!lI%c>=6fHV^`ZWc zONMh5rLi~ZZaty}=d9g1P_4<|3p@qgQoMzkJ(ZiEgGHNRO@e3zVYCyOb#1n0r8j3O zbYMpjm=^n9Mtg&>n5(Y|pqP-Ebk4Hrz>Y$oyZ>8g9mWOArvuGvfu=09Lp+e-HpjNv zM!cdS)r4kOh2n3{IDdEiZzI=YGnZWos|te(#L#L%f$Z~evx=!4zM(wKO%j;-O zYfZ7MYP~tfuG>TzljbodhDeS@sD|%5PH{EK&`2jnNdkoD9HXujd)%Tfd;4z_KPHxI zFil0EIY*`C8jM#9v1i0w*KRdVwvpq_#7lR@Hw&UFaAG<2y!&e7(&%fMeA&x}5Z zjgtkh1${kPCsRZwVDed}&KrQ031&nMM3^!I%QgoVjib&@r2oWA1yqp~V?)%s>0|YY zjPlElJR4PHtN9B5E^-#3jZZ<{oO66xxlr+X!ITWc{37?$S~x79VcBsUQQm=ZKYp2h z8QTzLs8GL-D@E*#P7pJz-W+_{Xq^g~h&Sk=E7u+QCJJxP5oEde<1Nw}4>8l7q!w9? z0x{~iv0VJ|-NLMt{Wl?V*sL5qmWw~066U`kv)=Xn;7(C38Wn;N`o^ae)uA7?B9F08F=5bWHQj2Y;0g<`Jo;3F=ahlFK zio8)P?P?*6a(0^As#rnZ9NgF}wj|9v)Vwl`ZR6}+iU7u2N=h$$oEEC%Wp!m00 z%EX2I#lNv39Vf1mg`!a%IN}*?r=Mb6b*#8n_K9tR*o(iad#>Gpt z_I4A7W!DMQ1}8S_tpPuDe1qDx26Qule|?t8>_Za4jLq4yG5+TGTad|0V37|2cGc+3 zIYxY3k|DP`N1iL6r%Ns@5jNcRGS>1W%SaIsxbMsOFYwvDQLV z5QV+SCgj^lG~0XJuF-0Un8%ECisQqW-1!eg z%`OX6PG~$sK-BRxo(+@(`5C2Z@_o;V1oDlRdM$1+7-n7Vu#j4LSAQ?a{>d?{G@3lphKQDv8|^BGk`DAc zp;UxuoG)CCV`OzTTU3KI>t}`XFXEAo-ZDsDsiYpSb)|bPj6X%s7~HanOA!SuW`h+k?@E0(`>x4c&j7N=Dbj|+!E(uAN*KrP90#A{SzF}oyK ziiGj?V;zB$6I?lsQqJpXP@BBDq($E#8B_R|=;tP@!kcU~K!Z28#df_;2ie-c?D}8X zbYNQ5wp*JH)ir}xuM3|F?+mZad@%DfneQd*|Am>gnQKG8rq=3@K3>qf}ab% zg=&AD!Bns;n2F~9nZUaOlY!?48UmN_A^*ESac|zJ4JeH3rA}R*C=7Qf3RtBy=8d{Q zQ>7HrGMbJ~Dujhd5!fP|dEP1ufm*4ur2sG(kRnJ%k-VS$#|Ub()e{0G(u_+0wX@5K z0aX6jyj2ncbpjc61wUc)K_T;oc6f_C#Q=*%3H!@X$!Ruu@ur8vj+0G0Hl!72cO zxb)>B8V>glO=6Rtx1>MNC@p!*>PMzHRm}58&hTp1R3501O@M3t!ltGXGzfb#hrm39 zUlb!&TmC@#cgnwQ6wx{t_K@!47P5Iu_G2aC^7-=n%NJbga^uzByyf?So~*=R;&q8T zLPsYj`eeBgOSL!FZ87JsxgJY~O0`gRy-y{f<_+sd@7$Ode`_G~>G(Ga{Mv%l;nD@W z^Oo*2?D4n8&(XXej!$E^tWTEW2R3HYxJ09i%fe2{vn{I+RK#drr1>cRG-{-e$%a|v z&09tvD9)mNfp(MWj@mzOc|2AMTIOltl*T-vbz_X!Yz|A~slfwe4hT9ai@&?to43q8 z&=RI;mZrTjU=Zr?=*!=JOnzThv)il;4{EG1{BPW!qqa?a|VDV@7$XW zU>ZQ{ZSw1)?@aXcQVM_G68AuH5WszUmoq8|!4N>$4S}qr;a(byMboesa$dH3^TwFX z@Sljr-yFDf0E&rks}hF>CaKa+A~XD|$Dd^eXHfw?cVoXv zbG#Cq&Nupk6rkbr0)_$RH30M|1|KU4(fQm;XQ}|q!`j8}sRBUT(n=du z0OsNBX1kTpw7Ak#$F~_)&bzY}?$3C-lV5E~CTkfvQ|yY7Nasjb%Zy z+Xz76tt}xBROW!V1VoC7z(Yk4H;VB(Zyq+THw%5XqK<2kNo_6aX;(FT4>al!DB4Tzf|Nd`rUv8=|1{4GOOt<=T*1mU(N{ z+@Hv!jpbI_rWh7osNO#zD!7XmwbUC+Cb(R1WP=hd)`=R!zPF^C>%VEup%on+q0*tR zWII^89ViaboJ}*KAY`lY0hVQRsW&Y#S~~Dn5E4&~Y*N+IQv`MK0hVP4Hps9>8faKb zuI#M5nB~@iGTG6q=Kc=vDR!P<>|x_VVXux zG6h4dadONdIv6tX5)%zDZ<#eU{D4m+hO`2e*2e92#IScuh%$7?hbPA=Lx?m{p{k@e zZ>e^yEkd{P#L)Gm&Ks3?+_!o#MTBQ7wOl40tkaft$99D2FqRmCwG%Z$n>hrLG%ODc zfIQk#?^s(V$QSVer%sWIVPWusVcuh?d|U*K35Scr7b-s=%mt{w>&$rBbzRL zdLT%r!&7cRaZDqVU43j@%dG=dF`&H`dQ3}|bmZY)R;8uVY%36_gi!Vms-n^yK0aihKqFY$1w@7KxwME2aaJo4 z&`77fp2(SQX2#O%Ky{q$u!-%E(u$ps%irYCU**l0TZxp`)KBr;eeg1Dh~1^)lP2

KuIn!rhtl; zYoOK%*{Dk1WcSh(NN_=9cnjzaozvopc?y{EG2p=Z+(#D}cVCmCz=sJ6q_}Vcceslx zK!KriCAma=Ybh*8=`%66TNw_N@cs`Y$PRP4DRK;akm7)jm%;@rU-q%thO3Yk zPb_jk5mnWmZ8-aK&ng)Xe1POYf(wo3>|vA5b3oVsq5pqu|6lAM+xNM>Kiyj&_!j#A z*ZO}1{r|7`*?9l|5byu5_8i3f|NH9w-*p4@|G%@Y{{PUq7vg`}{33YjaDjwH0RKvC z8<<5%6k2Ya;fag@W8?gnkPNd3 ziNXvnC*sSJZk}1Vk3L6mAPpDX0NK`FGN+3cCCqa`;|dLU?qM{K`=Ax!z-fvDDK5BV zvmZZg-~c2Fi0tGIHAP+)T1XraNIot+k-K=b{79R2?{;Qjv-y#FcxzqJ1U(nkFM7KmX7D^Pa? zC~JfcoMzdCmso^_*Aa`*gayA(*g!L%{{o9}rnaDE3G-*M#s%LNvbL*6 zX)+w>Z5b{X%ZSP+dz49p13fecRJ?%8gA+1aiJ%P}AXEx1FFpnwfV5nf-8><~0YarP zgUf_FC-)2$;XoI`fo8be$adJJVi^u-UBdi1pmEs-?EfOZ8n_4tIw%gLxI&~1xosTs z95_d)6yjS`L`CV@wqJ!_vj_*y5h{flT##F38>wxc1DW~%m+=1oEZ+Z<17Cvvzn=g9 zV&B^u^Z%bm|G%F9|6RQQUuph-ff#nMk-S2$2+UHU;)*&u^DZy41`C8LVT#Lwy)66v zzxg#dGqiB9ybonyg=Wa^-j&&hv<_izA8Oz-;dyIYe8EqVeQ1=}hf-Xoa+BqD{LAk{ z3xq16rNllkDr-Ol9n!qqT$2n32vx!iE_LQ{%l{%AxW3GR3@j)Fv9l#I9MC$1ISw>% zAuSPxK6@?l4fsbY4zM1TS#3vVNifyUNO3ppLOxTFXNhSv?3x}b4SO&Jbo zA;LTdbhumtM)58tCYW1>2nXIuaUjJ7g;n;eq757%WC`)DsSU(2Fcu8|1nyxa!vR8; zFoVlOT8E2EgadCPIgo@46U%H^G91uCghdW0TsDfjp$iYpDmZWz&4C0Lu0rgzc^f!D z$P#8M;uwHodpZbkK)wI3?7Ua||J}Inm(c(J;J`}**YEjk|3CMAY4_RQJ9_%MztMF8 zzh&pgh9Yn_T)0io^51#34kctH#H>-T;NgY~1;%X_ymzk~JUEuX`bFpsr|nNm{zC!P}1K#k_A8p;;6;F8U7O3@Nm>~-`WCKQglNS(u5gYj_a{i>_whsQTbVxfn`Hpg4+cn@hrP? z0b+z7D9kc7aJfe0;tp8FqbwjEWf@eiAF;Jx+wdqOgb7hdLX8IY5)rx*Y<9Luh5>{y zVFni-+Eq;R)fU`xmth7L-Un3>pthiu2y=Of1}r?cRKq`e9}~&V*%Srz*QIbFYwmN? zOVSij@Bcj=^BwzN-uIck?;qIL|KIn$wCjeh?{xkSez8qI@XEWp)v4_%kp|2~2WWb~ z40mlCow3e#dm?|JRq!w?4L6k_GVR1yuDw^D?HIiGw+@~IQ%-a}y58k@sBFJ4Z?U#; zDBjR+x_Dh7uZ8*d2;R)T=jL3~?yHZ_9yvCAZ+-66iTSbN=V#-;dExmH{WnRPNF|*P zAFF?G=JfIUdnb$!&P>)%%;Epxr~03u{{c4+H&awQzx&uuOm@DLM#5H{4M^sa+2Pw~ zX6wcs(?^d_*R%B0ztYSA$2nvB$Ru8A_4+8J(EU+&!mW=&5cm= zuUI*bl=_edtLiGpC$GG7a+S(oO82d-4>V^nNaw2k|+Ip z>l3Gr-djJ38$J%{XP`S)p(-PGsU^*%r?=AeHFD zeT2EFGHF{F5fBtWK_$lJdk)*P z@&{YJ|4~j33_I|UxNE>{@B4q-RYdjt|D#I(U(f&lbnn!_AIJUwKk1+9`%2$+yD#?s zxObxG4|}fJb)owoyPxd(Lf1&=QpewSJo*al0eGgBlo*0x6C1lVX8I@>T99Vr9yl_4 zQ%Q*-gA21rkP6~nokjMhl4n8=RtU8{Zn$Ljrjlnu6PIULfvviGnR|f9`CRr)$l)@5 z-{j(w-kZRIl4k-yVgm&STm#BawqtSgJTe?8c_!p=p-g92z=7HVJQMQSx*RMF&Tt2_ zWhhXxOlZP#3=3LWFnq3p0%gmD94=fM*fP{@pg_qoAqJ_A0UN=Cd?MRrNrnO?%Y+;* zbWyQ!i5vqZ%Y-Z}2P#3iCYz1q(PcPLvP@{=vJ9lFt%xmvCUOkGG6Ap0GXu{ytN%G% z7-X+rpL1{lo(bsD&b&JS5)Vmm09|Lm$lYvZ7*KLd$f5F}>&P7d5MV%U0gef!Lm&;7 zYqQ0pWC&0)OwiFnc0V%kLW317SN%+Y00$Oen4rq;c>*9@4O|de&YUjsJ1a=~@@d%vlUECXANpF5}U-n9h0UJ^+pBG3@w%%6ZGb+BmfNC^DPW% zXO5|jWSRu7q-Sc2CC7vuF3+|+Zem~HSvI%`$AnT22WMF$Tu6X1gC+7PTP*n{B*8K< zljp!{yOQe6V%aYths(5mmm4qnN7-V@F99IY<%G0cXxMl+T5Ov#2?h)A; zo4o=83@w)I5^~XUFrj(-oAgm``O-`cKxUBuXc}gEqDHX=VSOUw!se^WF>7y1R9Sm?94XWKa^TV1-TU* zWF;5G94-qk(_CBv2ieeK$ptYB3(fQB@~`A5E4d&xamAt#CR*;8xCHWx2NvOiSWd9( z&r9Kg-vGBtB7Ksbbrx%S`0kd>@Le1|m2^Og9kcm<5&3<4dx`$Ji?7kKBl#L2Nr*1- zWEXDhhqt{5`|#owI&LqVeWvtwhqn*}T-+e(-YdloJxw z@hQ(Y!-+7QH0>xHAGgA2axyX}rc8mb;^Jb}g8)}oXJTs9b%RN0DB#98IX>l>Qx^W$ z0=KC%uwe}a=Js10b z1Obqw5h29@R0pJTg2X-xWe;*0}|EBA$o##6K4x$0sA7@4u%W{Xf48kSY8ndDP z0h^#8+yWWDk~3ip5=mSe+IfC}Y$-RjCXw;0EtZ@KbGZBfCf>}quSlw(Z40xV@S%(i}&ra*K4|M>oI?;qRu zTYLY%y~hW>JutTCH~W9mU+?>7U$FZ(dVkb=q~{ww?yi5?{X@+Ef3?f({MC-{zw-Ql zZSn4+unYeEVY959@KE6hVS>*6ibdAt1Jn&Q#f3f=wqJzwy5N=e{-Ur8f(K()1kW~H z%-q{PciK#5YdSio4bgmkVo>Dz>KD;+-wSWf?B6ST@_sNQ49Lqd1_K zQQ?AIXVNaP;oDyuIB*BKsA>bj90h0!e=p_}SB3-cB^Ncp6`8$WOdjB?IIMom8L)g7V5cM!8&{KJ;a&@ak4HnT-&ijc9uti0)vaU z5Nn#^vY-vcWTwak_1)`6%M4tHn-i0`pw<>|CN>NmE%bUo0V6K+vxYxKDDW1mche;s{5UrvGRR=aLCBFaKV#%ej87@^G zM|msP{i-XA%m2l{NAElI4vHTwu2y)zx~}0t%#Qthl~{$rMYt3cccBI> z$MA4PW{66)rCd#*~ z46Xo0Gw!WVWFsoM6a>Q=SbhlQMCO{xPyj9k1O?PG!fo8Mpzh6tB|?EGX$mx8xvKQZ zUBxy~KwB2%DG*CjsUA+eE}*!~44w=H9w#V};&gSm_%9C(D{Kpd|amj^vIZau0E9MF~pMGkUxeewqUbE+^#Q zGTOia?OBlH07_e`I^!FjsZ7VY8;A@C?kjU3gDXV4W+mr9$)x~qpEO*U&}F+y$#9_L zQqaWZVHvFu7DQEW;KKw58u3!N0Id4zOl=XK1;rO0Kq{iThKt)8+e$%(0{4&R zWvkAM90MOL9|M_aIWVHWEN)uq4QY%fk=up(jCs+9F{|(7&ruxE z%LrVksk{Cb;DB~0C~^R&o@WANWj;`gr%4VZxUk)_dlE!AKzI`1TT5U;m6BbJlHma1 zNuY7TIu7o_xc70nDUz6&qd9IFM0O3ktX9mUUq!A1BK6oon!Lj0vl&o0}!R)zsbi6u=@p_7k2YqEI; z==cBqssGwdWFce~!)`RR_o?YO^K z^KbtA%+L}BGD@^UYly8}&(y~ov8_@>)?n!>VhvJUCWP;*IEj}C{X#2&72tA(UK%Fb zMRuVjLcg$q%P|6|@r9L~#7nQEb|D=v;6lLoc5LFi(9n`rGt8gFkSG8LY=DFo6?I%czlCMgj{BFzhWuh695w!(|x(ayVfnQWHy8(i~9nQn*mO zbGiBCHgMoI#G*nA03b~x@B*0Gaj!8l9Jqp5)D#z@#~w)#;lTcN!{s8C$vvJVI54=h zk4R3(k`8b_LjfB?bQ;z72gZC3KFyH*Mdea`+CpuhmRrnry7`7CfDSIB<&$WUMp zNr46~EBlXj~pjy6FE6x!q|Z9O$ArkmAB78&zMRS<)s2MGmNqP1VDpRbz9zfdx3A z-v9kwr#klkaL<$dAL_ej_boktwd+50KaXG9`LPp$_C(-p*OFF9y7|SPjEJ)pjA5(~ zebi=%Lo0XF-Jk)J(^`9T>-jI8eQ;?c-nef1v{i}%x(IQ3g-u}g0$ZgbaO=o!K~>YU zdzKEwp}qOV*OH-y@dj=knK#P@Kd{5cX6yCgiBrd0hhs~AXv3{PG}|y;4}wD33)s$w zHfQJ<+&+`6XX6)Q+4NL0ePHS8#)tO$@`r}dS^-gM=8w-zADSE) z8?lc}x?WVTk2)q&z3zlthp~WtWYobs3?|-_6M;9`{1Y2C7SLaIo*#>~r8n!X=i+sx zc-X2b!}Rj*IaO{wJ6iKQTJy%??c}?QOg(1 z$A1@F zWT)4&t#jt#5_G*j^N353=NM?=3}7r;`nc9}J#YQ*zZKcFXX(1up92EmsD6fQMou64 z8~z-&+Z9MFqTfVZfiRzd`=D=`**SonE6|Sd&t(0?+|FfedtJu1*CySw^v=d6Jy3d? zVOvryrVyqpol+axq+3T~>)n8mhJA-Vu8A}(bZtziYq{Q5*`HfSb}L>4`j)O~d}CLZ zzA+VA+ls85ckTu+0**?-p4e8mLS#bTu0J#48i1OIWe3O=mQ&K}-3sF?@U3vH+R`37aoxk0&_rD%+`~T;@Pwk%Ry&XT@`LRVKuz1CiwpqOC z;(@}E8Y)qAloy~WU%s~O93wl2rSi1a7p$Gba_b+K0>?;T2HuoqnWN}-7$0?`x;;7( zOdc7vEpzh7q&GD&;rsZX(Urjs*ZDp?^Yp0`4f(Q_1Rm+|x7DbM>1~AD^tx%soGH$Lad?yy^#e zenkBzWPi;UT9nyTjsgGIJS%h;38sGPv2TSlF*WMC!6dp!paL>EKINEG*7&#;xXnMY z;nU^L`urWw&Cia`gm+lX}{1uM)Dr-ef^W(DBfP2t~Xjqv&**9G$4!;pkMoe#DK;3CE0H#SFyZnWyg^ zpRZ4rcP6LB&V;HBG>RbrnfKe>*_n2Brk$PX=W=I)kiwC1)5kd0_!M@g`nZpsscwy0 zN9q%yh0NO2)D-{LbpO*wW=@vxOzQpr#*PO&t~d_=zZ>BH_Y?U4eG~eBYta82@B3Qc z+o1pVgV_IXc-JEI{~qaj3HpDZ>G%%*Q0pIOYD?PjBQIbH#}8;&sxn6iJ+Ev{Xd`cb z5orx=_>os(NMZTV|IfDiZ3LD?N@8&7!-T?;#^o821JRFcQD`HuM3gl?L}esWSY8erbshcE@Edoa8Jlo)HVWAKv@G6(2gHP3N&!p5iBsWBSss+B|?F_ ziL4xKTXeYW0PQ1HP@uN-0U|4>aXCf=b!CX{F_%$<1MjCfpyCBwuq_TM&&uIjI~4C9 zc@Bi}c54Hq3u{hh>|`i#7qO-(EGObiW{XhZPJ#j{EE_V$+#N&W6sRq|uVuI_BQoJD z#&)9?p}-v!1$4X=E<1ow7W4CJ!!ht)a#0meO(Rra8at~m!-3n$MNM#d%D|o(JP{7u zwr;qT0AMx8z^$#qWkv=>V55NTwj#oT_s|@`GRC+}$7P!gwSfb-5Q_>;C4dao;Hl-X zHO6H)@NQyJQ(S5Ul3NKB;lR!7hRZUoi2F#9IS1a=GF*WH+i1^DTB6=tpEz}NBR5A8 z4%|d>Krf@h-L9&i1$XZ$y32bQ#<@y##h)RFLj^u}Ol>_83(dajwp&}q+CoH0Cx zwx*8_BUL-!IupDFCk-E7dYEi>)bR+FPD13kjZ;^)Z_M@}i~lp-?D){qLpr$6=bQ49 z;5wm)7i3$4i`RnV{R}reVs`Ptc;_!j80gSq=XceJY<5%KDPQcAFLufoKbPf;%Q#HY zxAZ`~E#3TLZoIs?Et!_-s>z@C(>yzCxU9au|71ed@LuR}cdO ziFV)exvoyqX`r*w(xiS49y(jkHiIJK=&1J$%)r9px$)(d-rD!f%)f8u)b!+ym{J{| zo0%RP#;*)Ff9aW1^||@`XOE8!ADf?ldT#9C!Ds6ebM@KN$B)#FsqyLY*?D9B^ug24 zLHws31)dXae%@+o%8#IoACB6ghiP6DpUcElFg`k7_tA(SPJ~nDD^K$tIyru{K9|ZS z8kn~_eEPQW>FIiAqW6KNBYL7YFNuWM!M_e!c+a%#t#X%Wy$ftbMWlhHiN=0d%!uj8 zni!wRmESkGAKn#b#NM~vGGY%djq6)0^`XHY%kmtPP>PhA9p`oOZ?`Y)sn%Z_l($1T z8|O^!ex|=PypNvLUs_&%E53+$a4(7?^a*X1J&pHW?)>f@rOfTszu(R;c6;s8y-QCt zcIliDd2?IxadpgDQg3jVjw@uXL$URWV^Gb0TyM~M)odLJ)xZN|;-q}D!30+8fB&s` zHQclGSmRU3iKsUN0L^fenMxVFjTK9`U9EI-=~1n*adqka7T1nlWg?$gTbAB$FxO6> zZtCyyFE%{b#xe6Wf2@8|iDFGo7&Eg+4>||uVkP>6@h@(;p7##?vu8hcb6S(${8R7p z<{pa03 z=zhHGPrHoHU+(z+E9wNGDfLt3jtARTDGzuoSaxWeW;XS6nc7%}mp<9o@qyRxE95Uy zTxgTZuxul!q_Y>u7QIl;79n(K7O^3UWLu#Zayu>svPD?ZPmoKR;DR%0R7oS(^Xr96 z^=LcXaLF`seY|D3e8V!m5FNeDZ%v?)>%h{-;`C050csf)F2~PFI8;J`+R}67mUi2U zcMlI1kzu}^wGoUm40x7U(iD~t!{zKDy%Ag@t&FD$2BffDbdGb0DZ_wMEyLv+CcK{m zcI&tR14fqSL|Mfl_ z^Z)-4&;J{{7BK(+Fy{ZS@BDPf-*((jGzaKkIy1C`fa4%AwP%QtM)8~F24A{-c`IG~qN;j#ma zu`~C_HgModa#7XBhMpqy*hXxk%5dN{z0Hh0<0`40_h64k|Ma|)I z;OflXKm@L%L(6;C4Hv9%b8R>qxpT;Hpuc6fVE?F6IP8X05f1c~IM7^1g$q(9A@?|M z!#S{oOe!`u+b%qW||xjr#xfdp_I$&;65qf8O_w-K)L-*!xt^*LvQz zYo$^Dzq)gwySf*;y?Qp zD{~xM#m}~hD>NKmB`3I7Ws&1p`&DHNWjS0>lwqgS+OQWLBo`GMrW+WJ=c!u*^PM5H z7a8QDCb;0f#JdkY_gv3#oDgZSN+@t0v8E|3m`JgQ#Y8A@EkS`4mT#lH&J33f1>V^* zT(05RD6J;~F_%^PY55%#1$4X=F4Wf9$7UOjfosS`RXlYJ2Zlo?TXb0F7dQy}hZaxKG#_*t%nd?R0)3oir{J^-~0kdpHRYU}X8t)FF_&%XMM%H@A5-=Jmty_@pF;ot%LCWO_5X>!KkU0^_j&aHKhg6CJqMuw|NZXAx<21E z+_~8CgO116fB$!MpbbDPpl4L6v0-A+*;ZC@Zs4iyi21!p>_%5ELjoNW0Qt;BiVJ;} zOjH7UQEeIe=Wx+(6)XpiG)zrYX^f5hd6PT>0=TGry{t%Bt# zCvfJ6CPRQb2mTo` z0a^8@Ky4Y~=cR+)jZXo`aLo|DzD%CVP(X{H=P8iFLc5jEea?zdKx?1pDUiZ~hA(@* zN`?YA5fsq4Y^83yIVj*-B!T=tb)h5|lG0R_v1m^-R$ZY8IHb|f#9DBbv( zsc_-Y%!$lzB9}ir& z=Mv`s5BL2M-v1Zy{{L{#7x4aH!u$X3uHWx^OYHx5SN8pnrj?`AMg;#ZwE36@wAa17 z!)ZmUpocK>s{kh>N4dCozPk5Svk}z^YNfc~R?Gf61U90f6D~_crWAE4m9kNG_@(s$+OaoxqQ%l1JGC{`)CRzuu#oP)Z3~&2DD3g{yE^s$AD$H z$~2TcHYaloXq)nUULwU6`XPH?6S)e(rTjz1dR7VxJz#7h6B!D8h@gPRWnvlOY0YhY z6rsR96a`XPkaMiOVMx9IU)S-R?*AWy{@;Jvd$gqgx7_o@t^-|v)%EVqf7N*fezU+2 z-1fD?UG5XNFz$1} z6(aJDf1LQn8}U-OU^~PfIFr8ZpN*D3R`!AjhXK=Z)m;az6&A#f^x<9768$;%f{2!% zYZW|a%!9c+inz_p-cIoHMjF>GKO6JorWfyTnvldFo{dfwxY34zi_XW)tx?N6OZgjY zF9GCz%ctXD-TdO4$Y42vlYf;W6e28f*9&(LSLikHF#E8^VVv=Lm=XE%CCwRmEV113b#0TNk?D1=BGH`OomM4Ksd zAcM=txyW5q5e}5(647#-hRX{uYr_22WH?ZgOKjpomI7%_h%_^C32@-R@(HSqRL4u< z!pKnec&>y3wPlDWmf8VyWz_;ksMS`(fL|aPptcXdg59{ses+s6prn=$0oFnG>Qw{D&R>iz%Pj#*ecPu4u)sn=;;AIM*-?g^3U}ccLN6&Rqj!@3uS-nb!Bd zt!M@Ex|J&%H{sFjO*jdy1Mz<|H^j2RoAA+@>H6^T>EXHK&*4TqS3fc{JvrApG+XaV zd^TEn4fz^HXiU{o3?4x#Vdp7N**cyXS|Q}vKv-;z&=dEg$aC0fWs$qo3L(dq!3F(B z_9-lJlC112r@J$-pju>Ca+g}s0&MwQpk78B%Log}kbCvq{7G_VWMzPQPo%g|y!N=y zLh1L!S$AcR-au~2_zK0xmWd4{FhU>lf63T$Thm$Q=6!-Lqb01n(!WmJ(8rEv80Pu( z6@Djf*M8{a#PRD!UcjE)M{FXvAz{z8;KGT%KDG?3%$}&VJ3YR}d2Qn=to!#+Bt_grwG zo8*9cl0^V%*$(?jCc^D~EEr2T)#Pwiw1gcME*J{K zj)uRC68DbfPthDu@lv>KSo?A(tmHYc{7HfXX}w!@YjU6e0vu59|2K5p)Up5NeV^I; zmwOKl{La7|_nhtjU;5wI_uuxte)p$(|6}iMJ^xitZPzEd|3mjJUH_`D_S zfw$8fP@k8=<)A{xjhFbISX+SrRWY#*gz9b_8KKfp<{rN?6d?4cGO*CV&YpS^xfUEC zD3C@A!t3lwPZ!kiHEDIrdQp%p@b3f~(3 zg3&81Rj{U9p2~0l3RJ|RYFq*O*FjHa@I*N9W|9L5EMyAVJ?k=Q`NO3{Fr}EbT%34FM%36@E3ysLK zU3etwudS`wRU4*#PPDC3)6q(;b@0$-3CYVSNYrU}f|u)1)${)kWc~jp2fjJrHR}Ig z>$7$*H~s&V{@){AFL&M0`HLOj>3AUN1StQ1yl&r1Y*O)1k_&rfxVTts(HogfO6yVO zHz|z^t<1_KJE{F__|+|NPLHhIMr~3lF5Dp4rN%ZK)Py>f70- zg?cD^I#uMZdJDmUG+eMqVXINgZ~%H#rK`QhWg2k*i>zF4$wqqK1UPVDrXnDJMJyN`IBEc>#aPNq+=e>cCSZhGFB2$aE!yGL!+osO2^zkJ$`Eb*v#zlkJl$} z#2oDS+|2aYaPe24IaQyVzkl}l*zmFW`KRZ`4jz2^MEyBq{`A39bM@J|gLB7^PCt2k z+V}CNY|AOzw}dG&B~0ycc3&{K6sCp^m>oxm`a8y<13DK|tH{jEplkIzisGk&r@ zGB%?6|BTyb(iZx|Gas!_r@vsR4sG>I!%3?k0{3XEz#&~}qm1C$=v`=$1T2Q==O=K; zHWBhvRy-hu0d=$;hbCKSLt-l$T!B1Q>6ww@3ejv_MFHU&IiA@O# z)K;KQRZ2FcxPl1ndCcI6oW}PN97tiILyWC4Cc%Nh6$nz5c8nMoJabL|RT$WbP~amJ z1)8vMAflAaT*Wp}fKaCb1#oM2Lj&`2kagsOl%W9BsR#-rxReJhx20W#0{4&whSFE&%mISV^!gR zIkIvm#eo!;gMkz77Awwy+6s)MN?oOC?K!B50)&qgD4_NaRTB5nCdsAd<|&}w|GPWB z*RlT}_B_%5kzHTxexj=jKmFPLadzLzk@zDns7%G#2^)`W+()CF#NUQz>rYJLHGlN@ z?1}9)QvcA(gibp=fA*PDz6KFd*^j0Xa4BEo+EJROQGb_D%^))~{`7HU{#gCw%<1Fx z$q8d-_UJ+9VEnU#mT5WuE%*&jezg9vn$S$FyG{4WKK+( z0`syq97^jDARjfIiK$W74JJo1l5CGoj!!w}l!gDbzvN}0%f2r3P)%3{i1a=(prP&O?pH%&$L66_$S#%CQ-wv*GDm$ zFJ7Spz{nF%KW(K&aG(Y1vpth zF?V^-^qo7@X5-y@Q`(BRqCG1R!$#HV<`>I*G3#}^_w@FH-l1ivEV0I?BGrhxJcmSxeOmN#7*Lw){Y# z0CX7zQ=^soy1~Pwu?yKq{q40ic($_PvNzubeHnu{wK5q8@9f+1D!t7rEtGLEXVxNk zud*gN7w29N#-+&(7tY>+dgtuNZcehZs`|V6NMF7Tt$P0tc6_2^;P{>!`#;n7cYP1; z{>tuadtdDNo1VkF{%F@V-Jk0E>#h%XexY*&ze)JVnUV7y@r5Jr6>USk6t--ZVfm47 zvejPO&`7GLV59Ja0Tc@uDY`p@4=^AJZZde%nS@AVGX^$7PoTA_u%$Z zDMKs7OnlN)Ie%0@JkxfAocqpB(tjuEzmxPgZbkbrs(f){(R(M5k>Bbu*;Yw^_5Ocj z$AfDA|J(b=_Wjo0pYB!j|G}Q$Xw3gRyMGP(e^2!MSxK(eL3V;hf&#VkuW1>sz_8&MlKH z3YWTybH(D?a13Z$%>2FvDHwqC4R~gG6=mJdYhTR#G0?ly^U=PKC6qg;~p23V)8#vHUY;5op1qWOMhd|`8B{5~r z0d4D8ywxkiv2z zJJ-avksF%KG0;gI1I=1@VBrV%<+*tZ==Xn4|G$p+zrSa#|Hsh(`$nI$`+V;Y@&5lR z-v12!|MOa1HnRwLX2)j>Cdx7N1rtl|^<8EWoZ=!haao2NSq}85nBVN?7XghBc4;5V z;tC_*-vUNG=e4?QaZ#~Z+NJ>=V=J(@)mE8}NXyG+HljFq4P1VNB5)-ekye*&5iUP8 z;laoJ)?_$fkQ_j`;Kqv^f@8CBiEv<)=0JiAZ&MDuLu{*Xp(B*tsw%(%{r-PQ*Z*(W_qn}4*;|MI-#hXC|EK=(zOVJYZTCv=4|*T( z`O}_Zy#K!k|G$^I-VFc0zwLNvo%(;rnJdpjUiJeyizQGV7AfwSgA70zu{&Tz7C~#v z<`*Fah51G{;RO}}-4b^b8q4#eTIBSUT5uE!0R z00$17e_yFN9UEB_7swfLv+r#Z9m^yx{;i>%!^Fhz!oWx;Ie#| zZTuuc0qp|YDqOfFJKQIR3LbD#8Kn0^2HFjv2DoRE7gL6CBXt z@(k=`Fz3AdWinJ~-bHaB#pOC7o11Mo2eb`raZwdfUBj~?6FrB_Z%u{++6T7Cfdp3w zuSxD9D#8KSz~%Lw~F_MJoI90+I*B)H7L zWj|Bezya+8o994UdPW9}eUFskfHs27b0Ed#20ptlVe=fw)c;@Ff5X1d;{884@Fl$e zSMmOTs_%>N|64)-|KmNM$NPT)@BfFpei!fmPvianKARGQ2_RBstB%kc58M#6--j3WEcB()Fecqv>^ z&)W+5(Ie!dVzYEjfOKrWP?O9)G(j$Ef(u76+mn6s`_P%8^W*D=3x{4#A95p4SQ!pH z)hb+0WcWTNhS=c};eb{d&(6%_?gBd*WW9h3{inzpGP&7?v-k;OQT;eI7XqXUC)jG< zWRDYzn&Lu%r4q0B^N+0?E(@;8+%=Wpz~K2uiAu2!S70bxPWF722n8OYj)4?b02h01 zx}*&hfCp^pjp4^U^$|PhSXGpk&@Qm~>u8D##yo7%4UuC&o51F8?Tv9$vaKR`(fNpBQe!+@tAkPsSh>n-SmU|6fU_7*@quSM5nH2Fh6ATb4kWnHkZp3ycOo1pNgu}FS^^73t?Y7?3FMT#({m&%DTRV5VibJOi^5I5xQ#HW3bJyQe~WS}&u*1rccW)4C1k zz)5mZ6;a{BWceslavzQ|=fDYaQ4?GkE@8JRi*NvrD8;hP~g}d)L743|zJ6 z)BS(b|GvK8?t8=TGrj+J@9jPRP0!G-7rOt??)P;4mt9wOe!Sy<#~;9tGb0x$H9ZSG z4bacC4O8`dgPOsRHW5sjD za2YUd6T2icb}|$wsp%nhO<1PqdR7&ey$dBZy&NojYi!F8848rt^qRN=BZ8m=fH9X* zgaTzXy)3T4GR-aU=)X`>(~Cjk_5uO_2u&|Gdlo^410^-R94?H;vYo&rE_)YBYI-?X za1~(ZNF+EgcmZm9*vayl^LT3A^Na{CvXuzmUyWW|h3nei< zfQ;vgVQCoI@OP}D26g7j3lP&Q&WfhEAP>hacZv|8B&C-PmgU%R>1D2{1OaLnN>X}F zT#ljSXZeO7B8Na(N-v8GUlw2PNSXm>qYJxQl#ZO((GY$?>Q$zfb*FSRJzbw2zV<^W zCyrk?@&ba_-70w2n1?xKH!|TmwiCSi{NdBLjpu@gy|=5JJZV%`Re>Cj7j}QE!1bfq z|F8A`f3q?F@9+8b#{9p%`(HHX|BYS0-2L5n{{M!~&%RRs{{=#44-anjm(qr`QK8~i zGDJ2hN@p*F3lfYD_XaJ!N#Ro=boNw|4Z(veB09}Xc2-5;Q^6yW(Amr2LMsJ(Y*yr; zCUo{PupIP4bJtYjpdP#coxRdcRWGCRjSOvz3rmCol+0cuTnZMtrOYjGQzc~f08-`b zlv^Xz0NC=%G873klD-NGO@F9afxt%kl9ON zL2ZTq0+-w+&>}zvVDKZ=&g!US^T*JiUhd%%y!U0NX zFN4c5Eq2#(8#q7+?KO(5j)4&;Bp10w5*ZE{BUW5aL)Lse;FWAtp<`}q*c$Mj8guf)D_FQ)7 zi2w(NFF7a+7(O3X!SyM=jzgOix8&?dov+66*q53x&N**>ny z%-D%gfY8~?z_Orc&)qO&C;*+kQmI&nD^z||q04R}7oh+pwAYB2!i6#!dnXg8z|aLk zXwSmLF(?qg_X$0R72QV(p}h<)G|jQODZ&9lXfFfH_iT1KN`?c3&|U+VZ=kgu=~eD_ zE5ZRvXfK1yMeT!oY_@>|gwP&9s{Iz;i4f{E*+zRZ=KvwJm%$YV0bAHqgad@oUIvzu z(W&MfAcXcBxZo~n0#!1jaCzJ2D51S3F1T62VTH@hHgJFt+Cvpdodc@yjFW&}b(7%$ z4Dm{bdx{HhJoZrO<~fk5|G&KdM(F?j6#jo-9=Ntq|Npmy{{QdA@BhDhh5CPO6@q}p z8>t;j1Go^2R0S3;wM157RSN><#s@R7P-0}4**Cumc>hBWaGhw`9$TV7<}m(b`I~J- z3!;^1;Pu&D5;%+xTzG+~5oB<|gnbLt2neA)V8mJMVpa-WvTijDxIhT)WpH_rapeY2 zfB{1n2%)_UETnDO)HXxsl5jco5+LA+(o)HHxhCJ#L52f_&|U+VYq*%@3)q5o0vtGS0YZDFmZ1!;08MGk zDnlD607tyyXbv!{V?Y(e@uLdeZT|d0f!6=U%b|_M+M<)Dv@=i99NJQgcy>Y(=X@@x&As3?|X( zSxJiY!0PLYTTvdDZ?oH-+du%Vq?ji_d>TW=#Sg3yR;0}RQi1@r)uBSRNyRRM%M92l z01*ZhwG;EOU@pUbXv;95sGXR?g1;op^*na*Lf|kSS-p}v1N15?Tp0Rich%2416k^%`XAY(V12vA^XwWyt_zqJIGhkn#*I8fA1OmV?q(uE;4 zTV-5?1AA!>sCWSvbbW31V^N#~gR4+d#H>lm0XrJDV_^c=6kv9jeNxFVU{8Soc~m$* zt2hLPRtf3EOt35;PJ7HVQ|1(abYiip*udo*FhWu(RwgbH2J9{}AYDd0p0&Uw(pho{~qr8^opDrTGiT#Da{l}oXdzE z1YRxA#&8}pcrqumU7%SWmkXU`DhI4(QJdLZqso&E75BzyW9{=CY+acxwNEKPH}#7JD8>h6AG{2NGN`Ph{U1L^x2C zOU#8!`71}4d zeSp}BQe2pSu4Ke=6>5p4M{EkqMva!6Fp=RvQ7%z)KrJIO6Ht@Iv^{efML2L5&4C0L z^b#E|t~PK$izntefQ&AJXTg36dI0QGPl5xlS$*H`jzh(aYl@3~=7}7|MXf~jp{1Bm zWv?hTSJX;OahX^{XtJ~S3lRd`P7y%IOW}gaDVvyWAb?g*ED}KFP9h`ppdMPyT+`~U z#37(W<20@y3fO6L5e^j967{#1!16V=iFppd+6N#5fOM^j=9*UDMQ|X+a!O7nuM5CCvX%4SWmp{}-YEKLP#! zx9>jR`w!6n|7yLDe`?0P+?Yg>i0s8+Br}ci~@6Oa#j}z+vF(ZG>_F-G$c%EBH zdZ;*uq1GXVrKF!LSO=9e@Q{+6JqV^&kFNMps;7q{$ZpHVa+A8D| zOUWi^KjB-0zl?(`DL1tyu@w!jP7+-(DXh@-xm8(_ov0|6sJ^rm6^4x2D=M%PfdP<9 z%(XJ6xZrc+sGV;q4ixng^|zM5f;T676j+7>MZLrnmv5k&g#jY&ek;O(dua}+cmWp< zCv=!FZyDkosI5XhvGf>7E6+-{jEPZ(0v{$Qkiv4%3dW7y<|)v8{~z1`(*7G_|36y) z?+@_)U&Qlb8@AAg;g31+m-S6{+FN85*1F28kfQP;Xe@I( zem1`fXKHIjwZvSoJhY2*zYURnXsxK0n8JenE_O$Zaxl3hvJZWV*oPXcsBl?Oz2WYU z;``9hsuoYooy7o&&C+q4 zTGUHSaXIkGj$EgLzO6F{RzFTCO*B3)g$u%B+>NXa6wu;{c?v)a02Hu+5t_Gbtx1tn zVD&kI0x2#Sb5>I)E6OFRPc4OIIxhQ)AaV?>7UdFCTozo|)tSlt)G102u|99o}|Gv_w|KHd5hZ+4pUH`wk>-QV}e|Kf8 z{%1zk-a@Q`6*sLwP6oS>zZIGn*YprZZWRC$yQK?rS-6n!AKD^^@!FfpJ5dIg>%wKJ zf;ZV3A(fbcDL(1<& zYg#%n&w*F~0J0>g6r-5OP3p*S;B~~JHgVyJ5wJTyB~IftLM_osVL|kk?Mo=b0YWXY zfeSu2uvm>M(f?bkQ5?|mQn)PNW5=rv9MIy4MGh#U+RDQo%2|~Z3D&M8IgsG;ptHxt zCBT8&8srj-_ji122`txP`##A~fKW?pz_MV&j&F@E%_(vW?58Q9!liK8D0fz$o?g@1 ziFpcO{vRMsn4d!kxtdb(+FpVJDK7ZauoIgC6c}2AT4J$f$Vy?k5HsPvVI?>)xCXsM zP&22rrE$Sx#fDNmJ8LdNfqsetakyewL5L9(=7qKmr+^kuEK&eGbwb1rLMH59V40iH zZju5CE;LWG?Z8ARP?SqlDKI!%#o@9di^Z&h#?G^Fydbw zx-H171r9qiFR~;)wInGnwEJv@D4;2QK2OSe;v z%P|}qw?OW5R^%ACk*0tOmx2W^FLt554HVGgiFpddY5<-MkQh6Os-eL31O-xDD7dg) z_e3Z_$R$F^OC19Umlb(|Tg3ydwnoS$HgH+M1*=+{n-dn{z&j}p=y)kyIG)(4rZ#Xu zizgO2ponV12_2KrYf<8X=d6 z+Mvp7s&EB<$gV%gJO>E5#0D-^AGcKp0Q2U!c@F6J|3e*D9NVw-|2~KL|2pRX!#$V! z|GEE2-=FunyH|VvsrRX#uk~2)|NB8a|3BJ!4)gyHW$XXNzsCh0Qy8U3EP87KrQ-r~ zS>Ixpr(~9a7{jnMF4*znLW;(>%f1X~pZE~96{WbKDz+7lW38T;--;jxfJKD~E;ezK z-JB=06@8G{ic(wjRttH_y9exHth699NVgncKcu``6)Ls=Fct6bn6)%M= zKxYRx@zsXoSgR-IIRH5TfP@Jy9vU{=*+_;1cM%*&aY1Rnnky-xmuNL%!KRbHrZOCW zUSg?*NaKPZuk9ic%)Kga{y08!VC@cStRux`Bk{$gW*aD=^%IK}P&~B_*MdJsMaj9_ z$u&)I`Oqe;q>GMFOauiISa@i&8=GV(Kqw|Qa9M_HV!vhkW(!bYWbHlFF`(n6aG@~E zKAyxmFt`T&#L{>x&Stt^gBPOjzOs7+TZfiTOi7mr_H-&Wcb+ zVuF;RKtxhN<-im!jD)f8XCf3JplWUs5QiW`8>_jL)C??`lOJG@$3Fh8kBq%Vr zMkppWa5-=d_Hct?uA&G7o}d|^!lhuL;>oVWiZftnP3tG-PXP!50HkeTb^%6j4nB6WXY?bAuP9HUEFU_lLbt^yKybezD^_>-PT-UDP8P znN7$VHshTVf*;V!_At!Lyv0bYLG9wM;wF^C6`=2pdq>{O~9(8bQuE|kNCeloV9jQB1zbWw{Z7CC^e5(XGSXxn^& zWf2aneTw8jf(tE`)x5__a*6SpCa_GnvT^V3A{w0L5M1Lm*|F#v#s>22u1kD9x&$#CG~MGoX}*-&Mx;v85b^b#}S zvd{rj&25y>OKjkB3?Ev)&|GDHYZB+c+Os7NG?x*$yvW80#l+PH4ruknA_o*vZGdz_ z$g(p*%5dNm$$_rLc4`w-s$!_fc#`|b~R{hO}0qW}NzIu7OP z{bxolUR_!ST$JOx9wa{^%eMHc74pk)QBPrHmLUd-Wq{;IWJ3F#tu7<53}2m?xLiMe25PL?e$E5m@2 zT4ECy?00hf(Qd%OEEw%qrzo@0^AqBI0J?*YVE}QDG>Li!J0#jfbsqRWH?YG zIiR)=g$pGD_RUX(10}V@_*+Y0xvxTGOo9W07onDzZi=zk!N^*(ux0b+yopnW3%931Sf(sTHP@{2iqBECKgaf@a2N16q zml6Z7Ixo?z{~yQv|Jc6Y-1`&E|9^A9-}CEu|Bv^5t5FM5B_`*_cv_87ZhQ#HxcCnDl< zf99tqLIH=OfDV_!6`;eIi>nP3(AtSb3Sj?$nFw-Dfyp+Sl{uL$k^%`Xj6SnxVFV~J zbg`tC7=LRCEEEhXx}BEP5}UX@czL5>z`g~FaKNBBpyCBweq=)@h{?@1Z~)qgrQ0cl zi~!OFNX*$+Q87TO`bL5SDJ}4m5DNk%?3ta|03K zKuIn!{?-y$ffB)F!jj>@H7&zs!Oz}>q60T0Cc=TY(;QIoQn+kfXt}uBzyU3unCC!T zSA|gr1k3%33`8%E5R01P!k`-aa2Me~NiGo_NMYf6%f33waG)fYnBa=b;HWg@Bc}>|Ghn{c>h0z_rJA!Iez~u{r|=8??eCpW$6FEa{oUjFiLk9s2GJ~ zCd6eSuUu8C2s0SKm2peKB4}JnPu9lshkNnc{34)t;v>{Xl;SdRsj50vgee6rotWQ< zVqG4nrJ&W) zbCiymmjn?G+)Z;p#Y^FWP8^$?;)ikVBBT>b$tGME01_&$0osSSJe8rq`w0p(Vfnbu zyWESPz*$_o2(84{(eg2m%}q7QFrXxr2nOhA!3EaGR>p1{7h%Ai6a!LR>IKW)$ix{i zbWsZ@=1&21F@gcH$EgLgTITj4LxDR;3M9BZlV5cgpuo_@l2&5;ttGG^w#u$C%5b2h zmDt1u7g!9~Lurz^j3OMkjpl%gm%@dqIksd}8#thq6Z0H^z&Jp{;}n)-$hb0tC&PjF z5FAKxp+dtJkrv?qv=U3NffN>sZtT`R84i@x62SqD%QjGEHv@}%YKm~+W{LwTF3W~K z6Z7+G0|&HrVvz%isFq<5#iGoV*Le2NT zs{h{r{eNBm*Zu#h{{Ob!D~i^gNe{aV7{}ufIE}kqef`!f+ycQwh>X~p@;ud8^ z7NInRVGXCS+{ky>*JPQEsHBtF#AQNLT)BByvJw3Pu@N=mrEtOOiQW9%hK&faiN({! zg4P6bO%QR7Lf2srr^;+Z#|RFjxS*6$4F^g}iTKu1SQtoU=e%V&P*O^4;(~5#WT8mF zJ@iBl<2uCw9WUTQGp|{_nRo3XbQ6mYZ7eGGTN8e(>YdF^>Bvyv2uXni7ECa!nQDSi zBC%s6u;O7}=KV^B0wtxym;wqHj9*dlhpGb;mk0%(qA8Hzg7P0*#i0$y0CW?Ji)upj z3Bgl#tEhakMYCl%@I;vd8C))U?YT8Zk*iQiDiQb5G+YqyX8T{raG)fW*u(|nSKO05 zc6v#K1CJ6MXv9n53NZ@Fy`r^&16nvS|0aXs5I6u|Qy7~1Y$V@ui zM6d`4N>YjOx0b*%9j77=l%x`yxRjMCd^y+!EfEepKyyIFOW}ezE!$eJ4II$QiFpn* zOV5^RVOcBTz+r*|O@juI^mu_-@Dh3s3%$O9!ZRK-)?<21yxI{NWGJy(h@8!zDe2 zkzWTW005)~kQSyxDoK%Ex|-OFQd}k!Q@G!U#9nlX&`X48r4E-LMJlDt+`1+9qQOhh zODrWOG%hI0M(9E1ergh1(WN)j6j0$(upHd0xQ&5rpnw)n%u@gg0LaZn5M>W6i=EXG zxsqObBSC=_7u^5Y*8~v?KrXRZShP}DF6_Ix$DRZQYL^JX#0IX=fE+cnIk~qg5e~eb z;((5q!ewI9*a95T@`*(bfT(t0_^A7Y>}hcs4!oA+K!VG~fC)Ev0vxDaf?#5)zr<6= zKpZX`CqV_LKuyu1}81Nc`0VymW%Ua1rh|o*4QdlUgv)i3zP60wMv4IN?D^OVRLhgN5gaZ30 z3g~z#Tqu69D_Y_d7`mj@6N?m3JcWOV36$)kU4{b#BnLDuyt2_ZSIH>=y~NTf05y&{ zTwa6?gNsUr0)$*5D4<}$^;OxEvj=TOD9}e!Ai;$vKYQ#&ngZ(m|N4$QIovj!Z%NGFVfKi585N-WflCn9!{&Hq;8|!jpiXCvI!KS|cqv>+ zEOB>7X$qWmFWLQSP0!qNww^_anXR}*(6mD+-ZTG?yGBV*5xsQ&ZV&{ljNxPMoOE&KZYJjvuY#-!J(U9`%D;)c8-jDkbEv3ayLZZKyIEq_}D&%I=>^UES z2Y~Ym?yIVSsG=8|LEKJLTqYEjxH(~w^NP?*#CT;RT*{w{JvlCOUJ-hU4P5Ynb&)`4 z>zW9hS0k5hpsuGnUJ94zTI^1H=>rQK(CUdr4yZdD+*e)b)v~9rWbSO&ksN5?aw7C~ zaPN{L93b=(@vSAWa1%GVZDBGTAoLO&xLhNE>^5rJm;cT-a_Jp32UNTiE<1ABiA`}1 z)Gk3ivGnZLbydf}wbJ#u86Fu5yq%yx3JXc}Y7%vXTp}u#>KIVb@+@3&nV*^r1qivs z1};?{k3tLtGjVPH7*Oy3t2*va-v1lX|NrBz>pL&ukF@@Q>+(ma>#_|20Hpx{i6v~0 z$y>X<*JaF$Inj2yF5}1}WcKWM;284%c-}6oV zFPMG3lHofcv)8~C!lKZ}s0nu;+C1Nps-tA~GPuyp>vE4`@gr~O5@hy@xhH_cxeWb( zNM@nv&fP3!I6&y^WpD+iSxt)qboSN>7iOO;I`asjy+*j;G#S|Nv#%gkH*$#*+RNaA zJk3^k`Vc~URy?5%lLFNBP;lh#w=x_cg!VGHT*xPIH#U)TfDqctz;aM-;pSgu&H+Mb zuYpT>Iznxgy=91;1C-ES2A3CY1#O>8gwP&9s&ha&JVr{bmU(HG;Q%4Dm%$afK{Z2k zgwS3F7R;^KZh$fzAcXcBxL`I37l(lTR21O=CA8PX6-1#jSz&%&ZMX{&LVJn;_zTH% z48&lBhzU}L1BB3C1{ZwF*rG!s=KvwJmw|;67u!Quh698pUIUjZkt-=A?sVVgIiTPF zhdTDZy#Fox&h7o~-iHVNc;HQYKHdK}{r98$|Mk27v);c(_x~4qYP&ws{a4)|?E3w# zD>|R+_{;yFy*H1t>#XhtOEsxVRV7Dt3lhh{xhmnv#@5l9hcbqE#PW}8G z63FV`cfNb>x#yhkUe~tvy{GP4avZRPW&gCl^V|E|``i1s+m58t|AoS9AIO%2Obnz3 zBRW?8p-hVx3*u+W@;NBf;i_Qa0!p6W<@p>G>Tm*=FGTB+N@L!cYObsQ9FQKKQdC5% zaN%)>ET7Q;mngO360ZVgIQa>wc--BETpaOR<8g^41qWhWhJor05f=*wpbnQw4`W!^ zraDW@9FSshX$}Yn;%aDo#^PJ5 z@pw4!f|3IfF59C|%Cc}kArFUdErMl1u9%ul^TYv#JX{$Uw)~+(5b1Ot9C%jE0bwtJ z%e5g&OT^Ux4oI=MBnQIDPw23t#A*O15hM=>o>p)m#)X%4a=ydD0fjsq9%Yb8gyzDw zGqSmOIG~V+E91hJKaBFx(^i%^@T7_Z(q6!22B^SMKd%OGK#IksIUtCN9d-t?3i8My z4+ox5av;KmP6V=uJp%^{uR$Iz{g^HuCd=mX=(;%^6c~IB>TrOS5ZWrk!jeBsWRewW zSQv0j%>ZF7z``gWN^nF6%gq41HXp6^+U$*(wh$UJjL5NFdu>j1w#xbcXVdzBH}Cm$ z??0pe|M$cB{~vb0fcgIenE(Gl$8+tUZ$Gf>6K&sbdp1=8$o_C)Xc6*pRfz|39|&2( zfue$|qYD5dBjhqEhi@8O>`1UJjmr*ldC6W(3dW^TK>#|Jby+xD2D!MZ>uDMmW@M;E9S#Z% zz6Q0ps_SVrEG+#)(+k;+u`u9*iUINv1uRRba}p1+0Su7RacKsK7+_<|80J&SRZb2D z48At6JktmlB!{WCV<5oLYe}uR=u3-Gp?pXd=HOufwBi&D5V$N&Eao65Jrg=LbqsnYsmkF{@+czf1~>c-H%o2|9uYn{~v|^f3gE$VR-Sz z85TlP(s|e+-MzjmuOdpcMg-LeL(~cw`wDhGSSLEdE@=6-CCY;KD9a zYN3rI8ZRcL;?l50^91#)WpPD|NvXIhTtZvlGR38ec=6+KMT^&~Ie=pfafNG9iMSfT z0Vy08xgu%2FdSnx$HCrbn_T|l;lNKTI1uB)rmS4#co&mWacOf|rc3U_=HS5KBBbIn zH&SUX530(h6$uh-JAq}Pz>tapF)ZDsYZod-iyRavEGD($B5DeAIYLw!Gwk>|QW1xR1J|iJ zP{xH&Zteh8_C={2m*fDtoM1d`vabPyzF(FAOXc*rTFA1(t5&`JZ~BZ9o{1%5iB52%ef6w2&Y# zK|NC*3iK!`P{xJ9gn<05F@%A_B9^-0Q>$Sv&qo$Z^tK!fC@dy-x<$+s)-p6aF9g^D zPQ=ARfi5)#B3y=vsed9aZVJf!|A~11U#0)|{qE6K5ofUa3C}nWcGcC zw)ieJxUg`*RB<52WxGhUb9PJMfDsxmeW-9CCe#zq34kPx2$F{by7EvXTt*O(9S92t zl2UOIH6vJrq4hUQjWwSBGPTmQ_5C`@z9#Hj=N_znp)P>2z!405* z6pl+$K)$OA;W)A5gz7(d!oYq71tMHxHJD32Qx*y&7re<&Er#V|=P=b{@K7MR;H?^$ z5$>w7d@41so&uHp|McF!+#3um_W!tl0{Z_h`u~5_I|}`ObN45^zu)~V@_()KV`2XP z2J-)3Y5P{){C{ZisKO6Hy9j?;n(q2KeL$P%5ZXc{=(x*Jb43P6R9J)nV5VAHfu#pF zS?`mF0uL!EfK$X4j3BUVBcGJ)K{W-+xI8HSk;7aAC?NI!k`#at4~*wy;24EDatWM= z0#X1lNr4!b4~I*=%QH}5Xi@6_)iM{vyL4)r&BKBBDL5d_<>44j+~28pgsYFmXra4L z#eo9x8Sxz<5x{fc!t!?h*5B z4h{@1LI5z+3=re;4f0xK779rDzgpH33t*@hG#(1vp`d`Y7UV-r^pTRUXe<u80COef6RUBd z6-hTxPp00gSbWix!WWh8C2;8m<^+k6t^vMCiYX?@g;f&>$I!rmS{r77sN~}DMW+-T zh;gCfM-F@}97xJ1%5N=(1vNmMn*Q)`ASs_%jZ4=s_vSm~Wlszo*uOZTcqJ%*UIG{9 znsTQ=VG&x2>1vbMwjzp%z=#d)RQJKdfH5TlB3LMElHDx}1Crv2(U%s%(p}876TKP_ z1Crv2)wq1k5NmVDj*Nu?&#M_A>;+s{F;1?qHXsN{CB=*>E(idS!xIY!lG=&Uw^oJ)T`Riy zDh~&e+KJV;Y)snY(LaZ`V$`P}S93tv3%GDS!}cg**ktEGVNpscCODvrYf$+1jB+bk z6NV=Y9LrK5hJ{upmwe^8dJ0tX|I>TFy!TeT|Nm?MBsKuN3-kZ~(mRg%|6kbssqR?+ z?|U83wEu2<5&8dj-YowgT9Q*4iDNKq=tc^`6w9!X&{F*+%Q-A{WzV4s7Zz+=)a2*t z&tYL`NgnH zowp|%T7qz5x*HF+!=^DEgGo@tu*mgg9tyN6&osj2LUo+_EXzTGMTJ;mmAM?#CeN3! zP+$>ai3$n`a|spGz{65b;B@5@q%ugTiwIIj-{%ASstvjmw6V zuZyY#_0G*efZ@eyRS=N&61Z$LAa}hqfB{lGF?kP)pThx>yatwm0W$x8Q0o8PIxi@vQav$A0XO8Sp<&yS zOV>WB{-u4YAW(s2Lnw<{Uu^&Zq;_I52sq*U zj0fE~3(~&SNX0{d>l6ftaY4_EEbYrcfT1OYTA~rdGF*!+{KCP2!jeKQv5d>rEX%Pi zm-@`c5Crxw^{Xf#?ImzwMKcvv11JFL#7qouLhs>d78`_uccr}5`4d`QY zEEG_vCE`8MxkZ_Q0>ewYRreriFW`cH4;D1#oDNs! z|EDnjKQi!}$p1@yU&s9a>%Bk3{QsY0{(rsudvyK3CB+a1z7z2$7BZs69<#E<-#W{Y z1d1bxaapLskVUf_;FhF#VlpzLA_?PJ5VyDRJWDkmk6ZE-ZmEI`n)}$aNjy{*x1^9u z6psbcT$oRwuTJ1`OA5KfGA>hd3@lqFzc8|Jz*cY|#)ZTO0~5q!YybzOcw(9Zf~y9^ z?V&W0N4XSLI#bDk2p6nJUQfls0fk&5&a?~*Q{y&S%Zq~pgG-Q0%;aYhm##r+(jtFq zEEG7bra%}8083~FQy>2uKmnS0HPY$ zabjbi4p|U`hXXe&IS}E}As|Zq*jPBAP)o$OR)&S^Em9$3Xy@U8LM^e33+q`r6CF0fk&5 z9tK6&6y|au=}66RGA$KWU{ar}r|Bts_SFQi|^*(3Mr;z`@fc)Rs z{R!m%&vgAs*P+gjc6__z$@VX`-?Hl?ZGYGHc{vmG3iV+Oc6lVZ!8P9<1Q$B7; zF@jNs1u3k&w2c$LH6Ayl5KAoMGBwx3gfY3hl7#~gt2rP(FW_=f zizm0gG=KwAJ2A-tBlK&~aCI>bLw*F};lP6m4#c=jOj}W}2rQvkp_XXIuyDJ|sdq@B zmRQE6YfvNrH>vT7g#-7iI3VpMa0%U9>H|vyI3TqX(;NU%vDU=39js@g=8ZfYxKGJ} z2p1+($xjX}98jnw;#-Sgp`#<8p{6B;T4EWO4>@YzrT3$Ye&1Ik`l58%XyAae8 z(-R$KT(0IqE`k1_&BB5As5l_)4PwfdKmejMdEuH9nYtcD>H~u4GXW`c3-q_3F3)I5{pRzGIW?&H{m<^>@i-N zQhfh0C>^c5xj3SXR${fSY@|L0_347+`!6hIv=S@0Osq@9R1SHRmxTb6Dgwx36u8U) zx&*{H$4-EuC8?ZP6^ujUA-Z5Shj01lx~JY4c!KeSk^>Pg&(_IvpDY(rh$SW)KNIG1 zt$cQK3@$+}F%tvAOM;EfuMndmr?4y(7*$h1oT9FIj*r6m4xoUPPOPGUQ8cZvHWvUS zn$yTCojeqHK23oHE_8tf)WFU{0fky(mATN*?o!`Ec*1}}EwPNt$EG+?liXm%!hvTp z9H<+4$awR}K~qoKSN>*h}ET4b7+CXdA!*shybQK;`Wj(*O=xXOD*i zk1IG(!DR#xHl<1qUws@9`TzB8kBImGTL*rn|6Bb}K>hEQJs;`)yWZna|GR1TtKEOw z{aDxMyM{Y|spG$NJlg(+_TgP0Zu=Yj62%`2L(97r7ppJ`I}l0Lp+8Di7UN*l;4;Jr zGZ!m~3%aPHR7K5sI0&`el_3=Fp%E-S@KNlh5}lt=%Nb?D5F}Xd2r*JT6_8~=I0&_G z8OnqYCX@*ixNs>Y`pB!N69~|*BtT>=Z2co&UpNR*Se8QW80*ImGcCa(l!)giYMVaICFDzwL z39DgYN<1JdU~&*(>5_r~6>C9@imvp`LVzWyLzpCh#D(Rh$PVf2Xc!1EymV0&0xG!B zs~GHrz89zxX6hwj@0X)%(C!LM@}n#d2QspRAqRxF6}WUX*XNR3zf#X!hymEcMvP57 z9FRhUX%4_#*y4bROkB_MxCSjSSs;=B8nl#=CB(NDHs@fy1YXufzccYr zIXJLy39^KlYfuFjPL!IGu|$D61p{JGPzxnX=JGH=>JTOwAaP-LsqVf7ZAq3W@REuF z5iShk2wz70xVRZ`IaoT^E26-{k;|p(+Zvv9G12G4-$Dc?f_d-k?9A-3`O*3Fb9c{7 zltzk=%*@|6bAEc_w&Ky!=-kY7_%p@IPrY=$G&leF?9@o{^!)s}xsk(%UoMT!m1ZwY zjhD2^(dp6Id2Rl};S1Jb{3rVJaJ{)WeD8(Q^!$;D;gO5O;y;nc>6dOBJ~nfHcD!`= z%=CQemHFY3;YZJoO=)+Y3;%!kw&6R+=ci_-#os?XIq3$v56DTcy%JTiK=6#di0KYVuP%$d^coOa~w=&2HZlhMy;?<>t8zi`*+^mJ*q zc(eGI-!gm&`tDLZF?oxOU&FcIc5J@}I*mE#Ii}OEE5#lgUj!+L{-*Q+=X<3c~`4tV`s&S(^d-=`LI3|J(Es}*ai zfy)d)d!iR-@I-~>K;gGza~bquJdRLYSe8nJNk=4MK}#cWkyz(amhe=LD8_{jAF|_a zfFsK25{91|?#yBvh9Br2d0!BZBg*I!CUAL3|C{fKP{pwo!5G>_WphDREFb-@WvN7% z=77M3eIb|@r_1lK1Y=Xpfe04{i^;kd4d6gVmk{3?#CTvl6B>5t94Eho@^ApUgqf5q z#)Xb1GB+8*z|itx1qWhSP$nP`TXDpJ!DUDhW>PYV3u>GQ1mxC57783vQ6PpT1gNM9 ze*-9x(IpHiAb1K1OxyHwS^~SA(Irga!j*%pWx_&%cPS|lnF}=>^2L#Z0)=I%M3@W% z*z1Gh64W?N7xGcmsL8^Co7EhMaM`FW<*%2poY5u3w}y={Fdnof@t90+zTyc38C}9^ zTtbtL{3y%9ftwT@sF(|r;>cl%NeT}Kq!MA00}>b1ICTtIk@J5B4(wk(kl8g+IYxmC zu8f-THy{jTWC=rzf~Vp^+=DU)wZnsf0y6)9pnCt`6Jh@U8RY-RdVas>o#FidV_jds z1i&Xc{;}iX_RnGd|6^_6ZhIhl?3e$&FueS@!W9{4VnLUKP({Iu{|-=;U4}Ga`jG%2 zaSo=?{O}=5Kuu{G&H)V*8ErzdScMCtNaV3>23J&AKAJ5|RKbFfBQ@&rcp@oAnD9hp zSVDY6@QI3x!4nNHKc=RD___ox(=^DMs10yM8EHa%YN#y(B$jiCsWnT)ieMbWasxbJ z6A!Tg49Ex*hF_YXDOPg`1wirx3l9S_!h{K2HbQ7F?_~EY84#Jvf>0JUW^yo~uq>qr zlTiS22{=YWa{$U9t6s1~f%{ZZAjai7u95p#)6jB8m=G6Itj&S(bQsUDJ+eF#4+k>B zgb7@DlO<2kF+_pF^4-~sP;4$cfGz>it?^JmDiJ0qAYoxih+}#NE<;3IEEKp?L4hh< z4ze<8EN?&<$mkM=pBns!;lp_N)W}1TJQT?25?14a&;*2Fh=*)gCBifZ1TIf3+Col84Noi_c(rn_FH!?w*7tE6UqF)`bWrS<+MZMNDMUm7*dGD z!_tae+|sn-NUCr_Wskg>paE`4p-^a`g9XMDG8-tQkh`UL+!7QD(~o9VxG+0GUTDYS zmR`)dr7Bpu>A3lXW{48jFc+3!VCJ5#$;RTArc@k|pO?Ueb%_DB64?L_C{zk@sKSBR z8j?sX>!5}}9u6o}3afB=Q0JlEYgjlispLRpF03ZV>BT_m5+>t-JVp!0sEeTv;!TEy z0~2Zv2zvn+-ppL`YhD95pin6^APoSJScw5mM?Ig7E6Y$R%s93f7pei|T!@7OqY4hh zurSs{R?y|So=RcDBnKoeu{6ZAynN=Go>y@o#szNfgzkxqOd%>_P@Vt>uo45W+t}7g zbRax&AR|+lz~w>cgnH><;lMLW4n*d{k&^qGcsL-13DX<^F0nKOiK9ur(z3*XlWGn` zxI6=o+QiR`Jq{F>Ayb$h>cC@{sMKL4h6U|1>Xn0s0vVM;P#}h-<5`4yk7S|12?Yfz zurNpJ<J z)^yG*LR5vdpWQx4hKn$c~|d<7KT^a)f^D^0xnVYCO4!ufCExTF(Kn(gkk_T zwsc_69$j^hB^a-?DGs#?mu`@!0a$`Dv=cKfBZg%JCb?wD!GXbLh$m)xCnPQ`GevcY zoGNlqVEK}Y0u@-kkN&jWucJfDQb{pQ0l`yKgPwy!Uoyr*f#r)z3PiXda7q^WWubsV zI}siuf`y@Ma#s@%1)!a%pn$+-Xdae0k{@VUDDaA!0ue0C43R6D{83<83MnQj5Gp!| zg%~K!K*c8&n*S_7b?zlTG#+4d8$jPfT+FQ4dQx{J_J?AnMJJhXdCuIS}E( zzIZY>Sva7OOT@Pp!Gh#CxzV170}8psGA=AKg`7PE6N&MOg#&L_b3oWj;PL>AS~qV1 z2c&pnk^`X}02XzisHvNJE)QiZLkbSWxUiCnjEjW>3b{lhhGpocNo}#>;ebLev5X75 zOg$%X$Zyyz9N4GgfV7vug{LF(J8T0u0P)03!8MdAz(x#gY7#?qL|yaSDP}rjSd~vH2X=`CLxn-Pu#9!sP_0`4Mql z{V6OAttjLYt6sR@vJKz?WEVZb3J1In;4VdaQrtPWNu+*2Amf9h!I?97F!=~Km-^Yas<^QDR6 zY-xOEc4DqLIXiQCJu_0&b@=@e!>MzSF(`Nl`FjGIjuj!^cwpe+T4)SxN|X*ejpj72Ei*4q z7w4zWmT-j`DPrk&2t(J&FxppyR^x$z2W!E=MZKI7reFv+T$&cvz`j##JRK<>oG49> zoX%n%?6Y{T-V6<0z~=Rv(t> zMz@R%tPjkL!M)7PVv{S5~Kq_DIoHj8=KBkK+LTvHCz#VF1p;@}}C|QLH zi*sk^g@vNua~TZTC><+8QxTu)jEcX|Q-tzzmND_a_5BYOXU0BI8lRs7f8l_!^0vMM z4o#;?3m%ge1#$aVgofgQfoIh)bTs8fMftQ9qJMAF8ZjotSE)M3q=ciKDD_ALtKebrYc-wWQbaCWy#7EdWluA@N^L!-?o!Qo*St`FR_fv)-ds6 z24wwimK*8)iW_MaF7en&J;nyyNTqsW;zkMrAS=US6ZBePFCn$C$#5e@c)3r(ff$#L zUdUW36AHb=*j!?giQLi3!vTd}Vi}i-WpNk}Czmo=IB>U$1M(OJF2kg+8EOCrqnt{d~`p#h<4&15aK!nSIrhP7z358%HFh#I1ph;HR=iz`tFtLnF*Kiwu3%a=s z94M~5r$=;`EcCrxefyI361ZG)PbN15LBIbA5l>cX-cg?{|7n z_I#yB+r85L?e3?#zSQ-u&euBruH*6cKWsm^>r-w2Z`;vo#lQHk;lJfzNYx$2D(XVB zNUQ;RATuTsg4AI=tS3M**CS60@;Ic7 zpko4;Wnte~^Gl_LmFe^odjgi>k&l$eA4vtrGzG*dI#BL%AVo#J!mv=_jG6)wE(@cm z)UeV33S{&gai)6cKOp@lI*onmEDR3?GJ1{)TrM6lsP|=-+-xeH$|hi;kv*r@A*tY) z86lAEA5)I%$M$a)kR6$fo|Dkor)v4~5g9C#r z&~r>S0wi!5CV6avfdYdo6X`DA1S*|8H^dVJqMR^fu$I9Z;6fdNA+&!>ZcS*(Hu zP~;9B9u7$P#wrd(xWsw_$3h1wRnUZm1J7nSP{9S|f2?As@3ms*K-Y>CbDSEj&K~18 zR1Ebciox--Nc@Ice(O1)J0)8;U7zwWD1R-g_t&pT^~SkZ)j+UkHK9kK0&=u8etvcq zMSL7z^fWk2L8JT!0NmSFPRdfrMKw6cStq0=Rp9O^of-XLY2vLyQ~YuO8(w*;?nh=p z(k)S$Qz469V#+Tn+P$xwo0<*ZSRWpp#%t9!O(j}^#byta>V4--3kuG=ED1YK96Rr zQpPdK0f`Gbdl)n^$&L0LF?qF1#eo6e#1u zUIN{qmcH02Ftn1wz3)d--K2&nvUV8CRl)Jb_h+- zWu$m008K{)1x77kocb0ETH_&Z|GJ|pS~4#;O-NW5bd0J|oL#^d2YM$|EZ3ko_>$MUxC94s7| zQ*a-j$o&6Fx&Ke-|NXeXg#CXv@A*u)|L-rt{{MgKexd8DUBjK9==jHu zXWGAl`Tvh%{{PAN%|H8B3x(Cpun3O96}JRvSYT`xy0>|_qSc!e$54TVenFQ!j>m8e zFqa$;NxCA53xoF9UF77_$+&tz<%(il$jL0Ki{!tNu4Ysn!*31#(#D{@j%{AiSirU^ z&*F+!GpddWTpn~>s8uiySF~DGav(C7>zNL<3xJ0MQpYjP0f7q>?I3|g?y%$t$E!E0 zIUsOB01!$OFc>k?HGl&dRY!blPUvrKfV6zbU=l&{a3G`Vn7}1GE)^F82MVhE~f`yTGvb$wqz|iX36;U9z7WxdyPYyg3kSdO83J7yyqCMPXO1(I; zP+&++fe4q4ix4$xHh==qbj(n|4x@mWw1?IN^|r=CfsCXhC=kQ)P5MS_77FZBP#}hd zIxu;`Dh~yuh+~ohAujAC2u$5}a_O2_y-r1e3NDl-pa(|0W3W?TXcdx<$TLVwS zr)LZgC7Kns(|5?jfsCkQ0v9yi$-8~7o&z%f$Naxa|L=vKFZ3MP{fX}HbwAVfyIsZ3 zk9B;fbrZyAy&`TRK6~O zOQ+wc8sLXAl8(UWi%{%%8j5}B6r^U291JL|W+WXGxGYikCY~t^1p);HVsn`;U5|=~ z0uXV`JgG=rE~aE%{E@?TbpNWSqCkwx-U$orS2L21;io2o0H*9A)?wu{VZ54=bWGra zvn6k*Wubtrq(EdYG;xrd{&^@MMI4h+zz<_NrtEbypeq+MM1kQ|Q*|AUaS07aYH6tf zVIU*vh;Pjc!+-?^U8H2>Rui5u07=J;UyE_s;ASpi;IM)NF)WlZO=^n4!vUx`)-aa| zEnmaL{hb&!SvYV=#Q|wA;DTx{wy+a%HGl&dQOA%2!m&Yy3B!;EIfn9ZAS3FSz-6H? zfjSAp5(nO;ISG|D^v!-ydi6{~qi5Lizpw;r7p!-~W#! zUi}w_S5GRA!9bUfHDc(RY3b;~rY4IGa79mLxn-aY!xDQ5Ow)0KNV}}bPsLI%F~O}W zT(+3tB66O^6-nL1Dt#2ISOp6TOXPY9k1Kj28;;Akd=1mFSTI4oy|B2V$5kAVpO?Ue zTNSzZ*Z>X)6~)BToA6LURO}_dRszE#gJf_;=z$Tkia$M&=0F)2_7dP!^WcCGTC8a< z9q(khJd_QtLWVJ2$^-|5xm*oH>?XOXl7#|~sVNY_0ylTUBY{w5OrI%40AM>*Ch+p< zkUKwlC?Mn-(-eqtK`@BC)PW@o2>Hg^=E4o0EXl?b2BeH*(ql+-p)!GMGC~2-W3X`G zK@|sLT$nE=+p7U#AS3FCFaS+lZ~*#$;`yIUR2~jwL>&{j(8!cW6MJFx{_N9wmATMX zOwAQ}C?HiF(-aV=2$?-}rdj04FBS^ir=~!JOZPElPo!o8D3H-~L{b)nVF2=fctx_w zw{8v!46Z`cF&)~gaA8e3^>)h=1@6v9fhtrM7BuHmmyjZk2?~^P>3D0#*c`b>nS}y( zDkxBe%fSO6H9B!qAkqInGVq(o|0mJ^@9p_)*#G~v9&7hT_xHP>@A|VYy>qSOyB$xr zztMi%uBC1C|0~8Y4D^aXWLeiN2msi5sNd{gom0GxOy) zDk*_x>5hv(iN2G=EfrQ@Qru2sT(%8qHX<$-zogJi#F0kkvasACpU|w(Of2I1CV9ycsOuI!GRc;4w;=? z3Uvz6M56)=FYOljNt@$(I=Bka#Pm(3j0;5yyl9hkU|1+HrJ{f|mw;tr0|51g)c^`e z1;sQ4gkN(s6A1^DO^EK6hXSXR6o_zPK|8rmfh7zmG!yZuMX+q)Gl=Hmpg>_2nu(d3 zj>Kha*zHJj~itqZ1DYGO~#kT&8B)VktWn7Xt_OuRgEJ2Bf_NE*mPf zM3>P33P=sbGzA1t4ZN#DLWi7o^HAVfB?Tf}et^a>qVZTLAXO7?>XfEhdV!x{Qo5K|69@j|E;zs67Ts);rjSd-w-&)N>1x?L6i~<|mSMRXwqRHm`T3uP0_|!F2y+Qs zj!ze)Y5)bKcw&+Q&;kHR2O#x;t~Jg>fi?vNs&FAwq=qL33Jk3(h-dNdfu5ixkh)(REKX9uEgDC^%5TWndzPTxw$BfI=>@{O$~ML7W!R zo%pRWgn`QZ|J2^UME}3k|NDC1LFE5J|NqZ>-nskN@&5lD^#6;<|G$I$|I6(^x9eAt z|DQ;t{K+3I6xME5oI==H0~HtBwNV0~7MD3rVNEfGVZ^X3*CoHKGn~T0;2P8tGtXoa zm#*0k`hBQ(1P({Ec9Y5x#ju>fwexpGYf?Hf>4+dwfLc=k+hK_-c`qA_BU(G4q(B)L z^e^ZV7%UV}h$Vso5iG2PC%1iaP@u4;5KAoM@-;LI;X;}V2a0MA2zvpS1w|@yuE>5L z9a@vpiAfGX4FDiLfW&p4Y&;$g+^FC{j0@94WI-wx4k*MDjTn~U`uR*5uPMY5%eY(( z+nzA`nF9y*uic<}CX@COxUk8adUt661*CLhngW8Sj%FKp{U?_Xc_?tbk^&Jf-+%xh z@#4oq0f;4LMmiv#P&SvR`(%wVo-m+LO9TZ3E*r;a>ZVO?&}6v^yjN@BRV$|38oU|6hat|I_Wi6VCsC`%U!!ht}j! zM&cOEPz?Z@ACB$WmP@@e@EpUP*<+}}g~wuYLm7iBDy%^-Fg-sR;CdOuavK;A1xy76 zVpy23%4JX1nnEwpjA5Y&My}@bP(Y!VSjL6A1V)VAJfgtK*5@7shSsEb zV)7ysDoxlZOZbq`$*FPlkdgwzeE^q-8wYt1k|hc#ht*@21_HT`D@12X@=Kdt{K_x~M3 z{x9GEA4C4XANl`xJ03#*|Bmqe|NiPHf3)vDlQ{)j?1RLb4+xQ9KhTa?TDc~NFse=g zAQ4>vQf$4&0&nuC!f*;`mpGaBLpg|^}yFi*B7wG-1EKzPAw4m?M}ljl>JdtAwZ2$yFezU0Ay zj9Oy&twpdLY|5tQ7(5)vs3lf#VgIf!Mi;5(V&K63wWFB}X%#LEtz(Bh@e~^nj3J$v ze)uuPBbnIE;XyDMH&P-|)6l#fOT&{+F zmpaP8L~}7vV0i7}Ocsy*&Qfqa4#PptAwAxP9xAo&qkx@VFd0Eb^Htj(pFR*lOH zJi6X8i(|^@B_?3`E?vop$1!E}5-Yf{jTiImCiyv!g#+i*91x$Ez=Z;UPUU6;I3U#% zlN^BeM5zvCiU3ar`D`gzn^th33KzzVsr3LB4rKHa@vX(Mu>G7Y0Kmh6j9y{|7s?bq zq~gf!cq|-vQN;miFM-Pv6DP#@)Bp}ZJuz9Q2#qId>YfI%RV;?3)_8d0z?6~$5iX3Y zk!2lOIFJ!cOqk1s_7gRw<>5d^FtLKm#W5Pt^QC@k3>?_MHmNGrp+^&+7jQubhMdwi zfC5rIF&PHX*C6p-SHX$lCMS^#Mx!KJ!2o+$9Vk^&Jf15@o( zTntg5um-(E1qC8l*jJkm1u}ApAq501@ji}zU@|qYo&qxeuhRefSLpwL6Z-$3>HTN) z|NjN_|3&{lS^w`!W(WhnS?E65Bc_d&jJWiXFUc%^=t^b?qk;?Dcrjo}Z+g4>Ls%HT zvRCDYq`d?#+qI1R+qkYs@x-Jbf-(;d6}x5))aA)nW)?qmrC;HPVqEA4@bY*yyONPh z#J3j1@?fxB9MP4GTw(Rjqa^8Z( z8w&$6a*6oTVpz!V$nPKwQ9$PZkGEY{OaJe{?oW1qulw1qKk54U&X09`yW^?$FSXyW z>zCX9uI=&a{{O^ZFBGo4OK}F!3ld&jGq91=cd4ll#~ED7%wXUQVpz8Cke?J8&H(1h zh$U8VVH2-`c6RbMDh@w%<)F$BNqY%g7|158CGz{BE09jigcb<%;9J82TvVDMQ$S2H zSp3kHo0J@gaG?#X2ra1tjn!biri4Z@_ zCl1`8k&kxLA}wFnjpndBD-9u8#W5-Yeo9HVYK!?Ej|Dnlyj|Qamxu0YOyp^lU*wlzQ*x zxeM)6av;JL4x11i$koSzO8#H1|M!Q`|Nj*9|6l0&LeGKSpFsZqOxNe2|Nk-Q|3B6K z+tC02<+i`Cm;Vo4krNq-GcZCe02`}iG5KJSg*AE3;O^`hRN*oVdJ*R8&tPHbN=7Tu zF2=BItgImOipLLSv=S@0uzc5Yu~#pLzQy4yzo_s-WqS!+j;@pME)DQQQaUloflv#; z#%fs;W6)7WBbFFa0JyMV1@{&R>r<=wEF5sv9Efn~Sd6^`uA@>qF~I>H zD|BEyUo$WP>gE&%>?{YWaEX3Y>c_^y0f;50IZy=)I|<1X**qM`s3jsLlgH?3So#XJ zIBHhG!U03Ufht^3TOn_kY(N~4+KFin2%@?gVijhg^N9n8l^lq0IYK_6=_wh~fs9;Y z_^m~-&|*k_(cA1?N)AN0pz4@U-&{s6G5ppdSP&d0 zD@XHiAS0Jp!R2WfDfa07d@LMzK+OSRFM-R^19Es`j{}7(5Kl~xisK;(#X0N`FMKj*_2GS;9a@EfJqu3=6#_IXzQCEfF=t0j$sC;TmD+>kg zRZ$?u1>q91N;x+LWd8rO?EfDr>;HWN^Z%bk{y&cSe|z_4xc~2~T~_Bt$M-v)YyZ=B zeb-vsciWy$^!#UkfUY0KB!+=@5l6_&V2I14PXVx;%gd^Bso=7GLwBf=kNaFu1eE%T z$?yzC02mMZX0Uk=7ir?%hQl`vUOBIL4~=mF7WK--;+hnKiTKnaYr&I~b4Q-&tPo5r zOcq1M282%u0)EZa(K<3$S*c>y2`0nVxjAk8IkAvlp+ z6BRH^`NK9tun< zC=la<Z}eNNc_Kic!P9uxEb zvHssbc03LJ|J$(t?;qMuWK;gi&nyhBE2c28?hvsU8bJ>9KIqzzERJYhF@;gag^j_s zg(()QgS`4vSQuXaDU~CV_7b=Z=uuN~u{)xnb*Y}1494hT!J#@>Xb%xrvYtJQCtBaD z@I)~#j8Bkj^BkUNU7?p~#IP)rKJ~`Ifx&g?C1&oU5|=G@vLmm^Ar`OqsVES`f-)!B zaW{YhQamwD0pZsyY#c}JFdq%f^ry*0Ndc$P6Y*GT*7@& zYpo0vD6B&*F>`ybz{1^~OiYd-P*_)pB^nZzj-Bi#sF_DqVttp20x>Qf-Dy;6HXsT} z>BKYzz*Fp|v7w(!AB1MP2wizqNr4EL^%i8L87MGxMIn}mZ!Lm_fo$@y8Vd)mD8v%W zxO~laT~L7ft#Kp+S3a!ffUuXq<=~D%t(Nd};0mM@(~~;o*If@Fb!ZOdQEdwwgW-|kjx_Ub=f`dcO3^JpSiL&yG!L;)k;{ zXU>#n=QR0`jeiEe=Fai?shQ~`6ZqS)aNI79;x;4x;*jl*n}vOa!U zj6}yI)`?Wz$t7yS2QkrFU&Kec)}`#$?Y}aRvWO?dz-^RUP@m3Nq~0eHe*Sl!o6G^5%--BlHSRlW19fqW=unxV%Ol>ZP1?gyNp3RVxEfm%ja)}~0!YTS13Ue6lqvGPIORT>w z4E+mzFQ+&raiRa;C2w`(uS={;@x(L*P&^SY&yIlt0JW&YLxF;l0ue4~yywt2D)Rq5 zZQpF$`)>zM_utxA=>40X|Go3Rj-b6CKiPVJTn^UX)hnt}3r8-Ok{_vUjhNV$iTAn6 zi2uE_voo{D=11qx&)tnIXr%ba%=~>b=cgxbLlQMQH!~gnOtJD)FP$&V%|AXnHBvl1 zKYwm+D&kS{?I zq8YY>`mNqdw!<@~DLqR1855tKp=&NyrlH=_unQ5*qg?yDcXCd2?R0kX>9kZdzTCAg z^}O%+NMG`zQ+7)RUVai?mD|i%k50{%YFlDQ<{Emf>oVTKun-gy1L$UMLTod=09p{O z6x{F#a=4E1bTrci5RWLQ`whKRK|&3Ui!Ek6t*-H0XzCemGmMAl1MGfoDdXAehote| zo4(H5pe^P~0wI0bj1oahT}Q##+iHDuP>;4W*T&dOG$+(p#LW5R8u>sFcnAL;Aw{f|A1yH9lgZ0G;c@o(EtBLfEsl z9tCj0^Xql)8N zZ-p0WBsA1`7Q{%sR!c3My2iuqIS)%}n?PH*2iI#U+J^am+ka}?`|k!`>>u9qfA_BU z9NXRB^_9*~c0AfXi2tD_|3F*8L%pIOc_A|f;20yikby9<-?kZFL@T}?JXniPq3y86 zPH1~J!+5RudhkG9<6$2!bS;{3?{CT1gCo*-*)j*dJQqom;aN?2dTFgP$35%!OS?UO zc_#C0EEd|KD(PCaGIeZwi07S-&&(7b9-aOm2B5-er#bOICFhX1pOdU7V~74KcYJNgb47PQf# zi)P81muZIYFf<}Myn_}u#{Z47b=T&?T zjp*3X;?f2f@yyK3i|5ak?>h6ROY;{d#_r&Hk8M7?<@>+Ww)d+8pQ!ZzpX?s){OgYY zrv1z=rzO+>MuWa=tv@L*irGX3?K)y{h+#$|lbLUj6jR_EeG z78bwNsv)p4)-a5gd&ho%9pgcp1}$)Qw0EPSU!HhnX|Z0rVEwVW#`9d)Gosyo4KeL)*9Qf z*B_R~%idCq5!CL{L4h8CW{mB$)GbBk|8~^>zpwXy?OEIXboYVIzv=jIk^kF`PNiG% zpMTk2pQ!b%S>ak*136Mta7FR-xS*5giyNMt7Q0JZZ%d_GfB)JJ=5E!=Po`j5ynB z-tOtzgvFZ});9XS+YGz4q_;a+*LWV1S0j=tZD`S{C0}=*s%tz9#~MLXX6;(DwIDH5i>kKR zP-EK$?sZKG5-lgyf%3_89pl-WgUuFxw1B0dLBhfVNMN^Eas6yv;~AC@nXjhYiD5mj zwO%Id^)t2IondJx0AOQlGmO_-?#^F-u~r@icZZo+2p2bHo~0$P#2=_bSX1)?$Hjw@)DwfGu7 ziusty58S5kwH0S>C+ix|#nVo6#ztGv*#+yRy2i6@^c4rqnD%ZxcUS5E|H{Be`yc2V zEWiKX*!f>N{=4?G*ZTjJwFJb757&+nj<1=}I5pg6yzI1EjJQ~fsrHCtYEbG3uw17Z zce+-L5g)2+Jm|3nmT^s&LAlz}TK{0Ji5+}-*fWB~mj1Qwu=GaIVEvUk-<&X;?n2R` z350FE(29E9%XN)s;tkt%no{g+MQ?YZuJNz{0Dbw*NW)t4Mtr`G@pR4i@jPKR!`-zY zZSD1WX}oMFF+v55he>p7YiokfYqiVWT9? zKDrikcmDcIwae_{H5UG^DUY$O=j}xPzpw4z#qa-O|KG{(8@oQ(`JX!<==kl98`{tB z`agHwhreY<{IM{&F|b=G`^~&urRHMlBbGB_VowI7-J_1mdrD*HPaQ3tow+bIeX2Nf zetu$fzBEysEsf92PRtc2XJ^h9A>dFvc&s#kusAQ)u4|fharoHG`PuQ35R59lGCw>r zeE;b5smUqqZant>hoH}-_v_ZIpT_5v;)ie*;0 zRJ?6mcb+;mTRJ7q`0knWIK0`bMLD$5t2|U4pPHdTgvW;lne@op26_MJ-07>uRoLiJ z9%_UOk~?HvEF9Qf*IcIWMB)zHHWv>Ex@($CM{Kag_5|WFGH_u3MpsWLQJUs}I7WdB zO}gb9`nJu*O@Yh)MrWWmm@IdL(w(~R`rY{7P&jgDGZI%h=312!z@M@QVycAZvy z{oiP>YdmqKLpE{kK3tkVej!t}+t^jtc$N*H*Obj2t#={5Y;Uwl<7LzTkhXZEaGjwjVBg%>P;E_ zZ#{P>^8dHB*=^UI-g|5RKlJ_fo)7oFx93Vv`|b~P|IgjGcP)4RYv*LgH#_|H*LMBO zuJN}2fWNg3+3v97rf-gjn`;0WOV{%ZYF5dU80}Zw^s8{;GoU7HEQwLEuDS4T8|`k} z_D!EBG5YzM=0dsF2~6w)X?|ifym6zdI3SM^xGW#*JoCg0Ab)~l!q$9fTMXP{F*^6tnhH)r+43{O5|Nm^;18vux-22AfTL+f z-yiiI-1F()ANC&a`GcODcK=5A54s=g`h3^^&R^^J$Bu{FKi7Wau8+2T8^0*=$HMT& zyE6gXDeBnV<&4-+iNd;Le<$Q^x2N+qfDF&U)&bJ2^q)8L7?4hmq%UC!ScYFw*xEKO zmOE>Z{%RAj^tbR%&vR$>YnjV}IJ9j;4WD{9WVy3?Dhh;OSBT5h{b=5I+sDX#XT`VX zDk%V-qFG9}Tr}zt^AHA41XzypOe0vRN14=e6bl7xB?Tf_P=ksZ;J1CGJQT2Mn#hT{N+~1t1-4v=Y0tsJS=~2lVuz zCUBV+UV?~+%EE!ebItXsldV1S z^Afmp@*y^W0kG@MW)o^KMMoiRo7gm?MBKw+y2sc z7;sBXbD3C}i}@llE(Qh+Z`_=T0-+-l$0%??=qVE0*|xnJz=4B`Lp8%Ffa;TDL2y5x zcg$Z<9BPaU8@PSy?UscDH`O(l0iRKxP}ugF@^IjtHO-}C*@>$ots@3a77iRxaX=oU zz=d^PG4-!o5WKBhd>2$$HQmdoYzXkBxmb(s9* z&EuBdU&~xrU}a#DJ^T{!7+E;*n3@AP#t@h7`%wja+itu89C%c5sG;w~G8a7k8Ai0w ze%l~LmIPg$Sb3sZQ%@vggzHJ{P3kM!l zaX=oUz-2&6a|gtM2b6~@i0Wzvu3Pk3Hy#cgQ66f9ORO8r<$8L5U2_@Ou1tl+!-4nJ zG?xQ8d0aUnaq8xB;6616#4!q7c7S$CqAP1a9Jp6;s9__NZEI)*)FHJ@1j)mJdlZKn zAli3p2_0(U4WAWjjl<1XIE zJ!)a|>M2mk|4$?T5Ago~ll~I&e;4onKk6Mt{%`L7B=Y}fk^gI*AM5xo^8YuG|Nlzc zx9aBqLmTH5hv1Ir_!APUxFcf|XfB5^qc{YK%g`_@i0x>Mh(8;IRfa~aK<(a~XOW98$^g%Qp4+TysDG=fEJcnE^ zVWGfeU31}$F{hUIQcZJVJDOvdP+KA%BMS#6)Ep4U2wY&MPFD7400+huhl;f~0O<;O zbRBBTMC0*rU`%nSF)pYD>baEWM(dhOcks?gG#5u0C~Uk?(_9WV1VSSqnsRS$S>kyW z2jnpdT&CraU2Fq5@SO5c1yOCy6zg%Kp^t4FkB0-#Di1Zng$h_c@>tK*H5a@s*=6u> z;OUy?vNSYnBDKyT4(#7JnUMxUW^Id3YDeHg$&l(Y8bE=k6lW@*c#-1i;?X^ytI(5* zGmUT|2;kODH6F`V=tLcJ;d#b#$=$6C6p;DM`)=9uTJJyij`#dU zx&Qz9uCI0tcYXr>|If64CG7wIhqfmZPyVSNEEG2PD2~Aw$s!gXiDg>>Sq+Ti7&bGS zZeUgnOGn(JzO6GH1I(4tbgSSpG|O|KIzvqsIc}tzyH(Lx+DqU<4@)FDzwJQB?}|31 z!dulWerP;Yn+#op;S8Jn^1~91H@lP^h;Tu~%B5DpSUAwBa7Df-&V}Z(A!CxuL)m6W zEpzFCW?_B^$|A&@G7AUV)f^DTOo7W4J*h-o>>Ma;?oteOcwuqQ2S`KDW4sK0txa*J zF)Z8?$c0S~3T(Wppg;u{>V3?AB=u;*-GL|SXr(!^i3lr=f^@7#_2FxlM zAZRL{p2g;B>ZiuRfWpR0%0rECK}o}*GV|&wAoKr|LjUiLz1qOaKwJOmzAyLPx@W2P zC%vVfKkB)8_ousm)IHku#jbaDezN2H9nZD@Uig_^BI#M2(Pl3TxmjM0KfrVv%R;_i^M~L z8x<6&f`vCcYJg#(05lboTQu;g#jxJR zAS0?+!R2XqD@Fx?Ix)c#2HvjbfUp;E*{GM0qd9vR7}}H)iwO?sLHHQr0;Fa83Y5(yaAAl& zQf1qAeW?Ky_^E7c2S~wF6ea=}{o>SE#X*6=&Fd6}i5QndFE%kSU}!U=7KazD7?tJI zAF(+oux}IF*B(r4U#sA<@T!ZXj+mk_5Mcjizp7nAT1%jEF>6nR)qw9`ZemM@fcW7V z4ObR5{b%_8W&Z!YYW=@6eSh6|YR`Y%6ZHOZ??}&YqXXbl_qQ+s@Vl4*_)NzSJC3%0 zvHifVPquw8mGHOB50PpsMnsT0TAsKwU<1A9k=uS4&H|5RiV=|*mxqoCvK|SGGkSN{ zbyvZH9Dz>F7CD?zVG~l0NEfS?8{$e@IYtM>&nF&_DB^Jim+$$W6)mpLFCM>bQz|>o zT&(QTtTG-H06aa>pL5sf_=~4zu~>1Ucy4xPyfimgJa|v(%;*P86L8_j#!r_f&YuxG z7w6_jXR(8^?jp_7?1j>-rugMprFs3Ply;nZRSitY$5jUz6|keF@$<8@So`@_p(+0X z0N1tYg`eEis2ZH^xrr796}S^KvoDrriw8<$u3Z{49g4~1uLY3dO}Fkx=3*KrT6r6O zWGWVvA*oeCQ4=nXdVYa?a zDdt#uNeu|~xP(+tZ9peR=f_V^%$%a*iGC&EymQkEPw~=1uL=(uovq4_`<{egj}&njWsc>9dx5|2zz&di<-*W(uPN8}ia=Vs2F5qo&2 z#AenDqi05h=q~;=oH`qKV^D&~;fDY;9h*YD@xZ{tHPKXt_|j-jV+-)i%hSdAsk0?) z1Rg13@-l>>Lju0$;$Jn4_D!MHcwpecS}+VRdOuIW5W%lBEv)g<`O^8)+(_}@L}_yL z{F(WKR1_CBg)-xT0jmZGv@l2Nq$v<(H#9DG<-!ise=#mALVNMRz}Z^=X2iMjb9mLi z`SCgN+ZJn=C-Fhdyexh+b51N%#zy9u*<$39it@Ba-U6&c^;t9o`8n_x{`bt8Hwo}EBuEP$lNJSW`!|J% z;(>u@l`v2QLk?7~0aU>Vtq}ctlh%lFZEJIP8qd(C6i-a#Wa6TR*BR`#HFfMOq`qhK z7%>NN@ zu69lL@a9c5u4u5Ag$HmXnPe$b?z)7?|M#^0o3_0_*z6+v&9bXxAU$ zC!6rc{5yF_-tLyQaO$nwe2-@OR|9$dmnM|-V3Ga`6CmL2@c)Nz8@_W~#4z#q54+BoUBZLNA$u6al%+4*?~=x= z-fUip7MAAO7_qU+mE49Jk73_hQ={yibqR}g@L0=GPTv}8H{Y`CmWmV~FKqr|cnQA! zGq)sDPu%V-s73fFGbh@Aj-k*ue!6(HG>3A?Nb%xq_!pNh4$HrY?n>h3b^LVc;h76l zrF+J-hi4{AXXfx<_@VqK$bZ0X#mYVH+TVTpnoX{KC*`b#oejun()H7FQZrl9?wvk0 zHC?Kvr~H{p8Wbi@6L@jLgNS|zdlyQFZ1hAO8XKQ19Wu=E38Q3B;7Vy#enqXsNwU8x zagsj~dWPc70@5wRmo9g2zBhDBcYI_(<(72J$zaZ?s%9YnDWduWpEMWxsN<#Cv+zst z58#`|&Wui!YMUa?@8mx(hFST2HQ5p(|Np7B|EX>7R|Y=W|7c&K_kZj8?Cw+DhdaO9 z`B2C2biAYeS9krxt|RyxcFZ3rJSzkq3}`odqNiHNj34s&s-xRZb&RFlb3#?_iE%j? zJ)u?;xywB;9u_lX8q&=X9jy;O7GDJpdB}jL;`z9u;u*t2i*P=j4~k6;_|zh6xwa8i z2)6x_&(ry!*u+rAg$5Rgs@vp_3>FF;RZ~FNOElJ?d6~S8h?@eaIKIDD4rz>Fxq#?> zaHAD<4ZY4|GX=E2TB>+qZ$4Hhhs5eUT<9Tb-h>3awQ@*%^U=C?^TnG^Q$D&@v)dze z?S|PigsgH{Z75k=%WnSW!_scmJK`&~9vihDsHsL$#|^a`Tz-pHxBbnB>e|ln0t?eY zP4IE8SfG7S+V05ZQYN#4G$KYG(U{hZ7payk&^}Pd*}-_OE0$R`;lpb+XLqD7VNsop z8x0%l>{_irEBpVCi}`<{|G(J(Z&e#@?pwEbP%@meJT^w%pS7z{_GO%}HQ8IFNnJj4v0Cv8$lFqCm&v7V0Q zC}af}mbB@dDs7VX61cFIfV@>hx<{7s z=HY;1TS6I^i^WBOfj^1yiG>4`Y7Pi{30x>lk;{z@hy!wWLNX3OUl|~saO;y5^?h&K z-|}!^LcxI;7t)TXw_)43SU8~AmSDuNjKC)A6Yy|Au`QvD3ybv}NUf43*;zO+s^WmO z7jW4DcK%W0W&=1NcPFGdAc%^!akd4qNvaee4+oxCav;KGqD7mEi-iM|2gdc`}?~4{|a0EibFv9?}=rHCgufwvN#*ZA#5o` z7>pQ};XyB``G>Gj*itM@DC5FrJw!c(Jt8g+N3_+eazxTz0vA$6@`OFVBifRy6OxX| z3#&~iOa$N+d0PsLBih=n`I~uhT%)o)dmSS0g5yOIHTrPqpTZ&}~Wmv9;Ax3EIQE_olVDnWK1*EwIE=*jI z>-qd)U{kJ6NK-)Y6zl9AbXbrz zvV<}&8^;(<<>e3tHb121fUp;Ep@?HgQ>xqcunpjVT%C~Q0CwmCqy>-`WICv^oreRj zC^!(~!oDH0A`%M+6w4Cu9vGPmuMPRY@U$OIJ$p4>e|83;|zx<~8KO`B_ZRRGFcDxY>YvV9> znwYNG4zXCyVC$yr8C1b?O>D7m`WY+?Z7DV-RKY^Uid>6l@k3jRO$lXO*sG_b5=oW^ z=D3e;4J-Um1s7Jy;{Hxe75V+pmfV|=^h3~mMhPsy5*O2l`H0^d4+n}_4j3^m!^QLf z5!coGA#ebj5;9NgF)SF%q+XMGIG|dUAaVJaUlnV`sJK`-@D2qB%Eu^hA*mo=^%}qd zxi}%s0fYe?`|MGcpyxh39JoQrfe4oRwWoQEXReKHxU*O2NbIk%D8OJgz}j|K1LP}6jU6L_7b>o(MagPZs)4q z01n8_326=pqGF*P9vq-_N<35!4h(MX%ZmTwP$OJ!J}Y3h6sr=dP{CH@HZUFvU{yk< zEFrCh&3Xoghsh6GEEL$Qrhqs_flE99Qg5^kpa3=}WbU`9NdTmH5w{#{HEBKtWd8q< z(EtC+-rEM2k^i6Q`{TY__AK`POYald|93Fl|97nG_q%TD{EdzubUfDndF=oDHSGU; zDBb_RFuWzjUKaXZuA2QZ(ddJZ#Ka;7tgs{J77aLw_hwJRM1u%GqBh~92|%Z2j~vdZ zuqC$=B;@R?aG_{I#>EnlPnYKZ0{BHmUMwA?Y%XF~P9&=_Mxx?X*ZX}CSa z!Akp3gpqirJPeQ<3X*3U!$P`9o&{rIz|fYZa2PQx#3r(qF;5f_n+Z}<*`~zh;uO)J zL%u6BP+(g-g`ViCp=E*FdS zs4=qv3=n$}(hPtyB^ZFkai)Q7KDoRVZ;3?-=|hci=`Ot=n1KRATZ(-Ncy}wC3$Jc) zYeZ&paA0r?`w}t^L*hc(iIyR9b%})n2UQe^VVQXGr?&HPQ$XbZKhySr?EfDb_)X0J zi~fIa&u4qbu=(%R?!WDRtm_M1!<`@Q`0I{`+dtQSz&Jmh24s|ybW zjw&c1&4nH8Xo;$*^=~_^W}v|E*84LavT}@KH$40{*>iJyNO0h>^d%t#DTj#rz{5%kh*QK0c7!I6{IAgz3Zu1iS5_(oG+U;c>qAr=4#C*ISskVsXCjt7k2|&_XVg z7^--j?|o_KTd@{o?R3xA$qkz<&iCGo^G)D_)`YhM?%?+*4^>166e$A8ZjmQ-I4Drq zx?6du5iY#dL|crueW_&Oz+H9C1#$RjE$g;n@o?bIn&uL3&V(n2Ad;o|;76K@(CBcJ$QL(9qgi zf|>T#sk(MUVakF?V-v0+`YKoTz3Gl++R?~ZL%%l+U-))wtsnEZN?DcG zit#+n7b#dYqT5j8`8tLiT1s|5*qW&G;dvSwtAa`oc0+Avpb5!tt)+qX)_5In=V=bw zDX|IhnztLBo-WPCOOouZu{w6ct_KL}Rho+%`q8x-Sx4)T)zMsxmtYHh6TUZ8k6hns zF;DkGE#qMyG}d`rXrGI^ni~4iwPdwK>i;F*AJ7ehCpef6ef9zQO^GK}lmdXs=b9Lo z>!6H7%zao=MXCQ+%Uq5Ttco+Qm>BB}9l&CKD&a(L_MOt~b13nT30v2N~K zH7bTu|1W*0C`*WEXalzwpIX!5;eZqXOmiT@rQ;o``5X}W|4`f4+V*~R@9@AU`XA~0 zTwig|$9o^@xvu-Kx^L@R?)*vTWXCr;Zf^g~t{?3h!{4}L|G>d#6m9TzhQkL&prIL7 z1P-E;;W_w>qD?g}*T;q&YEhQO`F$u|CriNcund~Y6P`Mm)UZkNL>?n5Ixbp=$+6<< z>tvX1c}3;?VqD0_$u08@aDEv@8yspl+kypr4*sAI;P7xDqiB=B1s#d#`Ec7sSr!hQ zS8yOUmj!Jus!!(OfYh)_azNs8H3#EtHu+-0!htyz2Vz`kON<^ew|$J<9Kd7sY>f;; ztho@=EvTGXxGiN#R*tgd_;xC61Xzkg{o0m z0k(CV59K$R>tO7qW%ZeQ9r^3 z6)>0DY|9???X4;K<-NCR@ucKL_!Nww??U~u2}ReIDpps`|GxqKzon}A{~wp<|3B0H zqwa0a|G)lr)t3TMS?H1I8fIxA<6Ula%k6%+F!XvxVFup`R4mcT7-;C_4a|UAU1Q0S zUe74ZByjlwDn!Kk1xKiPy`adEVsl|7m6c15^t#lPN#;lrm#;zl3897>0y(_p>-$t3 zh;fM>lT>?gdrNR2BQXr4>)LM*aSkR4lI zilAglmiYMg1-2a9vTV^3wUCmi)e;C4NJt=xDgdNxg;7J3*opUe$ub!eAPJDrEdO-J z&f?gPmpHa#Cu4VdX8MMSqgzAVA@4ZVpTemaStTcpGj4 zpMFje17d4gx=AieV4=XL<>Z$%1tcyVNmtLsy_0Az4hnqwjEVv=E(g8S)Ef#n1?2tz zp{W1=!tj3{J~s5HL;kL{!G9W@9{A${yZ^uI`^Ub=d;h3c@A>uaA9O$3_0_I@ouBIX zUdKZXO960>fx1l2iz5->PujZXp%aNbD}rND&hA$&N)49pBkZ+%QE)wj)=XNL1P%cG zKEN4ho)~3B79HntOgXWc6fR7$B#YoMgy!+HH#anw;d|tR42NSHI}3Rk1qH-1`Wi%U z(O%XDzjXEuY6?WKY$(TF0U3&%)(o~9^ip9v)Vo7+9RCoF$3p>V&7`GyQn=8sO_mH| zp}<}R1!8j{6+q59aZsRe7K32wn9J2XDD%*ZpIE}c^(qcXdkI_~%EhQhEbiEhFp!%I z6Ye!ZR0kkU%#NoXYK!giPO>(NK1surDg~49K>`55U5`9l5Is)1f2Xb>^Qn(NY$g`1H zIPe+;2V!$Mf!n4ug`5PF=77XyYN#7?AjCynMg|V-K6|Z7gsX-Nq9)cAkfp#_m|U7p zzN#7;9=44(T?TSfVL}E7_aR`R6_&i!SQzj#N(Mx*ObBpOpLcnpfSd!9Wq`mX-o`!M zBTK1modNRxf28B8@F7L{(f)R=ViYh__d?&kYo>h=~GO1Ol;?lK1w^3eBCH&S`VP)d% z?TT2Oz=a_}9`&f#f>@lBmvM_mC?kiFc4*%=q4_~{;ymZkoV-j57p9Vu$4;<#qT3W4 zh|PtIB00G5a6k&mq&XmQ`B+AyUC+k1syI-?1*u7Bh!VF~3pkLImkIY8+&HwneBZ+R zEEOaV2XgWXI;e=Ha3@Gk;PYeD1aF-x$LxrWooGCa18PsSQZM{ zY6^%|6u3}v-~LC+!dZ-j$)zQ5n*~Ti^D%kCqnmNa!TtYl8{hv6XJ_)vGEn;fa+#Wr3Ko|f^jKD5I=>1rEbI*I4&oJqVHH*iXOGr3 zm!av<%nrys2`r9iO5upA_7b?D+}ifm9~ke6ydwfgoEdao(@htWAH+4~aYRy#Cw0C` zz;aA8>PKq&D9=Ixsl}7hM@hg!;~@El!9xKl#*;G_T4w_dwWydbL(SW=P~cHD1rSm~ zTu7FX=rN7B~Uk$=dKxJaP7rnghaK z0vG0TlEY>TIB>6m1EFvnq!Rb3y8R_VPl9gc6Ff{`c8Ib^J%bo0uVi96o==>)q zBDcN>FqcBQ(1>9fsCK5FlX(uL3hBZsE<-bP=oyjKZ&)1BdsU7|+DqVaPI~e8N77je4;6Q{6BX4}2+{(+s0fls-5yQgsKe+;ihXV@fLWv6_ zFm;H9Ady2{Mg|V-KD(@_Tuk7?1S+bBZ2<+Oj$xJpA~WY}cqI<#MY25S(M2T%B3!6N zC3lUpP@odRs%I_>2BWSi4+WmCYc5Yi4j2tXR8Pi0fr+yxRbc?K9N1n0my13os=Zpk z0qEN0E*Ve)07w@g4Fm80ME}9V0SMb=-#$Zy%n%o3kZiKQW#NEA*)9PK`nBY~FAffj zot;-?GUYNl8v4Z1ia=aN779G2qCgE6T8tsdO2pLy3OuQ#fZ(aE;k0Js{!awSLxDLZ z1tMIQh3HPi#X^DO4b5emZky86$LgBP!kez=(+3fwP*N;v z{2-12PUHqn1`f#k|BpMadU*6Jqc@Ly3jO~JLw_|ix9hvR-Z=Q>!8Z+jW?*msbA8|I zd!qMqy=KpEbpN#bfvzuh?d|+n$B*mZ|F8W2vNFD^XcNKJ)^6xX8$%)&i7LLu% zRZ807Qsq>sqACA^i8CwLtXB0MpH+kNL~&lif+}!tFU?QAr!@0op(#ENV7;qXhg6uG zssqf{Q^`6Nup{NlQy8_j$Mj}BoM!`y!Q^KFWcTXJR4IUX{cKxL7QU!}#H(@dopVbi z?Y3u5&Q+$C=E@5PrxvD;HM^8`J`9jUt5VUi^t9SqNXMtr-YSrCryQADnm#^LK1Q)s z`jdb&yegF(k1f`LV_C_gLVYy1m$1Q)mZp~IaB3d~p6gaeLPv3CWl#kODyG;T$+NKv zQT%)NNLqr9@;j%1tN*tE=dRUZZ2CPTkDO4#M9)jDi2cCAY`JnG+(SkDh@3+4WO;rb zz>0J51eH@$^OHqgM}Zd9-5WTG7?dD!=rMq%dsS#R?io2)7Y$z3rEkchIljC!Q$D>= zT$(#kDlach7E#6)!qB1HT-R5rVRWrRsu3{ms0YLHqgb7RA#S9l1!0Y+mrKi~#mVB{ znbPdk^8C_XDvDF9LYZ;Th*b{+@*q_|nE_FCLep^Q!Vc6gjH8OsUfeTsqV89&iM1xa z^8JhA+g>_eD$Zg21AP~$1ALOn5C!;TY>c%!j3!*bg+FLAXCW_ra)_Ea0e zav)}(Jo_9fohY9Qi3IO9g>zT2QkpJTX27UQ`9w&zy$qLt!m2_pF<~uSny6PMj?`RX zRUwyHg=J}msY6|Yng&L+*;`ziIyzr!YG37!P1x%bXP;Bw0mLc-7s@zXa@vdg4j}IT z!<~M|=vPMGKm4wtvB7^c@EiS)_3iHYi|+riYYG41r5{QQJnyewC+AJPGc|8Q+@8?X z5oqXefI?X{&a`yWiD%fRz4aNt_Kamsnf}Z^2Lc)U?4!QE4=(_veX|e&G9iR&&KT~* z%@c2(7NPpCsS_pKisj{dYIDyEy82^r@8ujzMy}Cy=tD|Z=L&Ka} zG3-RfftK2iVOGbs+HInt-NYM&8$BkyWVai{_PlZ8%=5wOZfUmzDz4%J;Nr?2Wjb1F zHw+X+|LTq+tG`-o;OL;_YTKS}SL1$5jfWCjd#Bm%bq#IjpqA5!G}c;bJ182uJImSm ztFIjtNAndWX`$;Z-gT-E=PflIifwT_+fkeiR$tS=;pv)qsxzX|AT2c>T2?&W+EK={ zS6?lSm!2e6J)OXKt}aBPUpk$n2RI_iUfX!nK^g~&rQ2XP6Qiq*oyAyx^;Hccg$-$K zB=WYwcsuVp5v;zl-p2F95DXhd-Bwf&+){66qHfUIQAZSc|9_*n|9^1!uA!@|_y6mA z{-*mgUC(sBQF-}&={JQ1;PCW%`!3Y!KqWO=sjFGlmhL-CD7GPif7_|j!qS162_((M zzlD(7nVWO38sV+|ttaO+{I7PS7k_?Y8}G8g>i)*Y^Gw~18r(MxvA9Etta zn;P6+^!=?!wv)k&~pm@pCm+ribHn0LCdq3vATiL3it8XtCE-YHnU zLE284cM33vU6fyMhp*d_iKo2{jc41YjwJ4Oc)XpMczV4wp6XO5o)n=1W=9QREoJS_ zI-LZo*EimD2Go4FWz+4v#FM!Hk97QI$LLo_J~Vvy&?^T2eBf;VY~TK#A9a7O>*qV) zivQHEA1f29x2OszJX8$I8hvQbxyfqHX3Ai=3n-8Uc$0GX0j4g-aN~OEqZnWtT;9&h zKEZfztYbVh?-+(=J19(xrkk|Xh;WgDE`&N7?5>NVJI7&z#mhU=v_ z#Zzy~Bv67?R~a9|Dm!d9WB^P!xoy~QNU@_Sa7U%s{Z&UAPnAJ|@f;f?r=lsBEe#O9 zZtSq?6MNNeNLV~hK*ef1Qg=Jc(FLnkL&Bnj3t}PLVK)@GK=*k^5!PNc8*DmD!>Ak= z124D1+wH7P=dT*dgRqPe7773ij7;AKvzb1!TkcNUbK?Ggb;s8`u6lCxyQ8;^Yz!YC z(g**3;IsYj>3dUePxrUFU*Gl7&L4F?fj@FZ|3E*#)XYq4CwXB%KdwUIIGbcMY%{q6 zo__v=idLQ&7anTcqPDiGQpt>AVUk}|xzMyYJx?!>N+na`!e}W>mcq1C$>gSSarE-6 zzDu2o5^@n@zq8u!g4MS-HXcf#FmGjBjE7~~X?L_+rSUQe(8%YB zDc)u@(zK;MZ>PnIx7FEnCSH1w0kx2hiWF;GYPX&D(u2#59PXRF+=z!zjOuiuyKlDR za&z@6ru*KJ)hUn*&!Z1v3w1<~4T zHd?H8>SOlSZ#Lro|EiALrT(9s|M$Sq7l-8hzeAz^|A+hjvG1PV--Z7F2cZ9dXV+({ z^Z#y7CIs+Ue_U}xGIenQH!*_Bb5XoPRbk-1A%RFz!ZNit01`yPQ+?nWCcHQCddZU| zn9XMi61a2`CyBUNsH70BjA7xa&+(~ymV-)#RmF74DlW`=g5Rn2N;OUKt#b(+m{xN@ zY%hUJH&D|@T*ek~K+c*>ali;dqKZjI5OE<734WA*)~X3e?K8ISM-^L5W8|U0qe==?VOfD|ljp54P@u4i>5}!Wg|P(WDULi0z;MZ& zN|sziOnSm&8C|`Lg#iz#86Z|s;Icr@wliRSRnD4BM*;LL0wglUcrddfb%kxFz!Alw z#<<`;q8HGnaWPO}d{s4FGKPg2!%?$h)3A6rpqefj;xf>er9+pwJ?|y=sW=eh@{ky& zo*dbu!1$`1HJRlAh-&ySo*q~>m8d*n;E<975*LKxV<~{9HyaBFRMRE>upHahe9Wh% zPXpuOfNHv=#N`1O4ro!OPSfUMi34}5IUtr%;6frIQYB~_7dHpw{r^bERdb`?8GYl( zh2ei5o*nv=A#c|z=KmcX_~wAs|C^Zq_wL@W_3rQaweIg@{@<6oZtDCb=Kmc@-v2W{ zUn#696f8|k>=g@>pIjZ4$lT}<8{Dh}bt39I$ zeojRJxw`}|!!$iAHQ6aJzA7hArb07}C;SJ-Em@B4wJ9{eSIL10mlf-|HSO0}IG~s{ znJ^c$rO9i`!vV#t$to^PeuDUad!~7>o>p@}ETh0>I|g}swSWV1@?@F=Mi>S#*T_J{ zL-fSm^j_nM1Ir2y#JF732&iX!77i$eO`0(*+qKChT09(344bUtGBJDr&twiYx6g4D zTCJ!!Anhe^L47AR$E2C(yB2Ujj-JeNKoC_-ZZPn~NDb~h95|`uK!gi-NAjVAg#(IV zlh|tl7P2}4hUk*7LOdK$44ag=Or$ALm}rqxVk{guq2>VW72+~{&#%@?Htk|tzyXY& z%)UV2wM(SxkfwnDFjGTonjtC&2gX*P%0Fl)a5*~pagc=qieZxpR8|1t7~&fo4+Rv% zCabu_`#46$kUhrMDIo9v_jO!#9QXfVsdqk}&ld}81m14jP``+nH> zXzw5P?(2Df_uq9t*!88Z8$17-j=%1>FLURw{c>e|?bX>0>lO7dveXEfz5H)|305Z7UX}AgDO`qbSyX%Rd!e;gDi;;568+MKht!En1$B zY7U5H1TF_sY2+Jh3pg;Y;6NCOZ3iGNn?7)yhXZnuV|r0zT*&A|N@?560Xf1k&4Cz} zjvRPfLh+iM;HWYerasv^)E}s)K9)Fud5$>etqh&64e5f1u$`co8l<(3;fE#u5iclrAHJh0so}IAl4Fu8Dz; zsnXq=xlGN_1H=Jp5{HEYLuw8Pdm$^~d#InFHUPGO17h&wD@GC=aEo|F!i~&ER>H@G zc5<-d;eeP0nOf8oE{u*QR|BwcKn#kkYc3C$pY~kI*2JVpwYeY$?AaJiOLb)|9O%n& zptg(xml>Gka{m@^Kuna(FDi%%twP=PJS69c2V5Qwh!K+Mf`#;|IPkqz9f82Y0 z&quodvHS6^KkAz3{7}aaJ07cD`0M=y57};ZEf8dEk&bi%%|hzdB-hTetc8~V ze^Kjx7}jECY|YLl)M~hV&BC)kISs(zj&`qExiRBOSf*ba9osaaTHuXL#gc{*+3_^X zGy{iRHpt_R3TuDM(dx3X9Ox9PpcK!J%h zEfW#4l9N4E^RN-wM=#V19L^Gb7HXaWLZdNX8gbU&sw%46iL2?GaquidB$17S&@16(4Pa|KY~2F03&wM~wtnGPoT zkrQDY6c}6EtBC9|E+1Vn?T7-eZ)h#gamY)`!+`4*43O3`HQaq{OsglFi-7?XYuBlw zKn<4>;A%!qF|{BH>`^YN@U|GOj1E_mT-wAzfx_B^a#15(21fQ#FF*`Y;Oe#A{T&BV z*H}dMu+UJL3uPR{jmATOVqIJ58mg;sg{6ij76QCZO#rcm0vGxc$fxWU5a6{60@Plg z10=y5YM|mEz}VVr6fvNN3;h%B_TK~&@Bd#Oy{Y>C{{{5_%lH4^8`x8Q|Nm_7>#Fbn z|FY}a%fA21hKxjd6r6$@qbpR%FvbGIh^e&VSb@UY-3nU8xX@)!Zc1WsLE~#V>B6MB zOgyaX)YAcv7s^Q&M!0lLBQfC|$+dSZUg%Dh7YdhA;4%UW)y_n(-2yKpg$%PCz!+iO z2S^+8!R_!ug|&AnIS}Ep45Uhk#$(~Y0fp0szo?oEwNYeq@o?bwy5{mUTQ|}3Ms;N@ z9C)Xi1HxVc7XmT)S+NBic!y$9MM1};j;sj^bC8TD?lqn`aGPRLV_aymCrk0LaNz9? z%_TB8RBG~Y;MTh4ax@ER68s-=8Cf{+HWdftG74Odfu|lKt`=}0C*6f0iVje4zy?To z5b}|khXZd>E@~B*7gzz=cq|;qiFYN9~^6^k08 z=83mXFU^$~?wUGLnwXrp`^3>X?bhhf7nH>ErS5Xzwg79R}P33$x|> zDy7n0<(X1Ec<{j5BaMwIqI;yjxIM3z)!=(1ozFFJyOh^QqGlqNF9eLoy)UncHdPm-uo2}=sJ(QoCl<Non5ry+sI*j&3^E zc1^x;Ee7^(Jb{j~?`vDlwP>7$9uPn4Z& zEsHG^U8*~Y#pqL(;)&@u8Yr^k-ND4{X&ov<)WjxFUgAE*MZ1Q}4iFot$tIS(L{2U- z3>Q^%p}z`^%5BL@hRBG+#qZsjP$@NrevwON{lTV_aQ z6+NEepgOuk?b*@To;Eh0Q}2y&>l?FNEy@YV| zwxsA#1?>krYUhdj|1}-wJ4U}S@^iyC@B06Cy?yY18oXxU=llP%|1Etl^j+Qi-kyKo z^QP{N?vbw3o&RTNfIqs;KUNCoR0G~17Jx3DKtu5_gcGS+Rvl#Dq?hEc3(B;xu;d8ig2Uj0;LvROu#;4ySXf`ED^P z7xTBM4Ph+GE9X@6-6Sp#tB80PRo*qd)mSJnrlLTE%MJpBt!m1(Xd<-Bx*Mu3kOEj91z<};DRz3*=MwX19IA1ngd=K25im7{4JZj*LXNEq~Jh|%fq5l zrLI^wkelxoHVFy=V__~aC6x+`hXc9!ZZ%vM8kX@g7&R|8%}o{#45&CDmr>xtD2?d+ z-83$44m|(nbN%v~aH~28k6XR#M020Ec0aB6lA-VHoZOw~`lJQxykcPTr;erG-d7B+ zXSFtD-QRq!x8aU-JaoJAbk+V>x+C9wuBWjD#RQWmg1p4(ydIUf|G%o^zK*MokA7z~ zsOtZJd&sHk|9@k^sOta!Veh`G{{NS{ZoHiS|2f4lHUpCm+(}DE#gu8{ydk|r)8T+8 zd@6>qNnB>2xndMs{ z3=6X+$RnS4IDlzvSuyV_E=R+2uWyhw*;zR7dKCwxy#y{K)X2D6zyUd&Ez1ExR9kag zAET+L>3ALvT&G;r2$zQ`I@DYw3kMYA*s#|kSS~gjHMa9`KrxQ3ip$baVQk>)K@8_C z9N4YqfUp;EApZM{~zqQY7Y1Rn?^o4{L|sm z(6=%F?_+~M9y~hm&4KItKhpQ3z9)LW-aFCr!S28BezfbWU9atYf5-Pa9&A(yfLHrF z^UGk^BJSC`=85@dk!n}d+k<5p6l2*Eu;97LGb|XE0p?PSWs|t9K*KmHyw6Zi@GP$A zfWj3eaCy2(zQ(q|70DrODOY4*Iy>@Bm?)tO{m=HKCf=#wK#a?<9P<5#g#(JQYzcGe z2z>3Sa!`zAtK#xB6i%aSnW`_#!hyG|I3Sl%;Bt`oqDGV!a6k@e%W?qz)^au1^Mim) zRGuU0+msxLaCtcTQH{sIfx0`)9v z&};z(;D8+(FU^7Y@fj&Zi@K;h9IzCN8soA8 z9J`6(Y3m%Q-T#k|ei`@wPvHJPGxP=A|38ZR|J1P~SiFJ=Xi%y~Uni>i$9Z z!(G4C^_tFK#AJZR_y4hTv;AVuUwRqBA?*%YG91gGezQD_P*N;Hj0zeNM;E)AQnHWSk!PryX`{m4ogZdHsPQ^;oKvNMU8QxjDy@##=?Pz z8=A|*M0={c<>A0Xb69}Vqo+IBn?ctE+P!hZ-@A}vQfCbLjLF_H~4vLjfQn1M-*PCOJ)jAX0gvNT-% zT{{}u+VnEAP~fnd0>WMbm&i?D0ci<2pe=nD2nV#=rshG7f`01e;lRBL4#c>89~A(^ z&BnrkdlX?HhK0gWp9+hI19#Uomw{!(U4VRpW#PbGDh^0{30%5vk)QwA!@&5tgUUq} zL>2Gh7&aMAB5B%zFmOQL|KHhh)x)D-8NGSrQ^Wr}d}QbkhHlvPD}z57JUsCGxc`3` z_y4|Z9rA+|3kMb(n#*zVDofmJJRGRhHJ6KJ#QmTAhRwo(r_~$~ z%LrU}fI=}2(Oxa!z)8iThCTa^1CTa)VA^vQDk~PXhRcE=ghNeivT$Ibk-3lnpx+gF zIB=q_xopia9J5WAvUwE;;K(dXYu-fUH{Mb{gu4?cmLmA7rQz-pX~T9{&4lj%Gh~`%b_f= zoU95o(GrgPPM`?^?zVJZpNF&@x_VOC#sn%zL6VzcIXv~)d5Fu^v6io4Fgxmch@9rw zrRNKZU0OAlfaT)IPQ6HQ@6zXk^J7xyBdrE4VA>*eqvOO5`37met?7JRW(tqB^JXgs z=dW&TJluD-XV#sGkv~?jlf-3L#?MQYzO*+%Pd0p<2YTRu)t;2$c`4JE_PsGKUDUu3 z-3h}HVf?&Q>8oQdFK`TU8kocR7S504&j_Y8m#dkUgMX-3SQhU)tn$7wF3YgnE_(s* zJEU|VfQd$S9R*ibQ0uUI$@?xWlq$vAq|xB~u7<|L2y^t>SBoKAYP=okeWl=G)}4qG zrlXlcth_x*it__XcM{>UJ!Grf;eGoRM_+KXYAy?Ty0%nLobRh^E?dLHv5s^#(OfLv zw^!|bg}nqW7Y&-!Aj*CA#R;S*zo>?MS+xMtKyz?g5_RXh^NX6mr5k9XBQ7e-38br$ zx%9xG%d+#FKsxK1OFWRz&pXmN+_e|Fpy7qQ{wByJ4*kylU_e#yZvfc3#gf2kw&*E)&gCZSmj=mAwQkbU>3ce>}Tap|V%Sg##c2v*;BH zTi?AXJK3l5;Bpy(%Y$N8B%s>#_G*C#mzsN74jABo0Et!ravKE?2X0bwpo$CK9rS)K z77wma*%PTAydpyjBd|nc9x<@+a6qB57vu5+$f#4Z@+=&A>C&y`g{9InOB0h5w@)n`o1Lqaw8N#!sZvFgpPe|f^2+nC z5BL1yb7~wy#PM=K4wa^tE0wv0V_3bz)5l9Q%k!lQ1A0Jv+;OKrXKvubb#UXGJT zJ(ZQ-UYehJPif}GLQ{Mkz$VUL*Km(HsDnv8wX2ZDYjW?Mb4w-dwr5VxRi>8a$_p3_ zJ9VsC6V~}KP!64!T6?9ZmF9EsaGWZiP=S>D<;c|1^zoVUG0LK*KM6R)=OM9&Eq`oL z4aY_kfEDN94=Sgo<|m6f zraj{#>@;u{F(^Tv&~E@u_j#eIw`b&FT{KSAYnVlIe0gc6e0rg{G#h~KFcBZpL!i#_=wU z{{K6>K7;=M_o4s)_T=RsCxkn4Cj?)3T|1c6g>WmLXxsjdjBJFI*-PBSLXb#Xp-Tae zKqwld-uf9<0siekxH}TBc`00?R3sUh50y@oPlfIbA!Z6k;9{jTU9QZ)uT{z?LYKFf z^HIT^HOFn!2z#mLe35#bq$Tra70w&@o?bnSq`LdxdFY~ zgn4{9vkw^R9q|^@KhX-_5v=H zZ9w^={b4}r>}5G1h-v{OO2WvGZ9E)slpKg~q2iEyLSx~8LRk-cErMmBl8JhS<>7!r zS+9!A#1k__hRn8bz*KWU*h}E@&;ir#+km|PKM>dd|MT$d(4P!>yH?TvFZBPd{@+CZ z|GRs?*1Nyw*U_I zu(+j}+>)elq2-6%_}PLBnpE9OxFvvu?}YKNZy-2^E^VUkrp$1Oo;FMT|%;X>sL4uK}QxQvAZkE=K!w-<1s;?0cmv+XRIkg|JO z4hRQ=k_l*L8Ep#9k0}?miVMX|Zt5Mh8OO%Lft=7@xYr_BXy+v>^YU;YC$tygLWh`- za@1PmNz;3cg#!<(IRJYB7wS0hrbl(LEr8V?6@ zN_#b2m}_F71%P};W8lE<^Y`TDnxt?ciAYVNw;&8i*}XIcK5f5BnbN{li`j`v2eWehByfH+232?*I3v@BE2h;h8t@dEFKEvWcDIl2F99T_PN`h2ZKcw1;S+%xNy)5 zOzLHaodV)G1f(&%fmN1Z$*$ekt1WR}6r6xQa z$jR*0aCsWqGCiG~F=Pn?3u+DsdkI{o3sp9vD{BD138&J?6nw{Wt-%(NFEO4WcF&fPy>UCWsCzOE+Y#E=2RSz_7b>U zqgK1#bk@8D9FVGeSq=!IqQV1ZPB`KcjmN`*V@eK4T&M=XoI>gykA(x6hnLGv%NKDQ zFXDI$A@=|?a3J;mFYEtHc>kCB|Kj~$>i>)Pf2sd3-v6ckf5Z3x3!(=kr3?sW`QngZ z32|AZyuEfT!Ugn%C!$h@-+m=h&1?WBII1uB)10GqSox>4bC@44( z!*ZcqL^T%=2gd4}%S27Kc)_NgsaQC0wTc7MUIG^yCa!>IvI{wt!jJ>P-=gUh&2IEk zXqI4nA*WK9!sS{9IcLbift*TV3Km4OJ*vOu;XqEMu!c+5P&f`LR%#xYg#&q&!W1q{ zi@OpyFr;v77_WrfTp$!;@xDS0Ry-WorEqL9E@(y|%cs>mRlU$v~LV+$d1%$l>F32B| z(_ZWp7{4HO_R@KY`0d$(E+O@N%fo>V1qWhW7+XdzJ>NP9n+M=uP4Ke+l#d zZp8e*e?tBL?+;v${{MeO{r~Uu?#BGTzwdqo{r|5;|Nr+ojwD|Evp-!KzaV=uQmbHu zRT#DqZbfp9{36A(3TA#461aSWKGA;bs{nK5R1*DS0v6a*QgKy` z#BZ9;M6!6I{R&T1wU@wUV%Q#){hxAflCZFb*Y{m9XOx zwu;M!ZVr)}>=Y$5zpPnHjMRscp9FX^a=>I)3`qj~!M}BqqKMy}R^d;Q?KaTtVeFLAz{r@Al|KHR5 zySV>1)c?D1P_YU|ShRwnx0dPo*tbM7wO|!w6GrMh3XpJ?P`$BC3q{7%L?pv1;DB{U zo>~c9xMq+k&*F&`a)}98ItWh{cGSJb!-1S! zVhtDO$v`HA?#fs=aI1;~(q00W14(4+VXp-okm`w94hW(e011I)lj_)bIPg{_2dcP` zn6t^aSU8Z=OAPl~1Pfv&Jov z4oLaLGzY@|e~ei{&7AF!lR7*cc#~pLV_cXZ+ZF}D3pv3=a3F?dn|ReCt|<=(a)OC9 zT$tZ1W?ooSSH=RZX3U>qD6yWlCFXfOh) ziVKep)V;3jO~tQvdIQq6x!r(IhKmTOg`|oHz9>&#)pB z7iLvXDaM5w46>AQ3j(tgPfR-{2S*w)^wvftw9}>sgBe9&j&WHQG{=b%ki{!0xLj;zBYYz!i<0nP=g^l!^n=UIG_--U6z(Yyk(Pcw&|V!hs-3;XBBJ zQ}-H2U@lyET*-k5mw3#h8jpno3b{n=wFs7F+3nGNx}cCttl}~?%R^Cidk&|MsyQI+ zC2+Y0y2XjEtOXp9;)!Vv*kK&NG!f6h3A#P?Lk}wsr!g+wj)q<}{XE4&0fkzkQA6bl zWdiDw@`M3}T4EKKu30X6A<1=3EMee?iUQJJ0+%UrP3@YWkW0kdAc{ILeZ_+I zoM%$6o;(~-$R$>BiT81+C6fK^);S>W{|^fN|L=}Yj(l?XpK<>e`v0>2|BrG1m-YXD z1pWUHcK@*Z(XK!2+SmF1j=$@8FkAGW{PoKCx}pt3Og_L6R!@urbWQRpfn^!i6>S(* zTrMU63Qgsj^?0sf}TF%3CCv?t|-QZ zxmo1CSr%8MP)x*Li_GQPI{Eg)!hs74#l$Ku8_TF;d>qw9Zrv5F6feAYpyQ5LjI0cu zu1$_b9#`56xKJc`1u#IWC#D(Tg>DTht~%gz`f!hlpyOosvamg;FpOJI}~ z^(Mu`fjK1y;6HSM3nN3wIYR~x6fQt7QQoft7JNE2A?Sc#Rfb!aAHgQWWLs<>RuGcjP6dU|09$Gg{mMp49) zfQ2?=>S2%H6|GDC#FQ(-HbXSVya^0-FfFo>3yUjSf4PDIF)lo|lQr!aT+#TtLNPI6 zF4Mu_U}CO`BOH&dLoqSO0BJ5vx^XcjhL91df?!pfI=^^ic8l(O9OR=?V!M*f&vL#9(0JqIjzN*g6B` z{r{n){@={d7l!uk`qLBxq5t=T?uWZR+x5E6U+VaN$3u!cfBai00FX@? zsbw%N5sabv;d_`5LDm`PScby7o%cjBF4PIqFSJ`<2P8`%n3zouC1Ck@S|kQN9#5pu zORU0jF^3(u3UbXqgC{Dk8;Ymm1g>t zT(rRv!CxrU60xEYEFaS*sJDL}20$$_+hbhCg~2VzbJMG^85l6JezPJLCvYLTN><}( zK`fTyiD?d)VGyu197Un!Os)7?^+?6%Pdz zYKc``riQ0Z2Sx0};KV|Ky($XGRTQ{zd?&k%7EnNHCuS)i{F(ufkl82ebaGIjuztP5 zubH901uh?|CgkoC1`ZU~p_Z6C2gR^_i#&0NhXM+*L{LDiqOKuXh-VP$`HY1E6KV=X zxNH;i5{T4n0R^OVVwwU*n3oGQ4<|^IJPMhI0!0M{Vq7Q!BMZkdP+)u=YKhsRIlQ=u zG^Q{YUX93+orePoxx^|iAMd%o>5^0VEF5@^iUZPK0+;Jv31Z;uQamxs0T4BO3^!hc zVmSi`XsE6Sgf-=xygtQnn!_fj?B-=0&>kxv(I@pkL zMZV7>tKKrK1MdF^v%V;W3tABdHF3-0i*kaADOe^ZWl`fEk1xszCf0C4QPvc538;IG z#TUIx%>l8!1TGXGksAYBzyT?rnC3v}FriB#PBIXGA|4ueIB>gy12tTjer}L)v2Y+K zn25a=!@|oad59ek2XcamHCzs+#X&NZ{MN(5f!kCZkoFR|9Gn!W4~s3}fRs|i>-<&p|6k_) zzp$Qb!@!b+l2njLF&zV9B-8^I%c>k#txAjwuV(HQkTI3|iD|bKit|92#IzCr+B3^| zeOBR?VqB=LAy-&3xTV566cf{r2H0ycEL?=Bhb@l4Tv*QuCe~m;kaQXIBy@emZ^^62*s1_F$) z=j0N@6^&52x5^~R3=Ei9f43?K$W;`$Ajd-%32FfaqyS%VhACbUzn#X|w8C8q0# zKmiHM!U#;mgxU(x+pb3=0zPw# zBV6I@xarYf$G6S_dH;Vv)c^nM(Km+u|Fh`-SL^@%a<{1e|4P?Qoxj-ew;d0p-~W@p zS{dKS^x-~5vC*k=L@_QM z0)W(7asFVuA*B=3jtD|VhS0pRTueeEzqRl<+0F-$EQmD(~*i06* zPg18VWqn>Gsva&n2`UW;Ji ziIH5Q&BKA5Tw)Cu(o2vFvB~Fm77kR@91!*rxJ=t1&+};k2c&pnngbZ31CSO5h@u*X z97K6Ia8kj67?+EOH>v|+;Q-_k(-W+OtV&T9E z6$hlf1TJ5ry>2%K<@DOkYL56{!hgu;Spr)$3373mxf%kXpE?5iYMCPn6^9 zIkm(TC>N6W)VDwe1|;79h5p~KHq`(7VEF$3)vniu`u~@E|KE5`-V+%@iARX>K=Big zjMRKQgC{C%pbsPaN|1o%>Ets4!!oQCHgZ~tL9q%8qPMPLnB>|r4o9@{DupA8aY5nJ zBxlq3gYgEG6LZl8x=&)%reB!bU;Kfe4q2w|1)WSU8ZAOAPl~1j`na35jdU!-1S!VhvX~I2S`!+rojDsW~9* zC2)DRPcGzW0SBabV){S|g(ZN*;9LXpp*}SU#=(KHjZsC-P>f6W$zxzxD3DW2#8#`J z(gPP7O>Ln7)Dm-VG!mDM@y8Z4*{RfIISLJ_C=lZ^aH6H2GFm_ZDV~_6fZ!?S=3=l3 ziu;I*%0Yp`#-MUhBV3LH2SUWf!hxJzV#t9A7IqrB#EK&fjBP+JG1t<8Nk~{m%%_EL z6uHcvg#vwQ3Pi9xlnha$6FUV88xT*--tgkLXWu{$jJVTy7|^3&K>w?uo`XqHSQr>WemCM^Kw;zhy5>S!Lezbcwc;5lFtKr+Dhgn4;U9qu zx?*Ipgcfi>$|t5dAgb)ebQ;@t0)srDnS%pk8x#3^HlDX4Tv%3W!jOdmIlV+sAVy{R z^e$Tt3XE+)FEN{ysN%wOTF*x~Cx&ts2E0zi0BJ4(3(9Ha=EoK=K#C`386aqi=WtIq z?RFH+$@~8gh5p}HMsLFX|EI(AL;qpu*slM1S1|YogOdaQYT)|*Gkt&E_gL?5_i8=A z(*5J^LtUTi+SB==jvpo~{&&*PaoJY1h!_?U6XLDRNA)M9#)uo4!y6Sg6fGhNT()hK zak03gyTizr-nx;wP$PwrywsyIhdU~4NGZouoln(V7?_A`Je~@O%gEx74yyc-v=?yU zn1F|DA})4+bj^kob}T<@>IQC!*zbrjHIR5PPA8n+HZ}d!u}XP)VWxPpQl2g?E*AH` zy)-}dp3)3#c6j=DX=Zu8RM}fxT$-vZm1eYOCk~gFE7PT0%L_}TXO<==CvKlwI5s<1 zDQSmGl~bjPrug{8nUz;=NM*;x=hVOqJQO6!sRDMWG`(D@%q<*yvCx!%0l@Wcyep)_ z+*BQKrkQ#MRe?KFt~^z$6!#o;r_Er>wkRf(p9PSKjROrgnFUU!5@0GM@q*lY=iE|B zyX~2ibCs#3x$?rnsfDRy&8}vh4+G`Uh7@!xJ*_mCg|4PlKdK6(+$=|?mZp!-l#fx2 zmHs5)jBH3D$7752;G~-*>chFcgiU_5G_^#>Q~M|YUAOU$a23z245|8nGCJ>e=; zh~nS7M-mhJUViHoaP|Kd;M}!w8@BzPkw;D_VWMEjjoK0pEX!dN54X63Vs9z!1T&v>>eU^m1vrv^ZJZJ5!pS zTAp9pOGR;NL+CQ@8L`wL^dNAf$MOt_svDYyOBZ&aeqmHB3gyK;BPZ&9<(g1s;w#_3 zD8B8bnV#JcN{f3&ZmDA|2L+1Npq4;&ScFnxp^R0?M(N%Vf{NIxWfgyI z7ZW_3YQjJ9<>Rk<@14c+(I-pOON-zy0{r~^Wdghm3DSaxrA0y9;SC|6xM$=sB@Dc3 zyBH&yV@zm;=(lRlosZNV$dY{V9Rq4cw>kwd$5gg z=`TY4i{&1m&`QLSu?h==Ieqf=gy$Zh&`PZ0!faX>)oJ8YgV#igmE^QESCR_^44 z-9EA5tB+{HUILei39Hmv9PWF7xc?VAKGQM!m67)i9~c@Q{L_Jt_y2YO{e7SBdwuUm zdj6lDd%J(Pd!p+Doqy4J5P$5-_<;+&6jn>$NS#TDawDB6vWcEWeZb_|iPH+=N?ayz z*``Bo+hN&>M^!s9#)azODxu= z=@|Lup)`Z)^;kIYn2G~2E=*>)5~}#6v|4si;n>j0;zM2&VIy%LY-Uk;H~?+6Y)!6V z3x_LkLGG$8!@|Zlq_$ceb72YyvRFiO@o?awy5@rNF9hG{@6s$Bcu>s&v5dfl^BY|s zjQd3Le6Vq3Q0%pp1J9Sz*A>T}#C(!K4=gWwYQ3#eDOYeqSXy4ZwLF7s+g;_QcZe+I z&Ba5dsm1a__°Z{fndxO9JIZnAiMY3bzR_A)|27?CT^a1>$JGlia$T0 z&lF|Mn&N|35MKp9W_JzBTZA)c^ko_5WY*ok0D+(EpeH z|KIC)uu(Dq>0zmUmcBK4;x=btzLJg`XM5@^rTAI;#2CXuJ1V(}i|54nbBYtA#ARxM zhlyDpHKW0DVtiJ0VvKPiV@p;q<~}hZ9VErivWtpiEqYA?&v0CF0+8p{B-PKd9Efn~ z7yv*m&}PZwO7XKg=5hmMzNvK+JRCT!>OLHK`9kh6nAE!BbWa6qb`WjPSxGIW#t zT*1NtDSlSRTvh-~X$r)+Fl8@Q=+sPNn}q^$NLiW!HCP7n+U-zf!|my~ zA`D1ewgwp!F+7pzZdtAa$5b4s;c^|k1W?~6*f}t^fgxqk|I03_ASzym@%}`OR6GnQ zDVMa0$_WAt9U?C2))^r0|DpcB?EnAg;nL6-hi=&QvB94VP7Qo+;JW?~_5DLw{a@_) zrS9)T|NpnTUUPZ<|BF)jEVTrfs)27-Ojm}s5`CYrEW$-8eU@@V30!CtA&)-W`Xa21 zUzEyc^~|MPetX`rE?$%0vsH6pim~q)^f3+`Zs_8;!VM*GLBoN3a$$Evg^N%=%j%FA zfe6K7x-wEaLV>Fk6o_%TNS8$K1x@2(r@;6{2%qInqd^!3FkKmqsk%))GV^di zN}pvpAi|TtWjJW(-S$|FFd&uBvK)wDLG+niKE`n&D_k5>asarj0CVEeVN7Y6f8K;HlFO!ogjfcyVm=>Pp>@bJLz*#2sCL&pmr2AA1keds*L>))_6{!jrp?#LkOu%@8rkJXX3_yDnQZGvFvn&N7 zSQySpeq&^yK;fd4KFd-df(7Lw>RpkC0XHfcAYh5v#jfL|dh46H{4g+J_r)6&l5Ew@ z70y(KgdOqx&K?5BFG}gN^pfHf1KVMwGUP*1Fh~T+69lC8S(*VcF3ZLIKO!y$28>^n z(r5L|g-SkhDwBr-*C{9vnoEpS#v6m*p4{9XRS<}A;lfXj9bE1*NQZPyo_r4XlL`!#*{O!$X1BDJdXU(bEhQlQ_wB zObk(A;^J%76o_z%M+R!tYyk!2h_bX_)58}US2GM0j*?pyIVe!Lh#6(rZ0Rr%<8q*3 zLEUUDVL;9(t7k47!kpAAEDr}>Ro7fdOWmDK=%G0{~EX1s=C&9*E{az}Pa(zu{TO|JLhUJ@7& zB4erRnFOiBc(&&Fp5LC)vKJ3zXqJZMA{Wq>$SgI+Vy~2j<#>VHmP+1>Qfw@C;xR6W z%h;HJNxnC-P(VtKtqf(TDR!5@Ww?6#DKLIf2#zI7xPWDLUkW$(<8Cky%KO zB_neZmyHA`l$_deIu%l6^~_}l?u(eq!xNc>I+@yB5WO{hG(=PH*(@A*t11l0?PX|? zsDSi2)s?Y_f$@t%$t=I9f~Yz`Vs1P+na;xjp=Fj|)G97lbV*Z<$8tIq8fSIQ&(Fc)%7fhNW|B1=JZ87v%llbQoKr2&^IB#?b-uBinakVmvsZTBNLsHx@CYAt+Sd2xrH5X|%%-J9skH-%k%@8Y%3s3Ik z1OSU4%E}q0VR?|+qMomKIFOYyjB#0->wBg{p2WL#KZM$$$5kAV+e_ebF!-73Gg`m_ zDQ=kMfN*T4=6V5K2sPEr!-2=a;9t#Jua)xrRMX(^vOD-Je;Xqc-FvewI z8KF)S>0vjWnP=g^!)gu)djXe=B4dyG@Y4bgNO8k72Tz5ye?3hJ|x7dHf#_2Og+rE$_#^Z?thn0&O;X=ZM>_AvJaHyfVOw%Q&3^_P3b`gWXQne-` z4v05~N!`<214DGE(VT?>_oyil!Gh)%`K7G|6v$2m6Sk92ye@19k<>O7Ph_WprEux! zQ6N{~vQXflf&w*j;l$yShXF89K;Hi!?zn1h^t+=sk9-RE|5@DsZ`}3q!G9W@9{6KS z|NBVaKlVM|`$xUIdp^+pgYHMVzJmV$U+(yR$HSRhf997fg-aa@Uj)e@3_wQ`K=ezI z&&n(dk!{2f`=bWS4{V#P!@#f*D=)hU!NddEcLIqExrv(YY|}xH#S@)Td7>I9&-V@T z+~*c}BB`C2K9E8$2pi4T@EB#%H41rx@v}+-M7S)&C%=BO5Fo3TC`1HxVc7lzo8$KJGn15!IN%>fAW0HleTlMtLIt2*#- z;FN*`F)m0Mkzd+bIFMCK6nia(1;<8ip5Wm?RxL5cWndXm_0pbF#zhqeq`d?#9m4k1 z{89@zAhi>-91uj+HP1$cw%eWr_0viYM7S(uo2UsB77k?966IctV4-reO$8HKwZs}O z%o_0!oIJ8(C_^0BeQ_b%*p$Wv!BA>GzXcS4bfV(nP2}c$P24eDo4VC_!oa+O0vNti z#pQ|FBgAAA3k9-jiDF4(Sjb9{OKo|=Kvpd=#^qrd4HJ#GL~}7vVB+GODhx<_0hfWg zZgL$5I|m9Ep`Dm3pN=1&F=w(pQQ(-80&utCn>fZ}kek)EP62uUKO*k`U%~zVli~Y+ zTL16E(Eoot?En7&^#32}`b^hrJKxvwy^bT93xD#LE8~}BPewWxL-`4bTvx**qbEk; z;KZftOL9ni3NTkzFHsOahNYvNj0%gz5namaCC0cMNNL)5 zQ=yWH!x3G2xylhqdkI{I?~%{R?2c&sl2lJja{$sj-~dEiMZFKXK#GS0;|dPMxWt%B zYII@Y0Q3@bXO|e3ZL}#baVaa9C^#T-K~C1j=uC3M1PceQR&gN4rK87$T2$Er4oLaL zEC)m!z(iCF4VG;gu{?I^D#gnWq>QS#Yi^UT` zD=~W~OTdD<4Ecn`m+4rHcHdc{8r1&V44NL)VB67)%1Euer@PfSq&&u$_&hrC1paSn2+2@eHcn_tuf zE)%2Ts7W0L3XEUM>Lp^YC161@kz8QK69%$+i7_rugC7eVaz`2i2XMoB98kz5Vy{K8ER?6VCr6=> zORVC;7+7SQ9C8;J3kTk;=76x5z=dI6X(M3%=aT!@S5U4mH?ImzIn7Kv8 z)dCJk@x&|#KvWFsKn%bSDoCC<;3+u};X-dPc}gJ*2eNXBa<4_OaD6hU=HlT%RxUBd zh39c(>H@N;!`3-ayZ=Y}e?J|bf&Ra<>!Z;Be**gdM*jz)|NkiT|M&I0ANv0fHl_b} z2`w18JDCT8@kwa7m?oyBklV(2)&Lc|q%AMI%|9=kN7cruG{8DLh>mM1fXTA~r7!sCihg~dYwg<4`2 z7iQjIoFiD!j!-xA2!c<4H<}eEf6l#e^3=0=+awe090}8doDlW`` zwIDb|ZbxO|z!4P(q`d?#=&N1{RisioG0Oo#RLnTV`wYF8mnRO~ujD`#7u4)*k9v+| z;ebLd5qm9yg?`O8#Q}v{Vigz0z?vo|G_|F>^^lqa!d?Oww$~M)wsHyDiMczTd`rdf zRl{~5)JZ%@@^IiD1qWhWmX6UTL|iN!P{<`#pTvc^kZ5WL2NM1N-x<9L{r__Q-wnHd zW$-71M+d$+a9#h0`~IQt-MwGyE%y8}^#32m{r}aSzu57&jr;!#n_Y@kKR$=*?g`EN6R^pyz3C7Q<9Fa5^aOpnA1XJTl z3l5|ZPRuzXXaQiWc>sw6sYx{+k0Uyxq(FoVXDssD1&bq6s3l^rMX;dyMAmR&;lL$@ zT4EI!#@zUbd2P|7zVu!-2ZX%@E?gDK`Q#RGKx!wZ52Vln07wj%fq1AvPJ;1p;28x6 zYPf{V9{E9vg#!w;L?ebJ-ejrKiH8FUwZtkeTN9c&bV&!6IIyhZfV3BIxgHb%uYfop zwG*=(5Ja^AQg`V(oje>^RC1t-%L#BEZA)@ap_Yif7Qyl@oxG+z98jnwR&kk{iQ-2H zWo`diX!oU)ielabE>UPtgw=vDAf*%26o422C}3cwql5ej)vxhTU_n8F7#GG{ky}kz z!hk|85zm2(9ClcK&InkB_zf$4X&SG@a}jIdKAlv^Zp# z`$XMDfT4+#Hd?Ahi%ujRdSGF;TsbkdG*@1@e{pW%SaIoisW@AnpD&*lzbc;;|78)s zQz_m)wQy{9u2L!%vIDwEGn94;?crc1Y$7nVxTEKN*KM1Mki+tl<^$13IJg&7>B z{C|g~MX@%+n?mGq&&Xp+7#?)d z^eFk1fDu|D`nqXr#JDu=Mc^6VRH!?OEo_KRZ4d8K?UBD3+l0DfcKl5h7ewPx%TBJ+ z*}6ws8Q*+4RxdNiJ4R&&0S2EFPg*Po(@iPonC`TctBB!j&{^`x4~!g_v(0f;RIcH& z(P-KJ*Me7WN^!@<=Q5rF6oBzi;FRu#i=A%qWTiY^T3jsdJye=ru2jHG;fJeUva%PR z6yEDHej;@8n({Azzqn?zs_^)19dJk?CfhAl;ND)EpL$Oz3=uB|n&RUC*0XtaNYJ?{ zH85OglT1+II#RAYRjL&C9G#waXE522VlVkw;F#EaS;IYsAnc^_ODZIho3FZS?Y3u5 z&Q-!-eQ;_4p|HuN45MZK!$3K-2~9^hj?&X=Yay?hO1P>(%J_a{YH9lTO!*kaSm{p! z&d4Uj90BLpq7n{H@p#Bf__6wMZZBbnA1zHS(eczi3P9Iwj)bdtW@S)?$kYQDf#@=b zVwCqtUV@METc?1l|F;0=uFc^vd_R&s#Du;ArC_lzK_Yw?@gwpI#gjPni4Z=A(_H1$ z)cj;oN2k7yWN3raL<}l<(CgZSe&fMCBM0lDaiej$Sun?!muAYR7m7=BCrahzrO6^X z7D5!d{vuEawMLw*>Y>2I!D=H!28IZIr3GP(rZU0PTSQjp?kJh^@NFUe;Y0V{f%Lv-=ZF@ zR$c;x+Txy(+$BI73w=;Q^lFzd7ULyAh$<>B0pXX&1q4+Ud80(pp@_pg(%lH07Uy95+AA)c7i4~d_iAs?DNV;m}-D4!Cnh3A-=!uh6HDNUCvGq}E1 z$|u5`?Oukogna-1Y{ymazp88W*^$2)xo!BjhF?GQFLwRau6GZ9Y4F;CU+Dkq{`>nr z-}f`UD?R^j&!O($>mKhq)A=7d@9Ow$>o5QHz5?zDviBsFcrN}GO}E$ zEX8p*flEh^E7e~7iOx+a8JS&F6NxcV_kb~$k)Pe(5gVIQGcwD82$zWttmL`3nMGwu zD@e)6dgj8!X0ik3;lO?+2ZXs$UjXS^y)EK3o0{Ui3mk}Wi98I^Wwd|-QZX{Mrq$fA zsLcq_GeYGlLr_H+kdl!p3M6o02$xQMhhw3DRE(@+E+?E@PFzzS3cMjtf!JJVDL`tC zh>Il*+^7fxF)pN$1M*ZJb`HF96N-_Dp}EYO^dFe!iZMM2*wfUz={+4Ax)t)<84cxoRFGiwudGHXDDM@qblU!H`q(OQ^U6Jn8jMsk@o z3DdGs@}tfowIZ|Dy;%&=R@1{|^j(acJ+ZkD>qn(7@*g_Vj-U{r`9M z{&w%{dVUG@|94>i-)k`c?{7P9Pu|Yq$L>`GOVfg=m}pwDk)G63uD+RLKYOqo-;~WE zsS^-D;!x`ZnhjAU+|U!AqZyDq2S(W)k~%OZa0&BKPuna9Mycai&s-L2DyauEjsxS^ z=D{!=smz7ELEu3jj<|{}=fykK6cD>hz(PwD`5enmfx;$a9J6^y6M9MjiL?PG1e0&) zJPeRBj_D zkSdOK%!T()lU!BI!+~3s91!NRHIZpI+M?#O`8G8NB3wGAohP5!n{j0=;DA(dOfRYt zh5<`MJ%>%t((-UX$~dMu5aSXPbg0H-;eb?etYp4s((?K(dA?*|_l_%$Gh>|S`B$z1H2plv%R+li5|A^9_j5Q-qg)kC@<4G90ji<{zjMmkR zjBn<8SwcLRhYP(ibSGgZI`uTo+Pw+cNn`?6hECV&K@+$j0Iienklg-h<&~RKbu#h1mBi>mH#Ozl<1G5N zJa0jI5^ryb=dBbt*8~$1fm#JFdfw6rpLLz`3KIwqdClE54cUrqH4s(__msVJDz zpA6r(q|9XEeJce=IR0cdxIUcPBNZJ_?W5uQ*5l#!N>+~75MkCNhE1jw6IF=f-)rIf zmJpmwy>BI9A}fZ`4w8?FV?_9(RBhVetQ_y&6f%>k%JB>u44G7;;e6lf+I%#Gk$B%q z!+_42`q59sKDN?vp&FTb;7Wn;yjt~DW@Wbcz=c{Ip$nNR9nXB_ngmJWD{n*TxX^`c z0L#G*Ik!0^tS4L8KPprqQ>Ei6VeJ;{?X)@7h0K7fJl7#C~h%c z1BAR|s&qU7!-Fh<6IE6wV6^TUP}qd5WA4dDKCK#>Efnpj_gkJ@fRuGirzvW%&}>Z4 zzcQpL3Y$=MtZyyTv!eI>rjzJAmw-dqRM}eR_XK*0X0pOtzXZtp|2I0WdVcgj zj@~!&=OgzI|H<%Mhkj#dVAp#F|MlP<1OIa1n*MU%|JL`G-WPhW?s*>f|1({G*>!j4 z|I&F+$2Yce=V$)xO7{!07bj6o5|S3L=(sBf2Bc4;HrNDd*{eyqUXaZ<*=QTXFru+< z85o?=_66C3lW5dR+X7Pk`QRdKvE^v{g6z6Us5NB1GD`mHgtbQN* zSJ|YSgyBJm+RdYAU9cVBd@l6Ui7a=xgGDOR)NDxnqaai6;HKjTPqdXXmx*Yb!ev<= zxqpEn+Kz8ZmCHKjf*_DdF2Uysw^HU(WiFhVfXa<-Jxwp;*268z{jAE?xC&QfEa=7KQIkyOokj1^+>dC*fmN=v1 zseLrexh<)4ZW57>sgXgdN=dbf@$a=P=Qg+rc}s-vL```uEEDL0`)*#MSrMH34WtJ3mIz@`wP%wGZ`W1%Qrac||i1jzdT zV;xsjM!z{4jQsZ_y~D?c{&eUayViE?8mtWb`M|CHpYHGLTj>2?dw;g)H+s6dpM?6~ zn>v5Bj3-wc` zWux?-c-rSUCcf}GRS1{%61dP8pAuYZ#$N2l#PJtI*Ghg-adU&*tYwI4XvsdTW9ha;&)&NL=XI55qq1blvSm3zpHd)AK$ZhZh`qhB<1*7L5l-plhkV;QcXd=YC0 zmc&cxq*9FB*jm2FpKvEb0i_v9TMOk=$glI2Nkk}cB~1aficp(HLfdCQcsoD=B{kW) zs1PF2YO{4utt!)hNKl}5QcF&jDUjoG{jgLvaltqM#mP;~<){IaOmoR_Kxd;67z`Vscd;T4XwAviMa^(w92&d6 zN#q>RYLl%IvlJEzDIi}|0SAUoYOzVmTxdl10+%gaBtijGdNO%SDRZg*c=S4Dq5J9r zX1yo1^ki%3Ck2W5O=Zp6{9T?0%(B?eVW)04!ih;v_@Ej4x#FZ2ooo$`HG!bF>4nrF zi0Bpv3-RR$XT1F6VB#cNLy8$N$YGY!pOl42{Z_jvDL^^R`;XwN_QyuJG`yI-;G!(HF$dT7)4|6=W=(ZquNfh-5Q z?L8E&Acf#^k2#Uk*JxrX!Lrf)$%Q3x106bvCKlt(s?CM8qZ`=OoW5ocOVeBm79tTP z$>54EpoSVGK%%q;TTSKqqNo{eZTpHK^9VE4AWOJZ(QMIUw_`jJ3K(jTC0H2E8C5}n z+DStVvWW|Uh&q0;-w`4=P*V-EgeyYQmRo<Hk07M&`GF4 z8h%Zk0Vyv2v`GO9)J{SS5~#{=upE`mC#J+9P&;X8K{gi=0wR%LM-I7g4{gU`h%f+J zkhto#Gzw{RDO?y&Thf?o2UiCeV2DA&c#xjJPJ^&Xi1I)708t4B)J_^=kR@DUov&^v zK!M?th8ScC7RGn8o1Y~(Fmw`PkcPw1%LoM#JS*76&LR{rwIG}30;~WNLfB_{2PmMm zAj@veO`I)+O%TDcF+a-=pvZNBFG5-dvK(5_ zLjUjWy?>bM|2@=ww)?7WztHs$T@P&d{ztYS4J$^PCsaqV=UD;dg2Isd@R3;qqhke5 zJjaDJPc|5??Y(jSYXEbhV`UR_DY{qlATwH4n&xsXs4F3eQw*rJ;~z!*kSR4;!Ud7B zQh91SxH{m645`TkBpyDV1LL7-i=Dof;ea7ES;U3;EFt^eC%}Q)Nk~l^FS1ZwU6i@d zM_=k+Z)Ztmj$$ZHf|}){Si^#FAT??DHK_97 z^Kw#kj z4Lx@FP=*7B)?^7+6!Lq-L^xn*O_pGVDh9@k;>d8o(3))G^0ABTY!9GR;q;)tH0DWGdY@cH>6oiZFV(8V(#L zIH1jCV;LdcSSogF$6O*DXiywz;)0rk6J7)y(7KJSiwdH8bt{NKQ+5T61P6vrP7=A# zI0=F&Tu#8g_=!+J%QkLgEgLmp+`~!c7|^PXtsXceEg0wKI>H{uMB`8oksU#d*&-NUb8iK(!o(Kn&mSgM1F^3hz zQK>?_oxLW*0VVE8n=8aJVr~>WULtY~JVJ3m+Y7ibHYaA+vvz<3N*dB!R7F(CYom3~ z$ut<-ezM4LKxspoi<;qbk-_FVHW3aeambC$<*0!POur_>0i_yAn+x*V2pRI<{~{cC zkmi6|Mup2o-6(e%r8%JA|A#XD|KH#J)7^&$zBLf-`kkFW-Z|O-jedW}Z} zerZXm9d2Z<5M|>ryJS$rFD)r8MA}@g6(TC>v#U)+IM73JKyNSLitA2P>fCDQF4F-H zC~ZV@QQn6F{hm8yelxU*4s2MIazPVgnA{>B-;wI)&ZB5m@(X^Uk>5T@L zq0D7lAsTZ+_S;c{11H}{b0EbPs%U)GXEW-;2yI0t>HhcY7Wz3tI~$PP_F*N$fs=%` zVgVPn8oO9Wf&(X?B{&6k99WQ**^u7+~f$_oXdDfoCWRXmbG; z2oOhHmmz-)oP?&L;n(aWVG{wQ=lBt~R7ZvaPZP&Lj!T8axW*HqfEHCOh3c@?;MRO) zF2{zfFZ0xtpg`@UR#z+^0~%Log`Qupm$Wh4xpIhbKx-_P8=F#lDO{>Rjhheb00*G3 z*vbK0XI29X0~vz2nkir>mDpm-Rj7aqif-()U4R3%lMr7dl9nnFt;`j;b*{UWp@5QO zq^+g$;J#pdtm#AdcM>1w(h^^zWxR4 z|Cfj!3B1TN78ZWf;N|RSgJTt|GOa^OVTrsk4+{0aj16nSzl>?c%!n()q zg%sd`djDVE^+%@u-zU)jKi>bf9iQks)O!y;;o|!Bk=l|L<+|~c*B54&J0TQ@$Gp(0 zgS>UWn2WxzF+MkWbmXm#`QuM6jEy`ym;C0rXGisKM#o0)JvK3I-Tc(Fb^p=E-LogA z8*iAf?w*}$JUNel;g9+|=x?xpjK)(;w3yKRy{A zo^qX_`4#t!A8X`)$IQaq?2}J6=H@NUeg#5*B>h0*8Ah&C-r)Mt=brCfa+9O`rVk8I zZV97jkr*l--TK>3&m0+nPnu7B)cuXQWAID)9{^{eF~6{}B{EDV%I1%Cp$!o%IXl%2 zdGU_tA2lrDqGJ}Vl_)gP4~*O9=4R(G(PrWJ{H<`fVY{vJTNysHga@f;i>ttg9o2_vhi+f;l#n?^H{Qj^V3IW-Z4F6J%O)&cJ#Ir zjhO{yhG$3BKhdmcKexf&QilNkUpAiYHYOU43ID)&JU(&2Z%jG|#-}Fj11^S%Okxy; zHy%aJuh?i8-9P)z#!O)o-QHM8K9ujEV9DOZa464#-Z_ROTrymX;ZQWEwG+!1EQmTF zHdnV)P{L=Y@?`F#7V#!);=;toI=ez!P@EY1zeC3>F@->_#0K4iIvQDXtLaLjII3x-G(iSJNC&_5vmj*w&`<{W9?EEkNzq@0)&)NR{ zo-cY z>+REx30!PXOiwnf!{amKa|`OOd%`=2e|jDyRQ&V5ZMQpU|Aww`-^to9J8Cx%&nZ9NQckYE6mDuf#J^P)(*-zL zJ=>2XcS{-1UkWy5tmmL|JrlO>=+4_(Cu@Dl-*nSq(j3f|7S46lZZ1YfxWQK1bn5;8 zvaX*~@Ba_({;#|57&tv}<*w&<{+~N<>tF5vnH}%z`@6oIdr$V(wm;kRpL<^0{l9fz zw(Xg&{{vruUx?Kb!V3=MihMQO$-$tCkS%d85~res7Yevg1Hv9XC?2aFTEdKkH@7x8 zLm>smL*&4PYK3-_7q+!?iI|Y!M!#;3 z%SQ(p6P5@CFd)Im?c}I%;b9Nskf8uEAt7DGz_J6R5!vdyA{3w|BouI694c%}#DoM? zv8hAAw`@1ALnDZ}*CZ%VTOuYT6mUWAoLwC*!U1AJLID<>ExUhDh6BWegcO&Hh*%gw ziH*68A{?M5B;>dt#fh2NOk5o}28am>0I7}v$BJV}MP*@%3w#wKCM4vzF!0aK!cJ}D z65#+bA)x>(hDKpa}f?u6B2SvgGA!%H#eTr^2vsoboBkd^|G+K|NlWX|L@y-#s+_N_rF8` z?{A?0_sO0Ax^n{hf8LIdLI3YD=>Hvr{{Q!S9)|wk4cmSZ`hO2@oEXP@4H^usmsJM$KOr*jzdq|{kP?AXyn>4O>^Af_ic(Bc6H5VJs=y~n;y$Z&v|o>0IA2g2TLA{-#5 zC*-hVjOwVO>kW}>VtPV~E3i~4UNh0swks3i05v_KfXhXl61RZ20~{cxCjg{!Y`*1S zhOW()ftBF^rYFGRmODRlT+nD|PjwLC05LwHU@kx8&m59D2Z-?rDK5`)Ab#eQIw;$D zNQ!WP8lOIDi{V5vM?H3DXl= zb@pI8bqv_R=mhMPoXjae3{NP)ven#jX3SHB0mSfx92VNZY_=G<00Z><|B-V4|F;IN zOWyyJ{om}rZpSD4e%v?F`}N*ywtuYW2R)B)* z2E7Ap5FazDp?h1&alA|jG32Oxh{dy?83GHjSX(A0CTLukN#*15gKh%mz7=pqqs!F9 zgeES}2~a!F4Vj4hqTyv?VuB0B6vUfiOPwxmR(00)ok7GIEfW(H3b^plV24a3oY68d zF`)n}axgcDxz}VkKukd%1M62>JEYpTuw*K(5yqRewjGE=Yi9?FntW4DmByc!`*nfHaai161l+b!2n*nhXbs zX$b{fF-q6Ce(n4@px*yK+x575|9@%E{=v^+{$FF@3wZy30`vdI`@h|P=Z?SL5%hhw z?^V6O)BCdRztr>JdhYA~%kEcfd%o+(__7!LwRpwytF=3Sw%H)>j@Sjk3P59yR3C0rpIYu(EhNC_bdw7q1m~2qNRNwDqJU~ zAOOWdrN0(HUbYNj2>9&z_iq3s42rQn3ddU;lgH=gpd$8SO+jZDXGne&mro6H zc){h%*W)dBO)o&T?cGmJ&y6d2w!5KXaHQSE+~A9Wa$s4Hb!fbcv>-HZ>rS!SgfgMt zD~HAxCXY_d9^oux`6~fu_wwFkL66MSa1a=Mp#|07^G(o$TbO8!FYw_szZ7`(EsrEu z_vaROQh-o5?w3@7DD&hW`+3buY&H#&gKgvQ0+_p&)gXs`gO3~|QKFLq>iXJK+%a=_ zcJ5fRg+}lz^9mzRL99<{=}ki_aPGwTlVc;cjW_w2gPyEb6~X4N%t0ykBrXGJdY0Av zhJAx~Z-@qZVlut^wlw8bT6xM4f_V)ya5cqjyxR+ zLtR7~Gs+qe5`j|Q*vPe0jl<(mKfRWV;>7Y*2?%c^5Ngs72_kinlkn%t4&1*OK~Xhu zVc+1f4gY53DUHARfqC^~FC1-*9L9#2eOmo#_9^9X=JAoak!Dgs9ZeicxO&b`?M&2lO zg9TL3U7TA`7HY8y+bBKDYN`UZ>a4+E)YjqJ1(EOcKrQ_B`QQ4MyGCXwo@h)i%!9u; z-J!d=`RT3?1Z~0lv_%u|`_cr)qa=(NB50ThYiyas3fbRVwnmQ2vNpYK(0GQIjd=+; zL6fREA5)+sT>COSZC{#2?xV}byo3@iJZIS=W9NS#T^wFE<|UM1q4$a%XA*gnEgSO^ znz%eG2p}t4N!8r4IWM7rOJ%bH_H#%6O}0$TOF#|@Z!+Jt{JM)Wu;K-+ovH*G4iNJa z3b-6Es-(qZnV6SQfMq-UB10Jt5c3jJTn-Ytb;qrw)o+=amr%eJc_F(cMw|n+Wz0)3 zLUVaGTn#4B$I^v726X=a&aTTI#{2&U)c^l<_o0D5PxAji-g#gD=licg{r?a8?(O|t z?_RwAzt?kD_aEZ*|KYChblq8g{Nt_odg`s{jd_mB_oE_8O>1TTh~mpIy!<*`4@zzK z@Rwc^kEmOL8=<(2n`W1AMMKN4O}0m&c(H^FGd{T?Katb;rcJE{F`Vp8*7mNI@I*t) zKewT^VhgVkw9Ybj8XkYwjx3B%JlSaLnr8$taP=HrzL92t3U(=2AtZgcvBwTDV2oH( zSJBjq0MZ5psyU4739d2&nz&HI!7qRjpg?UoZuQ$BW)3Sx*AR27Nid+c9BpVV$m`d= z81vzoxI`!rQWVhUQn*|P^NX0cIzWMdq=4dSU?CcYiPT(>5{E!-*(Vn@!-X@n60P`U zZ&P!5QRH*aOc@Ti8=A|v&@l^OTwEd?aA*#wWmLF)r~z<&Mh7@x6N?Ij_@9UQ95EDy zi}{ZW_a@VG9LmQ)j!P{n*LVWQ!0@sj<4}+l$1#w@!Wee8DvS&V^c)AuTzFbzSOULe zNQ49XDGq3R0T-rA@@3dNz=0b`4kYWUDwGi`bvgawOR31sM-Jj#Gb$1 zbK~Ie?`~R`tub}_`*L%K;{{Jtc|Nqln|FCKQe{C7P zA>|@2cuP#@LoJ?dg)Wi-?88N5Ngkq>B*zs&7?4Z&4tOP_RRqQhk~m5o#&f`aE=UQl zR9iOW9!t3JaAb$(McmSZgcEO?OVNxSc9L;R5O_2=pmD_(B9c&eC37g+71efaNsV21G%{{!iJp*mEnNacr0^3<5C3x7zxVO_7UO0ofHR}xG+B% zf(aF0Pf-qFC_W~8O%WAo_Yiqwc9>I!1BT*b2^Ts|*yR8s9Jrn2KxQtCa$+|>%Wyzz zJhpN`;c`(u0lfrv1W|+ox6vHPa3PA$?#k}KIbbM0Vz24Es$&Ie&Ougw*S5cv;ees| zSi%L(GWNw=gafw_9LUWTMred&`ZWm-3@zVG1ab;0{Z=bNbCRA2S2_0C%dNx zzBv%=`gl_R|Mh-%$1mgk|0v%7*7gtM{r?c&|F7Bh!LEPmI#ka8m;MC5y+ABNj4mYH z{j5keBC!t_iAAU_>+X=UBht8R3o7!s_i^790*+{8d9GhIE*1qpz@;1)Mv^hNYzN$s zq3M`Fgs%+h7HVuN%NrY-jwM_OG_xyfMBLCU$$-pUeq^(yykr=lRUBIxpm4=j1lgiG z`voh&fYIe+)KMHKAwz`=b-NBXAJqX47@CgQYms`A1(6kDYKP4(nw2?<4Nb=qE)31i z<{7qqMG)b@69flxbE%GwYQhp)#j(r*jVrXE*516q*_~e@Hjz%++2tOmzqf1akml_s4Z&|$MP|tak*BgjFmOlwe2xPIPe(7fgG3PV0=^c z&jCZyG1+U1sE!qS7-w5aA$4upkaR5J!ZVxQq#(k9M@SB2=JFtIRqTVmKpbf1|EHn< ze*^mee}ex1Zw_3G{{J5(`F~yiuk!yR(Er!@|Er+?{{s2{6{Azc9dXe0?+DM`!pfkz2nARez|6iTi#Vbc^oF#iic?&eo#Nu^!mg~5a6~Hugd-~8Qnd)&^F;nI zUNHn6vDfS*)KrJ@9E^D3dP|YRc*PKOEa8GkHao{C!hwE*15I0F}BntIWFmOwBsN}IM7FNK-){<@@$ZkX|E1&zz}py_8R=H9a%A6*%0brf|TKa zA?R4b1nVW3>OrYE`pMw z6+_Sw7r%OP4g@fsZF`wkMBBG{2@VV`L(tK9Xg6`ib^c{uf&$C$GbxZ;3!@VFQ};xU zfn`WIwqAu&T)q|II7hOW>B%H0u>4+v0tH;Q64ztml0OEPA?XO?l`FLC>e_94R-~p- zW)d71lmfM7L(?&#W`;|p-MEV?!hvTtHJ9hbCF!kpt{gHPfQlo*0c9@N!t6AaY-8>< z5e_^}b0EVNpqPofj2+;BA?k>|mS>*pvBzFiiDRI)Y=}CRaK!;C`k0G){v6Qn|A$om z|BHD4>-_(p;r;({y#F8X|I_|grStzj*E@>-|9|dzr27xh|NkNM|36g9__zLHv9^M) zjI!PVu6`(YfFiYHL5(_Q7YT|i!^*WLw+gU=sLr1FasJByYe6P)6KnYhs4+K(h$mXn zB8lY-sa{0ef(|K4X(}j}7+txB@I>hn zxy05*&2ZTf%Ile%O@IQ!E09fWy}ab+LbU`cWtp%fI54y_V&30VT(MP$?h`w$C~+9C zyppDXT15rRjj)VNb9I0MN=32dLh3*b03Z>UsH;{JZZ=Qm6i~8?Ee)0hTo8V)CN80b z7B@Cm;DziuFc}I!hOzYto0==M@K(g-g}K!PD6n_sN@FAet{8fEDOeb+$GuT?fB{OB z(OgnR(*PJDx5A!&A;SQr)@U*y#RZK-zLuBBA)wS7H#C=Oe6A=mr&S!wXQq0OsqyTn z5=XfNHwr93fzg#Ks8b-vg?TybX$c+R0HNuKG?F?6JS#?IA0uFx{zHZXgr;KwSBO)z zl8ev~!GYXdN@tG?OX3u$t!Nd;G6ys+7t5#;AzWM{9Jrj~Kob{6>$&bla1I!njyS9G zj5u`E*g8@I98mB7;jX{yy6llXU*2G0{vhIJUC_Hzr?!ij??yo2~>gidAu+0olhG-ej=m>PxJwECxG+xBz&4dLl~k4;Ql zH$Rp9e{}!o&67&CT7CYgcQ`&gQJ)+?FcmZoAMjm!;=qLCjvr{)+HuOEHx`Do?F zo$9(r+s;Ms26MYFgy~}VUr4uaA=CLQV|v@Yu65gCf-%OhAzXsS!1Sij(QOB<`7LF) z`lfdCp)KQOH@{1EYf{x;i8r+y1mn}YIN(0-Mi8qy-o0>MNhMU%rq zl_vM~BSQf~FVWGkd<#9rc*SzV<{}iZC<^4bBHv{P4Ld*qt)AFQ0d)*`FrJHC2sg4R zLxKGy1u|SJYRC;Yi5vrjULy8d2Fq4eFw8)X1P6vz2))D<7oIDs?SBeA%MI9zD9r%%{=cm2cf0m{Y4C%)?-&@|`JelLW5*+Xuh{;7_x!Kj|K5FM+uv-f z<3CsT3pX__pHrqNTNhF0z*aw0h{kKa2a!caml2N$BuT5xC{ z_cV}TXl;ei%h9-8WGgZJ5>wQfoMOTxZal}qK*scV=&11!H4D7@7Bk)(HZdMb zN^#yd;K=F&Hq#V{|^p)A?^QvE9(FELI3ajefRYKQSU3E|M#7qJG;+z z|LnG3==%GvH|9Zs#nF`p^^QuqE_}ywp;!^KYl@}cQ3xeK^2R7GgTxpr0&L4cEuJ4# zlk}M+qJ23o8?E9M1iXh=2$dVB2`h{dc;T8$CYC^`+-O{0-Eu;dR%GW)+Yup=Si<8p z2e7>qE_Hce=Pf$G0j+sc4yQq43?O5GL>*&ANuS3E4&=BHh-VkQiNwD}Yf|_hSou-uoil{C?IyeTn zB^@#xxR>NWiYtVG9ovD3aDbRcgT0o*!XOTe+Ns{aNdN_aoQ@=wgBXn>Al3F=D6_kU@xkGYpSh4_@=csuV5~_5^>GNm#jed24fvc9a9>X zkF>q*utx@q5a1b#0LdBx73wfvgxG|%UqY--Yv8mJ0M65o0TTV$5jQ3#Lx87A0%W+5 z=3w8OMF;@Z8-f5CEWByCFGrc{DIt0T0w`FK<>C_PJKQUS2n7~s3S_uKFNnCfIzRzE ztENN&)kXy4g_aAU8oo-Q3X{CVTsSo3+Kqr@{G88yQQXs=+Lv@(@ycM9p z@Cq@W25Xwa3NY8SlF?_i6=FP1ip#Uyzp#S&X7t;S5 zUL}NYTu8?$0W=HEKQ;!&RS+#2T7~cpt_kHgna1T<5Pq(+kG=C>hQ-mM#K}X60$c6mu@DgLzpwG4Q)I1BS3+@t3yP)Q~}qEkR|K@1GENCnE@(apr$7x zIc2+S%`piE)K)Jy4`USjX1HujHsPLnA`~E0Z*o|1J>a+5%TR!rPm|(`EX>G8WP<0=0UT1dCpF4x=2P+)+hKn4qEKqZ;uRbo6% z!CF2JO>P=Qh62QRniN-Hd5B9y?0d2Z1^Q_UsAW{RP@l}MI_$tPpoi6zkAXyT3{wg{ z6oo-~f_dYR;Xoh3fgG0u@p$edL*y7B#?v6>rcNhiE)@5%3tVM5K#ZqJae0;p5m!?h7lr6+sRO18%Y7>KNKveZ~5Gc zO%VzZ(`nMIvw{^svYZ>q6rg~5|6ktq2TA^a@PFF<_JM15{`dZs9Z&Un+ke>e$33;~ z_ip=tw%v_SxR`z|4zFIHtZ~8pdLuT{N_fQhR^a+^TumYWDrO#(OCCzNJhawSviJ1N zgN@7ucT&+61VaxtFc+Hb91N0nxK|?)_xmct{Wh1;vwUd%;@!e@ZPM=d`TFWLRM!*U z%K(phq^KsI$gX z?RHzM(=%S(tBqIIrB$>|j2AhO#mds>9W`F$LWOQiHF`#?Ba|*}({_Q4vW@i4*;&(J zklNNVU48YHn{pP7IbodThC6CIw6TW_&VcU7iE@n}K7TyHvv6UII&fH!h>56p}oUpP8D zH~pSQLBqWDqo$1cQ%^SDt(41;L(F{s;QaKFnRiUjSWiF!{rqir*q-w0cHB6C;u!aU ze;9o!@nkf9Aa)Lqk2f&f*=ZbpK>_poXW!YFY0)oNA8Lx1<86ppHLXqFuv(UPMyQE> zd6$VxT-o~AaYqWcLOWzX!p=V~q4WQ@x6}VWvi&1H-|cyG_qpz?w*6w)KXlz*2nis6 zeJk~5N>am^bAu6CHgXpgznQQ%ZfV^cc-SGm;;AVvDEh?yrJX%Y(!|f}`vijv{e`*HRqN+Y7jG-Nwv`>N#)| zxu}SpIW9m3kR;;fkn4kdCD*$N&q>ZQom!~om&_f9drD@n}8LpsS zN6#!b?kI8$=$QoN@No_cv3B<9B*Otclz=doT~}Idwx3N}xsY{CqpLo}fy7=47fR&N zBv<`0;E@~vQSBHYp{>YH|I2Vd4<%?_)C`x8ntyIeR)hn3CP6C)GFT`XVxLYj9KcWl zBZYz_ES52{g20D9YbEEvL7D>@E|qfP-e@~;4p;;S5Qc^ELJRe_AxOX^stgD8RDv=G za$In??DVDx2lP;aG6!;4xOKB{jxrq3Qwb<@1ySr0xq?NNMb3wuyy+}6Okqb~@boCJBnY6ut z%foc4I(Hd6z<~z|4q$)~IN$=LAGz#8E*TDJ<*f3e=D5(0$L<{$;eZy-Dsv!*1!J)X z%*t>;D`!#Wax6$fJ6=|$a$#R-Z>2b(?WJ(J9^wGZ%bz$0YO8M{qEDD01P<61Dh81@ zVPce_fELbbUDFH}L><_1bP)<@-K%w-6~?GGsv=f5w2HA*B6CQ50UkHMCBuO?Y-lc(AcsOz1sNOt z{y)@p*-_~K)dxQf{lBSF|Gx|U{~z={+WVDW3;O@x?RlvCi`}n*{{KI99V+DiTYrlb zi({7{Z6LZ+R2 z$aTOEEfB@-iII zI$5n8$Z(;!t`f!IRV|a%%7GLXhHF-&9KWh{vM6&oRt!xshutbJat^$c=76#na4E^Z ziy=1s1i=AFdjq5mkS^x4a~~Np9MC#hY23xm*{i$MsfL2>{@#n@mBGgc}E%)KVTfuU7Q zxH6&=kZ4bFIea}k5en$}R;?7sP}z8sajhjo0X^WVl>!P^gbAa8jqyIrRTQDXI8A{J zmxpHx*TZ(;D)cx(0i8w-E$B=*e7#i(3e;BhfUEMN=D0%JXUFwLIH2cSl{t{Z!e}4% zU?c$!==c9)s{j9Q_v|11)!qNT`^doG3|znKQ#=1P$^XB4$H)8rCCUHq+y1ehAN0JV z`>Wl1w|%th`(2NrZ)mexJ*B=Y`lLk z+K%bUCA`tlDXo=N@2G~%GhwWV0&Z&p&ttP_&NM*IIX#p4RSX^R?FhC1s zl^BqtitDK7YJCYH9hjLbaw`fQqZAjbv0DYopTI0b5}&yZ`X zc&bv*kmlslRE7b1pj9gaGFYJ(vtKCZe+uaLf1>~Y#XUD5|F87_zc6s!u216qKhgjB z{#W7s|D(Rgd;g?&-}a9t_5Xj=J+ke?ZRr1>(p?#)0&I!vZW16YRK-TjoMaNE)WNFe_UL%CgNR;fhXOOSqx}F0_BL ztB>Se(J2TVwjM7|A_xF2V@!f}*!7h%6nGUufhH^)DY2x8MOB`E-&V&bqJ1TjX(GZ$5Y0z;=T z&#E;x4GLtq5CP-bPT&j}K80ykWd%E=Cv#L@6tG)fWKID+&#ILI%33j!xwr_iV@o0w zsL>S2aG_6>E$7pLQ(%Z#)I1aJ)SF6}ZI`zSP(Z)`H`V|980!D;?fqQu=K6o9Zle|f zl}Bh+#Jq0ThaMHzZ+Bo3bPq=Pc7-AgfW$azCqjuaw<|$l5f*EwZcR2vnOQk5v?OH6V3 zmJ=f^mnl-W?J`6-a3jqDWiN#bmGu`v3HvFno>=ApdjA2^vv3TkL_5=gNN`~2RGqkw z=D4uexJh;q3J`LMPL2w-;??Lrog(BCQ(P`q(RE|?!&-y_Aw>agFNF)L4eXFt2aW+P zp4dtO#Z$*Z+{8hzcm))wo$`reKsgVM3n3l$WnP2>gj^!_S_aEg!6v4;WR3wsE-}Sr zTZrRF)ntlKIWz~9y%a8pAzuU2~aLPjiuTU_ZqHZ7+q(4*bgVGy47i zKr;Vt&)DGaq5r=z@Xdj6*JpSBXy{Xo+WxP9Mp;UW6*5zAar1}?^hx#@))%uIWE_Sci?2!x`}141Tg>@ z4>O=KT9#jDCgYXfPI#pp7knii;yIg@k)eLVu}k>vJs^StKq;y zGzXNufJ?p5Fqs8g&;e4(g6-=;lx%BD5826 zn!#L$U2iPIfwz(z$Z#Qg!oF^aZ~#(?M%FA!&H-hv5NpbP(8_Rt&`Jacl(}5XjXgZl zxJgD44%|y~Aj5@p6kCs~102xGiDeEz3;@P+EOgnsHoIt6h68sK9LRBD+#K6@A{>BL zqQQY2mhYfRfqAyeZ~$V7t@Z4V#${Wmu@CC(enSxs+(~gD#}z8c6{fv9zyU3u*vbJA z72`x)HCBo}C0m9AZz2~p!-d8^j~fyb;Q%3*h`pA=3hFUV0_K{^aDb3YOmV3MIc`Gi z^XdFKpx^&*%k=*~gZlr&=>LyU|Nn10C!zoE@Awt;|G%U6uX^q6ztr>3J#UBp|AB2E z>iSOC+ctdv<3FID9bFi$uE<3Zi$4Y#7eDe`l(AH@3`847iYvB!C6LO-b^gn+IC|=7 z!W9*81rYt`)}wa76+u1GSX30TU{NE>4}7Pp-0^YK6}dSs4_9UG9ZSF!)lNY%v9*-3 z01I0(r!~(1c zEksq^NQX{AFwv-f*30N(867klS3!ZJ1O-xaDOkvUvOQS`D4^97TPdJ;>R6Zs2sv-A z|B#`;VUhwFE*Hk*?ll1l)J{P!vGpc|HO*k5)r6a&l{p0I29mgxWer-9e(`gA(~PwW3Z-ut!fe**2l zyYZ=8{MYk`*0iAAjlbX^2@7ZF9&o%7*BuLN-I9tMR;i!&zQ*|6|FAj=bjzazZo4Hz4zF}v~}}S)7Je*8+Xs1m~Omb!n%8Qs`2DJ{)Ip4@1VcI{t?b+ zkM1A6Z}#}yWaHM^nT5u?7qY+X*4ep+b=%C5>6u3Huh1XC7u`I$Fg-hS#}q!_apNh^ zZ3G7<+;RVaKZQEAi8>y5(A^3Shf{HUxZY@f#XaN48u{NbvoJUNu1jrVUWLP*POY-*$TD$O!B@pV;~S#@sR3Hva?Q zym9>LCl{U>S(tqqST;6E2F`@r{P`}lMGmd)PAo!hHU|TG-Pn$bM~t?}rOh^Z^o2It zz}i5%*h_*@gr~?V-=y6*m@&Parsz9C78gyzYE+*N7wp@M_GLP^DuDPk5CL&#g%kzJGrPCE^w1w3MO$ST_fZYv8EX;C_1vUvN9Zi zTq3~%h0C=96=G$#!H95R8_j_X7s?;mec9q1sI5UgvGt{mJd!#FaNkgBt6X<0atxe$ zKe47cEG0I<4H-&M;1nU3Sg;l*6ILQQG;|7biLIfz6qjxJvFEev(b(>L^eQS? zC^KX`GI0hBpVH!q$kf0{Al3# zt|xY0w&SOLzt{Vd-p2NCZV!7t+x?^N@oit*=HU}A{IA8~HLW^SUP$y$z?IdlAjBh< z-9I7W%ZApjCKfWs6;%>q9bO}3hTI%gh+zxW+-M1zp%hn)RfPBvyXQi}m#tk%`7&)U z;8F=db_1lmFI&^9L#-50SB?lE!2tF%MS=pgwU-gcImA6vTxxiF71`!BLT3njErVr; z0lPF==0*#hA>&4?afKFC$3AVODCD}T5Z}es7EE?8FmP5>&0t_Hr{N$1px*hiSbLD&B~** z?QXUmYcEMmd(#IlYl+vYySW9qQr|80gtIo=R*Kbr@cnC->s|J-ZImf&H?BkP`6Ah6 zyoA-I&o1WUUQEhwt6Fel240M*%I#~HrQT?#NkKJhD#DxqGcngrs&ZpPTzm;iUH^Y) z*JTgy`4aU1KZE}N2ciFe?XFLt|NpK1f7-uq$1fN3|Gw9ASN9)uU%l;vsQU@ zU5gWoE)G21w5UH~CmE=~wj#7@A<9>9YHw{ELvkFs-`V2}Q{xMbsgb$Ha#a+sd2*#w4F6F5iMc2>O_cPxW^08zL0Ao~D4Zm%;^QPId*VI0c5+^jx3v zJt%3m!l=~{jrESrb+oR(p?k>w7nEA&%>DPsvl^>Yg#a=B;3=c)i1lmBkuUi=o+(~jE!v(j- zo(3So0Yf4v*=rdrACmyNw=EeC7!pBET%iS_IP5m=UK8QK?KB6Jy%es<#t_)*IiLlD z${a`vlrTILqWh6wjrQ5vZ3G8$T$s~Y%3Zc|tr6jXG1~`wtqCixM{z|QFlPHSarqXq zOlaz;gafxw9MJYsxFFEZR>0`MT}V&*Y2|<-s%J%r@t|&;NmQA0;PoU2GF(9&b&X71 zA{;Pg`y_iUgXLqQBR4N1a}F4@eVVvjON|fp*@KZp&Vid~4k&vmT!DWv%nx1DlYYt^ z&}mi2ihR`Qu|;%cIB+AufgBeaP1qN25e^u$eX!SZScp8auV^wHz-*s#4QLaW%8sMk zs?O!+`Ex+O|L@QA|2~cU{}lB9gIym-{{M04|2sQA3jP1LL;wH4_76e-|83C!zkb^X zp#Oh=Isc#k2`^Yf9|%7x6Op6XkO;zF%V9+!q>Guj(oZ^7C zm%;^6@ryu?dQH#vY2|<-YG}oHVZ?0pP#F$9Msgs-g)SR*H@gT2jA=f}Udv!XHi2y} z84eiJe44ld6yw*Oklpz#at=H~b3oZk;fg$uo%`&-T}aRNDRTgWegRT-GNAN|T^A|C zfrkhV0X^HNl>>^XEmcfbw{{2>f z1N!|B{r~Ab-%jiQ)%-tQ|3A_H_5N$1|Nlei|9`c2FZBPv*YimCmr(!zp{{>=0sa5l zdY`!r4s@~ur4ekq5i+1$Zb>Y|x*-wdj}%~`OP*aeE3gcUL+g+TDhqxzak(%Tie|a- zWC>5S-a~kz)Lejtu4UAVGd-ldCtBBfL1j+_9b;@Y2OyD>Wvl;-c%t=fCI##QF3c|C zKD9+C0EHkUkdwo*E0aDmB!b`}H7?t-Z99OdEOW0(aA56y1P3%O2ayTn75Sr|I0e>>Q9jsdIVuQ@v8(wc7*Ja?M)@>x1s2rUY$%H}%_VXQEKn5C_ENZfaG?5| z(3+m?(@FuwQ{O@vbRB0X(|8gTsIAQrrvPR&r??`7OSpbbgagJbpJcCPutG?(b9MG* zIAF~3Y2rd_dVn67YD!0EX$~lR0heFLD~0>y@4zvjC;OB+kSCwjyj3np84esHIFRE) zyfwb?98mB7pY8g2mH+=D-v2uP|7Upr>-_(pp#NXz|Npx8w(Wnl-R=49o_*c_bNA0| z`*7EP#g`es7I&|sNdynsBl86j00*M7P`g4i2Ih8`CVkv8KKafgbF;^1rbeEco1JXT z&yQStUt{h>WA05*gI}0vj4xa}GQWV|Hm0m+4K4gPjn5o8JPmyb{Wa;onqNBl+~PIs zBgv+HZZX$+z{@%Vgjx_3h!;stA<94Y^BN>n3-sT}0k`pY0nT0Puf+D)H~7dg%5KO= zA^nq{dw0wno}D{3t_1!^@aw+Gqm8NKPc}xLf>ythQ<%o2fVmUnPmZZZF#OL6HZfcd z3a6z0nSiEeT}dzQ8@zi%G|hNKE1IJabC`X4W@KUdSOdZiVx-r1NNnZ)*1cHsWS2nsx{L}Jx(p-kQ&Ijpy8aS! zQE_L+$Xp1L!g`flN7pYW7d69$Nv7;s2_hW0Y*TX~D8bgR7kQGc@7d5?p=Dz_GitxI zYkfmw;`otvT$u<5^uQ&918Nx+t{~#OvJP-yH?gP?0|3atvi&-WI=IG@IR^%aMa^-= z=>O+B5D^Ywl22F|GIB0>icdMsnEriH+=EY{YEZjk~mNI|hnfCOAqZ9Pt+JLO%Rn=7zm zZhTqBGeOkRxX^1@=;uYt55HYpE2F3CQDe;F#g(eC6c;RBdOx*Aa$L4&*SYRd+zr*%(JRs_Pwj;2MTTm{4^rz*0hcMdG)!rXnZtTZof5x0Z{^6WrUC%t@?u99t=%RuPS|UWiJhN+@tI zO@Ry-PC0fEN1Ot~>x8PKgBCa#4{e}m>4@2q7&06nR2>Vr;+W4(5f0o%a3D7qtX0u% zRO>jFIiPW&QPv3q1SYCD2JWOdkmK@^Vc|Y1I=}%!)e(D55fyEqcKjk*p=CHgs5%yK zMV{|*9j*umZYMdAnG1pBM7b7LhU53<{63Mg|aSZZ@| zadm(Kgs7tfv08wH_E{VSh)y&8hYSS>QO5$V(B~^$iBRAcf&#g@Pz1*gV@gn$K2*$!}k5Ou^}15u%j1VIeUEaToIWjH{HIu>xb z4(b7z+!W!!O(X|0b3qJ=ElViF0WIU$$^nH-rNaXh5OK|Q{v2q&|Bs^ozmEBTKgIk1 zTX_F}V&{+X{{IHv{~tsD|6}O?Ke+uP=>LDX`!BoqWB%ViZT|irUY{jap{_P9N(A6=@6Xm!dka`i!3|c329Ub(*VNuZr zid>Y(zA{L7qM>!@IvO{u99M`MOXix2IHD&A3goB)aDcnjWGJA89Lp5YxX>r71_o6k zNWFfPqCgXugTy+!C%XfOF(K;+3MjvZHc$uULKS7n2wBGhE)-a@gH0kFXpkJp%;h@J zHf2&%h67s2v6TY~7aC>3%<|m(c0!pV$G{}bfee?AMq{qMI=}%!*3m&HBaDZ*1jHtA z^J6Zm#4%7?CuAK9xbVz~xUqc!4%F5kC!+bexiAxxdpgNbKyHq} zKyEJQMa*lK;egh0Y~_GjMjJYg0p@OVxhcSbz3UHA^+MWS3KxXRxem4i6d*($kquO# zIgBYor3q>}Dxm-&>R7-PU??URmk0$OBq)%Z3-uW6zXA0KlqnB5A66( z-?`rZW&3DV6~S38p6-)?pOV%q>_8Ck~$Q4&t9sK!$wIv!l12Xv{3!F*S;oboEaM zl5fxLHzXhKJvK3I-TYMY|Iz)UH&3e8cJ=wAhwF#q(3^-3jJx6F0e=$mqZ4R=J22Up zbQ*^n4(3kS&9As;{8$5DlYF;ZXJ;1X&@A7Wo44*bh9V#Qkl9D9+Zzk_pSWdwW(J-7 z*Qrmxe)KsQ@7)_2FIH0;@q9oPPny~6sPT{qhjQqaGT!y;Pbd7i@dFREY`j>FU-vOc z!Y-u)?t>J_hGYx0k*(>v&ZKq8)}go?_S8h{MK3Mh}<@FWO}Ai{3894=DyK8t>M_t%twWZUte08FbpgULs$s=UUjvb0xOJNv`s77r=O1&+UJtwmz>t*C(%U zA!DFMI-}LpLsdrMWY?6D@?85znulK-e(us|7u~q_{g-TV$tM5t?g%^A=h8bu&2UQ| z-r}z7+NGJ!+AY1{9pRR_+1YnK`OM5#x*XuKN{Bi-dFC0TCaRfBuuh0N7I0ylZ>c$< zos`4*$0gMJzqak_R{j6$c71B+zwVsu|Hh6_^*sdTzc=*Q-3Re$|6~1ne$VO4Qes_Q zAeL*7`L3$rR&n0Px|9G2XAoUZ)N4nk=$^fXPMY;C*_=$JU&dqJ9P4RqidRO+)e6+&@)Su)#rr9Ut;ethBR?A-Kw8ig2R>qpHn<5N#I-mM~w#}RCtKR7>qWab^yGu9J` zP@aE?%n$v;!364!8{^~l0sk-x#p1@Ke;}N6r^Y8H8<5(X1aEaja-*ov{j=|E%;YhY zB)q6Tlt+Am(>pgYoM)i|0NW|8_`GDerr{QcPxqTC7LZV-DWHYs)S)@VO;d=}C7jmM zPo*?P0T3;pYLZWXq4P6tccLoxvQY!6CkkZ42ST;UjM=Zzu506n3pl>r$pbOW;m zFhm%j2Q;-ZAcN%~o>#oxw_`2|2GmaL2~Cu_Fh3oaY}5=fmr;NMqwDWaZaHPKNl-x9 zOW{I9mt9&f&w=&#nH<17J4;qWMK?P<+b)3-;lR3{&{SH~0ixfa z+m&5||FHYN4E)`$Ki~O<{txYVbKjor-|qQL_aXd;|6zYUUqAh`**&b7Ajf|9(I^^X zmH`HFWR=p!Jxnq|z6Eo<_0v~wWISCTD&5eiRf-qBO?x^v$ zm~DAz>1%38chqhiNk+;!7{ErpuM{t6Gaioui;+@Herttau`%>? zj2o#$O=RKv06ENJc;`Rb#<=|SOE!$jLq!Xk#;Bt&zM|XQ7+ZK#{K93YFW27ULuQ^r zr2)9|K(k8>e}{MYo`gdZWr1H-k2XE1BPKd zrJdDIEbaWm8;FP!YTY?37t^P+98}v;7nu+rq1K(^3M|LPz`xR*#CFUj5#l>dsdX1{ zIdz*YHXoyQm^z z?$d-^cL5hBA+p-xwqj|Ud@@ogA3fvaf_WVn22ByfF(GzX9_yK1APMUtphXFK#bwD~%kwAgyNM)m%`5>kGb z9o_TAJvR(~I?@0C!oYRV|NB?y|9!syRjK~p=X&?1`hVxTuWm#C@3f)c9gNtC^9(}E zMQb@Gq%b$Mj9)VJyGytrl+6}D7w}89)6nlOUr$T0)aYlXwPf6qA>ZAE6<`$|(7zJ5 zWXgA!aM`Hb;@V5vEg|$|$ag0o;X4E0a(y2&gSqzy844Kk-6dQ~{-0|+0SXMCHsrfY zurMu@%}f~%K)$b;}MUG}uzq^DhP^ubCpV0vh82a4+nUrJ)uI0M* zy2Dmzk>P-$-(A8L#}z%%4E^pBEChv1S`Y2KXk|EH=yx}9Iao#~cG+saA{;RFyGytr zBf{op2RLBpcPAj#Ibd6^6WDIV^|uln7&;C8?sA=d2^VxsxHmMBW5AH_E}?RvNyK%x zG88c6yE9yV-EwWH{jfcm2nEb3+XYqT<)Lao#ys;CrL;E5Wpr&jW zaD{$Y>d0;9)D)+{@M&VoHbCMONb=*zT2>*KsNes0bY1o^DgbVP{{K&QKZpu|Yw`a7 z5h?&a-+v9>|3B!v7Zm^_c>jO5=gp`9xO&@%p#OhIxd34Fw5i_>PlRC_7*!Ejo*LES za6NYimch{PPCx>u9a@N$s{9o5)-2(QhE7Aj+c=B?D#hh`6*PySr~~rdWxrjrmW?zJ z(^xW&$WZTY!U`~)Vl!^r;FNbR??`>_LdS1sGT;{ zyGyw6AY)%-L=I!9cb5<2609I{+2gxpIAF+kH*tBE=U}8bd*YwSVQk8GmvCX`U)Dd+ zcEME#IAF+kCm@x#bzwY=eTun9l?(?A`R)=fT(H>hSrHBx^4%p^c5JgFnKB$O7|1vK_0YkpKgbV%u z)r2Js`R*btOnnV13QHJswlyvUmk^eS>Zs`E-e(0UFnZdYvt7c4BCwKhRy)+}z%hV1 z+s4_R6omybjOW3HaI@Po954oLC&p6|LxszI5rbbvjsauPb_o{xNt|k)1ID23Ca%ar z2b5BNVLnqtIA9LiF5yCbn$N{0%>n)Xe@N;7{q3F`2Y(;){|;mRU$pCYlKFpM$NazF z!u$WR-mhT(-)~_4-y_{$!u-F_bbY7mq0;-m^$&}+Glu2|etKvO`)Y_i1V51fuclz3@tS?N7oos2#7!o*R)E2#T#q3` zfp>3cE)V9ykP&wDM1%r*0!6XKBcXs=M&Lpem_H;~oC3qAPY{cWl16}Z0TNOS?0kz1 z2aXeqn&X1rCtEg4gaZqkn#;zdY_7YN;lTWc=5j1w)lRU3IwBmqnf#@Ou) z7xZy`TS?_`uiYXXFvo6}aA6YB#SpDF#%=?oPOL&lw~n?_j~nBW;Q+>N8@y_x7ulKtn z1NJK7D24{3Kjy}e-UwZnEe0U624{Yj*s&Uyk_53KO2^$B=f4Jvqi3$9USv&N7|7(a z^-<-I;xjKN7Zsk!4K3tBy@-A76LCXlUPdlzhRbncc34ut4Go`p>1O6aI-B1CBg288 z+0a}8MyL61ot?}R;lLF%2h=huT&^3kGb|n8z%a3>apKr~3&SRDtSa-!li@&(SkxR> zXh-aOj0gvYHZ@m(>s2LTi8C+R&|IFS;MNar^Be8 z&mY>_u>8jeZ2p_-1|zr|G(4oFy8-HZTm&M{|`0a`{r*Jht7oN zA~-0mK^!Kwa7nh=`6!V^Fq$xekpe0-OF7&~n!qBUR>BZZY~q4eD=KF3h-L0s5kKS+ zekiq~224k+N%rRhSCpK|m?jMq5c>XYPiE!Y0 znghyS3KvGcvRiXHzyU3#SmpqvCIHg4P&0=~y#P_fcGh4DrM!E(fypF7ln+(_DlD*H9eL_ENZPJ77O6I=}%frP#^=MO52T+IGlr zF&&5u2S!N_WVk%YnsD#8BIkf1o|x>l43-NLRC5<`Ut+D`^hE zUI{KFbuWU7p)*=avBUv8&po3=nH_JH;lR}<2MV~L4bF}=oj(Wk`~Pj3{-4VKA0GJg zf$MjDGS&Zk^^RZZ`w$KnGkLutmpZJkgyb2Qpk3iV<>;z4P}(C>kR4 z5)0-+X-+ot@IppN;mHWS#1vOxVH5y*vMWgv+)i^qEu+E}U;+U5me2tXX!XQ02NJaj zjOsvPlkKx3t}-0Bjo?6zD?)1y*LWfvAoLQQ92Qiw*%1JVb71HU^b&EJ7ls$(Myhdn zR^<46T>_B{=`9oma#)^?h8*Ux*#Qb@@x)dND4x0&%05w#$^|Jyf!C81$Z&U+(dIg*-PQV=3>{{igTcL z2I`5%YamgZz^IN8!eAA>$!;XpG>2t-eC0TSQ=oRnkV}NOZNh?fI=i4%h5?3LVg?HX zF~ZnYccCg65K|0D%$4A>p@G4DJc%=4_>2}$ES~~-LL8+g?7W-6DWKo~ss7*o!C%Gu z{}A5)*WvyDW9a|=@6iAMmA)Th0^lD*|NocJ|9^M)AL9K_>HnR1f?9^8Xa!OvbyUV; zrZaPUbYK~D7e;v*lHw3ZYhbvYXS>|+vcNLnk#UspL^&>WNU=361U%938A2}6$zVZ^ z$_d$&mvKdqOEeB+jSF#!x{sbp?p_l(jQ5^t^s8g8T)ddtOW|@ocFw;86wvC4WeOxJ z4j9c5W7rZT?U+23p}-`ura3M(FM;dEMJPb%B|15*7n8e?p#Y(mnBod79C@)Db3K^= z1xC+2P8|c83@8es{I%d-#x;|KFaDDVhP0c9=)%RxIImzo`*fEG_IQy^*o z$7qgNX|h+-Rea_lf&w|NAVkq2bFYa|fY3{Ha#+64ZylAOKQp>i-|={tNW~f2!;6H|zheoka^q>+{UD$IwaR zU^1@_fhG2{QDQ~T_7E#lz=a-T_Vr47MHYw8YT?APQ$hg?b~Hj1^$;V+xR)&vr*w9k zxu{N#O9ke+cV>x$`79xpSb&A$_Uv|48Lvc$C8oF{3yP$;UvZaFf&*vXM{uBk%f|pr zE-rZvoYB&WtsGFTc%fBCtyILWfD_@snfH<$$Z*A8o$Wv*IB*7HiLI@8Sknv^@&)YS zGBO+>)Dlx%0hSS^&+HRWgagme98mTGuAq*dj*H-drnM8x9Do>ry4e6E%EsBX05TkS zn&3c=%dMkfjd=|e;Q*nQ=;W{vqG0be84eI?i7776LJ=6I6mY|uA{NKav;NHBhb%%a)@w%P)o#KOJSk#8QQ)~YRYhc zP)kg4ITo@a4!_hygaflQ2b8@OF7$!1)g?Q?0j-@_<^b}l0BKvuz+rS;H5@oba3IGO zICeEDOF}IXDY(pB>h)9&2MD!9g$uDJl^#dL)#cv1&z}SO{r{k<|5xw-jr9K>>-{S9 z|38BK|HIJ#zXARK|Je0lUhUudJG^0uCJYxP8G#aUaZt_WL*s1d#BSP$hBTh5~lmtjJ+}_Da(c<+w1P z-DfKqNgT#!3BAMuER~|=-VsC&`Q45sO_b2p;DYZZL$L# z(CUe04nPh7AR`Of|8)$4W;!+*4qQQSAjgHCcDC@d00(Mkp_ka2F>rHOn6Xq11qivs z6jo@VUJ#v(+*K4g28JjKXmcrCUW{qp%-z)i3TW}fRthMd29}M^iHe$x&t6VaAj1{L zkWXY9Pk;i$X9>AP?6nM55c1^`WsU(tE-}UBTaa{6$0pNUA{-c`IiT#NaCs07;f9ww zzyU3uSmprK007dnY^1g^4xMQ{nPXsp;6RQGAsu#Yp9lvCxkTjMGIIs$Y-gHFh699L zVv5VPkYo>hc8FDk1N{^Sw7nEAbV9Pr)5JMYI}7nd<80SSUI!pu3~6GnsSE}BND3(b zp=xvBrarVnvg1g&D}tA zK-nv_u(hI#;vCTGi3JV>BQC@M05SkbH^fML=AA?49Js!f10`G-w8vJo6X5`%msl{D z4fPQ2u_?m=LN77J~8Ec6mv`&)JhX23|=}AjhR{LR|lG{>MPG{{QHnFGBzS z)2RQS8u&Bl|9>3y|Bv_o3H1Lziu(Vz_x@q;NIL)TEcE|hX#U?>-H}mP1KeYhqZpbb z@RJyi%Kceo*5ECzYf!?4f|V+=WW#5nl~^v{Ey9X|I%-3hUR&lUHpCK}xNOS{k?&{o zUBnOFWB8#GE??adnD**`AJWo^tsH=}ger-LHwK2EGeOF5;4YE_8LkL3#<*96^Y=qI ziVd;EWKA_FLt&jI?HDW7gZzm{_HFdnsI)#>wt_=>P|yoM@cwNzt4a0HlKw7;Yv+<`}qzu3%rdnsJlT|W2f*Z~e` z>BRCmkd!rHeu(EpekIyxNW0xca3IG81x&X7zX%5)mT0()99DqhH13+paKKPY1P3%O z*Mi5eL-r&S5e|$|9LR9Fb!exvm$3sJ(Bg@$98g468F8Eh9yb#ra1QAAf2#j?1M2^O zvire;{@>@*{QteZpG)=s?t=dR)zJU{$F4g{RsV~7&pv5rpJ97I_$e5JpbTW60(M@p z1FN8$Fv_a{!60CCEFaQm5j&wRunO=*PY|9c#}%Wfl1q6JPh_YiCQF)`>&1-Llkr4` zT4EEIjb%jF7Q3`w#1kE%Jds{Tg$oHNwukHh2efu#nFH$Dr{q$6^h(6++8h}UGzbpl zxcmsBj?62T00(MkA(vP#bHiTCVR=w5W}=dzfT5PygoSysxK#10okb`xK~X@POW}ea zW9!^@fC5@Ov6TW?RzI?Q7s}`C9zhujJWf&|!-Z94w|WXtVEC+|mYD3d43>*&E8Npb zh69FLViQ+rL6FVC052vtML6&%%>iXEg)4xt7&lwVQ^!xweuFFjQzaQ_M=>JB)zvH)||NnUJ z*LvOUzuEKso=3aC(tU8-uXla7>*3P--}u8~?VQnwfn|Xx72ZRxgDU1VX!*o40}?5tAOc9wN0|o`q{ty~_8Ec!IWA;F+3#Bs20$>; zU_cJbLA4IkS`rMXoi+3laR_Kwp@r6G8!O4gC2$DrJ$r)6*W|cRK*YT@cYpy}Jh7Dl zilzusKmd@xrZNmzAQ_P1f)X-Y-%5Z1!)Fb-#AK^wu+-FT?vW`&0Yfgai3>pr%t3~D z{Dr5$=-GEsrvS!CVS6cD>W0B}86Dt&7Edg5K<8CG3&TS(;E`)Q84k=69LRAc6Ns6M zD#8InE)jbzhZSPpD%ai0aKMmDY~oVsamYBbUB>wz1I_op(*LWc_5Vu$|5H2vZRceF zH~YgKpXmG7zKPy%^m^Mr*7L)j$GX3Y_y0$_zW0Lf|KW2+BStvlpe!R)8Yv;>MIzV8 z+#ezfan5MOXyS6MFhKs3{r*4yg;*Rt_X@%prS?*|JlA7yTzO}7P75fOoDo2RU{Ke< zXfKyvb1CAC&Ru0XqXI6Jb+CslOE{x*hGb&0*D`aVF}sqiLG7F&nb^dIdAzv3^J8El z9C$g+0c9_R3qiw+;8}J~3n-R307U@A<}e2rg~u`b`6I)Dml7PvabX@HyG~n#1BPTG z_F4`LcV(X|=p}Iu44s2yVryg~#T8qji{Lyrj3YvUVTuCUTnZL$3e{)MYUd!J*!t9l z?Z8tzvO*_DHzV_Cmterqxgl~%Ggw$rZoEW<0ES>C)z2nV2+Xp~#! z=JL^_z};&C9MJFoLpuMj>;D^u{@)M#-U0ppz1x2Y`u~qW|6kYtA2L$@`3I2vA2V0M zL1|5>gh-J1_ak<{l*lR&T^I#eJ|+fNunI62p_iEAa;*p@g9u7g;fW%`6Xm#2A{DT^ zRyyE`w0dI66FE?uz+Q7KG{8ZqfP1{ic%p#dK#t49K>JEO5uuk@Fc%aPs}bWpN9ZM{ zxNIvzZJAd|DdRbp;(%U8g$s{rcHp)H9MI~CtsH>A#cYm9sT8n#;AA*plN`u!K|+*m zJb`ndb`E-pt@n5AwG0*-EV=h&fx{Tb03nx{!iuqq_KWCb6uFQdpedlt1za{t8QEIT z9iV^~Pb^aaasU7s0VLvbKKD5*LxCFz3goz4*JGdU0u&fNXUHYum7T*<<9xWMrVIxR zxx^+eL?uxAjEVMDT!pTqIH2vNaCvAsth}kCb`Ii+hF^o)1UP`WL>#;9{J#tZUQJRU zgB3YJB|RPI47J2$t7Wi41hhoj`Sg1H3x{h!SLGxh(*`~MXE|Gy0V|3`cOsG$FM z^$XAcJEvPR%4ac(Fz`PNmsR5q*dcG3MYxYxgbWutMbK!^-N7PfF`<{}NJu1_Y55v& zJdaH{!gwSSB7l$Q-tXLd&+;9GTw)!Uu3;`G0=Lv44hshksyQI+C2;AOT|~844jh1Z zV&*J{7yu%3f#&N-{gA~IcsOuC!GR`Rx?xit2nz=kdWl8?OSCdl_Zkle6ncquTzLLN zG{+{pG8PWpsp5dNm%!yf$dPI#tgf`BNwjERK<3b{li-C}b=p@~dQ9u6qv66?5Z z%|peUM=s=J;lPb54oG_mT$r0n&NZ_i0~6<@cw#FD1W`po95s++4IKs!$oKzUh24+u z`YQDQrT*WSp#T30^#32k`+pDK|34nQ7w`Y8q5uDbzW4Wjq4!F>|Nl?nt|Z-GK=t~f zY7wFuAIQn*cvH~F8|1JEvIir*2vHFR1U~|tc_z8yjbRa1$Il&Cyt5NrHcE<#haQU` zQivrQ2`Z#x$>o$hen=sfSjS~*fe$j7)H?!;A6igT02GJbN8mdssH9dD=Rg4|otUOT z)cTLn9D$FQ4_Wt_g962KM-^vr0~Z<>F~#& zmn;~{!htyz2c*3OE**^}R9BV*2c&jlD+fSSjOIXw(L?njaj)@kU`EM-7?j5qm9$WqCSTCX0sy3bn*KE?*05WIM@MDi#hrt>%ERm%xP-6uAmJ2M$Q>#54!c z{SS~HKpKWm9{{aoNDMht zbFpyXaTN!oy#y}9(#cAuIdA~liJ9;;+W)};M??8Kx~-^(6%PjB7pppO2>i@k4 z{l9MwSv!6U`Tq|L{OQ2;{r{rxhkcLtex>)lJ)gn*|KXl3=Gi&i(%KHik~HChnhaTshkHp@C)T8JV(Mr%qe>B|k{B45Vv#enEN*FSAnTTz zaG_|Hd~N1%OKS?L#3on{YE7u&0G6Y9O(B(7$AwwEy64;EYcmT6dQ}{d+e_ebEc+4= zy;+mWiLD%f@5C?>F$9V(oWR3@f|3ISp8Mz&V9hBKBGg3o;XASS%bkr_f5Q z<1#eehk_S*)&vI!&Ye+nK-f#*f<8Mr;>v#xoP%^?>-E%(lmHxEgEqAfu~p*zfrSI- zPAfQ&;Ih#;OO1)Ka6qA!*kmqLPw3QwD-I5fpMzRrYZ0Bqg?THwg<%s^SS%EHK}CUR z6(d*%G+?N^D+dZl?Zosk5a~?Vz6No7Ox~kzH699_Qc?i^Bf^Ez31kf^778fj60y}{ zSQxX{rD(N6F0qcw!!nBA9O|jb!ht0<2ZX(V3o5WWS(h*e4oLCD6bF#*LZlAUM0C6d z=wVJC4m_9TKoc$=`puw3{WtWK_#GJYt93*)HBy?Fe7Xie%SHu<3l zB&3XWTZ5FnZh6!UEsGyoyQrEsCOjQqyn@Iz}ErNk60%Y#S|@%GNcfs9gO1DB5$$>g9ClKRTiMUwK0Z1jbH<#mE(C;R~;yDMPl?Ys^ z-ac?Zguns~ytM4@aNw779QuF++g_7Nlv&vIIO7P{<|LSJBf93!V04Sre9HV5f=#(p~}=R7}b8 zH0%_ZSd-$3>8p@T@wxyB({<@8G@|5y@E^csLT$1;SxSXmVmiKx#`-Ml72Y>cgr~tUJbs6x?h;9i6X5d$_ryM+y6i;mOM8F7l z=?Pg9+klWaSuvRBH1-q}NN}ONtUDCQ$R(!Cg+3&*KnjB=g2%|nB{pzj8n0`j)}BgD z77ExZ3dm&?xD1`ViaAg~YA3c*0B;`yqh>MF1OaBETjQaCsiZ)R%SLG)6&K5eG^3Un zZM6n0%ODFZ@lYV6me{~$Xn2sJRhD{5V4%R{+Vz|kiarbmt4)qLV=80V#->&fw%`8TE+;Mkf)_qBCu0nVoho%rjG%Xfgv>KYv={=kkBSBDh~(tDLD}1LgP4j zv$1dhYKiH%M6}mpSm^&J5AxyRKt?XHfy>h{lmHS%CXw{r`j4dH+wW$)=3-GC-Th6T&186zw47+7(xHM6nDBE*Ih&R2O;S%YcfB zj9?-tpTKe~-=sE7@VKIkU}6K8gJslBdL;+Tar~gl6-j#m7qobtOJGXYnv_p$%S1sLHN(O}fs9~cwAEr*22y2Ib8%2$d<}w$>H6IUE)2Rc zkn^WHG8P6LQZqo9OTe;F%0$JL!-Z6;C#D$yX&!(yG5g#{(HnJ5c_?sDL4gDpE`AOb z7Xt-~YtT!~JYf@97%WMBV{kB_xR#Mi1Op^217orwM@=sHXQ9B|DhedHY%yb)c*n?r z0#ZD&l>&mNI>vVghHFzV96S`bQ%Qjsml*y>jWw}Q;0`4PVpte9K}E$wfs9;YL;=9U zd=*GK*sej{YAh7EO-+G1E_8j-wK;O2fD}(mQy{9E!}t(rbfQDEI~2G@L4gDpa@gdV zYz!2bSj)&IVy`8z3<$+j_ZkleGIEIxT%Lxskr9yZ+$LOy;EeTNVz?t2iL-C2*mViTvbe=Rk2SRJ<}o8e`f*Tp|eQw|O24%qb}l!}3LO zJ&~F$6v*f$Mq4e0I_TwcOXfr&M# zo|rxcg!-QtAmX6X1QIL6y~e|VrxhGXa3O3?R?%hQKt?YSdo6(_M02R8CdV-_z6QO- zOmsTJg%K;*XC}G%k>wP4QbmCTmIvt)>T@Rt3P|z9RtkWprVraeTY}tb!b5?_l@y3^ zp^1Zh?Pj4sMlLa;Knx2a@8mjL4hj_4GIEIxT%IO|z+lo4(UY-o;1M+kguMhV6tt4d zOSm~8-v3t=9x3d8X4iLj-7xkCJO5$l{OF&L`Xm2p`0s{ihrT^z@Az%x|DPWC`hed5 zn|(j(d!qNNz59DUi!a&g<7}`#JS<*ls|U`8joEQt$xp2C4Z)N$;%F5#0{?dbCd8x7(eWuj-)N?E0((;k&!gT4_^76^0>Fck5 zKAc$!tEU!bLv6miSgtN>%crhCWnGVdnnM23K0SHIsc>=mz})2Y=}GZVRPE|#_D>$J ztW;;i+bWC8;S0-?)06j|m|4(nIT`)`oo2ECu;@ry0G(1}+1W8p}Db_JWcFF)mb31YI}>ifa%|%v2C1=F&a#C^Q}lWb_gv3cy;JxZ?WA(UL{k zSSYZfra+9##4sf4Eh7gCNcF_@F(5OmzUF!^qMY3+pIA~*Ai?E8s)HI5^S;qP933C|(C}Xk z9~}BOL%VjI8vNeiT>~S1f7Z9J_tl=C^~~T8Ua}u}F(?Gr3sMwE)+SiUHIWAZu^biaQev%1mk2Kgxr_$pC8Gn7oSwdL zo~%x;U!gcEns8yxE?Mt{`=~hUuU|ead`xTD4dz2{1SBr;I*p&rxklYA3u>m@D(Z%i zo{Wo$b!fKZQ9Pq`WoJvF!vZL^T&+ZEmBSTGj(1nU2C-*Hd`H+>qAz8dLd@vfE251*KI+U`)+{IxdmvCvPwI3rMiOQ+bHSc|T0p_8OD_@;yWy2bwqA=@7;3 zZB%)Ci;ZU?+7(Yt%-41p9BFJX+u7?Qa^u~sPB^0&(y*O+I3ic$>Dy_~iTD4`!Y7;R z|40AVh%-F7<8yt3J>SHCxQHLPfnTR|9wr{}BJ*wgXg7~zH@U9i_Pc?@c>A_C9ww7H z7sY#Qzqj8fcCYV^4%ZuAy{5TZ1sf07BnxxPF|aa~4?G-}tFy;Yp0c!Ze0jQbx*GlB z%;`z_i@5efRFXV&EId>>wGiGuqa8wZ%kd@r3%`}$L4Je%rAFP!n}7P)n>KlKpVX_c z*x7&zEoI5qZIx=M-LZIdVKHo`r~FK#tSc%6GaP+JFVDXz8 z=kUg}O>?gC73~VaB>S5R!S1h|TsdA&iojkPSbw*4Ngo?)aY-lyLj?>mMH-nxWXJ+1^FM>2-Hmmo)i} zlTFk33(5k;i)NCS%=K#{P1GAcwvaW6iP6@G{x)YMCGcOq)3W`db?i+p;zk}@-xGP1 zn_jw7wQA_g!a(BYK#*KE(nfA?kxOqIBV(u-Q-+id>Z>qlTjX;Ba?3JLz)mryEWu@2 zP~E0xGFbw4B}II*VJ;Ne;_xFTSa||=axhssU?*`|nr{FYIgrQ_u)9hXuxsGb(V5Wo z`YQ4M-(C2(&F}v&jhr36V`yyfF9tr-|483Edj2c^bC*BPTI;@yjI~5}EC{JhTNn?9 zH)mWxlxtvMTLpIz6Y!KVf!J(1WUir+BsrU_-AqyDXl$p*7>ws`VLaS&Y#$})7bBu5 zw1uthWjue~k;c0#9gdYd59K&6$~I%spImny=2Gh3HrsgimKzVPxdAjTE&^+D(Qvof z#tYW1t&L}5G*LXTA=iy(c#x9aUaYm(O=&#kF^iT1yc-bkxClFMyPdPfmYdEAJTJI7 zM+NdDp1aN5o!-uP(C{)eG4uj+LNCIm+m>0M>tDxs=#-0RhUV(-wqMowF`}9J&}Mo6D@KMi!9qhCxxkv|{jV4qQpe?JX#O@4${{Wz%llt7GNcI? z2EU}Dq@8Rp?t&fh{vR()iTeLnb{-!6mErFV{r-+;2d#lm_5Y;*1ASlbyT11mJwNJs zvhX$hArJ=o#2Lca7%n14{|0E{aZPH69S>m?0>wsx3z}x+2oM8d#@FxOQ8;+nSh~V3 zfn~+_(2l(e4_%}naXMTERET;88j1k}lUxqSLYF&L;j#pmtD|L}NMmlgfB}#v&M+X- z8pYsWKQMIqC|e!|DD;WpYeXnp;KINdvPwMz118pQ+sa&MFm=c^i#!~Vio|ISNOO4_ zLKD74R{mk(z%42cB)EjudUIl}8%M@jd;M42zY@^X^3t&70b6ly$3DC~!nY0ckD)3*rtsm6|zFKrwI_wi7(HHC%%{ z2s9Io$3p?dz~LrbP_S{RdVeewcu+}!y1DEi@X33Pg962Mj2Ot31HxXwg(oZoX^Gn_2M#DE4kK+SjsetnqWTRr+C-2%9Kgik%%Uc^Fg7=CzdQKaV0qx117`of>?`AszWMQ{1zy(z zX9w0l814R>UK(v~HuIs{8$D254in@8O+kS z@Mt*t1m~R@bfAUhvOZ&Nf<8+ciKxRCzXBOj=o^K^Wpw zjlNryT0qJ;Q)&UdRD|k~^+Tu*q6|d0&T~2|w2X}em+x5QD;LWRb!AI);pIryr{p=E zrFwDtbe87wk-SAxwL7QtlInC$aN%?&H(7F@&ftJT%NTnN*J#7j3`{om$l9?S92j3$ zXc;%*dIKXwStxK)NrBi}D7e(A7eO8h$f?7v6cD&v4GQBrddY~MjOBv5sHQ-S3%QWE zMXPHU)YalTW)Qb3+8fY~hw&Uu_XEeEJ|sC9P+V7xAZ~)?qdSoLc4VQzvkD3%)x=8_yAXZR7@YK?D+_%V4VIB%7 zCJ=)HF)Ra9VX5wxg#z2!B_@#y>lG+5-<)c@7^QjFNUc4H_a{+ZQb6(SosAU8EIONA);-2DxOTcIpWu~jgOw7M)T)M6E~QTjH- z_&e;>ijuyzhfH9-P`=41$xnUYo>FDznQ(S_3G{`(!xYi2{as`_OI2+RhBeFvLbJNyHaB13>{#S_yRmmTTV`8c4u!s&qZ!=2WVtm9!Q8?I+ zb1KekZ9E5ah2u9-u9c44vS0ec?TiPNZCAtKN8O08hq)SW`}IqMwx_o=o?*MD9cSlr zHQx5yd7mh*%W;c0yn0>BS%7Phuj%N*aAVd+Pt9Le(Zn~!j++%`-xNFkWfMDYpPjq} zMM1^;|MJ3ph278X`u48d#{S*d81nyrG3t+eeq?xf7WsdB$M5VI7<_u*8v}a(=lXkk z|3l9w3;z>ep#E4bZYZQHO*}U7&_{DQDnxX0R^`H@9IKNXB}JUC373cIfYf9ncedxO zy>YcXU(@nS5~k%sKAc%XBxPYX)aJ{JcqxiR`zh;s{1e>}0Y``E#WUXO#D;2YCQ1{) zSoG={x^HzS&Ay=;o7upHl$k+ph3AMaZ>Yv*Ca^Fxo9y5?qRYh%)!0ml3yKChB!dE~ zgJW^L%CVUVF2jI!D>3)U?Rdd~%Ml-G6>15hQ_IE7Q52HL?xW)@5KD$-I%SaH z!l(hVR0|6SRKp$Dpc?ilaUsiqs#!Y@b9KCoEF73nTt18jE{tt+;vjy< zxN_it9Q~LUD?&t0rf57287CJ{@Ni&U!GQ!929=pq$Hu||)v(6|7KYqmFbJmZ>Uzg( z%EJNGu*U{2+cbRgvB|=L-6{?=aG|Tck;v-UUhEvWVndF8Tzau3L?bz1crKLpn-(=m zPbF!}2gBKwY8ByfSS`-MRVn#En2l-0l>lHFVhqcU1OCAMcK2<);yt5fVHzZN(qH%7PIV+Kn4;-o^f$5cq- z+)F)&qTTVr$%Sf^R6T^d{?V|*rIdM(%ohXY=*CF2jNx-iYvFl}iSVzpj50^}NO^ho z*j(i(#aQXDoIE4m|8FncSlE4R*LQbK@BGE+zaRPN@LfZn9~#+F9sDnYw+;Nxz+nGk z-+%7Ax%YFuy*eqI3d_<-~Bdv=&Mr$OkOXiD65>@_f^VtXm7!iN1#tU226L%ZXtr*j&ej zH$CPF*dDcNlKsS(*f5ogD#RzzMv1~K+i5;AI@xO+6ew;O%0;c?LTjw)HhY;)aItVe z-^yIBZ8h@Y9p3_YIBK=n^tKhUwga^QfJD^4E+ zdUOn6(gQ>>gPr=VO&4IJQhI0BYLeS{)vP{iFcdQv}O5_^4=c+5Xcp+#Q zZ*QCUy)+&k_!xLnKSpyk9#>t#MK#{L+ZYdrglR%m6qWV?k}E*Du2V(>m<=3VMd+t{Oc{Ux|;vn!1`8;V(za-T)k zvP}9g0ESavy#L=(xI3-?_vO)jBd-qsZ1`|P|L^{R+Q2pa|D^9nefRXP^}e&`9~b^F zzNqN~!IuXz$Fwgh%@GVRkVk}~l1CQP;6A3YXYX&_vk^$J9sQJ;(c{?UgbL4dO)8Nz zT~$-KT*&cI?>H=1RVhT$bX85kaxC4X!eZF8s4|gCBr0l8! zTn*zspeaMW+ULN5gRLC!N~RSN)zKVWv>Jo?I(}2~a6k?hXWnT)% zz@1782%bV>8Ce1|Rf^lmQ1?sqL45T7YSYn}o94^vIff$ylTiu!Bu_336 zsLX{YH)4X<}4JrNkxGemJy)Z)}oe2 zWzcv7`Q=6fjTZktqt-kg@ppsTbav;u4yc=-|=4Kxd{br z%>{)aI1HPt&B?+6U(ErrjKF1Emg!Qr7dHoF{XgFS3%mYu*Yw!$@BI1BaP&K)?#S;B zmxr$1@sYv5j2zV++gg2o_?LzmN z`gi5o8<5UO-;x`!p!5uZV2`Yd#j-b!X7)x3mu}GIce(clq9qw6jR+(*u!#)3jYwK7 zT-Pz-dHf@kG!%;(<3d!z>q>HauGK%L%w>2WJn;d`!vQ(-qUoC4z=awG3s)EN3zmfg zGinZqWfZs|j7Wa)=fHu?1PmB2s&O(=86ZS&$rl+O4rC@^q;TN{OFmp!?g&pSIFOhN zGk8)Jl%2e+c{m_vUZgo7aY5?YH1OEzLbPOZ<0%yf8n|##cFA=*+#EoD_Q`CDG1_e= zsOoDDq)z;J-b$`%vTd2%equ}GVK%V?0YG^!}(tF3Z6%bmCFZ;(g`(kn|(0os4LLz1y{IuRA2ojsEs&16$-)6SKqSq9 z1eOnZmu>{=iW_o*h{{~ZkE1~v)3Avy@_y2pxK3jkP?~U^RGeh4(4B(#* z{sjI1U$5u?pXmK+H2?1hg~yuG|Jh%z7B`_%mU*N(!WUVPJMj?#bf|w{hV4<@giKjl zOA|Ml1eT3R1#uNvJmjX(DZ6Yey*nf<4-%gqqHEN*uCv2kWAb75W( zy>5$z0vjK0Yc2>qJHD50jOyg+$UuR~jnk@2f?P&{%QHN3qAUjvd`P*d!rMY$*)bew zadd?PA5<=Cj7zs|a@vfA121f4E+pD5ryG}q@eRzpNKdqjT$wNzl%8!1=KygPStxKy zO@SB|dWy*{3pr3AGXMj&iwaLrfG@OYT=JUo90QpF7%5y(ONeXRFYY~gNkM_cT!v}r z)V;=W42*AJVT8YR{Cl(GI zS93tvOW<;m5~SKI2M%N=U|_E`649PvA@SZ74rC@^q;QF$@rx-ch&}LRrEQQNJFAbI9{BCG7BPkYvgs-%rr%_f56;Xp=GEQQN=4f1oAg##H$u@o%N!Jr1Bxp>Zj zjHFltmxX0CZD_<0aj|e9D=C)3rK635dYtFL0Vye#PDi=oE^nKdVv2@CvKSE$2kL5K zNt;e&ycid5^5mjf77jp5EECI5%!N~ctVYYjflUif~zmLymgozyUEXEW4=iw^2GAy6)t|oq+@L z{eK|t|No7h|FH9s(QNo3+6*UFLz6`}p zDGiu%MF5FqfZ90(f{`a9US$|o0mTwh8!(mrZ-RxG6*>LSavDo%z;@O$(WO9LQXWra zWj#^dTpko}K&I~8NKG{b#O@Nf95nq<4?1=VOl(SNz|^AZP-F*448U@9C>C~y15z6> z#eoEu9XM7O0;HfOqyaMpLk)A;z7r1+yvV^hElYvAwH)+)A~;8WTeBR-Qwj<+;ewDp z8CMPzkjj9q6c9YMHRS#=Erj~g<~atWG+-+QVqEqcXf|Ov2Bb1zJ9A-4$+84I$G~+; z4hVBu8szqLhb&LS!hwBi4%Bg>=MaMb#9KxV9N4S4kV23h#)E1cO6zTMXCw~?-mO^F z1Q$x{$qs~t1Mk|>T&9KB4{=R-I3QKn(k?@q3xSEiMfoGum9cPOkBS2cE*nLLmq1`5 zBg%##80N8q0|-n&xfYQL;-YeJV0;r()G{?N2`=9tA5Sb4C@CorTgyYhm6~_sp}^Hj zj{#gZWE_0>TZ8IuStxLongTH{R3(#RncT;KeE&bH>i>TY3IN~6{J-C>*Z=GNzX|<6 zQUAZc=Qj%9FFcxh|F`@G*X9SZi-IYD1}35enuRfdP-!Dli)B&nS1d|`3w*~I4I(b? zMS<}k2iW@NFi^t+~;Fsk5dD7ILBFBrS_yl4^jd>uD1#^!AdQ z1bO_@JqilQRrDYOh2k=DB@zn-4yq`S;DTC;M?Lk}DKN1q)c{);Rrn8Avrq_4S0m@) zfRqDl zF98lnIl%OyLL30bvtc~lH^>(o9u7!7z%&OMxKPN5_!IFAW#GX0CgcDQwxn2$1QtCz z#lwJG6%3H5Ea>c^{GVKK#lnDFR18RP85sL>3B;R2aNtHY2Vz|CV`O2| z9Bx8V4KU3CM5K!OXUOeGqNVnKXGkVmxB+oJ^+AzR(0ZZ2)uZ%GTR9q~sXhG$Q z5?mI_?Wu4699)r9Q%rLUDh2poprJ+qfr;+8qN56KCAd8FOHt1~h70M$rb0ha*s5+W z*RaX4c^(cZ^b_m2e9bl?fKHAtGjQOV%{hhGL=!ILw5in0fdW!YF--wPnz5#yh6JtY zlTSUK(|ATffdrRl>9NRI$8`!U6i~<~iU4@sT(04hvy40xP{=3Nak*GV+!4sl;w%(+ zT15eAFW}Mxms}~E0|lg(Vk-qArUIj*>tx&UP~a&g1!7!y{iFs_cOoFdLV+hESnbS( zYF_f=hlc`Bv^5t369L9IlPgjgC@{JCxauZ^(Ft%F0+$e*pk6X^;D8hWOfM?r000t! z39+Q)R%jj$NCm+3qb$LNp$_C1Eei*v0AM?FIby^k@eRwtf$`0Uvx#O@US{-ytp==;apI?&KfgX(80omjR+4Vr(g zjVnfi3yP5B&IE=nQLI7pFB2hYz`{%=^5_LYcju9LrVhc{@sFZ=TuGc!)1yT0#Bp zm#gu%qg3{$luvARzBu==?;I07aIxt+4gjz?-_6rXcM{{WF=UDAP8gi;#HK}k`Ck(Gx<*lP5>lE zo9aT6ni>b@;lL>c2NGN!#E_}a9|jH-H=&rAxqu|F&^u1uY8)4kw{Ai(5p^8t8@z;t z38ILwQa2h40hUw*NKomfPWEFt5CGzd3IYh0iovFi;gZXmcnI*Ek^nI-gyzWEEd~Ni zY%25;4X7v7&4r)@Id8%u7@^Z$3o{r^J$|KZUuLI3X+=>I)9^vBTu`y}-L z?j6{G{@<@d|L^_1Ux5DKN1^|BXA%Nfovgi6u`|r57{t~!7kPDz^XmHbpeFVIQab}6 zv3(&F;X;qfAj^<)?2KYf3IL`Kye3>|F(yy=xbUrkaE{dfYiBOc^2oaSEZ(tpMfNbM zo6E;CqRF0ob?3Mt)Gk+ZKx{AIG6R<$P3FHL)TI7jYEccevje0DkamCv8IhEF35*IM9R(L$b+X z?i@HE_5WHIRS?yI@kA(|x~M!HkOF|M9H`?$^@~fMN6m5$Nd3Py=F&Y>?{?#zSgh?< zazL2N)^N*%C|g%JuuIK>7?%fbPv|JTl3I(iYP$0iR429z8S=F&CC z!C_8rOJ?CfznTMeTu{x$Osg()K)nC2D15YC|Nl2p|NmQx{{PS7OV~cn?yR{{y~|B6 zT?xXWLcp9d{E}%+V`c#A%5^kT+0D-4a9FO+9$Q#ETAD7MUW$J6P*^>2=JaIpo5|_P zE@|@HCZECA+%mho zP+2@Mhd*x2nKLtU^UhR&G44}#Ih>pF=e?OJk$9e&pYi7%Z@%#r_m)qDo&1RU&pcE) zwGfu}2}IXTp25RgssW~mW=0L#5VU~j6md4<#^LcxQVuZXmzr>4P64^KhQ%*QHNZCJ zLN1ps=gs4n%&cFko6Far7wp>PCP5azWGMVn6D|`&l`nxbx#L=!bB2iVSBNY9d$jCeRO)z(~yQ^1$vkw$c73>>(owqH?U zSzkthOQbT0uyVMbN;SarnnoSkHo_Dbn+=V2B1n#7V7vx7K%|Y+$3O#@AK+d?gvD|S zNHM@R*23&Fi#&9QhXMN(43O5cHP?e2CRxORfdP}Xy{c0n!DZo{O}%8~KmjQR*t)2~ z+gh57S%3&W5%(Gg1&XzIDHk=y<>~02AmU=-fD{94XD(zI$x&e*4(w@bE)&bB3&Cch zxmY+bspf!KM&N?EJaVl`4jh0OU~5fBJ+*28q$stgW=428Amsql$AC=v3S1ayPnMBl z;eb>FOmiTC1xZJ8PX`YNu2OIy$&ibIVANapg>yi>|1T@NTG;jc*bSq<7+oCs>yd@w z?+)KM^wpu8cC7E%H~5bRelSq(|Kt9v`aahC^WKMhzTC49e>}erl%GpAxAeA(hF|J% z`6yzgKYm%Zl@xPJZ>t0r#B#`wIgV{LUOT9`j7eOGVWNkCT)}kVy9)In?^k(N2@5ef z-_%7EMHdn#9akf>d)9%P)N)%Wr^8O@1BSAS10e`KRY-7adG^_()ym4^TZ!1*$*)Dg=WR8q z-c~uS24Vz|%Wblj3drr@@$v`5IV|4c*<<0{3PM^GEQ&7&uq$d(zHRBnHo&}eMp6ar z!Ekn^T15=*jY3m?1Av>XsYKimHmt9oi<@;y8ApXKS(69uSy&FWJ6<@sP%Vq7-=Xqi z`Dmv`Z1crHIa<3T^84X)N)y6uq=k@GAmx5}q`W+PY_4*YvaIQ^1e~2UXt&|N;F@=RD>ro(A`DezodyDjn*XI6(*fGl*Ar|0#m5G9|xU-A;WP5#X( z;M#u|;2fz58Mi%SPn=M}#8_?5jzvZfEY4S|C!#%6!beQU(n-XbMbLTy5$Niv^6}}C zuEWtFbhL%5NI(htM1BKk`f9gCXb!bSgIag#Fj~tjOWWtHnSX8+l2an<1~# z>DrAEs+-idf|{!ywFDz znQ(S_3G~GYkBrgQC%ilmqy-O4i$>m8Xr}EMdrAqza6J#2^O?OGSt0(pX=^07G;PZp zhZ4`(pcbe)?quo>bBZC%=Xh})NUj}s+pt~Huld8`C|x~pHcam-G3y-0L#u2YKFHN} z+pk;krGc897I(wP#xkZu$`_Xq*GiSc%j9h7!Egy@1k%3M=od)&%3s9E)>}?4Xb&9= zqlD`1GuolbTzGs5|3ZFMeh2vt_LrjUZ!UkjeX1EZ|2r0sE-Z%4faGTynd6I`YnJu@ zj}>+w+x3-Q?;ZOL>i_3PzZlj33;n-88G6@_Pa*&RfoT5UC!qiTc<;I1QqQj!epq;H z%OC)f*iw_N>A@V7bi|jTAr!fj67j0DazIqUr6D?jJEC+8cR*KcIL8>Dx=o? zaKsnhQk&aRIFL&AG|Xj2d02T|b^MCQHFj@lxjb_`?C8YGyvJ~gPS$2K(S;N!I|xz* zBb_Kcu}2psYEqG{bw%+yg|-aR#HLSH$>t$|lw@lqK#U7T9Def?uoL641lXh^TRU?h zCri$DauA?cdm2}^ECGbMbS$GDK*hcr9Qc5m0}>Y+7hQ*(7RZ4EQj#sbs0ex^!iJ8k z0A2RvTrm#^q$XRM0|_q3QIm18a6n43wKEsAyHat$PN>PlfyWgbkmf>XlaI-q@#F2{ zo&%4mIFR77Y&@xm+{}RkQj)E8Q9)E49akRwExBx#g9GC=XtJftIBK8BoWCNJok&XuY_nzE0|(^$|4_RB|I4G- zjr_CWzaM^h=u1QUcDy?Hv%$jyUmSRM|EK$Y+V?>3`QFK%mkWPWIFxz+uTGxt$t(rV z6v!9b)26MVJ;ZB7c{|=B{O;(y6u4_ziU=f@0wO8CW$6LAy@p{aQ2Fp;E5A~>Oo(fA zrLgiN5v+FRGBC-33XA7RKGW7*rsgAXO@Cjr9LXP6b3kk_fy?qNmnvYy&w-j$WlJwA z6lMX^&@eI;;|ZyY%EJLE%hq%xg98aJANgr&-3ZH(ELGXsnahJHTQ{O}Z>_!1DwWkR zm#+D`Nv=s^VZie$2FOJesL)_fwpI=dkeY0*OA4AI0pTHlX#3q^07Tg`@usM#CBkKy z9{Kjiz<^>6qHK6AwlkLr`7`26o97T%YHKa@Sos(-OnxsiP~e(cHPc@b5mW3gf$I&- z>|$p?u?A7L%#xzb5E#*7Q@c?a|V&SymJKrS@&+d^as3QGtUQQKBHR^|LVRI8HULh6Sc_vZIZ=cUA5 znraZ6h4Cy@WkGtcJ36lCFIP}4!3B}KRKUJvaC2+Ye*>#tgLP)F|xtij6 zOrgtMg%VgT{g$0PQFthj8A1mNB&l(z=8z-k7fu23{=ckuO4R@V<*uM!|Nos)XXMk+ z|Nph2Zw?tdUWWevlLKEHnCgES@Bb(9{-4TZ{@?t>{|^>eoj5NQ?b4no5N{vb*7U## zbaKLx#}gR}Pn6)oxKwiU1j}ih(Xa#M8?gL9q*%Ig8fP@@8n`S?_iZnTn;|={(z$R~ zw0hNfZK!Y;`sqfWZ}fzva8aN8Ih@2&%`UzFp=yl%Z)!RYJm`557nEoJ?^o>q1ec2! zEfp8b{?7>5VLcOAjuW`u+5Zr*%j8!iE_A~S@vd&{|H<>$scxeUT&{2HmqKV->e;n& zK%4=(2LCS}j$PrvUge_3xJ(~&VTia`IFM1Wi#QO&G7!qAQj_O8no+QeabXq`sx&bq zi^@%gGhp)kwQ3H)UJ)(_M(HN{{j0R$4dYJ From 01a49b7047a4faf35e77cef8b8b33167ed8476ea Mon Sep 17 00:00:00 2001 From: Jamie Date: Wed, 14 Mar 2018 20:40:43 +0000 Subject: [PATCH 16/59] Updated the .Net core dependancies #2072 --- src/Ombi/Ombi.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Ombi/Ombi.csproj b/src/Ombi/Ombi.csproj index 0bb111bc6..461869b5f 100644 --- a/src/Ombi/Ombi.csproj +++ b/src/Ombi/Ombi.csproj @@ -61,7 +61,7 @@ - + From 55edf2c6bdfe7857ac9facb294eced4230cbb9f9 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Wed, 14 Mar 2018 21:02:55 +0000 Subject: [PATCH 17/59] !wip #2072 --- src/Ombi.Updater/Ombi.Updater.csproj | 14 +++++++------- src/Ombi/Ombi.csproj | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Ombi.Updater/Ombi.Updater.csproj b/src/Ombi.Updater/Ombi.Updater.csproj index 9f5612367..a23d8a967 100644 --- a/src/Ombi.Updater/Ombi.Updater.csproj +++ b/src/Ombi.Updater/Ombi.Updater.csproj @@ -12,14 +12,14 @@ - - - - + + + + - - - + + + diff --git a/src/Ombi/Ombi.csproj b/src/Ombi/Ombi.csproj index 461869b5f..0c2c73360 100644 --- a/src/Ombi/Ombi.csproj +++ b/src/Ombi/Ombi.csproj @@ -62,9 +62,9 @@ - - - + + + From 87ab783f77ff9ee4defc54ad08de24daefddcb12 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Wed, 14 Mar 2018 21:31:58 +0000 Subject: [PATCH 18/59] Updated all the aspnet packaged !wip --- src/Ombi.Api.Radarr/Ombi.Api.Radarr.csproj | 2 +- src/Ombi.Api.Service/Ombi.Api.Service.csproj | 2 +- src/Ombi.Api/Ombi.Api.csproj | 2 +- src/Ombi.Core.Tests/Ombi.Core.Tests.csproj | 2 +- src/Ombi.Core/Ombi.Core.csproj | 6 +++--- .../Ombi.DependencyInjection.csproj | 4 ++-- src/Ombi.Helpers/Ombi.Helpers.csproj | 4 ++-- .../Ombi.Notifications.Tests.csproj | 2 +- src/Ombi.Schedule.Tests/Ombi.Schedule.Tests.csproj | 4 ++-- src/Ombi.Store/Ombi.Store.csproj | 8 ++++---- src/Ombi.Tests/Ombi.Tests.csproj | 5 ++--- 11 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/Ombi.Api.Radarr/Ombi.Api.Radarr.csproj b/src/Ombi.Api.Radarr/Ombi.Api.Radarr.csproj index fa6f5dfb9..1031ffd4a 100644 --- a/src/Ombi.Api.Radarr/Ombi.Api.Radarr.csproj +++ b/src/Ombi.Api.Radarr/Ombi.Api.Radarr.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Ombi.Api.Service/Ombi.Api.Service.csproj b/src/Ombi.Api.Service/Ombi.Api.Service.csproj index 794e01d30..8e62012d8 100644 --- a/src/Ombi.Api.Service/Ombi.Api.Service.csproj +++ b/src/Ombi.Api.Service/Ombi.Api.Service.csproj @@ -11,7 +11,7 @@ - + diff --git a/src/Ombi.Api/Ombi.Api.csproj b/src/Ombi.Api/Ombi.Api.csproj index eab82a56f..e89eb54b1 100644 --- a/src/Ombi.Api/Ombi.Api.csproj +++ b/src/Ombi.Api/Ombi.Api.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Ombi.Core.Tests/Ombi.Core.Tests.csproj b/src/Ombi.Core.Tests/Ombi.Core.Tests.csproj index 55739eee3..2aa71c1e2 100644 --- a/src/Ombi.Core.Tests/Ombi.Core.Tests.csproj +++ b/src/Ombi.Core.Tests/Ombi.Core.Tests.csproj @@ -9,7 +9,7 @@ - + diff --git a/src/Ombi.Core/Ombi.Core.csproj b/src/Ombi.Core/Ombi.Core.csproj index 46ac6a3df..c2af094bb 100644 --- a/src/Ombi.Core/Ombi.Core.csproj +++ b/src/Ombi.Core/Ombi.Core.csproj @@ -12,9 +12,9 @@ - - - + + + diff --git a/src/Ombi.DependencyInjection/Ombi.DependencyInjection.csproj b/src/Ombi.DependencyInjection/Ombi.DependencyInjection.csproj index 060287c17..75f4385bb 100644 --- a/src/Ombi.DependencyInjection/Ombi.DependencyInjection.csproj +++ b/src/Ombi.DependencyInjection/Ombi.DependencyInjection.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/src/Ombi.Helpers/Ombi.Helpers.csproj b/src/Ombi.Helpers/Ombi.Helpers.csproj index d9ef54efa..00cd8d5e9 100644 --- a/src/Ombi.Helpers/Ombi.Helpers.csproj +++ b/src/Ombi.Helpers/Ombi.Helpers.csproj @@ -10,8 +10,8 @@ - - + + diff --git a/src/Ombi.Notifications.Tests/Ombi.Notifications.Tests.csproj b/src/Ombi.Notifications.Tests/Ombi.Notifications.Tests.csproj index a3773be95..cbbe62277 100644 --- a/src/Ombi.Notifications.Tests/Ombi.Notifications.Tests.csproj +++ b/src/Ombi.Notifications.Tests/Ombi.Notifications.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/src/Ombi.Schedule.Tests/Ombi.Schedule.Tests.csproj b/src/Ombi.Schedule.Tests/Ombi.Schedule.Tests.csproj index 9aab37a61..eae150067 100644 --- a/src/Ombi.Schedule.Tests/Ombi.Schedule.Tests.csproj +++ b/src/Ombi.Schedule.Tests/Ombi.Schedule.Tests.csproj @@ -6,12 +6,12 @@ - + - + diff --git a/src/Ombi.Store/Ombi.Store.csproj b/src/Ombi.Store/Ombi.Store.csproj index 91359ed8a..901882669 100644 --- a/src/Ombi.Store/Ombi.Store.csproj +++ b/src/Ombi.Store/Ombi.Store.csproj @@ -10,10 +10,10 @@ - - - - + + + + diff --git a/src/Ombi.Tests/Ombi.Tests.csproj b/src/Ombi.Tests/Ombi.Tests.csproj index d9fdb8e91..f3d041122 100644 --- a/src/Ombi.Tests/Ombi.Tests.csproj +++ b/src/Ombi.Tests/Ombi.Tests.csproj @@ -7,13 +7,12 @@ - - + - + From c7ee68040d26a549afa3ccf4c27d68db41a1037b Mon Sep 17 00:00:00 2001 From: Anojh Date: Wed, 14 Mar 2018 19:12:50 -0700 Subject: [PATCH 19/59] Dynamic Background Animation --- .../ClientApp/app/animations/fadeinout.ts | 12 ++++++++ .../landingpage/landingpage.component.html | 2 +- .../app/landingpage/landingpage.component.ts | 28 +++++++++++++++++-- .../ClientApp/app/login/login.component.html | 2 +- .../ClientApp/app/login/login.component.ts | 27 ++++++++++++++++-- src/Ombi/Ombi.csproj | 8 ++++++ src/Ombi/webpack.config.vendor.ts | 2 +- 7 files changed, 74 insertions(+), 7 deletions(-) create mode 100644 src/Ombi/ClientApp/app/animations/fadeinout.ts diff --git a/src/Ombi/ClientApp/app/animations/fadeinout.ts b/src/Ombi/ClientApp/app/animations/fadeinout.ts new file mode 100644 index 000000000..8ecf15a15 --- /dev/null +++ b/src/Ombi/ClientApp/app/animations/fadeinout.ts @@ -0,0 +1,12 @@ +import { animate, style, transition, trigger } from "@angular/animations"; +import { AnimationEntryMetadata } from "@angular/core"; + +export const fadeInOutAnimation: AnimationEntryMetadata = trigger("fadeInOut", [ + transition(":enter", [ // :enter is alias to 'void => *' + style({ opacity: 0 }), + animate(1000, style({ opacity: 1 })), + ]), + transition(":leave", [ // :leave is alias to '* => void' + animate(1000, style({ opacity: 0 })), + ]), +]); diff --git a/src/Ombi/ClientApp/app/landingpage/landingpage.component.html b/src/Ombi/ClientApp/app/landingpage/landingpage.component.html index 209f9d977..27545b64b 100644 --- a/src/Ombi/ClientApp/app/landingpage/landingpage.component.html +++ b/src/Ombi/ClientApp/app/landingpage/landingpage.component.html @@ -1,5 +1,5 @@ 

-
+
diff --git a/src/Ombi/ClientApp/app/landingpage/landingpage.component.ts b/src/Ombi/ClientApp/app/landingpage/landingpage.component.ts index 0cedce50e..ec8122782 100644 --- a/src/Ombi/ClientApp/app/landingpage/landingpage.component.ts +++ b/src/Ombi/ClientApp/app/landingpage/landingpage.component.ts @@ -1,5 +1,5 @@ import { PlatformLocation } from "@angular/common"; -import { Component, OnInit } from "@angular/core"; +import { AfterViewInit, Component, OnDestroy, OnInit } from "@angular/core"; import { IMediaServerStatus } from "../interfaces"; import { ICustomizationSettings, ILandingPageSettings } from "../interfaces"; @@ -9,11 +9,15 @@ import { SettingsService } from "../services"; import { DomSanitizer } from "@angular/platform-browser"; import { ImageService } from "../services"; +import { setTimeout } from "core-js/library/web/timers"; +import { fadeInOutAnimation } from "../animations/fadeinout"; + @Component({ templateUrl: "./landingpage.component.html", + animations: [fadeInOutAnimation], styleUrls: ["./landingpage.component.scss"], }) -export class LandingPageComponent implements OnInit { +export class LandingPageComponent implements AfterViewInit, OnInit, OnDestroy { public customizationSettings: ICustomizationSettings; public landingPageSettings: ILandingPageSettings; @@ -41,4 +45,24 @@ export class LandingPageComponent implements OnInit { this.mediaServerStatus = x; }); } + + public ngOnDestroy() { + setTimeout(() => { + this.images.getRandomBackground().subscribe(x => { + this.background = ""; + }); + }, 1000); + setTimeout(() => { + this.images.getRandomBackground().subscribe(x => { + this.background = this.sanitizer + .bypassSecurityTrustStyle("linear-gradient(-10deg, transparent 20%, rgba(0,0,0,0.7) 20.0%, rgba(0,0,0,0.7) 80.0%, transparent 80%), url(" + x.url + ")"); + }); + }, 1000); + } + + public ngAfterViewInit() { + setInterval(() => { + this.ngOnDestroy(); + }, 10000); + } } diff --git a/src/Ombi/ClientApp/app/login/login.component.html b/src/Ombi/ClientApp/app/login/login.component.html index 80c48cabd..5fc0150ff 100644 --- a/src/Ombi/ClientApp/app/login/login.component.html +++ b/src/Ombi/ClientApp/app/login/login.component.html @@ -4,7 +4,7 @@ include the remember me checkbox -->
-
+
diff --git a/src/Ombi/ClientApp/app/login/login.component.ts b/src/Ombi/ClientApp/app/login/login.component.ts index 357a8ca9f..d65bf0264 100644 --- a/src/Ombi/ClientApp/app/login/login.component.ts +++ b/src/Ombi/ClientApp/app/login/login.component.ts @@ -1,4 +1,4 @@ -import { Component, OnInit } from "@angular/core"; +import { AfterViewInit, Component, OnDestroy, OnInit } from "@angular/core"; import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { ActivatedRoute, Router } from "@angular/router"; import { TranslateService } from "@ngx-translate/core"; @@ -13,11 +13,14 @@ import { StatusService } from "../services"; import { DomSanitizer } from "@angular/platform-browser"; import { ImageService } from "../services"; +import { fadeInOutAnimation } from "../animations/fadeinout"; + @Component({ templateUrl: "./login.component.html", + animations: [fadeInOutAnimation], styleUrls: ["./login.component.scss"], }) -export class LoginComponent implements OnInit { +export class LoginComponent implements AfterViewInit, OnDestroy, OnInit { public form: FormGroup; public customizationSettings: ICustomizationSettings; @@ -102,4 +105,24 @@ export class LoginComponent implements OnInit { }, err => this.notify.error(this.errorBody)); }); } + + public ngOnDestroy() { + setTimeout(() => { + this.images.getRandomBackground().subscribe(x => { + this.background = ""; + }); + }, 1000); + setTimeout(() => { + this.images.getRandomBackground().subscribe(x => { + this.background = this.sanitizer + .bypassSecurityTrustStyle("linear-gradient(-10deg, transparent 20%, rgba(0,0,0,0.7) 20.0%, rgba(0,0,0,0.7) 80.0%, transparent 80%), url(" + x.url + ")"); + }); + }, 1000); + } + + public ngAfterViewInit() { + setInterval(() => { + this.ngOnDestroy(); + }, 10000); + } } diff --git a/src/Ombi/Ombi.csproj b/src/Ombi/Ombi.csproj index 0c2c73360..766404941 100644 --- a/src/Ombi/Ombi.csproj +++ b/src/Ombi/Ombi.csproj @@ -92,5 +92,13 @@ + + + + + + + + diff --git a/src/Ombi/webpack.config.vendor.ts b/src/Ombi/webpack.config.vendor.ts index d4fe38c3a..b50e784f4 100644 --- a/src/Ombi/webpack.config.vendor.ts +++ b/src/Ombi/webpack.config.vendor.ts @@ -80,7 +80,7 @@ module.exports = (env: any) => { }, plugins: [ new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery", Hammer: "hammerjs/hammer" }), // Global identifiers - new webpack.ContextReplacementPlugin(/\@angular(\\|\/)core(\\|\/)esm5/, path.join(__dirname, './client')), // Workaround for https://github.com/angular/angular/issues/20357 + new webpack.ContextReplacementPlugin(/\@angular(\\|\/)core(\\|\/)esm5/, path.join(__dirname, "./client")), // Workaround for https://github.com/angular/angular/issues/20357 new webpack.ContextReplacementPlugin(/\@angular\b.*\b(bundles|linker)/, path.join(__dirname, "./ClientApp")), // Workaround for https://github.com/angular/angular/issues/11580 new webpack.ContextReplacementPlugin(/angular(\\|\/)core(\\|\/)@angular/, path.join(__dirname, "./ClientApp")), // Workaround for https://github.com/angular/angular/issues/14898 extractCSS, From 47f66978f00dc16ecd3c8adc0e0588b5c205a61e Mon Sep 17 00:00:00 2001 From: Jamie Date: Thu, 15 Mar 2018 13:24:20 +0000 Subject: [PATCH 20/59] Added the ability to refresh out backend metadata (#2078) We now can refresh the Plex Metadata in our database. For example if the Plex Agent for TV Shows is TheMovieDb, we will use that and populate the IMDB Id and TheTvDb Id's so we can accuratly match and search things. Also improved the Job settings page so we can Test CRON's and we also validate them. --- src/Ombi.Api/Api.cs | 30 ++- src/Ombi.Api/HttpRequestExtnesions.cs | 45 ++++ src/Ombi.Api/Ombi.Api.csproj | 1 + src/Ombi.Api/Request.cs | 4 + src/Ombi.DependencyInjection/IocExtensions.cs | 1 + src/Ombi.Schedule/JobSetup.cs | 65 ++--- .../Jobs/Ombi/IRefreshMetadata.cs | 9 + .../Jobs/Ombi/RefreshMetadata.cs | 249 ++++++++++++++++++ src/Ombi.Schedule/Ombi.Schedule.csproj | 2 + .../Settings/Models/JobSettings.cs | 1 + .../Settings/Models/JobSettingsHelper.cs | 4 + .../Repository/IPlexContentRepository.cs | 2 + src/Ombi.Store/Repository/IRepository.cs | 2 + .../Repository/PlexContentRepository.cs | 10 + src/Ombi.Store/Repository/Repository.cs | 2 +- src/Ombi.TheMovieDbApi/IMovieDbApi.cs | 2 + src/Ombi.TheMovieDbApi/Models/FindResult.cs | 52 ++++ src/Ombi.TheMovieDbApi/Models/TvExternals.cs | 16 ++ src/Ombi.TheMovieDbApi/TheMovieDbApi.cs | 35 ++- .../ClientApp/app/interfaces/ISettings.ts | 16 ++ .../app/services/settings.service.ts | 14 +- .../app/settings/jobs/jobs.component.html | 23 +- .../app/settings/jobs/jobs.component.ts | 23 +- .../ClientApp/app/settings/settings.module.ts | 5 +- src/Ombi/Controllers/SettingsController.cs | 72 ++++- src/Ombi/Models/CronTestModel.cs | 12 + src/Ombi/Models/CronViewModelBody.cs | 7 + src/Ombi/Models/JobSettingsViewModel.cs | 8 + src/Ombi/Ombi.csproj | 1 + 29 files changed, 667 insertions(+), 46 deletions(-) create mode 100644 src/Ombi.Api/HttpRequestExtnesions.cs create mode 100644 src/Ombi.Schedule/Jobs/Ombi/IRefreshMetadata.cs create mode 100644 src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs create mode 100644 src/Ombi.TheMovieDbApi/Models/FindResult.cs create mode 100644 src/Ombi.TheMovieDbApi/Models/TvExternals.cs create mode 100644 src/Ombi/Models/CronTestModel.cs create mode 100644 src/Ombi/Models/CronViewModelBody.cs create mode 100644 src/Ombi/Models/JobSettingsViewModel.cs diff --git a/src/Ombi.Api/Api.cs b/src/Ombi.Api/Api.cs index c12258b8e..98fff5e0c 100644 --- a/src/Ombi.Api/Api.cs +++ b/src/Ombi.Api/Api.cs @@ -1,4 +1,7 @@ -using System.IO; +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Threading.Tasks; @@ -6,6 +9,7 @@ using System.Xml.Serialization; using Newtonsoft.Json; using Microsoft.Extensions.Logging; using Ombi.Helpers; +using Polly; namespace Ombi.Api { @@ -36,6 +40,30 @@ namespace Ombi.Api if (!httpResponseMessage.IsSuccessStatusCode) { LogError(request, httpResponseMessage); + if (request.Retry) + { + + var result = Policy + .Handle() + .OrResult(r => request.StatusCodeToRetry.Contains(r.StatusCode)) + .WaitAndRetryAsync(new[] + { + TimeSpan.FromSeconds(10), + }, (exception, timeSpan, context) => + { + + Logger.LogError(LoggingEvents.Api, + $"Retrying RequestUri: {request.FullUri} Because we got Status Code: {exception?.Result?.StatusCode}"); + }); + + httpResponseMessage = await result.ExecuteAsync(async () => + { + using (var req = await httpRequestMessage.Clone()) + { + return await _client.SendAsync(req); + } + }); + } } // do something with the response diff --git a/src/Ombi.Api/HttpRequestExtnesions.cs b/src/Ombi.Api/HttpRequestExtnesions.cs new file mode 100644 index 000000000..fa2ded97d --- /dev/null +++ b/src/Ombi.Api/HttpRequestExtnesions.cs @@ -0,0 +1,45 @@ +using System.Collections.Generic; +using System.IO; +using System.Net.Http; +using System.Threading.Tasks; + +namespace Ombi.Api +{ + public static class HttpRequestExtnesions + { + public static async Task Clone(this HttpRequestMessage request) + { + var clone = new HttpRequestMessage(request.Method, request.RequestUri) + { + Content = await request.Content.Clone(), + Version = request.Version + }; + foreach (KeyValuePair prop in request.Properties) + { + clone.Properties.Add(prop); + } + foreach (KeyValuePair> header in request.Headers) + { + clone.Headers.TryAddWithoutValidation(header.Key, header.Value); + } + + return clone; + } + + public static async Task Clone(this HttpContent content) + { + if (content == null) return null; + + var ms = new MemoryStream(); + await content.CopyToAsync(ms); + ms.Position = 0; + + var clone = new StreamContent(ms); + foreach (KeyValuePair> header in content.Headers) + { + clone.Headers.Add(header.Key, header.Value); + } + return clone; + } + } +} \ No newline at end of file diff --git a/src/Ombi.Api/Ombi.Api.csproj b/src/Ombi.Api/Ombi.Api.csproj index e89eb54b1..325f316b8 100644 --- a/src/Ombi.Api/Ombi.Api.csproj +++ b/src/Ombi.Api/Ombi.Api.csproj @@ -11,6 +11,7 @@ + diff --git a/src/Ombi.Api/Request.cs b/src/Ombi.Api/Request.cs index 16dd38055..e4120ed9c 100644 --- a/src/Ombi.Api/Request.cs +++ b/src/Ombi.Api/Request.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Net; using System.Net.Http; using System.Text; @@ -25,6 +26,9 @@ namespace Ombi.Api public string BaseUrl { get; } public HttpMethod HttpMethod { get; } + public bool Retry { get; set; } + public List StatusCodeToRetry { get; set; } = new List(); + public Action OnBeforeDeserialization { get; set; } private string FullUrl diff --git a/src/Ombi.DependencyInjection/IocExtensions.cs b/src/Ombi.DependencyInjection/IocExtensions.cs index 817dfd551..b40d49036 100644 --- a/src/Ombi.DependencyInjection/IocExtensions.cs +++ b/src/Ombi.DependencyInjection/IocExtensions.cs @@ -172,6 +172,7 @@ namespace Ombi.DependencyInjection services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); } } } diff --git a/src/Ombi.Schedule/JobSetup.cs b/src/Ombi.Schedule/JobSetup.cs index dc9d49269..e73302387 100644 --- a/src/Ombi.Schedule/JobSetup.cs +++ b/src/Ombi.Schedule/JobSetup.cs @@ -17,46 +17,49 @@ namespace Ombi.Schedule public JobSetup(IPlexContentSync plexContentSync, IRadarrSync radarrSync, IOmbiAutomaticUpdater updater, IEmbyContentSync embySync, IPlexUserImporter userImporter, IEmbyUserImporter embyUserImporter, ISonarrSync cache, ICouchPotatoSync cpCache, - ISettingsService jobsettings, ISickRageSync srSync) + ISettingsService jobsettings, ISickRageSync srSync, IRefreshMetadata refresh) { - PlexContentSync = plexContentSync; - RadarrSync = radarrSync; - Updater = updater; - EmbyContentSync = embySync; - PlexUserImporter = userImporter; - EmbyUserImporter = embyUserImporter; - SonarrSync = cache; - CpCache = cpCache; - JobSettings = jobsettings; - SrSync = srSync; + _plexContentSync = plexContentSync; + _radarrSync = radarrSync; + _updater = updater; + _embyContentSync = embySync; + _plexUserImporter = userImporter; + _embyUserImporter = embyUserImporter; + _sonarrSync = cache; + _cpCache = cpCache; + _jobSettings = jobsettings; + _srSync = srSync; + _refreshMetadata = refresh; } - private IPlexContentSync PlexContentSync { get; } - private IRadarrSync RadarrSync { get; } - private IOmbiAutomaticUpdater Updater { get; } - private IPlexUserImporter PlexUserImporter { get; } - private IEmbyContentSync EmbyContentSync { get; } - private IEmbyUserImporter EmbyUserImporter { get; } - private ISonarrSync SonarrSync { get; } - private ICouchPotatoSync CpCache { get; } - private ISickRageSync SrSync { get; } - private ISettingsService JobSettings { get; set; } + private readonly IPlexContentSync _plexContentSync; + private readonly IRadarrSync _radarrSync; + private readonly IOmbiAutomaticUpdater _updater; + private readonly IPlexUserImporter _plexUserImporter; + private readonly IEmbyContentSync _embyContentSync; + private readonly IEmbyUserImporter _embyUserImporter; + private readonly ISonarrSync _sonarrSync; + private readonly ICouchPotatoSync _cpCache; + private readonly ISickRageSync _srSync; + private readonly ISettingsService _jobSettings; + private readonly IRefreshMetadata _refreshMetadata; public void Setup() { - var s = JobSettings.GetSettings(); + var s = _jobSettings.GetSettings(); - RecurringJob.AddOrUpdate(() => EmbyContentSync.Start(), JobSettingsHelper.EmbyContent(s)); - RecurringJob.AddOrUpdate(() => SonarrSync.Start(), JobSettingsHelper.Sonarr(s)); - RecurringJob.AddOrUpdate(() => RadarrSync.CacheContent(), JobSettingsHelper.Radarr(s)); - RecurringJob.AddOrUpdate(() => PlexContentSync.CacheContent(), JobSettingsHelper.PlexContent(s)); - RecurringJob.AddOrUpdate(() => CpCache.Start(), JobSettingsHelper.CouchPotato(s)); - RecurringJob.AddOrUpdate(() => SrSync.Start(), JobSettingsHelper.SickRageSync(s)); + RecurringJob.AddOrUpdate(() => _embyContentSync.Start(), JobSettingsHelper.EmbyContent(s)); + RecurringJob.AddOrUpdate(() => _sonarrSync.Start(), JobSettingsHelper.Sonarr(s)); + RecurringJob.AddOrUpdate(() => _radarrSync.CacheContent(), JobSettingsHelper.Radarr(s)); + RecurringJob.AddOrUpdate(() => _plexContentSync.CacheContent(), JobSettingsHelper.PlexContent(s)); + RecurringJob.AddOrUpdate(() => _cpCache.Start(), JobSettingsHelper.CouchPotato(s)); + RecurringJob.AddOrUpdate(() => _srSync.Start(), JobSettingsHelper.SickRageSync(s)); + RecurringJob.AddOrUpdate(() => _refreshMetadata.Start(), JobSettingsHelper.RefreshMetadata(s)); - RecurringJob.AddOrUpdate(() => Updater.Update(null), JobSettingsHelper.Updater(s)); + RecurringJob.AddOrUpdate(() => _updater.Update(null), JobSettingsHelper.Updater(s)); - RecurringJob.AddOrUpdate(() => EmbyUserImporter.Start(), JobSettingsHelper.UserImporter(s)); - RecurringJob.AddOrUpdate(() => PlexUserImporter.Start(), JobSettingsHelper.UserImporter(s)); + RecurringJob.AddOrUpdate(() => _embyUserImporter.Start(), JobSettingsHelper.UserImporter(s)); + RecurringJob.AddOrUpdate(() => _plexUserImporter.Start(), JobSettingsHelper.UserImporter(s)); } } } diff --git a/src/Ombi.Schedule/Jobs/Ombi/IRefreshMetadata.cs b/src/Ombi.Schedule/Jobs/Ombi/IRefreshMetadata.cs new file mode 100644 index 000000000..a08db74d0 --- /dev/null +++ b/src/Ombi.Schedule/Jobs/Ombi/IRefreshMetadata.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; + +namespace Ombi.Schedule.Jobs.Ombi +{ + public interface IRefreshMetadata : IBaseJob + { + Task Start(); + } +} \ No newline at end of file diff --git a/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs b/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs new file mode 100644 index 000000000..5f5dd4635 --- /dev/null +++ b/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs @@ -0,0 +1,249 @@ +using System; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using Ombi.Api.TheMovieDb; +using Ombi.Api.TheMovieDb.Models; +using Ombi.Api.TvMaze; +using Ombi.Core.Settings; +using Ombi.Core.Settings.Models.External; +using Ombi.Helpers; +using Ombi.Store.Entities; +using Ombi.Store.Repository; +using Ombi.Store.Repository.Requests; + +namespace Ombi.Schedule.Jobs.Ombi +{ + public class RefreshMetadata : IRefreshMetadata + { + public RefreshMetadata(IPlexContentRepository plexRepo, IEmbyContentRepository embyRepo, + ILogger log, ITvMazeApi tvApi, ISettingsService plexSettings, + IMovieDbApi movieApi) + { + _plexRepo = plexRepo; + _embyRepo = embyRepo; + _log = log; + _movieApi = movieApi; + _tvApi = tvApi; + _plexSettings = plexSettings; + } + + private readonly IPlexContentRepository _plexRepo; + private readonly IEmbyContentRepository _embyRepo; + private readonly ILogger _log; + private readonly IMovieDbApi _movieApi; + private readonly ITvMazeApi _tvApi; + private readonly ISettingsService _plexSettings; + + public async Task Start() + { + _log.LogInformation("Starting the Metadata refresh"); + try + { + var settings = await _plexSettings.GetSettingsAsync(); + if (settings.Enable) + { + await StartPlex(); + } + } + catch (Exception e) + { + _log.LogError(e, "Exception when refreshing the Plex Metadata"); + throw; + } + } + + private async Task StartPlex() + { + await StartPlexMovies(); + + // Now Tv + await StartPlexTv(); + } + + private async Task StartPlexTv() + { + var allTv = _plexRepo.GetAll().Where(x => + x.Type == PlexMediaTypeEntity.Show && (!x.TheMovieDbId.HasValue() || !x.ImdbId.HasValue() || !x.TvDbId.HasValue())); + var tvCount = 0; + foreach (var show in allTv) + { + var hasImdb = show.ImdbId.HasValue(); + var hasTheMovieDb = show.TheMovieDbId.HasValue(); + var hasTvDbId = show.TvDbId.HasValue(); + + if (!hasTheMovieDb) + { + var id = await GetTheMovieDbId(hasTvDbId, hasImdb, show.TvDbId, show.ImdbId, show.Title); + show.TheMovieDbId = id; + } + + if (!hasImdb) + { + var id = await GetImdbId(hasTheMovieDb, hasTvDbId, show.Title, show.TheMovieDbId, show.TvDbId); + show.ImdbId = id; + _plexRepo.UpdateWithoutSave(show); + } + + if (!hasTvDbId) + { + var id = await GetTvDbId(hasTheMovieDb, hasImdb, show.TheMovieDbId, show.ImdbId, show.Title); + show.TvDbId = id; + _plexRepo.UpdateWithoutSave(show); + } + tvCount++; + if (tvCount >= 20) + { + await _plexRepo.SaveChangesAsync(); + tvCount = 0; + } + } + await _plexRepo.SaveChangesAsync(); + } + + private async Task StartPlexMovies() + { + var allMovies = _plexRepo.GetAll().Where(x => + x.Type == PlexMediaTypeEntity.Movie && (!x.TheMovieDbId.HasValue() || !x.ImdbId.HasValue())); + int movieCount = 0; + foreach (var movie in allMovies) + { + var hasImdb = movie.ImdbId.HasValue(); + var hasTheMovieDb = movie.TheMovieDbId.HasValue(); + // Movies don't really use TheTvDb + + if (!hasImdb) + { + var imdbId = await GetImdbId(hasTheMovieDb, false, movie.Title, movie.TheMovieDbId, string.Empty); + movie.ImdbId = imdbId; + _plexRepo.UpdateWithoutSave(movie); + } + if (!hasTheMovieDb) + { + var id = await GetTheMovieDbId(false, hasImdb, string.Empty, movie.ImdbId, movie.Title); + movie.TheMovieDbId = id; + _plexRepo.UpdateWithoutSave(movie); + } + movieCount++; + if (movieCount >= 20) + { + await _plexRepo.SaveChangesAsync(); + movieCount = 0; + } + } + + await _plexRepo.SaveChangesAsync(); + } + + private async Task GetTheMovieDbId(bool hasTvDbId, bool hasImdb, string tvdbID, string imdbId, string title) + { + _log.LogInformation("The Media item {0} does not have a TheMovieDbId, searching for TheMovieDbId", title); + FindResult result = null; + var hasResult = false; + if (hasTvDbId) + { + result = await _movieApi.Find(tvdbID, ExternalSource.tvdb_id); + hasResult = result?.tv_results?.Length > 0; + + _log.LogInformation("Setting Show {0} because we have TvDbId, result: {1}", title, hasResult); + } + if (hasImdb && !hasResult) + { + result = await _movieApi.Find(imdbId, ExternalSource.imdb_id); + hasResult = result?.tv_results?.Length > 0; + + _log.LogInformation("Setting Show {0} because we have ImdbId, result: {1}", title, hasResult); + } + if (hasResult) + { + return result.tv_results?[0]?.id.ToString() ?? string.Empty; + } + return string.Empty; + } + + private async Task GetImdbId(bool hasTheMovieDb, bool hasTvDbId, string title, string theMovieDbId, string tvDbId) + { + _log.LogInformation("The media item {0} does not have a ImdbId, searching for ImdbId", title); + // Looks like TV Maze does not provide the moviedb id, neither does the TV endpoint on TheMovieDb + if (hasTheMovieDb) + { + _log.LogInformation("The show {0} has TheMovieDbId but not ImdbId, searching for ImdbId", title); + if (int.TryParse(theMovieDbId, out var id)) + { + var result = await _movieApi.GetTvExternals(id); + + return result.imdb_id; + } + } + + if (hasTvDbId) + { + _log.LogInformation("The show {0} has tvdbid but not ImdbId, searching for ImdbId", title); + if (int.TryParse(tvDbId, out var id)) + { + var result = await _tvApi.ShowLookupByTheTvDbId(id); + return result?.externals?.imdb; + } + } + return string.Empty; + } + + + private async Task GetTvDbId(bool hasTheMovieDb, bool hasImdb, string theMovieDbId, string imdbId, string title) + { + _log.LogInformation("The media item {0} does not have a TvDbId, searching for TvDbId", title); + if (hasTheMovieDb) + { + _log.LogInformation("The show {0} has theMovieDBId but not ImdbId, searching for ImdbId", title); + if (int.TryParse(theMovieDbId, out var id)) + { + var result = await _movieApi.GetTvExternals(id); + + return result.tvdb_id.ToString(); + } + } + + if (hasImdb) + { + _log.LogInformation("The show {0} has ImdbId but not ImdbId, searching for ImdbId", title); + var result = await _movieApi.Find(imdbId, ExternalSource.imdb_id); + if (result?.tv_results?.Length > 0) + { + var movieId = result.tv_results?[0]?.id ?? 0; + + var externalResult = await _movieApi.GetTvExternals(movieId); + + return externalResult.imdb_id; + } + } + return string.Empty; + } + + + private async Task StartEmby() + { + + } + + + private bool _disposed; + protected virtual void Dispose(bool disposing) + { + if (_disposed) + return; + + if (disposing) + { + _plexRepo?.Dispose(); + _embyRepo?.Dispose(); + } + _disposed = true; + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + } +} \ No newline at end of file diff --git a/src/Ombi.Schedule/Ombi.Schedule.csproj b/src/Ombi.Schedule/Ombi.Schedule.csproj index cb8cef8ab..5088bc9f8 100644 --- a/src/Ombi.Schedule/Ombi.Schedule.csproj +++ b/src/Ombi.Schedule/Ombi.Schedule.csproj @@ -32,8 +32,10 @@ + + \ No newline at end of file diff --git a/src/Ombi.Settings/Settings/Models/JobSettings.cs b/src/Ombi.Settings/Settings/Models/JobSettings.cs index 7cf6e7104..ef4335fa5 100644 --- a/src/Ombi.Settings/Settings/Models/JobSettings.cs +++ b/src/Ombi.Settings/Settings/Models/JobSettings.cs @@ -10,5 +10,6 @@ public string AutomaticUpdater { get; set; } public string UserImporter { get; set; } public string SickRageSync { get; set; } + public string RefreshMetadata { get; set; } } } \ No newline at end of file diff --git a/src/Ombi.Settings/Settings/Models/JobSettingsHelper.cs b/src/Ombi.Settings/Settings/Models/JobSettingsHelper.cs index 69eaf4b33..a200c6b49 100644 --- a/src/Ombi.Settings/Settings/Models/JobSettingsHelper.cs +++ b/src/Ombi.Settings/Settings/Models/JobSettingsHelper.cs @@ -39,6 +39,10 @@ namespace Ombi.Settings.Settings.Models { return Get(s.SickRageSync, Cron.Hourly(35)); } + public static string RefreshMetadata(JobSettings s) + { + return Get(s.RefreshMetadata, Cron.Daily(3)); + } private static string Get(string settings, string defaultCron) diff --git a/src/Ombi.Store/Repository/IPlexContentRepository.cs b/src/Ombi.Store/Repository/IPlexContentRepository.cs index 2fef89be2..381a89fa3 100644 --- a/src/Ombi.Store/Repository/IPlexContentRepository.cs +++ b/src/Ombi.Store/Repository/IPlexContentRepository.cs @@ -22,5 +22,7 @@ namespace Ombi.Store.Repository Task DeleteEpisode(PlexEpisode content); void DeleteWithoutSave(PlexServerContent content); void DeleteWithoutSave(PlexEpisode content); + Task UpdateRange(IEnumerable existingContent); + void UpdateWithoutSave(PlexServerContent existingContent); } } \ No newline at end of file diff --git a/src/Ombi.Store/Repository/IRepository.cs b/src/Ombi.Store/Repository/IRepository.cs index ed5ed28c5..c85b45d8f 100644 --- a/src/Ombi.Store/Repository/IRepository.cs +++ b/src/Ombi.Store/Repository/IRepository.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Query; using Ombi.Store.Entities; @@ -24,5 +25,6 @@ namespace Ombi.Store.Repository where TEntity : class; Task ExecuteSql(string sql); + DbSet _db { get; } } } \ No newline at end of file diff --git a/src/Ombi.Store/Repository/PlexContentRepository.cs b/src/Ombi.Store/Repository/PlexContentRepository.cs index 56fec441a..098466310 100644 --- a/src/Ombi.Store/Repository/PlexContentRepository.cs +++ b/src/Ombi.Store/Repository/PlexContentRepository.cs @@ -97,6 +97,16 @@ namespace Ombi.Store.Repository Db.PlexServerContent.Update(existingContent); await Db.SaveChangesAsync(); } + public void UpdateWithoutSave(PlexServerContent existingContent) + { + Db.PlexServerContent.Update(existingContent); + } + + public async Task UpdateRange(IEnumerable existingContent) + { + Db.PlexServerContent.UpdateRange(existingContent); + await Db.SaveChangesAsync(); + } public IQueryable GetAllEpisodes() { diff --git a/src/Ombi.Store/Repository/Repository.cs b/src/Ombi.Store/Repository/Repository.cs index b4b9f8e93..049da0356 100644 --- a/src/Ombi.Store/Repository/Repository.cs +++ b/src/Ombi.Store/Repository/Repository.cs @@ -17,7 +17,7 @@ namespace Ombi.Store.Repository _ctx = ctx; _db = _ctx.Set(); } - private readonly DbSet _db; + public DbSet _db { get; } private readonly IOmbiContext _ctx; public async Task Find(object key) diff --git a/src/Ombi.TheMovieDbApi/IMovieDbApi.cs b/src/Ombi.TheMovieDbApi/IMovieDbApi.cs index dd0d0e92c..787902a4b 100644 --- a/src/Ombi.TheMovieDbApi/IMovieDbApi.cs +++ b/src/Ombi.TheMovieDbApi/IMovieDbApi.cs @@ -15,5 +15,7 @@ namespace Ombi.Api.TheMovieDb Task> TopRated(); Task> Upcoming(); Task> SimilarMovies(int movieId); + Task Find(string externalId, ExternalSource source); + Task GetTvExternals(int theMovieDbId); } } \ No newline at end of file diff --git a/src/Ombi.TheMovieDbApi/Models/FindResult.cs b/src/Ombi.TheMovieDbApi/Models/FindResult.cs new file mode 100644 index 000000000..f76fca564 --- /dev/null +++ b/src/Ombi.TheMovieDbApi/Models/FindResult.cs @@ -0,0 +1,52 @@ +namespace Ombi.Api.TheMovieDb.Models +{ + public class FindResult + { + public Movie_Results[] movie_results { get; set; } + public object[] person_results { get; set; } + public TvResults[] tv_results { get; set; } + public object[] tv_episode_results { get; set; } + public object[] tv_season_results { get; set; } + } + + public class Movie_Results + { + public bool adult { get; set; } + public string backdrop_path { get; set; } + public int[] genre_ids { get; set; } + public int id { get; set; } + public string original_language { get; set; } + public string original_title { get; set; } + public string overview { get; set; } + public string poster_path { get; set; } + public string release_date { get; set; } + public string title { get; set; } + public bool video { get; set; } + public float vote_average { get; set; } + public int vote_count { get; set; } + } + + + public class TvResults + { + public string original_name { get; set; } + public int id { get; set; } + public string name { get; set; } + public int vote_count { get; set; } + public float vote_average { get; set; } + public string first_air_date { get; set; } + public string poster_path { get; set; } + public int[] genre_ids { get; set; } + public string original_language { get; set; } + public string backdrop_path { get; set; } + public string overview { get; set; } + public string[] origin_country { get; set; } + } + + + public enum ExternalSource + { + imdb_id, + tvdb_id + } +} \ No newline at end of file diff --git a/src/Ombi.TheMovieDbApi/Models/TvExternals.cs b/src/Ombi.TheMovieDbApi/Models/TvExternals.cs new file mode 100644 index 000000000..237ae36a7 --- /dev/null +++ b/src/Ombi.TheMovieDbApi/Models/TvExternals.cs @@ -0,0 +1,16 @@ +namespace Ombi.Api.TheMovieDb.Models +{ + public class TvExternals + { + public string imdb_id { get; set; } + public string freebase_mid { get; set; } + public string freebase_id { get; set; } + public int tvdb_id { get; set; } + public int tvrage_id { get; set; } + public string facebook_id { get; set; } + public object instagram_id { get; set; } + public object twitter_id { get; set; } + public int id { get; set; } + } + +} \ No newline at end of file diff --git a/src/Ombi.TheMovieDbApi/TheMovieDbApi.cs b/src/Ombi.TheMovieDbApi/TheMovieDbApi.cs index 1fbfe9aaf..08925e490 100644 --- a/src/Ombi.TheMovieDbApi/TheMovieDbApi.cs +++ b/src/Ombi.TheMovieDbApi/TheMovieDbApi.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Net; using System.Net.Http; using System.Threading.Tasks; using AutoMapper; @@ -25,15 +26,37 @@ namespace Ombi.Api.TheMovieDb { var request = new Request($"movie/{movieId}", BaseUri, HttpMethod.Get); request.FullUri = request.FullUri.AddQueryParameter("api_key", ApiToken); + AddRetry(request); var result = await Api.Request(request); return Mapper.Map(result); } + public async Task Find(string externalId, ExternalSource source) + { + var request = new Request($"find/{externalId}", BaseUri, HttpMethod.Get); + request.FullUri = request.FullUri.AddQueryParameter("api_key", ApiToken); + AddRetry(request); + + request.AddQueryString("external_source", source.ToString()); + + return await Api.Request(request); + } + + public async Task GetTvExternals(int theMovieDbId) + { + var request = new Request($"/tv/{theMovieDbId}/external_ids", BaseUri, HttpMethod.Get); + request.FullUri = request.FullUri.AddQueryParameter("api_key", ApiToken); + AddRetry(request); + + return await Api.Request(request); + } + public async Task> SimilarMovies(int movieId) { var request = new Request($"movie/{movieId}/similar", BaseUri, HttpMethod.Get); request.FullUri = request.FullUri.AddQueryParameter("api_key", ApiToken); + AddRetry(request); var result = await Api.Request>(request); return Mapper.Map>(result.results); @@ -44,6 +67,7 @@ namespace Ombi.Api.TheMovieDb var request = new Request($"movie/{movieId}", BaseUri, HttpMethod.Get); request.FullUri = request.FullUri.AddQueryParameter("api_key", ApiToken); request.FullUri = request.FullUri.AddQueryParameter("append_to_response", "videos,release_dates"); + AddRetry(request); var result = await Api.Request(request); return Mapper.Map(result); } @@ -53,6 +77,7 @@ namespace Ombi.Api.TheMovieDb var request = new Request($"search/movie", BaseUri, HttpMethod.Get); request.FullUri = request.FullUri.AddQueryParameter("api_key", ApiToken); request.FullUri = request.FullUri.AddQueryParameter("query", searchTerm); + AddRetry(request); var result = await Api.Request>(request); return Mapper.Map>(result.results); @@ -62,6 +87,7 @@ namespace Ombi.Api.TheMovieDb { var request = new Request($"movie/popular", BaseUri, HttpMethod.Get); request.FullUri = request.FullUri.AddQueryParameter("api_key", ApiToken); + AddRetry(request); var result = await Api.Request>(request); return Mapper.Map>(result.results); } @@ -70,6 +96,7 @@ namespace Ombi.Api.TheMovieDb { var request = new Request($"movie/top_rated", BaseUri, HttpMethod.Get); request.FullUri = request.FullUri.AddQueryParameter("api_key", ApiToken); + AddRetry(request); var result = await Api.Request>(request); return Mapper.Map>(result.results); } @@ -78,6 +105,7 @@ namespace Ombi.Api.TheMovieDb { var request = new Request($"movie/upcoming", BaseUri, HttpMethod.Get); request.FullUri = request.FullUri.AddQueryParameter("api_key", ApiToken); + AddRetry(request); var result = await Api.Request>(request); return Mapper.Map>(result.results); } @@ -86,9 +114,14 @@ namespace Ombi.Api.TheMovieDb { var request = new Request($"movie/now_playing", BaseUri, HttpMethod.Get); request.FullUri = request.FullUri.AddQueryParameter("api_key", ApiToken); + AddRetry(request); var result = await Api.Request>(request); return Mapper.Map>(result.results); } - + private static void AddRetry(Request request) + { + request.Retry = true; + request.StatusCodeToRetry.Add((HttpStatusCode)429); + } } } diff --git a/src/Ombi/ClientApp/app/interfaces/ISettings.ts b/src/Ombi/ClientApp/app/interfaces/ISettings.ts index 1ba2c4843..c79860801 100644 --- a/src/Ombi/ClientApp/app/interfaces/ISettings.ts +++ b/src/Ombi/ClientApp/app/interfaces/ISettings.ts @@ -125,6 +125,7 @@ export interface IJobSettings { automaticUpdater: string; userImporter: string; sickRageSync: string; + refreshMetadata: string; } export interface IIssueSettings extends ISettings { @@ -193,3 +194,18 @@ export interface IDogNzbSettings extends ISettings { export interface IIssueCategory extends ISettings { value: string; } + +export interface ICronTestModel { + success: boolean; + message: string; + schedule: Date[]; +} + +export interface ICronViewModelBody { + expression: string; +} + +export interface IJobSettingsViewModel { + result: boolean; + message: string; +} diff --git a/src/Ombi/ClientApp/app/services/settings.service.ts b/src/Ombi/ClientApp/app/services/settings.service.ts index 059df61e8..54f3458d5 100644 --- a/src/Ombi/ClientApp/app/services/settings.service.ts +++ b/src/Ombi/ClientApp/app/services/settings.service.ts @@ -7,6 +7,8 @@ import { IAbout, IAuthenticationSettings, ICouchPotatoSettings, + ICronTestModel, + ICronViewModelBody, ICustomizationSettings, IDiscordNotifcationSettings, IDogNzbSettings, @@ -14,6 +16,7 @@ import { IEmbySettings, IIssueSettings, IJobSettings, + IJobSettingsViewModel, ILandingPageSettings, IMattermostNotifcationSettings, IMobileNotifcationSettings, @@ -231,10 +234,15 @@ export class SettingsService extends ServiceHelpers { return this.http.get(`${this.url}/jobs`, {headers: this.headers}); } - public saveJobSettings(settings: IJobSettings): Observable { + public saveJobSettings(settings: IJobSettings): Observable { return this.http - .post(`${this.url}/jobs`, JSON.stringify(settings), {headers: this.headers}); - } + .post(`${this.url}/jobs`, JSON.stringify(settings), {headers: this.headers}); + } + + public testCron(body: ICronViewModelBody): Observable { + return this.http + .post(`${this.url}/testcron`, JSON.stringify(body), {headers: this.headers}); + } public getSickRageSettings(): Observable { return this.http.get(`${this.url}/sickrage`, {headers: this.headers}); diff --git a/src/Ombi/ClientApp/app/settings/jobs/jobs.component.html b/src/Ombi/ClientApp/app/settings/jobs/jobs.component.html index ff5e56ed8..02eb51d77 100644 --- a/src/Ombi/ClientApp/app/settings/jobs/jobs.component.html +++ b/src/Ombi/ClientApp/app/settings/jobs/jobs.component.html @@ -12,29 +12,34 @@ The Sonarr Sync is required +
The SickRage Sync is required +
The Radarr Sync is required +
The CouchPotato Sync is required +
The Automatic Update is required +
@@ -50,21 +55,37 @@ The Plex Sync is required +
The Emby Sync is required +
The User Importer is required + +
+ +
+ + + The Refresh Metadata is required +
-
\ No newline at end of file +
+ + +
    +
  • {{item | date:'short'}}
  • +
+
\ No newline at end of file diff --git a/src/Ombi/ClientApp/app/settings/jobs/jobs.component.ts b/src/Ombi/ClientApp/app/settings/jobs/jobs.component.ts index f547c5056..380cef8de 100644 --- a/src/Ombi/ClientApp/app/settings/jobs/jobs.component.ts +++ b/src/Ombi/ClientApp/app/settings/jobs/jobs.component.ts @@ -1,7 +1,10 @@ import { Component, OnInit } from "@angular/core"; + import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { NotificationService, SettingsService } from "../../services"; +import { ICronTestModel } from "./../../interfaces"; + @Component({ templateUrl: "./jobs.component.html", }) @@ -10,6 +13,8 @@ export class JobsComponent implements OnInit { public form: FormGroup; public profilesRunning: boolean; + public testModel: ICronTestModel; + public displayTest: boolean; constructor(private readonly settingsService: SettingsService, private readonly fb: FormBuilder, @@ -26,7 +31,19 @@ export class JobsComponent implements OnInit { sonarrSync: [x.radarrSync, Validators.required], radarrSync: [x.sonarrSync, Validators.required], sickRageSync: [x.sickRageSync, Validators.required], - }); + refreshMetadata: [x.refreshMetadata, Validators.required], + }); + }); + } + + public testCron(expression: string) { + this.settingsService.testCron({ expression }).subscribe(x => { + if(x.success) { + this.testModel = x; + this.displayTest = true; + } else { + this.notificationService.error(x.message); + } }); } @@ -37,10 +54,10 @@ export class JobsComponent implements OnInit { } const settings = form.value; this.settingsService.saveJobSettings(settings).subscribe(x => { - if (x) { + if (x.result) { this.notificationService.success("Successfully saved the job settings"); } else { - this.notificationService.success("There was an error when saving the job settings"); + this.notificationService.error("There was an error when saving the job settings. " + x.message); } }); } diff --git a/src/Ombi/ClientApp/app/settings/settings.module.ts b/src/Ombi/ClientApp/app/settings/settings.module.ts index f10df8448..c95aa4362 100644 --- a/src/Ombi/ClientApp/app/settings/settings.module.ts +++ b/src/Ombi/ClientApp/app/settings/settings.module.ts @@ -41,7 +41,7 @@ import { WikiComponent } from "./wiki.component"; import { SettingsMenuComponent } from "./settingsmenu.component"; -import { AutoCompleteModule, CalendarModule, InputSwitchModule, InputTextModule, MenuModule, RadioButtonModule, TooltipModule } from "primeng/primeng"; +import { AutoCompleteModule, CalendarModule, DialogModule, InputSwitchModule, InputTextModule, MenuModule, RadioButtonModule, TooltipModule } from "primeng/primeng"; const routes: Routes = [ { path: "Ombi", component: OmbiComponent, canActivate: [AuthGuard] }, @@ -88,6 +88,7 @@ const routes: Routes = [ ClipboardModule, PipeModule, RadioButtonModule, + DialogModule, ], declarations: [ SettingsMenuComponent, @@ -139,4 +140,4 @@ const routes: Routes = [ ], }) -export class SettingsModule { } +export class SettingsModule { } \ No newline at end of file diff --git a/src/Ombi/Controllers/SettingsController.cs b/src/Ombi/Controllers/SettingsController.cs index c68a648c8..c0148c1bb 100644 --- a/src/Ombi/Controllers/SettingsController.cs +++ b/src/Ombi/Controllers/SettingsController.cs @@ -5,15 +5,18 @@ using System.Linq; using System.Net; using System.Net.Http; using System.Net.Http.Headers; +using System.Reflection; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using AutoMapper; using Hangfire; +using Hangfire.RecurringJobExtensions; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Caching.Memory; using Microsoft.Extensions.PlatformAbstractions; +using NCrontab; using Ombi.Api.Emby; using Ombi.Attributes; using Ombi.Core.Models.UI; @@ -465,7 +468,8 @@ namespace Ombi.Controllers j.PlexContentSync = j.PlexContentSync.HasValue() ? j.PlexContentSync : JobSettingsHelper.PlexContent(j); j.UserImporter = j.UserImporter.HasValue() ? j.UserImporter : JobSettingsHelper.UserImporter(j); j.SickRageSync = j.SickRageSync.HasValue() ? j.SickRageSync : JobSettingsHelper.SickRageSync(j); - + j.RefreshMetadata = j.RefreshMetadata.HasValue() ? j.RefreshMetadata : JobSettingsHelper.RefreshMetadata(j); + return j; } @@ -475,9 +479,71 @@ namespace Ombi.Controllers /// The settings. /// [HttpPost("jobs")] - public async Task JobSettings([FromBody]JobSettings settings) + public async Task JobSettings([FromBody]JobSettings settings) { - return await Save(settings); + // Verify that we have correct CRON's + foreach (var propertyInfo in settings.GetType() + .GetProperties(BindingFlags.Public | BindingFlags.Instance)) + { + if (propertyInfo.Name.Equals("Id", StringComparison.CurrentCultureIgnoreCase)) + { + continue; + } + var expression = (string)propertyInfo.GetValue(settings, null); + + try + { + var r = CrontabSchedule.TryParse(expression); + if (r == null) + { + return new JobSettingsViewModel + { + Message = $"{propertyInfo.Name} does not have a valid CRON Expression" + }; + } + } + catch (Exception) + { + return new JobSettingsViewModel + { + Message = $"{propertyInfo.Name} does not have a valid CRON Expression" + }; + } + } + var result = await Save(settings); + + return new JobSettingsViewModel + { + Result = result + }; + } + + [HttpPost("testcron")] + public CronTestModel TestCron([FromBody] CronViewModelBody body) + { + var model = new CronTestModel(); + try + { + var time = DateTime.UtcNow; + var result = CrontabSchedule.TryParse(body.Expression); + for (int i = 0; i < 10; i++) + { + var next = result.GetNextOccurrence(time); + model.Schedule.Add(next); + time = next; + } + model.Success = true; + return model; + } + catch (Exception) + { + return new CronTestModel + { + Message = $"CRON Expression {body.Expression} is not valid" + }; + } + + } diff --git a/src/Ombi/Models/CronTestModel.cs b/src/Ombi/Models/CronTestModel.cs new file mode 100644 index 000000000..9698afbff --- /dev/null +++ b/src/Ombi/Models/CronTestModel.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; + +namespace Ombi.Models +{ + public class CronTestModel + { + public bool Success { get; set; } + public string Message { get; set; } + public List Schedule { get; set; } = new List(); + } +} \ No newline at end of file diff --git a/src/Ombi/Models/CronViewModelBody.cs b/src/Ombi/Models/CronViewModelBody.cs new file mode 100644 index 000000000..cd961eda1 --- /dev/null +++ b/src/Ombi/Models/CronViewModelBody.cs @@ -0,0 +1,7 @@ +namespace Ombi.Models +{ + public class CronViewModelBody + { + public string Expression { get; set; } + } +} \ No newline at end of file diff --git a/src/Ombi/Models/JobSettingsViewModel.cs b/src/Ombi/Models/JobSettingsViewModel.cs new file mode 100644 index 000000000..75006b86a --- /dev/null +++ b/src/Ombi/Models/JobSettingsViewModel.cs @@ -0,0 +1,8 @@ +namespace Ombi.Models +{ + public class JobSettingsViewModel + { + public bool Result { get; set; } + public string Message { get; set; } + } +} \ No newline at end of file diff --git a/src/Ombi/Ombi.csproj b/src/Ombi/Ombi.csproj index 0c2c73360..5a465fb76 100644 --- a/src/Ombi/Ombi.csproj +++ b/src/Ombi/Ombi.csproj @@ -66,6 +66,7 @@ + From 94c713b3b518c3f91933d3a621262f0f2927952a Mon Sep 17 00:00:00 2001 From: Jamie Date: Fri, 16 Mar 2018 08:21:56 +0000 Subject: [PATCH 21/59] Fixed #2074 and #2079 --- src/Ombi.Schedule/Processor/ChangeLogProcessor.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Ombi.Schedule/Processor/ChangeLogProcessor.cs b/src/Ombi.Schedule/Processor/ChangeLogProcessor.cs index 09ceed5d3..f3053876b 100644 --- a/src/Ombi.Schedule/Processor/ChangeLogProcessor.cs +++ b/src/Ombi.Schedule/Processor/ChangeLogProcessor.cs @@ -78,9 +78,9 @@ namespace Ombi.Schedule.Processor Downloads = new List() }; - var releaseTag = latestRelease.InnerText.Substring(0, 6); if (masterBranch) { + var releaseTag = latestRelease.InnerText.Substring(0, 9); await GetGitubRelease(release, releaseTag); } else @@ -147,7 +147,7 @@ namespace Ombi.Schedule.Processor var builds = await _api.Request(request); var jobId = builds.build.jobs.FirstOrDefault()?.jobId ?? string.Empty; - if (builds.build.finished == DateTime.MinValue) + if (builds.build.finished == DateTime.MinValue || builds.build.status.Equals("failed")) { return; } From df95962aa6fd3571e95d8e412ac9a62a331851e8 Mon Sep 17 00:00:00 2001 From: Jamie Date: Fri, 16 Mar 2018 14:22:53 +0000 Subject: [PATCH 22/59] Made a start on adding tv shows for the recently added !wip --- src/Ombi.Core/Engine/IRecentlyAddedEngine.cs | 2 + src/Ombi.Core/Engine/RecentlyAddedEngine.cs | 92 +++++++++++++++++-- src/Ombi.Core/Models/RecentlyAddedTvModel.cs | 19 ++++ .../app/interfaces/IRecentlyAdded.ts | 5 + .../recentlyAdded.component.html | 22 +++-- .../recentlyAdded/recentlyAdded.component.ts | 79 +++++++++------- .../app/services/recentlyAdded.service.ts | 13 ++- .../ClientApp/app/settings/settings.module.ts | 2 +- src/Ombi/Controllers/ImagesController.cs | 11 ++- .../Controllers/RecentlyAddedController.cs | 31 ++++++- src/Ombi/Models/RecentlyAddedRangeModel.cs | 10 -- 11 files changed, 220 insertions(+), 66 deletions(-) create mode 100644 src/Ombi.Core/Models/RecentlyAddedTvModel.cs delete mode 100644 src/Ombi/Models/RecentlyAddedRangeModel.cs diff --git a/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs b/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs index 5b2988c8e..c119abbb4 100644 --- a/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs +++ b/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs @@ -8,5 +8,7 @@ namespace Ombi.Core.Engine { IEnumerable GetRecentlyAddedMovies(); IEnumerable GetRecentlyAddedMovies(DateTime from, DateTime to); + IEnumerable GetRecentlyAddedTv(DateTime from, DateTime to, bool groupBySeason); + IEnumerable GetRecentlyAddedTv(bool groupBySeason); } } \ No newline at end of file diff --git a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs index bfea4dba2..b8cc0ee6b 100644 --- a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs +++ b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Internal; using Ombi.Core.Models; +using Ombi.Helpers; using Ombi.Store.Entities; using Ombi.Store.Repository; @@ -24,22 +25,54 @@ namespace Ombi.Core.Engine public IEnumerable GetRecentlyAddedMovies(DateTime from, DateTime to) { - var model = new HashSet(); var plexMovies = _plex.GetAll().Where(x => x.Type == PlexMediaTypeEntity.Movie && x.AddedAt > from && x.AddedAt < to); var embyMovies = _emby.GetAll().Where(x => x.Type == EmbyMediaType.Movie && x.AddedAt > from && x.AddedAt < to); - - TransformPlexMovies(plexMovies, model); - TransformEmbyMovies(embyMovies, model); - - return model.Take(30); + + return GetRecentlyAddedMovies(plexMovies, embyMovies).Take(30); } public IEnumerable GetRecentlyAddedMovies() { - var model = new HashSet(); var plexMovies = _plex.GetAll().Where(x => x.Type == PlexMediaTypeEntity.Movie); var embyMovies = _emby.GetAll().Where(x => x.Type == EmbyMediaType.Movie); + return GetRecentlyAddedMovies(plexMovies, embyMovies); + } + + public IEnumerable GetRecentlyAddedTv(DateTime from, DateTime to, bool groupBySeason) + { + var plexTv = _plex.GetAll().Where(x => x.Type == PlexMediaTypeEntity.Show && x.AddedAt > from && x.AddedAt < to); + var embyTv = _emby.GetAll().Where(x => x.Type == EmbyMediaType.Series && x.AddedAt > from && x.AddedAt < to); + + return GetRecentlyAddedTv(plexTv, embyTv, groupBySeason).Take(30); + } + + + public IEnumerable GetRecentlyAddedTv(bool groupBySeason) + { + var plexTv = _plex.GetAll().Where(x => x.Type == PlexMediaTypeEntity.Show); + var embyTv = _emby.GetAll().Where(x => x.Type == EmbyMediaType.Series); + + return GetRecentlyAddedTv(plexTv, embyTv, groupBySeason); + } + + private IEnumerable GetRecentlyAddedTv(IQueryable plexTv, IQueryable embyTv, + bool groupBySeason) + { + var model = new HashSet(); + TransformPlexShows(plexTv, model); + TransformEmbyShows(embyTv, model); + + if (groupBySeason) + { + return model.DistinctBy(x => x.SeasonNumber); + } + + return model; + } + private IEnumerable GetRecentlyAddedMovies(IQueryable plexMovies, IQueryable embyMovies) + { + var model = new HashSet(); TransformPlexMovies(plexMovies, model); TransformEmbyMovies(embyMovies, model); @@ -76,5 +109,50 @@ namespace Ombi.Core.Engine }); } } + + private static void TransformPlexShows(IQueryable plexShows, HashSet model) + { + foreach (var plex in plexShows) + { + foreach (var season in plex.Seasons) + { + foreach (var episode in plex.Episodes) + { + model.Add(new RecentlyAddedTvModel + { + Id = plex.Id, + ImdbId = plex.ImdbId, + TheMovieDbId = plex.TheMovieDbId, + AddedAt = plex.AddedAt, + Title = plex.Title, + Quality = plex.Quality, + ReleaseYear = plex.ReleaseYear, + TvDbId = plex.TvDbId, + EpisodeNumber = episode.EpisodeNumber, + SeasonNumber = season.SeasonNumber + }); + } + } + } + } + + private static void TransformEmbyShows(IQueryable embyShows, HashSet model) + { + foreach (var emby in embyShows) + { + foreach (var episode in emby.Episodes) + { + model.Add(new RecentlyAddedTvModel + { + Id = emby.Id, + ImdbId = emby.ProviderId, + AddedAt = emby.AddedAt, + Title = emby.Title, + EpisodeNumber = episode.EpisodeNumber, + SeasonNumber = episode.SeasonNumber + }); + } + } + } } } diff --git a/src/Ombi.Core/Models/RecentlyAddedTvModel.cs b/src/Ombi.Core/Models/RecentlyAddedTvModel.cs new file mode 100644 index 000000000..dd485604d --- /dev/null +++ b/src/Ombi.Core/Models/RecentlyAddedTvModel.cs @@ -0,0 +1,19 @@ +using System; + +namespace Ombi.Core.Models +{ + public class RecentlyAddedTvModel + { + public int Id { get; set; } + public string Title { get; set; } // Series Title + public string Overview { get; set; } + public string ImdbId { get; set; } + public string TvDbId { get; set; } + public string TheMovieDbId { get; set; } + public string ReleaseYear { get; set; } + public DateTime AddedAt { get; set; } + public string Quality { get; set; } + public int SeasonNumber { get; set; } + public int EpisodeNumber { get; set; } + } +} \ No newline at end of file diff --git a/src/Ombi/ClientApp/app/interfaces/IRecentlyAdded.ts b/src/Ombi/ClientApp/app/interfaces/IRecentlyAdded.ts index bce430f76..357a70d8b 100644 --- a/src/Ombi/ClientApp/app/interfaces/IRecentlyAdded.ts +++ b/src/Ombi/ClientApp/app/interfaces/IRecentlyAdded.ts @@ -12,6 +12,11 @@ export interface IRecentlyAddedMovies { posterPath: string; } +export interface IRecentlyAddedTvShows extends IRecentlyAddedMovies { + seasonNumber: number; + episodeNumber: number; +} + export interface IRecentlyAddedRangeModel { from: Date; to: Date; diff --git a/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.html b/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.html index 85c231a40..f9234f4a4 100644 --- a/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.html +++ b/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.html @@ -4,16 +4,26 @@
- - + poster + {{movie.title}} - - + + -
\ No newline at end of file + +
+ + + + poster + {{t.title}} + + + + + diff --git a/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts b/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts index 660a83d52..d540a6b2d 100644 --- a/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts +++ b/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts @@ -2,7 +2,7 @@ import { Component, OnInit } from "@angular/core"; import { NguCarousel } from "@ngu/carousel"; import { ImageService, RecentlyAddedService } from "../services"; -import { IRecentlyAddedMovies, IRecentlyAddedRangeModel } from "./../interfaces"; +import { IRecentlyAddedMovies, IRecentlyAddedTvShows } from "./../interfaces"; @Component({ templateUrl: "recentlyAdded.component.html", @@ -15,8 +15,9 @@ import { IRecentlyAddedMovies, IRecentlyAddedRangeModel } from "./../interfaces" width: 50px; height: 50px; box-shadow: 1px 2px 10px -1px rgba(0, 0, 0, .3); - border-radius: 999px; + border-radius: 100%; left: 0; + background: #df691a; } .rightRs { @@ -27,14 +28,16 @@ import { IRecentlyAddedMovies, IRecentlyAddedRangeModel } from "./../interfaces" width: 50px; height: 50px; box-shadow: 1px 2px 10px -1px rgba(0, 0, 0, .3); - border-radius: 999px; + border-radius: 100%; right: 0; + background: #df691a; } `], }) export class RecentlyAddedComponent implements OnInit { public movies: IRecentlyAddedMovies[]; + public tv: IRecentlyAddedTvShows[]; public range: Date[]; // https://github.com/sheikalthaf/ngu-carousel @@ -44,28 +47,8 @@ export class RecentlyAddedComponent implements OnInit { private imageService: ImageService) {} public ngOnInit() { - const weekAgo = new Date(); - weekAgo.setDate(weekAgo.getDate() - 7); - - const today =new Date(); - const initModel = {from: weekAgo, to: today}; - this.recentlyAddedService.getRecentlyAddedMovies(initModel).subscribe(x => { - this.movies = x; - - this.movies.forEach((movie) => { - if(movie.theMovieDbId) { - this.imageService.getMoviePoster(movie.theMovieDbId).subscribe(p => { - movie.posterPath = p; - }); - } else if(movie.imdbId) { - this.imageService.getMoviePoster(movie.imdbId).subscribe(p => { - movie.posterPath = p; - }); - } else { - movie.posterPath = ""; - } - }); - }); + this.getMovies(); + this.getShows(); this.carouselTile = { grid: {xs: 2, sm: 3, md: 3, lg: 5, all: 0}, @@ -89,12 +72,46 @@ export class RecentlyAddedComponent implements OnInit { // If we do not have a second date then just set it to now this.range[1] = new Date(); } - const initModel = {from: this.range[0], to: this.range[1]}; - this.recentlyAddedService.getRecentlyAddedMovies(initModel).subscribe(x => this.movies = x); + this.getMovies(); } - - public page(event: any) { - debugger; - console.log(event); + + private getShows() { + this.recentlyAddedService.getRecentlyAddedTv().subscribe(x => { + this.tv = x; + + this.tv.forEach((t) => { + if(t.theMovieDbId) { + this.imageService.getTvPoster(t.imdbId).subscribe(p => { + t.posterPath = p; + }); + } else if(t.imdbId) { + this.imageService.getMoviePoster(t.imdbId).subscribe(p => { + t.posterPath = p; + }); + } else { + t.posterPath = ""; + } + }); + }); + } + + private getMovies() { + this.recentlyAddedService.getRecentlyAddedMovies().subscribe(x => { + this.movies = x; + + this.movies.forEach((movie) => { + if(movie.theMovieDbId) { + this.imageService.getMoviePoster(movie.theMovieDbId).subscribe(p => { + movie.posterPath = p; + }); + } else if(movie.imdbId) { + this.imageService.getMoviePoster(movie.imdbId).subscribe(p => { + movie.posterPath = p; + }); + } else { + movie.posterPath = ""; + } + }); + }); } } diff --git a/src/Ombi/ClientApp/app/services/recentlyAdded.service.ts b/src/Ombi/ClientApp/app/services/recentlyAdded.service.ts index 55059ec76..366c6e583 100644 --- a/src/Ombi/ClientApp/app/services/recentlyAdded.service.ts +++ b/src/Ombi/ClientApp/app/services/recentlyAdded.service.ts @@ -4,7 +4,7 @@ import { Injectable } from "@angular/core"; import { HttpClient } from "@angular/common/http"; import { Observable } from "rxjs/Rx"; -import { IRecentlyAddedMovies, IRecentlyAddedRangeModel } from "./../interfaces"; +import { IRecentlyAddedMovies, IRecentlyAddedTvShows } from "./../interfaces"; import { ServiceHelpers } from "./service.helpers"; @Injectable() @@ -12,7 +12,14 @@ export class RecentlyAddedService extends ServiceHelpers { constructor(http: HttpClient, public platformLocation: PlatformLocation) { super(http, "/api/v1/recentlyadded/", platformLocation); } - public getRecentlyAddedMovies(model: IRecentlyAddedRangeModel): Observable { - return this.http.post(`${this.url}movies/`,JSON.stringify(model), {headers: this.headers}); + public getRecentlyAddedMovies(): Observable { + return this.http.get(`${this.url}movies/`, {headers: this.headers}); + } + + public getRecentlyAddedTv(): Observable { + return this.http.get(`${this. url}tv/`, {headers: this.headers}); + } + public getRecentlyAddedTvGrouped(): Observable { + return this.http.get(`${this.url}tv/grouped`, {headers: this.headers}); } } diff --git a/src/Ombi/ClientApp/app/settings/settings.module.ts b/src/Ombi/ClientApp/app/settings/settings.module.ts index c95aa4362..29866a273 100644 --- a/src/Ombi/ClientApp/app/settings/settings.module.ts +++ b/src/Ombi/ClientApp/app/settings/settings.module.ts @@ -140,4 +140,4 @@ const routes: Routes = [ ], }) -export class SettingsModule { } \ No newline at end of file +export class SettingsModule { } diff --git a/src/Ombi/Controllers/ImagesController.cs b/src/Ombi/Controllers/ImagesController.cs index 182fb9a3a..2cee60476 100644 --- a/src/Ombi/Controllers/ImagesController.cs +++ b/src/Ombi/Controllers/ImagesController.cs @@ -67,12 +67,17 @@ namespace Ombi.Controllers if (images.movieposter?.Any() ?? false) { - return images.movieposter.OrderBy(x => x.likes).Select(x => x.url).FirstOrDefault(); + var enImage = images.movieposter.Where(x => x.lang == "en").OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault(); + if (enImage == null) + { + return images.movieposter.OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault(); + } + return enImage; } - if (images.hdmovieclearart?.Any() ?? false) + if (images.moviethumb?.Any() ?? false) { - return images.hdmovieclearart.OrderBy(x => x.likes).Select(x => x.url).FirstOrDefault(); + return images.moviethumb.OrderBy(x => x.likes).Select(x => x.url).FirstOrDefault(); } return string.Empty; diff --git a/src/Ombi/Controllers/RecentlyAddedController.cs b/src/Ombi/Controllers/RecentlyAddedController.cs index c2574bee3..fb4446efd 100644 --- a/src/Ombi/Controllers/RecentlyAddedController.cs +++ b/src/Ombi/Controllers/RecentlyAddedController.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; @@ -21,13 +22,33 @@ namespace Ombi.Controllers private readonly IRecentlyAddedEngine _recentlyAdded; /// - /// Returns the recently added movies between two dates + /// Returns the recently added movies for the past 7 days /// - [HttpPost("movies")] + [HttpGet("movies")] [ProducesResponseType(typeof(IEnumerable), 200)] - public IEnumerable GetRecentlyAddedMovies([FromBody] RecentlyAddedRangeModel model) + public IEnumerable GetRecentlyAddedMovies() { - return _recentlyAdded.GetRecentlyAddedMovies(model.From, model.To); + return _recentlyAdded.GetRecentlyAddedMovies(DateTime.UtcNow.AddDays(-7), DateTime.UtcNow); + } + + /// + /// Returns the recently added tv shows for the past 7 days + /// + [HttpGet("tv")] + [ProducesResponseType(typeof(IEnumerable), 200)] + public IEnumerable GetRecentlyAddedShows() + { + return _recentlyAdded.GetRecentlyAddedTv(DateTime.UtcNow.AddDays(-7), DateTime.UtcNow, false); + } + + /// + /// Returns the recently added tv shows for the past 7 days and groups them by season + /// + [HttpGet("tv/grouped")] + [ProducesResponseType(typeof(IEnumerable), 200)] + public IEnumerable GetRecentlyAddedShowsGrouped() + { + return _recentlyAdded.GetRecentlyAddedTv(DateTime.UtcNow.AddDays(-7), DateTime.UtcNow, true); } } } \ No newline at end of file diff --git a/src/Ombi/Models/RecentlyAddedRangeModel.cs b/src/Ombi/Models/RecentlyAddedRangeModel.cs deleted file mode 100644 index 208f9cb49..000000000 --- a/src/Ombi/Models/RecentlyAddedRangeModel.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace Ombi.Models -{ - public class RecentlyAddedRangeModel - { - public DateTime From { get; set; } - public DateTime To { get; set; } - } -} \ No newline at end of file From 3496cce670d167b3966304f7cb6d15201e81b365 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Fri, 16 Mar 2018 21:24:49 +0000 Subject: [PATCH 23/59] Got tv working, just need to do styling. I suck at this part !wip --- src/Ombi.Core/Engine/RecentlyAddedEngine.cs | 8 ++--- .../app/interfaces/IRecentlyAdded.ts | 1 + .../recentlyAdded.component.html | 30 +++++++++++++--- .../recentlyAdded/recentlyAdded.component.ts | 36 ++++++++++++------- src/Ombi/Controllers/ImagesController.cs | 17 ++++++--- 5 files changed, 67 insertions(+), 25 deletions(-) diff --git a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs index b8cc0ee6b..aab5ea607 100644 --- a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs +++ b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs @@ -40,8 +40,8 @@ namespace Ombi.Core.Engine public IEnumerable GetRecentlyAddedTv(DateTime from, DateTime to, bool groupBySeason) { - var plexTv = _plex.GetAll().Where(x => x.Type == PlexMediaTypeEntity.Show && x.AddedAt > from && x.AddedAt < to); - var embyTv = _emby.GetAll().Where(x => x.Type == EmbyMediaType.Series && x.AddedAt > from && x.AddedAt < to); + var plexTv = _plex.GetAll().Include(x => x.Seasons).Include(x => x.Episodes).Where(x => x.Type == PlexMediaTypeEntity.Show && x.AddedAt > from && x.AddedAt < to); + var embyTv = _emby.GetAll().Include(x => x.Episodes).Where(x => x.Type == EmbyMediaType.Series && x.AddedAt > from && x.AddedAt < to); return GetRecentlyAddedTv(plexTv, embyTv, groupBySeason).Take(30); } @@ -49,8 +49,8 @@ namespace Ombi.Core.Engine public IEnumerable GetRecentlyAddedTv(bool groupBySeason) { - var plexTv = _plex.GetAll().Where(x => x.Type == PlexMediaTypeEntity.Show); - var embyTv = _emby.GetAll().Where(x => x.Type == EmbyMediaType.Series); + var plexTv = _plex.GetAll().Include(x => x.Seasons).Include(x => x.Episodes).Where(x => x.Type == PlexMediaTypeEntity.Show); + var embyTv = _emby.GetAll().Include(x => x.Episodes).Where(x => x.Type == EmbyMediaType.Series); return GetRecentlyAddedTv(plexTv, embyTv, groupBySeason); } diff --git a/src/Ombi/ClientApp/app/interfaces/IRecentlyAdded.ts b/src/Ombi/ClientApp/app/interfaces/IRecentlyAdded.ts index 357a70d8b..e3b62b333 100644 --- a/src/Ombi/ClientApp/app/interfaces/IRecentlyAdded.ts +++ b/src/Ombi/ClientApp/app/interfaces/IRecentlyAdded.ts @@ -15,6 +15,7 @@ export interface IRecentlyAddedMovies { export interface IRecentlyAddedTvShows extends IRecentlyAddedMovies { seasonNumber: number; episodeNumber: number; + tvDbId: number; } export interface IRecentlyAddedRangeModel { diff --git a/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.html b/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.html index f9234f4a4..ee60b7c87 100644 --- a/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.html +++ b/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.html @@ -1,13 +1,31 @@

Recently Added

- +

- + - poster - {{movie.title}} +
+ poster +
{{movie.title}}
+
+ +
@@ -22,6 +40,10 @@ poster {{t.title}} +
+ Season: {{t.seasonNumber}} +
+ Episode: {{t.episodeNumber}}
diff --git a/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts b/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts index d540a6b2d..c5c09f814 100644 --- a/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts +++ b/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts @@ -39,6 +39,8 @@ export class RecentlyAddedComponent implements OnInit { public movies: IRecentlyAddedMovies[]; public tv: IRecentlyAddedTvShows[]; public range: Date[]; + + public groupTv: boolean; // https://github.com/sheikalthaf/ngu-carousel public carouselTile: NguCarousel; @@ -74,25 +76,33 @@ export class RecentlyAddedComponent implements OnInit { } this.getMovies(); } + + public change() { + this.getShows(); + } private getShows() { - this.recentlyAddedService.getRecentlyAddedTv().subscribe(x => { - this.tv = x; - - this.tv.forEach((t) => { - if(t.theMovieDbId) { - this.imageService.getTvPoster(t.imdbId).subscribe(p => { - t.posterPath = p; + if(this.groupTv) { + this.recentlyAddedService.getRecentlyAddedTvGrouped().subscribe(x => { + this.tv = x; + + this.tv.forEach((t) => { + this.imageService.getTvPoster(t.tvDbId).subscribe(p => { + t.posterPath = p; + }); }); - } else if(t.imdbId) { - this.imageService.getMoviePoster(t.imdbId).subscribe(p => { + }); + } else { + this.recentlyAddedService.getRecentlyAddedTv().subscribe(x => { + this.tv = x; + + this.tv.forEach((t) => { + this.imageService.getTvPoster(t.tvDbId).subscribe(p => { t.posterPath = p; }); - } else { - t.posterPath = ""; - } + }); }); - }); + } } private getMovies() { diff --git a/src/Ombi/Controllers/ImagesController.cs b/src/Ombi/Controllers/ImagesController.cs index 2cee60476..9e85f0d56 100644 --- a/src/Ombi/Controllers/ImagesController.cs +++ b/src/Ombi/Controllers/ImagesController.cs @@ -44,11 +44,15 @@ namespace Ombi.Controllers } if (images.tvbanner != null) { - return images.tvbanner.FirstOrDefault()?.url ?? string.Empty; + var enImage = images.tvbanner.Where(x => x.lang == "en").OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault(); + if (enImage == null) + { + return images.tvbanner.OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault(); + } } - if (images.showbackground != null) + if (images.seasonposter != null) { - return images.showbackground.FirstOrDefault()?.url ?? string.Empty; + return images.seasonposter.FirstOrDefault()?.url ?? string.Empty; } return string.Empty; } @@ -97,7 +101,12 @@ namespace Ombi.Controllers if (images.tvposter?.Any() ?? false) { - return images.tvposter.OrderBy(x => x.likes).Select(x => x.url).FirstOrDefault(); + var enImage = images.tvposter.Where(x => x.lang == "en").OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault(); + if (enImage == null) + { + return images.tvposter.OrderByDescending(x => x.likes).Select(x => x.url).FirstOrDefault(); + } + return enImage; } if (images.tvthumb?.Any() ?? false) From 9767380f837eec71c87df7247a7bdfdf5305acbb Mon Sep 17 00:00:00 2001 From: Jamie Date: Thu, 22 Mar 2018 09:18:33 +0000 Subject: [PATCH 24/59] Newsletter almost finished. !wip --- src/Ombi.DependencyInjection/IocExtensions.cs | 1 + src/Ombi.Helpers/NotificationType.cs | 1 + .../EmailBasicTemplate.cs | 17 +- .../INewsletterTemplate.cs | 7 + .../NewsletterTemplate.cs | 46 + .../Ombi.Notifications.Templates.csproj | 3 + .../TemplateBase.cs | 8 + .../Templates/NewsletterTemplate.html | 187 ++++ .../GenericEmailProvider.cs | 6 +- src/Ombi.Schedule/JobSetup.cs | 6 +- .../Jobs/Ombi/HtmlTemplateGenerator.cs | 46 + src/Ombi.Schedule/Jobs/Ombi/INewsletterJob.cs | 9 + src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs | 439 ++++++++ .../Jobs/Ombi/RefreshMetadata.cs | 7 +- src/Ombi.Store/Context/IOmbiContext.cs | 1 + src/Ombi.Store/Context/OmbiContext.cs | 17 +- src/Ombi.Store/Entities/PlexServerContent.cs | 9 + src/Ombi.Store/Entities/RecentlyAddedLog.cs | 19 + ...0180322085345_RecentlyAddedLog.Designer.cs | 934 ++++++++++++++++++ .../20180322085345_RecentlyAddedLog.cs | 33 + .../Migrations/OmbiContextModelSnapshot.cs | 18 +- .../recentlyAdded/recentlyAdded.component.ts | 26 +- src/Ombi/webpack.config.vendor.ts | 2 +- 23 files changed, 1811 insertions(+), 31 deletions(-) create mode 100644 src/Ombi.Notifications.Templates/INewsletterTemplate.cs create mode 100644 src/Ombi.Notifications.Templates/NewsletterTemplate.cs create mode 100644 src/Ombi.Notifications.Templates/TemplateBase.cs create mode 100644 src/Ombi.Notifications.Templates/Templates/NewsletterTemplate.html create mode 100644 src/Ombi.Schedule/Jobs/Ombi/HtmlTemplateGenerator.cs create mode 100644 src/Ombi.Schedule/Jobs/Ombi/INewsletterJob.cs create mode 100644 src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs create mode 100644 src/Ombi.Store/Entities/RecentlyAddedLog.cs create mode 100644 src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.Designer.cs create mode 100644 src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.cs diff --git a/src/Ombi.DependencyInjection/IocExtensions.cs b/src/Ombi.DependencyInjection/IocExtensions.cs index 48c22b40e..92ecf8282 100644 --- a/src/Ombi.DependencyInjection/IocExtensions.cs +++ b/src/Ombi.DependencyInjection/IocExtensions.cs @@ -174,6 +174,7 @@ namespace Ombi.DependencyInjection services.AddTransient(); services.AddTransient(); services.AddTransient(); + services.AddTransient(); } } } diff --git a/src/Ombi.Helpers/NotificationType.cs b/src/Ombi.Helpers/NotificationType.cs index d6466096c..8ea542063 100644 --- a/src/Ombi.Helpers/NotificationType.cs +++ b/src/Ombi.Helpers/NotificationType.cs @@ -13,5 +13,6 @@ WelcomeEmail = 8, IssueResolved = 9, IssueComment = 10, + Newsletter = 11, } } diff --git a/src/Ombi.Notifications.Templates/EmailBasicTemplate.cs b/src/Ombi.Notifications.Templates/EmailBasicTemplate.cs index 4814945e7..b29122be0 100644 --- a/src/Ombi.Notifications.Templates/EmailBasicTemplate.cs +++ b/src/Ombi.Notifications.Templates/EmailBasicTemplate.cs @@ -4,19 +4,26 @@ using System.Text; namespace Ombi.Notifications.Templates { - public class EmailBasicTemplate : IEmailBasicTemplate + public class EmailBasicTemplate : TemplateBase, IEmailBasicTemplate { - public string TemplateLocation + public override string TemplateLocation { get { + if (string.IsNullOrEmpty(_templateLocation)) + { #if DEBUG - return Path.Combine(Directory.GetCurrentDirectory(), "bin", "Debug", "netcoreapp2.0", "Templates", "BasicTemplate.html"); + _templateLocation = Path.Combine(Directory.GetCurrentDirectory(), "bin", "Debug", "netcoreapp2.0", "Templates", + "BasicTemplate.html"); #else - return Path.Combine(Directory.GetCurrentDirectory(), "Templates","BasicTemplate.html"); + _templateLocation = Path.Combine(Directory.GetCurrentDirectory(), "Templates","BasicTemplate.html"); #endif + } + return _templateLocation; } } + + private string _templateLocation; private const string SubjectKey = "{@SUBJECT}"; private const string BodyKey = "{@BODY}"; @@ -31,7 +38,7 @@ namespace Ombi.Notifications.Templates sb.Replace(BodyKey, body); sb.Replace(DateKey, DateTime.Now.ToString("f")); sb.Replace(Poster, string.IsNullOrEmpty(imgsrc) ? string.Empty : $"\"Poster\""); - sb.Replace(Logo, string.IsNullOrEmpty(logo) ? "http://i.imgur.com/qQsN78U.png" : logo); + sb.Replace(Logo, string.IsNullOrEmpty(logo) ? OmbiLogo : logo); return sb.ToString(); } diff --git a/src/Ombi.Notifications.Templates/INewsletterTemplate.cs b/src/Ombi.Notifications.Templates/INewsletterTemplate.cs new file mode 100644 index 000000000..e3302710d --- /dev/null +++ b/src/Ombi.Notifications.Templates/INewsletterTemplate.cs @@ -0,0 +1,7 @@ +namespace Ombi.Notifications.Templates +{ + public interface INewsletterTemplate + { + string LoadTemplate(string subject, string intro, string tableHtml, string logo); + } +} \ No newline at end of file diff --git a/src/Ombi.Notifications.Templates/NewsletterTemplate.cs b/src/Ombi.Notifications.Templates/NewsletterTemplate.cs new file mode 100644 index 000000000..389ff5cd6 --- /dev/null +++ b/src/Ombi.Notifications.Templates/NewsletterTemplate.cs @@ -0,0 +1,46 @@ +using System; +using System.IO; +using System.Text; + +namespace Ombi.Notifications.Templates +{ + public class NewsletterTemplate : TemplateBase, INewsletterTemplate + { + public override string TemplateLocation + { + get + { + if (string.IsNullOrEmpty(_templateLocation)) + { +#if DEBUG + _templateLocation = Path.Combine(Directory.GetCurrentDirectory(), "bin", "Debug", "netcoreapp2.0", "Templates", "NewsletterTemplate.html"); +#else + _templateLocation = Path.Combine(Directory.GetCurrentDirectory(), "Templates", "NewsletterTemplate.html"); +#endif + } + return _templateLocation; + } + } + + private string _templateLocation; + + private const string SubjectKey = "{@SUBJECT}"; + private const string DateKey = "{@DATENOW}"; + private const string Logo = "{@LOGO}"; + private const string TableLocation = "{@RECENTLYADDED}"; + private const string IntroText = "{@INTRO}"; + + + public string LoadTemplate(string subject, string intro, string tableHtml, string logo) + { + var sb = new StringBuilder(File.ReadAllText(TemplateLocation)); + sb.Replace(SubjectKey, subject); + sb.Replace(TableLocation, tableHtml); + sb.Replace(IntroText, intro); + sb.Replace(DateKey, DateTime.Now.ToString("f")); + sb.Replace(Logo, string.IsNullOrEmpty(logo) ? OmbiLogo : logo); + + return sb.ToString(); + } + } +} diff --git a/src/Ombi.Notifications.Templates/Ombi.Notifications.Templates.csproj b/src/Ombi.Notifications.Templates/Ombi.Notifications.Templates.csproj index 085c44dc1..cf310acc9 100644 --- a/src/Ombi.Notifications.Templates/Ombi.Notifications.Templates.csproj +++ b/src/Ombi.Notifications.Templates/Ombi.Notifications.Templates.csproj @@ -9,6 +9,9 @@ + + Always + Always diff --git a/src/Ombi.Notifications.Templates/TemplateBase.cs b/src/Ombi.Notifications.Templates/TemplateBase.cs new file mode 100644 index 000000000..9b9207c9a --- /dev/null +++ b/src/Ombi.Notifications.Templates/TemplateBase.cs @@ -0,0 +1,8 @@ +namespace Ombi.Notifications.Templates +{ + public abstract class TemplateBase + { + public abstract string TemplateLocation { get; } + public virtual string OmbiLogo => "http://i.imgur.com/qQsN78U.png"; + } +} \ No newline at end of file diff --git a/src/Ombi.Notifications.Templates/Templates/NewsletterTemplate.html b/src/Ombi.Notifications.Templates/Templates/NewsletterTemplate.html new file mode 100644 index 000000000..21a10aebb --- /dev/null +++ b/src/Ombi.Notifications.Templates/Templates/NewsletterTemplate.html @@ -0,0 +1,187 @@ + + + + + + Ombi + + + + + + + + + +
  +
+ + + + + + + + + + + +
+ + + + + + + +
+ +
+
+
+

Here is a list of Movies and TV Shows that have recently been added!

+ +
+ + {@RECENTLYADDED} + +
+ + + + + + +
+
 
+ + \ No newline at end of file diff --git a/src/Ombi.Notifications/GenericEmailProvider.cs b/src/Ombi.Notifications/GenericEmailProvider.cs index e28b48c27..462f8918e 100644 --- a/src/Ombi.Notifications/GenericEmailProvider.cs +++ b/src/Ombi.Notifications/GenericEmailProvider.cs @@ -107,9 +107,13 @@ namespace Ombi.Notifications var body = new BodyBuilder { HtmlBody = model.Message, - TextBody = model.Other["PlainTextBody"] }; + if (model.Other.ContainsKey("PlainTextBody")) + { + body.TextBody = model.Other["PlainTextBody"]; + } + var message = new MimeMessage { Body = body.ToMessageBody(), diff --git a/src/Ombi.Schedule/JobSetup.cs b/src/Ombi.Schedule/JobSetup.cs index e73302387..3e8589fea 100644 --- a/src/Ombi.Schedule/JobSetup.cs +++ b/src/Ombi.Schedule/JobSetup.cs @@ -17,7 +17,8 @@ namespace Ombi.Schedule public JobSetup(IPlexContentSync plexContentSync, IRadarrSync radarrSync, IOmbiAutomaticUpdater updater, IEmbyContentSync embySync, IPlexUserImporter userImporter, IEmbyUserImporter embyUserImporter, ISonarrSync cache, ICouchPotatoSync cpCache, - ISettingsService jobsettings, ISickRageSync srSync, IRefreshMetadata refresh) + ISettingsService jobsettings, ISickRageSync srSync, IRefreshMetadata refresh, + INewsletterJob newsletter) { _plexContentSync = plexContentSync; _radarrSync = radarrSync; @@ -30,6 +31,7 @@ namespace Ombi.Schedule _jobSettings = jobsettings; _srSync = srSync; _refreshMetadata = refresh; + _newsletter = newsletter; } private readonly IPlexContentSync _plexContentSync; @@ -43,6 +45,7 @@ namespace Ombi.Schedule private readonly ISickRageSync _srSync; private readonly ISettingsService _jobSettings; private readonly IRefreshMetadata _refreshMetadata; + private readonly INewsletterJob _newsletter; public void Setup() { @@ -60,6 +63,7 @@ namespace Ombi.Schedule RecurringJob.AddOrUpdate(() => _embyUserImporter.Start(), JobSettingsHelper.UserImporter(s)); RecurringJob.AddOrUpdate(() => _plexUserImporter.Start(), JobSettingsHelper.UserImporter(s)); + BackgroundJob.Enqueue(() => _newsletter.Start()); } } } diff --git a/src/Ombi.Schedule/Jobs/Ombi/HtmlTemplateGenerator.cs b/src/Ombi.Schedule/Jobs/Ombi/HtmlTemplateGenerator.cs new file mode 100644 index 000000000..61f4bd7c8 --- /dev/null +++ b/src/Ombi.Schedule/Jobs/Ombi/HtmlTemplateGenerator.cs @@ -0,0 +1,46 @@ +using System.Text; + +namespace Ombi.Schedule.Jobs.Ombi +{ + public abstract class HtmlTemplateGenerator + { + protected virtual void AddParagraph(StringBuilder stringBuilder, string text, int fontSize = 14, string fontWeight = "normal") + { + stringBuilder.AppendFormat("

{0}

", text, fontSize, fontWeight); + } + + protected virtual void AddImageInsideTable(StringBuilder sb, string url, int size = 400) + { + sb.Append(""); + sb.Append(""); + sb.Append($""); + sb.Append(""); + sb.Append(""); + } + + protected virtual void Href(StringBuilder sb, string url) + { + sb.AppendFormat("
", url); + } + + protected virtual void TableData(StringBuilder sb) + { + sb.Append( + ""); + } + + protected virtual void EndTag(StringBuilder sb, string tag) + { + sb.AppendFormat("", tag); + } + + protected virtual void Header(StringBuilder sb, int size, string text, string fontWeight = "normal") + { + sb.AppendFormat( + "{1}", + size, text, fontWeight); + } + + + } +} \ No newline at end of file diff --git a/src/Ombi.Schedule/Jobs/Ombi/INewsletterJob.cs b/src/Ombi.Schedule/Jobs/Ombi/INewsletterJob.cs new file mode 100644 index 000000000..e5e587bec --- /dev/null +++ b/src/Ombi.Schedule/Jobs/Ombi/INewsletterJob.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; + +namespace Ombi.Schedule.Jobs.Ombi +{ + public interface INewsletterJob : IBaseJob + { + Task Start(); + } +} \ No newline at end of file diff --git a/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs b/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs new file mode 100644 index 000000000..544bbc6dd --- /dev/null +++ b/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs @@ -0,0 +1,439 @@ +using System; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Ombi.Api.TheMovieDb; +using Ombi.Api.TheMovieDb.Models; +using Ombi.Api.TvMaze; +using Ombi.Core.Settings; +using Ombi.Helpers; +using Ombi.Notifications; +using Ombi.Notifications.Models; +using Ombi.Notifications.Templates; +using Ombi.Settings.Settings.Models; +using Ombi.Settings.Settings.Models.Notifications; +using Ombi.Store.Entities; +using Ombi.Store.Repository; + +namespace Ombi.Schedule.Jobs.Ombi +{ + public class NewsletterJob : HtmlTemplateGenerator, INewsletterJob + { + public NewsletterJob(IPlexContentRepository plex, IEmbyContentRepository emby, IRepository addedLog, + IMovieDbApi movieApi, ITvMazeApi tvApi, IEmailProvider email, ISettingsService custom, + ISettingsService emailSettings, INotificationTemplatesRepository templateRepo) + { + _plex = plex; + _emby = emby; + _recentlyAddedLog = addedLog; + _movieApi = movieApi; + _tvApi = tvApi; + _email = email; + _customizationSettings = custom; + _templateRepo = templateRepo; + _emailSettings = emailSettings; + } + + private readonly IPlexContentRepository _plex; + private readonly IEmbyContentRepository _emby; + private readonly IRepository _recentlyAddedLog; + private readonly IMovieDbApi _movieApi; + private readonly ITvMazeApi _tvApi; + private readonly IEmailProvider _email; + private readonly ISettingsService _customizationSettings; + private readonly INotificationTemplatesRepository _templateRepo; + private readonly ISettingsService _emailSettings; + + public async Task Start() + { + var template = await _templateRepo.GetTemplate(NotificationAgent.Email, NotificationType.Newsletter); + if (!template.Enabled) + { + return; + } + + var emailSettings = await _emailSettings.GetSettingsAsync(); + if (!ValidateConfiguration(emailSettings)) + { + return; + } + + // Get the Content + var plexContent = _plex.GetAll().Include(x => x.Episodes); + var embyContent = _emby.GetAll().Include(x => x.Episodes); + + var addedLog = _recentlyAddedLog.GetAll(); + var addedPlexLogIds = addedLog.Where(x => x.Type == RecentlyAddedType.Plex).Select(x => x.ContentId); + var addedEmbyLogIds = addedLog.Where(x => x.Type == RecentlyAddedType.Emby).Select(x => x.ContentId); + + // Filter out the ones that we haven't sent yet + var plexContentToSend = plexContent.Where(x => !addedPlexLogIds.Contains(x.Id)); + var embyContentToSend = embyContent.Where(x => !addedEmbyLogIds.Contains(x.Id)); + + var body = await BuildHtml(plexContentToSend, embyContentToSend); + + var email = new NewsletterTemplate(); + + var customization = await _customizationSettings.GetSettingsAsync(); + + var html = email.LoadTemplate(template.Subject, template.Message, body, customization.Logo); + + await _email.Send(new NotificationMessage {Message = html, Subject = template.Subject, To = "tidusjar@gmail.com"}, emailSettings); + } + + private async Task BuildHtml(IQueryable plexContentToSend, IQueryable embyContentToSend) + { + var sb = new StringBuilder(); + + sb.Append("

New Movies:



"); + await ProcessPlexMovies(plexContentToSend.Where(x => x.Type == PlexMediaTypeEntity.Movie), sb); + await ProcessEmbyMovies(embyContentToSend.Where(x => x.Type == EmbyMediaType.Movie), sb); + + sb.Append("

New Episodes:



"); + await ProcessPlexTv(plexContentToSend.Where(x => x.Type == PlexMediaTypeEntity.Show), sb); + await ProcessEmbyMovies(embyContentToSend.Where(x => x.Type == EmbyMediaType.Series), sb); + + return sb.ToString(); + } + + private async Task ProcessPlexMovies(IQueryable plexContentToSend, StringBuilder sb) + { + sb.Append( + ""); + var ordered = plexContentToSend.OrderByDescending(x => x.AddedAt); + foreach (var content in ordered) + { + if (content.TheMovieDbId.IsNullOrEmpty()) + { + // Maybe we should try the ImdbId? + if (content.ImdbId.HasValue()) + { + var findResult = await _movieApi.Find(content.ImdbId, ExternalSource.imdb_id); + + var movieId = findResult.movie_results?[0]?.id ?? 0; + content.TheMovieDbId = movieId.ToString(); + } + } + + int.TryParse(content.TheMovieDbId, out var movieDbId); + var info = await _movieApi.GetMovieInformationWithExtraInfo(movieDbId); + if (info == null) + { + continue; + } + try + { + AddImageInsideTable(sb, $"https://image.tmdb.org/t/p/original{info.BackdropPath}"); + + sb.Append(""); + TableData(sb); + + Href(sb, $"https://www.imdb.com/title/{info.ImdbId}/"); + Header(sb, 3, $"{info.Title} {info.ReleaseDate ?? string.Empty}"); + EndTag(sb, "a"); + + if (info.Genres.Any()) + { + AddParagraph(sb, + $"Genre: {string.Join(", ", info.Genres.Select(x => x.Name.ToString()).ToArray())}"); + } + + AddParagraph(sb, info.Overview); + } + catch (Exception e) + { + Console.WriteLine(e); + throw; + } + finally + { + EndLoopHtml(sb); + } + } + } + private async Task ProcessEmbyMovies(IQueryable embyContent, StringBuilder sb) + { + sb.Append( + "
"); + var ordered = embyContent.OrderByDescending(x => x.AddedAt); + foreach (var content in ordered) + { + int.TryParse(content.ProviderId, out var movieDbId); + var info = await _movieApi.GetMovieInformationWithExtraInfo(movieDbId); + if (info == null) + { + continue; + } + try + { + AddImageInsideTable(sb, $"https://image.tmdb.org/t/p/original{info.BackdropPath}"); + + sb.Append(""); + TableData(sb); + + Href(sb, $"https://www.imdb.com/title/{info.ImdbId}/"); + Header(sb, 3, $"{info.Title} {info.ReleaseDate ?? string.Empty}"); + EndTag(sb, "a"); + + if (info.Genres.Any()) + { + AddParagraph(sb, + $"Genre: {string.Join(", ", info.Genres.Select(x => x.Name.ToString()).ToArray())}"); + } + + AddParagraph(sb, info.Overview); + } + catch (Exception e) + { + Console.WriteLine(e); + throw; + } + finally + { + EndLoopHtml(sb); + } + } + } + + private async Task ProcessPlexTv(IQueryable plexContent, StringBuilder sb) + { + var orderedTv = plexContent.OrderByDescending(x => x.AddedAt); + sb.Append( + "
"); + foreach (var t in orderedTv) + { + try + { + if (!t.HasTvDb) + { + // We may need to use themoviedb for the imdbid or their own id to get info + if (t.HasTheMovieDb) + { + int.TryParse(t.TheMovieDbId, out var movieId); + var externals = await _movieApi.GetTvExternals(movieId); + if (externals == null || externals.tvdb_id <= 0) + { + continue; + } + t.TvDbId = externals.tvdb_id.ToString(); + } + // WE could check the below but we need to get the moviedb and then perform the above, let the metadata job figure this out. + //else if(t.HasImdb) + //{ + // // Check the imdbid + // var externals = await _movieApi.Find(t.ImdbId, ExternalSource.imdb_id); + // if (externals?.tv_results == null || externals.tv_results.Length <= 0) + // { + // continue; + // } + // t.TvDbId = externals.tv_results.FirstOrDefault()..ToString(); + //} + + } + + int.TryParse(t.TvDbId, out var tvdbId); + var info = await _tvApi.ShowLookupByTheTvDbId(tvdbId); + if (info == null) + { + continue; + } + var banner = info.image?.original; + if (!string.IsNullOrEmpty(banner)) + { + banner = banner.Replace("http", "https"); // Always use the Https banners + } + AddImageInsideTable(sb, banner); + + sb.Append(""); + sb.Append( + "
"); + + var title = $"{t.Title} {t.ReleaseYear}"; + + Href(sb, $"https://www.imdb.com/title/{info.externals.imdb}/"); + Header(sb, 3, title); + EndTag(sb, "a"); + + // Group by the season number + var results = t.Episodes?.GroupBy(p => p.SeasonNumber, + (key, g) => new + { + SeasonNumber = key, + Episodes = g.ToList() + } + ); + + // Group the episodes + foreach (var epInformation in results.OrderBy(x => x.SeasonNumber)) + { + var orderedEpisodes = epInformation.Episodes.OrderBy(x => x.EpisodeNumber).ToList(); + var epSb = new StringBuilder(); + for (var i = 0; i < orderedEpisodes.Count; i++) + { + var ep = orderedEpisodes[i]; + if (i < orderedEpisodes.Count - 1) + { + epSb.Append($"{ep.EpisodeNumber},"); + } + else + { + epSb.Append($"{ep.EpisodeNumber}"); + } + + } + AddParagraph(sb, $"Season: {epInformation.SeasonNumber}, Episode: {epSb}"); + } + + if (info.genres.Any()) + { + AddParagraph(sb, $"Genre: {string.Join(", ", info.genres.Select(x => x.ToString()).ToArray())}"); + } + + AddParagraph(sb, info.summary); + } + catch (Exception e) + { + //Log.Error(e); + } + finally + { + EndLoopHtml(sb); + } + } + sb.Append("


"); + + } + + private async Task ProcessEmbyTv(IQueryable plexContent, StringBuilder sb) + { + var orderedTv = plexContent.OrderByDescending(x => x.AddedAt); + sb.Append( + ""); + foreach (var t in orderedTv) + { + try + { + int.TryParse(t.ProviderId, out var tvdbId); + var info = await _tvApi.ShowLookupByTheTvDbId(tvdbId); + if (info == null) + { + continue; + } + var banner = info.image?.original; + if (!string.IsNullOrEmpty(banner)) + { + banner = banner.Replace("http", "https"); // Always use the Https banners + } + AddImageInsideTable(sb, banner); + + sb.Append(""); + sb.Append( + "
"); + + Href(sb, $"https://www.imdb.com/title/{info.externals.imdb}/"); + Header(sb, 3, t.Title); + EndTag(sb, "a"); + + // Group by the season number + var results = t.Episodes?.GroupBy(p => p.SeasonNumber, + (key, g) => new + { + SeasonNumber = key, + Episodes = g.ToList() + } + ); + + // Group the episodes + foreach (var epInformation in results.OrderBy(x => x.SeasonNumber)) + { + var orderedEpisodes = epInformation.Episodes.OrderBy(x => x.EpisodeNumber).ToList(); + var epSb = new StringBuilder(); + for (var i = 0; i < orderedEpisodes.Count; i++) + { + var ep = orderedEpisodes[i]; + if (i < orderedEpisodes.Count - 1) + { + epSb.Append($"{ep.EpisodeNumber},"); + } + else + { + epSb.Append($"{ep.EpisodeNumber}"); + } + + } + AddParagraph(sb, $"Season: {epInformation.SeasonNumber}, Episode: {epSb}"); + } + + if (info.genres.Any()) + { + AddParagraph(sb, $"Genre: {string.Join(", ", info.genres.Select(x => x.ToString()).ToArray())}"); + } + + AddParagraph(sb, info.summary); + } + catch (Exception e) + { + //Log.Error(e); + } + finally + { + EndLoopHtml(sb); + } + } + sb.Append("


"); + } + + private void EndLoopHtml(StringBuilder sb) + { + //NOTE: BR have to be in TD's as per html spec or it will be put outside of the table... + //Source: http://stackoverflow.com/questions/6588638/phantom-br-tag-rendered-by-browsers-prior-to-table-tag + sb.Append("
"); + sb.Append("
"); + sb.Append("
"); + sb.Append(""); + sb.Append(""); + } + + protected bool ValidateConfiguration(EmailNotificationSettings settings) + { + if (!settings.Enabled) + { + return false; + } + if (settings.Authentication) + { + if (string.IsNullOrEmpty(settings.Username) || string.IsNullOrEmpty(settings.Password)) + { + return false; + } + } + if (string.IsNullOrEmpty(settings.Host) || string.IsNullOrEmpty(settings.AdminEmail) || string.IsNullOrEmpty(settings.Port.ToString())) + { + return false; + } + + return true; + } + + private bool _disposed; + protected virtual void Dispose(bool disposing) + { + if (_disposed) + return; + + if (disposing) + { + _plex?.Dispose(); + _emby?.Dispose(); + } + _disposed = true; + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } + } +} \ No newline at end of file diff --git a/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs b/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs index 5f5dd4635..225efb7d3 100644 --- a/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs +++ b/src/Ombi.Schedule/Jobs/Ombi/RefreshMetadata.cs @@ -218,12 +218,6 @@ namespace Ombi.Schedule.Jobs.Ombi } return string.Empty; } - - - private async Task StartEmby() - { - - } private bool _disposed; @@ -236,6 +230,7 @@ namespace Ombi.Schedule.Jobs.Ombi { _plexRepo?.Dispose(); _embyRepo?.Dispose(); + _plexSettings?.Dispose(); } _disposed = true; } diff --git a/src/Ombi.Store/Context/IOmbiContext.cs b/src/Ombi.Store/Context/IOmbiContext.cs index 64f23669e..55d7db563 100644 --- a/src/Ombi.Store/Context/IOmbiContext.cs +++ b/src/Ombi.Store/Context/IOmbiContext.cs @@ -41,5 +41,6 @@ namespace Ombi.Store.Context DbSet SickRageCache { get; set; } DbSet SickRageEpisodeCache { get; set; } DbSet RequestLogs { get; set; } + DbSet RecentlyAddedLogs { get; set; } } } \ No newline at end of file diff --git a/src/Ombi.Store/Context/OmbiContext.cs b/src/Ombi.Store/Context/OmbiContext.cs index 0ccf8ebe5..65c212d2b 100644 --- a/src/Ombi.Store/Context/OmbiContext.cs +++ b/src/Ombi.Store/Context/OmbiContext.cs @@ -15,7 +15,7 @@ namespace Ombi.Store.Context public OmbiContext() { if (_created) return; - + _created = true; Database.Migrate(); } @@ -37,6 +37,7 @@ namespace Ombi.Store.Context public DbSet IssueCategories { get; set; } public DbSet IssueComments { get; set; } public DbSet RequestLogs { get; set; } + public DbSet RecentlyAddedLogs { get; set; } public DbSet Audit { get; set; } @@ -55,7 +56,7 @@ namespace Ombi.Store.Context { i.StoragePath = string.Empty; } - optionsBuilder.UseSqlite($"Data Source={Path.Combine(i.StoragePath,"Ombi.db")}"); + optionsBuilder.UseSqlite($"Data Source={Path.Combine(i.StoragePath, "Ombi.db")}"); } protected override void OnModelCreating(ModelBuilder builder) @@ -70,7 +71,7 @@ namespace Ombi.Store.Context .WithMany(b => b.Episodes) .HasPrincipalKey(x => x.EmbyId) .HasForeignKey(p => p.ParentId); - + base.OnModelCreating(builder); } @@ -218,6 +219,16 @@ namespace Ombi.Store.Context break; case NotificationType.AdminNote: continue; + case NotificationType.Newsletter: + notificationToAdd = new NotificationTemplates + { + NotificationType = notificationType, + Message = "Here is a list of Movies and TV Shows that have recently been added!", + Subject = "{ApplicationName}: Recently Added Content!", + Agent = agent, + Enabled = true, + }; + break; default: throw new ArgumentOutOfRangeException(); } diff --git a/src/Ombi.Store/Entities/PlexServerContent.cs b/src/Ombi.Store/Entities/PlexServerContent.cs index f62dc7ff9..14028cb57 100644 --- a/src/Ombi.Store/Entities/PlexServerContent.cs +++ b/src/Ombi.Store/Entities/PlexServerContent.cs @@ -56,6 +56,15 @@ namespace Ombi.Store.Entities public int Key { get; set; } public DateTime AddedAt { get; set; } public string Quality { get; set; } + + [NotMapped] + public bool HasImdb => !string.IsNullOrEmpty(ImdbId); + + [NotMapped] + public bool HasTvDb => !string.IsNullOrEmpty(TvDbId); + + [NotMapped] + public bool HasTheMovieDb => !string.IsNullOrEmpty(TheMovieDbId); } [Table("PlexSeasonsContent")] diff --git a/src/Ombi.Store/Entities/RecentlyAddedLog.cs b/src/Ombi.Store/Entities/RecentlyAddedLog.cs new file mode 100644 index 000000000..52b047993 --- /dev/null +++ b/src/Ombi.Store/Entities/RecentlyAddedLog.cs @@ -0,0 +1,19 @@ +using System; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Ombi.Store.Entities +{ + [Table("RecentlyAddedLog")] + public class RecentlyAddedLog : Entity + { + public RecentlyAddedType Type { get; set; } + public int ContentId { get; set; } // This is dependant on the type + public DateTime AddedAt { get; set; } + } + + public enum RecentlyAddedType + { + Plex, + Emby + } +} \ No newline at end of file diff --git a/src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.Designer.cs b/src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.Designer.cs new file mode 100644 index 000000000..23f23bc4b --- /dev/null +++ b/src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.Designer.cs @@ -0,0 +1,934 @@ +// +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage; +using Microsoft.EntityFrameworkCore.Storage.Internal; +using Ombi.Helpers; +using Ombi.Store.Context; +using Ombi.Store.Entities; +using Ombi.Store.Entities.Requests; +using System; + +namespace Ombi.Store.Migrations +{ + [DbContext(typeof(OmbiContext))] + [Migration("20180322085345_RecentlyAddedLog")] + partial class RecentlyAddedLog + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "2.0.2-rtm-10011"); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Name") + .HasMaxLength(256); + + b.Property("NormalizedName") + .HasMaxLength(256); + + b.HasKey("Id"); + + b.HasIndex("NormalizedName") + .IsUnique() + .HasName("RoleNameIndex"); + + b.ToTable("AspNetRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("RoleId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetRoleClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ClaimType"); + + b.Property("ClaimValue"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserClaims"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.Property("LoginProvider"); + + b.Property("ProviderKey"); + + b.Property("ProviderDisplayName"); + + b.Property("UserId") + .IsRequired(); + + b.HasKey("LoginProvider", "ProviderKey"); + + b.HasIndex("UserId"); + + b.ToTable("AspNetUserLogins"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.Property("UserId"); + + b.Property("RoleId"); + + b.HasKey("UserId", "RoleId"); + + b.HasIndex("RoleId"); + + b.ToTable("AspNetUserRoles"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.Property("UserId"); + + b.Property("LoginProvider"); + + b.Property("Name"); + + b.Property("Value"); + + b.HasKey("UserId", "LoginProvider", "Name"); + + b.ToTable("AspNetUserTokens"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.ApplicationConfiguration", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Type"); + + b.Property("Value"); + + b.HasKey("Id"); + + b.ToTable("ApplicationConfiguration"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Audit", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AuditArea"); + + b.Property("AuditType"); + + b.Property("DateTime"); + + b.Property("Description"); + + b.Property("User"); + + b.HasKey("Id"); + + b.ToTable("Audit"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.CouchPotatoCache", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("TheMovieDbId"); + + b.HasKey("Id"); + + b.ToTable("CouchPotatoCache"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.EmbyContent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AddedAt"); + + b.Property("EmbyId") + .IsRequired(); + + b.Property("ProviderId"); + + b.Property("Title"); + + b.Property("Type"); + + b.HasKey("Id"); + + b.ToTable("EmbyContent"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.EmbyEpisode", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AddedAt"); + + b.Property("EmbyId"); + + b.Property("EpisodeNumber"); + + b.Property("ParentId"); + + b.Property("ProviderId"); + + b.Property("SeasonNumber"); + + b.Property("Title"); + + b.HasKey("Id"); + + b.HasIndex("ParentId"); + + b.ToTable("EmbyEpisode"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.GlobalSettings", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Content"); + + b.Property("SettingsName"); + + b.HasKey("Id"); + + b.ToTable("GlobalSettings"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.NotificationTemplates", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Agent"); + + b.Property("Enabled"); + + b.Property("Message"); + + b.Property("NotificationType"); + + b.Property("Subject"); + + b.HasKey("Id"); + + b.ToTable("NotificationTemplates"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.NotificationUserId", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AddedAt"); + + b.Property("PlayerId"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("NotificationUserId"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.OmbiUser", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AccessFailedCount"); + + b.Property("Alias"); + + b.Property("ConcurrencyStamp") + .IsConcurrencyToken(); + + b.Property("Email") + .HasMaxLength(256); + + b.Property("EmailConfirmed"); + + b.Property("EmbyConnectUserId"); + + b.Property("EpisodeRequestLimit"); + + b.Property("LastLoggedIn"); + + b.Property("LockoutEnabled"); + + b.Property("LockoutEnd"); + + b.Property("MovieRequestLimit"); + + b.Property("NormalizedEmail") + .HasMaxLength(256); + + b.Property("NormalizedUserName") + .HasMaxLength(256); + + b.Property("PasswordHash"); + + b.Property("PhoneNumber"); + + b.Property("PhoneNumberConfirmed"); + + b.Property("ProviderUserId"); + + b.Property("SecurityStamp"); + + b.Property("TwoFactorEnabled"); + + b.Property("UserAccessToken"); + + b.Property("UserName") + .HasMaxLength(256); + + b.Property("UserType"); + + b.HasKey("Id"); + + b.HasIndex("NormalizedEmail") + .HasName("EmailIndex"); + + b.HasIndex("NormalizedUserName") + .IsUnique() + .HasName("UserNameIndex"); + + b.ToTable("AspNetUsers"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("EpisodeNumber"); + + b.Property("GrandparentKey"); + + b.Property("Key"); + + b.Property("ParentKey"); + + b.Property("SeasonNumber"); + + b.Property("Title"); + + b.HasKey("Id"); + + b.HasIndex("GrandparentKey"); + + b.ToTable("PlexEpisode"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ParentKey"); + + b.Property("PlexContentId"); + + b.Property("PlexServerContentId"); + + b.Property("SeasonKey"); + + b.Property("SeasonNumber"); + + b.HasKey("Id"); + + b.HasIndex("PlexServerContentId"); + + b.ToTable("PlexSeasonsContent"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.PlexServerContent", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AddedAt"); + + b.Property("ImdbId"); + + b.Property("Key"); + + b.Property("Quality"); + + b.Property("ReleaseYear"); + + b.Property("TheMovieDbId"); + + b.Property("Title"); + + b.Property("TvDbId"); + + b.Property("Type"); + + b.Property("Url"); + + b.HasKey("Id"); + + b.ToTable("PlexServerContent"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.RadarrCache", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("HasFile"); + + b.Property("TheMovieDbId"); + + b.HasKey("Id"); + + b.ToTable("RadarrCache"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.RecentlyAddedLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AddedAt"); + + b.Property("ContentId"); + + b.Property("Type"); + + b.HasKey("Id"); + + b.ToTable("RecentlyAddedLog"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Approved"); + + b.Property("Available"); + + b.Property("Denied"); + + b.Property("DeniedReason"); + + b.Property("IssueId"); + + b.Property("ParentRequestId"); + + b.Property("RequestType"); + + b.Property("RequestedDate"); + + b.Property("RequestedUserId"); + + b.Property("SeriesType"); + + b.Property("Title"); + + b.HasKey("Id"); + + b.HasIndex("ParentRequestId"); + + b.HasIndex("RequestedUserId"); + + b.ToTable("ChildRequests"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Requests.IssueCategory", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Value"); + + b.HasKey("Id"); + + b.ToTable("IssueCategory"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Requests.IssueComments", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Comment"); + + b.Property("Date"); + + b.Property("IssuesId"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("IssuesId"); + + b.HasIndex("UserId"); + + b.ToTable("IssueComments"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Requests.Issues", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Description"); + + b.Property("IssueCategoryId"); + + b.Property("IssueId"); + + b.Property("ProviderId"); + + b.Property("RequestId"); + + b.Property("RequestType"); + + b.Property("ResovledDate"); + + b.Property("Status"); + + b.Property("Subject"); + + b.Property("Title"); + + b.Property("UserReportedId"); + + b.HasKey("Id"); + + b.HasIndex("IssueCategoryId"); + + b.HasIndex("IssueId"); + + b.HasIndex("UserReportedId"); + + b.ToTable("Issues"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieRequests", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Approved"); + + b.Property("Available"); + + b.Property("Background"); + + b.Property("Denied"); + + b.Property("DeniedReason"); + + b.Property("DigitalReleaseDate"); + + b.Property("ImdbId"); + + b.Property("IssueId"); + + b.Property("Overview"); + + b.Property("PosterPath"); + + b.Property("QualityOverride"); + + b.Property("ReleaseDate"); + + b.Property("RequestType"); + + b.Property("RequestedDate"); + + b.Property("RequestedUserId"); + + b.Property("RootPathOverride"); + + b.Property("Status"); + + b.Property("TheMovieDbId"); + + b.Property("Title"); + + b.HasKey("Id"); + + b.HasIndex("RequestedUserId"); + + b.ToTable("MovieRequests"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Requests.RequestLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("EpisodeCount"); + + b.Property("RequestDate"); + + b.Property("RequestId"); + + b.Property("RequestType"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("RequestLog"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Requests.TvRequests", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ImdbId"); + + b.Property("Overview"); + + b.Property("PosterPath"); + + b.Property("QualityOverride"); + + b.Property("ReleaseDate"); + + b.Property("RootFolder"); + + b.Property("Status"); + + b.Property("Title"); + + b.Property("TvDbId"); + + b.HasKey("Id"); + + b.ToTable("TvRequests"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.SickRageCache", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("TvDbId"); + + b.HasKey("Id"); + + b.ToTable("SickRageCache"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.SickRageEpisodeCache", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("EpisodeNumber"); + + b.Property("SeasonNumber"); + + b.Property("TvDbId"); + + b.HasKey("Id"); + + b.ToTable("SickRageEpisodeCache"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.SonarrCache", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("TvDbId"); + + b.HasKey("Id"); + + b.ToTable("SonarrCache"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.SonarrEpisodeCache", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("EpisodeNumber"); + + b.Property("HasFile"); + + b.Property("SeasonNumber"); + + b.Property("TvDbId"); + + b.HasKey("Id"); + + b.ToTable("SonarrEpisodeCache"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Tokens", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("Token"); + + b.Property("UserId"); + + b.HasKey("Id"); + + b.HasIndex("UserId"); + + b.ToTable("Tokens"); + }); + + modelBuilder.Entity("Ombi.Store.Repository.Requests.EpisodeRequests", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AirDate"); + + b.Property("Approved"); + + b.Property("Available"); + + b.Property("EpisodeNumber"); + + b.Property("Requested"); + + b.Property("SeasonId"); + + b.Property("Title"); + + b.Property("Url"); + + b.HasKey("Id"); + + b.HasIndex("SeasonId"); + + b.ToTable("EpisodeRequests"); + }); + + modelBuilder.Entity("Ombi.Store.Repository.Requests.SeasonRequests", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("ChildRequestId"); + + b.Property("SeasonNumber"); + + b.HasKey("Id"); + + b.HasIndex("ChildRequestId"); + + b.ToTable("SeasonRequests"); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRoleClaim", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserClaim", b => + { + b.HasOne("Ombi.Store.Entities.OmbiUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserLogin", b => + { + b.HasOne("Ombi.Store.Entities.OmbiUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserRole", b => + { + b.HasOne("Microsoft.AspNetCore.Identity.IdentityRole") + .WithMany() + .HasForeignKey("RoleId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Ombi.Store.Entities.OmbiUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityUserToken", b => + { + b.HasOne("Ombi.Store.Entities.OmbiUser") + .WithMany() + .HasForeignKey("UserId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Ombi.Store.Entities.EmbyEpisode", b => + { + b.HasOne("Ombi.Store.Entities.EmbyContent", "Series") + .WithMany("Episodes") + .HasForeignKey("ParentId") + .HasPrincipalKey("EmbyId"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.NotificationUserId", b => + { + b.HasOne("Ombi.Store.Entities.OmbiUser", "User") + .WithMany("NotificationUserIds") + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.PlexEpisode", b => + { + b.HasOne("Ombi.Store.Entities.PlexServerContent", "Series") + .WithMany("Episodes") + .HasForeignKey("GrandparentKey") + .HasPrincipalKey("Key") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Ombi.Store.Entities.PlexSeasonsContent", b => + { + b.HasOne("Ombi.Store.Entities.PlexServerContent") + .WithMany("Seasons") + .HasForeignKey("PlexServerContentId"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b => + { + b.HasOne("Ombi.Store.Entities.Requests.TvRequests", "ParentRequest") + .WithMany("ChildRequests") + .HasForeignKey("ParentRequestId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Ombi.Store.Entities.OmbiUser", "RequestedUser") + .WithMany() + .HasForeignKey("RequestedUserId"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Requests.IssueComments", b => + { + b.HasOne("Ombi.Store.Entities.Requests.Issues", "Issues") + .WithMany("Comments") + .HasForeignKey("IssuesId"); + + b.HasOne("Ombi.Store.Entities.OmbiUser", "User") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Requests.Issues", b => + { + b.HasOne("Ombi.Store.Entities.Requests.IssueCategory", "IssueCategory") + .WithMany() + .HasForeignKey("IssueCategoryId") + .OnDelete(DeleteBehavior.Cascade); + + b.HasOne("Ombi.Store.Entities.Requests.ChildRequests") + .WithMany("Issues") + .HasForeignKey("IssueId"); + + b.HasOne("Ombi.Store.Entities.Requests.MovieRequests") + .WithMany("Issues") + .HasForeignKey("IssueId"); + + b.HasOne("Ombi.Store.Entities.OmbiUser", "UserReported") + .WithMany() + .HasForeignKey("UserReportedId"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Requests.MovieRequests", b => + { + b.HasOne("Ombi.Store.Entities.OmbiUser", "RequestedUser") + .WithMany() + .HasForeignKey("RequestedUserId"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Requests.RequestLog", b => + { + b.HasOne("Ombi.Store.Entities.OmbiUser", "User") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Ombi.Store.Entities.Tokens", b => + { + b.HasOne("Ombi.Store.Entities.OmbiUser", "User") + .WithMany() + .HasForeignKey("UserId"); + }); + + modelBuilder.Entity("Ombi.Store.Repository.Requests.EpisodeRequests", b => + { + b.HasOne("Ombi.Store.Repository.Requests.SeasonRequests", "Season") + .WithMany("Episodes") + .HasForeignKey("SeasonId") + .OnDelete(DeleteBehavior.Cascade); + }); + + modelBuilder.Entity("Ombi.Store.Repository.Requests.SeasonRequests", b => + { + b.HasOne("Ombi.Store.Entities.Requests.ChildRequests", "ChildRequest") + .WithMany("SeasonRequests") + .HasForeignKey("ChildRequestId") + .OnDelete(DeleteBehavior.Cascade); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.cs b/src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.cs new file mode 100644 index 000000000..0e815a06f --- /dev/null +++ b/src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.cs @@ -0,0 +1,33 @@ +using Microsoft.EntityFrameworkCore.Migrations; +using System; +using System.Collections.Generic; + +namespace Ombi.Store.Migrations +{ + public partial class RecentlyAddedLog : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "RecentlyAddedLog", + columns: table => new + { + Id = table.Column(nullable: false) + .Annotation("Sqlite:Autoincrement", true), + AddedAt = table.Column(nullable: false), + ContentId = table.Column(nullable: false), + Type = table.Column(nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_RecentlyAddedLog", x => x.Id); + }); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "RecentlyAddedLog"); + } + } +} diff --git a/src/Ombi.Store/Migrations/OmbiContextModelSnapshot.cs b/src/Ombi.Store/Migrations/OmbiContextModelSnapshot.cs index 35c5755da..7571c6f11 100644 --- a/src/Ombi.Store/Migrations/OmbiContextModelSnapshot.cs +++ b/src/Ombi.Store/Migrations/OmbiContextModelSnapshot.cs @@ -20,7 +20,7 @@ namespace Ombi.Store.Migrations { #pragma warning disable 612, 618 modelBuilder - .HasAnnotation("ProductVersion", "2.0.0-rtm-26452"); + .HasAnnotation("ProductVersion", "2.0.2-rtm-10011"); modelBuilder.Entity("Microsoft.AspNetCore.Identity.IdentityRole", b => { @@ -430,6 +430,22 @@ namespace Ombi.Store.Migrations b.ToTable("RadarrCache"); }); + modelBuilder.Entity("Ombi.Store.Entities.RecentlyAddedLog", b => + { + b.Property("Id") + .ValueGeneratedOnAdd(); + + b.Property("AddedAt"); + + b.Property("ContentId"); + + b.Property("Type"); + + b.HasKey("Id"); + + b.ToTable("RecentlyAddedLog"); + }); + modelBuilder.Entity("Ombi.Store.Entities.Requests.ChildRequests", b => { b.Property("Id") diff --git a/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts b/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts index d540a6b2d..40025486f 100644 --- a/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts +++ b/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts @@ -79,19 +79,19 @@ export class RecentlyAddedComponent implements OnInit { this.recentlyAddedService.getRecentlyAddedTv().subscribe(x => { this.tv = x; - this.tv.forEach((t) => { - if(t.theMovieDbId) { - this.imageService.getTvPoster(t.imdbId).subscribe(p => { - t.posterPath = p; - }); - } else if(t.imdbId) { - this.imageService.getMoviePoster(t.imdbId).subscribe(p => { - t.posterPath = p; - }); - } else { - t.posterPath = ""; - } - }); + //this.tv.forEach((t) => { + // if(t.theMovieDbId) { + // this.imageService.getTvPoster(t.imdbId).subscribe(p => { + // t.posterPath = p; + // }); + // } else if(t.imdbId) { + // this.imageService.getMoviePoster(t.imdbId).subscribe(p => { + // t.posterPath = p; + // }); + // } else { + // t.posterPath = ""; + // } + //}); }); } diff --git a/src/Ombi/webpack.config.vendor.ts b/src/Ombi/webpack.config.vendor.ts index d4fe38c3a..1fdacb684 100644 --- a/src/Ombi/webpack.config.vendor.ts +++ b/src/Ombi/webpack.config.vendor.ts @@ -80,7 +80,7 @@ module.exports = (env: any) => { }, plugins: [ new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery", Hammer: "hammerjs/hammer" }), // Global identifiers - new webpack.ContextReplacementPlugin(/\@angular(\\|\/)core(\\|\/)esm5/, path.join(__dirname, './client')), // Workaround for https://github.com/angular/angular/issues/20357 + new webpack.ContextReplacementPlugin(/\@angular(\\|\/)core(\\|\/)esm5/, path.join(__dirname,"./client")), // Workaround for https://github.com/angular/angular/issues/20357 new webpack.ContextReplacementPlugin(/\@angular\b.*\b(bundles|linker)/, path.join(__dirname, "./ClientApp")), // Workaround for https://github.com/angular/angular/issues/11580 new webpack.ContextReplacementPlugin(/angular(\\|\/)core(\\|\/)@angular/, path.join(__dirname, "./ClientApp")), // Workaround for https://github.com/angular/angular/issues/14898 extractCSS, From 1528cdfc037336a2596301647dd3fac637a3127b Mon Sep 17 00:00:00 2001 From: Jamie Date: Thu, 22 Mar 2018 12:27:01 +0000 Subject: [PATCH 25/59] Pretty much finished the actual newsletter. Still need to work on the UI !wip --- src/Ombi.Core/Engine/IRecentlyAddedEngine.cs | 2 + src/Ombi.Core/Engine/RecentlyAddedEngine.cs | 68 +++++++- .../UI/NewsletterNotificationViewModel.cs | 23 +++ src/Ombi.Helpers/OmbiRoles.cs | 1 + .../NotificationMessageCurlys.cs | 7 + src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs | 154 ++++++++++++++++-- .../Notifications/NewsletterSettings.cs | 7 + src/Ombi.Store/Entities/RecentlyAddedLog.cs | 11 +- .../INotificationTemplatesRepository.cs | 5 +- .../NotificationTemplatesRepository.cs | 21 +++ .../app/interfaces/INotificationSettings.ts | 4 + .../app/services/settings.service.ts | 14 ++ .../notifications/newsletter.component.html | 52 ++++++ .../notifications/newsletter.component.ts | 71 ++++++++ src/Ombi/Controllers/SettingsController.cs | 47 +++++- 15 files changed, 463 insertions(+), 24 deletions(-) create mode 100644 src/Ombi.Core/Models/UI/NewsletterNotificationViewModel.cs create mode 100644 src/Ombi.Settings/Settings/Models/Notifications/NewsletterSettings.cs create mode 100644 src/Ombi/ClientApp/app/settings/notifications/newsletter.component.html create mode 100644 src/Ombi/ClientApp/app/settings/notifications/newsletter.component.ts diff --git a/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs b/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs index c119abbb4..3087ec829 100644 --- a/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs +++ b/src/Ombi.Core/Engine/IRecentlyAddedEngine.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Threading.Tasks; using Ombi.Core.Models; namespace Ombi.Core.Engine @@ -10,5 +11,6 @@ namespace Ombi.Core.Engine IEnumerable GetRecentlyAddedMovies(DateTime from, DateTime to); IEnumerable GetRecentlyAddedTv(DateTime from, DateTime to, bool groupBySeason); IEnumerable GetRecentlyAddedTv(bool groupBySeason); + Task UpdateRecentlyAddedDatabase(); } } \ No newline at end of file diff --git a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs index b8cc0ee6b..61866af9d 100644 --- a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs +++ b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs @@ -1,27 +1,28 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Text; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Metadata.Internal; using Ombi.Core.Models; using Ombi.Helpers; using Ombi.Store.Entities; using Ombi.Store.Repository; +using RecentlyAddedType = Ombi.Store.Entities.RecentlyAddedType; namespace Ombi.Core.Engine { public class RecentlyAddedEngine : IRecentlyAddedEngine { - public RecentlyAddedEngine(IPlexContentRepository plex, IEmbyContentRepository emby) + public RecentlyAddedEngine(IPlexContentRepository plex, IEmbyContentRepository emby, IRepository recentlyAdded) { _plex = plex; _emby = emby; + _recentlyAddedLog = recentlyAdded; } private readonly IPlexContentRepository _plex; private readonly IEmbyContentRepository _emby; + private readonly IRepository _recentlyAddedLog; public IEnumerable GetRecentlyAddedMovies(DateTime from, DateTime to) { @@ -55,6 +56,67 @@ namespace Ombi.Core.Engine return GetRecentlyAddedTv(plexTv, embyTv, groupBySeason); } + public async Task UpdateRecentlyAddedDatabase() + { + var plexContent = _plex.GetAll().Include(x => x.Episodes); + var embyContent = _emby.GetAll().Include(x => x.Episodes); + var recentlyAddedLog = new HashSet(); + foreach (var p in plexContent) + { + if (p.Type == PlexMediaTypeEntity.Movie) + { + recentlyAddedLog.Add(new RecentlyAddedLog + { + AddedAt = DateTime.Now, + Type = RecentlyAddedType.Plex, + ContentId = p.Id + }); + } + else + { + // Add the episodes + foreach (var ep in p.Episodes) + { + recentlyAddedLog.Add(new RecentlyAddedLog + { + AddedAt = DateTime.Now, + Type = RecentlyAddedType.Plex, + ContentId = ep.Id + }); + } + } + } + + foreach (var e in embyContent) + { + if (e.Type == EmbyMediaType.Movie) + { + recentlyAddedLog.Add(new RecentlyAddedLog + { + AddedAt = DateTime.Now, + Type = RecentlyAddedType.Emby, + ContentId = e.Id + }); + } + else + { + // Add the episodes + foreach (var ep in e.Episodes) + { + recentlyAddedLog.Add(new RecentlyAddedLog + { + AddedAt = DateTime.Now, + Type = RecentlyAddedType.Plex, + ContentId = ep.Id + }); + } + } + } + await _recentlyAddedLog.AddRange(recentlyAddedLog); + + return true; + } + private IEnumerable GetRecentlyAddedTv(IQueryable plexTv, IQueryable embyTv, bool groupBySeason) { diff --git a/src/Ombi.Core/Models/UI/NewsletterNotificationViewModel.cs b/src/Ombi.Core/Models/UI/NewsletterNotificationViewModel.cs new file mode 100644 index 000000000..a40044670 --- /dev/null +++ b/src/Ombi.Core/Models/UI/NewsletterNotificationViewModel.cs @@ -0,0 +1,23 @@ + +using System.Collections.Generic; +using Ombi.Settings.Settings.Models.Notifications; +using Ombi.Store.Entities; + +namespace Ombi.Core.Models.UI +{ + /// + /// The view model for the notification settings page + /// + /// + public class NewsletterNotificationViewModel : NewsletterSettings + { + /// + /// Gets or sets the notification templates. + /// + /// + /// The notification templates. + /// + public NotificationTemplates NotificationTemplate { get; set; } + + } +} diff --git a/src/Ombi.Helpers/OmbiRoles.cs b/src/Ombi.Helpers/OmbiRoles.cs index 1b88b5d67..e7527279d 100644 --- a/src/Ombi.Helpers/OmbiRoles.cs +++ b/src/Ombi.Helpers/OmbiRoles.cs @@ -9,5 +9,6 @@ public const string RequestTv = nameof(RequestTv); public const string RequestMovie = nameof(RequestMovie); public const string Disabled = nameof(Disabled); + public const string RecievesNewsletter = nameof(RecievesNewsletter); } } \ No newline at end of file diff --git a/src/Ombi.Notifications/NotificationMessageCurlys.cs b/src/Ombi.Notifications/NotificationMessageCurlys.cs index d958cfc74..9dd3cc486 100644 --- a/src/Ombi.Notifications/NotificationMessageCurlys.cs +++ b/src/Ombi.Notifications/NotificationMessageCurlys.cs @@ -38,6 +38,13 @@ namespace Ombi.Notifications AdditionalInformation = opts?.AdditionalInformation ?? string.Empty; } + public void SetupNewsletter(CustomizationSettings s, string username) + { + ApplicationUrl = (s?.ApplicationUrl.HasValue() ?? false) ? s.ApplicationUrl : string.Empty; + ApplicationName = string.IsNullOrEmpty(s?.ApplicationName) ? "Ombi" : s?.ApplicationName; + RequestedUser = username; + } + public void Setup(NotificationOptions opts, ChildRequests req, CustomizationSettings s) { LoadIssues(opts); diff --git a/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs b/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs index 544bbc6dd..693c8ae7a 100644 --- a/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs +++ b/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs @@ -1,7 +1,9 @@ using System; +using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; using Ombi.Api.TheMovieDb; using Ombi.Api.TheMovieDb.Models; @@ -22,7 +24,8 @@ namespace Ombi.Schedule.Jobs.Ombi { public NewsletterJob(IPlexContentRepository plex, IEmbyContentRepository emby, IRepository addedLog, IMovieDbApi movieApi, ITvMazeApi tvApi, IEmailProvider email, ISettingsService custom, - ISettingsService emailSettings, INotificationTemplatesRepository templateRepo) + ISettingsService emailSettings, INotificationTemplatesRepository templateRepo, + UserManager um, ISettingsService newsletter) { _plex = plex; _emby = emby; @@ -33,6 +36,8 @@ namespace Ombi.Schedule.Jobs.Ombi _customizationSettings = custom; _templateRepo = templateRepo; _emailSettings = emailSettings; + _newsletterSettings = newsletter; + _userManager = um; } private readonly IPlexContentRepository _plex; @@ -44,9 +49,16 @@ namespace Ombi.Schedule.Jobs.Ombi private readonly ISettingsService _customizationSettings; private readonly INotificationTemplatesRepository _templateRepo; private readonly ISettingsService _emailSettings; + private readonly ISettingsService _newsletterSettings; + private readonly UserManager _userManager; public async Task Start() { + var newsletterSettings = await _newsletterSettings.GetSettingsAsync(); + if (!newsletterSettings.Enabled) + { + return; + } var template = await _templateRepo.GetTemplate(NotificationAgent.Email, NotificationType.Newsletter); if (!template.Enabled) { @@ -59,40 +71,146 @@ namespace Ombi.Schedule.Jobs.Ombi return; } + var customization = await _customizationSettings.GetSettingsAsync(); + // Get the Content var plexContent = _plex.GetAll().Include(x => x.Episodes); var embyContent = _emby.GetAll().Include(x => x.Episodes); var addedLog = _recentlyAddedLog.GetAll(); - var addedPlexLogIds = addedLog.Where(x => x.Type == RecentlyAddedType.Plex).Select(x => x.ContentId); - var addedEmbyLogIds = addedLog.Where(x => x.Type == RecentlyAddedType.Emby).Select(x => x.ContentId); + var addedPlexMovieLogIds = addedLog.Where(x => x.Type == RecentlyAddedType.Plex && x.ContentType == ContentType.Parent).Select(x => x.ContentId); + var addedEmbyMoviesLogIds = addedLog.Where(x => x.Type == RecentlyAddedType.Emby && x.ContentType == ContentType.Parent).Select(x => x.ContentId); + + var addedPlexEpisodesLogIds = addedLog.Where(x => x.Type == RecentlyAddedType.Plex && x.ContentType == ContentType.Episode).Select(x => x.ContentId); + var addedEmbyEpisodesLogIds = addedLog.Where(x => x.Type == RecentlyAddedType.Emby && x.ContentType == ContentType.Episode).Select(x => x.ContentId); // Filter out the ones that we haven't sent yet - var plexContentToSend = plexContent.Where(x => !addedPlexLogIds.Contains(x.Id)); - var embyContentToSend = embyContent.Where(x => !addedEmbyLogIds.Contains(x.Id)); + var plexContentMoviesToSend = plexContent.Where(x => !addedPlexMovieLogIds.Contains(x.Id)); + var embyContentMoviesToSend = embyContent.Where(x => !addedEmbyMoviesLogIds.Contains(x.Id)); + + var plexContentTvToSend = plexContent.Where(x => x.Episodes.Any(e => !addedPlexEpisodesLogIds.Contains(e.Id))); + var embyContentTvToSend = embyContent.Where(x => x.Episodes.Any(e => !addedEmbyEpisodesLogIds.Contains(e.Id))); + + var plexContentToSend = plexContentMoviesToSend.Union(plexContentTvToSend); + var embyContentToSend = embyContentMoviesToSend.Union(embyContentTvToSend); + var body = await BuildHtml(plexContentToSend, embyContentToSend); + // Get the users to send it to + var users = await _userManager.GetUsersInRoleAsync(OmbiRoles.RecievesNewsletter); + if (!users.Any()) + { + return; + } + var emailTasks = new List(); + foreach (var user in users) + { + if (user.Email.IsNullOrEmpty()) + { + continue; + } + + var html = LoadTemplate(body, template, customization, user.Alias); + + emailTasks.Add(_email.Send(new NotificationMessage { Message = html, Subject = template.Subject, To = user.Email }, emailSettings)); + } + + // Now add all of this to the Recently Added log + var recentlyAddedLog = new HashSet(); + foreach (var p in plexContentMoviesToSend) + { + if (p.Type == PlexMediaTypeEntity.Movie) + { + recentlyAddedLog.Add(new RecentlyAddedLog + { + AddedAt = DateTime.Now, + Type = RecentlyAddedType.Plex, + ContentId = p.Id + }); + } + else + { + // Add the episodes + foreach (var ep in p.Episodes) + { + recentlyAddedLog.Add(new RecentlyAddedLog + { + AddedAt = DateTime.Now, + Type = RecentlyAddedType.Plex, + ContentId = ep.Id + }); + } + } + } + + foreach (var e in embyContentMoviesToSend) + { + if (e.Type == EmbyMediaType.Movie) + { + recentlyAddedLog.Add(new RecentlyAddedLog + { + AddedAt = DateTime.Now, + Type = RecentlyAddedType.Emby, + ContentId = e.Id + }); + } + else + { + // Add the episodes + foreach (var ep in e.Episodes) + { + recentlyAddedLog.Add(new RecentlyAddedLog + { + AddedAt = DateTime.Now, + Type = RecentlyAddedType.Plex, + ContentId = ep.Id + }); + } + } + } + await _recentlyAddedLog.AddRange(recentlyAddedLog); + + await Task.WhenAll(emailTasks.ToArray()); + } + + private string LoadTemplate(string body, NotificationTemplates template, CustomizationSettings settings, string username) + { var email = new NewsletterTemplate(); - var customization = await _customizationSettings.GetSettingsAsync(); + var resolver = new NotificationMessageResolver(); + var curlys = new NotificationMessageCurlys(); + + curlys.SetupNewsletter(settings, username); - var html = email.LoadTemplate(template.Subject, template.Message, body, customization.Logo); + var parsed = resolver.ParseMessage(template, curlys); - await _email.Send(new NotificationMessage {Message = html, Subject = template.Subject, To = "tidusjar@gmail.com"}, emailSettings); + var html = email.LoadTemplate(parsed.Subject, parsed.Message, body, settings.Logo); + + return html; } private async Task BuildHtml(IQueryable plexContentToSend, IQueryable embyContentToSend) { var sb = new StringBuilder(); - sb.Append("

New Movies:



"); - await ProcessPlexMovies(plexContentToSend.Where(x => x.Type == PlexMediaTypeEntity.Movie), sb); - await ProcessEmbyMovies(embyContentToSend.Where(x => x.Type == EmbyMediaType.Movie), sb); + var plexMovies = plexContentToSend.Where(x => x.Type == PlexMediaTypeEntity.Movie); + var embyMovies = embyContentToSend.Where(x => x.Type == EmbyMediaType.Movie); + if (plexMovies.Any() || embyMovies.Any()) + { + sb.Append("

New Movies:



"); + await ProcessPlexMovies(plexMovies, sb); + await ProcessEmbyMovies(embyMovies, sb); + } - sb.Append("

New Episodes:



"); - await ProcessPlexTv(plexContentToSend.Where(x => x.Type == PlexMediaTypeEntity.Show), sb); - await ProcessEmbyMovies(embyContentToSend.Where(x => x.Type == EmbyMediaType.Series), sb); + var plexTv = plexContentToSend.Where(x => x.Type == PlexMediaTypeEntity.Show); + var embyTv = embyContentToSend.Where(x => x.Type == EmbyMediaType.Series); + if (plexTv.Any() || embyTv.Any()) + { + sb.Append("

New Episodes:



"); + await ProcessPlexTv(plexTv, sb); + await ProcessEmbyMovies(embyTv, sb); + } return sb.ToString(); } @@ -330,7 +448,7 @@ namespace Ombi.Schedule.Jobs.Ombi sb.Append(""); sb.Append( ""); - + Href(sb, $"https://www.imdb.com/title/{info.externals.imdb}/"); Header(sb, 3, t.Title); EndTag(sb, "a"); @@ -426,6 +544,12 @@ namespace Ombi.Schedule.Jobs.Ombi { _plex?.Dispose(); _emby?.Dispose(); + _newsletterSettings?.Dispose(); + _customizationSettings?.Dispose(); + _emailSettings.Dispose(); + _recentlyAddedLog.Dispose(); + _templateRepo?.Dispose(); + _userManager?.Dispose(); } _disposed = true; } diff --git a/src/Ombi.Settings/Settings/Models/Notifications/NewsletterSettings.cs b/src/Ombi.Settings/Settings/Models/Notifications/NewsletterSettings.cs new file mode 100644 index 000000000..380e2d743 --- /dev/null +++ b/src/Ombi.Settings/Settings/Models/Notifications/NewsletterSettings.cs @@ -0,0 +1,7 @@ +namespace Ombi.Settings.Settings.Models.Notifications +{ + public class NewsletterSettings : Settings + { + public bool Enabled { get; set; } + } +} \ No newline at end of file diff --git a/src/Ombi.Store/Entities/RecentlyAddedLog.cs b/src/Ombi.Store/Entities/RecentlyAddedLog.cs index 52b047993..ba26eb566 100644 --- a/src/Ombi.Store/Entities/RecentlyAddedLog.cs +++ b/src/Ombi.Store/Entities/RecentlyAddedLog.cs @@ -7,13 +7,20 @@ namespace Ombi.Store.Entities public class RecentlyAddedLog : Entity { public RecentlyAddedType Type { get; set; } + public ContentType ContentType { get; set; } public int ContentId { get; set; } // This is dependant on the type public DateTime AddedAt { get; set; } } public enum RecentlyAddedType { - Plex, - Emby + Plex = 0, + Emby = 1 + } + + public enum ContentType + { + Parent = 0, + Episode = 1 } } \ No newline at end of file diff --git a/src/Ombi.Store/Repository/INotificationTemplatesRepository.cs b/src/Ombi.Store/Repository/INotificationTemplatesRepository.cs index 861c6b9bd..2ef0e09cf 100644 --- a/src/Ombi.Store/Repository/INotificationTemplatesRepository.cs +++ b/src/Ombi.Store/Repository/INotificationTemplatesRepository.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Ombi.Helpers; @@ -6,7 +7,7 @@ using Ombi.Store.Entities; namespace Ombi.Store.Repository { - public interface INotificationTemplatesRepository + public interface INotificationTemplatesRepository : IDisposable { IQueryable All(); Task> GetAllTemplates(); diff --git a/src/Ombi.Store/Repository/NotificationTemplatesRepository.cs b/src/Ombi.Store/Repository/NotificationTemplatesRepository.cs index e4b484967..de892e934 100644 --- a/src/Ombi.Store/Repository/NotificationTemplatesRepository.cs +++ b/src/Ombi.Store/Repository/NotificationTemplatesRepository.cs @@ -60,5 +60,26 @@ namespace Ombi.Store.Repository await Db.SaveChangesAsync().ConfigureAwait(false); return settings.Entity; } + + private bool _disposed; + // Protected implementation of Dispose pattern. + protected virtual void Dispose(bool disposing) + { + if (_disposed) + return; + + if (disposing) + { + Db?.Dispose(); + } + + _disposed = true; + } + + public void Dispose() + { + Dispose(true); + GC.SuppressFinalize(this); + } } } \ No newline at end of file diff --git a/src/Ombi/ClientApp/app/interfaces/INotificationSettings.ts b/src/Ombi/ClientApp/app/interfaces/INotificationSettings.ts index 4446f6340..67a2594d2 100644 --- a/src/Ombi/ClientApp/app/interfaces/INotificationSettings.ts +++ b/src/Ombi/ClientApp/app/interfaces/INotificationSettings.ts @@ -54,6 +54,10 @@ export interface IDiscordNotifcationSettings extends INotificationSettings { notificationTemplates: INotificationTemplates[]; } +export interface INewsletterNotificationSettings extends INotificationSettings { + notificationTemplate: INotificationTemplates; +} + export interface ITelegramNotifcationSettings extends INotificationSettings { botApi: string; chatId: string; diff --git a/src/Ombi/ClientApp/app/services/settings.service.ts b/src/Ombi/ClientApp/app/services/settings.service.ts index 54f3458d5..f6f770a19 100644 --- a/src/Ombi/ClientApp/app/services/settings.service.ts +++ b/src/Ombi/ClientApp/app/services/settings.service.ts @@ -20,6 +20,7 @@ import { ILandingPageSettings, IMattermostNotifcationSettings, IMobileNotifcationSettings, + INewsletterNotificationSettings, IOmbiSettings, IPlexSettings, IPushbulletNotificationSettings, @@ -265,4 +266,17 @@ export class SettingsService extends ServiceHelpers { return this.http .post(`${this.url}/issues`, JSON.stringify(settings), {headers: this.headers}); } + + public getNewsletterSettings(): Observable { + return this.http.get(`${this.url}/notifications/newsletter`, {headers: this.headers}); + } + + public updateNewsletterDatabase(): Observable { + return this.http.post(`${this.url}/notifications/newsletterdatabase`, {headers: this.headers}); + } + + public saveNewsletterSettings(settings: INewsletterNotificationSettings): Observable { + return this.http + .post(`${this.url}/notifications/newsletter`, JSON.stringify(settings), {headers: this.headers}); + } } diff --git a/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.html b/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.html new file mode 100644 index 000000000..5f663dd20 --- /dev/null +++ b/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.html @@ -0,0 +1,52 @@ + + +
+
+ Newsletter +
+
+ +
+
+ + +
+
+ +
+
+ + +
+
+ +
+ +
+ +
+
+ +
+ +
+ +
+
+ +
+
+ + +
+
+
+
+ + +
+ +
+
+
\ No newline at end of file diff --git a/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.ts b/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.ts new file mode 100644 index 000000000..7742e6f4e --- /dev/null +++ b/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.ts @@ -0,0 +1,71 @@ +import { Component, OnInit } from "@angular/core"; +import { FormBuilder, FormGroup } from "@angular/forms"; + +import { INewsletterNotificationSettings, INotificationTemplates, NotificationType } from "../../interfaces"; +import { TesterService } from "../../services"; +import { NotificationService } from "../../services"; +import { SettingsService } from "../../services"; + +@Component({ + templateUrl: "./newsletter.component.html", +}) +export class NewsletterComponent implements OnInit { + + public NotificationType = NotificationType; + public template: INotificationTemplates; + public form: FormGroup; + + constructor(private settingsService: SettingsService, + private notificationService: NotificationService, + private fb: FormBuilder, + private testerService: TesterService) { } + + public ngOnInit() { + this.settingsService.getNewsletterSettings().subscribe(x => { + this.template = x.notificationTemplate; + + this.form = this.fb.group({ + enabled: [x.enabled], + }); + }); + } + + public updateDatabase() { + this.settingsService.updateNewsletterDatabase().subscribe(); + } + + public onSubmit(form: FormGroup) { + if (form.invalid) { + this.notificationService.error("Please check your entered values"); + return; + } + + const settings = form.value; + settings.notificationTemplate = this.template; + + this.settingsService.saveNewsletterSettings(settings).subscribe(x => { + if (x) { + this.notificationService.success("Successfully saved the Newsletter settings"); + } else { + this.notificationService.error("There was an error when saving the Newsletter settings"); + } + }); + + } + + public test(form: FormGroup) { + if (form.invalid) { + this.notificationService.error("Please check your entered values"); + return; + } + + this.testerService.discordTest(form.value).subscribe(x => { + if (x) { + this.notificationService.success("Successfully sent a Discord message, please check the discord channel"); + } else { + this.notificationService.error("There was an error when sending the Discord message. Please check your settings"); + } + }); + + } +} diff --git a/src/Ombi/Controllers/SettingsController.cs b/src/Ombi/Controllers/SettingsController.cs index c0148c1bb..7970252a3 100644 --- a/src/Ombi/Controllers/SettingsController.cs +++ b/src/Ombi/Controllers/SettingsController.cs @@ -32,6 +32,7 @@ using Ombi.Settings.Settings.Models.Notifications; using Ombi.Store.Entities; using Ombi.Store.Repository; using Ombi.Api.Github; +using Ombi.Core.Engine; namespace Ombi.Controllers { @@ -60,7 +61,8 @@ namespace Ombi.Controllers IEmbyApi embyApi, IRadarrSync radarrSync, ICacheService memCache, - IGithubApi githubApi) + IGithubApi githubApi, + IRecentlyAddedEngine engine) { SettingsResolver = resolver; Mapper = mapper; @@ -78,6 +80,7 @@ namespace Ombi.Controllers private readonly IRadarrSync _radarrSync; private readonly ICacheService _cache; private readonly IGithubApi _githubApi; + private readonly IRecentlyAddedEngine _recentlyAdded; ///
/// Gets the Ombi settings. @@ -865,13 +868,53 @@ namespace Ombi.Controllers return model; } + /// + /// Saves the Newsletter notification settings. + /// + /// The model. + /// + [HttpPost("notifications/newsletter")] + public async Task NewsletterSettings([FromBody] NewsletterNotificationViewModel model) + { + // Save the email settings + var settings = Mapper.Map(model); + var result = await Save(settings); + + // Save the templates + await TemplateRepository.Update(model.NotificationTemplate); + + return result; + } + + [ApiExplorerSettings(IgnoreApi = true)] + [HttpPost("notifications/newsletterdatabase")] + public async Task UpdateNewsletterDatabase() + { + return await _recentlyAdded.UpdateRecentlyAddedDatabase(); + } + + /// + /// Gets the Newsletter Notification Settings. + /// + /// + [HttpGet("notifications/newsletter")] + public async Task NewsletterSettings() + { + var settings = await Get(); + var model = Mapper.Map(settings); + + // Lookup to see if we have any templates saved + var templates = await BuildTemplates(NotificationAgent.Email); + model.NotificationTemplate = templates.FirstOrDefault(x => x.NotificationType == NotificationType.Newsletter); + return model; + } + private async Task> BuildTemplates(NotificationAgent agent) { var templates = await TemplateRepository.GetAllTemplates(agent); return templates.OrderBy(x => x.NotificationType.ToString()).ToList(); } - private async Task Get() { var settings = SettingsResolver.Resolve(); From b99a5a668bedc550054c72fec1e29ebae32ad81b Mon Sep 17 00:00:00 2001 From: Jamie Date: Thu, 22 Mar 2018 13:00:25 +0000 Subject: [PATCH 26/59] Think i've finished the ui now too !wip needs testing --- src/Ombi.Mapping/Profiles/SettingsProfile.cs | 1 + .../Settings/Models/CustomizationSettings.cs | 1 + .../INotificationTemplatesRepository.cs | 4 +-- .../NotificationTemplatesRepository.cs | 8 +++--- src/Ombi/ClientApp/app/app.component.html | 15 ++++++----- .../app/interfaces/INotificationSettings.ts | 1 + .../ClientApp/app/interfaces/ISettings.ts | 1 + .../customization.component.html | 7 +++++ .../ClientApp/app/settings/settings.module.ts | 4 +++ .../app/settings/settingsmenu.component.html | 2 +- src/Ombi/Controllers/SettingsController.cs | 27 +++++++++++-------- 11 files changed, 46 insertions(+), 25 deletions(-) diff --git a/src/Ombi.Mapping/Profiles/SettingsProfile.cs b/src/Ombi.Mapping/Profiles/SettingsProfile.cs index 62232ee19..139290f2b 100644 --- a/src/Ombi.Mapping/Profiles/SettingsProfile.cs +++ b/src/Ombi.Mapping/Profiles/SettingsProfile.cs @@ -18,6 +18,7 @@ namespace Ombi.Mapping.Profiles CreateMap().ReverseMap(); CreateMap().ReverseMap(); CreateMap().ReverseMap(); + CreateMap().ReverseMap(); } } } \ No newline at end of file diff --git a/src/Ombi.Settings/Settings/Models/CustomizationSettings.cs b/src/Ombi.Settings/Settings/Models/CustomizationSettings.cs index 16d6245f5..515c2fc85 100644 --- a/src/Ombi.Settings/Settings/Models/CustomizationSettings.cs +++ b/src/Ombi.Settings/Settings/Models/CustomizationSettings.cs @@ -18,6 +18,7 @@ namespace Ombi.Settings.Settings.Models public string PresetThemeName { get; set; } public string PresetThemeContent { get; set; } + public bool RecentlyAddedPage { get; set; } [NotMapped] public string PresetThemeVersion diff --git a/src/Ombi.Store/Repository/INotificationTemplatesRepository.cs b/src/Ombi.Store/Repository/INotificationTemplatesRepository.cs index 2ef0e09cf..2398158db 100644 --- a/src/Ombi.Store/Repository/INotificationTemplatesRepository.cs +++ b/src/Ombi.Store/Repository/INotificationTemplatesRepository.cs @@ -10,8 +10,8 @@ namespace Ombi.Store.Repository public interface INotificationTemplatesRepository : IDisposable { IQueryable All(); - Task> GetAllTemplates(); - Task> GetAllTemplates(NotificationAgent agent); + IQueryable GetAllTemplates(); + IQueryable GetAllTemplates(NotificationAgent agent); Task Insert(NotificationTemplates entity); Task Update(NotificationTemplates template); Task UpdateRange(IEnumerable template); diff --git a/src/Ombi.Store/Repository/NotificationTemplatesRepository.cs b/src/Ombi.Store/Repository/NotificationTemplatesRepository.cs index de892e934..3822f8001 100644 --- a/src/Ombi.Store/Repository/NotificationTemplatesRepository.cs +++ b/src/Ombi.Store/Repository/NotificationTemplatesRepository.cs @@ -23,14 +23,14 @@ namespace Ombi.Store.Repository return Db.NotificationTemplates.AsQueryable(); } - public async Task> GetAllTemplates() + public IQueryable GetAllTemplates() { - return await Db.NotificationTemplates.ToListAsync(); + return Db.NotificationTemplates; } - public async Task> GetAllTemplates(NotificationAgent agent) + public IQueryable GetAllTemplates(NotificationAgent agent) { - return await Db.NotificationTemplates.Where(x => x.Agent == agent).ToListAsync(); + return Db.NotificationTemplates.Where(x => x.Agent == agent); } public async Task GetTemplate(NotificationAgent agent, NotificationType type) diff --git a/src/Ombi/ClientApp/app/app.component.html b/src/Ombi/ClientApp/app/app.component.html index bc44c3b49..0db13fa9c 100644 --- a/src/Ombi/ClientApp/app/app.component.html +++ b/src/Ombi/ClientApp/app/app.component.html @@ -34,13 +34,14 @@ {{ 'NavigationBar.Requests' | translate }} - - +
+
+
+ + +
+
+
diff --git a/src/Ombi/ClientApp/app/settings/settings.module.ts b/src/Ombi/ClientApp/app/settings/settings.module.ts index 29866a273..b52cf620b 100644 --- a/src/Ombi/ClientApp/app/settings/settings.module.ts +++ b/src/Ombi/ClientApp/app/settings/settings.module.ts @@ -25,6 +25,7 @@ import { DiscordComponent } from "./notifications/discord.component"; import { EmailNotificationComponent } from "./notifications/emailnotification.component"; import { MattermostComponent } from "./notifications/mattermost.component"; import { MobileComponent } from "./notifications/mobile.component"; +import { NewsletterComponent } from "./notifications/newsletter.component"; import { NotificationTemplate } from "./notifications/notificationtemplate.component"; import { PushbulletComponent } from "./notifications/pushbullet.component"; import { PushoverComponent } from "./notifications/pushover.component"; @@ -43,6 +44,7 @@ import { SettingsMenuComponent } from "./settingsmenu.component"; import { AutoCompleteModule, CalendarModule, DialogModule, InputSwitchModule, InputTextModule, MenuModule, RadioButtonModule, TooltipModule } from "primeng/primeng"; + const routes: Routes = [ { path: "Ombi", component: OmbiComponent, canActivate: [AuthGuard] }, { path: "About", component: AboutComponent, canActivate: [AuthGuard] }, @@ -69,6 +71,7 @@ const routes: Routes = [ { path: "Authentication", component: AuthenticationComponent, canActivate: [AuthGuard] }, { path: "Mobile", component: MobileComponent, canActivate: [AuthGuard] }, { path: "MassEmail", component: MassEmailComponent, canActivate: [AuthGuard] }, + { path: "Newsletter", component: NewsletterComponent, canActivate: [AuthGuard] }, ]; @NgModule({ @@ -119,6 +122,7 @@ const routes: Routes = [ AuthenticationComponent, MobileComponent, MassEmailComponent, + NewsletterComponent, ], exports: [ RouterModule, diff --git a/src/Ombi/ClientApp/app/settings/settingsmenu.component.html b/src/Ombi/ClientApp/app/settings/settingsmenu.component.html index 1ac8da4c8..246760f26 100644 --- a/src/Ombi/ClientApp/app/settings/settingsmenu.component.html +++ b/src/Ombi/ClientApp/app/settings/settingsmenu.component.html @@ -56,7 +56,7 @@
- - - The Refresh Metadata is required - -
+ + + The Refresh Metadata is required + +
+ + +
+ + + The Newsletter is required + +
diff --git a/src/Ombi/ClientApp/app/settings/jobs/jobs.component.ts b/src/Ombi/ClientApp/app/settings/jobs/jobs.component.ts index 380cef8de..9421436c7 100644 --- a/src/Ombi/ClientApp/app/settings/jobs/jobs.component.ts +++ b/src/Ombi/ClientApp/app/settings/jobs/jobs.component.ts @@ -32,6 +32,7 @@ export class JobsComponent implements OnInit { radarrSync: [x.sonarrSync, Validators.required], sickRageSync: [x.sickRageSync, Validators.required], refreshMetadata: [x.refreshMetadata, Validators.required], + newsletter: [x.newsletter, Validators.required], }); }); } From b2db3382710061d34c5dd23efce43f085d296613 Mon Sep 17 00:00:00 2001 From: Jamie Date: Thu, 22 Mar 2018 15:38:47 +0000 Subject: [PATCH 28/59] changelog !wip --- CHANGELOG.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a23ed6887..719fe8c9d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,26 @@ ## (unreleased) +### **New Features** + +- Added the ability to refresh out backend metadata (#2078) [Jamie] + +### **Fixes** + +- Fixed #2074 and #2079. [Jamie] + +- Small changes to the auto updater, let's see how this works. [Jamie] + + +## v3.0.3030 (2018-03-14) + +### **New Features** + +- Updated the .Net core dependancies #2072. [Jamie] + + +## v3.0.3020 (2018-03-13) + ### **Fixes** - Small memory improvements in the Plex Sync. [Jamie] @@ -22,6 +42,8 @@ - Experimental, set the Webpack base root to the ombi base path if we have it. This should hopefully fix the reverse proxy issues. [Jamie] +- Fixed #2056. [tidusjar] + ## v3.0.3000 (2018-03-09) From 6005db374a3a61ab79e9c575f80c28f0efa7582e Mon Sep 17 00:00:00 2001 From: Jamie Date: Thu, 22 Mar 2018 15:40:48 +0000 Subject: [PATCH 29/59] Fixed linitng !wip --- src/Ombi/ClientApp/app/settings/settings.module.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Ombi/ClientApp/app/settings/settings.module.ts b/src/Ombi/ClientApp/app/settings/settings.module.ts index b52cf620b..0069cf262 100644 --- a/src/Ombi/ClientApp/app/settings/settings.module.ts +++ b/src/Ombi/ClientApp/app/settings/settings.module.ts @@ -44,7 +44,6 @@ import { SettingsMenuComponent } from "./settingsmenu.component"; import { AutoCompleteModule, CalendarModule, DialogModule, InputSwitchModule, InputTextModule, MenuModule, RadioButtonModule, TooltipModule } from "primeng/primeng"; - const routes: Routes = [ { path: "Ombi", component: OmbiComponent, canActivate: [AuthGuard] }, { path: "About", component: AboutComponent, canActivate: [AuthGuard] }, From 11442e2ea7a383a351336d925d9b429331641180 Mon Sep 17 00:00:00 2001 From: tidusjar Date: Thu, 22 Mar 2018 21:30:11 +0000 Subject: [PATCH 30/59] Added the test button and done a bunch of testing. Almost ready !wip --- src/Ombi.Core/Engine/RecentlyAddedEngine.cs | 14 ++++-- src/Ombi.Schedule/Jobs/Ombi/INewsletterJob.cs | 2 + src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs | 40 ++++++++++++--- ...180322204610_RecentlyAddedLog.Designer.cs} | 4 +- ....cs => 20180322204610_RecentlyAddedLog.cs} | 1 + .../Migrations/OmbiContextModelSnapshot.cs | 2 + .../NotificationTemplatesRepository.cs | 5 ++ .../recentlyAdded/recentlyAdded.component.ts | 4 +- .../services/applications/tester.service.ts | 4 ++ .../notifications/newsletter.component.html | 28 ++++------- .../notifications/newsletter.component.ts | 49 +++++-------------- .../Controllers/External/TesterController.cs | 22 ++++++++- src/Ombi/Controllers/SettingsController.cs | 1 + 13 files changed, 102 insertions(+), 74 deletions(-) rename src/Ombi.Store/Migrations/{20180322085345_RecentlyAddedLog.Designer.cs => 20180322204610_RecentlyAddedLog.Designer.cs} (99%) rename src/Ombi.Store/Migrations/{20180322085345_RecentlyAddedLog.cs => 20180322204610_RecentlyAddedLog.cs} (94%) diff --git a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs index cc6c9273a..59be359f8 100644 --- a/src/Ombi.Core/Engine/RecentlyAddedEngine.cs +++ b/src/Ombi.Core/Engine/RecentlyAddedEngine.cs @@ -69,7 +69,8 @@ namespace Ombi.Core.Engine { AddedAt = DateTime.Now, Type = RecentlyAddedType.Plex, - ContentId = p.Id + ContentId = p.Id, + ContentType = ContentType.Parent }); } else @@ -81,7 +82,8 @@ namespace Ombi.Core.Engine { AddedAt = DateTime.Now, Type = RecentlyAddedType.Plex, - ContentId = ep.Id + ContentId = ep.Id, + ContentType = ContentType.Episode }); } } @@ -95,7 +97,8 @@ namespace Ombi.Core.Engine { AddedAt = DateTime.Now, Type = RecentlyAddedType.Emby, - ContentId = e.Id + ContentId = e.Id, + ContentType = ContentType.Parent }); } else @@ -106,8 +109,9 @@ namespace Ombi.Core.Engine recentlyAddedLog.Add(new RecentlyAddedLog { AddedAt = DateTime.Now, - Type = RecentlyAddedType.Plex, - ContentId = ep.Id + Type = RecentlyAddedType.Emby, + ContentId = ep.Id, + ContentType = ContentType.Episode }); } } diff --git a/src/Ombi.Schedule/Jobs/Ombi/INewsletterJob.cs b/src/Ombi.Schedule/Jobs/Ombi/INewsletterJob.cs index e5e587bec..887508d34 100644 --- a/src/Ombi.Schedule/Jobs/Ombi/INewsletterJob.cs +++ b/src/Ombi.Schedule/Jobs/Ombi/INewsletterJob.cs @@ -1,9 +1,11 @@ using System.Threading.Tasks; +using Ombi.Settings.Settings.Models.Notifications; namespace Ombi.Schedule.Jobs.Ombi { public interface INewsletterJob : IBaseJob { Task Start(); + Task Start(NewsletterSettings settings, bool test); } } \ No newline at end of file diff --git a/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs b/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs index 693c8ae7a..9f303b906 100644 --- a/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs +++ b/src/Ombi.Schedule/Jobs/Ombi/NewsletterJob.cs @@ -38,6 +38,9 @@ namespace Ombi.Schedule.Jobs.Ombi _emailSettings = emailSettings; _newsletterSettings = newsletter; _userManager = um; + _emailSettings.ClearCache(); + _customizationSettings.ClearCache(); + _newsletterSettings.ClearCache(); } private readonly IPlexContentRepository _plex; @@ -52,10 +55,9 @@ namespace Ombi.Schedule.Jobs.Ombi private readonly ISettingsService _newsletterSettings; private readonly UserManager _userManager; - public async Task Start() + public async Task Start(NewsletterSettings settings, bool test) { - var newsletterSettings = await _newsletterSettings.GetSettingsAsync(); - if (!newsletterSettings.Enabled) + if (!settings.Enabled) { return; } @@ -85,17 +87,33 @@ namespace Ombi.Schedule.Jobs.Ombi var addedEmbyEpisodesLogIds = addedLog.Where(x => x.Type == RecentlyAddedType.Emby && x.ContentType == ContentType.Episode).Select(x => x.ContentId); // Filter out the ones that we haven't sent yet - var plexContentMoviesToSend = plexContent.Where(x => !addedPlexMovieLogIds.Contains(x.Id)); - var embyContentMoviesToSend = embyContent.Where(x => !addedEmbyMoviesLogIds.Contains(x.Id)); + var plexContentMoviesToSend = plexContent.Where(x => x.Type == PlexMediaTypeEntity.Movie && !addedPlexMovieLogIds.Contains(x.Id)); + var embyContentMoviesToSend = embyContent.Where(x => x.Type == EmbyMediaType.Movie && !addedEmbyMoviesLogIds.Contains(x.Id)); - var plexContentTvToSend = plexContent.Where(x => x.Episodes.Any(e => !addedPlexEpisodesLogIds.Contains(e.Id))); - var embyContentTvToSend = embyContent.Where(x => x.Episodes.Any(e => !addedEmbyEpisodesLogIds.Contains(e.Id))); + var plexContentTvToSend = plexContent.Where(x => x.Type == PlexMediaTypeEntity.Show && x.Episodes.Any(e => !addedPlexEpisodesLogIds.Contains(e.Id))); + var embyContentTvToSend = embyContent.Where(x => x.Type == EmbyMediaType.Series && x.Episodes.Any(e => !addedEmbyEpisodesLogIds.Contains(e.Id))); var plexContentToSend = plexContentMoviesToSend.Union(plexContentTvToSend); var embyContentToSend = embyContentMoviesToSend.Union(embyContentTvToSend); + var body = string.Empty; + if (test) + { + var plexm = plexContent.Where(x => x.Type == PlexMediaTypeEntity.Movie).OrderByDescending(x => x.AddedAt).Take(10); + var embym = embyContent.Where(x => x.Type == EmbyMediaType.Movie).OrderByDescending(x => x.AddedAt).Take(10); + var plext = plexContent.Where(x => x.Type == PlexMediaTypeEntity.Show).OrderByDescending(x => x.AddedAt).Take(10); + var embyt = embyContent.Where(x => x.Type == EmbyMediaType.Series).OrderByDescending(x => x.AddedAt).Take(10); + body = await BuildHtml(plexm.Union(plext), embym.Union(embyt)); + } + else + { + body = await BuildHtml(plexContentToSend, embyContentToSend); + if (body.IsNullOrEmpty()) + { + return; + } - var body = await BuildHtml(plexContentToSend, embyContentToSend); + } // Get the users to send it to var users = await _userManager.GetUsersInRoleAsync(OmbiRoles.RecievesNewsletter); @@ -174,6 +192,12 @@ namespace Ombi.Schedule.Jobs.Ombi await Task.WhenAll(emailTasks.ToArray()); } + public async Task Start() + { + var newsletterSettings = await _newsletterSettings.GetSettingsAsync(); + await Start(newsletterSettings, false); + } + private string LoadTemplate(string body, NotificationTemplates template, CustomizationSettings settings, string username) { var email = new NewsletterTemplate(); diff --git a/src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.Designer.cs b/src/Ombi.Store/Migrations/20180322204610_RecentlyAddedLog.Designer.cs similarity index 99% rename from src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.Designer.cs rename to src/Ombi.Store/Migrations/20180322204610_RecentlyAddedLog.Designer.cs index 23f23bc4b..fb493660a 100644 --- a/src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.Designer.cs +++ b/src/Ombi.Store/Migrations/20180322204610_RecentlyAddedLog.Designer.cs @@ -14,7 +14,7 @@ using System; namespace Ombi.Store.Migrations { [DbContext(typeof(OmbiContext))] - [Migration("20180322085345_RecentlyAddedLog")] + [Migration("20180322204610_RecentlyAddedLog")] partial class RecentlyAddedLog { protected override void BuildTargetModel(ModelBuilder modelBuilder) @@ -440,6 +440,8 @@ namespace Ombi.Store.Migrations b.Property("ContentId"); + b.Property("ContentType"); + b.Property("Type"); b.HasKey("Id"); diff --git a/src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.cs b/src/Ombi.Store/Migrations/20180322204610_RecentlyAddedLog.cs similarity index 94% rename from src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.cs rename to src/Ombi.Store/Migrations/20180322204610_RecentlyAddedLog.cs index 0e815a06f..bc51af276 100644 --- a/src/Ombi.Store/Migrations/20180322085345_RecentlyAddedLog.cs +++ b/src/Ombi.Store/Migrations/20180322204610_RecentlyAddedLog.cs @@ -16,6 +16,7 @@ namespace Ombi.Store.Migrations .Annotation("Sqlite:Autoincrement", true), AddedAt = table.Column(nullable: false), ContentId = table.Column(nullable: false), + ContentType = table.Column(nullable: false), Type = table.Column(nullable: false) }, constraints: table => diff --git a/src/Ombi.Store/Migrations/OmbiContextModelSnapshot.cs b/src/Ombi.Store/Migrations/OmbiContextModelSnapshot.cs index 7571c6f11..a24aa583a 100644 --- a/src/Ombi.Store/Migrations/OmbiContextModelSnapshot.cs +++ b/src/Ombi.Store/Migrations/OmbiContextModelSnapshot.cs @@ -439,6 +439,8 @@ namespace Ombi.Store.Migrations b.Property("ContentId"); + b.Property("ContentType"); + b.Property("Type"); b.HasKey("Id"); diff --git a/src/Ombi.Store/Repository/NotificationTemplatesRepository.cs b/src/Ombi.Store/Repository/NotificationTemplatesRepository.cs index 3822f8001..175d0e6a9 100644 --- a/src/Ombi.Store/Repository/NotificationTemplatesRepository.cs +++ b/src/Ombi.Store/Repository/NotificationTemplatesRepository.cs @@ -40,6 +40,11 @@ namespace Ombi.Store.Repository public async Task Update(NotificationTemplates template) { + if (Db.Entry(template).State == EntityState.Detached) + { + Db.Attach(template); + Db.Entry(template).State = EntityState.Modified; + } await Db.SaveChangesAsync(); } diff --git a/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts b/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts index c5c09f814..53d652070 100644 --- a/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts +++ b/src/Ombi/ClientApp/app/recentlyAdded/recentlyAdded.component.ts @@ -40,7 +40,7 @@ export class RecentlyAddedComponent implements OnInit { public tv: IRecentlyAddedTvShows[]; public range: Date[]; - public groupTv: boolean; + public groupTv: boolean = false; // https://github.com/sheikalthaf/ngu-carousel public carouselTile: NguCarousel; @@ -76,7 +76,7 @@ export class RecentlyAddedComponent implements OnInit { } this.getMovies(); } - + public change() { this.getShows(); } diff --git a/src/Ombi/ClientApp/app/services/applications/tester.service.ts b/src/Ombi/ClientApp/app/services/applications/tester.service.ts index 9122eb0b9..bab94d32f 100644 --- a/src/Ombi/ClientApp/app/services/applications/tester.service.ts +++ b/src/Ombi/ClientApp/app/services/applications/tester.service.ts @@ -12,6 +12,7 @@ import { IEmailNotificationSettings, IEmbyServer, IMattermostNotifcationSettings, + INewsletterNotificationSettings, IPlexServer, IPushbulletNotificationSettings, IPushoverNotificationSettings, @@ -77,5 +78,8 @@ export class TesterService extends ServiceHelpers { public sickrageTest(settings: ISickRageSettings): Observable { return this.http.post(`${this.url}sickrage`, JSON.stringify(settings), {headers: this.headers}); + } + public newsletterTest(settings: INewsletterNotificationSettings): Observable { + return this.http.post(`${this.url}newsletter`, JSON.stringify(settings), {headers: this.headers}); } } diff --git a/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.html b/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.html index 5f663dd20..1be27b578 100644 --- a/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.html +++ b/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.html @@ -1,47 +1,37 @@  -
+
Newsletter
-
- -
-
- - -
-
-
- - +
-
+
- +
- +
- - + + +
-
diff --git a/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.ts b/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.ts index 7742e6f4e..4e254688e 100644 --- a/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.ts +++ b/src/Ombi/ClientApp/app/settings/notifications/newsletter.component.ts @@ -1,8 +1,7 @@ -import { Component, OnInit } from "@angular/core"; -import { FormBuilder, FormGroup } from "@angular/forms"; +import { TesterService } from './../../services/applications/tester.service'; +import { Component, OnInit } from "@angular/core"; -import { INewsletterNotificationSettings, INotificationTemplates, NotificationType } from "../../interfaces"; -import { TesterService } from "../../services"; +import { INewsletterNotificationSettings, NotificationType } from "../../interfaces"; import { NotificationService } from "../../services"; import { SettingsService } from "../../services"; @@ -12,21 +11,15 @@ import { SettingsService } from "../../services"; export class NewsletterComponent implements OnInit { public NotificationType = NotificationType; - public template: INotificationTemplates; - public form: FormGroup; + public settings: INewsletterNotificationSettings; constructor(private settingsService: SettingsService, private notificationService: NotificationService, - private fb: FormBuilder, - private testerService: TesterService) { } + private testService: TesterService) { } public ngOnInit() { this.settingsService.getNewsletterSettings().subscribe(x => { - this.template = x.notificationTemplate; - - this.form = this.fb.group({ - enabled: [x.enabled], - }); + this.settings = x; }); } @@ -34,16 +27,12 @@ export class NewsletterComponent implements OnInit { this.settingsService.updateNewsletterDatabase().subscribe(); } - public onSubmit(form: FormGroup) { - if (form.invalid) { - this.notificationService.error("Please check your entered values"); - return; - } - - const settings = form.value; - settings.notificationTemplate = this.template; + public test() { + this.testService.testNewsletter(this.settings).subscribe(); + } - this.settingsService.saveNewsletterSettings(settings).subscribe(x => { + public onSubmit() { + this.settingsService.saveNewsletterSettings(this.settings).subscribe(x => { if (x) { this.notificationService.success("Successfully saved the Newsletter settings"); } else { @@ -52,20 +41,4 @@ export class NewsletterComponent implements OnInit { }); } - - public test(form: FormGroup) { - if (form.invalid) { - this.notificationService.error("Please check your entered values"); - return; - } - - this.testerService.discordTest(form.value).subscribe(x => { - if (x) { - this.notificationService.success("Successfully sent a Discord message, please check the discord channel"); - } else { - this.notificationService.error("There was an error when sending the Discord message. Please check your settings"); - } - }); - - } } diff --git a/src/Ombi/Controllers/External/TesterController.cs b/src/Ombi/Controllers/External/TesterController.cs index 013798e13..bad933e86 100644 --- a/src/Ombi/Controllers/External/TesterController.cs +++ b/src/Ombi/Controllers/External/TesterController.cs @@ -10,12 +10,14 @@ using Ombi.Api.Radarr; using Ombi.Api.SickRage; using Ombi.Api.Sonarr; using Ombi.Attributes; +using Ombi.Core.Models.UI; using Ombi.Core.Notifications; using Ombi.Core.Settings.Models.External; using Ombi.Helpers; using Ombi.Notifications; using Ombi.Notifications.Agents; using Ombi.Notifications.Models; +using Ombi.Schedule.Jobs.Ombi; using Ombi.Settings.Settings.Models.External; using Ombi.Settings.Settings.Models.Notifications; @@ -35,7 +37,7 @@ namespace Ombi.Controllers.External public TesterController(INotificationService service, IDiscordNotification notification, IEmailNotification emailN, IPushbulletNotification pushbullet, ISlackNotification slack, IPushoverNotification po, IMattermostNotification mm, IPlexApi plex, IEmbyApi emby, IRadarrApi radarr, ISonarrApi sonarr, ILogger log, IEmailProvider provider, - ICouchPotatoApi cpApi, ITelegramNotification telegram, ISickRageApi srApi) + ICouchPotatoApi cpApi, ITelegramNotification telegram, ISickRageApi srApi, INewsletterJob newsletter) { Service = service; DiscordNotification = notification; @@ -53,6 +55,7 @@ namespace Ombi.Controllers.External CouchPotatoApi = cpApi; TelegramNotification = telegram; SickRageApi = srApi; + Newsletter = newsletter; } private INotificationService Service { get; } @@ -71,6 +74,7 @@ namespace Ombi.Controllers.External private IEmailProvider EmailProvider { get; } private ITelegramNotification TelegramNotification { get; } private ISickRageApi SickRageApi { get; } + private INewsletterJob Newsletter { get; } /// @@ -368,5 +372,21 @@ namespace Ombi.Controllers.External return false; } } + + [HttpPost("newsletter")] + public async Task NewsletterTest([FromBody] NewsletterNotificationViewModel settings) + { + try + { + settings.Enabled = true; + await Newsletter.Start(settings, true); + return true; + } + catch (Exception e) + { + Log.LogError(LoggingEvents.Api, e, "Could not test Newsletter"); + return false; + } + } } } \ No newline at end of file diff --git a/src/Ombi/Controllers/SettingsController.cs b/src/Ombi/Controllers/SettingsController.cs index de2a87317..9ffa9d81f 100644 --- a/src/Ombi/Controllers/SettingsController.cs +++ b/src/Ombi/Controllers/SettingsController.cs @@ -71,6 +71,7 @@ namespace Ombi.Controllers _radarrSync = radarrSync; _cache = memCache; _githubApi = githubApi; + _recentlyAdded = engine; } private ISettingsResolver SettingsResolver { get; } From 76eb895f7309066e20be56657eed9da4147448a9 Mon Sep 17 00:00:00 2001 From: Anojh Date: Thu, 22 Mar 2018 17:11:12 -0700 Subject: [PATCH 31/59] Fix for issue #1907, which is to add content poster and bg to issue details page. --- .../app/issues/issueDetails.component.html | 21 ++++++------ .../app/issues/issueDetails.component.scss | 9 ++++++ .../app/issues/issueDetails.component.ts | 32 +++++++++++++++++-- .../ClientApp/app/issues/issues.module.ts | 3 +- .../app/requests/movierequests.component.html | 2 +- .../tvrequest-children.component.html | 2 +- .../requests/tvrequest-children.component.ts | 1 + .../app/shared/issues-report.component.ts | 2 ++ 8 files changed, 57 insertions(+), 15 deletions(-) diff --git a/src/Ombi/ClientApp/app/issues/issueDetails.component.html b/src/Ombi/ClientApp/app/issues/issueDetails.component.html index 1c1e0f5c4..bad4885e7 100644 --- a/src/Ombi/ClientApp/app/issues/issueDetails.component.html +++ b/src/Ombi/ClientApp/app/issues/issueDetails.component.html @@ -1,13 +1,16 @@
+
+

{{issue.title}}

- {{IssueStatus[issue.status]}} - {{issue.issueCategory.value}} - -

{{'Issues.ReportedBy' | translate}}: {{issue.userReported.alias}}

-

{{'Issues.ReportedBy' | translate}}: {{issue.userReported.userName}}

+ poster + {{IssueStatus[issue.status]}} + {{issue.issueCategory.value}} + +

{{'Issues.ReportedBy' | translate}}: {{issue.userReported.alias}}

+

{{'Issues.ReportedBy' | translate}}: {{issue.userReported.userName}}

{{'Issues.Subject' | translate}}: {{issue.subject}}

-
+
@@ -26,7 +29,8 @@

- {{'Issues.Comments' | translate}}

+ {{'Issues.Comments' | translate}} +
@@ -51,8 +55,7 @@

X&mcTgRuoRCgQiVJVi_4hOVl?xcgHLwZnI0Aw5~ zdPil1^(iV!F*rq+%Uli= z?1ZT;sc$zzo!{#0A2uIyr8j@6{f(O?yI#R8?dGFZ+g-N^5nE%@r4P%5Mg3&SF}M;A z_@3@YZ+^Y)dm={Pm(y3N?!Et0Pcr6v81Z$sW4o5*%jjrinbdfFzghj_V@%!TSf_c@ zYrOel+i6HE;-z#_*;1CVU+}RdP2m_;z8+vNc)=Mb+qVDRyca*5a6hc&@e;l9h$6=6 zV;4OuWj~+FrOnup^)Z{h`MB+r()xHYo!Un6rgwBHt*k$ddzur1*e(3)6U;!7MVp0j zJLu(Q4+N%Ye5|Z2-}}NW7upVHVVtD{CbC`=RM3V9mfyj?n~6JWqg2TJTHB>Dj1cHT z2#~PV%fq*5(s0uwzqwi6n_pvbJ2Js_fTMv^8`q53wwb~=YdCiC2{NUv)K#xc)i`RD9j zbUeOQMfQKN-CvnvU*_u8lkuxj*vh$a^CF zk)1^UKN-Foum9EIoXqbN`G05TjhPLZnW688?hd^w^ukbms37=c@SDMZ4gMW^e>%7? zxH)(+djCfPw*}e*)qxRzp@OMs;>(G96JIeGC^FxB)6}TZ^1wWU9;raF z3U9&j?xtws_xN4^a7oH3`?{~23NI72|4A50^G&;DA`DJi$G|LiT^g5~9b z)?niIi9gW=Wdj4gLI$+yjhPhLNzv8rp0avx0j_S2wGQBa1TM!f(bVP+NJI;-O(h>UZy0`YB=Kb8cZsL`3eUyfg5mH`e?0I{CZ0_^Wr~x?@xj$%3zopg z)@RcAOyVgb%Mo5`vBW*LK19of#8du_NHEF;%h=H+XgQyF%J5*0s&U=|zHYeDdYYb2 zJmq^>So{lyr&GHVZ~o&MPyI6SgarIvLxv>XWwKZ>EFDZmOqgFJp5Xc=6}vTOZroci zOr7@iS!$n7JRwKxsWg7e1w+nh!iP`OeTgSz?N=dNKX3xFvfvo{&ImIXVq9@CYKMx^ z_`%D3e1Gq7+2!7XqwCP0-xr6$Dy~55#ei`aOqC_Q1xMZYWwBoGW4#`uyaam{k-==C zI`pAIm_q>rl9sGv@l7!v8{x6+YWcia2Y9P=Uc;C4`;OArB>)xz)XC1Z^&{h>goO@5 zCd#V41xM{$;-JgmeB`V z*8sc-pk{yN8peZ@L)?rlVu_`utjb%kygsn&67U7!VRPJCdKvNCVMsSLGwbkEk0lh}df-!Q5Ds9=(IPIE}+ z0*V15X6Q^84jEDedoZ6+@@~PY3OjSaWP$P3c74GS5fi;SA<8{vb>4#07231GM!_1d zx*1lam=PwW$B2HnFTp*x>{P2ha65Y9@x*TvPwbyWWbuhe534g^xufYfi6@}agUG;B z_$U{wj=+tlwEa5q1jdcCDp8iEs(JT%Z^3B<6(QPx<;xI5uNf$oBl>`m%}v?t#|IM& zAxIKYK-RjZA?3ezF-A@aNX7tuM?k*ZUnjn|af7$uw17%&?r(#EUMa-p(8z85W?&rA zZ`Wz{0Dx;Jd(lp|P`}y#U)AHF153jOPcWK}=C?=a^es9Ggov|}gVL{<;CLI=jrF5k zkOq$D*M;eHKb>T(^ZjQ>B|%wp<=%oL_KlgKzUdylN*2jvz+QBGzBL5yoWtoPvM*r^ z4H2X?K7o{RWWFT`ehK`w7(^6_HBKB?57khyl;AT`uv9l&*Ae*?=ta;FDU5frrVyhq zXV@HJZ_focXPLpuupQNc?LaWW z(iw5x2Ev;-vc4;aPO~fG8F^;z+EF1fa-Q&G@(Yfnv&_Gom;vlt1eppm>;8@P?!U|x zxJXpT${Vzfrs-s2nyKFAtEmRYi#Q%`UgW!O#Fr;sV}p2-rFOfw;Ar>_`qYOUc-8bA z<)SkkMaF=r{hF4kZJW2?`1o-R=J)6+L)LTGm!{ykf5oReQr@nw_-W$%na}N$LO40i zM!LGv)4c`D&||ehwjxLMs?Z&l9050MXQ;U$164rmiLcwMjGcL`##?agyiG6sbAA|S zjFCOczcZrvId8(*o{A1VTAQuTQIKJMZ+5ee??vY)WEh9Gw7uTy` z4{HYk;W&J?=Km+a{Y&R$%rL2ph!@A-npQ=Sr1-qdl!FxuI}cR}I}fja>1 zVfV|+(~S&5J=GRY`|BIZmt!T@b&@4NqKg7Ldu^Hzk55t9U3#LK_|)JO#s_{U+xEhw z^5w*1^wJiX5ScRh{5BVW!$)d5I;OV}vprfRNq$HVGag2}Hd_s=A)Pt%*nhj2!7Pg> zRQ1b=N5MC4t!>zYkTSTGY;H{h210(@&jO+SB^TLE@^F3 zQc9&RI1G%|WJ_nTcfz*oE~)u%z%Z~M>!0ihQtFZDs#}R}fZ+-zkZHmDq}RV5Fjl*f zK~f6{;zybim1mS{g7cK#2R9Dc4p7;(i7T)MvBR-mW1Zjx2>OlKpUNL8|IhMASMvBU z^_{xRTL@S{britQ${%eV8ddHf^JO?aEq_#8K_hHpIZ-NKX4^M}Y5z(2 zqwod>V7zCIH~&)GRG3NAkINq=?w0%K=U?J_g!t;^jP_$ zrnKw`o`vyA8G>)OyRnScAC^BV9@jM@3mk^vv$kt%7B06RSeM(CzRS(%GLFa)#e|kR zW#P?H;164P(^aMIN|_T;HI;6vy!qQKFcks#eGA-v6-J;TXFt;|r-SJ}EQDt)_&^x& z_bj;4e+ir1y!;wi19*?q?maT;@sRCd@6<>Uy$YOkXEgLl3v3Jl{H_IZFK5bE!{8Yc z#QV)pI9L$agBDiL>rQr>SO`Qda&3Ox?(a$#O{HBlzS9T)E9TWP|1o|5cNKt+{vK=v z=x%r%%v`+4{!mE-pUbyad@kEDy^h-6b&4h4Y#(o(w{p#L^Rx8-o2z+<_e%6(<-&AIitk(_fm|ClqJ zb0Fu6oKW_?+3(7}ExSFtHaimgdF-pP569jZI~m&v`_K?WU># zn%u60w}`S3Q|DsS_owQ+kBhmvFwa|*HlVhai_~}_nsNSo5JrLJ>k0|AeUsx=T7x=o zlqtN;Ta*T%9_39Iy}iL(6!llXvV7AotbT+5CJ!o5 zxchnDqG-PWU3um`f2;T8%S!i|oN+8&RKT^qO|+r9tw#=RDQ!M-2>$^QQEBeQS(H++ z@)PHu)DvXf9z&YxE}=zf0syPto`0H|uIC+idInkI<9S`_ye47ldw`x)oIl}Ri$ zyi7z#fk+tl7o`TQ`nAV|k{w{c#075h7NrXa(BOa24+St{MVe9@oSI*Rid^9>N-Geu zDcAhqqe7-I_#=m|og`P4npdOLf9b}|z9`VD?sNYQ($0m82$-hn` zhsUUrw5=12lZ)-nLZDzkH0c>r-{!z;Zjy@ zl<+9`7Nt?BQ!NXLk^7!H`LP8A9qmmM{{u0q_7xe%SbZxEe*$sR%8w6?rIFIoXFmyGz>kh(%-?~ zS^n}_@WVx?Qnai`uT7xW9#zh>N@EZ(I%O<#$1G7myIOS0MB_T(ao{F_3iG& zXA+;F;-egLnB7a^)?-}y0sZq9t$Glv4FUUf;u8cS5Q9BBswZ^}5?H`HSVcg-%exbw zN_;|jF09rGn&A3|l9$l($;2l*CVSIkS_Ui=$LPrkdSBw>iMvpqkK#^YhNucg1O|z3 z*r-dqMQFXTG-54(U*cnlyG|fN&JY6KC+5VlUhFMeW*;ld2lDSci?zWKj&TTyYDs*o zB#*{_^BW1x=;E@fMa$Y_ctzir_}9c;2jvUwq~0OfK8u#4$C5cT{)^wy#a3a`A7EB3 zN0&$YeTn~@xC^I{maQnAAzlboM(kK0tALQbMVPwz6oR1Mm-wjv#G`1BjJ>K9Em~eK z7v%dA|IFhQtJ%SBQDKcU%&Dc|v5ipxAFx9C?JVu z%dTS;Su}qk@reWYH2S+oC?_%s16;J^I#w9w*&j;Wb(C@Doh_M;@y>TAzL@xg>L&GI zb}+{X^4BqD_`{bIUqdN9FpPD@okOxrN&Y&jTq)-MRjIBj1tvx<%PGRZQR8ND_Im(m z4t)xoRIM`x5#LNVZs5?o3{{hg{o5R=bR3|>gG3CPS@@FbC%bykbEbfK3+#OS{4wpYu{-+hlL1Z}-kM;;zHVdOQ6T~0OpWO#>!)1w`iG1lJ z>C=;^CzU>ry>=jtQOogXLT{ca|3mq+hk6D(2@f8|akSvb@`fO7zb}85h+1giFu^Me z&||Y38)^9+KQfu_PE+$zQ46)D2U&;xdVu4_8?u@3FCiJ2h-1iaRMKSv9ASxk*k69w zVEuAuvW)RT3c6Zw1Q^TO`w|~?K(>b52Rz6!-#}9_;;jhrhF#MqA0|lI_d8RLK`fJ>de-ES;>!Zx1rENMX4>3;&WzK+}aqJzI z3I}eGKl(yms3XdV!okG5=;@-pc*(fI zcG7RLJLE$CTZ_f7Kz)2u6*x6GF~%)A+%37#XQ3Dz2NQ1w>f3LRQvB`^nv&Aku^aVT zRJ&&GO`y!6xIh_+60DP&X%mB^xO?9ClzU@Mn&;kvK^aOOz-&GLfo-iT5z)9B^q0 z%i)3_>>rXv0fNs!bXpvKpuxm@!L6j!DDX+VX`Q!__EE8oAvV_s>>&V$fUWV2Tii2b zl=we9L%yWF=JE&gdt4}iY5SyoMn#ZkygzYQ3#ulYg=;*z`j7!Hw34EP)_+Re)j=5{ zu5Ie#6j`|0^~^2*dHIF%#}DE0Y3m*#wNONR;RUw2Du?Ft<&VoMu!p+9#A6T;g6z7< z0!p$0JYD{{%)~OW4AJ>U*EvSpQ{|7hOpf+lGzn{(g#1mzKkJNHythP_B34Zu;;_Dogf0p)Wj#cDZyT#SYtoIFYP>s@K`%}j% zJ2+Fhu%=A<|4kX+&Y=4Li@E)8bN(OmAI$$~{_Xku@*{Z<5&QpA>i#A3vU2awy*>A6 zZaG>1=W_l%=k+;VIZZihiU0pp_G_~DWS7JqkNs=xC9xZ0&9UOF|IGSe)*V^5WK~E1 zNX5U8MPC)YDY_-{Oymn__>++vBD*3RBZ2Vu!e0!(EBtbz{tt%h!t26;%KJx>a zFU~xgS)Ca~)4wb9%1|3o|33?Uo|ylk;5ES<{Qma@?jqCw1%XOl`@j8jz*`c>Ll=m> z%qVCV)?{4Z`c)GdFP9==Wh?)okm=|A#g@|c5zLPJf5*}xy zlqRSZD%2-2rT@?p>LfUXOoAoL3Imn7#Z|?r;>KXROc3H>f+7jCZjFhk~6xt zZsshmLd61eh)mX zOU@*_>k2wmm`+%LM~TJ6df^vKmQ$jC7|-#Nqm&JmfXnqpJnUFM<^|k7sCekjxPzA* zr)=5;Y@>PRK@4BIfCb++7dMPhhYtValH-;;D*#>&kV^oK-4~0opQS+EH^f9)jkjd2 zuz|L6uw{CvyK}~9nJ)LZb&RutE2B4iOO|W~QXA<}N{{8crd_0h&KX^dSGL_-vK%yU z!{wk$%uDY@{z)0s01%Ra{0e}@P;ta;Uv6piGCcb2Bh!V7@fz*4*qXugiPu8;87JNWC4k%5u%zBFoxBdoUH#gCA2yHXnuWOy5t^`}6 zH#*L_5y*BRNEmHUzrx|7rJJ!@$(L=#n~e#csuHqj>1C{1W7trr{;{~MizUX~_u#TzYKnK2GK zWP%**iCSdGEW%SZYdLNsUePhfHlRN-A#HVC=HD^d5dC!l8ncF zu^f;&6Kknq7V-}g>H;nDQ+AaqTdH%H>)$Z-h!m=8tA9XX4mvN@)c4XZ`@j6No@y>K z^*{?vmz~BycmXSu>0%zLQ8gpao>%NUUnz2^U#K(Ys0$4l7ph46Aj-le8FlEK;JL6v zV|CgktJ8%#;d~n()6|8Cm-fK;T#pbTt!Ys-QO~XLt;JVlTu6jvqAP9CPORU9l}TJt zkXqk7Tq%f7GK^(}3)?F;tGq?AMd6x#bMPkN7z8#6*QoTLm4KmSkZ3fvNVuZ`w;4<7 zg$jXB^i(SHj9>$VvSJGd%qXO~c-J9rEn5_;)GuuG$E@7EiNg9NnS0>Iiz1dnRQnUL zQHVAi&L-~xgEPh}?9yVFLUs8weYsGpOmn4eZN7si)it4~uWpj5f>9O+)f09aQ|g5> zJpl@>D9)))j-fLnM2{-q3cAhG6C)M8#F(EilnU<8N`1{%q_!BT+RKcQ^+Ji-_i{%D zdy~zMW5P+`oa7cLXv`u=q9SQ;UWiGejJb}C4#f3R;@`Hf97`fECIME90nL7X9T zQFW!aDCVjzCyd4P!lmkhQp+jBFJmx8)Edr$sdP6i)dn-r!q17wnxFF**#r(I=`1v?#KZK~oHbE-#m8fIl#Ehi!)nf1Gxx z10Ow3g*|Rj9GJpaaL7WM{Bda##5xI_VgBIc>C@>xHse9Nz3a^O-YzILe<#wNFh%^d z6JknKUs*h0pPBUc^-d!P{tU>%yVk2i~B96*&pv_VSMKb7nCPYaPktVZNxBqVxI-?@b~bQ=EaPAYDMa?=cErI_V!wI zoxh(?3r$TA{utTn4`kW(-ePOapO;r$?C#ZV3FXUn8869V~lA z6H~39%v+}68VhXpm(e=y$h|7@MV$>`2L+A%bj8TImi{I)?o*hOJ%3GxYHujzDw>$Lh9?WevzEvk3;{U|8JPH zn2J5=AwsN{{b5(z2ki5GXTOmv$>>GMR4ER;7r%5OO>(F9TiXO)&mFc;i&-e=f2}@t zo9&@q1sq;KuE0|{^m-Ytt89;Ef5D8a2W1DL)ePB6>>(Zkwn4K6SNg8AUkTjOCyR`V z?_E2hZG5H0H2FTpUkW3^s}oY*K@PPPZ!kQ-_5@?ZNYeMJ{X$qo{Q%-tcN_pcM9RV9 zb_;9ty<|@qn0N&?JNaPjTU;HkzwZ_7Zhi#s(|-*YyS82_ta=3p5TRj zM>BU%?eiA5*^ZM&qMiS_{S80#5CXDtpQhvHF4~2qEW2?RLX~V2>Hjxo{5qrH-hzK1 z`+rx#rTM?kpU;0semcJ_?+1CGwUz%jYL(ml3s54JC1&b$&-&p*H&`~tvA#1XgI3nL`n45Q(92vbSoS`Ro=*b+fCXR~L z(Sg!`mP2uZACR=#JJL%rZLA2rz1Y{593L%PYkCisur96%EQ$1KY(GJyW)0JZ~gyppp=pV;>tKqCN0D9iE< zp!Yd|ZMEK#Bay9n25^%AH>S}|ISLsVBKbK2O>f+7xEMF@{bhE@l49Tq2;( z`V9k9Zq^5$V({6P#1|e-15*6{A=m(MPM{y1@ zCNNW@0ks%>O86s`DDmSW%_y?xWLBpj^Z?27OO}_$%GQ}4bs5jZmp99HUfWXA*a3gc zE~6cV!(6Ya$6;FNqMVx&CD2pw(oPQT^_DCNjZOOFw1G|OK&)r!wgXnVWvQ`~ndXbu z(?$9HQo)Xo`eq*eDyvq3+WLr&0Zz$7_^a{YELqM|rmDF(~cQ-p>fi}YY3Do(M)smsLnvFtU5IAgUYz}iY&Tc9PS`>^cMLoO~w z2$@(-v|4^dY*zXByRs3RZ$oTqC?z_%OcNtK#zEHnR5xy*GH*$oR^Zwg;I~?EYIh6k zQ72Z<1U!04yjGybEI@AoWS#)zkQjz472?zbCvIzSQE-2|>X(Tp#-j!Nw#iWhyJ)R& zO%ZT!28X)sC;93%2h+D1%V@Q?Bt|P>OBmpr>;p+O92-nJ08zMH<5yT)$tg;gniF}e;L`{YU@DXU6r zl1VjT;fJxFU`e)oHkR^5VVUWRq=k4XFP6Pb)|SbzVvn&qEv=2&qiQpFw>#^aX@|+` zAc~c-^!SdgtJ>=uX}82RR>pFpy>@l`Hrg#+jg`esd(G@C$;+ie$tn`(@Y`-VL4a2=u66_(sWofg2KE~o^ zv|=EPlZVdet43mAzHKQ!RJ@1a1qi2qLbXoyjK{sDD=cJv7LbELsPlt2MWnORHdRJx zIzSW3T2B&lBlq|85RkI8$pSV+09>oSeQELz`qK!j3fs0ZOj{dmqHVl1Bw%Wjw^VMM zn=@(NPqXBnAK7JeZ+qDmKeEyNNC@OUi#*t$#xcBfxoxWm(zchj1Mn5D>cU9ZkNJM7 zjFFMVET*}Y=JwvH-u^Vcrc&FnArI5>ZcO9)`Bp~88WBW4F87u&?-@~)^cPybre6V^ z015e~e99OW+NH}Z3c)3V!bO@QV*pXzK}lW0D_m*-3vPq`?UEdR`x<^*XMFbv&tk?d zwa@bP(hC>!EY?OZhqcl4arG~)_aT95-+qxHYnX}?VdvOy(vinW<6By1QNGFI{GWt6 zI?_oY{M}O!1-J?1vDktjkBY_oqd<7Ok?xhKq$GNF3}GHMnmtu_$x=@7*NRHjvfp*J zx0J9CIO*%Nf6xP{k1!!)qpy>0G1Zj(f7jop2FKBbO-?$pFmC&|`%3Qb)j!4PF7rW( zJ@tqYLL}i2em~?&k?nWD*KvQRemClZJ1N@c;X0+z{uva%o-=h`mkMn!8^ryrdSQMv zcR29BmEO`?i)b{v?ff%BY;S}Vm}nx>K@3wjHh@c%!Y|H1q-`Pby<Abh+oyogC z@3P!)llA|~+#9I;UryBjwAoV_{KIXT&nXD?-cEZfVT%x=jphFfCJM)UnSm-yQbD>X#-bp0DDPjTYLYD-875r52J;9d-Zz3L`DDX5l z0e(F2*1$mE+Q0@ro@A4E&hgjgD1aXU*f+Am z>v5@Hq04-Fs@8kw9E05$0r?n6^i+P#tSo-X*<&sJ8I?Zg_*H!a0B3@={Ac7j00_`I zOHpH$vT2+tp5$hn;US}-pds+8j)ykq7N05}FYcvm4~x!Owp$22Q}KI(3eSm>O8&0T z0XYVeAU2K&;(O1DajL00o2D1hv>UZi!g4qDgiSc%IT1@iaNwRQ9yPs9Y~(>mEY;u6 ziAWmho<;iz?G)jr%E>nGoG7GPjz?)3q6MLb8tjMe$iGs0N}+Y+6|>-tlYHMu_hsHW zQA_o!iqLP6er!}yG$8Vm_)rEJe345bIMz-T4;VzcvvWk{LZ;Sw=fo}5T$oAot!m~# zFZRxfQ|j+aLj3(Of6qvs!93W*EfD8KC{1IK#(o;HbCOxmo5s<64mN3yutM7UXiIf= za^t}{kx2C^D=I!*+*8~hJlfjP)^RL#xTTeG7gbd2`a)W})tYKMyu1AbA0U>frj2W9 z>Y{1i!S>y$gGXCaE&KU7NTQ7vnJ7M8JZXpoy~GXa6|0cyaa-|ZY8ZuONVNpU2ABy^ zLp`+k5+0i7p$Cp1YCn9S!aFAdsE(ZT6U9@-lZR?bediD-^LSrDX3niSL*(sLypybWmOQNu~QMy2^NCv!QhixQH3V zTVK!FO7EPgp*rl4Zuc5G==7IbrxQkz^u&e!f1I5OcwJSw_j^vJvoivv4QC<^B|Qxx zP18_HfLc$|v<*#~(sTfn;WSCp&`e}#n<^rXIH21R98qvUQ3TPVf+&jPRj-mcsS{om zt>aZ0uG9DXuf0|pKJk9f^YLg4=Y7}Od#~~RzoUY}*$a{m#abbB_ZnCgUeexi@CY%T z$VlT75JkrZJraGjx*Cv7>mjpf82_L-gd$8mqkZU#ewP(h&aZ4y$}e> z;92?5>sR{YRzmdFYmSbw#_*p)N<-ZsNdnkDG(b?}xDyuROIf7*S){Go+IDSj z+Qs@sPBa4_Jsr|@klHq1*|xojhf7eDLfC@A{^uN)wJdNeB9g<*2!A6>p4l2nbDxs~ zO@r8eq)QQEECeehqEIl5tzxXLzmR}NGC9bncST$07!H@%#m6Ng>ZvOOOfo3m#sTF0 zURAg2q&F)kl1j$()*=pT&gBwP?xGAXgae&pTm5k-FpdV`W1Dz)b@eF;KzhygHR&}n z?=F@F(oPoO{tCiEx^U&BaND?(Dr*BYvfVs(P1Bm@HCOScIlqZC+2@Z(y+CJo^D^^( zmx+%Ud$`f`lGFb15)$1y`%$#%8=$`*i#6ww>v# z7`Q?=aKWeysWXj=$y->xXON*Uu&q~?(E1v+Zfo4$ykl!a^RCV8^n6Q>7DK)oa?6f= z%`LlW=(&bPP+knBX=ig|`?jW*-A%hV%OaLsQ3&}(khi2;TAFsW?MgSc=*rErbVQvU z(W{_ewQG0VuEuRVGuJ&cAJUbOE^FPHZfWJ_&#{y;56Tr#=!;L?y(>+#Y}YITaUaCC z%}qP@UP-eo*DMdpUMMY%TUz$)=0(r)$HSHgDBls?12KL1p5~V39Zk?ej+O&$H?-}o zTiSMQZQ9M_mbk}dLu(gpPeXdw_L%?pO_oxg1!WhM_T5eGjp>&3X8L^mWvgS1uX@tA(AJX{0yi@;CzYW z)MfPsI5pqPE}D)O$ALBmPtwX(Dwb_{`~?b_!s$kI0I7y?V%HP2y? zrESD91iHMdpTlqgHkDz^fJ=>DzEup!$3sf5ti%U=H~OLKj?7?&&=71UL$*P4pvh}7 z4S=G`EU#gbd4SW}q^xJ~P>}#TZ?KJ816AjCH6q2=AsiC=F=eS8*M$={wvgKN&;Tzt z=w2?+C|{;#rnW#!AZXNZJD5Ub3K1LTIRoxFf%>{x4G7%8-4PYWphBgkoa{mAha;HRLwM{}rWDgJeX$Z#j%BL9}#u z#L%D-@3jp#1*W1cYUotFt%L~kVhg?obOQ@{c7YpDDS$WDxuR*+l<8QhZDCrs7!9ABw(GbVpH7(FH~Mg}*QS zR^h#cKDGZYEIh5?se-A3y9;h9I8;!U|Ev7>5%qsn{-*qM^7DuT_^$U+?+xC7*XGqw z`|sD0??gTtxiPXMQWeR|o6EbCSb%kTOUVE@k^7lkKesQpE%&@!FXtq+|L#KvFqG4t zvo7a!V*dY=T!6P`_hxU;K99KnA7s5ZYa}b3bxu|YkAO$RZwOx>Zsr2{X6WsqYeH-I zg#V9!&i5y*@;79s@uDTquFGy;vk!r3`x?f|B;H~6GsbWTzeIhV2b+Rv+#vqeOrP{S z4FlRzTe|QsAzEI4t@9@&?u&nWFnbq@e_s#v$+#0W$w)=Uf_NpCnEl2GM43)E&OuIz^-W7*x?C#90{)NJKC z#`ZHZ*62@w70eljmVg~n7rY`S>tKtkl3$QY3Ih+T2OGA;IlX*4`t1G{R~_yS6`W|p<`dY6>~JNZ9p%*-;2_Hx zt5||E-3mLHZiAC_)C^YOm$ahx!ni*n>;QvTmKRE18%iDwC9iYu#YsFN%wXD|ZodEU zbJ}m9y^w=xpKIE8FKT~bjXz=G1EyX>J^*=7e_v+!kOrHhh_u(nIY=YcN*wyR{)7b- zUTwB%(nS-22(+;B#zZwB=v(VgIIZ*cEW_6cA5q*=&|((Uc#xG28Lm~6%7X|sOZgKP zSa=)4rcnotn)?q(CUl2z`=Ej~&+{ih7@B!+li}R2*B~>pan|B2J>U!#xT8}Xcfw%| zYjVG7@j$KP%9?PRn!0Do`S?|W@Fp!#l!pZ$svGvmDFre6)aI(HtY`x?; z4C`QULcRra$DYGb3xkvHt!Z!UISjbjOgO>b+AfbSW{{iBgcI$p@$blU7%pPLNU#r+ z?7qApdf$>~ZjIhw<z&jsCZ}MG)T6Tun$27j0!8v}Y~NR$z$i zrUx+&2pE?86He@|$%f%6%V1)(S%JgDnQlTDC!Fw&AbB$S7t3@R){ibSo=-RdyebU! z&#nvQr50Gl=;Tizgd6oo4IF>698E{7j3*8vQXr*!wlheuQ?_Bp_X@Fvd zKY?g&^kDb-vj?E~(4)<^; zS7VYIpwcSdFu1!IJ!P7N!HTV9)Cc-6@F%Q9AKCX3dbvM#x4zb(p%EUYrZ%V1>dgZk zqnazCq$(@@2`lYK(#L3bU+nH}7!~j(Y*13l70+Q_;g352P#xi`{>P5HiG9Xljrw5} zt{!(V0DbPs=-(_)17;?vUGcrB^2db+beL{h@|P!<{N>k6{_?BSj8Z*tfLM^aV+3hwD2=*iD8*(l063e$_Vwt%o4R$3&7mO&u zUY%4h1~Jb)0%tWGIIwGvORhI`wr4D2={uB@^s<5dz%z;Uq9+;WSe~Wh6HmmH*~Q~M zrxkA?$=bYu=Iax&y8}avRh`<{>T2WB)1-J6-NP(iokqOi;x}L*58AOR$EfpTj5@@q zs1gKtm4(x-2dP3zLG+=}^5W>jc~q1&xQQ5*^ZfAxmX15sL!qK&&~*;%>>7|?{NXit zlv1`2Cv=Vxdh2q%d2r{o!fkTd2JC18IxU@`w}+NI{W0hqe?63!8}AT>S*y*9J{0{b zgi|_T;1=2LX)DjTh^|v<;AbDq}ni~Myj=5)EE6z0HIUsa5#%bfX z^S(r343Q>d{7U;(+?bC=f5M`{UI4CJSUIeWD=bSo3znbCtjH{(8^)bx=zJ4%N|gm= zIFdnme4pjUTJu=+3AlHRBHnNB!K2V&5((Dq(7obhMOGI@A6xR&XJIur53nA&Rz~RI zCVzZS&|PFqXVyKjyImOVJ|(Tzz>|fQjoKRc#Nw>xuE6J9Kn%}r+flm?xR1x~zAU4} zepPm>Zv;`vN8&kK3M*iHFrASrY4ow!-DZ&kbwOj`Bl9n--4U)#4}&C38IjI-m;JW7 z)1r@s&Umkep=$^yPZz5|-b+;-8o%7~Rg}P2@GAKBDV|Wz**_-3)K1ILR18D5Ixt@&7ga(!{%<1RV0Jcadj;%V3A)OXk4$Gx#XCz)~FQ zOYc{Yo!|*ON@}i#?eXZ!jMQ<$XEUGU`5&`hD!mk&8tniJ617reN zU%0&Bx8(o7zu-*;M+#nC&_D*j!u&twPZ0@lNB*nwug`DJUzeZlJ>fm*y$fx?3%%1L ze~f%D^2x{>BYlx=)CKhNPLc!g&b*i9U6prH-ZJt7Oy(ZXeK$D(uObIvY0k4bKg#)P z&PRw0xGrY{bpij7J)Zpl8iB6tE!pR0=Vtvf>+4w`&3Z#tM^-%*0-i)C@b>V5@aFK! za8Bsw=mkC&dPS%^v?X*dpZD+oDf1@*LFT}#TE-f>HFnf!n_EZG)oV8o;#4vzQ0CBI!mHfE?HN|goWXdLnrP}3i_yrm8ZdWi)F(`rf8g~KPliNa#;!F*IIHrh7zuW zNr4^_D|Cz97JDnws-0_tVuZvx4E*{UMbP(-L|#N9o=fGFD3Rey`== zG#fDrk4b0E;Ltl6dygf%l2SYIa@Qh0$DeeDjaohEHFgp2Wq`04qH03LMzXa@XX2>P z!(MH<Kv)Wo&1dn{?|Xdf8ZA(?W?!w22-$O_QS zi7~N&V{~G4Tk1|_{U&;zA#ymTO85Q&*Sd>n1B!5={|1FSIFr(i-sM;ZMh6LmIo1Qt zc9_PXl}^i`%;2QIM$_TIOj2m2!;-n6sggJ0kc+oW{e{MlkCt8nG;UNGL}r@ zhY>!{99nemU`T~|cGChI78!QcgaIJBBQ#wvvsBz~ zdb)vB47mXy(9LY!Xz4rIaohuFhYaF?Osb8Ov6onKgH8}!HqFMO4+A^Yhfcy_J7{=m zA7ffrF%EmAG;POhA4(P}nOY3Mj)j|O%)KHO6wKqGC??K9jVfIRN9+TXY!EFM9QsZN zFe-Er9Cj0zAutuGsmh;l5Tj8yz^J9$BG#L`1_yvD3;P>(2Rj;d4UGJ6?7Ckjz#nD~ z>b2@lvw)d%EzoV*j%zEKEx{3UC+iR@v7B3aj$#8x%PR;1)uVvYozc6acQM<8vIH2J zyRG+$m%l6UBw_ssc!;$s3)YWB?=sL`dSl$Ydq%16HDN&pw=*0cj^35-N338Cn_#6h zN+xu|lI4+Lm--Xn4Rbq}!u+A=UB-WmxiP?k$~h!Ex-C>x9lc%N;2DC*%*ZeICoG=u zq6N|0mOTB1=ha`5`OCMWw}TRnapH6ESy! zE>UTr38a7XWjMCq7X3iS{c{d}1#}F690E5`FFo?HB-$fe%6V~r``$e1?cSb+TTruiF&OEML^b362 zWtN3cyEFQ+=v{;<2;`#3VuLk9G`0%QsPwN#rSEjl^;|~VY}@(>Z9f&g3jv}}@$c!p=v9{nW0-O6aw`!~n77^tbHix|s$gQ?odECyK;GkKE<#uz-<)iK7xyu|XcL+*@zf_;b=YctBBiHj{El@H+_cDrs-(l{IMR_OJP z?m_=JdoqLU&Z`)devv06;jq-YZ&{}!QWnCPRv1Iq?&>>_o<5H{` zD4j1Rf2e|1<>|4(pSZxb+Y>l1Y*M>zV}tzz)jLPY`mloJ8W;n~SZvBuwNe=rU%1`_ z1mI89*{16QH-;Ce>1Hw~;pQtl=&n(OR$MoRFYzbVS=Orq=Y@^tDTEUTD0v&&nf(~@ z5NU{T#1BELZj=&eA@O9p(4VNa&D#SfhD*)IX~z-co#CagoXYe}B=Nih7H- z7L^zNweZJ<4;Q|#aHw!^;l+jVg1?g!@WFz&Pzi8H!McKCJOaLxe=o5B!}*uzpGQW3 z-+7OEcX&5@`@JoskorgDiO6G-4@Pc|v_{rOit~P-_julC^4^>`L}WlJFE{rWxeucS zxRJ~NwYkf4p30fSFW@yf*XLZ8b6!q<_AjzOj}D+OJDq)Y*5Anycz@RGvaX~?;Ii&n$n8}O#Qx@xysTp!49##eq z9nV)G;UxSi3-PdALC#ax9rVnylD_FIf6Br<>UKlVjfa(S?uhh>&@9HIEH|{AIN87` z!g)E-cxU=k7T$TKVQAU$aMRHPJ>=q_0@s@{Svh8KwdH%`nk|`*S2Ij$3Tz{ z-7(b5<13*_ooEmwngoaF>cSAufygTI7B6kXGYv&7 z$KGJ|$UrrJnJT3!qS`@L&q*MjnW}o&&x)7gLfz9h+P8v?Q7Q||Ezvous?n1c?RnK2 zl(XZdP?%8u$FOvC4Kk^d7WH}c8kS_7Aa>3>qhKLL6q(pZhm=hUwSmQeUZut;5ih06 zI9Ya$IMFkV$#2raK(AVZ6pxo~>ESJaK?;{p{=C)xq(y?>CXH1rUYe$2oeZF6nNdD- zXplPWfstdlxLyj47g$m&P(sG99?ArDbD}cj4liOpI2qe$ z`GR=hU@5ZC9B4FZjZ06xMsF`#CkGadR`C)`WRbIpm2#M|aCos^==oyDq2MHAfK!@z zC6i)q0FDMs5odHVR&O~$>cd^=>DdSlHyY&GY$snaCheTBxZzDY)F|hN*!G3h5m>5C zyfEr32OY7Uos4a;PuW4~3FI1LD!Xxe=c65B1ZA9zwYaVnO~7*;KCICqdXXh=L5<5b z62NHGwF}TtE9olBgq%TEbo#f@FjS_sbfu+|^S%!w_@o7cA)`mU;#5=RDQ3(q5)4%e zp6;_`;{vH#CIj>i`ZFV0rj@hTaww}H-s6)71A^~cwKn!ZlqA%vv`6MR$S8Uh=Z4M& zoXgZ0SV$YA&D(7|Z0{K04#*tg2r}RhdX=L7bCSNs5h03limUb27Heb%8U5 z?#)Sy5<^L?lFKcXgnF8HixWdBt&5$mrBP#X$Z^xCxtDgkT6=NGS?PaShp(HCjn*N*ka63rH0~c%ho_*9?oSH9X!Q=OFAMm z=*d{pau`D_!{MN1xpqflfrza|gXOR#*5Q+}xTWrvqD!y804{aP$1HWHmH|76Z3?>zLM|W16&pGqC%V+wa}mBjaqFtgnyuh|=$8{TvTlb1|hpD)YFwPq+fJ;qion_tH zt8<%3`bmLH^(1$)*g8wziS#IsB=X(xBH&0fp=EH?S`Jblbq_Go0*Y#0D`jEL!b=Ln zyCngaFrwkobgy|HuG&f_UQke6X5yUclTvLMeZxeerMN0xk0X~}K4rt#Ix`1zJx zt^>ZYhd+lLx zkXfI`3dp^2j%AbwV(jgf(S$u%xuUR5(9$GW5OBr$T;cIJ7rZA4>3X|NbAaz5{b*UhI+BPh&HlQ>dWHoU#y( z6u=OFvWSQ#a|*l`Oi&)gA1@-J$(*tvjVlh~j}{TpWKLOlMmm3pKU_pyj{?C!GHG7V zj6D*{zibh8-CD>7kcqq;as5JmtL)(gtk>=P0!QUPP;&Hl=950o;*cchx!31r9Qp&H2ZbzSJpYUR*POa zIpo|#4;Ds6nD-~+OJdKu-s_=R;1prnpN#$U6zw8t7C1%9@}T|W6m0`E3z{NK`jfH0 zpQ2p|&7!6VbN*!PZ>MPMp;@F9Da(fT*Hg3$O8qGilD;NV2I+rJku>ZMAJOcQ*oj56 ziOzeW;iH?O+s%qFq{tst0$KS_q2LDfOsuqg|Qyk%Jx z*Hv^>WVVc|5X_W;LM)?-!q@|${I#*qL`=On94GZD znd^pdS>#T{xO1*QWsnezb@?zp^&%L_z&RAe(rrbdLV@tn;g~<=KvB6Ddm#2j*rYeu zGTKcLc&$I>&`?_h>cdc#2k{X1$`0fdo=Eg5j@#y6Y%X&YaSkL^kNmcFX2v8Q;lNE0+7aN^ zdH$4xTj?w~AB2+>7nuEU#y7Dil#$TAuFvm95np$^4y?>h*F=t-=O%bri=K}1(CxaIx?JK3uDJ=}_7KwRH zd9XkDzpw*VR{K*HoOzpaVLu+Q|Eo3#mm&5LIL++(a+d1;icBMwRk3}qmS@G31!rD) zHpEU5rL&cqi-w>x^TlQCli5Z4q;{D1Zhy|`&iIouV`gEXXO8FNrUa;Phw3+V<( zN>zhvBqWEl;(EP7NC1sYzp6@1Ifxb4Cl5f{tYRZwL%gB`SV`^ben_Zz#{d>2`IvI> zDjJ5?2W=ll$B~05n1NPim`Wk^sy|{VJ85B26{cGV*H>hkdV4#D#&Ff00!r!N_smfA zRAkz5WXH{?li{-nidsQ5I#`j}LvHdOvW-ny_(Z4{gzk!r33FhgsPHspQIl7yfjCf+ z**QjaMP}FGC38>wdC}FRivpNrXZOk2Q?b7+m`ikiI+$cGk*60C*OmKI4jI)*d;5a; zg$5{-kFy_Vq`jOgT}Rnb4j@%a&w43Ljd=31Sx`SAGa{;SS~`@3#(#PI65CNA2m;AC zEge+aAQkJyVjyAXer3qf-fcSCg|c?I3r2^VHb~K052K<;nAD))fy{__lu5PjP*b(E ztQVOcm5NpuVDMUJ`%^$CGcZ-KY=DKt29za~AACIG0Y(~#t0xU*yS+QShr%qi-ylhJ|K!PSuIIEbc+!?{VhC;JsoEE`Al zF0{OyeGW!pWmq0xr-xFRU1Ona;6}xuztBcZIV@GDv9CSVwIpbC+$4z`!B1&w0Z?i9 z*Q!IV4#HyL;uz=|TH{YSK-H`XsDVY{LVzg@6;zUIAH#cw(Id+bC<#q&r9b5`mQi`H zQ437)4F0i$7?AXFDmpSWjBgAh?GRU`W}{kfK&=6MOSzHcJjZ-F)MYgK8#P~$FyUh3 zPb1{6k!q*&p!wx*bwYKy<##(g17;*V72gRz3 zXz@l`s4@%!Mt3)1^ZIwrc!$R}7Q*uecnE4Hv1ET>MJFIqAsomKSV*QEI$K`=@9W`J zM3Wx7TQMKXk-ksil~WF!tN1V-r zf)~VpP9<#Dmt@29O1&*fHx~TS$)ClvuehT53Z^t}S(~$9eTBLk80F$VADeaXHz$-y zJA?}mzq6QPwnasl7B|zvL}%>9dXEbi5=qn^D~*s}4w;IP47kz&pbDXypqvs&Nz65h z{$}bd%U#XNJfEFGo-{#u8+qJI63MAj`@njw-t%OoWA|V|G{>1no*mFRFvNkd+;U>u zT^_HL%}!Z&rBNE%--GjvHZN?;9GedI)v%GrS3+E7q{hZ;WJX{+)3M1=dxkM$YUwH+ z3r8-o1vs|yy-O`yTK3x0Et^T7xhT_QkoJV-afapQ1Sjm@-?US&Q^g;;=* z9_U6YUkt#)|6QTtB_&UkJXZ3Nl3PlyFKH>ME-5x10QVQ)SiFx+04s`~DH<>Oc+snh zb`@0>ol*Gn!p{}Hv+(M|&C~(-Q^7Pb05=l>P*aeXKb`-f{G0Qy$-gLnsrO6oG4BK3 zVec}`=)a156VLxwMqV6g066`XJOGd6-IjMKZ*$&?+<)Xgk^5-w8w~Pap7V#C$8zq- z=?D8Kv!BVH!{h%Q*`3*S*~M8u0r|f>>!n#&WnGk&A3hQOeE8OIS2!I`gq{t3H*|04 zEujP0`HTNO*#Cc1&i1D*Q5U`1Z$Z#<$bUkyEA!O zcE|l`hlEyY|9whN=d2{*r(R;UKMfQzxB4ci_d;#zW!;#7P^En^pAn=^D)Xlu0;(#7 z`4g+&vFx(ZP6BLNb)0G!miyBV1l25uiH$d`HjqryZnOewoz@W=D2Z%O2Kt$!0 zrX8HAIs@L1!ix)JmobE!h%5XWr$IC3lue%w%ST|bE?NCxHaW(Rt+=APLn2f^i8-e& zmVzEr9QpfC%;Wn3BdcVEe;IQx|RH>En6F5wPm}-jp zb#;%9forD$ErEyy4o^i>UQCtUD7}T`nDD19Yzb9x;igKVa)T*M(Ksob<4=QJOzT>% z*VJ<8xG0%$P}wb4VN>tz<*O`)38lGUQ_JAe9O61+QtW=Ado#y4lXb;#upPjp z+es%59+k6~Qzftkn^adjU+NH24YQLfhUzT&S=ijz_nGFY> zYFRz0LOpF1dE7u{oIVK#Yb9K48W?5fY%BXWRiF;FqK8xpz=}|+sA%L&9C~?8@Rixo zweaV|A9#mZ@e!}KL0mAVEz}BaWS^!YtNuHBC5sx_2(J}(G#xh%NMq1Vh{d$UUZGmV zz0_Iu4Y(EX9pM(DEO93)`)LcrLUrt%R17Xv?$NzsghDJV2=P_^w8dnhMje+w)s{hE zr7ndc5KZ;6Ak~B^m(JeLH zdgPwoL)9jztrJ7?5Y}$;j!Zikm(prHPpueI#f$RQo!Dll9h3uz9!^!lpf$~5NMy^j zLvWQ^Xse+ib{{md1%=uS9PQgE2_9^0~NdaOvbrx+~<;p()~R>2c&l^~p7 z0l^1)MwliC;5KT>RlxRdR#P)wIt*8*m3J<@+t|)Th@#YBJ_9L^Zv)1eAp^`GPOXGZ z)-Nf57#IiOQd(>0Kx-s<`sS_?0HZLPKMjU6YpVu&Idl`LFCm8wzgcA?IAtAztJ2ac zW6JQvKZq?>S&9^2z1*L6m@Uc$kUATdhSA>M>Lxy70i$v3r;<=Ga?*~pxAKN043W|( ztNdw)(ds$%Qwi8KgC-(Xr(GI_+ZMSHl={;Ss>SuFJQg}yF+?3a-KHHTOX*p;kQ#=N zwFBR@)~*ZuX@|r1=qWic7>$AW!fROdR>UWx4c_2`$utx6$n>|t%PrX z+QGMKU5USg6L}Sv)Kl3$nIs3{%vJbXcy^BVQiwq(wh1riQj9R#0AlfG z4zg7VH2w;%t%~B+Hv$#$L4?JjwJM>+Ct*>LE6Zbh&(NW2rl7{3c0g^rK;kc9F~tNB zw9r&j61%#65FHT)LO#UgB|P7sc9^Y6Sn(G$(PS9KpUxWxS4Vji4njyM4!If3_;dI< z$%HB!x(+DddiRjDua*9^18$py8UIUfYk=EUOr$1H(NGuGUL$HTkPfcZ2sr*sFTwpd zN>H{rKJ*d1sl#hc!i-PYH z0S*R$n%UcBF#U-|YhDu*F^NT|0cqyY*eD_L&k&#g9BSUnCjik5uLOcse}|Wv1|8;T z*XuQ+WLf4hEh~BmmV5nA{;>5BoRF*zfgD6Tm>o>pq&4CaS#>T zem7_}{SRCLa$S&{0%@B$D{^zD74ua$KE7Bm5YYrjct zZ}b_%BWwNXh~;Y4spP|@myoYZP;RLmuUiRqT52eqyL&P4Pv@zPteDGWAZ=cxvR_Ab zrRiKpUK)F3$ul2WM6Rueoa4x6i2U)zWTF|SvmN<#$WI+yOePiBbe1EZCUVze@`Xs8 zVUdAudzNb>rlqtorA(2_qdDfuea|BjMI>i<1c{2l854Hvf+pI@9)G+*=pe*gQ6 z>WT`f0C<1lo5=vUp|G&v$%0Q6yry6;x&L$WC-Xm%e{25!{G|6M??1ecd9U@Z@~XY! z$WO8R-yRu^G)I!e`hP9&t$Dq9JM$`Y|Cal8Jp7O3?xptMlR1y%d?@F&Ifrs~;lw?m%}-5$CzlnFJ3szRsnS_#^fA9AzYs?9C-t3gxw?9nRmpx0C9l zBD^}@PdEhL^BAROoHUQ_FCBjs6shw#lX(j##FsCF^h!v0qIF?1Lq4LRlidk@NXK6R z6}1J4euks|j1$$%mO{E25{YLzdIkaUv~vPFI>dDROu7Y$;s#F4b$?kAer0r#zlsi}%(ta@V z2-#*v;{5!6ekRrGFe`@D>BQ&?jr@D*N{}9F8oqYxDxo{+xkAJL9_S#=VdP+A#O3Rp z#GKRwyj!o5>FpT?hBA^)MkatI9e)?JR%-eYJk1L^(KxC>z70|f>CZZ}Ae}^PHo6Z* zf;EtxMos{ZYWUv?37hM155dDTPU@}D_`d@RNy@J2y|qM;LU%L<{r71}l?2X%*eA1BO4bzZ#%A_XXcV5|HYC$`p0 z3R(k(+lt&^0DnKp(-_=#le1~PKjQ?~ebN?H!|7ybt4r9iuDWeqb$Y0}k-v6yRd4I6 zZrpZ3tv}<0*fvQM|FP;Z6SN`O$=R^b@qy=5X08{pfIO2)f5r*5DM=0AvW?KAf;3Qw zmiaSIimj5|@J$#9-B2)*aU4KOTCBv(Zo}s9-m_6Y1E=w?^9fl5K)q3x`p95rnOzhx2zimMKJ|V;@v1D_(fWzQNobfOJ0Nk`5l~bfu?}* zabj1Yx0KzcK>GmHlOX! zAPJkLSOxD1c$F!Z+&S1wcQN0%zRnoA7vZu}>u-){8%2}>o?B5eFtkSWg=4*z-Yguf z&J`)j_BD0(n+(M$x;r^Ej0_B)Q9jJr5oyQyDM%xQVV-uaU1@*Dh{JFWXemy^2`X0c z6W}@MC0Hi>$ucwhP4UER3Eo$s#OZD@Ldu^pLNlFQA}BCLCk@I=V&>|A3AxXJ0y&q+{&P@<y19o z$_^Mb76CNl1IH}SCF=Y^c+ksY%}P=0Q8}P_VJ>9~)uBT;YFTBsPo2+oBJjK-Jvh1| zZ7OLjWDSJ(h~w4h-h~-PnOJbA!=!CSL+^moLAQYaVar>o*Zd&7(t=U#g#aQnC%pjI zQOjYx06qYR+{`#)SaP@+;wGON+fR9o=@HAfT_1A?d~Jxq6s&-gRjhJWI4~^IPXq9W zZIe3T@b}YXH|~hTW`7%vjjTIpy@xDYqfV6fsb})B21`#`M3%PM4ZAVAZ{qWBu>1SLg<=x82n0oO(N`pWID41Xy2&oz=|z^;oX$ zx-8!&4T97t_N9!vQg^hux{N<5BYn^|G3LX!(nQJnRGwFH#pKGaU%RfhdNVgVFWPN+ zjdRMK_LCb46Bwcdpj7P)%K^({uCx!qWArk5Rl+u<9K??VLtU3;tI)DJ&bGmQz6;0B=?>c>trhlJdfcsTDkZp6NG@o7 z>iy~cmit;Qu+NySeFSBes%DtN79-|>4ysjHp-p)X2aaqK{=X?ywxr}|C0{SOx8&_5 zM@z0NX)38ISz7#T@oe#<)B=2S@!{eZ7dI5A$OG^v^Z{Qj`dE=)G+K03(F=Acl>r{zAA`=i{)a_`A~Tkc`%12$40pd{z% zocWwD=6pEkWjXut4LCoiF#DI;-_O1;`<>Y@%kHK|Ky7wu)<3g;p7ozu4`zKJ>z1tk ztle1`XC<=2;r|MMD|~PG9pPi)Yr+lT)#1}a{}Xy5^tI4E#0ZRr_7Njc_PlBW{kYtp zb?Sg90)HZzDE69$3FyH;Zq{i7$`SPw2`H!=Z4GFsP9so`te=QOMcNo1%?JsU`m;_a zfJa6;5rc|qQ>8{BJx3*QP5g>{)Zqwx7+Pi*R07f@Tnh;Y($V3AQGeE{1Pr{pP81cZ z1(J21>CZa7z%oIg9*El!dY1aLRv+Lk3n$J^q!JZ!(BxRXZf>E7hsTCFBF&21e#L^B!$clLEEgY9t^^QMnK^5dT0o3%2c(?pLH4m zgMSY~LPRzLx1bD=3MQjxWlW|M1`cI_feZM{q~qO?xT{7`u`(G>AE2pDoeR00N-bwCYV#GyEiKvX)U{ZLv) zF*t%OXPr7As!{wFx|=qWv4~l6+JI%kx8H=ag|}lmtSZ1;rgz^NZ%_$T*sUVKE7hy* zh&Qx!b#)v(!=JTE0B@!B8yp_efunjyJ~}D5IwwEKD}wUo+s9Nh!3AXLDe8D_D=u zu<+koCcV&BT4BuK@fP)arBXg^i8owPy(>fA$61T^$*IKeP3j6EAwz=gS&Q|RLLeRA z9B;sL9dD>1G6;guc@Tg>85E)Wez_TrLq?-RD2KM9KJ?qfFu_W( zHh4CrgX~7((xPk zdGjb*QRzZ>H;1&1a%m7E4m~5h0MOcCq$q6$_&M;yX6!Al_Q*Dpj_->%sCr~@WLhlk z8MWQscmwJfVo%7JGHW5TSE`d~kCrh=~8U?s&syWq;t|77BYtk<`vcF|hz; z{;b2jRovC7y-Z>2&>H0BVIi)z!O`It`m+x6_94}!cEh6UTrrsj&myoQbP$`gBF)Up z5G~lwf8s?A6qhRv&v$s(yze(SA6jvU!9#M^;oo|skJJlO8xrc=;1=}1MlYpckO3B( zL&9dUy#P*Za45G?$?z(+==C}Nti!;ydfSabhsd-B+~Kg(Fxp9^^Q?oy#((BgaWR01 zCuAOOL=5jaFjnc$E3Munuh`q%%rXK3n>As487>Z<%jX{qnG1n1 zoW;b2s1z874VdeQl?3DdtOLR;5m{5~;gwot2vr4Bbgn<^Ag=t|QWrpG)?_H}L8x1> z^>V;Cd|M$OggW@7H^Z`v5qkiCnpp>M8|7=T4!QuY#rY#9rU$^vE8<3vYx%5$xs|}> zRIMJ%dk2omjqF(zI1boKfsuR%pdE3i(v*blGY%cnYOdI><%0Eu2Rlr=L4Gmq zI#%TyppfW((kCn9s%qSz0&y6&l0!VzK*u`)#Q}n0uGiAr3DY9X2!51KWnc*11<2Jbz6#jd^kfDO zSNj7ve8}?PU~62CG_4x6f$k9&HSvQXRE%W*qWNX*q3$xSfd#rjn(O63{_TA*R$87&Ho`#a&R^ZOe?Xf*js7u8mEw zG1|w_2q0K>4)DzmXl|6Udb8~&fPOnU9fwJnB?spf>)-`(nq$LgA{zfaZ!L;_hdhnQ zHl{0tb6Rz4W*piqmppY03Na+g)`rf2$#cNcT<$M{N@8s}4bdey(oDN79-oyl4ndwY zP&9Jr(cDU(mh}uz5?~%AhZxPZbU&mt@o3lyFu6FeXwLcjAmLZjPi)qV!-P?Z%b$YK zPQis983Y~vGXnm-P}=&(WFE`dky$1)#wYn5w+uv;nd|KD!Zh(usHaRvU~u91fBW007dp3FfgFLo3Oqjy8uLtxGU*$-c2 zDWwuzJ_<#p%|*D%5hSyG1VV#i0w7%J2ohL6tQLd7biVQmOIRj(^g|FX>*+tr8rx@o zHwLE%_#G_+PEH-hBbt}nYw1x5lE-zSf)_ICagXa!qwrE@dl#YsEq1#W5?UUl#kQW# z&Mq0C+AYOc`MwSX2hwhAk#x4pbtd%nHAuwpBTLR)Zhuc|avoD>%5I2o#)Edc2Wf)7 z3axPrpNnpKYjeHn)xH8{_dwr%cI^)PdzqxqNA;90t}+T|k`QR7)e$v8Uxvus5j)2j zBK-f#P)zv$nTat{?}%xg~kUzbgJg@dL%T7r&zTisJRfrA2=!`cBb(MYk3m z0{5>h3Xu!o{=(Pe4X~LEfKM097d%w(_JWauD+@LhETs;>c>eMH+wzC# zIsjkt?(%N&2E9GrMsJ0e6FC_fk9?jyfUk`VMD|8r5IL8M0Ds7v%=>)a9eJ<8Q($l2 zrFrM%dAYyK9nXCz_k+1N=N`;$&0U+j%v1*Wa?ag3x8~eHwZKbr%5!qEe?z^%2eRLt zeN*-U{07!#FU$HX5d)89-IMi}tixF^%G#K9E>Q!22#<%q5PpC7=5SBAHM}-l8u~}* z$Dz-YCGcP<%`hzbXQe;q#4}FP7kq?xld%ppN_~mvugy|W#GUvf6gf) zv=0*@k%xE{2u=+lT$oq_Ax)7Mtle`?31L(X|5OWwzA8rZEPu}FA&d$79}t__A0tMp zpIcBv2p#?%8fJ1VpL13XK{f<_{~Nz+p9*cVOXg5U1TvxE!(Y`Qc1;z{;T4@mqEy@Q zf1vFiI4WcJoKr}YX=gvHCjml7dO-Zk{W&xe3+MGS(At8E+)$i8A}R#_RQw4F@E|_p z)G)WvzJ)oH{{n@`Fy(HVbLxn4oymVzlfeO0@neI-+!}KW8VPOvKS4Ed^11-#oJN8u zpmhAdAyGQEgQ4Oz7Ss_Onu#!Ph{YP^2e0AO5v9^8W$U|Cb&FAQnuw%Mg+I_6l0P<1 z^CYK>AVMge$f41$F5)S=`gqcUGJ=ycu?#KLb}5a97(u6u5Ry-vDczRB&<>a!m2*}j zLEayTOCjzezFe`HXZmwiEfJD$O5zM?O(0HQ-Kr%*nybX=YLnUD)5$oB_6~2#PDv<1{4v0mlFbBUD$K zbNUE!tES^q5LMbJ7<;FTFgN}rq-|rJLjwtaE@{W3LO1>dguqP^EXMuCDs>u(s4o6- z(Ur>`9mbqfNSK@daVWcx<#-FHk1$?UKj8N*T2Z4okk2`F1o>0b@$aiimy#=KcR7`W zQAPbHBqX_kBfNl9M;I@t??J%z2P+R06cT1CjR^5wDDC}SUB|l4@aND-n6)eA!gnBC zHGn_WoYh8zqVj?Hwz;LT75DORtBnYi>c*d=!4{17NPTlw9T75WhZ7Ju9rtI*Y&B;U z5}~9f;&&_v1+AcV(Fi!5gpo&nNGqltSr%X2Ij4&#)fD}fX6@{1EtO*XF-AxD8wk=^ zlMI8GD01JaDLM&hYnQaROo3A=7&X$bp-7{_Q=AT=R6^OW_?<)o$|Er6)CS9R3p@#- zg`5RE!f6VOyW21MU6JGi{j_ju0psrW3n`C0D{+Ur1x|0Ed7k%5u1K|RUgd84%b zF~l7MJv!bUjyDcTKhp0=o#-cN;xM~LEU}zpt+{gmv@q+CIyr^YiBf*Ym4?HZtO&CX zm?w2fp9P7iY#huK1vh(R@U32T7Tf=VM6EQ`_$p!Kl>R~2&@6CVpY4^wu`W?-aw=rV zSBp}~B5yC6zdEvd>1q!tymydd53?3&dleppGgg~=L98K@s2ug3h1rC5LOy-9w+$T` zRyJZ!QF2&R?WOV{p0?UU$N>*XYeA?knj;ISz1m#pB|+Z}gso(H0ljq51)81(O=}Ll ziX51VS9^qo6Qsm?WKr@07EP1V19H)7k77dvVX!{IH6UGir^(PqGEA?L650$U$_Oa3wux~N_(l=iCfF_Y9JDkP}MV*t58 z;mHiU1=8fdfMZR-!9{=qW!A!IFBO4Q9gtM^%cMd;QP*!jp3GS1CeBY(;9)e1C%gQ) z8n}B7VmjAA_gS`7n3=6h)PgUuaPyK1I%VBh6iqT|=<5@;@}J*|BuOOstV7M!k}{&K zsr3F~WjLTtWpHFy__G!*d-XZAzc5j223cB79eEvldo+ zRj0$&5U?3_C)Fu%pF|C4(Y4oj8XW0FZQ7Ny!01mwJo{e=g&pe80&cIW1nw6G{cS-= zCb(h96qA^>$lEI~hGSEr)&ynX<WRhNB6195=#@OIeo9*h7<{!1R1@hh{xvb%;L`CDk7+%FebODDCIWj1G zKQxBP$|8GjX%3v{$qw1a_OYdOTsUd-?EHRv#&2OKC4+Z%(#i=dkD&2GX7u`f7yZ|?c4L?qO>mm7T+ zbiZ(=TnV8iL&2L-olp+n8$om>8;nfChY?(i8PfrL>3T{`GlCVBL1(+UNE0>6a+4=y>e zq-3h(fs!|sTv<{__WzT`k5B_}cX4fTLD4UYzEbp|qMM7ZC|XxkgsuN8h3_i7o~-|8 z7W}c`o`PEnt}A#!!K(Z}BFcag^tM9!zE_?OA4%PGqKQ}z#t z1bAKcq3pKo6#cky&+-PV3<{dVw)u!8JyVwOTFzN(M z#7bT=?~oE_|Juammdoi0K%@vJ1N}VG0jC;m!JY8QUXkw1;4Y_s!=I$gp9ex2NvKLE zcpFT>dz9)r3=Be8<Y~O$V)vsL=}NWk?vh_wm~? zZchx8Ls;dyl3L)=`Hu4)ADQsyfmvp^q#$m$#0C3p(x10b%d0#KhUP^_dlOZ=$i_VH z09T#P>MQ91f7FHZmSPT4cri8(fYs=Vc#(Zj3t5$@$4CeR4mTD4yv1Q&eLf1A{zRwV zv~gf)KPLj`6b{Z^qbO_7^XDBXOY2^GvF(k4 zxtVk~5Mk4(x8irR)Sq{tZCM1S-b5#bi+Za4d5hM(<~)8rl;|{;z%;fuTc6HU!R6IR zh~IW#Q{11o7>;TaG`OCAMmtr^*hF(O{T9Y~)j5!Rf=@I^c~YXB?x#g^x*oxj*kfU{sL#T5${v9m|l_YTjYMS_v}O*oTlo zl4XTT4Tb*@rI_a(AWTc1x!Q6)--1|2^~ZS!5|Ms767NX7f;EdI%T=&2t;l6O8^~z( zD$njnyc53QD%I{n$!pyBSzZo8)+~eTHn?zrkv<~u2$ukOray1dq*q#yIG*@Q;z7k) zk|%23f=P;L@%xt(4{FIb&|X0^^A=Cy@d5Emi3hD5$cS1r=~d-Hc_i^5a&8w+b?H8N z$nF_tkyudaHRZzb#l(XPi$sUX|FuY1mlkSjT^>(79K44S;i$ky{1dY6yoH=zDjSxE z5)UetUz-S|F)#$(0#9Uo=wArB2-Yp>bIyaBefxTJ^{`8D*7$xG{3zQ}m%gTqK>JgS4v zAYE8%3X_9No_TNbhP@dIq!{tKkEBOjU5qxcR{@h=RRK&-U1#5bVo5l_4x{ab#o}MD zIzKs>d`a>K?mptjyG#lj6ch(oI~E6fT!6dZW~xYq#F&egmQ?L`tueWd&wfYc`Wgu60qTriSPBCgU6R>J|_~7 zleS6cP&+q^HmBAYZrVn%1za|_Oc|WxaB6_9;5xSemtzorV3!Tx3d5r*(F5QIE*lt9 z9);!mT6xZ`ZA(2 zF4`N1pv#s+{x0M(CQL3&759S%-UrRhlJP3hA930qI9EM)+u`Z7#Z)ip-WA0IzQnedcVXOT)ho?71U>i%` z(B4DY9BmkkeP)j`-L^%ldAtI;u~qNun{S5Ew=WwAV|__$VA)Ln8xhXMBkV z!L+^9!(f-rS+E_dlHBkSYahaeyjKF-zOMZZ{+xx`p&KMMd>9r+!Mri);qc($XdoO# zd0*sH(#)PH|7u}ONQLAIjY z{5v?Sq?(%BzaW5iB;F4vdHKonLndCS%UR17p@(W>boE}{)hIH$`y~ut9OPnPbSy{@ z)ka}@kB&07g3Uf;e2Wy(F=uglXv0}>y&EpQ{vHlz;VuNtzCn~Nr2L<=pgmMo3gf#h zV_P3#iYv@EM#pdAdZ@e*mXEnFBz*=tFMrNL^-y&Y)Q>}L>dmlbm{O8Qj#1&053_(h zR8tJkJ@DX--^cPM1jFE*0iwv}EMyPW>PPWM-`AG(GV2f_O~xL%#ZRydrz zp^;QNjIzmgrmO&){5gl+`?6sf4K5rU!&rz?5s*lPkb*|+{Yue1V!TVV3?!gKZdBcs zIfwDrXVJw7Pf;!hl8&*)4zTL+uIwg)Z_a{!FCB($IC(=L&FGF-k7NK;sVWQxs!TG6 z2Eg3$)$k4lZ?$){SM|3|aT`X!X#r|AX`j_VgK)@qz%|X$Gekf)lG>b82h{2=dq7+~ z3+t40oG7P97=&7X4%L8>=h{l(`UG5@83885iO!6c5qW|)HW`wbC#N+q;@zih*W`Q} zB_Ipv0N`K-cG{k+Bq`o+nf57T2+3?%>D*IJi%>72^FCOt)h}=w;_xDnus3s1_R+eCo6APP(%R6D=9BJNQ zx$<9FqW%es<;d3u#}#m}QgHj??m5dpVG&&@iP)0d2a){W(qc1>C(f~lQ8lE!kgN&V z3Z>1>rTz&E;6ic4mE`W^#krP;$6DYPDnm?3wnGwLGqDN0wFPYgRQIc&? zF+L$WaOP;4@_G)gl_8oWcfg=M!sBI;IN=~#9I+(X3b6&>Cpu=p95zdWLXuZAD(Mjt zRdR#H{SywItwaP(UTa306Ga7aR21WcgJps#$yLd+oIM;g#1csi4l;qCa9FGiV3fR$ z9(14J57CS7;0Xu7(i-dmJ(}as6y7o6u)}0NcYpzI2gK4E|Nj4tySCgvVG&uVMibJf z2P4Fhg;>dNaONhujxn?FEL5gB>4m8YAARG3#(Y?KM&SpDhafKaU7&3|VIf+mO!IL) zRAaP2IR(Z)VbNJArMc*VXcadcwy2<)4~xer013lE7`BqL3|Vxgf5PIh5Kb`1liiSz zYMdB=%P0A~6|ix_!m&^(!ea6OY(!Wb;>APCAymd*ah&Brt(es2sO)%irb3C~n25QER92`;% z*1`@w$3J0_Q%KTp^0Mb;<3%la3Q7D;Hp8`B8E{9GVD3cNet)$lc0J3sxet-lTwFGd zoPWZhr)o{_1@LG$VV^yq#ARr}5JgW|@DvglNY=sA2$I%RkztA35|rjJRHdeQo$V#C zZc)uqDn6i-nTu+TO0D|Ha8Vd}vgv>xhMvYksL)Cc%v#$Ez`X-_iW7 z#_Q>la)vw#T_YF=<}G-VtaLnC1?ygF5}GqW8c2(nLKQjy&V#xQFADT!X6k8e0TTtW zpjSedE|qMCya~f&;Zmp?{Yi2))WzyYoxeb73!6fiR*olA@I2=fT2~3owTLMc*FL`x zmge)ZjSgvwEKUjz?hTMM(I(p}7U^O2Z{bp?O6Sf+mZO>E3)EoK;zW~VQBw#-^YLT@ zs|`0_w9q=-Sq=i#h=lVNG)W{pp4fT z8=(kc^0FglFArePM<46J3^v{4$xBW1OmCmq$hJtj_IU?kHbB1w`r`Lq7*3wH0A-|O zn??=NA|Vnr3Gp65q7yoEP-eZfY*SWO!d}K4Xp;1`;U>yKI}ez#DwU4JD+P=CNUxwL zqu{dm#oL}h)O@+sqnmjM)CEm82dN-C3UySu7S4F}aa!CIv`F`|mz8LV3o%g9vl}e3 z@u~#JUY6)2Wxb#+gJFVS_yCJ*ybZ!)HwIk=kLjX?)5;+nZsU%`u|#L!btTggE7@U}P14bh z1utclx%8vAk{t(mhXct081Ckd#8LF+*i>|+Q$#m|7G@sIq7&KMAVK~JeOXnofY1Ug zL*;9c3t>y}9p=Ts)09b=w^+qnFYnaR;9X2YW%Es239B2>cCcW@tC4r=NWiw0?bO?a zGKXoC3Cv;>kBhn^G0ZokuQIRZUcP~sVcIh5$M))>J8eUk?FEtVbpuDtt3RScN# zQ4LMa)>g}0Ei~`LyieL(yW+PXld(d#Se`Oz1>OwLLM9?QXmTBB(B5R9hMR)&ZeGbb zgXA{9+430G)~)a$ji3S$LYLNxUK(95Qf<8vjztE+h71K-InNp_PfBX7H^8%C?~}5V zqcm+9FgtW4UJnD8q0Cs2Ug${DRJ{&TBcUIInImkAO_sD?8me0$=>l+WpllzG<99VlN`8B3mMv}y1>Yr>zQ|}ckd=2maCkN3Exo~~Sju%-Df(*XWmEzDNzrGE-cWRX(dMF9;ok~>QuuJ;?S(fK zwiKRQm_shWZx?*L;MD~^1v?9>sRHnu{O{y{Jpa}C*X47Sd;jCjQoHHx-b=j~^7-@@K5LuS@G}QpVnD_3y!+BftqPhR165yk`ccKgE%WckGom-gm z+njIY+(qR7H942$EX)3F_SdrSGMa!(vkS9+m-W4@k7vCutBcHl(eR(c)8S8tZwns{ z?+&j*c0Yj@;I`1=(4NrwR0jC{lDPjv@TIxQDw2;S|D60&7NZFqAwr2H7BT;a4q}#P zL;p$g1l|B#O30Ukl)dfF`tw7FGgDz0etMFl57ae!t{Dk_RNfPm=t`=95WG`#Qoz3W@+V=YR#dq2}T z`|Pv-d+)Qid5tXe0q8hxyIMGDD)imk2ZM!|es&fdFC?C@2_ksMREaDd3|K_z&o71H z`NR`vv{Otkw0<`1p@r%8Il+JhlzziZcz&CB0yD8oS>{FtLN4xPk)=O>23)^MJfVUV zJ54HDI^;Pf7_j)#UwSw^zfL@{MqP1$FMLrmPA#&RwK1EbMcmN>PJjMkaQ`atggNGl zbC;46IOfTZVInN%^sA@C^Bf;&&e8x#iS(BR0~UAsi4w@aOg!O|lPiM(i#7fFVo1M8 zJh6pQx3Nb8)?*hv^L%v#DUfq0rh~7)N2G2n$tabc9f;2H>gz z2S)4Su#D+mrV8Dm&5;?OM5G#!m*8Q=8sx>k2L=lU93rigNc`2@gvuV|nW$L3s#neq z1{@r%mQ=g~&xQr^HHT&Pk#7e?D}XPq64b7h)PFddfpEiApuoe}uy>xiwUH$KMHu zL#5d~IL37kx$D!bIxk|`_D~V$fWxGX5{W;+u}o19>e(X^SlO*6iU^+rr;U<|-@_Ls zu7&e}JH{9zpn3;Yjexuep9W&`MnKlCJ{(RCvJzO`pZFbI;o%^5KCqYxV;^w9wK^Y` zgZ4%^@mQ+ruyMel)%ia33F!2hrTixKvE^@WC(4V50MKgu*7b=?6PG3Saw44?Y})S0 z112M(m*k=Y7P#g$6vFg);`@5xjqPoCq#1%UPzTK&I7J+QHBOP~iC9c*XA9lxw9NsB zT@!*}#g@#M$YJ6@D;xR4i6UsG{s&v7scy(yI_O#_)LAHoer2PlX-ynDDsVJ8@M-{A z0X#PSepYb6fmQ>y@*#ywgqL*}-f%fLeo7Y4(5Y>#UJOXj7M3j~s9?wNlW$gwK;( z0NajWAVcn;YL#IBVWO(Kl*s+^-#U<5p}6x~x;w(i^5Bhtr^bU+Ca=QbTuF21HhCx= z9!+Ty<^Z^tlYFqP6IULy;Bcs!g-VFPHXtS+;*e*StI`mtIbr;!a_P#pKVadfm({>0 zdEitIwSPQd;b!P5Pr$K?@Z|P3G&7f5h#5LuWnjqu@KWsXpAc?hqhzJ z$-+vnO1`@zq0yy5JE9V>X9ou?n)IsWwkx-nQpkFzYMIOo4prU$=#gUacH;v*1{z2&YhYXdp0h7CCw~^3#>VVou;&FebHX zA!F#8oe2YguX*>RfzK^0c=T%Iv6}%$=qyw$j;)Q?u&~jqWMhGJDz7{=F0FgVr zi0v$kB21p7U;y=74mj9I9{R(x4_bG|a?U&T5(Y$WEmkys?%5O2k=gBRN9a!n5$hSy z+2fElcN?T`s{o==h}9l&Fp=Ezhi8xJ6`FUF??D72y%CQsCtnUYfLNwSQ5u?6969E3*&SOQ~$w4UA&jbU?2W-9P&U zOI|~6hx9w@&=g_gGaT5P&lWKIdHAOKM@{Ayj&%q48k9};TbMR?Vq&YwpCSVIn0X~M zqyvAXm_I!GH};uwvt7*YCuIYVLxFOO&;A`eSbucNWxK(GRaA&!2LT#2u56$`Ab!g) zvW*-WF$VxEHR*3cB;vziOI>+%aKM5;Z;?`t{s>i*5^61DSXdt>!ef!2S1+-615T>= zOyaDtkVGOl;ILnfB;$2^zja%;_L8R1xs3-p%(sZ;Hv6A2Ogea^j3yHrYJvj}`z@Bd zyawmgf#&;7aROXve7^&NCa3CESeHG1*M;mLXCltWTV-w1w*Fz?=rp{@*5%C*H9C|j zvH81WQ6?S5m<}9gsnwF3zgep6aT&e{PJ^Wz!TGDDPaaLTqK$AauzV>A&MTIWEJ>O2 z2kISB0`nJ3G&q6xJJu2_B_=OJq=*>RA!N`Z*Yhn^ro-$%+e>u}i2=_92j*Gw$#Q@G z39{TwrVs{drB9}jiefOFiQqt;pq}Ph24ja*u~m_qMx`gJO_J-` z%rV^qwU#3xL*^*$a#WuXj)HcKqsiA?4Nbx(cM;Q+wKP(L9!^|9D9gZ1Exff_I2xmj zWl71?{Z3fq_e8tsNWp;`N7TK~hiFc>HRG=q{_mJJKCNW9JyztG!1LOeQR(NIMxrL2|r3G&k{G#CDf*T9E z!2k2e0vO8wHm3o4^3TaX*8h+HYyaE+XE+ORrhiP{n|VLYyESiD-rBsmd0u=t{ByUrA4YDE?1`KoIWbb|{oVVScRO+acYDWqMSK|lR0o3&IW3&d z_Htk1^Q>e%YlykAO;uo(t)6J-po32hB`|&!#zQy_jT6F%nqbhOsKv#w-K+bNR!>-g z8Ijaz?0ba*%7Q@$sVa(K-3KfF8SVZ@2ZIhhEt1K852Tg&Vnb}cl4=0*kIBY?(}Ac( z1#o`l|H4_H1@SvDRi6*%-EgYhys)U?Ih7|&@PEJosv2##cfr*pG^JcnDOLco!&CF~ zVE8f&lE$<5bna;0PU?sXD<^^h2c~M`Fx?5$DmgH;ACZcU!+5}FWs+X7 zpe7h_=xK2T>NgW#k0}%vZs(I@t?vhCIuuo#1M8RU>rBa>IW`z@Kx$1CmTz%4j6BVS zGE3dOOd1nms{R1D%J|mnh01?|BcY$jmYYKZvKUbdto#O{`yayu(B`P3VQi-OHM`NQ zV88+^ze3J}rxH(4W_$-_!MWaID!)Mox z38|-Z%7DRHA|pFqItJM|O^n&dbUU17gyvDGW;oMi$SLQTFLf}hUPAK-47gi%QG`Ga z2zFyZbsRema8*cZz6TfHQ&J#V5Cb4CgB=#-Li#SG6&r+du-3%j_%yF4t&B9RVoE!OkzkU$H%NO(%n#vX*Y2udz(KDDy?l`PD6J&a6v%#M7}Z8390nr; z?$X3{u-PnQHNfR_vAl@!;F@z_j1;&_6W78Q1{~e}RA!Fa`ot01TbLy9nK6eNV7>-s z4V>xWduWpIeOa*PFOt^!NMbK`KaayfiAzPRDnttSn=EkiYoxe1+ zOY9BL3JVP*Z5GD)M*Uos*h_#^Pmr2d3lP4-0y$36aQT&qy(T$Y57IZ30YU3uAWf?z2?{83+gWvKq)6xYtJY zsbaiCzaWC+(B4A5{cZMU&be)59CKLCOc0-u!};)i0Y2_Ts|K82#2bz7n->f?z_)59 zOrMjm?!u%}5o9}Z1ab&-s=$Oc3f6)HfK4;F;O?*b&i1rlEHkqxe zSdF){myDnR2N4?%gZaE|KKfGSJ{enmDu~?z_N(0}e+vYQf&b1?D&tyO_MK zoz~UJj_4p|xonJ&hc7_m6$H+q$;Dc+H`+&9XQ7=~vo8653n=|6d47LNAVI}1TGM7< z3I;5a^o{fMXNf0>bOvAH zfMcCJ-~Wbg9X@)3iNGKz4mlzy`x9@$6Yh-?65~Eq_JtIl!;mQW{fU2x4|Hkrl+SBd zg_{8fA}b{XZ^ED>H0CrP`GErtI^x*fpLheR3=)+eU@jbTtdi~aIyB8ilUi8qBvou+ z50U$7k4l6cD29AU{wcx41FV-b; z;9#SXgL2qNo1_PXaiI)2+*l_$I07PhV2C6i!+Sb~d9%Nf;QYwnUDZ?N82x zNLbW(v=N)tJvjOh{-Z2UE#i=z0gsMtnnjHp4`t7|S6LQmh2-I|Xj<)J=9A`FvdsGA zVUV3Vkmzkjf%MQVZJ^R}RU;e8>2R&3^Z{DV*!|32+R|$fj${dRlXB$Z9mq$@GO*|G zPZq;qZFc5QrQ8{dq~%BvE>0G~fk%ThXX8&8NVxlB$tMdT+5lvzNRWWpmcamr*O0D_ zR9^}GZB)g;tB%g)J1Q(&wPMn*imjjYhCR5T*+QTn>F7cX|A5}KVX49gSXVs;|6k-q zrh)&zRq~mVOTqv3CB?;mEq<=}q2gPLFDCx~j^ZQn06brGKUDzUQ?#V0rl_Fs&xKDH zK3sTXVJ{wlcNESpc(dSHJOCdr=qWgd`hTp2auDV~jc_yT^Idw1^joCa8yTa%kd zU4WnEJdks9&ZTq-tj+Obe~kS!_O;k2V;9BN$Fk9XN1u(}AH6xcCwc)j|7S+thzv#^ zkK7fxD$*QjilnIV_Z#m)ssnU-OT8o?`?i0M2nHQYCE~R|IX_vMgU7g2qgxpaI*`f% z%l*kZXs)ygD=4&KaR)efx>zzl7p5ivLnntDF&|x4j;cN;gFy#VF?aVTYhfiZpSGat z+hIb+!Jq}D%qqy3 z`EJ2(8l|d@Njt;t>=FH|HJ)9Sp6I{47ZxuLB&M z&n3n-=+I`BG<-dmYv|7qV(!)FI)qs+p=#pF(0jvxJ7}qxa`IFt=0e5xuo^SLpu?9Z zOM*_Zbh#SQ!U`2kW{D!Y4rF4B?N7er|IW)aIh@%bwR$qFHWj5QJi=_wo-%d-Of%i} zlBkpH9Sz)Bhb`HmlGzA_1(=@Eu8ZNq10@_3?oWKa1(sg9r0PT%)|qSorqn`8FClqa z1Z744HjX-9L>1pbizdBFiP8zsFkU&e0)k<`9|TGo395p)5TeFybLWmuJUU3a1(M{? zLvFP5aW=BL&Dfi%V9?@7uU5w2apIuLw>-oIKxC306AW4$={3pvYp^#l=BixFt2@ai zcb$g$6bmdpLah6f3*g?^OrtBDwm1$gq@?U%a#?am@?4VBTDCX0Q7UZEf=R+ykUAiR zRg$ok1}%E@DrZ9435kdXmVz8!JkLSLL(L}u> z-v%x;;#1+n^ab5Y*)45sr-Kd-rt%$3#vG`hfod#rr?+h?Axp*Ky2Ua0K5g%^tho)ZFzFg+skV~FN@MB3 zT~!p;TVb`3d=pc_yE;^th(Nx@y$|*nZv& z=ual!XKWzj62*C{u|!@SwyTw#e8Tcrcbjg5E^%nCx)_!_?5hC(Oixk1#G$yV>CnGy zzJ%BZ#T4M`ywZm_fg)n?GdGDc9Px!?xTJskdK>SAXUWwf%-V8HQ7UL#FTa&|g zTHNN>S@htgTi-O)P`*W{b3%1os7ETO;j6W(4sbuF+zSQe9+pi-CSs~ znqM7<@?i2_>hHDk^`;6G(`j*KVEJ0|-sLzWsRC$(jyqV$Mj=4R_l0*bK{8wGh2a9VX}0{6;rJ@AY7d_~ zSZGcIBRMQphu!8&y6$1l!aLbxwfN77bPqbu$}sO-|r7 z9bBsw?WX@KlR9=W=ulg^1m@$g&~lRc3NwR22iQs_jW_CIENzsAgK8DhYd7$_J&pv) zVYCWeav35j8ENX-!E0K4#-S`odo4*JH{=p%78)&D7nh3GY|=M3bkVwP4-5{U)ks}l z0>di0!1l_9YbQyYuW-n$Tnh7I7*q+jjX>d`gJoH1%RTnF)~aC1z~MkyR+@76f8j8i z+ySzL)Z{KWY{5!So)0<*worQVB4}$`R%3{2Rjujiod<-$vnR{U!Lb_Y%zhZ<1IFwM z&pYuR4vS@_IQu5w1BbZDePVbW6swT(?A3dOg+>_w2gAyxFMA+uL~L4tUW1d+OX~5x zP|VojT+q-VBMy4iNAzaE1^yXqY(&)xDpz;k6PK}Oo!rl4rWzIAU+0-wp@&rp6C!(r9>fs#6cvo zxiIr2N##zGBnQ_+rRG3;7%RletqTT^una3D4%flJ@o;u+wZ}AR1TNc+E{sSAI;G5B z&?xD+mJ7^bmauv~-a33E;Ub=8`Q}STu7NL{c+{S$=8Suq?<%!S6_SCE7^bjxV=y?= zlFSx!6=M}DuF%)3XP}g3Se`0L$cObV%~U#W#_!$R%y1uW$tj7)heWo8sil(-vqTiy zvg8LLE|a^pgDhOmZt!Z;Exkfway4|DEXbuL?ovs}2OufoN;SyShzHLtw);{ge^tQWk|`N{eax* zyR`dK=n|_dZi)4BU*8XLS$JBc2}dtQNae_2sB$e=wY=6}gUcdLlaa3Y|E22x_q&p( zO75oqzcK($rT%|z@k_-&EWWe&qs14}`>(p#D;lK|;2lL*7i}#%#nk^lQ24#VI}1Np z*j~7@a4wzyUZ(Tk9R(jP*io>i;JAXr^Iyv!$p3Es?VJN>&0ms#Onx3!0l(|t;_va# z_fPWE{L;A5%6N}Pw)ah2mb`$!P$BTX*iErZW6iPUv7=*t^mo+!zl$n?-O&xvD~zN z3K9v(>LMHhN3Wf{?BQ_yQMcg0E3?ZQ-Uu)$3x*u}t~d;iKfqy=>e9iG1KxGhA^jfG z)FdJ0j`0A8y|X3oyanC6^H7G_h7UMYZ*O1K$gT(J;(0GUX%|VOMeeO%OLu=Z) zl>+H~blVx)Xvd~p6TV$ElMjaCaIm>l)4dJKD$>Oe0|%5-`oyjLKDlr3C&9`SIi4L1fs)M}*Klpi+v(b|h8$9^(L6RYc42CO@`{lI zZs5RjwI=gDFs$mN|Fun8hweafH7YIjZs>s4ek@~KMs>&`W301%sSBXn-ILd20vs@| zM46@DHHBJ_RXhYVHbN$KnK}(YlCC;*ij%Q%pcvq>FSSxqN@^Zuy+}qHa$wlpdj&K+ zVl5qAN@3;09S*LM&@4AXI;E{7v*>_uxgK7R*y)UE3%G0u3~XMjN)J8O3gl!EU}y^b z-ItmVc||i8ntHABNf!Q+g3Yz_AQ}WuDT)w1^V$~wQZxaMIyg4=t2>IOgAcXz#FqPlyr=s~__j({oqQdMFh9z{7cB-TM)Bhd@&!#RQ^^PNI{Lk{H{)z$!=I8Zws zc%*6^&^21|ICERtu7qwN=FVZ=N`3r05Gu@in_i5_Ihb3cnOz3e9YZ&dz-C9lV zQW!RJB%&>SG&_losbWG8IpABZIbI?blO92vEylPe7;@-$v1Ygl`u~(`&Duj;92y3d z?n|Aj*HJyyKJ75p&T*L7%<(C3s1XBKIw+jg^qtJ_n!a^hNwxX@J$QSEz`{oDWMMcS z21bAK5QkvIkb}fkn&p$=u(34N24SCYc(_b6ycn`+M#T3!7+kG+JrRP5Q-=*uaiR}7 zC=3SOms$j!Xu`$nb}{6zFW_Qd>I5i=wT?#eJ(H+cTjfGXQ(t#MmiMu!*Dsf4^<6oA zdg_|mnQ@DGIU*0?JIQ+iaNB@GoDh(xS={Sm5H3relU%NG3eRXU1-z5Ry}t3AoE6en zVvAJ;Ll*CHjGs$4Czn%8%!J~%GD$?-@w@bE&0Fy6*UH-LmA`kQ#a!(R4F{Aq#r_Qi0hu zdbHWHEyg85grCnyF5j#)!)>Ns3);tmTfbi5c6D+&VI0CT(t$`PF*jp{TbS#kK9(g< zPcAoZF^v{RHnssnVnMENQ0yv(#8tv#Vl2Y-8wFxd(|c1UXiwd8vko!&DDtO;YO$_g zBfrDh_Vdi~yl`Iy>)MTZS@JyG_ESWoL5d#0E4nX0yCS*VrhSIj0(OmZs}>kO-(IZa zgDO|Y;&OPmO0shybaGa@={3(`@;+dKgS^0mWyyAXxjFV?tG8m2fO*X$Qj(hOmWS4? zZ6x^*IhflhiP;9xSaC#Fcs#{w31@|S>?GQi^la68ur8?2g{uQa%||-4n~)5(!9aQ{ zT?aa~b{yEPmh`mRH#kkzLXaP(+QD2CTxhX$W4+Lx*=R7-L5}^5atYBEn40=gq|FFt z%u=xEmnEB_5I7>EMz%LE7PV9pTzC&u*M*El8?m$siO;+BVB!j_cSg;#BqKK$gf~U; znXc?Z(=4%6g7YqjWFJ#MY4CFUd%3(G@8tI|PzsX2ETmBK7|KeP0DfWP)x$-#182cr z_c*0;EG51*X};pDz0_V@E*SUixojp3eJ9-beCw&=H_2 zFCHI>e>;9-ygPnoyfI#q`#K%}?#X>0Cjl1c9-i}B&ht5s=G>68o7n$?oauB0cp>&^ z?Dp7Yu?u2L!2Eg9-$$RK7T^`pmgqaE0r2n0P~?%wr#KNH#Gmrs@*ej-?49o|nD%-I z>dl{x!LY@U{<%4+-=qdpzr~X5R{qTjgzCh!79bsio6P`ATPXW=OLJd!Fl@1K%LLl1$Hkjt_<{=Jd~x!2QA$?pHO|)F_8{apCiaF2tJXFH|MPRgCN>&`@$@DOAEs0i(_L#*{V(5s=VgzsdfTGP3WyMS6l zZkaUv8_3FXMpCg1FjWO$WKFFAD&gN42B(U zogabpb4Y**^KNPWOR8KO2N#Dyutsm!!}BwEtanHP6Phq2X$@O6>sRU_-%LG>Zs`mW z(NV#$#k2lGJ?0y!hh3f*em)A}Db0=K52gxOYbLo4wy&oiCdGu~o7JC&ZxcvSG$U?V8nlFq6Pr-;fRU#3@vYG!IV#+?lCsQV*s+ zA6eNm;vnpXvFAR=u$~`(y)WL)rUj79~y6DikC}mGszC>)*lA_YtU^7 z!dhb?%o(19i}Ddo(E zL%FFUe&5IM*yZNXpT^lC+-xDld-N>1T*I^t6TTg`7?-w6OvSfS4`VyEnToDQ2g4TM z`ipa*eLMBAUNoF2Gz<5UU~Je!d}!EWUB4n1&hIeql>9@!Q5z2DHtGI9NIho0R;e(? zkztbVPH!gvFTG?Q_i>oFJRk0#z|F^yN6lwC#GCS={Mg=Sr8-wKY!2{NKj)ZltI{pUy}&Kutmh2SAhII%{w`L zRx;QT$VeD=c(_rht_wHKDmi>jB~sGk2@k2@5bx@+alO!8Cwx;N+vd(KD(e83gU9v4 zNQJ3*EQ~0djSWpiS5(d)4m*Tw+)DXy+4ezN5)L98-=PmpQXK+3CGqkMK(ZOj1|E?I z!^WKq6s2C2LvG!{jLh5Ma&Gc3(Y5#(%qcfHpN1V=HqNIU$W(&vC4di5XLu1NhnR^< z@549tm#8XVsud^lPVf+%f*y0Ixl)drsCkI1;K-*qz$}M)DgyOT&elrW(Zb;%b5=em z4~`~j8l6y5Iv>7{VTY87LhnmWgJUyC02o4tkBKMmOa6!7wQe-)&>TjVqbB)pXe$s~ zIl|Eypkt$^7BSt)x1ecw!y^pIhP znCp}o@uuFT8Lx@lN;1g7xr~$p&y@nl1pW_*rO|RK>TEO4UbK-z)hR*zV%<-Zw~aq|6$_{-ZVNF1 zary49*3j|5l9^)%s8(Ld*-&ku>-4rR>IAgnWF5B9+AEi6ROkjcaQZm&KWss@lBM>g zj)cM@A-e_peAt3&FC}3phopfwHC&Jb3#C0H2S-4hY>;QlmLdlhN_$2Q%HUW)O9QU7 z2-;IjB{hrRu`F5Oc(!dv!c2`353_DWzJF(tBjM zG;0Pe$o9(dA|?L`&oU&s6DQ8Fh1g!XJX1SSb7A*Uo@`My-50oK+(xf9b?vC>X_n={ zD1ocZ+9I87Uvd5ka6NAya!AO`AsC`?b-}R3*8VER zI3G{mtIjmcjFE%Mcq5>`w_AD$MQ*{iU#*DeW668hqlQ5824-_V3$y)IEXL&bO)3(5 z91Q?;-p<@M^bqi>-7Jd6#qsd3PfTt78L2p{*?Q4l9AHkufC*jxVEe(b(^7hFA z*_Zqt2~ijpJDVAHhr8vdOpfv8OPbX=a@axctkma(9T6uk#tG`ccUCk1ni0b0R`RUU z8+Xar2JTxB?o~)xALJfkr*(Nb9saJ7JiN-qlgsX`_O@O4$SejYml}qDz(DQH9^;N; zQD1~nICP1VNeRZ^4aYWeSMeoWY$-+{{sx6GLfFj{@B1E0ER{g~72?J=)^RYj+e*NE zetw0Y&G9--t1&v5OX2@Lo>~DmLP;6*|A&h2FTSR@t9T7P085JgTJ+1J zyNj+bYA!mpsIq8U;ZWgs3qM!*0kHpy!n(qufzKaUE4Dc{R`fldH7=k@2Emp4DpkB`M4i{DL0z)Ohy zuc8}3VeU)0PvQZ%F1IIllj#QVGWq}a=iHjJE9Xo)1D40$ijBqg(;M)bSa0l{*r~Bh zYgRj z)P)+gR=TPYN`vPGxNxPyhXUS$-XjUmql+`X8`vx5lOed@SnoZoo%9GZ=B`wbX}x8gzBcs|`jRay9Ou ziPR|7Bts9B^$$tH(5xMMc6DuA5R5o9d#3zD<5Ss|+U1lYrg8U(L$+nP{Qj}j zwZ?qocZXxka`-(+U2E(o2Gyci>b3Fv^{HzehGP1Gtj3j50p+^XwM{58c55cmA=ZR8 zj^8Br=Wpg5j%u|)bAUCWJ>u8U4)q@%afnqR*yOLEg`4g#Y z!{if2FcFMc@adU6=bzb!lOvCYfPr^+@Uu$pjZZQyCcW6C7V=gOdDdz2@09a{F9R6K zR5t)L6^uC43F^Nlb%%INi3DK_>T}C0IN~5@rDWnuu;|=}8VGgh{U@QOB;$6dIpnvvlbfx2sSZwK6%A55WM!tWG4H7V0 z7FznHa%Fuwb**|Ku?{Sr^b_)3-O4rghzD0#AnBLNb#)8#%NZV4l*N&LncP;NN?mKp z81lQtkbarmRyU`v#RAY7t`UbHmFtxJ`P=7QPPP#T8|!5R{}cwPW5O!ho6uEQ;-nLf z02xCJk9rxKqF%7!PfV|ATDGR?oSI<7fyTu`4Ogaina=Pl@O)!%;CAh8leJ`Q?-7R} zl{BBa9M&bxTc}J+$bQ6OMibS)4AS!5AYK4pc-(^2(UD2KDEzrsSA(Cnt8@hPlR zXg>fmFg zg28*BlD)$>$PnfwL6Bz5lryz^3Q84NPh=Yqdl99R! zqBO{VlMl1n9B!-@;`<3=X%oYA%DufZ7;&i4q^G=(TXD96 zFZp95+bT}hLy;Yt>afThdYmDv{3#g7OyMIObX2Nc@=1QCO-JWNB#sd99dW2JAv63( z5X0g~I;}Y3U}J-j*$<)V18oFetvN5maNrgWLvqGvU-AdA@lhsS4_gx8Xr!hV(i4zE z`%nthoNi(A9dI-`b05{G<4&dMEF^~=jX&cfB2iDdSzSCw9BAZh#lF;sAvLio`;B*q zFnk9wf)NKDi3RUVeFzr4J&3-aK0_!#Afr*R)pBip5HjWIEMRMIW#_g?(JPbOTn&9W znp=9?B0{qzral0HEO8Q4<>6wIEFknaEU_>3eyAHbL`noJ>?y-uYXKnOAJz6{ls5&9 zsOrIuEdcZ?wFlk>MFnEQI=zf!#J+D<*3I2evE1}2KUK8N~%0T1-WtmO+)#V?GLu>>y(;v{}#; zPCHj7b2yy-IJl3r`&n@3$Pdi62Tm z2gfqB+D@`m<*M$p#CrMne+kh*n?9yY;SUCDGd=%?do9-~3OoD)F3l-M%1(Ttli}JG z?YoU%yT>vo6o7aZW{eH!v8x} z|8Jt?M0}vEkRB#@B01wN5CI6TCU&jM*5vTtb=g-Oa{e%7!Sl%;v_vT%n_ny3y@+#u5#2=4;hT8ud;>X8}au0(1KbZS2vi&D=9?rQorwzRC zQUC9b*yXX7ST&vho{v5h{cQBo=-g<2ys$X?Z@aHlF!c}6hmpw|q+ z?mDg~z4M4*)M6_Rkn!_eeqM`WL6Y&;j9PR>J1c0l&`y&xVGDt%L@;VG7Wxq4F%Zwg zL6yFUvswDfoM6;~Ew5gPGz&v0dC0dGgMnTZ!Kj5^UX{RU#&BWM)F~#zQX91h%u5NE z*60-oyrC2g>SlQ!l0d z25}XI7CGd}Iff3hhIYay2BQwpHOF9h-7pZp zWo}Jp`5NhW`MT7oJiV%BCm&DwL&CspO32zI;EQtgKe>9{X?3Tqs$09RDj0QuuOR~M zHQiaUPSup6(UB50luZ|mg8a-HT?N;xaE0B!B?94)=_oI`V0fxj@R5%P4I24gRIy1KSwS*tTMt)QnCPvND*pYHE2ijTlX?~w zSvx8iwZPG9lsJ?5Qn+7AJ7DIXqm6P4^Cw? zNk}Hi$EXVG%<+7SG`+@r#_vCj-+HVDDqL?xx=kxu?EgIo_*_36wJW1cM>_KVCE;f= z3l_3^izHZoW!c#!cVf5{kietp0>1hk!KeeV?Z`+v`v3CaO-%meszQZ0luKI1OQ~1% zEXK#n?`+f)Eo0bC?FuqG8eR#gs0NkQZmtw`p? z;oU{ZLONfM-eWpR@0t8e6MIH2IP6=4dP@6n(szSZuHoYJAYTgnHKR%{!%OKr7*lvX-dZ%64f8lq9D zqdOIhI#gUM4V(jc2X4kuZqYfRfMh?<3ShTOcT`Rv$beMLBmlw)DI2IEC z{inobjUX~={=SA1fTIpKH)toShjDYK&iV8z9J-{RqGMRwhtpFO6 zsABw5ION!~9Fnfo2HufwChc8Tg6#U5V002nYm2@Rs$Tmv&46)ntRR+154f&=X39b7 z8tvHauwv@>ke&-G0>ijDEM2ROn{pCLu($2*aTqI{HtLXcnf7kF+~nd{Y{y$a>JW69 zwr+~Os|}(YRih3=m+CV~Ma>na;$aRxvyqmh={cCIb}`CZ)EXjp5y^2Vx=thB0!vd1 zAXJ@+);I4_1wBDGXC*81v@+9geP( zf%Zf2Oqb7-o|-n%;WVOlCIXB zcj~hlH2D%qaM{M|IV?S2v(bQTg?WZTM}*Qj0ZazKsKe9s`UXHz?k4o$_PMOL-nO}E z^FMrq#n%4(2nNp$>B~ZhhdH+iZ!B}wg8>4<)+G34uzW0i*?O|~`j83F4q}g$*5#lhw}uIq)k5oPP5Oe?WSs)G@Sn-@xA-^-jRPXN8g zcxz3sXz!EuzzO3(bhV_n8^$yH>3D!aM2FKZKE*-kdI@kB^rqIGwhIqJuo8=t85(g| z+RV^-NS|>RGg=Nl*J*~%g)r&);#%~Q9PJJ@r!-mTz{625THAMYQ@&xu!Da&j&W3mz zVN7k4ninp1(An7XONn=#p^5*Ty1d8w2`6Fdeh zY{jsin?6HG!wlH6b`=m~Ja$?=(E#_UaAP9Zao0K%Mnjph8ks+fpS?;A|2tSW>^)~w z76aRz$=PA$d7;MqWT+0jQ;7x@I{!IU^T3y`#ZD2}V=*Y72^wXS7>lrIy`d zh%`iV&BB6_?UrhE#)(j;ws(-u$Dy^&@?@nm7QwTmp9DJ2s+lrzWS@;}wH&2dc_+Yu z3<5Yu+U)NsP3uBkiTPvZ9Jy|_#0t&l@eu8y*D(M8AJa;nFZo`{Eo1D>_*8WYIlEK~aCvx}pU|C55jPK3jM@+5hhu@G|qmiu(>eMJ8Ia@P>~FU|Q|&T}~r<$NrspX~okPGRiD*pso( zQ}=IktRYqqJsAB#^fo#H?1-+7E{GOIUXJ`E^5w{7k(S6wkz^$1jeAdcU-GW?y1kWN z)wF-$?9e~Q1Y@94v$ZTmt9?9uqwxncwJKOdMA>B6nu_1s+Iy(kI_AJBGP^hZ3D`L~ z)M9mz36E9>V-BM(oC(jJ@W`T;QZ_)qoGGH{UU@KPa4LapR>$7-Ct)Pjib8hy3TFmm z4yKmQfOrQ)eD1qv2V)kRdew*X`w(`t8tBpnbAnC>6ow z4rf+Rhx|o76Qiomr2Dmze>3J#CSmuz>D!=(>32s4V-9Fm7DM?0ltahHtAa6yFdK@X zeje(Yo_RW-XsXQY-g9wxUk5(TF$XV+ukTHN4z@G;aU1vG(;Rcaa!~=K&q9(`U4z9( zK6ZL3g_AqmTTIW>F$W^+^5OgpoM&_R7benS!!yLGV9bHZS|6TI!*ggBwLjw~7z0Qe zyP+}0+xmMKtD6^f+e%7J#XXsVgMl^kEj!JBt-^ zT9t*yEEe;#IdEK&cGDX7nm$GlrS<}Z%H(9Zjs7QxyGCLPXNKrAc^$^1o8IJbvi z#vu(`LWdqo#6`OC(~li(-@ZBmrXK26ZbO3@6{WRX4`+dy z1%t})Ayt%Q&hcivD-)i>1MAEQ#tamLHoq9!;U&Vj5V0PW^!_9eoa9BfE! z9Za_aUe)=Tb22TktnJ^au7hUFL&_cKs`R06nL^*y#r#=}<=6U*MJKa^`N2r(^^~W; z`&pRfrwZWc&b0A;GC;OSR4u;p$t-#@{dD@N({!GlC9BW3K+10{`BB}4_x|TLn-ZHX8Q70B=aakjqoUhRh`$&TQ#qdkpy2!75X*PVd@W=SfJR{gil#e7Gn9;CD8l0 zzunQ4Jjhg8kmc7FL+-WD(9w=P>83t4xgE1e%g+|U(UWOAON~N|rcj%jCdl%^pE9ZbXu=DU!}NwAd*^Sdqcf@5nqtuf}nRw4)5 z1<>q~Xwh=5C6G!#mmW+H=zLOd7w0ND^fYFnmL&bT^nvuR9PM~$7GZHF7}^VmXpPVu zu0okVmwx^b?Ko)QDKqG)D74=mqBTIXpvq50p#A0$Z2^-Ft};tT@A>OPq)EqB7zJwi5orC8{_!V~Li44$V=kv}%mSN>VWLX$3WUuy(rrtM zXEx4TK5qm6l2^p zvGizsRg2(_bzm%&<3xrXi6l5X49-GbXY_ePjJtpWr>JV2|4EfWp z68g?jdol|~9oVXfLVhRYWo;KWr_bu=MI6*RIRfc?NGjn(W$C(&gwHvSp;IYj@bGfM zD6q@C^n6&)Gpw}Q;1P1Cw_Zf3i$`Rkrswau51}siOvb!O~a& zOZod?+1%NJ`$|2CQB!ooFwJ*^QDB!B(LUwF7`p>TiW2a!KGab2HXIhXupH=G9APBK zVR5OEOlW7bj@J`>q3JwQx5M5Jh%z$m)koo7x7|c$aBw=%)fDG8zlX$`XikLnO4PPD zZwaN03X1GRh_^#wRk?7#2)7AK5PiYaLh>98Bl&eC{X57eEJmvjGo22A)yAM6gt}3k zuETcNw3kp^ZEGlQT0SG`30PFoS6-MscwQ_F^BZIUUYWk^G>*(HQ(G%sd;Eo1_$f@e z#bYE#!gWRZGFhj)P^*kXixuXS{6DkP)0cG-Mv+?O$y+R~QrPdv^mOit>q=>X5StxQ z0I)ngeKTumt1|aEaWMKGORNei$*xtYRfXX4&z(owZip% zj;=;z7vgpI(jI<$Rb?i_0{esh7??l(fQ?h|!kuk7Nt1lZD_;QTqD966>S)_ZqQmG} zmR^I)-8=kC(3kP4dk|QC54-2+X3J5Do82q84i36rurKz8j_ggAtk9nqyUn}`hN7s5 zNy{lL=#64wf1WR2Kt+1`|Mz;qK*0|R?k%{I)Bkk^Ir+b*_W$kqAEEaD zrudhu~kP6+kDvYvyz(@ zc2Pen7#9W>M}5R_%!30^)@2r-sb{kj59FL+90Y7mXmbl*rVciv*t8FUF3j1j8NqlX zcT=MLjKa)t=8epsBNSpP4aObrEi2&X*ZFy4JIAZw2l5)jqAc@f=B>=X%u?ZD7UcR3 zQGWkV=3hi~tkr~!t~SS%DuQtbcdLpr_h){V`96*VP?u>aPFve?2YBmanK!f3GXFC5 zOfAv~H>bJ5xP`vnav!GY*|>^pps5M@gxNf(5A*+Lvr~~dJ#OJJ%@5!&fj_)cs065r zh+ARY!eMVw9G+r$Sl%2W-rC=RAD@`F<_NbwuV{g>H$NB7BFh<`>#*Nj9gJIGOjs7C zLYSI3+X}RC=rJrO0Ha05-a>tFfnk&jT8E$T%F2SEoDPX};}#%$WejgNA4cP;O9kT= z7<;u52tI`6%4RgOz;{ZsjDv{HMqdp_9vmPXgGiRL=R!U@6aXJ=_+~aY^Do&>>>#E9 zL|HHn4mMgPq2bPf+}sP^p{G_bZs4yJjz%`dod4G}3xw6cV0iEmyqS$6FFMFanQax| zXUbaJF_j2jjT;~g-^m)+NakNgRHe8~&$1b{!Fn8!!xON~7y#{xu0Gkxm1K zCC&MW?LQIQ1@%j31>+9?mizqt8b5FDZe?^5!MH=dHF;28g~HB3O)iG;*kczgJTe%! z;Mc2+!|)Fn>K8gM2dmWrU#vLJbmzrbtm0sb{>l$^o)GY4Q%&ZA%u~sMy_>% zgj*O)WF3y@EeFjAD3feXTpI&bHRi@GAoiHi`!m1Q`-B~S&@gArYnsRFl)Bf6!ton8 zC^TR^0!I6w2Q3Kp$QZmo^J^G3V0@a+0JDQ}(61548fd?=FCr(7nP{fhf?f~wb${lU znV(1HE>b=NG>de-gx>8Jj)s-VLoK|;%!2l;r5OhYQfvXPSD`n0#u0bXOMVz7I2{wXtJ^b5Z`^jezB?|+wwE@)_EHq=!_IX5vGw>G9G*nVYct1Y=9(sO7N z=k9~)Z@@sJDZRFoVL0Z%W;O!t>-J(>!;2k@+dIUWh2dcsOw_=H1(jHZTWb<#;%fH} zzbSn;jjjoJ%YAJ0DBctUGqG+{_|m=D&9IPuMWdari!a9GYEY(ZU;O9OUcD769RcN; zLsJ+}CJGFk!o)eyStc*~12ArA!-a*P3xsLZ);CR)2f zZuGCgc(yR}W;v}4yc9{!^ZOv7)i_Zhub=^xkje#}z6vQ!^2bx45By5a1$k>>}_ z2QkZk(F!hTraL_jg>7Uajydc|eBi9ykKa&YpLJns2jD;zpx->un^4CwBB%{Br=4qlewn@Rs9{S>);tt{Iy z0HslFW&Hf(^i#%)Wad#i9N15N#nehb37GkEDNah$hdM zgOYf@9!WoOh$hdM1Ce;X9!c*%M3d*sAxL2JBk9Kv(d7AZxDi*)Bk9Ku(d798IEGpq z()SOM$g~g3nbajL)FsW7mT2!J)MpSQJf{@GQ#2DEwQ9jABTyx` zJ>H75$Yg|B;UR#dL5QrO2fg@uxJ~R?^>ulk!;iK3=?AC1_6ev&kd@fZIy7EWR`S_) zk<|E1=l5WdtST03!bb=*(9!7S8l>YZh~Y{F8MO%e@a?k<3~Uq*FSS({Dxn>(ZmEQIvS6_30=eHkvT_GWqE*SiZ9ki0H^nc3`n+1ANn;P}hf zI!jL}AbBkpHg|3}=W_VKwU$<)Xyi5I*|No8Ix*F2EQN&Xz3GpVkYZ2!F9^oYu%wL& zM1CZF897KwXtBpxCznYRRiY^=*s0L|ykKm#y=t`rlpp3%Iv~rCm@yajKdqUAyh<}R zJ}_SHboX+KRep#OX(#T`)5ROCa&MqeWcH@7PG4r`fi05P;F~3KD=kNr)a?g&qUq18PH(su$5vQsopkQ|7010@PE&=SEiNxhV1_j zm$a0eR8n62YVoth`-+3&i;CA4R~7xU=m4?*>x#OIRu@%s`u~N(M+!e#_};=zh4Tt$ z7W}2)>4LipK3vdUaBjhzf>{0w=H&n7`CIaj%a8g``?vd7`S0|X_(?yK_nW+L=G~fi z6{r4B$}1)A|Lgc8@jK(!#V?F6izjnm%l&cgzT6KiBX)Ca50(E;jisWmMSlk352Ah1&CwI06_I~No{iiSxhB%ZX@JAL zm%U$j_tW)n7npw;nEw?6`fGv-hxiu9vz^&bWUn_SK9uM`8FjX?Mq1apK2p(6W-rzL`kqpbqT!VtjFWKQOqgWu$J^E%b`7KwZ~ zuFJmPY?rd>x&2Y@_CB<0p&9)q|F5Z5aY8U*5uW$1VmLm-{a1yFd$@tw#n6+=s=^H% z7LL`6akNb*bh*1leU!f8+Ry6Ulq24b2ijvx5nT_Nq0G zcV%xkg`i#KlR3czu+Mrxa$fOr{^sTURf|u#?3%cB_y_QNO&AD>#-GpUd%3f@O_&mI zyp`bvsbIq3K)3+eozq_HgNu@S?K{K5id{XV)JzyK2umUlmS>jQ_c@&+%n%(8Oi7Hs z0?j0@k?;cspKutkN`iB@z0g*XVS*g~OGqZZY{^m?4B;g7I}FV6q@0~(C z4r1I6Guy{v_dawpu7`O*|3fw^%98!P1!_D9~I^ArxwDe*F!VhxwYmLAzP_h+7j zt4Vnt&O2zzHsW4$__9uq{1IHn&4OiwvC=`l=r+)_gPCRez#qbc@z+MK^|*tVr4sia z=n<{WJNex~OYr*rnJ4(2OidcfjRPpnvIOqlpV`mvn?i@OF$Q@i?hpeh1;yk;c^no~ z0$j%v#(|PXJ2XOh49aS?~FE4=adzw^wG?N}bZeb)bVhG>OJb))yw^vF# zeol)dsj~?6JDCSIpaHSKIA7T&7qCT>{$kC^w=)kQ3ww;?n(r|7Cf5JO?Q%kaF3rbk zdE7ol8bKK24p}m1H)OtmNQLgp4VbKZT9n#_Z^Qx1ayeWNLsM~x@4|L+hQ=+d^czYt zS7d_BmFxSra0-C1r~1LH?V6XapNE6af=a)(2(IfgSFWbB7}>U}pxM!;gq87a;bi)! z6vAVMQvmNZA+LF9fC5L88C#{+nd&*lgI5=f zJ5aeQpG!U(USivnYrGX(z^|+Qr;|k3V}kKk`;4VN7knghr4cHHR}DLU9#YqiCQEHk zD?8=51EFMjT#@;3=E_6Oau7m?LKAU_AA;DYGbU|v%{vfUp9|@O_Dk?^nxcUiz}=d> zLueGHt3#%yj^>?Rc;g)!<-qh6nGZ1hI!vZCnx*8aVM7B1In9HhIcQoHh4KBFE0w>( zJSpL&AsBbybaMpi`|Kkq2&X=2_;^AWO4F8}W@e0lCeiW^1y&qxE#s=IczBpOKW;E9 zYoMdo86m+bwGEku!!XopYhr0_qFM4!>N8!${$@D<2Me>a|(aY0l? zq{^l}Gkw}KhfjOvFc%hb;FO}wH)KA?)fjhd$R_`9eOv#wwl3n-;})ofTf=AJTGL?8 zMz){8XE=;nudU%Tx&`LTPQ_rGcB*$AW+uwRB2%wXd&H;VYU0cZ=j0{4rkD=in{MVG zggUu+Z-vcmUo;;Xw;+{MlHB7{nHx(blS8iIB&TLw;RJXG56*m;O`UG5?cPLjP%&NmaZ>PZ5xCOEvPTLzY zH|bU_XD~D5*VRJ>u$s@Qg7|TW>aakmcIqwm5-Jlo)x0$2FfrbY^O+c_f)!K`Bjmfi zy_-$W;9G5D42~eH_{(GBkG%mujfp56M}S7aRJ4UrP4cUM(Y;8;mm%HEBgrc;bKVQ9 z5UOE~7ai*Ex1f`nPjN=--jega?E zp%2-ySk+5u*Z8TqL-RH)`#uE}m+~eGiPsYy%lw;wB7rBPbe4nrRrY}d%JC)P>v}bD z6DU2&i#L*SL&()^>}W8y$0o~Doojd&iwBk0O{)M?U=x;89ZMMeJy9&DH*X^oN++~B zNYooY#j@0eA>c(~S;FC{?WX6d#-wjM((?|>RvU(ZPY|2RbWy5;$&-V(lAE3EZWe}t z7mABiUzPg=t($_YS{NsVYttj%OceNdb1%k~UJS zmUWTdNQ=1;|G%a4|KBh9e909hTS}Ht{ePnP(c+I3ZzK9Yv*=}_|92FcC zUift3R|*48{-04;TUb)?TEX)L-z)fH!3PRD3QjMWlmGAh=kvds|MC33{0;fF{ww}3 z{BQZ6_V@Z{)AR30a{ov3_UC;%Z&%(s^OjQi-y`mSfBb{-_V_8p{PS~P$^B*SUAdR! zZpf|6Ey?*q&X05Uk^8@k-2aB0JaYe^Fm?Z%V@*^7$RqpzvFPp54@BFetD{F#4d4${ z1K1b&SY%gZGnM}7r5JL19I)Rp%SF8rT%T)EOitTO@*mf{Nm(@(st)a3Gt+xv&w``{khE zq8KXk3_~>xO;l*^tCJrl6&w^|6dj?}n;Zq5ge)@RsE047S~@r=)F_s0u3@QyWfhWW zjw$wlU3VW9929yKPkoNznFEi(rMBM429usr85|Ub6kl!3@KwTRnv4k^Z)vB-<{sW@ zmV2kDVM@bdx-Uc1?D%C<_ic%vd4d{2{y-+SM2%9_jF6R;c)c zkZ{f8=T-Wf0_RMDMT}G>gyU-K7U66sW|T^W90W3kTM6V3K$b^_CSNK+aL~d<<5S4K zFS{pntakP2WZ?Q9oeMuQI0$kyHg~0bD_2>ju*?LvcbHM$gzS}2aq*duKt*uSLB=YL z*A=1}C*bntZ5^bn9dw|vQtpJyA#?1MaxcVC@k$?bsIg9Sa2eF5&R#mR^a_8N`!G5V zJZ3d;d*M;%9qxg?SJn6O;NT>J)c9Qrhcp!XP7f}JgCI!rWeE-4B@kUUHNy&mG{aT{ z>0(HS(nOd6ZfrrMZ$@P|vVcn{MACDDg94F~!@7u(gA{VGytliZlAIs)1k&779`aoO24i!dr$V8*?k&x1^{&!I-YO{I9yp1=N>g#g930S z^x#MBsl+YlpykOq(5thYJ2PeTta*nMinuxfy~O z1QVc4BUMexmN`N%WY>~;t93XTm(g5sI~G4y$bl>@c^MZNYc4#p7VG z$Wso6H?y-~UCJBubRo`oUV)oNUdy4CLfhCa#1Fy2&GKAE{%EFzBf0B2$UEVXCK@S~ z&13~pn3#l_<Y(2nwh+6O-_>6uw6B?d;~v4^bdvDzbDO{KN;C${r^U%Kec` zpi^4%Wjn}OJ_C9~Hm#16&Gg!wXtST3I2^(P-W25C!MGtw4no!+2B|*$h-FmP>uclH z%!6@KI^?);I!wogOvYbA6zB-P5w27B(aXaIwRUi2^uk8JG^v zR}<&P3GF~*Lq4Qq!izV)7voW;8XyM6&WZ&iniWtb)%{_+C2htoB)N?5I^U9w-v0<> zRq#qTDYD71Tfpd*Y18;9RPb#(5v2(W6g?nDLuO@WIi&-2@JNlPjt?fzu{S+;I@D#E z+Wq4H-7h7L)R=3}XcEYS+l)q{93PRp`R9C}<_0O=G+HXs%v zk)_Q*f1{>x6yU<(9meXGH5Fh5fgsmhJuB<$lUNW5yDDgY{L`6fuhyOg1JW08u}E;erxNk zyI)(qlRGSOa1L4z18X_($jZTfY3Bf;cWOLxS zpI3dGO~rx{@DoF042G}q&3NrPNV}(iz1G>P)~*g>yc0rxVylb7cAuVvrxMwbI}>fJ zr3dN@?-YUMtKrMwHSRDr&gqJIZ|7v+#Nu#P{W`er4Y^pzlMQ(J^b^Ayc^Cl=nKew2 zYy{h1rmwG=^}%fxStcXNXTW62&d6MB+RDyQ7fhUBIaW%NSBrzW&^ymH1ATTo858zc z2ImC$#)bBRT1oin_5$OZ$AaIJ-n<}~INplnMmQR+xJo0LVn!MV>Pulkp^?ZfR0WwO zvT7Q+u|+Zj1uIS_D7bDbI=&+`Imnho_>Qwo^-&L|nQw>*Q3$6L}h zZ?z$`Fb>Jp|A)Q1jS?fOMC% zfHVdwDj?m$(1?h1{MK6ge!f4Sf1f`e;UC_wefGI^_F8N2bI(0fn7zYf>rDSv|25C@ zQ`*ag{M+;Dm${$&x7!KV271D0^5ug54h3}8F+)1oX@~4O&CXk2rv(yJ1^j(7YvfLs zK6UkS)6N}r{of{4K#HjI^85c;Q3IkHMU{<;iF_3KW8~V%;gM}3t3<}jU;n!raUfz% z#Gr_#5yc|XhW`_OEPR8U1LzZ8UCsdng(b@s0A0h1`>y)d`iA=ogGXq8jv<;{bkR>2U?*6ww)g1Y? ze;IiLFaQ1DegY*XC)?5|AXR9Sh@=!LBhn_NlyAc2Rvbg+=X;ep4$vP8_3q_@SuS(x zFB4k%5qHP#bdBeO^8uk(CK>+R*rf?h-1{_?d(TbUtA?vpDg z`pM$azg|iiA1N8@x5WK+FL2$iziN;ZH2!5$%3@Kn{g7;zpZx1Z(EbW-7bwdDQPxbF z9#iH`E!_@Fx5hHj(3|ebIr_G8kN#v9PVs4^!x8Dwu(w=pEkD?i6B#|yO-^R%lrF7o z|6R7%YCBk#{crmpw@^B1KB~J(;LDmvW}b3gs$SM7i+7exxzbCgWByKc+DV80GC56_ zHIuF9;uB9Mo=!Zak5I?%Fs)PMWdC9*R94m}6E7#8lF51h0rH!BS#P349SmAWZT)qQ}T;gx%R{EJt|KiC*f z%O@hsAgd^OgJkP@_vm^H4EclU{q%$tt07r0pG>?U+vSp$KC;HjTc=~!9`ficigJa> z_KUh*28E25_HBnGOipH5^m?dl{lh)FPCW`Vlt26|=UY0+T)FKaIg=zGG7F<3KIwbO z^{pTmamguNsoQ#Gn;alnAK9mvF)=yuYT^|;StPH5wNS29(ta)RN;Nlglae75(*B&-y?Wd9mSeitbnfAM#$t2bV$tH1M*kHfzPN*S-y zmlN7UDu&&JsAJnc@+MdV70D>u_qoz*=N@!0TSk`C6s(5|=xE;VI?1I%^5>}Z(*NFa zjcqdPqEb4Nzj0mUcNlX2-7Yd-vsddSXJop{Z`qPr8@;9@dPm}_M*5SXMlubS^_|{x zQsy$cT97x#>L{O%?Vau+T>%*=w?L5lxFxefvSGd}aaH4vQtfOo>5NDwX7VU3l=A5) z-<`NhCQ7pClzEk$1C^fx$-85{R3L-&*ps-bf&D5{UUV~EPPFYK?~Vmisc7l4*S!=u zWhh^y+21CusXy}9KV+RO%O{(j=97Nk`j3Zy^3_DncE|x?=@hT?#N+=vww+|r+*?N# zYo|gwWBN|E%P+U&H-~ObZMQ0t5Mv1?m(r|E{9ZcAiSeHOJG31lIfYeJUY)%Cpidxw zYCyj6>mlDi>69j!g;YMB{vD7Gaw(O3Q7Uhxirl75@0Xg)iYZ>_kUvV71|2)uvg*yA zaz};9$t;x$=tT4<*)D(kR3AX+7v*J;%C$tvES4nDRwn)|eJtt8MOSjtM?NXmN^%|3 z%EW{E6hnH+?wWV?52?!Q^e>rodYPPfJ@JbFBAD#*>uI}gOFjqxQb}$|Y**_Dq$OA}Js#rG7ec)5ZK+ z3glf%KbQOUJyq)XwyYB+Np$V0Bi?>mD`x>&ITi5|?^(Oce{39#8+( zL+vGbsy)O zojc2VIGH8aYpLWJ9{lSW8p}oXQn}^FSo--5DL*-x6LIrUaNj6OU6Vf@B&pYakS_P^?cKA`Z~0T% z>@8PR3~1Ya&+6inlUd(236@<#bQis+sEoM$*&E9@U%h*~ePo`{t9LIQ74oCrUR5V2 zv*sHaBKw6VrIc^`>;^)TO{C1oW%=#pZbKTq_5$^st-kPzL*$1}as{<~FRtGt$WPPy z6`7pO(y(5rJeDshWrIF4=JU(?r=S0`YbfQVt9~33D0;W?wq++Lvs&!xlbyokh3nk} zz|!TDcxVl zlb0^ZMrH-_4tn?Yf8cVyTFR5VD~txQe~FngK0t=a!+#Bv8uGQMWJ_6JTD~nJoA3W? zv)$NPj%~jVl8Iz>X;TKtX32@S60gXVpqs3@?azKl$gs4OFK25f)Jv%2v#&PobE`E_ ze<7&XCnWpVmhwfHJjiW*5E&D)qHZsLEK|Sb@~@r$;0kSHzPc)Z&74c9 zu#tJ`|9*SfL}p6`{3l^#zG%xuxh7REAE})({r-f;VKw9@^!m4Rl36Lrm2q3p;qQU0(%?SzK1wSuHD`Aa5}G+7w>;y=;9v6{T( zl!1TRUNXnj+d7t)Q_ONiLxjG6?HMOEpb&aLD-*XSuBxPeMonfj`oA3H zc>m@iL9%2XnAlry#3waNUXm+hZ9Al&oSfU=DWiU^)<3bgp4ydLP$cK#u>+*NUt({W zY073urQ0{LcM~}i(S?VWo5&C7A{RW!$DYGq8w$vy^pP)DS!6 zVsymdh~5#MB3eZ>l;0dwh$t0NI70q%NJNH+@Q8r$$8z_<_tK;kU5w z!*+&k3R@MnFzk!4De~)uQDJX~^$P14)-tStT*Xj6tYlcBusmT|!qSI@g{AU6^4;-W z@tyVk?)ypZY`E3;m2au6VSbYtks&;{~W5Izb0AarEtpwOOjM}!uk^+T(Lz9Dx;EGQQ; z#)YN}^~v8yd>Ha)NOH)TkRu^KhU}4FO{@)B5;7;`vyh1)?}iKw=^N4|%kX-j|cw}{B7_z!5e~C$Xyja51uU7Sd0iBDEC-w zAKW~+UT{^p-r|+u0>Qb1GY6*)4h>ErzrMH~bUEmB(BYs1LA&Lg%$lIZL9>IV22BVW z6Eq~KPf+Ke)HXKbDX-VMAKcs}r${DsE-f!hPu2QCks z7dS)C;*1L%F86Ba9@s9hS)klQH?W-ih9iGquE5y9G;%G+3-7*n%e&;A@(#%z9d~(~ zz17|#ZU30MpkfrVfJm=ETG zx!_AMM-leIi%H=}#uwl@cm|$=*Wr9esWDtHBy0L4KuP!tpag+U?1 z1TSM9P#e?&H9-wf9aICagL0q@C!2*nm_F(s!Y-BdD+=sIVibup{XE)r!qSDp(uKm(g~HN>!qSDp(uKm(g~HN>!qSDp z(uKm(g~HN>ZyFAM68r!5*+1>;gN%4)Bekn-_f!oCRmVX>bah1Si08a10y;zk?&- zFgOH$1HXb_z(HVH%O@|@vX-Jcn{t7iAP2|}vVp813y1@mK`h7wVn9X^4KjfAARR~x zQiCWE2_ir^2m?M43PONoQT-4siz))yidyoVI`ZA z?$TmGq%D?_6qb=fr+Cr5t&gA==m~m&?w}iZ3$z9;K^;&V)H1a2qPv1Fpfl(MI)V?Sn*a^@mB2Am{IHimaVkKvX#Q( zTo7YPTw!w>h0SRcHm6b8oJR4`|9~+zr_mOh(-H zfH8N#pWrsQ1#W^H;5e{Zjy|BxauhbpQ5>PqVQ>ii27WQD^*1htOaYpYOo5d1S`ODuna5(BfxMl40HvSWb}nul2KTa zQCN~uSdvj#l2KG+_o~41yl%2QA70ms`OY>8z6JZiKCl<;0lUF2uoLV6-+=948`uiI z2AjbqumLOqi@_p8k{7cDYy=Cz0x%EE1z&6P@!7tz-_!;~Jegp@=58!*?a)Nw4>2iX=p{uaaRaodMEOZqX zx(W+jg@ta^WiQU^x}u7PoT4I22fK?P7Aya8S}obckxfwG_sC`QCKNWAP}pQbVUr1km1@OG9(e^=4wiwXUBW-tVo7?jB)wRYUTg;TN)JeS zv1w@`>BW-tVo7?jB)wRYUTipfg#jNR>BW-tVo7?jB)wRYUaZGnB)wRYUTjJ>rSK!u z3-BB~15d#d@EDN&GLiiFM?EkO&=95e$>K@-pzGy)Al15h8-1(iTWPyv+pBhx?N9ykb=fN5YV z_!LY5pMc5WV=xJP1SWzBU_5ZcSk5xL;U{pzPvC~1zzx4JFVkY%ORxwm1Pj1?Fb~WH zUxGPcHkbvz05ieoUXW%J#0v;P0df7rj2nYs2AP{(dWL*Rn zf)Su1r~t}?Hw@Litd+p)pd2U*%7E8EY2b#0JdPU@0yiWCZb%5+kSOY9tz&x$YJ*y! zCa3|bgKD5Ea6?NT#|fji0qca#P0;0n^) zv&VZ`KL(S)M_?kD0LFt4!3Ur@Xa<@ZGJ09!L2i%>mcR|Ij9%Pd{zs0x1O5cJ4dGrEH~a(vw4?$q3S?6Xe@mPThj1_MIV~<6 zq{W4U;2+zR!pq_^fWTz{fy)2_cbHOmaV~ZQE_MWu{JY0J1P{P{Me2=SmbbwmFc1s? z{Xsv_7xV$WK`+n~^Z?yKH_#Py0i8i7&=GV1?Lj-x7PJ9xf!3fEXbD;X8+H0=*r-$3 zs8ckdPh-#sGz1MmJx~`|bnD~Prp2OLTP(U27TpSqZiPj+!lGMIh21S#X^SN*h2ISwTkAG9<8-`L|=Ih`ZxC*X-WN;Z=0&b8bdYO+~i{KbI3Vs0J zgYUpjumiZ`E|22|o4|d}0{1x!+~+KCpL4Jm=ORVmB1PaLMc^Vu;37rfB1PaLMc^Vu z;37p}>0Q?3aRuy!3G#z{APFRbR3Ift;Ya3M;CFBY99HPW{@Tm+|I79Ne{%hwZl{;) zjD~^YG&luL0!uF1=UZC#gS}u6*bR08OEM1@sEg;hj_RYZkV zM1@sEg;hj_RYZkVL`5S$pN7EFpKQwcx4$LlUGNvU1O5cJfh9ZL{U$9|Z?whgjl$}U z!s<=BIbN<{>nsQYfxrU+z*4R5WvNzSsaBBlg}+bE=inK53Z8(+;1PHT9)SDc9;Kt>P^G8jBBXJ60<^ai~^ zPtXH&2i-td&;@h`oj^y>0kjA0KwHoTv<7uRZBR>*_M(?F3y1^uY3Qa{TI^%d7W-Hf z_8}-d`q+5ZmXx&EFqW1a7HA3!G=&A4!U9cUfu^uPQ&^xWEYK7dXbKB7g^gZ?jb4R~ zUd1K<%gAA)S6giKDlV|;JUD0A=H;-6ODnL5Q&_|)EaDUvaSDq#g+-jgB2Hlur?7}q z{KHdN=xK{(B!y)p#i#U{0&LjmCL7NR8_$Z0^r--BgzKgfv=j$LK@nh4pq(uW6b0E- z0OSYxKoUp<2_P@X1L8q$kjt>z%kc(y9h3uQK^gEGC=E)1lHgVF3djj^fb52eUXEfQ z8^{V=I7lBC4gwbr0v8Sf7Y+g!4g$*(X$6)g6fQsn>3QUIAT3A(QiCWE2_ir^2m?M4 z3PM0I2m*n?1+2U<7qEg*W}3odv_dJ76dn0tSP(K~+!% zR5tYSa*PGtxkpaG~4>VdkzQf1m!UiLNCBKQ)_0kgmiFda+- zpMj~sMYlYli*CUuY?=%{29v-?h6Y~t)nFA^308pRU>R5nmVm`z5m*Qo7|M9r=Yx4* zE|>@=fbrl%FbE6;13-V!5A+3nKyToVvb>%iv~&mEKv&Skkj=~f0eByb1MdMh*rc-? zYyvmf1f%IQ3b^qso7{L7xbZA-12UDDy`yy&bO7x^JJ1%i0dIlUpcQBdT7c%jjd^)4 zH^K!r!e!x|%?_Nx4xGXcoWh2&!iKS8wmzW3#jdYGvQok zU#|aOuK)j&>;DX6ym*^KDB?686q!LR$OLQ-k)gX6Zy~3!qN1>(qOhW(u%e={qN1>( zqOhW(u%e={qN1>(qOhW(u%e={Y_70uuCQ#buxzfd{H3t`rLg>!p`{nU!rq0z3Xir} z;Za!OQCQ(oSm9Av;Za!OQCQ(oSpHI2{!&=}Qdn-vP~VHUM5eGrrm#e&utcW#++LW# zih;IRF;G|q%23&hx5A^a!lSUlqp-BDunMHG3Z$?Kq_7I4unMHG3Y6hhFW$5U<4QrhJkm$P+&z) zAIFNE!it>2%DEyVoudtzyxe!dMz8^_2kXFBU@ce!Y;u!99&i;cD}fthvdN9HC@=R9 zwn^|k_!?{hn}8dT(%B72fepy?cfH)-X&=S6U_aOg_JTcNH`oPsf*s%+upMjzTY-gx zKD&j3!oope;h?Y(R#*rtEQA#n!U_vvg@v%fLRj&kJ=Z5*dubscn+R{r{D>A3?6}p-~qS~{sH&E-{3Cz z3;YRggInMxxB;$%Yv3xl0?vW6;0!noPJxr)1UL?kfurDea0DC%hrn;(SMUos2z~}X zfgiyEuo+kmmob*xa=5~BxZ+Ft%mK5(Ebs-G2|foiz;rMTd;T_@?O+?&3cdzg zz-F)sYy=y?daw?B1=fN!U^Q3;R)Q5^Iamhffw{n@1^PkFp=CCh1-<|?!RKHGm=2}^ zn-=IJ+q6Jo(*lJ}3lugjP)ug8kHIAH5ts-jfbrl%@Bw%qj05k1vEW@W28;%yz(_Cx z39dFTUn zrlk|;2s(iFpdDxn+JLt}YtRa`1T8>w&Tm%=ud2kM# z1!ur%a0;9RC%|!V3>*c&gCpRuA+s0%7q|od1h>I0a1-1B*TFS#6n z2fRuz*)sz$+}^6&COc3wVVEyut!rVF4d=&r7hZr?9N2u&k%Btf#Q7r?9LSbJI(( ztf#Q7r?9N2u&k%BRHCp{qOeq=uvDV3%Brx+8nfF=cuy0DVk~$Ui~*MVwU4EKg{6Ll zC02zcDTO5|g(WG4B`Jj^DTO5|g(WFPHl8ahuvvv}ilZenhy|H|O)s>wO)nHSy-?Wn zLSfSjg-s?Dso6aWM1lwq4s0@^d)Z_{VUr1kO(qntbcu)s_B6ifl1fXU!vFbRAFCV~lIJa``r0s}!?V3U#9jSO>lWYrzt* z7%T(}zQvc95*rrZe$AF$P^5>&gs2`06+5n4eo+F;7@QH+yXbj4R9S?16RQnkPI$^ zOW+T15nKRU!Pj65SOi?erT6l>h!ePo6S#;IxQG+Dh!ePo6S#O6xOf-17!+p1xA7qU>JA@3Dd4c7SidcCgLxnV0trI1NsLli&n64vvAN;CFBY90rHL&)_G+ z6ff^@;8*YqI0$-!UZAQ%&JyPB33>oajJl~CEtVLyr3)>V7`3GnEgeAz&>pk{ZGmM- z-QCi=qBWaZftH{JXbzfzrl1LE3>txkpaG~4>VdkT4yX-kftsKOs1B-uDxflW6I22f zK?P7Aya8SZ|b2D}DJgHoU*con;FtQ zyri2N28tWtI=BX|f-4{yTn3lGAK)Um0M3JR;4C-;PJ>h6Bsc+%gJa+*_#GSphk?yS z^qtzwLt!%y#V_U0m4BT@PSYe0)jyh2m~Go0I5Jqkiw6|7vMQ~3Z8(+;1PHT9)SDcA8-%+ z4eo-!z#Z@>xD9TBo8Shx4z7XU!4YuSu+K}p3QmCI;21ax4gr_CWp|gl1;4QAAov;l z1bzeuzz^Vi!!|GR3P=W*!6onqxCkzQ^WYpf3(gqUdP!A4W$-4b1S*0Gpged3ybj8N zv>**gZJ6&RwE)dQGtd;&0M$WNP!^N{uYuB_lwrD;)C4pJjX*=t0MrNdKwVG=)CRRc zO~U{$aX;7yHh^{DE3g)<0jt3(uoA2Q%fT|R6f6OY!6L8_EC4PW%WHPoSm3g;pfi2k zA&?e#2n5yG;b#MF0d2q0N;S^U>n#9zBbhM z61RZOU=vsm=7V|QBQODs2OokD!24hvcn^#P?}9O4G#CX&f)QZ2p`w?V2ogYEkO#zr z+#nao333<`y~OMw3kU~cAk>cpm$4JQ1edV|E@KN^#um7YEpQoIaF^Zx0(XGR*wV*k zY{4xy-2^wlb#M(_1y>ZZJWdP&!5|0(0uKa$R3Ift;YY#?@Ekk?R^xO{{)Cpt;1T!& z%mf2~WeMHgvV_9IN?~E8s7B|i3Z4Aldb$38x&Hr8uK(i-dj*zi7$_ElS->JqH(8`9 zK4;SmFdbN=X&;L;h2=^?ehY7fg}1^|lEPAw!ZMMOBH903`7eV@;16&S zTma|6IdB%70jI$!LvAm>CDu5BC02zcR)r;2#YsA!0LQ^Guovu6WG?R&umq&A1f;0K zrpn+=Pzh876+n6L26!Em17$%O@ERx$N`aE#RqzTZ0g8iSpeQH;3WGwRASeLxgM1(f zB!UEx7vup}kM*O=MN3X#Wmq>^8CGOtQ&x}##DUBp7Gwf3AR~wd89;iF4x|NXKxz;L zB0&TQ2VuYmLO}?ydaQ3Sh!(5I+G6!s5x}NY!0NGXvU)7YZ}nJV^;mJk-#PzL@H;pH z4ueDBH}EU?1snuFgP*{U-~jjmd=I_@--7*MAJ`3cft_Fn_y%kT+rU=vHP`|+gH2!~ z*Z|gpb>J(o7OVlQ!78v4tN_cwGO!dZ0SmxB1WW?mKv&QObOxP3N6-PZ2kk&x&<4B(T7y=gC1?SfgJz&9XaX98MxY^R0P2H! zpf0EbYJ*y!Ca3|bgKD5Er~)d3Hv!cle??jDyTHA7fqU-)_m%}QyylD` z8e{;eKuVCpkE9piId}%1f+yfHcmy7T2jD*V2i!BH^zx+#=|EbL2BZd2AQD7?a1aK3 zAQXgvU=RcXfd>KMFb=#2#)5aj7%&=)0wci)FdPg6?|`9T2pA0B27|yrFaUG_ z?Li&GdM{raV5vJ+T3XZ63bX_*Ky%OxGzCpSW6(&Ui~PU99q^|@mK6n-yt+k z*Z*1ec?B(%C@hsIER`rMl_)HgC@hsIER`rMl_)HgC@hsIER`rMl_)HgC@hsIER|## z<`uHEuCTPOu(YnQw63tUuCTPOu(YnQw63tUuCV&2u==O4`X?x8^-u9!Q-IfnUKd;2`)J`~-dk2fz>Dd+;6j7VHQ6z+PZANsooqBt>1@ z)W<9EA@~4TLCqqYToedg6bM`t2>Q^uH?T>7?q!nzg_R9BI1$+V~gO9-^@DZ2@ zCV=taT`&fW0wci)FdPg6?|`9T2pA0B27|yrFaY!i{Xkzsd#}Jba2A{ar@<+35}W|X z!7*?Y{0@$Q!{8A34g3mz0SCd);3x1SH~@YC--GYKw_rcm2lj$JU^mzWc7h$?8?YU0 z153anun;T&^T9kY7kmlkfZ1Rg_zX-1qd^bQ9drX-K^M>&bOIeg2hbk018qSY@D^wd zT7j0J1!xW$f(D>Is0ZqTI-oYF1!@`!dj-A*TfkocX&nR za0vVceg(gPgWzZI6ZjDv06&25!FS+WupjILd%+&C8|(r*!4B{Z*bcUVt>A001#AYJ zz(%kEtOx7BS70qz16G4oU?o@qmV;$rDOds)gGFE=SODgOVW2#C1H2B(fwG_scny>W zr9esWDtN_E$tyGu%mrV9Ibb%J1-<|?!RKHGm=30a&%jjhDVPF20h7VUU=sKUOav3a zc<>?k0K5;zf%m{z@GckwMuSmcBp3mjf+nCbXapL92B1Eu2kL@4pf;!lYJwV|I;aM! zf-0agcoS3t6+s110u%?uKv7Tx6b6MrK~MnX2l+q}NCXKWFUSMpL2i%>R0;gSWvTFc1s?{Xsv_ z7xV$WK`+n~^Z?yKH_#Py0i8i7&=GV1?Lj-x7PJ9xf!3fEXbD(b;482etO2XRDzFl) z0L#HLuoNr-i@_qW5G(-m!8|Y*dwvWhVF>%mCBDH1HXi3O)r>z$aib z_!vwAAAyNr0vHcIROrIz<@$fh%k}?%a{ZtEf>*>+zrs?#!cxD&Qh)Z}y&~f@R21)l zvEW@W28;%yfYmnL-D+F*AG{)$ZIj>LqTw�VdY$5LqT(OPEv2w00 zU(>P$YzCWvm2>TELqTw�VdY%Wk-a*Aav%VtGDLYr+JknWEocMY0flC*%$)yW{OBVu{E(9)J2wb`lxO5?K=|bQ#o4{o@flD9)m*NDMdD2VZ z4{#A&04@p3UM>j>&a%lRVQFzmSm2VU;3R!c0GB*vlS`fgm(T<*p$U%A`7k&HTxOF# zmf5o1^olgqO^POW219S)7Kv&QO zbOxOa8@*7y$Z%e!!A&Hrc%uEiFL{&>S=aZbZpmHE5|0s)4GY3aAV$o$8ZX zI#pOYRaiPzSUOd>aVT)(P*9G?aRX9X+<+9g0V!|;a-vuGXX`BZ3H%5SfFHp3;5+aQ z*bcUWufZ0u8EgU@!3MA%tOH+xwO|cc4OW4bUR z>VVpy7O1Jv#pkzRKiCKMf<0h2*adci9bg++4wiu>U@=$(7J>y}K9~pQf-k`wFdNJQ zUx1n5b1(x;2h+f3U@G_&OaY&O$>3u!348=5f(c+e_)wwCoNh0_|9`pu|4**}bN2Oe zSV>b@NmE!!Q}opcQSm7ef)<3~*a0*!J&sodM zmd;uPX+av08bpCe5COtL81R7rkP4*mBkLpZ5Ig|)!9U<0_#4~>e;LYqS(|{ypb@YV zl2iILprt;j2kHVV`P$h^e$M<}RxA06!q!Jn2owYbKz@)9B!NVb0P=!7z#V0I3U`zR z?kEe~Q5LwPEXdAYHVf2O7)^^irqbe$slXjmfjg$@y{uMvatf^QD6H@(tnetT@F=YC zD6H@(tnetT@F=YCD6H@(tnes4wHGFs0w#m^!8q_97z^G7W58%bh?mt$T26tLG=-Hk zg_ShLCv+YKMuP63E3kR0?$w!=PM{;`pvdvWi?flbu#u^-k*T;vpPS$YxDKv?tKbSq z2A9Dl!*MV33-BB~15d#d@EBOc<&fPi;uIEf3X3>}MV!LDFM)es0{6ZI7IE6=4v%a} zMq4b&DBN2XT%^wha2}ikXTce88d$Q@2Rup33Ggl05B7n*U=P?0b{Tehaq%EGut3Wp zn{v{U17ru;Kvs|eqz4vp`Z$&$6_z0tmLV0EAr+zQ6#{}m5C{Yw2rx|X;r_P1o-1S~vtlf{L?;zD6@p|H46bY!m%pgm{@+JZLVEzk@!1&x8_ zaD9q~v@`(qf#q=RQ>m)gn8 z=sstG`hyuck?c^r3e1@7Pq+`$#NgDY@3 zLEv(Nz#VRZ%LxJ(l>!%f0vCD$7kUC0dIFa~1TKLH((%GvCXtpjw4?@6z>P8KMQ^dk5x5K>a2Y_bkxd)Gdaw?B1=fN!U^Q3;R)Q5^Iap?h z_AZDaVT)ZPjJ=WC;AFV2A9Dl@P{J%BQJv$M1{qL!s0?-pd2U*%7E8EX+JWYGRR7PAQ%98gI=H~=%LWn z&A^xI|Cj6k|K$2VcRDY(C2@r%afKyug(Y!?C2@r%afKyug(Y!8u4fuf3d?Z{%W(?J zaSF?E3d?Z{%W(?JaSF?E3d?Z{%W(?JaSF?E3d?bdKY8}sz_OlhvaFZe^KuurO#-W$ z+G2%AVY3{C&2ki$`V}5~1%Ol_B}m~%t{33BBG->z?vY>w7!HPkcfe3E1PlgmgF(QO zoj!#nJ4Jss^#grDA7BYlJ6l3jSVB}-LR568b2rcxbOD_~C(sde0PR6L&=#}-Z-LgJ z6=(@sfGWVMi@sE=E()tI3ac&(t1b$wE()tI3ac&(t1b$wE{fN93ac*K@(L{_3^Tl3 z1wej~4$BCyUH^>EY0voH^IXf-cKvs|i#DQ3l9;5?lK^kBgK%c@g zfWk6>!ZLuuGJwJ|fFS2i|L!?=fEmCYLFwa;puinLL38>v15H5_&=@oV4M77?AJhYN z4V}H5H9-wf61)oBF_q5lmy}K9~pQf-k`wFdNJQUx1n5b1)rD z1D}DZ;8QRKd;%tekHIAH5ts-jfbrl%@Bw%qj05k1vEW@W28;%yz(_Cx3u%CuNI)fP*q3QMO7OQ#A;rwU7_ir3k_ z94HIQfY(52Pzn?Vg+M`I309vXKP~xyC0N~L307eVR$&QNVF^}Y307eVR$&QNVF^}Y z307eVR*{Y8$_g@qXpkPH18G4TkQ!KC)kn6xs<6DO2&YdN@PSYe0)jyh2n4D8$Z-~& z0jI$!a1xvV$H6gh6#Nd3fWzPr_znCDegOx;&)_HUBRBwl0N;b}z_(yO*a!B4JzzK3 z1$KfR;2W?VYy(@t*MMZ6V>2zA0LeVZ23ppGb%11^V=XOfz-q7xtOP5-aT@E#ZqMu8CuSs>)j{c`>Pa{d3GT>mE&^NLzFS6DVzST5kU0m4BT@PSYe0)jyh2m~Go0I5Jqkiw6AFTiu~3_JxE4)QtY zvv5#YI4CR}6c!E&3kQXTgTlf=Vd0=49P<6eQ``Z6g4^I0xCw56>);x=3a)@;a2Z?z ze}IeN0yq!OfwSNYI1NsLli&n64vvAN;CFBY90rHLZ{Sz(3pfaV20wuxft3LLz^w!* ztOO{&qtCZsKiCKMf<0h2*adci9pD?V9c%+z!Pj65*bFv-jbH;<57vRNz*?{dtOl#V zO0WVf2g|@xummgyi@-v#0L%yTz+CVpm;+{mS>OvW6MPP4fazcw_zX-1pMoji6EGQk z3?_k(z(gVn#! z7N`kofa;(cs0ylp%HT~<2~-3XKzZ;6cwLeEk(V$Ui~=LU2rwKB1Mh&LUS=aO+gdT7&HP6K?6|VaKTGR1yX_(e&l@to`YxLDR^Qy=H-119)XA80k{wT z0r$Xp!!KUmzrZ5?J!o7Pq^=?JoG=?v^~Y zk0noqCC}Vdygd2rWeAc$B1ixhJKEV|M`5v}u-H*p>?kaDau@b;7qi_3ML`iz7!(2p zK>?5-xK}8T<6fb_J(u8r&y}6d89_A20MdhWAT3B^khQ&g?*jMU1@65I?7izk;n5Z=JPIp33M)JcD?Exf*vkr!wv^MB#Cu+` zI>1V!wpeLYSZP$$ppTVCZK+0!6+&$(OG_C;vRAA-=mxBEB+4eM915$@ir45<3X}w| zf>%HZP#jnuOg!lo8)z+p0iZwV2l|3Opf~6RdV(H?m0mHczKH^>z6z_p3ah>ftGfB0x9@13nN6LO?JG0)fB-0e%!c4NifR;5)DmdMQqSYOA#Bi3LCTv8?*`QyrLglXTc=!5ts-@ zf)QXCcn1sxR;~1rty(FpS}CkrDF)Jc0I)KuoBGkx7xV$WK`+n~R0eN?N}vdc1DQcA z$OK|QMi31$fb<|8NDI<{)F28(8m4$fCxG$bL+}B3AB+Ru#i-IzMWPa-vPDHlMMQa# zPa^L|UW+^*c`Wi^Y->IHGq%r-)V&4I^qq zREQ`QQ8*%RMAnE55#bR5;g7@r3cnhDF8pZt&*A&Rw}r0@Ulu+$e0un#@b|)ph4%~Z z65cwzVR-fMH^N^D&mW#MJSIFc+zWdgb|)-3>~z?nuA`+`EBhTaXm8hSSLNa%skU7?#oSBB0Hoe?@IbZqF* z&_1D^LR*H`53L$nF0^=PQfT(j=+N-cR3Q&TZiie7IT`Y6$hRTeL)L{X4Ve=%HDr9q zsE|P+Jwn=rG!3a8QYoZ#Na2t?A#ovTLqdX|2j2_69(+FdXz)+LdxEzFuMS=qJTrK5 z@VMY%!To}}1h)=u7+gL0jo?>;^9Sb)jtPzo_JSS<-3dw#IvsQ<==-1@K^uaW2h9zd z7Bn$vOwizU|{aR*ud0*LEcmEu6NZt>mBh9c)Pq!-b!!2 zH^ZCcjrE3leY{RyORv6H)hp)}_maHqUbGkPr3!c$a691tWA8nnqpG^M@i}+uopx^$ z(g~SBzyut~q{mJNl_DVaG9*J1NHdKhf-@7_YwxJ9h`l2!VpmY?zKXp!?25j2v48vQ zbI#5L6DI4o*8ji0qKoBz*xbAKzUQ8^&vV+HkF0N6w^|>!K487WdV_V1^#bd^tS4H# ztxeVi)%~;3GG8@Z$f(!+LO>8glY&?6RILqNvMKQIiWH_rHFRiV#{4e=vG3v5W1PrO@wYF zbOWL530+6%YC`7`I+xJdgw7&#CZRJ3olfXqgia%LDxp&dolNK?LOq1ygkprEgia*1 ziqJ|zClFde=y*cQ2`wYEl+Y4F-GsUbbrR|z)K2I)LT!Xv3AGSvCR9Kupis`QgkB=_ zBB2)uZ6)+Pq2~zwhtRWxo+0!!p{EEvN$3eej}v-~&=x|E5`xwRZ42sY&L%<+6MBfy zgM=O+bU&f{2;EEQ9zu5$+DPawLK_I(N$3tjw-Z`V=r%&swsNR#@qh=19cMk%*Zi5i>_3A8;h1=SW1)k%*on5j{sDA8-_+s7eTpBQ%y!kkIag#t<4! zD4)4b(5N+Xm?D20$o$ROk=}TuRBMZ3W&^;7tW^ zz%v>Q;(&((9Pn@;20Q>>Q5V0gz)K3esK5&fY*pZS1)fvjKMFjnz%vRwt-w;aCFT9j;=Yt(KQD+Jmvt0#~k4Bm;)Rhb8xZ>6=!g`24`?Mz!@A4 za0Z8iZgp{&0-XxrFq>b4!)y+4n9TtWvpHy07q=+TtU!|jixpU;K%)W;3e+pGPyw8s z;Vy7?h69|P;Q(i6IKbH%4sdpc1Du`V0B2`7z}XoNaCU}+Bb1B76~Or#{!fQ0%^?cR zSKwd;<|!~&fjJ5sq`+(iW?3v2om-yC*Z=2f_gIYW#x~=1<2hrCai6gsM*sgd&NEIm zRvMkgBI8(NK8*b*7}dsDqtM7POvB;-9Y+42`QP=w?0?$7$-mKmi~lMZ_n+nO@h|tc z`4{?+^w056gHeCEf3!c~&+vQwns0~iYZ&vt>D%gi-1mU*4&M#FHNFdA#DAi%+t=h< z;5*be(>KYt2aNYe`G)#ZeJ<~x-XFYQc;AQ7{OIGM@;_t!|M$lF z+C9ckP;v1;-it8DH@58034KQBQ$onl@H%8@h>)QnLWYJ285$yFXo!%ZAwq_R2pJk8 zWN3)6H$;TJAtLMz5g|iEgbWQ4GBiZU&=4U*LxcJPV z=_b@gsFP3!p>}~b*$NgDT12RkPy?ZQLJJ8+2-Oj)CA5H0n9#9=jv;h3p`!>LLFjNo zhZ34eXa=DJ2^~NPnG$orQzBDh_HS*a;>~a*-V8_L&2WUQjoJRRW%MHCZ>U55h6wo^ zqRY59%P%L|0vI2nLr5oB8~@k2q?)9$97DR%go+6j5!#K=C_*C%6%rajXgHw)LIFbggoY8y zQz#!>H-9tv*t!v6>qhh(T_?t0{5moI;^-Or*QW_RMd(RFPY`;X&|`$Q5PFo*BZM{+ z+C=DKLJtvokkA8!FgM|I+($Yw{^HSNmcoCqhGP3SB_XA(Mt(CLK!Md&m_rxH4a(8+{OBGf}DPAEnwO6WvFs|c+m zbONCjgpMb)oX|2tO9?F@)J>?1P$!`dLfDhw8$6D5ZG>70wGe71)I?}8p+$rm2{jO^ zC$x}Igisx!T0#p5g$ZFVgfSmOx}ymlMd(OEM-amP2=6_NbcYf;gwT9K2NRk{XfB~S zgbpG!o6symGYQQgbReMv2<=a3I-zNVrV^S$XfmNmgeDT2KxjOn{Rr(#Xdgm*6O#Q_ zhHZ3(&;cqZR7R+jP>4_op>c%95(*O9ozNIUqX`ugDk8KSp;3fJ5-KD#oKP;I975TI zvIu1o${>_ZXb7P+g^Hgb^f;llgk%eaRXEu~0m&8$NVZTwvV{VYEfkP!p@3uy1teQ2 zAlX6z$rcJowopK_g#wZ-6p(D8fMg2=BwHvT*+K!yb_qzfOF*(+0+Q_#kZhNLWV-|; z+a(~`E&<7Q2}rg}K(bu|lI;?ZY?pv!y96ZLB_P=@0m*g=NVZErvRwj_?Glh|mw;ru z1SH!fAlWVf$#w|{+a>bxFWkmYZ0H&<98VA@nSv zX9zuwDCJUH?p=g75W17l9fWQtw4TsygsvrY4WX+DT}cQtH{*VW+L z*uNv%ll<;MsD@BAp(;X^genM?6DlKAN+^WLS7OV+49_^i439`W5!YdcM;&H(MDyt0 zxr8voLS!hsDn^Dq2ma(5o#rb zeKf|0eKaERrg@~|{c?o;EdDF@vxu;tMTGqnUu4?@2a`i;=9gnl8kgV4`}ej@ZE zp&tl+Pv|>B-xB(U(0>ViP3S8^+X;P1=nF!h6Z(wMr-VKs^f9522z^Ls8=(&fy-(;p zLhllKhtS)E-XioSp*IM{& zp}PrfBy<;{4TSC_bO)i^39Tn|8=-ZCZY6XJp_>WaMCe9BHxRm>&~=1Ff62>K^p_l6 zP5*iop(_ckC3FR$HH0oF^lw6!5xSJnC4^QJx|q;Kgf1j>0ip8=ok!?gLgx@Vo6uQ= z&LngOq0QoKTEVl+cNURuNiB=mbJ52pvyoIiY2QmJ*sn zXbhpzgo+6j5!#K=C_=e}atLJ+$|RIQD4oy{LTQ9j38fG+2^oa^gnWd&ggk`Ygmi&Q zZ9@+rv_GNgg!Uw~2cc?#vTbDnLivP-5y~Spl#nbTxL1}CplteASyrHvWd%r<6(CtI zfHb_r6|xl^sZih#LcbGwmC$8`E+r(|kt<-!7MYbJky$x=+CG<6+uLy02B~&+#nO=eQf6Et+w=Kp`|Lg$xziqd_SSkPK|NoT0KPB)_ z3H-lT0@&Z>onQ<6M(9^UzYy9%=x0Jd5&DtP4}?T7%q@#vm?O~(b0m6Ujzllak?4gv z61^}-+sWRSguWp3Iib%8eM;yPLSh8X?THaIM`8rc(Kfp7148c;dXLb%gx(?aHleo& zy-DZ|La!5gjnFHEUMBPsp%)3gKxiwW=LtPWNU%HpM1tLMB-kBCg57cS6y5P8p(hAE zPDqTK`5j{1%#j#3bMy#Zx0%o;LJt#qh>&2F{9eH-Il7Ip3*G>6bZgk}?(MQA3W8H5fbbO0eS zTH)m)Mk^dmqko-BXbPdpgeDQ1NJwyTZe=LxatY-S$|jUWD3eeIAu+P!_Qc4Jqcr;0 zR6;3)OhN`BKOr9>FCh;hHzA#ni;$C$gOHt&jgXa)7-8|48R;wv<^M(KPeOkX`kl~k zgnlJNxig<~XFlc5e9E2qlsoe&cji;>%>Rz;eM{&YLXmKx6@~+n03v5Zas2UWE1}v&RK+=^)D z9Eo-gXt-!I9ErNdk*I4NiMqy-sB0XFy2g>HYaEHX#*wIN9ErNdk*I4Nz3Ky6_!PU5 zpZ|Zyc*eNbxZb$P=rP)1&;LwgFF5I+Y1sYW`?vYG`X7Ql{+Ies^Dps7{PX-1{ULw8 z-|zd~_a*G;e+o|UUkj)AW4<=u(Y^y=4}Xy_)8~NQ``f%*y$^YB@m}Wrmv^amp?9u# zymy>;nAZzu@;~#u;@RX`=lQqiU!G;2de6b0iJp)r-{W`x;r`P7hWknPM)x&v=Ke%? ztNSST0qz?2Zte`XP5)lsrf=0B(r?u-(@)cv!pZu1`b51{FVGFwAFeN5Z@8Xt-Q~L4 zb*^ibYq4v-YrJcBSB^_}{_OnN`4XI&U+-MwJkxo+v(b5obF#A>PRSdNKOA2=UUxj^ zxWjRU<4nhLN4;a7W4vRWW2nPz|JnYL{RR6&_M7di?I*+O_XYM@_Py<+?U{BvoOplV z_8;4Qw(D&d+Tw7^{V3c1wrbl*TdMUh>sN5D{R!&^>y_3stV^t6>jBmZYrfT|{i=Pc zy{v84)@he%r)k|;v{3yB}Uj-~Wv0bf-mw|Mb*#sq0vG>TPCp zn$WP+Gg8lBOH!}4n$f9!RTpVSbc(u9Ty>@yovbd3r^eaR)E=7|og`Jmj~jj*TQ>X@ zP)+QsIuWc-=&M==*2fE#E^ll%qx;E=QrlA7*z(k+aM8Zlwb#jE+(l)uz<4lTuECs7CfxEr+NI`>I;O)Cg%RMci0tM2Abw@EOBru#<<+ zG@}LTws|S@*eNLo!}|*;)&42_vr|(J@SD+msTw|h_;~g&_ys2;I!u~MDNQM5SEiJi z(L8n0?!$LyR}J42A{Z(!8ZJ~pGny+eN*S3ll3krL3LYj$-8W?T5O)9Ybf*!`R`^*IA9IS6#HmT*DqUuP~z?dC_R^XfJzgbOVIo?yEWoLeTrF_J9yveN`hM z1gB8J*)+7}Gouc9k$I_kDSO_$46NIg>Im})_PBW_Shw|6b%AwjU)7OdT@xzZoM=vD zPneU8C{vmmvxYrs?qNnP^0tE43tneW6?|(mSM}ArVKr8&yNb}#sEBb0&nt8m`z;|{&X3rYGTg~NtHQ#E+GNIAsHJ_ME)g^BjZ?OLuZ<^*3sVR84 z;9>S$!84lCEpL*VO=g$6u@ z-R9yx8Y5jd7xmS+TxMe*jsI7t+0a+B-C@@E)x2vr7xvX`wV9E=nn$c=U0=-x&8QU` zT}F6`u|OzXLSYOy!s?21{O7Q1{O6j-DkCTPPh!{lPqv!JC{3-umR;vxt{F$Gn}nv$ zJW5?s;jduV`wz34NA}fB)r=$5P2!qL^Kf;E$M0b`_=~LOVSP0@nsKPQNnGPK4v`A@ z3e#WgM!&_JFYobf^KD}{`Jf^mtS%9n56yY%l81c{vzvXd`OLX}HJiNV9Hm+BThDIs z-R>|CQksi=7qMG?S82vemv1#Cfnq}A-JuzhKa;XqO@g27ILor*EOw`5$7Mw+f;d^3ceZyn+hEyos?$`&NvOPsJ50r! zq~;*Isb~`<-_h(Y??laztVx%eF{a{7UYFO!HhS~zrld?vYIIu)P$uB1R#wnf(8jh} ze*DH}0$<|XRjLY3v6{e@5;ZF{19%eG=;F45;|!oksPO#d`AZ9WEhf+-yvMV}vqc;0 z`QBwJZX`8tJ55E6q~GO~rzw#;qBO1PP7%FGF%5-Tj^W zJM9+t_oie(%)QmURa@u&)M`owq%?19hGIbSniot(fC@4SGPHXNGBZrYf84jaZ`E#d zKkhIU{gIk=c2lt*_(a5at7r5-EWIjx20>9b}$$WJ9 z&fBrt9qw={@E+dIbY?pb{%ChH+xezqKKi}-z1jx-75E68tf4~V9%DBZ?~xkQW-8hv z@A}bdO4h@q=1t9ztVfrc`%J}o^z-!dw7c~4byHCu{RsUCZKJ-_YAVJfHH$Pu5gw^I z(v*CM1-=M;q1_$$(#FUCkFfLj`2Q{ADPyB?wQ(+-`d@4uYD_jt;X8j`|1bVe{4c>7 z|65`7e+qolZ-IZ7e=mPAoawjvzVW^5d)9Za?|L}LAN4i+j_^(QRr*HwQsCtNcJCYB z$GvxYuk@Y`r}Z1W^Su+jAvyB@)bp}uGmiXE^DOa1JaawcJ>xui9*_GM_b2X`-J9L( z+?Tmeb1!k%xes#h;~wMAg7547pnsr0r$3 zu5+E|TIpH@U(K833c;A)3E#^5!1e&-F&bDgW4&CVm7)0`DJ;{V<8h2u5H7RT+5 zHSi_8<&Fl&e8)sbi6hV9vHxQK#Qw5u zwRW=BsfD$f+MZgmmZ90$x9nZ^47-P23oilxGvlgSjqD!T%|6;q&oSewUP)CT*Nm%* zB~+vKN;TuEX60t&X0VTQD{W?6RV}F+V>RQlZZW9}XhvMtE?ufJ&A6&vxh$8lPjh{6 zk*r?2RB2{hRxg(GSO|^)2{Qj9RL`(u|m-)VfrCZp0*|c1g`IW=wJF zoQHBAVt?hluA4DMs-@~-ml;#6dgQSqkJT(A7lUz0t97Xgn=whNSGi#$vGSRb<5T)RZGF2;?`1ijMI!MaxGO;9cE0iYpE)+ zn=whRnN(%k%$OqBLY4iO)roj1>=fXXA9M1V0^K<>i+EewV~M$IMZT_6npsbGs};kX?d0(KR3--qq=Z?_Ihnt z_U&VgSc6dM*;i#>rR8T|ZN%!8=Hl#&wLtdjwAeyr?3WDqAfqolV)^+MZKP$#R99LIsP|6V3Meh0-#clG9ceM( z;5%uv>}fIJ;eE9~zY2u`Tzn_(r%)I`$am8I423aYXmtonMh5jy5_6V4F?*smDti(< zl%nR@#o5K$ZrK%37?PXoQZ?F)DQ=$id)Dt-QPv-+Mof}(J?n?8AGG4EAB~tI=ULmc zwriuazA|Hqoo8*%+N_Pq;uTBLbE(=2uS4;3sd@w=kOW;X{H5?0Ewk`fBX)qSFIjhG z-KAw@Z8T#0E6vqeS8M56*BG(sQd9V4;g{Nw!tG{kntan)O<7GE%UTW3JGHM0hX1iC zeN{1tX>woH5{PM%Q0dZEvl*MHE}E4!OVhHB2I~|0s%C@r@k%u$YlvpengnfLarG>r z3PPJ#WL>J#?M6(pb-nO|!VffC;Wi@%Y#keO;cJDjY4*a`jhLY7nqK&P;q#iKaO;p5 zFm+xVG|P@F;1A^39c!K2%$TCnHOeW zsOgzc8fL6gK9N-2<~L)4v};VNF7geD0cpoTnC)cvqq&*w6ds6T?wRLho~L;-&v&H6 zBz4y^YBOpzZ{{h^4~&>(?=Go3CnYB7ySyr+&iPVGOcHpdYjeJw5|b2O=}vOKk`j|7 zUg_34UrmWg8n1K@I$ukPjS)|#bgwyIPl=80qsu(Yxh*AD+*fCFzL^p$>Z=>!d@Cik zTVLHC&bL!yqx$M*JKsr(jqIyC()n&mtgx@H$@yMNY(!t(@y_>CV#E9BGPXP4Fk=Nm z$1?WK*jMvq911mB5`3jP0BW?P_`1AmKQksdJ_81jtNAm^pq40>FI7XK_mebVFMPD{ zQ5b-1F=CSE>lyH2XU)ujPC)Ve!l{K*wUokppo&YP&!p-`XfBfKE7e)hTol=tR{=4N zWyq(IsxXAE=)P1lxMztCpGpmK5JlkEO@7wDiwGr3k-NJqgAYlQnH5oBQ`qPh0KT<15Kgx&!>&Nz*J|}$+dm(+U5tHOh zPoI)Lg>6ZnYQ!Wr)6=WctJs<8)kaKGGd;a1y@;KaUTnl9Gt<+v)3e#x={ZJB5;HyB zNH^Fy=}_Q`mks%D$an1AbOs?RUM5sSzBglvmkl|0$hqviA)mu5ki3jZ)r(L{kTj4F zNEHluV~Utb6^wafl9=gIb)FHGyv!vv-Pi8h)QCn7upJK z?4m-L09L$g#4{tFVHc112_}FQFO#azz_{XNQU#-`sN`k3R6T1(6)hWb=#WF%>LGkJ zLeer_stz-wij@tq46(3FhU^W-B`af6H4N^Pv`m*OW<(_|b4ktol&D~3R+jc~+QaNp z%Z?i$bVbXAF70!$4zvv4pH#gB)+Hy?rD~HIm6VL7tw~$ME=#)uE>fIKs;)4iz{#)z zr(KYC0sD8_g=Q4^n6Q0h+L7$?w11_UQ6OW9s?Jn13QR0fbySKOT_9B>R*zWC){NK$ zp(`FHRd+z>l7}&=f_fH}L`;{eOU$U^VQIEB8@nQHGAv{O4-*cBim&1U2}@J~WsU*^ zOH|pxAWji?_{&(0VD87KYbLsNN zv(2cYT&deqx3SYxe}VfH<&vte;XXyVr0PR6Dk&FBy+8GSc3SEyaFOC%QuP2I|3AR4 zwHRL+ZyHY+8;mQBvy9`72Kd_l1Y?{r)X@Du`9Fl!{|DjA{;T~b`P==+_z(2g_(%EE z{1*6z|692Be~s@v-zxZq-{HP#FabNr`>Z5Oor8XMtRcUtNUNM-@jOJ%>aPuNy=9~Asx z{!8rv&daHo&hn0dKaNo>@7S~+V7)kOV0kCNAIC^G%;8Gw0pij4(r_u63rYg!Kw;lA3u>$TJ#;KE!B;mXMJR;Km<8y3pk zDwbR27{+p|(|Ujqi~Do_gaav#JeFGwzJL_(q|F9jk{C0%P+sc=U%-onS*6YSE2T#; zW0(NPX=;|ek2R%7P~%=*wPyARZfw=nb>%5Nf*V_z*aE;ZpLVA9067*uhTIDW{T(J7 za$j1Hq{j>nV!|K$H!N*A6hE+I5jttlx2E<0K^6v5FNW^}I6N$Mby^QFWN~TArEoOe zp|h0N;GFss3LhA}KSIGV`bCtT&dVoJm zZGgD~_K%pWKu_xd3N5tGG0Zu}{sD7VKm@>|xmE|2)b5_v14LR}>evL|<+H!f9M8cc z0GHlL`vMd=(CMADu-e%JlvFqM>DfW5$)n1;8!P)D*n-K_9&uVG_zRs9!0c^-zP%Wm{2x?P-KoX@^34w!LCw^`9| zMZdA{ih&Ww72lRBC(OGlzAaQmzngKzw~O8{dY^q?1f73e@olO4z>EvNt+Apzitb=P z6uknIvx;s@)$`y_(rtAWYy*iazAdl1(~K*=U36a2dF;oco3hNf;@eVnHB1>RzAaUk zW|(owx0zI(pPm{A!j09>@`4F}*iV)hQjEBw+(joAoydMJiW+fAx%HwkMPt~GqTP+S zWZZgDT~QtTr6^*?CE;d8hZY^mel0o-W~3$KW`Pd^AF$s7+ni=xP;QL{UJ1Oyeh<6@ zPbe9;E>*9l#0BBDvcOY;r`YF~AGgC*ig62F;AtZ+8MhvIIPft0Be2PgOTx_p8v+~H zXMwwXW?V9E7C0er0{bLz6BM$d+){Nu7?+e=m#UR!Truu|5ira{}JIuIZ z+)_2$ZpIbkma2W>MN7ubq-re0peVOgDraSK(z zqMLEWxaCzpy3Dv@-1)EPzs_FC-v-tt4KuC?chQidA?(#6*p(Mogj=d$c`>dC zcm7@Zcd^&<{{t#TxTOl_7vqv}>r%DRj4QsKe@6Zp?DhP$aFOKOx>TKM#ueQjcI&WP z*&D;QzynIU&4em{2|S?U+fuav9#HXZsX7qej^x|w#tL{lig3%ThQZsBgj-$ZgomCk zM;YR(Vc)tAxh^a+jzo0EfWr5>;++2)r&qmG?b3 z1Xh=*g4NwPP&%&Ch55Y4%s9|FanXvr73}T2yTKH2xkS}kFeR9r#`45fr-La$9qRIwQ0eMSM z4TS-E9H?8O>P3hOcpF#g!u-&?jW}>N)a140wXt{ejx*!H*TikLLu=W4LoWwQK-Lmf zF|Y(o4euK&uBtQRK-0uUB|}Tt`$PAKi-4qwi-am<#DSoprpQ&~VjmRgMjXhQxTbJu zA=@@|q!|ZdhK6#-=Z z1MNysjXVh+5lB~}>T-`62ga4C+TbbYmb~#T=(Z)xQdfPK&A}Bg*kOEQd}h24zX7n-c+%JezX7=3xWQO! ztTxVp-vKz$SPH)a*Z`*j4mD;Q(~SM#w*X4ubU?t!f?or085aKz|2Ob^0Pp)>hq;0$ zVYk3N{`LMF{A*#(;2i&{{uBL6;a33~{Kxtag?Jw~c!7l@3`AxqIW)gP5 zUV_hj@B3bdUk7*+ei85<-+K6cfVIBWzH@x1!Y>3Yg_8vhzGLAx0%pS;!+ySM_?3Vn zU%;2;Gkq?f#k<4%4g4(-OrP4HU*>%BL?F9WWIUkf=Mm5S@LPemdam9cf#)pUaPOsFV@e2Qx7rtO~DSmNss79>+|)Q zuoGe*y;2{mkAnRW8Mu5M3G1E20wGYggjD=qr9OlY!`CSf}Ir+)?weu6_yYNec&%q4JL(YxxTZ7lZ z*@=r_Cgo)3N@usT#kmlEZ*abIrgMsOANa+=vCdJ>Va^Qr%|VCbPsdM=ui;k*-*vp| zc+T-S{O;gJ$2!M#u-oDy$61b(9V;E(@Y{n69Y@2yi<$82gZnrt9b+A%;P(eJ9Dawx z{wMqb;n%Pa<6Zl!@Ee4W!}*Jiupi?(`x^U2_Osv|#!7oP%*-sb9}T}mIMY7GzK^{U zev5FFeV9GN?uTC^{L}W6?Q7d7@Oy->+McsLZhHuRk#L>uI@=oCMev)1C)-xS{*4y+ zRl=if^KCP2Q(z{i(l*vM$~Fvsnb2=@SpT&C1iwxAiS=FUtJde>*9jl8ZnUn08J;!P zi>zl^PqwavUnp#`F0>wPoo}5frg5BBX!TxJDrHE@5-G`DZfPd8~Y07uk34-zp($J+`+y<`7`?#mzV}D8cr<8x7{8qD|{6@1$X_ZowlA-*src3FP(kZ1w zN;}H0HII~TlwWB+DZMDSYkrhpY6i+Lv=k{#l%KONr2HJ^XY5mypRyh)<0wC2pGf(! zlpmq|n4K!+DN>#+|sB+t>{#KVUba ze4pJcywr!$|o!_l#g3P%X{1+TJYl*(Sjed zh?@VHMb!MqETZN=W)Us;F^g!yTbKv!JZcdw<`Ii%L7Oe21#Y&87P#3WTHt1jXn~t8 zq6KcYh!(inB3j@ki)g_QTSSX~$Rb+!gBH=^AFzlFaKGhJe60Jrgy+T4~p9-3Nb;5@hH|$5n{3slTh5YzYx=fm?p$j z6zgUQF;j>cLL4Z>0Vr-gNQl`eZkdDP=6OQQMRC)7Ar3}y;~^++I9!Osgg6w%^+ySD zq!34-xb7Gsjz)3qu_&$yW7%D85t;ugi|7%qvWOnxN{h&tYb~M$ueFF4yw)OG`dW)< z>1!>brLVP!jIh=sGQwJm$T({)BI8_P5iRu!i)g7=SVYUe!XjG!8jEP@Yb>Irud#@h zzQ!V2`sJ37G2Y89qKCWOA~M9kEusg!%<>uj`(>6-QC@1NT@&e26QvQbWe9NCw z{(%y9v`cA~Qj?NNX%W)$7s_*)LrOc!bC?t5+02FVET*G8letlzVG)`242#IXXIMlA zKHVaEg3~RcCpg_AdV+shuE6_FvxpwyG>hmFPPME>{VA3!QJ!qM3gt-_(LwcIArt-K zDuuM%Bjw#vZbZ4#B6{SNmV5Ea| zo>I?f&u~wUC)MMI@&B)bS=9gMntw{*pAz_|1pX<3e@ft=68NVC{waa~e@lQfVaF(K zD$0@C6e%Z5IZ4WiQcjR^yp;P%xi89L+CC`rw7sR=OUgZ^+ykYlRiN}}r6_eRBxQ+| z4PYj`CG)2+9|=G%jsNX{mf-K)Yv% z-Ky!@-T0S{um}UXjaDHv6nEKCZ14!-7D5-oC4^H52Z}p!7EZgvhkv`>5WwBQ9_JFac!{>MJTQrjbdC-h~0%4gJNun5aWaxiz0}%OWU0-;H3;QEakB%$FNya z&XjTn%F%2#%3^j9$|5!g{%0hND z$`R}sl*8FVDI-$WNm+}sfca1cSUt*o)_`&tYebpH7NH!<7Ng8%%~Cd@%wbEU?3S`i z%1$Xeq->Y+I4RqtY?ZPFWj0%iGK(!knaK`BnZXV~na=h{IfP9|nZ~fzYiTT1{yjxX z6J;vH)}f^^Y*iq!Re{7-1rl2oNNiOgu~lg%!`7%73|pt>XV_{%Vyo4B3|luyY~3L9 z`TqYr%R3fhm7)2U`)$5e-k-cjc%JplfmQ2$^iBG{uJx``=k3lhj@uj+_J{4|wp(o@ ztmnZVz7^~j7J*y;_x&$w&+}Nybe*}_xM)RbNvJYd5(<`921-iyz&~E={MN?WNJn5{ zduwxGLZqp6NkeC6+aBY_Em^W;Y-e|KczI-OZEN$mNLyn^Yh9#cTt#JdMQQoC&W1>^ zwyV7(5^P-ZnPQXHiHYe&1lL{6~~^@@gk1WU`Z*(;j_+- z)V4=DI|5)NFelO-X$p5XwzhO6i>9i&tfFdH(Ub){gykR)uf5lD)RK!a=`J=V8p4=D zpwsz!2`}z!Xm9PRZ%7(VRatfEu1cq* zI#?Hmf?1GYG-}IGk*Ep-%`MbhG)^p<16w;~eM#DYLS;OTU6x7}mP%7=r>rk69Z^@h z3L_M)fdZ)t@-TV}#9^NkX%07v>H_aLFe$t&X@OK$)Ku*X zQ)@>gFfrWJl=QhP%1f$Bc2zCQgSFgRuokQ>PgR~rM8}Zl-i%?j&sxyY+1@p{7ExAF zQB|=k*JZ)hUUN}vigF%|mMQ0*B!p28cXa36xYpB)ZD#$Fr@b9+&* zU%3~_8vBfdm*BU}S{Rty3B85rOy_n&rA?ZwvELXt9YGl7yw!D}UF=Fb(C#Xqil#U^ z4ho}^zm3w~OrY7uH!TS->j=PGSrTqfRvg%g4*WKt6D7(4!183 zjDi>R~?Dj}UV_l@BvoYKR zQ6SYy9!N>aE)pV?MJU*oU{?{XrMiknB}dLCdK;+QHhw{CS0}X3+GLz6R8m$}TD{A{ zC<%tSHE5f)ktiIkm3cX#AVMXS8+6;`+J;s|cd=uNMB0)TM5wZ+d{;pLafqN@L3y!j z0=v;HrwV6$bh^kCkgCck9G7h#^o=u?b#zABmth?ZH+Myv0uu(&Z9r42Dc@C11^&PT zX%^P8#-jD$0m38D&j2J5BKsAgAzjKMxd1k(G;9JYy#?X^wt&Kg?+hX8R+{npsL>Rk>3fJ8`JQM*;SRf98l2PM6< z+h&{D3Yi@8P2k{`&aU>BNV12=^f_>c4zHj**wPAFoaeAEY4dnZg)tH-g-GGOoYHEW zyCmG)#u;TxeX?4B5e(d+Lj*7&4`y&0 zDyiO8$_nu@*b-j-n!utMnu_uNYKyVZ|C+zb_o%N1R?5>nXL{`J9(}vM5YE*f<9yHA z;P}cBvA<_O!uFDFvh_*pUfQGDe(ZKO%Ch?Zo8f;H7S&}g3*jiJ0!U6`Qr8^QTRK|< zJc-S0tZ(RS4!0+*p4BxKA;=jpqUh*qj|7kF0zMV&XbCTlsPQ`#Q7JTw&Q?qwEy{4z zRU_XMOeF9jB1V&t)E$X0swEQcOgaGKu|QSbbu4{f7ut<_t5v}yj8@BfGlthbK5#%} zSzul(R9Q-|$*ef7aw1kyR#H1}GdL~{wt=l+9oSmAJG#Z$ z0zN(!ZhJcmEca=xO_9L7_O7IzR(WYjO=wrS333ikNDW{x2(vJq4Xehe#}?yb=rv66-+!VErRuQNMz!PIH%ha{;kP%zz zBQR|Vxv{Z3DT{y@$_6Ibr93%?`P`*22`|4p615ihjiMY=Qg1o9v_oOus2%1kcygTE z)|#vta;jH0@T-6*s)I{m+6YYIE9n4}(exq}#lF$WP#Z9cgo$n^zKwb9;l?ID9OI$P zi!?)5H;B;>gfs9M5yBA(vXk3Z$+}b8UbUMFOH>jJD`CRhq2c63U`AI*XJFDGMj;T( zz(YfbrBcjZ1e?KNux?o-Y9FN{5cx?&(A#6!v0!RSf>T;yZh0`d8sE>rX%d2{!1n?+ z7lKWdtw*XjL}i6IAVKv`=h{SbNthB(lBF<=fjce;L!`+*v+PEpilPRoH%1Za?K7+x z#bll$gR@~trxUucxj@DS6U)He7sLV?6S7AH4YvuyP%z>4Xvzo`kyt+y5%u;Tnl>lG zM~FOi^IAIt26)Q?vl|E1iUv;N5K<}R5pJ1iFSiW&wKM7*jxj-MEyF1UjH#q|)=8Vi ziQn{=-TB-f&d5$rmfG=c4a|5ToDfXE)xv0{g(hViTiOd`;plnM5!k9B>V)PamWvu& zl8v6x`@qQ+hDM^wE(BB2ynu2#Jvu`;g__!%R&i=a%(UUmPHR(Zb1PpY!h|xI99ueY zj)hP}wH0fdIJqMnK(gaW1*XFCReV)AV8elR!l0nf!Y{8fQ`^IXO8vXw<`7m{pT%EZ zo9nsVXyz~#&cx_cRa^-p1#D4?Ghxk8ccHW<0)H7qv)aW<8jfgrAc-?!+&Zi$fN?(l zFR-kH^?&%4zZJg!`WC{#|M0s&r7U%KEx04Jucq^)WFRgVfN!EAkW?l&8|ZoKwXQdzqbR)@U$tPU8k1!goR-ChCP2})qCtk+X%u$A8%Y=(Q==P5tqqK5L5 zFwpeCGd05!VjZl(z=na&_SU3Co4W%-M-LW)2SXDe(ZDft-Ew{|ca?IPFrsto6C2wa z1~F~UOR%i8*HH<~PKz7osD~O6b%F=6$llxM>pF0bWq~QMXQDItGAH*EA}>JEfmbZ! z>lJYG!h@72@tV+6LQn3}am6M$m=zm%oKR^+ucPXO^_iyG%Fk|?>~QI}w0AJ()F(7` zwYLMCI@mws14U8_g7j~kytljg+Sa6)Dv!R zKR|g4MpHz&mL%>@()7t4ZH>_D1t!6ci`MqG;7l~?<)g$iK zyN;STqu`v|+1|LAPc2S`N}a6Az?4J&iohVK3f`|U3JIvGE^3+78wB5%gX@lDFqB5X(3bu7YUQ144e~G1VNmE7ps^FGY8HI?Oh!WfhEBFAyFh>pu#9%G`Q870DP?C7|C)p!Cjp(k2XyyISfB2Jt?sfPd~f5SThp7cAsf zqt5+Q7zqUu>ZK2wbG)byb$oo@+0`Ay~>R-E~cYp;)CVj}Dla7IwS#R3Ep5OxVh0cfbaK$xESX z?RqMn2N2qI4S@hE_|ks_tVQ*`lwVrRg>IpD^M}nb4VFVX1F(^dFW3Q>O4_CJ2zFgJ zAcFEB>|lez5eyFak{!3ZYEKo4NF2DXoUnh&>cITT*Z;${$(9bW9AFZ57u5oy0D8f* zC*J@7CdK%FgT=Ve80~-9KhO6$oU_mHUg&jtj(7j=KHXiQU#X9F-R!D>@4roQY;sJt zKW(33`^?s1{T04{ro(sbv)N57WZCdP828mwK{i&!a4?%N+J?X8Bo0hc%TX;8)|AW<5*tCPTpyxwd-LYep z^O4a4G=Sp}R3$VABQ>7ahY$Q90J}_0C-q zfde;59-41dfMu|LOB)9HeBQGI?JS5Ls+^|b;2T#$VJ=2Fb!Ct5PF9IaO9o04&~b&k z!^>lbC?_H@p%YkbS56$+v}uX&C(wLmt(wS(mxYi1b zN6NWBYf@xkqyc8)N)}dG%Yo~mDHx)HsiiSF(bel3#^4FA?b*{{ z>tpMZ2;__D)2AnSsbwLU$?exQEN)i>8c&7Zo}F% z3)Tl<5Hc6G?Ib-#1jlx2N(RVP(24U()r#hVaOexnEs4!luYEV{5=00gDtT-6gw|zE z5ujAly5P`GlE*JCtE?^`s7{x`Aq+6p5p3X=I%9H@OlKo-c#EEaTdH@i;lob>8VZ>; ziQf=x>?o=1?~UW00{++wg`tj^m@$Ksb;>O?HrPI^+-A>=EP>M>ZJlrkCaKrbvVnRd zNQo_xC48jC4XudD`7<3(tnrOrP{HAOd%b36?cdta(y|N>(M@V?Pu846up6-dzM*t! zX<2X)8pF;0bzrPBCMVPq9-0?7J#vU+=onxVE>ITjcUIf%SS&4Js{WdS~9fFn(YvN!GW>mPb`k0(w z(^)3Y*FdS4^OZj3e@NE&iQ^_s9E4Ng==~&Wa0;8)YwK!TVsc&$el`fFFu+q8Kar?B zrDe^9&F;KYOzI3?EnlDc8^eLz1yjG$%8HnrT1%)MRTIA*#0VSRN=G%J}^w8s|QZW!n_gW)4`pcje$cVb#*Y6lI-bAIjI~V3YaA3 z`2(kj!DJ9RM{Y9ej>%~`oz>u3Oo#=}wDlIgiM1OdfME+z7+Bb@#S;}tgMmf4fr6>T ziVh(No6w;Nn=4~-){fVCe!vWaNq8|v)*-OSgPRs$_H5!HCUrwqRdAT2|2Iz`#X z-P&jU6AosG<KCOl-`C_0RrYImlJzpj`3RoA6YX`CHGXlSux6J;TeF^LUI32!@zQUTSU8NPW4QyY_6P5#)#^s3)J}&1& zW7rZ?f`b}4qR_IScZ7|@;ZEqP8k>@hDS&Pdki;Q1LH8&u!3t>8;;y(n#i7HpE}!Q| z*RbD1rBYi~A_GlUXt2~ZKsW-`T0Kr=C-yqG$tip z3>Ld!!L4ISY=!b9#trBRmco=L9pB@eRyb5VuN_v!cRdXX4+k5w`|aZ7P`Di|!900m zTQnthymCDr*9*WkY#Qt3(r$D;8`k<8!?iH^*aF)}VBE;J!X@LE?J{6awI7&-kS5!Yyz%C7O zG%&0TwZ)bx#|20{VY3);AK+mjF%y!KDVDA|b4u>DUz!14tK{M}x6%?@s$AyFCJZk5 zz)iX|@mXiXqb6HFhUe_}t%FCwulQpwi~3?ql*fIM;Ne5^`MfeQX=-H7;`48O1#}Pb z#gCT26uzR9bT9)E^jp&*f{I|PGAh3L0UH;E%@wh36;Dtm6<|g1@eft`{a6B%;hO`n z$s^nZ+fI@feZQ?6!VrV@2)6|%Wx1_Iu`cC4H=2eW2DpdC2j$*}?k7YBQO)|zpx{+Z zFD{65E{%06XR2caX9=y%o7uOeC4bU>yC?7od;j}1u9jGbaxE$vjHsZZ^=30q=ER2f z#tt|?m#kgGYaW2k!Y1WfWu!CKt{jfU$y;zJCU4cWA{1=6WpPJ6UoKBJmVp=3Z;uF1 z%2P?No#SH1DYqlA4Wrux0-$Hk4L89I%<0F%)?n~bjjz9RcDx4ULAl1 zh@`Us;BbIM1?%hO)qLrpy`v@8qTEsKfr-7|Cv;>Itx8&F;kaYJ=@@1*iBh%4nw7&5 z(OifTo)2d8dY{jZ&2oNM6ZAyMb8%>Zyd=p@w=mNbYf?`0F&CiIgyE(wbH>=oV*~tf zQ1Yi7AO`_)viy)HdjuzPQD1U_Am#9;-r z#eRzvrgGpgrZmzKYf%11VAg>d1IVzw{=8We;7ncvZyL$hjH*iqoW&`HW7A+qtjsNr z)hn;L*c#C*Cl0bT`m$z+m+@uRBo7H65gLdPL+xl2Ho9XAl{Z?jfiA1JZ8&kPF#~qR z!K{3;Y+hCk3swDA9+>Twrx~TCm9dC&ET&^%X$;syFELBco)KQ!*xc33zpc>)Bh6%- z1&2EQrdSy2!1-Qbjek)Ct+mAJQ~+XT5CSOU=S$Us;E-%!O5v8)q$3Y>+;5@<$0dC4 zGFn+0t5ptZ@e^7pJ~4hcE-iarq`iGv-~jkG1e~Q$@_H*vVUD}sYzqs_uu8>E1s4lb zO|b>aH7)bP>=V=}xwxI04WAaOgAD}9oR(C>*8uuUx!@EgBZUz@{?E6xSd6m_pZ`*S zf$u8cQ12D+k)2aL9`_0Q=lTNIr>?MboAYS+4Yy6wBc)0>U7z3q>bvRTizsQ$6E!++#MH*}QPGvZ}Sn9qRdB-IdvHuec24Qx+EiMnw=rE}!J7GwsnAR{1 zJ(mx}rgp&uaPl`JzwY#R=WIj}3SMgN6aOF;j)HlMp4)|zBps2Js zxnH0+{nrQ}R13%!)R4IRNaR4Soqb$~2H_f3(FSl0)9<~mLv8V)st!^?!&CS69}X;N z_?lHxq6~EomMjPGD#n5E@v4^k?s%?pDLN4>=!A~ao{IjSChU2B>Qxn9c!9L6K3K;u+%c zT}Sgh-GsOAz^#8o-+$RM<&mE&xURE zNnd|8keU8oKaP)~;_?2M|9cx4i)!&y5x*4_CW#4rzdWA(NK^ZEc2~jx!=j zCtdj4=s(**2-Wb7BiKw9k@jHN1v4=56cvOZbPxnA-uHf?#F;aX&n+$lF4mlUb2Rtg zf8GQCf;@+nsi-w>D&G~jLq+)REdWQ(cwiP#U;$Xwgq<3J#*VRL#}48x^q>DA1o&nm zups^lU}Y05!sm^E@E9r#L3l8Xgl|pRu?PgU;MD=njI~8N@zmfTV(C92KrCV%L8Jp- zG2k4TG8=Wr{VFE0>I^Z#=7QeM;x>#4Khmtep@Xa}c|g?zwN`Mz3q~9nl&uvh+48tg z1tWHEiC}uSj9W37IdGO+e4Tj^K@60#tDV9M(6gh`PVER;iBxO#d ztqV?D0#i>u;^Qr*e~J!O1U_>mtnyR#?b0eP#4nG_Z#!~wCb#-Rsq~KgGP9?)N9u9u z>A)}yqmq;eAO8)swG6iW)PpT-I`GMh_GR!+bn#9&ALo0^z%}r*-svwZu9EEE*xbA< zuzz?#U@G)M$?`X>YW6!T1#4eo!gvuk2d6t01bLSR`P-#}powzePB670mkQD{=fO92 z8sYP}aLBExDf#von8@vS>pb}u!P(X$(#~ysa*z323>Xa zt<6bZ0QeqYLKlYL3%MbFqJ$f2i_32`@}*UNq6wxPz%gv>lh2)=d2kDyl9o$kEY3B#`lMVl&n)N&Qhib+jSy>U||7MF3_y6VZ^#3pR z-aI_6>$(%fz5|p1NV2Vk1%QiW5sz=J1-5Kc5+zZ)L{gL}iBbVo03iY>stO=Q(Xtz; z0%XTd>?C%QvGeuxGM%r#nVx@=PSTz9B#xccJxOQl&g|1Ond#|#-AU}k&Nfc>{La1a zzNOv;s;+oTMQMo7Hbq$P-Sf`9=iIaYPVeZ>=*Y+yMm~f|cVk0e9vU6|p}|`Q-tPZi z|91aC-w*Z;_f~r+d%oK9AH_(TLra>sr1aR4!eiNIlex1NAbC0&{9!V=tXW zv-T?9NwGY<6INQ#ERm$GFa%8 z8u;Q`n_Z6IAdoD4f)!tkAsZCqL|=aEu^)}L?Kq~rpgLT)lLB;gC}WffBSco$BjU#%so zn%VL&*2EqR-5F$SAsNeyC~j`R10q0fFoFOxny2Nj`&8Ah;u1x8AOVTIY(T=`o%a{7 zlmg3jrC~Wc6$Z#{03b@_AdK`j-)hC%E>->7F5$Cs0<3_5fjggt!>~G!m@Q^_H2Qoj zF1Jy!cotSi_@p4;kKj z=kc{7OdVj-k`jCvbzF_u4qVanu53ri8@+E9h_u9{C3@d_)e}VU+Hyt&l2w8kJ&YL- zpa`oO4ZNGx2_|qq0A>@t=*_AtmgR;fTNcITV%cuKY^hvYYo;3qD$fV@Pih?Kb^2U% z+WYTXuQC*uK}5wP-;C07v3S>=k5M=~bqq}mO@v%`KXkSq7YAMmI#c_rHv4Fp8@vFS zeKZvZ__>BVnL~_a2@AW3&XE_;z}RTZ5sKXX=&CNRU8>FsGI+F-lfg><7#V|%1u#CE$sp7EaxWN}PQORY ze-rNABVuJ9uY(5w*lCtyWh)P`l}{mK2fOqPZvDm$E?8cE>tT6biH7aR>sS;0@)|bb zUO|J{1ke!aXzIV?sq!+CA(Z}EF3%(O*;J$+;4P$f>h%#z_m=z@&gO#`ma9H;rYLP? ztl(rYR`lIL)h%bJ+r9~vKrQ_8)zhrL7w+qRmZx1sfy^Q})6xZ?b4`Ae0 zhw_uO$}Ek*fB7=33Nf=T1t`SYJ7Yr7P7 zp~PebNs23kE4?Be5y&A^M?sZ*5=m_wW6OV4D{mKO4Y}| z3=JN>d~pBVf%L#K{{1G{y_=##zzLZFdI|0wj&m8gcl`DIT+kiI*f1%4>{E+Cc!HHd zC%uWqchhw6dGiP?Q0XCQd(5~3Xa&wX1l|X`6oxj%HpuM~pFVawOUa0+8vz0|L5E!5 zvCc`BkP$&Q!U1@*>Z4lp$H0^L@|tez*7g zd#8H-MbFFKf7Jbb-A32fyH0ifZRd}7+8y7-i`dWWRlj0{2JZoU3VM#J4nv1}Xy)-E z4e2VbrjEm!d;p5P0atSt`gbT@UYup4(~!fV3uAQ_dy38~WErb|k;njys7}5n{FTsw z9-Lt=>$Am535RfRhY_oJ!D_f9R>(ocp}~_&Rlhc50I9TYu@3YiQxS+^49px~g-5b{ zu^BrN3%TJ!XrhTcdagPzFxKt_3==UCM>C8^_s@WV07`1uQHn*Ja1oxLSjJ(9Sm6@h>ZBoCD&cVn1%1VL>wtnn|4m5>dmQN2EZU zGlYa$s0`qlNbxPNy-+LK@E^9 zbg`o0wvnRAS!f;+-vRj+V;RV|Vb8x*eNpmBA>iHQf%{P{*f?OFv*1IDg%Bs6=TFU7 z&x+Si5e6aS7`zv;@e>C~KG1T65uXj22Cyr!0!6{uH_(I2)fWWc*zuxOSpTb7W&8jl zF>Ac}<$S|(M(`{fE`-uvJj>(1c(z!5UaZAb7+))rrM&sTV=Pt0?t#XilnGbL%wFJi zN2K-7RnG{O z9!m&Kj3sD#CmuxkPpT5g08kh9!S;K2YimoC7JSYBDGazFsI zVX`}s_!GOThL|YQbOU(pjb`j(%R_O;t4J8By$i?d^4aRs;$wUbj5{%c9yoa5%<@X5 zVXp|jB$RjD7?;^Ym8#$3Pf%R|QpNv)w?~j22M(NAS_2jU;*ChsrvR_XLV;TQKY zTOm>b(g(FdTXTBt0{z)oQh>=RlqC#z_7E;g{&2DCxA6-*467k&8kSo0;+7<^0tT|x zP+(9O9V`Xurzbg#)^gSF-Vg76S|`+EJqJ##QBGkU05&MIrrZ2z7GkM*pbGqs`)DLvNz$QPyK#Ca`Lw7v|6j+GP3Qui5M4?y!z@<)> zIAU-f#m>)eG_q`P9asQfAb|~1P2dzE#6rT5jiYqaBE1^|js8xm$OS-M`O0j0V{P+L zm3Q5P%P+HmfteckpMBMurFHTaBou92^2zFg&0NbcL zE5rJOQ`aO0qvZkZi3iidee_ic5RIrs^A`~4gD8V~K+yZJ0NsG3g=(Ys zuG4F1hJ$f}056ix8(?2BR-y?8VtN@5IENH^P>%FU94(AKXRi$BNuVdO8i03NtlpZj zFrr?1?gAKAas5c@N#He;6Wh!Q2OT^V6Vd@-TzU_H5HSLfzlQw(Lmg+S{(lzuf9FR3 zdi1lSH;??2krTteH@rSPF!Uos*5Gdst`2q&e0kt-|F5GD;NSQCoxc6OKL-@R|GB5s z{g>Te>YncUnXYF#|ETi^I*)dI9WP@)#TqXqf{<`y7AY<0oKT{n16vrq!oNyB>pY~uG~obf3?;vSV#stodU#zLj&rjLl2{17hOQj^py!q zI!pf95^8hN__J_fqvqpf(DWKY73XV&T5#VX0MVi(kk=)jIgbwECR{a?Xb0zxTs8Iv z_Fb3x8B!V`?ul?78dEDVU=bOz&#KCdHK{z6;t2 zm!|*Vx$0YD5f&-HF^RcbLx*4#=4rxt<4*}S2J|!RJ@#0!>SJI;)Kbjl8a#v^e9E<= z(YR5i6OKcuFksK2^`0`T=q_HYRDHk;-?gJ#0_%ic@W7#`i)DC$bRL>)Cd6`~+JLQw zh8eto><-aKxK#BaE$Fx-Che~p2HpA(0gIc)asVM_x$%5s3pKRCK4l1SyMTGh^yEv` zD`KPA#l$`@Qn%Z82p@%Ou!(&NH3ob;dkjU-P%hh^mZ4qgT#+5O+ z&qGy#dx%5`zJUMmg{qHL5m}8DqKIp@=g_mu6$Fs)-@pjZ#=WjsEmRZGrNBEt02#AT z*~3d!ABjQ)FSsOyH)A*5y42N*JVg^a0t4HFJwi7Se-tT-O7Yd|hS(&g*x|0iQVAo~ z-3L#vUB*J|O@xrq)5llIP=VuycH_1cK#Yukw{?LIj?Dsd`bckYtrU4jxEou--CrGJk0q0l$X)!-O93O^EbY z_*0dtj}Z|@vGD%LEi^fEa+!vtq2-2dhvw2$n5Y;mMH7hW1?aH}UhrylO?;GyGCDE4 zZ-!#ZFp^F*w!ne1E7pS9M?qy+N6TyT)m5>CABCX`+0daFpMlE;xMB!UK|J8?5RdM8T@%T$8E;ui~zFLEH61CkAN(! zuU0Pzzw}-jOvR6U#H78+Uzhrd01Dl(^%f^y2rv?+zLQ*{r?Gp5;(YbBdS(KkA!O!0 zWX%xTT|bYBJB`nwxR$UIIlJP)bJbf=6yp-pl!!wdEUGxwKJMnL?kzBP%0=r~$Zr=x2r=9Q^&kjltf5pBQ+! z|9|g)y?>D!o6?)l9+jTPhF> zjy)0HnKz|Q<`)|p?j}NOoZqN{!1z}@a;|n%yqKL$jwulug!@omw1HO9#+zxT1&i@= z52Zx>u~%z`Sb%9nwm`&W8cUrlz5#93xS}IxriJ!pB_x&N8&Fnw?$z3C{St8xhh@Am z@1@}o4=f>+E~^ruY&Y!7;>D$!UlAwD9q<_p$wk;=Be)VVQG(ir&{W$?acHZ_6bm%(5X(`aD})39-HEFxpI$&Px$&Ap5n@g1GFrx*G?W`s z_&In0pN*GS;azShaQU35!#%T0~B59zR$zd;!ByxKJq+MVRI-r*uZ*(a5cvFF%L{hJGWvS*@l?kEY%Y@fb zPwLeD)Y(J<-Bb5BUMCcPm~!j$v#1uOAnyA7a?LLu6Lu>*w-LLw8ym5D5x&cV?2pDv zg=zqH&w2LHY=QmpQf*rB&fjyKyohhng(;)!rHhp&_$G`m>^XwD{HagXI3f!q@IDHI zZNP??@ z4{XL^2SQ%(aSo={u!rfh@Nlu_#SQW>gV zSig)M9)I$s+MR-Re)s|M5HXr>IY?UPp@vf?;i(HkAa3)v&_1&CYwXJEDFgQ5(e*^7q4f=lqoLR(*prgkbw;rTytTFt*%G;m`b^)bCGM{^dcs)J>C zvaqncv|97=P9mR!cE<4iHy@-r(iEnjuF~A=#y6UUBI;lr;F#iRnw`2z)2$bZrJ9d% zA_A>o9~`rYjdn1CF!2BtIyL?o6E`wdjwx-Q!;mU6)&OsAmnS{ z4?>B;l$;bSWw9wN?nRZ~Z3q4Gz^58syA~Qw#Al*{(k}}vt*zD~NF=_PA*vH@+c3^0 z(7dmJo2(1HiDMFK3$SaEJq>R1r&ntM@<_0Ou!X{NIdt#=$`u3r1Rgay=o=TQ7nkd2(Scr z9Q%b@fE7Gmss+#@d__bQ@r9vc95{G#l|=nyexba)h;qiphb0}V6x_fSdK~_ec)U^z zP()aX6u5vDBbHhJ!DFeXOK+q~Ybh!zd8DbdO5mL#n2CXF$S1xrTUujvBkb!}YXMFO z-$}M=#BA$3_|zhO9+t+4-{ppF`N+S93I>iwi9L;V`O}wc0ThVG5J6d_HgX~KB2r7C zuQdd;cwikEuZ@F(fg6YKq&SKH3O~wDuUM^(#KJ(tU;5bKZsIs#9juv+>sv@27wI^wLV>&oRZuu^!qDJW{MZCwRsy|1&JL9V+Tu zr%?2dLYStmZZk+JGT40-{fj4GuLT9CysLqIK_sx+H%*asGAL<$@hLc1jl~UEaa_Pz zTkd85c^Y0!4q9co=8v}$_C3~&jkoTdeqtF~h=$119}O>7pd$q9d6=C*5BYzr)=mmO zGAX0xC)DkS25`^x!x&;)pvj8IU^_Q)w+3YbtlySK;L_8`t<%%b=*!UI?iUqI~ zlBLKbpnL8-0T|%vGc{hI3NMCL@!>4Oi3m#tr<>{F#pj5N25X>qiQ09GwV*mRa?B&H z{RgJt>S1q=H+K-k&4Oc&p%(PyEbBu&SBux9GHHrv_}iw4VUHFY*Q1(2Jpk6=rH-%R zu~IFlM?K0y-3au+K@J_g+mN9uAxF;2*qA@wFk58?rWKprbs6IhdDR+o%3rEIE{q%I zxv~W#C+$|MKO?zqBtF#C&Bce!>B5L#da6)+OuYUe1r_+~L%F#nb$sLEdAL~lCZH>G zW?-(dd0a*R(OLWXT2O_`jut#D*oWcK8s3jdV5K)2enZfG0>B?O@2m92b2VOjiXs<3 z-a`Ic_yrUDA6srLgl14w&7g!X;E~sBLFK7M)id;3_&Q-cYJ5M!|L{F22cBO)e;N9- z@h$`<)mR7RI_w4b!+(6f_ORFv5z51op;2`6{%6rXfJ&!Av0-Y%3`(l86d)V$APibO z_TMc3B0skok0t*0klk#Dum9w=6#Oqm= zKKp`5uhHoK2iT14#^ejn1#d?#ojtT#3(6(AM#tOXmxcQ~vj618QW;=9PZSHw3&`;| zUPibPSO&#->}m8&@uy#{9TOiTwgX;EXk85Le*`hnrUEEtkX^z;<}B4jvFDa+0RR#2 zVZ$duBZi*CE&ETMFBgG3)Z{urBZ$SLD0o(cYEIQYEqn+_(T4_3I+kfH$M2hCOtycAt1T%hixLM?LZW z{SP6*2iv`|yag$9ydIGZ|FMml5BDRozI=ty?C!$`fc>Qfnvk-9lLhGJhW5T0B+apy z$iVV9;B?U&N;MznM5`cAD9O5g)u~KLF%`MB5ZEL)mAZg?O&!1NV^4N*%ITBUUxmz5l6&g*pePO^Wk&EdBaMm-3fKi1P?=`E>#TF3N;qnAj*TKa(?a3 zC17)v3a{5VVh-#i?gFx=L%IZBk|wZ0=0txN0u5l$X#L&BlTZI z1mLnb+ANOG7K_||w;V!;FwLh;HI6#lL1Y69(Y$;1Ai{{}YL~T zHR!Qm56{a@cJI#}Fkm zc~qP8S6r<5)4}MfAkP;o$E=`{si)RZPny4S1g9Gjs8U1l+#E)_gx_i7Y@;!nuq*K= zGDxedwV?7-#JaF#B+fBBg_^MfZ^J`TP!k?~P|S?)1WYqMjp$v0N`nfOt2KW-SXi+` z1udZ|F*F6}*76nHg6n7>LFT@>Nptv45f#OJyp)JbGk(4&y23aC7Wurzjgg4Q_(^#vb{ zS`_kB{FFyW(3RzyKORijp6uHqEF06<9p(@^4r6h78V6T%df3TE-p|6Hi~ zbHPOQ1J;UF_V-RbgkgD=6e4Rt3TQ&|gM>a7^U&pqhpE?-+19Vug6dGgO$x?_!rwFX zIJE!>aHo?v*^R$0R5iFq&~=I$5(qwpfoVceskS6eB}>UsFc4KNVZf^!iVXxJxb%FC2Cdx zos8#RtQFZJ2y2T7D&gz|X(5d7=Vb{d%GL5a1)>*&M>)B-9qoAKr>Qyeqo zH?n?c0%!}D339=A>t3q`z)q~24*woLEh0%bO>?Xd#1R-GK%-BzEO9h|c$^lPAH3gx zv35>u+Cd*Zj1~)}Xx}v3G`?0tEn#8UCEq731*?a)tU@b6KfEj!;`)JoRYa1;rh!&N zmliZi>OpkbH*ChWFy=B?j8qam&JB*`hF1-FB_>R zDUII5wL(A-!KyHUO1QvKRlADHM7)76mW#C)#iw!$2n&;iA1IBH=?6=6a>%3b%laDc zp$IpCv8W$LyqWnFeks@4S^x>fq=By(#)F2ZA1asLY@)r&5>_jgfi$p(F4Y1ksDP1> zhETN+O`llD0m%atlQ22aInj*&Z&~6-!CEFVzXUmPS-gQF0MFN+7wXZ^DUuY1s%voi z;e6x46G$qG(hdk+j!%~$|NjG>gB|-`ANvnuYoq_;=mR7Fa^#`muMImxpCA0*;M%}% z3|ReN?jP+t-}}40AL;pto}0RF?Ha=a@3)_=t`7`!JayaX6I;}Hk8=YKW6*~+XM1y| zXV}=Kj7`cF2!9V2=Qoy)p-m6vfJ{}h< zbJI@&+TEbPB15u*3Qq$gj}T+buNd@5_j1QSz_<#W_84nI|z=x+E zJHn0tordK#d^qjsd-BUCZt3rM;P1Wd**D^zF}5HT;L zP}Im=OjcYf4;CdZSt&*AS=rE&Z34N6^YSM0& zf|h%3C4VP#zW{6n-PQa7t9umm92jC-_!jHINSrMvoy+Ai=w#oMpm1AJlFzF1*OvH7 zDzxqX7LYkK2)50PzPKu5o8x6MKHk?7JkrDNvJ`%V9HvlbOmJmnDqw5!D|5a}WO;jB zk0DJYIBZKnO!ojI=84^i$zb>bXIVWlXrv%iO=hv-`kqT!hG-I0rlPB#QSsQWRM?2c zu#Kyuf-bxwn}3Qp;YP7CmpWW1GJKoEszhAsV>CFs(coeRp_B$+WiQYj0xqboyE)Oz z7GB+LVFzQ65(}RO_{b9T@iEKGhgvGJ)=wV%6sm|qu8{XRWva$|U^2~&?n;#nAEJIo zI8m>mx{L~wV0&RZxK$>|2+nZDD9kHw(baCosrz=}lmpBHU*SZK$w|6DiCJ|lQRYZ@ z7eAyWsoYu^PnGixqsZ#vqR%{@D$T!ETtHzN0|$i9XaIx-`er7I`$2Y-7f~x-2bJ% z{{*l9+r2BO@_zw&{^_nSb^dAR8T`xF@6Tqh0q)*5ny}!~b2ijl4nxp{Ze~t=s8f>` z-27rXo6hG8D)&ZU!QC>;=qS}&Nj@ED$!e38bYvGRi4%sg%2`xu?|sDzk=WH?YmQ@k zSV{LX<|VA8fJQX*HlUGfO+8l9hZ!{qE6Jw@aG!{m@69nzjV>$co?WaY5M&yebQWdz zjo1^O`_@@WcY|#bD~VI-rE{*A)N?Jfk`6Os5>`?`jE!J&{cXsI(P||fVpJroBtb>i zP0LxL(MsAl$jpL-l_Y5JD1S&6cH|BuMqIOzbbx((!W5lAj#Jb-NBdhyKi zo9NOzT|p2_qy;vw+{HfssQmNobjI~WI6R^@`1?2m=+i6j#c$slxpRR0sM+fNI=8`_ z!`54A%$rW`y!dp+#;fLASEo&+Wtcf~s&u(nrt|=|s9}aExl6&uvgFXae-vK3gIOPU zN{#~3WS(s~kOrP(R3I$2cCgsxsQWa-E=KD;Nhz^hm`s2QrXmto~AJ~=*pm8caa>KJp z$D?Hdw2v}k>H}yYF{UIYp*?`s@sa+H$7V+B189N@Bv1G`ia4P}gU0aLr8&lj`tVsm zftSn5X}IS2S&l7SA3qBghTHE8QRL%WA3w|PO%f>SY7@SD%gU|PTz30yEx4XXG^L z$s)4cbVj6$+ooJUJMjb~@*_WZPc%V;9nH+SmVt^YL@lDm#mQp6yl@`vq!mojn@e2< z!YBR#DH{F{qJ8Gr#bpDSPlS40d~n`iXmJ(%fxq%M@E4$YpW1qE{M(GHH+XX6oU}?B zcF&ihcj)-q5<2mt;>mv#PnRxune2jFSe*52G*Y7&aB(*4prOe{$+7Fr&*zsaTHclO~S^`FhjwR%?-;0)HBnVU0R1LL)G zwz8|L#r;~XcfSI%9Kc`?bOjX*8D|BMXI~j%q8f{@}v}$&Q+H4t5lw z-Ao$uC)yHxculgSAz7Z46J>i%d#)OS50lG#GRrk>FY2nkYte`EyD|$g)O0rEiuS#x znWf|SFUgKS-$NoRodX_)qEzZX{)^HbC51-Sp(euO(WrFF*bid;?i72#d8rHFLD| zAOC#)jsi5tVKMuxVL7Nxk2!bE(5U73zgoYeF|s_APpBpnbR7Rz_GA`P34kS2J7+qM z|M)pxjTS@Z;Cq-cEE@?9)jLUt@_#vT`hzVbs%+Rks^x|HPyb8O4J8RpBlnnfJmm{Y z%jthndin)f87HHxW_6tYvwJctZReD)Bps)J;)PwAgBEBs&_C1ssSN$VxMJl8)nldQWEA*=($Ev>B>2 z9DnZrpYPcB8vK7_^vB@;Ux5FAbm+er>Vp6OuLsQjufqRdga2>!e5I$W`$E_6bs3#M z+VP(|&a1fpn-iM^R1(YX!sMK|1Sqjez(zKui|{C!o!O21m#1oVkyPvQI^p;Q$d#na6MH^ON$5)E=p1a1X*xlm4jazG!rxiA*IOKg}gqBreFgqUV%Cc z)6I^=)yz}|@r&qkECiPn>C!I)pO)+??m*CJ8n%a8D&@$b77_TAWJ^P`fbb^F1W8(s22s?T_s_{uiY?N+Rll zM$MM#&KvvR72!L{!J*hOeZyRr+Z>U4WTqnrD8WtU^P=%okn zk)kB&P(qsoN0bOc@NFczP;wCKdTx&v+PqV;sUF?J=y`KZz#`|oIz(V%b5x?&T&CBEF5FMb`a_Eh@F^j?u?sEj zZE^?rypVbspl$RFB#CUGpR~gr;A2DTOd-CFM3;>w?d!l4qNySEK3_Iu1W=URR1#DhBOY*K?Ei@0bi8R7$I3`k5D$>^~eAp_7k^98C`bHaI~@DU@a@nzZ3! z8V@k-6cvab8K6Ny^`=lrmzM>Oi6UKEWB{{+_F$I_xJ1>vU5^aVY#}+jJi~P`EzDG< zOUpelBa;EXji3ugMjR`;9cfDL|363l|GzUfH~J6Y|1S>z)^KL%zeN6je&Cw}PXAYt z|3BCJtG!2ieiZ)y*{-j5-P`%Y@c*BS`2ThP2!}S&gW;qsRwv?mMj8cp*cQbTtYu41 zOSU9J7n!H365j%~1R%tEIRlZ^vlZK+2sCGZaex)2S>VN9@c^hApcJS~?2;uq0{zWVFIMdN^oF?-8mz5g!U zZpt_+*T3nJfhQ$05YUy)S-_W8RBT#g;0cM!2+0C^WDH`qnX5*R3_QLoyATe5o2?!d z)*=HOlq{Yy@Q)YK1+-aZ*Rcinz@ySlB|$})A_Kex>gm-$mq&sXtJOh96<|Y z;CNC7u%nc*$%1*vgesS3>yZJB@JaX_Azf%ORxUEuA_IJcPfP|P?84x-_CQQ*Vth}c z*o3nyV|X51G}WV~MFfsXM8Ibk$Z~U8B$L`N0-unI0MVHSkx;kFRSJ4UfY0@b=`|1~ z=yG5TsrqZ254f;@wAYSje!waWna|IbkU|L=_D{QCdj z9QIKE|5t;r4*bS|)&IG^zkvV$>zMxcecgZF{bJWIcOB{6>G;!*Gj&dX^sgvsmo#Bm ztR@4{C@>I!f2(RE=-CBH7lu!lXTYGcvu#1U*<6!oqL3~RwF$~LRSPa-4wD$WT`X3^ z;<-i!6>vFa=IPNyD@oA`=`w);uiU4gMH5M&5hG+}5yw$gka}c5f{p0YlVlW$4ac10o-~RwgIR_;Kr)vr*z1`_~ug5!osEs zx-bJo)xy#u0up${2vvZVP_Bs4Ap$pV0v|CxYX-47&MnJGXVjUcMF0wN0iZnuRXALj z1fnRIEf4^XmKYZR1^|HBy~s9V0==qM(;)y8oAZ)OAfyYUFqP}nahGm zRFNuo1L%=~m!&cw=%NDcw%h^9~-$B#jtWNES)}l!0Y5Y{cgH7620KL!>@k9@vHO zP&?qBw)$ndh_ef1Ss+ZgxJJ7!8s7q1BFy=?F2aBz95ok2y2=u-MH6lHN(Der<>U~V zP&8$<2!I405eH3>g`!zc)qvL{0Dwo72msOL7&%mBE6b&h%Xq6xE&zfo^BoKc)-C`O zTfj=J?^3WlrfY2@o1>-<#gnE-0y-oT5R!$qu=ZrhBWEZ89GXf47?$i0YMiK zC9j7B4F^q(+d&Ksz{?tdF|~5aWng+_;F3fJLb`A}DLb?}ETK&aP$H6UC@x{_vMtP+ zP`ozv$bbYX(Wfh8WIf2HGElS@8K}r)fb)y!0zQp0vVIHh0gjwlF9Rf~lzGm=!D~-k z;&rJE2)Z&E^#S+SE(4MLzrg=1qW}MH^#4=+|9>}dsQ(B0{<80t-hbXZ?dSi0y6dhc z^8Z`BCnLTKgg!lIWiT58#bxc$L|ZeGT?pyIOfh9s=Gu2*b8<@pm}rG$QMI^g;8u$! z+L8b!`gElYG;si3qa7CMR!XLcIKPN4%gtN|HSAj)J~1u>S#rvNmx2i{mg%Z8Ps?q* zb(cg2Lb{MBGgZ@!T4X>1m}rG$Vc=hTMsaLO026(>Fy_XBRi%8P=(vryZkNdb=NHk1 z=1*nW)PEaqarne~8K8T>F<>-j(#mN@Ju>h?sSF6Z5Y$o5;AxQo31A}5nji}asrF>b zwj_XwK3$fP%fP+PwIMn^wRNjx98H9-v^pxAb`hA^0(xR1HkV=7fC=7NnER*bWayEA zNr?o6WRZ=gN|zQ1kiaEc0a@uBH9sq|OOGW4xWxMMT}~IKapcl2A?GO4rR5g5S#}FB zelfc2j5=K{5CNbkN<;u^4Ffp<{)f5_Mc(NVfql|F6=b0k(r$|(B!NrBQ4?eVC|)e zw3n%R+S)Zh*A}5E&WyhBifvM5lr?KRDG*7nBv7=0(+eP6u0Bt!Etblw`Ss<}nw3da zisehiawT=SST3f@#nsZKVj)%7D5lm+srBX6VrgUj>hzQO)#CKr^dtGTrN!lP(KyK- z^8YxKUtc(1C@oFD1xe)CiSqq& zz$N0W39=AvO{=LDR>t|8_|Cx?&bvzpP_BW@uo=<$Qn=;wG2doy%T}K>7RY&Un zUid$WJ`6@A6qADiu4pgID#vm4$b14ZF-BL~L*q(2Y`@b?6-88Jj4aHGYfp*P7RN}8 zL?QyZFyod0yp-D#G|2qa*2zRdDoU4=xgIKIwUWj(S8u0+<+~ z%K}zbTS5R&*NXt+HX*w(14B7crpNT-5Qz~H2y8SvSK!6vB7R=k~b$iVm( zAQJ0)hJ1F}nDq>JN!1*-77;ih7Xe}yk!7Qs={kslN$?VFn_UBzfnbwoTdI4i=NgdU zB}V9?h6&a1i3Smv*m@|L!;X-Zc9p5pApsLx93U}%3-Dbuv5S})(w^$H2W27<(1l1Q zy3!OiMhk8M30xxf6mp6QA{LP1a>`A&dPD$liS@-M5xN}UfvM^>4I(hPbxd*#gzU0C zFRf~z>5&1BkXSDRw2fJ0mr+@-4Ed+w8kpMpc)}TgCB*qfbOC0o-69aw|A+Yh)c+si z|GWJ^4*b7YdVdZ0e?P|h|GxqJzb|$C$=>*X6I;9sBeEs%gP45*abC*)e+#bW1b8CbROoa}5P?mD zWT>hMtw#nD;E8d%+;n>yh?b=?AlQWpZROaB9vR?piS;r-bh+3@Qf8`7h87uElFNXg z3%DlAh}12RfdqOY&Kj$l!=w%eai{j&1LIpjPmFurF}mQOsow2cu7QF?1VU~B_F36z z)*}KOFflFyoG#mN>>TP8+9Cq;G7$*r%3z|mYR_Q{L?8j5$c`GxsRia?w2yMjv5sqC zd<*c25)lw|A$hEtIo2WquSi9}rwZ`QfZA7dy7h||4=(0V8OBC-s9anL+ zUn&E*S{S=5z+|gtG4#j)pb~ds7iQi9Tn01Q6xpRk272W(K>Q-Q9E5RH{rwimKms}u zXU(On*uz9uG(iK_RFQdlWB|~KiA{~r1*8sD=4p|EE{P0;WTkUyOErz5M+ShFxC^^n z!v**`>cAAYQHu<8$Yg-?i|9h#xT|_^>X(771b8Bo0TNUP6UVc_=}>ijw8+3#0z5HB zSH{L<0>w?$Ap=`)No7E=3+V=BPf?2uY;m~6xGm&T>JxKJ&@zjjxpv6F)>XL-2)fem z0K&cnGLQgI#93n{VHnhbs$LZ7s46x+GLQgIjM0U{ab>!+$iN#C83@>gPBmNvilV7U z1~^<|Tn0E@rhz_4nBA)SR>wWCbx9@zAzdhhydHwn3GhUA)*z_V&YDBHvU0dpj|?Qh z6XSFN+)C9((;@>EsSF5qc`&=%AOqb0e<6_Td<$2GcsKi(1kiK0Bk7gZteH+cop!8ar}RrHGtsYtYMC8R-JWPG*LAHo*1Lb z$$84xixvq;NhBa-7KQ{Vx8~`Q01lTJmjF%|=G>@fROM8U2qeH0nFt87kPlQ21Zxq2o24Qk$TGn# z)uX0I1OS&P5doshG&}+fZA)igb)Q@W1YPL2QU-O`E&`L)1bQOQT9|ysm~v&50zER2 zKu?U(l?E!9>h*N(GQj=+)0F>D;{WFdejfh+=lj0f_j2#gV*cM}y1(81Lf21q-O*X= z_~VY#60e{C3IzbXAtR=SDAEBuuN)1EM}eTK)2L?;KAse;C|v;aRtCr<8bi{xzjJeI&X>}|fEm!eJC3?u`7tw|OO66Ed3-l1jO01UwC`(Mh zz?^Jquv843=#harsSF6Z9E_S!z4Wxm0HGt+SuWU9K^9tOmGLk1$N_VIl-t?0$bc=8fe2l87Cn}V$EyW0kU&pl zXN?5ap*h(IOQRNCOB)}8dS%aLi zbU5m#l^ZlQ$N=~MA0hnzDE=SM|DVMCzk@9Q|1{?R@%;beT|eD*C+7eCNyj5m{~tx{ zXC=E}p=iaLb1>%?HBmq~Z?__vtnwy|xKjpL0*e4YvL;F_l>vh^>;j4M=+qV2M6mSp!}5g!rL&*0gA%({dT0Z6vzLTU7OT zTA+zIbYffv(Ebl1Ga%ALmOyn=^~k_Ui3|jE!MsABpyH-#k%0tSB7$HcS-A7s6qrb$ zB?fe*4a8T?v~tE@iwrz1lL5{zq6^-Ra)U_=WPoEQ*2@41s%HR}=N)uh>5+jar7|Gs z!hjX!5ldQRAc2<1&YB<#RsWvq-LB&v7_R~?vA$davPpEg2B}+RPst|)&da#bYddliuQl-&H?XC1OQY6hz{81|F2kfS}8D5jRvkY+7U>0hh?mnjp);1S?gQp+g47tAI;PTmyU?O{ALv zXVn%FI3^bXVi%ExT~sbI)GY$!|KHy6G_U`k8~q0(-y0$Pzx2@G_3Qtg{;wkcf3Eje z3IDHWuzRb!r)#zI-*mp*@dtP;@w3@orM8fn(I-}eDQ7q%9>Dc!)F-w6=R`0jGUY6V zpOfb|)(fS}YhtF^Tnck&Fv5}kb9MS;X`{SQe4w|l?+F8AJmaS2eP=fytb5jeWSQhtjwhj7mADdjg|Gos#IL6QqRZC zsIwapURKo0)Ddx}RK8Fwrxx&8>)?ax!iXmj{Nl{$>aHt0LL?$9pRUknub(fb7E3ED zrOWiU(nXp=SHW+}DKT6w#o0Xf4#;|aZ?c>K%_l+DYo+;AWxZ6+FBP#RC!cwIdA%qI zNu69cUo32_6e~tyUU{3YRtau#X7oNev)qj7h;o7mRVUZ;<#pmv9aof@(p@D~MI6k4k6aJ)@H3JF@GPgmMNjeRDq+>olpI$f4s&75CE7aDVf z%sp6~-&lHgf|iIa6=b1QtsPCqFh_xwC=mgo%Qmt$!mVl5yod%7n6ADey9PMFh%R_5%Jpe2 zkO2;!7?%N_ShYZ;>8Ve6&?5scOExv23j<+LMW?7hw8(%2F450JgIyMORk@8+&ov-{ zOZ4fY{5T*(ltJCET?WYiAMZHQv9CP#&9U6*e?8hWa$)$lhK~>Zy`jOu*9ZQmf&2Rh z`#L(8JHF9zWOJg%G0ox^e;Pg3fQ>N#{+>-Mw~Sr;Cu~mF`eb4p&;{+{DdW=X7UR!O z)HuS~M}F|0IzKOm5%2^W1Ngyc^z39YUtTz$dbU_W>|ri-waotEt*g`g9}ok1YIT0u zICgQ_ICZ}G1nkq|gY(7{r9yF~f1hDmrG>?zt%S@4?yA0rB1KqH`dRW%FAyS3rC={^Oe$C^0$a6SJqFLm*-OF*Vivr z=8hh{xKez>Sif|1qk=6vT3KFNdu4gecnwcqoj!i4xVBDgxH?V$Yni6`)-Gp@E&=>E z&O8_3EQ?+-J3Eh}i&-2fcXr;h%-MP5pWW<&Yc0Cj;ECN%(W%mf;#%YoJzQL8zY0#! z=44HR^5{qW0R)w%$f2rnuf;yCNl+d`x)7+d+cKu0*1^o?xH-=gBw!byz2MbGQ(MAUX>F^0nJ9lJy=}HUn#Ow zpP%wkB2Dr*2%E0HDRUsi83RO3E)%O=ma$DFWc=}+X>khE%&PL|h7 zKFks{9Ne+^x}1F$ejU}bG9r26?o57t;e4UAq_U~;Cqd3=m4iAiRixz5gtu5P_3q?6 z0wZF5zL;NErzdz61RbbeX1n;-=Aeusgfnr2MuUYiio)ML%>@&3z&~AuxZU3ZI)|#4 zAO^#1ppdyvJ*96pVjyOTOnC!9FIC??^?*K#^;pDxP{4_ zsFi@5S=cf3v*zULvh+;UX!&UsR&Rq7?U|OSqB+yMds-d z0Y0a!ep3Zq2(Mtno2r@vtw?Q4_n;j;Rbeq#^7}{(paWv19nPp|OFV z>_6N0bk7C+^~TQ)4&2~?E)HyU)i{9mebwHmMn`slwF21yorq5ZY|^`(e=iwL)qL#( z+^O9;p5Ou?5p!0S;PfI_#to;IN`H3WQm{n0@ui2xXUnvxK zXT|mBBW#_j-O39Ju5K+yS;4#|3@~BZYrenGv$G`B(h2oX_=Cj58e16eOo7wqnwg7b0Y(8&gbA>|AoL{8o zx@)a8Kr2qs%b5$a`Am9Y7G0qDC(9|!S{Tn>bUZ7cUi7ecyuxL-N(28BBee$pZ|W*m zp0C|9NY2FOTU)VA823Ukh7(iH#596LoyIk>)kWDvF8wa@)y_CpF+&)J&io?ynkk?T z2uG%nUv$hx3%i(c8}gM4ScI)8;W+-rdO6SdN-3tGmSgMr+N3zMQr;png<49#EkG}G zvo<<1-^aZD?09X0RWe9py3}xi0k_eZ!HwIGZoeCKtI=Y?)>kjy;P`K> zTc>OL`8~a{8*4EsT2y-JU95HGQXyR^m5!B;H$#{1aw%j3@8QmG zMHaEK4Kt1QUNLP(uk&lZkNsZo_3pj-ifS*%YDvcGea+WO?J(o(mbJ@yb<)6XYDxCm zF-_!+n?AIM@)s`_*9xz!mtFxf%0+;c7Vo>XTqu?**PhsZ*AuXn+M&JKj^up+2dY<1 z(3m8*`KbB(itVRr2lv(@b`G_`{-vvz?eB9fa$xV{jA7iSsIk_|R~OnzA>{i$JI*tE z9A{+SvZ#;|@cVk%{ysm>(|a6e@D-!Yv#qH;vdjz$>i_?FDL!AD;>UT{L^5H!wnRH) zin80hDe~SkILQD1P{-pm|L+@P_l|xE`2Wuhe{J}lp&uIjo554N%>SF}{JxGq!$WmH z0OET@;)&USCdka$X#{)W;3$vR)9r~N8o?)~#NF#0^=@JIljovL(o%)+))S3*ND_?* z=>mpftZ=p&H&#P5;-(sAq&!?7jR?t74Up)GM9Ai&aGG2Lc&L~*sk(()A`uTr&c7AX z<#?|07{?Zze@shBgqLzmNFBqovyLfDgQl_1^_>4>((_NsgXqe@oQu{+zDwtSvi6BR z*_B3kA(~fjhAcfY@bO*QWgDIa$SLLEr4||Zm|O;E8;LIbD9?&(fehRy+0-n%1CW)( z=tNi)kz$EvHdT)dd{nZjAzi4wR=z+r+yRrdkL<}V2S%@|zSScGbGx$31WE>`z{U`t zn%PDzGLVzW0N+NU3mq_GqD<2&wgobfm2N6!WpW_W!bED-aK0WH$VfL;&}BN=tm&2N>5%|iA^`zi5KFXJDc(*RBw(^;?Zqxs@}x!eX46_t&n;l? z%C5BGVmd<3RaInKZh@mR8Q|MUbfMN&*`d=d1Kj^VEt~)MSA+S1-x#p_ztZ=ezL$G{ zrPt{Bk?wDGztHtdT_5iJp^pF9ak|d^5C4ixv1B}oZIfU*X(J7oPgB`m(6S?W$&N(m z!XzF~Rp52+2;vj3CdCXyLUm&7Q`*7E8)YX_k5+mmDP|G6vSy|o_wr;-G9D#DRyv0S zu%fcmqm?A%QGB{w18{a3OPMY$GVqdI2IzPZT{g9ND)OrZGQfwW#A0+djsBy#Pe3sa zrx7-N)##Cdvl1By=_0b)0xt7{L}i3zVb*e1bx-xk!1KGZ%f>bW@h+{Y2A83(Z?F^EtxpbyY{=j3>O%-%uMss_B_8#4nU72(oNV=K3 zU5^Z$*p*$B8@JK4t}2_?E(6^EKa<4&|Ki|Z!~g##{QuAQeHZ@!ufqTTZ1-HR9I-MZ^b?#P^hGOBeH~3D>Jl2?IWfB)+F1T^_in zn#|L38DFkfMA*}iEEh>2RkHLbBAP!^F9Mt{zz}6z%pp}hYZ_!=sr zqjUke&rYizHZ9k{>R#;1W}U3^&}2O_u(B(=Oask5K=4+L8ETP%3kewrwvp&UX`eE` zS|9_jNjDXO>g0@c#=~?L)w^Af3@l4GRnX;REajM?1{s*Boln+IKxGKB?6h+KuO1Ot z+Lc>b1Aq)R06!J4CoLkdC>H@@7tsYE(5$M4ZGi|BB_hCcycq)kY!1Xgk$HMVpdi`Q zkS=&q%H^#ZL}0SEuqV6HR$AHQ&>#cc|9_F^|L-0B^2mQ0SsMPG;d_U^H2A&2;=peX z9Pa;O-(U63_kOeYK+pGgf4BQw*ROW*`u|2KftwTCx7P0jtQlq~cv-_leHrR36;Ftc zo!GvmekWpN*_gkpD)kz60_>XHm0cMF&Ee^sGF=+9(bP7Ft&O(V2mB(ss7^|87xgQn z?Q!XzLSuTKk)u)1%85oT%4qv$>7EL@P-`CpWosr3rbPs9+LK)v*sUD8)guCYtWrFZ z!|Vjl#Wq?QPdT-yK?J6^#}XGZ69L*rqRTY1%KU193}DDoysra9vWw4i477Wqg-|uX ztV0IIw=rcY5poUbLK&Q@sjNi=hWF%_gDNZ4D3~4*;A55IBEY$28>sv=JxkU0(;@f1kQlPWM1bTJ-MMZCAS(=c!j3>XCuoUD;&tD^vB()PDXaYoC%RwJ`GxlRE~p*^H2Ck$~D; zQVD?aU>R}bD7|+-Jk9<87byS#jj|0n zE2Ik(Qs4b;0JjnliBLo#RT-%5c4(rB?F2+(KvxF4Xl2z;tqxVReMF{;IKPN46Bq!h zmY#l9w9Nq%<0628_7H)zVYz4lQZBL7Ap#TIAC{=1kS-Wlw(4Qia2Zc--y_l7Az8MS zR_^0~6a*5--DL_W+PzF;J#0me9m@O0uURSs4=`B8uLR77^Gl5rL2_44QOR zi^cU^19$DpE===;?~hJnMRsWsfjea)!1+aVnZWf_y`EYi0(VG7faKI9@MAZv$~zsm z!1(s<5@*0=P725Zo3Mj-wFh(x$Ty0Rvc1d7blqKgt}iIA<3 zEVS1vm*eTtMG3UTfUb;z_$cZsRnM9RU6k5BK0wj;I$gy1MRaAZgXa2ej-FUA0VJkr zkVwrYs_wrY33xy%0fH|0ipm8rS|lKWm&i_9P2vhW!mQGiE$aA`pP-W1(A?|*f8#9Oc^~g@G*%DgmfX^ zs@$NaK?WwaftLsqYd3b8n6jaG)bxlz0xl6Ez`5lZC`rIX1656?MFc(~6M>K}z=|oC zqqV>g;^2w(drER@8yMzexjEHM)gc1o+c}9(hH*YVT^V)B)F1(q+X=KpcGLt_X$yl4 z+9Co8w8Vfe%fJAuOnV?Ox6^VFAbt^D7SbQ8w^Iv50N{yxss z=f}JMqWhJuU+c0vztZuYj+g8F|Kwlc(9GtYv2wBs&wK z%SH#NDqXsF1|%{ zX%K09mU7Lp4hfjpektjsSs`5jH&uo=)gl84&_tZIfGqez>h%CR?&tAsfF{;A0Qhuy zhGRoE+i*QkZNDJN8brt9Cb03;9-nE(i~kkD>Zm?D9g7|`Wl7j2BhXv-yVN_GkG(?xV4DXTm}M7sz~Zgc#^ z*d<_MrVd2FHqfSHsUu10k%4EEG7zB)&?d@d3R+|!ftUzqC}bDG`>I~-Ixc~U?F3?C zK$m4;d`Q+-&Le3tgr1VffX^?Y3l2&~)o|1<1LNDkPfYZ5u*9lu8a8f$b~pkP+fPU( zfYdEfh2V*DJV1j4Ol$)$vHs4)jta7XQm$%l=n;SfTp|+ykj0YYK;~>ilp^r|&yW4i zSZ?%(G5@bP{9D86p%DM?`}_W)?_BS%^;$ijhyQ;L{=eDz`Ht^4F?JnW zsAHiNH;ut@a;m0`p4<4%q%Mk(m37tU;AqfAliL!=#0Xg#2Z(WsTdG3<#Bg_I)yfP+%j`KgUEx}9l>GBLp8)uZ&m=*yj%LRb8k?2Cu_c}?V4_S%)$!3F0@K^85{Jy^7tsaODCH|t`z0{B&A}7vWq{<=#%M3p!-#q0O}De_ zk%0?R8Sv?XI|~C%@dni(0~6bTORRUvu&08otk)JW@QLjNS|SqxBFi#d0D;-c2DcUw zI4>6gK^LaxD3>L)Km<5=Vq64RZWr@IT#I1#RrQA+5m=OnKuDM8qE6x67lFy`1Y9D{ zT1b`)yj9iPNy9Zj{{L+q4|VK&ZR~ePzcMmEd~oQ~ga3Z;nSq}hnCXA3@89)3+55A- z`+Kf*|DWBDcKuY>?VTGP{~P}Gx}VL-9SNqM#oDo58l(Z^vprbnI}%JipDvo6fr6E^ z>LJx3;XA<8L)}rlN<2cBixi^jA=NM8I}%Vmi}e?~m{@`8!1fd%OzcQN^&)g-fx@F| zC2P3kCU+#DdJ(b!y{k-?1_|Gs*pYzh`E+^MMoK@mMFwP`dLdnC7E&J$*8&-kfa-xr zT*a-vEJqxI$U<&G z9lcJ&H88Q$w->iifuP)%rbhxKn0h|9EO5)rs$n!=j3VZOU)79yO9ECI3!T#n=Aa;bcBJ-@zDd7xA%&ZV9#tv^)SSSuV! zJzLCIN^9&lso+EoA*YwITp({op+>3=QLG~YTheX_JsUMN0LT3au^u|7RF{nYCGvT^Jp z`|tFT>0=A)%cV8?_oo*Z(de2rv$Lp+%+KPY^=9W6Gx^zkF^%ub&Sw|RbnwKJ`PHI$ z8@;?-T3IQUE5?b{{8AAgDSl%-TwFhO>HhrMTCtqEn-;%k`mHT@r;9W1;|b<@1L2`?z|8E)j|9gS|_dQns|KXt@_Ur$7|NpDKzXANe&jbJO z<*r`={@-UhzSRi-Z(;{HdkG5_k+tj`(En*5l{zxdwSO;8hXiQP3dus%r!xMZp8Ht> zwCB@>aT@5Az+7d;>LFn757w+3`l_Xe7ZaXwWzRCRaK-G8IS?(Md-3!bv$0} zGBB}oNaA;}o@2}?NLv^ZtQud|BLWhfJu4&&BNN+^k(%6*;Os@n^3te&Zi@&=aQ1w< z90Rs_&Q@lZ77>u)>_zATh@fCOmIrwgHqEE*G(4R|dwAOqTq(1n3k%4icUkO2Vg zC1ij#9b-m;2OMcf`3}_~12^peY41ec)L~@2$Q>ZM+ESXcBf;5=(BuL@L{%>J*g+DU zJx&)!IG|Pnu}xLFv7 znT8jk3)8@rYx}O<7a;%tgB_0${{PqE|5N>cVfgUS=HP!AJUQ?$1`hOps_*~ld#d-J z^`?5>?Eb^<$GZM$*BzagJN_*miT%I@eP6F$=Ik1RBlqyBTF2=F4nE? z)0IKs7HwMDHptS{&O?$)&j?+ZRjg`%wm_7QC+`v)4aL~gw1J3(?I`O37u09%#vqp5muLiEZX}6^a=A&{M@aY05a85ZK-2xf-NKytY^b~`6Hm03t zf$OUpm(wEy9KkLo15vsVT2l4*wa5Sf>=G_m$gWHVMu(!x&>;ikJAklDG<|WpENr8# zJ{(cYHIR{rfWM0%i)2$7=Sa5*paLK*tpEV`;KR}kSj;{XK5R>qvG2VK02oFRm_6(; zDLIqo*(09Q9{mBBz4}WbLKi$13g~NSI`CUneK0OztHtdhyZMN{Bg%~u>e5qFQ_@@*mbd+*+wI8j=&B~ z$MRq|D_((GBn!}W^*3{bEEC;jstv|EZsv&{j$S8YSJpr;Hrn1)>CzxsQ#-H7f)sok zi7tdrRPC!42-Z32p5k(`GN2KeDP`%`AXpFq4qjKkr#@XKg1E}#g0zSL$F7SzXlP&O z>@u@J|5w#RdPIPO*U8wGHcS&iTjl(<1`(LvIV-VFp)!bHM3Cz$t9KJ3t10h)u0p&!V9vR^Hb#WQsbfHcb z?L$@@Ac8ihcTUS>Af(GiW4-Ea-U1moC6xgZR2#$DVPGkbLDM4x9KWu9Qw3da+RUil z?OJ4j!`IczfFR33LqL1(0ghiMW0!@|=g6@uLo;i+2cDM80P&0H0tz9j=}mNonN4^6 zw?GD-lE?s>j6tMnz?-$vIj%^g9vJ|BUE&@H=)%-^G+-&xr9}offL&Y$Lb9?R;1U$c z(sK_0!A{OD0LN!DKqXKv71tsIkI7_!@r%)A+1J6O$;q8Zr7{3PWr^stXDYXR>yZII zcP_5j!UVa81i9)ZdhIe0)c=S1|Kjj3V*cM32mfYp9u)uw`@bLa|6axXKdS%#F6#e( z7W4l;gZY0i#9aRRzaZf8$@+arr%Ygem{0K2$w#pps{LfKBZ_I&`m zIDlP57sbdzmPIs}HGRM6(M24=E^=%Gy0V6a;W9a8y0qw`HxjxiN*90#k!DfU-7UC} zFH2;ADNLa3W4dzMX;a`E7K}$5pSY)Gh)OJ7wvf(ly{2Xy|a1flhSX#^XBxv5V(I z*-;Z@0hUuWBc(wACU-c5UHlSYHUeW-+D5yC;z`pZ0UX1wUIK_)E;i9ZvxKU$)gl3F zatYvcnYkRItg3#6b_tl=S(RJ@tSroS474O*D6(o4U5^L=!!98LAzg^gsX9MeM1UjM z#YG^b%0joes+p`u1OQ=|xH36iwqXL8(^NJawTQs7Oawx@JO?0GiYi092u$ppms|p@ z`pUKpGo4c(wW31;CU!W4U0kh&WWm!GxCBkx+*(9{BiPl80BJSiRwkWpQ&@sS*vZ&s zf-WnYX$NZh^iDx80>m%S<-lxI4jF0}fyteP`dh$DMN-cgIj209K!Xf${~z`LXUD$b z_y0c!|DWgopJg2YKLGsyr+fc-?^MtCb^lrS<6S@9b!X>J$DhPI05+%JzE!phh==9~ zb^)#q3R2sD7r&jrDTLVv%pj_Q1CgkJM#< ztPBE?s-}yU%lK`MOc>Whd>gZdO|Xt_NtC^PvrGm;x}01_xzb+0CVD%8Q^+lsk2_$iSFX1_ZkRtgl=IqelifGGV<85M60(qXks9cKBp( zkH}@frwc=GQU29#gLLxk1WqB&8Y^r9&c1DD(zf#CGaWK8{x)z56Fyl;7pkFE_f(4r z3`#^GqzWCWZ5iV;{x%0DjEexL%QbAomXz!4b+}}2_sb+8Bnz8ptKOO|xCH=H2!A&2 zWU#s>#{uuG9Mr9%nCg&#iMJCtg-kL@eGpwJOK3}E?(LpE*oC(od4Bu%?Qh@SPthB_pSJ|^N@;BD@Z|mN=XZH8&jUMmZmLOy z1E0|@b5yuY11}WEVh<2WaNsj9P#nmwhnpUf+k2nVjGIgsEAQ8nY@ zY6AyK8in}QFl&k61qKcp$hdGzp)wpOX%yygDSH|2^Hzid?<6>ohD%KVaQ9mY4h){t zs)TtCXk5Ob43;A9rzS#yYbXk&u%LX#9vW%`1xgx)@u#ME>KTrMR5jb7O@;y`jlvu* zI0CTmH3AfR)rCvz%WgL1Q*JT?2W7q z6evj);!}eK5rXF+c+jn9yR*wspd?Y4#brehTjick0u&fJ_ZH$5Xod?j3TU-w-Z&&q zf!aAON|@(>#$_AOnS`PvH(VkdcoW5eCN4A(@vV{Cz=4uVVf?KrqFRPydX{5z7gdG> zC6&S)E?5AvpWPxHcmv6SBwWY|v%@9B0j*0|f@n{gaDJ9o9BRj|KG3l|GvFH zYUuxcbHLlPiueChnE$tSFJu1yG0gvuV*dYonE!vN>-x@5WB&jC%zHoow|KyoW-$C= z%ft}UmDH9K(b_L9~_78lwQ*ma*aP(Ujw7Ab&b^#bKh9a!wFrVIscB`J{LvK@#| zGS3zf3Y4@H<0VaC!L^F5V=O~~l6GPfmk;-DFRBEo@);((49a9Kg*vd4GZzyT;JmMWp}8v+L$fW)JWJrO3ufq>*df(!RZ z_Qoc{0e{_aA&bNAx|QL8)+Nl}9Q88V222r^6(V!L72$wOb3iSl!UZjLhkKm2fdeI# zLTn(ql8Uqh#8zy!W|<5JN-BjpTo|@ue{3Qgum}#M;llh-6-7$*{=cf@5T*b3Bh3GQ z9S#8JQU8CU=g;5(u!#5nBV8|}`~NTTNAf>V@z(3(o|CFnIOoN z!R6ZU0AP|_noMV-bK_-sS)?Y=EaHz@o)JM@2A5?Gb4Ok_XE2K|59*1Wt*T& zs%AjBAD+xc^kn%k&cF(Bndc?|L^h(5USj;ACD95@i>*l@a~PNO5}UZ-+Y&j@<=|GZ zMGoV~=>0>*OX0H7XwStZy?-F#s?`&7k21?ro39zbG7I9o?CgmQ2Oc3fkm5qO1pD