From b934e6145d6657a591e38a77da81319e961b198b Mon Sep 17 00:00:00 2001 From: Gauthier Roebroeck Date: Fri, 3 Oct 2025 11:50:23 +0800 Subject: [PATCH] book import --- next-ui/src/api/images.ts | 10 + next-ui/src/assets/cover-logo.svg | 144 +++ next-ui/src/assets/cover.svg | 36 - next-ui/src/assets/mock-thumbnail.jpg | Bin 0 -> 247689 bytes next-ui/src/colada/books.ts | 24 + next-ui/src/colada/series.ts | 24 + next-ui/src/colada/transient-books.ts | 39 + next-ui/src/components.d.ts | 6 + next-ui/src/components/dialog/BookPicker.mdx | 9 + .../components/dialog/BookPicker.stories.ts | 46 + next-ui/src/components/dialog/BookPicker.vue | 174 +++ .../src/components/dialog/FileNamePicker.mdx | 9 + .../dialog/FileNamePicker.stories.ts | 43 + .../src/components/dialog/FileNamePicker.vue | 193 +++ .../import/books/DirectorySelection.mdx | 11 + .../books/DirectorySelection.stories.ts | 37 + .../import/books/DirectorySelection.vue | 97 ++ next-ui/src/composables/errorCodeFormatter.ts | 18 + .../src/fragments/fragment/RemoteFileList.mdx | 11 + .../fragment/RemoteFileList.stories.ts | 49 + .../src/fragments/fragment/RemoteFileList.vue | 79 ++ .../fragment/dialog/SeriesPicker.mdx | 9 + .../fragment/dialog/SeriesPicker.stories.ts | 62 + .../fragment/dialog/SeriesPicker.vue | 180 +++ .../import/books/TransientBooksTable.mdx | 15 + .../books/TransientBooksTable.stories.ts | 58 + .../import/books/TransientBooksTable.vue | 559 +++++++++ next-ui/src/mocks/api/handlers.ts | 7 + next-ui/src/mocks/api/handlers/books.ts | 43 + next-ui/src/mocks/api/handlers/filesystem.ts | 61 + next-ui/src/mocks/api/handlers/history.ts | 6 +- next-ui/src/mocks/api/handlers/series.ts | 93 +- .../src/mocks/api/handlers/transient-books.ts | 1105 +++++++++++++++++ next-ui/src/mocks/api/pageable.ts | 2 +- next-ui/src/pages/import/books.mdx | 13 + next-ui/src/pages/import/books.stories.ts | 35 + next-ui/src/pages/import/books.vue | 28 +- next-ui/src/stores/app.ts | 1 + next-ui/src/types/MediaStatus.ts | 37 + next-ui/src/utils/i18n/enum/error-codes.ts | 179 +++ 40 files changed, 3507 insertions(+), 45 deletions(-) create mode 100644 next-ui/src/assets/cover-logo.svg create mode 100644 next-ui/src/assets/mock-thumbnail.jpg create mode 100644 next-ui/src/colada/transient-books.ts create mode 100644 next-ui/src/components/dialog/BookPicker.mdx create mode 100644 next-ui/src/components/dialog/BookPicker.stories.ts create mode 100644 next-ui/src/components/dialog/BookPicker.vue create mode 100644 next-ui/src/components/dialog/FileNamePicker.mdx create mode 100644 next-ui/src/components/dialog/FileNamePicker.stories.ts create mode 100644 next-ui/src/components/dialog/FileNamePicker.vue create mode 100644 next-ui/src/components/import/books/DirectorySelection.mdx create mode 100644 next-ui/src/components/import/books/DirectorySelection.stories.ts create mode 100644 next-ui/src/components/import/books/DirectorySelection.vue create mode 100644 next-ui/src/composables/errorCodeFormatter.ts create mode 100644 next-ui/src/fragments/fragment/RemoteFileList.mdx create mode 100644 next-ui/src/fragments/fragment/RemoteFileList.stories.ts create mode 100644 next-ui/src/fragments/fragment/RemoteFileList.vue create mode 100644 next-ui/src/fragments/fragment/dialog/SeriesPicker.mdx create mode 100644 next-ui/src/fragments/fragment/dialog/SeriesPicker.stories.ts create mode 100644 next-ui/src/fragments/fragment/dialog/SeriesPicker.vue create mode 100644 next-ui/src/fragments/fragment/import/books/TransientBooksTable.mdx create mode 100644 next-ui/src/fragments/fragment/import/books/TransientBooksTable.stories.ts create mode 100644 next-ui/src/fragments/fragment/import/books/TransientBooksTable.vue create mode 100644 next-ui/src/mocks/api/handlers/filesystem.ts create mode 100644 next-ui/src/mocks/api/handlers/transient-books.ts create mode 100644 next-ui/src/pages/import/books.mdx create mode 100644 next-ui/src/pages/import/books.stories.ts create mode 100644 next-ui/src/types/MediaStatus.ts create mode 100644 next-ui/src/utils/i18n/enum/error-codes.ts diff --git a/next-ui/src/api/images.ts b/next-ui/src/api/images.ts index d468b0bf3..4b2b595dd 100644 --- a/next-ui/src/api/images.ts +++ b/next-ui/src/api/images.ts @@ -1,3 +1,13 @@ +export function seriesThumbnailUrl(seriesId?: string): string | undefined { + if (seriesId) return `${import.meta.env.VITE_KOMGA_API_URL}/api/v1/series/${seriesId}/thumbnail` + return undefined +} + +export function bookThumbnailUrl(bookId?: string): string | undefined { + if (bookId) return `${import.meta.env.VITE_KOMGA_API_URL}/api/v1/books/${bookId}/thumbnail` + return undefined +} + export function pageHashKnownThumbnailUrl(hash?: string): string | undefined { if (hash) return `${import.meta.env.VITE_KOMGA_API_URL}/api/v1/page-hashes/${hash}/thumbnail` return undefined diff --git a/next-ui/src/assets/cover-logo.svg b/next-ui/src/assets/cover-logo.svg new file mode 100644 index 000000000..893a6ed5e --- /dev/null +++ b/next-ui/src/assets/cover-logo.svg @@ -0,0 +1,144 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/next-ui/src/assets/cover.svg b/next-ui/src/assets/cover.svg index 893a6ed5e..8ae5d702a 100644 --- a/next-ui/src/assets/cover.svg +++ b/next-ui/src/assets/cover.svg @@ -105,40 +105,4 @@ x="1.7763568e-14" y="-2.3789293e-05" transform="matrix(1.3333334,0,0,1.3333333,0,7.9297629e-6)"/> - - - - - - - - - diff --git a/next-ui/src/assets/mock-thumbnail.jpg b/next-ui/src/assets/mock-thumbnail.jpg new file mode 100644 index 0000000000000000000000000000000000000000..27837fad872878873def98d93c6be11890e35882 GIT binary patch literal 247689 zcmbTdc~nw+^apwn6*a@539cv_md!bofr@C|9LmIOzIoNsGBZuY91~D08xW@~GXlF> zWOW@H9I_I#L^Gknu9l`47%Jg}s377y{eEw~x7PdXy?0!?7Rz%EXP@uqyFYt>_TCHK z3nIXDmzS>>0MP*e2>1gm^Z+{m1ATp%zMcUL1~W7?Ffv}c*m%(*W2E^Klckn_psg(b zK%uN{H`!UQ+<-x$)@)n5!QNrZmMv&I93JcFw#jLW;c{~W;oc|dfax_bIB14E-l;0e!70UZbw zs-p|l)6>-j&rSpX59pfdncFyc>Mz-Q47QTA)Gu$Kx^#jh3%K zApcmk+HTF-bz8PNZ^PnTcKo^1%iG6y*S`G+4jwvu0hV zaPd;s#N;y3e)Exn|tns9V0DS>6mV?bbH?2>Lx>sQ{ecr<8hyimfLO_ST*t6wEwZ}|D9nO z|GzBzzYP1o?fM27Lm}YeLCpXHkn`uNm%fknPr8N}kywsmgq%<0xR)K;QH#XpN}x>( zfQe$5Khpd;?CXz>2WlRyx&*^vHYF=ZsGG^zpWj{2DE~-eD;9vRY3}z6+isShIZe~| z*DRr<;(3EYjr`qODBc3kYZT8?ZfQ|#RSdYWO}mLoP{_IlORUjr7tx{3Vn#PlCF`e0rgP&m0BhAihxL89>hwn8u);nvAqK9~%nRd_D|A(g5& zYm0p`&RE2dfrz?^oprXsV{zL_$=%@=d}@J~ET^0K!V(5s$AtYFHV-Aj)nsPawqY6- z0_6hmBXW^LV4{zKz=9a0O{1b`mq*gFPTzM}?qv@VCA2uHDM(3GD%NB&o#o}EB}n^$ zC03Mx9d%P!T?!LDIICl@EqbsQfX71cc%HDQ2k~Z+k;fVc6boDF|5B~gzS7PtvxeH# zu!!hwJ7y_(7fO7(kDpF+3BVZ;;&BCmE@UTy#9+mJ%)CoTo1Kdl=hv zzRD|!XGtI`{=4azs@K3c`Hhp+>ob(L0Jt~ia5{V%4re!vC(DPm$l(Q`Wb}R>O?0_c z1Yttt+Ei4m`)T;E`PPYog1VUnfY3z;4#Ob{nF`cqH#oszYFa6d(Ss(ye@W4aHB_F) zeP%2BVbsCDwwCUWAGo*v1vZZ_MaqZp0)L-2k!Oj_@ZYcVrEO+~gm?#0y0AA?DHh(3 zW#*qsNT`3X)G@DtNhME;722Za7@ZS3`E?r{&%Z>aQ3aKL5XW@pvCF*evs$XO3lUTV z*?;VcVCM3emdfti(zbH{95&Xt*|TK?%Xku#MK%(Q{Ia zwGN)TS;4a?*FSJ=i46uyr{I%@b7Yh9lJGO{4q1dDkNX%WTQ!E9Po0>FL>Wf|%Z8uj zJ4}Ilq%w%9$2z%dtVf%`rjFOx z7&0ha%|;wb_^?Bl=J=H-?b1jQ$Rno77b=52TwN4eOLZauUvxd8b;C>PNdm8{zpD-~ zy_mqveoM}PlV{J#W|dfDlGmFKZlTvlERRz=B_97y{I);(z1c85r`-+St#PC%@s}eP zMQ6VVO|o#N7HVShA!0`OJ=GLy;mNtjRp;+WDJW(+=Q)Ptsgghv) z$SM(|8KhaMQtxnHF8y&BDooF$@_t%sL=R3y{|*FHvQP5drg+5W@sZB|h~F(6S^(`T z47!~&Ae%G-uKG;Sx16{}HEq>0XEaVdx*=>@TfX;M**q0RUF<&_3NcS-?XN{YP@mJL zMjF`AR_-g{*@o4s1cdPo0l>1_C3AOaNk9fQ*hPyRV?GF2YJ1T-^qj_ost{tzAuBx$ zb0) zo}Grua`b(h(-0f@0cSg4PY@7;(qcWDWA&~w0jEJ}!7q2VFvD<7_z5$bRd6y6QsuB=X;*1>U68cGgrm}i$XDp|4gSRF zqKl-U)7Ge`n>@U#767vdF7Mb!YF?L22yAJ#YcFUOj7J~{Qby@rTg5)(f;z8E7`C@x zk}@Bcl7H7HcXcexl9?k@C&=^s4E{VEqp}4z0k{#AR^Q`%N_1hETwJ(_$_~z|07UIY z-OJZ>F8~#{rZj~4!*egM+Y~W^QX>cgwoKsmgNA&j(|aE>T*dfGkjh4M$^&5UF&G3c z2;68w_pjP@xhHP<9HE49VbCe*q&As@N)8%B1~ChVHH{oj`#a#z*tqWPL~E&CSLHw# zbhyPR`WFTXW3v$&Z~p~AP~mag$VuS?U@ip{f~oFl`+?{kT;S z*bV2xbqA8rN%3PmVz5gB-!alS0&=zX{0~2AErmch^LrVVj-p*yS)AYnKq4OJHj&K= zG7-qOUXGed5Hf*q_rq)6J}MWZ3Iqz->;k~ewhlx^D`LrX8dX3YZW%ey2eS%J1Ke15 zTq%^VTAS6&u2+~cJe%V+TDJDFaR%nkRs=*cPZ8&zf?R}qhzX-o&GeYO>*u|Y@6~5A^kY4n zc$NzQpVWicyyjiYHh6LqYMg4Kt)0WQHlMNeB=%)Zj-REz2G0`GyF=2X7S! zjZUJ@%BA+i4aO0=W>XsM0sz0Y@)J}yqvu6j7P!u`c^8S$I5mM~%lCN?nFXKHZCoE= zW*X2@hmnhEUw^w{T77aL-zdwrAeU%Ov04D6=X6og0a>ix1c6GU;_EPyzFOgc0=brY zlUQ5?_(P)m6Iq1j2~C|i;lTCPL2+M^x?xoUf**M8W$yjV8+wI1!Y=l+74xa$MK{GP zvnM8z24h-+c&4tz;Id84L}o#5St$6vwDqB1@>MCASoGBaXaP&=>yKz`76I2wh^1-i!sDgtM?y%eb`(rLCmR;_ueVx%gu z@O8d!tvJ*Z#_PrhGC@V0z5BrAm=voj71UOwObcp*s)0Xy5Ejd5)3H=j7mB58e21|G zN?Op?=b)AF^B?Ld)l;18~x&S<~g+Jo*{PmL%a`qYV&+=vBR>Ioo-rS^l zYUOacM@u?wKUS2AGN~YNL|%GW2VEcxiy^fDg1rmCe;OygNZx$%K-}A~o7PfUr&TJs zzjEmZc+*57ppO;~_vAEhp(Pcbe;0;2s{d;+=L2a07@1Pj<18{p5)Ix+(dWTeJ1FbA zni+=0M(T(PF2Wd`N~=3b8s~wx?ngITBir;~3Or6Jo%mU_*i~m38RN?|~2v43Y4ZCP`OK@_Sry7$B zf0pbxY)+f{W@14Fy{EJWIP)yMZ4;-Pqmpa!_G?A!7y;&;#LM*p+Ujgl1-2!l< z2!t?*GgVzlIQIBE#v2Q)Xx<@Ho6I|Z1saxJEza=erx7?}Ila22Z+Q@TGT)?j65I!* z;s9Km!kI}<=RKGj@|FrLJao;le9!HP@qM0{O7W}-g%j;_+XJ$f%LQW4(s9jG#Xds- za5QXni#;pM}0-fy>&H5A8<4D~l^#Emv)4a<5s?Hx8jwH+_xOspen zgS3`Z^g!vV!#51+R`pO;k{ER2UC_}_U#g$O4~JE0@B~4*5pbgVd7@cC!BaPNic*s{ z6E0j~J9x|6&+?W)EbPkT33XRgVpauY*K?^8(;A1C1O<`1PXXh$5O3uO2%QlNfMton zLEmlCH8}nuJf6@xGZbs(x&E0!5#W&PUE?w_C8$ZwdT5W(-%r?f$c?Fnr)WX$iP{1? z0oB=#9et_Yffj0^d4Bp(X8h)S7X}_HAaG)mbj!ajW$Lekd_zr=nVDS^vVNp0((4T; z`P_EH-W4TkHn^Ar^ev@@=>A~)eU*eDZ3O-)>l9?TU2fpzVzxQXg(PfT03I;6Q7|VU z??sYJmL}EW`z{l*NzvzBW%UQFGyExjVij2xFV8IO&zt$j2zFQSKLCQcZtsMdyEWa& zMWxdm$udEsIA^+=*aZ2qd%Wb>$3%CYOgWqzciMiJC^rkex97LJVtCrFt83EVYMUEp z$RjE=FUWp+y5(s5nfGEhN@LcLz5&YIbMiesbkd|!H6;;AAyD0d!d`o#ZXA`5f0eQk z_vE|oqc>tEqmdn$Ht&AsbCns^E^kn&dUBL-d05!rbGH}SXg#n|yy9bc zUcpO~pd7{Ue9}8|vDLn}f7PwiS@B*%%I52vhzRWJp(B~0zk(*--ND_xWnys% z(E=s2UM&D^V;@gm*oF$X+7>Y?MNtdXQ*Y9njq~GT^_}B2AW!2bov$|Cz6dN~*b=%L zm4b;s$a-$3B9ZZ>X~O*ZuyO4=fUf@yx)f&{77?KDl0sECep|ESSn}U>tq`i9i%`(y5~P~6*=*V*-`w33 zE7wfShBLnMw%WIigu6a{&-|SfNJc;GYhU)fte_X?lb7g(I$t`jWu_RPe+D?Md$7rD z`((#U5rprnD+(nc7krjheMU2_QbB7VDkRHH1C#eUVWV%(f8LY z1py|3DFvPBWAfsW_%tZ-(~kwf>q2tYk-3A?zbl4c=hso(IWAl612m_T12%wy=j$5;0zCrTp2BJfN~% zcfnsjB+DGRXy-#?orJ7wI5ksE&D*m8T%f-DBe4EygJM5~mT#`_Dz~LD6@SlSL7)Yi zu^!@nojUyfQJU8f@2<2acvD@~&0pW{JS)*xeO;Y zR8$eqT#FA-%0vLT9hjrZd zdvx(_)|jz4ou7u)zPgM*S%!>{`d+ep&aFr=cfWo!P!k=20u$h{Cbh{B!GG@bxbohC z`rY+g|M}-Jo7{Bn@fJTIU52K>1w zGZz+eCVsdF%R}lf~f*92Wd<_|} zlMK1e2x>#lNJbYM3a~I;>fy&(C+1d(J}pt_o{6qb z8;in>;NV^0MYd1f#>2QRz6iTUyPOKrSk3?^0&?l6UpXHXq8gQAPV}>TzVwR;vkr={v6`5TW;UtsvKJ%{BGvo{JAsXsK@S zqBaj7c&`sq(JmcALRLTvMT{Ls)Z)81XQeze@l}4f?UTE`zF)t?h+2@cA3?9?#GX5G z?m&Br*bUxDucUzOOjT*%|isiTW&ieY?s> zAVAzUHfMH9%D~wH=8_tt$+$QpmMbMlJT;OC#3oO+wzx|zsRHyRFGGhlx(}MkLw$X; z1z>Y?#_7MCqvF03UV~~!GlLQo0IjuDxf<9m$&CZ$7*^x2f>`VG)rI(4Gi~ZTPF8TC z$^T!Bv6!up@fLs+8Ox3*tiKrB5VryeA|F&PcnKbu^Xue+cf34eT+Uhb3mMGMPcT+T zS{!}MQ|6OFVaZKiezgj>I2RGy&YWOQiMu$Bo;9~6HG`}D6WBM~@zfA)O{$cpZ|xr& zG{wX8b13!m)N5Oj3Bbif>vJObEinCXqsE&?0P)t_usv0UXenoSlz9E0{A+Etrbls_ zSB;ecdJbmv@{KPa045Fn!kz`7lApviyPDlCC#;_MPrec*bIuy#s{ zx&a&tS{{5$0LQz4fskw3H(*cMrrq8du;V6Ocy((0kVAVn{8NeSBU_;*cV%R^iQEC; z{8x;OC#9xf?Hh@`v=eGvgl*X&Mx{`% zv|#66eipMHbD43Ol^paCvbqu4h8Sf7#_bVtMxoCc(^zdL6MZ#^Ntx zTr9cYjWkaX;q<&_1^ve#`tqCD3L%?%j_b^He%H!vI_@idP358#T{?NO3E3CyhqEw^ zQr1hQtoQkH%eUrQ`O{~nq)eo8N-)emBP~u+-9%hrq+Gy5{z^bu$41{ElxLaLH4-0w$4yCZ^&UbG~=z4q$l^^447UMv}ZV7 zMmHH1wuOpx$!*%rBUBR^|J$hz{q{C5A}|vI6&SQU_05%@T7$C%9JExmw89rKUh~-C z`%3nJz)jjSfo{Lk!bZ5=8HJDD_2!6NpekzovNbvbPpic0oIx=4w#041q8Mc&jTB7R zz@$+SWCUzKQs4KED_EnSEbZ!1NO3`%UF!_|N$;%)Aqrt-hfn%a=R+IQ>4dHxf<&C( zxsv9K8}T-gtEkGxuVp&)(5DaM-At2b<_VRECLr*`_R>w>6J|0{OR=Si9;V!aG)+l4 z57g9<0h`+%Cs%qyF;K8>0-7S&k$)J_4gE)MJ)wYmf%)RRBHyY+nmZRqxIz_x-rC|6 zdd=coC)Q;Xm0H|i(sbY)EW<#Q)=RNg&S-qcXm71sb;}Dd{r$sWWu>D7yJF*)?o7=N zTkT;jo8^1z1a^)#ZT%am9uBQP?_9v?u0^`3vVPY2*-VxaH=jl+(u=cxSPG2{>zc`8q!?2j1eCI?5U6cvCS$n=L@ea^e|Jsm?QC@K z)!|i;tvsa&88e}UJjN_O2BRPrfW$Ft!B2vqM&H2UaC*TNK>E|%M8=cyDo-akmYwvI z1A|$80%;dW;OS(arrV3T)=Tcx*>TQO>c)gj1OE9ZMms-J4bj@l`#!(?9U}pa!?AWH z-zaAXh>sz6X3TqsH<#L_n0#7}f~UZ{2R;@(d9mRrBb7-7=@@<1^F~ZxNtj#ZL`~8d zc!h>Ct!Hm(BMG;LcqOjYCC^R^l>9ghZjIq&E4U*Oa^6`*&h$gCaEH8S1scLOKM9FJ z-RzI+&>iJk9lsIkxys+mP_$3&)KfObhmosTItM&fFE=e@pV7p?Ljv3&5Azu*@494X+v9Xhp9@ ziG2IJpqh!ChRz2<{-JAOjE4QH9q#pfJZ_$pUUj|uarp2~*p;n;wyUmKTBIx7Q|4H` zWZ5%D=EgzsPrf(E8dN^qx9RhZ16|4$*VAS@bK58LUihI*&QKyc^PUYjiylgpge;Cq zb190o=+MY%-lo{ci^7%BrR+%p-*K(iq_2uL#Z!UrfO}j7nau36BcVWtq^96wN!Nqc zp7>^nZLwgVRVaD3UoNNI;pm1(FgXNi?eM6_RbSQh0>*C%b`t;OqlQ}}W>$C{oGY!Z zof3)Zo$NJylw2^A&I8qgU~Oql?{dfvXx?-C&b=9H%u}=M1ZDSC7jO@SpisO;nx&S5E+i#+0c(?`Es^jvg;7*Zrh*B@pA}n!k zh2q9*&#BeTlaaZWpK&+^JlTzr_Ov&g@y|0i;=={t$Kb)XJsx2%Nb0&=vB_0Ai#66x`8QT!}9)NgpBy5w9t)-M(G+afMU2MuCvPGqbS=S zaMCy3jC%EJ@tU(m%fq_p;q;j)IfDpWz5wj56B=HPJzo>@{fYfL5-*r(N+6^tZ|LX$ z^@#bpZx8Fvy{P4Xy$y~o>$!|v)2*AD$CmvC%}AC7JKQ_H?^M@BZ}Y_iu_!YdfjGIo zTRw`Zuibt5wj|FpAoURYO7ooEecnzNW_#d9-|DiyT>m{Uixz;_d*ZBgpuhI9oX0|) z`qQ=4C9*=9auxq(5*W9Ls4t?j$4%O!VoPe@cUz}92ozEl+8YZzKwopj2AfySO3DJY|`Pl*8i;GuRHgMsQHw`HJso{qbnv)g znH(fIQPvVnTmIzoww6y_?6d8RBxRd}^BdZ6CtB$sLQs1jr#{!zg!Q`!yFBhIp-TW5 zuEo2H9vT6dTd%VCvO-VLo*(;ClIAcbwCYx!D)cF;j%X42uES~+S|Y{1wI}|lLq@Ej zt`yfMtw>WB@VABTZ5qIyVI8>2S^#c>FVpgH0OYxfYcy-U_>Mn`er~!Y?J2wXW@PTg z*fMimx5*hP*6P-jxJTd7jP~Y%$`R`Bq?({p5aLlqp#3@@scXH}NwQKf(8ap*<|9xh zh5~s7laqvI@Yc)(Lwj#89(1Ak*bzd4Qz<*{>mN9hXdbv)T2Bxt)gmRZG;~*P@OGRn z-AoNqhfF#fE6TD)JGoYQ@<7tDrYgq|(7vo?Y!9nJjHgwDXUORJ9)@)5_cl1tqfxVl z9A@GodC9u4^Jdv~0vvB7NhzkI3Q$iMB?Tv+SgR8^$_<5st~VWlVxPTUW&6fSGG#3` zVf#&{EdaR!o72zvr4h#ydcW^5Bsg0|a~N?rKB0ox*AaK~wO!}A+I+!wxR?C)8#5bS z^zB&m8q`c{FFaNM@Ok{px-j=gl&}Qc3Hpr)aXAi3V5hYFdpf@B<@*b(Hs%R;{5$;A z?_u$UKdUiknWc7BXb}Ov?SNctTgF%di0r{O6Fhap#Ir*ViQ^+*Xmfg!kH(>o2GfVf zcoOO#%`5&8TsRxJ=t=Om9Yt-bT#@vW78Q}saAHO*yW_Th9RW=0iln>tez(ei@cOP# zlEE^CT=qM|f2h8HPro31WG(qH#d8q z0UOpX`+1yn&Svi$7t1XVy!QUgYZ=j+eSRh|5x5wJ*XM+7sI-yQg@?v^+f}3#4^AyY zKA)S5+Ir`8drX&tK*3IbK!dN=6KYrOQtIJ{kY5Of(mZbUw zlx(b{$MQ;~_oC!t)Q{_Ma@Xp*T z+wS_K;jlyz=8fo$b$FFS6{scBvE%iE%g6k4&h$`7+pOw%*ad(WMfMGRvFG9IAAd$Q ztY`Hqv?*H5*Ef6k4rkTXgPm9D-*)z5Tpo^zSo!BPjaE!0Z{nmq+a^w)@oG2x4tZF} zCPu#u%>BA5E^!I%lhnPRZRtHgFU&u_)bvULqh2D#DFx@nI4M#U^`s@y7`-hvcc3u~ zs+k#+$ugF%{pN+paLAy|3~MP&RP`QiD`H&%>lOx;nkZAT_g&b09oLglXHCuWqZEn8 zA^$Yj4IXlgx2+(q!D;jfoPi9(s<4e2-6%PxzgGG`$v_Jl`^|IlTr<1U9n@eHSM6Cx z(9XV=XpT}gE1j=61@Q^FzJbIb26)*UXt08xDN^hAH|z|s5@Q8;J zm*rm>k5zy3>u?eZIwa=RypN4^)YOv;CD^H^=3PT2i1iZlr!LZR_{&(6k16wnukW@# ziQQe}X-lW073|6ie}nCBW4db7Ju9(1vVZ(l|QYcPkUcEFO&S6I)_l9c88N0HKTF0Np#}pz+Z`QsyX&x$8^4uus)2ryEfjhhT!y?SY4xCm zD=BC8ef+a&$FT(Obh>Goi9*mAtl~y#B3s(}NBPTO2_8?juo>wz85aIZY zyf_T;pWCl*_Q~e(qA9m9POt-AQxag)D>2_MqU-CU=@aMkimwWb*J;umOfi zdxweUNUJRGr4~=Ew0cz@_ckU_oSp%=Yp4YOS#Hm+14Z-VLcU`W6y0v6nt@>q4ETmk z{d78QUNJ&d^9b_e*NqFC;$lgy;JV(t%bPgSlxW|3tqJ#@Vg(i>`?s9%g6tnk`j*z9 zg-%-9J94vs#5xu@8zQm6_V^TZh(EcN%Q5YFl9*_>XqFmCuu8V3)fluQTZbD6>=11u zA@!;UH+s$f!4#cXs$f=(I}HTvHg%n7%Bc()=M6C6z5(}g0-D((*%(g>wx&eMn~ZcO z?YEJHze}y>RHPlIyfLh`IZ%M-RSu}=if12JtUw_4(^-xQxv65SUM(BMC8;j^$6A!+<|u@3&E;L1IP>h zybO?9Cb~w!>MPigg4EyXZ9P~-qfCDiR)Q+Ou<<+B;GVvq&{w%$DebRSh|{;X+^!{j36WBSDw6wR7cxBnja~nd zQYRbhoZntG>UGr%=q1|T*Q$nP{oPtzS)jw6NqfA(i7DAUSj!pp%)5Qs?0IrvS#t2J zq^aroSjVt}MYO?1=7zRtMOR~mNs!KChrf?BW^*Nq93oXApx#`(ZXkA>ao#5^Y{FJt zE0!sA_t48OcN(9d950)YEAe1QPh5B0bv+2w&SDpnoY_qh5-w4*un6P z=v}pVLfK>xzN5XZ)nogF!U_~X30=r`;CuHOJ&Q!+AAS>=JhymlW+4Zc_TlZ*(6CWB z1WUN34Kj`M@i*1u?}$5+JQ|mzNdbeE*SpP-JEUH5Uv-(cOpd#-UXf-eDbdgNy)8P` zW477OB3Ch+W(Xo)lDn^N71_j_FyZ{_#K10k9BiVERb=^8QwPJF9`x|tP}*w((gyha z!OTOh|2V$B8-KX;LSXvsOWZsKQ_-o0e>Xr59nNZ1IhuHY3TsyvSXMn*eQB)oe#?W{ z<{MH%GpO-sly1VJ+V7TaS{>><*yAwgwPindu1s9vXg z=68=gEudLc#`OD+CuX5?XGVLJj%+%5`+W6E+;|jIZ6o=ymy2 zog`HiClCRXmfTG)C+T8^Jjl-DbCdow_CSS6Q`NOsF$+LIK@?wqN3LTTi%9T)sT_r` zf0@5#&|=k2Qm)4dUE?^DF3oz{c-Yq0|E5LSoH+aHnFGRlns+`=$in`7WxV*g3RTC* zN>e2))A{kk?7{-eNj)% zm@y-;AWC=_OGa9Czah<(n;mh2XS;^){TjBcf7W)%K;4tKmONcXsZO1PY=-LeFz0Rb zNKoX>TQUhwz4(4zKNK>(n^}lS{BA9ZHIXD~vPuLYMCd0v1-9zew>V?*O z7)eH5anpjyX-RAn#(25li-~E14+e?eyf?Q|n$uh_=-Xm$2NKqMUmdd~>vHTj;4L$eryS;i zH85Ni_MmHh3nGFuI0iC)gwFL`$2vbIx?a%54t1}yq^*KPs5V4}?}UdC>&to^4rT+!2W)Yolnsl)xBk;tnTn`G=t3Rq)|x*F>D{;S1~ycWk& z230+)Ns&nGlOM+-m^Bbkxu;XrSFksOH-6f{up0cEh8}4eW^{|Ya?Zzx9XaHVf8M-k zqjTiGRb(f509M|Lv4n_GVSrIkYeGc0qyC|}68Zy77apXJesr_%o$Lz%$y_~$DfyU2 zEge++OMLr!&Bc|hAIqz=xjl2Q5sbOpc5c$j0F%ANHEu^AjX+yJJwB;;ulbyRB&+Th zFeB&VaIABU9)l65{R1+qHradTWZ+F|{hfq#@y~l36(WQ72)j5?P)Q!+;_I760Jo@9 zR*tX2HmEDV-fBC}N(G#{bw%)QL|Of(^M^Pqzf(`W>Mty)!7Y-c$j|6_!?5z=cG;G( z6Sg5wZcMwbKDW-^G!X^^3oJ@$1-VlKTaR`)@WoJdrI{q`na~(o8e(pJbUSMGKpy2( zH0oT4C~%!jMJc+&a5$0FRtflhaF&*fp}*^uJ)AR^J@0xuhPDe(q&Ccxl`9?MEdHSx zia7)Q=`$V`n|#OIq8}zNmo(pNW_fwyMAdi!7(WE>IWobxOGRWk)z-q9&W>MD? zM-cp6U-Hd&I8zoVUbpY*r@MVlIR$PrO*1!_yJWXyyE>|HZ&FNSyJfv_e9oCm*Lacz z;PjtfyDyV+lTrCDR&0B4ykP&gFVAjRx!2?`kA4clSO?>D(IMNDhc!<$kv0WE^)-Qq zEgwBwGC5vChZ92-#WO>`zPLnR)|tXPj0SFA^!V)Yd%IhSb_FbO>LcfnKO_KVn^N5I z(K-rm^ce}5JWXuxwmHAiD7h8>BSMf9Rr4dlv<9{RG9&~a0xFdD}cy)dJ z?hE4|&o;#b{@3R_Xlr}=aC)cc(B+Yv@`oWo!G0v0Xzr4kqYRqV(%v=Hs2_G|x}*LK z{n3BZQF{cWLq{-2%$mKL*LlaL1eRNiYu4WxXVhEWyVrcyw&(?Y*|($(u##b(Uux=q zuS?61L>`oH?R~Qq$Td{m9_}E&zh3IT`*akNV->}uzFm~#@JnuL{J_!SOc;!jG)=e@ zb0q4I{Rcm->}>!5-4>OmIvuP^{AYWJ9n_ZkV`JbC$)>)tv*hOgB@Pm{6_U(-Fw0O8)s~&TdL@PA#U`)^CDEw zWwbbHo4-Xmd!zOaNlU52WG(M%Ztst~$Q-xV5wq&hyDlH;KWF~Pl$!z-oZn1UTpgO8 zCH_37L^Z3-`kY_g-{ko+CaLL)Y90&>2H8E|Lc^|Ur0B_xD{d1#mPAm3L~o20ggw}D z`G?fHS|H_P<$IzDdxJKA1Dgr4sCPwcTMv~rD2CVl50A=wy5NvcZTc~;IZE#|8sek``-3oRI&#y zcL^VE;6`fG)Q$c1E}(pT_rBuNw*lG>8*+Br-C-JM_^$7f<#0mIdKTU5+z?t=TAUhB z%J8(c!U_CeN=L|DE1yoK#g7=YZD~5WXeP_ss$@zj?zt;IyNcq`S+V;q&&0+$)_22K zLi?+~H{d1WjT<5kEooo2CW>6I?G#?Pz4P5&o;8eDi)OiBNN?IAE+3xP`(7t-{j(IQ zBuI77iHsDN#hoVt-+%IQOv7QD1Xlmt{No!8<^On>n;(i=B zBE=~Ytoku?>N)mKrfF6932vM2I59Zut`tT$Hu~8wk3tZ_g0^`wt*C!|dUO5wy}*O@ z4u#2WE!T06Q&L8jBULfK+GLZh`mX9ZsdB`};Kill?2hlZc*K4H7WPrxBYZHlC;4(z zRsEdf`R4o&@|#Lk(&?(%;bQ~kLzb1QF7yRqy z!Jf^eMZ~K~5kD-h=UpbO+f$b}i()kfr;Pr5S#fIgAKLrN*-vdN#C42P)cl_4BzF(> z_1DL}8{U)ZTjaet`+iYMaicqOs*BI(zoL(9*opModN=BhY=y$JPs;Wn&$}i}sWYN` zZfsYm(bk% zhCQD;;bfM$V19AXvkB*Wr~X zS<0>#ISp;L<_QtigidxP;n!!8yZuAHz86L<=5$TkRrsPha<2XxbM@c1C*Z`fy@G0_ zWvW^!ebBM(-DZn#hY^GQi$*sd$}o7UW+WIVo$-Yl{jiUsPz_Qty`b zVa`f3H4h9qdRiH%mO|JAG4t9v=<)aP2kv zx!p@5BMT)0ry9S!FT}d;idGr4KjZ#W`W|KvOMlH7&^bA8 z;BP_Z`*usQ;~L%#XA!A6LD_^)VYr;U&9OSP=KZwIf#Tu|rBQbR6u4&dSh$=fowS@# zr^U^GwZrL#OCsnBwoIFF+2N0;5^E`JlZW6n)mX~9HT3NA``ZAP;^E3CYZSaLg8X2l zMb5d_mUlxC71+ng@kg-Y=8)cA zVhpy;(#1F>0w&nJnTb1^qgG6@tHe>tbMg z+Y)3fu&O^RWxq=IN#8cMr>+gya3P)#_PK+x&CBb%le+XM?dDc6b&U*^s*^b7jij8X z?-XHC)|hSvb(esZbwsP**Sz9$0e<&~fZK)F?Sii8JB+x-YaAGl(gU~L?Q9vFEXXk2 z$MYwvQWRYY29s^!oo1f-2bw_`S zEm~4~^+NJJ|5jxpbN$U5$I$O7b8C1H+(3AoL*>8v`$Vt3XTXvD8CdIxam~bVCO7hr z^XiLlBUjp=?hO!#{-!1@`a4kHKH^Uj}fQm9i1!qETjbM=~lGnRFpx3F> zFj=Njas@$on!{UdHo+$vY|FntBlEonr)H$Ck@@aRZ5Gjd(W~9hg!T82+r~M1=!Olh z>$$U?UeJJHpKVr&(at||ZTC6A6PBS|p_dlt15SDwfV^5R9p}56K3y+g6=wjINW0MGc(t^9OK71eeDiT| z*l(Cc@?W#)5lr<2_(t@bOOi5}Pv_j%#<=LteHZ2z|pXX)Yu-r$!IhW>gA5`2J2j zumefPOneu|ayfU@;sC<>{Ra;>D_CPWq4Ip!K|^R{vNNO9EptpYqa15O1aHpl_*i`W zv7h7maootE3|Ivy9_D3W|25zLq-*2q^A{YCwMrmN=`gqQP#}E&T1XnT|1ARc?nimRBUU zxaPm4lxN$+cF9iOBl&**=n#Ash76DkN-9}fo` zJ+D3M8lW>NSyE5BzOUa}DVZ5fiO@XwJYf@?Gq>e-*qIE#7Nz;_jnv)(2fMzJ4SjVlt@C$*r!D|~TCjcc??aOZ! zE;T;E-76P})iVOijoqyQ4^HgOe(XR)NrftK*5_TZLvPqm-5jQwn&RHg$F@FhV4I)1 zQ5s)dSZ`5#3@E5^*+ld+;aIw#E_v-xRjgffI9i&=nS0^_VJhn2Whf}qcsw;Q&Uf+7 zr=^2eTyOm!B%OOa)BpSb$7GTyhisWcQ3{nqVa|tgN+ic5=aREIpXU%d%$$$SM$$q# zB&VDcbIOFQoNE~7%rJ+&zpu~l_rKfCPS5A-x*m_~aliaf)Itgxzr7fx7?Td;PhV@t z#%|MLL^{w9IOJ0!_5XeO`Pb7k(l8R)qZ5f!VhyE@#!evCU(J2FCr|6LeV#Vy!CRD| zo9NP#0|l{$Q6~5aw>Y-tx=$DUBEQ&qefBHGoQGsE+2*hp9v&<@Snbn#LFXmDi&$rw55h@NBzUu>K?8Tx`&XIztdy;uSp0zW{erD2gh z6`8YKn?IZ$aP!WmA+vt{q~dN4vFHD!DV`~lh*UGcUuT;9EB>H{9Er!(4oxf%6`ZE? zHGD)W$ivrMj%T{6)K%OxuX!#9yMI{9Q8alimMvfOsB!h+Uo(372T#)F5o17d)%8Mv z!G%j`A1c0dFqB?(%WkYiQykOG8!jvvckSIMJ)*^GB}cAW%5JR}q0XSCYs9tiIOBqE z%-hYx$ygCP&+u!V*Lm1t!mat8dFv;u(iwK?ctNwla<@Cst#-dfecLTjsD1Oa3|2g~ zT5%>TT!2zVXKx9Kn=nDBkzY9!&rCVY@WLKEIW0D*;b<@i{w?ypzMtGWq42$hSBVKv z|2j2X?YD65DcdHN;QQUWg!^p+Phwq{)o$?k$!?vrAw2Utxe%SIGG;SY5d4@Y=C9g4 zD4uBRAr(jCt+or;do#&BbL>IAaXX)Y=F(r-zRvNuK=$2ibm%8?L8XS+l-=#0^0q}% zcPS_I#@0s=3pJ5~&OXiN5-Wx_)&t{zBqbr_!|!l%@x4PeRo~CYCJ(QBWa|^kr1U<- zdt8hu9x^ALjwSLJ_;GZfR(-}62&37<7NM;&PNIpvZzLjLowRQYwa$9@FzWpuHh<{v z(p9u8{fI|&j$F21gXfwFW>^=JHaWMWAP|?;C%+YA{s@~uw26`zTd;L~nfS^%Kj)xI zjy?CYnn^zK7bRXx1*8jNlG1sKMCd*8qq z`hWry3eVP59FvUWVJtmVv(!roM)-(a--Y?I`RUGo%e^BZ^n`C-60 zqf`h~a!0sJnpsLQZHd+(kOqC)+w*JjV?JCI(TtiCX=b%77ot>OyzJ7LyR zbvMDv=HK>P#1uJ1m}lpJv-xN2(L<8=9}?Wc>$l&8-a4Vy;?e7`7yXhAw)&sCEaeQ_ zKGuu<4-^WLj`LU71IA5hR%;KRrcHq_Hq~66lt=WCs0Wt9T3^n8$PJqOluA_FK$#un z*NE3=T#Vn#iY21@+eE1XJNs7;Z9Pl_wvU1YlPZ?3RoK=1_8Ki^eExpMKYWi!zomlu zs1-%h?Vuk+7y@j@5-;G_Rk&u|F5~+Yhnp-h;gN)TjoNKX>$V$KQM*F>ayt%blAP9Z z6kPa-K;P~q(~UVy6e{OtnT==;L|Jl+b`Scr+lB&zz%-I}KK}UV>H!n<^95vBe^orQ zz9n2Fd;K`s8Hgg>$ii6T0RJ7IO7fnL`cQY>yUGBxnMfOoQuq8B80b{|=cd>1twbod zta?k$!Li(m(|@2Ta_QE?xc@-D__xR0sIEsiI_H*JNjFQoDhVDz-y00;fgy{-oXi(4 z#SE%ogGk|Ho34%y6FsvlVT%!xgW@M^U?bc z6lOhl%dT43Xd}wB;b_|cl4&iSB&MXUrO{TP)^kZ>m5Yc@pkYu12K2+PUoSEs$UV~E zqw)cbmnWsx;%;AU$dX7$bo|ilI8}3BHQJhmB&1EJVPlre@XVKJnyHi zy=Q?b$Eog6jxan$gH=0^t=n{ogggH>IpZcuZ+&`O_0UEzP&ILug+>%N;6Obf;+oZf=L^-MO0e2aV}6w-au0P)rKU(BIjnopWQE|I+^@pA5#;|U8Ju# zL#CvGRK+xIxX8{ion>MMy-Qs(>yd{loQZ+2!BN;*v%Qltk3#g=!v6!QWIWXQf13*S6@rVAvrM&KH|s6XaE6)6;bF8-I7eM9Qd@UN)#Mm)}vId$sut z3g-`DP{;c{jqE8JN^0M9GP4Za{YSy)bEg`5s;eLx1VZVeW^egB;U>Fqo?cOKuV8 z4@NSs7in36Hn%dGa3|^S7!DVb2ISJ3MuE(B<%1L6gwtrW@JBzy0U1VnoOk}a!L@&G zf8u_#;S@&VcbHkf_Z4;O$gv?H@e~P`j0CS8k@(4DeMtHkSSYA7y=W7iuEIlV6Zti= zuk0+H6&cpVw>e7@CH&JvbVWc#XZzPt5XOjyZgCT%x6b^z2kWDxT{r`w~8}=<@H7@Jk8X+NXJ~b4c`VTZL8Zt1q3sE;= zAvv<_m7kp`X?_NuC(S(R8I(KVR#!iEPkRI{o(utfFO2mwQV~&PCgCnTxtiPH^pQRqIU@X(nbi}X{@Zm<*JrCiHRf<2#G48h zY2IXp4ScSDW8P$V+f=T{ATwrQ66oXcn{WT-?{0o9>_t0fp#4nE@s*wJao>ee)lptN{R_^kXh>g#b=J+p4ioqX8Lt%q2}{NAAue%#IdlM|AIPSqCHruFW1qqw%% zt)+}sef$g09LJEhU=$$PvT5*EyD?sIMFFc+FG)X+*nD}#ub`fGse5!K$B-dxbE4r+G2F~wT^`Z15P1D^n!Cps0p*r}Q_Mic&j+;FK z&P4&sK(1s2>nat=G_u{LYY%Yt11xEjY z*3Ufg;bDsw&4sio6A{y5^^y`5eg^Omz}Ec_R8SjV>~g4c{1T+<%1aP#=%pMs0!$xO z*Y_K`-0}e#xHi09wDS6^ZuKbrpPU2YDG}-MARng*0`RV=Nj}$LLIH!^7B25KN&5lD z5_({t`vUqGUi{B8W;QI2J`o2y-2r36;$wlPU%jCmBt7AC5_Z^P`eBa(wAk%(*_L7g z2sXfeN6?OdhY77qt!~oC>m0OG$s}U#FeO_5!v!!RMIu$hCwbIOq!~Bk5be$)6y{oC zbh?m#hvjXB!2Jj+6smR@ox3P!{`Zf66Gm}1W0i*ASYi}~ znIX8#d#MoMcMp64BUPZSh+MS74{vd)EH+tZ7B(dyUzgyu?_haOB{nWhKMR@Ce9R&2 zZ)(~fziQhmJtCr0zm$c_G~zaZLP>VP;EmaQO5XDrm2_C$=T>fgP3rbX!aYOf*20p$ zwQz{Y zDY~UR#q&VB_a;QbjW9F>QKn31Zg5A0TN&5HZVD$1CX`*Sam;&OHOV@6l_(BSvQ{7K z<$UNY`*Z2L>+_(_C*gs8_)c_mDD?9DuXloDTeg#hp%Tz18d>cU=AjA>S0-?MJ`}YS zdxai#{YDxtO6^v};-16HUaPEvpFR^EWNTY=%`(PJiTAhaYb@T5=_dMt^w`(i*A0^8 z&H26Us?;n02v$?O1CdtjrfFRRCN%4>-|YL1j_ob1zj`D5FvZJw@UN{r++UgGMG>vg zXm*WSUQfn1V?v^fg|LpS>NykW;3a%J7TNHk;&PnOL!V2o2F}J!@KlKCKjk&K2?3Ri z)My`5kV`yMe`z1Se%4n*c$AOI>2hBuT_F()=P{ol&#;bt)CYgs&)+jI$R0C4(R8Nl zMVQxiwq$7!MAUrQ(O%Ys9C%<-I z`imI1*j}QVBlBqsKN?Qo?ebIEs@kN#k!3{N@#=#x?S~jVS>Q)fDdNYr>f#TnI}#tC z?hhjb9|v>)4%A^^Q-*3L^<$3a{O>&84=i5YBY1+p#5efs_mXJ$Lw{v@s>&-T`!{rl zQfL#EPDE(A1CL+*o(FQP+X8s3G=u^t#CAsx)fxTb8)k7w?Wj?>^s}qZD)!8~kt8*0 z(fiihUSX2#&9@rIca?d-zJlSg<3?)}7@lA#6|g?Z0$tO53;kbB(1RcS_3iekBU=?C z9lY{(GwY5ClMUQjP(~wh1Q&WFoieJ{^Ca|L5Em@Q9R$Sv>MQ9-(HII9scDymbtvP-1%ZpRvt>JI?@)n6MxXofz*Nvb- z2%JLLu2je|$e+3QrPbkDac(49Q2pdA8hIQQs=U)CB9ECS&sSyDbPR)B1yt=CKz! zGxWyXCfcCT$*dc}=B5_Jj81HE080dP9F=DX`+9DvT%nyMri~B+>;=oTs+Q}=dYbaD z+OTRdxR>|T=KK`w6;hX~G(8=3zcE5wq0X;3}WVwu9)aH-sDT2<`HB^y?2HTI>H@Xf0w=_9LOQ5i4o zpE!R$XLn*!6_@AIyA)3{+FfhKh6k6eJ3ZYyzHp}O7twLB=rPD zH#W>nG0Xc>%5(ZXBS&L0C+nUJG)9}!N}>J6{h8XhjP<^m=ko{ViqnnLp4S&{R}UZ$ zf7ma4xpouKt!>dqi-Qe^Why}j88h`&_V0Jsgu&WjRVCMoSy&h$XNTPA$DWl!my6Ed z4R%VxRG1bOe%9+svpJVs*8o|oW9iuI5V(vSG`;mbQZxTCL!pUz# z3y4SJN+rY%j0)-uGmCm&$W^C#mWp*eDl?H|hLbCSF=|dv@|H64#_?NxnF^PW7d!@} z_7D3A_UF&qz};2I6hvkR$j02q_JT*XXpp6gBK@z)^SD!q?*X%1Z-p z{hG-qVOxFSIdOFs@J%!eoluU@dDHKf2%>A64!(h@@~?}#6B{Ua0z^|+SO3e()u#9k zl15@wNLCz6;(pqaYbXbHkl*8ZVEChJ+&jZpB+)_eJRZD>!2 zY8Ywsf#VaJZoq8|M=V@qU->`KpQL%+w=!Nf6~mu!@(O5|kr^O%s8_)`Q4EebgXY7~ znEVW$JfArL=2Jv8o51Pc+Ce-z9?_6ge`P~TzwvNY@tG2rqhl(&GUe5q^>poaK=nVz zLl=0^+yCf;-Rd~IsTb;c?K4&(m`_Xrp;8!C5PHkH_1Lr;i2rcj=;dNq{t`?N>)VWr z2->-M!@T)#k{ynRX3i_mK8g2vTQq1RicOX4)>lv3{-D@0@WaITt`9#ZU@(041D#s> zuW5?w!cTAOvx#SS?L(guP4@*UO|8qbbYn*L%H0@5j|8~y&^oHfm-)T+lA$WHp!K7l zrs>G0Myt^ApK$!8-2Xs5-=bgd$R62QDb{6rIacFTaB}O5p}XD6<5FptSj;ch36%x1 z1%c?q;mXjTx)LWkd8T?!j;rvIv~dA56;b}|p*m}u=^6~RT`{~78nsc{W?n9VYAtJl zIQ`lpx=XIR0oOa$+~o0#iA0w^CJsoLd!Qp5lwnX{FnsnZyw0#=vREQmxCi*NtT4CX zi*jEQ@68<%DngGmzTi$t(0pR*Rl5~%F}pj|wuP(Pdg2fLky{ijk0W=uB?>%W`$X*e zq}(OLarTo`pc}HsI5fBL;7D!r1(O2g!#5UapTK>$uo=yKg9Y&Ma2bGi~CJB zS7rmgP*P8>V)6R|k2kGzj*9{ZXakPmRAkm{T!iDXy4?NF3&3@ELn0LkAQ-nF!(P{N zKBM*&N8WoV*Us9Lkh$g)Poo*I!U1uSZ9|V+;ixHMm?|muBuQDMZ4AeNok(2aTS1VN zk373IO3;oSChYz^P^xCma8Zzb-kc+4?A_B7cYWyVBXr6qy{&i1BWgCtan5Z-J*o2M zu=gKMbF|>ig4FF)Ev;A!G$!w;jdU|_trQ|du$jCPta3V+4 zD9gzGv9O%OPKIz8-+v$%`;S^hFU*?!=R{^HvH0QQ2eKyz2jG6;t~|_IMA~crJPL*i zJBToU$l8qlx!2ncgGYh zY~eQ*5iN!s#eWaT&(E&*S8TBApdSA(l|tpOPV;qxy0delKS*T65@CDoJEXCe=Fe(7 zb9tMLqei5eXLZEGUy{uYZfUZHf6n`99l!(DP}#}^?^AN_*rXi9;Li*a+a?(dURwWd zm3lLyU#2?l5FJK~pX3saj?P`Ojo3@>ih0^A6P{A39$@2A?SX0{Y!o+1_7~h*r9~P$ zv7~j1MMry`Q2?Z=mjXiGhM|^R%7BT63llXhc_`T@lN8*mbndm^B5R^yUz8seon>t7to% z1wCcjOd2zE{lT+vi+Zw#PpDJl+!Kg1rVtB!W-TW2`aV27t53qbQUsNVU(fDZFeUfT zPoEnaU%aDm+ci-EpQklF1#k-wB7y|Q)5Nb{!WTi(Nbu;SnaUA?LJahx!C6+l7)S38 zibyk6`3O0*TFQEP>-*J-^kz|el>lr8Iv^c6=sARC;NFO;8{sc*FC(7k64!OHELlsx znOKy=KZ3X4=W|>gnekgxgc>!)Cp?e}&fqwkst9F>u>jP^H7Wr>9d)U#o_Mo{%e}7u zFMxsFg>QCge>m4J)fbYzY~HF(-K64XL)za9r{CZ#$~|4&FOE$+Hc_P$RZ9mrI4uv9 z_G&OQ1I)-EvFCbW)_#{pHxwI)(?Aa$&E}_lSx+WGxc~CVcEGkv{XTbV9#f<$Jw|2C zAiapnwYFB0Y~!0& zWjGsSu+9W;uGT%cBjzo6sf9>iJ8@ zb&Gmv`0WYhqX_WBYcr*HT@i`eY;q7N1@XV%c(qhtZ=7WvHdQfWM$^7n(;@mQx<4Zk z%!b4Pte|%EW?kkN-$X0Bv}OHzvN~jxQh7^Ps9_D(%h2CA+&vCQl3@#}sf8Jsqt9nk zO2rB9BTzM_Qm34PcNYOYkKT5j$uM?Fm6t1+Ac|6fd}lEn2O;)v zrg-PYzcI)-!UnO8y68!&eFR(aeJs&mhGlPOY3$K_u|u!ai+l-^x$DXW+?4RkPK zyfr_+BzGLC5?(Tz)oe?=Hf(fP!PYMK@`)#G;KtALVbHm`h~dSr*nGtjKAGneHQrC) ztn%Trn=?yxq4^ra8qcPaP4wr&hyMz4f?$gfV7@bSp?u=;oe*F6&$_u(S5(rdB|2+% zLmhSSi*j>Boo!9Q7f}{ok;h%`xSJt1PLcZk{|9f2Z-s6sFY8BN^_NAwFDMww|5~HA zZajLu`Bo|F$uiriNZ|_qV7fT2GXsEP^^&|QFfS9((k>7fQ*>j80s`=}mYe62&ecA( zG`RbLfiVu$NSZi06ba}IpR5C>W?hyg`|>rj<>y$nW_d`2N)v+)dKG;%i}@dDTe+;G zs~~!I@~XWBy=UiGC1{tlK~egy?7-u|tItswO9$hLWHoAQz=x7Ini0^yNjpR`00xsk z(oy(3aTLc{hFt*{^aF`6pct$8y@ocuZoY6AbFSMsc6C zqf177FVIG0O-HNW^J~3)zg2N~!;gCqNnQZqeTpYOIX&N>DVD118Q6Ra5KuIhGw)=u zv7QuP=Sy*7f=lf7qXWtxQ+&=ViiOM;u3H{GdwIPcejzpE{Kg}9hy;9YlZhZ9N~47% z^Gm*gbiSy@3`SH^u-wPxBi*Re2jZNn#lv!#qY=B5YoGmO!vVKpJqWhI+7fcV5zKA zP`8jiA}D-w$)*byEh?fTYoTlh-ivK-XU5g3h4E+XdzE!N@LhcZR&(4vN}|}QeWkDD z%e#9&`|vtJrc)A=1V~RA_H~e1(;8*kL|*#7@*7{lD^U!I3YY=p18us+VIL?<=;X|O zxb%KDFSgLU9=l!JbS(X=9kz&kH3zu*f^&iQ_t}28Y|`kJ{G<8SoBUm|0hfBxOc1_r zc2=24`w^K<+xG1qOXnBoT(BU>t-t0~=^@@nO}@UFe5r=w8nqR61#<(NJT8;hlnmX# z8+UIfk>Q+GWpa4hL)`hVkMP{KiiYE{93+D22xRlqgHW*$dd10d!{Wdl?v?`{+szqX zT7JS>jep|0t6B9)Xs2U9Ec$>8c-geyIl%*amEylvKCLvn-L#F(SXq16FGltC3R)ui z99jE-b8yxxPA`1=y7})5{YmE#cpnC5vvWhcVj5^m7;0_E?zypP-XYwUUvijK)p)0* zIK&N7*e)rWqAGP`70(?SJ!w2_7BY? zCbCDwdNEuuJ*^Wd``qf@cq-``N!=2){GY40849>9;Ze=P0$ z)l^OioPG+R?P}#3rs8iW;$8c70YYk-zxLSU!){pgb0*LMv_ESP`+y_)|>CF6m3S{wcO+ zEsV6a$U%~O`&skF>QUV^Nd?ZUl06uuN}ag1=qm)ps-_!zV?|v^H2nAQ&Gm2o=nGFH zZ!UcclDhmAd%C!+XY-}d{F82gtL3Aaw9zkuDF36A5HHZKmU!%ew(DWx4*twrESz-^ zU@KMBgOK6|N#OKUtqXGBRdW-E=RW&Fgcz}YI@wSO*F73>KRS^AM4sI_WeRq?okTl$ z;1XVH?;koTH(t!vKtpkj)`JaY)2<}twY zxqG^hTOVM-b7sBD)9`M-&JJSYZ87~JsU-$%S4by1Hk#PppN{0Ftq%z?@P%r~84s^tA{Xe4z^Umab1SEu` z8v*0Ew~R}Ez&|vt4%dkt%R#q3i8-6V@dr4N0`TCYsOp~X0O37jYN`@n!$IJY6!Je% z2Vq;~^PR(kwhQy2lHoa$i9M7`*pJ%}E!q7P;1Lo4((!xj{GR!<=+x*Ma`g>7qeTjyuR9Ps>U}#@3Ppi zJ^N8lVm!EXc}hcf22VPY9_nXa4HsdLs=e`m^eUD)j29~m?ew`;FDdfBP`!f@X3Bt} z(0eHbnQr0-1dYt3%MBU^7dJ5`rlurD1UADKx)*T1`X1H2m-Ik?TeKkXsb>58!N`~Y zfxcMj4$UPOb&ABejia%CeH?!Jh~5${fp*o;2<2I3=9qZO&A)({9wklGz9WsX49H%^%3yyf>uA_(`oYN1g;qi18=yxw_tfNKg&}7!UT9OMex+ zKjs+#%of?=B03<;A6OHz{}?@3PTOug^!?LW9R51YJ;2#zJIiuhzIWSI7A663fjg+| zSg^dogn?YTAhLH^Us5D~=aZ%&pvUMvu&9xUhX7_ZUGs(dHugjNvxg08TkOg}sX!b1 z^O{-$Qy=iZ;om%q%f2jz#%Fr7xk1;-gqylq$uTVY$})0f{x?8|E?&l@pr5fGow9k8fOt*6>3UgBMw z=Xa?%NzyWH8*Y)Q+$WNdyvN@i@;t7fMkwu!V5)cqeU+&%@XmFTKfc!Bun;`L5UDL- zku-Y=zCI&UH>^4bJc)1(kfnEzvf4?=hUk`P?BOu*DNSqWF~F^-!>i>JT(4zpyUtnjtn67W?RiP0{aC{0qYExKzJ^hmAd z;`Qyps2A(&N6Rhw_mq>XoD=Q`N~XmGjBb;K<;K29#`-wPo#7S@=8#m^7mL27(y{C6 zkXrZ8!~`k_NPhTFLFV6$3Y0kLYJK}0V_j0e6b){hoj+ma$PWV9c{^zDb6SbXo@$z> zxI>i*34Sc!Dt-yafQ7XwDZ{xIA0O?WZkS3?3lBUX%PlT)2`7@KDSnR!2$D1Zs~Q?R zKfi`=xt?Id`1=DRgqrqW{K3_?ISEi1O>t(#tAVz(wd<{296Dg9QOEh35kOj!T(TX0 zzkE+e^11>a*Db*ZkJ+{PJOs-g3jZ=0MY9@eth!-0a!Vj{yUIAk^}^lR92)&*yQ1nAu=Op$_`$%gLtcT_WR zZ**7uz~fo_G`C~u`fkKgVwvlfwtdHq>%Lo zqfbFJ$DIQtxgG=nLgtVeU1~*7f7{B2oK5~79gR=%SDj5@snUAV?=6a&5!Psqz$vQ@ zv&xkEg+X0@$;HQyY>-U;tTsHCNmTT=5U_uKwi~hAt;yx0=1uq@R+e7$CO&Z)iPOA@ zT#1sspBFOc3l)cY;elW_@B#uaCe~TR3_v7yd?L;=@b(R)0jvCwqYi`d?;tSFP{L(< zX<3h*+b}>kX|lRX0=qfNt(nG*`mFQgi_Snt-3C-ZG-U{7(stwKcm0+aOYbfd)C*L(NE@%CO65Y4n$a|_uCjNg)eG(L8o&`*nn-;FiCiH0ZQuk zG?hFR0^UEQ9t6+AlZE524LO&oEv%>Nnf@Kwp|yVs3cAfwrLv_h3ILW{l3jR0n3|NBwcad4P zJSD}y=}{@B8?+SSOyXs|Xe$uEWUyd-3PBh!=4Wo=ub6%5N^Trn`^~i3?MA?nrWOI0 z*;jBtrqOqMX{pzToBxV(xAxAO33C77n1_FeLyKE)#VJwSS(A@xYPKwQe%`X0jAPmB zMo_mAq-eUBcjpQC74fog9w1*%q2-s0>y_DTuoiS>I&#nb?;GY>8}{N=ptndK+Fl!a z`{w!mv#-&z)VNSeo9~jHz@)sk%<}TztVZY@<@d34?dXvi;g2!zEhT?sQ~!#3O}~i3 z(O|fe#mKc<+Sw2vrF-?^s}A&nO}cu`&hlwp_og7>PrziQ?|0GP!(Se}OZJ+}_`>UN z&;bW#h;h>e@Rzr~8VW)5VGj^&=QkTy$7Rj*{DLttBE@)Y&m?cIFEuN3(oNGjD0gu~J23tW&r z!nCZ-#OHgd*NdKVPCZH;ut>{-WTZ`^Zj=Ol=c4jEDoGPt9;;xmnQ8K`(rXZ+r##)v zYqy{)jW3)sai*>Mx+LG(jG{Uj4^)D6N1@sfaX`nzf2O}I+JTl{Ae z!ys7uQdT!|Fk*9L`0KTYW3E|D6QQqK5@i{3iOqA4`Vuie%oziQNh}^KD=%mmqtQ*QJ0ACW| z6s@$_|7jx^Czm54krjI(#~Ihojgl#d|49;HQyAZN!e(<~R!qI} zyN17Pqy9x-LVh^I*{eK>>_lCsU+( zr1@cpTH4p~Zil|7P@X37_?ZgN273c#@o^kzTwecXr-%Uv01_M>dm7a~whlHHEBxrR z|Lt%^L+Fjm^K|E`BJnsw*s%hGoV%>zT4%NUSvKs%z{SVEdpf#NqPaL+?XX8i@4p%T zOUX59E-oAl+QPhL;is$UGqto|9KD}2-{hIaW?C8g3=VX`ZV#d&`P9~ za;!3~cusovCC}tjv8&4JHTZ!WkWT>zK{&#{ern68ap|+?K9*uhz>8>E?^N!Vd@dc28-jbQ z6|A=J!I3y-?UXK8aP^B>G!gE`Vu55FhXFG@v98uUl!P>Td8l_5&Y|X_j6vAo0wu+Z z=er}hoa0KlcvjuipS-`7{GEU2nylgnt;OAeEj8O|vADKt_M>X3QWETu!P^)YEX8kW zG6UD5CzVy1aO+LV)V0j&IW}*`eIDVH-4TI=yMLQJ#R%5FoRclk4BdeY0>HTop{lvy z{G_isEj0%8dOR!Zl@{k+Sff}qUS3;x7+m2uhvhD2%V3(ecub7Te@nisa8V@Y1DqEG z>s_~U`E~R0MU?8j>g|B<)^+d4#W`jB7Cqz-aBbR~w}~R+ zFIJ?ig4!i32O(7Zq*^0N5vS=D?WG-(Iejor|u@6VW_Vl|Fj%G4qvL%sax z+v#t&(m2`et<~a3ATS~VIu}e5DxWmnLuy>AoEfF7t=-7}C&ur6oux-o*?JZ^GxjC= zi6xBdou9!fd1U-^p~KEj-)jGbse08`>)qYs)1K@?F%s$QYX$oU*5{ruH;&J)&!N^l ze_@i%?$2w1HqmFeH4Bv1W0T*-V+z^;E*0WkZ_p&)Bn7-Vdzc@Ju{&Fvs0{+AE3Y%6 zYuh8(qu-T{IbW0w**Ft0L={c+Xf{cH_KN*cKbLkpWFLtqmfS0)t}NC1hXiCW`z_Aq z+`aR}r2CX~;C{~D$C zH8ziUw8?mTX>zA~qCKJa=?y0TrNuT~@vfJ-s~k>WeANPC(`Jr#yWHdjoFhMnr0wa8 z)DkHC7p@sRP>wt*KtPVDc-#K&yNU)6{!FDr&roYkH1}^Z-K_2&g|}TOK3)GzETEH> zd+oS2lYYDu)xM!cx*v@V7-2lP@FKn&*5p>%!Wn$s;;NN6JY{6N^2&ksLy)p08!}<1 zESl#V?Pu$7kpUIaeV-x%*qUP%=d9jjS$W~Od+&FK zN4<88{JR;?T=yOM5A-R{PYgAgeIo9!b>*QL`Od#g&TOY(xbI|px?BQvX?=a|gnzKV zU6)|GwcHCI}a=imOGbdyt#DzjHm9L zmy`8=uA>{nQvA~QGJ~L(2pJGexTc5X;QOsS43r{oOHA>Le^MLSJ9&N zKdzgBab8V|B|cRz)&5F&Vsp3liFT`l%78$hci#P}d{56eMTo}<$;wK*=%DZ!V?$1& zw|gU_yJt(^rJ%g)agI@IeeL1xy7$sSV(GKs3DN5cSZpBEa>=Pmwn%l`BQ*4A_`M>h zTDHM^rKm4GvWCel*Cym|m`x}jd+e_1tcoxWqAfFZ3JgSL8?T%MA(^$RNG6JN1YYBP z0b>HR2lXD?0e24rX8s;VSubc_I+Om>2gDbjvP2ulQ3(E82z4M^p-FA%(Ei5CtxBDl z!L(crUYCkz!#xisQg$kp_pSrnaH(`ZG>j4G?b*mP&%3E~GbI7`<_ROyT)8H7ubnjJ~2- z@MwdXdgJ;_>^V!8xn6`LJ1bQ^oCy{${FtmU7NxWKWGnAo@bM57G(@K60;}<3g(L9dM+o8TfXUg%~%j*3* z#l>CVA07;th3}awdPd%ec2581j1k;%O8{|t;W^RS4EIL(zUxK|WkWQ@)LyywO!FH( z4$Ui^3L>cMQ#|wdzdsBcA8)=0n>q?xT8!E}5H-1<-K_*_>_2zawsbmlJrNtMy&PWQ;b1y05ag{=4+d)vUT% zZ@cO%+B8hTaT^>Zz;DBKP0+U>Tw98UfIwid9(B_;+N5)x<=t-o3U+p$k^e0rT;3)A z%!~dN+0?*`Jv+GG|DI=_ef%5TikCRt+&bzYBqz`$Ac=o7HX6i|TnKenB< zBRwhX+sID-&E{1_QG*98s)ldk+$W8bEH>2((8Hbl_tZ*LIX6m@yqI>B11j%rvYN>c z=#;0ksZawO&$>%GDu<2pdwrn$Te}k>nzGKap<+P9Xt>3u(os+Sgr9Tu^@8+eZyo%X znWC=cXra#|fmfgQ_o~d+RIg6DEZH)lkVAGZw`ZqEAZ-jdQ!U``zn>{QkAqg*2LmQb z6gp)z|B613dk&gRaeW$eN8p?<<7p)cfH z=fYASu9k{}rM1=EYQTq=6{iYTcTnPSF+9YPpzu&w;L4zy&L~xJA#`*44iLc?m(;Y2 zwp=|I`KO};k&Ma;t)BD|zcP_&)Zn$*&qIB+TW%tAZIDIe0j?!fK>7IXWA1m~H^~AW zp$%_CiFe)e&Ovw2U5kMXA|%p?WQ=r^vKUUiD`5K4Mpd6E^H#5sLvwcsM-sRjxmwy^3=Q4&!np!^Mf)3mg!}8I>B2o4EbkXZf#94!hHrX4 z<{r=oF);QIh4xb_?N2x_MvFK6io6#AN`0+7vgcmKg{2=H9D90fX9dp-rxppYWlR-B zBe6W4HKw>x*LbO zKEb9kPnFqRGVjZ!LT1@DO9Dgq?s#)$82xogzAM)O>~u5QY&+xO`)S7Rv6~dZ1EUx_ z2+@eI{O8%k10$D)0ZCu8ZmhRJD#J*7F##t<~^MncY#lvnNQQ*Nwz-ON4R4D48o{H?A<6s@Gb`j^pd zOaCHtZguWHOAp8XkqzI$?p{T{jiE)-&4-!gSDF;YaIOaVhL2tDz@9z@-DterAj%(F z>kDi*w=C{kk+|TR$5I@{2wvarCp(~zwwIq205cQ&NkdGA8`yn>@afsMwfw#wcXAU}B?@Hi`{q2K|(b3nD~)Ow&UsyXz@* zhr8}EgKpwLznsPQ(u}6s->~t`qycD52meP^mHyL7z>deX{O$XR4>&Z8Kca{D#x7LXwniwSyhoQ8D(f=RszCeU`gnXw z;^XC)@mCpp0fV6B=%i25cR$$6>^vf!Upn`kWBgGfXgM{w!AJy`iIIzSACFW^XJ&05X83T7 zuN1N`VfkW!!Z1O?DnVV>YLqTa3yP4|`;+0MY7sHZ#pP&e#(fE1qY|514y^Koe4xM& z53Pd;`>e8&Q#!Lv+2USeyOdHoB}UbyQegPuV)i*Pp@=&tAbnk@u($>)g7QIack#Dt zeZT#V= zK7*O7hRokKZ0>rVHTPVN6`^WsVuFmtsF3eK2{4Tw>W9?_`AY#lvO@b5pLPJ?KyyYz z%rN|zcT}AE_C0a07WS!`W8cjpWc^-VJ0rpt zBBF#PmEH@<7A0)GzwSQ~!UcB)`ZDmM>yqf#O(Sp>1+j@RYwFU?9DvJX?>|eYGa14vf(!I`h!2XY4C^?(6VRI--Gv|&oyeXkbloMEF) zfvJp{iWsQtoeKA(yL!xTox&)UphleW7o57+lwS$L0EAPMt3H^|| zC-KqumA2zPBU)BGm6x&>3e*mxHIbvXzA_iKCvlY8MW@46>bZ!@Qx>ND$O_Y+rUutZ z)^mp_Q|eG%)tS0Z7>iTs(yzET@jC|Vfve~p=-P-pw*LXhQ|qx|Rl@m=5khnb`&>%H z^f7BOZ^f)O5wvnMgO@U~fq%v)=vW_YyWU*aX#y0?nIbB~r_dRSx%d`+WneF}hrwg^ zI*h#@SpEkZ*W^7F}JNoYMt)uCyi_F7afq{!Vc5fxIH#%g8nBR3}7bZJS z_McC;z&2@h8|R2tU3e|2HzuJ^vS5{tD;}IXr(GZaq5xrmFpuO#vgzmG{h+BVLLrL| zeSB-+kkpeZc@!H@OKjy(Y=^@CNR?}~oWV6>(>9GD9PE2NerU2Q&OW{3|fGuGyW9ahoH0!;vJD|dnz3;3>BrRi2*PnG2;#jC4%ad3GR z)*k$|Yx7+#(>~mzf5ni~&g2?BB$u^r_nlxRuaY3On8tkl)arCm0Bv2L8>@LA8k*o3 z24nGn92$?su{(bRyn=enh5R#vV7$FWBZY;Uw}IW?j8a4yJ5rqG>30pkr_BW-Z67nh zN>bD`=3rT*kHEC$X-jec=!ILhSFF`FcxL?N3*Hqsha4U?Ngj}Y*6CanQ&J6ayJrWT=V^CyT#gm&%id-z^WYqNnIPKK#dKb1RCfg)aY9B56pU0;^r z_r6___!LN~pz{Es2h7+?9mF!GrzH1DmdV@V@zJt7p^GN)-k6CRuAm64;+*pG#gjsZ zTTk7US5-G|8UFBG@$>EEdzPJW)_XfIk+3#$&&xxOm2cd6m4;(+@Q8IA$kM`f@;l3nq@Z)`-JirJ`p)jRrDZj*l`;Xcp zG`N}P=}Xp9bJ3Ut_!*HU&_uV-kNEa?(+x?6k{GEzbXLl;s%^cqwFCY@qreIQfkCfr zSN{Fw-`&jUxp8%@C|SePUS9c;mM1eKEo7qhoyBxX6855*V24!GUL=JB`|Bn$-wW=y zgvl>bsm01KftZ>@N97+J4>qM`x6+rFaK*7-URA=>!xip32?k4=^6G(}iKVWhBDFwE zCM)Uk(ExoX*gHk|TSInpd%_Ji7sD?uc6x2sH7=43?+hW+a23S};lU)sovv(S;i%R& zz*#r^zd&S3M-WJOPH&X+g57Q0$fTG=eLpRBw1~ha;3wPdsb4DYs9pGnM|HbFo;~HX?XO)d7TRkG^G|; zG64UgQ_x1VsF&lyzzidgIs^TF{T5gve0v@kLLmdU5}4`6w&@1OKmnUao`6)Qy6x97 z{0b1^Dxi#tkyWbaL{>ckb?@b#)a=N{lFm9vEt;{GR^h(GZ;E_Jj}!GH2Fas$q!yP~ zgFt<<&nKl^rUBIWj8WL{N~1fDe;kGNzh3TM9(%%wp8zaPGm#}ug7WFQzhZ&hr{utf zA8wIfBK}M{>i5JQR%ipjo&Y^!dHmI>*@BDP2j727-BGKYm~=yvHxDhpqyTZPuQ$(y z9XTl77&v~5oZoNYP?0U7zMS}a6Ft$f{H;mh>0F2FjzxeS%@c&wUAz^e%G?PM1RqRN z6#@e8clfSJ*IhS^%v}#m3z_^aYYF_sSfBgMI~pbQ)%T8=2lH4z46Z^0w7_V9zL?r8GJY&G@)OMws&;C~iV5XN5 z5J!o2`Gw!ExUe4Za^!2vglBgG=t_-LA8@3#ExHgaJM~?R&wKx{sGKl;I7;Nwr0y7m zk>x=8B$kXQMY;G~M{3XO+=1%B)pDnm%{dQJBRziS^<1_5C1aVPfVVci`j)}+kOTud zpn{$_5JLW^FgEvWLrhgqgjFK`j0r;O2AXv)pX;9d&ENBt!(m2{3a~{HN^=cB=+`PY z3+HAAmb5>~nM%_Q7YT@{64_S|CM}tkjL;O{^TOU69I)DD@ zKlU!;S{>)uRIgV&OJR-OiFWb3H~*KAH2CWkNq^Xea@F^2;EdBr2q7hMFNz0t(5Ah4 z|AEa;d0^+=dRZkwj1$LOM;eqx2bTC8{=Ad4ant6ugm<+UA-<9d@qqLH>2lRof^^w! zVJ+o>Qjt6T>o2wa{os78wS~>*Z;P)2WS7|M_FspzPpL51PRqzK6qe9`MAUZ0H!J6U zL`iEd1;$N;e@^J|D7U0|tgQ_`(?;5DXm7t#+w6*aV5Kkt!rXrfuoW>}Zn&v@<0A=Y9a@X^f1BBk%e}5uhr)O^ZcN=-(gW(`9msx9kH|V^ekcWz9gguU5~rZQ5!YNbb9>#`si`_vZin!l^rW`Ni-@1finC z6zjZ-Ly!GwS0`S2q<1Sj1sv^GANjl>8e4HJE-)tX-A0C~?SR-k+A zwPgXyVDYt@h~fNEhpZ*?;z-`k;eAo5+bLnaH7d?eOsp^MulC$xLvy_*uNqbHxpNlY zBGdOA(>k&`P4)~Nod0@edKFDYmRVLmep>HcLpXeHQp!eW48)IORGz4h_3f1P(XqPk zC6FK@bmUY61tKW2e-fS73t!0b5dEz8Tx5;$e1eUfz3U=Jm8>lJK){8_YpW|v3Y)k@ zDsUwQ3SZ@aJ{O}s>-gJsW&grG;X4{#@_}1vwQ$~3dPSJvHwFI!@wYI?VI2_TQ&(#j z^11Pr=)$?YLzLnfMGfu38_Dh-#t|2cB%m+kmrS?8uyX3d^w{gd?L-bGv*c*pK* z=2^Qr+gLdE#^)~COj7_(T*2rUP1-i4ev!Wx5wxZbHVTmMhm-3+>P3nWa($0DH`XQn zc->=D{=ukS4(l0@x-XJ|ZE6umXHWcm+9~D}wU!d27*eELUlVe?#K;5gVx=%29m?X; z^Vgee!VE(WwI3xNzhNCDbq(M#0rRT}P~}}0U)?_8rhqkH6%8jK8cte={(gm}1|G#5 zKAC7IX)?2W{O<;kv2P_YbSk)HNy_?{)|Y6X7FooZcjSCm`k*Ji};-@dC>m-#^1mf*CfJ=o4u%03eea`UB&$>7e#r$SX064^1;}GB;YXGnMW9 zYwDOARBG6X@q#d3FXiuzaUtxMr>GHL>RB66%_U3uZwt|}up%Y^v<~T3msi?rdGS^} z#XL$qiyGiR=lE7GjZ;v@w zYF*IF{E%x*fqTJ6nj`5V%cl0t?+_W#^^5=&H%qK70UI)+T0GpOZRuSJTyH%YGc)Pf z=6o-h>JR^nk=uG2y)R%OkVQYriGeT-t+-xm`cGURx&;Cffc9?EYp-RjUUtbwrIfro z@h{V8TDNA^2s9S6`bSbIHxd}xvr7|=^wEhF(-k`pPPs~K-`gaEAXL8vu7a9|8OSae zzvWcBodzDsU*Vr4zp9w2n(Atq9CRM7>@3UdIIJ)(Yf>D-nJ-@mI{9s?bVSSfOxur3t0a|ZYBwB zQFeY!nUsxHj_bEeW9xaEIn6`0&q8D$izE)QSSzo$^3=97=o1JO}S4*{6^Xf6%0@a`K*N^ zW=5aa!vvi6rpAt^0iB`I`B?mg-P*n#Ui%*3B`NS3(f^BCTe~zk08S?*QxG!^HxuC ztICeo4r_9c&1YPabq`J@iMC4{=U6+owhDzLfWs-p&gXn6qg8RmHKtMaTBwz9wO*iiMjyH{wfL z#bC0uOi;Jl|NiLQ<)Pk)7X{2H?sf^6l$u*g{@rQPYJ$N51nBkO={e)#29<67<{;oC zb;XWmT!qZqWwx)j+#CT){X9Rmz*Xb$iS2lhY!)%(Z!Cq;X^n0$+He#se3^s_iUr=1 zWwPsQ{2{*wdZI@7b)XuTS1E6uce|o9_ScjS?d7fXn|GrVk1-6NX$XZ-Sp1guYXUmx zJPirj?30x|CTIJ*m+vV5djss^`T1Z>58eoQfs^WK_W1U zYw_lPpc7TS7smbL#andMWDv-bvD%Fn1%KDqcB|N+4jCm! zec1tm0rqU=QLk1w2b~rJtfBZ#FkSJsxT6;TS-H~C+RtRW%v2~XRw@hZt4c5z!G`Re+)KhfSQSyAd90u9ju5C$kB|wW$Yq&V zwN=Y}u#-r01&AW9JJf6$P!KJV9E3x?l{a=vHCY~Iv;ODCWd9@Pv((o%SPs4Z%kG3i zPQ17koRN`dU6{gRWjKE5PI5RJe_#}t>?!RT2kH*{*2Mbeqa ztIrSi9)8+D&w;bI>3QqqDs${$X6((4(G-_I z;_e7!Bp;}w3!72j0cMn;45!NOcIoK6Q|lod_6k5WTlKlMiBF7Lc(briKVzhpPUS)d z9(g`^8XgmuZV6MtZyIduY^>q`Ntf9Tse`MkCjx&rs0$8a=brrBe7;pg{T;Ac%}R^$ zNWrYoWEE7wLI)`*CMTlH>`?ZnE~cLFTKx>733xcxAy*y+iYo%CzXRrID&arSJUZP$ zUM(iB78;XB-K4LtWXbCVs%MI=siP>9UNaR!0w!c2`m#$!qf2#!2QVsvbxt~!FDN{F zsJ`Y2T&2a}lCFC-3fX0=T??)-?l!-1{=lSNW@<%Oy0jR5gN$M>b}k9&~19C7Q&Bhd37%1-}h57GspOQoxjwWL!`vrc9zo4ki_lgKgt|_ z9&kwtj%iQrX4jZ?DGEm%T#lzKv-x?ay&uJmPNG{?q4XV`i>~RUN#}rQx8Yad!(-Fs zHO)Mw<5>Mr5kMrsN79Yf*(2{P_y3Y*%lxY6Z#(rg01cdQpx#hQXKLWyP;ap ztqNZr8E(Q0)GX^7-P=s6rOv8( zR4BC?H|e2Qqs157XBTcx{k?Bfnlex|+Y3K;{fcwIvQYB3B)Xa>(8faZtm{B*+IhIk%JQg9iSjRTSvG=8+5-mBzjK1E_39=v#lx1q(nBNGKPbMm4$zkO~Fi9$WjX+dLkpAJU>I3G^dLh8xb>j3;Ls&ai9K0~SA@*CVnR z0qBup`cS&==@^{5%$YGi#!JuD$+mF9D>{6Itb~3&xO~qh`roTafw6YYb3?!FZ#3ML zeh*exMYL^^(Il;+Bt^shw?vQC#vLe(E0qE-QlKt%WRd-TA^tk%bOg0)k%T{G#D0$JPfB%lgY{kaQjQ3f>x5blNjXXov z@@|sribmHoJ5v@2!nZ8di|dw0I3qYO+Fj8n&sU>P%j?kh8Iq(zxFKXEi_5<5US11t zzkF#l!2#w4WxyE70@etC9BAdoDPWN7<9=)4;)%uD2cDkUTm`W855{H4{j2rE@s*X|{&qb&hUG`6~ znhc8kV_dvQ;-%l6u@YXkCA_#bz?$e<@&7QqZXW*TMK+$~a8v|k+8-2)^%#x}ai-2E z_Euhgmia>>F3FZ}u1j4^kUCPZV|ZiaMxWqiP`Wfwh)9d1>rzR z8_Sp=)6`d$JA~N1#q)3f^|&%6btUP3UA(8c5ISQZk$)W-Cg?4JMOebY`*ceI_@c)Q9&PWKpqlhLnTd1&2JT^W~WbGsSOSp z!s%JK-K`$3*3!N=mg!h?#azZtK8zQg=F<@;t`c2birmlV1Q~FJKCD|QKOObjE@)_#*Zc4Rsab*!o%Q*5Khym$tL?|5-6)dD3Om|bFPb6 zr3}n}@!NA{z(2`Ee7iAvb$hq z0G)*9AsO7kLpDKe<1IYr6^XE?E7)cu2u>(>?;?&r#U()_{pRL zpZBJK*Zjq0dP-?-a?C~l3r6As3i~TcyzF^ugfUEF(ldh0DmS74TL!i0dfESr_qk*) zN?!2e@|&8gKXmm;4hHL4KyD~J?Q}qQ1B?qp#`5*aE(bMGw3j-MRbj;Lxxm@oAB4`K zfO+iF=M&A}dtOIH>>!&jZsn|V_FT34TxL&pYH2xCAnXMZeaPivwF zs{lRTfg`6CFF97;mp%rrJ7e!6GNsICdz=c-`Vy=MUs+74czX%kGx6q>W#B7IG8k57 z1j6it&68q%yDNCNF;$D}Y1`5)69I&zXcrF!98iNLN3#>V`;liVzMR&x4icD$ZfyO2 z$q@(+vZh5Y5|SznVp0qm^WWI1rqWm0;Ixf%Qx6pk4!yfoS@|g)b!*UQTxS0;@dU>aNK+V}lWlCA&!yS*Wz zElz?CYzHICF_N*-T!w;YR-pQi=V~hCd?bU#`iMFrI6OSBaptSFE&;}-;F#%FqmCtneDXXV<;z9ywNzxEYq>9~7CCs6)dWO5U9eE9E?-k}j z79%Y?+ix>oe)21=69}Geg0TU4Hp2YV@g9O`z#~jBPP3r!wcJg*aCw5%Bu z?Gpk-K!S>-Xcj-={hz+%?_!TZv4t583VRF?)0uwvhyG_RCjJ(7(w9aG}uih{yBv~~jf*oRLSEyOW$d!jm#6l9v3 zbc#ZJH-6R}YfFIvF2i;q;!60Yzwrzr>5ry-&S-^?%LRI@#m}!ee!`?VkfD9+s7_zu|ey9DK2OOS*WX`8cMgq+X zP(W&a+zI^KFiA4*AKjY))E&#QhU?~X#%ge$wsH(E3ekM4R?7ekr8sjrFJmUtEnvVeO4+e_3_bmQ(i~3n;>}}kEdb&O(=<(UJ-TOP z>+z6fK>D2%4%s&uMTRk27IwBi?D?F_yZS;%5Z*sMWfrS%A3DbCb^IjCi99{lO^*kl zJA>7BZ;JcBLNYs!KiN7{`t_7-cAH`4HZGsHSZ*>K$?E2}_UqThU~;Bd zE1W?(;Nf#cJ51`VAh^;945+F|EpuA6VB6<06%Qioe@XiIRNGe~U|x!zt}fs(*J3I@ zbcGmV)0tljH_B8*G_d*2K(`#86@KRId*|D=?+@m^U&}PaE7M6d=}^xVw^16Olajb%RD12z?+nNHa7mrwjzFv<~i3}X&smD=6$INiL1vC}VA{0Geq7CSomy!%w$IGRulOnZ2{=Y&?A z$NZ#maaegWorCWDTX_(sT?fKQoSr3N{sUP9_*IbFTgXCsf@o_`0s^zA%i~H5SV}nW z7enj_R5AeEau&q}31xn*nH%q;>q$Vi7SpU}7(2eu%L;WZpwmAM@s*6Vkcnbz1~S=T zgC^6WVwiTk?g)#XJdQo2 z1QA#nyM5s5fZYyg3dEs2I2(kS0aAQD__;hp8M)_5rQ!j3mW^=oV+xnuPbZuQobo_T zK=r>-3)AR6BG$BiJ5ETFq4d9*#g}D+$E<&1^qicoWONh}E0=);E)}!h&)E_p5?07G zA)MwC)#6v=AEVtDlroe%K>$?5_@_;(0y2+&Ca=jyP@fbKr1T z{Vn!*DrJxD5^#hmbk_jLhf&0b=0a4} zS#AemkTEAodU<$jvrnu|=r7-7SP4+}eYyJO8UZRl86Td9qXN0dI-pu%?5jtMhEr zsEzQ_Wf4kUM#k-=#RqibC4(At9`!`i;ePp3`HpT+ZO%HKh7fWMVlkW8qV)YgE)KUJ z2n$aa$aoqg7D&!R{Rg^j1LyF(3Mb0cY^;KJBR8oa2z}?tp8g0S7-jyX*FMxt;6-2s zQiqWS0M8^}on^a?eUm{a?zZs(=P37dJUsB|5bu;BHTQk~3;ukxS)>?;` zU4B($NC2@s9tqNaLE$hPfyGH2yWf3t8)2{pls4L1&qm$daKEbKh+%(>1F1Dww#Rhj z%(Yr$=dYBAlQe%txm}s4JyGQ`IMd{9ww7QxepP{nk;J{V0yb(iH@Zsg`&Dcq@A~O` z**Axrcb08lc5mG$j9m>fneHVAN2>A#4U`k(Dbq_MBdgb^{!-t=#~oK_7-fXvt&n=B zm^V+3o3<%ZI9u=DODMr1yy83;ea>Lr;878gMCN(yw#pg#y%1Y-%e^tf=6gW~2jeN6 z@8<}&(t4loBcRN(Cb+;GV5rxf)X#8Xq?;o|-~E#!E(h*m2!+B#lu!taO`^*6Y1bZM z%Wee~_6l$Jcg5HrZq9CA)t&B>Mlu#kFrzsAexwxUk9H&2&^Vx+o_euFJkD~IY&H;% zkc6?i1&5N=f=#pEDcDK2oR6IMVj(HZR%cc})lIjSFC5scK?4Hz<=gAOGu}QtBIWCU zvR+8@hpJ~HsS!|HaHW0Yvgn16)XQ@hU@@g)}H9RgGHUW9z?fmk*bK~;jhl;w!NRvi@1LZ zc7+?)F99Npjjr-QGH3VPllDW?9Ic@sU=05w^gJ+q^SX55Ktqr)Wic<{)fPp;xLJyp zMqyeU!aaSFVU-#Y*gpVMefK}b$*&O0d`o4Qk-nE{d z>#;Dl`x#$XaZTDn2`E!Nh)k09#jm7PUCxc}FQd|+HXE3_(tb36TK;Fre_r&59_Vh5 zTFk`fAW0;}WpAI^*W3|Lo5kSAYfnRQ5}mJoI9XSv#Z{jP5%MB4jhmK;(1T~kZXfpb zrkxq6w9)4z!Dj6L$|}jUkp?`1YJJsXJA>-lIyYh zH+6Nyq-x0joW`S?kfIXKK{9$`ari@(KUHt2(NGp%Uiv~sqTbYuK z_lsLc^~?XZG&@vKYcZo6Q$S^WcJ6$;6YLqd1PIhwhkjH~U|-j~eoRqO+TJlcDn4%C z8$1byNM5j;(L~i7)Oz;lI{UiF*Vq1&+to<@?JoU7Bp9y5+#wYgu*ypppF7ffc*UxU zHT*&zVpn30XOiR4E+H>SF>*I#5?NgEoyr$?uezUXFAazR!Zd&jpzi2#U=~#?X83(_ z&Pc}2*+mc}@AL^7xv)zoky82W{ATu_C9b$5zaSz|47IHM)%BCNTO|hu&oFS3Pgp z!vMmA7;K)_-~gX_G}#II0zAUoi=G$wyN{_gi<-GvDT+WZv^o(>-B^~T~>mFvLzi^eb zt(eo@D@?DAVeX+gzw;xFx@9iTi%t@gV0>)*`rL=E=?4+`^g4wLzD`UV?N=Y97YPhNM6alXa>ha zvWg7*>c%DTe}#6*2~QDq)|PknaGGV3%$OGa01Aj8si#X(UHhlH&Rl5T18hV>Lb%XP z-zI|((Md3 z;5+aBx@&W}$ju`M$XKE&!?x9c5~XasC(Op!;z@PI;Radn#IO?0EAayYX;+#H1HSb% zjmFe7z)kj4*TZkK9>cjn>c>NPw-9)dU<@p7a-$+swXXikyPB948HrIz{g#j~K{}sd zb?n%q;GmEMQ3##0m0zfEL;)nIXTY3({rzfc{yZT9%H#m}brICvS9e+`-EOAke0F#j zslZrQ&Y60s)|?~lA}71;ntoLlk44T7#kc#KNL8&&=F7INMgsX~S5|mNx2n@yb3ZUZ z?|_;|YE!q{xbw*Wq}?PhK7a2Zs?%uV4q!m(TX?B7d8UN}AmEh_jhv#yDRocQLrA%} zel6ecshi-5kk=pB ztaPe?wJPt0kXXNM>kc`E^cyX+zE!D#)%^`SzuwHj zavkB27J`Uz-pB9-;7v2~<6!5`{7~edGCWgwDql(^p%k+@^P+fh?RNO`=P@|rp^6SU zaN}d(kxOa~wXV8ptC7d;7+E_Q2mzs^dwZbho>IfpW5>t!Yj-Y(dyMR!MWB!;a4R_o zWS5Jv6R6Z+W98DbM;uw4X%{817=gQTQPJIY5;OSySaE-=KAoUH1OMGO!J1r7q-7ik`s#V!V z@A(eInDsx?a7wss9zyzHDD@xc<{Ix@*M!Bhhd=LJ6vm{jmw&jl0MVvT&h{=|EWhyF zXZZzNA6XT6Oi#YpzLg_|!!{xHZyx_OZ)op(u}??19Zza;rE)eJCFejOEeP{3lFQae zy?-O~y*rVHpGS9UrI6h37+eUUc6dg5$B6g!ecte&-zU40dFDs%XJ%*AlKu>9>xVz? zo83rw$lY$C>uQyHWkqjI=zuVmO`)?(WgN$P1y0N?s3ax;Z)O|=$}epvjIErr6%F6q zL_cl=NiY*<(t6)UxNihioKvu{?d)9m6_maAZ_dxK&sFA%FC>8EULwP2V`A~nwW3R< z!jjgai)l{SLnfJ<=64rvIj9HqV{PN4fLW$}ymNo+iGg`#IGy?q6YC2Z!?Ka8gR>*M zPtWKY`yHMH20@HsKjuj7tjY9BZbzWf-AYOz!%W?%L>*z=(hJP}QFs}<}W$3aeRaj%SLY=PK@?{|I$KbKty1}Ug#VgZwx z!?|2v`SZG^^)|u+@=oZb*zeH_{^x9nv@Ne*uP|rGErZG_+^er23UE*G_?Rgj<7~8vdmEljdlwU&_}0cQ z57qUFfOUb)3$zPN3`B$f=d&&@bX#|hQ^zM5hU9I~^R|5siR`Z~^TaE?VpO>EBVlxZ zI7G&n)^-XcZ`}MSag7V1Srr@=f$F!wB&4hx=`FxWCmsm$G9+vz78=N1=Zr+2lKBa`c6xPmafTxlEz+)|K~+ZFFpk zj)3AU6)oE+J6IRaECe)BliNX4n$O!n7FSHS=BLX`JK=F+KpqEjKKRZ{vFDCm7vDUS zI8dC1TjYjvO6na>iS`4*sM0zpC2U@?pG3pMQ}vU27QJn1^!i0Al;7`TB2GLU<00S5 zZ;9hY^*bC8Z$IMoTHvCo>Q3DaLH35!LAY!%}fIZB5dBT#|A?Us5yB-NsqMf1;DI9ac zU%2h3r5fD`uq{)I&k^nUg?}#e8rH!T(beTZX-solO$#6P%M^998rOjV>S;iI@i9)_ zNiag=k3l7ax533o6h3MX0%lqiGcw1R#3(s;QQ@GTc~Cw&9T>GFv-nY64(8X01qZtK zrh)PpXuzj458tRe8vdEdbR)GefQI~a#)817$E{!^9eNt7xPqT(-7UU-Q~`0(laPx7 z_UCLm9ug=w-qfG8(Wc-n5jUrH$`ZIdi-E@7MtDM^QhXnCpn$``LcNzzdL>%;S``%I=kQJ?J#Y1{PNU{{{KsgHr-( zL_!gm#Lr8+7VWW6Ix^B-eCKMIA@rowg+|_P^*dN>rD0N*(S(8DweRc7U_YIK2tKi940eRM1r@^q&%v1KW&$z)W=2l?` z@9X~26GjCTe>v@W=NhZ`+0H4CV{>yFrroZ(35-QjQ!KFGr`>ajBwN*RE=@;xEVPsP zMi$U(8|0>_s-!Rhl8I!5SEjX;8vTp9c#+(AvDz$phPs$yZFbYbHEcuh0rJn+P)!hA zU-#Y=LYF{pMz1(JU{!|$`^Qeto96a>nvG6O#CwJo{GWs$)XSKj2YPj9~xe$l#H7!w{mR<(zL|$iSu!a#zfrXqbB&#fI={d z7%dr9tmdB4HV!9G3DGA8(}faD>>l4zp!*PMcGn>9Zv;24&|$8<)5S17=^Mgux2bp_ zq=nbCc*b7 zuBG?xn4UQYV6YD8L@6xq*t7HE;vT$SWySP>PhB0UF+2Dl=rcbi?n^W{`{uXO2ED{O zqBP0`!o%>QBy=tGMpcabINPHesr`{QvUSJngov9!rh^t zyK+*YW_nJ=#iBbtBllJ73O}-oj`w^-&k^hD>W@M)TBrn_i~9AoR+JdL2b5p2oYPvI z+g_%lCYiT~1HMS3dAgix?nW8C{ezu3iU{0u|KC?t0`8l4UntRH3VsmYYEy>}{KE=V z7ExAyqF)d7u@=YIPV>G3ilWSzUxhcCUF6(9>47Di>5Kg9CqvIBAZo9>ac{j^-py9y zZrESNhn4FZ`2!Ko*Neb?btKrW+d*~#U?G`FMjAHPSA3U@$?Z8*qkH#^s)n#7H!}nX zL0Z!4aJ*8L6<%91v7#y$5OeY3);Lz_#dd0@$j$h4q`@L5$+fa6&7C$=%-WHlL!>5W4pMpcb5Ac!v7P2s2*YNXBo5~@II-B2A2k)}Y%{P~mt{b;d(p_oe z=WfbnYqmW=`^}N+%{JBmaf@RdSDw*(kFV1X6<+pMye5}fu~gK zBqkhVS}R)m47S>!djZeYQ})-rtiOhU%dr>t*pI1^7w){d{&i~WB(YHs1KtT~W&F{4H&T8)P{MWc zw$5oc!z;Wo3a-(Hwps$s(s233UF)I7)5-|so$BbI#tCQ3 z_>F#Z#l*H1JZaZKEIme=+wOM^J=8-c)QsvDR+V6A&cRbc#q%TpVwD z)>c4H^1oxPSF{<7dCl}!Y(Mh#%aWCT=kxbw3U{0clEA`Oc`CNjr9%6AQfhHWmeXaS zgYWHngH7aVVF*K;vJZpK$l0gws+$Obb5i3fHPkQr{agNIWkyK7$e;oqoE-;s+TNAv znGRW(nJKdXlCAFXn)%i4Z}TJ$2zzVPb!Vd8K^KurZ5*iNq+7I+=Pf=4-KmOnzH>74 z-K#v%%To#bD8Y9@*ea&zahnC`M1HBJ~ff1mX zt=;9aH)__|3+oYmRe1Sbi{Zci{~mD|Ngr=lzGe_xdj0}*&X3nO zW+P0`AQk3+ejUm`({N$i1||7A`S7P8dBR?0ra5W^44Vxxmm-;ZAr6MLh5x)2&JWut6<&MZHRVTK?(3dio2f3(%?UK{MoLRAs8YeT#dj8YX0yAT zRnMlMtDXtJO_MEW9xw?~H}sdO#n@te&8Iqm=vGafyZ&;9g2r=MycXk9EApG1hy9qw z@*Dn3uX+9W11aDWck3z4w;3)hf=dZJ_}?AbBf-kd1+f%Rw%AW37> z@&dzx&-M=-vKkNBBsKniZGJJ`P9hWmCttbs;1*mJ6l4*ycwON^Z|EO6?t=vUx%&pJ zB3?04R~x^Hqb#_*#!GBu$SW9?D5!A5$gCBTfbsqM7mhi>@CURSF%eaz5a+P17SYtl zSv>%RL+?hN86n>b*n#E6fDlV(C;xm`i#dI)$o*;Q!eo2x+}gv*Iw1mvH>y-QGepw- z>DDDC5VvFniN)O7@7HT!P&r*UK?tsMPtYI8)McHE(cdS4f=;(lnCxbL{C7| zIE!|F9S)a07xIXU{0l=8VoQH-)Zda1Rj);D`u27Jm@bzO+-uO?Mg*u#0I$QTgQ?^9 zkd(6xCZPBC=xXzL$&)EpHHjy+h&13C^1oJQ~9+7@v zPE1N(dy%L#%?lH3_zc9*Dj&wZQ^FK}*sw$f)T((%XW=orKW|KXJiL)C{y z%KxjNga(}4LmLkRYbG)pj9qkoWVL%K>8}9t`;ez@3a2dZOMrFd_e8F&bS^)7222?B z`+Afrsm>#u!}WTbMFQJta7ZjRn+yl#PXOuKob4isBM^zie&n|ocnIyxbs&jrJ?+z{ zg&>d4)(Okql8Kp={`FD!GIPm=n`b>1fLz}v#*7w(&r+3ab-JBwTrA3#j|%WTV^)9F z`P#LPxeFGm@k9u{Vko@g>gi$sC@7-ipNnr|DJCPW{~YRbUB&DjJPk+65?&HOutZ>JLr+tq>b{UQmI!GPX@?!V4&+m_0&n%gf5DnTHb?Qd> zhdaLeD?-vVGb2}!FW4s(YiY8d)~%;WEZ8xVV9QBi)8&=H$Es+>EA#87TgAE4F0kW3 z4U*U2XuC8%WdFeR<-yuYZs_6;KPLktyK8?cwTK|102c}a=uUUqHD6w|gfI~MJeQ8+ zzRW&QSBy@~7@=$LdF?csTYtMplP$y2h0^d);=(g$6q2HjCb;YGRDi6BLA_Y!@s3|z<|>+^cnU?sIZpy;NfdhN3+lC zcDWC*)&MJp>*<*4-#<5B%?CbBh;}R#v#YvvuK*%e!#_vigO zJfDxJeM9=iQ`8c93-%z7ME_0JB8U9LF6Wa?&62l06JM;3479CZ?z^GVF6?;&_g6lc{D*D1d62#2!lNX}r0$DDgz78**B)i9Qs>Ydw>c zRGwq`GqN7G&s0K7SAZBUMJgoLxn|AC;l3M=oNCOCHa6>lcjSm6|qDREd6)e#N()tbxCv#u?N%~>YQM10` z1vD|5lBA%WI3xVm35U*5^EISQvD@z$opS9I@!jv04F~2Z+_A9#fjnwu$baoXk{uK) zpuv-hB%JZRee~RjMYk>rzn<1gH(-jR>?bNM23#eidx0Usph&QzsAV<{2)gJnKtY3* ztUJl7Z-O7=nnz{eFgZ0jKzYCMC#9tJD#hebCspmn73i}ZH4y_=8pWD5cef+V~K)zN0njf|I?v%ZWuX`wz$0M6ZZHx)31>Dy-~c~`adG&?XHVJkv1bk7)F)uT^A%-X`bl#%B(m{94-G@5 zY%-yNpd76izefmZExIEAy~G=ooQfTBaU&Q40X+d&a)4sFy-+~zH=2s*{v+i=M^^B} zn_Lu}w1)5Ad9ShV)T{xAfWae8$RwXXA9*_P9%YHRJSN$Cjzn!-$3n&~@|E*t)2mM5 zg9juh;TucWrLOp!?jy*u8{jrZd!bvUt_`>F0i{`>)LgKi0@j(*R~S>B*`w=$sZmpw z*q|dQ2fYvH8H?}Q-wigAu31$Gzjf~C`SV?QI_C2+f)J5lDZs7+{9%_^4alGQH7Pkw zs^HAoni{+0iMcc@TT{PKOiqae;KB zfQ2qv2CFaAT;T^5b%PF% zpYJ<1voO{HWA`gsR~SS?_Wk_}_LX0D^&$k%S_41~23#tu$zWmnL*)K_ha>un^Aa_x zGT~676^2wWx7oc{o<+W0{pv2P$OFuRRx*cJ>^b(@kN<&kW3C>e8c163qmWj^@SAeg z@&ziHq;jkaV=u$<)Qct4t4E!(+TrqhNEd51?bP(@i)ny^z*6JkXW|>Pk9`ypQD&aS z&+x;RiH9DjlAgzztq>$923J9nF^4W4pp7aF(?vim9PqRP2eCcwd-K)iBj=1JOD3^d z+;u`~`I$1@;_Mg=sBB48K|o?FaMfQJHcQ>u!#V|ASC+3WmlXN(*_BE);fL==WJ6rF z;>m6kz@g5-$v%G7t+|~ROlg?GVJ|EVR%+LUxJnwqs2utlePuuk5o;w02y#D|tE4F@$e z`%_HHP z5F99)<;>x3(-5n_v*Q*Xmn9HMqV+XT-4etmb)%`#gDBaJ1aPJDE_k)a`)ty0?!+#Ph|Vc#wILpf(IFC zcYY*)t#4hufII1Z-uHi?nh&pgGi}E2m?A9ZLlyKQ1nwSbJ3OfV_=rUv;?iEOhxWDk zC*ag}FT+Wef|y`X_W6;4c9>=sAAk^< z&xMK-=TdlnEF5a58K54H{m9L(^v|PH$UYI#c?x3Xrd-E57x@zj^dt3E5~cw*_4|FP zm&}ynn1y9f&Y>K4lwxp(%P0Q1%)7}SDo(l``y&^OR&$o3SRtR`O`5G;R`T0gwI)>8 zi~}uYh9y&DJHS;`tPiu2Rec z)OMq*Ff->`-j&eo0zYj`M(MkMe57=MD)@JeYes1a0M|ZSThWY@TAK`Hri`ih`_v2g zw-csy!lfS4iq%{&%j!fW>rhsi!O_CI()>iPb5_?HyEW5vCVxf+GYPiq2`4a|$31gdcZd=aZ3+p` zpa(zak8ugO49*t2`%wbPrg7-}Al6b{8r>xv43BSG=MNwa2Vp`L1a<> zUH`CKQeL1XrUJha&q$Ae@@2m@*$Kh~d5sI$-nSC8W|IJN8Uc%ET~iJ72wJ2G1N}SO zy!r|EdJ99w`uNg?waMuiB;D{ASv_AcAkTjqoS%x5VPJzG1%2+# zgQ%3t9HUJ-6upO~KibNwD@ScwLPtm6EtoTQ+hB#K$}}kve~vYq{nhxJr-GQ)9ZevD5vl~Vx|VL@(&Dj%n6SwR zew`jE|M#W#G{AfE`}G-n(VND~hk7@;d#7X;Zu}6$x&~p=ckYqN>yxWoJDu;x?;fYf zKNq$~U|q^iRxd0HmFogi!XjdlQqNG&?(yHcQ)YIm`;6Fgqg+Po^G^eQO{-2M&>2;0TdH9zSUM&ugZ$_qJitg_p#C4g@RICdk{ZSw+_}Yc;?HA}Ykw)fyRTFaw;c z;!g1?Il8l$0YF{cd-zws3_ax#J=S!>&NDH5yIb>i_3TRCm#3;3Gv;f6fi#UW_44~f z?ur;YBYt9zA8zZflPMR@$1=yu51%;TzTkQHfaS+J$1&+UBh*K6x$X{X)#W{jBBhH|m!HIt$FScW_&#f2>|W3$ z3FRTRE;HYx9M?qW0JZHI`m1Z{PGvuu&-nzj>)wJdbNNA$LiqlUu_RF9bhHaT+}_B- zDzZ8t`Y~YqJp5KKldS%rM#A(T;&IZ6D}nbvIAj{Cru=KVJFG?sh5}F4&ws<^(NM#i z63mJzD!HK4LHOokI@}jdcdk43YrEBA8j8)h>(FKYp-i_h@sN7qlgHohR3ChGU#d~} z1`eN#q0e1COVU{M0b$ya*KE5#wVyq$yq@-au#N*$_BV7{Cmz5kv|l}aAFc-B@<|CE z^Jl1c8k}_&IE~X>?44m7g}h2kng)zIge7Jt1ssVAsaZ`IpL7UYW{-I0PE<{4C=1^EPJNZ7C%J`Nkg=e z3KU>p{a?;xIzFU5T{G3_@9DWELKZ2;8a*o4*czI-!b>}BKgIs^aU(juQZO>H*9idQ zA$AAz2jXkaSd0p=xU9NM=9#0gvoYi)4bPjfjp_U8Oj6D<4r^#lKMJYG*}Xlyd&T=~ zvE+%{lKTVTFct1ko%eEap-V$Bj6|)tvP*WqhC`z_9_n3|@W{y1!i7xkdVvQA2e@_Khmwbv zJ%L1MkmUbBFW?=_p~vkN$d!bhnx@SCStnKRy%8L1*%Xv~!%CA1U+y&R!_-xq*%;G| zl}rX$3Sr%$74FzC^W@d@r@`cf`_{S^%& zFXaGiY*_*jO_{;Dl*Z0IZ!&q8e<71_OwYjYb&==fXN0=v{-Dg=Jkz*6LZ@uj?-vMoO? z!+l<81MnWAksE<=q=w8pKGClKbQh{P4DaFRx9USP2jxv~cTZZYk=F4p46>}ktGH}u z>kXwrr9|!SQvy1KcPzC`D=ZBN(EE|8r8SH&2khp=2>kl;4q_x2)6+3eNm}D2DHi8E z3?l^wLIgfajz(iM08B)Bf~%IUf7rNGIZ`4TGS__tq){&>uImvO$_Hi@29mjQ#x<`q z2-8dhU`e>cnmA5y$b@8S50I!liXS)U#dJ8unOTKL z1TIdTwO;W|_!u8f59G|;opIVSz;H=qH?7v%e_*glqS=U_oV$fF(DQAzw@?54N{ZjS z`!(THhx{azNk$y4Kn*(-Uh(tu#l2WDR$S42oUCq&Xr)L*cnl4@XvkEpj7}?&f%*c0 zC_S|;=`}F(I8vJY`ThCPEUOM{kl?jw=%g21DP!*5`MUhNbm`w6vI72ZUW2TJ;RuUG zn)SLQWVc}7u!39-W1WVD{tr}lHC+{qi}SZ*Huyv%^u6lm-((Ko3xdiXJ_G9hZpZ?t z2s=@xBEHMn)!~c(Q7#$8BB8gY`(?!c3!sMZS~VBbDC(zoQ)0j?QbxQj1%6QlHu4|W zf9?ILVAa5mP4*^>Lu`^Qv^}$rTmq7&PXTx1c7XS18FW*uO3gM+gmMG#Ld|^N;VLgs ztziU5G8he3?E$$1DevBAH7L7gS~D3HP(Ii|=&jhGKb#H@V{y6BFl2;m*%}MxoD@6v zpPplL9(_Fs{0I^Ynsn0;aT{dg{ffPv&K-M(2D91~z>55dq^TZAuh5RG^_K}9(5M+> zkcT~}Az$YL2Th`4Cvd>Sts*xm?)&vkx|K0s*+P!X0!k#hTFL`4ohkvX|DqmAjLpps z(Ealf{AMYR14sCaq_?O+`Q;@LBCfixPVV8MkdLMrh6s= zfv>cQ&q{1Q+Sq=#(C#4UkAWnd-?nG%M9@(90%^07I%z@zE>1Sn;1AJ4ZGWN&czKh} z7Xkjohgpy(1dUHbb7eJOQa_Mar{Rrh?LCtRqnUC32T~4~D0Wm|T<*3qNkjIq<`%ou zXsT)iuc|R3aItgu%x>U7n!yEv3Cr;>6!w}~t8_$Y!E2fKPvn#pt=FKzz}iZVtk8dS z+(){Bx+FjqwNqJ_BIa>G+yG83<7d4E%5MR^cz|YuC^-Iz4%oh@~Uo z?1_uLGN+H9JzhlaGxCwnp!u8Xhoh7hhT7d6g@pXgMuC6e(THeD zh0m&a#52)@8PEqR$sP+gWd#-&d$u+gQ+_8FJ%0PEHb>jMFxl=3Jj8FQlp;BkClv1*7W*a8O3#9$RGvj#wJ}?=L8&QJYRGcaBhcr6IW@i~CKOqt zv2sl>A~^|F`wm{dXDZg-?;j9l1_8x)?o^J>DW1J&d2o^96OUu<@8S7t(@jPwVa0dL zQlA`*Y)sWzgSFe}?}^MUULOi%0})w0EeUcKeGU5Q8$D`;{MNA7`GlyY*N@4e8>bvY zldM|56K6-ynLp95SUtvEm!lfn+ji@zGA_tCY5DqSSM%QUXIV;44%#K5fad;s)9nv` z?he^D+1n}k$QttVwq~z9{Plaz`B<%Vm){Z6`*xFaCGQeMnVEWVq2+gSLkEA1kNpqy zg`MDqOgIaOvsKDcwtjOIrZUu3(23HO2H`9QnPn~2nw>cM{MS0@YDGgK+liDEdDFKX zP)kD3eXAOtod`>UFiTX_R=5s#jE0SDY=i%NiJsbY@vWnuYP_2L>Po5U?3FW-_0tO? zZnFih{^R7gr#`*TKDW=%7)1+X&Rq-r@=UAo?~SGmQ(eWcZ0ZJiWhD1_b>r|CYb^mH zXtU&;+u7Fi8b4JS>j^gkoBTFV9jfy^%|uoy!muTnd{n>aoT*ul25kS{;4;pp=wY0p zO!Nzmt=`WvV4}a|UBd!gc(g&dlB&7_T_kms%`|5}t0kg6Y8BF)Gxd>X@17H4jNK@L)qF zY_4bHwEf3sejdw?+_&JD@VKMl;FzS;8ui*5Y?=S_y1yO)m$R)dpA~SaK@N`E30Xj( z@9~_SN0ly&9^RtD730^y^#}aJUnkc+>J1j%x+epX(OeHwtB54<|DBuSGYUIgLc=r9 zm1(I|ok)hp;yV>Yri?n3QQHlHBHy#KB1&D`GeLAG)Z9i<9|tT;RXU}jK(C8r8ZO>G ze$hzwG>8QVE`M#xevK7Rgn81f3+HZD=@ZVx7tm!_Qw(n(F<5I>r$1kML=VZ8u{TZg$+fAX#%ccSnz2=FcG8dPHI#p!uOkj)67^Ar`RorX#Y7dY(TkSuPYoIyN|aaW zWFrxmo7#?g>bPy){Sp$9-Jq5yUi&-L<_7qnD1_wqF`r5EV=^Bev|t!GmZ~d}v!|J$ z_@}sXqxI$3QlzKlTDQAG*n<~c3c-xUJF4G~^Vm-h;p)wtTUUuKSquWWYotJ?7cxeG zo~DCithDFfJLBt^>4&9iQJDfvGVsM9%!EG7v91rPUVrPV+7lyF4|t=R0yP0IkXn%sHoh9c*~1!R%H&$chRuSSlfVd(6QqM3CQrJMd3 zV!roOsHCkpkPWS1HnVswa9ZOx87wy|dNI{hrak|Q=?tRLV3Rs^Gjl!!WF%OkW+3@| zGR0=;jKhga5JJ)#LOzB*lkEwk?e~w^*gKs${K|S^Ude9t^lCUqUx>?>}QK&hmcjN`wyO-IZ$Xx&MRsHnRQm(S14|PAC;*5#q zm8yDC@)`~*JEe)jkx2y`o78_9p$?Xw*?z3+1ld$eFN79nPhgu1UYsn65Y-zTTZjzy zPUX&cn&y0J@Y1{(8>j6bqM;m5?VZDKy|)a_>o+fYd;f{gj( zA_Bf$cDQ42aug|vpu4PhdA{PIH}o4rc5I{Fvpw&RnvpromE!!gnZ|R&g1G3~?{<%; z_Xa-WsX+Bk?_-IKVuLWD!ueb)@^6p;db*Y#9g|-gw_8YSVzOw7~|j z36lQd(nMhNX%7tA!^r&^Ym-}uW{K#-k2*%$27PFb(Tm+v?FL?INTB*m+0c1mb1WhcZ_OydKkn>LHI!0R&ROk^-q@O>+{A|>gU$`Z{OX!dsG>u1qBA|8xZFA zx60Wd%`sAowF#rlEX0@V`{w72U4m=8YJk)kOd5;|TZ+y;e$f8fH8JqaG$3L9^X0*s zJ?rjO+woqsAwz0mX4T9Xaw=F-bW<>6g1t%p(CBpTikXqMO$6rUeL);8C1t)*t``(Y z(_Eftg_Q^~j>SV`927!%dJKUDr|wo^`VEVL>T{`$Rcay`vt}65O2xIxk9T(=>J6Hs zAa^Mff;6v{i^)9TulHQ(LA9FDutzBr7&ovtc~OsC+PU!tT8@22V(Y?&qe@?t23T>| z!*lNtHk!hVW@^qDQV-GUbN&WjZ8BGa1JIvN00^|TNV}zdJmEkF0aJ^aSpDyn6J7b=aj|Z9^#9@ zB=4USJEPf%u5?A?*+4~X_z-unHAHx1EtOi~7rD0_-N*{I1C?lJWW`*LA1vW%4??ju zT_AP7ys9+K*h+-K-V?D}QW1>FcmZP}b@Vo=73>~X$`it|b2Kf(`%-gh*c=uu^mAWk zoLSznEftkPB^GD>(mrkIHHYLO3{D3K1t%4wyC0CdJ?y}l!WgPa7JX0!z&nf<#%4@a zhRmPB-ER9i6=N_7h*Vg-mt*>$Q72X`I_M&l;{VF>Q3vEy)<^bDTRQjZo+c2VhAi`w zmYbgT@07Q8TBo~I{0-~!JTOseT?ln+sJG~F1M=QUJzhwBqrmi`0Yw1?0hIt5kx0^(6Hq z!%?eq%M%x4Z9eyGML?91o?R?d;w^AxML2$Zc6PPap z09_%Fgabw*&0p#Zw!)A^uG2B_Ql6e(rKka&0h1K@GGNABKoks?H}fU2*vp9ug;qO* zK$=9n2(XGAgffMnB|Mc*dE$B(CZS=5*rBrK(uV(JKQCIE(HJuWMFZQ_QFkew)6f`{ z`x_6Yst(p59v{hU69}Fj4HlBXB!UG=J{a~gqwPVXqrd6dSPFQ5!vnQ)P5j^nebtuG zlvN0)>tl#W?)Vs@sr>R?dx!pR5k%GE2!y9entCs4Z#_Pp33Er1rnp`^4+P$14YT6= zwrQBX=r-O>oVq}&op3t`231-`#v-asgug!lr;9=jE#Tdnn@k3B5o0ZWJ3AxIaVwHF z$K^Zc2?~5x|NhnpHdhk^{Dm|_;^=^!sn$UcA~k~)-NM{hPVv1fCnKX5-xw7QEL5$4 zjJHcu!_#pB2s0%XvLd=&Sax#87!oP1e9;}e?Z-{2LM9-Ua9Kz63K)Dk>YYWh)+V+9${Hu4 zcW1D_97io?ECRi=$|gl-#-KzKg?p%d8sb}vJE#>Z7&qvsJeG>H$KMS9Z+y*OoUJ?Q z`CIN@-y+Qf4E#6bY$#}G*ewgC)Wj2|pjZNlz9J#oS3Y36A47D6vi^UPV*SZ?R8%$H z_yD7V%;au;y_j^_ends`)upZ7Mm7Lr+&nhAV0!zRqJ;tl8ZOnp4oa|-MZ$i?-DUN3 z!wqvgxUO9H{Mt7t%syk#i^xO3_<@F4Pun@B^7x5#OI(wjvzbA33zs#Kk|i#laD%3C z3C;Jnp0xIv6!><5c4dcV$7`{I#DDi6Jt&#jcp=?6@7P2hc2dvpv?WnTr;=X4}) z-EP;?Yp^jBH*E1zFcn7MeDM1~;?qY8UvQaU=D)TkhDb#A!I(#<-m{I3qp18^=Y&5Jr1wEG3U2Pk3!#BJlKlsd?F&}@&&b0@$c%P z3HF)a&pxes&t8^3!UTCN0)Z=5LcxY2>Bz)P-CORsyRHTx$&hHT!~H2q%}4eQ%=N8j zrco^+CnsL@i+w_ss4;%$&Ne%tl3(fL6@kDa!{Bj^%kQ(;8sLg4ONja5&YbgW`!H$9 zCtLKo00lvx++eGNRqNNB0e{wBq~pG{YqTp*$I_jPRuEqwgf@3B#(!`;Vv!x$djrC2 z$3o;b;Yd=MZs$Mw<;5zsP4!Qlx;s4d_bodq`iHR_5W5>ETYXL*GZ~-#9|+vjC*24b91W($4Vpa9-H9M<^rYhmTuH(ti|w4VrEl&e)X;!e^;hZE z2Q~}gYxQlIJ;40Hp&HIE%jlr`$Q-3@h z5c$O5_{^ORRW1s;r%B2I>81qN+9x~0CSLk3l%f0%zpX{zy)x6aoqU$CJ-uxJCb}v90+k(E(?$C==8_7(h&fa6axeWHf?qk$H|$UUk5cxE#pw@5bg$C?bWNh z`4)FC8>59<$BH`6oK7*}skOmW>W!cgQcKf}V-Ztf1@2p4vO2eOqZl^&D2g+cVr3fP zs){?gAD5{;^0NUo4)ub=v{_w*#6+;9q9Ear%A!bA(re#bImtqTP6fRz1n6B)^x{ ztd+4Rq;vNj4Q))jRSymB)UZbw1a$t}n+Yy|jQU;z#+(CYelBy+OXHT+nh*ZC8{e1f zj)*out^aEflG=Er!S(jjscqLRJo#-Pe(GOw`yhoPwRkD`9H}J=G#N~FK2x)E$0+{j zKr(lQr5e1*UuCE1$Dm(zy1tzbq-uRB{0X4<+@B5qi2Qszz!9NwFRnaK6R%r<-0B2r>FqOxu^`(W3dtwOC{GrdHWdL2!^#T+02G~Q zispzXBy>>k-46J&F8BUHn>jPMwa@*}eHB547$9=D`w{BeK)F}FmEe&g)t-qwYQ@kb zdXehjJ+)^znp*$qKG@eONlk8XB-3mvtw_yi$wNuoBTZC!lZ9lg@Xq@Ai9dRQ^Fc?5 zXP=-uJ9yrWIIDkU&Hd?7U$ExPtJv+Q{8lZ!$U4K}mFU?3YYYLnDlyBM*c7s+`MqSp zgQH$Rw(LYjbZjX__@qci14sf@j3m2Ici!hUH`kP%eUKMhn9^^#QKVHuizfGiBG zB8VnotvgpMEMJJK8>KnAXY4;MZmTi^9vLAI{+pqj6v(;JMpygwDpMr)ww1_D`39?< z>EPoHgjvR|GKGlTZ(Q2p2`Pj=G|r{eUDb@08KA$}p@!^BY>ioo{35V^Aa!sa5apJ! zR`UN?-cxsrJm{!-=JN_%5Q>TA2ECIBePpX~Sf`JPi{?oBNA1Ts7GWGd{R+ z_xwev6k{Y#KL|8(3V1U*Ed@7TY{r%bAVO;)DUZZ2)SQ=U1F ziUV>=jMLDgP@>)@np($T`QTCu_h3M#n!#ie$ZBS-hbG0XMo{N5gQbWyu!+R!_8#br z_PogE9y){Id9$cw>8tn6)PFs~0>2r&>u};EJcYsNuvr8ZnHX-{wVoWDZ3?3{88(48 z$~SqsufLvLf0%dEfBJtmtVogRn@Ynn4R#neE)}2XJr5Ufc*x3Nz9q|hwh-Wy~igQ?&AXB zQ@N9_YHq~bxd}XG`N>-BGvA>L@r+{4<&pm=9*dU7qdG4j2B0y@9+okooY7LP+XyDL z7&h^n_B6XNqq9|CL*EU4O1(6JP?J z^Z*QKZyz7Bet9CSY(yO{Prwn2RI-3TG!p8`L=I5b$35B{rTTgATv&tUoy^msrMn(# ztR|p%tns4n-!{swsP`vk%lkVCq=&N7~R>iZ|+PMWpmd19MMPmV@8R=I&4 zTx?COl_|P5z0WbTzd2)*H5AKOS3M|jWZynv?X+AUz&47tO~WJ@%S*N7(u83^m%bSt zzuQz$`{8Xjvs+XU1MGD9kY3pyt+#KuAbAQ0nKX6D%?*;^)~!=vGe)5yuK}_XabXuZ z2`%mI@NldPeRQ(mzIBp)YWJJnoukzX1#8xFYJ*D5jq;=u9r^@mLgW~h%LE9`k2=qO zWZ9pWyVu|w9)Sa{ZsOV3MmT^rXrzjn!1EjC#%mInhl=5AR*stTl_C(}s$)khJx#3+ z7aqf{=pQ1jZ)~=ot=AA$bnFaL1NkG1krLPgW@{2NcG62`SQlq(PL-_ril{#b)}w?e zhV$R>qt?JWr=8Lpog|*jEmHpndat0R<=uV+Q=2J99p}5GVWHc-r(&xu35hn=U!hLMPyFh z!_c^;9}D}$zP(-7vWZ#>2m=GeSSKjSDdq2z5nTDE{s}A1^5?hWBhLhP&w~A@1u~_4 zkvBMa8#Ci(30nf8T#r?cyo9{AZQzwuq1y2AQDEJ=u5@NWX8f8VZ!d~nY3TA|@$Ucz9MI@$1Oh*YN}v?u z(-4}AUr+B&Xo&osJ`5-lh{$6TzP35n3!lGt-Q(ey6=W*_W%(yZg7${snzdbt=37&o zIgo20(1fmB4_}co&2QV0O;G_{ETQ}*DSu?%+%o=8K@zI=hz|jUodUubwdVt%M_i2s zXr^L4On|(*H4XWM5_uP_m=CQ-hH1#CH% zcKTPkWMuI4o@I>?wy1OX&Q;}P&=vecj;AHgtx}U$g$FW>Xx`Ij>c1Op_8$xnp-%yC zu_u^gpy%fspbZM#4R$*+sa)v7=t8H6oE=S%_-hk^ux^9I=UgwCMnT3g45gcx9ah_t zcc0Zn_ET1BwHJdtZ9N&);hr^f&>=s!Q<<4Y%%%R9(|JF&=etawmei`LnSmEKXp64@ z0A-R#M`|EXtEj^iDLKeNh(LQ^m%YKKk(k}~U93|yA|iQP873+)uaQ(9rN@GA(|2zd zQ(kDitEygtP|jN6K)=)OIuwM7)H-0f5Q%HQVd7b| zzY0Ij1Pk&Z9l!v!3UWmye3}d{U(?XvoYls$C~XHoVHG&R7tR`28=eyM&5oZ2s|yRT z85umb~Kub~l3G^7H17 z%4L}(ok4TQjCD(MUnw$cCtAo-GwbjCW6PG(;!OC3gFA&m&n%AB)q5tJS8H2#`uYPo zkH}61E?wx;v6UZH_lL`W9TTHjL;N20tiE{V{Wdh{{KCRd$d|%K_q#C>1R|3nr%1VA zG6kG`*&jHMQxd7QL0XZYGj`DQa8}pZOQ*i$M(5$$9y9Lg7X;)V5r8+Zfj^*3tCOG3 zQ^96G7ZWd;lvw%9mtFFBP#-s4D*kmKKud~Z=`AjJIX&fzz1=2icKpZZph7!eccTNX zU`>RFLh>f$qE|#W_=OhkLXa;hap{zbsOQX+fQ9i4BY^eDZ?bT5p-)#jnWz`S(*)ji1Up>Lfd-26Bxn>f!eNqqpSzX_ zPJ0PLqv1Rb5J1^w)D@zz6jKQ2^e`tzh!|?Qm1ua4Kq^x{1|AKNQbRZC3Sq@ZRn`95 z2tcJ%NmC0EnBHzv?`HdfI9p1VIC<+Q-V8VEiB8 zN+R(oh*SG?&Zu@DRVA>>wdu~`%+>C&E{(^>>U+v!gk>{$mxH$jqeEFi7VC#-s|{+g zq#Ju^Jcf}eY%-KKD$|1LV6Dh)v10_3lNk><*){8m__SZ#K-OH=U`pt^WN;5pf{C?u z#$KQkR-bT;$8ErkgatU84fHnylQ)HIzuEa~h)c6^(TzMb&#pbp0TrjJO3bB2V6O!M zDQ=}ITGdC6^^6cELx7SA&##=lbL$8+xlv68zy)_AlXfr0T*#q)-?!K=qo)+ThX8gN z{w)A1{Rl+AhTzi+bR2XBB{D|X^Qm22E6h`c6K$fDXm;hwaEp$Gj}jq%j@NBSS@d`= z8T@WZL^%+>?p3(RSmV0KrtU)|jP%Q~vzg@RF{A`)$KN}o`*UfBC%f4n-lH~A{@(<< z|5GI>)B0AAYbYCd4-oaS2UL8oogOW44OWf-8iLk#Wn1ZV9{^*$&Kd;f^Q<;+u*uBQ zz7zLIMd75Uk2z-tKUu3|U@V`mQmLh!`7V<~QgCY!MMVpFi z${RtecmoNP65wx6ME)uk{FdYmpNMH+F{Td=h42uSS0wHBDHSTm!IlufUV<2>(BV1y zrAQ>R9Z%n2Pbh2+@{J}z1$%elbVUyRzonMog|WWmUZ{i*faA?k%%%IJryR^`GVzcx zwv9v3XGooh>gMGARXfngiVg@};iK0Gh!_*6zS4G|m;W~Q!r;WF63Jv(VAxdU)cd-4 zXq3iJ%0ry zKagwqDt->P=MTTQFM83x$w&;G2pDY!3wSl%qbX>W_*z#lm5@P$T{PFL{-5q!f#*J$ zGS{JsdXwAi_|5J1lfven{fB${Lg*q&_<3{|K^fW}b5PforfMK*w$5ZPf7Mkc@OFL; z>7eI$6q7+hp}t0Qs1GnZHH1O9fdGPsehloH>l)u+P+^rv!@2+;THu`P5`Ydjn(Cm+ zZ7_lExhw`c?)5^WqKA#Q0xnACL`gzR<%lJ2xu=gr-$def?Y33Cj%mrF(}gMZq`JZXN6oX zJn^Db_0Clnr`ohsmHm%t2xfk|QTENs%dO=Q{$tS&-I%H%0y_+K_;PX9 zBiBgXpmMFvYM5$sw+R88w}R6SIQ;m`sOc#BT|AE0F&fUmf0QDZ@C;+Qm1u=FyeCN~ zz}X}=rU|LJeI9T-5$7(QKQXa(nr6{3vaUK9B<6R%=)9~UMpL!)R5HB7fTczd;Cj5g zclM_4&+q!LC-slFS-!8hH;jNS4oK>u?SmW>Ulmf_#7;wL%HB$#08!QHO&Bs}quV9y z!mmiUYOwj=-!T6Z-6ol4XVCO}U5z{`lWdCz4eqSx&J`ZkM+&!gn_e6q^Mc4_tmj0- z1&Jh*ZXdb0A}FU8nncU7~&!Tu{%snL-cHzZfyx zm5y4{C&bg;I-tSi&Jy|j8)e5F-2OT0jg@Isq;%1dQ-@k)Xu~*Fw}1uHUQhc?HF*cv zOtLByn*K=Nx~2Z!rN5g+p*}4I8I*L(V!ePO1-y0mLuhX^m~__if1s7_opUDpwAXM+ zUYccMYTU9txte8{b%FLRA9?Y%SZpu12jR0i4ir1f2IjROD$ z4FgF%()u!vp*ywH=R6Om>IMYJBV#upn@p1B?DGQzJ*L4LP(&K6le%ltfaV{mYDOBD z(3~fy0e<5DHo7SuDP#Wak2~an+F%cx*B#cGz1D0jQlX~2$pbdl%!-RYdqMAy37Bf| zutcQEEaoz9k|h+Trs7wx$0uD2?kH(EX5)y`YjZc$t2Qizmt`OtS+4=^xtwY-f|@JFM<kVTSz1ldA?9`$S?RzmKOLY&~onm3%qdU>%C?um>=xopXw@MJ%G$^CfOft5%ocmDw zPmLnRjwm!s-Lu{EW_BKMBBE1LQEn`7%c5iFsvpnzpVEYIhZ7-Q zlos^)qItooaRICpXYke%MLL%;MbJ%(4^T3f zWelR%KY0iHFNF9rNG@%|O_%>8hY`$Dj4A$5 z?(W`CzcY&S2|Wk}`Th%zby6pO5V@Cv(Bqz7-2keR+ug9v8T#w4Qe~_6*ZV+hJ9UK0 z45qe(G9XnkwqE;_W*!@3H4I zyrV47LfHR%@l~HW?U75o$&cukFYABleo2IxicV|t?o*{>35E2r;%|g+HL5iuzk}}P zC}!SF?G%z+$Jhypci90qTjNJ{N!o&zN89XBLY#$kbHkFV<(WzZ`ZS5W3K)$==>c1& z4S`Vkpih;F-?q$-Hzk=J7d_^sr-z;%K{i<6Nn37ap`ug;zfxE%B3 zg-*liu|X;JSAX!%iT5pN#SfHeHIrm_M2t8SX=H_FYg?o`#Iwow_qR{qU^MdW#T<5dx{EO=ya>s591|t@X(RhqSaOg1M&#y}j3EyCsIXKTt z8e)nO;uW7wmCFW<9Ud+r<$MWayYBrlyDDZ9x2FiM;duN$y|;p%^16Q%0O`qz;Zx29 z7>-E@b8bjs4zlMyuT5Ls4Q3RW9DjDY_B9g8HMKj%pb>!1s<|nlwMc&xWvJa%ex&c^ zb}mdHI?AWLYj-~k*_Ho#ncvV%)9eh|&jzwIR$D98$OPb__{>` zD`Xvo)aYKklR50ioow@(w^PKVd$UVwXN#VoWnGdtGZ%tOTU~f>B*wUB%CtkCJgX_l zBOeH$Di(l>4xenu01Iel5JKZWAvRwN6 za3jwbPu;)y%Ad#lL8d^Yjg-nzOs?COw!goyF+6#H3hFoI2%8V%akp7rv9LKxGm{m} zZ#X8Ia6#zn(l_V0>f%!0M`^N3KGh9*b&sT*x!j#jWLi!MZM70+O=YT5UG^E{#z3Li zn>f7|D0ziSo?e(KNqCW&wy>D`W>@I=z!l4bT zndX|$BAIhBlh_jDNrYr=fb5TYX_1{yWB0pehqZwv&lKaII}iW0s=dk(YDgC~OWGD(; zT=b*i`X{Z_GU$ePshA)7#iy$hhjov>bV8~lW~6OJA{QsiPDSRJl}&srcCmYUSKWg- zQk8`B!a7T_$DMfuDE3uudL2(4_%3sWJ~#K-uuqK&i$xdD01+Uwh#3p zwob2LLw?piNBi^kPcK*{{zvFygmPOky@=OwLUh1w`X9tO3o4N0A6X};&xKcS-%S7> z9zUg0|7bKF;v}9lt3_jw148SxUCd#VlAY&g-Ls&1&N%5eNB3IB{d5>S%(V~BN6UTo zVD;W(H(kZsbyQ~r+`Io>oJcA~C+sizf?jg0$va+1`vlP-0q4u0!j`f&7PB91ZRwD_ zZy0~cS8yo?!*~e6)T`ghFXiEZ09Vlqs;*1AP3-X2o=<)hg95~94S&+LjT>*~tX!i4 z4jEnJq~KLSo#ikPS&#Zw$-!)14Pi^$ssC>JcF5fS)5(fHwO{Q^EYPJ$ow4{bw_m+C zBiiL?Y}PY^Y7pu`q4pl7R0KTb3)Hm=cPy==`0m*nDgSXt?!|*U1@u^pzO2RCm(>Ge z6LkYBBOZ2WB0ACT%yaomDQ*INB^POMyxHJC%b_w;B|9;6r%|?QDwpR*C)x; zABg|yWOTa!ExIQ;q}Bd>vNGMSHsS(kretQ zW-PoSM}%fsRRh7Z8WQ)5=Q`h}*=FebxrJX>V%>dfrm2?uDusgv&~PYAyG*P1+tFJe z|0X-VNP&nJS_Fe8i8iK@`e)XtrA8vH^|jArJdq3E(Q1&~MUDGXjTriSv0(6{Oq)Hg zbSBG8(4Q-b2TYN&hVBF6VN;I&SWEUv}NA_jgg`x`e<4~iU zzh4tQK{D=8#JW}vOjHek0MvCr+k`wBbMe1*V>yZrg{W~o6B$s^*UcBQ1#&_oTxgHC zZ8_@Y5_6aB*sQ@>YNR@z?=1(n-vVLt*`I9og4}(ta+>~L9NP37huoONWw5g`LLiT+ z%+J5(b-(9qO%czGrwIwOi1Q!NzNJ0AA9$_v_iQiD-G+BTbrP+=6E3b0SMd|2g-C00 z@_6ea9Jmxc;B6#{IX)_G`EJtj)riK8i-v!Xc};YldX^HgwZt}JE?hcBiRmy68s$lM zgqK4Q3UJ!G?nK~R-M+MSnAVD8%wvA>(L?fJy53=IB3AI_tL;8{1D9Sns*3U==hX*L zjSM0>;6R)eG95o{k@zXg%+d+-I*%aX{H5Kc-FlvZ(nZRK`|&8BlsWm=DHt9h#BM?KJ7T`vhw=1&JRI4cqE|0Tx`^H-)=k}P3CQTsys->d zw~tOyjU+Oc#^5u=sOP=QNwwqMJcak|m;>n7O0(AfcNnVgV+)2y7ks5xGi9_1X0oue z)&~1VI>|fK7S;F8f38aW^jEL;fvyN~rq-@dAG@W#JkC#S-;}Rf z-qf}+v1!P@Qjgq1aTmG3>W{{9fOXM!xy$yqjC}SV@r1LX&&T9;@sl)ii}*OOg_6kJ zdI@_8oq`}Zp^P@hZlpO<@VNQQjgJxB;f|X`@;sWa^Zg^n%L$`Hyo(zCu8Bt%zE^I@ zMW(-ns*U53D9^gl~((5{^u?K+AinM>2g-=1uADD`n7H}nfudbykGTLDwp*< znbnx3|AjWP@kEk|!a$GhHjK{1=;CfE6t})DwN+~fdT=qvuTy(J zc$Y9x<0n@d~Y(e=Is8lUL*qbqI)4Ecy}(V<@AtRVRx-VwO3U= zD>z_jYz#@v;8?5IYoFLy4}qYV(iQdjUzoXh^6P;TXgk$$XTp#A{rtV`-(ND;v+pIo zI+5Hn`K5CC0skk_!Zikwz7#hv(-8MqKYqBQz#s%TP}!TU%Rd)StKN`=3SSk-<$+QM@i;8|fqi+>vjkM5meLYLNFUE*=ALcj z+wwhQMw&y%x^kI(kZ# z1PE#g#C4K*;HjxLb!p&>Rv;t^d>FGtjy-uGwj{HG+hi;P-A3DD^fe`phvUyu+h!aI zjwBRn*M7qwHCW}wRm+#WqkNU-KF_&Tc!5r^gRxbBi1+@%(IuNa)@p}BU)w5F84pBo zM0R=d7%a`BGv|5F^3nVUO^C{kU@jv@9Eiz|Q^#X@fR8=N70C0L zE~J;xmyhVPA<<();rI7lvmV3~=d78r7A>s*LCh8hoi0jloKcl)!22&lsbFiu{3fP) zu*HD_ca@`-n-!ufn#J1MSE)zBN+7@Z{b?z;cyz%e%T_3!Vnk#&i5eqyq5@f%jA{J% z@2K3*sC#c9m&qJBoDZ299$l{bGl=DV!_H-g4q3b@1Ty2h z>rbSUvx3GOU!9SPUEW7`FksXts#WItXJh4NBN0URNn2_CWTLo?j^mj~>_b2aT3~0c zB)<|lQrW<8Mlvzie6|DgwLOuL6doj(6pltP3pWaN(0gccODB3j zpM)f}q7$j#&XMaB57$PvLFu3=K%p?d+hpU{1RiQU;hS1E_dewI3)L!3ksTkt5OA#5 z*(Jv?kHf^huwcc3SZEqn>hblbg&EvO&b#ZF;=-{Us`NBPQrmt=O6rHLEr017J01AR z2H{{pGtgnn-IBbGeo}aI`1$P;J~Q7(bZlv9NAt(F6v>x7xl3$J`)-%&Qy=%kY4%re z9AgR8v0ZA`pp-Q3Dc}6OvH`1*M@BH3bCtfV6@BY7iVtOIhH|&o$stJ^YWoAIT!4{l zk2RjH+F8fy)d6A(LgC_sHRy|L==aq5-}# zfc}IF$kVTNvLm~N{|d~d2opDq$FUG}7Ylv7w0MA$q1KB%sX26STq)QG6a`NN$#P59 zbajSpJ*gUVRi)FUO=pXWX7_vbaZ0w$q|0F+ReR0GdHDO>C|;7A{r=c6+&tW0hxOH; z%3|v>;yU`<7mO8>NiLagV*{#03Wiqx z)I@Ui!WaI@N05mVz3^SHHZW76-}8n$cDd4)3GCWp7Lk@$G@p^>=$<6o$t&gRobYBh zVWM$uiBJvqHWfN+##~|*Jt>2Er8!j`%a#8y>D(M+OYN0i5jOp8cPJb;2-DMmtH;49VthYDH<9ACQ^1N(0j zoDmD^yXNvG%Jdo`42Dm}^#E)~78@DOYV9aWwYw=*sulg!DZ&T=aa>#S*#?Ofl6D4Yizbm_WKyL8ACwV8nctf}FKc&-@C$7nFYm-U@ zxqVXfyXS*;qsg14M{CMZLpOxpyo9(T$0iFam)IJD23Hf)RQB3q1TnjF(J3~Sjj;-z z3qp2A;ghsCTD2qNKmCH__@0vvI#t+OYTH1)1||OV6YH`P6Ud~jBl@hGzn{U zF2}(HZ#(#q(Y7K465QFion<6{Wwlg;%UhZ6Qh+co>dXGJU@$PKK&jg3y8X^5DVr!p zUQ72xjE#tphk)l>#zCSC?f|+1eI@SFhFXC}(lP1NG92I|Hl2HM_4W3`(>ocT<7(oM z-w3^&)CL-9^)u0PTJ`On;j4>dMH+W#Uw0>8JbHRp;z4d3q+DON!eB5gyct>AAf6EU zR3vNbf*KsF^$DU*1PSb!^ynpgN$<_?_xGhb10y?i@*^s)g&e?;)~q`J3oxF>Rf#mP zTs_x!?kpPJc6T4n&oU#(rW@e(b(?79LHzLWmB{$GtKvFRK@iOOb%+9a*=?%sWp2jP zGm33|-bi%D&8}^tVfhj3?{k%Jl5D8{ZGLc(#4ag9l5CvcgUP1&)%25~>XX_O9Tg5{ zz@wA&ku&RWQXNn#C1LYnMc;>I`wRMBiu3KNIsXBK-&zPsG4e&R;*vR}F5(nci zt_&O^Rn#&Wn;OptS}ZTYKW69Fa7Kg$q1hGe8W%m0+d0B5@6_TVJ3Y zlm8({>6-U@&)X1BZw&ftxWW^%3y(Zs&&}{hw?}&{>qJhs!NC$fIK+{&{GegI?bH#h zQ)D6t6(g4+btrmWCJ)pE{|9Ma)&@*k7Yl8!YSUb4u(GGdpH;xd4cOwSA90MR-sB{_#KBq93%8JPuTCOt{cA{}N!c0Z2!+eAqs5F&9g!IOZh3$}qh-MTV$=AtBZB`DAUnT(qOA4$hAg0=k8B^}38= zu8do%UmCj|*Gp7L5Ne9oFo(k7osHzkT_KkbDLmtIRuk39b-oB4h*2fD`ky~YHM4Zv zaoPX7%)&`4Ii#&r?>epl3;*DyXj#SCFvD5){a89-x<4qs5z+WO?%_{8V1}vyG|WJb zafWPyZDm$frs48IkZqjLYXN3t^nw=w7j99-@bCxunEp}_V%j5DvmsK&DyrUKYf*m^B(iuBe9LK9|0EYVf z1SS?iUmWzAM?E)t=mWn{^LOvN`Lg^FPGDbKFp%xnE$0ZFqe=!K;oyBW-ZheYmGFbnhEZ zi8$bcJ4n+J0+ic3Q47<{uz;$EFa0@_2ZaDo(#D)OKy z`YUF)cx&i#ob_`g3}NxVqC~p@b?sh#N2#8S!L=3g@_t?Q2@l( zns~*-`p)2Ji}cz_@(pqXEZSZw{JwkZzU%5`C)Lwm+zl2}DT@i<@7?TwdOuk@hOwn4 z_oTY&>szvUiHC%zO4&FL z9%hE7H7G$NtsZu<&vFpMwfz|M{=3mvhR!M9`2*1D#J4lrbqr43#@2H{st>vXV-qbk zQC-JwmNqD+rwaN$%a=V`L@jGYo;vM+fJ zZ4jRx(Bp_zQpfI23AXNsYg4Z0-!9vZU3M5>2yL^906}?SAvAI;v@~k_Lqn$ZlRF-H z$ZEc_Ic9PRRVGC>DolN4tYZF7RadmjDYbUPaT-YSt5}SDwA|^YN$YK}u^P~x-WhK61&&7iX#NJhe*aD)V4}l3PyJM}hK& z24j~dA^%?Y2O|6@*)VPlr^0n4buyP{l|FzdsTr-wb#J7m*9fKM2^*q5vBMCEvb!GQ z_dG5)e14HD<9@LXKh8;@FdvkTKfMXl+Ik{4P+8Bbd$ZF_e^9E4joHr-pNs3f8sq0_ zszt3p!Uct<7Z;Q5V$Z()081E$jzo45rLtS_O@4DtbGAkjSMpniUoNcA&kf@g@(sXmM%D*z!`(1vde; z9A8w|Jlc$1HLrs#?C_E788?)>c2K@j$h3tBrn-gpGu^Tu^O-05`UH&cHi~`-IA_9> zpt-pKyau#>q+N{26t8SkD);7jfNJd+8ScN*qaE}2+t;aHz=LyC>=YU#gHizOFXpV#jj%c z1j6+BQuB8o1xQW_6TdlML*0$LbkKKogJ$hfR_kd6cw~Zk zlsY@Sxn)yD^7A`7%<2*8#$?5U*W~()My+UD=hrFc<+a6~aC{y7hq(Cy^t`Pia2M9X z5N2`lm2R94G^k`)ur#FxsbhX12+J>;;*5*RY~N)|hQ)@}>)qty7!ElPqZJ?rf;LH} zK3Bw+A3*I_^%TI^j?xOoo;+N#XQfYqhB_TdBcY<*qEQk-0cZ}~ewV!-0p*+zzZp43o@8OaU$3l+o!;WH{Hb^NS)KjeoB>lz5led` zA<_h8l~^ReO9MiGTY)13fnj>XexCy%%49*1L8VXGo519jC&+7qHWNAG310NgFzvOt z7XZKb8k)L&pJ1>;0o}poDsP>D;V;cqAK==J!3Wa(kGI)#%*KqGw8^$Ix8Z&Y|BcVG z*N;RJWm&+2nDq5CM&##_!qlpI?5*Pvp zXMVl-lA2PMFyHeCc`cYBQAlwi6hzLj*E%wNTSP4*!k+` zl03hOy7)4cs0zV z3lye~Ng`Q|fK2^rdP&vfG_-ALt_C4BQ8l?ngqFKhKRoSoIh*12->|Mp9*0MT#`Q;s z`%X3ThUEf)wxsOSg3w5T@jjMV|?yGyV(11xBS7b%l* zTK%bZPrOf_qu*K3Xkhf}Il{T}@IXvA0K1UaDI1#6e{@6?Um+%C?k zc|yDEo1)TK^NGeOi8;@%bx%%DQAobc>M>>xm|^a3w9_qGrj@#TRP1}YjFI5XfV0da z-t~P!xms&S2U$QAE&U?rZgTdo5OkYb!C1I#kN%iA1Sb*2bmLfx?gm*f|@0h`1Gh^0L>`;+W)_hgxnnd9OwuXf#zj z-z$-6BtMEf8lR}}5+sdm$qs^se@gSgg|Y2a9VxG9HfG>yK*xns{Bt$lV-iWKY+3qb zZMjlQbAiOwiTT2wq@#M4obG-6;Gi@`pucFONXN_rXWCJ0@jwr zg}R1Tp%*@fQmRIGQkJ3B^b={dnX-@~9$6eMfdG;)s4-oMhp^N7o7+^dkUN>$FJKz_ zGr5hcmI{zKNmO|CPnk>5LRXv!X_HRhS1i_j#BHk!^Y=4a@zDM8Whq zDK&YYq#!6Z{%*$M>?LvctMpym$C<0u@Myd-5w?%1pxrrcg$tnQ%XwCn%-|!|0Gvf8 zxD4p&-~8ONHYF8Z5k5j(KrI-bEBHw0tMxy8oGK&zc1UXf6LI6)qk)&jh?ZN$^Mf|+ zuI~`k=*K8-!{7jPY=wub^8`IBHBl?}gLh4`p5LqJAKlP4`WO z4u#b@TyBdy@Hco}l~lNhWorxthOar-sH&VaCiSVNsBRJq=TKg@D=*)vE_@P~dp#3c zN8{WiRTOB&!RzVwg!qr~4G47GJ7Lq$5}`8;;MTc#-6FK!gH_9nw zi$@a4i`LX19zVZTSPZ|nxS*65gCG`qu(XY!uT8whVKTPV228IKO+M-Dkl zlXr2q!U~>fj=B}AEI&f859W5GTJM{NA^U?C;i1?ren`GAox+r!?e}=xazgX^R!Cvr z_4QmDKXYq|R7ovEm>AxAJooKpF=DS`cKk1{^GY=C^_1%tnoJ(wAH4kV>G99a&mQu< z%y&pUdmbY7j7I-QNsbp$w1-J320>GiD?6ZTjR}E-{$BSA3ej1QZU*jzQ7D9Lf;!Wg zK8zf_V8neit{5HSB%3VvzUE*&A%+u<@fF-}O;^00?;(It$c1cB2p$`Yu;km)Zz2Q* z!?b}L7=H4OYmley5>(PCG?~IAY~ZcOP%Jsb=TIvvOdW(FiCso6+^$Ab7+LhWiW&KXp##cwhU)a`(+srol1z&mLSFC*J>SO*>eTSqub;`qSL*PzAwgKgq zuV0(UJ$fQ(g4PVs z!|S%UH$Rkg*Q*canySVb%O>2qSa@Q@yH8NiC&7$HLdPQ=tz2a*Wg#j&3V2)qm9_Dv z@~GjfCvxk0Q&QSOW&k89*D@12mCki)dG7YJ{TsKRk0p;Bp{%d`H4SMzhV(Yvs++iA zH01ur=G?iNC_xEF;{Xu~3L&*a2OI7i$}O&VnO}-n&SRaXx_CB_BVw=q4|41-@z7m( z?PAdJ!LHRdFZ6SdQ(zJ54bhy$pKX1gEpV<3{A0?{v zWI_uQk~i5ctrej^kHsyeGrnsbd=#hO2JK?o5zK`g;^sA79g_-kl*-lFUWD0Yhlbi? zDkhwzV##;qR1h#OpUrmqm;#P-aCkT&*k>jyc}_W#AI|DXo)6lT1WhCga>QqyQ$UbI z?&wO}J{le}L=k>bS5Fte!|!p9Si>-M3s4q-}*a#GV9Pu zf9!JFvxhn-xDvFmYZS>ap`7<4`plQz3r6nQyYK+;!u?Dye@%YkJ$dwOks*ie8d-+{ zicjJVo5xe=H6ea$FGD7+IUd6I;ul z;*$lAh(E5WwXN*b@<-@6(H5CDHFb5Bt{sT@RGBGfe>GKXuwx>oGtarW>^1<2&#n~2 zon9Kb@N42O1;JX|q^)%#Ds=0gA7mvL=(ILSJZY0E#4;9f)RX1oJE=G7`V946)gG?$ zyeq3CeT}UX{L@4S2Y)`5!h<2Q*bhDz-!PHGR*nP#Pd#~ar-$+4uS6m@Y0`<*p^&+1 zzxn4cUg|@jM%ppt=dN&^b744b?5&gpIeg**LB=UgmqQl3P3I=fIy3^lRkdcjFN}#5 z8`Le)DeF9~6?H|=&f%i`j(s*aI(Pd&rwk|;tG%A&>Wc(wR7rZhVl>jpRv?3CbsPN> zzWXRY;%tUuiuS3w(Z5DY>QP=h051O=zG0GTcA^$`A}REvVY4^S4xu;hS-CH=biKA% z|CR2oa87IuceuF`B$y$c_#^q4Pp3}jjqI^5o>qttZi9XO%+>gBZx#3;I^lKywij9h zXzd%HZQs52le4D*YQEsF{g7u!?Nj|E;mfm6whW#K7FmYAZQPV5F@3UVHU>?uUe%{v zy}&`+*9te#_!(G!^th|wtCVLI@MNH|ciy1NmU+8cp3#XA9d|~`g$Q`7vjf{l-_3qp zM|!qwYJX~6W$|U%p1`@E$?mJ4+F)aBvA0x9nI6U6Gsc=cZr}9z0mppTZ!VWjY2D-f zY=ZTS9y)gjwroaE3~w&|+TYr1ZyB6e!JNUI%`$!Zt0*pA0oHRJ$jnBU8zr6|oD#ro zBETC$aJ&b<;B2tUFip;_Pg^~-m)GdKEsYQMvh+nMuN2rwN-7`W(&Pp!B_N~o=~NH- zmJ~nOJ6rcs-BN)wPvqJkIirlIONpMUWBJbV zUvQ!qys6T$AjzB{roQOPEe z!Eot)OmI&Y`crJrx#4b$8AW#%h7jzXn&v0Y=T(Tjj5=t8H`2ksG1qma*68LHt|LlE z-9KqO6HK}cji2;XhB@MVa8gJTZL=gKDs+0NNIEb8)(Jc!XU3bZr>sQO_e#~T04k-8 zf?Go7O$+N3`4q!so7qR__Vs~6+yw5e&J5u$NFcRi&f)G@G+|4>SQI{%tTg2n$VZ^Sec(yb7>zRnqL{_IBHg*V2u)s%-7@Ii z8doB^s?c)w2c^%~Xs_*H+JfH8xw*$i1sVX50KM;+CSbtvX21(e=w*i6?wNBrOSCI& zheq*9wbB3@(0#|;DxfIYGP|{df+x`MIrh<}Z36EjAV+Z08_bYhXMuYp8ST5zXI|S1 z;sk;67DSI}L<&nCo5m1{oc`%pv6!6n zmH#zzB0-(7L0X5=H$D>)2sr2DzyH0ytNgAWktKJ0@c{QZ2^}ZA8I#K5rHhy;y{g+p zf_a;;kx;Jy_#ju3G;a%~#~h3B+6f6>V|tp(-i(#Yn*psMYi~FB!TXfcw-iF<#5=`~ zOahp0ktO(Gedv?B@4&KGDjvXjEx}&bU!?o2$DH*cOar!HOY5pqYSc)#^r`@un-}Rj zK2|+4GVT_Ff$h6KJN`7X&K&*&tnvWd_h7?X;s!1_gv?=MZtp%|?gzr}0D@}Dk>`C{ z`<|{HNI3{6%rInmXPAz&+9cQn!43l;pCQO4Z>T-mLSJZ+0lrL45{~A`qro~=eDHOh z>buT>ZPIh$N~@wwGT}`!;P>ro`4g2L()c%4bys?c|1u1(Ysa_E=><5whG5VjeBtX4 zXdJvCkfacc3f^SbZFia~+8Zb`Bf7Ype1S`y>9eHBj|Z}ew-k!z>}5dbX1Ej?L_xx20#Qoy%=bkj$irrxM%K>iJo7*_E8~J)JEHzN6boyyRK_E zfkrO4?yTjNIy7JSviRV`DjMzb(AVhwLxc9yX~p|Ic7$Ap24Zm2MCE&%a21GPJuRz) zZ<*Og+bzy=4lbd;qASQOugG*54;UOT{5xYS-<&rC-|B=JeaGBaC;VWcw-m0voRCWo zus`o%7fhhHtt5X^ll!i7v*e>24AzBeB@HJ0QfGkx?5VKdC?>Fc(j|Pm);V}_2Dg?j zg>TIOk6b+ebkSe$f&2pITcq;UFR6!KjZ6_!pF7X^QWYvFgTZSy3MS3g$#;4@OFYs3 zfzm@^T9lmi8Fy+l=!MQ#P##=L7qY;JNvMx zGok*q0s^_k3dWd@#W__fcN%Kd-UrQ5w6?1^^mt;7+cH<;!wbJ=ADB+m8zc|yhJ_*L z^*+Fw)Qc~v3|z~GcDvWck8@;HyLdQ1)(-fyESx-HsafoJ&G;NhW zR$x3}nRm*U{B0uU+E3a*^gOpb?QHfxG`C7!V02h zt%!JkGfvVp^=z98M^h3zU>ED`#A~r2jeCPq0dSp2%RS!l@6-iUiaMkDsPYLYx6m2s z%uls&4EW~#a8(_Lr>erg&)T21_|TRj7Tt*vNGu}ir~XWtuF2l%ZvVBkw2#g+7eB6+ z?`{o6pQLWk_qF$bpSjGHp``LWNC^)<5^wC1KpjGklT2rOu}WJ9lPSj0-o}JRNuwPf zrVoAKvYkF>S6}fut@xEktrwBHM3Di>N2;cQNbClw@P5bY)XdKtxxHt`M_ZJwJ<9dh=G~5=vcR`jHsE35T$~-xd2gCEv>QP46W~W0NPYt_0(tc=diyVCvW3j z%4c4T8j6%2uuM(tMf}CU1)ByPz8pB>Bb}zmmAbNfEAMms+tX?`m%i3se-TJDee)Ny zkAE`QE+#t@`QSlak773qLu%D_xhJH?ZYf($^Mw|~nq11}6G?0uuaINI?Y9^4K9PMp z$>mNzoi=12=XH+s!lO83cYzN$eskP++J@;45}>Jz?7RQP3%^z=e_PeYt%0U7gT1oI zzxJ96m9<#u@KMC|GX|+Q-dsPK?A9(9@jkIYmE?|jeWv#FbLDBPc$kPje-r{x%rMR0 zOizwA&bl=n4jwnm8izP(0H+ zj4p;8jrW#|8?&mKF>0uq5SxH=EM)OyU5uSYk=&kbF_yI$ZHrj@8G5H9v|IW#WE(h2 zAc(Me)jLp_)?_T@=7GnV)Ov)#Rml%tldXR+Qom*&e*cVkwNm|d1s+;Yt(8p%WWW`> z2ni3rHdpC1EC#p7&J#*K$gg;jSB4|WcsF>@xkjC3rB(=&6suB?d5gC{fjiQ0`ep(5 z4^VGOh3f^Hg2y!iWZxAngarc}_{`Al71{K5;@Xj&e=SH1Uo1jSINzBk2+Xq}sugJyT}fxLpV{-W9mu%>g1O|Ltnps;+>0`gaFT z9Kya0>Rr6(yZmKaua72Yq%a;iE*W0gHQ)7OA51nD2#kgt0dw{KJyQdp_>wnVU9jcwPyC9v-OI%z=C(lG*Q%^3FVF&VoN5rWzLv}E@zwD@GQaK?>}!)>@-_?{Q3P{)4AtK?FNELO3bc?-G_ z*6hXfcePf3-?y!m8<*zLI~0HRkMVIaOU0WG9m2dsGhi}mia4|L{$pdx$Z5e3hQU~A zvwtF5#x)$nqk)%BWYTth8s4c~{0sYI7;daA+{F&#MzV~0zaej$YF--rs^#sr=)>8u zdnD&rZSriUk7#NStse9kiwp$mT5o0L^?j3paoWEgbKa&PT`r1L$?;nUJUtAtsN;qC z2Z2`!fg-7(SfXR?o_yg`9C&YJVcYlZXOm7AHeRDCAyoyQ#=I+AC<$12JCyUMl8f$i z9=~d1%p)J$hti59!5Q?wdKLP8LHyDgpY__n4v55*R#V+0o=Nb}9wA~jm{ZbeNAmNZ zUKQ7J8O!SzP$wx`Cpd>=TWnyi)H)I%FMWC+_~_3JQF$Rquj~363%W1NshK!2AcF9r!m8g4>U3`B3lZH2m&^5!a2&!ZG6d z$EhwcZAABweGD9P_)%cWxLJPVvX$b3fpZQC!P?&oUaNjy6F=J^6za1=+NAD{aj~DkzY&LGKSf7ngGV{l(f4Hh>rtQXmA)o+ zQImL7@tH(Z0CE%-@|=p|a23u}j$GfQu7VZj-H~XE+@p+RKNk>)=4;LFq^00XRh
u0YOpR-KVxh`v+6kl_sB)Z$7wt`8dBz&%Qo>oo2Kwde- zI)n?y?7R9T4@Q%nxE~t6l88VfVSmG7rKgE^boKNl0&09-9s&XNtwJf`IC?`|E^!A&VvGb&2p~#UWnN=J8X|N@<9^%sT|Sp z%BZ;AXuAJi)PZ}*~W_rPxI7H z9{!4C>M1;?k_)NiRkqSG|6zBtVbw7nhSdKc>GFn(@~?`OHDzOdDa+oTikH>@Zk`}S zX#w(HDKA_1GDqL6^slYX>3>|){49PKE^jS@EWSUDVN~zKU!zpx-^_>r-+mU8CbpbB zhpH!Or!nY*K5Q>aRz1K9PR0kA+K%BLyKUX8HWbzwhr|{W9q2>eXw&Nf-Gz5ah2I2L zQ*u4|6&&bzBPL4KS{~cu-(|`8Ya%s;^*d(Wm~etWgTQSvtEwZ_lTD7Y?7YmeAY!A!l*;y*t#x7SyiSJ^pv9C&pZ6qHAS!{80^H2DtM)->0_Mn)pc6`EjQY&bRBY`eemH z3-1pc0>-YM9gz#30O#LkZ~ga7?3fbL#nLB3U0y~f=*!G$=r}M<|F>F!E#Fp?vy%5( z28Hm%=6;BM&iNT!-cjOq43Fz>xTMxbWY#Ta{*Bc3y{|%czrgWJP|8%~diz%Pbvyd( z8__$SB-m~98a_xx7o!PZSX34XXY68o2B#FWB$ z>2Xt|RKD8d+<6k-z;=Ze+hA&6r(&d4xTfIyXz7hcv7gJMN70oBGX4JX zF^tmOWsE7lj*48>h8ZbCxh5&8ghEB;HnAZptvM@cwiP24QiKq4jKnmekZV{=a?UyW zeSZJWAGYW7d7kI}e!XAEN2*}9FVRrf+!lq4BFZC*%GUW!8ojc11TIno>Q)#wgy2;z zxJg8bEEbQw3*wXE;VdqneF}H;pd{Jg8$`3n4S)!^4co6nZ(ddvcagGq+0g;y53LC% zisiqj8QNq^3Ns#jXYsegMp5GXuy^#|kYaXD`vaDwm=r_87&Fp6qkUIMz+l_EZSs{s zgJ@C5>h-(4(%2=6nR;d5Ey7VM|209@Vp}-~ZF!N{{<3E+-ZA##x332K?w$y-$-Dz- zh8qy!+ZSd|ZY%wvg&KV%gRtgM?8T1_MV_rfr?yAEr_bEHt9tc&coB*vIx~RyvrW8H zD0XT7jV2B=apw0<_yjM5jcM9;M#sE5G(UJ_DgwDcoi&o%3gbNg2THykv6wci9D;TM zGzHtHPvhD$|9B7)$rl=aWco?p>J_YR(s@-d=KTrLIrHT<)f8Lp-$oQZdtd|aR@RK_ z-FsO1gZI%#(Hk;L{V8kys4U_N_3|627&Z~3qDT*!x^Vl_UD;W!z)~5Ih(TzaNfmG* z&d4EzI*oei{2Z~>r$`uU6$>0eGr6kc%!Q2izjuE;*WslpDsyvbZZ-`EZJp=>4dS~w<^wM1;@xhH7Pr!_txq(v5C04_(vhbu4_S@i>CmP_Sf<&Tv$bL=01?a^;(7kN&rQX0cqTDj`3;cH4g8Xoq%8j+A&0Y!? zaJ;9P#i8E_*6v(?w5zClj|O;pl77)>c8-mXd08}0DQY{s(<|z~rvqD~4(Y;!bxWro zIP7{F;>3}eO2QhhV|7~24&COQOEGjF1kG)a{oi{8<*{~Oo@|h_xioV5d)QYD6f%j_ z9hE-BeNtCq`{NnVStls zxqBp3)rBN24;qdNYeXSR;O(g67s=CpFIDomiXsEYm!uY+GnazVP@>41W z$(x)3wgpIL&AsY#;{&JfB5CVa0WW2s2JxiE?;bJt{vBd87RLeZZp3H0vBF*U+S&Hv zMgEmLsMaRShGn)82yU@ifKO(B^(eydVZR6q2sN3ar7xrNuMASgaesB)Z z8F|{wzxAFhefhHJg=EZD0Py`bWq}9!S;X4xWE5mei@dTuhv4-y5b{zkNp?OVn5mhM zXi;?xW93x?@LRE%A)}3S4Ga3_%nVNFQ;pBw$LGA#=FU^&&)4hL1;byzXprwjWo_>5 zllF@%%c8&Bii-`O$VbR8z#_liQ-(<_!TtV$%Gqm6ef>$d3?3Hz+^T@u=|p_A=UE7c zx3hIVmDCZhPt_V#p~L7NW}&Qa_CD2&FHoc-z`_eT?CKoMVE=?QY!cAJs{FGz!PFMpm}O_oU%N z-{uNWuG??7w|8_0N5dm9I;Q~Q;y_cO%sqc(kPfIAv9M?^Ef_=-;?JVGIzH|>m3iR& z?{d34BAm04^cR<_x0OV1>GvrSC;yW`{_0{8ZRo6lO5D_6?Htxxng*^jU&7@lPc3X{ zYWc7ECf-%2<=#pE&AmqwDF3y?mxLB8;Dwder1`gVynQP};%}ZM$?wrvv^6F|e+DLv zUs>>O+vrn|0%)mmNNyESCFi2M|AFq7?8B^`eVeYOa@y+6&!hvf;IDCEYl!0gmReuD z{2kK3s4qo@*2;jVQQ3`&Lg3mt7wPb*PXnX7>p?R;SPw8jdu@ zR^OMO7TQ;z6A99mt={#eNCR*p1JL|c#w{#;syjmlw%Kb42Lf5P_74dUeK^Rxd3g{u z`QBc@-#%bx_%PL}7yYkHYrgeNt2W+m{-eTM+shT({b zbm57oU4Gl0j``*}Uu-R@2zJe~ML+c)Xy?60$EsfKdk^Zkg7Nb1yEOl*Af$D!rcDt7 zShvmsAXvqJ(23PeMducCO8&_QkP-1B7UGn2Jdq9f_J7IpSGg7ht}Du*P1tx?YFwB*Qj)d&=*8$T6_PU}i*cMINGHZ65}c3pWv=s=IrFO=vE z{?r~SA@Ua*`~Uq{*wAvnFynTlY-o!C&v!110#J3rI=&-z=y!iJt6^l5R-vdR)EZ1|02dX;nQizf03UwZ&pUND zscG*LYl?ljcYy4@D|^iql=j)IB1g+_9jW{e^s%9PzsY=|C1xT_8v@#*;(=j4uFibh z7f<&+cVys=JTji47OKV!BppdhXv750XBczRd2?W#fYw@3C{&lk!PCk-~S^LGtp zwk_g{!>l0(H{)$}*OHG+U%tFUH2w-3XR_ftw4|&!u=XITvZHtQz9?wD+c=in3+OSD z&Nq+yiQ8>|ql+hKerBE8+~g2Hy?nR$*`PQCYL=70npxfoTx#@sXS8QRfAIO^-q`{l zqlZ2sZIZ~D;k3@8DEkHVn{~NfSKg6hZsX~fyZ}*8>Y#J-?w6_b!QKqvr4M79TXUD! zffA|kEmZm1JCfxuIkN9)R<2hM;^3w-Z^HD4&DK)|StYN7uMK17_`PI&)_^H*?ZJ`R zh94QpY-fvQj4Pliv;0=tu%iS(Mf8q1p^V4?Ud}WWY9}c>dRm##E_Vo5U8AFRI&YNI z;7xq=jbLI2g}kz&fzbt2iP8LXjq2@z8|k+3 z-Dvx5fu`_)e$~}i6nm}aZsh6=bvu5zwryzp@?4~l4CFPte&T~<@!Pe9lDxkF7~C?| zv0&i*@H`eUle|(bP>Tm((ev|T0ac$0o80^DU7WzjVyS5p?aSSP3gb59N8enaR#G<; z(MunaJBRfR+Pv4EYG^$$R%?t5T2by?Rb=LN7uRmV9cFWggJqcA*N3F;3XNP{@ z#LhqIIJVK)j*5_t05Th+E)jusMX(0y0};t`eldh9RXdHr$*?8_QP6eR zQlTZ(shncb&;w zcBgQ(A*^YYg>kx*+Jo4UGKCp(Ob6Xuz9GRPHaIj$J$GHa){T-jk}yV%2}gN~Wk7eG zGixxKkxQ4;2JPpUYgqTP0dL5(@wNY#%pJ7DKH=5fJx-@47tJCO1M@SU`QxWA9hp6M zk0oY9rW2pimZ#Rv?Z|lG>Aj{w*8;ZHv5olC1BX1;Q+sFEVaB)Y^PHNQZO&E~gQb*L z8kc8&nc+`iWJ}w2@aO#~503tX)F4P)we?>I+&?NcavrO+tns%C{E;(xKQU0jQQ`if zaG=K@%qnkGy=@iVhGbiatZko;1qMEb|6dK*S{7bme?8gGNpgJ^O5zTc31+%Xh1fa` znKw48mM&eit?u}SB5Ug3qE9nd_EL(GWB#k&vT-#9|G%EDvxJUUwfw+SB5mLc=kY_x0}ZV`tOcB%WuQGns@wv3t(N>SEs9b z$AbzXLPu>2@AygI26SAPt)_hKs`U%3@{P0wgiAXC!m3d^@j+S!{vEGk~AI@7964!Mk1}Vcb>l(EGo!J;TR(w_jf&ero;(I=FIV zz0JNea*n!%!FcN_Oc>->Aj$`+X*r_YOmx`j0O~iPzm6__-#3_XCqP4wOtOuhYht}O zacOAYSsA`q#<=2^QD>-A#>7NbUyN%Iy(2uh%Wi4K9B0=gU6k~HG1q(Z6)iW+xc6_H z&^SupgBHIOP^okA^2$mZQsv})TO?WPu;jzHb}fFqdG0cI9oISke#~LVZ~Pw~{))FV z8tWBb5nKNWu=&wM)kPGieD8lRALMQ69-_+6qFc|5jwCEVTpJGr`lpA60t%kkv}R%0 z>v)(EnLcY+(g>to>NG5bpdtT2r8)mVyBx|oU)f517PdE|xL}&_Yf(sDZM-B_rjKO}*1+aU(_`}DaCHE`cW0#Ni(gd#%&8jJ`wJx{qsbiYH zWFSGJ-i|I!ap`!mM1r;hNiDQ!0W*44Cbm3vRPM0cgO%NWnN|lW(HnE>bmx91@Hmo+ zC9L#stoTBuZy@LXf%GwKzGvEeGbYyk%QgF*Q{K9)8bO!lEu$u{YX^G8V*DvTX4r}s zBE0)PXlmU$))$%AzmjSX5|Z)5yw#*0z__o7wNWZ{q&~{C_|`N(vgH*M^}fwg@*woj=EAb@ zrSsYux0u)eK*4uQry9Lu;90%%;Drr${xF?bZZE_W#2gM@_CHWF5ZK4s`6Q8|Kk%fH8T`t5=#@&~Kdq z^u;6BHPQ>-G=h7eVHYskHT0H05hdvp7!{|r1M59^P^LB9nu505D85~s5&If0x^R-X z$CTvWXyKQOZ!8en&IAAr{+*yRXwUt2q%e?`(F}kr+4H zrC68nxt;39eMey8m8H=5OTer1=i4{w|LjlLN1$}bOey5YJ2&jxtP5AQ!p`POl;dC7 zn>j1mY3}goWNVHduB~FgK(QWZhtS(K=e{}>T*Kz>gTH9+K>un&2?VWZw|WC)hhWal zr!CW{&nKIPwk*v0sMm7HRNBfGg=C_`1_skb$ea!Dp1n>+tw&*~BJYjWRy8C;42)`@ zcsxMSGh%Bk3?{}*=a9G%NUnE>);pO~(7wO7sad(f_Lid#R^Y6GRH&UMWS+T`B!Ss~ z48;JyH?l=FHZ3!OJViz62vZOVPyd|lP3F*^w2FnpV|$EVt%hPALSXADkV;*Edv2MX zBj%lI1(IHdF=u+>!~MWn8yxVkzfOaL*xqi!wrQPj|HF54X`Y56C`2*{l8AW-L$?Kr z@&GB0cr;9NB&T_f8d)$YYA@uEe&N7DfHP_V2x_uz`uBV5;TYahQ3z_*N;2-mQN%31 zSCQL?Zxkp70cUNt`0YWXS=(3{)=2hp8&+}n)(;E%HBcm|;4eC$qhJ?XWBW8HzXUFC zy)p5)N;5a|i?pD~Tbbw(=$b?oS$AV23os8fR7sNEF-$g+#kDmK#d5N}DcPXgzPs82 zCEGPo%M*E2^)==VXn@Ebm|Ao`2yfpwoh{eILe4mXl)S)6v^Fw1L}s7_0(rr%)Bs8Q zkU*9fD@f!}jHef^B2*Rl%pQ&9kT6c!w--hpBl-O#IVTst#6Wx&DFDdCSuPTxL^Hqw zaOGYI+7QW*`@V3JN-tixHgS84gmeTaRS>e%*q(Q2pplOCfH8cb5(#FF5d%j8H@YIMGchS+xD@E#9 z$j7kM%TsqwQK&?^=c7j4XGyW6Xk>obS`Uz6jMcy?KfMD}iwj_Di1a@WWc#2u-4X`z zX@r8k(lHnJ%&?G*gsenKQ~4;r_!M$x80}-lkSu2>;+oAOd93%24gE7o!s(i=4wB_* zR1GzY+4pCL(r!;tCzKR748CD|8t(qC@xU9;Mm>c*mu`oI=K!o96%q8Q3 zU>ZT~za*LZRWLa8`;2vyYB`%jf*Y}ru!0VtN>r5V4zZq{br?O0U}`9&qfpO2UQVL7 zT+J>GA*5P~1Y`G+ltD8Y2|X%EHe@9GA1F$_x(gIFD<~wLQWEpmatYakGWA}JBS_#W>I z9ZP64U$BGt!Ypvo#!Jgg7P@#(ucBo0w_BzWXzVQU#$sE~5#@J{tL>%6e}B9-n0~*c zVxw^5=Yv|3ub`C>9sENK3S1*GZEuMavC%e4HxE-(XJ{Cuw(iZlSTh{f|)y zPY`Z6EFGezYgr^vyi)>4Y}XWOG=hf)NoV~N()bQWL%CKaYds<~Bx@WCA;*WyB?~ri zqK4+v>5@_%>Pd(P1|epPfp*w= zE4P9(I0<)S+L8QJ>kKO`BgisSzZ->c00nmA(;7KxwX;|xOua7()s5zZYTwwROpCzv zN1yRIkCBrCi(Zkq&94KdcXY~Ibpeh`iIr4a^akD<)Po-+VJ)tbq=Vopr^dokaea9m z+Uc#o&2ld;-<~42;F7vA8HIagnENPCn5Iz-2`V^iRI!ehn7wG`@;rTqh=nNXSqf6f z|7?qCOD`*P@II=8G|jU@f9So-atIg;8(@NVNTGx;lw0+>14U`vTq`w}2IokqgfZsf zeiGCWw9HuLr-IzbL;)Y7MP9Hyl8#~^I!i#H2)5}kC0Yn!np@DEIq78YP~r}6ZJ8TO z4)Fp5NPOVQ5bQN8(=s*zwaL8~$6MVtG3I!>QF!#IEHf>khnU@)m^rN|p(JRC9W2zt>32#n+Ono{s1RK+S& zj%&IBGNw_MLq4&Rc12fv527lRUz&{K3R!>6LUw_;i-uVFc$41l}k&`*RKb9J& z*Yl~hnU?={x8|P17=QZp%q(XU!=teW+xQRc5eDdS4iktZQlM>vd(=>29#eaw7m#EoyxyKG65%`pK)&Ls@uEXe2vAz;i5wD`pdJIX zHm-JIS+o#chP1wt-9k#~*|79II}^yzA~k}CYlk;9?nLOIEtV`u)(RTlK>}?nv46{G ze|R^vak?S((!lYW8-y-nPcZ@s&MqdIJylO-H}b`R_Yl>H-_j$e6H7^XD_$LuPI6!&=GJ|wo{e4r-7%PVZ9 zk?U4!^2_PaeZl#Ib&G8i+n@Q<0H7>7^J^-WpW7ysTp`16a)#Zz~gPTxX7s#u5F617~8 zgjVKPy^akJdUW37ZF%#0M)0~3+pRJ-KH}GI(#`|;Ub!+g^Bq(Nhiq7M;L$VBw?Aan zn5)uQbcdxanKKPfFIJwrc{O_E81pDK&ZuXAfmBt_YBTf5UAskWwGQmbGH@32=3>Te zm2{*=tJd%D9xQhH`47~-{DnvDkwoh;!QS%C@OgZ0$e6b@+(T|eZ>3d}Fp(Ad=s@)q ze7ek15q`#M7ZRrEOQo1}pMd07UD9%^E>lOluS)oT-|K2+P-+-s9ig3L9my)flD zK~WGWyvtnkO-Et6QwWILPkIxsLkSp47^sAEVcHq*D9h5v3YOXef|2|3hBUP}VOuc_ zkgT2*Pt7u0HmsitViDWYAus@4$&`WRgDq14DC>ct?5*z>0QyytUmC!62?RY2wFxz{ z4UOdGhRo0^`lsG;ND5$h6w~XkX;O+>pp9%krT&-5_u)8}gH`+uxrA8 zE-sJ+6=C(~Wh7cp=Rn}$a36{@xPFgFXxMMv%hXBrSWXb@nhdH5wxS3k;Ih^^U=oVS zR$m6)0hj7wLEQCTE4CY(X<*F|v&c%luHhr4W`?68+yn)@q8T7elANj6NaZM0Mt5od z1=hqobJ$mz3FbVZ7H?<&@lQHs^FC|V&YdJcGJmE+j+sw9&g5J;!b%91f@w$WwqGH;&uve)?=2pu2UBPXEnF^FX#3I0F%aWLcDuV z^nq=wMftF&DNX1#^>4q=`~yX#wJ!z`>pQ1IKm2TAmyX(Tvff?=(Y|Z>&VxMM#(q8C zJaSG{*oG_Mf9qEp^6`1; z+tB9HOZ#*W!%t2xnTrofX{lFEn~{y0UthG5e|VyL|H~p(Yu{cPvWtNJ`Q^-`In%#N z?r}9}(rTGOeI%d_{gbF-Yk;Sj00g<$Ax2SIzi#H(pED?m8P`**L(5&&xqPJ?rGeP4 z$A?;Mw7sQ;P4S+BwMh9$a20qXK5igIKX>5x`=9AuPmrwmCkO{_<%1nF4j%)#_R^qf zy~lZVli((ev|n+7J=t-uH|y`U9J|=2_K4?E6djDlxTgFyPwal--ot42^VL){C-kp% z@P<;kx6l*2oB+O6>d4ePSzCi+(*6*b27bfiGMQ4%K85$nNyZshVk09jPdT~PANJFf zhZ6I|rmE*`f7ahKl{brGUGi-CCCd{DqsI24%@C)0Q>-DyZ06C-x|Io%Ds?O18CJ6t z{p%$-k7H;N_A)*HA>b}9)m}!ToWj?nl6G{ zv-I~RAMDO{X~x8}BfC#wxSZjCprOM6m^G3djq{iq===0hJtBO%w`VLIeIYz%Dq{?) z<;Zj|Poi!PFwXwepS|tjdT68d^D6`=f1CXljJW*XVltjj{PcQXfrI7)B{{-=5@gDu zKHzke!>4+pLXyV=wsmF3in5DwE8D*2mdd=oOH)VU8aJpP4e&3n&)i!_!T z${CPr;_MK;V^#V`cLtySRnteFdjt5F^(%e4(v+*yD2 zuTHssXPS}ySSAvPT;4y6ud&mRjn*Jf=b!aGGko{uTH9D%f@j^yheu&EVgDtQujw_P zRL4({5waJu$EHGm+O2z3t-1fYbtP8JD1T^h{Pce6QDh@;*MS}G5!(%B`-%A1?j_v zkBXkAlF5@H*Zai+<%5pz_(<|ec83RDYB|kmX?yy(Hh=$n6?etBS=SbX>L^2GR=+JS z$9Df!3QQ=@to>|1?;_x_eyW~v!F*)c-m=hkovY_T2@;0QO1?ZMu1O&aJ=-_-<|<8i38 z#x$k@#}?Ik2;@UjO@xj(su5CgM*KBSrV)z?R&AW*E=(lRZxFs#$ZZ9vS@ZZ-pmyc4 zIPqNq@W^ADZqu;6@P&v`(pCUtV1;>f7dq>it5E3BpQFHd~70l=jzcDyQR4`>aP*R$GXz~9>sAf@nND;& zDFkqwN|Oec0F;og4XzOyanh3p=uDk>NyU;*Fy&`5NXN!D%r=Ao&3;y&407p<(CRI$ zkeA7vuupQ}17k@Vu!NH9HmyiC8^ zpS|%76Y&ouYa(bb&T`HC1IXn|T;Es^rK4EZw*6{n;}w$=GIEi7&&!4qtx={)zpW%{pO4!3;$R6vF)OVhp!3XE?}E?X|&-rXH4$sbbs(!~{{ z30_y6*DEVc*v}G|llf?iUzZ_#@1?t5zx6vvez>9Qt=L{!fSlX0>nsu8|?oPx!Lk!`zmgnt^!vl! z|7bdpdDk)GV9uupEIb&-f*dX`Sc~Vmau_-*)SWWpMA@P+) z%sU5$Bver#4xH#&eQ{s27=qJMl(^N4ml8_RV6=pp3*7+4D+ia=o5PgBpHiJ%5Lu^wq9GYtrG@*4X={+F_8LqaTUP2>;Z3x12YArMy4(knOhK1A*ye%vouX z!`3*wDpL^LpSkz9VKe{)s}bV#@-d#Lz#>i(7&DSr>&m;E(=z74ivUu&LHGt(${lXM z;3XNaxi94C50Vt%LgR!n!*TRipv7v}{pdGVVT^LHcnV;6z$?3E8{8*-oPDvN$M$bn z(wvi8@sVQ9g!LX#b@MTqYXqux555~!sMKz;yi#zf?z1y!ItPjp+u$5f43YdT*`c@% z!F+zAVd3phTNbelv+uB=eN#a}Q0*Ii1q-z07EOaVJt<9!Ga*FtV_aZ??2j&xcG%$K zfVS9Nk@m&{Ek9}U##NFc%?#1f0|F$lI61zZ6G3k7u0&W_4-{9P6VPc3y;N7D!id) zICV#m9*D55oz5#>F8Br2lVSr9CBL80HQ`4*_qLZo?ep^S-?9%=mA0F=?);( zcgcLdEn0VOh^euMO#Rvmhv%M3l<^8L3g+=oL9buJ2TttTG0FH+x-yj#dK4-F_<+jo zeS_IQUFXwK{q}=&l;;<}6PN0odV3d36aI5gHU9Fdb_&<^fHhd?73>oop#@;V6^-!(U{G-3dm&_&?3x~Gw#tw?PW49kpabvp z!c~qrE53~G4%L+n(h3R0mIm4^qPmbIyFY>7{f+~5GENkGYom9FDynA&O-z?ir7q{! zz<%jMGNtl$G+abQ!)As2^BDv4%(;#N3-#DsGZ0xRJD+_~PnInaSj zNauhS7gc)eI47Cjxv^}T*#9dr2#1RJiE&SjIAS96?jCs8?H~hXMDc;OGfe|QQ&-O` zUY~|vMO4dd^3pnW2H)vhbn0uqzM}Hiqh7V%hHNxi3>^b@LOvd2i*2gc( z&)!#>+laKOZ7%@mod1sA?Dg>K;nVJ)kLG^+*~#+_|ivhp)qD^o{$@pY?3M3F7&kBsrJWtXh0aN;d=UVi`uk&pzM5S9lPlis#^b z1DY+)D^eCbOA}kL6KfJ%*}y3z091}^Qe)C%S4p-LNOp;#f;0*w;3u7|(o)BwDS9Vw zjYbVI_qMlr=!}q*(oh?maceOsHJss19m6*j_&)p%=_liE-*5a-J_f6=;PzFE1E_R1E%R5z;=Loh~O3vss|3$}|w z;P{eh0aiwDJw_`P>qOdgU&^t6tpQPLwP!V<@h(n(Rv^mD(;sexx0m`JAGGi| zNQWA~qVq4<8b_ni`~O?O%sf~5u~T@KZ#9>Mjjs@C0-KVKg&-9fvL>Wm5RKTL`Xhpk z9#E(~X3|6IHE<*)CtN+L*6Lyi<7W;1#&jR3RkPDvCIp)Gb{CN7EdRyU2=kBbWKD$YL}=C;D`B%9f1>O#&Sab1bXd z>4yFeNOq;}FT z)NFtDyw$9uFB@;QLk5N}7Ge2v9@CKd8s%LY3cY2JdR-VKRkCSj{cCp&!@Dl3fQ6jI zaUoh9sHA3L0Em0@W{H7BC?*g5jM*`4$B@VZJlP(I`Koon={|u_EC6Ye_UQb7Cc|Y+ zJf#-1uDQ}k-Y!P=yplssfoAZYXfP8bZ4EQcBg|uc9gHZ|g&Ez(hQvJ4JydQPIxvhj z{WL8;0H%>KP-Y7H1CV~baI(s>wx=m!wgGBv3!q*O2dh;xI9W6!`zF*RFwV7~u{CO% z!D`X^>Sz!inIo!t|J8N7FI5Vy(!Q_S$E}2pzFyG-&F?wcDpa=`SnK;Mn6tBC7xi9Ku3#8qjx%hhg%08A&6OCf zaxOW-G=GP)x1Jqh@=Rp8<8a_cm>pOYtrtegUtq{>n}Yl(GF-bxg@jbRdR}n>C}wPx zA!bDYwzqL81c)x0jGE3~G=|3AF$ICsF`tss3EnCu-R55_{E@r?0QQ@B9Ep_3jg1uQ z>gXUSdZdLEaK;+PkX5KBVU!-w-o*Aa*lX3)r9QS@5w#KP9y>G?Wcl@P>9pLjyt9CA z>37^6?fc@L%3}XO4&C+r`m@?cI-dN+>Z{0YmJb*ZbSEPON_RKf%F1MO|I4@bBTg-z z`B6Kd%&RgFjcdKZCs+{Ts^t|Q-I#pi_=@VAz_#RRt(r0;o)7QqT~;r_M?Oo}g9qIT z!lA8x6Eg%aD$T3IUzuJNnR-aZ??oDH+V8L|@Lecz!E6Zo+&r5@zgo1bJ&)tlQon0r zO0KBLj(EPaKOJXkY;gJf-I4AIdmlfejDtaMfb1e={*tKC@{4g!rM|hVg6D|ptH96q zd~%ZYh9bvMvqSX$!UfYSH+<_JoUN>T`9&`D!ckG|*0SQ3NJ-B3oQHR;jJjm=RYKqX zC~N=k$hTG?9k5Tg?md9Q7-u3dRDyA?>H(U6kRM+CAP`{$w#AB zO@}YPadKW{Oe!QL&E%dw1r3c0v)Un|6KGoC?F(R$-R9|#8SDuQo+-&GXU2X23{&5( zD9A{#;scb7BFd;IrdwB=ysAb}@!s2b(FtT);46kxw{v5UpQMVgu7OSg4Yi?&0Fve4 ze3R#Rm8)KF3=nvXrG$E6S^Z==N|?a3#~zHdImn$ZR zh8p#gWTj;rT^h5<;euHQlZ@|MW?vJXEqXxt)YX;3_aR}qQQ*|T&E`^cG3o1rQKlmF z?1oRO4=PWCzUFio=aTHF7Jr}Zyp;NTsbj{g^r2iDOQldzx>O2MCK)5_ipZ0xKlSnG zR=Caiy>%H0Gbic9?xb#OxQnrj7ES~!k(EfGx;|{f^6fKv8;S@AMgQ&q^q0c}V6H52 zeDA#!la+`jIPLZIs+zjQZ#K^RTS}(LXwU307awI4(9|CUB=x_Wl z`-mif9PldXdYrs(J!AMT^-5R-_@Kjvg7X=%bZG3tV8WdpA$BY)N4?dtjSW|JusCGK z3IbFHP9U(Lkm7{NL!VxZX4Okt_i;=1j!h>%v$bZwDbP=97Y35@0nU&zI?RgIz&$tk z@kRJ#rMuOVSNEG2EGq)NS@A}xM8cS0I_)XvwvJCZoE8|ZNyRz+9=}`=*1_VQWGO59 zzkvzz%Un-^@FPz%YTw7{>d=drhn$((B4j~#Ai+<7aR|nOL6Jq_TvVY5e@0NyE#qlT z2J$o?yH>ofrS#h$>(cmKD6=ms(!=}y)21f2qW{oHF4SX4v5u>}6;RzM<3!6Y5H)Jm zwx4qVYHo%^MiMp54x|Za)ttNSr=O(X&y2rVKtnRbHL0-h^M)U3&aX zJ%Y4X20t}W%a4~4~oNzgl0Q&uP#TF-8FcmwCX3U?9pBP?03S9ckV$S^@Twf0h< zO~<-7@08^C9{+yptKi{RzU{f16?lpYg-_RIyni|E0D)x zwg`AGe92Bm%`gyDy*lF%@}1#7m{Cs4(-koi>M-G4HFR-^IUe`}(qgj*Y$Zn6{F>Ax z#!0BG0XX!ZQ!HD0L_?fU<>Kla@^n7edHbyv1d7_8>;C3)jzSPQLF(+Uv-W-VT6AIb zOHO)5o3V583UFJHW6vGkpQy~sU4;2(wTze~E_7=KrXE+O-jLn{o^Qi$y8p3bx}HE4 z!CtKI(04croQLiP757zVs{aPh_WPe0d~W@aRsD;o@*W!E#xlFe0&idKOTL;Xvr!EhrDvYDW7eSsfie~V|zI1(BEj8O0_%6`OlY4 z!P~3#h6(}7NT#YsnPT!=J6_r~7l%~Y9jc)lTY99(VbENwu4TO*_{fCSdMx77cBLVl zA!?rHDLFZ|9iC9r7I+?%z_#cCt7;@`_`cWUYH*9j9W~UQFEO{aVB!eWbp$VJJ8X&9e`LA}% z$ZCgC4^>^bWNRj}kgxenD?U6=HH`^66yK0g_y*N&V#TA#j63qP64qTr%kTq$-&gW;66(Rh18cn= z+0yM~1;o7K79lpi^4mgxjiX-ELTTZvfq+9<-63_{-qG(H9%rHHQ4hWG<}D$ z;RiL38?*yvGv|9>KO8w(-3d;75oO4F!|Si9sXJ6MVqDq%;)!N{EegS5I*XP%bQE{a zRf5!F!#p}1Zyu_Fp-vN}<5#zje<-^b{%R;N$aCkD=a2{1a(P9hl>3Q+t?i@e&nh$vela*hdvd2OWIG%^3V?PG& z$XrL`Tf=@tnw@~lb;kuj()f;GwSOQ5C)Pz2!&^l91jYi-D%HC`pvIm$N%hyhElR5g zj+AIE?;eQu9T;5gqY%Nfy1k1!MuD1mrQL_=EbP7??Ak#Im>f0}^%B`Q5RWXmAKrKH z?=dg?m7Je%GH07$f10bxORt~F_& zu=u)d8pM!*N6zq_ES8eCO+(G66NY<5oPl$wlPJqCei29VN~wWJlMs&qah~PFVsh29 z((~@~=ts|D^oQL#ZdyF3X}B9KP?Hq$TXky7O+rup^e_u)eS>wPKM376=+%h{s=V(w z5>W(I^!w8tmKIzYX01}Oqn}W4{)_KqHBK@k)M}NjwkbDv{@&s7+~EsHJ4kRSIe7th1bfS_!qHMZl;VFJAG@nvPU6>j!w$zRKW|+ zz)%4p4e&~;3@QJ4@uv`*0UP==4_0AxOYDIOyRX+k1j|Y(rssSX!mgFeO`e1fs7Z!k zd5tf>emdFyh;DpT?p^AXFiO9PGy6J7?RHhztT|y!dSRv;vk=>r}e-Rz_Tl_TQK(&MZEBV0465qlm@O$2IRZ4W%`MIQ%Gzl{|?T6ke=ji5| z$7adPVD0Do2lqX3cJDv99E(5v)u&}#PU76h#8T^h!&X@a$3CR&AdC$l3izRGDS*)A z!vxU$x!vpwQp3pbI_55xLat5E%lbfkckR{Q(4-1 zB35=t9H8Nk1S}CA1~e}m+5O+mgQt|WuK0E0N7E%_N(1njKOv?UzbwnlGvWBba?=LI zfQ{$R&yPHNT*z9tw@m8WGC6O9gdp-90^h!7K^vSZMo5B{R*`$i89}~|n#}kq5S)Zh zNR^J}A!2FuFT^Mew|l5(AperREGK$0c!(($Hc$f6M)Jxyk9D*J1zvs`83N@ZJb5}n zT1Q%{5jLIeoyDHktBq9`%9LH=JN+`swE_P{&pcW9Sa8DveJ}ujxI^v`#GH7S9E)EY zaER`TVcj!uD&uNZE@@uBE*)|y^qt^FLc4|UJXebp!BlPk{CeFNZ-Md|9r_SdyYE?5 zm5K2oxU}T!UrAGUucA;W9fb9|ht9Y%F3#Dl{)E>a*<$X4I>RxVU;t!~ z;tOA1Bg(CxgJxEmYWxnPf2Px)75Xy%$I*F*Q~kex{Kz;+R*0N~qReDF2ggX+d#{j@ zB;z=?tVE^bSP?o7LN?iZr5qzpAxAa`$FavT!{>LtzyDnqj<@Uee%<%;`FQZ0Euo|A zVl|8)azUhQg9CjW!GIbNb+#r9aLp$dG|CRk<@N38J$q0Ci-0}DLb1T+LV*R4f0W(> zS^QzqlNgwBv7PxeXHLZiSF3zBF2KpF@rNZK6^>aBvwSZ;S-q7SV)Nli_qMXxB%7G%UpDDmH4Ca24A+2cU2ty*)MIU z>yrxvktiaVl0Z3iXk!=<73nPYP5J~I<_2pVsr;f62*833AHm_Yg}!&blQ^R05HYw@ zIUBb;*DA=R1&Hz0=r-@Vrb!^F!4xqTJFtGo9{H zp#WPyY3ot9`uAjAl`!)G6%c4CD_Lu7>SL;GvKnqf{c6r2d;rIjuZxAx=gW;Hw*XzDWXGoJPtli;fX3PHpQq<37vo(7LdIr`-qu&U`_T;gR(5beY$f6sSg1(@M@CA=z z!l?;$v-q!AN^2kwNhY0{BXW9kt0)QCw`(?icbSG>4K=%Y6jSdOc7LRdwVa;&7+2G! zfs#JBLRNE|V^QOPH_BSF8%9J_7MOI^nNa-e7jNmvBPrI>fqTdZ(MsF{&%b@5EW$is zB@=4nDj;Pt7CY9$uP3{|yr-qi_W@8K0U&>VrQWX=mT-kAUAPc3Z7$?`wSL(dbA$8G zGGfFF^}EoVP-#-`)7`_vGh&@W*@smPajTf#M^W;FcXso&!fqO({iDvvZlI)5WNy)| zME70~fzj8*RO8WC@ToYVz>$bGXGuCJfn=k4-%=I)VQWS+pC6-q;T4tZD9-zXwZ4<5 z%jO-E;CwQSp7K@J#=4)y#CtwpWK1-?i=JxJk{%;jwFZz*E$`iX?`ai>(tT&#rPr(@ z2qKJeBKcbr-J9DNmMD>Rt}x~>GZ1+RdB#t&(EU{Qy!?xLT0_J4uh$RcbaOCS;HYnf zb$?z|cYB4VYH>rrT48RM6Us5>NIsU1P^b5D11ho=mD{;$e?Na*O+t!18Hb-x$`%l) z*NqayotAZ57j2Mvr>|+kYPRd>;B_l2u|cuhbwQ5AM#bsPje17RNSw&`8(4Gc5Mx~ZICPb!nbJ} z%(4WlOLyA}Y%&j%c_VK4+-a;KLSb;BV>tb1aOGuf=w*=AIyH54TRO(eKgvIwSnK+Cpa2je75c zyMS5HFCmVXM_UMTI{P9G!bktV!J;vx40@fzkT1mo+|}ng_CekE<-Bp z)#x|QyvMD%jwjsH$})UEjr+I%k2_|Sz|eO-l{M&Z)+G7nr4r_kxn<{LS-qC7C(Rl> z&MoWVEI5vTP!BIRuafU(x$XH)uIH3T9lKXfwWz}Cs;qOFWdOoJ1m;*9?=c@po-R3|>v$%+l2iRhsyMWfEn4y*d+`=$(bwS_a+ zMq~!nPt{~(PppLsM3i;rRL|OtG6SK+Y#G^sjWuy*HLkV9iBpYjdYG3B)J*4lN^PrD zzdIDTSK7RZy>uXd>CgY2{z2wz53pHoTbU`Ffrg1MLe}7c7_CWJ*%c&!4nPUKO^>1w z_yf7-?wzE{D_5kH%%soPgpxfeX-CDoLHqHwTtCx4!_B+eEDVhU_lhg6h?)Dg_1~pkCX@J)Pi1j zhVa=8bQ8(l$7jw~r9v(%cPXrlv4uA;?Orm@6>0c%R>(vRESxv^-7Xazq>N;!;Fn=R z6u~do2zpc9xlId70a_jotma;z3Eb%s`yK2$ZL3j`g=M6Y`!T!#m-ZOh5=(B}(F8)A-?8K=+fIw-pGGY3w4Fl+-KmZFh)0 zP2!3AkS~95%>39M|8Gs?KWRPi@6}dZtmNkB@F8708^Qxcs#norsNU*dfmpqu_k=`! zoq+h=h96x3Uv7bbb2ZbRYAqnYf+pw+UGI78p(=$xmc7z$xmX_l_D*O0yO-kw;Q`#t z%Ddqd^7Ubu=>ha6=uTXU2!%y zDEiXklkVjk3_&e1Ohpw`-_n$r-#O0YAA!H&nyjt@Puhp+I(h(a4E}8`!89sIqNAks z(ac)n@A*JY`$N35mg>By={U-PW^CL$5BiwI!X$Rh+*WJh`Vs1C0I426MuAF;?w`I< ziK;$9e8oZX*b$@6tD`%nF>f5ly9IWaoB1+(XmSt6Z(7yw(Fn4JyjFHTubnRG;ep_w zq|*S(s>S*us+R?$hChc+1^}rmLCel8dds7P9~7r^>u53dIF=d(S)+sJ;zo1$-!`nd zJZ=9~5acNB3%T<~Gj2eIpQtU-Rel8>o?}gOF@M>>(@%21o!^~ct1a59oGowie6kSb zG&WJcrShoIF<;?$x2X_g(tRU_d8BtjC+wAYaUqcKVwqBWlTJ^k8 zRo1x%z(ri>WZ(nXmhu*!GyDxj#g2KW_N|0k9RugR1c&8O#4q&OZzOY=iIgyyO0G;3 z5c(x$U|Up!LWc%-^Ud2)t;>XRQ$SqJX%+c zm^Adi+^`RTkTryjUGcjui9)Y%6TEeP&C2amDnjWFnJ=9$rDVezKToo{=j+3f`j~#; z2nQoI>uP6rmuY^=ILoU4HfUC<%asZ0BX0&bUhwxX3@tH(BK{NZ+vwKk?!?pwd!jHO0VVpaJx!4R0v z?d&j2*4ZeNtg9~wM2Sa{-ju_q?dDaVMpv}8DvJxb{TB?7a|@(m+JCwpS9{_PkCHm_z$3Yf_H9Di~Rwu zj&!;|aGk5gWU;5eCl3Q7Q9+4v{HA6mtZMxQJpTc1(hE+ zHuD;R!5_IFOp>`T(-mK&nS;3s!V_#VzCx1y8 z24T#MHQ4>yL_wKqQHcWaX}^kF?m^PQ4^^Ls%Y$*kR(kZ6#ZI`-&wm@ReGW)tP6fHK zMKjB&@rNBvD}QLMPjGV{T;~QIauTx1dVDviPzN=QsSq%YtTo&I188ul#hpo) zi{7{JVJ)muqE4C5HlaKkWk4bS2qlYXbl~di?=)zp$a*@Oo0`8sd+JbXN*?aYwN6T2 z@VIr9Ab41&)c85uC`*3&%SGllB9BnaN#K|C*<{$&ZbUXv7#-mi({vKQuXok1star?Tr+JHG7%iM!G*9S27?8_ihiXa=XfBRZU%#Kk7(Yb^guH z5$;SrOBf?XQ$kmn*ao(sU|wr06>B4*{Au>8!HxQArv zIju#OALu+Hm9o=nlAcw`@wc_y2P`a5Z&;smmdb9jn zO=WgXVb-h$CHZKB>rj&v=Dj%lv*Y)Vqv@}|vdvDnd80Icp%1B>VQ);WU&7S>o@;sp zi@nGWb)4I9iSBe+pcB5Rs5UCntx|ed>3b1ntt2q!gg=}-yoH}CS#PcUlIC`7UHf*) z5jJ@yvi*EJg3fD1#r}%}Ziz}E@0*u%OM?l$={id@UryNGXoJ4iKSpW))P&iTxtID~ zSp%cw;a|~_9%jo2DCwk1o3AGsone|~e_@@3B-tn2YDOW)xJ8R}GkJc2er^X>>J6-c zg}Elj-q&=_@go6OzUISW=MCXs2WsKn$0nNl_GE8Z2=W$cK9L;FOIqAbE z(!P7Jn$*z_X+2a09WDMjqm20RZEUe3Rlqg6Ys}Nn`)g;VE;heAUjV<7&yD;6f0@*0 zra5&Xgj}O}V$(m1m82jlp@6mTl>bMJ?l}T==wbAZH{fUSipvc_{-l+@$mXTSRy`u@ zQ;=Z7Xz0h|*N-Oo3J-8&8{`Go9FDl#j~+Tu+$#a?DHJS2J4*b9!mx!I-3#(+GMWW3 z6-}kWD$-|cml_MjsvPr>bf6{xzRUt1HAuqL`5-CM^RE! zT4sN3**+p!3%HNB4$p$7?TEDDs6(?eYN5M2QU zYhI-#l3`bz*tU@ks4Rpu2$*&(5FJ+KuiFRjCZU5^b;~zw)l)p-rH=k?F7!^_fjC$U z5#?#H^oW;Z@oP}YAt-oYIiUZjPpbC@m5r}}pC-iQe^$gKqZ5HG-ae!yrz41z11Vw*9?Tr|nss(Pk+L%NOg}X;QKui+7}z@8N*f2byWa{CPwyEa zY@86PHFJ%Mbl$$Qsg(pi{+>2Z`Em%q0)4f+@z-$A{Y|co4+wny^-`vt?QE`HfQ+K7sL@?03i520(9DXd<<%qK?eRnQtq0^0lW#)ywtJ zR8D9&O(C!}C}Y$4bI-xo+bY{Me%I&6FTr61G%Hm>*-WOy-4sm*H&alkvW6>`&?Afi zI-Gx(xNrpXJ`&s7P7@_@HR5j^%uQE+WQa%x4zcFE8}T!eO{&(c2P^;63}~Ey8wtt` zk#fJ{>1kzGczSYamir=jx77D+Fk%H8i&#F?WA zXiAhEtL|@GI1X;QqYItQZc{NYid}ZJU-zQ}NaVJ?j9@uAKCgVVL;*2r&{Y;YOm?a> zTl<5~*rrL@1zhD(KEQ037RD}V(}s80Ji_?iH0E_$FAK`wlm=iy-H-% zP)x6q5kGtF{`7g5U?-=;1d753JH325T$S%tqQy565O}0=Y3VCm+~98=MvEK~e#2E4 z$Znq+om+f*hTg4Fdn;EHmkKlDeBs=P7wjU8J7520;oq5k$&a6Nl5_e`uD*_*orhI9G2-P}*>|#joj(fw@{QZB^<6%|j}D$Rp45%EOzRVk zvSmP&-xF|OvbkHb6;D<8U2SJU3w@`P&$ZK)_WaEJuUo24YYTHzg6XF9@-dG z8E|J@awXLhocrQA{lN4Iao2Rx{B`OdimKksuv{=zk^K>3wMVX`K!PVTRe4wY>&Dn_ zWywp=>fY-*_xTK)O_)`kB2PhVxavIllp0*;{M{*u16g9@MWQCR_yipG?;*WBk@syst*$s#zf@3T~uYd`(yD2E95x)BU| zSRtmF;wUl23C+odNh<5xFg(jcDY%aOU^K>G!7Nw2PizaFF$PX^+Wj-F`>K9?gMly9 z#8{Xwcd*v@J$YX4bDi_PO-jt!YN?k0Uj;=G&7hA90RkXqV^G3-Kauu>oeR;7k12CK ztKWjZKm=mX%bx5n1PH-#c8P-=VMGB0CbJkZKz(gq?w1yoNkwlo0!P&JVWKC^WkwSz z3ubO|0f3kq`C+kMVSD!LGb}X>Seo}#vY~JYqG;zu@0;ug-|vU-X8!#MT$!Q5g8rdcdiZ2ioO~`;`u5wf*o~4^ZV9 zqpi&U6|h zLlcf%Nbz%-`Y|PUg#G~d|36ZoA9Rxe5KB2kyRp72>Yz)Qh#*Es<&dL2ov*%I8-jaD zfevh?O(ZJd-*uOPB+|v)cOSiqsG$P;N_{HYM?JyEYmeS22mqekBhsu zE>Ph*y)c0@k3WY6NST)MJnpwVpE}tlgcACrW0)5R_rYx*UacJpbN_ z71kMPo4nxBWqw}v{p%@QhQ z^iBW6>Sx;zh?GxXGG?7U-Sg4Se; zSzvj&1XmS-Z33773AiwtHmlR!DxBp-Qf?*YK{m!f{ z&%kjp7d8K2mJq*710$dzMk|cI`!ZdRs6JNZ!xi|hlIZxdU+T?1X?nE&&k65a!0}dg zFz;KMz%nzhk`|Nih6U6@RDDqw7RB>WSZO$VEVN(wEnm90VSFfG@rz2rHH|M4`5sTr zIIaz!3#5@pv`@wnGgA-!QCgQApI2O=TSz}`m7s;N#DA4H^!8L65J731?@(86@uI2f zn?Z}ZBQnq*iVuGUwB>R*ifGq}%!w(KHirhmm^?x{@HZfI#QhDqq{{xjgAURg)7SqP4!maoC$e{ z+jcGVzQtJ;e{F=~&KlJvq?0M^?~raRB4MLaPW*H$JG{+{vzh8;eNf8C@88_C{ZZYlI!KYk43P6NR4J)c}dGl2YZwC*xq_Qf*(~w61kNFszo0WNA$0`U}!f)&I zNOl9^kNiK9R=2w| zKbB{J8LOjK@bby6Rn?XDBBO7P0+XFGR^6>L48rb)@U;jW0~?Ipi|lL-SKnsa#|+I3 z-#ry_oey@TyrMG~$Cy~@Q9i^o(02*6jSJX{=`wNt7PO*+Gh? z&e(OG(a#Nus)1BF>3c10mpp{&i}hv}gEv>3RHPuw6r%BYS3>LOih32#fq};F``Nbb z^#V08b;^zB@I0~uvK~mVd_><)HCk?~rI6LcHD|=IsYaP%GfUCt87(P|8(9a5vDG#& zsdr;nbbD0i$eFx#=cKDHdB6Ms%xa9%^D5!LSfFdL5|v#gGr;V$%D>+!6#9jpQE>^O z(qlbrHK$Os^Ku=cF~At=0`pT2{357xW=_uy9iS`mwEKgqLksrWB&)qtl*-(@s}MPlxr>O zw5NOZ^C0?)hI#+c6-1ILw#(NsOE0IrLgagRd>AS${384k%6+AZOHgnHLgRryfVGge zuqtc~=)tnKff+=f12ZscWg5A>459+|_oRoaT+c1WS65%Yi8bCy{A+14xg4#1x-lL! zFdqk>j0+ZD&;sseNEk7zlPF?7r;b=#yHBBKi8-GY)Gr8xJXj2MYUEx&77V@HNaLdy z-F>b5iU}NR)I1`6-t3fJ6HqHzwe4#Qp3)X8Vod30l0`WWRw@HZ z-QSiq^O`e!OZ#;epjON;TH)~grsnkgx}d0kfg2k9+T#^spog@x_4wM1{@on8myMQ< z@$iFSsNgP6wfG{%!$d!d^~61|DP8}=fomfC-xq5BYQa6u_}ee56#wSfgy|K!FSCu@ z)wrwg=EF?{5!3J`6hJ}i$^%_rjWb4j%f0o3Hl&N;ev1zg^P_Mpqnk6l~BaJVCZs-?VZX$TbW`i1B596)z@z1 zf`91NShEi-XiHw){_vX52>lE2f?K5U`6a-LT_^vI1}5*m=E)%e9J(1YZ31gNeLWz6 z@-rSu&@u*V!*fd)t{=ErSxWs5!)l-KYO)?-y0U)Hk&c>3w`Y5al+V|ksi38Q*)Pmv zqlf!vlHqv0KXX>({&$GNvHB~Wg#|L`sJjo25zUw)yo>A1XZ&_b>!9;s0O`--)4@{R zDUKMPXHV@e7hQ%B$0p%Pz9p;8%h|_IyQ=S>04odAqmO#5>$dpE8dPm6@kC23hb)n%GCQ>&)ezdEv;nLOJ&}~oAx|omYNjoYA#KDSSe&t>PSMXrY|aA{rBxCY?{Zy zjrP4n5*m@JbTC5ezJ9|nu&nP`@gco5e>PHUfu4jlqvkIUlArcswLJ;eXl}LgXmyt= zOoO`oYsPVtkO!mf1GPiVRr=7MPqcZkM*dNf^NGHk!=Y*q5ySg-;^TFpffQPb5XP)< zROe^Djx*g16`FDk9LTr7ymJ&P@q3v?s7zlYn#cGdV1X#0pl!m5GJ=ln`o{mcefg&& zu4#9-Y6b>JD^ zrCbciyiNYn7Yog2);>}cjUu^NIMlO7DlvU-Mfu`xubI1I27IL3nG0teHt?w@Om4L1 zuga6wLjRW?%5FE~53oU8b?xFz+pa>&N?YcaB-pbzeHjS7{Ldl<1`?K&cp{+8R#J~+gXsR-kCK@$wXU#b#mheL}WyRq!aA@ zZ8>H#>Wnl=)4OjIrB_~J2fHXxmvnD>y0*8Az@08tQL0zK1Wk;+FxXGz?>mey1@RNc}ZzLUeh$W6{-zl8v^A$f1kG7(1bGuN=E%IJZyxXu8R2$Q` zb!l{H^0MBk9g9c*^WZGye_i>5-04#N7b%vKGL%mZT!jilg?|xg;I?|H>H3w-CoUa1 zcMLZW+M4z{afgZ znl$hMU>#Pf$u?Gb4gXchJUsj+z>2p;tw>-cgtDYFnGXkFlyF12Nu+Fm(q8?=BauFq zB1XtU3`xhrRhYuKa29q!JQ8QAQmr=uf(s5PAZc5BiTs+Rh%URW*87K5_w_8C-iE!M zq;r8WtG)HtJ|#WQ!_E>&mTHOr0UonSotU7BfHZZQy<`}Lgmr$z0Y@FuUOhH`q8o!I zs00=Yd=;qSTZ$71M<3|W3V8??8y7K3L8&>e$V4bVjp>Fu^~y0Zs5buy%}v_AN&K#0 z)uzJ+VBTc?j{XmDTYL;45GY8l7TbdhVznX4b^;6#Y`+@zunaYP%82)r@y=&crw}h( z@zX`uhOXrKBa%p?xlI7Ydoi&(K{Ze&4eCxMgrhBaqhDK1!FpdUmuMiyzzy?nXL?#l z9VdLNEogx9Z3?_6o$ZB7fD<_hAfXuzXG)mPu_Z@?eeQC>xhx6o4OZTJEE7#nL0eN( z9PBrH@qb>fec2Lle?g7Oy{xVbc(UR--9mh7vRX7edFaIan75Ms_d)J#45mFMY0c}w z`nIyNu1^*J3sXs=uLdRa^uxc4rK)|FEpOzeDE-x~jq?pP?9KPjtpzn3o-(jqQ!XV0 z=O2MDa9=AIDk{$S^xJbN;r#H8Pt}~yN9Ul@-v%xH{5iD+f#;W??6IcWgb9@g?J)x& zej=u$^q2knXEbnuse=3wW8)1ye_bH}gs4X39I~qWH0C<}ZBbD7@y2bF{=x5uG;Xoz zeoi_ptx3X5+^mu+#;s#GDVBkKqN7=ZT zaORS=*bzqPZOw{bYx-*+Z{|;hxaK1=kno69m?a_8vNBwUH`@%h`Kpzb-z1;N1q=bZf8+u73eigf4t-LGz z?&j1fIlL~epREQ99HSHfF6GynxON}gcXWKGgs+<2eKZ-@Vkbt|LfP#egXAJb@Q2eW zbm{E31|XJ;9ApXO;zrq6?DLKKa^5zZlcYC=` zhP<${HezGvWK5p-pSReL?QI(guWqbaIF+?RQK2d8`-DHUiGKn=fp7ktnKv?19ZJed z$^-ug_}JmEyQggE^(Jv^Mdv?2ya7=q%=O&s=IP4B{mA)J0MKSprBHVSh{xlr#~^dy z2XI#pXZ*tj=P%Zn6Y9K*)3KnWxxfpjRL~zg>%YFI;JY8o@8yh(swgBk?1z3u+4Y+M%jMPI)*z_v-h8ujs$O z_lAFss?dM^-WU9P*Se`m-r53x7{z*OXO+u7-4pcYXSzepRgBiTw|IX)53E);VJfZ8 zKTEcQqEuOvc68YAR>*nLbd~jK%yv}J+wacGw7`A7SPVl|?Y+QTEnYVD8@XGaHv&=& zC`6EkmZYn=C!1nxIx4WD%8pcVqwU*BHQr^{@e8F3+Go9s)ABXX+|7mdkwd{0pu8>4 zYIZ!FIT|2s8u<3phm7cIBLywt_;z`zI+hEs!cg?g^sG3eXGgr&br;4T=`{M-OvOQ1i zf%ZLq(+L5;ff*{zB(UU0^)1p?7S#M4>DonwWK7J>&UhY2?GI!&_K_Xi;TXgj<2qJ4 zr5<@Wc!u^vVAYa}q4M1)3EKqIJ(*$Wvc1X3P34sOufi%GHMr$#VkZUPp9;hp*3Tmu z=v`yS1g=wt`^#`Uv(|*wuvC(fUE$W+NUv=(*O~lsohtRiHM*Vwfd$0I*5MkxidyWZ zD!!^=sL^cFEvJRa7~mYO1zn?1jf>p91Why8f=lOgJi=}PbczaXZbuA znU14zW@6On>5KgE6CJxXn!6Tu$vGInyzD1xEaXRNIgjySIhr9OYIe>d+#`#+C`i!} zrR$8n8!aV2YZq>%kR2d?Z{vzV;x~2aKS{<$Fql_H^DbL^lh^y%2m4ExTC=M<1y5if zJ!xXb_DNG6jP@a`8KOM8&)$jScvK6z2o}{(gWLBNUp!9uyQzB*yBMd6Y4_kY4>~b; zF1`)tXTI&$+5SjyK;6Q7fk~R0dRLxAEfkBNYKfwKfb$M6ky_ezA&rEbVcJ()Ul~QU zcY_0dUFY@VT*TSve$Ie?o+fyKxeLg|K>)^8Q= z_b(ZEL|Tj5owaEj^)_mL*%ijD^pgCW zZgbHn*iELN{(p-?b3Bsu_oFijR|j?h<->H)n{wqmyH|PpZJEL!9^uZ2Hoja8%W!?%_;Th|ohe$PEB<)Rb^BSYzOc_3g|-RbQ!H7Vd#f$oU@5zeDxOeK=Wc{UNq!#FR6$Py4~& zfj%XEr!jn>#$tq|+Gayr>~aU{!Os}f-{`&-0WzW3sGTUUTIhGQtHtzLTSB8pEZdnr6ZaQX78ItrwV9P{gvPwxULt0w8(ep8m$-30U8vw^7PkJT{(rI8o%$c zeSkh`%6W>P2JF&>qpsu}OowVg1#J~`(>e98&kOSZbdFT6v+K3)szpjf!K$Kyj=3L4 zr}bb}m;$Lw&M1!FjbOGX={b?^E;8CsfwK!8U>A4K&&%lq!{1mBiBV3d4M(~I845Et zg2xW5`N@=X57>qC{!V*;Y*cPIPHYc~UvZANpw~%~kQz$XhGJ==&Q9>m%$Dg?#FZ(X z^RD7X7>={Z*6XiKZ?VIJ$!VVK$N9+tOoc?G8{60y!)Fd&d;+zW2ldWR%-@8}|HL{3 zP((*SpUkCZ(9Iyb9MrIrYtT{O#N{ntH~<0=XVv3szt5O(nc zRrK}ojLVAFl66Wd%U2?~lzfjxyRI!`Nj}SGH`4yYlrtD5B?F%y`&y1yFbrN|kz;j~ zWpmB#jI&W3TM-^>a8tNBr2hTS<36w4M1EJ~ zsMGkF9I2iR-+y)*suz&BitU6yOHMxFL zUw;tX5~q6|{mS28_7DtXAQfJM>c>?K;i8Q?+xl))1LA_5f{{;Pz;=1#DXu{Pff3u zY9yS}>|yiry4LA$dSx5yz$j^Ed(REU^D-+(udpcCTeVpwGLU1(-QT@4_Gv?7^HPZ5 z$C?9HMW;%S>iBwDBn3T;UX~3!XK6qvPO&6Bs0lCbc%VBA%EXSdGn_H~&d+7V1~VCZ z`Q3iXxFz8x0`7-yQO2-(q-C`8)W=n4B2d-(#_|0F<;iZ8d?Gy~01(C)#pn-QF?=M^ zd_?{s3IW|0{1RGW_y&DUGPHm~p7eu7XF$Y>oNg6rLjhLmj2Svu%kV7-xbAc`sbdt4 zUExtn(#zvEuHlBsS{y2q$KfCa$#LbXyzGW#DR#uxq7adV{BUc`-Vi- zH!loYK<&cy%%rmIu2Fw%&y?4rXJ_d30ocGGok~ThTB%U(U~96{F5*GObE$W6rg2~? zwF`^a%l_@;jqD7w1HtCTgl*AV7-=CNh1#@UmV@*1+%fX|VR45iFBa=t-nmq0?Bi6z z&Jd)X$6_l5BlLGEFawARg&FaFZRzN$R{(&Wj%8Ie-1*X_3`^VJB|8ve$4YO*B~^|q z9l(*SdWhWTo-iuqMB!!uwwY|t4g5UkElL;?=82@@=@#14akVtkg-MU1IhgC0=z-kR zD1|`nnW4rO7Dzc15ny zb?>?vbC{N2&;mx=e4g{KTg-U&GP(JHkZ5>>TtE_|r8+3BRkgm>o?lW>x(}VusK=~# zp5;^ZK#LX*g*ljCALudDN&mPNuSEeMKuIw=!$@boh*I?_2;>YsN+pZZ9^=@RlEo1X ziNDa77CHaxN4Vu!5Gq5B6ZLxux3^gnYto@RO?;i$Nqk8fN*yLXaw#Z)+8^1|T=+6E zC5r~_M}Z>cO(xbdww^xF?i`IN58Eb?v?%PBuvc;V4o&7Q)Ur{Z} z()m}2!sPz6@@Zhp=xL1ImlC?aF+HZ1<5>$}m>GN!#o|-{o0X}X?5Azor|mmZCbQz1 zW$~u|_2;uJRo;o}fb{l;dZb((;kfWWKv`ep3#x;N%>yLch&E@~;7_~qj9W#?t6HvU zc$G9f`e3f6{tuVkS8e!LY2>T$+~*{^S>%ilDdv!Jk)1e+-*K-SUl=Ow8}VJT3uE)9 z-fn~?@oa1vrhG)F|BpzBKZ{bzl9`Ql*CC-XeV>GEXrrg-v{*<;K4ok9B&)M^IZhho zEy%)w>1RM*Da0{LaH8-<-7b`8i%c?@o8`@elFu%}elh;k#(`LG;AsL>bK`E89B}(F z@Qj29VY@h%y8+%j^JB1x{{VtI9QVbfl#vw3-(lIcpOr2>2}LVywF5VP{w&Ttz&aI$ z@xN|3oT#s;dm0j{eJvWX9-;RA<_dRm8+;!Tt?|F~E^(V;L8?~S&~K@{l|HVsH_%Xn z<)%DU7g~yirxmT$>)5o!{K1RQe|IiDs@Ls0FzLWg!IHD{aKKOt*_2XJuO9YmI>z4| z$@3|ubuoYIJ)gpjbwsD(b4eDFLpKM7J%yS-t$aUFJv!GdhtUDKVGzpCy<4QzG zdJFm|)6E1?qz^m5xeJu8oM+zzO-Ef+s4nU7sDknr4jLtuLI!=abkA76{ucOsZZHII zT~coNd3`2wuYE*@J0)?(FRHKgQVFBGW7_{-BHZnv`-qf{x)1`bt{!>-?^{ zFR3q{gBcedKewxB>wF^hnpH`RDM}@K0_jln)S#l_(LG~>aGrqUe-;PWqXx;bW+4S; zC4f`}9pLOHNw_&-YPLA*+k^KlIjvNdhv`Vq8)k#kW`G~W-Cjwrw zGcK84;8_z#ct>~XX(Cmr&ei~{DHW6x#xnkpMIO3NfnC;Jv$&5r}w%o zvxd?TQL}42FGPvLX{0l=g;W598Xa>I@%+%EIW?hHs$Eko)|Yi-0K&5|wol0lY>=z9 zexZm>JDvY!8#qCSfF#v=;Z-omxt>F2Sz|yZ;5z-wkCf#Ly=(s-BV^Z#V zSSqy)mEe6!goax!>6C;CTJnaejc(fm;T8jeC8uvFt5;#6t^0B4l#`VFR~kf)%v-g( z#R~+E34uW3Xv^PU_g}8&j`*`Udy2(x2PctmjQg_`$plvsA3X&{@lu` zlFU!+$qu}FgJ+7HR%n-5Hti&w)jjw7U9b3tQHka8JLd5Lw{9Z|Z5W0l&UX=rr8e%B z387eHw%e&|F|ie{|NhckKDOqdiO;~WafHLtsEk0#-28%ABx`T z=xlbHbExAGNFi@h?kF=*e<5j7$b|Kb@5RbIG&V6RH8 z9g9!2g;@z13o9t&EGJc+%jKPFQObVCu%{h zBU-95Wqt$EREurog)>x6U*MZ&=Q2bO82@~03r8ccMvSkgE~ zi7h;Oo$S&`-87<_(u*1Ro+Bj_nG=ali$yc=UXfvxoLFF2 zLL^n2CynhqDb4gSDMYn!JA{$3nmr_(Ltt2jkPGv|18+fIZ6N>R^cRSlq)fa;)OP2swf#Div4xI$ zLx{mVh~?XjcJCj7r;UUqZJaFc>oR6{5{!O8Ht*bU+1@Ao{6I&a&sgR!qYl$qa6_FR zG*%n(w8V|UXS8kzxPf-HpnXx*W;W(v%iQQf&^`mtroU=2AczL#&n;luq0h`fWYW?& zbFCKKCD5?j>Atu(JDkI}Nc@V+{AP*@6Ec7Z_=g>yd#U|sb^kE~e>^#TUBv*wt)?sq z#X$wvw3N*QJ|)$yr`k9D6ykF!8KBiUeRoU{+~}s}?93}MK>X22b}t0&&i$2N(Lc7l z=``xm*cG9xdkFdT*i!#$c!Si>4uc$xHDg$q2c*xqc)%|CMV6*mDKJhb5}1ZL;ifQt znr>!eK6#eg!#eus%G81u0ItjD1>mT&!~UJN-OZG#=T|hi;5;TaN=GUe#(c!_ls|f1 z(!_~gh<8oovnk!rbusDg=!;+NpNTZDqHbXjcnJt;tJ17**t;?nVhRwANh}PU-GhOFfsU@uH*Va zTI)$17TO~Wxr}Ci^^T<;t}p zqR2Jsii~7cF0N~oRhbz{$Vf7BU3-rxx~?tdx|F>~fUu8QJ^$JHP+$ zsLL+FTezr2ad$m5&)dajCz4eSVyC0_6w-LBy(fqAWbi?wr)#A1dmX1R}S?4>PUe zp`5Z3ms49o7g+`65ZWQNX6N;Lx3unkp!Jx)n|MeQtqs!|zAyR?Ra$MPn|I74T3 zc2t6h@nxthnKgLvrn^dyax}SL9TGms9{xmi$&(PMEMrBU3vcg4|B~?ZKXZEKTRi^c zjp1N_pjZz#Q%g-LIuhGH{2wSe@cs~c21A@Ihp)%9V@Ku#*|W%#V3+vKhYc^X3LiiR zbOm!mY~*|=)pnq4p{l>vtl!CE>!~BfBks4n9Oma!8tCWv;`DmF#PM z9p-Oo_>pVjJ+0LEUW^;mN$_`ZhOw_+N1L=n|Kww#Tfm|wp`yR*k%TPuyM9QjXoz)I zridX%aVBy4Q!5q~-;2`)aE!d0@ROxLkUNPHX=#)O-BtJ*l+8vPHr`Ied2Q%XVT8<^ zGf7Y4dt)t*!{hzupkF90AaFFE1MbMa7}XJCWUd`s66Sc`t=Q3KkK(?4f?O zUZ7AyO|_=Q-D9kiJL``2!$6})%($)(S1PczT&#?eiOF~-o1uokXMdfB>d#B7i^cD9 zWuM!Mh$Q*39)upPR)|H8Bp)mQfquu5K$*^V%S2BepOP-j;u+s<3<9u7hMvm6im|=` z6>GbU3)iG$ZV?eo@m5VC^uXcWf1NG1g3sx6hzK^jBpyV*avHGzsD6_zCy_+Q5D>_+ z`cA~_^i^7kZA01z^o##MTZ2q|2&Q@HsakPlO|spqrR|%7Cerw9jKB8t7QiWd+kv_W z4R4#dplnxFljaim@$Zxd*5eJ;9ip!&Vmq=l{U2x=*g@^h5lXbv+~lWPAJe{MxiOIG z2*z*~Y<=!Mx^HRHR8?H%$xG0i^N|!dxBx~O$x3>r$+2&6cx0w+N^}e{w8$*%MG=ig zk#X7yQL3(<5C)t_@aZziBhLUX@DvyOZhfmQ4F*$g*rDyTX20whncZ5y))0?&ALp>n z$==&3dnvY^&E+7lidPDa5-o6dcXPb%)BV;1Rsu-D%1)w82IkFT%Es~!dK6hymk|bs zyJdfV=&BaZM(!!*H$2$B!%3@31*SGdEJNp}_uVl7@Cce!+1<|VkY6p!lkFj@6I6OOZcb2AzjVk3=gYDdT^qsHiTKfepQT`0A-t?qHpwSPak9E6+_ zIg9vO_GtKr{OFheKoKtbm|=JlrGDDwO6Xqs2Son9jjSI_2O}(jc}J|w!^42L?SoM_ zodu?d_|U0NZ|!xEdcH-Ab>LVuGRi{!;@@-rW!rJ~7WGZhvaZ;_BR&ocPtZQ6cg z3IFFbl$`Zy3*pW5!xMaGfk9Rb4i*||=5O8qvfsYRZTHa0g-6)dYdIYI=d9_<#`__* z!+@1vqD`c?{G1Cu{~f zuo?2MubjV1wnAy(63lBs@Q*^{jux#~b=34ZJ(5`+sC-N(2^G}qk>BAR`^L7_#tZDGc>Bz(^Yn%_c zDZWEVYUHSSv3NgiefGsWHVH0>df1&!e~@=6!k|-EDxf&SX#x#(emU>P%)1cyuk|Le zu*`XZ5E^aR;(G~y537nkxfi+9Qf&0q=+ji=nXks;v{9htpLy+@VgD{Qhe~nDe5jxm-w#PvL0c97!Y1ipCd7*H2nLtj2BWBDTq+g{>3M7!&Opw2}qB1Xa&`@V0~2 zuVSfqh$ay_qSa{Yx}IfLm-zGM&sm-87Hk{5d~0|(uZS1*)op=YxTMCaI=%9&nxTA@ zGP;H)u#Kle5WzkPG;%ttWbir!CWf=!B?Z{yF!34Qcf>C}e!{(Q$AK*jPQ{=G@HpGV z7I>Z%pIUGk0T3le=m&;GQo<+r+=tga5$9MuER@BC=Ru!Q*qrzZ{f_tsi@_)r`W8I9 z{sRZ-87^3HCg|6trH_$wQuaP{GvTC=blNVA&qVlUUFx%vBsH6qfZZMH1m2Tf;*9}U zK}L7)U7z573IQ38P-0JShY`AD!qpYK=WS`_i0$R%Zs8evbB}{*?x36n74!z##`<7o z;?*_1B+tKmZzVCT<11Kwp7`pQdCMdSy?3efbjvPFiC>G#Gl(5r5u3~FfXu|4}(giR`FSqcq*!Pen z5XN^6Anza&hN|FWhjwyW2C!_{DseR5pIOJ}k{Q*12Gp^0NSHYdg>Gkl221mNu!RBU zIVXWL!imoO%p1A5J;p*JFC( zzIrqnvZx}E1K*kV3=ry0jNrw+Z)SajU&v3pJGq)h_pMy*cuGqVzSG4)U%&eNmswt* zd~vk+kp9hQ0#HH8p$+$wL@!pk)9Kh2U#o3=mQ4^PNFSEfp460Kbv`ypcHzvHF_@{R zG)Cdzq1G))uy0?b8w{@v{SR~*P8M^Q zO!5bmI;l@PhYr7s*E8Lfkmyo6DdoO+lxzXae!d%8&@!{_eHYIBi}&{U7K=DyXrCMAnm=pRY7bmCZk5&&YZ7y723bCzoVO z-^f4;;KEeOr-jlA>Ax?yCVJbfxYT>dqsvG3*BT#P?z~hdDNxgW73c9eW;_r*U=LZI z$bZF+$k_k>A81=ye9r!vrIPAYh-K1&eY-(!X>z}0pSPlf&&il|li=E9mQBI!8aL6l zxz4pbd&WZSqAn&q(MC}u!P7t=s74m+ZsjL9?|ZhWd$D)_qeVbK?1wE!|0Z~{W}ELC zyf=7I(>JAH+pm%Yjl>t=iO95oq2fckPa8-4#6A#UECoG>Xr|DPmt|fnP66WL+c5qsfH4D*oG+L8frq?zct^23YDi}-eo zKGiH;R~=>6ego_JnWSCm*^Y4{EFaL3`R*$G$};HgEN|8uCq=z3?%aEK_TU%TfdHKm zWJko?JRh_Bvbi54`Yq#F-rPpo`>H05AFFiMB)D4=#vj5N1BXK(&~2hYxpE*2X++_D zu-&AVUM^MDs#ixCP-@4IuITbe59vObKMrl-c9_|jsM{T0{S|Jg#k4w-%jUCfb@}ay zx@wje5Zt2UAk56%P0J=PL~cCm?H2H5R5l3EtvPi30a)G!%U}LQmZOIf@C4}b(2QH_ zsdH2eYUoEw9NW>Y*kW>fwis1KbF!Isr6ZAxq{KF?acc zAzmjO=g0@2%Sr6wP4o1AYoDx7u3TVw3R8j3VQ4DbI=meJflQSl!`r*rjFmG^6@>+y zsVbYn_aX63p;xRfQo!6T?jSMzOF)KpG!%}RF)emwj-3uJ?UmxmWE*N=h1-2$=>n%4`gga2-!eQ z`oWp8Kdh%yN57uWJ~}do6@1@#XBjRGvIPYZcv-UMT*~YeTj%mljL#Z`4elvpl?G&x zN-tk$KtmXDj9Q>mXEq-+Zr((jRU<-9_Hb~U&9)p71p@5>|8!$6c`|PvF(ieDfen)t zpr!y0Cvv}uB=R>3{)j_<(%g2cpz1iK9CY>9khwBy*|>bR)usIY{z()$2Af?(f2j_h zWSe(V&6<7o8spXVV_-f}O>W|asmQL;{@aCMEzUV9`Y$@vPW&V%?ATc;m~ zySb8I7f5o7E!Q%ynv?tlTSD=3QPvt^IWPH^#&t0EDK+;gj0Eco}|J0;)^)V8pGhIdy1- zCC9n#XY;$i?b*~=%6R7hx+Vb7ebGiDg+5;D`M&_@m{9zF;f3jQGQVqkzZoaNaU2y5 z0Spy_HN(B4?X3*+oWxqg$ScnVzxt>?Oy7DE)0W(Y%$l`S+}dQar30Rc{vFX&Yj3B9 zDW=li#=5&IPzNdyv|X~eVScU}Vyy5IB&^ApK`d33C3yX$mB8~>p%jd0p&y@<fpW93!qSHC4EP@$Om%i&cRoW@OGMq@vGid3P zZXrN?LOEU)KPt+{pp5h}$$yPwhv@ARl6nPf1?9)}_d4V7KrO$nn@qBqzlssskVs<|(7`Bgq~npe23 z%48os2Dr9R`Y$A*l{)3>hEM$H{Es`lpn!JwpT%%nTTWA*(vtnkV7!#;kfa~>e9>zU zA2}JvKdh10MgbQxFVUTF5_&=W=DHo__VdISHnM8%Ucf25S;PqFlYTuF*Zi#2<0!lkt+aEB zHj4)QkHT|RNnh{0Zy?yR%O|e9YF_KE{)(T!aXNIVWjz>~db6MWyTjGqzP?hA8k<+F zDC8#CPkVcet53d{C7;Vz?*@x4karoi<+c(*-WhNi$iQEm-dWg{6T7o zRcYFh6+G4d1m&$CB z`!;XU8;1cSq_2St1Izh*Io^RwDHkR$l7(nPZzUV=)}1Kkuu4t@UXpHt=e{z&kLdi= z_=RDHy6~4Ba2_Kb^fipSmgc-+^4i`0XsTxFbI#Cy%w2^;Z{)}D&7Dlq2ghk0hD5@4 z9I;Z!#KKbHGX3xJ*LP0K*G_&jIHq6~t?PNgyaGTN*wA}-iL;2zV{e6$<{=BuE=;!|AG_9;mErsu)6c;x#vQQPy}} zU%oqtkt*~7wzJoH0qxuH_?x>E#r`}evMJo;x?JcR!HFtjo#ysU^XR|NHgv`WWm@R! z$~jDSR#)Vcs~b|~qHI}{h%dp=ZA?gz{jPwEvdQ56ow>QG{AfTEXl~Qc5xM{2^9C8h zaLT^3`efy~agvKB^8BJWoQ;>0EE1tcD_5tD3MX!ZjlkRPeUNUq7A(Z--@p+kC9{69 zq#v!CA^b>xOzogouYPOn0;BvP8SIe6qRCK+z& zqW*-wM5gT6n$zGjxmwxG4jR{&&+5h_8~#k@Ir{i8$WDxk{F}ra&p0i~M{r-dn|3#N zNN;Arpxgjyl2x?P8}^h#j`2Oiw=+%0?W~IWHrfv`0wiML^KXhzIA7TOjfO?&Ya3*@ zfLNBa1_=D>q&u|T()^7A%};q|c?B95MarbANejOxt9+GX_Te=xYEl(ET;8f z!N_{SsnbVBpCq*+bYZE}FRRk0w6qmrLhl6I2$VNN4FgA4Qi@x@>%RJ6GjyDB`Rvv& z_ciNj4(Ul%#wAJu$8)k~i)vTHsQ}kaK_>f&EiFPHXC)SF4=05}v8u1O7G8Xk@u5O5 z^@SogD;^H)o~y5_yHI2o3j>7%_FFI7)~Wn-xvrMp_^si^&t|!Y%{h&fb%n}u534or z9t+Z4TW=eE$ZLJYesy_W?tfESblRBQljJVH=d0K=A|*T#3C5q-aZX+Z?6vZ%>Ajq z<)aLB7CG%~L7=FyWUJZ;CDgYIeMnPm0r=hF@z%-|kvKscCFE|dL-;&2#{PL}G*es7F__vEbFG~$RG0qE6u^5Nc-DN6G2 zg6XO?j!`S}+XhO{0Tf;hhB1+0Cfx;Q+4JY9 zS?UiN$UikAILaW9GHD(yh)sZ+9{}~a0+P8y1AV$-l}MzI&4vdfVh*B0bl{v&2O3f; zD1PA?YCinPoG%YWJ=LTOds$7l+(tYN&Gdn#F**`8yskf4 z298U@#*EM#W8ImD>GE=Z|VsR zo7#}aPse1dF5$QQ=j0Q1Z%Db(JSH|d{sT<$wH0mku|i`HThiF1LvQY;b_ntmXdjF$ z`~E~7<-`gRO8WL3>yrPvNF)WmLCUU1E}uRUwk_r^G=?9dC@24c@Gle39B+;$&>;W` z-4zY}wO$ThWV9sgD=IfhOU6o2h7mNEV9V1(?!yKO{RcAh+s_+k&{OM~MX&1kUiw2; z$NH^~eDt{@qyh}WLUM$R&d>%^*DfiB=ql^99K{n)b_*+ci&$$ytCbwWbwCe`&T+uU zL&-(iQYzhl{G#W>le@GK&b(sxRnF~@CjTEo^qha}8?(p^&guW6H`U=qLpqP_at}Fm zA>&7McFH9$E3U~Z1Fz?QplX1keemlkYmwZ@D1-k%!jC)bf%Hgn*-PnPkEOCVWztx9sOXoxC|k_@w$6QwjMzlSoF0ufcc^Z68-acMD&UevaJKedgLJZ6dtMu7?i` z_zx5ZPm$yz!i3QiyTn6Pq{3VV_BL_(Vm!-aWz;KTyetcnHod&ZO3n*?18K(u%^QV&sYJ<%4Vj>g9NTHI`FdhReA3+`}$($Z*I?W<#{|AghfWcD|?8a^Qx zZs2GI1=fhJ6H9=^CuQ5bSp% zv0l@-v&qAqEZhTfU<K{EcT0Vpy0PGTt5rTzTnq> zmd!rDKu|r|Ezb<%a}?UJ9hP=mJkI?r)Y#qiQ~+X4Ei>P|)+rjV+Ie$3+Lg^sK>Y-; zeTp{HPh^HmEP8bt_34A4r%EhyC8kA+Wt?7xot^Mkzu$8obw&T&XWk=RUbxFCJ`K1= zcUx#<-~s#3m7{LupSd9H?5ci;t7{X5XV3hKS02XE=zr?{-DXziXE=Gk(OUZ3D_xY} zJd@}qD)wT@gGn{%mWICy-v7((205p@uBMA6UfF0LWUcqZC>%R_hAw})L&f2n zkFxH6ts3#xdE)p9A<^X;vN9qQFUBj;0iEAzb=`xnKE3qGF*=iA`Q+VGkKq2FZxs)# zL*LAJD9)AXSos&WK8_HG@DjvG!sjxEL~AySTtuHgJy6!MNM*Yy@SD${3H7(b>#TX( zs=PVR;7i|ys>aN0=etCLAfE@~E9T!{m!Yw9*cZ>E9NB*oKL}0tdss$3nmhGi^*41h ziYO^{VyR!H@QK(%FD4*f73vwgAAOPRx?sJI`7>nu>vnh9?eou5v)@Uj?F|-=>+-Qr zZjXjfOo$0w6t(!OO%zGWDp*oF3b6f@R&}4Jx#rT}E7$MezxHreZHD$ksNmbH7O!?$ zFSpO>$-=Em4=z#$=I3oADfBf@p=(o zCspA)#N*qd2m6i@7h2L*BalMv6?MTiCpt{6cKXciV4Nq%E_Lhd3SD|us>pmY4jf52 zqW(LYbC(mphMj}d`K8^HOvB(J$%2R7$ajj$)h=nt_x+^{;_qkXMDs9zdm_(g8?ur} z-i+{r35R;w`|K`wD|t!$dHE47dFan6rZN3d_=4)k;~deSlIOp?_p>*RF)S`J*@_Q3 zD;VW#?R@-#S|t~eMuXk%KaE`6>s`E+e$HDs8@4#xg&M~F1B?bG7pBzZvY%YL8p9gV zG-Dfn;1FPsy}Vdnm?}k+%{WR~(JvHY=X^R$S(@&V=e}*?z2jD=AOe+8_ zv&3)C#%A^CFkMNgxA&2V%MFGbFc=u2Ln}bMJ>8z*eIfeTutDR4(cQ}T z;&QCp?vAe*KHxp)Ln07C$*HTWl!0AP>>sDmYaHK6a5WJih^?n}XJ!}Cz!kuSuCBQB zV!7v{L@KYTM6sgbTSby=e1(t|I5~ptp~}~o%eaUf0W>Dq1N9$>o_IB;K%oCWP}jfBdI?8<=>hFOB-jlCHm8lqxpVhR@`&+71iAJhXJ=2_Y~>xjTQVbn?Vyt z@i>#wNB_9j)v9a0@pUaf^$^hBq~UC1(l%XcM{wH zpkVIP!dup!{r%3}P#@`D5JU>swU`ULF*UIWQ$1nN#TVcnY2F|Ds}OTNZvL_k(^k7E z7#zV&REbdB*;DKsexDXDC3dGm3$2zERp)UTDwypgRHiB69&*r<-4+*FlCD% z4p$UWB{a^$_Rw(Rfy_d*Y?Az`^JjEo>baB%CIMLrl2)etjIZl!fpSmMxQ!*B(fWHn za0I4wjBiPn68m)7%^@Mf_P}QfhJS+zgP#Sz%1r=E60bzT;=)h^M|fG|E>l=Mj73{Y z$%!YcS}%wg{1EL0=czpgr1l+w+BMO_d!S^JYF3;o>u;}p=jZlS+CS^v3Iwx#=CQ+X zq8+6fLG$)*a%ybuOwwih4Y>W=rE{N#w~9T(tyYG3 zgVD&*EL0{3o6DCYp|8&_)amX=vKur%jdRd42G2ew%sZel+sn9sQ{V@>TKQ>2z0|qg zu|w0VIA=p_zghK%aUd6Zfo8Vy4KSc0vRP$b??%yuz)wI?ZI zt2p~%;K=Nop9;q-qYrX-Ui~!GS;qJ%Q78%ops@j6!&C(LcmjT7#EnUa)sT>}c-WkQVr~meb?4)GeEKduKKm#Z^e(_Y zyGvG2ZQOu&zkp}__wK4XXpg}w7kn4Qyo{IM&}Rh}1w$ZxRQRM}z_t!!T3b*K1R8M0 zEezW9gWBPBh{(_Rm<0IDF@;Vet^?z+<+rNS;v*a|v>k!kox?V_=7V)?3_Qf;Cn_u% z`QaqQK`yumBKSKSBt%;V;_Wt2_YJZ34-5_}ylK-a(X%;eE~Q;OqPf{@62%#MV%W~aZa%p+i~x$LXW4&`}mqnQ=Lh$JGoFF7Idxjp&j;=FX`~?+a6pV3pw=il86O`-p!+?~4-hQr^^cX7-9GqFb?}pt> z!qkbH6C=qtSTe_0nzFV}UF6LvQ&s-1u`k|nwe0f}4}lihEQ?7F#9uXm|Gf-wof6hy zHzVpN_6Y(-ZTjp>q_XQ~(9(#uwOejHErwcX3c!oe%VLqO8^x6Sos?XeyF2t+m2%PU zSNdB9n!7gAV0+oJa2ZkE$9bL~7XjfTBCS(RuYG71_{bZ8wQ0=i_#q_QsYa(`LZI=2 zLX%@(r5gKuLk*a`kIN0CBdWgT{&;;g)B9q zqBpD=)yc2VnpqxKKi3fsp0vl=Z|7beyV|YU7&Zn`+&DSRpNVEC%tv?q!v}cfjmh}3 zf$E=+)+u~6EX@I{*3ju0U61OiH|%#maDFVUW}lUT{Y?r)nf0hy-1@1H>e5$Y`=>YY z&{0pC_kyp`Pw!$QnW_X!E|nO%Evx}UC^OLFSODn{+cIa|KN|i6LCy@erOzE|4dUg1 zjtxmwV^FoX)(jCkE7r237xaamuRpUI>hcxHQAV|xQS+6Kt|SNY1?1Yn%QomQb8>t% ztyF_X?(CKE2R1s?Pe~<~+qKC$dgw14hVvaa>%(aUR(i!@IHZ1NBk(4WDqlEJfc~Ff zm(FfQTTu+arOtb8JX7$0G3?-a%?)o3oyzN$B{^JF_n~2KdoU9yz?Y zkJVz=TEqB!o3!O57YHS&rbrjOobCHgv)}d%2~k^7%R7EJdY5r%=%Na?)$^hlHXV#R zd#0McTc6`b1{)XFCumnqxQI^GE2D5+{wf~uBl}ea{cn4$H)PrFP`0=xvG_3WljFq( zH~HD=JkR3sxR#npUss!t4YWF;iV7aem>*cPiY_;5-JyF?19ix;^62?m$`h+N{8OpH zekZ8xWci3&-aC*uG9FGA1J*vz7^)}yAFw5BFI-UTW4quXKe{BpVV&WU>%1pDWI3+R zif8Wt0|Lnd?~)`E7BY>}>w&kA?^=^wd3b#6l^$8hLDmeT!yCN$rHOquNhGP4SLlC#|F~-Vv+2~e!?+9c^;D@~B2UXfH}H30W{dh$e3dmajKD`5 zwmq{+Zn|3fp7n>Qb6eXC{lwe87UF;{F#Q@SlNfBit+;Xc(WLyBHnSUgNM9h@s`rJV zFY=@YTzO)K5G#;u_|kEa3e;Gxs5 za7J|^S-%583hb!kBA@&A;bljk&*GhJb|&?{Th=(CmMcSFDKiw;A;2VB6Y-QqZtah+ z>o%6Kh6A}EjeG=eQP%Iij$4~DQ)6d_h=F{GLUFEL#g|cjZEGTFc688fe7dj`1&UQH zA2(aj6%2kcIpI*qi?h>A4)dWQfY`{BV?jdi*K_PNj|p5NA4xv|z&Rf6ZY1ioI6V)J z(pP<N8+QzDlHFRoS=ood zat7aCj08l*xVhn{`5aQ4`eJmFjLX`N=*DjFp1^5}CF!<*`%j0^Ss{Q^EP#$~>3>Dcr!H0m0c4&sKDmqXQyq&O*t&v~uO4U3$|e7q$RTQY(ayiVX!6{q`{L ztF7~b@<7bVj(`lE!4&R-34f)sJvL_)b0+k6=(T#|dBJsm&)^?dDacLet|iE`WX=99 z6^yb5E~a>DR#2>*c?3w<$-T9uOYzKRPF}ARE62-7VqyzEIzv_npdWTmsu4X^(aFp4 z+lRIhVVWX=SVmPN(j-SHv0xd0=M!5@JrI=~P(&U5*K=}oGFA|=U1 zfux&2#pO$H+{wa0?aPrT4QIj5Vei`O4I8xv#VDn+Z$5WX-^5iVbOurbq_9#%SP5j1STe+ zSD!JM8Hp6hi>Iw66!*zRI|_^rc&kW5kd{S(Di3&?e;Zx7FHPKL!APDj@XcNx-T{A; zFEx$)P`_9=*#8>-&B0rOT@!%IL$LMp|ACZZbd0s;6d7)~Ln_PsuYUh$^Ntoxb_o|Z z65A{WK@7J1cW+NS|KQjORBUZDYs`H6(<)Ucj7J~!9xf;_Y-V|D^=QT4Igx#!8k|DX zhC@zbEzb6{9cL0V+b8~2JjrOm3ne3$s)dQ0aA;`qlTqY(uc7qXM#4Kl#mOk_i6W0= z)xKZR9yV5)eJ_+w&+7q#UL-E7zs?5YuIdiYYMaXrl#K>$lRUo%mrvFtR8R`L0%?=j z-OsaSER0ymn1{aday%A)&R2n94sl7l%8gpmKRZ$)=>z{vs8tkmic{yBlHPv&{SJ54}Clp^VJ((BAKKme5 z+4HF?&WDDq&=;>R))O&*8yLKXsb_H75TZ=v`*m`Gs%Lwpu-VbVNmN+&YU0M9(=QTI zX>YA_q4Wfut7Eif9v0msL?OMzUk?_VAK%FieP1Ll?H0`*;5S{(U07!fr0xd#b^ zd#+JOP^@l`VABP7KjNX=f>O;(Pa_*e+HqJ2WD^3V7Y~#5_BDR%Gey!lM6Is-ox=Y< zQm%=UE|ab+Uwje2zSXkDyphl=gV5dRe8Li9ZaPspGaG#od+OJE8iV9O2Bb<0EQo z;ktIA%&#h^)N=mbWouL8n1t~OMSIGx9%QLkH^pvEiN^d&O_2fUuU2moUj>wMSx!0| z-V+hDaDH))d)KBx&Oi(r5N}yA+qmrIX8DZYFtP4+ulo|3JdZxi+AA*L3%ywUhy0U( zfCJ`;cs09%4R*wRVG_KB_*{>DzS~xvcI^W%Lz2#NKdVvPUl~x(GVs`gDBWg86g+Jx zqgw#jGNI<(*7RF|oR?aeJLY0}AZ!8eem=O{h%AH`&pVYJ2_Jaw2?;V*+Ce7nWS^VQ zN_SG2&J757f!Q8Db{a~|0=&V-ATfwo;@CieFFF}ppz!1Eg1QKBDYxupgR!8_yTbG! zkpPp(3pjvBi#1ihS#!%rj5nJdZT%y)wqH`G?t^ohx>O%Zf%PWN$6h<6AzX1QNMSmbCRm;?!m zrQd5Z;O{Gs#K>KCSy8-88Wen`vLV$I4~K>B@#pbQcBYaBG9ia?9C0DX5Jvy3i;7d6r32GDn?SMiqL>yaggADpxffSXDOM@ zJx9j4@Rn>wE=~JHEYAG)+z*a8}Lz zZ>iIR^j_JHLY7Jqr;}ZBv%W{O7QYH8&}aXoxkS73io& z_QI0^ov)(vuyd%MWlB7Gd#=7@Xd!6uH-3cm;+lQmtr)r%2_Y#tCipVoB1guFw~{q$ zJQ1NJaXJ1sA{?iXe2!V;OAh=xGk0`oDj_`KFa~ z(1SMYNXI!EDeSm-X<3{UsxcI`wCwH{gr~OOkdP@w1BCMx?MDQ*zRDd%)~qe(0?7;3 zhS)=1MDwfjKn6;6Im>o@y8ZtvgNfX z^anN~q4I}@R}-U5*>u)*i2A=of6@8cNB$r6eMHf1tGJ0hRzF4WaG!fE#mxtYQGW2A zh=Z?OmQCEYMPchZsj(7!!=M8ba2N#(!!^SN98OQA=@SOUFDV#5C&ba?0K z@kl+rpE<9UJ64@#Pmjc3_K4A}KX#LW+1b;p&)ze(IXSxmBSJ(mYop)#97s0q16ws+ zMANAf>YfRdm&WhJ+|$xJgIBUYdQtRy1v4`#B=y~3M@l!PH^uB~*o?R8Z^2*IelWsY zhj-=75Z5qIq)^@yLsCZ_AIai^K`5}Al*#P$1UtNefPvqo%sBI7$%7Y;kMhbthq~nd zzNd0HaT61EIdMA_d2l|U;OzGQ<9vKHsq*+tvCcMsV1%AHz#zC3a=`R+AtZyE)$ z@+NPcx_pPyo$>r;zEc{sF8N`+j^{ad5TR#xO|LyNETm?AY;8G~$<;?}x{$_CSSM;I zq1AezwA;xNE1lL4-mgA*;Jxtawp2@K(*gMG@OC)zU8!qrhMyFz;n!WQhY_N3xOv+` z@au}HYwzz?24q%>oDPy->uui@k9@#a(RUVY-y%{@r z@t2BRC8vd6lf-@-mM&E>xjkLybiHQOF)N)kwjCy)HQPcI%v`}aEbEF~NQ$#)d{13{ z;ifgU7qX|bckW@*m`Eg+w)j`s{3gl?&2&An{eGQ~{p;icHl~?vO2tUCq;+RkvYY>f zce%!;?>73ph36wFLrHr-r>;$QymQj&8E+R|RDC1ZULd4b%#$1&<1Irn_N?c4z?he>hot#uscXKCjR&iQ3Q`y z4gZjfTEu7BiF0D%Wlw*a5USgB$yW1`1H(Rd+wLdvC4Tv&!fcm-nFm%BA{V=#wAx$?F4ksw0Tb#qder-e}jhruQ9TX6R7@2x(i6#gnFy&68OePCjs z9M3WpU>mq6WHY)N>-!<({%6OSTrp-Y9$rs<2tqazuMEauUD%)5Z9lBPV?I*G9Udz( z{d!%=`(}@jzJY2z3FiT+znr8ahL=6A;dm2g@J||n8s1xrPivqS_4M{gxm~NPvr6;N zLn4-U>{wBM_cXr7FXp=@6_KC3>r-hIwC_JFC-esD7 zlV_xDkoqyDNPs=~*!~D@d2}i9V^P9h+n_yWN@v;IY)Xs-21|Lzy6wQBR@9^5QFK~Yq$c`Jz%ypo{hwN#O)-~&0ug8=`%eSpYS;h6Y zbd&!HG7|;P-_xi|O`j~^WOA5gSITk)uf^}ZGVY07F~PdN@rbjh^C0}t6{AgcyYK#&!GQU>mngjCd;I0 zDl%$Yy8DK1bS5J6VIc4*k_=`1^0aU^E-&rzW34`UJ$kHik_ST0z%_8he(L?ZN2kkv zrEbJeU)0o5coA5+;-Qw@ZxW-lu!Y8e+Z7&fN1zYCo zH#iRjX}Uv;8M=*`YdmPFbCn*-GajhXU83bq`n_ldfBjLINPv)DAgEWpi)lVo�vK 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

BFWkMO%x& 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 + [...QUERY_KEYS_BOOKS.root, JSON.stringify(search)] as const, byId: (bookId: string) => [...QUERY_KEYS_BOOKS.root, bookId] as const, } +export const bookListQuery = defineQueryOptions( + ({ + search, + pause = false, + }: { + search: components['schemas']['BookSearch'] + pause?: boolean + }) => ({ + key: QUERY_KEYS_BOOKS.bySearch(search), + query: () => + komgaClient + .POST('/api/v1/books/list', { + body: search, + }) + // unwrap the openapi-fetch structure on success + .then((res) => res.data), + enabled: !pause, + placeholderData: (previousData: any) => previousData, // eslint-disable-line @typescript-eslint/no-explicit-any + }), +) + export const bookDetailQuery = defineQueryOptions(({ bookId }: { bookId: string }) => ({ key: QUERY_KEYS_BOOKS.byId(bookId), query: () => diff --git a/next-ui/src/colada/series.ts b/next-ui/src/colada/series.ts index 548cb1ddb..3e5b61c11 100644 --- a/next-ui/src/colada/series.ts +++ b/next-ui/src/colada/series.ts @@ -1,11 +1,35 @@ import { defineQueryOptions } from '@pinia/colada' import { komgaClient } from '@/api/komga-client' +import type { components } from '@/generated/openapi/komga' export const QUERY_KEYS_SERIES = { root: ['series'] as const, + bySearch: (search: components['schemas']['SeriesSearch']) => + [...QUERY_KEYS_SERIES.root, JSON.stringify(search)] as const, byId: (seriesId: string) => [...QUERY_KEYS_SERIES.root, seriesId] as const, } +export const seriesListQuery = defineQueryOptions( + ({ + search, + pause = false, + }: { + search: components['schemas']['SeriesSearch'] + pause: boolean + }) => ({ + key: QUERY_KEYS_SERIES.bySearch(search), + query: () => + komgaClient + .POST('/api/v1/series/list', { + body: search, + }) + // unwrap the openapi-fetch structure on success + .then((res) => res.data), + enabled: !pause, + placeholderData: (previousData: any) => previousData, // eslint-disable-line @typescript-eslint/no-explicit-any + }), +) + export const seriesDetailQuery = defineQueryOptions(({ seriesId }: { seriesId: string }) => ({ key: QUERY_KEYS_SERIES.byId(seriesId), query: () => diff --git a/next-ui/src/colada/transient-books.ts b/next-ui/src/colada/transient-books.ts new file mode 100644 index 000000000..512613fcc --- /dev/null +++ b/next-ui/src/colada/transient-books.ts @@ -0,0 +1,39 @@ +import { defineQueryOptions } from '@pinia/colada' +import { komgaClient } from '@/api/komga-client' + +export const QUERY_KEYS_TRANSIENT_BOOKS = { + root: ['transient-books'] as const, + byPath: (path: string) => [...QUERY_KEYS_TRANSIENT_BOOKS.root, path] as const, + byId: (transientBookId: string) => [...QUERY_KEYS_TRANSIENT_BOOKS.root, transientBookId] as const, +} + +export const transientBooksScan = defineQueryOptions(({ path }: { path: string }) => ({ + key: QUERY_KEYS_TRANSIENT_BOOKS.byPath(path), + enabled: path.length > 0, + query: () => + komgaClient + .POST('/api/v1/transient-books', { + body: { + path: path, + }, + }) + // unwrap the openapi-fetch structure on success + .then((res) => res.data), +})) + +export const transientBookAnalyze = defineQueryOptions( + ({ transientBookId }: { transientBookId: string }) => ({ + key: QUERY_KEYS_TRANSIENT_BOOKS.byId(transientBookId), + query: () => + komgaClient + .POST('/api/v1/transient-books/{id}/analyze', { + params: { + path: { + id: transientBookId, + }, + }, + }) + // unwrap the openapi-fetch structure on success + .then((res) => res.data), + }), +) diff --git a/next-ui/src/components.d.ts b/next-ui/src/components.d.ts index 957882da9..b43034fba 100644 --- a/next-ui/src/components.d.ts +++ b/next-ui/src/components.d.ts @@ -12,8 +12,10 @@ declare module 'vue' { ApikeyDeletionWarning: typeof import('./components/apikey/DeletionWarning.vue')['default'] ApikeyForceSyncWarning: typeof import('./components/apikey/ForceSyncWarning.vue')['default'] AppFooter: typeof import('./components/AppFooter.vue')['default'] + DialogBookPicker: typeof import('./components/dialog/BookPicker.vue')['default'] DialogConfirm: typeof import('./components/dialog/Confirm.vue')['default'] DialogConfirmEdit: typeof import('./components/dialog/ConfirmEdit.vue')['default'] + DialogFileNamePicker: typeof import('./components/dialog/FileNamePicker.vue')['default'] EmptyStateNetworkError: typeof import('./components/EmptyStateNetworkError.vue')['default'] FormattedMessage: typeof import('./components/FormattedMessage.ts')['default'] FragmentApikeyGenerateDialog: typeof import('./fragments/fragment/apikey/GenerateDialog.vue')['default'] @@ -22,6 +24,7 @@ declare module 'vue' { FragmentBuildVersion: typeof import('./fragments/fragment/BuildVersion.vue')['default'] FragmentDialogConfirm: typeof import('./fragments/fragment/dialog/Confirm.vue')['default'] FragmentDialogConfirmEdit: typeof import('./fragments/fragment/dialog/ConfirmEdit.vue')['default'] + FragmentDialogSeriesPicker: typeof import('./fragments/fragment/dialog/SeriesPicker.vue')['default'] FragmentHistoryExpandBookConverted: typeof import('./fragments/fragment/history/expand/BookConverted.vue')['default'] FragmentHistoryExpandBookFileDeleted: typeof import('./fragments/fragment/history/expand/BookFileDeleted.vue')['default'] FragmentHistoryExpandBookImported: typeof import('./fragments/fragment/history/expand/BookImported.vue')['default'] @@ -29,13 +32,16 @@ declare module 'vue' { FragmentHistoryExpandSeriesDirectoryDeleted: typeof import('./fragments/fragment/history/expand/SeriesDirectoryDeleted.vue')['default'] FragmentHistoryExpandTable: typeof import('./fragments/fragment/history/expand/Table.vue')['default'] FragmentHistoryTable: typeof import('./fragments/fragment/history/Table.vue')['default'] + FragmentImportBooksTransientBooksTable: typeof import('./fragments/fragment/import/books/TransientBooksTable.vue')['default'] FragmentLocaleSelector: typeof import('./fragments/fragment/LocaleSelector.vue')['default'] + FragmentRemoteFileList: typeof import('./fragments/fragment/RemoteFileList.vue')['default'] FragmentSnackQueue: typeof import('./fragments/fragment/SnackQueue.vue')['default'] FragmentThemeSelector: typeof import('./fragments/fragment/ThemeSelector.vue')['default'] FragmentUserAuthenticationActivityTable: typeof import('./fragments/fragment/user/AuthenticationActivityTable.vue')['default'] FragmentUserFormCreateEdit: typeof import('./fragments/fragment/user/form/CreateEdit.vue')['default'] FragmentUserTable: typeof import('./fragments/fragment/user/Table.vue')['default'] HelloWorld: typeof import('./components/HelloWorld.vue')['default'] + ImportBooksDirectorySelection: typeof import('./components/import/books/DirectorySelection.vue')['default'] LayoutAppBar: typeof import('./fragments/layout/app/Bar.vue')['default'] LayoutAppDrawer: typeof import('./fragments/layout/app/drawer/Drawer.vue')['default'] LayoutAppDrawerFooter: typeof import('./fragments/layout/app/drawer/Footer.vue')['default'] diff --git a/next-ui/src/components/dialog/BookPicker.mdx b/next-ui/src/components/dialog/BookPicker.mdx new file mode 100644 index 000000000..e5828d779 --- /dev/null +++ b/next-ui/src/components/dialog/BookPicker.mdx @@ -0,0 +1,9 @@ +import { Meta } from '@storybook/addon-docs/blocks'; + +import * as Stories from './BookPicker.stories'; + + + +# DialogBookPicker + +Pick book from the provided selection. Can also be filtered. diff --git a/next-ui/src/components/dialog/BookPicker.stories.ts b/next-ui/src/components/dialog/BookPicker.stories.ts new file mode 100644 index 000000000..7041156ca --- /dev/null +++ b/next-ui/src/components/dialog/BookPicker.stories.ts @@ -0,0 +1,46 @@ +import type { Meta, StoryObj } from '@storybook/vue3-vite' + +import BookPicker from './BookPicker.vue' +import { fn } from 'storybook/test' +import { mockBooks } from '@/mocks/api/handlers/books' + +const meta = { + component: BookPicker, + render: (args: object) => ({ + components: { BookPicker }, + setup() { + return { args } + }, + template: '', + }), + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + }, + args: { + dialog: true, + onSelectedBook: fn(), + books: mockBooks(5), + }, +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = { + args: { + ...meta.args, + }, +} +export const PresetFilter: Story = { + args: { + filter: '3', + ...meta.args, + }, +} + +export const LargeList: Story = { + args: { + ...meta.args, + books: mockBooks(500), + }, +} diff --git a/next-ui/src/components/dialog/BookPicker.vue b/next-ui/src/components/dialog/BookPicker.vue new file mode 100644 index 000000000..15e19cfa0 --- /dev/null +++ b/next-ui/src/components/dialog/BookPicker.vue @@ -0,0 +1,174 @@ + + + + diff --git a/next-ui/src/components/dialog/FileNamePicker.mdx b/next-ui/src/components/dialog/FileNamePicker.mdx new file mode 100644 index 000000000..35b91c152 --- /dev/null +++ b/next-ui/src/components/dialog/FileNamePicker.mdx @@ -0,0 +1,9 @@ +import { Meta } from '@storybook/addon-docs/blocks'; + +import * as Stories from './FileNamePicker.stories'; + + + +# DialogFileNamePicker + +Displays file names for series books for easy picking. diff --git a/next-ui/src/components/dialog/FileNamePicker.stories.ts b/next-ui/src/components/dialog/FileNamePicker.stories.ts new file mode 100644 index 000000000..ca42cf176 --- /dev/null +++ b/next-ui/src/components/dialog/FileNamePicker.stories.ts @@ -0,0 +1,43 @@ +import type { Meta, StoryObj } from '@storybook/vue3-vite' + +import FileNamePicker from './FileNamePicker.vue' +import { fn } from 'storybook/test' +import { mockBooks } from '@/mocks/api/handlers/books' + +const meta = { + component: FileNamePicker, + render: (args: object) => ({ + components: { FileNamePicker }, + setup() { + return { args } + }, + template: '', + }), + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + }, + args: { + dialog: true, + existingName: 'existing filename.cbz', + onSelectedName: fn(), + }, +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = { + args: { + seriesBooks: mockBooks(5), + }, +} + +export const LargeList: Story = { + args: { + seriesBooks: mockBooks(1000), + }, +} + +export const NoBooks: Story = { + args: {}, +} diff --git a/next-ui/src/components/dialog/FileNamePicker.vue b/next-ui/src/components/dialog/FileNamePicker.vue new file mode 100644 index 000000000..bfedaaf6b --- /dev/null +++ b/next-ui/src/components/dialog/FileNamePicker.vue @@ -0,0 +1,193 @@ + + + + diff --git a/next-ui/src/components/import/books/DirectorySelection.mdx b/next-ui/src/components/import/books/DirectorySelection.mdx new file mode 100644 index 000000000..0d14dc942 --- /dev/null +++ b/next-ui/src/components/import/books/DirectorySelection.mdx @@ -0,0 +1,11 @@ +import { Canvas, Meta } from '@storybook/addon-docs/blocks'; + +import * as Stories from './DirectorySelection.stories'; + + + +# ImportBookDirectorySelection + +Directory can be selected using the *Browse* button, or input directly. + + diff --git a/next-ui/src/components/import/books/DirectorySelection.stories.ts b/next-ui/src/components/import/books/DirectorySelection.stories.ts new file mode 100644 index 000000000..afbfad1c8 --- /dev/null +++ b/next-ui/src/components/import/books/DirectorySelection.stories.ts @@ -0,0 +1,37 @@ +import type { Meta, StoryObj } from '@storybook/vue3-vite' + +import DirectorySelection from './DirectorySelection.vue' +import DialogConfirmEdit from '@/fragments/fragment/dialog/ConfirmEdit.vue' +import { useAppStore } from '@/stores/app' +import { fn } from 'storybook/test' + +const meta = { + component: DirectorySelection, + render: (args: object) => ({ + components: { DirectorySelection, DialogConfirmEdit }, + setup() { + return { args } + }, + template: '', + }), + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + }, + args: { + onScan: fn(), + }, +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = { + args: {}, +} + +export const PresetPath: Story = { + play: () => { + const appStore = useAppStore() + appStore.importBooksPath = '/comics' + }, +} diff --git a/next-ui/src/components/import/books/DirectorySelection.vue b/next-ui/src/components/import/books/DirectorySelection.vue new file mode 100644 index 000000000..f0408c77f --- /dev/null +++ b/next-ui/src/components/import/books/DirectorySelection.vue @@ -0,0 +1,97 @@ + + + diff --git a/next-ui/src/composables/errorCodeFormatter.ts b/next-ui/src/composables/errorCodeFormatter.ts new file mode 100644 index 000000000..7318d6fc7 --- /dev/null +++ b/next-ui/src/composables/errorCodeFormatter.ts @@ -0,0 +1,18 @@ +import { useIntl } from 'vue-intl' +import { errorCodeMessages } from '@/utils/i18n/enum/error-codes' + +export function useErrorCodeFormatter() { + const intl = useIntl() + + function convertErrorCodes(message: string): string { + const match = message.match(/ERR_\d{4}/g) + let r = message + match?.forEach((errorCode) => { + if (errorCodeMessages[errorCode]) + r = r.replace(errorCode, intl.formatMessage(errorCodeMessages[errorCode])) + }) + return r + } + + return { convertErrorCodes } +} diff --git a/next-ui/src/fragments/fragment/RemoteFileList.mdx b/next-ui/src/fragments/fragment/RemoteFileList.mdx new file mode 100644 index 000000000..23c1421cc --- /dev/null +++ b/next-ui/src/fragments/fragment/RemoteFileList.mdx @@ -0,0 +1,11 @@ +import { Canvas, Meta } from '@storybook/addon-docs/blocks'; + +import * as Stories from './RemoteFileList.stories'; + + + +# FragmentRemoteFileList + +A remote directory browser, to browse directories on a remote server. + + diff --git a/next-ui/src/fragments/fragment/RemoteFileList.stories.ts b/next-ui/src/fragments/fragment/RemoteFileList.stories.ts new file mode 100644 index 000000000..a9b1797d5 --- /dev/null +++ b/next-ui/src/fragments/fragment/RemoteFileList.stories.ts @@ -0,0 +1,49 @@ +import type { Meta, StoryObj } from '@storybook/vue3-vite' + +import { http, delay } from 'msw' +import RemoteFileList from './RemoteFileList.vue' +import { response401Unauthorized } from '@/mocks/api/handlers' + +const meta = { + component: RemoteFileList, + render: (args: object) => ({ + components: { RemoteFileList }, + setup() { + return { args } + }, + template: '', + }), + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + }, + args: {}, +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = { + args: {}, +} + +export const PresetPath: Story = { + args: { + modelValue: '/comics', + }, +} + +export const Loading: Story = { + parameters: { + msw: { + handlers: [http.all('*', async () => await delay(2_000))], + }, + }, +} + +export const Error: Story = { + parameters: { + msw: { + handlers: [http.all('*', response401Unauthorized)], + }, + }, +} diff --git a/next-ui/src/fragments/fragment/RemoteFileList.vue b/next-ui/src/fragments/fragment/RemoteFileList.vue new file mode 100644 index 000000000..25fbc0828 --- /dev/null +++ b/next-ui/src/fragments/fragment/RemoteFileList.vue @@ -0,0 +1,79 @@ + + + diff --git a/next-ui/src/fragments/fragment/dialog/SeriesPicker.mdx b/next-ui/src/fragments/fragment/dialog/SeriesPicker.mdx new file mode 100644 index 000000000..76f4ae249 --- /dev/null +++ b/next-ui/src/fragments/fragment/dialog/SeriesPicker.mdx @@ -0,0 +1,9 @@ +import { Meta } from '@storybook/addon-docs/blocks'; + +import * as Stories from './SeriesPicker.stories'; + + + +# FragmentDialogSeriesPicker + +Search and pick series. diff --git a/next-ui/src/fragments/fragment/dialog/SeriesPicker.stories.ts b/next-ui/src/fragments/fragment/dialog/SeriesPicker.stories.ts new file mode 100644 index 000000000..23c97bcd7 --- /dev/null +++ b/next-ui/src/fragments/fragment/dialog/SeriesPicker.stories.ts @@ -0,0 +1,62 @@ +import type { Meta, StoryObj } from '@storybook/vue3-vite' + +import { http, delay } from 'msw' +import SeriesPicker from './SeriesPicker.vue' +import { response401Unauthorized } from '@/mocks/api/handlers' +import { fn } from 'storybook/test' + +const meta = { + component: SeriesPicker, + render: (args: object) => ({ + components: { SeriesPicker }, + setup() { + return { args } + }, + template: '', + }), + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + }, + args: { + dialog: true, + onSelectedSeries: fn(), + }, +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = { + args: {}, +} + +export const PresetSearch: Story = { + args: { + searchString: 'd', + }, +} + +export const NoResults: Story = { + args: { + searchString: 'not found', + }, +} + +export const Loading: Story = { + parameters: { + msw: { + handlers: [http.all('*', async () => await delay(2_000))], + }, + }, +} + +export const Error: Story = { + args: { + searchString: 'd', + }, + parameters: { + msw: { + handlers: [http.all('*', response401Unauthorized)], + }, + }, +} diff --git a/next-ui/src/fragments/fragment/dialog/SeriesPicker.vue b/next-ui/src/fragments/fragment/dialog/SeriesPicker.vue new file mode 100644 index 000000000..bae5d5c26 --- /dev/null +++ b/next-ui/src/fragments/fragment/dialog/SeriesPicker.vue @@ -0,0 +1,180 @@ + + + + diff --git a/next-ui/src/fragments/fragment/import/books/TransientBooksTable.mdx b/next-ui/src/fragments/fragment/import/books/TransientBooksTable.mdx new file mode 100644 index 000000000..83a4e5a02 --- /dev/null +++ b/next-ui/src/fragments/fragment/import/books/TransientBooksTable.mdx @@ -0,0 +1,15 @@ +import { Canvas, Meta } from '@storybook/addon-docs/blocks'; + +import * as Stories from './TransientBooksTable.stories'; + + + +# FragmentImportBooksTransientBooksTable + +Data table displaying books to import. +- When books come into view, they will be analyzed. +- Only `READY` books can be selected. +- If a book has a `seriesId` returned by the server, it will be automatically selected. +- If a book has a book number returned by the server, it will be automatically selected for upgrade. + + diff --git a/next-ui/src/fragments/fragment/import/books/TransientBooksTable.stories.ts b/next-ui/src/fragments/fragment/import/books/TransientBooksTable.stories.ts new file mode 100644 index 000000000..d3b3184aa --- /dev/null +++ b/next-ui/src/fragments/fragment/import/books/TransientBooksTable.stories.ts @@ -0,0 +1,58 @@ +import type { Meta, StoryObj } from '@storybook/vue3-vite' + +import { http, delay } from 'msw' +import TransientBooksTable from './TransientBooksTable.vue' +import { response401Unauthorized } from '@/mocks/api/handlers' +import { scanned } from '@/mocks/api/handlers/transient-books' +import SnackQueue from '@/fragments/fragment/SnackQueue.vue' + +const meta = { + component: TransientBooksTable, + subcomponents: { SnackQueue }, + render: (args: object) => ({ + components: { TransientBooksTable, SnackQueue }, + setup() { + return { args } + }, + template: '', + }), + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + }, + args: {}, +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = { + args: { + books: scanned, + }, +} + +export const Empty: Story = { + args: {}, +} + +export const Loading: Story = { + args: { + books: scanned, + }, + parameters: { + msw: { + handlers: [http.all('*', async () => await delay(2_000))], + }, + }, +} + +export const ErrorOnImport: Story = { + args: { + books: scanned, + }, + parameters: { + msw: { + handlers: [http.all('*/v1/books/import', response401Unauthorized)], + }, + }, +} diff --git a/next-ui/src/fragments/fragment/import/books/TransientBooksTable.vue b/next-ui/src/fragments/fragment/import/books/TransientBooksTable.vue new file mode 100644 index 000000000..a09e6347a --- /dev/null +++ b/next-ui/src/fragments/fragment/import/books/TransientBooksTable.vue @@ -0,0 +1,559 @@ + + + + + diff --git a/next-ui/src/mocks/api/handlers.ts b/next-ui/src/mocks/api/handlers.ts index 62c07dcfd..91a549b49 100644 --- a/next-ui/src/mocks/api/handlers.ts +++ b/next-ui/src/mocks/api/handlers.ts @@ -10,21 +10,28 @@ import { claimHandlers } from '@/mocks/api/handlers/claim' import { historyHandlers } from '@/mocks/api/handlers/history' import { seriesHandlers } from '@/mocks/api/handlers/series' import { booksHandlers } from '@/mocks/api/handlers/books' +import { filesystemHandlers } from '@/mocks/api/handlers/filesystem' +import { transientBooksHandlers } from '@/mocks/api/handlers/transient-books' export const handlers = [ ...actuatorHandlers, ...announcementHandlers, ...booksHandlers, ...claimHandlers, + ...filesystemHandlers, ...historyHandlers, ...librariesHandlers, ...referentialHandlers, ...releasesHandlers, ...seriesHandlers, ...settingsHandlers, + ...transientBooksHandlers, ...usersHandlers, ] +export const response400BadRequest = () => + HttpResponse.json({ error: 'Bad Request' }, { status: 400 }) + export const response404NotFound = () => HttpResponse.json({ error: 'NotFound' }, { status: 404 }) export const response401Unauthorized = () => diff --git a/next-ui/src/mocks/api/handlers/books.ts b/next-ui/src/mocks/api/handlers/books.ts index 7f4a2f3e2..60f181a84 100644 --- a/next-ui/src/mocks/api/handlers/books.ts +++ b/next-ui/src/mocks/api/handlers/books.ts @@ -1,4 +1,8 @@ import { httpTyped } from '@/mocks/api/httpTyped' +import { mockPage } from '@/mocks/api/pageable' +import { PageRequest } from '@/types/PageRequest' +import { http, HttpResponse } from 'msw' +import mockThumbnailUrl from '@/assets/mock-thumbnail.jpg' const book = { id: '05RKH8CC8B4RW', @@ -57,11 +61,50 @@ const book = { oneshot: false, } +export function mockBooks(count: number) { + return [...Array(count).keys()].map((index) => + Object.assign({}, book, { + id: `BOOK${index + 1}`, + name: `Book ${index + 1}`, + number: index + 1, + metadata: { + title: `Book ${index + 1}`, + number: `${index + 1}`, + numberSort: index + 1, + ...(index % 2 === 0 && { + releaseDate: `19${String(index).slice(-2).padStart(2, '0')}-05-10`, + }), + }, + }), + ) +} + export const booksHandlers = [ + httpTyped.post('/api/v1/books/list', ({ query, response }) => { + return response(200).json( + mockPage( + mockBooks(50), + new PageRequest(Number(query.get('page')), Number(query.get('size')), query.getAll('sort')), + ), + ) + }), httpTyped.get('/api/v1/books/{bookId}', ({ params, response }) => { if (params.bookId === '404') return response(404).empty() return response(200).json( Object.assign({}, book, { metadata: { title: `Book ${params.bookId}` } }), ) }), + httpTyped.post('/api/v1/books/import', ({ response }) => { + return response(202).empty() + }), + http.get('*/api/v1/books/*/thumbnail', async () => { + // Get an ArrayBuffer from reading the file from disk or fetching it. + const buffer = await fetch(mockThumbnailUrl).then((response) => response.arrayBuffer()) + + return HttpResponse.arrayBuffer(buffer, { + headers: { + 'content-type': 'image/jpg', + }, + }) + }), ] diff --git a/next-ui/src/mocks/api/handlers/filesystem.ts b/next-ui/src/mocks/api/handlers/filesystem.ts new file mode 100644 index 000000000..129360f4d --- /dev/null +++ b/next-ui/src/mocks/api/handlers/filesystem.ts @@ -0,0 +1,61 @@ +import { httpTyped } from '@/mocks/api/httpTyped' +import { response400BadRequest } from '@/mocks/api/handlers' + +const emptyPath = { directories: [{ type: 'directory', name: '/', path: '/' }], files: [] } + +const rootSlash = { + parent: '', + directories: [ + { type: 'directory', name: 'Applications', path: '/Applications' }, + { type: 'directory', name: 'bin', path: '/bin' }, + { type: 'directory', name: 'cores', path: '/cores' }, + { type: 'directory', name: 'comics', path: '/comics' }, + { type: 'directory', name: 'dev', path: '/dev' }, + { type: 'directory', name: 'etc', path: '/etc' }, + { type: 'directory', name: 'home', path: '/home' }, + { type: 'directory', name: 'Library', path: '/Library' }, + { type: 'directory', name: 'opt', path: '/opt' }, + { type: 'directory', name: 'private', path: '/private' }, + { type: 'directory', name: 'sbin', path: '/sbin' }, + { type: 'directory', name: 'System', path: '/System' }, + { type: 'directory', name: 'tmp', path: '/tmp' }, + { type: 'directory', name: 'Users', path: '/Users' }, + { type: 'directory', name: 'usr', path: '/usr' }, + { type: 'directory', name: 'var', path: '/var' }, + { type: 'directory', name: 'Volumes', path: '/Volumes' }, + ], + files: [], +} + +const comics = { + parent: '/', + directories: [ + { type: 'directory', name: '_oneshots', path: '/comics/_oneshots' }, + { type: 'directory', name: 'Golden Age', path: '/comics/Golden Age' }, + { type: 'directory', name: 'Wika', path: '/comics/Wika' }, + { type: 'directory', name: 'Zorro', path: '/comics/Zorro' }, + ], + files: [], +} + +const empty = { parent: '/', directories: [], files: [] } + +export const filesystemHandlers = [ + httpTyped.post('/api/v1/filesystem', async ({ request, response }) => { + const data = await request.json() + + if (data?.path === '') { + return response(200).json(emptyPath) + } else if (data?.path === '/') { + return response(200).json(rootSlash) + } else if (data?.path === '/comics') { + return response(200).json(comics) + } else if ( + [...rootSlash.directories, ...comics.directories].some((it) => it.path === data?.path) + ) { + return response(200).json(empty) + } + + return response.untyped(response400BadRequest()) + }), +] diff --git a/next-ui/src/mocks/api/handlers/history.ts b/next-ui/src/mocks/api/handlers/history.ts index e1061ce64..00b7a01b4 100644 --- a/next-ui/src/mocks/api/handlers/history.ts +++ b/next-ui/src/mocks/api/handlers/history.ts @@ -2,7 +2,7 @@ import { httpTyped } from '@/mocks/api/httpTyped' import { mockPage } from '@/mocks/api/pageable' import { PageRequest } from '@/types/PageRequest' import { http, HttpResponse } from 'msw' -import logoUrl from '@/assets/logo.svg' +import mockThumbnailUrl from '@/assets/mock-thumbnail.jpg' export const historyBookImported = { id: 'H1', @@ -114,11 +114,11 @@ export const historyHandlers = [ ), http.get('*/api/v1/page-hashes/*/thumbnail', async () => { // Get an ArrayBuffer from reading the file from disk or fetching it. - const buffer = await fetch(logoUrl).then((response) => response.arrayBuffer()) + const buffer = await fetch(mockThumbnailUrl).then((response) => response.arrayBuffer()) return HttpResponse.arrayBuffer(buffer, { headers: { - 'content-type': 'image/svg+xml', + 'content-type': 'image/jpg', }, }) }), diff --git a/next-ui/src/mocks/api/handlers/series.ts b/next-ui/src/mocks/api/handlers/series.ts index 998817226..36aedb578 100644 --- a/next-ui/src/mocks/api/handlers/series.ts +++ b/next-ui/src/mocks/api/handlers/series.ts @@ -1,8 +1,12 @@ import { httpTyped } from '@/mocks/api/httpTyped' +import { http, HttpResponse } from 'msw' +import mockThumbnailUrl from '@/assets/mock-thumbnail.jpg' +import { PageRequest } from '@/types/PageRequest' +import { mockPage } from '@/mocks/api/pageable' -const series = { +const series1 = { id: '57', - libraryId: '56', + libraryId: '1', name: 'Super Duck', url: '/books/Super Duck', created: new Date('2020-07-05T12:11:50Z'), @@ -56,11 +60,94 @@ const series = { oneshot: false, } +const series2 = { + id: '63', + libraryId: '2', + name: 'Space Adventures', + url: '/books/Space Adventures', + created: new Date('2020-07-05T12:11:50Z'), + lastModified: new Date('2020-07-05T12:11:50Z'), + fileLastModified: new Date('2020-03-05T11:57:31Z'), + booksCount: 4, + booksReadCount: 0, + booksUnreadCount: 3, + booksInProgressCount: 1, + metadata: { + status: 'ENDED', + statusLock: true, + title: 'Space Adventures', + titleLock: false, + titleSort: 'Space Adventures', + titleSortLock: false, + summary: + 'Supersophisticated androids that can pass for human? Robots that turn on their creators to take control of their world? Strange alien armies secretly infiltrating the earth? Men rocketing through the galaxy as easily as taking an average Sunday drive in the country? Come on, that stuff is just a bunch of science fiction, right?\n\nYou bet it is! Published every two months, Charlton Comics presented a new collection of short stories about mankind’s long-dreamed-of exploration of the rest of the solar system…and beyond!\n\nThis series is notable for its many stories by Steve Ditko (creator of The Amazing Spider-Man), and for the first appearance of Captain Atom.', + summaryLock: true, + readingDirection: 'LEFT_TO_RIGHT', + readingDirectionLock: true, + publisher: 'Charlton', + publisherLock: true, + ageRatingLock: false, + language: 'en', + languageLock: true, + genres: ['science fiction'], + genresLock: true, + tags: [], + tagsLock: false, + totalBookCount: 70, + totalBookCountLock: true, + sharingLabels: [], + sharingLabelsLock: false, + links: [], + linksLock: false, + alternateTitles: [], + alternateTitlesLock: false, + created: new Date('2020-07-05T12:11:50Z'), + lastModified: new Date('2023-07-22T11:14:45Z'), + }, + booksMetadata: { + authors: [], + tags: [], + releaseDate: '2018-07-10', + summary: '', + summaryNumber: '', + created: new Date('2021-01-11T09:59:23Z'), + lastModified: new Date('2025-04-08T02:55:19Z'), + }, + deleted: false, + oneshot: false, +} + +const series = [series1, series2] + export const seriesHandlers = [ + httpTyped.post('/api/v1/series/list', async ({ query, request, response }) => { + const body = await request.json() + + const selectedSeries = body.fullTextSearch + ? series.filter((it) => !!it.metadata.title.match(new RegExp(body.fullTextSearch!, 'i'))) + : series + + return response(200).json( + mockPage( + selectedSeries, + new PageRequest(Number(query.get('page')), Number(query.get('size')), query.getAll('sort')), + ), + ) + }), httpTyped.get('/api/v1/series/{seriesId}', ({ params, response }) => { if (params.seriesId === '404') return response(404).empty() return response(200).json( - Object.assign({}, series, { metadata: { title: `Series ${params.seriesId}` } }), + Object.assign({}, series1, { metadata: { title: `Series ${params.seriesId}` } }), ) }), + http.get('*/api/v1/series/*/thumbnail', async () => { + // Get an ArrayBuffer from reading the file from disk or fetching it. + const buffer = await fetch(mockThumbnailUrl).then((response) => response.arrayBuffer()) + + return HttpResponse.arrayBuffer(buffer, { + headers: { + 'content-type': 'image/jpg', + }, + }) + }), ] diff --git a/next-ui/src/mocks/api/handlers/transient-books.ts b/next-ui/src/mocks/api/handlers/transient-books.ts new file mode 100644 index 000000000..8a55f9c28 --- /dev/null +++ b/next-ui/src/mocks/api/handlers/transient-books.ts @@ -0,0 +1,1105 @@ +import { httpTyped } from '@/mocks/api/httpTyped' +import { response404NotFound } from '@/mocks/api/handlers' + +export const scanned = [ + { + id: '0N1BHX5RKQTR2', + name: 'Star Trek_ The Next Generation (1988)', + url: '/comics/Star Trek_ The Next Generation (1988).zip', + fileLastModified: new Date('2022-02-08T17:46:48'), + sizeBytes: 98957727, + size: '94.4 MiB', + status: 'UNKNOWN', + mediaType: '', + pages: [], + files: [], + comment: '', + }, + { + id: '0N1BHX5RKQTR7', + name: 'Atomic-man', + url: '/comics/Atomic-man.rar', + fileLastModified: new Date('2022-02-08T17:46:48'), + sizeBytes: 98957727, + size: '94.4 MiB', + status: 'UNKNOWN', + mediaType: '', + pages: [], + files: [], + comment: '', + }, + { + id: '0N1BHX5RVQQ8S', + name: 'Hulk #1', + url: '/comics/Hulk 001.cbz', + fileLastModified: new Date('2022-02-08T05:31:56'), + sizeBytes: 20852325, + size: '19.9 MiB', + status: 'UNKNOWN', + mediaType: '', + pages: [], + files: [], + comment: '', + }, + { + id: '0N1BHX5RVQQ8Z', + name: 'Hulk #2', + url: '/comics/Hulk 002.cbz', + fileLastModified: new Date('2022-02-08T05:31:56'), + sizeBytes: 20852325, + size: '19.9 MiB', + status: 'UNKNOWN', + mediaType: '', + pages: [], + files: [], + comment: '', + }, +] + +const analyzed1 = { + id: '0N1BHX5RKQTR2', + name: 'Star Trek_ The Next Generation (1988)', + url: '/comics/Star Trek_ The Next Generation (1988).zip', + fileLastModified: new Date('2022-02-08T17:46:48'), + sizeBytes: 98957727, + size: '94.4 MiB', + status: 'ERROR', + mediaType: 'application/zip', + pages: [], + files: [], + comment: 'ERR_1006', +} + +const analyzed2 = { + id: '0N1BHX5RKQTR7', + name: 'Atomic-man', + url: '/comics/Atomic-man.rar', + fileLastModified: new Date('2022-02-08T17:46:48'), + sizeBytes: 98957727, + size: '94.4 MiB', + status: 'UNSUPPORTED', + mediaType: 'application/rar', + pages: [], + files: [], + comment: 'ERR_1003', +} + +const analyzed3 = { + id: '0N1BHX5RVQQ8S', + name: 'Hulk #1', + url: '/comics/Hulk 001.cbz', + fileLastModified: new Date('2022-02-08T05:31:56'), + sizeBytes: 20852325, + size: '19.9 MiB', + status: 'READY', + mediaType: 'application/zip', + pages: [ + { + number: 1, + fileName: 'P00001.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1530, + sizeBytes: 34060, + size: '33.3 KiB', + }, + { + number: 2, + fileName: 'P00002.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1530, + sizeBytes: 322521, + size: '315 KiB', + }, + { + number: 3, + fileName: 'P00003.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1538, + sizeBytes: 256096, + size: '250.1 KiB', + }, + { + number: 4, + fileName: 'P00004.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1538, + sizeBytes: 402281, + size: '392.9 KiB', + }, + { + number: 5, + fileName: 'P00005.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1532, + sizeBytes: 392566, + size: '383.4 KiB', + }, + { + number: 6, + fileName: 'P00006.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1532, + sizeBytes: 412938, + size: '403.3 KiB', + }, + { + number: 7, + fileName: 'P00007.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1550, + sizeBytes: 414895, + size: '405.2 KiB', + }, + { + number: 8, + fileName: 'P00008.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1550, + sizeBytes: 307513, + size: '300.3 KiB', + }, + { + number: 9, + fileName: 'P00009.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1524, + sizeBytes: 401226, + size: '391.8 KiB', + }, + { + number: 10, + fileName: 'P00010.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1524, + sizeBytes: 403523, + size: '394.1 KiB', + }, + { + number: 11, + fileName: 'P00011.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1524, + sizeBytes: 380739, + size: '371.8 KiB', + }, + { + number: 12, + fileName: 'P00012.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1524, + sizeBytes: 395642, + size: '386.4 KiB', + }, + { + number: 13, + fileName: 'P00013.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1524, + sizeBytes: 401360, + size: '392 KiB', + }, + { + number: 14, + fileName: 'P00014.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1524, + sizeBytes: 322577, + size: '315 KiB', + }, + { + number: 15, + fileName: 'P00015.jpg', + mediaType: 'image/jpeg', + width: 994, + height: 1540, + sizeBytes: 381077, + size: '372.1 KiB', + }, + { + number: 16, + fileName: 'P00016.jpg', + mediaType: 'image/jpeg', + width: 994, + height: 1540, + sizeBytes: 463196, + size: '452.3 KiB', + }, + { + number: 17, + fileName: 'P00017.jpg', + mediaType: 'image/jpeg', + width: 994, + height: 1525, + sizeBytes: 421919, + size: '412 KiB', + }, + { + number: 18, + fileName: 'P00018.jpg', + mediaType: 'image/jpeg', + width: 994, + height: 1525, + sizeBytes: 411660, + size: '402 KiB', + }, + { + number: 19, + fileName: 'P00019.jpg', + mediaType: 'image/jpeg', + width: 991, + height: 1540, + sizeBytes: 447589, + size: '437.1 KiB', + }, + { + number: 20, + fileName: 'P00020.jpg', + mediaType: 'image/jpeg', + width: 991, + height: 1540, + sizeBytes: 462041, + size: '451.2 KiB', + }, + { + number: 21, + fileName: 'P00021.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1540, + sizeBytes: 406649, + size: '397.1 KiB', + }, + { + number: 22, + fileName: 'P00022.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1540, + sizeBytes: 416475, + size: '406.7 KiB', + }, + { + number: 23, + fileName: 'P00023.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1548, + sizeBytes: 453504, + size: '442.9 KiB', + }, + { + number: 24, + fileName: 'P00024.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1548, + sizeBytes: 403976, + size: '394.5 KiB', + }, + { + number: 25, + fileName: 'P00025.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1548, + sizeBytes: 391051, + size: '381.9 KiB', + }, + { + number: 26, + fileName: 'P00026.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1548, + sizeBytes: 406870, + size: '397.3 KiB', + }, + { + number: 27, + fileName: 'P00027.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 403579, + size: '394.1 KiB', + }, + { + number: 28, + fileName: 'P00028.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 449827, + size: '439.3 KiB', + }, + { + number: 29, + fileName: 'P00029.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 415734, + size: '406 KiB', + }, + { + number: 30, + fileName: 'P00030.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 417397, + size: '407.6 KiB', + }, + { + number: 31, + fileName: 'P00031.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 450572, + size: '440 KiB', + }, + { + number: 32, + fileName: 'P00032.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 450168, + size: '439.6 KiB', + }, + { + number: 33, + fileName: 'P00033.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1525, + sizeBytes: 430274, + size: '420.2 KiB', + }, + { + number: 34, + fileName: 'P00034.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1525, + sizeBytes: 416871, + size: '407.1 KiB', + }, + { + number: 35, + fileName: 'P00035.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 433753, + size: '423.6 KiB', + }, + { + number: 36, + fileName: 'P00036.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 421796, + size: '411.9 KiB', + }, + { + number: 37, + fileName: 'P00037.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 406567, + size: '397 KiB', + }, + { + number: 38, + fileName: 'P00038.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 423467, + size: '413.5 KiB', + }, + { + number: 39, + fileName: 'P00039.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1521, + sizeBytes: 436404, + size: '426.2 KiB', + }, + { + number: 40, + fileName: 'P00040.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1521, + sizeBytes: 475884, + size: '464.7 KiB', + }, + { + number: 41, + fileName: 'P00041.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1529, + sizeBytes: 408619, + size: '399 KiB', + }, + { + number: 42, + fileName: 'P00042.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1529, + sizeBytes: 413908, + size: '404.2 KiB', + }, + { + number: 43, + fileName: 'P00043.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1508, + sizeBytes: 403738, + size: '394.3 KiB', + }, + { + number: 44, + fileName: 'P00044.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1508, + sizeBytes: 451228, + size: '440.7 KiB', + }, + { + number: 45, + fileName: 'P00045.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1523, + sizeBytes: 391371, + size: '382.2 KiB', + }, + { + number: 46, + fileName: 'P00046.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1523, + sizeBytes: 440633, + size: '430.3 KiB', + }, + { + number: 47, + fileName: 'P00047.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1529, + sizeBytes: 400025, + size: '390.6 KiB', + }, + { + number: 48, + fileName: 'P00048.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1529, + sizeBytes: 436877, + size: '426.6 KiB', + }, + { + number: 49, + fileName: 'P00049.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1517, + sizeBytes: 416104, + size: '406.4 KiB', + }, + { + number: 50, + fileName: 'P00050.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1517, + sizeBytes: 412440, + size: '402.8 KiB', + }, + { + number: 51, + fileName: 'P00051.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1531, + sizeBytes: 406855, + size: '397.3 KiB', + }, + { + number: 52, + fileName: 'P00052.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1531, + sizeBytes: 398932, + size: '389.6 KiB', + }, + { + number: 53, + fileName: 'P00053.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1523, + sizeBytes: 33847, + size: '33.1 KiB', + }, + { + number: 54, + fileName: 'P00054.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1523, + sizeBytes: 438786, + size: '428.5 KiB', + }, + ], + files: ['ComicInfo.xml'], + comment: '', + seriesId: '63', + number: 1.0, +} + +const analyzed4 = { + id: '0N1BHX5RVQQ8Z', + name: 'Hulk #2', + url: '/comics/Hulk 002.cbz', + fileLastModified: new Date('2022-02-08T05:31:56'), + sizeBytes: 20852325, + size: '19.9 MiB', + status: 'READY', + mediaType: 'application/zip', + pages: [ + { + number: 1, + fileName: 'P00001.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1530, + sizeBytes: 34060, + size: '33.3 KiB', + }, + { + number: 2, + fileName: 'P00002.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1530, + sizeBytes: 322521, + size: '315 KiB', + }, + { + number: 3, + fileName: 'P00003.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1538, + sizeBytes: 256096, + size: '250.1 KiB', + }, + { + number: 4, + fileName: 'P00004.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1538, + sizeBytes: 402281, + size: '392.9 KiB', + }, + { + number: 5, + fileName: 'P00005.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1532, + sizeBytes: 392566, + size: '383.4 KiB', + }, + { + number: 6, + fileName: 'P00006.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1532, + sizeBytes: 412938, + size: '403.3 KiB', + }, + { + number: 7, + fileName: 'P00007.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1550, + sizeBytes: 414895, + size: '405.2 KiB', + }, + { + number: 8, + fileName: 'P00008.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1550, + sizeBytes: 307513, + size: '300.3 KiB', + }, + { + number: 9, + fileName: 'P00009.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1524, + sizeBytes: 401226, + size: '391.8 KiB', + }, + { + number: 10, + fileName: 'P00010.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1524, + sizeBytes: 403523, + size: '394.1 KiB', + }, + { + number: 11, + fileName: 'P00011.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1524, + sizeBytes: 380739, + size: '371.8 KiB', + }, + { + number: 12, + fileName: 'P00012.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1524, + sizeBytes: 395642, + size: '386.4 KiB', + }, + { + number: 13, + fileName: 'P00013.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1524, + sizeBytes: 401360, + size: '392 KiB', + }, + { + number: 14, + fileName: 'P00014.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1524, + sizeBytes: 322577, + size: '315 KiB', + }, + { + number: 15, + fileName: 'P00015.jpg', + mediaType: 'image/jpeg', + width: 994, + height: 1540, + sizeBytes: 381077, + size: '372.1 KiB', + }, + { + number: 16, + fileName: 'P00016.jpg', + mediaType: 'image/jpeg', + width: 994, + height: 1540, + sizeBytes: 463196, + size: '452.3 KiB', + }, + { + number: 17, + fileName: 'P00017.jpg', + mediaType: 'image/jpeg', + width: 994, + height: 1525, + sizeBytes: 421919, + size: '412 KiB', + }, + { + number: 18, + fileName: 'P00018.jpg', + mediaType: 'image/jpeg', + width: 994, + height: 1525, + sizeBytes: 411660, + size: '402 KiB', + }, + { + number: 19, + fileName: 'P00019.jpg', + mediaType: 'image/jpeg', + width: 991, + height: 1540, + sizeBytes: 447589, + size: '437.1 KiB', + }, + { + number: 20, + fileName: 'P00020.jpg', + mediaType: 'image/jpeg', + width: 991, + height: 1540, + sizeBytes: 462041, + size: '451.2 KiB', + }, + { + number: 21, + fileName: 'P00021.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1540, + sizeBytes: 406649, + size: '397.1 KiB', + }, + { + number: 22, + fileName: 'P00022.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1540, + sizeBytes: 416475, + size: '406.7 KiB', + }, + { + number: 23, + fileName: 'P00023.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1548, + sizeBytes: 453504, + size: '442.9 KiB', + }, + { + number: 24, + fileName: 'P00024.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1548, + sizeBytes: 403976, + size: '394.5 KiB', + }, + { + number: 25, + fileName: 'P00025.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1548, + sizeBytes: 391051, + size: '381.9 KiB', + }, + { + number: 26, + fileName: 'P00026.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1548, + sizeBytes: 406870, + size: '397.3 KiB', + }, + { + number: 27, + fileName: 'P00027.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 403579, + size: '394.1 KiB', + }, + { + number: 28, + fileName: 'P00028.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 449827, + size: '439.3 KiB', + }, + { + number: 29, + fileName: 'P00029.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 415734, + size: '406 KiB', + }, + { + number: 30, + fileName: 'P00030.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 417397, + size: '407.6 KiB', + }, + { + number: 31, + fileName: 'P00031.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 450572, + size: '440 KiB', + }, + { + number: 32, + fileName: 'P00032.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 450168, + size: '439.6 KiB', + }, + { + number: 33, + fileName: 'P00033.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1525, + sizeBytes: 430274, + size: '420.2 KiB', + }, + { + number: 34, + fileName: 'P00034.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1525, + sizeBytes: 416871, + size: '407.1 KiB', + }, + { + number: 35, + fileName: 'P00035.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 433753, + size: '423.6 KiB', + }, + { + number: 36, + fileName: 'P00036.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 421796, + size: '411.9 KiB', + }, + { + number: 37, + fileName: 'P00037.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 406567, + size: '397 KiB', + }, + { + number: 38, + fileName: 'P00038.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1537, + sizeBytes: 423467, + size: '413.5 KiB', + }, + { + number: 39, + fileName: 'P00039.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1521, + sizeBytes: 436404, + size: '426.2 KiB', + }, + { + number: 40, + fileName: 'P00040.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1521, + sizeBytes: 475884, + size: '464.7 KiB', + }, + { + number: 41, + fileName: 'P00041.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1529, + sizeBytes: 408619, + size: '399 KiB', + }, + { + number: 42, + fileName: 'P00042.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1529, + sizeBytes: 413908, + size: '404.2 KiB', + }, + { + number: 43, + fileName: 'P00043.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1508, + sizeBytes: 403738, + size: '394.3 KiB', + }, + { + number: 44, + fileName: 'P00044.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1508, + sizeBytes: 451228, + size: '440.7 KiB', + }, + { + number: 45, + fileName: 'P00045.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1523, + sizeBytes: 391371, + size: '382.2 KiB', + }, + { + number: 46, + fileName: 'P00046.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1523, + sizeBytes: 440633, + size: '430.3 KiB', + }, + { + number: 47, + fileName: 'P00047.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1529, + sizeBytes: 400025, + size: '390.6 KiB', + }, + { + number: 48, + fileName: 'P00048.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1529, + sizeBytes: 436877, + size: '426.6 KiB', + }, + { + number: 49, + fileName: 'P00049.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1517, + sizeBytes: 416104, + size: '406.4 KiB', + }, + { + number: 50, + fileName: 'P00050.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1517, + sizeBytes: 412440, + size: '402.8 KiB', + }, + { + number: 51, + fileName: 'P00051.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1531, + sizeBytes: 406855, + size: '397.3 KiB', + }, + { + number: 52, + fileName: 'P00052.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1531, + sizeBytes: 398932, + size: '389.6 KiB', + }, + { + number: 53, + fileName: 'P00053.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1523, + sizeBytes: 33847, + size: '33.1 KiB', + }, + { + number: 54, + fileName: 'P00054.jpg', + mediaType: 'image/jpeg', + width: 1000, + height: 1523, + sizeBytes: 438786, + size: '428.5 KiB', + }, + ], + files: ['ComicInfo.xml'], + comment: '', +} + +export const analyzed = [analyzed1, analyzed2, analyzed3, analyzed4] + +export const transientBooksHandlers = [ + httpTyped.post('/api/v1/transient-books', async ({ request, response }) => { + const path = (await request.json()).path + if (path === '/comics') return response(200).json(scanned) + return response(200).json([]) + }), + httpTyped.post('/api/v1/transient-books/{id}/analyze', ({ params, response }) => { + const data = analyzed.find((it) => it.id === params.id) + if (data) return response(200).json(data) + + return response.untyped(response404NotFound()) + }), +] diff --git a/next-ui/src/mocks/api/pageable.ts b/next-ui/src/mocks/api/pageable.ts index b5f6f4257..f30f304bf 100644 --- a/next-ui/src/mocks/api/pageable.ts +++ b/next-ui/src/mocks/api/pageable.ts @@ -23,7 +23,7 @@ export function mockPage(data: T[], pageRequest: PageRequest) { paged: !unpaged, }, last: false, - totalPages: data.length / size, + totalPages: Math.ceil(data.length / size), totalElements: data.length, first: false, size: size, diff --git a/next-ui/src/pages/import/books.mdx b/next-ui/src/pages/import/books.mdx new file mode 100644 index 000000000..1c42c1b34 --- /dev/null +++ b/next-ui/src/pages/import/books.mdx @@ -0,0 +1,13 @@ +import { Canvas, Meta } from '@storybook/addon-docs/blocks'; + +import * as Stories from './books.stories'; + + + +# Import Books + +Book import works in 2 steps: +1. Browse for or input the import directory. +2. Scanned books are shown in the table, allowing to fine-tune the import. + + diff --git a/next-ui/src/pages/import/books.stories.ts b/next-ui/src/pages/import/books.stories.ts new file mode 100644 index 000000000..23c6ccc4c --- /dev/null +++ b/next-ui/src/pages/import/books.stories.ts @@ -0,0 +1,35 @@ +import type { Meta, StoryObj } from '@storybook/vue3-vite' + +import ImportBooks from './books.vue' +import DialogConfirmEdit from '@/fragments/fragment/dialog/ConfirmEdit.vue' +import { delay, http } from 'msw' + +const meta = { + component: ImportBooks, + render: (args: object) => ({ + components: { ImportBooks, DialogConfirmEdit }, + setup() { + return { args } + }, + template: '', + }), + parameters: { + // More on how to position stories at: https://storybook.js.org/docs/configure/story-layout + }, + args: {}, +} satisfies Meta + +export default meta +type Story = StoryObj + +export const Default: Story = { + args: {}, +} + +export const Loading: Story = { + parameters: { + msw: { + handlers: [http.all('*', async () => await delay(2_000))], + }, + }, +} diff --git a/next-ui/src/pages/import/books.vue b/next-ui/src/pages/import/books.vue index c432a3a5f..fcdfb8a6e 100644 --- a/next-ui/src/pages/import/books.vue +++ b/next-ui/src/pages/import/books.vue @@ -1,9 +1,33 @@ diff --git a/next-ui/src/stores/app.ts b/next-ui/src/stores/app.ts index 49623c06f..683ecfb1e 100644 --- a/next-ui/src/stores/app.ts +++ b/next-ui/src/stores/app.ts @@ -7,6 +7,7 @@ export const useAppStore = defineStore('app', { drawer: !useDisplay().mobile.value.valueOf(), theme: 'system', rememberMe: false, + importBooksPath: '', }), persist: true, }) diff --git a/next-ui/src/types/MediaStatus.ts b/next-ui/src/types/MediaStatus.ts new file mode 100644 index 000000000..000367161 --- /dev/null +++ b/next-ui/src/types/MediaStatus.ts @@ -0,0 +1,37 @@ +import { defineMessages } from 'vue-intl' + +export enum MediaStatus { + UNKNOWN = 'UNKNOWN', + ERROR = 'ERROR', + READY = 'READY', + UNSUPPORTED = 'UNSUPPORTED', + OUTDATED = 'OUTDATED', +} + +export const mediaStatusMessages = defineMessages({ + [MediaStatus.UNKNOWN]: { + description: 'Media status: unknown', + defaultMessage: 'Unknown', + id: 'vBi53Y', + }, + [MediaStatus.ERROR]: { + description: 'Media status: error', + defaultMessage: 'Error', + id: 'G49aNP', + }, + [MediaStatus.READY]: { + description: 'Media status: ready', + defaultMessage: 'Ready', + id: 'k0XIsB', + }, + [MediaStatus.UNSUPPORTED]: { + description: 'Media status: unsupported', + defaultMessage: 'Unsupported', + id: '7iAvhC', + }, + [MediaStatus.OUTDATED]: { + description: 'Media status: outdated', + defaultMessage: 'Outdated', + id: 'xba3Ob', + }, +}) diff --git a/next-ui/src/utils/i18n/enum/error-codes.ts b/next-ui/src/utils/i18n/enum/error-codes.ts new file mode 100644 index 000000000..2838b23eb --- /dev/null +++ b/next-ui/src/utils/i18n/enum/error-codes.ts @@ -0,0 +1,179 @@ +import { defineMessage, type MessageDescriptor } from 'vue-intl' + +export const errorCodeMessages: Record = { + ERR_1000: defineMessage({ + description: 'Error code: ERR_1000', + defaultMessage: 'File could not be accessed during analysis', + id: 'app.error.ERR_1000', + }), + ERR_1001: defineMessage({ + description: 'Error code: ERR_1001', + defaultMessage: 'Media type is not supported', + id: 'app.error.ERR_1001', + }), + ERR_1002: defineMessage({ + description: 'Error code: ERR_1002', + defaultMessage: 'Encrypted RAR archives are not supported', + id: 'app.error.ERR_1002', + }), + ERR_1003: defineMessage({ + description: 'Error code: ERR_1003', + defaultMessage: 'Solid RAR archives are not supported', + id: 'app.error.ERR_1003', + }), + ERR_1004: defineMessage({ + description: 'Error code: ERR_1004', + defaultMessage: 'Multi-Volume RAR archives are not supported', + id: 'app.error.ERR_1004', + }), + ERR_1005: defineMessage({ + description: 'Error code: ERR_1005', + defaultMessage: 'Unknown error while analyzing book', + id: 'app.error.ERR_1005', + }), + ERR_1006: defineMessage({ + description: 'Error code: ERR_1006', + defaultMessage: 'Book does not contain any page', + id: 'app.error.ERR_1006', + }), + ERR_1007: defineMessage({ + description: 'Error code: ERR_1007', + defaultMessage: 'Some entries could not be analyzed', + id: 'app.error.ERR_1007', + }), + ERR_1008: defineMessage({ + description: 'Error code: ERR_1008', + defaultMessage: "Unknown error while getting book's entries", + id: 'app.error.ERR_1008', + }), + ERR_1009: defineMessage({ + description: 'Error code: ERR_1009', + defaultMessage: 'A read list with that name already exists', + id: 'app.error.ERR_1009', + }), + ERR_1015: defineMessage({ + description: 'Error code: ERR_1015', + defaultMessage: 'Error while deserializing ComicRack CBL', + id: 'app.error.ERR_1015', + }), + ERR_1016: defineMessage({ + description: 'Error code: ERR_1016', + defaultMessage: 'Directory not accessible or not a directory', + id: 'app.error.ERR_1016', + }), + ERR_1017: defineMessage({ + description: 'Error code: ERR_1017', + defaultMessage: 'Cannot scan folder that is part of an existing library', + id: 'app.error.ERR_1017', + }), + ERR_1018: defineMessage({ + description: 'Error code: ERR_1018', + defaultMessage: 'File not found', + id: 'app.error.ERR_1018', + }), + ERR_1019: defineMessage({ + description: 'Error code: ERR_1019', + defaultMessage: 'Cannot import file that is part of an existing library', + id: 'app.error.ERR_1019', + }), + ERR_1020: defineMessage({ + description: 'Error code: ERR_1020', + defaultMessage: 'Book to upgrade does not belong to provided series', + id: 'app.error.ERR_1020', + }), + ERR_1021: defineMessage({ + description: 'Error code: ERR_1021', + defaultMessage: 'Destination file already exists', + id: 'app.error.ERR_1021', + }), + ERR_1022: defineMessage({ + description: 'Error code: ERR_1022', + defaultMessage: 'Newly imported book could not be scanned', + id: 'app.error.ERR_1022', + }), + ERR_1023: defineMessage({ + description: 'Error code: ERR_1023', + defaultMessage: 'Book already present in ReadingList', + id: 'app.error.ERR_1023', + }), + ERR_1024: defineMessage({ + description: 'Error code: ERR_1024', + defaultMessage: 'OAuth2 login error: no email attribute', + id: 'app.error.ERR_1024', + }), + ERR_1025: defineMessage({ + description: 'Error code: ERR_1025', + defaultMessage: 'OAuth2 login error: no local user exist with that email', + id: 'app.error.ERR_1025', + }), + ERR_1026: defineMessage({ + description: 'Error code: ERR_1026', + defaultMessage: 'OpenID Connect login error: email not verified', + id: 'app.error.ERR_1026', + }), + ERR_1027: defineMessage({ + description: 'Error code: ERR_1027', + defaultMessage: 'OpenID Connect login error: no email_verified attribute', + id: 'app.error.ERR_1027', + }), + ERR_1028: defineMessage({ + description: 'Error code: ERR_1028', + defaultMessage: 'OpenID Connect login error: no email attribute', + id: 'app.error.ERR_1028', + }), + ERR_1029: defineMessage({ + description: 'Error code: ERR_1029', + defaultMessage: 'ComicRack CBL does not contain any Book element', + id: 'app.error.ERR_1029', + }), + ERR_1030: defineMessage({ + description: 'Error code: ERR_1030', + defaultMessage: 'ComicRack CBL has no Name element', + id: 'app.error.ERR_1030', + }), + ERR_1031: defineMessage({ + description: 'Error code: ERR_1031', + defaultMessage: 'ComicRack CBL Book is missing series or number', + id: 'app.error.ERR_1031', + }), + ERR_1032: defineMessage({ + description: 'Error code: ERR_1032', + defaultMessage: 'EPUB file has wrong media type', + id: 'app.error.ERR_1032', + }), + ERR_1033: defineMessage({ + description: 'Error code: ERR_1033', + defaultMessage: 'Some entries are missing', + id: 'app.error.ERR_1033', + }), + ERR_1034: defineMessage({ + description: 'Error code: ERR_1034', + defaultMessage: 'An API key with that comment already exists', + id: 'app.error.ERR_1034', + }), + ERR_1035: defineMessage({ + description: 'Error code: ERR_1035', + defaultMessage: 'Error while getting EPUB TOC', + id: 'app.error.ERR_1035', + }), + ERR_1036: defineMessage({ + description: 'Error code: ERR_1036', + defaultMessage: 'Error while getting EPUB Landmarks', + id: 'app.error.ERR_1036', + }), + ERR_1037: defineMessage({ + description: 'Error code: ERR_1037', + defaultMessage: 'Error while getting EPUB page list', + id: 'app.error.ERR_1037', + }), + ERR_1038: defineMessage({ + description: 'Error code: ERR_1038', + defaultMessage: 'Error while getting EPUB divina pages', + id: 'app.error.ERR_1038', + }), + ERR_1039: defineMessage({ + description: 'Error code: ERR_1039', + defaultMessage: 'Error while getting EPUB positions', + id: 'app.error.ERR_1039', + }), +}