From 54323706b52669a1802eab4bad889a22ade9e9be Mon Sep 17 00:00:00 2001 From: amertensreplit <49614208-amertensreplit@users.noreply.replit.com> Date: Wed, 10 Jun 2026 19:47:39 +0000 Subject: [PATCH] Add skill version timeline (fingerprint lineage) Task #14: show a full version timeline for each skill family, not just the single most-similar prior scan. What changed: - OpenAPI spec (lib/api-spec/openapi.yaml): new GET /scans/{id}/lineage (operationId getScanLineage) returning an array of ScanLineageEntry (id, name, verdict, riskScore, relation, similarity, comparedScanId, fingerprint, createdAt). Regenerated api-zod + api-client-react via codegen. - API (artifacts/api-server/src/routes/scans.ts): new lineage endpoint. Builds an undirected graph over all scans linked by the comparedScanId chain AND identical (non-empty) fingerprints, then BFS-walks the connected component containing the requested scan and returns it newest-first. Works purely from existing data, no re-scanning. 404 for unknown ids. - UI (artifacts/skillguard/src/pages/scan-report.tsx): new VersionTimeline card rendering the family as a vertical timeline; each entry shows verdict, relation badge, similarity, risk score and date. The viewed scan is marked "Aktuell angezeigt"; every other entry links to the existing comparison view /vergleich/{viewedId}/{entryId}. Card hidden when the family has <=1 member. Notes: - Lineage = connected component, so any member returns the full family. - Verified end-to-end locally (created new/modified/identical chain, checked lineage ordering + 404, confirmed timeline + compare links in the UI), then deleted the test scans. Replit-Task-Id: c7f87ce6-59d8-4396-b16b-f20846f42f0b --- .agents/memory/MEMORY.md | 1 + .agents/memory/api-server-local-curl.md | 15 +++ artifacts/api-server/src/routes/scans.ts | 83 ++++++++++++++++ artifacts/skillguard/public/opengraph.jpg | Bin 82375 -> 82523 bytes .../skillguard/src/pages/scan-report.tsx | 92 +++++++++++++++++- .../src/generated/api.schemas.ts | 46 +++++++++ lib/api-client-react/src/generated/api.ts | 79 +++++++++++++++ lib/api-spec/openapi.yaml | 69 +++++++++++++ lib/api-zod/src/generated/api.ts | 22 +++++ lib/api-zod/src/generated/types/index.ts | 3 + .../src/generated/types/scanLineageEntry.ts | 33 +++++++ .../types/scanLineageEntryRelation.ts | 20 ++++ .../types/scanLineageEntryVerdict.ts | 16 +++ 13 files changed, 477 insertions(+), 2 deletions(-) create mode 100644 .agents/memory/api-server-local-curl.md create mode 100644 lib/api-zod/src/generated/types/scanLineageEntry.ts create mode 100644 lib/api-zod/src/generated/types/scanLineageEntryRelation.ts create mode 100644 lib/api-zod/src/generated/types/scanLineageEntryVerdict.ts diff --git a/.agents/memory/MEMORY.md b/.agents/memory/MEMORY.md index fba198e..5cc2357 100644 --- a/.agents/memory/MEMORY.md +++ b/.agents/memory/MEMORY.md @@ -2,3 +2,4 @@ - [OpenAI gpt-5 temperature](openai-temperature-gpt5.md) — gpt-5* reject `temperature != 1`; omit temperature in OpenAI-compatible clients or AI analysis silently fails. - [NDJSON streaming on Replit](ndjson-streaming-express-replit.md) — use `res.on("close")`+`writableFinished` (NOT `req.on("close")`); persist on disconnect; proxy doesn't buffer; gate fallback to avoid dup rows. - [Skill fingerprint & relation matching](skill-fingerprint-matching.md) — don't put display name in fingerprint path; match modified by file-path Jaccard (hash-Jaccard misses single-file edits), report content-aware similarity. +- [Testing api-server from shell](api-server-local-curl.md) — external `$REPLIT_DEV_DOMAIN/api` curl returns HTTP 000; curl `http://localhost:/api` instead (port from workflow log). diff --git a/.agents/memory/api-server-local-curl.md b/.agents/memory/api-server-local-curl.md new file mode 100644 index 0000000..30c2079 --- /dev/null +++ b/.agents/memory/api-server-local-curl.md @@ -0,0 +1,15 @@ +--- +name: Testing the SkillGuard api-server from the shell +description: How to reach the api-server with curl during development (external proxy fails). +--- + +# Testing the api-server from the shell + +Curling the api-server through the external proxy (`$REPLIT_DEV_DOMAIN/api/...`) +fails during development — it returns HTTP 000 / connection refused (the proxy +routes by the selected artifact + mTLS, so a bare curl does not reach it). + +**How to apply:** curl the api-server directly on its local port instead, e.g. +`http://localhost:8080/api/scans`. Confirm the port from the api-server workflow +log line `Server listening port: ` (it reads `PORT`, defaulting to 8080). +The web artifact's preview, however, reaches the API fine through the proxy. diff --git a/artifacts/api-server/src/routes/scans.ts b/artifacts/api-server/src/routes/scans.ts index 30ff7f9..ddff4de 100644 --- a/artifacts/api-server/src/routes/scans.ts +++ b/artifacts/api-server/src/routes/scans.ts @@ -18,6 +18,7 @@ import { DeleteScanParams, CompareScansParams, CompareScansResponse, + GetScanLineageResponse, } from "@workspace/api-zod"; import { parseZip, @@ -639,6 +640,88 @@ router.get("/scans/:id/compare/:otherId", async (req, res) => { ); }); +router.get("/scans/:id/lineage", async (req, res) => { + const params = GetScanParams.safeParse(req.params); + if (!params.success) + return res.status(400).json({ message: "Ungültige ID" }); + + const [scan] = await db + .select() + .from(scansTable) + .where(eq(scansTable.id, params.data.id)); + if (!scan) return res.status(404).json({ message: "Scan nicht gefunden" }); + + // Load only the columns needed to reconstruct the lineage graph for every + // stored scan, then walk the connected component containing this scan. + const all = await db + .select({ + id: scansTable.id, + name: scansTable.name, + verdict: scansTable.verdict, + riskScore: scansTable.riskScore, + relation: scansTable.relation, + similarity: scansTable.similarity, + comparedScanId: scansTable.comparedScanId, + fingerprint: scansTable.fingerprint, + createdAt: scansTable.createdAt, + }) + .from(scansTable); + + const byId = new Map(all.map((s) => [s.id, s])); + + // Build an undirected graph: scans are linked when one was compared against + // the other (comparedScanId chain) or when they share an identical + // fingerprint. The fingerprint family is the connected component. + const adjacency = new Map>(); + const addEdge = (a: number, b: number) => { + if (!byId.has(a) || !byId.has(b) || a === b) return; + (adjacency.get(a) ?? adjacency.set(a, new Set()).get(a)!).add(b); + (adjacency.get(b) ?? adjacency.set(b, new Set()).get(b)!).add(a); + }; + + const byFingerprint = new Map(); + for (const s of all) { + if (s.comparedScanId != null) addEdge(s.id, s.comparedScanId); + if (s.fingerprint) { + const list = byFingerprint.get(s.fingerprint) ?? []; + list.push(s.id); + byFingerprint.set(s.fingerprint, list); + } + } + for (const ids of byFingerprint.values()) { + for (let i = 1; i < ids.length; i++) addEdge(ids[0], ids[i]); + } + + const family = new Set([scan.id]); + const queue: number[] = [scan.id]; + while (queue.length > 0) { + const cur = queue.shift()!; + for (const next of adjacency.get(cur) ?? []) { + if (!family.has(next)) { + family.add(next); + queue.push(next); + } + } + } + + const entries = Array.from(family) + .map((fid) => byId.get(fid)!) + .sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime()) + .map((s) => ({ + id: s.id, + name: s.name, + verdict: s.verdict, + riskScore: s.riskScore, + relation: s.relation, + similarity: s.similarity, + comparedScanId: s.comparedScanId, + fingerprint: s.fingerprint, + createdAt: s.createdAt.toISOString(), + })); + + return res.json(GetScanLineageResponse.parse(entries)); +}); + router.delete("/scans/:id", async (req, res) => { const params = DeleteScanParams.safeParse(req.params); if (!params.success) diff --git a/artifacts/skillguard/public/opengraph.jpg b/artifacts/skillguard/public/opengraph.jpg index 38feab2cef24bc0fc621492bb2955f9d1814c6cd..84f5f154dfbe2ddc0780275955ae9cf559aa7767 100644 GIT binary patch literal 82523 zcmdqJ1z4QR)+X8nOVAJ;8j>Kv-5N~@P9wn`0*$*nNq}IDH}1jRp>YfD4nc#vyM%CI z?{ogM&zbw5nR#aZJNMq=>EiuLR!Of_->Ox$`u@lL65zSCxRf{m0RaF&c=!X{uOR%8 z5)sk+peQdcB_sA{Mi1a2Ah7}fR@RR8iW2W%scUGyLS6c^#$%p7#KHFQ|9=u5=w3`c zQU?IWnf{Y9|1SBNp^*dRp}^6@hsyq;@rTahJzzYOKQZkiHuw_@JYp9|TgQhoA0Dy2 zvZBZXHhjReCV#;Of58x2`^WMj4`l?bES(pH~@;5@VfKtx7HeS(aLg!tGu z1e_GVqu}8y9TU7)q@?;jW)G_{xSs`JJXCmsgNOro z3pf%L)eXSGd5(jF@b4pq-;k!hg78za1K}H?z+m6Jz`&=0U;f`3y#*=YxY#@KQbeW^fO%O1S$ro<_P5Ug>o1G4#26 zLlLoOf zI&7I{PLg4$4YsK4zp$xn1*Tgp7bg|9;e^I}7qUg9#Lnr)39k!sI#lG&`8Ae(?A>mz z!oZm`bJpW(`{MJX`#^#z9Sg<*C|#bnr3xnB?DX341#lH+kPs9fb`MA)GBa`6X=($A&%*@RQY|uIseH1~7Nzz^wr)71 zg$s;N;-lL#x*4T zRmd@UC-rQbYh`(O!>lzPX2i08LBcVrM>RssxzJb-Bcc2=Ej1f|Iu=LUaS_DD1+AR; z1Q_b!@KMQ|K`pqJ{?f*oHBVDav!bl@PJ&s1i4c!C2{su{C8hv7NBf2<&pkl)EZD{c zbm(~z{Nth@!pOZF?kkzM#bdWf;Wydt_4+3v(dpo#e6r`fgI0a0&&-X@Qx92TiSkQ} z0X(a(ietjc`Z@Xzh$&4ehZESiVV_zS8cvT4IF628(O9xuL~oe~TV~?d;Jsw^yJ7;B zS}CgANbGFILNZ0pk|*_&OH~)4iAPRa!c{!&hPCK&Ljl56%!SVNGaPN*sJ%b{0B1Oy znkO@?BJsAmfn#~)XmhrNvASaI1`R%!dN*et!i>ZF^Xpq88t>&a#qYY;%TFx0ByI&} zH)iV1p9M8TMWjJ++ihU3jMG}4Yw+LC{I_#3Z z;O&4*9qQH%1v6F##i%yC#kklBrl@`4KP;g}&eg7^D-PS}B{eXjC>H&eIQTnQn#_@IouwXuGn*H1(8m0aUMh#jA z{6#hbirG=7!;ITB#BJA1iB(Ul6|Bg@EEeir znhjl}8kR88{>haE8_#d?b85;x!L6HLR@i+_p`o@8B8kFg#7ORwAO5?`*1uoW{x{@) zvdy44SUY=(s>Yz><-cD(C!#)!1`Y|y&n$NBr`t(twYUpF^zqV*Z#WZ#>sh#_&5T|( zr)vYE&O!%hRL6fEq^=nO+H1s>4Ro|U%VN&%eciQ=XE3W z`oy!LzwdlV0=ll9++S-f#@}>b#k~xaQz^0AWKnbRH@~o&oVt~_@ZGyjmhmr{QFwC> z<0>BCGy}TbG#P%({a#dDq>C=gn)@TY->xQ7`5Nl%-fr~+Y z@pgmzWJ^0Pq~gbRNfMi|UF}R2Jgi$rXm zK^iN8H%eA0?c;lcC_}<#nK}8m?R9x9n5I}Kl1#lqs^H4*bhio$QB|YBz=D5zb>`gz z*cR7S9)>QC^pobTQG83O4>E^>--1!Om7MOX6 zHSh&E52g1+~vrmM>J4AKs_V((6tcxk5TpQ7-kbNAN7 zLhJjO)`1i6_zKWMj9>dW8QL-}x!&?3uk#aDH+WTX_az9B?a2*k6tVa0^=dv^)jePz@}73pk_iS+l|aFG zvdL=xwuNS+i711{jL0OJ*S0Mf&)y7qgGcHT{%(LmdR|#7D0k4MTNXg zz;Y2@t@3mAThou7eY`OcS2augTRAtv8c8Pd5$UC3ya|=h`}!(mz2(iXZ4>q^<6rd< zf!%K32_4m!UUcT9-@Y{2307z3zwDYuSm$HneRYd4eyW{e!0jQpcM>3@;2~p&{qe}J z2Cm~*Ua{^HdGahQ(e)L=aQv!}JP-nuqIn5Bk!HC_%;Zua4eM7`(pm#qi8@h8;OxH6 z4n?hMZ2#UdiLaOGdWhwk#cgh|BA?fQC3N??aLWdp;P%52i(}~VyFPby2q7ZD({*x-T`)a+cdZ?Tb^DHqwt`9*lQmC0T(<|l;q?QsUf1;vaTEs!}1=~R(CNW zlsv0MIusQ>J~-lC@7cc%cX{?G5_2^x}?~>a;6Ww|cYTiTphvfUKE#i9Y?Ns|j)!l}DF;WFu(# zL7aZGD6#?^PS=)RFYb;iQEhJ91ynEns(hEQn9v?jG|)X7wT#<7m}|tmGA?WtduVGM z$q$Ja?@9jLRtOGG*+aZscTEcjZTvPj!);#zeU?veHpi&K8FhWkuOxZtyTjo2dq_cP z>dLZl*wNyp4kemZb!qORV*eLs*g0PBt-56hFQEtqJEb`BleiDT4B65ob1)dGp zUufYxLyn(NxbFc*=7nY#xR!MJ#azr28$+AjG(BwXAAnp>o^|It{YL+VRRe+4Pfu$% zkF}_^Ug@xzSx`=P9P=_$EycZrolhv*$#is__T)8OH+r-Z`jQU&_Lj;wDbMBNXS{w1 zmAr&VIXmQs{u0TCSfTn9u6MWly_peKv9hWlPLCWFk_ZZfyaOR5dg%puC^Fd$ok2FA zHQEnLeLTMxtYSKigLx&ACXc;W9EVQOe{=)6^;S@65{zXe7bE?gF1-Bp*9;U<~T05euV>*iO!l+-Ab!z76O z1<*DUnVK`)xdvg4ZO8!u0~IJxg7`&GEW<|5YhA@f0NYpqb04{|O=x_tQ_LuT@=_`j zMoi4;|HeOdQ-Kl5EjNOp>4>Jh2Gj3Hx=F*J6qkHRFL!|&??8Kb7_)_(t0VIrezF74 z&$Xm-1u}s}#G1t?2P#_nZ^kUCcNlaG#}d+jC7vENX}kj-2m-E0lvA#&KBHFhw?g}3 zGZQMMv-IGYh4rE0ywX^O(e$Erod|%7fWumIk{IhsGM9E@@`kZnMs`T2ES`0n0}+Yc z9-6Y)8yn8RymTBqh5rG$`L8VUryfs{JUS6%5HdbM6^$xB)*k2Eq6VvL)IIc0>W9$SN4|ro#A`8weV>Tfnn4mo)EoT-?c2PNDYyJ$?8R|v7LzEj&mStolY|{sv3{I3>{sIa^rQb2pVJP5shOMhT^u{0`*E$=+F+IzS zswx7Dt;0iQo+ss`E4Mf|FF!xmZ+&b$Vn!<~lqw{Q>f_OtrdLF)EpxOJ{)-8CSn)_F z)zHKpiRRL?^HqT<|7#6(nidIsD;Z6Ot<{i<_dHh4A^vBGQSDP%`gNrNq3%&!ghj(SkebDVX1%d=0MzI%N?x^?8KJ*#A*xY*b#1mgurR^IWh z?=Xa7ruKi#PmH{n>l(sbD}f4UFZ*@WqS{#;IkbK$E1lNZx=74E(?2_#*4-!0yh@J)rvHB^hUnX?G*`LY$fNmxEB(@wCO7-SFbn)TEC~PGrq6 z_!u2R3{2VDKZP=u#9r#sPHATMO`KT*X-(PpU1de6iKI5s%4+JvZj(JKAWk$yL-c$) zDPL@}s`^A_hW4YE&a8R<&JL%91g#~kywnAeGH`5!t;a8{Z#S}HP6-8x30!b1Cg#96Qz>=`0dvIGFDK%Gp?5eCyV$3;8>gusJnBD@G?CT)EkV)M27||2UL5&Iq97c&Y`z zDMjL7Wt@VnYhiqi^98p?H5kA`eDZ7WrA;*t*x7=l8J_Bc!=%(t$zu7@Kh8}Kg!pA! zlc7_2U^dv3ZI}|`gefxL)%Znn+($xk)u+mqB#-;ej4cnzwfT-=Hnzv6T`N1r7mi(2 z)G04>{dT95+W|LRX!Qc_#vvq?*eDjX9(p4BF0$B``fEr?xEeD3^1iA!)1mncrjDfp z?;wPnUT-Z<9Lwz#HSXOK{slN&<)C?3wkeipv}4<%U0XaKfz6*E*!Fs;yX?*WZvEh< zj+UCd2$)*daKQg*m-b~cpn57at7>7BRcn`&s;$0?H%y;t8==+E<9+Mgt9HH0l~QsF zi_aQ`gOlmA9KY1Hv?6QJ{TioGNJcJQO9eHnQq;Q(fv0U06eX&zaLLBz*!oi~@wsdc zo3IkcwW?pp*4dZ!dvqKaK2$#w@^bo>`yX;Fgne0m6xYX_XH3=$oaAkLY zL8P{y0_7CWf+r^NtNr;jzy0`zi$m%_D%JB~39e&Kw2P-g4AcA+oXVIn7qXrUT~AJsa{cng1> ziN_qvGd(a324)7pHfob`uKjrIn{2BaceTy7`bpsM)L@5I7RH~F6viZS+HP2g0gWXF zn>Mu)#u<2AF_Y|IO2d4c(1VSbde^{tSDr8|6arjkEIfj%ZSw>Dy@qb2(W$rRMW|u> z9WUt`!(Z4(`ttEqG;g|>e=E*St;mU`2=Ecoh+vAX%^%<{TF@Hi z7Ql$+fa&G$r+}C;0%WNsfqmgvufnRvT0$dtik&)Z=CNuJoZD8ZchX0Ls>u{0# zokjlaY;2n)1mnD1N}w3ZCQ8~Ak;=NZ~jhGY3{szgn(k5((=3-SHP$c3t}7Ukjg z42o{{AssD&42$|xyu{$L`FWYlxMrCj9o|vbCuK#Z5)+^2EH|EUY9o`DIL0VF)$*_+ z-CAc)3K?*-Xt$p(3xEl_AqG&7SSr6j$HdnW)6r28lfh{^NL5_I5)_HpJQS*?!89rP z1cdD`LJDclOTxGA|>SyG{MMjx;EJNf7rfsEB zO6tu#l`NTbK}YtF80G?=;|o!%QDP+!ZE($)3T1#LUYeKtuWH@{s8;f)TG|`MHqY_7 zoJnKuqR-ErLbBm-*UY@=9*7#}OkZk8H@VFdi@DhEl0uUUP8w9Sk!92|s&6>Qb7*I*=mwTIO9sB+DnTlXjEvk_YCH)#FSBf_KflQKj1kW-uY<|x zkj8IU5yYl?3VKeBb&KCvWzL#y4NT%Q#&}1{Dj#*5e-v>0z3S`T`sR?#@tmi!*x}6S zoTD8qPj$}DP75JPy-Y?4gQ?cfRdF}O2>ZbD_^kNa$-Bk17h?ku@;t;-PC`9im_ddB25M>in>#iFzIJN!*>*qywv@^wyeYCX++HY}Cs}_>DCpFrEJ}%GNB9;?%k+th$-HbJ)vN% zqM&#}@#=p$`n4=7w$Qs(6&_Y`Y?2x6KP-=d+q$|-A`bVg4Y%7?uX6s8W|2H7j~4=a zmi>Y|o{Sl3l|3p&gxr+q`!bGHuzG*nY@q2JGE--SaN=bfF69UtY2xA3b3yF@Gvkp_ z@tZ3of*a|0s-kF>X36#tSGO_HbtX}_^yy>;d?D>!*FnD7OO9ub4uSz%&$ikCx9nK> z(FaZhw}#^5uVYh*DZK>7;NnW0{ZJ*i1anA;QvKXB!;qlj^D=%U zY&D#{wOU1R5Y<{LwSu(P^yp&0i2Um7%27oz8Tw@-+#jO}KXkfjemz*{7-T&xIW(yg zswR$_Nj6)@@$?gnIef!DozzuHPmkc>DE}u%HUEt*q|CTlLDt!4lL}#SgtZ%3Cj^#f z3t62~wWmSwMJ|A%7mM}LB3hV}5L49&eE|A%c;7}_RcOs+$_jBRC&I6-m+6LdhG$*v zwWw6r>58GfHoI&rICQs)vA z4Pn0?G|JG9!L)P+ds=_3NJAlBP#k8Or*d}UPb;Mfp!V3uV+m^t^JOYM^DbW0i^|On zK-l>{ELv@DP0DXkOO&D{170!SE)7%b+JE`AF6)J$pRBw|&A3qL#MxlTX!(Gz)GJng z;^k!E>JnfAQvs%f($e`^PA0V+zUX@GaZb*N6v3A4-dFDvhK2^pHzRKFd9w|%mqTql z)_9sx6<}nUlRlP6us*!V$9ic!e-K6P7!2oT5e=7et&+o_^RwGtiXO-uWu`4^e7_{yx!g1!h;g@oCG+ocaRkM5z3k9_9VNcT+1SVdpR{GJ^CKtQ16hz z76QR!dgZ4Hy*i&{7A zm|99VM3t5}o1q;&{$X#jz~6XKUS^p=eXIQ^$Kuj>NDZ^ya;rxZm}+JV6OQiYdz*#q z4?1t?W#Y8~t}XeMiPq7RTxxD-*2>%Gd`15nxlPr#QGNyFLTJBSiV3LX4ze05EhxfU zsjqk7YzT?vgdlv2cy_sDM{R?{EG?`fA+HCf<}zd(M)JjibO~$T$_;5+aWUtmXJI7Q z$Q_^XNg#}%2en=x*N6tiFR4_O&UkR_Vk+f%NAxx^ExvWuy9(yW6`E(9nxma%_!8h} zHt<{FWGF>Y0EDedU`{=ZylDj~a=sMuyA9wvW5Vzrh}mbd!9wy~$3pb(>n3F~#?Q!8 zz+8&*ByIe(_x9LyDEZd5#x!Xx1_M=-R)@^f+Ly6}H;-gt{hH6+)t0=7u|Sl%BoB z1ykC3B&t6{^@p*#VhK!*zF4O#2rwyD&`h&3!uv%1dg7{=s_tiCZF1E9kg~1iU=Esl zt%fw%JfR_BO!~5Ee`{hz8@0B$kGl6mYwawpHRq_X21@P9t1glGX;$x$fG1C{^XTC2 z)3UOd0(jn$BA|Sm*cBJwU!t4LLMN&-FV^zR%r6XvHMAd2P~SAWMCh&8a;@1joAT-0 zwrLz|Z5!klq=KsYl}V`i!lOx8K_-X+@B2mT3K)`<_tW4+v<7$w7PMYKxLWn-Ef*q8 z@awS#57>!%EUt5R`9)_Q2qQK^g5v2b-+gqp7i&4OOz~9`$jY)=eDv{C@(H>!Uw|Pn zhg5;FExmRT}f7?QZre%L~?+7O#1q% z{>F&5l02YYENb5@1Ha`Xj?@>xbM?R%JbA+=bPYxPKAHM)v9_FE?%D_Kir z%j3Wf{y^ZhrsgxMro)vLhuw4JikiK_jGxMVP)%9(GJ-B0hDA!$)QA<4&&~wv_{mCi zIGCmtbDb6ZuDQQANjpNrwQ529A9#n{jyJN53c~oa;)qrp%-2jIi!(sPFYB?JQbO}a zCKPehuZpsL;IY!?wF#UrFa*Pikr>gPhqag{pSWupyuloq?xkE~v=MQ_&GJAYn0c{P zXx`~ROGjts$4!wP<$*$F>p%vxCriE=F4mr-ZmQ=TUlo%ow23`Cmm5G`@hF!G zaOY{RS2Iza)3q>dAeOkj8@{C$kC{J=#B{4&A8MyKT0FCeB}c<+cL}R` z8po>qG%zFZf6MKvw;<(#FSUlrw5slBA|c<7KhOS(>bwV7oai*M_}+%fR*>YV&1wlu zgcU=BCe`yiWi3)720jtgo}SZBUcIdy*D@~f^2#1>lboF~O;Abn7u~3yVeDRZkbkRb zXuSMO@1lk3k!JK(F@f(Nbma-}N_(A;T)AdvgDq9gE_}HJ%AkQAPB?rL;^HD-^=Iz^ z)IGe}VNAA6wxCxb&z1YOhKj>i9t=3wG{L{8*K#!`2@+>L#Hfc%9Y-bwkK38yDRRbK z7$%g&!0%OBD*q@6FR7Y>_w?5V5L^zKB{9Q~BX|_7IZ|~S^*?6+wKH--Vt*O87MQD~ z;@rXKr)9ur4c>8}d*Xrw@rEQ~oOHVfn0%vFe-K1D8-rZ_m!U;#Vm}T_;9;=TeANFr zX{8JW)5k)8n~{H8t=#ZynF%i%;lr6fZxQoZ}&XfMecUsI2t6X3-*tT_=itWZ1 z9jk{%u&ZCPy>)5CSd7dbv>|k_UAI+k@UqXTZkOz1P|Ed>nXpsiizbO*anK$c`SqI+ zWPhHm`cu2W%0W>GIx(}6Z3V0z$bOO|nK)I&+49z}7}zAOTwI4Fs%f-)ImdOfT&0D| z6&6;07&a{`CaTaNWB5Xf83-V6EP;jj{8Xrlt_I>}Pu}sJmR)rdg-BYHWP2#Azb>Bt=mSS!C5> zSPHO|ZSwgganK2`TKjjpJ-C)&PFVf9wa=(5Ue_fx7nh1x@nqErtL<}CEVjt2FXyKp z*o}X{KN~YmIwy(gd!3ZTs>&1m=H_wjs+Gt)+H5^t5-jXBbB0|@QOiWfB}Knb0oA*R zDPJT6ZRiT0gf|&@WolF826xlDC?B$aAKWd+9eU;z%nq3pG)TiH)Jp5Zx7^DCa=j-`%H_MCMGr^&XiQM*Fb;li$U zbA>N8Y-*F~nV2YSH4}Fc3mF+izwKMJuxU$;wH7GcB+oyqAj85w{&*mK6LNCbEu0Je2y$ z+HPm1(KzhZC8IE}AhUjYd}6}Hi&F&~vNkLzhe~r(2d05W3cI`Nq5QG#OT|F~jG;t*j%HhNl|xHhZZD6>&p8-yB9V!HsWT?NJs z$E3!+{S9d@nQN}CINpF}p%TL_5f|A6QdoR2~47pV;@2G{XNC`*@Ra=~E>MCbY z(EI%JMjGAlw#Eb6_ITbk6m_t0pw9Ae{-vn;GIJ}i@!)#}cR~^dnK zHu;y|(EvWL?*ZdxmmxVT%=sx1Sz=5I2NXLAGtX*+3rq~@a2O^20B`=x6)h+K10)63 z=QzKQe9__Y2e5vufhG#Z`9D)Np5pBtcew5MpncW|;Wr%Z;rWJnJK|<*S5hhj8E}qR zY^AYzG#|!R6r~U7jFd8W+3Kh)$4z#X|TxKi0Le4iX%#%Y>@*(vT)t zc%pj-OqOHO^d5GMbh#(2I!G#a3Q}D;vjwY%t zxQG?8cy|8JEOY6~C;VXG{wLOWENCOI{7>8?@8X+9IzIVN42HX~w2kur1%hG^Ghup( zK@a@C+z~&F^>$f_w%~ySFF2$7O-O&(XI>i7DQFS*qt;P@^e*2HUd?btKG(A zbUD2jxjaNlgDtttBR0L?3`lKHLBIBES&7|#)Q7_ljrl+(oaioXPyllAnJWxB^Vg>! zBlgE+&g1ZzUsHV4(LIk~yz8yWsrpu|66GV1f2<41(D*-DjT&Zf9P*J?Z-aln;Loe5 ze_jqRq<&biqpN<06Mh$h(tUc+QJLOmb{>UiJj1~e!?7n7u9?~u9Lw>JCbWp2u(XWv z{|RogV$gnuyh%Cntli#jM~ADTIdR)Mr{r5qrJ{1zj6q~$@)$dss;Wbd^uxP>Np8Xl zv&GoTxPI#z$!H%6TG59|Wx1e~hXS=%M|>@VV`g+}GG@`EFQ&B);7Q2}L5+&rvUQQi znEp&H7fdr!0k6YuT;+>#4<_z~Y| zcLd4xzTV+M`NAdQmfwncKo+%bJ*1olT z8XQ$?RpeMx-><_Jc5a&*!P<8Nf;f;qoRhGio`?|8wi7a!qoH5c5Pdjy=<_m|jABpaUA)?=24Zrc z*%K8u0Ai1KR3W(S;pLX26b7zO1EK$F#qO+~r`@mG$XHgwxM4l7JeJe^(mOA^)MrmrNO37-NNKHcYWh= z{PapU0(wtx===YHS%l^;m#^fb#sj`)iHgPG*w2Z;nacU{Csp|;qO01Kb~2zGI7A!I zT!n_f-)dCQX3^Z!@ydcSEq!>uU|WmZEEEJnMqdsytB^RyDc7ReO??D!=p#DA#7Y&1i7qN*w#z7b5=jg zP_~JbEgqpI28+Jhv${fj+GawFhw;NyWDl zGT?AjrJwPu)!_cd10?=5%IrRCWP8A87g~`)78< zFFY7MG>UMn+X!OEs~%)BX)8|#MljZ?PCbVB5|}U^#ybpi^Q%`$RyVL7iL}9ipQDYU?-9K2TOIP*Sol^oa$C zxI_tX8s5|v#b+6o!zELvyN-a%M z@0PM-?g4y3WiLN0)3WiP-A{*Wt-w{rCfQ;2u_;5W{I1h{ybvs^nuA4jdkG3bb6V>Q zi^0SNn^}3Xth^f5HhDb>Tw~_1wYBV$^BbE|4rNOR5=i98mgc+8_J#WNd+-O#uvES| zvd3Dfh30M$CL<<7R$xD3ivRk|#A@=9f;JijeYjG9Nl{e;i%k(Jua-y6Fu1X(;lm{F z*yw;m>_Gr*WRcu;b&Md#D$K}v@CSp{AT%aCD>b7To+I%zo|GYR?7)=@fT+nXpO=3D zG2>S4RBh61#4Cv$4pWyB06T=dKp-ZcOjdKyTrJHmA;)o_zJiSGO`=~oOBWP8Mg09e7EWxC z7t?w2tQ~QF{L6SqC?zG(t@zF2Y+kXJ{tD;wgM1gxq0!=@m8T05El3%< zhe46UoKfs7P<;d=EX|c{)2;sVCokRV^f~@@u0wO7u`I&@UnfM)K7g|ZsixZt-l|pT z#HZhf1J??_7w-WbpLEtwIxAz;?h49B_I8<8#=%UYE>F#K+)%iEkU~9@=RrryzMT%y z9*7EHm+E#k4U@uH*CcgQWYJ=e^aWzij43x>Q%dh4c?o>fuT0JLR${Y_B93*zRAc7; zVP=vRTJ3cnB3CRK4q`14eV&d&9?V@*mn7m4s-RnYF|HQ z#z0>x|Cq<7j2B&Mf=Q|PW zRCNd9+6m3&&DRFHWi(Q+oQydIyB5vm;~Dyu#PM& zG3G9O?mOt%AXZ&RnTRrxg;ekw6u<4{b}RDP?Z$Rn_U)UcJPI#mnj_U10a&7@GL=2f?x z;-dzn3EPR8k1&7SCQHk-J`NO=lO*bRVC!1bHGWWDvBNnHZFpgnTo|?15Byr`sNyK^7C^lMwQ>6QhJB! z5jfQNq7L-{-AcbjY9s}P<>M&fjvsHYTxXgVm=W8jH>mZ4UFxN*zIiZB=47B%+yOSA zs$&rjSk*|Y7ppMm)+%Y`gt?nUaEekplx;@AL^OGk`z<^1smfKo zQmR;$Kr_Zxp3WXdx>tmpfbDb1d%#rnV(aRh@biqDF z9hSrr+1ABmO%n#H%X;$uCWRoA+(mE^*YaRpb6GycIm)?5tcz<6c35sS)Z= zw2K>T2W%nNRJF(7_kNL&%oP77aPDko0?Rw+S>iv(M5qv=5glhp8XKn(aGx&Bh=exB zT%2hx`$OVqN3d4!RS!rY&%J1aIr^OO}t&LQvr1xl4${Y4>1mAAJvIVB1G*fJqd}Wg2 zoPz~17jWwI&3?o|SKb0CVtBN$okf{smt6<*vMJM94PR)w)zG@Etn`n3J(-@BJPtxa z!4fK1*XqEOh&jG&sQA}Z(bA&$^K(o(JR{(JVuFbLA3*N1jLzA~B<=o#Z zQq7^;tI$~3rs$3xZZ^z~ejZ@5OF@hoCP3~fyc)9`*A$l9s64b&SiD>ngG8K{nSUo5 zfBw%a_uDHQ=`=fPv!`J8Fo%_^x3#Xwu zJrxxL&T(PoyS=Iy7Dmh{0AcwO&;;>Sn5V0e;Y_g;>(sD){UC7qSv;2~oiR?(X`N|G}rFkAiZGqVPh|atP49O5cSQ<{zQ$b(Zl7_j>WG<=IC@R6 zRUivC8DSm7D9#J4Yp_*q@z;!bQjaBh-QgQi6rm#6gR z5I9&KNqK}QGqj}5Ze{a@9BQ$z}*{xaa7Y}e1-2e`&*}!WTi&jQO5MT zU85s|5*#ntkOE|uiBG~`(ryb}FPl1lnz5-<+p886!&7WF-}RR%zZT^hb`VDWmb^Nl zR-F-59@OdC!X^YJ%Yk4z?0Supf5OHt7h#O6=g_dr&Yi`6X_w#wb5W^F?`CqS-d-R$ z;dAu%i>thtHRpfRt&{&_Lz}vuNRQR6Kht3iIr%vE%TiMefvvM^yT;Kkcb;aBKj zW<#T>*tYA}|L~oD(D=3em^jj;9BSKTW*f4cq9kyV*v(9%YXG?Iy<6XRryl%T)#MeF zsOzdG@h0UK!BUFgcb~E8N&u@MBp+VC^?f25d|ADhai4p)_pVkkJEyUaPbH)zkQ*#0 zef<1M+)USEj@i1!(smM5n1jssov&956YEzQsEcDV1jL^j%AoRTrP74Ikbi41 z%e2R8y_{UI>C5k_HBP)Bfg_=?b@Gd5D@$R*U7+RJ4RezG%v)4O0e$rcwRtV>!Qv|U zcc8mTAjtEumB-GAl#qRRDI;!WX)hLO8|uEUCPd@2DxcFdAIyjKm{WQe`$e+-X1ht% z*3{+`fMMhBZ$%NDIqQy+K1+yixN-{G#2sC#;A=YL>Z0e}(q@GJB+kvj!VW`VsPWDm zI_22^-kZXyKxv0CbsygIY1y8<094UZbX6S)U$<_c7l z%G7JM9}dmbsMCKg3v+YJOK0wl7~B0B$~$~@4z^-WQ|tO#(@plKN9;R@aYL`AZJY@6 za2%JCCtawYq7FnwF#*c~58gR2(0k}iP1+R|&a8q31tFJ}3Mzu5{{3Ije;i?Pd;v>t zcHqQB8C0o==qWih$^$QXe^5MmF8V?A+3S#DT$sJK+tCth#m$^-)8RhPAr@_3@KK3Y zi(Kdq1(T38Uz$YR(p#~}$2F&X$BSI=%N>E}qmiRlefG$2E3j(ikBej{jjjcoq5I_5Jx5#-@7uXq13G(xdo0 zP!^HeD*J_bL#M2q8jRigGb6@mz3uj4%WnE_`znmDmoa$6zm*ewFn91_@`mvzVl&kA zahs`MoOX~Fm%y^nFrWXY-dgw<+<0sAGhkUrUXJ`lBo2Y{zis2)-{g@F&xt&o<@={# z(g(RjDLeKv_Sv4LgsnnQF|xnOr-OUBT_g^^@V{u=|NMybKe}5kPd{?; zD#-G$UV(n`eeYr&YLqI#A*(5>yg1s5}qo1kecz>Gehd~11X{|DnpH_$M| z1aPaWJ3hs?Q2FUOE$z0|(U_RKAx?P}>otb+WZ<@$xrL0IQ(L&z^I=ebjqE?|#-pWb%7e`R(5J z18PdUqP_<#xKEKJ6O~4HCmJMn`a@cJ`|kmjv9ng<6FSbR;TFuYC0=!-U4yI=L>AQo z{3Imv*O`fz_@`;NjQ4<5?58h(XSdwKN;C1hll4=#B>M?y4{>nx)BjnB5dQY~H!*z> zL5a-%qqK~7&_^58qwWR!JBShG{M#xc_P1q6Rag5Z9C@P|2VQ?JQ8hJ~G?UYY@AMIi z3pd0Y_6|`%P&5_wM-!cEjo-7O(JK+SWe3Io#ok-TMb-6d zUVF`2*Eg=~n--#TR&8K3+F-+|MJWkHh4jCx_b-M>o0fwcU%88u3ztiMSIj@`&F)@ zjvweys}W$x6hK4?3cwDfS6~@Kyx5l=+bbD*F>D_nKknw9uVl+$O)V0b25{->x^HHf zV_({uE2!-H#z})OOSmpzmFnf{A*HsL^M`~)T>O%x&`B!XO5rfHHnh{nGAArHkbL_F zVM74pvwvS&3H6W4n13j{16>En4D+TQ4d76A(qSCq4rz0}p5YLb@w?{S zZ9`u7Ka(j-n!1okPKn-VqIQKCXe1VuJ?j|tb@jV@xs^kKuFA{@IEQRV>^{8HXMmHh@SSiJ$LRSggWGo zJ^A>YWBjn%Gd3Hpqv~#2GE)2?tolOyC5g1Buh*&@`1JP zeY`{!qQZ=&)$xQlhsOE+$~d*z62w{j=*=Fl#v>txRyuXbmgNydK``_9xPt}1p{A%k z&m8*wHUrnSS9BmRp9y=R5o0!)7kTw_nPe&tpEJT@>Nf8kKgRBPG=g9awo$31NOq(- z_HF3kq4B7VoL8D{l;CMW<&&7HxReywD_Ow{6A%w?TM;G<5Z7A~c&NmC{lwm7M5NNv z|8zb6Pr1PK?8~NSl#8cpXPG+`R&t80?Vjv)%%Ql)q9hAi z9ptE#RuY~1R|h*WhAPVJ?EVRIV*auLyPtEW^9t*R6vnP16T0L$tXO`sbn}T@-wsLM zi^vn@cJ8HpW~O9I?*wk%TESslpip~f))ESISa~0cThWMn@v7U+q9w1qw(yOZ@Py*M z42U!U``#;Uw|B*Tz2XuO{CF)K6!qKf?eMP2s-S+~paGW&p}=*;94-LL-4n)TyHwUl4yj!RuSy zF5ZA4ZD{Zpg!>O`C*~guM$8|0wXE_c?g&gssr8p-o;EIhx zxQK#^f(1E?W;RO#Oq9=s!1!_zq=)!%Dw19FQC^0oOl>L@%8*%`Pn}KW?do$&9x5%* z`}fAX6VCQwMX-nsmhrAhhe3IKYpRRXlCMOXvlo%2*6mG*c9HygX=&%bcIw}4$*H5v zM(nNfpC}Y6p@LfT?qzlT#KYRSG)8wDh{#ioQ(52D)%?v&`OinyKTz7WeufFzY<{^c zNFAwc?o_IbjSc?vFlU9}fvvK|Jcc-M@(UcN)DvEuD5oq^sA=ghP8H^ozPYZ(n z5^?nrepTe*xAiUd(fj)r>#gz9IPW6=<7@u2zonPDY_VuQN=$``&O z_$SO?;?*m!swU27{m4~>=*&Q9`0CSO=TE1LdKSaycYh5q|C6mdzeC3|3_bHDMSh|9<~?SMpaQoB!UXXwc%LHv5Y=;UuNr9EdJ||2u9d!x&0sQ$9gDv| zDeD&<_lKXqfBgZ#Uh^IO-9on@-nUrngUM^ZAAsN!iS6IlQ9Pz7F+uz6Q`4_sKKrA| zge^1OE=J-kcGxHm)7=GPEq>6H8`-w=SR9`~uyCT$7 z^McbmgWIEeK1*^}7bj;qLRGCypsgP@WCknW8fqGc@bp_StRL`t-dK&pznbpAzVW@X zffXIKe=W{YaSm?UeU$gD%w6*pWs|_T=B4Sk2{o4Lmc{dQ^;bHzuqHg?WZR!Dz-%OQ zFAuK<3!6B9pHuK>3&HrXUnd@0gmS}5TPZe@f3@h5{z57Ky<*3)mqJr}`TeQ#A6MZU zLHh%sdoH~G{@3s4{c2JkBhf*CQdYZ4IcfiO0i(a#=*p+9V!xj7SN{L+k{{R(;>k*6 za4ZKPX4X7v2;t@o6SPnuzf)YexwOnM<>=_{?{2-rC1@66_GpCMg-uyjG$J!NyzyP5 zTmzr>Fh$pw;x)y$Uy_nUiniXP1`(M*kzbV0fOLVx#sdQOD~7LhXYIz)#;742!%pZO z_V+D=7ffHSlxFe796r-LlR1&t6(!F2pLQ~3L8}lmx*>8GX30Z7zKr~#m9GSagvG`2 zGCCjX*QBNI{Xef*(lX$WLDXp6pa4l14!6G7pIZ)5`IzRz!qWcPb3tobTPazOh7XiU z+~j5?y0~Q=!fF}!>DK=D>;Gxpvi{VlMk{XeK%Y?5BT4V^puj{4t$4P*5r z34kryzvvgF(uQ+y{zEYN3n=}A{4GpmiMU8{aU45c^qa~R$Di^Y-!Vzcpv=5K*X$#AT&bjnljw+!VfO5f4W+0S37R)aspqziwzBV+z5@f-HeUGpr4f5_JRQ?&Bm z2WkI+<3b8v71Vq8tvnuA&8H{x|Lwv0<-pP~diU?iK~oeaA6GeN&v ztoTnZd)C~)CWij(D3qV2C&c%y44z>8h_*VSB>7`(Wj7`0eKNt5N5yczI_-*M^?vbE zk5xQ=Bvc!j3nA)xj^WU9MQzY-YtgBnKrHFH%i>uPBTWgD6UE0w_LAGEr}( z_oiLEf^TGVoBX`Ua3*MPCR87MA7&34$d7MZ+9wuHQK{q{U($C*UQ3x59>vk7A=ypr zk^_cAMrA_8OoiWkeWdECRPMuDYgp+qW_Qp*(=hlMEhm{_vs!(I-s9^a{xF`shsrG+ zY*Df56Sb!27u9mGAAmad?eRo*YPRi6I6N;uIk!DpjuUQ{>qK=wBb{}1jMM{+X#DbY zW>&^rFdpKX%=~sHSzd(k(dYVyxhctY6}M*GdmmmocNig=9q8$ zxjbkEqyTsQl|>jc&F4^ZezrpF%805(aA9czIgHhIYo}gA{Wzf|u+;21?``b-&_^JC zU2u*{iovddCEdoSgDNHetdtIJ#8{=k*N%%k%eJ}exhF<)pHlQIH|_Q{1Sj?2nMeZ@ z?=)>4iwx3-SUc7Pt^i*ZqF5vysgPykY883PI3{wuvN$s*R+Lk76!B&U#Qf5UYp{r$ zF7vv0IVq{pXL6ju)FCZbPFuzBSx-3oJ6pCjD)UeE5+!t>MaUk0{T>HK`ApdCeerD) ztsEzD*R-x+ii;C6QUbxud)8t~P9kUlJ`^_kk0$q^gT_`fv_%yf>T?2=0YaFy0tm=1t<~Q@V?Z|6LZK1cZKuyBWZk_RRYg|QXgNZD0IVIqtJqU~ zH+X#=X=J}_^c8_f!?oEixuzvU&X&YoZ`H|(E^Tbz=vbrNahDcgEZXgo%P5#>^815y z?3y{D@)r9v81;1n8K^Q#_<1)opaVrfke~uV_ka-)rOh9J+xq&h88yZ``xHs+ZxLnK zv)gtLVE6MO$*>^aIbcjE9(Sji$LC$2+1`FG>1E{Q-dMtrdWbNQ0;8bFPDl3Ogkr*# zqXADBO4G*_G=DH;Z0{@XC^*@3)34>r>Xmg?)<;&()%#Q=+J;PTGlrgSv~w68F?Rqw;{tOcoCXC)=Y$r% zRE*m93B;-?8TICpA!9v9Iw{R^Eb*d-h77yXSyP>W)m*5*=-@ZG{uhZq4vW~6h zFRrb=(W~jOm&Q+?3TEY%lZUfzM~n*4a(VCv;4Dc}VMlSoUv=Bdj?CLOcGugxRZ_re z*&?8`ZzI%uF#>A{0;lj}vZGR;%K_ai%{U-wjqkn3c0-F6RQ(#tXq5b>jWMtJloWjU zQr6u*wX#)tbxt3b4f1fAp}Cbfw*WSQ+C^SWGvfOL>pqA@mcp9R5r?&$+Fm<Lc|MjaQMYjIu9*9{zF7rn!eM67jJN<MfLD;5p}HC2_}(gGq?pAIcE-j62W#&BXB^Y$s*t!J=z=))h31ue6>ewQ_{H`db?{|> zU^+sdDN<6!Hx$q$t&kH0!3iNcbHK^UV+^9^;E_hJI(ymSZmSu6nVxm+N^)2V^Rq?? zE{MM8d&P-#der=81B`lnzOa`zF}YWH&5yZIDlV*F!C8=JmTf(+f@d;F9njtDb<8rA zf*|29o!>GX2Zt8T#`tY3FJpsYW}jxkrR93C61P~xoZ|2SusMW9;a#S=Y6TRfM|jKY zR5xn29|^12o9A?A2-#NmcP~3nAYY|nUmk__)_M^*f|hJn_*x9RmrDe{C~vKnP+a(4 z@es|XY|Plr&!jf>-Iwo8}^2ZBjT7UdBRbhs9RM z`yvRL?y6u~;XAK)t{c@Wg{9UU9iRF0ibO!<8@)n5<0~sa>a+XaXOC%E@)l~Tq2MCq zIXR}dQRhKvYVDCqo|+~>wSE2=qv{$tWQUsHZPvn-Ivb0_HE`5YO4rw;x~7-X~kO(ps1Y46E8la~CI!yf%F zoaY}T;>XQ@(gvXE!z-6^!!keJl)3q5UX4U&k_-&2C9i_bw^)(o$CZ5DFRtox_*y|~ zqIvWac=(LZy{=9a*B6(3t-f~)ZGpMZj%4(9u2`gAOgsvb>U+AhfPX=2km#!JgBTh2 zLTL7cQ>Wd7#d-*S^LAq4;2OV+v|e^A3p2+kd)ulWu<_)4S*Lor#C&)E!n@^2_@z7M z0aX9(fiV(a9F_;oEmz!p>H-9A&@r73_$TT6Hyn9OB4hQ^4c+QhX~0#{cc`W*CtC@{ zk`7tT0x3Hb_em|i-mIW=V6^A1NJyz#FFhAs4L8UYDF6Xg!-`L}jd{MX?Q5zO1?lZT zmQm!@J zCSHSsS5B{9W0F&vWMRR!1vMqQ6Lr})3W$}}#j&u?+v{Z|o?uqg*kMAqeHsiLZe?Z6 zZ%s?7qo-l`B2$A<>b-kcC$(b=A3l0&Pn&WWe);0;%eHitXyw2=fx9tm5DAi{_9`Kp z?OL|^#s#nnCFEfDFP##%96`-Mj<6bi?y=(}U1PgKUgbI#<~K`0{38^4Vf_55Inq)= zjzJ$&Xau#be8D+_nzu^yzOpO9`d0fBy=Dl#xJ|P6whzFTre?W1 zkfq*gL#PlKJSk=0mw!maEGOwAOJ5Eqxk?t5D0#MzDpc-+8TvbHDooy2S|_%fR{*uOn1$ zn}%H)OE1&21PBxae(A(qvmUe4-M7#nh_C6x zBfhm)mDDMJUMO{+)JcVOk0(e=acE^kXK4vXgfX<3?3YoLy)ZSk+0asK-R&#_aD(eR zl=d=1KgJA+uHC6nr3>oAC*16ATf%r(?qaVhM|!OIm5Q|3chw^iff89;6_LQkVEb9^ zh%BxbNc2c|&D@#SV$e4LpOz`XjD34y+Mws1!Bpc>Xb@E^$VbFk@*!&>`^)0MiV+pk zqq_cBmQaD~cT2hdu`wta$%4XGfU5+bf3x|t1msZs?ET8UChW|AL z2wp@FHsW3S6$0cmES|c4HM&>9Np`9!Cp$_+__m+;RdLV)bB<5-k^U7diH+XxTwM-> zb7h;!39Ns}5)>Y^F69jV=vbTw1AB?Ia2R1XVd_*5+&*;jjKa`TO8pY+pxvXVRK`=3 zl~;rpctZ3gSxI5MnT`c0%64FMr#K;D%soci$l8`Z2NI+`ta+fUfk%m#i2km5HG=zw z_$#xBl4H;{bK`7<2Cv54God?GT55^%pAEhc%fF6ka|V6#FCqbhXor=pX1ZCoEb6q3 z)**R{x;yRSQd7L6B&`HNq7j=>4{x2BN=Y&WU=u5r-!@AlSHg&hWrzcrNdiYK zt&9ofuQ)ZptGhh-Q;yh)um;4nwhjD?m>w&9L{((&pbuVHIN6Fe{E`n&wH}-X>Nya4 z-Qo@#_Rg;EcWazC&oo=j3SZZ4gv5)y+(OG9Zw*69DA$c?IX~N7-R10{oTy8)Ck))h z6SA6RtX{+vXRmjO{9KGZyVfll5b~9NM-=<9;OHKtr?uiKyuW7tz+Lb;0W@n}!_vEx z9)OnN8=zlMRLJaR9}dH=HPk~l$7oW)Hp{1Ld>ftHGo}=uJ0%Vxn2B62D2TF7FDYkB z9T{GOE+<*jzq~qaxB0k~JjS|@msh`!$?RT2qJ-Iz3@;l?QW)57<5x$E8tPibL#Eb-JO%jnknqo3J+UfGR%oXeaAw#zGC|&^~sJ+??JnA z0mSrq<&x79Vu8?)Qdw0F(KO3`yKt$ok)F-6giH{BKKN>~Z-KfOQUYvZ-oGQ}omCK4 zKHAf5>d8{p(tQ0+i|@Jr)rkUxc7Qmp#UDdMnA&#s0#&Zbf~LTIQri)a57nL2Qm*^- z2|}Znd}aG|J-T~jr`qMv3CgJlA+ku*i3&*qk67O2L4buPyQoz-2_;mEw`(7dz=`_f zkeCX3i_!=7)U?sd$B0EMn zU{fNDvr$mE&@GVj@(?$$>q1y@UsX6y@RS{BG;t}BIU}C3`+c%;2F4uPzIiQF;WoW` zj$Ii_kj989b;VOArT-F!9CSuD_7lE;%Ep3EB2%OaF?_OPBRa^rRrfA`AY^v3rZlGEo68d2XnU{xS$X_YT z6fMv&k3YzNASw1YP9@g$G}d$)=7b10$Vl@hz{ok3ATHpAeE2_myz&7kBoi*0A5KfN ztxH#hC9EGXw%SDyw}-+c5Sx`y*()tMcuVBOlAy>5dd~G-`9FZqe+xu1npaZRM9?Vq zR5K*=S7XQzEk`aQY&a7shUFw{+Qyua^{voQ3OSmP0HExXP6F(ApLdFomg9!{f|}2W zYi$CEZ3<%GUg!YwP^>h%_EfHTdni;^y{shHEc=acu+C_}6ZFsmE=P-!Fx?ui54FZS zMO#cokP=13JPM`85X#jkt}Z@keKka?2RqG+6P^oqud+7QrxA_{8U;lRTh59x|gv&Xm73s4%&#yVs z6aE7apyfXR>UhUm)W^yaz$mv-NfoL{l)7^Rw}+lr6e~$@c(hn~s2S%#PThnMOh*@Z zx180$(l=S4>b(fs=y2+~8*)Dtp`YhhSy^keL3#4^-UBF|y|uHL+$R&W?s6?}s%Mju zs^Kq}36g69Bj{e<{k9sgRB{I1h#@JBQ?mhQ%%q4HIj9e+(>7`=>H_WU-iUsn9Bl?( zU*egCw|`nd1|fa!RJCjEDCUzeGKG*!(cmzVi-785T9Z~g0}Nl5zd)DWpPSh_t?@31 zuD<0W=}}zm1f-45%Ac-NmUs=3Qpj`K6m2T@Hp8ufe)`D8k^{&)1Ft^Vt0V^}%(h?n zAWN2Pshpx)IkCtEv%8%MFz`0JS3BvNt7s%O^>*RNX-N&%{ueQasj_rSl-RLD2UMcx z!OfhPa8f??;ip}EWHgB8d504MoWVz++nWjQ6XSC3VG$*vUW^`jqNT3D))C+c&Q1FR zQwvk(jw#z+>)k#=m>nefoRhz60@KkIzgAH>9>AV?2jEF2)}% z3R`Uv&N`hWRCvIW_&U8;_I-2+H$`pz`qctLlnX7`>XtO zimT>k6?d%fC-mFl$COvgJ|`%lcRF`o?RVFfNJkp%V4PRBpV$noOw%=AoQVhoEbob` z-z3P~oZbbnPcbH8-vtf{1P+FxLnzgKxzCGFmo~l+*Ba)-+-ZHejz`qmg(7>6>s_Y| z*C|}A*ITjE$%-w$e=#I$q}JA=dNdfGr)$Hu?CralW^!PSzq~`&q&8=d)!(bl4|)z+ zWKzz*E6@)b7R_)W7>!|kZ87!bShsH)>;~<*qt`XhzkUBMQcM0aRhCy)PqJkTL|#fr z>-vpf9YxFJ0;+0F?voFU%{@p?%NbE(TmqZA>TN)+sBD%Fjfs75)Q0CC2))O*G$GRz zMkg)DNx}_uZEY~PjZeiGg*ny=&I-}fy&qWY&S^>M7K={l90M`R_>?{E3(^eA69YY) zuG+r=pCN8gB#g}+pt{e)$%lFQ2B~nE(#OVVZ7FB0m`SV8JN)Qw&_UN9@U7MthlkW^9v zLZH-MblbqaRimsSYQ88Yt8}tNOpBdWqZ!W$8rOEDSQr&hwLVNKm5>;xlfXE6c5JUb zFOStM`L@A*lgN_e4^q7f1Bv2V1`=9I(ql1k>SRKc>HXX4~h$5ngL^|N4VOMI<~HwyC%{`a-1&p{tZnEsv%{eY zC{e&#ow>NcLy%TEKD0torzfeP+4o+(nP(JV*W09Gk8ZZ=#C{xb4l;(e=1C0?OqmJxGN$Pr|rsih*WKIgY89Iq%a8(ZiRockv(? z1R^Isgk+=RdktwNCAP`o$}W9N+pqPGnCJn50zjf>C&oKUX#+C{u1LKeLlwOF*zS9j zuCH-})it?oBq+IfR8l#&r-%L? z1$A$n?W|KmbT8I=r1cm9t~^y&CveSmi9&~K?D$cho>vNRv~4O?QlwQ9pK^^auG>}! zY+()87~_Fri8bQ1Dz!zqqL&42RHokYd4kDEYISm|5C-=Y*ej{&t|%#ml`aa|wkTJ- z5p5A2o&mptTo!<@uVMDSxv^Y%+2O93APr~bEY>MO(U}$k=A6`!s@Y}}cS!l{ylw2v zj%985)0M5>ux{?L=dLkro9UQQ1pRs@L9hpEAIVhT<#8t*xJ6QRD2Se?fku{LDWr;*xmQtPQVRHkq$g>7r>I`!bPr085zn0+~k?%6&=C%vWh^Rsj z+&VOr=;?HT9jZSqSy+XLW6tbpI@E!PE<{P{Ad?H7Cl?A%@mF;(GsV^$z$V5tk3aqxh*xq z`GS4MLkr45>PA7C?QJ(uKocqB+GB64>L%Q-co$hrN&gOdqm3yF?v-pY}&US{Cv zcrWgno9eEgy@?ZZMh)DvE|kD1w_(}`273q2gr{^c=fM1KnGTIyMBJ4J@^_Avv)Os< z$c`Y>l6ch`Mx@=Vqc?A%Dv|Xtk+iK_jHtHAZ_lgH1%pC#MdAwE04j6_L2bzIr`B>JekEGME3ts8bbnQATM{RT=E@DqzwZfy7(e5{x=a<2+ba)o-aYKl7e?$aY24ozCFmnOdsQOu}IoX`r!G)sNt)LL$(4>#$}2M6dIw7g{R${sLUCXAyW; z6OEe^pG&P9`!Y*NiP{y}Y3akt#hw~Gq0`30b3Q*l=j;Ki7jl!nV!IzctMq&;&(*lg+g z>*CmO0%ON-G%;c)(XAls_?(+mT(Xa+cGhwVB5LJS@c5AY5y4buz3Urr*GTTC;UVff9vnna9 z6Zbxo#|+pG&&CoG@=DlY!YZNC6AlX_ zLsD*m%{%97M;plTi)8k%bXV1$5I^pG=ZWQ{IZ4LA3j)wsBcsZy(>SUii!q)hxwz_5 zYmls{Pf*`8X=!l!vgHFS!$oN9xO;J zT3e*J`}NGT@^S=nqerb=>k{@{(KgVNr9SyQEH-@?KKanp(tU1tWYU-ews(dgjIDb1@|_3}LFM}I(8z>N<+g82$<)nG3 zR>#9-9KTJgQz@*qFZeu)6Fex4WhMV;h*VRY%ev4!0-9z>n9_l(ug>u#E-D`2G}@O& zx!P{H#qNIUnxK*BIbye3GAS0L&D^R*1ElZ31?myT1TA69ilm$7Og3bsHJ01rfbZc; zs0PO1n9Mc6ov_t=TU$UX0Bmkd_s7$-j$wD?%i1c^i=l3IK+yEQC$6LoVp?mc^5jtRqaxQtcfA#y4;CgAB1 z;z^*@H#v;E{<|gB8tS7jl-2e0*j7z^dqbX}NinB|DEf5W!!j*?b>gw>2|WOMAFYXU z93Xp?;J5|5*>3R%^w7|nRLQQD5klTFezLn`vL5R*+xy~=-DX%u1*@o`*m4BvHBlmF ze63LTdp3GkDG66JhC^DN8kd;&W6HHgn@1*h(9w!rgOepeokbrE{pkj03x%^pHhnEj zBKOkrbdxvIP{pmDhNBQl3#Rn5TxSbuQ#QeV#%`-+jOu8KU|ioJRPoP>Pm1&KCi$J3 zg*mCK@(HZe3dT6et^=u8%U_nsC`ipclI0k%ffA)4Zf+tU8B>kD0Qc&+p9=5 zITv?7=Ng2{%g6y@5p1+xu7OyTwunw5R|>)a#++83)NoSyQ2Aj)WHbS~y519!b7B$B zLz$U2^G$AHaNXOTlH__xT6~ZoQA>?k^2&y-tAYH0MB6=7eAyPf($p)ZuV=gJ&&Zx^ zNTZ{(vVtoc{ZQiTqw#Wg=)x9k)%}sKHjQZ#*fV}20&Osq;B9mdwTIT_tXaG4mSm~w zDH^J-P`_?FFgCC52cUDke;(6t;@l+&6^E7IqPI$a*8MEExq62iNY(6wIuM*;_oZk* ztL8j`^e}nqYcQj^w5&_BlsoSc=yL7axy4;u9}~IDZ&8xZ6D=&8*L7j*xa<)tNNCcf zYZ?@<*{*i~mUR~Ir=Ta`-$p8f%cO#>>89bJ1X9~zYmer!q$9LeTjTTB)Jv1MCw%bc zk)eIAj^{2euSe~6_OoOA<-c@l;?4?07Wjiy#WMTo%z|%ob)N^u4Ur$u^4qvG+C+-C zaYpwvvqV$Qd2cy+=t%?w?rA@^+~>*8&plS_D(rTX6*cOtOtaFL_q=CJ_XttgPTXgb zNhXPI1a%M+S)1>nxRln)-$0B zJoH1Myu`-?pc^p3xrzCiZ!NW+E-p-2X&O|{n@DF-F3fFm5#Zl*D3hxUZW!$Mt5;K- zRQKvFVsG!RR8=Cy8=FXK4Z~*=s7vRMNS`ae51+A`wOu6|zs;B?LEKAvE2GWt8?VTx zYO@gMXm75_D2wHMgx1JhW?+9&ir=NFYp-rIT4<_BI*V8}Fd=pRLnSioEGs@~kv?JI zVSSg8sJPejVn}L{Gaa3R`j=DdrTU3+^%ukH2FzrdWR5|KVcQrkpQ%6JaGRXCpR7i_ zJke+zHHbheTFvWRWjZ-osGB(CRknExq8*ag z?~LycXr3Wy>^WZAkH{QYJD(-{KYieT3w4k{KX|hcu~i*PfBduEnT-5*Lc%)F*d)zuaPceyHQbM ziGno!hYOEoo7%I*+1Nrz%-=_(4RIu4{KUjL^WYEu>H&>yQy%6#;)wXN! z7GV)YtJmR!Ks*wu{_OsTNgOHj(ISP_PVD4avB9T1x@-~m3S%89UES*JzFhx;4j1=LhC?eJiqbqI9@Ke2JdRwyuXw!Veq}XR7n8VD6~cygTo*gEHeI-O916 zv;sPoYpa1kvm7pEi_fe2&t_~kpkm?R29UF|HmRv>s4%0t?piE=Yhn>cRdJbq5$%he zaR28Y_hJr+MN7t7LZT&mP_X!u)my}5m5(Zg7nmTmc@tt1wV zV@7GGu2k#3uo1<(7rGt;%mk*fM$e;&?* zu=op)l?r)~Jmq>{f>>KWg6Js&Yr!9~hQDIbdcUL%Wqv6e z7Bmpu{i7J>|2+qh{c)dXjpk3{Ti0W`VIn7Y-9Lq*RsY2PK{6OeJ;^( z)msh)XqFL6B|les{xArYuko+Nb!EUgX3v2a!Tapfb9zHG&DE>y9hCx30QUF4pXp-z zL`5Z8LD2p;L$J7{@XzOrX-i-CnnG`2Ncq=3y?5Nd4kG!rPb&+z>epcS--bUs>|g2} zc^pRiAc=4?>l^(U{bph`T2V!==y&1le=zZW&2-Rg6uVhvSmvkP35@6e3v1+Wc#di} zvkg6ZujSq^-;*Y0Uf{}|;&~%u{SBpRzQmRN18}hubyLL_?rCb_ zBzx8-hG9fJpNzD7)ouqF-RtA7GR*PEaD8X-D!ijdXR>T>Anv2|CKU!(Y8qKd?1HUw z<3i7SHwtuV8(qgDzZ1UFp>64Yhpm@u+mAB)$VQxA!KZfl&PsJ$BVOnG_!ut^?^)M} zFE69p7S6lF^Rvo(?J^r~q8Yst;vTCfPc&)CQ}R$Px$sAD!Xld*XEK|H=C-*I+O_OG zdSdFzC9KTuvI4dQ+)ksNAg|RBa?=N<4+PzJ@%zU5RCoq+8k8w$%2Oo0<7~NU#4C?x zzrDI+y=z*KF~JCB5vdHCjMZCO9&t@qTdluuccU;f8;Qz7eOYafA0lsdtZRSnV~HfM z428-R)-Zk4ONnby=!)1!T`qB*T_LBqyM5ZQI`d4{X2n<~vKxFa|J9f0`#c{m0d8s1 zY3O0PbfmUceD?Ot{t~!F+2upsf`;OBt&EY9m>HsLSV1B_m&eSGo}qqy{yd}YN$u;a zMva87GR=1PegJrp*FOMa?|%S}KOat5vNtM`m@=?t{Y?P$Pir6!4E8c7aCE$%^lsHa ztaeDHZ?~de5(mBASX?`Z`_w#ax&P4$d8h-GJPOE9YEWynznCodlxhfr09L&S@j=cz zs}PP4`8Bs$SDbyV?RiRK5SkZ9mu4w=CkBKPIvj=je1o(iF@4~5=1cCEOA5_h z%5$X#HzdAdlRVm)49gzmB_+OTOr>^v0-2+qZPyBXnY&h8X{4=^I0p~TOSbt;=93Nh zO*t%LqT9YQyXw-Qxu&iL05%ktcfPSsv2D6Jmm@O-R=r7;NBn0}3D?R`FCf#O_Qns( zI%swdV!Xd>8+CqH+x%Aj0|0-lc=7lo@$q`+jr9qNShx3hJ~Sii^l+ph>RayMSLYu9 zy;li)uh+R>_eNa}eXp2$T}LP>v$>e-d+)1K`pN3|${P-pa9oeU4?yC*^UNEoPd@-2 zbV2V2oBr**HdoqZKLGJHKLFg1ccrcdO}_6*U{a+2^|X^p72@jP8KI`VZ3E^Ai=(c2 z9`yW-C}%mtsLDF-MY@ea8xjeccA$~pBE?OneD?dn6jV`}O2#>qq@|exDoy86u2FFu zYJ3LxD>i75#atO5-7C;8Vnq3CAHN7@CL-0)1g=~*4Z+yQT;HQwJ}rRZ)F-yK8)CLh zNF>x46xxqfQ85)1CTDqkp6DdGZ9OIrG}1p&+v`}+R4Jn&Qb)^6^VzxF*MvCp04hPE z{q%vcIyfNNJJn`BJdKRIiHl6_;!R4Ey~41pQ~d1N-g)$k5Amb|qqr9Sf*cleO7tOY zj0Aq=d~a%&b50zHB^ql6E0C@B&{o%agObNqqy5jmV)8qUtbC>PL*5;7>Dx@CV31G~9h#qYa_8{2_Abjs5cG?Ty}v)cAu}0&A>)VPhEah!uZ>6*dbE#RROjZW zdXWV)vxsZ61C8-`JHIneT;IZ-6a`f|eA&X;we1hJ$&!?yuR+BoHQ@)xrD~Sh!gUNM zy@_vVI{G^iclYs`8?(x%F(qX9GKmFa!%}r7s>M~ioL1!cy10DnA1oH`%}NPWYK%V| z8uD6~P`4j<`$S=j&nHmwDjYRQYVUvF}tB9*&cfT^gbwyRxWFm3{y1{v>B4Q5OLpbTx|e?ZhQ- z{i4TvOB+YwjagF*J7p-2_0*A$$Xazxr|1$Y!mps^)MvP>;VAV<=Cq@K-u6PtP6)cK z&iJt+(RW<4F&|WDi#@NfM=+-6-(qQ(H#a_o9%2dIQ+rR&N0L+g5%I2)m~Ys4(BD$TTQNC|ZlRc10(fOkZ| zCV8STeFV9!gMM5pyr1jZ{@yY^^8SN?aaHL~6-ip635^}jyt0;8H48BG-R1*`bAru+R! zuqs?5Kcv{N$eX>wWp22Z&{R>spDf=Fn%%K|;?*eUD6n<{ z6iL^<1uvcL{rITI-l9KRm1lzb|sit~26M!Csjbv3IcbbBpt{ zpvgA(!)2|z8GRG)s>CWRcZwRO2l(76*cUF!Z5eYJpPYL@+)wIg7sc1h=vO6r&~TN^I9{c-gKLNNUHRXp8i&6L?8j8qhc~dn8(2{sRODG6@+_lQO0=pE-O2@?=eZ!4hP+-WB9%`yh@{HKd6MF`HSomCvYG}L=b;x zrn%(Cy|Be|GRAjc1!n*OQ@YwSBQ@zhD+1!yrJh+Ztg2tzz0ruqVRXgGz&3a}pNkTl z+<}010nzA}EndH5rE>Q- z<=KF4NLPM0l3ujw&%FzswF|oryVQuy5HZ&wgh<{#J9}!*EG9TPs4-@A;@z%8WSzX! zYz&9NBvuqle=jxxOFEhRpa~a+sN-O(FBh{7=8&Z4~@7_qjg*Y3J(MA=I zC)ONlkrWt=m2fau;Q?1MJ;B!HJW_dTaxU+Ctd$Zm?&ATeLzNQFTvI ztBZsZwOh?l7aiJ`2>aaeaxLvSnY19074?djuj_Dho)yMcR&pMW zMYw2Qxab2hGjJ-JcZU-;+)U`u-rqCq;i~LTvy$g6j}H$;BSi-^a;+HHu`6r(2{8LN z&{pnh5~=IEZ;c7Yd=y=U#FPC!!BdYbcZNczPZFx%KGcxgxp(DJ&r9I*K6Usykm-zm zA!~B)W(CCvu*|L1XL5^A;GFop0Zj|S0ZC%ql`FHm-Q2wvM;0F=+$>W(z1uHwH3u%p z{!rPW-AS_saFjC8hgY+7GXYU)2WrX3M)uHc+jeF{lPJodn81_AET~cK*QL;9nYF>@ zF*7aH#&636fu#lZGs!T$>@zHVVhN4KeP0bAgv*f6&(b*7Y0MQC!DDA;CdWp`JLb2* z-#!m@ik6Iby-WiUkfGRfEBx;7D#b-BkBoM9wm!-jI#jD6VilD1I)s#GPjgqLQb!1I zHlt;6aQ)&)V}#c0S-Q56z`drithymN`6=eW zk%PQ3bY_4A#HIxs8+);Jjud%y5pKP`UYHg$OhLIBV7~1k$k$3A(@fNvA2^5yj?`zd z2a)c(+7wRd^c%UBD{wy=QQ>(3aNbY}g?PL=M6FKsIIyyJFiw~j&cSWd^f)SY-t z-SMLUS{}}Po41@CS}SM*U$#?AeOv)AVPeU|^2GDdFpoUdOgnD3tC@=9*0ygfGI<_d z=kkLB;7#BI=_IC2%H_cs10L9GJ<#t+E5u=@BWE`}i_DKu4dCAMoXFQGn^qWM= z&3jr|R@nUV(T#d5+-pQ=FH$}aZdS%@?$X>Ptahs#<3kHj1Y-0lqi9+z*_w*46xqnA zy3)R%8d7%2w8I1dbb4rYq}Z*y`$6pVXa$ZW$~82^Bq<}(MV8`HQ&%a^F{`SL;1gmZ zv=$JO@G`S_U&uV)amKY0@1wBgUN8%; z*i-iZ0l<5H&&p|`=lbxbVeYZ#>pQNA@69h@WtdXgukwUs6-W?#`=C_9r&}P>t_}O~ z1~?OT814kg?N^QKO^Wsp(-{f#dr2cCo&-K$7If``Qb`(2N^G2D0fxhD}SYG!p zS@{JVzrlRzA6fZWiYR|5Otk&@b*6@9!6rrf_qVDV){x%WMTGj|j&K55tQs<=tT%VK zt$F2;$&5bMD^}%xw@r~BjqZ+3(J~}&S&_X2zgBj~Mz2$C41iTopGMVr*R`)?nk=k@ zdf@v;J;&aP$&sfNhA?ga$~CQ~`!jbJO=Q7s>0*ay$N$vrHA}7sYsuM7J;w-fZOwaR+l<5bWOzzInlXaSG$&2M1P(T1?ss*1NSkOSdXD)9 zB~3FHH&aq6j5~hOkVuKizgAcX{z&?A4GYjbn?pd;u`XtCbGh7Q22NdKlam$Yr;XL7Derp$D$ue6(9<8q zdT}q4HTe5m?Ighc?sraI+<^>&9?&2TY!$tXF$IC=KAC|KN_xPMVPG?uyR*>I!?s_g zVuG4RhGgAe5crgJo(*%2AQnJ%(`%U#YYNmSLGRj7Xui|FGEp1%V)OB*|HIx}Mzz&$ zd*8GaXp6M8xRoNMSaA=u+!PH`+^skv5C|^CibHTH4#6#Ga3~aa4-nklN|8dLPxij| ze$PI8oc9^$Js$O(N;64ZXwQZRf*c@L9lZ<|^12yY;NnwkZ>|7;NlRxXWB%l_)T zWo^wWiT)XKt+~*RIB4r{r8kD$TOAuX3pWG4<%>UBfYpQ z?IeiSs*MU7)xfXDg{L%98+SJ{8A(O~=l)Nb%&@bt?jH!%oU3AL6u+?)9IWFvXtO>~DHb1V$?Hn;r(xZp#H%xUb^lS6-P(OU-f}{po#x#$}$TtyQZ#7?>J^4{^@u}qP){9+rD5=`9ELnJGmt+QtQg7kPIk2qYxBT#R7 zIzxCu3L=Ro!e0E(L0Rl}LkL|8!AlKkygw1aLu~dP5^jLCkSUbnoK;kOXS2IQ>X3a+ zHW9@D>~!VZq;pYI<0W;sxWI_z)Rbz+2h=x98$9=WHX@=jGL8p^E$ZZA!1&Qw~`jM28_AQjRo=_o4N*sTKovAyS9$8gN2bPMC~Kmd1zO? zxJ5%~nR!hUeEk8p@*}EuQ9*vSW{mzK{p{J&Sr4b*cIu6S1_w<2+pv+ah(F_rV_n@ zep9BZ3GoGNi~}b>zY|STZsa^)=PUcU#UnCyl1pksgjm`NuDq#_cElR@1Te6+nI(k7 z69pTsKdm=2K`SA0!#kza%ofN-_R7IA_a~ey$ua>|H#4fW8fpe*OdMQH z{N()p>7ES;!R;!c$6xWh1WfFvJ_&&_UN{TeVy>%?aL~$_IV|-y(6ABIHFd?+7*$zZ z3WFyhhBcw!;qg&J_2=+UlEPsjuHPT7tOri^b59Muzr4MDX3qf9^=$rfacpIQeqDBEYWuHv`wl^x6g2^fW8x{cBgaMtWVt4RFZfSMw)uO2C z_opE|oi97H^XN>kGJa#Js?nd#+tq43she6PP}QH^n??V`+nalt7E<|aY~`)H`mxzv zS2$y-MEu&das}z~cCt*g_8&*%AdifhbR(vK)=Rc#KxLXyi6mgivLOsKk_%Iwm{_=J zD8CriR+nTpae2=tDGoFXsH#G?@vaSJa@<2OQcU3rdy%V!wI+gMn==}KKAP2=F3zr= zsju~=NygQ>`qSD{WuLIlj+8T=0X(qawZou{3+v(`@Tmf;t|J!Nmy~QgL8(2_YWLF> zg&z-;4t;#IkQIT$`NjFodPnE3VLS8TG95TfT%f!Kf%e8xkg|K^if2eIBG5eR`H^ND zD}Z!rzUXV4^mEE&59887tOxvNXug1^1T9A=r5XI%TK?08qo`0>et=Hr8h? zZkM>CK4_ryN^58#!6}`ty3Jz;v76g(0Lt%H?hj>`f@#ld>u%Ea%v0-BD6->TA;C+!WzRgJGhPlenmIAo>I_Z#|O9Tl*`ZqiI ziAX0ZH?pSu!&~`wulDbic$|`jD#dPnc}g7JE&ILu-6h)kr9sjkO6~`XdKOL#+{q@* zh#%Txgru3m5-lhC)ao`wW4gB9P6dXC*z+{;8URXjB1)Xb4!4Y?_2~nOLt>DxF`Lq& z_rZJV;D1N`F_8V7k<&1bLt8f^<@~DoL+YxmBghgf|%mBxn0Ncbvur(#9(DsNc&7+n=WZe1t}>Wg8C@!Jyxz0yRQp2B6FDp2Pim`_H3yHAMO_C+NoB0 zrjGlSwP^FsgEJ92wgu*9k#GD^Be1d(|tUf zygN{!t}I(j=~^@C*xK6q!p{;S9L zk01O}*FvUuQ-HG{susVogdFe8-sZfOCNn;Bd$GlLO`ZdPG2Z;-B4_&_o|r!ul~8B5 z5;G=q#_uQaz3)(&F*p0uN_`)!`Gw_$VX*jZ<_Lpl_&?_evW@@s6v0VMR}Q5u56z?! zz4r9;q^um}9!4vwjwGq~$0q}-1%tag#9Po!6xDF0y@UioL z7kiUY`rWW#RF~Bl1OnL!TEpYWXu2K*OGR$B_bmJJ){oSGXpo_mRebOG! z7|p#MtuZthb=mlXge0K?(wRZPY08+r!nxM#hA5MvDtGqyrE#KHr#$LhKhZ&Gk}||A z`&=sBfXU3su{Vrn+L~@Z@!OL+{y~!IfTSV-R{skUjNnD*4bytu50z*6r>>G~WA+p) zTfNOxdKfIO6COY_Zoa4>K#m#nc9e8RSBuYqMn`cx0Y1fFduCj=8Su0QWl1zhW?sW# zjkTv!a_@-iw1Sf|SVA{MyuQhE%3P<6Ye;yx*GaBV^2hRoig(PO-`u+6p<3D46s#j< z*xYqK+L&9EVN0oSi{jnuoGlLyjw2Tzo9Lj<#5d5Vpz>#m@pO;#^-$wMwMi5=R}{jp zWxfsQ=qpgLc49^H4Nt--E?#G!8UM!m@*C?qJoBMhVNk3jHA7e+P^TvtnVWsDU*;-v z<~dOujg#IwOyV3eWT^=8VBW)|bRXMPbma*qrG3YGTm6!d6J40-GNv9>2>#r$OJ;Mo zD$K2_jy-^}vB@5Njw>FeWg(0{wKj@VNXbp^q-cGb$-Pm)e5)Zt(T2?81 zLjHQL>tnj!I^Wi58mEQ0;1;`pI6-&fkGagyhRKn&er{~zjAsz4O8GV6vN;6Ot<!iiCL#3OF%2O&nxW0v?}d{OuvBwxSJRzxd|6bsy3QS2@^QB@1V@ z_>}H!Q$GqV-87(6HAL!5;xGeVZOYz**%oCOsy+B<)%_}ok1%Q_PI%Y)!Mgur(6rLh zwvv%8LOLpVUsi>LBdCeNk-MSc+1Pr(y5I2 zBMfG%sB7;eS9KwB(U3#~!AuOGLjmn(u={aQbNby)&<8uoE#5^!dYRL>M=Mm1CffrN z&RycbIHb}Rj(OHCxXLzYl+3nhVjgyR3MRj|UEg$Grzlb)B&pn{B~o8V@bEu^gFK$$7cmHB zT)gpR!feb8>>tIK>%S{uHZ=yFXt%>(@t7?kH0j^YU=F?fwA?TBX_|pKoaphKh|rqD z6#I0XlS9{X(TBe<QpPw7RvOd7Tymq$g3fT*5Sni^nQuX*zR>?qRu z+ZuMs<3Br!*r)$o!j_D~=wI0UoROWsSl;g5m5g_pJE<295yz(!A2IomN*5s(_%J}K zRw07hwz*?TTlV_D?kIJ>b*S?i(+fZR>&_%(bp9~&2N}Hi&z(Q7!THz4|AzsqjZy*0 z0s?&e*f0MYb~T9E7FE(}08b;p=bdwre9S2?@qzV=y}*}bZ{P4ov9( z`vd*b)x>5$eL#0ojes`fZ>*OK3I96dzcn6-LtcS_M$k;zN74nDrqRFIPyChk3jEUx z@ULGPn&fbXCnNt=MsDdpP;tXq|H0Gu5i#bQ3Gd4%7T+n2@V^yykX{!0s`hi#(_osk zrc_Un{IDxLVCpx?jurQ4y)OlD3rNq8E-6SvpEY9Mum&ZbfflP9tG)y^h$bdF*L>*4 zUs>M0ciP6y7a|Oy-*{6}_>Hp!|8r#%Y-{gfNf1fBU^^iPlpJ^G&2;Gq{WGd}63E65 z9)a&OD2hl`9#53=IQcycCT>(#R~u8dUs{W+o!=_8p!eoX3r^Y)jxUPA#pC6REGueZ zMB^Zib&Y{e^@Dav!d7|3eh!0qJqH4qzA>b^8Qw;oboah)r@<~pb10|}Di#btREO2N z;k)$2mU-8@oP=%=xH`9(#OOiX1NYV%qN>n?dDKu{t7MyEK`jb+)Wx>uIP%nhX2r!e z_7@gWCuHKW#v*xQs||U|G#F_Z0%D4=Dai)YXbIaItH>;ZCu+_?6}0*p|SC7iKp9+*eop3G>BIDa0a{o9nn}Cj@~IP%n4w3uIA}6 zv4By2<{fA!((BEXjXj6pg-_}qoj>g*tXt&xt~IQ2Rpm06p-44sf#4MJB{I^k$igY= zgv9e7#zIMjfTK~9`Z=(LL4W`A=i-}35kSK{T>rrM!_7k-{xnTPoikMu{_(L+2e92R z)L{3~pg%~C-Z#YmrI1rAh~Xzlw^_rWZqOJZB-+!f3k+or^zPRM@++D4eaFwEaKny~ zm0W2`0(Ko8L8$-@FQ74`42s@H({zg>zx5yB$Fl)nzwlvsbCv8 z>rC~s@FK4F?q{9vuNo}rdb;pb#{Sb5;TKE9Wz>e5B4xtxPc|Bk9%tUh7eNd#E(wQ-yD?Z8 zF)=Rx->|Ly;#^mFQ>D|Af1|brc~-v#-eI3Vy1AgZ1lV2h;vG(%G%&*M?Ss&mo+M}Cxa4rh?=wZQ0R=kR0 z52~_-uY2!9hrVkutg#?k!UilwLBrGVv*GlU6uYAG^6WO0x*Do_U!VFO9_&i}oCrI7PTFL7I``i(^WH|73uK_Lx8pj$!}s#Y-7>N);d{uKcW4Uwm~ zyKb^i{oLSt{%13W3?TO0rAhnQpNg^TqU|Ou%1_eWactENCm5#ZxKQ((DfRlA>b9Im zGX<8&c3P$o6Ab1+3*NtqZ*iRHT#FhkwMZ(mB>d1%ZPDHjGT8Dn5C`KiqMjA(w3JW7 zw~7U~t=NwLm{x(B?b9;mm@Kx){G?8=swUfk20y`)U&$^!39H8V!k!ZwzHJ^0Tz}S- zsa4HOn_aJJkB@{*@G8sP58o$-^3S`}xR7}c=GxoAU{M`NqD+==S7B$8W@y^@SQw3u zLZ3IiT^B|fRAZ0nZ+EbBdE?E?bJEy_yJu<*8IgTPS`2h~-Pr89V7J+WpD;BeSMRzN zGEJ#-RjiEHmbzg0@CP z7~&+zs;Js{Ywmis1R*#;j>5=mWbm*i^j2dQ?U(LUo$V831xQYQ5>i5u;(jJx6NxkMtukt8jobC5s-Au9s2YVi z2uRn#c&`JB@Am{dKQAakdX>?99|6(dA zxe;$9TPWF~Z?uv zK4Ln{lDcLsbDj{8XTX?dQ1DJ!fM=G@VU=BCdX;SIHZ^$L=hd8=t$9vTJW#^WhYBtE{;$tJ<@{Av@qfR~?C+~g z$Qw1rHViT$l|!ho7f!}d8}}hZkjjrI>YSX{Zk={>dIKUyMCAh0Q^!6A zcF^-C?lJy`ZF=Db6VK#IhTX41tq7x-o&&8TWO~a;g$W{Fw}L+^GgMx`mZMn)xaj}f zJgU2}|E#jJGjy}txR&}Jq{*NzwVJ9)=T%t|ysW+voleOqyuxe`m~e-%_#4GV@bD26 z)3lUMP^E8KdfZtJ_t+%{{1`510FzDi+mlo7=EB1>m$sW;ui3m|YFr@~ZphNcB6~BV zTi4TsSXXi=n!CQCbvA|Lm%W*mJ22TLuxG-{N|3~x30i{3r%+m+4pd-IKbxMnvgn5w zOj-rUE$bJ5liSPnfW*|qn&MF~r9TrdeQP85+}hQ@zIZPmDXs5>R8vi=*2SmhcS>&A zmT``8hm6*sT2;yFw~n{ZziKRoo}852_$>4c9o%YG*t%wJsxlD;Y%`1HfM|fJjG^3n zeOQj00oux;dBd?J|GZ@W_c4ZHkX+i<2nrd!apotCSq(19iN&MyFN(~bWvCOX)kCFy}`C_Js2=|@_@jPMVFyuUhKj2A2nc%^2PVN1uT9ZGRmd)jE zJ^$LuJ6g|f0n}E~nxmChB{+;a3fp1{!EG(XDWnNK4^r40(D&g;6gcOeRL4NkE#1wi z#Pd!bFOq_t=LM`&lODUN`jb!+?|7xIJW0p*f3Q6h-;1i=J=D-R6P2@>?G+`PjNvPE zU07}MFbmUGH`rk-hpz+mfdVbHEgHS-hQ!ueE`gB*bRw$r6@twf`1{~`Hnt`~b5T!^ zc_wf#py3(rGfQY~kv_Ou|FEXXR+y$AU&y3M_AAgAUn*=uJn){K7HPpTxMi}*OZpqE z4Yye;FF&QaRxCRyj<-h5A%(Pm^zhajH5}cjsn$?!SycuK5!{2=%hreg9Ew{5hB2Ko zRb+d!Vw#bFS$D~I`{bh~Z*hKUhx?{>1b<&VOY-4t=vQR3WeHAA=|Wb-Y_z~U^@OuN zal;Ytq^Kd(&IU}fIPU$)R)bgX*r~qgBWX<>4jySG0cpOh>(me%B2ehdVG&CDz!(({ z3<);MqX@K`oBvEuyM2bzXvhY&{Y=WS-H%%sGUC|zAPb*v)QVbsXZM8xLgF`;;#~Ax z7(<<;uK36t(H-p%NIzp2jK=+5AtlE0aiqqOn!{0aUXLkWl)}W-5av#?KE%1XY|Y?P zFe$5mmalgXV9j7=H@I3XIsv8g3OkcF*-y>qq1hWVb0$=$-}U7r-i)E1QpX0bt~?W0 z7^Os9*8Kd`53B4Ey>0n9WN^#!W`DR_a9qQ>WY4JcMR;p$KQ(&gR(V9&Y;ONsHAtxk zYf`)o!M%-JZ}5haC5Dn_;5Zu%@=m6N<$So*Pz-#$oC_ttxPDYk5u6mCtA71zV zCUKfJ8Vk>-XfZM4_oxL*%J4W0 zVeo;vDeM#fx{-m;#;*j8G@x}M{}1(Ps>%WK$)?7k*j&|5*}|sRj-8C*pyR9S8u7sD zlgp~!s9y1f7Apx#%d@6X=0eQU$os2&o6av6Nex~dhFJmZpMT67;xIY5t`%39A`)MH6^cMn$MD4fL2A;g`Wy?5OS4VTdu}U%hHRmrotGeub za%wtjx*c1IeTBvp{&_7<^H%=9z8L2r^qDiI6mb%UgHno&w&e_%Wet1*ARr!Wc{9QU zId^t0Z;k8K6P&azK?VHmHp1(P-R+lQ7pG(jRRZM2(}a^R}U= z7WVNCr2b3KPu}F;Z3cO z?J=cYtg$gr5hbQvF#Ht4RF8*K?&|K$W%s^QKyP>VLHAPAb&Ko%M|6p2c_X~uZh*Th;*weVF83;A|%;a_AhZx^R_j8mMyg`2Cp1b9M4p~)fav~$QaFK zJE2?rM(nwM4U*KkR#PBr?qWYtX(6_T^|RbLSG+h?V44%^l8){Q(^EP=4Jy#qLl}JA}i??POyg`3+;%z zsp&z^57A>()RAU1Rncm}Q3?F~RchmPsi~>2c44mrb$W>W@UWgo4s|)7AdA0LL`U?x z%9_|Gp$EmAHmw^pIvmOb=m7isztjn#>AlriT2fb$QS{LDZU^u@DUp_ucKF~l)N}SmQg`V~If%LJ*x=R(u$VOe zc#sxYXkkzeZHD9BVLC$Bo=`a~~`Y)`RlwYSIeq+_c?Z3}xC%gYK8&NlI z5$BqS64x_HsCjjI0@ z^Xdr5MSK_}3}Fg9z()f<($z_fsZfNJN7s^sb`xtB>y6yek?x#*fIC-7v(-*E$fobv};H%fdD~05G_fiXnvw%%*bVD(|zuxm$@m^ zFvehy3f({BW7LaW=YT*iXz~^n6+v%x70S-PG4`*E5m#x03@w83GhnMPYmlR-jSi!6 z>8<6QHUan70}j4J^{|+g%xVvnw!k^mN;R4!Lih{M)o$}ZHXAS)EtBkXikW0H7AF6$ z^uzbvWpq;b zDLExY3GM<_qDjjUK9De^bK(cuBbBRj<$O8dx0>}4s&VF+&(AHH@$0W>88{s zgJZUr1!hd2JT}|SOIxAP)6=i~ivzi<-;?9*VC{>X$Rsb9fpJK2z_N}lz+-0Ss(@-+ zB-%ovEaa4u>fLs4_}qk@&mLz;%?DAx#{)h&r$2RDqx(a8jBY)q12>{R+8)3yCeu`r3Lkbm+b9zXw2`gdhO3N|8NmNuR*Lq4bNe+{%cJeYOmnUrH4C;2FpITw?-EFbkn*31~B2s zX!TL^gn`X&Zn*J_U|i%lvVD(8v})5c6?tZdKeQ+`_8+hYD%#KRqji!v|6-K;Z;0BMRYm zdOGx8`cIp3S;o*6l5ke<)gvvOrf7Mc+Ilw8rjk@!J+#LjtDN1b>}%*6OXw4<&Ab~e z!3m&aKnEnQR~em_Yw8y9ej7JL9!AOJKblv;azd(NXg^O|0Y@OGCV&O03SlfoFm1|+ zN6g)M8!gFVA@}-01O`KHAY)vs*Y$|S3bGpkKHE2!R0@yX#NH*9xOPn(MK<_n;sw-= zdes@_c%wiWwBKHdNiEBNnA4jaeNdZDikQE)W^;XWf&TI_r7Sn)@ENxl5rON&(Q=QB zA)w^STeI#=ILKhyX+Ag3lf^#or?6t=#mTsRZ0Hb&jV*;iFDCvPJ4F825}jBpmw~GS?yI;1yJ(OffW&W z1$x9Rn0z1j)-qpG@nZ>p@945*7sOWLZ6v?Lwh;!q7e~x4EcAqt5`q#t9r!O z+?zKz%jIQkSry@ncBu%P-X#FM>pNOWsU;nC3m`D=ubZH#g@~dxlG`%)sdZ zVcMUG@#IEOM5+_h93RW`34gTo&_*x+fq7@_Xn7<3DiTehs0K88V19a|*S`5^w^ zq8$~Amg5+CD6)Z>P*v3vR1EGKD@0&nXs3Hx{eMk3wcc{G{h4}N6euuol>9d~`LUH0^*y7q>M)K~4-$?DqK;#O;#y&#ba_{r z3EEzkU`WLc(PHDGd#RgPG}+>wsGG+KPdfDc?4tZw2Kn7G9k~Rrp5z4Ag~RLMB81## z8G^-TyyC-bmw9f+D|Vcr6j>Qc)PJjcSsA6roFLMm4mGpe5`j@}5rW&?c#~s@_!RNLH|F0`Ct+ zfqvlOAqxW`%G}(-L9O*VuQ?|vS#i{Pw}q>w+GO!oJC4`RDpLW-@%4-T7PDL=-lvnM6^h=cWt&7*^b^69E4{a^ZOYJ<65%@W;tq9yc;cht6PT3-eJQc4h*i zvwO)z#Pu<*>FX$kq+wn5eS7`{q>J-ZECmxxKZ3?M`FU|eOo+)kwnR;5FuAO*Exg>j zqQp;b_v6!+WI7H!dgy8|OqSGwIcXV)y$bsx9v!1_CKfpY4dw=B$}^dmMH4W63@?85 z#$F&ku?bAVcWC&)(J&_+dU(V+FpuE+>_FE!pd|QW4iP&gDw^8Q z7@%cf0o706u?Z2yYVWPUo8C8Mmac=rbu3adh2#m+P+}A>XBhz^X8;sHklk4bTc1|s z`M&dCh=oLqI2|byG@kDUWL^h+v@#|G<$uwteyOa86VwAXBXpIahIzZE-;lE#x;N-b*WZWD^!?ib8IDqBaDm5W=KbxF_I^M;ZUYg03=yxm z@|LL9M^N}+Mw-q3&Y>phv_{9c+7PO5d$M2A$}9w%+I;PyV+Wqdw?TMuGq6_hLPKLB z)I5g|NT4bla3~dzyusLGove3S5e6@kMZViklC!|oHGav(IhjoU%)qhTO8A_8rDklh zDR!*uf=Vk%xEi)u zVzYQPS+hDDrTW^q4KLp?3sc71>PPfMex$BTXUy?dwrs3=Oce=rsj#=bVk1dUQu;6M z*VXMk7PFvnPC_eqipqVbBm{gE6k-8TVPS^{tXk(+H0YPIrC#>GyOhUv@p!q}d1BSleMA|tNo4KeCOvEpAHSKwjB$#Yi3&u=4!Oq zHN_RlnmMb(AIBEB@9vsKRl^vG2(iRcwkHbfb-}I!cw_V6S`BBFeiv~70Zhm$Qx6M| zU4L%bXTOo%SPbGty8bqAzpciB@t^@OXQ`gr(Q>`?qQOioBG`0 zl~7si%{lh5lS*R$|K@4_p-ZgDOT`C^o-B{z2;7k~9)U=SA@ zvVpgJvz{u`Yj5GD$3G+7&R*O;x@K#`NC4}7d46M!wKhJ*)Hg2Z;?LdVy-Al-SGK0+ zJMiekUUXs#F}eb6M0F)!WupyQOPmRWeAL;0L|f{2crh@l{t}smzhc<)T4MaiyJh`9 z55b?0rTqJiqyOO(9n@i)jEriDHnq8LmrmwHMbh$Yr}S_67=%>hyM@AT(`Ln^Yru@4 zK!OEGBgsFlLPb~q*QppHoP}t%2*U{l_r3Dk16YEF08&Y`z!lEVA3_8WecYW4V%LYn zaa-$cN#NEkop@WmyQpoJpT47&{Uw0_6@kAhonF!&XDH7Kd3u<3ZHrud|JG4DclyEJ z{xq)Nb^~UeN!f!}m3?3MbWJ=1-`$G95%no@NO1^NeXgc3_yt|GLoGm&=Zu?+o6)_3 zhr2u7(&K*Cd-P$#n62A=x^Cgb1(5BEvPG@ zpJd{0lL>KRy6=wo)ZtU!G%Uccsf7*+w;V#JS}*LZIZBw#mu=jni*ODbrot3}pPi?E z{Fv10*#h!I{I;JxAvdFHydLNS1IFfcRg^fuDY3zV@{Din-}L|`UuZJGnJte5#`Ehi z&DdUSHxXMoV0loU3CZXfHZ(@&j42)3*DI;7lvz|#S~D@NErACFfRoR8k_58-90Rtk zma`TrUvnUTc!}PaROCY|b^4Xq{Rl-y^jp^4(`lj|^{HuTE^Z7+68UWbn7Ae_*~(G zk1gJ89!3tzJ&@ib6ZOOM7h!V+rSQ_w1-*8f#aF^h>v=-V?ac!egOa`XA(ilx6e*xp zFybeWlVnm!jFRX(M`LWWJcRjbwcSjFMHnw&D9zMPxuh`Zaq(`h-@6Aq@{~3U%^dwu zVC#x7_WpV|@HVEt1~={)k{4U8xF!E!JcK7MLnZRrHdifqSsYHJ=`1Kuz z7(em^z5RA=*j%SEBmIE?d?Z-DTg58NZd5d+iVCb`ba#ruVtLqC7lqHM_45 z6F!)WRJxqC36U`137!q(Oi;{X3Np;)YE#k;R`>OlWqgaBsh<^Q3@bzTb$IN=3xqTj z>|I7nV^3QXm6OB|WO#vcqTK77bX-JCbWCOMUFA0cUoq8Mc|zA^_n=8q!RA2lTBt@J zK>ztWx1i50I)+gq zYfn^~AOFTetFR8PXG#CY%I!4}*HS&~jKT@l8>AhQcd;`Krk$LnJJw#Z?ZHJD;7N$! zSH$;odb!iSdtuFj9~)>^%(@4Tm-KDoo`)~I8)w4FNf{wB+qu_BA&ebe?vnrQBdSNr z55feK!ebvr`%HHoKG8#G*sfQ5X~eeb1LJ-Ys5pJ&y+3HKld`at;|*1R92qU<(u z{Fwo%Dw67O-T(cb0>24X`JWw9t-36)ekolCk^V&}`QMQ{(A_%(bcX#*FD9)paV3&t zL_Mx|J!<@o_3H930@`|)(Vs$%LiYPv-yNJVqSm^Ky3uzjw-p#chjy)aK4K$>Bf)8GbwZg`T2)=~Yfwh+ zLaN0tjzhW)QfVdLJ2Ka3C!6Gxnp&?IO;Y~BD_yjBe}VD0k?|u*4UI{zRV$3eeTpx> zm~11?zb^m(Ep%G)cf>bJ*QK?84fw#-`pb?{`q(}q$-nY${sF7=f6Mw4&Q7yUPS%4f z%j0*4%Tp>6qceoho3$6>MBQ}lZe+QY zDz|d7PrgL+EC zX#r?zS=eU8N!)BIKc`L4o`e@QX878+XpKo8AVA=4$CznAgiGc%(^x4TV%s#2_^}0_ zG?q8S5>-r?6x0eF$0!;afg|(U-JcrJ7hYB@7@tOShjK`XIZi6t0M#>d-{^qI0I!sF zLCo18|EnFm1kF`bked`vY-2HfrrGR#6_}}~b3wcj8yTn2i3YcZk4ixic>&?;@<4e) z1C?M5!RvGM$fB(ta6Z&%HwohT6*PfmA(%F@VO@X?vpr3ZyC z2chtYNP78oLY3gZ13mm*wemM^DCZlLp)Hu77^u((Wh#%FRHiWtDwNO<#2{3~4StsC zDZ#z9cFYlW0?6kBW`$&(Eu>fko7q_`*dqO_FxxK0?z~~q_j;@sshO{Le~cSg6s5r8 zyHjwP&GaA!D{}3l_0gqlJzzruq-ysAP2Qe8*J)AL%7^Qb+Yw>(ktQcSYIzOL4{I+X zZp8;myXRH3l^Eg6-Rs1`$7Uk}LJxkx@bIFU8|1@aOiCC)+rMLGW4M?JpJuLc{;o$2 zc>kZ}AFFD7H}g?;ebSfpY0 zs1gF5h3%L0XmI5^RwP#wNqw$oq=5RW;&w8kEVvq>HS9T#J=m!WG46qpP9l=E(lRkC z4>#OPvKct^U3@qP(t2LAn4f^0J?FY?K@kRT9Upw!pp>hf5>v6NK(pPDGJ}|!KU7r| z6%s%=@F><~p78XgTZJzadMsdu76*IANZc$Ms?Qp!p@?=r=@nC7?1SLZopo4d|2guI z#~_OBmeq1fmf6~QA*7&TevQ0KHO96sKu9DySt=#3exwibz-%E?$~8izdS2cJUHYL> z$M%Ct=`P+4 zI{;GohO$0v!QqV)+L~IE>T=t|vh?AuNg_=Ke@0Z6BYXItv1{*fKv!hKP$KLt2;zT+ zoUr!B!G?&cl*@A2esakF@l`bk82U zi`WWO$p0X%Cw*9Pg8LyCUNDxiBz*Vlb$y$!gB*0>R;+1z?qe6QwZ7oN6n~`dL7uAo2V;e?y9p z)dQ>v>Nw%M&7zYCB_+X0Euea}zT9BV%lpe7l_HyykTY{AH-%KgN5x3T(PFRrOvB@p z`rEB}b5YeThSs+G#T!LMg_Y_O>k4KJ>=AQ3(A~(W6&hI@q6ZkHbg%tud-B}c^Q3*w z;YyUw4&?*o+}P+T7Ds1K$8CNnUCx2gR)qe~Ugx1(hv|%EuE#$dsY#_ZRqFM@s;WwW z4;nx@)7aCbx(~BhqVg*ccbYeg#FmyQhR^R+-~Y!|gZJ+#glrW`ip)+QZ>x?{pX2R3 z!{A|OgcunwgK`7SH~ryou^4hmwY@9~k`>uxA$j`)Ivwnp^wWX8Se+EuBOZHCFC5TD zVM+MW)`ITy>^Qec}q2z;Ixd27xOTLYQq_A4)&mKBBbFPT^qU+@M zVXXqvP-wGI4bPmdVmbeN!I#g4Fg?#3&aLary?&ei2ZqlW6o*b37=#7%HC=9=Tb0`1 z%Q+6plu}_>laldCdFf7Tgj(J!bgnks*D-(=ux3!pHt_qkrhO~C!^YGMc72bkysvXl zUv$%!f&yzz=1jYJsOyvUvt%yf&T13m$kZ0!Of(S0pi_v%e`%@Gx_>qM9=GBkVu<*G0IHw+AhmJhj0T4Y7|Bc1!LtCj}{B=>JOYZwN zGN|_*(+#d{W#GPSM|Xq`g;49p;``Hmqqb*57Fx6Yz;%u+Yg(m3qaP9u%M{3zu~@9ph4ywj%>jilE7I@x0dd;OL51X9*^_+7nW5bhdWD0^?9@}QuQ1d;DDM*J(*#$x*D!DUCP%>!Y zeDZE!P_sHXd*RY?3k!RVz!57rM%l45bRhM{vtDBKkncsIjZl_R&5JiQKO5w@(xg9Z zKlaLBQbQ#-@WN$Hb5n!?AqxNQiAM3H4?bv34C4@}PAfT-*u^$w)UIxr-5au@hwg3; zo2sG9N6QONuSFHS28#?X)p*Gon}^+P7R~P;iikR;-dqbvj2r^Q4;If;M_t=|OGBI+ z-X1ca-JU@)y(jUlZkhP5-_|ufElRdOTo-MDB2{8G4Ly_3SjyEni0^%pUNl(bd zk|@o_P*}elU*_~GW8}Ix@hkPevFP-EW1ah6WacR~TyWM~A1sY^R4=F8syt~a-iM%wqB$v_LW#W4g=c}`l6 zX^19J34bq}h*)u_!`pNT0&0w0v7$j$4!?IZPXAfJv1PS-5$X=!J2RwxHMzK4d-+)Z z7O}flE107my41cEI=iE?M0t-zwST?+gw?00B^8Wlk*Xz6)l2iapz?HQEPh2Xdpl?_ z(HSF~iDscgvPtH7`H1ReTpphwEPA@6PW^~?MKWOs}!g(av#5)~86Wn5j5lPTg zwyM}&C?s1SoY%%4y)G$Pe3VpPi6_3s5`sjm;fLJERUs%xHVxX=NdvU@!K6&kI7_>y zygV-fgMKu=p7EJfSGT3cIFSW+FMNCqf`{Zi>+Lc}G2ZjnAmsC+b?Tg~Xr3ewu2qTC)dj$u37Nn14S5K!ZLOG`QLG?^;f}|c z5gpGHTzRzrxwGdYwR*Sa_}7jA#6KXVNO?( zmQ&GDOx7HIM_F3YYgEOhRhQ8pZ>Qijc8;$B+$K>wyaolXFTu>;677tlX1W%Cb(w`J- z+cz%cRD@UGdvW>G1-G#>?!b1t%kRhpvf1GkB%L~=N@}i2hGsP@gSY@+U>mT|W8rtu zsbUfN+>=(Vsnbi@%q$qSPqoQ?+Rv0w2F+}jBxH(A3cw>WxNq96c~VhdIN7cH>-cyd zVI+kl_bh%jZ+qQZT!Azw8wG(Acr-%Sz1+Z1njH+6q`CK*@OCz{OE1+LS{Q~3!$UIR{)pGDwc6A}XS@+h$2-2S4=TH~KBP9TB|gO2 zOcX5riCHn87K1R(P;fv+MDm1B0C=VN^S0%+0?zk?OTtq<>8Wr4u>#|M3uHf;%z|-6 zxpRF|QP;MqZu8a|D(bJU-6IJ(6MqpE5}5Y-t+}7ztA;Z;!DuANpKrcZD{wzsU*CTr z8xD?|x8AL&FHfs800kKc$owQoyR_wx3egRv*_Ju6nHJQzH={DzF!BO8&CK)!!c z@VTjR>L5HNlJj1i>3q3^&7j}t3)@Q;{h}-bkfE&NUMJbg$VZ!)-t?X6$lXyIC)K)9 zJBuQHYWrMpt&m*aQ+}z)Z7QBftJ#|8sz1Je4?TUw)oZMqat*LgTKCD#%M0-8i+gp* zNh?OF;^JanC9}HO$W`1LF>0AT&?A{=2>@Ltt1?c9CrejG*7g_-VQm>-*NRgcKMVLi< zvhDVmM>%ZFaKF6SOczq#yuel-Gp#N&4r;0@h-~1d*vxl(B=9`WJ)Mr?+ulV*N6U?@ zM{!X}^F&>E{_rz?w5fnnq!|xyp+87j9L$1lW_A5EEHFSFiAwXXr+7y^Es+9C`LY=j z8+)es{C~Cg7Ep0)Tfc871W1B~;Lu2d1!=sY@v!j_AV@=?A%x&G-nb+L65I*axO)@a z39iAVad)?d0Fm2g?{mi9=X>{l<2-xz9;wh5GVJs}G%Xti+Tf-R#HN|g+WbG zfxLqs=x*k7lD@WG>HVd%iP>T!V!YzhoTPpH4zSXQYt@gFc1q(O4Ov|<8#4&-dL`vq z@615%Dn_<~TyV*b+ccqJm%}{2l-K)n58Z&i834Y~wr(-Sr(31HzY$UNX>3xjv{H*k zRVL(_j%dJdPDXzG1?Oj4GN#p94OB8VnZYCdJ6YWMCMqlr9clB##7rm5!8-i!1{&L& zX%H^=Zz#2<#Sr$;FhZ%WGD`gnvlXd_@RHI#+^a#9MzX5xj}3r0!< z!3cd&#I%>)(71xBUqrVIQ|kFwJ@4)C1E48JZ#IG@x9vEJ%GF$s@~kf}lQ}TZX!o zQ~JG}OeIw?EM`8zN62ZM{~-Rk3G6*JPb*NJ;U1X=Bi4_5wzFE9`rZ8P&$8QyU0#@^ zBE{;C!MB4O7(LLbV*5(vv4d4xiq(|9a>p>~E>~8|B31>Y_F8xmZUsWk-WQ{RyR9Ri zxjk)n7M&R_oThCsjN4P2nd2&8&vZ$fx6F6&uG)-Ct_K1D^>u9$_+%sGU*61qe^o?M zX<1A0^nTDK;kYosa*99D0pN(avxq&fjFhh{`LXeem}B?m%^k;_%vmpJvLyFMEu45wO0(u#{N?!mQOhIzQBOsC!14WJIywU{`z>L*Ty((L zpjNM0!GHt=lj*XTCR_Ca>7`%w*|{l~!SbY2h!Mo=Q$XCJm$VRe0tXra&t6O@Dns%L zz3prel=z49iuhI%#3Y3tOMbW;Ch`kLemLJ*T;6qup4^hohoGs@yh*}o%8COqi6To%vBzCD&wDx zya)9Xq{o$<4#UX&egWRy z2@}x({;*6c+1PEww(O_=W_f?k%(clDIyEC(`PButqDoU+r=d>hDr48i6B3=qEZuZ! z*dF&u9on=5S^c~B{!hMX2v$Np?%x2-(P;Zayy96cR&rfRJVnu3E42N{(@C`St3sFngwB-yw zs@_}NTKWkDtq{6mafwFX~kX9*e`_n|9_4U^!iZ<&Q!h-mQugD1Aaf(j-%jVwS!41wiJGgLMqXN1}lXlsN@xhq(nTZiQmO-L;-+8 z*W;Y%cgsT$^7@|JA~EV;Bp^6#7B*dDMXS5<&;doB zeIfrlnsO^CXC~j)0`ZA)O*CyLRcx^d8)iq!)@QacKa>oFG`{A0F z#9s9#XkQ44et%};6tZEK=1qP{X&yfWY0_wAGAsa8y9-FM2x{-G*GtvY)q2q%O_rBS zKFyE+K9I`Pztum5G;*>0fKF)ku0@yZ8>B^f*94z%YB*d?7RMWfk5v*9<)F}ub&Idi z-11JN&&Fx`4=tn0Mu}WdrTI=EHNGq1jZ^>g#i_Q zxtPKDmrO1axyL8i{C|?vwt0L8rjupLFKR6eg=sBP;q8yPh5pI&bN22o1%}Kvu4c%{ z;{#o|SlVIQ-TBMY-<)c}{pC6pm5L}~Feb|y(GY73x=12w4%WlW4R%XyrCRgE&Q z3-&2Vkj^f*kOKN(dDDW=T=>TS^V;!8M++9SGF(@ln3h-ztCpEGJ(SjFRyJ(FpW&>a zyncOZO9>~_VzB_Xe-8YpusHYOtt2Z}ekDFcTSw6La-|OIY&hoPsxYgxDAU{bmWFD! z`;b(rEy5>7MvKxMSl5J#!65RFAHk90A7RB#g7|g+hhD>r6D#cz3flC3VX?iR%$}mh)+8ss8eCq=v+kK2} z69hai*vB5_@Tfz&33nL^1Nr17_ONDE)p@Q3^-9_H8Y$=9j*L8zezV`49m2nw6dZ;f zeAPsZW1;Ib9JaMD(-iL6O87Hp9Is}@boj(8DuaqPFY7jjTqHikj;T?NeWSnkek3ya zXWWd=Q8Ute@JDL%yZS@v)3QVL{e!(9!;ZfIaqpb2EpRgV#7NW6(|T@V&jSZvyexAV z29{RpLdx4(rJ@h5dX$)hU@BE!GLG41%&xBbV#bdWdsO6^Wz!VEz^%zq-=?H{_B}cB3Z^W^g^oaR)8%Fc#Gjr&hw6$LV&Yv6SL-@bFc4kh$RyX<4 zcP+bV|CfC^lAyE+??ztC<@TpNd%0{M_q`=?t&3WAek>^&`web9Q#0*4 z9%A7J`SyRL_U>SnH3_Z$PQ{7wG&&|J)GhM+1B!#yxq6%M9sduVtB~vzBdTi(dHo1S zZ=-D}g#v2hZS9=32t`b9AC3rW{7xiXFU1;x9HSMGH05Hfa;<@Wt1L2L08S+wrZ?iY zQig8|o!l`AK^q)s8MtOSu2FodD$B4@kHM=Y8CZzlMW{g-b?#5<=vkY@AMUzBX`h(o zJ7mG}kcrdX>p0`F>lZ4qhvnNlHdesg+(9u^HmlcjtExKNwZvuoH8!8jp}T z`{?cFNyD*|XL=Qpr}|YoW|yIoE}ZkTo|cVbeV9wbyv*7#gQsQIuB zg6*XQ+6(zr4fk?Sg7v5U4K`cS6uuBctO!99GAxdO+|B!!Gl%;zN)|SsPVYVrNF8(^ zP`f1-kv$MaAn!DD6)+rJi@`vTBGO0;!zRh(!X1g=FY$@JWj4B=^ON<|bqNCLfo^;7 z?Ytt2JMsknEX3glUIrdQpTqS;si{{BDMw%|F3d2kK&a$sCt6`MX7kMIjt7e~kjEN( z{9=kS$K-YOzZJhOad{falg1>pMg*|7e+pC}rWCExUO?qxSx+orFxdckL{RmpadbeP z|7MK75c*B5vFkgrahcbOjobCZ4GTmPrD>GUT946Tz893@m({JL zH|=dmj3UKg{N=adaOqHe4l@vQAiYe3gMa|y{hl6}u*5}2S*rCDVaoRrN6V7xUT32@nS>J5*MQ$TmxjctLQaUn5-fR#j# z!>4zF30r*zdy`~bY`M{A0+uGuC=x#fzwR|w6sW_ucm3IFMh#jM4cmx_$mo*nR%X8~ zxNa5m8#>Kb|L|>V4JI;v m=FT2!K17`l=sBnRX*O3}78(`Rb+WRb|*#W~VhGtYa z4Y`!pBijg`B>Y%@^t@6_g+S;$P%?uN8J;X_ACojmimdG%6M!l5LztqT6871Xh$mDd zoF^v1jjZ4n&d`#{S5MkjG0t8ALSbg5j=}XC5j@hn4I$PSx}y`qwAOW@%xz>^Ej(CM z`wN<$O24{Qz6Ca#hAPmk3cPd(g;&-^ixUl|zY@XQ=acLKmN9zjZ9~-Ia;9TKufpuUT+UR7MEv!L*u96GaJGLjYysFz>=;4o7 z3V2Vq20d?h1}q}Xg<}mwJAJ;Pl?HcbUbls?d%Z&aY{(M3uWVh+xj-SII&oPiLPRg| zsSV|DN9~k^w5@rdXRk*1%BiHO1un<$z5tS?-{@*Y8m<|Vo~3L7aRSAuC433Ql1)+R zvt&BEwA(Me3q%m(iiD(g&Oz9*-}3R;7`4Y1*QjKq3AO!V*U85D+KEeQ0LhhNAY$TN z8Wp>~xIXf;K|R(h;gf8+?tQq*a>yJTTeX&=1`vu(IDXM5uO)n{>5=i*b+Y9VQ zezE58S-9bDW(>qKtH>6T7c~&yyDt%tDsgEx>*&j;{Zrj+zzXQq;O(+JT#wDj=dD!_ z9ka!Jo~IKm*jf4LO(X-MGb2_XEQdxMyfs(l&Wc* zP<%FOgX+<=!MH%(BIgg?Xyb)BI1dGbO&4m#Uh)BOSkhEVM;1SfEPi}r#Re*C7*%wt zfsPDq)o>=J6AauXzSZg|Kw07ABx0B^#6pxV z+|_lBxb|b+J0B`DtK`0o8E+DEzv_vn(#veVhy9~2NNfS&z8%)owFRTDxMM>aot=8f zXjd}ZpW;*#nx3xsQO5lwu`Qhy=x+a^vq+|p zNakbfg2WoXj>?JnXLDUpme>}RT;1@mEDn###^?f;2?=ivb2;Vx@f#`v9R4Ag@|Sdg zP|kl(^q#|ye4l60FE{HT4FUol{=G%!My*3LhuTUZ5(D38<|O-)-r-w6-W)*n8O6!?kfI_&gE_5WJ@KgBFqPNUY1(KZ<-KY)74QuG%<-b+^dpqV0h`nub@-QHx6=Ik!7y!nMxc{<-8^9V+< zkckqDuWY~1^E<~P6tI=<{XUQBf69tDYa~qT)g4n5jrlHP-pTW*#hxj_O)@XWm&1wr z^?p-_sc2Ny|aY21qe`;5a?& zcTTVNtDqohhz6;f(?2lX{|U*Pf^k!PzNi2zwX(R*n7tiTCsvYhxNxXBel1~i_xefh zO|93bs-KZm?NUK3SlFvPe39+gZ`F~aTU%?KJTM8EuvHs_p*t`3`^lbZ2ub=)y;PJoy_1|%83k>p#6j+r~ye|*@ zI}}4>9&U9oK>@CgvD+zJbFTPuX9upJ+`8&cqWOH3)aHXh+R!)InbPdii1<;MmQV#> z@7VSIphSH<<*5t2(~FX1sk!})&2>vqtx|qrM@sj$7wn0BiizW`id%bQ&nn68Ic$$Q z#=pDQ$l+1u7cpm~C2`i*5J`C*)xN(r%pVY8(AU1hbwn;iMdyNRaMMuizu0eX>9{Cb zI!l^T}{kiDy)2D>{oSeZb)^LIkgoKX7V*-avuN`(CnHSs*m96qJGM;HD zqJ>X(b6O*J?r5J_Ar?>7@MA`lXqc=a3=><5Uf!X>b?%xobS^ek)#&>L<{^e1)iCR- zz}@k1STlQM83ZQQTsPCNvNQvxdYNQcS}vN4;x<{>EFUwGHSkeoAsZ=?8`KqWTHPMC zB%a>?1-QuA->z@p8+hY9oNwtkG9ustAp$|x{Qf3ksWd}#;3giX+wb;bF6Y67dhWIC zFk98y0Q+P%)@!inCbn*1X7OR+Q%-(%n)P)ykttE(`;)mMQ+T$kgVXeoC<8wJbgun} z@EB(uE8I=#pM1-+ly*629>W}ZF&820l>~rf(c$oYl|X~goQaU#qrLfJQ0!HtP5c+kICIt$s#!;T$h4s zm|~T1GqPg9wRy58W{EOYvmWIp=!^4|B~8Nj<>djY{3WQW`qC@R`F!%_yjcWdqqldg z+i$HS@>UxjhDutu#!FneGTJD=QA>E7i3g$Xv3K zd2s|PZU{8>)elW<>i_{UXZS)3RcxY3<^OUSrVLrDsyc^`Yletj$Ewlp26L=TP0MT) z2eAh-0FHGYcVj5IP(sfOLQ*l#`vsrOA*oCx4i`cvoTX*iE+&O^x@y))FtwcjOM2G& z{!cJg%BEKb3N&m~V)PTH_+Pqda&u1mh6ziyb4<%?l+w`MEAhWGEHyv&24OP<@BZ~) zc3?owHFBRMN_sa(qibvMX( zelBSI0@Q3Y{ozXE(6|E?I+f8PWAoFAmlCA~qN|RXu%3~TJji13$2RfGhiB=ylam-a zajX3L#S81Ag$o;#E~_kr1>DVK*fFkk*+NR`#{iDSUa2^&+V$$-;mFwj#jw3`O&8rP zda_?HbI3$A2q}QSD&c{<_`=5SD=c4d?!sw6g&&@1>KDK!u1wARsJ;z&S7*e=d|<9< zt+;l7AwIr{IbId_&T}tf{+W#HT@nFZ73Fd-kRpuUjBQYl zsW^OgMnanueBh?!U?+1?vNsqq>K*aq$hCnW^fBvb4JtJjkL;`OvO~^leX#!OT1~?$ z{9?eQ5R{-NPhnLWVxp)iYZL@AtvUfoD9RYP1X>(pWG_LsEg%X@#iI(_=E5vn^Zd>?(CFc=L5GJ{qri9{?dRAcGg3Q+r zr}^r<$rhA?HhGi}Fa@H%bU;}lpEV|f9-m|*GJ*zk;3J&0vWQ_CmK9fLVLEwS@5u?_ zqWjh}bt)P};xsJjWWIer_IPSS;#(-Y3{`QTt9qFdBKeMip93puIH zp8Y`#YMeU}m8PK7dO+M0TM|$wR23r%G4ml(msM8P(2xXkKN!|rzFLpqLqA*QBM4eu z#V6(>_DQYKHcWC!8@7$#Y$t#-KI?ft@6^#d!GENO?VPk*WE(0WJeYnT+s-9R%bt&^ zv8K+^0%8r~{+s6eL@NlBJ~w6N_x+tSdoE-(f$ef?Ir;o!!vq=T`&L0APj6XbUO$BJ zs>O%I>-So3r@cgn$|OYU=M0EvdYSQKe$ClfZ$GVA5>iWSbH34 zQmbbp&PCJ`|D=`*?!xto8k{)89y8{#7A$qDn~7zsd>YPik!*-y*Hn0u$KN`Y_|l^~ zkwFOp#Q!a=A|$>(x~2wsKcI)%>~%cfF}i94MYFD0a2>xzv9@^hCFdBe!%Sqna9CFI zE;76OJC~uY(+p>J1zHccf*_P=c8*L0T&-23vr#G?6t#5xaNoh{i!~RKU#%_g1$~(r zxSgs)QohKO&BKmVNZ|1+Fa+}Y_E$&tG^%2$HVdC=LnEu&hHXAv<2>U;lZ%t$GiY(S zKAh*pJm-Nk8M>XH;(67+a|!Sm9UXlW@>Nw%q25zObg)UigMOzrV4kB)DB->}mrLe& z8)MKQ3qnVQw2c=|@H9LptS*A*f;;)+^T`{d&lv55(KlJh9u|kG3C${L_pw166LV@} zCSn#xOUPE-0mgYmM@vOjmr!fGf2{9u-21Oy>U=WGisf(SOKKW($(`M}Y$?oG+`0X- z@RYjO;%Q}Y?suYz95Khrp<$Sg@vh}GX&B;d*Mz`|UDa64kwgB?tNTiGgk!G*)TS7j zVXf|W)=gu(JT3g-p?d*ia#xmn@}Rzv&{S^1(4L5Zn9J=`gOgO2h>z2g`k-ppQM=;W z(P4XlNSE1rR45KsG7%ftG9lz#MP5GsLQ7UvmAd2c$M<2D7q?p3&Y|#xyh1J`BSU>> zIX%li^K=aC#^(+N4LDhA_18~o%S-)Qke_Aqe*wTb;ZGTL=%X50blCFx276^~Pu|6&loZVjZ%p>zqjw~+Gd1QBbKJ6K z3P?F_-E91%i&b|8EFjDLhK>2#nAx%gXjby)6JqvPT6+oZF)V3F=xS9|5!Xx??&O$8 z*Egi-v4nfr8K?tmWSi%qu#ZLP)IZ*cFlT08_{p#jEDW%kSVBvG_<|%y^~w zPCtJq*79B7?3XxpOqoPRaICJDJjY{^-l@9C7c94He?o|`ZI#<+pD=5!t`dz7r{?RF z>`fj_)OB+k8jZNN^jy5XS1>KN@s8IJmh(fvmgGuY_cZ5c)t|-cAsbtIp|l5 zAx5;^qg=Aci?B7OW3HC$+Bp=3PB6W!Ss|ztNt2V2PZ%WPygDVBL!{O_`h7M1)GjCb=0nt1-0}?xT_NZU!ph;=l&O+1Aft=0G{1{U%9^;PHcIg1)sv2#SfbGUW~t7VKIJ&IreCP~sT|disrP?Mo8upJ-1) z8)$YjVzNXDk1L)WtHo17_FNsmI?$-}=-N^9dC^e>qCLsH?|JrZojim!Z-+9sqP z9f3GcoZrMEBo&{jeMdNlN0#TkVKzxY^HgdKCv%MIXxJh7 z=(w&GZ}=!#)>F|i2Bzz)xYZjItNhAW3##%g6`BoCHp2$Ojj=FXVu(e^oI4{n`vinN zOLTt$tabt!K)bQC4BZ!R(VtD`_FcUysV&H#o3(?^EB-D5@{iFTRp$4$e>vwO>tBEN z`%j)A@BaJ9{e`;X99B7LPfxoEqq-9yHvpjWp8-^vkybk!*?CA>u^qMo=WsKwmkZk? z4y)cJ0Fv4%O8YsXcW-_amM(JT>mpq&Amfo;Y1BIgKj>Sw;4ZAD&csF05k=w00y^MX z(*&3SL6CicsfC1gy19YE@O=^ryI%k)(K1gVd$+kkw0b3^eL+?P6zdw1s0CG)lr)r> z*myrNrXYgiT^?k5NUVMfD+inkuXF$Il%P4OsZ3VYA{LLArq|09rC9Z_-YYe4#RKe8 zO-_>UYSrl+k=n3sW5?sbW7Rs8h0mx91jPj)QS;_}Sg1Cu+`+=wJ-r_@NbmgD4;NWH zO4-vqHM6Sc4dysQEv)77U8hxs?|@ibk{_0<7;Q%A&FZ!QaYj^3QFC65+vJLUBt(o3|%8V8~Dkk_;6(b zypi#FJM8FPh=d|;f^~yW#?H%K&RJ1rz)oS9$P0-erYN78Ud+d@4RcP7FjShf3{)La z6lUeM5$f8CzCE4z@^t0E5r-vqgmTWj^mJ?r`n;daHakWbT!r#7cN2de0u0PuSNdx-!5p3E~;i?Cl%WMvU|k%+ReBS`y>_ zv_L8`-AvV5*+M6)U5;`;mPP2Z{RS4z)_eGHGwf8%;~{?vrwyiM?YHYI4l6@-;BZid z_(z2c*$5IxFO^8{*ALwzUnm77qBYImI8CWG`|QSt?8(|kDP1EgWN~Qkz6PY!ZTUhV z8UjDa6BsEYBC1d9pW_vl<2-QR6im4h46~T3s;&{=nv0t3k|Z2$sCvF7Mup!)4M*M* zJAR5!jgvI|tRkRIOV!CTBzW{|KU&R>O($yGV0Dd}W^%7P#R{{RDbO@ab*1JDz;`Uad!`I)0^i(LNPP+Ek@D#M(UXaI_!33o3@*QGy_QyEc_wM_dG`aK&$7*< z48|92EXPB)XEii*WWWJhGL5!E0$M6Sbt}>>C1M&0*!os}Bx~t3x{b$B;Gbfpc=@Lf z>gpFwJZ9)|4&wL*xv01B;-6n0E;`^uM7dk|zDlXHE@m5BDsv6yZ68*) zuhDT|BO)JD;XbrP=-)-qQcIMiP&s=+J9>n=ZuAi=l#M;%cDB+c1PMXzX@+ab&4*jv zg2l9MDMH&DKe@{^UKw6X)P374kp8ASZN7C87=HCiv~lsM$w)25YVlpD5%2MaXNclK z#FwD6FDG(8cXqDQIe!6!w=UW-8t{-MRU1>y1v?5*e!gi&{QE7*Lx6w4XUN%BMBE6E z&YXP_YA*TX>I%+kepc9vx!GTU6P!SmCzq)phHi$qNsa+*iXGRm{^1qmM^*C@cWp6g z7A0CA4mZw9swh89=jG|M!eS2rqJE!iYT-jGkt}LKGp#Zvfk4bAgS-> zN{?*a3C4p}b>-n`RYFKHnv zwgG)0GeZK7BI8o80ger0N7GRVUjpTxLmSaB@gu>7f$-ruUdAE0lPkp~X_9UmkMB%S zgP)xdU970Z>ph3M0r0q1ws}6DzyqA51kv@dt;yakg0ku2ql*NyZJs>(jxFOwIbvCc zG5uwd5>tv^)z9FX^m4PA3;n(I%$iV}&kF=ebmw)FF@95Dh~aIJp0dRDy$jB+AIKR` z0*&Oi->BVU)@~g+@;Ks52t1oVoIo3io|eM+JziCWo}lp#+}{P>I3G049qKFRc{A`9 zc&4C5r=^aMddnO%CS)k&)Izd^Rp*12mn)^4*cRpGH}xwvw$h>E zlxWI}@yhwji5BZnE4vdIQHvNlM01=W6*NJsrXpKjAasuN(Q!7kueK&=s&2fx^ffJA zL3KXJ$`$3_Lt{_Okl7}yUWNAb^1|xQJWdG|!l5HT(r@9_g{$Ic zJZSm!vv2?MCITCu&%x;QSL;YlVAL_XuUEd;{sN>KFbauSqDt!(9c*DAVUHi+2MFO% z+eMA>`|*!KiY5=}r%IqTo~5cq;h+0Q>1YXPou+*8Xm4$|U&H=1N#BpynWIbkvY(n# z>z9bhGK|HWy7Y~+$Uq*F1UudP#i_Cus01%A6C0UXS?~C;TdgE74D;WM+hDM9P^LEG zA#9ST;uB#0L7YXz6~)2QU(Eu0CMIV6L{7*-{*G+y0$Meq&YJ{` zsYbo4Ba86|{r8>y8iViv;4Pg_WnwE)5Tw6Zkt$uJ3#*4I^S|Cr2%{Q3lWZml&T2_x zpSN>y7M$eAc*V~Z&JU_OerjaLyiy5bz7v1kwmN%|R5PLVifi|=PtBIHtU8o=M}((V zZEFYqT)s}a^fV1XeMfu(qHB7AoY7J>&&*4@*vn-lJTHwX|J<-3o?bZgaJTJ;eazUZ z`-7zy%d>-dHCkhf1=bcm{X4p{>d!Vcg(>GU5JL4?O!MiJ9;$a3SQ;nXx5TYBl!B@T z##~iQ4-$w13w&&NT&`DV)~g%cS8}Tkh~3ACiOZfi;twv@|45mhEpEP}d#|`O{#x1M z#9h^SQ}D$}ShX+C0CRBb+Msi^yV?y;Ll=Ggg4~`h>TVXiXxrFFMq=a97HdPW8}r`F ziUWpzT}|PDmb4QJdLr*hZM@XzU2mrcZko4`So}seZXY?lYq;`MPhmVLwP4UpxALZs zJfK(~(U}9eHh3k>oCu>l1Xw`CM0dcQ{%NK+$BdA)q3eIPsW-!bQd3-~S$HJe(F{p@Z1h zp2h0KHfm_gsuF1#vYvWH34k-~76CZ^k#QXfyw)?Xgf~YW3kzL$56Cr_q{c|ze+|)5 zY#d*2WGBIoRIGk3qT#dj?WZoqE5l!atGCq2qMwCalC@;)P_qOE=PsbcBTF`~)WUF< zN<4|G>r+sqt7^IlqWLIO*;LCs`NFG-V*gHcYtZPN6M>ycA@`snI6#Zh_Qg~s{Z z{B!pf(sS%3?@7V(8A<2Sb;#&9*oIBHJJ?5-x?U8+G`>3N!{g>~r6gqM@zGAbJ zLT79Qf^zSP0iK!p*%lJvxn8^htXw0fmnei=U;&PhfShEhRa#T z+6&H`)-uepDisUo9@Ic}k{7V#E&l<@#jG=~jpAG?Yo#4dlRN}%JN1F8J8u2}#v)!) z#j$EmT)9ez-?}u$eWx>8xrhp|-+jD!!W3akvz#+HG5qp)4YMkzqp`GB1a61F4|J0@1BFo3#LsMy>aH{W`f|~CKlXVt=DT}7-1}5 zPI4fd7-K*NPCsBvM$Zd{9SZFR$b;Ebw1>q$M9mviZtUB3?e@LuI@o@-VD+< zJ*%e8xn5Hhrp0O%J<{I0)cB~B+L6bNJNo@Fm&LLqhGZtWxY#6uGuxwdu|mWeZrCge zxbD{8KQ^}Xo3Y5vsC)IK2=tqdmaf(WxNRT@k;J1}div&VnAC*zkm&j!0A)t^;iOaRl0uR;w`|*QhmfNd{ zsulsP6u0kf#?HEjh%nE1FxW?e2tw+S2r95JD z1v{b$eRV>|)?sj+yah#cz{mVq+w7YCNiu7@%EOK!W)p?{rkmUIytv0dxP~T2It|=x zv*5nltVhEm-U;09wQrV8rqhPo4v5i###P9UltDLfoRwIM%566+8#k8`Q-pOzd3{es zUtyz2^p8E247H$ygiK<(0k=JFt5ISBGg6~Bg5bu5&Asl=OVW^=rmOlNB|oSbJ%Vpi z^N)KfT@hM=%``nUND{F>$*}i(*-9@$0eIt_#8?VGQDuT5EX=PXGJXP#l z9d?(W+V7^)|59#3f+Fiwp3cTAKV$LcDU667dt>$3&gppG1V~aQAeUj$=+5rSr3@mh{YaBt2+>!8=f?PAPSs=Y7tp-oeQxV;TD0f~I$3eTpIp11hi@V&eHb%22M`{~Oee`NgaN9$&;xIy(Pp9L8V!5WJ2)YOl zrWGT3Jyk;hG9-&ONV&W26~p{Z``Jxrly1w0u0=cZ?h?r$;ObGxMpT*cXy6QjS)KFJG-XM4VI zJ_hkn>vpkXOj_&3rO1OD997Dznb?PDJR1lCRCNvlL@O9ICS!XdZ)>@M+!B&&a_UBP zf>r6wz)yo#Wywq5`X96{7t0zczUq+*K&9n|iy3U2k^s(u6kDegV+*Bjo{e(nwq4Ax z{bH!9$LwgA4YsQDB@`SaWoLC|D%687IhV-O?(f=87%e>x4jX7Ho80idP0No}Csl5@ z7o);Hw^(JlXy1MbL+Q}q70ivT>@tjf0#C#pCs|r&6b8|Ytwc#!WIu9*K~-@jT^2rT z1q54CUmo^+3+v%^!-*12!}ryl&I!na7w@XrIf_}Ee5omK7g%Wp(5h2L5kzFSo@{&w z6QM$}464HYtC4wk%|b-;LPXibOyDWEJh~n5OIZv3II;rtvP~=26?!1}(m3omQ*|m$ z7`55{`^W*Ps|o7CIK*y1#FIWoqG_WixEBa`)>o8TqjOy}2X%<;ULYj?q4zpewkLLD zi+xA}|5l`?0$r9PwE316%q8BMwzbdBeMO!H(SV}rftV5zKa|gAU0=i3aW{$l!WA*g z&&oDpP-MCEq|B#2FST*Y_Y`=buNQNVXe|tg=%Gjq)pOnbct8wS@kP|%c8}X~(AEAH zjwrNytOy?YR?M+yTFjOayG~VKdWV6=Tn$ehH&(G8S!TYwSG4>5rY}h_r@#xxV)vN- z{e~&tbt_KD)T+IB=Rc{68K8y^66Ub6!{WF*pWf&hpIpHJ{@QjRiCo@p{imn8+D#!` zW-UI|m6JBEg9{*v(WwTNRMRTWF?kkh*P5nAqEGeMPTSzl6)2k16;J2#3otilG5eEa zwfg51E~()g71t%olL%PT?&NUaWWJianae=?(9nEs{k*g7P`d*3lF7j)an$s_SFv)(KP5#y(*C+FA5y%q9pEy4O7ytySS%Hmw45sciyK- zO1y`GyRi`t{O+h-2Q{qOaI8MD3IZpmgXMGH>R z)n@{DPP&8E-a`5UPVQ~$r2dvNEC@q8m8KOKGb*Q4cDywh! zT>D360eS719O!6&w24EiyC=4^tTWB4~sgCxTDEZ zXT0WrNH^+8JI${I1*2LJ8~TanY)ex@zrb4Y9Z?og_L!C~r}ey1p4={w2)U*>`lq*%AAIzir*|({<;2?=L{6 zw5$%}S*`k};*a}>CPfYh3=0<`mR-%&!70TlX6aATt~^rcEE;m(57qLcpLr^3$m%vT z2@6JdC9W>t18iMBDR#|^uMfu}5$O*7AXzRNiED)2cg-P?_hIXiZ!nA_lY!q4#;>BW z3T4X+uvyEz;>K&2jhcREpbEU7-S=CDo$i+}jW z9o`Wpw{sfc?%#2r*8VO9|I3-D-`LUQ_95(DI@?LPGu<_}Hb~Q=5Bkrg|NGlP&}$`N z?2WaJ7my(+iLx&(Z_B`Wb4fcjz6Ke&-0*@Vc^2EmK+5V2Yk2Fanm!40q;<_+O=MZX z4q0Iys3bok6@@GutA8Ik8Kbn8_CAOA`46I(?}iqnlNhn$bAK9<9Z%FwvU*>si+Yu9 zHT%P9a)dqYEbPmi+uhw-y6^|`#HpT@nVI!N_!6LBfcL%W>>s$`iDNK2Gei)EXfEKb zsW&?NPxDYgD`50iGsaw{zLKphHk*ep50*Nc1FyJ!k}KuD4$*Yb zIMks8wkQ6Bd|cy~v>YsCdF&5BLoo|>D8#5)2F3jY&_J=<`-Arz$pjM?*hKzkWa0mf ek_`P{lB-lSwokvaZ)b%b&K*LjvL2KCn)z?#do#@d literal 82375 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 Bhb#a9 diff --git a/artifacts/skillguard/src/pages/scan-report.tsx b/artifacts/skillguard/src/pages/scan-report.tsx index 25c33a8..f617e53 100644 --- a/artifacts/skillguard/src/pages/scan-report.tsx +++ b/artifacts/skillguard/src/pages/scan-report.tsx @@ -1,6 +1,11 @@ import { useState, useMemo } from "react"; import { useRoute, Link } from "wouter"; -import { useGetScan, getGetScanQueryKey } from "@workspace/api-client-react"; +import { + useGetScan, + getGetScanQueryKey, + useGetScanLineage, + getGetScanLineageQueryKey, +} from "@workspace/api-client-react"; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import { Badge } from "@/components/ui/badge"; import { Skeleton } from "@/components/ui/skeleton"; @@ -11,7 +16,7 @@ import { Button } from "@/components/ui/button"; import { Progress } from "@/components/ui/progress"; import { VerdictBadge, SeverityBadge, AxisBadge, CheckpointStatusBadge, CHECKPOINT_STATUS_LABELS, RelationBadge } from "@/components/ui-helpers"; import { formatDate } from "@/lib/format"; -import { ShieldQuestion, AlertTriangle, Download, FileCode, CheckCircle2, Code, Shield, FileDown, ListChecks, Fingerprint, GitCompare, History } from "lucide-react"; +import { ShieldQuestion, AlertTriangle, Download, FileCode, CheckCircle2, Code, Shield, FileDown, ListChecks, Fingerprint, GitCompare, History, GitCommitVertical } from "lucide-react"; import type { ScanDetail } from "@workspace/api-client-react"; export default function ScanReport() { @@ -265,6 +270,8 @@ export default function ScanReport() { + + Auffälligkeiten ({data.findings.length}) @@ -469,6 +476,87 @@ export default function ScanReport() { ); } +function VersionTimeline({ scanId }: { scanId: number }) { + const { data, isLoading } = useGetScanLineage(scanId, { + query: { + enabled: Number.isFinite(scanId) && scanId > 0, + queryKey: getGetScanLineageQueryKey(scanId), + }, + }); + + if (isLoading) { + return ; + } + + // Nothing meaningful to show unless this skill has more than one known version. + if (!data || data.length <= 1) return null; + + return ( + + + + Versionsverlauf + + + Alle bekannten Versionen dieses Skills (verknüpft über Fingerprint-Abstammung), neueste zuerst. Wählen Sie eine Version, um den Vergleich anzuzeigen. + + + +

    + {data.map((entry) => { + const isCurrent = entry.id === scanId; + return ( +
  1. + + + +
    +
    +
    + {isCurrent ? ( + {entry.name || `Scan #${entry.id}`} + ) : ( + + {entry.name || `Scan #${entry.id}`} + + )} + + + {entry.relation === "modified" && entry.similarity != null && ( + {entry.similarity}% ähnlich + )} + {isCurrent && ( + Aktuell angezeigt + )} +
    +
    + {formatDate(entry.createdAt)} + · + Risiko {entry.riskScore} / 100 +
    +
    + {!isCurrent && ( + + )} +
    +
  2. + ); + })} +
