aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/develop/update_email_hash.php
blob: 57aebe3ca07ff712a6fbf57b82d63c9c10d4e468 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
/**
* Corrects user_email_hash values if DB moved from 32-bit system to 64-bit system or vice versa.
* The CRC32 function in PHP generates different results for both systems.
* @PHP dev team: no, a hexdec() applied to it does not solve the issue. And please document it.
*
*/
die("Please read the first lines of this script for instructions on how to enable it");

set_time_limit(0);

define('IN_PHPBB', true);
$phpbb_root_path = './../';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

$start = request_var('start', 0);
$num_items = 1000;

echo '<br />Updating user email hashes' . "\n";

$sql = 'SELECT user_id, user_email
	FROM ' . USERS_TABLE . '
	ORDER BY user_id ASC';
$result = $db->sql_query($sql);

$echos = 0;
while ($row = $db->sql_fetchrow($result))
{
	$echos++;

	$sql = 'UPDATE ' . USERS_TABLE . "
		SET user_email_hash = '" . $db->sql_escape(phpbb_email_hash($row['user_email'])) . "'
		WHERE user_id = " . (int) $row['user_id'];
	$db->sql_query($sql);

	if ($echos == 200)
	{
		echo '<br />';
		$echos = 0;
	}

	echo '.';
	flush();
}
$db->sql_freeresult($result);

echo 'FINISHED';

