From 0b6f03d7f44366ed051fbff8820fcf0a9e99ff00 Mon Sep 17 00:00:00 2001 From: Enno Rehling Date: Sun, 11 Feb 2001 20:56:20 +0000 Subject: [PATCH] neue hashfunktion uint ausgabe im cr --- src/common/gamecode/creport.c | 8 +++---- src/common/gamecode/laws.c | 4 ++-- src/common/kernel/item.c | 6 ++--- src/common/kernel/message.c | 17 +++----------- src/common/kernel/render.c | 6 ++--- src/common/modules/arena.c | 6 ++--- src/common/modules/museum.c | 4 ++-- src/common/util/goodies.c | 42 ++-------------------------------- src/common/util/language.c | 5 ++-- src/eressea-6.opt | Bin 147456 -> 142336 bytes 10 files changed, 24 insertions(+), 74 deletions(-) diff --git a/src/common/gamecode/creport.c b/src/common/gamecode/creport.c index 5fff17ec1..2d238356a 100644 --- a/src/common/gamecode/creport.c +++ b/src/common/gamecode/creport.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: creport.c,v 1.6 2001/02/10 10:40:10 enno Exp $ + * $Id: creport.c,v 1.7 2001/02/11 20:54:00 enno Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -142,8 +142,8 @@ render_message(FILE * f, faction * receiver, message * m) if (m->receiver && receiver!=m->receiver) return; if (m->receiver && get_msglevel(receiver->warnings, receiver->msglevels, m->type) < msg_level(m)) return; - fprintf(f, "MESSAGE %d\n", receiver->index++); - fprintf(f, "%d;type\n", mt->hashkey); + fprintf(f, "MESSAGE %u\n", receiver->index++); + fprintf(f, "%u;type\n", mt->hashkey); if (receiver->options & want(O_DEBUG)) { fprintf(f, "%d;level\n", mt->level); } @@ -225,7 +225,7 @@ cr_output_messages(FILE * F, message * msgs, faction * f) if (get_msglevel(f->warnings, f->msglevels, mt) < m->level) continue; #endif if (mt!=last && (!m->receiver || f==m->receiver)) { - int index = mt->hashkey % CTMAXHASH; + unsigned int index = mt->hashkey % CTMAXHASH; struct crtype * ct = crtypes[index]; last = mt; while (ct && ct->mt->hashkey!=mt->hashkey) ct=ct->nexthash; diff --git a/src/common/gamecode/laws.c b/src/common/gamecode/laws.c index 014a2739b..7b6c8bffb 100644 --- a/src/common/gamecode/laws.c +++ b/src/common/gamecode/laws.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: laws.c,v 1.18 2001/02/11 15:16:04 enno Exp $ + * $Id: laws.c,v 1.19 2001/02/11 20:54:01 enno Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -2111,7 +2111,7 @@ reorder_owners(region * r) unit ** up=&r->units, ** useek; building * b=NULL; ship * sh=NULL; - int len = listlen(r->units); + size_t len = listlen(r->units); for (b = r->buildings;b;b=b->next) { unit ** ubegin = up; diff --git a/src/common/kernel/item.c b/src/common/kernel/item.c index 0dec1ec9d..0b3802e5d 100644 --- a/src/common/kernel/item.c +++ b/src/common/kernel/item.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: item.c,v 1.8 2001/02/10 14:18:00 enno Exp $ + * $Id: item.c,v 1.9 2001/02/11 20:54:01 enno Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -30,6 +30,7 @@ /* util includes */ #include +#include /* libc includes */ #include @@ -49,9 +50,6 @@ attrib_type at_ltype = { "luxury_type" }; attrib_type at_itype = { "item_type" }; attrib_type at_htype = { "herb_type" }; -extern int hashstring(const char* s); - - static int res_changeaura(unit * u, const resource_type * rtype, int delta) { diff --git a/src/common/kernel/message.c b/src/common/kernel/message.c index 771146984..c3fbb4dea 100644 --- a/src/common/kernel/message.c +++ b/src/common/kernel/message.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: message.c,v 1.5 2001/02/10 19:24:05 enno Exp $ + * $Id: message.c,v 1.6 2001/02/11 20:54:01 enno Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -30,6 +30,8 @@ #include "item.h" #include "building.h" +#include + #include #include #include @@ -49,8 +51,6 @@ typedef struct msg_setting { int level; } msg_setting; -extern int hashstring(const char* s); - /************ Compatibility function *************/ #define MAXSTRLEN (4*DISPLAYSIZE+3) #include "region.h" @@ -195,17 +195,6 @@ mistake(const unit * u, const char *command, const char *comment, int mtype) static messagetype * messagetypes; -extern unsigned int new_hashstring(const char* s); -void -debug_messagetypes(FILE * out) -{ - messagetype * mt; - for (mt=messagetypes;mt;mt=mt->next) { - fprintf(out, "%u->%u;%s\n", mt->hashkey, new_hashstring(mt->name)); - } -} - - messagetype * new_messagetype(const char * name, int level, const char * section) { diff --git a/src/common/kernel/render.c b/src/common/kernel/render.c index 00b6c21ea..1f14a1a2e 100644 --- a/src/common/kernel/render.c +++ b/src/common/kernel/render.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: render.c,v 1.5 2001/02/10 19:24:05 enno Exp $ + * $Id: render.c,v 1.6 2001/02/11 20:56:20 enno Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -357,7 +357,7 @@ render_immediate(const message * m, const char * find, localizer * l) void rendercr(FILE * f, messagetype * mt, const locale * lang) { - fprintf(f, "\"%s\";%d\n", locale_string(lang, mt->name), mt->hashkey); + fprintf(f, "\"%s\";%u\n", locale_string(lang, mt->name), mt->hashkey); } static char * @@ -485,7 +485,7 @@ de_render_casualties(const message * m, const locale * lang) } static const char * -v_travel(const locale * l, void * data) +v_travel(const locale * l, void * data) { int i = (int)data; unused(l); diff --git a/src/common/modules/arena.c b/src/common/modules/arena.c index 82242d88c..525535509 100644 --- a/src/common/modules/arena.c +++ b/src/common/modules/arena.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: arena.c,v 1.3 2001/02/02 08:40:46 enno Exp $ + * $Id: arena.c,v 1.4 2001/02/11 20:54:01 enno Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -44,13 +44,13 @@ #include #include #include +#include /* libc include */ #include #include #include -extern int hashstring(const char* s); /* exports: */ plane * arena = NULL; @@ -59,7 +59,7 @@ plane * arena = NULL; /* local vars */ #define CENTRAL_VOLCANO 1 -static int arena_id = 0; +static unsigned int arena_id = 0; static region * arena_center = NULL; static region * tower_region[6]; static region * start_region[6]; diff --git a/src/common/modules/museum.c b/src/common/modules/museum.c index b745d053a..2e817a7ad 100644 --- a/src/common/modules/museum.c +++ b/src/common/modules/museum.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: museum.c,v 1.2 2001/01/31 07:59:42 enno Exp $ + * $Id: museum.c,v 1.3 2001/02/11 20:54:01 enno Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -223,7 +223,7 @@ init_museum(void) void create_museum(void) { - int museum_id = hashstring("museum"); + unsigned int museum_id = hashstring("museum"); plane *museum = getplanebyid(museum_id); region *r; building *b; diff --git a/src/common/util/goodies.c b/src/common/util/goodies.c index 0c99e082d..ac95d0e85 100644 --- a/src/common/util/goodies.c +++ b/src/common/util/goodies.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: goodies.c,v 1.5 2001/02/10 19:24:05 enno Exp $ + * $Id: goodies.c,v 1.6 2001/02/11 20:54:01 enno Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -58,20 +58,7 @@ intlist_find(int *i_p, int fi) } unsigned int -old_hashstring(const char* s) -{ - int key = 0; - int i = strlen(s); - - while (i) { - --i; - key = ((key >> 31) & 1) ^ (key << 1) ^ s[i]; - } - return key & 0x7fff; -} - -unsigned int -new_hashstring(const char* s) +hashstring(const char* s) { unsigned int key = 0; int i = strlen(s); @@ -82,31 +69,6 @@ new_hashstring(const char* s) return key; } -unsigned int -hashstring(const char* s) -{ -#if RELEASE_VERSION < NEWHASH_VERSION - return old_hashstring(s); -#else - return new_hashstring(s); -#endif -} -/* Standardfunktion aus Sedgewick: Algorithmen in C++ */ - -#define HASH_MAX 100001 -int -hashstring_new(const char* s) -{ - int key = 0; - int i = strlen(s); - - while (i) { - --i; - key = (256 * key + s[i])%HASH_MAX; - } - return key /* & 0x7fffffff */; -} - char * escape_string(char * str, char replace) { diff --git a/src/common/util/language.c b/src/common/util/language.c index 6f116d860..c7815f88d 100644 --- a/src/common/util/language.c +++ b/src/common/util/language.c @@ -1,6 +1,6 @@ /* vi: set ts=2: * - * $Id: language.c,v 1.3 2001/02/10 11:38:29 enno Exp $ + * $Id: language.c,v 1.4 2001/02/11 20:54:01 enno Exp $ * Eressea PB(E)M host Copyright (C) 1998-2000 * Christian Schlittchen (corwin@amber.kn-bremen.de) * Katja Zedel (katze@felidae.kn-bremen.de) @@ -14,6 +14,8 @@ #include #include "language.h" +#include "goodies.h" + #include #include #include @@ -22,7 +24,6 @@ #define SMAXHASH 512 /** importing **/ -extern int hashstring(const char* s); struct locale { struct locale * next; diff --git a/src/eressea-6.opt b/src/eressea-6.opt index edb1ba5dfbdae45474dc7fbee49a28b7ff7970eb..2e1b13e5a91a954b799fbb7ba2e37333ee3df02a 100644 GIT binary patch literal 142336 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 S0xSWR084-+z!G2ycO_cRxD;mQ?JTsI z!34l8xl(Mcle9_O#PQ#$+az+ECQX{Qah*7JYqv^m$7xeLPGi@xV-E0-|yn#y@&Jez3-F1cjFh{{hk9~RGN;nO1JXeYlBK( z=z2HKyX5bk3hrOKMn7dp=TFfeFyR&-F98XB2W3?8$mrSjfO_%a&^;jHJ%Vr;Gy)n09R(c&9S5BN-3ubVlL+qzodTT(odLZP^Z@AlKxaY3 z_aMSC&^TxUGzrRr&Ve2RJq#kgzlrb%K<7ahK+~WZ&_&RzK(nAZ5b-{W@G;OO(5pd@ zgI)vrK~N6#TF~DBT?Rb?(m;7o0aOGD&;qCgqV#lxPlA>}2B-|GfJ{&o^g|#EWP=<~ z4YUlp0=f!X0Z}^ioPQYSuLHdv^bBYfG>eo>#8gr93PQ_`fg350y=XB=+C6#`;;f$f z(NCXx+jCu19?5zMxm&26joN6Cf-wNDflMPcdoW^V6t&I=@SMsplX&(|DbpKgxe zKRv%j0b?#W4eHfrSA}8N$Kn(5m~vhaMDDe;g0M&9+tJsF-nAR)Wl-e;(!_EbKQsM)Ucc~;SJE7G}HYDNk2f3pQ zqEWDWwRgOx8^ycuGEpzmgZFrg^H!X_0rY3M`T>MAE)X{z^wy!TTcvmX>-gcNvh`fe zFx0t%B}9eZZc3{QX>~g^meZJgJBY?eN{fh&?$zyX?&<}-qK|9VD57;E9+jf2_D+=X zQ{cK2SN|MgxD*uo)woY1?AH-KhLB2z(^b0ucAR@9>mHjwPvbSE+wZ3P@us7(L^n*= zE{Kw*&RaDxub0K$ewhxraeo#mkwo4Px&;|Fm+6Q7vV01m10E_9W-+UDoknA?OuIvQ zOqk2U(n|Gw4kMo}wfBPecR-&29f`P&UdqIBW9)Ab;qfmz|bfHa{2CkT(Eb`=TU z0eTY5V}9aP5jwh8`zCdCho#%-2jodndTLD~`*@?w1}4mkW1+3mq^rk`cpCG#88$;5QAFN zjkx-#A49%xl+9N_R99+6;Z{Z0-wJ-ORrQTq<`r9<#6^16RG6-1`K;fJsIAYs_f<7v zt$2@`rp74DmH0=!b5e7(yk-j(&7@>$<#6P#gvh<~THX-h7+Vrz49M)x`n94mb|*yY zc}y2q!nyR&WVGREe26>d+)0M&H)B_vVDH82yE7rL?c-*xQnV*%xD@pc>_(LGi7UO< zP0B}q9O)o@A41AB{8*_O(_^K_7=EmD{i{ANn)fUwI95^CXTO_t{6iYNq(7xuMf9jA z{C2htv3}yp=aA^@L7zpN`D27p1)^SsdQd7D*xVkK3iLRxQQ@C``b+(2Sm@OzCe6aq zrAiU!UCJuv_s>wjP46eza7KR*P#UXr<{hWp^yDwfg?h)}w}W_IeDB(?J@uvjyH=4k zxW0`$)Tk*ZDv`(W3BO11e&M^Tt1*RdtWXN{LU?7QQOWB=WQ>nB<@ul+qsNUwc~T57 zPZ{I0O)={8pB!2cx^r8{l+)3yl5i|h!jBO%|70d|UhB_{*( zn(nNx0G7}kQK(t=3yEK==+3&bFX_vICS2=^yrdh(x^uQf8Kd(0D{e31%~)5l9n3h) z+WO>0)h*+r36lvo?~!n03g+9b_uN@+>*XcWvc!^8vs!PJHQj5|4S9G|@>XuyxZOK( zZ-GBkc1K8mzC2>+`Petd{m}7Z(5cIRFfNn&r=S-}{>0Q6Ssl#0HZwuZUayo?dN;L7 zQ8o06P!Hno(ulY!)CVzJzce*HIdf?)H=n(5F*iGR@x<|odq?IkTs)Y0VDZG+nVM6r zIqD_7QZ%nTFp4Xg^N5W!M@B|6IEV>zvzp=9-fjOI(M^9?J*o=JGOa`Q;UnrX^@?Uy z5EZ{N4~$kVaTY<|EUr+v=#-7KnUzGz29H17D9W0HkIQvNHm!obpcf#j6#ZLt{&>lh z5A`a~8Xx}LmY(eMTb2Rfcx~Xsae5kR%@&q_S}N-P*%iHFS20aTD zWV09XG3nnh4H2AaHOK!^tLa5ImC*{OkR?+cwQG5M#YU%dreIcVL{mrg3chN}qT*=A znH6EHqt#;m%)y|eAC=Dz*AJ?rMVj8Jqh+nIh-PzU>cpv&>L_06$S7z|h=PdDN>!Y( zMb%L=4X;$y)GLm#9Ia%xzE_sO*Q1nvLp1-5OMJ54_i#{`ToIolsQB6=Qg=(k-r8e6 zWtQ{0NY2vx0uPrJy>!JEE6IaXOH`w5TLSM@a@%i-dPQi}G!l~NO{l<{B`R8?fFdH6 z%7t=rQ6nOj@dDM72hfO^WD!qOLLq3jOY|9^52y7*^3kkM^2zk-OgNzrz;}RXKADD( zvQOdz3(bmC@ewbj$@m}Re~kYz{>S(q=8GQ_Ww|i$KK~|7%nSb44@&EbYSiN1)o; zs`SVBpPa=K?kEq&|DYtu`hTqd2hg0fRapNo(9~i5KMW_=uCe|f>;Iu=pjA3j7-aoF z*8f9OaCH<}|F6-oCQbp7_5YHU7^3h)*8hvrMoQKsVf{bSFJ%2cA@%lH|Bvd=n5Vmp1=bP~t85J1_#WQ1d)&=*jlnCa%QeR^(3_ zkK_j-ZT|OBs!jQmv zA%MDoB>WsAFRmd`FX^U2g(W0$UDp4ERM`GoE_nFsBy9ivDKrbV|Mqml!=|Hb|IPN_ z$|~D``*zUM#Da!a*yOYQH`{+xQ=o(OKUx2i^*=-YmRtkG27J~LA ze>eEy^RdPj!*SOCWc|;;_stsYzn_4oBf?Ji`TiBL`~|-mCyuML!VvH?wY|yjBK!_r z^q{+TG1^@xj7?dkKXmrhUdok@JR<#JtQ#&USl^!`#M6Ff(H zt55FVz=hkL>@E{Xc%Z$uOJ!KeGQv%%N7Pr}Pf?|LFNA zkJ2J!|BvkdvBeL5jJhuSe`NoU?b=JU2{-$HWdD!C4tu^}|Bp>Dp7-4!U@kfK|5)FX zrM=$iI`F^!K^Ikr09_z%XK+IzF98PFHr9b4Ry{c%QEWu<+NMBkU8^)r4IE8ycwtzs$mFzzf4TS2LE#_#fkcy#Gt1@(}O; z!u!AU@cu8s1|yBH2k-yVC=cHMh4+6^>T9jxPbuF21^Xso|Cn{}!ovH%MC^mf_+Qfp zI`99&`@iu1FHbgZ8^im*G+0KrfOx$BOM`qOd{u7P{x4Gh??!AtTu16$;IF^FA#s5B zwQ}ta#|t5R9&|^TT5FsrXfK4mHEZ-mWf7flD3LJkR##@E`;7m!)e>a=zee9oZ2!yl zzr6pmXZ=iFCvZ95{~0nMU3A(vm+gPq{@0U0BPhxHKjQ`Q54Qhh`(L*IW&2+t{m4l_ zPdWD^GbexY{?D!ZFZf_{ph^>7-{Ae9u>mKxKH>dec>fppq)VX{$NRrT?EfPDFA8`c zT!h!d0=zJ;<=6}VgEt_;TKo?_LK!sqKNRr2NIn;B{MFV_0P_DxdGGMckS6LpF&*+a zW&KOYwd~g4gy&04pLJ9|DmHkZwa!lEcFjTCLDI|ev#8}7XxcO6G= z!Gi-;PPYh6>~+KMX1z~hZlmqlCd;g?jg>s z|4ByqZ2w)xrfhYqGI=5us9l|A@+a86%KD#;*a_=@vi>J}XZnO-W4fVFWjz7mnx{+sQ;m5=_oqV!rfDepr_Ehp^6m8MJNEP`Ns z2P9#Ax(=^6E-$vXpA`kuD&B?*w4c#_w6Q0y1nRkr|9%`jk0q7reEnjHSDOzj~`Qqud4SQJ$h6f{vmZZ zua1n2;=iFUV>>pBenBx$9bQ)RVnHk#VgxY)D3Q(rtMEO|8P`!oFI(dF+)2KW0ytNl zb_F=lT!6rPL1W%u>-A+YhRWZI%A@uqjQipw5J+Y;5XOD&%F^-_;JcId*CGBu9G)-E zkT{MVU*q%e#SuJ(HfU{2d3=PJiWB|d=uV78>2^z^ekJK%YJ>iCem!5f#eV+<5>EZ%UU&#Vc?2hDeAE`>RYx&y!bsGiMVX~ zOXWhj7{@WVpcR~ihqx_J#)wO5M}u}oT+_Ti9e3J$}-#us!U2Febfzv7GQ?4?22TnDK+%4UMib z^EsT+39&=*m~YOCoqi; z#i{A}nVIwBW3y9}moJQ6Jakxn-77P96a^Mqg*u*nXlnZMqZcQ~=ChX{opKqj9##v6 zX4~rJ%hMC%m;JlAdB+`B)iY|fmN)c*T92bXT~Cd&tY2@J+1SJc6uD+*y}XX7m0Gze z!#an|@Jqk_MYn!gMS1p9li%8M@s>}!zt{RqKY8`}b;Vn2KFr@a2}t|jo24U;y24(d zwzfmwllF^&A#hx@{W4lT$&fv;r*lTlB~TjM+Y+I!yVqoS!?M+x^Ynv z+NiX(rW4X>Yf~e7d~s!_`>pA&N3E@Ij+7eWbi`7uaHd`gP0g5gy*kCJXbKgiWE?zk z)ihZ%E5)*4^3qr00%hXDVG>fDyhxg2J-cHXW@*-bQ>-+nTCh%DgHN@_mv+G@EhIl! zGR>kMzo(YlRqn`*yV$YGdqU>ncm?fsngL*;ag%zuNcmtH8-o_M5~cqGr?ys1g}FX2CYumo5FECH4P zOMoT75?~3i1XuzrfeuUHRej2{lOOxc7URR8W8IAo%a)T{y9CIT6@EB`s?*=P>eFO) z;{4cb_A<1sva{#LCbE|gxeP~CGVXLw538;nY!Eq6rmFMAr042xwcNh|U8=E%vYxV4 z%iZaj%d^n%nwy_}{19}-e5Eg0*6Eq~%VQ5c1dg%!vGMcSLswgQX2u`MPRw7P%+5{B zPFS1HB9M_d)*v^s}I!1N}UR_}-21AAO}27L$gUC=cO!7uf{cDw#H>Y7@v;?-97TC37m z6z`tK_#qvrDDExDJzk}&jkeX=vOzBCJ%FWFgbE{dqTH&d6{Y)V-E zV`crXiAhmyT~Opj)>fJDA}cSlwyeDKA}cSlHtJ%q{#T4H73+Vo{uk?i1zurOxcOq$ z^jTI-kD8)iU#jUJ>Q$a4?6)WT{FdcjMOlI;IbobQK4R#3wPp*;KP?q?{|xSWZP(u_ zabSz$qEYhiXvJl%D%tEs7#{gIOhW``@TBbjsMUD?2j2f76SqB(iz6@sCQemV@%Ae0L&J z+Wg-^84P*31o_jxzctjJb|FrGVEIn6i>(N7B=_E?BoeHBBhyF*hHq-hB`{N_xL@tKXo1ezpaB769L&yU6 z!cEqAsk{{F*xMw0i;gF74wCh|`S$ zX?%Zovhz+JPEw6ZJO;>}yI#U$Kv+S9U6YK@vTKs2rOGrLxonVY68aG3gC)QcU~d8 zb=sPQ?Y~B=#k{jp6=!Twb=1sA*xD$pTnD9%#+!AGx|Taqi;Zr?SvR>K;o^98)R*Cq-(6WY*i-aHLE0?DMyssWlCUQbXIGE0aJX@g$I1^-0kxH z@-qJS$fdA^82@X#2?X2!n6Yju82_7_8=qzSAGZHND@fkZvNPMKURPF_jQ_=01hV~4 z>ylhb<4wl@7PU%A!25ENk=gZc0~(&}GXBT-ALD=Q|H%@zEt;Vl#{bp~9Wwsc+=zV0 zEes=jJ8CD%){Q9fzuj(IY()RIy4PBZYM*X5QBxEltn-?GPYs9!1 z|C6rX!;>NJobf-#|Ma>qR@VQM8V{`dAtmt=_Wh7zwTSiqSpSb;eAfSKX$ON+b0P+$ zOt%Ka`hT;7Qkx`3n1fRNBZh~4zzxysn%)Ooc*@K8ALD)-f71WC?fPCf;QxFr-p}F0dL91He}mAtCjaLS z{Jv}OKX0Q1n&K#CNk5dhxiU2H{wBf0lBB@u}MN5)(?2;3%1w|-5fsXJwtTA7LV z-zh%j!!tea+}Ctu{Fm|HCilc0f_*kffvF?lL>end#(yR1$@s671mnLc6v0{lv#En+ z|L<`iUfo(PhKcn*S^u+D0*wDM{@Ye#VNf#)i=rI6B@z37|Lg1jo$bHb{@dLIDoIjTU$(-Zg%vFGIGSD&jQ=%#o-+Oy z_)eu)%YWM#|C5qn{7*`P@ju4@ntIO^16HbmZ-bUk(yV-RWQm3SKeGQvrHu$!|5I~B zp=Q}4Za>lO9p3{uJS}GZPuBlr{ZH2aWc^Rp|19T3WHX3B4mTYC+bcIasRMQ{4hQs4 zFO`I4x9R}4i2+E@i&0M~g#3A1yAamaCic2D0o!I9lNsH5akT*lh9)1m#Q0yMZM-jX z-v6a_sXfJK{|0@)cI4wU%~vqve-ia#{7*`P@xK%uL5lSm_W#&oVZ1@zXPTa`BV8=x ze{H}oM=uMr=ENaCnI&?YU(sWk*#9Hz|FQlb>;Ki~CibFUjq6qVtAyx%z385dR!qYznd+!r%iAk9_H;M{=hn7q2z6Ai6f98|P%1IbtO#2rb-gnO12AdS z$5cje{h&Hp6!}_79W85xMJS=1nL2Umq&kXmATo-$DiDSDf6-Hz8MFT1b*=xm>(TkC z^NpH+8QR&n759ta93sy4cprg!-|D69o$1)sz#P){qnpGUwg2xYy4T~QxC~m}c47~pf@Bh*Q?Xmt}jA?I%?SESv4C8<7 z|8bV}|88ifKw2`*B4GnD{R-RvHf#4W{^w$P_M$M16CTh9ATK!6YL5Sd@jtB~?C{1N zQe!*G7`J8P7~cOm=h;}s_*B#^QPI|8j9V%f%E?<*M`-cA1nhsM|3|{2)^lXm;s5ZD zDWm;fZWFG*M;jg&AA|oxp&8J{Q6I#mIdTrMmZ|*0h!+OBqc)C*y83(dDG!tjsM$4Q0xO9 zkF@{3P3iX+QgFR%paj>W1+yq{uJlPyi9jpos_4~W6s;&3EX!!_UVjDpIf$QC({e_< zUx-{W;T6RF)n{l|Z2t!B8Se8a};W1K|{U?W!NU-*#$6nbMN5D#D{3 zFqrA<6*AMOC9gf2y`&jtrSa+za;yrg@#5a5i+<8K%V%Ea4q*1S+O>PV2U3sXrxm^J zdb^F&pg zw0+k7E#>xaL@Xz?(T?8JTt~myO^-gPd8D`17^kW9Vo@K`q0K4MXhE_5r$jv&|CN$p z{ZBb?#C&wm^H2KN8hYLdbFpRE7M`k$=-S)ZF+U;3XkRsqAng#Ey zPrw0qVafXuT0}ss&@uug((B@)eyjk=?^^Bi5NSUNe<98L)$1;G`fb@P7L11B&7T>viQ@4~b{|KeQ;|!_bWX9|#(GePO^C4&(nV+H(VC&B3c0s~jX3 z!{RU}OB8DbQMF72?s{Sjb7+MwhAUIjmj(4Tab@eb7tO*_9LGj)Ak7vd;o^AqLM}U-otw*!<>qD{ zot?;--51)O{~Ps>esV-3hGt59vpP3{lbybqXr)mIrRh`*-60{%NyPKn?UtP0Pd8QT8feuyCe#xrtPkQPiS3 zsoPc4*2DLI68HCvS(dh3nlt}a>L z2$mtAMPJs7Ld~zJuMw6h8Gbron5u}YTES6ggEkr~U5XGn_@Ex%1@M_!~`@Sx;w#oD7)oIgF&(Wim;uy!B zo9NCIx=S4m<0-e9s^>IhROfoVQhsjd1pumORV_(8gPXhIfu;c5)rz=3K;@DT@?o?T z16Cm3D^jq_U)Xm+FIc8+E;#DMD_+ssXo`*E%!Aqtb{fn>%8r63a2{twWt^*hV_4&z&&Xu6C*Rm|KfyW z32#J;gOnNnYem0U|CjMU#{U@qyH4>xny&G|5?~3i1Xuzr0hYk`mIS^7RC^21rEX9U zh}<;yf%-uMpg~Xuv=y`sv>mhqbOUH7=tj^k&~DHWXb)&FXdh@l=qAts(9NKifo=ia z3i>Xg>3nRu1o{Aq9U}0%=WgX^8k+vZDDb_8EAq!TzWk@;@@7rPmr}*aAWh(piVS5I zFB_4|bM?ih!2Qf!PoKE=)X9^lPfZTrdpbKleC*i7x#971_nsU+dUR~;=+S#8jvdb) zf1RQn@smUItNYCPHlDy&Ky;5t!$QFyg5j)5MjSGxRz94*| z??-ftpx&2yQnJ>Nq0Dn=1Z}|16-5p!O?stdk2qJIj5WATYoL;-DTa=){D|AZr@~Ke6tthhOfpTLn(|~>%#DR%Ys?XYmR42)S<>9 z^P2G+hq}q~xMe3sGY}mz^nPJx)+`TK5*-r6UgSbVdu>p6aoZ*f!bDk~_G>Of|7X-N zO3ElBiyaw0+V_mdKlWtJ?htkQC^oeNgIAJgp`)F|fQl~6Zxj}=az%1u~KZq6#? zCiA65K|cOE(#gsZM@0*I7%k{!FPgxfK)qiDim!EFH-=r%%fTr_oVv%^_^9m!Hka?9 zyky_A!++y$-eh@^VCX}JJblWLuF(;6!mdV_bTrwSuIJUrfauK-1kKJNp93Dcen(EQfdEdHfvc7F1q_QVusY%fWZ`*rC2e zHVOKuqj7ovCX3=h)cZAl-G5NZzzs@ zkReXpBLecMn*?-381j4WLl6dypf@%NqjPZJ6R1#lHXc2xdIVf@1eKvH3H(8GfO{4| z=0#wE9fJa!=hr)%B+xl1@Cno*P6DgAe@rQ05uyqrKvae}b&ov(6u4wsmRN!+a);jv zIab`TX=3oEh=hdR0iv-&hOP|or)73+Yj929nXe2vQqbqtyYNEn*kn0;5cU0tUvU{q zIRs;7lTA)Xx(4}TNYHEhCQE`=?aqK`C5^%zAbG6uLw%}JFlty7yKh=Iqru#wstSoI`=IiTMpsIH1FKHVUma*RDKa<_ze(A zfx?@m7!a<%5WbHIj2o)3ED?i?k2Ri_-HBY`7E(4W_Zbj4J;+XlE#tQV3?K ztwx+35r)i2Hi`ZX7e*uO_Z4&?WOsQJ6-@jeh8GW32$$ibbWc18|z zxR6uSo=uj+ov8F_(AH2W<3X#JKW`w&d5PF3HjO5waIe$3|@=pK?Lu}P|Bg* zWU4d$#5l4cq6IU;c9cz)#6^_gHB<~7GW33hTZB7}@LZOzaXN)+q627Ef|TQi)LD>u za>x>339tlM0@s}czI^Tbo*hu$z5NSM{Sl1{e6R#q0xSWR084-+z!G2yumo5F*Rcft EKiSVU&;S4c