From d126195e50ffe5b8b85a5c7f1d92048c19a4cc98 Mon Sep 17 00:00:00 2001 From: Harold Hunt Date: Wed, 14 Oct 2026 12:36:51 -0400 Subject: [PATCH 1/5] Give the Dock an icon outside the bundle, and macOS 26 the Icon Composer one A run outside the app bundle has no icon for macOS to draw, so the Dock shows the generic executable. dock_icon.rs now paints one when the main bundle names none: the flat legacy tile, or on macOS 26 the shipped icon as that macOS draws it, since Liquid Glass is never applied to an image set at run time. make dock-icons renders both, the glass one by macOS itself through NSWorkspace from a throwaway bundle. The bundle also ships packaging/macos/AppIcon.icon when Xcode 26's actool is at hand: Assets.car and CFBundleIconName beside the icns, so macOS 26 draws its own shape and glass instead of normalizing a padded icns, which 26.6.2 puts on a light plate. Without that actool the bundle is as before. CI builds the bundle on macos-26 too, and the aarch64 release moves there. --- .github/workflows/ci.yml | 27 ++- .github/workflows/release.yml | 6 +- AGENTS.md | 17 ++ Cargo.lock | 3 + Makefile | 9 +- crates/disktree-app/Cargo.toml | 19 ++ crates/disktree-app/src/dock_icon.rs | 98 ++++++++++ crates/disktree-app/src/main.rs | 4 + packaging/macos/AppGlyph.svg | 17 ++ packaging/macos/AppIcon.icon/icon.json | 35 ++++ packaging/macos/DockIcon-glass.png | Bin 0 -> 57189 bytes packaging/macos/DockIcon.png | Bin 0 -> 13086 bytes packaging/macos/Info.plist.in | 5 + packaging/macos/render-dock-icons.swift | 247 ++++++++++++++++++++++++ xtask/src/bundle.rs | 152 ++++++++++++++- 15 files changed, 627 insertions(+), 12 deletions(-) create mode 100644 crates/disktree-app/src/dock_icon.rs create mode 100644 packaging/macos/AppGlyph.svg create mode 100644 packaging/macos/AppIcon.icon/icon.json create mode 100644 packaging/macos/DockIcon-glass.png create mode 100644 packaging/macos/DockIcon.png create mode 100644 packaging/macos/render-dock-icons.swift diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 48079012..821fa6ab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -71,10 +71,35 @@ jobs: run: cargo xtask test # The app bundle, signed ad hoc: catches a broken Info.plist, icon or - # signature before a release does. + # signature before a release does. This runner's Xcode has no actool + # 26, so this is the bundle without the Icon Composer icon. - name: Bundle run: cargo xtask bundle + bundle-macos-26: + name: Bundle (macOS 26) + # The bundle with the Icon Composer icon: Xcode 26's actool compiles it + # into Assets.car, and the plist names it, which the job checks. + runs-on: macos-26 + steps: + - uses: actions/checkout@v5 + + - uses: dtolnay/rust-toolchain@master + with: + toolchain: "1.97" + + - uses: Swatinem/rust-cache@v2 + + - name: Bundle + run: cargo xtask bundle + + - name: Icon catalog + run: | + app=target/bundle/disktree.app + test -f "$app/Contents/Resources/Assets.car" + test -f "$app/Contents/Resources/AppIcon.icns" + test "$(plutil -extract CFBundleIconName raw "$app/Contents/Info.plist")" = Icon + windows: name: Lint and test (Windows) runs-on: windows-2025 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9ca399cd..775ae3f0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -126,8 +126,10 @@ jobs: matrix: include: # `xtask bundle` names the zip after the machine it runs on, so - # each architecture builds on its own. - - { runner: macos-15, arch: aarch64 } + # each architecture builds on its own. macOS 26's Xcode compiles + # the Icon Composer icon into the bundle; there is no macOS 26 + # Intel runner, so that build ships the legacy icon alone. + - { runner: macos-26, arch: aarch64 } - { runner: macos-15-intel, arch: x86_64 } runs-on: ${{ matrix.runner }} env: diff --git a/AGENTS.md b/AGENTS.md index 0342b30c..ad3eae06 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -20,6 +20,7 @@ make install # ~/.local: binary, desktop entry, icon make install PREFIX=/usr/local # system-wide (needs root) make uninstall make bundle # macOS: target/bundle/disktree.app and its zip +make dock-icons # macOS 26: redraw the Dock icon of an unbundled run make lint # rustfmt --check, then clippy --all-targets -D warnings make test # core and window-harness tests make ci # lint, then test @@ -37,6 +38,21 @@ On macOS `make install` installs `target/bundle/disktree.app` into `packaging/macos/` (the `Info.plist` template and the icon's SVG). The bundle identifier there keys every macOS permission grant; do not change it lightly. +The macOS icon has two sources in `packaging/macos/`, and each macOS reads +the one made for it. `AppIcon.svg` is the mark on Apple's legacy 824-in-1024 +tile; the bundle draws `AppIcon.icns` from it, which macOS 15 and earlier +draw literally. `AppIcon.icon` with `AppGlyph.svg` is the Icon Composer +package: when Xcode 26's actool is at hand `cargo xtask bundle` compiles it +into `Assets.car` and names it with `CFBundleIconName`, and macOS 26 draws +that with its own shape, glass edge and Dark, Clear and Tinted looks. Handed +only the `.icns`, macOS 26 normalizes it instead, and 26.6.2 has drawn such a +padded icns on a light plate, so a bundle without the catalog says so. A run +outside the bundle (`make run`, `cargo run`) has no icon for macOS to draw, +so `dock_icon.rs` paints one: `DockIcon.png`, or on macOS 26 +`DockIcon-glass.png`, the shipped icon as that macOS itself draws it, since +Liquid Glass is never applied to an image set at run time. `make dock-icons` +redraws both on a macOS 26 with Xcode 26; run it after either SVG changes. + `cargo xtask lint` is the gate. It must be green before anything is called done, and it must not fix anything: a red local run is the same signal CI gives. On Windows, where there is no make, run `cargo xtask lint`, `cargo xtask test` @@ -138,6 +154,7 @@ and `cargo build --release` directly; CI runs the gate on both systems. | the mosaic's painting or labels | `crates/disktree-app/src/treemap_view.rs` | | layout of a screen | `crates/disktree-app/src/views.rs` | | colours derived from the theme | `crates/disktree-app/src/palette.rs` | +| the macOS icon, in any of its looks | `packaging/macos/` — the SVGs and `AppIcon.icon`, then `make dock-icons` | ## Verification expectations diff --git a/Cargo.lock b/Cargo.lock index dde47dd2..d8ce6848 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1427,6 +1427,9 @@ dependencies = [ "dunce", "gpui-kit", "gpui-omarchy", + "objc2 0.6.4", + "objc2-app-kit 0.3.2", + "objc2-foundation 0.3.2", "rustc-hash 2.1.3", "tempfile", "windows-sys 0.61.2", diff --git a/Makefile b/Makefile index 75fc361b..c30e96e7 100644 --- a/Makefile +++ b/Makefile @@ -47,7 +47,7 @@ define check_install_path fi endef -.PHONY: help build run install install-scan uninstall bundle lint test test-ssh ci fmt clean +.PHONY: help build run install install-scan uninstall bundle dock-icons lint test test-ssh ci fmt clean help: @echo "disktree" @@ -58,6 +58,7 @@ help: @echo " make install install to $(PREFIX): binary, desktop entry, icon" @echo " (macOS: disktree.app into $(APPS))" @echo " make bundle macOS: build target/bundle/disktree.app and its zip" + @echo " make dock-icons macOS 26: redraw the Dock icon of an unbundled run" @echo " make uninstall remove what install put there" @echo " make lint rustfmt --check and clippy -D warnings" @echo " make test core and window-harness tests" @@ -153,5 +154,11 @@ endif bundle: $(CARGO) xtask bundle +# The Dock icon a run outside the bundle shows, in the flat look of macOS 15 +# and the Liquid Glass of macOS 26, which only that macOS can draw: needs +# macOS 26 and Xcode 26. Run after either SVG in packaging/macos changes. +dock-icons: + swift packaging/macos/render-dock-icons.swift + clean: $(CARGO) clean diff --git a/crates/disktree-app/Cargo.toml b/crates/disktree-app/Cargo.toml index 4bc758a2..1e678a89 100644 --- a/crates/disktree-app/Cargo.toml +++ b/crates/disktree-app/Cargo.toml @@ -22,6 +22,25 @@ dunce = "1.0.5" rustc-hash = { workspace = true } tempfile = "3" +[target.'cfg(target_os = "macos")'.dependencies] +# AppKit for the Dock icon of a run outside the app bundle (dock_icon.rs): +# the crates and versions GPUI already builds, with only the classes used. +objc2 = "0.6" +objc2-app-kit = { version = "0.3", default-features = false, features = [ + "std", + "NSApplication", + "NSImage", + "NSResponder", +] } +objc2-foundation = { version = "0.3", default-features = false, features = [ + "std", + "NSBundle", + "NSData", + "NSGeometry", + "NSProcessInfo", + "NSString", +] } + [target.'cfg(windows)'.dependencies] windows-sys = { version = "0.61", features = ["Win32_System_Console"] } diff --git a/crates/disktree-app/src/dock_icon.rs b/crates/disktree-app/src/dock_icon.rs new file mode 100644 index 00000000..4ec21be0 --- /dev/null +++ b/crates/disktree-app/src/dock_icon.rs @@ -0,0 +1,98 @@ +//! The Dock icon of a run outside the app bundle. +//! +//! `make run`, `cargo run` and the bare release binary all start disktree +//! with no bundle around it, so macOS has no icon to draw and the Dock shows +//! the generic executable. `AppKit` lets a running app replace its Dock icon +//! with an image, so the app carries its own and paints it whenever the +//! bundle it runs in, if any, names none. +//! +//! The image is drawn literally. macOS 26 gives Liquid Glass only to a +//! bundle's Icon Composer icon and has no API to ask for it at run time, so +//! the glass is baked into the image instead: `DockIcon-glass.png` is the +//! shipped icon as macOS 26 itself draws it, rendered by +//! `packaging/macos/render-dock-icons.swift`. macOS 15 and earlier draw a +//! flat icon on Apple's legacy tile, and get `DockIcon.png`, which is that. + +#![allow( + unsafe_code, + reason = "one AppKit setter objc2 marks unsafe; the call says why it is \ + sound" +)] + +use objc2::{AllocAnyThread as _, MainThreadMarker}; +use objc2_app_kit::{NSApplication, NSImage}; +use objc2_foundation::{NSBundle, NSData, NSProcessInfo, NSString}; + +const FLAT: &[u8] = include_bytes!("../../../packaging/macos/DockIcon.png"); +const GLASS: &[u8] = + include_bytes!("../../../packaging/macos/DockIcon-glass.png"); + +/// Give the Dock an icon unless the bundle the app runs in has one. +/// +/// For the main thread, once `AppKit` is up: the closure `Application::run` +/// calls back is that, and by then the Dock tile exists to paint. Anywhere +/// else this does nothing. +pub fn install() { + let Some(mtm) = MainThreadMarker::new() else { + return; + }; + if bundle_names_an_icon() { + return; + } + let data = NSData::with_bytes(embedded(draws_liquid_glass())); + let Some(image) = NSImage::initWithData(NSImage::alloc(), &data) else { + return; + }; + let app = NSApplication::sharedApplication(mtm); + // SAFETY: the setter is main-thread only, which `mtm` proves, and takes + // an image AppKit retains for itself. + unsafe { app.setApplicationIconImage(Some(&image)) }; +} + +/// Whether the main bundle names an icon for macOS to draw. Outside a bundle +/// `NSBundle.mainBundle` is the executable's directory and names nothing. +fn bundle_names_an_icon() -> bool { + let bundle = NSBundle::mainBundle(); + ["CFBundleIconName", "CFBundleIconFile"].iter().any(|key| { + bundle + .objectForInfoDictionaryKey(&NSString::from_str(key)) + .is_some() + }) +} + +/// Whether this Mac draws app icons in Liquid Glass: macOS 26 and later. +fn draws_liquid_glass() -> bool { + NSProcessInfo::processInfo() + .operatingSystemVersion() + .majorVersion + >= 26 +} + +/// The icon for the look this Mac gives its icons. +const fn embedded(liquid_glass: bool) -> &'static [u8] { + if liquid_glass { GLASS } else { FLAT } +} + +#[cfg(test)] +mod tests { + use super::*; + + /// Both files decode, and to the size the renderer promises: the Dock + /// draws at most 128 pt, twice that on a Retina display. + #[test] + fn both_dock_icons_are_512_pixel_pngs() { + for liquid_glass in [false, true] { + let bytes = embedded(liquid_glass); + assert!(bytes.starts_with(b"\x89PNG\r\n\x1a\n")); + let image = NSImage::initWithData( + NSImage::alloc(), + &NSData::with_bytes(bytes), + ) + .expect("a decodable PNG"); + let size = image.size(); + assert_eq!((size.width, size.height), (512., 512.)); + } + // The glass one is a render of the flat one, never the same file. + assert_ne!(embedded(true), embedded(false)); + } +} diff --git a/crates/disktree-app/src/main.rs b/crates/disktree-app/src/main.rs index 904a9319..2d396044 100644 --- a/crates/disktree-app/src/main.rs +++ b/crates/disktree-app/src/main.rs @@ -13,6 +13,8 @@ mod app_menu; mod appearance; +#[cfg(target_os = "macos")] +mod dock_icon; mod git; mod marks; mod palette; @@ -183,6 +185,8 @@ fn run() -> Result<()> { .run(move |cx| { gpui_omarchy::init(cx); app_menu::install(cx); + #[cfg(target_os = "macos")] + dock_icon::install(); let home = std::env::home_dir(); let native_look = appearance::follows_system(home.as_deref()); if native_look { diff --git a/packaging/macos/AppGlyph.svg b/packaging/macos/AppGlyph.svg new file mode 100644 index 00000000..4ac0c81b --- /dev/null +++ b/packaging/macos/AppGlyph.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + diff --git a/packaging/macos/AppIcon.icon/icon.json b/packaging/macos/AppIcon.icon/icon.json new file mode 100644 index 00000000..496f6f42 --- /dev/null +++ b/packaging/macos/AppIcon.icon/icon.json @@ -0,0 +1,35 @@ +{ + "fill" : { + "solid" : "srgb:0.10196,0.10588,0.14902,1.00000" + }, + "groups" : [ + { + "name" : "Mark", + "layers" : [ + { + "name" : "glyph", + "image-name" : "glyph.png", + "fill" : "automatic", + "glass" : false, + "hidden" : false, + "blend-mode" : "normal" + } + ], + "lighting" : "individual", + "shadow" : { + "kind" : "neutral", + "opacity" : 0.5 + }, + "translucency" : { + "enabled" : false, + "value" : 0.5 + } + } + ], + "supported-platforms" : { + "circles" : [ + "watchOS" + ], + "squares" : "shared" + } +} diff --git a/packaging/macos/DockIcon-glass.png b/packaging/macos/DockIcon-glass.png new file mode 100644 index 0000000000000000000000000000000000000000..2dc123cb08283aa3eb24c5e5c99f2660b637dcad GIT binary patch literal 57189 zcmeFZhgTC_*FHQ69chXPNL5s%qx2fEA)tWt9uyJjNbdnrQKTci1eM-GM_Lk5q!W5? z(n9Yokn-hu?)!Ov|HQXeX3bM+ z&{C6khknCnRUU*jH7-p9R0ej{&Zs`={aQ$Uz}ObdV_901DyTteQik~i{KbHM*Q z0|s&^{@?L`KD;fNf&u_FK=XmRp&w|og|5bK;u+8B2M88ZbXP>gNj&94vA%=arArA~ z_ilD4-wYdRF}*4(af7l$TFfDA#1&oh{2KZdXVk@S4wBaEBNaIg)j1;;^K^osX>8KP@}RlR3Uw%*l3ahX2kdRzaOi&l3g6_3egVPPH#C zP=dqM_*rQG|K0yT1uUfpEli~8?z=7E>Kk_-ngW9Oo`358fp;nCb{{5Qg{FmxdguJDL2=9%IMU4Mk$<&S3% z&1;&ODOb_+q_Mq|R@;<~^{FBT;i*qiouhfbYMz-$_=TbQDUa8Ih$6`2e5e@@OhWmE zp2?hTwN*n3W5AP(wD%SADWqQ3Q%6HlRl=|We;=17#Zf}>v=9Dy_tSFmt+7{G&b#2S ztm_r*?e$hOAjYjc zd#b);*wiBP{zHMe#a5Bn?&OSdii4A9^#zUv{>)6D(JgR z=0MF7*vmRZx@lcR?hG&pFGBi;Ona8jzNJq*T@0HQ?z{hEEr%efQY2xJXb@XX zU{oy4H@+s&>69p6_5EeWjS|E2Z{CGh!fzySKMHNCtqp5*$)r6nXYSQ@dRZlq(IK^5 znE2Ks+bBb3tOzu?!D69-Q`GAG6@wogz51n8Er{yKWK>ShSWZsPq+V9mM0P5pB*Q5~ zdt-yEJ7cRXDSD)q?TZ+qUe?%rV?)FQVQq@^S{ppl4O(Cwd*&OxRluW}-??b{yE$q2 z^~;AJgygy=>UdhlJn9y`hnLGFrjq;{a+oIUNO%XkUxy&tA9%Sn&| zw<$9V>n1RCeYDYe|Go5v#0x61kz#Kn1O10=-(u0Pr3STDv>}CH@L+7N)XhouB9Tme z6$d)!pK4e8AJw=zM%){|cgxOS@7`?(=z~(I=3BNW*+y{#ltov<9%irPDR-vn{7Pao z%f+@|O%Te<^DLO9$<_0O8KeB&F_~PtwvPOnYZDs9)@tjm__ET+Co71&#za& zZ$A{s${NE>&7gr*wUz#F?CiGolae-4Fe>}wZMv{C)|7#(Z&}w^lv=YuZ?{IpDl7{w zr0-9Q9@XrLmWdoR3tOcK#%7EaWy;U$QNGNc?dN^4$Qu^2_-xr?R)1Zx5o(@vr$Kmb z-|JBN?vv$p3X`qso#357w+6!T6s8X&k)54k@gvyP^|;Tq-jh9Q%<9LBi10Z@dK{JI zBQc%7gTbsi0k*c^Ya7D4i=XE92;9^?_Re+R)z`V-$#eIIzP>#?vsoeVD)G|O#CyCh zpYam)r?7~`r19NADXZk8S?UbBuT>D)>bqR@?RBN%ErIpI*awamIXlyz^l?F#Z`$A0S4c8oW=mdw6Hu9L z$Zu4W<~JGetWW3TBRdDHl9Vn}nGK`C5lt6UNUpd@q_MGQmEnEl?I$jDB70>#i9?1B z$}ficZufq=z5!{28(FZ&NQq})F0lR=# zYL28v*nV1|Cjuj@kdFuf)ZAZr{g;$A}om8&N6!b)5M%ByEN&; z(aS)C%SU1xChe!*-kpmpc3-}?hXhHm9)kGwdPXT;i>9xBRztnn#VbzwHE9NC6<5R0 zVs=hrs>!w{`0^-JxsT!TtwWWfFi7d(kUN_vy(;c9!>Drf`Q(|olP!fznu9SPqXriYX>a=DH9Qx( zsO*FUpc`=}nDkEyw?cNvp$5|fezR;vrAV_>L*D|oCETnN^wJZ~Cw=_8ursw}D z9{2Ta!ji{mf7F%5)T(cvIT3SxV)e=0MXGPClwRI(I;uh%+IUA2{ryMUiF$pm&rMVE z%0J!^%e1=QdHf~$mDfWgI$qxxqkmE3(SC7W+%v*kneJyfFCKgHz9Sao-$=|geCC+= z@DqIL#+#(F<}Q1FOZu(4YXE4g{l^6b1r}0LL$n+$ z^89mI>Gy=?RFd7ny6TGt^3kZ)xoK!=xj2j(mI8-uw&F0PPCjBmdq3FKmVxc^YUk^d zQd=d>7U!f_v$9U@`|-SzVEojltv}cLnPC{j_h_tv?m<-QPWyMw{5v-OSd|@rOd5O3 zYTk*cxVW;d>+?N-gRH&-n>X92Z1gXFZT@K8x_n`o z9_7BfuzHZBjPUWdL&VIKA3BJ3n;c5dP7g?F8t|HR78ttyz4wtMq@n69^!Md^kv!wu z*Bh8h%!1jZ6jlu3$*iJf8(xudyj4^6sxSQ|2Op=hb`ol`$+#e7o2{!xp6BMCG}r#6 zbQ7I*i@wmu(ySZI{#{qfi$pfW{w`I%nknTU(8-7sa+4nX{hUU7ixaA&`Tg^~KYfWu z%aIvLM(Rb`qa6VU{>RJgSb+e2CBwd;ZEBo*4>3q6NB^60t&sVb_!zT1N6PxR%DY*% zOM=4j4Z#C>N7A>^>mXx#4u&VXPwQV{U&ZTOlU%LKkJGR>{<6} zbw?)$hX$(q*Gx{G+>g23k2k6eF(QHT{)!<>BYU0`ssp0hCOA<+c;6&9vVZ9U<}E0B zgXt~FfXBz=pjBevc0!P_AY%-N*1FA|*fYK&k4tjcYVN%FYlXMWysri%n#<@tdZ}I^ z1C6~j-F4KdH{)-l{tkWLuC(-rj~Ti*;KfU`M^mERuXVV(PKKY&oN1Nio4nl0F^atV zS8(Ei(?*ez$#zcCS-MHsHwJ%#ZeC<`aYD5rjfsKAyCbyzc7V9`6)$oABD?h5%#Sxh z25pz01b^yp3yc1&X7oq$X~9>ITRp;s{I=1dKV|s43bkFSUM#10}Dgx?Vtvmzw6^9F885D#@p z7fk5CK$UhkOwH%a3-3{jkygOh970RM=%CIrz?9xp`%S7)-t)vMiZ#^+ zQ)+WV95i>LQ%mLE!;A6aFFRR{7d{&%c#0;>Ui_RYS*EH`4)zo((aGu$|4HKSHgPHK zE-RcHDllBSVaVNB$}{p+qf4{t;d?^{YQ-GppDE_Uqt!vzu#Hqa!g`LZX_jJ|s}H_2 zmHhmY_U`_AG~JhVDFe{s_NqdW{kCgz-&8a`zR^6q-cBtw(0%{efK1ZjGwEf=PihHf zh8rHES2o^=baNKSGhghYDQokzv&<>Owj$qkR9!3kvRukMp%}+6;)O-+IS6dvCmT>jP%7_r304u@A9gVpiwjn2=)(Y10#aKAo4_nSITsY1p|5 zGdA$2L|Y}c#-#|G9PRamc6^${j_a$%#ll~c2gNnZ!RC2sC(3od$38XAowv-v+JjG2 z2--T?$^^;sYAD@oizHCpT!jiD1US*1-z`6GsKK0{c%42u`l-C+&kR>KTNpD;J{JRW z!tLYuW3qLuO(<74y|ErB#SqQT0@l5HAXQg6KkkErrt+OT($JpoCrg6q{@y=cR#!Y$ zFKTx04ocFdYM9nzDoa@kbsMS+C9Y46N7>G z;R>>&fAc3ZbuK=^_vk!Psurav0KNaM9$UY+##=JJis%e8}g4UM9nTbIAJjDLOd zxmIVO{98{DCoJjqQe+S+Sno3@mZZtu{6%?K#4>{zmYro|XHyY_O40?*YWQzQDS%q4tdu&-szln1u<# z%0=uKZX-Ov{mgXKq#Y^`>m1tarUz08nnSn)b=BpmBnS_Rnz9q;wmL+x!(ytgv+UMW zNOPc}3QkrLD$^hMhF^rMM#Ks!db&+_Cee|V-w+Aim5$+-D;qs>gpwn zi!8gH<)gMBKcT%y?kukrV&%s!>5J+E7LtCi)}@CH1-TI4SZo8Qd(s|z+cCZooqYDZ zw}k1nR~NV0s6}9Fv4&a~&yxqn>3tEC{Ie#o1{pRT`?4}qyVaDWchfn;+}3UbEHYo# zlQlYn{jawl*ZyvBYB0K@qAayhUm}9- zzHaz8^OqEa7W~Rw<4Wu*J;;sIYch7eZgvMDYDJnLok1Z)r5{%4F&0kRQ+w*dE}yux z7q(Sv8pLCH5ct zw@H|sF1QzqpWf~F1RDZiJ8@F3vDiW7>nh3jK$TP~;++oN@@ z0RNUu^`o-V#~LQ6*WaHU=?Hi?Zhmt1stCzWm#Xt%>-v^$MK2trQn=(8B_Fh|n~{(% z0j65vluzf@x@6X&7q|Ds=l!Io`y&sKZ_pN08nL`Lqb;biAm&!k^M=n@3}KxQ z{}Xn`UHiNmOJzE->b{r-nHUdTy!EUfNB=fcaP)095e zUW*rg$ieKyJYTg31o}ZGbj&v*-?nAft*NOSDLOlCbRXDPdR->{qZZ1M)E%^TeWPk$5Sde{qth>#d({yIuz~jb4O+E338_6`VXhl zc9}MY?nRn#6IM=$7zE_a=BZK~Oek}Av+XmxMGC?)Uho7*34t#`)g2K#6Cy!RaI?g- z$q%#V^&_D*^f|ico}F`VL3vxop{kc33&P7chuBm|;(y2NhD6-SiTsl-S({~u21qeI z^bBT2vXY?!?BBx-htq~ILP^!Rrxr#k>2g{7&#zxJP`Oc1DO~Zxug06(_Vv<$SDMq#vOJKb;=0)`x14Z~PeMa`qE&`ti|r_j{mz;P zRBu|P$RQPowKRM|?!+e4Ih@qODyZ8+1Cx-j_;Y^BE@AoFs=?!_^%!eAbAfKV1PC2T zwx>Ga26_yj^I(c0-328fEmWa*I|bC#icbg)&Is+3h3PGNRnCO{HK!QZS08=v<*B`I zA@l49_D!gSt*)>fBD=cc;pVVG7?G~T7Hfx0N=)9lSfz@)j)}eWj18id>tf56^IkWk zUWcCr-QLj1LQ=+q zxv?+mfdAFY{SyUN*;F}+W6jF!abS>Q$m|@}fD|BuFgY50wowLI%%KQVvk|?RgI$7` z<{=YTmc;DRtS|m=eU95mjci=XI*ALWjr?i6a2M6iJry|M$fWH?x;P4%xAQPDl@5QQcjf7wP&_&+{ZeGmI7+VWcC^|FDSM%)$ThuCzl>2#xl+Y&is*yZkqW< z{JDs|BWKK59nNuf%|KPeVXH+AA!ixQJXR|AMevdU5OQ~(V6vPHKu-Lyo=sJ zWJ6#?0*Ww&+Jo{tGSgRe&P-pm@hsh_cbrY3QUStR@V!iWQ>Wh)r=v_#669Xn0~L|* zAr+!G^n`KlBf^tlt32(CpH9@R6Nj$+3f5jY^q+%<10ne)Sx742(&e~zets%y2C&}| z#*VPC78t`wv_6e!N`Y`?KOGiKZJPSSjk>clTbIgrOmw@@F9}{)br4P%N@@P?aQ_r) z3}#{OxDRFkD(*uLK7amPW?*^|-Tp!R@81PJVl{+tiqeE~EQP-%fC2L>sOtJxF2zFK z&eeCjH5wVg+y&!4AJo{S;Bx5>NwT~KO$&m(noYzZ2%#F$OgL6TvW{3E591EX4zLm( z?B}aJDem67G`d)cxz+Y2LWqnSn4;a{7d-$!#txksy7GX`Cf2pf4A}mrI}ao7*H@l0 z`o9QnJG=6wz!+MIqHS0`GkhZkt|zEFV4u01Kc{>kMr1#esR6q%SVkUw&;FM1n)6>jqvUx#QnMjG8^nF@>mQp^nw`f6dCwk#8(RS3I z8>sPzh0R{FQA3x&kgX9CTOE9h{S?MK?Gfe3r(Y^tvaM=$KMu{EeJ$OwnHj-p5Tel0 zeO=W*`CTY8H*!x%NGZ3oGPASPT|A&Uk4T*czd`B`c*wdB}4kzKUu+v01 zo^(p_z>;zP_TdGRxO@nc630ir-Z-}ZCK9Cb1VO-??oAw>q2 z=?>>ZWY=TG{#%}VcFo2Fm%iV{CpNJKl+&TFOgM(BilBouRBw5$9|{e^&8-`ckx`xHl6t~L_` zNuF@^hbOE&N*h1ppYJu`i@)DnzF zQgu$+eV?8E<*Xcj*VC5h_u$>ORH=$b1U-r}a`w_=b+wQyYA8;dddf|+Ffsi2&*@F) zjZHCoi|T4Atg&%2a!Y^@mj?ynGQFpJ*DSh>*L^D9?-&eD-{!Mm1k1oCW%MHwjoSX~ zlOaHTAQrVZT8}*Hm_n{>AZ@qF96GUK5Bi&Ud4*6=1gBQJfUmy4uVa6dKd{wG~F_U`j9 zUfw4$a62bHa{f`?ZI%fBiTWLmgJIt&|CKdibzmvAqWqt2r@a~pz`r}eVV=M3h4SMa~E@Y~glWfBF( zZ7>=vWdH1)wQSFowUm`{*Vu!4sOJ*SW?DK_vWQTG*joQ0**ht~9q}4gc($foOOmCk zB~6XkLm3Lr&K@Ez2xoyPj(-{R@n1Bc1OMJ@lB0}EnWBuV#8SOxje*P0Dtewt+rFO* z!dD6s*Z7EkHAvjTrAm7a$<=?_Kl!{gD2Myufz zq^Yj25&WmlAp-!~|PGPpeIdTxBUq1F9t#abKb+d2h5xS+A! zrpt`lu2b4M8^)@hr@$XQqz2W!xjy+)Iy*0W$06C|z!=+~e-Zc+fmBo%#nfnVA=XdR zpg0_y)SuCpse10Vr$b89n8!<4AsMhRo<1lKfi2hTtghq$Rf?gSXSVUAP%p1drMo-G zr`IqS?2(Tyc!pv&m2r;c`phgsq-N}cGdZpH?pD)3BULOEgsG(~$-b|+YMa}8nK}z^ zH|X@^cB_Scd#o65@JyEP>;aA};|#%ni&pXTf1c_o&NbGlE7;giDvl800;%1ZCETLN z8NZS?P&_L>5QHtV!}e0<-s~?Gk=P)g8cxT*`;Et%oYi4PV2UtH!lD666e|c5`o(t` z-)lZ>$xVi#{4A+Kl&gDUAA4lQS;=K0R)~5C8~c-)qN0X}l%SJoLX9AC9ie*EUg#n_ zR$*gTfF8eTUE7?FNn+x<2nvny^S)=AO->K9x4sVacut*-Fq0x+0h_CPu&_XaR4inV zGE*rTUpaLNlBMjwfN$Fy!a*Emt{n*O#sza7?ZLtQ)a9$e-A zdx-8_OTEn$5S<(&Zx?ye0|9L1n5jqQZZql*4+XBveG9pYa=}1}?+$nJhe^T37@QOA zd+n*)5Rq~;MG2Q_ZFz--gH8K+=hF4*Oiv3xopnXXEotw=@yfB;z#XYcIIahZXL_!s zR5HFoda>a*vhO&%&Rr}G2C|-n^t-%}Bon`k1AE87jh{4po5W#V0(?iQ%6-Wq+i$@V z`^i&Ri?TaU^v!YAbZiMhq!TBFDS?%OcaKz?#xOCDztd872)MLQbJ1&3!)~oHKRP&z z_^pVi5Ox#}jyo!YAla21NcXh^6D~qcIF#oLu^VC zSJtk4n3TNTi=rOZHBkFwObp?O>rVaySw71mjgMepUIZ*6J0S+9OVTjntBbDIjD4te z3&$IXWPA^m+!EzgIgTut37l(X)wRTJB_(xVuKrn+|Lq!2X_T4n*s?*=uSD)+AZPBK zq$*j+!s@CXSh)H9;#xs%G|iq6syz=#i?*>UvjOz*qvaF)vN}XQAb-DNZu!LoT$^ag zHop-ZEC*@Jiu3NPT<%pn#U~aS^=6Y35L>E;h9#TAhLo1p~Fq2tZ zo>=uFaqtDcl(c9BuU9=1P(PIgkj!Wk%B}C}XDvX8RL+QEz~<|XIt#bu^;Hak9DD}k z7A-*C4u2*~!bZLbIx9V71hfr~dg}3CAL9f=OyywPkIui;Y}NLWi03=-Gc--eCe5o? z`6$=2z~Wkk+VRG^<_~VCh}v?j7Y}M70zXLRE_;lmvJljGyMyL0mk&Z1?TxElo3R-J z_8*d^>kA=|PTxp6PxYRT45yUbSWQp>&rr0(5JwZfLqCb($(t2hCq)wR4+fPgNY7AL zNMHA=D+OX)@qa2*1Kau4vLHi;SwQ|JmfMJ_t(tOW;@aqY6!Es(1w0?>fJ~&sendyY z)so8A@nX9C&ILIj+ahedsx;RdNK^*I?LXjtM-`9^*!aaqJle^Inx3v`AWt7}47W%) z@hAn-a6@M8tbWEs;7XK2ejsY=`V=~Q(}(_zXY!l0lClFLuzUu3X_f*jP3O8kJVc<@@0`yNvv6!0A+-saLH#cin5$*f=56-2fJiC@t zPqA4~A-b#;Iy%4e)$&i-un<0VQmj4`w=&jz%s2)kK=At~Ux$&bYU+xxQ5*A_*B`}f zcI~{Cp|kRe>XSbX)_w1B+n~&{9cFZbI_w>lRQC@)yFu=vcDMW{QAfl6(+BMu!9O-7 zOo*L(83)jB2T&#~Gyb2}JR1wj(_>Z$tZyneK`UEYeCltb+|TxX*v3MhcA4N_-AK>j zbUo^91V-A@W7x>ps;QsxuA4dgc^74LfGm9@t*%&_!RR%!w5#lie_{gL#)kYQmt$0q z!m)d1bAo#{BpLrnzPTNHAk+?Kjq4tPl;cy96A!Qi;{Rsg!#%aPfIO~|UoD&>*`l56Y20;Ng-oUm>@!OLJTD;Q#}W!V&dS z9fk$_bKQFa4LijkAI;QSSa!vozV8B~jD1Fox2A-=l6qjh15(-gT4AkX`fz zBIng5E?~B9Xbu;Y^op-jN!ntF0)V7GvTzLVX`T!I-4Q{Ym6wB@h!ZQAVKotbaAu-a zcQ>h#9?eYH{fqJ@M!7lv+gN%Y8A=U0{(z=_3!1?hhqj2h^S~KGxG|LTCX{nW#U{aR zTmvAIUQYeNqjS}S_TE9VhW}JiS^?M%e{K6pIe%nEBO-SUw%H!CNoC)cNkD3+l-J;L z*N!&aiPLNNo3uZ&RkuD{kehKMWAUb*@znoxv~IG4_pjzm)1#{(;&oLAy6V7GgWuYV z3(Su7v7+K3bN88B&Zunmw8LJ_rCqf;0^Jr?fUPv7&GlP`$51XvI)?xy;oAqY3bJ#= zV>fwRl)dT(6j53_?ZL#H+K~j|Mp+UHi~uAFqm0@?H7m|*1T#^zzKQwopt%9C$A!>7 z2o;#DdAHo{U^Cst{AJr(PFl8zfj6%~=K^=a1qZ~$dyhTwvozzJe(>kbfAXF(0{D4O zm+&5S=|=IbO!+t82xJC^3v8U({>cT?zkvS90O{7`=jWr&j1U2Y zjRA*qRbZ>Ro-`{s-oT03kA9ND0i1@F4E8Wj)+32lJBoqFJz_h*ba6fs){WEV-wxV? zVGSe)7dSpJ2hUh z+zR_h8eYG7W8Y=mLKf1<%J!P~ba%U$)ZR>wg@X<#A@8@xLte&&L`ZGvIj{=;Jf2rikro31l z$a{LrtAm&J&}Z(P(yb@D?hAHt?PB)a&q7yopr2WWDV;HMV8m-nQ1vts@mm5PECvzt zr(!-4Bi9oV2gPvd!HqRG^zyRZC;4+34*b8}*aQ5)iFo8iiXRc6Hx{87it%cI0le#G z=bd-7WPr7hG8lrMSDE0mOuk)*kC#uvx(yHoX>OaNxj<<6tBe8JxT(A{1inj-r|D$7 z3FYbUzueJwfqm~epD4kzT`Y9-)PFe^2o(V}V=i0#cRs_=(f8FDTdcQA4kVCt{9(YB z^xJpZr^{;N2Lgh+nfN}XZNHVu;l(Zd+av?ajKRoko#Iow>M#!xaLx4iEct|H1=3?;nq7AI-Ap## z!T=m9d^!@gAHKH6#0@(^o@e7`Yio}Zu@aWIlZiw7sAlkO3|Nw5wPk0AtJvrIKWl>$ z{9O%ThjyNxbxVq$V`%`967Xi*`_JrqyT|LDiR8Kp`-Hg9nc5C(v2>)JQ*M#lJz$_C=JJ_F4Zq|7Ll;>x5LjIJOK! z9b%{zc3y7Z5wK9OpMLyb>Pbs^%nqupd*x{$ZWcfd9E$=b6sK%9%SGI%xvJ)>yMg%C zJzqYR0559rtQEM}<(^xqH*D~~0RSSZplz;VS5g1e05 z>OCjW0yoG#AwV(-#{dX^nVV#gIe0Xg-rd9hPpGGS6dGz~(ZqVta>OYT8 z*cj4w9Hpk&eZwvEu)yN1GCR0I*d9+UTSEt@XfjUhlpqX@3!dfPQ6?)CjQr6O5~d6Y>!1-sNDuXdLa}wCITCo5LVo_Dig4 zPdxy=_hZyyMRP*!&5X_)Un6+Ul>?9Kd>6k%w!9#PKhB^lNe~K9FuywmbM(g-yf=Ds z6`iAiTr@cB%fO)gzezQU0aRPBOmE~AvbPH*-l&*msu%$#-EckUgZf-3*4^!)f*s2z zR(ZD$*z#u!E|<87jlc_Y=|G`;QNmj^eXB<&&Dadn*8hj(N}a36x0i>wD#Nb}Su zz#^|uLJ#gjo(oy*-9qv`ZTK{GONI;{)cS+7YqpGEU9`eF=mt(s7a7zCF72=3VV>>Xi1AaY{}^gJ3CfyC@2EQ&~4$^m3Cqwv(x=2IeQpD14lXM zpu5ODQLA%7($bXm_*NaXhxy*_2r|h?9`*)rN*6a0nl$RYv{y+R^!i(>o}u1SoO;@_ zjAX^FGN=E6nJ6%*i6c>>>N}_w8Bilf;h|-Zfh8;$1G7vlJD7UP-JQWUZM}Z~y@TwN zyCFR8O-6w1LUc=k#+zb+5rt16v`?so!qEC`rY)u{VPP;DgE|7DOq86$S><|jP z47Lf?iqpy}E&k`y+#@tPmy{Cz9sNZCo0V~Wmp+em@L}Q2Qw1AFAYrGT4M^U1k!W6% z@x`B3$`yIV&Pf_2->S@h*|eWcFPDDj6Np@hdaK%lJaQoo)z3&tNf8=9|2V5J32C50 zn*f{)xuKyZq_%vw6c0zCJloPaP(NM!?YsY*^6+~(FFb>joz5LZls)JHJQv9FBD#;J zMFQG5-Rk)q5lB3M!A@#6YF;K#gevYvV`*Zs9l?Z$5`nml$*sN#k<)cP zBvDW)i#Vv&xUbO_3wm?!^l5V1egaBI+zQmcQu+)kxcYx7H_pX%|0w-399*?;SZYFI zU^s>3@qc;5j+l>_jZ+Cc==E)3GMlBAM5!CqgfukXQ) zM}sNI%X2}dep1l$#c;mnE~wcuMW_fZrS!5Gpvtl;vFZZuR1tK1l96ES_jv6Y0D6a}-D*dT$IQpvE&P0ZwtEY7X5L&r8h>|k?U6y=KyrdT zmp^OuQ**!ueM~Vyots{cI>;jZx}T+U(!jolra=&KyYN!5B#TW*+PN0FG59BZNJsw` zSL^+gCpMaY6xkg9P5rMg>S5tgURqyhxT1rYs7tw4y5g}kGu4Y&dZ0{+WQ+3p#7t3_ zeLnBWw-ie`qQcNIs{c8s%K{Q&=Gfzrcoi^wUK6$#KJPy><%U`;JMEkkhY)T0;6?JV za==DLEgNs*3mrsgl{~v?Z$!_eH5gC#F9u)(JC2VK&ADcGKO1PMC)-@R+jxk`do*-# zfe|#z^Z~NUYoUB>JUp*UKJihW-%IFD zk@%b_kxb$Qa+k>pDWdEkgOq=Z@pbw`*`iBwGKegjLyrG}ouB+Rx5ftbOFlUyXPV`` zxhTj4O(7jU1sH)2Y&A4Ul>zgqWk~_!-?vrxhl;}ZNU3T<(-0@RnBOa;GTN?54={8n zx|99w_i8jdau)}EtKRaStj05+mzKT3!Jcjty0?H?uo^$wU9fclU>&B8vR`fPJmDq_c(?Mg;TL)9gIp?5Eh)VfXfB>8!1oiSqE z1dlKM5OY=nUfb2~(kD$iz?p@?7Q(S~B;wYxX(ypHx~9{T2_fC?gO#}x)3K3g#bns& z1k_+>a5$m)WGAROga*B2s%J9MCBXQPsmCQKdnPBxh=-0n3^hqrwJ*_DzXHC}Oe~$6 zbsK|Z_p$)u<)HeRU|d=KY=EfIhLJu;kjO!FmAMSuFxup<5GeGkF-`Gas`1H@9CA;L z*=uquuv`ns>4UmaxZhO!rV@OLINqO2f6Cfz4i3C9@U}a_w)Ou4=%ui#J+_SuvsaNf zmyeKU_KE$=u;ocdz~c}!j#K1UWemco=mw5b6i)8A0NGhWH(V@uFkOGdvuc1G`kb)d z8dtX&Lj5-3?&aP+9+FJ+LcKT!*e!;isqOEg7QAoH7$mxkxqm$K^2Kn{Jdzt(BfZMfW>^8bXWlKdlV_tCpq_`Xvk1Iro}1s z9e|E2qZnd-kYo+}djT2*t)FVKqeJ*Om%5>G#Q$pFNPil|zU)FD7P&EIGNHs8458 zRIFPk4Tx5k#n{`~Ch3p~3sqmZv-D8&T)>74=2sJ8$g=P2BGx_xSIHN0l6FGyw*XE8 zyy!X|xWU6PfS+J7_3N#pgQ~6DAua8i7*i!B%uh+e$U~OAk3` z0Gm*H@Y3k++1cU3LOfRe%R&fN;k9jUH@>n?IT=1pI=P`DnNIbhso z4F26;-=?uE@P_=Q)ZqAPa5M*P+lxCbvN(Y1>|T@zv`CI8}MJv8H#PyPny@!};n(UV!5| zLG1>rvAS>N08YyDwf%~{f+V(+3s@nZ#DF72SSVwijA2UGT?6a=v9x>GOrFx23z5^} z0Nicc*2Srk!o9z?@**~K$%JNj9WBE<)GKA*r&>0&-M42#JO%i7jt)3OgN~Tf$yw?o zE{G!kqjH9{$5;p3ZHGLh&p&9JOx+%!MG3%A|qC-MlZE98gKXH;aiWgLi=>!TM_*V>c1ZqgMJpU>+ zTly^)puI_*ecfZ3`JM@|y9(jE+)lALbl{13w5O9z@wnw)*`2vtLO@~oAjQ^NQIXDx z|9%pr`K&;fBrx+t1muoq0Dg4--ji`MA6RfS6q2b8d75QI^{-e40oSw}Ic+}uq2ONI ze?2p+`REoY`NDNj*Jn|tH0m~J#4^>(f|b21*x$3^rd1S*}39^IUTyCW&+xk zX5UalNP&WLfNA?61a;V65*$d4cBOH4S)d86qWYYz47Yrlp7MP{O$I@(iOGA1UH(RrHHWICct+VMj{Zy)h_31IkoOT*^rem zF$wwQx5y1}+&0=3#SFjhG7niKr)pvr$6SU93$T<2^QY!7quw=A6DMIc`w>OCYzGv~ z;i-B$QU&><7pN}&>)KZ-e`jQ@JI6;~6KV*0-Q=AAIWq0rqP--Vk#6G+8>bVc99+?R zBda4n@Q?ljA=k^*AHLn#>c_q0*+19*JNufC z(4}RnJrPnDr<|!LwfsMHhMp(d-DI^h8XSM0gwxtRc|k@Ld%x5!oZNF1WCovIX;041 z1#DP8%626zm}F+BsV?8{3*mvDv$kU*fFUh4>-CFe{=?@r@m)nKE*7*>R-@zp3)fLs z!y@ZJa@YPH&xgR>8qh^ixl~<*}|dsS#`g1!}%Zu_a%f)8BV7$!->LY)e?bEK+%$ z_5Z?FLUq3P$~~Baw%KC(`_W;KwJzwolMCP7xL=<&3q#KEc;z5%2dR-ir7O{px*}NZ z^GrntHFL+{YGs2dvsZ^J7PI@w8A@4wn&c<@$WWdDo56{qUpZM>Q%!$4S88ECW=m|n z`ckWW+N6r+K}XGrmf84Po$5(DpQDxkVXS#jHUIzE3_&A@(IRj=9)srfl(A-nrNvq9 zd_DOYdgK1swJW@I`V%sDZsM=cSK4aml8e*9a-@3Fv0!Yd8}Y;SM@kRB^%tKkTHqL; zw#xwHbhjzT>v{vX8?d4u_VPz+jjTZPmzaF~S>ixH6<_Dxcgy6O4ifqFwFKA?a@aV_ z(=g8}bGl^u_zm~JQpqtJsCjm#(PvL{e33VNbMj6E)0N*hG}^5#G#Hy_F1^w*0XQhp zb>EpxfSi?l+jgDIhkNW5Q(d?m9W`fsy(TR{TebCIINY@+$xU3GS7~O;YvqU$uqFs% zCF&`>$j%Scbn;h!SJu0EMcSZYf3W3xWMaIW&KK8`p|nVV-}cgj|Ki{C&j1Bb4jzA1 zXKv7KR+L|5nz1RbP=oc(paSV9Zz}m)YCbB%O-!r}@&EYk#7v<-Tq0sgrR}AiE~;c* z^ziQDNXb^<{T!8DNhxcZ@qR{_`_?58+S?~ zgRB@g^mG5OCIKK;D<`}&&23aBGeF6&bmQ0i&#=AmOE)j-@59^n=jDy#3tnCM0oE%5 z#gId~zI6+sdk(tAL?HX$QoO~-f7^o4k(Z&x67cDkAyd9yekB}DP!ecyF_!ia`W9GG zS@BI4PjB5TDYXYi=TylS?fN;ng+1v^KI{~&ze+G^_&vDG2u&DKSVh&9VQ}OKLIPV) zBydHzJdz1xEP8_u>oZ#I>prW`K1vh~4 z%KHQV7lg%&*oLIb1wrFw1i|2WxK3vrL=CwO=aUqG}Zs&VMKMDUd6KGLlC~cX2gag36&B3;vrRsw?#UwM6IQu)I+;59R?h}s{Nw7_tV=Vxpiv0Fzr0`0 ze(xLfZ^_}|rK6g;w=Y)?tg0*Ht*em}KK%W^XH{l0;IH6K0XK_Je5m+*y1mDht=k-j ziFm>F7&D-<@@iANUuCu{mn#ezF)`x{GBQn1sx1PLd;A#Gt1&x)vzQ0pDo)o=?e*NI zHx0j`xaqd-`}x6|wtexUtvdp=%ssUl#eU%y=F}La%@2bG1Kk%p^<7=zySGF;3?fZ~ zD(7yju!0Odmh)+??-h4I3)@HGTEvE&X_`^gr`&l7InB^D{$Bc*-Mh(IKw3cOnzvV4 zZEv{v`0KluG624pu>o|YbF`JA0;SBk%3cqJ2uLz=> zzE{1IK|12R6n8@tMHBMJA-1yoAmb8(ROyxi0`R^Dsd8__rtzVT`41H!DUpAS1<;3Q z$^>jlYsCpzWSbPG5*=TlR?})QrR$b>S}E4ZeD1je*L1{n(4Ghj=o_>;i;}%m<(M!o zW5(AR+lhLkD&yXjmACvm#|I=9dfX=IFLQrWBLH6L!mX)ics2>S$B16OX9_aD`ics` z_asDyn%#Im1oAA!D=~W4|4`7B>L@z4LwaIe16YtgPn9bTCKiv5cUChr%TjMFtHbIL zEzIhzwW<_ip>kK_$vR`747&5bF+}+c*yhwQXvN)`xZqgL?5Vb z{&YEn=1=mXBkuV^0>vQJZA+R4`drEUJfd;Wp9tk3C5*?ic+5_3TFgw>#EKH|d(FFP ztH2@je4kZkO=czkaEe2J?1`*t+Z?)p<4XD#03Df7hilH^4P-cN6Byke4|4r^d~#(5 z#YHA3C+uBL3#Bo`fi4edh^8jtZR;u#B| zf&OiWvUu6(O`4{%s+C>HPyN+pA*_pwi$xz*XZ9f2_D%>7>cW5?0A_gML@!0DUbEkzB9)0TDX$@E|J1n1)kt!3WY#V=S7+<;eAGnkB=UOTA44==#> z&C5B3PVE^hQe(^VchT}A{D7uURTc1SKG}iuvBq56PTp2~u}Zz44`v;&*>T~XK<5yxu&Q^`=u|qfW#;pG8 z)@1jh*8h^|w|`-Nj&t9UZKIQCQRgMEP&GhFci;z{W4(&#Pr7_zHZ{dB+K*`<+9qdBr8zum{vc3df9v07#=F&0|Kk(88aVUN2~8x1AoNoB&nG( zoEBG$we@Jyj2`jL00Cy_01^k!-g=l%%pRC(=4CG22g)KHKmeqi&u&Kyw>jpvC_AVA zgrcOMe(#88`orn1^w#+P8mGQJ{eE>|pbx__82UiP#=Yote`wOP;CI=m{bR}V`}UTy z{@(WeyQ$Y-2Y$6U+bHcaay^uIg={^H&3yK|qZ9r4u(C@aG5|Z4))zkfgV`!-KTYH8 zN+?D_G!@Q-7G9p7IT*sEFzhwo8N3SkVvdiWz}lv7(p#smFlv{|j5|$J%{~$5538}% zV46id4Ax5v1mqF2O&{rTtBO;cr1N=Z6!JU;J~A)+XzWrrFKd_Ch85K zxjPv^6RS%^3W@|IXyBJGT3k?d?bpdBlukbS2Rl0Sbh&TeNS%hi-MG=#JDW}NTRU)r zNx>7i*v8#4G|c`r-<{6!#Z}*}Ebvdwm`P;Rbt{oc8jTa4Uw1;iBxc7F9qr9N5jK$M zFJ9jVp#k=`MDw}--11L!q}!3SitHQOxsRK~oXR4|jbnN&zs36a$iB^chjc^{5xm zH(nMl<5o5{{=u6CQQJ}rZ0(ED<>tPe76%#X6alT&YPfd^9}^^fcvJ}oP1md0j975d zk<5=?i2RxCuXrQH9=p%=2u#VA!13xYnP_7?->5x5oN=pXztg7}SJLPB0tAov`}sNH ziv&pzz(MBafB@E?mRZ^Qw5#&wGQhWY%rw-A-RE4@sc4VEXUFt!Ku4Q2@YIe&UQ{tjyRx+yS@;3kRnPZ zGUTc{T9|QG%U#`^V9m1sd7%wXr!oxZe}4kTqW@sx{BDxhex3+_;bmvwxN{HNEXPSl zNv>qR1*M(|o}$XG7}%vx0JXVhyT;dqhvyO|ReS(;ET4K=|Hx5^oV=&0WYz1#E27dR zd+Vr4=bEb-?$M8CiBn3C`b3_ok*nmi|LEIK<17lX{fpWiib*~PGc>tE!nUtSWl;s{ z$-OsDtGfZF)Q19g7N2Ap%Y|T>Bv*p(NkEsE&MF0^2h0Mf0Pu5l0HNcADI_X$5_!O#$BI zzox;VDQuhd*Fz!GEUc&8HHhd%FpX(%s?wMypfQ()<=%4y?`D?L0^!J|Z2blhOBvyE zrL&ZKy}pj}e$xCFvC=PDj@mSN0VvRTU6Cl7xr;)c9xy|wBfSm|waKnLp^7oEP>pgQ(!}CKAQ*zTk)J&y%2CGW> z!2J{Hc|7G9G2&nJs9ulheIUi(@avw4qjIoO*RgJ|#A1CFBh;fkQ$78VL66yhDc| z0z4Kv%-cLveKqZLb~Oy}RMInGVOHK#^HJbfqX5AzT#uL z5I+(W*x}E=Zwu|GNa_vGHdA8Jfq~+u+|cH>BynM#(sV_oNS^d%IpvEpP z;AH>Amt7>b5RkMVm_Un^EK{CUjcIS!U`21Ii~TK~%TychuAA7OKfj9PzloS52)3AY zv@~I9dg15_T?nWzI8H0TOJbY}q$@SHY<v~6wrJ;lWhRONM~w{iSx=I)%g%ZJ)kHHuT%5tN zuFlOk72uc^ zH?z{oxZH>^pbBo~f^@TBVi%K=^&vF_gjtcx)o|eTewcp_M)_(aO2^AAkh(kUnI;}d z0wPsX;iwyJ{)>+-Rw*nhjx+++Rngf~MLBtN4D4W9-IapR?2aqAtpyECyjyE!FzFW^ z1DEs?xBpkHYuS4l?vuMK(c5c zuTx-gz=kwoD{N3R<=t9xH6rf*c3`nb4LXf3^BE94KLoFyiVdK?{6#r+&VX4NfP@^H z)A(~Rm0!((ySg6vmYIfY_7KG`9iH<)9=8L*`Um@w@zPs@eqXRpJ2x%PgZQ>jrr+@4}yk9=Z%om7%+n8MV>9y1eF;`Vs=7rOiHbT+{CqR&2aCUNVmlNVHNiI#$hwq<*ly|!Yxlxa9fRsSFYC;Yiy-!dUC4ilnTq|X-|L)F%fI^Q zPzDP2tPGO&P!(9@I%1+Cwvzg7u8fBhQoUCm93Zjllltgl3yTOGnAfQD7^e5qI2571 z^XP7q7S^k>pD)Cju_$26#`#Zx35Je6AM?s*Szh}-v@h|&Qt*^9C9Ot(Ti%BWY>b&C z;W~(9!gfRi=~iC)vG$3iKi(Y%?bcXP%#&{cM@?6HfEqB^^afFKmzS~R0psT)_T>J>iq6NOwtCOcUrw}DzIaS#O_f)Ido zZPp96riC*`rg#CEl^mzbKQB0~wa{PY9&zS5kYsb=BOv7u@x|p-YdV+pD@nTe7^1xI zWc(kaiV=94>=RK?)7x~JE8F5$JRbK~)mE2P*e%3K;q5P0k^A(iy z;&rA3BrO-0V7%#~h7Ki1D5kfDB>=67nZ2t^PWZX#3m!!`H1JFKB``EX_f3#ey4gs) zeCOm8Tl`e0G9#HcVLZj7y4hs^f54iNN#`n@l=1jaul$MgclG)jW%0VT1Uv|6fW3HU z4+)-gIBZ?X`>VY>gKXu9lZSNvV|uqq$u@RP8+)4C&jiIP$r~uo)!MZJeo5oy3G}X* zS=IgFq;eFoR4bTFvXCsygL=k$MFEB(s3xM&Hh{deKbqJp8etm!#rTEyeP0Uh9cEDVE%|uCzfI0~-MwL2od@+>naxrMN|oXbYIHZlyxX zk|X2zRs)@UcYzmBM>Im55!aDRHTNYnwwpMWkE~?&pKhlJ0F4)YnCSm2+P!n=ShXt9 z$X{p$sb|2uAru5*!udfV`_6IO4)3DJjy_4ce5K{LB#~ukR-EO_AhbnI^U0CBVzTq_ z)6C*-55;>7djrU4EX+=pXb$`=wf`TL9kPo`G`aDA%9@VWe`i&dbERyd>_Foj*s9%H)!*;m&_2mYjQ3C)CB;znO3yy(vt^T-MYl zpSURL4|I7FYMurE7SbMXB8XU{H!)Pvz)=XO{z`{u#u_ldrr3v*r`W;|1dPZwEZy^k ztkhXo1Y>Jsn2ZW0T2Tz@C9T_vWzD#WPz>sf`_sXL|9Tz=6sP@6K> zSD8T>-elzbuUFRe_w%A3ubeg$f`W3FB)!;rc9=_uzi0CQen>s$Wtq-4-n4x~r*Dr~tZ-u$# z&2fQk=C~sWFpl$hR?5iMa0fHsO%zda;oMAxhIt5lMrdRfxr9^^XKU^Y#33x_>B8&1 zN;HH4`$rpi0Uyg>6YUE1FYgBWNsQLZF*@hz*gu`_dT;1YY8>h>E^;16-S~*SUR>0r zy)azK%Hr9Wn&|rm!|7iC&v$@gRcR7u{iGJmhh6=-tni~S^;A*-*0~UtL2j>Pq{Ils zO|fe-8C~Aihy3FM5~|%abE^JMjmn*Mcx%{HEG5BTpK}}zsP|{D%au?+9*=ULfaIHC z+X8`(g=3G_uC0O8%C3f*`n~LQ?qKX~Ef0%!^CN+!+)*7dA-v@aTYd^5jgMF*F2uMtK9 zI^W3041C3ChRoju`fTw})gOmQ2z*!D*-ET@ArDR|1RFOy(Ki!Vo z46Wn=0AD$Lqqq1Ee*)_hHoerVKVk^#1jjgtX>rRuxhzGWL;C8o4E2vtnfQI%H~lnG zM0)na$FJ<+_X{d&12vmAI*CtgYYeU3+~T_sR3q}<*Gs$#nB=G@>(;N($exfYKPKB} z3eH#V;pU8AbI|zUMux(HWg`SyTs+nG#=VIpN&HA5B$g%HZEifi5S_{F%TW3vm|0&7 z1(ebz5VW6BOCI?r+?c7|MW7N|MAI zyTLPmsxKz%x9@Lv>!;g=8Do!wq41P*!CHQo&wuyoH17!nTR%5?K?VvRo~9MXd82TDK9wk3u)J=dqqyoW+fMh%^44~S(Au-zU9At?_itaGmp)r zguc)I;zX;ixpcLOcf$!N325RaExop&gaXK&fQkoeWFC#v+V*x`OR;+u`x9*It{Inp z&Pxhn;DLwO$9~!#cptVtl!D0UJLnb*ylTR z|3yu)QEV9lL~@y|56{$t*qP7hxVx8FIYAf0%PxD@Ea6Wn)4xR9IRWig;bt#ac}7oz z)`pM!nSO)!?{(>x8}Z~1b&&uPJb;gL<6`Km9^D#NrR;~+V(W;pH!mfl^tTf+X+QQoJje$+{AkQ z`tQVZQP+*W&W-y_7F*ND5(nx-zM^`FEUkW5BaC}8c>ODw*v7Usz8)QYoWwg<+D=1Tz(fea@kb?(E8-ax8O2?WT3c5&jHBRJosEJ>6hVG#$k}o_y z4o(tE^f?BlGXHz?749rk=Z4Z7RaGWVn=xWN(L;4za{1Fsw<^=PXk`)@fCD^}jTtaY z(d~)X7lccWlfDR5xw#w1u$!M#C#Sf*LPL5gy>q}X8D^d~@_yRSZ9hUp%javoBWlo` zN5a5m>GEYOOCS~VHycwvU&#W1R|5ImeCf<`E8}@Ba%wip813*hEKFV0G?AZ_ki@@A z$gGk5Iu7TZmn+I=Xe)~h(o}Tn=(`tE74YFDvWv9*L6{QmAP83kX@^k8<&>cQ+stIz zSHl^)p@>@tur_p6kE2bdN{a8ZuYNs}ovs5=2+&EksGhpRVh}I>-H6;pOPB7T2q1qy zE&}|8fjR%#lfnNa7Tz2Y=MU9+Zzkp2o~U^$hD}6Fv6PA zx=Ews9LfVRx;F`eX%kpaQ^*1X#c~vU&O8TKllYFXZ7N92`GC)K&vlpU#Mp9B0BR@F zJ6F@&Lb#5HJ^o}Argc4iMP8FooPC@+{+zZz4v9<(TGCKvRe0S({hu& zF2|8ET{}KZXh;>HDcSyqPI3I8FELxMMwUTe=kcvt-|$@I{Sz8msG+Fpa`^!wCC`i3 z38hkRv#7WkXk}?Cq8-OFLI4=3IlDY0?zE(Ao1RB8=8S66#M4`4LG1XqYX9Z1 zOj4;O)j|7P5g|`RLk50AdNtR)?|bd>8?2o#Zo6$i=(&Ma9jpU(dC4mv-B-cju50Q; z*kaieJM0}(5O%V``jlP~htYxaMaB)g&Hc@C$-ISn3!KsY26EsdUv@#RQi!M{@@yUq zr{I~0sctW*pv}N7_d*Ny?3BX-gb$;Joaegy-D(oZqm6&qY-|J}6ocS-~ zN;8?Lp`HlDMEK>x@*z)<0{W{Wr&TmPyiQpz&m@T`0fwTq_O16ks0&zf05_F07Ywp(D1gp3;W`U-8>Y z79N1i{6Cd1kp^|(y|UJvhhR< zZd2Acg7GR^#8DWQ$vriI^?~Mjv@_LmhoJ4mVr-elQa!;6Tk@|sWM}Gnuh%t-%UjZ# zyEJw1pB#73DO9cZn5^>jd?AfP-gt8IdUE8Ry1wVT&eV=7<*5Z+bO0#%xeUaj2!|y! zwc+<^-~1rl0c|)+iqxAaodcQpw&fVE$Kp9IGM`|coOKZ=>szHpaIi(Q6jUy`PLIM1 z`%4#S3v~AJBXkHG28KM2E;PupyMsSQd|VxBz0V?FuqW_(by=q!BrdTi5t^{I9blpV zN2=BsKwNLfA2LkV6}&o!6cInRQw)6i{5O|mK%2O{Ii~_IW#@}}@|fEz0(OGXps#@f zPQ@&zf>wcRU&GY9NWAs1CrTQ~FG8LWF$gB#GSOz@cfV8rP?#62?~)3h8PinJPB4-g z{t>H+Eh#R4J>>QoM}dbHu-38-fuYY+F}z^k;}t|HS&Dz-F$?G!mN~9ess>+w%dxRNej7-AeQu#5Zt| z(78MS`78=nuV~tZkdlRmQ15p-I&GVt@o`{cD4T7S9#&dJF&aF3d+gvT{ugL8d=6#&Xkc5bU0ogn;feXYgs z7GiLjYMWe26R}&&pCBs;KE?5Hn21;D(gv+{-I$KZ6SHl1q$!4B7PTvd-!F~7K+|)1 z{hHbtwoLeB1(fCY*juApBGs^s^oki5%k2aIcUj`IYmG68KV%95$ACV3wpDfwxWU2+!g^i)$sn8`W3;7&}4OD zAh-ju4`r^(0DyhRj@xD#M1Y^t_9Im+?Z>NUe#BcTh7`dY%E8JJB}>QBkE3;AL(Y<0 zNvnlAygfOor&|x!5a07rB`JVI)v$Sn9W{@X8bBX~2as@|QYVupQzp_T4YRg&3|h2_ zHKo{TO`8)c0h_2sAw9|&{;=8>QogjVP*YAs|q_i~=-C z+yO(XABui}GX|){{T(E9rP}%dc`PMk~X6!33KAT3Pjp z6fnn8j)IWS#0eaB?b1Qm-yF!{^C)Bwh}Ba}wfn(;Q^Y6lV;P%ROOt|}<&J$>z4nu# ztP~7g|D-4Ym+#x!Sqt8?bk^&EaXE zAKUd@*78VCMeO3Pv;B8I8)_n>?WxYt2jS+yAz6u3mdlDa#9-`#hl)ZHz@BT>ewj*RMAaP)G=!?9I8!`vVZ=};&75OMLHIL3OXvt zY56Ye(v^8C^0N+i5fqaARZRAZ{Fz7c01J{mZW4D!+dB3Pfg*t|`OE^qmAT3Wqd;Kv zaCC6KkP((!NHp{7(XE!9M+pyBvq`CMAa-}(k{dhmc-@03R#YcDStp_)0HnQLC9I6T zu$}5Unh-@wp#T$4=UrlU#Z@HO(8kj%)MB5fbW>*-i1i!3zx+SN!UeoH=ab{0TC$Gt zb%(}jq18J$1_cmIH10<4=PKI21F=OX?$lu#TEZ|?LU}|NaUKDLx9ZsPzJl0LRliMv z`|eIwL$xU$=gF88g*AtC(<@~qVHb6}!hGL$vpg&jlBPhTju3e{%!l&At-K^+1V|4^ zh6D2Oe=>k!z46_Lgy-T#SzcKfwkX%*-w;RCK0| zQ?55!Cp@Pw4uZASm8{{8p$Y(Uy1Bf@QG|uW9dF1&jVf`%IrZ6Bpx_HuA`dhg&Bl=k zb<+!rQM*#{$AnM$xvUq#@`=WGyY$#52=+%*R@F2VQ35cw{KSgzosWk2bIk=4A}-o? z#RnMUD{8L}t!f0lHsymlWdbjE)9E1AjHi)nLl$IEm_Z-o@)-H45QzNz?0U_Hea+I^ zS@?|L+g9LLlFbUh!gw8;3F{p?chZ?-wPtgm5JBvl%oO)_&7(RJ?xA%^J|07R zg+&Ni-TOg|{CU=IiBb?i53VVBN}?uIvtPKWHFy_(CnZRmWqGnI-xmGL9ty7k3&2N5p4o+=@k*S&HXmKAjak*G(sfH_;)M;W zlfP*ZiP+K`UgBFKJb1GgBne*ai~8UAlT_qcT_ zs~mZCCy&)s>$;GfIr#RD%CBv(tR-z-i&Kr^@p~Y{iagV0SQ!_X`nD`;`Xaa%B{m7O z=oum>2i-}mKZl>~K>yT?$SJ*A&jLVZ^a2K6qG6_y*qF3&<^aPn0~;dsRHs5iCief2 zGjQW`i<$K+12d+SHm7oY1iem}Nm1Tuecm3y`D&7zj&l_zM!wR2_;GAP2}Cci19Vb& z?#)ER;v{g#=uxTd&ZLETJTB}&N-*cMH*HfL;KF5s1AX|Z-}ZL=OE@Zxz9v%b_@u=? zHc6`vQ`NG0I&syCsLIG@L<5AALNXB)b=`=#)rgdUSSfk?Hxlr`(0sWg4<97apS-5mwB&CepfcDu2V_vgyP@Tss6c~0&E_9cPr zGE(J6vc)<`*wj;p{peu2f6Y-;N3A*GP%0erl!d|tn=v;Eze-vOwf_xl^O4#bMKd8f zXXKMJ>3>P*3g^j13rKnihn?Bzv^{YBX|x0BYtA5ZYa5R*zG@X_A=B!SEfwM8oBfIc zw@i*-+Lg!{oW5;4Zc>;nqjQT%rk@tFG!qrk)&co%y#&I(Y7Az;R(yXoq>V z&p_Hp3WsXx1{0HZ;!+J<(TtYm6Hg~e*L2`72m36(wOVlxo#(vt@mSo_B53@{AId_F z`K9_BDOXbZ<%Z18&<_LZqz`!xCG0=|ndoMq*UA*yGq^C18-wTHzl1eWrGJzA@vR5< zKM{s+2zkvdFrvsJMj@N|HKs5pM=-Wu;C&+eRca|~T@bz#?mTR%yr(4iHO|n(4I!Oa zR*9t;N##U(Ub6DGlua+`>RB;^|pDdB9ZwW^T|M1G8Ki&5IF_Y|K;ADB} zVkw84;xnwZ`ye9(n}iPzQ`r_bhH-o&i9{#SqqeDUQw$GKKkX|jBK0R}5M|^@s^S0F z1tl07_1q;wpmB=M-OxI{6}@}^l=n@*a}Ld4hH1EBU@a@R3)oH@nytM011puhzS|y& z;CwfW%Im8*v`~|^S1gDS%E(jH|0VhxnY6j zXais%-*&-wI4bDPhp4AVn-cOGe~-tjN?_=5NqR*<|7>sNA}VAU9-3WUuipFl<-dv8 zQO?CA!At=thJ-PT;gjjV!xSVve;FYW)AatqEYeasDoskE&F0n4>l7Z@s2x=-$%Lw+ zu^q~2N+~Ej`x+9QDI47D>^FYhup7uSzuebr%^nKU4fGybZPw^q8TYMfUCo^K^Um`7 z&W!h(989M2eplzg*4cH=^dzpS25NtyUJbi}OPLBmYNJ0(O9uxnwxO~K;{Y7_^ni0V zQ)xz2EEvhB*)7re;>S1vctiVp(d55UX3+#5_kZE@s?Y7X7Q5d3G3KZEtJhbq8$=;f z(po-;;R72Csp;2uWtcPfONxL?32?R21zwlEIdAjV&<0*vyRAz5AdhOqQ;~iurpKqv zBAb#bhdK*a(ak#L@t}kVpxeM#Yp5?I9#D?0lXFm|M#V&A%57Izf#yD=1Lj};VKGZp z5WGWtQL?W7%O2_cl~A9-wuB~?=HraR19`8l)KT0-WJw(PrN2goR55-#^U=LZCclj& zr^q*?7`KOOmCMqk<jtV$=QRBL!oS&(^ zfTCWRQ}9i-!2IkV?8Q-lhO-=)!x?C5mmAr?g-JH(EwgMMR{%dFOM8Ft&8zqkXh#c( zI(v9YtQFeN)9}Ku^oGuUV_~Crp|Lw^Z8gnKG3YS)(WAtM4Ub6Vd)Eo+LrHq|*}goM z;BXAdXCWh{mPmz*lN$%nX0oMWz99g}62Vwa(jv&_9IMHu*!bw~iMBWLWcV^cE_3C_ z=*w73uDw^R{Uo}t6M{>ef}^Rm8S)kh=$;UL$qhEf`nH-)R<>Q84LI5tAy)B5o9TiB zXBo6WbVz!WmUXkGqm+Hoim##L2_klwp-=v5IMDTuam?y^BF50qoWe2nsRp+TzWnGt zu+JL;)wKw|LGM4cbukk&bZJ=yD6o5TVJ$uE&Bx|t99IwCci`oIP=E2s<(YD1z2woO zd5RunI5X?A6!DojRf{jdT8x$&DS7)LR`bN4zP3}w*o#+e2(~G(zOrnU{&1vB`cT{@ zx_3f`!qqv2HI0$TC@DQV(^9&v`l$L4VgnQU1ej~<<0ta)HC61jV9nO+s*X3Xc6mp< z626Y9T;Ej(CDUUVr3njvfIWAQ2K=k?)CTR6hoPz)T)*xYRlJ*G*KdAR-r@o!&3UG?3J*Y*(xYoslf?UovT~+ zpdt4L*w!ohTl{J(S&hs&|4c$gEGLR8m>XE8tAt2F*!ZD5Ov%W^C?9(2nMaZ))X#DF4d# zsJRdl14)ATQ8{(rV^}J(eAaP0nmQV$q+cIe)4pb(s8m9!LxX_NywATx=PYujua7hW zXPQ}1m%Vx3PIHvpPaT@3dzx-NwrGV1i!LTFpY_Fi`w| z7%25ATkOFlkG1Q(#B5uIsCPpW<_rLWIXia}4*?Fl9*_X+XX(&LkH{JsWXJq>A8+G| zNh94JUr-eWf(?m>JLmLM%u4(ZItW$NOge6=T=k2TBke#Bwbh6m1VW zW?FFQ_l&gT>F`^=6tE|qkfDE?HnLzl@z$vh2cqi^IHFv@Dkz6qOx|^j^<>#P)E2*X<@fCX-Ku2x>$xS5#9yJw=pUfC+ zeTw;Ze%%tQauNRx^oK+dVN-lLTe(I1HTOt<;utrR$)Q18BqEiFMmuP6GLumecC`vE z0RNz#o#?FAYJ*?WKYl`aL!HB?{Cl_TJdzzg&N8s1<=+xfWCVrA^%}x=@B(XYjq_W5 zek2GPF?4}y$|G)O~~u zWNWA_(MaR9XD7ONtOrRmL0NDh=NH>o&vU`<0&ro27$ys3W4-1t= zfc@lBQ5R>LZsl)v!yg>ZVYA|m*D!5cXC3h=blAb44EB*WruvgaU2%&hrvZD2-)}^j&9+Wb6jS`ZRn4B5-os)D)i>Ls0U{>2v~z3+?y;j-ui;JixI+=Ye5*aGM)5cP<){ zs(rd^&)L`kf!s6V%a>=NpPuXgo4k+g@C%(x`xg)WPw;0ha#6R?%hOgh%WaN!@5@IZ zZd=xgp(>2-H98ZpgrEY8al`^rHVSKJcsd4ctaQHIhVApIVS#N5UFcNF3h_CyrcXI8 zLNM3C&mUPH6UQ&oYgaqeXhZ|evDK7_)Wg3dR^v=s6n%IzQP^ey`$C4mDyOwoYfmHB zZX4ZgmwwOUie5z``{}LGtzW25`H%Q|L}j|&OyBc%3- zLq|*!-f3kujQAbs4K?o3J5_We6{&4&-_%~cHYx8FfEoZq+~0lqk`0gzSYZXq*OofE z?^?g}PNvXj`Cv^+r1KD9Lj2CX>ai;pdNd?{X!-VoWkH0U9YjlDoZE~|g#(Qc`3hIl z`05T?<}5Nv6Cv-tPz8&lvOVQ|afoR~d^|M7_0?uQB(X*#`(WyX+gDYS&B`>OYnnoW zCweJD1r;-nmHX61k8Lih?ecZEjT1gQGLYiL2%Ii9#oV45`rCU%$_!^j8TN_#L8fBc z*!B@zC}4YxmDd>ha%HV(*YH<5N^G=s)1}@2?VML2!pOzWywL8K-J5)lbmL6^#A3&3 zX?3Ja1wTsl<;Qcj$3a!gFexPSq_ zjijmegQyiBkf)=B`IBRj zw$lp3Km+O}^Aea8Az7q6NIYGpMgmXb!K;MW_}W=`nADU3d7u6*!FErz${I|Jff%eFVZ^e!qdK z22$VPK+ByCyG?B@Ap^$4zZL>=(TrX`Fe!^N)v*f`$$};hkfY@S{ijF*s&S+aE6g%L_r>E|Sa!R*a<}Psp&`o|Ulhrop&J9C-S0gdG+IGBg+M4aq#Y|E zv_0MVFelvNOnzWR%1)l!O2AJ#PwL;hnI}NWsaW50Z*N_g_vIJ(Fp$xd*X4!)Qf&Q@ zU0{24A?c?-)JDc$!CrF!Yi=#m9ZjdpGubyZZV`3y(r~ln9QTQh9zB=cbtCp;X{OTo zm3^S_i&{4EN-uqhnm>5xWB0LqXCqS36yOZHuIT_n)T1$M2v3`IfIlX{F}qvx`^d4~ znYz|Ne2IoKwYphFZ)xI!^?%tjJg7$s{PH8t?$0@UQj?4KYv09t7Cp7)C&UVA>quPo z2|T$>+?M`WazRF5?V&_~Rr+rJ(pG>Kihzr(knf1^d2#Dm_L~{~d=kwbYr9Pb@SS-o z{-Ot&i=bl{QaY3J&au>wFHjkkeLFFjGyeo4n3li|mZ<>NA{LO(?ZGyvrzpBWNYuK& z;ykZKgv~b}$wXQIV^V)+nyDv3DhV-fjDxnb7c7RrjEIc6z6ZTIY^KpK_0ws&rr^%w z7Mn%z1nu9#8o;RLLLF1+0PToLCU9+fdUgtJ>ES2T^dyy5Mzc#iDkbttWv|`~NI%>5 z^d5Y2gQEv?F?z?3s)HwLMjY`Oc^&)uV-{~&^3fpmv# z<2Vq|e)c7nDc*H;k^vn~iaCpXy1sr51FOc!Plr}3Y{kcA2_#R7bV8qsZe|xmxN|E~ z_Nzz*_5RH-C1!-`MTT-rM2Vu#z(v2A=m4I>D4$_$ksPB6c5rvC)Xd$$3RaSueUJX^ zepx_n@ahJu>uGIDK&8zS#sh6C6Xf+;`qRNtwC>E7g2w+-E4kn4Y%!t>e6^LT)%qlw$dLxcqt zLnB4>Fg7S2Z6<^$p!Vjik?(FoBO5F*d=-Ndg(&X!E|0_ibRnPe7(GSkI?_1&;@g^> z2hI27zYM~T&c2+=ksz4h_e_QQwdKhiYS)Lpun^7H%R7n zE8-Lk)oLAzgC^(n;zg@|yGPzG6P3CWk-uD1kapdPX#o+Mm93TvKk&2c@5Mf#M;bX) z-?zj0Ru&Ze4s1d*eMkKdJp>^T692`~dv%(uPosW+0rp-MOKW(+2}g&g8(OGKz5FWe zH-UyS;2U&2v11GtXvT0LEA%$HQ}BjxUx%PpNIjCzQc>-HpODXDQ-~2n|97hp*!0hH zsO|}(4+ECri}37n+Z$MKf)+OkN6&1N-(qy%#gBrJVU(F|+vR5}eG1Q}Q>oef!ODYM z+gRga>2$|e&eoB)Tc%r%E1mX{W`ED~Aw@w84*nqN&f2mt4lg~=FNhy>sn~5opY2Q; zmeP03yNR1?s*%L2EX2#e1pWGn=UN`$;(?R=+c`D=(nFmNp!IBwrKv9*zk>mSoZf-B z_uMwr?0QbN>gBkaxiyP$A|;)p$Mbiv@YC6f%slgf-o@J9)knd365Datf1@X&%uc18 zv18qQwKCAwl!2B$i~2l6oI4#${@fw5;n=*L=zTv&H8dI>E>!?1o23)YW$cLt9$F!8 zP@*;!Y~WDDJrA(=V(>tbG$6aa*s#P6f&CL782+sHy4t+8{?Aoofz7meTde3RoaA=Q zyS=aTiQ5iuJ`G>3y!+@<>M%Qj57*I*Tai{LP|ZG5Kj!IX8Z2U6X14)ro1TkJ9cWho z%ql^FDP~6|yu`Ti`8-YX`f%N(c4Z%9!j->Oh(ma?`&3JEW|D=?^w_}cR`yoPAh6OOO`J;bL4dN=#xK*v*xMg)y9MvP&ARx z5+>zA!JIqgI5-dihJndgbCtzS+8(tJCB*Gl6x$)XPc&I0sJ~Jq zA3Z?#7=kGfgU|PM8Gn?w3Uki_mI{4UaYwEp2VdG9C%3O7xJ}C=lry`QMvO39#C4Rh zWkcU59&0I|+*GChND%S6!}NVbqbB6F+pi;70{tKQ)sY^25Zufm=9*0kv5DHrq`+2snBEZkF zoc%J#qVMFHrU>lm#gHUHzy`fQGEQf$%md>|`Kj02;``=+suiJk1{>a|KHkeHwXoSk zhR0+Dk@{Q0H$->`hc1E|fVX3lLK5{kROD6f<@U!!ZtN|Oq{@@dYzjdc)@`7*_;}D*HWC^5d~~1XN^89TKe-i5I)< z8($|NQG)p!@ZimIeIJ2nV)5thBjjW^C}7bjWS)i7>jSGmH0U>A6rZiGhToO3Q?Z@{ zR&@0YD3-b9L}Bl#y&t(&JneJ*{&@XM4oNhUo(bV&sg`1HWgXl8_DW>O$;c}CyL8`14tR-i17i){FEZT@jX zQ^9vr(}KyCy7E8NwkwRmPq%8g+aG=~tlX&lQGb_&5MSo_A_6y1ZF8KCW$6dH=u{p7 z?hIH?MCCx-tK)hpw45H`8~W|NVv3LmAeH7+y>Vb;xgHwa7W87vHFZ%Bhj=}&74m36 zXkUpuvGc#OU;pa&y!iU!mEYx|!zGesWc>I#2|d;j07dbM zyDqJ1MlL4)uHGcL?RNZKIxgJL5{tUgJrP~6s)OA8h&W+|U}^iMQSQ>npA7cLotlcK zbxxuJ|NN=gc<*vY{WoD)UejO#45n)nZ2M`?&QvH2Mm{4$lm$SkebtN>FVZkQiL#i> zKsx&AV=XO#>nXXUM=#5<)T*gkm>F?QQf1%a?^epn*3~Mr5|;E};cUX&_#|w!Gu;~h zt)4u@_$OMCI12FMob_?WiQg9$D$er_xFkSG?!tby!br ziF&ax?Xs*QxNAPq{f;_b8YJP=)cy#wS%$jFjOfFr>j2~V(oeorDM+g27D6>h41|A^ z2v>*c-=2Sqo&?DZMZ%R8tV(W)6kO}9;%2Vz(q8g!ob0c-`%OMO7Dx0t^n5wtQUb+o zRec1cpUZ?g^{^XF+|UEAW?NcW%_K}rl-z02A5zpF_u0&1?xOp><##V!Qz7nuBs748 zQ%jPKQTpgzsHdD?0uGD)NB#lz;$MVtkY^n`6@r5@sOQ;$JdKw6Ew{P5#di?#im})E zpOHOub$DLl{+cm+F1sdI1D zIVpB1K7Fl=Twv zlAtSeWql_mCp5W%SHM5y%k1)LUbsyM_7*}$;z-Hls+igzm4|X9HQM&t(#xlE(wkvs zcOD9~6!SV<=J@uQU=%IyMFD_poaJhxtnG2w)b@7YZLt3d?Zd1R zBf+X7^7DBvrVEk+KJKQ`Uj_eD8LK>DBh?JO2ID{cz0}x^=xI`JWlTz0J}rJ}UCDT~ z>}jJ$4a4Z00@6l{Z@ZZ6?nTYU#>sRt`=%e!01KmU#y6_PHxHtu6FgW0w#mP=rVV(9 zODpu;lPoW!{I~%dyx4kO;m`lkrykdsb`;fDyM4PYWTgY)uxXM_9e=a)1!W*5yp(L7 zwXI>I;ZcCsre~#AQpYoKE&XBJL4E+QGB^9!qUAl+?UlXn{LW^=u1lLB&fu9(g&9{5 zxG$;8OSwrhvEvM5wiy3nxm0A=&?9wGbIY&a_o}u~7t`XdfJ8XUa19gEcK$M1}=WLsZllZCltWVyYi9MjB| zy5|^qb0o`3p6)M8FX6uvLasR6#UJ%sp&_z8Ntc;#^oGE0)5NNLlGLGlaU4VS(_^kR zD6hXzdgPPlXy^BKhp0nv7P#+F_ejUFDyU{?Vz%Qs!bQ{Zib~6reK_oTlP@=N+u66+ zHiCBMPsChcdSO=vA5fq=n>5L!@Rzz}E)LFMn7#Vh3a?Gq9*StR!$9Ve*Q=*EI9y*- z4_q^$SiF|rdDUtq7?SopT>t=glWVgZt?*=6Sy-TEU3}bgczm>5LfzbD%wOfXjY;O% z(rBhXnq)OGr-b}B9Y|<_?VFzs>$x)l2ZCEUA>W=>76)rpO6EDl6a^M@C-(#Mml59* z)9T!3lCJQ2P(A{oylw6jdpElkuW5b+=xE1D+l0S3J_SbB0mBbdJ6jL_K}0QQsLuE) zdCTo3-oo0Tl1@ke&Me;32D_k_{{`Ru#}yKd=*Q%}O&@iY$-y37(I<{Q0_|N!=ux6C z1IpyhGmSx*1J-X>cJHvtq;%Ko0^`Cu?_9dota}`+gN|!9GxSzZIyyoovR`Q!@vLo* zWmZpYxifO^evG&4cS3!cy8xZBcDU$4RR ztU!K2rGRm<9VMmaFkTeBW}J<;qnZv2GL48BQSkF7iif)3 zC&Sgh8&=-QmmS$6WecRysds&u{w`YWFp-i}UA(lV9nTexPG{K&lA_(DC%kc^uFXb? zn&dphP*PP{_w4k0+)bmk7`%)oGe9=YFuYxIvT~=%!_H-N+!NfMIjZBCMDo zr@3g{;Jz?J^>>%Ug@l5qzp>Wd>iQmhO+rqwfUfD9PD3B;a=Q(ZygVFuep|)2-kHLg@qBlO-3Gt122{nwjK}zZ*t>$y>|VT?*BZ zyt@6dI97zt0JC<3u z95m_xvz8zA%gAJ^P0KF-W8|ic4EsF%Z2X^)@2OUQO;1iZNWd6w|8XRXUys(iA`Mdh z`p1D*Y^WMXTqjpKThliugkSRjx|HT*Z4`*Kj{rs~=dPz8wJy63BwqK}s(pzBw!j~$ zxEibam2uBf@_b4~#l%@_B}IypKoQOIn;D;Su84DXIS%WF{OKu3rM~BM=YRSl`ESYO zK7+mTPaXQn9rUrss5{^w8iFOw04rd|`qyod;o&nZ~DKyRMJC=_AyWB@| zV^|VbUl2|>3@OpNeevO~kq+qByj~*p`9Us93Cb@5G|~boion|#z-Ln2vc=!Wt}R|r zt2a9*fnm*^IQ-)!S^3Ze*}a_szF*Ztvu;qSa9NQ3$)h<#+5MKh(t%&?MeZpYfw!YR z?+D}-Yy5Al1LAmxqg!A z=cmaNXLv3g(rYq!nkOlK_9t(UW{{UbZs#{U?TTkMnus+EEs|()!uklRmGW(yc+&uB zf8G&MX4SO+DILTQEI+zanI0#8+!=warcn{!1LRLrEb82Qs5ok6&xEtsH8+<~TmHm? zQTDak?Cm%baF;>fXdEiTdH)Zoz8vy@^WpS=^5Lbe{aH9I_P)G$UEK2NGZ|7@`aTBW zu^u#-yL8{F& zctv!{_8_J2`zjK?!YTyT?t$g7<>m$v#)sl1K-~4c}tAeHBf!7j;&DFVcfZmD>lN*G3l_(#g&i ztk!yHYi?Z>K70%sFhLw$20~DKkLla+|5DWo?md^{p!rbSsI4U+$T>y>1V7W#=;mFH zRvgq(C@PXAUSoJ6+BF3n>!wa80UL|f>931355jT7KDn#yx+_ud|4v;%*R#I9xEdL7 zdGqG1jyj#aT%7=sX=`Q#HA}0(0Q5XZyN;C-8pi3cln9Dae6G06j zGqKhmAMd^K2s*GKQ+5ZvU{&!T?-B-D0YRHYtENEA;NjB&77^_NJ`{t1vU#$u!0pLP z7k_XdPI1#=7s^o66SJ*|aJg7p2vFJc1Y@HnE4~mZKWc8kQkYb%GbNOWq!ym0_=}$~ zP}kemPX#n8FX4#S3V238au-s<^Z?6E9ZQ~H6$Bmeq)znX&V54r!A8t+xE zCJzm`zT<3=i&b~M*e^sr2Y&d$a$*8Za);~k_U8f^fZDpre#MjVaB=NrTe9SdlBG0s zoDyM*1PM{g4_%tbr*!ggD+zKi*jZRByHgleZQGcxzGzCJ70xPt_+a0?ALLZ`TNJ0{ zVox2Z^jATdT(#}Toab6i@VL#S32*IKVx+9WcPhlnGW)G>RP=0_n zWk{~*d)^0a^&JV(N(_@8e7lD~Lbz5*9qe8p*IFD^{o!gqGT=cg6?Z>K)HLI+IDUHr z5-E>Y-cPg8I6hM@WX(e+4V&=TJN)|lEt4dg>FQ6c&7w^329sQiDiY%g6R--Tk{gL-j@_ z8b=~Iea$u#|Jf5PzivRqI&w-_?twzd=SkHwc5d*)@+b*=Q0Dp4Ol0udd7+vrWIwJo zn``Hvo=XGpY*9#{$6YWU)~(ooMAwTKGA}AzNRZyjIn3%rbA_ev&`(SqfQ2qdM9Ggm zXZ`DJgeP4p5)S}IO`1_f@1|5t&bvVR-~9SD!Afk-_19L}A&QHMErHr=NJpr=uyK*$ zsAKrq*iv-=6-R$Ven1yNZYmR@|4!EaP`u@6xlHp2h8eG5-KMex4FnL+E>;Uph=EdB zop0V@*334SUEBYuxga?HC-S%anPzoL8yk^}I$2z4D*>YbjG=83;ar*vnjbB>n&zDT^aij?KR@cvp-fMj@Z+IV0W^h3eLC|4b@RXo4r(qS`0lytcXe;8l>*RORs| zoErQ3ET$bI0=zzBKtZZJ(N3;Gc8BpcxXH0n0jSl>?>M%`N0B@Sv?HO8ok3&+|GcGY zDzw#_IQf+}2E7U0C~v8+&#h9SCwdM{0rEnO=F0f-`n`KP-4DYl_XUz_1Ic@a>*HCE);;5H`mYHuBK&?wVotZrGsBIwuH z=iNZ9`e(vG+L);rqkIB8?pG{OZQ!p~wepgP?#(KLUJ8dq#0POHxPzYD<&Fn}u&5!} zQa2QSX_qJ)M37}Qh#7? zWwh~wUQ@O?=}<~AIn8cpYkVPxm^FN=6ny))tWi-R@#Aec*IX~zN?)x{G+%g`7gIzG zBaI!(FU=c%;Do{~t%+0EpAh0E9RKBYTiZqP>98$L-k7u`9f$Oxe;ZUXevZ$klMOI@ zj|b_R)*R=k48C!iaN$G5BdmiJedJ`TzLE2V8oQ-)KsWwF`D{b;JdA3-7A|JUw)Co- zWEo_(qAvnmxKO`~%9;bqUEd{$i`}g5N5YruDB|;xM6sn_y#W)}8O_6s%l`(@e}2f4 z9caaN2ekYv-dd>dQKz7flzVBZb7k-OB?Ro#*x_SJ#)ymm80?N15t4G$*Zsb@3xBy9 z{^v7?-d9-)WZFt|LA)aReTSmDOaL=bn-s{CNJMutm-rUok9N=dJc7)(Fh|fOYRl2P zp-Y8ED_on7W*D5si9ti$MA3XMZ8mWwgy?XZSKI-s2qTd391+wmWO<&aL2V*50 zoi<%Py+z2ZwEn`v;}CE}#TZ#I1C^oM)8jb3H?E?%-mmjAG;Lx4X1>39miDoe?X$D- zp5LQUn`5w3%qkLz9E(iu;w1^JBeS<8FCu4Qi$U z30Wbl7as<}gak;4Vlpbw*VT1tE+dvoY2~;EYC$o;ElzdBrUSmRxA3v_!z!0Rq1?88 zVS(!Zl4#I_wl{&%BQj)DA0o-`2)@0dO+33Q>g)Hb%$z2c3dE!Ea`B&L9O`73Fwa1k zXDyUlyuL&^6T9k{=y~u=8B?Jn@QiGLL6NMVawGBS16eQ3uU?e6KD=}xn8BONf+DsK zB)zvJqY}4#=^02E=-f4G#w~o!`1J zpoy>~PL+{gWwO$gW_@w!#N4}DFNnX zRF3%pF2dCG^x1Sy3~XL=|Dp2v7>o8pMms%W<9Pm*eu#oUDWUPzx7q@thb_&K*74ie zV^^Z3@>zM%J=i|Yf~D&GJrzS8u(#)vJCd4hioqo5vX4jCvmf&^fA9RuvL;eLX{%9X zD+6uhixyDSQX-1)G>r7-!F6AXsQ9+hmtPlYue{of{}Fb9cs^O<>iTq$RVt3|d$}~y z5Q3Ths1I`+(o6-8$Uj8Q2cJp~SdN;VEs_k!7D)YKRe^p+Z4n$CG)*>tGozay)T+T` zjx@@?$%t-UJP!G@s!3AG87Yt5Iqj?D(5*Lptm{mvO#4gQVX zV*#u$R6CM?Nx3np)Gw2!bl*1ArakPH4IL$*8f9DcVES; zyJ7!Z-+fOa1S+H1DBhC6=GB$)H%$qTNj?z(|-LAaVJk?naLqtU;&%VAV--E5N6LGmE zl0l^)Z;;q?LnWE|%ix}#3M#@l^{;dy$rQAXJ59Xz;E8Cv4cCr^wZmSgu!=c>q-XjX z*eh*{wte;lAGVqazxOCaHrHCo?w?+@<3g%N=iVBpo@?st4$AS(pcf~gkp7+ags2}Z zRSIZZB>db65_DdMuOY6eIqD%X93-IDy=Lk;JpsehCe1#;8hnvtdPI6oUOvU&efRrX zuESJS4cUVw*=8^qGXimfXHtGC0`DkUrl6raJUHcmKcbo?N3))EJ%O0&!%2?S*;5~eprzAHMZbgL<=*6D)wb>J z>LYR9H%K}+FL3)e6(_kptA`Ux*J_{5r&%PH8D&6OJvg^Ooe~+AV2RKD&$|YsLo|U9 zV$@W|Xg_h`w$<-6OJn}J6|X@`n;@U68sO=Tv@;<~+iO4Mx8oG|R+95z85aqD#-O5_ zGwx8gVy-%8arrIypt<2(iKE9y=KDfKkbum7ec&ovFuGF%J>4%?$?gp;fygpSroyON5uG&2J zk^jV>LuGy8-WoEo8_1-r4j?`iR?_FZK%<^ByLh?nGZQ_WITRq2Kd868gjgny=QD$f zzx9dzTn{1!?#?NZBj#f?+geU%L&pf2XTQ{;XR4}X?U0H#Dt~>i$Lf>Sk*^Qx3}#dA zI7yGI2#yW4a;g>R1ns2`e=?LEl~5>Z)Y{pkO9 z_vS@8b#4V4oBi2~se{2vE4*u?aT7g)253D+iQ3`DTCp`q49P~+o7W_1Kl?qE@}r|j zF~wDD`Ja#}ZxU@#H>*-LAn)1N%7qVo@C_pf9zBWOR^Jb%7Ukq=_PP{{Bp(kF_44aeUR#SEn-v3ZQ!DFcDY_D?$W5 zP`e3MahiI{*GA6uUjj2O5}|~MVjzf$Lw-LIM;<2{`zjvq`hwvN&v4Vb__VnI)NrBD z8SZhLT=0gJZ$iQ1a^}tBADNC|4qU`V167$PsOrLY9@m!hgI*6yQWP#&mi;t!X3lc+ z2xGu)MbSo!*m^Ca0_70h1T)W&zX4?ayQy}C3cLp%ou0ndx;)oW)_Bt{c^OWBUXNun zPbTQ6JC$6sSa0?``HmzE+r_ke*y!7bsL49#;}?Gn(;p8>fcByc2hksr6gaL4Ij@NZ zE;2)~d)OaXkA-X|Z^7x^v3c<-koL<9ZSLf2Xcg(Fe?j3Z;1~No;9vrEDdE{A#C%yV z!4mY?jWa%vh}&r@sA;Uliq9TqBF|%oNvB|&e!A2OAqJ(lb;nXg(JRX88_5`~OX~os zz$yJ#N;j>Ey)8O)9WoHRf9mG(O8FHr=(J{KWw|rtwFpp1@=XG(crZLk`Jcs9kUGF- zTQ8w-U7J{sO{S{zp#Yj^$YM1SI40(6NaS{TNpg`|0C zjihh8K}vzlL^dXYe;Yc|N-$P3M5Q4#lqpL?RcaaPP&4>{T4D|qqK8#RBocBWF zrboQ*UOBzf7k^TLkRI0LT^@~eAbiX7Vm4ixWj*G zqnHKs2_wD*QlSjs_B0)k^s*^vU#_QONdWC?)O%29FsJ_b-d_|U;65;i=`=FkE~y#) zog-4&D~#9@QIB?sa3tHioE*64h})WABc7hNp0YvWCHLncln#{e{5(3vS3HN56UOdC z(jXObo)=z+q`WVruGN?vNFcqS6&p3TC)OD~=X2hKwl;Ki^}5jLXV(n%9n)-}^0~ne zu&4YNxVgefcIYW`@)qnL7+um*bFBjcr5}^OgqnUlR@cBWplKI(iS~clGtQVV!8tVQ@Xzl3R;BD>~?~)s%o;C5v;|){Dw^kF+zvBbw`Y$ zZZhMf6SizRi#uI@Wwn=LLpRjCc-js*$me7YKY!>pBm+{(x%Kumr&n=r+^LtPU*l(S zX{o#D&6`l4{+ZL}0Na=Q-*ho8z})?E+H%ikb5K@=|9iDR^EIMN#O(#FcGBK){Y-GQ- z(A($Kdo7PZSLOrqia#@)WjYY<6@)({Lp->vbE3e}*Q;SPS8zzGP>(_sSaK#|!A=SrzwDwZc#-;j6DNWYv-}#v?AR&i@C^xk3$^J{)^S3|x-!!1dB1 z6dn0qfzbjJb>-7@aW)f4>x=^qG`k+~lAL)jh;-tRJr%pqST zN%#JGtklQQ)d%c{DKg7ywR;D>{qXgL@K#$3e$ZUi$gIo4aa&U~GAh@I9=VV#CPhBx8}Nv5WCcuRlsXKQYo0 zd2Xnq{mY?skpFwN87kq?WbVhL)RZzIV>+RHGt>fP_LPg9SzKjlBX zMfwwmUx9hL5zbXGp^|FNTepA7o0{j;EhL)G?QUH5xw)kcKH)%BHpk5so*Sajr(;}2 zxo2GruwixhG*vtRhVRMqs6=!lnosJQxp#48)$V1p{zs0phfBn@#qW^>RaAbPK6|6M z09jU=Z@L_MT2XgmIQLAW!*+7uBmRLfIwzESKK`^SDRZxG%eSB1on>o?=K;R|a$ z2a9n00Es_mjun4_vAtK7hP)kO35tA14*8?A6cc zf=WWVOcVrGu_>jC?m-e;7VE+fsH)4b+?1GV8c@T`cP)W@M+ebwJK3CpNIwRg1(!oPy}?TQoc(Guib=|0mP(H-dIecww?DLd&-F8utN zYf!BsdyebPFQkAoGUP{en@xT!h857ayZr?BGet_hb#r?ci;KJv34O89!BJ9VT4sCX zR&$F+r7ig#KsgjG%CuGj%D9H8B@~bgc2&O5OW!Cl6Kf>+vw(kYp*C?Cc9+Yb@ z!|rEfc;m1W;5r-XwXd)L{Kx z-`@H%e8DOz80kD@5Aa??D^o;qTBP`=224h@F(7ncS~bx3I7(iGHMc zB!0)Bmw9r-t#R~J_*%Jd4#o`PUr7@K-$QQ4>*T$g%}@$jbdmn8mI%EXkZz%j;_RWi z@$H_LsZQh8NVtoG6&CV?tLCX$QxzLSVbD%)3(u{g4m=^}ETOEqFPzinV8{cv)C)WN zDXzRu8&&^M&ZoIN^OFO{rIgI!mvnLb1jXuz2ksmPZ2Di?m)MF?u(~JC{)iH z$6_D{E`-_)Y6NUIV?DGmqJSxQc&=#22{8f&rB7W-JS-uQaG-M%BAHL=@xJb=zW0|nHI ziQJ4@g{Z_8uaQ15Q57j6x?|>+X4ELkIk{`+_089~5(RW49+DRbp=)0+?gM zTi&pgR4KFvUQ`%^_n$P3>!1gz+G7|UtsFC+EjF%LrQGOdPkF&5oMB!nX_Co4EFBkf z<7+4^G7^i2;R4G<_sho1&K8o-y~p^7IVHte9FNIo5A3xv%x?EA%)XdeXGW zxQpSH!_D`r%q1AIIX6Upei=HOJ&|g@C6V3?^%zv9_%-vX_Lm|Lxy{bH_aY&i%-0988QKqJluk68?>Z?Olu`ge3_y74t zz{F8cLHc^^iC0xsB|63wyLT1YG8--uIPe;4L$XzSqjT024RKXEYYQ#GU?vXxl}>9= zr-x9YSB&O|^JWjf8k>WU)LHq@XxU%!B%U~Hh9a@s5~V=7LD0t=zY^qigdDXR^n05z zhh@!2iyi0Fc8-11he=BUdVy*dN$0YovPUGFcRvdLLhJp=0g_#6q-)ph-#K~;+^U%+ zR~}MHu6?GFj?37~`Z=LIp5`IeA5quHx_p=}@%&Ti2%K))Og-kA{`u7naZ~w|{+jQc zwYxKfR>CMk@p{cozJ$_ZZn3HUgkoK1A;~d9mTe4t$x+-VF1{L@GuyNHc5<{2)j(Ks zD!V@h&=EXym{U~9%<2}Q@#tY@w1}4LOMEWzD^;Nx+7xYQ_IH|pa)S-}_>i0}Iuof0@lX~a|2^B; zo2PiiWjyKQJqkf^# z=G%q-3YzRSknk^hB*835mbRuH-D)dHo4W0-Az5-Q#b=z{qlpaM#$Ets@XNQNbpmw{ z*G`z?j#TVQsi!;!4vMI*i}bo{%`{1BqWh*aNd0Fa$kaPMa=jV=+T^bx7V-ng%lAqKhPnoZdZnb1ed7{rI zr`{Q_rs#?CC8isHKz{rAOiS#brGHLZM9DnK(}e}2`O`9g_&Rjsz;Rgso0NQcc}eMY zvP}|hXt1?)HD;Mmy+jV}U7vw<=^^Fw=8lp(!OFOlenmnk>Sz`T*V$-H4#&&UsKh#E zi92@$C&*j-Iys$$t9f-O=~aIVRve6@jNxh3;W_j~k+mu2ZU^l6t)X89u1*n3ry)2J zd1f{h<-PAonk8FR=E^QcAQ@;vlB{evhuxzr!2C-+h^x*JhugY_(2fTLv^J}EP~x*s z?nw>hNUd{E9PRI6iprmL@XP+2%dcJ1nRzIKWW%4?wkcx_40<2dh^&Z=kk zn<%oHyOYrzgaI`!Wo#(&K*@KkqGYPh9p5{576m`3(pScyO3D$6^y;vFI^nzW)rY@s>($QK91!Ay0cU`e)+P-=0mGp*y%d6BcU|#(wT+0 zRqJ#kY`ZZK0t7ww_kMW+0YVne@Rzqn(cInHarw3JX;Jd*;Ts$oxew-LMW^KLBGKW2 zW9Va?xfSc-LJw-_#C&;rq&u6KCrg1%}8Lvc$ejNB6l22p!ZzA5B%Y zI|6?knb8CJ0rT~}NkIr34FP*MFNU}E8C%0;tc?^esK5$+4$$vLXD*%RH9OkCFnLJ) zI+Cyt{e>`-fOt2|Q3dLIC8%vUo9ZM5Ol0S5!b`$;j+*r9zlHvLYW-Qe>-kx8H$s1n zjs?xg&fvD^2%|)6hkodb0H5u(?~%!9i?M@uuHA`|LHHJcXwEGFv>3u4tYNNIkp>7T z%C19pnv!^bfe@s@#8T=bjV%K@#$?_29|yPQ`T2e?VTv?9W^5liyWC;6 zD_eCz7(4FvK^&K)+H$-a^}=FARlAG!&u<^IlTVV?@m>^cothINS4* zhxD!Fzh?#^le~v+0FrJN9syHLt*foLUE*Bs+gHt)m9!Gsx#ll6jQ8>xPMSF%>e22| zl_+ruS@SWLnu>>~3y=}Ny4%9v?yGgKk5o{uYuG{!&TKOgW0<`hrNMo!)3?^eern!`{~#;<98khGDrjft~$+os>c1OgJJRW192h> z8Mo76lQScf)l#UG+TTwg0qPFSbdCK3=>_y0}JfhN*%Mp3U#_&B^<0 zwA#&KtUQRj(bvo{5LsE-7@O9>JfFiA-4;%uyyzWZ&3@Dj4geFXd5zZXa}=-9H7t-Z zz{R9I*QWyHe@_W*Zx8yNp_&xzVpb{|cS_GS>&hmFGBkhW_ROSA76qByT`r8HSKDs4 z)@48{je71qnVW8&o>Oldv*HI1FP}Hiwsj-)=#Dl>q>_PT({nV8cnkBnf9BPk800vm z33mKT1clv15%gjBA{+ddbB9JsIHgbi*;ihx{GW$HPN*ECSb?Ynj)SLOBo&Fy(f2Cv z=>14J@Rc4Jx8vTa^fR3xE|<#V(YjWA34_vk644e0BjCnHWs*uQ8>Sn5v|F#gMY3L| zxNxL#hpAkg>eKG#H_{5#5kvr-z{`A6ne%YQ<-Nu~tFniiW~l}?l;NR`gDNKtTL$A_ z!{;bJ!%bjjelNYpw_e(WB5ueHykZ14)&wOc3C5=5ErWU|R?76d!MzZLfUowa$EWiq zkB`2gHqTGp%kf2{)6pgoeqK)|%M)-H$|+u!ps?sYIp6<-eMZ~aXEuqs6JHj@eC>Aooes9~6LfEob$i<;i~8R-ot+oF zj)iTk>ygQvs&Hir7&t)mSR|$h)-?oHF$KxdXtdjyf?Y(&Pk5n@ed!(Kumdt9+>*E= zaf=GRzy{l4HYDV4y*{ML$fMgrpI$nfpy@S^7>e>d_#h9Kqm?s=rKe7i`*2FiQk{MC zJI-B#0#*kDt0JKmmBqg3Z4Y8A(OCKVQQdO?Dd(AOcF|aA%_EPpm2istPzu=W)!5b; zV*Q4`A0wi`T`xX*L#>m#YRr`8A!k)6{Tm0jm4>UIwZ)u1{yZAdc=oDiwl5ow56B41 zxE0O(OuQg;_saOFH$h0dU)%d|-J)sHnK=BcGUm&75sQbyV}!UnOnP6G`ltk!H+T1| zW*J!B`EF8qh~I9{YjLZ(w8nI_4?vu9r(N5j6oEklF{VTv5{E;GgnZBdrsUjT)nFo> z(f`7wLS-1S-YTu_&i>3G46=2X)S;^{Pw@FA7OtwnfC`~Aqn#mA*+E}eAf(n4g+cR* zF_vc?9Ra^L#yY64C&A4osd|Yjd~TU+JF2v;5`w>0kZs$ zvkb{65|vsn2`5uhANhwdn3KUit^QMs!;ReF)~75di{+<+VIY-(7AgXu6Hx^I>6}#w zvw)rkVaq?D=ruuWW`?-matb|@y}ZJPvKgJ( zY4X|h-AvV?9336o`URr&HW*bYgM#4UX{>5bUH&(K%4?@joIg5{P?X!7YL84V!p z1C_*{W5u?VbZ4y%m(TB`+|9-L7L1NS(e6Rp_j!fnO&?vpV4pfYaw%DM=cM$@h>)CZ zDXNPFx{{Y58kP8}qxIyeu`BalWx-kQO@^8lMD}Zd5v1ju6#`>;z}JB#X`FsS>=Zra zxslKd0&z)#ebL(T0zzbgwCB`&S?ou**guz^t4`fOm=cr1Mb2Hwvb2foJSrK$6FwDw zve#=2$bF@ki@A#Pb=Qw~Eo0}TG0Y8}L=PB#433H1+!PD!8AgqUOQB6*%(`Zz3sz=T z>B&Wk#m5%ixaKTQvNgvF`f!zZDXW^iV$MCWl34+%mHE}0lomQ*^EqtE9KnYHwVXyc z==qRC{Qh%m+G3f(>*U8VM~O*;Zh1vRVLa%#UcLS~cG{3)JoLvXtGJUsg^8g_iD9NnO4r0!6+OYJ3)wxI2A8Uf zD7}AcPf8cwP?+R!;;qm>ODjWH=wmSG*IKu6H*%GH-e^eG-hFc2a*@jP>ikH-ng#~V z^yAhg?vbL`zm`0L#}AayXZRTQ4B#zYJEW3j`U91@09k@&geG9`^*Zt2XMJd-)%rNn z&7I5tBY6G}kRmwW1F06pEgiO=)e`rYI$v_AD60+nZS*9H5I2U91T^u~gSd_I=TlvV zqC+1nj0D^P2_7oi49+*?e2jZT$AN~4_>si2f>p3yg1PNG|EMs#C*019J)R1nILkoq z(Quw;*SrjvFYyTKRM5**Jhtg>Y21y|r-KU4F~`bMJtFOf%(^`9Vqkdwd_7&2;3jP! znd0_t^emB(dF4pRZsRy!=-THiG%a^OsmP@WExbk8y!7c2H6Ve*!_tB&ul93X88K*jD2LwwtHV6y9VM&@-dh4y%@#HMSrD?!KHH-aKrQgxc8&RQety+bMd78z zTgaSxH5&d(^YQLT@LsF(t=;ZLG95rfowwX|)Tpwg2H z;kGOWF8!0GWNdWFHCIlnJJ*ZIFUZxH%F2#HPtUc*&u3BRY%$82Ntpe>OPyTYh#4w^ z>gzH!h;Cv1BciU5{qz%#DMo51IOkoc@g{Y`nID%lhCfv@m+q*=X(hREOr1;S-r0l) zHs2#)ewK=hz@X0w-JkLDx-iE}{&TEuDud6A(`hD&ifXy0<1#;0I-}FsZ)#e$gI70l zvhlYyzj)>fF}y=>Jn2=1=9zun-_UExZu~y?d5!f_{R<0|R{BJeY>by!XGj{Iaic2l zhr1(p1SRzC$iR&i?s2|p!#eGk_#D&D?eBcuaQTsOEtT}Mr^gJG8BNBjM??i`#;f;4$)I^T z8A00{^`=% zBxFuBU_35k)V6&Ce1n42JXniMN^5E-El86bG4fksHDED%!d^O={MXycw;s~Z#+3=5 zy!xoaV<4MaNPFFuTZd4bUd;3TV~mzz!EoK%kB{yR4mE1cc-xmuxm;$53n`u`ib_P5 zeOs5AST}JCTH(GbdF88tT8hg}&on`&cPqDg+wNZEyz!{Dn>$ul@~0#xU-xSNwO&v5 zl`?A+LCyO3$`&PEv!wjRvFdKk4c4&HBLBB7mLng`OkY|5q{jt6%jLZWQm1h+|7xBu zXB(_~4Z2HhUSB8)gW1pI^@KvSac6p{`pvh;m|rI= zhq9$s#D50~M_~;31qk$T5yQ6sUD=z}a(n4WMXD?Grr*k~?L_@4Ytq9q*VXx>Iydcg z*HaEgkhF_ifO-~Sl4VLJ#xTeuDod6zhGQp7p~!BcWE(Y1L; z`6GTWe)pUE#l2tm=ia{8_r5L@-k2U7heYI$+oW6XV_(1RJbc(jrYQ^H_Oq5dQsw~^ zzj&*2p)DG|VXr4chsujnA<@ewnx{dpc!bDS+>}h-3(x$Ip2YP=e!9SoaH6p)q)u#^ zU>}|Hoyk-ym*3i8aX%*~*nX~QNX<1~Pj7v+4<9xA>hnuLErCLf0&U#ulROcv&Dx-L-uU5ZQHGFfQ}ta$)wTa@?dR7>m>|kUDndpwQfkmudBk!`;6!bZ z22eAmM|p74pD@Xi-Y#2@B&)G>u1=pl17sLjW>xuhPsj@36A-7 z3P%nR2yfu-;C9MBX!z658x4Lx;@npjWG8QD+9J1F*nQ2%LdAoF2O)pFd=g(LoZQp- zB;sV~t?c<>y3|$6gsYHCcj>;x@)?sr0H%No^EZ*8^f33tD^cg(@<_Qr9$U=|Pf98k zquMs*Hd}2DT~~dbZ#F)$YFClg0K=l4>okO|YjjH6XG6lOu9du(`3&|3Y%S`uTK;Lg)ETd80V4oK7{Z<~d$X?v z;5Sw>P4=!HSmC^OqzcS!$US>DKjq!?7aocV4_GcYa_!a_N$NzAJV~>@ERds%hevGS zuzd+uNrRzhMGM#4Mkwn~Ka~6DvNKg&%r76RufB{g zX|tQ0=F^-t#hzUjzS0{XYFq^tKHv)4f?dEU$U9wo>{jZW$y4|^5#yYF7Ku4aI1Ka1 z^mjIf0>9Mx|?BY|RXw~*lE z8iqAABti%Ds=gK+L8p)!DKAUOMX0?YvIJ`9FX+Mn{GT@$FF?PMEE-Zs!L;uVbz=nUzmTx8-F zUArk?by_2k-kWTQZ@{E<6~CjeTjcj&F$4>Z->tmO z>7v}7E_#2}tL0K~CX;x1CnK&8F5+@mPq8<;V%+X|pXaAZN2Xo&CwCh4bVKTIXgf|; z#Lwk(h?h%aYi(X$q04iNRcC8iPmQqC7HdW9USRU~5K0LwQelY1vhU`1kbVH}6-SY~ z2?=f=EUZ%!d9%u(ZP5>&A2`X1U;Pg2;cs=eV{0Y)9St|^`cIBqlR$zy$_i^aPJ0?>@Bn%crRBa2 z@GF`43{^ikn&jDu*zT)%K!&2%e3(orSO)w`D}UU5jn4K<4*9If-X?QFH_#&8sLiOh zmU!Nx8*@YEC%?hWgqUDiQz^s|e-sx)A|4oxPkC!=DH;tDIiTj1jxg0sW)eR+zuy>n z|Hs4R;6_SgkrMN?kC`S=K6k8R($x`Oy zfs&7x@7)0f%Mr5amfFJ8)iBX8K*?D-1kPfDmD+Zz_>(uLM%LMkQAJd=$jS8fv#Vm@ zK*YeAaf@oJke51nF9|o+um6#j3ISq!D7lqxgmOw^v!38opx=iW3TW<4)7F8C(PEy|khbY}cD?1VOJMW9D1n(6;+) z>yu4QM?so!XqU?V(o*F2UVpeA?dyXda}vMU?|+y%g4;RNmXy!rYI0gH*jK!>IzGHM z4pt8QHsd8Z50+Zi9Rj!VVjmd__CcpiP0X}6fs15}dN&9r=eZS$mS=8&Z{BPE8jB(5 znxC$JOUV)>x$sudaDeD(WPXo}Qexdg4 zF7#Rfoci#H3c*Ll+e9F=gtnip<5%4G&!qsY73}EqA-o_V${nY%^Eh zeCeHhtFu>f6uGTM-oXYgKENbkxFHA`J~`51`KQ{{Zgb|@+x=P8%*jJRK^*fr^@+BP zgFT-%qNMWJ1~Lc~`%l8FB0^&K_P8bl_iAu-i;G-V zkmsf3;fpyB-5!3#sA_sPEBEOe8N9A(K7U&#OY`3Jv}Q}o)HJ*nJ`mI@24C!KM{hPw-x@8{ z?*KlH{E_DWIJ@I{RGyY|m*XXRd5q4V9$WG7IaeD;sDct=P%RPM0u6Tr!!pu1;~6wH znb?&VnrEzCP$HY?>QT1ci0mEYcmlyvpJKI=9`4wlHB3(E>oY*}NLe>DxNq38&%rA? ziFlQb0*dA7a-|?EwFl}?KG65rI?)@y`FV6^I(jQ`|5@|%zdxV)4l}hi$BHEUkA(pg z#t7-S1uJfQvqzL&-~i09(%vIlcj65N*P&+Zo?8bNqS0AglirIq^e?cjBZVM~h)iio zu~U)hPy1IS)r+DMUcm6|P3Q50#$I3E!{lS}6icK*A<`;dYZD#lScr{Z@)A)O|uyLyu9(809wd{n%y_FS}P;RaB+}p<^Wgb@v&8i(e z2zPz_+jGf`(wQDW6|}t~+HP?>Ljo8we$^iET8E$?wC8 zSQp>NfEf7BCohI83(ejvCA!u?mnH78M-Rn(|0TiF`y2;45F@^t(3LU25{;C zGydpf`UVC<(C-pl$hLLudaD4JpS7U}>^t-`>3Vvaa~bJ}aeT=}-{RsHOLC#R%Oq=c zSWkJ+M(LdHCaS<_(}7n{BM0V=*paJOPZ4#he|sLxC(Isi#C8jW2O<>?7^>= z(HiH7v{maW`nnCkr*nRcYfE3=`+%sY{z)R@O8*=$vpAt2A`AUypL-v4Rw}m?F4^|! zm0P2u(FReV=2M2*Vz~5}k{5Saj_#}mY5$7S!Jyi8d|m({H%gyC&5J5J4Itk4!4YNg zCd|qslj4?2W}v$c1pOsbTGn6b3N@zfRxyQ@)f^%kqp0>_N0M<-1GK$|h+6R8Xc+04 zdAvuIdhN*?Am4?jEsjht*m%JJiYT^TLI#csQo#z_725|KlL{dZS5cGx@*M+3!2qhP6!&T))+Vbn z8;KSQ&q@c1xV2+Dhm}x?ElLNEx)L})c1Lh95uOcb$mA7T1AeS(Rf<}%D5V$v8u<%Y zEg3N=CJIVSU>${JWxSPl8&39)&aLuSi;D(`B7yrfuuA#7#%_D*m3AJ)E zOC4H6W;4Iv?qbPDk0jUt?Be(Oi)-u?*#XB*o{o!B4G#YD5|fIEsKMjGjHKE@Ea}i- zZ>p|qdVm{{$3GKNJU>_mL1#ttxmGs{rZ*}xGbUSQfe&QFeE@gHF0b{8G~Cr~g4HvC z^eUJh2G}+1qm#^o$REegY0|k|r3?X7(H-_T`;`;fEtf<_g6vRt#)kUH9Qv%BAHB3$ zQ{O&QtkS4YP z`bJEN=oqCoCDrhZkLYe54(((6@A8(Kc$D{Sq2`$d@0)ndENdsDfAe*^{VEwoh(2y| z)hHk5M=4!^i(|QtRR?dWZZgk`m>E_BrgKiRVwA}f#>=SQv|Ff7@s8&Dow%)@q7oug z;03rNRj}MAc7HNy_k7P*S$oGDk#%+2{4Z6+*@eyPUR`XYPzG<1+N+<3&Fj+OMqyRn z`)j`6AS%zvdqQKl<11(*K>v++_I|hwjrz3L;qWEekW4 MU$-%>GxmD)U+!?4GXMYp literal 0 HcmV?d00001 diff --git a/packaging/macos/DockIcon.png b/packaging/macos/DockIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..0c3115b4bc311c9ad696b529d420640e8aec6ce9 GIT binary patch literal 13086 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
  • +!H2f>Fuy@nbG>!D=%ciTS2+=9hff1x zgt-a|awGz1YjAqk|JfzlBunoN2QZQO;+fTBKp$Bc&GiRuDm0tuh{ZMNj#zmi9jcBl z9j*u&TlJ1MLlZloJpqgz+cvQ+@$&djP1J3sNk7-s4yYoW5Dcqx1DcQF8i(JajOiU1-~|2+(o4re zoibO_YZo@{gy3hlcw)YC?;gXb@W3-?NL=n!7HtQ&+6bGiIR?TA(@jwujsI#rR=xN4 zr?g0|#e&j(E$i#wff!G;TtNtFogn=jve2Mdisktree CFBundleExecutable disktree + CFBundleIconFile AppIcon + @ICON_CATALOG@ CFBundlePackageType APPL CFBundleInfoDictionaryVersion diff --git a/packaging/macos/render-dock-icons.swift b/packaging/macos/render-dock-icons.swift new file mode 100644 index 00000000..70bf32b5 --- /dev/null +++ b/packaging/macos/render-dock-icons.swift @@ -0,0 +1,247 @@ +#!/usr/bin/env swift + +// The Dock icon a run outside the app bundle shows, in both the looks a Mac +// can give it. `make dock-icons` runs this; the app embeds what it writes +// (`crates/disktree-app/src/dock_icon.rs`). +// +// packaging/macos/DockIcon.png AppIcon.svg as it is: the tile on +// Apple's 824-in-1024 legacy canvas, +// drawn literally by macOS 15 and +// earlier. +// packaging/macos/DockIcon-glass.png The same icon as macOS 26 draws it +// from AppIcon.icon: its own shape, +// the glass edge and the mark's shadow. +// +// macOS 26 gives Liquid Glass only to an app bundle's Icon Composer icon, +// never to an image set at runtime, and has no API to ask for it. So the +// glass is rendered here, by the system itself: AppIcon.icon is compiled with +// actool into a throwaway bundle, and what Finder and the Dock would draw for +// that bundle is read back through NSWorkspace. That draws in the icon style +// this Mac is set to, so the script refuses to run unless the Default style +// is on, and refuses on a Mac older than 26 or with an older actool. +// +// Both files are 512 px: the Dock draws at most 128 pt, twice that on a Retina +// display, and the glass render carries gradients that would make a 1024 px +// file four times the size for nothing. + +import AppKit +import Foundation + +let macosDir = URL(fileURLWithPath: #filePath).deletingLastPathComponent() +let tileSVG = macosDir.appendingPathComponent("AppIcon.svg") +let glyphSVG = macosDir.appendingPathComponent("AppGlyph.svg") +let package = macosDir.appendingPathComponent("AppIcon.icon", isDirectory: true) +let flatOut = macosDir.appendingPathComponent("DockIcon.png") +let glassOut = macosDir.appendingPathComponent("DockIcon-glass.png") + +/// The icon is rendered on the canvas the bundle's icons use, then scaled. +let canvas = 1024 +let output = 512 +/// Where the legacy tile sits on that canvas, as AppIcon.svg draws it. The +/// glass render must land there too, or the two files would not line up +/// between one macOS and the next. +let tileOrigin = 100 +let tileSize = 824 + +func fail(_ message: String) -> Never { + FileHandle.standardError.write("render-dock-icons: \(message)\n".data(using: .utf8)!) + exit(1) +} + +func run(_ executable: String, _ arguments: [String]) -> (status: Int32, output: Data) { + let process = Process() + process.executableURL = URL(fileURLWithPath: executable) + process.arguments = arguments + let pipe = Pipe() + process.standardOutput = pipe + process.standardError = pipe + do { try process.run() } catch { fail("cannot run \(executable): \(error)") } + let output = pipe.fileHandleForReading.readDataToEndOfFile() + process.waitUntilExit() + return (process.terminationStatus, output) +} + +// MARK: - Preconditions, before anything is written + +let os = ProcessInfo.processInfo.operatingSystemVersion +guard os.majorVersion >= 26 else { + fail("the glass icon is drawn by macOS 26 or later; this is \(os.majorVersion).\(os.minorVersion)") +} +if NSWorkspace.shared.accessibilityDisplayShouldReduceTransparency + || NSWorkspace.shared.accessibilityDisplayShouldIncreaseContrast +{ + fail("turn off Reduce Transparency and Increase Contrast (Accessibility > Display) first: icons render with them") +} +let actoolVersion = run("/usr/bin/xcrun", ["actool", "--version"]) +guard actoolVersion.status == 0, + let plist = try? PropertyListSerialization.propertyList(from: actoolVersion.output, format: nil) as? [String: Any], + let info = plist["com.apple.actool.version"] as? [String: Any], + let short = info["short-bundle-version"] as? String, + let major = Int(short.split(separator: ".").first ?? ""), major >= 26 +else { + fail("needs Xcode 26's actool; select it with xcode-select or DEVELOPER_DIR") +} + +// MARK: - Helpers + +func rasterize(_ svg: URL, to png: URL, pixels: Int) { + // The same tool `cargo xtask bundle` draws the iconset with, so the flat + // Dock icon is the 512 px rep of the shipped AppIcon.icns, pixel for pixel. + let result = run("/usr/bin/sips", ["-s", "format", "png", "-z", "\(pixels)", "\(pixels)", svg.path, "--out", png.path]) + guard result.status == 0 else { + fail("sips could not draw \(svg.lastPathComponent):\n\(String(decoding: result.output, as: UTF8.self))") + } +} + +func bitmap(_ pixels: Int) -> NSBitmapImageRep { + guard let rep = NSBitmapImageRep( + bitmapDataPlanes: nil, pixelsWide: pixels, pixelsHigh: pixels, + bitsPerSample: 8, samplesPerPixel: 4, hasAlpha: true, isPlanar: false, + colorSpaceName: .deviceRGB, bytesPerRow: 0, bitsPerPixel: 0 + ) else { fail("cannot create a \(pixels) px bitmap") } + rep.size = NSSize(width: pixels, height: pixels) + return rep +} + +func draw(_ image: NSImage, at pixels: Int) -> NSBitmapImageRep { + let rep = bitmap(pixels) + NSGraphicsContext.saveGraphicsState() + guard let context = NSGraphicsContext(bitmapImageRep: rep) else { fail("cannot draw") } + NSGraphicsContext.current = context + context.imageInterpolation = .high + let frame = NSRect(x: 0, y: 0, width: pixels, height: pixels) + NSColor.clear.setFill() + frame.fill() + image.draw(in: frame, from: .zero, operation: .sourceOver, fraction: 1) + NSGraphicsContext.restoreGraphicsState() + return rep +} + +/// The opaque bounds, top-down: (minX, minY, maxX, maxY). +func opaqueBounds(_ rep: NSBitmapImageRep) -> (Int, Int, Int, Int) { + var minX = rep.pixelsWide, minY = rep.pixelsHigh, maxX = -1, maxY = -1 + for y in 0.. 0.5 { + minX = min(minX, x); maxX = max(maxX, x); minY = min(minY, y); maxY = max(maxY, y) + } + } + return (minX, minY, maxX, maxY) +} + +func srgb(_ rep: NSBitmapImageRep, x: Int, y: Int) -> [Int] { + guard let c = rep.colorAt(x: x, y: y)?.usingColorSpace(.sRGB) else { return [] } + return [c.redComponent, c.greenComponent, c.blueComponent, c.alphaComponent].map { Int(($0 * 255).rounded()) } +} + +func write(_ rep: NSBitmapImageRep, to url: URL) { + guard let data = rep.representation(using: .png, properties: [:]) else { fail("cannot encode \(url.lastPathComponent)") } + do { try data.write(to: url, options: .atomic) } catch { fail("cannot write \(url.path): \(error)") } + print(" \(url.lastPathComponent) (\(rep.pixelsWide) px, \(data.count) bytes)") +} + +// MARK: - The glass render + +let work = FileManager.default.temporaryDirectory + .appendingPathComponent("disktree-dock-icons-\(UUID().uuidString)", isDirectory: true) +defer { try? FileManager.default.removeItem(at: work) } + +/// What macOS draws for an app that ships AppIcon.icon. +/// +/// The bundle path and identifier are new for every run: icon services caches +/// by path, and a reused path returns whatever it drew there before. The +/// bundle gets a real executable, because one without is drawn with the +/// "cannot open" badge. +func renderGlass() -> NSImage { + let fm = FileManager.default + // actool resolves `--app-icon Icon` by the package's basename: under any + // other name it exits 0 and writes no icon at all. + let icon = work.appendingPathComponent("Icon.icon", isDirectory: true) + let compiled = work.appendingPathComponent("compiled", isDirectory: true) + let bundle = work.appendingPathComponent("disktree-\(UUID().uuidString).app", isDirectory: true) + let contents = bundle.appendingPathComponent("Contents", isDirectory: true) + let resources = contents.appendingPathComponent("Resources", isDirectory: true) + let executables = contents.appendingPathComponent("MacOS", isDirectory: true) + do { + try fm.createDirectory(at: work, withIntermediateDirectories: true) + try fm.copyItem(at: package, to: icon) + try fm.createDirectory(at: icon.appendingPathComponent("Assets"), withIntermediateDirectories: true) + for dir in [compiled, resources, executables] { + try fm.createDirectory(at: dir, withIntermediateDirectories: true) + } + } catch { fail("cannot stage the render bundle: \(error)") } + rasterize(glyphSVG, to: icon.appendingPathComponent("Assets/glyph.png"), pixels: canvas) + + // The invocation `cargo xtask bundle` uses, so this is the catalog the + // shipped app carries. + let compile = run("/usr/bin/xcrun", [ + "actool", icon.path, + "--compile", compiled.path, + "--output-format", "human-readable-text", + "--notices", "--warnings", + "--output-partial-info-plist", compiled.appendingPathComponent("Info.plist").path, + "--app-icon", "Icon", + "--include-all-app-icons", + "--enable-on-demand-resources", "NO", + "--development-region", "en", + "--target-device", "mac", + "--minimum-deployment-target", "11.0", + "--platform", "macosx", + ]) + let catalog = compiled.appendingPathComponent("Assets.car") + guard compile.status == 0, fm.fileExists(atPath: catalog.path) else { + fail("actool did not compile AppIcon.icon:\n\(String(decoding: compile.output, as: UTF8.self))") + } + let info: [String: Any] = [ + "CFBundleExecutable": "stub", + "CFBundleIconName": "Icon", + "CFBundleIdentifier": "io.github.tobi.disktree.dock-icon-render.\(UUID().uuidString)", + "CFBundleName": "disktree", + "CFBundlePackageType": "APPL", + ] + do { + try fm.copyItem(at: catalog, to: resources.appendingPathComponent("Assets.car")) + try fm.copyItem(at: URL(fileURLWithPath: "/usr/bin/true"), to: executables.appendingPathComponent("stub")) + let plist = try PropertyListSerialization.data(fromPropertyList: info, format: .xml, options: 0) + try plist.write(to: contents.appendingPathComponent("Info.plist")) + } catch { fail("cannot assemble the render bundle: \(error)") } + return NSWorkspace.shared.icon(forFile: bundle.path) +} + +// MARK: - Render, check, then write + +let flatPNG = work.appendingPathComponent("flat.png") +do { try FileManager.default.createDirectory(at: work, withIntermediateDirectories: true) } catch { fail("\(error)") } +rasterize(tileSVG, to: flatPNG, pixels: canvas) +guard let flatImage = NSImage(contentsOf: flatPNG) else { fail("cannot read the flat render") } +let flat = draw(flatImage, at: canvas) +let glass = draw(renderGlass(), at: canvas) + +// The glass tile must sit where the flat one does, within a pixel of +// antialiasing, so the Dock icon does not jump between macOS versions. +let expected = (tileOrigin, tileOrigin, tileOrigin + tileSize - 1, tileOrigin + tileSize - 1) +for (name, rep) in [("AppIcon.svg", flat), ("the glass render", glass)] { + let b = opaqueBounds(rep) + let drift = [b.0 - expected.0, b.1 - expected.1, b.2 - expected.2, b.3 - expected.3] + guard drift.allSatisfy({ abs($0) <= 1 }) else { + fail("\(name) covers \(b), not the \(expected) tile the Dock expects") + } +} + +// The Default icon style keeps the mark's own colours; Clear and Tinted +// replace them, and Dark darkens the tile. Two probes, well inside flat +// areas: the mark's blue title bar, and the dark green block under it. +// Lighting shifts them a little; a style change replaces them. +for probe in [(x: 512, y: 220, label: "title bar"), (x: 300, y: 450, label: "green block")] { + let authored = srgb(flat, x: probe.x, y: probe.y) + let rendered = srgb(glass, x: probe.x, y: probe.y) + guard authored.count == 4, rendered.count == 4, + zip(authored, rendered).allSatisfy({ abs($0 - $1) <= 32 }) + else { + fail("the glass \(probe.label) renders \(rendered), not \(authored): set System Settings > Appearance > Icon & widget style to Default") + } +} + +write(draw(flatImage, at: output), to: flatOut) +let glassImage = NSImage(size: NSSize(width: canvas, height: canvas)) +glassImage.addRepresentation(glass) +write(draw(glassImage, at: output), to: glassOut) diff --git a/xtask/src/bundle.rs b/xtask/src/bundle.rs index 63e31134..6fc9ac26 100644 --- a/xtask/src/bundle.rs +++ b/xtask/src/bundle.rs @@ -1,7 +1,8 @@ //! `cargo xtask bundle`: the macOS app, from a release build. //! //! Plain Apple tools and nothing to install: `sips` and `iconutil` draw the -//! icon from its SVG, `codesign` signs, `ditto` zips the way Finder does +//! icon from its SVG, `actool` compiles its Icon Composer package when +//! Xcode 26's is there, `codesign` signs, `ditto` zips the way Finder does //! (keeping the signature's extended attributes), and `notarytool` and //! `stapler` notarize. Everything lands in `target/bundle/`. //! @@ -112,11 +113,21 @@ pub fn bundle(args: &[String]) -> Result<(), String> { // Local symbols only: the backtrace of a panic still names functions. tool(Command::new("strip").arg("-x").arg(&binary))?; + icon( + &root.join("packaging/macos/AppIcon.svg"), + &out, + &resources.join("AppIcon.icns"), + )?; + let catalog = icon_catalog(&root, &out, &resources)?; + let plist = fs::read_to_string(root.join("packaging/macos/Info.plist.in")) .map_err(|err| format!("cannot read the Info.plist template: {err}"))?; write( &contents.join("Info.plist"), - &plist.replace("@VERSION@", version), + &plist.replace("@VERSION@", version).replace( + ICON_CATALOG_MARKER, + if catalog { ICON_CATALOG_KEYS } else { "" }, + ), )?; tool( Command::new("plutil") @@ -124,12 +135,6 @@ pub fn bundle(args: &[String]) -> Result<(), String> { .arg(contents.join("Info.plist")), )?; - icon( - &root.join("packaging/macos/AppIcon.svg"), - &out, - &resources.join("AppIcon.icns"), - )?; - sign(&app, options.identity.as_deref())?; let zip = out.join(format!( @@ -186,6 +191,113 @@ fn icon(svg: &Path, scratch: &Path, icns: &Path) -> Result<(), String> { ) } +/// The line of the plist template that the catalog's keys replace. +const ICON_CATALOG_MARKER: &str = "\t@ICON_CATALOG@\n"; +/// What macOS 26 reads the icon by: the name actool gave it in `Assets.car`. +const ICON_CATALOG_KEYS: &str = + "\tCFBundleIconName\n\tIcon\n"; + +/// `Assets.car` from the Icon Composer package, when Xcode 26's actool is at +/// hand; whether it was made. +/// +/// macOS 26 draws an app's icon from this catalog: its own shape, the glass +/// edge, and the Dark, Clear and Tinted looks. Handed only a legacy `.icns` +/// it normalizes that instead, and 26.6.2 has drawn a padded one on a light +/// plate. macOS 15 and earlier never open the catalog and keep reading +/// `AppIcon.icns`, which has every size they draw; actool derives an icns +/// too, but with four sizes, so it is left where it was compiled. Without +/// that actool the bundle ships the icns alone, and says so: a Mac with the +/// Command Line Tools, or an older Xcode, still builds. +fn icon_catalog( + root: &Path, + scratch: &Path, + resources: &Path, +) -> Result { + match actool_version() { + Some(major) if major >= 26 => {} + found => { + let found = found.map_or_else( + || "no actool".to_owned(), + |major| format!("actool {major}"), + ); + println!( + "note: {found}; macOS 26 will draw AppIcon.icns without \ + Liquid Glass. Xcode 26 compiles packaging/macos/AppIcon.icon." + ); + return Ok(false); + } + } + + // actool resolves `--app-icon Icon` by the package's basename: under any + // other name it exits 0 and writes no icon at all. So the package is + // copied under that name, and gets its layer drawn from the SVG there. + let package = scratch.join("Icon.icon"); + let compiled = scratch.join("AppIcon.catalog"); + for dir in [&package, &compiled] { + if dir.exists() { + fs::remove_dir_all(dir).map_err(|err| { + format!("cannot clear {}: {err}", dir.display()) + })?; + } + } + let assets = package.join("Assets"); + for dir in [&assets, &compiled] { + fs::create_dir_all(dir) + .map_err(|err| format!("cannot create {}: {err}", dir.display()))?; + } + copy( + &root.join("packaging/macos/AppIcon.icon/icon.json"), + &package.join("icon.json"), + )?; + tool( + Command::new("sips") + .args(["-s", "format", "png", "-z", "1024", "1024"]) + .arg(root.join("packaging/macos/AppGlyph.svg")) + .arg("--out") + .arg(assets.join("glyph.png")) + .stdout(Stdio::null()), + )?; + // The invocation electron-builder settled on for the same package, so + // the catalog is the one other apps on the Mac ship. + tool( + Command::new("xcrun") + .arg("actool") + .arg(&package) + .arg("--compile") + .arg(&compiled) + .args(["--output-format", "human-readable-text"]) + .args(["--notices", "--warnings"]) + .arg("--output-partial-info-plist") + .arg(compiled.join("Info.plist")) + .args(["--app-icon", "Icon", "--include-all-app-icons"]) + .args(["--enable-on-demand-resources", "NO"]) + .args(["--development-region", "en"]) + .args(["--target-device", "mac"]) + .args(["--minimum-deployment-target", DEPLOYMENT_TARGET]) + .args(["--platform", "macosx"]), + )?; + copy(&compiled.join("Assets.car"), &resources.join("Assets.car"))?; + Ok(true) +} + +/// The major version of the actool `xcrun` finds, if it finds one. +fn actool_version() -> Option { + let output = Command::new("xcrun") + .args(["actool", "--version"]) + .stdin(Stdio::null()) + .stderr(Stdio::null()) + .output() + .ok()?; + if !output.status.success() { + return None; + } + // A plist, with the version under `short-bundle-version`. + let text = String::from_utf8_lossy(&output.stdout); + let after = text.split("short-bundle-version").nth(1)?; + let value = after.split("").nth(1)?.split("").next()?; + value.split('.').next()?.parse().ok() +} + /// Sign the bundle, then check the signature holds. /// /// A real identity gets the hardened runtime and a secure timestamp, both of @@ -336,4 +448,28 @@ mod tests { plist.contains(&format!("{DEPLOYMENT_TARGET}")) ); } + + /// The catalog's keys go in only when the catalog does: a bundle that + /// names an icon it does not carry shows none on macOS 26. + #[test] + fn the_plist_template_takes_the_catalog_keys_from_the_bundle() { + let plist = include_str!("../../packaging/macos/Info.plist.in"); + assert!(plist.contains(ICON_CATALOG_MARKER)); + assert!(!plist.contains("CFBundleIconName")); + let without = plist.replace(ICON_CATALOG_MARKER, ""); + assert!(!without.contains("@ICON_CATALOG@")); + let with = plist.replace(ICON_CATALOG_MARKER, ICON_CATALOG_KEYS); + assert!(with.contains("CFBundleIconName\n\tIcon")); + } + + /// The package names the layer the bundle draws from the SVG, and fills + /// the tile with the mark's own background. + #[test] + fn the_icon_package_is_the_glyph_on_the_marks_background() { + let manifest = + include_str!("../../packaging/macos/AppIcon.icon/icon.json"); + assert!(manifest.contains(r#""image-name" : "glyph.png""#)); + // #1a1b26, as assets/disktree.svg paints it. + assert!(manifest.contains("srgb:0.10196,0.10588,0.14902,1.00000")); + } } From 2bac3a9498c34f0c5040c5b7a157eb97db098e73 Mon Sep 17 00:00:00 2001 From: Harold Hunt Date: Wed, 14 Oct 2026 13:16:16 -0400 Subject: [PATCH 2/5] Read the Darwin release for the glass check, and draw the flat Dock icon at size macOS 26 reports 16.0 to a binary linked against an older SDK, so NSProcessInfo picked the flat icon for a build made with the Command Line Tools or Xcode 16. The kernel release does not depend on the SDK. The flat Dock icon now comes from sips at 512 px, as the iconset does, rather than a resample of the 1024 px check render. The plist marker is the bare token, so a reindented template still takes it. --- Cargo.lock | 1 + crates/disktree-app/Cargo.toml | 2 ++ crates/disktree-app/src/dock_icon.rs | 27 ++++++++++++++++++------ packaging/macos/DockIcon.png | Bin 13086 -> 11070 bytes packaging/macos/render-dock-icons.swift | 5 ++++- xtask/src/bundle.rs | 9 ++++---- 6 files changed, 33 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index d8ce6848..98093cae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1431,6 +1431,7 @@ dependencies = [ "objc2-app-kit 0.3.2", "objc2-foundation 0.3.2", "rustc-hash 2.1.3", + "rustix", "tempfile", "windows-sys 0.61.2", ] diff --git a/crates/disktree-app/Cargo.toml b/crates/disktree-app/Cargo.toml index 1e678a89..bda218ac 100644 --- a/crates/disktree-app/Cargo.toml +++ b/crates/disktree-app/Cargo.toml @@ -26,6 +26,8 @@ tempfile = "3" # AppKit for the Dock icon of a run outside the app bundle (dock_icon.rs): # the crates and versions GPUI already builds, with only the classes used. objc2 = "0.6" +# The kernel release, which says which macOS this is whatever SDK linked it. +rustix = { version = "1.1", features = ["system"] } objc2-app-kit = { version = "0.3", default-features = false, features = [ "std", "NSApplication", diff --git a/crates/disktree-app/src/dock_icon.rs b/crates/disktree-app/src/dock_icon.rs index 4ec21be0..88a66294 100644 --- a/crates/disktree-app/src/dock_icon.rs +++ b/crates/disktree-app/src/dock_icon.rs @@ -21,7 +21,7 @@ use objc2::{AllocAnyThread as _, MainThreadMarker}; use objc2_app_kit::{NSApplication, NSImage}; -use objc2_foundation::{NSBundle, NSData, NSProcessInfo, NSString}; +use objc2_foundation::{NSBundle, NSData, NSString}; const FLAT: &[u8] = include_bytes!("../../../packaging/macos/DockIcon.png"); const GLASS: &[u8] = @@ -60,12 +60,20 @@ fn bundle_names_an_icon() -> bool { }) } -/// Whether this Mac draws app icons in Liquid Glass: macOS 26 and later. +/// Whether this Mac draws app icons in Liquid Glass: macOS 26 and later, +/// which is Darwin 25. +/// +/// The kernel release, not `NSProcessInfo`: macOS 26 reports itself as 16.0 +/// to a binary linked against an older SDK, which is what a Mac with the +/// Command Line Tools or Xcode 16 builds. fn draws_liquid_glass() -> bool { - NSProcessInfo::processInfo() - .operatingSystemVersion() - .majorVersion - >= 26 + darwin_major(&rustix::system::uname().release().to_string_lossy()) + .is_some_and(|major| major >= 25) +} + +/// The major version of a Darwin release such as `25.6.0`. +fn darwin_major(release: &str) -> Option { + release.split('.').next()?.parse().ok() } /// The icon for the look this Mac gives its icons. @@ -95,4 +103,11 @@ mod tests { // The glass one is a render of the flat one, never the same file. assert_ne!(embedded(true), embedded(false)); } + + #[test] + fn darwin_25_is_the_first_to_draw_liquid_glass() { + assert_eq!(darwin_major("25.6.0"), Some(25)); + assert_eq!(darwin_major("24.6.0"), Some(24)); + assert_eq!(darwin_major(""), None); + } } diff --git a/packaging/macos/DockIcon.png b/packaging/macos/DockIcon.png index 0c3115b4bc311c9ad696b529d420640e8aec6ce9..ccf997f953f967baaa365a23f2795b09b5b01446 100644 GIT binary patch literal 11070 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
  • +!H2f>Fuy@nbG>!D=%ciTS2+=9hff1x zgt-a|awGz1YjAqk|JfzlBunoN2QZQO;+fTBKp$Bc&GiRuDm0tuh{ZMNj#zmi9jcBl z9j*u&TlJ1MLlZloJpqgz+cvQ+@$&djP1J3sNk7-s4yYoW5Dcqx1DcQF8i(JajOiU1-~|2+(o4re zoibO_YZo@{gy3hlcw)YC?;gXb@W3-?NL=n!7HtQ&+6bGiIR?TA(@jwujsI#rR=xN4 zr?g0|#e&j(E$i#wff!G;TtNtFogn=jve2M Result<(), String> { ) } -/// The line of the plist template that the catalog's keys replace. -const ICON_CATALOG_MARKER: &str = "\t@ICON_CATALOG@\n"; +/// The token in the plist template that the catalog's keys replace. Left +/// empty without a catalog, it is a blank line inside the dict. +const ICON_CATALOG_MARKER: &str = "@ICON_CATALOG@"; /// What macOS 26 reads the icon by: the name actool gave it in `Assets.car`. const ICON_CATALOG_KEYS: &str = - "\tCFBundleIconName\n\tIcon\n"; + "CFBundleIconName\n\tIcon"; /// `Assets.car` from the Icon Composer package, when Xcode 26's actool is at /// hand; whether it was made. @@ -457,7 +458,7 @@ mod tests { assert!(plist.contains(ICON_CATALOG_MARKER)); assert!(!plist.contains("CFBundleIconName")); let without = plist.replace(ICON_CATALOG_MARKER, ""); - assert!(!without.contains("@ICON_CATALOG@")); + assert!(!without.contains(ICON_CATALOG_MARKER)); let with = plist.replace(ICON_CATALOG_MARKER, ICON_CATALOG_KEYS); assert!(with.contains("CFBundleIconName\n\tIcon")); } From c0f1114fda9b7a81a4c1e9e1013180b371a7fa8c Mon Sep 17 00:00:00 2001 From: Harold Hunt Date: Wed, 14 Oct 2026 13:30:01 -0400 Subject: [PATCH 3/5] Probe the glass render where any centred mark size has its colours The style check compared the glass and flat renders at the mark's title bar and green block, which only line up while AppGlyph.svg draws the mark at the flat icon's size. A smaller mark put the title-bar probe on the tile, and the script blamed the icon style. The probes are now the canvas centre, which is the mark's green block at any centred size, and the tile just inside its edge. --- packaging/macos/render-dock-icons.swift | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packaging/macos/render-dock-icons.swift b/packaging/macos/render-dock-icons.swift index f1f75eeb..854f119d 100644 --- a/packaging/macos/render-dock-icons.swift +++ b/packaging/macos/render-dock-icons.swift @@ -228,10 +228,12 @@ for (name, rep) in [("AppIcon.svg", flat), ("the glass render", glass)] { } // The Default icon style keeps the mark's own colours; Clear and Tinted -// replace them, and Dark darkens the tile. Two probes, well inside flat -// areas: the mark's blue title bar, and the dark green block under it. +// replace them, and Dark darkens the tile. Two probes that hold whatever +// size AppGlyph.svg draws the mark at, as long as it is centred: the +// canvas centre, which is the mark's dark green block, and the tile 50 px +// in from its left edge, outside the mark and clear of the glass rim. // Lighting shifts them a little; a style change replaces them. -for probe in [(x: 512, y: 220, label: "title bar"), (x: 300, y: 450, label: "green block")] { +for probe in [(x: 512, y: 512, label: "green block"), (x: 150, y: 512, label: "tile")] { let authored = srgb(flat, x: probe.x, y: probe.y) let rendered = srgb(glass, x: probe.x, y: probe.y) guard authored.count == 4, rendered.count == 4, From 70924f508a1a927849ee7a05d7d702037771add8 Mon Sep 17 00:00:00 2001 From: Harold Hunt Date: Wed, 14 Oct 2026 22:20:20 -0400 Subject: [PATCH 4/5] Compile the glass render for the bundle's own deployment target render-dock-icons.swift passed a literal 11.0 to actool while xtask passes DEPLOYMENT_TARGET, so raising the target would bake the Dock icon's glass from a different catalog than the one the bundle ships. The script now reads LSMinimumSystemVersion from Info.plist.in, which xtask's test keeps equal to DEPLOYMENT_TARGET. Also correct the plist marker's comment: an empty replacement leaves the line's indent, not a blank line. --- packaging/macos/render-dock-icons.swift | 16 +++++++++++++++- xtask/src/bundle.rs | 2 +- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/packaging/macos/render-dock-icons.swift b/packaging/macos/render-dock-icons.swift index 854f119d..2de040ce 100644 --- a/packaging/macos/render-dock-icons.swift +++ b/packaging/macos/render-dock-icons.swift @@ -63,6 +63,20 @@ func run(_ executable: String, _ arguments: [String]) -> (status: Int32, output: // MARK: - Preconditions, before anything is written +// The bundle's LSMinimumSystemVersion, which `cargo xtask bundle` compiles +// the package for too, so both compiles make the same catalog. Read from +// the template by hand: its placeholders keep it from parsing as a plist. +let plistTemplate = macosDir.appendingPathComponent("Info.plist.in") +guard let template = try? String(contentsOf: plistTemplate, encoding: .utf8), + let pattern = try? Regex( + #"LSMinimumSystemVersion\s*([^<]+)"#), + let match = template.firstMatch(of: pattern), + let version = match.output[1].substring +else { + fail("cannot read LSMinimumSystemVersion from \(plistTemplate.path)") +} +let deploymentTarget = String(version) + let os = ProcessInfo.processInfo.operatingSystemVersion guard os.majorVersion >= 26 else { fail("the glass icon is drawn by macOS 26 or later; this is \(os.majorVersion).\(os.minorVersion)") @@ -184,7 +198,7 @@ func renderGlass() -> NSImage { "--enable-on-demand-resources", "NO", "--development-region", "en", "--target-device", "mac", - "--minimum-deployment-target", "11.0", + "--minimum-deployment-target", deploymentTarget, "--platform", "macosx", ]) let catalog = compiled.appendingPathComponent("Assets.car") diff --git a/xtask/src/bundle.rs b/xtask/src/bundle.rs index 6f272a69..44431e63 100644 --- a/xtask/src/bundle.rs +++ b/xtask/src/bundle.rs @@ -192,7 +192,7 @@ fn icon(svg: &Path, scratch: &Path, icns: &Path) -> Result<(), String> { } /// The token in the plist template that the catalog's keys replace. Left -/// empty without a catalog, it is a blank line inside the dict. +/// empty without a catalog, its line keeps only its indent. const ICON_CATALOG_MARKER: &str = "@ICON_CATALOG@"; /// What macOS 26 reads the icon by: the name actool gave it in `Assets.car`. const ICON_CATALOG_KEYS: &str = From 50833a36d880b21929e5b9be53d1c2d0dc5a813d Mon Sep 17 00:00:00 2001 From: Harold Hunt Date: Wed, 14 Oct 2026 13:30:01 -0400 Subject: [PATCH 5/5] Inset the macOS 26 icon's mark, as a squircle inside the squircle At the full 1024 pt canvas the mark's panel reached 80 pt from the edge and macOS 26's mask clipped its square corners. The panel is now 700 pt, 68% of the canvas and 162 pt in from each edge, about the weight of Slack's glyph or 1Password's ring beside it in the Dock, with 100 pt corners so it reads as a squircle inside the squircle, as Finder's does. Only the Icon Composer layer and the glass Dock icon change. Drop this commit to keep the mark at full size. --- packaging/macos/AppGlyph.svg | 32 +++++++++++++++++++++-------- packaging/macos/DockIcon-glass.png | Bin 57189 -> 67705 bytes 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/packaging/macos/AppGlyph.svg b/packaging/macos/AppGlyph.svg index 4ac0c81b..171e6b27 100644 --- a/packaging/macos/AppGlyph.svg +++ b/packaging/macos/AppGlyph.svg @@ -4,14 +4,28 @@ behind it is the package's fill, so macOS 26 can give the icon its own shape, glass edge, and Dark, Clear and Tinted looks. --> - - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/packaging/macos/DockIcon-glass.png b/packaging/macos/DockIcon-glass.png index 2dc123cb08283aa3eb24c5e5c99f2660b637dcad..0e205c55f7ec4f7d479836ae1b4b69d2f14c2f73 100644 GIT binary patch literal 67705 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≷J*8`*JRUV|cc^ zW}a>)VQu0|-oTgrHkDY3S;J{9{racPPXj!T7y9>ovTJ1Hq!o8sBGogAmmlP6`%V1f zY;Et!@ZeBNkcd$oT)y`E?_s)4rRkkJCAVLgRFv9rvG{OH(h%BEzDTyy&Dn2Nq48`_ z{;T_jT6^fx?CD$2iIAL?K)P^+*GJrqRyvEnRDIg;5JT$8yym=5aK?7I=iW@~0l1E4 ze%|jbuh{0vg&cg~bQm!)HRoth_ zjFTgl_=(pdgEC;iG53jpfpc5&6TAuTZ6pty#ru|#KKl#->MextD zr5p)AXm!8dki$nA{fndoqRb~b{quLOGx0xreo>(Y{v+7rqLR1P)!uS<=HvUx2TsYx z|5>Az6C$Lo+b_15KkAOLU0wIF`rUwUA9S*)h3r3QcCku5vz4b9XI>hO#&t3{(Bx7LPjMUZK9s*ex2%O0jeT*=uUzL2|dczwxoIHEC!6cbRL(wahNn*CfR3`=w6u9^F%#B?WsL_sM!U{3Y|{ zwPr$_vKeFIYFk!6lKawpqQ&VXiTT9>Y}V!>diA<~)|C|}(T_|&HIN}F={_WHiqGg+ zvA#(=oZG0i38rZgO0z2vS6f;>P42l;=_Dge<~9+|wK?_w=zi)_%y1+A znA<3~#o69aa#DOAoMN2OHvG2xXwAMofBouu25$jn>TvHkCl;JsjvRaSJ;&oc-=bBH z^?O9&3IhoQQ#Kn)BLT;2^S%8m?ETYke405GQJFmWyWRg=P@J%5pUGhZX+h7V_np+G z=eFQ|@bl4He8aE?Fwl;5I;VS4?~g)h(*&mfo<4f1jr_px`+^?U+rIA{5z?^5Wm}8) zfYtbA?|%Zb+Wa366n5`j)ujWW2UYa6&@Y)C|oZ5Jleq4 zCO2I!M8`6OO<>B!wU!v&A5`o-^SbJGcI z-vvZr64bdbCY0Yu_i*<;;f}pbhed^O)BP{$^#2d)|KBvhfgCXwDEPC!`$to+2>}1m N)iioi@%YvI{|BCGY@q-E literal 57189 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 MU$-%>GxmD)U+!?4GXMYp