From acfbaabad1cd45c1534d589c53de59dc2154907d Mon Sep 17 00:00:00 2001 From: Florian Burgener <florian.burgener@etu.hesge.ch> Date: Tue, 24 May 2022 16:00:20 +0200 Subject: [PATCH] Start implementing the Directory --- _main.c | 32 +++++++++++++++++++++++++++++++ src/Directory.c | 43 ++++++++++++++++++++++++++++++++++++++++++ src/Directory.h | 16 ++++++++++++++++ src/Directory.o | Bin 0 -> 17272 bytes src/DirectoryRecord.c | 28 +++++++++++++++++++++++++++ src/DirectoryRecord.h | 17 +++++++++++++++++ src/DirectoryRecord.o | Bin 0 -> 17416 bytes src/bptree.h | 2 -- src/main.c | 27 +++++++++----------------- src/main.o | Bin 17224 -> 14248 bytes src/program | Bin 103096 -> 121624 bytes 11 files changed, 145 insertions(+), 20 deletions(-) create mode 100644 _main.c create mode 100644 src/Directory.c create mode 100644 src/Directory.h create mode 100644 src/Directory.o create mode 100644 src/DirectoryRecord.c create mode 100644 src/DirectoryRecord.h create mode 100644 src/DirectoryRecord.o diff --git a/_main.c b/_main.c new file mode 100644 index 0000000..9f584fe --- /dev/null +++ b/_main.c @@ -0,0 +1,32 @@ +#include <assert.h> +// Warning : stdbool +#include <stdbool.h> +#include <stdio.h> +#include <stdlib.h> + +#include "bptree.h" +#include "sorted_array.h" + +int main() { + BPTreeNode *root = bptree_init(2); + int keys_length = 40; + uint64_t keys[] = {8, 12, 11, 47, 22, 95, 86, 40, 33, 78, 28, 5, 75, 88, 21, 56, 82, 51, 93, 66, 48, 70, 57, 65, 35, 4, 60, 41, 49, 55, 68, 72, 23, 31, 30, 42, 18, 87, 24, 58}; + array_print(keys_length, keys); + + for (int i = 0; i < keys_length; i++) { + bptree_insert(root, keys[i], keys[i] * 1000); + } + + bptree_print(root, 0); + + for (int i = 0; i < keys_length; i++) { + uint64_t data; + bool found = bptree_search(root, keys[i], &data); + + assert(found == true); + assert(data == keys[i] * 1000); + } + + bptree_destroy(&root); + return EXIT_SUCCESS; +} diff --git a/src/Directory.c b/src/Directory.c new file mode 100644 index 0000000..796581f --- /dev/null +++ b/src/Directory.c @@ -0,0 +1,43 @@ +#include "Directory.h" + +#include <stdio.h> +#include <stdlib.h> + +#include "DirectoryRecord.h" + +Directory *Directory_init() { + Directory *directory = (Directory *)malloc(sizeof(Directory)); + directory->records_length = 0; + // WARNING + directory->records = (DirectoryRecord **)malloc(sizeof(Directory *) * 1000); + return directory; +} + +void Directory_destroy(Directory **directory) { + for (int i = 0; i < (*directory)->records_length; i++) { + DirectoryRecord_destroy(&(*directory)->records[i]); + } + + free((*directory)->records); + free(*directory); + *directory = NULL; +} + +void Directory_print(Directory *directory) { + printf("========================\n"); + + for (int i = 0; i < directory->records_length; i++) { + DirectoryRecord_print(directory->records[i]); + + if (i < directory->records_length - 1) { + printf("------------------------\n"); + } + } + + printf("========================\n"); +} + +void Directory_insert(Directory *directory, DirectoryRecord *record) { + directory->records[directory->records_length] = record; + directory->records_length += 1; +} diff --git a/src/Directory.h b/src/Directory.h new file mode 100644 index 0000000..6063a5f --- /dev/null +++ b/src/Directory.h @@ -0,0 +1,16 @@ +#ifndef DIRECTORY_H +#define DIRECTORY_H + +#include "DirectoryRecord.h" + +typedef struct Directory { + int records_length; + DirectoryRecord **records; +} Directory; + +Directory *Directory_init(); +void Directory_destroy(Directory **directory); +void Directory_print(Directory *directory); +void Directory_insert(Directory *directory, DirectoryRecord *record); + +#endif diff --git a/src/Directory.o b/src/Directory.o new file mode 100644 index 0000000000000000000000000000000000000000..44cdaf0a743353597ff980dca51462dc4e9396e4 GIT binary patch literal 17272 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 Zmb3~g6R_!509C9E3=Cmt0glFH001IyLVf@M literal 0 HcmV?d00001 diff --git a/src/DirectoryRecord.c b/src/DirectoryRecord.c new file mode 100644 index 0000000..94fb4bb --- /dev/null +++ b/src/DirectoryRecord.c @@ -0,0 +1,28 @@ +#include "DirectoryRecord.h" + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +DirectoryRecord *DirectoryRecord_init(char phone_number[11], char name[21], char surname[21], int birth_date_year, int birth_date_month, int birth_date_day) { + DirectoryRecord *record = (DirectoryRecord *)malloc(sizeof(DirectoryRecord)); + strcpy(record->phone_number, phone_number); + strcpy(record->name, name); + strcpy(record->surname, surname); + record->birth_date_year = birth_date_year; + record->birth_date_month = birth_date_month; + record->birth_date_day = birth_date_day; + return record; +} + +void DirectoryRecord_destroy(DirectoryRecord **record) { + free(*record); + *record = NULL; +} + +void DirectoryRecord_print(DirectoryRecord *record) { + printf("Phone Number: %s\n", record->phone_number); + printf("Name: %s\n", record->name); + printf("Surname: %s\n", record->surname); + printf("Birth Date: %d-%.2d-%.2d\n", record->birth_date_year, record->birth_date_month, record->birth_date_day); +} diff --git a/src/DirectoryRecord.h b/src/DirectoryRecord.h new file mode 100644 index 0000000..a398b96 --- /dev/null +++ b/src/DirectoryRecord.h @@ -0,0 +1,17 @@ +#ifndef DIRECTORY_RECORD_H +#define DIRECTORY_RECORD_H + +typedef struct DirectoryRecord { + char phone_number[11]; + char name[21]; + char surname[21]; + int birth_date_year; + int birth_date_month; + int birth_date_day; +} DirectoryRecord; + +DirectoryRecord *DirectoryRecord_init(char phone_number[11], char name[21], char surname[21], int birth_date_year, int birth_date_month, int birth_date_day); +void DirectoryRecord_destroy(DirectoryRecord **record); +void DirectoryRecord_print(DirectoryRecord *record); + +#endif diff --git a/src/DirectoryRecord.o b/src/DirectoryRecord.o new file mode 100644 index 0000000000000000000000000000000000000000..86700a2bced8ec1297755924790fa9a47b1b5744 GIT binary patch literal 17416 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 literal 0 HcmV?d00001 diff --git a/src/bptree.h b/src/bptree.h index bff78b3..05fdd19 100644 --- a/src/bptree.h +++ b/src/bptree.h @@ -21,8 +21,6 @@ void bptree_destroy(BPTreeNode **root); void bptree_print(BPTreeNode *root, int depth); bool bptree_search(BPTreeNode *root, uint64_t key, uint64_t *data); -// ... - // Insertion void bptree_insert(BPTreeNode *root, uint64_t key, uint64_t data); diff --git a/src/main.c b/src/main.c index 9f584fe..ee5ea62 100644 --- a/src/main.c +++ b/src/main.c @@ -4,29 +4,20 @@ #include <stdio.h> #include <stdlib.h> +#include "Directory.h" +#include "DirectoryRecord.h" #include "bptree.h" #include "sorted_array.h" int main() { - BPTreeNode *root = bptree_init(2); - int keys_length = 40; - uint64_t keys[] = {8, 12, 11, 47, 22, 95, 86, 40, 33, 78, 28, 5, 75, 88, 21, 56, 82, 51, 93, 66, 48, 70, 57, 65, 35, 4, 60, 41, 49, 55, 68, 72, 23, 31, 30, 42, 18, 87, 24, 58}; - array_print(keys_length, keys); + BPTreeNode *index = bptree_init(2); - for (int i = 0; i < keys_length; i++) { - bptree_insert(root, keys[i], keys[i] * 1000); - } + Directory *directory = Directory_init(); + Directory_insert(directory, DirectoryRecord_init("0794592180", "Florian", "Burgener", 2000, 10, 03)); + Directory_insert(directory, DirectoryRecord_init("0799494969", "Daisy", "Luna", 1995, 05, 31)); + Directory_print(directory); - bptree_print(root, 0); - - for (int i = 0; i < keys_length; i++) { - uint64_t data; - bool found = bptree_search(root, keys[i], &data); - - assert(found == true); - assert(data == keys[i] * 1000); - } - - bptree_destroy(&root); + Directory_destroy(&directory); + bptree_destroy(&index); return EXIT_SUCCESS; } diff --git a/src/main.o b/src/main.o index 48a3065119e6f7e4a258d9e3f7cababf73859fc3..ca2341be399e9bed35f53bf070ec7056618708e1 100644 GIT binary patch literal 14248 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 F4*;WNrbPe% literal 17224 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 WVl*yzWf(U70Z{iBqiI0nG5`R`<_-4% diff --git a/src/program b/src/program index 9e4a14ec81fca974afb54dcc39df11dba1aa35df..c0146df79aba0eb288537ce614d67e08d5b8afbd 100644 GIT binary patch delta 38454 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 A`2YX_ delta 27636 zcmbQSjeW;bwh0nK7sMIBzyVA$F#PD4sI^SVf*-<#(F_6*J|hDI11pFrF#X^aMzQ*< zRv-=o1B^yi#{!ZH01*rf3}|!#7epLJBkN;hU|^UL1CgJRgG#ReTh73+0YWP?z%(*3 zFff2LzJO|c0oC{-XYwk>bBX~W5OdIJ7LbP+7#LV4&t&pf#ARy+GemdBWKQOI5fz)# z8*y8X>LeH~%jY!OyGZns#oEa=%o>uC3=9k)^FZ!sVQd6Bi2)=gJ$Wy)HsiX<j4a}l zAFxU=egm->=T1&!5ua?pBEh(A@<vt(u-Hei*aQ{{#;0I@F^JFj56tcWv!{XC($fzf zVHBUt!79P13KE#yz$(GG5v<_GWJOkk$s1Yq896~REIdpM4AUR(V-%ju&&Da`Pz3P_ zIBpmi7=jrX7=#!Y7#0XkHe$=2KJOeO`{d(n3e)GEVHBVIl1+rAptPiT+8IXa$>Qvm zljpNZP0nB!V@WGYO`W`-U37ZF8Ag`L)7b6wjTz$O6N?k`;xiKSQgTw`^YY`1QcFsU z@?hdcsRj8(CGo{2`9-Pmd6TcQ+j1us7pE4L#HS@@=1i91@R(lG#wb`13Tbe_F+fO= zb778UfQm6PFf*KEghxF?iDV`x0|N_#E)zsdBr}tjfq|L963Q=?0?9KmI75wG08JYl zAj26L7#xHlj1@Ty^<WlEq5vwf0Zl^#G|%in6W<^K*3NJMT^y?Z1e*8*P|!0lFkFC( zL+oc@fLeS5E&(xE0V@6gO}qeVF-HMJ9n1qTz5<%~0%&%$KofsZ50!90lXwOdPe2n- zfQnb3iGPKPH=v2b%vpdYt^ieEzXMI;H&o&PnmEj$2Wa97fshdRfhG<!hoKN64-27w zsCos6cs&D5;sI2`0V07A2W1%s28IYUaRq1zlYk};Gp7Je9BLs$1B!S(1A{^k#Dz0Z zBp4V>pcX7Z6Ng!F0EhSuba7~iK0p@-c^I7jpk)LsBod$wl0Xx;f;vb6O&sPRSlJCK z5~U%20+ToL!4$Z-h7{uv{)2o5Nd5zrpV0aTEb{_M1GF9ji+?~8hvqP__zxs;Q27fM z1m$z6LqV2G!2}r?7!085*+KS$Tnm%4KuAD~9*B$sk~pZqf`~FOcp!-*3M~eP03>mc z=V0n1ki^-+g5dCHU`RlcfJFmHJ_AXd6C?n|1xVu1niVWlfh5ii7J(2ANa8#YAu!od zk0ikh7J?8Hki_{QLSS+RlDHsP1VSu85{DLYV2Kq-;?S}TEWQCMo(c*E5wH-1*a4LQ zi6bYX14!bc5T#)91d_NISOh{`KoXajY?ym_k^+x>JOhJA>wyxc{}()(k8m6YtNd^J zD~^HT(|^_9ahtUjEE(%FK<@nXa^t`M|0jIrm;03ga^9zx3t{|E|5bD27#R5FT^JZZ z@}K^zPK`z7_oDGz(fGA!{8A)-{V$LONCF^!DjGi)jUS4}_eJBoqVa9f_@)Scy&T9w zU4#IbuZqT(MdOR2@p;kstZ4kdF{mN-70$2cm;1F3l*v4LZ4F`>7+&7~_y2#I9>07G zIJ&@5vJaGLJ$h{~faG^$kq2c)k6v4WI0lB7voYm8n%{7|2>$>7|BJl;|Np~mI~2pf z;L)segyUr=NDItHP#l9bD1$WEfiys^4~m@}qbyPH815M680r`j8tl>dMuUlg!K2qj zMZu%fMTG-INOZH7#W66n9^h|nW@cdU=`K;>*bi!%?ABlasb$?@%fR5->BiyF%ewae z|Np+d>p+E%XQ!KhPv-}ZgD;ppkF#y=+Uf{0OyGC}L&N|2j~_pNJl??4@V}nnQ~jq; z#~V1nOc2YY;eY+-&!0aZZ?J%}Qarj@RKa$2wx~!jF)$b&c(GNJfx)x4PQjz|m&d_Z z%niFhrZVui-UT_o+ed}Nv$Iv<-~azUy@d%-SMYC}08-@9+c=+*fx)BmVDkfZkAp9n z>-o2Jf+Q>sI`Gds)^d`6>H&wAWBjegObiSym-we1<ezt-<sg5nGRWv&(=)aV3_hLT zJvwjtc7FftvDByY+kTMaUTo%IVDRV$1zK;%0+0>8844bqJSzP14WO9!>HGl-i-sK_ zyBPReV;C72JiE<3I_qD19DL2}k$LR}GXq1zZm4t`Sb8tW51!4(IbLitU|{gEwoxhF z0aqf$1Tq1v#J6{^!@vLk4Zrzx{(f;<n}GpjB-CQx&M(KB!KQj1e8cS6utx>V;cxv7 zioVVl^`6~kC@#Ch05{jC^Vf^LIt&ag2l!j=GB7Y8>0Sp?mC1(U=t&?k>sF9c_**YB zFfc$Y{^8ktjKjy;M1{Y#;Q#;s9-Z%BRA_<%%SVO7!?NB-MS{QeD#$V2E-C^ZkQ4$6 zGH9{@$sBJ0r3;XtM>ix9q<9!ZQU!l2A1JgNkARY{;eqH_#~8<0$2iCM!#<t=Unu<k z{~tt4fa&iq1b#ytzyakm{H})x{P^|%|BJ;S*<M~9TLy+*pc>bs*Hpn8l*nx(tr-|z zr2PK>|3y7S4F^aKsD$_EHT`1+R#OU6<M8|c|9uXO;6(Cb@~{8@J&rT-nLTg?B@F?O zU0<OfjX$4N)fSWv>n9jA{I7>3caS8%AUKQg3pNNe{IBO1Y*1+UU+>Y~_=Ayw;TQwM z%fJ8r|9|oN*Z=?fA22d7ybuIAr}cmbzY8eofimsOgg^iPznBTKy7T=D#b5s+^#HgG z5C-``59CB>5wj?g6I5y(;dtr!YjUcZW7st#kY9M?!IbTa-~a#r7kw1Y!0=^)N3X4A z6iAZQ2t--_C=vDOX5AMKsgyYXKY%8<!%*6z*On8cu-B9+YVsd7X{M>+lO@$<wN6Gd zFff#Ahk7*I7KMW%xASQUk4Lv{SvUj3i<dwC|9_G4|NsAEtP3M2C#b7TKB5`H)bL}n zoK`TC_K(TMTFbbazk{Oe{EOe;H!Ew)GRnt%1I6+67hk~i@fSYd{{MfG4(6PHasS)o zc%8T60bfCC&cAp8rjNgH`1=3<i|DVDlXbU9E&T$KlZDEag89c^@P3_as29hj3*|2T zGI^$+D$~2qlMm=AGFDH1q-UT}_2vJ6k6zPeBL;^3pi<TFz>D-R|NpyKzOLEjXnCj3 z#UuH!Pp_`>WGj6WN4YQm|2taVslN!Sy*+wu=NU3EAd>6L_n-g&hX$SD?bp*m+2qeB zkWb&g`0@!P<uEy4cZF2yCx~nBg6ZQgOriAIPhi)+{Romi{v!3$<eLVQg#y6b^Dj<- z>EkaHK5nivG+<<s`#5=nQ3KPQ50j0I!<bw?Oztv{V|wy_^DAS1Cics3|Nr;wJT^Je zNO-canH5w0+sXcB;Y@08C$BJzXFB?3Gp9K-6Vry5lld&8m{ML%&a#YWVtzIGv}GLA z;+K=Pt&*7RUvBQV;uolwyYc_OM|X`%z>5+v%SPn|_l^JmU!>gtx$^moI1uM0NUHPw zi$E}a|HaGeAj$tP96|i<Jt`dx3=A(!pd3(P`a&J5T^=lGqw-?g_5c50EClg7@4r}i z9TaN!Uo5;1&D%3UvMo^A9<b@(UpxWR|6kkzsqU^(k$7<l%5r#d0;GW%<TgJLu@fZG zdHzKpNO%p1SPm7j2XSVBh^bH!T`>LrMJq_Ko&m(`u2J!L@$K6G|1UmXg9QiJfbJR< zju&@95;s5+o$p_K0MTIKV<1-N{TKH@ba#!4!HX>*h3mmwXqYSliOdCyfJ~Zv?f-vJ z^(^7j`TfN*kX(HuSkgx2#SEyN21qU&B$o!3+M@yv&`2=HM&(5Tm;tiR4W!5s%-y51 z0vrV(5q+=-$U0Rp%SPpe4YJw%Fj2K@|Nqy6oCCJ<=hgrJUwpX=@xH-}S64w%eE!8F zu!xPy3y?f0p%}b44^nvwEDlOH2SD82aPCDAcMX(l@L~~|Wux+9Czt_pcRxr)7nr-I z9-MYSIjIUHS_-nYyF>*XKph~FWUxArwn!*T<Apzz#qq)w%940t4N`0d<#N2xfwPpL zEQuEqa26kwrSYPk1<K@j@#_l2?*T79Kv^0uo`G1M=U?2r0t$`eFQ$Q2+o-%ad*%QC z7bif(VX%_>FK&bA?iv+^7Z*XS&hsx;g6M7=l@|v<jL!2fEI_(D&%ZE$(i&I)*Z+Uf z43(7z`9KUR1#;mFO^^u4fiL2rYQBSP3<5jm`3o;7?F5y)1){-O*#OQ`gR&%E$beO! ze<1=D;dsGy<v*z20%a@)s9?a0Z<isV!13bE<^TU*JiiP{vEU?f3ods7S@<wW;XaT^ z=lK`gplS?WtbwvPUMvDBm<#7lz6>fW!Cf0i{*ch%&fohjK&f}lmH+=I7g~x<w(`$l z(z-HviN6oioy(Iy`Fk_<U!H6qpsKOs(*OT2HiL+DAi@%C=kpf}L7Y7xVmpY~bZK%= zz)hy|i<8p>4VYXnPM#U4Q!jq;|9@!1tkl7yyO!YvE3!zm$8lFs<AovCG3M}#Qy2dK ze{u8zsE~U9VlId?14K*)5q(hMHV~%~MASe<L@q)!<Usi;7eM}W0DF`R(uVix)jdDi zFGzz)?Be8#pvQ`d=l}nI5py1txZb}A0de%foc}M>K^&#?lWT$%nda+Ho*yjAxMK6x z;3Z6o%x6K$kH3gM1EGV@{Qv*L@67-I`#~e_FIvt_t_m}Civ`P`fARG6|Nk!@oQ5d9 z0jAHtxBwD74dxtwaTrX02b=d|8<=zc#W|3Qm8U0v4bxzf*O@FIuFa@2**iR!N#xAt zUE$_TOs`K&{v5fge*cO8|6f#r2+<QDJO01m1#woK0C^qKq4McG|Ki5+|Nmc12FaW| z4pMgf#W5&-4@zGH)8}8T1JlP}EISVK(4XV~|9gPiPp&s!s{i@_-(v@;5eC8@$0y4~ zOL|?0YKaF~5_KH8GY9HgIfnc6+Bz#SFgS*Jc3yJ~_3ZrW7~<IZC)A@?H$;hnA=pRr zFSzMde{}QyI7i0K4!I62lM)mrCnO%2tdPheW5iILUsRHs5}#O9lvt^k%%G*`<7@~f z4JL17Qkd+JRAFGOU~Hsdp<u31l%HQ>WoW2iW&-A>B$gyv85t{Bnkg6?87P=5WT#dZ zTNxTp-pC{|DV2S)bCc|3hXfg(wEWV%6a`ybg_5Gu$&JkllMgV7h=DYN#6WtYGh-FB z6buav3?>^UXw}08abSZju)!F8a4KeCfDKi|L-}D)8q^a4F%>}s0|SE}l$L?gprI@f z(;Gy9MkS#%Y)Ax@QyCZ->KUM8cnro+1+h@t2}&D4X*Vcs38fvOv@(<iHFH5s8xX<3 zz@Q1G4WYC-ly-sA9$?yyfdMu^Cl3~2V332-T2LA`N(5@bf`p(W+6>SMCWhR^%)H5l zxi<Cj@c}`uAt90RZlQk8A)fwz@$uluH3pL=44|Zjj2WewtwGZ~Ad4^T{{P>Ck%7Tr z@BjY^j0_A8d;kBhU}RvJu<!qW4rT_14g3E8|HHz-aADv7{}rqZ3?KIW|1ZPLz@V`I z|9=5i28MwB|Lgy2ure?h9RB~mhn0aL;qd?e9Bd2>4Tt~#S72mdC^+)}{{%(`h6_jj z|6c*J=;;6d2N)R`9vuDu{|+MqgTnFu|2dc#7!*$Y{}1Y4eK_&|zXuZoL%_-Z|5KP4 z7!pqX|G$BWfx+PP|Nj@57#Jp;{{R0Ch=1n)e+y;?h667x{{LUV%)sFA`v3n6%nS@4 z-u(a1z{0>_@b3SA9~K6N4Ilsip96}dZ~y;;Cd&%G{r~>~oJuB_r76iq9QywsoaS8E z!6T_E3=9k=3=9ktcK!dKFnMd5a{Y<j|Nn!fK#{<}zyKQUDq&z?II#Qw{{T>v97()~ zfq~)1q5uCAKw?bMd?0-w^-CBS7!(fw{~rn#4*-jU;&TrJ14G8)|NobQ#69=~nCiIr zIJ~$SK&ku&0|UdK!~ZACXQ;A)qD$cDWUmY<Rux7Dh7Xf7Go+PV7#SEA9Q*%28l>5q zPk_mZi;u&Rn*o%<Kymrx*yLpyZft8985mX^pPZE;rF4dofg$1qrVfx(UNAB+%sDYx zFH=m4g$XoH@c%z7&w!*s!y;#PPmaqJV>Mv{xu7yLnQaae1B1k~$&WI%*v>F9Fl0QR zER?0i`iF^u;l*UfEO#~!W(I~kFDLh9d9lr4W?<lXJNaH#l-Unv28J~|5ypc8h=+xN zfn(SI|LP#Wc<>2C@o_NtFfcHvurM$v?E3%zKJ#R^9A(xAEX>=OCg<hInU%0GFa#hO z0&-&q3j@QPy{LwO%mZb;B_Q=5CLhXiQhdY0z)<nw|9@~I0Le2zX31DU>3Q$}|Kghs zbFG;?VUu96IWO287i>;z12hA}=B!{-RIn*2*c24w^u`;E;`K+MNd-!Q=j%Y0!wNvy zye({y`GglpmVrS5LNUN54`2l!tN?|L=fmdkKqCeqEubU>qCuk!;5kj$TpO&URG7T5 zR-Un7^1)hpM*qnVYxM;sphLo-u{V&`ACnd9<dqztE&>fWgG4Q$<Lod8aIj2Hs<UJK zF?nH~yx;+-=+FQE!G@_!Hp~rYdXY1EBa>LY0Vq3wrX8Sk0F+LE(gjeu0ZLDR(hH#U z1}J?1N?(A|51{l1D9r#Jco%@u3J_YE!2rTwaDdVQP&xrh7YI%^%r#@;C;&NE5jH0X z8fyi49Mn7k(GQ^WMbD-u1~JMiGcdsB{6M7)NC8YCY|am^5H_g?3t*T+*jyY$p$Y>7 zY|;+hYM8?Qz{wk#<al8dOQ1OBoV<}qIOzd&G7gruVK%@f<6t^K&IDoDq#KA0!mznE z*pvoLKWwh;0oY<Cm@%+40aFGG8mKbZL>V-vFu;_-CdwenCM&c=GaZnaytYM!Cr+9H zI<eTGF!^qaittMpn7{(iv;zYJ!~N+K_c97kKET8xq{9H30srU?Q?fyPb8c%A52M58 z3lp^%O<-Au;Sn!rHawS!fq{cDNsNJkM@@u*!AOjO;Q*-E0F~uXk0dfq_Fk!>lOW2# zz|6v$nODNV#K8(G2w1L*FfcIdN`qPlEEj|r7?@{B#(|beJeWLxrM&q~5e5bpX^~Wr z$WI{#238^Itqcqd93VCepD+Uh+eLAZR?a#R28J8#h8(_33=CXFllkXJ)~5<HFtD3* zc7sYGu2-TA4D1$Qjs%yzI0FN_C77eY^$4WQ3e3^qN)=&XV7CTy47ij)GB#k21y?1A zV+-auaB+i_Ie<AHTuNdL4D60zP5{>rkUdTy4l6?h7nA7ZHFG5DJwbXs*g*}B0xnaK zUQaNmgljQK#)}&?L0ZAp3gY+*fojPHt_qMre*B&c3=B<NEFc+wjv^)ohGwq0AWk5E z6B7eN2iI~CCz7`oRI_qT0db<mdzly*W^m<#42Y4O!Nd^7uz*Vv<mFhA93}>a6<k+A z>f$&%85kHgaB+j2AJ4Umfq`KMmo3O~31G(^;1UAKByr4RVqiGJz|thbz`(&Sd5nR9 zfx8%_Oq-A6$mF?m)p#a?;(?<BlnSyYpPwtGeO{P>fwPlu7ZU>m8#qSzf<zb?IJ>|i ze9~eJ44mB%Hq&I0dD``lL>L&jq@~_7F@TbVwJ?ZcFJxh05abqRU|_6ZdjM)uffkQ| zvJz<R%bXp|3=Be|!XQ~45F1w73#|u>xr3%w7Bes~Oa~RwTft&Mpzt?iWMI%^WMB~f zz|6oPlF7hW$rlbP(dRKTFw9_NU=S@(fY{N+%fKL70p&~uaT*jRKbt3C|3-*`fw7pa z0qP`hBLVCrdls0Jij_f5`oze<@QRUv0pg@$JCKuNm>3vBm>3v@wuysG2|U8gz;KL- zfngsL1B2*gsF7f+Z$mjCs~H6CLE(_awm}XuZ_NOiL1bWHoFl{vvo#AG5TLf31}JdA z0g(j`h(F8>3~xYU9+C_Uj9K7-H~?zGfm{rBNmf3{B`vHB3?-}#3}PEV?L8Jq0A=%m z!p(+_fx&`}fk9L&8tO2xE0dudkSj&Ap_~PvicP#&ezNWYg?fEZ*vGIfkc9**544(Q zoO6l|=I|IXkPS6#3=Ab8F|fm9^g!~D*%%mZvoSD;fm)~mY!C;<gB=vY&cNWr&cGnq z%)`L&2WmP412Y2yV*=*|Rt5&CDLf1el71Wv45Azi4ANrIZoq0@28L~{3=9&Cp^SzS zj3G>Q3=HB$NRn^~P@a+jnGVy+EG9QuYN3=)G6w@gA_oJ5xF!~DoXoK5je$XWiQMFb zh2r&4WuS18U<_p{V}Lq)3Dnt)6POqn7-Lzx*`Usz$icwS53=D9RK;Fiu#1^Eq8S)u zL2fFCn#oiE@^LyV*tfem7#MbPFfhnXgvy==YpW0CWQNs{pv7w(a~T*I1SLfn7#PFZ z9H2HJ(y=Q$EMmeXK<W532Lr=n4p=%4HvmOUC?^AhFDEP=hdY2w+|S9tu$_~EL3A?I zNN@_7EelPupd`W|*bYj_eryHM#u6eOOMq+uXJ|h~kgbMX3=E1~FkAgBLAHM7Vqka* z5(B4WKNnE4*~!hou#y|*62CZ*OKN!-7;<?S7{mgY7#O~>+e6ZgKRDf(@-i?Og0izT zvMZIL9FQYLwV@nPd@+a{%YxJKJ5X@BuoXa?fnOoXnSpVRJ17{y4tJ3UIlPvafgzU{ z=5QBtki#AM7#IxsV2*Tg2RV|FpMl{k9|MED0w`0ua)LY~rohC&u!RHSUU#s2C-5^c z^zbv(Gl)h&!wl@k1SkjWM#-(*3=FfNE@Rlh$iTqpDrm{cz#w&xn}OjBKLf)teg+1q zOWX_$asmtt5&{eiQpdO%81e)d7_tNy7=%Gu6kc&NFsu?_U|1r+z@YGrn}Okv00YAp z0R{#|CLRVm2GE?90y7T-1E^6KCCI=a8i4Eu1_seoC?6E>3`&8ZjBmjT@|J<r<o+e1 z_259VkOKwMUO@(im4dK9vM>V$(lQ|ihFL<eK(cTH1(K^U1B0P31A{U+#x22tq#?q< zpd`Y;AlAUh!0?_E5?I#Yz$z7CU?>z}U=a0z1_n5+LLi)a21sDZfcyYz*@2=^02El3 z(j{CB3{tK<3=Eq^7#P-yFfd42@-Q&4iZU?#2XS<H7#PAu85jaZ85o2?S`-3#7#LQG zGB7L>WnfT<<zZj|RhArL3=E2yJPZt=Sww{_9tMU^F$RWaF$M-v7inlV0K0*KK{OKL zC<ahqi6%lhAm=hDEd?btJ+^h+3=9p>UI@4!3$A5AqL7MDPYx8eH^dkiE{VZHQV$%G zdg2TWYT~ev)B}g)4Dosfh6x}+aC*}V0!0Ip1Ovk_aYzX2g9A51f`K7Lf`I{?q*|c1 zGfn_mt<O7y8=9n+NH8$WlYl0vZxRd)A3z*XlJb&dU~rOTU=Rjr0Vk;~k_-&%BpDbK z>OpCWLyCdnpClwrF<b!k-a$#KUW$RCQi_2=R2CX9&`=Urh4OEK3$jq=&x}C~3`~qn zmZA&{D(av*R2rPZ7(tP$3Ql0silAUo1=k|d;9^4+T*XP(dxBDwT26jB1EUPsv+{dD zrI9R{t*(~Kz^K3r(kogD^*6*7Dv_Z0;DFczDtjUJaEOA`LhRwt1tnmJJsh?OYdFD1 zL#*Kv26Mpn@IvfSkes}6xm-P~7y|=Srow+F&>)u<$S1JoGkCZI6!vq(co`U^K*{io z6a&KvDQE)alxARHm4+r=H)#e2CuvY0hlhcoU7CTR9>f8q%@@)P3{Rw?X%m#{!D&-X zhJisr1~g>Hpam*GK<NS`2_8!UTM9~>;DVx9hJhhp1{&WRWEdFMfH<JS<*f_@!%L7s zpwdG}mVrS{7Fv2#$ucmM$wFfq)UyK@9y??i7&d{+SM7-+3=Hie3=H+$4BDqf85j<V zGB9v6Xdf0~VAv@FV(RFKGBAKJQxuOb%RHuN2JK(M3=AKHL6W+x^O$3~7_@yw7#N(v z%C(n^GBC^q8^X}83F?@901bXXIwp6-Asv$jXp8O`bU3k)lVP&YN_CQZCVWUe6ONxk zlh3S_sDCBSz`)AMCC|vfz`{90f`NgR3moMfoJ}AOH@_Mq1A_o(97q`tSVn@gSd@W* zl@~0d!088);RDNPaJGOr{E|ALu{~IlX9HK=Y#c_6pqBMYc&|u+c_jmb3<GkHhy&Im zy3WMFz*#i8eidquh!eR-#EIM^;zaHdaU%DKIFWlqoX9;QPUIdDCvuO76QxJQ$s{^i zW;JS$h!eR-#EIM^;zaHdaU%DKIH5fv(2!U&C$vYz!_2_Y!HL`>;+!JPz`!0YF3!xr zFoP4?BT`}p^@up3J)&=*9uX&UkBAf6BLWQr?%+i35pjYFdG;g@Q2QFuBLa<8azT4U z+(#z!u7UN4gqRr^xU(kPuYvc7T$n-e28t0_j|e0J>k)z3Op{yIz<WfM%%H9iD{_zM zzXSsV<9jv+=<vB4bZmriPBf_576EEYyjK9RdF2=w808okgtJpC85rN|gG!}&atsWU z<QN!)K*^5rJ-DROmuFy5mS<oP;Rl)g0i62kMSp<G){jDo><kP?<rx@u%QG;DP6CO2 z5(F7;qrkvmqQJl)md?(=FcIn&W`+--zR@R%W2_7e;&a#;80IN3Fw9V3U=W|c&cN_T zfq~&0h||K(z!0d&z~HUOz#v}1&cLuhk%3{BA_Id2NWbI?b_O+ukBSToFBKUWq_(g_ zmd&@af+{6;28K{21_oax1_tR$_sN&ns!F<p$}9$kof-@b?^qZZWEcaPY8V)#Pk2ri zTqmvu>OV6uFdWrjV359r#L;F2DGg<+H(-!{<T=@IounjG_JRfjLo7^|gF*U}=j4WU zlJ!tokU<R6d!RnPt--)B7pj&cfI)U4RMiU&1_s$>P|jx%=PZ;1l3`$wi&tl0=m(7_ zgB=fJ!G^CGzj3m&F))Z1s53C^RAOM*sKii@!ed|%JI~I*FdJ$DBf|txW9uj9Wsok= zI1gy_OjMbHLHr9l14FAa14Au{^Maj$;iEDG!%Gn74k#>D7#Mt27#Ji#`XzZl-3Jv0 zhK(u=4AT3dX8+S*V5nzfuz&|_3e+cDnhXr{*`T2)A;TENGVwwk8-wf)s65E0(vDt} zPfDXBW1CK%aE7WK)O$LV7P!nny7^J6qPUhQS1B)_HJV<Yb8V2I{vO_InV34)+ znq06!qP`cDB5#X;QY7PHb_NCoaQeTk1rksMr~BKMpmeVQPTRMg!D_%s`*z|<b_NC! z4^W!F15VOPB2u8t^B7z;gR&{8dS~MR<pAXXkh1f<jFKD-3<`I_9L;EUhRN(3`Rc)0 z={&fNrJx2f;d}(hdJ%Ao^#V9MF{nHO>DkT;t9^RGH6W<_4jN$)0=s&<DoC5HDg%S4 zDg%QM*u~ooKrWV1XJGiC#=sy1cKLQ+kdw4E85sU+Ffa(!gPpTI38Yy{n}LB(8<yp_ z7lORLMw@|Qkv1&LZ?6Z5>FO{rDC;mVsDj<QeIiIN(?kZ*^`PL~!3R>ZO^1PDi4FsU zs6NO`JHa9JP?v$BS(kx9&47i0VGkDrgXkP_hI$6ZBcdP!W*IUtv=~CucDpV(VKXo= zz*z9KeVo^Y6PmUs8!<368liC@NqYv=07mdGFve57u3Vs*Jq`wj1Y-t<5MyZ4{$*^+ z!0-;l1EuXLCJYQ6CJYSXptNmd%D|vx%D^B2+C~OW+wV*n7#^51Fi7vyoqT+g0;AsK z7n_tBEhqDARyBuC{((}ctgJ1>@nDWQlmkl6vW`#=NQQwy+C+D9#%4t|=nN%DQ2Hs9 z14^(xT#y7?%)lW1-e&Up&64#{{UBKx#!%*R(AEU8MT!gzA<*duMur8f3=E8WB+>*K z7{sqDGBB((V_;}CV_*<Jt;oR8Yr(*fX~DoCzF(1n!Pbg_K^%lPD>5+rvu0qpWzE1K z0n#t|SdoFD%$9*6#g>6V^1UJhL#7=AgQHzN1B2vmMFs{-2L=Xd2L=W)Q*{Q0wNR@W z7&fpmFfhgo*YPkgh`XsXFtj)_Fw{9RFi3zTB!ko$7;ZT-Fr0H_V36Jf)dVU5+qohB z<gj3nHc^6v9Y}mWRJ@*nLAnPlF2cY7lGu(U@kVL#tu68z&{<$mS@{tn%QEo+s5se$ zBqM#ua<bx9aW$xrizWku^m!-;q|=%Q;*c^125AY~$#GjHJ)i;ZugSoW50Pb=xB_IZ z7Lp7DgOs)s1A_uP1H*G(1_ntTB?g8hCkBQXCk6&hD<uYo2KLGOw<;MtU}s=x0x76a zVqn<q#K5rHiGe}-Aauq$N|S-%9mEcB4J4*AS#X=UDN@Rk{)fcT<pn#IW#Wu_HU?Q{ zYe=|(6A`cV<k)SJQcxjKVgU^(z!HqcMC-{Dwu$IN%>sFxL3$EsewBfN0aRRXfSAlw z11hswCN8LBW02mfGWqg0MOgX+*&@Rj3L5)jkYWdUor8g)i=Tl(l1GVwA={aOA=R0I zK@8;eay^K{7#SKk7#J9nIYsyx7{s%c7#I#XGcas%W?&GHN9F`8F))O=Ffe$zFffR_ zD={!Ub75e(<HEooRj$O~$#8*#f#E+N1A`<e2vc1d7(!hc7^J^JEdd2#BOf?iz(E+G z53w91J`*YqN=>t@C-2!VkqiwWkZ(>wW$PFiWY-{xOK(Hse1s@snRoz{0`?)vFlfw1 z3QkbafClNL&+AV%-=V;$KRIHDJaX7c|AVF;kkvK(U<b2IoB=YG*$(1lkPL&ABq-T) zGBC&rGB8NWDKRjJx-l^DyFtVDDs&A4BSQiw0|R3Q=X?QZ*k-sfFvNk@GJwJs!m(sv z5C;YBYc~dlhaf3X;HJ1UFhsdS0+(R}Cj-Mo0chAhbZ20=?9RX-9cD3Ef2X)4bbSUW zBy9x14hF@(w1)NM_?;5<NI{W{kd?JU64!7?;>a+DvP_&%&&I$YTY?mD4AQWS3`&Rl zp(Y`x!(eE31+^X?LgZN{KJcnz12-UEfRgGKq_F)BQvwd#ok%hocab=t2&-dYV33Yf zob0emvL0#)DCdBtBH=mbI+6rPPcbO2#6WfM4QT#hWOx9IibI@<q6`e;a}^jEx;z*d zsyrAN#3w2+Fa&urFgSTKFo?G*Ffa&sF)(m>F)&Dgv`DU0U|=ZsVql2$VhDv4tUsV; zGB7OQVqjpLEBi+XTCnc%W?<On4Jxd;7#P3>tB?-^1Dg*6gY;jhCQv!aB?O5mP{A6g zI$3wOxTGq`#gJ0e3Mva~?Q*M4j@>QKXf?TZx40xygmgjGfHIAr)#SCiB{h&__d#T# z4L2KTfP%_OX;0h9?{-UgBME_{925-<3{qP`zUO9OU=?9tkldxfz_7xHfnf^B`Ptxw z1`G_KbfzZ^aX!fMm+F%P_edIordmMTP&F7B5}>l6+EE_rC{Tn|Ac?QCnml`tWIa?C zl%=G1LOG!Ncqc?Dq^6L51eF09auFiK1Ty?Gv`PkPe+3Z-SG=+}kR)WkBXJm{jw&!P zOyFi<=mvSP{un43_%blm`7$s_H$WFQt<_*)Fc*RN5EKRKNY?v9#X%L(VW>FB`b>y8 zw5T|NB%^Tw$^p3^lr+KRj}&MwkYVzsy`qdJlTYlGWi*-mY_D=ER4KUrGl6nI`glYk z&M9VKkd1|kgThHR3CaQKkoAK`D#$_7VMrWrsP-BL28}q|$$9%E>!I<*#BhO|fq`+K zM5Y`AgE+e)1A~<x1A~ws1B3W)P_77IV9*L+U=V+=z`&pv#K6E7#K0i_Sb>2-Cxn6F zQ7{981W3Q6up$EkXmk$L#Fms-WMGhtU|@J3&cGn4t;oReEs}xZK_s+Mk`A^R-1`5( z!@$7UEUY6A%{=d;7#LngfqILe2_8_Z#5tOQ!7`eGK{^Ml3z9u_#2|qI$~<Q^Cj0Lf zmxPY_fU;H$R2GyrCu&Zv-!IQ-IeGqmacO7?0jgEkLDWEMXz8DplP~U<G=_#GNd5st z9$Zs_HkE*~CMfg#f`~(trGV{Z*#nZWHYG?NoRdIR5VUoXz&knkfRY5L+Lizfy@IO7 z1JMi&n?PPVrZu_ufViYK$Z$xunk5eLSRDg{bb$5by$2*TkV@vW5Lsv)7mp+(ont-u z?*U2VvR<PaNgnJha0Zv{M)D<tScD=2!vd%S7#SY$GB7Ys<@_bVz#yKg$iR>v!@v+3 zgT~S7RAgY#ss(lM3l$j{QeznyB4ZgCw5KXExHANR>i=nq3=Cgm85o|&GB8M&ffgJv zFff4f)O-nu_dt1PGSnTQ#Jv+D4r#tgzp<Kp=OElKAo<r2c~Gq;E05$Y1_mi}MFxfq zd<+b&(hLleHi`@klj0Z{dg7q9a1v}qB7*=w0|R3Rr;-%37JeSbz;Hhf+QJEqXJGJ- zhgQN@;u#pu#4~6^nm85-3=9Sd&{{ZvpMgO{3R(*<NMK-?lEA<q{oP>l{6pfB(8Y_O z(s7L>#Gjy^?{VwN=MSMo<9&!MG#alV`A7PJ^<@6TaIb@MF@tP6G@wAq5)xqtpjI(4 zG=O~7$;l!OjU%H(1_rf6bPg!Ob|o?}YyruDA`Z?0MIe6?0|RFgBmx;OfEtSGpa@J! zVql0!VqlOiG=ij0Pz0`)f_My+weqbdpF1oGOP`=<x(|_sWDeOcNFLMpXFYl15fK&! z>GejF)sHAJ8cp^%qNssXK!K)7;Hgyh6_Sj`7u(4bk4V-F2rw}GmStd&^ipJC_>{!J z@Focw%lE)VDFXu|186lAV;|>g8E7oKCo?eECqrZTcrpXSeh>%L)G|(CV9-v1wqvKK zFfjC|KqDEnQfjUYG?M?PFfe>hVPKFhuQ!DR11NswWgx)-O2=1`#Lc1Npx|MLRyv@7 z0nMht8Y<F)Pzg}%W<fMSlY$tMj5KoBvmZ2+53M<5wUJaY$W~&c4r?=rLzx&rYr7cx zIjd!%31U_%14CCT8V4;qho&(wc&9;A1E_%|2}%rS(ik`xj-)X#NdGsRtba^g8fq)Z zb9S=ez<_363!BM_$He)N+^FGh1C4th^U3p$DKeT*K5$H)4=IMFSJ_T}drVRlsd)`g z3JkKM(1IT{3MhS9XR`Kj6-KMc0mmg&ppF35d>Ww6GRWT`7lA?w-29VXWI4I#xCG3# zpb(!U2X!r|G?WgsnY{nFWId8=FQCY$BFVgh$$<NqSx7R{B}g1Wd1MRfkYuz`WI7Ns zlfzF4m?F3g@i2uTo22I;$yCB*c7R&b%WNjkIUy;HB)=9W59(h_@3NVE;e@0ylKexM zJlOZApfaF##7~F}Q!xvJbb;+;nUj*zNHL_V0QD5u+!ou(0VgGsk>nF$@*s0H79h!h zBNF5f2IZ%qA*eaLjF%K(qj_`WK%+|v;IXMWx}dQs1@M^E9CwhoNVde}Gbh#S89)PU z^@1R2Mo@hP8KtY&0jYtE1lC)FBo!`#75ae06-+^6TlLwX@iY+!5W4|9TqlwRazrD9 z4Ys!lJSL{&sR$Y}1S#wSHDN&0(BM(N3B2{7!9oTG<#LeDa$ZKzkd8t&$f|OEgjMBk zVD>w(co;~F!eX$7G!R=!H<N*}0z8k+z#yLhQWOpG5U3vx@ldn|$OMRoqRqh`0*^n| zN4tVKU>`+CAbb=9@demNu@E-cM{y7zf%>PAk;)W^k90r-ArO&Fh=>w|mj~f7D3^j9 z7Rbxk0va{|dofTuS`IY$3bs7Z3FJZrupa}#D~%Kui%;%5EnW|rG-kA715J-LfY$6W zFff!u*I_cw=~7`}fQ*A$foCs_(is@E(qTiHR^Zu-x#<iH6VqWsnO1h7=`_6z1_q@J z1_n{^;H?|jhr2Tv7&d1xFsLmMVqjRJ%)lT5n%b;qv;liT^e4yzwtOIWC}uJ+h-We| zNM8jlWoBStNYi9suu}%5<3Ofb1{ua6NKc^%vImF(RB*^%g>pb8h4fP>2h^@B0BZz~ zs>r^Aih~t>0&ylUJ|n6QVnC-O7^Lf+L4^@y>S7OAFUV2`>5tBn@1K#ahpGi-JZaEK z2}m)>0sp~DLz#*>7^HKdia_F$Dj;`<vP`@I8i&{nl~D!_lI@0aK(4WaC}S!XV30k4 zBrbgdiIc3tFuD3H7t9SHeKin$kN~-hq?SRS7nCLR*c_l+IPBnSysm*pvcaR<dh(!T zF)NdSVL~PYgU}~Xve(lDC3~4H1_r(?1_recf(#6rstgPUnGB5j;B0U}H;aK`M-~Hv zVXZm?Lk84%Mg|4YG?M|Rc%M20gJL!VgM2mvgGQC(WW#fkrU60>4C|n#n1W4-%w}Nl z&1PVbR)?lKP+E&o1qD_JXf2j>ywl|RbK+T0Sx`{+fMr9OY8e=03!&nmFwm$(;(%%p z&?zdir=Sk2(_~<fO@XQa86#T<<$&}u=!2T(j7n@1>?fTUjR1#=k`gGVzRhM}c$f`J zuYwE=wQ7(MPzJlbA%}sXD2IVTmJPbZ7Zjqh-=G|@9lwz{(#(#NbI*&%LLCIMR+blu z!yuapRSlYZk)4gqIf=}<jm!~3GC^9(aq`3S;`K;EvMNX%X&opBlp#3OL4gcj@Fr~n z6$iOV0U@qogCq_LQBc3vNDh=mMR`F<h7mMXrr-%06c?2Rr56!U$kj87fu|%G<oAG5 zk{~ZAH#34#38b791Wy4m7=w0PFl91=^fAv-XJAl(uC?f72JJ>M1r2`-KwA`b@Kg(G z#Dd4aHF6mkWOAV+G&^${7&hiIFi5M|F+gTtLH)>=P_KY`naiLify5a#5MKX+Brb_0 z?r1;R=Ayi*Jt$){Fo2rwvbo5dB4kcElmlwWNY~p>o^VmT9x4P1YS~U?P9GA7!3?xw z6@<A(*~~y|SwNVZoz)z+(t?M<9JUsNhrz;voq+*_d8L{7%uOU17_=l97<d@WVXG^6 z7|cLRy8?w7>KVAXS<OHz`aqbQpUq;rI0FL+^O`d8TDD6tFo3WbXz?ltbBnN<ffn?F zu^5~A9tj49O%TIj>pyrH%s}fBL6}>B%?z{>3WT}2*vvo+K|q)(ipLDJs8nCrh=GBd zkBxza9kkZNivzw0{h%adt;Ye-1{g@-GI&WbFfj26PyT(&P!zNZofWbQof)zUo$0#B zWXIcLj1MM9+?K5eubf~p<j?`HoDgPUU@>M-1ewEmLx_Qa#f)<@XbCzeXni@0IhZ2= zUQNMb0p>`6S5vT9f;kGDpw$#CR$z_>cr^u!HJD=nUQNMb1LjzOS5vUqf;c)14&db! zEDj(Zg9msy1&bq?698UL!QuqwM1WRPDBOXpreN^^yRiVgnu5g>%qan{reN{nu4Z6h zr~t2~VDSZwG%_@RS5vU~@q@NCG=W!Bu=sNXg4UOVS5vSA@+X4UmxEVRutf5<gVvXW zS5vS=i-Q)CLsnC;#7LHd*O!A=Q?SH}c*9pyu*7kKs<#c`)f6o8pz&S?$Z86f1hC@{ zfLBwnByrS&*OxPa)|a!gOM+Iqfmc(oX!CI&nJjo$EfBK4Je>)&nnDybGYeV=&oh&O zfdRDAofp)%5@z57EjnlG<eLdzbPkF-@DdBQF0crAi3M9Xgv~U$<E|Qb(K)-c)Hx;w z24)WM5({Py@S<}j(9#|bX%Wyq8}LR03r=={DrN=-PEaYt$-xOp3!v3LoSa-B3CL<6 zPA;$vWVH_`H-95DY_$(34_F4W+J}=DEK?6z?!(CkmVzwz;pCTWXJ%k9U|?nhuW)1I z_yP7!FL>Dq3urM2XyXH?05ga!Z~|2Aa<PJ(1K+~|Z%_rZF)#>%ib_UqK@eLAv>=HQ z;t<I^28MdkJO&0q(844}UcN{+1_t3;Nd|^WHU<VxX4qyIkq5#I452Ix45FC~i~@Wh zi$e1l7=rT{7{t7wo7n0=OAZ>u7{H*5je)^|1+r8bG}pKSNgTHFSwumEfngzQJ;YQo zu&LE~3=EZd3=C2QA`A?I;1;d85XkRB;KrH+A1IWU<}onL&tqT^KMb{cDjNgCTCi<_ zO!W*5;vGn~9R-Vrg2g8wiQk2a*MT(5K$7?hl_+Ci5MO{K&I?&94jNVxTMHFm2=en8 zC}#~D149Hv5hpWjn~wxz2q!aaGmivgAfuNAV-O->8N@EuL$!m<lKcSWfXtF$4CQ2o zZScV`#~alg1_tqHXeqaYje%hY#2t)A4B~I0!bjK`7_LEtnK(3H3*JjbK`j^1NIV+@ z!&|U)2%`amxCGQ8ci0#hSlJ*E2?~+FQ1KUR3=Aqz@j3<x#t>#M2Sx_5Q0PXa&!DyX zpgs^NHT+{^V34eb%79V^ECsM}OlD@NXW#)va3&iA12_k(Gw>{6fFwXLpM`-PBqt48 z?*zh}GHf!i3X6+D8q}EpVNNkNnc0#I3=<_87`PauH%l@wfH1c!uQaF;0m7U@ywZ>g zgMopEk4+lXTIH3jXJFtIWs?TA$v~J>m`x^Kl7S%>Y>o`9KH_4K1yx}n%m7-9$-;1k z6I9RmN-;3-T$W^D;Fn@xcmNG*kf*oFfYzr<F)%O&Gr~49LW6*TaSrInSmv{!Y#YZd z0OEYfV_<lfxB1?~9;VF+&#tgeu6xfpIrQDh$qU~L*9)64F!Ol|n@EC|>56bOhKe%^ zGcbsnFfemiaa(g+a(fChiEnojXJ8QPY+_^(WCX307Vm6gWCSrmY9+dw7#Wx(COUzJ zm0=PL3{oJo7#O7W80;l&B=h)~`5@*oFvuVYv2j~-Gcd?bmU$zwx$ga9#!X+G7#Srd zJAW->l$^ZlYYwC2Wc6>e7^OBJ`o_-4C_VYq_qU8PlXv`B%qTlK=BFd0?B;ntH!(8G zPY(R;$SA*g^6yKGj0&66{%Z3vx^17t%^1$eo&hR+8O)}C;9-=U-XXwvb$X*9qfR~K zyjHyo1{Ma?E%q6pAZB3YVc=wfm3YjYjBHFsLaY*ztUTeYtZYnG!mJW(jI4qYtb810 ztb$>ztZb#itbA;YtgKAY!mNDOtgLLdr&zfdSw$IHIoWnIFtISRJz>=X(~PW~3{3Sb z%p7T~YG45-Z9!I15Q~wO6-2QyvSqOfv2pBWWwm6Bf|?@4Cd|sowuV)VO_){4nw68S zlvRukWH^(hNHZHp1lTM_HjcMoqZlDZF|v8FEo)}wVPno_WMyO)V=`rA)nYDW(q{B( zV&!D!Vr*g+t7qk8uKd)*z{JAH#>~kGrX#>4$8|8pq$0%1$6Un7%5#)ekSSOg6b6jU zVjR0zS(!^Bm<*<C3o(W<Z4lqyEX2qsTn|2|AU?66AT=)~-YFoYC^gkDKP8nRzBnVl zs3fU0jiETRDmA`@0irM`H7~s+gCXA2KR&56Ej}r+I29^WPz2h;my@5Dt^g)Ly!f=t zoYcI0lo*T8%mW?03pS!Cl{GOXJ~eN;ff}Q(T6|7^ayCPJeojh!ep*^_D%4Jfl+>Km zlFa<P_{_YN)QahI)EIR&;^UJ_GjmEZ^WqCiOOi7Zix`S4i{tZBi;BPo7bljbf*m*g zohGB4O<GQ3da)5hd@k5$$XbgTic3=ROG_AX^2<|;;*&r}D}YTXFUl-QjZe)>nQo!Z zXv~9rtiyC|9Y%%8=h!$5OEdFI%uM1-z?P>L73E|Wm!NtU?DkZK_}s*z?9`&-=@D9t z%7XFWuu6+h&d6qncgoMtnZ7`aQEd8#(~LaRx2ZF#PhSY)zE@|IXU@n>pKhqbD8F4> zgVB?5y3Bb-NnTI?c!=vjp+Ehy7NZyVP~`10+Kh)7r@vQcly!>-oqddXQ~@H?@ST_p ziXQOE$lJqo8KW7e3z;&CZ0|Q=<l|sU2$(+KhEWPc@3vvoVOkI{{UwOjmj-Q#ovvle zD9Yp@z1`84@u9d;4rue240MJ~4N9{yd;*JGK>1Zr8Z16N@c^U9^u3{sqT6dj88?VB z8K_Lx&t?>pGEiY)VBmz7nxK_)pj^+!@X0`BdOTeIJ#>x!7bp#p?}y6^Lw62HLurWo zez^R6sQ7Ux4UvBjm%k0&k|6}$)B=&0&w;rQH2M#6*D4fwf4Dpkbcvq=l!oZ9hsy^* z#gm{kM1Fk^qZpHc3OIZ}_%m`$pOD8WGd;h6QD8e?E;Nh|G{M}!0j+poVFfYc16=+Q zG;CmD1(8>1hUsU6`W+Tl5cvSOd@ocU7FH1X2DrQ(G>l+j1(DwXmv4ZE%>*b7k$(V} ze+Cu*1*IYK0xdB2!NN`pC5#;4^02TgL6I+LL4={42_xI|3lkUxCLdrDnm)gcQF!~c z7RK{ZoUo1H^QUt!W0cu`YChv0rs*I28Cl%wp@A9zO@Pb{92)bBpd46p1}q4Qeq_wV z0BdwHicVj>j8Te*iJ=tQR;>h!C>X%nt`DK&j0^#=W@|sRjm5|i0Bbj|5u48F#wg{% z$jHFJuoLPA7|p~mu>{6G2$kbxm{>A}h0CEqaXw7wI8+Lxe7n#J#t*_;FlPop9Z><b z8P<%4wSQNLf%fZLf!57~{8<214)c=$PHiC73=ALeYiA-#I~S~?uNMb7h6~oHIxarh zFxO;y$zH}Ok_E^|9YgG9U}oT8I51stAEP+q4-h3<&&2>cVF9WHOffTXGr&$_01H3~ zW(FR}=@n2ujACZsWl#`+@enjK10O>J^tc0rC}=|}Kf?r&IH)&_Dj~oCKjH#Of|)^( z0d__Ok}v}^gAl`XLvKcrdS(V;2H5ois47GlB4E3BkR+HHMB%4gAPF-tGl((3PPaf6 z7iWMSYJn;)!SEu70lMHGNrst0k^y$c1(GlWGlLWZ1N3-wRB>qrhob4P_A@>+1O+7% z10pD(X^a6>oq)tahXjE1s)Gmy1_r(9j0YLTJwYqyK+@<ds$s^#4h=y!4tD4W%s6L= zai9h2j0{2yu%0jMm<O0~u(L<djf0(C0y8cdY@8%$KR?KIu*3?@f(-Rw>H044@d^T< zwaHLlK`78EHy~{W(9;tjq6`f4q3U5LpTNXHM<FmWNHe%Vj~fS-5+J!Fpxs*x;tUU< zhxdcTK=?Jp947|YQ7a%p5dIF<AjSZ@W&k7x!eXGUObj3YgV@Lz;txsC1PmjC2t!U3 zvLtBNJt&UqO~CFE!$?c6pgori;IxFI&kw2|JxwNp#WB--3D_LWq!$euC}H5y!pOf} zpxyWk0t^R0(G9y_gn@x!7U=#8#tk4+5_Fu55Q6~22Iv-Q*bZgLH5tDqe`JwhW@2EN z{4h~O(hGE86P7ft1->*x(gn29pFw~DeO@FGA{_?4G(w62c2fo{EMg(jQ$UVo!Ym6) z!P1P~U`ld1%noQ32;0WJ1uV^Y5<)!zQ?fsyiqX$55CokK0BUovYQk71pd*F^u=p($ zq=G?!0e#p!kr@&wz6Hz-41!Ej46qv^VBV?)i8BbnFKB^oTw>^f8i>Bt6?FEL5Xe!c zTR=LQ5M>zjC>(~9P@MtL=meb-0<!HUNF1ay@jZyeAiyvIIvx%>vI(RDv_DsXL7Kq> znsGp4AnXTK54)-cy8M{oA5<JN?$5vg+jYe={orv%aZf=OP*MYxX&^%oSQd1?0)qg9 z0kj=u2u{ch42Do~Sk-nPI%;PIHZCy$Dvdr%8V40eKMkWEDvrKuv>PlAx^e~KBoJ#l z*c!$)V9Mt#Sd{<+`Uwp;q2i#qQ;;rL#qtq!E(a54vi-{fNdSi8pc5$=1Q^h_%7eCC zfpQl5-hapG3r{kNOM>=X2{Ir85tcqWr(ZnDC^1<fiGTX<lZ<jENd+ZEsi}I&43Ms6 zd|GKv4*1MAy<`R~C${Msn;98z_dmtx#>fu46J|e~==RyC895on;JqIQ2X`M&C+B!0 zJtIBS>GRJp8i*zqW4UE!`k6C~3f%GWpcDAwi%SxVrc0k?EaQ)l&&f<mj!!NwjnB-> zECF3v!)QEx$5}?@=@RD{dwG#Br7@g-;~b;Xc7gMZ9ZcJ&USv#WWLz-)=OspcAy_*G zM*A~O56obcnjUhQQ3QSh6zn7@i|Lh@8TC1TKy$;7=^HOInhU|2I53)nW%{qnjCz8w zCJv1LG2QYCqrvnOR~Y#jrKczOF-lI{$2NV&6-GhO5-L!9!x}jW(|2BB)aQb=Z5jlp zf4ahGCJ1iRfMx|iZ5sv#hJfjoR~hw%U@aOL{nUJV)m274L0F3hM)Sh$ym6ILP!O~~ z7-T7w4q%!7>nfw35UiC0qgfcIC;Bl;fSej}jZr`d*4ly560Fm!t}*Iy!wx8#5yLP! zpha~0iEE4sg0O030chZjfq_9|`p;{O20YL@@&rh9vLTD`bdT$d3S978onodJU1v0d zAK@hdJvZ^i^qtok4FqA08_?Jw=m0LJ>A$Ws>T$!0bcZB}{T??MH6}l3<Y3gE{?MOM zeENhNj0&9DNgy9HFg$>WUAV!hz~!9`5exN!#JtE&Mj5UJ>mh=YToAz!kl@ap5J6p8 zh~N~E;InHGK|yJdpxE>aHyIVUzJG)Wy61xgrKXGAVwB;sgH);v45ARhH=xdD%q>O{ uQHL@}DYXE4awKTQx%2eaTa4OV4;mp-6Idadu7FG`Xom<kF@gob*%knsF`uRY -- GitLab