summaryrefslogtreecommitdiff
path: root/include/crypto/pcrypt.h
blob: 234d7cf3cf5ead658c97356003c599433a7fc3e5 (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
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * pcrypt - Parallel crypto engine.
 *
 * Copyright (C) 2009 secunet Security Networks AG
 * Copyright (C) 2009 Steffen Klassert <steffen.klassert@secunet.com>
 */

#ifndef _CRYPTO_PCRYPT_H
#define _CRYPTO_PCRYPT_H

#include <linux/container_of.h>
#include <linux/crypto.h>
#include <linux/padata.h>

struct pcrypt_request {
	struct padata_priv	padata;
	void			*data;
	void			*__ctx[] CRYPTO_MINALIGN_ATTR;
};

static inline void *pcrypt_request_ctx(struct pcrypt_request *req)
{
	return req->__ctx;
}

static inline
struct padata_priv *pcrypt_request_padata(struct pcrypt_request *req)
{
	return &req->padata;
}

static inline
struct pcrypt_request *pcrypt_padata_request(struct padata_priv *padata)
{
	return container_of(padata, struct pcrypt_request, padata);
}

#endif
P<2l^6ctV+p #@^j'n9K 5F;etKR"1N %!#y Ȉi޴D䒥/~.?i1o kj<;/3_& FKwVޕX+,}=D_9WA>=' :l w1[x<)>h C6I'1j]mp2{f4[,nu /HGj\ xO)L%|O]h+#%zc-d+q2訉Ok@[ǶNEl0jY :f>cnKm".F;bËsfeNJr <"MF:c.AH[8 eỲY$ @5kl \v7baK6!=ă4!xNmܹrdﵣy:\|GIq"g`/u  HfAq,Ԉ8MbO8AIͲ(B:y'j Z<trNտWBr.t vş8 tߛ[rf $FK;dɸEgX!I2},e 74eHn>8apd̝JjD-\;S4Dba>csG2~V$~y%Td+[7%:h8 j4Cp~褏RhO͕H8gF\t Dtġg 횑d"s&ӏseKb$̻PtA_Γ[<” +ˉǛٲŃIޅpgnB7`غ 3X ) thy,p? (%́m6M ⫈7;ݐ}$s>͝ ŇX&?#!2Ӛ;o *`4y&7 HdBr?e^pjtxiBCxnNd;ߜݜR2ƣfV o'E:['F4c9yp10SOZHԫ{oK8E^>HaxePb<àGS~ kxu ̴DN,p^:? &Sᓫ+;?Q#؆% FS<ԴN}n~_T4}HM>ndfPC5X zGw?k#uGFj:<Wۋ;\g [~0~A]]G-ѯjڻft_&C}כmN>?$7>Mn5Fߦ=]{rCw_!>Of#o0t.s/.]w;u"ꧻCpa@p4 &_ґ37#=޳ku;Rpq?&4H*w"[^͒́Ϸx_? F#6 f_|Џ B;җM;uI?A &E:;{;Ag·E7+nzGE2 5f`kZEHET^' P2A̵[3GOe'nF?S|oG4^z{ZZ8g>bKjzqV9F|GCK\K^dj2\鷧r'uE?z/H Z ;}=)U"ǟC&coT"#I%cGk3Xk%X)gm 8L}Fie0 Ddqq Iob(Sn|7сIIf4I𡩈3!(u)50% A#®Phh9}ccAf0)  uΊwSrƒK5 Rذ3~ḰȞ박:1|$zI @fS.='cH&wF3_+__O@"3_Ze4S@{IsoYߴ8LyJRHe4Ẉ?Mj7lT0F-+zCc;QI*0tû# m\TOjz̿/迸` D3@,a.;Qg WpÁ^#O-hJlfq{V8NT䐮'Il{3zrV?~'l럲v_xNvkWeq*R;WЕTI8dX\p8˕b=$gkns%9/곻'Vt.$=Nq@ƍq|!Stt%yϝ(N -5v>svahH(.B8d:gGetΙ维NbBP54N` i*?Gy;fC'Ώ :(^!P?N<1F j 7TL! я )K,I$(Yp*d$0ZdG|k* qwney4}۸&I-Ȋ")G†%ͅAs}&ľ*N>ʝdelW3q0A\苛g5EK2L\oCG0-ʇo!WUiTgOѸ ؖ)t k$Mw8')86Ia]CzsRG& #u@-Gqb)SJOx/y8(![#-%c4R\[r-߀Iyru_W28U[ґ!ĊrJ~rAp<E\>X4d4"K[umzvwvAr/?w:. L)O9:0W+~'pyD G0v` $Dh 8KÇb,:`<{Uq:x%o~0'^|AmCl4~79\I(#?~k`[U枥5l!mirzXi$zKҷ<6>um/]kc@X3w;0XA8CަѲU39cf{0q$ԧ^AOtOj@0X}ѿa|aCޒ}!R*udEvAi8R=7i)4m˿Eb~Go3L2h/Qu4䄡MTI(qv\Af#JjX+ճ>WN#ڵ&kb,|+ޞA⺕gJ{ӽ3`=5ժj0vfз+b/vH\ûgz,1⠀+us'X{4ӅSn釫'wՊ$!m=ܠCOddt[3h^1s@==3;P}w##Ā.ewo,L 8+M\ %G|r疒poǐz1'Ϧ~yCJE*jRr>n}DCN}FvyMZlj ў}1EւS@6,{A kcO6Y˧/GO!~GJn˵?3H~ ɺ-Z8'@bu4z ;@jPV*U-5aK1Ih5jz]N[c*0XHWh ˻JKi7w. {'ʭVr#R1[ÃaY9u]%RUwue)Mr5nvHl/F Ri[U^0#`ڪ3$7^ $lroX`3P< "uΆ RhؾCyi%Y#15G|xITo{%yЀT'%ZӨT;W+ݒH/0VM/m5j`6sPԠT"o y^}̽C2wM3@f(~rB^$ks4v_t]٩>a 'E_t_"x?_M񿼫mTޡHgJb:Ћ`ۂbLsȋ=lSIA 㿰e!}g|7>@gÙ4 hQ]֧UZ@ "i(p(H!Bi( a:0G 9Ud>ѺYݼ  4kRQ!N>ρ~ĤnL7$R@/jxf{$n~*s jeQyI$_l"GZ7;g&;7\XAIA_ItNnH羍_GUm pQ.$aZ19Kw\ASwÅb\#yh/(r1̜sC)\@N 2cT藏>:A|7nj.KFv}oG 9Ҭ5t^xgi[{cvqK 0V*vGo;v ps'&[ZyPQԠ $mz-(4GR{TbSKud:SfȦf{QW6.Xa~l6:Z \wŴOdn6?dt. 7MRL:AjV}Q@] ӺHG+[U)Ў- <3b\9If"x6o_hF+Q1V#\&ܑJo"$µ J/UϼA&>9 ͠+XZG:i:+U͠gmFڟ [K!wgg;Ld~?ks>i2|h*dn`:'gdB8zuM|[_p&2Sޛpݻ=E`MSfcѠ|$nw9ۮ]&ߣuy85Ǖ氢:ME%HfǦ=Y㎢5YkIff_ {o56K`4ueYGsa ]Z!,kdKS$,ix$N+UjFkꄈpBIu2^4UWv!/it8E~]k{^z:g椩=P?nxCUn,䶴HB/"jˮ0qnF4 a/8t^AO7v=!jF2?U$cekLTK̹G1*27D]RH~hyr3?,^2C9[`9W~ѫxLiu5,aV|,AJak.ҝdTQ}nƲi6)Mل~O.w^ ǑgZZ-پ&wpM>د'S[~z|*rִjZ8מ`..r(ע٩6:ف lxV3 JГ<ޭAdžrt%MzAk;"Aa:9=I"er^$AsrbdE u>ϬCJnfeD iZY޿0S<tZ'ZOaХw8ct$Lk o,pOat fs4ӗ X#d1loKˑ%^ na99|zC7tIQIc^4KStHG}5jTSZ*n_1*kU:C8;?7ܴlB-@v"pO] EH d{?kHq Xs.Z1c, ɕIji}I'l+]oV{-^j7KGޏ^ CUM۪_Z!maG3ו$8ٵ{J mn.?O1<4t7LgB:=XfsX;Ze/:L0no 8!4 rMlDQBnl~zt4CVA2U ]-bt;XW)9NR[mfcLbW4=&\>/f WFI?X%xz$ fe IPOV!O!@tmc OrLEK2<\m4,4?An0џ| auoei\ ː0skӑDL4T#~o7w4)I[l RlЦ@Fv(Ñ=1z]plUG *Cj+uUuER4SB,*p h*NjM:'o =dOs-f`r}ܿd1=Lp\\/=4'pE.y+z[وLS+fĺIC%1'F7CuA2nH`K j0RRC>5"PEƄ|2(#|А@{juD*ckjXNʏ̷Tvس\8IJ{F_I~츾lH ߉ o-xM/$hw]~T/xtekG-|w27P$}^8O^TŁgP NEB^ajj [NN񡋂H3inJKH@8~ fq븞3(WUIv$ i" esN{J#>4(FVgwńUvDTpm怐>C`:%w#=]C s qW T&X_f ׊=:ᕚ9s_ٳCS= ܑ&N8vg.N'{4$]:+?&yo38$@:9,7)>$ė%6EESZWGs6j3IZ7 >om5+) ؚ8p~դݲ], &=?+еFaHe,{9zYt }v=^bRfj;tHpis!9闞 ?4jBKҧQvF}h[54^)h@t.P8E·w4EDK")ë=羑;a:,\ 0!J&Akl}$P˙1y],] &\AXKT>2&$5M'w}3/:Dʕ= l\c ہ?&R'd\Mp*o\jMp0"qkT˕JyȆ ZeBlwćN-KR)9k#):b?u]#!Ft&&hwp򷸰)䘔&SJf6. ,xmxޏ&{2L8wiޫ'o މg֣06 qڇT*ِ#Rmj#!%MOԉ7׼Ae̎7Yl[VOn6;}UclhխEwukሞHۀf3cNC~'!3 }T;">XBwBN;? ~F/%2PBIlK|U{ݳwBL-<~c??a:k5*$;d{bD*i'?goI>N9jw]8#$V<[+"m % $]rHzyNjCA9U(3? ?A-nvjf+{g'. 7 Vf(ƞӣ0D6Y %H:0ѳp0MJt =K@I'oxUBL>=PHѭV# tKFe }OeiegfGjA=KW)tM|[p_c~gx9q7~ y$ ++|"L*XkǛ%;R;` ?Ձ) `?r@p~wap&҃WhD&ݽIta}nL== mz,. ӆ6=Hr%5JݪW P_0FhO|VT<,6a 9"~O.8)3Zc7y|$"lf zzd 1GtDR*IEǂUKb UT}_}r;5#X5R˗"Z I8]%R#.=mH`{ t=sQh"NGQ&;ѻq^Hkr}# h~xi@l4+ ) y6h|<:dwA3޵ XFXς"g-wȍ 5BHrYځE9pNmY^%%tvK2yI}u-&zĦB I *sPpզ555nǪZ հYVBӪqt):Y)Z oR @"Y >Y>i&q(93Ȗ.7~avmDX$@LW|Q`%qOx1po^D>3 _cӡ"LTsz9~ML4FD"_.lFkV:?까"^^ ׶sf6N$}Ki6b\?WU| 8} s |Efw鯹L0HDn@Ki?@?$2ˍh?%nܹ5ZBό;)oSva~cptIWnTk*5Ya}btd #k)%ԁu W(d.IdG$ L9/pm)7=aKIG 1>~ڰ?Ѝ̀{ sIX~[cW ronlˤob诌bzr\ۤa b #֠@a]ZQHABH 5& h..BwHd- _"`%n`[+c}Ȭw#5eq^}2BlCDY?.cٵ$ꄫ ݱ.OLVuXn *O.Z[5@QK5Iըm56h ,$J"PX3e(t+Dkf[ $H 5"ۡ5b^>|fTysUEoD$ތROPmD cڦ(RFPPs(QNXr.@L!Bl=}RQhy~f Яzˇ+f.[-4I A'*j1[j6٭=!xI1n?J^%ǽ#!`ĥ|ƻ0Ga8>FS ~񽋆=|ścsnGFގ8оdϠޘkddX_bptؽJU[Q ލH|b:judiܩvג?u׻]V[hmϴͰ!;IϦk Kףa1R32v;Zj #6bKTdl{|ޢP)ﴲ;K2 @(k(}f9`3̳6,xXI_#IbySLV}\+V nVWCC&elbOe τ˟h#h:R?ΈQ .kqO  ]Xݰ1FAnހ .S%iZl>~ql&MJ!C_ Ru!qR~d/| |{gE* B,S ۑD8V$$o5(K*A0|ܪzaOd[G4/}n>'{"]|ƯXjx>RH|SnO"&vᲳ=ޖǝgd0M/COjMvߗṳw]yJBwVp$ǖ氬Nh2DCT6+[/J 3A/g3/F whR4l=p 8odogYʇ2;mW҇ϘUsys5 c"wM"ajW6nnW8k1#rJ6#]ri$5'\Bn,A&܉Jz: qkLHCt"s]õSB@7On#-t4L[vyJRXtgĢA`OK n$Rm "PhBC7{7R*y1Gᰘo.[Ȕ:S2\vI}<UhǞn*׼2 [>yΚo%C6bE!>M[~8 1WMsWpN,f'uc`Tα({n)Z^ah!P$zR- @H/]f)Ě~SzWxA^ 3 3 EbZW2Fhqk\P:3j+]w1s!DK}zpx3zn @֌<_܀EHe0 uNi=/X̅ z+v=z6߃%89g64PFҙx^B.SD4b-Jzdqn+0;ʳY}yfv_GkᑹU'c֒lI'U,Pr:`v<^z rAc gJoW8GS t&[[G1#o g Tu;av_7>́l'-Yqи~n{7SֆĈWYިjgBxY#}v1hh-)p B{ ~xuIZdgRR'I]BZRe~tXgf0ͣ.Нf7uw ,&"VFَPȲc`0U!ٺys-1xy jåqAM(H|qmm 5"nfY|9;$`IR"ʑ8ĚY8^ X۳VaO" +r"yam}_&vthst5kx94_xq5ϾwP>k m:$'1j6Z~CcG*VS6u+wP]hcT&Ōd5MUɉ|zHK2~rW-q PL+R|~o<K6ssTb}4KH%/!ZYTף )+-Bc ̦]47{Fg Q#.In@y6)7Fasg?!d[H͘gX EXoW! 7J3պFJ\vP^Ih[z7 yF 懛A|Iʏ±yvB]ע˜SV29LEV/+EaMQR;pj3zveܯ*^Qh&bukRoì1#vH[JeyG r7XU*5bLPTI1 kqwdpc2[g'{KC#. @SRBS BAZKOwgV{WbQ}9-ޜ-6)ꨊ WnodPV>vWXH]3f\MLr C#ng&!NAeVq.dtէI,n1w6 x 5R{|*=gBZcu}0 NCxmج|Sדgi+z% 牣W>N_b0o[3<XXczաK:tњ& B|ԡU^¢:&VTgM5:ٔg@W~$~-8dz w~p`1ru͞w y  뫙%Ĵzلr2}TӸZ.=cs>N }wv> 5Ƒ* qȬ):iW? ;)RV>ʢn;ܺ@|DF3}n¼/!L)f!>r:XJks&]v y>9ˏvrq3|-|\|ZM]Ф °>B{f6 hX\JOIIF"J 8-/xb?H,] NfAS+9܁- ̜@?ZT5}d+fd`$]g7J2'Xe+?X0UDžR'IwB(>zi=p>l[#[O's^bq]Cq"^^V=CJD3]DU.o=wx]=m^2wO[t1aJZ}Ȕ:QiP1Ֆ*ۤ\ꤐTD;P5F-pt: d=}`h0*3&w+N?%ؓ$Ex2Ү[wXRe2XƦc oR]l|*RL%XlCtJ1YXrZ(@tOJdSya(H;rJo=@S%}hjbk=ln.hB7q(_xIS/\ >;NWo.WmiH ;|9 7b"YvVq =^s?.5)F: # ژ=Hi^J=T0(P@OcCsX{R}v{w[6;b|NZddv1W^M܌5Mb=C-mЖ.Y x Hwx8$$-`X GhNﱔ,4v1G%R! LMgvD$`;ԹMQك6~l%MQIUSg+g~$yI`d޲PYVNljԨ8mUnQj-U)i[I]_LWVܪޛp/{4cN$52s`C:c%J#RXD-(#J }($) ]/buآ+2o>s>#r֬-ܫggOXCo^or; D_2I]JJgJdve:Oݝ]  $6۷ 1 I뭝K(0 b.Ұ1IN*k=Q.~iO}',kz km'MpL&kƺw=Xَbj,$kf(~7 r-Qo*R8F8 O?YcΪqOTư7Dέp-WD"#XK <[7<: [*MU8JR#M+2HԆ?gqo:V7ޖ$YGHI"5p }Vg]5y ^33*~t)Vq3ñpMd|26j(2MAf3<zN-7'2D(9?$ob/rSzuT~. ;EK,tg/VZ|=\*hBZ.RK6z$ Q\p4&G? aWkF =} &H>wŧxfR8n) ?BXU L6%_OeWm˕z}ըӝ1+5r1_ Xn CǃNACUղ @5U[J5:Cp{؃3Np]Z):t. GC3I>/  uFQr 򧑨^fJ%P{vyo&*FDjt]r D;XȧrPԤ^Vaq{Cd/I X;rB2! ?6fy{R|~vZlêIPd4VN:ֺor)¾ drLvT~^,ӛOJA߬KٍyR-a1IAFEFA(X̙"rWِ(iܒҬ<+\ՓP `d/Ҁ{/xVFmSHN_IK]aZJaQɴVT%.pJ`7ueרw}sLeZ瘤OsxVrE T?NA9p[a6*.Yv3I>Xٹ msT?i[܌vCv6nX*>llA00A1ۗ7Fv9I*fl7KqǍD_Yg2-Uo7-rF$Drt~"QK>z;E߻d<׼*/ϖ-$R F&xInȏ[` Ñ `angӬT2jmX c\5hi J{Iď xN:8`2MrO2GĂ Eƌ%wz:EL]=h3S\z=|@&]%5G4W{.R+M1Fguwa!)t­/DžMPʮ '>GFrhYfR~Mʣή̮ṆR>?@c<ߩ dsAIxqO&2BGt{ۗg~|2Wr)6pqR6U:x|AV>h#ӳI~DIWՐPOTUϗi^!NƅӲ8J|!Uh_c4ӆݒ41VNҊVi+&XI-įasFmcžf7sOLvAl,13g|Lq=.68ƪB2ےW5 oV析aqU)FfyB0-y\ ݺp ?)kE1"飮G~ ViIn;32> HԻVA71"ZRmpxiC덌Ś7Xސ~]4ީdf f9l+"P~Ғ=L c]#itaJ;͘ aLCZ7ku7Z>Y _|`*x3E4溽pmn} ܚt\{[ tw&~<[uuvބݪԛi%08P8f;fvEZ[w|wW ^=.N?:fCM+9;L8cI3{g2-i~@-Kwk <ऻKzYҬTZei lA 7!,Xc] A#m Q//2)0Juv+WyYg! iN,tS]gL~g9յ/I/Hүp1jh;nc?f};M|kn؛#]E!E)ժf7:tG륫(5qSZrCh.B *Uh,v+{/J |\$>K<y?4c 'JMw b.52B<$!cSUo?o9$#6{0حVСƋVZ4T: jW:vZJVDB#UKiI5L j>)?Ѱ$rZ՚I3Ɩ3%k@%e}# :^JU&_#R16=5&kode'!tZ{BOĹ$ 3nZZMZP55հ߫*hUoLKg(Mz"݌TdUf {s\Sm\Q7 7yCEjN1ia~7D{|C N %֧곱Ȼjqk:hYQR0[~q@AHiJAլWG-~4n:tTwN%JTlKwO~v%iìVyCWzeHuc=٪.wHrߢ3N9yz&laMAzq=5-6'W!#պdz#녃=ɠ/cDk-d˧. (xrmlf6dE.r(-=Ps$Ѐ%|@5_K.=O;٪|ϓl&Go0qAt:³ 1:ΜfR>ilHx5Sx =+X.,8.!}|26QmtsQV}8 C Ը=y)4td" anUCiכXQw(w?9Sx^m-ʵvzpvY4_vz֋Q L邱2|v4;vC>L^ 0*JM@-(>Uk($` vO5Fts~^0I."*=Zm^['1`;[N&ƹ? UZׯNiWI_k^![(B3~LjZL}Iz[GIHAŒh**Uʉ=-*hL>߼O1efZJU1Gҙ'>' 65M[6WeBΝR_Q$ħ-t;BS]skkow!xE y,WvϽ$%2ydsBo(7|1d8IDbvij]6gB ԤXd5_DNt] &2Nmt3l3XM<7AKl/y #[o b>dG.U3zUfY?a¦|r-S-Q,:D} +{{{O<v&PB?9Z]}$%9=J 'y$n->uMs~|xrB,;45͗ 0m a% =3I? ZÒU]P';DV ӈ ߭V[wLEMFUraY ?涨m7"Q\\BIiJw,{ x#O~)9\IA{n7z&*aE5+a]U1y|ojH˴ 6wJYj8x1n]\:OpPߙla`GufqkI~A%iy16_{~k&̙^ [U([.g5[-+Y|V~#D.[vLBZ5r8Dcw&l?x|O2/>6!/UK\*w2J_j/ghQs7\G('$Ɵ&(wjfP7zD3IXѾ}÷}kdLu?)9fsJw35z98@';  E3ԥR՗^D^gY}?׶LL|ZwCL盇~n@H.5.Җwf$AT ƒF4RYs 7[DG4G\)&i;LC U/Z} ƪ_shAkgH4 /k՛UiT$[ Cwwg33PI8{űj Uiq]VذL=DU%Uu7)g呇x;e5{-#~yt;a\_Co;yRVjL?25 UNƤ ^F,TfͥhO]r(ƺ?MGۮ@\r0 k4oAREκ)DHƫVS-MNζ_"C 1pȴAH~US2;wZ)eϔw* |cԧ# 56u^ lF.A{RFa$d,U{SgrCQ P]QR': u}Ⱥw"}W׶H( ~w^%J1 !X!|ͲX\&BK bJǩ>,^jsnM޵kM87[k}k\$!+RS F 6ܧӛ4E`Xzcדi פ7 [M\XJVv6_[-hfSJZhTgޙ!q#e2@n;I#'%L{tn|W#IdV; ]wVUg O3I#;>( 5n64u|&vH9F^gtTgv]Y;GfbGZQR9/jeg I~irH;. XABcϴp{д8kGd(vx+Dξ*G{ fe}or'~tB ٻ-!;c>A=iRt1`醣Kal9*w&}h!Ԇz0"ʼn_.C 3CA} J7][8J%G;{d`NWFb> LX~5\/Js木:u[M~bɂM(E}X2vЄՕǠӫl{$ Qhq8ԭM 7'UipԬ d4Yn ho0OWT%?aURGz43 #Y0[/Jl?Wv#N yBSbXy'~cq[9{˫^0/Uq UwĒ^ȃ+ ܏𷮣0>gIQ {E<-'w3~yo46iCԐu Iĕy {p6^v]c9ߨp@;/w/HoU)zy>& (e!Yp6DuE懩5d$4l͒Y=R>D@3aXMzC N]>˓ǐ\Hlf[`) GZ43[3-QE= B^`e7Yb0p$03آGޓYfr lKϝH⹍M:31ZA=;%cf8¼ Cps3ZiN8^>I*ȣμ&yL3~677*JVE k@Gew:$٠uG Dwm/$': Tm1fN&zZb}.?u?;vz _V e߻Wxzdw-RJ9&E/&xLi %U5ҕ,2iPe~rbqc +rGK2ϥs)3=O0$Mkjb)5Fd u UIxGR*\Fr|"EM%690ٛ~)WE2a224!:~'2ퟓ`/u:+ Q3EHFD=-B[ j?{ }Tu xa$\j4 x7;8%FU9dV,e9U"HoA-L.1n(E_D?ln|$Їv b @&q 흆BO)4qy0iis(?u]Wl+fu&mҊC__^2,/ u =I[ >ڱ5oR~󮳄GIi$S_Z1Ⱦ勊r0ŝ}#iX.7ۇ5]!~dD~-~TA;ܻۺ%Ɩ- dP|@lqYFwkkdK^8B+HNO9G[|dVI WoUտG@ IM)E7%#Cի@5xknV@&:*"@\l(3 3e4jΨZ&bWQaj#A SxKy"nvA,Hx8 ezǟ|06&s2\ł[$ h]V(n(:Z5|kОKNwM?l?ӓ~ᮻZd:x ΜgPJFȈL%Y/1D5uL\1D NFjDXKƵufym5&6Lpl@,V1m ݞfvdk=s蒔hϐp$wq2SExy<`' I*~aHE۾V3?~-(!ʴNV{&_ib2yM0A"%{BOK Ρ/Iў y^E"\*&SitrvDvvzS i$g-Oq?8fJjV ^F7P~~YR~̼~sZX S)גa/uOO9mH<'r(18b4w+>}=,W/32"mڻzf>Ϛc0ҒL51fv PI#k|t.d9JhH+նj Iz2W$Ԡ3NNp՛A=h1(і {dZV PMc^{pMwhF1wdue`3 d |5̂kjG:!NY\kmaGRwkTƯ7'Caǃu}an q@ gBIEoN;~VrNjdY[^&L'r\;HItrKhLxaP-`$w|fL.㷈gEuE%+^뒇製bn}߫NV9hc rrkw\/<%]8?,AEaL٥)j~,LU Wo~wPcV7Lѳ.xdq22ת !Q.Ƨ5m]ko4~Hڞ;^f@"ӕșޗ`h^]Kr%U8d] ܓyl+х;T]KUdJ$4|QNߓKc x_k{eK6:y!`$;x\ ]ݐf=3wZq̧֫Z>0b"ddJتuhy2i4ɏ &s|Airg1({M9.imڦqҿKkg6uWЊ]ڳY`x;^'ڇflmsASX.xnt1cFwNS0Uxpj,g* ]xMB`eMbVH;G``±6AfDDw.5Y% XVN6oG&oj+n9ek忧LޅiWX(~{ vޓ08*{GS?tdB `zZl޴/mf{t2z׈kg4ШP0?Jnjᨮj8\"^0B$#oaryXv5Uէuڰ5jT3-kUOp)o~>:VAt9|j儚6)i=}"8s$ɎorlZSCzEǠTze5 5p*> "lw^ʅe-N' @ŪY<8'Iٞ @Hzԛ1֭Q)0%h$itGpt-q1dW\ę8ZCuU( wl~>Mꣶ4J6pIwW?tݢ5Zݵ﯎x gfφo&^  8& [4ܝ$]qIaGwqB.9|[ r)X6o~$-b?`(9^&kIf".$^f5JZɥZl@ 5Z/; #"%Z{4lwLqbi?kFgSS bhMpZKf-)Hevggp]N@ onA2daߑKd? rT -p_Nǐ㬞,C3Hj@0߮K8뒑F#?%&?-/`W2eN¤Re GrҞ~~(|3 oOѵ tV@hY"ҩr.!8FYJtI}qt{Ggi#踄1is9R$x]zW4vBTqdm$}+vA-VRm7sL2ߋKw1҈< r&k{ +p\~d8*IxYLt S@>uui2u%@LPf{Kj i}!US(D` ,'틙'A{A`8%{bf}8*%;Wԇ%zS*7{}uncsulBP#g96.JeX6`+VuRG!`LiU5ڪSm2:HjzQWS2<,_ϓ-6Ad_wj?y¶$[V?GfAv@H8K]z`eR.&CoP#e gAO1G~JD1<Gq?~?TkFB0j"1EG]}\dG7:!6f:lC*h@0gԘpTu"uHla=H^AB_JKq~Q P/ba2x0uo#kK[>=] IE ~-E-fm #Ie ¿{SJg i4W"NHUΏhL7)k7j{{ Gj{@Ȱ 9^kn2ݣk|[p|翶'2+q\sE(v.Adť?! ]W6[$T CC }y+'I[j .Θ'~:P42ܥD$Nx >HcAuC!ג O4I@ b2U꣤ jf'6@KIg,=vmYiRqLv}^r P.3>3]ڢs.UnCiʯ;u'ШsXOYMHm Ux s}p|I_ha!ܟ !^qnBfK@m]IvJa[ן+.4 5͸ \-TibO`^?8(d 0Flg6. A{n_a&ˀgp;c(te' Ro n+vtާ1g*m0 jUIi2*zF;x6Αٓ15(N[Э冪IÎTWQ^͆"}yd; L+dvF SIy6bvr2l *oy%Sc߻zx/k?e76eK?•Eh7FAeqi@;D=Wy)5- omp^ Y#|ũٯ 7@ m/)_͔ø4<%!&L-rAp՟މ$ȵ(֏1453˅%ZF"R)r)^:pmgpxKq vXicݞz:'uo/#lnْ:1eG_caD/074ewoôŝ0`-$-$bQa0 n]l'9dV` GG;à n9aנZqБ Nʦ08p jT\H΋{_`w0<_}DblQ:9Zk1dHl*cJ'Ck=JK2TCsQ3$԰$y<{]!2. ɿwV4+@圣N~q?hlG[[.΃d81^ ~)c"ȏ~@F6`(W:g-Z޻W d" J8((t-䛭88JgP8:ldcWqƊų@_|aKQ3YL3e4$IPkָ3U2v".ȩ4@K86B|Kr4&3 (YM4 - w&svzRFQhSLjzآ(Ŀ)w~cGkJTd|ҽoȶ^>V?roY+:.>|Թog<5k^]#'52Zz]5dZ: zYu@V{ g(auNFwi`~>rq-1 ٳΠR~!=94a<{YViHy96*?5 8;D\ gr2#B^+%uBГ'@"{3`B.ႲŶf4H~3ǝd,Whʞ,uiR+5,nJ,@׉gH46ͥInN6(~31j4"LJ;@c ^͍+B8׬+"xNg6 0JHTZ/a d?,3"Ֆ,`n [BFЉCi̒RMިYU?kLM&66p~t`s 5AL5K\r< p&R>|ց|m2 T\JvBl!Ƀ;&[ebƖ#r S/-^{JZfkY9 (Me@ 0 d^;*tvUÞ庒t!'|mzo~Iu6RH^0I3*sr` khp鶫N`oC坂*s²9wO^}qw0hsD.jY'k@+N]9Bs S=<=b.! qaʊ܍G {8wXq`H30nMLLU qп;=~o < ?8Z5%cٰ;2o;L0y3TTj,ihC <;FL]ɡ؇7wWL3MvPsfÛ_GOҷiBܳ&4`uõkplr'M2OJr_'G(K(&T#yʄ2_D eff$eK>0+d5∁_L[^\^Lzcl R$vT%ìhq{/GKQYQh)˽?$0#G?wIEī%sou韯jd>K 0b"=AzU(r~3)ՌVD'F8ѐ@(yX&W藕A3Ai@g's(ZΓҤdNy&mN #XGJ>352%l(x@U<&:$|f !$wEOOP?Ǥ3e(:%DlXb0CS_dK'AC&ҥ{rHf櫺o&uACƁ4p1 ݟ<4Z^> .mԸc X7i (ޓ>ZO4I}t/T.C=x ĉ';}xX7teƖ ƻ\sLZ8iAMM?Ȥa\3HlP@I}&KޒpO%_˽my4YBm $23n4$FK;V!qvwC.Ѳg }T ՓjKlVDYWןo"'6WTS O-l2a7RWvmI92礌2n5bW7sL}"3V,%8n⡃Ʉe],֖dDDFc)-[n|I#MZVmOxk{eWw"X,skVLW: p@ "" Kqk"yoЧYDDКΞ,ܐvHsţiq.m¹n7gd՚B#(eP-fCm?%%B|w2=%fluDA]Oh'^#mB40 e$lg:[}7̞ ;쐓CkksODrWv 8p+b"gp|"tRa]n4QeΓL>.xqkNֳ rmb{-j),⸼*IC Rz =#,JhN upXI)"]Ru`v;/h]괞cݸE"K6ځijP@\&S=V*mZmѩe7KARّ4f< U-ۥAc5@k&*3tTmUTH.4gw0ʖ,RSwɄwkRjV07Λ3IЬZX0Я+eF=zqc8eɒOr QI {ѱnr6>%CȖ)Jm C: h4|Sa"J?hx@u<-lojZ UO'Qb-$JB(K㇊uUX3L ?t{d+tufrg/B׷(1ut~v+C] jsvdgZDh M̰IzA*tzҘe,¹.},ӖV )(颀; WApNpϖ@ CH&\ii:7C<C|F4Km(V_.%_,1`4dhݟ0MǚaP&8rB6$y%ng_ h6iLD@H.]t\l|kor~ԍ6zS#&I!6"2\ynI] Qt xb= 4Ӵ Prcы Vn,x%T̂4g#!'.F1 jKAz=SHZ|Ҷ$1QHB6㢑GT,D}ܛL2ۛ`Xȟ+-c+6ZZPctkh(mr;i4ˍ|7kGW9K6,Dwzan){xsR+GUժnlҁȴ.قF~YVx{{qIh|Q@5;2sQ!ҐI"5o,Ϊ 'P ]>viNPj`코ޠ2|ueNRyl7܎sG[ƸQY$/%OV^7ͯ(=ôDLcd8Û69Bp_? LILy9]s4؄'A=1] 9Ao<cO̧WIL 'QUT_KSn Xz˘1A,Vēnnx%j`ՙt Zy ." ȼ,9zQq|~[]䓝ӛKH ?>.{ACկ IYCհ=ծHU 7vA@!dYA˨80p8J 5q֓Dgr61Vl>`4 $BWJޗ\\g"oFUZR+_kkMf E*IEͥwבc9ka˃%َ,k`údwjxCn*q%._8qL!z*_ta+aRQp;PUhU{!h^>k<~@y"ʤ9a8E`H.6uOҿT8T0=?j7}( ME)gdJk$nA mɄchwAiǓޱS D dV Q 'X,a>;:ka:B G)BÍ4\yāFǾZUfլWڌs`m%9H88ZўɁ 6Bn\[Gyi3p2v[rayG 0%D% h#}yY6h! oww/O9 3=@|FCbZ*HjcR. :="G}4w.\Nq*gK_KluF`Ƽ i+J1ԧۓْ{ NP0(+Zj/܈ b>,6ʝf[.%z63z5}fF p" Z|^&сj)`{FRW`=_ߪJf8MPF! l.M T—bbj*:H)؅[s?hIOV6ۅڞS][{aϗ01K@v0=ԥ9 x ǔh_I۬Ai0^&"eBNէ|j2FWL )FOIlJI#uנ=NyRm.'E-l1% zQfdƞZ] xZCp-~X%Cr):V^W*p?hXT߫$Oh|!ki0$":L}qL|.QO;6̊_JzasprC٬RLQJMU|(֖gYWk)nכޘ. b5T~:Im#9m0'瀩]9NBh'fhBA&9> Mpo$֓TȀmCp^ HI/ L?AxFI q&[Cm5PKH@_s@_l3Lrp*{|+F>T;'J:"<іޙvJJGF1hh`]TD;V w*ueAʠlR: U6$H5v()fNӠ`Ymڽ4*CUkV'!]tdd75hW=3Nds`:WӜfKqofq<n7ovO?^.uo 9p9>^'*m;٥s鷤þ,T >s2fH5LXzv.6R{~I Ez§S(;u7Dq)Nb!J]DTֱⰒ{$˙^u, * ҔۥU/&R|@ohݹ:ibKHO&R9w~{+dCְ:.7kjlkjIhA򛖃`jU5 { g("R5ebiPœgT- p:'@Q:0WPʰRԊF p kbDox͕n.m_' 08 U׽Qcס/ T[n&}Ⱦ~AE.ʤp45$^Vr^X}(4vwԌ<pDN蓩h6'&䯯Ca˗FQP/*UOӌ9Z& `\7e=I,uGA0C g,z z$Y*-3BU@'񝄹f;ft'}=ɣ@^]ƵntU⎮2_SaiwŠwL6֠GnY7_Ow:uVJ}v ̉J:Q>Ā-c@ wJp339|3(Z>wᖁ`>/S4{f:%.%ߩojN]rGɕsBl;9NS,pA[H|(>\+9Q:uA.d;-0]o8s  V67e6s ެM,1<}}A~*al0aVbS!m6:6.i^VDU$DO:tl.&J<kkv*Un*#7pE>9!Y؃fp)Yǐaw16Oc{ ښd{^f|}FۂmQK'=<\#b 5.haL'ڴY:R.엞69Krފz/Ț5JsIdapV+ ME-S⦣3`CƶILUҮ4 ER ,U>t?/'c91ߠdN粠/JXӬՓ Wf_t-gwb,'+Vfp3|Ď߶>);i&e 4K/;V+ۆB.- MdkCws>{dVZaG `U =ެ!uc y,ak0rDX Jva4f 8lY:-_LHleH]o4oW'JtI 8 t.6q6a>L3 'T"7ѓ56n} pd 1yB8C؆}8aK6קggrrPɭZQfHBV|{~H m4I+J\l\X£>3PS{x Ȥ BDu_c?  hR#p|\6$睆6<o_0L ۳/+pNmV:sM%~p|Z9g%))[i㠎g%CM'QSiŏUa] "oܴRJ!ּ)66wIFKMtyOyԥGȇ&KW;'0]~Soa)j7Psg|=}6 S҅\-Y;˰^XzYtupH4GQ롨97Td#Bә4QlT35|Di˥R=R֮ΰHU*% y\'FL/Q܎hhuE}Jү>R$d<z/^҇o^ϊrK79҇їX}n"Xaz^I jSr ׄ@J)BoNHl~W^@COƾ ZrgRUj5@Q85^Y'VH> [#tn}28()E_2ew +Z̓?fVf2C !ҧ t#.*I.ӷ/F|e+ff|cLhg"LlzRJql D t&f0cزA\%- $ m~uŢyQuC=AXf0YPۚsiD> TK.F?wi$b'ݭ (4oǬT}YlH"}JLgْ ӻy;PrkĈbO{gy\R6) Y~?yFiMB}2 nEWa"Bz}6ВyA5nufǖU?@ K:Sf!9 uD(iE o'lMTM#퓶5I#JQWvG]+;S6Ᾰ'_ڮ*%iYwl05u*> Y}{SPV+",А}{u{ZQo 2Kz/s7"{ehX+ժ}4mȢGqQfTD[j2=>Wk؀gRJerZƠSk6F4tz +@$jmUo&;u3NaŋLTxnq18)} 1B>9Nщ16 '1( ElA]ņ<nqМQ`T]-u7Dz)ޡ-]zόevO nw薵t=fK?Ɖm [ lo]wȖ=6tw` zfN',2KO)=hnG ڎ vA(GzwEFRl+`ؑi?-<ۣ*pL\-GrnPjM9T㲪2V!&Z#5 Ѕ<uqͱXʃwЏmbh}D ̱ $[;Ķ+{w^[FVg@YvK c6(Z:\Rf#~CCZ< =6i陽C$&]' |(K\p&ΓW2AZ/]$m0rX_咸 Y[AFI6}ug14S$tcw=7w=_Wɕ/!,}wq1>[VFGNogg?"L[ ‚B:A [7sDڻax9o#w` }0@5s'6)%x T>mf~e".t.v BEL{Z 7wNr~#qZc=9B%O%KlnKPׯ?\\(E#G Y&l8A]>,DSkԍp%e,y>Jfm^C15i^R&|?+FABpZ1rxarP!h҉6>B6w $Q5.]oY风ihZsNVhB1 ܰ>䳈|>\b?}ioJ*0OֺD(wۧB?Kg.v20bx++zpi J& I,ͩ! #]N =ks+["xtCI' p7c..4|ޥ<8 2@o1;f5H<$AֺHo1?G}z+,tp>Kg>{Efhh7:$"Z zNGh#QcgQvKZ㔽d \}PP8>Ɇ13Hwn48-$҆/QR0sKC]ݛilE9,8&^ FϜd@̅5|!hDB(rO*t x2 u£d.Tu>I\pi`:hyFTtK6<}M?R1& ~gD#w*jr2U=V|>nMb8ҳJh.t DO| s?h϶g&Kw6XF;Y0*I|,ݐ$o 9K]LU].VRm7چJMxnt7B4'ެr0H\l$:DE-̄2ݓj lO8GYIsc~b> oA=>a)fV?'hМ<޿$*ܚ,K5$EfcYmuYƲҵp$(Dlk֗:FD& u,nq"GFFDF|Mfh{o/^v&H*] DA7P6j`tbR`&QmzO@28y8(T]+5GcΟnH\_WBDBʫ@y[Ilw*ןN8ɩnйwwMiBxZCuQjJ< ɔDe,kբE;FU@oUkSbJըq|jEJa>6,t,Ɛl89`?Za @v(Rt5+DFĥ'a}ូ̓Z1dgF$\:Gpjm Ygk8ġ 5=mj H6:\:Tơ'5{S\e N$ $y3,;YqGg-W6_7iحSxJ~nG3S-I{e)k[lej0^/-,v]*z ]\1ZWTG?J^hp,++O'9K Ne#upJ$nek?6/lyoSQ&kx+u9(cJәKE@_ηYo^NMy ɼޮlaVVj%+( qXs:HEQv+}`PQ6A@22kƐ"EP`jsa߲)>˒A ֘/d B1@8a~5 ɢ?ȖJzIG{袘|˝Qz3}!\P}+ FQ+e a/ j #8(k 8T0v䪗'ԿKe5֪U4`\vz!L Ŧ7]J.2j +,N6?X }I9K"O G$.b+%֏4Ŕg=8Pif4YqFCK&r/3GAix0qAf|ycm,% 4ҍ2@@*q,\;=W>"I%30I{ӡ`UNJЌ*B7MnE" %Bmorּ&]f fY˴V &ㄎ:>j68=%bOźKmoG+.6f^&m*W\7K8 ɲpSIGҏ;Ok'B<@٧Kw8ߠ=}x{WĿ_5kS?ԏpO=|mb{t,ϐ|_΁Å02/$3 ըU#>ǁM&$CY˪R}sUT:. *4NXJP.:Ӝ!:m<Urt$y,#ͽ2i;= . WԫFr tweHZ)ᓛb׽ҐD,3Dk:o^j~A|,QM/>OO:m1=-xmL'/:$ DWƑD{ɇDI5d0>( P8fIf dp Gi[MMw_uL*"i}鬖g'% W31ĥ򎊼zXkcbj!.|r*!5=wmGeynYP倬Fy#J};b? O'G(认ed@O2ǫF02Tt3N-Uy ,Cpc'%C+ѭ_,pckwDKe-*aL¥eIR1$"hpQY(nOA|/^tڃ7( &s>pL /{}a1f>}7-< :TY[ՐABuԌRA4Ċ}92=;,`!MMϴG>sȻ@ŢdН>o$vhTv*n#9Ǩd#X<: ~&/, itӛGIe\E? ~MHnT%UX d|UN`?L#v[j>*%m˕;qZk-gyyf\a34J4r#2 h3EJ ɐAΖI3!W֊X޲ UyMf,7+Zֿ | &߸֟ݺ2Mzg]dn=ن'6߸#V75;Gؓ8?[d^0ť1bA/)<%go͏s? m,7V7#+ejFroCt1Vv nƉnp @=4# էl,}H<~o~ Jk j)j"m3:=L x+% ^đ I`lG 9Y/*@L"0,ptpb= g蟃e4-DqD)~B7?:iutSvwqOR&H/6K|py%K倠jw[w Iz]$NP߂<, эD%KĘODr C8;40p 8R)g)J4W=i 0Sc#n-M:D$.ڸXoV~ߙo~e?PF|rCE5b$E]{$R/ZZZ__0̙$Uјtl1b^i%I[߄`p̗Ŷ˧ 4j#l7 jE#}~|ЭN qʙ :zxSIJG\} U0<j%u$ة]f$u'LO$c85"]4۬Z!}Fl<*l)DPu7)l^񰅤^$t`; L&'48w:ku9==(/K‡׳^^DpꄠSq#T\#N#x\QZ@VK"&бn{:Ըք $Ba@%6Av>nt03~YGF<959z ZYo2γ8ar&a֨ausG-qjRT+w8Ֆ< ύ9iaBuJ uZ=setӧ4D_|Harsۘ&)Qme24j_Hi*efj'0:IH.@ćrR3 {=I% >\JkIn #ܟ?3]}E$'i7ׄ0%HP'HɮzHxaAKO 8cpߍY+z"bV&$S?1ȕW x#yKqH7& +@;4` E53u^eA''N&{U?/͉lBץ†t:ʣ3Hj:jx@[FvKx>b:cr&YݙG Eo0KCIܵx./ſkJҨy]s>vXo4?&}W5Ւ뵔5-r6}N{*5IIR^f-h,h=sƂg&X6+74|ܜ6.T&?şx/q:&>vdn ' W)7|]yY_k><֟toke}z9; BC4>Xp|o&A!/鷓10|beLc; Wzl ['$ fkB7 !"98F M}j HdT$YY&WEANXJ +n}#}e L4{G2 [zx|7?n6~\567?W,zP7j;?Kj _&J_9_7kOKhh:%D86R\ j`rFC WT :r"{O\TEѕ&Zjpbl-cxiAy$;?`Le^xVYK˙ D6iv9^0&(aUsI D>JKgYmGagٚ>屄U+ng|Fwq=UN?c1j%H p3lLp)B2j(uTy@;ѨI8u]yYͧ>Y~^o=c!I\Fi`.&Yb^+yE\X0SfxUC(>їF{ w8H(*wZc(:.HQsap:&c2:w,b8xOV;KڸVkV7O>&X,.y%Yz\y@e*%YF> B@apm_z]vǚقeFlDd; _Ă*+/Y'&^ԉDAuxS1`Ql}= J~X-`0z޺ G|s)',ՀuwUƵLw|t[)3˿@s>gkbqzVr&0MK%9eؕZ@jL̈h,RrS1( CxzuʏS;Njy!*:0q_r3Գ8-xzDU_U㩔OQ'5PY>3 ug)I"#z% 3[_m ȵpH0%~ TH|taq1L7jx '/./rcmt+ 0eẌD5pVH0S*r+0iJ%}k ^8FsZk$=N=$ŊoEt7xt;|kЫ`c&@C|Gص`"K|<|I6hz?O >9NAc :JR]r6K;ӉQ%1߉-xY茾` |IU)4"ɴF|IAoM3ك-##bi>4!EVsGY8Q ()gKPF*}p oFp/u'Xgcj<ǮEmpFEb\nE4YX4 _|ƶ/@hv?h8⢕Y29 #4L%٦.Գ 2g!A}):!>$7=OXDp<|anW&AWhb:'&89"H]/y41'toSgQw_6v&뽏WP T]$mCӹf Ck&,C827w )pfKhe76WNO:Jk.E'9h#)b`[N {&ƙZvջtMپÚ0+Of R 剱-9' $uxv% +{2W6?Òz2 ۼ~%nd9+h&9_smNz{ĺ%쳂qԙ rdb x nCeAr쒎ͳH龠{2uNDo,*NIkJ`NlF[ K"+ӁOi dڎ{ c){Gn $Xb@uFRb4## Cֈa;fQ!ߜ HGc+XoVV".l暶R!Esy%*$Є4gUCA?΂_M8pH`jZkާA44-\[G;s(uMcK:T@ p2UkԮN n /-> ؃$jL6*ANMѪhےD rγwF㎉JbIVg=u-ȷ AxF1䋎)ej/Fa\_LDAU :#YP+@wlUjJ'z@RDEy,OVc^)WȞ.kj>|~JF|L֚͋twїPX߱kƌ/*;tiiUTqǃO[;< 9g__>}څS򢿚ѻ;[W/[G  B XYxY{6 aͯF 2CB&pVB?쥶qM?~⣾΀4%uqxQF0!! V}l>­>G;'ii[}YM43S6VUɼV%0HO:-Ja: ]E:Q !7Wr*-dA(iUSwܕ W7ҊYrw|;aÂfx.[pM>G<NW27,,Ch|DDÃ_wC: 裒Rg>ѹ<ˋdzp(|ߎ!yk%%T Xfgtlښ}mHV\o>}+ \=vqmBQySg[t Ϧjre