summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAndrzej Pietrasiewicz <andrzej.p@collabora.com>2024-02-12 20:12:03 +0100
committerHans Verkuil <hverkuil-cisco@xs4all.nl>2024-02-16 11:46:33 +0100
commit26a3a10342748862dcc8d22222563f6ca03d6ca3 (patch)
treec9ab323baf52b7215c8d06977ae8cdae8eb05e60 /include
parent95ac1210fb2753f968ebce0730d4fbc553c2a3dc (diff)
downloadlinux-26a3a10342748862dcc8d22222563f6ca03d6ca3.tar.gz
linux-26a3a10342748862dcc8d22222563f6ca03d6ca3.tar.bz2
linux-26a3a10342748862dcc8d22222563f6ca03d6ca3.zip
media: videobuf2: Add missing doc comment for waiting_in_dqbuf
While at it rearrange other comments to match the order of struct members. Fixes: d65842f7126a ("media: vb2: add waiting_in_dqbuf flag") Signed-off-by: Andrzej Pietrasiewicz <andrzej.p@collabora.com> Acked-by: Tomasz Figa <tfiga@chromium.org> Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Diffstat (limited to 'include')
-rw-r--r--include/media/videobuf2-core.h13
1 files changed, 8 insertions, 5 deletions
diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h
index d9c6b5d4e990..8b86996b2719 100644
--- a/include/media/videobuf2-core.h
+++ b/include/media/videobuf2-core.h
@@ -72,6 +72,10 @@ struct vb2_buffer;
* argument to other ops in this structure.
* @put_userptr: inform the allocator that a USERPTR buffer will no longer
* be used.
+ * @prepare: called every time the buffer is passed from userspace to the
+ * driver, useful for cache synchronisation, optional.
+ * @finish: called every time the buffer is passed back from the driver
+ * to the userspace, also optional.
* @attach_dmabuf: attach a shared &struct dma_buf for a hardware operation;
* used for DMABUF memory types; dev is the alloc device
* dbuf is the shared dma_buf; returns ERR_PTR() on failure;
@@ -86,10 +90,6 @@ struct vb2_buffer;
* dmabuf.
* @unmap_dmabuf: releases access control to the dmabuf - allocator is notified
* that this driver is done using the dmabuf for now.
- * @prepare: called every time the buffer is passed from userspace to the
- * driver, useful for cache synchronisation, optional.
- * @finish: called every time the buffer is passed back from the driver
- * to the userspace, also optional.
* @vaddr: return a kernel virtual address to a given memory buffer
* associated with the passed private structure or NULL if no
* such mapping exists.
@@ -484,7 +484,6 @@ struct vb2_buf_ops {
* caller. For example, for V4L2, it should match
* the types defined on &enum v4l2_buf_type.
* @io_modes: supported io methods (see &enum vb2_io_modes).
- * @alloc_devs: &struct device memory type/allocator-specific per-plane device
* @dev: device to use for the default allocation context if the driver
* doesn't fill in the @alloc_devs array.
* @dma_attrs: DMA attributes to use for the DMA.
@@ -553,6 +552,7 @@ struct vb2_buf_ops {
* VIDIOC_REQBUFS will ensure at least @min_queued_buffers
* buffers will be allocated. Note that VIDIOC_CREATE_BUFS will not
* modify the requested buffer count.
+ * @alloc_devs: &struct device memory type/allocator-specific per-plane device
*/
/*
* Private elements (won't appear at the uAPI book):
@@ -577,6 +577,9 @@ struct vb2_buf_ops {
* @waiting_for_buffers: used in poll() to check if vb2 is still waiting for
* buffers. Only set for capture queues if qbuf has not yet been
* called since poll() needs to return %EPOLLERR in that situation.
+ * @waiting_in_dqbuf: set by the core for the duration of a blocking DQBUF, when
+ * it has to wait for a buffer to become available with vb2_queue->lock
+ * released. Used to prevent destroying the queue by other threads.
* @is_multiplanar: set if buffer type is multiplanar
* @is_output: set if buffer type is output
* @copy_timestamp: set if vb2-core should set timestamps
7X܍Ȅ1B"/#Ez4#U~s57i`oum=ѵ=!X;P 5h_RWmeD5jr]5l*o Onh ̷V:h>)h(}]VYMpܝ|1Z$/Y1HD64oZ;%7Yi:Aࡇ`~8q3od y&v:z>mgZ<` _~1{φ_M(MB˻hUrnJ1IWt I`ЛC JsD4M;cUM-S>0ܬ8v^=$ntZnxK0%|W-~F>Ҵ \2Z>3'QΩqT;F(Jζh}ݖk,.R#ԱӚnIlM/e7Lڽj/>Mb`ye8>"tI! ä]9{r`ttuD>4&UC$NHH>?kP?GO>&R.zMxW'و5#ѳɈ#yvQ%y$:vX2vUYIܓ!T Cezb0}u>4G-5Rs5jCu M}Hfo0RW#uqfz7WRd?9t3\taՐо/G :%!mP> QR.]~҈~TRdfg5ǵeq`h5OouR~5q<4--I뛛|LB]]&5ʭ:K ,߿pI \h)}W!iƽtx/tս:tX*D' u7Vަܼ`_'O:;O+]_gO.7^,o7= ? Dĭ tf$,֗~<2I`5)`k~sN *3'92!>Nu px薼[\Erv~^UK&U|{N$\/]jKw7?k:OO5^RU"28Zb ɶ͝SO>D _$̑Ǖ:ȵݿj-5+79n ܎lv^ dZWP}C5_D e$.oq#1^:wV.a#L]]%_QFP1dAC%:)V߮wb{ 0Qe",weJ%{uJB$$ɿv5N<12i2[E[ϮX[[Z%iΓϝ/W(H(ybp9t┨7䊮'Ok}7(Yh[hkRbR=a5/XAQK>aqw )qB\4|p4X9xz}pe^LJ>Vqa}r RGfnOϦc{>`SpkrLniMbkr"m2OjV:KDڱSo,MۻNWҬחVA7@$/ޓ4>kafl~ WVn+Y$h5<"rIm)V&"-I^HC*UX1g&z48u`1lԨTFIޔ`CprNG~ʬr*d xb{R>/vk 6NXMK%ZiALIp<By*iX/Y|x& g{ֺ qlL TtkT IBA溾53zGz%;4X[67L+gOu!A@҅ bz_5{-{x0xCl~p;pm`铽K CPnƯ1*O6E ':ac~ɲ[svk^[DpqhSb]}\9x݈F&x冴঑xNBJq8~>Zuq=P"6M6 3!iS7NP UB=Bn_WhRrC]N:({"4s//QCfbpjd5DB͈-ҥoo}s?DL,uK(/۰vѯjs^vcػȡ!vz&&COzp$ dQ"<8~·W`@*9QTWv|Qܒqb?t%6QK餿c*Rg[6l8@PBt_;*TE߶ωM蓗l"9ӡCD..TƿIЛcŽfvnYv?a0O"; [pW|$?ydOoy@01;rfO/ ֵG 8*X{ʨ%صKrRy}9!0.sN˳>OpkߪB"OeZ%mN3F\< _ZU,?kd.sm}7N0Vr~;_?/])(A.As?mwty{)B'8,4'Q[o5 V@wT}) TMR$cᗍu'RÖ,d'vY^ :ƃU*A1/״GT]Ք#YmR M&I©s&;:W#t('!"ZL&? r5V)Pz PaFr^>m:Rӑ([L,%_5ivKHm/dUwz=]r_,te{qѴI9'=uބ춺=( (YV,n+ d2QΠ[DM~qFÙkl{~7^ovJ6#&K뒾6y1ܿj=Y*}~e V9"/^ nyCbݤq}H)# +B`]ؽ-Tb y ~ /$PD*=XuJM'W[a ?gsR]oIo|'ݷ~_F(d |/ْY% k+p<#+̤> !006;W}o--r-umN231%)fۃn.-{~}uhkfT{߹''ôK}{065ʥ*3Y`k᳟?B/w&r̳w 6.6SЧ_]UZvVNId{"M3ǴTCr|~xRBop quoK"T-*ٞ4z92VMͯNAhܚO!mjc[ߛS6;^skшlCUO&NCuigTrk9plԁL,b޿sλ!.D- FMy`e[TQDŽ+fyoWi^FQl>_R] ¤6fg5EOjV4T/Z38!CSrv mđkZuLFwo%sDMԙ[K bY:qO&qz'9_yQg3<κ` .-^23`=mפ^,iqG>u- iL%Ck#%X*jdwhO=j&w6 T0 J:_SwE88N^n/8s:'$;J8=0liO}c=fn*=PL:>#Trd9ӮLj-;jVjP4hWM24ԫ* b7*N% pȷм>}XOF] a-h:ҽdzOhE\FwZ6;&KtDPonB`A`ϭSF4/=鎭-@3m AHEF*`(*aO&yWI{{اVn\pF#<%Ce #ރ5Sψ5Ofx ߙUᆓyc͠DHv,}-F _O9qnePD9]ϔ%@;鉎쟗N@$ZKsr*4xvrU~-hzX tBヾ܃"j R@Bz\QĥZ^JΩ*-QD|ʇ:Y䟜OOu*NZ90?:Y`>^ HV_є@ KE;OơtH ӯKeDu".jrY*iTaM^W~T6v{D% ȱd܋#O;[Dl6(qeS6O~p hە1yRI/ܽ=jc'nVN=])>-e%AK?,vp?% e)I}<'^ssTLlqJI.v5/<95Z]vt/ZxmsgO'0,LÉO@ERnu b;F V|eo 7!̙hedE{ͱ`Q4%Łv]tpW!&{QZ-XAHD(z^dg{paՋSyZ?=y=<-!pYgm ]#.#b&DuβIz:YE]N.|:H93/ |.-ykJ&֝k[ y{{e/Uճ[f,5Oa*dT= >[@)Lw,DA+/A29-N5ṔĦ5)nESOǚ&%zABKbaMԠk2x5Ӎ?3z})+ɷ @6+Vr4D~:3ol<|g5[ʿ#$у -Н`(D?qőBȫ [/Ha~=*~QN5ںኋ}\R^4-gg;Bºad6I.lMA te֮I Ihg}y}ѻ0lhWD%ԞS!3ͼ]Of"ʒDMm ~&d -S7d\2+<ߌ>q^@9:FjR*鉫m8xۋŅ/pgjg`VoZ0[ dd%_~:X Q.Ök^j!(f#FLںmt2Ɲ,EM} FkԪ#zoiX;j ZwTQA,vZASG҈FPWr^U KXU R("}XAw>{ {OfƁ5 #`}-d iƓrh@}'`!?OZ+ 56)pe߁Be6D?À2e}l`KVY(:@Zʊ/aۖhFQBfVg+՝^̤^NNS ƤD:V9TW=뾊tn;0mDzN2fWt|y(: Zy^qp &0ƯbnvVJ C$3e?oJUWyԋᗶo,~?Vug'!S Hj%iCa-}m@pg/a:j?kso"gsv @Cd4x(+y1عϓ/$ccZK}2egu`pYÓzcS.bbHP/':(BPi?4H]쭜/T2`OcBsoy~lū| P:2P.A\.[FuluW7^)t~DR=cHt:*)MAT(r`W@X$LX$yh$]׾o(Iv5i6$b#ɋ7eUtpMsYOwp-='? ^e#Gx Ȳ/dk8 ]<[:D@{WYpȾ`u?rIa:+l#1N0Ĥzh1FMHY nΛ<6P5_h0:O {a~Á {NH%o&<8E_de&NnH!&WT]^ ո߅ "YX5͜7;wNA "1A]>hVzQHF 0D5l-55QK[BOJ"39ţ_ S$*4[["~ݜ>q 3:Ԑ[.׋Lzr}\+i}\vV-fK&ҜرK]/bήCX}篫[W'贌}rCq:Yx&řtf˵Fƪ8iڤ$J&zcfMMtB啷]3(⯪\2@N!}3}J cZ +~wP@B]q=Bߎϱ8WpÛ &Q' Y.5aCgŕs&c%)M`C]yuWPBelm69kG~.gj4]ڒޜ0C+G4P (<)1>gA>RR6j\Ӎ=g| ÕPdI6;ZKs.T0rs^h9A 6JT3fcm,  ?:(Eģ:m(jj홚qz9xWg4@^fA#A;V'\ ݓC X{Lr!ʡfS&^lXsgen!V$3IANCuV;C;u'n=v^|AFujDOxkK/xle:]361cr<ǥ{&iexAz@J EwգxZa-[!'7?bӽy Rmu4%b˒/>KU4S ??&!fv &%upΗŶi7ߨ2O/8!В'4~Mm14=E>fn/㘼4+hJ5[Vm64^lFG8 CϦy>wK)Ο%=Tʐuǂ#>8^uiN$湜TZTkKW3 pf`M0LuNUCщlz, pMJkNMUM5иOo=NZvY!Z mrG57|'8ohzb759QHasaYbNi9zsHj'ľtluN#,۬'zLZ IЭ3LiJAfM`DvD:WfJH$eҚP^0s*R#mwt-AsXѯc*wq<[ךg$}jݙ\fA#{FcsʙAH+ pԕ4"tQz׫.@ TCZ=6C +.V%!L_*78@1D&*-qԮ`hg9pHd [6 :r$᜺1]Q-訷j[NJMjr^ xJ%AÌ,۟jۀ~w\e%]drhmPt;~NDG`kP$͂~r)Wv)eBZUoVh_!X5}m4A/73Op8DfO*]I.XH ^F#>t$a@CI* HnnU*òU߰AMu #!`=BRroƐCZO0 gd#$-tLj\K&47Bņ=ӅlB S>g98Z\nzlg62,l z&@C.}͗lrlU$F4 iH9_6Y.(q$)~CxaPsvmiHplJ:=) v cSGۭ&2Skcњ:Hn֑r6GuC_,q6yqS9\'5Y5f;^TC k2t‘>. ZREY,=3N#OgNvLw^8,:Pd9c7Q)7aupqlI= 7Jzϭ؂"w#Z.Eި\&:rлrĞm~`UiHDIa^ȯKVgILq Gf,)e*ðk ]5$Uux}UhUReu-v#R:8aC2~lƂޠ }b}7Gc }ljZ%1h#̀NQӡWk͢c͡bcߓ}:XZ';`x^dzX]cđOSɔrgim<DŽ&h0c#V&d3+@&m,#Oh:9 x.W(_Ե>Lj.Ġ-ØsR4v͙Z9]q%t*]’hpe[Kڡ_;[+jR&KO3u|zuIV6S{4F!W&_ :Ԯ`2Bl55E.w^X($z"֏׼T֔H̀1&.BLSֵqLCho ?Tˬ;}a0o4⓬|A44JeX ?L כME| |E0?1WU~NX"7c\i/ s=5noAf`Lr 3}9d-iII&hP.5kˑWLm9ezs%闌"5:CzPWLħA]Eh^1Q;Y} svCnm.h{8m͠^YHW6Ϭ,3pfJO2ݹZ}`ooHȑJcF@ԅ|J82륁#R+MUhE*>leV$xyνƘKs`9l݋Zp.WѤ,cjdZ$/uJmߌ0@9-Z/n_I5VW6* 18)ҍ.,7%:Ҥ!BW(\riτ_ћ\&f,;1oSl48$Xy#%1@(TAeq7raai~vʋQ6՜D&SHl\D7Z;!;cB5ep ɀ\ġ5#y6STO 7ƕAh,\B %ce,*'Ul|A V " D%1^mufǮ7_8 zbZ9749)O`СTYbKvogU0$%݅ŞIvq 1jjst`^0Eg-;xy~"b'Y 05Wvmi޿/[lkkg& Pƨ\mtXU-UJhlb/sj5F_C^V} #NX9nk@2/H#w [6[n"sK!Vu.~Bbĕ^8쿞;| QZz'A`^)Kȏj iINmKrPr2,^ Q# :I[s_ug fH гCTmh(6SsY\x}.0nHf'hKcnc+i+$Ů?ĉNC [Ő#H%]{(Ř`Z)jUw(/FZI >а=fXșZV [v|jWհ <V~JWUMU*)K]lnURj<әt1{;87;{FV:VG|J+qEG:"`캣6m5S.# z(ҾgAq[neyۼ3+dE-"{,ͫ< 4ʻlMaQG.(ױ t98V*W_V$ +lJPA aaZ?.3ZOohk~xM%.Tn*?L7j*͒:{oFO LltiTT0{:P׉ JD.Kf((B}n1=S\reQP,0a:$;,YΚr)D˩Vnd$y סoP^nr?j[Vٰ͐uBψ)=M[{tr} 6; -9PQ81hS$il-PMrqnx!ڊH uq&|<:rΚ{GC 7uٙZn K"*0~ ԯ^N jFR6%zQ6c'u葎HD!:^@kQf!%/>zupS[7D4[ՔK[MᧃcWU`r8lrE3+7^ M/A2`SXȕ\g*Zҷv+ytc8qzbNt]ESqiRA|#tIvf J?OE ukc1S4TOyp l";a6.l|UVDCGsgY>("ITf-QҕDDV;M~|0_x~M(c?!vl朡2 .RnFlQ4}4gdJ6;V6!׽ эFuOMv EpSc "-?Xg+v#Un ˵EBIk #yZA~ )j{lw90wfދ3R%F -^ Qdf_(-9>v`8F .T0w!'X#nR5_34!Jb; +ޑ"8ڨS5z?u`ѭVDzL6L2iN>>t&2.H[C:*@qȆ^#EGzuXpYh3)uY$0Z”Y@[KKr\y (,x;'[cs=^]*=njk u\bܘDǾee̷osn{~˗~ҾG^ҒQ o,#V8zHtx Enpgr4Ҵ6Mh2^kQ \-cl(\EieyܨT'*/Hsj0J~ {rnʥ >*zʂ7rJgGe`)EE.l-s8_h2:bL=|>tD0X8}pd:ul5?zUULC3eku6Gbg(6i( /ynd(W5ӃH@VUh6mDGq-Ĩ-"ڦ7Z[.I|pnA=z ^ t.: Iš}4X%99d  3.X:0 ߼V#go\%G5tp]c栢aEhv@;)F5I$'7_4T]LKzu#?1J#'"˯5ټƗBM7q\ -l, MRwlTWUj_ {YEpU XjMUKU87])ӳ˜Ҷ:|k͚DZR?4 LH$숺pᐶNxETnȌ MUҘ>^#^֍lnV$S6@UjGR mڨqUۖ;- 7ʪV \7#.ٴBw:EmLRuReZbqʏ\)1}*bvΌ[UYUr-_kL\SGȨXT SZ$u"9+M )ώK6+IMQŴs~eBHFK fKE)ZHvI(ȆCOWH$v{ߛ,B95 [v`A> e-:1=tWzo&ëɸ%h7unl>Sɤ龊HTJPzށg{<.O Pwn˙y]Zi vv1}[Ay9ifݣN&95菚Mil^ m%J@8.{"BOA敎 R5mG&i+ȉ-/VkѹͲ&kxDI+@$0 ;uMW2>jpDr|Z`a?8k/`]jHJ>YQa.,i׮5#g՞Zb* ^\cYs\{g3,zIMOed-AsĊ'Q3<PYkjr"f\&w b YS1ޙHzHu߀&WGB-ۡGOMU9^Z8ac{n;rV@67{Qם"Anha5u;SkrKbR_(^wǏPncS6)SRjjC>iвJ8mܤ<ͩd!3B+p2[~]Eg9S|@yɈ(7jLUyc{M^WG{iLR}ɷ&QqKHhFs/@/F _d2XtO=/;iV(nċ*u?\kkNjUw(Ř2t |@H- Q~#i㗍vzk63ub KܓYB\Hi9jՑ7XUOӒ>z-8 ⾻`MңWUWZUb. <:Z`KzY'(gLW)ň# OЭjjQoBHl#=XxH2i3svS83rܖra 1]{%5ϷJ [ߦ51qo ]J#>0!x1s݌*Q6*=0T 45`IzZWX$2dY`?΅5o0-i\ x+A &s;Ul2vrE"&8Qz;Zi ]O-B /_GBJJ0Mtc#:pܳ ښ\HIՌ?7#Vޓ(eEmgif|rL)bBvAv(K*nR};X۠oMϓ &irA :[Wv&nl'-':49~0GN*DldFi5(o}wfE M|G?Lme01rhаQ?D-=JOlpdG$#j< Lv‘%sfk^0oqw#X'y36 iPHP #"N)[Oza g5TJ 5#gDޫAYKzF׵jLl Odž[υ_ I3wvk$p85x.6 n=7b paנˊ3z ã>פס ~39" sh.ЋUگJr  gJq#*NI61Vكw3V.ouPXʿ-,:. ,Q=%Ɂibٜ@o8dJ$Vc|69HZHDo#m o%=[CssZfqVљR/m1~cr@9eFI_T"HʎTm˲\KKv>EJRx }T=}}\TzT'Mou蒱4(:)9zs*+gNʉ)UWdK7sb1XMkP*뚹]MoR.gOu=" 9%c>L\!.P 1+Fz+˥\m,5~W%pHվrD93+ _3fz)EYo 8Ail٬JC^AVuN5j,'A]^/9ZHYppuPJ"qI>;ч~5&y?qltvl[Rd,9>}bo'VH.X s6:2?rQG=F1{t NAWΜ:ʳLyǜAý"Fvlmo!㋔c$mv{کm06hc^\^_Q#T\ hf!Kfcvz뷢z*uyz_VA)P3H!콗J!Z}Y:%btFA^ F%E& Z/`-W4M6ύ.k|U]N/Bug# rjו1JT`RͮYFI\[J3#ipOImzkej;K_JpQ ev-C;xpcyr61ՠL?Yn_z͡I[iU|gؼh_:c+wuv[R4E;j}Ed֡vvs_p]\/f坳S,7A@17}78ޙh@5hs=txӈ=4eE&pk^BbܨFYVjaIG"I?>Wo+\~dl[3/-_PC|n1Yӯ>gkCBm+v]GݷVUߝ4cIGoL$L琏1 "5*Ο*hUi,3u'MsKb7љ*x,s G1"oS+uX.d}dLF3`+2j›Պ{ZT8y)!HzMc"<_y=x |6yT(鉋L@o :ysAt~wFvخ FaAm pFAFY:Td_jh+.~*>zG~1Ecz; ,u̩t ֊jIgN"g(yiCX##|VXVg,zyZEBI:xPˌ``oJN}N4~!Eߩ =ĩ-=V 9gx3$ PW#q@= S$в)e+\i)Dž_[JŸr`6-kr]@Y}*Hf)gg\4&euf\^p5H}{lEMlٚBfڱ0K=$G?s/7Q=BSNFE$GY\{֥z9z_a}q}=ñpGYHBUY^[1h;([򻳆4Tk*%+2I]X6'@RRct NS -܊8$ /4dG[OOb~P+9Z9Q'tЗ tS! :2C) B]*ԥdbj£7BٚZi1B1;d' `.,v\0N9|U<#|LKIT* f,Hڻ Sp[6@%nA6ibbC཮Hr4[V[UjV*(+(U iɖȴVQ#sAND6ʨmKUݺ:m |YR% ߞ;p $A7LعvfTRM j Thvӌta)n!nvk5>`gيrg|҂ VQ ];2zt䄿Vwd,f"234$bp>Q5qJ54ac f"K/aT2٤ O\ WCǾ@!aN9O]H00g݋ԁtBq",Q6F G)Le ($7vD(ų寜P9X`ZS.Oߒx9!Uf{\pE$2T&RD.8'&"횿 bL0$k'4KhJe?< ki0~eߨU1JyTO"l\x^h]!9 v=*zԎjYmp7UWmJWRjثTfa~K5j@TZznO-x*5KxBKsZf Y]wn^*@B(bCJZ^[5snކdVy?%=" 4T$[ibD!5A_栵f:p yH҈R4й&_]qԻd0{It*_QHnBr\QCRɡL7T=g `xo!sg]^X-}k ҶMlh,U A{1r:F0->$g"ËAbkjO@PDV/=4׳cPh&Orb}rQhpjjc -*7>'.zv N@mwDfK+7*$hQ5M$>! XWYGE_%d4h,2I].fG*7 =6,ڑˮQLD+RsgI;B1|79JsFemv-9酖b޻ZHjQ?^Bdolvy*ߏ0}h#) - ÂRyR}Kdo 0dCB5 2Csen7+qzhR𼮕 _c[uPlLPҶ5()L'Y KmT C/Ii`V> hDڋ5s9>'JlUN>fd$ ~;\R}]K< :U)3Tm΂ghLٗ]l̀tռμ;QU{\˘,G4#,}M/Ouvz\yacvu9^aʄhbi˛%PSY,| `妹|!{qFq֎OWhVw(glo9QV(X8B0Kj CsHcoйمG>N^s/8y@YkD<(ﭥo=+4q?Në}l,M`VF|vaBj7QȁTȕA:4#@w0R됫hgqOgTUƠ$*!"/aMU2pďDuny&y>{4ڭGW)z['Ce# ZE[[$mұt6=-H/{ŷަ2ޝ8 ψfR_hAЉv4U?4M_vG;h*I"t8uqsfaƢ,NӸkz¥M_^A_yCeI Ue3_ t5yM֛fBzceLlPcG'SGI)gY7ѝJ\XR4Y”VP?\E[z@h= +L0ktA]`]A"q b$9pcY0)Cm\s 9Oi#(x8>p4.gʉ$7C}eMAR DgA\jla-˕V6<';- YAlp'l-u-.&ō26|@/=׃x4WkR-.=07w>x%'ʘ럴^ϭN-bqǑ=%4$k:a~{ ҷD7*%v:iYKb*<6q E}Z%՚NB"#;w֑kp4zFvu 1F @Ojn{ryPԡuʪR5Rn]=i>WiP~6[mD^1Rf5<,'/Op#Il fE.Sԛ!C4pLhlQRmc=LXS:1jmP3L079#DCˊRelȿQ?)!ޮ27ej A1lӪ+"mԋ~LmKSqo G4FeI58xh.j0_d²N#.4hEV\ͨd-B4=wHsG G?d1o>14nl\?^#sL3ĀJ{tHwC}\[pL%9i_ݲVqi3a%ohمAa‚P? ;WQ|ņ5I#U$m'ߖS/uWqi<Ҟx jꚽ?^P2\4 8Th qPC~u!ԼWn,f1Ҳ* (GXi5fXm-U,rod6b4%wɋVg6 t.W6T lA FHw-- J+{ x ;2mZleE@{ךZ L r^ͽ `Yx_gul8,^*IXX;4ZhPe ;$7V-8E囪=lYs6)q\J/ |ծ3I!ik5Z9Wxowi3!1њu, @ :rL92̱}A7 >$88R+`-B$dbowf}B#=#i*r`Hal[ɤ>?ߘtIؽ2bNZd "ug*!Āl˥7>-ps8oyPhR&KZ쀏#Vt8ˉT$kI7FsZ{ e2/*i*AobU4d?oVJ[giW$sXoH:~/|^nzF(Օ5Ek:u{M߁- c-v|@֏z&Tj,ph?D4Bon<3wڥJ)_LMaEtXn[P߶A874Я,a,g/+ݒre:[RgvvvY>p@碞T]Qtev,;jQpd&lDgD!9sBldQM+#wsJǁi X^q"eӼ } 7?_o"K48tn1Nw{ -!!Tt>l=:-F/ k{00w RSr0Y&4ۨTr:^=%Av)z3jyfL(£7{FZ۹y-jl]E}N~JDq: }K+$3;YU.*K)e{C^[@ۊnꂶ3'O2 ve$q)G|V3ej_u'pqVSuD֡wHW&$/Lt B AsR+'ElU+U* C3rJP6v9\ SLQبֻ5j IVI3nVj5hf\m[Jj&>tPo,m栲W v8}ҼhUz__\I_=h%ǧLG/^7u1z/_Rk-1r%+ vL;U+Y @&F5Ǭ SZGHtYPe3[漃'B\+5tL dQ)eY=lw?a.Q"iy/NƆ&UD$t#ov%C S tj u 6J 5o^4eïnX>$oo[ 1ez#,^js/Xm O:yKAR0?cC_l5[mloǚc-=A>׎lِuLԳ-M`c?ʵM̂M dMh赚d`*$U;OcsZN~%[y~j( 3ӂEx<`6&uu'.Al({P5S]Ш 'v..8,vӈFCN:ލS Ѐvza\ՉtS=gIGEu׈ɓÕG"_֥/۝8ܐ!BA\@O[+;eu"Hr+ fs{9'6ɩNl;(1Kt+V 쌔SMp73%,zjFZJ9xTRZ9hyL.B`ύV:\pw 1r)BeǙ7hq؊)]Gn[Q:ƥ)#4+O49^Q3s3d"FMe!swm0r9pM͜lŐFOݒGK3nQv"^ȵ¾{.a4pgAHe8bߤ 4n~68O"s(\|?3Y1ꉝbiCJ Uے9܁ nukNt>~^mAj[n.;NC(.¹!X%yDd2Mx;{6)"A|RB 9^*mVn(9S[+WP9Mz1w­ Fy,VZv 6%'L**h;C? 538ewi RdV0\ͺjk/1 z'~%G$:ŷX;:0߀;&ΙS͠yJ 0H* {84FS'lؙXj2 ;u581PJ\Wsk/8ˤdc JPa0f4*UJyRAkkǵހqkM~oK<ε!=pZ4r=-'Жg9PW0>=)':}?~.^<2eYJ"~(W)g9YbµٙoK1W`2.8cHYZ(l-hg|w>B35s?7`Cmu[PU7#Ѩ7A\WX~)~b5. 7(U{] -KKL*-QlA'4'TRٮENcz1ՏXM LyWͭqGr3 k?-)֬0Ր06=Q I$:#+ܹGvuDoU*5dYnR lwIbElxX:y82ӊa"v1Ɯ'0R# r=ϏI{9N{ښ4H 7J#MDW=9. cA#gdlNwuql$}$ dДIuՁ( B~>PC@3ٔ{Uq{G[~l P;XΣ?hԉ Pԃ9ɯ;+U݊~aaJP4W'%|a"pJ#s'UA$JVޜa잦ָ0d1]S7U~N lĕs|VsA\"cuHg6N0\֙|i\ aV/2:h;+;`^Lfܖi?z0Ā4K~W?yRu[0q$&%Mp{HEo0DցkI1ٮ` Ԣ:@jfB8A}luB]eHZW݇/(YL:GL>Sw jdJI(sي |#[F[u:MI$d4q,7in~jNIwߒxȿe7wXAk+^-bNZuoFsP.8hoEs. cUtٚȀGb%W'Xn' 6#)p:87 jA)  ѻagAFK~ uu=@^n%+$GecnVX&_YkƢ߱E/ƌiV z瀛nUV=]4C;Vdk!kC3Vf7b'8IR?uۍ6}U#zXÒߪ / Ҥ#z4yz2^RQ1[ Kʊ:E( ~R@@9yṬ9P呻!}t¦3#mGm+^'|iʋ2Fm^+E@%ɷlۥ 5pcy'fLtprT"HVÙ.=nG6&b{c;I,љmppDuOܮ()e0 2$R(iСA:%u0Uգ;smj4jGd }ޗ:YaU ڼ!z [&ceH.Xdqc<c/drShZ,1*i訩$ES.C`N! 9,~8yAդR1Ǣg@b=ZK4")0 %Y $\Wʚ8 X@=y[:/34AGTX bxi$m`Wg}6JfM." p[ӽNߝ"kuF?o;Ȫst8VHܩ%QaV # oN-]`p$(IfQ uJ` "]ЂmspdLUPm!†$!5Ҋ"_#.zʓJZmʢLx_QN/)2|"ODz*2@sk"a_`I: q)z] VꝦ>wmuGVf5T,vSz$!]RHn64IhF W(\ % HCS?}1Ak$+Q'@ܭԦ`|:zReqic&qkZ=9tHy[[qL칎q^]'qnfŭ #?DIK:/+ϓP;0g/wKKКٛ\,|(IWZ^k愌((|z%7@ZIc:s f q=ynbBHkg&~vʍ 4&/O_Su5w%Qzz,)#t~[VEj( D0ƬUn62ze{sw06&|:Pp/ OZ;ڏϝ[7w&-+0KG3ے+@xWc7Tj]zRҁR*&W*Eݎ)H"+j7:VWXn`+)?z36[1gClaӪd8;rdvd5` 腗`aN"hvY^8ŗzMs[H٭݁V[vk`M@9Jj)a fdO'"R2e6H>Ph2v.?]fhٷ'[bo'A!gg.Q1ѫkRWz}8lBMf5!.ծ{ +\p%gg)E@~ 2dS\~h}AO` [v<{Gz|+-̭P@񙰡rg +=8wya!,r0詷4XϾiJ5 Uδ=EPZ~0[IK'ȷu[cAv%pn4߹5{ vm,3 v[E"HJ :-4p/\IAUާ|u+d;2*5Ⱦ* jUuIIua0 կ W(\"5c; @|/&䇢 0+ž*;AZao08S\}b Vk sU-E9^^;Զ@ 4p3u/KЎ 2v JI:*el8[īsXTomNBhVY|h"IGwkW'6кYlfXrx7ֽe i"чJ#vRwCFB]%wi'K{. HyyE ˝BJu3OY'[AV;-L՛IBpCiꝑeY zYYsA_=-,[]K2WlGc KCJer:ĥy~&X7+T:U \\W:j{݅\[;H7GA ȊHYLǥOQCΚx9Q{Hlp*$,~ŋ&E|PޒNȧl@kM`aŠl<MV._F3k%sDNA%Q##hX^/AO!SW;! yFx#& ڵ?dgqv hrO;oza͸O-'+˛zC5fn28&G" <%nۭx2yJ5^4\ P'f=Z Vz4̘hk["F]dLЗD Mg쮍d\6DP&%a,&bRn"]M-W9=. 8^vSl"˷Q'{Y ;kd5 :h4PeE6lV6ؑ(6~4"žmԨݮ6X%Ր 5(׆6l(\pH^Vqґ4i~aOqg@n>ﻶv1?CEIh"n ]F'_DqNdbo$=4[LW$ߪSy,sBKjjUT<k\E1fɋ3%#'L.yQ *9L>9iN?Ut'e(XS6`IZѡtA&΃q)Sf9ꂘ:ŮH^{[kQLUa ۙ؛1ه#W#*%EǢ \R5 ?;I\Y5o+hIq(-4*V~{ ajT}KcJ#DN)MI] L֫Ѥotu ̙Ӑ<ޙh4Ig dB.LnV6mߠ8r hG'6 Qo+ܲ"1$.b]g$ 1:ebKB| ?D^INm!T;)$.JJ…zy\:n4Ιw;;nav!4Z'y]4u=9;% _qeOA%COiɏzAMu"_F\p.I'KLQvϓAFSUti2@Mh8ԉK M87;F{^hW /)A7P3Wk7.l=~}Vw0dmxs$ LZ4@Al2P60píXC1DMjy{ FhE?P#㉔RT3 75AR]ZI3$d2v)Pmqtoh"d@O);#[iKTDsފ'u53)ǚQX ;HE2X3 ԋu}fEY`f ^Q42Ǭ&]F x.9] :a\QJv3']$g3 4hȩ|! Bsמ3'[bt8! rM6:Ә4K#ArxsCңVɂ%T~$_*53= ڠH0=WS? -!Ԥj3NG7NT8X#"{PHxCg|{$+jC;K:PM *`XUaXspZJf5[ fe뿧&SM У9[pBk[lo{ZOMp x_'FiLu7r`L{52s=azLIYؤp(Ğ VXΊu;;X޺8YjrQU+v 2hQ/WP;D<|19D0p5IwԙdpVp'{~|9!a~PL=@v֞gdIὓ(5 _`uԱ /s{A2:O*l~s~\:]Tdug:̄db;P/3O\G^Ŀ 2C#L x˱rP6Gw,Iy-.7u~pЅql0:72*F] '!h^ow&"cր+r8 e+zNvB9jJ×dn+jח]y HF~! u4@$sc C2uBRD7bsL,z|&W|3Zː Xe&/OGo^!;;{"q &;[C'mHL!sYG}TxXjTJaWK`nG AYzRҠDSZ KNdrN6qZ|DOʎ0rk ((+2pyF~CيL N~\c~]ɛy478$ygE{:1@i܆5k6-sl*|&Cn+9+"?7E5\-g ǙQhIQ;: =2g4~4M[*>6U.1ȐɑPpI :atQ^/5T9ʗR!;h;t/\{뽧ʂL\6 @g0[3𻰹"<+5@JJVH` iU BX2IC6FP*SZ/BkdAJ'SΨcMh/V,/͎ZηUJs#kuW)P~nTE4(Ϳr Tf%PC8}RIjHLޙ]KUN>t33N8+K!Ījn3`Ȫj i]!Q/6mν{1%; biQwT)[zgOt3X\[[xڼF~Α &+ ߬6549|+N(xf|G\ 4CcYsB$oџ}4]yP;xN(-|ONMb Tn0"^CF~ L($V*GiRG;ގJ3偛 ;Koh'iy8ۥvm8yv7/7H7͐^dPz'=Iw\WJ`pʩhQ{|-^}|kgt9 OQgޏKf 7Orv.6D-V@ej ?G.}=u0du<`{>WAh9oW_qe?_=]Xzj[V<ϬU.M۳yͶma5i@fҟyLzL\55_VjV_DɡGŸ>u~#/,I(,|hFt_TgiVg_eޟjJӋ'_miZ />]C7,5'_qi~uvE.`k6Nne=HmRP VTZ"|HP9*(I"\{w[)ܾ5ugYx6ۯm{'%mAsHE -8T$'5vx³o䏺^Yuy)xvw3# P [ jz9yݟ=S\vmؠK98( .#m.잓>Nʘ|fa=3s7D.|w|ZC܈~+?0kӁ0Zm6@Gw39ʧI?/;Ue,tsC*ϲB]'0ף4}kdFrK 03^ΚDžE!EVNӀA0ig؍ 1y \V-ŹЃ:>\m !J~,} a4#i=̱÷M.F)`t0I0NJ.N)~`L@bj4̣1$t'[#5]skmcw༅:1Fi;D c aqwO ~7H#q Ϯo>6SrEPY]}}uG [n6^*s'$xI*jLd<,3.GM7wXgS,G'gg3$ѹqi@ us%Dv~yAX4EFQţIiivR{Z5x>H{kM-?Ǚ&? nņe mY-l qۙ1ul*;-W|_|?t;Tpt-?/AlhC{˾ךΤ߯faoJS=qod@nPܢm̉,{|&-);bj<ĺ7hzW}HnO;Õu:9Xg~z,,XwgٜFiz$IM=Ǝy7|hv Lb>M*Fjjꁤ|a!sI5+oitdNf7 %EKDa5Y?6b](|ry /m[i@9Hm,`E+$-ŀJ^g(uIS$r5yQ0pȶ.L |pt*qǎ;tWozڮ;A7W:p|ӡh21IIhyxJ$o5NLuTӲjc}In]LѾԈ$:. ۸U*=;'\2]\uzzՃEjE|?྅'ZXc$ɵJpO? Z1.챳0y ǘԒlj4(]uj6{{ƴA4}kz;t)p0.._ѽ>p 1u3Zf?l8OoǚϹ1F7 GIF3aN/gL˷RveBe ]< E(GtZStgIޡvoph~SRw<׾H]ʋ M2a]SI0ERj}I*_tܧ6|Js.VƑ X~Tp5 Vz8:%I !Y|3":;P84ר$_ 9 ׷=%KWWB˞-p1^t'Sbc6V> \ /T|T`\Zz@qfZ'Df7QQIur~QB&wK;Ov LYBSX̍Ͷ\Jq>qgS3D0[?C{  I>ӎt!ɭt1ocj RI|^Nx#ֹE Rʶْ\)_n7ɣ:Xn97Q yb0AECoRtX^󋨏ǑV$m8=u&Y, z\?C\\'vl6A ̭ftR/9Cn7 "2)U_UJC.Y/~"Dqmj< L2 ܟ+r938[|r rлIǧo(ivpXL[G{IMNz$fjXap3N w=A7ĺNxjd@,QTjov[Bfu fjO`,%Y絮{TA>ؽ]U8? .m,CQ^/$8'JfZrYkJTvNz:UjѕcA2#mt9PWh:A9sq+rzн:_XS1dZk30շyqU5_\ س@'Y ݕL> ˂ꞏӴ]`5_i:Nी"8V**w{O0~r: N_--F6YG8ns;ዞKFaܴqz&}Be?|lAxf}\M2x%&Dӑ :+Q u ʧ]3τNS RwYơ)5' 0u @7Z}Tձ3S/Ll{fKh-t wJFL tSb YPT-Hbi@RW݊)d|<}/Ћ2` t-:*f8&>&|!WȆvVyVg?VdcaJJSΖY8؞XVX!@$0x!7.o_tC>0iFRH} 6 Aߤ] τ@c!nkf=)Nx-aW -YΨoO@zoq `SSqwRO.Fa9_ϬiG.Qd?~SDg|db,Oaۊ H' .'52 0GAfm/ -"jgYxk,=SN;sRCPo#?"5XKW'pfsb҃Kv9VeHY1y GqA:+VBU^lx2FbdT,-|b/'$:3UPkl^z=tWx 2<On"qO+VzggZvZ,oa-XJyK )HzbBǐV fLj|.`(E5u[>Oރp84k$Ir"ƜhϜh} ~$=| {׍21 cZPp=2ttA'i/(sr Qҩ_|Ɵ*IşQ|/dm}'_#ZdP}@rV)tB=!ݹXYib)f up ĂAL,cN)3[ANn,)S;NHj5k nSޟ9# :*YjP8Ϻ^\,t/Ύ)@mz(f8M^zCvF7#򉵆'3ZL!,T븱o3IEpH%9YO]C L}3n!lsr[7=HXuߤ*צc-1+E8~!7tM"Xh$V޶|>I}سoNEk3+'_X.ə$ 4*H}U[vLAϸč X1֧hoӝlS}oS PIbTRϾ1Prn[0U>@UMTH}|KWۤ'ܳ> U~ j6qxu!CJC9^mm& @VjP=fr@{6}9=7\F|IJ I+tZ<>.@%'ѰF ocbͳ7BWrS]k[M 8ci"KvH;퀞{!!OƔootFП*}s (J06 zrG: ꛻0}4fCZ,c 4/4p#oF:<#ף5^3Y(gbmtTQuh8XKqV'6+puZygҳ:e`I-gZJȋ>䙑:by!e| Np$Dc /|dqOK ЊdK=nHhbaXJ51< ?/{Fu<\{)A@{gH)FŅ'r m4}I/4uc֎@4FGIIkhʫגhSKi'@Oh9՛ #qn J яZ>VWݣ >E@*P>\64b*cFICNbOblyO~e|c.iЂ;qT\eN/lV:29ԓ[ZfԣWvfU@KHS;6iO=W_?Tn[ndCtROOJaWU'X?~ 꿊HʕDQgmSvT(nL7(*\M, Ш|~ j\duuEN\,OL{R.4#%3>1+ʣOCc? 0 @D|K:7mmo#|n N>,]k0pe3H 4g\ w塺2y qpIh! A5$]aA}ĨQ:< M?ʤSliYj6|A-"FBl7GN72W~)!]n Yc(K#``7@D-&C+IᔎoK߲U*xt;7kr;kd*m9Rm7 a(b@W~VQz񭉲m43I9 7ϖJ6cٌ^EӸߏ}]U5V$bz%!)ܰą&r^Ne7RGJ7 -fRC5=fSc{=vKB/-?jk3ϓD-'T_kYkߘl3F`O֞*(9Qg N%ygN;#ďŸD3l$p|&A7&,)łt],[anw)@vHVÈCܺȎ19?ȓ */VG'aUY-i|(C_/te#_f@l_5k /;2 pb~ >2_vPM:ěƚ^s:^WVV|pбqؾ$ /*=ۇz q6W1@ׅ 9I(,G7Z(7=]P=9ӌ-:.0.lFgJ0Q$UaEpfM t/6Ņ.(z (7t&*!FpуZÏ [2P6VOJYUW3g+x4`k8/H +mʧ0̙C@Ll cSKÀ`Õ5*MS#+5Q0@V0RD(DD-Ts$v6,dt}vF+:)x<&FKoiߦgO(RBsKZJRXjim4u-oj6 ԇ0iN.G#&*pecz$g"> >/?ON~g|+7C7xϯߓcK!l~!_ ▖p8RɎ!^XBկUq9k I?~z}mmqlv/Jۚx~j˘?躵%XgU)uߨd >x~isA”.ʻ@=Zi׸Ai34uX⣶ ]N%kcG~*0v_llώ !ߘWc)I v|ڕux|lxVnj"  _~$eHu|dp6:$vAmT=_eG _C:4>245,q^n_xaTCĵu/>88% !E{F*PLw ؊E n= =o-]?FK 3]#g6zvrׄ$sfMY4w:MU^*izbm?w? @{Y~0Bf,.[t6O%~T< .#\0B̭+ .} qkwMrw48yY$),q΂ |jh7;{?#{G>}4Y:a=/ عO)GT}ۨ?~3p7??jJ$D'!g`"O)c3"OCF>1bjCo`ɆTow\KH_ߺKft0T5mM Y M\2;Х Ϙ4lTc043\wt~gҦ0Q Б15D$K;O{Rt:xYOAF)<s>v