summaryrefslogtreecommitdiff
path: root/net/core/skbuff.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/skbuff.c')
-rw-r--r--net/core/skbuff.c28
1 files changed, 2 insertions, 26 deletions
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index cbd19d250947..1e3e0087245b 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -1962,37 +1962,13 @@ static bool __skb_splice_bits(struct sk_buff *skb, struct pipe_inode_info *pipe,
return false;
}
-ssize_t skb_socket_splice(struct sock *sk,
- struct pipe_inode_info *pipe,
- struct splice_pipe_desc *spd)
-{
- int ret;
-
- /* Drop the socket lock, otherwise we have reverse
- * locking dependencies between sk_lock and i_mutex
- * here as compared to sendfile(). We enter here
- * with the socket lock held, and splice_to_pipe() will
- * grab the pipe inode lock. For sendfile() emulation,
- * we call into ->sendpage() with the i_mutex lock held
- * and networking will grab the socket lock.
- */
- release_sock(sk);
- ret = splice_to_pipe(pipe, spd);
- lock_sock(sk);
-
- return ret;
-}
-
/*
* Map data from the skb to a pipe. Should handle both the linear part,
* the fragments, and the frag list.
*/
int skb_splice_bits(struct sk_buff *skb, struct sock *sk, unsigned int offset,
struct pipe_inode_info *pipe, unsigned int tlen,
- unsigned int flags,
- ssize_t (*splice_cb)(struct sock *,
- struct pipe_inode_info *,
- struct splice_pipe_desc *))
+ unsigned int flags)
{
struct partial_page partial[MAX_SKB_FRAGS];
struct page *pages[MAX_SKB_FRAGS];
@@ -2009,7 +1985,7 @@ int skb_splice_bits(struct sk_buff *skb, struct sock *sk, unsigned int offset,
__skb_splice_bits(skb, pipe, &offset, &tlen, &spd, sk);
if (spd.nr_pages)
- ret = splice_cb(sk, pipe, &spd);
+ ret = splice_to_pipe(pipe, &spd);
return ret;
}
Z 뿞 *tfCfP~03A;@U:Rv;M h8X5O{+n)@DȤ=ZST>Qdc(Hv\%imJ7r3=۱",(>rU/ ">lhI ]q 3\xT_(Ŧw4av퍋SV A\|xI6U^9s< vn^UG B0}iOV^&ke0+ߨvgK(AVKisco]<kųC88UIohi:hDG \qyl8=sZk^4/-twܦY2I»9O.cwcC]ovs}x4+L+lYgW²ȶ}δ1 Յ댏]Дm7|JGeëa w76`=[e`ps>-m=㌭:WO:Q86NCW؟6Ze}j4ǿ叉◘ΐu(E[Pm;; #-=ӕ`c["n|ch4GgL!GӣՆ:-g뭖cZCPR5NRKjx5mz5WN3 @Fb Eܑm_ckmE.H_x}4_ln;H-=! bz<L9UKuGzJ9K!/m\Fn2^M𿧅/뾇a]z3Q],B S])ܳr˦*hx;84*|s_\&9^g {)2(Zu`c~*{3|-Q+XWgc-T@Ou#as`w ĥ_ѡo߀I+LjMtSov[eq<8Q3 &l|^I?f `@w}}b1q¨= ԣF-\;I4WɝruxI&U G(V<6(by$#Aь֛%S tm|]չC\W*dna ?'y 3BbOTjp{6`&aUD` dhmq-tmS|ΆLVie-K;EE")00cq?:Ѳ϶hM.ᕌDBmмjqVʏ€*EoȿPMq !nc ®ʤ.*>|2=ƒ(d=jPb竚x[ÌҎ9*_ cZhÑ|O6ػmnDPٶu~JrpJ1u0 bgꖻ+!mZ!ǥo0پHa ){}'<ͩ33JW\W|` UHj+:׼}(kn.=Y*8ph EhB:38*j">7nLKJ}t2ʽ1l r2$kmD&ńK!I+<#J넙4"SIHrꍮTXf. ̆Y8]z;NKeb?紼UAp>_b t|b^G_wQ6}Tay͜7|wŹ srf@<Y~팛U*#T$9/UDȉAI b?^PƆ[Z%TL/&oq0:?#oYtٯ9 n>7?(W÷8Iuֱr&eKҕC{xRW~5+:is gMHP0~DG{/Jj'C,H_ģ/4*,/$~i~zhi I!8 khV{[>_X\I}3,Zf '3< @BByh!~ȥs6ٙ9fǏN.ͺϵ垂b'2\z[|B@l˲|z}qT!|Xtw4A- %Q#lPz}}I)#5("$ya[VIhykH旟A'"I@'w_u>Ag^|\Bn\rtyt_YNEkϗc@:z!f׈gȈ]Gۼ\t˺CCj _"`h7?oAj}{WcԧG,F /= 1l{*|n} {+;-305]z3ѣ8z/h r:q?zpصwSݵ><ÛC#q ܪ˲+xo&a- ? Ӹlk躯OY4Hˤ۴?&:vK-'Z?4ʾKG;C+UCoGT3]/aKt^ua~Ka9y@%{Y5rJW o(J/gl6.1l.5^`dw#T+_ eFy)X|~_3£+}'K/Ģ]}}6c^PBGO/-qOG<W0%d8 t*vC{֑;$YO?'cXcn5?g-.j_+^p2G|B-ꤳn2iO&~Q_lVbUؿrd珓w@NWXr@nHex\ABΡ,xՒb*SJ(XkEc`-|ݏ_o?|;l7Fr9/o/qV|,!x7ŦvYFZ}CB95( /Sn`OϟEіsGhMI7_rU ,?g/zXv[} >xdGH;g & 8FOS#;`$>~騿V )ؚb)h.91Y#~mmv=`U1W^cF*5`U,jÃU gTЮۢ[Oګm[jmU[mlqHB(5Zihg-w!Vdu㮶3dqH=Y$y+K1o/-vaα2JI[k9S \0MD$3o読Brַ~_Az6vfȁ@PSTt[;u6I8O~EhX)"4KC9MTUD; _|,> ,mRA0 YJb>ŋD/m9~B;a<+^k')E!rr==;f5(x .gN5 ` 旭}]ԃd]$ݨ)?&{_y4xq93]èϜq5} LAB {)/Xܸ6 P d j(*$&D( @1!aCPʊA-cY㋼_LUT?(,Oz-sX!$BB?o15Pz2)g4D $ƳBo6ORB:TXleLND[2*@05l[.ȨݹNVM*:PVvN~#D6hg3\W- D 6nQ bQG[aSG\&#h2Pfl6@f5+[]Bm,>=qxOu/fYA;KjwhOA 'w#C} M.rЌLB 3s+y-@=adX)kc| 2P&ՕO}l?/\YL >QOq~gIGkH?Wˎ{ev5d׽_^D\+`MHA`,n%ư?L,Lz/4l(n:G5@ 06} ]^+Ɨo |.sNnޮh7TO|&hhWջ.Q:J <[M_-yRl"ye˿}vTwC>J5('zaTzBaL:5..Zzlp;`"9pPdHiO:WZ&:?e<0vI $MD6}gWm:΀W䬒Q| zu~g9fPgZϰ[zݜ;e]"lQ|C{esg0>c=VtQ X>?E/5;J;xJkOI0ph9Gl3XP=ܾRWx}v}ۦ{Xxq~t*:Y&:+~z<وK82l(6k]h̻}~W9]$xlV0Sp~Hgz=khOCUE()$^qdsyñ$| ,Qa`Rq,rUټ~Qvn0rq*!_Wzg0h9\*+Ɗ*~#6 X @X2;38iH|x0|gLI?k 㡀zϸ`C= @a++@ @?+^ pt9ATi(F1eK YΜd~8)  ieǰ#U3CR'AαpS`=<ͩZ֜oGYE+l' }O/K'V_E FI߻B۔כgd~N]}k9?aAׅM ߖXp]7"}˾KB- ik|r1h"ydn7v g$r^`|emPcOL+L֛.5glvh-4"o⪃ @0n!g[VRW"5~.fUL1)>oKoZ]7ܶl}܀"T.=nY@/~zH8jG˷ǝT[ґ1k@3 ]8һEM@C7(Sۂko-58h܇g+Y$߳_W]s۬NHOC^%ds?Xwkp]bޱo611wO{b#v_ߎ9;Vv S;W˓bGG[03$g9dM_έPyH \p(WگY+}f*LFUfVӦcI.3SO{<_ xln$ JlXpLBH5 eB(4ikQ SHO@ѿϮqnDtvm[kZPFG=)kxE$ĆR}b9H{;v.@vչ FI4T厑D 96Ɖ6q(ιDh(3lQ(u Ђr]m,灙 $!y Р2&$ ќ <hEߏKE ,!^"f<~z(81/3T<)u)[ѹԎP`A#2>0\h ֽXxޢ9EoQ)s3#G/ϷWXnc%cQjh?+/[Icel;~׳pQ=܍Z]+6R4rqw"᳗\: =K v:՝ܓamV-x-pkxrvˣj:(2- =UE{a-Mm6y8vZdwF˦m2ƛ9|}nulߎUQNΰj0uzن5N{$~Xڽn\F|"7.kV־n\:Y"(Tsז.{_kfBӮ1Iu"ä-}ş Ü2Oݲ$-<'Wr$)P=;ta_Hÿ))t!τ)_SYeQv:NzdbZ]*_ѯZ7]9m+v_xsnkwE6<^X8g<R$.k$ fHMuېܔ,wekGɱVߓ_Uzͨ  2ptyzz ~S_DȲ1C"EA,J 6kJdʅ'ժf,&pCקC.E^[:\k~7qI0N{$[ٶVC_JsƱ`zB޴GC P<O_[ +?7&}ɧg.'f59+oU<ۿET~D/auG;g>C0Cjt{~1OU)]=vhTQz_D eBߥ2H18'/=E"[~>^2\ƁPO싆g&c¡sM=W{_p%!pDLro~;_GiGrz z:1 D\Ō;Il84VR~0 6Y-a{{vW¬H>=OluI.RE m$vR6_v0R.@<ن"nsppx, Xώ,rRikọTRWNN΍J ǥWW",`7#ykgb.^-_Mixy|EdcɎƾfaj+<n{#;B`Drh6rJ#7lȤԢsO230͒1$< :vK~NLx= XSm:' Tx٤|pH,n X M!erEۺ7k.1R4#iK DX%Gf.O_c9X?P'b*FSr'FKF8E7ɶӹUS0~$!y9 eg3]L0ŽE ֪GhK]+s—y ( elF/=`/?(>XX$D x׺&S-gor|aгCrER"X#ΰeOpڗLەhHȖ&"`:Z^d̀k(iOCMcpM\rǣ5tp\lѸ} #m8<bG̙oZ0Ĉغ9Y'ƕU?=?8Nl;0ٓj籘>yK14aՄ{.6;{5+uvFC]|HR;x@">?m}v~~fr'iܪjTOlꑡwwctG^(r]߁eQE5UQIQ1|xz4%5u LQI'VoqwD7=dgԉTȇm+_3ؚ۬ZwGO_#뎩!p#ls)kJ58rT$J4Gh_;NH 'OeϨnӆ{A" K3@>]rsp0ZD8}2^e*Ŀ~{}Ӷ91YziJa MPvW5r6-Y{ j.û伿<z=ӏ&d|V>G. M7'Qpsfy$YyC5<@xWL^-跷a.ȀUx [v"Pk2O.X_]<=̻[ѐp:=zpBzdya>XDV1mKinvQ2Z=ICP1}F9W82si]FJ֠? m1BÞӿH?襂Cd#7ABpIUUm_{!(}eIH0JR"`:-DW#h;ZE[Lz2^E\J.kZ\]<7)& +}>?Oh';G2s.W:`إPMQQDNʡOdzlx*!bDJ+bSÁDP/$NAԋ~RaPoE؆.TC峑vwG^R6 u0(7wY *GQN(vʫ}WLux-f!m@0~o \a//W;썹Ԭ#sޡ?#9hnc]F"TI%c\-); (fPd] IEV9svIN_ NDDA80Z>Vۮ!F8rkQֽ#x[0٭g<( ( 잠 {ΆQw~$KT 4` +U\Z "+ +-eco]OGD&cl+@h{ T1 Tι>ݖ BOٚU|`M?ݴh}7|FKy| ?D0=ݣ'.\SO0DOT=c'̋ ' #Dd:K@~ L.5(kRuN#j =\9&Bp>Qߢ"'8B e`(܅p E7(<$Wny) Jki^n$9BwjëuQ[Xb~2eYE]|_<6-ᓞ uv^5}qV$*Kr C LaO|VlPEX4":ȜUu֫G]Y֟gՙbb>}O:tN#ifβH cG!O+ǘm6vt},6}zw*o*b/Ӿ~"4 J!$ F:jՀ\@:JߢB|m 닅&a>=`2)D󺒾D#CP!0?Ήp'" za1^)CCf:0^.c&(mzJSWhEj؍Lg¸z Q*(2pNHHY' FA!P:XX{ 3 G /hƠ|"02ި#3`5*!}x>ݴMN'd:ߩl@7tvFx8.SU4ԓۚS4A?Z \:Ѓ`RS}zp]qMÞK65]fPtUR2t1!InZ["Ƥ PA0U >mC 5T5̜f~FJ3)697 ]wZtu*}&]Ρ>s^}󀉳UD0ܛ6sk" }WdtȈ+{=ok뮴٧(o޼H:eۗM1*DB>n,l6) d^+OL["N=ː'+mce/_}yz~<*D=J L[ !ϛrwhX9) 0p3QzM-rP.xqsZ5 'dKcm MyHÍqkӶփx限 ŴfQCo޺$4MQy$JcIQ7QcI1lDg*=Y} GrJ9. ET5)E"?{(J0Ί;2zN/бqA;.SXkJ^dC|,b@V.˳傧ɼ. ozr=M؉/I(QaW ^ۜ$}.Cn2+p;W7^g˰ B 켆@%<=z .:XwO&-H,B8Z.$O(V7CxU3G`nxw!˨QjT2. 'w2F6<5IS7P|elaQahH ٬x|#j_>WbZ< TKzE}5e>?q9I'_v= nCx"$AȨ*DpˑS Bq5G afYs <$kx3oMExGyJ> 79}Zx?l-zy@XR Ků# ˠ vn fs+ۺrZM=r+C6r>T wGjT˹[#&:y@1.ScyckѠYAb'^V0p$9rO/;<:Nn60XSW656:.V薻vk;k'M= 1BZWHcieځ$Jֆv|< o˓]p'Z @NFb3NAtc(TPHhZ٘|p3xVk UC:ZC8$x*B @ gYs2I8fuID"<`p. Hry#xNm\$UNq#"^G39HC8W}> }>"o"ͨ:1*6wCsr"Pa1;xP. NW0tk>&2xs$g x'EoouIZݱN Si* *>uWۅG/!aGuipi 9Q/Az:c!T^r PlMϺY 6 :NHnF;iU(CK`%#s2΀""~,hS=9mGf;EN#b" W^ah>OVu#R0;c:Ȼzg !X{; ^5"RuY euSWomr4迁}N͛v|W]_58B}~}gh?-ݶZ~l ^GyS!i@b:]΁u<*qz~QG^ y2sOapUS64B]= 08 S}xǍ GN_!u R{b:XX9X0)up,^*=hKܡ"B ?EuF:Er:Q96<)X' 0r%>=[5![:99pAFtշaFqJ9ê}Oܶ^l Byd갃M[AB7Owf ~d@'z>O:Uԟʄ0Gg`gy4m.顦9~(`b'V#yk\ 84f=O /P d`D|Wecc ;aN,Hkh+ o~b+ ˯~@̽q P 1Syğn&r eO,!Gz}k|0t7m̙լ!G\'y⏈,D{!pv{Ekujs S|ā*0(׫JQ-f;yd*=x[{[4a4Uɨ1MTiΡz4m= ojgI`|7LfZomZ\aklcADv?.[˔lKŲHv=٦(>\~L. 8A,Ūt=+=DW0r:æ0Z0WIjw Ў<6IV|n:h9x9W cAHS219 >k)*9^cC?;0^I' G'9J LA!:qR9w 1qeyO}bpx [U_ 7ABx6|й}HJFOif'Vk,֊jQea0 ]6f , ٙ08heɗOY.LkFmͼ8(#ny}2K # l9ku<FW2c4˨f枆nTڅѭh+i4$Ӻ4ۖBfUt'M.-K"f f}_q|o:ʰA (e1p*ɕc f A 0,< &]>@c EZ/#5H1(s9T(.+#/po 2 X; J~mWSLdG7~qk!Kg2G!>-5GMăE@\ރEx٠8M礘'^:z94z1^5wpu]2&H.[",* _aDmgцGBu[ܪcLzapy\XnEՕmj<)Aֈ\ r ۟ $G C38t !͂8_lBd(dίϕH^E2kKgilJe2GMZ1:@J))B2I >ڀ4eeG C;+M) 3P@\iIaJ WFݕGQA¢acQUI"QZ +`#]o''ٶOz%H?MgL< ã`|5=T3bLh UC- 辡pQWފ uWbǞͅ]=HG* QD(!z1aLu_d)0& =79lTHmNpm7njaxj][s$BݘGz7v*"`Tr>K)У #B-+>O [ tO䛓~e9ʯ*vקmhX`>ca}mUX n]v:D0rΊ<f`K~[; 8&vf,YB$ж.((=eM:W&1r Z]@iׂ.k yD#h2Z=npRAuIuirZ;66.z \'pypbAȎS@S+Y*;usӻ5ъUmaGǨ]tU9JHZPƞ~,D]sh[/V׼3JG۰2' F[C3$clŘh>&`8&BȈNҀ.p1m.xe(u͑3z-3 n[Kύ{mMTR  }pMjk weZ%H5iP 3T5'zz뒒jG6*5&G8CUi'6y?(Yn8aesߐ8woqcфT\JPZ?_7{uקUWnvیhf .| =OY3-ckzჅCt']ՙspLkAnY`3]^87hYJqL R E^GО nE7u;RQ@q s>ulޯ6\&'u2UX C9P4sg6%7v=SÍ6\ B$Ш1EO4Ek{3l9&Da08! :q"cē" $Z88xч$eϧk>Iou<(Yr{yT+VHxZ%t 2C8:fT`֝2ejab-&c?y{u<Gh{ B뛿Q~#s`no7nBqY9u&ݖX ow`dZ9 eqqSax*ʏ)絛I€(.aȔdWB JUS5a8޻g㐇Uas,|8(%[ 8ۣ itO5=ͫ"bA\/G!._q@nsW:˕߹ʫ\ƒ _ EVM| 壹Wos'x((m6Zv ?8{a}Y^oE,-J> pPmYٮNN޶ga$Qد#4XiT"jxTyy!! j K6 '1QPHR8)GnG÷~:[os +!ubތkUwuҞ9U>P\46i4[t%*B}qɡI:|ٽ])Fs,k)BF+Xxa?۝qvXmH t;O+{"B, nYsw_;5>+$^0s~ (TUZ) ./#ŋcOIm ;#Sho#ӭID\`,PW 94d𬹋Y71=k#ƺKs֮9:=`g r")A@KG Hx1-5׃눺͖~ZkYxB"+Qfy1bL9-{ɈΗ^&|Blv\[Kj>h"KeZP 9q3ٔI@NjGv $νhhNRl֌3 *:9O{NR5mSt0A!/Q~8 P*|CvrM"2GAX0"b~stZ?k4q7|F/];>,ܿ{^&%QK_|FOv*IbGŠͦ*Lo@ۣƁ`2u9]#bcs#1⅍azڮ\SK`?TV0ՕhVY΋"%Zr)Q'Y t@E.P}<G70c‚j?A̠1?*Ϛ>*#l7)w,1CkF"^eN6'p3Tc?6J A+)](_klx;-zL[!O|rHDިDq`Ӭ)ȁd:<9c =k6 8`7BJJu/t*{M}Z[)m{odGJqApW>y1Q68TKFqP?.YY&e0C. S aI.Sː{c1yqd>D\. RňtCrm;-C-W6}vw ?QTXMo[QH@H/o%ٜYKq wǛI㰳^9 A@G#)-Уn&ٿp]fQ_pA$=~Г)a4˟ /E:k<@| 6 $n#spE/gK 'T$aӧckף|Iζ2UX");Xm$1HںIZ:*r<"Sh6:o16\;q+J(!336 U\ėHW `{zD#t=zfnz{_@[k6bj0TEg_#7#xA}3KS=vK EƨH'9@XHBSX~d88}kAal6U45fM{KJs I w_^qҤ("E9l@ O6g, W2yF`E9=P069nKy|fQ4.!R\?@U\:uB:-r_3i ||`ʻDȼ(ǰMgG䬏`/Ӆ1҇Z;xl@힦:D;>v IS=abP)C͡A5ے \ v=&it>5ƓqvQ+mGc0ɗRX|l.ݏ?ۃ\2:82?{̓l` S0PL½-S[ą K rO5Ki{ IEB}h*%A coq|UO"6}/ j1( `hqtCt_C٥`{۲S+lx "2pP1pHۅO84V̓Ry,cJxar,tvfV2NcNaȲS u#[(a6 ?Eä]s , oIK~/@a*9j%(%,+jDbqW;aVa QKmѦZ!ˉ4\bYl y?ǺqY麨P~q s{®Hjxj,P^P Y=~Fn+/m&m媚9ouɁ>, '&ahm,b:8C^p= Ё^8OԵ+15}Q7bf)cS82`hF:%vP3GƯxN|F)cdY6k8>'ݮtXvtq|1Q@uQG&5[?c>հw۸$1b8Uxk;i =8.򉑫Qp30a0P\8y082`A6NXJDvz>#:MtzJg8uяH\8pZsldSܡצs `J u[⌂k1 z$#.nL7qRk20Ժ}ea盫LŴW~#~>{Y(]Pd P!~ qhqKv@f6ık*9oڅ -hP ToUu@.QqH!GmzIR̋w ߬ >K3`w׊Dوc;"x `8_KǍvO&( u`mWC}6@liky+fwH6<..o&AX,9(fO`:7mB4arUyռh\5ꘔKGo!BeT;R|f\LUGk͙&dHtyё0ٕ_VJڭ$(x}u nAN 8`_+gk;,@IchR1ODxЋyC0`l*`DӜm|1Z΅#fώ;V|CSOy5}ư#U;p׊|ubg?_84"LήjD0b(,cupzW|u:ds? ~bB"u5QaԁNa1H| ӡaJ״mrɡP~8"b9iu1v-q5Q$B(J& CrrLβ+.ȅH̿ ` .D]~%UyS)#DGWbL5jz4pb1uU,QK0gbqI( 5 !/-۱4PΖ9 /[gsXIɥtU•.ʇJvs|aolqц_L%!3r'D+i)p ]EI2r1YV@/!9|tr*-w[\rGIwhUT_ D;DQ|z9CoF+SUSNu'Q56P;H)z ESΊa?v>kŖEc}X8bc*n*+bE9(Q$kTe,ҙjLESeHY$Dܯ(lʼnfI+dQk~eGa=E Lfap}h{rrBUcPl?m;pXY!R:+!-DQ?*}y`3VSÐBrCrrkvD| '~:sX9T ؗcQrFjzmr|dGr+C)Z f[$9gm|i@cdb FgH H~"IAM <@V-iP:˵U 74X/lY*h,iZB}Jٿ{ϵ\ca1X3&0TQt WI@og-VR}{\#Wr\yn ψt 5쟽|JN3bQB$;L8Gz둃>m~+'jrI^]A @qK9L{OA^Upd<f|%yxύ8LҕJ8F~sYU@A].A!]mDQBAU8].c4Y|A\9ZG4Y(ǵ;#-{!~1K8[|,=lZ& R7eJt=l}^r b߲/1+Z\*1KPcPF&"t0͒]GĴ _Xn?Sq< p2("~}o݋_1L5BQꈖg&08ؽ4@Y4/eB3<8~1hs+SW{EoCXByAWR|=M97Fq]C8TJq qSѐG}߄$Q egg3i2Qb*Ts#{ۘHׂb^5,>G$ l:d!;8[fX?:''l/\Bӂ|#K Hg,47{ u pZ)8Qno@$ٵt |=ғ| ,>CVhani>J;eMelLF7HUWJ7V?ZrCzم(ӏild.30(鋑S0:hnBՃfm`W+3(! Ä;gˁ"vqebEedd@Vt\AUp)iFVl08ʎKjlDwA:$)K $GBX$=X[~k}!B|=5 NaID2-@P*plǘ}@1I-u`}iZgW8^9Lӣ$Tldņn42fč$B #5!Ø1 T%Sn>A|e͒H^Ndৗ,0,ϡM\8%L,zxq3Sl\ˠYrS1(* L*ITĽM妮V1<^.$;HWWam8ycFpcYQʌ+7F#S݄؞3ӹ'DBY:LfV &QbDC`Q܉{:x\po4nڌ  AbseM`7&zbUځf8=f<2yϏ79fΝdd) u~:Fsإa$:3(&4xvzN caAȇ2<@猼02=j:hD'?1jͳ"(隄',U{H÷c EwˏVQwx&rGUJC=6}eOc29jQ/eCFW"fPp#Z5A$"޴Q/ 3.{/ބzFD9E8qg>UR\%dvrf &wjhJ vgH2x3Y<ᬇVa #JH@}${'Æ`066#y ,UrDKo( V^.ar$n`RNJ \Az;0TUq8<ލ5qkWF /5pk;7E@Iͅ$wGRHī! ?Tn6D4c|UZݦp6uxӺ+*@qXyw8q" *U<Ќ@!ĂI!aߜ>IX70 iH k o뜇$e zw͓ # ƃ 3i2)1p.H͉ V(@۱,,_8dUuu]O|6HBs:iis WV Ν׆?f|_+Ӌ2ZqlL,$[5㞵MTY@b-Eo0if*E^G_ (־~^έQ0،[?7Hip舕WB=.AW/iCd 4A1с;:f^Ġ;y_vB4 =uwvI\9S|}4 7F\boD' ܰK WA(/_@ ifԲA(7".=,LCLQddFϤ Pxtȏ4jx( Z ]ތ)U5 2hRHO2c]ڶ(,C+q(FS?ٴz9|j#!^@30Q)U2A? [ ČJۦSz_p} H0-7vÏy )w}<.^O2 @CTk{6j|`m'-Yx+5, , S(|xRQauP #8\u CrpuĠ@ʊjpbѣX0u#<.hSlOdKrZFl*A(9iXҪ)T+("e#-@9x_lxNJ}4$ӿ~"C[͘ $;7`C!/B^ .L|.p _!ZWk*)zۚR;篦^VN`5F?Եg\45=4fd|T$ Wrw7 em}^1vyn.^ EWN运r8UPէrA Uus}j? u;lx A 3A,|jb O!\R>^9P֨O!Uؿ5:CϝZbQ鶇7qgl׭ɨ㌫\ @/y)! f(r/Z4S/lEZXp`Z0.ZZ$RN)q בֿx`xW\HD ~h 1Ac[c61@KŃȡ8 _f۶ty,?ܛ7$-dD/aA6q~u7;(=>h +P3d]xqm{Du7ȋ|^%ȹ.$찋%k/ѫ[)+Bƒu R~ ]D ]B EreӵY\¦%Q  ep9>E.;U^h`Xu=^LYlL`q.$2߆BdQ\A̯&B棈/Q%o^ {ihmG~eJ vH_o. (QUOK&PF h4-3a$}gû,2E`kAdZa sZ>8ɘɨ p᭹\m>J3?b[&^ B@PLftgpkĘ 2 s)r@gCT0kE/(;¨ bl[/iu_/a.\Zdf K}[HpC*1]Ҭ#bjs6ŮmlY1M[uv - wI&Ke0 (0o- FQ[у~b15vMuJ1;/Eo7i^L'ZP3H!z4wH>W@W+rKo_?s'SocGP澖IgŖ1F6 bPvωwCqK,2;ŇJ1MCk\MP74b~E y3pi1_ÆDs俭"K~?)lE 9VCU#li@&F^j!N L9߁9/{A 7og #/17r>`!aX:L*ӿx dPD{YgϳCZ\#,vK@Ds(q.(0UeQ ۯ8`zP0P[~Y,my4%7 [BpqS[zqr,ԒV}M8aħ.g~/A9tS˃6EڶBǯ~4S//…L-C[AKn5.>{yh$\"!IZ5}IN!P|}xP@:K`ocßpcׄz\.,maN˚*ֱ8xI0Pi{BMsj*%!|x\" /1xwe1wPFPe۝tQRr>| ^R%m(v\״GyNoխvg\憻znŠ.$if yMMs*o\=F"W_97P+Hzl5Mj{;n%67r X[nvB6CyIYux0MT]:>nF+z9鋴:;gO)䳕K]}#dyf3`TKMvH$:Q˺ϲ+>G$\ ABˌw@a/p{40o 3+1YhෂpƊLlg7Tq!u-Å.f7ڧ?=*@w>\AÞTL4+MH`A.D{vŰx2 Α Jh C:P.Kv=% [+]P|H3R +c 3#|'} CN ^15~\;Sw@8\sE[kXpp&qmȄݴ/407cL,e܎% #TcBS(ؙ)CZ=yȉXC0FĽ#[`j!r8y91S|U!Q0hG=Cr9RhCp'gM PRsG>`v\ w1:'!Y3(<>Q n8M98Zf ӎ7^}5DYTYvMՈt &!\al8-pL-Byx]GD:.0f׬Yn2'OBG|t5kKI1$a'; fy]HHQԻgdHZ"FMfvs8[k~';imVvX0<{YZ6XŲ"H Ɲ2aGYBZ8 P:׉Q!>N -:|5^n8NcǍ07PtY e\&q@}IX98uԜ3hwƃ@01}9}VuہPYaX!Tw&l#aq^n| \>!i%.Ay/"8'1xICeu9pӞlqkN)OvMCt rsyǙbuƏamsbHaC'= 9UiS˷ GR]<^-XY\&@52@w>6T}pNaGoB 8^a+>LAAңr5p.vq,'+@!iw .P l38p҃Ccs_28Bݝ֜U ޏe<Ik[8Č/A$KH`(NԢU/p߃pӌLQma0>*FIpH )A1= ˀӡl8{ED'Py[.iifKv懩=w |M Vrj`XK=S7ZI^vF? k/=bI,RͲT,_%f TA}kcyn17|`#" j v$.[[3Sh'j! 0|qŠj]Q%eMK D!5 Ơ`3[9^ 8@{!y#X;`LA$7QG%zЁ'XA<_'~9Mg=sxGl3$46S}D 0pnuKKf+)Pȹ9\QTT~W?8,Sw-ϝ,s<ļ3l(}k53@spB bMvUX|KU[}OMN-2d$ɀ"#e"|>߳8.C64vaUr귚6)#@ܪC*Df8P)Iw~m%#z! uO݈<\@DyYY4_&DES Wc2*pfyC㟲M]etfHeV{t ,p1 hoc_RDH@{Gٮo$2|8`slAziIC*xmqRTlZ-:>-[Uڲ}Д (ֈ]S*=)si**oC|T`a>Ҁ0>\ja_5:P{ˆ  c \m,P#IT\d+A 0Fq 2b@U7Iozv6#)  )IGn1qMP5v@R\da ޡ o{B A2c,k)O|3[#CiO3D <7OCV[Ѓ~'}YjnK^k_?mY80lY9tQ?%7_aÖmzNoMz\zhIQu_ItpH~FoGAh?  ! wC<46M kNC99C $Mb9 #f|/$<ͭTh UMY<!?<8kdŴb 5Nr5lkX Ҹ-Y 6q{߉_^ݢ>djk<4Bܮƚy QCDsqcKpqCQEKr%;DbBb]ۀ==Mp0՗6%ê,{lP*~黡PQ\cg1ql%ȴ(Xr顇 D@4,'U93^16 ]8#QKB:`+P>VA?Agf-8/qF?yBzQ63Ң'it(qc4d{r}JUjRT`wH= LݟQʅ8/P*=XaOepw¦:nl?Xf,e~A4K~N2gLya⭫;)^4x: sިLbɫ"_Gq܍yU]WӄSw7v_up=,IE3d㨷66B HN4@ :r[Zca]?LY?pq$ #P?K̟O񻅉7qG؟Hw.6w(A@gc1鞜$2$<wsNsnh6>gOEۅu*$Ft A%vr;z԰s3upWL*4c2(u9y1sVA ?CaJksdH)J>6+)d:VW(bkfet^OM45ctrf[w24[ձFCY+-e`ik W PSl̙PT Tnƶ<>yLC P0W$G_u/X( a4jRlȱȀW.+`9%M;qn'oDկjՊnߝу5(D+ڏc}:{ϭ .>Y a{U։p%ΎVZW#iz|&އdpH9$[ :_aZHZvV3P5=\23X;dv#MA&54Ago~?0=7L}Wy=3>v 'o(GڗATu~=ԝwlUJxOK7PbHNB}^׀Vh:r7.EQҡ+oܫ@ )(һ tBPD0@K! !=JB%XJ&)?8@SAIQItSĝ`O0)f1f(`)[Pt$H< rOC,o y~sl?.OpN\ Ϙ99*øyξ@]yp7n;cWu5zRy?><~ӫʭݮC c }YT (pOYx0dd񬌧kgI 4x$WƱ1׼Z~hrt ۧ?j{6^}yYS~ \9$Cu._Րp(RYoӃtT?p"i ==9J$(IJ.A綿ṉ̯O tЃڱJ` /Ł]"hwC0-ʃ1o[o;5'3? ir D@Ao}Ft@ n[o7lF BU [VD'^ y#o,hi7?kiϝ55(~=Iw_w +LZo!?$ d%B)~V8(a Hit`&ZݘeGViFt%#uk!RI3֐i $dOՐIٿ\q_/?! ,EJf(OpopgPz/o=y+<T1Y~JvKv=-GOT1}tk=8,{sGV 1?eJfeYj8S_@(_7WL:?{hB[5gnm /o+c'c,k1 윥聈P!w'k Ϣݯ޼?+KFߛk$UJIaqǗrhcC!?5kl'TQZGǻ\)ϻY\^tw+^Wcw‘;cv+y79Px:ct>ݬ`sXsP_7Pyz uI=|f-AOurZP#zDz:P_Gp6_0X`p)c~\k% ej7c蓮a0DCފ`8mYsESDLPM).y0kq^Lp$y[K1.\bgM碼"tG&k7Ch>R1:V2o nMAiO.ZLvYrsQ.fvOyPO;}d2@JĤC]htOua]GZSD_G;˯iY9A1 0 RO@m C >>F{ȐNGa]:y_JHy!@N,%= -@ҳu0r0BgA{1@]65=yyQ9hY>30H(2!_VN YI9ĔőM`aͪ>y1)[18?lgdO'_qw+~-rPÝy"Pm'~+/gģ^,΍j-p m{A*Nw/6Mb2E?PxrA ~\ bٟ꛵WJl^նkc5wtG@m}qKZ;Ӑ>ڷ0r[j( Oe6N1MflZBۿ<;{eԏr|twtewmפ|0je$q2v0P t؎|*XB" zZC3]:#e9ʁiofM=G8MDxS4s m!خqOv&,Zy|mzǻAoY0w͠!M:@q%ckW/t!u ګk @]/cVfΞ||>PxzCjjo[w'lt8vS_ui",F(z6JX|z."/kY6vCߘ|Kh k25Bs74pQ E1ϭȰ<_z!-v4Hr^Dn }#^iV`h0{Tˊ>P1_)ʽo_3.Ep*QKQ&,p㱚YHN8LWq`4voGƟ-*: Iplfq$PD wb#†i{<Ⱥ C su9L]ȤGbJ^/l^stιְt^h|Wk{+xtAcә}3++@a:|ﭖH+Gl/{4Ǥtl6Z;jHt82z 5J'A#u%>$~`Ab|D%?w|>ոhb?$GU l_-]|/k OmKCTz(x+zJa;/ozpP<+8wd< l­G?b 0ӎQiǎ!hҿ;6៯/Q%F64C A(Ieiv(NV#mi~%7žzfC_w+C*Z2Oϵ<|~Lv !ߪ:v[PwnfER`s+H<"$/Ow>Ac6rvg/@,D}8 (mz ?@BT* ?b`FCII*& HV&|M&1wOPP?}<ىbHD#$ %*AE_rfAI  4ԐPLQwLL_g[_@, AGCM7dgg㏗y)ΈW~~z,]pGM|}c$IGRܮ7~wg ûCF_ axkZG.xj`b' ]7wwv:ۿ+&͞71-P4g"D(ߕn|b,H@ 5@~w#%ϨgӒ od@s ={Y$9@cǂ] r6n 2jCQ *`_L'(wO;#0Jy"ZC熩[68}_D׃4k pwh gKN2Va~z6rN[ ?dtbjt:seq(3]ˣDL/nK]d$衟B4PXVE7|6ŬNYhPMaJMֽAks¬@攲/5ρ!t4 6\lXu(f6Ó80uCSf l!ua la~Ls>BTts8]* bgF31-AI!1Oi!ؼu#sڱ#@@ E bAӛǫ=냪rQusx^P"F6H`h:?`[&~'S6` a$ VHrQv`A)aﮓD7x+f;M뫘3V,,@Cʄ%’m Sl`#faM>/BD逅 >r}8g}umV4ǰQ~],־ k=̔iNl_|7q{ЬK~n%;oh>0;f3"cTZn妎v CΞqHBǃܯ:?z}YG;Rg1qtw_c亊v}ѸqR@sZ7y/c{z㶑|^Ͻ8(|\W8E37z[XppgK Ze~_DDQT+(\K$J8_) /VbjDQd|[=ۂ穭٨X}Dٿ.KcRݯ$(g6spQ+RJUwt1 ,"/reM(8N2 f`KR ]{*wnnN7C^lg.DIfTr{(sBP2wֵ_R>h1sғz8B%&RF Y> C]p9h5e4I`w?p<84Ra&y  A=*Yu2QAtu[ortsNZm_hteuR 6`۫6uu}rB&x[_gƱXn 7,"FFA2ӥ4t|>1r]cOT}&J*%I| #LD>.؝:/f? >#F郸60IAEw˩R|ݽߌ4WY1v.[׹\T={ɁHn:myyDO0gb'碇 TB `7[=+*FM3 pTB*OݭƦtdL1!Yf >&;Nn?pKJZ>CXJlDzP?/3I]g&2M9\r=P‰iwq؍kY!wø 魈ImfRR~ ˜\#Tt )V ʷqR' 퇁ɣ Ãz =&|?s߮8H9ǔSg[} 8}ь!"{ٷŋjeJ:HNiaY|xy*Wfے2w\"p|.tL5xZ/x" l.ALQ  k(' o÷}06ғc9KV8ѭ[a"N,owڮe[;#?W:+Z= kWfZxa_H5ՎNK2)(넃}g/"̤ 1 8IXi9)v#, udss^#Os?rNYk}k[*t݀,>t7vm &?<<˪`6 ڝp=rE~GHa޻ghn?^vS =µJWGa?Xnjc&wj|jQ@-C+(3U2G*v`JV>ljX$teYݿ;+Y'\Bcѹ^D*^lD\9ѽgjf[x d؜C15/֐KzBP''Cm騝ǿ_\gzZuTA ^K; j*,ꌢ6Iz ' |5y~,|s d6N]^Z[vma E*B! H7)p@ùa8R:(VYG"=ѫ}=u]~}BPPpN,:>) ^_ GKTzGvrSM.2ƪ3sDtH]4t#kZ"v~X"5Im*'x+?KhTA@S[S#0H@}0ٟWtKm4*\@yb.d. @u8BM;s#5;} 4&$sDQ|X9!, DX%F8$ƅsMeQg^.y1k\'@堢}<8$4,mF{4KFi&D(tO NyWJچ i A$g5S.օ`0?nۇ5@_i :=~Oݢ~pOcVk%o/d|w/ֻo>_:" ?u|=Cݷg9v wSON kU=9utmGPim:J1E:ͧvhC5( ܱ+" #xC+8;3c^`@9r'WLU=pFOkMgJ"zjNMaݠ\TӅaoPT) Yi ,k .y1*d4 {z:w7_Zٲd,YiЩÕ{CJiR^'H/qhFj ,zqp'4N=~EH6^׀<7> g>A=oCٙh}ޝς/uϬnD 6#*d &F:s㈐5˫F*ڬP=9ʬjH[p PQo~{YuLefSHBU̵5% mU!C_+?V;u5ɾ8isu4٥[R%\,٫fdO&ق.@'!Xxm::&}G: F'3PD HarGm$5a7iaFpisw ض<[$aI h d!({i: F$;RC>.q\t2-e<'"YC 5P6HFS{شuIoz~iSP@;CmkQ7́=/v<_qyXEj:v↷Ƣ]&HlvAh'T2yv@d;;ĀLVA{$PϟxRN/%7 51|`_|}pvץ:7wAkm] Go?9E{Z^kZ/žcmjWR_+cMBC o^FB%% )[PQ2ﶺ<8#1;Q-UW8YeqA ؞f ؒszgW<\y#vJNTᆔ^،=]_`0ٻ_ \}5cw9àr}[U+)k}q ^KgCy7Z[O*ݗ/NsU?^yf6G t^= vhLCߋemNn}X)HD*׵N<6"}67 QO ߴ]*5 #:jw3:=r;5ƃ O%쨼aAU!,Wy-WrrÈN /}ܳ[#^ ǗO?n1vRkX 5ޟ,hK DL) \! a 4LX  GˉAeٻO= }rk@OrOE/ؿS6Ae?R|.p-ClkUT){=@}Uu]|GO}dhw~ KHm0 >|q&W_0D ?7t0>X+ 9x?2x-Qr[zJߍ*ue<@l#C}Twr $o?ڃ13ِ^;*lWn+F&)tϗpdywvyCǒGiO5q2I((5|7SC>n+1e U " D:e꾗< 2'a1^+mDv,%"0d-NGˮq u=NId@6!$BuzB j>"P,E-/rԐwP(O~߀đ14o*nA]yN*:I&sH!oq3&Fm˴cN#dYݘ38C*fx$e΂݋xHH=}#d|%ʨ f6qm -c1CwxfU0DT"m$4@DD9H~D)f-jAApڹ&Sd$ϡ^lt׈f+ m(ڠmî&/NPM &RnaWP 5"%QE%QE%QE E5E5E!TQCTQCTQH4PP4PPEIUR")S᎞=dTxnvlc0P Zޭ@z4x*u{w|@'.O}/](;`,5!3ϓQ\8β`ڝ wM^Lr IA+Ԁ E7D"/ oWHD@ ֓m|ۺaP*fIJ&F^qp` ``!ʼnb)XPYe*h$@RHD,DDCDHR!HR-JDQQ151@PDHn~;h9S`Kr/$˓N=ɔA˚KϿ7ja na'$Y!;1dlH TD%10TTMUUU UUQUHJ4ҀPQU5Uf F$i)hDXX6)4b((:=Ϟi&hYd ( IxB!lOGܢA^P6=D\0^\B t) /tˎYO9RUezp@'2jo4{sɱI?+HBE osykeN(-'۹w$λ%]s t ێ3m8KTV8C>&^rNsugWHQ'08 0%BٵR-y S8Dc/w9A${Tpq{|wݻ< Lv˼f: i\KO05w3|jo1@ x0BY0#8GMN oF @0dBdr۽z:pCб _HQ^ dmSTi@Bk-fǭoGn[OϱbvrTD̋i|p,V֣ VptDva{( ]% Y]~5A d2>Q]'ұ7ڹoA<+0)2@aݿ[qI冈[,Ìs9JpAH)q.g\ OS&i%G飞YㅏeFM$I`r0pp u8HڊfC>V&1]DOssp\\::c ÆP D<.* !@m{p8gD5H,cxU1@F65P(gFLJ:R'R(}F֠]Uq@ U@7 J(*!`l}u }j7>0WÖEWG_Zc-LNW9W~2լe/psu^)\q l)gպt0ݯgUٮ7ɚsvS>[cky2;v˻+og1L+rKl9.;˦Wt)kF u:˱n}踿jŵWVCU)R˺3w]7(jQ3UxwPxoVg_Ѹ(BE@6 }5#~\* rD7=w*qlbH߸5oH@BhvR@_xI>+S|Ɓ) BS}:c5O!ѿ mz1W?DD60HPA6 Z-7NP~f5C׆7hgRwNen0`ĂrvS"Qm8H!UXB;9k]hdg؃Ƨ*7~;i7yKQ9FЄZn6XP^V H^GE&a8_Lxkc!$`OJD^hvE5Jx&ETF}uv= y$TW>'#o/:!:6o w(oQ=L+2g" 6Iw:]dov1sZTe;'f.bS_&p8;~)'8BETJ2 J%#a&AFQcD|7?)2%H iE H I^&eNJVBs[jwPLP 7B>Ny!>Ina pmєi[1wk!*ove|{+Zc3K, !