// Done
$db->sql_close();
-(0ba; Y(̍Z{TՏQ򲠾ÕD]ЉciRhKp?.W:| H+Zc+!?Ih|lƜ.yNԓ1}72*i*ܤƚ*6LϪˀur!6h OgIqVdab'ڟ Y晪m>5׎0LT کm++ B9!Z2.ܴYS"%l5tqǖ~aJ>7+^n*ELכjRX#2:OtL Q?$_#wҪV;D'$}˕,AR W rөͤxk$jY[0C-D_E+I4Nåb*ÐnXx' wFBD:J`m98Ogn_ Qs=gU*r-o "׽y(Naiui%˕?KTFfj7ICG >{Xf1K=F̔wp?vD6xG~ "Q*f^SקοX=پP%. >ۆqs,`^[DhF!}5"{1AFÑt]WGXξ|]Sm[^$0\*h`v;!nHXjԄDAF뮧z#B2FfYu>Km?,GbI"3mA0m?MA@ bEM#AF27F N4SX̌Z1՟M'WL>)vI Į*"Kq<_gTݷfj=xVJI-pw=ߒZ {Ym&d o %Ճe6ȰUwS1ĉ1pX>ǐx܊ՙ6 _A&r5Ektj"lz-k)H >1h/ϱZls"O| ِbuvL[:mIsh~1@$|!VU![#NӾ[3ʢ-K$+Gi9&g.Y71VX묀r1j{~Rb@r֥!=i72+퉿JD5 $kfi ^AvIWML <"N2F*%R߱ZWS;Q~gh-1C!z3?|Ëlv i1A󵹬k;.RSkq߽+8a+]d b9*Ԏf1K\2jBB]l*Z5E'v)hc+N$MZ=FW9հs_/3ș>iwc|lK$h1UP;?n7V_7goorMf s̨f$zsFNMDS3VbԨ/^9GxqtKō!~gjL}{!6ƹ#1-HJhh>&E=qw8oeI`?_GM%p[ʔӨ4?0;3ݶ6c]qlW tT`db qfDk@RAwh-YܨQ}kkB8f8NCK67Ers([%Qen3ɀO,gB:W]s{8D;Bo%%v^7rF@ɽӷ$g[!*~DϺ/zLUFkUFH+u!VMLDP:g@4u9@_r2r`G8 -8:DLd(o`.ܟ(ݙ@\rg/ixl`s)mⰈ,K;֓ΐFI4l`J`Y}('ðJluB8E)AXU P& ,bw9/ ˧`[𴰁>ȤF59y,Q1@A]f!6 Nnӊ~ H;(SBuc}˹a>5 r[90,#R4=Z?cH$`=zZ!JQ7ƽD~&GRA{ąAB:VGu Lk`$؍pL@ٓoȣKDCGVp'YdK<!zL@h\QF@{Y+,,7mҒ.,'5S[ZmjUoq./D1ssK|*+?A"kYj8:)VFg ,[K5SGMVPۿn<Ρګ~ƞ¿ cGޝn̊9&z;H@!gjFY< @Qgd "Zr%V)JwO &)t5BW(ȥ3f7#duHsE@$d'_*+S^9ZkFaM ڏAᣂ0B q;@b:Skha=ĕ/gOh]0v͆9Г蓪}M͜.u;Ys SrAPjmmԫX&3WlbhY;x[PkqKԻྫྷQ4^dyvF;@RwTap`64 ϰ0Do [4bj%MydRKǿR/*U sMb:iI'8va>: 8!z+7@'E2!©Nvam;׶NX x7iX贬;l}3wstM,ٌ$J=_@ѵ@ՏȮ2SoHWݩK== ˫?ك6-8NCS˹,?(">\/CD<1␈MfY2 Bc #昙p gyŦyNttjq;a LQ"O~x"-NPkN}v:7 D3eC1`P.F%5GMS69GFdSNпXfb9!QSyIr/a#v'-EF{'獑fK~:j3+ng5@;|C4&יsGJwx4KV/y7][aH~C|ҽiy?0(N;A~0;c.Nd"З8 9+7|r+Nf % +LJ͙UGAN4qUblz]?+]ٮ=7+A- w3{ԓ 5g!$SSf"MNkoK(ˬUSݖJ0`p~,SYb mıdq# hD6{D ̟_~ 49R"Uew#2߰suIgQYk/kQk)f.\N^,gO.InC7/;: .ZKn脔|䗡+iŊ-&zR(o` `Z)Zf(?]n= ˓NS4:mo7\s!a5,L]o0q0d+fC._a) o[>l0I#ώ^92/Wb'K_dWh7͍6erB#nO]cѱAfx˻ 3`6mq}%?A^*d4T$*CY*݁AQ'TbI]K"n9a<ҧ>0.>Oۑe?#conE1UЅMIFMϤE XcM,/ lqH]lWbhScTp P|74@yba\D1Gl)*W&r e[F( m -Ā1T?nEgkfΈơ;q>sN''$0^E#83R#OׇFRE+mWJ ) sd ,9O4H ]xcw:HHl!nWzO$\3En. jͺ'$lA7XKGZ AhIOX@z/SvNV"qG3S&]՜e9Gn %,r27z : I -%:6CLV Hj$\Mdy.V)4m-[<ԞiH\Ml-fTr8W2؍Yȏ쪇춴>2fɭws$ѫ 9r*GD&K ҽ(yHjE)C& (َGǟe|Wԁg%n'g>;`Y~/|ƺKڞjDW&tC2tnKS$oUa~cogν1u5 1[B*,K%'7SIljvݙaorSQ"c3cͩ{ecjRuet31wmO& 3!-k7\8DnCjozꑍR·Bq>ơŏo=Z_ F,Z_VPXtYh."mb ~N?~q,bL΂|=NǏp8zbSw铈C( \e4HggBJoU5R3Q% E^&4NGLik>[uJپ}u,PЮB) 8fd)gYM\a(DI_LKys@4!)^wmS]cwà ~ c*:ȫYe+E~ uw*ٮQJCv2- <~؄aPyian{}s]gϦvgj?4~;&G\>9hbk;vAppxY _]YE +Sx:鲪@DO6b|;ӄVEx!Z)GʢP-:͞Ƞgi>31&'{BʼnOKm~ טB%׆{`=_>(dN{|Ķ2 \v5̐"HR_v&gTQaZP)l7J,LמU16kAe۸ǹeEsR缵~jFkto{5F.4"uI'z z1;ЍA>S< :i[ 7nNgkfubpL5ҼSwzhNkEtn(et5x(&̮;{YzwPX(%m: bs^D,w)ws ʍF oTsS+8r P;UW E;IĘ^d>F2̏^ڢf/SJ*e-ѐ{n*ml">>#|%Ҧ|opxQ%$&.dryF1Ny+$RI8^I2D( &?66T]!_r)_`Dnܭ^+( zbOQZ Ą-Ȟa9=؅x'Y%ɗ#=Z'.!.w-%맻XA"C*|#O!j#U[TXgcH\hok0<8V2y4ƿȦL RHO񀲤Tfƥ؜4:!i5i3L(ڇЁ5b]y}rS'/!7Aeu5FU ?_K-v XUח%P#&)/ }>^qޅJ'3Jܸ3r IM=(i8+AXQݎ"`@#RթTE*,`M3zdVpU-H*Ÿ89*fc3DOJdBna"9H1ZPA7nDžT/cmrR,EsJkQV ~p}\ K'- ,[1rxJq[*PhyͫdA-B;eci!)/;^Ug̶I I>i>HY(զwrqG1h?W+"|ǑJ l I@׭aZS0fs0Cch!)t[]* ;{ҭ۰W VK6(vʼzP_<̴\$Ä ޱ=vqu4J#ϖ' Dc|#eг]wf%`87hwѭD-nq:MUB@9R|+<'0q =ɣ'~5}QE;F&>cH+ =yǦ;1`IO9dpi~m[{ٜ+G}G⨓1DGַrԕ3[d_z-h^? AdoEQzo_R`DPa]uR~\ s9v^){Cx>hyNjm0~?AJKsQ,o9|z"sZ:7нwBZ{;\3jñ|+ "j`M \iZqy( !H^jovYD,/nC%%|B',.?bUuTFH`4:HoZڻI1SyY8fV-YZwKUj{<\f rW*=`7nX0HgYew Ğ VFBVLj{r![?{^ctPݩazW 4;p }?>D5 ?M5}5Y],tl) QoJ#Ǩ_7\%oM/EU)P!G!)H R#%oykl2/#C 'J2]Ŋ:KV,X¸6(p|Z8x`_HC KJz GZK+^yF9U"~69GB=XZ,s{Y^:^M'= ȝeT 1u\I$y9!bPz%=S[dj\PIM9mH4ޱ{uis֓\RZdž+rwY/DeJe06IWD>HMn֟ 'LK>x*:O_!^HuJZQ *`k IbJR^/ss&N߮l'KQ QR$ ^ 2։i놧MAojm9W,IU RV jmUYbS]mw\,YTb=xVp_t~YAW/|jV3jvjs*b?yr=l!+Wƃ3uknuP7w{KEdŸ [o<4eETӷHW?:݉6o/ b뒹Ֆ܃z "ΝOPZe+e)kk)n٩?GtQe9r@B{ ē1.t'# ]f+Yo鏏YmmCk8}aOMPqv$*TzAVq~K9l)&%y/j_hA[(,N}bA'9MSY@%Uto ں(ˋ_ {}@4s*^ٵKA0 4DU55^C_,u ;ƪMl*Sv L`K6@aN\}9k]Γٙb#gPNL%":?\`n={! ӧ}w{oT$6)&-qۋwy_𾨈Exc:t.0@L!2ʗxHUۈ  pvn0xH# V?0G1. xIV܀Ndznʒ?'JI~,E .7T8}45ȁ*z-m;U7r-< $$1*HUN?ZjF'EËݺͿg9S+c`K+gYrMJ|Һ iNԋt]VB:s˯7{ǼD1P30֙!PVQK|I*k8{!Bh\3(8$d ZvfVVwԮWzlV;.B"r :Z9'!' ˵)J@%[ݎڝ( e%BV&(mu!'LLu_# Ҧc<8 9us4%GUrŗImdF^"~tN FeпРb~:pQV )ǰ@¼g.;woHn'ūz#iKԂ9 \+}0EaUAF?ٍ44 AB*(]~^xP}so/yi0ū,$gaB+}+ӯlAW;u2P -Tp7LYk >傫cbh.^Xw&c8 ͌1 rA֭N{ E*'QuagrT1Vq>nAǐ7BKZ/\%٬̈́/蛸6j)Y4)*;6 8Ӡs9 WRpZ#yW&$}[hf)Hn)Zc"wBqL$ǤƁ;.NЄXZRn>1EGVtet8ZAԟ٨!*h 7Et=;2%]ZWWpE]cpsM b&ղC(X:锗?܆J;5o2e f+;TW߶s[{amFKeUi-x95͇GɠQ-}N['s+@9UݫcNDD.2=!;C 0x>L ۺk{Ax47vaȴB(o3SZ ׵s Wp׫u͢XΊ&kFBO+͟2=Ƚ"u%Z7jv'iЛj)kuDxmcJCh^IipR' :`*Ha8]QyGG$TSKQ,O`B? 0+O *N;\J YG.hra'Ȭ莾@ڞUޢH/t"3:#yNI6Qw|yHJ4A:cnLė$T[XT24䷮șz|: ČpT\6uKv kHڑ[K W lPNI|'jyDUS .SBjȶy'~ECClL%=f:\u)i%aEW4 x(LC0참eNOۊFh .kT/; 7BIR7T:d'\#Tuj hxZ[ӢhFALmcqPEk#0;/XaK%ryl0"a ?A>[U0c~bssfNjc룂Bk}4!2eGڟB v %6hm2'|y8H[?Sua|]z%> =*J&v ZN.tT5 Vio=%G]J55eylAi_7Q"Rqۓ@,fbdžIUzᥔ>Fmj,2.tLi ĸsdx!´o^M:^W.6kMW1D~ɨ=apdy'{&߄XQl'~|t*ϱ9K$3ka%!5HvG٣+UWbUQ|0%}2!W=꽕< p|`L! * ԚV"|X4A Hm'.sP[Ü+Pk8 rhQt?!QFSKw-5mY _-)lg-,%~4Q:Q*98< ɌFZ[VWI1<3Pspm8/X[ShDiN]Osw mx*#x]`86FѰՓŖ%Q_RO6OO(CӍL ("_ƷK|qEClzl '6Lhf&TdIc EZ~F@%t0C*jQYAWIIY :ܨbrm\e yu)ﷳvq@*0P>ovnn5iw)ܬrW&]Gzl>Pl W"Vpeb}Q'&bN!%(EN[Is-yĺS2p젴 ͱ@БA)҆M\9DlÂDsVp*%t}s@~$c_E?6ZR2ɠ:𔏹pޫ.ɖ,@HjwP <`wi_ Q׍9ug&ɰSAqyyW u7<];?)W[Ȼo^! f.+(O ] h&w_B^ۓqg*KFo8O Em`S?sY,8ړ4iEOTve!QmTBCG"-ʟnd5x:Zsy_l)id `تH"I} Z0I>r7{ }J ' ٌ.E(w. .Cϡh@ ꍕ5M~i5epN$Nb&ӌ2KnDԣ<%en@=I]knHQ&5A~/FeVȎZ\?ӁUy*~u0 ^=HVs|XeUF̤tjBG`cߦ9, v/D"Tì2q^ R2 u\ZМDgߏb\*Ua'O{'׀pN7?nyTq1%xR3`OlZM.u.na{8SGuhV?)j-#-I~#x4]e-ZAVUwM5a /8?_oB&|W1㳌ԭWaqɑOHidžy؜kYg,p$g}n ?UGp@g/`ELxƱEOAdڱG@˵8pW]yۮK7x3yeLޮCPpb1/Q Y@gDX\r }=<[RM0D _Y wK{(=h\B+ƄN'K.}#v҃v 隄 Grfs x FiJtmfkzL4>Wt$Zݜov-C_leuEyJ rMsP;-x`jo'H=&Kʱ.8Wr_R=ym?HihE8T snV㼰}xX]uoN\f'Zϡ#d~ }kD=}03@rp->| e96GD]jw-zxndeSD;s9T`.̼ 3vDDHzu=f8$s e. Fz3;νW43]ͼ0J%+?[GUB@odJPD֫$.IP{/XLsѬmFtZDF*7c<4_' M mk9c4rl~Br[ /G>0_ ZptÑi@*ϙ넴qV)1ڊ||x_پBe7!5D 5SԇKĪWJ1eMab+7.M K$p0hD*Х!щ\_^3%9+RJ, oT!NA}pdOOwJ\ˤ|؉JŎ^aڂe,X@_)3/|֮“8 Q* ռmmO+VbˬJOXD^2YBn?SU}s qkHL p* ^>`x;DktD0(6{eJH)#8î U9[g;?Bۨ9썳jL%]MB,'jҿf.b{CܶupW ~0?eRYqE' SЛg.Jv" Y@֛A3m2%>=5Q%eAq{/[[Kxb_?v>2sA50^/XΘJZq֙9ZvA'1{#:N%D ZX'u} ɾ@d/$[!n9xؠt_"pY:d•"qES#/!* Sr\0:3Wi!!1VpOGקl5v3$׃_a8Zns"$1A`;ӹ1'',rIh(V<ڮh֋Za؉_a:s,a?ŋcSH&KH6[|_֬tc@itM+C8Yb`u%DKyMw F[iMl>Mj.]^ N2zYQk:AFPH`CTz]$#=ؗx  N+paaw֜EAT#s2t_&?^ fK%/KèAb?<2WSVˤ Kvܝ7'^2 +g#MD.#5 ܽ l|0CY-h50ll',=v+)q?pa _@g+J=JŒX9{V8k,%sj$LY$C[ `KI€WlʴXYs/izO{z =Hj`=Erp/Cnќ'Xs5i)@QŸaF1&[h6/=-n-酔R8ab9)/vA '8rE=8 !8tTOC7f+WJ7 y*SY]` moq*tIg"'n]ik>W?n!q"ɤUMUh_=-Nvz|ZZzU OpeY7nv4aH&_ Mxdh ^3K&=Y~ާPd?]a0R DH:ag?SNl=l#<,!E2N ߦ+()l/omXnkǁd b!lRغ8qR s9qGy{"t`Zw C %3:a-46rN~1^usus[?JG!mQ*Pg1=J>jNjce]q&:N 20lY`@$)>_["sO#|n1JRUKŵq_o٠|hI>g`s^3CZxF}-v&?!XV2 lw|l*S3ޓNZbi]}BObA2Q^Wf>%J%lKF~wbƵQs8%d Q$-ԑ/d) W?SQ؜xD EqZS0> 7ga#IV\ \I@M;EKk}OV0T''-.[jMi^όww/v%.:R(YsoHb T|,7[nA'V^B2d#_5`B 5a3Mx"XIl ѣ՝4x`%nZB5ߣu0j8$iu[{Zfע |e sG L݂{P?8o%?k&gzm3:pKoC,<\?%uPl)  *͈`i~޺Zs MÒ7Af>xɖd gd(jR=bfgA;k>7 )VynvA_1mp}:G*}֪#VLwzƢ`2 li|axk&K6aEnh\aq9k Оɂ%= _#V}=V.NL tA'6Az qN>rn;cw/.:~´~J]r}aRO<= Bu#=Gk_"׿kSKqT#gSw,="gzwhLCqY4 C9_>&<$B0zV w(K v( KVϻPla"nDBޗe%mMNWҼ KOQP_Q|(V&xfƣvNVi1hJitↈ_ƧDI}6L<$ 780A8dV=56MiJr6.02͝lD=Hֆ?dvNО UFrGnSYzVtVo]͂vVPD^BiJk'zOρ),A-[Vܘ0ݤ28B,nŃ/ з6 '^MJz/#U&Q-ُw\`ƉeR!Q?V׏*$D(iWE^40 SdXdnRp^9ޯʒE ڈZN鋰S[oIn,g2Lh4v9MZ)`_u?#Hͤ):5&t>ywiO흎KQyUXXn} R6/Ig$}[œ IfX)cr>ČSm#ʤs^}kVnm 9v~~veeA46k?lRDeك\$Dkd}ok-YĆA _C4 ,58sg-Q+8aGxk)mǞ(<e@sDxՁTHҐ`h)r2^Alv@3txGKHe=`e>Z׌EO扻\4(; XܯiSGwIh& ZLXmIMCAצT.)dlQ5M#u ֏:qpɉBxFПVs ͪ/"2Sx;&CLGgsw#ubJ=Fziik}ڕ2p@8G=+A;zbmO Xʬ("Z@; L'ټĿph%apRjdэ؏& WwCmJmT7 ټRN% Dt :B%p@^=Qh`HE {~8s-þ}bOÌe8/dn*+~YzA[n$<,0CpjB3pnY&Vu'0]P (|yPu']Q4Z+̇5^ GVÛB\f-ދTWh~\Z%flՉ 鹚=Hr U'ix/PI{W>ᬪV.U+kS1 h#Z+ [m9Y\ AG3Hoz 7lkf$\ʏC%Fn'?h#jVB3S[p~Q+o;dș+lzε:J @N>`-5 |bc['[ޣv oެ^9S',iy]MAJHS ۼaVDUs*߫n&b,WD˝Y ]E=BDM.?gpRI+MsG6x/>+є{`C%*:e8oE=lfsyiuvL;I_xtX'LݲY,-ԟ+qt7΀M3o(uեyں@ u:5V>)"wD]ŀW' ) ǁqGnT! ҳ.z{*T5ĜȺ5tD#E##-q(s7Ǐ}j@,hi O0QD;! U;Ob^s~g#XE~.kv$\OgEY@K=Z;xQnwN*; 9+JYޚm  _eiח?OdAƙN>ij0|H>}.ljb]dde~Yx5 ОNf݁)`k?Dv6}dw-Qք%Iem6ϑ d h=R*7UwRfyDe8  Or #7⫠6nք*O]/5{}7jKPG? Cbhv8;Q:dD&U-$s%mQ#J |%˜Qf͑\g} qaLR4lۜ3B| c~zfpi!^U2  5C٢`{,e"?)&[ j]"x7J0q( xS`lKWW$'́A\cjԄ1keb-٦;EDs`r9 9( |mJ)-oP  P}BҐY,E+pwd"Wu;&MKps Jk:Fw3?n@,h;=-'/ \5;J75<")I2{9cssfrU5  \(e0To+_-|H԰֒& J`욀;u ʭ9!#;(o0f(9moMc p< "/"չ1EHYMv]K}uZy}5)42)afaE3ĮݮW|<}[L>WYۮ?i#Z6)PmB-k4‡xbIR`:МoX#q))d*P)(x%9Nò d$'vX'_7/`W1138ͪq2V4tƇ C&}|@"S|2%Pq)+<=QŨ/z>b) CYثl%^%==*u`؁c ,3C:FSP&p-M,S$ I5qDK=Qҡ]ܯSh|6tⷥkDQ`c~ n2?cL 0(pӕ(WOQ${@zzL35cX.[e>me5Q!X?qDOY"F򙧳ɚI=b&R"{J )g,rwj4dNdv`>%bN ]3/+*U>`ˍHse &lzЉwfo y7$7cjuݘk:A2: ,ъMF|4IM`d@0ExI+ƪ2G!· +N24PiΣãG؇ kk/ǚ0)?ssm#82AC=~m)CC}PV$͜ݙ@Js 0K'M;DUPW6h`  l 4l=4?凋gMZ*ֶAcp#7pTP.DvP_y^1zRQndc=ygѸhQ6?Sy+uȊw'vEglqdH`Fp>ӑ[B&Rb[g1A#{HC@Oj4P9G+ҌD"(;I+mXz:*5~s7laמvYA7`Ee.zzmNbYr={Ȯ:A:4@ڈOM2;e %kZɢhO4^\տ3_PU}t ڜUn`񺮆t2Q%-b͢ܓ/\fއT{ =!7=d#xJ.HXSV>V#oP2maQ1QzEq+5V=v2^ E wZlى6{ d ey:J"Aip2Ecx߬oi 3>3Iy7kAy^@q#dHRkڨgRWWïrL=rVgid%Qk0`,5[A۸盧 H_@ùm`s}r0(wĶS_l"C[y\f6WnD`d"VĿ/pAݹ BNI3p{h0kpx{^>I=`@'YJ_8j$ _!quWru)pMҏWרp2Юt\qmv`o3?xE[nM><0TS'-L ztu``I#WGbfZ,7h򪽨{'"` 0@ӎ|@8=6*\&Z%m%shbOI1Q4IQw\6?pjt$^v4yNBKMM t5}.7kfvii8GS~{)ju%Lk7->;ɔ]PW㰡 RൌG>(ݶGL9`a:gtε|(&\+uPvq䒃k]v*k,niV.]55w=Ħ?}QV>B:GqN 9ʜ?oPsBJoצ4#߫/7n[lnRSq)볒2p}L,-_? ZPOq hF.{KWa 5VoqT׳;ds_ "00(T"z0kucλ\lØ iF?I|.wTEtWofS0!b((7驼S8 žЯ kґv0B4Y\,`c#x=;~LPonx&ݟ3y)}J'qmd4WrHOc$>8 8WɃn1вƟ-˴69(Vy".}Ek(_җ<:_c*aQ{ڷ6*n?L«eW6X-&) `sJ* %>b9) :{ E>cF'_XG_A)f?U M)Vgl(d0qgU7!F89ב7XS$n?@ Ф8f|?6[ԆLhJ`+%E̝ V>& [*&Arrb@_{F7ro ejffl/G.QHi~!.Gװ{Zo؄VS(tTchSBYȋ.Q`S8]FϒQ+ͽ|YLKHM",rЧt~x |n"O ϚZGH;KNT1{.QyKu !lX?z&C W3OIǡ*Iu[xO=l 5b6I!/ _XtT>#+vd-{mWKؑЎ4"ІUG*/?/Ԃ:H6}(I =FLCI]Glb63#DU"NtWv?p9`ZqIÕ X,_ /f;1zgAigDZ fY 3ϛf/IWM_m-UI}P9Lg#]/iQ2֝^PeFO2eFqbrTЧD;/R+I8vrfUe;!ˠ yq,VưvE!0,0"X(hd g%<**ef"_;kE@/I?AL4o-$60h0 Rq-M\DbpXg1< r!Ec%>#Ef47=IŔX &WWRk(K. gl(H!HZ᎑0G:`;66lzDUɻElqWL!!^?MjV8l4 rSi 9W;N3d5-w8.#. t}2el {y#6Lxݏ$l;/S0cX^j{p;=)QJ0:ÈTXU=%ၥ.e^eSg*lS@%Cʊa*dž'bGJS댷oȨ }VJ,̊ka?:K%ձ)ԞqoD{ ?:iVDfy kf> WD <JB })3 NDD ;ɯ-5gaq'u|MqCAPLnRcj͠ޏ)c4Ĕ'd㦍j=ƽOufП(GKΜ{~KO,v?LiJ` !*g )Ol 0a"#?i[[vX$0;M/ (89lPa\qrYd̾Pk@A׉%PQFi)& /;/ ',2?̘1ٻzFޱE7FdxGpiU8m$ukJ-*N+B};?+h|2ȞEV ذ(@2+|3P便R7Df9ĿFKWd;_N -*"8f {V.y9*?Fb*t\gnN7[m q32 `>k#2")GFJ-s;MvWɒx<b[Ig_k1ڀ!(ڼXvfH;<: fEv=_,zȲEvO+$%wq8B"8:86_c1^T\˝ 9큫ߙXhf'*{ |HoѮt71)]"rlg40`S/Xg8xKhQ|j -WnvsdmrcJzr2  4Q!Z0†1 ʭ K..'7 g,0/ᅅcazN5Ą)Kx~1}aMJu{4ޢv e S`O 'W?Xy|x0W1bR(~RQxkagC4ݞ|j_حs1:[(Z<1y&fk5~eحT6, TRd8lBx*jYPlDe]HEµ iډVbcTޱY+4͌S*:!c[7b=YR4|G|7]1xv-Ď#;W'? J B-jz6\&h<%u'DB+;Y돒cgUM[c 4O Z7̃_{`oECG,b |XV0yw}vĥ`+1 wsPП8i"3xڣ5Icu~z!T,'Bv:^n+FΟ#?5OV5]UۯJ f7fHjN8&v/ hb>=5,^s q_U{)UzHF4e_vш}uI}Y>0rߦ]G9 F2̀ lD:`fR~Tvl*\J6pW?mGx hzřDnA{FyF?L/ pY@+,4xL ʘ'I>9Ql\DrVnIqܕMO,V+ϽoNđ@3W)0`nQo\hobȿ~9_g Z?],[|5TjѺ3z[>%"f3C9}&R8`̑zDDl3fzŹ%2yW9,P&L[|=Քx/Yį~NRS 5m|P Qhvw8h,>/X}kBbG#^JG!Xڨbϫ;wR3B$jXbddEɄ:q LQGz-{䂯* 6hkr$PW8\pAcx6ɦSKI ~[2** X3/逬\6e+M@JyoƦDsW`k`"䩞7܎kӧW jWo\IcaVdd2cqyms@m^1xfQĈ^4?Gh~>%0bE2L.GBv{edzJem z=Ip۝?`9xݛe9k_z.^VB:7b&mVoN^ሿUcT}&u l[Ns8?{Ֆ!LʨDӎd%en\ڐtږ@H UMqRZiDxth`̠ 4.D<o*iRLq.H@ !$M \jui3A]`_{a]Cie73zE6V- wQtq>ȓ0VS0_&yԝ˩ʸ&>Lf<=hVtGl|ï=lJu@siE}De hW_1 ֫gTr+͚ωLfCo'1"/;ӣؿ{Qx- %~U8RMa'{P u=Oisuc,"|^e ՞ƗWWw[z;Z'eb)dF6Srk⽌gjpmF_oC{]}6{U,Bޚ ztB-UhD91?mRxbFIU"p4/֜CVs198\>9p*#Rˣ@1̘(„6jlt)9}+Yn1;du~jn)ACѤTwTq jce '%i?D!'Lc$,Y#4]Yx)yMsӞ#ζ({}d8U2 6Yp+/v0ͿS6 y Ezdm9u[X WB Փ񮻧:BuX`;NNhV'xpYF "wS& !4Z-fvO )_i'ʻs? Y<;_~i"mx m:SϏ&q[l2=O \;Um Уu,\>ACę9~G$(:_Ve[V۬.JGɤlo6Uv6C ϿllWw$7)6c2plJ9p\|i:8$g.k5FwqV b_#6_O_sʏwMYP,͚c B"uXG*n[w!H/s~hU6%gMiS1!}4YĠhG;'GfS3`u$U9[[#GWߩs2lgG;K qWC|[X|qeRK{BR?0mb6~V\4KG=elϋlj*ͫjݯT89XPiNe;cHook5ϖ`X|b];,Z#BzNI)+&yo9yAqm>9@aGA&fe@k4:2S_˫ އev2=b\a; o<#qͷݙ6jRQZt@t{ $CâZRf3B ;5,B1\(%ۙo1M/T5:+QsM)uS_GgdVN) W"]/zԗ#\( e֝3sTi'aO{kK'&ʢ> N? B!!Bk(nIB%xuz>vHnCKPypx(h?6D0,l JDw޸A o e\:#>}n_ <&CJUЕwAtxZE'+CD@#(1xo:s.BPJw(o2NO,w09mV˭0W>H5zgj/v6H{*V4d2~inc-C';< }(JJ]ENEO\@:o׸&e \C4}>A ٵ"ySC^iĠ3삨=oSл  uas¿^_IǺ0A`6V[[ 9gOk ̉q', !Oneմ:2D@:qJ~P@d*qNA׵%}8kzR2\T=Y[rpR cc2+Wd,J%=U~Fs~`A1^y#Y^bĖ3YhmDu?q3 /uM.[8V[;) 2ux>WGm߰(q] %#w Sսp.uUP!u,4yA<%3-E :4pO{]pB8]8]mchq}+GIK+v GYD*U~wnTF3@޹tyjYIw gC?1].qX3 Y] |S(b&goQHv7PV3\ԁњaxˬG[ G2 Z:\jH1-)xݝQeLH1P֖d?Ӑފ[/2#4}]\3&l2+3yYD^}hVuFQ Tt>?UxûIĝClc\ Iilv3wG0Z(>HXs`ӟ!"t5 S1&DJꬱL8T"$,P&+23xxo$EK9|{CGϵqˌicgTVڳ(="eB$24q$y<4ANe2F`ʦtu^Ns>0{OKrBt u= 6mII/~Vc T9?Lx ƭXW+Q c,K;B;rQ ?t]eFK" 62RR?kMbmNycp FNۣ*"UQɕ7xX5M8顡R9Y=#ì"p @b &dP+qbV*|a^Ѐ/GWDa"T"Y?f@,iMTT遦6h`MHJC'(`Vd*DZ{]X+'Fx~}j6"4?_J$1XVGqiα.Ea_81*N㞚0]=>&Uvl7~9= (77[0۸TOÐ=UN xrDO"K6~Ì1æKQbۇ0|Yj A1kk,un6u"4E>^)m֮E+e~,6R1- 90]V)aʍvJ  .oҐ#?_-Af{L ?Kg/ްki}P< 9I4+e1GNQl+yh&!KZ@N/vrȂ~10!=*2\<@ҝ%r5w ]G{bӥz25mkcqBk (=~;ɩ"8 52qy;@@K `GZoL'lKGx-/ Gp w\qww܃A/QH/6YѯF+%*M`362 Bx\>_҅s.'xp,"@hVAP9fWVvfry~EPv {KMD\̶glw[Z=iJ.Ĵxc1g\-t1zA/]+x~6ln 17* e2ǎJ;^LP,(,qe$v% Hp79mF:~{[=v![)htIԊVۭZ < }::Vxi|qnP|0~o`mKPk{VF* W3 A2 u$ˀ SDXf@zq#۰YPzM^d •:y{(1j鯨@@):]i1~|'Ac^1|s/oQuUQK!Ќc0% =@c@wINyӑװc%J!Q/w`O]^.5KSwγD8xi51GtV5Nш&<|Q,;[De3Z[oګîbeɉ2ε1J-mv[1qcLպG I8V,\Mib5h~P:6-b>,b)5z3hn.7?:nqQԵB\RT}O,By+(T-djk0[)e ⺃92J"tf)XR,1£Vv 8YLh-m^rJcn%&κu!NŨ#8]I<>e$enh`8J/=sbedӢk=x(vɟ`_z4cNĽT ;I_~D.MsYS#eY:'eWѮͿmn܋ $r+%tY!|gO PDWhe|Z1鴗(">wcy: vYzٻ`W@ljҲmN%9r XO${ +M 7rPE5)T6o'5*#P\R~uE(O2`{\wY$);T*t?8jˉ<4 28-8 h H=g)bl`?^{l׀6;N⿬4XssJIq^+5@/N+,J73!;R}\)a&ZQ旿(`* z![k4{ӧ?]*SK\poՂ^Oe<˧s t]_g\_! PdYZl_MrVzsxNz۬z6 eَaIb z񒁺!l5o̲ s(Ĉ ~L_zqfdqBspJUYb4Ԟvw1+ ?.X 6Ž((pdH_WG`q`c֍H232q,p #f-#?Bсiv0=m^۾| Ff\.C.A8 i^BSEߍOM XR6˞%<?0]<;/m e+L } J%ЪVG\R?C"IRczL}|JpTr+T|/08;u* ]4C8#Q ]»M oR0e_fB$*=_O'wk4<5YU/%,4,u7} 1ic`K+XEʳ#B/(&Ir*r;ɶV*&Ayd.QGv/G,T@lA=n''=q6u\yMntի0 cg),DQ/ 1A1`6#=o $_xrS5.ݱF*APa-#1i?*-[9#hr5>Ʉz,cv 4\BKCeӗI)r ]7C3pj*%) xEaٛd s4%.vENkBސ /Mu ,'lq}ү s>9 ( d(qQAM^ Vp/pfo딭jz{׍:;y<:VYhDwDA1bz\)e=6"% M w=c&ȺEb ߉ VnKgG7tG}BVg (j)]ec Zjƅ&ϢO6{YL# 5itb&r0mȻi~~; BA>B%yC}̣kNҟDBY._ ^bnп+*!f)e _.̚vyuQNH^Ro'E"jM(&u]Tg#h mr 걀n.@U7Jn=[@XM&8lgm|dtN5M(%?eS- Ry > eĭP#]_J3Wj,@/(OrN܅bgUqY~0T0*ɏDc g%$U8Q%PgL7[bDYqVx(4A<`WőÀZF5F,bLZAC`$1- < VFmT׶3R㗫#%iߌuzAnz)LЍLjOS <ӏ͏Uq{(@6)g"$ΎdXݺlq-+7PE˪9QD5D bkuѿ]o(QM9>KfޛY5'ɴy%ԆQg^zeZjt-gl%'{F # VF;x뻞xдq /}&Qct!^lK= J[gtS!YK8"qB}&^(OwfAڈ 5:.cZI^.$MV9Mi#PJ&2SD M pRȣ]qe6 (rCN7u©obV W5mw:gW|T4\K%utH/xs;E!|U_Yr(nzԘHvUx,1\dy:s"{ħIIc:1 Aٕێ3^#cxC t Ӛ"5 ۄ|#ȓyǘ9hsfIU#~;k+hY.Suwn*/+ C>w(-|Su Rfu*B{\J lODuxdQ+ C XkT+Hy&rZ[_ OKB iQ<@9DJ wu쒤)!-*$_H 2UT&WeJbLRapmY$ oL[$q )V JQ.cMm/Ky%U78c0GnJW$Lq9E<8JߒSVa2m? > F+ .x"*+R?I3iLgX '.E5xaad"` 2 ^ܒ`)x ܖ`Vo&C[hwn:*{)[Hh I@]ihd(5+<,ID#KfqpY,Ј{d 2f9P/7H8[5i$k7oTASbRٓu x& A}љN=z'S/$Q_R, 7tN[xDp|q+eSGTi7`ˇH 6՘S]xhyNt@ZP6H:4Vknfl}nb *5^)*ۓMexZqSwfxٌޕ2XzˈjRAO]XcVXw  uA; p e4iTѾO$>;d78zc`wEThרmXtijW!ܪȢHgm%:WGB?[pSs'8+vحl x v[Yy^ġ]CK^=k`߁1JFKt(R$)k+ãv Ώ|%g7a"N+v =.AI2 }ˋR+;inٖ;߯I_