From bdad050a8b2960feba2e9be1982e9a98f49008e9 Mon Sep 17 00:00:00 2001 From: liangxu Date: Sun, 31 May 2026 13:38:37 +0800 Subject: [PATCH] feat(desktop): add type declaration for @brand-logo alias in brand-logo.d.ts --- apps/desktop-client/build/icon.icns | Bin 0 -> 120515 bytes apps/desktop-client/build/icon.ico | Bin 0 -> 5654 bytes apps/desktop-client/build/icon.png | Bin 0 -> 26864 bytes apps/desktop-client/electron.vite.config.ts | 3 + apps/desktop-client/package.json | 3 +- apps/desktop-client/public/logo.svg | 1 + .../scripts/generate-brand-icons.cjs | 210 ++++++++++++++++++ .../src/main/app-issue-indicator.ts | 11 +- apps/desktop-client/src/main/brand-icons.ts | 25 +++ apps/desktop-client/src/main/tray.ts | 21 +- .../src/renderer/brand-logo.d.ts | 7 + .../src/renderer/components/DesktopShell.vue | 29 +-- apps/desktop-client/src/renderer/main.ts | 8 + .../src/renderer/views/LoginView.vue | 22 +- deploy/scripts/load-and-start.sh | 61 ++++- 15 files changed, 339 insertions(+), 62 deletions(-) create mode 100644 apps/desktop-client/build/icon.icns create mode 100644 apps/desktop-client/build/icon.ico create mode 100644 apps/desktop-client/build/icon.png create mode 100644 apps/desktop-client/public/logo.svg create mode 100644 apps/desktop-client/scripts/generate-brand-icons.cjs create mode 100644 apps/desktop-client/src/main/brand-icons.ts create mode 100644 apps/desktop-client/src/renderer/brand-logo.d.ts diff --git a/apps/desktop-client/build/icon.icns b/apps/desktop-client/build/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..0c4baabaa4974af50996e61ccfb2f28795f22add GIT binary patch literal 120515 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 literal 0 HcmV?d00001 diff --git a/apps/desktop-client/build/icon.ico b/apps/desktop-client/build/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..daa925f250649dc76b5efa64afc498355b3e530b GIT binary patch literal 5654 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℞GIGQ*R8`lWTHP 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 \ No newline at end of file diff --git a/apps/desktop-client/scripts/generate-brand-icons.cjs b/apps/desktop-client/scripts/generate-brand-icons.cjs new file mode 100644 index 0000000..af95b35 --- /dev/null +++ b/apps/desktop-client/scripts/generate-brand-icons.cjs @@ -0,0 +1,210 @@ +#!/usr/bin/env node +/* + * Generates every brand icon asset the desktop client needs from the single + * source of truth: public/logo.svg. + * + * Outputs: + * build/icon.icns macOS app icon (electron-builder) + * build/icon.png Linux app icon + Windows/icns fallback (1024x1024) + * build/icon.ico Windows app icon + * src/main/brand-icons.ts base64 icons consumed by the main process + * (tray + dock + window + Windows overlay) + * + * Re-run after changing public/logo.svg: + * node scripts/generate-brand-icons.cjs + * + * Requires `rsvg-convert`, `sips` and `iconutil` (preinstalled on macOS via + * librsvg + the system toolchain). + */ +const { execFileSync } = require('node:child_process') +const fs = require('node:fs') +const os = require('node:os') +const path = require('node:path') + +const APP_DIR = path.resolve(__dirname, '..') +const LOGO_PATH = path.join(APP_DIR, 'public', 'logo.svg') +const BUILD_DIR = path.join(APP_DIR, 'build') +const OUT_TS = path.join(APP_DIR, 'src', 'main', 'brand-icons.ts') + +// Brand palette — keep in sync with the renderer (#1677ff is Ant Design blue). +const BRAND_BLUE = '#1677ff' +const DANGER_RED = '#ff4d4f' +const LOGO_FILL = '#dfdfdf' // the fill baked into logo.svg + +const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'brand-icons-')) +const cleanup = () => fs.rmSync(tmpDir, { recursive: true, force: true }) + +function rsvg(args) { + return execFileSync('rsvg-convert', args) +} + +/** Extract the inner markup (the elements) and viewBox from logo.svg. */ +function readLogo() { + const raw = fs.readFileSync(LOGO_PATH, 'utf8') + const viewBox = (raw.match(/viewBox="([^"]+)"/) || [])[1] + const inner = (raw.match(/]*>([\s\S]*)<\/svg>/) || [])[1] + if (!viewBox || !inner) { + throw new Error('Could not parse public/logo.svg (missing viewBox or body)') + } + const [, , vbW, vbH] = viewBox.split(/\s+/).map(Number) + return { inner: inner.trim(), width: vbW, height: vbH } +} + +const logo = readLogo() + +/** A square app icon: logo centered on a rounded-rect (squircle-ish) bg. */ +function squareIconSvg(bg) { + const CANVAS = 1024 + // macOS icon grid: 824x824 art area inside a 1024 canvas (100px margin). + const PLATE = 824 + const MARGIN = (CANVAS - PLATE) / 2 + const targetW = PLATE * 0.62 + const scale = targetW / logo.width + const drawnW = logo.width * scale + const drawnH = logo.height * scale + const tx = MARGIN + (PLATE - drawnW) / 2 + const ty = MARGIN + (PLATE - drawnH) / 2 + return ` + + ${logo.inner} +` +} + +/** + * Tray glyph: the logo centered (with padding) inside a 32px square canvas. + * tray.ts loads it with scaleFactor 2, so it shows at ~16pt on retina menu + * bars. Padding keeps the wide/landscape mark from touching the canvas edges. + */ +function trayLogoSvg(fill) { + const CANVAS = 32 // tray asset is 32x32 px + // Glyph height inside the 32px canvas — the single knob for tray size. + // Bump up for a larger glyph, down for a smaller one. + const targetH = 20 + const scale = targetH / logo.height + const drawnW = logo.width * scale + const drawnH = logo.height * scale + const tx = (CANVAS - drawnW) / 2 + const ty = (CANVAS - drawnH) / 2 + const inner = fill ? logo.inner.split(LOGO_FILL).join(fill) : logo.inner + return ` + ${inner} +` +} + +function svgToPng(svg, name, extraArgs = []) { + const svgPath = path.join(tmpDir, `${name}.svg`) + const pngPath = path.join(tmpDir, `${name}.png`) + fs.writeFileSync(svgPath, svg) + rsvg([...extraArgs, '-o', pngPath, svgPath]) + return pngPath +} + +function b64(pngPath) { + return fs.readFileSync(pngPath).toString('base64') +} + +/** Wrap a PNG buffer in a minimal (PNG-payload) .ico container. */ +function pngToIco(pngBuffer) { + const header = Buffer.alloc(6) + header.writeUInt16LE(0, 0) // reserved + header.writeUInt16LE(1, 2) // type: icon + header.writeUInt16LE(1, 4) // image count + const entry = Buffer.alloc(16) + entry.writeUInt8(0, 0) // width (0 => 256) + entry.writeUInt8(0, 1) // height (0 => 256) + entry.writeUInt8(0, 2) // palette + entry.writeUInt8(0, 3) // reserved + entry.writeUInt16LE(1, 4) // color planes + entry.writeUInt16LE(32, 6) // bits per pixel + entry.writeUInt32LE(pngBuffer.length, 8) // size of image data + entry.writeUInt32LE(6 + 16, 12) // offset to image data + return Buffer.concat([header, entry, pngBuffer]) +} + +function buildAppIcons() { + // 1024 master for the normal app icon. + const masterPng = svgToPng(squareIconSvg(BRAND_BLUE), 'app-normal', ['-w', '1024', '-h', '1024']) + fs.mkdirSync(BUILD_DIR, { recursive: true }) + fs.copyFileSync(masterPng, path.join(BUILD_DIR, 'icon.png')) + + // .icns via an .iconset downscaled with sips. + const iconset = path.join(tmpDir, 'icon.iconset') + fs.mkdirSync(iconset, { recursive: true }) + const variants = [ + [16, 'icon_16x16.png'], + [32, 'icon_16x16@2x.png'], + [32, 'icon_32x32.png'], + [64, 'icon_32x32@2x.png'], + [128, 'icon_128x128.png'], + [256, 'icon_128x128@2x.png'], + [256, 'icon_256x256.png'], + [512, 'icon_256x256@2x.png'], + [512, 'icon_512x512.png'], + [1024, 'icon_512x512@2x.png'], + ] + for (const [size, file] of variants) { + const dest = path.join(iconset, file) + execFileSync('sips', ['-z', String(size), String(size), masterPng, '--out', dest], { + stdio: 'ignore', + }) + } + execFileSync('iconutil', ['-c', 'icns', iconset, '-o', path.join(BUILD_DIR, 'icon.icns')]) + + // .ico from a 256px render. + const ico256 = svgToPng(squareIconSvg(BRAND_BLUE), 'app-ico', ['-w', '256', '-h', '256']) + fs.writeFileSync(path.join(BUILD_DIR, 'icon.ico'), pngToIco(fs.readFileSync(ico256))) +} + +function buildMainProcessIcons() { + // Tray icons are 32x32 px and loaded @2x in tray.ts (=> ~16pt on retina). + // Glyph size is controlled by targetH in trayLogoSvg(), not by an rsvg -h. + const trayNormal = b64(svgToPng(trayLogoSvg(), 'tray-normal')) + const trayDanger = b64(svgToPng(trayLogoSvg(DANGER_RED), 'tray-danger')) + + // Dock / window icons: logo on the brand plate (normal) and danger plate. + const appNormal = b64(svgToPng(squareIconSvg(BRAND_BLUE), 'dock-normal', ['-w', '512', '-h', '512'])) + const appDanger = b64(svgToPng(squareIconSvg(DANGER_RED), 'dock-danger', ['-w', '512', '-h', '512'])) + + // Windows taskbar overlay: a small danger badge (status cue, not the logo). + const overlaySvg = ` + + + +` + const overlay = b64(svgToPng(overlaySvg, 'win-overlay')) + + const banner = `// AUTO-GENERATED from public/logo.svg by scripts/generate-brand-icons.cjs. +// Do not edit by hand — run \`node scripts/generate-brand-icons.cjs\` instead. +/* eslint-disable */ +/* prettier-ignore-start */` + const body = [ + banner, + '', + '// macOS menu-bar template silhouette (rendered @2x).', + `export const TRAY_ICON_BASE64 =\n '${trayNormal}'`, + '', + '// Tray icon shown when accounts have health issues (rendered @2x, not a template).', + `export const TRAY_DANGER_ICON_BASE64 =\n '${trayDanger}'`, + '', + '// Dock / window icon — logo on the brand-blue plate.', + `export const APP_ICON_NORMAL_BASE64 =\n '${appNormal}'`, + '', + '// Dock / window icon — logo on a danger plate when issues exist.', + `export const APP_ICON_DANGER_BASE64 =\n '${appDanger}'`, + '', + '// Small Windows taskbar overlay badge signalling account health issues.', + `export const WINDOWS_OVERLAY_ICON_BASE64 =\n '${overlay}'`, + '/* prettier-ignore-end */', + '', + ].join('\n') + fs.writeFileSync(OUT_TS, body) +} + +try { + buildAppIcons() + buildMainProcessIcons() + console.log('✓ build/icon.icns, build/icon.png, build/icon.ico') + console.log('✓ src/main/brand-icons.ts') +} finally { + cleanup() +} diff --git a/apps/desktop-client/src/main/app-issue-indicator.ts b/apps/desktop-client/src/main/app-issue-indicator.ts index 5a7c76d..4984c4a 100644 --- a/apps/desktop-client/src/main/app-issue-indicator.ts +++ b/apps/desktop-client/src/main/app-issue-indicator.ts @@ -2,6 +2,11 @@ import { nativeImage } from 'electron/common' import type { BrowserWindow as ElectronBrowserWindow } from 'electron/main' import { app } from 'electron/main' +import { + APP_ICON_DANGER_BASE64, + APP_ICON_NORMAL_BASE64, + WINDOWS_OVERLAY_ICON_BASE64, +} from './brand-icons' import { createRuntimeSnapshot } from './runtime-snapshot' import { updateTrayIssueIndicator } from './tray' @@ -11,12 +16,6 @@ type AppIndicatorImage = ReturnType const HEALTH_ISSUE_AUTH_STATES = new Set(['expired', 'revoked', 'challenge_required']) const ISSUE_INDICATOR_REFRESH_MS = 15_000 -const APP_ICON_NORMAL_BASE64 = - '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' -const APP_ICON_DANGER_BASE64 = - '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' -const WINDOWS_OVERLAY_ICON_BASE64 = - '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' let refreshTimer: ReturnType | null = null const appIconCache = new Map() diff --git a/apps/desktop-client/src/main/brand-icons.ts b/apps/desktop-client/src/main/brand-icons.ts new file mode 100644 index 0000000..42e9e03 --- /dev/null +++ b/apps/desktop-client/src/main/brand-icons.ts @@ -0,0 +1,25 @@ +// AUTO-GENERATED from public/logo.svg by scripts/generate-brand-icons.cjs. +// Do not edit by hand — run `node scripts/generate-brand-icons.cjs` instead. +/* eslint-disable */ +/* prettier-ignore-start */ + +// macOS menu-bar template silhouette (rendered @2x). +export const TRAY_ICON_BASE64 = + 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAACt0lEQVRYhe1WPWgUQRT+3ty6ZqM5jAYvCJqbNTHEwiKkCAiRExvRxspOQbCwiIVoYSGEYCEp/GnEQkgrplEiNrEJWBhEBAnEI97OXC4EEaIgXgzJ7jwLN+GyucvdJppC74OFnffzvW/evP0B6qjjfwfFTchmsy22bb8GcJCZB/L5/L1MJuNvVoCIm2Db9nEAnQAaiWgonU5PaK27t00AEUVzuo0xE1rroUKh4Px1AUEQfALwMyLKYuYbQRB80FqfjMNXdQY8z3tMRJlw+WV+fr6vp6dnGQCmp6eTlmWNAugrSWEAw0KI621tbd+q8VftgBDiBAA3vHpTqVTTiq+jo+M7EY1HUgjAJWPMlFLq/JYFbAEpAE+01qO5XO5QpaA1RzAzM3OAmRsAwBgzJ6VcVEq9BHA6DPns+37atu3DABxjjAXgAYAuAAER7WDm3euKEP0wxtyUUj4kIlNWQD6fP2qMmSyxPZJSXomS5XK5U0KIsRLTMynlOQBgZqG1HgZwocKG3wRBcLm9vX1yxVB6BM2RjuwvxyCE2BfZ3WzJvWHmtxWKA0BvIpEYZ+ZEOQE1gZl5Iz8RNVahmMXvJwUAYK0qEWLKGPOciHaFhUYAQCnVC+BYSF4wxkwAGCUih5l9Zn6nlBoA0EBECWa+WKHwEoC7juPcLp2Dqu8BpVQWwJFQlE9ETVLKxRW/53m3iGiwCs0YM/e7rpuNOqxy0ZViiMhaWFhYk0NEG3EUmPm667pPq5JXQjhYq+tkMhmU+pm5hWhdI5cA3HccZ7C1tbW4EX8tHbiKcAaYec73/Z1KqTtE1MzMTcx8NiL4FTP3Syk/1sAd/39Aa32GmV+sIyKaNcZcc113JA7fZr6GUdHLAIaKxWJX3OJAbUewBrZtv/d9/yuAvXHb/ceglNrjeV7nthato45/Fr8AC58XxWfGw7UAAAAASUVORK5CYII=' + +// Tray icon shown when accounts have health issues (rendered @2x, not a template). +export const TRAY_DANGER_ICON_BASE64 = + 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAACl0lEQVRYhe2WS0hUcRTGf+fOdXyUoaVJQREFiQkuZiUERtFG8t6ZFkO7gqBFC1tELVoEg7QIFz02ERK4jVykM5qgLUZokUQJIZjQJhSJoCRTHOdxTwttdK4zjjOYi5oPLtz/Od/5zvd/3AeUUML/Dim0QC2rDow3wBFUQywuPJRoNFmsAaOImtNAI1CFSDfVNeNqWb7dM6CGq0Z9YIyr7e/WYLDy7xvw8BlYdkVNlNvE4h/Vss4VIpf3DKhlPwPOrtG/caihTXp6EgDa3r4P0xsB2jaWoNKLJm7J0NB8Pv1trICcATm+etHKl/nqdGZ4eAF0zF2A6FUMc0o7/Jd2wEDRaEB4rpYdUcs6mouUsQVq24dJlVUAsPR9TqLRmFr2K5D2NcpXkvFjeL0nSEolppo4PAaagBRQBuzN0mcR0Tv4fE8kFHKyGlC//xQOk+mY8FTCA9fdSur3n8dhdEOoXyIDFwE0FDL4MNGLcjnHhN/iGNdk6OXkn8D6FqjWZqyIysGsEikOZDqS2fRsQiEH9F2O5gCtGM6YBoOezQa2CxHdmmBU5VGYpbk5rWGmwyvlU3gTA6juWdVx+gDUsloRTwsAygwpYxxPKoJSiZBEeK92IIRqBeBBnSs5nu448ICV5Xsbz0H+94Dtn0Y5uTZM8utntUSjsfV84C6qXVuryCjidEo4PO3OmNnomQ7U3ODTpL7e3JzPiRmQWxLpf5GLkN8A4rgCKde4LktRHNVHxGNdMjKytJX6dgzcAG1Zu58jkShXy38fqAWqgY4MuvIacTplMPIpv3Yx/wO2fQGVwSxKs6A3JRzuK0SviM+xx206gWo35d6mQpvDtrbAbSAxgXh+APsLXe4dgwYCNWrbjbvatIQS/ln8Bo995P1hCXtRAAAAAElFTkSuQmCC' + +// Dock / window icon — logo on the brand-blue plate. +export const APP_ICON_NORMAL_BASE64 = + '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' + +// Dock / window icon — logo on a danger plate when issues exist. +export const APP_ICON_DANGER_BASE64 = + 'iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3deZSc1Z3m+edGRGbkvmpnFatAgNhsFmMQGIMF2ljE5qXK2AZTYBtsYxbPnOk+M1Nd5alqd1VXuaupnlrs6WZJtGSmhIzEIhsweMEGhMAGg2SwUlumlErlFhnLnT8kg0ASWjIyfm/c9/s5hwOHo4x4lBkZ94n73vdeCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwd846AOz5WQvGKzV8tJw7WgUdLSUOkyu0SmqV3K5/q1ZSeteXNEpK2KQFsBd5SX27/ntY0oCknvf/8T3y6pLcWiX8Onm/znV2dluFRTRQAGLEz5rVoIqK01Vwp8r50yR3mqTpkuqtswEouT5JayS9IukVFbRaSf+S6+jYYZwLJUIBCJifM+dIefdJJdx58v4CyZ0iKWmdC0Bk5eW0WgX3rJx/Xgk949rb37UOhbFBAQiInzmzSo2NF6igS+V0qbzOss4EoNz5tyU9Ie+Wqn/7Srdq1bB1IhQHBaDM+QUL6pTJzJbcdfK6XFKNdSYAwRqU3I/l/SMaGVrqVqwYsA6EQ0cBKEP+llsq1LVpthK6SV5XiEEfQOkNSn6p5P+XduxY5latylkHwsGhAJQRP2/eESroJkm3SzrCOg8A7LJR0r8r6f7ZLVnylnUYHBgKQMR5yWnO/M9Iukvyl4qfGYDo8pJ7QtL31bnkx07y1oGwbwwmEeUXLKjU0MgNcrpb0inWeQDg4Lg35Qr/qHT6AdfWNmSdBnuiAESMnzmzSvWNt0i6T9Ik6zwAMEpdkvsr5TIPuOXLM9Zh8D4KQETsWth3o5z+g6Sp1nkAoMjelfN/q2z2nygC0UABiAA/Z/41UuF7kjvGOgsAjLG35HW3W9q+2DpI3FEADPkrrzpJycL3d92/DwBx8rR84i63dPHL1kHiigJgwC9Y0KjMyF/J6ytia14A8ZWX0z8pO3K/W768b/9/HMVEASgxP+eq2VLhB+I+fgD4kw2S+5rrXLLQOkicUABKxF9xxSSlKv6rvK61zgIA0eQfkdPXXUfHJuskcUABKAF/5bzLldC/SppsnQUAos1vkXdfckvbO62ThI4CMIb8ggXVGh75K0lfE99rADgYP1Jm6DYOHBo7DEpjxF951SlKFNokTbPOAgBl6jUVEte6ZYtftw4SooR1gBD5uXNvUKLwghj8AWA0Tlai8As/d+4C6yAhYgagiPzMmSnVN/5fkr4jvrcAUET+AU2edId74IGsdZJQMEgViV+woFFDI4/K6VLrLAAQJKfHlR25jj0DioMCUAR+9uzDlEguldfp1lkAIHCvSoUrXWfnO9ZByh0FYJT83LmnSW6ZvA63zgIAMbFBBTfHLVvyonWQcsYiwFHwc+deKO+eZfAHgJKarIT/iZ89/1PWQcoZBeAQ+TnzZ8m7H0uqt84CADFUK+c7/Ny5n7EOUq4oAIfAz543R/KLJFVbZwGAGKuRd+07j1THwWINwEHys+ddJadHJKWsswAAJEk5yS1wnUuWWAcpJxSAg+Dnzv20vOuUlLbOAgD4gBF5XeWWtj9mHaRcUAAOkJ879xPy7nFJtdZZAAB7NSTvrnBLl6yyDlIOKAAHwF85/ywl/CpJddZZAAAfqU95d5F7bMlL1kGijgKwH7s2+XmBW/0AoGx0SYXz2Czoo3EXwEfws2Y1yCUfY/AHgLIyRUo85ufPb7IOEmUUgH3wM2emlKxcKOk06ywAgIM2XQX/kF+wIGkdJKooAPtS3/g9DvYBgDLmdbmGMn9pHSOqWAOwF37u3Bvk3YPWOQAAo+bl/PWuo6PNOkjUUAA+xM+ZM01K/EJs8QsAoeiXCue6zs411kGihEsAu/Fz5tRIicVi8AeAkNRJiYf9ggVs374bCsAHJP6zpGnWKQAARTddQ9nvWYeIEi4B7OLnzJ8l+WXiewIAofLymueWtndaB4kCBjtJ/oorJimZekVy462zAADG1GalEqe6xYs3WwexxiUASUpW/AODPwDEwgTlCn9vHSIKYj8D4OdcNVsqMB0EALFSmO86O9utU1iKdQHws2Y1qKJyDVv9AkDsdCnpprslS3qtg1iJ9yWAisq/ZvAHgFiaopz+T+sQlmI7A+CvmH+6kv5XktgnGgDiKS/nz3QdHa9YB7EQ3xmAZOG/iMEfAOIsKZ/4vnUIK7EsAH72vGsld5F1DgCANX+JnzNnnnUKC7G7BOAXLKjUcOZ1yR1jnQUAEAXuTe3oPdmtWpWzTlJK8ZsBGMrczOAPAHifP171TX9mnaLUYjUD4GfNSitV+aakI6yzAAAi5R3lRk5wy5dnrIOUSrxmACoqvioGfwDAno5URfpm6xClFJsZgF2f/tdKmmydBQAQQU5/VLryWNfWNmIdpRTiMwOQqvy8GPwBAPvidbgymRutY5RKLAqA3znTcZd1DgBAxHn3bR+T2fFYFADNnjdL0snWMQAAkXeKrpx3mXWIUohHAXDuTusIAIAykYzHjHHw0xz+ymuOUSL3puJSdgAAo+WVdMe7JUvesg4ylsIfFBO5rygOf08AQLE4FfTn1iHGWtAzAH7mzJTqG98Rq/8BAAdng3ZsPzLk7YHD/mRc1zhHDP4AgIM3WXWNs6xDjKWwC4DTZ60jAADK1k3WAcZSsJcA/GWX1SpdvUlSrXUWAEBZGlRmaIJbsWLAOshYCHcGIF0zVwz+AIBDV6PK6mAvA4RbAOSvs04AAChzzgU7lgR5CcDPnFml+sYeSTXWWQAAZW1AuZHWEI8JDnMGoLbxIjH4AwBGr1ap1CesQ4yFMAuAc8FeswEAlFoiyDElzAKQ8EH+sAAAJoIcU4JbA+CvuPooJfPrrHMAAALi84e7pUvXW8copvBmABK5C6wjAABCkwxubAmvADgFuVgDAGAowLElvAIgF9wPCQBgLbyxJag1AH7WrAalKrdKSlpnAQAEJaeqymbX1tZvHaRYwpoBSFWdIQZ/AEDxpZTJzLAOUUxhFQD506wTAABClQhqjAmrAHh/qnUEAECgfCGoMSasAuAU1A8HABAljhmACJtuHQAAEKygxphgCoCftWC8pHrrHACAYDX5K69stg5RLMEUAKWGj7aOAAAIXDJ5tHWEYgmnACg51ToBACB4wYw14RQAp6OtIwAAQpegAESOL0y2jgAACN4U6wDFEk4BcG68dQQAQOj8OOsExRJOAfBqtY4AAAhcQGNNOAVALpgfCgAgsoIZawIqAL7FOgEAIHThfNgMqACoxjoAACB0PpixJqQCkLYOAAAIXjBjTUgFoNI6AAAgeMGMNRQAAAAOHDMAEVRhHQAAELxgPmyGVACcdQAAQPCCGWtCKgAAAOAAUQAAAIghCgAAADFEAQAAIIYoAAAAxBAFAACAGKIAAAAQQxQAAABiiAIAAEAMUQAAAIghCgAAADFEAQAAIIYoAAAAxBAFAACAGKIAAAAQQxQAAABiKGUdAMC++URCO2ZepHxd3Uf+ucTwsBKDg6p74edyuVyJ0gEoZxQAIIJ8ZaV2nHOO+i6ZqVxr6wF/Xd9FF6r1oUdU9dZbYxcOQBAoAEDEFGprtOmrtypz1FEH/bXZiRO18et3qO5XL6pl0WIlBgbGICGAEFAAgAjJNTVp0+23KTtx4qE/iHPq/9jZGjrxBLUsaVfti7+WvC9eSABBYBEgEBHZCRO08a5vjG7w302+oUFbvvB5bfz6HcqOH1+UxwQQDgoAEAEjhx+mjXd+Q7nm5qI/9vCxx2rDPXdrx4WflJwr+uMDKE8UAMBaIqHuz31W+braMXuKQmWleq69Rhvu/Lqyk4ozwwCgvFEAAGM7zvm4RqZMKclzZaZOVdd37lbv5ZfJJ/j1B+KMdwDA2MDZZ5f0+Xwqpd4rr9CGe75zSHcaAAgDBQAw5NNpZaYebfLcI5MnacM371TPDderUFlpkgGAHQoAYGjouGPlU4Z34zqnHeefp6777tHQtBPtcgAoOQoAYChz3HHWESRJudZWbfqL27TlC59Xvr7eOg6AEmAjIMBQvrbGOsIHDJx9loamn6zm9g7VP/8CGwgBAWMGADDk01XWEfZQqK5Wzw3Xa9NXbz2ocwgAlBcKAGCokE5bR9inoZOmaf3992r7pZ+SuGUQCA6/1YAhXxHtq3C+okLb5s7Rhm/dpZHDSrNXAYDSoAAAlsrkGnvmiCPU9e1vadvcObZ3LQAoGn6TAUNltTN/Mqntl35Kg6eeosYVK1X34q+lQsE6FYBDxAwAYKlQHjMAu8tOnKjuz39OG++4XfnGRus4AA4RBQCw5Mv3E/Twcceq6567NXj6DOsoAA4BBQDAIcvX1WnzzV/U5i99UfmGBus4AA4CawAAU2W1CmCfBmfM0PCJJ6pp2XI1/PSnZbO4EYgzZgAAFEWhqkpbr7lKG79+h7ITJljHAbAfFAAARTV87M61Ab2XXyafTFrHAbAPFAAARecrKtR75RXquv9eDZ1wgnUcAHtBAQAwZrLjx2vT7bep+6YbVaiJ1sFHQNxRAACMLefUf+45Wn//vRqccZp1GgC7UAAASzHaSS/f0KDNX7pZm2+9RfmmJus4QOxRAABDrpC3jlByg9NP1vr77tGO88+zjgLEGgUAMOTy8ZkB2F2hulo9N1yvTbfdqlxzs3UcIJYoAIAhN5KxjmBq6KST1HX/veq76EIpwdsRUEr8xgGG0m+vtY5grpBOa+s1V6vr29/SyBFHWMcBYoMCABiqfv231hEiY+Tww7ThW3ep98or5FPsUg6MNQoAYCi1bZsqNm60jhEZPpFQ7+WXqev+ezXMBkLAmKIAAMYan15lHSFysuPGaePtt6nn+utUqKqyjgMEiQIAGKt7/gXV/epX1jGixznt+MT5Wv+/3a+B00+3TgMEhwIAREDLw207SwDH6O4h39CgLTf/uTZ/6WblGxut4wDBCOMwckl+zjzeOVH2hk84QT3XXctxuvuQGB5W85J21T//AmUJZlxnexBjZxB/CYkCgHD4VEqDp5yi3MQJytfUqFBbo0JtnXzFnivj3XDmgHYTzNfXKztxovJ1dWMRueSqfveGxj38sFLdPdZREEMUgIihAGCfnNPIpEkq1NWqUFurfHXNgb/yUykplzuwP+ulqrd+r4rNWw456lgrVFcrO2mSdnzifPWfdaaUTFpHOmRuZERNP35cDU89LRejMxVgjwIQMRQA7E2uqUk9N92ooWknluw5q95eq7oXXlDti7+Wy2ZL9rwHK9faqu7P3qTh4461jjIqlV1dav1fDyn9zjvWURATFICIoQDgwwZOP33nbWS1NufQp9eu1cQf/JMSmehu9+sTCW299hrtuOAT1lFGp1BQw6qfqPmx5XIjI9ZpELhQCgB3ASBI3Z/7rLbc/Odmg78kZaZO1eZbviy56L5XuEJBrW2PqublV6yjjE4iob5LLtb6++7R0Imlm+0ByhkFAMHJjWtV/8fOto4hSRo+/ngNH3ecdYyP5r3GPfiQUr3brZOMWq61VZv+4qvqvulGFWrsyh9QDigACM6O88+P1KfuHeedax1hvxKDg2p4+mnrGMXhnPrPPUfr77+XDYSAj0ABQFB8Mqn+c8+xjvEBg6fPUL621jrGftX97HklhoetYxTNnzYQ2nTrV5RrabGOA0QOBQBByU6YELl73X0qpczxEb8MICmRySi9dp11jKIbmj5d6++7R30Xz5QSvOUBf8JvA8KSjOZLulAmx9umurutI4wJn05r61XzteGuOzUyZYp1HCASovluCRwqF9GXdKrCOsEBqegJe2e9zFFHquvub2nrNVerUFlpHQcwFdF3S+DQ+Agt/tudT5XHjnuhzgB8QDKpvosuVNe995R0gyggaigACEs0x/+yufbshqO7aVGx5ca1atNf3KYtX/i88nXRX6QJFFt5XJgEDlhEG0CZ7FUf0QmUMTVw9lkaOvkkNXd0qv5nz1vHAUqmPD6WAAcqjiNYMRXiuaN2oaZGPTdcr0233qJcc7N1HKAkKAAIS1TH/3I5u96Xx0zFWBmafrK6vnuf+i66sGwu2wCHilc4gPcxg6JCZaW2XnO1ur79TY0ceYR1HGDMUAAA7IYC8Ccjhx+urrvu1NZrrpZPp63jAEVHAQBKgU/W5WnXLYPr77lbQyecYJ0GKCoKAADsR27cOG26/TZ133gDpwwiGBQAALspk8WKFpxT/3nn7jplcIZ1GmDUKAAA3sfK9/3aecrgF7X5Szcr39BgHQc4ZGwEBOB9TAAcsMEZp2n4xBPUtGy5Gn760/K51RPYhbqPsET1PbhcFgHGfB+Ag1WoqtLWa67Sxq/doey4cdZxgINCAQCwmzIpKhEzfNyx6rrnbm2/5GJ5LqOgTPBKBfC+cpmpiCCfTmvb/HnacM/dyhxzjHUcYL8oAABQRCOTJ2vDN76mnhtvUKG62joOsE8UAISFhVijUqistI4QBue047xztf6792ng9NOt0wB7RQEA8J5ca6t1hKDsvGXwz7Xp9tuUnTDeOg7wARQAAO/JjaMAjIWhE09U1z3fUe+sz8gnk9ZxAEkUAAC7yXEr25jxFRXqnfUZbbj7W5wyiEigACAoyYEB6wh7lRgctI6wX/nGRg0fy+r1sTYyZYo2fPMu9V55hXyKvdhghwKAoKS6u5Xs67OOsYf022utI+xXz4JrVaiqso4RCz6RUO/ll6nr7m8pc9RR1nEQUxQABKcqYoNtsrdXqW3brGN8pIEzz9Tgaadax4id7OTJ2vDNO9Vzw/XcgYGSowAgOOm33rKO8AFVb79tHeEj5RsatPXaq61jxJdz2nH+eeq69zsaOuEE6zSIEQoAglP74otK9kdjLYDLZtW48gnrGHvl02lt/9QlWn/fPcrX1VnHib3cuHHadPtt6v7sTWwghJJgBQqCk+wf0Ph//Tdt+uot8hUVZjncyIhaH3pYleu7zDLswTnla2o08LGztf3TlypfX2+dCLtzTv3nfFxD005U68JFqnnpZetECFgwG3/7OfPYAq6I8nW1GjzjDA0fe6yUcPIuIV9d3AViyd7tqnrzTVW9+aZSW4t/jTxz1FHq/sLnlB1f+g1Yqn73hsY9/LBS3T0H9XU+kdDQ9Onq//jHlGtu3vk/E4k9Fuft866ChFOh6v1Pj66QlxvOqFBTo0JtDZ8sy0z1mtfU+uhCpXoO7nWEseU624MYO4P4S0gUgGIZOP109Z93zs5rkSXcsCTV06Omx1eo7oWfF/VxfTKpwTPP0OC0acoeNkW5pqaiPr4kuVxObiSrxNCgXMGr/mc/2/n3OIhtiQtVVeq9YpYGzj5b+braomccrYpNm1T3y1+p6ne/kyvydsuF6mplW1qVG9eqkSmTNXTyyRxKtBs3MqKmFSvV8ORTcvm8dRyIAhA5FIDR6z/n4+r+7E2mGRqffErN7R2mGUrNp9Pa+LXblTnySOsoe6h5dY0aH1+h9B/+ULLnHD5mqnpuvEHZiRNL9pzloGLjRo178CGl166zjhJ7oRQAFgFCkpSvrdW2+fOsY2j7py5R/8c/Zh2jpHquWxDJwb/hJz/RhH/+HyUd/KWdt3FO+d7fqOnxFXKFQkmfO8qykyZpw53f0NZrr+GWQRQFBQCSpG1XzVO+NhpTz9uumh+bDWkyRx2p/rPPso6xh6q316pl0RKz0xVdNqumZY9p0t9+Xy6TMckQSc6p78JPquu792lw+snWaVDmKADQ8PHHqf9j0fnUna+t1eCM06xjlET/OedE8np307LHInG0cvrddzXuoYetY0ROrrlZm2+9RVtu/qLyjY3WcVCmKADQ0EknRW4Qisue9LnxETx8x3ul162zTvGe2hd/rfrnX7COEUkDp8/Q+u/epx2fvCByv8OIPgoAInk9Md/UbB2hJPI1NdYR9pDq7ZXLZq1jfEDLosVKRPSgJ2uFqir1LLhWG+78urKTWDiJA0cBgHwEr7f7injsUVWIyLqL3aU2b7GOsAeXyaiWTXE+UmbqVHV95271Xn6ZfAlv4UX5ogBAhXT0ZgB8TKYzo7jYsSKim86kI36mQhT4VEq9V16hDd+5W5mpU63jIOIoACjphj/4kET0fgWjNv3/J1E536EcjEyepI1fvyOSd5ggOqL37gPESUxmOoohMTRkHaGs+GRS3Z//nHpnfcY6CiKKAgCgLFAADoFz6p31GfVefpl1EkQQBQBAWXCZYesIZav3ilnKHBOPW2tx4CgAiCQXzjEVKBJeE6PgnPouvMA6BSKGAgAAMTA4Y0YkT5qEHQoAIrHlK4Cx5ZNJDURoy2/YowBAYvy3Q/lCCQ2ecop1BEQIBQCK4qVVTyvBh/CaGL1CdfQ2noIdCgC4Fx2ICZ9OW0dAhFAAEE2UEjuR/d5HNVf5KFAAsBsKACKKN3sAGEsUAEQU13uBYqtcv946AiKEAgDgg7gzIVg1q1+1joAIoQAgmhiE8GGRXZtQJrxXzatrrFMgQigAgCUGtQOWG9dqHaGsNT69SsneXusYiBAKACQXvZcB+74bimgpGZkyxTpC2ap89101dS61joGIid47P0qODVZQDrIUgEPiMhmN/+H/J5fPW0dBxFAAIG65MxTFtQ4RfTlkjjjCOkL58V6tbQtVsWmTdRJEUMo6AOwlonjOekw+rST7dqhQFa3tWRN9O6wj7GHgzDM1cvhh1jHKSqq7R+MefFBVb/7eOgoiigIApbZus46wB5fNWkcoiVTvNmUnjLeO8QGpbdFaKFaoqtLWq+ZZxygf3qv++RfUsniJXCZjnQYRRgGAUtuiVwCSAwPWEUoiGcHyFbXXw9ar5ivf2GgdoyxUbNyocf/zQaX/8AfrKCgDFAAo1d1jHWEPVW+8YR2hJCo2b7aO8EHeK7Vli3WK9+w4/zz1n3uOdYzIcyMjalz5hBqffEoul7OOgzJBAYCqf/tbVb/+uoZOOsk6iiQp1dur2pdeto5REvXPP6/+889Tdtw46yiSpJpXVisVgXvFsxMmaOs1V2vopGnWUaLNe9X+5jdqXtIRiZ8bygt3AUDyXuN/+KNorAXwXq0PPRyba5eJgUFN+Of/V4lh+4WYFRs3qfWhh82e36dSyk6aqG3z56nrvnsY/PejsqtLk/7+HzT+337I4I9DwgwAJO0ciMb96EfaeMftUjJpE6JQUOuixap+7XWb5zdSsWGDxv3wR9r8lS+bbcKT2rpNE3/wg32uvcg3NWn4+OOUOeww5Vuai/rc+eoa5caPV665KbKbEEVJYmhITcseU/2zz8kVCtZxUMaC+W3zc+ZF8Ibq8jM44zT1XXCBho8/TkqUaILIe1Vs3qzm9k7VvFr8w0p8Mqmhk6Zp8MwzlG9oKPrjS5JyeaXfeUdVb/5e6XXrDukuhqETT9S2ObM1cmTp7nd3uZzqXvi5mlas3Os2sdkJ49V7+eUaPOtM+VK9HrB33qvu5z9Xc0enkv3xWCQbVa6zPYixM4i/hEQBKLZ8Xa0GTztNI0ceOWbPkezrU/oPf1B63TolBgaL/vjZSRO1/eKLNTjjNBVqaor++PvislnVrF6tlkcXKdnff9Bf79NpZVtalBs3TrnWFvlUSi6XkxsZ2f/XVlbKp/Y9sedyOSX7+pTs7VWqr0/J7X37LCtD06dry599PnL7FMRR5R/Xq7XtUaXXrrWOAlEAIocCgN0Vamu0/rv3K19XZ5Yh1dOjyd//OyX7+swyHKrh44/XxttvK90sEPYqMTy8c7r/mWeZ7o+QUAoAv90I0tZ580wHf0nKtbZq85duLrvr2oWaGnV/7iYGf2M1a17TlL/8T2r4yU8Z/DEmWASI4Awfd6z6z/m4dQxJUmbq0eo/9xzVPf+CdZQDtm3uHOWai7vQDweuYuNGtS5cpKrfxWMvDNihACAoPplUz/XXRepT947zzyufApBIaODss6xTxFJiYFBNjz+u+p8+wyd+lAQFAEHJNzcrO3GidYwPyBx5pHwyWRbHseYa6lWorLSOES/eq+6Xv1Tzko5DWjQKHCoKAIJSSEdw8HJO+cZGpbZutU6yX/n6MbpNEnuV6u7WuAcfVtWbb1pHQQxRABCUQjptHWGvPurWvCjxVdH8/oUmMTCo5mXLVP+z5yWm+2GkPN6VgAPk0xG9Z91qd8WDFp21E0HyXnW/elHNi5cw3Q9zFAAExScYwEYlQosnQ1O5vmvnZj5vv20dBZBEAQCwO8b/oksMD6tp6TI1PPsc0/2IFAoAgPexn2ZRVb/2ulofepjT+hBJFAAAKLLk9u1q7lyqul/80joKsE8UAKAUPB+tYyGfV8Ozz6lp6TIlMhnrNMBHogAgKC6yF7HLpABQVA5Z1RtvqHXhYlVs2GAdBTggFAAA7+MugINWsWWLmjqXqfall6yjAAeFAoDA8AkWpeEyGTUt/7EaVv2EvftRligACAyfYEeFb98BqV6zRq1tC8tie2dgXygACIqP7AwAI2sIKjZuUvOyZap5+RXrKMCoUQAQlqhew45qLhwQl8mo8amn1bhiZVmc6ggcCAoAUALRnZnAR/JetS+/rOZFS9jMB8GhAAAlEN3bEz+kQFH5k8o//lGtjy5i734EiwIA4H1cqti5d3/nMjU8x979CBsFAMB7fKpcji0eGzUvv6KWhQuV6t1uHQUYcxQAhIWd7EbFV1RaRzCR6u5R68JFql6zxjoKUDIUAIQlqlPYZVJMfEW83hJcoaD6Z55VU+dSJUZGrOMAJRWv33bEQEQLQJnINbdYRyiZ6td/q5aFC1WxeYt1FMAEBQBhSUS1AJTHDMDAGTOsI4y5ZG+vmpcu46hexB4FAEFJDA1bR9i7fPRXk6HJOEUAAA/USURBVOfGjdPI4YdbxxgzLpdTw5NPqWnlE3JM9wMUAIQltS2ae7O7bNY6wn4NnHG6dYQxU/W7N9Ta9qgqNm+2jgJEBgUAQUlu69254C5KiwHzeSWHhqxTfKRcS4v6LrrQOkbRVWzeoub2DtWsXm0dBYgcCgCC4vJ5pbZtU64lOovZqv7wjlwmYx1jnwpVVdp861eUb2iwjlI0bmREjU8+pcaVT8jlctZxgEiiACA4LQsXa/OXb47MLEDDU09ZR9gnn0pp8y1f0cjkydZRiqbm5ZfVunCxkuzdD3wkCgCCU7N6tRpW/UR9F8+0jqLaF3+tmleiOf2cnTRJ3Z//rDJHHGEdpShSvdvV1NGhul+9aB0FKAsUAASpub1DmalHK3P00WYZql//rVofetjs+ffKOQ0fe4z6zz1HA2ecIV9RYZ1o1NzIiBqfeFKNTz5VFostgaigACBIrlDQhH/5N23/9Kc0MGNGSa9vJ/v6VPvir9Xc3iF3iIfJFNJpZY6ZquFjjlGhvv6AvsYnnHxVlSTJZUbeO7e+UFOtfH2D8vV1yjc2qpBOH1KmKKr9zUtqXtKu1LZt1lGAshONi6RF4OfMK4+dVlB6zmn4mKkaOvVUFXYNkEV/iuFhpd95V+l1a5XaeuiDUf+552rHBecrc9hhUjLeB/N8lMoNG9Ty6EJVvfl76yiIIdfZHsTYyQwAwue9qt56W1VvRfdcd19RoZ4brlf/x862jhJpfzqqt/655w55dgXAThQAIAK2X/ZpBv/9qFnzmloeaWO6HygSCgBgLDthvLZfcrF1jMjaeVTvQlWvec06ChAUCgBgyTn1XH99EKvxi83lcjs381mxktX9wBigAACGho+ZquHjj7OOETnVa15Ty6LFqtjCUb3AWKEAAIbyEdqyOAoqtmxRy6LFTPcDJUABAAzla2qsI0SCy2Z3bubzxJNM9wMlQgEADBUoAKp64w21ti1UxaZN1lGAWKEAAIZC2pXvYKW6u9W6cBHT/YARCgBgKSInFpYS0/1ANFAAAJRMzcuvqGXx4lFtlwygOCgAAMZcsrdXrYsWq+all62jANiFAgBYCvwSgMtm1fjU02pc+YTcyIh1HAC7oQAAlgIe/2vWvKaWRxcq1dNjHQXAXlAAAFPhNYBU73Y1L1qs2pdeso4C4CNQAABLAV0CcPm86p99Ts1Ll8llMtZxAOwHBQDAqFWveU2tCxcp1d1tHQXAAaIAAJa8t04wKqmtW9WycLFqVq+2jgLgIFEAABy8fF4Nzz6nps6lSrC6HyhLFADAVPnNAFS99bZa2h5VZVeXdRQAo0ABAAy5bM46wgFLdfeoZeFC1bB3PxAECgBgqBxWy7tCQfXPPMvqfiAwFADAUGJ42DrCR6r63RtqffgRVbC6HwgOBQAwFNUCkBgYUPPyH6v+mWfL/k4FAHtHAQAMVW7YYB3hA1w2q4afPqPGFSuVGBqyjgNgDFEAAEOV7/5Rqd5e5ZqarKOoZvVqtSxawt79QExQAABL3qv2xV9r+6cuMYuQ6u5W68LFql6zxiwDgNKjAADG6p5/Xn0XflK+oqKkz+uyWTWuWKnGp56Wy2ZL+twA7FEAAGMVm7eoZfES9Vy3oGTPyVG9ACgAQATUP/uchk44QYOnzxjT59k53b9I1WzmA8QeBQCIiHEPPqSuI49QrqWl6I/NZj4APowCAEREYmhIEx74H+r+wuc0MmVK0R636o031Nq2UBWbNhXtMQGUPwoAECGVXV2a/L2/Ud+nLlHvZy4f1cLAyvVdanx8hWpfeqmICQGEggIARIwrFNS48gnV/uYl9Vy3QEPTTjyor6966y01PvGkql97nV38AOwTBQCIqFR3tyb+4L8p39CgoWknanjaiRo64QTlGxo+9Od6VLVurdJr1yn9+9+rcsNGo8QAygkFAIi4ZF+f6n7xS9X94peSpEI6rUJ9naSd6wYSA4OW8QCUKQoAUGYSmYwSrOQHMEoJ6wAAAKD0KAAAAMQQBQAAgBiiAAAAEEMUAAAAYogCAABADFEAAACIIQoAAAAxRAEAACCGKAAAAMQQBQAAgBiiAAAAEEMUAAAAYogCAABADFEAAACIIQoAAAAxRAEAACCGKAAAAMQQBQAAgBiiAAAAEEMUAAAAYogCAABADFEAAACIoZAKgLcOAAAIXjBjTUgFIGsdAAAQvBHrAMUSUgEI5ocCAIisjHWAYqEAAABw4IIZa0IqAMG0MgBAZAUz1oRUAAatAwAAQueCGWtCKgA91gEAAKHz3dYJiiWgAuApAACAMRbOWBNQAXDBtDIAQFSFM9YEVADCaWUAgIhybqt1hGIJpwC4xAbrCACAwBUK660jFEs4BUCFtdYJAACBS2iddYRiCacAeL/OOgIAIHjBfNgMpwAE9EMBAERUIhHMWOOsAxSTnzNvu6QG6xwAgCBtc53tLdYhiiWkGQBJWmMdAAAQKKdXrSMUU2gF4BXrAACAYAU1xoRVALxWW0cAAAQqsDEmtAIQVDsDAERIggIQXUn/kqS8dQwAQHByqqwM6kNmUAXAdXTskAuroQEAIuEl19bWbx2imIIqALs8Zx0AABAY74IbW8IrAAH+kAAAxhKF4MaW8ApAwj9rHQEAEBwKQNS59vZ3Jf3WOgcAIBirXUdHl3WIYguuAOyy3DoAACAQ3gc5pgRaANyPrRMAAAKRUJBjSpgFIJf5iaSgbtcAAJgYUDb7M+sQYyHIAuCWL89IboV1DgBA2Vu6c0wJT5AFQJLk/SPWEQAAZc6FO5aEWwBcoVPSgHUMAEDZ2qF0OsgFgFLABcB1dg5Kfpl1DgBAmXLqcG1tQ9YxxkqwBWCnxIPWCQAAZconHrKOMJbCLgA7epdKCm7zBgDAmFuvqlSw0/9S4AXArVqVk3f/bp0DAFBu/L+4tragj5cPugBIklz+nyUVrGMAAMqGVzIR/IfH4AuA6+xcK7knrXMAAMqE0wq3ZMlb1jHGWvAFYJfvWwcAAJQL/7fWCUrBWQcoFT9n3suSTrPOAQCItNXqbJ/hJG8dZKzFZQZAcv7vrCMAACLO+e/FYfCX4lQAstn/KW4JBADs27uaNOlh6xClEpsCsOuAoL+yzgEAiKz/2z3wQNY6RKnEpgBIkqoq/rukddYxAACR8wdVVf6rdYhSilUBcG1tI3LuP1nnAABEjNd/dG1tI9YxSilWBUCSNGnCv0oK/v5OAMABcnpD/dt/ZB2j1GJXANwDD2Tldbd1DgBARPjEt9yqVTnrGKUWm30APszPmfe4pMuscwAATD3pOtsvtQ5hIXYzAO9J6C5JsWt8AID35FRI3GkdwkpsC4Brb39NTv/dOgcAwIh3/+iWLX7VOoaV2BYASVJ25H45/dE6BgCg5N5RovC/W4ewFOsC4JYv75P8V61zAABKzPmvuY6OHdYxLMW6AEiS6+hYJvlHrHMAAErFP+g6OjqsU1iLfQGQJKWSX5O02ToGAGDMbVQu/Q3rEFFAAZDkFi/eLOf/TDE5AQoAYsrL+S+75W1brINEAQVgF9fR8WM5/cA6BwBgjHj39zsv+0KiAHxQuvJuSa9ZxwAAFN1q9ffeax0iSigAu3FtbUNy/mpJfdZZAABFs0OFxPVu1aph6yBRQgH4ENfR8Tup8AWxHgAAQuAl90W3bPHr1kGihgKwF66zs11Of2OdAwAwan/pOpcstA4RRRSAfenbfr+cHreOAQA4ZI+pqvL/sA4RVbE9DfBA+Llz6+X1jORmWGcBAByUV1VVeYFra9tuHSSqKAD74efOnSLvXpB0hHUWAMAB6VJC57r29netg0QZlwD2w3V0dMn5eZJivWc0AJSJ7XJ+FoP//lEADoDr6PiNEvqMpAHrLACAfRqU83NdR8cr1kHKAQXgALn29p8pofmSuI8UAKJnRHLXuo6On1oHKRcUgIPg2tufkNyNknLWWQAA78lKhetc55Ll1kHKCQXgILnOJUukxFViJgAAomBEzt/gOjvbrYOUG+4COER+7tyL5V2HpDrrLAAQU4OSu8p1LllhHaQcUQBGwc+de6G865TUYJ0FAGJmu5SY7ToXP2sdpFxRAEbJz5t3qgpaJvYJAIBS6ZLzs11Hx2+sg5Qz1gCMkmtvXy3nz5Xcr62zAEAMrFZC5zL4jx4FoAhcR0eXcpmLOTsAAMbUY3L+E2zyUxwUgCJxy5f3KV15pZz7j5IK1nkAICBe0l+rqnKu6+hgV9YiYQ3AGPCz582R048kNVpnAYAyt0NyX+RI3+KjAIwRP2fONCnxqKTp1lkAoEy9onxigXts8RvWQULEJYAx4jo7f6sd28+W9NfikgAAHAwv+QekwnkM/mOHGYAS8HPnflre/bukydZZACDiNsv5m11HxzLrIKFjBqAEXEfHSjl/huQfsc4CAJHl9ZBSiVMZ/EuDGYAS87PnXSGn/ybpSOssABARXfK6wy1tX2wdJE6YASgxt7T9MeVGTpV3/yBOFQQQbzl593dyfhqDf+kxA2Bo150CfyvpCussAFBiTyqhu1x7+2rrIHFFAYgAP2fOPCn5/0j+eOssADCmnN5QQd92S9s7raPEHZcAIsB1drbrrNOnyfnrJL1lnQcAxsA7cu5W9W2fzuAfDcwARIxfsKBSwyNfltN98jrcOg8AjNK78v4vVZ3+F9fWNmIdBu+jAESUv+WWCm3cOF8+cbfkP2adBwAO0ity7h/V1/tDt2rVsHUY7IkCEHFecpoz/9Ny/pvy+rS4bAMgugpyWinv/rM6l6x0Ow/xQURRAMqIn3X14UrlPyvpNklHWecBgF02SPqhCqkH3LKFb1uHwYGhAJQhP3NmSnWNsyTdJKfZkuqsMwGInX5JHVLiQVWllru2trx1IBwcCkCZ8wsWVGto5Eo5d53kZ4kyAGDs9Ev+MSnxiKoqHnNtbUPWgXDoKAAB8TNnplTffK5UmC2nS+V1pvgZAxgV/7bkliqhTo2MPOOWL89YJ0JxMDgEzM+efZiUvEBOn5DcJyQ/Q1LSOheAyMrJ6WV5PSe55+QKz7qOji7rUBgbFIAY8QsW1CmTmaGCTlXCzZDXqZKmS2qyzgag5Hol/6qk1fJ6RQmtVjr9smtr67cOhtKgAED+8gUtqhw+Ws4dLSWmyvvD5NQqr1ZJrZJrlXyV3l9fUC8pZZUXwB5yknbs+u9+yQ1LvkdSj5x65NUj7/+ohNbJ+3UqFNa6Zcu2GeYFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDC/n9KRl3txvCq8AAAAABJRU5ErkJggg==' + +// Small Windows taskbar overlay badge signalling account health issues. +export const WINDOWS_OVERLAY_ICON_BASE64 = + 'iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QA/wD/AP+gvaeTAAACr0lEQVRYhc2XTU8TURSGn9vyocT4ETEsiBtMVHYOFKPVBX8AaGIKie7QjfELwbggRidGNBrRRKk7XaqkGqnwA9gU3bSNG4mJuEBdQGoUTbQ10ONipnRaDL1ToPCu7szcc94n5965cwbWWUp3ogSDXtLpI+DpQMQPNAA77MffgU8gUTIqQk3VhAqHF1YFQILBzaT+XgDpBbVLk3cWpQaprnyowuE/JQNIW6AT5B5Qr2lcqM8IvWos8sIVgICiPXANkavFIDUkwB2ajX5lmpmiAGKaHmLxZ6A6V2hcqGGajeOFEJ4l02KJgTUwB+gilrheeDOvAvaaD2ul8/ngzGmrwKEQxOI6UQIqqEZHXi4BsHf7B2C3FsCTx1C70xonk9B9SisM+AqZvWp09Dc4lyCd7tE2h5w5QG2tdhhQj/KezV54wD5khItusqxIIr0SDHoXAUjNH3VxyKyG6kjNH84BkOkoozlOz+we8JfdXyxPG0Aayg6g2OMAUNvKDgDbHQDrp+wSzLmOTH5zjJOleP9wAKgp1+GhkAWRTMLQo1IAPgJUWGOJgjrkKjwWh+6TpRjblhKFbAUyKlJ6phLltTwtgJqqCWDWXQIvHGyBFp81dqcZDOMtOL+G7YHLiNzWCq+ogJsDsH+fdT05Cf1XYEGrDwWlLqnXI4PgfA1//ngATGslMA7kzAEaG8EwNM35QnXl4q5dBFDj4ymEPqwWY60kZDjv7JTzDiK7e71VNE08YZU9q/eTkEjo+N9QY5FXeZ5Lppimh1jiKdC1bC6vF5oMq16JRPH1F57jM04UNqUbry3Pi2wLHAO5j5tWLV/TCD2FZdcGAJDW1k1s2XoOpfqAOk3jGeAuv+aG1Ph4armJ+j+npukh9s4PmQ4Ev/09z/2cClN4iIJEaGp6879yb0j9A0Ub4d8dbjwJAAAAAElFTkSuQmCC' +/* prettier-ignore-end */ diff --git a/apps/desktop-client/src/main/tray.ts b/apps/desktop-client/src/main/tray.ts index 95e3ae9..efd3fc5 100644 --- a/apps/desktop-client/src/main/tray.ts +++ b/apps/desktop-client/src/main/tray.ts @@ -2,28 +2,27 @@ import { nativeImage } from 'electron/common' import type { Tray as ElectronTray } from 'electron/main' import { Menu, Tray, app } from 'electron/main' +import { TRAY_DANGER_ICON_BASE64, TRAY_ICON_BASE64 } from './brand-icons' + type TrayIconImage = ReturnType +// The tray PNGs are generated at 2x (see scripts/generate-brand-icons.cjs), so +// they stay crisp on retina menu bars. +const TRAY_ICON_SCALE_FACTOR = 2 + let tray: ElectronTray | null = null let normalTrayIcon: TrayIconImage | null = null let dangerTrayIcon: TrayIconImage | null = null -const TRAY_ICON_BASE64 = - 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAnUlEQVR4nN2UwQmAMAxF360Dee8I' + - 'LuNIxT2cpIv0oJcIEqJGMSIG/qX8fn5/msDfqgcKUIEmqHLW3xHsgAmYTzAJ1+2yOURXNI/77qLo' + - 'VvzQufX8EchAEmQ5s2LZjUCThwMTg8E3IymG07PSzotFqoqUHcJZ3akWSTctOYST0cT3hMOiCGte' + - '2HcjakCIHGmiltDW+eNrU7t/dNF/txaahq+VoZ+VygAAAABJRU5ErkJggg==' - -const TRAY_DANGER_ICON_BASE64 = - 'iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAABmJLR0QA/wD/AP+gvaeTAAACSUlEQVQ4jd2Uz04TURTGf2dmkG5spwU3mOgKXoCFGlwM0qZpDYEFvoLEPyuN6F4TTYxLWPAKaqILxKZtmMSQ6CvAygUuhNIpLpowt3NcaMt0GkASN/qtbs6533e+e++5B/41yEnJRqmUlsPDMiLTAmMACt9Q3dBz5z6MrK8fnElYJyeHmrncI1FdAjLHcAMReZEJw1fi++ZU4abnudj2W0RunHSaGOoYs5D1/SAetJJOcZw3ZxAFmMFxXqvnOccKN7PZh8BMgriLyFNVnVXVWeAZsJvYk2/Z9oN4oHcVjVIpbYXhV8CN5T9Ztj2fqVT246RWsZiLOp33wPVYODDt9qULm5s/+hyLMTcTot9leHiuK9oqFMZbhcI4QKZS2bdV54G92H53KJUqD16Fqpc43qq7ttYECPL5lUh1K1LdCvL5ZYB0vd4Q1dU+hkhP48jx7z49qqNfuk4V7vTicLfrPLLtzwnOxUHHfxk9YRXZiSdE5ApAplrdFliJ2VrOVKvbAFanczXB6WkcOY4iP1F0sVUs5gDcWu2eJTJhiUxk6/X7AAeeN6oiiwnORq9Id3FMu23aqnPper0RZx943mjHcd4BU7Fw07Tbl7vt1vel9/P5JwLPEy72RHW1+1CW6jVVvQ2M9F0DLLm12ssBxwDqeU7gOB8Z/H2noeYaU4oPo76uEN83GLMA1P5YUqSKMbeSE26g3bK+H7jGlET1MRAk8zE0BZbcMCwnJxucMuh3p6bOD6VS5ciypiWKxn4ZlB1gI2y317sP9X/gJ6o+6LM9+rGLAAAAAElFTkSuQmCC' - function createTrayIcon(tone: 'normal' | 'danger'): TrayIconImage { if (tone === 'danger') { if (dangerTrayIcon) { return dangerTrayIcon } - const icon = nativeImage.createFromBuffer(Buffer.from(TRAY_DANGER_ICON_BASE64, 'base64')) + const icon = nativeImage.createFromBuffer(Buffer.from(TRAY_DANGER_ICON_BASE64, 'base64'), { + scaleFactor: TRAY_ICON_SCALE_FACTOR, + }) icon.setTemplateImage(false) dangerTrayIcon = icon.isEmpty() ? createTrayIcon('normal') : icon return dangerTrayIcon @@ -34,7 +33,7 @@ function createTrayIcon(tone: 'normal' | 'danger'): TrayIconImage { } const buffer = Buffer.from(TRAY_ICON_BASE64, 'base64') - const icon = nativeImage.createFromBuffer(buffer) + const icon = nativeImage.createFromBuffer(buffer, { scaleFactor: TRAY_ICON_SCALE_FACTOR }) if (icon.isEmpty()) { return nativeImage.createEmpty() } diff --git a/apps/desktop-client/src/renderer/brand-logo.d.ts b/apps/desktop-client/src/renderer/brand-logo.d.ts new file mode 100644 index 0000000..610dd28 --- /dev/null +++ b/apps/desktop-client/src/renderer/brand-logo.d.ts @@ -0,0 +1,7 @@ +// Type for the `@brand-logo` alias (electron.vite.config.ts → public/logo.svg). +// Kept in its own ambient (non-module) declaration file so vue-tsc resolves the +// alias the same way Vite does at build time. +declare module '@brand-logo' { + const src: string + export default src +} diff --git a/apps/desktop-client/src/renderer/components/DesktopShell.vue b/apps/desktop-client/src/renderer/components/DesktopShell.vue index 50c9be5..7665aef 100644 --- a/apps/desktop-client/src/renderer/components/DesktopShell.vue +++ b/apps/desktop-client/src/renderer/components/DesktopShell.vue @@ -11,6 +11,7 @@ import { import { computed, onMounted, ref, watch } from 'vue' import { RouterLink, RouterView, useRoute } from 'vue-router' +import brandLogo from '@brand-logo' import { useClientRelease } from '../composables/useClientRelease' import { useDesktopRuntime } from '../composables/useDesktopRuntime' import { useDesktopSession } from '../composables/useDesktopSession' @@ -232,8 +233,7 @@ watch(