summaryrefslogtreecommitdiff
path: root/include/crypto/hash.h
AgeCommit message (Expand)AuthorFilesLines
2018-02-25crypto: hash - prevent using keyed hashes without setting keyEric Biggers1-10/+24
2016-04-15crypto: doc - document correct return value for request allocationEric Biggers1-2/+1
2016-02-06crypto: hash - Add helpers to return alg and driver namesHerbert Xu1-0/+20
2016-01-25crypto: hash - Add crypto_has_ahash helperHerbert Xu1-0/+12
2016-01-25crypto: hash - Add helpers to zero stack request/descriptorHerbert Xu1-0/+13
2016-01-18crypto: hash - Add crypto_ahash_has_setkeyHerbert Xu1-0/+6
2015-10-20crypto: ahash - Add crypto_ahash_blocksizeHerbert Xu1-0/+14
2015-08-21crypto: hash - Add AHASH_REQUEST_ON_STACKHerbert Xu1-0/+5
2015-06-04crypto: doc - Fix typo in crypto-API.xmlMasanari Iida1-1/+1
2014-11-17crypto: doc - document uncovered member variablesStephan Mueller1-1/+6
2014-11-13crypto: doc - SHASH API documentationStephan Mueller1-0/+164
2014-11-13crypto: doc - AHASH API documentationStephan Mueller1-0/+228
2014-11-13crypto: doc - hash data structuresStephan Mueller1-0/+95
2014-10-14crypto: LLVMLinux: Add macro to remove use of VLAIS in crypto codeBehan Webster1-0/+5
2014-08-01crypto: Resolve shadow warningsMark Rustad1-2/+2
2009-07-15crypto: shash - Fix digest size offsetHerbert Xu1-1/+2
2009-07-15crypto: ahash - Add unaligned handling and default operationsHerbert Xu1-15/+8
2009-07-14crypto: ahash - Remove old_ahash_algHerbert Xu1-2/+1
2009-07-14crypto: ahash - Convert to new style algorithmsHerbert Xu1-31/+78
2009-07-14crypto: shash - Make descsize a run-time attributeHerbert Xu1-1/+2
2009-07-12crypto: async - Use kzfree for requestsHerbert Xu1-1/+1
2009-07-11crypto: shash - Export/import hash state onlyHerbert Xu1-4/+14
2009-02-18crypto: shash - Add crypto_shash_blocksizeHerbert Xu1-0/+5
2009-02-05crypto: shash - Fix tfm destructionHerbert Xu1-1/+1
2008-12-25crypto: hash - Add import/export interfaceHerbert Xu1-0/+21
2008-12-25crypto: hash - Add shash interfaceHerbert Xu1-0/+104
2008-08-13crypto: hash - Add missing top-level functionsHerbert Xu1-0/+18
2008-07-10crypto: hash - Move ahash functions into crypto/hash.hHerbert Xu1-0/+154
W,j4ST'@v:ͣ[L'tH%W$IGd)m<] }ᦓ`n(tݟ uFbN'vs?oN&H)T _w_:#bأxi%Oވ?7~T1(hDD plaߞ# B]PD>yϡ2C L '/Ov & T~ς?a&$<3":LO+=ԃk{F铚mm BSZG|@P(ML֏KᎬVP( zVo|W&kkx<0?Ʀ>۲GZh@*ocɴHB0N5j߷S1w>s5/M5>݅C&B`;)!h*XD ^1O}FtX!A9d6ˉmrn(mRX"l\.p@+W{1i\Qpl[z3ME[%'Tbl,݁~3Хwh(<> Yx] PLtqwT[ s,A\p+|Lv'W (+:DWD>ҥ0/~5r |쓂)yZb@aGX0ӫ)yGhzڧ".Ȏ{Sɤ;ϩ@P}lesFQZD DxO:Ӓ@{q7E2N=?#-{+cu7Jd~ݟ>` FpK!P:,!p};ї?a Ky[.[z&|۫Umb}L[mXd, eo +n&UKB?`>6)^+,Dl* &'nD+U$A!;!0MZ _lGPn(0?@qr/* >TNK>MvMjHCͳ M}N=|_Zu:Nws.%Pxʴc ٻ0WZ$D,l\m7zozhGhi %V9aecW LhjBm*FeB^AOcnj+orYH2ӱcmf3hsf'T^1z8`* $:'u!}o0>PmH*=P]|b.1,H [grsbG{[ Ss~|Ul"AbQխ 0%2 n/t/a[PMNkko" LRt<;~TJ\G2'l9KRh݈ Tc~KP!:=P9u΀du8?ś_ug[?STf۷pxe^}oENn6i:f>(fvx$  #gw։%EWջ! QqC,( !;ܔfXf̃ mNԛlfTϼfŤIe2 &PSuۄfGK/a?=m!6">]>w`36(a||MGF..8c/v6g*ۏh[iE9C떞Y# Vh:JަڈYӯ:Phx}vu tszmb Z* 7-/ƛa;v {DnE7;9,ZaE+m6ٹm]C3T xkv-:BY:Qק>9[W;OxmObv:TP?>Hò|=.8ڬX9JO="nV$EݾvPA3$&mنiu7+dopvP>}5m8[*Z۷ YFQPPm==A= $/y/8KaK}!q9~^dE_9A!ąfhe'Z27ѥZlLDhu=qL1%Ь(䶎00{iU[3h?</4ě'۬fT<J6қnxYzBs(i n߭X (: nw t&eAC Ľ>ҫٽq掓v8D1[i(0low F ~cn /gMa‹13M2&2cѕj,E {Fs4& pw("cO 3PdUhmdID,d71gɐqӮ̃hiR!l^# ;XyGzIB[m%޸c/X*Fl AB7TB X9rri]blúW"i:dմz#CiOP<fl魢.tPv7ʴf$`{r&v9Chd[9t'G*LTJchSPE{!)UIZ]Eee VioŚ%@5wQqGCQdd/`G$`VyeGq؜0/FCnꅙݼd Hqr-2ODGXdax L ɛ+TSC G'UGeƒǕr$!sPNB}CN!nP艄2S"W=T# Q؅,\Gsh.P?{ Cڽ}X &2<](Uɫ [ ӄtjŌ:Kf_W絭g8~A|s [k]`]ga _v)U/s !_L_`moTUB޷ndswd@660>=@3?uF^9>>DBu@t<(Wsm ǏT6ܿD.095!9:KDz8:PۤQ0iS@|K2*4aWc`_gE)3x XLV7fҁ#1 \劏+G0 D 9@~T)ޚFXVKgmPBF2lUFHo RX>|Wǭr; r-QnWdG_褪Jj<cPnr̢ws-mnA8fMX ] nDuD6L%c(xl+l!z Ÿf.ˊĭl¢(XcT@j2t%XHx'+㔤lewяhz=M]ҷ]wx-r~-DkOߗTނ|þ'7v-9 ݈D@ ThͧAP: ëO?|kjWpD A:^Y+o#rb xqF#Nˣ-)jr*o.M5[Jd(MD5Qΐ 5 ku~x( <)`Ա]ب"Nju![߸gc{u7bSnд8QLA?~R+˹C ⧦ֆQhQ`^&sdQzwT:d*'dgn~yFXMu-:\9w y}//OGEvOmӆw f9]|Xpϭ~47;1T|fHgb EcwHGOrK텍xL=$:C7F|!ߔy-#{lFm7AxH Vtκ2ִY@h َ, .HyN{Y 8=p2En " =NSHt;ֺпMv{+P=RttD!eZ(M p Δ%;/#t6^Mt@"xm(n]Ԗ"pq-sNߩU<7 ̴pye j5Y)Y%ܐy4l|߮(ċT }w3g]"$@Ⴚ\L#Lm^B֗6ב- T+*qDЈeA44YIS?l;s0B:ڲ}Xm ԯjxߌ:Zcʂc#b;@ t|H+- $V"T`dԵNwnԧ߮r_Yq}=1@2~h?fBr w("Vپ~"H?e>n 7a 8'?cDbrjqӭz?t[fBHou7qdmS_zJL'|);AowHeB$p;OMp Ʒ_V;~Wlۀ{'j %G'F2)u5Ѹ :V1u7l~0~,oOOL)eIi/lrNPlL **^]Gf | YfPƿ-_-zW  ct@y7k0w jyy~gdF7k{KpHǩn?lQ|#񧍤WA!s],t-2[DچOr\Qaw>j6%t]/sڕMj2FK:GUDy},{Z}נ' >ClL?Ei,|Ep y"!՟CVC7 b0 *[<=rl|@%(@jo?k:"'e|=N'Cf U_9"'W+L/qէ,HmM[3}6Ury  ku-ڨ%aN($D@q{A]ͧf8zJqǫ_}J^ wA*:-|duX4O[axi8wϽhy>[)}&rkC$tӫzݘy@B$Pk}pS1s,߁^|>? Q e|`^h( ifkm/b67OɊnky3}n\;3JP :/ Gϒ" f9>AJ n7~Ee &JXzܼl^u& &)R/Z:#V!{>)7u+ Ua{ׂr퀐Dp鈡Y!6kZi$  qԚplEČ>ܿ Vn6$5D)-S]JMdxlJKpIw[>vR<<W uR`C~=$ڼ$lWfoٜo8E Xs6=ʼn?7=}roi*-_! RM!f}x>RwY~ook$ 3wgDth&VJcX!\y ".~ئ+}\P.<}MB-A?â1e'O&ې}3hrq-dX0| V(-jW!x. }-ܨ+x kg6fWY lD*E }oѦg=mSpaߍaX\PVv3\~:Man'~295eo40=ƻ5f:{V͗EIAc)"0~UFBB(~qsr|3Vh2C9n=X" , o{Cy0{ZȎ6 ܃>;Ժռxnagk'bSRzrD=P7i\Ֆ"<̀,Sg`@+R)-$={`"_6~FĘqsA>~AgiZ]3L#86RuzĵȤEa2njx9nk x͐ʛR .w[KL/L%r|`vnz,KN @>'h"7zp}w9Cq*ǓkHj= #Ysv_;G>袙 $z@ Gή5?C:.:\VC 0WB޿ L5~EqOkCAc92&\suS7 AIDFۻR :XF8˝ T#=G<VZlR@CmE&9bZ}76;7slI lI)li٤\0F-2BR6b]QMh噼Xyg<1Í:^ΝL:zJ<}p}Të/ϥ3hoCzGia`p(.  ؞nh7bSN.ģ1?ፅgnm#(!5^ ;8Ļruörm7ao?!Q  A9<4l+3!~~?+g>8o#\/T+%y~m׋((yHzx^8C ^w^L}鳔Eh -PU~vc?hs5܃XLuL {۵c>ܱeG&(w+Ev/06N: 87QG1B{0|_k!u/O6 -)?^ x`F-1E]>˦ܭs68<569. ۂ{?[~~srz 08u$24?@Iv㖴 6VUm8t~nN(VLFuvc[3(U8vv+`0UPȃQ+t,~%  ח0Pv8@SMHiapERAOzk& <6Q@5wb]C#gtq55m>r_x~hía.آ2N,]R7>G$Y#|!c1 hl8T21oTܚG=\ # 7ݷ7I.T? fҭmo~βr_ Y]5,TCa*v6JA"!Y!<8@:PV6[PJN=A}_OMy*p6,tr*Ի5E=,v[2UgϗtyS0TRV^؞e%.Ņ&|1GmW[שm!-;/h|t*?oFhLwEw`ż,2/V:5Yrekm2!HYm*d !C".s yU8ۘ‘vAGG ;R/޾* f$@#TÎf/4IhUM6`̳h#..8b? 'é5RY_e!8Ru})uǪsW?31}(o)F9+p,qpz{)@@%i;׃ǔȉ\Z2T_J2Q8L|&X=J 8-|x [2uQ3s#[O8:"uOG>ꙃZnxAEK['T %-]9(| [kd>6k{fr`2_xAe9^lپ y7a=5@%X(ڬ2ҫ-~OdOUw{ApW;1~q")))\_lIo݅5Q[3/ũ^:N8lLS&]>ﶃf&DqTANN_Gי#G.ҮLIgW'yC;,of;gXw E Eˤ51Su]\N\prwZW u!-0.zF -U/y]t"ߞ%l;@Gȡd bz-POz 8 xAu_ :u0vL@R̈QX3˞ VmZN]pC"n!&t2 m12 #), x@rbf'LL8nX8ޖ3@0k۬7?F!&latɷ~i$dZ큦`vȄPƏCݹ;`$}5_ۗqx:*+ a{I2Gt{(_:| bK5&pC.qXc~U~!`hoPpex};q.Au's0FIEQs & p yJ\AP;r<9H0@AZJ18vif1#T;+YOY >3]kXu(̶TeL5[Y2"Ezhc&k.k8K2LSJhȣFcd`3ffy8Hф ܯSf(CRkPm u׹82Dr<5C;F֒*%*6MCkEs?djX+/샙S'{ >Q< nZ"("#U d>ywonk(ùiJr=̻KhR]rX!v1ŠoHE]J<raz̘8R+=Re,"iM#W3m2߄p[~=i~VO5dd8lN4(P毪&3'&2zG<\0y@0,VtR2LR&n`~ ֯! o; y"}gW`.M|>Z $;)#W= I(^b3H R8ń **m7 SsC{-; ֶ0"u2 hor׉?=-3,|F\U+P dѫJǞ&(7oNtuTp`\H%MP.dm9û dY`3Bh/+ͨ>>fx*s90t㰣k>bgyrbUj4(Iz3m -7l!A \ݡݰ d !G,_Y.9ߔ1,D.\ɞ?Wљ9M#*dC5r IsǠr?q 2#U.kTH[6h|h.%5=|Fh g#h."r&cFKFw6LQ(jmӑ* Ch$ D̜z6Ѷk-e!+=7!T+0[:#b9 D$w\D39yXm/Sχ~iSY.?+ʿ{b%:yL{d^RET | ^JAT:qo럠nѵ˱їxc$'N̼6=.yW P"2#z(/~ϐ净/ӌj\;5|XplqDk X]kTs !/6@P@E*xwS܅{'`@ w+Z3^aKDb>gWѧ; %?顷@ϻ]=VtNk 4 _c|Wq'X1Y!8vEv!#/ŻDYZc2~78~A]\Je+Tnv7Hgb Fd,P ,!piO .ku U$?DU ^B@q6X&Qr/4_ .SmNUW|AН`tZ6%S*:ИDOcÿgpم=,o`eѪ V (* nWP{S~.L)^Κ+8s4!.Eą!ڲdITy%bXUim8Yӛ  . C}-n獞{3'pUW3 ╵Y`江[* UT%4DzuH$Fdk_ҹ`vܕ"`>90, gy@ngd" >._0PUmL{/B\Wt LI1 .7K2jytRƔ8g{2s<\~/aɓGa2_?Gu]D=mn MOm =~(=o)i()_kYxFNKɦZ *}腈(hx^V['i~x-?e΄0*]Y?B^eP>100(,yL.r>U*J+ L'Ky=l:CsA?k[!@?,_--*"=*8G[DY4[ S*M X;3rB)?!KmSFPWz!٫4a8Q`5l5ҚeEV3*.y'#.(=8LRD-b "#+ J5^Ӵ/)5?S2 80I~OmAбЧ8>].Li-Eb:N,E~^"g6m dG \iqB)f㶧 MɆU( )85[jͣsCY;}A'nucdl$@"8T!13#/HFq _8Brz8S sdepqshmv/眭ޒ}]pŽ}vKڠX`o Gf(|zK ~'}c8s g;`6#&`Jb__X8ΚScy#֡bCbBm{OsZ+Ž{2RC֟_D}eӿ.oVVaēXX|r{Ș~ hռ߽L/Dp*<&ץn:)BtvK;J121bDv>+~w,u|@>vIXQgC-2pD~{ IV(uk7{%e\k} m?:oYnsx-=7ɉP?2S:6r3([v-K =evv Ob쟰޼vGUUg|Rꭐ}n;tjm!չu-΋48jGGJrGx\:0uu8s3/Xcb|W'G"csL|munvGƊYbР#Emt* @$Zm`r/=uȀg`l첈!)_ex5R~SG"GLngуK2oD2%$!Ƀxy} zxk!GT! Fj,e= !#vF<_T E),6b;UDTCϥu aTub[*ޛZǶچ,G$|ʤŨ?<߿+VoT}:56TUPAeYr࣊(X$ .I {GS_}kwZ2;6; QRPM氎08|l_Ls_|_VWVA{h}jJ]^}xB-8s'eaSx]aē . r#uBލv8x%\=C5(B]Sxx-b֖P c__7{)p]IrPx?ʈS`vgCJ- Oy@A7G B `ݯI /<58t~]Law/wzְt'iw+}.yh07t'luMNk-fV) Ôު*^w .12fi#Hy͐vOQMȏ Q$GfUqQ1 A'2M׽#湄V?jTv>@W.,SΘ٬=AJ_ޢQyI;[tC?\& NdyTxS+p–!߲h/v|T%~υ0$ E"G>iF_|_Nn<˦ڱ Gxr]@DNhsA;?Qk g8 tFahz_'XŸN EqR(v/Az] \g$\K,PpY-1U|rN3,LK"adsQk֚;f:}=ݘ/ Ohngv΃9pJ.*),(,f_9<> 9j|GYlt_EAA>CvQ]ҕ%K2dgh/1 Zy*1/BI *n\ZRڲr?eVf>oSVTz0A$l]#y ^4qv٭,G3XLO\> GȥKγrGJfS!סT4cGڿmf1ۍL}jlHb\o@2J ս9yV#𨾁RV ҙ* qtEkLzavd t>`Qe#tJߏG/'MV|њifޗ-6(yoe7tSm~U0aL#UN?[ $"k ~7M 鶭~J +Ϯ"KVM2JSb AK3Ş 'qrܫdYPmi" JOѳ#:2ēeEɬ%X3'㾀TbbKo< s4π"$ P(K.]C?\rkb"wW_5k5&@ssi*tꝯh [&6=JSm"C/᥋yn?|$/fWKs,1 IN0 dA3YL8jf 6yuey86\JD1:'4(C76(`%Q5= <5W`T1EVv_ | '_^vЕ`׭]tl&`h4IssߒHꇓ+' :뀀^)kG2<ڦ43vE?OߪobSrwʠesX u7g?j20xDÛ{E>1"H pl}<4ǤyDW$j{J=x6TE쩐ucK%'+yYθ)7{Aeӱo4퍿4 C\#"!+Z}R [^pm }2fK ~ѧQ/ v+$~gEx3:v8,G_T诰UiN{Sa [Lٙk20zĨX\q:D#ߋM=%"v- ܛBMAZYi1:BA \X&K"), %â.x50Nzm+!t+Ri3oB%Ph; k⌬;hFI8o=Z=Css}Yv2TbA|8=S?dcQ16s8s ۰᢮{ d~>dA~Z[_PxAe KSȰ\DOo;l֪#i8˝h4c[Ժu+:WY(׷_<6AK@*7($z`܊:DP\ɳNqѺSNp$/DW@c ސ]T /BO9ճH q=|}F"( *ԥSk|/k1e-}h goeBSdڀ98bavnaͯw+BXfY{=~BM=J~}p'3Q=|cTA8^nT_G"7*s bM"4q@Sl~q4A4~doQ5kG71ʫJ1Mq9m(xXJrduy?s:q Q/ѐ +A@Ogf(UggziSd@>׵M[r-Ϲ -o"uoeI_.Q)r{C֯d[Oj3 1}!Wѵ*D Ȍ*B^**+c|y|>eZ)7~dp`Rjlaے]k]D-Ex_i(,Nي1&\@8"F顰GAH7=r'8LP\\> UGbҨԵ~_n/0`DmGf}/T!0L:pM7((AtK1W !&ݎ?@Ph-k-…B и;P %$Fy (6Sd$Q"9նh_Ftw|bk==G1(v<b&@=|?SS7M,@:"s"AЂgGبAfCYc rAPkdXk\mkwĄ` Yl|H O)X,JC~ bBfguKxp ,qo?mz=XH_Opl\wxS (14˭f07Jk9xw ?o4DPVFSG`bq 0D PS)LFɭusțn8Mn>ct;wɄnsl"-~S^ !oL;̾OMxe- H^oP[HO W>(ŸX`Mz@0%\V,AHFy8J5ҕ'L4Ą 1-ص{ H3~6H- YϨ]}sg@p ȦH,)-1;kYՆiby0g˓2y?a8{e$ ]1/K3>/ 5#ѫ&\{!.$U`=T{(,@a>!͘z4XEza\3krvЩǪmqKa+)Q Ug1rⱮ(_]G*C5cN鿶{s4F#5`}O ,:f&hvbÏif GZ-s@: ?>Onl'.Pۧx@ %<^Wk](iw/ZK< Ȩ J> c`G|[n+E֝"b"#!&l&)rp |YY8ymjϵFf.#o \4f-y֜uKTbBk|edbi`|L/P="M"$D&8O\)9Kԍ}X9)~&vH%QC ihTBO,qBχ?Nw]@Rgvebrwtu3kR4LQYpG*bu^4^26mT:?$ &o.Ilx5r c 0ak^6b-O.Mh mԁYOYpQwu( z9"3ɇmYR⟆vbxst*,#5M8Laf1\ӻA%P&͏tk o44X:<3HmX&W^jpf$Lyo iv?%$p.*Vf_.a`Ni5_Ԗŧ2=:̃Ya9UvxQNxۚ2A)c]B lH Q`Ьz\f|Ӕh΅cO8nV-Ưb+>7%NbBh ]~bEkfgS1>T yu9n)iZ3ن8!!;Pzɽ|-UBz3~\~g!içnZylւ\=N\5AR\ݩydvQSʯɖF*u{5n3kP8IǏMW=+oV2}-i!USqJJR :YЊ79=XƠ .e߳zQ?Ds>cyF|1 {XCyD[Zx$6*}H"ߜ߲3WqLxę L'TWDZ%-6 v6KDXqXK /SEgbx_,#ڏNJ^UPN;|JQ? at,زضpc?3e-o j4"֜a3KٖrɺDC P.uZ:NF{L.inًd8,ך+iKRP ) ClyRx=8ve<D ZR}c~iܽؽكFXЭ[N]iF T(sZ\)E/^6NBE"Ѽ``i.!ӒI~hT;yLjxw?^c<"k" $eJʑ QdjQ)z僧1) |r3)^PzEqޢ+Rmdz m/ɝO䏄DˍbluQ \Mz2L tH3j{9yH+3Tl1uy!ۓ!A'JpR8\=ngJ1:Q ^AyTe]ـwfVI4feΫdCՍ{ HܟE * yO!C IVuGBqbߥ 7ٷzADDl+IjR eFt;7OP3/ӕ<7{UmvaNzylt"Kl: U y|'>3qBGejizɨ$r|˘V͗c118uɵg!J)smaFp/![t7)M@\,Iq*0errgy(p)ev7xeL1u夎`.``VrgXyv ƥU@ˆ:jC4sR@:t`TdžH9 l0G LiqE0uQ-$!G7#7fr|D绱?=pWew sH Oa?ZIp \".LG۸ܡ#TW*4vb3hWo+gu^f (@,ڒ. WCM#w?i|`}2>f[\ KB+ ~6 7+K]ggbk/TL7Qy:KcuUlG4FWزP{!Eq?Ukt`^`U55`7|{{Ē +V6Vzm<-|g1?I!ortk V^:斪_xøLjHF H.F0p̽Y5Q辂kPi޶v𰢁l67,Z8Y{턤$C]W6b+|k% ^ ܳ}Ԗ(G=g =f^yIӌ|A\r{GPŊbOi w݄Z'Z&Wݹ$VwJ &]g<͕!eWD}l ܱ|e%Pu*\&t3SssQy{>^^xgx텿=p-qx!Afj9Գ+x꩑JyRի|E~nbn7k C@nMa[s;Nws3/fopۄɓ k--p?tu'N7<ާ޸:+3 z}] QrZs\F/k" =}]%q =rCJ Du)*BA^ Yr8mTxS>LѪ^D4tݝI{&c09)Wk<ڸ!wwK|*Y[],EIe\g.P^`LzAYk~\o'wE'cň~wVS$<S2'94R]UaoSnp[F#!y^qE)|zz<ô xA6o9p~ \Z -sQ G2SBlBSrx;o<mc8 ٔC[rD_d;C㈎}4-&t\QSyqCñs|+1' F繮m-7Gg3}x^ؚsׇ3ѓ$sUwFh\>nPЀrx䔠9P,;N0^w;Z52Į+|qe 01, t ̎Z.Syy1y[:>M>v A<_^_DN86;ԗꝡX Ãd!}qO3']=R)˞0N~$ @92eFlX{\ev.0Ӊaٖr9zF}|^+MJ*Y_I.T$]v<VgMVy.0Dg{K 9l3pY`0$ϴ}$/2'+3c#CZϗ>kZNQ,'61\7=Gt∎g;Ɉ 32+3m1d%c)a2'w?\ח1-RK۵b*=] udq\`T/TaL/=guЅ GIX*DE˒enmJ)ޑ,- 7 %! $ʘC5l p[ϋI8& }{år'L<^_8ş9lKs@x 1HzM@<^Y2$|/7>|?=مg"r!R,-pj[}C ,0D}L܃BP1"cWݗpu=yzSk'&[ nSN^W*xl66~ڗ<3OEqv?4SL>܂nMabD g,&Mov(؂&TG}v0T[laRp~2]wޕV xX|@SeD[f=) &Q!=n֧8R{Y9.6 X<4wQ6k@dX`C꺟/V f֢f>6&L;k]uh>!rIIH`[Eu=@5? V?j0rI.67hX)@/BK,t#H@5h5~5@ʹ~'?#zDGFVd 6dpQQ d7\O|"Gv LNIkl-[d$6M}/X r:8v[L~0LbzRw'yj1-:Lv3MftFcgջaB^GM0Y{U9 j @{r} xl(.%DL I %x;l}$B8O{Ģ+sOV' ْ>O^L|t%ҞQ;2k:"޶qB|J5Tjkw0 bLsh`,FO~?cz @RE8(Z]5zCAB7qv"ځ yˀP(+m_sRk-BdmTDT Cِsu$sm})Qep!tߎ0"eAbCi0AL%^GƫAwJ#O@Ѱ]:_˾ +k,my:ٯ;'2`-<[w2)ng^W1U=L;% #6%^I5xLKXxS~/틷V=nWyˑ80]=qM9]\IF Vp21?k׽_/5.U?Z+SZd?+H:dflޯ0 7 EPvBq̍OM<@Q_kxS77SՇ02~uMбV%$Wz0!WNOXkgļᓯ $Yi잵R*(z8Wlg).nǞr{zzs "剆z‡: s6i8d+]#1;y!ΰyrr:țz+C&xX+0ǓqÂyQ/cŝ~޵V ?p7jY&7l#pfL.y;I)7a~(<"VkiB] 99ÈYoU/w >g A#vG c;g0_Dŷ`^v7_Ыc;Yx_yXmmnSxվ>Xӎ ׇde$KE<-ai.O-1NqhՇ:-bgxmEk~kHZEL ?G:V[Wl;^ZG<޳&&8Qm; G{nMָ)v;5wagw; WѦ_Ay{/$(g}e~ p^`釭8GM[?*7K7>j}:?#Vߒ$o.ovp)CBDRKNHr~ +Q2@'?H`Qa &M82hIb#ōګ0XI?v C$R.ہmEREe9a Tf y蕾.U@Oo֓_g>Wx0PpViGS'^7jhFnɥTU@ Z6la_oeY`^МZ/͸7bĠ$F.B0/hI4E `Ď2k`ioOcYfg˺N .~wGXa˅V;#fEA8>X0VBK6 yuFQh߮t%%&j"xL{n/蕻Y-Rۿ1U1*Y~ _(N%nCLǫKjsYܬFʏ0:xCڔ'V 1-nq$eH(Xř 7;ttQ_tZ9fI|˾̮lA5׈'c&CuZ f) ;e DL#:\=;1{wgKmoG!DvAgS!(Pa'^4HOt rq#O}vo/'MSt? sOu2(Y-V&/kPy3=IR~-p5y_ocY? =:`.`O[`v0kdn;HI dS:Rbmfk 3dH}I$L@3󐿔CWA( Ҵ" D,"ҏ$ 9?, IP BCfąD$IMh% :b/v%6Iyω pД-t{_6sޯWyng0HxdOF4vTw$\b>aؘ(_u7/^_1꿯#YVpu(}_0=1U`2܂ǨOI}v?3# :5:ܗK# 5cRӷsCwհgVf˿󇗶 Ap-bfD.[fT`a{"i{1 *{Sб ѕ5cb<md Q(AYA\HˠۈFAB?~NCM}t[|>U|&b@eomS;:O_GMڵ;ːǖ :ѯ-ޑ{<6p>,V Q_1a8aDm`Xkr_x],O4l^zX׮_QˆSd^YGo@rcze!hD|Pkq8\.X︰>܃d<5{*Lzў8DdSζ)h8DWA}{c'*O݈_PAOug_0D*@U%#5:7婱ӻGǣsY( j[^((Ҵ }և#\/ń,;m78/_ v8 Cʹa@;i|\wCV5\q!KT@CPsִx@絫V]DŽHkOݷxN,c͵Kǯ %'0]K%j z\vngemH*wdI7믁wb9sx/R~\FCi۩Kb{7:U]:WðEJTz-?=gykǾ˲ky&,= CtX/_o(!JPV+e4Q/u{)wEi{ %M6?kˡ"?$'3^G5XAZ8*p)Vgҟ{ZMo%QdanVg.\A O=[d݊aB"KZVU*QK]@ ;R*zni/X]1{3 /AGF:fqw[+%}[k烍؇ oc:Tk 3 ƬH Әǒ C& grcp~ _ؿ+~ֵ\GgU7gU7 0#|) M#z||ctu9XʟdBm+V_,?6Į C9 9z5 NoBi4f |;%^0&/hdU,&哂28 J^sw.8ͳ r5k-j Tsk9]+#֘E7D14}Y]-f@XEI*/ȇǗO"i7`‚|σʛ?msΫz`s^33&Q_A>GCY/G\"R^1JABEWw4eL["Y丘ܯ;Lڍpz|lpq?7k9uEq{%ɐO[u䊧ywXzJyB+P幵~s_vqW镞a³٣ɟ׷v 2?L%@!f긢*,,1 0rr;gA cML*M% d#cY>POjx] .H8-QhY )1>HN(f/_ڿMY1ʟjTR˜P07uڟNy6?߯0GWGݱXhLq 9fmPn:umpN[s )*`9dP0~ȸoT#^ 9~Q I#Y͐PejjA# \o_xX?KƾA|a{p@)-@+C<?4A?ɯf |=IrW{6xT&(Bm72*#t6kb?nL$`,9vi5}ZТ6t?['?b<Μ_?pkz=U.yN)+YS&bS_P|r8bUp? . H)dy{}~[~J]g;;C͠z }qKg2Um(8n׷2Kazh!z+d2 E QR^#cCJw|;Bf|v&Fϥä7w&U*am&.~O$ =-j[UCVal۱6~a Yu# mŽ@rܖ17q>ޠD5[LZM sV>5;ow h1 ا9n-f׼XHV5W1gHk3pJo&ځeTeAXD3>5aǠbB+` z79m`ij zQD^AK :#]A׆}։dvt@JP#n- &A%Z'N~uȒ[Np[5!c$"psm p$??s%' zM[T=Q#2TP3 w#I{Ei|S1 Gh^㺜9u١zSdƸZo]6si$Q1~@3[եG)0jAȤ̘ƚ<, k#85w1H;,X`y=P{A hr24A~ ywo&l+#cŊwy=G.'ה0~ݮ|wuǀ7)Ͽ$?6 ,;5W:I$Cpš/*ciֿ:guh8UAH>l`L q5zGMҩC6~~JFxK+* F[]P;vx(ɒ mH0Эq]s~>9$sː2rXϏar]'{f/|7lXɣTёH,k0% ^t땖Q[}!U( c3Ue!lջ%&ԣɒs d.C6+L`(Cnmg4#|k ԃiP}% MeHqA繛ʪY;- zQ4*(/fc}-.i[:.\V!U s?Kt41;9:J-2@$#"!\ŕu߃GcN_6dyclϸfنT˻>:r=+_s +~w;?Py s):W3ڸsBhŋ'ckܜqai~E۞DL5 )o„#P†si97 aSEWbh{OZn #j1rJTzmk]S jL.BuJmٕD܅6?xvegJdqo/0ޓʒI!d}'</^MI%VK4ĿMTIo߾' [Y?(_D3(?InTc^){88L]kʭ%OŽ\,;cd)u,썏S)'@ɼq{XVy>Ō,$矦#PЦb냑j-[7yiVBWJƧ#&ϿF;+6l6Ys^_S ~*uϭ}2}V(ITOA"ǫP)='b\#z7 \L !?{޿g;+E?4fO\)-rs_HN:(*>z~d죆7lM><+X#wر̓ŪEGd_i)(=I8t/O>"p LmKߴ[Kje Ep%P?tޏOW_79t܏Cd'ͣO1{(d+% wG[<^L>Cg_B -i5l_;Fd@9̆q h\}{ fPѝT1!()gw5J@ ]ގ 8P aPͷo>{i@W*gvgګՈT۾۩ dSUL!k׆PapZ9|s"'ǚ'c!X5tstw|Tޠvo;nձY կEoPFHg5~ġNG&<;#G[ MAC){9ҵ u[/ZW>%.αiPա"DCs=B?6DP*T{ۓ}PE^d8E^Dz匝 RGP-PJj~Qa3uEͼ8G $Pqx^F9%{Sgpjote0|S%CdsҊ7ޣ.ehaozl_}==_c`|D  >U"" ݎ𯝣`Ga#zq4nG=L!}\g)p$X\ywȟ~}P"XiΛFCe2H$,5RΩk lbȀ>il9;tC"+3|Ǝ9Ph^I ހcM!i0kւ,D"n,0kph0mKWsx,POKiwH AۻՏn3&lb,e) vfmc-P ( NwYhh\~V焇i *cPt& m˽flj#I$5[`'*[20fJذg Zc#=:4￈c" `_Q qOc˭q5`ríAoZ?;>n~=Đ"#{}!e鷿z}r>$7.V}oz^riR&zj_Sbv}7Wԏuy+;ߢ_IO$-ʍJ1WԪ*9RV@8(2lȰpŃi&ÏMI S#γNokb5c,ԋ ԱtuWJUu .KwߐƺȠXFihEy2jI5n}D E.S]زԠv < tG{ UR8DbP$aٺOa2zay%rђpuc@B"{>;鯿00R0ݟPY?{wl纸uޕ2[$z !6bl`;5∁#X@r׿yiHݛ5axn)n~祐l oV  u.ЌPnkպh22O|U8c`["^#к sKWp٠i1iT@|˖Zqg٬mDKhb9>Aщ{rg+sB}31gH]6[s:u qᏝ2[upW+)-W a౲8i!XjeGF^%y:>V*YbMxU=dy@`!KDᲊDAnA|(݊5ݣLbn34wabL3bMGII5MRK <膰HBqNhRd"0d02:\5LNbAfC`?0A@ )*kv>oFM#:79p2}vyջP|ÿvN>w3Ԏ ck@Cn#w~ܝe}5C &r @k]mIBr `aYnz3$K:7 9Gr~7BlAx;xTMaذ`0 L#dv^+Qu*b5> Z8= o4[Ӓl<̻jUmDU0#I@s_)9:qr8ܻGlC ڲvXÚ}Fpߣ1\P:_Yjj٦}PsbQ -ќhv/u{=1PC|q{?}YO(-o[\enNn}YH2B!V\߹ۿ %}n*Y-tGo"@\wT~R)s3jUx[dI(x9?|Q.sَݥp:t=Ç>?4QuGR}wu8DZ~qP)r=[D'O…BG$jcQEVC,XmZ6\(`6T5%JOA?bB)ت'\~Hw10$T:% XG=}?#fc o#'ѩuV",̰#-ހ;6 |wDO-ǿzMGDv7r JϏ]:^c* wFC= ϝ=>~^<~bίĆ7d/˿қ/GFBH o~hVYzCtCQnyrt֘iBJ{3>=zf;{g~81D 04lzYm:4\5Ora>\c."Aq׳/ 1 B$ݻyړYv4'!]ZtM-AmN|6DP :R_vsC˛j[;EEqP#@J)Pluj}77Sjp1Bz\LmT/JՈԸi  ´n#8eb|ݽdV)jY0d(A$ץg1vT.j95⦢İ(xTZY [w kVCAMؖ"Ф D鶁f 0;7 8ÿÆD{́wsK'D}6{l6wz|rʺ8^+W;{Ϫ{((46L59-EYÍ6cqc=u%x;~6劬.?m8JPCAd|_Y g{_ʉNcN<@7s oy?;`ofMIڬEE{K~"$_nx{̄DU %t jzC,r2Bjp3ʆ!u3A\Myk{w^_s¢~\[䓺X#D ;;Q}6*b8l|ղ=HH/^VPWYwOx B˝;͓Kvو~lcf|KEsӴy.'lP:kC&ɿdoq>' +Sf_:h,;oeV 8A=+wx7go4vA7G++`T$q:lo<⌈B HHRܔ AKE.AvD(ZJ( HhxD@Ȕ>@x{* T$q,-(@&S:$q3ԣJ)2)!X OǼ{4Am.s(! }f [u$5Ozo&QP)0ݻ9yHd/xo35e><7_B癜Xqp֜wwrvj>@GZ9,Ԛ7fs56 *us3L C :cbbn\jvqb?&Mhመc68-(A'$ERMDRHڀ m1v0ҹi>Nl3@ k8AlYk)H dGG}F"ٜc{zs-t)BC?(1lʌ1*?=;, ]pq*zZ_evoYW -.:Qj J+d0`fFǦ#}غO5!ޕy#ĈK+gvh3cͽ!ǂAOL.W=J=&AR.|Zu.JPV_Ko2X{d~2:ƒN6sOR-{nzQ果gFm@b'eo &h4gY%W5Dzܙ^,9=J")U̪efXgi4ܜ,nC|Ix$MMWmQL|%}op wpmiiIZq];?ͬX5G/?WZkmh׺cëCN?qwt>𷇑zG?؏z=Xy)EU_ |R!t?Oۡ=a~ZvNsAe滞O{y#^=bAҤ= /X7nCx]ٝ슕5HX8BEyAsTlFdlQ!h.p!:aH)?t.c3"m785VcP,0DpP vgf@ [m "3^/ .(@xRcH\@P12#|.Y 5Ѽ҇`DQ*#ςC7:I.+`h7}Tz\vk/~ w-{aܴ\aY0J`dDR߬+Mzs) ۚ8G' '۹ˬy.г lS}di.vSE]jJdL= 3 (RBQf6@h8c Fu6Vr A{B2&I** 󕳖 #cbfJ0eWBX[@1(mQa@Qc ,}H) tDnToTLޜuAzkj+k ~U_eu5"%kcΐzd CVQ+pwX] -uDx'N9π$DGb(d!.H_E`G ^zజb8,Tzڴ1bȇ"q߾qp _' P{v}{gv)$DhBᴯ \`C HȈQ pp kd/3(>ky@r0'TT4.WfjݯwcLc%>75bh6l: xjiSȍ{&ZIps}>1}8&هh]@z=0!6v&%;6+$+kpMK.}Swds^L`T{rs>~]׫B̹\Oiȿ3WخF|޿Of]sBd80ewZpX?q K}Kw_/Jdk{d :&g$@BeDGHDD^늏ܢ o; rcQח=`\˔#*+|'%6>: Jv2MD?ߧJϗg#!)/?иmM\d`pa Os7a^*b~ݕ3U]*D6 K-nAF e ykOC)=CV>2?b#d]]k1Z/@pB#cݬ aceu0U&&]- ~vq' DKÜZ#NOVO ٳ mր-mϸrlSDb.Z;9v+5D$ٻ~yft/ΝI~|w@̘aԍU:dqhBlQ\L%~]n]w٨Տ-! 16u ˟\rBo6.~ߌΗy9ʩ/, JT,ujdz