From 4950cd0bd094ab620b79971ca33817c1c62940f3 Mon Sep 17 00:00:00 2001 From: Anso Date: Sun, 12 Apr 2026 03:17:37 -0400 Subject: [PATCH] fix(updates): scan all filesystem stacks for image updates (#514) ImageUpdateService previously discovered stacks by iterating Docker containers, which meant stacks without containers (e.g. after docker compose down) were silently excluded from update checks. Switch to a hybrid discovery approach: enumerate stacks from the filesystem via FileSystemService.getStacks(), parse compose files for image refs with .env variable resolution, then augment with container-based image discovery for running stacks. Also cleans up stale stack_update_status entries when stacks are deleted or no longer exist on disk, and replaces the plain update-available tooltip with an animated cursor follow pattern. --- backend/src/index.ts | 3 + backend/src/services/ImageUpdateService.ts | 135 +++++++++++++++--- .../image-update-stack-list.png | Bin 0 -> 103027 bytes docs/operations/troubleshooting.mdx | 12 ++ frontend/src/components/EditorLayout.tsx | 23 ++- 5 files changed, 151 insertions(+), 22 deletions(-) create mode 100644 docs/images/troubleshooting/image-update-stack-list.png diff --git a/backend/src/index.ts b/backend/src/index.ts index 456015de..03160883 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -3615,6 +3615,9 @@ app.delete('/api/stacks/:name', async (req: Request, res: Response) => { // Stage 2: Obliterate the files await FileSystemService.getInstance(req.nodeId).deleteStack(stackName); + // Prevent stale update badges for deleted stacks + DatabaseService.getInstance().clearStackUpdateStatus(req.nodeId, stackName); + invalidateNodeCaches(req.nodeId); res.json({ success: true }); } catch (error: any) { diff --git a/backend/src/services/ImageUpdateService.ts b/backend/src/services/ImageUpdateService.ts index 4d9f1fa8..2a5f69a5 100644 --- a/backend/src/services/ImageUpdateService.ts +++ b/backend/src/services/ImageUpdateService.ts @@ -1,8 +1,10 @@ import https from 'https'; import http from 'http'; import path from 'path'; +import YAML from 'yaml'; import DockerController from './DockerController'; import { DatabaseService } from './DatabaseService'; +import { FileSystemService } from './FileSystemService'; import { RegistryService } from './RegistryService'; import { NodeRegistry } from './NodeRegistry'; @@ -74,6 +76,62 @@ function httpGet(url: string, headers: Record = {}, timeoutMs = }); } +// ─── Compose file helpers ──────────────────────────────────────────────────── + +function loadDotEnv(content: string): Record { + const vars: Record = {}; + for (const line of content.split('\n')) { + const trimmed = line.trim(); + if (!trimmed || trimmed.startsWith('#')) continue; + const eqIdx = trimmed.indexOf('='); + if (eqIdx < 1) continue; + const key = trimmed.slice(0, eqIdx).trim(); + let val = trimmed.slice(eqIdx + 1).trim(); + if ((val.startsWith('"') && val.endsWith('"')) || + (val.startsWith("'") && val.endsWith("'"))) { + val = val.slice(1, -1); + } + vars[key] = val; + } + return vars; +} + +function extractImagesFromCompose( + yamlContent: string, + envVars: Record +): string[] { + let parsed: Record; + try { + parsed = YAML.parse(yamlContent) as Record; + } catch { + return []; + } + if (!parsed?.services || typeof parsed.services !== 'object') return []; + + const images: string[] = []; + for (const svc of Object.values(parsed.services as Record)) { + if (!svc || typeof svc !== 'object') continue; + const raw = (svc as Record).image; + if (!raw || typeof raw !== 'string') continue; + + let ref = raw.replace( + /\$\{([^}]+)\}/g, + (_: string, expr: string) => { + const defaultMatch = expr.match(/^([^:-]+)(?::?-)(.+)$/); + if (defaultMatch) { + return envVars[defaultMatch[1]] ?? defaultMatch[2]; + } + return envVars[expr] ?? ''; + } + ); + + ref = ref.trim(); + if (!ref || ref.includes('${') || ref.startsWith('sha256:')) continue; + images.push(ref); + } + return images; +} + // ─── Registry auth ──────────────────────────────────────────────────────────── async function getAuthToken( @@ -235,33 +293,65 @@ export class ImageUpdateService { private async checkNode(nodeId: number, db: DatabaseService) { const docker = DockerController.getInstance(nodeId); - const containers = await docker.getAllContainers(); + const fs = FileSystemService.getInstance(nodeId); const composeDir = path.resolve(NodeRegistry.getInstance().getComposeDir(nodeId)); - // stackName → set of image refs used by that stack - // Key by directory name (matching FileSystemService.getStacks()) rather than - // com.docker.compose.project label, which diverges when compose files set `name:`. + // Phase 1: Filesystem discovery (all stacks with compose files) + const stacks = await fs.getStacks(); const stackImages = new Map>(); + for (const name of stacks) stackImages.set(name, new Set()); - for (const c of containers) { - const workingDir: string | undefined = c.Labels?.['com.docker.compose.project.working_dir']; - if (!workingDir) continue; + // Phase 2: Parse compose files for image refs + for (const stackName of stacks) { + try { + const content = await fs.getStackContent(stackName); - // Only consider containers managed under COMPOSE_DIR - const resolved = path.resolve(workingDir); - if (resolved !== composeDir && !resolved.startsWith(composeDir + path.sep)) continue; + // Load .env for variable resolution (best-effort) + let envVars: Record = {}; + try { + const envContent = await fs.getEnvContent(stackName); + envVars = loadDotEnv(envContent); + } catch { + // No .env file or unreadable; continue with process.env only + } + // Docker Compose precedence: host env overrides .env + const merged: Record = { ...envVars }; + for (const [k, v] of Object.entries(process.env)) { + if (v !== undefined) merged[k] = v; + } - const stackName = path.basename(resolved); - const imageRef: string = c.Image ?? ''; - if (!imageRef || imageRef.startsWith('sha256:')) continue; - - if (!stackImages.has(stackName)) stackImages.set(stackName, new Set()); - stackImages.get(stackName)!.add(imageRef); + for (const img of extractImagesFromCompose(content, merged)) { + stackImages.get(stackName)?.add(img); + } + } catch (e) { + console.warn(`[ImageUpdateService] Could not parse compose for "${stackName}":`, e); + } } - if (stackImages.size === 0) return; + // Phase 3: Container augmentation (captures actual deployed image tags) + try { + const containers = await docker.getAllContainers(); + for (const c of containers) { + const workingDir: string | undefined = c.Labels?.['com.docker.compose.project.working_dir']; + if (!workingDir) continue; - // Deduplicate: each unique image is checked once regardless of how many stacks use it + const resolved = path.resolve(workingDir); + if (resolved !== composeDir && !resolved.startsWith(composeDir + path.sep)) continue; + + const stackName = path.basename(resolved); + const imageRef: string = c.Image ?? ''; + if (!imageRef || imageRef.startsWith('sha256:')) continue; + + // Only augment stacks found on the filesystem + if (stackImages.has(stackName)) { + stackImages.get(stackName)?.add(imageRef); + } + } + } catch (e) { + console.warn('[ImageUpdateService] Container augmentation failed:', e); + } + + // Phase 4: Deduplicate and check all unique images const allImages = new Set(); for (const imgs of stackImages.values()) for (const img of imgs) allImages.add(img); @@ -277,11 +367,20 @@ export class ImageUpdateService { await sleep(ImageUpdateService.INTER_IMAGE_DELAY_MS); } + // Write status for ALL stacks (including those with no pullable images) const now = Date.now(); for (const [stackName, images] of stackImages) { const hasUpdate = Array.from(images).some(img => imageUpdateMap.get(img) === true); db.upsertStackUpdateStatus(nodeId, stackName, hasUpdate, now); } + + // Prune stale entries for stacks no longer on disk + const existing = db.getStackUpdateStatus(nodeId); + for (const staleStack of Object.keys(existing)) { + if (!stackImages.has(staleStack)) { + db.clearStackUpdateStatus(nodeId, staleStack); + } + } } public async checkImage(docker: DockerController, imageRef: string): Promise { diff --git a/docs/images/troubleshooting/image-update-stack-list.png b/docs/images/troubleshooting/image-update-stack-list.png new file mode 100644 index 0000000000000000000000000000000000000000..6f07f4f2a2fb9af168dc78158568e16d9abf2116 GIT binary patch literal 103027 zcma&OWmr{f7d4DUhlC<6-QA5yDGk!y4bmM-w=|ngr-XD!OV@ z_xtf)-}>Q?t$Xcz-RqunjydKSMye>uVxbeGBOxJSy_1ttLqb9cLPB~Hg8CTv1Ww+X zjD++Y>7CS@4_=vji_bDiH@XIn1U=TpQ66}MD`2Z2aCw>0h zIFjeRv$Hb@1WJwg`?{2^rltDl`h|j?D=qc+wUhay7P*R{p(1fyt^8gEiS?gI7vgfPj=j%E=Gi{pnf!wk>$i8{r4tv-);`R!^s^T6Wtu`C9A4Y$*Z7nfAN#S ziSUbNXb;AdCp*6-NX3h4G~W`El9Il9Wi3{^xyd`m{g9fROz`4`&bW1NU!R4grS3nE zPXD2LU;|DjDQRT4SQF?~IG;Ik?83H~)$*-+#Y$aXKAJ#cxuI}n0YE~CzMUGM7u737zi7FNG-gDBf zuCA1*Y%BynJ5BJ=U}TL;A_e#Z~*GpZK3GP@~Tx0jsQHW(U9Vb;-9H zSL!a$U&~CMg#;OsBqY3(vf~JIw0=}St4-%tPB(#L+<_xs=(oqTy1I&Z4jmk<-odN8 z$Os(D%6gSS29C&FVwIO7&abZKII+Vlf5a)iHVB6|{dEM1vvVGzmKNMcF)oO_nq~Fv ze<`|_vNb=~`LgMf$(#$FimIozQO)S0gs5va@P0*_iwRH(4kk~3W;^-#=(Aa(NSXu< zGxJE<$xM>q^v8b6u(;S*=+KaAGWGZm6&GhUTjQ}hlK^U&W=OOAM(tl`ixB1xm6F(y zhFdVzgI;A2>Uv~+fXe6Dt-N0q>L%jvDN_y5t>D32Z8RH*y9#(U{fsV*j+1}aDN^pq zxXOeTN=_WyI`Tia;^7d7drc!YeR3B4k<-$W%rlt1wQ=OvHzORkF{t{#m0Xn5gdsk3%c>x=jvIfJ;@>-+UEw}{$NHaFoe;Kr z2cg!;?$WTB(1YXw~qg(W3=Y7ZcaApAwXpf_@g$Yl8V z>K{H7`r<`Rdd99ETNNDnsr_f!Hkj|<%RdnfYyR%$xnuWD_#DTRBIL^{sAO1QE-3b; zI#%3Ed1Nwjazk78HrwDgC_F)9vB3^0K4>}D3$Ad{k1IbGnqB?j&!g=-Al?sm7df6w z-atO9#ILKZUGhC>AD{>n5f+{oa+ZmCb#ywR++;mwI#H}hpW|0M6>;?JPZ*~VzIf4h zq}kc;e;((E2U9$|`|OD8%tAbYP*w_t(s*)F+sFtW?5CrjG=nx0CYKgywijkX3{7xTMSq{% zfMi7~{qMJbZR3?E184J>3iYⅅfqy`Eg$~)++iII(snsrQk@1bp{icgO;nfEY}tS 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

+w z8}SBY!)f#Xy`w#St*-R0uOKJ8T1yL(ozO$!Y-X3mwjhD9ac3`>nDjn9{pVwhR=HH) z`vMj!%Gi9%23`9IRZtc`)?`!6$d+9Qp!K7&EP5>km*GfWS?5sJ?+7}>>jOwBB zasDy@RoDC1ezARi23h9p>`1!{7wYNiifY%GOfN-LmT^O3@KhrJWzdbd%>m77wK9+r z7Y~HYvWG^S6d)M$wuoclW;z~c`|sk=v2ZG9kfOMn&2b?CRE0=7j#2pdVh)Lb?fOmt zQ8>iNKm`tF33t&$hpLK-j?+NtfD8{Jan)hjb{hB+cAAvq{@&>}PYlXO75d0MU?EqF$>ma%}B*U-+WHe@2)6@|YNr}>BcyZ}@a z92mEFb~WkR0+f+j4oiME)0@=PdCVN*x`6 zKPVm0J=7^!bC*#8dbw5RsQm6dx$WrZV~_R>lQ}wqaWW#F+|t5p6fhRmCwP!|6{_9qaKOP?i(>BpJ$AF06q zJu1^o2C8#g>FNC;D}L}G4M)bqhdY)&Wi&HH_P19E?nkx?bW7ofhsMT81Tpu0B5Z+d z9Q1QO&=17ol5=K}nhfQJJ8?FOhP%;U_mSQwh(fJ84`n=G5g`$^<_vR_nazX2=wE%_ zRF&2Y!@O7|^gF1<8#gi%!`?@BMm+e#uD^*-Kp+F#Ae)~I?1cy%yCPoAlmrmFy1JqV z29%GCa}`a^nDlN+bO_FFEX-fuQtH+DP!dgCk4_8AP@6hQaN)QW?VpgP@e5|wXq*#Fdru=tv%5G$buFiO^d z79IVF#ll-`cm3~H!|VM6^8Z21DJR)u4x&*LZY%{|*EXp|A7R3#DNHAzq$|GKMMoF0 z78)Z6B%R>>1U!uNe>_@}VR(%Ww-e&~z&IxDd6`HvMq2BHUkTy3>BS19(iW3}q%)Hv zKFPUvy{DO{KwTUK-3t+zKdV0}tt6Q8Km<+c$^% zYmvzE?ERs4WFh3>-gu+$x#eI%>*B9h^E@#7j%%jn5UZ*N2FC9E93S9hceUlYnL!mq zju)#I{bFfQ#v!bsh`+s9Y@)>$84Q%F@91wEeo|}LL?^)be1)%F#Nh)6Fq24H#~!BV z%a<>Y1ClV?oV^HtRh;`L;!i(W10=dDTE~EOuTWR3olM5n7)Q}M&O=X6Kc8iW;-(4N$-m!wW{Z8!e5*%z$l9*UnK4t}VRsI&` z3M{y(@&B5}qoR%>;VRnAi^ojY`G4wPSbl*IB8iVS|H&J{y?Z~Q-+&&Z^qx0EO!7-Oo>$`m<$?kMDQ(!6$Pom zUU%Wt1D1dc50O)pJF#R>l8$iL{ zjU6vdgw7RG+4{MEe?9-xdF4u~rZXW(6L3SoZTlU&)$`ceQKOS&6JX)sa??8g8Ec`X zrDelbmQBFzSnogz?hbXG@J=JOGiTo6;>R%OZk`L4i=2WyVuY z-Em%1A|2E(AQJb2v}rF+W~H)#1~;DPzpPq%MgFm9BW5ECWawEWn&YzHdzYt)?eXSK zo8mv7zMlT2zh8DrTb{&hgoC{jLkJ(_gBTD1m_ZLiV>!ScZQZ@wf?r_|G&vFy9>{+{ zu7XETgg@{g!i?^GzDGnH7L57Hka@)&Zcrlk1bhL67UKsoRtu>Zf0@GK=%lJ$SQmnU z_k&9|sts813&l1*WeX2W5fqOxqPQ1jJql+HVcO5Rk7T&wf`8yQE^|^3?cJDxp>0Zb z^IJM<&N{MF-&KdusXZJky-li@_s2{kwwCxX3-p%E(OGF9qA#wzURz^b>h5Ur3tA8W z;G0e{psNNC+JHbb$DvR7^?i;BWw+9`FN45`-3gzVNuFV04~4G%8%f9Tb&sQ9AdIys z<*6mzR%`zYtnExVeU&iT;O&!OBo<2}D{(rhOLRBnc3M5N-CXrsF}iCjZelK(4~JzUWQl@roLp?awhYWT}0w=5kqif1sU5`#)*er|9+|KoMW3L*9C5$FO) zG&4`{yxE1N>z#_>xBuZu1y)bJ83h0-4St=%Rkp}yBZH^-$zpist^zmXnr`(nCEFQR zJo$LQW~!|nX*$x zGlVV-G$Ol^=nT;p<64}V9rPflEx;d$+tAx!Pl7;u=luwIT8+9oF|#CtZhzBbdR@mC z@q>ua#8lt(%w7S@HZzMSCr+FI&-^le9vY%Fav`Wn*nIib+%N@_KUW^)FfSK8+&VPE zt55ya<|uq6a4z%;LQt;bOvn8;GB##!JKd3QhUqFuw|ZT>l~wKlH+Mb^3Pmqpc2)#4 z8vhv((A(2vd>JPI3f3K}#myKgmXhrY?=tBkwjt{lrD6wA(X?VBT3cl37A7HVgIxZH z)lQcaBmDm6u46x?CPR_fvnVBc3SOsGOM&pFaUb52_L1 z!D&N_b9yMv)o0a0NY2V$%O77=@yD!#?0ykt_M5mGD2o775RhtI z6R~4N=Y(fUCNuzCyAC+Hr?$lCUtW(3pd^L!87CD4cL_2JuDT?J?`Wgmm6bJPz&sA0 zKg^#aC`%K^1hq+cd=?0Aj(G&^!j;VRuClUW+;ro*_b9S2pss~}@i&gKdbmjvimB7n zy*kSL`}*Vc3UsY618VmTTyATuZpDu5sOnOAtZX+GT;9=m?b2IK-%B0ode2a*tHtq& zh%^Vid-J9n(vpJd0|(V5&HSKRk8MEY)y}(5)5)k(gig{TpN*Rv5R!xatb-&DktYut zpY3mGI+v<+4M+=4f!Emh&?Zqwmb+xo#WXjwwX3OfKobIQy(I*UWH62QjuD7?7!OWB|5-=(aReX&4U&3E84wK<_^XwF{Z@W8jAV`o59*GohG7D1KDm0I-MW2gx_P zCJER@#&!JdGf@c-*0x@MonGYSGAe&fkEQP;V0Sxvdu*=w;TB*tAeoxQWmb%0e@%_| zBT&(rXg|f>gvG_@a+x^F^4ov&1;es5M4^aZFkNiBL=+B5PHu_i3`pre%crol2?~L` za|W{7hy&0`5As`v>lV1@2^Zir+H1B=Bk61gHo?24kLM|)5`3dQnvFvyWb)owMi1YF z7$N8Kd4rI-o%9zwN`0j*fjQb>T9N4yA)!WyV1iVk$W&2DgSW{yH8u6~r%w<1xz9fT z8XK2*gpsWnnG-h7&Qs9$VsdwM0FfL))z+9X=eJ5ilcC*POflyx%jIKqqo2>;WppD7&#lKQ(R2m>y zJ18uyHI(eO$|SM^9zi-M)6f0BWL6a8u3at;+OBIrLdX{lHq=_n@g83A-S9XGiE@jFP~PP z&e8GlqK5mIKMhr=F7?KZm71r2P_@zi0HH#xx2CbE{{0Uj$N@}?`dXTijyFbnVWQi@ zvWq_Wx*VEt!SMTk`=Dr3Li1sYN=AtdF)NBz)L?-5nho)t<4wG&15{G6utiaJFM$r+ z#w{xb3iX|ru>hLTd@?2o6%w(b!PF&wp&lHdFCXy9z(1Gnc-TclK%DhKbqWP4$ezk2 z=?|Uw;g90`xXaux9e2`7G__6goKEBxx&LUQvVTSGjqDq1;*M%6U9P@OZSFp8Lpt%T z)blrx3(J{fgi4sD+)tV=E%QfKjw_s4inQp0f%(;U-aD#yh&Z3v4q`4~9|`LIY>AEw zEhg}62?*?P`~KKKyG3N$x8Bgj(0Twh71dNj=hNrv+ZGmFnYNlg^! zl@5hlDljnc?pH18o@ZIx?IWbQ60gqTNmVdXbGFwTu${uR8I_+~vFdSWa9*_l&5uF{ z_jS5HJjTLFh`zu;hV9i-iU}%RJIn(!GA2$lrY{8$xyF~sg#=9|Q?H<<9ogN|*#DWS z{|vBQ%Arip-?@7^88167}e!ymtsgf21V zV_d_fh&%$bp*99w(+PDDv2&MRgT%6J*{Y~@;_xUIIX)7y2qbDw@{K3*#f^EUnz&M}^a@@diMdQ?1)1e% z@QP!jv`))`DMLYlh)RebzzKIgJ$5l7&tNM48EJLJ`^-#;Vt2F<3ZEyo5K-);d8d$b zbngXoUnMj1grDhF*_UAGC=ZHH_4DV$s7aBu)RU_Q2V&fisG+W;y9cbzbm$QHcYSQm#JZF_sf@qhHfN*Lroy7# z+0zu77hhxtn+%P&JsZiG4kJsK7gQIrAd0SOHlWS0m(t~sAA zfzE5I7K3jVGNM3a%)^Bw5>e@a$Puj!i#+Ue1_m;zQ}_WHz3FD|4oOJt5pnT0Bf+Mh zQDY_mqm=*cJE28;jzt7AsxOLbWzY1?ZFL^I+hdZM=}6Q4m7!ZXCF3{CkJ+ntiMwhT z7p)BhTn;?h1nr^p+O?Z^y$_SxnCg9h#p^27f+Dx;NbLeHiaXAhrH(q%*P5P=Zs!=Z zGo)YV-lVrODq@u;=*#Md-LYCUpZf%E;wCt#ovCoD3#?IJcG%s|=;0yDadvl~LsK%4 zH=(NYYvizJB&bBJ>@xrjbb-tYAee$jZ5BC( zB!Rh?;|#1vbt#}OA0m(e9vBm7kDd~tw$Uo6g`V28`-+FpHkwwSMT|Mo=PsS)k2^DH zjQE90U$>rLU>z@&&&P&E$9KqV<-IKuT3HY78$WK={9N{u+sq(JWv7i;BgApF&jiJa~ph3@ISfD=fw9c+{pkolBSY zSC8z!E)x1NH)v$p=EG|bh-F~`BN6fP-$+R-zJPeJ<32liSoZFHx%6*P@rug|dhP~p z;W0nq@c{vgKgf_FLi?;xUYF^xNmyuJ#`mna6H-9@_{0Pp)#4R(^5vm_%5;33*eoiq}1)2f2&^a{sM#R;!y^J@>&j+d5PU!e3z*Ya2il~O!d5fKV?Y) z+rN&6VHAz^FRZLk1&(6fAf?5?4L=MfJVv^_2}lI~Z?pP?nkgsTi1dFUxTX|ZTQmE= zxI7v%_5nrT0S?tk{+xY zMCXBOBpqb8UqQh<`cyJEZ5+d83?yhpze$1^XLjy>g2{Yz+qSj9@@J4o4MP}|i1=Xy zfgpW%7JdBLR_W#UAX!A7W!J?G9l0E27F$LCaa z5q?q5xyZr8vl)7Q!@tiqXo(iNR+g1D@A0J@227~!iQg7E241(|m`9!#3Qmh;4G6OO z&4FlZs(r*^shjJVj2sIDZh&s9*8R^u?VeTs z=zn@02*BfVauu-7sqW@Cdni;t0?1!USs7|Z#NK~^$N*D#0OOz4gMqI z8U}75I{D>K-1Ht(wIRT4!>6F&N1KF*rBf#J2+VK-YY4{JSp*6>uP4a+fs7Rz>B|&V z^+xpx2$=zsW@Y;_SRKI^_BP+NefDvm|Dx`RiYgYvhcVVxpLY%Y4#|0H;8X|`!Ej0R zp^n7|_LsqaVps={?unBp2bwbuLXAgd^08)fsJ&D1;`5Tc5T;UVw4Ox!7cMJOjl96& z^&2ej_;#wl9SR83Ui$O@Ye_X{1encLhlmHC3`B3(FySf?&=WXsM&WUEhQ~il&it&2zv5ljRSbT zolh~Uj)eN7)LK*>L&H%I955GECn^Bd&tUDa9#V5^;=g^fN=JNU8VedSfOmBoZgBmW zNCCgqQs@)z`eYAzcL@{#FtLQ+14)j==|cf4ueVbL-M;$RzUL#VqI$P|smN#b%%P2<#)fThE@I$u0HPrl-AqDnp^@@fSyi>w0E}ay3B9;o`A;u95UW*R zpaXJ8V4m>YVzi6)sTtriK!@Z~?Sd6b+=6$IVFohvwD#TV7l|^e?_y|CcH%BV!s9r= z9pC_@6Bkhqz-EYOksrnOu>O`l_AubDc#HmC>07B4`xh0YW0#i{qyk@qOdBqrJaGcq zG+L?H-}buIlh8uHU0AQ7r;~S!xY=};aI6*;eFqOyhL3}WPuC8AVYeBKGgJTc6(dcP zHf`Ee*ENg&ua^(;uR?^m^rf@=`kr;AKhE#PnSw)T0ipO(VvN}CwdTQ*5T2un3;oj( zOK0U5?l)2>CbBXzoG7{D!Zz)vGx*~60{!UdU+vQrv=q3yT+8_yU|>JhMHNvTtB2MX zTo^c)q@oFsdhuxvEt%E?&BUGhx1^WDhYy3fN@T(H$RE5T?ZMAq5R?#|ft80)3f&Fq zv)8**kp*C%-JS*gxBYG=ri8MG!aLb~6ZQLr8D*g?PJ-1UXG%by+{VBT;e}BUyxC|BZ#5A!-6qHEz|4qp~mbgi`F|geicN)HEKXDM6 z&l^}u4ST7BDa|`+wmEdCqm{Z;C7nzc&Z&4J`#OwZBVj73q#?13#z8qE39JOix)41nc>eiPNW9OlVp*{+|=D-1$p>p z4BRX0b*;kPMfPEKdUKDq(($x~FC)3{pDd7u5tZMigWOzQfiR(cLg5qq=n)bVVgnH4 zK)@Q4S~M)O^;^~;sEgeb)eRiVy|3a&hleo~3BjbYFQop?hJHOheS32)ii?*-jI z7I>%j`-cBSmPX20kKm|+eRrDzkYo-PerCDow>a${{qzdm7gQ<3xc}4~=xrfTC@3hn zat)vubWM+Z0d2$AtZo?)vEF4-_<4L=;Of<@AyPTCy5!m(l9&AHLTcyOJXJq5cG}l(KxOJ|mGQ4Uix$0^)N{al6yg_z1chE2Zcb{9d zHl6MO7pYQEO7sd*S*~3o9~3`AYdorYI4#AjqZ&0KCCQO5;@9jyBhk0p%|*wHj_uq? z=r6fL7$zg!sIhST1Z@r2yuHV?FzlBygAsY=e!8FDXBHH`{D26##{f}Q{swz9KuJ$e zPfXn0pF1`-2I1A=EL(&Gbvn<{I54v4M<*nxrjH~01(inh(Y~)n&A*0J-uEu?KUak% zUE9GICsD1M4%u1U!SY~{2~0PnSa#v4nx2~Ko%n7T;`SWQpn!mYkeM&6I3oP1Wo31K zbwwjc`dO1HKsECpX+4Yv0_%^u0O>C;q0+^_R`C7xL70ONW_O24ARh+XbJpKu(tm!Y za$XxCccfTD+&Bby$#@XJnmPFRR0}fgPul|g=?ZpuydAL{Lp}8t{2GS)9F!UP%`!n1 z99VcFQxR2XYmQqyv=~V~%auTL_O8F!oW4xnzRnMcl=!2L>+Dc-Kr?Lk7Ec?kaO9as zM_^61Ef_&}i)miGKke87o2%K@&2Z;tB;43nxT2m#uiebmo%{g|a_pprWdTBZ}YZli-oK`Or*C~0e?gzCIZbH=~LTDHd zJJM7vhs7VN`jNR#b?(_;5fP&s4w_1ymX*zeh8!(ZLTc!1%FTe@+$Kc&bd?7hE;j(q z7d_Wh5l=aW+g0-zlmyp)GC3h@uiK9V>};SZi!T9cJ|Da3pLTr|h?u@}=YZ49D%lcI zn_Hh9AEiFy=w-c~(7CibPCT!r63qK-{IVyrj3L@`$7Gszo_2hqN4Eb zAomFM=os}lk9=2mamwYKM~CEUBSrk2*! zr`rb&ve^z^mY~%t69<1`pcz4dB6mO)>ihXm^aViH)Qb}$&ZOjGjg#Es07q1sggZk; z#`zVqmPr1osfmeNqV^*{KZ763C)QzQcW3F8*9S`r?j+kU57LDLa`MkXTnlR323s30 z^yKVpVK_3eN7S9Ht%ne-)e7=aJI4C>@vA_&{TuWw>n{rj+uPe4Xg#q-{{V=9x3#7w ztX*SkK%DS^Dx2HFG&jZYlk9FJOf@I>`SbcSUl2mT$A_99-fEM)$e+wlySe2pchB81 z77}>D)%vuw&&>E|Yk${$%whjr@UA~U6IYMg)B(tSAt)k(G*q$(Zs!A3h2e+MIQlvu zy>r4VCQgT+9X=gsYiq*=Z2-Ttv{UlSPjYHQ81RX@J`XGFaZf6O#vk2+zbU6x7s0Wr zs&w188&Csn0(Zf+wAv))?L|Bj-7S4CO)w0N(~in-jnaL*W=$0cly6(*MHO{)5;C2D zkf2DQ_P``YMNQ2tOsb~{q1PXf1RaK$BuuxwHSAnub zH~IXvBi0mAILv;$JoZ41*+LvtAeS(}WiUTj2$?Eq6_N9byP^A8{*}+04efPO%5cU* z@85C_fyBVL$69_4ibKN|8yg!x_X|J&bFg1HN=HN&zk8JjTTPntaln=!E%>&K`cpA{ z?+tEVCKW4GSFw2xjPLuAq1ydp+8&i;$X~7Y=!PGn*Z(7b{4Is5u!B`%@-3br5!1+V zz{9Vn*ZiOoxA~Qg+|L$Qoo4~K394)pl<1@t$bZhRm+$IiX7&~4;KjvoD02-r17qez z?MaV#OYZ1l>M@|}PIoUvQ08;?xlSGndBvt`wd-J#p2t(`Q;FB^LY(TuD3BNv(}N}u znh>V?UAN75D)tz0&1a~&y%XEdO> zrRA#yD;HOP;D?z=)Uxi?api`OolatfT`QO@x0K81g$a}g1ERa`BaJy;E4>#U)T&pI zU`~N@F&;oGQ!qa}h(symN@&=U>9O@T5U?9wyl8}E!3%si&d2n|D7=nnytGl-U{{hT z%e6-R1Liq!=F83kt2}@LChic8$vxs66nSs()51fqc>0^NNL9FIzuoKh?J?g?Q)b^b8J)A5gx@ztV-lF2UiUEOL3B5y8D4`*>diZ6+^RVJ z&ku;_4;3>a{c~y%V!A1sfy7BNDF7q`hlJy|a~Nx-M8Bp!*wWK|aDLdo04|N3`e`7- zara;wPGBhZZ(7Czy5Z+i;f_ZMRtm6*#IdH{G+Khfq|HM(Jwqa97w=FiR>rM@9^LrkBdM7h0ib{48f zr$2w&Y2F~Q(IY87{>;7PwPTnA4s-`MWmH_utE}v7t)8Qp;&!YnGBT2%4iM#Ny81#F z&O-owD3hK{BT99LHq>QNNg##<4nmEZ4Uk}>1#TUv0J9BstY6ci#ZybF>Cp%90hTC1 zjt;e)@acy(*UJ2m?~X->kuF1a=t>?%q~4rnxfJY`_F&~DsWy_V+cCBN70MiW%ukNm zeyPfU8JOxMkZKdHu2_KhtSl^AiCvOCyauU_#3-FtH+iP(39y~T4rx@(<;1ye2gBy@ zm8-V@BD8tCkWDGq40PkUKsU(33#h>GCXX;TVXyVuBsup+$Hr2xUw`OY=~iIG(HlU% z?`K5er*<$oYj?zz-8k3R(vQS7&ZeZL)r~}U*4L{!?2Xs-_V#}4J6#9A{RAu^yhn~e zA*$51qcTA_m<+*zbv(b~uyBXn?5Y*lH|-3&9c`dxn1V4H8_9b0%s2GeusPqx#`J=1 zYf}-W;6wb;%r&%L|3Yd=;)*%Q-Jg6X4nSxJVQib|>20X119*Xg#Q3KPSu?LAAc>!- z98G1B4IpaoRM*uvU>V^!jY)@Je%d8gv`^6Ug;c=<$O8bgzAHoP+}?g}0%5X)SU(d7 zbolF3PxNtOmS*(`iozg2zj1P;B^V0RRKjnD85RU)NAw-vES`Ecy%72(JG-=i6z!1T ziDytbvDRnY4RvIv@gCwo#tpY27dMWv)^67 zu$1oKrrk|tGLyLB+8eC9sJIVxbr(|`x0#~%%G#K2c2x$jow0FD%7wnK4@V!ZlMF#j z`8g{@oXEJj&4MTi?o7c_8!2=@erp8uV-8{Or^Yi167)K^>#OP6!(n)SM9Sd*j#Zx`F3}ZOmI74!p&oIcVoMQ zmrB$8f^Q{)+C_?9$Bt;ru6hjJ))R%H63VCKg>TxuUv{0m7~kG=iuW(2PDc5Rd#yKX z(L48KBUBID)|`-%dgL#?mN#3yv+DFL5ap((CiLdxwpXuQL2K~fHx0v6#;bZpG(Y{c ztFS!UknHDk|vIYQ!?0K0Q&8PJ|FT$5ftAqfAFo;Q%BPPG6HtS_Gu$ z-w?9`_(}f#L?R*&-U9ngR>sNCA-G~4oO%`J8LbAx11O{j4T!6b4A5%bcSIbuqrCX! z3F}F~R_VHKlwyxTmk+hO**)`N(;``}K#VNfay7eR0W0g#OQ5z#>P-*oyDoB%Zj(2a zCx_b1fI~s*((~}%>6AYBbwifE^P92S1i$+0TqS)H;zmz40xdwC3&|rp{U=LLL`@gO zNcKNV%HU?}$PTX13Cnea7Rj&g^EzKeHjQT$6^L)-3SwfctSk;Y9_7?K>*!P^Y!Lp0>&j zA)gn^Q%`Y>a$R`RR8-wtf3Q5B;(w)vbZ>3l99m>4Jpo{1`1`tmyG~zzE*UyvsIOWl zzx`}EmtT43fmjabZ%n?6XC;oJ7v*KWG!-+Ya5A{gq;xS&`sxe3>#k2hf)L52Me_&= zSxT z26b6vb9E6PlDceMu_gG60CcQkamd}9s;67wF435WUvaPHxPRw2ki2T zHS`Z{+*HwGTEiL1Qz?qAe1?*?^hBxLk{lkdF!!PMntXjp_qTlA7w(-syIM8sEd;ib z)dYnEs>w)*jN^vYb)ELtc3^KoWD{`gVn+qkK}0;%i`gbNU|hXo0bCS=m?Rr!+;kG| z8!?PFSp3hF*5K-@a^Eq!f)6d)x?OMBP3?Id++Kjnj(CT#rY>Bpm~n;z^|8mClWz%x zZzoT3NRt4+Gvx?uxm1g`Jp81$uvNQf&NcLKF8pYisy=$5QeN&Sam_ccurm!W+P(W+ zqgg=x3FXMoDlw_At#j)%l`hyT!_WXN2mHWEJu+DLXFp8Ud(m<7Dypj5BP$B7SMpAW z;**9EG(=QVi^~;pqaJX)Fs6d2RX~}^2nUD9&Anrh*qd$mOr@U{Dsu4flCA2gM0L+ zdfz3bRW#{v!#x=#{_{gJbq?mJgcU* zj9f&~FN1qxn?hZJhtC7LK@uOQ>}7fm3th+nFj6gRPZJmFEpT#B15*cZg+?u_UJq@7 zseBdHa_hJ@Y{fQ7hw0<%mlwhRM_b4L(8Qvn9A%V?s0w!AG zla-+B4=kgdcN;VNiIlbLR~m&f8ygvYo0!O0{29+$1=pur-ZK0Pvn<_D&?k-d?Srp* z3B+nrw0ipeCNRrU1$+DSa)W(Kvt1<_z3yz=#V($*c5}}2_bb=#2WMMcd@^pnTJ-?b zS14;_GqRV?vK{eXFXte?>gC?3T1{2eOEhe4+dbz_(Wkr{3ANWLYYq%iUic)QFJ!V( zi#|d;vP)9F&1&EKl~e3D7VBdws!baI;b8rL{m0e)RKhcnb|Lrf?f3Br?Rj{L+j`eQ z+wE#nvlo*oE$17}D#BvJ)_qXCwR|YfkKUt!%^qBd~%$K}~moCr4rGTq$S;gLkR3MI()S72C!D* zP$ynSgf@?2h97FI#{O~UxoIG6L{oODJZFJdrkd%iH17>XW2n+jDJG6CJX)4 z`~*(RG;|R_BLG9MDMk7QbwI0W^(ds7P4U@Jo_xfebQUMk@~iAN$NeUtUavmmZfoll zye}%AQr$APCN(96G>O0=2)}^}72+cFe7U8l4N)nIPkz~|oPft%Qo;)TaV@4Hp*;(T zj*GJu4vxIS;*OV-q@9IaxuoP|#j(7+d5Z>>nimEF0_v(mnTtkJQX;gvuRgVW2~0(8 z$P-oVHN)C77uKpt7}W$X1;Hf=IYcOKA_)0+4-ezYmV6_o# zir;-K9ceezrtuUg>6wZPg?gy@0QUb3!x51nLiuOcyKhrpAB1F&I*tHXCb~qdmWknE zBz}BHGOt_q$!%vmkWxt67TnKf{LNs69+=Jp85sedsE0_5YYnk~1_iky(h;AWeo7e9 z5O7}n;^Mj;0gkwZ=RQl!ea6;)8PbH?B(-9FFac8cYyZVV+E*(jx+5hP~_ViPOY%3=r~czk?( zXz1_@WZcJ4lt(c)vQQ|Aep*gXOazrJ*V6GD0(iXo;IPlP%f1UbFQC`5v2&i4BOj=`39%Ypa+Q z@VG{|kCZ%B6R38;g>qH7^2cu(A2-;7@3wZ2{cm+YrDWgAN3g+;Am@6Asq9S;Y1XXW zAfCar_$yZ~{%loY@5<#s7%Hl%)yr2nRjB-yAIS&*zy0Ii{nwn^^6-%UF)*TdES}t< zgAfi>oh6XYHWfW#nBY-Qe-{hy;RjkWwK*2j3xHZX%gTzhESk}W>SUOhVI%iV2jIutyI;|n!lGU0 z^Ay~K?Er#Ux-ImY$^g_wh>B9uEIqapzk_6AxCD-;+Vb-LxT=)^I4(9|j(S@!$j@I= zRMerq@kc1+;h5C9+vw=@!x37w16CJ6OC4*+!4gthubEE~goFGKC?6Q8Ghm<`d6hz0 z{BOMzFx>Ev0~r>>1$Mh(4_(V&AQ$`z;d=HsTnAs$ND0i9@RtIvN#6bNo0q_J<0a5G z%DV#~Wc>%wvOO5M=Mu50K(w1pGD5OeLV}^8;TEO&T~xH-JIvs)jj;fK2T05;e)T7% z$_HytTXn7e`?=`2uBHKpPxh6dub^z>DI=fx!Qd#p%L%jyBqo_Ys!>IXn&owX$Ws-1 zUOT}kQTEjwZm?~^31nF$?Rs1ccx~<+lgr?M=Lg{{j^WOMyEEKs?Gb!@WDxnNLV3gy zZ;&Q}#TImz@aq&^i*%qWwN%yD*N6Vu1(Rg-6QiHqR;z&v`jS4kOxXv!@_T} z1iL`B$@j)K(D=dbM(z2P=Vj>i)c^9%8(^Y z$#a`-vpuQ_!{s{J0oOZn&_5@-bYrdv327TmYryvu9dMUd)M&rq>Xj>Yz*LO|qo0ck z+q{1WoS79y1pN>)L4c`>^8f|~@KiKjyew@O#6(6CWstl|Ny)4(D&o~^pPYd{Pn8Xj zo)S>A;dGIBpUOJ73TM=7~&vKkaA(9)K`)83mt0UK1h)X%9KJy z&lIJtoBJp@IMU(HozMy4YWnNIJ#4R37)13bKlzs<8SuIUnxd4HZ{Sm zWhid#`u4ZCUqqpzq*Ls%r<|7wXC(M9yjr48UH~3sceKB%K|T5`C9CFWOVfK z9VaNK<-G`(0>~T*{$bz`aaJs@Cb$jrnJc|(&@1fNNcePclq&RAvC*z(_^u)rd(`ek zolnC)U}6bmED?}T&qR3Wc-aium*}#XE+S2@kU|S3@-pH{b3~#KU#NJl@1{D7!O`-i}2eV&R?D!SbJ zYW31>o-|q-8rV=t9h^Lf!W`i)10##sdOSsFB=>$~wBPQph?eZkZODOkd|LyYE0}o; zCZsJ)!>-bP5^Wx!Qpu58UzGyz!hRIkq}Wit*CRi)Sj#?-d19VDSMmTXmNNBx@easa z$tBNIScGIl4B8f05;0W9YnzNUm%EO%k0G~w#ZsG-Gk%`s5Uz1U!#upap6!Dcxt4uU z92yq@z>jhh=QgM8P`2)yJ2q7{8d3&kX2o|*1Hl)3dC&t|SNk$}LyVO9U>gRwlhwL@ z%@Ms+HA+&huBxI8cauX>N2+9auM(LP{ZH%$oY+gw_wu$iX_!=}WTHmK4^Q@2;o4Ho zc!sYG+y)gpK7bT$XK&vOgALHZcc8&y11M;;#{r;3`qW5Z(rL1)7s0L$`fYyeJ|st_ z^Y3C%MJfW-JI}$uStoa6-&+(hKwo(Baz^Q+hzKAcMkkJ!($G8-Lkv{4{Y8wO=*?)m zK~W4|tme z_qr&q|BAnejO&D?g|?9cWNFy~;x**QJ=xl2uv4r*7DUW;{F1}|tnC&_Z$THYguwH< zq1z$h19zSaUvN4OYLqhMYW!C3o){bpUcY?NA$Q;4P3OL@Fn$f0aU4LxfUN(Q>;m7f zpc^s|Qx_$MOTu-+81!o|UaZ0%Q*54I$;gb3i3=(m&&R#QO_4qKDXj&HUHI!|=PYWC zBtClX3#3X}>sDXeI(`2g_ET$60-g)M77N{TB?U&uxVO1KKR&6bir(~cwgk$s!Hv;V z?@3vio12ez7%DSo&a_Ka2C#} zkS)5StD9iYgg3Tpizd<=2^dM@#GH2=#0_k!I)3iMTEG`jW4IM$F8MN3>gn-W>>L~+ z&@QIBk?#%=bas)AmmdJPYiP)ZAY9~ zF%N19%n2GZr0nD+3KxLy?IdAGlpaHSj~0aafIgl3G^7QX|6GHO z8*W#3Wfd`S3)tn^3QF^)9Qxw17W&FFuPC^F3#&l!~X;D`F?hJ*!3pX`>I2IkcoVCz*!)dwq@!-%wt$~g)6T_|qBb-GXn ztu_>)L#@QdyQxCw_qiIGh!$VW1prLWh&V@Bh6wDm2J3nmSd;J9u5Ow2BWe4zxeu;)gyb594xu-g+Y{O=r?F?`_5%ou{N@o*I(-)gng; z&x|Z+i{Z#jN-AKF*;N51eGjbj>V!E^N)JuIbYzif)!>7I6oo&9d|^~y@97QRs+8Mb z&;qm@CV%{GwXn;PGnYn-dPFMnbF+pUr=?e2(uY>zQnlk;9buo(H zS*(C|@HdT?Qi!~Cwn&kJm=oG$U~jzax)aEB$awN@!l-8xrER2};R2jR_*c}Jd~s2n z&f#qp9DHHtKV#Y?n`T zsK!#Dq&y!{S>411xOcoZr>{5crii?XMjq~3q-dv6jEoTQ1fkr8&pOc2Rx-k3ckwon zMU+LrUS2Qw)HiDTxex|T%=~$z#KAi;3OAnlpHPTWE67W6yFoZPz|0hZzh&~;n_r!8 zz>stL&B10_88nl5F@J}#oKc~8r5g6QVWWCyFy_Fe&I7PrkS;ZV)JWjV2CzE;LELH_ z{hwRbPkxoX%l^_;cCd`Rp^%>))hrHWon(=d)p2V`+FHcVVgorjxz;{5S^2SvqMUeq zEOI+mbRsp|E${9!SU4XMc!xf#9IFQq|MULy--ij}8zbw5N2qREJ%0LhaT)#XV8VBo z#(O|UB)wRCmZ-u)_sl14<^hFq0nVC z&5Pms{@L9vt(Pdy{{kASLlT1bCCkO3E4o#hDq8ArNZ+cm(#1-t5Mo zNSn%{%>w7RwJS$W&tH;f?WQeCT?95C%2=JC zj@aKsUw;Fjm<*5G-~-w{c67cBA~)dz=n30_Ps8L_ckt~ka~yo-n7@(j6($}kYm_XN z6X+fz4j+Mj7e$5X5eX^7F30W>p=GS^kT#17Ki(UIaT@dg+%-@97o#6~5ca=<75cdUgUzX^F#mVv z>i@wXzjv)1<+s*eqjYAwRPDxsP-S;FpjhJb(iXhoqIb}ar*{r?zjr@81}zv+`o*>2 zLZPOn2BN)=yJYz^J-ybQI|T&=uLF7)wh$2a1uhg&GWA~`m>?4EJFA%yj$`2v-UFe6 z5d8;1lU7z%2E{m>IQkw)Zgz|6&uhAcvgdvNY}`Z**Cp@?fZ`7($pQ(5Ftt?YyHmwW z+xjawpgF-gv)S6qLY3A6x*Fhc8mjNOZKkWYt6;*9)AO#}O2qE_-;#k?Lq@TJjBps3 zcQXNrmyv+=4G+ZFY2P>c!w{8+t9-h98GC#3Tzb5>s;7Y6v}F#^7iE~ zuph&tsagB+BA<61f#ox3bqsQ%05G+Pkc1^JioG6~y_z3>jV1CajH_@#<|POzDeGEI zMj<(?3r7fZPXi}8(zL(fW!pue~Nz>;@VKg`+C z3oztd+@ru{2&DjsIW8HmHgp*pKi3u+3r|?k5p*3EKh_hb_$HZ3Jv!oeMvN5qaWEl} zKeNN2+^*_iHpt=5aq~nw!jP2hpOGjKBT|R0en&$Io5%9K1BLOH^lMblm!*a>(h*W) z+4nIRteYa0-KpmIfu7LTrj)?}3tqpHB^+nX%Lcho!^XvU{Fo>D9UEQ5?*493;%?Ei z=JzIE^pAIUoo@}=;{sP1}}|`)-*|)3Q%H(tM5^7a+F*qk{|>{W{6VQVx-E-T=th>xoH%2Hao*O0$ET z^gE$(A*HWQQGv0##MUug1-6ip0)yI7F}5S9Z1I*$i0Efk)kTE@P$Zp8SLo9|5s;JD zwSPO`?DnI8LU{vnhb079CGFK2yfP@j#QXaFnw%&e`4gbYF>y?1m(GCweBHw2D-^&; z{RiS=V#(X#rh~q>XHCsd2Q&{>=?4Wh*4!4Gl#r=sCY%+j6bLG z>S*|e6&0or@OF)VYE+S)K8IjL)wDN8N&A|(v3h-G5-#ZT3PWG0?q=~XdQb#T?ZL*c zV&_JtmWya%3 z#ie7b*KkeUJX4G*bV)vglkbp&DVhzYW%x@ZNvB)GL)U5-aCNNS+mFW5wrK?%RS|_) zy)8h8(BI=_Q_rEoRJ%O9INqkEU1EaUWcc10T>8LCN*==m9oDVb=iTu^wv2aZypf)% zYH9MZ0$W*_9RvmrxR9_f+k!DFt#jy!ky}G|dJ>C8SE_^-Cx=E?hKv-r);#ym-UVwb zJpb1nH7J?=7XF)G3`7J3G@=XK!RA1kXkaGn+^!VmT6K}0Qe-e4`Sl`4$wzhGqQcAThM$QY>zSfA%EUY9ZW1IO0yJ9-r8!=(mw#7q*o8*y>rb|FJV zj|RdfnFe+6ob26oqqT2T^>X302=Zc%lW)E1P+fiRm^qOmMoIO-*KKX(`;px&m<0;x zl8B`5!_8vpO4Tu3;Uh-XS)6^?hHtL!P#%Q$oF=-=W9dRi8#Idw^|BK)m=A_+Af{9= z^$%m^7L4VVG$Zj0ZhZx^5GF#NmN21%PZB)($_-M->?%1UvxoPELRg{UDBv^%`OaNO ze*oyVWd1cMp)CqtD524tpc)qaqSJ@1>N(>C;!{viJJcgqNzKSx(Z@wi`zAn02REh@ zeO&GOpWra9s@t81;Ur}^c(};A9={iPVmPi%hb0hTK@d_K;~W^T1`gNB&pZdFG0Du7 zu_xf*7ShXW9ZdPvM*v3Tg`NgS<(d1GXk@9p-N?>(odCnW8Zl8(uw7DewfOfQgU*J}$*2^Y6bb?TnIzA?lSlPs4pyxr8jN)S)g zNgf+2+MJY_ek^IS*Wa0$LUm%uG5#?OG5v*N5bWT`#7C+0Ut6&*gMplX$eO-akbhD|?@dqHN0aAq~w2Uzva;^vL;s9{3|3*fYaJtlJ zr^Y>hp0yg1TKmwS|4CpVBB+z+y0#Rcq(e3YOR~URuwTK*6!F$8UL9;1n}i&vX`xas zxD8QWI{DohMQ1TmrelZgx$M5SJ}VHS+@v1|bGs1N~P|-4>nJDk-4w zSPe|ZUP^{?x8|xrwkBS>G}UCb|2x}55L%hyN`86M7V)INsCG%MwAq{KQxRkPQ_L05 zKrGAQC*iY z2^CiJfpR!TP_an17ZPxnA6~qbd~UOKQj1-CD_^swe*eR|wukvZ0}t@}JKLzgpz9{Gk7WiW#m| zCg&ciQrB(C1<>jmjpBLtAALWmzg%q++ZIGB0_dvWS6FRqVIA(CKyJIZ6h~LsCLbB! z-9PBwd4^|m;NfIOLypG4{2e}0&{+&>{c8N+Qngai@*B0`t)z1Ey_vEUA}b2VS4WS1 zvL~j-ip>+vP7pI5t}`;DxXacx`*d0I3o%QId$g4YTh|8oD^u-1FE;b2tf^95eNuneK-%})^@4~}SA4SJw(0(kD<-A>K@Sl9VAJ4< z9~5$e%Pk0!t#uR_Y3aK@YLI21hUf{MfYB?IcrP16Lv4`)aiPWDG^)TewOc$yxM=kg zgx(tfpHSN36PE;=+QjWh>^;~p$9O~&!7TXPNR3s>9+lJBlM9*GepflXE(9t zfutM6jR`h^yIW1`iin}FmdG>2W))QhyFtIbnU!XT`qtL{=sr5}Xhek;fbS*X_60jlCzjWOkg*-8?O#jloJR<#PEp|LK{^utR+7qcD75EOtV-{ZDDwdePRNBIN{yet%KF*!&zK~0a z1Sb}Ceq9bO&?=@f^_uLh^vQfDK-hFbFF`=X{IWKhe8%YSUeF;dH^+M;I$e{@M3D1`J8P#MQEG~e^_lt3?EsUNEB8+sljYucnSos+BufevxmOFLQnRHzw!bitcAB1?(!3 zF|T~$I+3@Uv_uC6#fwigr9oySGl!3pqetnT6`4+S`K>?)*+MrEFmUle`{-*H(Uk)6 zPl2fdqA@FylVus+qZyMU#@)ZubV6-G6l&V|6l<{$?fXsa+CF+!HCJL--qp1 z(nE5-8#!FvzNk&sJw$l2gWrBpXKlRUADHtr>G?$s-rdr&-wCEz*c*=%{WALJh06HiU#SQ*58ePegl||=l@_zt zuJQ#nQR+*O=Q%a8kj#M@&LB_Lx@A@vJ(_Xu4%%(xHW+*?&m^jLOvElumA<=M*}3n` z(McxJ1nnmy1;S61*v4|fG3m^oFOVi|8*VrkY#0`P1q32Mwi1OI;f(eU=?Dre%8AxL zt@==aAf#?KAX`D$(TLFZ61zK!M;FfqJS?Y+dlp6`Hq;;5E>c1`Uo*;vGMr>2DNy}p2kZEwYnTNQ_!_`4}uxv8s(Q7s%_RBDAnYC<8??F~3T`5q8o#>`_aGw-q z^GOyh_1Xs{*Zch7r#syI>F#K*fmYM~HNvJ^x&{Du*ul|-0OpiD*D%d25>GPyb0P1F zJ21%p8vHX|6&6_@f(@IOUN$Myf513>@U%q6z-DhGE*>dG>EPT~-MlNh5q*%ejY>H(G=81J~T>N5(ftx)_8+k0T~+6}l#y zE$SJR`NU#6=f7Dd?GjfM#=8cD)D^^{Urcah%+%|1(<>~x`y#Az6;NB04T94+I<{K4 z#iEOQ)5Kx7+1F#3Wv1}i+}kpZ2|NDW+uN@7`zUQo*j06O?4P0P_nd4Tth{d+ zL0$?#I!w5%JIWWIPO-o@Gh>4zD2?f$mJl;sa3>%}GX~kBm$~*(TX-B!Gsmv=+uv(= zV!55mCzz_Cj>I0atySwsn2uhm{qeNZhb)lq_Nrqu^{b1Ic6%eZPxc+1sBSVt&Wbm= z+|N&{V}dnH#Ts8v%C=oo}d_93v~v}i1eFTD;wyq zXD?B?*GS7nG|Bb#k&~hxxq2ef;l^3jLszSDgz5(qIbOssj3NdKVEvyEzI?DglLf+d zScJ3C)u^LWZr{z~>+k8g1{Va7nSenG3OvX7nJ!&ww0`#hCX1&}&;0F>p`eId`+tT) zIMpgN-|hpT`ALLs`M%ZRE@5{U{MX)=8VlM#d890EZp3?JV;sbVMh_@>@ zsWIzP3K0MAyOYeBI+b-;1iG+)8R>t-@cs}-0VCap!5}m(?SeAS4ICLz9FLx1iLs865uy2+u2ZUbPUqv-|Gw)l#Y0Q#HM>nR36n?)VI-%K7BI>Rs}s<# zy;)$eK}1JU|17{-l7qUTI0!3(D2!(iv+1-rX7&{fN^>s^b;VZ12!I1vXIaU zxtbp-P1B%_g)tl8GH}%LR8mxxV0G0P?18|zkRM?XYLh-zL$Uk_Tn#vw6$~k~qfi~w z)6-UuAk&88w8I1)thAg1`_7ObI3Z{yCcf0$*xN4G&t(9fSt~dVBK=4A)!pKOTZH6~ zz-o#qIt19n?3QYHaA6f#bY29hQZRa+w;#v`tu)DO8rZp@foYKGkBAlz0KDNVmY2&Y zD&)I~__%A+Kb!-Rvq)-4A+j z63>nF9$>%=n7`w&>~XtySUN?;#UTRC4Sd5H(ds@r+lAl_hdd!r6vG1#DgIv}(@p&Z zI+>CidG)+Hmj#qBUX=sP#KRQR zWbsO5ZahC2?bL2m+k;9WMQO-RSGrX8B@rrwz{gZuU;h)HeBBwJ1`7+GVT$@iUq8;& zP>3RL{?!CVg6*D&-?tutr;3uA!`4H|2p?u$qLSpKB|%EN6nKC&z&7%sy?yTccgNSc ziGZ@`Vx_^v7o7q-7UMOkOLQ1E(%t2!;-d0;yrouAxxFAl%hF>m0LSp>*ET65vp%z} zk@2u|1BFh}#QIi)vioY1VROj>%>Sfw&4@e8RHmm>>PfOd5fo78{W7huvFCYW=z^-3 zZBe?il!^Eal%KCRrm0wNhG?6arN+mL0b<#?xqY1FHv@hBBoh`f9$z|;z|zpb(QnJG zhg*P{NH9o7m*Bvl0R&Bx{!h5vNSkFqvS}(BX!2=wNZv_4we2;|ll}0V>ecLrFUy*a zD?#<5i;D}$6=z9o3pcwnWEwyeE%OQ}2%uH3>W%O>=?i}3e|63PtO&jm=U7;Znqv!j zl+F2#s8vp1Gq3AwZ&zNZlt)?YNucMYbmUK6iPM(<^p^KNoPeP?-CdW;(KOBch7ZKM zkjs*qDuXO~4bnI`V`|JpY!DD#mG>F^KzWw-_wLoL?5{F%aFqG@bzBCS>CK_Q{>>fA z_CpctaSDTh7U^k&P8;)mE^U?aTOin`A(x=2L}+aNVp#VznmQ&0-<{v+C^}#3EU;qq z8GzW}L*(PfLW14g{-lnK4){gjb9JF)L4Zh8*v%$WBn>n|T3Q+`PRLw9CRnCWQQBKG zqEk}?#>}~0LPnqe{Y}Ate&SX8GUUI9ho4;cu7Joo^nDt-#0iaA$Xb!j|G~nq{Ia} z!MVaTVRp?@<9r3}&e4UU?iJ=7G#t##bHOwRAf#kvWfim3)zFwHlqWL3@u5hDU%{;g z9OhT9w0dGp!vk)E4+k7gglhlI7vNFq;>QeE&9xsd+{>jKhO|b0g5o}82Y5M6>p^BR z&1B31?6McKK)ZTVViBxLluDTdfl6~N5hwsuei9`=_vD&*YU%6O?vNyrfGlBRV?)VW zD1X}g`}WbWcOxAB{;|pX$Ef2d`RkNNvMCEH-ry}*d3B3{CIMQ;pG8Klr9p1RS4-`| z$Xo|dS3)9Gw}IBD{kN2I_9>rnREndMla3}TgBFB0Lhhqu(ofD@kcQt0*qXm%CJbBX zi>C)~LZ>R2i+k4-(qK<*?E~5WvKHs!`E`d})Ikj+h>+PKW;A2_H(y1$1*z5#AD~ps zSq&b*@vcaB9$%+7Sqrkm1cL8Q+*}Vus%-t7d~14v{GJlxP}(A_i$bBGeH3;=p^r&& zzmeTX7G61oEmP#qXa1+@)&CKW_W${h0I~S@>r8;S;N3r|nqvM-FFN`9ZPHHm;GDrM zhu~O~hG0Z*(_8y(R~$GY*t(-PHN*^pv(Fx6+q^4RX#DldG`;6boz2v{TjHrkNHsNd zuq(==S}^@qH+Id9CEyIDcI)4GyGVcic_~nbWeDIayhd@)_+(4 zM&nnUiKT3C5r=q?KE_F<`;+|a82XB0w+5|Ei?UflX?1lT>2}QtYwbV(z3*Nq;4(++ zeL7%c8dVluVrE%hBAW$Pd?po!$13g;utGwJsm}J=X8rq~wmb9Xr}P~5j-M1WFcODO znh0f{>}yhuZ?JW5iL*>MeB>wME(-S$?HzKg+>-_uT%4Sp3$Ci&N%#LUd3a-MVb5^o zqOhAsPq^4};@H#ND4gNTDPt4E1av`j$p;y})%SKZqh@BNEX5sabW4RFJBF@3q+_+K z3}jjwwah?&l;3_t$99o1)p~oAuNPr#=1G!aU}Pu@o6t6x`sQvNO8sxTO6U=%j~o68 z-JQ9;1I7mZj+@Q+*hk9?k+u<=Wi8G$9BTAS!*ae)x;v-F21=fg8g0LFwm(g({mY@n zxme=%6^#oatv<8zPTRy zkteAlhq|E=ZD_stJoLxM-L+WR=HSwV?$MzyGjne1Tm6y6o|UF)JxQkqzj0yf<=q1- zbIJ>Aum|`0U&Ks#4iS>iS8e60;dHu-(n?+)Ye3R?nVFeQE=9z!NV$wWXbSQBMB-wr z?T-?qk5u_+y6?J7tTxn2->#hAd8A1CD9OsA)MfR}Zo9m((KMaz@bQH=U!HfQ@e8_T zV#k~t%HAZ#G%fZW?7O|0z&`4Gc=kyD>aB8*UF`98+J4`ep=Jpwvy}8w@zhBIL5{zu zzA(GKu&{N(@v7kFS`GO(NirF8Gz`=7p6vauWqFB}5j0b^LB%1rt0vpa{0=qQrUqK} z1U5we^UWO___%(}rKqrKmoHW}DhF57Ty^#5fSY1WYNPG2$cRZ4yBuZ39$n6=JKm)K z(#%7;*qy*7Vw7yZQ}EryS8mb8<;T`)r|Dkv@W5UBbehbjB^sYejc8Nv!sI*n9a8Ay z`PbPwrl``X;QLbt2OVX@^49m%y;Vt{_5(d7a5x^GdH28|1^I|>Q$|KMGQ)-MY!?kX}*48VU{qNq$S)kv?utbkRR( zX)6O%myUCv89!`06cI!vHq;Aya6j^N0(QIvPx)qfT%5te^%BgEXg*Pc5CKWsw`A$-PE4Qb?TViJUJ-QBOmggi`?B5mVasU;you~ zM&yigX>gmM=qu|vF618tf_yT+-f<{jtCRHj#AH%DUEQPkzUsyeR>QrBOuWCLV2jdI zp3yfgGPT(ijY2b>AIljoi5b9Vyu4weDf7oTC#FVIM)J>VTvw{U-&ET8{AAd_{q(kr z9&S?K;;TtJw~(Z#dPf?^Vdc56So~NUNw3y)e9;p8V>CD8os?s=3?`=Z&B!IiIDsy~ zj?bQWf!fg~rkhf!EMsv5##zN@=@-O&?k;@A1Y8se);$=ZB~GnBU}NP^P4vAP>ZV;_ zm@hg#sx7hg5?SiXf|zL>d-))8k#j8l^C`WU;9oVvoWYlE4C>n_1YzIqUWS?g3E1aM zLYhQhZqM$9{Af{*(C>ZDn-NB_91CC*v1C7G)#-_f|7d zD8g{HvhWZi6YQ>vT+fUuPe@7l8n^2h=~X!(Z4FGUUF5UKC+F;ybGnJMvop4%{DKX> z2AYP$Pp&mdXik=oFS=MQyA&9CrdDn6KI++=&3mE3z{)G#Tv;lhIopG-UOpa12&n&Au=1|Ly0^2KhXE}2iqEG|!(?!~F-tZnyJuM;M9q9A3hI=rd6I)WA&$UOyxvlbZH_#a_dARQ4^C z%gR~HONG5g`YvU0xbV`JYQ)O`}c2lqNzMP(+qZf}*JOlcc?#&Pg_>`O%O zX!K|%CaJ**#T})EKiE2-ug6pBUpRkbDR5gnt(Ae@v~=W$&L>WyfNRmxPd%OhorP?f zUEen6?#=3VrzY#7ZuoqwvPB-=#irAu1q8Z}yb#{ByJEO~LaF`yBI%75dl|x`q`LZw z$Et)T`-Fwh_s~bdS-#7mK13rTW_xxfQD)_1*_j3#B?7a$mX;MH1lh*O*jwT}`#(VI z9T03eF4^rMlNJ?6V_JN_tDZ4Ek2iAr~-BMrHAdV*( ztP?3htp0eL#n|ZC-Eq{Nr7){Lc^opK=yKaY6WF%8^+{=K$$tTP~ z3WEpPXY(uqyFA{!+R*EFNPYiU$2LD`4)^>rXHySjq4G1;Yd3y`#ONDrlq5QMQG2)c zD`YDupGlT2o0c_vrJ$*7d-I<699lm73`gLq80F3}P}^+fvFL80k{xL1rI6#M{dyR) zd-nC-Pbo6FB)9~z;y0Szv|6}uemBAr118?T^D(BQqugNb19>+9L`1vLD4v*S&wL~= zLClHGyjPKiV^SdpL3vG)F&aOiZbk%b799KY$}pwcp->cKk2A}!(ca)1 z_pk3MNsf@yy$kALin`j&wZ65`JfH*@4_|B{QMM>iM^5C@kUOpcvOW<{^^KpF?l15WBE))MkT+-EX=<}&%xUV*I zg}VA6f{q5h9Nm1i!y}?_E}TBuf2zvtQ24HX#lG8fnocr{c%;xJ4zDmRO=bwiQ{msdesbcB>fiYf`(zJc z0NtS5aU@F=P145OH@v(~iGh7n-aZ7>ghbC6BSxGw^vxnXrGjd?Dxy!9d|1?^zhA4x~ zI>jc=`^TU5ou}V;C+?h#=-T@N*9BZ(6iYXwHatDxKGR=7@c35a!$|ro7C{$yZEmpckbnfE1ivtQ(Tw?xJcg; zKDA6WwoIP>CcWw8c3|_h`LfLjLAigaQ29JLL`|(f<33BVKOpbN_a_~0XyTXmHto3C zs)swamt^ysjv;0{QWt}Rn=)iOL)9|#u##3Q>i--@mM0b4>5}WMhaTji^IB(>=@Dcy zD-zL=JuY$8SjUt8==_%*n`dKXhl4B)udrVp;zo_EebMq7%q9gq!y?Nw`8Mshe(WzN6UcaZ`vl}BiX>9TpokE51 z8QA!6W%|PJ5>vr;Y1PAA7|r@MseT4sa%9xA(!;kplX)?^{G*v?GsW9U&0ju0gacUY z_o4WBxD?CSRww()8drow_*%an2y)|?e%U3X*ic(Pw|o5f?(vg*;fnhA*ed$;{=M>A zYe%Ig8OD{j?hojgv0XY0sgIxRt!?!n(ajUvxH7YDlF1C>*UNb&##z3kZK72-TzmqN zUX^Il*1DViC8>#lAl`5Ej~{Q)&F}Dxd&Ca#YTYwRm$d)tc4@QvH2VRwo7J>^L=Nw^ z<7mI@U%8vJ+{fN??!W(&g|D-8`M0NRx-T%FS$=aqy?$5E!Q0Z|<3>FUKszT-ibqc8rA$(ZpT6R#CcK+|%3do9#|WoHXT?ivE=gt$a;$hFboemj~U{gKWPCuylA~KDC-S0f;K3sZEa1yWejMlZu zZ~trBhIEfl_KH1cdtY`ijAnD5>#lmhJ=;$_Fc)l??ALa~Xap&|Z(Ow0sI~}rD=$Y_ zbX=5 zX=0fc#-E7G7I zbsyGrcJ%Axacws`|K~3+qd+SVx--ikd-a+Wkoz4>$In$H8Z}m zUMLAEoc{UsBJ-2Xlqr1+JK9UMvvz=$r0e%RBV_Vd;IX1!ZUa{c#`Ch!K>YWn9Tr!c z`Q~UHWNJ1!*dW!SDsgRce->poR#oSX3jQ?_S1Wl5c5n)`f`pXB%DtaANXSyJ2Z@ux z-#XDM%vOPGZ#8?@h*++b(5$V^u$ge8tEEG>(Zcncqc4s*)gD&WT%9JOw$~6|cjimV zkR=!IY-dXt8vTqwpTAjKB}#p})$o#>Gx`?BL}mEN;v;$)3k$#Z#3ft3J%icJS-WQ` z9czo6J#B5UJDo?Y9ReDDc(}bWgoQVMlJY$qqiW{IA7Q9Youhml6-CY4IC<*_{});( BUz-2` literal 0 HcmV?d00001 diff --git a/docs/operations/troubleshooting.mdx b/docs/operations/troubleshooting.mdx index ebc11fee..bee69ee6 100644 --- a/docs/operations/troubleshooting.mdx +++ b/docs/operations/troubleshooting.mdx @@ -509,6 +509,18 @@ docker compose pull && docker compose up -d --- +## Image update checks skip some stacks + +**Symptom:** Some stacks in the sidebar never show the "Update available" badge, even though newer images exist on the registry. + +**Possible causes:** + +- **Build-only services:** Services in your compose file that use `build:` without an `image:` key are skipped. Only services with a remote image reference are checked. +- **Unresolvable variables:** If a service's image uses `${VAR}` interpolation and the variable has no default value and is not defined in the stack's `.env` file, the image reference cannot be resolved and is skipped. Add a default value (e.g., `${TAG:-latest}`) or define the variable in the stack's `.env` file. +- **Image not pulled locally:** Stacks that have never been deployed (no local image on disk) will not show update badges because there is no local digest to compare against the registry. Deploy the stack at least once to enable update detection. + +--- + ## "Check for updates" shows rate-limit error **Symptom:** Clicking "Check for updates" shows a toast error about waiting before checking again. diff --git a/frontend/src/components/EditorLayout.tsx b/frontend/src/components/EditorLayout.tsx index cfbd138d..b12a1f56 100644 --- a/frontend/src/components/EditorLayout.tsx +++ b/frontend/src/components/EditorLayout.tsx @@ -18,6 +18,7 @@ import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, import { Tabs, TabsList, TabsTrigger, TabsHighlight, TabsHighlightItem } from './ui/tabs'; import { springs } from '@/lib/motion'; import { Highlight, HighlightItem } from './animate-ui/primitives/effects/highlight'; +import { CursorProvider, Cursor, CursorContainer, CursorFollow } from '@/components/animate-ui/primitives/animate/cursor'; import { Card, CardContent, CardHeader, CardTitle } from './ui/card'; import { Badge } from './ui/badge'; import { Plus, Trash2, Play, Square, Save, Terminal, RotateCw, CloudDownload, Pencil, X, Home, ExternalLink, Bell, MoreVertical, BellRing, Rocket, HardDrive, ScrollText, Activity, Server, Radar, Undo2, RefreshCw, Download, Clock, Menu, FolderSearch, Loader2, Tag, Check, ChevronDown } from 'lucide-react'; @@ -1521,10 +1522,24 @@ export default function EditorLayout() { )} {stackUpdates[file] && ( - + + + + + +

+ + +
+ Update available +
+
+ )}
e.stopPropagation()}>