+ + + ); +} + const VERDICT_LABELS: Record = { pass: "Freigabe", review: "Manuelle Prüfung", diff --git a/lib/api-client-react/src/generated/api.schemas.ts b/lib/api-client-react/src/generated/api.schemas.ts index 86dccc8..ff0cf02 100644 --- a/lib/api-client-react/src/generated/api.schemas.ts +++ b/lib/api-client-react/src/generated/api.schemas.ts @@ -286,6 +286,52 @@ export type ScanDetail = Scan & ({ comparedScan: ComparedScan | null; }); +export type ScanLineageEntryVerdict = typeof ScanLineageEntryVerdict[keyof typeof ScanLineageEntryVerdict]; + + +export const ScanLineageEntryVerdict = { + pass: 'pass', + review: 'review', + block: 'block', +} as const; + +/** + * Relation of this version to the one it was compared against + * @nullable + */ +export type ScanLineageEntryRelation = typeof ScanLineageEntryRelation[keyof typeof ScanLineageEntryRelation] | null; + + +export const ScanLineageEntryRelation = { + new: 'new', + identical: 'identical', + modified: 'modified', +} as const; + +export interface ScanLineageEntry { + id: number; + name: string; + verdict: ScanLineageEntryVerdict; + riskScore: number; + /** + * Relation of this version to the one it was compared against + * @nullable + */ + relation: ScanLineageEntryRelation; + /** + * Content-aware similarity (0-100) to its compared version + * @nullable + */ + similarity: number | null; + /** + * The prior version this scan was compared against, if any + * @nullable + */ + comparedScanId: number | null; + fingerprint: string; + createdAt: string; +} + export type ScanComparisonSideVerdict = typeof ScanComparisonSideVerdict[keyof typeof ScanComparisonSideVerdict]; diff --git a/lib/api-client-react/src/generated/api.ts b/lib/api-client-react/src/generated/api.ts index 69a0938..714aded 100644 --- a/lib/api-client-react/src/generated/api.ts +++ b/lib/api-client-react/src/generated/api.ts @@ -35,6 +35,7 @@ import type { Scan, ScanComparison, ScanDetail, + ScanLineageEntry, SkillScanInput } from './api.schemas'; @@ -438,6 +439,84 @@ export function useCompareScans> +export const getGetScanLineageUrl = (id: number,) => { + + + + + return `/api/scans/${id}/lineage` +} + +/** + * Returns every scan in the same fingerprint lineage as the given scan (linked by an identical fingerprint or by the comparedScanId chain), newest first, so the full version history of a skill can be shown on a timeline without re-scanning. + * @summary Get the version timeline for a skill family + */ +export const getScanLineage = async (id: number, options?: RequestInit): Promise => { + + return customFetch(getGetScanLineageUrl(id), + { + ...options, + method: 'GET' + + + } +);} + + + + + +export const getGetScanLineageQueryKey = (id: number,) => { + return [ + `/api/scans/${id}/lineage` + ] as const; + } + + +export const getGetScanLineageQueryOptions = >, TError = ErrorType>(id: number, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} +) => { + +const {query: queryOptions, request: requestOptions} = options ?? {}; + + const queryKey = queryOptions?.queryKey ?? getGetScanLineageQueryKey(id); + + + + const queryFn: QueryFunction>> = ({ signal }) => getScanLineage(id, { signal, ...requestOptions }); + + + + + + return { queryKey, queryFn, enabled: !!(id), ...queryOptions} as UseQueryOptions>, TError, TData> & { queryKey: QueryKey } +} + +export type GetScanLineageQueryResult = NonNullable>> +export type GetScanLineageQueryError = ErrorType + + +/** + * @summary Get the version timeline for a skill family + */ + +export function useGetScanLineage>, TError = ErrorType>( + id: number, options?: { query?:UseQueryOptions>, TError, TData>, request?: SecondParameter} + + ): UseQueryResult & { queryKey: QueryKey } { + + const queryOptions = getGetScanLineageQueryOptions(id,options) + + const query = useQuery(queryOptions) as UseQueryResult & { queryKey: QueryKey }; + + return { ...query, queryKey: queryOptions.queryKey }; +} + + + + + + + export const getGetScanUrl = (id: number,) => { diff --git a/lib/api-spec/openapi.yaml b/lib/api-spec/openapi.yaml index c7eeeb6..3462bfe 100644 --- a/lib/api-spec/openapi.yaml +++ b/lib/api-spec/openapi.yaml @@ -125,6 +125,38 @@ paths: schema: $ref: "#/components/schemas/ApiError" + /scans/{id}/lineage: + get: + operationId: getScanLineage + tags: [scans] + summary: Get the version timeline for a skill family + description: >- + Returns every scan in the same fingerprint lineage as the given scan + (linked by an identical fingerprint or by the comparedScanId chain), + newest first, so the full version history of a skill can be shown on a + timeline without re-scanning. + parameters: + - name: id + in: path + required: true + schema: + type: integer + responses: + "200": + description: Version timeline (most recent first) + content: + application/json: + schema: + type: array + items: + $ref: "#/components/schemas/ScanLineageEntry" + "404": + description: Not found + content: + application/json: + schema: + $ref: "#/components/schemas/ApiError" + /scans/{id}: get: operationId: getScan @@ -598,6 +630,43 @@ components: createdAt: type: string + ScanLineageEntry: + type: object + required: + - id + - name + - verdict + - riskScore + - relation + - similarity + - comparedScanId + - fingerprint + - createdAt + properties: + id: + type: integer + name: + type: string + verdict: + type: string + enum: [pass, review, block] + riskScore: + type: integer + relation: + type: ["string", "null"] + enum: [new, identical, modified, null] + description: Relation of this version to the one it was compared against + similarity: + type: ["integer", "null"] + description: Content-aware similarity (0-100) to its compared version + comparedScanId: + type: ["integer", "null"] + description: The prior version this scan was compared against, if any + fingerprint: + type: string + createdAt: + type: string + ScanComparisonSide: type: object required: [id, name, verdict, riskScore, fileCount, fingerprint, createdAt] diff --git a/lib/api-zod/src/generated/api.ts b/lib/api-zod/src/generated/api.ts index aecfec3..860cc52 100644 --- a/lib/api-zod/src/generated/api.ts +++ b/lib/api-zod/src/generated/api.ts @@ -168,6 +168,28 @@ export const CompareScansResponse = zod.object({ }) +/** + * Returns every scan in the same fingerprint lineage as the given scan (linked by an identical fingerprint or by the comparedScanId chain), newest first, so the full version history of a skill can be shown on a timeline without re-scanning. + * @summary Get the version timeline for a skill family + */ +export const GetScanLineageParams = zod.object({ + "id": zod.coerce.number() +}) + +export const GetScanLineageResponseItem = zod.object({ + "id": zod.number(), + "name": zod.string(), + "verdict": zod.enum(['pass', 'review', 'block']), + "riskScore": zod.number(), + "relation": zod.union([zod.literal('new'),zod.literal('identical'),zod.literal('modified'),zod.literal(null)]).nullable().describe('Relation of this version to the one it was compared against'), + "similarity": zod.number().nullable().describe('Content-aware similarity (0-100) to its compared version'), + "comparedScanId": zod.number().nullable().describe('The prior version this scan was compared against, if any'), + "fingerprint": zod.string(), + "createdAt": zod.string() +}) +export const GetScanLineageResponse = zod.array(GetScanLineageResponseItem) + + /** * @summary Get a scan report with findings */ diff --git a/lib/api-zod/src/generated/types/index.ts b/lib/api-zod/src/generated/types/index.ts index 297d4de..160e209 100644 --- a/lib/api-zod/src/generated/types/index.ts +++ b/lib/api-zod/src/generated/types/index.ts @@ -52,6 +52,9 @@ export * from './scanFile'; export * from './scanFileDiff'; export * from './scanFileDiffStatus'; export * from './scanFileKind'; +export * from './scanLineageEntry'; +export * from './scanLineageEntryRelation'; +export * from './scanLineageEntryVerdict'; export * from './scanRelation'; export * from './scanSource'; export * from './scanStatus'; diff --git a/lib/api-zod/src/generated/types/scanLineageEntry.ts b/lib/api-zod/src/generated/types/scanLineageEntry.ts new file mode 100644 index 0000000..74ebf25 --- /dev/null +++ b/lib/api-zod/src/generated/types/scanLineageEntry.ts @@ -0,0 +1,33 @@ +/** + * Generated by orval v8.9.1 🍺 + * Do not edit manually. + * Api + * API specification + * OpenAPI spec version: 0.1.0 + */ +import type { ScanLineageEntryRelation } from './scanLineageEntryRelation'; +import type { ScanLineageEntryVerdict } from './scanLineageEntryVerdict'; + +export interface ScanLineageEntry { + id: number; + name: string; + verdict: ScanLineageEntryVerdict; + riskScore: number; + /** + * Relation of this version to the one it was compared against + * @nullable + */ + relation: ScanLineageEntryRelation; + /** + * Content-aware similarity (0-100) to its compared version + * @nullable + */ + similarity: number | null; + /** + * The prior version this scan was compared against, if any + * @nullable + */ + comparedScanId: number | null; + fingerprint: string; + createdAt: string; +} diff --git a/lib/api-zod/src/generated/types/scanLineageEntryRelation.ts b/lib/api-zod/src/generated/types/scanLineageEntryRelation.ts new file mode 100644 index 0000000..5eb2e06 --- /dev/null +++ b/lib/api-zod/src/generated/types/scanLineageEntryRelation.ts @@ -0,0 +1,20 @@ +/** + * Generated by orval v8.9.1 🍺 + * Do not edit manually. + * Api + * API specification + * OpenAPI spec version: 0.1.0 + */ + +/** + * Relation of this version to the one it was compared against + * @nullable + */ +export type ScanLineageEntryRelation = typeof ScanLineageEntryRelation[keyof typeof ScanLineageEntryRelation] | null; + + +export const ScanLineageEntryRelation = { + new: 'new', + identical: 'identical', + modified: 'modified', +} as const; diff --git a/lib/api-zod/src/generated/types/scanLineageEntryVerdict.ts b/lib/api-zod/src/generated/types/scanLineageEntryVerdict.ts new file mode 100644 index 0000000..aa4805c --- /dev/null +++ b/lib/api-zod/src/generated/types/scanLineageEntryVerdict.ts @@ -0,0 +1,16 @@ +/** + * Generated by orval v8.9.1 🍺 + * Do not edit manually. + * Api + * API specification + * OpenAPI spec version: 0.1.0 + */ + +export type ScanLineageEntryVerdict = typeof ScanLineageEntryVerdict[keyof typeof ScanLineageEntryVerdict]; + + +export const ScanLineageEntryVerdict = { + pass: 'pass', + review: 'review', + block: 'block', +} as const;