From 2a0d13d1e0a9b5130085b5f68097028640e3fb69 Mon Sep 17 00:00:00 2001 From: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> Date: Wed, 28 Oct 2026 21:19:59 +0800 Subject: [PATCH] fix(dashboard): focus research findings with contextual questions Signed-off-by: LoopX Agent <337587101+loopx-agent@users.noreply.github.com> --- .../goal-research-history.css | 1 + .../goal-research-history.tsx | 12 ++++++-- .../after-dense-finding-en-390.png | Bin 0 -> 81419 bytes .../reader-question-context/after-en-1440.png | Bin 0 -> 111427 bytes .../reader-question-context/after-en-390.png | Bin 0 -> 54966 bytes .../after-question-help-en-390.png | Bin 0 -> 58417 bytes .../after-question-route-en-390.png | Bin 0 -> 86141 bytes .../after-unavailable-en-390.png | Bin 0 -> 54162 bytes .../after-zh-CN-1440.png | Bin 0 -> 110179 bytes .../after-zh-CN-390.png | Bin 0 -> 53654 bytes .../before-en-1440.png | Bin 0 -> 117688 bytes .../reader-question-context/before-en-390.png | Bin 0 -> 55556 bytes .../before-zh-CN-1440.png | Bin 0 -> 116394 bytes .../before-zh-CN-390.png | Bin 0 -> 54828 bytes docs/development/design.md | 6 ++++ .../research-route-reading.mjs | 27 ++++++++++++++---- 16 files changed, 38 insertions(+), 8 deletions(-) create mode 100644 docs/development/assets/runtime-source-analysis/reader-question-context/after-dense-finding-en-390.png create mode 100644 docs/development/assets/runtime-source-analysis/reader-question-context/after-en-1440.png create mode 100644 docs/development/assets/runtime-source-analysis/reader-question-context/after-en-390.png create mode 100644 docs/development/assets/runtime-source-analysis/reader-question-context/after-question-help-en-390.png create mode 100644 docs/development/assets/runtime-source-analysis/reader-question-context/after-question-route-en-390.png create mode 100644 docs/development/assets/runtime-source-analysis/reader-question-context/after-unavailable-en-390.png create mode 100644 docs/development/assets/runtime-source-analysis/reader-question-context/after-zh-CN-1440.png create mode 100644 docs/development/assets/runtime-source-analysis/reader-question-context/after-zh-CN-390.png create mode 100644 docs/development/assets/runtime-source-analysis/reader-question-context/before-en-1440.png create mode 100644 docs/development/assets/runtime-source-analysis/reader-question-context/before-en-390.png create mode 100644 docs/development/assets/runtime-source-analysis/reader-question-context/before-zh-CN-1440.png create mode 100644 docs/development/assets/runtime-source-analysis/reader-question-context/before-zh-CN-390.png diff --git a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.css b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.css index 28a01787ed..ced97b1564 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.css +++ b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.css @@ -260,6 +260,7 @@ .research-history-detail .research-finding-exceptions { font-size: var(--text-body); color: var(--pw-muted); margin: 0; } .research-recorded-finding > h3 { max-width: none; font-size: var(--text-heading); line-height: var(--leading-heading); margin: 8px 0; } .research-reader-states { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 12px; } +.research-reader-return { display: flex; align-items: center; gap: 4px; } .research-reader-question { margin-block: 4px 12px; font-size: var(--text-body); } .research-reader-question > summary { display: flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; color: var(--pw-muted); } .research-reader-question > summary::before { content: "▸"; flex-shrink: 0; } diff --git a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.tsx b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.tsx index e7b74a9db3..6c764cef2b 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.tsx +++ b/apps/presentation/dashboard/src/features/personal-workspace/goal-research-history.tsx @@ -247,6 +247,7 @@ export function GoalResearchHistory({goalId, active, zh, refreshRevision = 0, re const selected = value?.nodes.find(node => node.id === selectedId); const selectedFinding = selected?.findings.find(finding => finding.result_id === selection.finding) ?? (!selection.finding ? selected?.findings.at(-1) : undefined); + const hasSeparateQuestion = Boolean(selected?.findings.length && selectedFinding?.title !== selected.latest.title); const selectedGroup = selection.day !== null ? grouped.groups.find(group => group.day === selection.day) : undefined; const selectedMembers = selectedGroup?.nodes ?? (selection.nodes.length > 1 ? value?.nodes.filter(node => selection.nodes.includes(node.id)) : undefined); const requestedCollection = selection.collection; @@ -501,8 +502,9 @@ export function GoalResearchHistory({goalId, active, zh, refreshRevision = 0, re {selected ?
{selected.latest.title}
{selected.latest.summary ?{selected.latest.summary}
: null}{findingCopy.meaning}
{findingExceptions}
: null}{selected.latest.summary}
: null}jnIO87X`{PjBj zb~vW%s$xPa4DO2^gQ^eA;wG?umX0jWXC)~rlEYDd9;QpC7T$ediR9%f{4Jm4JB7Q2 zSnzn$L-@0R{vW7V#9sR>uoCRI%l~6z)9IcF_Wfiwj^Sr#(8B{~cFY>=hI58pOYTn) zzqf?K^~UoC7GxO;(_Bz_^oS(FOgav>8kF&@HWr+N88c1PMxi`Hun~E_P4#ZVZ;hTa ziYyk0WFMc{ritYZqzM|p#Obd^61&i$n--p4uk7qo8sRQ_k(P4d^NAGEe>)&q`*IMzXZN<@Q2|vGfWuZ>-D@CDTs9MMiIiCOUk{N#0)+xv_n)B zjbvxzVV?qyE$ceK)pL$XE^!)1`?ZY5iQC&i{Cd3X?6W;y_^2&Mq9I?K%Zlr+JwAx{ zcW!td9WSHB@Xa3O{mW9P2Kwp80 zrmy-CpyGRD2`(ob5bxOsG`f7AT z3eD|W;iZHRY*W{7JI2(2_dCh^kVuJFc9>|;X&NBI4*|iC_kI$ow!W3ZSU%ddlf=~N z9+XFu5UJ@jK>+9F=wV7-Krq0r>%Uj`ozqPqF>(Af+|n`?c+WkVINh;OM1a^VvRz!@ z=??wZ0K7bX`t+-(wnbIdznnRHV`nlE%0DK(DGceq+B0mVLJi-**EeMUb`z%?C-%v5 ziy8^MHyL7 ROX=DADQbkbfO0RwLJa@vA z7kax069=Yuk3f0&SuD$3$vUsP-m{r ?PmfOl8a8waD-n_ za4V5WO%M6&L7PjhiqQVK?AhN96LIG)yk;$TV88Xs$<=3{Yi&|b-9ZFvZ)R#%f++_T zQS_xsB<-9{=~M2J|9v?$Elj_};k*hevdWwr@e+Dp{i^ib&y=iYz4&IHPG1$=&<9LJ zmZoCnoRpfZKt5n#?Q@FF0>Qs6r}~p$yc9E8blf4fIGVd6bK=7&(Tz*mjaypoS6B?? zz31Yi+S;C8T4r}bK5s=ce1?%cd{t8@;$OnRJ;FGRetOR|p1Rw?2YMSX3Ji`2+9jm~ zkzkRM7B9ywy5{V7j8g0of3{E X^xE lPJRor` zl`Axz)J#n9zI_kGnLadA?|d8<4w>aQ$AySD62EHEtTPQ@+#rXwll*qrv@Oa9EI=w1 zlytW=v@duwQNooq?#(Iz)?sjJ#)b|FE0H!-UYvD6GqP#Ii9>1n1h2=&C!VMhs$(FN zs>+3|b*r5Ax8Iee&HBGmFe94g%#+#Wp+|ZW4G4DpI)CyDp L(dTOW2#B&);hJwlE9?^EJO9UNE3t(_&}?lc28|neq8Y zuKC@SmF<|Ri*b>K(i+xC<%EBfA7($py$%rHC(kq=c2M(VlIUd{Pn4)-TAJ5Or7JTY zO_7J_#Q7vIp%fDup sOSm@Z7 ze7jFFvcmX>Uhm1pMHR35 Z-hOw1LrBN5>NS)=^<)_sa|PvmtH1RD305a()-)% zCnSN{%a+U&Or7aLz_KO2;5bI&`$07+YTsTT%#Za^SNe5m>3Oh; (({>>gbCc zh>^Z}*wdO7TbXMPZt+Z3%m~44TU$b`h=S>}&5v>m4yq3%J{w95CMQyBo@+C{OKXSS zb+__--dWqLnAN&3-EGE~m=0sl7fk$;~uR zo^Z3y3tv-M4}_gjjcLn~7_5u7OZ+C38Ge_O+-&CbcczBJt;f3Fzc$b#Q`@9F!-> zNvXRoNR6`Ba^3J$o{92VY$g &tC z*O%)66l9-(7MU2+vM2J&;EB`X>E3s|y+}9Gk@k2&wLJs7Vd&Q}abtWd;!t4qs^E^k zm6nHCIp%d|nBHfL`z^-~znqhOo_7hsMlJ7|LlQeb2XQYs5VoRe#wq9c $Y^sohgpuoW?8f`iQD`GVLnnUNHDH;;*SE-X#Gy^4bQ!^RsK7y* zDaM;Ieqy;TtUj`)`W_8uCr=5qQ~yxm;gLQ93Cx{>R8y~;&)4uCkf?yix=>;d*5C>f zye_H1%FnXmDUyWf?LH2Umv~wfTo=chgy6cxnEEp_+$-SJZ=P>q+T0~CIsCF5nw=0X z&DJJD3&hqx`c;TXUr=e2z4~+zw6n`UU$*C`b;!DMdeezBS96Y-Xp?t@$GaC~yE*s> zkcr`Lwa#^>GSJ4;C5*az4W`|~y+D%2PnM7g6J(O;$Drnw+T1xmgsb1iIYshJJK2O% zLtHS0gC)M@$a)Qh#}|xvqF%w8NY5d(&6_RG%HOPk?d)WM$7`>Y6;nLP--%GO%KVj5 z98b<4wbmvl?lCOA#HT;P>upOmAS$V=sS+n_DBe?k@wIRZrS}_OcvL)9_wPVRaZpJL z<8cE%0aXc$A6t`R6J5*>jL6P5KyfQsHAxO8xVG3#@MFe%(P^_C)jfIqQ(wjFHMxnM zFBskPNF9$V7oE#zNsq|_NgtEVFh0VPC(UZ6_bwz&A?Ux+o6S8;>&KjDYq)&BL8s1! zwj (Q3V+2{#LMirTSK4$|F(YFd0IH!6YSeZ<0I`J$lKq7Jks*4 zJi0^?offw_pLj=#GqKW3AH{Nb@-%tBihIps3fc2uca&C8!*BD_(}slAq%CQx&GAYr z^ev@n;IE 0$r@-@}wAzpC@c9HIHDIsTEw;Zu+Xr;Uuk;|{!n#jKK!h;#oQe2l zC0rj&oK>Jc3_tw`wlV%sUqHBjF%3~nk3vG${%jQ82)(57YTQ&;pi4%&2`pp$y6nuw z60SV+Bq@gf!jKJavd|vnhUpwnm3;MfJOX$oe#$qDgW;(VvdTj^2_m|eh$~zSVc=k_ zx2LJ}*iK|}+4O!YPFi%oO#!|rOPgXsu^YEpg|OsiBD Men$Vzwe=eos%Yv_s=5Ci &lo4NzD^q6t z(mPALZ!J0&BFtHIVu#aKis?2e)!|86+$#cs$!cv+rI?>!4-+O*8>)~wG1sG<)(>o} z&?Fi0^i~%w&t#`tN-((-g*=BZ+V)9`9Ta$|QkoNRcq=SbfoiyldAod4ig;qIh8gGR zgHLp*$B|TPuw|MeBrCshbZ #0QBt*P({eHO&rU2@*0Y8BJJi^QXO| zpJ}JUjlV8ld&3OhL)_IklIb|Q!MYb)#)Du*2w*4nrWNDEqkVR#>z(r6X-q5rBPLGb z^>A*2F~MYNFJ=vmJBH-7BR$x&I95`^u(KLG56}Tcu7mklce#NxccxgDgy(ErlE%96 zY^jTaMl_BQ>(Ljiu_ NjmRXVX+Qk%=HEp0xKoBnhV8}5Aj^DHmpG3GjV`{`Bms&>d> z*Wq85>_gsFrRZjkD1Eq((}m1X7T ez_dnnPYn%1UMC>X1CXL~3gLj<0@!yiE*06e)$W$d )_LX}wzW+)Zm3RSkW$xlhhEi8}EF&W$ZzJr6!+??imKnWwT?sVy z*LF04aqY%ODU4%|x$a5Br &UMhx^4o92A)y0D0VcUga!0$l1hUN6698iP_k3Yew7Zf`AhtDOpTtGMcO zYbCi?f{zAJ_Q#u-7euREfJN*@#L2}m3JvB_)fE;}1FACukHPHb!OzBtGZvA+fQ&|E zvQXMR?}QpWhy*THoPvkN6+L*LGZRQBvFJsrFN!ULtb< (Yxdm}VfjgZa~?-3>tS*;dr0l!NxwI4XdP>EWRAm8$LRRWL`d2JdIgebzUR z>Tn%wU;8B1A>n$CYXH{_Fvw)Zi`_wF028A|(=U~H;-Jq!Mo!ub-)ZO}>jMeG6y}R7yzep3Lf4~wJfP&>^xT3*{lG}qD{Ga`XUHA6 z2n`II0)+L2FdkwbniwC>=r;oPd2! e*F@aP56WR~em~Xf1;3*g zUY}}Nk2^)kSgeXccOB 9FGGr2Mycnk8a=0QRz07c)JT7m{|K!x}GLVPvOpOI~5Jhin88|ODfzIuK zS(?iPiMT&tEiBRkcv Kc z&DHJigYn {Y!(U)=sYHW;Y#NKAH&`uM%@MUdWZWdFI%E#6PVjWcq}uCg zd2Cd}P5Ts-LI352#j#jH7f5E8dNMvR91dyFK}Rp~pWOU!3W+a=u+OiKJ O8$4>~QkytvQZ9Ck~-nk<-(qScuOISJZ~ZAN{n6R@_9G NN1PFU#^Uk zg11IfuZ)EQh2pXxipA5b8+TN7!!0*IDV2=-nt8sOXHZOVL*1vQkG&gFu6(?`*|0_S zu_c~%Qj}NAd?US&o=4(c5)>8%$u0nER^qRyxn8aoAo&ay;HK?CEhN5N@)h+4N=>EA zue2h|FIU_yf=EgC-pFUxhff^zSp}mU-S!zNwN< HeE0s;)!ZD+S@)j!zyZ0URpha@-o~*wIf#0*18$bPU&RODd zWuno&l2xk#G@9j`?=rw~;uxz~iRdGq)@guT`&+qbz_r)b4JOp4%#;`4k>;4hCU|yb zN-$lxG^ey?miUQZ_eXOgpZy^wZNtR!nM)sTR(m5GKP4vIlyQ-q?q&zXM@q38Za~!7 z@us^$BwJCJCQbL~B-JS IAd zhnQPC24JZ(RbUAPCE3^6!=XG@gT-67n*sXQp0QlICt`WFMN)J*FGOj?IBrI)64$x= zkRhDqLthR^t3P2WVlWW2vfWVKh-IfQm6E;|xbyXj=?1ukecu25or=3tDhT*{3t4~T zTsIo*IGCIC-FOW@td1Z%w6b{0OI?ON#_OPhcwSy)5+^+DP=%iHTLKeIsqb27RP|+W zv@8Bz&EOwbhQnj9l{kk F{=#Vx>Ys==LE;AUDI zZ_dvw8~C9 zqcFcZ01t=q{pi^{n(&W^s#MCm_x(+V4@< Tm2yumw7Yb_x+Sa#S#W=4p@7Z(y$Z$`XluzMwDjvQ+c;|9; zh+GdrLs2jTXSccFLs44EE0X*kE>)}k(>~;RC~IN&n@*+r0D0@2zw|)bO$O!+eC0<8 z$s!Y;#?|`3s(|g|<5pB>;l1m}s+G>Px=1C~NRTMOGS5dX@}3-Fq+xj@L@nv9(wBll z?%|Ig?hgnH4ZlERY6?}{2=hk3;?2MlL2Xi_=pYkLm9?nGuW_mKV1(J1FT#Nk-Rll} zuT+H7%|Y{aAi#FBj;rzOh6LrDvh-Kdj3E$Ai= $jZ5fD zPzS5A6B0k+G0`Y&lOgx2I9F7N4?azNfPPDtuB3;kE10IpD}<#n^jKSUX{=6srj3do z*;# ?T;CEH6L{uV}1SHG86j C#J?BG%3(!B<~J!2 z7c>j>dBwc&Zt4Qv>AIKevqc(MOor(w(!raJwj|Tqc!YDO1kuNyFU1!lV}CzY)lnik zfi&s{57S{J33nh;r5oDC@xmu@I)naJ>$(X;Z>&{IIjlUuxK8S@xXT}08I`&&h;5a7 zX{KWxU;3~7CZqY+ygltDBsHK-rXUz1*Uq%&n!WlAlGEv@LluH%KxX@s8I`nOx#?cd zgW{<>jDiTgr+Je&Ii$R1nY}r&&Bg-s=9Rk~x}MUEvqaX%_LAM% F;`Bwo_-6_XdyDvC3jUG;EU7 zW2v;z-I*-^)~Tl{^pcVh+J&;l(`v4Z=3#6yMmfP3{8-aYa_}i^5OjY93FwLQD3X`1 zX5Nhw!sTomQT!Co8IyUB$F&=S{Av1@_t!?d6`d&Qn=EX@*y0j%zJ`7^?jS8W-=<6F z>w+qk{BJEFKg$}pOdOG7dS916WFE}0a_isqs_}33p4hu$Cn;0650vT+agu45B-Wpg zY7_(+x4B_~XlY;V79nNzQ8&CMG4Od^o8#~p_-MeBqz0Mg%WWC^N=r=UXpL(|ON~HY zSk>jT@r8TXP3Zd4s}hX~fbG+g^hd07>hnP?RJYrIsF6Vk(g-=$bch;O{kofO-jSBQ zCa&7Wt-$3n^1FW8sr5AAXY73bIICVF0WYOS5m$hk=U;~x_KFiwmv2d?2i780d`{n9 zM<1FpjL@y6-s25NxTY%Xv)!{lVGD{h&(=dpnNjp{ZDLP4;2wOX+5_>#dX9?|Jg(N5 zZ!dlDaxB qK4hj!X~Da{7`Vixb`>*QEOPW8X4{~z zrn;pzpm!{n#+-$tr*C=9DBnxltl~6NMMC{1IPIZdJKJSid`(*RCf7|OWENkv9;)B$ zq8Fd6Q>bV@SL_6NhBOQN81@qKY>94zs{P$e!yx@kld!*a?~Cj|<;2skG4z2cKw88p z^hWDqOUgGv4JTe|m^#Cvs7}MvO7X|0oNb5~$lE;Wegrwrk9e#g&lPl1A#rOFjqjcj zkqmn)l5uk{QlH Sr?s}`Cg&qnbFdVTOuQ_msw-tT{_4(m6BV_7f#()J@{4scpZp`i z#xE)P^wcz?(JA*1onN+N`xWP*B^Bj5vbl8YdrHdcNp ~JbAh(`tVKUIz ZNm^^^f6(SPr7G9Hn>g*Oc?xUB zy_o9b=c6=CPlp&IG|_Ub!cD;A7?pEhwCLJF*Tw^SD3K(R#U&JK&+v0M$N@{2Dz7LO z{NPZ}OvD^hq;74ZfgN!yCbtSl-9``Kx5gPr)_?;J`;WivMybm9-C_~SA(moNDvj5d zxA>VUOk^*-n<_V 3&u>({jPjb$yf&mwZ_5&Rc~z*<^jVZ|G@Wc|VCrO;p`0 z=rgeF2pIqT1SE^YS7qciC`#frXZ`p+n{lvZ-VdAZ;a7Zn!&w8c>!wI+p3>My7+iPl z`Zw1xLceElmB+J#1FbSHpU?=#VvG+_CA$pX%PencDXRZ^dZ|wwOF#0ZFRtjO1{ zikr3D?-<4xrDp0L$U$}Ue1f!;!B0s^4c6&a-9X XC{r zZt&!C9@(U(IpS(90;v7nbX?}P7mk|p4R%Uw&U_N3nZvo5L)*pSdCw0>DA64OXb9_B zY1}r`h+9ZRO$Y-43-PlA2iM0YrqkqR6yq!* 9AOx346vq zCOz8MP^&H##dgeST$STqwjt606ujQH^i |bM+S~!QxE=NZValEHPSgSxg;~&eKqB8v8oLU5=B`b$p4L1c^2jP z_+=V~m%{+6-xkzLE1=W|_eb$hAnOGSwBm#XC^+B&erntW^y8jGidy3GXytOrcMnCP zVwN|q`WJaACRspu7c%wC;OKh}*rlb<^L!<=yWgKn-MzP18vU8ox3+TUyo;{bT>N@* z%vBxNMLrG}R*H5M&nGt)a#mQh-Qxgw^B>uaR5GuIujLL|*+CwXMEyW-6p)Qh4y}C6 zLPY61SEl?_^d<3n@)rI6#gj4`$z&TiV@PoTs{^hFaiyGQrqBZNcKS}FaWr I$VeVb@Q(ke zQ>{l_S{pNl3>IFcD59)NT3IS|=wPKxiu@ZXC~U|>mx@}vsJ&A7#g{h{&9+KcN=&Hr z*LN~oKapTBf%=2l*qeIbTubNRHMo!8@@lyIQ-Z6Utw)V1DmWp7FLA9(39zp4*eQO6 z=%W?rU$F2E#rcTRi66vQ-OM5imxq&WXz^K9kH_IL^G5cG$zKn9-$gyP9+I!OMP%Pg zYOFn_opyzXbZ~G%K5Ee`4Am6E(Ag5PL?3>?rVP~WxcMr?q*fJk)QW&Uya#3SqyKGT z4!d fks~1}X;4XfnJaO0araA!6y79`WyLS?G$9I3#G_YeRd{6ls08h_0qtGDH zn#Lb?saC*X4lNOcV6}|^h`wYu4|JbA2Cm+%FfB7y#MX-~07y>0phSX>z6QKtM_`)2 zqvQPLUQnR;fsANeQ7IUtuLHAjne`{nXdJFFt4WB7QtrGYTmbN|27oWQCrixBF>dk8 z{+%MQpb03m+q3F{)(Sbfz<-bJ_fZWNJ{20_4dGXmxk3DHTZmSFc8`ra{M08>_+ML) z06LqmqF@k6Y(xI(Lo0x0)Z_FsVF38@(fxjsr~1DPNyOYN1ehWNZZKR^1}ZMFAu}!j zU2+ka&RZSQ NR7oYq; zhRdtKmxhfiws>u}1eA>fr4+7X4sagDLwOg!(*h|MgeuJeKurjgQ_C;5_#&^=fH!+N zBikGVKRNl &*}P{Tg^+hA9UIF8%1h zMlskn2a5+UI-&EYHDxy+6 |nwi zLI&97y$gL#+5bHgUwppW5jZgnve9IAUDt h9RLpTET)kO@BAqTX@sj@86xz^u z_721;cYm&cMEZQma82?IkY2vM(7$s05X2X;pO+)->Hm=%KjD!Ed5(5RYIR$=kwSH1 zv{$h0kf^cys{{v)IBq3BHxO`zZZ3g^!(2crG;x~as{Q__Kd#;J(9k&-Im2-zG@|i^ zkxNJ0cHclqR+N|JEeJdb=wU5NiSq=58Q!=5OY`{TV|#cDgd(~Ur7E8_Vr;qF*q3Mi zXnLcY3NKG$sHz^SzyV3C I zP`$wni<;9u6-W?&1KttXC#aF^!!}DRDFg1w4Z!gW5NCSlF?psvc4<#9P~7Ad(dK2D zIL3_Bvf5!Q9(%TN!rOV`4n!2Z^D?KxW)@>wM5WP-A}Nc#OLsAvSpd`J<1f7ZVk@n& za0bxTugvHEbU8_KmIWbdUfGRq?ULX0 8BM~8y*U2z(CT4lR 0e;qSm=#Ml~fxz6ATfYrgCHKsQKU$na2 zf1Gpx4ex!KlGh-yqUMm@0J6n75bU ~VZ`22=r3Z>|UE5Y*b zs$)$z-UNg59W-8OQm dh5tLn=f*Sj6O16gHap$zZM07sV*(i4M?Z=5%_4m)x z-Y+?U*zGGYJrW4Kb0d;TzYq| edeSXV(Nl`P#kRbRzdpez z?V^Rw(e=aK68mNN(jq;Ddq+uGTuXigzmML3(I@x+3aTu(QUopXnL+2lL=&i>f5HKg zUZz{FM7 0(6Fck>K(_;+ z*ONRDR@PYjM>GS-4z2*5184!uR#H1)?DrepJuWUz8Sg;r=mutnVL$1cf$EIJSR(PT zr?BD4m)^IlZw{tLeThw`-eD_<))m(=W{sDt%8I1fW?qAA$+N8(C~fU=fZ_)Tm1dxm zyUA+&(LdRFF#L4$BW9o~O}{FDHGp}{;Z=181G9GBdWXA}61Bo9MaaVfKnsE?(wf+r z?h9 fBuGc7}QIGkZJOK+Od_qYE(sSa;42b)4S4 &V0SQU)5upG;nu4}*^6Q 7c)qWM-utii?Z7GmuOwh{GoW=uI3PXxuZAGDyl~Iy!aw3j(eRwl57B%M`>x z(@^t3-Rb9UVDk5G%!Y`J>#OQVsEy!>kDii|3VGUt&kk(IY+x(QT;A`!op-~Q =R$5F5 gpC?AS#-)TBQ;38k|^uR?w1i26uskULr0>X*~A5@Lp7jtgrR5 z1L<#TkMqZ!G?2YA1>^*K8jBqe2J<=Hj4~~W`R}Ar#&*vm&HM-y_U;p|Rt%;eOyLb6 z2PoMM-qPs&>TS6`NoLT~4Yxc)%blbg6~LM(jq*Hltw 98jzr+D6Y8`Em z2|j{_6_6~4xeVV1^H`*m*qm=?w1JXz69{@u-pga@?$KG!^TjZTxD2Y+y}5MX!bbOU zD>@5ym)NdY)ZFZXiD12`wOI_niNClUphgg?pZm^omg?;o@g1UC)m&+;C$zwZdL9jK zuXB0( b5|f z@eQ+uY%*c*37yth)~qWC^6>~%1Lq^(CJJlhYbIe(Bp%h{Z=?=JaHP!8)+=0uuVw3F zehV*n!N5P=$tN^pG%}OjtSIC4TD`0TSn OrJe}#jk#N z-p)ZB08P27A`eDC;v9>-TsHPCY;M7G^;3z4gzd~{Xfl|qNri@hF$Oilav qBr64YfP36I=HMKpJV10;rLSLwT z2jid&RY1UrJ};5AXFO&qfvF%-gO`)&P3sw`<){IXw1^=rd7tm=uvZD$n+>GXKOM1u zg5`&5?~DgaY@*QT3!|Qmj|m;22TpV9M_B}2`>-y>T#4Ixo-xZ1CZl$iFOg{Qc8H@$ zC+FY}5gYCo&9OKLg0c(ByXw?rcq#W93?hnsi~RY~2Dyl~IF;!bZsellmt}eIC4pJ! zBOVy%LFbn9rj}~PBn2-WI2%3gLvtcSVj3i!GjBafY9&PVqj2aH2NYS1t18^zK;U@Y zD7Di5qKQamoR+(ry2`?AzPDu?`8kL=`f5RXc0j(4X8(NvR-Tg&Qk{uKFs0&m`2ri| zS1!fwrGgW&UXhO2l?vXj`0f%9u>67WC;9+X8ik6*h^KGb5S>k3Hi65Bp0g$J%QB-D zOIL6oL6OUG88WqR^s ADhYTh+&R=_o`bRn-20W4&{M l1dx$3UJFX8r>+2)dP7o;L|LQ{#{;IuA3`%|KHJumP#my7M5 zhCfs0(Sud?m?}6kvgvrG<%d;@c+vReBNlJ*JEWh$bK=&ru`X5f2$p<>W2%LOUfHHo zQTTLJdB+dh7N==?1uP>uy5|N0(zuXe6vVNO6-!iP#XW`^I*UksEjbqq4pjnDq0|Q< z8;&~x0Uk->OJi#urv^%`{BCeHku8KMhwl7dZaftb)=p6LHSMOQ)Ho27o^#$T>bwWd zlI|#nB|R`iNx-;=j3B!M{RCn9Hd@6fhe<4uCD9jFgcLy?5lu7fc8>kc+Wg>>z#|XK zkg6+_rRZgjdP+|qskrQSj=-fRSVo1#XHKrI7=Ze-Fc>hZVURPmUP(6~aYy)9qr9UG z4kKw!=E?AvFa>CN1Z>K>=BDsIs-Jg?q|@1oL_0P+ba5@cUtnBdvs0BTg@Yp2FK~B} zsgbhOb0aaFd{a;%m{440A)AS}MB`!^e`(3L4@1{e3t}T*r2CE1D`DVE`UF7FvFURt zTif9*iBaaeSS6Sb;R@??YO~|Wml5R6Cy}j*2s0J=ceIQd@QQqs9=TatC!p(LCpX!j z-Xh;pzHIgi>oj7^0|q%U?3Yf_kVcO?jLLKojI3dSboV!KzfywWpj5k5QmartGUkE1 zMl^VtcLtIpFXZI1Ief3bqC^A)PuN{BySHlG;k$o!f4x;t7AHqbLdVeLSP D8VxBtcEa+?=IeL|EX@A) ze5|b?TrMC2qUzD$9_GPv|ah- zFu!W_?3fG~p7O>q*%D=sIPj{@6SiJr565T;2JIwPZdrHiDC*7&@E{U7+*KUCjjW0^ z$N33`x$yf;_jz2~rqD9b+HlZ!K4ena47jQ4cq2irWO>~V$YHy%=lqfUO+*+FK12I` zu=glWkw1_zJ @qG9=g0cHmOdNZ~ zR5PwzroALa^XTE&YPW|(cH6gZFIfp5)7AC-+EGQ^8q6bA#!+a~4~Y`8%D=@b)gzbP z4X?59$Wg*-mAh!D7L8E;6EFx{^PndVv?l$ FKzhjVS$8r> -HgJH|>!KgB`OI2)b|WdAau68(e&WxK&aM4%A$LWHAaXvn7kD1T4>}v%AQ2fcF56 z$-3Y~3BYDNuUC~#lkdT065J=w0gt^4Ft8Knp5YL{>2WZT_6%{#<_2CZ|7ZL;zsm!- zID+=DG)pj>KTkR9z5N2h8d;2572q%kc-#44zX$gkP%-`7>;yWBh(h2n&p=Tyqe)lm zd)j0GpEju0qyu$pmSG*5i$Hg8@jf*SZ@vYQ@}8?%Zq=PPfNCHG1;+(&{<}GS{rRGD zrvX$9Ki66V(w~g??@DksIoWLc34}gSl}LLClJ!K0mrDQ@aeKPu1G?4<*z221z5>IR z!fhs#PCRNHL3NUMCyH$*xXy#b>L`qzKnRHMgBaZ&?gDx~#IO~T_A0AEzbTxHHsxFB z5D=qSjXT_c0nu61Hze}?h>vmZT39!xU7;6254~tPiGVS<)pY=~j#O{Rp94aSv#y_P zyEHFE!NvOxNDRLN#RD>-Uuk~;z2SLjev>|Z%x~`o^r!t4w_p$r83}qexHzg=@DyzB zaOI-1-GMy=ET`@6`*OZD;LrMOntG1iAA?%r&>d61gRIAYfA`CtQ_Ih`f`S`xAA7DN z7vNcId#&eN3Dl|7Q4lKT0OdCTATVeKoJjkX0D$ql(9~=C0*mLJ;+VxckOsB3q6keD z?#5m`$Fcy9Zx+-D1Q!A7eZljI_3B`nA;?^vz2|%gI5XhN22(z6dnkd2kM$jBhrpd9 z`v| {dou{;}?#dseuW ?Q#iQCa5S z$%bU$vKyeo6@UndCW8yMDpoLV>pHNPfopp5E8cj53m3T*aut|B0 Y^NBZgA3Vq4dT$KM3&7Y7j}XlejdTYbe2Y856MV`1 XE3`u-SIn>+ zp(i^Q?}j- M&{*Gda2-ee0&c6pIg&*yRKb7Q6-~AqIt5fjWjI4z)S=v$_>k z13`Xsfz15!6wPKrP7>Oo-8#Ak&?Q7MGzz!#(nKgJ(HOW t?Db}%}l2LqA#>Yfo~sI zQvZ(kd{j$K)N9N6 eLM73FNFni~c`Zdg5L1|Fzuzz`yK|BpV{03~RaFVGH*#X!W5dxGvE&ObTSYOkw zqN(Yor7;f(V33f0Bn18eek;(}2xB;s6utw>A8ZQ#1#_wBfyEevYL1YN!T?0X)?-Jv zQ!fLy(JlsqtjYlATann#{X)n+i=Ru>o>`*AajO0Z+yj~zF7=bJ*l|qFTOt@mDKF T5v`bv!f4^OReS;Y*K@c|mj`u35QT5VnK1oO(C5kdt=vkH+ zu-qemzwu!>?O}mp5!s*I5$XN8MQ}U{dC1h`jW~`(*_1qr>}7F^8}Rju{Vx=#|38P8 z!L>|Jz_Ov8CI#CsSYOA+&GE)lD8xaB$Gfwu>jwpUnMcyv396KzyzYZw@U^|4G?{>z zOfEXb6U{iF4O*7Amd=vNge`A2U($0dXRKN2^mo^yMRJ#*Oe
r}9B8pjg(nyN6RK60-BXffb+)))Q&5eGCfq3diTmo!9}#gGhR zjxJzM1cy4N#vh>$X?n~`cHg3eprt@FZC9$h1aRAWz#Yvt{Zcndt@@Vl6p&`PlZ&|+ zz?rcrCF32B0}ktIy~$hToV9U8VAaMsliz&H&0hVnp^Avtaaoqo D+{1a0*~exKpo#6Ey;hw{}Wx4+H$m1saK;7 zHTA>EOgD#-p;)zI1!vI7`%a3{PtRvqbM24LTe@AI4l*^Mz6ZRwbkj5X`kS~IL`XEU zY)5dGk#cc8U5rOyjgjg(>7Mv35q7}Yad`tyLT`cOXJ_Av1A&6&1DtgJfqfDDUFcoy zB C-sVBnuhrfDGZk)qzCQp4Z?$j)zPpmNu zycnhL)CWLg5Np}#2G1XtM2#p2+#KLX#uCd+ZYx5q@4#++Ydjm-=vXvf1!l<~0Dz1S zBf)(VpwG5i9k{{ifQ7R*qTo$4STir-?P!T%n=^icmEVKauK0+=r9<-AJ%Sv-$!af) zP*LgO_kM1DYzPbjp=5!_Uz#{WOskk)WFo#C#u3V9;4G=YWC(AzV-IWsL)jtQgWy~< zylFM}tNWMOAsqV)(;sV?Vs|?LoQ1YRptQag=I%su3PjZX=Xt45qSXZ$pvJ^E&jh}| z1i=}~TW~7Q?#8K)KX>0pBK=L=RvE~LND3gRVPCig)b(~1;dv{`eF}?|KC;@Q@;=uA zh!VyRardgj9Vda}nlLMJ|JyV4x0Ls(cx%-8iFy#^j8H+ZwTS592yo&kuPTTl!XzTK zN-i3xk#a*M+lias0|z2boQ}xVB5o2OonJmZ-ioi@f=NNlD|J
+Q|kic zVK)^9?w%?2L$E|t0%;9ga>rrw8YcUV?aKKx1K@}?qCRMFZ4HPsV;4i3Qc$o>%J=Sm zlBWpD9Nc5$9Ny~_1+ sWoC&SboLHldMTDZi=1Xc-@9g899IvmA~2(t@g0hUELqbaoQ19IZg( zK@yEdK|hdy!;_QW9a7o2wP|uGaY{ZwkR`|WNBxUQIx@-0hFLf|U5I55a(zTXJmD0% zlIL)kY%$ Ju|3~DDQF_J$ 5(CDw=t`_I6AMhPaNXR8}*5!;ps5h7oIPLwCaJx*OEvD?DE0%D6 zhLKmKRWzML(8y>uJ?8jGotM )gCwzgZWdbTnW#$_Q{73=ftZy=7jFsL~D+->v&8}S=>x*DVChLe6A6p`w3_q@eI zsbhh`Q+%zGEZ|;xo+`$SKQTlwgAm4Kz#7Oi$>Hyj170rFH^KqGo%FLtE!BzONG(K+ zXThb`Fn(9A$+`}e8r?{84^4hg;NI%%mGW}RG8NzTDhg(eHDlalnvVdg*^=mx^|#bj zWZ_5Y%#r)u8?0?hSx!`PMN3st2UG#rsSW_{8G;wHc!6k99hp)dOfX;zLE2>R{D!kj z1G6BIj8kC47}qv mdb5rso+ z2ZD<-MYGc4t2CSoeE845Exn+$k`^vG0v;XcT$W*^J2yLwMDkk~(VOkgKiN`FEXSf4 z;nzci%&Fm2=0on4i*j>O{iSlSXk^q|v8m`kvFsw-V)e?V53M1y`)Vq @-?qLXE&z{kQ=hd zb9*(~CRvl`=2u(H8qF?ZGllm+h( -Jna4Wq6AT4|1alH ztEX|nTT_?KPWg>r84PosV2FRR5%9sM_w{Ms#!w^5+M)Kw7)!n)lm~W&()-BF>wW9L z1e`HmDa&w|ctumrR}vv|2|97KTTU%18VG?4&ARifQ^ZRXSn@D9F_3F6$p!k>Eb|Gt zIGR3B5Mbl_SzHd8!V!2(8JLKgm$`3&1d-dcest2-Ab5=*6eSZLCA}xy)zF29KZmEC zMayH=wxTP|!}9jYoD-wrHxwNjwfGpwqFRaGGivwrmz1PdLlkAp17$LHf7$khaaq2G z7wX=AnDv@jiXeUa4qlrG*|XuaOsdDgh{+^h4nD2PN$&jo6o4yhGU(V_i@KmyA71<+ z;5OD2bjDT4O-j_6JBL2~{F2-9+E}9X&yW9T0Y Hx@#NLbfza3$zJfWeXS+@fETh!@%a!2CPJ%`;>RYiTj7bub488^ z;o!I#f7iRtsj+_`_>9{F)GGsxu@BOiqOIP7QZIcJLWJtp)mzc>dy|c{b >C5g@% H?XURSGfY7WS7r4@Q_LK~f}f6FOrP=8{5rOrmC uaI6p>i6$>BT$!_ zL?n0$TCJI?3T`_8K6HFXV`0HR_#CBD@cTO%Ox+GbDFsxV<=So08dy3jp8|N1vpg&4 zjFOCuY!7ieQ~0btU7@o*Gp&vLE|e0=d#;~&f~Tn0Of;%3OnBO` z{ikp~AUZ{uG2b%VlC~r>8hziCsEDz5vjP4>zxxLzRYhv9%6zYaR{r> *%n5|){k{b?X(ls?oCpk8C+1))sa{n?BpsCO1cdiIi`nv$%c=8H_kk%xml7! zvr3n924qI8b!}uaFxS6w=q*8c#p~Iwy*Sp2B*s@D(1)DB)8=V5=d)i-v|=nQiMfiU ztq$4c>5#g#E>~^?@1Y%>4%00xis+TydJXT4WBbCKFr6LGKly1MVLfboLVf9ihA9DU zRx~-ac>-jL&9WA4kZA}c4y^>Mvr4&TA*`B-45z0!L7 -<3CF(HbSPWW0m<6`0r+ItKQS3HDwdd2uY(QZmCphL0i$1Ggskz!|aEC+8>rQ z3>v;)DkIql#t-wMij)C#I>_Ost81DZLtAoxR5eufyxb_B?;y@Sok{P?15^J-F=}0g zf8bP4cXQJ?1YXw*e1o*)9X0xuFQkF^+ljc*#184%Er!YbCdk%=DWlqjNhue#AlS_K znD~QAJ8J1vu )QiDeQeI+ZE(^g<{r4>X&xEsa9i-uZvAfBGeczCU;)b6 ZfpTVCzZ*a1Qhp!-C2 9-Y|F+Uysyn z00uO LZ#oU1hz9eiF$BD}(F!S15RlvbY8?^Xc7fSg$j_)7-eYX#CAy0C zo-n3Px7w!Kt9=SZL&xg(do86z z}NKXy#G3(CdLw_ree-rFhRR^|AkOt z@1-Bl;I*2-E<7=X7!JRiq*ckLJ+V?WdCLN_oG4^cEw`+iv)a;{|3QXJGZ9A_Gi`eo z@w zA^EOqP!@v!V{i5Mp7=Yc=6jsK;(zX}WYM_t_-MEMQW5@ARV2J+wJswQDOus+Nl70O zYBQx`d( KP8YM6)COUv4mEr1ugw;aqV)JskvSb!{K5Woo)U6i( zHV}n18F(*f+SbQh!AM J;mH?~W~F 6!vTRdu;Y_uFxCu>5W2I@j?m62jnr{3WLnF)= zx~D}P?4h(Wdq|?vi@dNsb9 lrfG+c-#(U;}rBlYFq7U51};p z?_8xyi3u+9%!&%`605mf@+(FcMlx$og7PbyoPF97iV0cYcF5+&5+z4Iy=!B=C^7nB zR!l?bS<$!%J?9THJcS)mljl%(A-%mE(bmvd6fsivgTW=F*o(t0f`%quep?`t6mcv* zu+8Vq4Yc1LKcG|>Ocukd7V^bZ#Xkxn
^$ZX=r_!gfpSvc9kuSX$ilkUpU5 HP4 zk>B^c72(aT2&&lIhs0$vKAI@G -HOEp zzRdsGKV6CGn?`8<;KH|(rCJ+%i{c&p@|&-jjGbu=pZ$FCamE>#s@@D^{QlTNwx}lL zlGU(jtfY%MqE%r<&_)*}3}>?Z$L#%Q5INYs@K|>qD*o7M=p+&2>7j9SYz2W4PfU6q zmj|p3wF>=#sG(cUWjosa0jQ0K?Y6*5=aIjS@v1amlnh!$#;W`H`mGKtRO?&T$)8)> zz(ARO6}#`ark1|IZ3r~rjchg|aG54wf!enopeH(u9a?_`!(qD`oI=4um=54XvdguI z=KET*Z?Af75eEcUcHNUJzj($9UqDL-Zp`Ej+qcdNajjEHb9Xic?qe5EV9yqPdboPs zKmBK1{IO{O7Pa+O`yX()JrDfzZ1bz{?}mVV6VM@ZJ_-G-E4w=Jr7<3&%Q0@=2}kV% zg5k3kR{Ru+t!#q*i#*a-vksUOz|Zspa2Fm1L#T`7)yDbd8hS1jS