From 75c1fde922f58b20cec8542fb4c7db4a9d2fca93 Mon Sep 17 00:00:00 2001 From: Francesco Gruosso <64712227+FrancescoCoding@users.noreply.github.com> Date: Sat, 7 Nov 2026 16:40:12 +0000 Subject: [PATCH 01/10] Add colour theme palettes and theme file import --- THIRD_PARTY_NOTICES.md | 141 +++++++++ src/theme/data_community.rs | 596 +++++++++++++++++++++++++++++++++++ src/theme/data_editor.rs | 422 +++++++++++++++++++++++++ src/theme/import.rs | 611 ++++++++++++++++++++++++++++++++++++ src/theme/mod.rs | 535 +++++++++++++++++++++++++++++++ 5 files changed, 2305 insertions(+) create mode 100644 THIRD_PARTY_NOTICES.md create mode 100644 src/theme/data_community.rs create mode 100644 src/theme/data_editor.rs create mode 100644 src/theme/import.rs create mode 100644 src/theme/mod.rs diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md new file mode 100644 index 0000000..006893a --- /dev/null +++ b/THIRD_PARTY_NOTICES.md @@ -0,0 +1,141 @@ +# Third party notices + +Throttle's optional colour themes (the named palettes in the Themes menu) use +colour values taken from the theme files listed below. Only colour values are +used; no other part of these projects is included. Each source is distributed +under the MIT License, reproduced here as required. + +## Visual Studio Code default themes (Dark Modern, Dark+, Light Modern, Light+, High Contrast Dark, High Contrast Light) + +Source: https://github.com/microsoft/vscode +- `extensions/theme-defaults/themes/dark_modern.json` +- `extensions/theme-defaults/themes/dark_plus.json` +- `extensions/theme-defaults/themes/dark_vs.json` +- `extensions/theme-defaults/themes/light_modern.json` +- `extensions/theme-defaults/themes/light_plus.json` +- `extensions/theme-defaults/themes/light_vs.json` +- `extensions/theme-defaults/themes/hc_black.json` +- `extensions/theme-defaults/themes/hc_light.json` + +Where a theme file does not define a colour, the editor's built-in default for +that colour is used. + +``` +MIT License + +Copyright (c) 2015 - present Microsoft Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +## Colorsublime themes, as bundled with Visual Studio Code (Monokai, Solarized Dark, Solarized Light, Abyss, Kimbie Dark, Quiet Light, Red, Tomorrow Night Blue) + +Source: https://github.com/Colorsublime/Colorsublime-Themes, as bundled in +https://github.com/microsoft/vscode, which registers each of these theme +extensions as coming from Colorsublime-Themes. The files below are covered by +the Microsoft notice above. +- `extensions/theme-monokai/themes/monokai-color-theme.json` +- `extensions/theme-solarized-dark/themes/solarized-dark-color-theme.json` +- `extensions/theme-solarized-light/themes/solarized-light-color-theme.json` +- `extensions/theme-abyss/themes/abyss-color-theme.json` +- `extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json` +- `extensions/theme-quietlight/themes/quietlight-color-theme.json` +- `extensions/theme-red/themes/Red-color-theme.json` +- `extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-color-theme.json` + +Solarized is a colour scheme by Ethan Schoonover (https://github.com/altercation/solarized), MIT License. +Tomorrow is a colour scheme by Chris Kempson (https://github.com/chriskempson/tomorrow-theme), MIT License. + +``` +MIT License + +Copyright (c) 2015 Colorsublime.com + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` + +## Community colour themes + +The palettes in the Themes menu's Dark and Light submenus take their colour +values from the following third party colour themes, each distributed under +the MIT License: + +- Dracula: Copyright (c) 2016 Dracula Theme, https://github.com/dracula/visual-studio-code, MIT License +- One Dark Pro: Copyright (c) 2013-2022 Binaryify, https://github.com/Binaryify/OneDark-Pro, MIT License +- Catppuccin Mocha: Copyright (c) 2021 Catppuccin, https://github.com/catppuccin/vscode, MIT License +- Catppuccin Macchiato: Copyright (c) 2021 Catppuccin, https://github.com/catppuccin/vscode, MIT License +- Catppuccin Frappe: Copyright (c) 2021 Catppuccin, https://github.com/catppuccin/vscode, MIT License +- Catppuccin Latte: Copyright (c) 2021 Catppuccin, https://github.com/catppuccin/vscode, MIT License +- Nord: Copyright (c) 2016-present Sven Greb, https://github.com/nordtheme/visual-studio-code, MIT License +- Tokyo Night: Copyright (c) 2018-present Enkia, https://github.com/tokyo-night/tokyo-night-vscode-theme, MIT License +- Tokyo Night Storm: Copyright (c) 2018-present Enkia, https://github.com/tokyo-night/tokyo-night-vscode-theme, MIT License +- Tokyo Night Light: Copyright (c) 2018-present Enkia, https://github.com/tokyo-night/tokyo-night-vscode-theme, MIT License +- GitHub Dark: Copyright (c) 2020 Primer, https://github.com/primer/github-vscode-theme, MIT License +- GitHub Light: Copyright (c) 2020 Primer, https://github.com/primer/github-vscode-theme, MIT License +- GitHub Dark and GitHub Light (Primer Primitives colours): Copyright (c) 2018 GitHub Inc., https://github.com/primer/primitives, MIT License +- Gruvbox Dark: Copyright (c) 2017 JD, https://github.com/jdinhify/vscode-theme-gruvbox, MIT License +- Gruvbox Light: Copyright (c) 2017 JD, https://github.com/jdinhify/vscode-theme-gruvbox, MIT License +- Ayu Dark: Copyright (c) 2016 Ike Kurghinyan, https://github.com/ayu-theme/vscode-ayu, MIT License +- Ayu Mirage: Copyright (c) 2016 Ike Kurghinyan, https://github.com/ayu-theme/vscode-ayu, MIT License +- Ayu Light: Copyright (c) 2016 Ike Kurghinyan, https://github.com/ayu-theme/vscode-ayu, MIT License +- Night Owl: Copyright (c) 2018 Sarah Drasner, https://github.com/sdras/night-owl-vscode-theme, MIT License +- Rose Pine: Copyright (c) 2021 Rose Pine, https://github.com/rose-pine/vscode, MIT License +- Everforest Dark: Copyright (c) 2020 sainnhe, https://github.com/sainnhe/everforest-vscode, MIT License +- Kanagawa: Copyright (c) 2025 Pierre-Alain Castella, https://github.com/paccodes/kanagawa-vscode-theme, MIT License +- Kanagawa (original palette): Copyright (c) 2021 Tommaso Laurenzi, https://github.com/rebelot/kanagawa.nvim, MIT License +- Cobalt2: Copyright (c) 2018 Wes Bos, Roberto Achar, https://github.com/wesbos/cobalt2-vscode, MIT License +- SynthWave '84: Copyright (c) 2019 Robb Owen, https://github.com/robb0wen/synthwave-vscode, MIT License + +The following permission notice applies to all of the above: + +``` +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +``` diff --git a/src/theme/data_community.rs b/src/theme/data_community.rs new file mode 100644 index 0000000..672e4f3 --- /dev/null +++ b/src/theme/data_community.rs @@ -0,0 +1,596 @@ +//! Palettes taken from popular third party colour themes, each MIT licensed; +//! see `THIRD_PARTY_NOTICES.md` for the copyright lines. Every entry uses +//! `Source::Community`; `dark` decides whether it appears in the Dark or the +//! Light submenu. +//! +//! Sources (repository, file, commit or tag): +//! Dracula: github.com/dracula/visual-studio-code, src/dracula.yml @ b50e62e32090 +//! One Dark Pro: github.com/Binaryify/OneDark-Pro, themes/OneDark-Pro.json @ 75c80ab18d90 +//! Catppuccin Mocha, Macchiato, Frappe, Latte: github.com/catppuccin/vscode, +//! release catppuccin-vsc-v3.19.0, themes/{mocha,macchiato,frappe,latte}.json +//! in the published package (the repository generates them) +//! Nord: github.com/nordtheme/visual-studio-code, themes/nord-color-theme.json +//! @ 8ead09822c02 +//! Tokyo Night, Storm, Light: github.com/tokyo-night/tokyo-night-vscode-theme, +//! themes/tokyo-night{,-storm,-light}-color-theme.json @ 7c0f11eaef32 +//! GitHub Dark, Light: github.com/primer/github-vscode-theme, src/theme.js and +//! src/colors.js @ cd78e5e4e7bc, evaluated by hand against +//! dist/json/colors/{dark,light}.json of the @primer/primitives 7.10.0 npm +//! package (github.com/primer/primitives), the version that commit pins +//! Gruvbox Dark, Light: github.com/jdinhify/vscode-theme-gruvbox, src/shared.ts +//! and src/colors/base.ts @ 5538f16b660b, medium contrast +//! Ayu Dark, Mirage, Light: github.com/ayu-theme/vscode-ayu, +//! ayu-{dark,mirage,light}.json @ 605c9c850468 +//! Night Owl: github.com/sdras/night-owl-vscode-theme, +//! themes/Night Owl-color-theme.json @ cc291eba7976 +//! Rose Pine: github.com/rose-pine/vscode, themes/rose-pine-color-theme.json +//! @ d8f5ebe8e096 +//! Everforest Dark: github.com/sainnhe/everforest-vscode (archived), +//! themes/everforest-dark.json @ b17f8affe909, medium contrast +//! Kanagawa: github.com/paccodes/kanagawa-vscode-theme, +//! themes/kanagawa-wave-color-theme.json @ 60f23d7520c8, a port of +//! github.com/rebelot/kanagawa.nvim (Wave variant) +//! Cobalt2: github.com/wesbos/cobalt2-vscode, theme/cobalt2.json @ c4e9574372b8 +//! SynthWave '84: github.com/robb0wen/synthwave-vscode, +//! themes/synthwave-color-theme.json @ ecfa2fe1279f +//! +//! Each field takes the workbench key named in its `Palette` doc. Unless a line +//! says otherwise, `selection` is list.activeSelectionBackground, `selection_fg` +//! is list.activeSelectionForeground, and light palettes hover with +//! list.hoverBackground and black text. Translucent values are composited onto +//! editor.background. Missing keys use the workbench default, marked +//! (default); (blend) is the foreground mixed 70% into the background, used +//! when descriptionForeground is missing, equals the foreground or reads below +//! 3:1. Lines marked (adjusted) were changed so that widget text reaches 4:1 on +//! its fill and on the panel (see `widget_text_reads_on_fill_and_panel`). +//! Notes: +//! Accents are the theme's ANSI green, blue and red unless noted. Dracula: +//! cyan stands in for blue (its ANSI blue is purple). Nord: frost blue +//! (textLink). Rose Pine: pine, foam and love, its ANSI green, blue and red. +//! Tokyo Night (all three): the string token green. Gruvbox and Ayu: the +//! editorGutter added, modified and deleted colours. +//! Dark palettes whose primary button is a bright accent with dark text +//! (Catppuccin, Nord, Ayu, Rose Pine, Everforest) hover with their +//! selection.background tint and the editor foreground instead, since the +//! dark button text cannot read on the panel. The Frappe, Nord and Cobalt2 +//! hover fills and the Nord selection are darkened toward the background +//! until their text reaches 4:1. +//! Catppuccin: `widget_bg` is checkbox.background because Frappe's +//! button.secondaryBackground misses 4:1; `input_border` is panel.border +//! because input.border and checkbox.border are transparent. +//! Nord: its selection is a bright frost fill meant for dark text, so +//! `selection` is selection.background darkened and `selection_fg` is +//! list.hoverForeground. +//! Tokyo Night (all three): errorForeground is a grey, so `error` is +//! editorError.foreground. Tokyo Night Light: its file says "dark" but is a +//! light theme; `widget_bg` is list.hoverBackground (its secondary button +//! misses 4:1), and list.activeSelectionBackground equals the background, +//! so `selection` is editor.selectionBackground and the hover uses +//! selection.background. +//! Borders: Dracula uses tab.border and Cobalt2 sideBar.border, because their +//! panel.border is a saturated accent; Rose Pine (transparent panel.border) +//! and Everforest (panel.border equal to the background) use +//! editorWidget.border. +//! Everforest: input.background and focusBorder are transparent, so +//! `input_bg` is the background and `focus` is its green. +//! Cobalt2: list.activeSelectionBackground equals the background, so +//! `selection` is editor.selectionBackground with menu.selectionForeground. +//! GitHub: built from the primitives with the overrides in src/colors.js; +//! editor.selectionBackground ends up unset for both palettes. +//! Dracula (button.secondaryBackground), Gruvbox, Night Owl and Cobalt2 +//! (dropdown.background) draw idle buttons in the background colour, +//! outlined by `input_border`, as the themes do. + +use std::borrow::Cow; + +use super::{Palette, Source, accents, rgb}; + +/// Community palettes, in menu order: dark ones first, then light. +pub const PALETTES: &[Palette] = &[ + Palette { + id: Cow::Borrowed("dracula"), + label: Cow::Borrowed("Dracula"), + source: Source::Community, + dark: true, + accents: accents(0x50FA7B, 0x8BE9FD, 0xFF5555), + bg: rgb(0x282A36), + faint_bg: rgb(0x21222C), + input_bg: rgb(0x282A36), + widget_bg: rgb(0x282A36), + border: rgb(0x191A21), // tab.border + input_border: rgb(0x191A21), + hover_bg: rgb(0x44475A), + hover_fg: rgb(0xF8F8F2), + focus: rgb(0x6272A4), + selection: rgb(0x44475A), + selection_fg: rgb(0xF8F8F2), + fg: rgb(0xF8F8F2), + weak_fg: rgb(0xBABABA), // (blend) + link: rgb(0x3794FF), // (default) + error: rgb(0xFF5555), + }, + Palette { + id: Cow::Borrowed("one-dark-pro"), + label: Cow::Borrowed("One Dark Pro"), + source: Source::Community, + dark: true, + accents: accents(0x8CC265, 0x4AA5F0, 0xE05561), + bg: rgb(0x282C34), + faint_bg: rgb(0x21252B), + input_bg: rgb(0x1D1F23), + widget_bg: rgb(0x30333D), + border: rgb(0x3E4452), + input_border: rgb(0x404754), + hover_bg: rgb(0x404754), + hover_fg: rgb(0xFFFFFF), // (default) + focus: rgb(0x3E4452), + selection: rgb(0x2C313A), + selection_fg: rgb(0xD7DAE0), + fg: rgb(0xABB2BF), + weak_fg: rgb(0x848A95), // (blend) + link: rgb(0x61AFEF), + error: rgb(0xF48771), // (default) + }, + Palette { + id: Cow::Borrowed("catppuccin-mocha"), + label: Cow::Borrowed("Catppuccin Mocha"), + source: Source::Community, + dark: true, + accents: accents(0xA6E3A1, 0x89B4FA, 0xF38BA8), + bg: rgb(0x1E1E2E), + faint_bg: rgb(0x181825), + input_bg: rgb(0x313244), + widget_bg: rgb(0x45475A), // checkbox.background + border: rgb(0x585B70), + input_border: rgb(0x585B70), // panel.border + hover_bg: rgb(0x63547E), // selection.background (adjusted) + hover_fg: rgb(0xCDD6F4), // editor.foreground (adjusted) + focus: rgb(0xCBA6F7), + selection: rgb(0x313244), + selection_fg: rgb(0xCDD6F4), + fg: rgb(0xCDD6F4), + weak_fg: rgb(0x989FB9), // (blend) + link: rgb(0x89B4FA), + error: rgb(0xF38BA8), + }, + Palette { + id: Cow::Borrowed("catppuccin-macchiato"), + label: Cow::Borrowed("Catppuccin Macchiato"), + source: Source::Community, + dark: true, + accents: accents(0xA6DA95, 0x8AADF4, 0xED8796), + bg: rgb(0x24273A), + faint_bg: rgb(0x1E2030), + input_bg: rgb(0x363A4F), + widget_bg: rgb(0x494D64), // checkbox.background + border: rgb(0x5B6078), + input_border: rgb(0x5B6078), // panel.border + hover_bg: rgb(0x655785), // selection.background (adjusted) + hover_fg: rgb(0xCAD3F5), // editor.foreground (adjusted) + focus: rgb(0xC6A0F6), + selection: rgb(0x363A4F), + selection_fg: rgb(0xCAD3F5), + fg: rgb(0xCAD3F5), + weak_fg: rgb(0x989FBD), // (blend) + link: rgb(0x8AADF4), + error: rgb(0xED8796), + }, + Palette { + id: Cow::Borrowed("catppuccin-frappe"), + label: Cow::Borrowed("Catppuccin Frappe"), + source: Source::Community, + dark: true, + accents: accents(0xA6D189, 0x8CAAEE, 0xE78284), + bg: rgb(0x303446), + faint_bg: rgb(0x292C3C), + input_bg: rgb(0x414559), + widget_bg: rgb(0x51576D), // checkbox.background + border: rgb(0x626880), + input_border: rgb(0x626880), // panel.border + hover_bg: rgb(0x685A80), // selection.background, darkened (adjusted) + hover_fg: rgb(0xC6D0F5), // editor.foreground (adjusted) + focus: rgb(0xCA9EE6), + selection: rgb(0x414559), + selection_fg: rgb(0xC6D0F5), + fg: rgb(0xC6D0F5), + weak_fg: rgb(0x99A1C0), // (blend) + link: rgb(0x8CAAEE), + error: rgb(0xE78284), + }, + Palette { + id: Cow::Borrowed("nord"), + label: Cow::Borrowed("Nord"), + source: Source::Community, + dark: true, + accents: accents(0xA3BE8C, 0x88C0D0, 0xBF616A), + bg: rgb(0x2E3440), + faint_bg: rgb(0x2E3440), + input_bg: rgb(0x3B4252), + widget_bg: rgb(0x434C5E), + border: rgb(0x3B4252), + input_border: rgb(0x3B4252), + hover_bg: rgb(0x5A7886), // selection.background, darkened (adjusted) + hover_fg: rgb(0xECEFF4), // list.hoverForeground (adjusted) + focus: rgb(0x3B4252), + selection: rgb(0x5A7886), // selection.background, darkened (adjusted) + selection_fg: rgb(0xECEFF4), // list.hoverForeground (adjusted) + fg: rgb(0xD8DEE9), + weak_fg: rgb(0xC7CDD8), + link: rgb(0x88C0D0), + error: rgb(0xBF616A), + }, + Palette { + id: Cow::Borrowed("tokyo-night"), + label: Cow::Borrowed("Tokyo Night"), + source: Source::Community, + dark: true, + accents: accents(0x9ECE6A, 0x7AA2F7, 0xF7768E), + bg: rgb(0x1A1B26), + faint_bg: rgb(0x16161E), + input_bg: rgb(0x14141B), + widget_bg: rgb(0x3B3E52), + border: rgb(0x101014), + input_border: rgb(0x0F0F14), + hover_bg: rgb(0x385191), + hover_fg: rgb(0xFFFFFF), + focus: rgb(0x262838), + selection: rgb(0x202330), + selection_fg: rgb(0xA9B1D6), + fg: rgb(0xA9B1D6), + weak_fg: rgb(0x7E84A1), // (blend) + link: rgb(0x6183BB), + error: rgb(0xDB4B4B), // editorError.foreground + }, + Palette { + id: Cow::Borrowed("tokyo-night-storm"), + label: Cow::Borrowed("Tokyo Night Storm"), + source: Source::Community, + dark: true, + accents: accents(0x9ECE6A, 0x7AA2F7, 0xF7768E), + bg: rgb(0x24283B), + faint_bg: rgb(0x1F2335), + input_bg: rgb(0x1B1E2E), + widget_bg: rgb(0x41496B), + border: rgb(0x1B1E2E), + input_border: rgb(0x282E44), + hover_bg: rgb(0x3A5293), + hover_fg: rgb(0xFFFFFF), + focus: rgb(0x2E3248), + selection: rgb(0x2C324A), + selection_fg: rgb(0xA9B1D6), + fg: rgb(0xA9B1D6), + weak_fg: rgb(0x8188A8), // (blend) + link: rgb(0x668AC4), + error: rgb(0xDB4B4B), // editorError.foreground + }, + Palette { + id: Cow::Borrowed("github-dark"), + label: Cow::Borrowed("GitHub Dark"), + source: Source::Community, + dark: true, + accents: accents(0x3FB950, 0x58A6FF, 0xFF7B72), + bg: rgb(0x0D1117), + faint_bg: rgb(0x010409), + input_bg: rgb(0x0D1117), + widget_bg: rgb(0x282E33), + border: rgb(0x30363D), + input_border: rgb(0x30363D), + hover_bg: rgb(0x238636), + hover_fg: rgb(0xFFFFFF), + focus: rgb(0x1F6FEB), + selection: rgb(0x343941), + selection_fg: rgb(0xE6EDF3), + fg: rgb(0xE6EDF3), + weak_fg: rgb(0x7D8590), + link: rgb(0x2F81F7), + error: rgb(0xF85149), + }, + Palette { + id: Cow::Borrowed("gruvbox-dark"), + label: Cow::Borrowed("Gruvbox Dark"), + source: Source::Community, + dark: true, + accents: accents(0xB8BB26, 0x83A598, 0xFB4934), + bg: rgb(0x282828), + faint_bg: rgb(0x282828), + input_bg: rgb(0x282828), + widget_bg: rgb(0x282828), // dropdown.background + border: rgb(0x3C3836), + input_border: rgb(0x3C3836), + hover_bg: rgb(0x375758), + hover_fg: rgb(0xEBDBB2), + focus: rgb(0x3C3836), + selection: rgb(0x32302F), + selection_fg: rgb(0x8EC07C), + fg: rgb(0xEBDBB2), + weak_fg: rgb(0xB0A589), // (blend) + link: rgb(0x83A598), + error: rgb(0xFB4934), + }, + Palette { + id: Cow::Borrowed("ayu-dark"), + label: Cow::Borrowed("Ayu Dark"), + source: Source::Community, + dark: true, + accents: accents(0x70BF56, 0x73B8FF, 0xF26D78), + bg: rgb(0x10141C), + faint_bg: rgb(0x0D1017), + input_bg: rgb(0x10141C), + widget_bg: rgb(0x1F242F), + border: rgb(0x1B1F29), + input_border: rgb(0x1F242F), + hover_bg: rgb(0x193155), // selection.background (adjusted) + hover_fg: rgb(0xBFBDB6), // editor.foreground (adjusted) + focus: rgb(0xE6B450), + selection: rgb(0x1E242F), + selection_fg: rgb(0xBFBDB6), + fg: rgb(0xBFBDB6), + weak_fg: rgb(0x5C657B), + link: rgb(0xE6B450), + error: rgb(0xD95757), + }, + Palette { + id: Cow::Borrowed("ayu-mirage"), + label: Cow::Borrowed("Ayu Mirage"), + source: Source::Community, + dark: true, + accents: accents(0x87D96C, 0x80BFFF, 0xF27983), + bg: rgb(0x242936), + faint_bg: rgb(0x1F2430), + input_bg: rgb(0x242936), + widget_bg: rgb(0x343A48), + border: rgb(0x171B24), + input_border: rgb(0x343A48), + hover_bg: rgb(0x2B4768), // selection.background (adjusted) + hover_fg: rgb(0xCCCAC2), // editor.foreground (adjusted) + focus: rgb(0xFFCC66), + selection: rgb(0x2D3445), + selection_fg: rgb(0xCCCAC2), + fg: rgb(0xCCCAC2), + weak_fg: rgb(0x737D8F), + link: rgb(0xFFCC66), + error: rgb(0xFF6666), + }, + Palette { + id: Cow::Borrowed("night-owl"), + label: Cow::Borrowed("Night Owl"), + source: Source::Community, + dark: true, + accents: accents(0x22DA6E, 0x82AAFF, 0xEF5350), + bg: rgb(0x011627), + faint_bg: rgb(0x011627), + input_bg: rgb(0x0B253A), + widget_bg: rgb(0x011627), // dropdown.background + border: rgb(0x5F7E97), + input_border: rgb(0x5F7E97), + hover_bg: rgb(0x654AA3), + hover_fg: rgb(0xCCD0D4), + focus: rgb(0x122D42), + selection: rgb(0x14344F), + selection_fg: rgb(0xFFFFFF), + fg: rgb(0xD6DEEB), + weak_fg: rgb(0x96A2B0), // (blend) + link: rgb(0x3794FF), // (default) + error: rgb(0xEF5350), + }, + Palette { + id: Cow::Borrowed("rose-pine"), + label: Cow::Borrowed("Rose Pine"), + source: Source::Community, + dark: true, + accents: accents(0x31748F, 0x9CCFD8, 0xEB6F92), + bg: rgb(0x191724), + faint_bg: rgb(0x191724), + input_bg: rgb(0x232034), + widget_bg: rgb(0x1F1D2E), + border: rgb(0x26233A), // editorWidget.border + input_border: rgb(0x2A2838), + hover_bg: rgb(0x3B384B), // selection.background (adjusted) + hover_fg: rgb(0xE0DEF4), // editor.foreground (adjusted) + focus: rgb(0x2A2838), + selection: rgb(0x2A2838), + selection_fg: rgb(0xE0DEF4), + fg: rgb(0xE0DEF4), + weak_fg: rgb(0x908CAA), + link: rgb(0xC4A7E7), + error: rgb(0xEB6F92), + }, + Palette { + id: Cow::Borrowed("everforest-dark"), + label: Cow::Borrowed("Everforest Dark"), + source: Source::Community, + dark: true, + accents: accents(0xA7C080, 0x7FBBB3, 0xE67E80), + bg: rgb(0x2D353B), + faint_bg: rgb(0x2D353B), + input_bg: rgb(0x2D353B), // (transparent) + widget_bg: rgb(0x3D484D), + border: rgb(0x4F585E), // editorWidget.border + input_border: rgb(0x4F585E), + hover_bg: rgb(0x444E54), // selection.background (adjusted) + hover_fg: rgb(0xD3C6AA), // editor.foreground (adjusted) + focus: rgb(0xA7C080), // textLink.foreground (adjusted) + selection: rgb(0x3A444A), + selection_fg: rgb(0xD3C6AA), + fg: rgb(0xD3C6AA), + weak_fg: rgb(0x859289), + link: rgb(0xA7C080), + error: rgb(0xE67E80), + }, + Palette { + id: Cow::Borrowed("kanagawa"), + label: Cow::Borrowed("Kanagawa"), + source: Source::Community, + dark: true, + accents: accents(0x76946A, 0x7E9CD8, 0xC34043), + bg: rgb(0x1F1F28), + faint_bg: rgb(0x1F1F28), + input_bg: rgb(0x16161D), + widget_bg: rgb(0x223249), + border: rgb(0x16161D), + input_border: rgb(0x223249), + hover_bg: rgb(0x2A2A37), + hover_fg: rgb(0xC8C093), + focus: rgb(0x223249), + selection: rgb(0x363646), + selection_fg: rgb(0xDCD7BA), + fg: rgb(0xDCD7BA), + weak_fg: rgb(0xA3A08E), // (blend) + link: rgb(0x6A9589), + error: rgb(0xF48771), // (default) + }, + Palette { + id: Cow::Borrowed("cobalt2"), + label: Cow::Borrowed("Cobalt2"), + source: Source::Community, + dark: true, + accents: accents(0x3AD900, 0x0088FF, 0xFF628C), + bg: rgb(0x193549), + faint_bg: rgb(0x15232D), + input_bg: rgb(0x193549), + widget_bg: rgb(0x193549), // dropdown.background + border: rgb(0x0D3A58), // sideBar.border + input_border: rgb(0x0D3A58), + hover_bg: rgb(0x037CE5), // button.background, darkened (adjusted) + hover_fg: rgb(0xFFFFFF), + focus: rgb(0x0D3A58), + selection: rgb(0x0050A4), // editor.selectionBackground (adjusted) + selection_fg: rgb(0xFFFFFF), // menu.selectionForeground (adjusted) + fg: rgb(0xFFFFFF), + weak_fg: rgb(0xAAAAAA), + link: rgb(0x0088FF), + error: rgb(0xA22929), + }, + Palette { + id: Cow::Borrowed("synthwave-84"), + label: Cow::Borrowed("SynthWave '84"), + source: Source::Community, + dark: true, + accents: accents(0x72F1B8, 0x03EDF9, 0xFE4450), + bg: rgb(0x262335), + faint_bg: rgb(0x241B2F), + input_bg: rgb(0x2A2139), + widget_bg: rgb(0x232530), // dropdown.background + border: rgb(0x45434F), // (default) + input_border: rgb(0x3C3C3C), // (default) + hover_bg: rgb(0x614D85), + hover_fg: rgb(0xFFFFFF), // (default) + focus: rgb(0x1F212B), + selection: rgb(0x413F4E), + selection_fg: rgb(0xFFFFFF), + fg: rgb(0xFFFFFF), // foreground + weak_fg: rgb(0xBEBDC2), // (blend) + link: rgb(0xF97E72), + error: rgb(0xFE4450), + }, + Palette { + id: Cow::Borrowed("catppuccin-latte"), + label: Cow::Borrowed("Catppuccin Latte"), + source: Source::Community, + dark: false, + accents: accents(0x40A02B, 0x1E66F5, 0xD20F39), + bg: rgb(0xEFF1F5), + faint_bg: rgb(0xE6E9EF), + input_bg: rgb(0xCCD0DA), + widget_bg: rgb(0xBCC0CC), // checkbox.background + border: rgb(0xACB0BE), + input_border: rgb(0xACB0BE), // panel.border + hover_bg: rgb(0xDDE0E7), + hover_fg: rgb(0x000000), + focus: rgb(0x8839EF), + selection: rgb(0xCCD0DA), + selection_fg: rgb(0x4C4F69), + fg: rgb(0x4C4F69), + weak_fg: rgb(0x7D8093), // (blend) + link: rgb(0x1E66F5), + error: rgb(0xD20F39), + }, + Palette { + id: Cow::Borrowed("tokyo-night-light"), + label: Cow::Borrowed("Tokyo Night Light"), + source: Source::Community, + dark: false, + accents: accents(0x385F0D, 0x2959AA, 0x8C4351), + bg: rgb(0xE6E7ED), + faint_bg: rgb(0xD6D8DF), + input_bg: rgb(0xE6E7ED), + widget_bg: rgb(0xE1E2E8), // list.hoverBackground + border: rgb(0xC1C2C7), + input_border: rgb(0xC1C2C7), + hover_bg: rgb(0xD3D5DE), // selection.background (adjusted) + hover_fg: rgb(0x000000), + focus: rgb(0xCED0D7), + selection: rgb(0xD7D9E1), // editor.selectionBackground (adjusted) + selection_fg: rgb(0x363C4D), + fg: rgb(0x343B59), + weak_fg: rgb(0x707280), + link: rgb(0x2959AA), + error: rgb(0xBD4040), // editorError.foreground + }, + Palette { + id: Cow::Borrowed("github-light"), + label: Cow::Borrowed("GitHub Light"), + source: Source::Community, + dark: false, + accents: accents(0x116329, 0x0969DA, 0xCF222E), + bg: rgb(0xFFFFFF), + faint_bg: rgb(0xF6F8FA), + input_bg: rgb(0xFFFFFF), + widget_bg: rgb(0xEBECF0), + border: rgb(0xD0D7DE), + input_border: rgb(0xD0D7DE), + hover_bg: rgb(0xF4F6F8), + hover_fg: rgb(0x000000), + focus: rgb(0x0969DA), + selection: rgb(0xEFF1F3), + selection_fg: rgb(0x1F2328), + fg: rgb(0x1F2328), + weak_fg: rgb(0x656D76), + link: rgb(0x0969DA), + error: rgb(0xCF222E), + }, + Palette { + id: Cow::Borrowed("gruvbox-light"), + label: Cow::Borrowed("Gruvbox Light"), + source: Source::Community, + dark: false, + accents: accents(0x79740E, 0x076678, 0x9D0006), + bg: rgb(0xFBF1C7), + faint_bg: rgb(0xFBF1C7), + input_bg: rgb(0xFBF1C7), + widget_bg: rgb(0xFBF1C7), // dropdown.background + border: rgb(0xEBDBB2), + input_border: rgb(0xEBDBB2), + hover_bg: rgb(0xF3E6BC), + hover_fg: rgb(0x000000), + focus: rgb(0xEBDBB2), + selection: rgb(0xF3E6BC), + selection_fg: rgb(0x427B58), + fg: rgb(0x3C3836), + weak_fg: rgb(0x757062), // (blend) + link: rgb(0x076678), + error: rgb(0x9D0006), + }, + Palette { + id: Cow::Borrowed("ayu-light"), + label: Cow::Borrowed("Ayu Light"), + source: Source::Community, + dark: false, + accents: accents(0x6CBF43, 0x478ACC, 0xFF7383), + bg: rgb(0xFCFCFC), + faint_bg: rgb(0xF8F9FA), + input_bg: rgb(0xFCFCFC), + widget_bg: rgb(0xE4E7EA), + border: rgb(0xEAEDEF), + input_border: rgb(0xE4E7EA), + hover_bg: rgb(0xE8EAED), + hover_fg: rgb(0x000000), + focus: rgb(0xF29718), + selection: rgb(0xE8EAED), + selection_fg: rgb(0x5C6166), + fg: rgb(0x5C6166), + weak_fg: rgb(0x8490A0), + link: rgb(0xF29718), + error: rgb(0xE65050), + }, +]; diff --git a/src/theme/data_editor.rs b/src/theme/data_editor.rs new file mode 100644 index 0000000..d369b87 --- /dev/null +++ b/src/theme/data_editor.rs @@ -0,0 +1,422 @@ +//! Palettes taken from the editor's bundled colour themes. +//! +//! Sources, from github.com/microsoft/vscode (MIT): +//! Dark Modern: extensions/theme-defaults/themes/dark_modern.json +//! (includes dark_plus.json, which includes dark_vs.json) +//! Light Modern: extensions/theme-defaults/themes/light_modern.json +//! (includes light_plus.json, which includes light_vs.json) +//! Dark+: extensions/theme-defaults/themes/dark_plus.json (+ dark_vs.json) +//! Light+: extensions/theme-defaults/themes/light_plus.json (+ light_vs.json) +//! Monokai: extensions/theme-monokai/themes/monokai-color-theme.json +//! (from Colorsublime-Themes, MIT) +//! Solarized Dark: extensions/theme-solarized-dark/themes/ +//! solarized-dark-color-theme.json (from Colorsublime-Themes, +//! MIT; Solarized by Ethan Schoonover, MIT) +//! Solarized Light: extensions/theme-solarized-light/themes/ +//! solarized-light-color-theme.json (from Colorsublime-Themes, +//! MIT; Solarized by Ethan Schoonover, MIT) +//! Abyss: extensions/theme-abyss/themes/abyss-color-theme.json +//! (from Colorsublime-Themes, MIT) +//! Kimbie Dark: extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json +//! (from Colorsublime-Themes, MIT) +//! Quiet Light: extensions/theme-quietlight/themes/quietlight-color-theme.json +//! (from Colorsublime-Themes, MIT) +//! Red: extensions/theme-red/themes/Red-color-theme.json +//! (from Colorsublime-Themes, MIT) +//! Tomorrow Night Blue: extensions/theme-tomorrow-night-blue/themes/ +//! tomorrow-night-blue-color-theme.json (from Colorsublime-Themes, +//! MIT; Tomorrow by Chris Kempson, MIT) +//! High Contrast Dark: extensions/theme-defaults/themes/hc_black.json +//! High Contrast Light: extensions/theme-defaults/themes/hc_light.json +//! None of the files from Solarized Dark on has an include chain. +//! Keys missing from a file and its include chain use the workbench's built-in +//! default for that key, marked (default); the high contrast files define few +//! workbench colours, so most of their values are the workbench's high +//! contrast defaults. Values marked (blend) are the foreground mixed 70% into +//! the background, as the workbench derives `descriptionForeground`. Values +//! marked (alpha) come from a `#rrggbbaa` key composited over +//! editor.background, as the workbench paints it. Notes: +//! Dark Modern: `border` is panel.border because widget.border equals +//! input.background; `widget_bg` is checkbox.background (its secondary +//! button is transparent); `selection` is menu.selectionBackground; +//! accents are editorGutter added / textLink.foreground / gutter deleted. +//! Light Modern: `selection` is the default editor selection (ADD6FF); +//! `weak_fg` is a blend because its descriptionForeground equals the +//! editor foreground; accents are editorGutter added / modified / deleted. +//! Light palettes hover with the selection tint and black text instead of +//! button.background, since hovered text also sits on the white panel. +//! Dark+: `selection` is menu.selectionBackground from dark_vs.json; accents +//! are the type, keyword and invalid token colours. +//! Light+: `widget_bg` is list.hoverBackground; `selection_fg` is the +//! 0451A5 token colour; accents are the comment, constant and invalid +//! token colours. +//! Monokai: `widget_bg` is dropdown.background, `border` is panel.border, +//! `input_border`, `hover_bg` and `selection` are its 75715E focus colour, +//! `hover_fg` is the editor foreground, `weak_fg` is +//! editorLineNumber.foreground, `link` is its cyan and `error` is +//! inputValidation.errorBorder; accents are its green, cyan and pink. +//! Where a dark theme leaves checkbox.border unset it defaults to +//! dropdown.background, which would hide the outline of idle widgets; +//! those palettes take `input_border` from agentsChatInput.border. +//! Solarized Dark: `widget_bg` is dropdown.background, `input_border` is +//! checkbox.border (its dropdown.border), `selection` is +//! list.activeSelectionBackground (via menu.selectionBackground); +//! accents are terminal.ansiGreen / ansiBlue / ansiRed. +//! Solarized Light: `widget_bg` is peekViewEditor.background because +//! dropdown.background (EEE8D5) gives the editor foreground under 4:1; +//! `hover_bg` and `selection` are list.activeSelectionBackground since +//! its editor selection equals sideBar.background; `selection_fg` is +//! 073642 (terminal.ansiBlack) because list.activeSelectionForeground +//! (6C6C6C) reads under 4:1 on it; accents are terminal.ansiGreen / +//! ansiBlue / ansiRed. +//! Abyss: `widget_bg` is dropdown.background, `selection` is +//! list.activeSelectionBackground; its terminal colours are pale, so +//! accents are the string, function argument and diff deleted token +//! colours. +//! Kimbie Dark: `widget_bg` is dropdown.background, `border` is +//! panelSection.border (no panel.border), `selection` is +//! list.activeSelectionBackground; accents are the string, function and +//! invalid token colours. +//! Quiet Light: `fg` is the light default, which its token foreground +//! repeats; `widget_bg` is list.hoverBackground, `border` is +//! panelSection.border, `hover_bg` and `selection` are its editor +//! selection; `selection_fg` is the editor foreground because +//! list.activeSelectionForeground (6C6C6C) reads under 4:1 on the tint; +//! accents are the string, keyword and invalid token colours. +//! Red: `widget_bg` is dropdown.background, `border` is panelSection.border, +//! `hover_bg` expands its #833 button.background, `selection` is +//! list.activeSelectionBackground; accents are the diff inserted and +//! keyword token colours and, as the theme has no blue, the default +//! editorGutter.modifiedBackground. +//! Tomorrow Night Blue: `widget_bg` is dropdown.background, `border` is +//! panelSection.border, `selection` is list.activeSelectionBackground; +//! accents are terminal.ansiGreen / ansiBlue / ansiRed. +//! High Contrast Dark: `selection` is its selection.background (008000), +//! since its white editor selection would hide the white text of pressed +//! widgets; `selection_fg` is white because editor.selectionForeground +//! (black) would hide the focus ring on the black input; hovered widgets +//! keep the black button fill and show the focus outline, as the +//! workbench does; accents are the type, keyword and invalid token +//! colours. +//! High Contrast Light: `hover_bg` and `selection` are the default +//! list.activeSelectionBackground (0F4A85 at 10%); `selection_fg` is +//! 0F4A85 because editor.selectionForeground (white) cannot read on that +//! tint; accents are the constant, diff changed and invalid token +//! colours. + +use std::borrow::Cow; + +use super::{Palette, Source, accents, rgb}; + +/// Editor built-in palettes, in menu order. The first dark and the first +/// light entry also serve as fallbacks for malformed imported themes. +pub const PALETTES: &[Palette] = &[ + Palette { + id: Cow::Borrowed("dark-modern"), + label: Cow::Borrowed("Dark Modern"), + source: Source::Editor, + dark: true, + accents: accents(0x2EA043, 0x4DAAFC, 0xF85149), + bg: rgb(0x1F1F1F), + faint_bg: rgb(0x181818), + input_bg: rgb(0x313131), + widget_bg: rgb(0x313131), + border: rgb(0x2B2B2B), + input_border: rgb(0x3C3C3C), + hover_bg: rgb(0x0078D4), + hover_fg: rgb(0xFFFFFF), + focus: rgb(0x0078D4), + selection: rgb(0x0078D4), + selection_fg: rgb(0xFFFFFF), + fg: rgb(0xCCCCCC), + weak_fg: rgb(0x9D9D9D), + link: rgb(0x4DAAFC), + error: rgb(0xF85149), + }, + Palette { + id: Cow::Borrowed("light-modern"), + label: Cow::Borrowed("Light Modern"), + source: Source::Editor, + dark: false, + accents: accents(0x2EA043, 0x005FB8, 0xF85149), + bg: rgb(0xFFFFFF), + faint_bg: rgb(0xF8F8F8), + input_bg: rgb(0xFFFFFF), + widget_bg: rgb(0xE5E5E5), + border: rgb(0xE5E5E5), + input_border: rgb(0xCECECE), + hover_bg: rgb(0xADD6FF), // (default) + hover_fg: rgb(0x000000), + focus: rgb(0x005FB8), + selection: rgb(0xADD6FF), // (default) + selection_fg: rgb(0x005FB8), + fg: rgb(0x3B3B3B), + weak_fg: rgb(0x757575), // (blend) + link: rgb(0x005FB8), + error: rgb(0xF85149), + }, + Palette { + id: Cow::Borrowed("dark-plus"), + label: Cow::Borrowed("Dark+"), + source: Source::Editor, + dark: true, + accents: accents(0x4EC9B0, 0x569CD6, 0xF44747), + bg: rgb(0x1E1E1E), + faint_bg: rgb(0x252526), // (default) + input_bg: rgb(0x3C3C3C), // (default) + widget_bg: rgb(0x3C3C3C), // (default) dropdown.background + border: rgb(0x303031), + input_border: rgb(0x6B6B6B), // checkbox.border + hover_bg: rgb(0x0E639C), // (default) + hover_fg: rgb(0xFFFFFF), // (default) + focus: rgb(0x007FD4), // (default) + selection: rgb(0x0078D4), + selection_fg: rgb(0xFFFFFF), + fg: rgb(0xD4D4D4), + weak_fg: rgb(0x9E9E9E), // (blend) + link: rgb(0x3794FF), // (default) + error: rgb(0xF48771), // (default) + }, + Palette { + id: Cow::Borrowed("light-plus"), + label: Cow::Borrowed("Light+"), + source: Source::Editor, + dark: false, + accents: accents(0x008000, 0x0070C1, 0xCD3131), + bg: rgb(0xFFFFFF), + faint_bg: rgb(0xF3F3F3), // (default) + input_bg: rgb(0xFFFFFF), // (default) + widget_bg: rgb(0xE8E8E8), + border: rgb(0xD4D4D4), + input_border: rgb(0x919191), // checkbox.border + hover_bg: rgb(0xADD6FF), // (default) + hover_fg: rgb(0x000000), + focus: rgb(0x0090F1), // (default) + selection: rgb(0xADD6FF), // (default) + selection_fg: rgb(0x0451A5), + fg: rgb(0x000000), + weak_fg: rgb(0x717171), // (default) + link: rgb(0x006AB1), // (default) + error: rgb(0xA1260D), // (default) + }, + Palette { + id: Cow::Borrowed("monokai"), + label: Cow::Borrowed("Monokai"), + source: Source::Editor, + dark: true, + accents: accents(0xA6E22E, 0x66D9EF, 0xF92672), + bg: rgb(0x272822), + faint_bg: rgb(0x1E1F1C), + input_bg: rgb(0x414339), + widget_bg: rgb(0x414339), + border: rgb(0x414339), + input_border: rgb(0x75715E), + hover_bg: rgb(0x75715E), + hover_fg: rgb(0xF8F8F2), + focus: rgb(0x99947C), + selection: rgb(0x75715E), + selection_fg: rgb(0xF8F8F2), + fg: rgb(0xF8F8F2), + weak_fg: rgb(0x90908A), + link: rgb(0x66D9EF), + error: rgb(0xF92672), + }, + Palette { + id: Cow::Borrowed("solarized-dark"), + label: Cow::Borrowed("Solarized Dark"), + source: Source::Editor, + dark: true, + accents: accents(0x859900, 0x268BD2, 0xDC322F), + bg: rgb(0x002B36), + faint_bg: rgb(0x00212B), + input_bg: rgb(0x003847), + widget_bg: rgb(0x00212B), + border: rgb(0x2B2B4A), + input_border: rgb(0x197271), // (alpha) checkbox.border + hover_bg: rgb(0x197271), // (alpha) + hover_fg: rgb(0xFFFFFF), // (default) + focus: rgb(0x197271), // (alpha) + selection: rgb(0x005A6F), + selection_fg: rgb(0xFFFFFF), // (default) + fg: rgb(0x839496), + weak_fg: rgb(0x5C7579), // (blend) + link: rgb(0x3794FF), // (default) + error: rgb(0xFFEAEA), + }, + Palette { + id: Cow::Borrowed("solarized-light"), + label: Cow::Borrowed("Solarized Light"), + source: Source::Editor, + dark: false, + accents: accents(0x859900, 0x268BD2, 0xDC322F), + bg: rgb(0xFDF6E3), + faint_bg: rgb(0xEEE8D5), + input_bg: rgb(0xDDD6C1), + widget_bg: rgb(0xFFFBF2), // peekViewEditor.background, for contrast + border: rgb(0xDDD6C1), + input_border: rgb(0xD3AF86), // checkbox.border + hover_bg: rgb(0xDFCA88), + hover_fg: rgb(0x000000), + focus: rgb(0xB49471), + selection: rgb(0xDFCA88), + selection_fg: rgb(0x073642), // terminal.ansiBlack, for contrast + fg: rgb(0x657B83), + weak_fg: rgb(0x717171), // (default) + link: rgb(0x006AB1), // (default) + error: rgb(0xA1260D), // (default) + }, + Palette { + id: Cow::Borrowed("abyss"), + label: Cow::Borrowed("Abyss"), + source: Source::Editor, + dark: true, + accents: accents(0x22AA44, 0x2277FF, 0xDC322F), + bg: rgb(0x000C18), + faint_bg: rgb(0x060621), + input_bg: rgb(0x181F2F), + widget_bg: rgb(0x181F2F), + border: rgb(0x2B2B4A), + input_border: rgb(0x2B2B4A), // agentsChatInput.border + hover_bg: rgb(0x2B3C5D), + hover_fg: rgb(0xFFFFFF), // (default) + focus: rgb(0x596F99), + selection: rgb(0x08286B), + selection_fg: rgb(0xFFFFFF), // (default) + fg: rgb(0x6688CC), + weak_fg: rgb(0x486396), // (blend) + link: rgb(0x3794FF), // (default) + error: rgb(0xF48771), // (default) + }, + Palette { + id: Cow::Borrowed("kimbie-dark"), + label: Cow::Borrowed("Kimbie Dark"), + source: Source::Editor, + dark: true, + accents: accents(0x889B4A, 0x8AB1B0, 0xDC3958), + bg: rgb(0x221A0F), + faint_bg: rgb(0x362712), + input_bg: rgb(0x51412C), + widget_bg: rgb(0x51412C), + border: rgb(0x5E452B), + input_border: rgb(0x5E452B), // agentsChatInput.border + hover_bg: rgb(0x6E583B), + hover_fg: rgb(0xFFFFFF), // (default) + focus: rgb(0xA57A4C), + selection: rgb(0x7C5021), + selection_fg: rgb(0xFFFFFF), // (default) + fg: rgb(0xD3AF86), + weak_fg: rgb(0x9E8363), // (blend) + link: rgb(0x3794FF), // (default) + error: rgb(0xF48771), // (default) + }, + Palette { + id: Cow::Borrowed("quiet-light"), + label: Cow::Borrowed("Quiet Light"), + source: Source::Editor, + dark: false, + accents: accents(0x448C27, 0x4B69C6, 0xCD3131), + bg: rgb(0xF5F5F5), + faint_bg: rgb(0xF2F2F2), + input_bg: rgb(0xFFFFFF), // (default) + widget_bg: rgb(0xE0E0E0), + border: rgb(0xC9D0D9), + input_border: rgb(0xCECECE), // (default) checkbox.border + hover_bg: rgb(0xC9D0D9), + hover_fg: rgb(0x000000), + focus: rgb(0x9769DC), + selection: rgb(0xC9D0D9), + selection_fg: rgb(0x333333), // editor foreground, for contrast + fg: rgb(0x333333), // (default) + weak_fg: rgb(0x717171), // (default) + link: rgb(0x006AB1), // (default) + error: rgb(0xF1897F), + }, + Palette { + id: Cow::Borrowed("red"), + label: Cow::Borrowed("Red"), + source: Source::Editor, + dark: true, + accents: accents(0x41A83E, 0x1B81A8, 0xF12727), + bg: rgb(0x390000), + faint_bg: rgb(0x330000), + input_bg: rgb(0x580000), + widget_bg: rgb(0x580000), + border: rgb(0x580000), + input_border: rgb(0x611414), // (alpha) agentsChatInput.border + hover_bg: rgb(0x883333), + hover_fg: rgb(0xFFFFFF), // (default) + focus: rgb(0xBD4444), // (alpha) + selection: rgb(0x880000), + selection_fg: rgb(0xFFFFFF), // (default) + fg: rgb(0xF8F8F8), + weak_fg: rgb(0xBFAEAE), // (blend) + link: rgb(0x3794FF), // (default) + error: rgb(0xFFEAEA), + }, + Palette { + id: Cow::Borrowed("tomorrow-night-blue"), + label: Cow::Borrowed("Tomorrow Night Blue"), + source: Source::Editor, + dark: true, + accents: accents(0xD1F1A9, 0xBBDAFF, 0xFF9DA4), + bg: rgb(0x002451), + faint_bg: rgb(0x001C40), + input_bg: rgb(0x001733), + widget_bg: rgb(0x001733), + border: rgb(0x404F7D), + input_border: rgb(0x404F7D), // agentsChatInput.border + hover_bg: rgb(0x0E639C), // (default) + hover_fg: rgb(0xFFFFFF), // (default) + focus: rgb(0xBBDAFF), + selection: rgb(0x607693), // (alpha) + selection_fg: rgb(0xFFFFFF), // (default) + fg: rgb(0xFFFFFF), + weak_fg: rgb(0xB3BECB), // (blend) + link: rgb(0x3794FF), // (default) + error: rgb(0xA92049), + }, + Palette { + id: Cow::Borrowed("hc-dark"), + label: Cow::Borrowed("High Contrast Dark"), + source: Source::Editor, + dark: true, + accents: accents(0x4EC9B0, 0x569CD6, 0xF44747), + bg: rgb(0x000000), + faint_bg: rgb(0x000000), // (default) + input_bg: rgb(0x000000), // (default) + widget_bg: rgb(0x000000), // (default) dropdown.background + border: rgb(0x6FC3DF), // (default) contrastBorder + input_border: rgb(0x6FC3DF), // (default) contrastBorder + hover_bg: rgb(0x000000), // (default) + hover_fg: rgb(0xFFFFFF), // (default) + focus: rgb(0xF38518), // (default) + selection: rgb(0x008000), + selection_fg: rgb(0xFFFFFF), // white, not black, for the focus ring + fg: rgb(0xFFFFFF), + weak_fg: rgb(0xB3B3B3), // (blend) + link: rgb(0x21A6FF), // (default) + error: rgb(0xF48771), // (default) + }, + Palette { + id: Cow::Borrowed("hc-light"), + label: Cow::Borrowed("High Contrast Light"), + source: Source::Editor, + dark: false, + accents: accents(0x096D48, 0x0451A5, 0xB5200D), + bg: rgb(0xFFFFFF), // (default) + faint_bg: rgb(0xFFFFFF), // (default) + input_bg: rgb(0xFFFFFF), // (default) + widget_bg: rgb(0xFFFFFF), // (default) + border: rgb(0x0F4A85), // (default) contrastBorder + input_border: rgb(0x0F4A85), // (default) contrastBorder + hover_bg: rgb(0xE7EDF3), // (default) (alpha) + hover_fg: rgb(0x000000), + focus: rgb(0x006BBD), // (default) + selection: rgb(0xE7EDF3), // (default) (alpha) + selection_fg: rgb(0x0F4A85), // contrastBorder, for contrast + fg: rgb(0x292929), // (default) + weak_fg: rgb(0x696969), // (blend) + link: rgb(0x0F4A85), // (default) + error: rgb(0xB5200D), // (default) + }, +]; diff --git a/src/theme/import.rs b/src/theme/import.rs new file mode 100644 index 0000000..db115de --- /dev/null +++ b/src/theme/import.rs @@ -0,0 +1,611 @@ +//! Import a colour theme JSON file (the editor's `color-theme` format) as a +//! `Palette`, using the same key mapping as the bundled data files. +//! +//! The file is untrusted data: it is size capped, parsed with serde_json and +//! never executed. An `include` entry is resolved relative to the file and +//! silently skipped when the included file is missing; missing keys fall +//! back to the workbench defaults for the theme's `type` (`dark`, `light`, +//! `hc` or `hcLight`), so an import never fails over an absent colour. + +use std::borrow::Cow; +use std::collections::HashMap; +use std::path::Path; + +use anyhow::Context as _; +use eframe::egui::Color32; +use serde_json::Value; + +use super::{Accents, Palette, Source, data_editor}; + +/// Largest theme file we are willing to read, in bytes. +pub const MAX_FILE_SIZE: u64 = 2 * 1024 * 1024; + +/// How many `include` hops are followed before the chain is cut off. +const MAX_INCLUDE_DEPTH: u32 = 3; + +/// Minimum WCAG contrast of an accent against the background. +const MIN_ACCENT_CONTRAST: f32 = 3.0; + +/// Parse `path` into a palette with `Source::Custom`. The id is derived +/// from the theme's `name` (or the file stem), lowercased, with runs of +/// non-alphanumerics replaced by `-` and prefixed with `custom-`. +pub fn import(path: &Path) -> anyhow::Result { + let top = read_json(path)?; + let theme = load(path, &top, 0)?; + + let stem = path + .file_stem() + .map(|s| s.to_string_lossy().into_owned()) + .unwrap_or_default(); + let label = top + .get("name") + .and_then(Value::as_str) + .map(str::trim) + .filter(|s| !s.is_empty()) + .map(str::to_string) + .unwrap_or(stem); + let label = if label.is_empty() { + "Imported theme".to_string() + } else { + label + }; + + Ok(theme.to_palette(format!("custom-{}", slug(&label)), label)) +} + +/// Read and parse one theme file, enforcing the size cap. Comments and +/// trailing commas are allowed, as the editor's own theme files use them. +fn read_json(path: &Path) -> anyhow::Result { + let size = std::fs::metadata(path) + .with_context(|| format!("cannot read {}", path.display()))? + .len(); + if size > MAX_FILE_SIZE { + anyhow::bail!( + "{} is {size} bytes; theme files larger than {MAX_FILE_SIZE} bytes are not imported", + path.display() + ); + } + let text = + std::fs::read_to_string(path).with_context(|| format!("cannot read {}", path.display()))?; + let text = text.trim_start_matches('\u{feff}'); + let value: Value = serde_json::from_str(&strip_jsonc(text)) + .with_context(|| format!("{} is not a colour theme JSON file", path.display()))?; + if !value.is_object() { + anyhow::bail!("{} is not a colour theme JSON file", path.display()); + } + Ok(value) +} + +/// Colours and token rules gathered from a theme file and its includes. +#[derive(Default)] +struct Theme { + /// Workbench colours; the including file's keys win. + colors: HashMap, + /// `(scopes, foreground)` token rules, the including file's first. + tokens: Vec<(Vec, String)>, + /// The `type` entry, from the nearest file that has one. + kind: Option, +} + +/// Gather `value` (read from `path`) and its include chain. The included +/// file is loaded first so that this file's colours override its colours +/// and this file's token rules are searched before its rules. +fn load(path: &Path, value: &Value, depth: u32) -> anyhow::Result { + let mut theme = Theme::default(); + if let Some(include) = value.get("include").and_then(Value::as_str) + && depth < MAX_INCLUDE_DEPTH + && Path::new(include).is_relative() + { + let included = path + .parent() + .unwrap_or_else(|| Path::new(".")) + .join(include); + if included.is_file() { + let inner = read_json(&included)?; + theme = load(&included, &inner, depth + 1)?; + } + } + + if let Some(colors) = value.get("colors").and_then(Value::as_object) { + for (key, v) in colors { + if let Some(s) = v.as_str() { + theme.colors.insert(key.clone(), s.to_string()); + } + } + } + let mut tokens = Vec::new(); + if let Some(rules) = value.get("tokenColors").and_then(Value::as_array) { + for rule in rules { + let fg = rule + .get("settings") + .and_then(|s| s.get("foreground")) + .and_then(Value::as_str); + let Some(fg) = fg else { continue }; + let scopes = match rule.get("scope") { + Some(Value::String(s)) => split_scopes(s), + Some(Value::Array(list)) => list + .iter() + .filter_map(Value::as_str) + .flat_map(split_scopes) + .collect(), + _ => continue, + }; + tokens.push((scopes, fg.to_string())); + } + } + tokens.append(&mut theme.tokens); + theme.tokens = tokens; + if let Some(kind) = value.get("type").and_then(Value::as_str) { + theme.kind = Some(kind.to_string()); + } + Ok(theme) +} + +/// Split a comma separated scope selector into trimmed scopes. +fn split_scopes(s: &str) -> Vec { + s.split(',') + .map(str::trim) + .filter(|s| !s.is_empty()) + .map(str::to_string) + .collect() +} + +impl Theme { + /// Map the gathered keys onto a palette, filling gaps from the stock + /// dark or light editor palette. + fn to_palette(&self, id: String, label: String) -> Palette { + let dark = match self.kind.as_deref() { + Some("dark" | "hc") => true, + Some("light" | "hcLight") => false, + _ => self + .colors + .get("editor.background") + .and_then(|s| parse_rgba(s)) + .is_none_or(|[r, g, b, _]| luminance(Color32::from_rgb(r, g, b)) < 0.5), + }; + let base = base_palette(dark); + + let bg = self + .colors + .get("editor.background") + .and_then(|s| parse_rgba(s)) + .filter(|c| c[3] > 0) + .map_or(base.bg, |c| over(c, base.bg)); + // The first of `keys` that is set and not fully transparent, + // composited onto the background. + let pick = |keys: &[&str]| { + keys.iter().find_map(|k| { + let c = parse_rgba(self.colors.get(*k)?)?; + (c[3] > 0).then(|| over(c, bg)) + }) + }; + let token = |matches: &dyn Fn(&str) -> bool| { + self.tokens.iter().find_map(|(scopes, fg)| { + if !scopes.iter().any(|s| matches(s)) { + return None; + } + let c = parse_rgba(fg)?; + (c[3] > 0).then(|| over(c, bg)) + }) + }; + let scope_is = |name: &'static str| { + move |s: &str| { + s == name + || s.strip_prefix(name) + .is_some_and(|rest| rest.starts_with('.')) + } + }; + + let fg = pick(&["editor.foreground", "foreground"]).unwrap_or(base.fg); + let (contrast_text, hover_bg, hover_fg) = if dark { + ( + Color32::WHITE, + pick(&["button.hoverBackground", "button.background"]).unwrap_or(base.hover_bg), + pick(&["button.foreground"]).unwrap_or(base.hover_fg), + ) + } else { + ( + Color32::BLACK, + pick(&["list.hoverBackground"]).unwrap_or(base.hover_bg), + Color32::BLACK, + ) + }; + + let down = pick(&["editorGutter.addedBackground", "terminal.ansiGreen"]) + .or_else(|| token(&|s: &str| s.contains("string"))) + .unwrap_or(base.accents.down); + let up = pick(&["textLink.foreground", "terminal.ansiBlue"]) + .or_else(|| token(&scope_is("keyword"))) + .unwrap_or(base.accents.up); + let block = pick(&["errorForeground", "terminal.ansiRed"]) + .or_else(|| token(&scope_is("invalid"))) + .unwrap_or(base.accents.block); + + Palette { + id: Cow::Owned(id), + label: Cow::Owned(label), + source: Source::Custom, + dark, + accents: Accents { + down: readable(down, bg, dark), + up: readable(up, bg, dark), + block: readable(block, bg, dark), + }, + bg, + faint_bg: pick(&["sideBar.background"]).unwrap_or(base.faint_bg), + input_bg: pick(&["input.background"]).unwrap_or(base.input_bg), + widget_bg: pick(&[ + "button.secondaryBackground", + "checkbox.background", + "dropdown.background", + ]) + .unwrap_or(base.widget_bg), + border: pick(&["panel.border", "widget.border"]).unwrap_or(base.border), + input_border: pick(&["input.border", "checkbox.border"]).unwrap_or(base.input_border), + hover_bg, + hover_fg, + focus: pick(&["focusBorder"]).unwrap_or(base.focus), + selection: pick(&[ + "list.activeSelectionBackground", + "editor.selectionBackground", + ]) + .unwrap_or(base.selection), + selection_fg: pick(&["list.activeSelectionForeground"]).unwrap_or(contrast_text), + fg, + weak_fg: pick(&["descriptionForeground"]).unwrap_or_else(|| blend(fg, bg, 0.7)), + link: pick(&["textLink.foreground"]).unwrap_or(base.link), + error: pick(&["errorForeground"]).unwrap_or(base.error), + } + } +} + +/// The bundled palette whose values stand in for missing keys: Dark+ or +/// Light+, whose unset keys hold the workbench defaults. +fn base_palette(dark: bool) -> &'static Palette { + let id = if dark { "dark-plus" } else { "light-plus" }; + data_editor::PALETTES + .iter() + .find(|p| p.id == id) + .or_else(|| data_editor::PALETTES.iter().find(|p| p.dark == dark)) + .expect("bundled dark and light palettes exist") +} + +/// Parse `#rgb`, `#rgba`, `#rrggbb` or `#rrggbbaa` into `[r, g, b, a]`. +fn parse_rgba(s: &str) -> Option<[u8; 4]> { + let hex = s.trim().strip_prefix('#')?; + if !hex.is_ascii() { + return None; + } + let nibble = |i: usize| u8::from_str_radix(&hex[i..=i], 16).ok().map(|v| v * 17); + let byte = |i: usize| u8::from_str_radix(&hex[i..i + 2], 16).ok(); + match hex.len() { + 3 => Some([nibble(0)?, nibble(1)?, nibble(2)?, 255]), + 4 => Some([nibble(0)?, nibble(1)?, nibble(2)?, nibble(3)?]), + 6 => Some([byte(0)?, byte(2)?, byte(4)?, 255]), + 8 => Some([byte(0)?, byte(2)?, byte(4)?, byte(6)?]), + _ => None, + } +} + +/// Composite a possibly translucent colour onto an opaque background. +fn over([r, g, b, a]: [u8; 4], bg: Color32) -> Color32 { + blend(Color32::from_rgb(r, g, b), bg, f32::from(a) / 255.0) +} + +/// `t` of `fg` mixed into `bg` (1.0 is pure `fg`). +fn blend(fg: Color32, bg: Color32, t: f32) -> Color32 { + let mix = |f: u8, b: u8| (f32::from(b) + (f32::from(f) - f32::from(b)) * t).round() as u8; + Color32::from_rgb( + mix(fg.r(), bg.r()), + mix(fg.g(), bg.g()), + mix(fg.b(), bg.b()), + ) +} + +/// WCAG relative luminance of an opaque colour. +fn luminance(c: Color32) -> f32 { + let lin = |v: u8| { + let v = f32::from(v) / 255.0; + if v <= 0.03928 { + v / 12.92 + } else { + ((v + 0.055) / 1.055).powf(2.4) + } + }; + 0.2126 * lin(c.r()) + 0.7152 * lin(c.g()) + 0.0722 * lin(c.b()) +} + +/// WCAG contrast ratio between two opaque colours. +fn contrast(a: Color32, b: Color32) -> f32 { + let (x, y) = (luminance(a), luminance(b)); + (x.max(y) + 0.05) / (x.min(y) + 0.05) +} + +/// Lighten (dark themes) or darken (light themes) `c` in 10% steps until it +/// reaches `MIN_ACCENT_CONTRAST` on `bg`, or white or black is reached. +fn readable(mut c: Color32, bg: Color32, dark: bool) -> Color32 { + let target = if dark { Color32::WHITE } else { Color32::BLACK }; + for _ in 0..30 { + if contrast(c, bg) >= MIN_ACCENT_CONTRAST || c == target { + break; + } + let next = blend(target, c, 0.1); + // Rounding can stall a channel one step short of the target. + c = if next == c { target } else { next }; + } + c +} + +/// Lowercase ASCII slug: runs of anything else become a single `-`. +fn slug(s: &str) -> String { + let mut out = String::new(); + for ch in s.chars() { + if ch.is_ascii_alphanumeric() { + out.push(ch.to_ascii_lowercase()); + } else if !out.is_empty() && !out.ends_with('-') { + out.push('-'); + } + } + let out = out.trim_end_matches('-'); + if out.is_empty() { + "theme".to_string() + } else { + out.to_string() + } +} + +/// Remove `//` and `/* */` comments and trailing commas outside strings, +/// so the JSON-with-comments theme files parse with serde_json. +fn strip_jsonc(text: &str) -> String { + let chars: Vec = text.chars().collect(); + let mut no_comments = Vec::with_capacity(chars.len()); + let mut i = 0; + let mut in_string = false; + while i < chars.len() { + let ch = chars[i]; + if in_string { + no_comments.push(ch); + if ch == '\\' { + if let Some(&next) = chars.get(i + 1) { + no_comments.push(next); + i += 1; + } + } else if ch == '"' { + in_string = false; + } + i += 1; + continue; + } + match (ch, chars.get(i + 1)) { + ('"', _) => { + in_string = true; + no_comments.push(ch); + i += 1; + } + ('/', Some('/')) => { + while i < chars.len() && chars[i] != '\n' { + i += 1; + } + } + ('/', Some('*')) => { + i += 2; + while i < chars.len() && !(chars[i] == '*' && chars.get(i + 1) == Some(&'/')) { + i += 1; + } + i += 2; + no_comments.push(' '); + } + _ => { + no_comments.push(ch); + i += 1; + } + } + } + + let mut out = String::with_capacity(no_comments.len()); + let mut in_string = false; + let mut escaped = false; + for (i, &ch) in no_comments.iter().enumerate() { + if in_string { + if escaped { + escaped = false; + } else if ch == '\\' { + escaped = true; + } else if ch == '"' { + in_string = false; + } + } else if ch == '"' { + in_string = true; + } else if ch == ',' { + let next = no_comments[i + 1..].iter().find(|c| !c.is_whitespace()); + if matches!(next, Some('}' | ']')) { + continue; + } + } + out.push(ch); + } + out +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::theme::to_hex; + use std::path::PathBuf; + + /// A fresh directory per test, since tests run in parallel. + fn temp_dir(name: &str) -> PathBuf { + let dir = + std::env::temp_dir().join(format!("throttle-import-{}-{name}", std::process::id())); + let _ = std::fs::remove_dir_all(&dir); + std::fs::create_dir_all(&dir).unwrap(); + dir + } + + const DARK: &str = r##"{ + // Comments and trailing commas appear in real theme files. + "name": "My Theme (v2)!", + "type": "dark", + "include": "./this-file-does-not-exist.json", + "colors": { + "editor.background": "#101010", + "editor.foreground": "#e0e0e0", + "button.background": "#0a64a0", + "button.secondaryBackground": "#00000000", + "dropdown.background": "#303030", + "list.activeSelectionBackground": "#ffffff80", /* half white */ + "focusBorder": 42, + }, + "tokenColors": [ + { "settings": { "foreground": "#abcdef" } }, + { "scope": "comment", "settings": { "foreground": "#6a9955" } }, + { "scope": ["string.quoted", "string"], "settings": { "foreground": "#ce9178" } }, + { "scope": "keyword.control, storage", "settings": { "foreground": "#569cd6" } }, + { "scope": "keywordish", "settings": { "foreground": "#ff00ff" } }, + { "scope": "invalid", "settings": { "foreground": "#101010" } }, + ], + }"##; + + const LIGHT: &str = r##"{ + "colors": { + "editor.background": "#fafafa", + "editor.foreground": "#333333", + "textLink.foreground": "#0066cc", + "terminal.ansiGreen": "#e0ffe0" + } + }"##; + + #[test] + fn dark_theme_maps_keys_tokens_and_defaults() { + let dir = temp_dir("dark"); + let path = dir.join("mine.json"); + std::fs::write(&path, DARK).unwrap(); + let p = import(&path).unwrap(); + let base = base_palette(true); + + assert_eq!(p.id, "custom-my-theme-v2"); + assert_eq!(p.label, "My Theme (v2)!"); + assert_eq!(p.source, Source::Custom); + assert!(p.dark); + assert_eq!(to_hex(p.bg), "#101010"); + assert_eq!(to_hex(p.fg), "#e0e0e0"); + // No hoverBackground: button.background stands in. + assert_eq!(to_hex(p.hover_bg), "#0a64a0"); + // A transparent secondary button is skipped for the next key. + assert_eq!(to_hex(p.widget_bg), "#303030"); + // Translucent colours are composited onto the background. + assert_eq!(to_hex(p.selection), "#888888"); + assert_eq!(p.selection_fg, Color32::WHITE); + // Missing or malformed keys use the workbench defaults. + assert_eq!(p.faint_bg, base.faint_bg); + assert_eq!(p.focus, base.focus); + assert_eq!(p.link, base.link); + assert_eq!(p.hover_fg, base.hover_fg); + assert_eq!(p.weak_fg, blend(p.fg, p.bg, 0.7)); + // Accents from the token rules. + assert_eq!(to_hex(p.accents.down), "#ce9178"); + assert_eq!(to_hex(p.accents.up), "#569cd6"); + // The invalid token equals the background, so it gets lightened. + assert!(contrast(p.accents.block, p.bg) >= MIN_ACCENT_CONTRAST); + assert_ne!(p.accents.block, p.bg); + + let _ = std::fs::remove_dir_all(dir); + } + + #[test] + fn light_theme_without_type_or_name() { + let dir = temp_dir("light"); + let path = dir.join("Solar Flare.json"); + std::fs::write(&path, LIGHT).unwrap(); + let p = import(&path).unwrap(); + let base = base_palette(false); + + assert_eq!(p.id, "custom-solar-flare"); + assert_eq!(p.label, "Solar Flare"); + assert!(!p.dark, "luminance of editor.background decides"); + assert_eq!(to_hex(p.bg), "#fafafa"); + assert_eq!(to_hex(p.link), "#0066cc"); + assert_eq!(p.hover_fg, Color32::BLACK); + assert_eq!(p.selection_fg, Color32::BLACK); + assert_eq!(p.hover_bg, base.hover_bg); + assert_eq!(p.faint_bg, base.faint_bg); + assert_eq!(p.error, base.error); + assert_eq!(to_hex(p.accents.up), "#0066cc"); + assert_eq!(p.accents.block, base.accents.block); + // The pale green is darkened until it reads on the background. + assert_ne!(to_hex(p.accents.down), "#e0ffe0"); + assert!(contrast(p.accents.down, p.bg) >= MIN_ACCENT_CONTRAST); + + let _ = std::fs::remove_dir_all(dir); + } + + #[test] + fn including_file_wins_over_included() { + let dir = temp_dir("include"); + std::fs::write( + dir.join("base.json"), + r##"{ "type": "light", "colors": { "editor.background": "#202020", "focusBorder": "#123456" }, + "tokenColors": [{ "scope": "string", "settings": { "foreground": "#00aa00" } }] }"##, + ) + .unwrap(); + let path = dir.join("top.json"); + std::fs::write( + &path, + r##"{ "name": "Top", "include": "base.json", "colors": { "editor.background": "#ffffff" }, + "tokenColors": [{ "scope": "string.quoted", "settings": { "foreground": "#008800" } }] }"##, + ) + .unwrap(); + let p = import(&path).unwrap(); + assert!(!p.dark, "type comes from the included file"); + assert_eq!(to_hex(p.bg), "#ffffff"); + assert_eq!(to_hex(p.focus), "#123456"); + assert_eq!(to_hex(p.accents.down), "#008800"); + + let _ = std::fs::remove_dir_all(dir); + } + + #[test] + fn oversized_or_invalid_files_error() { + let dir = temp_dir("bad"); + let big = dir.join("big.json"); + std::fs::File::create(&big) + .unwrap() + .set_len(MAX_FILE_SIZE + 1) + .unwrap(); + assert!(import(&big).is_err()); + + let junk = dir.join("junk.json"); + std::fs::write(&junk, "this is not json").unwrap(); + assert!(import(&junk).is_err()); + + let array = dir.join("array.json"); + std::fs::write(&array, "[1, 2, 3]").unwrap(); + assert!(import(&array).is_err()); + + assert!(import(&dir.join("missing.json")).is_err()); + + let _ = std::fs::remove_dir_all(dir); + } + + #[test] + fn slugs_and_hex_forms() { + assert_eq!(slug("My Theme (v2)!"), "my-theme-v2"); + assert_eq!(slug(" -- "), "theme"); + assert_eq!(slug("Ros\u{e9} Pine"), "ros-pine"); + assert_eq!(parse_rgba("#fff"), Some([255, 255, 255, 255])); + assert_eq!(parse_rgba("#0008"), Some([0, 0, 0, 0x88])); + assert_eq!(parse_rgba("#12345678"), Some([0x12, 0x34, 0x56, 0x78])); + assert_eq!(parse_rgba("red"), None); + assert_eq!(parse_rgba("#12345"), None); + } + + #[test] + fn jsonc_keeps_strings_intact() { + let src = r#"{ "a": "http://x/*y*/", "b": [1, 2,], // tail + "c": "q\"//", }"#; + let v: Value = serde_json::from_str(&strip_jsonc(src)).unwrap(); + assert_eq!(v["a"], "http://x/*y*/"); + assert_eq!(v["b"], serde_json::json!([1, 2])); + assert_eq!(v["c"], "q\"//"); + } +} diff --git a/src/theme/mod.rs b/src/theme/mod.rs new file mode 100644 index 0000000..9a5cc87 --- /dev/null +++ b/src/theme/mod.rs @@ -0,0 +1,535 @@ +//! Colour themes for the GUI. +//! +//! The default (`system`) keeps egui's stock visuals and follows the OS light +//! or dark preference, so an existing install looks exactly as before. Named +//! palettes are opt-in via the Themes menu and persisted in `Settings::theme`. +//! Palettes come in three groups: the editor built-ins in `data_editor`, the +//! community themes in `data_community`, and palettes the user imported from +//! a colour theme JSON file (`import`), which are stored in `Settings` as +//! `CustomTheme`s. +//! +//! Bundled palette colours come from MIT licensed colour theme files; see +//! `THIRD_PARTY_NOTICES.md` for attribution. + +mod data_community; +mod data_editor; +/// Importing colour theme JSON files as palettes. +pub mod import; + +use std::borrow::Cow; + +use eframe::egui::{self, Color32, Theme, ThemePreference, Visuals}; +use serde::{Deserialize, Serialize}; + +/// Theme id used when `Settings::theme` is missing or unknown. +pub const DEFAULT_ID: &str = "system"; + +/// Built-in entries that are not palettes: `(id, menu label)`. +/// `system` follows the OS, `light` and `dark` pin egui's stock visuals. +pub const BUILTIN: [(&str, &str); 3] = [ + (DEFAULT_ID, "Default (follow system)"), + ("light", "Light"), + ("dark", "Dark"), +]; + +/// Accent colours used by the plots and the table, per theme. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct Accents { + /// Download traffic. + pub down: Color32, + /// Upload traffic. + pub up: Color32, + /// Blocked traffic and error text. + pub block: Color32, +} + +impl Accents { + /// The accents of the stock look (Material green, blue and red). + pub const DEFAULT: Accents = Accents { + down: Color32::from_rgb(0x4c, 0xaf, 0x50), + up: Color32::from_rgb(0x21, 0x96, 0xf3), + block: Color32::from_rgb(0xe5, 0x39, 0x35), + }; +} + +/// Where a palette comes from; decides which Themes submenu lists it. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum Source { + /// Shipped with the editor the palettes were taken from (`data_editor`). + Editor, + /// A popular third party theme (`data_community`). + Community, + /// Imported by the user from a colour theme JSON file. + Custom, +} + +/// A named colour palette. Each colour names the workbench key it was taken +/// from; see the comments above the palette data for keys a theme lacks. +/// The field set is a frozen contract shared by the data files, the importer +/// and `CustomTheme`. +#[derive(Debug, Clone, PartialEq)] +pub struct Palette { + /// Stable id stored in `settings.json`; lowercase, no spaces. + pub id: Cow<'static, str>, + /// Label shown in the Themes menu. + pub label: Cow<'static, str>, + /// Which Themes submenu lists the palette. + pub source: Source, + /// Whether the palette is dark (light text on a dark background). + pub dark: bool, + /// Plot and table accents, picked from the theme's own colours. + pub accents: Accents, + /// `editor.background`: panel and window fill. + pub bg: Color32, + /// `sideBar.background`: faint fill (table stripes). + pub faint_bg: Color32, + /// `input.background`: text edits, plot and code backgrounds. + pub input_bg: Color32, + /// `button.secondaryBackground` or similar: idle buttons and checkboxes. + pub widget_bg: Color32, + /// `widget.border` or `panel.border`: separators and window outline. + pub border: Color32, + /// `input.border` or `checkbox.border`: outline of idle widgets. + pub input_border: Color32, + /// Fill of hovered widgets: `button.background` in dark palettes, a + /// light selection tint in light ones. + pub hover_bg: Color32, + /// Text of hovered widgets. egui paints it on `hover_bg` (buttons) and on + /// the bare panel (checkbox and radio labels), so it must read on both. + pub hover_fg: Color32, + /// `focusBorder`: outline of hovered and pressed widgets. + pub focus: Color32, + /// Selection fill (selected text, selected items, pressed widgets). + pub selection: Color32, + /// Text on `selection`; also the focused text edit outline. + pub selection_fg: Color32, + /// `editor.foreground`: normal text. + pub fg: Color32, + /// `descriptionForeground` or a blend of `fg` into `bg`: weak text. + pub weak_fg: Color32, + /// `textLink.foreground`: hyperlinks. + pub link: Color32, + /// `errorForeground`: error text. + pub error: Color32, +} + +/// `0xRRGGBB` to an opaque colour. +pub(crate) const fn rgb(hex: u32) -> Color32 { + Color32::from_rgb((hex >> 16) as u8, (hex >> 8) as u8, hex as u8) +} + +/// Three `0xRRGGBB` values to the down, up and block accents. +pub(crate) const fn accents(down: u32, up: u32, block: u32) -> Accents { + Accents { + down: rgb(down), + up: rgb(up), + block: rgb(block), + } +} + +/// Parse `#rrggbb`, `#rrggbbaa`, `rrggbb` or `rrggbbaa` (alpha ignored). +pub fn parse_hex(s: &str) -> Option { + let s = s.trim().trim_start_matches('#'); + if s.len() != 6 && s.len() != 8 { + return None; + } + let v = u32::from_str_radix(&s[..6], 16).ok()?; + if s.len() == 8 { + u8::from_str_radix(&s[6..], 16).ok()?; + } + Some(rgb(v)) +} + +/// Format a colour as `#rrggbb` (alpha dropped). +pub fn to_hex(c: Color32) -> String { + format!("#{:02x}{:02x}{:02x}", c.r(), c.g(), c.b()) +} + +/// A user imported palette as stored in `settings.json`. Every colour is a +/// `#rrggbb` string; a missing or malformed one falls back to the matching +/// colour of the stock dark or light palette so an edited file never fails +/// to load. +#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct CustomTheme { + /// Stable id, as `Palette::id`. + pub id: String, + /// Menu label, as `Palette::label`. + pub label: String, + /// Whether the palette is dark, as `Palette::dark`. + pub dark: bool, + /// Download accent (`Accents::down`). + pub accent_down: String, + /// Upload accent (`Accents::up`). + pub accent_up: String, + /// Blocked accent (`Accents::block`). + pub accent_block: String, + /// Panel and window fill (`Palette::bg`). + pub bg: String, + /// Faint fill for table stripes (`Palette::faint_bg`). + pub faint_bg: String, + /// Text edit and plot background (`Palette::input_bg`). + pub input_bg: String, + /// Idle button and checkbox fill (`Palette::widget_bg`). + pub widget_bg: String, + /// Separators and window outline (`Palette::border`). + pub border: String, + /// Outline of idle widgets (`Palette::input_border`). + pub input_border: String, + /// Fill of hovered widgets (`Palette::hover_bg`). + pub hover_bg: String, + /// Text of hovered widgets (`Palette::hover_fg`). + pub hover_fg: String, + /// Outline of hovered and pressed widgets (`Palette::focus`). + pub focus: String, + /// Selection fill (`Palette::selection`). + pub selection: String, + /// Text on the selection fill (`Palette::selection_fg`). + pub selection_fg: String, + /// Normal text (`Palette::fg`). + pub fg: String, + /// Weak text (`Palette::weak_fg`). + pub weak_fg: String, + /// Hyperlinks (`Palette::link`). + pub link: String, + /// Error text (`Palette::error`). + pub error: String, +} + +impl From<&Palette> for CustomTheme { + fn from(p: &Palette) -> Self { + CustomTheme { + id: p.id.to_string(), + label: p.label.to_string(), + dark: p.dark, + accent_down: to_hex(p.accents.down), + accent_up: to_hex(p.accents.up), + accent_block: to_hex(p.accents.block), + bg: to_hex(p.bg), + faint_bg: to_hex(p.faint_bg), + input_bg: to_hex(p.input_bg), + widget_bg: to_hex(p.widget_bg), + border: to_hex(p.border), + input_border: to_hex(p.input_border), + hover_bg: to_hex(p.hover_bg), + hover_fg: to_hex(p.hover_fg), + focus: to_hex(p.focus), + selection: to_hex(p.selection), + selection_fg: to_hex(p.selection_fg), + fg: to_hex(p.fg), + weak_fg: to_hex(p.weak_fg), + link: to_hex(p.link), + error: to_hex(p.error), + } + } +} + +impl CustomTheme { + /// Convert to a runtime palette with `Source::Custom`. Unparseable + /// colours fall back to the first bundled dark or light editor palette. + pub fn to_palette(&self) -> Palette { + let base = data_editor::PALETTES + .iter() + .find(|p| p.dark == self.dark) + .expect("bundled dark and light palettes exist"); + let c = |s: &str, fallback: Color32| parse_hex(s).unwrap_or(fallback); + Palette { + id: Cow::Owned(self.id.clone()), + label: Cow::Owned(self.label.clone()), + source: Source::Custom, + dark: self.dark, + accents: Accents { + down: c(&self.accent_down, base.accents.down), + up: c(&self.accent_up, base.accents.up), + block: c(&self.accent_block, base.accents.block), + }, + bg: c(&self.bg, base.bg), + faint_bg: c(&self.faint_bg, base.faint_bg), + input_bg: c(&self.input_bg, base.input_bg), + widget_bg: c(&self.widget_bg, base.widget_bg), + border: c(&self.border, base.border), + input_border: c(&self.input_border, base.input_border), + hover_bg: c(&self.hover_bg, base.hover_bg), + hover_fg: c(&self.hover_fg, base.hover_fg), + focus: c(&self.focus, base.focus), + selection: c(&self.selection, base.selection), + selection_fg: c(&self.selection_fg, base.selection_fg), + fg: c(&self.fg, base.fg), + weak_fg: c(&self.weak_fg, base.weak_fg), + link: c(&self.link, base.link), + error: c(&self.error, base.error), + } + } +} + +/// All bundled palettes: editor built-ins first, then community themes. +pub fn builtin() -> impl Iterator { + data_editor::PALETTES + .iter() + .chain(data_community::PALETTES.iter()) +} + +/// Look up a palette by id among the bundled ones and `custom`. +pub fn find<'a>(id: &str, custom: &'a [Palette]) -> Option<&'a Palette> { + builtin() + .find(|p| p.id == id) + .or_else(|| custom.iter().find(|p| p.id == id)) +} + +/// Apply the theme `id` to `ctx` and return its accents. Handles the +/// `BUILTIN` ids, every bundled palette id and the ids in `custom`; an +/// unknown id applies the default. Applying `system` must restore egui's +/// stock dark and light visuals, so switching away from a palette leaves +/// nothing behind. `appearance::apply` must run after this, since this +/// resets both stock visuals. +pub fn apply(ctx: &egui::Context, id: &str, custom: &[Palette]) -> Accents { + // Start every switch from stock visuals for both modes, so whatever the + // previous theme changed is undone before the new one is applied. + ctx.set_visuals_of(Theme::Dark, Visuals::dark()); + ctx.set_visuals_of(Theme::Light, Visuals::light()); + + match id { + "light" => ctx.set_theme(Theme::Light), + "dark" => ctx.set_theme(Theme::Dark), + _ => match find(id, custom) { + Some(palette) => { + let theme = if palette.dark { + Theme::Dark + } else { + Theme::Light + }; + ctx.set_visuals_of(theme, visuals(palette)); + ctx.set_theme(theme); + return palette.accents; + } + // `system` and unknown ids. + None => ctx.set_theme(ThemePreference::System), + }, + } + Accents::DEFAULT +} + +/// Build the egui visuals for `p` on top of the stock dark or light visuals. +/// Only colours change; stroke widths and corner radii stay stock. +pub(crate) fn visuals(p: &Palette) -> Visuals { + let mut v = if p.dark { + Visuals::dark() + } else { + Visuals::light() + }; + // Strong text (`RichText::strong`) uses the pressed widget's text colour. + let strong = if p.dark { + Color32::WHITE + } else { + Color32::BLACK + }; + + v.panel_fill = p.bg; + v.window_fill = p.bg; + v.window_stroke.color = p.border; + v.faint_bg_color = p.faint_bg; + v.extreme_bg_color = p.input_bg; + v.text_edit_bg_color = Some(p.input_bg); + v.code_bg_color = p.input_bg; + v.hyperlink_color = p.link; + v.error_fg_color = p.error; + // Text colour comes from the widget states below; `override_text_color` + // would also override the text on hovered and selected widgets. + v.weak_text_color = Some(p.weak_fg); + v.selection.bg_fill = p.selection; + v.selection.stroke.color = p.selection_fg; + + let w = &mut v.widgets; + w.noninteractive.bg_fill = p.bg; + w.noninteractive.weak_bg_fill = p.bg; + w.noninteractive.bg_stroke.color = p.border; + w.noninteractive.fg_stroke.color = p.fg; + + w.inactive.bg_fill = p.widget_bg; + w.inactive.weak_bg_fill = p.widget_bg; + w.inactive.bg_stroke = egui::Stroke::new(1.0, p.input_border); + w.inactive.fg_stroke.color = p.fg; + + w.hovered.bg_fill = p.hover_bg; + w.hovered.weak_bg_fill = p.hover_bg; + w.hovered.bg_stroke.color = p.focus; + w.hovered.fg_stroke.color = p.hover_fg; + + w.active.bg_fill = p.selection; + w.active.weak_bg_fill = p.selection; + w.active.bg_stroke.color = p.focus; + w.active.fg_stroke.color = strong; + + w.open.bg_fill = p.bg; + w.open.weak_bg_fill = p.widget_bg; + w.open.bg_stroke.color = p.border; + w.open.fg_stroke.color = p.fg; + + v +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn ids_are_unique_lowercase_without_spaces() { + let ids: Vec<&str> = builtin().map(|p| p.id.as_ref()).collect(); + for (i, id) in ids.iter().enumerate() { + assert!(!id.is_empty()); + assert_eq!(*id, id.to_lowercase(), "{id} is not lowercase"); + assert!(!id.contains(char::is_whitespace), "{id} has whitespace"); + assert!( + id.chars() + .all(|c| c.is_ascii_lowercase() || c.is_ascii_digit() || c == '-'), + "{id} is not a slug" + ); + assert!(!ids[i + 1..].contains(id), "{id} is duplicated"); + } + } + + #[test] + fn find_every_palette() { + for p in builtin() { + assert_eq!(find(&p.id, &[]).map(|f| f.id.as_ref()), Some(p.id.as_ref())); + } + assert!(find("nope", &[]).is_none()); + } + + #[test] + fn find_custom_palette() { + let mut custom = data_editor::PALETTES[0].clone(); + custom.id = Cow::Owned("mine".to_string()); + custom.source = Source::Custom; + let list = vec![custom]; + assert_eq!(find("mine", &list).map(|p| p.source), Some(Source::Custom)); + } + + #[test] + fn builtin_ids_do_not_collide_with_palettes() { + for (id, _) in BUILTIN { + assert!(find(id, &[]).is_none(), "{id} is both builtin and palette"); + } + } + + #[test] + fn sources_match_data_file() { + assert!( + data_editor::PALETTES + .iter() + .all(|p| p.source == Source::Editor) + ); + assert!( + data_community::PALETTES + .iter() + .all(|p| p.source == Source::Community) + ); + } + + #[test] + fn accents_differ_from_panel_fill() { + for p in builtin() { + let Accents { down, up, block } = p.accents; + for c in [down, up, block] { + assert_ne!(c, p.bg, "{} accent equals its background", p.id); + } + assert!(down != up && up != block && down != block, "{}", p.id); + } + } + + #[test] + fn custom_theme_round_trip() { + let p = &data_editor::PALETTES[0]; + let custom = CustomTheme::from(p); + let back = custom.to_palette(); + assert_eq!(back.source, Source::Custom); + assert_eq!(back.id, p.id); + assert_eq!(back.accents, p.accents); + assert_eq!(back.bg, p.bg); + assert_eq!(back.error, p.error); + } + + #[test] + fn custom_theme_bad_colours_fall_back() { + let custom = CustomTheme { + id: "x".into(), + dark: true, + bg: "not a colour".into(), + ..CustomTheme::default() + }; + let p = custom.to_palette(); + let base = data_editor::PALETTES.iter().find(|p| p.dark).unwrap(); + assert_eq!(p.bg, base.bg); + } + + #[test] + fn hex_round_trip() { + assert_eq!(parse_hex("#1F1F1F"), Some(rgb(0x1F1F1F))); + assert_eq!(parse_hex("1f1f1f"), Some(rgb(0x1F1F1F))); + assert_eq!(parse_hex("#1F1F1F80"), Some(rgb(0x1F1F1F))); + assert_eq!(parse_hex("#fff"), None); + assert_eq!(to_hex(rgb(0x0A0B0C)), "#0a0b0c"); + } + + /// WCAG contrast ratio between two opaque colours. + fn contrast(a: Color32, b: Color32) -> f32 { + let lum = |c: Color32| { + let lin = |v: u8| { + let v = f32::from(v) / 255.0; + if v <= 0.03928 { + v / 12.92 + } else { + ((v + 0.055) / 1.055).powf(2.4) + } + }; + 0.2126 * lin(c.r()) + 0.7152 * lin(c.g()) + 0.0722 * lin(c.b()) + }; + let (x, y) = (lum(a), lum(b)); + (x.max(y) + 0.05) / (x.min(y) + 0.05) + } + + #[test] + fn widget_text_reads_on_fill_and_panel() { + for p in builtin() { + let v = visuals(p); + let w = &v.widgets; + for (state, s) in [ + ("noninteractive", w.noninteractive), + ("inactive", w.inactive), + ("hovered", w.hovered), + ("active", w.active), + ("open", w.open), + ] { + let fg = s.fg_stroke.color; + // Checkbox and radio labels sit on the bare panel in every state. + for (what, bg) in [("fill", s.weak_bg_fill), ("panel", v.panel_fill)] { + let c = contrast(fg, bg); + assert!(c >= 4.0, "{} {state} text on {what}: {c:.2}", p.id); + } + } + let sel = contrast(v.selection.stroke.color, v.selection.bg_fill); + assert!(sel >= 4.0, "{} selection: {sel:.2}", p.id); + let ring = contrast(v.selection.stroke.color, v.text_edit_bg_color()); + assert!(ring >= 3.0, "{} focus ring: {ring:.2}", p.id); + } + } + + #[test] + fn apply_every_id() { + let ctx = egui::Context::default(); + assert_eq!(apply(&ctx, "nope", &[]), Accents::DEFAULT); + assert_eq!(ctx.options(|o| o.theme_preference), ThemePreference::System); + for (id, _) in BUILTIN { + assert_eq!(apply(&ctx, id, &[]), Accents::DEFAULT); + } + for p in builtin() { + assert_eq!(apply(&ctx, &p.id, &[]), p.accents); + let theme = if p.dark { Theme::Dark } else { Theme::Light }; + assert_eq!(ctx.style_of(theme).visuals.panel_fill, p.bg); + } + // Back to the default restores stock visuals for both modes. + apply(&ctx, DEFAULT_ID, &[]); + assert_eq!(ctx.style_of(Theme::Dark).visuals, Visuals::dark()); + assert_eq!(ctx.style_of(Theme::Light).visuals, Visuals::light()); + } +} From 2542b372bbc0151ff95ccf7d3438b4498190b066 Mon Sep 17 00:00:00 2001 From: Francesco Gruosso <64712227+FrancescoCoding@users.noreply.github.com> Date: Sat, 7 Nov 2026 18:05:47 +0000 Subject: [PATCH 02/10] Add appearance options: corners, density, scale, fonts, accents --- src/appearance.rs | 574 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 574 insertions(+) create mode 100644 src/appearance.rs diff --git a/src/appearance.rs b/src/appearance.rs new file mode 100644 index 0000000..63e7ede --- /dev/null +++ b/src/appearance.rs @@ -0,0 +1,574 @@ +//! Appearance options layered on top of the active theme: corner rounding, +//! density, UI scale, shadows, button frames, font and accent overrides. +//! +//! Every default is a no-op, so `Appearance::default()` leaves egui's stock +//! style exactly as it is. `apply` must run after `theme::apply`, which +//! resets both stock visuals. + +use eframe::egui::{ + self, CornerRadius, FontDefinitions, FontFamily, Id, Shadow, Spacing, Ui, vec2, +}; +use serde::{Deserialize, Serialize}; + +use crate::theme::{self, Accents}; + +/// Corner rounding of widgets, windows and menus. +#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "lowercase")] +pub enum Corners { + /// Square corners. + None, + /// Clearly rounded. + Round, + /// Fully rounded buttons and inputs. + Pill, + /// egui's stock radii (no change). Last so unknown values land here. + #[default] + #[serde(other)] + Subtle, +} + +impl Corners { + /// Menu order. + pub const ALL: [Corners; 4] = [ + Corners::None, + Corners::Subtle, + Corners::Round, + Corners::Pill, + ]; +} + +/// Spacing and row height preset. +#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "lowercase")] +pub enum Density { + /// Tighter padding and shorter rows. + Compact, + /// Looser padding and taller rows. + Spacious, + /// egui's stock spacing (no change). Last so unknown values land here. + #[default] + #[serde(other)] + Normal, +} + +impl Density { + /// Menu order. + pub const ALL: [Density; 3] = [Density::Compact, Density::Normal, Density::Spacious]; + + /// Height of a table row and of the table header. + pub fn row_height(self) -> f32 { + match self { + Density::Compact => 16.0, + Density::Normal => 20.0, + Density::Spacious => 26.0, + } + } +} + +/// Which font family the whole UI uses. +#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "lowercase")] +pub enum Font { + /// The bundled monospace font everywhere. + Monospace, + /// egui's stock proportional font (no change). Last so unknown values + /// land here. + #[default] + #[serde(other)] + Default, +} + +impl Font { + /// Menu order. + pub const ALL: [Font; 2] = [Font::Default, Font::Monospace]; +} + +/// Custom accent colours as `#rrggbb` strings, overriding the theme's. +#[derive(Debug, Clone, Default, PartialEq, Eq, Serialize, Deserialize)] +#[serde(default)] +pub struct AccentOverride { + /// Download traffic colour. + pub down: String, + /// Upload traffic colour. + pub up: String, + /// Blocked traffic and error colour. + pub block: String, +} + +/// The scale steps offered in the Customise window, as zoom factors. +pub const SCALE_STEPS: [f32; 6] = [0.8, 0.9, 1.0, 1.1, 1.25, 1.5]; + +/// User appearance preferences, persisted in `Settings::appearance`. +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct Appearance { + /// Corner rounding of widgets, windows and menus. + pub corners: Corners, + /// Spacing and table row height preset. + pub density: Density, + /// UI zoom factor; 1.0 is stock. Clamped to `0.8..=1.5` on apply. + pub scale: f32, + /// Shadows under menus, popups and windows. + pub shadows: bool, + /// Alternating table row fill. + pub stripes: bool, + /// Framed buttons (false draws flat text buttons). + pub button_frames: bool, + /// Font family for the whole UI. + pub font: Font, + /// Draw the rate and total columns in the monospace font. + pub numbers_monospace: bool, + /// Custom accents; `None` uses the theme's. + pub accent_override: Option, +} + +impl Default for Appearance { + fn default() -> Self { + Self { + corners: Corners::Subtle, + density: Density::Normal, + scale: 1.0, + shadows: true, + stripes: true, + button_frames: true, + font: Font::Default, + numbers_monospace: false, + accent_override: None, + } + } +} + +impl Appearance { + /// The accent override as colours, if set and fully parseable. + pub fn accents(&self) -> Option { + let o = self.accent_override.as_ref()?; + Some(Accents { + down: theme::parse_hex(&o.down)?, + up: theme::parse_hex(&o.up)?, + block: theme::parse_hex(&o.block)?, + }) + } +} + +/// Apply `a` on top of the current visuals of both egui themes and set the +/// zoom factor. With `Appearance::default()` this changes nothing. +pub fn apply(ctx: &egui::Context, a: &Appearance) { + // `theme::apply` resets the visuals but not the spacing, so `Normal` + // writes egui's stock spacing back. When nothing was changed before, + // that rewrites the same values and stays a no-op. + ctx.all_styles_mut(|style| { + let v = &mut style.visuals; + let radii = match a.corners { + Corners::None => Some((CornerRadius::ZERO, CornerRadius::ZERO)), + Corners::Subtle => None, + Corners::Round => Some((CornerRadius::same(6), CornerRadius::same(10))), + Corners::Pill => Some((CornerRadius::same(12), CornerRadius::same(12))), + }; + if let Some((widget, window)) = radii { + let w = &mut v.widgets; + for state in [ + &mut w.noninteractive, + &mut w.inactive, + &mut w.hovered, + &mut w.active, + &mut w.open, + ] { + state.corner_radius = widget; + } + v.window_corner_radius = window; + v.menu_corner_radius = window; + } + if !a.shadows { + v.window_shadow = Shadow::NONE; + v.popup_shadow = Shadow::NONE; + } + if !a.button_frames { + v.button_frame = false; + } + + let stock = Spacing::default(); + let (item, button, row, menu) = match a.density { + Density::Compact => (vec2(6.0, 2.0), vec2(3.0, 0.0), 16.0, 1.0), + Density::Normal => ( + stock.item_spacing, + stock.button_padding, + stock.interact_size.y, + stock.menu_spacing, + ), + Density::Spacious => (vec2(10.0, 6.0), vec2(8.0, 4.0), 26.0, 4.0), + }; + let sp = &mut style.spacing; + sp.item_spacing = item; + sp.button_padding = button; + sp.interact_size.y = row; + sp.menu_spacing = menu; + }); + + apply_font(ctx, a.font); + + let zoom = a.scale.clamp(0.8, 1.5); + if (zoom - ctx.zoom_factor()).abs() > f32::EPSILON { + ctx.set_zoom_factor(zoom); + } +} + +/// Memory id remembering which `Font` is installed. +fn font_id() -> Id { + Id::new("throttle_appearance_font") +} + +/// Switch the UI font family, remembering what was installed so that the +/// default never calls `set_fonts` (which compares the font data). +fn apply_font(ctx: &egui::Context, font: Font) { + let current = ctx + .data(|d| d.get_temp::(font_id())) + .unwrap_or(Font::Default); + if current == font { + return; + } + let mut fonts = FontDefinitions::default(); + if font == Font::Monospace { + let mono = fonts + .families + .get(&FontFamily::Monospace) + .cloned() + .unwrap_or_default(); + fonts.families.insert(FontFamily::Proportional, mono); + } + ctx.set_fonts(fonts); + ctx.data_mut(|d| d.insert_temp(font_id(), font)); +} + +/// The stock accents offered when custom accents are switched on. +const STOCK_ACCENTS: [&str; 3] = ["#4caf50", "#2196f3", "#e53935"]; + +/// The body of the Customise window. Returns true when anything changed, +/// so the caller can re-apply and save. +pub fn customise_ui(ui: &mut Ui, a: &mut Appearance) -> bool { + let mut changed = false; + + egui::Grid::new("customise_grid") + .num_columns(2) + .spacing([12.0, 8.0]) + .show(ui, |ui| { + ui.label("Corners") + .on_hover_text("How rounded buttons, menus and windows are."); + ui.horizontal(|ui| { + for c in Corners::ALL { + changed |= ui + .radio_value(&mut a.corners, c, corners_label(c)) + .changed(); + } + }); + ui.end_row(); + + ui.label("Density") + .on_hover_text("Spacing between widgets and the height of table rows."); + ui.horizontal(|ui| { + for d in Density::ALL { + changed |= ui + .radio_value(&mut a.density, d, density_label(d)) + .changed(); + } + }); + ui.end_row(); + + ui.label("Scale") + .on_hover_text("Size of everything in the window."); + ui.vertical(|ui| { + ui.horizontal(|ui| { + for step in SCALE_STEPS { + let selected = (a.scale - step).abs() < 0.001; + let label = format!("{}%", (step * 100.0).round() as i32); + if ui.selectable_label(selected, label).clicked() && !selected { + a.scale = step; + changed = true; + } + } + }); + ui.weak("Ctrl + and Ctrl - also zoom; the setting is remembered."); + }); + ui.end_row(); + + ui.label("Font") + .on_hover_text("The typeface used for the whole window."); + ui.horizontal(|ui| { + for f in Font::ALL { + changed |= ui.radio_value(&mut a.font, f, font_label(f)).changed(); + } + }); + ui.end_row(); + + ui.label("Details"); + ui.vertical(|ui| { + changed |= ui + .checkbox(&mut a.shadows, "Shadows") + .on_hover_text("Drop shadows under menus, popups and windows.") + .changed(); + changed |= ui + .checkbox(&mut a.stripes, "Table stripes") + .on_hover_text("Shade every other row of the process table.") + .changed(); + changed |= ui + .checkbox(&mut a.button_frames, "Button frames") + .on_hover_text("Draw a frame around buttons; off shows flat text buttons.") + .changed(); + changed |= ui + .checkbox(&mut a.numbers_monospace, "Monospace numbers") + .on_hover_text("Line up the rate and total columns in a fixed width font.") + .changed(); + }); + ui.end_row(); + + ui.label("Accents"); + ui.vertical(|ui| { + let mut custom = a.accent_override.is_some(); + if ui + .checkbox(&mut custom, "Custom accents") + .on_hover_text("Pick your own download, upload and blocked colours.") + .changed() + { + a.accent_override = custom.then(|| { + let [down, up, block] = STOCK_ACCENTS.map(String::from); + AccentOverride { down, up, block } + }); + changed = true; + } + if let Some(o) = a.accent_override.as_mut() { + for ((label, value), stock) in [ + ("Download", &mut o.down), + ("Upload", &mut o.up), + ("Blocked", &mut o.block), + ] + .into_iter() + .zip(STOCK_ACCENTS) + { + ui.horizontal(|ui| { + let mut colour = theme::parse_hex(value) + .or_else(|| theme::parse_hex(stock)) + .unwrap_or_default(); + if ui.color_edit_button_srgba(&mut colour).changed() { + *value = theme::to_hex(colour); + changed = true; + } + ui.label(label); + }); + } + } + }); + ui.end_row(); + }); + + ui.separator(); + if ui + .button("Reset to defaults") + .on_hover_text("Go back to the stock look.") + .clicked() + && *a != Appearance::default() + { + *a = Appearance::default(); + changed = true; + } + changed +} + +fn corners_label(c: Corners) -> &'static str { + match c { + Corners::None => "Square", + Corners::Subtle => "Subtle", + Corners::Round => "Round", + Corners::Pill => "Pill", + } +} + +fn density_label(d: Density) -> &'static str { + match d { + Density::Compact => "Compact", + Density::Normal => "Normal", + Density::Spacious => "Spacious", + } +} + +fn font_label(f: Font) -> &'static str { + match f { + Font::Default => "Default", + Font::Monospace => "Monospace", + } +} + +#[cfg(test)] +mod tests { + use super::*; + use eframe::egui::Theme; + + #[test] + fn default_apply_is_a_no_op() { + let ctx = egui::Context::default(); + apply(&ctx, &Appearance::default()); + // `Style` as a whole never compares equal (its number formatter is a + // function pointer), so compare the parts the options touch. + for theme in [Theme::Dark, Theme::Light] { + let got = ctx.style_of(theme); + let want = theme.default_style(); + assert_eq!(got.visuals, want.visuals); + assert_eq!(got.spacing, want.spacing); + assert_eq!(got.text_styles, want.text_styles); + } + assert_eq!(ctx.zoom_factor(), 1.0); + } + + #[test] + fn options_reach_both_themes_and_normal_restores_spacing() { + let ctx = egui::Context::default(); + let a = Appearance { + corners: Corners::None, + density: Density::Compact, + shadows: false, + button_frames: false, + ..Appearance::default() + }; + apply(&ctx, &a); + for theme in [Theme::Dark, Theme::Light] { + let s = ctx.style_of(theme); + assert_eq!(s.visuals.widgets.inactive.corner_radius, CornerRadius::ZERO); + assert_eq!(s.visuals.window_corner_radius, CornerRadius::ZERO); + assert_eq!(s.visuals.window_shadow, Shadow::NONE); + assert_eq!(s.visuals.popup_shadow, Shadow::NONE); + assert!(!s.visuals.button_frame); + assert_eq!(s.spacing.item_spacing, vec2(6.0, 2.0)); + assert_eq!(s.spacing.interact_size.y, 16.0); + } + // Switching back: theme::apply resets the visuals, apply the spacing. + crate::theme::apply(&ctx, crate::theme::DEFAULT_ID, &[]); + apply(&ctx, &Appearance::default()); + for theme in [Theme::Dark, Theme::Light] { + let got = ctx.style_of(theme); + let want = theme.default_style(); + assert_eq!(got.visuals, want.visuals); + assert_eq!(got.spacing, want.spacing); + } + } + + /// A palette plus corner, shadow and font changes, then back to the + /// default theme and appearance: both styles must be stock again. + #[test] + fn default_theme_and_appearance_restore_stock_after_a_palette() { + use eframe::egui::{ThemePreference, Visuals}; + let ctx = egui::Context::default(); + let palette = crate::theme::builtin() + .next() + .expect("bundled palettes exist"); + crate::theme::apply(&ctx, &palette.id, &[]); + let a = Appearance { + corners: Corners::Pill, + shadows: false, + font: Font::Monospace, + ..Appearance::default() + }; + apply(&ctx, &a); + let changed = if palette.dark { + Theme::Dark + } else { + Theme::Light + }; + assert_ne!( + ctx.style_of(changed).visuals, + changed.default_style().visuals + ); + assert_ne!(ctx.style_of(Theme::Light).visuals, Visuals::light()); + + crate::theme::apply(&ctx, crate::theme::DEFAULT_ID, &[]); + apply(&ctx, &Appearance::default()); + for theme in [Theme::Dark, Theme::Light] { + let got = ctx.style_of(theme); + let want = theme.default_style(); + assert_eq!(got.visuals, want.visuals); + assert_eq!(got.spacing, want.spacing); + assert_eq!(got.text_styles, want.text_styles); + } + assert_eq!(ctx.options(|o| o.theme_preference), ThemePreference::System); + assert_eq!( + ctx.data(|d| d.get_temp::(font_id())), + Some(Font::Default), + "the stock font family is installed again" + ); + } + + #[test] + fn pill_corners_and_spacious_density() { + let ctx = egui::Context::default(); + let a = Appearance { + corners: Corners::Pill, + density: Density::Spacious, + ..Appearance::default() + }; + apply(&ctx, &a); + for theme in [Theme::Dark, Theme::Light] { + let s = ctx.style_of(theme); + assert_eq!( + s.visuals.widgets.hovered.corner_radius, + CornerRadius::same(12) + ); + assert_eq!(s.visuals.menu_corner_radius, CornerRadius::same(12)); + assert_eq!(s.spacing.button_padding, vec2(8.0, 4.0)); + assert_eq!(s.spacing.menu_spacing, 4.0); + } + } + + #[test] + fn font_flag_tracks_the_installed_family() { + let ctx = egui::Context::default(); + let flag = |ctx: &egui::Context| ctx.data(|d| d.get_temp::(font_id())); + apply_font(&ctx, Font::Default); + assert_eq!(flag(&ctx), None); + apply_font(&ctx, Font::Monospace); + assert_eq!(flag(&ctx), Some(Font::Monospace)); + apply_font(&ctx, Font::Default); + assert_eq!(flag(&ctx), Some(Font::Default)); + } + + #[test] + fn scale_is_clamped() { + let ctx = egui::Context::default(); + let a = Appearance { + scale: 3.0, + ..Appearance::default() + }; + apply(&ctx, &a); + // The new zoom factor takes effect at the start of the next pass. + let mut out = ctx.run_ui(egui::RawInput::default(), |_| {}); + out.textures_delta.clear(); + assert_eq!(ctx.zoom_factor(), 1.5); + } + + #[test] + fn unknown_enum_values_fall_back_to_defaults() { + let a: Appearance = + serde_json::from_str(r#"{"corners":"hexagonal","density":"huge","font":"comic"}"#) + .unwrap(); + assert_eq!(a, Appearance::default()); + } + + #[test] + fn partial_object_keeps_other_defaults() { + let a: Appearance = serde_json::from_str(r#"{"shadows":false}"#).unwrap(); + assert!(!a.shadows); + assert_eq!(a.scale, 1.0); + assert!(a.stripes); + } + + #[test] + fn accent_override_parses_or_is_none() { + let mut a = Appearance::default(); + assert!(a.accents().is_none()); + a.accent_override = Some(AccentOverride { + down: "#00ff00".into(), + up: "#0000ff".into(), + block: "#ff0000".into(), + }); + assert!(a.accents().is_some()); + a.accent_override.as_mut().unwrap().up = "blue".into(); + assert!(a.accents().is_none()); + } +} From fcc84582f1deb4b88948767930862a432367b33c Mon Sep 17 00:00:00 2001 From: Francesco Gruosso <64712227+FrancescoCoding@users.noreply.github.com> Date: Sun, 8 Nov 2026 13:50:03 +0000 Subject: [PATCH 03/10] Let a rule be disabled without deleting it --- src/backend/engine.rs | 6 ++++-- src/backend/mod.rs | 12 +++++++++++- src/backend/rules.rs | 6 +++++- src/types.rs | 4 ++++ 4 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/backend/engine.rs b/src/backend/engine.rs index a1aefd4..355a435 100644 --- a/src/backend/engine.rs +++ b/src/backend/engine.rs @@ -275,11 +275,13 @@ fn handle_packet( } // Look up the rule (cloned so we don't hold the rules lock). The "Unknown" - // row is never shaped: see `synthetic::is_shapable`. + // row is never shaped: see `synthetic::is_shapable`. A disabled rule is + // listed but not applied, so it counts as no rule here. let rule = exe .as_ref() .filter(|e| synthetic::is_shapable(e)) - .and_then(|e| shared.rules.lock().unwrap().get(e).cloned()); + .and_then(|e| shared.rules.lock().unwrap().get(e).cloned()) + .filter(|r| !r.disabled); match rule { // No process match, or no rule: pass through untouched. diff --git a/src/backend/mod.rs b/src/backend/mod.rs index 0e35239..9148780 100644 --- a/src/backend/mod.rs +++ b/src/backend/mod.rs @@ -218,11 +218,21 @@ fn run_aggregator(shared: Arc, cmd_rx: Receiver, snapshot_tx: S Ok(Command::SetRule(mut rule)) => { rule.exe_path = rule.exe_path.to_lowercase(); let key = rule.exe_path.clone(); + let disabled = rule.disabled; let snapshot = { let mut rules = shared.rules.lock().unwrap(); - rules.insert(key, rule); + rules.insert(key.clone(), rule); rules.clone() }; + // A disabled rule must stop shaping at once: drop its + // buckets so held packets are released, as for a removal. + if disabled { + shared + .buckets + .lock() + .unwrap() + .retain(|(exe, _), _| exe != &key); + } if let Err(e) = rules::save(&snapshot) { tracing::warn!("failed to persist rules: {e}"); } diff --git a/src/backend/rules.rs b/src/backend/rules.rs index 04e52ac..a6ac12d 100644 --- a/src/backend/rules.rs +++ b/src/backend/rules.rs @@ -42,7 +42,8 @@ pub fn load() -> HashMap { } }; - match serde_json::from_str::>(&data) { + // A UTF-8 byte order mark from an editor must not empty the rule set. + match serde_json::from_str::>(data.trim_start_matches('\u{feff}')) { Ok(mut map) => { // Defensively normalise keys to lowercase so lookups from the engine // (which always lowercases) match regardless of how the file was written. @@ -89,6 +90,7 @@ mod tests { down_limit: Some(2 * 1024 * 1024), up_limit: None, blocked: false, + disabled: false, }, ); rules.insert( @@ -98,6 +100,7 @@ mod tests { down_limit: None, up_limit: Some(512 * 1024), blocked: true, + disabled: true, }, ); @@ -121,5 +124,6 @@ mod tests { assert!(r.down_limit.is_none()); assert!(r.up_limit.is_none()); assert!(!r.blocked); + assert!(!r.disabled); } } diff --git a/src/types.rs b/src/types.rs index 4502e1d..0f28469 100644 --- a/src/types.rs +++ b/src/types.rs @@ -17,6 +17,10 @@ pub struct Rule { pub up_limit: Option, /// If true, all traffic for this process is dropped. pub blocked: bool, + /// The rule is switched off: kept in the list but not applied. Missing in + /// files from older builds, so it defaults to active. + #[serde(default)] + pub disabled: bool, } /// Live stats for one process, sent to the GUI once per second. From c9ed5fe47e8a53ee1e62e95cb0d4792bf60db578 Mon Sep 17 00:00:00 2001 From: Francesco Gruosso <64712227+FrancescoCoding@users.noreply.github.com> Date: Sun, 8 Nov 2026 15:10:29 +0000 Subject: [PATCH 04/10] Persist theme, appearance, view and table preferences --- src/main.rs | 2 + src/settings.rs | 241 +++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 239 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index ad25907..cad8f5d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,12 +10,14 @@ windows_subsystem = "windows" )] +mod appearance; mod autostart; mod backend; mod gui; mod icon; mod settings; mod single_instance; +mod theme; mod types; mod update_check; diff --git a/src/settings.rs b/src/settings.rs index 2d64b83..af14868 100644 --- a/src/settings.rs +++ b/src/settings.rs @@ -6,15 +6,19 @@ //! startup is not stored here: the scheduled task's existence is the source of //! truth (see `autostart`). +use std::collections::BTreeMap; use std::path::PathBuf; use serde::{Deserialize, Serialize}; +use crate::appearance::Appearance; use crate::backend::rules::config_dir; +use crate::theme::{self, CustomTheme}; -/// User preferences for window and tray behaviour. Every field defaults to -/// `false`, so an upgrade keeps the old "taskbar window, X quits" behaviour. -#[derive(Debug, Clone, Default, Serialize, Deserialize, PartialEq)] +/// User preferences for window, tray and theme. The tray flags default to +/// `false` and the theme to `theme::DEFAULT_ID`, so an upgrade keeps the old +/// "taskbar window, X quits, stock look" behaviour. +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] #[serde(default)] pub struct Settings { /// Minimising the window hides it to the tray instead of the taskbar. @@ -23,6 +27,135 @@ pub struct Settings { pub close_to_tray: bool, /// Start hidden in the tray when launched by hand. pub start_minimized: bool, + /// Colour theme id (see `theme`). Kept as stored even if unknown, so a + /// newer build's palette survives a downgrade; `theme::apply` falls back. + pub theme: String, + /// Corner rounding, density, scale, fonts and accent overrides. + pub appearance: Appearance, + /// Table columns, plot style, always on top and compact mode. + pub view: View, + /// Sort order and column widths of the process table. + pub table: Table, + /// Sizes of the resizable panels. + pub panels: Panels, + /// Palettes imported from colour theme files. + pub custom_themes: Vec, +} + +/// The process table's sort key. `Down` is the fallback for an unknown +/// value in the file, so it must stay the last variant (`serde(other)`). +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum SortColumn { + Name, + Flows, + Up, + DownTotal, + UpTotal, + #[serde(other)] + Down, +} + +/// Panel sizes in points, as last dragged. `None` is the built in default. +#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)] +#[serde(default)] +pub struct Panels { + /// Height of the header plot panel. + pub plot_height: Option, + /// Width of the detail panel on the right. + pub detail_width: Option, +} + +/// Process table state kept across restarts. The defaults are today's +/// start-up state: sorted by download rate, widest first, columns auto sized. +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct Table { + /// Column the rows are sorted by. + pub sort: SortColumn, + /// Sort largest (or Z) first. + pub descending: bool, + /// Column widths in points, keyed by column id, as last seen on screen. + /// Only used when every visible column has one (see `gui`). + pub widths: BTreeMap, + /// The Active chip: only list processes moving data right now. + pub active_only: bool, +} + +impl Default for Table { + fn default() -> Self { + Self { + sort: SortColumn::Down, + descending: true, + widths: BTreeMap::new(), + active_only: false, + } + } +} + +/// Layout preferences from the View menu. Every default is today's look. +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct View { + /// Show the Flows column. + pub show_flows: bool, + /// Show the Down column. + pub show_down: bool, + /// Show the Up column. + pub show_up: bool, + /// Show the Total down column. + pub show_down_total: bool, + /// Show the Total up column. + pub show_up_total: bool, + /// Show the Rule column. + pub show_rule: bool, + /// Fill the area under the plot lines. + pub plot_fill: bool, + /// Plot line width in points. + pub plot_line_width: f32, + /// Header plot history in seconds (one sample per second). + pub history_secs: usize, + /// Keep the window above other windows. + pub always_on_top: bool, + /// Hide the header plot. + pub compact: bool, + /// Show the filter box above the process table. + pub show_filter: bool, +} + +impl Default for View { + fn default() -> Self { + Self { + show_flows: true, + show_down: true, + show_up: true, + show_down_total: true, + show_up_total: true, + show_rule: true, + plot_fill: false, + plot_line_width: 1.0, + history_secs: 120, + always_on_top: false, + compact: false, + show_filter: true, + } + } +} + +impl Default for Settings { + fn default() -> Self { + Self { + minimize_to_tray: false, + close_to_tray: false, + start_minimized: false, + theme: theme::DEFAULT_ID.to_string(), + appearance: Appearance::default(), + view: View::default(), + table: Table::default(), + panels: Panels::default(), + custom_themes: Vec::new(), + } + } } /// Full path to the settings file. @@ -41,7 +174,8 @@ pub fn load() -> Settings { return Settings::default(); } }; - serde_json::from_str(&data).unwrap_or_else(|e| { + // Editors and shells often write a UTF-8 byte order mark; it is not JSON. + serde_json::from_str(data.trim_start_matches('\u{feff}')).unwrap_or_else(|e| { tracing::warn!("failed to parse {}: {e}; using defaults", path.display()); Settings::default() }) @@ -65,6 +199,8 @@ mod tests { minimize_to_tray: true, close_to_tray: false, start_minimized: true, + theme: "dark".to_string(), + ..Settings::default() }; let json = serde_json::to_string(&settings).unwrap(); let back: Settings = serde_json::from_str(&json).unwrap(); @@ -82,4 +218,101 @@ mod tests { } ); } + + #[test] + fn missing_theme_defaults_to_system() { + let back: Settings = + serde_json::from_str(r#"{"minimize_to_tray": true, "close_to_tray": false}"#).unwrap(); + assert_eq!(back.theme, theme::DEFAULT_ID); + assert!(back.minimize_to_tray); + } + + #[test] + fn unknown_theme_is_kept_as_stored() { + let back: Settings = serde_json::from_str(r#"{"theme": "no-such-theme"}"#).unwrap(); + assert_eq!(back.theme, "no-such-theme"); + } + + /// Francesco's live file: tray flags on, a palette picked. A partial or + /// odd `appearance` object must never reset those. + #[test] + fn bad_nested_values_keep_other_settings() { + let json = r#"{ + "minimize_to_tray": true, "close_to_tray": true, "theme": "dark-plus", + "appearance": {"corners": "weird", "scale": 1.25}, + "view": {"show_flows": false}, + "custom_themes": [{"id": "x", "label": "X", "bg": "oops"}] + }"#; + let back: Settings = serde_json::from_str(json).unwrap(); + assert!(back.minimize_to_tray && back.close_to_tray); + assert_eq!(back.theme, "dark-plus"); + assert_eq!(back.appearance.scale, 1.25); + assert!(!back.view.show_flows); + assert!(back.view.show_down); + assert_eq!(back.custom_themes.len(), 1); + } + + #[test] + fn custom_themes_round_trip_through_json() { + let palette = theme::builtin().next().expect("bundled palettes exist"); + let mut custom = CustomTheme::from(palette); + custom.id = "mine".to_string(); + custom.label = "Mine".to_string(); + let settings = Settings { + theme: "mine".to_string(), + custom_themes: vec![custom], + ..Settings::default() + }; + let json = serde_json::to_string_pretty(&settings).unwrap(); + let back: Settings = serde_json::from_str(&json).unwrap(); + assert_eq!(settings, back); + let restored = back.custom_themes[0].to_palette(); + assert_eq!(restored.id, "mine"); + assert_eq!(restored.source, theme::Source::Custom); + assert_eq!(restored.accents, palette.accents); + assert_eq!(restored.bg, palette.bg); + } + + #[test] + fn view_defaults_show_everything() { + let v = View::default(); + assert!(v.show_flows && v.show_down && v.show_up); + assert!(v.show_down_total && v.show_up_total && v.show_rule); + assert!(!v.plot_fill && !v.always_on_top && !v.compact); + assert!(v.show_filter); + assert_eq!(v.plot_line_width, 1.0); + assert_eq!(v.history_secs, 120); + // An empty object is the same as the defaults. + let back: View = serde_json::from_str("{}").unwrap(); + assert_eq!(back, v); + } + + #[test] + fn byte_order_mark_is_ignored() { + let json = "\u{feff}{\"close_to_tray\": true}"; + let back: Settings = serde_json::from_str(json.trim_start_matches('\u{feff}')).unwrap(); + assert!(back.close_to_tray); + } + + #[test] + fn table_state_round_trips_and_tolerates_unknown_sort() { + let mut table = Table { + sort: SortColumn::UpTotal, + descending: false, + ..Table::default() + }; + table.widths.insert("name".to_string(), 240.5); + let json = serde_json::to_string(&table).unwrap(); + assert!(json.contains("\"up_total\"")); + let back: Table = serde_json::from_str(&json).unwrap(); + assert_eq!(back, table); + + // A sort key from a newer build falls back to the default, and the + // rest of the settings survive. + let back: Settings = + serde_json::from_str(r#"{"theme": "nord", "table": {"sort": "latency"}}"#).unwrap(); + assert_eq!(back.table.sort, SortColumn::Down); + assert_eq!(back.theme, "nord"); + assert!(back.table.descending); + } } From f359a647d8a59e2d947c254d90368b9705262b2b Mon Sep 17 00:00:00 2001 From: Francesco Gruosso <64712227+FrancescoCoding@users.noreply.github.com> Date: Sun, 8 Nov 2026 19:35:51 +0000 Subject: [PATCH 05/10] Add Themes, Customise and View menus, plot navigation, filter box and tray rule toggles Themes menu with swatches that stays open while cycling, Surprise me and File > Import theme. Customise window and View menu. Scroll to zoom and drag to pan the plots, rate axis in KB/s and MB/s. Filter box with an Active chip. Rules can be switched off from the right click menu and the tray menu, which also shows live totals in its tooltip. Window, panel sizes, column widths and sort order are remembered. Folder button in the detail panel. Limit field only takes numbers. Buy me a coffee link. --- Cargo.lock | 89 ++- Cargo.toml | 3 +- src/gui.rs | 1760 ++++++++++++++++++++++++++++++++++++++++++++++----- src/icon.rs | 34 +- src/main.rs | 6 +- 5 files changed, 1733 insertions(+), 159 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e47e8fc..08fd1ea 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -24,6 +24,8 @@ version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3b7f7f85a7e5f68090000ed7622545829afd484d210358702ae4cb97dd0c320" dependencies = [ + "enumn", + "serde", "uuid", ] @@ -146,6 +148,7 @@ dependencies = [ "cfg-if", "getrandom 0.3.4", "once_cell", + "serde", "version_check", "zerocopy", ] @@ -464,6 +467,9 @@ name = "bitflags" version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" +dependencies = [ + "serde_core", +] [[package]] name = "block-buffer" @@ -804,6 +810,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ "bitflags 2.13.2", + "block2 0.6.2", + "libc", "objc2 0.6.4", ] @@ -856,6 +864,7 @@ checksum = "0656a7530b9e2841ee7a5f983965bdd9840c32f4012f759cfd44b912cced6b34" dependencies = [ "bytemuck", "emath", + "serde", ] [[package]] @@ -884,6 +893,8 @@ dependencies = [ "pollster", "profiling", "raw-window-handle", + "ron", + "serde", "static_assertions", "wasm-bindgen", "web-sys", @@ -908,6 +919,8 @@ dependencies = [ "log", "nohash-hasher", "profiling", + "ron", + "serde", "smallvec", "unicode-segmentation", "web-sys", @@ -949,6 +962,7 @@ dependencies = [ "objc2-ui-kit 0.3.2", "profiling", "raw-window-handle", + "serde", "smithay-clipboard", "web-time", "webbrowser", @@ -1008,6 +1022,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "52c8d4141cf0f60fb2f7aefaf352d3ffa5171ef0ab09731c64391801e95e48f1" dependencies = [ "bytemuck", + "serde", ] [[package]] @@ -1063,6 +1078,17 @@ dependencies = [ "syn 2.0.119", ] +[[package]] +name = "enumn" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f9ed6b3789237c8a0c1c505af1c7eb2c560df6186f01b098c3a1064ea532f38" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + [[package]] name = "epaint" version = "0.36.2" @@ -1081,6 +1107,7 @@ dependencies = [ "parking_lot", "profiling", "self_cell", + "serde", "skrifa", "smallvec", "unicode-general-category", @@ -1211,6 +1238,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b8eb065f3251655b3c90e22e5e363f310fc5332fb3402e37bbc94752283248f6" dependencies = [ "bytemuck", + "serde", ] [[package]] @@ -2157,10 +2185,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ "bitflags 2.13.2", + "block2 0.6.2", "objc2 0.6.4", "objc2-core-foundation", "objc2-core-graphics", "objc2-foundation 0.3.2", + "objc2-uniform-type-identifiers 0.3.2", ] [[package]] @@ -2379,7 +2409,7 @@ dependencies = [ "objc2-link-presentation", "objc2-quartz-core 0.2.2", "objc2-symbols", - "objc2-uniform-type-identifiers", + "objc2-uniform-type-identifiers 0.2.2", "objc2-user-notifications", ] @@ -2406,6 +2436,16 @@ dependencies = [ "objc2-foundation 0.2.2", ] +[[package]] +name = "objc2-uniform-type-identifiers" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7902ac02859fc1f7045f8b598c63f1ae0cc7efeaa06a9bc9f3d9a3c955974fa4" +dependencies = [ + "objc2 0.6.4", + "objc2-foundation 0.3.2", +] + [[package]] name = "objc2-user-notifications" version = "0.2.2" @@ -2868,6 +2908,30 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b30a45b0cd0bcca8037f3d0dc3421eaf95327a17cad11964fb8179b4fc4832" +[[package]] +name = "rfd" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4b9d4857b10297ffb0f64cae711e983a7aeaee561848d56d429d3858bd8ed93" +dependencies = [ + "block2 0.6.2", + "dispatch2", + "js-sys", + "libc", + "log", + "objc2 0.6.4", + "objc2-app-kit 0.3.2", + "objc2-core-foundation", + "objc2-foundation 0.3.2", + "objc2-uniform-type-identifiers 0.3.2", + "percent-encoding", + "raw-window-handle", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", + "windows-sys 0.61.2", +] + [[package]] name = "ring" version = "0.17.14" @@ -2882,6 +2946,19 @@ dependencies = [ "windows-sys 0.52.0", ] +[[package]] +name = "ron" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97b3fe97c18ff24299ea56f802c5693eb34266fb0bc8317f4e101debc8a3ceaf" +dependencies = [ + "bitflags 2.13.2", + "serde", + "serde_derive", + "typeid", + "unicode-ident", +] + [[package]] name = "rustc-hash" version = "1.1.0" @@ -3173,6 +3250,9 @@ name = "smallvec" version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" +dependencies = [ + "serde", +] [[package]] name = "smithay-client-toolkit" @@ -3393,6 +3473,7 @@ dependencies = [ "egui_extras", "egui_plot", "embed-manifest", + "rfd", "serde", "serde_json", "sha2", @@ -3599,6 +3680,12 @@ dependencies = [ "rustc-hash 2.1.3", ] +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + [[package]] name = "typenum" version = "1.20.1" diff --git a/Cargo.toml b/Cargo.toml index aa4d0e1..29c877b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -9,7 +9,7 @@ license = "MIT" [dependencies] anyhow = "1.0.103" crossbeam-channel = "0.5.16" -eframe = "0.36.2" +eframe = { version = "0.36.2", features = ["persistence"] } egui_extras = "0.36.2" egui_plot = "0.37.0" serde = { version = "1.0.228", features = ["derive"] } @@ -17,6 +17,7 @@ serde_json = "1.0.150" sha2 = "0.10" tracing = "0.1.44" tracing-subscriber = "0.3.23" +rfd = { version = "0.18", default-features = false } tray-icon = { version = "0.26.1", default-features = false } ureq = "3" windivert = "0.6.0" diff --git a/src/gui.rs b/src/gui.rs index 3ab3184..3f675cc 100644 --- a/src/gui.rs +++ b/src/gui.rs @@ -4,27 +4,44 @@ //! This file is built against the shared contract in `crate::types` and must //! not depend on any backend internals beyond the `snapshot_rx` receiver. -use std::time::{Duration, Instant}; +use std::time::{Duration, Instant, SystemTime, UNIX_EPOCH}; use crossbeam_channel::{Receiver, Sender}; use eframe::egui; use eframe::egui::Widget; use egui_plot::{Legend, Line, Plot, PlotPoints}; -use tray_icon::menu::{Menu, MenuEvent, MenuItem, PredefinedMenuItem}; +use tray_icon::menu::{CheckMenuItem, Menu, MenuEvent, MenuItem, PredefinedMenuItem}; use tray_icon::{Icon, MouseButton, MouseButtonState, TrayIcon, TrayIconBuilder, TrayIconEvent}; use crate::backend::rules; use crate::backend::synthetic::{is_shapable, is_system}; -use crate::settings::{self, Settings}; +use crate::settings::{self, Settings, SortColumn, View}; use crate::types::{Command, ProcessStats, Rule, Snapshot}; use crate::update_check::{self, UpdateInfo}; -use crate::{autostart, icon, single_instance}; +use crate::{appearance, autostart, icon, single_instance, theme}; -/// How many total-rate samples we keep for the header graph. +/// How many total-rate samples we keep for the header graph by default; the +/// View menu changes it through `View::history_secs`. const TOTAL_HISTORY_LEN: usize = 120; +/// Fill opacity under the plot lines when "Filled area" is on. +const PLOT_FILL_ALPHA: f32 = 0.15; + +/// Header plot history choices in the View menu: `(seconds, label)`. +const HISTORY_CHOICES: [(usize, &str); 4] = [ + (60, "1 minute"), + (120, "2 minutes"), + (300, "5 minutes"), + (600, "10 minutes"), +]; + +/// Plot line width choices in the View menu: `(points, label)`. +const LINE_WIDTH_CHOICES: [(f32, &str); 3] = [(1.0, "1"), (2.0, "2"), (3.0, "3")]; + /// Project links used by the Help menu and the About dialog. const REPO_URL: &str = env!("CARGO_PKG_REPOSITORY"); +/// Where to support the project, linked from Help and About. +const SUPPORT_URL: &str = "https://buymeacoffee.com/franwbu"; const APP_VERSION: &str = env!("CARGO_PKG_VERSION"); /// Version of the bundled WinDivert driver (see `vendor/`). const WINDIVERT_VERSION: &str = "2.2.2"; @@ -32,9 +49,16 @@ const WINDIVERT_VERSION: &str = "2.2.2"; /// How long a start in the tray waits for the taskbar before staying visible. const START_HIDDEN_WAIT: Duration = Duration::from_secs(60); -const COLOR_DOWN: egui::Color32 = egui::Color32::from_rgb(0x4c, 0xaf, 0x50); -const COLOR_UP: egui::Color32 = egui::Color32::from_rgb(0x21, 0x96, 0xf3); -const COLOR_BLOCK: egui::Color32 = egui::Color32::from_rgb(0xe5, 0x39, 0x35); +/// Width reserved for the folder button in the detail panel header. +const FOLDER_BUTTON_WIDTH: f32 = 44.0; + +/// Ids of the fixed tray menu entries; rule entries use `TRAY_RULE_PREFIX`. +const TRAY_SHOW_ID: &str = "show"; +const TRAY_EXIT_ID: &str = "exit"; +/// Tray menu id prefix for a rule toggle; the rest is the rule's exe key. +const TRAY_RULE_PREFIX: &str = "rule:"; +/// Most rule toggles the tray menu lists before it points to the window. +const TRAY_RULE_LIMIT: usize = 15; // --------------------------------------------------------------------------- // Formatting / parsing helpers @@ -125,40 +149,149 @@ impl RateUnit { } } -/// One-line summary of a rule for the table column. +/// What may stay in the limit field: digits and one decimal separator (a +/// dot or a comma), so letters typed or pasted in disappear at once. +fn numeric_input(text: &str) -> String { + let mut out = String::with_capacity(text.len()); + let mut separator = false; + for c in text.chars() { + if c.is_ascii_digit() { + out.push(c); + } else if (c == '.' || c == ',') && !separator { + separator = true; + out.push(c); + } + } + out +} + +/// One-line summary of a rule for the table column. A disabled rule reads +/// "Off: " plus what it would do when switched back on. fn rule_summary(rule: Option<&Rule>) -> String { - match rule { - None => "-".to_string(), - Some(r) if r.blocked => "BLOCKED".to_string(), - Some(r) => { - let mut parts = Vec::new(); - if let Some(d) = r.down_limit { - parts.push(format!("Dn {}", humanize_rate(d))); - } - if let Some(u) = r.up_limit { - parts.push(format!("Up {}", humanize_rate(u))); - } - if parts.is_empty() { - "-".to_string() - } else { - parts.join(" ") - } + let Some(r) = rule else { + return "-".to_string(); + }; + let summary = if r.blocked { + "BLOCKED".to_string() + } else { + let mut parts = Vec::new(); + if let Some(d) = r.down_limit { + parts.push(format!("Dn {}", humanize_rate(d))); + } + if let Some(u) = r.up_limit { + parts.push(format!("Up {}", humanize_rate(u))); } + if parts.is_empty() { + return "-".to_string(); + } + parts.join(" ") + }; + if r.disabled { + format!("Off: {summary}") + } else { + summary } } +/// Whether the process moved any data in the last second. +fn is_active(stats: &ProcessStats) -> bool { + stats.down_rate > 0 || stats.up_rate > 0 +} + +/// Whether `stats` matches the filter box text: a case-insensitive +/// substring of the process name or its path. Blank matches everything. +fn matches_filter(stats: &ProcessStats, filter: &str) -> bool { + let needle = filter.trim().to_lowercase(); + needle.is_empty() + || stats.name.to_lowercase().contains(&needle) + || stats.exe_path.to_lowercase().contains(&needle) +} + // --------------------------------------------------------------------------- // Sorting / modal state // --------------------------------------------------------------------------- -#[derive(Clone, Copy, PartialEq, Eq)] -enum SortColumn { +/// A column of the process table, in display order. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum TableColumn { Name, Flows, Down, Up, DownTotal, UpTotal, + Rule, +} + +impl TableColumn { + const ALL: [TableColumn; 7] = [ + TableColumn::Name, + TableColumn::Flows, + TableColumn::Down, + TableColumn::Up, + TableColumn::DownTotal, + TableColumn::UpTotal, + TableColumn::Rule, + ]; + + fn label(self) -> &'static str { + match self { + TableColumn::Name => "Process", + TableColumn::Flows => "Flows", + TableColumn::Down => "Down", + TableColumn::Up => "Up", + TableColumn::DownTotal => "Total down", + TableColumn::UpTotal => "Total up", + TableColumn::Rule => "Rule", + } + } + + /// Stable key for the column's saved width in the settings file. + fn id(self) -> &'static str { + match self { + TableColumn::Name => "name", + TableColumn::Flows => "flows", + TableColumn::Down => "down", + TableColumn::Up => "up", + TableColumn::DownTotal => "down_total", + TableColumn::UpTotal => "up_total", + TableColumn::Rule => "rule", + } + } + + /// The sort key behind the header, if the column sorts. + fn sort(self) -> Option { + match self { + TableColumn::Name => Some(SortColumn::Name), + TableColumn::Flows => Some(SortColumn::Flows), + TableColumn::Down => Some(SortColumn::Down), + TableColumn::Up => Some(SortColumn::Up), + TableColumn::DownTotal => Some(SortColumn::DownTotal), + TableColumn::UpTotal => Some(SortColumn::UpTotal), + TableColumn::Rule => None, + } + } + + /// Whether the View menu shows the column. The process name always shows. + fn visible(self, view: &View) -> bool { + match self { + TableColumn::Name => true, + TableColumn::Flows => view.show_flows, + TableColumn::Down => view.show_down, + TableColumn::Up => view.show_up, + TableColumn::DownTotal => view.show_down_total, + TableColumn::UpTotal => view.show_up_total, + TableColumn::Rule => view.show_rule, + } + } +} + +/// The table columns `view` shows, in display order. +fn visible_columns(view: &View) -> Vec { + TableColumn::ALL + .into_iter() + .filter(|c| c.visible(view)) + .collect() } #[derive(Clone, Copy, PartialEq, Eq)] @@ -190,15 +323,31 @@ pub struct ThrottleApp { total_down_hist: Vec, total_up_hist: Vec, - sort_column: SortColumn, - sort_desc: bool, selected: Option, + /// Text of the filter box above the table. Not persisted. + filter: String, + /// Ctrl+F was pressed: focus the filter box when it is drawn. + focus_filter: bool, limit_modal: Option, about_open: bool, shutdown_sent: bool, settings: Settings, + /// Accent colours of the active theme (plots, rates, blocked rules). + accents: theme::Accents, + /// Palettes imported from colour theme files (`settings.custom_themes`). + custom_palettes: Vec, + /// The Customise window is open. + customise_open: bool, + /// Why the last theme import failed; shown until dismissed. + import_error: Option, + /// No frame has run yet, so the window level is still to be applied. + first_frame: bool, + /// Last frame's state of the header plot, for the hint in the totals line. + total_plot_hint: PlotHint, + /// Last frame's state of the detail plot, for the hint by its heading. + detail_plot_hint: PlotHint, /// `None` until the background check of the startup task reports back. autostart: Option, autostart_rx: Receiver, @@ -207,6 +356,10 @@ pub struct ThrottleApp { /// `None` if the tray icon could not be created; the window then never hides. tray: Option, tray_rx: Receiver, + /// The rule toggles the tray menu currently shows, to rebuild it on change. + tray_rules: Vec, + /// The tray tooltip currently set, to update it only when the totals change. + tray_tooltip: String, /// The window is hidden to the tray (no taskbar button). hidden: bool, /// Whether the window was minimised last frame, to catch the moment it is. @@ -227,6 +380,19 @@ pub struct ThrottleApp { enum TrayAction { Show, Exit, + /// Switch the rule with this exe key off, or back on. + ToggleRule(String), +} + +/// One rule toggle in the tray menu. +#[derive(Debug, Clone, PartialEq, Eq)] +struct TrayRule { + /// Lowercase exe path, the rule's key. + key: String, + /// Process name and what the rule does. + label: String, + /// The rule is active (the entry shows a check mark). + active: bool, } /// Progress of an in-app update started from the banner. @@ -245,30 +411,46 @@ impl ThrottleApp { start_hidden: bool, ) -> Self { let (tray_tx, tray_rx) = crossbeam_channel::unbounded(); + // The tray starts with the stock icon; `restyle` below recolours it + // when the theme's accents differ from the stock ones. let tray = create_tray(&cc.egui_ctx, tray_tx.clone()); let ctx = cc.egui_ctx.clone(); single_instance::on_show_request(move || { let _ = tray_tx.send(TrayAction::Show); ctx.request_repaint(); }); - Self { + let custom_palettes = settings + .custom_themes + .iter() + .map(theme::CustomTheme::to_palette) + .collect(); + let mut app = Self { snapshot_rx, cmd_tx, last_snapshot: Snapshot::default(), total_down_hist: Vec::with_capacity(TOTAL_HISTORY_LEN), total_up_hist: Vec::with_capacity(TOTAL_HISTORY_LEN), - sort_column: SortColumn::Down, - sort_desc: true, selected: None, + filter: String::new(), + focus_filter: false, limit_modal: None, about_open: false, shutdown_sent: false, settings, + accents: theme::Accents::DEFAULT, + custom_palettes, + customise_open: false, + import_error: None, + first_frame: true, + total_plot_hint: PlotHint::default(), + detail_plot_hint: PlotHint::default(), autostart: None, autostart_rx: spawn_autostart_check(), autostart_error: None, tray, tray_rx, + tray_rules: Vec::new(), + tray_tooltip: String::new(), hidden: false, was_minimized: false, start_hidden: start_hidden.then(|| Instant::now() + START_HIDDEN_WAIT), @@ -277,7 +459,79 @@ impl ThrottleApp { update: None, update_dismissed: false, update_install: UpdateInstall::Idle, + }; + app.restyle(&cc.egui_ctx); + app + } + + /// Apply the theme and appearance settings to `ctx`, take the accents + /// they give and recolour the tray icon to match. Runs at startup and + /// after every change from the Themes menu, the Customise window or an + /// import. + fn restyle(&mut self, ctx: &egui::Context) { + let mut accents = theme::apply(ctx, &self.settings.theme, &self.custom_palettes); + // Always after `theme::apply`, which resets both stock visuals. + appearance::apply(ctx, &self.settings.appearance); + if let Some(o) = self.settings.appearance.accents() { + accents = o; + } + let icon_changed = (accents.down, accents.up) != (self.accents.down, self.accents.up); + self.accents = accents; + if icon_changed { + self.refresh_tray_icon(); + } + } + + /// Redraw the tray icon in the current accents. Best effort: a failure + /// is logged and the old icon stays. + fn refresh_tray_icon(&self) { + let Some(tray) = &self.tray else { + return; + }; + let result = Icon::from_rgba(tray_icon_rgba(self.accents), icon::SIZE, icon::SIZE) + .map_err(|e| e.to_string()) + .and_then(|icon| tray.set_icon(Some(icon)).map_err(|e| e.to_string())); + if let Err(e) = result { + tracing::warn!("failed to recolour the tray icon: {e}"); + } + } + + /// After a new snapshot: put the live totals in the tray tooltip and + /// rebuild the tray menu when the rules it lists changed. Runs while + /// hidden too, which is when the tray is what the user sees. + fn refresh_tray(&mut self, ctx: &egui::Context) { + let Some(tray) = &self.tray else { + return; + }; + let snap = &self.last_snapshot; + let tooltip = format!( + "Throttle\nDown {}\nUp {}", + humanize_rate(snap.total_down_rate), + humanize_rate(snap.total_up_rate) + ); + if tooltip != self.tray_tooltip { + if let Err(e) = tray.set_tooltip(Some(&tooltip)) { + tracing::warn!("failed to update the tray tooltip: {e}"); + } + self.tray_tooltip = tooltip; } + + let rules = tray_rules(snap); + if rules != self.tray_rules { + tray.set_menu(Some(Box::new(tray_menu(&rules)))); + self.tray_rules = rules; + ctx.request_repaint(); + } + } + + /// Send the window level the View menu asks for. + fn send_window_level(&self, ctx: &egui::Context) { + let level = if self.settings.view.always_on_top { + egui::WindowLevel::AlwaysOnTop + } else { + egui::WindowLevel::Normal + }; + ctx.send_viewport_cmd(egui::ViewportCommand::WindowLevel(level)); } fn send_shutdown(&mut self) { @@ -305,6 +559,10 @@ impl ThrottleApp { ctx.send_viewport_cmd(egui::ViewportCommand::Visible(true)); ctx.send_viewport_cmd(egui::ViewportCommand::Minimized(false)); ctx.send_viewport_cmd(egui::ViewportCommand::Focus); + // Showing a hidden window can drop it back to the normal level. + if self.settings.view.always_on_top { + self.send_window_level(ctx); + } self.hidden = false; } @@ -350,13 +608,25 @@ impl ThrottleApp { let _ = self.cmd_tx.send(Command::SetRule(rule)); } + /// Block or unblock; either switches a disabled rule back on, since the + /// user just asked for it to do something. fn set_blocked(&mut self, key: &str, blocked: bool) { let mut rule = self.base_rule(key); rule.exe_path = key.to_string(); rule.blocked = blocked; + rule.disabled = false; self.send_rule(rule); } + /// Switch a rule off (kept, not applied) or back on. No rule: nothing. + fn set_rule_disabled(&mut self, key: &str, disabled: bool) { + if let Some(rule) = self.last_snapshot.rules.get(key) { + let mut rule = rule.clone(); + rule.disabled = disabled; + self.send_rule(rule); + } + } + fn open_limit_modal(&mut self, key: &str, name: &str, direction: Direction) { let existing = self.last_snapshot.rules.get(key); let current = existing.and_then(|r| match direction { @@ -410,14 +680,14 @@ impl ThrottleApp { fn sort_header(&mut self, ui: &mut egui::Ui, label: &str, col: SortColumn) { let text = egui::RichText::new(label).strong(); let grow = egui::Atom::grow(); - let col_selected = self.sort_column == col; + let col_selected = self.settings.table.sort == col; let direction_text = if !col_selected { "" - } else if self.sort_desc { - "â–¼" + } else if self.settings.table.descending { + "\u{25bc}" } else { - "â–²" + "\u{25b2}" }; // The default font is missing the arrows, use the bundled monospace font (Hack) instead let direction = egui::RichText::new(direction_text).monospace(); @@ -429,12 +699,14 @@ impl ThrottleApp { .corner_radius(0); if ui.add(button).clicked() { + let table = &mut self.settings.table; if col_selected { - self.sort_desc = !self.sort_desc; + table.descending = !table.descending; } else { - self.sort_column = col; - self.sort_desc = true; + table.sort = col; + table.descending = true; } + self.save_settings(); } } @@ -442,6 +714,11 @@ impl ThrottleApp { egui::Panel::top("menu_bar").show(ui, |ui| { egui::MenuBar::new().ui(ui, |ui| { ui.menu_button("File", |ui| { + if ui.button("Import theme...").clicked() { + ui.close(); + self.import_theme(ui.ctx()); + } + ui.separator(); if ui.button("Open rules file").clicked() { open_path(&rules::rules_path()); ui.close(); @@ -461,6 +738,15 @@ impl ThrottleApp { } }); ui.menu_button("Settings", |ui| self.draw_settings_menu(ui)); + // Menus close on any click by default; this one stays open + // so palettes can be cycled through, and its submenus inherit + // that. Surprise me and Customise close it explicitly. + let stay_open = egui::containers::menu::MenuConfig::new() + .close_behavior(egui::PopupCloseBehavior::CloseOnClickOutside); + egui::containers::menu::MenuButton::new("Themes") + .config(stay_open) + .ui(ui, |ui| self.draw_themes_menu(ui)); + ui.menu_button("View", |ui| self.draw_view_menu(ui)); ui.menu_button("Help", |ui| { if ui.button("Documentation").clicked() { open_url(ui.ctx(), &format!("{REPO_URL}#readme")); @@ -471,8 +757,8 @@ impl ThrottleApp { ui.close(); } let update_label = match &self.update { - Some(u) => format!("Update available: v{}…", u.version), - None => "Check for updates…".to_string(), + Some(u) => format!("Update available: v{}\u{2026}", u.version), + None => "Check for updates\u{2026}".to_string(), }; if ui.button(update_label).clicked() { open_url(ui.ctx(), &format!("{REPO_URL}/releases/latest")); @@ -483,7 +769,18 @@ impl ThrottleApp { open_url(ui.ctx(), &format!("{REPO_URL}/blob/main/LICENSE")); ui.close(); } + if ui.button("Third party notices").clicked() { + open_url( + ui.ctx(), + &format!("{REPO_URL}/blob/main/THIRD_PARTY_NOTICES.md"), + ); + ui.close(); + } ui.separator(); + if ui.button("Buy me a coffee").clicked() { + open_url(ui.ctx(), SUPPORT_URL); + ui.close(); + } if ui.button("About Throttle").clicked() { self.about_open = true; ui.close(); @@ -528,7 +825,246 @@ impl ThrottleApp { self.set_autostart(autostart); } if let Some(e) = &self.autostart_error { - ui.label(egui::RichText::new(e).small().color(COLOR_BLOCK)); + ui.label(egui::RichText::new(e).small().color(self.accents.block)); + } + } + + fn draw_themes_menu(&mut self, ui: &mut egui::Ui) { + for (id, label) in theme::BUILTIN { + self.theme_row(ui, id, label, None); + } + ui.separator(); + type InGroup = fn(&theme::Palette) -> bool; + let groups: [(&str, InGroup); 3] = [ + ("Editor", |p| p.source == theme::Source::Editor), + ("Dark", |p| p.source == theme::Source::Community && p.dark), + ("Light", |p| p.source == theme::Source::Community && !p.dark), + ]; + for (title, in_group) in groups { + ui.menu_button(title, |ui| { + for palette in theme::builtin().filter(|p| in_group(p)) { + self.theme_row(ui, &palette.id, &palette.label, Some(palette)); + } + }); + } + if !self.custom_palettes.is_empty() { + ui.menu_button("Imported", |ui| self.draw_imported_menu(ui)); + } + ui.separator(); + if ui.button("Surprise me").clicked() { + self.surprise_me(ui.ctx()); + ui.close(); + } + if ui.button("Customise...").clicked() { + self.customise_open = true; + ui.close(); + } + } + + /// The Imported submenu: one row per imported palette, then a Remove + /// submenu listing them again. + fn draw_imported_menu(&mut self, ui: &mut egui::Ui) { + // Cloned so the rows can borrow `self` mutably; the list is short. + let custom = self.custom_palettes.clone(); + for palette in &custom { + self.theme_row(ui, &palette.id, &palette.label, Some(palette)); + } + ui.separator(); + ui.menu_button("Remove", |ui| { + for palette in &custom { + if ui.button(palette.label.as_ref()).clicked() { + self.remove_custom_theme(ui.ctx(), &palette.id); + ui.close(); + } + } + }); + } + + /// One Themes menu row: a swatch for palettes, then the radio label. An + /// unknown stored id simply leaves no row checked. Clicking applies the + /// theme but leaves the menu open. + fn theme_row( + &mut self, + ui: &mut egui::Ui, + id: &str, + label: &str, + swatch: Option<&theme::Palette>, + ) { + let selected = self.settings.theme == id; + let clicked = match swatch { + Some(palette) => { + ui.horizontal(|ui| { + draw_swatch(ui, palette); + ui.radio(selected, label).clicked() + }) + .inner + } + None => ui.radio(selected, label).clicked(), + }; + // The Themes menu is set to stay open (see `draw_menu_bar`), so + // palettes can be cycled through in one go. + if clicked && !selected { + self.settings.theme = id.to_string(); + self.restyle(ui.ctx()); + self.save_settings(); + } + } + + /// Switch to a random bundled palette other than the current theme. + fn surprise_me(&mut self, ctx: &egui::Context) { + let others: Vec<&theme::Palette> = theme::builtin() + .filter(|p| p.id != self.settings.theme) + .collect(); + if others.is_empty() { + return; + } + let palette = others[random_index(others.len(), time_seed())]; + self.settings.theme = palette.id.to_string(); + self.restyle(ctx); + self.save_settings(); + } + + /// File > Import theme...: pick a colour theme JSON file, add it to the + /// imported palettes and switch to it. A failure opens the error window. + fn import_theme(&mut self, ctx: &egui::Context) { + let Some(path) = rfd::FileDialog::new() + .add_filter("Colour theme", &["json"]) + .pick_file() + else { + return; + }; + match theme::import::import(&path) { + Ok(palette) => self.add_custom_theme(ctx, &palette), + Err(e) => { + tracing::warn!("failed to import {}: {e:#}", path.display()); + self.import_error = Some(format!("{e:#}")); + } + } + } + + /// Store `palette` as an imported theme (replacing one with the same id) + /// and make it the active theme. + fn add_custom_theme(&mut self, ctx: &egui::Context, palette: &theme::Palette) { + let mut stored = theme::CustomTheme::from(palette); + stored.id = custom_theme_id(&stored.id); + // Round trip through the stored form, so this session shows exactly + // what the next start will load. + let palette = stored.to_palette(); + self.settings.custom_themes.retain(|t| t.id != stored.id); + self.custom_palettes.retain(|p| p.id != palette.id); + self.settings.theme = stored.id.clone(); + self.settings.custom_themes.push(stored); + self.custom_palettes.push(palette); + self.import_error = None; + self.restyle(ctx); + self.save_settings(); + } + + /// Forget the imported theme `id`, falling back to the default theme if + /// it was the active one. + fn remove_custom_theme(&mut self, ctx: &egui::Context, id: &str) { + self.settings.custom_themes.retain(|t| t.id != id); + self.custom_palettes.retain(|p| p.id != id); + if self.settings.theme == id { + self.settings.theme = theme::DEFAULT_ID.to_string(); + self.restyle(ctx); + } + self.save_settings(); + } + + fn draw_view_menu(&mut self, ui: &mut egui::Ui) { + let mut changed = false; + let view = &mut self.settings.view; + ui.menu_button("Columns", |ui| { + for (show, label) in [ + (&mut view.show_flows, "Flows"), + (&mut view.show_down, "Down"), + (&mut view.show_up, "Up"), + (&mut view.show_down_total, "Total down"), + (&mut view.show_up_total, "Total up"), + (&mut view.show_rule, "Rule"), + ] { + changed |= ui.checkbox(show, label).changed(); + } + }); + ui.menu_button("Plot", |ui| { + changed |= ui.checkbox(&mut view.plot_fill, "Filled area").changed(); + ui.menu_button("Line width", |ui| { + for (width, label) in LINE_WIDTH_CHOICES { + changed |= ui + .radio_value(&mut view.plot_line_width, width, label) + .changed(); + } + }); + ui.menu_button("Header plot history", |ui| { + for (secs, label) in HISTORY_CHOICES { + changed |= ui + .radio_value(&mut view.history_secs, secs, label) + .changed(); + } + }); + }); + ui.separator(); + let on_top_changed = ui + .checkbox(&mut view.always_on_top, "Always on top") + .changed(); + changed |= on_top_changed; + changed |= ui + .checkbox(&mut view.compact, "Compact (hide header plot)") + .changed(); + changed |= ui.checkbox(&mut view.show_filter, "Filter box").changed(); + if on_top_changed { + self.send_window_level(ui.ctx()); + } + if changed { + self.save_settings(); + } + } + + /// The Customise window: appearance options on top of the theme. + fn draw_customise_window(&mut self, ctx: &egui::Context) { + if !self.customise_open { + return; + } + let mut open = true; + let changed = egui::Window::new("Customise") + .open(&mut open) + .collapsible(false) + .resizable(false) + .show(ctx, |ui| { + appearance::customise_ui(ui, &mut self.settings.appearance) + }) + .and_then(|r| r.inner) + .unwrap_or(false); + self.customise_open = open; + if changed { + self.restyle(ctx); + self.save_settings(); + } + } + + /// The "Import failed" window, shown while `import_error` is set. + fn draw_import_error(&mut self, ctx: &egui::Context) { + let Some(message) = &self.import_error else { + return; + }; + let mut open = true; + let mut close = false; + egui::Window::new("Import failed") + .collapsible(false) + .resizable(false) + .open(&mut open) + .anchor(egui::Align2::CENTER_CENTER, [0.0, 0.0]) + .show(ctx, |ui| { + ui.label("The colour theme could not be imported."); + ui.label(egui::RichText::new(message).color(self.accents.block)); + ui.add_space(4.0); + if ui.button("Close").clicked() { + close = true; + } + }); + if close || !open { + self.import_error = None; } } @@ -580,11 +1116,14 @@ impl ThrottleApp { ); if let UpdateInstall::Running(_) = self.update_install { ui.spinner(); - ui.label("Downloading update…"); + ui.label("Downloading update\u{2026}"); return; } if let UpdateInstall::Failed(e) = &self.update_install { - ui.label(egui::RichText::new(format!("Update failed: {e}")).color(COLOR_BLOCK)); + ui.label( + egui::RichText::new(format!("Update failed: {e}")) + .color(self.accents.block), + ); } match &update.asset_url { Some(asset_url) => { @@ -658,10 +1197,11 @@ impl ThrottleApp { ui.hyperlink_to("GitHub", REPO_URL); ui.hyperlink_to("Releases", format!("{REPO_URL}/releases")); ui.hyperlink_to("Report issue", format!("{REPO_URL}/issues")); + ui.hyperlink_to("Buy me a coffee", SUPPORT_URL); }); ui.add_space(4.0); ui.label( - egui::RichText::new("Copyright © 2026 Francesco Gruosso") + egui::RichText::new("Copyright \u{a9} 2026 Francesco Gruosso") .weak() .small(), ); @@ -669,32 +1209,61 @@ impl ThrottleApp { self.about_open = open; } + /// Monospace `text` when the Customise window asks for monospace numbers. + fn numeric(&self, text: egui::RichText) -> egui::RichText { + if self.settings.appearance.numbers_monospace { + text.monospace() + } else { + text + } + } + + /// The header line: app name, total Down / Up rates and process count. + fn draw_totals_line(&self, ui: &mut egui::Ui, snap: &Snapshot) { + ui.horizontal(|ui| { + ui.heading("Throttle"); + ui.separator(); + ui.label( + self.numeric( + egui::RichText::new(format!("Down {}", humanize_rate(snap.total_down_rate))) + .color(self.accents.down) + .strong(), + ), + ); + ui.label( + self.numeric( + egui::RichText::new(format!("Up {}", humanize_rate(snap.total_up_rate))) + .color(self.accents.up) + .strong(), + ), + ); + ui.separator(); + ui.label(format!("{} processes", snap.processes.len())); + if let Some(text) = self.total_plot_hint.text() { + ui.separator(); + ui.weak(text); + } + }); + } + fn draw_top_panel(&mut self, ui: &mut egui::Ui, snap: &Snapshot) { + if self.settings.view.compact { + // Only the totals line. Its own id keeps the full panel's + // resized height for when compact mode is turned off again. + egui::Panel::top("top_panel_compact").show(ui, |ui| { + ui.add_space(4.0); + self.draw_totals_line(ui, snap); + ui.add_space(4.0); + }); + return; + } egui::Panel::top("top_panel") .resizable(true) - .default_size(120.0) + .default_size(self.settings.panels.plot_height.unwrap_or(120.0)) .min_size(70.0) .show(ui, |ui| { ui.add_space(4.0); - ui.horizontal(|ui| { - ui.heading("Throttle"); - ui.separator(); - ui.label( - egui::RichText::new(format!( - "Down {}", - humanize_rate(snap.total_down_rate) - )) - .color(COLOR_DOWN) - .strong(), - ); - ui.label( - egui::RichText::new(format!("Up {}", humanize_rate(snap.total_up_rate))) - .color(COLOR_UP) - .strong(), - ); - ui.separator(); - ui.label(format!("{} processes", snap.processes.len())); - }); + self.draw_totals_line(ui, snap); // Let the plot fill the panel's remaining height rather than // requesting an explicit one. An explicit height derived from @@ -702,24 +1271,30 @@ impl ThrottleApp { // with the drag target each frame, which egui persists as the new // panel size and turns into a resize feedback loop. Filling avoids // that. - Plot::new("total_plot") + let plot = Plot::new("total_plot") .show_x(false) - .allow_zoom(false) - .allow_drag(false) + .y_axis_formatter(rate_axis_label) + .y_grid_spacer(rate_grid) .allow_scroll(false) + .allow_zoom([true, false]) .allow_boxed_zoom(false) + .allow_drag([true, false]) .legend(Legend::default()) .include_y(0.0) + .include_y(1.0) .show(ui, |pui| { - pui.line( - Line::new("Down", PlotPoints::from_ys_f64(&self.total_down_hist)) - .color(COLOR_DOWN), - ); - pui.line( - Line::new("Up", PlotPoints::from_ys_f64(&self.total_up_hist)) - .color(COLOR_UP), - ); + let view = &self.settings.view; + pui.line(plot_line( + view, + "Down", + &self.total_down_hist, + self.accents.down, + )); + pui.line(plot_line(view, "Up", &self.total_up_hist, self.accents.up)); + plot_navigation(pui); + pui.auto_bounds() }); + self.total_plot_hint = PlotHint::from(&plot); }); } @@ -732,7 +1307,7 @@ impl ThrottleApp { egui::Panel::right("detail_panel") .resizable(true) - .default_size(300.0) + .default_size(self.settings.panels.detail_width.unwrap_or(300.0)) .min_size(220.0) .show(ui, |ui| { ui.add_space(4.0); @@ -748,8 +1323,7 @@ impl ThrottleApp { return; }; let key = stats.exe_path.clone(); - ui.heading(&stats.name); - ui.label(egui::RichText::new(&stats.exe_path).weak().small()); + self.draw_detail_header(ui, &stats); ui.separator(); egui::Grid::new("detail_grid") @@ -763,11 +1337,15 @@ impl ThrottleApp { ui.end_row(); ui.label("Download"); ui.label( - egui::RichText::new(humanize_rate(stats.down_rate)).color(COLOR_DOWN), + egui::RichText::new(humanize_rate(stats.down_rate)) + .color(self.accents.down), ); ui.end_row(); ui.label("Upload"); - ui.label(egui::RichText::new(humanize_rate(stats.up_rate)).color(COLOR_UP)); + ui.label( + egui::RichText::new(humanize_rate(stats.up_rate)) + .color(self.accents.up), + ); ui.end_row(); ui.label("Total down"); ui.label(humanize_bytes(stats.down_total)); @@ -781,39 +1359,104 @@ impl ThrottleApp { }); ui.separator(); - ui.label("History (per second)"); + ui.horizontal(|ui| { + ui.label("History (per second)"); + // Truncated: a side panel grows to fit its content, and + // the hint must not widen it whenever the plot is hovered. + if let Some(text) = self.detail_plot_hint.text() { + ui.add(egui::Label::new(egui::RichText::new(text).weak()).truncate()); + } + }); let down: Vec = stats.down_history.iter().map(|&v| v as f64).collect(); let up: Vec = stats.up_history.iter().map(|&v| v as f64).collect(); - Plot::new("detail_plot") + let plot = Plot::new("detail_plot") .height(160.0) .show_x(false) - .allow_zoom(false) - .allow_drag(false) + .y_axis_formatter(rate_axis_label) + .y_grid_spacer(rate_grid) .allow_scroll(false) + .allow_zoom([true, false]) .allow_boxed_zoom(false) + .allow_drag([true, false]) .legend(Legend::default()) .include_y(0.0) + .include_y(1.0) .show(ui, |pui| { - pui.line( - Line::new("Down", PlotPoints::from_ys_f64(&down)).color(COLOR_DOWN), - ); - pui.line(Line::new("Up", PlotPoints::from_ys_f64(&up)).color(COLOR_UP)); + let view = &self.settings.view; + pui.line(plot_line(view, "Down", &down, self.accents.down)); + pui.line(plot_line(view, "Up", &up, self.accents.up)); + plot_navigation(pui); + pui.auto_bounds() }); + self.detail_plot_hint = PlotHint::from(&plot); }); } + /// Process name and path, with a folder button on the right that opens + /// the executable's folder. The button is as tall as the two text lines. + fn draw_detail_header(&self, ui: &mut egui::Ui, stats: &ProcessStats) { + let folder = std::path::Path::new(&stats.exe_path) + .parent() + .filter(|p| !p.as_os_str().is_empty() && p.is_dir()); + ui.horizontal(|ui| { + let button_width = if folder.is_some() { + FOLDER_BUTTON_WIDTH + } else { + 0.0 + }; + let text_width = (ui.available_width() - button_width).max(0.0); + let text = ui + .allocate_ui_with_layout( + egui::vec2(text_width, 0.0), + egui::Layout::top_down(egui::Align::Min), + |ui| { + ui.set_width(text_width); + ui.heading(&stats.name); + ui.label(egui::RichText::new(&stats.exe_path).weak().small()); + }, + ) + .response + .rect; + if let Some(folder) = folder { + let side = text.height().clamp(24.0, FOLDER_BUTTON_WIDTH); + ui.with_layout(egui::Layout::right_to_left(egui::Align::Center), |ui| { + let response = + folder_button(ui, side).on_hover_text(format!("Open {}", folder.display())); + if response.clicked() { + open_path(folder); + } + }); + } + }); + } + fn draw_table(&mut self, ui: &mut egui::Ui, snap: &Snapshot) { // Owned, sorted list of (lowercase key, stats). The key is used for all // rule commands per the shared contract. + let total = snap.processes.len(); let mut rows: Vec<(String, ProcessStats)> = snap .processes .iter() + .filter(|(_, v)| matches_filter(v, &self.filter)) + .filter(|(_, v)| !self.settings.table.active_only || is_active(v)) .map(|(k, v)| (k.clone(), v.clone())) .collect(); - let sort_column = self.sort_column; - let sort_desc = self.sort_desc; + let columns = visible_columns(&self.settings.view); + // A hidden column cannot be clicked to change the order, so fall back + // to sorting by name. + if !columns + .iter() + .any(|c| c.sort() == Some(self.settings.table.sort)) + { + self.settings.table.sort = SortColumn::Name; + self.settings.table.descending = false; + self.save_settings(); + } + + let sort_column = self.settings.table.sort; + let sort_desc = self.settings.table.descending; rows.sort_by(|a, b| { let (a, b) = (&a.1, &b.1); let ord = match sort_column { @@ -827,75 +1470,227 @@ impl ThrottleApp { if sort_desc { ord.reverse() } else { ord } }); - const SORT_COLUMN_LABELS: [(SortColumn, &str); 6] = [ - (SortColumn::Name, "Process"), - (SortColumn::Flows, "Flows"), - (SortColumn::Down, "Down"), - (SortColumn::Up, "Up"), - (SortColumn::DownTotal, "Total down"), - (SortColumn::UpTotal, "Total up"), - ]; + let row_height = self.settings.appearance.density.row_height(); egui::CentralPanel::default().show(ui, |ui| { - egui_extras::TableBuilder::new(ui) + if self.settings.view.show_filter { + self.draw_filter_row(ui, rows.len(), total); + } + + // Saved widths are only usable as a full set: with any column + // left to auto size, the table's sizing pass resizes every column + // to its content and the saved widths would be lost anyway. + let saved = &self.settings.table.widths; + let restore = columns.iter().all(|c| saved.contains_key(c.id())); + let last = columns.len() - 1; + let mut table = egui_extras::TableBuilder::new(ui) .resizable(true) .auto_shrink(false) - .striped(true) + .striped(self.settings.appearance.stripes) .sense(egui::Sense::CLICK | egui::Sense::HOVER) - .column(egui_extras::Column::remainder().at_least(200.)) // Name - .columns(egui_extras::Column::auto(), 5) // Numeric - .column(egui_extras::Column::remainder()) // Rule - .cell_layout(egui::Layout::left_to_right(egui::Align::Center)) - .header(20., |mut row| { - for (sort_column, label) in SORT_COLUMN_LABELS { - row.col(|ui| self.sort_header(ui, label, sort_column)); + .cell_layout(egui::Layout::left_to_right(egui::Align::Center)); + for (i, column) in columns.iter().enumerate() { + table = table.column(match column { + // The last column fills the table, so it stays remainder. + _ if restore && i == last => egui_extras::Column::remainder(), + TableColumn::Name if restore => { + egui_extras::Column::initial(saved[column.id()]).at_least(200.) + } + _ if restore => egui_extras::Column::initial(saved[column.id()]), + TableColumn::Name => egui_extras::Column::remainder().at_least(200.), + TableColumn::Rule => egui_extras::Column::remainder(), + _ => egui_extras::Column::auto(), // Numeric + }); + } + // Column widths as laid out this frame, from the header cells. The + // table sizes auto columns in a sizing pass of its own child ui, + // where the widths are provisional, so the cells report that too. + let mut widths: Vec = Vec::with_capacity(columns.len()); + let mut sizing_pass = false; + table + .header(row_height, |mut row| { + for &column in &columns { + match column.sort() { + Some(sort_column) => { + row.col(|ui| { + sizing_pass |= ui.is_sizing_pass(); + widths.push(ui.max_rect().width()); + self.sort_header(ui, column.label(), sort_column); + }); + } + None => { + row.col(|ui| { + sizing_pass |= ui.is_sizing_pass(); + widths.push(ui.max_rect().width()); + ui.label(egui::RichText::new(column.label()).strong()); + }); + } + } } - row.col(|ui| { - ui.label(egui::RichText::new("Rule").strong()); - }); }) .body(|body| { - body.rows(20., rows.len(), |row| { + body.rows(row_height, rows.len(), |row| { let (key, stats) = rows.get(row.index()).expect("row index in bounds"); - let resp = self.draw_table_row(row, key, stats, snap); + let resp = self.draw_table_row(row, key, stats, snap, &columns); if resp.clicked() || resp.secondary_clicked() { self.selected = Some(key.clone()); } self.row_context_menu(&resp, key, &stats.name); }); }); + // Not during a sizing pass nor while a drag may be under way. + if !sizing_pass && !ui.input(|i| i.pointer.any_down()) { + self.remember_widths(&columns, &widths); + } }); } + /// The filter box above the table, with the match count and a clear + /// button once something is typed. Ctrl+F focuses it, Escape clears it. + fn draw_filter_row(&mut self, ui: &mut egui::Ui, shown: usize, total: usize) { + ui.add_space(2.0); + ui.horizontal(|ui| { + // The text edit drops focus and swallows Escape itself, so the + // key is read before it runs. + let id = ui.make_persistent_id("process_filter"); + let escape = + ui.memory(|m| m.has_focus(id)) && ui.input(|i| i.key_pressed(egui::Key::Escape)); + if escape { + self.filter.clear(); + } + let response = ui.add( + egui::TextEdit::singleline(&mut self.filter) + .id(id) + .hint_text("Filter processes (Ctrl+F)") + .margin(egui::Margin::symmetric(8, 5)) + .desired_width(220.0), + ); + if self.focus_filter { + self.focus_filter = false; + response.request_focus(); + } + if !self.filter.is_empty() && ui.small_button("Clear").clicked() { + self.filter.clear(); + } + // Framed in every state: an unframed idle chip grows by its + // stroke on hover and shifts the row by a pixel. + let active = self.settings.table.active_only; + if ui + .add(egui::Button::selectable(active, "Active").frame_when_inactive(true)) + .on_hover_text("Only processes moving data right now") + .clicked() + { + self.settings.table.active_only = !active; + self.save_settings(); + } + if shown != total { + ui.weak(format!("{shown} of {total}")); + } + }); + ui.add_space(2.0); + } + + /// Keep the sizes of the two resizable panels in the settings, once a + /// drag has ended and only when one of them moved by more than a hair. + fn remember_panels(&mut self, ctx: &egui::Context) { + if ctx.input(|i| i.pointer.any_down()) { + return; + } + let size = |id: &str| { + egui::containers::panel::PanelState::load(ctx, egui::Id::new(id)).map(|s| s.size()) + }; + let plot_height = size("top_panel").map(|s| s.y); + let detail_width = size("detail_panel").map(|s| s.x); + let mut changed = false; + for (saved, seen) in [ + (&mut self.settings.panels.plot_height, plot_height), + (&mut self.settings.panels.detail_width, detail_width), + ] { + let Some(seen) = seen.filter(|v| v.is_finite() && *v > 0.0) else { + continue; + }; + let seen = (seen * 2.0).round() / 2.0; + if saved.is_none_or(|v| (v - seen).abs() >= 0.5) { + *saved = Some(seen); + changed = true; + } + } + if changed { + self.save_settings(); + } + } + + /// Keep the table's column widths in the settings. Only widths that + /// moved by more than a hair are written, so a drag ends in one save. + /// The last column takes whatever is left, so it follows every window + /// resize; it is recorded but never a reason to write the file. + fn remember_widths(&mut self, columns: &[TableColumn], widths: &[f32]) { + if widths.len() != columns.len() { + return; + } + let saved = &mut self.settings.table.widths; + let mut changed = false; + let last = columns.len() - 1; + for (i, (column, &width)) in columns.iter().zip(widths).enumerate() { + if !width.is_finite() || width <= 0.0 { + continue; + } + let width = (width * 2.0).round() / 2.0; + if saved + .get(column.id()) + .is_none_or(|w| (w - width).abs() >= 0.5) + { + let first_time = saved.insert(column.id().to_string(), width).is_none(); + changed |= i != last || first_time; + } + } + if changed { + self.save_settings(); + } + } + fn draw_table_row( &mut self, mut row: egui_extras::TableRow, key: &String, stats: &ProcessStats, snap: &Snapshot, + columns: &[TableColumn], ) -> egui::Response { let selected = self.selected.as_deref() == Some(key.as_str()); - let rule = snap.rules.get(key); - let summary = rule_summary(rule); - let rule_text = if rule.map(|r| r.blocked).unwrap_or(false) { - egui::RichText::new(summary).color(COLOR_BLOCK).strong() - } else { - egui::RichText::new(summary) - }; - - let cells: [egui::RichText; 7] = [ - egui::RichText::new(&stats.name), - egui::RichText::new(stats.flow_count.to_string()), - egui::RichText::new(humanize_rate(stats.down_rate)).color(COLOR_DOWN), - egui::RichText::new(humanize_rate(stats.up_rate)).color(COLOR_UP), - egui::RichText::new(humanize_bytes(stats.down_total)), - egui::RichText::new(humanize_bytes(stats.up_total)), - rule_text, - ]; row.set_selected(selected); - for content in cells { + for &column in columns { + let content = match column { + TableColumn::Name => egui::RichText::new(&stats.name), + TableColumn::Flows => egui::RichText::new(stats.flow_count.to_string()), + TableColumn::Down => self.numeric( + egui::RichText::new(humanize_rate(stats.down_rate)).color(self.accents.down), + ), + TableColumn::Up => self.numeric( + egui::RichText::new(humanize_rate(stats.up_rate)).color(self.accents.up), + ), + TableColumn::DownTotal => { + self.numeric(egui::RichText::new(humanize_bytes(stats.down_total))) + } + TableColumn::UpTotal => { + self.numeric(egui::RichText::new(humanize_bytes(stats.up_total))) + } + TableColumn::Rule => { + let rule = snap.rules.get(key); + let summary = rule_summary(rule); + if rule.is_some_and(|r| r.disabled) { + egui::RichText::new(summary).weak() + } else if rule.is_some_and(|r| r.blocked) { + egui::RichText::new(summary) + .color(self.accents.block) + .strong() + } else { + egui::RichText::new(summary) + } + } + }; row.col(|ui| { egui::Label::new(content) .wrap_mode(egui::TextWrapMode::Truncate) @@ -930,11 +1725,11 @@ impl ThrottleApp { ); ui.separator(); } - if ui.button("Set download limit…").clicked() { + if ui.button("Set download limit\u{2026}").clicked() { self.open_limit_modal(key, name, Direction::Down); ui.close(); } - if ui.button("Set upload limit…").clicked() { + if ui.button("Set upload limit\u{2026}").clicked() { self.open_limit_modal(key, name, Direction::Up); ui.close(); } @@ -955,6 +1750,17 @@ impl ThrottleApp { ui.close(); } ui.separator(); + if let Some(rule) = self.last_snapshot.rules.get(key) { + let (label, disable) = if rule.disabled { + ("Enable rule", false) + } else { + ("Disable rule", true) + }; + if ui.button(label).clicked() { + self.set_rule_disabled(key, disable); + ui.close(); + } + } if ui.button("Remove rule").clicked() { let _ = self.cmd_tx.send(Command::RemoveRule(key.to_string())); ui.close(); @@ -989,11 +1795,23 @@ impl ThrottleApp { .small(), ); ui.horizontal(|ui| { + // As tall as the unit box beside it, which is a button: + // the interact height, or its text plus padding if taller. + let spacing = ui.spacing(); + let button_height = spacing.interact_size.y.max( + ui.text_style_height(&egui::TextStyle::Button) + + 2.0 * spacing.button_padding.y, + ); let resp = ui.add( egui::TextEdit::singleline(&mut modal.value) .desired_width(80.0) + .min_size(egui::vec2(0.0, button_height)) + .vertical_align(egui::Align::Center) .hint_text("e.g. 2"), ); + if resp.changed() { + modal.value = numeric_input(&modal.value); + } if resp.lost_focus() && ui.input(|i| i.key_pressed(egui::Key::Enter)) { apply = true; } @@ -1006,7 +1824,7 @@ impl ThrottleApp { }); }); if let Some(err) = &modal.error { - ui.colored_label(COLOR_BLOCK, err); + ui.colored_label(self.accents.block, err); } ui.add_space(4.0); ui.horizontal(|ui| { @@ -1045,6 +1863,8 @@ impl ThrottleApp { Direction::Down => rule.down_limit = limit, Direction::Up => rule.up_limit = limit, } + // A new limit is meant to apply, so a disabled rule comes back on. + rule.disabled = false; self.send_rule(rule); return; // done, modal closes } @@ -1060,18 +1880,27 @@ impl eframe::App for ThrottleApp { fn logic(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { // Drain pending snapshots even while hidden: the channel is unbounded. let incoming: Vec = self.snapshot_rx.try_iter().collect(); + let keep = self.settings.view.history_secs.max(1); + let mut fresh = false; for snap in incoming { self.total_down_hist.push(snap.total_down_rate as f64); self.total_up_hist.push(snap.total_up_rate as f64); - if self.total_down_hist.len() > TOTAL_HISTORY_LEN { - let excess = self.total_down_hist.len() - TOTAL_HISTORY_LEN; - self.total_down_hist.drain(0..excess); - } - if self.total_up_hist.len() > TOTAL_HISTORY_LEN { - let excess = self.total_up_hist.len() - TOTAL_HISTORY_LEN; - self.total_up_hist.drain(0..excess); - } + trim_front(&mut self.total_down_hist, keep); + trim_front(&mut self.total_up_hist, keep); self.last_snapshot = snap; + fresh = true; + } + if fresh { + self.refresh_tray(ctx); + } + + // The window exists by the first frame; only a non default level is + // sent, so the stock window is left alone. + if self.first_frame { + self.first_frame = false; + if self.settings.view.always_on_top { + self.send_window_level(ctx); + } } // At logon the startup task can run before Explorer has created the @@ -1096,6 +1925,12 @@ impl eframe::App for ThrottleApp { self.show_window(ctx); } TrayAction::Exit => self.exit(ctx), + TrayAction::ToggleRule(key) => { + let disabled = self.last_snapshot.rules.get(&key).map(|r| r.disabled); + if let Some(disabled) = disabled { + self.set_rule_disabled(&key, !disabled); + } + } } } @@ -1122,9 +1957,23 @@ impl eframe::App for ThrottleApp { ctx.request_repaint_after(Duration::from_millis(500)); } + /// Only the window geometry is persisted by eframe; the rest of the + /// layout is in settings.json, so a stale egui state cannot shadow it. + fn persist_egui_memory(&self) -> bool { + false + } + fn ui(&mut self, ui: &mut egui::Ui, _frame: &mut eframe::Frame) { let ctx = ui.ctx().clone(); + // Ctrl plus / minus zoomed the UI: keep the new factor as the scale. + // A scale change from the Customise window lands here already equal. + let zoom = ctx.zoom_factor(); + if (zoom - self.settings.appearance.scale).abs() > 0.001 { + self.settings.appearance.scale = zoom; + self.save_settings(); + } + if let Ok(enabled) = self.autostart_rx.try_recv() { self.autostart = Some(enabled); } @@ -1142,6 +1991,12 @@ impl eframe::App for ThrottleApp { self.update = Some(update); } + if self.settings.view.show_filter + && ctx.input_mut(|i| i.consume_key(egui::Modifiers::COMMAND, egui::Key::F)) + { + self.focus_filter = true; + } + self.draw_menu_bar(ui); self.draw_update_banner(ui); self.draw_top_panel(ui, &snap); @@ -1149,6 +2004,9 @@ impl eframe::App for ThrottleApp { self.draw_table(ui, &snap); self.draw_limit_modal(&ctx); self.draw_about(&ctx); + self.draw_customise_window(&ctx); + self.draw_import_error(&ctx); + self.remember_panels(&ctx); } } @@ -1167,13 +2025,7 @@ impl Drop for ThrottleApp { /// taskbar does not exist yet, tray-icon still succeeds and adds the icon when /// Explorer announces the taskbar (see `taskbar_ready`). fn create_tray(ctx: &egui::Context, tx: Sender) -> Option { - let show = MenuItem::new("Show Throttle", true, None); - let exit = MenuItem::new("Exit", true, None); - let menu = Menu::new(); - if let Err(e) = menu.append_items(&[&show, &PredefinedMenuItem::separator(), &exit]) { - tracing::warn!("tray menu unavailable: {e}"); - return None; - } + let menu = tray_menu(&[]); // Hovering fires Move/Enter/Leave constantly: only clicks wake the app. let (click_tx, click_ctx) = (tx.clone(), ctx.clone()); @@ -1192,12 +2044,17 @@ fn create_tray(ctx: &egui::Context, tx: Sender) -> Option click_ctx.request_repaint(); } })); - let (show_id, exit_id, ctx) = (show.id().clone(), exit.id().clone(), ctx.clone()); + // Entries are known by their string ids, so the menu can be rebuilt + // without touching this handler. + let ctx = ctx.clone(); MenuEvent::set_event_handler(Some(move |event: MenuEvent| { - let action = if event.id == show_id { + let id = event.id.0.as_str(); + let action = if id == TRAY_SHOW_ID { TrayAction::Show - } else if event.id == exit_id { + } else if id == TRAY_EXIT_ID { TrayAction::Exit + } else if let Some(key) = id.strip_prefix(TRAY_RULE_PREFIX) { + TrayAction::ToggleRule(key.to_string()) } else { return; }; @@ -1225,6 +2082,83 @@ fn create_tray(ctx: &egui::Context, tx: Sender) -> Option } } +/// The tray menu: Show, one check entry per rule (checked while the rule is +/// active; clicking switches it off or on), Exit. With no rules the menu is +/// the two entries it always had. +fn tray_menu(rules: &[TrayRule]) -> Menu { + let menu = Menu::new(); + let show = MenuItem::with_id(TRAY_SHOW_ID, "Show Throttle", true, None); + let exit = MenuItem::with_id(TRAY_EXIT_ID, "Exit", true, None); + let mut result = menu.append_items(&[&show, &PredefinedMenuItem::separator()]); + if !rules.is_empty() { + for rule in rules.iter().take(TRAY_RULE_LIMIT) { + let id = format!("{TRAY_RULE_PREFIX}{}", rule.key); + let item = CheckMenuItem::with_id(id, &rule.label, true, rule.active, None); + result = result.and(menu.append(&item)); + } + if rules.len() > TRAY_RULE_LIMIT { + let more = rules.len() - TRAY_RULE_LIMIT; + let note = MenuItem::new(format!("{more} more in the window"), false, None); + result = result.and(menu.append(¬e)); + } + result = result.and(menu.append(&PredefinedMenuItem::separator())); + } + result = result.and(menu.append(&exit)); + if let Err(e) = result { + tracing::warn!("tray menu incomplete: {e}"); + } + menu +} + +/// The rule toggles for the tray menu, by process name. A rule whose +/// process is not running is named after its executable; one that neither +/// limits nor blocks has nothing to switch and is left out. +fn tray_rules(snap: &Snapshot) -> Vec { + let mut rules: Vec = snap + .rules + .values() + .filter(|r| r.blocked || r.down_limit.is_some() || r.up_limit.is_some()) + .map(|rule| { + let name = snap + .processes + .get(&rule.exe_path) + .map(|p| p.name.clone()) + .unwrap_or_else(|| exe_name(&rule.exe_path)); + let mut active = rule.clone(); + active.disabled = false; + TrayRule { + key: rule.exe_path.clone(), + label: format!("{name}: {}", rule_summary(Some(&active))), + active: !rule.disabled, + } + }) + .collect(); + rules.sort_by_key(|r| r.label.to_lowercase()); + rules +} + +/// The file name of an exe path, or the path itself if it has none. +fn exe_name(path: &str) -> String { + std::path::Path::new(path) + .file_name() + .map(|n| n.to_string_lossy().into_owned()) + .filter(|n| !n.is_empty()) + .unwrap_or_else(|| path.to_string()) +} + +/// Tray icon pixels for `accents`. The stock accents keep the stock icon, +/// whose arrow colours predate the theme accents, so the default look is +/// unchanged. +fn tray_icon_rgba(accents: theme::Accents) -> Vec { + let stock = theme::Accents::DEFAULT; + if (accents.down, accents.up) == (stock.down, stock.up) { + icon::rgba() + } else { + let rgb = |c: egui::Color32| [c.r(), c.g(), c.b()]; + icon::rgba_with(rgb(accents.down), rgb(accents.up)) + } +} + /// Whether Explorer's taskbar (and so the notification area) exists. fn taskbar_ready() -> bool { use windows::Win32::UI::WindowsAndMessaging::FindWindowW; @@ -1252,6 +2186,239 @@ fn spawn_autostart_check() -> Receiver { rx } +// --------------------------------------------------------------------------- +// Theme and plot helpers +// --------------------------------------------------------------------------- + +/// Paint a palette preview before its menu label: the background with a +/// border and one dot per accent (down, up, block). +fn draw_swatch(ui: &mut egui::Ui, palette: &theme::Palette) { + let (rect, _) = ui.allocate_exact_size(egui::vec2(14.0, 10.0), egui::Sense::hover()); + let painter = ui.painter(); + painter.rect_filled(rect, 0.0, palette.bg); + painter.rect_stroke( + rect, + 0.0, + egui::Stroke::new(1.0, palette.border), + egui::StrokeKind::Inside, + ); + let accents = [ + palette.accents.down, + palette.accents.up, + palette.accents.block, + ]; + for (i, colour) in accents.into_iter().enumerate() { + let centre = egui::pos2(rect.left() + 3.5 * (i + 1) as f32, rect.center().y); + painter.circle_filled(centre, 1.5, colour); + } +} + +/// A plot line in the style the View menu asks for. Samples are one second +/// apart, plotted against their index from zero. +fn plot_line(view: &View, name: &str, ys: &[f64], colour: egui::Color32) -> Line<'static> { + let mut line = Line::new(name, PlotPoints::from_ys_f64(ys)).color(colour); + // The default width keeps egui_plot's own stroke (1.5), so the default + // plot looks as before; only a thicker choice sets the width. + if view.plot_line_width > View::default().plot_line_width { + line = line.width(view.plot_line_width); + } + if view.plot_fill { + line = line.fill(0.0).fill_alpha(PLOT_FILL_ALPHA); + } + line +} + +/// Compact rate for a plot axis mark: the unit is picked per mark and +/// trailing zeros are dropped, so the axis reads "1.5 MB/s" not "1572864". +fn axis_rate(bps: f64) -> String { + // Marks below zero come from the plot's margin and get no label, so an + // idle process does not show a column of zeros. + if bps < 0.0 { + return String::new(); + } + if bps == 0.0 { + return "0".to_string(); + } + let (value, unit) = if bps >= GB { + (bps / GB, "GB/s") + } else if bps >= MB { + (bps / MB, "MB/s") + } else if bps >= KB { + (bps / KB, "KB/s") + } else { + (bps, "B/s") + }; + let text = format!("{value:.1}"); + let text = text.trim_end_matches('0').trim_end_matches('.'); + format!("{text} {unit}") +} + +/// Grid steps for a rate axis: 1, 2 and 5 of a binary unit (bytes, KB, MB, +/// GB, TB) and their tens and hundreds, so the axis reads "512 KB/s, 1 MB/s, +/// 2 MB/s" rather than the powers of ten egui_plot would pick ("976.6 KB/s"), +/// and a labelled step always fits the plot height: with powers of ten a +/// short plot whose range passes 3 MB/s lost every label but zero. Halves of +/// the step are minor lines, labelled too when there is room. +fn rate_grid(input: egui_plot::GridInput) -> Vec { + let (min, max) = input.bounds; + // egui_plot labels a step once it spans about 20 points and its base + // step is 8 points, so three base steps leave room for a label. + let wanted = input.base_step_size * 3.0; + if !(wanted.is_finite() && wanted > 0.0 && max > min) { + return Vec::new(); + } + let major = nice_rate_step(wanted); + let minor = major / 2.0; + let first = (min / minor).floor() as i64; + let last = (max / minor).ceil() as i64; + if last - first > 10_000 { + return Vec::new(); + } + // A label is centred on its mark, so one within half a text height of + // the top edge would spill out of the plot over whatever sits above it. + // The base step spans 8 points, which gives the distance in points. + let points_from_top = |value: f64| (max - value) / input.base_step_size * 8.0; + (first..=last) + .map(|i| egui_plot::GridMark { + value: i as f64 * minor, + step_size: if i % 2 == 0 { major } else { minor }, + }) + .filter(|mark| points_from_top(mark.value) >= 8.0) + .collect() +} + +/// The smallest of 1, 2, 5, 10, 20, 50, 100, 200 or 500 bytes, KB, MB, GB +/// or TB per second that is at least `wanted` bytes per second. +fn nice_rate_step(wanted: f64) -> f64 { + for unit in [1.0, KB, MB, GB, TB] { + for scale in [1.0, 10.0, 100.0] { + for m in [1.0, 2.0, 5.0] { + let step = m * scale * unit; + if step >= wanted { + return step; + } + } + } + } + wanted +} + +/// Y axis formatter for the rate plots. +fn rate_axis_label(mark: egui_plot::GridMark, _range: &std::ops::RangeInclusive) -> String { + axis_rate(mark.value) +} + +/// Extra plot navigation on top of egui_plot's own (left drag pans the time +/// axis, double click resets): a plain mouse wheel zooms the time axis +/// around the pointer, like Ctrl + wheel does by default, and a middle +/// button drag pans it too. The wheel is swallowed so nothing else scrolls. +/// The rate axis keeps fitting the data, so zero stays at the bottom. The +/// plot's own scroll-to-pan is off (`allow_scroll(false)`). +fn plot_navigation(pui: &mut egui_plot::PlotUi<'_>) { + let response = pui.response().clone(); + if response.dragged_by(egui::PointerButton::Middle) { + // Screen pixels to plot units along x; dragging right moves the + // view left, like the built in left button pan. + let per_pixel = pui.transform().dvalue_dpos()[0]; + let dx = -f64::from(response.drag_delta().x) * per_pixel; + pui.translate_bounds(egui::vec2(dx as f32, 0.0)); + pui.set_auto_bounds([false, true]); + } + + if !response.contains_pointer() { + return; + } + let ctx = pui.ctx().clone(); + let scroll = ctx.input(|i| i.smooth_scroll_delta.y); + if scroll == 0.0 { + return; + } + // Same curve as egui's own wheel zoom: wheel up zooms in. + let factor = (scroll / 200.0).exp(); + pui.zoom_bounds_around_hovered(egui::vec2(factor, 1.0)); + // A zoom switches auto bounds off on both axes; put the rate axis back. + pui.set_auto_bounds([false, true]); + ctx.input_mut(|i| { + i.smooth_scroll_delta.y = 0.0; + }); +} + +/// What a plot looked like last frame, to show a usage hint next to it. +#[derive(Debug, Clone, Copy, Default)] +struct PlotHint { + /// The pointer was over the plot. + hovered: bool, + /// The view is zoomed or panned (auto bounds are off on some axis). + moved: bool, +} + +impl PlotHint { + /// The hint to show: how to use the plot while hovered, and the way back + /// for as long as the view is zoomed or panned. + fn text(self) -> Option<&'static str> { + if self.moved { + Some("Double click the plot to reset the view") + } else if self.hovered { + Some("Scroll to zoom the time axis, drag to pan, double click to reset") + } else { + None + } + } +} + +impl From<&egui_plot::PlotResponse> for PlotHint { + /// `inner` is the plot's auto bounds flags. + fn from(plot: &egui_plot::PlotResponse) -> Self { + PlotHint { + hovered: plot.response.hovered(), + moved: !(plot.inner.x && plot.inner.y), + } + } +} + +/// Drop the oldest samples so at most `keep` remain. +fn trim_front(hist: &mut Vec, keep: usize) { + if hist.len() > keep { + let excess = hist.len() - keep; + hist.drain(0..excess); + } +} + +/// The id to store an imported palette under: its own, unless it is empty +/// or would be shadowed by a bundled theme, which `theme::find` prefers. +fn custom_theme_id(id: &str) -> String { + let id = id.trim(); + if id.is_empty() { + return "imported".to_string(); + } + let taken = + theme::BUILTIN.iter().any(|(b, _)| *b == id) || theme::builtin().any(|p| p.id == id); + if taken { + format!("{id}-imported") + } else { + id.to_string() + } +} + +/// A seed for "Surprise me" from the clock; no need for a random crate. +fn time_seed() -> u64 { + SystemTime::now() + .duration_since(UNIX_EPOCH) + .map(|d| d.as_secs() ^ u64::from(d.subsec_nanos())) + .unwrap_or(0) +} + +/// Map `seed` to an index below `len` (which must be non zero). The seed is +/// mixed first: Windows clocks tick in 100 ns steps, so the raw nanoseconds +/// share factors with many list lengths. +fn random_index(len: usize, seed: u64) -> usize { + let mut x = seed; + x ^= x >> 33; + x = x.wrapping_mul(0xff51_afd7_ed55_8ccd); + x ^= x >> 33; + (x % len as u64) as usize +} + // --------------------------------------------------------------------------- // Shell helpers // --------------------------------------------------------------------------- @@ -1263,6 +2430,36 @@ fn open_url(ctx: &egui::Context, url: &str) { /// Open a file with its default application, or a folder in Explorer. /// Best-effort: failures are logged, never surfaced as errors. +/// A square folder icon button of `side` points. It uses the theme's text +/// colours, which are chosen to read against the panel in every palette: +/// the weak text colour at rest, the full text colour under the pointer, +/// over a faint translucent background. +fn folder_button(ui: &mut egui::Ui, side: f32) -> egui::Response { + let (rect, response) = ui.allocate_exact_size(egui::vec2(side, side), egui::Sense::click()); + let visuals = ui.visuals(); + let colour = if response.hovered() { + visuals.text_color() + } else { + visuals.weak_text_color() + }; + // The front flap is a step towards the panel colour, for a little depth. + let flap_colour = colour.lerp_to_gamma(visuals.panel_fill, 0.3); + let painter = ui.painter(); + if response.hovered() { + let bg = visuals.text_color().gamma_multiply(0.1); + painter.rect_filled(rect, egui::CornerRadius::same(4), bg); + } + // A tab on the top left, the body under it and the front flap. + let r = rect.shrink(side * 0.22); + let tab = egui::Rect::from_min_size(r.min, egui::vec2(r.width() * 0.42, r.height() * 0.3)); + let body = egui::Rect::from_min_max(egui::pos2(r.min.x, r.min.y + r.height() * 0.16), r.max); + let flap = egui::Rect::from_min_max(egui::pos2(r.min.x, r.min.y + r.height() * 0.45), r.max); + painter.rect_filled(tab, egui::CornerRadius::same(2), colour); + painter.rect_filled(body, egui::CornerRadius::same(2), colour); + painter.rect_filled(flap, egui::CornerRadius::same(2), flap_colour); + response.on_hover_cursor(egui::CursorIcon::PointingHand) +} + fn open_path(path: &std::path::Path) { if let Err(e) = std::process::Command::new("explorer").arg(path).spawn() { tracing::warn!("failed to open {}: {e}", path.display()); @@ -1305,7 +2502,7 @@ impl eframe::App for ErrorApp { ui.label( egui::RichText::new(&self.message) .monospace() - .color(COLOR_BLOCK), + .color(theme::Accents::DEFAULT.block), ); }); ui.add_space(12.0); @@ -1316,3 +2513,260 @@ impl eframe::App for ErrorApp { }); } } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn default_history_matches_view_default() { + assert_eq!(View::default().history_secs, TOTAL_HISTORY_LEN); + assert!(HISTORY_CHOICES.iter().any(|(s, _)| *s == TOTAL_HISTORY_LEN)); + let width = View::default().plot_line_width; + assert!(LINE_WIDTH_CHOICES.iter().any(|(w, _)| *w == width)); + } + + #[test] + fn default_view_shows_every_column() { + assert_eq!(visible_columns(&View::default()), TableColumn::ALL.to_vec()); + } + + #[test] + fn hidden_columns_keep_the_name() { + let view = View { + show_flows: false, + show_down: false, + show_up: false, + show_down_total: false, + show_up_total: false, + show_rule: false, + ..View::default() + }; + assert_eq!(visible_columns(&view), vec![TableColumn::Name]); + let view = View { + show_up: false, + ..View::default() + }; + let columns = visible_columns(&view); + assert!(!columns.contains(&TableColumn::Up)); + assert_eq!(columns.len(), 6); + } + + #[test] + fn rate_grid_uses_binary_steps_that_fit_the_plot() { + // A 62 point plot showing up to 2.1 MB/s: 8 points are 271 KB, so + // the labelled step is 1 MB and the halves are minor lines. + let marks = rate_grid(egui_plot::GridInput { + bounds: (0.0, 2.1 * MB), + base_step_size: 2.1 * MB / 62.0 * 8.0, + }); + let major: Vec = marks + .iter() + .filter(|m| m.step_size == MB) + .map(|m| m.value) + .collect(); + // 2 MB/s is 3 points under the top edge, so it is dropped. + assert_eq!(major, vec![0.0, MB]); + assert_eq!(axis_rate(major[1]), "1 MB/s"); + let minor: Vec = marks + .iter() + .filter(|m| m.step_size == MB / 2.0) + .map(|m| axis_rate(m.value)) + .collect(); + assert_eq!(minor, vec!["512 KB/s", "1.5 MB/s"]); + + // Steps climb through 1, 2, 5 and their tens within a unit. + assert_eq!(nice_rate_step(3.0 * KB), 5.0 * KB); + assert_eq!(nice_rate_step(60.0 * KB), 100.0 * KB); + assert_eq!(nice_rate_step(600.0 * KB), MB); + assert_eq!(nice_rate_step(1.0), 1.0); + assert!( + rate_grid(egui_plot::GridInput { + bounds: (0.0, 0.0), + base_step_size: 0.0, + }) + .is_empty() + ); + + // A mark right at the top edge is dropped so its label cannot spill + // out of the plot: 2 MB/s sits 2 points under the top here. + let marks = rate_grid(egui_plot::GridInput { + bounds: (0.0, 2.05 * MB), + base_step_size: 2.05 * MB / 62.0 * 8.0, + }); + let top = marks.iter().map(|m| m.value).fold(0.0, f64::max); + assert_eq!(top, 1.5 * MB); + } + + #[test] + fn negative_axis_marks_get_no_label() { + assert_eq!(axis_rate(-512.0), ""); + assert_eq!(axis_rate(0.0), "0"); + } + + #[test] + fn axis_rates_pick_a_unit_and_trim_zeros() { + assert_eq!(axis_rate(0.0), "0"); + assert_eq!(axis_rate(512.0), "512 B/s"); + assert_eq!(axis_rate(1536.0), "1.5 KB/s"); + assert_eq!(axis_rate(2.0 * MB), "2 MB/s"); + assert_eq!(axis_rate(1.75 * GB), "1.8 GB/s"); + } + + #[test] + fn limit_field_keeps_only_a_number() { + assert_eq!(numeric_input("dsadsa"), ""); + assert_eq!(numeric_input("2"), "2"); + assert_eq!(numeric_input("0.5"), "0.5"); + assert_eq!(numeric_input("1,5"), "1,5"); + assert_eq!(numeric_input("1.2.3"), "1.23"); + assert_eq!(numeric_input("12 MB/s"), "12"); + assert_eq!(numeric_input("-3e5"), "35"); + } + + #[test] + fn rule_summary_marks_disabled_rules() { + let rule = Rule { + exe_path: "c:\\x\\a.exe".to_string(), + down_limit: Some(2 * 1024 * 1024), + up_limit: None, + blocked: false, + disabled: true, + }; + assert_eq!(rule_summary(Some(&rule)), "Off: Dn 2.00 MB/s"); + let active = Rule { + disabled: false, + ..rule.clone() + }; + assert_eq!(rule_summary(Some(&active)), "Dn 2.00 MB/s"); + let blocked = Rule { + blocked: true, + ..rule + }; + assert_eq!(rule_summary(Some(&blocked)), "Off: BLOCKED"); + assert_eq!(rule_summary(None), "-"); + } + + #[test] + fn active_means_moving_data_in_either_direction() { + let idle = ProcessStats::default(); + assert!(!is_active(&idle)); + assert!(is_active(&ProcessStats { + up_rate: 1, + ..ProcessStats::default() + })); + assert!(is_active(&ProcessStats { + down_rate: 1, + ..ProcessStats::default() + })); + } + + #[test] + fn filter_matches_name_or_path_ignoring_case() { + let stats = ProcessStats { + name: "Chrome.exe".to_string(), + exe_path: "c:\\program files\\google\\chrome.exe".to_string(), + ..ProcessStats::default() + }; + assert!(matches_filter(&stats, "")); + assert!(matches_filter(&stats, " ")); + assert!(matches_filter(&stats, "CHROME")); + assert!(matches_filter(&stats, "google")); + assert!(!matches_filter(&stats, "firefox")); + } + + #[test] + fn column_ids_are_unique() { + let mut ids: Vec<&str> = TableColumn::ALL.iter().map(|c| c.id()).collect(); + ids.sort_unstable(); + ids.dedup(); + assert_eq!(ids.len(), TableColumn::ALL.len()); + } + + #[test] + fn tray_rules_name_running_processes_and_sort_by_label() { + let mut snap = Snapshot::default(); + let steam = "c:\\steam\\steam.exe".to_string(); + let curl = "c:\\tools\\curl.exe".to_string(); + snap.processes.insert( + steam.clone(), + ProcessStats { + name: "Steam.exe".to_string(), + exe_path: steam.clone(), + ..ProcessStats::default() + }, + ); + snap.rules.insert( + steam.clone(), + Rule { + exe_path: steam.clone(), + down_limit: Some(1024 * 1024), + disabled: true, + ..Rule::default() + }, + ); + snap.rules.insert( + curl.clone(), + Rule { + exe_path: curl.clone(), + blocked: true, + ..Rule::default() + }, + ); + // A rule with nothing to apply is not worth a toggle. + snap.rules.insert( + r"c:\idle.exe".to_string(), + Rule { + exe_path: r"c:\idle.exe".to_string(), + ..Rule::default() + }, + ); + let rules = tray_rules(&snap); + assert_eq!(rules.len(), 2); + assert_eq!(rules[0].label, "curl.exe: BLOCKED"); + assert!(rules[0].active); + // Disabled rules still show what they would do, unchecked. + assert_eq!(rules[1].label, "Steam.exe: Dn 1.00 MB/s"); + assert!(!rules[1].active); + assert_eq!(rules[1].key, steam); + } + + #[test] + fn stock_accents_keep_the_stock_tray_icon() { + assert_eq!(tray_icon_rgba(theme::Accents::DEFAULT), icon::rgba()); + } + + #[test] + fn trim_front_keeps_the_newest() { + let mut hist: Vec = (0..10).map(f64::from).collect(); + trim_front(&mut hist, 3); + assert_eq!(hist, vec![7.0, 8.0, 9.0]); + trim_front(&mut hist, 5); + assert_eq!(hist.len(), 3); + } + + #[test] + fn random_index_stays_in_range_and_varies() { + let mut seen = std::collections::HashSet::new(); + // Seeds 100 ns apart, as a Windows clock gives them. + for i in 0..200u64 { + let idx = random_index(20, 1_700_000_000 ^ (i * 100)); + assert!(idx < 20); + seen.insert(idx); + } + assert!(seen.len() > 10, "only {} distinct picks", seen.len()); + assert_eq!(random_index(1, 12345), 0); + } + + #[test] + fn custom_ids_never_shadow_bundled_themes() { + assert_eq!(custom_theme_id("my-theme"), "my-theme"); + assert_eq!(custom_theme_id(" "), "imported"); + assert_eq!(custom_theme_id(theme::DEFAULT_ID), "system-imported"); + if let Some(p) = theme::builtin().next() { + let id = custom_theme_id(&p.id); + assert_ne!(id, p.id); + assert!(theme::find(&id, &[]).is_none()); + } + } +} diff --git a/src/icon.rs b/src/icon.rs index 632706d..ee53f4f 100644 --- a/src/icon.rs +++ b/src/icon.rs @@ -8,7 +8,7 @@ /// Icon edge length in pixels. pub const SIZE: u32 = 64; -// Palette (matches gui.rs COLOR_DOWN / COLOR_UP and the dark panel background). +// Palette (matches theme::Accents::DEFAULT down / up and the dark panel background). const BG: [u8; 3] = [0x1e, 0x24, 0x30]; const BG_EDGE: [u8; 3] = [0x2b, 0x33, 0x42]; const DOWN: [u8; 3] = [0x4c, 0xc2, 0x5c]; // green @@ -16,6 +16,12 @@ const UP: [u8; 3] = [0x4a, 0x9e, 0xff]; // blue /// Generate the icon as `SIZE x SIZE` RGBA8 pixels (row-major, top-left origin). pub fn rgba() -> Vec { + rgba_with(DOWN, UP) +} + +/// Icon pixels with custom `down` and `up` arrow colours, for a tray icon +/// that follows the active theme accents. +pub fn rgba_with(down: [u8; 3], up: [u8; 3]) -> Vec { let s = SIZE as f32; let mut px = vec![0u8; (SIZE * SIZE * 4) as usize]; @@ -41,9 +47,9 @@ pub fn rgba() -> Vec { // Left glyph: download arrow (points down). Right glyph: upload // arrow (points up). Each occupies its half of the badge. if in_arrow(fx, fy, cx_left, s, true) { - rgb = DOWN; + rgb = down; } else if in_arrow(fx, fy, cx_right, s, false) { - rgb = UP; + rgb = up; } let idx = ((y * SIZE + x) * 4) as usize; @@ -162,3 +168,25 @@ pub fn ico_bytes() -> Vec { ico.extend(std::iter::repeat_n(0u8, h * and_stride)); ico } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn default_colours_keep_the_stock_icon() { + assert_eq!(rgba(), rgba_with(DOWN, UP)); + assert_eq!(rgba().len(), (SIZE * SIZE * 4) as usize); + } + + #[test] + fn custom_colours_change_the_arrows() { + let custom = rgba_with([255, 0, 0], [0, 0, 255]); + assert_ne!(custom, rgba()); + // The badge outline (alpha) is unchanged; only arrow pixels differ. + let stock = rgba(); + for (a, b) in custom.chunks(4).zip(stock.chunks(4)) { + assert_eq!(a[3], b[3]); + } + } +} diff --git a/src/main.rs b/src/main.rs index cad8f5d..cc1d829 100644 --- a/src/main.rs +++ b/src/main.rs @@ -144,10 +144,14 @@ fn main() -> eframe::Result { }; let native_options = eframe::NativeOptions { viewport: eframe::egui::ViewportBuilder::default() - .with_inner_size([1100.0, 720.0]) + .with_inner_size([1280.0, 800.0]) .with_min_inner_size([720.0, 480.0]) .with_icon(app_icon) .with_title("Throttle"), + // With the `persistence` feature eframe keeps the window size and + // position (clamped to the monitors present) in `%APPDATA%\Throttle\data`. + // The app opts out of saving egui's other state (see + // `ThrottleApp::persist_egui_memory`): the layout lives in settings.json. ..Default::default() }; From 393ac0cfe15aa25d0be8fdc1fdaab9d542635f7b Mon Sep 17 00:00:00 2001 From: Francesco Gruosso <64712227+FrancescoCoding@users.noreply.github.com> Date: Mon, 9 Nov 2026 18:40:18 +0000 Subject: [PATCH 06/10] Refresh README: features, screenshots, support link --- README.md | 36 +++++++++++++++++++++++++++++++-- docs/screenshots/customise.png | Bin 0 -> 159910 bytes docs/screenshots/filter.png | Bin 0 -> 100205 bytes docs/screenshots/overview.png | Bin 0 -> 172456 bytes docs/screenshots/themes.png | Bin 0 -> 164927 bytes 5 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 docs/screenshots/customise.png create mode 100644 docs/screenshots/filter.png create mode 100644 docs/screenshots/overview.png create mode 100644 docs/screenshots/themes.png diff --git a/README.md b/README.md index e55f6a3..17c071f 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ ![platform](https://img.shields.io/badge/platform-Windows%2010%2F11%20x64-0078D6) ![rust](https://img.shields.io/badge/built%20with-Rust-orange) ![rust](https://img.shields.io/github/downloads/FrancescoCoding/Throttle/total) +[![buy me a coffee](https://img.shields.io/badge/buy%20me%20a%20coffee-ffdd00?logo=buymeacoffee&logoColor=black)](https://buymeacoffee.com/franwbu) A free, open-source **NetLimiter-style bandwidth monitor and limiter for Windows**, @@ -40,13 +41,37 @@ https://github.com/user-attachments/assets/632312e7-4096-4957-b2f7-f2277aa96bb3 minimised, and launch at Windows startup (Settings menu). Startup uses a Task Scheduler logon task, since Windows skips Run-key entries that need elevation. +- Optional colour themes (Themes menu): editor and community palettes, import + of any editor colour theme JSON, Customise (corners, density, scale, fonts, + accents) and View (columns, plot, always on top, compact). Stock by default. +- Filter box above the table (Ctrl+F) and an Active chip that hides idle + processes. The window size and position, panel + sizes, column widths and sort order are remembered across restarts. +- Plot navigation: scroll zooms the time axis, drag pans it, double click + resets the view. +- Rules can be switched off and back on without losing them, from the + right-click menu or the tray menu, which lists every rule with a check + mark. The tray tooltip shows the live download and upload totals. - Runs as a single elevated process; engine and GUI communicate over channels. ## Screenshots -Throttle demo +Live rates per process, with the selected process on the right and a button +that opens its folder: -Throttle download limit +Throttle main window + +The Themes menu, with editor and community palettes: + +Themes menu + +Customise: corners, density, scale, fonts and accents: + +Customise window + +The filter box and the Active chip narrow the table to what matters: + +Filtered process table ## Download @@ -115,6 +140,13 @@ internet, so Throttle shows the browser's traffic under the proxy's process itself has no effect; set it on the proxy process instead. Throttle does not capture loopback traffic, so the interception itself keeps working. +## Support + +Throttle is free, with no ads and no telemetry, and is built in my spare time. +If it saved you some frustration, you can +[buy me a coffee](https://buymeacoffee.com/franwbu). Stars, bug reports and +pull requests are just as welcome. + ## License - Throttle's own source code is licensed under the MIT License (see `LICENSE`). diff --git a/docs/screenshots/customise.png b/docs/screenshots/customise.png new file mode 100644 index 0000000000000000000000000000000000000000..0c2fb4c2f9005a334c5253deb2c5f687f79bb880 GIT binary patch literal 159910 zcmb@u2|Sej_cyKx*%cxC5>Z*pzGM#}TT+;W5;2zS1|eh{J7v$lWXm@8NJzHq#+t!c z2HDM+@xMlQclY=A`~IHi`G241dcC@O8FS6`xz6XD_j#Z9IpfVe9d$~w%VY!u1e6+g zRP+f5&Y=ki2<1tMfmf6S%5MYzopI4uS0X6wV_5-yAbO^#tw=yn0VO}SI0yWE-tmr! z3jqOD8~)!J`m37$1Oz9!8Y+s09_H&VG(ks~mSv2Od(vZP!(^t&o7t&iUzIN0 zA$>(~o=!1Sh3ah3oeQMr7b&iCsPs(`!^gjf_lb+IrHX}f3Ws!Lv~P)v7qQ8C z6*NOI7ifVa!G3+bqED3T^blYb^|m_b+KO3(PvG>H6!KG@!yKk2CyU;tG!*51;T;(m zxT9i7oT~7`xk(7dYRizerjhh+@DAdG#?_kU$y+rkdE%GPuB5)#;a^QI5PTRymr6hW z7M0H#tea922Qf-OSn|^yrE0vx_>@J+GUO_zYsK+^2qy!5n!$A5I#UCfoPHo#@9*qjw|L;#LARHzwvM`)jFR)?uN|0<1&N z4c2{gJM>19h7QsUJXPLwxi0IvUg4BNiCq$NYe+0P)9HF}Joxp*Dn9bGnlo-tY@vA8 zW2ku*r4>9qQWA?<``BLzwhi`a%+;0;iRI1M8AKd$rOPUuE`n_aXN$l==0wjV zo9d{HC2N&YV6Queq(Abv4C!a zeYCoVa!$GXHMuB_MmU9UELVFGPj}{rm!iYP)0v>)O8Pru@rhaPw={k&?6YB%#%kw}=9iEqr3s&^6GErsf9KH@5h@QKo2+&b5! zek(!PUU#{VvdAF6Z9r|NRJclLPh7;!cN)7q0U^}xvYPClStxN z)T%+LHfAk5{(E8pTh}t}>yg}waOtm_Wn=C-HX=BDjunPaJ87)tg!L zk_xbazR}S3s_tcj?+B?({cWEFI?pKWKp%V3UdplJnBzx^!Jyz5#_Qsh+NR#Hr~>ou zWt!K^^t;@3n{pnpRC|xSBJWQ>R4W{n&o;7a5hs$67Xu16wdTNlYe61h|NIEQfMYPF)s6YRZwy ziXfSe$&^=>xZFr5c*exwh2J7t)KGmusJqkpJ7R}lW1A(K&T~dHOtv3z5%C~i5Mglw zvm5;noc(+af9?lUUBfbjOJLiz%e$5W=?+c7s~j!4V-rPVhfcPw)^UbV3rj<-O+DBm zr0@O>NWc8?#aAab5ayQWK7idvYC^Xj#G!a5(gmK9j60_xh-PRtpFjFIb-Sr)9Pl8% zQxCFibgP^9zUq+7p&VV+RnB)_G*dH-c~bq{p)(9Y?81S!{(z{4sN;txqPu!Wi;RsJN7x8Dqa$%&lqvETuO-Q#NK_R=Sa*~`ulenbtKy>V&2 zqoy2jZcUl{c13zsC$)Sj?s!?DxX$lEi1@Y}3YFAy2&?xQweE8!T*GZFE4U;k726Cz zJr5qCBMfg~)eDydxrak#`i&W|2(l6IlFCRma~qbn$aPN2b_zRtUrz1Yy=gD15eo%} zK=@Y_Q_Eq85JF_|L=cA1Z`x?a+?T1&N8saKu>rYG#zxQr1O zmuz30{gsLIn-}GK7UkEs9+t+XmdmIWqU?g1D~$;y;;(34#&IO|thM#6j*Ru!Pex$aR6?H+pxBo+b~J6eRvC=Uqs&0 zaBr{SkY!|e+?cWs!FCJlncFvgz>Z!XxaM9gcmun8Q@$e*N6hC#LX1@zxy~gCJbrc; z{N59qCq34&7rn-qB_5Yua@f+Odxz@0_uB)|#ifiU+$;_?`_cpIxAepx+h29d{##4!tZ#nr zX59x0bcOv6lz|{LCv>2Wa>6_oB}S@PX`0CUSE`JM4>AwBL4tjJ7FVU@yG4dh@uo27Z3-^@)WcVN9%@#S=jYmd zx#{Tat*x*8MMG~XiZ;Jtvek0J0UuTC;xH){%1MQH!O;%NHBfz9%sWKz z`g4)_LVTt+qCTKLUR@^MbDE-QwZAy66U>^`m6>lU8m;+`c_WEow?QP%{+a z$axFwdFTsx%w|^#4J|;ECu`yv8GD8U0rd%j+62AA`ayi^g_#!6bHlx$jIQ} z<%;}+Tby+YcK(;Eo$B8mEnFMf^3E&jVI8Raj1VF-z8XA^{3SB$khln-63I2M%g<#q&74Qp)_7N0Oi#0vcA9kD7c_cd)lbqC9!~fwlx%o z1!(2dkzvc^W=aQdt49u9pyvZ%-z0;Bz%-IT)sJE_0$8qs{FSl+>Zvj?&OB4cvP(Fm5(h_L{W@G;1l zutrjJPAhrSsjR8x;qPjXWPL7}50y5t-n1~P3aav6f41RqUtF-pj=q7S=3Z{7LC93%H zBjUo~#8*XGYqv)RZsb?EM%yAML9Q!e_xGd^yhdERj*47dKqKQ}F*t}zZ6xVI90mFl z?pes5%`@Cvc(R`!=!@M+Tm~Hn7ZY#KUPl*vjGr$w%I2c#jG91oQ)8rQ5|cw_`lXA> zUl(&r`N*__S4O^3Zb4w+V=YeQsGHrl`S?Xc0nW6p$ z0vl_E`3vK6ZwDU%AJ3;QA2r005eN{bFrMxmlURh5q{g;u_QS5RKHK@=$0~*?Yzl{U zRND(U3)aalcy+!YrP=T-_W0SkK%WxKqLA;#bs^)yO!hw6;*YD}Eyw5m{rp#_TyNu^ zEjtjp*3DKJNQ@K~*4o-I0q($91deNHV%|`9S-YTDE%K?{)cmdrjTtnR1}!`x7}gkR zsQJi~876yiibKwxS2CeT%S?B;*$SutrU+(}Fkf2eM8DmMqj(w1L0ACL+GYf?os(6a zF+bC7Ue(}yCQjvTAV*zQnWoJgn{O<-(Xp7wmUVI)~4e7E6B9a+^9NBZCbwWu~ z4o8Ru>F3+9WIE5jJ4*0Og^6-ddPp2ENMSP0r?*7SfksUw-e^Wq;jsYQw+7H1hkCZE zBt>5l2RW`HYuZHBfw>dDk2Xh|CQ3O(r;9ViCsvx5a@+ce;wgpy zW;>)EM8)(XN0C?xAQA@pU(auo$GkGXV0HL_pDFQaDn;)QhaEZ=4ulUwH6?z1<@oh2 zA}nS3f%WltZWP2b?~1Jph4?g;+;?CE)}?yo9Cpy^F-Q<*##Llb`^oiE*F6&;TY6`} zKTqpuHb8ov1KniqB>}sf5r4BrBc6h(+?ZVAGxSF@OgDf+{5ywos%BR!zlP}b;&_T3 zfh&QXJYCT@O;%pR=%YV*ez%eXIm-L7o_pdNH07j8ah<;_DU*vhSg@OeDlR-o-J0ek$co`r8b!yC#EY~ed1QgUOryq14k@9wk5m}V z*6spu-syDKrr*A+#!1sY!^Gig2C)Rim9GMTEyDN7jueTRHR3*L=UR=&$MXOe&lzb3 zM{2}m*;Ia~cIx2?+~Mhdm>Ufb;{p#wA%1Fyl^Dn$dFTe5u0UO2G5ENf1h;*hdh^KZ zI~&68X|+qB2-o|P0uE%7A|w~F|E8cum1w-WkEqAllZ7u@u#$2@O(6Hfw7FnEokXr6Ae%yai|0|tq{ z_4P_Ev+7J9YxhD5ok_mWwnzrRueAeYp*)``5927&is{*av}Q0F?lWED<{+79V8cqQ zw|9*jnREuCZ^erD6-Bojv7ahUL7|QISpa9%FGMZcBkI3726{3L^x%=NNCEG+6liRB zbRi&i;;aDaY{p2FI6@=(m5sBNO^S~HBQB;yK8?|$ps5-jc&(VHPaKb3f{y$W0C&X+ zvCFYJb(}5W@lAN2oGzbgb6yqS(WD8=>h`7D)X)Mqyr0mi5Dis-J)g)usS;Bg^W6bF zt0ve_B$1qS*M>g{?`}qd3z-*fAjM& zlxCMbK+0s|Iwgoa*~#Ldn44Y8cDaZnp7Rc^pzEzkD6;C_nB`TT?y-b@E|84fE7s_a z8+=?vv}u}DXluy~9+U7;TLYD=X2q$FN2f5Uodxf918lMu!2FG`ms0-C>Ko>&+N2u4 z)~^!CtS(`04bk$#c#5Rh)@TI{(c~KnIofY227wSU1D12smPdtcb^w8W!^?gGpyGsP zw~OY5sR4Px#w4Kd#F2WI>IC{gfVgoR6+Jp2q1BUFF?@Fcu_#OiIb3^Vp9d^ypJUVD=8^23Sf4&##dKqVMdE$Yx}+X* zr~Yh?{*mV~Wg=NXQhLaDg5%(_C7}gSPCdIj6c7>{3SEv&o2vt zMUZ@dep_TgfqwJnx3-M`&n`{$7*KdIF1)vt0xmj#k+;f3{>f+3y)Vq*g4!7`t+LI5 ztUwpIt+>b5<7aONVJ^>ZJ#Hm<2K%|yPF+k$LNz=kum0S|W}p+ijp**HFJYE`X@jtA zxHN*^iTQiEQCInqvo-c9ROfPMn!IJ~7rwm}QwQ8rwM$8!yQnA>!&YXb70|HftQFi-c?+PsH;Zh+d=uPgZF( zp;wFT6M?I=HQh%Gy#df7=nt_L$aTs?wWr$bGo5>t@)${$R**!HK(*(biG z#k#ecuI1^Z6)C$!I7{@D)~^aQl~h-cJO@!ao*_Tz$62XLDf%Iox$%90)8k56PA2;+ z_pD4m%s%R9aE?@W(W{m8$z7%k^kMyJGRAV4^^ac6j22BVCPeeK`M(vcuMFkOtWg9t zkp6VaF!#f{Ry!@IjZ|2wH*IV*Y&wY5Pe;4}HF{K-L*c3)HfNd|%%RcaC7pLXVf{$m zyDNkRC%Z$swdV&OJ$$%*K$)TPpvAYz>u51)XRTjqnZ*@3z-dN!z-n(DsX6!H@g%4B z+wkLBS(;9#^d&2$|Ly>`~8jSlonPT)KboVvg#P+G)TmtI{+4H z+zNPi^SOQsN@1&&u%6vfVZdSVy=ossh<>9#&3)$W2`hu-mImdH3>$n&QeCcQVc&D{ zYeGyv6ARzeNw`q+xXCiNAhJ^w{{|9jwg{gW%ufBCxmro9metlhmzr?EW)@HCO3?ha z;z&bmfNum+y<8wk%gN&EXKng`)(bu029)?nwVm-TKb#NNJ4w(i)js~LqKMLb3b@&1 z4+XF7l^#~?inv#+n<4KdO-J1Y@ZMA@1Jq2@qmY3IEl)bgnlfx=r>07jAyd>J zL3MSnI?thrs!N;EwoR0tvs$k)cI@0!&twiI-m}5=FcFVgq1;oTsl1Acie7uipJy?z z$oVRRp-&7B#-aAI8w+f3z+hLj5|O9{F1qFv0w}o3&eqm>gZ#I}XsgR&1AWDcCL#>g z$FIXJU~)?EOA(%?I6fUAZeVoZ_%$#XzQ2En{Q6f_wJT(2qI!>@=o52R8LO;hnia>LqY^v!cT8 z`h>wrR5WXCySO7~Ycn`O_@KccU&nSAIf$;fuy^j89u)Ni6M^v?RApERXRrx@z!sup zhIjfEHebvpF%1f3K$l>zF+ug)^4*XvjCF7va7DG z{Nyp6(+Li{hdln+FP{<`x;nKr-@dnY)|?$-NBrA(SF&?5TLxIL%E1(a+>0V<JsabL0MkKRD(MYjzu}i<)*z=S``fK-*_0FDm#-9;m4X-`@ zmOOtw-1*Zv2FV^Wi+}l?`1<+wkYY+^ail+{v|&Sk%-s7!{Z5~ZE7BLcHztD`3J9k_ zvF;wA;Kr0Jk^?3>hW1bU(?6I)_D0@YoLDEB<-rp!?2G-KHZ?B=`fAb#*o%dMh+hGl zVgR_5t3zC(Eh+kqtwu%pY|ydO+5*6x{<5&)9Kv}#@-TW%wZ5t5SAt%$*O%(*T^i1pojmhSnKd3*2mZ`V8)M&=v7 z&Geb9dfq2p7@x`hi94}d3MXPTkf|7$YOh>T==~*Np#G25*oT;d}Ke#YITN>D*a&GwVmg|yq@QT&*@<9}Z331CygL&tNz<30Tf zCq7Lq**|+lgN~_XxBRJgep6O^qz3*(szg6#qUddk;+4}8UMHGN9CY)apYCe4OEY0w1 zsIM>sF#!Xe@OQ?nh8NH1m(jV4 za-o;Dk2fGC%nH7ZAN#f@%CeM0mf)XZs2X^x{lx^WD5Q}4BwOp+m*@FuqrB_2gnq$) zM{_O^YK0Fgp1h_?12W`lN!*VBU$L^L7t}W4{I1_@AfXKfbIiMzD$PwSiV6;Vfxh3; zptM**Vv2#I^omt4ibf5Hj?jM7rRMfONDMI-Ps9b>RthpU3 zJ%mvSkLYA&o)i_Aey{C3N8&BD#MS96M1HL&2-im8stl_{rHSx z*gv8=|%M9$4vXbp^hH!0k1h&xaVmNxe02=EO;8_Dp|7! z2B{1JldVa6D((_vJ*F(sm%W*m3e_7hn=LK9&V-6mqn!{C!3Oy#_h%?t)Eqq!h}!agk=#~bK$ zhhW|2`pbVa`+}DgXnt4HGra{q5dod?Hs7<>5M ze3@6qMoPNs62z=RteQeS@804`m;DWBRF@)rgbNa7P49i6#^j_gmB zvhs}VzpE+y^Qx#QzRhfTF#eC5`Gx^|z;$mYH%ssIw)l{4JI_Z)fmu-7`;%jw=_%28 zh`Jd{L=N)9C<|qn7Y7(N3JgK%KcvGAn?iGUB}Gw191}{pRLUT z0v)X$|9a+Z5O%)+SC=`Ieg80kTrD1Cl0C4DAOFaa_q!GShKJ=UDQRi-SpK}XTR;lA917gDi0B`mZ$!82 zjvRP}=Nbt?`19$ZR|!Z3Qm(+tjROAh;@7`kObGnPi@-at;O}Bc_K$l3%mmo6KlL#_ z(Q|Q;h5h5YU#{}Ut7A{8PQdAvryGGME_jdl$7)58V3Nql$ReOlutg4J)t{(EFlG@` zUe58_Mb1}!aM#w>E&>ShQS)VapSq3Wjp+s%`?a){VvF|RMRsGL7%u5)wzaY8Qs`8R zVwqTy8qHEB$(MWmuOy3bZKOD9C~tN4xZb!rgFd zJ)qD`!`99#-EndG=psW#(s^pbU)FPG+$9-qa0m0fj0m9Z+GBf+*{4@K%%^|sj+!)T zI$BDx{qgxtpER=?l$uev)dYvkhOWX}_C_DA;xL=;qkOsX&8t(ek1iP7s+TMJdjOx8 z=?Uk*v<(+%$_yqamTbPrd)MY8O9q>8C#%9D%AtNG?--q*;ae}LVBwE@_J^{iawwkc zt_+Q=juejo3B39dxM}2hoGYW^^}sJm!o8tW!6E=(-1{chk1VG#_gti}e*EcdzS#$* zRzXa5v=Zc&+xmlPW8Rk#pe}8~kad3JL;CGcJR31{pQdLXmp?h)S$##q=9tKr^{CcC z$B!OPJ&&x3Pm_Ju-(M~*4Xuy|mPfCiO^;n>M=E+$n$$L;slrfejkr|ll0EOjn+_~iI$vEU5;qO>er~BWNQV07VZ0 zd>;~AqbdKIS;0s&<1DjvxB#_dl!_2HHuubZSm&5ERC=GYt`;+&>e8oY41!coHn^8j zWdJp?QhwQwyeCqCUea7f6P8_8TK9u2-;8edRB{+rY%z7)I`fnK7KKAh+vk``C!&?AE?+hLh8aV-LU=0#z4yEv!#f2 z!J_x1Ssnpoz}y|+;Yj#(^Tr1!rnL@f^@l&g;Ztm%1RbF8EULVYia?1MI{+6pI+*b; za|lFn(0!3MO};%IV*Mbb{F24{sgNhqZtF;*2>Gp!BIie>`?Os@3@$jQz2acWKBg6w z-ygSJ1rqXiNT6$S{ka|hC{w{unu{5AttTR5GHvQR&(B2os|!0EOca+j7nQ=6F7JK5 zsEfQ!XHdcsA+bj5)dCdLM=|rHk&BRsKw5+wd&K2in$rM@I2s)BpJRbCH?TH)7&(xC z^37^i0zH;fvrWN%#IzA%J&w5$9nB82&1USnC7tJpyb-l4Vn>U$<4=M9G@7hdT?SJ} z7l;vJ7n2trflgggtA#5n%sKh%DksklLhA}%K|YIgI*F_aLueD>*)tUiOEBm%Cz=Kl z4*&7)2fz>z|;S^G(iVcK{@bX@w=O^K2wbrCW8#YY&4WHsuKYZkbqlak49aor)@ZCpZj zW*zky)1d}b;nRWqB~~Dd%N(1{@osGXg`vKtrEwoHO0Ou^^^%#Vx zX$A6N;dxm>M+^0uYjnFQh299~>>2glh4;CycBuMVm6w7_@F&@f+g(_46LO_d;8bZUWObv< zSuR~SHg3_2(@wDqe@a}lKJq!siNEmlbb2*iamb6W%NSDwN;K^#M`$Oh3#_k1ecYO4 zk~9aUhb3jHh%Ass5|xO}%e46(JDfEm%HLNd4hky>xz~Li*z|BxXSn~$lXAA~&TDUr zWmhuUv(SKW<9a6|lQygQ{3LC##oM=jQxS6#-01AHCNfiBeBaN~RK25J9cM#NR;hD@ z4<2v(zO{cFPUbJ)iTzv=0}SkBvS-j0@E|21uLs6=>CY;ah(Tx%R)~W(>mubw`b*6k zCL^3foCAG_jCt3;@SW3KDFzxl-ch~_Kq1y$)@ex#u|`ulR&+FsgOAvL{{jS*J=`b(9@H1*5YSTL!HSlzGxUkQ8i)j$luXv&^za1lv zTRu6?usV!ORo;`DiN5yB?mNqEC0L!mEpdcE86*Rr40I zGwt@4@3iZf)EYtdGOgQ056%9BLBQj$Y~F?yl-%e=lpYwbNS)NN`jS+Mopcsh53woA zE8T(F-yR4jKlk)2M+71&MWQ8|Cx0Vmi=Tw3D0!c#CA*APe=@s`R;4FXL2&9zK9Qrh zY3e7e+7=MRH?+MYK1Y$)p!|n%Z^C&i?c)myy*FUX>EdUqHizXdI9MJSRp?42(_;5k zX^94qy50?oeS=^@`DAi|yfVD-oNpiREX1LzJ#E=P2(<*Zwc;kjy{$q@rpAT$=bH&X zO)*RuyMca4@q)o2hzBA3b>F0AqqLX?shxvrp>>7cj(+z`O;@fbmG>_aVhF2^ANBmXh4 zi98S}Ks1~YV&UbpYKpFI&1b8mds}v=kQnRlFC~B=3i_zWjYi#L;lC$sjAUcM9f`ws;{gto3zZUHI9K_#NxUi&X(wBb{U) zK4YUrX9}dyw8INO{ZCSK!;*EQ2n0Qnb=#A5xs#heZz3Cj2|?D_g^N6HtJreP=M{Y5yR*`u7-O0CO zjX6FJfj1+^UvaQ-#3S_wmj11OztWYn;ui(Q=u@Nda*8py zZk|{!mN9#n;rfGU5O@jM*)>@wh0a#eZ+$8H;2Fu0+W<6X@Bx&A%AhS%-gZIDO&g=6 zsL)JKaEs=UYwmN+54Fupfx2hAqAO^`IyC5ldKsl6Y1kELZ>F@;VBXxO&ytk?Zn1;} z5a`U%2FEvbg@ul@Yua^@F>ulcoe@mg>O+ydXhHle>pAZry+0sP_R6fW-<+ySiGS*+SOl-HF%vcfrC!HD9W zVi!DJZ=_HLQ{F^F@fOz&ai>5E4uY|BG(Q*|6V4$@L6WQD`KyynuCT* zQiLs(d|8#AOLb^v6?)UO^#GVLEJr#?v%hfhj138?87h-~4N!f2j0rZF9YQjk3}}v& z9$at#a+OpUg}KU^tadvhnr41&9|hmBxc=?kEiGt$rk6uNFvJ?s$fTIVVqts$5Lzn4+n`1 zCt7j}A$QD;LXtFgbz!3n3NoA&eDXFvy{2^$xxVUs&9P6oQ)0E@_Ew{)f#m!}0%yqm ztP`ePOph}@s>1h#&8XG3Yt4Ncq)W4ErL#_8t0gJ3gFSr@&?VCQC8d4#u{2L+BY?Le zj);^tK!1?#G~@sDiB0{JoB&?XvwV@%1YifJr#lU7+wxW~@P!l_sjg6@BfY}ox;v;& zqUUg93Jkj&X6rKfJikz^Pg0pWxP5oLQi#AL?3-~8hoS=Ot84c}9jiFY4~{M^>T~#X zga??Kqr&#++g5TgMfd5+F@wgh1w*aQ>x4O<*w@YJT}9;Y&PxjahLuZeuBO zQRl?+YUZq@>k_ue>44p+J<;zTU!)mgs#KqIzn2uCH2*cF7A1PhQ5*G>n*5LG{>x+E z?a{b#?|f|Ea&A9x1~P=3+`7BrIP|*e(zOeLI5+=R`dMB7m_?*Qgl1>F0O?h0IM1-{ z05z$V$aLJwwV;bTBR$FcnxHX zvWq$WqNw^!7eo3-=dt_-;9lUnQ**Ux!U(Prr^RKLYzzbIJ@t&2c^`ZAb6{Y7z^}If z@_O*wb-PZ(qi4@UUPI^9`hQW{q(vYroibwlDaVK!-jRCT(YAFHFmUCJQzvVF{>|Dy z%Mtl|^NPkSIvR==-nI0S9CZZvE>!i1FRC4soxG8DI<)R{gXI2SETRn5;;Tc$MjxEd zZ*?QIDCD08`LlvT_qNs**x<3)hM*KO1Tc&~>wSnGcwzS(b+M(6jm$wdv}*r`CUT_` z9}!ld;D7S?UnH~p)GB}F<4Pa-SEpR)^i;J9%+vY-a$!LftIX==01F@~;Ba@2eUE>3 z%GlfM?VZX~BfyC9yHmiZ)ZZ*&p1GGchJC;~=4hpZ(+7;Q3xm6k&;ES1S$Hw{+sjqD z*wJRy^ZzD7D=+;YtmlXb3kXz(;HJIAef(?(&?&s%n=H}}(}ukdICv5zwZwSKs*5Jg zGvb}FW@L(tdE`4u&6B9b2SQ*=6=0!&;ATW!#(emMX#vo4hI?dQA~VZgx~~pvxNc0D z+`4(Q;L8`ak>TN-mY_Ts%)}LtqVNM5)m2pmqobpZduwC0M{?Q=oly70-!y)BO?=*& zwa?wGN~@Y8BVJ-P0A}wC{ce9KwNc3=QIv;i$*rAe+|9II8SE)!x)KQqzxbckUe8B> zsgwfgpPw(Xc2R#j387@pQ^q+hd|7Fn1GL()7SPK<)jrf$i?MAd0D)I9a!FI-)JU5zzf-y4?f*^l7p(WImlkU0n_IMMJ?C#;`F}#2d z)QDYKQ=SmQ89 zI!-b(R)u1mH~OB#{6V+Jp?fxbU~-m0VB2rKQS^I$x~76XFLsppb%`?E;-j?8=I@#8 zIxJ21Tpy+}Py0=-YwJKBeaGCt^M3#yKie#v|7*Yi4*GPJP39M|TkPE=#o={{diTxJ z(iWT->*2xbh*nwqO9edx>|-glK5k^^euefoLI16j1Y`3zX}%;b+m`Rrp9?i`wlGa7 zc>S=M)|t8Vt=ZzFSM*dr20|_gm{A6@!NW3lbOOexJ<3my-JWSaXjg*>`(=gvU`g#@ z7DMUkGt1wH_0Ku@5dEJ*bGq&T`>ppUKz%&ev*mXe6aILXY7}T`>S2K?7sF!XvQYy> z<}^^+7~w|{P!$x43W=7hkE=T4+YVV7gcq>^ih;x{Qb%e2v!ZSrlGx{GJs-`TYU>&l zXsur&!;LYS8kfx}8{BIsQW!Vhr`{aO5KDoc&v7y?)S>n<9+TaRb?w6f#c$aEgc;`d z`}p+yymO7N0ibT}Iqco_5GaXFq%uCA|3g}e&0&fs0ElgKqk)PcQ+*j;>j#jrVZ1DJ zB66i4Xh9C+JH+{m6HVT=51V~pUbv&>Juf2c_C6{4XBxr2s4^6pA-vi(b^N`D0ZDs; zZ*4n}0yL0RuhYTegP2Z{^e#)P7htv6i#|qNgn|n1nt_Zedr% zjedAEa(uMoIu3pACH`VOb1dodZi*CokKyOn=nNNpujc;gvfGQJt26Jfv3jd9u-0UF z?p@T81k;hDwX8#Me7dH2(jTxE4lhqs?RFuWws-~N|7Xqon}YZR_aI;_Nb+33&*p*6Y|03~Sm$RPSE19!{uF=w# zKQE$vU)EveMj&n1mwofD6#DMcpK=2z16ABFS3H%vF5t7!zbXBHKL+s4kTXMjr*dJ^ zn$EkM8qgo=w@)VR$_jxAi|k%BJ|E$S{Lm+dmF6$j@HwW%GTx6L5M{%?XqUKm7;iaM zrN;pi7cz;RkQkxUCfK{rnJqU@3*g}=P1(BAX189PJahfB%`mk!9qTpVH{KmrW}L>3 zE~Gk!+OhqZn!U+02+jR(;QPz(Y#VYz;j;a=X#-|tw7c+on-Rs-D;Rg5lbuvddd~lRyZ^?~n;l92=&H{FYiG3M zUAYLj?_aKLwi>z9b6<`aEA?MD(y(kn4rI)_;WK-Fd?8-?{p|7&MNYS-p`{l?7AJ4AFG*rzf;7<; zEdPER|C?R^66=0PEaUF7FtUvHcSCf%+`<-^QL+UF!fb)L9kgX}GU>!URw?r#qIL~nXDFvu=_q> zm2|ufYK&ehaGU%21<-VnUYza41DN~ddpe9hF}CA7>aMH1GHH%YG)#^8H;QHo8D`=z zJZ-RANsQ4OXJGX5KXx5MvjGL5p1=))?q`Xau#$uK&yD~C9ktttgw9; z#eH)AOZ9@Lb@$}3yF;sy5;Fr9TR_htReZ!2AgpNLB<4}BpjfOCX`V(b++W1<3z7y4 z$m2aikLq6*Zs<PyVv6}FD&&}+4~RA zJ8k{^3rY9$R(yy_d^rHM|7sok!ocB!v+79kWF|ZJu!t?&{7v5sSaP)ij%5 z73h1Hn_GG0$&V$S3@Mj9s;{T|Y;QkuF#Fo&pRAJrw=D#wzxOJEfvg)sn4;tYexJJo z)XS+ZQRcy!>@7VtsFl|Y=2x#F)lYuFo*lFUwkf_}@*qpSW7cyy%@*jf=zu!3=Xdb! z>v3MT6v-$LogO!pjyWg1Kb#ixBj%fj@^P+rd{@6=(g>Q8>*nOb`a1#_!hB4?rRngc z!;Ngi{1D$P>8YPm&rZG?*(%%@_#gGJk|1NfKW%~knwFAY4uGPbR68mxib~E0U3^JA zQ40oPAti@zQYm|^A3ZW`dJJ^1@8AnEubbd3E?#6UyyQ`>&Igl^yeBew^e~{ixEJbI zw^6^geMVTCxHd!VS=2*dwB6hfRXtWy=rsSDVKtgLdz;-0$yxnkqVgCe62{h35eZz^ z5Az#OHv!Kf-nf#+{cMoC%wi#zXwd@vk%dp#7>gomSw=(+!6zZL`#p(t z8TUQ)lXtG(`|El@B^B?rH)6cUcXq(t#s!!*T-hV77t#0bNxXsHFKgO=m?GclBmpO$ zg8p3StSwXkE;{Z4zwid8FTJFco{G^^CfmQ5ZJwS8k?ig5)loPKMLW+_Saz;revVs0 zSDrhU-;Dy=aBtkklNvVai+j(7t(CQy=bhqciU zNAUMTKUu`r2K#|g05HydO5#Q5aTK{+2o>vBg{RbPvdG~~#J@V#H#>8~QX zV4yjWL1fb3?BTeLSlc@nJ|qa~n&@GqIlrnUcHXfalvp>?^ zUtQH>IQg&N-ERV7$V!`cL9|C0B~vM|<1JN<7cREe8Vok?54Cu9J=gnK8V`e z7FRQD0`%0jGGHpa5Z_8C`T05wn51IVj__wa>9l!Cbod~c@A9N&8q-fGiaS)jOX?-^ zp6iU~^2)6CVH9EDzRPmoh|8odKwxKuJQW-of2y%=tDbXTdZIKOimSF8TO}u1awnQu zBr2`T5cSx9MNSTkMd;9~y(7P%Mr8>UI>ghPC51ASXXYT@%LH)_w-fjwSK`|R}g zsa_p!t0`w=cRwX*%LHn`F39I=gnD9NFMk_R!eRgfdN9y$s4c!EPjUX8;-) zx+1;xlknKQAXLs3YU0*GZ;Z4)R8SLNI3bPf^&j@h2+@H1MA^I^5{eRM?SL>Ne-IKbbI58TsaCj9C{y);*1Rm<{{Tok&k}Z|2BP!i( zsO*`EL>m%Pks+0`FWJqEEh@{jBHM_vjBMG7v81Wn9%CDfoyMMF#*CTypXsjqcYnXn z_xU})=lOfR^eRTN;v30c$V)< z@qaTS^(oMe0#6CGWND6&a|?Qy4r^kt)`us&?CPRN&$1ffQ@vecKyPPOg%)kaB6oK5jx-AgEBmXrJP!%{j1Cyig59q}_sG^sJBBF(%5 zMgqw*V#eNUHpj z`Q1OI1GmXUzr_cf7#PkE@vcZ&m&u@sj*PA)?4Ah~IOZODg@KlO8z1cN zJC^BJ|MCzGmU-sc{1X+vYID!-lOrs7IaS2Ly(OEu2m&AEKW6i0i=bV1IeE$irIV7A$iZ!aDzF4%2%vhn=cK8VfMtJk&RhW zEiA*;{h|I{@xh|Z4>5MN?{~Lzdo6E5qj*MWF#3*+RikUi7~jqXkY&X_a5uPOasv0A zf-K$Va~8&pqc?dyKk2fh5eRT~tL)_sJsnE?`U8G|cc|h594`2W*nMDP%bUCgDJkE* zq^&k=oXN7%+}1peMW5`&y0(3ld@22psl72P(|htXd)b%1F=TvgA@}kU()rUvuCG}! zd6#v@-#+uAAnhLD2B)vk*6gqRhvgZbFMj;v*ni)(zFGqs=+;+b0XE?&-zXc92{LWa zx*1d1)l<+9<%^^V`ReI_ z*k$W%plC0}Pj_EFJ-jmyZ+pioJaW&?m`&Ea?|QAhVopFRLPTU$=S+!eJWngI zVcfNx+`Fd0vo>0NA-$nl373p+0l z=*i}gL-Yn`sZs3KA})Mac(un=I|d>Z%Q#1G_FERiWnh#K4T7F>!b5hmiD6%eN~jYh zV^A%vps)aR+wsrWkz4xX`|^k4d5>)$>DuR6Dcmo-7QZ~U9R0oUc2b4X_^TFz@dgQm z1XHE`M38v+Iz=co%uo6?F)=smZjD4I#P^u;($=Kx#jLs#?LNg7Z3BvZ;9Yn}q@VKu z^(Z-%t7p8dFFt$mV%qHy51-Ex4ilqicQ$vjHSYS=j&)u2OCC`PS<%k)Xm|)s7WWX{ zE&kS>tG&*?k)>ng=L{e;e{wni?ibu zx@}FveSNPy9(^6XeXB$qh=n;}uOCUaI6EpNr4Y5WU!4r9^dhBhGkn$Xv0C-6t5-YF zht=L8C6q!>2kqE|Q*izi@Zdki_%N zi$oBqkme$z?l{I2cZU0I)UIy;-0L7E7lsV_!Hpwg?mZ>>+EVwAs5tQTsfkg>X??oj z4bVz6N4r79d>fJHp&Rua3G(Bex=aSV1VAoE?QycoEgeWagQ$Nyp(%?V^{=C?1 z5xP&E!k2F|<`GWnXPc%T! zzw4eY9J@*IpLHX6q&%S-?!+K3UHM1pBm0JFf%y5y*!av}C9MAgm<1$yhLoiKD-+#1 zYmbl%PoZ@74n`phh+UK#%^ymJ6-X_cF*jRTdbdZ}Hn_{p zbcy!7TooMKOWK>A0r&Ig72tysm$(Y3f_v)Yw$hE@iNVsPOQ>okE=8{Jo~diiT1_-$ z;-{cR1L^RkKFdMjAna{onalbg1ufk=enM{q7Zh1;D6LHxxzh>gRZxbHe8T*?(^b5WhKWpWVb5*t97e>HDJe1FG7rK*RpQ7cm8?GwMd96m_ct12$J7K6)bNOU$+4S zY~!03gk;@*;a+ZtRHe34M6%ij(%4JdwWOVja!P0as1Mw6A;(vby<*+T8b!U zL-io#|EJ0gNcWf4iHFaFUh}_#C30;BblG1OG4H*!w$n~FKfS&e-^d1x+dYGUEh_k# zJ7032-ucr-;_UPc{N_6^3U~e$Tgfehni%;~A;s>up}1RiFauPE+vL1neYcKBy?1Fn zx6K+xkgI(0VbI^}t+E8{-RD$vm3h@x?J5Z{%4OAWtS{|Mgjck%TH5riFLL*1jw3z zbMfwHE}b?&PVpQ?(9t+CUibvh_`4?p!{~Wwgk4&<+7;^>y|#~2O@mqD0ny&{^ryF& z2_^siypKF=oCtsa@8|&~{SNf0-Nnxm{`d&)li3bYby{K+`zqNJPFoCCAc1p5Z9dL> zm}q6VgX?%!c76O{8fwh507XgOfP2Rd-v+S`UIM(`lSC$kQ| zy$s9T`@b!A{5N2q*#^5uX*dz^0PgRtEw>x2*-QFeYK+kxqCJ*4Svcq#$t*#k2h{(q zHR*`;{o#L@GP4G%qaK@=J$DKZzp%KV!x*doDi%j(LS5GGW|@rbB;!y1U6=ZI46<02 z&5coummQ4V9H1+wq4#ffUF_Z&ylsysfJvX7m*Sw%v7kfntE;F=m@Qerb3jiXddr@# zc6?NP^E@C6zI<*$9^Vm_f_!`>8`AYRHpKRFT=IXvc|R{rA5OZk5t#jehU@~2ZDTg> z+MZ*?ef2y{+JZ^tv7?@(LN@254m$4li;nZVhJSR`IMpvksLDh#@ReAo_?3G%WW+v- zJHB{(Arv{|N42z=_J&T&&2mKCoUAa;x`mrtT#||xVI-Y^J(eno<>#%WDdFf zb>t^U?DBujQ@6GUr2%w*&-ZGM`tCm@IDF9}+ot;=*H#zf>IXFoQ7;sac+qpN!7~5& zkK^(Xicvmz(fDTr=T{d8d?|cT{U30(VjIwObaZq)wC5+1rf}8{SH%8c^3R#tXQ6~8 zrSG$7H~ezrvLGnkub(9>rxs||`@Y+@W%2$w?C|ySj~S9a8%bJaZwk6BAJSEf{&lE_Pwv3-G1=+@f$>h>mXNbPD+^6}NO!7Wb( z7JTT+SV-6I|3L-~@N7Zwr~iV-`q_^iF>C)lEC3C*xUxC~yBW|5T{-2#gq zp$q%=Nqi)ZLH%ueqnym1oQQ*FFs3tV6nD?zMgGTO{15!o&$kF7uXA8>f2j)mI!AP7 zQ@oi@*p)Ld@68Ku-|nK|ALmYs(GAPKYn}7H!Qdu*Pc6vBY0_u|qMChQ*vu;+k30BN+`WSlOdn}Y%^44?_peDYXGP7Fyhch8(kVj;H zKJ)nTU&zhh1-+h67C>8)ve9b74;tn* zo@ERRl$=-aQ`(mokkw9l*T@nxw4S2aAN=30kN>8<{J@7Nd8uXqkma% z?l$#W%soyuIMTfSg)&J;HY4_8&;GrA1$JwXKS5yadKbHwbqq8^e4c;f9~QW|M|pKy z=~p-W%2_RJM{NLdd09&4!#*} zGNVM)-?E4_o1&F?oF!Zw*jj_nZA(JsRSmBCXQ8@wa&{s}{O@x76v(Bbwdj50-JN)( z`RW`I&i({&@7u1B)c4-z5TeXptj20ym0@;@5mXeDv9Zwa+r3+IQb5G1=h$nPWZP@6 zn&Va1%<$eoZxNl66YC_K9_un!5IZ|)B}05;ArpAFm;>b{C%kCCVu*2nGAvX!-F@(k zJYx!gJHfjAS9lx;5dk6_Dsd_diPb)S$|TYx4IUs>sia@ZUm)esQe~=*=!qe>XqID7 zOc$8T*@r*d{nq5 z^M-m&4)}bB5*lV`GTFP25NUCaLwn;EIJjqEb5oJRKsosCMgWqzAnwzM!Fhc?5^j_#Jx$q9`EGT8{=L9_Y`82 zj b`Bmc%Np~v2|ANpfbwygSag0%n;Xqm~?GGozNAqyXe=LicM*J&b~(0$9PX|Ni|Vexi{~tx*yI`c(H&Js z`*uF^ZS9KdYu5cv7aOe)d5_zV_E7B_ zx}pf-iUn84Q!5Vn!XVXGV){`JC5zqONHWj4!VTuHry0!Kq*1*l)+!w*dMX`hQ`V5} zL++K5YaNr0GgZwGAcFq3aSP?pS@rM8xvFtPtUq43B%g>2>?2|GiM5D6b&KA-C2xYu zY%ll=+~TMe?tPUD^EtU{5<&Q|Du5+UwdckiUCfDV#ei=@Gj6Eia&OpmDVjHb_BC(L zEMF~>{y-JzY*%DTYyPnQUb_{qN$o-!f4{TVo>%D;FcgQ*={Xu1?}E6v+DG>w1md;n z4#*VN<5fr(dok9#uV;5j{kVXO=e!rro)L+XWeuIOL2tC^@GU1tq4K{H``SYk0I>_! zT3H&SFg-e~fpQ5jE4|kIWB${+##-{!dU76R&{?DOJ;M%}F4*>}(rc5f_F{I=QH*(> z74%(|8^W^GdA$S~UFynw@7TYV3O@Y_ALbE+D&|G(S;iB`{^eZ+7lx%pb6Y`f+&tWJ z$On|$iOWX`A6AH1Vyv)5`Aw23_@bfr(E3e+OE1-;dVZad=gL@R1RZ_3u@(SV@KF9t%X~B~mxS$R8LG^LQPcg;5~u`s{~kxOrD9 z3j70^B}v^dR-IoDa~xbTBos2xbpPGoM`75{LpV#LYPN-UKNDvjKZLWmxwer({ve>r zV!6*_a_7;gF0V%cgGU6bTJYiVBY z0@n_brO`*dxEC7vu>Qny^WJ#~HZBDWN*T(^o4BUy%3O29x)N)VdlqIbEz0NNrg_BL z_czKA=fQW+f`N|0-eHKFH?Otl_PAgy^N6slDz`urZ_@I0@XZrg#+q*__=dSo8R~*J ziM5sB#Zc@{LtxBw%5Zt!q%{u$cR>-Yk}1PPZOqlq&kwFxv-P!CPL${4dwe}{PK((K zR>N0^%12bFWn?>~E5eFBS2_Oz%NWJqYVI+~jmyKB=J{=RZ9*WyurO}rP{3Gvmg&8S+S3N6TL={xc(O-e-Q^(%#bu*7o z@sr-TQs6Ya?gd`$P)Qsq({Na%)jEFGltK&KoF-N#5^*^<%1}n$#0dQ7cwy>^1qC{- zMgc9xOs0pEOUKQy-U9T^jA#s|16D+;WSu5W#7&~eYQbu2RVEX?GWWgS>LAw!S@#K5 z^Cz%(W~V)wW%Gxzhh-JCmo(_aLFD|#vtiQIO;lE*FY|_X|0)`Lp9;&(9Kx9iRxfWn z@iVrV6UH_#kiJjbcO5$=j(RoAxCygp)$W)k^`gB_O?kCHRQldq2gb!B&uUm_Be~J3 z9xsH;pKNn7L{8a=dlnpaVHEvM!>1Lx0CqNR zaJ(cJDZ|E+%T}GRvt@2G)1E6m!XQ2(;f!*2p5ySE48fa0H9xT?g)UElU2P?z-214p z8#RT@Gl*(eqQ?gGONw}z3@gx%XlbtAJrGgbU@wAFmu4l|3CKob+J<_M`fYDe^h9U0 zLM&@2qz`^Wr+%p0=K3FveL!2? zbt9$n`#4?m5l(YCF`ls=>)0PXy+!sS=JL@bcUk(xC<*osqvW?Bsi8DhYRc|zUh3N@ zaU6Ow{msF=T?T}=Uu!oiawN-tqc-6V{tiZa%xPm?Mj3UGqj!@bs)ah63!#M$SC*>oekf4Ewc{y(?9LV5TGnqq5Ge z`th(0s}-6DHcHC8CLGL<&Sp(l4VpNip1X>5_RJa9LLO){9P*VO;ASu|XGT|5Uh6!( zSjH=`8be(3C9HghqT#i-4uFS0+7%NLumBvwIAEu%J* zKF^3CS1%@E+iQi*!Ps4?p(3qThpBJK%$Z1R@9-ivH4v8@phMRotaL)MZ5YUGv{m=` zr&ER$6Q}D`L-+USjgraU*QBO^;`a`>lOVaNfvD#&^cT!JLk@#-kIZcz$L8ZOA;VvOWs*~3b?T%g6wyTE)dS;D^PI5JEnj35?s>jQCV5p(QN z$q$QOj!VPs*f$K4*%>Oz0I)>wt3DuAJAPuBA8k``&q{Ce2mUgdg4-Fl;cLoG$95(z9iFhnT+FuPgXTmmFkVUq zjGS;>Vo|$Cm>9FLHH5BUAER~{1Ew{dD#jSJgz=5Kd9~vj+jUknn%IF0%n-7Fh0^MZ zSvfP7yb5MhIJG(u_l`ctEF*_u7|<^|xYe>zCwe8xZP5}$2%In-%EjjnseMad41^2T z`QKuXu0*hyQ2{seTjMQoHE>hr8p47EM=bO)1PN{=b?`M(H&q5NQp#9p(wuPf!c$G9 zrx(AkoLj7cU9Kq-Mzb!jHjIyTLUL^UhM{!(X@_=0p@PQtnrl<6lGPosz_C?Pv;&jo z#3&Z0UnXS@j$elHdfNZvuqz#GW%xb+t;^5C+MTn~Jaz91zA>gn3*N4!R*Y zj2>s4SG~>FcAT+y%YDOuWk$f(JXAO8k{mzTyXAm^%Z!k%`%&)YA{2B%P;)82c3uuB zWhM{jmqE}`*0^cMi~?Lf!-~2xEKDhC(v+mipkLVZi8BYaK4PF0l5mg7MPa5!BYPZ` zZd721a;N!kyjjpjK&Xhbf^{oiZ1L_o#7u@sZoQw7G_681lQHhCI#y)a-OmTVk|6}m zGSFFjDY-&>;W$^1Csdq4=XjtOEyPm&^o=x1tc(IYvl2Hxsj04iH6jlxs%L+VRKuP( zaW)kbcCnn69(Z>^I^dd-->m{kDve8ZYDBjt#gq?o)d3P@6LX4|F1g&7>qxUN$Q?x^ zEQwmPy!31UOcoka6t8U}xa0lH~+{IBvln!Z%V>%Jy=sW3`jXb-|YwXDsOUPQaMu>5Ex4jKD> zx=Pb`(#B!nV}z{D0aTfbf{j}SYdG3b!G`psz|OSbW}C+cR;+H)<^rNi>>X>V^~6*Z z$$KIz=P-)AdRErghdARMxp;B2%TgCB>9nl&^d5s+SP>O2eFhQji8?XSW;o^XU{9M@ zk5d|pK@mM=vXor!v|Tn(qhQ?4a-)Tr8tA-PHn$S*w6Kn(6$Mt*K;va=Z!UNw=ROOp zVb-#=r@kP*GCwg1KTwKOHcqjphFe%;eSxQJZXxOA>yNbp!8Xv9Y2-jI7 zhMyoWP@@2P9OBmQA;m|G_EH7^i@yMV{$IL*KMQba*K}^n0|_qUT6rKRSf$XoGWN5k zvGV}+VfOA(@9}Uk<9p*kKFC}#<-v0;z$Gc=l+#lJ$T@)3my&4=V?LPwB~O`op#0)5 zIX3fxJrqmPXmbSU!V!RCa1MtbSL#AkBMc4>-eq#+Vc|e;Z)^jIWL6v3u;{ZKl=8je zQzc$)nuhcJ#fBu|K@8wJmR^TDLt5tJj$9ve*8b!8DYRFM#VjF-#PD4mZhu9GtPJEk z)vk)J4*0Us^ttwz^iOEk#a0sgb=j=tsdO8LF@-LJVS-Jxot-|sK8nJ!d|?aSIt?|- za@2QM_82jNY{cw%C(smgU;@3>RTW*S%KVO^!7A@u8y1kU&IPDb?Q+4b?Ry8=012Mk z3cdA!_QC|3LlvI=34;z=|Djgi1hthxCNfXXV(&xhr7u=ug6~8O3iBh5a5@ZseE@A( z)GmM8Xe2>E>0?^fyVJI@b%B5%wZ6&`!?r;~ae#^R;9ewKq5BLGD7=^$VW2nJa93@f zK{SwTHJS$~KvXghBUoe?l~7U-m5Y{Eb$nU1{8?&+(E${!5jY^fIoM6rjhHrtepupK z{Sk?}f?<6}&8D#ric(M;k?c20n<>{S;YU&A<|-q!_S$qWj@ih*>=r~NS+u`m5L8Vd zHaJh5q(8fuEC!>S5WZ*LbR^_Lu+uPFjajuwrP8Z=K$KiO?o!9m#!-$;rjqQahoT$A z_ej=H+3ri_p41`VTmbmjEEn9upaH&-{(^!mrrKxz3Xq5XX7<^ZEM8LY*~QC6P1f{E zo=-%4GR!JOo19t>?>g}I7XG*^EV={#{9hF3EJeey;D6oMG6XQXAndXzY>qTwV>y7W zXQycUk~Q;0$u5HxrjZkST(s>Pcx0Y)xM%Awwy{pp)^VlZg7KRdINInd%|g-|X@=Xz z*&HaxtjYyxuET3wjA+DZWr=cO1Y?cxrue<(F^Saa5*ZzsQ@dg}9=QY|4>azrsd4Q~ z%v${b^_4LfMzMOy8Byxl?HhASjw{u$uGvV44T+i`<|y2w)Sm`j=^CWFmg``LSs>b8 z#JgQBuc3tuP@7O++*A0m@^w@5Cr@kEUH(BdX#t69Lf^K*7EIfFXs5|8`2Y zwMbg!R=7~)@>%(c%MVTb5{RQTpYPwAa$fDOL?7Q&4m?uHY5*E}5qaJEbS&c2IAKnK z{^fm=hDUnu$NT4jj+$M){bObYz)Yr0ig+Jst=ykyfBk+3T0jcWBx5%|`zNm~;Mhn6 z+hh4N6e23x?}}skaCF}g$LiYw&$X;|mZwe8sptJyjLEU88F>dOef`2)O;0w~d8VT+ za<6{JS+)cOO^dWCUTephJo>^nj2ZhF>h+{1dC~U~rz>p1QxDy|(3xSF3&f=1kuK__ zpkkZy2j9O11xHSb!-I+ffErJCeHh>B@k^z425=<+X}#&we@E*!YOV-RS-YKg^1q0j0(weW?|{PY@aY zcu}YV?ejs8OE1DsOQQ_B-5CRgPXW?_dKJZ!Djz-)YpqW^wh7 z&(lfYA7`^hHXmT!t?zcA{WzSgG`Et0fYy`tT|=8_e4Q5&wNu_bEHKIr;}hp9EA~iCcOQ0W1y@AWrZmux~m}#_e3tcamF{?weU`J+=kXiiL?BXYVoL#M<@)exINTYvppI`~O zT?rBU@(@o){rB?ICm*qhHuTec8#Gu?D~T$x`pJ?VpZWq`fLi93nMhh)Swk4eG|(5P zdbp>iNGt2`981=kiDOd~$sB(a`DNW)cW0&2dF9c>FK8IvO4kvmVDk6H`ugf{} zQc1faXUB(PMv@y>wujK0DovpsRgq5A6~?}^n|e2iNoCrYZ%Q_ zw_rHr`rXy<7}i-M66-GV6N;+6mJ<)#$k3v_B4LYWZ7z3}@m)G_AB>oo)!!`v;#++7Tb^sjrzFfQSjp7XXX3lHwVc}ObZsWjT=fN*GP&Q zn2|-XRFg*sw?VI?pF&9Rd%Wtey?-!cH8D#dawWFYb9oFtC^$Dh9z4=GSaf$M?zJHU zNGTFlZjb+&_gYM5Ry046xHq9G=}OC%$D6!Z8|%h3mz6j7U23&o;{qmmj7I=D7-Eme zMjYJv_M)jS?sW!=+@s#D0H?)h1$1i3%uG+u;9%v*0r16)MYaL6HQhTPmSu#Yzt&n! zJW76hC+P=KuMTF9$5VDf6Q-sUa(lF?^#`c?w?5Q!2U1%CGR-zM0h6$*?fef_c5rpo zrWw7xd4OVQSzb>R(YToZ+lIQ7^;0EUua5bw#u-MpE_9{x+a$u=>%ZCXm{bF*fht)D>~~Pe3y7w39dZAa_|` z&Y{O1<&G&7PDtcuh^+2u(3;~8{rq!BHhsfpyVWzv;qRmfKNN9q&jfC;!}m+A%)(e< zAlpDLl2&(~BElHHKa&v1b@uNZgdHerNrZa&G5=JU6)dUW5@K^$c;-8Dsj2oujM2iy z{mO?V_bzY*@zG)|^a%02VPVW2n)%jPE|wc#wMN|3^0k?3>4JK$R1-`=^u?olktU5Y1mVkKF#I13AD5iMnsf z5T#!`AW9iW-`IHO1W!AzVC{}`eyO+7n<1sw(dd=eVOH@)>lc1w`q)9Vm#=qT76J^(_ZJpZTG_}*Iq+oJ~! zN8EbswWKahhXo5NIH@$n4DycXaZLfQ1$SLJ*S9{BOLzN&{J#UZ^c)Z6E<|MCEn|uv zV+p8LeMj__xmcw$3qD(;p(7a#j*@r)cK4&9ja&xat!$=lhQBje`LAu zsp=-iz)S`RY#MIGeR!w~BgjakX0sn19M?@*dhs&oWBNgn5UER@{9M#l$Ps_Huif-_or8v`vA12O%#X9bDYLcPdK< zf3z0%cv?*U5br2dPu=TS{mhN<4UP5$H4ThyfMCh!dibLtjxsLBa_-I)QwTis&Yw?+ z>s%q6UjQ{+EKrX$qXrKi`*ndZt>IWlWV!e)h|v`ZnVx?&y#dnf=STYOU)Q&Z^>Ef? z>9fB&(*L-8{2aV;n0klr9{5dMlD~)U!eoDjabTmCt-)@3(L1H>|8I(6Tz_fc$0-@KzQW zD8d|vWSRp(4nkcBHvt$EbU)pDrn}G%nBk5#623fBNa_9c0P^Vp7F`PT>6X_SYOaIX zYAyqBuNK(MzXym9a#*im>|cHo={Gu3E5(7ZH%EDIvlnoHSU-&f!nv7@@fSk;TQR#E^QO#b#RDpAEgA`yzH>dN17V1{GHR2&Pq z?gGE$W3juMJeB0r9iKUNplu-;G<=NI^!pQ9-sHEgm6N-5zCkiry}*-W8m>0WvB}|N z&NVU{*1$NZI7UyGoqiU)oiH@p4eerY{|Ig9<_Ut{_3zLdDZ@Nv?;jL^eC|A1-M@vFuF2S<=wRxn#rZt2lFO(s}VUQP5G>a z*Fc=s73TlrHb)#N?$}K%$mdyK1U3WhZQg%>h=30CAAt)WSK2nRgEk<|g+ldEgJqLs zjn2vx503MT==wc}sdYnJxAMnQooLaG=6I!cCA`TXIxcQ^7I0K~SpQ4Y+3{@AVAP}R z8*gPPL_pWcY@`B4r$HLw|!zRLnU#_p5*tCT?H5OWV z+7=1)r5_p}1)}1=#mEUyu5daKo(E&YXTWKf*cJ?P}I#Fq`TY zfi}mPB%h0MM>@qfP0Xw8@Az=1IeAiFzZ>~qGp$OMmv>YGs?&$BzVC2ZdRI+*eBTf7 zonOFlfPW(M1r1b=`PLImNX}wj^l`nq^=V9jA(Ip^n@9KEC~+DQ@bOsQk?l5}rD{#8(sQy!e>?Stbw%nf?Fu)VDZ6TzXDt27glL?lzh54fUZ1 zFH)c5-y2q-qqu~1C{KlERkjFcQdDMtdS@Y-0X2d=8ys>COYi1&KKPd?wZ4e;<8U4y zenyc?H=Yh?j9E9skaJR-?Rg&aKb<_OM@zR0dagU%)?0GF>p_Q7eD8D5P-IuZj9Fd0 z7ID@?lpk~8S^3JtC?mo^0l2ag7)RpG?EEh2uO@A!13#_V_Zhc;Db%OmFg*gs7Q6dw z7?S4*5Y0}eC*jtU&Yc=vmjXpEArXA6OfGCR*yKnu_%&PxtljIk?23^tIQjImxPql8 zW8X-Z_>3Y2Z7qIhq%PzvV;6@0Xqz{}Vr9!tUgqTEz)KJ2`b?D^Ixs+f?dOhTemEhJ zvvwsZ;@g1LX8hf@WX&QwmCPf@%|7+bvCck?aT%EgQa`H!>yJ0_Fke|8Jlz3roA-dV zF!5j3|1is(=(Q`UxgMcbv6z7UTFV6KQdaL98G8ClQD!_G>FV3>%r_0bR(&qY$7QJ3hj)wI%|KlurDIx4jA@SrE?$czW`H7rbVnpOFGw~) z%T4R693u~=qpX-l{@VOx0Ha#VUAnNKPi;Y=Eb0!EL3Jw@oZ~*W{VR}fD#C{YatR|W z@yGJ!8O5LB|KA>$MNM<~KHU(Toj5$exH4)AS$Lz-PoLGO3LkcPr$A-EX?$`KF5Th(e{2kv$4&c;Brf z(6rqww;qKFJRR&B2;D~L)U`E*(1eI?Vk-4D4d?M+Y zB8WKz;%;vq(rEL77-;$#3=50tHxm>8xaTgN9_r3RSmWQQ7^&V9KBTd>*0ft%+_@PV zanIghb-XB;;S6sn>K$iSz^^(DFaBECfERzKG#5i~aBaBXi z#f{fyq+CZsKYLlaMy3DqRNyQl{9dq(w$r(F4?c1)?EA6;tZ#~xUgkY`^4b$9Y94gq z$+#OEbfj^{J$#&oGEaL_tK3y6S5bE6ir6rNhgr*%^oB&AWDqW$xeeb`pB>bHOlUzo zGe!k27Xv*@8gKzhq;&@$tn6>Etj;TH{$W!v#s`!dOF9d%f5L|%7ED%CH?AA;H3ooOT;K2Mp_whCpPC){yl~N zG&869uiiO#co*<;5j!WI2<6Qfk0Km=n+yV$JfK_on*J$BQqJ+M22vd;5WFIas~1X_ zQ&Xz&S#YClDS|Il7x%q4o0!!U^rOCZB*b2UN(kEAAZvHb?vr+Gbkf}TJW7Wp~w{)Fp{HGg48xBadbY37>rhEE|{bZO5h zdiAal3aIKzP%>hIoX2i$At&5_b3v4vpbTW3-__iGt&&1z|ANO(Kz24uaQKQ>o9=X>bORhy`yL@h`TzZMKJHwX5WE`dEw?( z`8zzUyarpVfPtImfI@d;z#Q%)3c9563jO$&E=+Dj-Aw+?(XzctC6`bA>)y{XdQlY= zm)?eWcH9E;AHFA$F*kV-g++3((BK0+Jykya1}9f>+%YwYe{kVpZFmCqw;3pQ*RK)! z3qkxVIsCQ1{L{3}@oe6djZWa&gE&#sGH_qhP57XHte7Le(;N-d4Rbiocg<&BYy0LW zf_iK5sa)Vnk^`8ji$~m)X4t^$Q=|E@-fu&c()5>uxhOV^BZTG%1Y0-_Df;w4sS{zW zDJrGxK1Y4*flFobqYp8IgmJZ*&POJ0~Dq8 zkvBo5zZ+Ffk@F{J zveteZ#X5pfDZSe&DML{|c~WE6xiM0>ckc$codSNkdF!=Em;PpznH3=S+1<724KH-R zJ7d0l_B!N})JH15N`s>XVkZ3hGjMyO%%HlP6h+IsLoZe3^2MGE-T2>Gb&LWA6|+*G&5)LEYm z?oRShWRK^I1Esk_nalEaJ!l#2t0Y%o6p6hUe@v_U*!~&yLKLv|S~#%=AvWTN z-1q91{lP=sWv9LwF$fzp;h|iMJUm^o$SD>xk)Rll1yu&?f-}Lf-XObm=0?O4?IiRb zl;Axn0%cK3#r2C*O*@-Co^8T!XNHVFbV-~~LZ*QGlhBA!4XAc$Qu9DrfUd_?rbrcR zsT~cC=r0FKFB)qqVNs$}>Cyda3*c_$2-uFl)+%kv28d;*2sJFTYWlM1qJ0Yc@PXce zn#0BRQeUiFJ^*#ojhCkr*buYLL%<`DzV?OZlJ>+-0r6wqb0V_1am5Dz>fOBCZUG*5 z#o}EX)SyuRv-^>0q;55F$&M+GM&!Kd#RZ6HsW2~-YxLrE5wiToD@Cu3Sg`_`4PfAt zX4EJ2%6KU3aIvYSm64oF?Tok`45<#Ei`vwWd{ciOmki`S{LDMh^W$fELrSfu8>6%1 zo4Hiy1rGStH+j?{4DY$p_pFM38E0PuQXQ=0Z*Y}5o4r=fZ;O7e&c=iKsN5%Y{1+gZ zUNDm(TPEsFy5v#~Z{5OQEjS`3r@;$UV_TGpAt$cIy1a%dw;=yL{vNjAqf-qxAsYqN zXLMhDkg*26qAD3);eqDXm)brN!7W@az;JFL^Qh;x?Yu9EW#tO-QeT8x6#3?Yw)ykM zk$_3$`Vl*Dd6Y!rN6g;ivytylh#z=zvrjHv85kW!+_!4ksm1T65+Kv8@+YKO<kMJI zYwD9NAs=OiFF?WOt`wg%KhS(xiYmayBh>b4B;<r&5TuVAP!!A!@5Q?4nJ4MBJo2rS zo`aUM(fDJ)^^Pu!IasGC(c<FXxrN$To3j3xd0KnWp-YLM>aj&8W4@EO`BH})31a<J zS)6a%Q28y!UD*?+O9?7woBPY_7eSS!=D*UU3kwfTmPvt&H7=Pgx(QH^u}^CA$`w0i z=T6HkF1L1T_*i*yjRG@E#}~r8uFN(2Jqxo<`tt6wxCDCrF~f<pTY=tcuJ^@NgaQXD zPjp}F>^dL!(bGM0=}UVk<zmU*qO`=zvX*wD9lNzPKW|y()tk=lB=KfGQrTN_)bWB` zNu$6v7Mk&7K2cmQyy?K@IN~9mu5VvN=bo=W2&v>B<L2@ij3@Rf%<Mm52xFnsNQ3I( zK$o-CTzij>lAC~^X>k~f(;m%Y)gLcbTHEExVC}4O^I>Eo8qdb*p(U)%Kfsu#_w-SN z4;9i+{?{eTc;VspO<{}5GO=4Xo+<UYhz#0SzCO>Tu(ll79q4oEg?(Arcdz`KwSmwR z@<0@`Rh&=!7Sw`smT%dse%j}uH@Ld@&MwJB&~zN#<wYOj(_nHucz(F(58xD|c(zzp zS1Z)Lq;c!cmHKA1|7-VNR>Q6&3Ef!D!3nK8ACJHmJ2xdXV0ecj2i-PeMVI(TJXXbV z@mlGSm2rh@@#6eT>A^X7MY59+Kxo{<PGh8LSBQF9l(-c|XJCxohp9+|Q2D50Z2T95 zwD2H|XLjo1%M1g`cvBB$zhgSaJ=s)PX^tjCYzPRtb$VF+V|KFuw+AN<DuTn%^LEu! z&B*1=(F|a8U`Wa+8{ECd*IZ=dia99w_r77C7-$z86g~<Xie5>R38tHxi)3*?o7(0@ zx%v_k_4WCFtxx!Q<quF-xjVoBQ<(%U3;82lIauY1#L}btz-bVjeBjVb{0dvllwsQe z5z({dnc#<W)ql{zNE#<-yiQ!@51tp`;x!1imuct+0zW0!BgIsv64krv^kpDC_5A40 z&zGKwsiy<o2<{4{Ddg*pioWu%7x_PUu-&byW$Bx#Tbo6#n-32)?cCP5d@EdFYXvFO zP4sC}8qAd}dxEMnm3=0VQ8D6kEpq%0aIR4G7LFU&7%i*79C)PO@{qqvk@hl@xiwUe z5g{O2Aw0GALnUn7kxmHeFP4@GwvVm~vdg^ucY^!qPm2p7A+Puw7r`m5*8I$3B+6Mu z52D&((AEgytK2*=ZpP&)^X0qm+omY-S>kw>wIbju(*XOu0JuUit1GY7p9;wa-gj9a z<T~P3aAKnCzfEXM8`P-{GXX2#5yU6E4&OQx6lAB=W0#NIh)!(S)2w{&o6X&+6?L!a zi+69xod`D7%LG0K%kvUjHWhE#E~R#aT`fbgFMOkuj?smgdjBCwfq;Y2xS~A`2L&2S z`NLydcoha)&-uuwU->)!N0S2cZj>H^48Q?BUh9+Lx!5~<ZlX=t%|u&CoA;3*-_f3} zzr+lC#-{DCzQh%7ve{N5Gdym76eKS#e89mGZL;31JRGFBDN}$0j94u>%{h&03)bR! z?16c5y)vskC-4#0suP%{UU*YTqJ|rm3U}3xG;uB6k}o*;Z%?n+7gM=t#E;hevCJmA zRv%?EBTZ%fM!1G#yY@7D2h(Zhn+9IHj8U_5QU#;`gqPfVR_hl`v}Kf&kkws63O|-} zHhE!|#W1{e4_Xh*D4p~c#zn_xSM3y}M=k4&g5o6C-`V^9X`4Mc=tAkPu`k}hGVtdd z{C46?zwzwu!b2dgvkrs`^A+R|?c)5{-?n^&Cnr6XF0B*;i*p?a6c|xx<~yI!HwQ%X zfB5iWcio?`N#KKU!D?rGI1WJp^68$OasS)B*fj4y<-%LMl;p9yezOh#S(^E`U$Gt( z1|5GIBW^ncBybCKOaCBO0GLxXnL;KsUpIKjI4j#*F>XXa<6|B@Iv82-Sl|3GCyY%2 z{T96RYhA_eUEAs|-ZyKW@QBeKHV5XRAgTAHC7$CH0DdLt>9I-Mqh~`*W){0L6Tgg0 z`hLuzFIRw(oLo|U_WS*x=)%s*sB0g|FLkd@Eb%3M{pah#gN&p(KCjV_zWj7-<P0Nt zwZtC9yc+JMfW2s^!R1Uce%wG`|E1UuRgZ<i%C_V3^6=k7u+w|+w(a1spIzFi9~GZv z+_1<~u3%U+YYQGvV^Fn;KsfKG^d-O(G1-}!2WpT&Nsi+jhy}(c9PP#RGFpv8dny?~ zi#T?c9nHspbuA((B7)cZ`@49uH^}|WfjB4`Xd`trb9|WNLq00$n`6Ma#hskM0RGew zLNZv+og+dRlK;1j;=6{#q$G~;H38&@6yP4EX<N66@a@}J$^LXQNcVq^oKsBuLoSS3 zsqsIj0#8*H%~%#4P#9SR7&e;-cT_|8*7a3>=CkW^+4$o;>-XH;8ix<Kay*)uY>vKr z4nl;2-lL)iKXSS(9P^`A#1wI>1F~m$BBOmwZbRKNFh`kZ;{)5dBGlE!`f+x^$okhb zT<y<Met~hU_LKYPAdfQ=H3BI2yg_ARrjrKhrU4SX4{SJ45KNtCINcqjrsP7%8=Yf9 z2`)f_4Un)hHhw1mbTy8F_^k35(G2D!VsASA<zwK6c5Ha&&q)HWTkxGdGQXug?*q`w z)dC!=>ZgqRw|5s)Rww;{Mab&faKP-*)jDorjoBE0MbU1)5OR3r11Wu^$z(Y0(SUer z60oDN>h?IHTV&!s-<A24(}lf$wFQmZuwRYGZJZq?Wx<&D9S}LSD=CZF@QpF?wjU+y zloXRB4Ni0{KK*n3N;PC-gl~PE2^4L#XJ>UK@q!9F*bE%oih7vdD_egKm~iF=*@%hu zB<UvcFW0{ZhGdszPl%5AmYf)cW|HdV47z-VKl%r}#DPLMFXtk|@_o-K8hU^hh+Eb7 z0~|5XQjc+i)(w*N(4_`&h3W<kh~!BEk6FtXk*cQ^azQN#Dq8xH>cf6#07T4-e)de+ z;mknlLV(nig6;W0pe#;cQb~(P_=4VV7vJ+I!YlId*azIU#{#k(W5emtPvdA<e*8`U z$ydgK@)vkh<L4zP<1fr;zToOO6<-6uR^)aRtGFxfn<!^_9AS3Bm@kBQjcAUcdbH2# zwWB5F{q?ILo6ABnXW_GG&1N4clFcCXKIp*kR--043%+Ti5w>w=ZkhF`W$joAdL_pM zae?_G9(RP{7E59-_->~kO|a~P%KAY^H1F{3fP#L8u?#If&>HL#dQSq3UWyDSX;Pnc zKA7z}iW3SG5*bPA)tS)QlY$PG#cV2s3yYHNQ(pT*!cME4+u~B>a$66GL^*?-wWx${ zC`V#YtNBHE-R^p4RowMDe97%iH=~&iw!m~y5fyY@VEEuD^~&_^GboE4W#TKqGWruQ z^HtAhMcFxI!>b=wu9asw@H~!#;{Qk4m&Zf-et%bll8{Q-#ujZzg{*^QNs^_sV3JDq zCRwt~$P#6lq*94d%3Ah)n<%D82w4V$v2SBAmKihiTsPI{^ZovQ&+B<T|J5|zbKTcD z*E#2UpL5=4of}l&WFX(IS1kYzl?XD_<xww8!Q2?x)4YkX>nasHfRx}uC=OnhU!qiV z!p6WD!=-1S>Zg~CQaPrBGl5R1%_B6U1KlpDKXeCHvOf^|N^KHu`Y5OzTZ?Mhw{xv7 zO?8n9<kp73wm(Vh_+l<T29j=N`LDzGJ5Gx&K-a=-{C*Y~U6|JR)juSEnSDc_p7_(= z9J}DMkyp-h?pwhDOI%H5|1P_EHXk6yXA>4f=!b$GV4xn(vnZ7LM2dnyt=xddjSis= z_@ZOR_fRnXLX4YQyC1mUSFxDf1I8ikc^2k6P;_w#pcaK&DgiHX1{kRO6wWa}+SK7X z%=i+HQuS;C7<@;HGLx53?C$LbGe8~P<k4?eChmt$^qn{mp!3B|kUCsZq8&ni80h}< zosm=Rqg}pNI$`rC^w4&iGqSWf5bxKM)%COORK-Xo7Xv}@Y__`v+oY}Ev{LVOyb+4F zDIf%llTceEp+R=eiC7gd0jO@i!?@{EevnUIqZw7}ap>{(gR6VbeDIp;jByX1#)68| z73!XSvs3v^6WzCfBh6D@irO#dbM}HqGcg+h7quR+UdFOkuxgRCpK(<??^Qpp7l0Jq z+R(Zg4Msy`!WrYHwB>=$fu38x2CM~@)I>%vf55L$p#Mar)XlNx(M(Kt#l8GvbGV)) zSaw_qv2zi}AmGLy1I8p|H4RvlWDg>R78G!F`uo_u)u_Ot%nKjQ!8~j;76rz7qqXwQ zbOKLdF>ov^&DGh@KLTd&cbuXtwHNs<xusT0Ll#y3lyx&yQmY*Bpu;GCd-g{&yfFIE zHBJ4WjKyMHBa96FZ||WEp<wD@k3vP!D<X1xb?VMpG+ksKnhUt%5vd7xR|;2iJ37Yc z-_6k^x(Z9)o9pgV5l{8`(ND2=cK|3>nGLuU;}>wN4Y)BX3p^9fSdMlw0I|mDHs`kr z{x9YAN2MAbPlks-*)2V0kaRFk_+prurcZ0I%4Q$7n<KI((}IZn4<ujcoQo7kRK<Kz z&bT)r#$Mw!HpPwI^q7zb=%{Y&ITiYNFAJZ#fp6>8y)|2`_h>gCHds}-lqZcA77iMW zkS{aDaY^jg|LR`D@xh>(1<I3$2qcmN5|ri%-#kJ%JZd7W_59`%e~r@=cAM051w>zp zO`G?Leq^wzSbq@zA~%?kmFx}}uR_qA+eMl&aBHqlMPb09cDzB)s=KMU^_&RM*;*_L zl3TWz0}p2D;AE#__HEix-o$^<PE+fCAju1m){epxIk~W)66}2-fh54qHDZDr@Zvf+ ztDXqw+QxVKC4t;qZpA5jD-1)o!+zht$$EcH5tJ|v_|UjH9%MXDF!Y`t*N}CV7&9pG z1>~1Q28n$>q^KW7X&PpD6OOvjFPj-BZgMqIPC1-VA;Er3dd0h==Hp{5mY{*HFz44K zq?kcTIDVr%J7Kz>hh{cE3TKs~Z0h<qyAZb1NHgj+E~}qc`ufD=o9%^5vQI3LU^I4j z8Te9Z(|F)c`o#%<x{pm<c6wmPHf!s+>3#RCNzvX1KoTKj9MWm(<N*$ee(dWf&5>hq zXpjCX$q#kJU0kV@VwuFzx$*!|4MACYm>wa{Qo*f6G0{D$9Oz>W(*>z%q???Kv0|ts zkIXIRaS^s_fi=L3ZpOg;)Nf*k7m@0R@#38RKX;&$2bR({g7Q+mH+q#aJNVBhi|gP- zkQlR;i(x94F5Uz)JQ3Mo9wP(Io(|^Q1=WQ+vS)bl0G7ZHHgZ3=(-aTZM?S3)macf2 zhx;z*ZmXC_=-a+2C~e&1HgfZH<Nmv!iYSdU7Zrk;0DyKh>6HpbX+Wff{&Sz*1O*pJ zLF|3ENzAM27u|wT3*ahmYWRY1wLm<Dvxe0e&J=blk-&*1FCBTilZB7Js@|zWjJT@b zE){4%9H5AKdct&Y0e%Je>BgsLJGa*a&`-QH_3B?Hd0Q7eoN!>jXbNiM<2{#qHI~AE zhKycU;$+->cU(*KdZN^x+($`g-6H;&5pblqUoMB?_MRz;GV4A8@17n6$)LCj^vE%6 zixjDG%zgE9YU-5NFgv4Dx#o08+0DKB+TcpRBuc$aZ1nB%evPM~dv<42xink0BkCV; zmyU6M02!AN=UVcfJ@>szZe1nvVw+*Ev%ca8t72EeNI{h3y3GJTjSHLQ&5pXcH^^fl zqIV_}!Egd>a6UZf(FE_;q$nJ0$_px*jQ{ldWYy}hg1Qu~r7490XOiF-dR1j6O1c0M z9~z8c`JN3ZZu7}V9eDS*>15v7o*b4|HF-`T76@13)F0uZd%&~V9*Gl~_G0Mec<zmW zO0VsRE1$0Y@v_PUCu}losbPCUz{=TPd(0RPup(1^1y)~SxpJqbp~GOyg{9n37(;)W zZmfNF8szo(?&|f{8GzC07>zl@_#>MJL}=gK1eJDdlRAimQ_u?%wCyZVMw5hTMti~R zo>tsD=?rF2UhLn*sozgx?WxA_J9?Q|pV7W(kHT}=9aG}#n<ZFGijNha+#teT@Hvj! z?=1ocwP@_C(W6hgVDpamOPV(eI)5j9t~wVeZcw!Ev`}I!h==U2A7_38K+LUv7T3UR z(-}t&F6@zKAw9dF$*$dQ9;bnSZ12AorD+aJu4FOEtSS?Afd#@epBu?PieMjdRE&*l zlwWVqeNQU~ykQFssk4WbL%g|n23*!7dcCc0>F#Gxv(YxD4Z$4}9}L2ys3krT5gQk$ zkwi1AK0(;B^nFIzqmEPlKXr;C{t<3~KDH~n1yK87+K7x^Vxgl$5Nc&<drIAB4<?us z(#~c)`zl)NbAh5)IbiOc_X9h*s5%mXSiRPsU=MB$AnC+-U>Y-+8)o|DY5>R!YecU} zV!4ft`7%ObWYhPKszs$#IZ$e|-wfR9^xF3uHp5grdHWtqe#OT-=6@G!0mET(o%?x; zx6%0bThR@#PbG_L(8Fn2_tW?pKCz((Y-Z7sdh;)X_5p;1y$_?gc#-KH`Sc`L<bgZ0 z>a^~VZ-M934;C0`N0B)mH&pviXjhFdDqZ^$uFMEY5=|a6W*oHz2EjTSKqdxUY!tNW zTbR^A3c8}Y)|Y;<6ZnL1)IGaTpYEOq)UV_VM;ZXHVXNtj=#9mA(xxU+jqN$^DVn+m z^Wi6$w<2=%e{Hf3(XPCM*=V+Jw#2mw4D#Jp1NSi7J8S*fQWiib1Gih6fzzRdD)?7- z{ad_PjnBx~<Uu%-f+=<k%MrPs`MQjgaMI8Pg#$%9-RukweL<<Gg>k2H4VvsPE4ws^ zwP02TOaO82a_9^lR3~MksF{fI**$;|aWkJ-wogK>Z{!$$dYT627sU=U=5EMyu`zeY zPLkHHzQ+83W;aM{ksoV&q~QplUhLQ?HIB41sOq!xgVVd3=5VA=z0C}t8R!(bK3{n} zx-GIZP6uvV+{kz`ovG7?jChp{6U2R|R4;84Up9D*AySHWpzuWLMX&EqElWOKQ((=0 z=AEBsfMnVEh_ntpP!Y9LdJF)Byudi0-%}aAVNW&gWnSHxUi%JhzY5iy;`<6YpEbtJ zs(lI{OSMEO&Q}<NC|jj%&%JP>0&ewArI_8(O^4V^eFP$7&U3-1V$SmcB+Yum5vf5% z(<4RhwACIDz{Y3)1s>!ue=2VdCArODtS8^W)Is$5fbyIlo4?(RUl$@&{Cf;x10-@_ zwO3))TJqwZzzFrj+|Lf55(Hy48DD(;&BdLfQD-uP`8Wjc=ZIC8uRPJ#2KcjBGVip4 zjXqIoNaxl=ZqX9r;?vE`ZW~vl`Pi2{7pJ;bBDRefzod+BV&7hpy}Xlc<gIeC>}l?` zI}cmctzA-Ykz%#Ve3p#aFnHS}Aco}PQACvPy>~EmA!%;yjw=Z0kJ)OFA){Qskf^u; z)v2CR3k-W)Yj?j$)G(C5z+OAavl@%gj+j5X$@>geYEm!=FA#Ji(!Z|FYgtgq0NoaV zFBP&oQ1wL+V+!c2;V#^h{D7I+CL0h-w{Cgavg*V0^j}KAM%&h8AJSBE<bFU=>fFYP zv)6{Sx;q;vOES+%g?q9errjslm-cQCK5#@*(@CvXcXmq^nze-P$gcKr#TVUZcE{S^ zUY#A^RGP2|;ElIIOeN=EV>d>~5>u)7K9IQIQcRg2Z^?53lKslYJN^iM<^WlA+mtq9 zK;Xp)*;*1*Z}Cw9Ok)|<tvLn*;L3JuiVW9O%nG;|+`I(r$wkcVc7I;&LJp=6+u@UA z`?;P>t1i0AjH$R+@pE(%?LaB~#Ynx{_=BI~EmuYq<;U=~y95kLCI_oNoabovv3StU z6~m7*h#E8CyMI-Pn*7UNPg1|v4n7pG0jt73evHU)$WNWg1(cJsXzS)rPsK{GV*=Kn zjs)BUWZLO|8wB5c_vT8%O@W*_3n{TVAjH-FvbegmPBW$opQ?1*uZP#q3Fcp4(<6o# zUfMein7U{8)Z`u~76ZD4X(R=IM)<mz@!~1&w*~#BU41(6L^PKPf6+#LW2x_7)C6jP zF{i6>>Fo)PDKf)udpoBG!AZhq^YwUe_!@P69+ATA!#v)KlwuCtI`WJ=`cSvTGX9SB zRf89i!!L?OM?E4B*M;AvFLJr@UmGksYOTPovrm5ifY<U03C1chX@+?c8`X|Q@#$Is zNS;xWX7>xsT%Ym<b>V@g%im0o@09uz{bM5BOUACzwxP*ian83DMHrzGCvG`txrX28 zBQh6@sdq%&BeU?ShlkR9LmE$9DEYV|#tU1f|I+yJ-RnlPLX#pFZrH2a0vLv^w2c@% z8O@^8SbO{fNB1vsBT!KcU_AOQ-j&=6t;*rly*eAMnl-X1P9#Sc1pnr3&XW9QN~bl) zQj7R5em&CtAZd%c*6{S#P?dTB1?>s2YN!?gGq;5Hz5VcMKEDzSQaZyG#vO1+bf46k zf3!9e<dDWHw_QPq)Scq+yOdiMi&vWQ>BzsVil6;A#0Q3+io>L~f$RK&mcHOMX^9lm z7}xY8XC8*EOhYpWVG(1-t76pQ^1=r?@EhmlK<HvMEnzJe0q!+Nw!go4dz$dz&Kkx@ z{cz!j;yQfiZz8=`I*@i+Vhrvxo0R`L?H8!0O(V&$*=LxnVL84R4vp>+QvvEOQYEtk zz@-3!(bGBa*K9hz_UM$K=ReEx{s(voV4ao+;rm_ZdZeJ#*4w1nvg$ub*hwY!j!Pr0 zI4xI~{{RyItOSfe1VsdEw*boke_b>bnX8<K|BnUyUM1=Bpg<tK;M=DE*Y^(3Z(#&< zTT1=kzb7kJOsgT;#Q$#qtWVDbH^$p_5Gf@oSw8?o-VVr2*Ky`SWTt{fU*W_51>b#$ z|5!Ea(;@S}EdKxR#~vx`fSGM4zxmWifxJP#=Vx{r@=evY1!!z0$m*v-6}n(>rYcKF z8WERQH{~p$<(grXM!Mk4Fn9K+tF%#m2w|C2M~ke>T5ej5!PW<FbICtznI>_jELy=g zA#A{+W9+^;Mufj9fY77X@oA6_1@mz+P4P#t%8vCkq%)cMQF+9N4u~v;AC0tnYq>^# zfSVc*Lw}lxF~uzxyt$<nFbbXxA%VZY@>86M`?_=-ghy!~l89O@b0Of${C;)|%~-UB zXzRXV;?z$@!-ibBwbgz6snMs!cw!mv8%(N0841!=Y^I2}*4MlC%!3GX#-V>duuedX zpZ}R;R1&UInyN49{D{iU_N9IqLL$#~)9+nAh^?A;w3w_{1#b;Kcc@iC%XR-NQ{u|+ z#ioemB7W}b!2Q>|U)oAD-nFFvw(p&1k3X#=)#TUmRK98ao%fy<&PJ~o@y{=-xfOQe zB$gM9&HudoTrRrxJo%sXg|DIa=bLoU>Hd9JR|?XV+wXvf{Yd3GHGeNL51qUMb~66- zPVl53sbv4|bH~>fi|JGtpBqPDm3KBmpIUOSFi%ybg6cW_H7q_&ItX<nTW8MmTiSb- z9Y&Nc2Oyn8cYB;{los3zjplsv(G8=m-d^$2m@6L-6_WSgn<C!LUH`E^GLihdg+ob* z#9Q~)v`U(PA-+SBD1N%i>lDTDWQ#v7dgHYMb9&b9!cofNxH?vu`gOEq4dnfw+qf?C zc;BbjfwUFoG)<mH39Dq7#49^OCB0<;1Sa%&fjXcSYT)9ro8Ox!cSG~yIY5O&G1NV7 z5&Xj(^kSDOw3yxzHLE<NIu_?|>O<WwEBX3e3qq@TcX12>?11M9eCT#s>*FEehrT3_ zo=)8G{CN4h?&Vq4zV;e0@~`{4j-P0;?>KR>h8Z>TFHr;07|X7`G?<#A0LDYH(95#} z6QB^i`F?>*m^N!LLg5z~`Tc0mj{?A9om~dVWfvANU%vdB&`}PdoFA_gM}vGGI|t+b z(;aid6~4xLmqO;ROz5y4AILzqDx4?H09q<h)>|Q~09((QU&o5wW~JK;1{|QV*p{S3 zczWG5>x0mU>z!hdba-BTr}%S`H%muJW5J^Rgm-YOJdrt3nSmU|rT>UB`Jt9>+ZR$R zR{VMPL0zOzUL4fC!!lq%<x>FRo}2Wixk1?#P;<UQ011g2M*+^_OL^Cgm`k7xYYdb| z$+hAL$@%9<zpl8S2aQZ#MHZR<G?grq9!lMQm1A>_k=B!-f~Hk|yZ)zMP%%L(8uO^I zE9xLo?DYLU+E!i$E!e$X`cJ>b%1+V?ZZ^JBCe$3Q$o)coFG4Os86}%M8H~PCNEsLW zqon^*-D|81Vhf+a#7io1E6C@ZRbTDBrto=ss$U2#Fi-^Y^kB&Eu~nXETqUS7Po^7W z$z}kIn=M8H^%^Rw2aOGfSmixu6;H^xSFNPH0%N}Nvq0tVLNh^F_0Buct&k>iqPR;3 zE)A-b`T!6J%{xSnm1fvY4FeJ?^7+p{W$#SlZL@^P%qLDI{kz+nJ#w5XsIH<tDv_1n zyUsqXyP}m6?8opkc5g2kO4`m4_T6^7Tlu*1u>A4E>el6=%N1txj<N4bNH@igE8VZE z6hXI1iOjTT#%;ex!E4%Lho+OSUf)?1Mv!`3YZ~&&hqR9%<b~@8)c^{=SSk`MkY^!$ zz{jhu!lX)Wvq1XA*CC#|f5ry`gKNQ}lbdGwmq4fSFGs=6)5uk*#+|X{D^z~W(gFj{ zD#e2L&C;O)Z{ksCDyLT8twY88UP9#s7~#X8LnV6p*cpYlD-H$N;zf%ukG3ip6{Z{f z+d{(VDz6}0oG!Cw(gZf6VOO_`t>R3vS`z?pZ)4m0wj12ni}S%)9%7YQakkY7`LS4_ z1S+gztjkGD@*@t$$aQ~cB2Dbhvl>3h$NUyuDtneftjO1sU^f6jJwfe2bVzM)JX$Kc z=h)3i-;tLNcQ>$rs-;`m-aCcs`l2SHa2OwNd9VBq)XUrf1q?>jr5~Sw1iYhd{I%dT z8=O^C2k!3BQakZy@^XS#bI&W`H|Ta-Z<~<1D<6}HRg9VhH^RMmaH@!t%C5h9mtQfZ zH_G!JcLmg0FFdag-S(TmColpMQ=KHQ6W42Dvm=esm$aPP_A~ISB}md-!|YPHXpvyh zV==<X91KP`emVioTsceF4}xzAoMsvE11Rpn5dq}r3m@`=Y_f^mfx8tO2h?@Z>V}wW zOWaKPQ&<%hmC?9?#Sz_VFj=R4gmMg|7Dp)pcrbfI!3q&jC<Gd+w4N_pYFjq*f;I+= zAxhT1Iiw&!$c5*C2?kz~pS}-xu)8Y@*?;`u+jaA}bN->_YQj}5N|+8;o@n>?*Q)uA zN5S=-Z_b_uyGQp8)!F6UcQ2I*4?=Yz^oIBsg74)AKs_rM-YAgTz^LKXhyu2iv2RdM zp|*6)Lqfw47|Mr-Sph(*Z9qMmQ|qjome>RPCqv;Vb_O(g*{BAHAc^RphyMJ^J+tm3 zD@jQI$GHSqn~y@?40)}u*gQ+6t9s1NhF(wpg*MIdJ3454@|)6TTeRe-$^cRk+B{07 zs@rR&M78t)`bVj`k{3Bu=q5Z(D8+WPr|80R#l0u4gVDmat+Odyf)$N;WMdgr+wRFV zu2@e436gen{1;c_vgsnig7Cgop5SRoYh|gL8-)F7p(?wVAD*+y!WZ$a4(bN27%KL? z{^sTQm~q8*tEd$F_?Y_s8+sZ{nP)mURsChS)2kz5m^i5T6Vn`r?GK*-a1tpuNJqW| z0hQL3k*nz4XL?(0@#;@?@jP#7XXn<u8SuN$Fbv_wRKy=w3;DPo1u<mAkl(BQ%Y@H~ zWwP6u(T}BQ$>4S!aQ_l)XnK-AdZYZig{dwJR&+HUY~#?}RvH<!9Cc#M>4~!w38H-l z4}}_G?Zr^PlGK!9(+6wL6Ea*QiVkx6G!hG>TU=T}He0i7cM+Jt^X6u@0pA>`pd9lA z*hIEl*uBWy?HdVTM(}(wUY7g2nzcXZZ;bcA%9r$S>fK#@DksmIY)b`r)i`|-Km@~} zr<J;Kv<NhHWocTHQgBUC1!2#yNP;$5A_IxXWz_jq4Q55WNu5yyxWF`mn%0^%|GoTf z60x)pLGa{SMiRQ5&!=W-z9zH>myjNq&6bQsks^|aVlg}~BsVvlIT9Ij?v5~$uSPPh zHuQGSFMr-oN*&guf~ac~*B<SD?D37T#LdTN|45=V!RcIme2?@OQFk^w&Atx<KH|%9 zlga($Eeoo;K4)0R-1{_o$tUVkc>1*CN%xC@@AoJYs0Ei2+)Lf9#kEA^JukzCL!*nK zP|VT2Hu{Q?KMf2tIb~0L-;jz9_*XPE{6|9cPiJ~93@w`#)?Sa~ejXf@knug!xJs8j zcO?h{?T4~K+EVz~dCZVsO{O;(QWAdjjDUDBGp%J689)cw%QVmfa|yG53UF%2d;0Jj z1TvwXQcOC?^bM<BFGlFemk#aFM92jli@b317A98a*FX@P8)lZ>>NI71qaP@x@!c?~ z7_iYTA_)c3Y`#}Yen!$|$O`gmNuo>)!yi;KEa3a;OXO^5Xd*OOv*$s09`|TbK`=8# z4rk8ejLTNz)sj__h3m5XaKDOdFdIwxmnKo~goMgZ5W-slDEz$zP3bLFr78I3xRy8K zE<_ch>q{%WYTXzQ*+iG!mrIwH*sc#pU2a2ucHSCfdrY=$8;w#HN~8=Ib6HYqE0#sG zJ?>mFoAnJgGfRt7VK<YaaZ?qXB!-lhKC@RX`X2M-)wQdT0cD|t^i!c=&rRAW(Lq|Z zX?~>|KcIdgR^2BOhlB=A7`yyQZS`X)DdIl=vR|Dw*Ab6p!E2n17m{4~9jrKurLUx@ zh)s8{Xl<q19B_TI+q>tsVy*Sq5jZmDY*FUE=@wk!r~f)^Q0NOqlI>@z&@p7kxBZ?i z-g>y#Wx%BR5QATH5@kb)SFT)1APA(+NIW8e30boCk+XH-s1>BctmZ(wx<HTAYdDyp z7av1MCa;iayQTX1v+Ub6b$wQek&p0{&qoD%*z^~(txJ!x)b$$%bT@ADJJy7Ixx@qK zpNTK>33f5<od@7vCg@U{6ojottKLS!`92LqDRxVSe2$+66dh*8)rM$~O?B}ndti}s z2I{5mdQStqn$bUvWcP_Js4T*s3EzO**T&p1-k$Nm27Th^b_saZ2X6-E{7DZL2jS38 zi>0AB*X2?t|5>`h^8|GA8hL56Lx~4nnTEL#CCoajq_xcEZL{gEZR<X)vJtpN`*=th zjPCIX&`H9u?6<-^ghMj95W_`pnYPuNojmBLN5=3hN_RM6ko$h4@2Xo<7pM%?tNiZ0 z^WO7QqU1EZsC=DxL7eN`=+qEpkTbCfA|fLxDp9>0gy+PMe6`zYu3*&I3(t11iey@` zr5Qfz4s@ycEevWn<B9yDd)eAO$9#w`xRNMyIyVV6*?8&>8`|`msGGy{0r%b8Ztek* zdOlA*XzAS9xP_MdqO?Z7Vpf+ykqD^=q!%me=Fr{}UV}Q82b=$<A2qTxe#QTusD29^ z3>K$(iwLaTr~uQEMym~d+37EwciVA3hYHwN1i)xWt#l|Yjg!lgCg{NB`8q8aSFei{ zg~hz!8fe}vHI-w+4(iS}ri?2JiXAy$1BJqw*;N^YYeEwKyn#ImlJ)ZHW2Vk}Xi^a| z<3S<Of+tue<AIqV<ml22$dlAwdIm?x>JmClO+{I?SdK#n-I_%lM&aY861_hrl5oiO zQA~l(EV@H5f#5W1lPr|olPpBTm_@PSGwV!nmSB8M<SOs?(Z*QQ_-ljF@g{)q!4M50 zQ$D>XKye9`JlAlgNp)0&!Qr?vH|+X6o?w4>XUc|}Nw>Dw)5s|>on;i>7c$@pxFD(( zZ0R{-4O8QOYoW)-hiZL$5*}dQl3D|n2|I|TflR$l_u|i2xfUul5(96Gwlb42if?-& zeLt%KP8Iq3t1s`(N0u^%y`-^8u);^8<jXs#C9!z944xGVbiCGYj^|c7alpetMs@Ab zA=gCvAUsXz-eyLiS^v#MbM``?lMjYLH)G7ksx5TIsIxt{fL*JNzZNpG47dHd6##h_ zQNB0zw4x>Shur%rF0rCbIibl`iZzL4qcH|zW+00kF4BS_DmuWcS~n)IC}t49Q!pxn zb0`vznp?!U|B#wweU`Wm>s|wui=NVpJ{P6VI<IuKJ29q|yX}QA99~?N=)l61rhB`g zK6gdi;f%gEwV;>1qT<o-h1^(ACwiuDe^Q}rt*kmGe^k#UlTxE@$(FLCCV)UyZ!Z|R zlCcpnA>5*zIfRVx6_5!=fpJL{iFT^C_IxvgoALtGtv484bqSl}0C7q2woR8J7weqk zT?7mOxx^0<>-|SOYT{ciEkC3!7u+YOZa&E0?%l30=B~{eAa5=w9`Q77qkJh#E2S$s z5qowMYP5IyX^xQb#19uS-0D?`3Kvd>7pp$q?~JR)c3n{R^fvm+Pk%9hZT*S-03<LB zVO@E34%lhszaT?JF!RLPu4{=;;nS8%ApcYjDjFC!g2vDlduv}WHEGd5*oFzpuup=# zqW<wg-3=**W1vw4D1MxqdsU90RNt(+mezxN;ruj$6b&?M)!YL;RA+|mod$T6evwQR z^alo5H@Ct*g=<u_)Qy4JH&P`rbVI$aP>(C!I%vO|;~G&*0j-zhS1P)`X7J%ZCen-f zuqdO9DE>hoD{d@`;%LE>L0P--|HcjeC&&~3Va+!Sfdt8yBskyRe&HASFvR}-al&`h z108*j9E9E1&}D)f^`xp@?smNNK>%^HgL!hz_7fs5Y~aOIUMVzej=b|l?bGH>VA@s@ z#`j_vH^{EI|JtbaCUAI9`vYRj_UT3%)WS}5D5yTJy@z^BOH_L;3eweqw>dQvOVckY zWi5v|?NM&OWR-rnvO1%P#BphY=oCzv{<HV7P8JzX{)s6PQB}!Oow#*?<q`?dvAL%C zUm8RF#aLXyAe*ywKsMEJX<zwpFQD?cb?5=N3t&Q`Er=h^g2QV7llef&w;P3Zkc(>z zzOx?5KnR%C4`e3i{{X_)L8tY*nvBt3O*kmjf)S82^+COQ_3HFiddojZ$38FutRv-` zF3u=TMT>Fe&qGtXEgL9VwN=ih@5NO9SnV}*O86kS`+@7m+{%K@n}2le;8xmwSq(|a zgQxsB8Sf7+a3nodz8ezo2Z@60#WOC7hDq?+t?|4gOa+3W)?(v7mV^5BUw#~*P-)8R zu&$Hbm}zj6@P~KZmdOPGZdx?{xW5qHs?~Ri1a17m^RD<t2$q2?(fBo1%35G|JqqY{ z!8ggjTfPo!LBc!<%Hpspc3Q5wX+<P}->ltj@$msxTF{cDRz!+@`~P>eaSho6%!9H1 zEJ<Q3A1J4I62we{HWri_KGM}eS4NIy?=s7#8}%a_C=j~Vp4CR0&Tld*d~<88+#Dmk zLb5*wHt#>t#-IP7d1>#G;9J)p=fq13=#vIlY;f_e*^ujB#W)mKSbSNv4-&e}q0<o9 z2tlm>f<gaCe=6?ouE~G2ZT;23^IFeMMd?)@82&fDcJO>X<;N>N2y8szR@j4cockBx z0(KODUl1s#y%tIV5(oaZ^5_h)V5a#>MfIGc#m8>?KhMiE@q>{sOVZ^ZnZ`?B|Ic#` zT~oCflfRc7?<DmXA2ex3xAo9N{G^^2)~-RVo3e!sc(BMXUB}wZk`>MyL{**<RkBM| zn|K{Mk@hX3&1_Wef`Q4El;~He1U09+sEM?f#c9d%r6!_E&hOPG=E~>Su*=cHhHMi# zN*DIA>(&S@2mnPqak9Ab1neP%(_S9ThYuGbG4TW$y8oi;_21%!fa>jCDbJUuOus5a zr&ofY7YkkAAOmD6Jyv`QE4~h9zJo0YqNkm3%7tGX(DlwFF_mJI#g!=!bJy-TzlxKy z<8kl0uUia2N+v;Q+ks^mWteErL7%osK}Hb5dp*{F<9*>@8)pdyIYzCYrOqTc&-+TF za3Jvbt>DN&|7ZPuR(ENwp^+zx9MJ=qcvGBody3c!gcCbGY+{DE#42ggMe_dq+LJ;0 z-`)NV7}Eh@{0J9gm}TN>xCjLJ8)4q*7OUPDN?3MDT?FrM?)oHdYW_ISUs!t`2LgNd zfzmbl_cc8KZjW>j^QS2=Y@lA@Kr}l;P<rP=9JBj8w7u!d-<*jXS{$$^i@s?s0f7I{ zFS?V&iZ5IFV`H5yF#fcC*Vmr?c+Hu`IzjL8+A==pZ&a~sPYc=OZDrir1{tkL(cGf} z%#WVF6BmQPNw?N%x)o+EYsq$`ELx%}0%-fvm8tv75Zz+MW6D|tiNCwPj;H_ErU{t- z(Q>o<NkrcDb2ztF+%)5C5#0n^k|02a#h}<O@CBF+38b;I6>i$vpAR=G{Fb%6E@<c* zVSfYwNo#$dwsgrj`!ANd3jdc$x~+p2I*pFyYfLrqs{JkFbtMtuM_1$n%m2hFwkij* zalpSoI|N<{m`d>Jx{M(uGIz~0__OxkC-inRytqD?xi~n_aVTAR+<2yB1rjLaUU#~a zyelHyW&PH)zGyZ2%E$RNt^7wt*Z2QqQTjeDdaPyq#5%4GC0M>B5jE}R*AgsWH#5R; z;T>COnE`s}kGB!oHb#X9Y^Hy|#I&<tMF1psXtk@|ZA_p@sDM%VSm4S2QUCuE#Ok*- zU_YH>+n%I9L^Ymc&DD+|W0VevX0OahzxuKT6COTcFu>11>acjkbZ|g0VE@6fJ)331 z*c^^x49dqoaT2)TDdN6<WF8W+Qh+fis>y2t9F@PP<M+;isA+v?-_NZ(G=bric(;1a z6`3}C6KIw6kB10D73`Z4iJ<2Is%Y1<J)BDyfrAS^xhHY|<UuZ)$9g6qStpodoH=*D zs3fXqJD}KT9WeU_!l0-zg;fsmF6B!CxTbA<vHfdK=M1f>_4rz9C&Qu)4-lhui2`kh zG9Q0W8f2x`)vnxi?G(st{asNFlKgQE=_O|q)Y745Wk7B_CXUE5z`aEe-+AjhxNBkQ z67_}eusiErAHCEZ%Xn!{ULAwC?<*&^OhU_bo9(YY`vS48230Bwdb?9UCqE5lvU0C} zoX8m$%s@85*76Ol;Qrbw^FvXkG6@XIIN-2^wHyU0h_jWfD`(Y7Xn8+NrI{7tMD}xX zgnw-R)~*z_T2Yk~H(PwEBTGyhRwD&IQaVZR^E?+olVyD*eDzdqVH}-#BRG%7`!716 zTi`JIPxk~bBtfUK908v@Aym0|kNOhJIMur}va~?%6f0u&{U)BBURlj<bL?=7>U8sa zI1_ibyWsq+4`Nq91q;VLV+E+sSQGZ4o@C|%uDu(>YAy|sID}X!suGQEj36?D%WjPl z&c>g3FGlXg()}<XYy;qF&HlSRH9-0QOW*&Iz>Yi<&)?7x7Yzmq_8m%jbnaRj@_>$$ z_F{vpQAhk*-k$PZsR`wlQV_qYr{0|iDxPUe?~UU!0AJ$xjm{sDdyl;)wB?PrrcN?I z3(MJ|RLSOS(2>~(Zb(h2dGE`U(|+y92$*@C=G+0L$pO<b&nnppU)htZCqSoG9MrYV z^e#;}tpq4U0A-@F2_P4`#OY%PHC%Ycr(#jvs>laH+){U5DolNz%*M?emVG;sv?k4C zFj|aLCxg?oM=m=9S30vrbQybhX*9vh>`XH&rnbC|^`cl`G=P*(Te5e**X79V;7Ti< z$QibpNDDuwwpYtN5}YIb9why14QE>ejA_J~!DTi~8@U2ABQu9^?G7lKpy(z88?NwU z%-etjhfZy%oB;g^?w(7|rTyM*-J|UeXr`biS(w;ZtRo)4IEH9vkv&H@QYo<2u<qq= zSbdkwzAvWj*Q1wG(KLtA&Q<it#|yE_Rc{s8#TT$eRG!|Ep2lod!o#1#&%-?F&WX%C zHM?>B!f^|D>l=8{K7xKOMnxC3<deA-Q%ofNu#wr<UboA;C-3u`vtPHDkQZOK5Wumo zyUCwamIE1=JY14>%-yH)ySj6fT*K~D`?yu^B8FZc<CmX1#ldwXP>&-<Am*X=(3!xE z_jej8jvhA43!0|v?|d$I=@q5($%n&-IC+DKWP0Bv@(0f<>gy55*IJ$#epbY+nXIf) z46&@&(<>pPyWIVJ!st}@a5SPvF$(kJ=7N1MfQB-Gu}BAc;xyn3PNEZNBcXXXJ3HU6 zycB(ADc2r9fx=^8*?|2k1LQIJGU(DT&&VY2mb<+3av45w%Y8tVu=$tlyOsk77EX5J zwH*h?<2Jc!`_>q%XC;yCLF(>u5+JSdLcJt3wVJ{|hWbd=vCXga`H^`#%eBYC0@4Mv z&PMXldWYLL$PURS`bg%y=KHzl7A5UnGw!tbLKt^A-y;0(kb65PFH=QsQH4nNXs3N5 zZ}L*z%DDqwz^GjcVIEq!A;-IVmYX(H##)IsR*Prx7HeF}SxuI$dVg7gq0r0AL|r9g zH~)&_{q`x%TzQy(cX50+N+)1Zopr?(wdl^ax3B*`izYywwL+(BQQ8q{rmR+$O0#X` z?Kg-A{3v{azikA~8$I!AjN4^Eu&R7X0rjD3xe|P(NojE2y^>$9PY2g;yRaC>GAD?4 zeQ_Y&>2N0gL>?vPt7lD6@rgctdEDgD%N2;7U+CfDeN^3L#d2jkWJI?qNnADYbk{rn zhlqnWV)dm_=_w{p9*da1cljCqMd4ZA!w2dpB>uS8nJ85G1&t@FuJK3S-~ii%uV_U< z2UjN_v*W|1WVn3-$X{kcXS)f|TC}}n0-1G8^DXC!Y(gi;-LC?Tl9i^XJ{6zvTD}RW z8M--QC9*^%qRtq-fr&fMco0{JP7NLi3v}6VRZwi&LP(sKwHc99enXndO$85n?!AFf z!8Tys*%~5RD*e23n^^#$-+a?BbEC{*F)&Q`l}kL|4)|q_g9jGkuq`a?g@lG1{bZk0 zN<=z0H8+-(rsXw(wH%pK-$)P-`xwbQGyy-X{)TzIDV|0Ti(WP9tLsFs_AFV>SK<zi zk$9EiZ;o0K&!bDId#Nz1*JiNJrF)w9_<AlROYFTm?Bb6+wpyJb;52NH_&JzyXh@1} z6@FMVLu_@fsj!)xb!D4H8K)_?xVrGmq2TSB{5jlg@2$mH-R=vtB}NB~vpZ@w;>_La zfoKYXiJ(rYFy)>g9$6fSpRmyAOVuUu%<84f$IMGTQxHC2H~U8R?xh4*h1E*h@^g9{ zgGH5{h#<1yYFb&Y(YnMHQb3~&ADR5pr<@@ZcMW++Z>~J^sY$Yg>WEXf^p<ZF%T}2v z!&UPG@y8`8#_wI8gbeu{v?u*OfKO+1o~zYUJJr70c=x^s-8ApuFfIR!A8pDnxDu;u z0Q)M$anQvA^QjvMpfN(vbh~!b{i3!s$>MKg-f`uhu)@kNT!&@f#qe)oXfA1eNTih$ z({ZahGiJca&3KnZ@^-(IttcQpqRCgeFwLuY1ZV&)eoGHZVvU=kFJt>n;=hgIk9H<8 zm~^sLV`JmyfESS{Y-jYAhfsQRX&$7q#`oUnklCi8y9go4P<L52#{P&P7JwA$v+p*2 zs{Q_f)qIk7oKfjRdE1B10SpoTbU-ulp`#XAN~rQ*$@3kGF<7wR&#6`frbUXF*m!fk z>NCwJBgvguwc_=CTiCR^gkJP+%(a~~Rzr%ZlN}Qr-jA2XmOs*3^I31RaP&jIFP$ep zb1_~XB9Ayzy;WJC1AAG8w4kE<m6fXjSFkOnJN>T`N88ZWsLRJ68w!_}gwi+HkkNGh zyj+GdAI+>o^DvvnSG)Ft>5T~q3~U_CN^{X)w{qd5cN-SXVx_?^2GrZb*!T98aMt)e z3M^0LPv*g{EV7cdDk!>uHc?{U`1VWVQCELfs&c7M7~B<5eH-+x%F1OWzs3;69^Biy zK^zq@<9qxnN!BVO{bEI9Iol(Ac?n`7!5n!A_FpGk$yJEwo1#_yZ_T*dzorhnM&lrv z8D==`bObPteRTjGGB1uF*~>`7@iwwEnqDaxN38O#0_H@4PL8|VZfV_olGMU=sMnq? zfU|7(>PQj)&#&PjDB<h4fDr-<PW?_C&3g_B-#&y6Q7a4N9$KL1tr)ND)}05mg?lcd zT1`~a0msZFH=ybgD7X~>5u7MnB(nfvUWecguHIY3a&LDX*a=74>7}XeLgR>@P7azH zaxi2jvvbR@5kU2L`6>*QDO3ec_f@K&!@%}3?B4r{FW94DpnqBk^m`WG9?)f+Wh30| z%DdqU>-Cgah&PG`lnG8P#J(j1Sb(MJ&ZMGVh%*v`#D64e#v_P*-fiFJfkwPLep%zE zB&*_L2$NNCG_D2R%fy{)Tw>@t%%i7<Se9Lfo<uThermGpx)iBZu1)FRhl@d+jLQBr zW1q^p6t_@XG}ZlSjCK<7^L<dW>3jgr9G$a52{bwJEH545kIcWc@{N^JYk_#6;xl## zEL<A(t*fBY>T|$cmzA!oi}<Q7<7ZPFRd}YQtIrCzIv?a!e3RaaU{z)jW)@>zf>2v_ z6l|$0Z%(nS;K9;oSQjwp>EiptTDz@jAELL|eu{Vj9E&rp+{p64DV+*R=|ReNn!MqA zm(v1~SE2>Mke6sd|End-g4I87K0A3wqa92%-GQ_GqZHB-s)<hB$AzBQXQh}h2G%v? zVY9n!Qn?RhP+K@8z#<t|#xa#-lf-j=@8dVo=9*({lJL92V@GcpT!LL+SOQZg;x>YM zxr;hQXsJMN{)MrYlf4iNVy9W|rX-$jK^g7GNn5ZI5>Maz845i-yb!F8SS>?6-HUy{ zrZs+C48F(H-x)b;hNEE&2g-yB#9cecDuTkXEx0?w^%a`zx1WyZ(vQ6N>#2&V#zbKF z@ro}u42TK}bo|1{NEx(&+K&{(qoCLV!uB)cV&1ApbaCo**I@2z7xm$*E{mdq8<#l* zw;tOV^pMRS)9p2zydvM_t!wC*wS{4JjONW1!tBxB^m37J3GTl@Zlf1zWxi6_o!Np2 zw<*IPrhk3tzWdD1)zoJWRONHO@HWH|)@2W@Qz=WOG>+=qeJJ?)tffi(Pj=D;t`K65 zxqQC>c?-jiK97Aa%6-^F=KvNL)QtWiyFeH!+K6N|r`}O;u<==GDrmkpAB^})C{ZF% z+@w0UotS-*+Enm(-iG1>li%y!%3E)!wc@SwhA2ojV2yN4w6d%(_H9wrm}=|h{VYrl zJ5v#?L~|B!XOVH{%Av@4!f|CF#dW9fAAbJNM_(}O9$xyr--h~`J#WNlQJ1tFf4=h{ z7Y%elUGb~VgCcnH3%;D<&?nk2*aLZF*v~DdT4mebca_~crZoGKyZiR)3Ag-hsMqS= zZb`hlLZUIvtmZg$mOhwi)KOQ9&`4aZgEP=~;~~%PLg@=<$mGLhZ+$N+lSCgN(n6SK z$@-2GXh2k2b|yOam@Hgsfw0f{@iTYs?oZbj%3sp>ny2&BZc0{boV~EMV&`UAYYQd^ z9h1uI5>KBg&%UJ(@9tsb9gtZdm>$snfUhFuDp>FI$8Y}5d>H`RSUXNGCGeTQnhQm# zC$p|Hg@$bNH`G(FXH|See4$qdBYxH}s9{wiIrBWyTSJ-26F3*&GljOaN~eJSrF-$1 z#N`yH%Ast06qT~0pXHBdOu&hhKqnA=snLmrnSjY;i+PpF#h!B)M$4$9?RBXveQq4g z8jUG)>s|3zpD0Zhm6Y#;g)G7^d!!`sR@@booT4<LQm?Ao4ysLb=KBhN9Yix=Eb^`Q zeuoDH`_nf)JwBC3MKMIF{UBBl#0|c$=0kx7A-T~_tEh+gltshAD07pJkLqz46`8Bb zn)AgIroR$e$zf`<G*&aynmLBpwJ?BLvhyU!GIa?j-?3r~N86&~s<LnjE9|x-@%hLl zygr^DRpZ05QtyL5+Ci2^HY(U54-KoAnh3=#zc*KodNB0j(2dqxhS8<3*8Y;|2t|hv z-PWQ99*K}PDakjim)Wd%l*?YW0~*Q!D>z2xMA4)~Z=FEmHmgr6*Wh9uTN_3chOazL zKpHQ(fRxsfLlxjBcWNQ*rb*Z;AgVOnNn86j46*=?)1FS5qus`uk7PDup4$<7ikp*} zObb)ZT{)b<fyxqX+}N<X;oh=rJ&~wo5ig%MZd2(`3SS4k>GO7rqQm|@%DRTggHj7& zHx@>hF%72a@=L21JL;RP?->Lv46(R6*}wJn#Q)TM@XMHG?5VnRl8R8)c<ag}&BfAc zt2(Atg6t#!XZQn@?}ojsPUS^5>Z(n7on&|afx~XbA74#y^!UB-dTNd&P|R)0F~Vo7 zk~aHreO|o7Rn6y=yFKx={|XM5$w3qyxKRP$zZ0cc9VnRd7Uqu!16vpoWERY(ezRmg z!StTqy!(kA@$~{iWCNzNcp_j06+SwIY;s)PiXh(`j=!%}GsyEJfWkSEPh_GO-nBTh zmeHBL3apc#WDJ@W?)zkG*{Jo!NmI7FW!i3uxFYd{l>YR$#2obo<4$+2+3bIR^!Yv| zLOn$y<gu@w^nzfptj6A~Kwk01lP7rBWP^x8wLK5J8uh`etv{?JiVPT^eoo6I!*1Mb zj?UBJ`(WnYH^ZsWS?lX#7Fj9c?i+S78eiKi=!6CHb7T>MSvvuZn<eNY{@F!IQw(z@ zdJ$YVEBoB#A!y6_dk1ha(ms+OEi1n~qYq1_|J+657GYZyR$7^!(|ck4X=uyQRYjd3 zdwjBYO7E1q7@C^^nco7Ro%zi$S(p}0$tIr#LTjO0+>*kE>~W=rE>D6FyZtq16J1{i zdv85mG#+*teB*_T74cAVg+km6$KQIpz9nmcaJ`IX2}#iV%t<Z@Dpx4;;K0^p4z6!@ zU90c?ClB?qo!iPad_(;C$sYY)<=6zwlxKMV3u|rlFB5?6j(BBWtg!bgo1X<?o0m^( z`2j?*m&VJh_3Y0!xd-66-6cwJw292J2d@rw+yCs(#f!DlAGmfZO`g%ml}B^0IxX@S zQggpoL~OXG_1qqwayH==g7bz?zp2OfWp3CDuPOD@B5&keh+8Dyw+zPI<9FW_%ADjy zpO0g|6KBQoZ9}HHa$)jrWP=37c>VQOl|w0u1U@LNlS=ktr6R?l*nTajYfWi+EaLI! z?zZmIQ)qu*+%UXZLA7PX#iu4#(WNsdFdXq{;By!!O=6hs4NPI>{RvY;*Ooyu9etMW z{brnr_=0hk4P*#19i@_wxEUEh3ML)<qxQ<$AHe<M?vIhnJvFXEf*_#$bJh5d*kS!D zvJ)?gE3p^S<w`fu4MD{Z${HrlUN0ytJhg*v7vb51GF;If!^dvgN!yYxcUj|6<y}*X zvlVqsmTC?HV#UY#X5#7zZJg~<#n7G9(Pb4G`;U=YyS4sN`E|PmeRQCy?(eU%>!OjM zpx>w(c$0=L67BERbkQR0oEvlw-e~PyCdvG{9A!8Ph@vYdH$$(Jf=aXP0r%lQe)4xT zwEjlF@5|EC_}F|TUSa0N13uje{;iA<KHZGdcS4zIUpaTw#&k+Y)PFI7HVgXxb>;UY zxp7$|!{}6VWr`W7Mc4iFPhc64r8QSx*Vx}r-`4Zz=!WRR!3oZg6rfpc2|+y!d?78( zmh9C1#lUq?2D<CL3v;GC|GOj37V)gs6OUmYNa?i){*C1ReX&pHnOUwCZROK7)Ewle z?UU_xRt6ahU9N{gXU2+;(Nw~?7)Y-0_4N!T1&&GP8p#ji*ChWgW)StQ_G3xZJ8Yfa zo$u`hj>o0()_*RU>$ri@4q%#6OdS8d!WXFpgXGJy6&u+&*q<A9fjLWRxBIpG_k92~ z&=#Pm19KD9Sl_2|NrYG?j_IN=>Z4x-?k_FPPFcIo4l3{DQ;&dzKd!-qUJgPigs@j3 z0j+=I_l5UQ1Pfhw*Kay>*S~9!zVHV9C7l1B1OpUJPXOZKjO1jgt5%Po0(!tsz4^J- zBLUg7=f-419v|e#HN!ZW8?`l*qfC#u{VO&Wul7+9g8rW3Ybm>KjMiP|zpTxlvrt$2 zR|PX97e1!|Rvw6^lLk0;TG@(fO8}(a4$|Iidsm(XK_a%qT;Iwl)IIts<EaUC%)dt( z4}byiDiJ*?J{9{I>na$91${8P*0vW?#&zZTYx9hB?`S;BGur-Fy5`~w4o6>p-Kjp% zrHi}dMO$$6oa)S7U6MHYV9X`p`YKl4`>bnM-YEdAP8LCJdBY>=8|JTn0$8r6A7I(P zi>MoEOSf<W1TiaB<=*5(clA3%hGTj<FPgE9H`^iXV5vbP=7`U1f1s#D2%l<+jQ`k4 zSp7U`#=jUaBn4~nUr2_XhtWInZD3XyHUkh*kc2)2&#Pqd$jQmQf@m0(zE;Y=-%E<S zX6P~~lMW8|*=w=NeD1V;wu7_o<}6c^_8{Wnnj)O;;)5^PR5ar#l9cQ(GV=e(Hm{kS zcq<}dHnJHG%9~d601$O+Km?i#mI0W(ljER)cm%Ab--X5(ipfb>P$}VOyacFROiU6r zE)^CQIu3A3!fE=585)2CsXTVNEQnrns2U6ufCdb-fnsxYYSso_E{SJ?wBE@bF;bL- zFER%m`T6!$#db<3lnly29{{{%hgHwdz%RHR!h;5b>JK6JeCpcCRYQN-TnUsk_^#n! zixKlx7iXL+kf@N1hNwvPYBjw)X5dhNvOsZ~ug80)=MtdR?<Fl_s8=!HHZIubEy<d^ zvb<`Q)r<xN>0=MW7Z(?U0;EIu%(b5F25U0k_jucm^)p{G_?$zU`BCM`PWOlCeacbV zZ6!vll3)R2<vwrFq);YRiW2eV!E(%U){CgM3jlZu#?ofYU{NdNp8tc#ZuOK-bj&ID zCEyzNGTg=!_8C7P+lB&zSWx1d>=-YPIqdG#8H4*T-@Y1f@<lU7mP6U4^D)-&Q&qCa zV`l>{3B9vBLYQegg{Ad!jku9tqSk*g<=7W~vab%bFPi4O>yie>I;N8kzJqAw5)OMv zmRA0P`Qp7JUjHAjacvh3FlUJE2Tj0Z&<wkRbC}D^GiA#9Y2I-seTt7UAdGnP%BB39 zyE?&`w%q>84e|yUvGegN?%NL+@744z=(Bn{k0b!=^3_rA4Sc)My}<LlNayRUUu;F_ z&w~kddkmv5U9;e+8GL?sq81mml`&~BDEN?v0txxSQ&TBg$KR6-7Bd}*YHL)v;ismi zc2_-*B#{UvQCxxMDK3Rg`9EFArB^q2OY|pSsH*gb@*)8r)LlA{B)r5h8ykFi_E!c| z?MMw1cw@9_qDH#!;?$)af68F36Bs0<mX8K7l`lx}Z2|`W)=mMM&Ve^DbgTG+!KtI4 zo^)CUOV^pKE7g}Pzm@B~h_De*I8bBxTjSPOEfdwOuzpC+{&Ps4G?Ud^cB>EUeFM{$ z4&!szL$T@kwl%3JEyhqFni;{){u||>(CjOr2ddatWrv;Fk>vig<5H2!%O5?&GEe8L zh*`@GQ#o28=<<)C(ZLDufvqqb=Kwl8c~ti%uE?cp$5<TjD#ssfVIZ$B(6emb-7#F9 z>^1~D+he~dk?Y9rw2NG@tRjE9c1<Th>;k!r9m3{X3+~`xqabb2tNy#)l3N&Bz;}o6 z?Fe<^W|+l58vcdX-|C>-g8K?|sM4k1585ag0_}F(c~Dg49|eL8=bDP2{d4?u{_ezY zk7`cVMO#V-%RV%Dm3FshjOa7|0ewi6EG+@Vp0c}54H$ky7sC}`Zgg3+f6lQH+h6ml z`vwc%_Ixe~+Olz46kYVk$J=V8l?#)80p*6yeM!}PEum224s`OL)(95A`*ZOAu4>IF zyo=GNMywq~Y8{v(bhpd#=?_~ln=`5MXVQ12dIu<ODSV#>0ysO_fe>)M-l4`ogvn2D zq^9$Srd^gSov{kikBtA~4XnS=`$0L?n-6&oz_4iJ+NiITmAJ2Kryp9xzfW4i`aZ{j zFmRM;wxyZ@oZ@|N%L{B3!ue*Q%;!bBm4@r@D$xs9oPHgeZwqOS-K1={fH-ol5fy-n z?ik68c5ui<8pv`?ZPTn<w9L1SPxU=Jw(FMEyTk(r7ldaey8%CoRE~(@Ss!UUNCCEi zA8Ln?eCyIX`&fIGb38kMv(-;Jri*TiM19+!y(X#A`~$mGo_rov7kp^)G5u7<zO^XK z{IHwjqOsEBWvk!fG?H2{{_P1|*Fo)uaDJ(Rue<~?P2V(V)(PNyHs$TCGb#*0jfJ%D zrV$j*n&sOjq;m9W7*b!hSfRxV1I~Q<VSwArR`8YR>Z8)$^Ya6(NjNEVbz=nQW|!)r zhSv51gABOYNka#IZUz`vXx8PT+$^Iy5cB#gW^WT@6a^Sy_(eq$k8;lYPE#&Ny$p$k zVlVQ??&tvH8`%}f-2i9ED~H2!w%qu&`&lK8teRDknJ0*TbCf{j>fT%T{d`v@IpaGI z_k4pi+r#7L2i?FRISaqVsg_IUMt>w&KsKy%r#-~amM1caRrS!9yIipUssP8YOXXg! zO#0BbSnAPjPiLXgqAT0va?mW45`b^C;e{X@5Zh__D#wRyTZp1~sCzH{I~X#O2^ILU zcE7D_y$R;Tma#za!_i%{pXzsHuipkbME2AU5<IWK0ew^}2ga$bgMyIjfRyL)+#56l zI%^WBwX=lG4MpW|yW9=tFwPSR1VTGV1Qm+TxF_XzO?pjtD>W<3=%|1>J7f>gnUP60 z&5@_oRmM2OWESkVc>?yA39THt1@-G+AN$kih8sNNOL+|rB)RpL4HFs{TcYWSmjMpA zXh0Ur)OQp9$kBK7qDer($wr@>UO;MSsRhhfBH|ZiN`w&-=uB|EsFFY>I`|TUhE+sf zCf%$$Vr9yAR|9Uqb4l@Vj=V&nzVyP$yEpaGqk*#<HWGI&+EgvqDrCrADY|v#18LF1 zNaoB7zKb_+IXhd}*L}UIPwKA~L|EeJz2vql?v?Kq#NE^-q)RPNjx~uaKdQGy8Q&Ns zo4x$jP}q;PnSYp+fC0I{@3W2>N`&(_)Rc!pR!h}`i(W?7i>*AUf4%DPjB@6IaSUV} zjH(4y!YlS@h@7~s?Fss}BA9y&58IR-zdC6Ta8lpqJTOW|)39v#`IQClZLg)Pj<L!5 zd!4cgtZs&)EjZwo)<)N9*H5RmJYLS)Sq0=Prnsy`y*{n1o>(GVO8s?Zo^qFdfI}=< zCHUu^P!y58kseenr)7^oW<zM6HvBzwiUc_Akj6V8x4UkD2g9l&1fghQ-T(To`(HsR zi1}L?w{6Q|zQ#uH@YRwI(G$0msxX0-`~+n7z#(ezupw7y^LD?5F2K<)$CT>YK$0eC zof$LOw3!A5g}xC2FulB72>nvN)`CP2Y0wYQ$1PNni(CnJg`W?gwwfO3uW|uhE53*$ zs{L-V@<%K4FQ>t7leCqlb6-03P#%`u<vqPzQlxceJTdF*Sd((5PBCu_Q4!hSJ^1bZ zxas$U7k~MkhRMw?C3Kk<-gQ5J@&Zq5EayyFNSjbhGp4!$3`br-yxwzU|L2FBU7rYu zjlVUXD|uVRo%gE`MR%Qc@W-pU!8Z)5OwBGqBvTLr+dIy@EE`2FYPxAUYX#17=zn{4 zxdnrI2Z-d-Kg~G>MsP>-1k-XDQX$fUQVXP0704|>QIGu}>fSsY%C?UmCfPznS&}WH zWG_@=Y}q0qk$o@wmL<y!St5H9QkJBmlAY}P*tcXGjHNVUEEzMJG2=Z)buZ8Jyubh6 z<9L66-A8vCbDh_9p4a#L*}f||*C#(S7c#b!J|T@K86eCP_cA|Tl*D`^)a@{&DdL$` z5P7NFLdyO>$`0f~g1>Q#`XW7j+;K!RM^Av=SF>r+=(A>-&Bt-moZytQ;kSRnb2;$3 z*sBkwr6+Uf9iQ0RM0NX)k3BfzpYWy*Y?J%`jM2#*o{i+X(UX}<wp!9KhTC%s(H_Ru zEd&DTf|XIY4mR&t{9`gAj!`~NHSZHiDnU{`0Tlp9+pzR(L%$x;B7Ha|$2wh8KuLai zz6?QGL&)#Fe->jdzYf?q$$aGW;M}?F-8N#|P@dWrx`w$m^}!CKV%PNBW)Be0|Fd>) zBk9QZy!2+?rzaX0twv{)r1D^(KEhj#-4R3a;d(gj=M`8L(FYkRO8MMt_{v1YN)ok$ zysFta6gzRFtsyyyP?ye6<;H{tqtPyO{<aLb-ZL}y=axrC!z`;{S?m~TX&Xtnf67;g z!&j-#Q}1O<cm=jq-++*jI|<DY=x$&rYm1l=4YDNV*@o72RL&(o7iH8Q$ioa4Z_HZn zh=hKUa~%`g1_4B>q1f^qrio*Vl6yZSKSMyMWYnQ$$llLES7FTJ0UQCjr*s!dC(tcC z5D#srUmvoVe10*YXf<=aaCKm?Xf<21NG@jYQFvt9aL)4VRYwlw^A%5GDkWmI<wH^5 zBp<tkXOmv~Znv&wflLEUQQ!O5m@naV9t{Q~lE>N;xSMULsiHw4y_C*#>8{po=8siM z$<HH$k6mW6c`{!oKETm7u^`Fo>W`2fk`A@ye-IiWUiQ?&oR4)+$L&#!<Sb45%2Jl+ zSYyRi9DnwXBL50ftc`;0mX`-#^EZXdO!w)Jhjgx=emIomevF`)(ISrJim;B^-O;P@ z*9Jde0~ha$ejNR;Eq`9Msr{<#?#e#l6Q_^TjO7+gCVMyWjjdL+xZ^dj=G#J?xkXfu zv~ycjGMa$Hu!0or58(P0`{1GFRYzM@2)<n|e&B#R^NM}bCJ!N&c;(iW5P0fC6d3y= zd}@{CwQi)B2l=Fs-|=&PMf3Y3#jYhjSdnG=mbZK8L_zS=r&%|eE)qZYaV()$LlK8V zqtmF4fAp*P9_W#nO{d%m`*0@ofL!G0)9ZOi8j;B73LnzMYCuPTp{L0?C32bdDBf}! zP)4c{t6A5^{Ap$x!Y0@Ki0){4^dA1hUXfMM@+soa<<~g_kRvwPhbTDd@_82a_VCtw zXNNqTVvqRhvMR^Ge~|N3gRJ|jhOiJ4eD69EKURGg0@<Bs_TxH<;|!UTmO@sc8G6WR zSA|XZw}9LueS;O_D6yUT8C-iLT+@ei+XidWk97QtSOzYq*5Pl+-F_qr3l!QniI~@r z&jk6v4Vwm~G8*!?x`dPzw$$Yg<J?T}3{guzs!AZY$oK6<BD-RYP~-7+(jtBOmIY-T zBx6VZ&JXu4h|JbiDXktSn$r5=lR^~l$lKh#Hk9+#Azp1xvoP0OzeqO;+Oln^KEW@h ztE`TdZ4PU5Fw7z(7|!8o%^7u)rKwXmA~+Z`z_TPAOh0bRXyF#lH6e@N<cJVh%}3}L z&}~@)0bVl!=0cgrr&JjQWz)Yb;{j)DVh#x9i=bf|k(NRDM*&K|9LC(7t$aZEQ-7FB zU=uW9d(TSL<9Wdi#*v5Ql77Dd{@p}@Rugpfpx5*M1;}`BrmeLoMs`2c6jqu-*X|5m z(tQpcU57U?6gk@%QmnktWzIgXuAqafQH3<tsY1$rY#w~sz-Y5TLC?0NAcHSe>NF)! z4kb82+{1z;&UJ^;)5_=bt=u$1(XvdybMBbf<C2U*ov<r+6G+}~KJN8Q@8ZU?xfH#n z0+(eWJ9oH8jr#*#o;=0gDH&x2#eo<GktC)z-45{ssE4}9Wgk5hY%ZMkP<u#3R=?yC zyg*2v@YDww(RDj%Zzrj?pN?2nb2yJrb{(z6-^FouhV98PbIZY#^1?Jy`HZCmKGHnj z4`Qyh+ur;GzOf`|D6S6qd7&PmFYQ$tF|j5=YfYFMAKg#r^tlo!df?n=7QdlrO1Vam zw`xS7JPE=2O_bQ;UohnHacIX7QB)j;mzlyD&Wypo98Bc)+q|y2K+gXB4BWYyNGzGc zMsNPOVo}c*gvxudevv<NC)N_Rp4y8VoQA46>hHx3ER9>-Q@FFzCNcAA%-HeO2jfWs z>}?rsqnS<m4B?xo@BHoX?d`_*wNKCDBBn@PJ2`=_L!C1o4>vl|4QAh7Jt@2wG$j7O zurDC6r@y}bSi}iTI7jS9e<d&L2r=O;&httLwEr@%E_5-7s!k|v?aWf04q_s*0}*zR zl~H2mYhW$axKBG<gx)ltP4f4tpUvwO;~`rO&qfq$Aawf&l+t2A98wfJh!*LN>|ny( z$G%L@O!h{LCVUC_gPpttSfv%{)AC?#`zT6h2jG&PWtA!V&xB5&jr@#~|LT?eEbI&I zbno18hHyS~V>~n@K$c$j#2hbYZA`<7mBs8s`g(TO{SEJjeR7TRzMOi*&A*!ODW=9< z0SSRitGKE}L$H-osxU&-nOb3pReK!A57iyMN=vLqH+0Ka72<*s%x@b1GV8MB>w7o4 zv9zVvfAf)LfMo-zp5)R#HeBTHW%AkYj=U_f@Rmy}n603o>XKlJLYCTVDt+p4z%15% ziPQufGi(zy0o1n{FT^=+rL*Go#uUOXxXTP4VM`tMyf$I03cCpO3>9iD@+&G@;dc(t zGa<c0mX;5A&9_o-BakGyA$@7kV`rQX3-qkI9g+1I_~eZ}2QM>G?9E*n0Td3$drjVZ z>V$(UHf4*$ntY!*R4NcjHS-HmuMhO$IIIFy^ow$%d8@v9<glC+^v~n7fNDAhgkE!$ zhvf9GLbiF*8cx3(_Do-s?yYJlo_ZI1e{43wM{>vVZh%*4Rtwt=?5_TerP1mL_g9iF z6j$w1g;W=p!dw}PQ`USGwiFmsk0kn5A(js8wT{(?fW(}SK^ymVMeOa<*C;1wC+3{b zS3?Z73IhpXgM;3QvmQS+?Z_#F;KI?g4_9u7hkKPGBg8QgXN+Fm;f^7BSljMbDc%O6 z9@~ik9{T6mLI&ObG$=xp0lN!{&KB`Q%wBxqW%6siew*h{s|VWKm;Gd_(QhG2DrE(5 zs<br+<P0VGg9Afyq~of8zg(YBJ9RDZ6Hpbw2j(<e8L^WUw!tVW+^swCNUFPH75Olf z9Oxjk5Klipe*4L9Opy~-rf9<!-HoEn;LrHEU?ICqDlGc8V^!Nw;2M{$&RHdA($nQQ z_ddcHey)7GwxkW}fd3kzrllyrj^7-NPvz#7Z-qc)()XK5iAz*Sx}D;QJ#zeF+?vM| zm~<ZU@mfnaXMs<$bK-i{kmo9TM3H8ds%jbQ9yXN3=pS%$&ZG&S#$Mm=<IrIr?DT|- zjSl&9Am9hO>t(xo7y>4}5qwq{^FZ&qMeSYf4-djWe*D<nD8Rt13Q=l1+}M^%x3i1f zBfv~N>o=ntl_$U6UyVJmRmOc;dIL;2U5RC^Afk~Z_r?U4lbWEFFXdZNXU8*#T&c8# zD&S7e8Z&=qRhX2`p_}?y5=C;$8t5FHC0tEwz?t03TE&iUU-hS2xu2PJ!|Cg>G%gtx z$LNZ;tBMfgOhp)P#arn|DjDssPP8rnb^8U&SJYI;E#Oi$&D%p&EdkT1J7whpRWH6A z9vJUhisq3?wou@!8e;BCr53hFvg3zEvfuc2STBf(&1S@_baIz<&Ru2H-JIE7lj7|3 zq})`09@5^HAd<b-R!i2WVLTU~tev5TGGjlzTU)0@oL7a&Yz`$lYM(|5{%nc{y#4WG zh1S!KFMakwp3XP`+-7O0`SgJ@d|w*H<SeGK-k{PSbT9k+$Wb>zA??5@C{Eo~hWxtZ z>|2{RaH`mh6lp6SPEsj6LJ(*MIwxDfBls2oAK&E*bY_T@a;OKyBKJXQI<$ud#AO<B zzrJ@6iakdTygoQ3P=Vkg20or0D0winhxUX4S*m6oxO+N|nEY#vbtiI#m?MMB-AA{; zYj}sQ*FBF9{)3!cKIi~+1xbhx%%gn~);WO-vC7;6FE1G8L0mLoEtPMB`O*}z?=8lN zU#tE6Va>wvI33)VKoiF`LPF0hF+lX3oCvDQfBpH2?{d^!ZN@><8huBD5nBCY7SOBf zny>cWgjtRxgEux+>p}I)hZ)0<&DF-}o*bw7`e`Wfb>+02g>N68WywHwppw3AV2&nm zgkhniklxb;leKz!nqeNlf;EyLx0c^iN&+PTV6kq*{V6eUA-FVf0XNq<pa~AQheX~X z4=fWx^8lmF-VF3nd~DV~5BgZ^-$?M^Tix;u_x|qIvX^%G#wok8q!Ru$Qi$op5Fa&Q z6nCsT8A|t_2h46dZ2@Sq0dxdY!q=X?q4p3v_ci!B2j6{py9ma+bQ8rxNtEXzT^N&R zNR%#fu=QXhgTuRgiL+yBit-MddtXE#2FTqd`K^W8Zj?Os>mj18KBY3M8cA;xp*dH= zi)HW&6<AuF*gW`99Mcv6K5Z}~m)spb<~Sf_16MevyT>_~A9=8BoBx`P`Kv|<z``v6 z;kZLXF_|#<W|gYR<dy>=cub%m_9XwKA1R;}|8#4C1W9;E)?B1IEX14V6N<-va~xz! zw;W*5%tZ5B|9~%HY05O5R>>=e@GJy$5Rqm=^+o`J^3_X55@{`<>C=nG?m61PHoQIz zZv-%*pS{*Mk)SZ8Qibq_!h=}e4uglPj^`8`bR&ZA%hicF13xjiJr=fY0xLMTR(e7X zBu909Fi99u>_Xw_iKopmX&*wacryFpH&ty`k>8YXABW<hK<Jv|9e)~bpUBkMQTu8S zsPN6w&#Q9laFY9~?KN8PKx(t%8>Tnk^t=#CuCs`7U=c3WmiY=W>_6aoXTda?PXkX% z(G|sxzyCj(n)ri|l8J0Bx8uk5?>#_1dGm&>Pw__!8u1*sRJLttiyZj!fXU6B@;Qs@ z@u+qNqTl}SDP-S1D*sFTIF}yuFd+ZPxAjEt)SqCr0oi)XPOawwDS-oD9U{~SM6=U> zvE(tPC}stao+d)us#u0Gxb%v%B(DnqdpCqsA*WAajFiQ4N?e0(WcfH_YP13V?0obE zz~X;jPiZWx{3F4KFzvf!w2VyT{_7#uyYbg8R2RcMXkp_8F#l<-NYVuv{3)t1z~!Z! zhW`GDl>{O1xq$Z)46o7t_xJtxC;wwv^ug*Bjq0G1sJi)80EZ@ehF|9wx|5}IeT7V% zf<-kN9F_6dhkfXXtditz@}Hf4#jjJ3tndMZJm4hLG+6PA{7h8u%sR!HNaD1y);*Pl zj({c4v9=JB`}}fv;if0a{rtZ`gO?%4C!78gBj2PaYOG2MV<OJek#YPI@Q;PGe^EeA z4}qxQ4_C&fQTiK-*axEi&}ezq3s=a?A?x)Q;hr*Ny{g{(YY}($7ctJVPRpCT^pOT) zWW@qNkOd9Ufv@|UypOQU<HwW!ZcEPa?ce)9Yx(u>>pq#+#QBR1SFHpbmKF^?C^z6( zOVjD!7wK}v6kI<UEJ@HPSP&+2M8De`RC*wJKmVfp$j@!_-ztRD7&ah*5Zx99WX>fm zuk@52z<?yA>-?-X+$`oG(;lM=l@9@e|8Fkj7hXRS`4>xfl#ckd`PW6y)q2nPjUU@+ zVTN9}1X8yv9WdlUiVrH?k=|E1;sa!Crvc@ae4<{MRrS$<C@3H=jiXc{w$mfji_djA z<-wnYXg|b8CcjkvMPuX*>2p@!Z3z@%>jY__blokkCk2GgkQs3nLu2s$JH;)fX2FL8 zI!4uJ<Ea*%_Mu-7$uXdP`2X{-)RZlb1;bnnz76J>kktkx#OUbJl0qRMDbK$Yux4R% zQ9x+&|K&Qhiet%*=1DTn|DzX7jOV$f3vl>XfO7qs<^%}76x{o<^Nw|I`-VM>R?`A* zERC3pmalA4W=TE0?RI1G?Oyg`Po1dm<~PxD^mdpf)LhW1s4p$RcnfteTu$|Srk3hn z7$wz#ULldoBUb<wU1-}D?F`cn6Cd*?fZO*n!uLcJ>26z10Yj%krj!R*d#%IWvcq&l zKyM66npe6QJ4ioQg<Z%bTHl=P^(=hyQNeht9bpU{4@G{TBPbR4`aj9vNojHhL3yJi zMNeP9HzIQmOSceIRYB&Ojd?O6dl#`HXXy&h+vV|zoJDqP_{8ICY$+)AFxu)WH(CWP zN5SY`Dm&<zl0*cvK%@}QGo&2{9@&fS0t!1MqmzHA#2vN+Ws1oS;oK@j+=Ao{*HX8n z`E$PVvH2NjfesFNT`xq^*{s3W`Z<RuqNVQ)@%!!WcsHy8_zNT0U988+iF$XdTzD@O zOa`jW*;kwb0=Ivi+ikseMZ$d%t9E~9fe8%c%m)F=`9yj-_o*90N&rLwVg_k+K)dgJ zYgD)rd1leLA{bep`<_!cn_^`hOiTd-N0n^Somv+(z*cz4)GaHmi;}-&hFhEQBY>%6 zm<HM>zzU$qFT|aPv^@Mo?AD9**gi!cO-;>4_nyaRz$7c9pM*QpY6-_>MUk_Wt|oq9 zzW8qF=O^Okk3=xmP|eDBp%#_zYF?Nvt=`BqLK;lQ0oeB^(9W~q`(@&{_)&FLdJ)2? zcY8~*)yKpJ-C$~t>x2YeL8moBrOU0mLi@~w7-ld_UO(sHbZP?V4t=1awAFluIdd<F z0O2bFoC+9HAP_Y-&0al(tljG^LjOP%-Mc1%ph^mOSgyF5)x31`vrMSvnueqpVsT^K zuSzprq9w~46v-YEoRROWo0Li}GctNydv+mDgh`5}RhcHol3Z1Ls*~r^EFlCK)u!R! zltS@uz)Y59ZR%=1)^-lhX?@_Gy2-FQ>2@=YwDHru+LHUaO1&hzzV2!+^E+Av9B(Bj z=dMh4$7Tolw9poO<Z4$qqNoAVvA>hE;qEuOGq=j%`|;!vX~k8gfLjXXb6A6s$4f;K z!4U7y@6F{a-4Rvy)#+9l*4_i+`OW(4KE=m%&w~mIzbPwfxMqL6;&^Q@&ShrvmCFqA zo@Fb%a@#<vv-hrXKLd7U{k<z6!-Uh}kSmUZ#1b#UqQ|g(&lBxl<8+VE8@>G^cXP-j zz|%*nkZa1qZwJEG75rC+(0~Cbd^VI6*LquNi%T(Awl_O)fxdyUyrWpL@NiA?Nt%o+ z0YED7Yq>vowvH*iGBdIIYzJGy1Q=uQOCj2V-kn2Qn^wV_=|8%W=&v3EybpHVc&QQj z<vV1SaQ1U;#w0JWSCzNq(&A3A*v`oDq1dp38u8abNZIH&N5*$m9y7;FwrwM!f<Nq8 z9IFwkkPKPZC$m-{>53{eMKxrz)8;6t{6kik%sD%SHHhBj0Q6MBVr&gRp>F~SlB0r> z8CD4=>1{X3`C83#?{|JZ-ABNwkUs3mKqRL);$%Ps<X|;0NvJdY@Q1K~e1629c=fbl za)>Klt?b}F(1b)NH&<^flq)?tv2i~9XCpXy)EzPM2~X46@QC!n{g#c&+W7rj-jQAa z7dpk?j))W=FD@LUBi^VvyRd?``?-)`ROtGlIVf_J;Zzhfg6s{tdM)s!4=6PU@uRPm z3dqxQh(MMfqA7PViZn$@c|baMNMFm@%OlPR<@sIux??e^&L#8Xc7t2e;F~eaobgj3 z;CJ<(6U%F=eCu*6a1Q(hoT{n|+x5(^T+w4dky6U}qs#X(`E;~&sG7~p`Ng=bUf}FF zzxG4w`t4ChCn;3sCBGu}go4mHUfNqTrW{EIb!dN@on!&EQJ}Zlz68uhl;(y2L+5-} z8)3V1G{Pw4Njn>tE9a`+NkB$J7Gj}C^fAj*uZ~&ozd_HR{3wk5{`stzCs3fs<CM^7 z^iTh3-v!=JYa(L#e6dVGo+1%={|HV`qaGg0wD#aSo&{+zMoZ)j4yo$ppAFgSw@Ub6 zCCx<?uYNv$Dmb|xS-awUq%#m}gb**f*W>a$BWm-Rd-^1iI;~-&ycwVC*YVZj0B28K zHX+Z2H^8VlI@yd(8&$2(O4CiBbmJOIQ-ds<eq#j&Cp|~Uq!LAxHtDy?wyHt)HYXr> zs^w`tCrl~jCFkAiAQN=4Y)<M{nE&NQM^7qua>HL03}(xGeqTLnHk24g`y`(SA&sC; zm$beKW?aMs;g?_gMH9|`s5kV=Ljb8>5D?M(abvj%iJ7-Q%}z}fff<G2^-Os9+-wCB zN<e=nyLJ%KOip>|(6gNlxY@VlX+lM0lg$URSMS(pMO)QcBVlb92eLcAFE)Sc&yshA z+4Ahr$VP2)5FYx2R)WJ>3|=||a%!m$Bu@sM;K0s^Yi<H_S0T{gT6=PMtMGN{$f7&f zJ3mw*>9tueRCkDCk_H@u=Sq9}0J89&w(*783y0wP05;PM^d^q7?v+xT?=7BlhX&PH zc2cNEd_GBk9_@5v=4-5(<d5T{5^%Ux=WhEB<d;ECx7KoY<%-2C1RkQI;(7Og-p_)= zyP*PsK2F?W2p&VFA7S@&D79@qls9u(+t%*R_wj{t9)0V3JgLL$v-#|8qomuH+vwxC zf&A@}oX~iCRaI3p@oYAWY*5^phKP8m@8JDl0o?MZST+$C1^J)A)R49Aw9vfDT}2)R z6{4VX{l$zML+XJVYdQ3gU<lixZN^Tk%;&IIX7Wl|+`iB8i9L}qKO`ED6W=4O&YmWI z8g0nwv4EP31btjVoZsflm-z;JSN6J*4G1sBVxmZZ=I6L9?2rujFUKfSx>b-i!w5^U zb>KX;AMjlrbHJ#TMCT@OjM{E6*aia1xt2-wQlq_MpHM!##F(tCr$F(Xg2aWucch-Q zvu1bY5D!p^{ucFKwk=V;&`E(vC_p7!@GPGNJhG5XV{KQXH+d@k1fE&fcnLI-+L$5l zI@~7moFo&S0qR%l4qn=|o-wOkx$rBDb{DKf7xCS+yHWOVJj*fu1<1}^<<l9K!FiMN z51^5D&s*YIEkOpVA12tl%w={{jn<zdJd9;3UpGb01cZQZGQ@0c4e%^D1N4g9aI`kh z1Okd{c$}Op6y|IGP8F6!c`*;xeKGCgw&nAFW|@?7#VKPW-?szUuGu~F&$Ufbh<raB z$Bm_I7}Gmuvzrz-Gvk`N($+5ax-oNDPrFHNY|Qu`ZF2~-|G^o-uKT5yYp$btjyCn} z1-Koei?tdtbDYR|*;YYp+Ysm~^2L%0CF72lY3WKu*eYbl&=%*jY}qbiKTVD(o^Fa< z5v_t7>W<UJaj&JVYP0V8^&SRqNr43Q3E5$4dO<DS<_mndqcu&^IPO=YhtEF;Zs(<Q zxEb8;Jc*;1L(<B^OVSOb2bE*ik=CvZSP&Rs=?#k@+_-UEN?T0BxA_xQ&7f*13?)#r zr(>uA=~~?@8<>N~1)ATq8a{QSW8Jnl{kFS_<<qCeTTF4r*jelEGH*Ly`K`E$`mTSV zT6wx{{>0kQ5}#zOM+GnJ`<e5mFI$pkm99|ME)NE(tl3GWWqL_;&4I?F)qJVL%qb^c zNR`1$r-344e3OggaQWd#XTiI`u^Fr!t?RcnK;0*dXjRgoQaK@iYn$b%z=iz8QgK6W zen1Yk@vbbsh+Id}+Fig><}x9NX>9qB0yczp9=df9QRJq=-I$dw^5g)(=9c^MZ?;@_ zX&*Xb+SsA(-{8E#VvvjB_8swcg~OhM$!#1<6GI$I2twjIwowiBz%$g5e`Ajp7WMOa zvQW6M`7>2Wmt%0q%}NjOpNj0=svaw`CJo>%GGX9jK+j6zc*Cd*$`m_``Yt*J*8rMf z?sBY(W~oS3$Tw|FYzt%d$%u`(ccPd@C+#RobKh%nl?MIl=Sr^PC{|y0_xKP_Mjef- zW}<n$1no!^p(%?ISyKz$6f;3-77B08FczVwDxEctlN+m-!zos5DU30}tmn86hf+R0 zG!;LT6wEap@HEyZ2OC~?iRG(p#241`6UGPnYKNj%U(+Vn#}ZC|k|TSselSdVOGe=Y zY`O3nGWH{pB#Fs2QIIn#>id&NQO<Sd=VY!P-K)!Qp=R6#0m)r{C{N?9H`7F@QPqQM zjA~^Wb;VY&H4n=XTKndzUe6UGYD6Jj>gqoBoMPZeV}bSg`_}fcsG;EBzyQndnzNge zz!l6cbkLSy7cTY_&Nuk^i5$2oi@FNgEX`pYIVmlk?e0|VUgp!yx+Q0r4(82Byr=T! z?(GY3sB1f1KD=|-_JrJ$-GjLJi@aME6i%<vXm0ZCJ@Hpr+6T@Vgt1;Me$PxtM74#0 zO<ai0`k81iLplgh(Wy<Yg4jOlBP;fHtqvFjw1aw9_wWS4WA92KuRSwxC)|`nT3$D# zFKw+Iyu76w{`(Cej;UVTd(=qT78kgwYUMCi{qCq!@I;c|Nre5ho@nr9x~QvTumiBr zZ8z8umsk9%Xw^xtC_lO-jm`97OTdX8R+C6bDAB#=pg2D@pGDW4OOt67h(9zgiix22 z8XtHdj-hh6Vw-u7tK>OlV)$_yGZbF|(@dk5fGsG|IB`@ND0mn<sXceJLhwn=lLh)K z7F5F?*~$k^nUh);moHAtpQ9;V^ADL|laCR}_PQ$)FmlawzoMuxh;@B&W+p=9_>7!k zu-TYmVHxvo7Vq9i_edf7(jjKh;5>#!R2TAC#j;r)_o5Ct;{kbfH>vK#f}{-IfSopH zCLWqvm^h+%r&`3#Ee{D^DX|9_n=L63Vd?e!XJ^=7>uEIILOQ%yd=ahL&hLSMQwz+T zVAk1a9((-OyG1B6>lh!k382e-`vP>Y&sDqQA7pqi5S<{>-gXSc)1~&2&^lpW?6_`_ z7M2IF`Vvl5Ay5$^?YR>ypa;QNRXrG3ZNfY${)(E41a)lvkV*P%%hjicL&bB@;ku8+ zT;!u2f-CwE?_IBelk<EF^t?18KdhvNQnzMG-{fO%V(r-;ZZGKh%JG!KqXq3;Yo4o0 z0-W|-I+OEYqcfL;irvOm$Cm^yK6RFv^@1%vTn!95@-<y|DU(}Yw=*MyvyZ5IW;H;9 zVt0*mQ1y3rm!M<8rnk&<h`6oY`&9Er?{w?P^GKl-E!CzZoo5>(VQ1&AdK099Ve~8L zQEoeA=gT!(<|FC$3S{tl2~fts6xnZMC^$d&tw(Q`qs6r81~~b%{OO1j*|+#6*I$J& zDHB8KgaQQ>d#G*AO`WDTJt#voCl9WkmD%lUTsYNMqDjL`vo~RKxg!j}?L@RwM!|k` zi)^XZp2gVb7<AG#wk~=L`|`R29kUExpi^zP<@Qb|9q|?8k!&p~*=+-l=IZqf<(5Xo zt)D=pl7sY4otrxH=pd+*%~46IW83<L06V^2r77~}%Cr{RraqN^k=)dNdDAYN0_+1X zk6%Z9U@Z=l>_EdMfHm7-l8#88|9fkf<%xhgLNY`A6o%^Z`*0scmSTb0MQ{I4(Sw00 zAC|dWD=b~$qXlq=KwB#BY4&o1@6GR+kMP*ZSJ_*=iGy!Qe+)x&a|egUY`t=0N#ttu z>eY_2mBA-SPLC)C9zSsFhpAH}#;_oGjtZ1<@Niv2F*Ux^XB^_NZx&bA>Ud}cF?9qc za%WA9-VR#{P<?c8z+IaiZ+;W<&YI$@gouyJ5qU!e&UJ^@8sI<?xEQD>6e&b~h-iFZ z5?vf)eW>oRyCLAb(m&(NM(70&&h0*N$jiCQ`#-^`w+CH_8b=7WXG8NW6jcDKWq9b> z;%Url?*IAI+E>Dd_I4JNXrHjD#)SXhkBm{P!h};}8TA7JM)V?VCHe@aO+D0P$kWBe z5VSl+1qD|=O-(&*qWL&p5CmThmIhix;emY=n=J42bzg`Nc;rP~P_r`<f5iTOl2U7* z{7-auIey5q9eOTT>nY1I4sC9mQ{o=lAezKLbar2-ZBndPSaXU8DP8x!1l5JK|H8$e z$AfG+vf_Jyj_9ueP<Qnxfa^MwaowHM$9_quUm3i)TTixLus}KkIu<nksn7nURs9W| zYP|=9Fvy(QH?7*`K^U_)z@|~pGgNK*NM4A6>u<x=&0@}a2tD|MJ6l?KzA~};OU5ZV z=ln<B`Tw#?06t=$Gx#sS9rzWGb(1-8xtIHR_AmJNOw{>V?R}5e=tHxAP#*t*6{oWQ zb?v`Z=_6Wy$;eL@|Hl5|-;gy6&ox3w32{PzCi(3t+gIz6)e!rdTy4?6ZVIa?=Bob0 zZ%3CtO5P3-%6!*RlFZ$*mUc#Gj*IUT0LRnpfN$)VJB7o^NX$b>Gh_Y5)PK<yza%`b z%Kzd>w15yjO5`%wtOgtVZuxNXQl3(irJ-<sb&e#?F8?V19I&4h@pzI^a_4sJRREs< zr}g9yzvKOvA?A;T?o=eyx13j4y(7vYnZHz9@F>gT6*50?BC<n4n=Ja*W=#V~Iay-# zZ_z4Q!N%}Qz_x$Ce^VGj3`Fnb&Tz9|VEr$>K+5&PKoNTK*Q*p-_I?|%H+JYh*qYy$ zZLm)`2wwwnY%HcX9|DA|FnH~wW;v9IR}Q`bRL%w1btIqZHM&C2-w^*%yut&Auv4Xl zr?yY*?;>ZRK1u)jHa8*S%jYhHg6!XxreD8c->IRx_ltV|MLH++k^>At8@FXwN7)Mo zQ4fTLa%Rc78$LM9GqT86t=9@#Nzs!SpsTEth$2;0$%V#mydTsgV@yCa{z=ZmTv}M~ z>EopIpK;x6;}Y@Zw+D-Wx$8@lKJXmlO8wDh#2J#_GoU8de~DR}Q5a$tc;0aqqj_;y z=NkF&h!K#;gY;CM)gvn_3WXAc_;tusm%~D0z!Z@?x?QrvO?Ud?<V&u<mkjtfK7g>1 zKlUA+eLh7`I*|`j47v$6QwdvO^)n-*LxnGgU;spI{$X~1f=@B%ykuvc>K^b}0S!JE z0AVGl0ZZR>_6HSaKNV!K?E$lih<^4BFshgy1BCdShlmC-LF5DCk;eino&hzh>6iq> z_7YA15Zm(z^-aAiGug9D{rID}$7(mK#|@@<=QgLJiQ|XHw`On&#;Ssh>wD}+SO5}i zo_r-D3+X1uZ3>CEY6x2H<NiboLPM~tTqRq!9-aL-@^}_UASW0?O52<xP$$nvQidb+ zPk9j^-EAf5lV^ev55Z0{xPY}U0#nZ^>+IsmW3iK3o*~$2cFjd+;fXwN&FWXuN@~(n ze-P6CFoVpY9RDEToL^cr?Qb!oc%YeGXpc3U>rkXw3k8(JbI%AZx7(pvgk)~ddV}gk zrSX{Qx!<<DaQDY&F=`>5wJ2^vQZS!6%G1+xa9u&&y?p)b&38k+GbAZ!1RDJCHgqA- zdp*hzkmK*k5n86NkAlFQ&+rC^Zq^T{lSD+MR49>)rqi)ub~kiTxY%8aULd0ZI_+1X z3s|u5WZHEj@W{1i8|eop?0BmA0Oot?0=z>4!?*L$r4IC3eaL(nqnmHYB#6_t$bEk$ zC-?4HFj%&5%*`b2`9}j_h<GdG8$jcJjw?;^2UD8jwtHH)Loct^%Y>2|TV?NF@oE&@ zltauk*R#sxy;+*4<X0rP{VQ2`5D~FVe;=rU-T>J%^=imOtE9U1^gH`xhbe(wyS)uA zKO?{t6l*Q`yg&0*p-}H)WCu5!!iK=wz0L&g*Y-B>x}zDVn<=^-+^=LF^;t|<x7}Pr zHo>|B;a}^_SlO#}emT9E|7HC8Md~^2pU-DBGKQE_j^jAGE?WaPRO24!<v_1+rgj%= z4al0aw<p7My3&Zi#BFIx8$=o?__8Ld$u<<=Nn0j()!k*r^0e-Ou$k?~{Lrpsf&HMf zbJ*^+K_UB$&?u&m5uly7%%-EiXb>4lwT6?@4r`p*E)^GxnBbGm=VRmYe?%*6EcMC@ z-P){pW{sm%BD=>6kua1*Y;&MU+?#6wERX7?I8zk7xi`C^P5DG`e)h)5A)5T+4C_OT zAu~|G^exZr0{-Ab6wy!r&FXjB%849BqNHf>{5MJk$$NRQ@0BD8lB#18No~j<CG@;M zC$s*Y*H5hc4J--yo&Nr6Xw%KitR(7jy-kX<fL5qck+*X_LuOpo4ZwV%RBPeQ52Y;) zOp(@t_+s<w;^qN%D5cE95=F+*X{As1N1JRn{X6^^6Q$nxpj&}g<pHnMQ+lfE22Sw0 z9SvA3a{)I&=(;OX_R`;sv@<X}r&s*k_uf6V+lhn<9iGd!M-AoubYvMs*RJuuyUX0E zTH|>?Hy)}x29X(duk(q7ViJ_RA?{D+v-=z{572ep-!-{~!3e*cVjR8x=*dsW7&Lik zyxh{MHWosEXj+{lD~JsW1-(!%DfC7jAK@S+Z)5X88rGOOS6wk+JMi+14Q>5&sM&I` zy_X{N7}SR#@UlE6lJvDVeFfGN#lZ3XmilFnyTCrTQuPL879QNQu&ncE68j)j90O|c z*Jg7k6H~M5o_*nU_Dw&c`eknVrVfhMk%1T*y`;0=H(6YEyYaP*0_1I3aO0b+I|toD z`})$>R5V~!!JcVAZdcs2txw}tPTN>i_6>TYrk+?e%|>BlQs}m>BI>(xM)BTUF*gTU zQ6+q>-rHB%pLI=ft!6P%Ig5EZf9@4X$m_>za7Qo;ozW_<FBLb!(o%_4&s=V0M9!bG z?rLuFPd5HK^+;8>eg?_28>=#a8qVL+Hz4~_N}!xI0cs(7V^0uPjO~*SmIA&5?(&<R z-!vXpb4S=|k@UH#|2pvhR_Xk5!GhPuvHf!7XqyPgei{N+5hp*8&q0oez*`-}>2h*V zP7?r9UEW-L0*KwRO8umT3_0`ozD5jre25^NF3$-(BE2^0&CHa-9ouq8J`=5hsvd_o zlBYYBNV1kdOhGJ&6fWA9jgoca%YDz2rx@F598YhmA5^k0Yw>_@B4qLN=J6)eP`YI? z$~<Jiiw+1K&45#h8v@wTcJdba4nq8^-;ZUa3eseHn4j|A@3Cq65|s$6<=;Q$kSfU8 zlApm{rjmO;|M6QkgN2tChhhtLPQcQA6|E^SXX)_}*qlvsQ?hHF&#p7)5wl^&lM%4@ zGOoO1+t`_vtaO|Vp5ele?cABL;g2G;P972#N`7fQfHQUUR4g<L#xND9D~I4{Bv`p4 zV$C^gkj>4MRMgJPJTds1Z2Rl?wGV9VxC17#dF(-Vyv(f&9`6I|oa#QlZc*+<!>^Ew zz|pg|o6$-Ab<AP<UXs+icHc{MMEt_IJ#hgyJ?gpX+r_(^>V)`#Rr+rk5x3;8g8a9Z z>ft;aKBYe~_>e;0NcwORA&;D`HuRd{V-fQO#q8+srr@xk*5o@bNh7o3Js9zYrjF03 z_VsAvB9CTG09<C3c}&gu_+{rfe<P=^Sz-KHu#dQiYd&hgx4NhkkQrAvnM8n8_tUN& zOMvJu3tm3rG6ghj8Kn==zN(@sz@HM%w+eWO<EDoJ{q1l&6K*PHgsK{6eKuEW4a7sz z!Sto~Kr+y!az;P*e5EHh9+I=+7>KqaofQWJmW^`oM~SLhBF!J)kEp^ZLw&i3nTYl7 zwAIP2D`_)Z)M;1xNjSHMv(rr?m}<tX7c!H@qUS>2OSDDQ?p0a(uX7laq2OZXo0i6t z!LUpqd?l!*Wuls*<wUO#&$6%xj4c}6au}&`x1Cd>9`~)QI7D+A)myo3E8~gBEa!W+ zODmTk1a?oJqt7X|KD~XQPAAPLR#h5#rL>TJcJC98Ra@$``aQMjUYqM;3F&%A^N>3Q zruDW!1*=k@!gU*7m%Yo)Ve8$Nzls&2BRzd>^PgU5kSg#;Diys$zx8}y1=0bEZVG*w zTE8{4&jkwo!UZL2Ijj##+4Qh2=gQnHEqL;_kMqmfD`?gDRa-O0U~0y%{GeiW9I93< zWx1Kp=f2dfI}KzY(L#qR@+B+4uGIWYE6uC^BIe^d{I<>15&0AHYa;Vh6(83d&mU+c zj8b8b;PNME+@um?K<;LCMN7k}C-YWp$WlE)jQzsFCT6j?<07g$0<3uN1CwPP*8a*q zt!-fx5T9qO)9HrFB`u5M8R)j86MON2nGX;i-;?LR*i|n|pL(V{M8n;;%5?-xe2Ar^ zlC4<eJGNKjWV!n(Q{`a`)cgV|&-=wWL?<cTe4z8#MnMfRjLc@-p04Yqw7bs;8`UTW z13#7&W`jszu*vuC0~?^3{}zgEXVXV*w*Y=ObN6;V=Mi)aoJ>k}c!<HF8QQGR-jxh| zerw{#?UZL7vU$ZlBIx#7Bfc5bPsBM%JJ)IenT4L03oL3;+MGg9&{iNgoOgMpV#DQj z96_S!PdPETCl4VW`+yI60cO}4HL%l;?Iq%nIo3$**(y&$8jBCpGX$`S>m`sZVXw-v zth*d1asY>8b#x3>4P=-E1gW;itN>;f%+wQV{Yy{1XiU~qV@CsgR-zb%+(2UvxO)ou zh8mG(icTvJLWc;-E-ZYdM)6`8Jf@&kx_Il=HHEUIAr31#w<)xt1O<U23s_!h@H!{G zNoygSa!G2yajDS6*r<NO!rZ#vJ$`6iLQ<o0QJj1jJl$Ei=_~{nD;4;vw%5r(<le7B z$r&<N-9{3BJ!4^s;AHS_I;6*d6DXE)3zKr!p=mwb3V9;vH1s(hOI^x?2)}vz12a?G z9h>4BE5>v8!u&QkPKkrvP4H-{{xln4bcPCdb0-mvaCB}3Iw~&Ws~fN5oFDk3swT}i zr5qpj5vUmhMO%bUa}%X{dIK$U_!BulWuUpy!|l9{emR}|FIhpT;Nw_n5zf9Cl{@kg zd4?jFcWXB7I|a|~z+0GSJRT$`vQdyGy%t*ODUwPi&>2ka^c09TLC7l}L??8f=fK2a znz$X0NNWJ%$z2O$c`7|0M%mO5N~ck>>4*^w<|ah1z6X8WvItvWuiA@+Lpz4kP_F|~ z&5SuU?i5OqEQ<D>@%3G+hlnh#z*r$5KD!uoW}_4_2r?#D#b+W?1tQ(*n-8zM1d=04 z1(PnnKme5ghnz{V#jroitaa$Nv8Db1x);9C5w{&hPe>#QWMtja-^E(Nh<*)<?F<E6 z$@F)=ciC2PqLY;HZ@^n?o>Nyr;^D;WERR}kgdIx~Q6AALZ67>g;zmf2pQW=nznKMs z7Z<nQ4kjj7MEIIdtHPF=(~Yq|%s+B$7DG?t3@sk7d!s|XSa&MuIhMI!;)VbmyogEi zv#cBo3B4|NPQGxp=&k6v!23On&L)$=&?1>&(&alM$})7R6QkVVFuHeqyxJ~vHzT*h zFBq7S!{y$^sT`BB?+bfjy3C6RDCwx|57C6w(8DX4kZ49vi`QQ3;lz@T`SSulXVUPH zEA?K_HCU<F#JvZj9IKcX5+-&Q5?n9Zg@>P}dASomQRfe0uH2!)m5BjI_d2ft1@^x0 z@Lwn0-{Q|gj=$g$kYKgw5YORiLlLcVn8s)%eY5rOigL^Yaiy$V(wMk)mMfw6Pvhar zjA#$;u;lfD0b84B6;7r6DlTDmU1XpDos*I~!A=#D$VGKcS4_(#@L1danPT(gm|d;s z5=Zmx47#u(&nGG%0cSA>igy;*LFmiZ@YnI2i}$eLcTm%kM<#4A?|~wv^^)+763Yqx za-ImU0B)r@UtPut{bLzr>MV1meGRDNy1^6q#uFg_jtd?g3Ku%uxR?Rl8yTBiw}}3H z9XdFzT^+hJz}_%$i1<D*cCFNNxexkywR;V3(JXwlP6MK|K8@o}`$%vt@^ia3r-pP# z1(0>xUAvY*r!BF&+Th+)FqH_q>WEJ|H1YXi5U0)0h3IYz1wyAo!`vlL#Jqu-$xGSz z6BlLnIM0z5jvI?|PtRfLTR3rG$59~BPth!qrPejVH2^p|Tk0$nvPr|TDQ(M~(>h)g z&`iv5j|gl-3d>ckUk`$l`gfp`wiBWEff^`ik?A3TVAP2-Q5^|8vEQv(nfCKVKuXjp zvU3y}SXcm?`IB1&ZWy9QWD4wB#yK}>-iQJ)rgnL-YqoW6;Bl0<iUN&k*R(%^LI#6| zTla;zfhM_jCNws-d#9QpmCDqp>63gW`ZWs(Z*&Nr+-`a?x4%94y;S<5`DWz8GIASC zm$S(k(ec4_V-)ViUhXcKI-*)+H9@sgsp<h^Ab2@l<js_s{E@+#T(5WH0MnQzdqa1t zCKnIex!or~mr~i>c)X<PPCz<$UtFAfiK4DVE)U#o&q~6o{!K@49Wy|#L#Y-`Ks5a~ z6A(?7*L0GLc&gY^Nl1>rZj&nw1O$F`gXst73xK4FPL1Q$=lRLO5!pZ<OGYMN9?=G% z7Z7;=0lI$SlK+I){uZ64L_yQ-L@rm<W!`Ll{9NS;kGe(OwOY?m^NOk#LDG^Vp9i;c zCq$SE44NkvD|@)aPWtVI^0zUrsG|H3LcdsAic+2fHFYPNIao?kW)cTk+T&5H<sGS% zEOjZ;x2tV^nsKiJfV(IpaT~BlV%1S3edv$WlX-k>%Ko=bwDTdsyx!cV{7B}+{?N>a zAS~-ar9ErzMAo=LEu7Q<*bFd#^pM+innQ#y#jf_d4?|NL^PVT42dryl6iMfiB|+Pg zRZB)IdH=%q_0K6mTX90O+An57l|z=c{_$4)3H$iEAEJ|Rbn9321v!JJT@;hW;W*)k zHn8XG?aS&g;Ozv_bb%3%&iUuONqXr2Sgl2y^F@=hCi_KvtHQzS5qy)_(+GR@U~plP zmi2D^$MBTucSfNdSoGI797)70PEAMfn?I}rLh1LZ5!yKeU%Ky|NnMfENW~2>l+f9m zN7mEZt)vpzXwUJMs*GL6-}gc{is3-wkJ%UhoGPh;pk(T#M;a_!dT01dP++|2x9!^% z4;qY`Y5cqe67vsB;8p!E<J%f@XGT$)uo&ru`{)cq#na^!(tPm5z!qM##tz(*GL`p& z(>n&_{28V#3`HcAfLrKAJ;*6ZI<5V64U&DjnR`9%XBx|+kh~^~hfG2*Ce9!52H|0U zi=t0#UfVb87wH-PA0)>ze?!1;0bVgXY9g<k8*bAGB?bWv7Olfl){hHamo@2++ONA- zm#+)VW>r6-s<-*PnhFwnb#N4P_*cyJSEj`tym6nsN|84eD(!mIg3|gSB8ie~@w6<} zFxUOEBW;w4v|M|4f`L796byDUPaaNs7ecqhGAuAkNMvA>FlClQ!Rbgba8MO}p!Tg$ z1d`jIf!pgyWY(~x_zacQW<;pk9*`T2L94AZ;#jZhEB$=w0ryrLt(I(kHS>6|6tStG z+^J+$=DJH`E{Flijermf!ztx5pEw(0`vj;)BB-HY4ydb*r7Ey^(-uTRlkb9DpGTLP zb#$g5eMbffip~CpBcGqzSAr{$<52MOR{zqeZ~v{TetZ;vmCQS&N{8%hfM~o!AQA$k z1!~iNs~!NRJ<l_FO{0}(-|xq1+eLPWFO!i`=kub+_7U#(q!k70X$$U05zyFwWGH|L z8gjmk)_daL6vQcDoZW~Nq55k7B8FJP^i~##_O)rg)c~#o1m=tf@eiYFNbhe<KS~6V zJ|HgmROLeud&inpVHjI8{2xIy<nrwaNK5McZ<YCJjOM8x{_uk!N`;JZ|B}+5DOh+e zL~b#J!p-&{u3rfBe=-tsf4y@5FcNgYzoJEB%9<r~efd|C)K{avrnJO><7bwTHCn15 zi0w~?6FDyD_r4}Ck@ls(p2&Y?<utw=Vjkhgz{AO&kizrYF~8var0U=1zB)s>#+sB9 z1tB7p`#~?{_tf9#r>LXRng9Bdnek9TY*toC4vTR=rSkE@NLZ-1;6>4SWKcfqZ=Pc( z<XdO|Z8cF^Q1bp0uKsN@;QY_;3Ro>ZO^qf8it8YVZDA{pTRw*=g`5r~d~NzSd!YTY z+}rg=(<lRoFCu@*KS|0Ue#wsTcWe|8iTcdZCjssDQLmYrwc3?KJ9D&<H@!PY+4e%& zDC%iW{okvu|NqEC@VQa=FsBrM$-ATf3JLUA)w&d8jM4;hyX3nIR&1-TRR2RBzuA={ z_#Nc@-7DppQy?epQDJS}rYf|_SqrkVveZ*T&n|es$ooT{d_d<fEjju9_|hH1IPhHI zHApjKF>T@`N1LwL5&;JNcC!37ty}AbVC*}yawk0!0pylr8sCAmd{{M%`}V*y10e3b z0gM8N$s9$jG1)VrYVn_*3H1hHUI^5JoSs@@(TYVQz{miJ^pP%A*ww3Xmq2Q{)%ofu zXh=2~#-2?VhJx64GP<7&#bcBqN;E(njZOzFdTqdZG053^aRuh~sdAeV0V0;vU~(s$ zejXmep{tR_5N19l3w<3MZVyQ0UH0Fhl(LbeS8mK{7x8*&A9oXhc<^fFez6(9w9I`2 z`@N|NUI+9t97TQzSIWA2V$3bk;IEdS&%1c!ChP#6OiB6O=_*71m8G@1^)dOeuE)1( zylk6=83{`#GPp7OdVNs6_1>Ou#unGDjmUXGgtScSX_=0{Bp!kYG8~%ph-q^DMin9L zV3rxqy8z<)7s4z#WAY?ddJ^QH6v)on?t4l`G)7(RGKL^v=Bgi1-tRUHe*gS-%YDaf zO}1Z=P6}7v5VYMBH$4aP6Ul*uznG7}s`Uh^`LNeVH@I5mvCbe#58p_K&<y^l&-0ie zk%JV$Y3=rI2q^a}ZCVbvFK(qU@9@DL8@cCUyE~hd=6p-DBmH0GZ8Cvp6L1|E&t~+4 z<bmI3Rbez)aDNpD?#+wt4P5&?-FSl>>SSi3c(i0|__BRI`_C*IeM8Hq=El7kKeH~+ zY&7hPobS$xXz+JL(be?tvnb)rlA260o~<so$1QCjpy~$|i^Jyh-A{UW0?;ELs8Vv9 z9}kE~B;KEh8w7WH*zdY@j4wezrF9{JQi>)&f|mIvXhMgjm3M&=77W}m29bs%lV)Uz zchX0}Srl0jf304CR7X57^RHE8P6-0(Y?mf&K>$8}mKvv0#l*@N!bJq{&EDJZ$VtqU z+&IY$iV}3sF?^|~{|G~5h>-DI`4PM=)qF6(^n(y!SO)`!O&%BkW<Ux^o+>2dw(wQ( zH*9y9?Z0%T1o6ad*5KMU)nd{UHFfRiNOqRhJR~z9?OJ2TWosE;1O|=f#N>gK?0D&o zRz^PP&Q7U4MZ#BueSyM=o@^ut6ci7*OxD*A1AYByfbml6AeFz;ArR7n?67{*m*RQQ zomOw?)}9{QlcQpuGuYZ5Ammh3N&bj4DRT6d;Ew)67njvN@)1OloCNZv5(kJ?9JdQy zGtikCnS8>%5f9s7C>;;U*_YRY9LEDdUf;Taez?MUBD1gbjZL#F&25h?X6^a}@H*mL zFWFb1I17H49TvghfbbIO%gA%-d=n$C!Jl0bG~N;F?4!@%ii~(^JM2sC@lG+aTpZgm z4YO};nNAldJb<uh47oSUi_=k3sXH!aR`CX9N?Ez?ofI3|`6cGpv<BspYJ1~Dsc#}h z#Q7KORa-seiO1*GL3c%i-)9z}eV67RTmY^lz>Q(F2QKsSY?Bk;gl5{sG4k7-Z=&!^ zndUdJeYhJdiTi?i6X5!xb_>lIQDnhq$;{m7y-$S?UYP=#`S*mT7l1V|ts#2Luf#?# z0dIs+bz{-jS8PE)nl0t~cNUyZrxmbuf`fAV5=%(G%(R!FYY)IT%e<ucoAWC?6v{q= z5c1atlfxtYq)<NY+Ccdh4M|bIf2knwF%RkSp=}AyFDFS|m;gkG)NH{Y5%dcywop|_ zyYuwbiG}lPveWO@O5&kHtu{n5lS()uR6VCeGr3)5`B4>CN_LC@%2M*qhtHo9H2^_e zr>tAeCjT(}<>3>8I^hd}^PV9|KkiCdmBjgNa_MJJp;5iX!+=4iY=G?_aUkT0tpm_} z4dsr1o~%{Xy*KxO6nI1??c$zM+Qkjy&t=~Q8v4L_X`qz)VK_(7cW0f-UoSNJ+d<+o z_o4Be3X9u6s>PIE)mBJfZF?Z;Ay;z`-e0obD9FedSaR6PB}$BUTFagy>?sjES_%xb zHMcHwnW@%w=iU#Ua;ZwcYFeLi`F?mwx0|T^S;oohUC(@IM>}llud=c4+w9!I$q$n5 zLHsQ$_>lPptRqGZg_~)50f}i_QqV!=Lg+@Tc-Cy?JZDdsHXSt`yasI!sJ_dbohys` zmT_<bl)AY&F8s&v-bvrs@S(BXfj%5luNxR~ur;F`+vc(Mk<0WC9h^S_2_HqOaEZ!K zgKA0DOA%TqI5QSlhz^U<{=G7=K?@C7ulqN@ZeEA2MaTNgtF7_S*BY>`FUGZu`YR+! zj)~>h2PJmJN|f&0^44}-Cl;{pmVbl3d<y^CGm~-x=;t2?osef7b=9Of>hV%qs%5U5 z$03UR$RtbWpuwaH1rL1b^YdvwXVOao?OEaj^R9`ztPp5A3Y6<vZZpQ9%k&DG?brS5 zXWpHyyJ2Lu$iptb#p-a5o)vrJAkff{oQ||)Yon`s-J;0Q9#oGy_Tpl3p2t1T`VbDB za7k(UVyubS1F6d(Q&U`L@lyQPDxP*Hhi{tV3=zRRbc-1=%}TkRAlU&-2oTXrfL^wo z!?KC6puE@pSKe2DC$`-VlUrr58i@<wnww>UhB0*>^XDsRYpl~(%y=CkFp|$~#C`)W zV{MM21#!1yh?d4V1-y(ZL^yPV&@8hvhK@@f;3os!^jSyZ|Hu&7@!`;)YakSAEMah& zk<eGT{^nhUMw2m^6w&Jztmn8o0-3=Vu70gH-nzfwX!{h5yUz55+?+H*(pMCK7X+71 z+S;b$d`$-99zdpPr$Qe0w3c4|NTI8m3#+?%W^*x4o<?!Q8*o8Tt`Pd1+A5$wZKk7| zd~*^4p0UMW)&mW&>)IlrF?}q({gEHD`k6N#=bhn-A+W`)nI;DF2=WTrQmUR`GnsxD zG;N=Ew_q|F0prXtRX#vd6&Fd1Svf?^n9x*E4jz5^Y`{*K-(o15@!rmuSVYoBu|YNS z7E~C?NvThhwbNYPxZUOz1+72NrT?roea8dK5ZcDhrnL5nGxElPlp#;2<I<^7sfV3d z`fc7!&@)5aMzilT2|TAfH@2hru}NB0>qqn6T>xCJSXz(B{@griRiDg}xeZK4j1xak zccDC8MkaUgj`cXwce6c&mC+;t%42Hs0TSBaV(EQLcAM|*Q<`|A%q@t)`?@C1lB?%z zy(4nt!XqWG!o$o~YeZUlyQa4dzVYDBblIqKaZamW{lK%<f04$}bPTZU#F+t<yq`j8 z(ui2jc{X-W#+OpL>NnZe#5Z|b8{8u(rFU05>s-f+r`V|`OMn#OAE(*~RPTI2u&GmY zGG0>%L)GVRs~iRMaM;O$TR(ihar#H9&Vf=SG2w{nBU)0<B0Ij$q3-Q!spt27Y;Se9 z9Ei3xP~*9n!#&s&c=ONazc;v9V?uw5e=hrCVPiQY6Hwh_v6DF~w_2vzRQNP#Yu6E+ z9@bA1vtlE~P5?Y_b*4@}r{Q3pT#rpVnvIR7>!3`gu7AJ(gx$Tzzb+<bN7$aJQDZ5K zySyYY3;q_3jP+FIXROxmRM7e@JWj#7o_xd$3e!i7?W!=&j%$I%*RN{b_J-L<CVvUv z`#KRt;&is$d)%Y65&XH}Oc1+tw?SM@%GBSkVDcvbGw~y;DCncp(@0JMp?h<%i^HmW zPc`pq^9Ni^G5Yt<|K%c%ZT-DC>8WCv)Pa9HTCLdV1+;+%Q~T(eXFSWJ%NtF)d5{?? zkLCND*M#Huy)_Zz>Z)3Xz&yqpMc@X}d(69%Mksyxc=Ou7#jta-DJ+kUp2noA&yzYq zb{o}R?@|0Gro|@`|1B_;pUwplzN0`IL)BX#W?BMTjS<}(CCi4NOIa=;k~h4{jy!v) z0p$A!&5-GyA*;i{=`}_ST{@RzAX&e0|G2z|MKg^q5LNX*SCB8MKL_j_`;WKGf3+n0 z*O&K7bq^$KSDG^NpJ@8gbM|{UE$?*@I?g!JN!@<OjZlT~V5rcZsBlijgPbrPQ!8hF zOq;$z6f|ZRgoiU7TU2NRgfzKnkgwlai2Du-;qb4|TmCHTng1<x1+$Mnm{(tekwy3H zGt4}fj+XpCjGcEp)&2kf?U7BHaja;`j7nxwD#<7nqO8blAnRBeSs9hlP)4XkWshS; zRwy&$7?C~V7>C2}`97$w&*%F7zTZE(uG@80$9ccsuh;ASdOe?y$NdpX2Q85RK-E8$ zcOLU_daNG@U_j*Me8;XB*QRW+%d3e=Qptw3KfC>kE}U*?ZN;e<<<x03_?C=Qnx5PJ zi%q;mZ{$P`4=kIFO6x`J;SJ6-T}ZY%`?oU4_uGaq{o!S`j`#te-5ri4yNWb*$C4jk zsm;aSX*XJSG8>3zl^ISW3;Z_aiNBb2?YN22Opunlp#2An25v$$*&__3$Q}96JNb%p zu@}JP94mLhUIgEgg?A-*sN>6f^SWQQ3ng3=Ull~pK51H$SRr(nhNoG5OBt1&i}vk7 z;W0m-xoul$gbV=HlAwTbo^MK}S;cGk@w?AW%PXgZ=>NCNy9aP$f~(kpW6=RKbfjF9 zx+!Ox$(9qt71J#m;*#z1huFo=+IQzkVyXQ+gmi@Vt;4vw+kbcY*H8fl_U)r3Iri8L zj8>e?9*klw#Z}Z1Fx3e3?kFU!9X`7JBMM(b33#7dgQ0R%6Yepuc=~vXj*$%Hi_N3p zz-Z4=qCBkVH}}}sGv7q1UYDdKWDVMV*6S6XAg*(j`T<U@f`+3*B<oym&zqQ5t|hxU ztj2^mJT@gGt<C|SD8bGT&Zc97w<q2Iw;`%L(r6|XvB#<W*73_6h3XhmpFArJ9H6uL zZQ3U=F0<EEEbzA)6<&Q>1NPYACgg=h_l%K*ImLOp_vt#H{^&E%oQw`RQ7KBbN5oEl z$Co;O*And;B{3KYnDNAVEDm+ea&*N@nyQyDxmO*D;dfjK=wQUg*tnUvQ=$h8#paKF zbiN04k?P4VuR&bvNVPCI{=`lRjs6^timj0znt&1+EA;Wy)s3>Yv%By&N&Y<9H#8`l zE5n5W5nZJB4HHSM)IiDT^gv+z??%OMkS$WFexUlhnv|5HiZLp%gtKA6M+S<%{98ZA z7C<mGKAo}}97~^BH?F*-UZwOsqTdrd=k7eUB(ZlUag)D}I0CRo?Lpyckm$2>T1tf5 z2~4OCXE!CtOw;9`FZ7f|PioMEUyuzyn^cK(3T<b2Un+<&&45ZDuxZbmjKKzT2+;Z^ zZ&>i9Z1fqSOj`po!}$f~!bz&Dtnsd*VVfLx;S#zJK|;Nu>WE-hFEZ&*&cs%&Z<9X% z!Wa>yMh5ARgx}N=-+ZXI!!J?IawNOVEQ50F^8Vb@lYXQsyn=Fmrb6FM$r3v1u6eWI zZMEgM4X2Si^L!r3y?56uZvJb?S~Uu72;p$kU>7<t!UP)o@IoVqghZJ?$XrG8g2gK; zeOT}f-$-{S`%TCAsq8d-fr{F@dwI~VodgP~ZnP5K-ii~ZV*Xp}H&~w&noub1jM3JY z5m47glq#9whxhkd&7VF9H13K4^_#cbFrk0(1c_zbv6?@8k%1j}+fz>w_`hL9+o$L$ zfN>+CbLOe$;RP$HHR1Jhz-hi-h6Z!iWkb1z&z#kGFz{M~+4^#V?9h#nL!Q5WXo&4T zw$%H<QcJld;Ch(UA*UezJ*m&bZSB5)+|y)XJ#VT?eh_EWkKwFhI&@_s*8ntmR5J`= zTtoH}SzfjsQG%bW=Lchu>^WQC3D=IRu~q>y>(E^oeYLNT=VPHN<}S65e1wT|(5`vY zXWSBfv|)&@u_Ox{6CycHz5Dn3%vmH6g+5J7NX{@4-iZ`$KhXpma3k23DB*OjO*J(x zSlljyftWz>AEnz3<@qczvW+N!Mykz_{g5yCHW*^du7rI(D)Jg7c(C%CSu~F%9t4SZ z4LV-XGf-F-g)9KjmC~c1vS_3+dRk>6&&Z80p`KCg?#C{3@1$<@I>8l{iFV584V+Ig zo<OHfIB}Rwm?}hRg5Uge!3is&K*Gf^+ddCU#TQu7N+AQ(nkshpQ(soK%ujx_-{ovN z61tkj!)RqQnwZZ0qV_0dWZUP|g%B8As}^JO%6<WddE^y!eOCYIJ)lBR;TL|tzn`+; zZ#--k=Mn}85J(gXWm`iGxE%-v_QDFixG8MjZYXhY#+ODA3Dtk+8+_^bqgvO5UCYaX zt!;tEc6=hMIe&!gUX~4!HX^kNjXqVmAu&%oh~xhA{~2bFVLu^ou+2)b(4Skp9k21y zVQcpUY#Ya>-Q;gvLk$v_a@n`fJq>b}jF&;6?<rqf#@7KOge*6IFxtp}Za5XjxPBW8 zXn~NURfTNLPX4_$+f5`8ohWunzUPVy4l?*kWJire^K6U@NPvQLS)lYp|Kc6p`5!V$ z*SUAU2{II*#vl#~F;IPPt*D7Kgp030(e}`l=cEjG@~VMdcjVbUn3J}V>e<9>3;!Rx zMeY8(XpXd1h+Lg`iQj7|v<?1j;|y=SP}&=*;#2AW!vV5(Hspa2N_x|A@Tu^?{OMxd zP*~LdRQERskI1D(soQJ{qOJVtxn6#GuJmpy|0iE)*I60?)_-jAG}!Qof?P*6Y`7nO zAtod+?0LR>ZPKPF%8wXh8}ABe{NF^<t#7>fEE6{p4(nhx%n2$`tVD@wrGr6zTr%W_ zK?sb+F`VQY5+0GXJ!>0M3TC3o_KU8|yjnrFx!Jn~<_ck>k#{?YDondENjqHMV|7aC zIc%YTveK%F^d-b=(d10bW!Rdz+-2g#u0tL@x6H}lRb*Fz1y+6{279wkjI`?-CrILv z>xG(FO-)BOyq6&#Ik7`)FPZ0wzm8Lq2>A`;X7u&;bmIH!lH~XLz1p4o>|fVUHB#G_ z$K+o!f48>cwt=31?_9$2Q92~{HT<FTu{`WlUECz^(DJkc!w1M?niQNSV)(kB0QzIH zJ6{(!(kz5kwC_E7XR*h5d_mgsOX~4p_8o7qul2>V?Xil0c08<*>7xm1Bl50U@5wm& z{Ro4;wYQfqGuQ{3Iq^w@!HcQdiNC^Mb%mz^`}=Zkh4{kFxp;|j*oo@#D!L!C_q}M! zKWQgQFW<XV3{>=lZ_w+E#6A_bgYbxJ57hrOm;NGE@$A{SZQwu_n)ekt5jNt+=q|e` z>ty^HZwzRB6(#5ye(YSV&Ev2bRuZTbX$wIBNR`Q7Rgv2SZfPRJeHa+-d-mP*S&!2i z$%!QQx@4d?JXW|@+C9#?At%kIy6VXTC40*z*(mK!A?!IguwRHhBir;y{S-d;WcR{U z&ui+VG2Og!c2C$%K(U_Or5?`rmRf6xNQyz~4b$Ms`23Ekf3Y%%?Xubziw~{|fIZ1A zb#gapqHsh#r>5sjP)ZbU&uBxMM`<D;llH!daU85#b*^*<c`T{C1R$-mft>>Wjs2}~ zfXz0qW4AT7F~~74A26~ndA;kC`=~E)oT0fXy!NmINeOziu?!~1Y-lkMN`Htx9CbeO zWA2P!=m|3)zVhh}+wqZV*NY`Kol;LJ4!bSb5O^1hGQ<Rgi$U8w)l)c5%4|XJC|IWa znf?vzs8h8r+EpXY5IVaQf$}P``5RZ!gs8oRcone)OTf#*$@OmOm%2A%N8(Yc=n^F} z9EuR&W$V;ora;?t#LDVw*QS&_CuaqnC?$v5cLc(6ow{u>${ofKbg?Esr4YuakZyb7 z&BYhfDmMLm3(PLFccIFB{9eD#P9@Ky;;UryzH2j_IXB{kg)z_=x1?E7$}ThET&v>m z+<&YndA4$zY#hlIY#OczUF^=kRR^6@7=W&7thrzK|1%7Pm}jt|#SkuNvOl%h(G4hz zWhdA^+uA~noRZ*2OX$kAZ&cznDfRf}LrF)L<M&`*kQI+)UZaw$gm8!MUS+-~=aa|~ zes(a+CD#-gUX<;0G<RX00CBe;{&3g%g^9)U7C$ZZoTi`uBvR~q_w^*+Tbn9AZ_)h1 zkn1^UyKR}=&m#aElS@utCtY6(NSi;bo##uH%6(F=u&Xb_fUJi9%r)I`m%)W+nc?*! zXQ+_KBD!VuJR_j%^Ud=wmv#&mvfOA6D`UIj>W@47^holD^@yP#cGP(#AEb*S>K#U! z1bUdHQo8Sa3mY%g0VXfin))RXx7a<eee(pLaegis=Yn9m^vMUK(>cqTgP|HP0hp(^ zUUg5{PD5=odx@AQf;7;vplHd^k;VBb_(#wXVApzErrTg15?^yoV?W+z!aJ^1N4>Tn zBPGN%0&j<=Lw2uIr}~^T<Vb@@;cE!gB<Y3tURBZ7@k%7}9iXb*999_|c{NNBc=PJs z8joE)ElyWIeL`V9{XO;iW%IV9PYi~?<73R*M;apzuY#buRPwM2dU&{eNLPRK%-Vj6 zwPysM@lSqcGs0PERK0n{j~|BCi%2`<!?|V7mf56Xuo1%M^-n)O&?=kiao;HrzZCXM zDNim|#ws$W+N7o@j7j%H51;bY_hlbXBmOd>tFy8Rw;A2T-nhCQe!n~$Mn(TX)9M*5 zn+QeQ3HfJ7dSI)VAQqytu~1c3CF^y6MOM4bSIU2dK2-)O_y>Ws#XRrbCqfWcV~m@w zdvymD*60Q5ymS-O_sOB%mqsjLrydv#H^}QQbY3n`R0q-cjsTVEM;A2{-y3PDTmg`e zncU7(py|6HX5YNNa3W^fjf-$vJau9eLPVzE-_PLJ&`ijhkGJ3Xf>%fu1(EdZnJ7hF zqLX>nsgdLSLU|*Zht-8E+KA+tZMBhb(p;pQ`=bVlBSU5p@M7joM&MY0w^C^tsdnzZ z72`x7@&Fe)vHNIx$bNe$!rGpGw7=O`uyCGEgmeNIeD(2771YU_4lA!^9G7!@X@YY} z?<@<n6xIkI2$Y{XF=>v_(=g;_F8SjebMJ!WY|?j3yS|7qwu#To>tEkCNGhMmI7DG6 z&l)C7MU;>ccQu=g##dk0va2Oo5gINmV!GVSaa<*X+^$gkf12dAf-*eT^Hsq@wGYl7 zdoS9FkevI%IxVUyMe)pOr@WJmi7}19=y4FC#XKJDmlSqehBn8Y6p>n~K8kU>KxoC| zOK~Lal!hpWW8?Q%vuFs@ts{*Sc<F~dtEvYo)&Tc(;c}vqae*axV{$N8B($5p-!Pe4 zd3mf1XG;~X-w72+q=K8194$fGY^KsblrB=TPd}rDoVT4_x#eDQK1xM4XJ3mt3mz1@ zPV2+wr8qA$5?JMBOI&#RECW|Fyrz9#Da;sT8n@9!pu&re{ivpk>$!8kKUfYg4tHtZ z-f(-c!C|7~kqE*3`~A0hz}qv#;dTaqvmRUo5?b0k)Tf_F%|ng7`xa8W63xg{Rmy`X zk=rlD@P&|~{Ht#EqtKK`y`MZQhwus%beKQ@CdyU6T@W&PS)QEhew+vaGbb(Q5;CU1 z3X%<(ZVztz-tf7bpS*9TdM{%2g7@Y=KmfNg4NHx;y9=8994baYp^Y!EELIxa5+5v{ zZg02A!8~)T$tXM!ldoZ}Z*)Euh|x~h3u}AlbRTxk{ZuL34yDZ^*hzhz<>NOKy=vlT zp2ABmN>dUeQ?5Wgb;7~^nkQ4{r@`jb!Eg$SITxAlrx=F$S9_sWgqNl;E8-#XeSPgt zKaaPLXT<mIp!OkIyZ5~3abHeu?)d&gm8?Hm=>4x+o?7Ie;v5m&_od;-<8yCaoZFnU zlP-3T-4kAsqeWh~NOIwC5p;Y-TdjlU?N2gDP^Frxk_EG*OBD$XS{v1#U1oZWQ{t)< z>xanCpM52KJ!fNB$HD{*Za`?^5rb{wr=?$>J#iwybH5c-4e=EBRoE?#WUV#GVc*>2 zr(c?Vso-8EOfI!(^Wr*Et?>vvws130jq^t$dY+PJK2&ys{E>=`)B>m8wH4-PGrZTx zMI=qAGnqII3slcv&W92ec^#lOLn+i~ow+>gmL_AdEQ*88^6g&`Q!K-*>B<)lxtacO zkBc~?He-hFqZi?q8qTmq-h@rPF7v`chq?zl<EdYh@=(3*&Bf`Wrh9f_<?uG~En=Am zuJb<CCU0Y`x93@zjd&DJH8HlM#-2^qk%sWL$L)2FDfVkD!4}y|8ll-UX^|(*eTKPv z-2f4%?!8q}e#67~u7UaED>NCw8vc|kdQ{U?rB33Q<VB%xXtUA`&PdWnl_?Nb%ahT_ zj2CDUs^jU@I>{$7nb#=6b%xm*cDlNmidWLD-zUvDLm<%=mX4qDW@`P4)O|I_&4M1+ zPKkILuHy%6ZDv|1-6wMfJ?Sx|mE^M!OBn1X%_eT@i%EV)FOfG}<=Jwq$OyaqphJ($ z7{pV**W$lSwn%1RN^fSi6o?`oBta7=x$lRq8YhjEIyj^m{CH>%G2aYHHKo9*AKUAY zUl&M^9Kao!ML65(vVXxjB`xpxto`C8h1OC{-_`)doi?Z0w1MHa5MSn_6?or+KMORW z#q;)iqipGNS|y1gk=sl1c0E0{l&qbmRy2xrnO)9hbv%7U5tFx-uY#<2M2RSpjS$gM z8T$62HfTqLDYKBUR_=)Bs_5Io0|}diQK1()K8}gndq6iWHqiDqvCx{gll$V7&UDH6 ze)uX@>gebjk1MN03KyaZfVg`!^rSnIrj;wxHx~>_G;2*UILZZAiZpBwCW1zP7m0{$ z)va3v8HTM@ZMDS0k<Z1E$6is_lJ9v2mF|M~B4lp)E$6cPI0~^M$}fX%WY4MRa|l9D z)p$uB{MrqeRk<tH{n%@pP*WM!he#~hzd=m{Q3m@Go3wx;dPf|fsDfv<5&%Qb#F*^g z+^}WD0Hph5*tL@2YlDf;{MIfDaQSK2M5^wBv*c!kVYKG1K}Z7r^|VEVaZJGup4H_) zF=1PxG5ipB&INTKLPT!oK06Zbd-Kyi!NlfO1ACt=qAs;U!2(h6>0Amy@0qVYrohx< z&9zxqaQAc^octj0Fi~gi&Y=2Dy;@8tSfDrG^;_p(km|{9{Q%W_o;5*j*=39BP-75e zq29_=%A29B0we(JUB9MY=thqIGORi;P|>Wv6D8Gscs5kTB0;xhdx<eT&n2*(j&vUc zlK%*a|3eYC9ab*l!-5nXW5z=f>}+^}-Xs+`kg__S+r%9UC13V&j7&{J4+_>ep7ucp z3+%uTeja&DPqL9dd$>O31E}T7;f4qw?A4gHH}v}($Bgi&6^YPbVptzCZrZnoi0Y?% zo_*U0r41XL0b{`{ThB3xS%`CEJB3`y%Lisq2|zw%?>#6IW|y(!8xB^&KeDOXpGpX% zKg#o^KmmPSWIr)?Z{uC3O&jbC`f89>UrEg+qAG|Nze&g5u<~o{+q&`Ag7aOM2+S_` zg9zFWXmmFRosT4e2L%Gd-|}PBFt>^2oTw2D19cw1R)cQt2FycMDF0{{e=59!RNL4% zG{Uz=?O(R`&FvlQ)*5n7`vs~m3A*l1%X~C)p%-5n3p#A(X~nw=p546MugZrvILGQC z#^tpOoDKwuc2<KCx%MYXblQ&E)8ucGsx^^q_T@nCjZ#ihq-PMw$<Jx5NAmw?AqV$v zbBVb3{@z+<RF>HM${08-@jNOM?_{=95AHg<{zwRxEaa9)o;*kt3#Vw$1g(A=o6}bv zVJdV==0)md<S(l>RID0%9U<8l5y%Rk+Cm)vwb4KlXb}}F^5EljIxcfT744+XZf5*G zm6!z7g>>qd>_jPJK8PA=G-Q}Vdd!p7u6CyfAO0DC!%J*!#d={ygoMPt0C+Y3)rGrv zpN>!}_HD4PS6pPFD{p{V0CyHCCDffHROEdMcC!=T^=sw*YEJ>dORneNu*Rx3AR&3P zcI_HErcdjn&IoiPOt{j}oVjCHpHBw|t!6Y$Tg;L7-Ug)cf5VGm%g4X}HCC*Dux&V( zl3z9QB-AI!h(G&0$4ZgCF;lskr?IS3pC-am{x51W^Xn#*$U=OGrm=;RfW|90#(EPk z-P$+4#`ujH)4jDS?|)E{BX0=WfRM)y2*jstpqO`|yjs61;H8ok1%7cFby0l`RrS_2 z@27jNVfeoJfS^_7n=gcL)c<nV(rF1f9n+6yY1vk3H3Z42=xO!~;g|+5cy#agH0XP5 z_CH_oHiEL?LZJ_QUyG&$m96h99&Eh#*Z+8z;1TUu38r1!PSE(u1-AFi8{GeF&Vvl2 z_Jg`;6gss3-GqhAV{)MmKl8;E3bbnEXDBakJl6B5Mee?BtI2AfrSVe${rQ_~ywN4K zR#ln_A}E$Ue;_OkN#&(dI_na4*%gmJiL)$|{tp8weH(%5c^|eL)D5_?9n4<z2rt7R z*N$Po96gtm+GI!8u^x}b9;EE=?Sw*3g9uDxoFuon4f^W(Vwc_vXFh3>gL2L0y)?3M z#O(CO{!iagL={uU?!>tBP{N}FM%>KkB%AI$ZD=u^&i?q3;`=E{^V;o5(sF4ORd&h; zMS<+AEveex<|bgr9s_AAKG$h}L|Z|!_4{}3OrdOn{dPu|<6HdZqFP%-<y)ewEmI|_ zt0`^DN2FiBi(6=^->LOQFG@*LGxWQ(tcm5wk@v5A&*n<@klTg^dN2g;o#83BD}Wdr zz2OnL^9!}|dvA@3J?tbbdueh4`#E)@6^#xDcrAdLEmp=!0o9;huh+Q`7|_jgWVV%B z7rRS&ox5K^xhWATu-<`8+Jkq-^on<i*H;~$hf`C*BqF&)TH-iKD@Z0jd<XCp$_A1S zSJW{hsBxr)YYpgTQhC;=nJz*vNK5>&vmEU;DJdylMv~0-t7l(U@pKs=x>@;aq2{2j zXvI3dt@4cZ=)#~e+)AGA3D1#bAL>gdzi)K#ts!)Tf5t>P8wi<RGeVSH%SfJ`NxmPP zZic7>?F_^YyDw#42C<#V;WT@wy76A5a=6t5$8rLfRzjZ~lS*AS@xBgfWxpQPYSbZc zFz6Mh%wLdx_Vlg4{Z2r8G+R0;9URQ>+$*1?dB<w(CBDAaV>;JFxs?4(k>z`9Of=iU zo*eb6Vi7fgiIhTIhBzYN(VKhnH2v;?&cpm)Vb(@C69}T53whFnm2rt2``Z2Ta>`p> zE}G>Jxzske97eQ}xt6DV<`X|S?9jYpJ`eco4ACja48PLw97)rv)Sg1;@f^TJT-W9l z-2W&ZcQqJSw*x<`#;*vp&=Y7ysQi_NsUcA(XUfbpfmG6poM4aYzq!bgNtY-+n}Y}g zV)`Tnl}aJwF`&_kpy0Q`V&)+--+fMwG(yEO(^rLsN|kfOWF}OWJ}1itGRT)fdz{N* zW|p0s`x@%q!yjHw(C?+0zgTV7L~8a61ihMc%1go1pW9SpdG+~^fRMAK$BS@`$4}n< zL=c~8IHBr25*qs$(zK5)_AfAKvtN_{PC^xNYq-89xACdGzIe4`jQNOLcb+4D4p`aq zrOaG6GApvec;$0Ucw)Ls*Ix2=1_iT=)#j?usOJmP%QlNIQ2Ji|rU*ak=~aui<9CJJ zjA#5R5J|3Q0x$T)Y$?0Msi?Xvu$kh_x|usARg44kv+gbVoH_l$gGL6_*Y)-sD?!-% zg`w(|p;>gbdi`=_82%DF`80;Bj^i$lVcglKA>3J3(cBK-_zy0>7`4VneIRpE#5at; zvnV;Le}}jCAjSqCCEc2|@`}o)%irlduXuxY@vDVB7d<O_23tccEk->h`XyXCn@S5b zDvGOa`)9`6nf=Pm00MYM5fH$qbYgX}=VR%V=sK3KKg*hpYqG~5yRhC*RIz?GpVP{F zYjSryr~Ujw33en0L28Hv-}-qXQfR+j9(C#6W}_*gsG5<LZD)SPn>+X3eO1B-O7RoM z9}>+129H?!8A;q4KGTCnWUM*D+)yc2sh{ACeknaGyO^l{qq?%N2X-PRZEr56ttgx% zvf*ToY>flsZ0m<d?u<oqLwTLAFX0KjVj@GiG?n7@YM};BPSa8|zHDmdWo>_|apeyG z;@I7pwg~CIBZoAKnz^8Y%CVzFoQ|IG@=f@17`?LGcpd$4&mDp5iEp$F4C2`{0O<QF zoMD<(xo{ca4W9LhJ)B+x@?rUaR=-RWFk)}hf8tFzE%}+0z5z!-&<=HFO>+ibD=&{0 zl&Jm+(rmFcQwJaoPp>A9f4(g<ZfY=s@{t#zblC6WTBdLoWr1x%g`wfFO&M!*Nd2Sf zbNiBIi(>mj>faczqE?h{kDPl-8=%3s)Z24bNM}NX<fYFZN-tW@+@~#!#@$lI($)*( zbFE&-eOo@lGCCNhrN?$Q_jT;MdWH`C2*$+g3Z^S?D*bTR8!B<$bWC`!f~-lGr(=5D zTICy`TZRxh*z%@*IITo_CGF9anDxk5e}R@WLY+3y4JW;vYL7t5zqo5<Pr2x3Pp$cY zxPG6>_+VTUHlx6-AZ?g(1-ICi9ZqRuu!z1y1eFtJb4NgoyI`JvI#&_IxPzOY$CKfE zNN&J2oYuln-=RmM-H=0=C69}+JHUTkAP_T^U9vqVGuUmrFh}2!fSOC~kJKtS>^ZvI zOR=A(D2<M=*>_6|^opo_f;>^anfOXV!i}!flN)4kQsR46MR;DQj<&O!Q?HQxiqL#w zWymEel`i_Y2b$q3+bN8{F>3eneqMgm3Fnb4v?6rww~LJPnV48k?~{mPv%?;`K+}DZ zx|)V(^{LFB$3wI)P`-+83LP<VCCvCq+hfcpjECj@Zn?3RQ!1*cmn<{(^O0-1gRD8H zmz^p<g?D9}Ha16GKdIEKvsZ4X5WZZO(Sl2a+~MfO-sa{A<FFvoC0aH*i%v*1z7x_t zDI=I{N5*gQLeG2UHeH%nNgj?9t4lZMaRi^vrPX+0lH*lsgmYLkf+Z&m|Mc^WuX*ef zW!t%CYu)yGPH&wupH`2Y!jpz@>;j{%SWgDwUDS=Gfi@ZID`!XSjZ=V_oDLPy^vf3% zk{(0y=C&L2Kd%?B5H-Q-KPWs-RN6n=k_5*U;E#`e1d*l48^_5~9Q7jO$^E5wD&#am zZm?v$i<tlm>$B^@dsn|7giNTP*V{(k(U-V%_3@D}%H>U$MRD7??Wqlt8wfrWFUsU- zo6`kc0GV|@$UjG*`E*+o^n}HVKLgLNmj|fYn3tL@PA!_SmUbL_Qbj`h9EjcOJ$8!$ zHugdnc_i|DcTeA+qyliHOb8SGS3^=%3?Ux8EbJq*ofCy+G=!;w-M4(bdDX1V98@F% zc=@pE@?$mMRWU3TzyytbB0*4j5>UJh{?PS`FfOjy9A=vpk|^;7l9ttbsL)~sN#-5W zB<h$H`%IHEpCSedkB?WCChtfx%Pvf<<(Js2CCQO8i%bNebPU`brMU<dZQ<v1QIk!b ztErt#+P&F0N3ldqytTERj)&!<KCgIvGaFS-4@8Hz!1_tuMlF;Zc7eCCp_#xxh{WiT z#uFz}qxa<}_W6@VwNLP2Uxw{_aEA#xSK8Z7sEj^?Y=fib*|mrv`tZy{vO*xl>vul5 zsVr6}K6+EB;C5p^Dt(y8M?6$hx+JeZO~OzVv{;W;k)-1tXJW_=PdN0HMP0kf)+tgU zKY<^E{6k;S=5z0O+YhW*9n|4N9#sizd&SMVfoPaQKlu-nEd~vL=&`e$AC&W2$@oa% zD<AN8Ggw(;><HR}>`)R}oPbdI!1WkZmJ>qgsnnQ<W_ihlyGIg_hGv!ZeQxRCl`!$* zBY~-FC#FZ=bl+SqaqTFcfv57G`8;`GPm2G(Q#ARLF%+eedEur!ZXYy-Odx&Yjph5& zGlfP4)T(}$usiSqdNBof#U{HIT0(3PdGwOEaSy!=4-Fyma_*EPIn6#7)lwrnUs@g- zA<idVD?w6pGro6!3D};rC*$ASfuYthC?BBGMwiz(9kf_K)aq=3K8TA5JEz_I=|E2u z_DcjUB^%{i1p}OOG|sU-*NUel#p38e15LO2@86__kJ=TeuWzWC$LQT?)`(HY%Mz++ zj_9eo_LnTWZouEx>{&rJM0YNsoIT=G)=c$=yTi`|!Gg@zs)|F-a38cbu7Q}VOAtd) zi$8t1{GCBm&xBS-F=fOcv<R}wJ^c32jtbeRR!<387iDSQ!di_@4{B(Bn_5xmE7_-s z3Anc538Ek-)IhaP+k&EV{PTnygn{-oTeOc<*EE_{3(@tyf!Hx7ZkgR5)s@t=%w7kW zyT{wO7pb+|l0yghgI4JQNz>9khHA6+YHAnB18pjYy&>jcR7bwU`Dn69+c9~n`>EdH zw3HvalHEYAw2*=xq|;4Ab(L9uV|@NS3I%dF&|q>VU2~8Jc~-HayWe9<9yg(R4xXi# z=!qz!F6{mQE%pP3snUzu>ZDp{VuC2$s}>?~fk6yA1B}*DY^?C43%MnftFwrQ41#*4 zGn?1<3YWc9o_<UXQ3vd(1k!j*^1K)5bX(r&52tzO(q9nD4Q(qYe4cE#_TeB;b}_-; zagigS18v;RemWm@wtZ>R9TAj1xO`(hmvX!jm7s3Jm0Z9$nhw8GjDN`YpE)AhR1V4^ zs_Z$a#Tp|amKKmZ556T%K-xiBJQ0(YcIjYvAyM96+r9F-NE7xY^QWD9?x=j5$EBNp z+SS^Eeq+sj=&bpdbv5$^cS&N3ivJDnDJ}=wGP?JWN0`U{f}uTIqMyUu_<@(#ILgNH zZKZ3*QznCsPp&RC@Aj=l{-Oz%%kTzE^kfc~gT3#erAQ{^JvG>&v2AJcYHTOR3N4cj zxz^n{H`&~G>fqG<>jVHLc<Z00B=<-esmw$SP%&Q*xtO&_FQ^nMz>b2cnR~pDd>{GQ zCr%!Q^W)!@M`U-IKhU(#z4vg6RQ<E~BZW}bBO~NpvMT{+oTX>TnTID|?eI#|4R;D8 zyNCgf1?W_Vk5^x0M8#`RoCA)SmrK~R1uOYV_@Klj*bVo^Hiy@+Occg@Fg-708YWO= zmL*ZDS<n6OQ8-M3t*AQsHLOhbS)jyhIrd|bdz&*G2}Yoc*->gud6X}WUuB@0L$2v- z_HoVpBSw}z$7WFIUzZ;_@4**CJV(rOxnZm4x?bxo_Y6C?(+0s)w>k<~yzh{Ta2$CS z`!-i$rFGd=>0Bc=8&S58M^0uSa&RgA-ew=A_bcSG0-$(c06+u)?OhS@_sEmd_UOqM z#uHsdmBy~G&57V|tsN#^v58ncBUcXeH6dF7o&Qub%ykG;6H&_Gap^z${egqm+^aIf z6^S70wg3m4E)v7sp2;PNMgHNPq2o6$l92}ai}wzDC^{YWn1znaK)>7A2kBX-mCCig zXVu-7or_5%b$~hH8hI7575}pJCKLCEwA>?wwm6E)`HwUWNjWnj{IM;9c8QC<2^Pgi zweDDL%VFWl4m7C4ztUUyib*@5x%TF!PTb|n&=$tu5l3OCuCQs3l5umVo9EfGK6r3> z$}Mz&D!DM?jQ1%jJDvz{zjL`i4zXJGw_i&>Kr4Cs@`zlr+t{U%YC5y5@Ix;OZ2k1& zPW4he7z6cs=yyqV%gMsJpeL6r-`;5uO25lkXLrZ{pFa>Xm0039Z;N)ZPd_V{YR{2Q zDB|CHZ2P`u!+kSm2li^`)dlU;+flY6(KEy&XV)^cw`a&N4}R>s#SqWv50d82-Lk3! z$~W1R$C#?bAgAd+s#TFUUTTeCaBT+r4#3V!y7oq4-3^A`TYA$Pr5gNaMyhpp&b(VG z(N#4(A_i^XZ4uoR5AeQ@r=hU&&(c%CkGSi8Ye-nYV*r(4zXdMR#V)e;E2!C_5TD@m zT|Wla3!totwy&^UDOMX+P#q>ba?uibKbpn&NN5f{(^vkgdX{m2QG0VQRSs>F=&5PW zE?5wcvrciqBDQktF?mriD@+{fiN(`oXRgF7>JJe7b5Nn5L!Ix$Iis$XSM;3a+#TiT ze3tuprza)ov%jvD%Vs`@!`$BMCu(-SvF}w0az31$lQSl}#5>J)a5`5_DTg!M^fJb? zxYyW*M@yk&TKFEiL6R4g&B3d7qkQB!Wx^IZ+n_C@$62FElBUF&3w5FYa70567xaOd zMdpurso!Of{>*pKI{I?{P4iN!a!E*$t%Gc@ce#{h9v~UH+uV`k9mtTyIleg7dYW!V zJz5<D_|DH=cD+T1BV$UezKQe%6z)_$R4s`*>T>RJi+^gkM}wJEfye0AWc&&Qed!^` znyRdI3lAEC1sRD4Zn8@*vd^ggU7#3V9o+$KybriV8`;-gS@fR1;*yR&ig4_T!a8?N zFEN;41cu|+`q|Dfn@EvP&M2Ka(z)Va(kyP%Cn{%0bw)73A5-{*ndg7KTIfo3E;ua| z-{29MC&u_-KBqW$(O*?n^0Sd=+c}-?R~iy>>jS;d!S~BOcS!MSh0Ba8uAnz3EtG)c z{i_eXJwqgH+YVXWGIYU^xKn5Ye))xomQ;+>8TG!xnvsCgsRc38YI+PKO7Uou|10_j zFYGaMBtA!00~$f+)v|I;YRRb2nP$$yW6*hyx0(vuv0x!clBI%;iIJS_cr5V(6BAA= z39)HO<tOdPP7=z9j|_(XU!IL)H#O;BH=}kXqB?P@&33h2Zwzt|n6LqbZ2FZU$h5AQ zs1FzI6Fl~r$t~jD-E|8$x579OW%Qmfi!B6yO)8TcSt$)+L8@b54~ct@sQOH&yWF)x z7JNkL^nzF!?)9YT8M2Nj>EUUpEZmlNXTaj!sY0*~&e6+d_>><kA{G<0+s^EdsbOEG zGU<Y_EB6&Rk*J<t><glaM&EqQcJ0`U=MT0C<<s&bh1N5~f%kVo5(2}lN1p+Bl;RN& zEC)Xpg1VSLd&EwDUT~7eXW1Gg_&1?fCUdFV4l1AYZ!$b%!&qU{XvBEVj@lNaG4Ek# zcrE{F^Ypb-i^^)wT`#>RU$%rz>YpLu_r+!(OnAbWV|xmh=ck}?b=A(#a}H4Z&$>%3 zcZSPz`Q}Jq!TNEEJ>oW)k^h&kxIYowU`D;W(Wl;~@C~CEe+Vr}VC`q00F!PY|B~^v zTo2%!u;?m0h}UlH6(iL>H6r&?c4TCP<|7BW7DeC1>Tne5y7WPOmXb@q`1>ETJ<%2U zpcR;xb*xVf1xzYh?0Wo>WsoLo?aA{vUAoYxKW}-3+h+AX$Lh=J9s4e%f=Fd#&`W&Q z=i0|ab){O)tJqmHl9IuvWENP6Ov%9Z1aZL&H-<)e&vW3nT0Q4c%CGjaO>FRN78g*2 z)|JjxVL8&IHIwd0=n=p}_$z}@AYa6vmQb?aIq-{%)xL?zxaH4`0jVK(n(QziTfIc7 z9(dcGs#lJw`UQbvMs`$!vfoVx@0X7h#x#Y$x%Gxg9$?9BZw+v|q*FJgt-L4hPVgw2 z##&W73HZmGQl}oD-bNU*m>;C2Y=5^9#R%oAW}l-uq&$JRg($8V6XhpoMp0(nJTFk_ ze&_jcoMe#c3a_f7h*Z5ZFkMS^89VseJ{d38(36X}%&a&(W*hkbKdUeqBQ}9E_MPu{ zWg3z_lk#Govgn04@$MS($hmzY{4+9sUFw0Sy_>?TeUFe^yze##G~{NFHexARM>dbv z;V}?Wp|fMHp#VK2=p+gO7X-;6MYt17HhWo+Uhh*-8@ILGAX12A_I`pE&{hLy<I}bp zy}+n|p17^)4Rb4K$hnbHG4buZK2Fb!mn7{wAnK?0?EW@_BmZHpD9|hK3s;ap1g#tC zsk$2XX}LpBW)pZgaNN1-&@Q|!Yln2IHXw3)H7!Bh3tiy6)aty0k?4Ivhzxfl$Q1#E z%&M;Av$EfVTKe;k6K#ja8VhZoLNcX5YvR<swL=dKKLa!zkz;ELeT((ZBKGoM#Y~_1 zjhud%BE4>p^Ml`rPdYcbNw7b)%s6|%Jn90mkFJtUglr@Fhz-aPT<aEO+qJr_7T6<f zs@%SM$OYy<0O2qw%k^uKCZo4wq`Us<+E5-~ge0%VUm(>cra@~@f$?0s5vb;HnBQ!M z))F<?8vu2Ps0SJgK4O!nE($82t*#`o9eiOk6?CH?9ewO8brrEg2kL5Kg6O6=dP5dG z2rBNAt6x*~gnE&i`uX6*?`Mn%2k-}oQqL{I{lV31H_Q>#xrTrqlKonfrz4B7b2-w` zuLZ8l2<m`bpcrJ)a6c2jc5d9Q=D@xDtV&2Tb|B@$`YT67ADI#{dWP7Q{#Si^AgbMY z>x$C%0=dOaYC(WF>;UO6U;z#LtsGR-k&uMuKt#0^1j1_rg{9<P<by#du<?y;j<8J& z3m{`MU8VTb+beLPf8$+<0&oYLw;?bfg!c$vflInFF_7F$FqkU62p7RHt6S?FXt0Op z>*0YJ`}}qL(33lXi*HT5LgaB99UOeBE-bk_0BNiK!DkZt=RoksA!>XP+O1Azpzyq0 zEp6dfgjTchaP)$c7(x(&m+;e@1COXMEv!N4x*(n!0YpEt^D8sa77(i3;_~W~c(&?* zafezc{3h;QVMvp>BLEfu@(FC;x(qc|e4@@Mn{6Wh@3|O%v%mDv6?it01CP`|Y{?69 zgDv;YgQWFbS5*XLH05%771Z)FS7DfJ=p8n42#8m)F<KDUhkotvc0A-@>46_6c?0@` zv~Pp6f()9jtG!&3JHUOIi2fgoaD|3AOdlDR<I2Lo>wzo#&{DB(wG(-4Y5D`3dU*t| z{|{j?^Wm*A0KImIK~;ZyF-tJ>=-x=WSYk>wPf{eg>1NPw{3)cvjC>wdD0i+aEE1I< zsQ^t4ac+m6ezJwMI{uY72R6F-8_!^4q-?aIH7d9C4Vr#y5PGVwhK%y#r#5F)n&o|l zkoLC*uS5%o-K(|Ly9Z$_?4@Z*^v$T34?LP|PDxROP_klKtp<1Vj5rt9o26A%3)2b5 zeOo8mfBtl_Eg5sM3*$zARLBf_vFNAxJ*P3L#5*U6t$q5ye!JKy550wsTs@?-=C*7L zWZ8QOnw%eUkj7f0<B-wA{H0qDi|0ZUo?fl*e$vB0=WBaj@Blp7>)pMHVB8!7F*5$B z)gvU_72KX9=EFM+ppR8rfb7_9GaD>EcrQr62IkQ;#{^`SYR1WE<RX>`4WStT3xMS` zgTRP>{+A-(ME^b{0E~6;0zSWqoyyY~T51jG=ST0p?+wR|w~tQ`FPeC=L7?Wj$;tko z)0ZLp8ZN_1@a#HkEP9u0=pSC6#(lKy=1ha+xKqzU#xH?x<l(%%5CXMJiSuI!na&$z z6l1S{a#%N53rQHL@MoawIM0SW$WY~r-6BR$(k+Umv>5VjW5$$jc(G5Mn4ak>pf8dH zgvQRE)8^l$tozEl7t3<#8@f8yp58Psh{K-@s5SHTU{Sj2SjR_H6rRrh()Cs<>hbIP zA!j|O22nDnD;9Qbf@q5+nTJ;6=~BEr=c!cJx}T~T*o==TrPkNjQ$K2#j$FSHq?zyc zsUh=5`vH%4CUk^D_GiJtOIOBBa6E92rVA>|xn+lUkR9-9nqDxVrzvD!oV{D>MLGtU zn)}@WD##l&k(qrOG^**)2eU3ipfE@5z~9E$k>62LF--=LKS)GMUJb@RV!<0lpg@XV zbPW^W`ZAiRV2yBix%5~K<S@TqG=J6+wNGue=>qeEYwU|^9T)aEFijjdEtT8jWMFbB z(kf}tD#?^oLy_+Z%Hf$qBkuu-U29E0j|9%T^80yrKvZX>eFaI4oo|BG^Xmu`Upl*~ z1O}7x=(EGOhDS&r){GQ@QCY~m|1Cu4iqn{6%3Up|C@umU<}yJt$0ET3AJE|nu8p7f zydh-u_;;tb#1|`q0=p`^M1A`)>D<cA$8y|PJ=2__Sa=mZ(d%g4vXEu{Ir6IYcTvmq zFw375;6)8tyJG4(^!UzEc>~RSZuiK<pQ%^A=d9P0Qr1<YZV*enw$jEiul?V0vs{#G z065yMA>N0V){|=AxSliTn9%P0hCPqO;(k9of<^Somq*a{cadiF!ie0v&X}PJk#U=~ z{UU4=B{`TE?-vQ`TFf7N)`5RHdeOuH#wr@y;a4RVr46F!Z;P~bkHo(Da^~{#527J_ zxxk~p{DzheblQ&vSLd|{#zFpRp$U>axb96(O=WY#yAp#tb+O3Ns4~iKSbh}^$3y5z z1K%m39n}5CNr-)fCj#5cWTLf7GUvuAbNyTbu@p7Lzf9QL&us2lHZnTYkHLn3$6#N@ z!R8&`_A;my0XYg+vRJG|=tr$x)ppPtfX6)Zu5f>i%-30&uUTGjSf_fli}VSHgJ<d8 zas}r+a9AMpcok-f6~t+AA_<_mf=YZ=>LR>0j$g~Fn*CK|+m8FQQw<}P1^}O*Fuq>x z{IL--g3;AZ-GrH^Aq^!09~$TFEe-o6Z+tYB&+T=6y=Fr-nHdm6qC(Pn*`*uhdv<=v zPIMHIXUKca2D?mE^;!AT^x7Bs=@!i4)h`f2n~ukgb7bxsYVO3o6SwQZJJ*@_VUOx* zqHR**9BxL&xj4O#!;KYry$!#iinecUOVngAkW@uuu40$GCX?J=rH^XW?`0NQY2ZxA zJ!tYpxiwo$|KMs^1k%sChRlOBeRs#YdEPj-v7a{jozhtS*r(66JBy85cDV!jD5Od0 zT3qez>9<nBj6=0cZ_t9*gGH&oAWn!J!h&H<LfUJ+lttx-`9n!l(wTPmXJHUDw|hPj zf?4qPgP22uldZ&I`%~%l&y_HJi(QZ=Oi<DbYk~oAlI+m!kq5ns??nu|g!z{-8PS@1 z$_E(GLMo<^cX`>NI-6zjPKFWZa7lw%w~#*sP+w%~IuYV%>(u3ep?>oXT9U<Qko}SZ z8+)!bLiOCTYyGDe$*PPv$4{{6@o0`{r7v--M_+7{552vgf3#ZYFh`J|r&+!&R2?#R z((@g?_}ol_Myif~HNN^qL~MXcG?$HODTF+_SNGNO#`Mce;ks>?OO<<j<)pKka;LMo z+c{<8M7Qzt#SB^Kkd}L0@(&`5rq9eR3w}zBS_$>HH=$=CUl&~}9zauZdAn@eHL<=e zsoA-;5(f{oxa-!zxs^t~1gI+}ep+glw{Jq)WxnhT`4<w`6;ceJ@nw!H<^{0N8?m6s zlzJH?2Ew${-|D}wRBy)s<TQB(rgBB-;TN8@r&^u*jn6Oi8NaTN3%G@R%JjpjJ$;|$ ze4NOuuB#~V4`^L_Xy92#`*4)YL+TwXEGb2Zl|WbP<j&Hc;1EVqEG<n2i|*f4v_l5{ zvAQ>Y%k3G>;TYyS0*ZxBNrx2I3ua|y^VU_L)K`XTIWUngx?SYZ^6Zl*vZFghGCq}R zN|Y79>wI@=l@BDDY0;X=4ug+wr;irOZ0+nfrlyW!=!CJppYx}Wr`V2r*~mbYO_r#) z`jKbqN7x_C4@Nu*hT1aKvCsaC=2b818L5<<c&H3MyO&$G$bTZKy#ncJz9&95@Ym88 zkX-pZY*$B}W80S9o-4ZTL4LTbS!n0@HLQD=)1-|shZKnBp1Ur-vo{HOb#kW5$HDy3 zi*AxN4#TdS$Uz|L0<lFVBpaslO|kREhh@=cv2QFeV;p#+bw(L3LZVxmjll(m7`c;= z`^)^iZQDJa?#Ip6+e{yJnqSB&&|}7{RG~4W1ajF>uW@;lB9C$RFU0Qg<J1CwJi3uX zkEhbPy)A%f^hlBV)}CJPfzj^tH5SXPn_7NZdu8d8gU83W1?hE!gxld?mYzFI?#a8n zaXi#n8t@mLcF>ed)<&Y)8sjsbGE9j(H1;1r`2D}Gb#QebvK-_iU8IWqs?a)b#5((l zhhH6hD0;^N7|#P1`Wsf;wI+LRnM3QoYKR=R4#Es88HN4(q(uTIoE8^NL>>vlTeAEo zBu^qnkKUecxp)k$xJ(_po=RZUvj2OVXC<uR>3G~l|IBL{ZHkkIZawB2BAXA+_0S_G z^istU6`CEA5*H@u5Aiu)D)t(z_*Q{h{(OQ=QR3v6<KSZ;e<x<JYEF%qMeToSrtx`s z=hloM)C<16cv+fDKmzxquab=UMQeDVr23~oG`PFdM)02*D@~XI%*=2h8dY9Wc*(F; zM1!MH7*UI>--joQeFgbCYUxQ$#`_S-ZVR_@H;L4w=##i4yF-UmEIYK^K0e_l6wlRF z@jgu*UmKKO{hDpBU(7)4tc^;(35c6*u{p>fK92kN3KD=uL-0f_{B!--wAUZ|p68z{ zP{&m1CMta(;L5)$6;r3x11HF7wrA62;^z4h$@aB5eJFB$Tmpu`8BI@=%aNvR>O5@b zcq&iro}R(B5xJj}2>;zi{&bA-%kRRJ#zhSjOK&cH_*K_;1FO5U<dEQnsp(3ZMpkV9 zm6q<;arl+p+E(8k?X9&0V@1_xzwCwn%O?&w{#o&Vx?>S}bFMpb-FbO}Mf+0D$L;p9 zE~X_+H`1SjU-bJQvkrAcDGTvxy$z>a4|Z7}t5#f)#EGJRi56V&uv{8Bp~QXhf_UH3 z+Pv1f9!fl{3rG2YI04n}N|X5P4vR}o4ZiVRvPt$JK6Db4ae(C)t}mszQycNghUv*H zr%XvAuQcZ&ezQTL4|R%M@f^boqu*YcU}s($?KduR$(ll$YiBYog*e$zPja4nc||Fw zwK;;Vw!Y3)fTl0T!G@V_!u0hCVU9h-4VsZ;e5SXgr=`nf3e52$i2}XRXX?qoQ0UN$ z%goa(ICQ?j)%=+!i}?F-f$s3${@gnd7s)?=On6NG?Q`UW5VyRV9pp26q6>$#%5Zo& z#tVr#q1p-oi+Tzt=Jj~B8r!sX<T=SA2kS`Hi{0;2pQ4xFb_cuYE2X~Ihi%Zo=QJIi zKM23BjPi-i3nik<-|lsr76(C)vGE7*nefLGc>HKblGN*r)cQW!z0x0z%%_*rYNrTu zUPj+D(aw-6Zws-Dd5TExcDnw%D+MC*8S8l|gLr!z2i|HAviF6KC7&#hw*IuM4tQD? zimR6ou$j$$7O`r4+Gc=%fA4Nwpr~?$jL-KsOH+!Jpa|0ArS4WL81IS(;06t0hAyLd z*psCW`unSV5Au8nsf%uvry!dr^`z&PyX~)v3NlChm%OJ9S$bhBq`6%syVq|m{H@E$ z>?ioMCi&63tDjMDkGfdj-QRTX!OY~gfu}E?-Sgy$8kxeY-8{fbOE77OJLo!NeyR^4 zA}-6)mrEQv#zUpS>E6|;&$&JJj^uTpw>2YjlNKIcWjpx#b92LS4<e=+JF<AqM&r3x zJJvvjhBHBbP13+qT*nx;n+3;u@1*dgr*BBC?$BB}Uh#uF5>je369;)XE5w&32b@E& zyQP-3gSqdd7#XlWJ+(UJ?nrK{(ACmHZ8@^vJ$j;y?k*rL06Jb#&oP`@!*oX1<NK{? z<}x~0OUx0i(C$M=G7oUx?2>?VU9R;G*#&aks!?HHnjZ-3_uC<!86ZBv40hJ*dYF61 z33G$37TNJmoEUw&f_^RKjMg--DiK|B0++Ua?}bit4xjOXf{!N84~!-ne-5tkH^u6_ zCESX_Dk9|);h@aCPFT8Oq)3wdJbSCS>JGLc=focNkDVt!8AFr0?`SCQYjp8sq7J4I zSZlwif_4V(83=l>;PNWe*4OQ@K{Qh$018VFa<7=+GqIf{=Q2{hVggPr%N-~mV3$J* zP#Z_=|FEGX(Qdsy&%Kp<ff<@$(i^Vr@*dK8xzmmHdeUH8YgU3gL*xe|(xMM~mq)5g z3J`~q;sYDM_s4ULg<;3pgbh4-z-+5}`8Bl-N;h!U;+|dp6dK={^0hk?T@;7=3XDUl zuE-Fi!bfY@onG#5skh*bt}|aLv^}qk`~|Tzjcz|rc-M2&&IR*MOYrD$BL`0%YaIGA zaXC(6fqK!O+7cpD2P+0;2F>(+tA`@@6D~Weu4kcJG|o=l+@l?)Knr{Fma&WHqEO~G zhO>ppw+|=ZskHXeki~kT%M<nnMXHz|Y8&1#!#z9$qO>Kaf0Z7hMJh~{4Y=tTBe{_` zgln=^$~Wt;%C-g?cx6A=i(Pi}sbf16gC2Y-;`myib-}(EGUK<X6niW{|0(z?2Ceb) zpVXOOX^+rGe@~s^!S$r){!Wii2i=^|NQek~b)nivYUW{T&2%Ki3+zladbRpH6Y&PW zLoz3Wwu*`ymDQIIQi#RUc-I6zB5C1wK@agc-|xIFVrP|rEOsq)IQVwR`8`bB4jesy zs&AVmMH&JtM1tUL{xPo~v0>X(*H;uBJQ6fjqfNEQLT?|<KEhs9(Ym7~(Z{pf9P)Zd zS4~!q-#m~W*o2}kVG~Q+IdAXYhtm4(A=ccvL=mc<bOG+BYp_8gj6?TLYXq@sdrusY zHeyIod3&z<y#1~RzpJTRsB5TLU0WTvKa&x2!3rGh^Etbe0U6mEIgyY0(QDu4b}peI zIXQV(X1#*bbInMHaM2og+Wt^MQJnE+(t8q)ULEu{r#h<Aci>h;hx^De)YqTPMLbTG zfh>6OUh!bpl?>ZGebimzfdOt)4rvD9;5cLgF-BYaf2vw8qN4@bz3daUvm%aBLtzDC zQ4JwwYymC=vq)R-J4X_|B%&H&L@&u7x7EG1P$DK=WApS-^CY7%WKCMB1@5m>uR@cE zz~;v1GH<YOA{r9o#-yJwhYS;AsQ^Ha=zz(cWF0N%G3$is_5sCJS-aXpttGc3*T8dq zv3NCnZ6us*e0$;xDSVXA4^@#(tD}Y>PD;WKoZZJ;049!Lx?4o7!7bM!KK0&Jh-eHN z58XYRvJog6q#6yGt;jgpz=!|tL~K>O({}usX7<4IQ&4K4CA=jkvt|9WPN=cqv%(>L z*1A2z2)_b_F!CIKaEpy+6rQ#0(~42jZpf24-Qa0k5=X$h6F9J0JFh88;d<^=qy{1m zxKo=86!9Cxe|gXXBOH7vNvzHrm1@<EiZwF8_nMmquB^X(7C7)&eb*N#n*virWusV2 ztcGvaF*p8blzRFo$KQ*b(yi%tADh-i71V(Zt#)`pxanlI?rT%Wd!GAm9iMq|EWr9I z8r00o!2kVq-*utWat;frly9!Mj_$Hutm3gx1xvyB5Y)!L)hYgp2&ce%;74Dz!qLA4 z;;qu#frXoZNAPD?AQUG1=1{FyF=-UTjDB@;=V5Ow=`~Djv_m^Xq9D|6g+(uK!s=h* z<<6=kvILDm9|g=$aG<ujT^qXLOXAZZl?)}~=&hkO0d-sWT@CV~4Xpcr?BO<BAmHn> z7~GgTFKN<oBJ;V5Gb^B7&;93sgCu}VX?(+baLZe1_qwB(haR^g#40553gp-+lPkFK zS6wDQ_u+h{lp#(;bsa!pX$Oo;-V``Zrhi&*zv3qLarKKADS1oYp25}$eP2OL%>+vB z?vsqp=?orqDB@mbagqwNj#3|a>=HpA!sSbJKn@B9ZJ>^H#m4s7;eI@Jef8uoGR)F$ zQHYW-#I(rcSaa2J_Qgo9+19ZfKIjGd^q-5nvuhqR?XmY34x8Py?ybUG=0y5u@dw^9 zco@<i_um3ZefBwfy7A9T*h1%bYpW0(m6~`WJe|pN#`pWwLYKWh@R!@hO#u$=Hb3%W zvg`ZzdFM0Sc`Ib+ax4dICsn+$*9Imh@m6HcJrX**=Br7?on|B1*VTDBPj9vpd^KD0 zSPn;WMxTy^H5qyyW1-gYkT%;AS!wD;-vWiHo(iPFI=D5j{yrOR_^yQe|2#KgxHNLq zS3!tD2;?E3+?s1;r_FlITa^Wo9ET1rLfvEW_Ri&nBTP!GnfM=~N@+@o!i`Z{ifQcP zSKie9GR(hu+!lD~#efkk;8n#GD(18Uv!#Q>i<Yv;Mb0=LJJh;-WDpg*Zo#|rbyqmU zy|ukUNTY0HztAeOhuoC-27xsqxkfx&dBE6|Z5Jd6Bbh!raHY^<u{}AcNu(y_gv!A0 z=&eWI_^S(toYfz`52D+eggY}tU#y2Kc0Xwx!PwQ?dOOknd1At<81Y1u4*}uMDJ@QP z>RR@7l^=oF_NSgL(*Y0AvjfM$C?eJ4ALIj(rlU>}24c^Kt?={IO*F;?w(nTRzHSZ= zib`(-Ywc~m8YRAemzd}c#&I4$_ZGef!N@hezSTLq3GK1M`;V{k5-_RTA(2-ew@69H z{==5PH&Go8LA<TdWxi9mXJ`(2N#j?>-(fN`Fl(+jNF*D7MT+17d!``q1A&`YmX>%S z>t86Rq^c&e0=k&AW!JB@-xO4Ol*sEeRd5y2R4_hR9gO%_3DAjy89~|<tp%)jY4W*b zH$@o_g9M{LZ{$b7iSpuKFQ*fyxRN1n`(1{hdZnWX@QDS6Opi=?mVzhNUp@D{jFx31 zMXfJY<D8Av5ehSj_}IM|Cd`X7OxC{!DT|iEhOUbLV(^6~+#RnUsPGmPQHg{!=>I}# zraNke2&T40HLX`Gs2j22Ehia1o(}xIc@bp6*Yzi&2-i(6C6{^*PE#w+kQzOs-sL;v zb7j@m$|@+j#vXW{CwcjotBFpx{}Nz?SsSt?!eS*nk50fQE&8oFx1M0%N&EK?iByB= z4@5*jeR6H~-&H7y-0hWcZZ)DM_*z)Mz)Y5*by3C3hJW8RAmtzaKYfS-EulU1V$!{} z45l@851Zv=<wC!$bIu*ah22qDXBfhOxFpSl*IoWy)u0`E;~Jcnz|YLoo2f@f06yhC z{8B+R+3)ELTWolBCMtttnU(ARFk<l<;~$%_gKSEAng+%+f8QU~7fRIdZN^Ccf1lFP z-2CFQfx&U*kz7nJIM{5`j}KRoUmlsp%{ZTLCp>5R^NAm-b*AiZEzR_gk)xKBKP@j+ zEAd^t&{zr^Q)Z^c?tY>KLN_#?MCb0m>9~+dw(C~GGby~%QMc#p_?4sh@O1Naj?I;f z69IQz(n&jSbKiV^y$rRgViLO@A)^Qi{U64NS-<4NVtm-x+~@Z5!=Ls4td4Lyx3l5p zAu3|8PxWE^!X(c{yN(Z*;YS?$luhyxbKclYe+Ayp85%Ik@&c`@zrs)ayO6InPeh$X zZ(L(!eI#-&y~`J)OF$7on@(W*$2u`)G*YctP&dHe4CfEn1wfJkP-Z6psf9#Pn1AS0 z<`HO3>QL(4a^8v8LwvNZ?yIv59S^=Uv*!-ySR5Q0yM1uH^==&PD-pyD2woLrm(+mR zQNn%>r#hYxp_riWsa|NxQ4pQq_7Ul)A%amU5RAg{QakoE97Qu4DQ#83jijyQnT~{E z8?NTp+PEp0SYGFr)HMfHaNLPTI^tigNK*U~dg#P6CG-{Eqb?F?BYQw=A~e-HO~ji( z<`Du5)*@*a*!q;+I8TK0H7o|>Aa?n{!K<oE>-!>rrrgxlmU8yl(KL_goE@ehrdxLD zME^g|-aHTrw*42cRFb49WNopuAz4Nk5{0ax#nvQ|eMutQlq?}8vJ2U_kg{)+b&7<n zS!S3CV;#d-W-xQ^q37v&-t#@b^Pb<olDX%;ul;j<uFHLH@aTtS7eFd31(Q<2Tq|y$ zt-To#B;$@D5H;l!aVSQL&4Z9_Mg;qx3+}#o`(}BNZ|Yu!6`^S8>fFCHZCMPs+wdW? z80%C4qct!jP(mFzHOqUKPV@@T3b6X^YDx!%q8X7p^l~80#!OzHrvcmNYaWuY+^QhG zFj1e^@v6>t#crwh%bW$B2PO_i>#r9!R_A8L2=_Xnchpj!H8U`j-CG>Dv7J7}m#1m) zfxZmG#EKS6-?x`%Ij_^JKzu@9sPPvQki=sA%ZXb-L%OsiZ^C8<Y}TmGd)l}1tN`5? z;RHZS_${-OFI#QEZpT9=U{QF160TY0&>e`wU<Oj9Bn52!;GmwM;7mi5zk?pc#TiyQ zWbiNyK$oy>=<=8@*ZfeqE@+%oxTlr|?%R|(0&gztKD=_8USMC9u!*$4$T8IPOI{IR zTHcHU;!9q5fS8|!v;MUkV%v9kvQZLc6mvZlNbJ&hB2o{)a|i!u_$^fAgH#&Wr`?U~ z1t?k`y<Z*)90JIV?z2-Qa$4>&zBqZn|3YW|J#Gj3CW<yNwJQRUy?m+__kHs9^72wN zVSe$%q*INf?rXzEFhKn(__iZUb86wdOtV8H?ijNVViz*KTIh4`Siz1LCpw3#_P{Z? zBTSJ#O_$Nj3d1RC40>3bcE!Z|TqPf$J=Z58BYO+%n+?K0i+xlvbUf_pfD%7d3BXv~ zcXXy-e5g>46Dak1&t2*8ieo)naWGXbIf)OjJPEb0sE&=*<FP05;fv!_JBJDzt89kQ z-OQSCVe)b}+-feUmAfe@sj-+{QuyGQ07jMgZ^o1&@?(zPHf(#Fbk=nmfc`|VC0hW@ zxH0v)4c1H;0r0Zq9br(0CE?vCYN81G)(3@8n{Lsy1c+QWJ(0NCmNvS44nU#p&%E|M z(8bj}olJ7yI|x>H<Z%Ebx2OP2l<g1?5>4JeQ0wKM4VGKkU7`^Bi(sE)RKYMC`dao? zb$}En*1<y-cL%mjv?ulgVP<G+{OrWczThZ~e2xrS*j`q#?c2`IYYbbKrafH`&FgPe z(tDAzCJFY_-Ts$J!g5edOiX&gUesgKV5YM-PfJ7!m6XjeqdG><7fa9wkYPzZsez*C ztQM_=RHOxY9YdpjmTP{gji>Vm`CpoI>|)?m5DV+D234g&iPN9~B#Y`8E2zvfJ!8Qb zD{7K8)UNv6;l*6Vkj%Zs&mttA3l%0?99?0qS+#YELroX^zccc_^l1hIY!<;votfvU zX8ijs_gof!)3yGLs?D?EzZ~KAav5Ajk%)$z<ZGd21VMn6h-&6ST13s)6ZRpa@7CT) z%e)J)sc!l7Ju5py_vYH9%<AEEOY(`?gKkU$01-Je((Rz?-uu?!){EGKy%^LilVkoS z_K5Umu+g5M8-NDf$IjyOa0L*<OnN$d8<&4QuXaozHW%bhUQUX@Ty)KEeM{x+^_)!1 zb6cJK>raBQZCbZ`KQ26@qN`TG)Ypm6w+&Z@S((d~=B>8q!0{!fZc}|~rNiD=R;LOR ztpNCQ*;|@@)uhaxspORM=Mr4YH%FB~*}~#$U>a|2sbmGQ>1g4c?Cqgo<_v|9W}a1D z^|Z?h=}m2WC9b?rQ#fYZDjC1~X!!^Sh3NH}aByZ6GBGFv`uVQyJK>)Z{C8wjKI>z! z{PdT+?HBfxAG(Is|BNBP&Jc?OyHW*$)du)u%nuwBCh;WR_a0>s=)6z;VpN`cSB-iN zq_mrNFO9kz7Nx`UueDccE0yvKeNvK1#q=Civ#OK-tlR?Cxp?Sj`wo^DrzEW#(tEg6 zPrO0DXSjhW4Bdacj+5tIs#1+T#QxB}2tH8$Zj*TW%m;#rcuq(>wD8;kduP@GEB|p{ z`zq-DoT9pD6^e%200fC_xfZH?e`|2$$*>pTm1(mRxd%6N?=>7i8W}|T_3*=n_09=2 zc&CKd*|v0lD&bOE{4U`cZ#UCe2xt`EQ^xU!Rm$Lr93*om@u1I$L8{7a7VxA$PKjNu z=Pb{<u|(QaTImzNHFS!;0;Fnt1qk533_Lgphu-V&dFcNe`xKjK4@Kl<6~6tpG!~l3 z;#dQ+q_-VaPlj%w8CQj6i_+dAhQj6M#vhQ<m6nd2C<8Oeqf-rQ=*+x1SNF;&`WpCU z7v1Ty0Q1&8W5%!6WmoxhCv0>Wd^v5_p-~}Q^XobOj+Rp{kz(^Y8fj)MUW=AcM^DT; zP4J#U$e%E>_XtHhF{z72M8Hky<LD{DL<rhLMI5!3dgq#ABw|$j<%Y*cOz)B7E9rby zRn?AM#Y~%rK1Cd5jo@YA<E=TS1-7AS?c!Poogd>faVIsI=bpelQjc9spS6tsf?s9Y zT%o2q+C@D-F3d5jj3ifs3FW)00cCD#+|eram?{7S*!N@*7dCOJXvzEVHqr85v19HQ zx>q6wv0&j2UZBj;KVii>h#OvI7N+#G&~Bx=3^1uXm^QPn!7)EKd%tl`PBSqKIW|mb z*tST1s%4MgCjLzT@(~WX8l|{R{8LP)l`U00VEsroare=A7*|oInDEdvzYCLDc~x51 zsNmx1M%U4Ed!EFP!1MqMjrl#R@om$-abLY5fn&6G$oYc<8OLD5-t@2v<5khdQn4~L ze)B*Q*v*?T8>jx+O<p_G7@KBT(_WiK;5}XM%dN71zH4E<!RMr6wK#EklOKR4%foZ| zV9X59JYvMlWO%*$$rj1)&=c+Vg4<aZVzYF572n_6iAw$of`1>We?Ju)r4e*@<JH#B z71gBW_g_W@EFc~wJErV4tW%CpE;~oqt?JtjzySHyw(6O{!-<_vl3>#p^!UZJn!`Wl z&OhC^n8k7F;0}=!3M=-55mWP4_;^e67YYv)Esjr$LHq%s$zy~6h3{?_A^+hgqh3-1 zGe?GmFA#PPfRe>Zs9DIK^#`#mC#OEIB7!ib=Sb=N7Xql1dQQl*i_k->s9Aw*$=Phh ziz>{7!X$)UrdMGv9yzw)@ApHA&i`Aj*DOjp<x|39Yap4NkmO}llnpHabfII*@k#J3 zV~ApYf{19pA6!^9%KgmgktOuUK8K>CQB<30G}uIoEHLKaKk(kEy9fTN^)0O!&^MpF z6Q%pTJ=k-F1@n&>B6oZ5a(bw_y2BNHu)6&CqwCGphEx0)XhMCBmkn6A26ikA=!V8o z*1zB-<{ZO(XL;t`eKdr^uIFxhx76*-4J2KleMFx@kqogNNCyS?d|DwDZ}Ib)_L)DW zMy^zW6f<JABnb2YJMGCeqz!yJH~TSL!cg{3%cpv8l#VZ$96;Jsm$~+{oRUcuKy=_N z-M`EReF&>RY)edU2ma+A508{IWo{>@s`tLxxRJ}XUIRm!-a9`2l2ASr<AAXDCWS&c zsvUL=vGRDE?+9`$#_;heM;urW@p*KWOmE3sUie}5z|~xz!S@+!=Rx@KFIG^%GK>WS zwK>az)qdPa=Myq<-k8UYWfbpQM>T3N(3sam$1=ao%k!x_fZ%dH;Ee4`{?c-&hnhWK zf#&S1;beKnsD?tI5xE)<abRDMWODV&MGOf2r(<WUW_BqYzHq<obg!H9?Or$a+tRpP zBin{}JFFxVf*z>4?Nz!<XaAl2ROi<F0>m&`k9E68pY&$t8a>241gm`j_pc3b|N8n3 zC(y85F*Cmg!9FJ=Uk$e@rCZW0yxD*#op#Zyj=p9Euxs~JpLP$j%gh}LxBKw5q@~pJ zYorimFm&m3>*m;CnBDs+hW^{8`Ky3@(otTK{du{6BnGenuL^+K9o6%2w8Bqz1wmd| z%}#!kfFcQ|gRoO~=Y5W2!!bM2uD=Rtw1<Qa+OM2>FZjl!ca1rU>wskU$fpkLYm(`f z84*&E*VeyTGcxVo#ia4<(7rh~_2Yui1qGiElzi~4f97KUxiXk<s8YibD+md-fV&dH z=7yUpi5#f!yM*DN*VjFgCSKX<Bu)F?*1hSLRJh98q2`vdls8_39x1Jv={fTb<6{vM z+sMnYA7vdiRvth=V;IUbX#6!02HT`}6-<7|_g(2z$Hs99rzT{n!a<^)k=(Jtnn3+w z>Bh3$6{wSv#cMt|zpJz-*|t<@o`19AphVDou@J>YG;PMEU;&hf*J5&&)mDv|1B+g@ zJ3ULL;=2&T6_=b2(SJ!IjM-{d>-Aew9j~qkh4`hAe~_`3Tw7ao?*JQ7?x*9*1f#k) zHf=xmGiD`&7onG+yayu}&{gkJy`Ien9PK%G$f9ts1Lyqwy`f^A^9<14rNvhF1@3-k zfX>Uc7HdVB`@YA4agLGrA{RfZhq}xOvOi{LB-@&R`CA(U5yPN&71B~NooSkyH~j=u zR=&wUwT%1t2%qXD)#z0CZcoSgtg^~x5%`DMh@$s~Dh%;UerOhhp4W<aA|jDx;NYuC zr|FMcdc)KE3!;>$X05Qb((7xJD?aVnO!qgqHVFn}@vs~7V>FFr$xtT6(%DJ$P5K|n zBj4uNQ=yFJ`n50<a_1`QEH>Kb-dlw7tVD3F=(6td^AQTX)rHdHU3GcizdV3QK>6Tr zOlA(hdCCpFhP(@r6Nqc$Jln|O^bXax>bK@8Evu#yKgTN?+qS1Kx>149NMJ>t**Lgh zhUhBl5Rfp{?(=0;c46PGe8~TOM3aPs)|I1^r>%@it-UEJxvP?xv|P><{eE2mo445R zs8d=)X76GK4GPMdlJGQo0hMhNFO@aZsk{lcEZ$04?u33(0X-=Kw=BUs&g^lG=l)e6 zF?35DTPjEy3g4_;WS4VAAHT0jioL=*A_+D*!pssrhwUe@>{out{9Qm-U7+{n(0j&- z&M!^{8C9O}BIoC7(%3%d)ydq2S!6z%YL)ako!f;yFQ{oqThI~6pP!y!u*Lm2f7=AM z&45W?Wdp@k=>*EGP4u^oJMu`rgbNPt&y8($O9$E9(**8qY;wZ9BMNI*jF%siW9vvl zRo>)}dEHP->T^cVS5&Z+g%XoXFW%^EZf;7sl3VV7gssjZ*OEOC6JB+h+=M=!s8Kc) z>MHUgSy;4Jl{|ZPk7u1i@pkh&B>h$?`L$x+;qrK|hc`OfKf)6B0U)%ok2BYNe2vq6 z|5(noVgKn9#3$^*iQw4Bk7)eSo6J?~)`ytX+(|@k#>CB$P#>^)#-^INN8c;2H%5?c zlPhKu49+xU@?QAa;d_haM5x?`$c;e$4dmt!vLKLDKZ)@Eb*j$NQyIF5TVQD<-P7{b z>gpC4r%de-i^P{dGk0J3BHhvgnc02fpe$VBgpd00uqt*!n62FYe?JiDyAM)al!zWq zS!|8XArN0QtI~R+70oU+l#J}L&4u>bYO)1W^?@Q}X~kpn&oO$=T6plkYDTPnyB|U@ z_gu8gi^Oy8HdolX5J5-BlP<38!6s#|J*tD7v=0GE3lVhD;^pVRMG(L~Q$-rxI%-^P z_y|7OR@6m8t>$--Gu_E<mixM&aK@>7Ekxe=^vyp#I3&2l@+4S9lvG$Xo%cm~7v}t@ z=MI<C1R8r1-86Oy)YKj4pQvk8W!v;SB%$$k_r9)E^iNGpR3H8r@E@|0+-)<}MT^jd zaCnhmz7d`Xbh;w^{=8L6;g+$ovFmW!XmMI=tuV|NeIu-$hVYrSsN<h!4;V@pplJwF zvVq0Sm#kk&u)ML*h4784s;X)sH~i$(NP`_Z8MuUE{}I&G4x|%&@iq=NCrHG$p^Oj= z4>o7Z%he!3w9X1s#LeC%GtTR!z+K0n|GZr0yW#6oy70l+jpWnAs_?h(e5~S`q^y;^ z7bySrXV_?v;3YN**XMP8R+y#-UEfePzFK<uRQ*G$bbY1`db+yCG@t24NeNOaA3u5W zqxUup`knK8o%+@-{(nB-fj4^EnrXDW@XE857%!^Cbd7s7D8db<|KqFJYbvH>x3pY? z?J{KuGqSpGYpOv?AF)PGF+GF{2Ky?%<l54BHVC+(%HSqZ6ZM)ARje@3jeS=mWrYJZ za<YWFXvOnF;3M28PP?I{uY|>7GG}CxiBqkIv*yI~3Rb)y)sGmij;8#etrB&~(`Pe{ z9lDPH3`?HlYT0Yim&io?5T!}7NU}20f9GQ@lKkNGk^PF|JN{ojpJ>y3ccV7@px)4g zWsf)c_T!PhN$>5OG|Y#l@S?M^#4%mS`qpO?{l@Gr+=AZK8X6jsKheqm>AWcYa|1;$ zLOY#Tt^&RAe>t{6^e3J8KT4;+tufnXN?d7b9A2p`)Y#GNN_z+G)ilB9XZAU@xU%ZY zrGu^`P^UZ(?~=~R{QM~3Sj9}8SRcZq#JUh_CohY|@~od%MXd3N^TIDBT(1}CIIqd@ zRz@w;B|;E;D<6Fm%o=FIc#N&Jbv+ZLI%(9~NU9mMHSrPNuk&!qIbw_W!o_dceB6iP z48QiFkr<wS_^jGSX(KTpJ$RQSlap|Fny}Wci_*c=O81<m#b1o`8ClEBxyu3Yv|%*l z&&BkQtXm#M<jYNNKT0rj|4`#kP9yeBm(M?sxk?%N<CxV>4UBo9x~#D}))jkE^5Mdc zKe!;_;=J0Tk`WayH8|_t@|iVnc4M39za?0&O3ik8%>nzNlj(v3hu`-^7VYxa-#JXc z2H?cOA1r?QP<X8UfpL$&#$~$ne7(A=PsOhH)Y4>Hi}=%4IBCh;2WxTN(Oa&}c&>83 zu84zu)2GeHEm|MAwSbwqv01Qv9Z<O(9@;l_Jva;w6gJ8TS0IYr#V(Zp@V_R?7KC(( zcrYwm=Pcz1b>t<;a;HARF7|T}j9=jR)ZPe3hVcCFmv?y98GNIUuj2h7Z)|R`3-62v zc2@cvYi`q{{_i|zAaV#f7)8lYmZJUJ4E5S}EPK@zI@WmK?-Q-7x}JN>1lzE@0;EVs zgwoh>>9vcLA78jTm`q^!$ow049{MNb3p!po9FFAG7J6`kezF9q2*Y91rDkba>XkQ! zHFhk8NGl`53SRm(huu@F3FQR89Cj~=e(tLuCqn;qy3!d$t}1-e?35w$v6x#O$?U8G zMdY`B=k+F2RNy&S;@3Uy+oJ#bg^SrYjfQd=bP_LtTQMc|XEIxGZiX>CZC@Atz%0&F zv>4$EYD++y3l6;O113JFt>e&7k?ul<8;drqB?@g_@75RGI^MRdG(G><3EdLE>*F$M z87u8=fcNn!cP1K{(J+Nv{M$VA@KIBM`&#gYnPmcN?lR`-CA)s|Ng9Uvp<3J4<Ng+P ztCKy80TOf}49nQQx$}pGpPx27h=PS*dlN`ANf-r3&4`x8wG)NTYWH0pZi?N~q2FSt z>K)8Ugxr;-K9aIxLu+MS)sEZ!04TDXJM3Ln8|``lPi$xQ<hP8kDP$Sx<aNwHu92Ol zDMV2!UGXm})Ccaq!nqdu*5}66V5;ostaU)^VfdW0_n37}Q+%g03%EXQwjSHzA6O?- zLwU#2d8f>%rK@Z&*|#L`NG~;|MLA(3Ec80Ig?>zqv9*TZigIQACGyGEohBV8d=spR z*9uLz!1Sd=km9-uk1<ZBosljuQST>pyaN&Z32DV;R&YeCj^w#>uJIR&UqudA!m~C$ z(Ukj#7o+}lP+PW5bEd&#LA`$|q$`ld@bs@IUC0f=CLE(cRRsg=wqCkI$8`I}BV>Jo z&!NTYiLvP#Y_Z_1^xwy7*1SX#Pf}Z$!JW6<{MQ+IR%$g0#Hs8@`_8}9)h1-4Z`Ub@ zbx?c$Hi-rv^GauEJ>vL5(W132Q~X;VFD2qxnJ0G~i53o}U!(1FTQjbQ&0s+iCxqC4 z5a?-^ert2P8{L-JG-g&*;+>2;(a|C0Yj#1vLP;LJ{`()dbnTxPy8Q#=3vU*zE{fU) z1_ebc@xI1G+VYg!PQkLvIH}3PBMR5snK^G@+K?(?oYeNM!`{B4qVl2$L^NY;?q2Vu zO7qOU_UlsP_Ivpb!C)uemeH+5<g@N%sTXsQRX*YOs!AMIF-!`7+qySWg{EAt;FoLz za&YvEJ3MPmxZbS2QTk>tjDFZ3qfUb_FQVzj-}puM#D|2_xR^b%)cw(?wr@78Z?q&H z81?J~s;8?Z2xl5eQaYLlYD2Np4U{G=aXR)u9{(m(+}lVfQJWt0L79AU5Z}hz9D%ka zlZ`2@X9zs}>pOer)&q;`^z*u6WL@Y2d-z-zA>dQ`xV1l!Se#`VwQm~e6KA+^0gzL= zC3;^U#sl<=?o+<!kF|(0`!9dL3f6bgMVe!*DQwFG{f|n&WrJCMUvz`uaf3H_`0S9> z)HvbCvdX7Wl~q&UutiQxHmlikqN2kYdYGEmm5i9Ex|xQgMj%tG8sXFVMNzgTLONTH z@`zlQ0AuEp62KwM0;obR-%mg@^j<c<<UG0qO6pXpThyn|Ep>Qd#D5fU2s7!sk7Vwz zf1?EJx5CV^anwPvSK48p>E_DdpvkbQ$bR6Iq`@u2aenL&y7dKm#}*yPAc7V<94&5> zZS2w(g6#DJ4$8pJdGK4;KKfgPuJQ2y@u#A})GSF%sz%Yq9v{!|mnFL3#G}#n)P-KR ze|)3Tc71d|bOB`u$HK|e=Q6n+g4ws+YUatVj<I4Cf2cxNO3aH9fQn23MpMR>)Y1I> zy}U4R`D~BP6=Y@A0aqadjIrnhD8p3U`uviO6xM0nx#p9NANH2DXeYL<&6-qjvt(ng zSBgfuk|O*P&9iPzmd`($?o^aE)_=Qm7zd`!X`^a%GUs>`e&xF|B_dr8A1OE0WRzB< zK+l?PNFNoeQ43(eEZFQiHe$q!Ib`acvVRh;6EFf>o{{==>#T$CcVl=G<CdR4bfg?G zC&EUCQAbcSfH8Ix0(!6Ip3Dy1*~B4~bRZb-rGXl-{V5fPLLho^1JebJnHxT&E;Upi zb7vPA#kNP$?ADoavrF1~HDHdY4!~u(LMQ8d)^kcr-QN2Sme@>huo5qChC$GHlWT`$ zTkcoNWv$J<hau6~ntsP&4YrZOryXtR#&g@h{AI)b4o)im<*?znH*mF)BJae)sT3pL zs>vy4;9T59|2$E?XUrKw(a@%Rl>BN(9p!rNH4|*pmeY>cB%SK={PpE9>=NVm=daR< ze$2+R8Gy7km*2)s*AH8Z>I*H}yn<`QA(bEdHQ<8$j@5HADP?S?3qo@P*u5NYVOr@h zqpJpv@z+L9y}9`jey_;PE{%P2?vvbUOk8$yX{{}_E-`zp<X%^EX31K!c`N6JTj_zx zRh|r{5R<Vl<+;vdW@q0ks*?i}Lzrj|;%kp@U7J5AJfAI|<!!+}9^|e!_G3K?R@qV1 zToq1Z8P}!qjT=1r)F=3*8dwpgkRh<8HMhFj#D|}YOK)A<$KWxb6i!=h;_;^eJJ;rX zMCj(3>E-sGh={{CkwCFrmd7tQ9Q*3yoviTmB6Mx^Mc%g_rZJ`vh~w;N@HN4W!?5Aq z7_g)C4%D%4bi--lTm1CY^(OX|_VIzs8^sFVj$o&k{CtH<I|k$_-F;`@(%jBy>kXS` z8zwexo0+Q{Ve|k-yMP|Vz7hW8GI|6lDHOHor{k=KkuV`jib7Fgx?*JFY<J8_dI^Jj zj=c8Dt#w`33I1Y#$7aw!4cU#Ks!C5<z%s<gU>I?9T+>xfvE&QA+@^83D=f<uITyXM zy=Gjx!aWIcj#X2_y<q%e8iZ3Z{agN-Xgq5119af0Ike(VkDK}t{9VtuH1~Jz_+%5O z+MDg6XZk`NngX&5mE5L#?l@g=t;O?|0b;6)!&Rp%QDc%dOO8B)7o5;F5~73oUWqm} zDyt<WB{>-k3XK#AI2?|2lJ~n)`DpwOn6Fcm4W>BXv`k7$nwIxHe+LD22DV6L6`>t; z8Q!w*2^Y4t=WJ2e`iuevjqvC(_m^vN#<4kpNEh=^p3C=r`%;y;2PA{ChA&3P)Lp#N zSR}qWRbvhFbUZCg8QMFDnhwO=NoAvCxjRS>Mwi(=SgcT`4YR9AZA|Ph<vZn6m@#ES zUVmoXJY%LeyvXURO`c21-iT>C`x7R+sREuU9`?|}P=pd|dPbi1>HZZ=kB&(WAeD*N z_?SL5@3?)2MiTF3@oVTtW^7P!)Tag^<e`%KE-?4hQJ`~RAjh+NW@*<a{?V*6EBRnx z^<wW%UKP#WL=X1O9VoqTn4zJW?!EOOyb06X-ONKA0qQ>BK5SZFc~r3@MF~b$0z1Ln z9Q|Ey;KAk2nS^uB@j33EQdR0ia=s<RFYUYf4U;75n00NGp4@yr3CtsR{lVX!iSAD6 z9@suk!$UHjL)x6}wQRNo@aZ^LrR=ZbK6BU8XtQVB_?C-f;{Rwp=52Xq93J!7NV~C4 z<iyLr9gU$(7pwDFfWNp{Rk5C_>{Iql^}tg$!D{azPU!bf<nT$EGpSc~t;`Vq9}Cs6 z+?a?aHP#xa*Gdk#9hLurZL{JTYULfHfT#V47oqlg{u@Gt@^iOzMozK8Vlk&Q7y^l4 zZfg$Z%=dp!&Y|Vq%x^I}Z|hwA@{yq6LTz@onnQJ6*E5I4k3m5}y=CU>5d+I;uFp@* z`G;R$h($UK$&B*_p1Yj3v#qgnch>jaj2BIhTZ}C5%-pT@EFHWhs8}*T79?=%ofhVE zms?iRz>}h)((9QbJMRL~sz~*d#g)Hn8?BvlzuD%zF>a0h44QKQ<m*kSwmB=h`E6gj zeC4wVr8+&K5$%Gob5P1qZgFNrmc#sQ%tIyTajOigdV^4#smW_CLgeZgw|qD4yIm^n zZxU=MNs>8}EsB^LZhCH`Ie?8xkt&s){T>1}^w^;3n`8QOoEJ=N_X(t|Ftm^t>pP)m zyD&d=0^HO>+lHu@Fx~+{)TqUWzEX7%T4zBNa?P$)9DRkn!r$s7o9W0Ow`9e%<o+;h zh;dZ-Qytldwz;}KEiG&1g{Tw;!@BgBhxs>U6=zhHzH2)djzU|qk9EU%c(qM|r1_?w z+WGx?=b7D;qLh{caw5ll*Iq4Jw#DRfjSbj{q4t7OXy>yIS!C1GS97ZkAR)`W>WAeB zeD4{11nUGs+wJIkE2Gi7Gzk0S`#~-pN>hf4*GR_T35qvr94P}C<Ui7tA3Jvg4WDj# z(>(U3@GDs=S}&}uDR?VSy%X$fibsP9?iQG?#OorIh-WQ2EkoVBZtf#)v6SKd{%o;M zt8a1U1!}rtPEJpuQDNn)m!6a;ga39MdtZm}D&l3!qVtXZo}LUvub^gSgcqR`O1a@I z*wSuk_gb)g8L#HYJFXsxtDfIkG*j$QL45ZH7uV2MSXd|#rn6&+ZF7OQP37ZBdp|yi zR;PTI_uyywI#Ey5*hwyktyaNGuSuXoP|-xy$5(TLZ8aDAxQDfNtrg+@1Lxd@OzS6# znA95UU-871e9#n{h_Dv$b*Q}F!aAFn-l|o=Lg3m=xXM|m(3@&AWp{(g2Vcu%@t)IS z{Zu_>fZyk11U>rFws&dks7#H^fjtKC2l>tYi@rml%@+;q8s)DcCk9~aZf_VvbPv9| zTdA>se`tA5s^23B^g6lh+`1Q!%_>Cfz01-wbbrNEI4+!g<oIWoBf4WxQ$9=1xOg|} zDO#Bw@_g?x8!ORVRa_+FR=Q)-9o6Lw+}HPX(wm?ilVVi|Ro3tpg451aza_~08)vix zMY<fLNd1~vK~EM96W>)dGySOqY#El_@^oK+{$!nD;Gax398_F;-1Iw^U{#TL_^;Pz ztMl9k(pZJJT~(!LZzFJ3;j;$aAg1+6xSsQOP+`fwDHk7xUZ~O%c}F}3CA2>fO5V{4 zEqwh!trlYbir=*AHkALXn*L9DC9%RvmDS5LwHNvgOb;DoVae@Kx3=44U{!c0c4WC; zXSEd)JF^E$X_v9><T%fs(iQGCU-|HT!Gz4ya_x>H_RTVhhs7fmH{J!!D_>DzEj2hO z809b{6Lk6WN*XUjvSvKfTe{!!h3m!ot_t<e013y5<5RoEi6-^%-N9!KP|vrbdq3}D z&`y#+kdCA!$J>74Cr#XjQZQH{3W{Z<J1+ZczNhss&2zmh3`LIkZzqjc1|Q7~Y)HCy z+)~*ycJ1?zjxhcHAK0~V8=)_liVw}A7^B&)6y%&ntHqaO6--(~y^}t!d6a(>$HkKl z*Kh&leD|Y4WA!Wyh(c%l>KWQE-2%vcW)rcaFl=b5*LUj6#U%)sr1820_{Ffq0MK=} z9^U1_c5w1ILSgY`uU8LlZ<!J7ySyO9h3ePgafNkKZU7c^tSbA~naQn?)5S5!;zY8k zs;-wHak-u6Eeu=30C70PSd*wc1A>@^gJ7yIyNej-go3a`)FMR84?E#=rYt#zNB_*6 zVIz!l^k3O|G~FL*Nd8?u5Dc%iGWy}YhP$0_mxT_6acPp=p%t3ZJ~gzxDRoEaxLU7u zN4BG!COMlHtyt+?9a4`Pv|9hCf$$FY9s15CLPYPDVH=n0LZm*>6X>xJSRP>7v%J<1 zr7WitJx>crb|FGT%&MP|%UFW-hgfzzV^(`V1d82l5-2<>;GL+^yL#ty1Hy@WEe6vM zT70=5;x;W;!XE7D$}gT7I8XFTW&DuD^&R#8lLIGPE56<-zx&=dAA3nh!#G`T=Q8MZ zd!#&jxG>9ZGp@wrx&En{-xg)*3es~?*+s?A2c5e|YVwOhZ=>(mwnnK9O0>Jtv*QF1 z{aCk;7K1I>N2IiE)5e_&(rglo4!B#TyLs}6dbwQ^^_^;6&@H|E+T9ccg%=*{n9~S1 z#_GiN&55_pzNJ3D-n#x+2K*KL#}R_wsX$y8M&9!bd<-i69^vH6T8XYS^uVT^flsg3 zRSBLRH{;Uo+1=8<BiI+ZvH!CKJLGyq6Ux9V3!V6@yf?N%9t<{n$`l^q5uBgfOAioi z`Alkv4Hj={$DbFqjY=z^9zw4vB_}jpVo6?Ws@xArwGRir|KOL}8>4b>F=m&-L>;e0 zJVLuj|E?n(hW##B(rcTl0e@^kAg~36h3AARDNkL_cPUL>miW36e2K@0qEAPJ4AY_g zj=s+yJ@i#YUV3OD(WUe>SJ!~4*IM&!1)BeR-IrK=`EzENU=ML$_54U7`{qCwHq97O zk0`#`-c-lmD4^jC4Mf&S?BJ_AmHW!`Ju{|VRf&HD)m#fX#^T(#gY(f$Ux5MVbNtgF zw^7My3Dz=}T3oC+tT4s_2(#doTz}cXLzffVSNHCK^0Ioy$KwczLxJY6YKHb+XBl~6 z&I~3#rkC;6H_3RwVwmY9`quVDK2K||n#Y___K1y&u|S@dma~10EBFVBfabRIeR;~K zxn6(QXOq_0<M;-y@sW{{>D9-ew<c%J1NMD}yLU@(%0@TtN5`Q;J&0ETuaR-(ZspTE zA?Jdr2YXEfYKg>)cWVr9+fDEbaIcy%z=^7#znOh9j6@b7!(x2QFSRQfB&q}(hKM>Y z6gvMJGOSoA^gLYTc|zQ?&&kXDZOdDySFCKCEZrP8>N?fQPay_lx$smFopN;_c><5# zuS?5^-@WiiV4P5)PCm1AM#=K!e%+0@Mf|4Iw7$9q?22`(d1#_<2n&iwLHnhJShxyB zXgQ}J^>|3aq#viya0_;j(B|P{-*Q1*RuLy_Z;KP$5AOyIg*zrAtJIX_ERXx5PaGm1 zo4g%I=S<+f3$%^#r3;|Uc%58^n;&Tv+@p=eyL__Q%@14$D5`?u{qLIKwlg{YC+z`1 zj?yEabK~N*y0w$yuY@Q=1f-dnnpy3GYF$_efI@e^?N6|DS(>VbWw(g<UVc#o)vx(^ z(IN@RP$>t`RxP2JZBv~seX>|*!D5Y*5Wp4Lu0CP$@I~k&R|T`03#`j=m|F;c8Ari) z{LoTob1OyTum`1eOrvwD0ijO?GbIp(D!PiBKa5NdO%q`*#V;*E*#0)v>$5}oNLJb5 zHey}Tj?b+2)xOW)wp2S*&7mC_GC>rfvA!Saper@H=j)v^-zyDX#~Ym$JbkS@eMzrh z?B(o3yO0lC*o%n0YIi6nC)|`3**_6bd=2^1n1+bd;lIg4uOWdDt)RFxf&*rp#kQfo z)}d7TIh!eMwdKt1mPxpmGz+rQk3+HAUoI$wP<6UQCU5bW{00qv!43CVIz!iGB){iL z32Bh_f_}&S`$A0WGT-bMsmpF@6~Ff-c@ws3=eKqbpL`O)_ERu@DjufiyTV8_I?q!} zc2ZJutdoHED_q{A0Cgtz_v{-9CfukSQc^Iv^<i`VTZQrqp0BcZEd+8ACIA&Tzx~dr z`bojre(R(<;C6mm@nsEXch^{uaB)G|*b6!}xtcsOaBbNHSqWT0J^93Uwb4u8As6fs ztKR$g)Jd0kzt?|rZPW+dU9Q7UJKO4?Mp2<IbSqM!t~Z?KzvXEEU7PmDX&NS+$1XQ( zH6(s5$zgi)tf?~0C`L-4ef5YJDa8kSJq^C@dGpEKw2z|CU*)qIcbb@V^5#JnpDE>| zFF=OVo1N?bcV^Rcos>9w<qUq02m2ndnIURQ!sQa<yBvT>5XE@S#a}hk0VZbcfr_j3 zZyQ~0ewE+SPnGZ{;DQ^Lo6l?V0ASo4WoPKIf(fnN6kRqoU4V#1zBGy16y1Z0&5=qF z#3pgjOMy0@dn+ojMfv{`JR6bv|NbgkSJRM|S=UeNDv}58q#@_Rqw{7dCj2W?np+5A z*h&v5nDs37q;#i=6V52!EVf6`4W@_O37x#diKhYB1A=H$;T3`f$*<u`S2qiEM$0S{ zELc)ru0bt!F)-J5YHR;+KKNj(s@Kp}aebJxg)SuK3UXW6&%sYC9jRx^wU(m$FVcUm zJxqg~bFb41kR}e#itVA7Kv@ih94+Y{Z=dg>-}O%5`Td2$!2a{CA8$cfe>_7b$A<KF zSs7G2yI<pxd3MjQpLQ33dz|mW)R-TZzU!G%h{Q#0>-2Nml5FaLd+z3xQic$$GCK|r zJ34QrdFXGaU~QVFWc^S<N=nLc?U=&#B3Lrd9*?gHz9rlmz6z}lwzkiY!vn18g?g>1 z5;HDWP@(LRb7|4u2xE2Jbz=(yWYT;~E6<?ED-WJmU`44dnx-zUeBTLw<;z=^XgiJG zuCu2#{p*FCO5*Tv{Ach$Q!N2K9#fdyvE+x|fBUpb6fHt7g$y-bjGhBh5lhNV{QmDm z2TFMX(2z_2%+w_!m~kh;jVENN8*HIVM(-kj!-l+svvlYI+;~P<Nz>3(LY~Gzg$qbi z{|>*KK>2kGAU)qe%#3Q;KI}2jlQ7h{GuZdjc^3|+8^P4NQ(n1G$4*}DFF2P&Cd2e* z>ThpS*yxT}wJSL=a4*d0%>Isz5Mia&o6&eDZwktAfci8gi!IGsGXcOj1HP^p^NXpf z@Y2h;Zx`9a|0=yRQUhx*aI7_v*9(@nPW<B<8^AOHRC9Zwg<c3hWvDYu6(%Z$G0=gr z{3bpKJsJK74z>+TZvQ|q1<%^uEz1I>C|!D7eVyb!kCy36N1A(xmDVk=w+eW-XNzB@ z1IO4o@`BnKIMHXicH^q?;`m$-sfQKc?T(!92Xh4+f{$(4|4Z?7z~pkvZ``Q#N*pup zJXxPbmTIdVSHX0(VU35g5S$X&6e&PBHeGH$Dogd0c0pD5?VE8jt>7vb^!|DgWW4mU z0DzH!J{t+<*ZnD|*r=0Wl2z$(c;rJI5D3REURyX(Aa|j2=(qKWbnFOHdRiOOOzNn) z&Wx!EHBP4Rn<3ZTy{oRPSBbjd=pbI27C<hxP|z#m6|+UmoGoGizkc}#c_m^SXrkKw z%Mh_2902a5<9s4$tQn|w<E*u0UD!hmu}%P;`U@ZXt$p;uy|B)|JZcdPt|t_0Qa*ek z29PkR=fP>$dmdv~e~Yi+NHU_wE$7a+jRwt<(O!q1N7Rno`R7V2Q)f?1l{JNJCF)m% zD3|1o!-Yd%iW3_E>J{u~TytT9E}!wXTQB|wKq2MlKa)pXq(E2BmROgttJT=m$4W84 zaW50~{Fm1M2l3?&`x7~asL~t|Ilmq)6*O7|Q|%b7^d{TjnqeZe&fo9<V~%X?iVSIf z-=C6RDejOJ{*d}|8sXEQo$sG9#0DuW5Bem&KN{?RydZCULSd^BfH#b#^1{SZ0KaP# zG>bY=TdwkMBX|H7?`%2@PQ2WIK3}Hv2tkU%!)XqXylotsj@{FZ;Z|X7+am0iAFq-8 zr&V*RSUP`HtX55Xh9g{vqTGKDlbR(7AM1{#muQbqt(f-KstZvVk!!o#eOI1LSCLp+ zp;UyTnULT}OvM)FbfcGj)BH@i<b>^Sy*8L`h}&|2*cGsR{NoM)BnsP@2Gen;tXum4 zHbY0fMVJT;P1SvLduPbN`5)lpEqWzTnE7AQI!W*fPY|Q=9KFR7rb|MSCVNP~FceZI zy+cX83YrpEcTI>g=}Wwk@N|M>`sr9Xy};@74_Q4q2{6(z-i+V(krks(X^^#}UJLH8 zepeB^T^M2)I_+4vl>wd;YihTI<NR@<xh^NrHua?Md)3(Yl!DfXzihyptN($My^;AN zv4(<_)jF+q@eO9_SKs(j@Ngm`XKG5|pXYT2R)W=MYM-{(13vA|S*Kir0OgCC&)|o@ zZ?>yK6?uFgd(i)-ndvpqWr*V1-ckixhhe$3vuPT9kr|VbHR(J1_cMAwBKn*yMlQ6i z+bkyE?4eEDO|OH3J35<1^M^z5cFg%-bxys`RVOJe-n8`^6PN;E|4l#I^i+3m$@&j? zdP^v6`tJ`kt;H%w55Pz!tNN%i^91ss=JdMSw7mB}zFveNWzUKG|Cdg<o$)}Uf}QkG znwV_6hwZ%m>B#kl*j#6#((hypXufWNymlBT?G1-7QOp+o!QZNu$~!Jzrz_wvziQJM z`Pc;8vW5QqH;q5LA8@m6wrA7gKqJVIi-xcC;||GYa|=aM1cE%l^p{e24ehb@p3jz| zMT<tkq*Y%yy)}@i$n%QO<%#)Qi6g<|sUDa_h-9#Cb-;mMzZg+LH0Vd$>hnCQ!OPwV zVAKe_(rRoE`3H>5wrQqYr>{kVZ*XH2l<EGB{@pO-v(ifI2&qZz9K8dieG{90cCSE6 zS<C<X)6wN52{ciVuqoifMjncBz;=6SqanJ7=w%Fz^2w?sg5FF3O+_-LBA}3m_Z=DL zsop%w?&|pe;~LMhZFX!x-D(%q&Q`*gOR%9HHxX2W$(xbnbe5#Lr+&ZnwqIb4(BnH* zWJ4h?pWVxhEYWQqeG^Jp`hR;j?83r@@kf_9)Jch!8r|MwB0X+oo}L=#E?G}qXlmrQ zN}EvcrQP&c^z~z}MHEugOnl=^yZ3_^A@wyK7_(RP+6Z!qxdw1+>{q?Gxw*Y9HJ)!F z|63xXffc;`lK=nshyc02ilBxfGYXlJb39cKf2gqL3ofAs$#YEGwuwaqez`V<d}<n9 zd%gMI{8C~r5exqzJ)^U}{h3>?^rQxf`AU;B)#D1~HN6p!-n;no3U*GI4FaZdDxZ#| zw*~LI$P!F#XkN{k`H5K+qR6xIoegKjlz;pC2}R)4NvZKAq*{`DSRU6mU(Zw0W*f)M zfV`&2oYyE9a@@k+|Es>g%eSDQKNFGrfSMr!TLxL|>b$-i@{(N`ylw{_-H&u+-AJa8 z%X5}jEYI$h)WKX4<%FyDJFeIKQw#Du)9Axv0Z4fX_OwSUS>fkx;e9Tj$vCDd6?*S0 zz3tGFIk+6Oh=QKf-Kpwqs3y=6V=F>YA_d#sd{j9z99pLepQ&}vt+L~ABDHg>(xa%z zIdUheD0L%qHJ8>auHPNTeDgq-Voms9GEKh9aZ+B<=T4-(CfimyCTBXB3YPD71Gqi6 zu<-kB&ZA&{NSF_w-@7x*C_8)m40>w;!zZKup&?C#A|<DaNFR;R%>o%7?cPTOxH_f9 z)A+H?nXtOjkZZ_~Arnd5i#C4vyOQxS$WO)+l$EpGzCL@}FUfRdcb9x~yg67_IaeoF zucJ3yC|;sBw&o73RX?bA@Q<(3l40zZH$U=C|1xv|2Kg=R()bh52WK-)QHv_`y%$}i z^MQQ}jnBnNuSCS5-7!A6@DUGkCuk<<^<`WC(VhrFB*MWa4bnm*D`HL!jINn6Q9A@6 zcfFb38Q+C^MjHSJD<&OEzK(O?=d2|*X?|GXS@;g`fUd6f9rhPRFHP(rq<jKdD*d`o z*nuYC18<(af09OP?3V#Oc-i7>Y@4D(j<?-X?z)vb)g9k@YWohgLc1Hj9o}=FqIi<B z?{|9LV*$NrkjI<PY4hDdLSM@SpKpa&`Vn|UwHlla0&E;RSXQo&T_fTwG?+e7!SrC# zfCZup(1-CcCXP3_y=C04DC}-_z<<43vQg06<7yz_c0MVCZAJ14>)K<P$7#q)WWY4{ zbdFc=17qrnZ9+{UDtiyJ`1w>JahC37H|o|EF9y;4_j95%1COrf_)@P$FLXFm&UXLo z45n7qoyg1YxUtDby8bj}TFrgE#MTT&O;{A6g%`$J900h$iJw)DBXYJ54mVMbvy8Q0 zy#>7huUXx}!C^Z1a!&_XAlkdUx{8=8Mw)>IF%(6xI2Yq-e~<QR8Rz=&p$K&0GsD@h z_S60gQK9adnxWF@G8`6s&6|ARr#M87GaTQYLgRa$Q-m~Q*7__|ux82sB5Uk4np35z z@d)S6WPWF#^bV#@XwQW7>q7`je`H)eRhJB%DGfC&zZV{&-0yQPXFXaeJ5Y@}n9Zsg z>7cReuVN9|`>xrJ6UxCE3S#~g3dL{)FqsR)nrbLunJVI3<DLP4&-U!8nh$_n(9?>V zO7#LOvBgTgKe*spil5HR%-8@Dw8hLd*7LQFES}D(K>|;n+z}V!xS=R3n={b`Eh9~W zIn?2a$Rp|L=@zwhA2tE!4|ivTJ|UotnTg4pPPa8iefjbw&I;5nZ4>pvLwkX~t@oYi z;ZTOxfB}$sm<IZ|AzxNBk8T_zQbI6qg@Dlo<Cmt(-RSsV%&8_7z2Vn!DNpaov=2yM zhC-HqM8*c$tSyf#CWRIDHmkzBNfX5%#~`<I{OfWZ5(eLw@M+4UqFMP<bO9GcZ%AUJ z`KXlTr{N7E+YyN13eP;{ytI8?PUI%pK<QlrIfeXKW;zzVq?`t?zhgw*=r|3Zl~;5y z>!`W!L?xGppX(s_1}*B+^hb_=QCcpFGI9R~af)FINn{F7lsgu>w0Bmdwsy7yY$E<H zut26y;90-*))ntLqB(3@$l`<rKmuaf&CQKmaz*xRaQR%t%eBGqP;G7P603IZ%>Kz| z<Ckk(9P^QyHJi@3t^Vp#oo!>6CqhZg0=mblG@(i2>=PHiE8yVy1p?c4%Vm=mNlVcf zSG25d|AB9Y64n?wE#OU5Kpd`;qIh1TOo(aAsDo+{Sl@9~Xp*>3TI?BUTPZ7+AV@R^ z#LnMfeEm(;&jgOT%ELzV5R{8;%MJaInu=ZEtWu*DnpGPj3IViz+b8I|2?AAGd~o=I ztoPc&z{iJx?>=2@Z;DqA;=hZYL$&)~_arr5KF{-&fyCALddD4|R6VY41<<Tz8@Iz= zeDLL5zuN-SQo8%G2^7nrDbZW&Q54)*)-gwpvCp%c(CLfbElyToRr7SYA10>qzzKc; z9J>Fyx#+VP1}*s&ZJw|`aHt(Boe{VoQ7ThN!aHSAt}rZ*$XxXikR65fcapD`kX%pU zJeSJFr}dbq8jWUAcI{m~1>L>v46f+&7NI6)CJ4EoHe8h{i`lf~MK5^lqjjV*c@n*B z<6t_~g?v`n0lCpQcxu{fe!hcJLOzAb+K3kjn`wtZJlMy@sR`4Z_GvSTa=Bw!sGi?{ z6FmRafWY(;li)(c0Lob$a1r#^wR>>F^3%)YT`QkFk9n$dxc-!JHh|d?kL*}M#tHBp z)G9a>ejVEm6~k7~cNX7o-j8|o;sP#g=~D2j2grJX>GePVdds1I91N!BS54;4q=z%| zuLx0=&T;D9HIq+T`C|muqK<+FCp(cMg`36Z63agGGf{BL<Uc*!%V<0j%>B9P^h9v7 z7CJ6fac8j7HJkFPN&bl(A0OYeJlp7+qc8?6*>Ol3K;gRA3Y~aI{itB3sf8zLVDawD z6ZHt@%TcG|9mQZp>5-~R$%2;=;so!tdA?H|&~KwGj*fB0!@R_B&QLjfHLvPdNVB%6 zb)5OEPf|_i=+vQ&aN;qywXm^34ywt-#ubGDY@bY#868cAtxTU5^{|y_ACP?a7oHr@ zLH1hWtYSW!%32HQQnJa=tmV1a%GaHf`V&bwI_r|pbH{A<>cz+M<0)$r<Kf<k++_+y z^#7cM@38QuvbIcjC@tPrG&7rgOy_g`@M`1Xus^GK;{$bfuXHOF9VqH}*SSU&dlYqp z(7p^jXTDFS&a9`G6Ru{58@?XldPo7fr@bp(&8MyWxrHprlPr6;EpDz$PoqY{pLMn3 zr3db7xc+3KFdJbpDs+n`^dMl1HuAbxhXj9gjmT#?x6TUuWTmBRE^)ECr((ti<E?z} z7xSlYmJLmh(&)|NXE{E>6d#Z0hDbA8PfucQjc5H^S5L*)0%mh@s`~{+F;C2l=Yi4} za;7;aF8P9i@x}gNlV%Y+P1qC9?{w^mF{R6!6p3n1yn9zy7xBX@<@o1{0?MB33TMe6 zR2P7Y-C`N$7Vhqzo&p=BTBa^|A8u_=et>?kTXBX^amKt*Gl#ErllU5sa;oo37r^PH zJO2D=*_Rx8#Tzts*om*;Q=YgZxjzC{U*j^KaEzyl(SoFFjJ|pbW}NFu@N#q2W$pSX ze!e`s9RsKB2&=ilTg3>a%5#JX42sMQU~lzPlo3>ujvG`G>rE%>a2>|LVkOa-2c7CQ z&Hcy_X?^Z!GWqB@E8Od?nEPmA6d1tUS4?(I6wirW%iDs0ry2X#rHooQAma4J5Vfnd zjXC$?6lMj8k9k+32XwLP+K>^cta{nGDiOu-F<Hpvpq;K{nQsz9U0-*$p}HABSwT&R z*avBL8$RrGV9sE=;-wBJI$Kfm@DZnDRg?RbT^idZmxlXfG9u}uub%zNsHW4P0#6Tn zrpe7NYbNgK8Ng6^yEf5=Olx?~>AkdPD_MBp<?CAi<Y?&gP<hmSJ*2(ZGLjN_mewg! zNNi^h6da1&y;ZNdFGQ)uyWl0>BE-6JS!p6i#0s72$P>ka!u+WyozwVn>oRjU(#M5k zxNJ`^(u~@YL+z4_M0oPuiL1xi7L=E)?Gd)PhVDMsZ=t?^J0VIR4mvsc3}-B?;5k1k zS1Kht;Q7D3xG0#rP~F&l=HfN@$KA~=Oe>WlLDqdQUgQOBVq;^7D15)lsz(bxW$8<e z3uONVK~~SXRfo6twMll|>j^yudo=IXEgn2{Le>#)lY&`wYn}5*;^wf=+W1OXLg7~r zjw~q~Ira|$q_?N^@eOK&m+c(^SE|e7_Oy*kni|;vv)XSN_pV}R5~(@N$LSIqWkA<6 z<$M!)CmUtr;*Q4?<m+d?Nq~WhEgST1F`EGAs1QgCro6d25_ghqGx|X9Zb7s!XpyE< z&pxXD9pxAC{d`{-Yh308GK?aSa>j7_>S(LgjV6k}q>}~(hnBuZFaY!S#-!!`!c--L z)KY0j-Xbfke>PF%z(0Lokx99Z&_G0|+I=2QV-K77+b`4#ySn#tYM@cGJH?tJNG)wH z5~{3XgQS+9fxY!QnyYwL?sV7;eYKz`DV_0_yL)++v!wX0+S-iT@dPkIEyq*xj1rvc zeKQ<|>KbCMZT$eHfK|}XLk*w;3JV7@FVN=JJf4|jyN(V85vkg6|G|@ZL{J91uS&(? zK#Xj12vPCai`{!XQ?ORt$*-PUf%#2!<NJu9-IlB?M#s_tBQvSk?iO*p#>)x>Cxx%N zFlmu%_%K8)5t~_MEa_p7t{~jKzz?T=k3ahrBb6B(Qzv(Qi60s1&EbcOk>3zGD}mr7 zVgqXMMkzy&erA7?5bJ{7)^&63yFo`!H^}f~-M`#xwaMAO=5y@`kzL#}P&KzV4-H0s zDW842{;-vABStsY(hnP$A^x4y`J42NUZBOr<g~^*c8fCHI*1utq`2-M;yd6xjH-s~ zA&N2WmOmGSeT$3wRA}#1{Bn;r+z>-6>uQfyymSTN#F))>g3IAaM_F29C6_M`*O0(+ z1@I}Tz}1%UrXi3J{YTD$oNrn0S=R67EBAeEnyeV}pzg^%VNfrp<%|#9{-cA6ZjI@N z6>I$3O2yPxmRPE9!t$Wd(R75=3Mk2_{4)%$@Mvh}5Q}qB&O+f<(@=w`t8ad~@_+Ri zQDJTS+<erL>s{e+CsaKgi#^EXig!K{9-Cz|_vOpW>(umv-0v|mT8CO@n-{L!SwYu& zp?ar84uh$Z6N#+44EQpY7tA^i=aYFqui#fs5}(OTb1tUww)M>I^%yo{+bq@Y6kvtq zFRU+NH|JKDmvb@ftwfXMI_4`cQ??n*4WXJg<e_})U+2!<B={Pz`}0?+5m#)veO>p6 zdRR%6wu>qPB^!9>xnyB|-1Tl}bt)pJw#>9WG<ye!nenv%v7c}c&_QgL8V%|f`7Ny- zFb@#j)J=5nP7Rtrv#2<pLKPYppfcyBR4%@-EYIOwml?JdU@P<;-+5MnY_M#&(^2N0 z{Ipya`7zzn4j)>b=UMJqf57J$h2`BfULg_kpl)?j!DGLkKvC)pp`2E3?}4&s^w8e{ z0mBUG`Q*sZ5RZpxlQ!SmH`7mD3Xf(%>L6&(91#%H*#C}cwu=;OlNYRvB6}Q$iwdK; zA@7OHc%&!gF{s!Ra>>O-<O$}jGTPS_Q`fd`K<0zx5*ApJWwo;7Q@pM;<MY0g>z+2e zeqa*$d8=yoo?Zm?-YOFso^t$just;bW31t}Ouaj{3t`(NTE2Pntin3M@V2<PdSMip zV41`JpL9>U-<~YvyQ%SOBf%V&Ch)js4W2VjRQg9Xfz;Qb*T$@r^|ktTSZMt>PQ=kI zKH8H1iNAAO!7lNAha2gY3qXEOtaOrD9`2bu$GHYh#bN@>2#mfR7<#zDAgqF^SLHwJ zHuNyBq4r@&Fx66}P7ryWq(p=CEdEMa|NAm}<~%i_%3YN{k4+C)DHwQ9W7$7B{>#h! z7X?Lnlj(>4Ee1?v#$4wT0Qr=1EtW6Z-mUn8%9y128K;neYXV6<^x%aD6-HJKUDlEI zy0}K#3sCPgnI5UL0-vsE<c+xE+q)B^VE!^qln(BlewhaC-96+qFR!(A3vZghpabat zkuy4FV>-vbsm)rW1z3}jicr~iEx#aMB;6{KQqK5K<evohYs#8t0;v_Izf=`~yMJMB zt>A1IeEAFglhr?pYK(3X#r~_p82y4L(w+3$mXtC9>JqLg27?yFkq9*l+O~BIx^?93 zg5yVMz$Z*L;D1@P7R13`)iXlwda}MxZD~Vh=@vl8wtb2Yoob_^ZARyF{+FdP`7X>N zeyE4Cp+xpvL@eXs6Ye==Y=_U^aRg{!iSkrh*UmGM^)fwB^`!8$qMOUmr+-QMe^;L_ zWe4@?I-NQ3jn3Fn0Zmd0ZNKzgiaQ8Ew@Su8lN*}dZKfyTU~h&rbt)v>;Z)CJ10vTE zHR<y|OY{Gw4rkIqJzNT-!s>P-vzCVK3@bKZf8AytRG?}a(kr`RptO1wcEH%tNNY}f z6WU9FqaZM@NLx+)tpePC#bkc=-ZPE10n<Z`6JCXVb^7s?ay0rGwG-vr4JitvhXNUc zOJjD-QAiR@YA*Bk|Kjew<Eefhzi~x+O9+X~l#sHDju9f+Thls~WbbUwF+#G+EV4Ht zWn~=MA$w+>IN5QGW3S)!I!E<>zdxV*`?&AN@1Of||JCCm&bVIJ>v~<+bGi$1ztg`S z$G^)v5xVDPjS}GKjY`Fv_Wt*11pvMvTdtr}+LVzC%6y^cx7f;4X?EFAWo>`n?$z+) ziIu{Z_6z7rn1Nl(q*nh$q_nR#az2*-xMI=y3;%~$>M&I%riN{kW(N?1^6|iYo^QU? zY7SXo&t$E+zw;<w{)ElyMltBYkf&DNCquIq>!{pUd>?{JU)1GjMV_m+)!*oYm2p!m zE@Q-YpWZ_LHG)vS>#sd$pi+cL)ep}?{;;o|sbj$83Axs6F=oSf_ZsoiDT3$?Q{M}+ znel%@a2cN)t%p2+1iNtn`EO<P2LPW2?#srtBWk1d`U=@3(`Y*G7U8xgi|||ITW)!? zr};Ry*pOf7eayFvHL%82ioV8($-fU0FnhsUS#sxoza1x;*=mglkTBdV!rYnLyQ3ru z=kO8{gg)ZKtTjLx*Np)K-NjL8@d4t1^LeF4hai)zhUft!`ZpThM({VGnG-i{UAAFA z>%LXB8P*b0Oe}x<@K$(b#Z_O3P3etS|5~BAIc#rH!cUsGJ^{QqOZsT{hYH!eig-_I zGJp-=+c*~fHseAJAE(_zJ-ndjWL`Za3&4ok;{S#CzdAZVz8?4|TY+#i>qreCk|9s^ zZ!a_?3VKYvblyN|)BLw7`VLqxoR`q1UE%Px^HIXN<&;?@xZaOZe+E@j&^l-N)7<A% z@Z;CfEBV@cUE8>%9B2NU#jkGZh7l~t1;B!=WhT!gckWimhPYs}K0_dZ#*EbBJD@R{ z`0874f&vH&!qtcT-dCt=8ivk8BW+q2S^8<#dKj`~{*5Un%z!M1KWrvI<6r45IPZ|7 z>OQ2;#K$Sw&yN?OTrBYm4j9$kVR%q|<(#{qM!+69KOH*K#&Q(KADucFb`pO+QqoVB zq7*rr1w;tYC(ynq>w&kY{@XPP8Fx)ND1MXM2Eb7!+R}8^bcw*rMjy=g56?Gf_<^{g zC%NjkQ1`Jg?Jii2!s~x5H$}S#7^#8{a^&RJ?UL=ul3x=Qz43ba(|iau7}NIfsoT5q zb|Wa4Prp|VO-`EK-sDqMj+&n#->z`x8o@kiE_)gVY{eCOa;IVaV>=5XF&s96csu1K zn%foiaB*fhPp2#$tY6Thp!z_u@mtC8OWI)j=+D)^(z!pDGZz@JhoOf)=~(elMEcm| zJZkgThz?88XU;5FX?Ab<q8L1zGSo6fpasI(fbaLZbCRdC{adHqf&CnRJ7|XhJwr%M zbfI=DUS|We7I<+K#Q$s80xgb!N7n6ZI_x_j9+?1?dvr>cu!v=d5`MP+!^K5Q`senK z3D^sz8w{-c5_)Y+`I5OEEbn&AaC+sR54(eE*PbJnN*R8!2|nyXN<FX@^p=19`vial z4a9A2uMeC)Np=={QRP5<Gq4j(4mpp3P2<Qokc~jjRAOv1Fw*8SLvq3hfUN64@{pcm znvHl(4nC~l@4_4W5B@?NOxCfnhjbSy@ibtki18~WRwt>aQ8Dy<AG#1LV$E>(1hEBV z53DL0$cBU|Aa*WUVli)Z1FJO@xPP4`$KOMcNW$MK>)wPv7T4N-KA@Nbcs#1tVz(*7 z0ZNM@3Wl|);8!Hyl%~sRd_nc)Kw`&~dVvm>r0~+|p|Iw-(s0<?`FU9uXvT=_MRm!t zSVwbDC^M)E+pt@iuIAl2fy6*534cter<Nw0!xV7-VAs^jx|<LqS~ZY@#MYu%f5gnu z^J~PU>u0#H4B`3GYzbAaeNQoiEi`WC8!;H|HMbWxxb?3zGs!f`X;~^B!}9^XkCUY? zy(K;kDVTUSnI`bFSnfS$m5<vB?=;1jC;?gvtXyElBJDkRU>Ld@2bN?}Z$N7_q@|tv zuge17suffC@b8lu*}60Khz8jx34e5dWk!@3>^eQn#1<p05lnbuxhP|E7_QZ?jGSMA zcbA!}E~R~eNlnK_EC2q)kt#TQ#|9woJ5XfP9tEma$iQwJkU4(G9F<DZjm{kBJSn(a z1T1PPr-0`gIM2*wsj)h^^QvGLodt;tu~nQ0CPZjGWC9BWkQoIk(LVdF&bi+TjH2h} zz%E=Iy9(A_$Y>980i=2T;ft--(3AMV+RtV<g2`_(qe?y8V8bwBKc<1{MeU_tw96ov z&^mzxC6N;6R_$frl7+u%l65T9?C$H60};vO6)z!CX*R6o6SJiIz1GmUMZBlk;I~kO z!aotM%?k-kvN-b^dFR3N?^CJm!SZVnV+RCL0~J@sOtMvl$MF#dxmr9{|MJHD%PiNH z^S8&}o9X;2+mA}D^j9reqHm#Gw{W)T*o6HfMJ(Iif3C(1*bdHhVZlx$X86OW9^6iq zCSv_Ox<c>wj*a_+?0#FE_zVc<y2X9c-GP?<XPd}zu}&!wk?9;_^S*a)G?L*ffX<6l z#oZ-`?$lFc%jc(SHae1S7{U+&9@9zwnQ3YD8MH4*Hks(9ZOtvrQ|qInJEwJXOg43M zOh;#qNUENwgspWhJKYHt+}S$Dcuf+W(fzb7LAC{Lpc;20+}%O57FwdNO53&+J=MSf zIq%qbKA_IsZiy^XByhg$jH?g7YjZ%OIw5=WyN|z1tw~$IAZ0v%?=)U*1njaP!ntwn zl`HZa8l6Ae@rG!%Y-g#FEdvxod@Bh$vrvvj*|tbJ{$$97?8rF|*-Pc*FG@(K42|2~ zYAy-RL7BhfzV;VB=AG<)0fVGW6cK^C3?i13f6T9h2m`tIhJU{)fG0-MAud9<syh1K zT9@4>SI^c!^q>3KH*jBWq#ZS}!m1}>DW(s$d_caVZ6>x;_K!vWelny+=jpVL;-Z+k zo-Ul5n`?IT^iy^p)?MIQj$3RE6at$7ng;Yc8l0O>sSUe>lT%JRF)=YumY3|atc&t} zyA<9SWyrDX*T#Q`Y!7H;(-t~e89m(SD1OGx<C)U6`z#UsKeC)G6O?|ae|v!3GKIX$ zKhhq;T^J8c8TGtKyk?(|?hae(PK_$h7<^#O8*Ys8kwqf5XqxF_xTW0H1z%O!CBS3b zwZ{gWxRJ|PZYeLrBj7?b(0PwLj@OY57MVxqGk=W}kEUc6xelmAA=567-fE)8#l+ZE zgYPVBB?H)TahevVVOxJCBB!TMgG|3}lEm{*2uUyXoyh~{@->IN*H<lL#Hfft#R;zU z?hCsmHS&oHjM;di-msqMf9kFY&*8y;+#~!J;u_49PkI^QcHfkTR`#!38Y3EERrpf| z$KXm*s6pCzhr^z5!g`GPwlV(Ez#F<e{@@(paRAiH4d=If92=nS7zRd<0^hn-+)VfF zkvON(EXT`?Blfc(Qja+ncp_|QiB^&+>6gS@MtghH_<lN2N$5={aY@X+JbCk5wa?Mp zyZTNeX?+wDlWrSh{-$V2<hT(a$du5)3s}suGUs5(`jwo8Z|D6EFoMbJA5Uh5U1DTn zx?RayHU*~c9qmgPKt!^Y<N<=UD<xDid$u4b)~c+jL;|=A3+V!msT8nGTl)R*&6Bsr zCR!ea%2;FQwQ&~DNGls!S4r^HRPkKt8G}(K7-)38RW>?mu*!mZq%S>m$}bTemlFZ} z@K|%;@oyF%!otj;9a<3p@?H)kIGDU7UHf{cX)i55sN+L_RA_JXavo6n11G51N6UA| zE4N;Cz={aw<y7Y@3Rl)QP6WG~rj<zxEKeSbDNY+G|8$Cbf+ZRd@dXL!Jy9MDkN9PU zwS+x(y7-+p>c&Q?1IkAN_6jEA_C@JJ_JiT#4iA?&KYI@~p5G#OLn&=$AhTw{x%wiV zmDpGU>`5}vuLCHPbsKzlT4sNnpF*K6(%+o}ck@K0LXy&>Zp7^7a$bdhb#@a50+8EN z0syGinxZwJXlt@zeYQgJR@ryPncAVE+q)G`8{+448a&f)?HzNhgEn}-?8%vLg|_~- zkG}%;@z`_q^c8%%lggJum2vPbaWl8&s$ZK<SvSe24skDPQ@f)*M%`xImynt*-vI9P zYij}K(qT88n^WOXv1JNK*w2c;t$-VUWYHXP0VAYvZ_sZ+`Z5c>O{qpKXwY^gVWKxU zckWy^s<JW;vh}$3pA*b?>pa&4tbrY~&tSkqwEQx)L6vkUWq5S?oP0>8C7zhyhe~qz z_He~x$uvz?Jruxrh>e9=-&rjk^ISbQ)A8+_=o*6vp!)&by(1_QRph#Aw#s6;WTl=Z zD}^h)a2USGGS|U6YndQu=x06TrG~<g9<s7Z3@&D(xcb!+O5ong^AD2_g>eAb@LRHL zLW<Sq^2MfBEmQ-=6o+R@K%f?V!zh#CIvQD(FG&GyG4yJGd6jjge4`MK5tDJu$(y14 zw<LB{bAwq&Qjm#pjJiywgXuG~+dpsEdkh{?=S??CV7e`_Uj+EavfJKOZZ1^9>SpOP zPHh@6s;@2|gHFRHMpCotA3ELnnN)+>k3P1IlJoUJC(Ci{i&nwaL-*X3#p(K3c=@ci zr#uF0ZXlI5uShYXW0BK$gny_bmQFR7tZN`@FF34xehagVSoO^sd(fbYVJSP>m<W^< z+d_=Y>xnnjkssSgL-NIz0-3r?n?g55)k$OzLCYMl8V9djc-uX;GY&~ymIUT()t=d3 zAKHwk?=ClM96GOp6&fu)V)|?u8iBtZxqeHMFZ?l~fz1lC1$AY1a60Cby}P0j|9mt` zK3Cmi=+8>^%1@2XzfHbvvtqr=c7{K5A`81QITa?W8%Bt`@Crcimv%Jx4kX_UbPsS3 zR>Q?kD4d!5Q99arcBT@!k649*A^Ig|58)K{fZaN*-T8-(RB>=Y>nqQAn00)1<5l*i zcXOTP%uOy5LR7ASGxODUou}OURuwwtT=i7O0}i?O8RF*Z5P+B53W1qmwjl<xkkNfz zvX#i2W_N(H@TS|b1P3PXVip)N&WU3yNxF*_UCaDMWGK&?beicz*)@})!u+CRjc^lh z8b-#Qc!4}2niC2;v8#F2c$Z3XsjALE8qG?0^m+#%Av1i{`88|T62JBg3N%h14dmN! zTPeX6Wj>R{jV?D`biK8Sv%Hd7P`Q!%ih>@TE_8>NePAbPR{~2k#+ni|SerI1`A>zf zr}z0e1tGrr*lvLcWjM?w@pT8Au$A4}>d++bt8Y`?&5hK>dXGt0wI-6B4Y{b$JTBt1 z)MNXudI_yZDI{Y3S#U_t@x<1XO8SLvqTbIIA1T1T;NE`5=C%3JN?ix$&&Ieyc@-6k z&mEEzG`pOdbwhOE5YBC-`N{$5^GEIu#X;c>r_i2G<&TOyV1@DHr3*T&&VG#iyD=c< zL@-LF!FlnC_ov+&xYp3e3KDxr1V=N!DcjEMkUO~ax!}?9plEggWAX1$7hPK?M(^l_ znJ9<h;WwZTkk5D16JUQ8$a0J|Nsh`XpVK4=!I8guBuZ_Z7)L5E5!S2Vd{#4vU6p9I z(~zxpU^-Az@2!j5%(;S464A+<>h3)cw-@UU@$CtwQu@g+<@J{%aQ6V;I4vs*gaUCY zCBdCk5>bKe(~8!*C{bo*jbygDr6|K#L8)ukV=Y=p2i^2ey0Ix!5f|&D?=A5S4Ljzp zP+my&=p8cJGRwPYK22`8B3n%YE5~hA%Q!c0w)C1<kOfaJoQiyltujt0aMQSHHkcgJ zFrG7iR<m|7aUFFRw*OUzvBBp0k^Re07UFN#TEEjE+c!#JOUp~c_^)M=K=C$=zdXw5 z4GucB{mR+a{L+nhI54L_RR?)1(W5s3Sas9)98yf}t_W^B0y)lwD%gy40uE*W?dta+ zNLC8z12@cr-MEK&a;TOx29{>4=57DiHN{gso1Z81ow(_DIhaCpCtEjl8YTnD<Y`ao zR@g51Iw#T|L1EsKPSK`QPP6VxFBNMBJ42CCUEaJ_MEepe%#q?h`egq&kM2Y1We~<i zILinAQNN4q#TY4ey5i28RqR-!o_$c<zJip=rQZV<TEYRVa4N>7rB~RzrOiVUTdCqY zY2E`gu&B*X9Gy`dzk{KUkk^w*_^m8OrTCZ5C%b_{IHi35XM)wL#JJD>=+#A01>79# zE_b7iH1H@JESC9;vaZN~V3ruu^jpFSQt{1pV5kyoX{+`4JHVB9I!uIPti8N+e|>tr z&1ZtWGuVfP?^=@ZkcIc-PxFWW3P4zgB8DG#(0`aHX0f5&-HIbNz=e~ifra312f{+C z<LHLgP*iU?5x+Ej1LsDr?f4XcAgJnEC;4f9uBh=QR{Kw8v92i_u%?go=N~t`{UV+T z9Ndb%)(S2MeZp31cJzFcO#z1Ftk`s2+TEDG8B3ndsvi^M?~VB$t@J-jS)$oMmM@y~ z{M?t|8D6h{)V>GFz+5I7c7ZVA>9;(m%uf51GyR>q?$ubaeToHJTx&`Vl&_YB-JZjJ zU;sOOJrIUMD$+1(c=>bdV`i)^%8To;s>g+j8=st`L+xMctiUV>#)IvTk0^ew+patF z{rHHX7SCvUv5pM_@<I-bPtrjCi~n$oGSdIa(aL!<ZH>eUo1u32@t3w6o!qCq|2-Bh zN4Uj5A$sK;S_cbP`4ZMKG`s4EH!*y>{?-US#lrK7zl2}s?uU-fPv7(}P<^#?6KkJO zDv^p~*c!Fdi%4OnH)U8RB|~yNU$qf+7Ghh?taZkMOcOQomKDyeN{Ow?fIUe4)fy@* z)-Y3FJd<&RDD2Q{ASE;684E60TsnDZ_GvO3nRU>W{HgVj&QR>=V-Xa;Ua5vh!^t84 zhetZjQCL<2N3lDm>XGxQ!WQ@Yxd<=5!53@imO|GCido1gu*Jmga-oY_O|BK68Rj~$ zvK`ZwjVBbGj~yNgneQ0N^PjJFcdbASKkrxpf8)e7;2zA_7I0WT{A4k?;f~XZArwk- zm93-7jbmHYG6I4nK6vt4J(%7(`^SxJJdcqmvQ3jmmMe{?z$9I#LMvR1_C?n>+*iZ& z?F~Gcju4j{=Wrm+k&tiw(=4zJn?>5~c_)@mgaU;Tf5lyQYHU=C+4H!XV)`91rcqgB zlICgy|Fu>ATh6oehA}k@PCd$wt)n|HUb$TWQo3gKH}aboZUFy!V}#VkHbOrL0voi+ zic7~#g_-4T-jS46=Z6+#HX=?oYF+ESJ6lTs47L==-t$tW!M4pkESMNFC0-mDw;X3F zlXvqM8FO0tOiYzIfVt8(QW10Jg!OLEuq;O3JYq%7T*MZNr+U^5<%JT`u@3M>#T<S- z0&4qNbk2uLGP6zEhV=y(rD`yU2mJt$yS{E~&6WwaZJK6I7WF+oVfbFb??r>FWNB|) z<0A|`zJkzWR`a+svsV@B{<Y*d<?pHWSQQs5uEUYN8fYk3uPm!d5f-iR*>Eb2c2&oR zL%>z@A)@Eu=~5R@F^>1EfsVG)ejMU7ScVc|?#_Jwg=%At<fP6fr%N|N_o-|&pJ$N1 zx2m-7t(*e^)d~;h#Ewg+x_ut<Tkuk&8X>l+Jq$bbp1J2CQ{|0AhlWW$FA{e+yG2(Y zwTNY<A-lmg6MJYeucw$;Efm3_kXW#a>L1FB4y}_Y*5_KQ#4OJxJ(H7{?{zZ470)<+ zi`P-OIEjTRfsh;qYsNjZDuH_JEv`#u6i`f67>MyYmK$8Su`Cdbs#IF7kca5_x>CU{ zfIC2;;=b*CNg+TTsq5S4&67}I_`rfSpI;lMmSU98dpD*t|DD!QXO}rrj3<W##9wqN z`qH8=u9a0S#?Ov~+Vx=<e3IN=RH%c~iJ~t^z}Wm&pHXGU%TjMNx|WJGsB@SnzU91} zQJ-;)uOg@T99jbC({A3|Bdw!oboaPMB0@R#q$sb^#W%0Jk=K1~^bEhR(^p52iazX$ zU=aXB04~i~P(M_6^(j?IxY!d$EG;WzEdP@V+v93HqeX|gtQd8VKbt;5h^zd^4%5ax zKn9OcFdls>a6Rv_v$ONN?n`3Duf<Mq9tv1t0y~buHjiK(zP(ERB#SP`wTnGaI`;u4 z-5FoAc5c?S$m(g`RAuy<JRi@9e7-qD?7Cqt@zeSA7F>W=tVfHmVluDdIG(jNPp;C5 z80xeW&hwO&a_xzoi2QtDOY4pipl^_QB>=!L;qj|e)t`ixbuV6=jbkQ-fF#BMajUEF zW8wxWH6QoYjs&6E5~-C^4nh{8Z8N9RFyz<;pm3?mTiYB5Y&OMj+Ug*`vJ;QBGaltw z>wH7U!uaxM;|cF+i$}B9Uz7Z}LC=~V>aoQGccCeiT0Pq1I<p^iKFpGT{C2=zc)oV` z#QHCgCRu`ayDf`kFJp?5wBdUFSjXwK?YdOfE$4lTrz5*?UdhT3O4I1QK*kVcXddgR zGQ@>?%n?C1PnbzNNbhDZD_hmZjfElx?!q*IS@PETEzFtLqvAL{*<`5&4)|NhoM}e3 zvqV6X$mXoyk_Df6!oqOt#^E;;d?)%qxvJdoGO#fpIZpOC>I&Xpt^x(`{vs7PBOAm6 zfrU~p^}@el!h@(=h}%oQgNHwInHg3OOJD`d4*MB3XlF9KISh_kynlsz>a8pX3T-r) z#_YanG?@*j((WJI?fHN~G^0^*$6^<fYUYQsY%R)sj+LNqY!1C}I4{iB6WLWLv0~ig zIA-lmW)xm5FQx4+<2t;v=aBSn|MNLSZ~@DtT|<%a9BVUHMA6rSUvuosP|wBypxn0h z<$dK*H+^qdYaseR_LS~s>R>k}20X@0RNxh(`lg}!7`VK%>QE;=&{iTh++n7p_kV7} zMOK{ZXTtXt`p#2x6A{_GP?VLvwK>wRIo2={QMJu(=Kiz&mJ8-1knb%7N+P${*(iot zWBKWTYtng#H)F}Vkxn&h?b-dd()j^9eutmv8y;L#+WTpSLK|DAjP4lQRkr%|(Qqn_ z#yyXoQX~09r%B|szuHillfd0L2F@#tl$vYPPDh|A8k02%Aa&qS47_#4>b~bnIq<S_ zSlxsuHN{uy2YBuxpXyScut=3^NP}Np@Dvp73jzT^DklW~6TE|_pYe`oJKXwuj;z$^ zkpOlQ!5}KXdFeM<M<#82(-=^=qwz^{jp0=|RQ^{E>kH(yJ<)s3C90ek4R$_Qqe@N7 zcF1R)XO8x)Ht$2759|)89azuWxRfTy<Hea;{#Y`ADQ}7dr$O26-hETZ$(4~GZOZ%? z=2N4qZUEO><>kWn{zu?qz@D^QX1%FdyKQMFw0AlBK63Lmd|2rr(0dF7AnrOgC_>TG zgeeu4+Q%2vJ!!31M-7=Fp_t9Xs?4@6hxL%HA2MH-*3VfF{zdyMOgOIZSwO4?M^KfF zGoF9`lQ>Oyjy(kA2ah5SQ+ZvX89=ZG6yJPCcbxq-PD*T1No`*C5JKNz(^R?B9qOc( zV!m~BT6-5PH%GhGSKBuph^_d{Tz|}HAFEQ@;`QV~ZNmq~ZMzqG5^155-wfmvEKo6d zRwx}+sc$<?ROvVK;(N3lMMujn##|hFXy#p9w7mAL|1~N$alZd6+-k|FLh8G=wrj8h z-O%_5<^Gypbv~IDl{{_FWPr(2HziY%meUz;B)@M<xpq4At56w)oGv+oPca5m3k&Z- za^>S!r5;UNU~>G2<rO%e6&T<(b*kKu^Eiu?uPzpVmD<WSm?&X*nA|~xB0jS801UvV zD+p0Cq=4EBi=pCR(6mPXjbXRc>p|2f6=-kBTa*zsc$kn5OxA|tE|x{!69N8axlHCI z7^62Jr|`g4OaQP$^h0Y$Djog!<cBI-FEB*|ln8TB^Lx#{&?Sgw7Ybi1{j^}M_b=K9 z@(qJuro$6#nD<UtgI*st{_%QpmscB&ixTOS&lEHJbdu4lKXMdb-%F3vF(W5rCxb|0 z+cQVA@cGO=jG7?Q0FQa3I~A9{VN6np0Wnk{@fTuz(_?-!zE@R+G4nK6K~z94AlacT z@!$M8NL<M>LbgJo$r#UxYaq#zr#keRl;47&FylMS4YsY9`~}7-eKfmyTyRy;kWkcf z>bsrWd*t_@fo4E{z-zYo07i|^v&hiFhev=s)|()Ny?M;pxLcMQ)?cvssHT%6K$-Ai z-UKx05)#+R9wmdA1u)hB7vBGH5&{X`3P9j26e>RQXS6J`EGuoTM@!eUWxjgv&^8%} zAgECS9M>;t0pWYuWTlZ~xIGlbdja<erc4W{<HD~i&^7Sp2I2w%YOEf|jI(hoy7Vvb zfAHVw1@d6VES1>(zNfUwM)mH4MhKAf9|Hh#ox7q?46+_+E#n&_K5gasth8dH=pmn7 z;x$^((C{o0#0x;-+k~4?W+Gyl9(nzvN~z2RY>i2BgD-v&GYjB8c<wq^lD~*0gfVOL zdPBJ&V67{XyM-Sr!fX63Oa9LfghusFhXg#i3{=1D!F8bH<<u}s@qNzc{F;vd{R^#y z)=((Z{lvHYnr7o?=52GL_)WR8fgPJ*(B~O7_3C~S!a1KRYE|^zI))l~(I2CK3(8b} zf}iJ3*GBc;03Wfmjjt^zGdRH+@|L8OV4nO}@dLFe=P~c^$M71fSK&m2wuApLSw<P2 zjTdqTHo6&*?D7;8gF;3M^>cs86u*M(yec|sho9N}_uh^cL0gEbX_C5jO~uE@XLh9_ zn8`y7h@AuRKIbkwnlsP-yVOc2BtYS(^<ZIuRpsiP$e&WKIBtox0Yk~SGk<-%iEn{0 z6(u`S^WWPFC>rbf`tG=n2XL8y$|Ig?B(`!LsOkltg=W!_u$L=9br_r!T!&<w|7!_I z>e%Z6z>LxCu1vP3&~mADKt{3m65Lmcyw5zQ$4l>0$2hM475ZPxG=!LGb#-)ZX(30- z9J1x5TvwDs!9_UG2>OK+v0wYI8o@3*l{$vq^${mF%aO9%t3Q!|{4fdvf7!qeHB!7T z1l1v9|J?-}WjGGBxwk(MmY}86wd=3{cgNUQ#*5YY`=QA1jV~ppN36|Aq`zDx_<LJ` znvwFq`g`qEPLfp9(J0~)Bt3M3*`Gv_%kZA%Iz(tw`FF30Y)F9jnNpc=vPgM(f7g%e zU1`dV%`Xe7R-RxR*^qCGExwIkq<^NvG0pMW{i_uqj3t9LB)rG_I(n`L^6{okSm&pM z(?#;93_tgnGi7}$=@Zy@tcDw_bVAPVDD@1}xbF16Zpr+SyIcc+*j)8J)y%ff2icY& z1LV#gdd2*3CcM}OO5v_a+vibh-+yaYKDsm`<j^gjX*1&iq`}REzXjE)J$uwsEU#Hb z?Vc@fR%Fl3%p?IjN|p!rY-hlCKwsf_&pl@mcg)-rkox?g<}3d#HH`{sL&Fr;0Om*9 zckjaT^0Kl5C|Sf(5#-NLw{a!)ueL<-YF82W#9ea<TPVd)qL+O{5Idzh8GE@blJ2i3 z+v4WBjoxS-2!+`jWu;H(B_#vQc@4z*7D-RbR=FJF`m0ExL-8}1g10Uo;%__6%p5^K zl^T>-+KRMe=S7+e1I4X!TnlICG!Rlx#@`3Vzy%N**1F4k>n>b=B!@F+lPe#)YFb@G zu58kzT#K?}2bP5i%6&3n1Lx4$yFXL5HklwdZUkN}?*-m{$H9YqdTWbW_)=x;F)(mj zog<RGU!<1%BcwK+p6;&N1z~7Tmbk1;X01@V$4h#M#fjR>ou6Lv02ynA06~u&24&%z zhGFA7BomW%77s-4u}WeZ=F(MTdk_pQmy2WyN$SOc;qF;E%Ed6Ai&et))(8niVP-P{ zpLzKbu?-?1_6D$=7TQfH6$QPyV!YL7h^Y&p#eMgo%5I0Uh2?etvo{L{@0We_rD5`! zzw$I}li};r)+QzztIil0U#SH@$r6Z%BjFM%{oJsAJLgUo778GZiIKp~9vD0;KiNF& z19_ygtcZ<=t9`civGkzxwQ!&qFi)Kl>%%FouHZPIX>Mt`+IsFUP3osKp6DM?!z=Pg z6JiIkR4(Ko<M7vuSf!tAuWw#)q{w`{4_P$7nYVaAh)EUSjeG<LPStXy@KkSXm7(HP z>2kH<3KS=Kd*n;(MU&=9Q<Td`P{;Lhz`AtqN<=v(OlfUOeg7p0-~XENQL_pce=z`2 zS+OFOu~UHED0Glmc~QAJH6q5>nSkD<1QK_^9==4*(*H4Mk~V_es0Ld%P}YfZ_2ej! z+!vU$IMa#sVAO0!uC&6o3!y8()a3FuW5linxUxpYIMy|<UcNjYOZA<UYPPa+(e~WY zsqpkZQY(RJSt$k<mfJ0Jv$M;lAC-Rj6}|{+o*=oK$=!(sL{QUH4uMXL87K&z^*)XU zEcCT>`DIqv(Nn-jGPz=K>s)8(1lu*|mz=6Gvg@O6`DG6i-5hcaDs@`zYbjuv6DcKh ztoeOIUaK)f6`%sMz~FwVXWdSz=NuNho(n&b+~7##8LPYz$AACBGgg-$)R8td9TKCd z;Trk`w`4M6nF6>aubdNF@7y$-W<5S;XlD5|7bq}e(_z{kN%5{QHBIzU%8h>ErwD4^ z-Qnrd4{JABc&gE&!#6+mF{_S<#g+BrHYQsy7nk-Ht!eCaAvJ5i>_$lKu15@Qmq!fk zQwW2HN0DaL*YN3f;RC;9-XFhY=W2ZX7Y830T>{a)_W`ppT$;72p;@s<Co3Rh0Y%8z z0Nh*a#@n%U!~pBAYeFFF_n{JND&Z;((X{d4jEgoQ{`T?!8}>jvUy<n<bEky06p_Nr zY*5dWJZ$!!tDWr_)9cjpr?5^&0v2?3QXIi1k}q6zA7shk?IX&6F2{UlC^@g*J<Eaj z58tuU8;r6#ZiM`}7G+3z+gld3-ay2f(BKqQABZhI<SFP{glLTsHXE6qhq<j;6sfp3 z9I04f+3mPN)w#Ql&X-I%9%?wZS#Zsoick7E<B%ee)#aIZ|57sFhwh7T0XKnTy@0Un zbFt(Rlrk+1gp4@k@j5ENtDXsxZUG*?{^7eQ(t59<DR{Q&&~)WQxLnyS@C{hHd&&<3 z5rf<CEa{!BI`>*{RX{N`Mu;z4nhh*h@LVanitCUtSPtEZRKMFVsxKi*1Wb{kBvPXk z9Rx$;_9+VhBp+!)gAUZJl|vkRt**n@ZelHu4?XHT0x}BWXa#|G#b?gk^wu0R)Ku2V zY>FNu)Fg(hhWEJY+T0{xjK$fgWnu#CW$nL7e<#z#VnJS=n2LVX1$un4#Ft})hg>s= z9R~>roLc~%8)ab&n;VtS=uBZ_#Gx8}BflAv)88L;n0=NRzYa<bm~(0=h(-*_TdIvs z3M_^-uIKaV?W7!)!c8BVjAN@MN|G;f^6)-!zBrr+5V^ZstJ(c$T(cfMzc|yG09?PI z>Mg@MK{^o5dZ%);`pexrTZLB}f;-U~^7<FcOn<aS3gLbv+m?OG@HY{8Ad<Kjcg1ug zn2u+x>gP&IPl3r!hvfanQzd16O~4q&YYgH;{j*_GUp@kBo#2*#W}c+{YGAPzzS(cF zq;baXC`xgY3vrpRDc^L!-D`OYX#iRSzJ_KZY%0~mjVx?Gdc`KY>UmH!^fbDVHdr?X zBkbePKv{skc^B`z)0jE|`X^RReN8UVTjQo-*6x@Y<p>x5u4?iKa0D`DzDq52?Tr_g zkN}6l>x`=aQMX-qZh!L~Rf4MJ9kLfpdv2q#9IqD!i&`@9#$O%w>DSzUdB4002HaLK zDBKy#kX6bcqs5Y78Gzsz!GcDJ0<1zGK*BSKZK%`X?~YmoAmS<-jjx3TXB@({9>Vp> zRPKe43+w$DOJ-~7r8gU}>H(|HsHYBp0D|4hTkY^-`As{vDtR2EYz_J<E<%F^$RbF# zhr@3OZ7(LyJ`4q;1TW#5P{jwcf)%=vVz;{^CZ)6FPS!(@ubY)ZYge;m!O}jDxosSo zSelgKfk5|jJGIYc`+F?>SkJOSEenFinkr$$bV5|#xEoO)YXRq$u*1m53&^#7&9NRT zcZd6+(}8pA{Nz?StclI>Ih}nF!V|D&M?hr?G>{`HXx*#8Tn8U#S?UTvc$_0rkD7I@ zqk$2BofrblZhxHoB8OL2E6)U>i|oGiug#Uz^<>tjHPBPxQ0@C86(!PjV?AQFGc@+F z^D!cNP3Oy>x1V{k`k;qe*jl<n)#s8tIxua_DQw?wmcM3`NEK}3D;%YNJ1bkY7a}XQ zepcfI5BoF+5r0U7HC-j8U?JV!(aRRHuHdlM&<5Y@<5@jxQ1S9^<y$A1wF(v_sK?H1 zmCa=tKFpYnlLC1Icl!dP=Uq{5)xqAU*QqoN;k3f4mg#ALf^-RmD@u}A+qSUm8Jblr zg6=|ogD-*cs}xRpYcm!EH+p`~-O45MseRvL>bs9r!qKb6u1$HoP4KFx;=&fLYUelS zIH|PuhNZL@K9{(c0fRe}pK-NdWqG;VaOwQ^I+iV`QIKVd4Ql(V2-tI%RENUTTc}*W z<)2_Fb|wY@jkUnexkp~@*Za?nGQ^Wr9o;4IlSI~Sa-%Trw3XZR{08qrazy%K<_f&H zR8~J-n(S{hsyH*y^8{RVLa!)cukl$4cg`#12MQreFEP_0&gM|ey89%V4R&mCTyIyu z>e<PbjsSP;*86KCAg{QeOl!J>n4Dj=TgL<Qz{EtsqtS44`cUSa(KIW&DVUxw@5yK# zsxsV(?<`06{MCDo+iEqKqHwzFa^!dUb~oGtOjtUIDP<qjpDd?E7Jh$I-y>Es?_<=T zGrHTou&~}r?h3<o0>x2|OOh_gWuYrOCaDjC8h|&>7kJ}ze}3B^E{^~f*96YL;-(wP zJ$gID)%U}esrHZbw(p!dbk8KI#&^A^<N9Pp;=|rU%~G4%MON32c+O|ey`JngI;}hW z^6P56`2(o{%qN5ll{zko*@Pm!RP+H~iyvzWyxren%tO+36LL>ebOhXJtP9Lb5Oc_$ z{hlOlJ8av?f)VpeyembsRwk)(%~moCNlrB7*A<Jr_N(BNu=n+f1oezwq2Rcx2vBev z6UtzOOK)ji<cW~Kd)nBnrWwYL^@8X*iN8fh5f*H`6YCr}jA#XywhqH|DF8-H?hd*y zhl`^#AJ#{5H9lJe-ZYujzjZzmo}DkDvux1+uaojw{03ece>%0J`A!J(`FDTd4``vg zh(ChLsT~FZSpOyP=Q%SiIK3aipESQHdV(Av!tec~6!R5+$9o1}S13wmL#UJlzxR(o zt$&RQzVPzDAJM$=C-NU0p9%et|1QS-KNuvy$Zoo$CcjMBp+K}GA!F|YsoLSMACv&p z3!u=5gM?1S!}NG8#rBO^V{YGWFl~radio#`FQ)Tf1>u=Cym+NPV2b}PHp8cW+EQER zseo|?C(BkKLHD#j16)23tk2ncYvmwmPvkcc^M+Av_=D$+@}MnvMbJL=PK)oCiN-gj zK$8z(Em~L*VvIaU@x+6T<1eay!6-*SEn8$<0SJ3t3QMix1E?K<qRhNR@Ckj?-eAvg zfI3~p7j^-EOp#2_5)`8NR~k^k|B}K&5@!NjjOU;r507sOSs?5#Cxp`IdBx%JC#Hiw zFz9!@g@Byi_pJ1&Z?9~?MO)>;=t5eDVF(}eW|`N|A|&+5rUk@kfkEp9Z9D{1240Xz zn$e2420;Z6Ku^;adodg`jpm)u1tgS>;{d>>2;sXxqI|C+Fgjq1=_D-ai|lT2pc$|g zkjsY)m;N3>TcL^XkU<6|o0fH|H|UR>>Tiq+!6MUi?ANII#wg?beW5EupxmOLLm7yW z4@j^wkOyef@%<H|9~kk7c~Rz*;jW*`ybo4NVgN^Au@_?_#H{y%DWg@>ltg@7A8KI3 zqr||S0YnJ(zrW7w>HG<nHQ7G`qTV{t?1wK=Xa;a8q07;@8-!M9)J?_#DGFT?NZkY& zJ&=))9%vZL&!}dB08#G>@|=Gu$$woj&KJKf6T3hs+o`sYs9yywYF(p7^WcjC_kv{? z;k!Tr_4{k*$vDTYp_j$uxo2jap;_|*=tS$ve^DNP{0<Gu=b_Rw0KEWc<t#LCzZ%Ox z$KHiBvNC~FFCv!tf;i30&g1Wjy9)S_Uno5p_<#=5L&wi>L)~=*i@^Vwc)9p{K4=ul zBALH<UBWj67OABXVBkwMzWkA(3Qcy*TCYb2KjrwSZ-X#f*|es!nw!AlV;-Cdq-6cz z1}0c$ervx8E|uKxt&vc8A~++0s>XYNj7}IvMFQ;o>}+HmD2Ibclras(VLg0nnQ9kk zfP@GXvgLXv>=_DU(fd%_UG4eSe<TwBOBX~@@#!*HECH0+Co2U(xFoh)IMcxjmzB~F z!A!6&kh<hCs6$Ag)?2Kf0L_n}ijV_u_o2=^Lsn;^Fc=LgM@`R~BD>{=m)gpzq@iI4 zv}>MrbGg8Os#RjR7blychmH5edk`7+)1)#6;90}b)AZhCbNMGE9_~<-2_U|E9qnm- z#})4^qw2IUtmrFKoncRgS73o4Z$tBQyr_zxsH)1CsH&nE&`Hw)a>1wkBz5-MW(ED= za5a1N<C{-o+FZhWT*c^Bw9uju!VI8-W!|`3B1;k==|x!Bz&-TXQPfyBi7U*NjgD_O z`Yg!N#iyt_Rbl!~N$+Su-C41feemdqhj&-&T6=_Gu<o&1e+bQev5l=l!>mt0+TZQF zo-W|zuDCvIAF4ie7{3M=p1?`v-l@R9FPOQ_(A>iF$q-BX4<`NA?C*t)Jq)_w0SL(3 zME&!*(~?&>QEZjMlVSIjR#5CK4NeZXn*w-si#MLixZrPe10Zv}F-4z6vLB(FuC+e> zn9;+Wu65A7KL$5?PX$-fZkFNBu3l-rZGxM>-Ba=~Tb=xr{yimS1ID#T`!P@&XdCcb zvm(FQd-Ot;$rU<2kZYz3U!1cDTDZiynZci=mlSa9oOq_^v;FK{gr%gquOT|ACJU=A z3C|S8D-pNX=Cxrmpj1F@Wvcxy+3=8cmB%|&M3vZ*IPkSN&^kalP1_(EK|S`Sk_)|@ zHd$mt`N=00(U<Pi=vIh=bw3YSh|Dws_tMG!vFL-ITHfGa3kcZcU}t7D>D9^U`EE(1 z+pznMIX(42BBfXW4yOMu$qK}dVO)9g4Ju>WK(N*<CF`|mrm`szqGl-Z;j4oWgh0CB zTwier3rkOrJ{q{X2t~*No~3biwb;!qT=?qMklqyft9-KSKfk5S7997WcKtaZcza48 z9YD)v0`Pc4bO|U~DxP1o8m(|K9F15hVot}FJI*r>t>x;LWG}b1sjYedhpm}DIO;LP zA}5+7anmWG*>-hP>9JPJxi@M>$-bL>AX=|ssJgjxb?FUY?I7}o9*P(<W@AkClK2Q( z;F>O;EBsjmC6$3bgb<KY23q=(1C>1n*WS!$!;tG=e%Mafhqh<Dg5Aw#B6+Pg)P;>L z8H8pQ4?DLNPXTg$D)as72c<Q7wS9>L`TM2Ls*UF5w*9xq8uuIW<H`~TVv%02-VQ@~ z2P-+_6yBh4WEmE>*xrKkO|cD5EFHV&$CN12c6Kw+5ai~hxB0=Aa#{qiKo>OK?V5EH z8Saf?5t<nH7_uxme+papdA045a#&*NCnCT(5uRuVk2uI)3GEQ>{=V_w)9hAOR?a>; zPOmZ7pP$hb&J}uo7Qh9!sdhnkpr(@(41g=j=Yt(Wc{qv$`Dxk#qRC?#N`B>|Jk*Kx z4xDToG*J(#4;SSzSyyQ455Flp^U|a-_?c;UdX}RF;66Z&dGc(trFcheF0+Wu^^r55 z%N%xjONNtYpW3kmxLM4BTe#N=bY*~ygT}#yO3(VW&*Tx{8d|;0pZIRET}vhP&ICZQ zuoD8eg7Ug0rrt|hFj+Mu@&d~Y%HcLGUQovImfX;pavxi<q6TL<3f1F|9V;#sb`Z{y z^+0c3D8zkC5n3-`XB5-^Io7^(mujT@YDb<QQB0X>*;WYC(R9ayzO2Sb2P$>ordgPf z=n=|#lWsY87ZRYGgVtYA!R0>HGu|P7(NTMBX<vEM1D*m(akALm-F2AG)hD@iq*Qfu zN&7N|o{BEnU6HgL`;wqF_ERcrbjNVwMoBga63Ebbp5nBA$<X;kMsKENozxw+F=T9% zWxm1&K*2JA67*1541Mx~g6CkHwtD2-KTblsAc1&+rG`&ISw+-0D?Tc`M(6Wd0de); zTciokEWk9^blxKWwYBu-@3bE3oR!@Nxq<WD(<BmnAD*738Qfl{_ZRt`vN9U@G;RY% zJ6L-CqyASaU>{g!vMNnV=D@AZ58ak=?@YdlTIyI8^C@OYG-ePQHP~acpqiDF4{Z8W zzEEba7wXQjXgii&Ww@)5t{!uX899WzZ5ZgKD2hI0Mf%<Qv^sg>6sly`S>}*Bn{#vk zw)EAbycWDgnKo(IS8&{uNnj)QJ7>`SgeMU3Xj*p)78Ds;xAS8{qVOkqi)nSYvdIIi z#qB3%ASr3r;FQ54I@2PqE1PCZLXL)w41rrtKv|Ls7r{0sY4hqVhp|?Revgt_1J<|@ zGN7p}XnDxs7G^$nMRzk%eqSVnpa|di;i)w47Qzpd<9on&_I`|GLML$B4H$s)MHz$V z_x+gq6ne%>Lor+-#?#+I@qJfM%1L2!s`_1c%KT0?uzptNa31(tp)K)0pC@={JJ0XM zvKrLJB>BHC(9dLl6(YtFSE-Fl?q5|XbPNAlEVv~Y6vW#}wWv_SIyeb3HHAc+(_ojP zu==pYwHWyiOihmOXc=*y{k7lDR2!HL9pYnL;{NnWmGOAxVTwWjRaZDk2E1Zc|LS$D zM-Nc>UWE%wA3cLDHvejQbbvJi)8JXcTub?F(2DXV2T9|Z=UPi745(wU2Pcpp`2wN% zb_-kc1wN1zR$zFYAkjF@?*|lVR~zu9QSrT%Lcr9cv)B`6D|X2q0`1<EKj~a#y4Vv; zgxkRC49<5)K-H_^cL0j5&a*b%Ztb2d^0>X)T663>EXz}HTdE_%V&!PSo}XzTH{2w7 zr>ne2;2Og^I_Dzu)+vw#M>b)}-#cm-0H6}(0^|KRY?_EY(kjl{0h;H|NV1R{404nb z6`kcwwKGTJm|njI`9-8sR++BWp2lR|XtPJ#33ou604QO-^dOMwdc{|Jh2uj3Vi2hh zA_e|c4EKQRi}<e_<M74KeA+ICy@q$SEjMkw*?O*=R&?d4a7bp8z$}fZ;4qz*?`nTK zV2{9<JLZ@xlYlMEK!w7wZQ#!FDIe^BqlI!uF)_!Ia`1Y#wZ?S3sq4Knp0VVB7_fd2 ztF$>=e^ttOX!X6k>qZi&b1M+zh_&smE4FyxYU~3h3s6R1=i02SqGe}(i)N8GgmNth zrs8z2`%tx}0JDQkNT-yM#WbtFpWwP6E_5%1-Ngn&RJ-+h#mzLXPfl4%3hW#5c8n^S zq1#50`XsEk8?oP?WrL2bXI;xcT=!i8nOzb$)`NJh*Truw9^VZ&$KFPh&xL?2_*@jO zH4PF(*JQDgm>(Bm><3_G$bE(<l(jJrzer+V&ri4)1b+*O9T~2(?Yl6=f7dW2%sINY z2(NMv<KVVZ48ICDqc|w!J`k)@!<#X`cFPaAwrs~9D=VbPpQ4FYcrfmpuW${}9<mgH zKCZ{LeOv^e@c5N=suR5iwY=$^X|>`+6%(Z|he~Zz2K|5}IC8qb(oX~`38}209}3_) z^q!JqO4I)`$LG~zLk4D`I_B8yG?(IL&+|W9(;+fhe}PZ0z#aEpeyCs<I1C#HPRORY z_g*JQb`qm?4XnUrkSOi+#FmPB8%;ZYKl1rG@o1bU6Zbt<Klx=zUTWd{qHq2x6KHT_ z?HD?Nh;;xV0ff_lA3!=8#MuIzE1uKy|F}7h>@z6uBe}7Z$+}BCf6L^OMt_)9uQ>8Y zV7<o)hMn(5<&za=drYpT57sTr;zs3wL(cSDPK)W@H(yEp!LhnTE${ItsbwyZ7;Lq4 zvqCq4A9a!*qPdw2`7!!3n=&c0!Elj%{+{R2vt|@D`x{o`SA&L?eR-p~(Xh~EZNJRL zy3h;A#r55?=g+(Gx{-LET3c%VCpYB}F=q(84b1wOL|Y}2K7J3>OPO9@QH1dy#BAI& zSE^^4x~y0~bRH_00LI&6w%c<&f81|)Kms~8CU>PC`P(fL8eJDtnO>0y6A$}RDsoie z$=T|>xqi?><ywMyM5$=6_xw!&!ZYxiL|q7L38MZ5onh@7(O2yJ8v{y?p#lll^2K|l zFw;;Dmn=(pYamP2<Lfw@1trevzjcicZf7WABXg>BzqatsZEQ{!`7)nK$9WkrH=DCc zmf|$qr5BP*<k2rX1CXAvhfB}&0R^Gl5rZ!CybK*1wZi~iDbQ!Y_))m`8O&vE#y{hL zBt<>ox$h-o?sW=okRG<nz|U5>tr|?>JOw(RV1LP>3d2B6k!<j8esu8YE(7D2w`?jS zBC3^4L@OZ(qsYOKsL}5k&St&>RiHayVv%Nq7OgF@E%;a+)Sqn%c{zi|HUj1-zwd4L zu|J5noVulQUJ+<w->*S{V>eabE+5p@-0akjo5?-`ggsBrf>6K4Ys~hmwyoPVn|9C& z_WF737%}nM{#`vt_-aOGRZ)o*J|^Q99pzjuJAekoui#wr4<zTHxILZb_bKrmIG~IV zb{@M)K$c<xv~mc?-a-gAMA+~F+%Z!4zC|r)JMd<L4x|*^Kb?b*weN}3F@9X~ehk$$ z&|5)04nXnPnkq4x2P!_^mIgTColE}#@(_OD`RfG09`#F=hMzmsKVOf2gNnN~I8;#s z<ELOBDUWBfdwpHbgqk2g4@X_DP5(tRg){hr@mQT|Mb6tom&Sk+WoWP5rB;N;p$=re zc#wnuVm$n#0|M0xpprzvmXM60dM9AK<{l7B#a3z7wK`a!UfT#Mj%(rLP>QY>jYrWT zYw_4rvJSwNp!*=zmVi3^S1j)IuSxG69<XOtE&9?H^r|SMZej4KNVt*G?`RkmS#5xf zocR)6h*8303ir9V2}oSnGk$Pq9ah|kHG<%h190jrsxHv{4=w`8A^oA#<$fT?pm(v~ zm)sCKN%K-0;Xk;Hi}yI^-XK(yl73Pe5~qRx%%#4KKfE5M(jER!6p?V#;)63()0}^y zFW_BjYyOcU0!s4cYwmGtwTb6(Qg*SHm~DnRCgYW7z~2rMB4V?sUqI@#>;T?TQ}+4M z+u_{cqclLtLBEQ1@Y1w?%Eo8`#$Tf)^8*^KZx4+@V+oMaHBQF4JhbTktCKpi>Iq?H zrN`X52uYYB!18x!Nr<2FC+Bh!uzhVfl8slJ{;wo>!oTOca5#V#r+zo*@LldC$LOq{ z=Ox(`?}Tu#9g3VWEuirO+uzdb!sB39kQS-6cjw$_k=zAjtx3&yfB^k5_y29PTpIFw zPJe`Af<PG+;nReZb~)q2DzZS5;x8oXVj4(})<}(TdMKoc0WS#-%-#~v^@rM6%Iz3+ zho7B=eCv25_aBEZJhZF$`}@$U{fWj%)7g76L6~W$!T>S}T78N_c&)~jD`dyOMqdUT zKY%*<`PtF8SM7xkvt0pc9|S~{kB89CO$f%IUF!b@DGH4Jx;=qt6kIbf(iH%HgO;1| z8bU3S-nkbCdQoum{A$31deP?b<|g_#CWLSIM<EF*OCjtG|J(@a|Gk&0A@rHZ|G!BE z{Ljk5|7-b@w~9D6v8T^Nm_=nkcsZ&}$<)Lo5ukX<<8f;-!sgRIzkNj6@d2GnDp0Fz zHjApfx$Fy~K{ATjy16~5Ipxx-xRT2L2h!%d3dnwXIV~Sn(G|A_0wA~|9wz`s=*s2G zmy;|{Bxm$svkD4cvAX>fbnuaT6a^goeH{Zp56Aag59g9Wzab?3G=C-u=;8R5q0CGV zQ3}=sY`3Y7amfY!p$bQM+ygFdD+k{@1V!9V%ra2K4Fg4-sdpyal?p(G{YNX*eSxlM zIIqN`OwePWn~o2q?r`Pq)+~uQSdFJv@Omo@qg5()_)~WV*&}eKHA81xdtw;MJ+>Va z)D&1jNd?J4eyty#wDMKq+Oq#N{ET+DR3KOAA(K%u`VxJ%d<T}Sssz&*8Y&T>IfIpZ z?w?pn5eLV672{)Fv+Tcdth!7t;Kggg;kU!8TwJg8!g{pVvzvrKmjtLe=+8J3$ag6X z)EsO#`#u1>LGhi&9_KOrY<NNFtiM%CO+8%Os$~U$O<P9dpkXu5`j9>xeVsxXdnaIL zYr@T4=Oyw-ewNMbHW08aCrknX8`w)_V`f213I!!)_U;5;n#v@$1PMM?S62%GFth40 z)0HNf`|=V9&jd>sl#~3Jf}oiN37iYI4wGL`J5aAd*jSR`Qwd3_oyFSOM-+^>FUy>Q zFpGif8ESFKAXViJD{{xSD9Gn1Rkj$1q;1kvZ;C~G{3DsPv^1kjf?HqCg>Dp6T+%HL zQhO^R*muqXG*}oqDC9lT=a!c!{#aCWyBD+*6oX!dVtt6=j&)j{?M2B-3ITnpb^?&5 z0M#h^-jMaDiBsscBZt%-v7-`wwM>@R-5e^Nh7J{1=H^-sUw%1Vaz5C)Vo9!-^Add9 zu3Hrr+#M7WlI`#aVIe-b)MtqJYLA=lEHFBL{CH3|i5L1SP((It=9RGQxp>I(1DHuN zW{8w!_N%4x6=|+RId^ik1RJeM;$v539Kb1vW}EovlkOmW;vRc@HeQ6wYmn4B4AOT& zb9mKq6)VES*Hz|o&sBAEAa4<mR%5&?>1@FoT=5B13oz`BAB*|m5@S7jiI&h(uycH3 zp_I^4kh&8twK8K7q>P(`LN6vlJsR`p<1$=#`&-K$^jxg^#cw%J-kl|t-phh()Rq|% z#B}f5(S@e8Bd&9~Jez?Ss*qOz`BU3j!{LG=$NaWHx%Bt$V@)-|ur@l5(HVd?dV_2G zQkcNa0$fkG*g}&`2^SM1WJ)vQIAkg0vi$fqR7OrypfKy`=%|H6Rw*&Mx!nRG@qvPR z?^7CkL5D{JO^E`BTlma9(!!5Vg0X^u&xC1qpU5zY>*;YP8(*Vo0u{1P8(Ex!df7k} zlKzHjoY-w%rlCaIW?(L6A~%U%V5xfCL~}b-Rtn|Te{>f@_l$AVjZPL!?$>n_LC{1) zsf+h#N9oWXqV7Ia;vk_Xr?I%!X~W2>oYQ1F9^g;XmQ17Oo~7)58zCguW{a##(1>!S z!u)#$GPzY6+(Ep=wl^=?o=dH))UW^Q=96*Kb;uIs0}51fR)t}(oY>O}vvXHp4;8y_ z+M$cn-e_?hGVuusK7A#r3`#|B&yn5z!Q^VvWGrX0_(y0ro#Yk+06Y!#N~VlVY^m)7 zv!x$UCw9oixqCfXG&?}`m6;?guU)L7O-Q8RwQ|Un;L(IjeF#4mx({!j-_>uP-zTNx ztC;H^1U~9Bo$zSubU$JFp7mk<gjG{}|0-4Ak5Y{Nu~k-!oDL~Th-%Jk^LSZ`Ikw-g zSV|V^aW14<<jF8F?q*|%*7iZ10q~YGO^D=;iHE?_?<kxCi`Bq^a)uyF20#X~U*9P! z72DDA()HS)u0O}6un(nQx{Mgk^$uNOmDoxum}h?VrT%6dO3*WP8RX`BC~9zYhqA1! zKd;!|+rAw(aOtQ*_IR@OSdFit5jZMOU_P>z9j$D1kQmJ3r|Bdv*GpzwRk$<f%29&- zG{uT89=M*&Hk4n5@vWV1^=n@|GFRjKE>B(@S8VR>x6s-2c$nj}(*{`rHNU%mLTU9w zNky-WlQ<`5uR!Z7rzXBziCf8h=C`<e_iq0^myY6UYkPgux;622Zzj&LX?3>Z(xNs? z?SRd;F+QC&-w7dH&)Jv)x9gE_beQznaF8DFQ@x~qQn}`NTzS92%$sBH4FC>k*C^C1 z4FA@6?C$&eT&v0KN1zR4K0<2Uu$gUB`<Ei`X()n!Q+}^GBWLcdfyy+KqC3Y%XL!}a z5wbFr?T+?68ESyW)-r9&U7PpCY(a{70Y0FZzgl5fY;L0`>>#tOP%#2PN~pN$%UOah z0Ti5ae0WtMH%?ElHSLw_|GHY0D1!alyJ{zng4G=bT=Z;`??W$KN}u!Np|#6JiLz2O zodc}8T_?$0JeD#_l+_D%%jBz^GJ@yjVi!*bAh6w}uOA^KegvuE-1@Wl@3dMLcyW|~ zPz!6O0!nPLTjeSxmNsHq{_^Pw19->P-8!Q9koTM34<ia$mm0!}CO@<!m5k_tsv?O0 zF>-y)89aK`ddRY@P-}tXI{KMli|_2CKwVS{$fDa?JB{y&PjE9+pqK)3Q)mB$tepIm zJh~AG_3L#*=hR;I@gtr^i-!B5?<HB0BsL<qlhqP9TcCD;J3l+oHglrFkEvW&Fh&)d zQ?Dhq8iP9%Qnq|`0mk>K7I|4MBc2ABVnHnc(^V;X-;BMR=Xc1B_XB<x12D6_x7I7M ziW4hNadJunK;MN!jSRyNCRxLMHz0Wnh*X#|9bLJiQd#@t7+BzBa;cvJ>AtiA6L@&h zAHU)gC=f?v09t&+s`-WA9rIhb;4tRLx|-Se5_T_&_0$(~)|oX*Z1RQP6t>#d?}te$ zH(JFWDC014wNR0cB!-N%XRdgL>F8vK#B_Dul>G9jV@i!X&EePlm{p*dEOtwfd+$ZA z>+DzT+~RQg^o^<S<tRljCgP2dq^J(%QN4J2j;)r;lkI(cZN+o!2{t~BLDa>(-06H8 zV6<s=X8>BJ@V?!{;`tLc*3`CFc`prd^!^J=A)WaR!~4z61=vr;6=k*^PP$7~jIxH- zwD|6Im-_~NbAS<_ohS!6H=kInGg;T5uA9SP7PNOrlwGQtvut+r-!olE27;$dL@Tv< zGF-b~B5>JwpN&p!_w!wR_PhO|<12m{+cw?K$pCY3)|=hAp+Nc{o1G(flG!SAJIYxA z&fzG@m;AJbLE?izh<MmXg`RU4LQ;7flzLZE<fVk3gc+pxM^-B%yzW!IR{`E}4WXFo zYU$gEsW_)>k}C~9jloCsLk;8=82Jq<?wwCt$}B}Z%wsL%%9O8C3&9*N%+C*Hb)9C1 z19|%+nGbA+xRg=m6nItUz)-AyeoO4Me5eDK++W$UT+Yp(!KI}V2sO_#Sbi>^Wsky9 z9Ij|5ihuY{uOj^OwiOAGnY>{7|JwWVa46gVZ9Nr9QWTn^uR>HP`z}=WUCCZe2^mA0 zY~fKMF_i3U_MIgARuMhfcNqqaWtf;S_U*my8B0CS^ZmW=AMbIz|GXUsqkHb<y6^j1 zKG%7jpYyzpM$yPvdEU5<v1j_!_sA*TXRH-B2bU_xct0Q(HpWh#?3PCFiP`fX??rli zeAdrzs~TidnxYoJE_?=erQC@_fN?{}G0?+D`4DjA@NW%dUz?<pvK&Sq&G1?8aS3eH z6Zj@Fc5OCyB4vGrCM_@5H!?-Ey{$R0t-Nkhj2~i>KVVqTgT1C?t+eLL7LB~qx(7E2 zTrZXEJZ@g$zmRTjVz{1Dl>U=cmEkh5s#c_DJG(c75UYWDO~dOk702s1XiR3g9S30E zIso%NPt(NJ_uF;hYXq=rPvLX{_r#lA;w~J?*nI{I3jF=dv?jwp7-vd?FquyKi{5n! z)0SX0#E+9ds4%S?Mk0030i7Bu7T4mN)qd`clJty2%KH?3u=AxS#MoXQsw;gJJzv?v z?5lrZGI6Y0KhV#dzm?&wOwXeRA3tq;h2p}SgMq$@C*m3}OMhs&oHjeZN|Wq8wW|=} zvoJbi4+n;L&yKV6RJX|7I5P_DAkBiE;eSS5?4fR;p?7I@uHflTJh?8PIB*VFk30K^ z_{~ks5fF8ady%(KIx%fv5$&^)m{5x+g?e(kZr`4GHUTUYD4uNT6DWq!*z$KoULP<L z4N`yn5_Y}q$vtL0pfGc7przxD?J4!L%mFb0{I?dRYLLD^tKc)q^Kh@6ObF0wdgK=G z1?<H$UFP9mVpl73S44IJ-r-3_;?15|pN%t}jjMwy2hOj2D(kSTHw4(-t&vT#Abvlv z5Ja)zkh=F`z_Kf~U@WO^#eH@!DfvR3O<l=8Nshr2pF8&d1z0!YN<mJkum8cOq?__g zlI4$Ve8Axj(a->C&r{LCl2o6GUzYTU`2Ymw>k%FyGXR7$HJ5Y$BJ8Op@||0sVaF$L zn>N?Y!&<5YbZh0otU8ITOV13lWC#>p`VxddI)|rC#nN8(|HdISPXsZIDt#Dd&C~x+ z2>ic92$U@tejs5ULA#mf{e-PuDtb?FJ8&@o%P=EAkcbWfSTe4N;6g3T+YSPi-YpQ< z8?;`)YJ${<)35inP5BXi<AOc=df20Sd;P?YyY(c^gSUQRS<A*#n|w1UnHBKAKGcB( z?K>B3Re&L|ea#j%j3vnz!nwADYPV%c|B0&AZ$pGxzUxK<w+wdHkkdu2D#)(M9cPoj zhu$?0x_N3n6kuJ?!15jwR}Q!s;My5+^I#1ZxNNy6klFz00{6F*vngf<Qh6aIlgpl4 zh}y?UJcF99lu`E}<opaWj)yE0Qm*s+Lu8zsm$k*6K~*}xlE1d)YaxADvQR2B&|d!B z*g<*3{}5j$Z$Q&;!;zf-(D@E-?}6xtBjuUg1&71{j)qp_JVv2sU360sv^D%d5<?WT zBcX5Z2mAdOuHLh+tve8IM$m6aq{6EQEVZJW$n3!o07gT#p_8+b%slKkr30QEq!IwV z6_bSL0P%+Eh=viFHo6I>LB7bpf`!(!TetLt$#-3RknC=(8Cs$Cos1HmHu*?K^fj1O zwmDz8Q`rFgtZ%*ZO1Bd46xOycIo;dQYAvo-USzeA@oz86WMLaA98@EfRSIcJQS{d} zV9GeM20}_`gfaz_cH;EB0fT_(4)x(p)p<a%BU3{m*m*=4;@Abx24w!WWB_1q2s`FJ zyA5~(x6d0veXSM{m`SOaIIeRnwYNZ;w3VN6HjtAI0UGNR4Ta$L|JaTQ8zwWmrIS2h zGzEC1i9X}+Bvimh`US+@Gqkn%7;XoNB(ov(Dcn@3P?^J@ZVXoY%5xR7lTE7ca~_3i z09v~SV6Bkc1GKEK$7@k;`ULRwaHmwrZ;X=4O_q44uvN)R7t_n%x2~it4YJS0X#}_E z!3sTe@M(Ut;&pE{rPb*1TA@LO0uX-C<-T`6kc`i!#eAJo_d<T@-?`Bgy^oO7>$QHA z6l}^BJ78PvQxKYMK$^A?_b$(A`nI_nAK8<g(hOj}E0n&$U+EVKZOiZLRVCEWUD>t) zQ)__A57JO*ypN!2Y1XzVhkp9Da^DcNE<;J^-fUIrd(F4s6`((lJgQYD0Xe7^1OA^p zW4RYDwtYvocumJE`ryHwe!}C~I6w>2wRsjFT9K76t^<Itr&k#yye2{kufPTgs6GY` z(1cn$5Yc*;OH!GB<rR^?F#^d<xRRSekUMJlC7bc2Pn%l6c7PXna?#tIspgBDelf}X z<WJe75MRo*a-!SHB0C8<<pMF_?5Z5<x64xUPu7t@vGw8N&szn7dmtrBEv6bMMOTvR zCKg!0wt)mlTss#ncqX-|v%ZcJ=54G*Baob+ARN4czIT+oasd%HArReI0)q1Sciupt zy9SrcroH@*g2L-JbZ|}~+sY-22|WHy!Ts)xjrLGJ<Hw~&o={r{Yd6Mr?ibPScaLh6 zpkSy#%@mM>)0$QBC|ji&?FKxbWLq?sYX6wa;&UgKIg_b?CRhE;VHW*V-@zhgG2kg~ z8KACCJPkH~UlRUvVE#$QIYK>N^XqAQIXBvo{b+qwtd9C{Ztqz4=&Zi@JlommW!aJ0 z5nSlrugk`#Y#}P33TC7}tbKK9wsQ<H0sB*-72@_34ZV$c;9i=xq;&P_W1}#r&*oGy z0v#?;KL@62bbwE`snD>Q^1m%%mm2K2^=!O={Rha0e+YPaC{GkfsdoX{-gTX>u7Zi~ z;L^AW2&Z%TkyjTy+7Kc15TvgMWDexPX<|Uebz>lJP|~RA9#8D;8*-t3BXCS<X{kP2 ztmaSI<d(L!1aDpit@|<?FOHtWw<?`v!xRGXTi=jp4iUOEWf#aJj%6`R?PBBUC1fbw zN4wkFyz=&nw>{?L<zYQS##}35<$?;;xw${bZAgIologOCNSZKzY!#t}k<B-q8zr(w zNavi;qVg{<QRoEtT~G>Qe4+99QF}0|%G>Mtu1&_Je(I_}`^{V&Bu{$G+>?z7X^jE7 zXpC#{dd1vzoCmI*IfYMOY}W%i|KZ`OTqr3my|nh8yUJ3O=3B6$X}t^CSB|L7n-7qh zdV{eo)8O)e_+16L!;1+_ReGsrC9k~Aune+`Z?w+&`{0O|_bta!f5votv*X3ugLPPW zd%ykvteBf!8kw^jbvX!6RulkkwH@ESr3bA8${d>kq*4G`S<=oJ=3AuGNpZI5_*|9_ z+Q5J8?Cs5XkDtpLi;;57X%o2d_Rn4nrc+~=NnZr!P|d5;N*!JU{>OwYXNLcpIMo*Q zMJdpl^Czaaw}ajj=m+?7&7g?yAe3#HoPu1;aWm&ky`AO}@kk?2hg<#wg6?XLSm)H- zCJIGaywVZ~Ks5IAoz)pAbKlRm*1*#UrorA#=XDhq!-0w5Wx3z^cWRd7V^;zHP9Q1^ zz-<O3ZM}O!8dVP7Mkx}=f_*q7P~8h9MjNSj<o0NI32j_ja;sAFQmisR@u{w(ckw2k zJp_*&e*=^TS$w9ytvgrElj(PXwR58a=X=s@g@;)X@sE`lMv%Y-N%cc?(E(^pSopTz z@g@$tSkGCi6Pd&^qAa9j-D?mD%2$Kb(_;epy`{si^`Korro-n<Un#73*m)LY*ggVO zpzGv#Z_Bj;TFC~>eqiy=>eJRboVI8yvHuti*K%vrNtqF#JwBefTe*qAzEpazYN{a6 zPbfIPTb6Npv|RaTB76M@G*y1(5#=v%Q>SR-upyzs&zY`3aUBnMv(_@;9~^<rzZa;w z>RPZEfUuwZ&j^fv1w@FfVnIJWJ`xXAdF0E|n#@C_uId|0$_<VJ#Q34^>n%@GncK76 z9P}g7=MvT?OX9-;h=x~~zM3pX&F7X4(pvq;iKYj;{PNaPkx}yKNsY?6V(KwRps<wp znNMzv`m4E1+>9Ub%_k<gc%ZF&b!k&-wKmPsfBh5y)OvFX5!cl5Q7WsSjrFzG|6p82 zd_MD~P2q+I?h~`v!#y7^9<OtgR&gBsu&a}n>MkVG+VF^8k|VrST*a@->M0X(ZDk=0 zUDQ1wTqDH?i7cW4@&gvoDV_3th(1pl94Y;g{q`8l6NO)348{|QM1zW<R-uy>xC#Nq z>Yns)VwW+JjX)bnSK43Z7--cJrN*%Kba)Jye_ya&f)ueUX7ZxJVos*n`lx6RE0nXp z*e=FOI)Y2OAH)8M#@CIw+QTgq7|U=|-O#~Q=L4A%0I3`??H%FwpVQVYPQTNYd=v@_ zBJ)0Hmy{WDjjcEyNaJvAi8?8OyE4<?(OcY>SQRtlC9PrBsaB0-MzT7gW;F%g0KK_| zMh5Cf%_&1-FTfnTZX=0nT=j&(aUg2@S{C2xfqAVjzNQF<K<=Xl-Cyr#dE!b6Tv>DR zp85;uu~(7!&q}YU0bFyw*m*xq)fKNZ9@ZzLHUj*BprQE-+Kv2;%S+D3S79{I2_6W) z;{o;JwYQ&3lYU+$PN}*&;k?fVOp2#ICxo-@g`&duukV!GS6{jhMF)m^0C$6$BvH1| z*XwE~5Uk|xNakWtB0F+D*I6NK#XtK(@O8ecc>H2KSNWg<T}8irTdu&t3kMi%sqjN~ zByE}HCm+g$t_HdVyUv-tWW5sTGRsDVopY^%pLe(MD^jYW_16AayvllxZF1Hc7<7x< z@|<MxUA}q7A53yuye@t~?ynN-qY@%m(?$sZ3y2`HJLXa<bK9WetUkjEmq6ei?hy?e zIH_4i)_e}zJrKn$l1^+F4P$q$LK&T-U}?_bBS4Rd4y^Fay&u>>0m)E{JfF4kle!!v z)-?m$FGn6#2~Ay<&#6dVT&qo-zg(4q<UiW9CIsPV<_1qeWlUy#E`AX1Q~}mW(_^u$ zFuPOm!bIFIG5a56X)J3!ek^M(KRr3h0v4q9ey`6j9jD&uy(vy6<nYTdDOzBA{M7b! zCk@Icyvxh8H(7%8;`xhT)+i;M^mSSLWPG6RsUN?8OmBaGHv8u~uVX1`#L3BPEKWW4 z363l-ow!q4XS(xDNO+%|+*~a#Y%8w5Pt@eZZ5h_t&a&!SQ5@})yY->zleLN8Z^Y)* zy_J!S2(&lNJ0SDy5Wi$zHc#Dho|{uI6_MjYxB0nXsUCX~LvB2v!aE;0d@bip6*&%i zBD@{Ogix|vYt}vh3fyHfeOlA2_Q?cVZl-oWZ0UPQ*wR7vxLmV$_nYWkkoZJE64fJ+ zM6IJ*bASR(^AU4)b`kl?Bmk-$1-`#P)`YL}xg%lZcJneqVDaH~X@H8_l}A;@FA8E) zH|AbgEJ%G0`_UV;dU`?kRz26(g~r5B9UNz+rvaM3>Q>eCp_5f#LA$SIg?;Rh)5UXU zEid3RK$+vQB$Ly<`Jc6UFs<DaL(A`mk*v_9E1BmgvZm)a^1uLm!Ui&)2~TtE1i-8n zL|pwP%HN#5{=x?ViT+@@_$+S#-8s${R0;cwJuH^WZ394W0ynDIEKRz7RVF9~U*R<@ zHSw~%?w#GOKo{vsbX_iBkqS(H7SsVK7#8R4S%ToH6Mf@TS#-kJLniA`;c?iS@Gdi$ z|Hvud+&L$s4;a6bVmze9H7X1`j1);|J{!GT8c2wNiR;|TDd9!FTQB0%)U#R0Qx<mP zzDw~1m;3|-^eU#ppp=^!qe0*m=}Ouyee41`ul5^PhlH?7CvI=WjZuHL-IdNCgVF7l ziv=UrX85;kjTKYn2cl;&!(^`*6Ezx<*u~h1Z@{*yTfb)m<kr4qa3P(udpa0luCtCe z*LH8}Jy&13$bQt;wJj1akmda6jFT8um+O#e0o&5lF<Dby=owo9xVpzc7KnGj>mEl7 zghzrr`$D)o=i^q1TQ@&!Y(P=%K53h2?<%a*Q&k+jDxe~YSAki|ew+VUgG+RKPQt~s z#y{oX{>S!I+4t#tb5?_TkWUDby4I~5f6$Dz;lm8lrvc;dW*w=USxk>fVpDH&>1vVL z%LWkN`u<_uXL5!YsBgV+asUJN9w|{`L-9A^CyR_?fK{_Ih8uFyS8jtPsz6b9$3G0% z@93{bLRyy~eaz3g2GQjy0Wx}C<o0nw#Hk15iN6zX-`qPG<Cm@|^Plk9A`_6k*~r2~ zCOjdbK_e7oRg&N6zc`<f>0D@*EezlfDQKc81qTz&=K|A=!?_Ee#FbA6LvxnuWPOEd z5pqtWC_n<~KpWE~!vK_l@)oH2Vb4Lz<?Dxi??#br{{WrN)on#8FPEVlx{v&3@1~&6 zcQdshCm4`m|A^CFul1q>=Vc73J({qcI++vA{ne=(Mz-ky8eco|mD@PY7U%=Q;jLU( z?k(L#$h|6nn=c7UJOn*7Fr4PDtWi6%-V6MIpczSxya=w=%0V9%|NIyd%&QY-y8Soj z)%Wds8(Q~m&zu1+l?3DlDXDDgJgsrHG4`;XWJ>#?Wiq5uD-yIR!`AcoBF>_HpENY) zooIk8=s?8br!Gv%rPO@s_%|{C9VlTl5j0YFyJ~O;12kwya?Oxa)to!BCGAQANsQkF zSTLCb`v7i`Qwj0o&U`8Jt<~UR97guqiC`gc&;YOweou0Rk_jM!Rr~{WkBY67KwrS; zyFF!z0Aw>V9qR%+#b}MZYvhGJT*B6ep-Kf)hLb@XD8X(U1=P6l<h$v82z6>x=-uR5 z{tNXNQ1rILDrFQP_Y7ZRhRoOis}zI@=XIM{YO<rf^P{tL`OLqsRwesd1IWh8Z%4dN z#TWum06fWI+es3mgPM{xJ(P<>*2zvkx^p`bY9s?cBZ;0X^q`t?Yb1@6tHA5MXMMNu zm?6uvz}E~CQLphLklWK8ueaNn(+T>0$0;^fn~@1Q>fTDI)aclLIcGIV25_Y)u5ADZ zjW(*fkkbJgL}+nmMwR_xQF1ml(48Ai6aJ44;4F4av8X7P-~R>()=d9EoIs{0fN;q< zHo?_fE$0G1$f5jH^Iyg1{$EhUfUrY%XQyFmvao1SOE`+(+NL<^BB3oM?{G5pnO!5o z(Ib1T8cN?=*%ZHNJ%hA}K}cAb>cfs(wT7d>4`2h@fMduz?6E3mQIm%?JxJ&P-?jHB zE5N(1B}}ukG+Kp^^h}6v9@Mrcra3rr;0oF>OcYHYCTw9EMEM3>I_V0$t0XOND5y3| zEsFa*B|#Xho68?s{NE@89FlDH=tp&L-$y}4-m7P|S((?+XkC~aqqb_bVSwRSLhV&X zSbjiaUQBreC}>azrI310iz84ewb$!f$^VB+(Al$&OsUPnSvHg!b&|K*i&&H+po7{d z2N_pO#9btSyHc@ikYo`dKfPbB$|-CS;|Dv=)ESO4?6SMid>2R;we3IGij*C_<J$LE z)~t1dpo8@}q13{y4<y(>zahH!YeRbWFCXRLS%%*o?KnRxJHeimr-1-}U$@Xi+{Ko1 zidaNQ6of?R8E<_!W@uq;P%i5a>Q#*3p}%|qc5^0tZ-ZV~1Fyl~zk+rw;@5y-+}r-; z`YQh{DjOIs1T0Jog#TWEB7RM@m@QNb)X|1eDK`rXK1Q?EqH53oa>JXqk2LN5=V_Wi z{rLOg4my7?w=+~x$2BPZIbbp|dFA68-dQBrb?IbAat_+~7%)9#JoHFHo-<vAE*cS& zmZJZuhx2UX<)N&^>mreFHjIzh6@tI)nSw6~r(c7%pVo*>!pZ1}6Vk4s!;0r~qbJj@ zX)u!a0%t$SB4Xv4pIwll@<-F7jtuBZhr1zhFb-?bgE+7|oJ}5*<{x>Nazw@Qlg<5J z;bdh6CJSRwZxW}XM{1IJKVKHPRd^Z^se1-_D^%}=uk|MzrEF{Ua(lWqyU^;+XWzOw zMJUHyq+hP`G7T^^(9q!J&Y;a_v+4kDce?8OOcqim9l;5~wbF6CS9mqT5gJjOm&>+R zy{MxR4wZQGkoMqHv|taEj@}DS;b?>itz_8YO-@8*wN=!1T`S+ILYo!J@wd7OUe)Yx zFOysWf2*er=?nQqV+pa5E*MJvgkE{f_7yfO^)DB4w4TQ^MD~9DWz&DZcB7zipE??` zU8vtn^SA3r6-=H%fIIsA9*En;+N@Z=9>seGTPXNH?m@X(sIbSxqH1@V$xiVN!zb-@ z;J-HM|D(s2-5~W_8-|+dPOtE<r}+KRf+|!XoD5020Kp636j$A+)2pn|-qxnzr4XOQ zZ7E@DYWfi0!VxKW_l1_;3tgB4o2W?_rDkXtK`q2WA~`&byW!Ct6*#xQnvSZTHCw?O z-YbkS2V=yBm>&FecBC$6JZ*k9Q)@Ww<^0&P=(mxSn)ohd8f1kh3y*XSl|r@924g*C zj)1*>|M#lMZ>{?38FxcrX&N|h<OR$`LJBzSR@bYflp~|$7L*Mdu&8*T1Xpr;Zf>gE z%6uz8v)oWBdbY;xY4)_5t{K_1lC(f*<ssmaw5_kLbP`dxTC}W2bWdSt%@qy(J)g5H zTP``UM=B|5@g*#cv9vYx=Rbzs#B>F4#k?OJ|9l1LwK-@p=xkI7xk+lwk}L`WLL;&( zB?Ssm5toxy=;SdI=qLj{K*#HIL+Y*rTyW}VoVIQK-8k;&r5~esH(KI6KE&y)4-)mJ z=2PpeYO^zuvLk`3$2zr4hmEhp2H#6qX|!zc#WiQH4Fi!<MdFz}^&jRUAln=w#(qon zgV{zk3ch}Cm5^jouExglw6OCyvcZ@iD_`%ch+|CdO~hRXBb8=H<ogfbu2cFNe(SbB z?ishIP<kA0KD$B@6*M>A<SOWN5a5xGnri=EZ^KV{mfmY-?>s$_B{U{b5N&PwkCDbS zd#g*wHd|<2Yn&_^$YDGT3BW?x*aJUiM(XRVZ0beB;F*4k|Lk-VTJT`N6k2FXalXgg zlJtt-ItrtyIL6!>jQ$+;BBjg30Q2b}%;omsqueZMIq?C#%txvm`3W<PKI2(5)K*=J z4%wJnJDm^IH5eQ4p=HNKMd*#q-mLESxP($H(phT=>9E5y@D$Bo$d!3Y;N2M9cvG6Q ztF$sF7B-rd=&k6XJg4}XGYM(x=n*ipuoha7^P|-I20YX`b<|x~3t2WPT7Zm}a^#;| zSO~;uMH)Fs0j=z85`=o+&9`WT8HXa)-;DI6=xjZWov|253_qBzwZE9*M3Y@#cH-A@ z84SqX;by&~zl>zaod-%j#Vm+oF4q5j90zgI)>sd<>aNa=--g3q#{YGb{S<|dtjik} z3s^NVtkdbqp1h}zfUE|vZA$^kkk^U;L%MV<)>S{(<#C-Rqfzkq(yQl60(=d0Z>5PB zB&w^c;V4L87x29UIw9rD_jl`=OK|~G`1KWHD#*(AOVNsxy`DR!$ad+}QB1mH7bJC8 z-w~-1C5lE!2?M7<!VR`iLjMps-5XlEx_h$>2!=^(KHc+2ZwAK8#ngv))VTCvdarH2 zEFcccUoD~&78XvM?8FqI2-ig}AD(!djYW9Z-I&)9>lYT4E1U$Dh3vEYFe$h@r!A$5 zVfi`NMMTSCvz(W@Im{Mi0sujKK>T|NpxY0u$`b?$*4N;P!61s$hpVx|Uzjbr6=}p{ zqgE{2>{uElrImqV$X@<BDUX#;2O~W!I7H@!13DSl<CO9bE_YwU+v*dnWBNsNY?u3m zET<A@J0DPMHKgW*^mm~mFt3t8h^Y%-A9!dw^+Al+vAVkB?F5y``Qn%dQrI^jM__jt z&eWhk8Wk+H$d{p%U@m}MFyM6@J6DP7)S56LWW-&R%qhQBjSC)FDa+umT5wEr|0^bI z{>~LR_aT%-z_lK&0Du3qHBJ{-xSUlJ(pZ$SqNf><sROL+WdFparSla;gTRs}`67Wk z0jS}*nW*0{M{vepBm{MZuNXvu>C*$)@njH0TB_c+32qBV{T^GIhKh))g24Q|wdyT) zpr1vKEdx14_+#x3ivs?3NRQdOJH8nNJYJjDHu$~_f7|tJBawMFnFt+kvj%15<~TX? zxjqH9ps8>Vz_0JXVsjXYH^O3B0&gX<vv@+{4dY1JUi7etFpzzyL@1p)fq5R|c>n%6 z0B)kYa?OeDx7>;Jdw{ja*F4!QOu46L{1ad=IPJjMHO+?TfZ;!W4LO%yQW62lqGD-p z<_u8tUmubo^*rkP@d16*G|&%zzAP_K2XVSLg+VtO!Swy(BgQu#W6J9P30UOg2*nPR zk_Ar-hApSyiXC}ruPxYMN$HN7saBX3tDiN}aa~tew0$D0>>r%&9GmFW+qH;wC4?N0 ziCmA_J;D8C;c~vS#W{Le(YRh}Oj>1LZ0U8)>-EB8WYJR*l(sFAsJk{O`L%y`uXT@I zB+OPusYGU@F||NPZiQOJqd&>LRJI%RFHs!}-kl7K@9Cprllua?$CnAYHQDaHj9)oQ z2IN$`#R_%TzDsoqHUjTKK3nn7@ioqXxmydbh3+-!&*H)Z;cPCxI4PIsQAQkwUq6=x z;Sy@3+-){BkSX)McpD(td4}{>q1h$oPX$5tL8%s&;WPq)pjYwbRrpml{>qobb$cV6 zS&r(F1iLGWs2CH%Pu6=<%XGZ@(KXkSh%GxodaU&6xUYM5JL<+k{{Q41q+%=V&itr9 z@cd^}t}Eg6Ux7rt2KbTjCKliN^R8>yQ)03Fn=nsA9r|GIRjrC}lyVc?RLG)%wSDmF zp4&q)Cj%=8>~=kxrapdmky5)V;g|;0H)uY`m7aGvr1nS2J`%m)YV9GK)toRsW6`N1 zq^`B81&HHC+j3g%XG29a5eXl0v*~xQpKElnd%5h`kQ5uWtREp!g)q&Y?G1U<l;;d@ z2YQK%!2c#T^;=-WHI>ImQ%tm|h}M`Ti-@r3jqV}S07vW7e6W1mQ!vbHR-gpTQ?-(* zKOm<-?^vZ;f{9H5O3fJ!Cf*3Px%@7k?674_+$>UwaOW%0B?@Md&1Np<7CuvkjraC4 zPRnUAd0;BaodKFxN6%ZU@(nRlpS2`eX1H9*t!nCmxSC2KO9?Z(*!aL%myBjpn^{aK zyenA)UcDFXY*Hi4gT=D1jXo$R>^qJ;UXTLXYzBl2^-P#-PIdiiv%u`6nhR|RxG7he zMShvoHk9f@`geN_zzP%%>+L-<)pKtJ#QN->s+!@19=*W#=Q6b@FS-(3TwL^TvsZj; zj5&8H(2X;*LUH5GJxO*<Q8pd?-6`iO(}Sa*CGA=*b9Q6Ao=Lj|#M=PDm9xi)oi|_H zO<*Z6I-qqSobYLeq~-ziBkD?Z4*q0gx2&-BLwq^mU|dmolMQ><HPzCuOVLMgao9AV za@SxCLw&oJkW=^FoPnKimOL1Po7kGDRd=}F%BnvkR6`|Z^s@}C9V#jeE!=8C?hN1M zC>^U`2R8D!xZj2r=RHat>F|(U!|0m^P|0n1pWSZtHPlLYY^Vfy3K6WMx>H649<p>S zgnmN^|NL+wveK<qeDZzvny{T+Axh#k5}ynxksS{#rlPXVdhXj+ZO#sU|0v>DhD(j- zAgA8+xm8`ESDQ-k<_qI>oK>;D;qe6a=y9u9mBh8#W~1!UT;h*Z0s)rhUi-khXMOKi zgtVBg6s${5b*W4))nzuSJ{^)y$CxMgxtS-d#t7({nom=|E#d!t>?hxAhFlcwWp(?+ zlXbjc%G}W#iaw4DHy`k?n?5`yP&|#WR^zMNe5A&|Jj?BfVc8*hdj57(E)Jb4uXFt@ zws5KOZ*!?_1i;up6+UH-V*5TKQ@5wIIuIc-x+?#V*%~xwASARwH~|?O`2FMGkb=#p zSQL=>_dw<EVava~-JNMz*OlbFkiEYQK};?&PBg`=ih=HrYc=z<dD5^qiobk%2>gTL zC_Exi(Bx%A{a)6u)N{*Hj0wfs?bSbTnquQ!NT=7ZcW=rRU#QX8i<GeCziH^C6V-LA zY!1C!pv4*Zd;)7iv*}XxBBnTdou|)AOU_sDt53^5z2e8bG*JP=c<yES(8Eo7C`1tc z$yN{8`5hC8{QjF4^0Eh#x`dM_K!er#<2`j1+W{*tN8LdgdVB@G!uKwJT@9B;dg*)X zhGHuVnF~HCeX=1gwo{2+hLas01L~0_j-gtq(>ZjCQ-dmhDs+bc6&9Q3A2hk;K1uQE z^4W>-=@9#r#t|yga$Lzh<~d^d%tL+NcL^YU4meiANx3~rsP<6p>Xb2_qDiiSRnZBW z>$+31-T38z@0IMrS<c!rY!_0jtP}g@4bp9YS`4hhvNChBePD&sS|u9IOA`g49onnt zWi(}iQ)0Ce96U?ngfDh`!Nmi-lvgJN57^&}6$%fp&wIrTZbSHf+YzE}IN|LpE@1a< z(=#e|7+n>e$$RZgr0;#zPTv&a=%p(-fw4~!=ECa_a#HkTRKg)$O$8C&D12QL11+5M z%v``B+&J#`fdLWL7kg-(Ib&b-Ep%}lM$?HMNPH^k-yE1EJ@K+fiNW>!NyTP7`zjU{ z-(6+K%(!;L2P;Yxy=`)xv#@{}b%Xh99($kuhf>l^#VpPq*{A=rDKMtQ(UfX7k!{i6 zPxo;h6Mb>|pQxMc{i1)OI9iFOVJrt)pXM!AD4rgdbn-vWR2=^K(XA|ZqQ;TM3?J=J zqBkX2&Grq<y}ZJsbgWRL3jUGQbX5cZEPmeY?D=B})Kvn&JGPJN`}4({)=jxXS?Byy zj##xmv(nOsp#!4QBV6hp!g}P4=`-6atOe;$L@V}Z`e`wI3&kZP-kOd(#5m7YSQ+K3 zb~X1o++B>t((CC*AS75zX#@ru9Y=Ww4Br6ekG2?_dJGHZK?A_vlAkLiYLzz5^er<5 zml2L;#8njb<Zm=JYgf0Gxk(DRNU$2qIRaI$oZV*KdTzwWUpWk`MwTwpo6SUFW}cwd z38{fc%quZnim1toV9aCr3Rb7++INkWBbSqSuM`N6ZfJB5fdJyz{A+Owc${y#0n>Z_ z6X)W)ea%l0?aZFc?#7fp3DwJKx}p&-s+2s<cm#QZrO_!&^4`pMv{+@BpCg0;K~!Ab z%gJE0dYT`t8+ietsjIg?O!!vs2_PI$kV5&sBa+)6Fb!3Qg1FVAUIT2Y7Zx0%Kv5k1 zc3JKcBMgosu>HqHog*)>x%7bI#NZ!vzAmOYgbSK-E;jM(H?dPwQ{cv$G6^q>Ytd9P z0%o@fY_`-|)Oa%zHb%I%y<6rZNn>Bf(D%b)`$;Y|)YQRO2mD)R6T@U5rnLvUDH2Rs zK0F|`Q!fULRG)OS_eHt-98z#4g|DRufaxp)+Oha#wtS%58fi}<o!(lIM9pr(>_OjW zlimi)QiTI$2+KJ4iH{~>hVvUp;sF;7&v%|FfmeF4GL_&<svK{a3$&lTJj+qzY4-9E z<C9SR?@z@4V?X+d1;0yv<u1+IWGPIhs=w(ada{3s&E2InN=yjLcGq!j!6kd5+$1J- zqC8TfHpt#<eNk$i;d|bmJmx%ZdzwUx(hld0CWqWaEwGF9wXt+btxo3>=vRik*@Y&Q zyKC%}+=kN<K9=W;xqH>}8?F2%zk4fkt7|$ghd!^h49IGnl&J{Ql#_N7dgSjqmf6Yh zkRU!5R~5y+y8LslFR-m5bH&QOa=GQwm@X<dV^%*VEOXX+*<38qYh4U6i+jH~mD|}* zlG}(1s9b^zwa3@rTQRRt_Z!Q-z81F@6HvJ(#8$DfygTCaU)Bu*?myS$oP(I<DwX{* z!>rbS#ElTdrA^n?pIAVr)sHa{s^b@Qi8i?(9fgxT74X`=sXp*^#>D5M-URb#f$nam z>5uY{Gqv*XLq%CO^U<T+a7L3J$}9)^)qTR0z&7@|xM|!N*)1S!PHZX0f<J%TEpuG% zGPeNfeiU>!n@>%^V62lAXI%>(COAtYA)NeYX2jEm6!QJP{ziI$GSk>Fy|?_Pg@Fnl zpVmU;k>JtfYwy0A!jDTEuWCM4vCr<<UA%u{iih7ZK9ZDbueG3K+~c>8kF*SBPx-^u zBPt6y1eZ394N~qzM>e#ERV88MDwKVSt`AVP&$rpzo`O!3t!}o63J%DhgwB&0ku%3X zsbwM5-Yu$swb_qfPq2wq$PIDFyII_NxhQ!2{%MCbb@Ss9gnP@q^CJ0I2XMQoew;({ zk?Q0H>YTr7M=<k#6HvUHa`i7!<Y~Q`YYP|KiW(K~J^IMsHCd5MOqp%Q8m^nZGxz?g z?%Res_e~%<VhNX8U$<h3Vdd?&m<#SzA1^JqG+9YV;LJbws07QkayPA^gU7HaXiZSx zLOs}~SyV_b@lI4xgw?C<O_a-Sh%uR+JhHs&=K1o1mXpIY)ddsst?AH9mQt!eHn;OR zhGo5<GLQ1Vm<V2~^%$#QJ8JCqq<GFGx8Ov&WbUJYi+5&Fgs;K=iCafStR6(BHf6@Z zGbmf?TEK(KVN=4`p4vQz+9-F<y$<jyCr{`#rh(SeD`C|1@1H4=e^toxkamB#!E=_h zn`-mldulItDptDu#fvvYc5Q7m@==hZ^7l-eZVm_x6oYMTrrO!w)YK&UZ`=6=1lk|V z4p{ElI>z$Y{xzz%#2UD3Lam&XxVSP43(N8C3;h`y4{F(pX2*PDtz1;2#rW{>9V@$g sa$84#*bg0@TNAUY(;nFC-m$o`d-co&a1WqrgmzK6qIo$-;pUV71yl#Z{{R30 literal 0 HcmV?d00001 diff --git a/docs/screenshots/filter.png b/docs/screenshots/filter.png new file mode 100644 index 0000000000000000000000000000000000000000..97145c48b4d8916647e2762cc13706c410b68ce1 GIT binary patch literal 100205 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 ZRl2x#twa5VQrZ8qwRW;9+Woha{|70~y)FO% literal 0 HcmV?d00001 diff --git a/docs/screenshots/overview.png b/docs/screenshots/overview.png new file mode 100644 index 0000000000000000000000000000000000000000..b0c70e9b9ee5180463851443971fea678ae9da19 GIT binary patch literal 172456 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 E0Do$ep#T5? literal 0 HcmV?d00001 diff --git a/docs/screenshots/themes.png b/docs/screenshots/themes.png new file mode 100644 index 0000000000000000000000000000000000000000..0fa316ddafba7705602ad7fca3513473e05c5221 GIT binary patch literal 164927 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 CFh3Ch literal 0 HcmV?d00001 From 1c2e62f9a03db58c7c22ae4dc83d432aeeeb535d Mon Sep 17 00:00:00 2001 From: Francesco Gruosso <64712227+FrancescoCoding@users.noreply.github.com> Date: Mon, 9 Nov 2026 19:20:36 +0000 Subject: [PATCH 07/10] Split gui.rs into plot, tray and units modules --- src/gui.rs | 592 ++++----------------------------------------------- src/main.rs | 3 + src/plot.rs | 216 +++++++++++++++++++ src/tray.rs | 253 ++++++++++++++++++++++ src/units.rs | 139 ++++++++++++ 5 files changed, 648 insertions(+), 555 deletions(-) create mode 100644 src/plot.rs create mode 100644 src/tray.rs create mode 100644 src/units.rs diff --git a/src/gui.rs b/src/gui.rs index 3f675cc..368454e 100644 --- a/src/gui.rs +++ b/src/gui.rs @@ -6,17 +6,19 @@ use std::time::{Duration, Instant, SystemTime, UNIX_EPOCH}; +use crate::plot::{self, PlotHint}; use crossbeam_channel::{Receiver, Sender}; use eframe::egui; use eframe::egui::Widget; -use egui_plot::{Legend, Line, Plot, PlotPoints}; -use tray_icon::menu::{CheckMenuItem, Menu, MenuEvent, MenuItem, PredefinedMenuItem}; -use tray_icon::{Icon, MouseButton, MouseButtonState, TrayIcon, TrayIconBuilder, TrayIconEvent}; +use tray_icon::{Icon, TrayIcon}; + +use crate::tray::{self, TrayAction, TrayRule}; use crate::backend::rules; use crate::backend::synthetic::{is_shapable, is_system}; use crate::settings::{self, Settings, SortColumn, View}; use crate::types::{Command, ProcessStats, Rule, Snapshot}; +use crate::units::{GB, KB, MB, humanize_bytes, humanize_rate, settle}; use crate::update_check::{self, UpdateInfo}; use crate::{appearance, autostart, icon, single_instance, theme}; @@ -24,9 +26,6 @@ use crate::{appearance, autostart, icon, single_instance, theme}; /// View menu changes it through `View::history_secs`. const TOTAL_HISTORY_LEN: usize = 120; -/// Fill opacity under the plot lines when "Filled area" is on. -const PLOT_FILL_ALPHA: f32 = 0.15; - /// Header plot history choices in the View menu: `(seconds, label)`. const HISTORY_CHOICES: [(usize, &str); 4] = [ (60, "1 minute"), @@ -52,53 +51,10 @@ const START_HIDDEN_WAIT: Duration = Duration::from_secs(60); /// Width reserved for the folder button in the detail panel header. const FOLDER_BUTTON_WIDTH: f32 = 44.0; -/// Ids of the fixed tray menu entries; rule entries use `TRAY_RULE_PREFIX`. -const TRAY_SHOW_ID: &str = "show"; -const TRAY_EXIT_ID: &str = "exit"; -/// Tray menu id prefix for a rule toggle; the rest is the rule's exe key. -const TRAY_RULE_PREFIX: &str = "rule:"; -/// Most rule toggles the tray menu lists before it points to the window. -const TRAY_RULE_LIMIT: usize = 15; - // --------------------------------------------------------------------------- // Formatting / parsing helpers // --------------------------------------------------------------------------- -const KB: f64 = 1024.0; -const MB: f64 = 1024.0 * 1024.0; -const GB: f64 = 1024.0 * 1024.0 * 1024.0; -const TB: f64 = 1024.0 * 1024.0 * 1024.0 * 1024.0; - -/// Humanize a byte-per-second rate using base-1024 units. -fn humanize_rate(bps: u64) -> String { - let b = bps as f64; - if b >= GB { - format!("{:.2} GB/s", b / GB) - } else if b >= MB { - format!("{:.2} MB/s", b / MB) - } else if b >= KB { - format!("{:.1} KB/s", b / KB) - } else { - format!("{bps} B/s") - } -} - -/// Humanize a plain byte total using base-1024 units. -fn humanize_bytes(bytes: u64) -> String { - let b = bytes as f64; - if b >= TB { - format!("{:.2} TB", b / TB) - } else if b >= GB { - format!("{:.2} GB", b / GB) - } else if b >= MB { - format!("{:.2} MB", b / MB) - } else if b >= KB { - format!("{:.1} KB", b / KB) - } else { - format!("{bytes} B") - } -} - /// Rate unit for the limit dialog's dropdown (base 1024). #[derive(Clone, Copy, PartialEq, Eq)] enum RateUnit { @@ -167,7 +123,7 @@ fn numeric_input(text: &str) -> String { /// One-line summary of a rule for the table column. A disabled rule reads /// "Off: " plus what it would do when switched back on. -fn rule_summary(rule: Option<&Rule>) -> String { +pub(crate) fn rule_summary(rule: Option<&Rule>) -> String { let Some(r) = rule else { return "-".to_string(); }; @@ -376,25 +332,6 @@ pub struct ThrottleApp { update_install: UpdateInstall, } -/// What the tray icon (or a second launch) asks the app to do. -enum TrayAction { - Show, - Exit, - /// Switch the rule with this exe key off, or back on. - ToggleRule(String), -} - -/// One rule toggle in the tray menu. -#[derive(Debug, Clone, PartialEq, Eq)] -struct TrayRule { - /// Lowercase exe path, the rule's key. - key: String, - /// Process name and what the rule does. - label: String, - /// The rule is active (the entry shows a check mark). - active: bool, -} - /// Progress of an in-app update started from the banner. enum UpdateInstall { Idle, @@ -413,7 +350,7 @@ impl ThrottleApp { let (tray_tx, tray_rx) = crossbeam_channel::unbounded(); // The tray starts with the stock icon; `restyle` below recolours it // when the theme's accents differ from the stock ones. - let tray = create_tray(&cc.egui_ctx, tray_tx.clone()); + let tray = tray::create_tray(&cc.egui_ctx, tray_tx.clone()); let ctx = cc.egui_ctx.clone(); single_instance::on_show_request(move || { let _ = tray_tx.send(TrayAction::Show); @@ -488,7 +425,7 @@ impl ThrottleApp { let Some(tray) = &self.tray else { return; }; - let result = Icon::from_rgba(tray_icon_rgba(self.accents), icon::SIZE, icon::SIZE) + let result = Icon::from_rgba(tray::icon_rgba(self.accents), icon::SIZE, icon::SIZE) .map_err(|e| e.to_string()) .and_then(|icon| tray.set_icon(Some(icon)).map_err(|e| e.to_string())); if let Err(e) = result { @@ -504,11 +441,7 @@ impl ThrottleApp { return; }; let snap = &self.last_snapshot; - let tooltip = format!( - "Throttle\nDown {}\nUp {}", - humanize_rate(snap.total_down_rate), - humanize_rate(snap.total_up_rate) - ); + let tooltip = tray::tooltip(snap); if tooltip != self.tray_tooltip { if let Err(e) = tray.set_tooltip(Some(&tooltip)) { tracing::warn!("failed to update the tray tooltip: {e}"); @@ -516,9 +449,9 @@ impl ThrottleApp { self.tray_tooltip = tooltip; } - let rules = tray_rules(snap); + let rules = tray::rules(snap); if rules != self.tray_rules { - tray.set_menu(Some(Box::new(tray_menu(&rules)))); + tray.set_menu(Some(Box::new(tray::menu(&rules)))); self.tray_rules = rules; ctx.request_repaint(); } @@ -1271,29 +1204,23 @@ impl ThrottleApp { // with the drag target each frame, which egui persists as the new // panel size and turns into a resize feedback loop. Filling avoids // that. - let plot = Plot::new("total_plot") - .show_x(false) - .y_axis_formatter(rate_axis_label) - .y_grid_spacer(rate_grid) - .allow_scroll(false) - .allow_zoom([true, false]) - .allow_boxed_zoom(false) - .allow_drag([true, false]) - .legend(Legend::default()) - .include_y(0.0) - .include_y(1.0) - .show(ui, |pui| { - let view = &self.settings.view; - pui.line(plot_line( - view, - "Down", - &self.total_down_hist, - self.accents.down, - )); - pui.line(plot_line(view, "Up", &self.total_up_hist, self.accents.up)); - plot_navigation(pui); - pui.auto_bounds() - }); + let plot = plot::rate_plot("total_plot").show(ui, |pui| { + let view = &self.settings.view; + pui.line(plot::plot_line( + view, + "Down", + &self.total_down_hist, + self.accents.down, + )); + pui.line(plot::plot_line( + view, + "Up", + &self.total_up_hist, + self.accents.up, + )); + plot::plot_navigation(pui); + pui.auto_bounds() + }); self.total_plot_hint = PlotHint::from(&plot); }); } @@ -1370,23 +1297,13 @@ impl ThrottleApp { let down: Vec<f64> = stats.down_history.iter().map(|&v| v as f64).collect(); let up: Vec<f64> = stats.up_history.iter().map(|&v| v as f64).collect(); - let plot = Plot::new("detail_plot") + let plot = plot::rate_plot("detail_plot") .height(160.0) - .show_x(false) - .y_axis_formatter(rate_axis_label) - .y_grid_spacer(rate_grid) - .allow_scroll(false) - .allow_zoom([true, false]) - .allow_boxed_zoom(false) - .allow_drag([true, false]) - .legend(Legend::default()) - .include_y(0.0) - .include_y(1.0) .show(ui, |pui| { let view = &self.settings.view; - pui.line(plot_line(view, "Down", &down, self.accents.down)); - pui.line(plot_line(view, "Up", &up, self.accents.up)); - plot_navigation(pui); + pui.line(plot::plot_line(view, "Down", &down, self.accents.down)); + pui.line(plot::plot_line(view, "Up", &up, self.accents.up)); + plot::plot_navigation(pui); pui.auto_bounds() }); self.detail_plot_hint = PlotHint::from(&plot); @@ -1607,12 +1524,8 @@ impl ThrottleApp { (&mut self.settings.panels.plot_height, plot_height), (&mut self.settings.panels.detail_width, detail_width), ] { - let Some(seen) = seen.filter(|v| v.is_finite() && *v > 0.0) else { - continue; - }; - let seen = (seen * 2.0).round() / 2.0; - if saved.is_none_or(|v| (v - seen).abs() >= 0.5) { - *saved = Some(seen); + if let Some(v) = seen.and_then(|seen| settle(*saved, seen)) { + *saved = Some(v); changed = true; } } @@ -1633,14 +1546,7 @@ impl ThrottleApp { let mut changed = false; let last = columns.len() - 1; for (i, (column, &width)) in columns.iter().zip(widths).enumerate() { - if !width.is_finite() || width <= 0.0 { - continue; - } - let width = (width * 2.0).round() / 2.0; - if saved - .get(column.id()) - .is_none_or(|w| (w - width).abs() >= 0.5) - { + if let Some(width) = settle(saved.get(column.id()).copied(), width) { let first_time = saved.insert(column.id().to_string(), width).is_none(); changed |= i != last || first_time; } @@ -1908,7 +1814,7 @@ impl eframe::App for ThrottleApp { // it rather than hide with no icon to click; give up and stay visible if // it takes too long. if let Some(deadline) = self.start_hidden { - if taskbar_ready() { + if tray::taskbar_ready() { self.start_hidden = None; self.hide_to_tray(ctx); } else if Instant::now() >= deadline { @@ -2017,156 +1923,9 @@ impl Drop for ThrottleApp { } // --------------------------------------------------------------------------- -// Tray and startup helpers +// Startup helpers // --------------------------------------------------------------------------- -/// Create the tray icon: left click shows the window, right click opens a -/// Show / Exit menu. Returns `None` (logged) if it cannot be created. If the -/// taskbar does not exist yet, tray-icon still succeeds and adds the icon when -/// Explorer announces the taskbar (see `taskbar_ready`). -fn create_tray(ctx: &egui::Context, tx: Sender<TrayAction>) -> Option<TrayIcon> { - let menu = tray_menu(&[]); - - // Hovering fires Move/Enter/Leave constantly: only clicks wake the app. - let (click_tx, click_ctx) = (tx.clone(), ctx.clone()); - TrayIconEvent::set_event_handler(Some(move |event| { - if let TrayIconEvent::Click { - button: MouseButton::Left, - button_state: MouseButtonState::Up, - .. - } - | TrayIconEvent::DoubleClick { - button: MouseButton::Left, - .. - } = event - { - let _ = click_tx.send(TrayAction::Show); - click_ctx.request_repaint(); - } - })); - // Entries are known by their string ids, so the menu can be rebuilt - // without touching this handler. - let ctx = ctx.clone(); - MenuEvent::set_event_handler(Some(move |event: MenuEvent| { - let id = event.id.0.as_str(); - let action = if id == TRAY_SHOW_ID { - TrayAction::Show - } else if id == TRAY_EXIT_ID { - TrayAction::Exit - } else if let Some(key) = id.strip_prefix(TRAY_RULE_PREFIX) { - TrayAction::ToggleRule(key.to_string()) - } else { - return; - }; - let _ = tx.send(action); - ctx.request_repaint(); - })); - - let built = Icon::from_rgba(icon::rgba(), icon::SIZE, icon::SIZE) - .map_err(|e| e.to_string()) - .and_then(|icon| { - TrayIconBuilder::new() - .with_icon(icon) - .with_tooltip("Throttle") - .with_menu(Box::new(menu)) - .with_menu_on_left_click(false) - .build() - .map_err(|e| e.to_string()) - }); - match built { - Ok(tray) => Some(tray), - Err(e) => { - tracing::warn!("tray icon unavailable: {e}"); - None - } - } -} - -/// The tray menu: Show, one check entry per rule (checked while the rule is -/// active; clicking switches it off or on), Exit. With no rules the menu is -/// the two entries it always had. -fn tray_menu(rules: &[TrayRule]) -> Menu { - let menu = Menu::new(); - let show = MenuItem::with_id(TRAY_SHOW_ID, "Show Throttle", true, None); - let exit = MenuItem::with_id(TRAY_EXIT_ID, "Exit", true, None); - let mut result = menu.append_items(&[&show, &PredefinedMenuItem::separator()]); - if !rules.is_empty() { - for rule in rules.iter().take(TRAY_RULE_LIMIT) { - let id = format!("{TRAY_RULE_PREFIX}{}", rule.key); - let item = CheckMenuItem::with_id(id, &rule.label, true, rule.active, None); - result = result.and(menu.append(&item)); - } - if rules.len() > TRAY_RULE_LIMIT { - let more = rules.len() - TRAY_RULE_LIMIT; - let note = MenuItem::new(format!("{more} more in the window"), false, None); - result = result.and(menu.append(&note)); - } - result = result.and(menu.append(&PredefinedMenuItem::separator())); - } - result = result.and(menu.append(&exit)); - if let Err(e) = result { - tracing::warn!("tray menu incomplete: {e}"); - } - menu -} - -/// The rule toggles for the tray menu, by process name. A rule whose -/// process is not running is named after its executable; one that neither -/// limits nor blocks has nothing to switch and is left out. -fn tray_rules(snap: &Snapshot) -> Vec<TrayRule> { - let mut rules: Vec<TrayRule> = snap - .rules - .values() - .filter(|r| r.blocked || r.down_limit.is_some() || r.up_limit.is_some()) - .map(|rule| { - let name = snap - .processes - .get(&rule.exe_path) - .map(|p| p.name.clone()) - .unwrap_or_else(|| exe_name(&rule.exe_path)); - let mut active = rule.clone(); - active.disabled = false; - TrayRule { - key: rule.exe_path.clone(), - label: format!("{name}: {}", rule_summary(Some(&active))), - active: !rule.disabled, - } - }) - .collect(); - rules.sort_by_key(|r| r.label.to_lowercase()); - rules -} - -/// The file name of an exe path, or the path itself if it has none. -fn exe_name(path: &str) -> String { - std::path::Path::new(path) - .file_name() - .map(|n| n.to_string_lossy().into_owned()) - .filter(|n| !n.is_empty()) - .unwrap_or_else(|| path.to_string()) -} - -/// Tray icon pixels for `accents`. The stock accents keep the stock icon, -/// whose arrow colours predate the theme accents, so the default look is -/// unchanged. -fn tray_icon_rgba(accents: theme::Accents) -> Vec<u8> { - let stock = theme::Accents::DEFAULT; - if (accents.down, accents.up) == (stock.down, stock.up) { - icon::rgba() - } else { - let rgb = |c: egui::Color32| [c.r(), c.g(), c.b()]; - icon::rgba_with(rgb(accents.down), rgb(accents.up)) - } -} - -/// Whether Explorer's taskbar (and so the notification area) exists. -fn taskbar_ready() -> bool { - use windows::Win32::UI::WindowsAndMessaging::FindWindowW; - use windows::core::w; - // SAFETY: FindWindowW with a valid static class name; a miss is an error. - unsafe { FindWindowW(w!("Shell_TrayWnd"), None) }.is_ok_and(|h| !h.is_invalid()) -} - /// Check the startup task off the UI thread (`schtasks` takes a moment). The /// task is re-pointed at this exe only if the exe it starts no longer exists /// (Throttle was moved): running another copy once must not take it over. @@ -2213,169 +1972,6 @@ fn draw_swatch(ui: &mut egui::Ui, palette: &theme::Palette) { } } -/// A plot line in the style the View menu asks for. Samples are one second -/// apart, plotted against their index from zero. -fn plot_line(view: &View, name: &str, ys: &[f64], colour: egui::Color32) -> Line<'static> { - let mut line = Line::new(name, PlotPoints::from_ys_f64(ys)).color(colour); - // The default width keeps egui_plot's own stroke (1.5), so the default - // plot looks as before; only a thicker choice sets the width. - if view.plot_line_width > View::default().plot_line_width { - line = line.width(view.plot_line_width); - } - if view.plot_fill { - line = line.fill(0.0).fill_alpha(PLOT_FILL_ALPHA); - } - line -} - -/// Compact rate for a plot axis mark: the unit is picked per mark and -/// trailing zeros are dropped, so the axis reads "1.5 MB/s" not "1572864". -fn axis_rate(bps: f64) -> String { - // Marks below zero come from the plot's margin and get no label, so an - // idle process does not show a column of zeros. - if bps < 0.0 { - return String::new(); - } - if bps == 0.0 { - return "0".to_string(); - } - let (value, unit) = if bps >= GB { - (bps / GB, "GB/s") - } else if bps >= MB { - (bps / MB, "MB/s") - } else if bps >= KB { - (bps / KB, "KB/s") - } else { - (bps, "B/s") - }; - let text = format!("{value:.1}"); - let text = text.trim_end_matches('0').trim_end_matches('.'); - format!("{text} {unit}") -} - -/// Grid steps for a rate axis: 1, 2 and 5 of a binary unit (bytes, KB, MB, -/// GB, TB) and their tens and hundreds, so the axis reads "512 KB/s, 1 MB/s, -/// 2 MB/s" rather than the powers of ten egui_plot would pick ("976.6 KB/s"), -/// and a labelled step always fits the plot height: with powers of ten a -/// short plot whose range passes 3 MB/s lost every label but zero. Halves of -/// the step are minor lines, labelled too when there is room. -fn rate_grid(input: egui_plot::GridInput) -> Vec<egui_plot::GridMark> { - let (min, max) = input.bounds; - // egui_plot labels a step once it spans about 20 points and its base - // step is 8 points, so three base steps leave room for a label. - let wanted = input.base_step_size * 3.0; - if !(wanted.is_finite() && wanted > 0.0 && max > min) { - return Vec::new(); - } - let major = nice_rate_step(wanted); - let minor = major / 2.0; - let first = (min / minor).floor() as i64; - let last = (max / minor).ceil() as i64; - if last - first > 10_000 { - return Vec::new(); - } - // A label is centred on its mark, so one within half a text height of - // the top edge would spill out of the plot over whatever sits above it. - // The base step spans 8 points, which gives the distance in points. - let points_from_top = |value: f64| (max - value) / input.base_step_size * 8.0; - (first..=last) - .map(|i| egui_plot::GridMark { - value: i as f64 * minor, - step_size: if i % 2 == 0 { major } else { minor }, - }) - .filter(|mark| points_from_top(mark.value) >= 8.0) - .collect() -} - -/// The smallest of 1, 2, 5, 10, 20, 50, 100, 200 or 500 bytes, KB, MB, GB -/// or TB per second that is at least `wanted` bytes per second. -fn nice_rate_step(wanted: f64) -> f64 { - for unit in [1.0, KB, MB, GB, TB] { - for scale in [1.0, 10.0, 100.0] { - for m in [1.0, 2.0, 5.0] { - let step = m * scale * unit; - if step >= wanted { - return step; - } - } - } - } - wanted -} - -/// Y axis formatter for the rate plots. -fn rate_axis_label(mark: egui_plot::GridMark, _range: &std::ops::RangeInclusive<f64>) -> String { - axis_rate(mark.value) -} - -/// Extra plot navigation on top of egui_plot's own (left drag pans the time -/// axis, double click resets): a plain mouse wheel zooms the time axis -/// around the pointer, like Ctrl + wheel does by default, and a middle -/// button drag pans it too. The wheel is swallowed so nothing else scrolls. -/// The rate axis keeps fitting the data, so zero stays at the bottom. The -/// plot's own scroll-to-pan is off (`allow_scroll(false)`). -fn plot_navigation(pui: &mut egui_plot::PlotUi<'_>) { - let response = pui.response().clone(); - if response.dragged_by(egui::PointerButton::Middle) { - // Screen pixels to plot units along x; dragging right moves the - // view left, like the built in left button pan. - let per_pixel = pui.transform().dvalue_dpos()[0]; - let dx = -f64::from(response.drag_delta().x) * per_pixel; - pui.translate_bounds(egui::vec2(dx as f32, 0.0)); - pui.set_auto_bounds([false, true]); - } - - if !response.contains_pointer() { - return; - } - let ctx = pui.ctx().clone(); - let scroll = ctx.input(|i| i.smooth_scroll_delta.y); - if scroll == 0.0 { - return; - } - // Same curve as egui's own wheel zoom: wheel up zooms in. - let factor = (scroll / 200.0).exp(); - pui.zoom_bounds_around_hovered(egui::vec2(factor, 1.0)); - // A zoom switches auto bounds off on both axes; put the rate axis back. - pui.set_auto_bounds([false, true]); - ctx.input_mut(|i| { - i.smooth_scroll_delta.y = 0.0; - }); -} - -/// What a plot looked like last frame, to show a usage hint next to it. -#[derive(Debug, Clone, Copy, Default)] -struct PlotHint { - /// The pointer was over the plot. - hovered: bool, - /// The view is zoomed or panned (auto bounds are off on some axis). - moved: bool, -} - -impl PlotHint { - /// The hint to show: how to use the plot while hovered, and the way back - /// for as long as the view is zoomed or panned. - fn text(self) -> Option<&'static str> { - if self.moved { - Some("Double click the plot to reset the view") - } else if self.hovered { - Some("Scroll to zoom the time axis, drag to pan, double click to reset") - } else { - None - } - } -} - -impl From<&egui_plot::PlotResponse<egui::Vec2b>> for PlotHint { - /// `inner` is the plot's auto bounds flags. - fn from(plot: &egui_plot::PlotResponse<egui::Vec2b>) -> Self { - PlotHint { - hovered: plot.response.hovered(), - moved: !(plot.inner.x && plot.inner.y), - } - } -} - /// Drop the oldest samples so at most `keep` remain. fn trim_front(hist: &mut Vec<f64>, keep: usize) { if hist.len() > keep { @@ -2552,67 +2148,6 @@ mod tests { assert_eq!(columns.len(), 6); } - #[test] - fn rate_grid_uses_binary_steps_that_fit_the_plot() { - // A 62 point plot showing up to 2.1 MB/s: 8 points are 271 KB, so - // the labelled step is 1 MB and the halves are minor lines. - let marks = rate_grid(egui_plot::GridInput { - bounds: (0.0, 2.1 * MB), - base_step_size: 2.1 * MB / 62.0 * 8.0, - }); - let major: Vec<f64> = marks - .iter() - .filter(|m| m.step_size == MB) - .map(|m| m.value) - .collect(); - // 2 MB/s is 3 points under the top edge, so it is dropped. - assert_eq!(major, vec![0.0, MB]); - assert_eq!(axis_rate(major[1]), "1 MB/s"); - let minor: Vec<String> = marks - .iter() - .filter(|m| m.step_size == MB / 2.0) - .map(|m| axis_rate(m.value)) - .collect(); - assert_eq!(minor, vec!["512 KB/s", "1.5 MB/s"]); - - // Steps climb through 1, 2, 5 and their tens within a unit. - assert_eq!(nice_rate_step(3.0 * KB), 5.0 * KB); - assert_eq!(nice_rate_step(60.0 * KB), 100.0 * KB); - assert_eq!(nice_rate_step(600.0 * KB), MB); - assert_eq!(nice_rate_step(1.0), 1.0); - assert!( - rate_grid(egui_plot::GridInput { - bounds: (0.0, 0.0), - base_step_size: 0.0, - }) - .is_empty() - ); - - // A mark right at the top edge is dropped so its label cannot spill - // out of the plot: 2 MB/s sits 2 points under the top here. - let marks = rate_grid(egui_plot::GridInput { - bounds: (0.0, 2.05 * MB), - base_step_size: 2.05 * MB / 62.0 * 8.0, - }); - let top = marks.iter().map(|m| m.value).fold(0.0, f64::max); - assert_eq!(top, 1.5 * MB); - } - - #[test] - fn negative_axis_marks_get_no_label() { - assert_eq!(axis_rate(-512.0), ""); - assert_eq!(axis_rate(0.0), "0"); - } - - #[test] - fn axis_rates_pick_a_unit_and_trim_zeros() { - assert_eq!(axis_rate(0.0), "0"); - assert_eq!(axis_rate(512.0), "512 B/s"); - assert_eq!(axis_rate(1536.0), "1.5 KB/s"); - assert_eq!(axis_rate(2.0 * MB), "2 MB/s"); - assert_eq!(axis_rate(1.75 * GB), "1.8 GB/s"); - } - #[test] fn limit_field_keeps_only_a_number() { assert_eq!(numeric_input("dsadsa"), ""); @@ -2683,59 +2218,6 @@ mod tests { assert_eq!(ids.len(), TableColumn::ALL.len()); } - #[test] - fn tray_rules_name_running_processes_and_sort_by_label() { - let mut snap = Snapshot::default(); - let steam = "c:\\steam\\steam.exe".to_string(); - let curl = "c:\\tools\\curl.exe".to_string(); - snap.processes.insert( - steam.clone(), - ProcessStats { - name: "Steam.exe".to_string(), - exe_path: steam.clone(), - ..ProcessStats::default() - }, - ); - snap.rules.insert( - steam.clone(), - Rule { - exe_path: steam.clone(), - down_limit: Some(1024 * 1024), - disabled: true, - ..Rule::default() - }, - ); - snap.rules.insert( - curl.clone(), - Rule { - exe_path: curl.clone(), - blocked: true, - ..Rule::default() - }, - ); - // A rule with nothing to apply is not worth a toggle. - snap.rules.insert( - r"c:\idle.exe".to_string(), - Rule { - exe_path: r"c:\idle.exe".to_string(), - ..Rule::default() - }, - ); - let rules = tray_rules(&snap); - assert_eq!(rules.len(), 2); - assert_eq!(rules[0].label, "curl.exe: BLOCKED"); - assert!(rules[0].active); - // Disabled rules still show what they would do, unchecked. - assert_eq!(rules[1].label, "Steam.exe: Dn 1.00 MB/s"); - assert!(!rules[1].active); - assert_eq!(rules[1].key, steam); - } - - #[test] - fn stock_accents_keep_the_stock_tray_icon() { - assert_eq!(tray_icon_rgba(theme::Accents::DEFAULT), icon::rgba()); - } - #[test] fn trim_front_keeps_the_newest() { let mut hist: Vec<f64> = (0..10).map(f64::from).collect(); diff --git a/src/main.rs b/src/main.rs index cc1d829..d595b94 100644 --- a/src/main.rs +++ b/src/main.rs @@ -15,10 +15,13 @@ mod autostart; mod backend; mod gui; mod icon; +mod plot; mod settings; mod single_instance; mod theme; +mod tray; mod types; +mod units; mod update_check; use crossbeam_channel::unbounded; diff --git a/src/plot.rs b/src/plot.rs new file mode 100644 index 0000000..2eba5d6 --- /dev/null +++ b/src/plot.rs @@ -0,0 +1,216 @@ +//! Rate plots: the shared plot builder, line style, axis grid and navigation. + +use eframe::egui; +use egui_plot::{Legend, Line, Plot, PlotPoints}; + +use crate::settings::View; +use crate::units::{GB, KB, MB, TB, axis_rate}; + +/// Fill opacity under the plot lines when "Filled area" is on. +const PLOT_FILL_ALPHA: f32 = 0.15; + +/// The plot both rate graphs share: no x axis labels, binary rate grid and +/// labels on y, time axis zoom and pan only (the rate axis keeps fitting +/// the data), a legend, and zero always at the bottom. +pub fn rate_plot(id: &'static str) -> Plot<'static> { + Plot::new(id) + .show_x(false) + .y_axis_formatter(rate_axis_label) + .y_grid_spacer(rate_grid) + .allow_scroll(false) + .allow_zoom([true, false]) + .allow_boxed_zoom(false) + .allow_drag([true, false]) + .legend(Legend::default()) + .include_y(0.0) + .include_y(1.0) +} + +/// A plot line in the style the View menu asks for. Samples are one second +/// apart, plotted against their index from zero. +pub fn plot_line(view: &View, name: &str, ys: &[f64], colour: egui::Color32) -> Line<'static> { + let mut line = Line::new(name, PlotPoints::from_ys_f64(ys)).color(colour); + // The default width keeps egui_plot's own stroke (1.5), so the default + // plot looks as before; only a thicker choice sets the width. + if view.plot_line_width > View::default().plot_line_width { + line = line.width(view.plot_line_width); + } + if view.plot_fill { + line = line.fill(0.0).fill_alpha(PLOT_FILL_ALPHA); + } + line +} + +/// Grid steps for a rate axis: 1, 2 and 5 of a binary unit (bytes, KB, MB, +/// GB, TB) and their tens and hundreds, so the axis reads "512 KB/s, 1 MB/s, +/// 2 MB/s" rather than the powers of ten egui_plot would pick ("976.6 KB/s"), +/// and a labelled step always fits the plot height: with powers of ten a +/// short plot whose range passes 3 MB/s lost every label but zero. Halves of +/// the step are minor lines, labelled too when there is room. +fn rate_grid(input: egui_plot::GridInput) -> Vec<egui_plot::GridMark> { + let (min, max) = input.bounds; + // egui_plot labels a step once it spans about 20 points and its base + // step is 8 points, so three base steps leave room for a label. + let wanted = input.base_step_size * 3.0; + if !(wanted.is_finite() && wanted > 0.0 && max > min) { + return Vec::new(); + } + let major = nice_rate_step(wanted); + let minor = major / 2.0; + let first = (min / minor).floor() as i64; + let last = (max / minor).ceil() as i64; + if last - first > 10_000 { + return Vec::new(); + } + // A label is centred on its mark, so one within half a text height of + // the top edge would spill out of the plot over whatever sits above it. + // The base step spans 8 points, which gives the distance in points. + let points_from_top = |value: f64| (max - value) / input.base_step_size * 8.0; + (first..=last) + .map(|i| egui_plot::GridMark { + value: i as f64 * minor, + step_size: if i % 2 == 0 { major } else { minor }, + }) + .filter(|mark| points_from_top(mark.value) >= 8.0) + .collect() +} + +/// The smallest of 1, 2, 5, 10, 20, 50, 100, 200 or 500 bytes, KB, MB, GB +/// or TB per second that is at least `wanted` bytes per second. +fn nice_rate_step(wanted: f64) -> f64 { + for unit in [1.0, KB, MB, GB, TB] { + for scale in [1.0, 10.0, 100.0] { + for m in [1.0, 2.0, 5.0] { + let step = m * scale * unit; + if step >= wanted { + return step; + } + } + } + } + wanted +} + +/// Y axis formatter for the rate plots. +fn rate_axis_label(mark: egui_plot::GridMark, _range: &std::ops::RangeInclusive<f64>) -> String { + axis_rate(mark.value) +} + +/// Extra plot navigation on top of egui_plot's own (left drag pans the time +/// axis, double click resets): a plain mouse wheel zooms the time axis +/// around the pointer, like Ctrl + wheel does by default, and a middle +/// button drag pans it too. The wheel is swallowed so nothing else scrolls. +/// The rate axis keeps fitting the data, so zero stays at the bottom. The +/// plot's own scroll-to-pan is off (`allow_scroll(false)`). +pub fn plot_navigation(pui: &mut egui_plot::PlotUi<'_>) { + let response = pui.response().clone(); + if response.dragged_by(egui::PointerButton::Middle) { + // Screen pixels to plot units along x; dragging right moves the + // view left, like the built in left button pan. + let per_pixel = pui.transform().dvalue_dpos()[0]; + let dx = -f64::from(response.drag_delta().x) * per_pixel; + pui.translate_bounds(egui::vec2(dx as f32, 0.0)); + pui.set_auto_bounds([false, true]); + } + + if !response.contains_pointer() { + return; + } + let ctx = pui.ctx().clone(); + let scroll = ctx.input(|i| i.smooth_scroll_delta.y); + if scroll == 0.0 { + return; + } + // Same curve as egui's own wheel zoom: wheel up zooms in. + let factor = (scroll / 200.0).exp(); + pui.zoom_bounds_around_hovered(egui::vec2(factor, 1.0)); + // A zoom switches auto bounds off on both axes; put the rate axis back. + pui.set_auto_bounds([false, true]); + ctx.input_mut(|i| { + i.smooth_scroll_delta.y = 0.0; + }); +} + +/// What a plot looked like last frame, to show a usage hint next to it. +#[derive(Debug, Clone, Copy, Default)] +pub struct PlotHint { + /// The pointer was over the plot. + pub hovered: bool, + /// The view is zoomed or panned (auto bounds are off on some axis). + pub moved: bool, +} + +impl PlotHint { + /// The hint to show: how to use the plot while hovered, and the way back + /// for as long as the view is zoomed or panned. + pub fn text(self) -> Option<&'static str> { + if self.moved { + Some("Double click the plot to reset the view") + } else if self.hovered { + Some("Scroll to zoom the time axis, drag to pan, double click to reset") + } else { + None + } + } +} + +impl From<&egui_plot::PlotResponse<egui::Vec2b>> for PlotHint { + /// `inner` is the plot's auto bounds flags. + fn from(plot: &egui_plot::PlotResponse<egui::Vec2b>) -> Self { + PlotHint { + hovered: plot.response.hovered(), + moved: !(plot.inner.x && plot.inner.y), + } + } +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn rate_grid_uses_binary_steps_that_fit_the_plot() { + // A 62 point plot showing up to 2.1 MB/s: 8 points are 271 KB, so + // the labelled step is 1 MB and the halves are minor lines. + let marks = rate_grid(egui_plot::GridInput { + bounds: (0.0, 2.1 * MB), + base_step_size: 2.1 * MB / 62.0 * 8.0, + }); + let major: Vec<f64> = marks + .iter() + .filter(|m| m.step_size == MB) + .map(|m| m.value) + .collect(); + // 2 MB/s is 3 points under the top edge, so it is dropped. + assert_eq!(major, vec![0.0, MB]); + assert_eq!(axis_rate(major[1]), "1 MB/s"); + let minor: Vec<String> = marks + .iter() + .filter(|m| m.step_size == MB / 2.0) + .map(|m| axis_rate(m.value)) + .collect(); + assert_eq!(minor, vec!["512 KB/s", "1.5 MB/s"]); + + // Steps climb through 1, 2, 5 and their tens within a unit. + assert_eq!(nice_rate_step(3.0 * KB), 5.0 * KB); + assert_eq!(nice_rate_step(60.0 * KB), 100.0 * KB); + assert_eq!(nice_rate_step(600.0 * KB), MB); + assert_eq!(nice_rate_step(1.0), 1.0); + assert!( + rate_grid(egui_plot::GridInput { + bounds: (0.0, 0.0), + base_step_size: 0.0, + }) + .is_empty() + ); + + // A mark right at the top edge is dropped so its label cannot spill + // out of the plot: 2 MB/s sits 2 points under the top here. + let marks = rate_grid(egui_plot::GridInput { + bounds: (0.0, 2.05 * MB), + base_step_size: 2.05 * MB / 62.0 * 8.0, + }); + let top = marks.iter().map(|m| m.value).fold(0.0, f64::max); + assert_eq!(top, 1.5 * MB); + } +} diff --git a/src/tray.rs b/src/tray.rs new file mode 100644 index 0000000..4f97fdc --- /dev/null +++ b/src/tray.rs @@ -0,0 +1,253 @@ +//! Tray icon: menu with rule toggles, tooltip and icon colours. + +use crossbeam_channel::Sender; +use eframe::egui; +use tray_icon::menu::{CheckMenuItem, Menu, MenuEvent, MenuItem, PredefinedMenuItem}; +use tray_icon::{Icon, MouseButton, MouseButtonState, TrayIcon, TrayIconBuilder, TrayIconEvent}; + +use crate::gui::rule_summary; +use crate::types::Snapshot; +use crate::units::humanize_rate; +use crate::{icon, theme}; + +/// Ids of the fixed tray menu entries; rule entries use `TRAY_RULE_PREFIX`. +const TRAY_SHOW_ID: &str = "show"; +const TRAY_EXIT_ID: &str = "exit"; +/// Tray menu id prefix for a rule toggle; the rest is the rule's exe key. +const TRAY_RULE_PREFIX: &str = "rule:"; +/// Most rule toggles the tray menu lists before it points to the window. +const TRAY_RULE_LIMIT: usize = 15; + +/// What the tray icon (or a second launch) asks the app to do. +pub enum TrayAction { + Show, + Exit, + /// Switch the rule with this exe key off, or back on. + ToggleRule(String), +} + +/// One rule toggle in the tray menu. +#[derive(Debug, Clone, PartialEq, Eq)] +pub struct TrayRule { + /// Lowercase exe path, the rule's key. + pub key: String, + /// Process name and what the rule does. + pub label: String, + /// The rule is active (the entry shows a check mark). + pub active: bool, +} + +/// Create the tray icon: left click shows the window, right click opens a +/// Show / Exit menu. Returns `None` (logged) if it cannot be created. If the +/// taskbar does not exist yet, tray-icon still succeeds and adds the icon when +/// Explorer announces the taskbar (see `taskbar_ready`). +pub fn create_tray(ctx: &egui::Context, tx: Sender<TrayAction>) -> Option<TrayIcon> { + let menu = menu(&[]); + + // Hovering fires Move/Enter/Leave constantly: only clicks wake the app. + let (click_tx, click_ctx) = (tx.clone(), ctx.clone()); + TrayIconEvent::set_event_handler(Some(move |event| { + if let TrayIconEvent::Click { + button: MouseButton::Left, + button_state: MouseButtonState::Up, + .. + } + | TrayIconEvent::DoubleClick { + button: MouseButton::Left, + .. + } = event + { + let _ = click_tx.send(TrayAction::Show); + click_ctx.request_repaint(); + } + })); + // Entries are known by their string ids, so the menu can be rebuilt + // without touching this handler. + let ctx = ctx.clone(); + MenuEvent::set_event_handler(Some(move |event: MenuEvent| { + let id = event.id.0.as_str(); + let action = if id == TRAY_SHOW_ID { + TrayAction::Show + } else if id == TRAY_EXIT_ID { + TrayAction::Exit + } else if let Some(key) = id.strip_prefix(TRAY_RULE_PREFIX) { + TrayAction::ToggleRule(key.to_string()) + } else { + return; + }; + let _ = tx.send(action); + ctx.request_repaint(); + })); + + let built = Icon::from_rgba(icon::rgba(), icon::SIZE, icon::SIZE) + .map_err(|e| e.to_string()) + .and_then(|icon| { + TrayIconBuilder::new() + .with_icon(icon) + .with_tooltip("Throttle") + .with_menu(Box::new(menu)) + .with_menu_on_left_click(false) + .build() + .map_err(|e| e.to_string()) + }); + match built { + Ok(tray) => Some(tray), + Err(e) => { + tracing::warn!("tray icon unavailable: {e}"); + None + } + } +} + +/// The tray menu: Show, one check entry per rule (checked while the rule is +/// active; clicking switches it off or on), Exit. With no rules the menu is +/// the two entries it always had. +pub fn menu(rules: &[TrayRule]) -> Menu { + let menu = Menu::new(); + let show = MenuItem::with_id(TRAY_SHOW_ID, "Show Throttle", true, None); + let exit = MenuItem::with_id(TRAY_EXIT_ID, "Exit", true, None); + let mut result = menu.append_items(&[&show, &PredefinedMenuItem::separator()]); + if !rules.is_empty() { + for rule in rules.iter().take(TRAY_RULE_LIMIT) { + let id = format!("{TRAY_RULE_PREFIX}{}", rule.key); + let item = CheckMenuItem::with_id(id, &rule.label, true, rule.active, None); + result = result.and(menu.append(&item)); + } + if rules.len() > TRAY_RULE_LIMIT { + let more = rules.len() - TRAY_RULE_LIMIT; + let note = MenuItem::new(format!("{more} more in the window"), false, None); + result = result.and(menu.append(&note)); + } + result = result.and(menu.append(&PredefinedMenuItem::separator())); + } + result = result.and(menu.append(&exit)); + if let Err(e) = result { + tracing::warn!("tray menu incomplete: {e}"); + } + menu +} + +/// The rule toggles for the tray menu, by process name. A rule whose +/// process is not running is named after its executable; one that neither +/// limits nor blocks has nothing to switch and is left out. +pub fn rules(snap: &Snapshot) -> Vec<TrayRule> { + let mut rules: Vec<TrayRule> = snap + .rules + .values() + .filter(|r| r.blocked || r.down_limit.is_some() || r.up_limit.is_some()) + .map(|rule| { + let name = snap + .processes + .get(&rule.exe_path) + .map(|p| p.name.clone()) + .unwrap_or_else(|| exe_name(&rule.exe_path)); + let mut active = rule.clone(); + active.disabled = false; + TrayRule { + key: rule.exe_path.clone(), + label: format!("{name}: {}", rule_summary(Some(&active))), + active: !rule.disabled, + } + }) + .collect(); + rules.sort_by_key(|r| r.label.to_lowercase()); + rules +} + +/// The tray tooltip: the live download and upload totals. +pub fn tooltip(snap: &Snapshot) -> String { + format!( + "Throttle\nDown {}\nUp {}", + humanize_rate(snap.total_down_rate), + humanize_rate(snap.total_up_rate) + ) +} + +/// The file name of an exe path, or the path itself if it has none. +fn exe_name(path: &str) -> String { + std::path::Path::new(path) + .file_name() + .map(|n| n.to_string_lossy().into_owned()) + .filter(|n| !n.is_empty()) + .unwrap_or_else(|| path.to_string()) +} + +/// Tray icon pixels for `accents`. The stock accents keep the stock icon, +/// whose arrow colours predate the theme accents, so the default look is +/// unchanged. +pub fn icon_rgba(accents: theme::Accents) -> Vec<u8> { + let stock = theme::Accents::DEFAULT; + if (accents.down, accents.up) == (stock.down, stock.up) { + icon::rgba() + } else { + let rgb = |c: egui::Color32| [c.r(), c.g(), c.b()]; + icon::rgba_with(rgb(accents.down), rgb(accents.up)) + } +} + +/// Whether Explorer's taskbar (and so the notification area) exists. +pub fn taskbar_ready() -> bool { + use windows::Win32::UI::WindowsAndMessaging::FindWindowW; + use windows::core::w; + // SAFETY: FindWindowW with a valid static class name; a miss is an error. + unsafe { FindWindowW(w!("Shell_TrayWnd"), None) }.is_ok_and(|h| !h.is_invalid()) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::types::{ProcessStats, Rule}; + + #[test] + fn rules_name_running_processes_and_sort_by_label() { + let mut snap = Snapshot::default(); + let steam = "c:\\steam\\steam.exe".to_string(); + let curl = "c:\\tools\\curl.exe".to_string(); + snap.processes.insert( + steam.clone(), + ProcessStats { + name: "Steam.exe".to_string(), + exe_path: steam.clone(), + ..ProcessStats::default() + }, + ); + snap.rules.insert( + steam.clone(), + Rule { + exe_path: steam.clone(), + down_limit: Some(1024 * 1024), + disabled: true, + ..Rule::default() + }, + ); + snap.rules.insert( + curl.clone(), + Rule { + exe_path: curl.clone(), + blocked: true, + ..Rule::default() + }, + ); + // A rule with nothing to apply is not worth a toggle. + snap.rules.insert( + r"c:\idle.exe".to_string(), + Rule { + exe_path: r"c:\idle.exe".to_string(), + ..Rule::default() + }, + ); + let rules = rules(&snap); + assert_eq!(rules.len(), 2); + assert_eq!(rules[0].label, "curl.exe: BLOCKED"); + assert!(rules[0].active); + // Disabled rules still show what they would do, unchecked. + assert_eq!(rules[1].label, "Steam.exe: Dn 1.00 MB/s"); + assert!(!rules[1].active); + assert_eq!(rules[1].key, steam); + } + + #[test] + fn stock_accents_keep_the_stock_tray_icon() { + assert_eq!(icon_rgba(theme::Accents::DEFAULT), icon::rgba()); + } +} diff --git a/src/units.rs b/src/units.rs new file mode 100644 index 0000000..f99a7ad --- /dev/null +++ b/src/units.rs @@ -0,0 +1,139 @@ +//! Byte and rate formatting in base 1024, and small layout helpers. + +pub const KB: f64 = 1024.0; +pub const MB: f64 = 1024.0 * 1024.0; +pub const GB: f64 = 1024.0 * 1024.0 * 1024.0; +pub const TB: f64 = 1024.0 * 1024.0 * 1024.0 * 1024.0; + +/// Humanize a byte-per-second rate using base-1024 units. +pub fn humanize_rate(bps: u64) -> String { + let b = bps as f64; + if b >= GB { + format!("{:.2} GB/s", b / GB) + } else if b >= MB { + format!("{:.2} MB/s", b / MB) + } else if b >= KB { + format!("{:.1} KB/s", b / KB) + } else { + format!("{bps} B/s") + } +} + +/// Humanize a plain byte total using base-1024 units. +pub fn humanize_bytes(bytes: u64) -> String { + let b = bytes as f64; + if b >= TB { + format!("{:.2} TB", b / TB) + } else if b >= GB { + format!("{:.2} GB", b / GB) + } else if b >= MB { + format!("{:.2} MB", b / MB) + } else if b >= KB { + format!("{:.1} KB", b / KB) + } else { + format!("{bytes} B") + } +} + +/// Compact rate for a plot axis mark: the unit is picked per mark and +/// trailing zeros are dropped, so the axis reads "1.5 MB/s" not "1572864". +pub fn axis_rate(bps: f64) -> String { + // Marks below zero come from the plot's margin and get no label, so an + // idle process does not show a column of zeros. + if bps < 0.0 { + return String::new(); + } + if bps == 0.0 { + return "0".to_string(); + } + let (value, unit) = if bps >= GB { + (bps / GB, "GB/s") + } else if bps >= MB { + (bps / MB, "MB/s") + } else if bps >= KB { + (bps / KB, "KB/s") + } else { + (bps, "B/s") + }; + let text = format!("{value:.1}"); + let text = text.trim_end_matches('0').trim_end_matches('.'); + format!("{text} {unit}") +} + +/// A remembered size (a column width or a panel size, in points) settled to +/// the nearest half point. Returns the value to store when `seen` is a real +/// size and differs from `saved` by at least half a point, or when nothing +/// was saved yet; otherwise `None`, so a drag that barely moves writes +/// nothing. +pub fn settle(saved: Option<f32>, seen: f32) -> Option<f32> { + if !seen.is_finite() || seen <= 0.0 { + return None; + } + let seen = (seen * 2.0).round() / 2.0; + saved + .is_none_or(|v| (v - seen).abs() >= 0.5) + .then_some(seen) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn negative_axis_marks_get_no_label() { + assert_eq!(axis_rate(-512.0), ""); + assert_eq!(axis_rate(0.0), "0"); + } + + #[test] + fn axis_rates_pick_a_unit_and_trim_zeros() { + assert_eq!(axis_rate(0.0), "0"); + assert_eq!(axis_rate(512.0), "512 B/s"); + assert_eq!(axis_rate(1536.0), "1.5 KB/s"); + assert_eq!(axis_rate(2.0 * MB), "2 MB/s"); + assert_eq!(axis_rate(1.75 * GB), "1.8 GB/s"); + } + + #[test] + fn rates_and_bytes_pick_a_unit() { + assert_eq!(humanize_rate(512), "512 B/s"); + assert_eq!(humanize_rate(1536), "1.5 KB/s"); + assert_eq!(humanize_rate(2 * 1024 * 1024), "2.00 MB/s"); + assert_eq!(humanize_bytes(1023), "1023 B"); + assert_eq!(humanize_bytes(3 * 1024 * 1024 * 1024), "3.00 GB"); + assert_eq!(humanize_bytes(1024u64.pow(4)), "1.00 TB"); + } + + #[test] + fn settle_records_the_first_value() { + assert_eq!(settle(None, 120.0), Some(120.0)); + } + + #[test] + fn settle_records_a_changed_value() { + assert_eq!(settle(Some(120.0), 140.0), Some(140.0)); + assert_eq!(settle(Some(120.0), 120.5), Some(120.5)); + } + + #[test] + fn settle_ignores_a_change_within_the_tolerance() { + assert_eq!(settle(Some(120.0), 120.0), None); + assert_eq!(settle(Some(120.0), 120.2), None); + assert_eq!(settle(Some(120.0), 119.8), None); + } + + #[test] + fn settle_rejects_zero_negative_and_nan() { + assert_eq!(settle(None, 0.0), None); + assert_eq!(settle(None, -4.0), None); + assert_eq!(settle(None, f32::NAN), None); + assert_eq!(settle(None, f32::INFINITY), None); + } + + #[test] + fn settle_rounds_to_halves() { + assert_eq!(settle(None, 100.3), Some(100.5)); + assert_eq!(settle(None, 100.2), Some(100.0)); + assert_eq!(settle(None, 100.8), Some(101.0)); + } +} From 38da4e726931126bd574a10dcc378836b5703837 Mon Sep 17 00:00:00 2001 From: Francesco Gruosso <64712227+FrancescoCoding@users.noreply.github.com> Date: Mon, 9 Nov 2026 19:27:09 +0000 Subject: [PATCH 08/10] Add a right click menu to the plots --- src/gui.rs | 58 +++++++++++++++++++++++++++++++++++++++-------------- src/plot.rs | 16 ++++++++++++++- 2 files changed, 58 insertions(+), 16 deletions(-) diff --git a/src/gui.rs b/src/gui.rs index 368454e..17c8618 100644 --- a/src/gui.rs +++ b/src/gui.rs @@ -242,6 +242,30 @@ impl TableColumn { } } +/// Plot options shared by the View menu and the plots' right click menus: +/// filled area, line width and, for the header plot, its history length. +/// Returns whether anything changed. +fn plot_options(ui: &mut egui::Ui, view: &mut View, header: bool) -> bool { + let mut changed = ui.checkbox(&mut view.plot_fill, "Filled area").changed(); + ui.menu_button("Line width", |ui| { + for (width, label) in LINE_WIDTH_CHOICES { + changed |= ui + .radio_value(&mut view.plot_line_width, width, label) + .changed(); + } + }); + if header { + ui.menu_button("Header plot history", |ui| { + for (secs, label) in HISTORY_CHOICES { + changed |= ui + .radio_value(&mut view.history_secs, secs, label) + .changed(); + } + }); + } + changed +} + /// The table columns `view` shows, in display order. fn visible_columns(view: &View) -> Vec<TableColumn> { TableColumn::ALL @@ -921,21 +945,7 @@ impl ThrottleApp { } }); ui.menu_button("Plot", |ui| { - changed |= ui.checkbox(&mut view.plot_fill, "Filled area").changed(); - ui.menu_button("Line width", |ui| { - for (width, label) in LINE_WIDTH_CHOICES { - changed |= ui - .radio_value(&mut view.plot_line_width, width, label) - .changed(); - } - }); - ui.menu_button("Header plot history", |ui| { - for (secs, label) in HISTORY_CHOICES { - changed |= ui - .radio_value(&mut view.history_secs, secs, label) - .changed(); - } - }); + changed |= plot_options(ui, view, true); }); ui.separator(); let on_top_changed = ui @@ -954,6 +964,22 @@ impl ThrottleApp { } } + /// Right click menu of a plot built with `plot::rate_plot(id)`: reset + /// the view, then the same plot options as the View menu. The header + /// plot also offers its history length; the detail plot's is fixed. + fn plot_context_menu(&mut self, response: &egui::Response, id: &'static str, header: bool) { + response.context_menu(|ui| { + if ui.button("Reset view").clicked() { + plot::reset_view(ui.ctx(), id); + ui.close(); + } + ui.separator(); + if plot_options(ui, &mut self.settings.view, header) { + self.save_settings(); + } + }); + } + /// The Customise window: appearance options on top of the theme. fn draw_customise_window(&mut self, ctx: &egui::Context) { if !self.customise_open { @@ -1222,6 +1248,7 @@ impl ThrottleApp { pui.auto_bounds() }); self.total_plot_hint = PlotHint::from(&plot); + self.plot_context_menu(&plot.response, "total_plot", true); }); } @@ -1307,6 +1334,7 @@ impl ThrottleApp { pui.auto_bounds() }); self.detail_plot_hint = PlotHint::from(&plot); + self.plot_context_menu(&plot.response, "detail_plot", false); }); } diff --git a/src/plot.rs b/src/plot.rs index 2eba5d6..e1ee8c5 100644 --- a/src/plot.rs +++ b/src/plot.rs @@ -13,7 +13,9 @@ const PLOT_FILL_ALPHA: f32 = 0.15; /// labels on y, time axis zoom and pan only (the rate axis keeps fitting /// the data), a legend, and zero always at the bottom. pub fn rate_plot(id: &'static str) -> Plot<'static> { + // An explicit id, so `reset_view` can find the plot's memory. Plot::new(id) + .id(egui::Id::new(id)) .show_x(false) .y_axis_formatter(rate_axis_label) .y_grid_spacer(rate_grid) @@ -26,6 +28,16 @@ pub fn rate_plot(id: &'static str) -> Plot<'static> { .include_y(1.0) } +/// Put the plot built by `rate_plot(id)` back on auto bounds, as a double +/// click on it would. Used by the plots' context menus. +pub fn reset_view(ctx: &egui::Context, id: &str) { + let id = egui::Id::new(id); + if let Some(mut memory) = egui_plot::PlotMemory::load(ctx, id) { + memory.auto_bounds = egui::Vec2b::TRUE; + memory.store(ctx, id); + } +} + /// A plot line in the style the View menu asks for. Samples are one second /// apart, plotted against their index from zero. pub fn plot_line(view: &View, name: &str, ys: &[f64], colour: egui::Color32) -> Line<'static> { @@ -147,7 +159,9 @@ impl PlotHint { if self.moved { Some("Double click the plot to reset the view") } else if self.hovered { - Some("Scroll to zoom the time axis, drag to pan, double click to reset") + Some( + "Scroll to zoom the time axis, drag to pan, double click to reset, right click for options", + ) } else { None } From 327e856789b3724ceb409903236975c3231a1557 Mon Sep 17 00:00:00 2001 From: Francesco Gruosso <64712227+FrancescoCoding@users.noreply.github.com> Date: Mon, 9 Nov 2026 19:33:44 +0000 Subject: [PATCH 09/10] Bump version to 0.2.0 --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 08fd1ea..4d52975 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3465,7 +3465,7 @@ dependencies = [ [[package]] name = "throttle" -version = "0.1.3" +version = "0.2.0" dependencies = [ "anyhow", "crossbeam-channel", diff --git a/Cargo.toml b/Cargo.toml index 29c877b..2d9c3f0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "throttle" -version = "0.1.3" +version = "0.2.0" edition = "2024" description = "A free, open-source per-process bandwidth monitor and limiter for Windows" repository = "https://github.com/FrancescoCoding/Throttle" From cada04444f608928d9267595c250f0380d3c6936 Mon Sep 17 00:00:00 2001 From: Francesco Gruosso <64712227+FrancescoCoding@users.noreply.github.com> Date: Mon, 9 Nov 2026 19:57:39 +0000 Subject: [PATCH 10/10] Run CI once per pull request --- .github/workflows/ci.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 011cbf1..9c239ef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,12 @@ name: CI -on: [push, pull_request] +# Pushes to a branch with an open pull request would run every job twice, +# once for the push and once for the pull request, so pushes only count on +# main; the pull request run covers every other branch. +on: + push: + branches: [main] + pull_request: env: CARGO_TERM_COLOR: always