summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorJosh Poimboeuf <jpoimboe@kernel.org>2025-08-20 14:03:43 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-11-02 22:14:40 +0900
commit5c63fb0b382f91f84676b1443a6a0b93c5335cb0 (patch)
treedfa678d4e7ab9675a371e9acc4cc9c107da33ff1 /kernel
parent89fbfc799e1d5e400df21fcdc52fd384020573e7 (diff)
downloadlinux-5c63fb0b382f91f84676b1443a6a0b93c5335cb0.tar.gz
linux-5c63fb0b382f91f84676b1443a6a0b93c5335cb0.tar.bz2
linux-5c63fb0b382f91f84676b1443a6a0b93c5335cb0.zip
perf: Skip user unwind if the task is a kernel thread
[ Upstream commit 16ed389227651330879e17bd83d43bd234006722 ] If the task is not a user thread, there's no user stack to unwind. Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org> Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Link: https://lore.kernel.org/r/20250820180428.930791978@kernel.org Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/events/core.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 3eb9125431b4..c9a3fb6fdb2f 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -7724,7 +7724,8 @@ struct perf_callchain_entry *
perf_callchain(struct perf_event *event, struct pt_regs *regs)
{
bool kernel = !event->attr.exclude_callchain_kernel;
- bool user = !event->attr.exclude_callchain_user;
+ bool user = !event->attr.exclude_callchain_user &&
+ !(current->flags & (PF_KTHREAD | PF_USER_WORKER));
/* Disallow cross-task user callchains. */
bool crosstask = event->ctx->task && event->ctx->task != current;
const u32 max_stack = event->attr.sample_max_stack;
dE*>\1[9=(@P}UWbw_Ӧ}Nq~6=S}rE)G=t${憎{JR5{C/B ;KPr+%+6 PT>ĥ@Ye69;SEX2]E84Qے5j(wW/i07qUri:MxBO+eY{jnߛdt;H6R7g&7kPiH]#>$q::T8</>A Ǹʅ[AG3#zA\2 JI+j,Czsgw^h q-vߊ7 B/HlGo8ئQAo߾y5`4X`_)jN tԕNޡ3#AJۙNMqQl~EW)~xZ0֩uYIj=z=xv{xqp+v^koHm,xHPAY#wR>[/1&d^A|I%<. %r6n@];m3zC]@gXOUMRxxĩl╵0>V[Ζְ߻:9rw'FNu]VT&,‘zB%Nwb%G,[W+N3Dgč f6 C0;ůPP:+%WERzs2$#EJ9TǵP:#Lrޝïqz='d{;:_`hknҮ4ՀgLUjC;`Tu)<Vsv#!f]_ g-v7D+D?9MS\+D?T,wZĦvԸ!ZVsP뻽T |[Y2p4bT$iGeTڻ{2+G\6ϓ_u-0y\'}&ȃKf{ǀ{h7mW+br@c|Ƿ6_e=mT 7yd1meI]]Ը_ߖƣ"/IMY&&= ߱(CdWBvbk|gZ ^Xb͈ʞvptcdbjF 13r"Flq{, ! yp2h,WbMz\m6//ǭ1y_]jd /eFɰʜemTr[SܶZ.*A`ky:/_g9h\E3nfyA_ItvnHnw'Ukv v{Y$t|&<'7]?J1Yk iړ`Kf6ڐ|0&²I7p\T,@AkG| Yko1nӬ(^/!KFC ^Tm7|/YswWAzqK 0UN5 N J̝?iaU 'VDgL귡 Iuj2T"^N=՗ә2@6:ی>HtITyz\ wĴ~eBAd7EOi!Y*˦ Ken=f;u>{1#eBزRvKK7\#N⃭_|D_IK͓rXXs.%.Zs K; ! %9I;\xľTu>xzo]?t1)^fEc2'_tx;^`y~^52 ,$ٴW+\ vێ\#9+umHҜţŹ)TҁMi`w-+kA -Q$ yf9QVUD3Nl47k<nxkAɻ%:gW I?;h[0|2q2DPh/%REK馳rM]y_X{Iyw$:KJ,A}$.4 Rʊϛ%<-~m]%{{,өȖ,<';h4^ѣaƂrb\sR"d;kLۋՉ߾uj;:$BW$v=dmK[YJ{7~kRmR\d0]:*ZN ~[dԨc' %.o#4^*q Ycm㽄3 ;,e@P)%i$5ZN}hBItxzE4Uzv!/iߓCPh] k^A:g>=ߌnymM&,ur[Z$R\~{#G0;{XpmD4zt;tOk=婑[]{(&~c1/94P{9*<=~`G# @'ü2ΈÇswDI deǒl a73ܑ*W˦y|ԟs0񮄋\^*4f.ȉ]\֣jRJfC=K&ޘyK{6<zŹE{[kv ܐ]xC]ylI֨ `seh9ߒjX,n̓Ȇ/R-`& (t0yf]o5t0^tئ 76z]\lf ?ȏk%ڿkO-R15RO##xtgEK%7r! w@ eE7`!Y pZtФTjbPNo3 pV69Hwjp 0LKsZ{LGBu‘e@m9NE.em!{^J(9Ѧߙ"A@ [oi;ҬJ+R7<,-v־;wHE%؃;ʡ.ǧUv=;`xY/X_`{Y_]3;n-լ\2C"4ţzp('[Ox&).[:,N|OVzwY\N pK0opm9Ov׶֋9< ]to[$0D[dI2m!&7Yb($`N"/ށӵukU'w i +lIs/ {L`M:F>Xf3ckZe:?M0nxj*G) @lJkO87ل(;vF;xXU_4+dW-.]AJ%NwcAu6풲.ȳmꄧy{ ^$˵fPC+&$P]DKYܣ* ~AEH0|DkKz&m1Om{3X9oG)i=M0Zrv}u>Ll JƏLA69r]'ݺB_yZ)L`j_$(fN-_i%~oUH0􈪑cOaQzl7x#)09WDHC k#.N0,: /5U+r[ tjYV:$gTd?D܅ɎzE#jݓɎ k 8Gn0z;`I׃dH.me`mצ#5uk%N$m6` (ȞJөI8kjW 5Ն-RJ")JZ%CvP8xYVDh"d ,zy "mo"6XXakJHU0Ct셦j#M"hqб5B:#̷TvسmA؞ۋT7}?HW#ɾ/dž͍/t灄ց>ԂGYf&)|&EeCHEBYV%TƻyLpMWUz-JqJ-''[1n|MsTZBr~~|3BoXp+qأ`eWdpǣ-"v|F&ҦZ!z9ZZfdE/ZDKe2)5T6>IJ+5 02`N` ߞ-Z,\hB!/32}o(zK*'cA6r:v.D z5Ȟ(|aҘ xO̻bBg V+^"U6Ns@R\BBƋ9rX+AN.jh-rW*\Vid1Q$@FJ;16Wo/xrqgF|@fouA: O ctw _XXoKŊ;m9|`Ϗ=]CJiv7lpck^+ޑ|6~mdoߛc(pG%Z&ڹO38qYyrXv"{ey>NršlcK[z;.h(ল' aeR96=El@VÖ @3>n4^Fj0&CI5Z[aSp9-˙I`!=ɀ\^\ a`ó*7Z'EZ6{%6]*=#Ţ,;L㥵{Ήe>G_0^ 5ij:U Z;(>ըF69IwCहq)?$;G ǻD #ޣ5;d~‘gh9 'F35A$@H+moYR],ٌ Ϲp.X!z3zω=HooEFUY1k]9sBOEaZzCtr⼦-^&Jn4ladA[zȬspFp!;;Cf./0 ʃuGcs&EaDgbw{{- 4Eu*)8p?^|v0+y3>ߐs%rv2?<fQCye:Ԥ1jP##uLSM.fS5Rƨ w; ( 2Β /F6, Q1؏>ػRBK _zPr{ZA9`јo;I wRȒ զc§m9 993!}4H)|c30ݬ5k3q0X([wŨ ^s鋳Ee[-z+,whDD 8&Z/e$I"2EeZfֽk[+{Eyzb5CI 7֜&M0xR rUFqui٫Uy4˳Ѭ|qTK I'/xXFB>=WPHѭV- tG5]3z}*w+ @6+ Y6}h7>1as>[A=6splm~) D .V8\{$RSX˟`q{,R:2%۞Tn-."}ZR^4n-go;3yѡ $ֻBAtc nIHhcuYM6O̹K TU) $ccyD# ~>u%U4?NuBACv/vLkI_r8l򣧡ѻA".פPQ mެ`;H r/2 [%x*$ lj0YEߪ,^~CjjRR,/ؾjNSWb3;Bn?5VY%hyކ$ȴ1װ=mhM~)q5Tj\f[8y:g4@K.oݹ{ى-G?bCk< ɘ1)Bi*0Itiwa Nib H{یҢ*Z9th9,v LԪgQPPoH!Fi!;vo0k(-&#%βiAHn;'2W(]ߌѰRk~sXWVgjHZj׀j$)횚4PBLg(}̖,{K/&'6^ o@^K7>X p8TmZ-=)I2/:61*jNO'Ni*J]p<IIA/y&6Bfg;}|DnlGOZrj y}ϣ9GpoTC֔ {>fD_K7aufS 2#_ [/%0!Хhu$;gi syk!KOHh,o ΐN"o:MU2J)E8^]+f0pM-h#Yf)yз"C|Y^:dѻ_}H(Iߵ[Jt y)&|e#ɫUU M@pـhHWpbd^G|+~ؓ=k4 7}5 ERW<[^b@lϲ\aX`A.wZH)`ZQ 2x[np3R\g]t {JݓKr:ɆXDV>k+x > ^뛱3B$/Uߘ:+B#ٞ䏽{$?\.ew;}b hkJsXe@eqw Q۪E 5afG_snvV8$j:WS<=IB.-(zŽ#bYy{AP/n/_j#MJ%:6nV:@ZS~ B*qJ%.^w ܄25Uzm]Gto2ᗑt?Pocgf"Eq15_}^mr^d$L+<Ц$!Vzb?2uhom{j<7eP_Uhz܆NGfEp(Mc'؎~Y񽷷7.Eh2"G1jmD…IGԋ\8Ў,tLM!+s-LappÑ&lrلCY<~{]PgK󑴷U;'Xt'>3먤ږ 6I@,K#mOEv^$sc6pTA*Q%OP]dl.a tdDJu- *H 7)M;,95t46O6|5N3JB-IZ|5M%Ɵt쑺=EMwjHwtXFO!3Վi۳ٗa>?Bcb:M,8+K 5 O"۴xe:9-1LjmI6vAov]"݂{/$~]-Cl5O>C0r !SYR}%0B~6Qj&aTj zSRo80_G}=W nX=_(" OsHznczPg;Khw,OJ@r>YY]᤽HWA(!x7D8 NHjRZ8 !R$\m1!q 1XJtycKSB7OnG/t49[*]yS(` xgFccQ`%ўk;%%"\EB]8_8F*ܹr5G~o|IԱU2\}㌽ 4MA*(߼K ߾^o%;FqnoøD~&7:8TWW@ ˱A .GcyvϯU7굊6] !ţ?,Q$ba-wjCgXۨtr)+G/OO*| .ax9On CgiwN@ dh#"*ִfx.,BzZU~glqTWNf@rɢ\~{6 T mD flBw&{7U.|I!׭ B0'*-C48xJyUևW93<1^;KFT , J },B0hIpQ/qւnV d i 4>DESi7h Y%}-]"jй^HMf Y[Iq\A{m&̮Q@Nj-\@Y7,rn{} +&&|"˧Mr},9@b"} kjZ 8M LI&E3y)!jEkm̉xr9Qπe7f%Ԗ v6 ^\!t;"##v Ƴ\j=,E2/!2fjBvls8$V#3z$a^B[>6.KDHM/%PP3U}+xj>}m+x@t1$%م-Nbl p=[0+ćȀ U7 G}5(8]ֽ8Bs/j;wyrʆU@^Xdo[B(d57Wx<}Pُ|lJpYH ӉWqa 3`vաnK%֑#@u)g!ɨQӡ[>ͪg-abC0XғOVni,{iL`&QkL>O\b1·Z4{t noR\of%N)[-}̹%[Z1 "Y3$q7k\`5[g$C=8H{9Ro&?0/Z[$?ӄЎMYVZ D<1rYܮߤ"wR춛Kܴ*?MXa)di\9@RIF!/H~7i|!,)ܞ5a1x"Lw}T$Pi_Y!Ok!6⃬ŷ |EYh7'\vaxBf.꯵[nq84N_U]7EcpPO8"15;.~}'>ihf"8Zz5 J0J&P= k,ٶ:Q9yF[KYZ !FVja!꨹\"h\k)=oͶ`2Au_G%ʌ6wL(9qBjJnk+2:iNtsuѿw3#w@KȉKU5|:w*kmUuH5H)~^8j۠vNa^}BؤICEDU53ECW/xPL=&8 w;@5-:~}TRVWj`jo8(2MGӦ)Bg(rt(hƷ/An.iz =gA+w.lvl:`zޓaVEJ먽mD;û6_{k'T@ܚjE/&Ǧ_8>B+/ZڹഎIgGn6 o{ᔔ %!C:'y6!Tϗ+7팪ad,a cfCS'IdJ>k i}ۍhmCH"ug]H]X QalOHZE~Z㓔ڇ'NxBZ7ʢM{dx`  Fhu; ɸЖpϹ1lwB% ]Cuoj+#cS{* eE7<.5ٸz1&[dG</ Nw'.)~o(1YYy9ĵ-|il%ct$$V7q莧&&ˡ o# n}r0_U}#urg2GGzB aSdg,/grmܩud& U]i㸦lb5ĭMUoZ]IXj}4ڵJn{O"ӌ9ؑ$tYcgldydq@&q<b/1d G7GB"!N%r1L}eĐWlOYZl1ػ{lo 8*.`yB20с\Xѻ_&YlSogZhiט{z&BsZkg|SBsR4wBRۨ+hGOT8J1gؙh M| g\e/(Z#Y6Ĺ)ttZ?́pM|26KY$۔|d6-_@𩫒;P|rr9S҅Z WzǤkeFNqJ穓2v̚PY%?bjtWUTʭV^WF]}I{/.8BC'~;5ajqdRN[۾>5S0337T^ Bz Ip%{_{O_m_kO*&zڏ;δU#GkT +MfmۣdL{kPBŷu_1!o )ڲjH29Iy/I(ɛg@4-~,3|4ؔel(VɋR.?O`4"L~P6e2/q:μ]Zl׫2)y(sLdT tJ]= $;1BY?J<ىݾQ|cR GCU_0:) 3k'%tc}""q+df-AѣHmH4yĆY0G 1֤w F[` 4\ Y5\mT]g"Ur|;ڔ >>!d9wK>jۖFlr`j qq IsMbaW|_R$xTZ!}K#gޙ#!D?BWAKդ&2_L#o-ooD\Z*% p,BdC/tسsؽbD,e', Fzw9ΖE lmZI Skv[9g,Mvrb(3_|=zN{q|n^*.+eNrr+h|O|2B3! nV5vvt.$ǞsLwk3 wN,~&W웽8axD7Zin#{ܐԴfUɼ+(wґp.y,{NCy=?NmQ$ǵFL[H|bYroWW|L 4VRֿGE%Xx6V72˜ s֥ͤ Flh j5-w x!L!ZQG{d)#q`:I-S㡉S%Lh-{K1Y\2O*?FÆ ]Qx:3ykU~Li d6G-PdL 2K9&A0SyrCӊGF %}蔷E]=h'%Sz1EY%U!{k.2=M1<4fgn#<s„k{ mdmTѪVDݟWM<,lW<]OLAݗ&FyٳR<_։e2?~>:u1%.PKRڦN*&>9̖Wlx(9Gc^B:s1:ցФ(F"ڂkN'N7=_H2Sy4 ;&GJhahmw(POv)qTluJY}Xl@p/&"O꼭0[ix z=p堪n ϐ!S?He߳G78T?1hnP9"}4eXJKPH\>Ia a!~nf#Ř yuȑAtnfN0DbCOɿm]aH)4=|Dpg GX]lYv(io U-#iqa͘ QȿL+_'NZ6&n:v}2ۣ#IB)ITp~,+c`o-q xtMjŞ.[z;g? 5뭺Vvބծ6ZHw2T٘-H}!"^x_WO~&a EWq1|a=Z$:GHhewŤ19֮P-ͦ!Z%ט0 !gi~, _U[Պ uA&7a Wbj@nG`'9Y&)^6fPѳgNp׆fW#R=s."9|ֻNXh0$pP.&yˠ*3vul>eݑ&F;MknLb-C$¥ ZUڭf (i\ )'JtG륣n5q-ɱ' g 9,P׽XʕYJ %\”ܸ:%|FMO>n ~v ƿ4c.6G= Cbs.6LP&OUKծ>IٌڷO%_M@DH_?~mm} 0dZ'y>v'V>lf]u(xu$'?^UEF-1:huTKI_\n ԉǨQ~׶ےHk&3o6Գ06TR?IJ.?U 1Qv^R0g:MѠZl}ͽt >:M5~g4R޽7Kp6jԁ6MD7_E./rI|:*LR>URw 4U@ Ov!*b&.ZjfQlt*}^%ڟzZ$ڇӑGޕw}&r,Ҏ lS7doKrNU/j6@kqjUhJ) XWakP޽K;A> 'AkTTUEe{8P~F~M`IkZ8CA҇mr"+ 3{apz]Mm$&{n㈂ç^$X:2Ws9kzo8bfC [/$m %Asg|Ѐ-/Y iڛ`z! +#W/殪Tz#C6)#nג_~ mm/4 k_zs}m|.mWRM4lWF.Ɍlj]`BOR\5;.ɒP 4Wp)G/v8URܛ9,h?l;̴0ONwm3xka{\ Pht;C5ZEkFFz4]CR g(4kIp zvv>kn\+6ڪє es1!]SI) c%p5zhv2N&TB7؏, 5/zfr9`&z `w 4|0g$eVMGxN% Fi M467cf_c9spZ_5&x;J 8!B5–`?;[NF?/m bu/ƅzc?6p~:km7d${ Ehf3ү:F%*Œ1i**XX̎]-h O>^>v{G.獨`5Ϳ4*iGtW.lg:fMYL9I kG4)PzGKrG#dG0ͻ!TK 4[-)p{L@rl*yQq9$bRml`ו3A {g\V}}BH=LG~]Ja3Z ' IIO$s gW̳d`%++öŚp!LY-VsEF;a%#KBZm)1cm쭓kRLChe)?Ia_"nY9uJXƊ"4]n2!, Ρ߿Q}甶-U[3DP"o]uqc}my'T20%kwHa"]Z?]J,G\^SgȩXsT S^5Aw"(aLV+o)מK>+"It \-IܯIkFgG]5ںH7I*ȆC3`&mƺփNoD3GW; Q]rpkzv_lyZ&6dt_$tjjKC1IӊK~.G ¿>wRaխ.g3o|?}L{ԋYeAv[?r46݊v^o!t/}w` fZO[ȅ|yB+}WDrF4XKmwo&:|:{f$ו P玫5+z?><s -f͡OF!jGpȦ?gjeyG`FJN1ɨkDw}7'9;@GAdbӺ:kV?I mDv~~qX3볚D%,RRLUB=*$9*f:fc?"Ri$l^Mң~vPGvؗ6jTX_K<='(< ã%ۍVQ6kRaN]i|}߿Bۗ-řٌz=G>}jWܫSA>5~CjMI hY!~=;FEg:ftۏGN}{UOB~^`7/uρjj>dA7p.HY es)VSXn_7ٌԆn%\t>L{C5j>5I-6Ei+*B{[l5eزݜ%692c }ޛ`J`ag&~yeN d dr^z:6VhJŜ9<NIgC}{2sg,N;bNN1 0 ލm+&ϬN;5;¹:3-Z/tXDSH 28C]eb 8/E(FKsCDMXB2"6UQ-5bxV6,5wcs=ߩdGxM:)` J>01x1 |6E0L5 eYYo* -[R]r,ϟ{K:yC:" &%+4)C3T˜ngͦ~P?x-mOAdjֵXo2M '*}s 0m4naD)dvC.FD1q;g$:[J맸EP]XJWA|i箔M#q4ԷlžORJ`\,o) __~y9L\WA xVA!'9rRq3A[ [3ןi<{;-G Z-ER;b 4ձRB;x:%+N7iƺ֛fh*=F|o'=hW<_8C 3*-X"hi3ݪ5:'FjCOfF=I#;EP i$x[D? p szwl u:v=hgM NS?d dX¦LtFȼ7jxӬJZ ȝCMJt 3d,d;Ҡɒp^ߕ˟zܕV] , X~tRaKj`G׳[. +-:'Ӭ7j ;Ęt/fk(Nabz=vVVֿeҋ7m, gJ hWYHeY;OF.$F'FgUƏC!iuEk XZZ0ꦻwto\y p,uc0q#ԹG41#.Q(RIA/J{lN3ժk&Bl-Qs0ʅU*mUQ2Raln^ `'mjl‚zKJg mvhluo )y .p=7V2w%tgbA 1q}iL~aYSnUݺpPH7+I4GFc>Nw' ; p.4=(MӘZ6,5=NVt٪ӵj<}-PsL T;Pu!Bcuy3f^PQ^a!TgOsn> ǣsֺ5T͢ 68٬6,%_Hc4Wc_IlV/jho_W."?YH2Gњ~r.&'gN*'P p~0{J^0/Ui.1ILv*P¦E9hAFh^[;fY~vs;( "wT{>)cﵨv[-Z0cts;ZU H#z{t1 !^&Uc=sYagZ]??}Nh Υt/㔃$ͲyNX8,7?JIL1 /P/6KZ&aénF 0Mτu73՚%m8TLzшL I% J!_)G4W=1fx[3hߠqNpZԸLMȈhBIn:"[:"Vұ9g;Cw5_ֈ;zS+rZ)˪ɲYoGm! z;e]ٳy|r{klU'[j8TBb94܎4[Jn<<&CwvCf菚1 eCBNͼ{2k坤#[$@dJQWHN 9Bu2, UCO]q<=R1i)MOw{A~.9͑AVʝ"r9gC_e`eo(;Dn h]\vI9u#G1@vT1CWSZ-=,G"OF(lI`3<N:`&%YjXn?Qbմ 7{"Y\]7քDک4Nh&8|>^$GJF yu 9ZUJJ un| ViM"3H*L٥?67U}L85p wa X=& @d"CK]$ՌvYR`KL 6e5hQG([)Kk[lXKƱt}w8e}k,vm٤KZ2uԗȖ@O)̀]j]K~RaL (N+`GaQ/yӅ9G[Mf54w`J![I*~QHE3?~$t!Zti?鍌@n |ɏ41YԼ&voMq$ْ=ѥsCK'7/A$Irը!d.4:e;D _{sgȌ)^s--;*w4:z]o7iUuPZPQj4'3ip8%;<Řّ( >Y =[E %P% ֪昤Zdm@3+P Bt[ SpWb wh]hK|x*hA;!h` lk< c"͙ ȭaAˀ2 F`E%|'|. KSٲ#fӭ{NINobx^GI .F}$&Y`E DKbQa}K+ 0zL{4:& tD|ks..7 K]!q ZUr87 '%Qڤ,t4Z{hdF㺔(BAs% DμDfqum]_ޞ7AeB\Oz"JL_?qgd$.a/ĝe&9Cp$b[JU`v`H&ӨՠFAp /Q!u鋋aAaQ#ޭ7+ՏEZ(U%ƒK;}wINd%虊'W#S.qg>hP 53bR(HӌRvڣ A[/ɦ_}k+? vS*q LnBjZS8a)XdtF@IڻӋ>TMF٢gQ >BV R* rh Χ&m0SJIC0Hbyc$mu\9"-Nq.cT{:+Jw YңPX86WdbTE e{ZEku|1/iM%mHHE[4Y F#*EX.ŠQ8I%7ZH锎\*9ԫӠKb0OPF" N >za;i.j\bv.΍CF[0X Hɓ[{Crxg-BKm@Jff3_׋(W?ʉQuПo%onrC$s[?T% 'JFKj%a2y`=^'tG;st9dZb@k. n] wCAdgz_mH<'p15={nsw߬W󜟺JZi]X>Sg8RBeB]@)p!ԑ_ z"QHK8v8v WS$n9dZwtnXnh-7]+S8Pjg&9N>B83Vi-!dsNtY\[Y,H;X:,{bؔN$޵#sɊ"M&$m@uL#9Mϧإ)Ҹ 1ӄ#ݺss_|-)g<ЏXb4*-RL(< УYiuwsG'%s|ӾtLcn p1"gEU;~׊JAd[[^O8:b"}xhU@;ebʦ=rVIR̊ix(,yڴfY9[x!Ký!y +y98ώmmS/KM_{tH)~ - c*OVC#hg7Z?ϣ%gz|%srtn{ 68foF暁a&j+U_haSa SB~l|!EҥGd[9(/N <-S: A>U>#S EIZdK?ۓ:pE3Vيp%l+6{WyJ4' m@)@Z|]%zM&C ZЀTQf=iȸ__|oϽ(,-&stF!o~&1&V:usÕb5^o9L=txZ"3aB`#;;n 0*q@BxweNR%Ts f.g,hw9HV8wQhy=z!H{'q_+O|c$ :E$EMi([dU6 O/?qV?nfY1[$ws7i9rplϹ ^㞶3nF@Y )Gr=l]:_?dlYڙM!,Ŏ_l0WL,̶l:wQ!t<4W~/:!l@hP3S2d{ odxw*ewN?X"C7kCjntD JaK ? aO\ ~x ѹ,B2RQXfjVdP\غ={L-]h|=bONJ8 &*CKcr\Ѥ]S# a%jx~{p^~џo<`G3Fc 4eƒ !47Tq '"H|^Z?{In;T._nHN`5UZJu69P8%Ev^:>qv\쪨&oK9qj9mb*)tG;96-Wu&bǪVjUR g &&8"t*#@'h%nZxpV0}6@LK";"нfhsu7ԏ%X-2V;_66+;N#4 [{~e6KBuՇ!δB7$4 ݬta=1+Azr:G#OXϞ ok e_9YmWL{SAヤ3}q2Ls =g;.^ЯҚI.'WE;;[wgtj8,Pα-̓Vr)8n7#|IJө$香Fj%~n<ӋN $R; "8.lTd2!S, N_։-k4oqlC9dJ9f'<y"O>v4|<27[|CwSo&qte-Є <yF#&2%"ⰐL Y9WJJc[9ɣ m"gBCj2f|s5PN?,b%]P8CHda#@٪H5f6g/HRThJtwaC  4wD#-7ೞHw>I-G9*!-B;Ԟ>CF{mg4;~Dʝɚ- N:{ lt8΍gmFfN-x=lzR,J'Zv #jszOB$;,]io<Ѵ[4CܲE tN\Wk97K>,04zCL!]9f]:صB}ݙm'zs3gaIQA::'UU UmV8!뺦٨]C 5bm츩) ,mϝ| ~b'}jݹNdi^pg1V@al@wS3Ī˸Ո8;!z)!E.JZl뎘 pyuo&ZLoS X[Dfh#Ms1qPȏHv]VnUjv9B/\in)N-@O8.i5:b0 m{^ dZ~;Jbgd1:hLVS{ D[]HԚ;6H٥:j=gvkFr`j{ixG]t*qB&1c{5t);Xܒ4RuN*+ O y:{/$J[Ά 1?A:P42{T H㮰AB@ גzO4I@|L`I3kt|ml? 㚴Xz-P Xoddf*E6%{o -R%=s;ӕA: ?<}Kj0%#*H)4kT jr1EIٞ*i+ڀ -)0҃Z;1ƭ ,n"vߣtqZJbxaEūRa Bw2o*:4s4E*0͟HmG \=U㸱J|; H<'j3;FB2x/uq[ /] #<Ơ$v@;2]#MW4GhȢQHu m10a̞ o3QW5nG НwHUWU.r"};f`Gimq[nxs}HFK<2 NVda0-)(q8H=݃Vl*;(g-zVІYhbިכg 1E{{ں1nHfV{" 9}cc9seZ{SJlhZXN$[Vn@ͥմ:2!E@ÊDjk(4vѣ@L1nu}(j!K:|%jl-x}Ck J$Łciv;,z^kY4<'.tS]P>i0FVVA*J[Ud˓O}'J&kwL>P8aO he'&M[J{| F}@wY܇ϓssK DuJv x0#>icY"dL9^k<<[6@ :M!(Al]ԇlWL|Ͻ Dr턾QK~;pi$񩇈+e^o,,ߘg 1M2I3bH>ҝZ?tS춵13ՋGb˄zDtvg[4)qى1}O&f N3 Ck&+6:c&V3kM8(iDtn]oڣEv[#D gG" ܍:p3s pĀ_ grrh qtc{CpssR zd/[CK Z\[ 0'17w6ˤL &H*ͣqT6FC?2*ܲ}axHӖ~?Y\D_J4+ue=ȋ/~i 8BG{btY].''Ek0!,4w 3S E\2X&h\E4Lx%Aezy<3z2蚱v>-Me}LhȾ HyV:=m|iM 5(E>.CekeCާd X$5)_:Ȯ+/YI;8t̖kqG_^Htj{fU=g~Ƕ_"6˹R^k]" n6}',ޠ3ɍ%;T߀d{;Ix?YBu HM}+AOфj7+Ig˼7@(6!nr"q m eZj-kA־q 8ͦI 'N*=7mGV&GnoRy$TgVDnvKܛ0R$eMvk9[_s4_ФviVng&A.(@64}` ^})<<՗ MLޡV&$Cpz{Pyv> nʎ.4,S:*M0:vW.F)FԚC7Ga:[f:1:YZZfGQQ]p5G m\d4HN?z:~8DwHi!:8kٳgWaЄ VC) ֬ӿV4` fGHs‡Z5e6'CD o@:k3~8 E  |-Vm9(v)>7*mJHsrϳͲ {p4tHy1M9eGWd݈vQ"u0nYz W$Wt)fWdQlK^&C Z[0ZTIIX!X^XLK>I W{fGz;^yZ} +~=vHtv{?zj 9ڗd⭥d[$ގ0ωw39wd8"wA}'>u=r C } T^hu`tש$UX{_%FY baram@jʦ*-,o^O'd4D= ۝J]ԯXJu`;vnGЎ}y̒eިjoҵK]a6m󣤭-X<;z͒uo :QKSDX@>V`^UQwq;hmo6MVUĐ'v쮘k{g6ɩ {=%[Kfk)lxqc29 W@2/ e:yΪ#fs$tȼ/8N/5 FP#29 #I ?Rp:fJۦϲ! Ze%[>Upw0h+["(@ը5^Yd^qHڈ7{zᾖ;Xpi|.A8ݸ{n+g{ʶ#Vݻ iJ1ڳ1M.7N_<m1pcٰY=0+\N{i_l$35[*4r6fb^-U?Pĭ<1qhh_J[&2N7=#M _.] 5kHC=Q<&i{dɬ߹-`EP7 ׎'kM(kaqԩ/K eG Q=ʫh| D?/I2{ 8QykkIrHY fNL9pmB/.}]PseCZhq'ƥ۩۴ݣ"?H B5=+_@$tJ< LYŻޢH 6϶_U^TA^;~jߴ5h[?nj//OmUڄɗ4Og^CnSSHxT\kOA(%0J,wIk? d.~;r - nZ|5zd(tX_9Ki (%6rm@UZMM GAq׷߄~i!\KzdnZdN@[S;BAS/7K ƲL\ڃCՆ_/%,>u_lK o;Q0̵tGee!A9`tjjViId F/y^9'lGѧT1Rr/'[2KMt6vʠ3 =9bZϰkMƣoK`tZbrr(rWmM`X ] P|dKnFpX9&Q`䮋0jJ+T,D2h10< SoJ 9#E/gެ29;/͊;>GϧӪ4C.lV6 sD3StpـdM^-t>!+Lf5 dnr5{)_ lA_[?X,SR{ۘ:Ͱ.@qsP=b ]JH#|T}1H{lAxgRU5>$.X*e0F<"duc.S0٘V6IQ;TX N L &k̡ JXfXR98a =/y>u.kWdUe-F[v9ܥxiI"l2'}kGv_KXzsy/㞽kրA?v+L@K5R*FTЮ0*$Ċ[8(G0~셪jY=Lt9$rq*3y!oӃM]Z 0%ƨ4ϢۧQpßHo4Um?tڤX׻mɸ"jx%9(pNL-qGϙsUAdW?)O#^6bSJKx/>N{@!*eoHj/ Sيsi/un=Zt:i(s02zv޶*H_`,uv~]nsLSlQH|G*hK+l$`ʜVFZ8#BJؤ7ݑK w(eLxNzbEb;ixr"4bHAl^ܦ*z6T⯰/TR8+y Uwe08Í5()AZ0r0YVNnl S6Z@&DѹiZL ժVh/1;鱋_rK ! ߟfo  l&; 8][גϥ1/!%`E͢"~YjzPiuvLq}Oǔi_Yۿi(F]l_1ч$Xsȁ (" nx\(v:cV@/Яf8H'Ig.N\%ul ~쒜q2]@wڿT$@vt_g{'>Rb8OBPpSrȷ[3RO4˼MO'uOD/PL,vq8mC]#3-a{!0 )d0 OG,;/0<"+FWe0[e"d dtPl;XҬeJ[}u+Ʒ^B823%`.q9Jc fs< jBv 1.խ5 +p).wZLpo1q3⹄?0iu>N#(_`\~7~' Rw4Z #C.@rzBУ]YpEr4w,XϞ4'؊TtSZAHuL>'wuAz/UQX"BAl)!ڛDf>o_ E"DoM &\ZH8[ ]T"n$ț܊Ao|l.ptcgKUe);GH8LG0}5Ng#/m'θؑP֊`[ƾUGdo-jPw\tL@v[F"rRO.6(Ej[~x,-]/dVF(Eb0ǣD|Ah%u<Yswqg%‡!bu쭿Zˑ5񘄼M4b34$ nTzҤf71{>ZI 𘠾1n(3Hڙm*2^V4+6D_NV+g6MiJCBwu ƥ;*p`hklj7&]ڔ,,ܜ;ll1mV nz8gpTS\\;mT )}̻W}43-Mdqr3kp\}_96iuS3ފ.TLQd4['u{C 2#Xfϧx#(5%35~| {xB8P5(ծy,H>xmj<|{ 6x>4~Us{{vYͨZ3LlT4QZ5͆z +,Za{8 B{Фڇc.0 R\*j sf++~} G`g˟ɽGϲni2{2 Lok2y 5^4G P/fA=4k^J VfLj4 4m|n?pP.[zIbLFή8uFC.1bh0pc1O#QʎWA=M%d7A6skc@=w+.'C(9dxT.q{hH"|(;H*a=쓋Ǫ2!3o7Ԥm.#՘, 56`0l)pќH^~4Y4YqV0 ~1EԤdm7=.boqf}nsp),%1=F SPM,<|Wim2w\9Ŗ-25*:o^/-4X兒S h4I:Wނ o6Lf~qyӚ~)9J' 2ϪBEq̛a!H^4)9&>M8SzGy9aHWH>kE=jL)bߵZSgc1r2it qlu5?72mC~S [ S2rŐac9MsO,qlṞo/_xxUP#44 D/X)]v\=h>X)-]mJϽ5T%\z؉OWoA&WΜ3Nwvݲ``b=*M+l 7AXΚ4jU;BPEA\m\QkӫM .CǏ=t<'dV-k̄fnaКoY vER՞ƹ,tY֚LOV=8F~)HҊveȥE4uRgj.L8asZ8>p8Y:7P{ 7J#G[=OtdJL?XqE5:/+V޲iީ֎*uWh Ý[lw NaĻL'ј`E&o'k8U4$u'2WYs R^| YҔt{7yd;Y]eܮWځ\d[`hC/1 gQKlJV3D-/}o$ K36eKAꐄ ~Lm 4%$ZNZJjԭN; ms?$!g[Z<`JxF9)I^y\/mVNfIW9DeYɐl Tc{^ix\fW17ޡw5oKM1$&dR %Get&gO;;v]|~dS`)Porg.|=}6{B0x ӕuUҨ N~FCUi 9sO*cI+L[ҺLe)6?Z~B qI3Tc*OnW;yV4Dh!b@~N{%߅yOTDމ(3.s Э&xUX(L8HE2YsիApfCYZd \J~14Ӄ1P#]Κ yrDB݌˱zVFTJv3O81(^cGhQw-Cٗz`$Fώ8;o9 ɀ&Y[t;"iNtF~ G2CP͋YRi`,G2@Q;!g` 8tZt=.Y_5+f\(|[q=RpEcoo[KNJ֊zZ=H$@(0 AF,o4.;4BZE#HhކDoهB: hB.\SQZ(Uװ e_hU6UϔO{&HZkGtch`X3m'1\KwpLڃBHw!zy~2wQu ֭f PphLΖ@KFh$b ,TRo#gIR{+@V,P,D'lNQH2mTtd-?%ܬ3f:oL}l,{MT$u2ɫ|31Z azky~e=ω,^_=3*zM͏7~/4Yf"O-4Gd]DysZR{xW%M<y_]p8 @bVްKBto2OecoNK؋ p Rrz=H#ϢYMӸLn7 僿j],ޥ;w3ԋ,%=mto;eիd''hdfL7 '6D5$L=Nffq$ֻӹ4x88kR,xkǹ|t˭ZI5>)mz սΊve8p!/Z%^;9s'(/5/:Q7y,V]̫eb {FQ[V}4նh[|ӑIn7__\7vm՚E\d~C7KkZHklƣj? S9LXY{!M0-_٢WMmt*ִ2eP}h=2=A y) Ql/[LybI^H$Ԙcar~FZ=G:Fن6~fؾpӑG-hhwhˠm$x&"FAeڠ ߟ2ôt=CNν&[WQzU˟D/YѓQ'Ƨ1 7KC?[Ɨ_|!' N %\%{%3WZm|O{.L֕i9˜Kc᢭_YJ,YGV7bW>.y6b+үLޢN0BA.l; C$aCMoJ$"Vq-/XhULR+-㓅 VJZ/1kmXr18s"#?:bLy.;Qkt$JY1qyP-MېbiyXO$Η7 Zfm9f_b1CDӑ69A(yhw=+OZ r6p'"_~yp^`% =2oJނUDO^j24h3X'`Rv\dL"v\,|鉥c!NTIvugNsM),ZV@ N;F ĸVxڑٮ1g`4Xy+~T8q}Ђ\]fnHnefG=#mSO%~og9|O5_῟s*8bsZN轪KRyC)cKk:G~*ժw N?L Ј? v2Ɩifϔa,qva Qcq w $S9e-B"4G_WP@_YqE:/xζ| 7H?ɧ8޲@Z.̤5BYg'2"< ]/,GvfJrɏ!$/;jL8TcqN[X{ ]$u I<bt2k"rtfRlYy 4lxi bL'S/W ׮~Fzfw0"=h3&xO#a`3 lX':9U+Jy^eXC~͵u}ڞ{uKdx82c 4,̂oV@HgNDwڇqOa9bȈ++vB`솛d\1-yM/idkVf<&ZVLd $2(bHp*  02$ۇ;WV/dwK%$.yL-G񣵲#!X ӐuUg$7F jCn<@7KJG&HtxVe¨G$@ 9kӡ2ƌNJ;UJǤSMYOoL%V1=s=sw: ,OX8XX*旑VDFZl׎ڮ~lo:VjV5D/^BO%mԣ^]J:tZݠ Oݟ)a}&ʨDHog'L䒵{{^ZG:o@ =EB,$,"n2̯9lgFG J=Ic[>"46Oƈx{ZO;|u[ϳtZ/-6?0N=RrПFj Ozҝn>:i|#Ew(UNHBQ;lK?9_1'%Tgmqy8˧c:{9 .?Y`_.KDIˀ~tIJݓ+?غ EOqh@*`NgI=NJ[`ҁ!#?]r'&brZ~Zi[=kSgek Z5Gj71nCe( q>xPex'0ε1s"VzzĪ?AZ҄@6b0FXO%!fzRK'Ij\>\ʍ 8!Ya(kݺسOOә1G>æ D5>8”-nDR^yXrh Ѻ%~~:ѕU*?n{r L=c,F!貈/%'WȢU1JJGf28WӛHLp ubp_b'ѣSFjCJeOٍ A%}z9q玆<'.mQȕimiHŏLqZ1 f!"M a ) 66wȔ/eui3ȫFC}%{dpǦy#z z:1hzKFtyt\$&ʼnY͍Y1vKC$rZC'2pZg=:=i%M%W~\]IK[O) ѳr1[oG7x!3쬵8%B`CV=;6+' "e0,=њlh̘Y|lz8*c?eHdD'#2݌_bD0.ݩ#Œu|r>PS҃VjQ[&q! ߋ$z~~nVGK1@I_J1EY ՆO)Ma|˓f * ~? rx,QM`%% o(mbX2M|^5$xߑAGKb'٠x>IjR `Rgęm?>&(K +C2+YQ9WJط |\eAJ#& =N:6!ܒ|D:WHI@σBQg2Zkm`:QSIU+jTkfdߊ ۓH>2-_aLpdlh*-kgyBҟg!c[f'}5O+.Iy?(0~p^4cJkZ0rNBhV!lPcQR;+@'*K {Hd<W*0GwH/l_1Z};t_^s ܝ.K:"|2 YY[Iab0FY՘vg?BAAP?]/̩j^rhz|0QKY ]y4rkYWb|uTpi{)šW{i%ILJp^][^7'=d[̤1o0!`Ek6" PS$Ilq;hGPO$~."@Poc[8Q&?ntI denɤԼ4_89&ϴIL~Uk5i҂q\ThO~ u,.4eH Lc]iE vLeTJ#ܣ5:v?yg+ɂ_II$UMB%ygo^Ѥ 8͑&T>4R9<>=>7=l+<A>3A8K6;$wAcƏ4=ˎN 8FxSꗞS3S#mzpW/Xjߧ)Σ'"h/Su>'t%^-mW|+8FWr7^C,K[fˆs|`v:%i6¿,eg=fmz@&Ov? @NZji^-O#t`2e #BךJ|3/MDϼ=J[+bu^(5_`s7O"Y#x^qVQbr[h^Ȝ 9o F|…ޱwxG`9ǖc?hVj;a斞q 'KPr|&̵|u+`F~㐑W_|1E7iFr*$F -F~>j\/8XJes/k75*unoPњ+eSOESBGiRӬG`ac=VN׷#^(KoPd7F{BG}Ը.)+-nN}V, ,I#l!+PoLz?v'mF6lShFZj;\ R"Ӳ>K'P'~{N- 飮(J5(/~4)42TlHSkI4`.B/~jU4\'Ɓbd*Sw64ońzIϏN4BK";aa zbεOf6>'D* LqNGnI;2%C_3˿W}|vdi %÷;5،NW74sϨ{яa&P6w|7.&d pAI۫Ώ%?jiE/ ó!Y8FH@%> H f̹Z/{$C }]g*^"qT??iMӷE\GtMaJW!s2Cg!Codҁ]x-Z3@QPC EDaͥMc-\&;W+Ke1+A5RAn5~tvLG%j1LRC΃*422@Yt !k:aM*ZIl8Y?[jͭࢯh~o]iVRe?6}Cfayr姒ޒx&P?GW#/1=, !MYϿ\&גV3߄O n\.YδՏX~_N@)eY_fċ=U^Ks{*~QdE;WlԚ?i2a _obtտ-IwYIwHӏvk{(X$BQc|sl3R@ociI4󵇷ڇq"~hq,\N̢g_HuQt}_^{5ufn?2 UjJI)EJLq}?#"22%!h.#e=bĸy z^@ntV^ Bd=ne{̽=;?x v~`c7u3K9Yw{ޝըȖ}LD>ѽ VqC;-R_ӆ64 K }'ؿ^Hv&jO74_8=+|gBDn4aP2~W{'waw9K~Mo${YwL`aq\>d%eЫc{\iv/f+k[{ 潿f}1}2Wƭ}o`>x# }^9C5 ^fglާ߯3;-2Wg=fqb]7a40q4e3ɶ FJ'DrYIolviWIfFVk~̹oHV3FF>n^Q>s ?lٟ_Z+謽Y:ugEd:{A2ɪ.AYlK6!N,uGW”w2|O)(,F⮍a at/fLG:kLKBt?lsͱ9ibp}9ݽ c/$޷A0 %p`L,^]{KnMkmnӻ'&'_=B Ir5G ~ lX0״ѵX0 ڞ%*%=4vЁ^ B6D|3oS"Mbz &\)Ln$YW5-/I vw ,x y>ݸrQn<B?iNrj#}S\m[Z;ਾVjU +.X5/g8x@',= +ԋ̿1,ki!}#&=7o4%~+K6<2.v P'v*,wkS-/JдX|vo!t[*Wt+<[ZwDFvrh{oߓn.*ā|[nʂ-dB|p2Nb>?GS޹."wtV^i!< qʎKJY~g&ܰe= t7kcN>6kWU{Q: GUMmʡ'ʎשP~MeSʵ#|XiG~ <:W]t[` ~ =Cg/߬N!~OƷj=D;@2F\}U #!gLvǣf`m'P1D- `*rߧ=hX> *17[[/9>o^TEZ{M f ]z~zm\xɅ*tR;H|<8/{i#.x}SWKEx mVEMW TFXzMSMWL01Un~u ?W| ]:~% ۊҞv/fwkHuS-J\V%4m#N-^cNeczq@9$xd%3yg#,/"eʪƼ6Ai#X`J iQ(ƀ? iou,3 14z8!~m/ WhCSXGN瘀֟Kw b,oU\w|4ǫWd6J(;tĊCS9$+pW7!/q?'nv7\7 :*|HbA D쮸8)#$op /.QR10tF2~wb]Izj"zbHM1Ua+&A<((Hћ[I DHKaЊk^Zm~{՚$,sD# Yky$m:/P4-_2GaQn?/+Ju"}FWI d'pD">i4jLZx6Q%"#4kbT]v_ԅvF5Z}L[~'%s[EߚDn[$t{ǁ/@[VYtf A˭ĉaF؟V E5p9QkEJrPBg9h"Šڋ˩㨮Op/Ʒ2a8 b9qZg`x`'Ho>_LmksR3?k/>Uz`@OrYr6xgD; P8{jZbPVy oxG1X~ UJ$E⁽s@'y CP mg$kn[",<)(졮T$-5PQWN w-ZB*w;ij"ڝ KQ)1=EA"ElGEǧ<yJ9o[s|.܃Cr4vs4&0'QI@ zNd[j@˃NkJ_CMT ]9=^UgZt\hZ;8