From cbaa6dcc95b4547ad672d7d1156fa5b52894f8f6 Mon Sep 17 00:00:00 2001 From: Yuchao Wang Date: Thu, 22 Oct 2026 08:30:09 +0000 Subject: [PATCH 1/3] feat(workspace): download displayed team report sources Signed-off-by: Yuchao Wang --- .../personal-workspace/goal-loopx-mode.css | 3 +- .../report-download.test.mjs | 48 ++++++++ .../personal-workspace/report-download.ts | 25 +++++ .../team-artifact-content.tsx | 14 ++- docs/guides/personal-workspace-user-guide.md | 16 +++ examples/personal-workspace-browser-smoke.mjs | 2 + .../assets/report-download/desktop.png | Bin 0 -> 115969 bytes .../assets/report-download/mobile.png | Bin 0 -> 43412 bytes .../managed-goal-results.mjs | 1 + .../report-download.mjs | 103 ++++++++++++++++++ .../report_download_fixture.py | 60 ++++++++++ 11 files changed, 269 insertions(+), 3 deletions(-) create mode 100644 apps/presentation/dashboard/src/features/personal-workspace/report-download.test.mjs create mode 100644 apps/presentation/dashboard/src/features/personal-workspace/report-download.ts create mode 100644 examples/personal-workspace-browser/assets/report-download/desktop.png create mode 100644 examples/personal-workspace-browser/assets/report-download/mobile.png create mode 100644 examples/personal-workspace-browser/report-download.mjs create mode 100644 examples/personal-workspace-browser/report_download_fixture.py diff --git a/apps/presentation/dashboard/src/features/personal-workspace/goal-loopx-mode.css b/apps/presentation/dashboard/src/features/personal-workspace/goal-loopx-mode.css index 4ba2f67586..6852f7c918 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/goal-loopx-mode.css +++ b/apps/presentation/dashboard/src/features/personal-workspace/goal-loopx-mode.css @@ -122,7 +122,8 @@ li[data-check="blocked"] .goal-team-check-pill { border-color: transparent; back .goal-team-comparison select { min-height: 44px; padding: 8px; background: var(--pw-surface, #fff); color: inherit; border: 1px solid var(--pw-line, #ebebeb); border-radius: 6px; } @media (max-width: 640px) { .goal-team-comparison-grid { grid-template-columns: 1fr; } } -.goal-team-artifact > header { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; } +.goal-team-artifact > header { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 16px; } +.goal-team-artifact-actions { display: flex; flex-wrap: wrap; gap: 8px; } .goal-team-artifact > header h4 { font-size: var(--text-caption); line-height: var(--leading-caption); color: var(--pw-muted); font-weight: 500; } .goal-team-report { padding: 24px; background: var(--pw-surface, #fff); color: var(--pw-text, #171717); overflow-wrap: anywhere; } .goal-team-report .personal-md { font-size: var(--text-lead); line-height: var(--leading-prose); gap: 20px; } diff --git a/apps/presentation/dashboard/src/features/personal-workspace/report-download.test.mjs b/apps/presentation/dashboard/src/features/personal-workspace/report-download.test.mjs new file mode 100644 index 0000000000..01227ceb49 --- /dev/null +++ b/apps/presentation/dashboard/src/features/personal-workspace/report-download.test.mjs @@ -0,0 +1,48 @@ +import assert from "node:assert/strict"; +import {test} from "node:test"; +import {downloadReport, reportDownloadName} from "./report-download.ts"; + +const hash = "abcdef0123456789".repeat(4); +test("download filenames are bounded versioned leaf names with inert extensions", () => { + assert.equal(reportDownloadName("reports/结论.md", hash), "report-结论-abcdef012345.md"); + assert.equal(reportDownloadName("C:\\private\\CON.exe", hash), "report-CON-abcdef012345.txt"); + for (const ref of ["../../.html", "x\u202Eexe.md", "a\r\n\"<>:|?.js", "".padEnd(1000, "x")]) { + const name = reportDownloadName(ref, hash); + assert.match(name, /^report-[\p{L}\p{N}_-]+-abcdef012345\.(txt|md)$/u); + assert.ok(name.length < 110); + } + assert.notEqual(reportDownloadName("report.json", hash), reportDownloadName("report.json", "b".repeat(64))); +}); + +test("repeated exports preserve exact Unicode/CRLF bytes and release object URLs even on interruption", async () => { + const original = {window: globalThis.window, document: globalThis.document, + create: URL.createObjectURL, revoke: URL.revokeObjectURL}; + const blobs = [], names = [], removed = [], released = [], timers = []; + let fail = false; + globalThis.window = {setTimeout: callback => timers.push(callback)}; + globalThis.document = {body: {append() {}}, createElement: () => ({ + click() {names.push(this.download); if (fail) throw new Error("interrupted");}, + remove() {removed.push(true);}, + })}; + URL.createObjectURL = blob => {blobs.push(blob); return `blob:${blobs.length}`;}; + URL.revokeObjectURL = url => released.push(url); + try { + const text = "# 结论 🧪\r\n\r\n & unmodified\n"; + downloadReport("a.md", hash, text); + fail = true; + assert.throws(() => downloadReport("a.md", hash, text), /interrupted/); + fail = false; + downloadReport("new.json", "b".repeat(64), '{"revision":2}\n'); + assert.deepEqual(new Uint8Array(await blobs[0].arrayBuffer()), new TextEncoder().encode(text)); + assert.equal(await blobs[1].text(), text); + assert.equal(await blobs[2].text(), '{"revision":2}\n'); + assert.equal(removed.length, 3); + assert.equal(released.length, 0, "Browser must consume URLs before cleanup"); + timers.forEach(callback => callback()); + assert.deepEqual(released, ["blob:1", "blob:2", "blob:3"]); + assert.notEqual(names[0], names[2]); + } finally { + globalThis.window = original.window; globalThis.document = original.document; + URL.createObjectURL = original.create; URL.revokeObjectURL = original.revoke; + } +}); diff --git a/apps/presentation/dashboard/src/features/personal-workspace/report-download.ts b/apps/presentation/dashboard/src/features/personal-workspace/report-download.ts new file mode 100644 index 0000000000..78a8afebb1 --- /dev/null +++ b/apps/presentation/dashboard/src/features/personal-workspace/report-download.ts @@ -0,0 +1,25 @@ +/** Keep a saved readback recognizable without treating its ref as a filesystem path. */ +export function reportDownloadName(ref: string, sha256: string): string { + const leaf = ref.split(/[\\/]/).pop() || "report"; + const extension = /\.(md|markdown|json|txt)$/i.exec(leaf)?.[1].toLowerCase() || "txt"; + const stem = leaf.replace(/\.[^.]*$/, "").normalize("NFC") + .replace(/[^\p{L}\p{N}_-]+/gu, "-").replace(/^-+|-+$/g, "").slice(0, 80) || "report"; + const version = /^[a-f0-9]{64}$/i.test(sha256) ? sha256.slice(0, 12).toLowerCase() : "readback"; + return `report-${stem}-${version}.${extension}`; +} + +/** Save exactly the displayed UTF-8 source; no network request or owner mutation. */ +export function downloadReport(ref: string, sha256: string, text: string): void { + const url = URL.createObjectURL(new Blob([text], {type: "text/plain;charset=utf-8"})); + const link = document.createElement("a"); + try { + link.href = url; + link.download = reportDownloadName(ref, sha256); + document.body.append(link); + link.click(); + } finally { + link.remove(); + // Allow the browser to consume the URL before releasing this bounded copy. + window.setTimeout(() => URL.revokeObjectURL(url), 1000); + } +} diff --git a/apps/presentation/dashboard/src/features/personal-workspace/team-artifact-content.tsx b/apps/presentation/dashboard/src/features/personal-workspace/team-artifact-content.tsx index 27354047e8..f97d32e301 100644 --- a/apps/presentation/dashboard/src/features/personal-workspace/team-artifact-content.tsx +++ b/apps/presentation/dashboard/src/features/personal-workspace/team-artifact-content.tsx @@ -1,6 +1,7 @@ import {useState} from "react"; import type {DelegationReadback} from "../../data/chat"; import {MarkdownText} from "./markdown.js"; +import {downloadReport} from "./report-download"; export type TeamArtifact = NonNullable[number]; export const isMarkdownArtifact = (ref: string) => /\.(md|markdown)$/i.test(ref); @@ -22,10 +23,19 @@ export function TeamArtifactContent({artifact, label, raw = false}: {artifact: T export function TeamArtifactReport({artifact, zh, heading = artifact.ref}: {artifact: TeamArtifact; zh: boolean; heading?: string}) { const [raw, setRaw] = useState(false); + const [downloadError, setDownloadError] = useState(false); + function download() { + setDownloadError(false); + try {downloadReport(artifact.ref, artifact.sha256, artifact.text);} + catch {setDownloadError(true);} + } return
-

{heading}

{isMarkdownArtifact(artifact.ref) ? : null}
+ : null} + {downloadError ?

{zh ? "无法开始下载,请重试。" : "Could not start the download. Please retry."}

: null}
{zh ? "产物版本" : "Artifact version"}{artifact.sha256}
; diff --git a/docs/guides/personal-workspace-user-guide.md b/docs/guides/personal-workspace-user-guide.md index 360e53797f..3f747de6fa 100644 --- a/docs/guides/personal-workspace-user-guide.md +++ b/docs/guides/personal-workspace-user-guide.md @@ -654,3 +654,19 @@ background. Opening Chat or explicitly sending a message still prepares it through the existing session owner. ![快速导航:中文窄屏](../assets/personal-workspace/command-palette-narrow.png) + +### 保存团队报告原文 / Save a team report source + +在成果、对话或证据视图打开团队报告后,点击 **下载原文 / Download source**, +保存当前显示版本的 UTF-8 原文。文件名包含版本摘要;Markdown、JSON 和文本保留 +相应扩展名,其他类型按文本保存。下载不会重新运行 Agent、核验或采用报告,也不会 +修改 Goal。它是所读版本的本地副本,不代表后续版本仍获验收;报告读取失败或失效时, +先通过原有刷新/重试恢复可读内容。 + +Open a team report in Results, conversation or evidence, then choose **Download source** +to save the displayed version's exact UTF-8 source. The filename includes a version +prefix. Markdown, JSON and text retain their extensions; other types download as text. +Saving reuses the existing readback without running an Agent, invoking validation, +recording adoption or changing the Goal. The file is a local copy of that version, +not a promise of continuing acceptance. If the reader becomes unavailable, use its +existing refresh/retry before downloading again. diff --git a/examples/personal-workspace-browser-smoke.mjs b/examples/personal-workspace-browser-smoke.mjs index b6dd207836..c81d392fd2 100644 --- a/examples/personal-workspace-browser-smoke.mjs +++ b/examples/personal-workspace-browser-smoke.mjs @@ -1,4 +1,5 @@ #!/usr/bin/env node +import {reportDownloadScenario} from "./personal-workspace-browser/report-download.mjs"; import { selectScenarioShard } from "./personal-workspace-browser/shard.mjs"; import {completedHistoryIsolationScenario} from "./personal-workspace-browser/completed-history-isolation.mjs"; import {researchWorkerReadbackScenario} from "./personal-workspace-browser/research-worker-readback.mjs"; @@ -97,6 +98,7 @@ import { conversationStartupScenario } from "./personal-workspace-browser/conver import { chatTodoProposalScenario } from "./personal-workspace-browser/chat-todo-proposal.mjs"; const scenarioCatalog = [conversationStartupScenario,goalDraftScenario, capabilityScopeScenario, stewardGroupTriggerScenario, conversationInputScenario, goalActivityScenario, conversationActivityScenario, navigationSortingScenario, automationCadenceScenario, chatRecoveryScenario, composerSessionAdmissionScenario, attachedHostFollowUpScenario, conversationReturnContinuityScenario, conversationHistoryRecoveryScenario, answerPresentationScenario, loopxModeScenario, teamEvidenceScenario, managedGoalResultsScenario, typedActionsScenario, teamPlanScenario, stewardJourneyScenario, executionChipScenario, stewardModelSettingsScenario, progressiveLoadingScenario, workspaceLocaleScenario, newestDraftScenario, larkCliMissingScenario, executionServiceOfflineScenario, chatTodoProposalScenario]; +scenarioCatalog.push(reportDownloadScenario); scenarioCatalog.push(confirmedOperationsScenario); scenarioCatalog.push(proposalReadbackScopeScenario); scenarioCatalog.push(goalDeletionScenario); diff --git a/examples/personal-workspace-browser/assets/report-download/desktop.png b/examples/personal-workspace-browser/assets/report-download/desktop.png new file mode 100644 index 0000000000000000000000000000000000000000..278632783047a03c974fcb428798178f5194d43f GIT binary patch literal 115969 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 H2SWb^YT_-| literal 0 HcmV?d00001 diff --git a/examples/personal-workspace-browser/assets/report-download/mobile.png b/examples/personal-workspace-browser/assets/report-download/mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..78b2fbe7425e1970c221f3f36ee0f7de478b2e0c GIT binary patch literal 43412 zcmb@uXHZn#*Y>Fb0wSRSkqiw@P-2ra5(JtcA_fpaa!{h=jFKfcNS16sL4xF*1<4=+ zl7l3Pg5)rZf6X)VzEe~0%u_QT?z>8=yXmvfK5JdqZ(WQEnda72P3Do(d+BcwmI4oIoIy0epkAs zcz;z9R}Z16C~uXML-|gxs=B)R=&1JV>4w+#Iz=kZBK-pW`jqn*$8H19?$uGj=M#T? z(u6(PdrF@Vhm* zYOzp=KdEtxF}eAG939lYE`UUMSKkv8qWgDyj`iO(`<>JgpJ)WjAqAd3J1WcW(G}%} z&~(*A{>)I*&2kq*G>gPsY{1;fM8wBscn`QHpUnQxyFH zQ=8j--Gq*^@pXt9|fiz&+uPx zY8F|tTCw(0zNcPGms>chXB>~+GSJ1@3#jqrK9NI>|G@~l~P3;8FM)l3bMJqobo;MZhVC| zR&Lh|ZwkC}EzNx)$?s}^s<@+$!@rfGfcw|D9$Jr;U7a5WDID^;EFZz;BOMSmP6Vj#Ju?(CK^K}0F%wOKF`PW8gSAi*diG%;xcQ{*_ zl;ti38`_#mwF5ox=9Soe;oRm zueYYB$DmVTKl3W|<_HCga*42Jnv|^(I#|H$`{sIk4C_;`t=p`Ml;km3A(zz=*c=l@ zw9@r(W7x9};A^bDVp!8hHsnNa^R71Jp*pN~2;AipRpU5cGR_3qOWW1{quL^RKiv{a z0Us3TAmG?5z4s*d-n%lJv7gnhb`*D_6W1rIztWM)9`lc3(q*LY*o;>=Sh7h35+esp zJ4JLOdGF`mYZY_1rC>YWoAQO{+UMWUBggr6Beg`YnflsD_NR4T72-eW@%Z%0@(?Va zLR2tWdqHfWbH9>2afOjP{CAj@3_?llQtNiwS)<%O$85VSw!_m}VbRM-Rd=|;MQ1;h zryHBo@wHb*P5xO^0O5Ue?J`H$!Cx`4?A-SY3>eI2-Vu^21YNCk-)66@?ax-83+2px zS}&t*?R)a?`by}#n+7!%o)vv~v&s~KU2i4Jy$=3nJi)>Z{IS0FAb~sli?61c2=$T)?%TgXKq?)HwM8+T>qe8A~ z(aGewiY_PVoOy#PYxB)Z8e;AIknVE`xBP=fipYac_ZLp(rrn_^C`Hh^6X~O0Am6r> z-_q%Dr$c51Bu1-cd0yw%iDvvaAFFw})M`>3?~>3Q>P?NV-cE>@Aa7`NM8aavTfsZW zSQLi5oW$6oDRkno-;Sw0{~p~vmE+zt>FRR(*4NimNGH2_CJ<4HzXv9buyJ^G?wy-=Iy(i}uw!e4;WU7uBDE9*k2rAdi* zev4#qgqle)Xq0t7Js-6YDTIV zhE0(Yw#W}W(_dAnZAOa&BdRAODrM;&_oPXWN%mfA9nrxeNL^`Eg>P=kKL44=o*K

(5TBq4AkU)0A9l zoAaD$JZ$uyYl{#MNi}R!GM^3kMBN~Jys0pkNINSt*Y#&C?DEHEMKR~QRC=?oP&4

a-?IM1$x8>eweCqd}(l{CXh@=S~Z?KDSwr{Fe}JyYZl#t zPFZ-9qeC+JjEIW6A!4f4?@6_b%^$AOX~~Tm6O$Rk%6cSHGIZMI&rf2D9cU~g*ed5g zvx(FJ^2Kd2xcJ21W_XIwG8V60W`{C9N?B5inh#*wp(p&XVdT!ZyEazNG4g@wcAi<7 z3dZ9{<34qdZMuv%Sr~k~SwG8*71T$a3f~1Sdej--C((*ni^itH|;J*f{S>qKf?7DD^;FDTaV*~ zjj#`GljH?PbhRF)qm_;vZQYmu?S%P}%^0{%GvfQbx=JTsJ#F-nKvZfQd|P>d>^ zC6MdDvf1F>5&V#9B)-Biee+>ni0TW@@lN4Eu@SSDkaj%M2X$WVtXcF|^E~^xdA_Q| zuq^o88f*AP(R;b}+hrOy_P7;^I8Lpshxw1$UxoO*)Z+@4eCRoj94XIBVa>(V;hcp! zU-{^V@ZOtn4NVni6Mr#ZXdK|<{wKQnB!Lp?KoIL*u*bADgd z4D1{HE-v`^g-6l~fAT#$RY66hHAaVD_=fxKTSDv3XbRIfUO!vy8rS%a$Yem~E2SPc zKVpmbY#HWp3_?8&-9t*G7o!)AzBOyL2?hmR0OY z&fHGeDJ!ra9OHDW_c;j(Pt*nI8q6o&JX+}UV{@LeGyRuW3F<2 zpUWe*J#mV~yDIo}ivxaqkbVf)xO(kofcZR?zd?$8VebxFWW}FUh941(!YE3?+G_+` zsQ&p=P(N8{X4#Fc>FGJlVef&M{27;YE0ih^E z>D`ixR7#z4m}^7obSDdkjWj&LqFB(?^cOCCWhrU z%d;yt!f|Uo#>B{zxOD}NQpP}wSMhczB70?ytUY{ z(EFJR!FST6I_@+7ys`R}=ZUlgJ#PnXS$mx>9}}WgTngz$LOyMfK>fzew^hC%Jh@}g zeo5_zR21^DEVUYeLsWnQcD6Na@npgZ)u^o4`1M@?*(u74w?nL6KsY9-HlgeZmW-5p z=Fc%9IjW&GRn}JqECqqG;_o-@Oo#&g$`^selUrLe%2ABYOuptungkw6`9d=Rd1D}S z!nd=pY}nYe>VpBu{+njhn67+d+y@t3<#QrounZL+@$ZTBZlbOZm!oT*l;eW>dq)3w zLAFs)hU^Z_J|Rhe)_&wt5XG`<+|qP$ae`Q_*s@_#Z9jj-Fj@poD2xVv$8}8kiy_Rhh%3Y!DgSzWbXqjkdur zK2w65Vb<4(k0I<1bNJzKRwQ`h!lyRd9T#xK{Y7tO~&$mZ&$JCWa$mugp2#LrcYWsjh{MjnEg zjdAUb<>>vWm2I8rssDg8oyGWSOk5ses3&H2Kfsb3(;9ZYyce%=V%lS=7YCo@NwF!R zphK$X5&h%IXJCQ*oV8*z0zsCR6Zwka)_87C%cXomZJt8o;!sbVma%PbouvK1b*MNt|Bk z?A6+>HafXs;@u{dy-T*2r1!SQ4OS`J1bd}S3Iv%m?`RBQsM%zGl7BdK?dLu$_yO|MycHshs!;7)~h$L<;B;`ds3GtNGfk)m-1#OFF3V? zAaWXt%%Q0BF|NQq3UIp{DxO_*)SyEbCu}=DV&EI#GQu3GNJ_gkViJYe8nup;v`6rc zCYWaHP)oXSyR?bD4!SICJrb=eB`NI-9<=&(%In94hK=9`*NSVI7^ye|)Xb zPHd&n>-BkItoWRxSs2+Y_Q=i?rySbU7>As|#_6QzM$s)&3~?!_Xbpz-Nz3^eV^2N zI17lmvCLoSxE0lY8l6<;f$Ma-yEf)2Do-0i<1ui{)N5DV@L691ji9;CyY{z|dtfu8 zBBS#aWfJ!b9u+Y1=7JAwOFHGCxc}9>8>tW!&Cx`$Hu@ER*$DsU{f`aGV}4ta=`1Zc zYCDb?*Nd00ShYtZ{cH0*bQZ#8`YrK%n zFDM&Dwt?_TVsJOZsCWRHJc7n`Ctb$IYza#E=ZE=O#i8m{dFr@W{7`7RqYBS9gaJ3@udx_!025GzsU|Chcf| z9|z5(vf$s%C_4D(?fV{=S&Q3_i$yL1o_Y%m@aQ4DhuY+oJ{Mfk`UqG5{& za$6_`M;otM2lgFw0jESDmhN08ngDW0>)KQ7>XvzW<8ElfimJD~Os@I&Q*ROrngXs_ zYUF#A)Zcb!%18hHe3Qw!^Y(CM=(GFZc{$UV;hwjWDV#{TSGZobW!9tAR+9j|?$AG5 zuL~p0*UG+3B<;C7@8`SIugrbkl_y-MgyjR02%>WUoRU)W`{6zD4kc&XWLVb&fZ?%_ zWHH-9xTU>xQ1V#f+U`vtE|o8S3&dPtYLw~oU1|gUW=N{l0ifo0drY(58c3S27QIR} zeR=SlW$TvF4+_B}3q~V}AaLSV@kGLu_nto7TZP=Ga9wb9#yhVi?-m=kUO{yzlIRR` zq`9$Jx)l~{c{gHvY z*<_7-%)-W^j8 zIv1^F5THh`bs2e2=h-iB)*JreEVmTx^~!B;>mUSnn$}UdseZRM447ZfGuy|B`91pb zB=>$UdH*}_FwJiTF;d3vr^g2r9Cu7#UNN;@+2lswk@8ufm!j= z7jS$^Ap~s3C_+c0RD*yF>t7`uRj4@2w>Wk&F*e{c0gZ=q^buVt3JtwW&>~_za!b?P z{N_%w%3?wNsj9C+cywnFF&+7zt!tc%bZGRqCfKOwRs`s962U9)qoa*_hlH*}1joP- zq2Ym(-6qi+hJD@^Vv*;Aj}QXXrR!V z4O$h5u{+-1iV)l?fARY}n3>|(U7nr-I%^LHeQe-}prL?Vh+$|Vjp(aLkUJGKmua5M zli#C5DJpc>q@0bdZ%Crb#&7UrclIycAF4Bz#S99}n6X^sCJ&BO=Z_3$#Z)~54utHk zLl*2l&e4=PXyIvDAGLmjDvmaYeR0*#q zYP}vjgnO;Lo9Y+huGla%R-%6#qt8yGo}OvKfx+TRXQhmmt58?}vl_RIci^pM?aQVW zN6hVXsjO_z;L#O(9lY3>?){Q=NxdN@B#2Nh&ls3T5#8rU1@ChJBp+-ql9mZnO;x*Y ze5}k%?JfS$Ayz5>oK&1ZG5M#RK-4mEz;K?fe}A*vtoy;!dLQpL6!#khiP4jr$kO2_^57M0);{q{LydI#!*<_DBXPx9FvC97`4^ zQ1v@M_3UC~jdN~jWwpR+)$Pv`)yxBR_}HLEe%6*m!+g+9^G&5{I6;7P6SPmM%~<@| z#}ovMwc@Smg}01Z^FI1Q?=KsX z;?iZWDk;*#R=>kr#q^%pVYVfX|M*U-7{akdfH3angHKRPxAkvT$n7#z?ilbeTo}!& z^FA6VophTc7WF}~2C2+kvRB{XqR1@NUByAtVYu{+wcD43W230qL}Sh9CoCcd9%jg# zwn{GFagj3iEmyx4@v=J+o$cM>kO;o2!eP#u(8_0l1(<5+WrzFXw)aVPU+~=IpI1!# zMv0Enae|=*Sz-Bl!Lz^+f&WYkGxaL|*W<(gcLGUq^8~B7!?I&xqeQ%(UmeK*0!EQf zGmqHLKO7*z|8i`(zHqMtA<_pX;*yb(>zc@nN>NGTzC(YH^&1HSQ)RH7*viI6Uu6 z&upTOSdMxV?-IY{hcc^!0~-vct>5W8fm>9Vc$a=jlye(POMsy!4?B!X*SB+Tm-u~E zq9Cj_%TVUjnwOr8{~0P3_(k=ZK02zfr1nA+ntI?FP2&&aEQVBpOXxdKRj%<1{7gwy z!6CJi<;=MPufs}~)n))dpHbgQAwd~pne7)B*jASptAnBlTG?`)Tkp%;dCCzgE1<4tgqsNAi4&MzB6`lCb+CGO znpHljUHi}L+;2Ub-MfJ}q z52!8q(Q=sGNgZ!CD~$_cQ3#t6m|a2T(B0qq#*|c(B4}}Es?IyfCyt1cv*9M(gO9pj*}n%~<iHN^ z?aj?rJ%T}6*rmYvP?9i8Ragza2XCTZ)wA_w~haH5t>y{u5!kz!Q%lf#u2YaVmylDrvKS|@q zz4z)grg*n+5scuY2>;!9Qo%22LciD23Df{)RCd%KfhS}$2a_;dsd@|b>kL2(U}>JG zb;l-A(k>^l`x>7A#R3kUZ$>dl#+OStuTb8l`F6j|T6c9|XL(RJ!xa1kn`)fOo152& zCqoEW?xAjgAOqoTJ_BOIcpg1t3Z?t%U6A(zJsTocM&YtX2Z3>TM;gtCpal$k4$N3t zA^}A?JlkZx&illkC>Diz)%o$>J5>Nr8aXg135S8fh}rme5D3vo7Qp#G0TPf}1nd=I z13VvBIo*gjSAt+8Bs_LFX}@36U>V`bRvmn=@pXZS>pu8f!_S!x6&z(<0=7ht0&hGY zE&dJi^#;Itm{mvuVlOrnfHXB{g__u3wCH6(UFj4DTOtE^we9pMz-*(BzO}R=^xPR)sqCg z_h*9P5|YFn+3#6S-Bu=et3oXegy|vneEhy%WDk@HM*Kx&Lj4L{6GbNYL?F7S|MU&i z9W2n5Sx;%iarT4nsC_=niyPwVpfu^MwRmB>4q&b7o0~Kay^4h>^t3$-&K1wS^)+4- z?4RKRrhyfe5zmd#4n@bKvADVkCF0KT!Es2UB9>=$h(AQQX)`C-INzy9@Y^{EVf z0b_jYUDyGpXsf|W$HfKxJ-lVt9UEskOhTsG8w-3VhyW0!6?XnKMD@r$f4p5ne8sYv*T^jr}#Fn z86?XhevC`Yy#+b3esb*&`pVCJaMjcGfZze@ zc;m>Qltnm;p`Hx$-eHw^}gY`bnE|HpF^m z;tvN)G{N)l6{8c?u2U}4Y<2!;yX54qqjk5v(pZ%v@4mN^KfHaFkSOQy%_D=Nd}6sw zVl;)i_8gn^;Hhow*7vuOw;ilmvm}WRjJ!o2)4zvtxKMWANNO6E8V2@}F{h zw71ni&K$!fMgR~J_R|*>$kwj$HLJLw_@XO zcZkWb6De4*n<}|l^CopTzn@7OYLcc|G`Ms>gH(G|@lqo5Jr&dL)nd=m96Y09BGb#( zO(A}r61Labmsc+}BTe)gcCE5Z^JvyKJrbRM8Nn!XU+E$a2k}U$2`@eF_J!#O@7f1h zDPCd&S~7%F@6%PpNV!bCNN^8x41W<=f_Tv-W>YMiuUGEE@ur{k#b;_7x;~qc!k6#u zQg>d~+IRG9%+A|XzEvt>mN@nWif;3QFBxuKBih(UnZfKe3F!LI zlULK__yBoXYRC)pWI2(0dI-drngdNc<#WX2FNL3cS>u_=727_9mSPgME;PSDOlCEU zx{$Ka+pqpJW-5i+RJcEuD2LSN$;KMJL(AE`SPRq{$z0W!G*o&prpAo*3Q~Xc6P}C| znS4{R_9R-1y4}Y*z%pXLKuoP|MV`}Eq#|^!rM%RCI9Om|w6KThz-POG3=er*Y`r$( zL&HvxL9i5>V*A?7`vklC>>H#^GU|2WI}vw@*BW}LKL}0_Xwi6f$_b3_5Wg5|BQ&Be zU!$Lg48;<;kPPk8xjS!W=`iMdlT!%MESGD^lmaak-($>5n55ha9n975vZYdfPD~_9 zlGzZZFi5;X8rJ5pDK4zYJ1Nqv&Z$5$W8W4|vr&P!!;EvCpYUo`Tt# zZ*Tf*f}rKmZdSrY#+6-wO5LvY zgS1-px7dAKY$0zENPPK7A^ie;%;gyyPlF~NOj{*_)_)QvQE#Gl1WSUz%&}vzs8v$e znbZMBvHZ!Dk_n>l=+&S%mHc0_eqO_=2rFA8|Fgd}r$m4}Zk(uqFlY$MDL3bTZMObz zGot^)>h|$iW#Nn3O^#1DyntCX06ozaN*1w6 zX4gmt;;Zz7!76Z*@L8Xa1&r60v|vN$LsIOST8hXT;58AuN$Y?RT@~yx1c*HM({E_A z+ZjPp^Pt{y&z4oOOMcm=-tqVM^D$q$p5;^Qu84dK_xb=^1T{Jfprq{CvE$Ov--Yg@ z77EP@K0f^_m_rJam&iQ_zWqHQ7HG>*uJ$6RHX(F!4kk94`P;WTNKXYKSj-&~cyE9s zoEKZ7=BwK`?pvH$9V_2}a95jq_%JAGzy;Ry?#Upu0k=?b>)g600s;tTo`s{MATw*X zdnDoC?!VtWGH!kSZ{>3V_B-)mCd4=0Hfr})|3cL8T%BOKU07-$pbPti^rNQ5WQkR5 z=z{%tI7PO8t;dj$Zk#v7(bo0kTTo3mF`!qE~1NNTGZ`4#i2%rso`2)J3~C&i``J^i_$?pM9^aAr8As7PdLq?+C147O zr9J-Sm#=`y>R^qM!h%TmJDl-odv7P_D#omG05tkslBkL`L6o>Xfo}@N0q3_Q;2+Bc zE=-qF@Q>c!blG}Pv0Rw&#V$?l5%7ngf?PKy88*J!&onXl9&g2J%2P@F^&x zFU^mkslto^h7F;qfu~{;I|R?$e(ZzP?aS5v0Kcw>sZ3Q4@Zf2o|W{utYs6lhm>z;00EmJS+FpuuiaagsrKKZAu)vvweuBkxw zAz>xuy8Z;_phvrFdf;jAhd+ZmxH0&Fl&*em4*k`%LtbhG5_hnL3&BHzx65)Yt_rP; zj+*0|V^NNvHKQ*N!Nf6!Qe$-V2NKaHBup~nFuD`68eryv(Oc_>=y@e=YbdwW^jRET zJ%EYH80H)>+~>RA+Nr@DtpR(iraWM1OB=a%S@lP@aum#wfV_KbPB+2|IY2ptKqQl( zaYZN^6q**xU*>&w zDt@u`Jo;R=7X!OjZgHvOU7>_nUuks=t?)Clf+D{a#03GlJ3f%zdVuUcL01RI3do08 z$|qhDwbq(x3dFhMy7uduwTCnCK%Gw)aW3KFfG%# zt@XEGnQ6-x*0Sbynk5uEm~u5nBHp9BEz04}iyU9~2uPi&0roYc5&YFmDp|wxokq$} z0%R7c5f+8*vrShPi;l7;X$xhC6tQV)Wf|<_qFa%nXW-6RI_GRJzGQA{Vi`?<{F>8s zd!-zenp{q50n-o%^Ap0oy0cSH13(FH^2!|8S9NX$g*)q^H_64g+&tzLrtHeqYtPQK#~sgUE|5Ofium)tQZ&$(a8GL>|J8ZdF>Tj z8y@10Hh{o(`tOXFdTYN*ab#@4ZNk{fOf~XK&FZgGF6}#F+$HSrTmzL-j3QGkexwwl z64YjnKhXyjI}~+8p5R+Joh}C#I>$5Q)7?9}RH^^P0)k=p3KA<4VzM%>tIvLTGUxw_ zpIFp-q|mQ{hm(L<`$gLU&2aTbUD!}oiwDd5gMBf9@eg<2vgG%KS0GrhMipk*y~rV< z88R(EONs5iFs_584-G@sMo2^>n|>M_08-z|_!s&wul%O=`)~&zoEZbz<;%8mn0RiQ zmq?;c1|5}X=8MR4tusRFasT68q*ttu!_BO4d?T4**#J%KGjaa0p*nBRuCQ*Z^H5$F zjGOZ>@!n{<5_6%r6XwCDC8PDe^>h`GXSh17@T%h>vx!Y=y2j=WsQ5B5;({J|SauCs zy%_+D@r z%4{bdL#9QU$-4w(=eiBLkCuHJV)u?yf89>wEne^QUV^^=7ZyUDGdEAsnSF!$8`Fm3P{js31aJq#OF_w;;% z%woXiBsRc^8^a;}x1AM;Ej!zzujU$hJ*ob+4-}xhza{bbWgJz zuR#sB!_)}=PfPA9s0e@3%vBI z6Ef`b88`M;hPW~c0luxjfMyEh+Cni04Xq4z-!T9bZj1J4BPfuPuIo-4WM{xO*wquG z>o%bUl)wZe8Gv`0tjK1Qdn)t~pgN4-z40IlBnSzlz2C4!wkp@>t>B)nYJW8rF~a7Y z9PJ4T;MPh-Wn{p({wgyZBKQg6ftoVQz4eK36a=?j3p&hcRal&_8&1FqctUm!NNZDJ z1|A#_SU3Zqq><7K19@m%h3U4Xctlh=8Yxsmi2w*8x|QcsDFv1Rn6Hf6CUeh6h|!-% zLB~u-+I&YPH*0nV)YKLEH=!0)0ilv}Z9ZL^kh&0n!4{i$e=j20ZA60RJJ&fn?Hh(f z;(b@S0lv<4J%D2hA)LsJ8@`*3_<)HaKW7Dt0wX?HZ=+NuXXCiU*}TW4E1-MVG~MsK zl?Wt%@bT_TEZkc_Hr3$z4q-7dwwt`{!>7d`;IS9E2T|ZyhfC$aEnyKElLptgo;1-` z#Do_re}$mK?s9J%g$%!k6o5jP0|;l(|A8KZ!eDbW(`8`k&Icw47LR)+mRgVN{t3Vj zB)#@Gm-@5UV*5a5J)aIRy?30N{X*~w=*gAk0F*24T7DtLO-IWr?k$%GsGPnpT|}y56*GD$&;O#lPf*URX}LQ8b;_ z&O2&r9Bf05$q`=dzTcrf6I$~!%|V{nHNKme9Al`v2v;48LZ=vRpbj9FLGvy0#rRXt zHDU9M?WSYj-o=O;t2fX)lszuD?M9pZXU3nm53@oF!ar#%EE2_le_!!Y2HbGp8y5e` zhR#>|>bqXKIQ~7S0WGtOkcpvj2PFL2_c(1@&R*H`kM_2p2Y16ucL%idD7Hno-To1PD2bJHwcS`!t2#`^ znHht#Re3MZgFEMiUdXZmH38Y(+Ndw63#OeR*PXj?Fo`I_KT9hy#6kHhthX#F*h5%- zAkx#caD1?>J!nv+>Zf6S9<-I>c)o1lu&1(O&2~mNf!AS3gO>0%)c?D4b~fjwZNXFK z?!rXX!#L)%yBUv*8AzS17t#7_-|NgcRwQ=k)!A9kk_Cy~>7PHJ)~DVH26y2Qng?H9 zhO)Ox($ILX*t8=f>be&Y^|{tC(dR$8xyfsBD0ZL#-iyFUTp}VLsZk7#u7Pp}y*xOn z6wYy+A8q_ z-ucja@S)TaxXc!sK9J^VzA5G0{h;!;+_?4B_ru0lSh1Mb@tEB@>7Pv zleBJ0ckbnux7!~g z`k>^bks_qgBeq3OmA}Wh^02n~>`9L3yGI8p!v%@>Zy*8RkJTb3AHcQUT@JXIA*O?R z(hCN|FJM&uc{1c@;=yA-q?d5woIpa%YFFQjLP4eo$=1RYaGi!eWH^!1xW+a8u(=H* z>(2BJ!P*~Tn~mT3t+v#zdp@8;(2Xc+!{Fy}XDuQ2eJNiqfAyL6@{4%BGpDI}n(ZhL zR+Bl+pHmesRvqnkN}m#4O(h%`>0a0VI+#A$6!wAi&PkShtfpw!VXi}EyzKk-`_WN4 zvL{@Ru%GJqS*(7gf~r+;y%ZucU+^pQZa42FR?F`A?25Bt^UgJj$?oV6FJ^w(@$Rox zUK)B@>2UHlsX4`79dl3Cx=HD{<;Le)v75G+CSvZ5i=r^-i}$3?B37P!-v06Sj94=b z={q56-n}xMb2s9V=GxP+3C%aZeeZoLx0^UV8awkf=U}$?Uu8@Go>;K*I&`DR>#(ow zKp~CIUM)dwFN;#^HR{H%La!&Hr?0%Zv|g)gdR44^4~$*ZT)mUbF3EQAsU{9-H+10t zt0j`Iet+(4TkW$BY3r9^n=kpA@+$>)pJJ$0V~Pv|f1cE&6g#)oCD7@Ir7(vQkB5_K z1)^?v+&#=Kxbk!9#oS7(ey38KMs(h$NrAT8_Aj&Yrka=eQEN}ILi)Vnq>RDz+No}# zWN%?Db9x?*SLbqFzthDqvJ&I5!8jpucD(gg@A}oQN6UD2fqx$HK9MT5oBGvJ`CY~) zAmnkA1Cgjhy;$K)x|zw;c)jh)g1C3s(AjiLni&^Io#sLO0nS5>!}gyy#E3H?w#B;Q9)hE7)UqYXId)~3uI+NHQ zb7<@ez=ye>?(?!L{$RnpzPze0jn=I?6Se4S@olxZ{7nQ;=rR;jDKC45ZX z(FM=8f|yLa`Xce_r8Osi^^_tt)ob58KVbc8y+zJm{u$pO!RctXlxxx6z!ASBZ_>!C z$@FZ4cL(a;WT}&Bs8V`SjoBpM$mjh~ZCWG?@qbQZbJ|nZZcD|0EPr3${;eouaLI7CM5n~EpW!nb2CHbn*3{ovU%#}k zj4lE+LKW`;lB;gJ%(zuGn)xLH5kYc#a{HU?O%Nr7NJYwwowEOL_>o|+8?UCH zAfJpxuf>7>{%Q-9vdjOaCfhOy7?{R77uq>2fCY2}^8{3J6l*!nBE_L=PIB^Br#(+@4$!G1}@1+m^lY1;Bh;iIpIg-nsjl@&*jFQvmZ>13v?G0@50?!`9#tM+k7P zI^X5|=`1@7M8@nNm^AyUZXAVulobR#=v%;+z;7Q@6bKhDLv*Ffo`D_?7v#2s4*?n8 zMq>(Oey2xr1E}mQNKbw=?d35b166zl`qgb0o?nB=M<)c=3$#B(B4RqA2cPRqKXO-^ z>_Y%+r;sp(PntW=e9{Qxl#y{g%mZ)Ed~4?|1PNgs;!44wZCj+dx8=veZ#p0H8{Sr$ z;#{&lMbcvfaQP_<{dTYOJpQ4Gn>YX#08&~%$9anA4|mt99T)GEZ-Vgrrg*NC*_G_U zvBS5l$QJV7g|AB8=W>2iOn>POKpfRINlUT#T5bk=>MP0jL=bN=X$lv82%)GeXP!Gt zFAoIJ$@VG(Fj)mOku2-$L-hocMF+>(*8t@LCNsPkrAlp!!Izh1Mk#wJN9E)l}XB`PsGYF-%MseJzb^TH=RqoR4tb%SpW!j1Z11y(QVve zko)*E)B*q*<8YSkM#AT#V<<(1uSAwt7yjqW5nBF{rGi~(aukeWeGv?V< z5qVnc@h1E{gDzGLvJX+hj)PjI_P2T@ zN1M&0m<0xDkDV~SI!^HVa9+=yC?P;zSMoJ=zXf$ihvtO-ad@xs?G!cRqxrPc(<3{( zG|4tUa%l)Nb!9k215?9b;IAf#mxY(7BJ4DRreF}#XQT6e!sIRW?MqeB1lM7=D(}%S zhh5`R+KH3#_W0#^>#Ylk6K;Hm(%@hJi65*anZESR=O^a3DpiaCYjPURyKpSGYb7S$ z(P6WK2kR>3vFM%YhKiS{elD@Yp9L&rA`hE{&_RL}c8}(nv2RPU0k>!Cg%vZWjNiJV zYmErUp8%i_8-RoPgDql(=|4}%OGPgNAMX?Pk_E1dKL{tUuBl`-T)!-ux;aFtjb5@kz9r20ip zn&wj^5erbK^8Kp6#_Ex@Cg#NTAEVnu<=~XZ+s9?EK0?vSPohsYH?Xm+(m#I$`SymBqQ6iFVkWirPJf0L_z|80jZD2v?$P)=DkU z8Wy}(Ij=&! zg^E}=79tf*$Hmnx#Sms3&%Q%jv2NcIzNI0i_(aMNBjOsD?nzb&_?*I10lBMN;bh6M zHAX-GP2`=n9DDAC^JUU}btt=NJsG;*U`;4FnRgG~fWM%8_+2JZwFW}tH2mS_yh}Wz z`U$ucZrNS8=}|Mo?E-7JBX~$*%tW zUa@AchR63!{5bXvkJ>uotKM^8b}WdBZ|Uj7MC05U(bkl{wo`ZosW{RSmnF?{j*=t|$=LnGj4z}-@zOQ-XgzS8ihhsTMpgU$Bvw@@E z4e|tZ`B$bL1%XV+-aFX2o&g8(24j3f`~8kgM6VhoEuqoH@EghRHj0&pNV{zssxT!( zUE0X6?wKM#O|MmcH&aC&JM5~2am-+(kaPu{gH zpTR(KuP#txXMJK!=J~LU1$s3~jS0>~zym-zP<{SaOJJNhkpP3N$%VT>cx8S7iVv{d z-Ry#}=ZLZ(&Ei%p`z)jFZ|@%xdW=GrWJF?lLnP}8X26_gysr>s=(>6tWRS6hE5@MA zx)S>*x5qmnLJk9F7!E%^8VLfuwg7)yVyWu<#Le!g1w7i51yAeY6lXl&)5-WTZk;~- z@(H+h2n%zsPSsC|k+M(wkK;Q+8qy6m)8rv^cQNn7l0CwAkno-?w@Y_OGsRd_7xqr` zbij!;6ec8O)~5=!6GHM7LdDT(-t%T~4C#39X9;hIjPWqh#kbxp)xY5kQB7Ao4_#$u zMv62XocA!LH!EU86-LX>N!9gx%hPk~6f#?89!x3kUqLhgytMQzx!0yb@fI1Zb}2zl z`dQi-tuq$DU?uboPc;&HF++MsQ*ULJUV=c#d%|BeApB?bzcKgb(NzEc{%A_(u+1{F z5y?C&nb{>pC4HofQ5iF4C{uz(Yk7Die6))#Zux|Fg`8Sh1;MOUaMD3-%dN3&s#E- zEM{EusONx(+S%78Gj3kSE?GMW4`W{NkK`zsX6bHJF5f_4345nO4YB%QIC0ygikvL5 z*zE@(-@5w&8R}l5f4{!Dp9a%;Wm1OW#O`mZxr+1)0P4%+L4pDO67V%XvHlleU#%~s zd2{;h+E2uDtMemWn?JRksrB1r73H%!2(!evj=eyAjpTwP>d#bQfUq@to5rl+3d>Gk+?{Ds9gv*i|(gg3F3U{fkx z`Zjm!FvFzByUN*>BIUq;&{6K@i7L;$jklNn{+@amJEZI0`xt*5*fpvC?kY{G^UISE zHE=yoliT~YDd7y>?5Dj{-)=G6DUYJu-6>rw^;inkf6X=WZ78qt*wtD3mL1t%Vt-0w zzwm3EXF`*Q9*HWA?s7BQ*}3p~mmswCZ6(R;lTb$_PnunqzW%WBb$XD~Eia#tvBofz ziuRL3Wat;JN$c^07uU{Jt!n~&JA5LEdO$eU|qGWu}Cu};t$6oXj zCY)~X%U*^nw;_U|0M-dKB_H8$e7GfWsg)aDfeAI}Q29!2-@CtX8r8v3Tu1z7Q)nhI zn`lk-{Q}Ma}Gf>te=|PSwF0xF)kzcJxit5sy?l! zqDxKo`+J#{V3I;pj}VRUdgjnS-Ap&?>2e_h_CHaA`P4BR_M2CjPH}I&J!x{_mmymr z0{GBUg2R0Ka--c`_sC(ap>ZDW5-w>g3mLRUGN3DSWtHAvpc+ZL6a{zLG$ zZH(Qy6tRe39`wx6hW;39ihwBlOMRUd$04g;I8`o698VSr!L-JQyYEsRq=Opf3o&p%ynC2-fyNAi;R)Zf8{E^y`?}aFw%Va^evKV-XR{@JCfiv zixTxHMF*tUCmV~2(Rf5Y+>E`n64UYuZ9D5NFpxu)gW&|d;bWpB;!ZDbX8$tBePtfs zdyf3e9pPbK7u`Jer_*(f*`6Z*Zu%onbqtotP+v@#FMR}mHuLi%uF5q-<(#E<&7nNK z`8Nk$Q}>8$!qmG2V=GCIu);eP7!GYXls3H^w<<&puh`}$DQUTJbM#wdZl>F)%VQOl znI3(wXFy~+qCF!~crZs$%{@z?U>Ec@qlhc`RIifmbx}tXi2)2i$yrl-Mq9a=2I?!n z_Yy_sl@Pn;cs@#l>%kgE__H3IPeV5Rw63u;I7%u~hsAO)-vizZjGQU+`&-FY-O^@R zF{`@$tc~5@aSQ+UZoLrqTOon!Y+_&c7cB6R410Hi32t7N`{j0-> z%<%>Xmk8WYx*ngu>RD4nIF02obXtynUcBbs3qOPGFy-oAI&dA$OAz~OC@suIR(ACs z`3y4dQk(6cwPY?T|Eg$71QHy44f^-#^7EZ-)l30+i0~j9zIa#RR_oZwHo+olLw4a8 z8F{Eck=paU-ad7*95eVmF!ROV!N+w{QK-L4dBlT_I!FFmd36xA*tsoPI3wak!ItCt z?{?_vh!nC;oLyLJbKbgJLJgDSs(+nnHoV+g_!>t2|AJJa7!B2)?FMCtGjQ(kg+kMe z=E$u%=dzTt#rJa!Tv_<=G^gY%f-HPJz8dP4K=ih1fz*bB@20eL0ocrLA%Kl6$7$*D zqF;|s0F2Q&YHg8NV~B2*%&dnG8P)T!gg5{ z#8hgZihpYX&?_|F`#h$t=05NJ>Sf^mU0&Z!UQ)}VTZ>NBZF)y>+2wsW457<8eybbQ z@xwL5?RGp1&Xd+}5`0Mc*~!nkP}g)cLcRl>Ie1N?2k-sF<%3Mg>q~%Z(XT@(5feAuMmB1d?_JiYiuyg zO4A~cWflG_p$%vicTGIcnSVKoX6eMA^1zw;`5gU3{k1@k+GiP1GF)aAh30x>gntJpzeV4$gSL0X1i0yz(md3*UwD|- z!?QSoUY<`&nvC1BUu`1&mHeQyMARYn7ZQ?dFhEt(USlr@dPIcWVgLL=!Wq7}qw_DU zT#f}lM%}-*LqvLfnsO1cQL@~DRAQp@$WU#qXZ#T~T9_Rrqt zls91#*0+qd)qH?5Xa0)7?`UEE>%0o~)VFAlKf{4K5rM<`82PNK4dy_9s$j(rmj%tD3tPKysNBbVFkgF@{_DF_cWsMi6K8Gj zN7#HmJl)n-?Z#eD!6!|BmhSc83ucvljPAj}uj3GS^*OmP2o=88O9`C1BIx3=$33fk zk5_N6F*Dt#L9Wl|rW=_eRwLxa0)kW(am1!-XwxZg8<;D%GC6i`nm*VoPB1X6-GDso zocqdq_-x9A_zw#n9RsR7JHtDVo(X!K_A4$Vb2UHeXYzD5z39DZuDHe1>FH*<_Fz8AirsA+sJ3j zL2i9+(V=IR&Fyt26D@VQ8=D>OOmAKLQ}(K3?9UYW5dTk_-?X~)bVKS#Ra2XyUww8> zaXj_UOOjfd|7%sVo#hIQe2y1@bh)yJ6)$a;j1X)!F*{bi*V=BGle4T+t-W|qa+qyk z@Zr#&rBN>_kX_&jt4H39*lDKQ7`Z3y3VaemO4#(R*|?X)${ct#US)?}8tc~0ta>32 zsLZHHhNO*^8GQ!fv5JqbtcAVxLH^+a9IVmyhFS8jzGx4HVbW3b`Ub(lAQk(|4%IU; zI|K+qO`AtXN4K!_wd9KQs1AfK5`@M(W*-I-_7SzllC$__f3kdOQ~T&L7;RaiIeNt| zDm!n>@b|^5+XJ_$)W5zcMNHgsE|Di$?$zX|_53RySEVs(!qCvUt1~Zs)@^enzpx*o zHdFqPW;yjnjOIEtR=iv0vtt>#Xe57W7i#5Z%^K)*q9+-iBKDKd(3i7{GEMCLMILQi z=&hQ`aF;B+s%SabRl}oD=Oy=sXN^a7Mt(I+oQEM$fGYdRd|UMsRk4a7F&hpBaeLt> z?yaM5EA%ciP>UIi)j9fN;QiezK?iA=S>{dUGvqaLF!%24xi_n-wLTYXo&MQUzgbE- z;Y|KDF;mCvmib>OzfX-FgXQd6_|C}_lwd^vtY7vz zpIrM1vts|`p%*L9$u+wEn%F}VaZt8jea+r*L0xLpHS|&p14)!_S@m3HudL^G)~(E} z?E@P-Eq9XqGzzzvwZBz+F;n0%XnZgET4|@l_MOg`&nIZ}wIn7*myVR8W@bs(Pzi+z zlpUm|PhUnFqRm5G}87 zf3G*I)U1ADo`!yKDP*$Xke$}S=FrG$eY>Fxnq_-V-Q{bdOBN0zb_MKt{c5T#HOtHP9y#mI~pFP7bA6;DLKf01OVbqDyci~~|5Y1Pgg*qT{j%j1Bw4Q5G=Gr85? z3}{xPBg$r^U#B{_r)jhn)a%`7b%+?fpra@pCzQAM+Vh)o9?ODx#?~5zD^`0?G3bO3 z$qo_*BH5RDS_Udev_#h8{PJxyER&<^l}rwGO&1ha-+!o5aIc2&#P{5n5ItO|2_?5= z2{ZPRR}3qfMoMZ4pBxAIS?k4#X_J=&n)tRjP}L>&l#1|ZIBbyfI4^Z|ev6`!W#U%$ zKYdmG$%9W4##>f%%+CFJym*{Wvi`U;qikD!^>YD{0hdCXB)%F2E&ZJGgPIcEBHs+R zwrK{=AP;3RbUs9mu#f*E^om^1+eks*MhGWV?X%La%3g82rR~>PAUQFXB(2;L#KL8| zt)%dnl?Jz?z745#V5D!Jv^2J_*mri2H;KKu*5n_lO?;+NQmtOm>@`+?+4+GuTA7)0$Rtp`Iw&c-`u$etShdb036px4jg( zc|DiErfj}?%p*1yx1@V7e;#rHb1tJ){F*+YpJmKvDohI{QF zhmwgBJSE47LjrBbi=%2$_J1wh3{<(Nc+9C>bS8%Bj?Ih_6?o!`x(OqZaOn-~43>|#}L@`JFD*DVA^XvF|MXN%~B!bQG{YxvsBpMg>zRu-q zTqjfUO7H?TS46e{#mI#A0G?u%k8(%af_$00a@0Hz8@iYuhnS+6k+@4VUB7lk|vjd+c7&86WVd6wDM*N~j?BNy<93h+TLMFNB4v zm4;fHV;1j@iQ(n&g;ujtmia#c^@6m~e_kpK&5u2~YbCjG&0%vCZ3FX1ldTETQ!!$( z?&p6dne?;Iw=ea#Jsn+9jR+f2JQbNee%~v&IIOA|#O<=v@za&OM>fwFPn=9{X;)Yr zTrhDMv+~mE_^RN#D6|lz=JQmBFR%3GZ{GMA5Rr4_3ZiV;nukwQBEqw&YF&ha_+F}K9je;bS#m^m%6PA%iShNAv6zkNFOK0!oGF{x z!}ga7T(2Ayo{)}EjWznxdn{42>V4%MvDu`nPH%^49^P$)V6R6Hr1)H|OE0FoAqk-= zGuys1BROK#gLRztO)tLfnx5RDl_6%pt5U*#a`b1+t?c`yX`%T7rd7RDBi>=M*CHjl z$7PBIHn+(~W!>Fm9GiFf=z|4^Ft(3!KEuytC0jFZ`{gBUyU(az71V4H8Q+y;a(*!qF1)nKNF4zhnZ6L%F%I%AME=FLLS^=RoHTR6X@(uIkXoIWP+a@dK7V$RrGgbHjoL@ zhuzEwGeI(1xy@*;|KkltQxSWndAV!$#9)<$Ck@GAo7F@_$%wX(T)Ec96Z+exJk~V- zBdz$nTO<ZO2NxbUkWC446U%gOCacEIMk9{Lf!~wy3+iN-uTtbCMD2A-%Cb8LU>W z!K&n?)hU8r%Wi~5>n(^oh3zJMHdw1;`yux62}XuR!~8Leb(1t=&;Z@WxBH-Mmq&)J z8@}wjL^z!1rg4dM^WU(5SJAO7E{k?`d!KqV@rpc1ztzD!^yfpn;U|`TNVSXIf409M zmY}y=KJqKAc=9|Mj*+JbiGtguAMU8xuK$O5Z>AWnZ#qHezIONiuI$eSigta$NKeY(1|e#Yvv~~#`}0k?SCtE=cKJfB%N6D zPEvsALcHiT^??1025>u4q{CpNK~vBDjh0{(5#=0_BheA6;rBvp+m-)#C&B+QUGiVr zbnx&0){p5sC>R@J1cqR#!>k$?GlO~h4opelC@Ax09P7ANO?f@%9hne#z0 zLED&knB4^1o+oGSzX9C+k4fN4<1(@dPr`Tvd4f?)F`=5Q9Jn$K+ZXTBro*tM^vC?` zr`5#ep~=L!fKVxmf(}&bcvd^H^Ww2Q7C&Zbvyd{CJg2G`xy>f+-`fC@KTRucHwlac z#Et){QA)bZ?fsbeA$&;1EwgFegp6?a`;>;%I-Iz)7gq($wDj@P0^GPh!5mefS7!l~ zX??VV2!8z*hD1QodIJ@7OTuGfB+ZMz0w~CQDvN-oGUSQ~ynSEoT}aOdAm!!aQ{=9R zQIs#x6LgQ@989G+AcmEI#@Jm#u&IYAZGr_ZlHTK2z{ZeQQ_P2C?0-4cssfhs3C(Kj zn)L#bFaEY%M=yVIB3{j+z@!hKq4@FszrkI3n2~^^xDOVO!(!BJvji6c^bT(fF0qCv z-v^ouUCvIx9E9de>pSbWLC;{gIcA^%f)!i?=jSOin1__dC1H_B7puhwo5DpgOP3$d z_8%<~2Wt8cK&lcEb34r5h?e<{k=Y%D4B*&`W}x~cTfj!KApr=~djP*ZpITA}QX1P5 zg`UFEF`CmwJ#uFw9-gGj1r|L0qi`VvLVpv@A|!h#cT??IMx0Pj;93JDym)+;1V8zF z6$>Tyl^;P$&wanVCS|FYSYL!w1ft==9$D*(I2MK)7AwgHb`Cnwr=!7*?cviac; zucFIYLW>cGI7iX_;_<;#RhM%fi7jZ`d5sT%er#UbR>Ly8x4jw~1o#z2F2iy$3(^xZ zW-Ft|8rqhx0rxdPXf@K>b2gGr;KNpTKw3?zXXAr+A{4Sh*pp*h3`pN~ zcZ!?6X#>J!D(WEZ#@AiOr@MB|O_Umhxvh=r{v09TbX`z-eZUz4&a~?aihzsiutwx;s03cA6aq2UkV%jv`Kl6IBU!^@dS^s=b)tMNZ%i|(=K9=tNdANbol{3wLE5@(_AqHN$H_( z_Ex>g$mVPHTcFvtonxn^3@T_#2)fqPKk^Kc4R zXaXI^le727B>PWillSGH(&env;gHGQ==7`eWs@*9u^*LX-!pF6t0G#I$!ua_vN86^ zo!fP}i>BG1Xe-1jk?JO5bOxsvo$S69+z}Iny%JisV}Ih{ck;s zb~=pxIKp%C8x=)Pn!G2Td$vCnaCBEQ+J^9X$t8}zB!~B!gQ6+r7|;2sS7L}9B7DZ7 zCOx0a^xn~Wvrx}&`I5LY=%DxL3J05gyjOzIJ4rQ_3P zAj>I|Dsq$S+duu{1#TZ-AKH0dhuYpGu7{Vl@yd}h-$eMvfXH$NXRjx%}0 zE7=}5!{{e8znSk&i5D^RapQ|J7QnMkLP-w0#TFD5j2rj!N899Uhl$t;XguIP8PG&W zpkJ4*KcMDtr9Ehy+68-to_bv&he_wK>fI985A7&b?S6jEP{L|IEOQT|h{;uX3(2a? zHH7jBIPN41pAol5ZJw}|JHT`%vx9XA#DQ#yN=4i`@4X#cb?t2Ktad2dy)tniRFdVJ zZ*oXkOjb|bbf_tYveR_Zjx!^W@eJN;Md+(D1CInoqo?EM%2-fy4A?Ji%&83!MfE2a z<~W&NJJSY`@(7}AF~gE6z1h7f@|JgK73X?B#GHu>43-_%eCV;4*d6bjEz zuDW^XqZo$ME5-7RDjVPlseg|hTC6e@a({GBG+;!+Y?8iXbYgyh`g>0x^ zeqfF4E6{*?_PN9hOQSQs0P+pIk*Z3^2>X;9g~q$7eIDF7I0;xJDXvbqpA8Ej+6;nv9GCPF7hK2HAu9ZeHSKgA zI>JzkPFiH{3N|~*UX%a0cPJmd+O?O0s;)d?gCH;{CN*eH;XCU_qYWLN@a=4sb8m4N z3Lk}K^d4Fl^g=jaV;uS)%3O}w_sjRz`yI9jT8ea?&;CIWVJ8IZ|hi8ogBh&+;R$ebkN@3HinkyXME;=q`o$o+-Cvt*znH0)`(6B zd^gJ$vx;(v9wRew%hrLVK*##_@u^bLgrnET1qja|W*&7FG^#D-UpFGyx{#dZ55*UnTDvjIYAgfO=wF1T?SJU@`~<2H zA5cs`z_Kr2k8Ha<*$LIqoeb&szlC+QGsh{}Mym!3yBN5q*WD!mxbyv76n(N4Ah-fPATZ=j9uhBye- zJP_R~n)J+cL#U2E;`Nb;M;S!DI0fQk@cZYZu+yY>jZ*L&LZ54T-&Jsv z{MO*(OnN4qKFXr}Br=^)xk*36=ddujtMid7j}nX`Z=Jvoi5wm2>9jNrGN&{O{C$;0 z{~(8Yoa(Efn39A@Q`$BswgbjuANMxXi9~w*FW2xtx!g5JEDQ)(6Ghp4fzPa8&e9($nXN7n~K=n`ntk*)<*L_Lf^28NF1Hh^e}pN*r)2v^4cky)F2zlH}I z<16-z9YRmsy=Uy(EiC>pZ^7`}kM3{Q8ok9Yq~pyh3MAg394Kh2@Y>K_K!UD$ERhoC z^yKVOc4?>%4jsGCu)3V*bnaZYCj8FoRS4?9LKW+B7b=qk_>qM z$7_$l(|S_uB-VprzDeJDe_!8&F8ji9u{Bv^UuToh6NnG8lKs;o{EDbS3my=>j%fbfw?VArhYj5yh&ZQ2$H&rPPAX^IKVLT^UK?AviM|~kYFt414fC=%+P~-YACS3b)(~mvVU6F%2oa3);z^jdA*oEb_KllOdBRs?-Blh$m!r z*9_Ks*a=Lf*$E>?0&#McpH>EOB-wAHY^KW%x{ef>g)XQh{x#QKw8!a8kxbb5*|2p5 z51}}^jn*N>j4rOb`dn+lEdpnlH87krjxt%;On31rl!L{>a=4w09eQy2an8^553)vW zO;GVbg^Ty+C7s95kYg}0{4PO{gMshh%Y*6iBA0#s;FcPHDtKX%Fc9n|s^<1CvXa5i znbMyh-wR=g7u8Rftlq%FE&8ky%+}{ByJsYek|7Mxe(~mz-%SCOyGytMhuwe!Y%M(S ze9O|dK&3<4j9!zwDxN*URuHmYkj~;aRIn%cKOo2}aSv@zpz?fsGiY9;yAL-A-7uYL z5??-zM@y4#g)Ab|j^gcpvK?KT`u>{uGTeBPOVL(-xg=CqpH)K)w@I#bVB!~0@Ti@Q zyyG328w_7gGz9+$rHQb5uiy93T5aVnIQoj8Rs-xc5jV?9*Cug4QGr%Su0Nn{Ndja1>2c`sAhlO+A}p<9K(qCoL?3#h#C~hr z^{v*IaLk_yUTQ__aojVSBaI?YPleyZVEH4&UFAaU)sDm37=N)uVMu%*)Ko^?H%(_<BJ6S(ci5nWLsa$IRGX0rHvOTP-FC{fNf#0zEp?tjBX+5yf9}s8C`h@p?{ln*rWR zlnS;9s^XYf*77cYoQEh4ZQz3ZHf!2Xh|B2gqIp_hzz&~x9cNQj}EknB5z+BrR1 z#lykyxUbY{|L7;8*V!VStU-WLI28_eoZhmEsB(okB7DEj7f=#{8H8?N5DVrn%z0vU z*~V!i>kq~(E%@wtG$Y#{C17F6;<-A+t_S*4>mQW*3p|992pX>Px+nFUp^FY)&%Uc% zP&MHYxvF)mZP^bF8iir??4%o357Ql!53%OcCooNIy}zHn0t>GU+RVk7#Fn)530D%8 zo`?uuyyDPmqVqzbphxkwbp(^ENTWSzEktIGImt;P3QS!ibI z4}93uGw-ULbCpB%;M)W=g0h8MCMa>X^qY8V+zz}yI_T{uC$si;;#}!5ze_wl)6s+C z<%xsrmz@|>da2FTQe$E3j(4D$l%nJ=ucQ^H2oGo#hW$BzN4_;q$lW4VY!O$|BEIv? zf}e{9zh>#!s=b2I+h*Jz{;5#^+tGK)P5@_&2;(DoCj z)TBBW87P zes{G>=;G*w2RV>zeJ6U+t0%rEn>+(9M zaIlfO3j*|oenTvw$o@7zwn_o zNAZvyL-CO~Wvar_8seIG;Tu1j7h>CDpY5NHzCQitKDTi?mBe(RQbphRnSbJ_99cpF zPW`i;>2qsHtX`kW3BuIvY@8?r$2=+bp7aaKrmw>t#}26bmDizq+8&?zWx7Z4XlHGt zZ8X2M!+p9<&9;b4+FUxl&nLQOU@fzCqO_HyUng-Z@SZ64h>vU8aGN6f{ z>-~C2RO=ebrmWv}lWk%>d1JL@$NYXSP*G<#l5qTTKeNctrAs`MRW982R%J8OCUgkI zMV1-{4~3gvMszdj;}>KhqaF1J#Qq!+ce=RIIsz0bH%=vHPXGW-3N7BxrU_0|#B9f2IP z(z+}Pf3S1&$+P{TGeJ6In`$o9CpBgSIz&SS8O>HDa&U!Iv!mh$;ijO=Zna5CW70yi zqL|x?bB)lq%q-)xAG7DU76pj33Qp_xGD=0Ebi2CIf!*K00O7jh;FH&VF`h({ zXmGD+$vjo1-PIxpLBr(uR*IBlHMbKIh@{9&%*SwKZvbb5yWnba21f(OsX5e*wjZT= z$KLkESowIfd8zd(KL)^$hLX(Kr2S3up9pSYhj0Nphot;lgfJ6wiw(K4iH?>sIfea) zBk+H+Bm2KM&;8ftpZ^whWx&twU5z0c6vga$fPz>Td#>fTk)+|j<_vh28Ij9a4pe0l z_bP%ioWaBZ)btRg(*6mWqr8iPufpIQ%Z7Y9_;uvDwAaTXCtg&ax0k=XL8ZQ_CsA{`i zPJsA=`>iO+&*ZfIMJ&^8ijr)5cCW1t#8mD zzdMU|9s!XL{WB4bl%sNvixCXX1-NE%piH*b21W~9yUg>?uM7FDI8in*zQHjD?dr}S zGRqGrTkzE01VX@NiOcr_Sg7oYDxG)tA<~Aq$pBc;_8?Fli$w55Cg3==ran_pOJsD_uA$x zmlurfj`(}sqzfe)DYyqf+7QG1mDx?F?qLdt+o0K{?6S5#Fwc=ijB}m-7$wySHL#M_xN5?uq)?+q50`-TT{BQhxwi~JjlCd(gbt} zvt6*MVc?y`1s>G|z42LpCRO6~3MDT6J6vyDcNvTI+DG;`{Av?%Q6ZA$Tx!1p5}4Bk zd-jaNW_?(FYv4Zp!!P6HZ}`(+rYnd|)4ncyXf6N<6cH?khh~xyotrhwtX$-yWZLmUZXD<2~`h`{}!%suwdI=-_ zzSIr&pLB&Xan~2V`I2xKl{2n0zSo4^+WtG;Ox|Ahuap(?71b2kIE8Iu1W;3QZs_I$ zW%qFHQOsHu83RNW=PeTl?|axCl}h?IECAcZdUJIl z9+yve)@(XASQ6n>khQBS@JOY*%`d_~ly%pk^$ZN=_wE~;h>Y;qRGf{;U7QKvweEQ% zW<5tSL=~obEDd|Vv}p()s-<|zN^!)z8B!p&abXd}z&j)1ScmU)`Yp^3<};(K#S^qk z0-s06sH+1b=YAqj^v8|CqbJW>sb{VRZ4E8d-|7}B;K*Dg!@$47)4C)j-%|Q zrbHQ1GBBCwuE#DQ-g~~yeZGUV-&bt294bl$;{&stlCHsvdU~}#F>%Ik8vh)3YcpoP z(s5J#?jNvV|Fl&`I9<I(BTtZDX=x94dWxg|E42 zNd8(_*yAYf&!J^fkIxwu#^mx!&lWYMzT46|;FCy>X)q|-pD(^=hH69K+A&4KB8VbN zc$MQND#NkkP~#gh;e)!fwrQ~kJQ-HSlW*+Q2U9y&dhXWdDxVp$P44m9%b-pK7j!JA zK@xx=ulQ8O=@EDvfVv-*vvFI?s^3K9HTShBipJRPSaEU9HosnVkNmV;p7Dvjy1WW9 z?<=|D*gRAeB_=ax6{SQLQZ@EH5)AvwKG!WFMcgRG89yo@;S{mM89^KlI50-W1yAPt zR;kr=3`iM z+q&KTgZj-EHml)T1c^bP$6n!D3$;F+%a0vv571S8NanC^lv#IX_8Z!!-|>|Ch}fyq z+=vgK-sP{<#5J%RKuhaJ_52svIBE$|;eVl9jFHh+8hWbv=KWLd0WSPIr))0gGF5hM z_GYAVeh506-_&S(9NTE`xes+8Uf+2WZ_H{~F0oHMR_ZTst05=7M8Nw>eQivPN-nA% zUnJDkw5V$dmda*dC52jCOo#0p)I45u^)uV5v0lYqlHOjM0ozKWo0nz7&Xoxas)w1H zytliT5WBaQU-?rGyqN5Y?m0{$j~X?LZ0}e96QPKGMc-*!Sy^kMN}mz7UO71JxTVC2 zxgu-uiiVbf^mM_^4VBJ=v~^dnl-ytSap0*ZPgaOp_r&lRq}((+FG{84UT%9{O=fH^ znOLbbA*}cFdhE8VJVzAv5f8c5MVXhH^Yv&J-0e}%t^j!G!@|#1w&AFju5v55VoQcE zxxtDp^PR9Z_G26^exG-L(6!tvaDQX1>M9ex{}++zD<_Bb3FSBDZu_a}WmK~WgMbln zTYOXv5JHE(unNN$v6{p;9@-&GU@YrJV+XYR9X++&d|&bMm*1KXrst&(dl>EJ8J;3U z#of71oMroq++F*w45R9at-hAzxNA0|H6`YJ8C&~BMIMG9wzZPD6n3gi9Cb@ft+%|8m(8K-$?RQI&fFS=3S5i2XDyE2a|oXDTj;SxX#kM zXBUrMl(i=;zNM^P*FSPzx#^txypL%X|tHtMTaHC^! z?Xh6vhN88pq~HSsTiA+{pDKN%8q+>SJw`)_)N3Pf@P$0^@x0&1KO;Tq5>q_vy5pOA zH!q*_3(6jg%FB5MZgGQ-2|JJ64V|y*V|UAz+Ffhf91eSu+o}Gvy8BAY*SMsxqbvIm zaL%k&vz{|1mwFVQ`p-MIOMLer(yC5K;Y7wlhBNfrm4lQ>b{T;*0A|@VDrc?I>jbM=3nRm}B@&hV2)S zYn%^y>>4CeG8x7SX1y7zDq$)L0mpWe#SR6ZiGe+tY zvH!O&qCPN`v@^5YJ`IJQqAgfniJ1Vxr~kX{FMG1c*|#6^qNceIUo^Pdy*9-BQa9jB zQQ=@^=-GlG`k^G2ug&W|wH|hnRp}Wj>!Q6>7e zYUQxscCyzK8-LUs&IwQx6Xcoy_U65Tg}ah?uI+}h*PZt>?{(D-X?3)RNv9^_7Q2P2 zR|QKv<)RgCehumQdvZtI^WAI1-nvS{TyLM8f42S?4aWP7+)eUwbgAFvRx)zyFIOVR z)K*-v;C|(g1mcOs!@3{z*u7}q_8oeNw&u~qV)(j6&&jv5C+mCa@`64kBhdHk z+C#;JZ7qg1-f1W06@vwW`dE`6tjU*d;lI!j(D>%fx`EHDle5o#B+afIH_4x|t@Oy+ zuhS7s8}!`|WE|?A!0bP;INp3x()7rMpF8&TcF7u_OC7s{4Si|?Gqdhz_LWzg{7@61d2s!2 z_jFMGC3S^;mc>OT*m!r^z~9niRjSO7`7E!}MwCw-V8m~VfDoakZO-S5Bf9P)L*;yt1Z3?gJ z4+h;54&dFrRfI2a>T}?H71#Ymr{s#>!bbV0t2d;g_#HK8zd7;KX1YjDzk0aeo@x9% zsUejJDX6gKR(CzRaYK-li-iByZ1?}uIkZI~xf42qcvjKV1T0%)KhyEAba;6uFaigLESEVd$R`io5}?`8yZP=VciD;16dy^AJjtaf)`& z{A%KfesE6pa+Gab;L~_TTJ~In2N;dbfox4q-t(YLPXtVMBxCX#UXSglzwbC0E1go&r`rq?c;Z{z6gySKjy$kRX1nLL{Ukze)xG{qU1i}@l|e&~lJ}`4PH+!MhMYSTVc;z39qJya zn!$gdHUl5#9vSnZ_ukCm^1sN&8e}uo!2}LHf}P&Hfh;WJyTC!t87E(nJ7Iwa2>Plt zY}6gtF^=nzbsPct8?t{1X^^Cj5!>TNV&`=)kIQ8T#=U2)$A#i_}kN_`L=|4c> z0f7W)BtTt!5&LN=iZ<&Xn0pL;W((tZ6h4AcavDd{Y>GdICA>D6JZ^FDE1Ee-{T-Vh zsr8n{@+YWVeWK=*C@~RNlX>#GlmV;(>=E%5l|!q2^#;e4Q=8RRVs0tH(@Wv7|8Dz; zg!xHJKnyH`7uUzpj*2SmXa(Pg(OysE1{q@7*>22Kor=#5Ta16;Xz;ujM~@>9c}9Gf z@uks)2!U>^zV!DG0t3A50ZnWGNPmfm6HITMbQa|u(aeaPxoWN#7og$L#>6J3Doj_z zKEfTGvR^L~G+y*Hk1-jd3JPPAN+^Qt1p%S5$Vx%=_>GMSl!Y?NXDlY8{3&23^E_s8 z$pbeWcfAD4uzt|fcpMIr^}qf5TEO%+`)1z~n zFc8U?!_0j9s$GiwAEy5K6V@i#(+y*cq?)-<2G%0VuCRh(xIJ zZ{RZCv6-I6Y5^;J@w8L}fL0J_>jgFdvz*vFyad=0b#Qp>>CbKveAV;UEDjJ>Ri zKkpp;Z5J__Nymb;VHbX>NI-DBBKb-_3iipMT4PQ|6{9VzG>w$ZuA=+?WfZA ziIQ3>iS8)K)AnsW`mU513OvZ9*l%}x$_L@c4AhyD2 z?$8idtw9ZlNAP*JmKtZw=iUd%Ch=a07};jVDH*B|IS5Yo!r=YU`k?nDO_6++f@?hP z8QoGgHOigGt$AD}VYhO(l}PZB7B{`DG=bafj@D<#1;Ql~CC6l6s!Z%f@3GCJfe2sA zP_(rO)sMYF38JMAOi|Jeo%gK6Ll*gSY_Ftgy65sFsq{5)HfK}Jw-j_TBUCJ{B}>4% zP1!srK1J@7_TY#xi(zkjUm;d(3^>^;=ows^wvRmRqhJ(LDL-gt;CKjm9OQjiE-LL? z<2QH3giuS-M@uNia;|c8g7kky38~YMG%gqv3Ywvwajr}nQfszVJT&+s^k?Mhs(Uzd z0v?wMn^Sg!7tAHF%xUZCH2xbFFkI@yC_-d#ij3)t?2kRcS_(v8erEFIZXToQsPzbW z%Y@UYP*n?&YgEJIWa95x%l}y|%fGNsgUQi@KOx?tNN4C49`ZjkgvzL3zJ^uw^Z&4T zMo<`-*c0fTaAxs7{m4kdkbWTQ?|zC7DQ5?kE>e`rkG-+P0z#3==hyG!QL#H=7<1PV z1UW{Tdl=pUqaxiAOYhEGYvT{0%ov|7ymMlPt*b6)Bgh20(7})lQ1$F1>97Z)Xdt90 z8Im=z$d~Gf{Bih;1tuCeCZUG-i^mPv-#`Dim>(-NEub3lAHC52@I|T5dgT}B;6zHO6K@WlgY-zH-ITp)aS-^p!|SFGW%^n z-fe?`@_d6>^%Wjo>nZ@D&^8ta;^QC>>I@_HWj7VV=^+6KI8O4B`pKske*+e|t>_H( z_dk%#ExYIZgeP9|Q9wtM2$0vuFv2u4qq=#cD9sAKH-+;3&VfvrNB-5r`nSjPapMZ0 zKsPtczAAhPJP!#=+F}OOx*MiB+9B|6&voGyD68b-a`85_0Ds_V+@d-5yZLD~k%;nl z@!qMYf3UeeiLxsIS7{1P0)69{L82fB?ns8IYh=0;bxuWY60v zOcccOSpezNoshT(V>FU-&coE~^9PMZb>>H9d2QQU4?bJ~-h{7V3MzC&o5aOeo*Q_f zzJ;z0q`ySEuut^SMW+NqwSS*aliG#-x28s4|McxA{x>Dtn)xtShZk2R{iF zSVtKC&|e&Eb}NX-*Z}fteOVK0Oo2ChT0yulAr>BvWJ(piAow5`_mQ&J=DFN3+NdCH$XOhP-saGXc!G*c{( zbvjs4$JW|xl%G4e{L_;C-!cZC-9%p(do+oMCJ z(iIsWDp1@7wUJmiQKQulFjj7d+b)hb+)?Y>VPFs@Bq`I#+qZsZ)m?+c@FZhUB3*`uY8(6FfU5 z)_E8@juNKLV@gmN)4jsaR>-^b<^tJd8zK~K<5vgBzgKxpr;*w9Lqqnan>0p4l)L1BkvQ2b-vhjly2siKeLL`3`apMZO0GH&W ztNvmuNsrrPWh@hMv*DBDncX%`R|+QUwLH-&I3`STZ@50Rgvg4tAH8uxkxt58^fSTS znOf|k_I8$OG^YTk8VbUT$u4;k%J}5%5&2$GrcskfJ4xR#C{HFf^M7tO+3%1*7f2s5 zXD-%8%GOjVQh%Ny*BH)Ld*PVl$7^>3un*UC^qRTEQOZv7+ol<04J}nG^uS~-*GM9B z#+lOBF0`esZ+FuK3F?L#R*B}MW8lNvNhAxdmxas%(f|92HB1UU=*MN zTg0G&QtjrE4Y3cVs&2#rvLuU=QYnZRkb0CMc%!s0{n@?UfU?OAYl}ZVq@)jG$@lfk zs2-FJDiy36`#~sLPeGdwV*4R7h(ms$1ex2Xf$Mz9MUjIq&LH+l9a?V06-^sLvUT$> zq@R@i&nsuuZ{RJ67y(Js2?Yz_haeW55|rrM4(imYWMe^I6g&_gQZQl3>qYR{w?dJO zQ#JE4y61dj1hcebIKUkgcems@m{16Co%T|;j{B+M=TTX>b0|y)2Egz0G^=Ofszf97 zForU1M3qRh0oNphhGi9}3_=BG5se(fF3HSAFZK$KLbN1k_L)?g)`c~3njb)gg)5Li zP&Mqn4u}OfGxm*8njAcAMqP&MEEl(Sg6NUB4?0W{JKO4U3?Laom_vIrwm3g zvXnqsD}&Xwwa-AhA{6e05jJA)NF!o7dvF+^D8)B`h^f5@RHjJw<-*^JBu6sYc@`f* zP*Uk-DmExhEg!sst|_SyjO&oz*MjxLH7wfUF3R_2PM6qCkpBGWMJ={0FS>hz69r+c z8#}1)b4@@Vo5VUsCdnp0e<4dP;5Is$WIg79HMBra&Is4B{B+8SVOr4NOgG-R$1Vl3 z_kh*e;|7ipv7$r1XOq05+BI3HV4&*TLyPE3KB35Qz05eVJslYj{~|~`V6PgAT!3sv z;(M$tn*MpsqcE2ZRJd7lM0Wdwuvt3L!Nmy~ z;*PS1h&D8ef=xH6Ljo^uasAG8y~z_r;i;#a2U1ozK{jkLHn_ zRKZO}Sw`R8PDoKGI>`3?tR;Tgj}JAz=SuY)i|FS&E?r|bCYwkP9oO)=hwp7P(Hb$z z2;3azsA3h>WYZ>zdK@U_{UN-AaY7pXf@teE+}mr|fZ9smOVBZPeNMlm=O5?2hfpNi zKWajLSmr*W$+4|kgvj((Jed)>i5Gk08AbBB$CHR;6}xJ>#;sc^3$aHFfq%!ww zgnyIRjr}`UI4od+ES9e$_SWL*$K!jzJ(JjnCJ9P|axAkvKMC6NG}V*ya@P%>-d#lh zr41l-vI8eU!khf8jEj}bqMz!s`Y$uBf$dCeR5{b%f`^{7B;895cp1w|nYBn{;{S(| ziT^FEHXiWqVHf&3?0@tDjDZfDS0r-%Ddo$h7)C&7quVxBr(b*JjzvKNFv)4lpseCq zP}QSbx>SuL2qVFgtV|)|z)yUQI!NvnYmo!Ofc=~EEx0;Kg`Pzg>gP$+=hhWwk`ZcJ zu_O<>5UIr0CN0VjfZ#8DWKT95!$T{$*gH8mNVhF{nO7-y#e;!DA z$)y*0Ro&}jo(tmZ1YZ)1CK0rsXL3=d?PzAOZ!ABn& zqLL%&+0pl_0)>M_K#_pU7L(qIwhd41Q(z?-CR_fm#;!dY%6$!sGBZgTD!0OnaoHtA zN+KCwGMR*QCAZK;go=^cNh6~$V?t5Kt!bBCZYh$qU1v?SL%GyWNujb!k!bH~+t1fJ z`@gf!IsaMKGQRoN@AtmX`@GNlyjf3Pl|s*omNzy4H1=3d@8JuwNV&AfCz+Bic^K5_ zw&CI>xRG(ajo>SWfZNQYTLA4Lh&YI_pNU0+LF%AbDtRLTb3q-IL2%-wQHzQkJG`;| zVk%&tLuqh<2qoP}{$NhbbNNb4C}kSE*B^;_^T0qtx~lVg>ZA=btiaDLz?wQ|Z7w$0 zy;OL11EnDLhh3VVzR0WVi24m1OrruNziol*k?FSUGE=p_k5!8K5S$j7@_Iw4hHaY&m%z+ojwM_x^m``>`&px#5sz6drQQL+#T5Qb&)UCn0~za)+3 z0eqp2U_JU({3HaR^ra(WOGxL>7!WnC97NFu1l|Q%Z{;W=HmDa=_ow4hNL~co?TyyP{Xm6M~ka|j2|^DC6QOMH84CW3K*$@PCIy|C$RuA;r# z03l0Ux#gI4Ul^D;!}U2mNImEfTdb)~Z^Ye(2?Rya2qAPzNZ;`-O7;o8Nf;ELC_+1) zyaMhp570IvRsZ{}LmzS)Bk)M0#i~mVUi4Z?^N%TICB;m6V1vZAYO9;U+69}gYPd08 zEBGKeMnNGYImwMeL0+>j?Hl9QC1E|*_uL^oH{RWrHzn#`QQQLhSj^_S&}lHUVKgcj zaGVt$2Z`Ip4N`aG#aioItd&jAAvs|D`&Nidv`d+sY7`8ocV{E`-8Fo#EK93ErfkH8 ze%mS*yQnf}>*#UV$C1#{h3GB&3d}5GFw0UlZ>x@4R2W1sBOuvlZWWroW-Yaf zVd{eMvQ<`rR{((rU5{xme0DRU;TBoJRJAtgI}}qqXuV?OW!yC#yF(qs$~&hepky%> zp1r&T{9874fI+F|ZW3&{_q#ZLd%`GUO9o~@KGwCE%tT@Xp8Ba$Ykw|xJn=wAocbO0 z4YAS~`A+yjyDvU>?1jP1`_w)os#2u&quWzoM$Gp1!fbwhQJV{0>5I7V&$yhU!n~1t zB_q1A@k0^mj?o-cnAl38qDJhr5g=(xP&lWBUbayw%)c>)m@=+z_B zlDa>Hu{!Psrp#Ya0c>JYo`_*P;<@>*s~JFMB;VbfaVpzMAfq(oJgr+=g*WwNRQ9P>efaHk;gKKrfy5sW^ctNl-HTh^RcFHRZzT%_O+P1IQ|2;E>6BGsi06U zI5=FXdgPMjW_q9kuL>jWk*k}3H159ECln#nAJ4vMD z6qGJlJ})>+QwSB1`*e^PLeJHY%{+&HVQsa0@g@4rgK2huBL32@qJmA>=UwV|EGZE7 z$<^4TI`bRQBVtjIS-lf>W}8sFHQv-~VmvRQCZ2ZW2ME&IY>um;MXCO056jlYY8!Q z2^tkZFq%jwz{F?+=RN~tYy@qL_>$SFKT1RR4m32vH(XkzY1OlgQ?Cr^x$sdF8o?P< z*{3x=B?JVGC+AFsgqfZ%x`D#N=Hq?%ee2C*6yYg2{G?r`P%&~xi?^1a*weq>c^!OE zTZuUn>%=E!=_0p}AXG6M!mt-1@=W_6>54I!k*va0tyMG6ZK)N`SnRUHY>U5+^xGnv zDlNmn`kZG~(Zj9V4RD`Q71b_?6-K3DCTb6V3$mT^ zL*AYjloZ6^eVR&L8|B>*3Wqh{me*EuXvLnJ_G11- z-PArI!thOm8j^|NDX%Ad3K7YdzFK6b${fnKFL01#K7iS7pm#@a!~Gkd zB$}1MqR|z~qSJ(_x(hg}Ohqvog2s2s$Qd{N{!4x+q5}-k%Nk!9Z|;F_<_ZRxOFXZp zgv08Fk6Z-Xi9O(tU<&~{j2CFDfk`AjB4(2=B4i7pLVkcn)jaN)!~d^J7Mu+)48)`^ zj-iv@caN7okt9*)knvEir4e7yg&I)d4K?;#xMzyG*)ssr6csi<3vD09eE$;NnVhxY zbpdj}{}!2qg;_&jO$KMY{Sg4Z1=t2f(J8Ru2`=IQ|0`Uc_5Q)+h<=*oT%*+CP$r+s z|4Oe9IQ}!n?fD^3!(CLpBmJ8Gfy$y*=`~iQd0&4Ry21=5?LT|a{FhnK|3yoDJt`+B lH#wQ7?IXqyiX^yEkZW>Y?7ir7`Fi|Dj(Z9xD4 literal 0 HcmV?d00001 diff --git a/examples/personal-workspace-browser/managed-goal-results.mjs b/examples/personal-workspace-browser/managed-goal-results.mjs index e387e4c533..b678891426 100644 --- a/examples/personal-workspace-browser/managed-goal-results.mjs +++ b/examples/personal-workspace-browser/managed-goal-results.mjs @@ -53,6 +53,7 @@ export const managedGoalResultsScenario = { await page.screenshot({path: resolve(outputDir, "managed-goal-results-desktop.png"), animations: "disabled"}); await page.setViewportSize({width: 390, height: 844}); assert(await results.evaluate(el => el.scrollWidth <= el.clientWidth), "Files report must fit a phone"); + await results.getByRole("button", {name: "下载原文", exact: true}).scrollIntoViewIfNeeded(); await page.screenshot({path: resolve(outputDir, "managed-goal-results-mobile.png"), animations: "disabled"}); stale = true; await results.getByRole("button", {name: "刷新", exact: true}).click(); diff --git a/examples/personal-workspace-browser/report-download.mjs b/examples/personal-workspace-browser/report-download.mjs new file mode 100644 index 0000000000..0419b8f767 --- /dev/null +++ b/examples/personal-workspace-browser/report-download.mjs @@ -0,0 +1,103 @@ +import assert from "node:assert/strict"; +import {spawn} from "node:child_process"; +import {once} from "node:events"; +import {readFile} from "node:fs/promises"; +import {createHash} from "node:crypto"; +import {resolve} from "node:path"; +import {createInterface} from "node:readline"; +import {resolveTestPython} from "../../scripts/test-python.mjs"; +import {outputDir, repoRoot} from "./fixture.mjs"; +import {fetchWorkspaceBackend, openWorkspacePage} from "./scenario-context.mjs"; + +export const reportDownloadScenario = { + id: "report-download", + async run({browser, collectCoverage, url}) { + const backend = spawn(resolveTestPython({repoRoot}), ["-u", resolve(repoRoot, "examples/personal-workspace-browser/report_download_fixture.py")], { + cwd: repoRoot, env: {...process.env, PYTHONPATH: "", NODE_OPTIONS: "--experimental-sqlite"}, stdio: ["pipe", "pipe", "pipe"], + }); + const closed = once(backend, "close"); + let diagnostics = "", context; + backend.stderr.on("data", chunk => {diagnostics = (diagnostics + chunk).slice(-4000);}); + const records = createInterface({input: backend.stdout})[Symbol.asyncIterator](); + async function receive(event) { + let timer; + try { + const row = await Promise.race([records.next(), new Promise((_, reject) => { + timer = setTimeout(() => reject(new Error(`Report backend timeout: ${diagnostics}`)), 60000); + })]); + assert.equal(row.done, false, diagnostics); + const result = JSON.parse(row.value); + assert.equal(result.event, event); + return result; + } finally {clearTimeout(timer);} + } + async function command(event) {backend.stdin.write(`${event}\n`); return receive(event);} + try { + const ready = await receive("ready"); + let reportRequests = 0; + context = await openWorkspacePage(browser, url, {collectCoverage, beforeGoto: async (api, page) => { + api.transformStatus = fixture => Object.assign(fixture, JSON.parse(JSON.stringify(fixture).replaceAll("product-release", ready.goal_id))); + await page.route("**/api/chat/goal-results**", async route => { + reportRequests++; + assert.equal(route.request().method(), "GET"); + await route.fulfill({response: await fetchWorkspaceBackend(route, ready.origin)}); + }); + }}); + const {page, api} = context; + await page.locator(".personal-goal-link", {hasText: "Product Release"}).click(); + const results = page.getByRole("region", {name: "已验收的团队报告"}); + const button = results.getByRole("button", {name: "下载原文", exact: true}); + await button.waitFor(); + const readsBefore = reportRequests; + async function download(keyboard = false) { + const pending = page.waitForEvent("download"); + if (keyboard) {await button.focus(); await button.press("Enter");} else await button.click(); + const saved = await pending; + assert.equal(saved.suggestedFilename(), `report-accepted-report-${ready.sha256.slice(0, 12)}.json`); + const bytes = await readFile(await saved.path()); + assert.equal(bytes.toString("utf8"), ready.text); + assert.equal(createHash("sha256").update(bytes).digest("hex"), ready.sha256); + } + await page.evaluate(() => {window.__reportCreateURL = URL.createObjectURL; URL.createObjectURL = () => {throw new Error("unavailable");};}); + await button.click(); + await results.getByRole("alert").filter({hasText: "无法开始下载"}).waitFor(); + await page.evaluate(() => {URL.createObjectURL = window.__reportCreateURL; delete window.__reportCreateURL;}); + await download(true); + assert.equal(await results.getByRole("alert").count(), 0); + await download(); + assert.equal(reportRequests, readsBefore, "Downloads must reuse the displayed read, not invoke validators again"); + await results.scrollIntoViewIfNeeded(); + await page.screenshot({path: resolve(outputDir, "report-download-desktop.png"), animations: "disabled"}); + await page.setViewportSize({width: 390, height: 844}); + await button.scrollIntoViewIfNeeded(); + assert(await results.evaluate(el => el.scrollWidth <= el.clientWidth), "Report controls fit narrow screens"); + await download(); + await page.screenshot({path: resolve(outputDir, "report-download-mobile.png"), animations: "disabled"}); + await command("withdraw"); + await results.getByRole("button", {name: "刷新", exact: true}).click(); + await page.waitForFunction(() => !document.querySelector('.goal-managed-results[aria-busy="true"]')); + assert.equal(await button.count(), 0, "Withdrawn report must not remain downloadable"); + await command("restore"); + await results.getByRole("button", {name: "刷新", exact: true}).click(); + await button.waitFor(); + await download(); + // Switching Goals withdraws the reader and must not export the previous Goal's report. + await page.setViewportSize({width: 1512, height: 982}); + await page.locator(".personal-goal-link", {hasText: "Research Monitor"}).click(); + await page.waitForFunction(() => !document.querySelector('.goal-managed-results[aria-busy="true"]')); + assert.equal(await page.getByRole("button", {name: "下载原文", exact: true}).count(), 0); + const state = await command("inspect"); + assert.equal(state.authority_unchanged, true); + assert.equal(state.posts, 0); + assert.equal(state.sha256, ready.sha256); + assert.equal(api.turnRequests.length, 0); + assert.equal(api.actionApplies.length, 0); + return {note: "Exact canonical report download, repeated/keyboard/narrow, source withdrawal/recovery and Goal isolation", coverageEntries: await context.close()}; + } finally { + if (context && !context.page.isClosed()) await context.close(); + backend.stdin.end(); + const [code] = await closed; + assert.equal(code, 0, diagnostics); + } + }, +}; diff --git a/examples/personal-workspace-browser/report_download_fixture.py b/examples/personal-workspace-browser/report_download_fixture.py new file mode 100644 index 0000000000..201b06cb1f --- /dev/null +++ b/examples/personal-workspace-browser/report_download_fixture.py @@ -0,0 +1,60 @@ +"""Disposable accepted report owner for packaged download qualification; no model calls.""" +import hashlib +import json +from pathlib import Path +import sys +import tempfile +import threading + +sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "tests")) +from test_managed_research_team import demo, fixture, canonical_tasks +from loopx.chat_server import ChatHTTPServer, ChatRequestHandler + + +def main(): + with tempfile.TemporaryDirectory(prefix="loopx-report-download-") as directory: + root = Path(directory) / "team" + demo.prepare(root, "sqlite") + fixture(root) + for actor, revision in (("analyst", "initial"), ("analyst", "corrected"), + ("reviewer", "initial"), ("reviewer", "corrected"), ("lead", "report")): + demo.complete(root, actor, revision) + read = demo.cli(root, "todo", "result-read", "--goal-id", demo.GOAL, "--todo-id", "todo_lead-report") + digest = read["result"]["sha256"] + result_path = root / "runtime/goals" / demo.GOAL / "result-objects" / digest + original = result_path.read_bytes() + before = canonical_tasks(root) + + class Handler(ChatRequestHandler): + def do_POST(self): + self.server.posts += 1 + self._send_error("Read-only download fixture", status=405) + + server = ChatHTTPServer(("127.0.0.1", 0), Handler) + server.registry_path = root / "registry.json" + server.runtime_root_override = str(root / "runtime") + server.verbose, server.posts = False, 0 + thread = threading.Thread(target=server.serve_forever, daemon=True) + thread.start() + print(json.dumps({"event": "ready", "origin": f"http://127.0.0.1:{server.server_port}", + "goal_id": demo.GOAL, "sha256": digest, "text": read["text"]}), flush=True) + try: + for line in sys.stdin: + action = line.strip() + if action == "withdraw": + result_path.write_text("changed source") + elif action == "restore": + result_path.write_bytes(original) + elif action != "inspect": + raise ValueError("Unknown fixture command") + print(json.dumps({"event": action, "posts": server.posts, + "authority_unchanged": canonical_tasks(root) == before, + "sha256": hashlib.sha256(result_path.read_bytes()).hexdigest()}), flush=True) + finally: + server.shutdown() + server.server_close() + thread.join(timeout=5) + + +if __name__ == "__main__": + main() From 91694dfdbd17b529bc51b13763a666d10e81d00b Mon Sep 17 00:00:00 2001 From: Yuchao Wang Date: Thu, 22 Oct 2026 08:52:20 +0000 Subject: [PATCH 2/3] test(workspace): keep report browser fixture free of pytest Signed-off-by: Yuchao Wang --- .../synthetic_fixture.py | 39 +++++++++++++++++++ .../report_download_fixture.py | 6 ++- tests/test_managed_research_scenario.py | 38 ++---------------- 3 files changed, 47 insertions(+), 36 deletions(-) create mode 100644 examples/managed-research-team/synthetic_fixture.py diff --git a/examples/managed-research-team/synthetic_fixture.py b/examples/managed-research-team/synthetic_fixture.py new file mode 100644 index 0000000000..5333767d3d --- /dev/null +++ b/examples/managed-research-team/synthetic_fixture.py @@ -0,0 +1,39 @@ +"""Shared synthetic research outputs for tests and dependency-free browser fixtures.""" +from hashlib import sha256 +import json +from pathlib import Path + +from scenario import assignments, encoded, evidence + + +def fixture(root: Path) -> dict: + dependencies = {} + for member in assignments(root): + worker, revision = member["worker"], member["revision"] + raw, normalized, stale, source = { + "initial": (90, 40, False, "filing-initial"), + "corrected": (75, 25, True, "filing-correction"), + }[revision] + work = root / worker / revision + work.mkdir(parents=True, exist_ok=True) + input_bytes = encoded(evidence(revision)) + (work / "input.json").write_bytes(input_bytes) + output = {"revision": revision, "input_sha256": sha256(input_bytes).hexdigest(), + "raw_fcf": raw, "normalized_fcf": normalized, "period_comparable": False, + "growth_supported": False, "independent_source_families": 1, "repost_stale": stale, + "source_refs": [source, "prior-filing", "repost"], "reason": "Different periods; one source family."} + if member.get("upstream"): + previous = json.loads((root / member["upstream"] / "output.json").read_text()) + output["adopted_dependencies"] = {member["upstream"]: sha256(encoded(previous)).hexdigest()} + (work / "output.json").write_bytes(encoded(output)) + (root / "accepted").mkdir(exist_ok=True) + (root / "accepted" / (worker + "-" + revision + ".json")).write_bytes(encoded({"turn_status": "committed", "evidence": output})) + dependencies[worker + "/" + revision] = sha256(encoded(output)).hexdigest() + report = {"initial_normalized_fcf": 40, "corrected_normalized_fcf": 25, "revision_delta": -15, + "growth_supported": False, "independent_source_families": 1, + "repost_stale_after_correction": True, "dependencies": dependencies, + "reason": "Correction reduces normalized cash; growth is unsupported."} + (root / "lead").mkdir(exist_ok=True) + (root / "lead" / "report.json").write_bytes(encoded(report)) + return report + diff --git a/examples/personal-workspace-browser/report_download_fixture.py b/examples/personal-workspace-browser/report_download_fixture.py index 201b06cb1f..cd7fab882f 100644 --- a/examples/personal-workspace-browser/report_download_fixture.py +++ b/examples/personal-workspace-browser/report_download_fixture.py @@ -6,8 +6,10 @@ import tempfile import threading -sys.path.insert(0, str(Path(__file__).resolve().parents[2] / "tests")) -from test_managed_research_team import demo, fixture, canonical_tasks +sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "managed-research-team")) +import research_team as demo +from synthetic_fixture import fixture +from acceptance import canonical_tasks from loopx.chat_server import ChatHTTPServer, ChatRequestHandler diff --git a/tests/test_managed_research_scenario.py b/tests/test_managed_research_scenario.py index f008ce89b7..19f1c9eca6 100644 --- a/tests/test_managed_research_scenario.py +++ b/tests/test_managed_research_scenario.py @@ -1,5 +1,4 @@ """The example oracle must reject false conclusions and unadopted dependencies.""" -from hashlib import sha256 import json from pathlib import Path import sys @@ -7,39 +6,10 @@ import pytest sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "examples" / "managed-research-team")) -from scenario import assignments, encoded, evidence, validate_worker, validate_report # noqa: E402 - - -def fixture(root: Path) -> dict: - dependencies = {} - for member in assignments(root): - worker, revision = member["worker"], member["revision"] - raw, normalized, stale, source = { - "initial": (90, 40, False, "filing-initial"), - "corrected": (75, 25, True, "filing-correction"), - }[revision] - work = root / worker / revision - work.mkdir(parents=True, exist_ok=True) - input_bytes = encoded(evidence(revision)) - (work / "input.json").write_bytes(input_bytes) - output = {"revision": revision, "input_sha256": sha256(input_bytes).hexdigest(), - "raw_fcf": raw, "normalized_fcf": normalized, "period_comparable": False, - "growth_supported": False, "independent_source_families": 1, "repost_stale": stale, - "source_refs": [source, "prior-filing", "repost"], "reason": "Different periods; one source family."} - if member.get("upstream"): - previous = json.loads((root / member["upstream"] / "output.json").read_text()) - output["adopted_dependencies"] = {member["upstream"]: sha256(encoded(previous)).hexdigest()} - (work / "output.json").write_bytes(encoded(output)) - (root / "accepted").mkdir(exist_ok=True) - (root / "accepted" / (worker + "-" + revision + ".json")).write_bytes(encoded({"turn_status": "committed", "evidence": output})) - dependencies[worker + "/" + revision] = sha256(encoded(output)).hexdigest() - report = {"initial_normalized_fcf": 40, "corrected_normalized_fcf": 25, "revision_delta": -15, - "growth_supported": False, "independent_source_families": 1, - "repost_stale_after_correction": True, "dependencies": dependencies, - "reason": "Correction reduces normalized cash; growth is unsupported."} - (root / "lead").mkdir(exist_ok=True) - (root / "lead" / "report.json").write_bytes(encoded(report)) - return report +from scenario import encoded, validate_worker, validate_report # noqa: E402 + + +from synthetic_fixture import fixture # noqa: E402 def test_valid_dependency_adoption(tmp_path): From f4e7ffe6cc47304112224f5c654e930302ab4faf Mon Sep 17 00:00:00 2001 From: Yuchao Wang Date: Thu, 22 Oct 2026 08:54:43 +0000 Subject: [PATCH 3/3] style(tests): remove trailing fixture blank line Signed-off-by: Yuchao Wang --- examples/managed-research-team/synthetic_fixture.py | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/managed-research-team/synthetic_fixture.py b/examples/managed-research-team/synthetic_fixture.py index 5333767d3d..35ebe702c6 100644 --- a/examples/managed-research-team/synthetic_fixture.py +++ b/examples/managed-research-team/synthetic_fixture.py @@ -36,4 +36,3 @@ def fixture(root: Path) -> dict: (root / "lead").mkdir(exist_ok=True) (root / "lead" / "report.json").write_bytes(encoded(report)) return report -